diff --git a/README.md b/README.md index 9e99cc7..cd22208 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ This SDK provides a simple interface for interacting with the Hedera Hashgraph u No installation needed. Reference the script directly in your HTML: ```html - + ``` ### For NPM projects (ESM) diff --git a/current-version.txt b/current-version.txt index 3b843f9..0890032 100644 --- a/current-version.txt +++ b/current-version.txt @@ -1 +1 @@ -0.0.8084872 \ No newline at end of file +0.0.9196067 \ No newline at end of file diff --git a/dist/es/hashinal-wc.es.js b/dist/es/hashinal-wc.es.js index fd8af53..d6c80f7 100644 --- a/dist/es/hashinal-wc.es.js +++ b/dist/es/hashinal-wc.es.js @@ -1,5 +1,5 @@ import * as HashgraphSDK from "@hashgraph/sdk"; -import { LedgerId, AccountId, Client, AccountBalanceQuery, AccountInfoQuery, AccountRecordsQuery, SignerSignature, PublicKey, TransactionId, Transaction, TransactionResponse, TransactionRecord, AccountBalance, AccountInfo, TransactionReceiptQuery, TransactionReceipt, TransactionRecordQuery, Query, TopicMessageSubmitTransaction, TopicId, TransferTransaction, Hbar, ContractExecuteTransaction, ContractId, TopicCreateTransaction, PrivateKey, TokenCreateTransaction, TokenType, TokenSupplyType, TokenMintTransaction, TokenId, AccountCreateTransaction, TokenAssociateTransaction, TokenDissociateTransaction, AccountUpdateTransaction, AccountAllowanceApproveTransaction } from "@hashgraph/sdk"; +import { LedgerId, AccountId, Client, AccountBalanceQuery, AccountInfoQuery, AccountRecordsQuery, SignerSignature, PublicKey, TransactionId, Transaction, TransactionResponse, TransactionRecord, AccountBalance, AccountInfo, TransactionReceiptQuery, TransactionReceipt, TransactionRecordQuery, Query, TopicMessageSubmitTransaction, TopicId, TransferTransaction, Hbar, ContractExecuteTransaction, ContractId, PrivateKey, TopicUpdateTransaction, TopicCreateTransaction, CustomFixedFee, TokenCreateTransaction, TokenType, TokenSupplyType, TokenMintTransaction, TokenId, AccountCreateTransaction, TokenAssociateTransaction, TokenDissociateTransaction, AccountUpdateTransaction, AccountAllowanceApproveTransaction } from "@hashgraph/sdk"; import { proto } from "@hashgraph/proto"; import { Core, RELAYER_DEFAULT_PROTOCOL, TRANSPORT_TYPES, EVENT_CLIENT_SESSION_TRACES, EVENT_CLIENT_SESSION_ERRORS, EVENT_CLIENT_AUTHENTICATE_TRACES, EVENT_CLIENT_AUTHENTICATE_ERRORS, EVENT_CLIENT_PAIRING_ERRORS, EVENT_CLIENT_PAIRING_TRACES, RELAYER_EVENTS, VERIFY_SERVER, EXPIRER_EVENTS, PAIRING_EVENTS, Store } from "@walletconnect/core"; import { getAppMetadata, getInternalError, calcExpiry, createDelayedPromise, engineEvent, getSdkError, getDeepLink, handleDeeplinkRedirect, isSessionCompatible, hashKey, parseChainId, createEncodedRecap, getRecapFromResources, mergeEncodedRecaps, TYPE_2, BASE64URL, getLinkModeURL, validateSignedCacao, getNamespacedDidChainId, getDidAddress, getMethodsFromRecap, getChainsFromRecap, buildNamespacesFromAuth, formatMessage, BASE64, hashMessage, isExpired, MemoryStore, isValidParams, isUndefined, isValidRelays, isValidObject, isValidRequiredNamespaces, isValidNamespaces, isConformingNamespaces, isValidString, isValidErrorReason, isValidRelay, isValidController, isValidNamespacesChainId, isValidRequest, isValidNamespacesRequest, isValidRequestExpiry, isValidResponse, isValidEvent, isValidNamespacesEvent, getSearchParamFromURL, isTestRun, isReactNative, parseExpirerTarget, isValidId, TYPE_1 } from "@walletconnect/utils"; @@ -5960,18 +5960,132 @@ class HashinalsWalletConnectSDK { network }; } - async createTopic(memo, adminKey, submitKey) { + async generatePrivateAndPublicKey() { this.ensureInitialized(); + const privateKey = await PrivateKey.generateED25519Async(); + const publicKey = privateKey.publicKey; + return { + privateKey: privateKey.toString(), + publicKey: publicKey.toString() + }; + } + async updateTopic(topicId, memo, adminKey) { + this.ensureInitialized(); + if (!topicId) { + throw new Error("Topic ID is required"); + } + if (!adminKey) { + throw new Error("Admin key is required for topic update"); + } + const accountInfo = this.getAccountInfo(); + if (!(accountInfo == null ? void 0 : accountInfo.accountId)) { + throw new Error("No connected account found"); + } + const signer = this.dAppConnector.signers.find( + (signer_) => signer_.getAccountId().toString() === accountInfo.accountId + ); + if (!signer) { + throw new Error("No signer found for the connected account"); + } + if (signer.getLedgerId().toString() !== this.network.toString()) { + throw new Error("Network mismatch between signer and SDK configuration"); + } + let transaction = new TopicUpdateTransaction().setTopicId(TopicId.fromString(topicId)).setTopicMemo(memo || ""); + let adminPrivateKey = null; + try { + adminPrivateKey = PrivateKey.fromString(adminKey); + transaction.setAdminKey(adminPrivateKey.publicKey); + this.logger.debug("Admin key set with private key:", adminPrivateKey.publicKey.toString()); + } catch (e) { + this.logger.error("Invalid admin key provided:", e); + throw new Error("Invalid admin key format: Admin key must be a valid private key for topic update"); + } + transaction = await transaction.freezeWithSigner(signer); + this.logger.debug("Transaction frozen with signer:", signer.getAccountId().toString()); + if (adminPrivateKey) { + transaction = await transaction.sign(adminPrivateKey); + this.logger.debug("Transaction signed with admin private key"); + } + const { result, error } = await this.executeTransactionWithErrorHandling(transaction, true); + if (error) { + throw new Error(`Failed to update topic: ${error}`); + } + this.logger.debug("Topic updated successfully with ID:", result.topicId.toString()); + return result.topicId.toString(); + } + async createTopic(memo, adminKey, customFees) { + this.ensureInitialized(); + const accountInfo = this.getAccountInfo(); + if (!(accountInfo == null ? void 0 : accountInfo.accountId)) { + throw new Error("No connected account found"); + } + const signer = this.dAppConnector.signers.find( + (signer_) => signer_.getAccountId().toString() === accountInfo.accountId + ); + if (!signer) { + throw new Error("No signer found for the connected account"); + } + if (signer.getLedgerId().toString() !== this.network.toString()) { + throw new Error("Network mismatch between signer and SDK configuration"); + } let transaction = new TopicCreateTransaction().setTopicMemo(memo || ""); + const parseKey = (key, keyType) => { + try { + const privateKey = PrivateKey.fromString(key); + this.logger.debug(`Parsed ${keyType} key as private key:`, privateKey.toString()); + return privateKey.publicKey; + } catch (privateError) { + this.logger.debug(`Failed to parse ${keyType} key as private key:`, privateError); + try { + const publicKey = PublicKey.fromString(key); + this.logger.debug(`Parsed ${keyType} key as public key:`, publicKey.toString()); + return publicKey; + } catch (publicError) { + this.logger.error(`Invalid ${keyType} key format:`, publicError); + throw new Error(`Invalid ${keyType} key format: ${publicError.message}`); + } + } + }; + let adminPrivateKey = null; if (adminKey) { - const adminWithPrivateKey = PrivateKey.fromString(adminKey); - transaction.setAdminKey(adminWithPrivateKey.publicKey); - transaction = await transaction.sign(adminWithPrivateKey); + try { + adminPrivateKey = PrivateKey.fromString(adminKey); + transaction.setAdminKey(adminPrivateKey.publicKey); + transaction.setFeeScheduleKey(adminPrivateKey.publicKey); + this.logger.debug("Admin key and feeScheduleKey set with private key:", adminPrivateKey.publicKey.toString()); + } catch { + const adminPublicKey = parseKey(adminKey, "admin"); + transaction.setAdminKey(adminPublicKey); + transaction.setFeeScheduleKey(adminPublicKey); + this.logger.debug("Admin key and feeScheduleKey set with public key:", adminPublicKey.toString()); + } } - if (submitKey) { - transaction.setSubmitKey(PrivateKey.fromString(submitKey).publicKey); + if (customFees && customFees.length > 0) { + const hederaCustomFees = customFees.map((fee) => { + if (!fee.denominatingTokenId || !fee.amount || !fee.collectorAccountId) { + throw new Error("Invalid custom fee: denominatingTokenId, amount, and collectorAccountId are required"); + } + const feeAmount = parseFloat(fee.amount); + if (isNaN(feeAmount) || feeAmount <= 0) { + throw new Error("Invalid amount: must be a positive number"); + } + const customFee = new CustomFixedFee().setAmount(feeAmount).setFeeCollectorAccountId(fee.collectorAccountId).setDenominatingTokenId(fee.denominatingTokenId); + return customFee; + }); + transaction.setCustomFees(hederaCustomFees); + this.logger.debug("Custom fixed fees set:", hederaCustomFees); } - const receipt = await this.executeTransaction(transaction); + transaction = await transaction.freezeWithSigner(signer); + this.logger.debug("Transaction frozen with signer:", signer.getAccountId().toString()); + if (adminPrivateKey) { + transaction = await transaction.sign(adminPrivateKey); + this.logger.debug("Transaction signed with admin private key"); + } + const receipt = await this.executeTransaction(transaction, true); + if (!receipt.topicId) { + throw new Error("Failed to create topic: No topic ID in receipt"); + } + this.logger.debug("Topic created successfully with ID:", receipt.topicId.toString()); return receipt.topicId.toString(); } async createToken(name, symbol, initialSupply, decimals, treasuryAccountId, adminKey, supplyKey) { @@ -5992,6 +6106,29 @@ class HashinalsWalletConnectSDK { let transaction = await new TokenMintTransaction().setTokenId(tokenId).setMetadata([Buffer$1.from(metadata, "utf-8")]).sign(supplyKey); return this.executeTransaction(transaction); } + async getTopicInfo(topicId, network) { + this.ensureInitialized(); + try { + if (!topicId) { + throw new Error("Topic ID is required"); + } + const networkPrefix = network || this.getNetworkPrefix(); + const baseUrl = `https://${networkPrefix}.mirrornode.hedera.com`; + const url = `${baseUrl}/api/v1/topics/${topicId}`; + const response = await fetchWithRetry()(url); + if (!response.ok) { + throw new Error( + `Failed to make request to mirror node for topic info: ${response.status}` + ); + } + const data = await response.json(); + this.logger.info("Topic info retrieved:", data); + return data; + } catch (error) { + this.logger.error("Error fetching topic info:", error); + throw new Error(`Failed to retrieve topic info: ${error.message}`); + } + } async getMessages(topicId, lastTimestamp, disableTimestampFilter = false, network) { var _a, _b; const networkPrefix = network || this.getNetworkPrefix(); diff --git a/dist/es/hashinal-wc.es.js.map b/dist/es/hashinal-wc.es.js.map index d351893..3d5f889 100644 --- a/dist/es/hashinal-wc.es.js.map +++ b/dist/es/hashinal-wc.es.js.map @@ -1 +1 @@ -{"version":3,"file":"hashinal-wc.es.js","sources":["../../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js","../../node_modules/@hashgraph/hedera-wallet-connect/dist/lib/shared/chainIds.js","../../node_modules/@hashgraph/hedera-wallet-connect/dist/lib/shared/events.js","../../node_modules/@hashgraph/hedera-wallet-connect/dist/lib/shared/methods.js","../../node_modules/@hashgraph/hedera-wallet-connect/dist/lib/shared/utils.js","../../node_modules/@hashgraph/hedera-wallet-connect/dist/lib/shared/extensionController.js","../../node_modules/quick-format-unescaped/index.js","../../node_modules/@walletconnect/logger/node_modules/pino/browser.js","../../node_modules/@walletconnect/logger/dist/index.es.js","../../node_modules/events/events.js","../../node_modules/@walletconnect/jsonrpc-utils/dist/esm/constants.js","../../node_modules/@walletconnect/jsonrpc-utils/dist/esm/error.js","../../node_modules/tslib/tslib.es6.js","../../node_modules/@walletconnect/environment/dist/cjs/crypto.js","../../node_modules/vite-plugin-node-polyfills/shims/process/dist/index.js","../../node_modules/@walletconnect/environment/dist/cjs/env.js","../../node_modules/@walletconnect/environment/dist/cjs/index.js","../../node_modules/@walletconnect/jsonrpc-utils/dist/esm/format.js","../../node_modules/@walletconnect/jsonrpc-utils/dist/esm/validators.js","../../node_modules/@walletconnect/time/dist/cjs/utils/delay.js","../../node_modules/@walletconnect/time/dist/cjs/constants/misc.js","../../node_modules/@walletconnect/time/dist/cjs/constants/time.js","../../node_modules/@walletconnect/time/dist/cjs/constants/index.js","../../node_modules/@walletconnect/time/dist/cjs/utils/convert.js","../../node_modules/@walletconnect/time/dist/cjs/utils/index.js","../../node_modules/@walletconnect/time/dist/cjs/watch.js","../../node_modules/@walletconnect/time/dist/cjs/types/watch.js","../../node_modules/@walletconnect/time/dist/cjs/types/index.js","../../node_modules/@walletconnect/time/dist/cjs/index.js","../../node_modules/vite-plugin-node-polyfills/shims/global/dist/index.js","../../node_modules/@walletconnect/sign-client/node_modules/@walletconnect/types/dist/index.es.js","../../node_modules/@walletconnect/sign-client/dist/index.es.js","../../node_modules/@hashgraph/hedera-wallet-connect/dist/lib/shared/logger.js","../../node_modules/@hashgraph/hedera-wallet-connect/dist/lib/dapp/SessionNotFoundError.js","../../node_modules/@hashgraph/hedera-wallet-connect/dist/lib/dapp/DAppSigner.js","../../node_modules/@hashgraph/hedera-wallet-connect/dist/lib/dapp/index.js","../../src/logger/logger.ts","../../src/utils/retry.ts","../../src/types.ts","../../src/index.ts"],"sourcesContent":["var buffer = {};\n\nvar base64Js = {};\n\nbase64Js.byteLength = byteLength;\nbase64Js.toByteArray = toByteArray;\nbase64Js.fromByteArray = fromByteArray;\n\nvar lookup = [];\nvar revLookup = [];\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62;\nrevLookup['_'.charCodeAt(0)] = 63;\n\nfunction getLens (b64) {\n var len = b64.length;\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=');\n if (validLen === -1) validLen = len;\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4);\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp;\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n\n var curByte = 0;\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen;\n\n var i;\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)];\n arr[curByte++] = (tmp >> 16) & 0xFF;\n arr[curByte++] = (tmp >> 8) & 0xFF;\n arr[curByte++] = tmp & 0xFF;\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4);\n arr[curByte++] = tmp & 0xFF;\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2);\n arr[curByte++] = (tmp >> 8) & 0xFF;\n arr[curByte++] = tmp & 0xFF;\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp;\n var output = [];\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF);\n output.push(tripletToBase64(tmp));\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp;\n var len = uint8.length;\n var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n var parts = [];\n var maxChunkLength = 16383; // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)));\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1];\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n );\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1];\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n );\n }\n\n return parts.join('')\n}\n\nvar ieee754 = {};\n\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\n\nieee754.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = (nBytes * 8) - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? (nBytes - 1) : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n\n i += d;\n\n e = s & ((1 << (-nBits)) - 1);\n s >>= (-nBits);\n nBits += eLen;\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1);\n e >>= (-nBits);\n nBits += mLen;\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n};\n\nieee754.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = (nBytes * 8) - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0);\n var i = isLE ? 0 : (nBytes - 1);\n var d = isLE ? 1 : -1;\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0;\n\n value = Math.abs(value);\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m;\n eLen += mLen;\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128;\n};\n\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n(function (exports) {\n\n\tconst base64 = base64Js;\n\tconst ieee754$1 = ieee754;\n\tconst customInspectSymbol =\n\t (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n\t ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n\t : null;\n\n\texports.Buffer = Buffer;\n\texports.SlowBuffer = SlowBuffer;\n\texports.INSPECT_MAX_BYTES = 50;\n\n\tconst K_MAX_LENGTH = 0x7fffffff;\n\texports.kMaxLength = K_MAX_LENGTH;\n\tconst { Uint8Array: GlobalUint8Array, ArrayBuffer: GlobalArrayBuffer, SharedArrayBuffer: GlobalSharedArrayBuffer } = globalThis;\n\n\t/**\n\t * If `Buffer.TYPED_ARRAY_SUPPORT`:\n\t * === true Use Uint8Array implementation (fastest)\n\t * === false Print warning and recommend using `buffer` v4.x which has an Object\n\t * implementation (most compatible, even IE6)\n\t *\n\t * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n\t * Opera 11.6+, iOS 4.2+.\n\t *\n\t * We report that the browser does not support typed arrays if the are not subclassable\n\t * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n\t * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n\t * for __proto__ and has a buggy typed array implementation.\n\t */\n\tBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport();\n\n\tif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n\t typeof console.error === 'function') {\n\t console.error(\n\t 'This browser lacks typed array (Uint8Array) support which is required by ' +\n\t '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n\t );\n\t}\n\n\tfunction typedArraySupport () {\n\t // Can typed array instances can be augmented?\n\t try {\n\t const arr = new GlobalUint8Array(1);\n\t const proto = { foo: function () { return 42 } };\n\t Object.setPrototypeOf(proto, GlobalUint8Array.prototype);\n\t Object.setPrototypeOf(arr, proto);\n\t return arr.foo() === 42\n\t } catch (e) {\n\t return false\n\t }\n\t}\n\n\tObject.defineProperty(Buffer.prototype, 'parent', {\n\t enumerable: true,\n\t get: function () {\n\t if (!Buffer.isBuffer(this)) return undefined\n\t return this.buffer\n\t }\n\t});\n\n\tObject.defineProperty(Buffer.prototype, 'offset', {\n\t enumerable: true,\n\t get: function () {\n\t if (!Buffer.isBuffer(this)) return undefined\n\t return this.byteOffset\n\t }\n\t});\n\n\tfunction createBuffer (length) {\n\t if (length > K_MAX_LENGTH) {\n\t throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n\t }\n\t // Return an augmented `Uint8Array` instance\n\t const buf = new GlobalUint8Array(length);\n\t Object.setPrototypeOf(buf, Buffer.prototype);\n\t return buf\n\t}\n\n\t/**\n\t * The Buffer constructor returns instances of `Uint8Array` that have their\n\t * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n\t * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n\t * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n\t * returns a single octet.\n\t *\n\t * The `Uint8Array` prototype remains unmodified.\n\t */\n\n\tfunction Buffer (arg, encodingOrOffset, length) {\n\t // Common case.\n\t if (typeof arg === 'number') {\n\t if (typeof encodingOrOffset === 'string') {\n\t throw new TypeError(\n\t 'The \"string\" argument must be of type string. Received type number'\n\t )\n\t }\n\t return allocUnsafe(arg)\n\t }\n\t return from(arg, encodingOrOffset, length)\n\t}\n\n\tBuffer.poolSize = 8192; // not used by this implementation\n\n\tfunction from (value, encodingOrOffset, length) {\n\t if (typeof value === 'string') {\n\t return fromString(value, encodingOrOffset)\n\t }\n\n\t if (GlobalArrayBuffer.isView(value)) {\n\t return fromArrayView(value)\n\t }\n\n\t if (value == null) {\n\t throw new TypeError(\n\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t 'or Array-like Object. Received type ' + (typeof value)\n\t )\n\t }\n\n\t if (isInstance(value, GlobalArrayBuffer) ||\n\t (value && isInstance(value.buffer, GlobalArrayBuffer))) {\n\t return fromArrayBuffer(value, encodingOrOffset, length)\n\t }\n\n\t if (typeof GlobalSharedArrayBuffer !== 'undefined' &&\n\t (isInstance(value, GlobalSharedArrayBuffer) ||\n\t (value && isInstance(value.buffer, GlobalSharedArrayBuffer)))) {\n\t return fromArrayBuffer(value, encodingOrOffset, length)\n\t }\n\n\t if (typeof value === 'number') {\n\t throw new TypeError(\n\t 'The \"value\" argument must not be of type number. Received type number'\n\t )\n\t }\n\n\t const valueOf = value.valueOf && value.valueOf();\n\t if (valueOf != null && valueOf !== value) {\n\t return Buffer.from(valueOf, encodingOrOffset, length)\n\t }\n\n\t const b = fromObject(value);\n\t if (b) return b\n\n\t if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n\t typeof value[Symbol.toPrimitive] === 'function') {\n\t return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n\t }\n\n\t throw new TypeError(\n\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t 'or Array-like Object. Received type ' + (typeof value)\n\t )\n\t}\n\n\t/**\n\t * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n\t * if value is a number.\n\t * Buffer.from(str[, encoding])\n\t * Buffer.from(array)\n\t * Buffer.from(buffer)\n\t * Buffer.from(arrayBuffer[, byteOffset[, length]])\n\t **/\n\tBuffer.from = function (value, encodingOrOffset, length) {\n\t return from(value, encodingOrOffset, length)\n\t};\n\n\t// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n\t// https://github.com/feross/buffer/pull/148\n\tObject.setPrototypeOf(Buffer.prototype, GlobalUint8Array.prototype);\n\tObject.setPrototypeOf(Buffer, GlobalUint8Array);\n\n\tfunction assertSize (size) {\n\t if (typeof size !== 'number') {\n\t throw new TypeError('\"size\" argument must be of type number')\n\t } else if (size < 0) {\n\t throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n\t }\n\t}\n\n\tfunction alloc (size, fill, encoding) {\n\t assertSize(size);\n\t if (size <= 0) {\n\t return createBuffer(size)\n\t }\n\t if (fill !== undefined) {\n\t // Only pay attention to encoding if it's a string. This\n\t // prevents accidentally sending in a number that would\n\t // be interpreted as a start offset.\n\t return typeof encoding === 'string'\n\t ? createBuffer(size).fill(fill, encoding)\n\t : createBuffer(size).fill(fill)\n\t }\n\t return createBuffer(size)\n\t}\n\n\t/**\n\t * Creates a new filled Buffer instance.\n\t * alloc(size[, fill[, encoding]])\n\t **/\n\tBuffer.alloc = function (size, fill, encoding) {\n\t return alloc(size, fill, encoding)\n\t};\n\n\tfunction allocUnsafe (size) {\n\t assertSize(size);\n\t return createBuffer(size < 0 ? 0 : checked(size) | 0)\n\t}\n\n\t/**\n\t * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n\t * */\n\tBuffer.allocUnsafe = function (size) {\n\t return allocUnsafe(size)\n\t};\n\t/**\n\t * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n\t */\n\tBuffer.allocUnsafeSlow = function (size) {\n\t return allocUnsafe(size)\n\t};\n\n\tfunction fromString (string, encoding) {\n\t if (typeof encoding !== 'string' || encoding === '') {\n\t encoding = 'utf8';\n\t }\n\n\t if (!Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\n\t const length = byteLength(string, encoding) | 0;\n\t let buf = createBuffer(length);\n\n\t const actual = buf.write(string, encoding);\n\n\t if (actual !== length) {\n\t // Writing a hex string, for example, that contains invalid characters will\n\t // cause everything after the first invalid character to be ignored. (e.g.\n\t // 'abxxcd' will be treated as 'ab')\n\t buf = buf.slice(0, actual);\n\t }\n\n\t return buf\n\t}\n\n\tfunction fromArrayLike (array) {\n\t const length = array.length < 0 ? 0 : checked(array.length) | 0;\n\t const buf = createBuffer(length);\n\t for (let i = 0; i < length; i += 1) {\n\t buf[i] = array[i] & 255;\n\t }\n\t return buf\n\t}\n\n\tfunction fromArrayView (arrayView) {\n\t if (isInstance(arrayView, GlobalUint8Array)) {\n\t const copy = new GlobalUint8Array(arrayView);\n\t return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n\t }\n\t return fromArrayLike(arrayView)\n\t}\n\n\tfunction fromArrayBuffer (array, byteOffset, length) {\n\t if (byteOffset < 0 || array.byteLength < byteOffset) {\n\t throw new RangeError('\"offset\" is outside of buffer bounds')\n\t }\n\n\t if (array.byteLength < byteOffset + (length || 0)) {\n\t throw new RangeError('\"length\" is outside of buffer bounds')\n\t }\n\n\t let buf;\n\t if (byteOffset === undefined && length === undefined) {\n\t buf = new GlobalUint8Array(array);\n\t } else if (length === undefined) {\n\t buf = new GlobalUint8Array(array, byteOffset);\n\t } else {\n\t buf = new GlobalUint8Array(array, byteOffset, length);\n\t }\n\n\t // Return an augmented `Uint8Array` instance\n\t Object.setPrototypeOf(buf, Buffer.prototype);\n\n\t return buf\n\t}\n\n\tfunction fromObject (obj) {\n\t if (Buffer.isBuffer(obj)) {\n\t const len = checked(obj.length) | 0;\n\t const buf = createBuffer(len);\n\n\t if (buf.length === 0) {\n\t return buf\n\t }\n\n\t obj.copy(buf, 0, 0, len);\n\t return buf\n\t }\n\n\t if (obj.length !== undefined) {\n\t if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n\t return createBuffer(0)\n\t }\n\t return fromArrayLike(obj)\n\t }\n\n\t if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n\t return fromArrayLike(obj.data)\n\t }\n\t}\n\n\tfunction checked (length) {\n\t // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n\t // length is NaN (which is otherwise coerced to zero.)\n\t if (length >= K_MAX_LENGTH) {\n\t throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n\t 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n\t }\n\t return length | 0\n\t}\n\n\tfunction SlowBuffer (length) {\n\t if (+length != length) { // eslint-disable-line eqeqeq\n\t length = 0;\n\t }\n\t return Buffer.alloc(+length)\n\t}\n\n\tBuffer.isBuffer = function isBuffer (b) {\n\t return b != null && b._isBuffer === true &&\n\t b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n\t};\n\n\tBuffer.compare = function compare (a, b) {\n\t if (isInstance(a, GlobalUint8Array)) a = Buffer.from(a, a.offset, a.byteLength);\n\t if (isInstance(b, GlobalUint8Array)) b = Buffer.from(b, b.offset, b.byteLength);\n\t if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n\t throw new TypeError(\n\t 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n\t )\n\t }\n\n\t if (a === b) return 0\n\n\t let x = a.length;\n\t let y = b.length;\n\n\t for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n\t if (a[i] !== b[i]) {\n\t x = a[i];\n\t y = b[i];\n\t break\n\t }\n\t }\n\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t};\n\n\tBuffer.isEncoding = function isEncoding (encoding) {\n\t switch (String(encoding).toLowerCase()) {\n\t case 'hex':\n\t case 'utf8':\n\t case 'utf-8':\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t case 'base64':\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return true\n\t default:\n\t return false\n\t }\n\t};\n\n\tBuffer.concat = function concat (list, length) {\n\t if (!Array.isArray(list)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t }\n\n\t if (list.length === 0) {\n\t return Buffer.alloc(0)\n\t }\n\n\t let i;\n\t if (length === undefined) {\n\t length = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t length += list[i].length;\n\t }\n\t }\n\n\t const buffer = Buffer.allocUnsafe(length);\n\t let pos = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t let buf = list[i];\n\t if (isInstance(buf, GlobalUint8Array)) {\n\t if (pos + buf.length > buffer.length) {\n\t if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf);\n\t buf.copy(buffer, pos);\n\t } else {\n\t GlobalUint8Array.prototype.set.call(\n\t buffer,\n\t buf,\n\t pos\n\t );\n\t }\n\t } else if (!Buffer.isBuffer(buf)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t } else {\n\t buf.copy(buffer, pos);\n\t }\n\t pos += buf.length;\n\t }\n\t return buffer\n\t};\n\n\tfunction byteLength (string, encoding) {\n\t if (Buffer.isBuffer(string)) {\n\t return string.length\n\t }\n\t if (GlobalArrayBuffer.isView(string) || isInstance(string, GlobalArrayBuffer)) {\n\t return string.byteLength\n\t }\n\t if (typeof string !== 'string') {\n\t throw new TypeError(\n\t 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n\t 'Received type ' + typeof string\n\t )\n\t }\n\n\t const len = string.length;\n\t const mustMatch = (arguments.length > 2 && arguments[2] === true);\n\t if (!mustMatch && len === 0) return 0\n\n\t // Use a for loop to avoid recursion\n\t let loweredCase = false;\n\t for (;;) {\n\t switch (encoding) {\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t return len\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8ToBytes(string).length\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return len * 2\n\t case 'hex':\n\t return len >>> 1\n\t case 'base64':\n\t return base64ToBytes(string).length\n\t default:\n\t if (loweredCase) {\n\t return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n\t }\n\t encoding = ('' + encoding).toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t}\n\tBuffer.byteLength = byteLength;\n\n\tfunction slowToString (encoding, start, end) {\n\t let loweredCase = false;\n\n\t // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n\t // property of a typed array.\n\n\t // This behaves neither like String nor Uint8Array in that we set start/end\n\t // to their upper/lower bounds if the value passed is out of range.\n\t // undefined is handled specially as per ECMA-262 6th Edition,\n\t // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n\t if (start === undefined || start < 0) {\n\t start = 0;\n\t }\n\t // Return early if start > this.length. Done here to prevent potential uint32\n\t // coercion fail below.\n\t if (start > this.length) {\n\t return ''\n\t }\n\n\t if (end === undefined || end > this.length) {\n\t end = this.length;\n\t }\n\n\t if (end <= 0) {\n\t return ''\n\t }\n\n\t // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n\t end >>>= 0;\n\t start >>>= 0;\n\n\t if (end <= start) {\n\t return ''\n\t }\n\n\t if (!encoding) encoding = 'utf8';\n\n\t while (true) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexSlice(this, start, end)\n\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Slice(this, start, end)\n\n\t case 'ascii':\n\t return asciiSlice(this, start, end)\n\n\t case 'latin1':\n\t case 'binary':\n\t return latin1Slice(this, start, end)\n\n\t case 'base64':\n\t return base64Slice(this, start, end)\n\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return utf16leSlice(this, start, end)\n\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = (encoding + '').toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t}\n\n\t// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n\t// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n\t// reliably in a browserify context because there could be multiple different\n\t// copies of the 'buffer' package in use. This method works even for Buffer\n\t// instances that were created from another copy of the `buffer` package.\n\t// See: https://github.com/feross/buffer/issues/154\n\tBuffer.prototype._isBuffer = true;\n\n\tfunction swap (b, n, m) {\n\t const i = b[n];\n\t b[n] = b[m];\n\t b[m] = i;\n\t}\n\n\tBuffer.prototype.swap16 = function swap16 () {\n\t const len = this.length;\n\t if (len % 2 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 16-bits')\n\t }\n\t for (let i = 0; i < len; i += 2) {\n\t swap(this, i, i + 1);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.swap32 = function swap32 () {\n\t const len = this.length;\n\t if (len % 4 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 32-bits')\n\t }\n\t for (let i = 0; i < len; i += 4) {\n\t swap(this, i, i + 3);\n\t swap(this, i + 1, i + 2);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.swap64 = function swap64 () {\n\t const len = this.length;\n\t if (len % 8 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 64-bits')\n\t }\n\t for (let i = 0; i < len; i += 8) {\n\t swap(this, i, i + 7);\n\t swap(this, i + 1, i + 6);\n\t swap(this, i + 2, i + 5);\n\t swap(this, i + 3, i + 4);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.toString = function toString () {\n\t const length = this.length;\n\t if (length === 0) return ''\n\t if (arguments.length === 0) return utf8Slice(this, 0, length)\n\t return slowToString.apply(this, arguments)\n\t};\n\n\tBuffer.prototype.toLocaleString = Buffer.prototype.toString;\n\n\tBuffer.prototype.equals = function equals (b) {\n\t if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n\t if (this === b) return true\n\t return Buffer.compare(this, b) === 0\n\t};\n\n\tBuffer.prototype.inspect = function inspect () {\n\t let str = '';\n\t const max = exports.INSPECT_MAX_BYTES;\n\t str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim();\n\t if (this.length > max) str += ' ... ';\n\t return ''\n\t};\n\tif (customInspectSymbol) {\n\t Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect;\n\t}\n\n\tBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n\t if (isInstance(target, GlobalUint8Array)) {\n\t target = Buffer.from(target, target.offset, target.byteLength);\n\t }\n\t if (!Buffer.isBuffer(target)) {\n\t throw new TypeError(\n\t 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n\t 'Received type ' + (typeof target)\n\t )\n\t }\n\n\t if (start === undefined) {\n\t start = 0;\n\t }\n\t if (end === undefined) {\n\t end = target ? target.length : 0;\n\t }\n\t if (thisStart === undefined) {\n\t thisStart = 0;\n\t }\n\t if (thisEnd === undefined) {\n\t thisEnd = this.length;\n\t }\n\n\t if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n\t throw new RangeError('out of range index')\n\t }\n\n\t if (thisStart >= thisEnd && start >= end) {\n\t return 0\n\t }\n\t if (thisStart >= thisEnd) {\n\t return -1\n\t }\n\t if (start >= end) {\n\t return 1\n\t }\n\n\t start >>>= 0;\n\t end >>>= 0;\n\t thisStart >>>= 0;\n\t thisEnd >>>= 0;\n\n\t if (this === target) return 0\n\n\t let x = thisEnd - thisStart;\n\t let y = end - start;\n\t const len = Math.min(x, y);\n\n\t const thisCopy = this.slice(thisStart, thisEnd);\n\t const targetCopy = target.slice(start, end);\n\n\t for (let i = 0; i < len; ++i) {\n\t if (thisCopy[i] !== targetCopy[i]) {\n\t x = thisCopy[i];\n\t y = targetCopy[i];\n\t break\n\t }\n\t }\n\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t};\n\n\t// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n\t// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n\t//\n\t// Arguments:\n\t// - buffer - a Buffer to search\n\t// - val - a string, Buffer, or number\n\t// - byteOffset - an index into `buffer`; will be clamped to an int32\n\t// - encoding - an optional encoding, relevant is val is a string\n\t// - dir - true for indexOf, false for lastIndexOf\n\tfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n\t // Empty buffer means no match\n\t if (buffer.length === 0) return -1\n\n\t // Normalize byteOffset\n\t if (typeof byteOffset === 'string') {\n\t encoding = byteOffset;\n\t byteOffset = 0;\n\t } else if (byteOffset > 0x7fffffff) {\n\t byteOffset = 0x7fffffff;\n\t } else if (byteOffset < -0x80000000) {\n\t byteOffset = -0x80000000;\n\t }\n\t byteOffset = +byteOffset; // Coerce to Number.\n\t if (numberIsNaN(byteOffset)) {\n\t // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n\t byteOffset = dir ? 0 : (buffer.length - 1);\n\t }\n\n\t // Normalize byteOffset: negative offsets start from the end of the buffer\n\t if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\t if (byteOffset >= buffer.length) {\n\t if (dir) return -1\n\t else byteOffset = buffer.length - 1;\n\t } else if (byteOffset < 0) {\n\t if (dir) byteOffset = 0;\n\t else return -1\n\t }\n\n\t // Normalize val\n\t if (typeof val === 'string') {\n\t val = Buffer.from(val, encoding);\n\t }\n\n\t // Finally, search either indexOf (if dir is true) or lastIndexOf\n\t if (Buffer.isBuffer(val)) {\n\t // Special case: looking for empty string/buffer always fails\n\t if (val.length === 0) {\n\t return -1\n\t }\n\t return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n\t } else if (typeof val === 'number') {\n\t val = val & 0xFF; // Search for a byte value [0-255]\n\t if (typeof GlobalUint8Array.prototype.indexOf === 'function') {\n\t if (dir) {\n\t return GlobalUint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n\t } else {\n\t return GlobalUint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n\t }\n\t }\n\t return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n\t }\n\n\t throw new TypeError('val must be string, number or Buffer')\n\t}\n\n\tfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n\t let indexSize = 1;\n\t let arrLength = arr.length;\n\t let valLength = val.length;\n\n\t if (encoding !== undefined) {\n\t encoding = String(encoding).toLowerCase();\n\t if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n\t encoding === 'utf16le' || encoding === 'utf-16le') {\n\t if (arr.length < 2 || val.length < 2) {\n\t return -1\n\t }\n\t indexSize = 2;\n\t arrLength /= 2;\n\t valLength /= 2;\n\t byteOffset /= 2;\n\t }\n\t }\n\n\t function read (buf, i) {\n\t if (indexSize === 1) {\n\t return buf[i]\n\t } else {\n\t return buf.readUInt16BE(i * indexSize)\n\t }\n\t }\n\n\t let i;\n\t if (dir) {\n\t let foundIndex = -1;\n\t for (i = byteOffset; i < arrLength; i++) {\n\t if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n\t if (foundIndex === -1) foundIndex = i;\n\t if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n\t } else {\n\t if (foundIndex !== -1) i -= i - foundIndex;\n\t foundIndex = -1;\n\t }\n\t }\n\t } else {\n\t if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n\t for (i = byteOffset; i >= 0; i--) {\n\t let found = true;\n\t for (let j = 0; j < valLength; j++) {\n\t if (read(arr, i + j) !== read(val, j)) {\n\t found = false;\n\t break\n\t }\n\t }\n\t if (found) return i\n\t }\n\t }\n\n\t return -1\n\t}\n\n\tBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n\t return this.indexOf(val, byteOffset, encoding) !== -1\n\t};\n\n\tBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n\t};\n\n\tBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n\t};\n\n\tfunction hexWrite (buf, string, offset, length) {\n\t offset = Number(offset) || 0;\n\t const remaining = buf.length - offset;\n\t if (!length) {\n\t length = remaining;\n\t } else {\n\t length = Number(length);\n\t if (length > remaining) {\n\t length = remaining;\n\t }\n\t }\n\n\t const strLen = string.length;\n\n\t if (length > strLen / 2) {\n\t length = strLen / 2;\n\t }\n\t let i;\n\t for (i = 0; i < length; ++i) {\n\t const parsed = parseInt(string.substr(i * 2, 2), 16);\n\t if (numberIsNaN(parsed)) return i\n\t buf[offset + i] = parsed;\n\t }\n\t return i\n\t}\n\n\tfunction utf8Write (buf, string, offset, length) {\n\t return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tfunction asciiWrite (buf, string, offset, length) {\n\t return blitBuffer(asciiToBytes(string), buf, offset, length)\n\t}\n\n\tfunction base64Write (buf, string, offset, length) {\n\t return blitBuffer(base64ToBytes(string), buf, offset, length)\n\t}\n\n\tfunction ucs2Write (buf, string, offset, length) {\n\t return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tBuffer.prototype.write = function write (string, offset, length, encoding) {\n\t // Buffer#write(string)\n\t if (offset === undefined) {\n\t encoding = 'utf8';\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, encoding)\n\t } else if (length === undefined && typeof offset === 'string') {\n\t encoding = offset;\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, offset[, length][, encoding])\n\t } else if (isFinite(offset)) {\n\t offset = offset >>> 0;\n\t if (isFinite(length)) {\n\t length = length >>> 0;\n\t if (encoding === undefined) encoding = 'utf8';\n\t } else {\n\t encoding = length;\n\t length = undefined;\n\t }\n\t } else {\n\t throw new Error(\n\t 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n\t )\n\t }\n\n\t const remaining = this.length - offset;\n\t if (length === undefined || length > remaining) length = remaining;\n\n\t if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n\t throw new RangeError('Attempt to write outside buffer bounds')\n\t }\n\n\t if (!encoding) encoding = 'utf8';\n\n\t let loweredCase = false;\n\t for (;;) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexWrite(this, string, offset, length)\n\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Write(this, string, offset, length)\n\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t return asciiWrite(this, string, offset, length)\n\n\t case 'base64':\n\t // Warning: maxLength not taken into account in base64Write\n\t return base64Write(this, string, offset, length)\n\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return ucs2Write(this, string, offset, length)\n\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = ('' + encoding).toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t};\n\n\tBuffer.prototype.toJSON = function toJSON () {\n\t return {\n\t type: 'Buffer',\n\t data: Array.prototype.slice.call(this._arr || this, 0)\n\t }\n\t};\n\n\tfunction base64Slice (buf, start, end) {\n\t if (start === 0 && end === buf.length) {\n\t return base64.fromByteArray(buf)\n\t } else {\n\t return base64.fromByteArray(buf.slice(start, end))\n\t }\n\t}\n\n\tfunction utf8Slice (buf, start, end) {\n\t end = Math.min(buf.length, end);\n\t const res = [];\n\n\t let i = start;\n\t while (i < end) {\n\t const firstByte = buf[i];\n\t let codePoint = null;\n\t let bytesPerSequence = (firstByte > 0xEF)\n\t ? 4\n\t : (firstByte > 0xDF)\n\t ? 3\n\t : (firstByte > 0xBF)\n\t ? 2\n\t : 1;\n\n\t if (i + bytesPerSequence <= end) {\n\t let secondByte, thirdByte, fourthByte, tempCodePoint;\n\n\t switch (bytesPerSequence) {\n\t case 1:\n\t if (firstByte < 0x80) {\n\t codePoint = firstByte;\n\t }\n\t break\n\t case 2:\n\t secondByte = buf[i + 1];\n\t if ((secondByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F);\n\t if (tempCodePoint > 0x7F) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t break\n\t case 3:\n\t secondByte = buf[i + 1];\n\t thirdByte = buf[i + 2];\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F);\n\t if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t break\n\t case 4:\n\t secondByte = buf[i + 1];\n\t thirdByte = buf[i + 2];\n\t fourthByte = buf[i + 3];\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F);\n\t if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t }\n\t }\n\n\t if (codePoint === null) {\n\t // we did not generate a valid codePoint so insert a\n\t // replacement char (U+FFFD) and advance only 1 byte\n\t codePoint = 0xFFFD;\n\t bytesPerSequence = 1;\n\t } else if (codePoint > 0xFFFF) {\n\t // encode to utf16 (surrogate pair dance)\n\t codePoint -= 0x10000;\n\t res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n\t codePoint = 0xDC00 | codePoint & 0x3FF;\n\t }\n\n\t res.push(codePoint);\n\t i += bytesPerSequence;\n\t }\n\n\t return decodeCodePointsArray(res)\n\t}\n\n\t// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n\t// the lowest limit is Chrome, with 0x10000 args.\n\t// We go 1 magnitude less, for safety\n\tconst MAX_ARGUMENTS_LENGTH = 0x1000;\n\n\tfunction decodeCodePointsArray (codePoints) {\n\t const len = codePoints.length;\n\t if (len <= MAX_ARGUMENTS_LENGTH) {\n\t return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n\t }\n\n\t // Decode in chunks to avoid \"call stack size exceeded\".\n\t let res = '';\n\t let i = 0;\n\t while (i < len) {\n\t res += String.fromCharCode.apply(\n\t String,\n\t codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n\t );\n\t }\n\t return res\n\t}\n\n\tfunction asciiSlice (buf, start, end) {\n\t let ret = '';\n\t end = Math.min(buf.length, end);\n\n\t for (let i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i] & 0x7F);\n\t }\n\t return ret\n\t}\n\n\tfunction latin1Slice (buf, start, end) {\n\t let ret = '';\n\t end = Math.min(buf.length, end);\n\n\t for (let i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i]);\n\t }\n\t return ret\n\t}\n\n\tfunction hexSlice (buf, start, end) {\n\t const len = buf.length;\n\n\t if (!start || start < 0) start = 0;\n\t if (!end || end < 0 || end > len) end = len;\n\n\t let out = '';\n\t for (let i = start; i < end; ++i) {\n\t out += hexSliceLookupTable[buf[i]];\n\t }\n\t return out\n\t}\n\n\tfunction utf16leSlice (buf, start, end) {\n\t const bytes = buf.slice(start, end);\n\t let res = '';\n\t // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n\t for (let i = 0; i < bytes.length - 1; i += 2) {\n\t res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256));\n\t }\n\t return res\n\t}\n\n\tBuffer.prototype.slice = function slice (start, end) {\n\t const len = this.length;\n\t start = ~~start;\n\t end = end === undefined ? len : ~~end;\n\n\t if (start < 0) {\n\t start += len;\n\t if (start < 0) start = 0;\n\t } else if (start > len) {\n\t start = len;\n\t }\n\n\t if (end < 0) {\n\t end += len;\n\t if (end < 0) end = 0;\n\t } else if (end > len) {\n\t end = len;\n\t }\n\n\t if (end < start) end = start;\n\n\t const newBuf = this.subarray(start, end);\n\t // Return an augmented `Uint8Array` instance\n\t Object.setPrototypeOf(newBuf, Buffer.prototype);\n\n\t return newBuf\n\t};\n\n\t/*\n\t * Need to make sure that buffer isn't trying to write out of bounds.\n\t */\n\tfunction checkOffset (offset, ext, length) {\n\t if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n\t if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n\t}\n\n\tBuffer.prototype.readUintLE =\n\tBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let val = this[offset];\n\t let mul = 1;\n\t let i = 0;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul;\n\t }\n\n\t return val\n\t};\n\n\tBuffer.prototype.readUintBE =\n\tBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t checkOffset(offset, byteLength, this.length);\n\t }\n\n\t let val = this[offset + --byteLength];\n\t let mul = 1;\n\t while (byteLength > 0 && (mul *= 0x100)) {\n\t val += this[offset + --byteLength] * mul;\n\t }\n\n\t return val\n\t};\n\n\tBuffer.prototype.readUint8 =\n\tBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t return this[offset]\n\t};\n\n\tBuffer.prototype.readUint16LE =\n\tBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t return this[offset] | (this[offset + 1] << 8)\n\t};\n\n\tBuffer.prototype.readUint16BE =\n\tBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t return (this[offset] << 8) | this[offset + 1]\n\t};\n\n\tBuffer.prototype.readUint32LE =\n\tBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return ((this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16)) +\n\t (this[offset + 3] * 0x1000000)\n\t};\n\n\tBuffer.prototype.readUint32BE =\n\tBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset] * 0x1000000) +\n\t ((this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t this[offset + 3])\n\t};\n\n\tBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const lo = first +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 24;\n\n\t const hi = this[++offset] +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t last * 2 ** 24;\n\n\t return BigInt(lo) + (BigInt(hi) << BigInt(32))\n\t});\n\n\tBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const hi = first * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset];\n\n\t const lo = this[++offset] * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t last;\n\n\t return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n\t});\n\n\tBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let val = this[offset];\n\t let mul = 1;\n\t let i = 0;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul;\n\t }\n\t mul *= 0x80;\n\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t return val\n\t};\n\n\tBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let i = byteLength;\n\t let mul = 1;\n\t let val = this[offset + --i];\n\t while (i > 0 && (mul *= 0x100)) {\n\t val += this[offset + --i] * mul;\n\t }\n\t mul *= 0x80;\n\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t return val\n\t};\n\n\tBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t if (!(this[offset] & 0x80)) return (this[offset])\n\t return ((0xff - this[offset] + 1) * -1)\n\t};\n\n\tBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t const val = this[offset] | (this[offset + 1] << 8);\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t};\n\n\tBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t const val = this[offset + 1] | (this[offset] << 8);\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t};\n\n\tBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16) |\n\t (this[offset + 3] << 24)\n\t};\n\n\tBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset] << 24) |\n\t (this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t (this[offset + 3])\n\t};\n\n\tBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const val = this[offset + 4] +\n\t this[offset + 5] * 2 ** 8 +\n\t this[offset + 6] * 2 ** 16 +\n\t (last << 24); // Overflow\n\n\t return (BigInt(val) << BigInt(32)) +\n\t BigInt(first +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 24)\n\t});\n\n\tBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const val = (first << 24) + // Overflow\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset];\n\n\t return (BigInt(val) << BigInt(32)) +\n\t BigInt(this[++offset] * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t last)\n\t});\n\n\tBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t return ieee754$1.read(this, offset, true, 23, 4)\n\t};\n\n\tBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t return ieee754$1.read(this, offset, false, 23, 4)\n\t};\n\n\tBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t return ieee754$1.read(this, offset, true, 52, 8)\n\t};\n\n\tBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t return ieee754$1.read(this, offset, false, 52, 8)\n\t};\n\n\tfunction checkInt (buf, value, offset, ext, max, min) {\n\t if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n\t if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t}\n\n\tBuffer.prototype.writeUintLE =\n\tBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t }\n\n\t let mul = 1;\n\t let i = 0;\n\t this[offset] = value & 0xFF;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeUintBE =\n\tBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t }\n\n\t let i = byteLength - 1;\n\t let mul = 1;\n\t this[offset + i] = value & 0xFF;\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeUint8 =\n\tBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n\t this[offset] = (value & 0xff);\n\t return offset + 1\n\t};\n\n\tBuffer.prototype.writeUint16LE =\n\tBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeUint16BE =\n\tBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t this[offset] = (value >>> 8);\n\t this[offset + 1] = (value & 0xff);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeUint32LE =\n\tBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t this[offset + 3] = (value >>> 24);\n\t this[offset + 2] = (value >>> 16);\n\t this[offset + 1] = (value >>> 8);\n\t this[offset] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeUint32BE =\n\tBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t this[offset] = (value >>> 24);\n\t this[offset + 1] = (value >>> 16);\n\t this[offset + 2] = (value >>> 8);\n\t this[offset + 3] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n\t checkIntBI(value, min, max, buf, offset, 7);\n\n\t let lo = Number(value & BigInt(0xffffffff));\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t let hi = Number(value >> BigInt(32) & BigInt(0xffffffff));\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t return offset\n\t}\n\n\tfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n\t checkIntBI(value, min, max, buf, offset, 7);\n\n\t let lo = Number(value & BigInt(0xffffffff));\n\t buf[offset + 7] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 6] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 5] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 4] = lo;\n\t let hi = Number(value >> BigInt(32) & BigInt(0xffffffff));\n\t buf[offset + 3] = hi;\n\t hi = hi >> 8;\n\t buf[offset + 2] = hi;\n\t hi = hi >> 8;\n\t buf[offset + 1] = hi;\n\t hi = hi >> 8;\n\t buf[offset] = hi;\n\t return offset + 8\n\t}\n\n\tBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n\t return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n\t return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t const limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t }\n\n\t let i = 0;\n\t let mul = 1;\n\t let sub = 0;\n\t this[offset] = value & 0xFF;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n\t sub = 1;\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t const limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t }\n\n\t let i = byteLength - 1;\n\t let mul = 1;\n\t let sub = 0;\n\t this[offset + i] = value & 0xFF;\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n\t sub = 1;\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n\t if (value < 0) value = 0xff + value + 1;\n\t this[offset] = (value & 0xff);\n\t return offset + 1\n\t};\n\n\tBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\t this[offset] = (value >>> 8);\n\t this[offset + 1] = (value & 0xff);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t this[offset + 2] = (value >>> 16);\n\t this[offset + 3] = (value >>> 24);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\t if (value < 0) value = 0xffffffff + value + 1;\n\t this[offset] = (value >>> 24);\n\t this[offset + 1] = (value >>> 16);\n\t this[offset + 2] = (value >>> 8);\n\t this[offset + 3] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n\t return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n\t return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n\t});\n\n\tfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t if (offset < 0) throw new RangeError('Index out of range')\n\t}\n\n\tfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 4);\n\t }\n\t ieee754$1.write(buf, value, offset, littleEndian, 23, 4);\n\t return offset + 4\n\t}\n\n\tBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, true, noAssert)\n\t};\n\n\tBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, false, noAssert)\n\t};\n\n\tfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 8);\n\t }\n\t ieee754$1.write(buf, value, offset, littleEndian, 52, 8);\n\t return offset + 8\n\t}\n\n\tBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, true, noAssert)\n\t};\n\n\tBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, false, noAssert)\n\t};\n\n\t// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\tBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n\t if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n\t if (!start) start = 0;\n\t if (!end && end !== 0) end = this.length;\n\t if (targetStart >= target.length) targetStart = target.length;\n\t if (!targetStart) targetStart = 0;\n\t if (end > 0 && end < start) end = start;\n\n\t // Copy 0 bytes; we're done\n\t if (end === start) return 0\n\t if (target.length === 0 || this.length === 0) return 0\n\n\t // Fatal error conditions\n\t if (targetStart < 0) {\n\t throw new RangeError('targetStart out of bounds')\n\t }\n\t if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n\t if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n\t // Are we oob?\n\t if (end > this.length) end = this.length;\n\t if (target.length - targetStart < end - start) {\n\t end = target.length - targetStart + start;\n\t }\n\n\t const len = end - start;\n\n\t if (this === target && typeof GlobalUint8Array.prototype.copyWithin === 'function') {\n\t // Use built-in when available, missing from IE11\n\t this.copyWithin(targetStart, start, end);\n\t } else {\n\t GlobalUint8Array.prototype.set.call(\n\t target,\n\t this.subarray(start, end),\n\t targetStart\n\t );\n\t }\n\n\t return len\n\t};\n\n\t// Usage:\n\t// buffer.fill(number[, offset[, end]])\n\t// buffer.fill(buffer[, offset[, end]])\n\t// buffer.fill(string[, offset[, end]][, encoding])\n\tBuffer.prototype.fill = function fill (val, start, end, encoding) {\n\t // Handle string cases:\n\t if (typeof val === 'string') {\n\t if (typeof start === 'string') {\n\t encoding = start;\n\t start = 0;\n\t end = this.length;\n\t } else if (typeof end === 'string') {\n\t encoding = end;\n\t end = this.length;\n\t }\n\t if (encoding !== undefined && typeof encoding !== 'string') {\n\t throw new TypeError('encoding must be a string')\n\t }\n\t if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\t if (val.length === 1) {\n\t const code = val.charCodeAt(0);\n\t if ((encoding === 'utf8' && code < 128) ||\n\t encoding === 'latin1') {\n\t // Fast path: If `val` fits into a single byte, use that numeric value.\n\t val = code;\n\t }\n\t }\n\t } else if (typeof val === 'number') {\n\t val = val & 255;\n\t } else if (typeof val === 'boolean') {\n\t val = Number(val);\n\t }\n\n\t // Invalid ranges are not set to a default, so can range check early.\n\t if (start < 0 || this.length < start || this.length < end) {\n\t throw new RangeError('Out of range index')\n\t }\n\n\t if (end <= start) {\n\t return this\n\t }\n\n\t start = start >>> 0;\n\t end = end === undefined ? this.length : end >>> 0;\n\n\t if (!val) val = 0;\n\n\t let i;\n\t if (typeof val === 'number') {\n\t for (i = start; i < end; ++i) {\n\t this[i] = val;\n\t }\n\t } else {\n\t const bytes = Buffer.isBuffer(val)\n\t ? val\n\t : Buffer.from(val, encoding);\n\t const len = bytes.length;\n\t if (len === 0) {\n\t throw new TypeError('The value \"' + val +\n\t '\" is invalid for argument \"value\"')\n\t }\n\t for (i = 0; i < end - start; ++i) {\n\t this[i + start] = bytes[i % len];\n\t }\n\t }\n\n\t return this\n\t};\n\n\t// CUSTOM ERRORS\n\t// =============\n\n\t// Simplified versions from Node, changed for Buffer-only usage\n\tconst errors = {};\n\tfunction E (sym, getMessage, Base) {\n\t errors[sym] = class NodeError extends Base {\n\t constructor () {\n\t super();\n\n\t Object.defineProperty(this, 'message', {\n\t value: getMessage.apply(this, arguments),\n\t writable: true,\n\t configurable: true\n\t });\n\n\t // Add the error code to the name to include it in the stack trace.\n\t this.name = `${this.name} [${sym}]`;\n\t // Access the stack to generate the error message including the error code\n\t // from the name.\n\t this.stack; // eslint-disable-line no-unused-expressions\n\t // Reset the name to the actual name.\n\t delete this.name;\n\t }\n\n\t get code () {\n\t return sym\n\t }\n\n\t set code (value) {\n\t Object.defineProperty(this, 'code', {\n\t configurable: true,\n\t enumerable: true,\n\t value,\n\t writable: true\n\t });\n\t }\n\n\t toString () {\n\t return `${this.name} [${sym}]: ${this.message}`\n\t }\n\t };\n\t}\n\n\tE('ERR_BUFFER_OUT_OF_BOUNDS',\n\t function (name) {\n\t if (name) {\n\t return `${name} is outside of buffer bounds`\n\t }\n\n\t return 'Attempt to access memory outside buffer bounds'\n\t }, RangeError);\n\tE('ERR_INVALID_ARG_TYPE',\n\t function (name, actual) {\n\t return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n\t }, TypeError);\n\tE('ERR_OUT_OF_RANGE',\n\t function (str, range, input) {\n\t let msg = `The value of \"${str}\" is out of range.`;\n\t let received = input;\n\t if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n\t received = addNumericalSeparator(String(input));\n\t } else if (typeof input === 'bigint') {\n\t received = String(input);\n\t if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n\t received = addNumericalSeparator(received);\n\t }\n\t received += 'n';\n\t }\n\t msg += ` It must be ${range}. Received ${received}`;\n\t return msg\n\t }, RangeError);\n\n\tfunction addNumericalSeparator (val) {\n\t let res = '';\n\t let i = val.length;\n\t const start = val[0] === '-' ? 1 : 0;\n\t for (; i >= start + 4; i -= 3) {\n\t res = `_${val.slice(i - 3, i)}${res}`;\n\t }\n\t return `${val.slice(0, i)}${res}`\n\t}\n\n\t// CHECK FUNCTIONS\n\t// ===============\n\n\tfunction checkBounds (buf, offset, byteLength) {\n\t validateNumber(offset, 'offset');\n\t if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n\t boundsError(offset, buf.length - (byteLength + 1));\n\t }\n\t}\n\n\tfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n\t if (value > max || value < min) {\n\t const n = typeof min === 'bigint' ? 'n' : '';\n\t let range;\n\t if (byteLength > 3) {\n\t if (min === 0 || min === BigInt(0)) {\n\t range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`;\n\t } else {\n\t range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n\t `${(byteLength + 1) * 8 - 1}${n}`;\n\t }\n\t } else {\n\t range = `>= ${min}${n} and <= ${max}${n}`;\n\t }\n\t throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n\t }\n\t checkBounds(buf, offset, byteLength);\n\t}\n\n\tfunction validateNumber (value, name) {\n\t if (typeof value !== 'number') {\n\t throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n\t }\n\t}\n\n\tfunction boundsError (value, length, type) {\n\t if (Math.floor(value) !== value) {\n\t validateNumber(value, type);\n\t throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n\t }\n\n\t if (length < 0) {\n\t throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n\t }\n\n\t throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n\t `>= ${type ? 1 : 0} and <= ${length}`,\n\t value)\n\t}\n\n\t// HELPER FUNCTIONS\n\t// ================\n\n\tconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n\n\tfunction base64clean (str) {\n\t // Node takes equal signs as end of the Base64 encoding\n\t str = str.split('=')[0];\n\t // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n\t str = str.trim().replace(INVALID_BASE64_RE, '');\n\t // Node converts strings with length < 2 to ''\n\t if (str.length < 2) return ''\n\t // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\t while (str.length % 4 !== 0) {\n\t str = str + '=';\n\t }\n\t return str\n\t}\n\n\tfunction utf8ToBytes (string, units) {\n\t units = units || Infinity;\n\t let codePoint;\n\t const length = string.length;\n\t let leadSurrogate = null;\n\t const bytes = [];\n\n\t for (let i = 0; i < length; ++i) {\n\t codePoint = string.charCodeAt(i);\n\n\t // is surrogate component\n\t if (codePoint > 0xD7FF && codePoint < 0xE000) {\n\t // last char was a lead\n\t if (!leadSurrogate) {\n\t // no lead yet\n\t if (codePoint > 0xDBFF) {\n\t // unexpected trail\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t } else if (i + 1 === length) {\n\t // unpaired lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t }\n\n\t // valid lead\n\t leadSurrogate = codePoint;\n\n\t continue\n\t }\n\n\t // 2 leads in a row\n\t if (codePoint < 0xDC00) {\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t leadSurrogate = codePoint;\n\t continue\n\t }\n\n\t // valid surrogate pair\n\t codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n\t } else if (leadSurrogate) {\n\t // valid bmp char, but last char was a lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t }\n\n\t leadSurrogate = null;\n\n\t // encode utf8\n\t if (codePoint < 0x80) {\n\t if ((units -= 1) < 0) break\n\t bytes.push(codePoint);\n\t } else if (codePoint < 0x800) {\n\t if ((units -= 2) < 0) break\n\t bytes.push(\n\t codePoint >> 0x6 | 0xC0,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x10000) {\n\t if ((units -= 3) < 0) break\n\t bytes.push(\n\t codePoint >> 0xC | 0xE0,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x110000) {\n\t if ((units -= 4) < 0) break\n\t bytes.push(\n\t codePoint >> 0x12 | 0xF0,\n\t codePoint >> 0xC & 0x3F | 0x80,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else {\n\t throw new Error('Invalid code point')\n\t }\n\t }\n\n\t return bytes\n\t}\n\n\tfunction asciiToBytes (str) {\n\t const byteArray = [];\n\t for (let i = 0; i < str.length; ++i) {\n\t // Node's code seems to be doing this and not & 0x7F..\n\t byteArray.push(str.charCodeAt(i) & 0xFF);\n\t }\n\t return byteArray\n\t}\n\n\tfunction utf16leToBytes (str, units) {\n\t let c, hi, lo;\n\t const byteArray = [];\n\t for (let i = 0; i < str.length; ++i) {\n\t if ((units -= 2) < 0) break\n\n\t c = str.charCodeAt(i);\n\t hi = c >> 8;\n\t lo = c % 256;\n\t byteArray.push(lo);\n\t byteArray.push(hi);\n\t }\n\n\t return byteArray\n\t}\n\n\tfunction base64ToBytes (str) {\n\t return base64.toByteArray(base64clean(str))\n\t}\n\n\tfunction blitBuffer (src, dst, offset, length) {\n\t let i;\n\t for (i = 0; i < length; ++i) {\n\t if ((i + offset >= dst.length) || (i >= src.length)) break\n\t dst[i + offset] = src[i];\n\t }\n\t return i\n\t}\n\n\t// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n\t// the `instanceof` check but they should be treated as of that type.\n\t// See: https://github.com/feross/buffer/issues/166\n\tfunction isInstance (obj, type) {\n\t return obj instanceof type ||\n\t (obj != null && obj.constructor != null && obj.constructor.name != null &&\n\t obj.constructor.name === type.name)\n\t}\n\tfunction numberIsNaN (obj) {\n\t // For IE11 support\n\t return obj !== obj // eslint-disable-line no-self-compare\n\t}\n\n\t// Create lookup table for `toString('hex')`\n\t// See: https://github.com/feross/buffer/issues/219\n\tconst hexSliceLookupTable = (function () {\n\t const alphabet = '0123456789abcdef';\n\t const table = new Array(256);\n\t for (let i = 0; i < 16; ++i) {\n\t const i16 = i * 16;\n\t for (let j = 0; j < 16; ++j) {\n\t table[i16 + j] = alphabet[i] + alphabet[j];\n\t }\n\t }\n\t return table\n\t})();\n\n\t// Return not function with Error if BigInt not supported\n\tfunction defineBigIntMethod (fn) {\n\t return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n\t}\n\n\tfunction BufferBigIntNotDefined () {\n\t throw new Error('BigInt not supported')\n\t} \n} (buffer));\n\nconst Buffer = buffer.Buffer;\n\nconst Blob = buffer.Blob;\nconst BlobOptions = buffer.BlobOptions;\nconst Buffer$1 = buffer.Buffer;\nconst File = buffer.File;\nconst FileOptions = buffer.FileOptions;\nconst INSPECT_MAX_BYTES = buffer.INSPECT_MAX_BYTES;\nconst SlowBuffer = buffer.SlowBuffer;\nconst TranscodeEncoding = buffer.TranscodeEncoding;\nconst atob = buffer.atob;\nconst btoa = buffer.btoa;\nconst constants = buffer.constants;\nconst isAscii = buffer.isAscii;\nconst isUtf8 = buffer.isUtf8;\nconst kMaxLength = buffer.kMaxLength;\nconst kStringMaxLength = buffer.kStringMaxLength;\nconst resolveObjectURL = buffer.resolveObjectURL;\nconst transcode = buffer.transcode;\nexport { Blob, BlobOptions, Buffer$1 as Buffer, File, FileOptions, INSPECT_MAX_BYTES, SlowBuffer, TranscodeEncoding, atob, btoa, constants, Buffer as default, isAscii, isUtf8, kMaxLength, kStringMaxLength, resolveObjectURL, transcode };\n//# sourceMappingURL=index.js.map\n","/*\n *\n * Hedera Wallet Connect\n *\n * Copyright (C) 2023 Hedera Hashgraph, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n/**\n * Enum representing different Hedera network chain IDs.\n *\n * @see {@link https://github.com/hashgraph/hedera-improvement-proposal/blob/main/HIP/hip-820.md#specification | HIP-820 Specification}\n */\nexport var HederaChainId;\n(function (HederaChainId) {\n HederaChainId[\"Mainnet\"] = \"hedera:mainnet\";\n HederaChainId[\"Testnet\"] = \"hedera:testnet\";\n HederaChainId[\"Previewnet\"] = \"hedera:previewnet\";\n HederaChainId[\"Devnet\"] = \"hedera:devnet\";\n})(HederaChainId || (HederaChainId = {}));\n","/*\n *\n * Hedera Wallet Connect\n *\n * Copyright (C) 2023 Hedera Hashgraph, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n/**\n * Represents different events related to a Hedera session.\n */\nexport var HederaSessionEvent;\n(function (HederaSessionEvent) {\n HederaSessionEvent[\"AccountsChanged\"] = \"accountsChanged\";\n HederaSessionEvent[\"ChainChanged\"] = \"chainChanged\";\n})(HederaSessionEvent || (HederaSessionEvent = {}));\n","/*\n *\n * Hedera Wallet Connect\n *\n * Copyright (C) 2023 Hedera Hashgraph, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n/**\n * Enum representing different JSON-RPC methods related to Hedera.\n * The methods are ordered alphabetically for ease of use and readability.\n */\nexport var HederaJsonRpcMethod;\n(function (HederaJsonRpcMethod) {\n HederaJsonRpcMethod[\"GetNodeAddresses\"] = \"hedera_getNodeAddresses\";\n HederaJsonRpcMethod[\"ExecuteTransaction\"] = \"hedera_executeTransaction\";\n HederaJsonRpcMethod[\"SignMessage\"] = \"hedera_signMessage\";\n HederaJsonRpcMethod[\"SignAndExecuteQuery\"] = \"hedera_signAndExecuteQuery\";\n HederaJsonRpcMethod[\"SignAndExecuteTransaction\"] = \"hedera_signAndExecuteTransaction\";\n HederaJsonRpcMethod[\"SignTransaction\"] = \"hedera_signTransaction\";\n})(HederaJsonRpcMethod || (HederaJsonRpcMethod = {}));\n","/*\n *\n * Hedera Wallet Connect\n *\n * Copyright (C) 2023 Hedera Hashgraph, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nimport { Buffer } from 'buffer';\nimport { AccountId, Transaction, LedgerId, Query, } from '@hashgraph/sdk';\nimport { proto } from '@hashgraph/proto';\n/**\n * Freezes a transaction if it is not already frozen. Transactions must\n * be frozen before they can be converted to bytes.\n *\n * @param transaction - Any instance of a class that extends `Transaction`\n */\nexport function freezeTransaction(transaction) {\n if (!transaction.isFrozen())\n transaction.freeze();\n}\n/**\n * Sets default consensus nodes that a transaction will be submitted to. Node Account ID(s)\n * must be set before a transaction can be frozen. If they have already been set, this\n * function will not modify the transaction.\n * @param transaction - any instance of a class that extends `Transaction`\n *\n * @see {@link https://docs.hedera.com/hedera/networks/testnet/testnet-nodes | Full list of Testnet-nodes}\n * @see {@link https://docs.hedera.com/hedera/networks/mainnet/mainnet-nodes | Full list of Mainnet-nodes}\n */\nexport function setDefaultNodeAccountIds(transaction) {\n const isNodeAccountIdNotSet = !transaction.nodeAccountIds || transaction.nodeAccountIds.length === 0;\n if (!transaction.isFrozen() && isNodeAccountIdNotSet)\n transaction.setNodeAccountIds([new AccountId(3), new AccountId(4), new AccountId(5)]);\n}\n/**\n * Converts `Transaction` to a Base64-string.\n *\n * First converts a transaction to bytes and then encodes it as a Base64-string. Will attempt\n * to set default Node Account ID and freeze the transaction before converting.\n * @param transaction - Any instance of a class that extends `Transaction`\n * @returns Base64 encoded representation of the input `Transaction` object\n */\nexport function transactionToBase64String(transaction) {\n setDefaultNodeAccountIds(transaction);\n freezeTransaction(transaction);\n const transactionBytes = transaction.toBytes();\n return Buffer.from(transactionBytes).toString('base64');\n}\n/**\n * Recreates a `Transaction` from a base64 encoded string.\n *\n * Decodes the string to a buffer,\n * then passes to `Transaction.fromBytes`. For greater flexibility, this function uses the base\n * `Transaction` class, but takes an optional type parameter if the type of transaction is known,\n * allowing stronger typeing.\n * @param transactionBytes - a base64 encoded string\n * @returns `Transaction`\n * @example\n * ```ts\n * const txn1 = base64StringToTransaction(bytesString)\n * const txn2 = base64StringToTransaction(bytesString)\n * // txn1 type: Transaction\n * // txn2 type: TransferTransaction\n * ```\n */\nexport function base64StringToTransaction(transactionBytes) {\n const decoded = Buffer.from(transactionBytes, 'base64');\n return Transaction.fromBytes(decoded);\n}\n/**\n * @param transaction - a base64 encoded string of proto.TransactionBody.encode().finish()\n * @returns `string`\n * */\nexport function transactionToTransactionBody(transaction, nodeAccountId) {\n // This is a private function, though provides the capabilities to construct a proto.TransactionBody\n //@ts-ignore\n return transaction._makeTransactionBody(nodeAccountId);\n}\nexport function transactionBodyToBase64String(transactionBody) {\n return Uint8ArrayToBase64String(proto.TransactionBody.encode(transactionBody).finish());\n}\n/**\n * @param transactionList - a proto.TransactionList object\n * @returns `string`\n * */\nexport function transactionListToBase64String(transactionList) {\n const encoded = proto.TransactionList.encode(transactionList).finish();\n return Uint8ArrayToBase64String(encoded);\n}\n/**\n * Extracts the first signature from a proto.SignatureMap object.\n * @param signatureMap - a proto.SignatureMap object\n * @returns `Uint8Array`\n * */\nexport const extractFirstSignature = (signatureMap) => {\n var _a;\n const firstPair = (_a = signatureMap === null || signatureMap === void 0 ? void 0 : signatureMap.sigPair) === null || _a === void 0 ? void 0 : _a[0];\n const firstSignature = (firstPair === null || firstPair === void 0 ? void 0 : firstPair.ed25519) || (firstPair === null || firstPair === void 0 ? void 0 : firstPair.ECDSASecp256k1) || (firstPair === null || firstPair === void 0 ? void 0 : firstPair.ECDSA_384);\n if (!firstSignature) {\n throw new Error('No signatures found in response');\n }\n return firstSignature;\n};\n/**\n * Decodes base64 encoded proto.TransactionBody bytes to a `proto.TransactionBody` object.\n *\n * @param transactionBody - a base64 encoded string of proto.TransactionBody.encode().finish()\n * @returns `Transaction`\n *\n * */\nexport function base64StringToTransactionBody(transactionBody) {\n const bytes = Buffer.from(transactionBody, 'base64');\n return proto.TransactionBody.decode(bytes);\n}\n/**\n * Converts a `proto.SignatureMap` to a base64 encoded string.\n *\n * First converts the `proto.SignatureMap` object to a JSON.\n * Then encodes the JSON to a base64 encoded string.\n * @param signatureMap - The `proto.SignatureMap` object to be converted\n * @returns Base64-encoded string representation of the input `proto.SignatureMap`\n */\nexport function signatureMapToBase64String(signatureMap) {\n const encoded = proto.SignatureMap.encode(signatureMap).finish();\n return Uint8ArrayToBase64String(encoded);\n}\n/**\n * Converts a Base64-encoded string to a `proto.SignatureMap`.\n * @param base64string - Base64-encoded string\n * @returns `proto.SignatureMap`\n */\nexport function base64StringToSignatureMap(base64string) {\n const encoded = Buffer.from(base64string, 'base64');\n return proto.SignatureMap.decode(encoded);\n}\n/**\n * Encodes the binary data represented by the `Uint8Array` to a Base64 string.\n * @param binary - The `Uint8Array` containing binary data to be converted\n * @returns Base64-encoded string representation of the input `Uint8Array`\n */\nexport function Uint8ArrayToBase64String(binary) {\n return Buffer.from(binary).toString('base64');\n}\n/**\n * Encodes the binary data represented by the `Uint8Array` to a UTF-8 string.\n * @param binary - The `Uint8Array` containing binary data to be converted\n * @returns UTF-8 string representation of the input `Uint8Array`\n */\nexport function Uint8ArrayToString(binary) {\n return Buffer.from(binary).toString('utf-8');\n}\n/**\n * Converts a Base64-encoded string to a `Uint8Array`.\n * @param base64string - Base64-encoded string to be converted\n * @returns A `Uint8Array` representing the decoded binary data\n */\nexport function base64StringToUint8Array(base64string) {\n const encoded = Buffer.from(base64string, 'base64');\n return new Uint8Array(encoded);\n}\n/**\n * Converts a `Query` object to a Base64-encoded string.\n * First utilizes the `toBytes` method of the `Query` instance to obtain its binary `Uint8Array` representation.\n * Then encodes the binary `Uint8Array` to a Base64 string representation.\n * @param query - A `Query` object to be converted\n * @returns Base64 encoded representation of the input `Query` object\n */\nexport function queryToBase64String(query) {\n const queryBytes = query.toBytes();\n return Buffer.from(queryBytes).toString('base64');\n}\n/**\n * Recreates a `Query` from a Base64-encoded string. First decodes the string to a buffer,\n * then passes to `Query.fromBytes`. For greater flexibility, this function uses the base\n * `Query` class, but takes an optional type parameter if the type of query is known,\n * allowing stronger typeing.\n * @param bytesString - Base64-encoded string\n * @returns `Query`\n * @example\n * ```ts\n * const query1 = base64StringToQuery(bytesString)\n * const query2 = base64StringToQuery(bytesString)\n * // query1 type: Query\n * // query2 type: AccountInfoQuery\n * ```\n */\nexport function base64StringToQuery(bytesString) {\n const decoded = Buffer.from(bytesString, 'base64');\n return Query.fromBytes(decoded);\n}\nexport function prefixMessageToSign(message) {\n return '\\x19Hedera Signed Message:\\n' + message.length + message;\n}\n/**\n * Incorporates additional data (salt) into the message to alter the output signature.\n * This alteration ensures that passing a transaction here for signing will yield an invalid signature,\n * as the additional data modifies the signature text.\n *\n * @param message - A plain text string\n * @returns An array of Uint8Array containing the prepared message for signing\n */\nexport function stringToSignerMessage(message) {\n return [Buffer.from(prefixMessageToSign(message))];\n}\n/**\n * This implementation expects a plain text string, which is prefixed and then signed by a wallet.\n * Because the spec calls for 1 message to be signed and 1 signer, this function expects a single\n * signature and used the first item in the sigPair array.\n *\n * @param message - A plain text string\n * @param base64SignatureMap - A base64 encoded proto.SignatureMap object\n * @param publicKey - A PublicKey object use to verify the signature\n * @returns boolean - whether or not the first signature in the sigPair is valid for the message and public key\n */\nexport function verifyMessageSignature(message, base64SignatureMap, publicKey) {\n const signatureMap = base64StringToSignatureMap(base64SignatureMap);\n const signature = signatureMap.sigPair[0].ed25519 || signatureMap.sigPair[0].ECDSASecp256k1;\n if (!signature)\n throw new Error('Signature not found in signature map');\n return publicKey.verify(Buffer.from(prefixMessageToSign(message)), signature);\n}\n/**\n * This implementation expects a plain text string, which is prefixed and then signed by a wallet.\n * Because the spec calls for 1 message to be signed and 1 signer, this function expects a single\n * signature and used the first item in the sigPair array.\n *\n * @param message - A plain text string\n * @param signerSignature - A SignerSignature object\n * @param publicKey - A PublicKey object use to verify the signature\n * @returns boolean - whether or not the first signature in the sigPair is valid for the message and public key\n */\nexport function verifySignerSignature(message, signerSignature, publicKey) {\n const signature = signerSignature.signature;\n if (!signature)\n throw new Error('Signature not found in signature map');\n return publicKey.verify(Buffer.from(prefixMessageToSign(message)), signature);\n}\n/**\n *\n * https://github.com/hashgraph/hedera-sdk-js/blob/c78512b1d43eedf1d8bf2926a5b7ed3368fc39d1/src/PublicKey.js#L258\n * a signature pair is a protobuf object with a signature and a public key, it is the responsibility of a dApp to ensure the public key matches the account id\n * @param signerSignatures - An array of `SignerSignature` objects\n * @returns `proto.SignatureMap` object\n */\nexport function signerSignaturesToSignatureMap(signerSignatures) {\n const signatureMap = proto.SignatureMap.create({\n sigPair: signerSignatures.map((s) => s.publicKey._toProtobufSignature(s.signature)),\n });\n return signatureMap;\n}\n/**\n * A mapping of `LedgerId` to EIP chain id and CAIP-2 network name.\n *\n * Structure: [`LedgerId`, `number` (EIP155 chain id), `string` (CAIP-2 chain id)][]\n *\n * @see {@link https://namespaces.chainagnostic.org/hedera/README | Hedera Namespaces}\n * @see {@link https://hips.hedera.com/hip/hip-30 | CAIP Identifiers for the Hedera Network (HIP-30)}\n */\nexport const LEDGER_ID_MAPPINGS = [\n [LedgerId.MAINNET, 295, 'hedera:mainnet'],\n [LedgerId.TESTNET, 296, 'hedera:testnet'],\n [LedgerId.PREVIEWNET, 297, 'hedera:previewnet'],\n [LedgerId.LOCAL_NODE, 298, 'hedera:devnet'],\n];\nconst DEFAULT_LEDGER_ID = LedgerId.LOCAL_NODE;\nconst DEFAULT_EIP = LEDGER_ID_MAPPINGS[3][1];\nconst DEFAULT_CAIP = LEDGER_ID_MAPPINGS[3][2];\n/**\n * Converts an EIP chain id to a LedgerId object.\n *\n * If no mapping is found, returns `LedgerId.LOCAL_NODE`.\n *\n * @param chainId - The EIP chain ID (number) to be converted\n * @returns A `LedgerId` corresponding to the provided chain ID\n * @example\n * ```ts\n * const localnodeLedgerId = EIPChainIdToLedgerId(298)\n * console.log(localnodeLedgerId) // LedgerId.LOCAL_NODE\n * const mainnetLedgerId = EIPChainIdToLedgerId(295)\n * console.log(mainnetLedgerId) // LedgerId.MAINNET\n * ```\n */\nexport function EIPChainIdToLedgerId(chainId) {\n for (let i = 0; i < LEDGER_ID_MAPPINGS.length; i++) {\n const [ledgerId, chainId_] = LEDGER_ID_MAPPINGS[i];\n if (chainId === chainId_) {\n return ledgerId;\n }\n }\n return DEFAULT_LEDGER_ID;\n}\n/**\n * Converts a LedgerId object to an EIP chain id.\n *\n * If no mapping is found, returns the EIP chain id for `LedgerId.LOCAL_NODE`.\n *\n * @param ledgerId - The `LedgerId` object to be converted\n * @returns A `number` representing the EIP chain id for the provided `LedgerId`\n * @example\n * ```ts\n * const previewnetChainId = ledgerIdToEIPChainId(LedgerId.PREVIEWNET)\n * console.log(previewnetChainId) // 297\n * const testnetChainId = ledgerIdToEIPChainId(LedgerId.TESTNET)\n * console.log(testnetChainId) // 296\n * ```\n */\nexport function ledgerIdToEIPChainId(ledgerId) {\n for (let i = 0; i < LEDGER_ID_MAPPINGS.length; i++) {\n const [ledgerId_, chainId] = LEDGER_ID_MAPPINGS[i];\n if (ledgerId === ledgerId_) {\n return chainId;\n }\n }\n return DEFAULT_EIP;\n}\n/**\n * Converts a network name to an EIP chain id.\n * If no mapping is found, returns the EIP chain id for `LedgerId.LOCAL_NODE`.\n *\n * @param networkName - The network name (string) to be converted\n * @returns A `number` representing the EIP chain id for the provided network name\n * @example\n * ```ts\n * const mainnetChainId = networkNameToEIPChainId('mainnet')\n * console.log(mainnetChainId) // 295\n * const testnetChainId = networkNameToEIPChainId('testnet')\n * console.log(mainnetChainId) // 296\n * ```\n */\nexport function networkNameToEIPChainId(networkName) {\n const ledgerId = LedgerId.fromString(networkName.toLowerCase());\n return ledgerIdToEIPChainId(ledgerId);\n}\n/**\n * Converts a CAIP chain id to a LedgerId object.\n *\n * If no mapping is found, returns `LedgerId.LOCAL_NODE`.\n *\n * @param chainId - The CAIP chain ID (string) to be converted\n * @returns A `LedgerId` corresponding to the provided CAIP chain ID\n * @example\n * ```ts\n * const previewnetLedgerId = CAIPChainIdToLedgerId(HederaChainId.Previewnet)\n * console.log(previewnetLedgerId) // LedgerId.PREVIEWNET\n * const testnetLedgerId = CAIPChainIdToLedgerId(HederaChainId.Testnet)\n * console.log(testnetLedgerId) // LedgerId.TESTNET\n * ```\n */\nexport function CAIPChainIdToLedgerId(chainId) {\n for (let i = 0; i < LEDGER_ID_MAPPINGS.length; i++) {\n const [ledgerId, _, chainId_] = LEDGER_ID_MAPPINGS[i];\n if (chainId === chainId_) {\n return ledgerId;\n }\n }\n return DEFAULT_LEDGER_ID;\n}\n/**\n * Converts a LedgerId object to a CAIP chain id.\n *\n * If no mapping is found, returns the CAIP chain id for `LedgerId.LOCAL_NODE`.\n *\n * @param ledgerId - The `LedgerId` object to be converted\n * @returns A `string` representing the CAIP chain id for the provided `LedgerId`\n * @example\n * ```ts\n * const mainnetChainId = ledgerIdToCAIPChainId(HederaChainId.Mainnet)\n * console.log(mainnetChainId) // LedgerId.PREVIEWNET\n * const testnetChainId = ledgerIdToCAIPChainId(HederaChainId.Testnet)\n * console.log(testnetChainId) // LedgerId.TESTNET\n * ```\n */\nexport function ledgerIdToCAIPChainId(ledgerId) {\n for (let i = 0; i < LEDGER_ID_MAPPINGS.length; i++) {\n const [ledgerId_, _, chainId] = LEDGER_ID_MAPPINGS[i];\n if (ledgerId.toString() === ledgerId_.toString()) {\n return chainId;\n }\n }\n return DEFAULT_CAIP;\n}\n/**\n * Converts a network name to a CAIP chain id.\n *\n * If no mapping is found, returns the CAIP chain id for `LedgerId.LOCAL_NODE`.\n *\n * @param networkName - The network name (string) to be converted\n * @returns A `string` representing the CAIP chain id for the provided network name\n * @example\n * ```ts\n * const previewnetChainId = networkNameToCAIPChainId('previewnet')\n * console.log(previewnetChainId) // HederaChainId.Previewnet\n * const devnetChainId = networkNameToCAIPChainId('devnet')\n * console.log(devnetChainId) // HederaChainId.Devnet\n * ```\n */\nexport function networkNameToCAIPChainId(networkName) {\n const ledgerId = LedgerId.fromString(networkName.toLowerCase());\n const chainId = ledgerIdToCAIPChainId(ledgerId);\n return chainId;\n}\n/**\n * Create a `ProposalTypes.RequiredNamespaces` object for a given ledgerId.\n *\n * @param ledgerId - The `LedgerId` for which the namespaces are created\n * @param methods - An array of strings representing methods\n * @param events - An array of strings representing events\n * @returns A `ProposalTypes.RequiredNamespaces` object\n */\nexport const networkNamespaces = (ledgerId, methods, events) => ({\n hedera: {\n chains: [ledgerIdToCAIPChainId(ledgerId)],\n methods,\n events,\n },\n});\n/**\n * Get the account and ledger from a `SessionTypes.Struct` object.\n *\n * @param session - The `SessionTypes.Struct` object containing namespaces\n * @returns `ProposalTypes.RequiredNamespaces` - an array of objects containing network (LedgerId) and account (AccountId)\n */\nexport const accountAndLedgerFromSession = (session) => {\n const hederaNamespace = session.namespaces.hedera;\n if (!hederaNamespace)\n throw new Error('No hedera namespace found');\n return hederaNamespace.accounts.map((account) => {\n const [chain, network, acc] = account.split(':');\n return {\n network: CAIPChainIdToLedgerId(chain + ':' + network),\n account: AccountId.fromString(acc),\n };\n });\n};\n","export var EVENTS;\n(function (EVENTS) {\n EVENTS[\"extensionQuery\"] = \"hedera-extension-query\";\n EVENTS[\"extensionConnect\"] = \"hedera-extension-connect-\";\n EVENTS[\"extensionOpen\"] = \"hedera-extension-open-\";\n EVENTS[\"extensionResponse\"] = \"hedera-extension-response\";\n EVENTS[\"iframeQuery\"] = \"hedera-iframe-query\";\n EVENTS[\"iframeQueryResponse\"] = \"hedera-iframe-response\";\n EVENTS[\"iframeConnect\"] = \"hedera-iframe-connect\";\n})(EVENTS || (EVENTS = {}));\nexport const findExtensions = (onFound) => {\n if (typeof window === 'undefined')\n return;\n window.addEventListener('message', (event) => {\n var _a, _b;\n if (((_a = event === null || event === void 0 ? void 0 : event.data) === null || _a === void 0 ? void 0 : _a.type) == EVENTS.extensionResponse && event.data.metadata) {\n onFound(event.data.metadata, false);\n }\n if (((_b = event === null || event === void 0 ? void 0 : event.data) === null || _b === void 0 ? void 0 : _b.type) == EVENTS.iframeQueryResponse && event.data.metadata) {\n onFound(event.data.metadata, true);\n }\n });\n setTimeout(() => {\n extensionQuery();\n }, 200);\n};\nexport const extensionQuery = () => {\n window.postMessage({ type: EVENTS.extensionQuery }, '*');\n if (window.parent) {\n window.parent.postMessage({ type: EVENTS.iframeQuery }, '*');\n }\n};\nexport const extensionConnect = (id, isIframe, pairingString) => {\n if (isIframe) {\n window.parent.postMessage({ type: EVENTS.iframeConnect, pairingString }, '*');\n return;\n }\n window.postMessage({ type: EVENTS.extensionConnect + id, pairingString }, '*');\n};\nexport const extensionOpen = (id) => {\n window.postMessage({ type: EVENTS.extensionOpen + id }, '*');\n};\n","'use strict'\nfunction tryStringify (o) {\n try { return JSON.stringify(o) } catch(e) { return '\"[Circular]\"' }\n}\n\nmodule.exports = format\n\nfunction format(f, args, opts) {\n var ss = (opts && opts.stringify) || tryStringify\n var offset = 1\n if (typeof f === 'object' && f !== null) {\n var len = args.length + offset\n if (len === 1) return f\n var objects = new Array(len)\n objects[0] = ss(f)\n for (var index = 1; index < len; index++) {\n objects[index] = ss(args[index])\n }\n return objects.join(' ')\n }\n if (typeof f !== 'string') {\n return f\n }\n var argLen = args.length\n if (argLen === 0) return f\n var str = ''\n var a = 1 - offset\n var lastPos = -1\n var flen = (f && f.length) || 0\n for (var i = 0; i < flen;) {\n if (f.charCodeAt(i) === 37 && i + 1 < flen) {\n lastPos = lastPos > -1 ? lastPos : 0\n switch (f.charCodeAt(i + 1)) {\n case 100: // 'd'\n case 102: // 'f'\n if (a >= argLen)\n break\n if (args[a] == null) break\n if (lastPos < i)\n str += f.slice(lastPos, i)\n str += Number(args[a])\n lastPos = i + 2\n i++\n break\n case 105: // 'i'\n if (a >= argLen)\n break\n if (args[a] == null) break\n if (lastPos < i)\n str += f.slice(lastPos, i)\n str += Math.floor(Number(args[a]))\n lastPos = i + 2\n i++\n break\n case 79: // 'O'\n case 111: // 'o'\n case 106: // 'j'\n if (a >= argLen)\n break\n if (args[a] === undefined) break\n if (lastPos < i)\n str += f.slice(lastPos, i)\n var type = typeof args[a]\n if (type === 'string') {\n str += '\\'' + args[a] + '\\''\n lastPos = i + 2\n i++\n break\n }\n if (type === 'function') {\n str += args[a].name || ''\n lastPos = i + 2\n i++\n break\n }\n str += ss(args[a])\n lastPos = i + 2\n i++\n break\n case 115: // 's'\n if (a >= argLen)\n break\n if (lastPos < i)\n str += f.slice(lastPos, i)\n str += String(args[a])\n lastPos = i + 2\n i++\n break\n case 37: // '%'\n if (lastPos < i)\n str += f.slice(lastPos, i)\n str += '%'\n lastPos = i + 2\n i++\n a--\n break\n }\n ++a\n }\n ++i\n }\n if (lastPos === -1)\n return f\n else if (lastPos < flen) {\n str += f.slice(lastPos)\n }\n\n return str\n}\n","'use strict'\n\nconst format = require('quick-format-unescaped')\n\nmodule.exports = pino\n\nconst _console = pfGlobalThisOrFallback().console || {}\nconst stdSerializers = {\n mapHttpRequest: mock,\n mapHttpResponse: mock,\n wrapRequestSerializer: passthrough,\n wrapResponseSerializer: passthrough,\n wrapErrorSerializer: passthrough,\n req: mock,\n res: mock,\n err: asErrValue\n}\n\nfunction shouldSerialize (serialize, serializers) {\n if (Array.isArray(serialize)) {\n const hasToFilter = serialize.filter(function (k) {\n return k !== '!stdSerializers.err'\n })\n return hasToFilter\n } else if (serialize === true) {\n return Object.keys(serializers)\n }\n\n return false\n}\n\nfunction pino (opts) {\n opts = opts || {}\n opts.browser = opts.browser || {}\n\n const transmit = opts.browser.transmit\n if (transmit && typeof transmit.send !== 'function') { throw Error('pino: transmit option must have a send function') }\n\n const proto = opts.browser.write || _console\n if (opts.browser.write) opts.browser.asObject = true\n const serializers = opts.serializers || {}\n const serialize = shouldSerialize(opts.browser.serialize, serializers)\n let stdErrSerialize = opts.browser.serialize\n\n if (\n Array.isArray(opts.browser.serialize) &&\n opts.browser.serialize.indexOf('!stdSerializers.err') > -1\n ) stdErrSerialize = false\n\n const levels = ['error', 'fatal', 'warn', 'info', 'debug', 'trace']\n\n if (typeof proto === 'function') {\n proto.error = proto.fatal = proto.warn =\n proto.info = proto.debug = proto.trace = proto\n }\n if (opts.enabled === false) opts.level = 'silent'\n const level = opts.level || 'info'\n const logger = Object.create(proto)\n if (!logger.log) logger.log = noop\n\n Object.defineProperty(logger, 'levelVal', {\n get: getLevelVal\n })\n Object.defineProperty(logger, 'level', {\n get: getLevel,\n set: setLevel\n })\n\n const setOpts = {\n transmit,\n serialize,\n asObject: opts.browser.asObject,\n levels,\n timestamp: getTimeFunction(opts)\n }\n logger.levels = pino.levels\n logger.level = level\n\n logger.setMaxListeners = logger.getMaxListeners =\n logger.emit = logger.addListener = logger.on =\n logger.prependListener = logger.once =\n logger.prependOnceListener = logger.removeListener =\n logger.removeAllListeners = logger.listeners =\n logger.listenerCount = logger.eventNames =\n logger.write = logger.flush = noop\n logger.serializers = serializers\n logger._serialize = serialize\n logger._stdErrSerialize = stdErrSerialize\n logger.child = child\n\n if (transmit) logger._logEvent = createLogEventShape()\n\n function getLevelVal () {\n return this.level === 'silent'\n ? Infinity\n : this.levels.values[this.level]\n }\n\n function getLevel () {\n return this._level\n }\n function setLevel (level) {\n if (level !== 'silent' && !this.levels.values[level]) {\n throw Error('unknown level ' + level)\n }\n this._level = level\n\n set(setOpts, logger, 'error', 'log') // <-- must stay first\n set(setOpts, logger, 'fatal', 'error')\n set(setOpts, logger, 'warn', 'error')\n set(setOpts, logger, 'info', 'log')\n set(setOpts, logger, 'debug', 'log')\n set(setOpts, logger, 'trace', 'log')\n }\n\n function child (bindings, childOptions) {\n if (!bindings) {\n throw new Error('missing bindings for child Pino')\n }\n childOptions = childOptions || {}\n if (serialize && bindings.serializers) {\n childOptions.serializers = bindings.serializers\n }\n const childOptionsSerializers = childOptions.serializers\n if (serialize && childOptionsSerializers) {\n var childSerializers = Object.assign({}, serializers, childOptionsSerializers)\n var childSerialize = opts.browser.serialize === true\n ? Object.keys(childSerializers)\n : serialize\n delete bindings.serializers\n applySerializers([bindings], childSerialize, childSerializers, this._stdErrSerialize)\n }\n function Child (parent) {\n this._childLevel = (parent._childLevel | 0) + 1\n this.error = bind(parent, bindings, 'error')\n this.fatal = bind(parent, bindings, 'fatal')\n this.warn = bind(parent, bindings, 'warn')\n this.info = bind(parent, bindings, 'info')\n this.debug = bind(parent, bindings, 'debug')\n this.trace = bind(parent, bindings, 'trace')\n if (childSerializers) {\n this.serializers = childSerializers\n this._serialize = childSerialize\n }\n if (transmit) {\n this._logEvent = createLogEventShape(\n [].concat(parent._logEvent.bindings, bindings)\n )\n }\n }\n Child.prototype = this\n return new Child(this)\n }\n return logger\n}\n\npino.levels = {\n values: {\n fatal: 60,\n error: 50,\n warn: 40,\n info: 30,\n debug: 20,\n trace: 10\n },\n labels: {\n 10: 'trace',\n 20: 'debug',\n 30: 'info',\n 40: 'warn',\n 50: 'error',\n 60: 'fatal'\n }\n}\n\npino.stdSerializers = stdSerializers\npino.stdTimeFunctions = Object.assign({}, { nullTime, epochTime, unixTime, isoTime })\n\nfunction set (opts, logger, level, fallback) {\n const proto = Object.getPrototypeOf(logger)\n logger[level] = logger.levelVal > logger.levels.values[level]\n ? noop\n : (proto[level] ? proto[level] : (_console[level] || _console[fallback] || noop))\n\n wrap(opts, logger, level)\n}\n\nfunction wrap (opts, logger, level) {\n if (!opts.transmit && logger[level] === noop) return\n\n logger[level] = (function (write) {\n return function LOG () {\n const ts = opts.timestamp()\n const args = new Array(arguments.length)\n const proto = (Object.getPrototypeOf && Object.getPrototypeOf(this) === _console) ? _console : this\n for (var i = 0; i < args.length; i++) args[i] = arguments[i]\n\n if (opts.serialize && !opts.asObject) {\n applySerializers(args, this._serialize, this.serializers, this._stdErrSerialize)\n }\n if (opts.asObject) write.call(proto, asObject(this, level, args, ts))\n else write.apply(proto, args)\n\n if (opts.transmit) {\n const transmitLevel = opts.transmit.level || logger.level\n const transmitValue = pino.levels.values[transmitLevel]\n const methodValue = pino.levels.values[level]\n if (methodValue < transmitValue) return\n transmit(this, {\n ts,\n methodLevel: level,\n methodValue,\n transmitLevel,\n transmitValue: pino.levels.values[opts.transmit.level || logger.level],\n send: opts.transmit.send,\n val: logger.levelVal\n }, args)\n }\n }\n })(logger[level])\n}\n\nfunction asObject (logger, level, args, ts) {\n if (logger._serialize) applySerializers(args, logger._serialize, logger.serializers, logger._stdErrSerialize)\n const argsCloned = args.slice()\n let msg = argsCloned[0]\n const o = {}\n if (ts) {\n o.time = ts\n }\n o.level = pino.levels.values[level]\n let lvl = (logger._childLevel | 0) + 1\n if (lvl < 1) lvl = 1\n // deliberate, catching objects, arrays\n if (msg !== null && typeof msg === 'object') {\n while (lvl-- && typeof argsCloned[0] === 'object') {\n Object.assign(o, argsCloned.shift())\n }\n msg = argsCloned.length ? format(argsCloned.shift(), argsCloned) : undefined\n } else if (typeof msg === 'string') msg = format(argsCloned.shift(), argsCloned)\n if (msg !== undefined) o.msg = msg\n return o\n}\n\nfunction applySerializers (args, serialize, serializers, stdErrSerialize) {\n for (const i in args) {\n if (stdErrSerialize && args[i] instanceof Error) {\n args[i] = pino.stdSerializers.err(args[i])\n } else if (typeof args[i] === 'object' && !Array.isArray(args[i])) {\n for (const k in args[i]) {\n if (serialize && serialize.indexOf(k) > -1 && k in serializers) {\n args[i][k] = serializers[k](args[i][k])\n }\n }\n }\n }\n}\n\nfunction bind (parent, bindings, level) {\n return function () {\n const args = new Array(1 + arguments.length)\n args[0] = bindings\n for (var i = 1; i < args.length; i++) {\n args[i] = arguments[i - 1]\n }\n return parent[level].apply(this, args)\n }\n}\n\nfunction transmit (logger, opts, args) {\n const send = opts.send\n const ts = opts.ts\n const methodLevel = opts.methodLevel\n const methodValue = opts.methodValue\n const val = opts.val\n const bindings = logger._logEvent.bindings\n\n applySerializers(\n args,\n logger._serialize || Object.keys(logger.serializers),\n logger.serializers,\n logger._stdErrSerialize === undefined ? true : logger._stdErrSerialize\n )\n logger._logEvent.ts = ts\n logger._logEvent.messages = args.filter(function (arg) {\n // bindings can only be objects, so reference equality check via indexOf is fine\n return bindings.indexOf(arg) === -1\n })\n\n logger._logEvent.level.label = methodLevel\n logger._logEvent.level.value = methodValue\n\n send(methodLevel, logger._logEvent, val)\n\n logger._logEvent = createLogEventShape(bindings)\n}\n\nfunction createLogEventShape (bindings) {\n return {\n ts: 0,\n messages: [],\n bindings: bindings || [],\n level: { label: '', value: 0 }\n }\n}\n\nfunction asErrValue (err) {\n const obj = {\n type: err.constructor.name,\n msg: err.message,\n stack: err.stack\n }\n for (const key in err) {\n if (obj[key] === undefined) {\n obj[key] = err[key]\n }\n }\n return obj\n}\n\nfunction getTimeFunction (opts) {\n if (typeof opts.timestamp === 'function') {\n return opts.timestamp\n }\n if (opts.timestamp === false) {\n return nullTime\n }\n return epochTime\n}\n\nfunction mock () { return {} }\nfunction passthrough (a) { return a }\nfunction noop () {}\n\nfunction nullTime () { return false }\nfunction epochTime () { return Date.now() }\nfunction unixTime () { return Math.round(Date.now() / 1000.0) }\nfunction isoTime () { return new Date(Date.now()).toISOString() } // using Date.now() for testability\n\n/* eslint-disable */\n/* istanbul ignore next */\nfunction pfGlobalThisOrFallback () {\n function defd (o) { return typeof o !== 'undefined' && o }\n try {\n if (typeof globalThis !== 'undefined') return globalThis\n Object.defineProperty(Object.prototype, 'globalThis', {\n get: function () {\n delete Object.prototype.globalThis\n return (this.globalThis = this)\n },\n configurable: true\n })\n return globalThis\n } catch (e) {\n return defd(self) || defd(window) || defd(this) || {}\n }\n}\n/* eslint-enable */\n","import h,{levels as s}from\"pino\";import{default as U}from\"pino\";import{safeJsonStringify as u}from\"@walletconnect/safe-json\";const c={level:\"info\"},n=\"custom_context\",l=1e3*1024;class O{constructor(e){this.nodeValue=e,this.sizeInBytes=new TextEncoder().encode(this.nodeValue).length,this.next=null}get value(){return this.nodeValue}get size(){return this.sizeInBytes}}class d{constructor(e){this.head=null,this.tail=null,this.lengthInNodes=0,this.maxSizeInBytes=e,this.sizeInBytes=0}append(e){const t=new O(e);if(t.size>this.maxSizeInBytes)throw new Error(`[LinkedList] Value too big to insert into list: ${e} with size ${t.size}`);for(;this.size+t.size>this.maxSizeInBytes;)this.shift();this.head?(this.tail&&(this.tail.next=t),this.tail=t):(this.head=t,this.tail=t),this.lengthInNodes++,this.sizeInBytes+=t.size}shift(){if(!this.head)return;const e=this.head;this.head=this.head.next,this.head||(this.tail=null),this.lengthInNodes--,this.sizeInBytes-=e.size}toArray(){const e=[];let t=this.head;for(;t!==null;)e.push(t.value),t=t.next;return e}get length(){return this.lengthInNodes}get size(){return this.sizeInBytes}toOrderedArray(){return Array.from(this)}[Symbol.iterator](){let e=this.head;return{next:()=>{if(!e)return{done:!0,value:null};const t=e.value;return e=e.next,{done:!1,value:t}}}}}class L{constructor(e,t=l){this.level=e??\"error\",this.levelValue=s.values[this.level],this.MAX_LOG_SIZE_IN_BYTES=t,this.logs=new d(this.MAX_LOG_SIZE_IN_BYTES)}forwardToConsole(e,t){t===s.values.error?console.error(e):t===s.values.warn?console.warn(e):t===s.values.debug?console.debug(e):t===s.values.trace?console.trace(e):console.log(e)}appendToLogs(e){this.logs.append(u({timestamp:new Date().toISOString(),log:e}));const t=typeof e==\"string\"?JSON.parse(e).level:e.level;t>=this.levelValue&&this.forwardToConsole(e,t)}getLogs(){return this.logs}clearLogs(){this.logs=new d(this.MAX_LOG_SIZE_IN_BYTES)}getLogArray(){return Array.from(this.logs)}logsToBlob(e){const t=this.getLogArray();return t.push(u({extraMetadata:e})),new Blob(t,{type:\"application/json\"})}}class m{constructor(e,t=l){this.baseChunkLogger=new L(e,t)}write(e){this.baseChunkLogger.appendToLogs(e)}getLogs(){return this.baseChunkLogger.getLogs()}clearLogs(){this.baseChunkLogger.clearLogs()}getLogArray(){return this.baseChunkLogger.getLogArray()}logsToBlob(e){return this.baseChunkLogger.logsToBlob(e)}downloadLogsBlobInBrowser(e){const t=URL.createObjectURL(this.logsToBlob(e)),o=document.createElement(\"a\");o.href=t,o.download=`walletconnect-logs-${new Date().toISOString()}.txt`,document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(t)}}class B{constructor(e,t=l){this.baseChunkLogger=new L(e,t)}write(e){this.baseChunkLogger.appendToLogs(e)}getLogs(){return this.baseChunkLogger.getLogs()}clearLogs(){this.baseChunkLogger.clearLogs()}getLogArray(){return this.baseChunkLogger.getLogArray()}logsToBlob(e){return this.baseChunkLogger.logsToBlob(e)}}var x=Object.defineProperty,S=Object.defineProperties,_=Object.getOwnPropertyDescriptors,p=Object.getOwnPropertySymbols,T=Object.prototype.hasOwnProperty,z=Object.prototype.propertyIsEnumerable,f=(r,e,t)=>e in r?x(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,i=(r,e)=>{for(var t in e||(e={}))T.call(e,t)&&f(r,t,e[t]);if(p)for(var t of p(e))z.call(e,t)&&f(r,t,e[t]);return r},g=(r,e)=>S(r,_(e));function k(r){return g(i({},r),{level:r?.level||c.level})}function v(r,e=n){return r[e]||\"\"}function b(r,e,t=n){return r[t]=e,r}function y(r,e=n){let t=\"\";return typeof r.bindings>\"u\"?t=v(r,e):t=r.bindings().context||\"\",t}function w(r,e,t=n){const o=y(r,t);return o.trim()?`${o}/${e}`:e}function E(r,e,t=n){const o=w(r,e,t),a=r.child({context:o});return b(a,o,t)}function C(r){var e,t;const o=new m((e=r.opts)==null?void 0:e.level,r.maxSizeInBytes);return{logger:h(g(i({},r.opts),{level:\"trace\",browser:g(i({},(t=r.opts)==null?void 0:t.browser),{write:a=>o.write(a)})})),chunkLoggerController:o}}function I(r){var e;const t=new B((e=r.opts)==null?void 0:e.level,r.maxSizeInBytes);return{logger:h(g(i({},r.opts),{level:\"trace\"}),t),chunkLoggerController:t}}function A(r){return typeof r.loggerOverride<\"u\"&&typeof r.loggerOverride!=\"string\"?{logger:r.loggerOverride,chunkLoggerController:null}:typeof window<\"u\"?C(r):I(r)}export{l as MAX_LOG_SIZE_IN_BYTES_DEFAULT,n as PINO_CUSTOM_CONTEXT_KEY,c as PINO_LOGGER_DEFAULTS,w as formatChildLoggerContext,E as generateChildLogger,C as generateClientLogger,A as generatePlatformLogger,I as generateServerLogger,v as getBrowserLoggerContext,k as getDefaultLoggerOptions,y as getLoggerContext,U as pino,b as setBrowserLoggerContext};\n//# sourceMappingURL=index.es.js.map\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","export const PARSE_ERROR = \"PARSE_ERROR\";\nexport const INVALID_REQUEST = \"INVALID_REQUEST\";\nexport const METHOD_NOT_FOUND = \"METHOD_NOT_FOUND\";\nexport const INVALID_PARAMS = \"INVALID_PARAMS\";\nexport const INTERNAL_ERROR = \"INTERNAL_ERROR\";\nexport const SERVER_ERROR = \"SERVER_ERROR\";\nexport const RESERVED_ERROR_CODES = [-32700, -32600, -32601, -32602, -32603];\nexport const SERVER_ERROR_CODE_RANGE = [-32000, -32099];\nexport const STANDARD_ERROR_MAP = {\n [PARSE_ERROR]: { code: -32700, message: \"Parse error\" },\n [INVALID_REQUEST]: { code: -32600, message: \"Invalid Request\" },\n [METHOD_NOT_FOUND]: { code: -32601, message: \"Method not found\" },\n [INVALID_PARAMS]: { code: -32602, message: \"Invalid params\" },\n [INTERNAL_ERROR]: { code: -32603, message: \"Internal error\" },\n [SERVER_ERROR]: { code: -32000, message: \"Server error\" },\n};\nexport const DEFAULT_ERROR = SERVER_ERROR;\n//# sourceMappingURL=constants.js.map","import { SERVER_ERROR_CODE_RANGE, RESERVED_ERROR_CODES, STANDARD_ERROR_MAP, DEFAULT_ERROR, } from \"./constants\";\nexport function isServerErrorCode(code) {\n return code <= SERVER_ERROR_CODE_RANGE[0] && code >= SERVER_ERROR_CODE_RANGE[1];\n}\nexport function isReservedErrorCode(code) {\n return RESERVED_ERROR_CODES.includes(code);\n}\nexport function isValidErrorCode(code) {\n return typeof code === \"number\";\n}\nexport function getError(type) {\n if (!Object.keys(STANDARD_ERROR_MAP).includes(type)) {\n return STANDARD_ERROR_MAP[DEFAULT_ERROR];\n }\n return STANDARD_ERROR_MAP[type];\n}\nexport function getErrorByCode(code) {\n const match = Object.values(STANDARD_ERROR_MAP).find(e => e.code === code);\n if (!match) {\n return STANDARD_ERROR_MAP[DEFAULT_ERROR];\n }\n return match;\n}\nexport function validateJsonRpcError(response) {\n if (typeof response.error.code === \"undefined\") {\n return { valid: false, error: \"Missing code for JSON-RPC error\" };\n }\n if (typeof response.error.message === \"undefined\") {\n return { valid: false, error: \"Missing message for JSON-RPC error\" };\n }\n if (!isValidErrorCode(response.error.code)) {\n return {\n valid: false,\n error: `Invalid error code type for JSON-RPC: ${response.error.code}`,\n };\n }\n if (isReservedErrorCode(response.error.code)) {\n const error = getErrorByCode(response.error.code);\n if (error.message !== STANDARD_ERROR_MAP[DEFAULT_ERROR].message &&\n response.error.message === error.message) {\n return {\n valid: false,\n error: `Invalid error code message for JSON-RPC: ${response.error.code}`,\n };\n }\n }\n return { valid: true };\n}\nexport function parseConnectionError(e, url, type) {\n return e.message.includes(\"getaddrinfo ENOTFOUND\") || e.message.includes(\"connect ECONNREFUSED\")\n ? new Error(`Unavailable ${type} RPC url at ${url}`)\n : e;\n}\n//# sourceMappingURL=error.js.map","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isBrowserCryptoAvailable = exports.getSubtleCrypto = exports.getBrowerCrypto = void 0;\nfunction getBrowerCrypto() {\n return (global === null || global === void 0 ? void 0 : global.crypto) || (global === null || global === void 0 ? void 0 : global.msCrypto) || {};\n}\nexports.getBrowerCrypto = getBrowerCrypto;\nfunction getSubtleCrypto() {\n const browserCrypto = getBrowerCrypto();\n return browserCrypto.subtle || browserCrypto.webkitSubtle;\n}\nexports.getSubtleCrypto = getSubtleCrypto;\nfunction isBrowserCryptoAvailable() {\n return !!getBrowerCrypto() && !!getSubtleCrypto();\n}\nexports.isBrowserCryptoAvailable = isBrowserCryptoAvailable;\n//# sourceMappingURL=crypto.js.map","function getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nvar browser = {exports: {}};\n\n// shim for using process in browser\nvar process = browser.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ());\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] };\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\nvar browserExports = browser.exports;\nconst process$1 = /*@__PURE__*/getDefaultExportFromCjs(browserExports);\n\nexport { process$1 as default, process$1 as process };\n//# sourceMappingURL=index.js.map\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isBrowser = exports.isNode = exports.isReactNative = void 0;\nfunction isReactNative() {\n return (typeof document === \"undefined\" &&\n typeof navigator !== \"undefined\" &&\n navigator.product === \"ReactNative\");\n}\nexports.isReactNative = isReactNative;\nfunction isNode() {\n return (typeof process !== \"undefined\" &&\n typeof process.versions !== \"undefined\" &&\n typeof process.versions.node !== \"undefined\");\n}\nexports.isNode = isNode;\nfunction isBrowser() {\n return !isReactNative() && !isNode();\n}\nexports.isBrowser = isBrowser;\n//# sourceMappingURL=env.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./crypto\"), exports);\ntslib_1.__exportStar(require(\"./env\"), exports);\n//# sourceMappingURL=index.js.map","import { getError, getErrorByCode, isReservedErrorCode } from \"./error\";\nimport { INTERNAL_ERROR, SERVER_ERROR } from \"./constants\";\nexport function payloadId(entropy = 3) {\n const date = Date.now() * Math.pow(10, entropy);\n const extra = Math.floor(Math.random() * Math.pow(10, entropy));\n return date + extra;\n}\nexport function getBigIntRpcId(entropy = 6) {\n return BigInt(payloadId(entropy));\n}\nexport function formatJsonRpcRequest(method, params, id) {\n return {\n id: id || payloadId(),\n jsonrpc: \"2.0\",\n method,\n params,\n };\n}\nexport function formatJsonRpcResult(id, result) {\n return {\n id,\n jsonrpc: \"2.0\",\n result,\n };\n}\nexport function formatJsonRpcError(id, error, data) {\n return {\n id,\n jsonrpc: \"2.0\",\n error: formatErrorMessage(error, data),\n };\n}\nexport function formatErrorMessage(error, data) {\n if (typeof error === \"undefined\") {\n return getError(INTERNAL_ERROR);\n }\n if (typeof error === \"string\") {\n error = Object.assign(Object.assign({}, getError(SERVER_ERROR)), { message: error });\n }\n if (typeof data !== \"undefined\") {\n error.data = data;\n }\n if (isReservedErrorCode(error.code)) {\n error = getErrorByCode(error.code);\n }\n return error;\n}\n//# sourceMappingURL=format.js.map","export function isJsonRpcPayload(payload) {\n return (typeof payload === \"object\" &&\n \"id\" in payload &&\n \"jsonrpc\" in payload &&\n payload.jsonrpc === \"2.0\");\n}\nexport function isJsonRpcRequest(payload) {\n return isJsonRpcPayload(payload) && \"method\" in payload;\n}\nexport function isJsonRpcResponse(payload) {\n return isJsonRpcPayload(payload) && (isJsonRpcResult(payload) || isJsonRpcError(payload));\n}\nexport function isJsonRpcResult(payload) {\n return \"result\" in payload;\n}\nexport function isJsonRpcError(payload) {\n return \"error\" in payload;\n}\nexport function isJsonRpcValidationInvalid(validation) {\n return \"error\" in validation && validation.valid === false;\n}\n//# sourceMappingURL=validators.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.delay = void 0;\nfunction delay(timeout) {\n return new Promise(resolve => {\n setTimeout(() => {\n resolve(true);\n }, timeout);\n });\n}\nexports.delay = delay;\n//# sourceMappingURL=delay.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ONE_THOUSAND = exports.ONE_HUNDRED = void 0;\nexports.ONE_HUNDRED = 100;\nexports.ONE_THOUSAND = 1000;\n//# sourceMappingURL=misc.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ONE_YEAR = exports.FOUR_WEEKS = exports.THREE_WEEKS = exports.TWO_WEEKS = exports.ONE_WEEK = exports.THIRTY_DAYS = exports.SEVEN_DAYS = exports.FIVE_DAYS = exports.THREE_DAYS = exports.ONE_DAY = exports.TWENTY_FOUR_HOURS = exports.TWELVE_HOURS = exports.SIX_HOURS = exports.THREE_HOURS = exports.ONE_HOUR = exports.SIXTY_MINUTES = exports.THIRTY_MINUTES = exports.TEN_MINUTES = exports.FIVE_MINUTES = exports.ONE_MINUTE = exports.SIXTY_SECONDS = exports.THIRTY_SECONDS = exports.TEN_SECONDS = exports.FIVE_SECONDS = exports.ONE_SECOND = void 0;\nexports.ONE_SECOND = 1;\nexports.FIVE_SECONDS = 5;\nexports.TEN_SECONDS = 10;\nexports.THIRTY_SECONDS = 30;\nexports.SIXTY_SECONDS = 60;\nexports.ONE_MINUTE = exports.SIXTY_SECONDS;\nexports.FIVE_MINUTES = exports.ONE_MINUTE * 5;\nexports.TEN_MINUTES = exports.ONE_MINUTE * 10;\nexports.THIRTY_MINUTES = exports.ONE_MINUTE * 30;\nexports.SIXTY_MINUTES = exports.ONE_MINUTE * 60;\nexports.ONE_HOUR = exports.SIXTY_MINUTES;\nexports.THREE_HOURS = exports.ONE_HOUR * 3;\nexports.SIX_HOURS = exports.ONE_HOUR * 6;\nexports.TWELVE_HOURS = exports.ONE_HOUR * 12;\nexports.TWENTY_FOUR_HOURS = exports.ONE_HOUR * 24;\nexports.ONE_DAY = exports.TWENTY_FOUR_HOURS;\nexports.THREE_DAYS = exports.ONE_DAY * 3;\nexports.FIVE_DAYS = exports.ONE_DAY * 5;\nexports.SEVEN_DAYS = exports.ONE_DAY * 7;\nexports.THIRTY_DAYS = exports.ONE_DAY * 30;\nexports.ONE_WEEK = exports.SEVEN_DAYS;\nexports.TWO_WEEKS = exports.ONE_WEEK * 2;\nexports.THREE_WEEKS = exports.ONE_WEEK * 3;\nexports.FOUR_WEEKS = exports.ONE_WEEK * 4;\nexports.ONE_YEAR = exports.ONE_DAY * 365;\n//# sourceMappingURL=time.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./misc\"), exports);\ntslib_1.__exportStar(require(\"./time\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromMiliseconds = exports.toMiliseconds = void 0;\nconst constants_1 = require(\"../constants\");\nfunction toMiliseconds(seconds) {\n return seconds * constants_1.ONE_THOUSAND;\n}\nexports.toMiliseconds = toMiliseconds;\nfunction fromMiliseconds(miliseconds) {\n return Math.floor(miliseconds / constants_1.ONE_THOUSAND);\n}\nexports.fromMiliseconds = fromMiliseconds;\n//# sourceMappingURL=convert.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./delay\"), exports);\ntslib_1.__exportStar(require(\"./convert\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Watch = void 0;\nclass Watch {\n constructor() {\n this.timestamps = new Map();\n }\n start(label) {\n if (this.timestamps.has(label)) {\n throw new Error(`Watch already started for label: ${label}`);\n }\n this.timestamps.set(label, { started: Date.now() });\n }\n stop(label) {\n const timestamp = this.get(label);\n if (typeof timestamp.elapsed !== \"undefined\") {\n throw new Error(`Watch already stopped for label: ${label}`);\n }\n const elapsed = Date.now() - timestamp.started;\n this.timestamps.set(label, { started: timestamp.started, elapsed });\n }\n get(label) {\n const timestamp = this.timestamps.get(label);\n if (typeof timestamp === \"undefined\") {\n throw new Error(`No timestamp found for label: ${label}`);\n }\n return timestamp;\n }\n elapsed(label) {\n const timestamp = this.get(label);\n const elapsed = timestamp.elapsed || Date.now() - timestamp.started;\n return elapsed;\n }\n}\nexports.Watch = Watch;\nexports.default = Watch;\n//# sourceMappingURL=watch.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IWatch = void 0;\nclass IWatch {\n}\nexports.IWatch = IWatch;\n//# sourceMappingURL=watch.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./watch\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./utils\"), exports);\ntslib_1.__exportStar(require(\"./watch\"), exports);\ntslib_1.__exportStar(require(\"./types\"), exports);\ntslib_1.__exportStar(require(\"./constants\"), exports);\n//# sourceMappingURL=index.js.map","const global = globalThis || void 0 || self;\n\nexport { global as default, global };\n//# sourceMappingURL=index.js.map\n","import{IEvents as o}from\"@walletconnect/events\";import c,{EventEmitter as i}from\"events\";class n extends o{constructor(s){super(),this.opts=s,this.protocol=\"wc\",this.version=2}}class l{constructor(s,t,e){this.core=s,this.logger=t}}class h extends o{constructor(s,t){super(),this.core=s,this.logger=t,this.records=new Map}}class a{constructor(s,t){this.logger=s,this.core=t}}class g extends o{constructor(s,t){super(),this.relayer=s,this.logger=t}}class u extends o{constructor(s){super()}}class p{constructor(s,t,e,f){this.core=s,this.logger=t,this.name=e}}class I{constructor(){this.map=new Map}}class d extends o{constructor(s,t){super(),this.relayer=s,this.logger=t}}class E{constructor(s,t){this.core=s,this.logger=t}}class x extends o{constructor(s,t){super(),this.core=s,this.logger=t}}class m{constructor(s,t){this.logger=s,this.core=t}}class y{constructor(s,t,e){this.core=s,this.logger=t,this.store=e}}class v{constructor(s,t){this.projectId=s,this.logger=t}}class C{constructor(s,t,e){this.core=s,this.logger=t,this.telemetryEnabled=e}}class b extends c{constructor(){super()}}class S{constructor(s){this.opts=s,this.protocol=\"wc\",this.version=2}}class w extends i{constructor(){super()}}class M{constructor(s){this.client=s}}export{n as ICore,l as ICrypto,v as IEchoClient,M as IEngine,w as IEngineEvents,C as IEventClient,x as IExpirer,h as IJsonRpcHistory,E as IKeyChain,a as IMessageTracker,m as IPairing,g as IPublisher,u as IRelayer,S as ISignClient,b as ISignClientEvents,p as IStore,d as ISubscriber,I as ISubscriberTopicMap,y as IVerify};\n//# sourceMappingURL=index.es.js.map\n","import{RELAYER_DEFAULT_PROTOCOL as Et,TRANSPORT_TYPES as f,EVENT_CLIENT_SESSION_TRACES as C,EVENT_CLIENT_SESSION_ERRORS as F,EVENT_CLIENT_AUTHENTICATE_TRACES as Q,EVENT_CLIENT_AUTHENTICATE_ERRORS as se,EVENT_CLIENT_PAIRING_ERRORS as Rt,EVENT_CLIENT_PAIRING_TRACES as St,RELAYER_EVENTS as Ue,VERIFY_SERVER as It,EXPIRER_EVENTS as ft,PAIRING_EVENTS as Ge,Store as H,Core as vt}from\"@walletconnect/core\";import{pino as qt,getDefaultLoggerOptions as Tt,generateChildLogger as Nt,getLoggerContext as Pt}from\"@walletconnect/logger\";import{IEngine as Ot,ISignClient as At}from\"@walletconnect/types\";import{getInternalError as u,calcExpiry as A,createDelayedPromise as Y,engineEvent as g,getSdkError as P,getDeepLink as bt,handleDeeplinkRedirect as Ct,isSessionCompatible as Lt,hashKey as Te,parseChainId as Ne,createEncodedRecap as xt,getRecapFromResources as Pe,mergeEncodedRecaps as Dt,TYPE_2 as Vt,BASE64URL as ie,getLinkModeURL as he,validateSignedCacao as je,getNamespacedDidChainId as Fe,getDidAddress as Qe,getMethodsFromRecap as ze,getChainsFromRecap as He,buildNamespacesFromAuth as Ye,formatMessage as Mt,BASE64 as de,hashMessage as X,isExpired as J,MemoryStore as re,isValidParams as L,isUndefined as ne,isValidRelays as kt,isValidObject as Xe,isValidRequiredNamespaces as $t,isValidNamespaces as Oe,isConformingNamespaces as Je,isValidString as k,isValidErrorReason as Kt,isValidRelay as Ut,isValidController as Gt,isValidNamespacesChainId as Be,isValidRequest as jt,isValidNamespacesRequest as Ft,isValidRequestExpiry as Qt,isValidResponse as zt,isValidEvent as Ht,isValidNamespacesEvent as Yt,getSearchParamFromURL as We,isTestRun as Xt,isReactNative as Jt,parseExpirerTarget as Bt,isValidId as Wt,TYPE_1 as Ae,getAppMetadata as Zt}from\"@walletconnect/utils\";import es,{EventEmitter as ts}from\"events\";import{THIRTY_DAYS as ss,SEVEN_DAYS as Ze,FIVE_MINUTES as b,ONE_DAY as $,ONE_HOUR as et,ONE_SECOND as is,toMiliseconds as tt}from\"@walletconnect/time\";import{payloadId as B,getBigIntRpcId as ue,isJsonRpcResult as K,isJsonRpcError as U,formatJsonRpcRequest as ge,formatJsonRpcResult as rs,formatJsonRpcError as ns,isJsonRpcRequest as os,isJsonRpcResponse as as}from\"@walletconnect/jsonrpc-utils\";const be=\"wc\",Ce=2,Le=\"client\",ye=`${be}@${Ce}:${Le}:`,we={name:Le,logger:\"error\",controller:!1,relayUrl:\"wss://relay.walletconnect.org\"},cs={session_proposal:\"session_proposal\",session_update:\"session_update\",session_extend:\"session_extend\",session_ping:\"session_ping\",session_delete:\"session_delete\",session_expire:\"session_expire\",session_request:\"session_request\",session_request_sent:\"session_request_sent\",session_event:\"session_event\",proposal_expire:\"proposal_expire\",session_authenticate:\"session_authenticate\",session_request_expire:\"session_request_expire\"},ls={database:\":memory:\"},xe=\"WALLETCONNECT_DEEPLINK_CHOICE\",ps={created:\"history_created\",updated:\"history_updated\",deleted:\"history_deleted\",sync:\"history_sync\"},hs=\"history\",ds=\"0.3\",st=\"proposal\",us=ss,it=\"Proposal expired\",rt=\"session\",z=Ze,nt=\"engine\",v={wc_sessionPropose:{req:{ttl:b,prompt:!0,tag:1100},res:{ttl:b,prompt:!1,tag:1101},reject:{ttl:b,prompt:!1,tag:1120},autoReject:{ttl:b,prompt:!1,tag:1121}},wc_sessionSettle:{req:{ttl:b,prompt:!1,tag:1102},res:{ttl:b,prompt:!1,tag:1103}},wc_sessionUpdate:{req:{ttl:$,prompt:!1,tag:1104},res:{ttl:$,prompt:!1,tag:1105}},wc_sessionExtend:{req:{ttl:$,prompt:!1,tag:1106},res:{ttl:$,prompt:!1,tag:1107}},wc_sessionRequest:{req:{ttl:b,prompt:!0,tag:1108},res:{ttl:b,prompt:!1,tag:1109}},wc_sessionEvent:{req:{ttl:b,prompt:!0,tag:1110},res:{ttl:b,prompt:!1,tag:1111}},wc_sessionDelete:{req:{ttl:$,prompt:!1,tag:1112},res:{ttl:$,prompt:!1,tag:1113}},wc_sessionPing:{req:{ttl:$,prompt:!1,tag:1114},res:{ttl:$,prompt:!1,tag:1115}},wc_sessionAuthenticate:{req:{ttl:et,prompt:!0,tag:1116},res:{ttl:et,prompt:!1,tag:1117},reject:{ttl:b,prompt:!1,tag:1118},autoReject:{ttl:b,prompt:!1,tag:1119}}},me={min:b,max:Ze},x={idle:\"IDLE\",active:\"ACTIVE\"},ot=\"request\",at=[\"wc_sessionPropose\",\"wc_sessionRequest\",\"wc_authRequest\",\"wc_sessionAuthenticate\"],ct=\"wc\",gs=1.5,lt=\"auth\",pt=\"authKeys\",ht=\"pairingTopics\",dt=\"requests\",oe=`${ct}@${1.5}:${lt}:`,ae=`${oe}:PUB_KEY`;var ys=Object.defineProperty,ws=Object.defineProperties,ms=Object.getOwnPropertyDescriptors,ut=Object.getOwnPropertySymbols,_s=Object.prototype.hasOwnProperty,Es=Object.prototype.propertyIsEnumerable,gt=(q,o,e)=>o in q?ys(q,o,{enumerable:!0,configurable:!0,writable:!0,value:e}):q[o]=e,I=(q,o)=>{for(var e in o||(o={}))_s.call(o,e)&>(q,e,o[e]);if(ut)for(var e of ut(o))Es.call(o,e)&>(q,e,o[e]);return q},D=(q,o)=>ws(q,ms(o));class Rs extends Ot{constructor(o){super(o),this.name=nt,this.events=new es,this.initialized=!1,this.requestQueue={state:x.idle,queue:[]},this.sessionRequestQueue={state:x.idle,queue:[]},this.requestQueueDelay=is,this.expectedPairingMethodMap=new Map,this.recentlyDeletedMap=new Map,this.recentlyDeletedLimit=200,this.relayMessageCache=[],this.init=async()=>{this.initialized||(await this.cleanup(),this.registerRelayerEvents(),this.registerExpirerEvents(),this.registerPairingEvents(),await this.registerLinkModeListeners(),this.client.core.pairing.register({methods:Object.keys(v)}),this.initialized=!0,setTimeout(()=>{this.sessionRequestQueue.queue=this.getPendingSessionRequests(),this.processSessionRequestQueue()},tt(this.requestQueueDelay)))},this.connect=async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();const t=D(I({},e),{requiredNamespaces:e.requiredNamespaces||{},optionalNamespaces:e.optionalNamespaces||{}});await this.isValidConnect(t);const{pairingTopic:s,requiredNamespaces:i,optionalNamespaces:r,sessionProperties:n,relays:a}=t;let c=s,h,p=!1;try{c&&(p=this.client.core.pairing.pairings.get(c).active)}catch(E){throw this.client.logger.error(`connect() -> pairing.get(${c}) failed`),E}if(!c||!p){const{topic:E,uri:S}=await this.client.core.pairing.create();c=E,h=S}if(!c){const{message:E}=u(\"NO_MATCHING_KEY\",`connect() pairing topic: ${c}`);throw new Error(E)}const d=await this.client.core.crypto.generateKeyPair(),l=v.wc_sessionPropose.req.ttl||b,w=A(l),m=I({requiredNamespaces:i,optionalNamespaces:r,relays:a??[{protocol:Et}],proposer:{publicKey:d,metadata:this.client.metadata},expiryTimestamp:w,pairingTopic:c},n&&{sessionProperties:n}),{reject:y,resolve:_,done:R}=Y(l,it);this.events.once(g(\"session_connect\"),async({error:E,session:S})=>{if(E)y(E);else if(S){S.self.publicKey=d;const M=D(I({},S),{pairingTopic:m.pairingTopic,requiredNamespaces:m.requiredNamespaces,optionalNamespaces:m.optionalNamespaces,transportType:f.relay});await this.client.session.set(S.topic,M),await this.setExpiry(S.topic,S.expiry),c&&await this.client.core.pairing.updateMetadata({topic:c,metadata:S.peer.metadata}),this.cleanupDuplicatePairings(M),_(M)}});const V=await this.sendRequest({topic:c,method:\"wc_sessionPropose\",params:m,throwOnFailedPublish:!0});return await this.setProposal(V,I({id:V},m)),{uri:h,approval:R}},this.pair=async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{return await this.client.core.pairing.pair(e)}catch(t){throw this.client.logger.error(\"pair() failed\"),t}},this.approve=async e=>{var t,s,i;const r=this.client.core.eventClient.createEvent({properties:{topic:(t=e?.id)==null?void 0:t.toString(),trace:[C.session_approve_started]}});try{this.isInitialized(),await this.confirmOnlineStateOrThrow()}catch(N){throw r.setError(F.no_internet_connection),N}try{await this.isValidProposalId(e?.id)}catch(N){throw this.client.logger.error(`approve() -> proposal.get(${e?.id}) failed`),r.setError(F.proposal_not_found),N}try{await this.isValidApprove(e)}catch(N){throw this.client.logger.error(\"approve() -> isValidApprove() failed\"),r.setError(F.session_approve_namespace_validation_failure),N}const{id:n,relayProtocol:a,namespaces:c,sessionProperties:h,sessionConfig:p}=e,d=this.client.proposal.get(n);this.client.core.eventClient.deleteEvent({eventId:r.eventId});const{pairingTopic:l,proposer:w,requiredNamespaces:m,optionalNamespaces:y}=d;let _=(s=this.client.core.eventClient)==null?void 0:s.getEvent({topic:l});_||(_=(i=this.client.core.eventClient)==null?void 0:i.createEvent({type:C.session_approve_started,properties:{topic:l,trace:[C.session_approve_started,C.session_namespaces_validation_success]}}));const R=await this.client.core.crypto.generateKeyPair(),V=w.publicKey,E=await this.client.core.crypto.generateSharedKey(R,V),S=I(I({relay:{protocol:a??\"irn\"},namespaces:c,controller:{publicKey:R,metadata:this.client.metadata},expiry:A(z)},h&&{sessionProperties:h}),p&&{sessionConfig:p}),M=f.relay;_.addTrace(C.subscribing_session_topic);try{await this.client.core.relayer.subscribe(E,{transportType:M})}catch(N){throw _.setError(F.subscribe_session_topic_failure),N}_.addTrace(C.subscribe_session_topic_success);const W=D(I({},S),{topic:E,requiredNamespaces:m,optionalNamespaces:y,pairingTopic:l,acknowledged:!1,self:S.controller,peer:{publicKey:w.publicKey,metadata:w.metadata},controller:R,transportType:f.relay});await this.client.session.set(E,W),_.addTrace(C.store_session);try{_.addTrace(C.publishing_session_settle),await this.sendRequest({topic:E,method:\"wc_sessionSettle\",params:S,throwOnFailedPublish:!0}).catch(N=>{throw _?.setError(F.session_settle_publish_failure),N}),_.addTrace(C.session_settle_publish_success),_.addTrace(C.publishing_session_approve),await this.sendResult({id:n,topic:l,result:{relay:{protocol:a??\"irn\"},responderPublicKey:R},throwOnFailedPublish:!0}).catch(N=>{throw _?.setError(F.session_approve_publish_failure),N}),_.addTrace(C.session_approve_publish_success)}catch(N){throw this.client.logger.error(N),this.client.session.delete(E,P(\"USER_DISCONNECTED\")),await this.client.core.relayer.unsubscribe(E),N}return this.client.core.eventClient.deleteEvent({eventId:_.eventId}),await this.client.core.pairing.updateMetadata({topic:l,metadata:w.metadata}),await this.client.proposal.delete(n,P(\"USER_DISCONNECTED\")),await this.client.core.pairing.activate({topic:l}),await this.setExpiry(E,A(z)),{topic:E,acknowledged:()=>Promise.resolve(this.client.session.get(E))}},this.reject=async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidReject(e)}catch(r){throw this.client.logger.error(\"reject() -> isValidReject() failed\"),r}const{id:t,reason:s}=e;let i;try{i=this.client.proposal.get(t).pairingTopic}catch(r){throw this.client.logger.error(`reject() -> proposal.get(${t}) failed`),r}i&&(await this.sendError({id:t,topic:i,error:s,rpcOpts:v.wc_sessionPropose.reject}),await this.client.proposal.delete(t,P(\"USER_DISCONNECTED\")))},this.update=async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidUpdate(e)}catch(p){throw this.client.logger.error(\"update() -> isValidUpdate() failed\"),p}const{topic:t,namespaces:s}=e,{done:i,resolve:r,reject:n}=Y(),a=B(),c=ue().toString(),h=this.client.session.get(t).namespaces;return this.events.once(g(\"session_update\",a),({error:p})=>{p?n(p):r()}),await this.client.session.update(t,{namespaces:s}),await this.sendRequest({topic:t,method:\"wc_sessionUpdate\",params:{namespaces:s},throwOnFailedPublish:!0,clientRpcId:a,relayRpcId:c}).catch(p=>{this.client.logger.error(p),this.client.session.update(t,{namespaces:h}),n(p)}),{acknowledged:i}},this.extend=async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidExtend(e)}catch(a){throw this.client.logger.error(\"extend() -> isValidExtend() failed\"),a}const{topic:t}=e,s=B(),{done:i,resolve:r,reject:n}=Y();return this.events.once(g(\"session_extend\",s),({error:a})=>{a?n(a):r()}),await this.setExpiry(t,A(z)),this.sendRequest({topic:t,method:\"wc_sessionExtend\",params:{},clientRpcId:s,throwOnFailedPublish:!0}).catch(a=>{n(a)}),{acknowledged:i}},this.request=async e=>{this.isInitialized();try{await this.isValidRequest(e)}catch(w){throw this.client.logger.error(\"request() -> isValidRequest() failed\"),w}const{chainId:t,request:s,topic:i,expiry:r=v.wc_sessionRequest.req.ttl}=e,n=this.client.session.get(i);n?.transportType===f.relay&&await this.confirmOnlineStateOrThrow();const a=B(),c=ue().toString(),{done:h,resolve:p,reject:d}=Y(r,\"Request expired. Please try again.\");this.events.once(g(\"session_request\",a),({error:w,result:m})=>{w?d(w):p(m)});const l=this.getAppLinkIfEnabled(n.peer.metadata,n.transportType);return l?(await this.sendRequest({clientRpcId:a,relayRpcId:c,topic:i,method:\"wc_sessionRequest\",params:{request:D(I({},s),{expiryTimestamp:A(r)}),chainId:t},expiry:r,throwOnFailedPublish:!0,appLink:l}).catch(w=>d(w)),this.client.events.emit(\"session_request_sent\",{topic:i,request:s,chainId:t,id:a}),await h()):await Promise.all([new Promise(async w=>{await this.sendRequest({clientRpcId:a,relayRpcId:c,topic:i,method:\"wc_sessionRequest\",params:{request:D(I({},s),{expiryTimestamp:A(r)}),chainId:t},expiry:r,throwOnFailedPublish:!0}).catch(m=>d(m)),this.client.events.emit(\"session_request_sent\",{topic:i,request:s,chainId:t,id:a}),w()}),new Promise(async w=>{var m;if(!((m=n.sessionConfig)!=null&&m.disableDeepLink)){const y=await bt(this.client.core.storage,xe);await Ct({id:a,topic:i,wcDeepLink:y})}w()}),h()]).then(w=>w[2])},this.respond=async e=>{this.isInitialized(),await this.isValidRespond(e);const{topic:t,response:s}=e,{id:i}=s,r=this.client.session.get(t);r.transportType===f.relay&&await this.confirmOnlineStateOrThrow();const n=this.getAppLinkIfEnabled(r.peer.metadata,r.transportType);K(s)?await this.sendResult({id:i,topic:t,result:s.result,throwOnFailedPublish:!0,appLink:n}):U(s)&&await this.sendError({id:i,topic:t,error:s.error,appLink:n}),this.cleanupAfterResponse(e)},this.ping=async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidPing(e)}catch(s){throw this.client.logger.error(\"ping() -> isValidPing() failed\"),s}const{topic:t}=e;if(this.client.session.keys.includes(t)){const s=B(),i=ue().toString(),{done:r,resolve:n,reject:a}=Y();this.events.once(g(\"session_ping\",s),({error:c})=>{c?a(c):n()}),await Promise.all([this.sendRequest({topic:t,method:\"wc_sessionPing\",params:{},throwOnFailedPublish:!0,clientRpcId:s,relayRpcId:i}),r()])}else this.client.core.pairing.pairings.keys.includes(t)&&await this.client.core.pairing.ping({topic:t})},this.emit=async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow(),await this.isValidEmit(e);const{topic:t,event:s,chainId:i}=e,r=ue().toString();await this.sendRequest({topic:t,method:\"wc_sessionEvent\",params:{event:s,chainId:i},throwOnFailedPublish:!0,relayRpcId:r})},this.disconnect=async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow(),await this.isValidDisconnect(e);const{topic:t}=e;if(this.client.session.keys.includes(t))await this.sendRequest({topic:t,method:\"wc_sessionDelete\",params:P(\"USER_DISCONNECTED\"),throwOnFailedPublish:!0}),await this.deleteSession({topic:t,emitEvent:!1});else if(this.client.core.pairing.pairings.keys.includes(t))await this.client.core.pairing.disconnect({topic:t});else{const{message:s}=u(\"MISMATCHED_TOPIC\",`Session or pairing topic not found: ${t}`);throw new Error(s)}},this.find=e=>(this.isInitialized(),this.client.session.getAll().filter(t=>Lt(t,e))),this.getPendingSessionRequests=()=>this.client.pendingRequest.getAll(),this.authenticate=async(e,t)=>{var s;this.isInitialized(),this.isValidAuthenticate(e);const i=t&&this.client.core.linkModeSupportedApps.includes(t)&&((s=this.client.metadata.redirect)==null?void 0:s.linkMode),r=i?f.link_mode:f.relay;r===f.relay&&await this.confirmOnlineStateOrThrow();const{chains:n,statement:a=\"\",uri:c,domain:h,nonce:p,type:d,exp:l,nbf:w,methods:m=[],expiry:y}=e,_=[...e.resources||[]],{topic:R,uri:V}=await this.client.core.pairing.create({methods:[\"wc_sessionAuthenticate\"],transportType:r});this.client.logger.info({message:\"Generated new pairing\",pairing:{topic:R,uri:V}});const E=await this.client.core.crypto.generateKeyPair(),S=Te(E);if(await Promise.all([this.client.auth.authKeys.set(ae,{responseTopic:S,publicKey:E}),this.client.auth.pairingTopics.set(S,{topic:S,pairingTopic:R})]),await this.client.core.relayer.subscribe(S,{transportType:r}),this.client.logger.info(`sending request to new pairing topic: ${R}`),m.length>0){const{namespace:O}=Ne(n[0]);let T=xt(O,\"request\",m);Pe(_)&&(T=Dt(T,_.pop())),_.push(T)}const M=y&&y>v.wc_sessionAuthenticate.req.ttl?y:v.wc_sessionAuthenticate.req.ttl,W={authPayload:{type:d??\"caip122\",chains:n,statement:a,aud:c,domain:h,version:\"1\",nonce:p,iat:new Date().toISOString(),exp:l,nbf:w,resources:_},requester:{publicKey:E,metadata:this.client.metadata},expiryTimestamp:A(M)},N={eip155:{chains:n,methods:[...new Set([\"personal_sign\",...m])],events:[\"chainChanged\",\"accountsChanged\"]}},De={requiredNamespaces:{},optionalNamespaces:N,relays:[{protocol:\"irn\"}],pairingTopic:R,proposer:{publicKey:E,metadata:this.client.metadata},expiryTimestamp:A(v.wc_sessionPropose.req.ttl)},{done:wt,resolve:Ve,reject:Ee}=Y(M,\"Request expired\"),ce=async({error:O,session:T})=>{if(this.events.off(g(\"session_request\",G),Re),O)Ee(O);else if(T){T.self.publicKey=E,await this.client.session.set(T.topic,T),await this.setExpiry(T.topic,T.expiry),R&&await this.client.core.pairing.updateMetadata({topic:R,metadata:T.peer.metadata});const le=this.client.session.get(T.topic);await this.deleteProposal(Z),Ve({session:le})}},Re=async O=>{var T,le,Me;if(await this.deletePendingAuthRequest(G,{message:\"fulfilled\",code:0}),O.error){const te=P(\"WC_METHOD_UNSUPPORTED\",\"wc_sessionAuthenticate\");return O.error.code===te.code?void 0:(this.events.off(g(\"session_connect\"),ce),Ee(O.error.message))}await this.deleteProposal(Z),this.events.off(g(\"session_connect\"),ce);const{cacaos:ke,responder:j}=O.result,Ie=[],$e=[];for(const te of ke){await je({cacao:te,projectId:this.client.core.projectId})||(this.client.logger.error(te,\"Signature verification failed\"),Ee(P(\"SESSION_SETTLEMENT_FAILED\",\"Signature verification failed\")));const{p:fe}=te,ve=Pe(fe.resources),Ke=[Fe(fe.iss)],mt=Qe(fe.iss);if(ve){const qe=ze(ve),_t=He(ve);Ie.push(...qe),Ke.push(..._t)}for(const qe of Ke)$e.push(`${qe}:${mt}`)}const ee=await this.client.core.crypto.generateSharedKey(E,j.publicKey);let pe;Ie.length>0&&(pe={topic:ee,acknowledged:!0,self:{publicKey:E,metadata:this.client.metadata},peer:j,controller:j.publicKey,expiry:A(z),requiredNamespaces:{},optionalNamespaces:{},relay:{protocol:\"irn\"},pairingTopic:R,namespaces:Ye([...new Set(Ie)],[...new Set($e)]),transportType:r},await this.client.core.relayer.subscribe(ee,{transportType:r}),await this.client.session.set(ee,pe),R&&await this.client.core.pairing.updateMetadata({topic:R,metadata:j.metadata}),pe=this.client.session.get(ee)),(T=this.client.metadata.redirect)!=null&&T.linkMode&&(le=j.metadata.redirect)!=null&&le.linkMode&&(Me=j.metadata.redirect)!=null&&Me.universal&&t&&(this.client.core.addLinkModeSupportedApp(j.metadata.redirect.universal),this.client.session.update(ee,{transportType:f.link_mode})),Ve({auths:ke,session:pe})},G=B(),Z=B();this.events.once(g(\"session_connect\"),ce),this.events.once(g(\"session_request\",G),Re);let Se;try{if(i){const O=ge(\"wc_sessionAuthenticate\",W,G);this.client.core.history.set(R,O);const T=await this.client.core.crypto.encode(\"\",O,{type:Vt,encoding:ie});Se=he(t,R,T)}else await Promise.all([this.sendRequest({topic:R,method:\"wc_sessionAuthenticate\",params:W,expiry:e.expiry,throwOnFailedPublish:!0,clientRpcId:G}),this.sendRequest({topic:R,method:\"wc_sessionPropose\",params:De,expiry:v.wc_sessionPropose.req.ttl,throwOnFailedPublish:!0,clientRpcId:Z})])}catch(O){throw this.events.off(g(\"session_connect\"),ce),this.events.off(g(\"session_request\",G),Re),O}return await this.setProposal(Z,I({id:Z},De)),await this.setAuthRequest(G,{request:D(I({},W),{verifyContext:{}}),pairingTopic:R,transportType:r}),{uri:Se??V,response:wt}},this.approveSessionAuthenticate=async e=>{const{id:t,auths:s}=e,i=this.client.core.eventClient.createEvent({properties:{topic:t.toString(),trace:[Q.authenticated_session_approve_started]}});try{this.isInitialized()}catch(y){throw i.setError(se.no_internet_connection),y}const r=this.getPendingAuthRequest(t);if(!r)throw i.setError(se.authenticated_session_pending_request_not_found),new Error(`Could not find pending auth request with id ${t}`);const n=r.transportType||f.relay;n===f.relay&&await this.confirmOnlineStateOrThrow();const a=r.requester.publicKey,c=await this.client.core.crypto.generateKeyPair(),h=Te(a),p={type:Ae,receiverPublicKey:a,senderPublicKey:c},d=[],l=[];for(const y of s){if(!await je({cacao:y,projectId:this.client.core.projectId})){i.setError(se.invalid_cacao);const S=P(\"SESSION_SETTLEMENT_FAILED\",\"Signature verification failed\");throw await this.sendError({id:t,topic:h,error:S,encodeOpts:p}),new Error(S.message)}i.addTrace(Q.cacaos_verified);const{p:_}=y,R=Pe(_.resources),V=[Fe(_.iss)],E=Qe(_.iss);if(R){const S=ze(R),M=He(R);d.push(...S),V.push(...M)}for(const S of V)l.push(`${S}:${E}`)}const w=await this.client.core.crypto.generateSharedKey(c,a);i.addTrace(Q.create_authenticated_session_topic);let m;if(d?.length>0){m={topic:w,acknowledged:!0,self:{publicKey:c,metadata:this.client.metadata},peer:{publicKey:a,metadata:r.requester.metadata},controller:a,expiry:A(z),authentication:s,requiredNamespaces:{},optionalNamespaces:{},relay:{protocol:\"irn\"},pairingTopic:r.pairingTopic,namespaces:Ye([...new Set(d)],[...new Set(l)]),transportType:n},i.addTrace(Q.subscribing_authenticated_session_topic);try{await this.client.core.relayer.subscribe(w,{transportType:n})}catch(y){throw i.setError(se.subscribe_authenticated_session_topic_failure),y}i.addTrace(Q.subscribe_authenticated_session_topic_success),await this.client.session.set(w,m),i.addTrace(Q.store_authenticated_session),await this.client.core.pairing.updateMetadata({topic:r.pairingTopic,metadata:r.requester.metadata})}i.addTrace(Q.publishing_authenticated_session_approve);try{await this.sendResult({topic:h,id:t,result:{cacaos:s,responder:{publicKey:c,metadata:this.client.metadata}},encodeOpts:p,throwOnFailedPublish:!0,appLink:this.getAppLinkIfEnabled(r.requester.metadata,n)})}catch(y){throw i.setError(se.authenticated_session_approve_publish_failure),y}return await this.client.auth.requests.delete(t,{message:\"fulfilled\",code:0}),await this.client.core.pairing.activate({topic:r.pairingTopic}),this.client.core.eventClient.deleteEvent({eventId:i.eventId}),{session:m}},this.rejectSessionAuthenticate=async e=>{this.isInitialized();const{id:t,reason:s}=e,i=this.getPendingAuthRequest(t);if(!i)throw new Error(`Could not find pending auth request with id ${t}`);i.transportType===f.relay&&await this.confirmOnlineStateOrThrow();const r=i.requester.publicKey,n=await this.client.core.crypto.generateKeyPair(),a=Te(r),c={type:Ae,receiverPublicKey:r,senderPublicKey:n};await this.sendError({id:t,topic:a,error:s,encodeOpts:c,rpcOpts:v.wc_sessionAuthenticate.reject,appLink:this.getAppLinkIfEnabled(i.requester.metadata,i.transportType)}),await this.client.auth.requests.delete(t,{message:\"rejected\",code:0}),await this.client.proposal.delete(t,P(\"USER_DISCONNECTED\"))},this.formatAuthMessage=e=>{this.isInitialized();const{request:t,iss:s}=e;return Mt(t,s)},this.processRelayMessageCache=()=>{setTimeout(async()=>{if(this.relayMessageCache.length!==0)for(;this.relayMessageCache.length>0;)try{const e=this.relayMessageCache.shift();e&&await this.onRelayMessage(e)}catch(e){this.client.logger.error(e)}},50)},this.cleanupDuplicatePairings=async e=>{if(e.pairingTopic)try{const t=this.client.core.pairing.pairings.get(e.pairingTopic),s=this.client.core.pairing.pairings.getAll().filter(i=>{var r,n;return((r=i.peerMetadata)==null?void 0:r.url)&&((n=i.peerMetadata)==null?void 0:n.url)===e.peer.metadata.url&&i.topic&&i.topic!==t.topic});if(s.length===0)return;this.client.logger.info(`Cleaning up ${s.length} duplicate pairing(s)`),await Promise.all(s.map(i=>this.client.core.pairing.disconnect({topic:i.topic}))),this.client.logger.info(\"Duplicate pairings clean up finished\")}catch(t){this.client.logger.error(t)}},this.deleteSession=async e=>{var t;const{topic:s,expirerHasDeleted:i=!1,emitEvent:r=!0,id:n=0}=e,{self:a}=this.client.session.get(s);await this.client.core.relayer.unsubscribe(s),await this.client.session.delete(s,P(\"USER_DISCONNECTED\")),this.addToRecentlyDeleted(s,\"session\"),this.client.core.crypto.keychain.has(a.publicKey)&&await this.client.core.crypto.deleteKeyPair(a.publicKey),this.client.core.crypto.keychain.has(s)&&await this.client.core.crypto.deleteSymKey(s),i||this.client.core.expirer.del(s),this.client.core.storage.removeItem(xe).catch(c=>this.client.logger.warn(c)),this.getPendingSessionRequests().forEach(c=>{c.topic===s&&this.deletePendingSessionRequest(c.id,P(\"USER_DISCONNECTED\"))}),s===((t=this.sessionRequestQueue.queue[0])==null?void 0:t.topic)&&(this.sessionRequestQueue.state=x.idle),r&&this.client.events.emit(\"session_delete\",{id:n,topic:s})},this.deleteProposal=async(e,t)=>{if(t)try{const s=this.client.proposal.get(e),i=this.client.core.eventClient.getEvent({topic:s.pairingTopic});i?.setError(F.proposal_expired)}catch{}await Promise.all([this.client.proposal.delete(e,P(\"USER_DISCONNECTED\")),t?Promise.resolve():this.client.core.expirer.del(e)]),this.addToRecentlyDeleted(e,\"proposal\")},this.deletePendingSessionRequest=async(e,t,s=!1)=>{await Promise.all([this.client.pendingRequest.delete(e,t),s?Promise.resolve():this.client.core.expirer.del(e)]),this.addToRecentlyDeleted(e,\"request\"),this.sessionRequestQueue.queue=this.sessionRequestQueue.queue.filter(i=>i.id!==e),s&&(this.sessionRequestQueue.state=x.idle,this.client.events.emit(\"session_request_expire\",{id:e}))},this.deletePendingAuthRequest=async(e,t,s=!1)=>{await Promise.all([this.client.auth.requests.delete(e,t),s?Promise.resolve():this.client.core.expirer.del(e)])},this.setExpiry=async(e,t)=>{this.client.session.keys.includes(e)&&(this.client.core.expirer.set(e,t),await this.client.session.update(e,{expiry:t}))},this.setProposal=async(e,t)=>{this.client.core.expirer.set(e,A(v.wc_sessionPropose.req.ttl)),await this.client.proposal.set(e,t)},this.setAuthRequest=async(e,t)=>{const{request:s,pairingTopic:i,transportType:r=f.relay}=t;this.client.core.expirer.set(e,s.expiryTimestamp),await this.client.auth.requests.set(e,{authPayload:s.authPayload,requester:s.requester,expiryTimestamp:s.expiryTimestamp,id:e,pairingTopic:i,verifyContext:s.verifyContext,transportType:r})},this.setPendingSessionRequest=async e=>{const{id:t,topic:s,params:i,verifyContext:r}=e,n=i.request.expiryTimestamp||A(v.wc_sessionRequest.req.ttl);this.client.core.expirer.set(t,n),await this.client.pendingRequest.set(t,{id:t,topic:s,params:i,verifyContext:r})},this.sendRequest=async e=>{const{topic:t,method:s,params:i,expiry:r,relayRpcId:n,clientRpcId:a,throwOnFailedPublish:c,appLink:h}=e,p=ge(s,i,a);let d;const l=!!h;try{const y=l?ie:de;d=await this.client.core.crypto.encode(t,p,{encoding:y})}catch(y){throw await this.cleanup(),this.client.logger.error(`sendRequest() -> core.crypto.encode() for topic ${t} failed`),y}let w;if(at.includes(s)){const y=X(JSON.stringify(p)),_=X(d);w=await this.client.core.verify.register({id:_,decryptedId:y})}const m=v[s].req;if(m.attestation=w,r&&(m.ttl=r),n&&(m.id=n),this.client.core.history.set(t,p),l){const y=he(h,t,d);await global.Linking.openURL(y,this.client.name)}else{const y=v[s].req;r&&(y.ttl=r),n&&(y.id=n),c?(y.internal=D(I({},y.internal),{throwOnFailedPublish:!0}),await this.client.core.relayer.publish(t,d,y)):this.client.core.relayer.publish(t,d,y).catch(_=>this.client.logger.error(_))}return p.id},this.sendResult=async e=>{const{id:t,topic:s,result:i,throwOnFailedPublish:r,encodeOpts:n,appLink:a}=e,c=rs(t,i);let h;const p=a&&typeof(global==null?void 0:global.Linking)<\"u\";try{const l=p?ie:de;h=await this.client.core.crypto.encode(s,c,D(I({},n||{}),{encoding:l}))}catch(l){throw await this.cleanup(),this.client.logger.error(`sendResult() -> core.crypto.encode() for topic ${s} failed`),l}let d;try{d=await this.client.core.history.get(s,t)}catch(l){throw this.client.logger.error(`sendResult() -> history.get(${s}, ${t}) failed`),l}if(p){const l=he(a,s,h);await global.Linking.openURL(l,this.client.name)}else{const l=v[d.request.method].res;r?(l.internal=D(I({},l.internal),{throwOnFailedPublish:!0}),await this.client.core.relayer.publish(s,h,l)):this.client.core.relayer.publish(s,h,l).catch(w=>this.client.logger.error(w))}await this.client.core.history.resolve(c)},this.sendError=async e=>{const{id:t,topic:s,error:i,encodeOpts:r,rpcOpts:n,appLink:a}=e,c=ns(t,i);let h;const p=a&&typeof(global==null?void 0:global.Linking)<\"u\";try{const l=p?ie:de;h=await this.client.core.crypto.encode(s,c,D(I({},r||{}),{encoding:l}))}catch(l){throw await this.cleanup(),this.client.logger.error(`sendError() -> core.crypto.encode() for topic ${s} failed`),l}let d;try{d=await this.client.core.history.get(s,t)}catch(l){throw this.client.logger.error(`sendError() -> history.get(${s}, ${t}) failed`),l}if(p){const l=he(a,s,h);await global.Linking.openURL(l,this.client.name)}else{const l=n||v[d.request.method].res;this.client.core.relayer.publish(s,h,l)}await this.client.core.history.resolve(c)},this.cleanup=async()=>{const e=[],t=[];this.client.session.getAll().forEach(s=>{let i=!1;J(s.expiry)&&(i=!0),this.client.core.crypto.keychain.has(s.topic)||(i=!0),i&&e.push(s.topic)}),this.client.proposal.getAll().forEach(s=>{J(s.expiryTimestamp)&&t.push(s.id)}),await Promise.all([...e.map(s=>this.deleteSession({topic:s})),...t.map(s=>this.deleteProposal(s))])},this.onRelayEventRequest=async e=>{this.requestQueue.queue.push(e),await this.processRequestsQueue()},this.processRequestsQueue=async()=>{if(this.requestQueue.state===x.active){this.client.logger.info(\"Request queue already active, skipping...\");return}for(this.client.logger.info(`Request queue starting with ${this.requestQueue.queue.length} requests`);this.requestQueue.queue.length>0;){this.requestQueue.state=x.active;const e=this.requestQueue.queue.shift();if(e)try{await this.processRequest(e)}catch(t){this.client.logger.warn(t)}}this.requestQueue.state=x.idle},this.processRequest=async e=>{const{topic:t,payload:s,attestation:i,transportType:r,encryptedId:n}=e,a=s.method;if(!this.shouldIgnorePairingRequest({topic:t,requestMethod:a}))switch(a){case\"wc_sessionPropose\":return await this.onSessionProposeRequest({topic:t,payload:s,attestation:i,encryptedId:n});case\"wc_sessionSettle\":return await this.onSessionSettleRequest(t,s);case\"wc_sessionUpdate\":return await this.onSessionUpdateRequest(t,s);case\"wc_sessionExtend\":return await this.onSessionExtendRequest(t,s);case\"wc_sessionPing\":return await this.onSessionPingRequest(t,s);case\"wc_sessionDelete\":return await this.onSessionDeleteRequest(t,s);case\"wc_sessionRequest\":return await this.onSessionRequest({topic:t,payload:s,attestation:i,encryptedId:n,transportType:r});case\"wc_sessionEvent\":return await this.onSessionEventRequest(t,s);case\"wc_sessionAuthenticate\":return await this.onSessionAuthenticateRequest({topic:t,payload:s,attestation:i,encryptedId:n,transportType:r});default:return this.client.logger.info(`Unsupported request method ${a}`)}},this.onRelayEventResponse=async e=>{const{topic:t,payload:s,transportType:i}=e,r=(await this.client.core.history.get(t,s.id)).request.method;switch(r){case\"wc_sessionPropose\":return this.onSessionProposeResponse(t,s,i);case\"wc_sessionSettle\":return this.onSessionSettleResponse(t,s);case\"wc_sessionUpdate\":return this.onSessionUpdateResponse(t,s);case\"wc_sessionExtend\":return this.onSessionExtendResponse(t,s);case\"wc_sessionPing\":return this.onSessionPingResponse(t,s);case\"wc_sessionRequest\":return this.onSessionRequestResponse(t,s);case\"wc_sessionAuthenticate\":return this.onSessionAuthenticateResponse(t,s);default:return this.client.logger.info(`Unsupported response method ${r}`)}},this.onRelayEventUnknownPayload=e=>{const{topic:t}=e,{message:s}=u(\"MISSING_OR_INVALID\",`Decoded payload on topic ${t} is not identifiable as a JSON-RPC request or a response.`);throw new Error(s)},this.shouldIgnorePairingRequest=e=>{const{topic:t,requestMethod:s}=e,i=this.expectedPairingMethodMap.get(t);return!i||i.includes(s)?!1:!!(i.includes(\"wc_sessionAuthenticate\")&&this.client.events.listenerCount(\"session_authenticate\")>0)},this.onSessionProposeRequest=async e=>{const{topic:t,payload:s,attestation:i,encryptedId:r}=e,{params:n,id:a}=s;try{const c=this.client.core.eventClient.getEvent({topic:t});this.isValidConnect(I({},s.params));const h=n.expiryTimestamp||A(v.wc_sessionPropose.req.ttl),p=I({id:a,pairingTopic:t,expiryTimestamp:h},n);await this.setProposal(a,p);const d=await this.getVerifyContext({attestationId:i,hash:X(JSON.stringify(s)),encryptedId:r,metadata:p.proposer.metadata});this.client.events.listenerCount(\"session_proposal\")===0&&(console.warn(\"No listener for session_proposal event\"),c?.setError(Rt.proposal_listener_not_found)),c?.addTrace(St.emit_session_proposal),this.client.events.emit(\"session_proposal\",{id:a,params:p,verifyContext:d})}catch(c){await this.sendError({id:a,topic:t,error:c,rpcOpts:v.wc_sessionPropose.autoReject}),this.client.logger.error(c)}},this.onSessionProposeResponse=async(e,t,s)=>{const{id:i}=t;if(K(t)){const{result:r}=t;this.client.logger.trace({type:\"method\",method:\"onSessionProposeResponse\",result:r});const n=this.client.proposal.get(i);this.client.logger.trace({type:\"method\",method:\"onSessionProposeResponse\",proposal:n});const a=n.proposer.publicKey;this.client.logger.trace({type:\"method\",method:\"onSessionProposeResponse\",selfPublicKey:a});const c=r.responderPublicKey;this.client.logger.trace({type:\"method\",method:\"onSessionProposeResponse\",peerPublicKey:c});const h=await this.client.core.crypto.generateSharedKey(a,c);this.client.logger.trace({type:\"method\",method:\"onSessionProposeResponse\",sessionTopic:h});const p=await this.client.core.relayer.subscribe(h,{transportType:s});this.client.logger.trace({type:\"method\",method:\"onSessionProposeResponse\",subscriptionId:p}),await this.client.core.pairing.activate({topic:e})}else if(U(t)){await this.client.proposal.delete(i,P(\"USER_DISCONNECTED\"));const r=g(\"session_connect\");if(this.events.listenerCount(r)===0)throw new Error(`emitting ${r} without any listeners, 954`);this.events.emit(g(\"session_connect\"),{error:t.error})}},this.onSessionSettleRequest=async(e,t)=>{const{id:s,params:i}=t;try{this.isValidSessionSettleRequest(i);const{relay:r,controller:n,expiry:a,namespaces:c,sessionProperties:h,sessionConfig:p}=t.params,d=D(I(I({topic:e,relay:r,expiry:a,namespaces:c,acknowledged:!0,pairingTopic:\"\",requiredNamespaces:{},optionalNamespaces:{},controller:n.publicKey,self:{publicKey:\"\",metadata:this.client.metadata},peer:{publicKey:n.publicKey,metadata:n.metadata}},h&&{sessionProperties:h}),p&&{sessionConfig:p}),{transportType:f.relay}),l=g(\"session_connect\");if(this.events.listenerCount(l)===0)throw new Error(`emitting ${l} without any listeners 997`);this.events.emit(g(\"session_connect\"),{session:d}),await this.sendResult({id:t.id,topic:e,result:!0,throwOnFailedPublish:!0})}catch(r){await this.sendError({id:s,topic:e,error:r}),this.client.logger.error(r)}},this.onSessionSettleResponse=async(e,t)=>{const{id:s}=t;K(t)?(await this.client.session.update(e,{acknowledged:!0}),this.events.emit(g(\"session_approve\",s),{})):U(t)&&(await this.client.session.delete(e,P(\"USER_DISCONNECTED\")),this.events.emit(g(\"session_approve\",s),{error:t.error}))},this.onSessionUpdateRequest=async(e,t)=>{const{params:s,id:i}=t;try{const r=`${e}_session_update`,n=re.get(r);if(n&&this.isRequestOutOfSync(n,i)){this.client.logger.info(`Discarding out of sync request - ${i}`),this.sendError({id:i,topic:e,error:P(\"INVALID_UPDATE_REQUEST\")});return}this.isValidUpdate(I({topic:e},s));try{re.set(r,i),await this.client.session.update(e,{namespaces:s.namespaces}),await this.sendResult({id:i,topic:e,result:!0,throwOnFailedPublish:!0})}catch(a){throw re.delete(r),a}this.client.events.emit(\"session_update\",{id:i,topic:e,params:s})}catch(r){await this.sendError({id:i,topic:e,error:r}),this.client.logger.error(r)}},this.isRequestOutOfSync=(e,t)=>parseInt(t.toString().slice(0,-3))<=parseInt(e.toString().slice(0,-3)),this.onSessionUpdateResponse=(e,t)=>{const{id:s}=t,i=g(\"session_update\",s);if(this.events.listenerCount(i)===0)throw new Error(`emitting ${i} without any listeners`);K(t)?this.events.emit(g(\"session_update\",s),{}):U(t)&&this.events.emit(g(\"session_update\",s),{error:t.error})},this.onSessionExtendRequest=async(e,t)=>{const{id:s}=t;try{this.isValidExtend({topic:e}),await this.setExpiry(e,A(z)),await this.sendResult({id:s,topic:e,result:!0,throwOnFailedPublish:!0}),this.client.events.emit(\"session_extend\",{id:s,topic:e})}catch(i){await this.sendError({id:s,topic:e,error:i}),this.client.logger.error(i)}},this.onSessionExtendResponse=(e,t)=>{const{id:s}=t,i=g(\"session_extend\",s);if(this.events.listenerCount(i)===0)throw new Error(`emitting ${i} without any listeners`);K(t)?this.events.emit(g(\"session_extend\",s),{}):U(t)&&this.events.emit(g(\"session_extend\",s),{error:t.error})},this.onSessionPingRequest=async(e,t)=>{const{id:s}=t;try{this.isValidPing({topic:e}),await this.sendResult({id:s,topic:e,result:!0,throwOnFailedPublish:!0}),this.client.events.emit(\"session_ping\",{id:s,topic:e})}catch(i){await this.sendError({id:s,topic:e,error:i}),this.client.logger.error(i)}},this.onSessionPingResponse=(e,t)=>{const{id:s}=t,i=g(\"session_ping\",s);if(this.events.listenerCount(i)===0)throw new Error(`emitting ${i} without any listeners`);setTimeout(()=>{K(t)?this.events.emit(g(\"session_ping\",s),{}):U(t)&&this.events.emit(g(\"session_ping\",s),{error:t.error})},500)},this.onSessionDeleteRequest=async(e,t)=>{const{id:s}=t;try{this.isValidDisconnect({topic:e,reason:t.params}),Promise.all([new Promise(i=>{this.client.core.relayer.once(Ue.publish,async()=>{i(await this.deleteSession({topic:e,id:s}))})}),this.sendResult({id:s,topic:e,result:!0,throwOnFailedPublish:!0}),this.cleanupPendingSentRequestsForTopic({topic:e,error:P(\"USER_DISCONNECTED\")})]).catch(i=>this.client.logger.error(i))}catch(i){this.client.logger.error(i)}},this.onSessionRequest=async e=>{var t,s,i;const{topic:r,payload:n,attestation:a,encryptedId:c,transportType:h}=e,{id:p,params:d}=n;try{await this.isValidRequest(I({topic:r},d));const l=this.client.session.get(r),w=await this.getVerifyContext({attestationId:a,hash:X(JSON.stringify(ge(\"wc_sessionRequest\",d,p))),encryptedId:c,metadata:l.peer.metadata,transportType:h}),m={id:p,topic:r,params:d,verifyContext:w};await this.setPendingSessionRequest(m),h===f.link_mode&&(t=l.peer.metadata.redirect)!=null&&t.universal&&this.client.core.addLinkModeSupportedApp((s=l.peer.metadata.redirect)==null?void 0:s.universal),(i=this.client.signConfig)!=null&&i.disableRequestQueue?this.emitSessionRequest(m):(this.addSessionRequestToSessionRequestQueue(m),this.processSessionRequestQueue())}catch(l){await this.sendError({id:p,topic:r,error:l}),this.client.logger.error(l)}},this.onSessionRequestResponse=(e,t)=>{const{id:s}=t,i=g(\"session_request\",s);if(this.events.listenerCount(i)===0)throw new Error(`emitting ${i} without any listeners`);K(t)?this.events.emit(g(\"session_request\",s),{result:t.result}):U(t)&&this.events.emit(g(\"session_request\",s),{error:t.error})},this.onSessionEventRequest=async(e,t)=>{const{id:s,params:i}=t;try{const r=`${e}_session_event_${i.event.name}`,n=re.get(r);if(n&&this.isRequestOutOfSync(n,s)){this.client.logger.info(`Discarding out of sync request - ${s}`);return}this.isValidEmit(I({topic:e},i)),this.client.events.emit(\"session_event\",{id:s,topic:e,params:i}),re.set(r,s)}catch(r){await this.sendError({id:s,topic:e,error:r}),this.client.logger.error(r)}},this.onSessionAuthenticateResponse=(e,t)=>{const{id:s}=t;this.client.logger.trace({type:\"method\",method:\"onSessionAuthenticateResponse\",topic:e,payload:t}),K(t)?this.events.emit(g(\"session_request\",s),{result:t.result}):U(t)&&this.events.emit(g(\"session_request\",s),{error:t.error})},this.onSessionAuthenticateRequest=async e=>{var t;const{topic:s,payload:i,attestation:r,encryptedId:n,transportType:a}=e;try{const{requester:c,authPayload:h,expiryTimestamp:p}=i.params,d=await this.getVerifyContext({attestationId:r,hash:X(JSON.stringify(i)),encryptedId:n,metadata:c.metadata,transportType:a}),l={requester:c,pairingTopic:s,id:i.id,authPayload:h,verifyContext:d,expiryTimestamp:p};await this.setAuthRequest(i.id,{request:l,pairingTopic:s,transportType:a}),a===f.link_mode&&(t=c.metadata.redirect)!=null&&t.universal&&this.client.core.addLinkModeSupportedApp(c.metadata.redirect.universal),this.client.events.emit(\"session_authenticate\",{topic:s,params:i.params,id:i.id,verifyContext:d})}catch(c){this.client.logger.error(c);const h=i.params.requester.publicKey,p=await this.client.core.crypto.generateKeyPair(),d=this.getAppLinkIfEnabled(i.params.requester.metadata,a),l={type:Ae,receiverPublicKey:h,senderPublicKey:p};await this.sendError({id:i.id,topic:s,error:c,encodeOpts:l,rpcOpts:v.wc_sessionAuthenticate.autoReject,appLink:d})}},this.addSessionRequestToSessionRequestQueue=e=>{this.sessionRequestQueue.queue.push(e)},this.cleanupAfterResponse=e=>{this.deletePendingSessionRequest(e.response.id,{message:\"fulfilled\",code:0}),setTimeout(()=>{this.sessionRequestQueue.state=x.idle,this.processSessionRequestQueue()},tt(this.requestQueueDelay))},this.cleanupPendingSentRequestsForTopic=({topic:e,error:t})=>{const s=this.client.core.history.pending;s.length>0&&s.filter(i=>i.topic===e&&i.request.method===\"wc_sessionRequest\").forEach(i=>{const r=i.request.id,n=g(\"session_request\",r);if(this.events.listenerCount(n)===0)throw new Error(`emitting ${n} without any listeners`);this.events.emit(g(\"session_request\",i.request.id),{error:t})})},this.processSessionRequestQueue=()=>{if(this.sessionRequestQueue.state===x.active){this.client.logger.info(\"session request queue is already active.\");return}const e=this.sessionRequestQueue.queue[0];if(!e){this.client.logger.info(\"session request queue is empty.\");return}try{this.sessionRequestQueue.state=x.active,this.emitSessionRequest(e)}catch(t){this.client.logger.error(t)}},this.emitSessionRequest=e=>{this.client.events.emit(\"session_request\",e)},this.onPairingCreated=e=>{if(e.methods&&this.expectedPairingMethodMap.set(e.topic,e.methods),e.active)return;const t=this.client.proposal.getAll().find(s=>s.pairingTopic===e.topic);t&&this.onSessionProposeRequest({topic:e.topic,payload:ge(\"wc_sessionPropose\",{requiredNamespaces:t.requiredNamespaces,optionalNamespaces:t.optionalNamespaces,relays:t.relays,proposer:t.proposer,sessionProperties:t.sessionProperties},t.id)})},this.isValidConnect=async e=>{if(!L(e)){const{message:a}=u(\"MISSING_OR_INVALID\",`connect() params: ${JSON.stringify(e)}`);throw new Error(a)}const{pairingTopic:t,requiredNamespaces:s,optionalNamespaces:i,sessionProperties:r,relays:n}=e;if(ne(t)||await this.isValidPairingTopic(t),!kt(n,!0)){const{message:a}=u(\"MISSING_OR_INVALID\",`connect() relays: ${n}`);throw new Error(a)}!ne(s)&&Xe(s)!==0&&this.validateNamespaces(s,\"requiredNamespaces\"),!ne(i)&&Xe(i)!==0&&this.validateNamespaces(i,\"optionalNamespaces\"),ne(r)||this.validateSessionProps(r,\"sessionProperties\")},this.validateNamespaces=(e,t)=>{const s=$t(e,\"connect()\",t);if(s)throw new Error(s.message)},this.isValidApprove=async e=>{if(!L(e))throw new Error(u(\"MISSING_OR_INVALID\",`approve() params: ${e}`).message);const{id:t,namespaces:s,relayProtocol:i,sessionProperties:r}=e;this.checkRecentlyDeleted(t),await this.isValidProposalId(t);const n=this.client.proposal.get(t),a=Oe(s,\"approve()\");if(a)throw new Error(a.message);const c=Je(n.requiredNamespaces,s,\"approve()\");if(c)throw new Error(c.message);if(!k(i,!0)){const{message:h}=u(\"MISSING_OR_INVALID\",`approve() relayProtocol: ${i}`);throw new Error(h)}ne(r)||this.validateSessionProps(r,\"sessionProperties\")},this.isValidReject=async e=>{if(!L(e)){const{message:i}=u(\"MISSING_OR_INVALID\",`reject() params: ${e}`);throw new Error(i)}const{id:t,reason:s}=e;if(this.checkRecentlyDeleted(t),await this.isValidProposalId(t),!Kt(s)){const{message:i}=u(\"MISSING_OR_INVALID\",`reject() reason: ${JSON.stringify(s)}`);throw new Error(i)}},this.isValidSessionSettleRequest=e=>{if(!L(e)){const{message:c}=u(\"MISSING_OR_INVALID\",`onSessionSettleRequest() params: ${e}`);throw new Error(c)}const{relay:t,controller:s,namespaces:i,expiry:r}=e;if(!Ut(t)){const{message:c}=u(\"MISSING_OR_INVALID\",\"onSessionSettleRequest() relay protocol should be a string\");throw new Error(c)}const n=Gt(s,\"onSessionSettleRequest()\");if(n)throw new Error(n.message);const a=Oe(i,\"onSessionSettleRequest()\");if(a)throw new Error(a.message);if(J(r)){const{message:c}=u(\"EXPIRED\",\"onSessionSettleRequest()\");throw new Error(c)}},this.isValidUpdate=async e=>{if(!L(e)){const{message:a}=u(\"MISSING_OR_INVALID\",`update() params: ${e}`);throw new Error(a)}const{topic:t,namespaces:s}=e;this.checkRecentlyDeleted(t),await this.isValidSessionTopic(t);const i=this.client.session.get(t),r=Oe(s,\"update()\");if(r)throw new Error(r.message);const n=Je(i.requiredNamespaces,s,\"update()\");if(n)throw new Error(n.message)},this.isValidExtend=async e=>{if(!L(e)){const{message:s}=u(\"MISSING_OR_INVALID\",`extend() params: ${e}`);throw new Error(s)}const{topic:t}=e;this.checkRecentlyDeleted(t),await this.isValidSessionTopic(t)},this.isValidRequest=async e=>{if(!L(e)){const{message:a}=u(\"MISSING_OR_INVALID\",`request() params: ${e}`);throw new Error(a)}const{topic:t,request:s,chainId:i,expiry:r}=e;this.checkRecentlyDeleted(t),await this.isValidSessionTopic(t);const{namespaces:n}=this.client.session.get(t);if(!Be(n,i)){const{message:a}=u(\"MISSING_OR_INVALID\",`request() chainId: ${i}`);throw new Error(a)}if(!jt(s)){const{message:a}=u(\"MISSING_OR_INVALID\",`request() ${JSON.stringify(s)}`);throw new Error(a)}if(!Ft(n,i,s.method)){const{message:a}=u(\"MISSING_OR_INVALID\",`request() method: ${s.method}`);throw new Error(a)}if(r&&!Qt(r,me)){const{message:a}=u(\"MISSING_OR_INVALID\",`request() expiry: ${r}. Expiry must be a number (in seconds) between ${me.min} and ${me.max}`);throw new Error(a)}},this.isValidRespond=async e=>{var t;if(!L(e)){const{message:r}=u(\"MISSING_OR_INVALID\",`respond() params: ${e}`);throw new Error(r)}const{topic:s,response:i}=e;try{await this.isValidSessionTopic(s)}catch(r){throw(t=e?.response)!=null&&t.id&&this.cleanupAfterResponse(e),r}if(!zt(i)){const{message:r}=u(\"MISSING_OR_INVALID\",`respond() response: ${JSON.stringify(i)}`);throw new Error(r)}},this.isValidPing=async e=>{if(!L(e)){const{message:s}=u(\"MISSING_OR_INVALID\",`ping() params: ${e}`);throw new Error(s)}const{topic:t}=e;await this.isValidSessionOrPairingTopic(t)},this.isValidEmit=async e=>{if(!L(e)){const{message:n}=u(\"MISSING_OR_INVALID\",`emit() params: ${e}`);throw new Error(n)}const{topic:t,event:s,chainId:i}=e;await this.isValidSessionTopic(t);const{namespaces:r}=this.client.session.get(t);if(!Be(r,i)){const{message:n}=u(\"MISSING_OR_INVALID\",`emit() chainId: ${i}`);throw new Error(n)}if(!Ht(s)){const{message:n}=u(\"MISSING_OR_INVALID\",`emit() event: ${JSON.stringify(s)}`);throw new Error(n)}if(!Yt(r,i,s.name)){const{message:n}=u(\"MISSING_OR_INVALID\",`emit() event: ${JSON.stringify(s)}`);throw new Error(n)}},this.isValidDisconnect=async e=>{if(!L(e)){const{message:s}=u(\"MISSING_OR_INVALID\",`disconnect() params: ${e}`);throw new Error(s)}const{topic:t}=e;await this.isValidSessionOrPairingTopic(t)},this.isValidAuthenticate=e=>{const{chains:t,uri:s,domain:i,nonce:r}=e;if(!Array.isArray(t)||t.length===0)throw new Error(\"chains is required and must be a non-empty array\");if(!k(s,!1))throw new Error(\"uri is required parameter\");if(!k(i,!1))throw new Error(\"domain is required parameter\");if(!k(r,!1))throw new Error(\"nonce is required parameter\");if([...new Set(t.map(a=>Ne(a).namespace))].length>1)throw new Error(\"Multi-namespace requests are not supported. Please request single namespace only.\");const{namespace:n}=Ne(t[0]);if(n!==\"eip155\")throw new Error(\"Only eip155 namespace is supported for authenticated sessions. Please use .connect() for non-eip155 chains.\")},this.getVerifyContext=async e=>{const{attestationId:t,hash:s,encryptedId:i,metadata:r,transportType:n}=e,a={verified:{verifyUrl:r.verifyUrl||It,validation:\"UNKNOWN\",origin:r.url||\"\"}};try{if(n===f.link_mode){const h=this.getAppLinkIfEnabled(r,n);return a.verified.validation=h&&new URL(h).origin===new URL(r.url).origin?\"VALID\":\"INVALID\",a}const c=await this.client.core.verify.resolve({attestationId:t,hash:s,encryptedId:i,verifyUrl:r.verifyUrl});c&&(a.verified.origin=c.origin,a.verified.isScam=c.isScam,a.verified.validation=c.origin===new URL(r.url).origin?\"VALID\":\"INVALID\")}catch(c){this.client.logger.warn(c)}return this.client.logger.debug(`Verify context: ${JSON.stringify(a)}`),a},this.validateSessionProps=(e,t)=>{Object.values(e).forEach(s=>{if(!k(s,!1)){const{message:i}=u(\"MISSING_OR_INVALID\",`${t} must be in Record format. Received: ${JSON.stringify(s)}`);throw new Error(i)}})},this.getPendingAuthRequest=e=>{const t=this.client.auth.requests.get(e);return typeof t==\"object\"?t:void 0},this.addToRecentlyDeleted=(e,t)=>{if(this.recentlyDeletedMap.set(e,t),this.recentlyDeletedMap.size>=this.recentlyDeletedLimit){let s=0;const i=this.recentlyDeletedLimit/2;for(const r of this.recentlyDeletedMap.keys()){if(s++>=i)break;this.recentlyDeletedMap.delete(r)}}},this.checkRecentlyDeleted=e=>{const t=this.recentlyDeletedMap.get(e);if(t){const{message:s}=u(\"MISSING_OR_INVALID\",`Record was recently deleted - ${t}: ${e}`);throw new Error(s)}},this.isLinkModeEnabled=(e,t)=>{var s,i,r,n,a,c,h,p,d;return!e||t!==f.link_mode?!1:((i=(s=this.client.metadata)==null?void 0:s.redirect)==null?void 0:i.linkMode)===!0&&((n=(r=this.client.metadata)==null?void 0:r.redirect)==null?void 0:n.universal)!==void 0&&((c=(a=this.client.metadata)==null?void 0:a.redirect)==null?void 0:c.universal)!==\"\"&&((h=e?.redirect)==null?void 0:h.universal)!==void 0&&((p=e?.redirect)==null?void 0:p.universal)!==\"\"&&((d=e?.redirect)==null?void 0:d.linkMode)===!0&&this.client.core.linkModeSupportedApps.includes(e.redirect.universal)&&typeof(global==null?void 0:global.Linking)<\"u\"},this.getAppLinkIfEnabled=(e,t)=>{var s;return this.isLinkModeEnabled(e,t)?(s=e?.redirect)==null?void 0:s.universal:void 0},this.handleLinkModeMessage=({url:e})=>{if(!e||!e.includes(\"wc_ev\")||!e.includes(\"topic\"))return;const t=We(e,\"topic\")||\"\",s=decodeURIComponent(We(e,\"wc_ev\")||\"\"),i=this.client.session.keys.includes(t);i&&this.client.session.update(t,{transportType:f.link_mode}),this.client.core.dispatchEnvelope({topic:t,message:s,sessionExists:i})},this.registerLinkModeListeners=async()=>{var e;if(Xt()||Jt()&&(e=this.client.metadata.redirect)!=null&&e.linkMode){const t=global==null?void 0:global.Linking;if(typeof t<\"u\"){t.addEventListener(\"url\",this.handleLinkModeMessage,this.client.name);const s=await t.getInitialURL();s&&setTimeout(()=>{this.handleLinkModeMessage({url:s})},50)}}}}isInitialized(){if(!this.initialized){const{message:o}=u(\"NOT_INITIALIZED\",this.name);throw new Error(o)}}async confirmOnlineStateOrThrow(){await this.client.core.relayer.confirmOnlineStateOrThrow()}registerRelayerEvents(){this.client.core.relayer.on(Ue.message,o=>{!this.initialized||this.relayMessageCache.length>0?this.relayMessageCache.push(o):this.onRelayMessage(o)})}async onRelayMessage(o){const{topic:e,message:t,attestation:s,transportType:i}=o,{publicKey:r}=this.client.auth.authKeys.keys.includes(ae)?this.client.auth.authKeys.get(ae):{responseTopic:void 0,publicKey:void 0},n=await this.client.core.crypto.decode(e,t,{receiverPublicKey:r,encoding:i===f.link_mode?ie:de});try{os(n)?(this.client.core.history.set(e,n),this.onRelayEventRequest({topic:e,payload:n,attestation:s,transportType:i,encryptedId:X(t)})):as(n)?(await this.client.core.history.resolve(n),await this.onRelayEventResponse({topic:e,payload:n,transportType:i}),this.client.core.history.delete(e,n.id)):this.onRelayEventUnknownPayload({topic:e,payload:n,transportType:i})}catch(a){this.client.logger.error(a)}}registerExpirerEvents(){this.client.core.expirer.on(ft.expired,async o=>{const{topic:e,id:t}=Bt(o.target);if(t&&this.client.pendingRequest.keys.includes(t))return await this.deletePendingSessionRequest(t,u(\"EXPIRED\"),!0);if(t&&this.client.auth.requests.keys.includes(t))return await this.deletePendingAuthRequest(t,u(\"EXPIRED\"),!0);e?this.client.session.keys.includes(e)&&(await this.deleteSession({topic:e,expirerHasDeleted:!0}),this.client.events.emit(\"session_expire\",{topic:e})):t&&(await this.deleteProposal(t,!0),this.client.events.emit(\"proposal_expire\",{id:t}))})}registerPairingEvents(){this.client.core.pairing.events.on(Ge.create,o=>this.onPairingCreated(o)),this.client.core.pairing.events.on(Ge.delete,o=>{this.addToRecentlyDeleted(o.topic,\"pairing\")})}isValidPairingTopic(o){if(!k(o,!1)){const{message:e}=u(\"MISSING_OR_INVALID\",`pairing topic should be a string: ${o}`);throw new Error(e)}if(!this.client.core.pairing.pairings.keys.includes(o)){const{message:e}=u(\"NO_MATCHING_KEY\",`pairing topic doesn't exist: ${o}`);throw new Error(e)}if(J(this.client.core.pairing.pairings.get(o).expiry)){const{message:e}=u(\"EXPIRED\",`pairing topic: ${o}`);throw new Error(e)}}async isValidSessionTopic(o){if(!k(o,!1)){const{message:e}=u(\"MISSING_OR_INVALID\",`session topic should be a string: ${o}`);throw new Error(e)}if(this.checkRecentlyDeleted(o),!this.client.session.keys.includes(o)){const{message:e}=u(\"NO_MATCHING_KEY\",`session topic doesn't exist: ${o}`);throw new Error(e)}if(J(this.client.session.get(o).expiry)){await this.deleteSession({topic:o});const{message:e}=u(\"EXPIRED\",`session topic: ${o}`);throw new Error(e)}if(!this.client.core.crypto.keychain.has(o)){const{message:e}=u(\"MISSING_OR_INVALID\",`session topic does not exist in keychain: ${o}`);throw await this.deleteSession({topic:o}),new Error(e)}}async isValidSessionOrPairingTopic(o){if(this.checkRecentlyDeleted(o),this.client.session.keys.includes(o))await this.isValidSessionTopic(o);else if(this.client.core.pairing.pairings.keys.includes(o))this.isValidPairingTopic(o);else if(k(o,!1)){const{message:e}=u(\"NO_MATCHING_KEY\",`session or pairing topic doesn't exist: ${o}`);throw new Error(e)}else{const{message:e}=u(\"MISSING_OR_INVALID\",`session or pairing topic should be a string: ${o}`);throw new Error(e)}}async isValidProposalId(o){if(!Wt(o)){const{message:e}=u(\"MISSING_OR_INVALID\",`proposal id should be a number: ${o}`);throw new Error(e)}if(!this.client.proposal.keys.includes(o)){const{message:e}=u(\"NO_MATCHING_KEY\",`proposal id doesn't exist: ${o}`);throw new Error(e)}if(J(this.client.proposal.get(o).expiryTimestamp)){await this.deleteProposal(o);const{message:e}=u(\"EXPIRED\",`proposal id: ${o}`);throw new Error(e)}}}class Ss extends H{constructor(o,e){super(o,e,st,ye),this.core=o,this.logger=e}}class yt extends H{constructor(o,e){super(o,e,rt,ye),this.core=o,this.logger=e}}class Is extends H{constructor(o,e){super(o,e,ot,ye,t=>t.id),this.core=o,this.logger=e}}class fs extends H{constructor(o,e){super(o,e,pt,oe,()=>ae),this.core=o,this.logger=e}}class vs extends H{constructor(o,e){super(o,e,ht,oe),this.core=o,this.logger=e}}class qs extends H{constructor(o,e){super(o,e,dt,oe,t=>t.id),this.core=o,this.logger=e}}class Ts{constructor(o,e){this.core=o,this.logger=e,this.authKeys=new fs(this.core,this.logger),this.pairingTopics=new vs(this.core,this.logger),this.requests=new qs(this.core,this.logger)}async init(){await this.authKeys.init(),await this.pairingTopics.init(),await this.requests.init()}}class _e extends At{constructor(o){super(o),this.protocol=be,this.version=Ce,this.name=we.name,this.events=new ts,this.on=(t,s)=>this.events.on(t,s),this.once=(t,s)=>this.events.once(t,s),this.off=(t,s)=>this.events.off(t,s),this.removeListener=(t,s)=>this.events.removeListener(t,s),this.removeAllListeners=t=>this.events.removeAllListeners(t),this.connect=async t=>{try{return await this.engine.connect(t)}catch(s){throw this.logger.error(s.message),s}},this.pair=async t=>{try{return await this.engine.pair(t)}catch(s){throw this.logger.error(s.message),s}},this.approve=async t=>{try{return await this.engine.approve(t)}catch(s){throw this.logger.error(s.message),s}},this.reject=async t=>{try{return await this.engine.reject(t)}catch(s){throw this.logger.error(s.message),s}},this.update=async t=>{try{return await this.engine.update(t)}catch(s){throw this.logger.error(s.message),s}},this.extend=async t=>{try{return await this.engine.extend(t)}catch(s){throw this.logger.error(s.message),s}},this.request=async t=>{try{return await this.engine.request(t)}catch(s){throw this.logger.error(s.message),s}},this.respond=async t=>{try{return await this.engine.respond(t)}catch(s){throw this.logger.error(s.message),s}},this.ping=async t=>{try{return await this.engine.ping(t)}catch(s){throw this.logger.error(s.message),s}},this.emit=async t=>{try{return await this.engine.emit(t)}catch(s){throw this.logger.error(s.message),s}},this.disconnect=async t=>{try{return await this.engine.disconnect(t)}catch(s){throw this.logger.error(s.message),s}},this.find=t=>{try{return this.engine.find(t)}catch(s){throw this.logger.error(s.message),s}},this.getPendingSessionRequests=()=>{try{return this.engine.getPendingSessionRequests()}catch(t){throw this.logger.error(t.message),t}},this.authenticate=async(t,s)=>{try{return await this.engine.authenticate(t,s)}catch(i){throw this.logger.error(i.message),i}},this.formatAuthMessage=t=>{try{return this.engine.formatAuthMessage(t)}catch(s){throw this.logger.error(s.message),s}},this.approveSessionAuthenticate=async t=>{try{return await this.engine.approveSessionAuthenticate(t)}catch(s){throw this.logger.error(s.message),s}},this.rejectSessionAuthenticate=async t=>{try{return await this.engine.rejectSessionAuthenticate(t)}catch(s){throw this.logger.error(s.message),s}},this.name=o?.name||we.name,this.metadata=o?.metadata||Zt(),this.signConfig=o?.signConfig;const e=typeof o?.logger<\"u\"&&typeof o?.logger!=\"string\"?o.logger:qt(Tt({level:o?.logger||we.logger}));this.core=o?.core||new vt(o),this.logger=Nt(e,this.name),this.session=new yt(this.core,this.logger),this.proposal=new Ss(this.core,this.logger),this.pendingRequest=new Is(this.core,this.logger),this.engine=new Rs(this),this.auth=new Ts(this.core,this.logger)}static async init(o){const e=new _e(o);return await e.initialize(),e}get context(){return Pt(this.logger)}get pairing(){return this.core.pairing.pairings}async initialize(){this.logger.trace(\"Initialized\");try{await this.core.start(),await this.session.init(),await this.proposal.init(),await this.pendingRequest.init(),await this.auth.init(),await this.engine.init(),this.logger.info(\"SignClient Initialization Success\"),this.engine.processRelayMessageCache()}catch(o){throw this.logger.info(\"SignClient Initialization Failure\"),this.logger.error(o.message),o}}}const Ns=yt,Ps=_e;export{lt as AUTH_CONTEXT,pt as AUTH_KEYS_CONTEXT,ht as AUTH_PAIRING_TOPIC_CONTEXT,ct as AUTH_PROTOCOL,ae as AUTH_PUBLIC_KEY_NAME,dt as AUTH_REQUEST_CONTEXT,oe as AUTH_STORAGE_PREFIX,gs as AUTH_VERSION,nt as ENGINE_CONTEXT,x as ENGINE_QUEUE_STATES,v as ENGINE_RPC_OPTS,hs as HISTORY_CONTEXT,ps as HISTORY_EVENTS,ds as HISTORY_STORAGE_VERSION,at as METHODS_TO_VERIFY,st as PROPOSAL_CONTEXT,us as PROPOSAL_EXPIRY,it as PROPOSAL_EXPIRY_MESSAGE,ot as REQUEST_CONTEXT,rt as SESSION_CONTEXT,z as SESSION_EXPIRY,me as SESSION_REQUEST_EXPIRY_BOUNDARIES,Le as SIGN_CLIENT_CONTEXT,we as SIGN_CLIENT_DEFAULT,cs as SIGN_CLIENT_EVENTS,be as SIGN_CLIENT_PROTOCOL,ls as SIGN_CLIENT_STORAGE_OPTIONS,ye as SIGN_CLIENT_STORAGE_PREFIX,Ce as SIGN_CLIENT_VERSION,Ns as SessionStore,Ps as SignClient,xe as WALLETCONNECT_DEEPLINK_CHOICE,_e as default};\n//# sourceMappingURL=index.es.js.map\n","export class DefaultLogger {\n constructor(logLevel = 'info') {\n this.logLevel = 'info';\n this.logLevel = logLevel;\n }\n setLogLevel(level) {\n this.logLevel = level;\n }\n getLogLevel() {\n return this.logLevel;\n }\n error(message, ...args) {\n if (['error', 'warn', 'info', 'debug'].includes(this.logLevel)) {\n console.error(`[ERROR] ${message}`, ...args);\n }\n }\n warn(message, ...args) {\n if (['warn', 'info', 'debug'].includes(this.logLevel)) {\n console.warn(`[WARN] ${message}`, ...args);\n }\n }\n info(message, ...args) {\n if (['info', 'debug'].includes(this.logLevel)) {\n console.info(`[INFO] ${message}`, ...args);\n }\n }\n debug(message, ...args) {\n if (this.logLevel === 'debug') {\n console.debug(`[DEBUG] ${message}`, ...args);\n }\n }\n}\n","export class SessionNotFoundError extends Error {\n constructor(message) {\n super(message);\n this.name = 'SessionNotFoundError';\n }\n}\n","/*\n *\n * Hedera Wallet Connect\n *\n * Copyright (C) 2023 Hedera Hashgraph, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nimport { AccountBalance, AccountId, AccountInfo, LedgerId, SignerSignature, Transaction, TransactionRecord, Client, PublicKey, TransactionId, TransactionResponse, Query, AccountRecordsQuery, AccountInfoQuery, AccountBalanceQuery, TransactionReceiptQuery, TransactionReceipt, TransactionRecordQuery, } from '@hashgraph/sdk';\nimport { proto } from '@hashgraph/proto';\nimport { HederaJsonRpcMethod, base64StringToSignatureMap, base64StringToUint8Array, ledgerIdToCAIPChainId, queryToBase64String, transactionBodyToBase64String, transactionToBase64String, transactionToTransactionBody, extensionOpen, Uint8ArrayToBase64String, Uint8ArrayToString, } from '../shared';\nimport { DefaultLogger } from '../shared/logger';\nimport { SessionNotFoundError } from './SessionNotFoundError';\nconst clients = {};\nexport class DAppSigner {\n constructor(accountId, signClient, topic, ledgerId = LedgerId.MAINNET, extensionId, logLevel = 'debug') {\n this.accountId = accountId;\n this.signClient = signClient;\n this.topic = topic;\n this.ledgerId = ledgerId;\n this.extensionId = extensionId;\n this.logger = new DefaultLogger(logLevel);\n }\n /**\n * Sets the logging level for the DAppSigner\n * @param level - The logging level to set\n */\n setLogLevel(level) {\n if (this.logger instanceof DefaultLogger) {\n this.logger.setLogLevel(level);\n }\n }\n _getHederaClient() {\n const ledgerIdString = this.ledgerId.toString();\n if (!clients[ledgerIdString]) {\n clients[ledgerIdString] = Client.forName(ledgerIdString);\n }\n return clients[ledgerIdString];\n }\n get _signerAccountId() {\n return `${ledgerIdToCAIPChainId(this.ledgerId)}:${this.accountId.toString()}`;\n }\n _getRandomNodes(numberOfNodes) {\n const allNodes = Object.values(this._getHederaClient().network).map((o) => typeof o === 'string' ? AccountId.fromString(o) : o);\n // shuffle nodes\n for (let i = allNodes.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [allNodes[i], allNodes[j]] = [allNodes[j], allNodes[i]];\n }\n return allNodes.slice(0, numberOfNodes);\n }\n request(request) {\n var _a, _b;\n // Avoid a wallet call if the session is no longer valid\n if (!((_b = (_a = this === null || this === void 0 ? void 0 : this.signClient) === null || _a === void 0 ? void 0 : _a.session) === null || _b === void 0 ? void 0 : _b.get(this.topic))) {\n this.logger.error('Session no longer exists, signer will be removed. Please reconnect to the wallet.');\n // Notify DAppConnector to remove this signer\n this.signClient.emit({\n topic: this.topic,\n event: {\n name: 'session_delete',\n data: { topic: this.topic },\n },\n chainId: ledgerIdToCAIPChainId(this.ledgerId),\n });\n throw new SessionNotFoundError('Session no longer exists. Please reconnect to the wallet.');\n }\n if (this.extensionId)\n extensionOpen(this.extensionId);\n return this.signClient.request({\n topic: this.topic,\n request,\n chainId: ledgerIdToCAIPChainId(this.ledgerId),\n });\n }\n getAccountId() {\n return this.accountId;\n }\n getAccountKey() {\n throw new Error('Method not implemented.');\n }\n getLedgerId() {\n return this.ledgerId;\n }\n getNetwork() {\n return this._getHederaClient().network;\n }\n getMirrorNetwork() {\n return this._getHederaClient().mirrorNetwork;\n }\n getAccountBalance() {\n return this.call(new AccountBalanceQuery().setAccountId(this.accountId));\n }\n getAccountInfo() {\n return this.call(new AccountInfoQuery().setAccountId(this.accountId));\n }\n getAccountRecords() {\n return this.call(new AccountRecordsQuery().setAccountId(this.accountId));\n }\n getMetadata() {\n return this.signClient.metadata;\n }\n async sign(data, signOptions = {\n encoding: 'utf-8',\n }) {\n try {\n const messageToSign = signOptions.encoding === 'base64'\n ? Uint8ArrayToBase64String(data[0])\n : Uint8ArrayToString(data[0]);\n const { signatureMap } = await this.request({\n method: HederaJsonRpcMethod.SignMessage,\n params: {\n signerAccountId: this._signerAccountId,\n message: messageToSign,\n },\n });\n const sigmap = base64StringToSignatureMap(signatureMap);\n const signerSignature = new SignerSignature({\n accountId: this.getAccountId(),\n publicKey: PublicKey.fromBytes(sigmap.sigPair[0].pubKeyPrefix),\n signature: sigmap.sigPair[0].ed25519 ||\n sigmap.sigPair[0].ECDSASecp256k1,\n });\n this.logger.debug('Data signed successfully');\n return [signerSignature];\n }\n catch (error) {\n this.logger.error('Error signing data:', error);\n throw error;\n }\n }\n async checkTransaction(transaction) {\n throw new Error('Method not implemented.');\n }\n async populateTransaction(transaction) {\n return transaction\n .setNodeAccountIds(this._getRandomNodes(10)) // allow retrying on up to 10 nodes\n .setTransactionId(TransactionId.generate(this.getAccountId()));\n }\n /**\n * Prepares a transaction object for signing using a single node account id.\n * If the transaction object does not already have a node account id,\n * generate a random node account id using the Hedera SDK client\n *\n * @param transaction - Any instance of a class that extends `Transaction`\n * @returns transaction - `Transaction` object with signature\n */\n async signTransaction(transaction) {\n let nodeAccountId;\n if (!transaction.nodeAccountIds || transaction.nodeAccountIds.length === 0)\n nodeAccountId = this._getRandomNodes(1)[0];\n else\n nodeAccountId = transaction.nodeAccountIds[0];\n const transactionBody = transactionToTransactionBody(transaction, nodeAccountId);\n if (!transactionBody)\n throw new Error('Failed to serialize transaction body');\n const transactionBodyBase64 = transactionBodyToBase64String(transactionBody);\n const { signatureMap } = await this.request({\n method: HederaJsonRpcMethod.SignTransaction,\n params: {\n signerAccountId: this._signerAccountId,\n transactionBody: transactionBodyBase64,\n },\n });\n const sigMap = base64StringToSignatureMap(signatureMap);\n const bodyBytes = base64StringToUint8Array(transactionBodyBase64);\n const bytes = proto.Transaction.encode({ bodyBytes, sigMap }).finish();\n return Transaction.fromBytes(bytes);\n }\n async _tryExecuteTransactionRequest(request) {\n try {\n const requestToBytes = request.toBytes();\n this.logger.debug('Creating transaction from bytes', requestToBytes, request);\n const transaction = Transaction.fromBytes(requestToBytes);\n this.logger.debug('Executing transaction request', transaction);\n const result = await this.request({\n method: HederaJsonRpcMethod.SignAndExecuteTransaction,\n params: {\n signerAccountId: this._signerAccountId,\n transactionList: transactionToBase64String(transaction),\n },\n });\n this.logger.debug('Transaction request completed successfully');\n return { result: TransactionResponse.fromJSON(result) };\n }\n catch (error) {\n this.logger.error('Error executing transaction request:', error);\n return { error };\n }\n }\n async _parseQueryResponse(query, base64EncodedQueryResponse) {\n if (query instanceof AccountRecordsQuery) {\n const base64EncodedQueryResponseSplit = base64EncodedQueryResponse.split(',');\n const data = base64EncodedQueryResponseSplit.map((o) => base64StringToUint8Array(o));\n return data.map((o) => TransactionRecord.fromBytes(o));\n }\n const data = base64StringToUint8Array(base64EncodedQueryResponse);\n if (query instanceof AccountBalanceQuery) {\n return AccountBalance.fromBytes(data);\n }\n else if (query instanceof AccountInfoQuery) {\n return AccountInfo.fromBytes(data);\n }\n else if (query instanceof TransactionReceiptQuery) {\n return TransactionReceipt.fromBytes(data);\n }\n else if (query instanceof TransactionRecordQuery) {\n return TransactionRecord.fromBytes(data);\n }\n else {\n throw new Error('Unsupported query type');\n }\n }\n /**\n * Executes a free receipt query without signing a transaction.\n * Enables the DApp to fetch the receipt of a transaction without making a new request\n * to the wallet.\n * @param request - The query to execute\n * @returns The result of the query\n */\n async executeReceiptQueryFromRequest(request) {\n try {\n const isMainnet = this.ledgerId === LedgerId.MAINNET;\n const client = isMainnet ? Client.forMainnet() : Client.forTestnet();\n const receipt = TransactionReceiptQuery.fromBytes(request.toBytes());\n const result = await receipt.execute(client);\n return { result };\n }\n catch (error) {\n return { error };\n }\n }\n async _tryExecuteQueryRequest(request) {\n try {\n const isReceiptQuery = request instanceof TransactionReceiptQuery;\n if (isReceiptQuery) {\n this.logger.debug('Attempting to execute free receipt query', request);\n const result = await this.executeReceiptQueryFromRequest(request);\n if (!(result === null || result === void 0 ? void 0 : result.error)) {\n return { result: result.result };\n }\n this.logger.error('Error executing free receipt query. Sending to wallet.', result.error);\n }\n /**\n * Note, should we be converting these to specific query types?\n * Left alone to avoid changing the API for other requests.\n */\n const query = isReceiptQuery\n ? TransactionReceiptQuery.fromBytes(request.toBytes())\n : Query.fromBytes(request.toBytes());\n this.logger.debug('Executing query request', query, queryToBase64String(query), isReceiptQuery);\n const result = await this.request({\n method: HederaJsonRpcMethod.SignAndExecuteQuery,\n params: {\n signerAccountId: this._signerAccountId,\n query: queryToBase64String(query),\n },\n });\n this.logger.debug('Query request completed successfully', result);\n return { result: this._parseQueryResponse(query, result.response) };\n }\n catch (error) {\n this.logger.error('Error executing query request:', error);\n return { error };\n }\n }\n async call(request) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n const isReceiptQuery = request instanceof TransactionReceiptQuery;\n let txResult = undefined;\n // a receipt query is a free query and we should not execute a transaction.\n if (!isReceiptQuery) {\n txResult = await this._tryExecuteTransactionRequest(request);\n if (txResult.result) {\n return txResult.result;\n }\n }\n const queryResult = await this._tryExecuteQueryRequest(request);\n if (queryResult.result) {\n return queryResult.result;\n }\n // TODO: make this error more usable\n if (isReceiptQuery) {\n throw new Error('Error executing receipt query: \\n' +\n JSON.stringify({\n queryError: {\n name: (_a = queryResult.error) === null || _a === void 0 ? void 0 : _a.name,\n message: (_b = queryResult.error) === null || _b === void 0 ? void 0 : _b.message,\n stack: (_c = queryResult.error) === null || _c === void 0 ? void 0 : _c.stack,\n },\n }));\n }\n throw new Error('Error executing transaction or query: \\n' +\n JSON.stringify({\n txError: {\n name: (_d = txResult === null || txResult === void 0 ? void 0 : txResult.error) === null || _d === void 0 ? void 0 : _d.name,\n message: (_e = txResult === null || txResult === void 0 ? void 0 : txResult.error) === null || _e === void 0 ? void 0 : _e.message,\n stack: (_f = txResult === null || txResult === void 0 ? void 0 : txResult.error) === null || _f === void 0 ? void 0 : _f.stack,\n },\n queryError: {\n name: (_g = queryResult.error) === null || _g === void 0 ? void 0 : _g.name,\n message: (_h = queryResult.error) === null || _h === void 0 ? void 0 : _h.message,\n stack: (_j = queryResult.error) === null || _j === void 0 ? void 0 : _j.stack,\n },\n }, null, 2));\n }\n}\n","/*\n *\n * Hedera Wallet Connect\n *\n * Copyright (C) 2023 Hedera Hashgraph, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nimport { LedgerId, Transaction } from '@hashgraph/sdk';\nimport QRCodeModal from '@walletconnect/qrcode-modal';\nimport { WalletConnectModal } from '@walletconnect/modal';\nimport SignClient from '@walletconnect/sign-client';\nimport { getSdkError } from '@walletconnect/utils';\nimport { DefaultLogger } from '../shared/logger';\nimport { HederaJsonRpcMethod, accountAndLedgerFromSession, networkNamespaces, extensionConnect, findExtensions, } from '../shared';\nimport { DAppSigner } from './DAppSigner';\nexport * from './DAppSigner';\nexport { SessionNotFoundError } from './SessionNotFoundError';\nexport class DAppConnector {\n /**\n * Initializes the DAppConnector instance.\n * @param metadata - SignClientTypes.Metadata object for the DApp metadata.\n * @param network - LedgerId representing the network (default: LedgerId.TESTNET).\n * @param projectId - Project ID for the WalletConnect client.\n * @param methods - Array of supported methods for the DApp (optional).\n * @param events - Array of supported events for the DApp (optional).\n * @param chains - Array of supported chains for the DApp (optional).\n * @param logLevel - Logging level for the DAppConnector (optional).\n */\n constructor(metadata, network, projectId, methods, events, chains, logLevel = 'debug') {\n this.network = LedgerId.TESTNET;\n this.supportedMethods = [];\n this.supportedEvents = [];\n this.supportedChains = [];\n this.extensions = [];\n this.onSessionIframeCreated = null;\n this.signers = [];\n this.isInitializing = false;\n this.abortableConnect = async (callback) => {\n return new Promise(async (resolve, reject) => {\n const pairTimeoutMs = 480000;\n const timeout = setTimeout(() => {\n QRCodeModal.close();\n reject(new Error(`Connect timed out after ${pairTimeoutMs}(ms)`));\n }, pairTimeoutMs);\n try {\n return resolve(await callback());\n }\n catch (error) {\n reject(error);\n }\n finally {\n clearTimeout(timeout);\n }\n });\n };\n this.logger = new DefaultLogger(logLevel);\n this.dAppMetadata = metadata;\n this.network = network;\n this.projectId = projectId;\n this.supportedMethods = methods !== null && methods !== void 0 ? methods : Object.values(HederaJsonRpcMethod);\n this.supportedEvents = events !== null && events !== void 0 ? events : [];\n this.supportedChains = chains !== null && chains !== void 0 ? chains : [];\n this.extensions = [];\n this.walletConnectModal = new WalletConnectModal({\n projectId: projectId,\n chains: chains,\n });\n findExtensions((metadata, isIframe) => {\n this.extensions.push(Object.assign(Object.assign({}, metadata), { available: true, availableInIframe: isIframe }));\n });\n }\n /**\n * Sets the logging level for the DAppConnector\n * @param level - The logging level to set\n */\n setLogLevel(level) {\n if (this.logger instanceof DefaultLogger) {\n this.logger.setLogLevel(level);\n }\n }\n /**\n * Initializes the DAppConnector instance.\n * @param logger - `BaseLogger` for logging purposes (optional).\n */\n async init({ logger } = {}) {\n try {\n this.isInitializing = true;\n if (!this.projectId) {\n throw new Error('Project ID is not defined');\n }\n this.walletConnectClient = await SignClient.init({\n logger,\n relayUrl: 'wss://relay.walletconnect.com',\n projectId: this.projectId,\n metadata: this.dAppMetadata,\n });\n const existingSessions = this.walletConnectClient.session.getAll();\n if (existingSessions.length > 0)\n this.signers = existingSessions.flatMap((session) => this.createSigners(session));\n else\n this.checkIframeConnect();\n this.walletConnectClient.on('session_event', this.handleSessionEvent.bind(this));\n this.walletConnectClient.on('session_update', this.handleSessionUpdate.bind(this));\n this.walletConnectClient.on('session_delete', this.handleSessionDelete.bind(this));\n // Listen for custom session_delete events from DAppSigner\n this.walletConnectClient.core.events.on('session_delete', this.handleSessionDelete.bind(this));\n this.walletConnectClient.core.pairing.events.on('pairing_delete', this.handlePairingDelete.bind(this));\n }\n catch (e) {\n this.logger.error('Error initializing DAppConnector:', e);\n }\n finally {\n this.isInitializing = false;\n }\n }\n /**\n * Retrieves a DAppSigner for the specified Hedera Account ID.\n *\n * @param {AccountId} accountId - The Hedera Account ID to find the associated signer.\n * @returns {DAppSigner} - The signer object of type {@link DAppSigner} corresponding to the provided account ID.\n * @throws {Error} - If no signer is found for the provided account ID.\n */\n getSigner(accountId) {\n if (this.isInitializing) {\n throw new Error('DAppConnector is not initialized yet. Try again later.');\n }\n const signer = this.signers.find((signer) => signer.getAccountId().equals(accountId));\n if (!signer)\n throw new Error('Signer is not found for this accountId');\n return signer;\n }\n /**\n * Initiates the WalletConnect connection flow using a QR code.\n * @deprecated Use `openModal` instead.\n * @param pairingTopic - The pairing topic for the connection (optional).\n * @returns A Promise that resolves when the connection process is complete.\n */\n async connectQR(pairingTopic) {\n return this.abortableConnect(async () => {\n try {\n const { uri, approval } = await this.connectURI(pairingTopic);\n if (!uri)\n throw new Error('URI is not defined');\n QRCodeModal.open(uri, () => {\n throw new Error('User rejected pairing');\n });\n await this.onSessionConnected(await approval());\n }\n finally {\n QRCodeModal.close();\n }\n });\n }\n /**\n * Initiates the WalletConnect connection flow using a QR code.\n * @param pairingTopic - The pairing topic for the connection (optional).\n * @returns {Promise} - A Promise that resolves when the connection process is complete.\n */\n async openModal(pairingTopic) {\n try {\n const { uri, approval } = await this.connectURI(pairingTopic);\n this.walletConnectModal.openModal({ uri });\n const session = await approval();\n await this.onSessionConnected(session);\n return session;\n }\n finally {\n this.walletConnectModal.closeModal();\n }\n }\n /**\n * Initiates the WallecConnect connection flow using URI.\n * @param pairingTopic - The pairing topic for the connection (optional).\n * @param extensionId - The id for the extension used to connect (optional).\n * @returns A Promise that resolves when the connection process is complete.\n */\n async connect(launchCallback, pairingTopic, extensionId) {\n return this.abortableConnect(async () => {\n var _a;\n const { uri, approval } = await this.connectURI(pairingTopic);\n if (!uri)\n throw new Error('URI is not defined');\n launchCallback(uri);\n const session = await approval();\n if (extensionId) {\n const sessionProperties = Object.assign(Object.assign({}, session.sessionProperties), { extensionId });\n session.sessionProperties = sessionProperties;\n await ((_a = this.walletConnectClient) === null || _a === void 0 ? void 0 : _a.session.update(session.topic, {\n sessionProperties,\n }));\n }\n await this.onSessionConnected(session);\n return session;\n });\n }\n /**\n * Initiates the WallecConnect connection flow sending a message to the extension.\n * @param extensionId - The id for the extension used to connect.\n * @param pairingTopic - The pairing topic for the connection (optional).\n * @returns A Promise that resolves when the connection process is complete.\n */\n async connectExtension(extensionId, pairingTopic) {\n const extension = this.extensions.find((ext) => ext.id === extensionId);\n if (!extension || !extension.available)\n throw new Error('Extension is not available');\n return this.connect((uri) => {\n extensionConnect(extension.id, extension.availableInIframe, uri);\n }, pairingTopic, extension.availableInIframe ? undefined : extensionId);\n }\n /**\n * Validates the session by checking if the session exists and is valid.\n * Also ensures the signer exists for the session.\n * @param topic - The topic of the session to validate.\n * @returns {boolean} - True if the session exists and has a valid signer, false otherwise.\n */\n validateSession(topic) {\n try {\n if (!this.walletConnectClient) {\n return false;\n }\n const session = this.walletConnectClient.session.get(topic);\n const hasSigner = this.signers.some((signer) => signer.topic === topic);\n if (!session) {\n // If session doesn't exist but we have a signer for it, clean up\n if (hasSigner) {\n this.logger.warn(`Signer exists but no session found for topic: ${topic}`);\n this.handleSessionDelete({ topic });\n }\n return false;\n }\n if (!hasSigner) {\n this.logger.warn(`Session exists but no signer found for topic: ${topic}`);\n return false;\n }\n return true;\n }\n catch (e) {\n this.logger.error('Error validating session:', e);\n return false;\n }\n }\n /**\n * Validates the session and refreshes the signers by removing the invalid ones.\n */\n validateAndRefreshSigners() {\n this.signers = this.signers.filter((signer) => this.validateSession(signer.topic));\n }\n /**\n * Initiates the WallecConnect connection if the wallet in iframe mode is detected.\n */\n async checkIframeConnect() {\n const extension = this.extensions.find((ext) => ext.availableInIframe);\n if (extension) {\n const session = await this.connectExtension(extension.id);\n if (this.onSessionIframeCreated)\n this.onSessionIframeCreated(session);\n }\n }\n /**\n * Disconnects the current session associated with the specified topic.\n * @param topic - The topic of the session to disconnect.\n * @returns A Promise that resolves when the session is disconnected.\n */\n async disconnect(topic) {\n try {\n if (!this.walletConnectClient) {\n throw new Error('WalletConnect is not initialized');\n }\n await this.walletConnectClient.disconnect({\n topic: topic,\n reason: getSdkError('USER_DISCONNECTED'),\n });\n return true;\n }\n catch (e) {\n this.logger.error('Either the session was already disconnected or the topic is invalid', e);\n return false;\n }\n }\n /**\n * Disconnects all active sessions and pairings.\n *\n * Throws error when WalletConnect is not initialized or there are no active sessions/pairings.\n * @returns A Promise that resolves when all active sessions and pairings are disconnected.\n */\n async disconnectAll() {\n if (!this.walletConnectClient) {\n throw new Error('WalletConnect is not initialized');\n }\n const sessions = this.walletConnectClient.session.getAll();\n const pairings = this.walletConnectClient.core.pairing.getPairings();\n if (!(sessions === null || sessions === void 0 ? void 0 : sessions.length) && !(pairings === null || pairings === void 0 ? void 0 : pairings.length)) {\n throw new Error('There is no active session/pairing. Connect to the wallet at first.');\n }\n const disconnectionPromises = [];\n // disconnect sessions\n for (const session of this.walletConnectClient.session.getAll()) {\n this.logger.info(`Disconnecting from session: ${session}`);\n const promise = this.disconnect(session.topic);\n disconnectionPromises.push(promise);\n }\n // disconnect pairings\n //https://docs.walletconnect.com/api/core/pairing\n for (const pairing of pairings) {\n const promise = this.disconnect(pairing.topic);\n disconnectionPromises.push(promise);\n }\n await Promise.all(disconnectionPromises);\n this.signers = [];\n }\n createSigners(session) {\n const allNamespaceAccounts = accountAndLedgerFromSession(session);\n return allNamespaceAccounts.map(({ account, network }) => {\n var _a;\n return new DAppSigner(account, this.walletConnectClient, session.topic, network, (_a = session.sessionProperties) === null || _a === void 0 ? void 0 : _a.extensionId, this.logger instanceof DefaultLogger ? this.logger.getLogLevel() : 'debug');\n });\n }\n async onSessionConnected(session) {\n const newSigners = this.createSigners(session);\n // Filter out any existing signers with duplicate AccountIds\n for (const newSigner of newSigners) {\n // We check if any signers have the same account, extension + metadata name.\n const existingSigners = this.signers.filter((currentSigner) => {\n var _a, _b;\n const matchingAccountId = ((_a = currentSigner === null || currentSigner === void 0 ? void 0 : currentSigner.getAccountId()) === null || _a === void 0 ? void 0 : _a.toString()) === ((_b = newSigner === null || newSigner === void 0 ? void 0 : newSigner.getAccountId()) === null || _b === void 0 ? void 0 : _b.toString());\n const matchingExtensionId = newSigner.extensionId === currentSigner.extensionId;\n const newSignerMetadata = newSigner.getMetadata();\n const existingSignerMetadata = currentSigner.getMetadata();\n const metadataNameMatch = (newSignerMetadata === null || newSignerMetadata === void 0 ? void 0 : newSignerMetadata.name) === (existingSignerMetadata === null || existingSignerMetadata === void 0 ? void 0 : existingSignerMetadata.name);\n if (currentSigner.topic === newSigner.topic) {\n this.logger.error('The topic was already connected. This is a weird error. Please report it.', newSigner.getAccountId().toString());\n }\n return matchingAccountId && matchingExtensionId && metadataNameMatch;\n });\n // Any dupes get disconnected + removed from the signers array.\n for (const existingSigner of existingSigners) {\n this.logger.debug(`Disconnecting duplicate signer for account ${existingSigner.getAccountId().toString()}`);\n await this.disconnect(existingSigner.topic);\n this.signers = this.signers.filter((s) => s.topic !== existingSigner.topic);\n }\n }\n // Add new signers after all duplicates have been cleaned up\n this.signers.push(...newSigners);\n this.logger.debug(`Current signers after connection: ${this.signers\n .map((s) => `${s.getAccountId().toString()}:${s.topic}`)\n .join(', ')}`);\n }\n async connectURI(pairingTopic) {\n if (!this.walletConnectClient) {\n throw new Error('WalletConnect is not initialized');\n }\n return this.walletConnectClient.connect({\n pairingTopic,\n requiredNamespaces: networkNamespaces(this.network, this.supportedMethods, this.supportedEvents),\n });\n }\n async request({ method, params, }) {\n var _a, _b, _c;\n let signer;\n this.logger.debug(`Requesting method: ${method} with params: ${JSON.stringify(params)}`);\n if (params === null || params === void 0 ? void 0 : params.signerAccountId) {\n // Extract the actual account ID from the hedera::
format\n const actualAccountId = (_b = (_a = params === null || params === void 0 ? void 0 : params.signerAccountId) === null || _a === void 0 ? void 0 : _a.split(':')) === null || _b === void 0 ? void 0 : _b.pop();\n signer = this.signers.find((s) => { var _a; return ((_a = s === null || s === void 0 ? void 0 : s.getAccountId()) === null || _a === void 0 ? void 0 : _a.toString()) === actualAccountId; });\n this.logger.debug(`Found signer: ${(_c = signer === null || signer === void 0 ? void 0 : signer.getAccountId()) === null || _c === void 0 ? void 0 : _c.toString()}`);\n if (!signer) {\n throw new Error(`Signer not found for account ID: ${params === null || params === void 0 ? void 0 : params.signerAccountId}. Did you use the correct format? e.g hedera::
`);\n }\n }\n else {\n signer = this.signers[this.signers.length - 1];\n }\n if (!signer) {\n throw new Error('There is no active session. Connect to the wallet at first.');\n }\n this.logger.debug(`Using signer: ${signer.getAccountId().toString()}: ${signer.topic} - about to request.`);\n return await signer.request({\n method: method,\n params: params,\n });\n }\n /**\n * Retrieves the node addresses associated with the current Hedera network.\n *\n * When there is no active session or an error occurs during the request.\n * @returns Promise\\<{@link GetNodeAddressesResult}\\>\n */\n async getNodeAddresses() {\n return await this.request({\n method: HederaJsonRpcMethod.GetNodeAddresses,\n params: undefined,\n });\n }\n /**\n * Executes a transaction on the Hedera network.\n *\n * @param {ExecuteTransactionParams} params - The parameters of type {@link ExecuteTransactionParams | `ExecuteTransactionParams`} required for the transaction execution.\n * @param {string[]} params.signedTransaction - Array of Base64-encoded `Transaction`'s\n * @returns Promise\\<{@link ExecuteTransactionResult}\\>\n * @example\n * Use helper `transactionToBase64String` to encode `Transaction` to Base64 string\n * ```ts\n * const params = {\n * signedTransaction: [transactionToBase64String(transaction)]\n * }\n *\n * const result = await dAppConnector.executeTransaction(params)\n * ```\n */\n async executeTransaction(params) {\n return await this.request({\n method: HederaJsonRpcMethod.ExecuteTransaction,\n params,\n });\n }\n /**\n * Signs a provided `message` with provided `signerAccountId`.\n *\n * @param {SignMessageParams} params - The parameters of type {@link SignMessageParams | `SignMessageParams`} required for signing message.\n * @param {string} params.signerAccountId - a signer Hedera Account identifier in {@link https://hips.hedera.com/hip/hip-30 | HIP-30} (`:..`) form.\n * @param {string} params.message - a plain UTF-8 string\n * @returns Promise\\<{@link SignMessageResult}\\>\n * @example\n * ```ts\n * const params = {\n * signerAccountId: 'hedera:testnet:0.0.12345',\n * message: 'Hello World!'\n * }\n *\n * const result = await dAppConnector.signMessage(params)\n * ```\n */\n async signMessage(params) {\n return await this.request({\n method: HederaJsonRpcMethod.SignMessage,\n params,\n });\n }\n /**\n * Signs and send `Query` on the Hedera network.\n *\n * @param {SignAndExecuteQueryParams} params - The parameters of type {@link SignAndExecuteQueryParams | `SignAndExecuteQueryParams`} required for the Query execution.\n * @param {string} params.signerAccountId - a signer Hedera Account identifier in {@link https://hips.hedera.com/hip/hip-30 | HIP-30} (`:..`) form.\n * @param {string} params.query - `Query` object represented as Base64 string\n * @returns Promise\\<{@link SignAndExecuteQueryResult}\\>\n * @example\n * Use helper `queryToBase64String` to encode `Query` to Base64 string\n * ```ts\n * const params = {\n * signerAccountId: '0.0.12345',\n * query: queryToBase64String(query),\n * }\n *\n * const result = await dAppConnector.signAndExecuteQuery(params)\n * ```\n */\n async signAndExecuteQuery(params) {\n return await this.request({\n method: HederaJsonRpcMethod.SignAndExecuteQuery,\n params,\n });\n }\n /**\n * Signs and executes Transactions on the Hedera network.\n *\n * @param {SignAndExecuteTransactionParams} params - The parameters of type {@link SignAndExecuteTransactionParams | `SignAndExecuteTransactionParams`} required for `Transaction` signing and execution.\n * @param {string} params.signerAccountId - a signer Hedera Account identifier in {@link https://hips.hedera.com/hip/hip-30 | HIP-30} (`:..`) form.\n * @param {string[]} params.transaction - Array of Base64-encoded `Transaction`'s\n * @returns Promise\\<{@link SignAndExecuteTransactionResult}\\>\n * @example\n * Use helper `transactionToBase64String` to encode `Transaction` to Base64 string\n * ```ts\n * const params = {\n * signerAccountId: '0.0.12345'\n * transaction: [transactionToBase64String(transaction)]\n * }\n *\n * const result = await dAppConnector.signAndExecuteTransaction(params)\n * ```\n */\n async signAndExecuteTransaction(params) {\n return await this.request({\n method: HederaJsonRpcMethod.SignAndExecuteTransaction,\n params,\n });\n }\n /**\n * Signs and executes Transactions on the Hedera network.\n *\n * @param {SignTransactionParams} params - The parameters of type {@link SignTransactionParams | `SignTransactionParams`} required for `Transaction` signing.\n * @param {string} params.signerAccountId - a signer Hedera Account identifier in {@link https://hips.hedera.com/hip/hip-30 | HIP-30} (`:..`) form.\n * @param {Transaction | string} params.transactionBody - a built Transaction object, or a base64 string of a transaction body (deprecated).\n * @deprecated Using string for params.transactionBody is deprecated and will be removed in a future version. Please migrate to using Transaction objects directly.\n * @returns Promise\\<{@link SignTransactionResult}\\>\n * @example\n * ```ts\n *\n * const params = {\n * signerAccountId: '0.0.12345',\n * transactionBody\n * }\n *\n * const result = await dAppConnector.signTransaction(params)\n * ```\n */\n async signTransaction(params) {\n var _a, _b;\n if (typeof (params === null || params === void 0 ? void 0 : params.transactionBody) === 'string') {\n this.logger.warn('Transaction body is a string. This is not recommended, please migrate to passing a transaction object directly.');\n return await this.request({\n method: HederaJsonRpcMethod.SignTransaction,\n params,\n });\n }\n if ((params === null || params === void 0 ? void 0 : params.transactionBody) instanceof Transaction) {\n const signerAccountId = (_b = (_a = params === null || params === void 0 ? void 0 : params.signerAccountId) === null || _a === void 0 ? void 0 : _a.split(':')) === null || _b === void 0 ? void 0 : _b.pop();\n const accountSigner = this.signers.find((signer) => { var _a; return ((_a = signer === null || signer === void 0 ? void 0 : signer.getAccountId()) === null || _a === void 0 ? void 0 : _a.toString()) === signerAccountId; });\n if (!accountSigner) {\n throw new Error(`No signer found for account ${signerAccountId}`);\n }\n if (!(params === null || params === void 0 ? void 0 : params.transactionBody)) {\n throw new Error('No transaction provided');\n }\n return await accountSigner.signTransaction(params.transactionBody);\n }\n throw new Error('Transaction sent in incorrect format. Ensure transaction body is either a base64 transaction body or Transaction object.');\n }\n handleSessionEvent(args) {\n this.logger.debug('Session event received:', args);\n this.validateAndRefreshSigners();\n }\n handleSessionUpdate({ topic, params, }) {\n const { namespaces } = params;\n const _session = this.walletConnectClient.session.get(topic);\n const updatedSession = Object.assign(Object.assign({}, _session), { namespaces });\n this.logger.info('Session updated:', updatedSession);\n this.signers = this.signers.filter((signer) => signer.topic !== topic);\n this.signers.push(...this.createSigners(updatedSession));\n }\n handleSessionDelete(event) {\n this.logger.info('Session deleted:', event);\n let deletedSigner = false;\n this.signers = this.signers.filter((signer) => {\n if (signer.topic !== event.topic) {\n return true;\n }\n deletedSigner = true;\n return false;\n });\n // prevent emitting disconnected event if signers is untouched.\n if (deletedSigner) {\n try {\n this.disconnect(event.topic);\n }\n catch (e) {\n this.logger.error('Error disconnecting session:', e);\n }\n this.logger.info('Session deleted and signer removed');\n }\n }\n handlePairingDelete(event) {\n this.logger.info('Pairing deleted:', event);\n this.signers = this.signers.filter((signer) => signer.topic !== event.topic);\n try {\n this.disconnect(event.topic);\n }\n catch (e) {\n this.logger.error('Error disconnecting pairing:', e);\n }\n this.logger.info('Pairing deleted by wallet');\n }\n}\nexport default DAppConnector;\n","export interface ILogger {\n error(message: string, ...args: any[]): void;\n warn(message: string, ...args: any[]): void;\n info(message: string, ...args: any[]): void;\n debug(message: string, ...args: any[]): void;\n}\n\nexport class DefaultLogger implements ILogger {\n private logLevel: 'error' | 'warn' | 'info' | 'debug' = 'info';\n\n setLogLevel(level: 'error' | 'warn' | 'info' | 'debug'): void {\n this.logLevel = level;\n }\n\n error(message: string, ...args: any[]): void {\n if (['error', 'warn', 'info', 'debug'].includes(this.logLevel)) {\n console.error(`[ERROR] ${message}`, ...args);\n }\n }\n\n warn(message: string, ...args: any[]): void {\n if (['warn', 'info', 'debug'].includes(this.logLevel)) {\n console.warn(`[WARN] ${message}`, ...args);\n }\n }\n\n info(message: string, ...args: any[]): void {\n if (['info', 'debug'].includes(this.logLevel)) {\n console.info(`[INFO] ${message}`, ...args);\n }\n }\n\n debug(message: string, ...args: any[]): void {\n if (this.logLevel === 'debug') {\n console.debug(`[DEBUG] ${message}`, ...args);\n }\n }\n}\n","import retryFetch from 'fetch-retry';\n\nexport const fetchWithRetry = () =>\n retryFetch(fetch, {\n retries: 3,\n });\n","import { DAppConnector } from '@hashgraph/hedera-wallet-connect';\nimport * as hashgraph from '@hashgraph/sdk';\nimport {\n ContractFunctionParameters,\n TransactionReceipt,\n PrivateKey,\n Transaction,\n AccountId,\n ContractId,\n} from '@hashgraph/sdk';\nimport { SessionTypes, SignClientTypes } from '@walletconnect/types';\n\nexport interface HederaAccountResponse {\n account: string;\n alias: null;\n auto_renew_period: number;\n balance: Balance;\n created_timestamp: string;\n decline_reward: boolean;\n deleted: boolean;\n ethereum_nonce: number;\n evm_address: string;\n expiry_timestamp: string;\n key: Key;\n max_automatic_token_associations: number;\n memo: string;\n pending_reward: number;\n receiver_sig_required: boolean;\n staked_account_id: null;\n staked_node_id: number;\n stake_period_start: string;\n transactions: HBARTransaction[];\n links: Links;\n}\n\nexport interface Balance {\n balance: number;\n timestamp: string;\n tokens: Token[];\n}\n\nexport interface Token {\n token_id: string;\n balance: number;\n}\n\nexport interface Key {\n _type: string;\n key: string;\n}\n\nexport interface Links {\n next: string;\n}\n\nexport interface HBARTransaction {\n bytes: null;\n charged_tx_fee: number;\n consensus_timestamp: string;\n entity_id: null | string;\n max_fee: string;\n memo_base64: string;\n name: Name;\n nft_transfers: NftTransfer[];\n node: string;\n nonce: number;\n parent_consensus_timestamp: null;\n result: Result;\n scheduled: boolean;\n staking_reward_transfers: StakingRewardTransfer[];\n token_transfers: Transfer[];\n transaction_hash: string;\n transaction_id: string;\n transfers: Transfer[];\n valid_duration_seconds: string;\n valid_start_timestamp: string;\n}\n\nexport enum Name {\n Contractcall = 'CONTRACTCALL',\n Cryptotransfer = 'CRYPTOTRANSFER',\n}\n\nexport interface NftTransfer {\n is_approval: boolean;\n receiver_account_id: string;\n sender_account_id: string;\n serial_number: number;\n token_id: string;\n}\n\nexport enum Result {\n Success = 'SUCCESS',\n}\n\nexport interface StakingRewardTransfer {\n account: string;\n amount: number;\n}\n\nexport interface Transfer {\n token_id?: string;\n account: string;\n amount: number;\n is_approval: boolean;\n}\n\nexport interface Message {\n payer: string;\n created: Date;\n consensus_timestamp: string;\n sequence_number: number;\n [key: string]: any;\n}\n\nexport interface FetchMessagesResult {\n messages: Message[];\n error?: string;\n}\n\nexport interface Account {\n account: string;\n alias: null;\n auto_renew_period: number;\n balance: Balance;\n decline_reward: boolean;\n deleted: boolean;\n ethereum_nonce: null;\n evm_address: null;\n expiry_timestamp: string;\n key: Key;\n max_automatic_token_associations: number;\n memo: string;\n receiver_sig_required: null;\n staked_account_id: null;\n staked_node_id: null;\n stake_period_start: null;\n}\n\nexport interface Balance {\n balance: number;\n timestamp: string;\n tokens: Token[];\n}\n\nexport interface Token {\n token_id: string;\n balance: number;\n}\n\nexport interface Key {\n _type: string;\n key: string;\n}\n\nexport interface TokenBalance {\n tokenId: string;\n balance: string;\n decimals: number;\n created_timestamp: Date;\n formatted_balance: string;\n}\n\nexport interface HederaTXResponse {\n transactions: MirrorNodeTransaction[];\n}\n\nexport interface MirrorNodeTransaction {\n bytes: null;\n charged_tx_fee: number;\n consensus_timestamp: string;\n entity_id: string;\n max_fee: string;\n memo_base64: string;\n name: string;\n node: null | string;\n nonce: number;\n parent_consensus_timestamp: null | string;\n result: string;\n scheduled: boolean;\n transaction_hash: string;\n transaction_id: string;\n transfers: Transfer[];\n token_transfers: TokenTransfer[];\n valid_duration_seconds: null | string;\n valid_start_timestamp: string;\n nft_transfers?: NftTransfer[];\n}\n\nexport interface NftTransfer {\n is_approval: boolean;\n receiver_account_id: string;\n sender_account_id: string;\n serial_number: number;\n token_id: string;\n}\n\nexport interface TokenTransfer {\n token_id: string;\n account: string;\n amount: number;\n}\n\nexport interface HBarNFT {\n nfts: Nft[];\n links: Links;\n}\n\nexport interface Links {\n next: string;\n}\n\nexport interface Nft {\n account_id: string;\n created_timestamp: string;\n delegating_spender: null;\n deleted: boolean;\n metadata: string;\n modified_timestamp: string;\n serial_number: number;\n spender: null;\n token_id: string;\n token_uri?: string;\n owner_of?: string;\n}\n\nexport interface FormattedOwner {\n token_uri?: string;\n chain?: string;\n owner_of?: string;\n token_address?: string;\n token_id?: string;\n account_id?: string;\n serial_number?: number;\n [key: string]: any;\n}\n\nexport type HashinalsWalletConnectSDK = {\n run: () => void;\n init: (\n projectId: string,\n metadata: SignClientTypes.Metadata\n ) => Promise;\n connect: () => Promise;\n connectWallet(\n PROJECT_ID: string,\n APP_METADATA: SignClientTypes.Metadata\n ): Promise<{\n accountId: string;\n balance: string;\n session: SessionTypes.Struct;\n }>;\n disconnect: () => Promise;\n disconnectAll: () => Promise;\n disconnectWallet: () => Promise;\n loadConnectionInfo: () => string | null;\n saveConnectionInfo: (accountId: string) => void;\n executeTransaction: (\n tx: Transaction,\n disableSigner: boolean\n ) => Promise;\n executeTransationWithErrorHandling: (\n tx: Transaction,\n disableSigner: boolean\n ) => Promise<{ result?: TransactionReceipt; error?: string }>;\n result?: TransactionReceipt;\n error?: string;\n submitMessageToTopic: (\n topicId: string,\n message: string\n ) => Promise;\n transferHbar: (\n fromAccountId: string,\n toAccountId: string,\n amount: number\n ) => Promise;\n executeSmartContract: (\n contractId: string,\n functionName: string,\n parameters: ContractFunctionParameters,\n gas?: number\n ) => Promise;\n getAccountBalance: () => Promise;\n getAccountInfo: () => string;\n createTopic: (\n memo?: string,\n adminKey?: string,\n submitKey?: string\n ) => Promise;\n createToken: (\n name: string,\n symbol: string,\n initialSupply: number,\n decimals: number,\n treasuryAccountId: string,\n adminKey: string,\n supplyKey: string\n ) => Promise;\n mintNFT: (\n tokenId: string,\n metadata: string,\n supplyKey: PrivateKey\n ) => Promise;\n dAppConnector?: DAppConnector;\n getMessages: (\n topicId: string,\n lastTimestamp?: number,\n disableTimestampFilter?: boolean\n ) => Promise;\n initAccount: (\n PROJECT_ID: string,\n APP_METADATA: SignClientTypes.Metadata\n ) => Promise<{ accountId: string; balance: string } | null>;\n transferToken: (\n tokenId: string,\n fromAccountId: string,\n toAccountId: string,\n amount: number\n ) => Promise;\n createAccount: (initialBalance: number) => Promise;\n associateTokenToAccount: (\n accountId: string,\n tokenId: string\n ) => Promise;\n dissociateTokenFromAccount: (\n accountId: string,\n tokenId: string\n ) => Promise;\n updateAccount: (\n accountId: string,\n maxAutomaticTokenAssociations: number\n ) => Promise;\n approveAllowance: (\n spenderAccountId: string,\n tokenId: string,\n amount: number,\n ownerAccountId: string\n ) => Promise;\n getAccountTokens: (accountId: string) => Promise<{ tokens: TokenBalance[] }>;\n getTransaction: (transactionId: string) => Promise;\n getTransactionByTimestamp: (timestamp: string) => Promise;\n getAccountNFTs: (accountId: string, tokenId?: string) => Promise;\n validateNFTOwnership: (serialNumber: string, accountId: string, tokenId: string) => Promise;\n readSmartContract: (\n data: string,\n fromAccount: AccountId,\n contractId: ContractId,\n estimate?: boolean,\n value?: number\n ) => Promise;\n HashgraphSDK: typeof hashgraph;\n};\n","import { Buffer } from 'buffer';\nimport { SessionTypes, SignClientTypes } from '@walletconnect/types';\nimport {\n Transaction,\n TransferTransaction,\n TopicMessageSubmitTransaction,\n ContractExecuteTransaction,\n Hbar,\n TransactionId,\n AccountId,\n TopicId,\n ContractId,\n LedgerId,\n TokenCreateTransaction,\n TokenType,\n TokenSupplyType,\n TokenMintTransaction,\n TopicCreateTransaction,\n TransactionReceipt,\n ContractFunctionParameters,\n PrivateKey,\n AccountCreateTransaction,\n TokenAssociateTransaction,\n TokenDissociateTransaction,\n AccountUpdateTransaction,\n AccountAllowanceApproveTransaction,\n TokenId,\n} from '@hashgraph/sdk';\nimport * as HashgraphSDK from '@hashgraph/sdk';\nimport {\n HederaSessionEvent,\n HederaJsonRpcMethod,\n DAppConnector,\n HederaChainId,\n SignMessageResult,\n} from '@hashgraph/hedera-wallet-connect';\nimport {\n Message,\n FetchMessagesResult,\n TokenBalance,\n HederaAccountResponse,\n HederaTXResponse,\n HBarNFT,\n Nft,\n} from './types';\nimport { DefaultLogger, ILogger } from './logger/logger';\nimport { fetchWithRetry } from './utils/retry';\n\nclass HashinalsWalletConnectSDK {\n private static instance: HashinalsWalletConnectSDK;\n private static dAppConnectorInstance: DAppConnector;\n private logger: ILogger;\n private network: LedgerId;\n private extensionCheckInterval: NodeJS.Timeout | null = null;\n private hasCalledExtensionCallback: boolean = false;\n\n public get dAppConnector(): DAppConnector {\n return HashinalsWalletConnectSDK.dAppConnectorInstance;\n }\n\n constructor(logger?: ILogger, network?: LedgerId) {\n this.logger = logger || new DefaultLogger();\n this.network = network || LedgerId.MAINNET;\n }\n\n public static getInstance(\n logger?: ILogger,\n network?: LedgerId\n ): HashinalsWalletConnectSDK {\n let instance = HashinalsWalletConnectSDK?.instance;\n if (!instance) {\n HashinalsWalletConnectSDK.instance = new HashinalsWalletConnectSDK(\n logger,\n network\n );\n instance = HashinalsWalletConnectSDK.instance;\n }\n if (network) {\n instance.setNetwork(network);\n }\n return instance;\n }\n\n public setLogger(logger: ILogger): void {\n this.logger = logger;\n }\n\n public setNetwork(network: LedgerId): void {\n this.network = network;\n }\n\n public getNetwork(): LedgerId {\n return this.network;\n }\n\n public setLogLevel(level: 'error' | 'warn' | 'info' | 'debug'): void {\n if (this.logger instanceof DefaultLogger) {\n this.logger.setLogLevel(level);\n } else {\n this.logger.warn('setLogLevel is only available for the default logger');\n }\n }\n\n public async init(\n projectId: string,\n metadata: SignClientTypes.Metadata,\n network?: LedgerId,\n onSessionIframeCreated?: (session: SessionTypes.Struct) => void\n ): Promise {\n const chosenNetwork = network || this.network;\n const isMainnet = chosenNetwork.toString() === 'mainnet';\n\n if (HashinalsWalletConnectSDK.dAppConnectorInstance) {\n return HashinalsWalletConnectSDK.dAppConnectorInstance;\n }\n\n HashinalsWalletConnectSDK.dAppConnectorInstance = new DAppConnector(\n metadata,\n chosenNetwork,\n projectId,\n Object.values(HederaJsonRpcMethod),\n [HederaSessionEvent.ChainChanged, HederaSessionEvent.AccountsChanged],\n [isMainnet ? HederaChainId.Mainnet : HederaChainId.Testnet],\n 'debug'\n );\n\n await HashinalsWalletConnectSDK.dAppConnectorInstance.init({\n logger: 'error',\n });\n\n HashinalsWalletConnectSDK.dAppConnectorInstance.onSessionIframeCreated = (\n session\n ) => {\n this.logger.info('new session from from iframe', session);\n this.handleNewSession(session);\n if (onSessionIframeCreated) {\n onSessionIframeCreated(session);\n }\n };\n\n this.logger.info(\n `Hedera Wallet Connect SDK initialized on ${chosenNetwork}`\n );\n return HashinalsWalletConnectSDK.dAppConnectorInstance;\n }\n\n public async connect(): Promise {\n this.ensureInitialized();\n const session = await this.dAppConnector.openModal();\n this.handleNewSession(session);\n return session;\n }\n\n public async disconnect(): Promise {\n try {\n this.ensureInitialized();\n const accountInfo = this.getAccountInfo();\n const accountId = accountInfo?.accountId;\n const network = accountInfo?.network;\n const signer = this?.dAppConnector?.signers.find(\n (signer_) => signer_.getAccountId().toString() === accountId\n );\n await this.dAppConnector?.disconnect(signer?.topic);\n this.logger.info(`Disconnected from ${accountId} on ${network}`);\n return true;\n } catch (e) {\n this.logger.error('Failed to disconnect', e);\n return false;\n }\n }\n\n public async disconnectAll(): Promise {\n try {\n this.ensureInitialized();\n await this.dAppConnector?.disconnectAll();\n this.logger.info(`Disconnected from all wallets`);\n return true;\n } catch (e) {\n this.logger.error('Failed to disconnect', e);\n return false;\n }\n }\n\n public async executeTransaction(\n tx: Transaction,\n disableSigner: boolean = false\n ): Promise {\n this.ensureInitialized();\n const accountInfo = this.getAccountInfo();\n const accountId = accountInfo?.accountId;\n const signer = this.dAppConnector.signers.find(\n (signer_) => signer_.getAccountId().toString() === accountId\n );\n if (!disableSigner) {\n const signedTx = await tx.freezeWithSigner(signer);\n const executedTx = await signedTx.executeWithSigner(signer);\n return await executedTx.getReceiptWithSigner(signer);\n } else {\n const executedTx = await tx.executeWithSigner(signer);\n return await executedTx.getReceiptWithSigner(signer);\n }\n }\n\n public async executeTransactionWithErrorHandling(\n tx: Transaction,\n disableSigner: boolean\n ): Promise<{ result?: TransactionReceipt; error?: string }> {\n try {\n const result = await this.executeTransaction(tx, disableSigner);\n return {\n result,\n error: undefined,\n };\n } catch (e) {\n const error = e as Error;\n const message = error.message?.toLowerCase();\n this.logger.error('Failed to execute transaction', e);\n this.logger.error('Failure reason for transaction is', message);\n if (message.includes('insufficient payer balance')) {\n return {\n result: undefined,\n error: 'Insufficient balance to complete the transaction.',\n };\n } else if (message.includes('reject')) {\n return {\n result: undefined,\n error: 'You rejected the transaction',\n };\n } else if (message.includes('invalid signature')) {\n return {\n result: undefined,\n error: 'Invalid signature. Please check your account and try again.',\n };\n } else if (message.includes('transaction expired')) {\n return {\n result: undefined,\n error: 'Transaction expired. Please try again.',\n };\n } else if (message.includes('account not found')) {\n return {\n result: undefined,\n error:\n 'Account not found. Please check the account ID and try again.',\n };\n } else if (message.includes('unauthorized')) {\n return {\n result: undefined,\n error:\n 'Unauthorized. You may not have the necessary permissions for this action.',\n };\n } else if (message.includes('busy')) {\n return {\n result: undefined,\n error: 'The network is busy. Please try again later.',\n };\n } else if (message.includes('invalid transaction')) {\n return {\n result: undefined,\n error: 'Invalid transaction. Please check your inputs and try again.',\n };\n }\n }\n }\n\n public async submitMessageToTopic(\n topicId: string,\n message: string,\n submitKey?: PrivateKey\n ): Promise {\n this.ensureInitialized();\n\n let transaction = new TopicMessageSubmitTransaction()\n .setTopicId(TopicId.fromString(topicId))\n .setMessage(message);\n\n if (submitKey) {\n transaction = await transaction.sign(submitKey);\n }\n\n return this.executeTransaction(transaction);\n }\n\n public async transferHbar(\n fromAccountId: string,\n toAccountId: string,\n amount: number\n ): Promise {\n this.ensureInitialized();\n\n const transaction = new TransferTransaction()\n .setTransactionId(TransactionId.generate(fromAccountId))\n .addHbarTransfer(AccountId.fromString(fromAccountId), new Hbar(-amount))\n .addHbarTransfer(AccountId.fromString(toAccountId), new Hbar(amount));\n\n return this.executeTransaction(transaction);\n }\n\n async executeSmartContract(\n contractId: string,\n functionName: string,\n parameters: ContractFunctionParameters,\n gas: number = 100000\n ): Promise {\n this.ensureInitialized();\n\n const transaction = new ContractExecuteTransaction()\n .setContractId(ContractId.fromString(contractId))\n .setGas(gas)\n .setFunction(functionName, parameters);\n\n return this.executeTransaction(transaction);\n }\n\n private handleNewSession(session: SessionTypes.Struct) {\n const sessionAccount = session.namespaces?.hedera?.accounts?.[0];\n const sessionParts = sessionAccount?.split(':');\n const accountId = sessionParts.pop();\n const network = sessionParts.pop();\n this.logger.info('sessionAccount is', accountId, network);\n if (!accountId) {\n this.logger.error('No account id found in the session');\n return;\n } else {\n this.saveConnectionInfo(accountId, network);\n }\n }\n\n private getNetworkPrefix(): string {\n const accountInfo = this.getAccountInfo();\n const network = accountInfo?.network;\n\n if (!network) {\n this.logger.warn('Network is not set on SDK, defaulting.');\n\n const cachedNetwork = localStorage.getItem('connectedNetwork');\n\n if (cachedNetwork) {\n return cachedNetwork;\n }\n\n return 'mainnet-public';\n }\n\n if (network !== this.network) {\n this.logger.warn(\n 'Detected network mismatch, reverting to signer network',\n network\n );\n this.network = network;\n }\n\n return network.isMainnet() ? 'mainnet-public' : 'testnet';\n }\n\n public async requestAccount(account: string): Promise {\n try {\n const networkPrefix = this.getNetworkPrefix();\n\n const url = `https://${networkPrefix}.mirrornode.hedera.com/api/v1/accounts/${account}`;\n const response = await fetchWithRetry()(url);\n if (!response.ok) {\n throw new Error(\n `Failed to make request to mirror node for account: ${response.status}`\n );\n }\n return await response.json();\n } catch (e) {\n this.logger.error('Failed to fetch account', e);\n throw e;\n }\n }\n\n public async getAccountBalance(): Promise {\n this.ensureInitialized();\n const accountInfo = this.getAccountInfo();\n const account = accountInfo?.accountId;\n\n if (!account) {\n return null;\n }\n\n const accountResponse = await this.requestAccount(account);\n if (!accountResponse) {\n throw new Error(\n 'Failed to fetch account. Try again or check if the Account ID is valid.'\n );\n }\n const balance = accountResponse.balance.balance / 10 ** 8;\n return Number(balance).toLocaleString('en-US');\n }\n\n public getAccountInfo(): {\n accountId: string;\n network: LedgerId;\n } {\n const { accountId: cachedAccountId } = this.loadConnectionInfo();\n if (!cachedAccountId) {\n return null;\n }\n const signers = this?.dAppConnector?.signers;\n\n if (!signers?.length) {\n return null;\n }\n\n const cachedSigner = this.dAppConnector.signers.find(\n (signer_) => signer_.getAccountId().toString() === cachedAccountId\n );\n if (!cachedSigner) {\n return null;\n }\n const accountId = cachedSigner?.getAccountId()?.toString();\n if (!accountId) {\n return null;\n }\n const network = cachedSigner.getLedgerId();\n return {\n accountId,\n network,\n };\n }\n\n public async createTopic(\n memo?: string,\n adminKey?: string,\n submitKey?: string\n ): Promise {\n this.ensureInitialized();\n\n let transaction = new TopicCreateTransaction().setTopicMemo(memo || '');\n\n if (adminKey) {\n const adminWithPrivateKey = PrivateKey.fromString(adminKey);\n transaction.setAdminKey(adminWithPrivateKey.publicKey);\n transaction = await transaction.sign(adminWithPrivateKey);\n }\n\n if (submitKey) {\n transaction.setSubmitKey(PrivateKey.fromString(submitKey).publicKey);\n }\n\n const receipt = await this.executeTransaction(transaction);\n return receipt.topicId!.toString();\n }\n\n public async createToken(\n name: string,\n symbol: string,\n initialSupply: number,\n decimals: number,\n treasuryAccountId: string,\n adminKey: string,\n supplyKey: string\n ): Promise {\n this.ensureInitialized();\n\n let transaction = new TokenCreateTransaction()\n .setTokenName(name)\n .setTokenSymbol(symbol)\n .setDecimals(decimals)\n .setInitialSupply(initialSupply)\n .setTreasuryAccountId(AccountId.fromString(treasuryAccountId))\n .setTokenType(TokenType.NonFungibleUnique)\n .setSupplyType(TokenSupplyType.Finite);\n\n if (supplyKey) {\n transaction = transaction.setSupplyKey(PrivateKey.fromString(supplyKey));\n }\n\n if (adminKey) {\n transaction = transaction.setAdminKey(PrivateKey.fromString(adminKey));\n transaction = await transaction.sign(PrivateKey.fromString(adminKey));\n }\n\n const receipt = await this.executeTransaction(transaction);\n return receipt.tokenId!.toString();\n }\n\n public async mintNFT(\n tokenId: string,\n metadata: string,\n supplyKey: PrivateKey\n ): Promise {\n this.ensureInitialized();\n\n let transaction = await new TokenMintTransaction()\n .setTokenId(tokenId)\n .setMetadata([Buffer.from(metadata, 'utf-8')])\n .sign(supplyKey);\n\n return this.executeTransaction(transaction);\n }\n\n public async getMessages(\n topicId: string,\n lastTimestamp?: number,\n disableTimestampFilter: boolean = false,\n network?: string\n ): Promise {\n const networkPrefix = network || this.getNetworkPrefix();\n const baseUrl = `https://${networkPrefix}.mirrornode.hedera.com`;\n const timestampQuery =\n Number(lastTimestamp) > 0 && !disableTimestampFilter\n ? `×tamp=gt:${lastTimestamp}`\n : '';\n\n const url = `${baseUrl}/api/v1/topics/${topicId}/messages?limit=200${timestampQuery}`;\n\n try {\n const response = await fetchWithRetry()(url);\n if (!response.ok) {\n throw new Error(\n `Failed to make request to mirror node: ${response.status}`\n );\n }\n const data = await response.json();\n const messages = data?.messages || [];\n const nextLink = data?.links?.next;\n\n const collectedMessages: Message[] = messages.map((msg: any) => {\n const parsedMessage = JSON.parse(atob(msg.message));\n return {\n ...parsedMessage,\n payer: msg.payer_account_id,\n created: new Date(Number(msg.consensus_timestamp) * 1000),\n consensus_timestamp: msg.consensus_timestamp,\n sequence_number: msg.sequence_number,\n };\n });\n\n if (nextLink) {\n const nextResult = await this.getMessages(\n topicId,\n Number(\n collectedMessages[collectedMessages.length - 1]?.consensus_timestamp\n ),\n disableTimestampFilter\n );\n collectedMessages.push(...nextResult.messages);\n }\n\n return {\n messages: collectedMessages.sort(\n (a, b) => a.sequence_number - b.sequence_number\n ),\n error: '',\n };\n } catch (error) {\n this.logger.error('Error fetching topic data:', error);\n return {\n messages: [],\n error: (error as Error).toString(),\n };\n }\n }\n\n public async signMessage(message: string) {\n const dAppConnector = this.dAppConnector;\n if (!dAppConnector) {\n throw new Error('No active connection or signer');\n }\n\n const accountInfo = this.getAccountInfo();\n const accountId = accountInfo?.accountId;\n\n const params = {\n signerAccountId: `hedera:${this.network}:${accountId}`,\n message,\n };\n\n const result = (await dAppConnector.signMessage(\n params\n )) as SignMessageResult;\n\n // @ts-ignore\n return { userSignature: result.signatureMap };\n }\n\n private saveConnectionInfo(\n accountId: string | undefined,\n connectedNetwork?: string | undefined\n ): void {\n if (!accountId) {\n localStorage.removeItem('connectedAccountId');\n localStorage.removeItem('connectedNetwork');\n } else {\n const cleanNetwork = connectedNetwork?.replace(/['\"]+/g, '');\n localStorage.setItem('connectedNetwork', cleanNetwork);\n localStorage.setItem('connectedAccountId', accountId);\n }\n }\n\n public loadConnectionInfo(): {\n accountId: string | null;\n network: string | null;\n } {\n return {\n accountId: localStorage.getItem('connectedAccountId'),\n network: localStorage.getItem('connectedNetwork'),\n };\n }\n\n public async connectWallet(\n PROJECT_ID: string,\n APP_METADATA: SignClientTypes.Metadata,\n network?: LedgerId\n ): Promise<{\n accountId: string;\n balance: string;\n session: SessionTypes.Struct;\n }> {\n try {\n await this.init(PROJECT_ID, APP_METADATA, network);\n const session = await this.connect();\n\n const accountInfo = this.getAccountInfo();\n const accountId = accountInfo?.accountId;\n const balance = await this.getAccountBalance();\n const networkPrefix = this.getNetworkPrefix();\n\n this.saveConnectionInfo(accountId, networkPrefix);\n return {\n accountId,\n balance,\n session,\n };\n } catch (error) {\n this.logger.error('Failed to connect wallet:', error);\n throw error;\n }\n }\n\n public async disconnectWallet(\n clearStorage: boolean = true\n ): Promise {\n try {\n const success = await this.disconnect();\n\n if (success && clearStorage) {\n localStorage.clear();\n }\n\n this.saveConnectionInfo(undefined);\n return success;\n } catch (error) {\n this.logger.error('Failed to disconnect wallet:', error);\n return false;\n }\n }\n\n public async initAccount(\n PROJECT_ID: string,\n APP_METADATA: SignClientTypes.Metadata,\n networkOverride?: LedgerId,\n onSessionIframeCreated: (session: SessionTypes.Struct) => void = () => {}\n ): Promise<{ accountId: string; balance: string } | null> {\n const { accountId: savedAccountId, network: savedNetwork } =\n this.loadConnectionInfo();\n\n if (savedAccountId && savedNetwork) {\n try {\n const defaultNetwork =\n savedNetwork === 'mainnet' ? LedgerId.MAINNET : LedgerId.TESTNET;\n const network = networkOverride || defaultNetwork;\n await this.init(\n PROJECT_ID,\n APP_METADATA,\n network,\n onSessionIframeCreated\n );\n const balance = await this.getAccountBalance();\n return {\n accountId: savedAccountId,\n balance,\n };\n } catch (error) {\n this.logger.error('Failed to reconnect:', error);\n this.saveConnectionInfo(undefined, undefined);\n return null;\n }\n } else if (networkOverride) {\n try {\n this.logger.info(\n 'initializing normally through override.',\n networkOverride\n );\n await this.init(\n PROJECT_ID,\n APP_METADATA,\n networkOverride,\n onSessionIframeCreated\n );\n this.logger.info('initialized', networkOverride);\n await this.connectViaDappBrowser();\n this.logger.info('connected via dapp browser');\n } catch (error) {\n this.logger.error('Failed to fallback connect:', error);\n this.saveConnectionInfo(undefined, undefined);\n return null;\n }\n }\n\n return null;\n }\n\n public subscribeToExtensions(callback: (extension: any) => void) {\n // Clear any existing interval and reset flag\n if (this.extensionCheckInterval) {\n clearInterval(this.extensionCheckInterval);\n }\n this.hasCalledExtensionCallback = false;\n\n // Set up polling to check for extensions\n this.extensionCheckInterval = setInterval(() => {\n const extensions = this.dAppConnector?.extensions || [];\n const availableExtension = extensions.find(\n (ext) => ext.availableInIframe\n );\n\n if (availableExtension && !this.hasCalledExtensionCallback) {\n this.hasCalledExtensionCallback = true;\n callback(availableExtension);\n // Clear the interval once we find an available extension\n if (this.extensionCheckInterval) {\n clearInterval(this.extensionCheckInterval);\n this.extensionCheckInterval = null;\n }\n }\n }, 1000); // Check every second\n\n // Return cleanup function\n return () => {\n if (this.extensionCheckInterval) {\n clearInterval(this.extensionCheckInterval);\n this.extensionCheckInterval = null;\n }\n this.hasCalledExtensionCallback = false;\n };\n }\n\n public async connectViaDappBrowser() {\n const extensions = this.dAppConnector.extensions || [];\n const extension = extensions.find((ext) => {\n this.logger.info('Checking extension', ext);\n return ext.availableInIframe;\n });\n this.logger.info('extensions are', extensions, extension);\n\n if (extension) {\n await this.connectToExtension(extension);\n } else {\n // If no extension is immediately available, subscribe to changes\n this.subscribeToExtensions(async (newExtension) => {\n await this.connectToExtension(newExtension);\n });\n }\n }\n\n private async connectToExtension(extension: any) {\n this.logger.info('found extension, connecting to iframe.', extension);\n const session = await this.dAppConnector.connectExtension(extension.id);\n const onSessionIframeCreated = this.dAppConnector.onSessionIframeCreated;\n if (onSessionIframeCreated) {\n onSessionIframeCreated(session);\n }\n }\n\n private ensureInitialized(): void {\n if (!this.dAppConnector) {\n throw new Error('SDK not initialized. Call init() first.');\n }\n }\n\n static run(): void {\n try {\n if (typeof window !== 'undefined') {\n (window as any).HashinalsWalletConnectSDK =\n HashinalsWalletConnectSDK.getInstance();\n (window as any).HashgraphSDK = HashgraphSDK;\n }\n } catch (e) {\n console.error('[ERROR]: failed setting sdk on window');\n }\n }\n\n public async transferToken(\n tokenId: string,\n fromAccountId: string,\n toAccountId: string,\n amount: number\n ): Promise {\n this.ensureInitialized();\n\n const transaction = new TransferTransaction()\n .setTransactionId(TransactionId.generate(fromAccountId))\n .addTokenTransfer(\n TokenId.fromString(tokenId),\n AccountId.fromString(fromAccountId),\n -amount\n )\n .addTokenTransfer(\n TokenId.fromString(tokenId),\n AccountId.fromString(toAccountId),\n amount\n );\n\n return this.executeTransaction(transaction);\n }\n\n async createAccount(initialBalance: number): Promise {\n this.ensureInitialized();\n\n const transaction = new AccountCreateTransaction().setInitialBalance(\n new Hbar(initialBalance)\n );\n\n return this.executeTransaction(transaction);\n }\n\n public async associateTokenToAccount(\n accountId: string,\n tokenId: string\n ): Promise {\n this.ensureInitialized();\n\n const transaction = new TokenAssociateTransaction()\n .setAccountId(AccountId.fromString(accountId))\n .setTokenIds([TokenId.fromString(tokenId)]);\n\n return this.executeTransaction(transaction);\n }\n\n public async dissociateTokenFromAccount(\n accountId: string,\n tokenId: string\n ): Promise {\n this.ensureInitialized();\n\n const transaction = new TokenDissociateTransaction()\n .setAccountId(AccountId.fromString(accountId))\n .setTokenIds([TokenId.fromString(tokenId)]);\n\n return this.executeTransaction(transaction);\n }\n\n public async updateAccount(\n accountId: string,\n maxAutomaticTokenAssociations: number\n ): Promise {\n this.ensureInitialized();\n\n const transaction = new AccountUpdateTransaction()\n .setAccountId(AccountId.fromString(accountId))\n .setMaxAutomaticTokenAssociations(maxAutomaticTokenAssociations);\n\n return this.executeTransaction(transaction);\n }\n\n public async approveAllowance(\n spenderAccountId: string,\n tokenId: string,\n amount: number,\n ownerAccountId: string\n ): Promise {\n this.ensureInitialized();\n\n const transaction =\n new AccountAllowanceApproveTransaction().approveTokenAllowance(\n TokenId.fromString(tokenId),\n AccountId.fromString(ownerAccountId),\n AccountId.fromString(spenderAccountId),\n amount\n );\n\n return this.executeTransaction(transaction);\n }\n\n public async getAccountTokens(\n accountId: string\n ): Promise<{ tokens: TokenBalance[] }> {\n this.ensureInitialized();\n\n const networkPrefix = this.getNetworkPrefix();\n const baseUrl = `https://${networkPrefix}.mirrornode.hedera.com`;\n const url = `${baseUrl}/api/v1/accounts/${accountId}/tokens?limit=200`;\n\n try {\n const response = await fetchWithRetry()(url);\n if (!response.ok) {\n throw new Error(\n `Failed to make request to mirror node for account tokens: ${response.status}`\n );\n }\n const data = await response.json();\n\n const tokens: TokenBalance[] = [];\n\n for (const token of data.tokens) {\n if (token.token_id) {\n tokens.push({\n tokenId: token.token_id,\n balance: token.balance,\n decimals: token.decimals,\n formatted_balance: (\n token.balance /\n 10 ** token.decimals\n ).toLocaleString('en-US'),\n created_timestamp: new Date(Number(token.created_timestamp) * 1000),\n });\n }\n }\n let nextLink = data.links?.next;\n while (nextLink) {\n const nextUrl = `${baseUrl}${nextLink}`;\n const nextResponse = await fetchWithRetry()(nextUrl);\n if (!nextResponse.ok) {\n throw new Error(\n `Failed to make request to mirror node for account tokens: ${nextResponse.status}, page: ${nextUrl}`\n );\n }\n const nextData = await nextResponse.json();\n\n for (const token of nextData.tokens) {\n if (token.token_id) {\n tokens.push({\n tokenId: token.token_id,\n balance: token.balance,\n decimals: token.decimals,\n formatted_balance: (\n token.balance /\n 10 ** token.decimals\n ).toLocaleString('en-US'),\n created_timestamp: new Date(\n Number(token.created_timestamp) * 1000\n ),\n });\n }\n }\n\n nextLink = nextData.links?.next;\n }\n\n return { tokens };\n } catch (error) {\n this.logger.error('Error fetching account tokens:', error);\n throw error;\n }\n }\n\n public async getTransaction(\n transactionId: string\n ): Promise {\n try {\n const networkPrefix = this.getNetworkPrefix();\n const url = `https://${networkPrefix}.mirrornode.hedera.com/api/v1/transactions/${transactionId}`;\n\n this.logger.debug('Fetching transaction', url);\n const request = await fetchWithRetry()(url);\n\n if (!request.ok) {\n throw new Error(`Failed to fetch transaction: ${request.status}`);\n }\n\n return await request.json();\n } catch (e) {\n this.logger.error('Failed to get transaction', e);\n return null;\n }\n }\n\n public async getTransactionByTimestamp(\n timestamp: string\n ): Promise {\n try {\n const networkPrefix = this.getNetworkPrefix();\n const url = `https://${networkPrefix}.mirrornode.hedera.com/api/v1/transactions?timestamp=${timestamp}`;\n\n this.logger.debug('Fetching transaction by timestamp', url);\n const request = await fetchWithRetry()(url);\n\n if (!request.ok) {\n throw new Error(\n `Failed to fetch transaction by timestamp: ${request.status}`\n );\n }\n\n const response = (await request.json()) as HederaTXResponse;\n const transaction = response?.transactions?.[0];\n\n if (transaction) {\n return await this.getTransaction(transaction.transaction_id);\n }\n\n return null;\n } catch (e) {\n this.logger.error('Failed to get transaction by timestamp', e);\n return null;\n }\n }\n\n public async getAccountNFTs(\n accountId: string,\n tokenId?: string\n ): Promise {\n try {\n const networkPrefix = this.getNetworkPrefix();\n const tokenQuery = tokenId ? `&token.id=${tokenId}` : '';\n const url = `https://${networkPrefix}.mirrornode.hedera.com/api/v1/accounts/${accountId}/nfts?limit=200${tokenQuery}`;\n\n const request = await fetchWithRetry()(url);\n if (!request.ok) {\n throw new Error(`Failed to fetch NFTs for account: ${request.status}`);\n }\n\n const response = (await request.json()) as HBarNFT;\n let nextLink: string | null = response?.links?.next || null;\n let nfts = response.nfts;\n\n while (nextLink) {\n try {\n const nextRequest = await fetchWithRetry()(\n `https://${networkPrefix}.mirrornode.hedera.com${nextLink}`\n );\n\n if (!nextRequest.ok) {\n throw new Error(\n `Failed to fetch next page of NFTs: ${nextRequest.status}`\n );\n }\n\n const nextResponse = (await nextRequest.json()) as HBarNFT;\n nfts = [...nfts, ...(nextResponse?.nfts || [])];\n\n nextLink =\n nextResponse?.links?.next && nextLink !== nextResponse?.links?.next\n ? nextResponse.links.next\n : null;\n } catch (e) {\n this.logger.error('Failed to fetch next page of NFTs', e);\n break;\n }\n }\n\n return nfts.map((nft) => {\n try {\n nft.token_uri = Buffer.from(nft.metadata, 'base64').toString('ascii');\n } catch (e) {\n this.logger.error('Failed to decode NFT metadata', e);\n }\n return nft;\n });\n } catch (e) {\n this.logger.error('Failed to get account NFTs', e);\n return [];\n }\n }\n\n public async validateNFTOwnership(\n serialNumber: string,\n accountId: string,\n tokenId: string\n ): Promise {\n const userNFTs = await this.getAccountNFTs(accountId, tokenId);\n\n return (\n userNFTs.find(\n (nft) =>\n nft.token_id === tokenId &&\n nft.serial_number.toString() === serialNumber\n ) || null\n );\n }\n\n public async readSmartContract(\n data: string,\n fromAccount: AccountId,\n contractId: ContractId,\n estimate: boolean = true,\n value: number = 0\n ): Promise {\n try {\n const networkPrefix = this.getNetworkPrefix();\n const body: any = {\n block: 'latest',\n data: data,\n estimate: estimate,\n from: fromAccount.toSolidityAddress(),\n to: contractId.toSolidityAddress(),\n value,\n };\n\n if (!estimate) {\n body.gas = 300000;\n body.gasPrice = 100000000;\n }\n\n const url = `https://${networkPrefix}.mirrornode.hedera.com/api/v1/contracts/call`;\n\n const response = await fetchWithRetry()(url, {\n method: 'POST',\n body: JSON.stringify(body),\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n\n if (!response.ok) {\n throw new Error(`Failed to make contract call: ${response.status}`);\n }\n\n return await response.json();\n } catch (e) {\n this.logger.error('Failed to make contract call', e);\n return null;\n }\n }\n}\n\n// This variable is replaced at build time.\n// @ts-ignore\nif ('VITE_BUILD_FORMAT' === 'umd') {\n HashinalsWalletConnectSDK.run();\n}\n\nexport * from './types';\nexport * from './sign';\nexport { HashinalsWalletConnectSDK, HashgraphSDK };\n"],"names":["i","buffer","c","rt","Buffer","SlowBuffer","proto","b","byteLength","x","y","n","code","E","Blob","atob","constants","HederaChainId","HederaSessionEvent","HederaJsonRpcMethod","_","events","EVENTS","format","f","require$$0","browser","k","transmit","noop","level","S","z","v","ReflectApply","ReflectOwnKeys","NumberIsNaN","eventsModule","once","listeners","w","d","p","__assign","g","k2","global","e","isReactNative","process","require$$1","require$$2","delay_1","delay","watch","require$$3","require$$4","Ze","$","et","Ot","is","tt","u","A","Et","R","Y","M","C","F","P","B","ue","bt","Ct","K","U","Lt","Te","Ne","T","xt","Pe","Dt","je","Fe","Qe","ze","He","Ye","ge","Vt","ie","he","Q","se","Ae","Mt","de","X","rs","ns","J","Rt","St","re","Ue","L","ne","kt","Xe","$t","Oe","Je","Kt","Ut","Gt","Be","jt","Ft","Qt","zt","Ht","Yt","It","We","Xt","Jt","os","as","ft","Bt","Ge","Wt","H","At","ts","Zt","Tt","vt","Nt","Pt","DefaultLogger","data","result","_e","metadata","SignClient","signer","_a","Name","Result"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]} \ No newline at end of file +{"version":3,"file":"hashinal-wc.es.js","sources":["../../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js","../../node_modules/@hashgraph/hedera-wallet-connect/dist/lib/shared/chainIds.js","../../node_modules/@hashgraph/hedera-wallet-connect/dist/lib/shared/events.js","../../node_modules/@hashgraph/hedera-wallet-connect/dist/lib/shared/methods.js","../../node_modules/@hashgraph/hedera-wallet-connect/dist/lib/shared/utils.js","../../node_modules/@hashgraph/hedera-wallet-connect/dist/lib/shared/extensionController.js","../../node_modules/quick-format-unescaped/index.js","../../node_modules/@walletconnect/logger/node_modules/pino/browser.js","../../node_modules/@walletconnect/logger/dist/index.es.js","../../node_modules/events/events.js","../../node_modules/@walletconnect/jsonrpc-utils/dist/esm/constants.js","../../node_modules/@walletconnect/jsonrpc-utils/dist/esm/error.js","../../node_modules/tslib/tslib.es6.js","../../node_modules/@walletconnect/environment/dist/cjs/crypto.js","../../node_modules/vite-plugin-node-polyfills/shims/process/dist/index.js","../../node_modules/@walletconnect/environment/dist/cjs/env.js","../../node_modules/@walletconnect/environment/dist/cjs/index.js","../../node_modules/@walletconnect/jsonrpc-utils/dist/esm/format.js","../../node_modules/@walletconnect/jsonrpc-utils/dist/esm/validators.js","../../node_modules/@walletconnect/time/dist/cjs/utils/delay.js","../../node_modules/@walletconnect/time/dist/cjs/constants/misc.js","../../node_modules/@walletconnect/time/dist/cjs/constants/time.js","../../node_modules/@walletconnect/time/dist/cjs/constants/index.js","../../node_modules/@walletconnect/time/dist/cjs/utils/convert.js","../../node_modules/@walletconnect/time/dist/cjs/utils/index.js","../../node_modules/@walletconnect/time/dist/cjs/watch.js","../../node_modules/@walletconnect/time/dist/cjs/types/watch.js","../../node_modules/@walletconnect/time/dist/cjs/types/index.js","../../node_modules/@walletconnect/time/dist/cjs/index.js","../../node_modules/vite-plugin-node-polyfills/shims/global/dist/index.js","../../node_modules/@walletconnect/sign-client/node_modules/@walletconnect/types/dist/index.es.js","../../node_modules/@walletconnect/sign-client/dist/index.es.js","../../node_modules/@hashgraph/hedera-wallet-connect/dist/lib/shared/logger.js","../../node_modules/@hashgraph/hedera-wallet-connect/dist/lib/dapp/SessionNotFoundError.js","../../node_modules/@hashgraph/hedera-wallet-connect/dist/lib/dapp/DAppSigner.js","../../node_modules/@hashgraph/hedera-wallet-connect/dist/lib/dapp/index.js","../../src/logger/logger.ts","../../src/utils/retry.ts","../../src/types.ts","../../src/index.ts"],"sourcesContent":["var buffer = {};\n\nvar base64Js = {};\n\nbase64Js.byteLength = byteLength;\nbase64Js.toByteArray = toByteArray;\nbase64Js.fromByteArray = fromByteArray;\n\nvar lookup = [];\nvar revLookup = [];\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62;\nrevLookup['_'.charCodeAt(0)] = 63;\n\nfunction getLens (b64) {\n var len = b64.length;\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=');\n if (validLen === -1) validLen = len;\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4);\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp;\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n\n var curByte = 0;\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen;\n\n var i;\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)];\n arr[curByte++] = (tmp >> 16) & 0xFF;\n arr[curByte++] = (tmp >> 8) & 0xFF;\n arr[curByte++] = tmp & 0xFF;\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4);\n arr[curByte++] = tmp & 0xFF;\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2);\n arr[curByte++] = (tmp >> 8) & 0xFF;\n arr[curByte++] = tmp & 0xFF;\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp;\n var output = [];\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF);\n output.push(tripletToBase64(tmp));\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp;\n var len = uint8.length;\n var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n var parts = [];\n var maxChunkLength = 16383; // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)));\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1];\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n );\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1];\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n );\n }\n\n return parts.join('')\n}\n\nvar ieee754 = {};\n\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\n\nieee754.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = (nBytes * 8) - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? (nBytes - 1) : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n\n i += d;\n\n e = s & ((1 << (-nBits)) - 1);\n s >>= (-nBits);\n nBits += eLen;\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1);\n e >>= (-nBits);\n nBits += mLen;\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n};\n\nieee754.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = (nBytes * 8) - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0);\n var i = isLE ? 0 : (nBytes - 1);\n var d = isLE ? 1 : -1;\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0;\n\n value = Math.abs(value);\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m;\n eLen += mLen;\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128;\n};\n\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n(function (exports) {\n\n\tconst base64 = base64Js;\n\tconst ieee754$1 = ieee754;\n\tconst customInspectSymbol =\n\t (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n\t ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n\t : null;\n\n\texports.Buffer = Buffer;\n\texports.SlowBuffer = SlowBuffer;\n\texports.INSPECT_MAX_BYTES = 50;\n\n\tconst K_MAX_LENGTH = 0x7fffffff;\n\texports.kMaxLength = K_MAX_LENGTH;\n\tconst { Uint8Array: GlobalUint8Array, ArrayBuffer: GlobalArrayBuffer, SharedArrayBuffer: GlobalSharedArrayBuffer } = globalThis;\n\n\t/**\n\t * If `Buffer.TYPED_ARRAY_SUPPORT`:\n\t * === true Use Uint8Array implementation (fastest)\n\t * === false Print warning and recommend using `buffer` v4.x which has an Object\n\t * implementation (most compatible, even IE6)\n\t *\n\t * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n\t * Opera 11.6+, iOS 4.2+.\n\t *\n\t * We report that the browser does not support typed arrays if the are not subclassable\n\t * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n\t * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n\t * for __proto__ and has a buggy typed array implementation.\n\t */\n\tBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport();\n\n\tif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n\t typeof console.error === 'function') {\n\t console.error(\n\t 'This browser lacks typed array (Uint8Array) support which is required by ' +\n\t '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n\t );\n\t}\n\n\tfunction typedArraySupport () {\n\t // Can typed array instances can be augmented?\n\t try {\n\t const arr = new GlobalUint8Array(1);\n\t const proto = { foo: function () { return 42 } };\n\t Object.setPrototypeOf(proto, GlobalUint8Array.prototype);\n\t Object.setPrototypeOf(arr, proto);\n\t return arr.foo() === 42\n\t } catch (e) {\n\t return false\n\t }\n\t}\n\n\tObject.defineProperty(Buffer.prototype, 'parent', {\n\t enumerable: true,\n\t get: function () {\n\t if (!Buffer.isBuffer(this)) return undefined\n\t return this.buffer\n\t }\n\t});\n\n\tObject.defineProperty(Buffer.prototype, 'offset', {\n\t enumerable: true,\n\t get: function () {\n\t if (!Buffer.isBuffer(this)) return undefined\n\t return this.byteOffset\n\t }\n\t});\n\n\tfunction createBuffer (length) {\n\t if (length > K_MAX_LENGTH) {\n\t throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n\t }\n\t // Return an augmented `Uint8Array` instance\n\t const buf = new GlobalUint8Array(length);\n\t Object.setPrototypeOf(buf, Buffer.prototype);\n\t return buf\n\t}\n\n\t/**\n\t * The Buffer constructor returns instances of `Uint8Array` that have their\n\t * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n\t * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n\t * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n\t * returns a single octet.\n\t *\n\t * The `Uint8Array` prototype remains unmodified.\n\t */\n\n\tfunction Buffer (arg, encodingOrOffset, length) {\n\t // Common case.\n\t if (typeof arg === 'number') {\n\t if (typeof encodingOrOffset === 'string') {\n\t throw new TypeError(\n\t 'The \"string\" argument must be of type string. Received type number'\n\t )\n\t }\n\t return allocUnsafe(arg)\n\t }\n\t return from(arg, encodingOrOffset, length)\n\t}\n\n\tBuffer.poolSize = 8192; // not used by this implementation\n\n\tfunction from (value, encodingOrOffset, length) {\n\t if (typeof value === 'string') {\n\t return fromString(value, encodingOrOffset)\n\t }\n\n\t if (GlobalArrayBuffer.isView(value)) {\n\t return fromArrayView(value)\n\t }\n\n\t if (value == null) {\n\t throw new TypeError(\n\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t 'or Array-like Object. Received type ' + (typeof value)\n\t )\n\t }\n\n\t if (isInstance(value, GlobalArrayBuffer) ||\n\t (value && isInstance(value.buffer, GlobalArrayBuffer))) {\n\t return fromArrayBuffer(value, encodingOrOffset, length)\n\t }\n\n\t if (typeof GlobalSharedArrayBuffer !== 'undefined' &&\n\t (isInstance(value, GlobalSharedArrayBuffer) ||\n\t (value && isInstance(value.buffer, GlobalSharedArrayBuffer)))) {\n\t return fromArrayBuffer(value, encodingOrOffset, length)\n\t }\n\n\t if (typeof value === 'number') {\n\t throw new TypeError(\n\t 'The \"value\" argument must not be of type number. Received type number'\n\t )\n\t }\n\n\t const valueOf = value.valueOf && value.valueOf();\n\t if (valueOf != null && valueOf !== value) {\n\t return Buffer.from(valueOf, encodingOrOffset, length)\n\t }\n\n\t const b = fromObject(value);\n\t if (b) return b\n\n\t if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n\t typeof value[Symbol.toPrimitive] === 'function') {\n\t return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n\t }\n\n\t throw new TypeError(\n\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t 'or Array-like Object. Received type ' + (typeof value)\n\t )\n\t}\n\n\t/**\n\t * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n\t * if value is a number.\n\t * Buffer.from(str[, encoding])\n\t * Buffer.from(array)\n\t * Buffer.from(buffer)\n\t * Buffer.from(arrayBuffer[, byteOffset[, length]])\n\t **/\n\tBuffer.from = function (value, encodingOrOffset, length) {\n\t return from(value, encodingOrOffset, length)\n\t};\n\n\t// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n\t// https://github.com/feross/buffer/pull/148\n\tObject.setPrototypeOf(Buffer.prototype, GlobalUint8Array.prototype);\n\tObject.setPrototypeOf(Buffer, GlobalUint8Array);\n\n\tfunction assertSize (size) {\n\t if (typeof size !== 'number') {\n\t throw new TypeError('\"size\" argument must be of type number')\n\t } else if (size < 0) {\n\t throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n\t }\n\t}\n\n\tfunction alloc (size, fill, encoding) {\n\t assertSize(size);\n\t if (size <= 0) {\n\t return createBuffer(size)\n\t }\n\t if (fill !== undefined) {\n\t // Only pay attention to encoding if it's a string. This\n\t // prevents accidentally sending in a number that would\n\t // be interpreted as a start offset.\n\t return typeof encoding === 'string'\n\t ? createBuffer(size).fill(fill, encoding)\n\t : createBuffer(size).fill(fill)\n\t }\n\t return createBuffer(size)\n\t}\n\n\t/**\n\t * Creates a new filled Buffer instance.\n\t * alloc(size[, fill[, encoding]])\n\t **/\n\tBuffer.alloc = function (size, fill, encoding) {\n\t return alloc(size, fill, encoding)\n\t};\n\n\tfunction allocUnsafe (size) {\n\t assertSize(size);\n\t return createBuffer(size < 0 ? 0 : checked(size) | 0)\n\t}\n\n\t/**\n\t * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n\t * */\n\tBuffer.allocUnsafe = function (size) {\n\t return allocUnsafe(size)\n\t};\n\t/**\n\t * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n\t */\n\tBuffer.allocUnsafeSlow = function (size) {\n\t return allocUnsafe(size)\n\t};\n\n\tfunction fromString (string, encoding) {\n\t if (typeof encoding !== 'string' || encoding === '') {\n\t encoding = 'utf8';\n\t }\n\n\t if (!Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\n\t const length = byteLength(string, encoding) | 0;\n\t let buf = createBuffer(length);\n\n\t const actual = buf.write(string, encoding);\n\n\t if (actual !== length) {\n\t // Writing a hex string, for example, that contains invalid characters will\n\t // cause everything after the first invalid character to be ignored. (e.g.\n\t // 'abxxcd' will be treated as 'ab')\n\t buf = buf.slice(0, actual);\n\t }\n\n\t return buf\n\t}\n\n\tfunction fromArrayLike (array) {\n\t const length = array.length < 0 ? 0 : checked(array.length) | 0;\n\t const buf = createBuffer(length);\n\t for (let i = 0; i < length; i += 1) {\n\t buf[i] = array[i] & 255;\n\t }\n\t return buf\n\t}\n\n\tfunction fromArrayView (arrayView) {\n\t if (isInstance(arrayView, GlobalUint8Array)) {\n\t const copy = new GlobalUint8Array(arrayView);\n\t return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n\t }\n\t return fromArrayLike(arrayView)\n\t}\n\n\tfunction fromArrayBuffer (array, byteOffset, length) {\n\t if (byteOffset < 0 || array.byteLength < byteOffset) {\n\t throw new RangeError('\"offset\" is outside of buffer bounds')\n\t }\n\n\t if (array.byteLength < byteOffset + (length || 0)) {\n\t throw new RangeError('\"length\" is outside of buffer bounds')\n\t }\n\n\t let buf;\n\t if (byteOffset === undefined && length === undefined) {\n\t buf = new GlobalUint8Array(array);\n\t } else if (length === undefined) {\n\t buf = new GlobalUint8Array(array, byteOffset);\n\t } else {\n\t buf = new GlobalUint8Array(array, byteOffset, length);\n\t }\n\n\t // Return an augmented `Uint8Array` instance\n\t Object.setPrototypeOf(buf, Buffer.prototype);\n\n\t return buf\n\t}\n\n\tfunction fromObject (obj) {\n\t if (Buffer.isBuffer(obj)) {\n\t const len = checked(obj.length) | 0;\n\t const buf = createBuffer(len);\n\n\t if (buf.length === 0) {\n\t return buf\n\t }\n\n\t obj.copy(buf, 0, 0, len);\n\t return buf\n\t }\n\n\t if (obj.length !== undefined) {\n\t if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n\t return createBuffer(0)\n\t }\n\t return fromArrayLike(obj)\n\t }\n\n\t if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n\t return fromArrayLike(obj.data)\n\t }\n\t}\n\n\tfunction checked (length) {\n\t // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n\t // length is NaN (which is otherwise coerced to zero.)\n\t if (length >= K_MAX_LENGTH) {\n\t throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n\t 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n\t }\n\t return length | 0\n\t}\n\n\tfunction SlowBuffer (length) {\n\t if (+length != length) { // eslint-disable-line eqeqeq\n\t length = 0;\n\t }\n\t return Buffer.alloc(+length)\n\t}\n\n\tBuffer.isBuffer = function isBuffer (b) {\n\t return b != null && b._isBuffer === true &&\n\t b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n\t};\n\n\tBuffer.compare = function compare (a, b) {\n\t if (isInstance(a, GlobalUint8Array)) a = Buffer.from(a, a.offset, a.byteLength);\n\t if (isInstance(b, GlobalUint8Array)) b = Buffer.from(b, b.offset, b.byteLength);\n\t if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n\t throw new TypeError(\n\t 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n\t )\n\t }\n\n\t if (a === b) return 0\n\n\t let x = a.length;\n\t let y = b.length;\n\n\t for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n\t if (a[i] !== b[i]) {\n\t x = a[i];\n\t y = b[i];\n\t break\n\t }\n\t }\n\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t};\n\n\tBuffer.isEncoding = function isEncoding (encoding) {\n\t switch (String(encoding).toLowerCase()) {\n\t case 'hex':\n\t case 'utf8':\n\t case 'utf-8':\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t case 'base64':\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return true\n\t default:\n\t return false\n\t }\n\t};\n\n\tBuffer.concat = function concat (list, length) {\n\t if (!Array.isArray(list)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t }\n\n\t if (list.length === 0) {\n\t return Buffer.alloc(0)\n\t }\n\n\t let i;\n\t if (length === undefined) {\n\t length = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t length += list[i].length;\n\t }\n\t }\n\n\t const buffer = Buffer.allocUnsafe(length);\n\t let pos = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t let buf = list[i];\n\t if (isInstance(buf, GlobalUint8Array)) {\n\t if (pos + buf.length > buffer.length) {\n\t if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf);\n\t buf.copy(buffer, pos);\n\t } else {\n\t GlobalUint8Array.prototype.set.call(\n\t buffer,\n\t buf,\n\t pos\n\t );\n\t }\n\t } else if (!Buffer.isBuffer(buf)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t } else {\n\t buf.copy(buffer, pos);\n\t }\n\t pos += buf.length;\n\t }\n\t return buffer\n\t};\n\n\tfunction byteLength (string, encoding) {\n\t if (Buffer.isBuffer(string)) {\n\t return string.length\n\t }\n\t if (GlobalArrayBuffer.isView(string) || isInstance(string, GlobalArrayBuffer)) {\n\t return string.byteLength\n\t }\n\t if (typeof string !== 'string') {\n\t throw new TypeError(\n\t 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n\t 'Received type ' + typeof string\n\t )\n\t }\n\n\t const len = string.length;\n\t const mustMatch = (arguments.length > 2 && arguments[2] === true);\n\t if (!mustMatch && len === 0) return 0\n\n\t // Use a for loop to avoid recursion\n\t let loweredCase = false;\n\t for (;;) {\n\t switch (encoding) {\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t return len\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8ToBytes(string).length\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return len * 2\n\t case 'hex':\n\t return len >>> 1\n\t case 'base64':\n\t return base64ToBytes(string).length\n\t default:\n\t if (loweredCase) {\n\t return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n\t }\n\t encoding = ('' + encoding).toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t}\n\tBuffer.byteLength = byteLength;\n\n\tfunction slowToString (encoding, start, end) {\n\t let loweredCase = false;\n\n\t // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n\t // property of a typed array.\n\n\t // This behaves neither like String nor Uint8Array in that we set start/end\n\t // to their upper/lower bounds if the value passed is out of range.\n\t // undefined is handled specially as per ECMA-262 6th Edition,\n\t // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n\t if (start === undefined || start < 0) {\n\t start = 0;\n\t }\n\t // Return early if start > this.length. Done here to prevent potential uint32\n\t // coercion fail below.\n\t if (start > this.length) {\n\t return ''\n\t }\n\n\t if (end === undefined || end > this.length) {\n\t end = this.length;\n\t }\n\n\t if (end <= 0) {\n\t return ''\n\t }\n\n\t // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n\t end >>>= 0;\n\t start >>>= 0;\n\n\t if (end <= start) {\n\t return ''\n\t }\n\n\t if (!encoding) encoding = 'utf8';\n\n\t while (true) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexSlice(this, start, end)\n\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Slice(this, start, end)\n\n\t case 'ascii':\n\t return asciiSlice(this, start, end)\n\n\t case 'latin1':\n\t case 'binary':\n\t return latin1Slice(this, start, end)\n\n\t case 'base64':\n\t return base64Slice(this, start, end)\n\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return utf16leSlice(this, start, end)\n\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = (encoding + '').toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t}\n\n\t// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n\t// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n\t// reliably in a browserify context because there could be multiple different\n\t// copies of the 'buffer' package in use. This method works even for Buffer\n\t// instances that were created from another copy of the `buffer` package.\n\t// See: https://github.com/feross/buffer/issues/154\n\tBuffer.prototype._isBuffer = true;\n\n\tfunction swap (b, n, m) {\n\t const i = b[n];\n\t b[n] = b[m];\n\t b[m] = i;\n\t}\n\n\tBuffer.prototype.swap16 = function swap16 () {\n\t const len = this.length;\n\t if (len % 2 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 16-bits')\n\t }\n\t for (let i = 0; i < len; i += 2) {\n\t swap(this, i, i + 1);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.swap32 = function swap32 () {\n\t const len = this.length;\n\t if (len % 4 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 32-bits')\n\t }\n\t for (let i = 0; i < len; i += 4) {\n\t swap(this, i, i + 3);\n\t swap(this, i + 1, i + 2);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.swap64 = function swap64 () {\n\t const len = this.length;\n\t if (len % 8 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 64-bits')\n\t }\n\t for (let i = 0; i < len; i += 8) {\n\t swap(this, i, i + 7);\n\t swap(this, i + 1, i + 6);\n\t swap(this, i + 2, i + 5);\n\t swap(this, i + 3, i + 4);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.toString = function toString () {\n\t const length = this.length;\n\t if (length === 0) return ''\n\t if (arguments.length === 0) return utf8Slice(this, 0, length)\n\t return slowToString.apply(this, arguments)\n\t};\n\n\tBuffer.prototype.toLocaleString = Buffer.prototype.toString;\n\n\tBuffer.prototype.equals = function equals (b) {\n\t if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n\t if (this === b) return true\n\t return Buffer.compare(this, b) === 0\n\t};\n\n\tBuffer.prototype.inspect = function inspect () {\n\t let str = '';\n\t const max = exports.INSPECT_MAX_BYTES;\n\t str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim();\n\t if (this.length > max) str += ' ... ';\n\t return ''\n\t};\n\tif (customInspectSymbol) {\n\t Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect;\n\t}\n\n\tBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n\t if (isInstance(target, GlobalUint8Array)) {\n\t target = Buffer.from(target, target.offset, target.byteLength);\n\t }\n\t if (!Buffer.isBuffer(target)) {\n\t throw new TypeError(\n\t 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n\t 'Received type ' + (typeof target)\n\t )\n\t }\n\n\t if (start === undefined) {\n\t start = 0;\n\t }\n\t if (end === undefined) {\n\t end = target ? target.length : 0;\n\t }\n\t if (thisStart === undefined) {\n\t thisStart = 0;\n\t }\n\t if (thisEnd === undefined) {\n\t thisEnd = this.length;\n\t }\n\n\t if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n\t throw new RangeError('out of range index')\n\t }\n\n\t if (thisStart >= thisEnd && start >= end) {\n\t return 0\n\t }\n\t if (thisStart >= thisEnd) {\n\t return -1\n\t }\n\t if (start >= end) {\n\t return 1\n\t }\n\n\t start >>>= 0;\n\t end >>>= 0;\n\t thisStart >>>= 0;\n\t thisEnd >>>= 0;\n\n\t if (this === target) return 0\n\n\t let x = thisEnd - thisStart;\n\t let y = end - start;\n\t const len = Math.min(x, y);\n\n\t const thisCopy = this.slice(thisStart, thisEnd);\n\t const targetCopy = target.slice(start, end);\n\n\t for (let i = 0; i < len; ++i) {\n\t if (thisCopy[i] !== targetCopy[i]) {\n\t x = thisCopy[i];\n\t y = targetCopy[i];\n\t break\n\t }\n\t }\n\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t};\n\n\t// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n\t// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n\t//\n\t// Arguments:\n\t// - buffer - a Buffer to search\n\t// - val - a string, Buffer, or number\n\t// - byteOffset - an index into `buffer`; will be clamped to an int32\n\t// - encoding - an optional encoding, relevant is val is a string\n\t// - dir - true for indexOf, false for lastIndexOf\n\tfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n\t // Empty buffer means no match\n\t if (buffer.length === 0) return -1\n\n\t // Normalize byteOffset\n\t if (typeof byteOffset === 'string') {\n\t encoding = byteOffset;\n\t byteOffset = 0;\n\t } else if (byteOffset > 0x7fffffff) {\n\t byteOffset = 0x7fffffff;\n\t } else if (byteOffset < -0x80000000) {\n\t byteOffset = -0x80000000;\n\t }\n\t byteOffset = +byteOffset; // Coerce to Number.\n\t if (numberIsNaN(byteOffset)) {\n\t // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n\t byteOffset = dir ? 0 : (buffer.length - 1);\n\t }\n\n\t // Normalize byteOffset: negative offsets start from the end of the buffer\n\t if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\t if (byteOffset >= buffer.length) {\n\t if (dir) return -1\n\t else byteOffset = buffer.length - 1;\n\t } else if (byteOffset < 0) {\n\t if (dir) byteOffset = 0;\n\t else return -1\n\t }\n\n\t // Normalize val\n\t if (typeof val === 'string') {\n\t val = Buffer.from(val, encoding);\n\t }\n\n\t // Finally, search either indexOf (if dir is true) or lastIndexOf\n\t if (Buffer.isBuffer(val)) {\n\t // Special case: looking for empty string/buffer always fails\n\t if (val.length === 0) {\n\t return -1\n\t }\n\t return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n\t } else if (typeof val === 'number') {\n\t val = val & 0xFF; // Search for a byte value [0-255]\n\t if (typeof GlobalUint8Array.prototype.indexOf === 'function') {\n\t if (dir) {\n\t return GlobalUint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n\t } else {\n\t return GlobalUint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n\t }\n\t }\n\t return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n\t }\n\n\t throw new TypeError('val must be string, number or Buffer')\n\t}\n\n\tfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n\t let indexSize = 1;\n\t let arrLength = arr.length;\n\t let valLength = val.length;\n\n\t if (encoding !== undefined) {\n\t encoding = String(encoding).toLowerCase();\n\t if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n\t encoding === 'utf16le' || encoding === 'utf-16le') {\n\t if (arr.length < 2 || val.length < 2) {\n\t return -1\n\t }\n\t indexSize = 2;\n\t arrLength /= 2;\n\t valLength /= 2;\n\t byteOffset /= 2;\n\t }\n\t }\n\n\t function read (buf, i) {\n\t if (indexSize === 1) {\n\t return buf[i]\n\t } else {\n\t return buf.readUInt16BE(i * indexSize)\n\t }\n\t }\n\n\t let i;\n\t if (dir) {\n\t let foundIndex = -1;\n\t for (i = byteOffset; i < arrLength; i++) {\n\t if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n\t if (foundIndex === -1) foundIndex = i;\n\t if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n\t } else {\n\t if (foundIndex !== -1) i -= i - foundIndex;\n\t foundIndex = -1;\n\t }\n\t }\n\t } else {\n\t if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n\t for (i = byteOffset; i >= 0; i--) {\n\t let found = true;\n\t for (let j = 0; j < valLength; j++) {\n\t if (read(arr, i + j) !== read(val, j)) {\n\t found = false;\n\t break\n\t }\n\t }\n\t if (found) return i\n\t }\n\t }\n\n\t return -1\n\t}\n\n\tBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n\t return this.indexOf(val, byteOffset, encoding) !== -1\n\t};\n\n\tBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n\t};\n\n\tBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n\t};\n\n\tfunction hexWrite (buf, string, offset, length) {\n\t offset = Number(offset) || 0;\n\t const remaining = buf.length - offset;\n\t if (!length) {\n\t length = remaining;\n\t } else {\n\t length = Number(length);\n\t if (length > remaining) {\n\t length = remaining;\n\t }\n\t }\n\n\t const strLen = string.length;\n\n\t if (length > strLen / 2) {\n\t length = strLen / 2;\n\t }\n\t let i;\n\t for (i = 0; i < length; ++i) {\n\t const parsed = parseInt(string.substr(i * 2, 2), 16);\n\t if (numberIsNaN(parsed)) return i\n\t buf[offset + i] = parsed;\n\t }\n\t return i\n\t}\n\n\tfunction utf8Write (buf, string, offset, length) {\n\t return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tfunction asciiWrite (buf, string, offset, length) {\n\t return blitBuffer(asciiToBytes(string), buf, offset, length)\n\t}\n\n\tfunction base64Write (buf, string, offset, length) {\n\t return blitBuffer(base64ToBytes(string), buf, offset, length)\n\t}\n\n\tfunction ucs2Write (buf, string, offset, length) {\n\t return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tBuffer.prototype.write = function write (string, offset, length, encoding) {\n\t // Buffer#write(string)\n\t if (offset === undefined) {\n\t encoding = 'utf8';\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, encoding)\n\t } else if (length === undefined && typeof offset === 'string') {\n\t encoding = offset;\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, offset[, length][, encoding])\n\t } else if (isFinite(offset)) {\n\t offset = offset >>> 0;\n\t if (isFinite(length)) {\n\t length = length >>> 0;\n\t if (encoding === undefined) encoding = 'utf8';\n\t } else {\n\t encoding = length;\n\t length = undefined;\n\t }\n\t } else {\n\t throw new Error(\n\t 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n\t )\n\t }\n\n\t const remaining = this.length - offset;\n\t if (length === undefined || length > remaining) length = remaining;\n\n\t if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n\t throw new RangeError('Attempt to write outside buffer bounds')\n\t }\n\n\t if (!encoding) encoding = 'utf8';\n\n\t let loweredCase = false;\n\t for (;;) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexWrite(this, string, offset, length)\n\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Write(this, string, offset, length)\n\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t return asciiWrite(this, string, offset, length)\n\n\t case 'base64':\n\t // Warning: maxLength not taken into account in base64Write\n\t return base64Write(this, string, offset, length)\n\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return ucs2Write(this, string, offset, length)\n\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = ('' + encoding).toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t};\n\n\tBuffer.prototype.toJSON = function toJSON () {\n\t return {\n\t type: 'Buffer',\n\t data: Array.prototype.slice.call(this._arr || this, 0)\n\t }\n\t};\n\n\tfunction base64Slice (buf, start, end) {\n\t if (start === 0 && end === buf.length) {\n\t return base64.fromByteArray(buf)\n\t } else {\n\t return base64.fromByteArray(buf.slice(start, end))\n\t }\n\t}\n\n\tfunction utf8Slice (buf, start, end) {\n\t end = Math.min(buf.length, end);\n\t const res = [];\n\n\t let i = start;\n\t while (i < end) {\n\t const firstByte = buf[i];\n\t let codePoint = null;\n\t let bytesPerSequence = (firstByte > 0xEF)\n\t ? 4\n\t : (firstByte > 0xDF)\n\t ? 3\n\t : (firstByte > 0xBF)\n\t ? 2\n\t : 1;\n\n\t if (i + bytesPerSequence <= end) {\n\t let secondByte, thirdByte, fourthByte, tempCodePoint;\n\n\t switch (bytesPerSequence) {\n\t case 1:\n\t if (firstByte < 0x80) {\n\t codePoint = firstByte;\n\t }\n\t break\n\t case 2:\n\t secondByte = buf[i + 1];\n\t if ((secondByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F);\n\t if (tempCodePoint > 0x7F) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t break\n\t case 3:\n\t secondByte = buf[i + 1];\n\t thirdByte = buf[i + 2];\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F);\n\t if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t break\n\t case 4:\n\t secondByte = buf[i + 1];\n\t thirdByte = buf[i + 2];\n\t fourthByte = buf[i + 3];\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F);\n\t if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t }\n\t }\n\n\t if (codePoint === null) {\n\t // we did not generate a valid codePoint so insert a\n\t // replacement char (U+FFFD) and advance only 1 byte\n\t codePoint = 0xFFFD;\n\t bytesPerSequence = 1;\n\t } else if (codePoint > 0xFFFF) {\n\t // encode to utf16 (surrogate pair dance)\n\t codePoint -= 0x10000;\n\t res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n\t codePoint = 0xDC00 | codePoint & 0x3FF;\n\t }\n\n\t res.push(codePoint);\n\t i += bytesPerSequence;\n\t }\n\n\t return decodeCodePointsArray(res)\n\t}\n\n\t// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n\t// the lowest limit is Chrome, with 0x10000 args.\n\t// We go 1 magnitude less, for safety\n\tconst MAX_ARGUMENTS_LENGTH = 0x1000;\n\n\tfunction decodeCodePointsArray (codePoints) {\n\t const len = codePoints.length;\n\t if (len <= MAX_ARGUMENTS_LENGTH) {\n\t return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n\t }\n\n\t // Decode in chunks to avoid \"call stack size exceeded\".\n\t let res = '';\n\t let i = 0;\n\t while (i < len) {\n\t res += String.fromCharCode.apply(\n\t String,\n\t codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n\t );\n\t }\n\t return res\n\t}\n\n\tfunction asciiSlice (buf, start, end) {\n\t let ret = '';\n\t end = Math.min(buf.length, end);\n\n\t for (let i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i] & 0x7F);\n\t }\n\t return ret\n\t}\n\n\tfunction latin1Slice (buf, start, end) {\n\t let ret = '';\n\t end = Math.min(buf.length, end);\n\n\t for (let i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i]);\n\t }\n\t return ret\n\t}\n\n\tfunction hexSlice (buf, start, end) {\n\t const len = buf.length;\n\n\t if (!start || start < 0) start = 0;\n\t if (!end || end < 0 || end > len) end = len;\n\n\t let out = '';\n\t for (let i = start; i < end; ++i) {\n\t out += hexSliceLookupTable[buf[i]];\n\t }\n\t return out\n\t}\n\n\tfunction utf16leSlice (buf, start, end) {\n\t const bytes = buf.slice(start, end);\n\t let res = '';\n\t // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n\t for (let i = 0; i < bytes.length - 1; i += 2) {\n\t res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256));\n\t }\n\t return res\n\t}\n\n\tBuffer.prototype.slice = function slice (start, end) {\n\t const len = this.length;\n\t start = ~~start;\n\t end = end === undefined ? len : ~~end;\n\n\t if (start < 0) {\n\t start += len;\n\t if (start < 0) start = 0;\n\t } else if (start > len) {\n\t start = len;\n\t }\n\n\t if (end < 0) {\n\t end += len;\n\t if (end < 0) end = 0;\n\t } else if (end > len) {\n\t end = len;\n\t }\n\n\t if (end < start) end = start;\n\n\t const newBuf = this.subarray(start, end);\n\t // Return an augmented `Uint8Array` instance\n\t Object.setPrototypeOf(newBuf, Buffer.prototype);\n\n\t return newBuf\n\t};\n\n\t/*\n\t * Need to make sure that buffer isn't trying to write out of bounds.\n\t */\n\tfunction checkOffset (offset, ext, length) {\n\t if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n\t if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n\t}\n\n\tBuffer.prototype.readUintLE =\n\tBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let val = this[offset];\n\t let mul = 1;\n\t let i = 0;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul;\n\t }\n\n\t return val\n\t};\n\n\tBuffer.prototype.readUintBE =\n\tBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t checkOffset(offset, byteLength, this.length);\n\t }\n\n\t let val = this[offset + --byteLength];\n\t let mul = 1;\n\t while (byteLength > 0 && (mul *= 0x100)) {\n\t val += this[offset + --byteLength] * mul;\n\t }\n\n\t return val\n\t};\n\n\tBuffer.prototype.readUint8 =\n\tBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t return this[offset]\n\t};\n\n\tBuffer.prototype.readUint16LE =\n\tBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t return this[offset] | (this[offset + 1] << 8)\n\t};\n\n\tBuffer.prototype.readUint16BE =\n\tBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t return (this[offset] << 8) | this[offset + 1]\n\t};\n\n\tBuffer.prototype.readUint32LE =\n\tBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return ((this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16)) +\n\t (this[offset + 3] * 0x1000000)\n\t};\n\n\tBuffer.prototype.readUint32BE =\n\tBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset] * 0x1000000) +\n\t ((this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t this[offset + 3])\n\t};\n\n\tBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const lo = first +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 24;\n\n\t const hi = this[++offset] +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t last * 2 ** 24;\n\n\t return BigInt(lo) + (BigInt(hi) << BigInt(32))\n\t});\n\n\tBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const hi = first * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset];\n\n\t const lo = this[++offset] * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t last;\n\n\t return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n\t});\n\n\tBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let val = this[offset];\n\t let mul = 1;\n\t let i = 0;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul;\n\t }\n\t mul *= 0x80;\n\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t return val\n\t};\n\n\tBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let i = byteLength;\n\t let mul = 1;\n\t let val = this[offset + --i];\n\t while (i > 0 && (mul *= 0x100)) {\n\t val += this[offset + --i] * mul;\n\t }\n\t mul *= 0x80;\n\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t return val\n\t};\n\n\tBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t if (!(this[offset] & 0x80)) return (this[offset])\n\t return ((0xff - this[offset] + 1) * -1)\n\t};\n\n\tBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t const val = this[offset] | (this[offset + 1] << 8);\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t};\n\n\tBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t const val = this[offset + 1] | (this[offset] << 8);\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t};\n\n\tBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16) |\n\t (this[offset + 3] << 24)\n\t};\n\n\tBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset] << 24) |\n\t (this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t (this[offset + 3])\n\t};\n\n\tBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const val = this[offset + 4] +\n\t this[offset + 5] * 2 ** 8 +\n\t this[offset + 6] * 2 ** 16 +\n\t (last << 24); // Overflow\n\n\t return (BigInt(val) << BigInt(32)) +\n\t BigInt(first +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 24)\n\t});\n\n\tBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const val = (first << 24) + // Overflow\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset];\n\n\t return (BigInt(val) << BigInt(32)) +\n\t BigInt(this[++offset] * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t last)\n\t});\n\n\tBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t return ieee754$1.read(this, offset, true, 23, 4)\n\t};\n\n\tBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t return ieee754$1.read(this, offset, false, 23, 4)\n\t};\n\n\tBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t return ieee754$1.read(this, offset, true, 52, 8)\n\t};\n\n\tBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t return ieee754$1.read(this, offset, false, 52, 8)\n\t};\n\n\tfunction checkInt (buf, value, offset, ext, max, min) {\n\t if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n\t if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t}\n\n\tBuffer.prototype.writeUintLE =\n\tBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t }\n\n\t let mul = 1;\n\t let i = 0;\n\t this[offset] = value & 0xFF;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeUintBE =\n\tBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t }\n\n\t let i = byteLength - 1;\n\t let mul = 1;\n\t this[offset + i] = value & 0xFF;\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeUint8 =\n\tBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n\t this[offset] = (value & 0xff);\n\t return offset + 1\n\t};\n\n\tBuffer.prototype.writeUint16LE =\n\tBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeUint16BE =\n\tBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t this[offset] = (value >>> 8);\n\t this[offset + 1] = (value & 0xff);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeUint32LE =\n\tBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t this[offset + 3] = (value >>> 24);\n\t this[offset + 2] = (value >>> 16);\n\t this[offset + 1] = (value >>> 8);\n\t this[offset] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeUint32BE =\n\tBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t this[offset] = (value >>> 24);\n\t this[offset + 1] = (value >>> 16);\n\t this[offset + 2] = (value >>> 8);\n\t this[offset + 3] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n\t checkIntBI(value, min, max, buf, offset, 7);\n\n\t let lo = Number(value & BigInt(0xffffffff));\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t let hi = Number(value >> BigInt(32) & BigInt(0xffffffff));\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t return offset\n\t}\n\n\tfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n\t checkIntBI(value, min, max, buf, offset, 7);\n\n\t let lo = Number(value & BigInt(0xffffffff));\n\t buf[offset + 7] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 6] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 5] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 4] = lo;\n\t let hi = Number(value >> BigInt(32) & BigInt(0xffffffff));\n\t buf[offset + 3] = hi;\n\t hi = hi >> 8;\n\t buf[offset + 2] = hi;\n\t hi = hi >> 8;\n\t buf[offset + 1] = hi;\n\t hi = hi >> 8;\n\t buf[offset] = hi;\n\t return offset + 8\n\t}\n\n\tBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n\t return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n\t return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t const limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t }\n\n\t let i = 0;\n\t let mul = 1;\n\t let sub = 0;\n\t this[offset] = value & 0xFF;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n\t sub = 1;\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t const limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t }\n\n\t let i = byteLength - 1;\n\t let mul = 1;\n\t let sub = 0;\n\t this[offset + i] = value & 0xFF;\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n\t sub = 1;\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n\t if (value < 0) value = 0xff + value + 1;\n\t this[offset] = (value & 0xff);\n\t return offset + 1\n\t};\n\n\tBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\t this[offset] = (value >>> 8);\n\t this[offset + 1] = (value & 0xff);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t this[offset + 2] = (value >>> 16);\n\t this[offset + 3] = (value >>> 24);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\t if (value < 0) value = 0xffffffff + value + 1;\n\t this[offset] = (value >>> 24);\n\t this[offset + 1] = (value >>> 16);\n\t this[offset + 2] = (value >>> 8);\n\t this[offset + 3] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n\t return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n\t return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n\t});\n\n\tfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t if (offset < 0) throw new RangeError('Index out of range')\n\t}\n\n\tfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 4);\n\t }\n\t ieee754$1.write(buf, value, offset, littleEndian, 23, 4);\n\t return offset + 4\n\t}\n\n\tBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, true, noAssert)\n\t};\n\n\tBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, false, noAssert)\n\t};\n\n\tfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 8);\n\t }\n\t ieee754$1.write(buf, value, offset, littleEndian, 52, 8);\n\t return offset + 8\n\t}\n\n\tBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, true, noAssert)\n\t};\n\n\tBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, false, noAssert)\n\t};\n\n\t// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\tBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n\t if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n\t if (!start) start = 0;\n\t if (!end && end !== 0) end = this.length;\n\t if (targetStart >= target.length) targetStart = target.length;\n\t if (!targetStart) targetStart = 0;\n\t if (end > 0 && end < start) end = start;\n\n\t // Copy 0 bytes; we're done\n\t if (end === start) return 0\n\t if (target.length === 0 || this.length === 0) return 0\n\n\t // Fatal error conditions\n\t if (targetStart < 0) {\n\t throw new RangeError('targetStart out of bounds')\n\t }\n\t if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n\t if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n\t // Are we oob?\n\t if (end > this.length) end = this.length;\n\t if (target.length - targetStart < end - start) {\n\t end = target.length - targetStart + start;\n\t }\n\n\t const len = end - start;\n\n\t if (this === target && typeof GlobalUint8Array.prototype.copyWithin === 'function') {\n\t // Use built-in when available, missing from IE11\n\t this.copyWithin(targetStart, start, end);\n\t } else {\n\t GlobalUint8Array.prototype.set.call(\n\t target,\n\t this.subarray(start, end),\n\t targetStart\n\t );\n\t }\n\n\t return len\n\t};\n\n\t// Usage:\n\t// buffer.fill(number[, offset[, end]])\n\t// buffer.fill(buffer[, offset[, end]])\n\t// buffer.fill(string[, offset[, end]][, encoding])\n\tBuffer.prototype.fill = function fill (val, start, end, encoding) {\n\t // Handle string cases:\n\t if (typeof val === 'string') {\n\t if (typeof start === 'string') {\n\t encoding = start;\n\t start = 0;\n\t end = this.length;\n\t } else if (typeof end === 'string') {\n\t encoding = end;\n\t end = this.length;\n\t }\n\t if (encoding !== undefined && typeof encoding !== 'string') {\n\t throw new TypeError('encoding must be a string')\n\t }\n\t if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\t if (val.length === 1) {\n\t const code = val.charCodeAt(0);\n\t if ((encoding === 'utf8' && code < 128) ||\n\t encoding === 'latin1') {\n\t // Fast path: If `val` fits into a single byte, use that numeric value.\n\t val = code;\n\t }\n\t }\n\t } else if (typeof val === 'number') {\n\t val = val & 255;\n\t } else if (typeof val === 'boolean') {\n\t val = Number(val);\n\t }\n\n\t // Invalid ranges are not set to a default, so can range check early.\n\t if (start < 0 || this.length < start || this.length < end) {\n\t throw new RangeError('Out of range index')\n\t }\n\n\t if (end <= start) {\n\t return this\n\t }\n\n\t start = start >>> 0;\n\t end = end === undefined ? this.length : end >>> 0;\n\n\t if (!val) val = 0;\n\n\t let i;\n\t if (typeof val === 'number') {\n\t for (i = start; i < end; ++i) {\n\t this[i] = val;\n\t }\n\t } else {\n\t const bytes = Buffer.isBuffer(val)\n\t ? val\n\t : Buffer.from(val, encoding);\n\t const len = bytes.length;\n\t if (len === 0) {\n\t throw new TypeError('The value \"' + val +\n\t '\" is invalid for argument \"value\"')\n\t }\n\t for (i = 0; i < end - start; ++i) {\n\t this[i + start] = bytes[i % len];\n\t }\n\t }\n\n\t return this\n\t};\n\n\t// CUSTOM ERRORS\n\t// =============\n\n\t// Simplified versions from Node, changed for Buffer-only usage\n\tconst errors = {};\n\tfunction E (sym, getMessage, Base) {\n\t errors[sym] = class NodeError extends Base {\n\t constructor () {\n\t super();\n\n\t Object.defineProperty(this, 'message', {\n\t value: getMessage.apply(this, arguments),\n\t writable: true,\n\t configurable: true\n\t });\n\n\t // Add the error code to the name to include it in the stack trace.\n\t this.name = `${this.name} [${sym}]`;\n\t // Access the stack to generate the error message including the error code\n\t // from the name.\n\t this.stack; // eslint-disable-line no-unused-expressions\n\t // Reset the name to the actual name.\n\t delete this.name;\n\t }\n\n\t get code () {\n\t return sym\n\t }\n\n\t set code (value) {\n\t Object.defineProperty(this, 'code', {\n\t configurable: true,\n\t enumerable: true,\n\t value,\n\t writable: true\n\t });\n\t }\n\n\t toString () {\n\t return `${this.name} [${sym}]: ${this.message}`\n\t }\n\t };\n\t}\n\n\tE('ERR_BUFFER_OUT_OF_BOUNDS',\n\t function (name) {\n\t if (name) {\n\t return `${name} is outside of buffer bounds`\n\t }\n\n\t return 'Attempt to access memory outside buffer bounds'\n\t }, RangeError);\n\tE('ERR_INVALID_ARG_TYPE',\n\t function (name, actual) {\n\t return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n\t }, TypeError);\n\tE('ERR_OUT_OF_RANGE',\n\t function (str, range, input) {\n\t let msg = `The value of \"${str}\" is out of range.`;\n\t let received = input;\n\t if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n\t received = addNumericalSeparator(String(input));\n\t } else if (typeof input === 'bigint') {\n\t received = String(input);\n\t if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n\t received = addNumericalSeparator(received);\n\t }\n\t received += 'n';\n\t }\n\t msg += ` It must be ${range}. Received ${received}`;\n\t return msg\n\t }, RangeError);\n\n\tfunction addNumericalSeparator (val) {\n\t let res = '';\n\t let i = val.length;\n\t const start = val[0] === '-' ? 1 : 0;\n\t for (; i >= start + 4; i -= 3) {\n\t res = `_${val.slice(i - 3, i)}${res}`;\n\t }\n\t return `${val.slice(0, i)}${res}`\n\t}\n\n\t// CHECK FUNCTIONS\n\t// ===============\n\n\tfunction checkBounds (buf, offset, byteLength) {\n\t validateNumber(offset, 'offset');\n\t if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n\t boundsError(offset, buf.length - (byteLength + 1));\n\t }\n\t}\n\n\tfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n\t if (value > max || value < min) {\n\t const n = typeof min === 'bigint' ? 'n' : '';\n\t let range;\n\t if (byteLength > 3) {\n\t if (min === 0 || min === BigInt(0)) {\n\t range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`;\n\t } else {\n\t range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n\t `${(byteLength + 1) * 8 - 1}${n}`;\n\t }\n\t } else {\n\t range = `>= ${min}${n} and <= ${max}${n}`;\n\t }\n\t throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n\t }\n\t checkBounds(buf, offset, byteLength);\n\t}\n\n\tfunction validateNumber (value, name) {\n\t if (typeof value !== 'number') {\n\t throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n\t }\n\t}\n\n\tfunction boundsError (value, length, type) {\n\t if (Math.floor(value) !== value) {\n\t validateNumber(value, type);\n\t throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n\t }\n\n\t if (length < 0) {\n\t throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n\t }\n\n\t throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n\t `>= ${type ? 1 : 0} and <= ${length}`,\n\t value)\n\t}\n\n\t// HELPER FUNCTIONS\n\t// ================\n\n\tconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n\n\tfunction base64clean (str) {\n\t // Node takes equal signs as end of the Base64 encoding\n\t str = str.split('=')[0];\n\t // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n\t str = str.trim().replace(INVALID_BASE64_RE, '');\n\t // Node converts strings with length < 2 to ''\n\t if (str.length < 2) return ''\n\t // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\t while (str.length % 4 !== 0) {\n\t str = str + '=';\n\t }\n\t return str\n\t}\n\n\tfunction utf8ToBytes (string, units) {\n\t units = units || Infinity;\n\t let codePoint;\n\t const length = string.length;\n\t let leadSurrogate = null;\n\t const bytes = [];\n\n\t for (let i = 0; i < length; ++i) {\n\t codePoint = string.charCodeAt(i);\n\n\t // is surrogate component\n\t if (codePoint > 0xD7FF && codePoint < 0xE000) {\n\t // last char was a lead\n\t if (!leadSurrogate) {\n\t // no lead yet\n\t if (codePoint > 0xDBFF) {\n\t // unexpected trail\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t } else if (i + 1 === length) {\n\t // unpaired lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t }\n\n\t // valid lead\n\t leadSurrogate = codePoint;\n\n\t continue\n\t }\n\n\t // 2 leads in a row\n\t if (codePoint < 0xDC00) {\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t leadSurrogate = codePoint;\n\t continue\n\t }\n\n\t // valid surrogate pair\n\t codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n\t } else if (leadSurrogate) {\n\t // valid bmp char, but last char was a lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t }\n\n\t leadSurrogate = null;\n\n\t // encode utf8\n\t if (codePoint < 0x80) {\n\t if ((units -= 1) < 0) break\n\t bytes.push(codePoint);\n\t } else if (codePoint < 0x800) {\n\t if ((units -= 2) < 0) break\n\t bytes.push(\n\t codePoint >> 0x6 | 0xC0,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x10000) {\n\t if ((units -= 3) < 0) break\n\t bytes.push(\n\t codePoint >> 0xC | 0xE0,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x110000) {\n\t if ((units -= 4) < 0) break\n\t bytes.push(\n\t codePoint >> 0x12 | 0xF0,\n\t codePoint >> 0xC & 0x3F | 0x80,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else {\n\t throw new Error('Invalid code point')\n\t }\n\t }\n\n\t return bytes\n\t}\n\n\tfunction asciiToBytes (str) {\n\t const byteArray = [];\n\t for (let i = 0; i < str.length; ++i) {\n\t // Node's code seems to be doing this and not & 0x7F..\n\t byteArray.push(str.charCodeAt(i) & 0xFF);\n\t }\n\t return byteArray\n\t}\n\n\tfunction utf16leToBytes (str, units) {\n\t let c, hi, lo;\n\t const byteArray = [];\n\t for (let i = 0; i < str.length; ++i) {\n\t if ((units -= 2) < 0) break\n\n\t c = str.charCodeAt(i);\n\t hi = c >> 8;\n\t lo = c % 256;\n\t byteArray.push(lo);\n\t byteArray.push(hi);\n\t }\n\n\t return byteArray\n\t}\n\n\tfunction base64ToBytes (str) {\n\t return base64.toByteArray(base64clean(str))\n\t}\n\n\tfunction blitBuffer (src, dst, offset, length) {\n\t let i;\n\t for (i = 0; i < length; ++i) {\n\t if ((i + offset >= dst.length) || (i >= src.length)) break\n\t dst[i + offset] = src[i];\n\t }\n\t return i\n\t}\n\n\t// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n\t// the `instanceof` check but they should be treated as of that type.\n\t// See: https://github.com/feross/buffer/issues/166\n\tfunction isInstance (obj, type) {\n\t return obj instanceof type ||\n\t (obj != null && obj.constructor != null && obj.constructor.name != null &&\n\t obj.constructor.name === type.name)\n\t}\n\tfunction numberIsNaN (obj) {\n\t // For IE11 support\n\t return obj !== obj // eslint-disable-line no-self-compare\n\t}\n\n\t// Create lookup table for `toString('hex')`\n\t// See: https://github.com/feross/buffer/issues/219\n\tconst hexSliceLookupTable = (function () {\n\t const alphabet = '0123456789abcdef';\n\t const table = new Array(256);\n\t for (let i = 0; i < 16; ++i) {\n\t const i16 = i * 16;\n\t for (let j = 0; j < 16; ++j) {\n\t table[i16 + j] = alphabet[i] + alphabet[j];\n\t }\n\t }\n\t return table\n\t})();\n\n\t// Return not function with Error if BigInt not supported\n\tfunction defineBigIntMethod (fn) {\n\t return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n\t}\n\n\tfunction BufferBigIntNotDefined () {\n\t throw new Error('BigInt not supported')\n\t} \n} (buffer));\n\nconst Buffer = buffer.Buffer;\n\nconst Blob = buffer.Blob;\nconst BlobOptions = buffer.BlobOptions;\nconst Buffer$1 = buffer.Buffer;\nconst File = buffer.File;\nconst FileOptions = buffer.FileOptions;\nconst INSPECT_MAX_BYTES = buffer.INSPECT_MAX_BYTES;\nconst SlowBuffer = buffer.SlowBuffer;\nconst TranscodeEncoding = buffer.TranscodeEncoding;\nconst atob = buffer.atob;\nconst btoa = buffer.btoa;\nconst constants = buffer.constants;\nconst isAscii = buffer.isAscii;\nconst isUtf8 = buffer.isUtf8;\nconst kMaxLength = buffer.kMaxLength;\nconst kStringMaxLength = buffer.kStringMaxLength;\nconst resolveObjectURL = buffer.resolveObjectURL;\nconst transcode = buffer.transcode;\nexport { Blob, BlobOptions, Buffer$1 as Buffer, File, FileOptions, INSPECT_MAX_BYTES, SlowBuffer, TranscodeEncoding, atob, btoa, constants, Buffer as default, isAscii, isUtf8, kMaxLength, kStringMaxLength, resolveObjectURL, transcode };\n//# sourceMappingURL=index.js.map\n","/*\n *\n * Hedera Wallet Connect\n *\n * Copyright (C) 2023 Hedera Hashgraph, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n/**\n * Enum representing different Hedera network chain IDs.\n *\n * @see {@link https://github.com/hashgraph/hedera-improvement-proposal/blob/main/HIP/hip-820.md#specification | HIP-820 Specification}\n */\nexport var HederaChainId;\n(function (HederaChainId) {\n HederaChainId[\"Mainnet\"] = \"hedera:mainnet\";\n HederaChainId[\"Testnet\"] = \"hedera:testnet\";\n HederaChainId[\"Previewnet\"] = \"hedera:previewnet\";\n HederaChainId[\"Devnet\"] = \"hedera:devnet\";\n})(HederaChainId || (HederaChainId = {}));\n","/*\n *\n * Hedera Wallet Connect\n *\n * Copyright (C) 2023 Hedera Hashgraph, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n/**\n * Represents different events related to a Hedera session.\n */\nexport var HederaSessionEvent;\n(function (HederaSessionEvent) {\n HederaSessionEvent[\"AccountsChanged\"] = \"accountsChanged\";\n HederaSessionEvent[\"ChainChanged\"] = \"chainChanged\";\n})(HederaSessionEvent || (HederaSessionEvent = {}));\n","/*\n *\n * Hedera Wallet Connect\n *\n * Copyright (C) 2023 Hedera Hashgraph, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n/**\n * Enum representing different JSON-RPC methods related to Hedera.\n * The methods are ordered alphabetically for ease of use and readability.\n */\nexport var HederaJsonRpcMethod;\n(function (HederaJsonRpcMethod) {\n HederaJsonRpcMethod[\"GetNodeAddresses\"] = \"hedera_getNodeAddresses\";\n HederaJsonRpcMethod[\"ExecuteTransaction\"] = \"hedera_executeTransaction\";\n HederaJsonRpcMethod[\"SignMessage\"] = \"hedera_signMessage\";\n HederaJsonRpcMethod[\"SignAndExecuteQuery\"] = \"hedera_signAndExecuteQuery\";\n HederaJsonRpcMethod[\"SignAndExecuteTransaction\"] = \"hedera_signAndExecuteTransaction\";\n HederaJsonRpcMethod[\"SignTransaction\"] = \"hedera_signTransaction\";\n})(HederaJsonRpcMethod || (HederaJsonRpcMethod = {}));\n","/*\n *\n * Hedera Wallet Connect\n *\n * Copyright (C) 2023 Hedera Hashgraph, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nimport { Buffer } from 'buffer';\nimport { AccountId, Transaction, LedgerId, Query, } from '@hashgraph/sdk';\nimport { proto } from '@hashgraph/proto';\n/**\n * Freezes a transaction if it is not already frozen. Transactions must\n * be frozen before they can be converted to bytes.\n *\n * @param transaction - Any instance of a class that extends `Transaction`\n */\nexport function freezeTransaction(transaction) {\n if (!transaction.isFrozen())\n transaction.freeze();\n}\n/**\n * Sets default consensus nodes that a transaction will be submitted to. Node Account ID(s)\n * must be set before a transaction can be frozen. If they have already been set, this\n * function will not modify the transaction.\n * @param transaction - any instance of a class that extends `Transaction`\n *\n * @see {@link https://docs.hedera.com/hedera/networks/testnet/testnet-nodes | Full list of Testnet-nodes}\n * @see {@link https://docs.hedera.com/hedera/networks/mainnet/mainnet-nodes | Full list of Mainnet-nodes}\n */\nexport function setDefaultNodeAccountIds(transaction) {\n const isNodeAccountIdNotSet = !transaction.nodeAccountIds || transaction.nodeAccountIds.length === 0;\n if (!transaction.isFrozen() && isNodeAccountIdNotSet)\n transaction.setNodeAccountIds([new AccountId(3), new AccountId(4), new AccountId(5)]);\n}\n/**\n * Converts `Transaction` to a Base64-string.\n *\n * First converts a transaction to bytes and then encodes it as a Base64-string. Will attempt\n * to set default Node Account ID and freeze the transaction before converting.\n * @param transaction - Any instance of a class that extends `Transaction`\n * @returns Base64 encoded representation of the input `Transaction` object\n */\nexport function transactionToBase64String(transaction) {\n setDefaultNodeAccountIds(transaction);\n freezeTransaction(transaction);\n const transactionBytes = transaction.toBytes();\n return Buffer.from(transactionBytes).toString('base64');\n}\n/**\n * Recreates a `Transaction` from a base64 encoded string.\n *\n * Decodes the string to a buffer,\n * then passes to `Transaction.fromBytes`. For greater flexibility, this function uses the base\n * `Transaction` class, but takes an optional type parameter if the type of transaction is known,\n * allowing stronger typeing.\n * @param transactionBytes - a base64 encoded string\n * @returns `Transaction`\n * @example\n * ```ts\n * const txn1 = base64StringToTransaction(bytesString)\n * const txn2 = base64StringToTransaction(bytesString)\n * // txn1 type: Transaction\n * // txn2 type: TransferTransaction\n * ```\n */\nexport function base64StringToTransaction(transactionBytes) {\n const decoded = Buffer.from(transactionBytes, 'base64');\n return Transaction.fromBytes(decoded);\n}\n/**\n * @param transaction - a base64 encoded string of proto.TransactionBody.encode().finish()\n * @returns `string`\n * */\nexport function transactionToTransactionBody(transaction, nodeAccountId) {\n // This is a private function, though provides the capabilities to construct a proto.TransactionBody\n //@ts-ignore\n return transaction._makeTransactionBody(nodeAccountId);\n}\nexport function transactionBodyToBase64String(transactionBody) {\n return Uint8ArrayToBase64String(proto.TransactionBody.encode(transactionBody).finish());\n}\n/**\n * @param transactionList - a proto.TransactionList object\n * @returns `string`\n * */\nexport function transactionListToBase64String(transactionList) {\n const encoded = proto.TransactionList.encode(transactionList).finish();\n return Uint8ArrayToBase64String(encoded);\n}\n/**\n * Extracts the first signature from a proto.SignatureMap object.\n * @param signatureMap - a proto.SignatureMap object\n * @returns `Uint8Array`\n * */\nexport const extractFirstSignature = (signatureMap) => {\n var _a;\n const firstPair = (_a = signatureMap === null || signatureMap === void 0 ? void 0 : signatureMap.sigPair) === null || _a === void 0 ? void 0 : _a[0];\n const firstSignature = (firstPair === null || firstPair === void 0 ? void 0 : firstPair.ed25519) || (firstPair === null || firstPair === void 0 ? void 0 : firstPair.ECDSASecp256k1) || (firstPair === null || firstPair === void 0 ? void 0 : firstPair.ECDSA_384);\n if (!firstSignature) {\n throw new Error('No signatures found in response');\n }\n return firstSignature;\n};\n/**\n * Decodes base64 encoded proto.TransactionBody bytes to a `proto.TransactionBody` object.\n *\n * @param transactionBody - a base64 encoded string of proto.TransactionBody.encode().finish()\n * @returns `Transaction`\n *\n * */\nexport function base64StringToTransactionBody(transactionBody) {\n const bytes = Buffer.from(transactionBody, 'base64');\n return proto.TransactionBody.decode(bytes);\n}\n/**\n * Converts a `proto.SignatureMap` to a base64 encoded string.\n *\n * First converts the `proto.SignatureMap` object to a JSON.\n * Then encodes the JSON to a base64 encoded string.\n * @param signatureMap - The `proto.SignatureMap` object to be converted\n * @returns Base64-encoded string representation of the input `proto.SignatureMap`\n */\nexport function signatureMapToBase64String(signatureMap) {\n const encoded = proto.SignatureMap.encode(signatureMap).finish();\n return Uint8ArrayToBase64String(encoded);\n}\n/**\n * Converts a Base64-encoded string to a `proto.SignatureMap`.\n * @param base64string - Base64-encoded string\n * @returns `proto.SignatureMap`\n */\nexport function base64StringToSignatureMap(base64string) {\n const encoded = Buffer.from(base64string, 'base64');\n return proto.SignatureMap.decode(encoded);\n}\n/**\n * Encodes the binary data represented by the `Uint8Array` to a Base64 string.\n * @param binary - The `Uint8Array` containing binary data to be converted\n * @returns Base64-encoded string representation of the input `Uint8Array`\n */\nexport function Uint8ArrayToBase64String(binary) {\n return Buffer.from(binary).toString('base64');\n}\n/**\n * Encodes the binary data represented by the `Uint8Array` to a UTF-8 string.\n * @param binary - The `Uint8Array` containing binary data to be converted\n * @returns UTF-8 string representation of the input `Uint8Array`\n */\nexport function Uint8ArrayToString(binary) {\n return Buffer.from(binary).toString('utf-8');\n}\n/**\n * Converts a Base64-encoded string to a `Uint8Array`.\n * @param base64string - Base64-encoded string to be converted\n * @returns A `Uint8Array` representing the decoded binary data\n */\nexport function base64StringToUint8Array(base64string) {\n const encoded = Buffer.from(base64string, 'base64');\n return new Uint8Array(encoded);\n}\n/**\n * Converts a `Query` object to a Base64-encoded string.\n * First utilizes the `toBytes` method of the `Query` instance to obtain its binary `Uint8Array` representation.\n * Then encodes the binary `Uint8Array` to a Base64 string representation.\n * @param query - A `Query` object to be converted\n * @returns Base64 encoded representation of the input `Query` object\n */\nexport function queryToBase64String(query) {\n const queryBytes = query.toBytes();\n return Buffer.from(queryBytes).toString('base64');\n}\n/**\n * Recreates a `Query` from a Base64-encoded string. First decodes the string to a buffer,\n * then passes to `Query.fromBytes`. For greater flexibility, this function uses the base\n * `Query` class, but takes an optional type parameter if the type of query is known,\n * allowing stronger typeing.\n * @param bytesString - Base64-encoded string\n * @returns `Query`\n * @example\n * ```ts\n * const query1 = base64StringToQuery(bytesString)\n * const query2 = base64StringToQuery(bytesString)\n * // query1 type: Query\n * // query2 type: AccountInfoQuery\n * ```\n */\nexport function base64StringToQuery(bytesString) {\n const decoded = Buffer.from(bytesString, 'base64');\n return Query.fromBytes(decoded);\n}\nexport function prefixMessageToSign(message) {\n return '\\x19Hedera Signed Message:\\n' + message.length + message;\n}\n/**\n * Incorporates additional data (salt) into the message to alter the output signature.\n * This alteration ensures that passing a transaction here for signing will yield an invalid signature,\n * as the additional data modifies the signature text.\n *\n * @param message - A plain text string\n * @returns An array of Uint8Array containing the prepared message for signing\n */\nexport function stringToSignerMessage(message) {\n return [Buffer.from(prefixMessageToSign(message))];\n}\n/**\n * This implementation expects a plain text string, which is prefixed and then signed by a wallet.\n * Because the spec calls for 1 message to be signed and 1 signer, this function expects a single\n * signature and used the first item in the sigPair array.\n *\n * @param message - A plain text string\n * @param base64SignatureMap - A base64 encoded proto.SignatureMap object\n * @param publicKey - A PublicKey object use to verify the signature\n * @returns boolean - whether or not the first signature in the sigPair is valid for the message and public key\n */\nexport function verifyMessageSignature(message, base64SignatureMap, publicKey) {\n const signatureMap = base64StringToSignatureMap(base64SignatureMap);\n const signature = signatureMap.sigPair[0].ed25519 || signatureMap.sigPair[0].ECDSASecp256k1;\n if (!signature)\n throw new Error('Signature not found in signature map');\n return publicKey.verify(Buffer.from(prefixMessageToSign(message)), signature);\n}\n/**\n * This implementation expects a plain text string, which is prefixed and then signed by a wallet.\n * Because the spec calls for 1 message to be signed and 1 signer, this function expects a single\n * signature and used the first item in the sigPair array.\n *\n * @param message - A plain text string\n * @param signerSignature - A SignerSignature object\n * @param publicKey - A PublicKey object use to verify the signature\n * @returns boolean - whether or not the first signature in the sigPair is valid for the message and public key\n */\nexport function verifySignerSignature(message, signerSignature, publicKey) {\n const signature = signerSignature.signature;\n if (!signature)\n throw new Error('Signature not found in signature map');\n return publicKey.verify(Buffer.from(prefixMessageToSign(message)), signature);\n}\n/**\n *\n * https://github.com/hashgraph/hedera-sdk-js/blob/c78512b1d43eedf1d8bf2926a5b7ed3368fc39d1/src/PublicKey.js#L258\n * a signature pair is a protobuf object with a signature and a public key, it is the responsibility of a dApp to ensure the public key matches the account id\n * @param signerSignatures - An array of `SignerSignature` objects\n * @returns `proto.SignatureMap` object\n */\nexport function signerSignaturesToSignatureMap(signerSignatures) {\n const signatureMap = proto.SignatureMap.create({\n sigPair: signerSignatures.map((s) => s.publicKey._toProtobufSignature(s.signature)),\n });\n return signatureMap;\n}\n/**\n * A mapping of `LedgerId` to EIP chain id and CAIP-2 network name.\n *\n * Structure: [`LedgerId`, `number` (EIP155 chain id), `string` (CAIP-2 chain id)][]\n *\n * @see {@link https://namespaces.chainagnostic.org/hedera/README | Hedera Namespaces}\n * @see {@link https://hips.hedera.com/hip/hip-30 | CAIP Identifiers for the Hedera Network (HIP-30)}\n */\nexport const LEDGER_ID_MAPPINGS = [\n [LedgerId.MAINNET, 295, 'hedera:mainnet'],\n [LedgerId.TESTNET, 296, 'hedera:testnet'],\n [LedgerId.PREVIEWNET, 297, 'hedera:previewnet'],\n [LedgerId.LOCAL_NODE, 298, 'hedera:devnet'],\n];\nconst DEFAULT_LEDGER_ID = LedgerId.LOCAL_NODE;\nconst DEFAULT_EIP = LEDGER_ID_MAPPINGS[3][1];\nconst DEFAULT_CAIP = LEDGER_ID_MAPPINGS[3][2];\n/**\n * Converts an EIP chain id to a LedgerId object.\n *\n * If no mapping is found, returns `LedgerId.LOCAL_NODE`.\n *\n * @param chainId - The EIP chain ID (number) to be converted\n * @returns A `LedgerId` corresponding to the provided chain ID\n * @example\n * ```ts\n * const localnodeLedgerId = EIPChainIdToLedgerId(298)\n * console.log(localnodeLedgerId) // LedgerId.LOCAL_NODE\n * const mainnetLedgerId = EIPChainIdToLedgerId(295)\n * console.log(mainnetLedgerId) // LedgerId.MAINNET\n * ```\n */\nexport function EIPChainIdToLedgerId(chainId) {\n for (let i = 0; i < LEDGER_ID_MAPPINGS.length; i++) {\n const [ledgerId, chainId_] = LEDGER_ID_MAPPINGS[i];\n if (chainId === chainId_) {\n return ledgerId;\n }\n }\n return DEFAULT_LEDGER_ID;\n}\n/**\n * Converts a LedgerId object to an EIP chain id.\n *\n * If no mapping is found, returns the EIP chain id for `LedgerId.LOCAL_NODE`.\n *\n * @param ledgerId - The `LedgerId` object to be converted\n * @returns A `number` representing the EIP chain id for the provided `LedgerId`\n * @example\n * ```ts\n * const previewnetChainId = ledgerIdToEIPChainId(LedgerId.PREVIEWNET)\n * console.log(previewnetChainId) // 297\n * const testnetChainId = ledgerIdToEIPChainId(LedgerId.TESTNET)\n * console.log(testnetChainId) // 296\n * ```\n */\nexport function ledgerIdToEIPChainId(ledgerId) {\n for (let i = 0; i < LEDGER_ID_MAPPINGS.length; i++) {\n const [ledgerId_, chainId] = LEDGER_ID_MAPPINGS[i];\n if (ledgerId === ledgerId_) {\n return chainId;\n }\n }\n return DEFAULT_EIP;\n}\n/**\n * Converts a network name to an EIP chain id.\n * If no mapping is found, returns the EIP chain id for `LedgerId.LOCAL_NODE`.\n *\n * @param networkName - The network name (string) to be converted\n * @returns A `number` representing the EIP chain id for the provided network name\n * @example\n * ```ts\n * const mainnetChainId = networkNameToEIPChainId('mainnet')\n * console.log(mainnetChainId) // 295\n * const testnetChainId = networkNameToEIPChainId('testnet')\n * console.log(mainnetChainId) // 296\n * ```\n */\nexport function networkNameToEIPChainId(networkName) {\n const ledgerId = LedgerId.fromString(networkName.toLowerCase());\n return ledgerIdToEIPChainId(ledgerId);\n}\n/**\n * Converts a CAIP chain id to a LedgerId object.\n *\n * If no mapping is found, returns `LedgerId.LOCAL_NODE`.\n *\n * @param chainId - The CAIP chain ID (string) to be converted\n * @returns A `LedgerId` corresponding to the provided CAIP chain ID\n * @example\n * ```ts\n * const previewnetLedgerId = CAIPChainIdToLedgerId(HederaChainId.Previewnet)\n * console.log(previewnetLedgerId) // LedgerId.PREVIEWNET\n * const testnetLedgerId = CAIPChainIdToLedgerId(HederaChainId.Testnet)\n * console.log(testnetLedgerId) // LedgerId.TESTNET\n * ```\n */\nexport function CAIPChainIdToLedgerId(chainId) {\n for (let i = 0; i < LEDGER_ID_MAPPINGS.length; i++) {\n const [ledgerId, _, chainId_] = LEDGER_ID_MAPPINGS[i];\n if (chainId === chainId_) {\n return ledgerId;\n }\n }\n return DEFAULT_LEDGER_ID;\n}\n/**\n * Converts a LedgerId object to a CAIP chain id.\n *\n * If no mapping is found, returns the CAIP chain id for `LedgerId.LOCAL_NODE`.\n *\n * @param ledgerId - The `LedgerId` object to be converted\n * @returns A `string` representing the CAIP chain id for the provided `LedgerId`\n * @example\n * ```ts\n * const mainnetChainId = ledgerIdToCAIPChainId(HederaChainId.Mainnet)\n * console.log(mainnetChainId) // LedgerId.PREVIEWNET\n * const testnetChainId = ledgerIdToCAIPChainId(HederaChainId.Testnet)\n * console.log(testnetChainId) // LedgerId.TESTNET\n * ```\n */\nexport function ledgerIdToCAIPChainId(ledgerId) {\n for (let i = 0; i < LEDGER_ID_MAPPINGS.length; i++) {\n const [ledgerId_, _, chainId] = LEDGER_ID_MAPPINGS[i];\n if (ledgerId.toString() === ledgerId_.toString()) {\n return chainId;\n }\n }\n return DEFAULT_CAIP;\n}\n/**\n * Converts a network name to a CAIP chain id.\n *\n * If no mapping is found, returns the CAIP chain id for `LedgerId.LOCAL_NODE`.\n *\n * @param networkName - The network name (string) to be converted\n * @returns A `string` representing the CAIP chain id for the provided network name\n * @example\n * ```ts\n * const previewnetChainId = networkNameToCAIPChainId('previewnet')\n * console.log(previewnetChainId) // HederaChainId.Previewnet\n * const devnetChainId = networkNameToCAIPChainId('devnet')\n * console.log(devnetChainId) // HederaChainId.Devnet\n * ```\n */\nexport function networkNameToCAIPChainId(networkName) {\n const ledgerId = LedgerId.fromString(networkName.toLowerCase());\n const chainId = ledgerIdToCAIPChainId(ledgerId);\n return chainId;\n}\n/**\n * Create a `ProposalTypes.RequiredNamespaces` object for a given ledgerId.\n *\n * @param ledgerId - The `LedgerId` for which the namespaces are created\n * @param methods - An array of strings representing methods\n * @param events - An array of strings representing events\n * @returns A `ProposalTypes.RequiredNamespaces` object\n */\nexport const networkNamespaces = (ledgerId, methods, events) => ({\n hedera: {\n chains: [ledgerIdToCAIPChainId(ledgerId)],\n methods,\n events,\n },\n});\n/**\n * Get the account and ledger from a `SessionTypes.Struct` object.\n *\n * @param session - The `SessionTypes.Struct` object containing namespaces\n * @returns `ProposalTypes.RequiredNamespaces` - an array of objects containing network (LedgerId) and account (AccountId)\n */\nexport const accountAndLedgerFromSession = (session) => {\n const hederaNamespace = session.namespaces.hedera;\n if (!hederaNamespace)\n throw new Error('No hedera namespace found');\n return hederaNamespace.accounts.map((account) => {\n const [chain, network, acc] = account.split(':');\n return {\n network: CAIPChainIdToLedgerId(chain + ':' + network),\n account: AccountId.fromString(acc),\n };\n });\n};\n","export var EVENTS;\n(function (EVENTS) {\n EVENTS[\"extensionQuery\"] = \"hedera-extension-query\";\n EVENTS[\"extensionConnect\"] = \"hedera-extension-connect-\";\n EVENTS[\"extensionOpen\"] = \"hedera-extension-open-\";\n EVENTS[\"extensionResponse\"] = \"hedera-extension-response\";\n EVENTS[\"iframeQuery\"] = \"hedera-iframe-query\";\n EVENTS[\"iframeQueryResponse\"] = \"hedera-iframe-response\";\n EVENTS[\"iframeConnect\"] = \"hedera-iframe-connect\";\n})(EVENTS || (EVENTS = {}));\nexport const findExtensions = (onFound) => {\n if (typeof window === 'undefined')\n return;\n window.addEventListener('message', (event) => {\n var _a, _b;\n if (((_a = event === null || event === void 0 ? void 0 : event.data) === null || _a === void 0 ? void 0 : _a.type) == EVENTS.extensionResponse && event.data.metadata) {\n onFound(event.data.metadata, false);\n }\n if (((_b = event === null || event === void 0 ? void 0 : event.data) === null || _b === void 0 ? void 0 : _b.type) == EVENTS.iframeQueryResponse && event.data.metadata) {\n onFound(event.data.metadata, true);\n }\n });\n setTimeout(() => {\n extensionQuery();\n }, 200);\n};\nexport const extensionQuery = () => {\n window.postMessage({ type: EVENTS.extensionQuery }, '*');\n if (window.parent) {\n window.parent.postMessage({ type: EVENTS.iframeQuery }, '*');\n }\n};\nexport const extensionConnect = (id, isIframe, pairingString) => {\n if (isIframe) {\n window.parent.postMessage({ type: EVENTS.iframeConnect, pairingString }, '*');\n return;\n }\n window.postMessage({ type: EVENTS.extensionConnect + id, pairingString }, '*');\n};\nexport const extensionOpen = (id) => {\n window.postMessage({ type: EVENTS.extensionOpen + id }, '*');\n};\n","'use strict'\nfunction tryStringify (o) {\n try { return JSON.stringify(o) } catch(e) { return '\"[Circular]\"' }\n}\n\nmodule.exports = format\n\nfunction format(f, args, opts) {\n var ss = (opts && opts.stringify) || tryStringify\n var offset = 1\n if (typeof f === 'object' && f !== null) {\n var len = args.length + offset\n if (len === 1) return f\n var objects = new Array(len)\n objects[0] = ss(f)\n for (var index = 1; index < len; index++) {\n objects[index] = ss(args[index])\n }\n return objects.join(' ')\n }\n if (typeof f !== 'string') {\n return f\n }\n var argLen = args.length\n if (argLen === 0) return f\n var str = ''\n var a = 1 - offset\n var lastPos = -1\n var flen = (f && f.length) || 0\n for (var i = 0; i < flen;) {\n if (f.charCodeAt(i) === 37 && i + 1 < flen) {\n lastPos = lastPos > -1 ? lastPos : 0\n switch (f.charCodeAt(i + 1)) {\n case 100: // 'd'\n case 102: // 'f'\n if (a >= argLen)\n break\n if (args[a] == null) break\n if (lastPos < i)\n str += f.slice(lastPos, i)\n str += Number(args[a])\n lastPos = i + 2\n i++\n break\n case 105: // 'i'\n if (a >= argLen)\n break\n if (args[a] == null) break\n if (lastPos < i)\n str += f.slice(lastPos, i)\n str += Math.floor(Number(args[a]))\n lastPos = i + 2\n i++\n break\n case 79: // 'O'\n case 111: // 'o'\n case 106: // 'j'\n if (a >= argLen)\n break\n if (args[a] === undefined) break\n if (lastPos < i)\n str += f.slice(lastPos, i)\n var type = typeof args[a]\n if (type === 'string') {\n str += '\\'' + args[a] + '\\''\n lastPos = i + 2\n i++\n break\n }\n if (type === 'function') {\n str += args[a].name || ''\n lastPos = i + 2\n i++\n break\n }\n str += ss(args[a])\n lastPos = i + 2\n i++\n break\n case 115: // 's'\n if (a >= argLen)\n break\n if (lastPos < i)\n str += f.slice(lastPos, i)\n str += String(args[a])\n lastPos = i + 2\n i++\n break\n case 37: // '%'\n if (lastPos < i)\n str += f.slice(lastPos, i)\n str += '%'\n lastPos = i + 2\n i++\n a--\n break\n }\n ++a\n }\n ++i\n }\n if (lastPos === -1)\n return f\n else if (lastPos < flen) {\n str += f.slice(lastPos)\n }\n\n return str\n}\n","'use strict'\n\nconst format = require('quick-format-unescaped')\n\nmodule.exports = pino\n\nconst _console = pfGlobalThisOrFallback().console || {}\nconst stdSerializers = {\n mapHttpRequest: mock,\n mapHttpResponse: mock,\n wrapRequestSerializer: passthrough,\n wrapResponseSerializer: passthrough,\n wrapErrorSerializer: passthrough,\n req: mock,\n res: mock,\n err: asErrValue\n}\n\nfunction shouldSerialize (serialize, serializers) {\n if (Array.isArray(serialize)) {\n const hasToFilter = serialize.filter(function (k) {\n return k !== '!stdSerializers.err'\n })\n return hasToFilter\n } else if (serialize === true) {\n return Object.keys(serializers)\n }\n\n return false\n}\n\nfunction pino (opts) {\n opts = opts || {}\n opts.browser = opts.browser || {}\n\n const transmit = opts.browser.transmit\n if (transmit && typeof transmit.send !== 'function') { throw Error('pino: transmit option must have a send function') }\n\n const proto = opts.browser.write || _console\n if (opts.browser.write) opts.browser.asObject = true\n const serializers = opts.serializers || {}\n const serialize = shouldSerialize(opts.browser.serialize, serializers)\n let stdErrSerialize = opts.browser.serialize\n\n if (\n Array.isArray(opts.browser.serialize) &&\n opts.browser.serialize.indexOf('!stdSerializers.err') > -1\n ) stdErrSerialize = false\n\n const levels = ['error', 'fatal', 'warn', 'info', 'debug', 'trace']\n\n if (typeof proto === 'function') {\n proto.error = proto.fatal = proto.warn =\n proto.info = proto.debug = proto.trace = proto\n }\n if (opts.enabled === false) opts.level = 'silent'\n const level = opts.level || 'info'\n const logger = Object.create(proto)\n if (!logger.log) logger.log = noop\n\n Object.defineProperty(logger, 'levelVal', {\n get: getLevelVal\n })\n Object.defineProperty(logger, 'level', {\n get: getLevel,\n set: setLevel\n })\n\n const setOpts = {\n transmit,\n serialize,\n asObject: opts.browser.asObject,\n levels,\n timestamp: getTimeFunction(opts)\n }\n logger.levels = pino.levels\n logger.level = level\n\n logger.setMaxListeners = logger.getMaxListeners =\n logger.emit = logger.addListener = logger.on =\n logger.prependListener = logger.once =\n logger.prependOnceListener = logger.removeListener =\n logger.removeAllListeners = logger.listeners =\n logger.listenerCount = logger.eventNames =\n logger.write = logger.flush = noop\n logger.serializers = serializers\n logger._serialize = serialize\n logger._stdErrSerialize = stdErrSerialize\n logger.child = child\n\n if (transmit) logger._logEvent = createLogEventShape()\n\n function getLevelVal () {\n return this.level === 'silent'\n ? Infinity\n : this.levels.values[this.level]\n }\n\n function getLevel () {\n return this._level\n }\n function setLevel (level) {\n if (level !== 'silent' && !this.levels.values[level]) {\n throw Error('unknown level ' + level)\n }\n this._level = level\n\n set(setOpts, logger, 'error', 'log') // <-- must stay first\n set(setOpts, logger, 'fatal', 'error')\n set(setOpts, logger, 'warn', 'error')\n set(setOpts, logger, 'info', 'log')\n set(setOpts, logger, 'debug', 'log')\n set(setOpts, logger, 'trace', 'log')\n }\n\n function child (bindings, childOptions) {\n if (!bindings) {\n throw new Error('missing bindings for child Pino')\n }\n childOptions = childOptions || {}\n if (serialize && bindings.serializers) {\n childOptions.serializers = bindings.serializers\n }\n const childOptionsSerializers = childOptions.serializers\n if (serialize && childOptionsSerializers) {\n var childSerializers = Object.assign({}, serializers, childOptionsSerializers)\n var childSerialize = opts.browser.serialize === true\n ? Object.keys(childSerializers)\n : serialize\n delete bindings.serializers\n applySerializers([bindings], childSerialize, childSerializers, this._stdErrSerialize)\n }\n function Child (parent) {\n this._childLevel = (parent._childLevel | 0) + 1\n this.error = bind(parent, bindings, 'error')\n this.fatal = bind(parent, bindings, 'fatal')\n this.warn = bind(parent, bindings, 'warn')\n this.info = bind(parent, bindings, 'info')\n this.debug = bind(parent, bindings, 'debug')\n this.trace = bind(parent, bindings, 'trace')\n if (childSerializers) {\n this.serializers = childSerializers\n this._serialize = childSerialize\n }\n if (transmit) {\n this._logEvent = createLogEventShape(\n [].concat(parent._logEvent.bindings, bindings)\n )\n }\n }\n Child.prototype = this\n return new Child(this)\n }\n return logger\n}\n\npino.levels = {\n values: {\n fatal: 60,\n error: 50,\n warn: 40,\n info: 30,\n debug: 20,\n trace: 10\n },\n labels: {\n 10: 'trace',\n 20: 'debug',\n 30: 'info',\n 40: 'warn',\n 50: 'error',\n 60: 'fatal'\n }\n}\n\npino.stdSerializers = stdSerializers\npino.stdTimeFunctions = Object.assign({}, { nullTime, epochTime, unixTime, isoTime })\n\nfunction set (opts, logger, level, fallback) {\n const proto = Object.getPrototypeOf(logger)\n logger[level] = logger.levelVal > logger.levels.values[level]\n ? noop\n : (proto[level] ? proto[level] : (_console[level] || _console[fallback] || noop))\n\n wrap(opts, logger, level)\n}\n\nfunction wrap (opts, logger, level) {\n if (!opts.transmit && logger[level] === noop) return\n\n logger[level] = (function (write) {\n return function LOG () {\n const ts = opts.timestamp()\n const args = new Array(arguments.length)\n const proto = (Object.getPrototypeOf && Object.getPrototypeOf(this) === _console) ? _console : this\n for (var i = 0; i < args.length; i++) args[i] = arguments[i]\n\n if (opts.serialize && !opts.asObject) {\n applySerializers(args, this._serialize, this.serializers, this._stdErrSerialize)\n }\n if (opts.asObject) write.call(proto, asObject(this, level, args, ts))\n else write.apply(proto, args)\n\n if (opts.transmit) {\n const transmitLevel = opts.transmit.level || logger.level\n const transmitValue = pino.levels.values[transmitLevel]\n const methodValue = pino.levels.values[level]\n if (methodValue < transmitValue) return\n transmit(this, {\n ts,\n methodLevel: level,\n methodValue,\n transmitLevel,\n transmitValue: pino.levels.values[opts.transmit.level || logger.level],\n send: opts.transmit.send,\n val: logger.levelVal\n }, args)\n }\n }\n })(logger[level])\n}\n\nfunction asObject (logger, level, args, ts) {\n if (logger._serialize) applySerializers(args, logger._serialize, logger.serializers, logger._stdErrSerialize)\n const argsCloned = args.slice()\n let msg = argsCloned[0]\n const o = {}\n if (ts) {\n o.time = ts\n }\n o.level = pino.levels.values[level]\n let lvl = (logger._childLevel | 0) + 1\n if (lvl < 1) lvl = 1\n // deliberate, catching objects, arrays\n if (msg !== null && typeof msg === 'object') {\n while (lvl-- && typeof argsCloned[0] === 'object') {\n Object.assign(o, argsCloned.shift())\n }\n msg = argsCloned.length ? format(argsCloned.shift(), argsCloned) : undefined\n } else if (typeof msg === 'string') msg = format(argsCloned.shift(), argsCloned)\n if (msg !== undefined) o.msg = msg\n return o\n}\n\nfunction applySerializers (args, serialize, serializers, stdErrSerialize) {\n for (const i in args) {\n if (stdErrSerialize && args[i] instanceof Error) {\n args[i] = pino.stdSerializers.err(args[i])\n } else if (typeof args[i] === 'object' && !Array.isArray(args[i])) {\n for (const k in args[i]) {\n if (serialize && serialize.indexOf(k) > -1 && k in serializers) {\n args[i][k] = serializers[k](args[i][k])\n }\n }\n }\n }\n}\n\nfunction bind (parent, bindings, level) {\n return function () {\n const args = new Array(1 + arguments.length)\n args[0] = bindings\n for (var i = 1; i < args.length; i++) {\n args[i] = arguments[i - 1]\n }\n return parent[level].apply(this, args)\n }\n}\n\nfunction transmit (logger, opts, args) {\n const send = opts.send\n const ts = opts.ts\n const methodLevel = opts.methodLevel\n const methodValue = opts.methodValue\n const val = opts.val\n const bindings = logger._logEvent.bindings\n\n applySerializers(\n args,\n logger._serialize || Object.keys(logger.serializers),\n logger.serializers,\n logger._stdErrSerialize === undefined ? true : logger._stdErrSerialize\n )\n logger._logEvent.ts = ts\n logger._logEvent.messages = args.filter(function (arg) {\n // bindings can only be objects, so reference equality check via indexOf is fine\n return bindings.indexOf(arg) === -1\n })\n\n logger._logEvent.level.label = methodLevel\n logger._logEvent.level.value = methodValue\n\n send(methodLevel, logger._logEvent, val)\n\n logger._logEvent = createLogEventShape(bindings)\n}\n\nfunction createLogEventShape (bindings) {\n return {\n ts: 0,\n messages: [],\n bindings: bindings || [],\n level: { label: '', value: 0 }\n }\n}\n\nfunction asErrValue (err) {\n const obj = {\n type: err.constructor.name,\n msg: err.message,\n stack: err.stack\n }\n for (const key in err) {\n if (obj[key] === undefined) {\n obj[key] = err[key]\n }\n }\n return obj\n}\n\nfunction getTimeFunction (opts) {\n if (typeof opts.timestamp === 'function') {\n return opts.timestamp\n }\n if (opts.timestamp === false) {\n return nullTime\n }\n return epochTime\n}\n\nfunction mock () { return {} }\nfunction passthrough (a) { return a }\nfunction noop () {}\n\nfunction nullTime () { return false }\nfunction epochTime () { return Date.now() }\nfunction unixTime () { return Math.round(Date.now() / 1000.0) }\nfunction isoTime () { return new Date(Date.now()).toISOString() } // using Date.now() for testability\n\n/* eslint-disable */\n/* istanbul ignore next */\nfunction pfGlobalThisOrFallback () {\n function defd (o) { return typeof o !== 'undefined' && o }\n try {\n if (typeof globalThis !== 'undefined') return globalThis\n Object.defineProperty(Object.prototype, 'globalThis', {\n get: function () {\n delete Object.prototype.globalThis\n return (this.globalThis = this)\n },\n configurable: true\n })\n return globalThis\n } catch (e) {\n return defd(self) || defd(window) || defd(this) || {}\n }\n}\n/* eslint-enable */\n","import h,{levels as s}from\"pino\";import{default as U}from\"pino\";import{safeJsonStringify as u}from\"@walletconnect/safe-json\";const c={level:\"info\"},n=\"custom_context\",l=1e3*1024;class O{constructor(e){this.nodeValue=e,this.sizeInBytes=new TextEncoder().encode(this.nodeValue).length,this.next=null}get value(){return this.nodeValue}get size(){return this.sizeInBytes}}class d{constructor(e){this.head=null,this.tail=null,this.lengthInNodes=0,this.maxSizeInBytes=e,this.sizeInBytes=0}append(e){const t=new O(e);if(t.size>this.maxSizeInBytes)throw new Error(`[LinkedList] Value too big to insert into list: ${e} with size ${t.size}`);for(;this.size+t.size>this.maxSizeInBytes;)this.shift();this.head?(this.tail&&(this.tail.next=t),this.tail=t):(this.head=t,this.tail=t),this.lengthInNodes++,this.sizeInBytes+=t.size}shift(){if(!this.head)return;const e=this.head;this.head=this.head.next,this.head||(this.tail=null),this.lengthInNodes--,this.sizeInBytes-=e.size}toArray(){const e=[];let t=this.head;for(;t!==null;)e.push(t.value),t=t.next;return e}get length(){return this.lengthInNodes}get size(){return this.sizeInBytes}toOrderedArray(){return Array.from(this)}[Symbol.iterator](){let e=this.head;return{next:()=>{if(!e)return{done:!0,value:null};const t=e.value;return e=e.next,{done:!1,value:t}}}}}class L{constructor(e,t=l){this.level=e??\"error\",this.levelValue=s.values[this.level],this.MAX_LOG_SIZE_IN_BYTES=t,this.logs=new d(this.MAX_LOG_SIZE_IN_BYTES)}forwardToConsole(e,t){t===s.values.error?console.error(e):t===s.values.warn?console.warn(e):t===s.values.debug?console.debug(e):t===s.values.trace?console.trace(e):console.log(e)}appendToLogs(e){this.logs.append(u({timestamp:new Date().toISOString(),log:e}));const t=typeof e==\"string\"?JSON.parse(e).level:e.level;t>=this.levelValue&&this.forwardToConsole(e,t)}getLogs(){return this.logs}clearLogs(){this.logs=new d(this.MAX_LOG_SIZE_IN_BYTES)}getLogArray(){return Array.from(this.logs)}logsToBlob(e){const t=this.getLogArray();return t.push(u({extraMetadata:e})),new Blob(t,{type:\"application/json\"})}}class m{constructor(e,t=l){this.baseChunkLogger=new L(e,t)}write(e){this.baseChunkLogger.appendToLogs(e)}getLogs(){return this.baseChunkLogger.getLogs()}clearLogs(){this.baseChunkLogger.clearLogs()}getLogArray(){return this.baseChunkLogger.getLogArray()}logsToBlob(e){return this.baseChunkLogger.logsToBlob(e)}downloadLogsBlobInBrowser(e){const t=URL.createObjectURL(this.logsToBlob(e)),o=document.createElement(\"a\");o.href=t,o.download=`walletconnect-logs-${new Date().toISOString()}.txt`,document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(t)}}class B{constructor(e,t=l){this.baseChunkLogger=new L(e,t)}write(e){this.baseChunkLogger.appendToLogs(e)}getLogs(){return this.baseChunkLogger.getLogs()}clearLogs(){this.baseChunkLogger.clearLogs()}getLogArray(){return this.baseChunkLogger.getLogArray()}logsToBlob(e){return this.baseChunkLogger.logsToBlob(e)}}var x=Object.defineProperty,S=Object.defineProperties,_=Object.getOwnPropertyDescriptors,p=Object.getOwnPropertySymbols,T=Object.prototype.hasOwnProperty,z=Object.prototype.propertyIsEnumerable,f=(r,e,t)=>e in r?x(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,i=(r,e)=>{for(var t in e||(e={}))T.call(e,t)&&f(r,t,e[t]);if(p)for(var t of p(e))z.call(e,t)&&f(r,t,e[t]);return r},g=(r,e)=>S(r,_(e));function k(r){return g(i({},r),{level:r?.level||c.level})}function v(r,e=n){return r[e]||\"\"}function b(r,e,t=n){return r[t]=e,r}function y(r,e=n){let t=\"\";return typeof r.bindings>\"u\"?t=v(r,e):t=r.bindings().context||\"\",t}function w(r,e,t=n){const o=y(r,t);return o.trim()?`${o}/${e}`:e}function E(r,e,t=n){const o=w(r,e,t),a=r.child({context:o});return b(a,o,t)}function C(r){var e,t;const o=new m((e=r.opts)==null?void 0:e.level,r.maxSizeInBytes);return{logger:h(g(i({},r.opts),{level:\"trace\",browser:g(i({},(t=r.opts)==null?void 0:t.browser),{write:a=>o.write(a)})})),chunkLoggerController:o}}function I(r){var e;const t=new B((e=r.opts)==null?void 0:e.level,r.maxSizeInBytes);return{logger:h(g(i({},r.opts),{level:\"trace\"}),t),chunkLoggerController:t}}function A(r){return typeof r.loggerOverride<\"u\"&&typeof r.loggerOverride!=\"string\"?{logger:r.loggerOverride,chunkLoggerController:null}:typeof window<\"u\"?C(r):I(r)}export{l as MAX_LOG_SIZE_IN_BYTES_DEFAULT,n as PINO_CUSTOM_CONTEXT_KEY,c as PINO_LOGGER_DEFAULTS,w as formatChildLoggerContext,E as generateChildLogger,C as generateClientLogger,A as generatePlatformLogger,I as generateServerLogger,v as getBrowserLoggerContext,k as getDefaultLoggerOptions,y as getLoggerContext,U as pino,b as setBrowserLoggerContext};\n//# sourceMappingURL=index.es.js.map\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","export const PARSE_ERROR = \"PARSE_ERROR\";\nexport const INVALID_REQUEST = \"INVALID_REQUEST\";\nexport const METHOD_NOT_FOUND = \"METHOD_NOT_FOUND\";\nexport const INVALID_PARAMS = \"INVALID_PARAMS\";\nexport const INTERNAL_ERROR = \"INTERNAL_ERROR\";\nexport const SERVER_ERROR = \"SERVER_ERROR\";\nexport const RESERVED_ERROR_CODES = [-32700, -32600, -32601, -32602, -32603];\nexport const SERVER_ERROR_CODE_RANGE = [-32000, -32099];\nexport const STANDARD_ERROR_MAP = {\n [PARSE_ERROR]: { code: -32700, message: \"Parse error\" },\n [INVALID_REQUEST]: { code: -32600, message: \"Invalid Request\" },\n [METHOD_NOT_FOUND]: { code: -32601, message: \"Method not found\" },\n [INVALID_PARAMS]: { code: -32602, message: \"Invalid params\" },\n [INTERNAL_ERROR]: { code: -32603, message: \"Internal error\" },\n [SERVER_ERROR]: { code: -32000, message: \"Server error\" },\n};\nexport const DEFAULT_ERROR = SERVER_ERROR;\n//# sourceMappingURL=constants.js.map","import { SERVER_ERROR_CODE_RANGE, RESERVED_ERROR_CODES, STANDARD_ERROR_MAP, DEFAULT_ERROR, } from \"./constants\";\nexport function isServerErrorCode(code) {\n return code <= SERVER_ERROR_CODE_RANGE[0] && code >= SERVER_ERROR_CODE_RANGE[1];\n}\nexport function isReservedErrorCode(code) {\n return RESERVED_ERROR_CODES.includes(code);\n}\nexport function isValidErrorCode(code) {\n return typeof code === \"number\";\n}\nexport function getError(type) {\n if (!Object.keys(STANDARD_ERROR_MAP).includes(type)) {\n return STANDARD_ERROR_MAP[DEFAULT_ERROR];\n }\n return STANDARD_ERROR_MAP[type];\n}\nexport function getErrorByCode(code) {\n const match = Object.values(STANDARD_ERROR_MAP).find(e => e.code === code);\n if (!match) {\n return STANDARD_ERROR_MAP[DEFAULT_ERROR];\n }\n return match;\n}\nexport function validateJsonRpcError(response) {\n if (typeof response.error.code === \"undefined\") {\n return { valid: false, error: \"Missing code for JSON-RPC error\" };\n }\n if (typeof response.error.message === \"undefined\") {\n return { valid: false, error: \"Missing message for JSON-RPC error\" };\n }\n if (!isValidErrorCode(response.error.code)) {\n return {\n valid: false,\n error: `Invalid error code type for JSON-RPC: ${response.error.code}`,\n };\n }\n if (isReservedErrorCode(response.error.code)) {\n const error = getErrorByCode(response.error.code);\n if (error.message !== STANDARD_ERROR_MAP[DEFAULT_ERROR].message &&\n response.error.message === error.message) {\n return {\n valid: false,\n error: `Invalid error code message for JSON-RPC: ${response.error.code}`,\n };\n }\n }\n return { valid: true };\n}\nexport function parseConnectionError(e, url, type) {\n return e.message.includes(\"getaddrinfo ENOTFOUND\") || e.message.includes(\"connect ECONNREFUSED\")\n ? new Error(`Unavailable ${type} RPC url at ${url}`)\n : e;\n}\n//# sourceMappingURL=error.js.map","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isBrowserCryptoAvailable = exports.getSubtleCrypto = exports.getBrowerCrypto = void 0;\nfunction getBrowerCrypto() {\n return (global === null || global === void 0 ? void 0 : global.crypto) || (global === null || global === void 0 ? void 0 : global.msCrypto) || {};\n}\nexports.getBrowerCrypto = getBrowerCrypto;\nfunction getSubtleCrypto() {\n const browserCrypto = getBrowerCrypto();\n return browserCrypto.subtle || browserCrypto.webkitSubtle;\n}\nexports.getSubtleCrypto = getSubtleCrypto;\nfunction isBrowserCryptoAvailable() {\n return !!getBrowerCrypto() && !!getSubtleCrypto();\n}\nexports.isBrowserCryptoAvailable = isBrowserCryptoAvailable;\n//# sourceMappingURL=crypto.js.map","function getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nvar browser = {exports: {}};\n\n// shim for using process in browser\nvar process = browser.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ());\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] };\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\nvar browserExports = browser.exports;\nconst process$1 = /*@__PURE__*/getDefaultExportFromCjs(browserExports);\n\nexport { process$1 as default, process$1 as process };\n//# sourceMappingURL=index.js.map\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isBrowser = exports.isNode = exports.isReactNative = void 0;\nfunction isReactNative() {\n return (typeof document === \"undefined\" &&\n typeof navigator !== \"undefined\" &&\n navigator.product === \"ReactNative\");\n}\nexports.isReactNative = isReactNative;\nfunction isNode() {\n return (typeof process !== \"undefined\" &&\n typeof process.versions !== \"undefined\" &&\n typeof process.versions.node !== \"undefined\");\n}\nexports.isNode = isNode;\nfunction isBrowser() {\n return !isReactNative() && !isNode();\n}\nexports.isBrowser = isBrowser;\n//# sourceMappingURL=env.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./crypto\"), exports);\ntslib_1.__exportStar(require(\"./env\"), exports);\n//# sourceMappingURL=index.js.map","import { getError, getErrorByCode, isReservedErrorCode } from \"./error\";\nimport { INTERNAL_ERROR, SERVER_ERROR } from \"./constants\";\nexport function payloadId(entropy = 3) {\n const date = Date.now() * Math.pow(10, entropy);\n const extra = Math.floor(Math.random() * Math.pow(10, entropy));\n return date + extra;\n}\nexport function getBigIntRpcId(entropy = 6) {\n return BigInt(payloadId(entropy));\n}\nexport function formatJsonRpcRequest(method, params, id) {\n return {\n id: id || payloadId(),\n jsonrpc: \"2.0\",\n method,\n params,\n };\n}\nexport function formatJsonRpcResult(id, result) {\n return {\n id,\n jsonrpc: \"2.0\",\n result,\n };\n}\nexport function formatJsonRpcError(id, error, data) {\n return {\n id,\n jsonrpc: \"2.0\",\n error: formatErrorMessage(error, data),\n };\n}\nexport function formatErrorMessage(error, data) {\n if (typeof error === \"undefined\") {\n return getError(INTERNAL_ERROR);\n }\n if (typeof error === \"string\") {\n error = Object.assign(Object.assign({}, getError(SERVER_ERROR)), { message: error });\n }\n if (typeof data !== \"undefined\") {\n error.data = data;\n }\n if (isReservedErrorCode(error.code)) {\n error = getErrorByCode(error.code);\n }\n return error;\n}\n//# sourceMappingURL=format.js.map","export function isJsonRpcPayload(payload) {\n return (typeof payload === \"object\" &&\n \"id\" in payload &&\n \"jsonrpc\" in payload &&\n payload.jsonrpc === \"2.0\");\n}\nexport function isJsonRpcRequest(payload) {\n return isJsonRpcPayload(payload) && \"method\" in payload;\n}\nexport function isJsonRpcResponse(payload) {\n return isJsonRpcPayload(payload) && (isJsonRpcResult(payload) || isJsonRpcError(payload));\n}\nexport function isJsonRpcResult(payload) {\n return \"result\" in payload;\n}\nexport function isJsonRpcError(payload) {\n return \"error\" in payload;\n}\nexport function isJsonRpcValidationInvalid(validation) {\n return \"error\" in validation && validation.valid === false;\n}\n//# sourceMappingURL=validators.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.delay = void 0;\nfunction delay(timeout) {\n return new Promise(resolve => {\n setTimeout(() => {\n resolve(true);\n }, timeout);\n });\n}\nexports.delay = delay;\n//# sourceMappingURL=delay.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ONE_THOUSAND = exports.ONE_HUNDRED = void 0;\nexports.ONE_HUNDRED = 100;\nexports.ONE_THOUSAND = 1000;\n//# sourceMappingURL=misc.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ONE_YEAR = exports.FOUR_WEEKS = exports.THREE_WEEKS = exports.TWO_WEEKS = exports.ONE_WEEK = exports.THIRTY_DAYS = exports.SEVEN_DAYS = exports.FIVE_DAYS = exports.THREE_DAYS = exports.ONE_DAY = exports.TWENTY_FOUR_HOURS = exports.TWELVE_HOURS = exports.SIX_HOURS = exports.THREE_HOURS = exports.ONE_HOUR = exports.SIXTY_MINUTES = exports.THIRTY_MINUTES = exports.TEN_MINUTES = exports.FIVE_MINUTES = exports.ONE_MINUTE = exports.SIXTY_SECONDS = exports.THIRTY_SECONDS = exports.TEN_SECONDS = exports.FIVE_SECONDS = exports.ONE_SECOND = void 0;\nexports.ONE_SECOND = 1;\nexports.FIVE_SECONDS = 5;\nexports.TEN_SECONDS = 10;\nexports.THIRTY_SECONDS = 30;\nexports.SIXTY_SECONDS = 60;\nexports.ONE_MINUTE = exports.SIXTY_SECONDS;\nexports.FIVE_MINUTES = exports.ONE_MINUTE * 5;\nexports.TEN_MINUTES = exports.ONE_MINUTE * 10;\nexports.THIRTY_MINUTES = exports.ONE_MINUTE * 30;\nexports.SIXTY_MINUTES = exports.ONE_MINUTE * 60;\nexports.ONE_HOUR = exports.SIXTY_MINUTES;\nexports.THREE_HOURS = exports.ONE_HOUR * 3;\nexports.SIX_HOURS = exports.ONE_HOUR * 6;\nexports.TWELVE_HOURS = exports.ONE_HOUR * 12;\nexports.TWENTY_FOUR_HOURS = exports.ONE_HOUR * 24;\nexports.ONE_DAY = exports.TWENTY_FOUR_HOURS;\nexports.THREE_DAYS = exports.ONE_DAY * 3;\nexports.FIVE_DAYS = exports.ONE_DAY * 5;\nexports.SEVEN_DAYS = exports.ONE_DAY * 7;\nexports.THIRTY_DAYS = exports.ONE_DAY * 30;\nexports.ONE_WEEK = exports.SEVEN_DAYS;\nexports.TWO_WEEKS = exports.ONE_WEEK * 2;\nexports.THREE_WEEKS = exports.ONE_WEEK * 3;\nexports.FOUR_WEEKS = exports.ONE_WEEK * 4;\nexports.ONE_YEAR = exports.ONE_DAY * 365;\n//# sourceMappingURL=time.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./misc\"), exports);\ntslib_1.__exportStar(require(\"./time\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromMiliseconds = exports.toMiliseconds = void 0;\nconst constants_1 = require(\"../constants\");\nfunction toMiliseconds(seconds) {\n return seconds * constants_1.ONE_THOUSAND;\n}\nexports.toMiliseconds = toMiliseconds;\nfunction fromMiliseconds(miliseconds) {\n return Math.floor(miliseconds / constants_1.ONE_THOUSAND);\n}\nexports.fromMiliseconds = fromMiliseconds;\n//# sourceMappingURL=convert.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./delay\"), exports);\ntslib_1.__exportStar(require(\"./convert\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Watch = void 0;\nclass Watch {\n constructor() {\n this.timestamps = new Map();\n }\n start(label) {\n if (this.timestamps.has(label)) {\n throw new Error(`Watch already started for label: ${label}`);\n }\n this.timestamps.set(label, { started: Date.now() });\n }\n stop(label) {\n const timestamp = this.get(label);\n if (typeof timestamp.elapsed !== \"undefined\") {\n throw new Error(`Watch already stopped for label: ${label}`);\n }\n const elapsed = Date.now() - timestamp.started;\n this.timestamps.set(label, { started: timestamp.started, elapsed });\n }\n get(label) {\n const timestamp = this.timestamps.get(label);\n if (typeof timestamp === \"undefined\") {\n throw new Error(`No timestamp found for label: ${label}`);\n }\n return timestamp;\n }\n elapsed(label) {\n const timestamp = this.get(label);\n const elapsed = timestamp.elapsed || Date.now() - timestamp.started;\n return elapsed;\n }\n}\nexports.Watch = Watch;\nexports.default = Watch;\n//# sourceMappingURL=watch.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IWatch = void 0;\nclass IWatch {\n}\nexports.IWatch = IWatch;\n//# sourceMappingURL=watch.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./watch\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./utils\"), exports);\ntslib_1.__exportStar(require(\"./watch\"), exports);\ntslib_1.__exportStar(require(\"./types\"), exports);\ntslib_1.__exportStar(require(\"./constants\"), exports);\n//# sourceMappingURL=index.js.map","const global = globalThis || void 0 || self;\n\nexport { global as default, global };\n//# sourceMappingURL=index.js.map\n","import{IEvents as o}from\"@walletconnect/events\";import c,{EventEmitter as i}from\"events\";class n extends o{constructor(s){super(),this.opts=s,this.protocol=\"wc\",this.version=2}}class l{constructor(s,t,e){this.core=s,this.logger=t}}class h extends o{constructor(s,t){super(),this.core=s,this.logger=t,this.records=new Map}}class a{constructor(s,t){this.logger=s,this.core=t}}class g extends o{constructor(s,t){super(),this.relayer=s,this.logger=t}}class u extends o{constructor(s){super()}}class p{constructor(s,t,e,f){this.core=s,this.logger=t,this.name=e}}class I{constructor(){this.map=new Map}}class d extends o{constructor(s,t){super(),this.relayer=s,this.logger=t}}class E{constructor(s,t){this.core=s,this.logger=t}}class x extends o{constructor(s,t){super(),this.core=s,this.logger=t}}class m{constructor(s,t){this.logger=s,this.core=t}}class y{constructor(s,t,e){this.core=s,this.logger=t,this.store=e}}class v{constructor(s,t){this.projectId=s,this.logger=t}}class C{constructor(s,t,e){this.core=s,this.logger=t,this.telemetryEnabled=e}}class b extends c{constructor(){super()}}class S{constructor(s){this.opts=s,this.protocol=\"wc\",this.version=2}}class w extends i{constructor(){super()}}class M{constructor(s){this.client=s}}export{n as ICore,l as ICrypto,v as IEchoClient,M as IEngine,w as IEngineEvents,C as IEventClient,x as IExpirer,h as IJsonRpcHistory,E as IKeyChain,a as IMessageTracker,m as IPairing,g as IPublisher,u as IRelayer,S as ISignClient,b as ISignClientEvents,p as IStore,d as ISubscriber,I as ISubscriberTopicMap,y as IVerify};\n//# sourceMappingURL=index.es.js.map\n","import{RELAYER_DEFAULT_PROTOCOL as Et,TRANSPORT_TYPES as f,EVENT_CLIENT_SESSION_TRACES as C,EVENT_CLIENT_SESSION_ERRORS as F,EVENT_CLIENT_AUTHENTICATE_TRACES as Q,EVENT_CLIENT_AUTHENTICATE_ERRORS as se,EVENT_CLIENT_PAIRING_ERRORS as Rt,EVENT_CLIENT_PAIRING_TRACES as St,RELAYER_EVENTS as Ue,VERIFY_SERVER as It,EXPIRER_EVENTS as ft,PAIRING_EVENTS as Ge,Store as H,Core as vt}from\"@walletconnect/core\";import{pino as qt,getDefaultLoggerOptions as Tt,generateChildLogger as Nt,getLoggerContext as Pt}from\"@walletconnect/logger\";import{IEngine as Ot,ISignClient as At}from\"@walletconnect/types\";import{getInternalError as u,calcExpiry as A,createDelayedPromise as Y,engineEvent as g,getSdkError as P,getDeepLink as bt,handleDeeplinkRedirect as Ct,isSessionCompatible as Lt,hashKey as Te,parseChainId as Ne,createEncodedRecap as xt,getRecapFromResources as Pe,mergeEncodedRecaps as Dt,TYPE_2 as Vt,BASE64URL as ie,getLinkModeURL as he,validateSignedCacao as je,getNamespacedDidChainId as Fe,getDidAddress as Qe,getMethodsFromRecap as ze,getChainsFromRecap as He,buildNamespacesFromAuth as Ye,formatMessage as Mt,BASE64 as de,hashMessage as X,isExpired as J,MemoryStore as re,isValidParams as L,isUndefined as ne,isValidRelays as kt,isValidObject as Xe,isValidRequiredNamespaces as $t,isValidNamespaces as Oe,isConformingNamespaces as Je,isValidString as k,isValidErrorReason as Kt,isValidRelay as Ut,isValidController as Gt,isValidNamespacesChainId as Be,isValidRequest as jt,isValidNamespacesRequest as Ft,isValidRequestExpiry as Qt,isValidResponse as zt,isValidEvent as Ht,isValidNamespacesEvent as Yt,getSearchParamFromURL as We,isTestRun as Xt,isReactNative as Jt,parseExpirerTarget as Bt,isValidId as Wt,TYPE_1 as Ae,getAppMetadata as Zt}from\"@walletconnect/utils\";import es,{EventEmitter as ts}from\"events\";import{THIRTY_DAYS as ss,SEVEN_DAYS as Ze,FIVE_MINUTES as b,ONE_DAY as $,ONE_HOUR as et,ONE_SECOND as is,toMiliseconds as tt}from\"@walletconnect/time\";import{payloadId as B,getBigIntRpcId as ue,isJsonRpcResult as K,isJsonRpcError as U,formatJsonRpcRequest as ge,formatJsonRpcResult as rs,formatJsonRpcError as ns,isJsonRpcRequest as os,isJsonRpcResponse as as}from\"@walletconnect/jsonrpc-utils\";const be=\"wc\",Ce=2,Le=\"client\",ye=`${be}@${Ce}:${Le}:`,we={name:Le,logger:\"error\",controller:!1,relayUrl:\"wss://relay.walletconnect.org\"},cs={session_proposal:\"session_proposal\",session_update:\"session_update\",session_extend:\"session_extend\",session_ping:\"session_ping\",session_delete:\"session_delete\",session_expire:\"session_expire\",session_request:\"session_request\",session_request_sent:\"session_request_sent\",session_event:\"session_event\",proposal_expire:\"proposal_expire\",session_authenticate:\"session_authenticate\",session_request_expire:\"session_request_expire\"},ls={database:\":memory:\"},xe=\"WALLETCONNECT_DEEPLINK_CHOICE\",ps={created:\"history_created\",updated:\"history_updated\",deleted:\"history_deleted\",sync:\"history_sync\"},hs=\"history\",ds=\"0.3\",st=\"proposal\",us=ss,it=\"Proposal expired\",rt=\"session\",z=Ze,nt=\"engine\",v={wc_sessionPropose:{req:{ttl:b,prompt:!0,tag:1100},res:{ttl:b,prompt:!1,tag:1101},reject:{ttl:b,prompt:!1,tag:1120},autoReject:{ttl:b,prompt:!1,tag:1121}},wc_sessionSettle:{req:{ttl:b,prompt:!1,tag:1102},res:{ttl:b,prompt:!1,tag:1103}},wc_sessionUpdate:{req:{ttl:$,prompt:!1,tag:1104},res:{ttl:$,prompt:!1,tag:1105}},wc_sessionExtend:{req:{ttl:$,prompt:!1,tag:1106},res:{ttl:$,prompt:!1,tag:1107}},wc_sessionRequest:{req:{ttl:b,prompt:!0,tag:1108},res:{ttl:b,prompt:!1,tag:1109}},wc_sessionEvent:{req:{ttl:b,prompt:!0,tag:1110},res:{ttl:b,prompt:!1,tag:1111}},wc_sessionDelete:{req:{ttl:$,prompt:!1,tag:1112},res:{ttl:$,prompt:!1,tag:1113}},wc_sessionPing:{req:{ttl:$,prompt:!1,tag:1114},res:{ttl:$,prompt:!1,tag:1115}},wc_sessionAuthenticate:{req:{ttl:et,prompt:!0,tag:1116},res:{ttl:et,prompt:!1,tag:1117},reject:{ttl:b,prompt:!1,tag:1118},autoReject:{ttl:b,prompt:!1,tag:1119}}},me={min:b,max:Ze},x={idle:\"IDLE\",active:\"ACTIVE\"},ot=\"request\",at=[\"wc_sessionPropose\",\"wc_sessionRequest\",\"wc_authRequest\",\"wc_sessionAuthenticate\"],ct=\"wc\",gs=1.5,lt=\"auth\",pt=\"authKeys\",ht=\"pairingTopics\",dt=\"requests\",oe=`${ct}@${1.5}:${lt}:`,ae=`${oe}:PUB_KEY`;var ys=Object.defineProperty,ws=Object.defineProperties,ms=Object.getOwnPropertyDescriptors,ut=Object.getOwnPropertySymbols,_s=Object.prototype.hasOwnProperty,Es=Object.prototype.propertyIsEnumerable,gt=(q,o,e)=>o in q?ys(q,o,{enumerable:!0,configurable:!0,writable:!0,value:e}):q[o]=e,I=(q,o)=>{for(var e in o||(o={}))_s.call(o,e)&>(q,e,o[e]);if(ut)for(var e of ut(o))Es.call(o,e)&>(q,e,o[e]);return q},D=(q,o)=>ws(q,ms(o));class Rs extends Ot{constructor(o){super(o),this.name=nt,this.events=new es,this.initialized=!1,this.requestQueue={state:x.idle,queue:[]},this.sessionRequestQueue={state:x.idle,queue:[]},this.requestQueueDelay=is,this.expectedPairingMethodMap=new Map,this.recentlyDeletedMap=new Map,this.recentlyDeletedLimit=200,this.relayMessageCache=[],this.init=async()=>{this.initialized||(await this.cleanup(),this.registerRelayerEvents(),this.registerExpirerEvents(),this.registerPairingEvents(),await this.registerLinkModeListeners(),this.client.core.pairing.register({methods:Object.keys(v)}),this.initialized=!0,setTimeout(()=>{this.sessionRequestQueue.queue=this.getPendingSessionRequests(),this.processSessionRequestQueue()},tt(this.requestQueueDelay)))},this.connect=async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();const t=D(I({},e),{requiredNamespaces:e.requiredNamespaces||{},optionalNamespaces:e.optionalNamespaces||{}});await this.isValidConnect(t);const{pairingTopic:s,requiredNamespaces:i,optionalNamespaces:r,sessionProperties:n,relays:a}=t;let c=s,h,p=!1;try{c&&(p=this.client.core.pairing.pairings.get(c).active)}catch(E){throw this.client.logger.error(`connect() -> pairing.get(${c}) failed`),E}if(!c||!p){const{topic:E,uri:S}=await this.client.core.pairing.create();c=E,h=S}if(!c){const{message:E}=u(\"NO_MATCHING_KEY\",`connect() pairing topic: ${c}`);throw new Error(E)}const d=await this.client.core.crypto.generateKeyPair(),l=v.wc_sessionPropose.req.ttl||b,w=A(l),m=I({requiredNamespaces:i,optionalNamespaces:r,relays:a??[{protocol:Et}],proposer:{publicKey:d,metadata:this.client.metadata},expiryTimestamp:w,pairingTopic:c},n&&{sessionProperties:n}),{reject:y,resolve:_,done:R}=Y(l,it);this.events.once(g(\"session_connect\"),async({error:E,session:S})=>{if(E)y(E);else if(S){S.self.publicKey=d;const M=D(I({},S),{pairingTopic:m.pairingTopic,requiredNamespaces:m.requiredNamespaces,optionalNamespaces:m.optionalNamespaces,transportType:f.relay});await this.client.session.set(S.topic,M),await this.setExpiry(S.topic,S.expiry),c&&await this.client.core.pairing.updateMetadata({topic:c,metadata:S.peer.metadata}),this.cleanupDuplicatePairings(M),_(M)}});const V=await this.sendRequest({topic:c,method:\"wc_sessionPropose\",params:m,throwOnFailedPublish:!0});return await this.setProposal(V,I({id:V},m)),{uri:h,approval:R}},this.pair=async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{return await this.client.core.pairing.pair(e)}catch(t){throw this.client.logger.error(\"pair() failed\"),t}},this.approve=async e=>{var t,s,i;const r=this.client.core.eventClient.createEvent({properties:{topic:(t=e?.id)==null?void 0:t.toString(),trace:[C.session_approve_started]}});try{this.isInitialized(),await this.confirmOnlineStateOrThrow()}catch(N){throw r.setError(F.no_internet_connection),N}try{await this.isValidProposalId(e?.id)}catch(N){throw this.client.logger.error(`approve() -> proposal.get(${e?.id}) failed`),r.setError(F.proposal_not_found),N}try{await this.isValidApprove(e)}catch(N){throw this.client.logger.error(\"approve() -> isValidApprove() failed\"),r.setError(F.session_approve_namespace_validation_failure),N}const{id:n,relayProtocol:a,namespaces:c,sessionProperties:h,sessionConfig:p}=e,d=this.client.proposal.get(n);this.client.core.eventClient.deleteEvent({eventId:r.eventId});const{pairingTopic:l,proposer:w,requiredNamespaces:m,optionalNamespaces:y}=d;let _=(s=this.client.core.eventClient)==null?void 0:s.getEvent({topic:l});_||(_=(i=this.client.core.eventClient)==null?void 0:i.createEvent({type:C.session_approve_started,properties:{topic:l,trace:[C.session_approve_started,C.session_namespaces_validation_success]}}));const R=await this.client.core.crypto.generateKeyPair(),V=w.publicKey,E=await this.client.core.crypto.generateSharedKey(R,V),S=I(I({relay:{protocol:a??\"irn\"},namespaces:c,controller:{publicKey:R,metadata:this.client.metadata},expiry:A(z)},h&&{sessionProperties:h}),p&&{sessionConfig:p}),M=f.relay;_.addTrace(C.subscribing_session_topic);try{await this.client.core.relayer.subscribe(E,{transportType:M})}catch(N){throw _.setError(F.subscribe_session_topic_failure),N}_.addTrace(C.subscribe_session_topic_success);const W=D(I({},S),{topic:E,requiredNamespaces:m,optionalNamespaces:y,pairingTopic:l,acknowledged:!1,self:S.controller,peer:{publicKey:w.publicKey,metadata:w.metadata},controller:R,transportType:f.relay});await this.client.session.set(E,W),_.addTrace(C.store_session);try{_.addTrace(C.publishing_session_settle),await this.sendRequest({topic:E,method:\"wc_sessionSettle\",params:S,throwOnFailedPublish:!0}).catch(N=>{throw _?.setError(F.session_settle_publish_failure),N}),_.addTrace(C.session_settle_publish_success),_.addTrace(C.publishing_session_approve),await this.sendResult({id:n,topic:l,result:{relay:{protocol:a??\"irn\"},responderPublicKey:R},throwOnFailedPublish:!0}).catch(N=>{throw _?.setError(F.session_approve_publish_failure),N}),_.addTrace(C.session_approve_publish_success)}catch(N){throw this.client.logger.error(N),this.client.session.delete(E,P(\"USER_DISCONNECTED\")),await this.client.core.relayer.unsubscribe(E),N}return this.client.core.eventClient.deleteEvent({eventId:_.eventId}),await this.client.core.pairing.updateMetadata({topic:l,metadata:w.metadata}),await this.client.proposal.delete(n,P(\"USER_DISCONNECTED\")),await this.client.core.pairing.activate({topic:l}),await this.setExpiry(E,A(z)),{topic:E,acknowledged:()=>Promise.resolve(this.client.session.get(E))}},this.reject=async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidReject(e)}catch(r){throw this.client.logger.error(\"reject() -> isValidReject() failed\"),r}const{id:t,reason:s}=e;let i;try{i=this.client.proposal.get(t).pairingTopic}catch(r){throw this.client.logger.error(`reject() -> proposal.get(${t}) failed`),r}i&&(await this.sendError({id:t,topic:i,error:s,rpcOpts:v.wc_sessionPropose.reject}),await this.client.proposal.delete(t,P(\"USER_DISCONNECTED\")))},this.update=async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidUpdate(e)}catch(p){throw this.client.logger.error(\"update() -> isValidUpdate() failed\"),p}const{topic:t,namespaces:s}=e,{done:i,resolve:r,reject:n}=Y(),a=B(),c=ue().toString(),h=this.client.session.get(t).namespaces;return this.events.once(g(\"session_update\",a),({error:p})=>{p?n(p):r()}),await this.client.session.update(t,{namespaces:s}),await this.sendRequest({topic:t,method:\"wc_sessionUpdate\",params:{namespaces:s},throwOnFailedPublish:!0,clientRpcId:a,relayRpcId:c}).catch(p=>{this.client.logger.error(p),this.client.session.update(t,{namespaces:h}),n(p)}),{acknowledged:i}},this.extend=async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidExtend(e)}catch(a){throw this.client.logger.error(\"extend() -> isValidExtend() failed\"),a}const{topic:t}=e,s=B(),{done:i,resolve:r,reject:n}=Y();return this.events.once(g(\"session_extend\",s),({error:a})=>{a?n(a):r()}),await this.setExpiry(t,A(z)),this.sendRequest({topic:t,method:\"wc_sessionExtend\",params:{},clientRpcId:s,throwOnFailedPublish:!0}).catch(a=>{n(a)}),{acknowledged:i}},this.request=async e=>{this.isInitialized();try{await this.isValidRequest(e)}catch(w){throw this.client.logger.error(\"request() -> isValidRequest() failed\"),w}const{chainId:t,request:s,topic:i,expiry:r=v.wc_sessionRequest.req.ttl}=e,n=this.client.session.get(i);n?.transportType===f.relay&&await this.confirmOnlineStateOrThrow();const a=B(),c=ue().toString(),{done:h,resolve:p,reject:d}=Y(r,\"Request expired. Please try again.\");this.events.once(g(\"session_request\",a),({error:w,result:m})=>{w?d(w):p(m)});const l=this.getAppLinkIfEnabled(n.peer.metadata,n.transportType);return l?(await this.sendRequest({clientRpcId:a,relayRpcId:c,topic:i,method:\"wc_sessionRequest\",params:{request:D(I({},s),{expiryTimestamp:A(r)}),chainId:t},expiry:r,throwOnFailedPublish:!0,appLink:l}).catch(w=>d(w)),this.client.events.emit(\"session_request_sent\",{topic:i,request:s,chainId:t,id:a}),await h()):await Promise.all([new Promise(async w=>{await this.sendRequest({clientRpcId:a,relayRpcId:c,topic:i,method:\"wc_sessionRequest\",params:{request:D(I({},s),{expiryTimestamp:A(r)}),chainId:t},expiry:r,throwOnFailedPublish:!0}).catch(m=>d(m)),this.client.events.emit(\"session_request_sent\",{topic:i,request:s,chainId:t,id:a}),w()}),new Promise(async w=>{var m;if(!((m=n.sessionConfig)!=null&&m.disableDeepLink)){const y=await bt(this.client.core.storage,xe);await Ct({id:a,topic:i,wcDeepLink:y})}w()}),h()]).then(w=>w[2])},this.respond=async e=>{this.isInitialized(),await this.isValidRespond(e);const{topic:t,response:s}=e,{id:i}=s,r=this.client.session.get(t);r.transportType===f.relay&&await this.confirmOnlineStateOrThrow();const n=this.getAppLinkIfEnabled(r.peer.metadata,r.transportType);K(s)?await this.sendResult({id:i,topic:t,result:s.result,throwOnFailedPublish:!0,appLink:n}):U(s)&&await this.sendError({id:i,topic:t,error:s.error,appLink:n}),this.cleanupAfterResponse(e)},this.ping=async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidPing(e)}catch(s){throw this.client.logger.error(\"ping() -> isValidPing() failed\"),s}const{topic:t}=e;if(this.client.session.keys.includes(t)){const s=B(),i=ue().toString(),{done:r,resolve:n,reject:a}=Y();this.events.once(g(\"session_ping\",s),({error:c})=>{c?a(c):n()}),await Promise.all([this.sendRequest({topic:t,method:\"wc_sessionPing\",params:{},throwOnFailedPublish:!0,clientRpcId:s,relayRpcId:i}),r()])}else this.client.core.pairing.pairings.keys.includes(t)&&await this.client.core.pairing.ping({topic:t})},this.emit=async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow(),await this.isValidEmit(e);const{topic:t,event:s,chainId:i}=e,r=ue().toString();await this.sendRequest({topic:t,method:\"wc_sessionEvent\",params:{event:s,chainId:i},throwOnFailedPublish:!0,relayRpcId:r})},this.disconnect=async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow(),await this.isValidDisconnect(e);const{topic:t}=e;if(this.client.session.keys.includes(t))await this.sendRequest({topic:t,method:\"wc_sessionDelete\",params:P(\"USER_DISCONNECTED\"),throwOnFailedPublish:!0}),await this.deleteSession({topic:t,emitEvent:!1});else if(this.client.core.pairing.pairings.keys.includes(t))await this.client.core.pairing.disconnect({topic:t});else{const{message:s}=u(\"MISMATCHED_TOPIC\",`Session or pairing topic not found: ${t}`);throw new Error(s)}},this.find=e=>(this.isInitialized(),this.client.session.getAll().filter(t=>Lt(t,e))),this.getPendingSessionRequests=()=>this.client.pendingRequest.getAll(),this.authenticate=async(e,t)=>{var s;this.isInitialized(),this.isValidAuthenticate(e);const i=t&&this.client.core.linkModeSupportedApps.includes(t)&&((s=this.client.metadata.redirect)==null?void 0:s.linkMode),r=i?f.link_mode:f.relay;r===f.relay&&await this.confirmOnlineStateOrThrow();const{chains:n,statement:a=\"\",uri:c,domain:h,nonce:p,type:d,exp:l,nbf:w,methods:m=[],expiry:y}=e,_=[...e.resources||[]],{topic:R,uri:V}=await this.client.core.pairing.create({methods:[\"wc_sessionAuthenticate\"],transportType:r});this.client.logger.info({message:\"Generated new pairing\",pairing:{topic:R,uri:V}});const E=await this.client.core.crypto.generateKeyPair(),S=Te(E);if(await Promise.all([this.client.auth.authKeys.set(ae,{responseTopic:S,publicKey:E}),this.client.auth.pairingTopics.set(S,{topic:S,pairingTopic:R})]),await this.client.core.relayer.subscribe(S,{transportType:r}),this.client.logger.info(`sending request to new pairing topic: ${R}`),m.length>0){const{namespace:O}=Ne(n[0]);let T=xt(O,\"request\",m);Pe(_)&&(T=Dt(T,_.pop())),_.push(T)}const M=y&&y>v.wc_sessionAuthenticate.req.ttl?y:v.wc_sessionAuthenticate.req.ttl,W={authPayload:{type:d??\"caip122\",chains:n,statement:a,aud:c,domain:h,version:\"1\",nonce:p,iat:new Date().toISOString(),exp:l,nbf:w,resources:_},requester:{publicKey:E,metadata:this.client.metadata},expiryTimestamp:A(M)},N={eip155:{chains:n,methods:[...new Set([\"personal_sign\",...m])],events:[\"chainChanged\",\"accountsChanged\"]}},De={requiredNamespaces:{},optionalNamespaces:N,relays:[{protocol:\"irn\"}],pairingTopic:R,proposer:{publicKey:E,metadata:this.client.metadata},expiryTimestamp:A(v.wc_sessionPropose.req.ttl)},{done:wt,resolve:Ve,reject:Ee}=Y(M,\"Request expired\"),ce=async({error:O,session:T})=>{if(this.events.off(g(\"session_request\",G),Re),O)Ee(O);else if(T){T.self.publicKey=E,await this.client.session.set(T.topic,T),await this.setExpiry(T.topic,T.expiry),R&&await this.client.core.pairing.updateMetadata({topic:R,metadata:T.peer.metadata});const le=this.client.session.get(T.topic);await this.deleteProposal(Z),Ve({session:le})}},Re=async O=>{var T,le,Me;if(await this.deletePendingAuthRequest(G,{message:\"fulfilled\",code:0}),O.error){const te=P(\"WC_METHOD_UNSUPPORTED\",\"wc_sessionAuthenticate\");return O.error.code===te.code?void 0:(this.events.off(g(\"session_connect\"),ce),Ee(O.error.message))}await this.deleteProposal(Z),this.events.off(g(\"session_connect\"),ce);const{cacaos:ke,responder:j}=O.result,Ie=[],$e=[];for(const te of ke){await je({cacao:te,projectId:this.client.core.projectId})||(this.client.logger.error(te,\"Signature verification failed\"),Ee(P(\"SESSION_SETTLEMENT_FAILED\",\"Signature verification failed\")));const{p:fe}=te,ve=Pe(fe.resources),Ke=[Fe(fe.iss)],mt=Qe(fe.iss);if(ve){const qe=ze(ve),_t=He(ve);Ie.push(...qe),Ke.push(..._t)}for(const qe of Ke)$e.push(`${qe}:${mt}`)}const ee=await this.client.core.crypto.generateSharedKey(E,j.publicKey);let pe;Ie.length>0&&(pe={topic:ee,acknowledged:!0,self:{publicKey:E,metadata:this.client.metadata},peer:j,controller:j.publicKey,expiry:A(z),requiredNamespaces:{},optionalNamespaces:{},relay:{protocol:\"irn\"},pairingTopic:R,namespaces:Ye([...new Set(Ie)],[...new Set($e)]),transportType:r},await this.client.core.relayer.subscribe(ee,{transportType:r}),await this.client.session.set(ee,pe),R&&await this.client.core.pairing.updateMetadata({topic:R,metadata:j.metadata}),pe=this.client.session.get(ee)),(T=this.client.metadata.redirect)!=null&&T.linkMode&&(le=j.metadata.redirect)!=null&&le.linkMode&&(Me=j.metadata.redirect)!=null&&Me.universal&&t&&(this.client.core.addLinkModeSupportedApp(j.metadata.redirect.universal),this.client.session.update(ee,{transportType:f.link_mode})),Ve({auths:ke,session:pe})},G=B(),Z=B();this.events.once(g(\"session_connect\"),ce),this.events.once(g(\"session_request\",G),Re);let Se;try{if(i){const O=ge(\"wc_sessionAuthenticate\",W,G);this.client.core.history.set(R,O);const T=await this.client.core.crypto.encode(\"\",O,{type:Vt,encoding:ie});Se=he(t,R,T)}else await Promise.all([this.sendRequest({topic:R,method:\"wc_sessionAuthenticate\",params:W,expiry:e.expiry,throwOnFailedPublish:!0,clientRpcId:G}),this.sendRequest({topic:R,method:\"wc_sessionPropose\",params:De,expiry:v.wc_sessionPropose.req.ttl,throwOnFailedPublish:!0,clientRpcId:Z})])}catch(O){throw this.events.off(g(\"session_connect\"),ce),this.events.off(g(\"session_request\",G),Re),O}return await this.setProposal(Z,I({id:Z},De)),await this.setAuthRequest(G,{request:D(I({},W),{verifyContext:{}}),pairingTopic:R,transportType:r}),{uri:Se??V,response:wt}},this.approveSessionAuthenticate=async e=>{const{id:t,auths:s}=e,i=this.client.core.eventClient.createEvent({properties:{topic:t.toString(),trace:[Q.authenticated_session_approve_started]}});try{this.isInitialized()}catch(y){throw i.setError(se.no_internet_connection),y}const r=this.getPendingAuthRequest(t);if(!r)throw i.setError(se.authenticated_session_pending_request_not_found),new Error(`Could not find pending auth request with id ${t}`);const n=r.transportType||f.relay;n===f.relay&&await this.confirmOnlineStateOrThrow();const a=r.requester.publicKey,c=await this.client.core.crypto.generateKeyPair(),h=Te(a),p={type:Ae,receiverPublicKey:a,senderPublicKey:c},d=[],l=[];for(const y of s){if(!await je({cacao:y,projectId:this.client.core.projectId})){i.setError(se.invalid_cacao);const S=P(\"SESSION_SETTLEMENT_FAILED\",\"Signature verification failed\");throw await this.sendError({id:t,topic:h,error:S,encodeOpts:p}),new Error(S.message)}i.addTrace(Q.cacaos_verified);const{p:_}=y,R=Pe(_.resources),V=[Fe(_.iss)],E=Qe(_.iss);if(R){const S=ze(R),M=He(R);d.push(...S),V.push(...M)}for(const S of V)l.push(`${S}:${E}`)}const w=await this.client.core.crypto.generateSharedKey(c,a);i.addTrace(Q.create_authenticated_session_topic);let m;if(d?.length>0){m={topic:w,acknowledged:!0,self:{publicKey:c,metadata:this.client.metadata},peer:{publicKey:a,metadata:r.requester.metadata},controller:a,expiry:A(z),authentication:s,requiredNamespaces:{},optionalNamespaces:{},relay:{protocol:\"irn\"},pairingTopic:r.pairingTopic,namespaces:Ye([...new Set(d)],[...new Set(l)]),transportType:n},i.addTrace(Q.subscribing_authenticated_session_topic);try{await this.client.core.relayer.subscribe(w,{transportType:n})}catch(y){throw i.setError(se.subscribe_authenticated_session_topic_failure),y}i.addTrace(Q.subscribe_authenticated_session_topic_success),await this.client.session.set(w,m),i.addTrace(Q.store_authenticated_session),await this.client.core.pairing.updateMetadata({topic:r.pairingTopic,metadata:r.requester.metadata})}i.addTrace(Q.publishing_authenticated_session_approve);try{await this.sendResult({topic:h,id:t,result:{cacaos:s,responder:{publicKey:c,metadata:this.client.metadata}},encodeOpts:p,throwOnFailedPublish:!0,appLink:this.getAppLinkIfEnabled(r.requester.metadata,n)})}catch(y){throw i.setError(se.authenticated_session_approve_publish_failure),y}return await this.client.auth.requests.delete(t,{message:\"fulfilled\",code:0}),await this.client.core.pairing.activate({topic:r.pairingTopic}),this.client.core.eventClient.deleteEvent({eventId:i.eventId}),{session:m}},this.rejectSessionAuthenticate=async e=>{this.isInitialized();const{id:t,reason:s}=e,i=this.getPendingAuthRequest(t);if(!i)throw new Error(`Could not find pending auth request with id ${t}`);i.transportType===f.relay&&await this.confirmOnlineStateOrThrow();const r=i.requester.publicKey,n=await this.client.core.crypto.generateKeyPair(),a=Te(r),c={type:Ae,receiverPublicKey:r,senderPublicKey:n};await this.sendError({id:t,topic:a,error:s,encodeOpts:c,rpcOpts:v.wc_sessionAuthenticate.reject,appLink:this.getAppLinkIfEnabled(i.requester.metadata,i.transportType)}),await this.client.auth.requests.delete(t,{message:\"rejected\",code:0}),await this.client.proposal.delete(t,P(\"USER_DISCONNECTED\"))},this.formatAuthMessage=e=>{this.isInitialized();const{request:t,iss:s}=e;return Mt(t,s)},this.processRelayMessageCache=()=>{setTimeout(async()=>{if(this.relayMessageCache.length!==0)for(;this.relayMessageCache.length>0;)try{const e=this.relayMessageCache.shift();e&&await this.onRelayMessage(e)}catch(e){this.client.logger.error(e)}},50)},this.cleanupDuplicatePairings=async e=>{if(e.pairingTopic)try{const t=this.client.core.pairing.pairings.get(e.pairingTopic),s=this.client.core.pairing.pairings.getAll().filter(i=>{var r,n;return((r=i.peerMetadata)==null?void 0:r.url)&&((n=i.peerMetadata)==null?void 0:n.url)===e.peer.metadata.url&&i.topic&&i.topic!==t.topic});if(s.length===0)return;this.client.logger.info(`Cleaning up ${s.length} duplicate pairing(s)`),await Promise.all(s.map(i=>this.client.core.pairing.disconnect({topic:i.topic}))),this.client.logger.info(\"Duplicate pairings clean up finished\")}catch(t){this.client.logger.error(t)}},this.deleteSession=async e=>{var t;const{topic:s,expirerHasDeleted:i=!1,emitEvent:r=!0,id:n=0}=e,{self:a}=this.client.session.get(s);await this.client.core.relayer.unsubscribe(s),await this.client.session.delete(s,P(\"USER_DISCONNECTED\")),this.addToRecentlyDeleted(s,\"session\"),this.client.core.crypto.keychain.has(a.publicKey)&&await this.client.core.crypto.deleteKeyPair(a.publicKey),this.client.core.crypto.keychain.has(s)&&await this.client.core.crypto.deleteSymKey(s),i||this.client.core.expirer.del(s),this.client.core.storage.removeItem(xe).catch(c=>this.client.logger.warn(c)),this.getPendingSessionRequests().forEach(c=>{c.topic===s&&this.deletePendingSessionRequest(c.id,P(\"USER_DISCONNECTED\"))}),s===((t=this.sessionRequestQueue.queue[0])==null?void 0:t.topic)&&(this.sessionRequestQueue.state=x.idle),r&&this.client.events.emit(\"session_delete\",{id:n,topic:s})},this.deleteProposal=async(e,t)=>{if(t)try{const s=this.client.proposal.get(e),i=this.client.core.eventClient.getEvent({topic:s.pairingTopic});i?.setError(F.proposal_expired)}catch{}await Promise.all([this.client.proposal.delete(e,P(\"USER_DISCONNECTED\")),t?Promise.resolve():this.client.core.expirer.del(e)]),this.addToRecentlyDeleted(e,\"proposal\")},this.deletePendingSessionRequest=async(e,t,s=!1)=>{await Promise.all([this.client.pendingRequest.delete(e,t),s?Promise.resolve():this.client.core.expirer.del(e)]),this.addToRecentlyDeleted(e,\"request\"),this.sessionRequestQueue.queue=this.sessionRequestQueue.queue.filter(i=>i.id!==e),s&&(this.sessionRequestQueue.state=x.idle,this.client.events.emit(\"session_request_expire\",{id:e}))},this.deletePendingAuthRequest=async(e,t,s=!1)=>{await Promise.all([this.client.auth.requests.delete(e,t),s?Promise.resolve():this.client.core.expirer.del(e)])},this.setExpiry=async(e,t)=>{this.client.session.keys.includes(e)&&(this.client.core.expirer.set(e,t),await this.client.session.update(e,{expiry:t}))},this.setProposal=async(e,t)=>{this.client.core.expirer.set(e,A(v.wc_sessionPropose.req.ttl)),await this.client.proposal.set(e,t)},this.setAuthRequest=async(e,t)=>{const{request:s,pairingTopic:i,transportType:r=f.relay}=t;this.client.core.expirer.set(e,s.expiryTimestamp),await this.client.auth.requests.set(e,{authPayload:s.authPayload,requester:s.requester,expiryTimestamp:s.expiryTimestamp,id:e,pairingTopic:i,verifyContext:s.verifyContext,transportType:r})},this.setPendingSessionRequest=async e=>{const{id:t,topic:s,params:i,verifyContext:r}=e,n=i.request.expiryTimestamp||A(v.wc_sessionRequest.req.ttl);this.client.core.expirer.set(t,n),await this.client.pendingRequest.set(t,{id:t,topic:s,params:i,verifyContext:r})},this.sendRequest=async e=>{const{topic:t,method:s,params:i,expiry:r,relayRpcId:n,clientRpcId:a,throwOnFailedPublish:c,appLink:h}=e,p=ge(s,i,a);let d;const l=!!h;try{const y=l?ie:de;d=await this.client.core.crypto.encode(t,p,{encoding:y})}catch(y){throw await this.cleanup(),this.client.logger.error(`sendRequest() -> core.crypto.encode() for topic ${t} failed`),y}let w;if(at.includes(s)){const y=X(JSON.stringify(p)),_=X(d);w=await this.client.core.verify.register({id:_,decryptedId:y})}const m=v[s].req;if(m.attestation=w,r&&(m.ttl=r),n&&(m.id=n),this.client.core.history.set(t,p),l){const y=he(h,t,d);await global.Linking.openURL(y,this.client.name)}else{const y=v[s].req;r&&(y.ttl=r),n&&(y.id=n),c?(y.internal=D(I({},y.internal),{throwOnFailedPublish:!0}),await this.client.core.relayer.publish(t,d,y)):this.client.core.relayer.publish(t,d,y).catch(_=>this.client.logger.error(_))}return p.id},this.sendResult=async e=>{const{id:t,topic:s,result:i,throwOnFailedPublish:r,encodeOpts:n,appLink:a}=e,c=rs(t,i);let h;const p=a&&typeof(global==null?void 0:global.Linking)<\"u\";try{const l=p?ie:de;h=await this.client.core.crypto.encode(s,c,D(I({},n||{}),{encoding:l}))}catch(l){throw await this.cleanup(),this.client.logger.error(`sendResult() -> core.crypto.encode() for topic ${s} failed`),l}let d;try{d=await this.client.core.history.get(s,t)}catch(l){throw this.client.logger.error(`sendResult() -> history.get(${s}, ${t}) failed`),l}if(p){const l=he(a,s,h);await global.Linking.openURL(l,this.client.name)}else{const l=v[d.request.method].res;r?(l.internal=D(I({},l.internal),{throwOnFailedPublish:!0}),await this.client.core.relayer.publish(s,h,l)):this.client.core.relayer.publish(s,h,l).catch(w=>this.client.logger.error(w))}await this.client.core.history.resolve(c)},this.sendError=async e=>{const{id:t,topic:s,error:i,encodeOpts:r,rpcOpts:n,appLink:a}=e,c=ns(t,i);let h;const p=a&&typeof(global==null?void 0:global.Linking)<\"u\";try{const l=p?ie:de;h=await this.client.core.crypto.encode(s,c,D(I({},r||{}),{encoding:l}))}catch(l){throw await this.cleanup(),this.client.logger.error(`sendError() -> core.crypto.encode() for topic ${s} failed`),l}let d;try{d=await this.client.core.history.get(s,t)}catch(l){throw this.client.logger.error(`sendError() -> history.get(${s}, ${t}) failed`),l}if(p){const l=he(a,s,h);await global.Linking.openURL(l,this.client.name)}else{const l=n||v[d.request.method].res;this.client.core.relayer.publish(s,h,l)}await this.client.core.history.resolve(c)},this.cleanup=async()=>{const e=[],t=[];this.client.session.getAll().forEach(s=>{let i=!1;J(s.expiry)&&(i=!0),this.client.core.crypto.keychain.has(s.topic)||(i=!0),i&&e.push(s.topic)}),this.client.proposal.getAll().forEach(s=>{J(s.expiryTimestamp)&&t.push(s.id)}),await Promise.all([...e.map(s=>this.deleteSession({topic:s})),...t.map(s=>this.deleteProposal(s))])},this.onRelayEventRequest=async e=>{this.requestQueue.queue.push(e),await this.processRequestsQueue()},this.processRequestsQueue=async()=>{if(this.requestQueue.state===x.active){this.client.logger.info(\"Request queue already active, skipping...\");return}for(this.client.logger.info(`Request queue starting with ${this.requestQueue.queue.length} requests`);this.requestQueue.queue.length>0;){this.requestQueue.state=x.active;const e=this.requestQueue.queue.shift();if(e)try{await this.processRequest(e)}catch(t){this.client.logger.warn(t)}}this.requestQueue.state=x.idle},this.processRequest=async e=>{const{topic:t,payload:s,attestation:i,transportType:r,encryptedId:n}=e,a=s.method;if(!this.shouldIgnorePairingRequest({topic:t,requestMethod:a}))switch(a){case\"wc_sessionPropose\":return await this.onSessionProposeRequest({topic:t,payload:s,attestation:i,encryptedId:n});case\"wc_sessionSettle\":return await this.onSessionSettleRequest(t,s);case\"wc_sessionUpdate\":return await this.onSessionUpdateRequest(t,s);case\"wc_sessionExtend\":return await this.onSessionExtendRequest(t,s);case\"wc_sessionPing\":return await this.onSessionPingRequest(t,s);case\"wc_sessionDelete\":return await this.onSessionDeleteRequest(t,s);case\"wc_sessionRequest\":return await this.onSessionRequest({topic:t,payload:s,attestation:i,encryptedId:n,transportType:r});case\"wc_sessionEvent\":return await this.onSessionEventRequest(t,s);case\"wc_sessionAuthenticate\":return await this.onSessionAuthenticateRequest({topic:t,payload:s,attestation:i,encryptedId:n,transportType:r});default:return this.client.logger.info(`Unsupported request method ${a}`)}},this.onRelayEventResponse=async e=>{const{topic:t,payload:s,transportType:i}=e,r=(await this.client.core.history.get(t,s.id)).request.method;switch(r){case\"wc_sessionPropose\":return this.onSessionProposeResponse(t,s,i);case\"wc_sessionSettle\":return this.onSessionSettleResponse(t,s);case\"wc_sessionUpdate\":return this.onSessionUpdateResponse(t,s);case\"wc_sessionExtend\":return this.onSessionExtendResponse(t,s);case\"wc_sessionPing\":return this.onSessionPingResponse(t,s);case\"wc_sessionRequest\":return this.onSessionRequestResponse(t,s);case\"wc_sessionAuthenticate\":return this.onSessionAuthenticateResponse(t,s);default:return this.client.logger.info(`Unsupported response method ${r}`)}},this.onRelayEventUnknownPayload=e=>{const{topic:t}=e,{message:s}=u(\"MISSING_OR_INVALID\",`Decoded payload on topic ${t} is not identifiable as a JSON-RPC request or a response.`);throw new Error(s)},this.shouldIgnorePairingRequest=e=>{const{topic:t,requestMethod:s}=e,i=this.expectedPairingMethodMap.get(t);return!i||i.includes(s)?!1:!!(i.includes(\"wc_sessionAuthenticate\")&&this.client.events.listenerCount(\"session_authenticate\")>0)},this.onSessionProposeRequest=async e=>{const{topic:t,payload:s,attestation:i,encryptedId:r}=e,{params:n,id:a}=s;try{const c=this.client.core.eventClient.getEvent({topic:t});this.isValidConnect(I({},s.params));const h=n.expiryTimestamp||A(v.wc_sessionPropose.req.ttl),p=I({id:a,pairingTopic:t,expiryTimestamp:h},n);await this.setProposal(a,p);const d=await this.getVerifyContext({attestationId:i,hash:X(JSON.stringify(s)),encryptedId:r,metadata:p.proposer.metadata});this.client.events.listenerCount(\"session_proposal\")===0&&(console.warn(\"No listener for session_proposal event\"),c?.setError(Rt.proposal_listener_not_found)),c?.addTrace(St.emit_session_proposal),this.client.events.emit(\"session_proposal\",{id:a,params:p,verifyContext:d})}catch(c){await this.sendError({id:a,topic:t,error:c,rpcOpts:v.wc_sessionPropose.autoReject}),this.client.logger.error(c)}},this.onSessionProposeResponse=async(e,t,s)=>{const{id:i}=t;if(K(t)){const{result:r}=t;this.client.logger.trace({type:\"method\",method:\"onSessionProposeResponse\",result:r});const n=this.client.proposal.get(i);this.client.logger.trace({type:\"method\",method:\"onSessionProposeResponse\",proposal:n});const a=n.proposer.publicKey;this.client.logger.trace({type:\"method\",method:\"onSessionProposeResponse\",selfPublicKey:a});const c=r.responderPublicKey;this.client.logger.trace({type:\"method\",method:\"onSessionProposeResponse\",peerPublicKey:c});const h=await this.client.core.crypto.generateSharedKey(a,c);this.client.logger.trace({type:\"method\",method:\"onSessionProposeResponse\",sessionTopic:h});const p=await this.client.core.relayer.subscribe(h,{transportType:s});this.client.logger.trace({type:\"method\",method:\"onSessionProposeResponse\",subscriptionId:p}),await this.client.core.pairing.activate({topic:e})}else if(U(t)){await this.client.proposal.delete(i,P(\"USER_DISCONNECTED\"));const r=g(\"session_connect\");if(this.events.listenerCount(r)===0)throw new Error(`emitting ${r} without any listeners, 954`);this.events.emit(g(\"session_connect\"),{error:t.error})}},this.onSessionSettleRequest=async(e,t)=>{const{id:s,params:i}=t;try{this.isValidSessionSettleRequest(i);const{relay:r,controller:n,expiry:a,namespaces:c,sessionProperties:h,sessionConfig:p}=t.params,d=D(I(I({topic:e,relay:r,expiry:a,namespaces:c,acknowledged:!0,pairingTopic:\"\",requiredNamespaces:{},optionalNamespaces:{},controller:n.publicKey,self:{publicKey:\"\",metadata:this.client.metadata},peer:{publicKey:n.publicKey,metadata:n.metadata}},h&&{sessionProperties:h}),p&&{sessionConfig:p}),{transportType:f.relay}),l=g(\"session_connect\");if(this.events.listenerCount(l)===0)throw new Error(`emitting ${l} without any listeners 997`);this.events.emit(g(\"session_connect\"),{session:d}),await this.sendResult({id:t.id,topic:e,result:!0,throwOnFailedPublish:!0})}catch(r){await this.sendError({id:s,topic:e,error:r}),this.client.logger.error(r)}},this.onSessionSettleResponse=async(e,t)=>{const{id:s}=t;K(t)?(await this.client.session.update(e,{acknowledged:!0}),this.events.emit(g(\"session_approve\",s),{})):U(t)&&(await this.client.session.delete(e,P(\"USER_DISCONNECTED\")),this.events.emit(g(\"session_approve\",s),{error:t.error}))},this.onSessionUpdateRequest=async(e,t)=>{const{params:s,id:i}=t;try{const r=`${e}_session_update`,n=re.get(r);if(n&&this.isRequestOutOfSync(n,i)){this.client.logger.info(`Discarding out of sync request - ${i}`),this.sendError({id:i,topic:e,error:P(\"INVALID_UPDATE_REQUEST\")});return}this.isValidUpdate(I({topic:e},s));try{re.set(r,i),await this.client.session.update(e,{namespaces:s.namespaces}),await this.sendResult({id:i,topic:e,result:!0,throwOnFailedPublish:!0})}catch(a){throw re.delete(r),a}this.client.events.emit(\"session_update\",{id:i,topic:e,params:s})}catch(r){await this.sendError({id:i,topic:e,error:r}),this.client.logger.error(r)}},this.isRequestOutOfSync=(e,t)=>parseInt(t.toString().slice(0,-3))<=parseInt(e.toString().slice(0,-3)),this.onSessionUpdateResponse=(e,t)=>{const{id:s}=t,i=g(\"session_update\",s);if(this.events.listenerCount(i)===0)throw new Error(`emitting ${i} without any listeners`);K(t)?this.events.emit(g(\"session_update\",s),{}):U(t)&&this.events.emit(g(\"session_update\",s),{error:t.error})},this.onSessionExtendRequest=async(e,t)=>{const{id:s}=t;try{this.isValidExtend({topic:e}),await this.setExpiry(e,A(z)),await this.sendResult({id:s,topic:e,result:!0,throwOnFailedPublish:!0}),this.client.events.emit(\"session_extend\",{id:s,topic:e})}catch(i){await this.sendError({id:s,topic:e,error:i}),this.client.logger.error(i)}},this.onSessionExtendResponse=(e,t)=>{const{id:s}=t,i=g(\"session_extend\",s);if(this.events.listenerCount(i)===0)throw new Error(`emitting ${i} without any listeners`);K(t)?this.events.emit(g(\"session_extend\",s),{}):U(t)&&this.events.emit(g(\"session_extend\",s),{error:t.error})},this.onSessionPingRequest=async(e,t)=>{const{id:s}=t;try{this.isValidPing({topic:e}),await this.sendResult({id:s,topic:e,result:!0,throwOnFailedPublish:!0}),this.client.events.emit(\"session_ping\",{id:s,topic:e})}catch(i){await this.sendError({id:s,topic:e,error:i}),this.client.logger.error(i)}},this.onSessionPingResponse=(e,t)=>{const{id:s}=t,i=g(\"session_ping\",s);if(this.events.listenerCount(i)===0)throw new Error(`emitting ${i} without any listeners`);setTimeout(()=>{K(t)?this.events.emit(g(\"session_ping\",s),{}):U(t)&&this.events.emit(g(\"session_ping\",s),{error:t.error})},500)},this.onSessionDeleteRequest=async(e,t)=>{const{id:s}=t;try{this.isValidDisconnect({topic:e,reason:t.params}),Promise.all([new Promise(i=>{this.client.core.relayer.once(Ue.publish,async()=>{i(await this.deleteSession({topic:e,id:s}))})}),this.sendResult({id:s,topic:e,result:!0,throwOnFailedPublish:!0}),this.cleanupPendingSentRequestsForTopic({topic:e,error:P(\"USER_DISCONNECTED\")})]).catch(i=>this.client.logger.error(i))}catch(i){this.client.logger.error(i)}},this.onSessionRequest=async e=>{var t,s,i;const{topic:r,payload:n,attestation:a,encryptedId:c,transportType:h}=e,{id:p,params:d}=n;try{await this.isValidRequest(I({topic:r},d));const l=this.client.session.get(r),w=await this.getVerifyContext({attestationId:a,hash:X(JSON.stringify(ge(\"wc_sessionRequest\",d,p))),encryptedId:c,metadata:l.peer.metadata,transportType:h}),m={id:p,topic:r,params:d,verifyContext:w};await this.setPendingSessionRequest(m),h===f.link_mode&&(t=l.peer.metadata.redirect)!=null&&t.universal&&this.client.core.addLinkModeSupportedApp((s=l.peer.metadata.redirect)==null?void 0:s.universal),(i=this.client.signConfig)!=null&&i.disableRequestQueue?this.emitSessionRequest(m):(this.addSessionRequestToSessionRequestQueue(m),this.processSessionRequestQueue())}catch(l){await this.sendError({id:p,topic:r,error:l}),this.client.logger.error(l)}},this.onSessionRequestResponse=(e,t)=>{const{id:s}=t,i=g(\"session_request\",s);if(this.events.listenerCount(i)===0)throw new Error(`emitting ${i} without any listeners`);K(t)?this.events.emit(g(\"session_request\",s),{result:t.result}):U(t)&&this.events.emit(g(\"session_request\",s),{error:t.error})},this.onSessionEventRequest=async(e,t)=>{const{id:s,params:i}=t;try{const r=`${e}_session_event_${i.event.name}`,n=re.get(r);if(n&&this.isRequestOutOfSync(n,s)){this.client.logger.info(`Discarding out of sync request - ${s}`);return}this.isValidEmit(I({topic:e},i)),this.client.events.emit(\"session_event\",{id:s,topic:e,params:i}),re.set(r,s)}catch(r){await this.sendError({id:s,topic:e,error:r}),this.client.logger.error(r)}},this.onSessionAuthenticateResponse=(e,t)=>{const{id:s}=t;this.client.logger.trace({type:\"method\",method:\"onSessionAuthenticateResponse\",topic:e,payload:t}),K(t)?this.events.emit(g(\"session_request\",s),{result:t.result}):U(t)&&this.events.emit(g(\"session_request\",s),{error:t.error})},this.onSessionAuthenticateRequest=async e=>{var t;const{topic:s,payload:i,attestation:r,encryptedId:n,transportType:a}=e;try{const{requester:c,authPayload:h,expiryTimestamp:p}=i.params,d=await this.getVerifyContext({attestationId:r,hash:X(JSON.stringify(i)),encryptedId:n,metadata:c.metadata,transportType:a}),l={requester:c,pairingTopic:s,id:i.id,authPayload:h,verifyContext:d,expiryTimestamp:p};await this.setAuthRequest(i.id,{request:l,pairingTopic:s,transportType:a}),a===f.link_mode&&(t=c.metadata.redirect)!=null&&t.universal&&this.client.core.addLinkModeSupportedApp(c.metadata.redirect.universal),this.client.events.emit(\"session_authenticate\",{topic:s,params:i.params,id:i.id,verifyContext:d})}catch(c){this.client.logger.error(c);const h=i.params.requester.publicKey,p=await this.client.core.crypto.generateKeyPair(),d=this.getAppLinkIfEnabled(i.params.requester.metadata,a),l={type:Ae,receiverPublicKey:h,senderPublicKey:p};await this.sendError({id:i.id,topic:s,error:c,encodeOpts:l,rpcOpts:v.wc_sessionAuthenticate.autoReject,appLink:d})}},this.addSessionRequestToSessionRequestQueue=e=>{this.sessionRequestQueue.queue.push(e)},this.cleanupAfterResponse=e=>{this.deletePendingSessionRequest(e.response.id,{message:\"fulfilled\",code:0}),setTimeout(()=>{this.sessionRequestQueue.state=x.idle,this.processSessionRequestQueue()},tt(this.requestQueueDelay))},this.cleanupPendingSentRequestsForTopic=({topic:e,error:t})=>{const s=this.client.core.history.pending;s.length>0&&s.filter(i=>i.topic===e&&i.request.method===\"wc_sessionRequest\").forEach(i=>{const r=i.request.id,n=g(\"session_request\",r);if(this.events.listenerCount(n)===0)throw new Error(`emitting ${n} without any listeners`);this.events.emit(g(\"session_request\",i.request.id),{error:t})})},this.processSessionRequestQueue=()=>{if(this.sessionRequestQueue.state===x.active){this.client.logger.info(\"session request queue is already active.\");return}const e=this.sessionRequestQueue.queue[0];if(!e){this.client.logger.info(\"session request queue is empty.\");return}try{this.sessionRequestQueue.state=x.active,this.emitSessionRequest(e)}catch(t){this.client.logger.error(t)}},this.emitSessionRequest=e=>{this.client.events.emit(\"session_request\",e)},this.onPairingCreated=e=>{if(e.methods&&this.expectedPairingMethodMap.set(e.topic,e.methods),e.active)return;const t=this.client.proposal.getAll().find(s=>s.pairingTopic===e.topic);t&&this.onSessionProposeRequest({topic:e.topic,payload:ge(\"wc_sessionPropose\",{requiredNamespaces:t.requiredNamespaces,optionalNamespaces:t.optionalNamespaces,relays:t.relays,proposer:t.proposer,sessionProperties:t.sessionProperties},t.id)})},this.isValidConnect=async e=>{if(!L(e)){const{message:a}=u(\"MISSING_OR_INVALID\",`connect() params: ${JSON.stringify(e)}`);throw new Error(a)}const{pairingTopic:t,requiredNamespaces:s,optionalNamespaces:i,sessionProperties:r,relays:n}=e;if(ne(t)||await this.isValidPairingTopic(t),!kt(n,!0)){const{message:a}=u(\"MISSING_OR_INVALID\",`connect() relays: ${n}`);throw new Error(a)}!ne(s)&&Xe(s)!==0&&this.validateNamespaces(s,\"requiredNamespaces\"),!ne(i)&&Xe(i)!==0&&this.validateNamespaces(i,\"optionalNamespaces\"),ne(r)||this.validateSessionProps(r,\"sessionProperties\")},this.validateNamespaces=(e,t)=>{const s=$t(e,\"connect()\",t);if(s)throw new Error(s.message)},this.isValidApprove=async e=>{if(!L(e))throw new Error(u(\"MISSING_OR_INVALID\",`approve() params: ${e}`).message);const{id:t,namespaces:s,relayProtocol:i,sessionProperties:r}=e;this.checkRecentlyDeleted(t),await this.isValidProposalId(t);const n=this.client.proposal.get(t),a=Oe(s,\"approve()\");if(a)throw new Error(a.message);const c=Je(n.requiredNamespaces,s,\"approve()\");if(c)throw new Error(c.message);if(!k(i,!0)){const{message:h}=u(\"MISSING_OR_INVALID\",`approve() relayProtocol: ${i}`);throw new Error(h)}ne(r)||this.validateSessionProps(r,\"sessionProperties\")},this.isValidReject=async e=>{if(!L(e)){const{message:i}=u(\"MISSING_OR_INVALID\",`reject() params: ${e}`);throw new Error(i)}const{id:t,reason:s}=e;if(this.checkRecentlyDeleted(t),await this.isValidProposalId(t),!Kt(s)){const{message:i}=u(\"MISSING_OR_INVALID\",`reject() reason: ${JSON.stringify(s)}`);throw new Error(i)}},this.isValidSessionSettleRequest=e=>{if(!L(e)){const{message:c}=u(\"MISSING_OR_INVALID\",`onSessionSettleRequest() params: ${e}`);throw new Error(c)}const{relay:t,controller:s,namespaces:i,expiry:r}=e;if(!Ut(t)){const{message:c}=u(\"MISSING_OR_INVALID\",\"onSessionSettleRequest() relay protocol should be a string\");throw new Error(c)}const n=Gt(s,\"onSessionSettleRequest()\");if(n)throw new Error(n.message);const a=Oe(i,\"onSessionSettleRequest()\");if(a)throw new Error(a.message);if(J(r)){const{message:c}=u(\"EXPIRED\",\"onSessionSettleRequest()\");throw new Error(c)}},this.isValidUpdate=async e=>{if(!L(e)){const{message:a}=u(\"MISSING_OR_INVALID\",`update() params: ${e}`);throw new Error(a)}const{topic:t,namespaces:s}=e;this.checkRecentlyDeleted(t),await this.isValidSessionTopic(t);const i=this.client.session.get(t),r=Oe(s,\"update()\");if(r)throw new Error(r.message);const n=Je(i.requiredNamespaces,s,\"update()\");if(n)throw new Error(n.message)},this.isValidExtend=async e=>{if(!L(e)){const{message:s}=u(\"MISSING_OR_INVALID\",`extend() params: ${e}`);throw new Error(s)}const{topic:t}=e;this.checkRecentlyDeleted(t),await this.isValidSessionTopic(t)},this.isValidRequest=async e=>{if(!L(e)){const{message:a}=u(\"MISSING_OR_INVALID\",`request() params: ${e}`);throw new Error(a)}const{topic:t,request:s,chainId:i,expiry:r}=e;this.checkRecentlyDeleted(t),await this.isValidSessionTopic(t);const{namespaces:n}=this.client.session.get(t);if(!Be(n,i)){const{message:a}=u(\"MISSING_OR_INVALID\",`request() chainId: ${i}`);throw new Error(a)}if(!jt(s)){const{message:a}=u(\"MISSING_OR_INVALID\",`request() ${JSON.stringify(s)}`);throw new Error(a)}if(!Ft(n,i,s.method)){const{message:a}=u(\"MISSING_OR_INVALID\",`request() method: ${s.method}`);throw new Error(a)}if(r&&!Qt(r,me)){const{message:a}=u(\"MISSING_OR_INVALID\",`request() expiry: ${r}. Expiry must be a number (in seconds) between ${me.min} and ${me.max}`);throw new Error(a)}},this.isValidRespond=async e=>{var t;if(!L(e)){const{message:r}=u(\"MISSING_OR_INVALID\",`respond() params: ${e}`);throw new Error(r)}const{topic:s,response:i}=e;try{await this.isValidSessionTopic(s)}catch(r){throw(t=e?.response)!=null&&t.id&&this.cleanupAfterResponse(e),r}if(!zt(i)){const{message:r}=u(\"MISSING_OR_INVALID\",`respond() response: ${JSON.stringify(i)}`);throw new Error(r)}},this.isValidPing=async e=>{if(!L(e)){const{message:s}=u(\"MISSING_OR_INVALID\",`ping() params: ${e}`);throw new Error(s)}const{topic:t}=e;await this.isValidSessionOrPairingTopic(t)},this.isValidEmit=async e=>{if(!L(e)){const{message:n}=u(\"MISSING_OR_INVALID\",`emit() params: ${e}`);throw new Error(n)}const{topic:t,event:s,chainId:i}=e;await this.isValidSessionTopic(t);const{namespaces:r}=this.client.session.get(t);if(!Be(r,i)){const{message:n}=u(\"MISSING_OR_INVALID\",`emit() chainId: ${i}`);throw new Error(n)}if(!Ht(s)){const{message:n}=u(\"MISSING_OR_INVALID\",`emit() event: ${JSON.stringify(s)}`);throw new Error(n)}if(!Yt(r,i,s.name)){const{message:n}=u(\"MISSING_OR_INVALID\",`emit() event: ${JSON.stringify(s)}`);throw new Error(n)}},this.isValidDisconnect=async e=>{if(!L(e)){const{message:s}=u(\"MISSING_OR_INVALID\",`disconnect() params: ${e}`);throw new Error(s)}const{topic:t}=e;await this.isValidSessionOrPairingTopic(t)},this.isValidAuthenticate=e=>{const{chains:t,uri:s,domain:i,nonce:r}=e;if(!Array.isArray(t)||t.length===0)throw new Error(\"chains is required and must be a non-empty array\");if(!k(s,!1))throw new Error(\"uri is required parameter\");if(!k(i,!1))throw new Error(\"domain is required parameter\");if(!k(r,!1))throw new Error(\"nonce is required parameter\");if([...new Set(t.map(a=>Ne(a).namespace))].length>1)throw new Error(\"Multi-namespace requests are not supported. Please request single namespace only.\");const{namespace:n}=Ne(t[0]);if(n!==\"eip155\")throw new Error(\"Only eip155 namespace is supported for authenticated sessions. Please use .connect() for non-eip155 chains.\")},this.getVerifyContext=async e=>{const{attestationId:t,hash:s,encryptedId:i,metadata:r,transportType:n}=e,a={verified:{verifyUrl:r.verifyUrl||It,validation:\"UNKNOWN\",origin:r.url||\"\"}};try{if(n===f.link_mode){const h=this.getAppLinkIfEnabled(r,n);return a.verified.validation=h&&new URL(h).origin===new URL(r.url).origin?\"VALID\":\"INVALID\",a}const c=await this.client.core.verify.resolve({attestationId:t,hash:s,encryptedId:i,verifyUrl:r.verifyUrl});c&&(a.verified.origin=c.origin,a.verified.isScam=c.isScam,a.verified.validation=c.origin===new URL(r.url).origin?\"VALID\":\"INVALID\")}catch(c){this.client.logger.warn(c)}return this.client.logger.debug(`Verify context: ${JSON.stringify(a)}`),a},this.validateSessionProps=(e,t)=>{Object.values(e).forEach(s=>{if(!k(s,!1)){const{message:i}=u(\"MISSING_OR_INVALID\",`${t} must be in Record format. Received: ${JSON.stringify(s)}`);throw new Error(i)}})},this.getPendingAuthRequest=e=>{const t=this.client.auth.requests.get(e);return typeof t==\"object\"?t:void 0},this.addToRecentlyDeleted=(e,t)=>{if(this.recentlyDeletedMap.set(e,t),this.recentlyDeletedMap.size>=this.recentlyDeletedLimit){let s=0;const i=this.recentlyDeletedLimit/2;for(const r of this.recentlyDeletedMap.keys()){if(s++>=i)break;this.recentlyDeletedMap.delete(r)}}},this.checkRecentlyDeleted=e=>{const t=this.recentlyDeletedMap.get(e);if(t){const{message:s}=u(\"MISSING_OR_INVALID\",`Record was recently deleted - ${t}: ${e}`);throw new Error(s)}},this.isLinkModeEnabled=(e,t)=>{var s,i,r,n,a,c,h,p,d;return!e||t!==f.link_mode?!1:((i=(s=this.client.metadata)==null?void 0:s.redirect)==null?void 0:i.linkMode)===!0&&((n=(r=this.client.metadata)==null?void 0:r.redirect)==null?void 0:n.universal)!==void 0&&((c=(a=this.client.metadata)==null?void 0:a.redirect)==null?void 0:c.universal)!==\"\"&&((h=e?.redirect)==null?void 0:h.universal)!==void 0&&((p=e?.redirect)==null?void 0:p.universal)!==\"\"&&((d=e?.redirect)==null?void 0:d.linkMode)===!0&&this.client.core.linkModeSupportedApps.includes(e.redirect.universal)&&typeof(global==null?void 0:global.Linking)<\"u\"},this.getAppLinkIfEnabled=(e,t)=>{var s;return this.isLinkModeEnabled(e,t)?(s=e?.redirect)==null?void 0:s.universal:void 0},this.handleLinkModeMessage=({url:e})=>{if(!e||!e.includes(\"wc_ev\")||!e.includes(\"topic\"))return;const t=We(e,\"topic\")||\"\",s=decodeURIComponent(We(e,\"wc_ev\")||\"\"),i=this.client.session.keys.includes(t);i&&this.client.session.update(t,{transportType:f.link_mode}),this.client.core.dispatchEnvelope({topic:t,message:s,sessionExists:i})},this.registerLinkModeListeners=async()=>{var e;if(Xt()||Jt()&&(e=this.client.metadata.redirect)!=null&&e.linkMode){const t=global==null?void 0:global.Linking;if(typeof t<\"u\"){t.addEventListener(\"url\",this.handleLinkModeMessage,this.client.name);const s=await t.getInitialURL();s&&setTimeout(()=>{this.handleLinkModeMessage({url:s})},50)}}}}isInitialized(){if(!this.initialized){const{message:o}=u(\"NOT_INITIALIZED\",this.name);throw new Error(o)}}async confirmOnlineStateOrThrow(){await this.client.core.relayer.confirmOnlineStateOrThrow()}registerRelayerEvents(){this.client.core.relayer.on(Ue.message,o=>{!this.initialized||this.relayMessageCache.length>0?this.relayMessageCache.push(o):this.onRelayMessage(o)})}async onRelayMessage(o){const{topic:e,message:t,attestation:s,transportType:i}=o,{publicKey:r}=this.client.auth.authKeys.keys.includes(ae)?this.client.auth.authKeys.get(ae):{responseTopic:void 0,publicKey:void 0},n=await this.client.core.crypto.decode(e,t,{receiverPublicKey:r,encoding:i===f.link_mode?ie:de});try{os(n)?(this.client.core.history.set(e,n),this.onRelayEventRequest({topic:e,payload:n,attestation:s,transportType:i,encryptedId:X(t)})):as(n)?(await this.client.core.history.resolve(n),await this.onRelayEventResponse({topic:e,payload:n,transportType:i}),this.client.core.history.delete(e,n.id)):this.onRelayEventUnknownPayload({topic:e,payload:n,transportType:i})}catch(a){this.client.logger.error(a)}}registerExpirerEvents(){this.client.core.expirer.on(ft.expired,async o=>{const{topic:e,id:t}=Bt(o.target);if(t&&this.client.pendingRequest.keys.includes(t))return await this.deletePendingSessionRequest(t,u(\"EXPIRED\"),!0);if(t&&this.client.auth.requests.keys.includes(t))return await this.deletePendingAuthRequest(t,u(\"EXPIRED\"),!0);e?this.client.session.keys.includes(e)&&(await this.deleteSession({topic:e,expirerHasDeleted:!0}),this.client.events.emit(\"session_expire\",{topic:e})):t&&(await this.deleteProposal(t,!0),this.client.events.emit(\"proposal_expire\",{id:t}))})}registerPairingEvents(){this.client.core.pairing.events.on(Ge.create,o=>this.onPairingCreated(o)),this.client.core.pairing.events.on(Ge.delete,o=>{this.addToRecentlyDeleted(o.topic,\"pairing\")})}isValidPairingTopic(o){if(!k(o,!1)){const{message:e}=u(\"MISSING_OR_INVALID\",`pairing topic should be a string: ${o}`);throw new Error(e)}if(!this.client.core.pairing.pairings.keys.includes(o)){const{message:e}=u(\"NO_MATCHING_KEY\",`pairing topic doesn't exist: ${o}`);throw new Error(e)}if(J(this.client.core.pairing.pairings.get(o).expiry)){const{message:e}=u(\"EXPIRED\",`pairing topic: ${o}`);throw new Error(e)}}async isValidSessionTopic(o){if(!k(o,!1)){const{message:e}=u(\"MISSING_OR_INVALID\",`session topic should be a string: ${o}`);throw new Error(e)}if(this.checkRecentlyDeleted(o),!this.client.session.keys.includes(o)){const{message:e}=u(\"NO_MATCHING_KEY\",`session topic doesn't exist: ${o}`);throw new Error(e)}if(J(this.client.session.get(o).expiry)){await this.deleteSession({topic:o});const{message:e}=u(\"EXPIRED\",`session topic: ${o}`);throw new Error(e)}if(!this.client.core.crypto.keychain.has(o)){const{message:e}=u(\"MISSING_OR_INVALID\",`session topic does not exist in keychain: ${o}`);throw await this.deleteSession({topic:o}),new Error(e)}}async isValidSessionOrPairingTopic(o){if(this.checkRecentlyDeleted(o),this.client.session.keys.includes(o))await this.isValidSessionTopic(o);else if(this.client.core.pairing.pairings.keys.includes(o))this.isValidPairingTopic(o);else if(k(o,!1)){const{message:e}=u(\"NO_MATCHING_KEY\",`session or pairing topic doesn't exist: ${o}`);throw new Error(e)}else{const{message:e}=u(\"MISSING_OR_INVALID\",`session or pairing topic should be a string: ${o}`);throw new Error(e)}}async isValidProposalId(o){if(!Wt(o)){const{message:e}=u(\"MISSING_OR_INVALID\",`proposal id should be a number: ${o}`);throw new Error(e)}if(!this.client.proposal.keys.includes(o)){const{message:e}=u(\"NO_MATCHING_KEY\",`proposal id doesn't exist: ${o}`);throw new Error(e)}if(J(this.client.proposal.get(o).expiryTimestamp)){await this.deleteProposal(o);const{message:e}=u(\"EXPIRED\",`proposal id: ${o}`);throw new Error(e)}}}class Ss extends H{constructor(o,e){super(o,e,st,ye),this.core=o,this.logger=e}}class yt extends H{constructor(o,e){super(o,e,rt,ye),this.core=o,this.logger=e}}class Is extends H{constructor(o,e){super(o,e,ot,ye,t=>t.id),this.core=o,this.logger=e}}class fs extends H{constructor(o,e){super(o,e,pt,oe,()=>ae),this.core=o,this.logger=e}}class vs extends H{constructor(o,e){super(o,e,ht,oe),this.core=o,this.logger=e}}class qs extends H{constructor(o,e){super(o,e,dt,oe,t=>t.id),this.core=o,this.logger=e}}class Ts{constructor(o,e){this.core=o,this.logger=e,this.authKeys=new fs(this.core,this.logger),this.pairingTopics=new vs(this.core,this.logger),this.requests=new qs(this.core,this.logger)}async init(){await this.authKeys.init(),await this.pairingTopics.init(),await this.requests.init()}}class _e extends At{constructor(o){super(o),this.protocol=be,this.version=Ce,this.name=we.name,this.events=new ts,this.on=(t,s)=>this.events.on(t,s),this.once=(t,s)=>this.events.once(t,s),this.off=(t,s)=>this.events.off(t,s),this.removeListener=(t,s)=>this.events.removeListener(t,s),this.removeAllListeners=t=>this.events.removeAllListeners(t),this.connect=async t=>{try{return await this.engine.connect(t)}catch(s){throw this.logger.error(s.message),s}},this.pair=async t=>{try{return await this.engine.pair(t)}catch(s){throw this.logger.error(s.message),s}},this.approve=async t=>{try{return await this.engine.approve(t)}catch(s){throw this.logger.error(s.message),s}},this.reject=async t=>{try{return await this.engine.reject(t)}catch(s){throw this.logger.error(s.message),s}},this.update=async t=>{try{return await this.engine.update(t)}catch(s){throw this.logger.error(s.message),s}},this.extend=async t=>{try{return await this.engine.extend(t)}catch(s){throw this.logger.error(s.message),s}},this.request=async t=>{try{return await this.engine.request(t)}catch(s){throw this.logger.error(s.message),s}},this.respond=async t=>{try{return await this.engine.respond(t)}catch(s){throw this.logger.error(s.message),s}},this.ping=async t=>{try{return await this.engine.ping(t)}catch(s){throw this.logger.error(s.message),s}},this.emit=async t=>{try{return await this.engine.emit(t)}catch(s){throw this.logger.error(s.message),s}},this.disconnect=async t=>{try{return await this.engine.disconnect(t)}catch(s){throw this.logger.error(s.message),s}},this.find=t=>{try{return this.engine.find(t)}catch(s){throw this.logger.error(s.message),s}},this.getPendingSessionRequests=()=>{try{return this.engine.getPendingSessionRequests()}catch(t){throw this.logger.error(t.message),t}},this.authenticate=async(t,s)=>{try{return await this.engine.authenticate(t,s)}catch(i){throw this.logger.error(i.message),i}},this.formatAuthMessage=t=>{try{return this.engine.formatAuthMessage(t)}catch(s){throw this.logger.error(s.message),s}},this.approveSessionAuthenticate=async t=>{try{return await this.engine.approveSessionAuthenticate(t)}catch(s){throw this.logger.error(s.message),s}},this.rejectSessionAuthenticate=async t=>{try{return await this.engine.rejectSessionAuthenticate(t)}catch(s){throw this.logger.error(s.message),s}},this.name=o?.name||we.name,this.metadata=o?.metadata||Zt(),this.signConfig=o?.signConfig;const e=typeof o?.logger<\"u\"&&typeof o?.logger!=\"string\"?o.logger:qt(Tt({level:o?.logger||we.logger}));this.core=o?.core||new vt(o),this.logger=Nt(e,this.name),this.session=new yt(this.core,this.logger),this.proposal=new Ss(this.core,this.logger),this.pendingRequest=new Is(this.core,this.logger),this.engine=new Rs(this),this.auth=new Ts(this.core,this.logger)}static async init(o){const e=new _e(o);return await e.initialize(),e}get context(){return Pt(this.logger)}get pairing(){return this.core.pairing.pairings}async initialize(){this.logger.trace(\"Initialized\");try{await this.core.start(),await this.session.init(),await this.proposal.init(),await this.pendingRequest.init(),await this.auth.init(),await this.engine.init(),this.logger.info(\"SignClient Initialization Success\"),this.engine.processRelayMessageCache()}catch(o){throw this.logger.info(\"SignClient Initialization Failure\"),this.logger.error(o.message),o}}}const Ns=yt,Ps=_e;export{lt as AUTH_CONTEXT,pt as AUTH_KEYS_CONTEXT,ht as AUTH_PAIRING_TOPIC_CONTEXT,ct as AUTH_PROTOCOL,ae as AUTH_PUBLIC_KEY_NAME,dt as AUTH_REQUEST_CONTEXT,oe as AUTH_STORAGE_PREFIX,gs as AUTH_VERSION,nt as ENGINE_CONTEXT,x as ENGINE_QUEUE_STATES,v as ENGINE_RPC_OPTS,hs as HISTORY_CONTEXT,ps as HISTORY_EVENTS,ds as HISTORY_STORAGE_VERSION,at as METHODS_TO_VERIFY,st as PROPOSAL_CONTEXT,us as PROPOSAL_EXPIRY,it as PROPOSAL_EXPIRY_MESSAGE,ot as REQUEST_CONTEXT,rt as SESSION_CONTEXT,z as SESSION_EXPIRY,me as SESSION_REQUEST_EXPIRY_BOUNDARIES,Le as SIGN_CLIENT_CONTEXT,we as SIGN_CLIENT_DEFAULT,cs as SIGN_CLIENT_EVENTS,be as SIGN_CLIENT_PROTOCOL,ls as SIGN_CLIENT_STORAGE_OPTIONS,ye as SIGN_CLIENT_STORAGE_PREFIX,Ce as SIGN_CLIENT_VERSION,Ns as SessionStore,Ps as SignClient,xe as WALLETCONNECT_DEEPLINK_CHOICE,_e as default};\n//# sourceMappingURL=index.es.js.map\n","export class DefaultLogger {\n constructor(logLevel = 'info') {\n this.logLevel = 'info';\n this.logLevel = logLevel;\n }\n setLogLevel(level) {\n this.logLevel = level;\n }\n getLogLevel() {\n return this.logLevel;\n }\n error(message, ...args) {\n if (['error', 'warn', 'info', 'debug'].includes(this.logLevel)) {\n console.error(`[ERROR] ${message}`, ...args);\n }\n }\n warn(message, ...args) {\n if (['warn', 'info', 'debug'].includes(this.logLevel)) {\n console.warn(`[WARN] ${message}`, ...args);\n }\n }\n info(message, ...args) {\n if (['info', 'debug'].includes(this.logLevel)) {\n console.info(`[INFO] ${message}`, ...args);\n }\n }\n debug(message, ...args) {\n if (this.logLevel === 'debug') {\n console.debug(`[DEBUG] ${message}`, ...args);\n }\n }\n}\n","export class SessionNotFoundError extends Error {\n constructor(message) {\n super(message);\n this.name = 'SessionNotFoundError';\n }\n}\n","/*\n *\n * Hedera Wallet Connect\n *\n * Copyright (C) 2023 Hedera Hashgraph, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nimport { AccountBalance, AccountId, AccountInfo, LedgerId, SignerSignature, Transaction, TransactionRecord, Client, PublicKey, TransactionId, TransactionResponse, Query, AccountRecordsQuery, AccountInfoQuery, AccountBalanceQuery, TransactionReceiptQuery, TransactionReceipt, TransactionRecordQuery, } from '@hashgraph/sdk';\nimport { proto } from '@hashgraph/proto';\nimport { HederaJsonRpcMethod, base64StringToSignatureMap, base64StringToUint8Array, ledgerIdToCAIPChainId, queryToBase64String, transactionBodyToBase64String, transactionToBase64String, transactionToTransactionBody, extensionOpen, Uint8ArrayToBase64String, Uint8ArrayToString, } from '../shared';\nimport { DefaultLogger } from '../shared/logger';\nimport { SessionNotFoundError } from './SessionNotFoundError';\nconst clients = {};\nexport class DAppSigner {\n constructor(accountId, signClient, topic, ledgerId = LedgerId.MAINNET, extensionId, logLevel = 'debug') {\n this.accountId = accountId;\n this.signClient = signClient;\n this.topic = topic;\n this.ledgerId = ledgerId;\n this.extensionId = extensionId;\n this.logger = new DefaultLogger(logLevel);\n }\n /**\n * Sets the logging level for the DAppSigner\n * @param level - The logging level to set\n */\n setLogLevel(level) {\n if (this.logger instanceof DefaultLogger) {\n this.logger.setLogLevel(level);\n }\n }\n _getHederaClient() {\n const ledgerIdString = this.ledgerId.toString();\n if (!clients[ledgerIdString]) {\n clients[ledgerIdString] = Client.forName(ledgerIdString);\n }\n return clients[ledgerIdString];\n }\n get _signerAccountId() {\n return `${ledgerIdToCAIPChainId(this.ledgerId)}:${this.accountId.toString()}`;\n }\n _getRandomNodes(numberOfNodes) {\n const allNodes = Object.values(this._getHederaClient().network).map((o) => typeof o === 'string' ? AccountId.fromString(o) : o);\n // shuffle nodes\n for (let i = allNodes.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [allNodes[i], allNodes[j]] = [allNodes[j], allNodes[i]];\n }\n return allNodes.slice(0, numberOfNodes);\n }\n request(request) {\n var _a, _b;\n // Avoid a wallet call if the session is no longer valid\n if (!((_b = (_a = this === null || this === void 0 ? void 0 : this.signClient) === null || _a === void 0 ? void 0 : _a.session) === null || _b === void 0 ? void 0 : _b.get(this.topic))) {\n this.logger.error('Session no longer exists, signer will be removed. Please reconnect to the wallet.');\n // Notify DAppConnector to remove this signer\n this.signClient.emit({\n topic: this.topic,\n event: {\n name: 'session_delete',\n data: { topic: this.topic },\n },\n chainId: ledgerIdToCAIPChainId(this.ledgerId),\n });\n throw new SessionNotFoundError('Session no longer exists. Please reconnect to the wallet.');\n }\n if (this.extensionId)\n extensionOpen(this.extensionId);\n return this.signClient.request({\n topic: this.topic,\n request,\n chainId: ledgerIdToCAIPChainId(this.ledgerId),\n });\n }\n getAccountId() {\n return this.accountId;\n }\n getAccountKey() {\n throw new Error('Method not implemented.');\n }\n getLedgerId() {\n return this.ledgerId;\n }\n getNetwork() {\n return this._getHederaClient().network;\n }\n getMirrorNetwork() {\n return this._getHederaClient().mirrorNetwork;\n }\n getAccountBalance() {\n return this.call(new AccountBalanceQuery().setAccountId(this.accountId));\n }\n getAccountInfo() {\n return this.call(new AccountInfoQuery().setAccountId(this.accountId));\n }\n getAccountRecords() {\n return this.call(new AccountRecordsQuery().setAccountId(this.accountId));\n }\n getMetadata() {\n return this.signClient.metadata;\n }\n async sign(data, signOptions = {\n encoding: 'utf-8',\n }) {\n try {\n const messageToSign = signOptions.encoding === 'base64'\n ? Uint8ArrayToBase64String(data[0])\n : Uint8ArrayToString(data[0]);\n const { signatureMap } = await this.request({\n method: HederaJsonRpcMethod.SignMessage,\n params: {\n signerAccountId: this._signerAccountId,\n message: messageToSign,\n },\n });\n const sigmap = base64StringToSignatureMap(signatureMap);\n const signerSignature = new SignerSignature({\n accountId: this.getAccountId(),\n publicKey: PublicKey.fromBytes(sigmap.sigPair[0].pubKeyPrefix),\n signature: sigmap.sigPair[0].ed25519 ||\n sigmap.sigPair[0].ECDSASecp256k1,\n });\n this.logger.debug('Data signed successfully');\n return [signerSignature];\n }\n catch (error) {\n this.logger.error('Error signing data:', error);\n throw error;\n }\n }\n async checkTransaction(transaction) {\n throw new Error('Method not implemented.');\n }\n async populateTransaction(transaction) {\n return transaction\n .setNodeAccountIds(this._getRandomNodes(10)) // allow retrying on up to 10 nodes\n .setTransactionId(TransactionId.generate(this.getAccountId()));\n }\n /**\n * Prepares a transaction object for signing using a single node account id.\n * If the transaction object does not already have a node account id,\n * generate a random node account id using the Hedera SDK client\n *\n * @param transaction - Any instance of a class that extends `Transaction`\n * @returns transaction - `Transaction` object with signature\n */\n async signTransaction(transaction) {\n let nodeAccountId;\n if (!transaction.nodeAccountIds || transaction.nodeAccountIds.length === 0)\n nodeAccountId = this._getRandomNodes(1)[0];\n else\n nodeAccountId = transaction.nodeAccountIds[0];\n const transactionBody = transactionToTransactionBody(transaction, nodeAccountId);\n if (!transactionBody)\n throw new Error('Failed to serialize transaction body');\n const transactionBodyBase64 = transactionBodyToBase64String(transactionBody);\n const { signatureMap } = await this.request({\n method: HederaJsonRpcMethod.SignTransaction,\n params: {\n signerAccountId: this._signerAccountId,\n transactionBody: transactionBodyBase64,\n },\n });\n const sigMap = base64StringToSignatureMap(signatureMap);\n const bodyBytes = base64StringToUint8Array(transactionBodyBase64);\n const bytes = proto.Transaction.encode({ bodyBytes, sigMap }).finish();\n return Transaction.fromBytes(bytes);\n }\n async _tryExecuteTransactionRequest(request) {\n try {\n const requestToBytes = request.toBytes();\n this.logger.debug('Creating transaction from bytes', requestToBytes, request);\n const transaction = Transaction.fromBytes(requestToBytes);\n this.logger.debug('Executing transaction request', transaction);\n const result = await this.request({\n method: HederaJsonRpcMethod.SignAndExecuteTransaction,\n params: {\n signerAccountId: this._signerAccountId,\n transactionList: transactionToBase64String(transaction),\n },\n });\n this.logger.debug('Transaction request completed successfully');\n return { result: TransactionResponse.fromJSON(result) };\n }\n catch (error) {\n this.logger.error('Error executing transaction request:', error);\n return { error };\n }\n }\n async _parseQueryResponse(query, base64EncodedQueryResponse) {\n if (query instanceof AccountRecordsQuery) {\n const base64EncodedQueryResponseSplit = base64EncodedQueryResponse.split(',');\n const data = base64EncodedQueryResponseSplit.map((o) => base64StringToUint8Array(o));\n return data.map((o) => TransactionRecord.fromBytes(o));\n }\n const data = base64StringToUint8Array(base64EncodedQueryResponse);\n if (query instanceof AccountBalanceQuery) {\n return AccountBalance.fromBytes(data);\n }\n else if (query instanceof AccountInfoQuery) {\n return AccountInfo.fromBytes(data);\n }\n else if (query instanceof TransactionReceiptQuery) {\n return TransactionReceipt.fromBytes(data);\n }\n else if (query instanceof TransactionRecordQuery) {\n return TransactionRecord.fromBytes(data);\n }\n else {\n throw new Error('Unsupported query type');\n }\n }\n /**\n * Executes a free receipt query without signing a transaction.\n * Enables the DApp to fetch the receipt of a transaction without making a new request\n * to the wallet.\n * @param request - The query to execute\n * @returns The result of the query\n */\n async executeReceiptQueryFromRequest(request) {\n try {\n const isMainnet = this.ledgerId === LedgerId.MAINNET;\n const client = isMainnet ? Client.forMainnet() : Client.forTestnet();\n const receipt = TransactionReceiptQuery.fromBytes(request.toBytes());\n const result = await receipt.execute(client);\n return { result };\n }\n catch (error) {\n return { error };\n }\n }\n async _tryExecuteQueryRequest(request) {\n try {\n const isReceiptQuery = request instanceof TransactionReceiptQuery;\n if (isReceiptQuery) {\n this.logger.debug('Attempting to execute free receipt query', request);\n const result = await this.executeReceiptQueryFromRequest(request);\n if (!(result === null || result === void 0 ? void 0 : result.error)) {\n return { result: result.result };\n }\n this.logger.error('Error executing free receipt query. Sending to wallet.', result.error);\n }\n /**\n * Note, should we be converting these to specific query types?\n * Left alone to avoid changing the API for other requests.\n */\n const query = isReceiptQuery\n ? TransactionReceiptQuery.fromBytes(request.toBytes())\n : Query.fromBytes(request.toBytes());\n this.logger.debug('Executing query request', query, queryToBase64String(query), isReceiptQuery);\n const result = await this.request({\n method: HederaJsonRpcMethod.SignAndExecuteQuery,\n params: {\n signerAccountId: this._signerAccountId,\n query: queryToBase64String(query),\n },\n });\n this.logger.debug('Query request completed successfully', result);\n return { result: this._parseQueryResponse(query, result.response) };\n }\n catch (error) {\n this.logger.error('Error executing query request:', error);\n return { error };\n }\n }\n async call(request) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n const isReceiptQuery = request instanceof TransactionReceiptQuery;\n let txResult = undefined;\n // a receipt query is a free query and we should not execute a transaction.\n if (!isReceiptQuery) {\n txResult = await this._tryExecuteTransactionRequest(request);\n if (txResult.result) {\n return txResult.result;\n }\n }\n const queryResult = await this._tryExecuteQueryRequest(request);\n if (queryResult.result) {\n return queryResult.result;\n }\n // TODO: make this error more usable\n if (isReceiptQuery) {\n throw new Error('Error executing receipt query: \\n' +\n JSON.stringify({\n queryError: {\n name: (_a = queryResult.error) === null || _a === void 0 ? void 0 : _a.name,\n message: (_b = queryResult.error) === null || _b === void 0 ? void 0 : _b.message,\n stack: (_c = queryResult.error) === null || _c === void 0 ? void 0 : _c.stack,\n },\n }));\n }\n throw new Error('Error executing transaction or query: \\n' +\n JSON.stringify({\n txError: {\n name: (_d = txResult === null || txResult === void 0 ? void 0 : txResult.error) === null || _d === void 0 ? void 0 : _d.name,\n message: (_e = txResult === null || txResult === void 0 ? void 0 : txResult.error) === null || _e === void 0 ? void 0 : _e.message,\n stack: (_f = txResult === null || txResult === void 0 ? void 0 : txResult.error) === null || _f === void 0 ? void 0 : _f.stack,\n },\n queryError: {\n name: (_g = queryResult.error) === null || _g === void 0 ? void 0 : _g.name,\n message: (_h = queryResult.error) === null || _h === void 0 ? void 0 : _h.message,\n stack: (_j = queryResult.error) === null || _j === void 0 ? void 0 : _j.stack,\n },\n }, null, 2));\n }\n}\n","/*\n *\n * Hedera Wallet Connect\n *\n * Copyright (C) 2023 Hedera Hashgraph, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nimport { LedgerId, Transaction } from '@hashgraph/sdk';\nimport QRCodeModal from '@walletconnect/qrcode-modal';\nimport { WalletConnectModal } from '@walletconnect/modal';\nimport SignClient from '@walletconnect/sign-client';\nimport { getSdkError } from '@walletconnect/utils';\nimport { DefaultLogger } from '../shared/logger';\nimport { HederaJsonRpcMethod, accountAndLedgerFromSession, networkNamespaces, extensionConnect, findExtensions, } from '../shared';\nimport { DAppSigner } from './DAppSigner';\nexport * from './DAppSigner';\nexport { SessionNotFoundError } from './SessionNotFoundError';\nexport class DAppConnector {\n /**\n * Initializes the DAppConnector instance.\n * @param metadata - SignClientTypes.Metadata object for the DApp metadata.\n * @param network - LedgerId representing the network (default: LedgerId.TESTNET).\n * @param projectId - Project ID for the WalletConnect client.\n * @param methods - Array of supported methods for the DApp (optional).\n * @param events - Array of supported events for the DApp (optional).\n * @param chains - Array of supported chains for the DApp (optional).\n * @param logLevel - Logging level for the DAppConnector (optional).\n */\n constructor(metadata, network, projectId, methods, events, chains, logLevel = 'debug') {\n this.network = LedgerId.TESTNET;\n this.supportedMethods = [];\n this.supportedEvents = [];\n this.supportedChains = [];\n this.extensions = [];\n this.onSessionIframeCreated = null;\n this.signers = [];\n this.isInitializing = false;\n this.abortableConnect = async (callback) => {\n return new Promise(async (resolve, reject) => {\n const pairTimeoutMs = 480000;\n const timeout = setTimeout(() => {\n QRCodeModal.close();\n reject(new Error(`Connect timed out after ${pairTimeoutMs}(ms)`));\n }, pairTimeoutMs);\n try {\n return resolve(await callback());\n }\n catch (error) {\n reject(error);\n }\n finally {\n clearTimeout(timeout);\n }\n });\n };\n this.logger = new DefaultLogger(logLevel);\n this.dAppMetadata = metadata;\n this.network = network;\n this.projectId = projectId;\n this.supportedMethods = methods !== null && methods !== void 0 ? methods : Object.values(HederaJsonRpcMethod);\n this.supportedEvents = events !== null && events !== void 0 ? events : [];\n this.supportedChains = chains !== null && chains !== void 0 ? chains : [];\n this.extensions = [];\n this.walletConnectModal = new WalletConnectModal({\n projectId: projectId,\n chains: chains,\n });\n findExtensions((metadata, isIframe) => {\n this.extensions.push(Object.assign(Object.assign({}, metadata), { available: true, availableInIframe: isIframe }));\n });\n }\n /**\n * Sets the logging level for the DAppConnector\n * @param level - The logging level to set\n */\n setLogLevel(level) {\n if (this.logger instanceof DefaultLogger) {\n this.logger.setLogLevel(level);\n }\n }\n /**\n * Initializes the DAppConnector instance.\n * @param logger - `BaseLogger` for logging purposes (optional).\n */\n async init({ logger } = {}) {\n try {\n this.isInitializing = true;\n if (!this.projectId) {\n throw new Error('Project ID is not defined');\n }\n this.walletConnectClient = await SignClient.init({\n logger,\n relayUrl: 'wss://relay.walletconnect.com',\n projectId: this.projectId,\n metadata: this.dAppMetadata,\n });\n const existingSessions = this.walletConnectClient.session.getAll();\n if (existingSessions.length > 0)\n this.signers = existingSessions.flatMap((session) => this.createSigners(session));\n else\n this.checkIframeConnect();\n this.walletConnectClient.on('session_event', this.handleSessionEvent.bind(this));\n this.walletConnectClient.on('session_update', this.handleSessionUpdate.bind(this));\n this.walletConnectClient.on('session_delete', this.handleSessionDelete.bind(this));\n // Listen for custom session_delete events from DAppSigner\n this.walletConnectClient.core.events.on('session_delete', this.handleSessionDelete.bind(this));\n this.walletConnectClient.core.pairing.events.on('pairing_delete', this.handlePairingDelete.bind(this));\n }\n catch (e) {\n this.logger.error('Error initializing DAppConnector:', e);\n }\n finally {\n this.isInitializing = false;\n }\n }\n /**\n * Retrieves a DAppSigner for the specified Hedera Account ID.\n *\n * @param {AccountId} accountId - The Hedera Account ID to find the associated signer.\n * @returns {DAppSigner} - The signer object of type {@link DAppSigner} corresponding to the provided account ID.\n * @throws {Error} - If no signer is found for the provided account ID.\n */\n getSigner(accountId) {\n if (this.isInitializing) {\n throw new Error('DAppConnector is not initialized yet. Try again later.');\n }\n const signer = this.signers.find((signer) => signer.getAccountId().equals(accountId));\n if (!signer)\n throw new Error('Signer is not found for this accountId');\n return signer;\n }\n /**\n * Initiates the WalletConnect connection flow using a QR code.\n * @deprecated Use `openModal` instead.\n * @param pairingTopic - The pairing topic for the connection (optional).\n * @returns A Promise that resolves when the connection process is complete.\n */\n async connectQR(pairingTopic) {\n return this.abortableConnect(async () => {\n try {\n const { uri, approval } = await this.connectURI(pairingTopic);\n if (!uri)\n throw new Error('URI is not defined');\n QRCodeModal.open(uri, () => {\n throw new Error('User rejected pairing');\n });\n await this.onSessionConnected(await approval());\n }\n finally {\n QRCodeModal.close();\n }\n });\n }\n /**\n * Initiates the WalletConnect connection flow using a QR code.\n * @param pairingTopic - The pairing topic for the connection (optional).\n * @returns {Promise} - A Promise that resolves when the connection process is complete.\n */\n async openModal(pairingTopic) {\n try {\n const { uri, approval } = await this.connectURI(pairingTopic);\n this.walletConnectModal.openModal({ uri });\n const session = await approval();\n await this.onSessionConnected(session);\n return session;\n }\n finally {\n this.walletConnectModal.closeModal();\n }\n }\n /**\n * Initiates the WallecConnect connection flow using URI.\n * @param pairingTopic - The pairing topic for the connection (optional).\n * @param extensionId - The id for the extension used to connect (optional).\n * @returns A Promise that resolves when the connection process is complete.\n */\n async connect(launchCallback, pairingTopic, extensionId) {\n return this.abortableConnect(async () => {\n var _a;\n const { uri, approval } = await this.connectURI(pairingTopic);\n if (!uri)\n throw new Error('URI is not defined');\n launchCallback(uri);\n const session = await approval();\n if (extensionId) {\n const sessionProperties = Object.assign(Object.assign({}, session.sessionProperties), { extensionId });\n session.sessionProperties = sessionProperties;\n await ((_a = this.walletConnectClient) === null || _a === void 0 ? void 0 : _a.session.update(session.topic, {\n sessionProperties,\n }));\n }\n await this.onSessionConnected(session);\n return session;\n });\n }\n /**\n * Initiates the WallecConnect connection flow sending a message to the extension.\n * @param extensionId - The id for the extension used to connect.\n * @param pairingTopic - The pairing topic for the connection (optional).\n * @returns A Promise that resolves when the connection process is complete.\n */\n async connectExtension(extensionId, pairingTopic) {\n const extension = this.extensions.find((ext) => ext.id === extensionId);\n if (!extension || !extension.available)\n throw new Error('Extension is not available');\n return this.connect((uri) => {\n extensionConnect(extension.id, extension.availableInIframe, uri);\n }, pairingTopic, extension.availableInIframe ? undefined : extensionId);\n }\n /**\n * Validates the session by checking if the session exists and is valid.\n * Also ensures the signer exists for the session.\n * @param topic - The topic of the session to validate.\n * @returns {boolean} - True if the session exists and has a valid signer, false otherwise.\n */\n validateSession(topic) {\n try {\n if (!this.walletConnectClient) {\n return false;\n }\n const session = this.walletConnectClient.session.get(topic);\n const hasSigner = this.signers.some((signer) => signer.topic === topic);\n if (!session) {\n // If session doesn't exist but we have a signer for it, clean up\n if (hasSigner) {\n this.logger.warn(`Signer exists but no session found for topic: ${topic}`);\n this.handleSessionDelete({ topic });\n }\n return false;\n }\n if (!hasSigner) {\n this.logger.warn(`Session exists but no signer found for topic: ${topic}`);\n return false;\n }\n return true;\n }\n catch (e) {\n this.logger.error('Error validating session:', e);\n return false;\n }\n }\n /**\n * Validates the session and refreshes the signers by removing the invalid ones.\n */\n validateAndRefreshSigners() {\n this.signers = this.signers.filter((signer) => this.validateSession(signer.topic));\n }\n /**\n * Initiates the WallecConnect connection if the wallet in iframe mode is detected.\n */\n async checkIframeConnect() {\n const extension = this.extensions.find((ext) => ext.availableInIframe);\n if (extension) {\n const session = await this.connectExtension(extension.id);\n if (this.onSessionIframeCreated)\n this.onSessionIframeCreated(session);\n }\n }\n /**\n * Disconnects the current session associated with the specified topic.\n * @param topic - The topic of the session to disconnect.\n * @returns A Promise that resolves when the session is disconnected.\n */\n async disconnect(topic) {\n try {\n if (!this.walletConnectClient) {\n throw new Error('WalletConnect is not initialized');\n }\n await this.walletConnectClient.disconnect({\n topic: topic,\n reason: getSdkError('USER_DISCONNECTED'),\n });\n return true;\n }\n catch (e) {\n this.logger.error('Either the session was already disconnected or the topic is invalid', e);\n return false;\n }\n }\n /**\n * Disconnects all active sessions and pairings.\n *\n * Throws error when WalletConnect is not initialized or there are no active sessions/pairings.\n * @returns A Promise that resolves when all active sessions and pairings are disconnected.\n */\n async disconnectAll() {\n if (!this.walletConnectClient) {\n throw new Error('WalletConnect is not initialized');\n }\n const sessions = this.walletConnectClient.session.getAll();\n const pairings = this.walletConnectClient.core.pairing.getPairings();\n if (!(sessions === null || sessions === void 0 ? void 0 : sessions.length) && !(pairings === null || pairings === void 0 ? void 0 : pairings.length)) {\n throw new Error('There is no active session/pairing. Connect to the wallet at first.');\n }\n const disconnectionPromises = [];\n // disconnect sessions\n for (const session of this.walletConnectClient.session.getAll()) {\n this.logger.info(`Disconnecting from session: ${session}`);\n const promise = this.disconnect(session.topic);\n disconnectionPromises.push(promise);\n }\n // disconnect pairings\n //https://docs.walletconnect.com/api/core/pairing\n for (const pairing of pairings) {\n const promise = this.disconnect(pairing.topic);\n disconnectionPromises.push(promise);\n }\n await Promise.all(disconnectionPromises);\n this.signers = [];\n }\n createSigners(session) {\n const allNamespaceAccounts = accountAndLedgerFromSession(session);\n return allNamespaceAccounts.map(({ account, network }) => {\n var _a;\n return new DAppSigner(account, this.walletConnectClient, session.topic, network, (_a = session.sessionProperties) === null || _a === void 0 ? void 0 : _a.extensionId, this.logger instanceof DefaultLogger ? this.logger.getLogLevel() : 'debug');\n });\n }\n async onSessionConnected(session) {\n const newSigners = this.createSigners(session);\n // Filter out any existing signers with duplicate AccountIds\n for (const newSigner of newSigners) {\n // We check if any signers have the same account, extension + metadata name.\n const existingSigners = this.signers.filter((currentSigner) => {\n var _a, _b;\n const matchingAccountId = ((_a = currentSigner === null || currentSigner === void 0 ? void 0 : currentSigner.getAccountId()) === null || _a === void 0 ? void 0 : _a.toString()) === ((_b = newSigner === null || newSigner === void 0 ? void 0 : newSigner.getAccountId()) === null || _b === void 0 ? void 0 : _b.toString());\n const matchingExtensionId = newSigner.extensionId === currentSigner.extensionId;\n const newSignerMetadata = newSigner.getMetadata();\n const existingSignerMetadata = currentSigner.getMetadata();\n const metadataNameMatch = (newSignerMetadata === null || newSignerMetadata === void 0 ? void 0 : newSignerMetadata.name) === (existingSignerMetadata === null || existingSignerMetadata === void 0 ? void 0 : existingSignerMetadata.name);\n if (currentSigner.topic === newSigner.topic) {\n this.logger.error('The topic was already connected. This is a weird error. Please report it.', newSigner.getAccountId().toString());\n }\n return matchingAccountId && matchingExtensionId && metadataNameMatch;\n });\n // Any dupes get disconnected + removed from the signers array.\n for (const existingSigner of existingSigners) {\n this.logger.debug(`Disconnecting duplicate signer for account ${existingSigner.getAccountId().toString()}`);\n await this.disconnect(existingSigner.topic);\n this.signers = this.signers.filter((s) => s.topic !== existingSigner.topic);\n }\n }\n // Add new signers after all duplicates have been cleaned up\n this.signers.push(...newSigners);\n this.logger.debug(`Current signers after connection: ${this.signers\n .map((s) => `${s.getAccountId().toString()}:${s.topic}`)\n .join(', ')}`);\n }\n async connectURI(pairingTopic) {\n if (!this.walletConnectClient) {\n throw new Error('WalletConnect is not initialized');\n }\n return this.walletConnectClient.connect({\n pairingTopic,\n requiredNamespaces: networkNamespaces(this.network, this.supportedMethods, this.supportedEvents),\n });\n }\n async request({ method, params, }) {\n var _a, _b, _c;\n let signer;\n this.logger.debug(`Requesting method: ${method} with params: ${JSON.stringify(params)}`);\n if (params === null || params === void 0 ? void 0 : params.signerAccountId) {\n // Extract the actual account ID from the hedera::
format\n const actualAccountId = (_b = (_a = params === null || params === void 0 ? void 0 : params.signerAccountId) === null || _a === void 0 ? void 0 : _a.split(':')) === null || _b === void 0 ? void 0 : _b.pop();\n signer = this.signers.find((s) => { var _a; return ((_a = s === null || s === void 0 ? void 0 : s.getAccountId()) === null || _a === void 0 ? void 0 : _a.toString()) === actualAccountId; });\n this.logger.debug(`Found signer: ${(_c = signer === null || signer === void 0 ? void 0 : signer.getAccountId()) === null || _c === void 0 ? void 0 : _c.toString()}`);\n if (!signer) {\n throw new Error(`Signer not found for account ID: ${params === null || params === void 0 ? void 0 : params.signerAccountId}. Did you use the correct format? e.g hedera::
`);\n }\n }\n else {\n signer = this.signers[this.signers.length - 1];\n }\n if (!signer) {\n throw new Error('There is no active session. Connect to the wallet at first.');\n }\n this.logger.debug(`Using signer: ${signer.getAccountId().toString()}: ${signer.topic} - about to request.`);\n return await signer.request({\n method: method,\n params: params,\n });\n }\n /**\n * Retrieves the node addresses associated with the current Hedera network.\n *\n * When there is no active session or an error occurs during the request.\n * @returns Promise\\<{@link GetNodeAddressesResult}\\>\n */\n async getNodeAddresses() {\n return await this.request({\n method: HederaJsonRpcMethod.GetNodeAddresses,\n params: undefined,\n });\n }\n /**\n * Executes a transaction on the Hedera network.\n *\n * @param {ExecuteTransactionParams} params - The parameters of type {@link ExecuteTransactionParams | `ExecuteTransactionParams`} required for the transaction execution.\n * @param {string[]} params.signedTransaction - Array of Base64-encoded `Transaction`'s\n * @returns Promise\\<{@link ExecuteTransactionResult}\\>\n * @example\n * Use helper `transactionToBase64String` to encode `Transaction` to Base64 string\n * ```ts\n * const params = {\n * signedTransaction: [transactionToBase64String(transaction)]\n * }\n *\n * const result = await dAppConnector.executeTransaction(params)\n * ```\n */\n async executeTransaction(params) {\n return await this.request({\n method: HederaJsonRpcMethod.ExecuteTransaction,\n params,\n });\n }\n /**\n * Signs a provided `message` with provided `signerAccountId`.\n *\n * @param {SignMessageParams} params - The parameters of type {@link SignMessageParams | `SignMessageParams`} required for signing message.\n * @param {string} params.signerAccountId - a signer Hedera Account identifier in {@link https://hips.hedera.com/hip/hip-30 | HIP-30} (`:..`) form.\n * @param {string} params.message - a plain UTF-8 string\n * @returns Promise\\<{@link SignMessageResult}\\>\n * @example\n * ```ts\n * const params = {\n * signerAccountId: 'hedera:testnet:0.0.12345',\n * message: 'Hello World!'\n * }\n *\n * const result = await dAppConnector.signMessage(params)\n * ```\n */\n async signMessage(params) {\n return await this.request({\n method: HederaJsonRpcMethod.SignMessage,\n params,\n });\n }\n /**\n * Signs and send `Query` on the Hedera network.\n *\n * @param {SignAndExecuteQueryParams} params - The parameters of type {@link SignAndExecuteQueryParams | `SignAndExecuteQueryParams`} required for the Query execution.\n * @param {string} params.signerAccountId - a signer Hedera Account identifier in {@link https://hips.hedera.com/hip/hip-30 | HIP-30} (`:..`) form.\n * @param {string} params.query - `Query` object represented as Base64 string\n * @returns Promise\\<{@link SignAndExecuteQueryResult}\\>\n * @example\n * Use helper `queryToBase64String` to encode `Query` to Base64 string\n * ```ts\n * const params = {\n * signerAccountId: '0.0.12345',\n * query: queryToBase64String(query),\n * }\n *\n * const result = await dAppConnector.signAndExecuteQuery(params)\n * ```\n */\n async signAndExecuteQuery(params) {\n return await this.request({\n method: HederaJsonRpcMethod.SignAndExecuteQuery,\n params,\n });\n }\n /**\n * Signs and executes Transactions on the Hedera network.\n *\n * @param {SignAndExecuteTransactionParams} params - The parameters of type {@link SignAndExecuteTransactionParams | `SignAndExecuteTransactionParams`} required for `Transaction` signing and execution.\n * @param {string} params.signerAccountId - a signer Hedera Account identifier in {@link https://hips.hedera.com/hip/hip-30 | HIP-30} (`:..`) form.\n * @param {string[]} params.transaction - Array of Base64-encoded `Transaction`'s\n * @returns Promise\\<{@link SignAndExecuteTransactionResult}\\>\n * @example\n * Use helper `transactionToBase64String` to encode `Transaction` to Base64 string\n * ```ts\n * const params = {\n * signerAccountId: '0.0.12345'\n * transaction: [transactionToBase64String(transaction)]\n * }\n *\n * const result = await dAppConnector.signAndExecuteTransaction(params)\n * ```\n */\n async signAndExecuteTransaction(params) {\n return await this.request({\n method: HederaJsonRpcMethod.SignAndExecuteTransaction,\n params,\n });\n }\n /**\n * Signs and executes Transactions on the Hedera network.\n *\n * @param {SignTransactionParams} params - The parameters of type {@link SignTransactionParams | `SignTransactionParams`} required for `Transaction` signing.\n * @param {string} params.signerAccountId - a signer Hedera Account identifier in {@link https://hips.hedera.com/hip/hip-30 | HIP-30} (`:..`) form.\n * @param {Transaction | string} params.transactionBody - a built Transaction object, or a base64 string of a transaction body (deprecated).\n * @deprecated Using string for params.transactionBody is deprecated and will be removed in a future version. Please migrate to using Transaction objects directly.\n * @returns Promise\\<{@link SignTransactionResult}\\>\n * @example\n * ```ts\n *\n * const params = {\n * signerAccountId: '0.0.12345',\n * transactionBody\n * }\n *\n * const result = await dAppConnector.signTransaction(params)\n * ```\n */\n async signTransaction(params) {\n var _a, _b;\n if (typeof (params === null || params === void 0 ? void 0 : params.transactionBody) === 'string') {\n this.logger.warn('Transaction body is a string. This is not recommended, please migrate to passing a transaction object directly.');\n return await this.request({\n method: HederaJsonRpcMethod.SignTransaction,\n params,\n });\n }\n if ((params === null || params === void 0 ? void 0 : params.transactionBody) instanceof Transaction) {\n const signerAccountId = (_b = (_a = params === null || params === void 0 ? void 0 : params.signerAccountId) === null || _a === void 0 ? void 0 : _a.split(':')) === null || _b === void 0 ? void 0 : _b.pop();\n const accountSigner = this.signers.find((signer) => { var _a; return ((_a = signer === null || signer === void 0 ? void 0 : signer.getAccountId()) === null || _a === void 0 ? void 0 : _a.toString()) === signerAccountId; });\n if (!accountSigner) {\n throw new Error(`No signer found for account ${signerAccountId}`);\n }\n if (!(params === null || params === void 0 ? void 0 : params.transactionBody)) {\n throw new Error('No transaction provided');\n }\n return await accountSigner.signTransaction(params.transactionBody);\n }\n throw new Error('Transaction sent in incorrect format. Ensure transaction body is either a base64 transaction body or Transaction object.');\n }\n handleSessionEvent(args) {\n this.logger.debug('Session event received:', args);\n this.validateAndRefreshSigners();\n }\n handleSessionUpdate({ topic, params, }) {\n const { namespaces } = params;\n const _session = this.walletConnectClient.session.get(topic);\n const updatedSession = Object.assign(Object.assign({}, _session), { namespaces });\n this.logger.info('Session updated:', updatedSession);\n this.signers = this.signers.filter((signer) => signer.topic !== topic);\n this.signers.push(...this.createSigners(updatedSession));\n }\n handleSessionDelete(event) {\n this.logger.info('Session deleted:', event);\n let deletedSigner = false;\n this.signers = this.signers.filter((signer) => {\n if (signer.topic !== event.topic) {\n return true;\n }\n deletedSigner = true;\n return false;\n });\n // prevent emitting disconnected event if signers is untouched.\n if (deletedSigner) {\n try {\n this.disconnect(event.topic);\n }\n catch (e) {\n this.logger.error('Error disconnecting session:', e);\n }\n this.logger.info('Session deleted and signer removed');\n }\n }\n handlePairingDelete(event) {\n this.logger.info('Pairing deleted:', event);\n this.signers = this.signers.filter((signer) => signer.topic !== event.topic);\n try {\n this.disconnect(event.topic);\n }\n catch (e) {\n this.logger.error('Error disconnecting pairing:', e);\n }\n this.logger.info('Pairing deleted by wallet');\n }\n}\nexport default DAppConnector;\n","export interface ILogger {\n error(message: string, ...args: any[]): void;\n warn(message: string, ...args: any[]): void;\n info(message: string, ...args: any[]): void;\n debug(message: string, ...args: any[]): void;\n}\n\nexport class DefaultLogger implements ILogger {\n private logLevel: 'error' | 'warn' | 'info' | 'debug' = 'info';\n\n setLogLevel(level: 'error' | 'warn' | 'info' | 'debug'): void {\n this.logLevel = level;\n }\n\n error(message: string, ...args: any[]): void {\n if (['error', 'warn', 'info', 'debug'].includes(this.logLevel)) {\n console.error(`[ERROR] ${message}`, ...args);\n }\n }\n\n warn(message: string, ...args: any[]): void {\n if (['warn', 'info', 'debug'].includes(this.logLevel)) {\n console.warn(`[WARN] ${message}`, ...args);\n }\n }\n\n info(message: string, ...args: any[]): void {\n if (['info', 'debug'].includes(this.logLevel)) {\n console.info(`[INFO] ${message}`, ...args);\n }\n }\n\n debug(message: string, ...args: any[]): void {\n if (this.logLevel === 'debug') {\n console.debug(`[DEBUG] ${message}`, ...args);\n }\n }\n}\n","import retryFetch from 'fetch-retry';\n\nexport const fetchWithRetry = () =>\n retryFetch(fetch, {\n retries: 3,\n });\n","import { DAppConnector } from '@hashgraph/hedera-wallet-connect';\nimport * as hashgraph from '@hashgraph/sdk';\nimport {\n ContractFunctionParameters,\n TransactionReceipt,\n PrivateKey,\n Transaction,\n AccountId,\n ContractId,\n} from '@hashgraph/sdk';\nimport { SessionTypes, SignClientTypes } from '@walletconnect/types';\n\nexport interface HederaAccountResponse {\n account: string;\n alias: null;\n auto_renew_period: number;\n balance: Balance;\n created_timestamp: string;\n decline_reward: boolean;\n deleted: boolean;\n ethereum_nonce: number;\n evm_address: string;\n expiry_timestamp: string;\n key: Key;\n max_automatic_token_associations: number;\n memo: string;\n pending_reward: number;\n receiver_sig_required: boolean;\n staked_account_id: null;\n staked_node_id: number;\n stake_period_start: string;\n transactions: HBARTransaction[];\n links: Links;\n}\n\nexport interface Balance {\n balance: number;\n timestamp: string;\n tokens: Token[];\n}\n\nexport interface Token {\n token_id: string;\n balance: number;\n}\n\nexport interface Key {\n _type: string;\n key: string;\n}\n\nexport interface Links {\n next: string;\n}\n\nexport interface HBARTransaction {\n bytes: null;\n charged_tx_fee: number;\n consensus_timestamp: string;\n entity_id: null | string;\n max_fee: string;\n memo_base64: string;\n name: Name;\n nft_transfers: NftTransfer[];\n node: string;\n nonce: number;\n parent_consensus_timestamp: null;\n result: Result;\n scheduled: boolean;\n staking_reward_transfers: StakingRewardTransfer[];\n token_transfers: Transfer[];\n transaction_hash: string;\n transaction_id: string;\n transfers: Transfer[];\n valid_duration_seconds: string;\n valid_start_timestamp: string;\n}\n\nexport enum Name {\n Contractcall = 'CONTRACTCALL',\n Cryptotransfer = 'CRYPTOTRANSFER',\n}\n\nexport interface NftTransfer {\n is_approval: boolean;\n receiver_account_id: string;\n sender_account_id: string;\n serial_number: number;\n token_id: string;\n}\n\nexport enum Result {\n Success = 'SUCCESS',\n}\n\nexport interface StakingRewardTransfer {\n account: string;\n amount: number;\n}\n\nexport interface Transfer {\n token_id?: string;\n account: string;\n amount: number;\n is_approval: boolean;\n}\n\nexport interface Message {\n payer: string;\n created: Date;\n consensus_timestamp: string;\n sequence_number: number;\n [key: string]: any;\n}\n\nexport interface FetchMessagesResult {\n messages: Message[];\n error?: string;\n}\n\nexport interface Account {\n account: string;\n alias: null;\n auto_renew_period: number;\n balance: Balance;\n decline_reward: boolean;\n deleted: boolean;\n ethereum_nonce: null;\n evm_address: null;\n expiry_timestamp: string;\n key: Key;\n max_automatic_token_associations: number;\n memo: string;\n receiver_sig_required: null;\n staked_account_id: null;\n staked_node_id: null;\n stake_period_start: null;\n}\n\nexport interface Balance {\n balance: number;\n timestamp: string;\n tokens: Token[];\n}\n\nexport interface Token {\n token_id: string;\n balance: number;\n}\n\nexport interface Key {\n _type: string;\n key: string;\n}\n\nexport interface TokenBalance {\n tokenId: string;\n balance: string;\n decimals: number;\n created_timestamp: Date;\n formatted_balance: string;\n}\n\nexport interface HederaTXResponse {\n transactions: MirrorNodeTransaction[];\n}\n\nexport interface MirrorNodeTransaction {\n bytes: null;\n charged_tx_fee: number;\n consensus_timestamp: string;\n entity_id: string;\n max_fee: string;\n memo_base64: string;\n name: string;\n node: null | string;\n nonce: number;\n parent_consensus_timestamp: null | string;\n result: string;\n scheduled: boolean;\n transaction_hash: string;\n transaction_id: string;\n transfers: Transfer[];\n token_transfers: TokenTransfer[];\n valid_duration_seconds: null | string;\n valid_start_timestamp: string;\n nft_transfers?: NftTransfer[];\n}\n\nexport interface NftTransfer {\n is_approval: boolean;\n receiver_account_id: string;\n sender_account_id: string;\n serial_number: number;\n token_id: string;\n}\n\nexport interface TokenTransfer {\n token_id: string;\n account: string;\n amount: number;\n}\n\nexport interface HBarNFT {\n nfts: Nft[];\n links: Links;\n}\n\nexport interface Links {\n next: string;\n}\n\nexport interface Nft {\n account_id: string;\n created_timestamp: string;\n delegating_spender: null;\n deleted: boolean;\n metadata: string;\n modified_timestamp: string;\n serial_number: number;\n spender: null;\n token_id: string;\n token_uri?: string;\n owner_of?: string;\n}\n\nexport interface FormattedOwner {\n token_uri?: string;\n chain?: string;\n owner_of?: string;\n token_address?: string;\n token_id?: string;\n account_id?: string;\n serial_number?: number;\n [key: string]: any;\n}\n\nexport type HashinalsWalletConnectSDK = {\n run: () => void;\n init: (\n projectId: string,\n metadata: SignClientTypes.Metadata\n ) => Promise;\n connect: () => Promise;\n connectWallet(\n PROJECT_ID: string,\n APP_METADATA: SignClientTypes.Metadata\n ): Promise<{\n accountId: string;\n balance: string;\n session: SessionTypes.Struct;\n }>;\n disconnect: () => Promise;\n disconnectAll: () => Promise;\n disconnectWallet: () => Promise;\n loadConnectionInfo: () => string | null;\n saveConnectionInfo: (accountId: string) => void;\n executeTransaction: (\n tx: Transaction,\n disableSigner: boolean\n ) => Promise;\n executeTransationWithErrorHandling: (\n tx: Transaction,\n disableSigner: boolean\n ) => Promise<{ result?: TransactionReceipt; error?: string }>;\n result?: TransactionReceipt;\n error?: string;\n submitMessageToTopic: (\n topicId: string,\n message: string\n ) => Promise;\n transferHbar: (\n fromAccountId: string,\n toAccountId: string,\n amount: number\n ) => Promise;\n executeSmartContract: (\n contractId: string,\n functionName: string,\n parameters: ContractFunctionParameters,\n gas?: number\n ) => Promise;\n getAccountBalance: () => Promise;\n getAccountInfo: () => string;\n createTopic: (\n memo?: string,\n adminKey?: string,\n customFees?: { denominatingTokenId: string, amount: string, collectorAccountId: string }[] // Updated type\n ) => Promise;\n generatePrivateAndPublicKey: () => Promise<{\n privateKey: string;\n publicKey: string;\n }>;\n getTopicInfo: (topicId: string) => Promise;\n updateTopic: (topicId: string, memo: string, adminKey: string) => Promise;\n createToken: (\n name: string,\n symbol: string,\n initialSupply: number,\n decimals: number,\n treasuryAccountId: string,\n adminKey: string,\n supplyKey: string\n ) => Promise;\n mintNFT: (\n tokenId: string,\n metadata: string,\n supplyKey: PrivateKey\n ) => Promise;\n dAppConnector?: DAppConnector;\n getMessages: (\n topicId: string,\n lastTimestamp?: number,\n disableTimestampFilter?: boolean\n ) => Promise;\n initAccount: (\n PROJECT_ID: string,\n APP_METADATA: SignClientTypes.Metadata\n ) => Promise<{ accountId: string; balance: string } | null>;\n transferToken: (\n tokenId: string,\n fromAccountId: string,\n toAccountId: string,\n amount: number\n ) => Promise;\n createAccount: (initialBalance: number) => Promise;\n associateTokenToAccount: (\n accountId: string,\n tokenId: string\n ) => Promise;\n dissociateTokenFromAccount: (\n accountId: string,\n tokenId: string\n ) => Promise;\n updateAccount: (\n accountId: string,\n maxAutomaticTokenAssociations: number\n ) => Promise;\n approveAllowance: (\n spenderAccountId: string,\n tokenId: string,\n amount: number,\n ownerAccountId: string\n ) => Promise;\n getAccountTokens: (accountId: string) => Promise<{ tokens: TokenBalance[] }>;\n getTransaction: (transactionId: string) => Promise;\n getTransactionByTimestamp: (timestamp: string) => Promise;\n getAccountNFTs: (accountId: string, tokenId?: string) => Promise;\n validateNFTOwnership: (serialNumber: string, accountId: string, tokenId: string) => Promise;\n readSmartContract: (\n data: string,\n fromAccount: AccountId,\n contractId: ContractId,\n estimate?: boolean,\n value?: number\n ) => Promise;\n HashgraphSDK: typeof hashgraph;\n};\n","import { Buffer } from 'buffer';\nimport { SessionTypes, SignClientTypes } from '@walletconnect/types';\nimport {\n Transaction,\n TransferTransaction,\n TopicMessageSubmitTransaction,\n ContractExecuteTransaction,\n Hbar,\n TransactionId,\n AccountId,\n TopicId,\n ContractId,\n LedgerId,\n TokenCreateTransaction,\n TokenType,\n TokenSupplyType,\n TokenMintTransaction,\n TopicCreateTransaction,\n TransactionReceipt,\n ContractFunctionParameters,\n PrivateKey,\n AccountCreateTransaction,\n TokenAssociateTransaction,\n TokenDissociateTransaction,\n AccountUpdateTransaction,\n AccountAllowanceApproveTransaction,\n TokenId,\n TopicUpdateTransaction,\n PublicKey,\n TopicInfoQuery,\n CustomFixedFee\n} from '@hashgraph/sdk';\nimport * as HashgraphSDK from '@hashgraph/sdk';\nimport {\n HederaSessionEvent,\n HederaJsonRpcMethod,\n DAppConnector,\n HederaChainId,\n SignMessageResult,\n} from '@hashgraph/hedera-wallet-connect';\nimport {\n Message,\n FetchMessagesResult,\n TokenBalance,\n HederaAccountResponse,\n HederaTXResponse,\n HBarNFT,\n Nft,\n} from './types';\nimport { DefaultLogger, ILogger } from './logger/logger';\nimport { fetchWithRetry } from './utils/retry';\n\nclass HashinalsWalletConnectSDK {\n private static instance: HashinalsWalletConnectSDK;\n private static dAppConnectorInstance: DAppConnector;\n private logger: ILogger;\n private network: LedgerId;\n private extensionCheckInterval: NodeJS.Timeout | null = null;\n private hasCalledExtensionCallback: boolean = false;\n\n public get dAppConnector(): DAppConnector {\n return HashinalsWalletConnectSDK.dAppConnectorInstance;\n }\n\n constructor(logger?: ILogger, network?: LedgerId) {\n this.logger = logger || new DefaultLogger();\n this.network = network || LedgerId.MAINNET;\n }\n\n public static getInstance(\n logger?: ILogger,\n network?: LedgerId\n ): HashinalsWalletConnectSDK {\n let instance = HashinalsWalletConnectSDK?.instance;\n if (!instance) {\n HashinalsWalletConnectSDK.instance = new HashinalsWalletConnectSDK(\n logger,\n network\n );\n instance = HashinalsWalletConnectSDK.instance;\n }\n if (network) {\n instance.setNetwork(network);\n }\n return instance;\n }\n\n public setLogger(logger: ILogger): void {\n this.logger = logger;\n }\n\n public setNetwork(network: LedgerId): void {\n this.network = network;\n }\n\n public getNetwork(): LedgerId {\n return this.network;\n }\n\n public setLogLevel(level: 'error' | 'warn' | 'info' | 'debug'): void {\n if (this.logger instanceof DefaultLogger) {\n this.logger.setLogLevel(level);\n } else {\n this.logger.warn('setLogLevel is only available for the default logger');\n }\n }\n\n public async init(\n projectId: string,\n metadata: SignClientTypes.Metadata,\n network?: LedgerId,\n onSessionIframeCreated?: (session: SessionTypes.Struct) => void\n ): Promise {\n const chosenNetwork = network || this.network;\n const isMainnet = chosenNetwork.toString() === 'mainnet';\n\n if (HashinalsWalletConnectSDK.dAppConnectorInstance) {\n return HashinalsWalletConnectSDK.dAppConnectorInstance;\n }\n\n HashinalsWalletConnectSDK.dAppConnectorInstance = new DAppConnector(\n metadata,\n chosenNetwork,\n projectId,\n Object.values(HederaJsonRpcMethod),\n [HederaSessionEvent.ChainChanged, HederaSessionEvent.AccountsChanged],\n [isMainnet ? HederaChainId.Mainnet : HederaChainId.Testnet],\n 'debug'\n );\n\n await HashinalsWalletConnectSDK.dAppConnectorInstance.init({\n logger: 'error',\n });\n\n HashinalsWalletConnectSDK.dAppConnectorInstance.onSessionIframeCreated = (\n session\n ) => {\n this.logger.info('new session from from iframe', session);\n this.handleNewSession(session);\n if (onSessionIframeCreated) {\n onSessionIframeCreated(session);\n }\n };\n\n this.logger.info(\n `Hedera Wallet Connect SDK initialized on ${chosenNetwork}`\n );\n return HashinalsWalletConnectSDK.dAppConnectorInstance;\n }\n\n public async connect(): Promise {\n this.ensureInitialized();\n const session = await this.dAppConnector.openModal();\n this.handleNewSession(session);\n return session;\n }\n\n public async disconnect(): Promise {\n try {\n this.ensureInitialized();\n const accountInfo = this.getAccountInfo();\n const accountId = accountInfo?.accountId;\n const network = accountInfo?.network;\n const signer = this?.dAppConnector?.signers.find(\n (signer_) => signer_.getAccountId().toString() === accountId\n );\n await this.dAppConnector?.disconnect(signer?.topic);\n this.logger.info(`Disconnected from ${accountId} on ${network}`);\n return true;\n } catch (e) {\n this.logger.error('Failed to disconnect', e);\n return false;\n }\n }\n\n public async disconnectAll(): Promise {\n try {\n this.ensureInitialized();\n await this.dAppConnector?.disconnectAll();\n this.logger.info(`Disconnected from all wallets`);\n return true;\n } catch (e) {\n this.logger.error('Failed to disconnect', e);\n return false;\n }\n }\n\n public async executeTransaction(\n tx: Transaction,\n disableSigner: boolean = false\n ): Promise {\n this.ensureInitialized();\n const accountInfo = this.getAccountInfo();\n const accountId = accountInfo?.accountId;\n const signer = this.dAppConnector.signers.find(\n (signer_) => signer_.getAccountId().toString() === accountId\n );\n if (!disableSigner) {\n const signedTx = await tx.freezeWithSigner(signer);\n const executedTx = await signedTx.executeWithSigner(signer);\n return await executedTx.getReceiptWithSigner(signer);\n } else {\n const executedTx = await tx.executeWithSigner(signer);\n return await executedTx.getReceiptWithSigner(signer);\n }\n }\n\n public async executeTransactionWithErrorHandling(\n tx: Transaction,\n disableSigner: boolean\n ): Promise<{ result?: TransactionReceipt; error?: string }> {\n try {\n const result = await this.executeTransaction(tx, disableSigner);\n return {\n result,\n error: undefined,\n };\n } catch (e) {\n const error = e as Error;\n const message = error.message?.toLowerCase();\n this.logger.error('Failed to execute transaction', e);\n this.logger.error('Failure reason for transaction is', message);\n if (message.includes('insufficient payer balance')) {\n return {\n result: undefined,\n error: 'Insufficient balance to complete the transaction.',\n };\n } else if (message.includes('reject')) {\n return {\n result: undefined,\n error: 'You rejected the transaction',\n };\n } else if (message.includes('invalid signature')) {\n return {\n result: undefined,\n error: 'Invalid signature. Please check your account and try again.',\n };\n } else if (message.includes('transaction expired')) {\n return {\n result: undefined,\n error: 'Transaction expired. Please try again.',\n };\n } else if (message.includes('account not found')) {\n return {\n result: undefined,\n error:\n 'Account not found. Please check the account ID and try again.',\n };\n } else if (message.includes('unauthorized')) {\n return {\n result: undefined,\n error:\n 'Unauthorized. You may not have the necessary permissions for this action.',\n };\n } else if (message.includes('busy')) {\n return {\n result: undefined,\n error: 'The network is busy. Please try again later.',\n };\n } else if (message.includes('invalid transaction')) {\n return {\n result: undefined,\n error: 'Invalid transaction. Please check your inputs and try again.',\n };\n }\n }\n }\n\n public async submitMessageToTopic(\n topicId: string,\n message: string,\n submitKey?: PrivateKey\n ): Promise {\n this.ensureInitialized();\n\n let transaction = new TopicMessageSubmitTransaction()\n .setTopicId(TopicId.fromString(topicId))\n .setMessage(message);\n\n if (submitKey) {\n transaction = await transaction.sign(submitKey);\n }\n\n return this.executeTransaction(transaction);\n }\n\n public async transferHbar(\n fromAccountId: string,\n toAccountId: string,\n amount: number\n ): Promise {\n this.ensureInitialized();\n\n const transaction = new TransferTransaction()\n .setTransactionId(TransactionId.generate(fromAccountId))\n .addHbarTransfer(AccountId.fromString(fromAccountId), new Hbar(-amount))\n .addHbarTransfer(AccountId.fromString(toAccountId), new Hbar(amount));\n\n return this.executeTransaction(transaction);\n }\n\n async executeSmartContract(\n contractId: string,\n functionName: string,\n parameters: ContractFunctionParameters,\n gas: number = 100000\n ): Promise {\n this.ensureInitialized();\n\n const transaction = new ContractExecuteTransaction()\n .setContractId(ContractId.fromString(contractId))\n .setGas(gas)\n .setFunction(functionName, parameters);\n\n return this.executeTransaction(transaction);\n }\n\n private handleNewSession(session: SessionTypes.Struct) {\n const sessionAccount = session.namespaces?.hedera?.accounts?.[0];\n const sessionParts = sessionAccount?.split(':');\n const accountId = sessionParts.pop();\n const network = sessionParts.pop();\n this.logger.info('sessionAccount is', accountId, network);\n if (!accountId) {\n this.logger.error('No account id found in the session');\n return;\n } else {\n this.saveConnectionInfo(accountId, network);\n }\n }\n\n private getNetworkPrefix(): string {\n const accountInfo = this.getAccountInfo();\n const network = accountInfo?.network;\n\n if (!network) {\n this.logger.warn('Network is not set on SDK, defaulting.');\n\n const cachedNetwork = localStorage.getItem('connectedNetwork');\n\n if (cachedNetwork) {\n return cachedNetwork;\n }\n\n return 'mainnet-public';\n }\n\n if (network !== this.network) {\n this.logger.warn(\n 'Detected network mismatch, reverting to signer network',\n network\n );\n this.network = network;\n }\n\n return network.isMainnet() ? 'mainnet-public' : 'testnet';\n }\n\n public async requestAccount(account: string): Promise {\n try {\n const networkPrefix = this.getNetworkPrefix();\n\n const url = `https://${networkPrefix}.mirrornode.hedera.com/api/v1/accounts/${account}`;\n const response = await fetchWithRetry()(url);\n if (!response.ok) {\n throw new Error(\n `Failed to make request to mirror node for account: ${response.status}`\n );\n }\n return await response.json();\n } catch (e) {\n this.logger.error('Failed to fetch account', e);\n throw e;\n }\n }\n\n public async getAccountBalance(): Promise {\n this.ensureInitialized();\n const accountInfo = this.getAccountInfo();\n const account = accountInfo?.accountId;\n\n if (!account) {\n return null;\n }\n\n const accountResponse = await this.requestAccount(account);\n if (!accountResponse) {\n throw new Error(\n 'Failed to fetch account. Try again or check if the Account ID is valid.'\n );\n }\n const balance = accountResponse.balance.balance / 10 ** 8;\n return Number(balance).toLocaleString('en-US');\n }\n\n public getAccountInfo(): {\n accountId: string;\n network: LedgerId;\n } {\n const { accountId: cachedAccountId } = this.loadConnectionInfo();\n if (!cachedAccountId) {\n return null;\n }\n const signers = this?.dAppConnector?.signers;\n\n if (!signers?.length) {\n return null;\n }\n\n const cachedSigner = this.dAppConnector.signers.find(\n (signer_) => signer_.getAccountId().toString() === cachedAccountId\n );\n if (!cachedSigner) {\n return null;\n }\n const accountId = cachedSigner?.getAccountId()?.toString();\n if (!accountId) {\n return null;\n }\n const network = cachedSigner.getLedgerId();\n return {\n accountId,\n network,\n };\n }\n\n \n public async generatePrivateAndPublicKey(): Promise<{\n privateKey: string;\n publicKey: string;\n }> {\n this.ensureInitialized();\n const privateKey = await PrivateKey.generateED25519Async();\n const publicKey = privateKey.publicKey;\n return {\n privateKey: privateKey.toString(),\n publicKey: publicKey.toString()\n };\n }\n\n public async updateTopic(topicId: string, memo: string, adminKey: string): Promise {\n this.ensureInitialized();\n \n // Validate inputs\n if (!topicId) {\n throw new Error('Topic ID is required');\n }\n if (!adminKey) {\n throw new Error('Admin key is required for topic update');\n }\n \n // Get account info and signer\n const accountInfo = this.getAccountInfo();\n if (!accountInfo?.accountId) {\n throw new Error('No connected account found');\n }\n \n const signer = this.dAppConnector.signers.find(\n (signer_) => signer_.getAccountId().toString() === accountInfo.accountId\n );\n if (!signer) {\n throw new Error('No signer found for the connected account');\n }\n \n // Validate network\n if (signer.getLedgerId().toString() !== this.network.toString()) {\n throw new Error('Network mismatch between signer and SDK configuration');\n }\n \n // Create and configure the transaction\n let transaction = new TopicUpdateTransaction()\n .setTopicId(TopicId.fromString(topicId))\n .setTopicMemo(memo || '');\n \n // Helper function to parse a key as either private or public key (for future-proofing)\n const parseKey = (key: string, keyType: 'admin'): PublicKey => {\n try {\n const privateKey = PrivateKey.fromString(key);\n this.logger.debug(`Parsed ${keyType} key as private key:`, privateKey.toString());\n return privateKey.publicKey;\n } catch (privateError) {\n this.logger.debug(`Failed to parse ${keyType} key as private key:`, privateError);\n try {\n const publicKey = PublicKey.fromString(key);\n this.logger.debug(`Parsed ${keyType} key as public key:`, publicKey.toString());\n return publicKey;\n } catch (publicError) {\n this.logger.error(`Invalid ${keyType} key format:`, publicError);\n throw new Error(`Invalid ${keyType} key format: ${publicError.message}`);\n }\n }\n };\n \n // Handle admin key (set the key but don’t sign yet)\n let adminPrivateKey: PrivateKey | null = null;\n try {\n adminPrivateKey = PrivateKey.fromString(adminKey);\n transaction.setAdminKey(adminPrivateKey.publicKey);\n this.logger.debug('Admin key set with private key:', adminPrivateKey.publicKey.toString());\n } catch (e) {\n this.logger.error('Invalid admin key provided:', e);\n throw new Error('Invalid admin key format: Admin key must be a valid private key for topic update');\n }\n \n // Freeze the transaction before signing\n transaction = await transaction.freezeWithSigner(signer);\n this.logger.debug('Transaction frozen with signer:', signer.getAccountId().toString());\n \n // Sign with admin private key (after freezing)\n if (adminPrivateKey) {\n transaction = await transaction.sign(adminPrivateKey);\n this.logger.debug('Transaction signed with admin private key');\n }\n \n // Execute the transaction, disabling internal signer freeze to avoid double-freezing\n const { result, error } = await this.executeTransactionWithErrorHandling(transaction, true);\n if (error) {\n throw new Error(`Failed to update topic: ${error}`);\n }\n \n this.logger.debug('Topic updated successfully with ID:', result.topicId!.toString());\n return result.topicId!.toString();\n }\n\n public async createTopic(\n memo?: string,\n adminKey?: string,\n customFees?: { denominatingTokenId: string, amount: string, collectorAccountId: string }[] // Updated type\n): Promise {\n this.ensureInitialized();\n\n // Get account info and signer\n const accountInfo = this.getAccountInfo();\n if (!accountInfo?.accountId) {\n throw new Error('No connected account found');\n }\n\n const signer = this.dAppConnector.signers.find(\n (signer_) => signer_.getAccountId().toString() === accountInfo.accountId\n );\n if (!signer) {\n throw new Error('No signer found for the connected account');\n }\n\n // Validate network\n if (signer.getLedgerId().toString() !== this.network.toString()) {\n throw new Error('Network mismatch between signer and SDK configuration');\n }\n\n // Create and configure the transaction\n let transaction = new TopicCreateTransaction().setTopicMemo(memo || '');\n\n // Helper function to parse a key as either private or public key\n const parseKey = (key: string, keyType: 'admin' | 'submit'): PublicKey => {\n try {\n const privateKey = PrivateKey.fromString(key);\n this.logger.debug(`Parsed ${keyType} key as private key:`, privateKey.toString());\n return privateKey.publicKey;\n } catch (privateError) {\n this.logger.debug(`Failed to parse ${keyType} key as private key:`, privateError);\n try {\n const publicKey = PublicKey.fromString(key);\n this.logger.debug(`Parsed ${keyType} key as public key:`, publicKey.toString());\n return publicKey;\n } catch (publicError) {\n this.logger.error(`Invalid ${keyType} key format:`, publicError);\n throw new Error(`Invalid ${keyType} key format: ${publicError.message}`);\n }\n }\n };\n\n // Handle admin key (set the key but don’t sign yet)\n let adminPrivateKey: PrivateKey | null = null;\n// After setting the admin key\nif (adminKey) {\n try {\n adminPrivateKey = PrivateKey.fromString(adminKey);\n transaction.setAdminKey(adminPrivateKey.publicKey);\n transaction.setFeeScheduleKey(adminPrivateKey.publicKey); // Set feeScheduleKey to same as adminKey\n this.logger.debug('Admin key and feeScheduleKey set with private key:', adminPrivateKey.publicKey.toString());\n } catch {\n const adminPublicKey = parseKey(adminKey, 'admin');\n transaction.setAdminKey(adminPublicKey);\n transaction.setFeeScheduleKey(adminPublicKey); // Set feeScheduleKey to same as adminKey\n this.logger.debug('Admin key and feeScheduleKey set with public key:', adminPublicKey.toString());\n }\n}\n\n // Handle custom fees if provided\n if (customFees && customFees.length > 0) {\n const hederaCustomFees = customFees.map(fee => {\n // Validate fee structure\n if (!fee.denominatingTokenId || !fee.amount || !fee.collectorAccountId) {\n throw new Error('Invalid custom fee: denominatingTokenId, amount, and collectorAccountId are required');\n }\n // Parse amount as a number\n const feeAmount = parseFloat(fee.amount);\n if (isNaN(feeAmount) || feeAmount <= 0) {\n throw new Error('Invalid amount: must be a positive number');\n }\n // Create a CustomFixedFee\n const customFee = new CustomFixedFee()\n .setAmount(feeAmount)\n .setFeeCollectorAccountId(fee.collectorAccountId)\n .setDenominatingTokenId(fee.denominatingTokenId);\n return customFee;\n });\n transaction.setCustomFees(hederaCustomFees);\n this.logger.debug('Custom fixed fees set:', hederaCustomFees);\n }\n\n // Freeze the transaction before signing\n transaction = await transaction.freezeWithSigner(signer);\n this.logger.debug('Transaction frozen with signer:', signer.getAccountId().toString());\n\n // Sign with admin private key if provided (after freezing)\n if (adminPrivateKey) {\n transaction = await transaction.sign(adminPrivateKey);\n this.logger.debug('Transaction signed with admin private key');\n }\n\n // Execute the transaction, disabling internal signer freeze to avoid double-freezing\n const receipt = await this.executeTransaction(transaction, true);\n if (!receipt.topicId) {\n throw new Error('Failed to create topic: No topic ID in receipt');\n }\n\n this.logger.debug('Topic created successfully with ID:', receipt.topicId.toString());\n return receipt.topicId.toString();\n}\n\n public async createToken(\n name: string,\n symbol: string,\n initialSupply: number,\n decimals: number,\n treasuryAccountId: string,\n adminKey: string,\n supplyKey: string\n ): Promise {\n this.ensureInitialized();\n\n let transaction = new TokenCreateTransaction()\n .setTokenName(name)\n .setTokenSymbol(symbol)\n .setDecimals(decimals)\n .setInitialSupply(initialSupply)\n .setTreasuryAccountId(AccountId.fromString(treasuryAccountId))\n .setTokenType(TokenType.NonFungibleUnique)\n .setSupplyType(TokenSupplyType.Finite);\n\n if (supplyKey) {\n transaction = transaction.setSupplyKey(PrivateKey.fromString(supplyKey));\n }\n\n if (adminKey) {\n transaction = transaction.setAdminKey(PrivateKey.fromString(adminKey));\n transaction = await transaction.sign(PrivateKey.fromString(adminKey));\n }\n\n const receipt = await this.executeTransaction(transaction);\n return receipt.tokenId!.toString();\n }\n\n public async mintNFT(\n tokenId: string,\n metadata: string,\n supplyKey: PrivateKey\n ): Promise {\n this.ensureInitialized();\n\n let transaction = await new TokenMintTransaction()\n .setTokenId(tokenId)\n .setMetadata([Buffer.from(metadata, 'utf-8')])\n .sign(supplyKey);\n\n return this.executeTransaction(transaction);\n }\n\n public async getTopicInfo(topicId: string, network?: string): Promise {\n this.ensureInitialized();\n \n try {\n // Validate input\n if (!topicId) {\n throw new Error('Topic ID is required');\n }\n \n // Determine the network prefix\n const networkPrefix = network || this.getNetworkPrefix();\n const baseUrl = `https://${networkPrefix}.mirrornode.hedera.com`;\n \n // Construct the URL for the topic info endpoint\n const url = `${baseUrl}/api/v1/topics/${topicId}`;\n \n // Fetch the topic info\n const response = await fetchWithRetry()(url);\n if (!response.ok) {\n throw new Error(\n `Failed to make request to mirror node for topic info: ${response.status}`\n );\n }\n \n const data = await response.json();\n \n // Log the retrieved topic info\n this.logger.info('Topic info retrieved:', data);\n \n return data;\n } catch (error) {\n this.logger.error('Error fetching topic info:', error);\n throw new Error(`Failed to retrieve topic info: ${error.message}`);\n }\n }\n\n public async getMessages(\n topicId: string,\n lastTimestamp?: number,\n disableTimestampFilter: boolean = false,\n network?: string\n ): Promise {\n const networkPrefix = network || this.getNetworkPrefix();\n const baseUrl = `https://${networkPrefix}.mirrornode.hedera.com`;\n const timestampQuery =\n Number(lastTimestamp) > 0 && !disableTimestampFilter\n ? `×tamp=gt:${lastTimestamp}`\n : '';\n\n const url = `${baseUrl}/api/v1/topics/${topicId}/messages?limit=200${timestampQuery}`;\n\n try {\n const response = await fetchWithRetry()(url);\n if (!response.ok) {\n throw new Error(\n `Failed to make request to mirror node: ${response.status}`\n );\n }\n const data = await response.json();\n const messages = data?.messages || [];\n const nextLink = data?.links?.next;\n\n const collectedMessages: Message[] = messages.map((msg: any) => {\n const parsedMessage = JSON.parse(atob(msg.message));\n return {\n ...parsedMessage,\n payer: msg.payer_account_id,\n created: new Date(Number(msg.consensus_timestamp) * 1000),\n consensus_timestamp: msg.consensus_timestamp,\n sequence_number: msg.sequence_number,\n };\n });\n\n if (nextLink) {\n const nextResult = await this.getMessages(\n topicId,\n Number(\n collectedMessages[collectedMessages.length - 1]?.consensus_timestamp\n ),\n disableTimestampFilter\n );\n collectedMessages.push(...nextResult.messages);\n }\n\n return {\n messages: collectedMessages.sort(\n (a, b) => a.sequence_number - b.sequence_number\n ),\n error: '',\n };\n } catch (error) {\n this.logger.error('Error fetching topic data:', error);\n return {\n messages: [],\n error: (error as Error).toString(),\n };\n }\n }\n\n public async signMessage(message: string) {\n const dAppConnector = this.dAppConnector;\n if (!dAppConnector) {\n throw new Error('No active connection or signer');\n }\n\n const accountInfo = this.getAccountInfo();\n const accountId = accountInfo?.accountId;\n\n const params = {\n signerAccountId: `hedera:${this.network}:${accountId}`,\n message,\n };\n\n const result = (await dAppConnector.signMessage(\n params\n )) as SignMessageResult;\n\n // @ts-ignore\n return { userSignature: result.signatureMap };\n }\n\n private saveConnectionInfo(\n accountId: string | undefined,\n connectedNetwork?: string | undefined\n ): void {\n if (!accountId) {\n localStorage.removeItem('connectedAccountId');\n localStorage.removeItem('connectedNetwork');\n } else {\n const cleanNetwork = connectedNetwork?.replace(/['\"]+/g, '');\n localStorage.setItem('connectedNetwork', cleanNetwork);\n localStorage.setItem('connectedAccountId', accountId);\n }\n }\n\n public loadConnectionInfo(): {\n accountId: string | null;\n network: string | null;\n } {\n return {\n accountId: localStorage.getItem('connectedAccountId'),\n network: localStorage.getItem('connectedNetwork'),\n };\n }\n\n public async connectWallet(\n PROJECT_ID: string,\n APP_METADATA: SignClientTypes.Metadata,\n network?: LedgerId\n ): Promise<{\n accountId: string;\n balance: string;\n session: SessionTypes.Struct;\n }> {\n try {\n await this.init(PROJECT_ID, APP_METADATA, network);\n const session = await this.connect();\n\n const accountInfo = this.getAccountInfo();\n const accountId = accountInfo?.accountId;\n const balance = await this.getAccountBalance();\n const networkPrefix = this.getNetworkPrefix();\n\n this.saveConnectionInfo(accountId, networkPrefix);\n return {\n accountId,\n balance,\n session,\n };\n } catch (error) {\n this.logger.error('Failed to connect wallet:', error);\n throw error;\n }\n }\n\n public async disconnectWallet(\n clearStorage: boolean = true\n ): Promise {\n try {\n const success = await this.disconnect();\n\n if (success && clearStorage) {\n localStorage.clear();\n }\n\n this.saveConnectionInfo(undefined);\n return success;\n } catch (error) {\n this.logger.error('Failed to disconnect wallet:', error);\n return false;\n }\n }\n\n public async initAccount(\n PROJECT_ID: string,\n APP_METADATA: SignClientTypes.Metadata,\n networkOverride?: LedgerId,\n onSessionIframeCreated: (session: SessionTypes.Struct) => void = () => {}\n ): Promise<{ accountId: string; balance: string } | null> {\n const { accountId: savedAccountId, network: savedNetwork } =\n this.loadConnectionInfo();\n\n if (savedAccountId && savedNetwork) {\n try {\n const defaultNetwork =\n savedNetwork === 'mainnet' ? LedgerId.MAINNET : LedgerId.TESTNET;\n const network = networkOverride || defaultNetwork;\n await this.init(\n PROJECT_ID,\n APP_METADATA,\n network,\n onSessionIframeCreated\n );\n const balance = await this.getAccountBalance();\n return {\n accountId: savedAccountId,\n balance,\n };\n } catch (error) {\n this.logger.error('Failed to reconnect:', error);\n this.saveConnectionInfo(undefined, undefined);\n return null;\n }\n } else if (networkOverride) {\n try {\n this.logger.info(\n 'initializing normally through override.',\n networkOverride\n );\n await this.init(\n PROJECT_ID,\n APP_METADATA,\n networkOverride,\n onSessionIframeCreated\n );\n this.logger.info('initialized', networkOverride);\n await this.connectViaDappBrowser();\n this.logger.info('connected via dapp browser');\n } catch (error) {\n this.logger.error('Failed to fallback connect:', error);\n this.saveConnectionInfo(undefined, undefined);\n return null;\n }\n }\n\n return null;\n }\n\n public subscribeToExtensions(callback: (extension: any) => void) {\n // Clear any existing interval and reset flag\n if (this.extensionCheckInterval) {\n clearInterval(this.extensionCheckInterval);\n }\n this.hasCalledExtensionCallback = false;\n\n // Set up polling to check for extensions\n this.extensionCheckInterval = setInterval(() => {\n const extensions = this.dAppConnector?.extensions || [];\n const availableExtension = extensions.find(\n (ext) => ext.availableInIframe\n );\n\n if (availableExtension && !this.hasCalledExtensionCallback) {\n this.hasCalledExtensionCallback = true;\n callback(availableExtension);\n // Clear the interval once we find an available extension\n if (this.extensionCheckInterval) {\n clearInterval(this.extensionCheckInterval);\n this.extensionCheckInterval = null;\n }\n }\n }, 1000); // Check every second\n\n // Return cleanup function\n return () => {\n if (this.extensionCheckInterval) {\n clearInterval(this.extensionCheckInterval);\n this.extensionCheckInterval = null;\n }\n this.hasCalledExtensionCallback = false;\n };\n }\n\n public async connectViaDappBrowser() {\n const extensions = this.dAppConnector.extensions || [];\n const extension = extensions.find((ext) => {\n this.logger.info('Checking extension', ext);\n return ext.availableInIframe;\n });\n this.logger.info('extensions are', extensions, extension);\n\n if (extension) {\n await this.connectToExtension(extension);\n } else {\n // If no extension is immediately available, subscribe to changes\n this.subscribeToExtensions(async (newExtension) => {\n await this.connectToExtension(newExtension);\n });\n }\n }\n\n private async connectToExtension(extension: any) {\n this.logger.info('found extension, connecting to iframe.', extension);\n const session = await this.dAppConnector.connectExtension(extension.id);\n const onSessionIframeCreated = this.dAppConnector.onSessionIframeCreated;\n if (onSessionIframeCreated) {\n onSessionIframeCreated(session);\n }\n }\n\n private ensureInitialized(): void {\n if (!this.dAppConnector) {\n throw new Error('SDK not initialized. Call init() first.');\n }\n }\n\n static run(): void {\n try {\n if (typeof window !== 'undefined') {\n (window as any).HashinalsWalletConnectSDK =\n HashinalsWalletConnectSDK.getInstance();\n (window as any).HashgraphSDK = HashgraphSDK;\n }\n } catch (e) {\n console.error('[ERROR]: failed setting sdk on window');\n }\n }\n\n public async transferToken(\n tokenId: string,\n fromAccountId: string,\n toAccountId: string,\n amount: number\n ): Promise {\n this.ensureInitialized();\n\n const transaction = new TransferTransaction()\n .setTransactionId(TransactionId.generate(fromAccountId))\n .addTokenTransfer(\n TokenId.fromString(tokenId),\n AccountId.fromString(fromAccountId),\n -amount\n )\n .addTokenTransfer(\n TokenId.fromString(tokenId),\n AccountId.fromString(toAccountId),\n amount\n );\n\n return this.executeTransaction(transaction);\n }\n\n async createAccount(initialBalance: number): Promise {\n this.ensureInitialized();\n\n const transaction = new AccountCreateTransaction().setInitialBalance(\n new Hbar(initialBalance)\n );\n\n return this.executeTransaction(transaction);\n }\n\n public async associateTokenToAccount(\n accountId: string,\n tokenId: string\n ): Promise {\n this.ensureInitialized();\n\n const transaction = new TokenAssociateTransaction()\n .setAccountId(AccountId.fromString(accountId))\n .setTokenIds([TokenId.fromString(tokenId)]);\n\n return this.executeTransaction(transaction);\n }\n\n public async dissociateTokenFromAccount(\n accountId: string,\n tokenId: string\n ): Promise {\n this.ensureInitialized();\n\n const transaction = new TokenDissociateTransaction()\n .setAccountId(AccountId.fromString(accountId))\n .setTokenIds([TokenId.fromString(tokenId)]);\n\n return this.executeTransaction(transaction);\n }\n\n public async updateAccount(\n accountId: string,\n maxAutomaticTokenAssociations: number\n ): Promise {\n this.ensureInitialized();\n\n const transaction = new AccountUpdateTransaction()\n .setAccountId(AccountId.fromString(accountId))\n .setMaxAutomaticTokenAssociations(maxAutomaticTokenAssociations);\n\n return this.executeTransaction(transaction);\n }\n\n public async approveAllowance(\n spenderAccountId: string,\n tokenId: string,\n amount: number,\n ownerAccountId: string\n ): Promise {\n this.ensureInitialized();\n\n const transaction =\n new AccountAllowanceApproveTransaction().approveTokenAllowance(\n TokenId.fromString(tokenId),\n AccountId.fromString(ownerAccountId),\n AccountId.fromString(spenderAccountId),\n amount\n );\n\n return this.executeTransaction(transaction);\n }\n\n public async getAccountTokens(\n accountId: string\n ): Promise<{ tokens: TokenBalance[] }> {\n this.ensureInitialized();\n\n const networkPrefix = this.getNetworkPrefix();\n const baseUrl = `https://${networkPrefix}.mirrornode.hedera.com`;\n const url = `${baseUrl}/api/v1/accounts/${accountId}/tokens?limit=200`;\n\n try {\n const response = await fetchWithRetry()(url);\n if (!response.ok) {\n throw new Error(\n `Failed to make request to mirror node for account tokens: ${response.status}`\n );\n }\n const data = await response.json();\n\n const tokens: TokenBalance[] = [];\n\n for (const token of data.tokens) {\n if (token.token_id) {\n tokens.push({\n tokenId: token.token_id,\n balance: token.balance,\n decimals: token.decimals,\n formatted_balance: (\n token.balance /\n 10 ** token.decimals\n ).toLocaleString('en-US'),\n created_timestamp: new Date(Number(token.created_timestamp) * 1000),\n });\n }\n }\n let nextLink = data.links?.next;\n while (nextLink) {\n const nextUrl = `${baseUrl}${nextLink}`;\n const nextResponse = await fetchWithRetry()(nextUrl);\n if (!nextResponse.ok) {\n throw new Error(\n `Failed to make request to mirror node for account tokens: ${nextResponse.status}, page: ${nextUrl}`\n );\n }\n const nextData = await nextResponse.json();\n\n for (const token of nextData.tokens) {\n if (token.token_id) {\n tokens.push({\n tokenId: token.token_id,\n balance: token.balance,\n decimals: token.decimals,\n formatted_balance: (\n token.balance /\n 10 ** token.decimals\n ).toLocaleString('en-US'),\n created_timestamp: new Date(\n Number(token.created_timestamp) * 1000\n ),\n });\n }\n }\n\n nextLink = nextData.links?.next;\n }\n\n return { tokens };\n } catch (error) {\n this.logger.error('Error fetching account tokens:', error);\n throw error;\n }\n }\n\n public async getTransaction(\n transactionId: string\n ): Promise {\n try {\n const networkPrefix = this.getNetworkPrefix();\n const url = `https://${networkPrefix}.mirrornode.hedera.com/api/v1/transactions/${transactionId}`;\n\n this.logger.debug('Fetching transaction', url);\n const request = await fetchWithRetry()(url);\n\n if (!request.ok) {\n throw new Error(`Failed to fetch transaction: ${request.status}`);\n }\n\n return await request.json();\n } catch (e) {\n this.logger.error('Failed to get transaction', e);\n return null;\n }\n }\n\n public async getTransactionByTimestamp(\n timestamp: string\n ): Promise {\n try {\n const networkPrefix = this.getNetworkPrefix();\n const url = `https://${networkPrefix}.mirrornode.hedera.com/api/v1/transactions?timestamp=${timestamp}`;\n\n this.logger.debug('Fetching transaction by timestamp', url);\n const request = await fetchWithRetry()(url);\n\n if (!request.ok) {\n throw new Error(\n `Failed to fetch transaction by timestamp: ${request.status}`\n );\n }\n\n const response = (await request.json()) as HederaTXResponse;\n const transaction = response?.transactions?.[0];\n\n if (transaction) {\n return await this.getTransaction(transaction.transaction_id);\n }\n\n return null;\n } catch (e) {\n this.logger.error('Failed to get transaction by timestamp', e);\n return null;\n }\n }\n\n public async getAccountNFTs(\n accountId: string,\n tokenId?: string\n ): Promise {\n try {\n const networkPrefix = this.getNetworkPrefix();\n const tokenQuery = tokenId ? `&token.id=${tokenId}` : '';\n const url = `https://${networkPrefix}.mirrornode.hedera.com/api/v1/accounts/${accountId}/nfts?limit=200${tokenQuery}`;\n\n const request = await fetchWithRetry()(url);\n if (!request.ok) {\n throw new Error(`Failed to fetch NFTs for account: ${request.status}`);\n }\n\n const response = (await request.json()) as HBarNFT;\n let nextLink: string | null = response?.links?.next || null;\n let nfts = response.nfts;\n\n while (nextLink) {\n try {\n const nextRequest = await fetchWithRetry()(\n `https://${networkPrefix}.mirrornode.hedera.com${nextLink}`\n );\n\n if (!nextRequest.ok) {\n throw new Error(\n `Failed to fetch next page of NFTs: ${nextRequest.status}`\n );\n }\n\n const nextResponse = (await nextRequest.json()) as HBarNFT;\n nfts = [...nfts, ...(nextResponse?.nfts || [])];\n\n nextLink =\n nextResponse?.links?.next && nextLink !== nextResponse?.links?.next\n ? nextResponse.links.next\n : null;\n } catch (e) {\n this.logger.error('Failed to fetch next page of NFTs', e);\n break;\n }\n }\n\n return nfts.map((nft) => {\n try {\n nft.token_uri = Buffer.from(nft.metadata, 'base64').toString('ascii');\n } catch (e) {\n this.logger.error('Failed to decode NFT metadata', e);\n }\n return nft;\n });\n } catch (e) {\n this.logger.error('Failed to get account NFTs', e);\n return [];\n }\n }\n\n public async validateNFTOwnership(\n serialNumber: string,\n accountId: string,\n tokenId: string\n ): Promise {\n const userNFTs = await this.getAccountNFTs(accountId, tokenId);\n\n return (\n userNFTs.find(\n (nft) =>\n nft.token_id === tokenId &&\n nft.serial_number.toString() === serialNumber\n ) || null\n );\n }\n\n public async readSmartContract(\n data: string,\n fromAccount: AccountId,\n contractId: ContractId,\n estimate: boolean = true,\n value: number = 0\n ): Promise {\n try {\n const networkPrefix = this.getNetworkPrefix();\n const body: any = {\n block: 'latest',\n data: data,\n estimate: estimate,\n from: fromAccount.toSolidityAddress(),\n to: contractId.toSolidityAddress(),\n value,\n };\n\n if (!estimate) {\n body.gas = 300000;\n body.gasPrice = 100000000;\n }\n\n const url = `https://${networkPrefix}.mirrornode.hedera.com/api/v1/contracts/call`;\n\n const response = await fetchWithRetry()(url, {\n method: 'POST',\n body: JSON.stringify(body),\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n\n if (!response.ok) {\n throw new Error(`Failed to make contract call: ${response.status}`);\n }\n\n return await response.json();\n } catch (e) {\n this.logger.error('Failed to make contract call', e);\n return null;\n }\n }\n}\n\n// This variable is replaced at build time.\n// @ts-ignore\nif ('VITE_BUILD_FORMAT' === 'umd') {\n HashinalsWalletConnectSDK.run();\n}\n\nexport * from './types';\nexport * from './sign';\nexport { HashinalsWalletConnectSDK, HashgraphSDK };\n"],"names":["i","buffer","c","rt","Buffer","SlowBuffer","proto","b","byteLength","x","y","n","code","E","Blob","atob","constants","HederaChainId","HederaSessionEvent","HederaJsonRpcMethod","_","events","EVENTS","format","f","require$$0","browser","k","transmit","noop","level","S","z","v","ReflectApply","ReflectOwnKeys","NumberIsNaN","eventsModule","once","listeners","w","d","p","__assign","g","k2","global","e","isReactNative","process","require$$1","require$$2","delay_1","delay","watch","require$$3","require$$4","Ze","$","et","Ot","is","tt","u","A","Et","R","Y","M","C","F","P","B","ue","bt","Ct","K","U","Lt","Te","Ne","T","xt","Pe","Dt","je","Fe","Qe","ze","He","Ye","ge","Vt","ie","he","Q","se","Ae","Mt","de","X","rs","ns","J","Rt","St","re","Ue","L","ne","kt","Xe","$t","Oe","Je","Kt","Ut","Gt","Be","jt","Ft","Qt","zt","Ht","Yt","It","We","Xt","Jt","os","as","ft","Bt","Ge","Wt","H","At","ts","Zt","Tt","vt","Nt","Pt","DefaultLogger","data","result","_e","metadata","SignClient","signer","_a","Name","Result"],"mappings":";;;;;;;;AAAA,IAAI,SAAS,CAAE;AAEf,IAAI,WAAW,CAAE;AAEjB,SAAS,aAAa;AACtB,SAAS,cAAc;AACvB,SAAS,gBAAgB;AAEzB,IAAI,SAAS,CAAE;AACf,IAAI,YAAY,CAAE;AAClB,IAAI,MAAM,OAAO,eAAe,cAAc,aAAa;AAE3D,IAAI,OAAO;AACX,SAASA,MAAI,GAAG,MAAM,KAAK,QAAQA,MAAI,KAAK,EAAEA,KAAG;AAC/C,SAAOA,GAAC,IAAI,KAAKA,GAAC;AAClB,YAAU,KAAK,WAAWA,GAAC,CAAC,IAAIA;AAClC;AAIA,UAAU,IAAI,WAAW,CAAC,CAAC,IAAI;AAC/B,UAAU,IAAI,WAAW,CAAC,CAAC,IAAI;AAE/B,SAAS,QAAS,KAAK;AACrB,MAAI,MAAM,IAAI;AAEd,MAAI,MAAM,IAAI,GAAG;AACf,UAAM,IAAI,MAAM,gDAAgD;AAAA,EACpE;AAIE,MAAI,WAAW,IAAI,QAAQ,GAAG;AAC9B,MAAI,aAAa,GAAI,YAAW;AAEhC,MAAI,kBAAkB,aAAa,MAC/B,IACA,IAAK,WAAW;AAEpB,SAAO,CAAC,UAAU,eAAe;AACnC;AAGA,SAAS,WAAY,KAAK;AACxB,MAAI,OAAO,QAAQ,GAAG;AACtB,MAAI,WAAW,KAAK,CAAC;AACrB,MAAI,kBAAkB,KAAK,CAAC;AAC5B,UAAS,WAAW,mBAAmB,IAAI,IAAK;AAClD;AAEA,SAAS,YAAa,KAAK,UAAU,iBAAiB;AACpD,UAAS,WAAW,mBAAmB,IAAI,IAAK;AAClD;AAEA,SAAS,YAAa,KAAK;AACzB,MAAI;AACJ,MAAI,OAAO,QAAQ,GAAG;AACtB,MAAI,WAAW,KAAK,CAAC;AACrB,MAAI,kBAAkB,KAAK,CAAC;AAE5B,MAAI,MAAM,IAAI,IAAI,YAAY,KAAK,UAAU,eAAe,CAAC;AAE7D,MAAI,UAAU;AAGd,MAAI,MAAM,kBAAkB,IACxB,WAAW,IACX;AAEJ,MAAIA;AACJ,OAAKA,KAAI,GAAGA,KAAI,KAAKA,MAAK,GAAG;AAC3B,UACG,UAAU,IAAI,WAAWA,EAAC,CAAC,KAAK,KAChC,UAAU,IAAI,WAAWA,KAAI,CAAC,CAAC,KAAK,KACpC,UAAU,IAAI,WAAWA,KAAI,CAAC,CAAC,KAAK,IACrC,UAAU,IAAI,WAAWA,KAAI,CAAC,CAAC;AACjC,QAAI,SAAS,IAAK,OAAO,KAAM;AAC/B,QAAI,SAAS,IAAK,OAAO,IAAK;AAC9B,QAAI,SAAS,IAAI,MAAM;AAAA,EAC3B;AAEE,MAAI,oBAAoB,GAAG;AACzB,UACG,UAAU,IAAI,WAAWA,EAAC,CAAC,KAAK,IAChC,UAAU,IAAI,WAAWA,KAAI,CAAC,CAAC,KAAK;AACvC,QAAI,SAAS,IAAI,MAAM;AAAA,EAC3B;AAEE,MAAI,oBAAoB,GAAG;AACzB,UACG,UAAU,IAAI,WAAWA,EAAC,CAAC,KAAK,KAChC,UAAU,IAAI,WAAWA,KAAI,CAAC,CAAC,KAAK,IACpC,UAAU,IAAI,WAAWA,KAAI,CAAC,CAAC,KAAK;AACvC,QAAI,SAAS,IAAK,OAAO,IAAK;AAC9B,QAAI,SAAS,IAAI,MAAM;AAAA,EAC3B;AAEE,SAAO;AACT;AAEA,SAAS,gBAAiB,KAAK;AAC7B,SAAO,OAAO,OAAO,KAAK,EAAI,IAC5B,OAAO,OAAO,KAAK,EAAI,IACvB,OAAO,OAAO,IAAI,EAAI,IACtB,OAAO,MAAM,EAAI;AACrB;AAEA,SAAS,YAAa,OAAO,OAAO,KAAK;AACvC,MAAI;AACJ,MAAI,SAAS,CAAE;AACf,WAASA,KAAI,OAAOA,KAAI,KAAKA,MAAK,GAAG;AACnC,WACI,MAAMA,EAAC,KAAK,KAAM,aAClB,MAAMA,KAAI,CAAC,KAAK,IAAK,UACtB,MAAMA,KAAI,CAAC,IAAI;AAClB,WAAO,KAAK,gBAAgB,GAAG,CAAC;AAAA,EACpC;AACE,SAAO,OAAO,KAAK,EAAE;AACvB;AAEA,SAAS,cAAe,OAAO;AAC7B,MAAI;AACJ,MAAI,MAAM,MAAM;AAChB,MAAI,aAAa,MAAM;AACvB,MAAI,QAAQ,CAAE;AACd,MAAI,iBAAiB;AAGrB,WAASA,KAAI,GAAG,OAAO,MAAM,YAAYA,KAAI,MAAMA,MAAK,gBAAgB;AACtE,UAAM,KAAK,YAAY,OAAOA,IAAIA,KAAI,iBAAkB,OAAO,OAAQA,KAAI,cAAe,CAAC;AAAA,EAC/F;AAGE,MAAI,eAAe,GAAG;AACpB,UAAM,MAAM,MAAM,CAAC;AACnB,UAAM;AAAA,MACJ,OAAO,OAAO,CAAC,IACf,OAAQ,OAAO,IAAK,EAAI,IACxB;AAAA,IACD;AAAA,EACL,WAAa,eAAe,GAAG;AAC3B,WAAO,MAAM,MAAM,CAAC,KAAK,KAAK,MAAM,MAAM,CAAC;AAC3C,UAAM;AAAA,MACJ,OAAO,OAAO,EAAE,IAChB,OAAQ,OAAO,IAAK,EAAI,IACxB,OAAQ,OAAO,IAAK,EAAI,IACxB;AAAA,IACD;AAAA,EACL;AAEE,SAAO,MAAM,KAAK,EAAE;AACtB;AAEA,IAAI,UAAU,CAAE;AAEhB;AAEA,QAAQ,OAAO,SAAUC,SAAQ,QAAQ,MAAM,MAAM,QAAQ;AAC3D,MAAI,GAAG;AACP,MAAI,OAAQ,SAAS,IAAK,OAAO;AACjC,MAAI,QAAQ,KAAK,QAAQ;AACzB,MAAI,QAAQ,QAAQ;AACpB,MAAI,QAAQ;AACZ,MAAID,KAAI,OAAQ,SAAS,IAAK;AAC9B,MAAI,IAAI,OAAO,KAAK;AACpB,MAAI,IAAIC,QAAO,SAASD,EAAC;AAEzB,EAAAA,MAAK;AAEL,MAAI,KAAM,KAAM,CAAC,SAAU;AAC3B,QAAO,CAAC;AACR,WAAS;AACT,SAAO,QAAQ,GAAG,IAAK,IAAI,MAAOC,QAAO,SAASD,EAAC,GAAGA,MAAK,GAAG,SAAS,GAAG;AAAA,EAAA;AAE1E,MAAI,KAAM,KAAM,CAAC,SAAU;AAC3B,QAAO,CAAC;AACR,WAAS;AACT,SAAO,QAAQ,GAAG,IAAK,IAAI,MAAOC,QAAO,SAASD,EAAC,GAAGA,MAAK,GAAG,SAAS,GAAG;AAAA,EAAA;AAE1E,MAAI,MAAM,GAAG;AACX,QAAI,IAAI;AAAA,EACZ,WAAa,MAAM,MAAM;AACrB,WAAO,IAAI,OAAQ,IAAI,KAAK,KAAK;AAAA,EACrC,OAAS;AACL,QAAI,IAAI,KAAK,IAAI,GAAG,IAAI;AACxB,QAAI,IAAI;AAAA,EACZ;AACE,UAAQ,IAAI,KAAK,KAAK,IAAI,KAAK,IAAI,GAAG,IAAI,IAAI;AAChD;AAEA,QAAQ,QAAQ,SAAUC,SAAQ,OAAO,QAAQ,MAAM,MAAM,QAAQ;AACnE,MAAI,GAAG,GAAGC;AACV,MAAI,OAAQ,SAAS,IAAK,OAAO;AACjC,MAAI,QAAQ,KAAK,QAAQ;AACzB,MAAI,QAAQ,QAAQ;AACpB,MAAIC,MAAM,SAAS,KAAK,KAAK,IAAI,GAAG,GAAG,IAAI,KAAK,IAAI,GAAG,GAAG,IAAI;AAC9D,MAAIH,KAAI,OAAO,IAAK,SAAS;AAC7B,MAAI,IAAI,OAAO,IAAI;AACnB,MAAI,IAAI,QAAQ,KAAM,UAAU,KAAK,IAAI,QAAQ,IAAK,IAAI;AAE1D,UAAQ,KAAK,IAAI,KAAK;AAEtB,MAAI,MAAM,KAAK,KAAK,UAAU,UAAU;AACtC,QAAI,MAAM,KAAK,IAAI,IAAI;AACvB,QAAI;AAAA,EACR,OAAS;AACL,QAAI,KAAK,MAAM,KAAK,IAAI,KAAK,IAAI,KAAK,GAAG;AACzC,QAAI,SAASE,KAAI,KAAK,IAAI,GAAG,CAAC,CAAC,KAAK,GAAG;AACrC;AACA,MAAAA,MAAK;AAAA,IACX;AACI,QAAI,IAAI,SAAS,GAAG;AAClB,eAASC,MAAKD;AAAA,IACpB,OAAW;AACL,eAASC,MAAK,KAAK,IAAI,GAAG,IAAI,KAAK;AAAA,IACzC;AACI,QAAI,QAAQD,MAAK,GAAG;AAClB;AACA,MAAAA,MAAK;AAAA,IACX;AAEI,QAAI,IAAI,SAAS,MAAM;AACrB,UAAI;AACJ,UAAI;AAAA,IACV,WAAe,IAAI,SAAS,GAAG;AACzB,WAAM,QAAQA,KAAK,KAAK,KAAK,IAAI,GAAG,IAAI;AACxC,UAAI,IAAI;AAAA,IACd,OAAW;AACL,UAAI,QAAQ,KAAK,IAAI,GAAG,QAAQ,CAAC,IAAI,KAAK,IAAI,GAAG,IAAI;AACrD,UAAI;AAAA,IACV;AAAA,EACA;AAEE,SAAO,QAAQ,GAAGD,QAAO,SAASD,EAAC,IAAI,IAAI,KAAMA,MAAK,GAAG,KAAK,KAAK,QAAQ,GAAG;AAAA,EAAA;AAE9E,MAAK,KAAK,OAAQ;AAClB,UAAQ;AACR,SAAO,OAAO,GAAGC,QAAO,SAASD,EAAC,IAAI,IAAI,KAAMA,MAAK,GAAG,KAAK,KAAK,QAAQ,GAAG;AAAA,EAAA;AAE7E,EAAAC,QAAO,SAASD,KAAI,CAAC,KAAK,IAAI;AAChC;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAOC,SAAU,SAAS;AAEnB,QAAM,SAAS;AACf,QAAM,YAAY;AAClB,QAAM,sBACH,OAAO,WAAW,cAAc,OAAO,OAAO,KAAK,MAAM,aACtD,OAAO,KAAK,EAAE,4BAA4B,IAC1C;AAEN,UAAQ,SAASI;AACjB,UAAQ,aAAaC;AACrB,UAAQ,oBAAoB;AAE5B,QAAM,eAAe;AACrB,UAAQ,aAAa;AACrB,QAAM,EAAE,YAAY,kBAAkB,aAAa,mBAAmB,mBAAmB,wBAAuB,IAAK;AAgBrH,EAAAD,QAAO,sBAAsB,kBAAmB;AAEhD,MAAI,CAACA,QAAO,uBAAuB,OAAO,YAAY,eAClD,OAAO,QAAQ,UAAU,YAAY;AACvC,YAAQ;AAAA,MACN;AAAA,IAED;AAAA,EACJ;AAEC,WAAS,oBAAqB;AAE5B,QAAI;AACF,YAAM,MAAM,IAAI,iBAAiB,CAAC;AAClC,YAAME,SAAQ,EAAE,KAAK,WAAY;AAAE,eAAO;AAAA,MAAE,EAAI;AAChD,aAAO,eAAeA,QAAO,iBAAiB,SAAS;AACvD,aAAO,eAAe,KAAKA,MAAK;AAChC,aAAO,IAAI,UAAU;AAAA,IACtB,SAAQ,GAAG;AACV,aAAO;AAAA,IACZ;AAAA,EACA;AAEC,SAAO,eAAeF,QAAO,WAAW,UAAU;AAAA,IAChD,YAAY;AAAA,IACZ,KAAK,WAAY;AACf,UAAI,CAACA,QAAO,SAAS,IAAI,EAAG,QAAO;AACnC,aAAO,KAAK;AAAA,IACjB;AAAA,EACA,CAAE;AAED,SAAO,eAAeA,QAAO,WAAW,UAAU;AAAA,IAChD,YAAY;AAAA,IACZ,KAAK,WAAY;AACf,UAAI,CAACA,QAAO,SAAS,IAAI,EAAG,QAAO;AACnC,aAAO,KAAK;AAAA,IACjB;AAAA,EACA,CAAE;AAED,WAAS,aAAc,QAAQ;AAC7B,QAAI,SAAS,cAAc;AACzB,YAAM,IAAI,WAAW,gBAAgB,SAAS,gCAAgC;AAAA,IACnF;AAEG,UAAM,MAAM,IAAI,iBAAiB,MAAM;AACvC,WAAO,eAAe,KAAKA,QAAO,SAAS;AAC3C,WAAO;AAAA,EACV;AAYC,WAASA,QAAQ,KAAK,kBAAkB,QAAQ;AAE9C,QAAI,OAAO,QAAQ,UAAU;AAC3B,UAAI,OAAO,qBAAqB,UAAU;AACxC,cAAM,IAAI;AAAA,UACR;AAAA,QACT;AAAA,MACA;AACK,aAAO,YAAY,GAAG;AAAA,IAC3B;AACG,WAAO,KAAK,KAAK,kBAAkB,MAAM;AAAA,EAC5C;AAEC,EAAAA,QAAO,WAAW;AAElB,WAAS,KAAM,OAAO,kBAAkB,QAAQ;AAC9C,QAAI,OAAO,UAAU,UAAU;AAC7B,aAAO,WAAW,OAAO,gBAAgB;AAAA,IAC9C;AAEG,QAAI,kBAAkB,OAAO,KAAK,GAAG;AACnC,aAAO,cAAc,KAAK;AAAA,IAC/B;AAEG,QAAI,SAAS,MAAM;AACjB,YAAM,IAAI;AAAA,QACR,oHAC0C,OAAO;AAAA,MACxD;AAAA,IACA;AAEG,QAAI,WAAW,OAAO,iBAAiB,KAClC,SAAS,WAAW,MAAM,QAAQ,iBAAiB,GAAI;AAC1D,aAAO,gBAAgB,OAAO,kBAAkB,MAAM;AAAA,IAC3D;AAEG,QAAI,OAAO,4BAA4B,gBAClC,WAAW,OAAO,uBAAuB,KACzC,SAAS,WAAW,MAAM,QAAQ,uBAAuB,IAAK;AACjE,aAAO,gBAAgB,OAAO,kBAAkB,MAAM;AAAA,IAC3D;AAEG,QAAI,OAAO,UAAU,UAAU;AAC7B,YAAM,IAAI;AAAA,QACR;AAAA,MACP;AAAA,IACA;AAEG,UAAM,UAAU,MAAM,WAAW,MAAM,QAAS;AAChD,QAAI,WAAW,QAAQ,YAAY,OAAO;AACxC,aAAOA,QAAO,KAAK,SAAS,kBAAkB,MAAM;AAAA,IACzD;AAEG,UAAMG,KAAI,WAAW,KAAK;AAC1B,QAAIA,GAAG,QAAOA;AAEd,QAAI,OAAO,WAAW,eAAe,OAAO,eAAe,QACvD,OAAO,MAAM,OAAO,WAAW,MAAM,YAAY;AACnD,aAAOH,QAAO,KAAK,MAAM,OAAO,WAAW,EAAE,QAAQ,GAAG,kBAAkB,MAAM;AAAA,IACrF;AAEG,UAAM,IAAI;AAAA,MACR,oHAC0C,OAAO;AAAA,IACtD;AAAA,EACA;AAUC,EAAAA,QAAO,OAAO,SAAU,OAAO,kBAAkB,QAAQ;AACvD,WAAO,KAAK,OAAO,kBAAkB,MAAM;AAAA,EAC5C;AAID,SAAO,eAAeA,QAAO,WAAW,iBAAiB,SAAS;AAClE,SAAO,eAAeA,SAAQ,gBAAgB;AAE9C,WAAS,WAAY,MAAM;AACzB,QAAI,OAAO,SAAS,UAAU;AAC5B,YAAM,IAAI,UAAU,wCAAwC;AAAA,IACjE,WAAc,OAAO,GAAG;AACnB,YAAM,IAAI,WAAW,gBAAgB,OAAO,gCAAgC;AAAA,IACjF;AAAA,EACA;AAEC,WAAS,MAAO,MAAM,MAAM,UAAU;AACpC,eAAW,IAAI;AACf,QAAI,QAAQ,GAAG;AACb,aAAO,aAAa,IAAI;AAAA,IAC7B;AACG,QAAI,SAAS,QAAW;AAItB,aAAO,OAAO,aAAa,WACvB,aAAa,IAAI,EAAE,KAAK,MAAM,QAAQ,IACtC,aAAa,IAAI,EAAE,KAAK,IAAI;AAAA,IACrC;AACG,WAAO,aAAa,IAAI;AAAA,EAC3B;AAMC,EAAAA,QAAO,QAAQ,SAAU,MAAM,MAAM,UAAU;AAC7C,WAAO,MAAM,MAAM,MAAM,QAAQ;AAAA,EAClC;AAED,WAAS,YAAa,MAAM;AAC1B,eAAW,IAAI;AACf,WAAO,aAAa,OAAO,IAAI,IAAI,QAAQ,IAAI,IAAI,CAAC;AAAA,EACvD;AAKC,EAAAA,QAAO,cAAc,SAAU,MAAM;AACnC,WAAO,YAAY,IAAI;AAAA,EACxB;AAID,EAAAA,QAAO,kBAAkB,SAAU,MAAM;AACvC,WAAO,YAAY,IAAI;AAAA,EACxB;AAED,WAAS,WAAY,QAAQ,UAAU;AACrC,QAAI,OAAO,aAAa,YAAY,aAAa,IAAI;AACnD,iBAAW;AAAA,IAChB;AAEG,QAAI,CAACA,QAAO,WAAW,QAAQ,GAAG;AAChC,YAAM,IAAI,UAAU,uBAAuB,QAAQ;AAAA,IACxD;AAEG,UAAM,SAASI,YAAW,QAAQ,QAAQ,IAAI;AAC9C,QAAI,MAAM,aAAa,MAAM;AAE7B,UAAM,SAAS,IAAI,MAAM,QAAQ,QAAQ;AAEzC,QAAI,WAAW,QAAQ;AAIrB,YAAM,IAAI,MAAM,GAAG,MAAM;AAAA,IAC9B;AAEG,WAAO;AAAA,EACV;AAEC,WAAS,cAAe,OAAO;AAC7B,UAAM,SAAS,MAAM,SAAS,IAAI,IAAI,QAAQ,MAAM,MAAM,IAAI;AAC9D,UAAM,MAAM,aAAa,MAAM;AAC/B,aAASR,KAAI,GAAGA,KAAI,QAAQA,MAAK,GAAG;AAClC,UAAIA,EAAC,IAAI,MAAMA,EAAC,IAAI;AAAA,IACzB;AACG,WAAO;AAAA,EACV;AAEC,WAAS,cAAe,WAAW;AACjC,QAAI,WAAW,WAAW,gBAAgB,GAAG;AAC3C,YAAM,OAAO,IAAI,iBAAiB,SAAS;AAC3C,aAAO,gBAAgB,KAAK,QAAQ,KAAK,YAAY,KAAK,UAAU;AAAA,IACzE;AACG,WAAO,cAAc,SAAS;AAAA,EACjC;AAEC,WAAS,gBAAiB,OAAO,YAAY,QAAQ;AACnD,QAAI,aAAa,KAAK,MAAM,aAAa,YAAY;AACnD,YAAM,IAAI,WAAW,sCAAsC;AAAA,IAChE;AAEG,QAAI,MAAM,aAAa,cAAc,UAAU,IAAI;AACjD,YAAM,IAAI,WAAW,sCAAsC;AAAA,IAChE;AAEG,QAAI;AACJ,QAAI,eAAe,UAAa,WAAW,QAAW;AACpD,YAAM,IAAI,iBAAiB,KAAK;AAAA,IACrC,WAAc,WAAW,QAAW;AAC/B,YAAM,IAAI,iBAAiB,OAAO,UAAU;AAAA,IACjD,OAAU;AACL,YAAM,IAAI,iBAAiB,OAAO,YAAY,MAAM;AAAA,IACzD;AAGG,WAAO,eAAe,KAAKI,QAAO,SAAS;AAE3C,WAAO;AAAA,EACV;AAEC,WAAS,WAAY,KAAK;AACxB,QAAIA,QAAO,SAAS,GAAG,GAAG;AACxB,YAAM,MAAM,QAAQ,IAAI,MAAM,IAAI;AAClC,YAAM,MAAM,aAAa,GAAG;AAE5B,UAAI,IAAI,WAAW,GAAG;AACpB,eAAO;AAAA,MACd;AAEK,UAAI,KAAK,KAAK,GAAG,GAAG,GAAG;AACvB,aAAO;AAAA,IACZ;AAEG,QAAI,IAAI,WAAW,QAAW;AAC5B,UAAI,OAAO,IAAI,WAAW,YAAY,YAAY,IAAI,MAAM,GAAG;AAC7D,eAAO,aAAa,CAAC;AAAA,MAC5B;AACK,aAAO,cAAc,GAAG;AAAA,IAC7B;AAEG,QAAI,IAAI,SAAS,YAAY,MAAM,QAAQ,IAAI,IAAI,GAAG;AACpD,aAAO,cAAc,IAAI,IAAI;AAAA,IAClC;AAAA,EACA;AAEC,WAAS,QAAS,QAAQ;AAGxB,QAAI,UAAU,cAAc;AAC1B,YAAM,IAAI,WAAW,4DACa,aAAa,SAAS,EAAE,IAAI,QAAQ;AAAA,IAC3E;AACG,WAAO,SAAS;AAAA,EACnB;AAEC,WAASC,YAAY,QAAQ;AAC3B,QAAI,CAAC,UAAU,QAAQ;AACrB,eAAS;AAAA,IACd;AACG,WAAOD,QAAO,MAAM,CAAC,MAAM;AAAA,EAC9B;AAEC,EAAAA,QAAO,WAAW,SAAS,SAAUG,IAAG;AACtC,WAAOA,MAAK,QAAQA,GAAE,cAAc,QAClCA,OAAMH,QAAO;AAAA,EAChB;AAED,EAAAA,QAAO,UAAU,SAAS,QAAS,GAAGG,IAAG;AACvC,QAAI,WAAW,GAAG,gBAAgB,EAAG,KAAIH,QAAO,KAAK,GAAG,EAAE,QAAQ,EAAE,UAAU;AAC9E,QAAI,WAAWG,IAAG,gBAAgB,EAAG,CAAAA,KAAIH,QAAO,KAAKG,IAAGA,GAAE,QAAQA,GAAE,UAAU;AAC9E,QAAI,CAACH,QAAO,SAAS,CAAC,KAAK,CAACA,QAAO,SAASG,EAAC,GAAG;AAC9C,YAAM,IAAI;AAAA,QACR;AAAA,MACP;AAAA,IACA;AAEG,QAAI,MAAMA,GAAG,QAAO;AAEpB,QAAIE,KAAI,EAAE;AACV,QAAIC,KAAIH,GAAE;AAEV,aAASP,KAAI,GAAG,MAAM,KAAK,IAAIS,IAAGC,EAAC,GAAGV,KAAI,KAAK,EAAEA,IAAG;AAClD,UAAI,EAAEA,EAAC,MAAMO,GAAEP,EAAC,GAAG;AACjB,QAAAS,KAAI,EAAET,EAAC;AACP,QAAAU,KAAIH,GAAEP,EAAC;AACP;AAAA,MACP;AAAA,IACA;AAEG,QAAIS,KAAIC,GAAG,QAAO;AAClB,QAAIA,KAAID,GAAG,QAAO;AAClB,WAAO;AAAA,EACR;AAED,EAAAL,QAAO,aAAa,SAAS,WAAY,UAAU;AACjD,YAAQ,OAAO,QAAQ,EAAE,YAAa,GAAA;AAAA,MACpC,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACH,eAAO;AAAA,MACT;AACE,eAAO;AAAA,IACd;AAAA,EACE;AAED,EAAAA,QAAO,SAAS,SAAS,OAAQ,MAAM,QAAQ;AAC7C,QAAI,CAAC,MAAM,QAAQ,IAAI,GAAG;AACxB,YAAM,IAAI,UAAU,6CAA6C;AAAA,IACtE;AAEG,QAAI,KAAK,WAAW,GAAG;AACrB,aAAOA,QAAO,MAAM,CAAC;AAAA,IAC1B;AAEG,QAAIJ;AACJ,QAAI,WAAW,QAAW;AACxB,eAAS;AACT,WAAKA,KAAI,GAAGA,KAAI,KAAK,QAAQ,EAAEA,IAAG;AAChC,kBAAU,KAAKA,EAAC,EAAE;AAAA,MACzB;AAAA,IACA;AAEG,UAAMC,UAASG,QAAO,YAAY,MAAM;AACxC,QAAI,MAAM;AACV,SAAKJ,KAAI,GAAGA,KAAI,KAAK,QAAQ,EAAEA,IAAG;AAChC,UAAI,MAAM,KAAKA,EAAC;AAChB,UAAI,WAAW,KAAK,gBAAgB,GAAG;AACrC,YAAI,MAAM,IAAI,SAASC,QAAO,QAAQ;AACpC,cAAI,CAACG,QAAO,SAAS,GAAG,EAAG,OAAMA,QAAO,KAAK,GAAG;AAChD,cAAI,KAAKH,SAAQ,GAAG;AAAA,QAC7B,OAAc;AACL,2BAAiB,UAAU,IAAI;AAAA,YAC7BA;AAAA,YACA;AAAA,YACA;AAAA,UACD;AAAA,QACV;AAAA,MACM,WAAU,CAACG,QAAO,SAAS,GAAG,GAAG;AAChC,cAAM,IAAI,UAAU,6CAA6C;AAAA,MACxE,OAAY;AACL,YAAI,KAAKH,SAAQ,GAAG;AAAA,MAC3B;AACK,aAAO,IAAI;AAAA,IAChB;AACG,WAAOA;AAAA,EACR;AAED,WAASO,YAAY,QAAQ,UAAU;AACrC,QAAIJ,QAAO,SAAS,MAAM,GAAG;AAC3B,aAAO,OAAO;AAAA,IACnB;AACG,QAAI,kBAAkB,OAAO,MAAM,KAAK,WAAW,QAAQ,iBAAiB,GAAG;AAC7E,aAAO,OAAO;AAAA,IACnB;AACG,QAAI,OAAO,WAAW,UAAU;AAC9B,YAAM,IAAI;AAAA,QACR,6FACmB,OAAO;AAAA,MACjC;AAAA,IACA;AAEG,UAAM,MAAM,OAAO;AACnB,UAAM,YAAa,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM;AAC5D,QAAI,CAAC,aAAa,QAAQ,EAAG,QAAO;AAGpC,QAAI,cAAc;AAClB,eAAS;AACP,cAAQ,UAAQ;AAAA,QACd,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,YAAY,MAAM,EAAE;AAAA,QAC7B,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,MAAM;AAAA,QACf,KAAK;AACH,iBAAO,QAAQ;AAAA,QACjB,KAAK;AACH,iBAAO,cAAc,MAAM,EAAE;AAAA,QAC/B;AACE,cAAI,aAAa;AACf,mBAAO,YAAY,KAAK,YAAY,MAAM,EAAE;AAAA,UACvD;AACS,sBAAY,KAAK,UAAU,YAAa;AACxC,wBAAc;AAAA,MACvB;AAAA,IACA;AAAA,EACA;AACC,EAAAA,QAAO,aAAaI;AAEpB,WAAS,aAAc,UAAU,OAAO,KAAK;AAC3C,QAAI,cAAc;AASlB,QAAI,UAAU,UAAa,QAAQ,GAAG;AACpC,cAAQ;AAAA,IACb;AAGG,QAAI,QAAQ,KAAK,QAAQ;AACvB,aAAO;AAAA,IACZ;AAEG,QAAI,QAAQ,UAAa,MAAM,KAAK,QAAQ;AAC1C,YAAM,KAAK;AAAA,IAChB;AAEG,QAAI,OAAO,GAAG;AACZ,aAAO;AAAA,IACZ;AAGG,aAAS;AACT,eAAW;AAEX,QAAI,OAAO,OAAO;AAChB,aAAO;AAAA,IACZ;AAEG,QAAI,CAAC,SAAU,YAAW;AAE1B,WAAO,MAAM;AACX,cAAQ,UAAQ;AAAA,QACd,KAAK;AACH,iBAAO,SAAS,MAAM,OAAO,GAAG;AAAA,QAElC,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,UAAU,MAAM,OAAO,GAAG;AAAA,QAEnC,KAAK;AACH,iBAAO,WAAW,MAAM,OAAO,GAAG;AAAA,QAEpC,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,YAAY,MAAM,OAAO,GAAG;AAAA,QAErC,KAAK;AACH,iBAAO,YAAY,MAAM,OAAO,GAAG;AAAA,QAErC,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,aAAa,MAAM,OAAO,GAAG;AAAA,QAEtC;AACE,cAAI,YAAa,OAAM,IAAI,UAAU,uBAAuB,QAAQ;AACpE,sBAAY,WAAW,IAAI,YAAa;AACxC,wBAAc;AAAA,MACvB;AAAA,IACA;AAAA,EACA;AAQC,EAAAJ,QAAO,UAAU,YAAY;AAE7B,WAAS,KAAMG,IAAGI,IAAG,GAAG;AACtB,UAAMX,KAAIO,GAAEI,EAAC;AACb,IAAAJ,GAAEI,EAAC,IAAIJ,GAAE,CAAC;AACV,IAAAA,GAAE,CAAC,IAAIP;AAAA,EACV;AAEC,EAAAI,QAAO,UAAU,SAAS,SAAS,SAAU;AAC3C,UAAM,MAAM,KAAK;AACjB,QAAI,MAAM,MAAM,GAAG;AACjB,YAAM,IAAI,WAAW,2CAA2C;AAAA,IACrE;AACG,aAASJ,KAAI,GAAGA,KAAI,KAAKA,MAAK,GAAG;AAC/B,WAAK,MAAMA,IAAGA,KAAI,CAAC;AAAA,IACxB;AACG,WAAO;AAAA,EACR;AAED,EAAAI,QAAO,UAAU,SAAS,SAAS,SAAU;AAC3C,UAAM,MAAM,KAAK;AACjB,QAAI,MAAM,MAAM,GAAG;AACjB,YAAM,IAAI,WAAW,2CAA2C;AAAA,IACrE;AACG,aAASJ,KAAI,GAAGA,KAAI,KAAKA,MAAK,GAAG;AAC/B,WAAK,MAAMA,IAAGA,KAAI,CAAC;AACnB,WAAK,MAAMA,KAAI,GAAGA,KAAI,CAAC;AAAA,IAC5B;AACG,WAAO;AAAA,EACR;AAED,EAAAI,QAAO,UAAU,SAAS,SAAS,SAAU;AAC3C,UAAM,MAAM,KAAK;AACjB,QAAI,MAAM,MAAM,GAAG;AACjB,YAAM,IAAI,WAAW,2CAA2C;AAAA,IACrE;AACG,aAASJ,KAAI,GAAGA,KAAI,KAAKA,MAAK,GAAG;AAC/B,WAAK,MAAMA,IAAGA,KAAI,CAAC;AACnB,WAAK,MAAMA,KAAI,GAAGA,KAAI,CAAC;AACvB,WAAK,MAAMA,KAAI,GAAGA,KAAI,CAAC;AACvB,WAAK,MAAMA,KAAI,GAAGA,KAAI,CAAC;AAAA,IAC5B;AACG,WAAO;AAAA,EACR;AAED,EAAAI,QAAO,UAAU,WAAW,SAAS,WAAY;AAC/C,UAAM,SAAS,KAAK;AACpB,QAAI,WAAW,EAAG,QAAO;AACzB,QAAI,UAAU,WAAW,EAAG,QAAO,UAAU,MAAM,GAAG,MAAM;AAC5D,WAAO,aAAa,MAAM,MAAM,SAAS;AAAA,EAC1C;AAED,EAAAA,QAAO,UAAU,iBAAiBA,QAAO,UAAU;AAEnD,EAAAA,QAAO,UAAU,SAAS,SAAS,OAAQG,IAAG;AAC5C,QAAI,CAACH,QAAO,SAASG,EAAC,EAAG,OAAM,IAAI,UAAU,2BAA2B;AACxE,QAAI,SAASA,GAAG,QAAO;AACvB,WAAOH,QAAO,QAAQ,MAAMG,EAAC,MAAM;AAAA,EACpC;AAED,EAAAH,QAAO,UAAU,UAAU,SAAS,UAAW;AAC7C,QAAI,MAAM;AACV,UAAM,MAAM,QAAQ;AACpB,UAAM,KAAK,SAAS,OAAO,GAAG,GAAG,EAAE,QAAQ,WAAW,KAAK,EAAE,KAAM;AACnE,QAAI,KAAK,SAAS,IAAK,QAAO;AAC9B,WAAO,aAAa,MAAM;AAAA,EAC3B;AACD,MAAI,qBAAqB;AACvB,IAAAA,QAAO,UAAU,mBAAmB,IAAIA,QAAO,UAAU;AAAA,EAC5D;AAEC,EAAAA,QAAO,UAAU,UAAU,SAAS,QAAS,QAAQ,OAAO,KAAK,WAAW,SAAS;AACnF,QAAI,WAAW,QAAQ,gBAAgB,GAAG;AACxC,eAASA,QAAO,KAAK,QAAQ,OAAO,QAAQ,OAAO,UAAU;AAAA,IAClE;AACG,QAAI,CAACA,QAAO,SAAS,MAAM,GAAG;AAC5B,YAAM,IAAI;AAAA,QACR,mFACoB,OAAO;AAAA,MAClC;AAAA,IACA;AAEG,QAAI,UAAU,QAAW;AACvB,cAAQ;AAAA,IACb;AACG,QAAI,QAAQ,QAAW;AACrB,YAAM,SAAS,OAAO,SAAS;AAAA,IACpC;AACG,QAAI,cAAc,QAAW;AAC3B,kBAAY;AAAA,IACjB;AACG,QAAI,YAAY,QAAW;AACzB,gBAAU,KAAK;AAAA,IACpB;AAEG,QAAI,QAAQ,KAAK,MAAM,OAAO,UAAU,YAAY,KAAK,UAAU,KAAK,QAAQ;AAC9E,YAAM,IAAI,WAAW,oBAAoB;AAAA,IAC9C;AAEG,QAAI,aAAa,WAAW,SAAS,KAAK;AACxC,aAAO;AAAA,IACZ;AACG,QAAI,aAAa,SAAS;AACxB,aAAO;AAAA,IACZ;AACG,QAAI,SAAS,KAAK;AAChB,aAAO;AAAA,IACZ;AAEG,eAAW;AACX,aAAS;AACT,mBAAe;AACf,iBAAa;AAEb,QAAI,SAAS,OAAQ,QAAO;AAE5B,QAAIK,KAAI,UAAU;AAClB,QAAIC,KAAI,MAAM;AACd,UAAM,MAAM,KAAK,IAAID,IAAGC,EAAC;AAEzB,UAAM,WAAW,KAAK,MAAM,WAAW,OAAO;AAC9C,UAAM,aAAa,OAAO,MAAM,OAAO,GAAG;AAE1C,aAASV,KAAI,GAAGA,KAAI,KAAK,EAAEA,IAAG;AAC5B,UAAI,SAASA,EAAC,MAAM,WAAWA,EAAC,GAAG;AACjC,QAAAS,KAAI,SAAST,EAAC;AACd,QAAAU,KAAI,WAAWV,EAAC;AAChB;AAAA,MACP;AAAA,IACA;AAEG,QAAIS,KAAIC,GAAG,QAAO;AAClB,QAAIA,KAAID,GAAG,QAAO;AAClB,WAAO;AAAA,EACR;AAWD,WAAS,qBAAsBR,SAAQ,KAAK,YAAY,UAAU,KAAK;AAErE,QAAIA,QAAO,WAAW,EAAG,QAAO;AAGhC,QAAI,OAAO,eAAe,UAAU;AAClC,iBAAW;AACX,mBAAa;AAAA,IAClB,WAAc,aAAa,YAAY;AAClC,mBAAa;AAAA,IAClB,WAAc,aAAa,aAAa;AACnC,mBAAa;AAAA,IAClB;AACG,iBAAa,CAAC;AACd,QAAI,YAAY,UAAU,GAAG;AAE3B,mBAAa,MAAM,IAAKA,QAAO,SAAS;AAAA,IAC7C;AAGG,QAAI,aAAa,EAAG,cAAaA,QAAO,SAAS;AACjD,QAAI,cAAcA,QAAO,QAAQ;AAC/B,UAAI,IAAK,QAAO;AAAA,UACX,cAAaA,QAAO,SAAS;AAAA,IACvC,WAAc,aAAa,GAAG;AACzB,UAAI,IAAK,cAAa;AAAA,UACjB,QAAO;AAAA,IACjB;AAGG,QAAI,OAAO,QAAQ,UAAU;AAC3B,YAAMG,QAAO,KAAK,KAAK,QAAQ;AAAA,IACpC;AAGG,QAAIA,QAAO,SAAS,GAAG,GAAG;AAExB,UAAI,IAAI,WAAW,GAAG;AACpB,eAAO;AAAA,MACd;AACK,aAAO,aAAaH,SAAQ,KAAK,YAAY,UAAU,GAAG;AAAA,IAC/D,WAAc,OAAO,QAAQ,UAAU;AAClC,YAAM,MAAM;AACZ,UAAI,OAAO,iBAAiB,UAAU,YAAY,YAAY;AAC5D,YAAI,KAAK;AACP,iBAAO,iBAAiB,UAAU,QAAQ,KAAKA,SAAQ,KAAK,UAAU;AAAA,QAC/E,OAAc;AACL,iBAAO,iBAAiB,UAAU,YAAY,KAAKA,SAAQ,KAAK,UAAU;AAAA,QACnF;AAAA,MACA;AACK,aAAO,aAAaA,SAAQ,CAAC,GAAG,GAAG,YAAY,UAAU,GAAG;AAAA,IACjE;AAEG,UAAM,IAAI,UAAU,sCAAsC;AAAA,EAC7D;AAEC,WAAS,aAAc,KAAK,KAAK,YAAY,UAAU,KAAK;AAC1D,QAAI,YAAY;AAChB,QAAI,YAAY,IAAI;AACpB,QAAI,YAAY,IAAI;AAEpB,QAAI,aAAa,QAAW;AAC1B,iBAAW,OAAO,QAAQ,EAAE,YAAa;AACzC,UAAI,aAAa,UAAU,aAAa,WACpC,aAAa,aAAa,aAAa,YAAY;AACrD,YAAI,IAAI,SAAS,KAAK,IAAI,SAAS,GAAG;AACpC,iBAAO;AAAA,QAChB;AACO,oBAAY;AACZ,qBAAa;AACb,qBAAa;AACb,sBAAc;AAAA,MACrB;AAAA,IACA;AAEG,aAAS,KAAM,KAAKD,IAAG;AACrB,UAAI,cAAc,GAAG;AACnB,eAAO,IAAIA,EAAC;AAAA,MACnB,OAAY;AACL,eAAO,IAAI,aAAaA,KAAI,SAAS;AAAA,MAC5C;AAAA,IACA;AAEG,QAAIA;AACJ,QAAI,KAAK;AACP,UAAI,aAAa;AACjB,WAAKA,KAAI,YAAYA,KAAI,WAAWA,MAAK;AACvC,YAAI,KAAK,KAAKA,EAAC,MAAM,KAAK,KAAK,eAAe,KAAK,IAAIA,KAAI,UAAU,GAAG;AACtE,cAAI,eAAe,GAAI,cAAaA;AACpC,cAAIA,KAAI,aAAa,MAAM,UAAW,QAAO,aAAa;AAAA,QACnE,OAAc;AACL,cAAI,eAAe,GAAI,CAAAA,MAAKA,KAAI;AAChC,uBAAa;AAAA,QACtB;AAAA,MACA;AAAA,IACA,OAAU;AACL,UAAI,aAAa,YAAY,UAAW,cAAa,YAAY;AACjE,WAAKA,KAAI,YAAYA,MAAK,GAAGA,MAAK;AAChC,YAAI,QAAQ;AACZ,iBAAS,IAAI,GAAG,IAAI,WAAW,KAAK;AAClC,cAAI,KAAK,KAAKA,KAAI,CAAC,MAAM,KAAK,KAAK,CAAC,GAAG;AACrC,oBAAQ;AACR;AAAA,UACX;AAAA,QACA;AACO,YAAI,MAAO,QAAOA;AAAA,MACzB;AAAA,IACA;AAEG,WAAO;AAAA,EACV;AAEC,EAAAI,QAAO,UAAU,WAAW,SAAS,SAAU,KAAK,YAAY,UAAU;AACxE,WAAO,KAAK,QAAQ,KAAK,YAAY,QAAQ,MAAM;AAAA,EACpD;AAED,EAAAA,QAAO,UAAU,UAAU,SAAS,QAAS,KAAK,YAAY,UAAU;AACtE,WAAO,qBAAqB,MAAM,KAAK,YAAY,UAAU,IAAI;AAAA,EAClE;AAED,EAAAA,QAAO,UAAU,cAAc,SAAS,YAAa,KAAK,YAAY,UAAU;AAC9E,WAAO,qBAAqB,MAAM,KAAK,YAAY,UAAU,KAAK;AAAA,EACnE;AAED,WAAS,SAAU,KAAK,QAAQ,QAAQ,QAAQ;AAC9C,aAAS,OAAO,MAAM,KAAK;AAC3B,UAAM,YAAY,IAAI,SAAS;AAC/B,QAAI,CAAC,QAAQ;AACX,eAAS;AAAA,IACd,OAAU;AACL,eAAS,OAAO,MAAM;AACtB,UAAI,SAAS,WAAW;AACtB,iBAAS;AAAA,MAChB;AAAA,IACA;AAEG,UAAM,SAAS,OAAO;AAEtB,QAAI,SAAS,SAAS,GAAG;AACvB,eAAS,SAAS;AAAA,IACvB;AACG,QAAIJ;AACJ,SAAKA,KAAI,GAAGA,KAAI,QAAQ,EAAEA,IAAG;AAC3B,YAAM,SAAS,SAAS,OAAO,OAAOA,KAAI,GAAG,CAAC,GAAG,EAAE;AACnD,UAAI,YAAY,MAAM,EAAG,QAAOA;AAChC,UAAI,SAASA,EAAC,IAAI;AAAA,IACvB;AACG,WAAOA;AAAA,EACV;AAEC,WAAS,UAAW,KAAK,QAAQ,QAAQ,QAAQ;AAC/C,WAAO,WAAW,YAAY,QAAQ,IAAI,SAAS,MAAM,GAAG,KAAK,QAAQ,MAAM;AAAA,EAClF;AAEC,WAAS,WAAY,KAAK,QAAQ,QAAQ,QAAQ;AAChD,WAAO,WAAW,aAAa,MAAM,GAAG,KAAK,QAAQ,MAAM;AAAA,EAC9D;AAEC,WAAS,YAAa,KAAK,QAAQ,QAAQ,QAAQ;AACjD,WAAO,WAAW,cAAc,MAAM,GAAG,KAAK,QAAQ,MAAM;AAAA,EAC/D;AAEC,WAAS,UAAW,KAAK,QAAQ,QAAQ,QAAQ;AAC/C,WAAO,WAAW,eAAe,QAAQ,IAAI,SAAS,MAAM,GAAG,KAAK,QAAQ,MAAM;AAAA,EACrF;AAEC,EAAAI,QAAO,UAAU,QAAQ,SAAS,MAAO,QAAQ,QAAQ,QAAQ,UAAU;AAEzE,QAAI,WAAW,QAAW;AACxB,iBAAW;AACX,eAAS,KAAK;AACd,eAAS;AAAA,IAEV,WAAU,WAAW,UAAa,OAAO,WAAW,UAAU;AAC7D,iBAAW;AACX,eAAS,KAAK;AACd,eAAS;AAAA,IAEd,WAAc,SAAS,MAAM,GAAG;AAC3B,eAAS,WAAW;AACpB,UAAI,SAAS,MAAM,GAAG;AACpB,iBAAS,WAAW;AACpB,YAAI,aAAa,OAAW,YAAW;AAAA,MAC9C,OAAY;AACL,mBAAW;AACX,iBAAS;AAAA,MAChB;AAAA,IACA,OAAU;AACL,YAAM,IAAI;AAAA,QACR;AAAA,MACP;AAAA,IACA;AAEG,UAAM,YAAY,KAAK,SAAS;AAChC,QAAI,WAAW,UAAa,SAAS,UAAW,UAAS;AAEzD,QAAK,OAAO,SAAS,MAAM,SAAS,KAAK,SAAS,MAAO,SAAS,KAAK,QAAQ;AAC7E,YAAM,IAAI,WAAW,wCAAwC;AAAA,IAClE;AAEG,QAAI,CAAC,SAAU,YAAW;AAE1B,QAAI,cAAc;AAClB,eAAS;AACP,cAAQ,UAAQ;AAAA,QACd,KAAK;AACH,iBAAO,SAAS,MAAM,QAAQ,QAAQ,MAAM;AAAA,QAE9C,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,UAAU,MAAM,QAAQ,QAAQ,MAAM;AAAA,QAE/C,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,WAAW,MAAM,QAAQ,QAAQ,MAAM;AAAA,QAEhD,KAAK;AAEH,iBAAO,YAAY,MAAM,QAAQ,QAAQ,MAAM;AAAA,QAEjD,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,UAAU,MAAM,QAAQ,QAAQ,MAAM;AAAA,QAE/C;AACE,cAAI,YAAa,OAAM,IAAI,UAAU,uBAAuB,QAAQ;AACpE,sBAAY,KAAK,UAAU,YAAa;AACxC,wBAAc;AAAA,MACvB;AAAA,IACA;AAAA,EACE;AAED,EAAAA,QAAO,UAAU,SAAS,SAAS,SAAU;AAC3C,WAAO;AAAA,MACL,MAAM;AAAA,MACN,MAAM,MAAM,UAAU,MAAM,KAAK,KAAK,QAAQ,MAAM,CAAC;AAAA,IAC1D;AAAA,EACE;AAED,WAAS,YAAa,KAAK,OAAO,KAAK;AACrC,QAAI,UAAU,KAAK,QAAQ,IAAI,QAAQ;AACrC,aAAO,OAAO,cAAc,GAAG;AAAA,IACpC,OAAU;AACL,aAAO,OAAO,cAAc,IAAI,MAAM,OAAO,GAAG,CAAC;AAAA,IACtD;AAAA,EACA;AAEC,WAAS,UAAW,KAAK,OAAO,KAAK;AACnC,UAAM,KAAK,IAAI,IAAI,QAAQ,GAAG;AAC9B,UAAM,MAAM,CAAE;AAEd,QAAIJ,KAAI;AACR,WAAOA,KAAI,KAAK;AACd,YAAM,YAAY,IAAIA,EAAC;AACvB,UAAI,YAAY;AAChB,UAAI,mBAAoB,YAAY,MAChC,IACC,YAAY,MACT,IACC,YAAY,MACT,IACA;AAEZ,UAAIA,KAAI,oBAAoB,KAAK;AAC/B,YAAI,YAAY,WAAW,YAAY;AAEvC,gBAAQ,kBAAgB;AAAA,UACtB,KAAK;AACH,gBAAI,YAAY,KAAM;AACpB,0BAAY;AAAA,YACzB;AACW;AAAA,UACF,KAAK;AACH,yBAAa,IAAIA,KAAI,CAAC;AACtB,iBAAK,aAAa,SAAU,KAAM;AAChC,+BAAiB,YAAY,OAAS,IAAO,aAAa;AAC1D,kBAAI,gBAAgB,KAAM;AACxB,4BAAY;AAAA,cAC3B;AAAA,YACA;AACW;AAAA,UACF,KAAK;AACH,yBAAa,IAAIA,KAAI,CAAC;AACtB,wBAAY,IAAIA,KAAI,CAAC;AACrB,iBAAK,aAAa,SAAU,QAAS,YAAY,SAAU,KAAM;AAC/D,+BAAiB,YAAY,OAAQ,MAAO,aAAa,OAAS,IAAO,YAAY;AACrF,kBAAI,gBAAgB,SAAU,gBAAgB,SAAU,gBAAgB,QAAS;AAC/E,4BAAY;AAAA,cAC3B;AAAA,YACA;AACW;AAAA,UACF,KAAK;AACH,yBAAa,IAAIA,KAAI,CAAC;AACtB,wBAAY,IAAIA,KAAI,CAAC;AACrB,yBAAa,IAAIA,KAAI,CAAC;AACtB,iBAAK,aAAa,SAAU,QAAS,YAAY,SAAU,QAAS,aAAa,SAAU,KAAM;AAC/F,+BAAiB,YAAY,OAAQ,MAAQ,aAAa,OAAS,MAAO,YAAY,OAAS,IAAO,aAAa;AACnH,kBAAI,gBAAgB,SAAU,gBAAgB,SAAU;AACtD,4BAAY;AAAA,cAC3B;AAAA,YACA;AAAA,QACA;AAAA,MACA;AAEK,UAAI,cAAc,MAAM;AAGtB,oBAAY;AACZ,2BAAmB;AAAA,MAC1B,WAAgB,YAAY,OAAQ;AAE7B,qBAAa;AACb,YAAI,KAAK,cAAc,KAAK,OAAQ,KAAM;AAC1C,oBAAY,QAAS,YAAY;AAAA,MACxC;AAEK,UAAI,KAAK,SAAS;AAClB,MAAAA,MAAK;AAAA,IACV;AAEG,WAAO,sBAAsB,GAAG;AAAA,EACnC;AAKC,QAAM,uBAAuB;AAE7B,WAAS,sBAAuB,YAAY;AAC1C,UAAM,MAAM,WAAW;AACvB,QAAI,OAAO,sBAAsB;AAC/B,aAAO,OAAO,aAAa,MAAM,QAAQ,UAAU;AAAA,IACxD;AAGG,QAAI,MAAM;AACV,QAAIA,KAAI;AACR,WAAOA,KAAI,KAAK;AACd,aAAO,OAAO,aAAa;AAAA,QACzB;AAAA,QACA,WAAW,MAAMA,IAAGA,MAAK,oBAAoB;AAAA,MAC9C;AAAA,IACN;AACG,WAAO;AAAA,EACV;AAEC,WAAS,WAAY,KAAK,OAAO,KAAK;AACpC,QAAI,MAAM;AACV,UAAM,KAAK,IAAI,IAAI,QAAQ,GAAG;AAE9B,aAASA,KAAI,OAAOA,KAAI,KAAK,EAAEA,IAAG;AAChC,aAAO,OAAO,aAAa,IAAIA,EAAC,IAAI,GAAI;AAAA,IAC7C;AACG,WAAO;AAAA,EACV;AAEC,WAAS,YAAa,KAAK,OAAO,KAAK;AACrC,QAAI,MAAM;AACV,UAAM,KAAK,IAAI,IAAI,QAAQ,GAAG;AAE9B,aAASA,KAAI,OAAOA,KAAI,KAAK,EAAEA,IAAG;AAChC,aAAO,OAAO,aAAa,IAAIA,EAAC,CAAC;AAAA,IACtC;AACG,WAAO;AAAA,EACV;AAEC,WAAS,SAAU,KAAK,OAAO,KAAK;AAClC,UAAM,MAAM,IAAI;AAEhB,QAAI,CAAC,SAAS,QAAQ,EAAG,SAAQ;AACjC,QAAI,CAAC,OAAO,MAAM,KAAK,MAAM,IAAK,OAAM;AAExC,QAAI,MAAM;AACV,aAASA,KAAI,OAAOA,KAAI,KAAK,EAAEA,IAAG;AAChC,aAAO,oBAAoB,IAAIA,EAAC,CAAC;AAAA,IACtC;AACG,WAAO;AAAA,EACV;AAEC,WAAS,aAAc,KAAK,OAAO,KAAK;AACtC,UAAM,QAAQ,IAAI,MAAM,OAAO,GAAG;AAClC,QAAI,MAAM;AAEV,aAASA,KAAI,GAAGA,KAAI,MAAM,SAAS,GAAGA,MAAK,GAAG;AAC5C,aAAO,OAAO,aAAa,MAAMA,EAAC,IAAK,MAAMA,KAAI,CAAC,IAAI,GAAI;AAAA,IAC/D;AACG,WAAO;AAAA,EACV;AAEC,EAAAI,QAAO,UAAU,QAAQ,SAAS,MAAO,OAAO,KAAK;AACnD,UAAM,MAAM,KAAK;AACjB,YAAQ,CAAC,CAAC;AACV,UAAM,QAAQ,SAAY,MAAM,CAAC,CAAC;AAElC,QAAI,QAAQ,GAAG;AACb,eAAS;AACT,UAAI,QAAQ,EAAG,SAAQ;AAAA,IAC5B,WAAc,QAAQ,KAAK;AACtB,cAAQ;AAAA,IACb;AAEG,QAAI,MAAM,GAAG;AACX,aAAO;AACP,UAAI,MAAM,EAAG,OAAM;AAAA,IACxB,WAAc,MAAM,KAAK;AACpB,YAAM;AAAA,IACX;AAEG,QAAI,MAAM,MAAO,OAAM;AAEvB,UAAM,SAAS,KAAK,SAAS,OAAO,GAAG;AAEvC,WAAO,eAAe,QAAQA,QAAO,SAAS;AAE9C,WAAO;AAAA,EACR;AAKD,WAAS,YAAa,QAAQ,KAAK,QAAQ;AACzC,QAAK,SAAS,MAAO,KAAK,SAAS,EAAG,OAAM,IAAI,WAAW,oBAAoB;AAC/E,QAAI,SAAS,MAAM,OAAQ,OAAM,IAAI,WAAW,uCAAuC;AAAA,EAC1F;AAEC,EAAAA,QAAO,UAAU,aACjBA,QAAO,UAAU,aAAa,SAAS,WAAY,QAAQI,aAAY,UAAU;AAC/E,aAAS,WAAW;AACpB,IAAAA,cAAaA,gBAAe;AAC5B,QAAI,CAAC,SAAU,aAAY,QAAQA,aAAY,KAAK,MAAM;AAE1D,QAAI,MAAM,KAAK,MAAM;AACrB,QAAI,MAAM;AACV,QAAIR,KAAI;AACR,WAAO,EAAEA,KAAIQ,gBAAe,OAAO,MAAQ;AACzC,aAAO,KAAK,SAASR,EAAC,IAAI;AAAA,IAC/B;AAEG,WAAO;AAAA,EACR;AAED,EAAAI,QAAO,UAAU,aACjBA,QAAO,UAAU,aAAa,SAAS,WAAY,QAAQI,aAAY,UAAU;AAC/E,aAAS,WAAW;AACpB,IAAAA,cAAaA,gBAAe;AAC5B,QAAI,CAAC,UAAU;AACb,kBAAY,QAAQA,aAAY,KAAK,MAAM;AAAA,IAChD;AAEG,QAAI,MAAM,KAAK,SAAS,EAAEA,WAAU;AACpC,QAAI,MAAM;AACV,WAAOA,cAAa,MAAM,OAAO,MAAQ;AACvC,aAAO,KAAK,SAAS,EAAEA,WAAU,IAAI;AAAA,IAC1C;AAEG,WAAO;AAAA,EACR;AAED,EAAAJ,QAAO,UAAU,YACjBA,QAAO,UAAU,YAAY,SAAS,UAAW,QAAQ,UAAU;AACjE,aAAS,WAAW;AACpB,QAAI,CAAC,SAAU,aAAY,QAAQ,GAAG,KAAK,MAAM;AACjD,WAAO,KAAK,MAAM;AAAA,EACnB;AAED,EAAAA,QAAO,UAAU,eACjBA,QAAO,UAAU,eAAe,SAAS,aAAc,QAAQ,UAAU;AACvE,aAAS,WAAW;AACpB,QAAI,CAAC,SAAU,aAAY,QAAQ,GAAG,KAAK,MAAM;AACjD,WAAO,KAAK,MAAM,IAAK,KAAK,SAAS,CAAC,KAAK;AAAA,EAC5C;AAED,EAAAA,QAAO,UAAU,eACjBA,QAAO,UAAU,eAAe,SAAS,aAAc,QAAQ,UAAU;AACvE,aAAS,WAAW;AACpB,QAAI,CAAC,SAAU,aAAY,QAAQ,GAAG,KAAK,MAAM;AACjD,WAAQ,KAAK,MAAM,KAAK,IAAK,KAAK,SAAS,CAAC;AAAA,EAC7C;AAED,EAAAA,QAAO,UAAU,eACjBA,QAAO,UAAU,eAAe,SAAS,aAAc,QAAQ,UAAU;AACvE,aAAS,WAAW;AACpB,QAAI,CAAC,SAAU,aAAY,QAAQ,GAAG,KAAK,MAAM;AAEjD,YAAS,KAAK,MAAM,IACf,KAAK,SAAS,CAAC,KAAK,IACpB,KAAK,SAAS,CAAC,KAAK,MACpB,KAAK,SAAS,CAAC,IAAI;AAAA,EACzB;AAED,EAAAA,QAAO,UAAU,eACjBA,QAAO,UAAU,eAAe,SAAS,aAAc,QAAQ,UAAU;AACvE,aAAS,WAAW;AACpB,QAAI,CAAC,SAAU,aAAY,QAAQ,GAAG,KAAK,MAAM;AAEjD,WAAQ,KAAK,MAAM,IAAI,YACnB,KAAK,SAAS,CAAC,KAAK,KACrB,KAAK,SAAS,CAAC,KAAK,IACrB,KAAK,SAAS,CAAC;AAAA,EAClB;AAED,EAAAA,QAAO,UAAU,kBAAkB,mBAAmB,SAAS,gBAAiB,QAAQ;AACtF,aAAS,WAAW;AACpB,mBAAe,QAAQ,QAAQ;AAC/B,UAAM,QAAQ,KAAK,MAAM;AACzB,UAAM,OAAO,KAAK,SAAS,CAAC;AAC5B,QAAI,UAAU,UAAa,SAAS,QAAW;AAC7C,kBAAY,QAAQ,KAAK,SAAS,CAAC;AAAA,IACxC;AAEG,UAAM,KAAK,QACT,KAAK,EAAE,MAAM,IAAI,KAAK,IACtB,KAAK,EAAE,MAAM,IAAI,KAAK,KACtB,KAAK,EAAE,MAAM,IAAI,KAAK;AAExB,UAAM,KAAK,KAAK,EAAE,MAAM,IACtB,KAAK,EAAE,MAAM,IAAI,KAAK,IACtB,KAAK,EAAE,MAAM,IAAI,KAAK,KACtB,OAAO,KAAK;AAEd,WAAO,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,OAAO,EAAE;AAAA,EAC/C,CAAE;AAED,EAAAA,QAAO,UAAU,kBAAkB,mBAAmB,SAAS,gBAAiB,QAAQ;AACtF,aAAS,WAAW;AACpB,mBAAe,QAAQ,QAAQ;AAC/B,UAAM,QAAQ,KAAK,MAAM;AACzB,UAAM,OAAO,KAAK,SAAS,CAAC;AAC5B,QAAI,UAAU,UAAa,SAAS,QAAW;AAC7C,kBAAY,QAAQ,KAAK,SAAS,CAAC;AAAA,IACxC;AAEG,UAAM,KAAK,QAAQ,KAAK,KACtB,KAAK,EAAE,MAAM,IAAI,KAAK,KACtB,KAAK,EAAE,MAAM,IAAI,KAAK,IACtB,KAAK,EAAE,MAAM;AAEf,UAAM,KAAK,KAAK,EAAE,MAAM,IAAI,KAAK,KAC/B,KAAK,EAAE,MAAM,IAAI,KAAK,KACtB,KAAK,EAAE,MAAM,IAAI,KAAK,IACtB;AAEF,YAAQ,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,OAAO,EAAE;AAAA,EAChD,CAAE;AAED,EAAAA,QAAO,UAAU,YAAY,SAAS,UAAW,QAAQI,aAAY,UAAU;AAC7E,aAAS,WAAW;AACpB,IAAAA,cAAaA,gBAAe;AAC5B,QAAI,CAAC,SAAU,aAAY,QAAQA,aAAY,KAAK,MAAM;AAE1D,QAAI,MAAM,KAAK,MAAM;AACrB,QAAI,MAAM;AACV,QAAIR,KAAI;AACR,WAAO,EAAEA,KAAIQ,gBAAe,OAAO,MAAQ;AACzC,aAAO,KAAK,SAASR,EAAC,IAAI;AAAA,IAC/B;AACG,WAAO;AAEP,QAAI,OAAO,IAAK,QAAO,KAAK,IAAI,GAAG,IAAIQ,WAAU;AAEjD,WAAO;AAAA,EACR;AAED,EAAAJ,QAAO,UAAU,YAAY,SAAS,UAAW,QAAQI,aAAY,UAAU;AAC7E,aAAS,WAAW;AACpB,IAAAA,cAAaA,gBAAe;AAC5B,QAAI,CAAC,SAAU,aAAY,QAAQA,aAAY,KAAK,MAAM;AAE1D,QAAIR,KAAIQ;AACR,QAAI,MAAM;AACV,QAAI,MAAM,KAAK,SAAS,EAAER,EAAC;AAC3B,WAAOA,KAAI,MAAM,OAAO,MAAQ;AAC9B,aAAO,KAAK,SAAS,EAAEA,EAAC,IAAI;AAAA,IACjC;AACG,WAAO;AAEP,QAAI,OAAO,IAAK,QAAO,KAAK,IAAI,GAAG,IAAIQ,WAAU;AAEjD,WAAO;AAAA,EACR;AAED,EAAAJ,QAAO,UAAU,WAAW,SAAS,SAAU,QAAQ,UAAU;AAC/D,aAAS,WAAW;AACpB,QAAI,CAAC,SAAU,aAAY,QAAQ,GAAG,KAAK,MAAM;AACjD,QAAI,EAAE,KAAK,MAAM,IAAI,KAAO,QAAQ,KAAK,MAAM;AAC/C,YAAS,MAAO,KAAK,MAAM,IAAI,KAAK;AAAA,EACrC;AAED,EAAAA,QAAO,UAAU,cAAc,SAAS,YAAa,QAAQ,UAAU;AACrE,aAAS,WAAW;AACpB,QAAI,CAAC,SAAU,aAAY,QAAQ,GAAG,KAAK,MAAM;AACjD,UAAM,MAAM,KAAK,MAAM,IAAK,KAAK,SAAS,CAAC,KAAK;AAChD,WAAQ,MAAM,QAAU,MAAM,aAAa;AAAA,EAC5C;AAED,EAAAA,QAAO,UAAU,cAAc,SAAS,YAAa,QAAQ,UAAU;AACrE,aAAS,WAAW;AACpB,QAAI,CAAC,SAAU,aAAY,QAAQ,GAAG,KAAK,MAAM;AACjD,UAAM,MAAM,KAAK,SAAS,CAAC,IAAK,KAAK,MAAM,KAAK;AAChD,WAAQ,MAAM,QAAU,MAAM,aAAa;AAAA,EAC5C;AAED,EAAAA,QAAO,UAAU,cAAc,SAAS,YAAa,QAAQ,UAAU;AACrE,aAAS,WAAW;AACpB,QAAI,CAAC,SAAU,aAAY,QAAQ,GAAG,KAAK,MAAM;AAEjD,WAAQ,KAAK,MAAM,IAChB,KAAK,SAAS,CAAC,KAAK,IACpB,KAAK,SAAS,CAAC,KAAK,KACpB,KAAK,SAAS,CAAC,KAAK;AAAA,EACxB;AAED,EAAAA,QAAO,UAAU,cAAc,SAAS,YAAa,QAAQ,UAAU;AACrE,aAAS,WAAW;AACpB,QAAI,CAAC,SAAU,aAAY,QAAQ,GAAG,KAAK,MAAM;AAEjD,WAAQ,KAAK,MAAM,KAAK,KACrB,KAAK,SAAS,CAAC,KAAK,KACpB,KAAK,SAAS,CAAC,KAAK,IACpB,KAAK,SAAS,CAAC;AAAA,EACnB;AAED,EAAAA,QAAO,UAAU,iBAAiB,mBAAmB,SAAS,eAAgB,QAAQ;AACpF,aAAS,WAAW;AACpB,mBAAe,QAAQ,QAAQ;AAC/B,UAAM,QAAQ,KAAK,MAAM;AACzB,UAAM,OAAO,KAAK,SAAS,CAAC;AAC5B,QAAI,UAAU,UAAa,SAAS,QAAW;AAC7C,kBAAY,QAAQ,KAAK,SAAS,CAAC;AAAA,IACxC;AAEG,UAAM,MAAM,KAAK,SAAS,CAAC,IACzB,KAAK,SAAS,CAAC,IAAI,KAAK,IACxB,KAAK,SAAS,CAAC,IAAI,KAAK,MACvB,QAAQ;AAEX,YAAQ,OAAO,GAAG,KAAK,OAAO,EAAE,KAC9B,OAAO,QACP,KAAK,EAAE,MAAM,IAAI,KAAK,IACtB,KAAK,EAAE,MAAM,IAAI,KAAK,KACtB,KAAK,EAAE,MAAM,IAAI,KAAK,EAAE;AAAA,EAC7B,CAAE;AAED,EAAAA,QAAO,UAAU,iBAAiB,mBAAmB,SAAS,eAAgB,QAAQ;AACpF,aAAS,WAAW;AACpB,mBAAe,QAAQ,QAAQ;AAC/B,UAAM,QAAQ,KAAK,MAAM;AACzB,UAAM,OAAO,KAAK,SAAS,CAAC;AAC5B,QAAI,UAAU,UAAa,SAAS,QAAW;AAC7C,kBAAY,QAAQ,KAAK,SAAS,CAAC;AAAA,IACxC;AAEG,UAAM,OAAO,SAAS;AAAA,IACpB,KAAK,EAAE,MAAM,IAAI,KAAK,KACtB,KAAK,EAAE,MAAM,IAAI,KAAK,IACtB,KAAK,EAAE,MAAM;AAEf,YAAQ,OAAO,GAAG,KAAK,OAAO,EAAE,KAC9B,OAAO,KAAK,EAAE,MAAM,IAAI,KAAK,KAC7B,KAAK,EAAE,MAAM,IAAI,KAAK,KACtB,KAAK,EAAE,MAAM,IAAI,KAAK,IACtB,IAAI;AAAA,EACT,CAAE;AAED,EAAAA,QAAO,UAAU,cAAc,SAAS,YAAa,QAAQ,UAAU;AACrE,aAAS,WAAW;AACpB,QAAI,CAAC,SAAU,aAAY,QAAQ,GAAG,KAAK,MAAM;AACjD,WAAO,UAAU,KAAK,MAAM,QAAQ,MAAM,IAAI,CAAC;AAAA,EAChD;AAED,EAAAA,QAAO,UAAU,cAAc,SAAS,YAAa,QAAQ,UAAU;AACrE,aAAS,WAAW;AACpB,QAAI,CAAC,SAAU,aAAY,QAAQ,GAAG,KAAK,MAAM;AACjD,WAAO,UAAU,KAAK,MAAM,QAAQ,OAAO,IAAI,CAAC;AAAA,EACjD;AAED,EAAAA,QAAO,UAAU,eAAe,SAAS,aAAc,QAAQ,UAAU;AACvE,aAAS,WAAW;AACpB,QAAI,CAAC,SAAU,aAAY,QAAQ,GAAG,KAAK,MAAM;AACjD,WAAO,UAAU,KAAK,MAAM,QAAQ,MAAM,IAAI,CAAC;AAAA,EAChD;AAED,EAAAA,QAAO,UAAU,eAAe,SAAS,aAAc,QAAQ,UAAU;AACvE,aAAS,WAAW;AACpB,QAAI,CAAC,SAAU,aAAY,QAAQ,GAAG,KAAK,MAAM;AACjD,WAAO,UAAU,KAAK,MAAM,QAAQ,OAAO,IAAI,CAAC;AAAA,EACjD;AAED,WAAS,SAAU,KAAK,OAAO,QAAQ,KAAK,KAAK,KAAK;AACpD,QAAI,CAACA,QAAO,SAAS,GAAG,EAAG,OAAM,IAAI,UAAU,6CAA6C;AAC5F,QAAI,QAAQ,OAAO,QAAQ,IAAK,OAAM,IAAI,WAAW,mCAAmC;AACxF,QAAI,SAAS,MAAM,IAAI,OAAQ,OAAM,IAAI,WAAW,oBAAoB;AAAA,EAC3E;AAEC,EAAAA,QAAO,UAAU,cACjBA,QAAO,UAAU,cAAc,SAAS,YAAa,OAAO,QAAQI,aAAY,UAAU;AACxF,YAAQ,CAAC;AACT,aAAS,WAAW;AACpB,IAAAA,cAAaA,gBAAe;AAC5B,QAAI,CAAC,UAAU;AACb,YAAM,WAAW,KAAK,IAAI,GAAG,IAAIA,WAAU,IAAI;AAC/C,eAAS,MAAM,OAAO,QAAQA,aAAY,UAAU,CAAC;AAAA,IAC1D;AAEG,QAAI,MAAM;AACV,QAAIR,KAAI;AACR,SAAK,MAAM,IAAI,QAAQ;AACvB,WAAO,EAAEA,KAAIQ,gBAAe,OAAO,MAAQ;AACzC,WAAK,SAASR,EAAC,IAAK,QAAQ,MAAO;AAAA,IACxC;AAEG,WAAO,SAASQ;AAAA,EACjB;AAED,EAAAJ,QAAO,UAAU,cACjBA,QAAO,UAAU,cAAc,SAAS,YAAa,OAAO,QAAQI,aAAY,UAAU;AACxF,YAAQ,CAAC;AACT,aAAS,WAAW;AACpB,IAAAA,cAAaA,gBAAe;AAC5B,QAAI,CAAC,UAAU;AACb,YAAM,WAAW,KAAK,IAAI,GAAG,IAAIA,WAAU,IAAI;AAC/C,eAAS,MAAM,OAAO,QAAQA,aAAY,UAAU,CAAC;AAAA,IAC1D;AAEG,QAAIR,KAAIQ,cAAa;AACrB,QAAI,MAAM;AACV,SAAK,SAASR,EAAC,IAAI,QAAQ;AAC3B,WAAO,EAAEA,MAAK,MAAM,OAAO,MAAQ;AACjC,WAAK,SAASA,EAAC,IAAK,QAAQ,MAAO;AAAA,IACxC;AAEG,WAAO,SAASQ;AAAA,EACjB;AAED,EAAAJ,QAAO,UAAU,aACjBA,QAAO,UAAU,aAAa,SAAS,WAAY,OAAO,QAAQ,UAAU;AAC1E,YAAQ,CAAC;AACT,aAAS,WAAW;AACpB,QAAI,CAAC,SAAU,UAAS,MAAM,OAAO,QAAQ,GAAG,KAAM,CAAC;AACvD,SAAK,MAAM,IAAK,QAAQ;AACxB,WAAO,SAAS;AAAA,EACjB;AAED,EAAAA,QAAO,UAAU,gBACjBA,QAAO,UAAU,gBAAgB,SAAS,cAAe,OAAO,QAAQ,UAAU;AAChF,YAAQ,CAAC;AACT,aAAS,WAAW;AACpB,QAAI,CAAC,SAAU,UAAS,MAAM,OAAO,QAAQ,GAAG,OAAQ,CAAC;AACzD,SAAK,MAAM,IAAK,QAAQ;AACxB,SAAK,SAAS,CAAC,IAAK,UAAU;AAC9B,WAAO,SAAS;AAAA,EACjB;AAED,EAAAA,QAAO,UAAU,gBACjBA,QAAO,UAAU,gBAAgB,SAAS,cAAe,OAAO,QAAQ,UAAU;AAChF,YAAQ,CAAC;AACT,aAAS,WAAW;AACpB,QAAI,CAAC,SAAU,UAAS,MAAM,OAAO,QAAQ,GAAG,OAAQ,CAAC;AACzD,SAAK,MAAM,IAAK,UAAU;AAC1B,SAAK,SAAS,CAAC,IAAK,QAAQ;AAC5B,WAAO,SAAS;AAAA,EACjB;AAED,EAAAA,QAAO,UAAU,gBACjBA,QAAO,UAAU,gBAAgB,SAAS,cAAe,OAAO,QAAQ,UAAU;AAChF,YAAQ,CAAC;AACT,aAAS,WAAW;AACpB,QAAI,CAAC,SAAU,UAAS,MAAM,OAAO,QAAQ,GAAG,YAAY,CAAC;AAC7D,SAAK,SAAS,CAAC,IAAK,UAAU;AAC9B,SAAK,SAAS,CAAC,IAAK,UAAU;AAC9B,SAAK,SAAS,CAAC,IAAK,UAAU;AAC9B,SAAK,MAAM,IAAK,QAAQ;AACxB,WAAO,SAAS;AAAA,EACjB;AAED,EAAAA,QAAO,UAAU,gBACjBA,QAAO,UAAU,gBAAgB,SAAS,cAAe,OAAO,QAAQ,UAAU;AAChF,YAAQ,CAAC;AACT,aAAS,WAAW;AACpB,QAAI,CAAC,SAAU,UAAS,MAAM,OAAO,QAAQ,GAAG,YAAY,CAAC;AAC7D,SAAK,MAAM,IAAK,UAAU;AAC1B,SAAK,SAAS,CAAC,IAAK,UAAU;AAC9B,SAAK,SAAS,CAAC,IAAK,UAAU;AAC9B,SAAK,SAAS,CAAC,IAAK,QAAQ;AAC5B,WAAO,SAAS;AAAA,EACjB;AAED,WAAS,eAAgB,KAAK,OAAO,QAAQ,KAAK,KAAK;AACrD,eAAW,OAAO,KAAK,KAAK,KAAK,QAAQ,CAAC;AAE1C,QAAI,KAAK,OAAO,QAAQ,OAAO,UAAU,CAAC;AAC1C,QAAI,QAAQ,IAAI;AAChB,SAAK,MAAM;AACX,QAAI,QAAQ,IAAI;AAChB,SAAK,MAAM;AACX,QAAI,QAAQ,IAAI;AAChB,SAAK,MAAM;AACX,QAAI,QAAQ,IAAI;AAChB,QAAI,KAAK,OAAO,SAAS,OAAO,EAAE,IAAI,OAAO,UAAU,CAAC;AACxD,QAAI,QAAQ,IAAI;AAChB,SAAK,MAAM;AACX,QAAI,QAAQ,IAAI;AAChB,SAAK,MAAM;AACX,QAAI,QAAQ,IAAI;AAChB,SAAK,MAAM;AACX,QAAI,QAAQ,IAAI;AAChB,WAAO;AAAA,EACV;AAEC,WAAS,eAAgB,KAAK,OAAO,QAAQ,KAAK,KAAK;AACrD,eAAW,OAAO,KAAK,KAAK,KAAK,QAAQ,CAAC;AAE1C,QAAI,KAAK,OAAO,QAAQ,OAAO,UAAU,CAAC;AAC1C,QAAI,SAAS,CAAC,IAAI;AAClB,SAAK,MAAM;AACX,QAAI,SAAS,CAAC,IAAI;AAClB,SAAK,MAAM;AACX,QAAI,SAAS,CAAC,IAAI;AAClB,SAAK,MAAM;AACX,QAAI,SAAS,CAAC,IAAI;AAClB,QAAI,KAAK,OAAO,SAAS,OAAO,EAAE,IAAI,OAAO,UAAU,CAAC;AACxD,QAAI,SAAS,CAAC,IAAI;AAClB,SAAK,MAAM;AACX,QAAI,SAAS,CAAC,IAAI;AAClB,SAAK,MAAM;AACX,QAAI,SAAS,CAAC,IAAI;AAClB,SAAK,MAAM;AACX,QAAI,MAAM,IAAI;AACd,WAAO,SAAS;AAAA,EACnB;AAEC,EAAAA,QAAO,UAAU,mBAAmB,mBAAmB,SAAS,iBAAkB,OAAO,SAAS,GAAG;AACnG,WAAO,eAAe,MAAM,OAAO,QAAQ,OAAO,CAAC,GAAG,OAAO,oBAAoB,CAAC;AAAA,EACrF,CAAE;AAED,EAAAA,QAAO,UAAU,mBAAmB,mBAAmB,SAAS,iBAAkB,OAAO,SAAS,GAAG;AACnG,WAAO,eAAe,MAAM,OAAO,QAAQ,OAAO,CAAC,GAAG,OAAO,oBAAoB,CAAC;AAAA,EACrF,CAAE;AAED,EAAAA,QAAO,UAAU,aAAa,SAAS,WAAY,OAAO,QAAQI,aAAY,UAAU;AACtF,YAAQ,CAAC;AACT,aAAS,WAAW;AACpB,QAAI,CAAC,UAAU;AACb,YAAM,QAAQ,KAAK,IAAI,GAAI,IAAIA,cAAc,CAAC;AAE9C,eAAS,MAAM,OAAO,QAAQA,aAAY,QAAQ,GAAG,CAAC,KAAK;AAAA,IAChE;AAEG,QAAIR,KAAI;AACR,QAAI,MAAM;AACV,QAAI,MAAM;AACV,SAAK,MAAM,IAAI,QAAQ;AACvB,WAAO,EAAEA,KAAIQ,gBAAe,OAAO,MAAQ;AACzC,UAAI,QAAQ,KAAK,QAAQ,KAAK,KAAK,SAASR,KAAI,CAAC,MAAM,GAAG;AACxD,cAAM;AAAA,MACb;AACK,WAAK,SAASA,EAAC,KAAM,QAAQ,OAAQ,KAAK,MAAM;AAAA,IACrD;AAEG,WAAO,SAASQ;AAAA,EACjB;AAED,EAAAJ,QAAO,UAAU,aAAa,SAAS,WAAY,OAAO,QAAQI,aAAY,UAAU;AACtF,YAAQ,CAAC;AACT,aAAS,WAAW;AACpB,QAAI,CAAC,UAAU;AACb,YAAM,QAAQ,KAAK,IAAI,GAAI,IAAIA,cAAc,CAAC;AAE9C,eAAS,MAAM,OAAO,QAAQA,aAAY,QAAQ,GAAG,CAAC,KAAK;AAAA,IAChE;AAEG,QAAIR,KAAIQ,cAAa;AACrB,QAAI,MAAM;AACV,QAAI,MAAM;AACV,SAAK,SAASR,EAAC,IAAI,QAAQ;AAC3B,WAAO,EAAEA,MAAK,MAAM,OAAO,MAAQ;AACjC,UAAI,QAAQ,KAAK,QAAQ,KAAK,KAAK,SAASA,KAAI,CAAC,MAAM,GAAG;AACxD,cAAM;AAAA,MACb;AACK,WAAK,SAASA,EAAC,KAAM,QAAQ,OAAQ,KAAK,MAAM;AAAA,IACrD;AAEG,WAAO,SAASQ;AAAA,EACjB;AAED,EAAAJ,QAAO,UAAU,YAAY,SAAS,UAAW,OAAO,QAAQ,UAAU;AACxE,YAAQ,CAAC;AACT,aAAS,WAAW;AACpB,QAAI,CAAC,SAAU,UAAS,MAAM,OAAO,QAAQ,GAAG,KAAM,IAAK;AAC3D,QAAI,QAAQ,EAAG,SAAQ,MAAO,QAAQ;AACtC,SAAK,MAAM,IAAK,QAAQ;AACxB,WAAO,SAAS;AAAA,EACjB;AAED,EAAAA,QAAO,UAAU,eAAe,SAAS,aAAc,OAAO,QAAQ,UAAU;AAC9E,YAAQ,CAAC;AACT,aAAS,WAAW;AACpB,QAAI,CAAC,SAAU,UAAS,MAAM,OAAO,QAAQ,GAAG,OAAQ,MAAO;AAC/D,SAAK,MAAM,IAAK,QAAQ;AACxB,SAAK,SAAS,CAAC,IAAK,UAAU;AAC9B,WAAO,SAAS;AAAA,EACjB;AAED,EAAAA,QAAO,UAAU,eAAe,SAAS,aAAc,OAAO,QAAQ,UAAU;AAC9E,YAAQ,CAAC;AACT,aAAS,WAAW;AACpB,QAAI,CAAC,SAAU,UAAS,MAAM,OAAO,QAAQ,GAAG,OAAQ,MAAO;AAC/D,SAAK,MAAM,IAAK,UAAU;AAC1B,SAAK,SAAS,CAAC,IAAK,QAAQ;AAC5B,WAAO,SAAS;AAAA,EACjB;AAED,EAAAA,QAAO,UAAU,eAAe,SAAS,aAAc,OAAO,QAAQ,UAAU;AAC9E,YAAQ,CAAC;AACT,aAAS,WAAW;AACpB,QAAI,CAAC,SAAU,UAAS,MAAM,OAAO,QAAQ,GAAG,YAAY,WAAW;AACvE,SAAK,MAAM,IAAK,QAAQ;AACxB,SAAK,SAAS,CAAC,IAAK,UAAU;AAC9B,SAAK,SAAS,CAAC,IAAK,UAAU;AAC9B,SAAK,SAAS,CAAC,IAAK,UAAU;AAC9B,WAAO,SAAS;AAAA,EACjB;AAED,EAAAA,QAAO,UAAU,eAAe,SAAS,aAAc,OAAO,QAAQ,UAAU;AAC9E,YAAQ,CAAC;AACT,aAAS,WAAW;AACpB,QAAI,CAAC,SAAU,UAAS,MAAM,OAAO,QAAQ,GAAG,YAAY,WAAW;AACvE,QAAI,QAAQ,EAAG,SAAQ,aAAa,QAAQ;AAC5C,SAAK,MAAM,IAAK,UAAU;AAC1B,SAAK,SAAS,CAAC,IAAK,UAAU;AAC9B,SAAK,SAAS,CAAC,IAAK,UAAU;AAC9B,SAAK,SAAS,CAAC,IAAK,QAAQ;AAC5B,WAAO,SAAS;AAAA,EACjB;AAED,EAAAA,QAAO,UAAU,kBAAkB,mBAAmB,SAAS,gBAAiB,OAAO,SAAS,GAAG;AACjG,WAAO,eAAe,MAAM,OAAO,QAAQ,CAAC,OAAO,oBAAoB,GAAG,OAAO,oBAAoB,CAAC;AAAA,EACzG,CAAE;AAED,EAAAA,QAAO,UAAU,kBAAkB,mBAAmB,SAAS,gBAAiB,OAAO,SAAS,GAAG;AACjG,WAAO,eAAe,MAAM,OAAO,QAAQ,CAAC,OAAO,oBAAoB,GAAG,OAAO,oBAAoB,CAAC;AAAA,EACzG,CAAE;AAED,WAAS,aAAc,KAAK,OAAO,QAAQ,KAAK,KAAK,KAAK;AACxD,QAAI,SAAS,MAAM,IAAI,OAAQ,OAAM,IAAI,WAAW,oBAAoB;AACxE,QAAI,SAAS,EAAG,OAAM,IAAI,WAAW,oBAAoB;AAAA,EAC5D;AAEC,WAAS,WAAY,KAAK,OAAO,QAAQ,cAAc,UAAU;AAC/D,YAAQ,CAAC;AACT,aAAS,WAAW;AACpB,QAAI,CAAC,UAAU;AACb,mBAAa,KAAK,OAAO,QAAQ,CAAC;AAAA,IACvC;AACG,cAAU,MAAM,KAAK,OAAO,QAAQ,cAAc,IAAI,CAAC;AACvD,WAAO,SAAS;AAAA,EACnB;AAEC,EAAAA,QAAO,UAAU,eAAe,SAAS,aAAc,OAAO,QAAQ,UAAU;AAC9E,WAAO,WAAW,MAAM,OAAO,QAAQ,MAAM,QAAQ;AAAA,EACtD;AAED,EAAAA,QAAO,UAAU,eAAe,SAAS,aAAc,OAAO,QAAQ,UAAU;AAC9E,WAAO,WAAW,MAAM,OAAO,QAAQ,OAAO,QAAQ;AAAA,EACvD;AAED,WAAS,YAAa,KAAK,OAAO,QAAQ,cAAc,UAAU;AAChE,YAAQ,CAAC;AACT,aAAS,WAAW;AACpB,QAAI,CAAC,UAAU;AACb,mBAAa,KAAK,OAAO,QAAQ,CAAC;AAAA,IACvC;AACG,cAAU,MAAM,KAAK,OAAO,QAAQ,cAAc,IAAI,CAAC;AACvD,WAAO,SAAS;AAAA,EACnB;AAEC,EAAAA,QAAO,UAAU,gBAAgB,SAAS,cAAe,OAAO,QAAQ,UAAU;AAChF,WAAO,YAAY,MAAM,OAAO,QAAQ,MAAM,QAAQ;AAAA,EACvD;AAED,EAAAA,QAAO,UAAU,gBAAgB,SAAS,cAAe,OAAO,QAAQ,UAAU;AAChF,WAAO,YAAY,MAAM,OAAO,QAAQ,OAAO,QAAQ;AAAA,EACxD;AAGD,EAAAA,QAAO,UAAU,OAAO,SAAS,KAAM,QAAQ,aAAa,OAAO,KAAK;AACtE,QAAI,CAACA,QAAO,SAAS,MAAM,EAAG,OAAM,IAAI,UAAU,6BAA6B;AAC/E,QAAI,CAAC,MAAO,SAAQ;AACpB,QAAI,CAAC,OAAO,QAAQ,EAAG,OAAM,KAAK;AAClC,QAAI,eAAe,OAAO,OAAQ,eAAc,OAAO;AACvD,QAAI,CAAC,YAAa,eAAc;AAChC,QAAI,MAAM,KAAK,MAAM,MAAO,OAAM;AAGlC,QAAI,QAAQ,MAAO,QAAO;AAC1B,QAAI,OAAO,WAAW,KAAK,KAAK,WAAW,EAAG,QAAO;AAGrD,QAAI,cAAc,GAAG;AACnB,YAAM,IAAI,WAAW,2BAA2B;AAAA,IACrD;AACG,QAAI,QAAQ,KAAK,SAAS,KAAK,OAAQ,OAAM,IAAI,WAAW,oBAAoB;AAChF,QAAI,MAAM,EAAG,OAAM,IAAI,WAAW,yBAAyB;AAG3D,QAAI,MAAM,KAAK,OAAQ,OAAM,KAAK;AAClC,QAAI,OAAO,SAAS,cAAc,MAAM,OAAO;AAC7C,YAAM,OAAO,SAAS,cAAc;AAAA,IACzC;AAEG,UAAM,MAAM,MAAM;AAElB,QAAI,SAAS,UAAU,OAAO,iBAAiB,UAAU,eAAe,YAAY;AAElF,WAAK,WAAW,aAAa,OAAO,GAAG;AAAA,IAC5C,OAAU;AACL,uBAAiB,UAAU,IAAI;AAAA,QAC7B;AAAA,QACA,KAAK,SAAS,OAAO,GAAG;AAAA,QACxB;AAAA,MACD;AAAA,IACN;AAEG,WAAO;AAAA,EACR;AAMD,EAAAA,QAAO,UAAU,OAAO,SAAS,KAAM,KAAK,OAAO,KAAK,UAAU;AAEhE,QAAI,OAAO,QAAQ,UAAU;AAC3B,UAAI,OAAO,UAAU,UAAU;AAC7B,mBAAW;AACX,gBAAQ;AACR,cAAM,KAAK;AAAA,MAClB,WAAgB,OAAO,QAAQ,UAAU;AAClC,mBAAW;AACX,cAAM,KAAK;AAAA,MAClB;AACK,UAAI,aAAa,UAAa,OAAO,aAAa,UAAU;AAC1D,cAAM,IAAI,UAAU,2BAA2B;AAAA,MACtD;AACK,UAAI,OAAO,aAAa,YAAY,CAACA,QAAO,WAAW,QAAQ,GAAG;AAChE,cAAM,IAAI,UAAU,uBAAuB,QAAQ;AAAA,MAC1D;AACK,UAAI,IAAI,WAAW,GAAG;AACpB,cAAMQ,QAAO,IAAI,WAAW,CAAC;AAC7B,YAAK,aAAa,UAAUA,QAAO,OAC/B,aAAa,UAAU;AAEzB,gBAAMA;AAAA,QACf;AAAA,MACA;AAAA,IACA,WAAc,OAAO,QAAQ,UAAU;AAClC,YAAM,MAAM;AAAA,IACjB,WAAc,OAAO,QAAQ,WAAW;AACnC,YAAM,OAAO,GAAG;AAAA,IACrB;AAGG,QAAI,QAAQ,KAAK,KAAK,SAAS,SAAS,KAAK,SAAS,KAAK;AACzD,YAAM,IAAI,WAAW,oBAAoB;AAAA,IAC9C;AAEG,QAAI,OAAO,OAAO;AAChB,aAAO;AAAA,IACZ;AAEG,YAAQ,UAAU;AAClB,UAAM,QAAQ,SAAY,KAAK,SAAS,QAAQ;AAEhD,QAAI,CAAC,IAAK,OAAM;AAEhB,QAAIZ;AACJ,QAAI,OAAO,QAAQ,UAAU;AAC3B,WAAKA,KAAI,OAAOA,KAAI,KAAK,EAAEA,IAAG;AAC5B,aAAKA,EAAC,IAAI;AAAA,MACjB;AAAA,IACA,OAAU;AACL,YAAM,QAAQI,QAAO,SAAS,GAAG,IAC7B,MACAA,QAAO,KAAK,KAAK,QAAQ;AAC7B,YAAM,MAAM,MAAM;AAClB,UAAI,QAAQ,GAAG;AACb,cAAM,IAAI,UAAU,gBAAgB,MAClC,mCAAmC;AAAA,MAC5C;AACK,WAAKJ,KAAI,GAAGA,KAAI,MAAM,OAAO,EAAEA,IAAG;AAChC,aAAKA,KAAI,KAAK,IAAI,MAAMA,KAAI,GAAG;AAAA,MACtC;AAAA,IACA;AAEG,WAAO;AAAA,EACR;AAMD,QAAM,SAAS,CAAE;AACjB,WAASa,GAAG,KAAK,YAAY,MAAM;AACjC,WAAO,GAAG,IAAI,MAAM,kBAAkB,KAAK;AAAA,MACzC,cAAe;AACb,cAAO;AAEP,eAAO,eAAe,MAAM,WAAW;AAAA,UACrC,OAAO,WAAW,MAAM,MAAM,SAAS;AAAA,UACvC,UAAU;AAAA,UACV,cAAc;AAAA,QACvB,CAAQ;AAGD,aAAK,OAAO,GAAG,KAAK,IAAI,KAAK,GAAG;AAGhC,aAAK;AAEL,eAAO,KAAK;AAAA,MACnB;AAAA,MAEK,IAAI,OAAQ;AACV,eAAO;AAAA,MACd;AAAA,MAEK,IAAI,KAAM,OAAO;AACf,eAAO,eAAe,MAAM,QAAQ;AAAA,UAClC,cAAc;AAAA,UACd,YAAY;AAAA,UACZ;AAAA,UACA,UAAU;AAAA,QACnB,CAAQ;AAAA,MACR;AAAA,MAEK,WAAY;AACV,eAAO,GAAG,KAAK,IAAI,KAAK,GAAG,MAAM,KAAK,OAAO;AAAA,MACpD;AAAA,IACI;AAAA,EACJ;AAEC,EAAAA;AAAA,IAAE;AAAA,IACA,SAAU,MAAM;AACd,UAAI,MAAM;AACR,eAAO,GAAG,IAAI;AAAA,MACrB;AAEK,aAAO;AAAA,IACR;AAAA,IAAE;AAAA,EAAU;AACf,EAAAA;AAAA,IAAE;AAAA,IACA,SAAU,MAAM,QAAQ;AACtB,aAAO,QAAQ,IAAI,oDAAoD,OAAO,MAAM;AAAA,IACrF;AAAA,IAAE;AAAA,EAAS;AACd,EAAAA;AAAA,IAAE;AAAA,IACA,SAAU,KAAK,OAAO,OAAO;AAC3B,UAAI,MAAM,iBAAiB,GAAG;AAC9B,UAAI,WAAW;AACf,UAAI,OAAO,UAAU,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI;AACxD,mBAAW,sBAAsB,OAAO,KAAK,CAAC;AAAA,MACrD,WAAgB,OAAO,UAAU,UAAU;AACpC,mBAAW,OAAO,KAAK;AACvB,YAAI,QAAQ,OAAO,CAAC,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,OAAO,CAAC,KAAK,OAAO,EAAE,IAAI;AACzE,qBAAW,sBAAsB,QAAQ;AAAA,QAClD;AACO,oBAAY;AAAA,MACnB;AACK,aAAO,eAAe,KAAK,cAAc,QAAQ;AACjD,aAAO;AAAA,IACR;AAAA,IAAE;AAAA,EAAU;AAEf,WAAS,sBAAuB,KAAK;AACnC,QAAI,MAAM;AACV,QAAIb,KAAI,IAAI;AACZ,UAAM,QAAQ,IAAI,CAAC,MAAM,MAAM,IAAI;AACnC,WAAOA,MAAK,QAAQ,GAAGA,MAAK,GAAG;AAC7B,YAAM,IAAI,IAAI,MAAMA,KAAI,GAAGA,EAAC,CAAC,GAAG,GAAG;AAAA,IACxC;AACG,WAAO,GAAG,IAAI,MAAM,GAAGA,EAAC,CAAC,GAAG,GAAG;AAAA,EAClC;AAKC,WAAS,YAAa,KAAK,QAAQQ,aAAY;AAC7C,mBAAe,QAAQ,QAAQ;AAC/B,QAAI,IAAI,MAAM,MAAM,UAAa,IAAI,SAASA,WAAU,MAAM,QAAW;AACvE,kBAAY,QAAQ,IAAI,UAAUA,cAAa,EAAE;AAAA,IACtD;AAAA,EACA;AAEC,WAAS,WAAY,OAAO,KAAK,KAAK,KAAK,QAAQA,aAAY;AAC7D,QAAI,QAAQ,OAAO,QAAQ,KAAK;AAC9B,YAAMG,KAAI,OAAO,QAAQ,WAAW,MAAM;AAC1C,UAAI;AACgB;AAClB,YAAI,QAAQ,KAAK,QAAQ,OAAO,CAAC,GAAG;AAClC,kBAAQ,OAAOA,EAAC,WAAWA,EAAC,QAAQH,cAAa,KAAK,CAAC,GAAGG,EAAC;AAAA,QACpE,OAAc;AACL,kBAAQ,SAASA,EAAC,QAAQH,cAAa,KAAK,IAAI,CAAC,GAAGG,EAAC,iBACzCH,cAAa,KAAK,IAAI,CAAC,GAAGG,EAAC;AAAA,QAChD;AAAA,MACA;AAGK,YAAM,IAAI,OAAO,iBAAiB,SAAS,OAAO,KAAK;AAAA,IAC5D;AACG,gBAAY,KAAK,QAAQH,WAAU;AAAA,EACtC;AAEC,WAAS,eAAgB,OAAO,MAAM;AACpC,QAAI,OAAO,UAAU,UAAU;AAC7B,YAAM,IAAI,OAAO,qBAAqB,MAAM,UAAU,KAAK;AAAA,IAChE;AAAA,EACA;AAEC,WAAS,YAAa,OAAO,QAAQ,MAAM;AACzC,QAAI,KAAK,MAAM,KAAK,MAAM,OAAO;AAC/B,qBAAe,OAAO,IAAI;AAC1B,YAAM,IAAI,OAAO,iBAAyB,UAAU,cAAc,KAAK;AAAA,IAC5E;AAEG,QAAI,SAAS,GAAG;AACd,YAAM,IAAI,OAAO,yBAAwB;AAAA,IAC9C;AAEG,UAAM,IAAI,OAAO;AAAA,MAAyB;AAAA,MACR,MAAiB,CAAC,WAAW,MAAM;AAAA,MACnC;AAAA,IAAK;AAAA,EAC1C;AAKC,QAAM,oBAAoB;AAE1B,WAAS,YAAa,KAAK;AAEzB,UAAM,IAAI,MAAM,GAAG,EAAE,CAAC;AAEtB,UAAM,IAAI,KAAI,EAAG,QAAQ,mBAAmB,EAAE;AAE9C,QAAI,IAAI,SAAS,EAAG,QAAO;AAE3B,WAAO,IAAI,SAAS,MAAM,GAAG;AAC3B,YAAM,MAAM;AAAA,IACjB;AACG,WAAO;AAAA,EACV;AAEC,WAAS,YAAa,QAAQ,OAAO;AACnC,YAAQ,SAAS;AACjB,QAAI;AACJ,UAAM,SAAS,OAAO;AACtB,QAAI,gBAAgB;AACpB,UAAM,QAAQ,CAAE;AAEhB,aAASR,KAAI,GAAGA,KAAI,QAAQ,EAAEA,IAAG;AAC/B,kBAAY,OAAO,WAAWA,EAAC;AAG/B,UAAI,YAAY,SAAU,YAAY,OAAQ;AAE5C,YAAI,CAAC,eAAe;AAElB,cAAI,YAAY,OAAQ;AAEtB,iBAAK,SAAS,KAAK,GAAI,OAAM,KAAK,KAAM,KAAM,GAAI;AAClD;AAAA,UACX,WAAoBA,KAAI,MAAM,QAAQ;AAE3B,iBAAK,SAAS,KAAK,GAAI,OAAM,KAAK,KAAM,KAAM,GAAI;AAClD;AAAA,UACX;AAGS,0BAAgB;AAEhB;AAAA,QACT;AAGO,YAAI,YAAY,OAAQ;AACtB,eAAK,SAAS,KAAK,GAAI,OAAM,KAAK,KAAM,KAAM,GAAI;AAClD,0BAAgB;AAChB;AAAA,QACT;AAGO,qBAAa,gBAAgB,SAAU,KAAK,YAAY,SAAU;AAAA,MACnE,WAAU,eAAe;AAExB,aAAK,SAAS,KAAK,GAAI,OAAM,KAAK,KAAM,KAAM,GAAI;AAAA,MACzD;AAEK,sBAAgB;AAGhB,UAAI,YAAY,KAAM;AACpB,aAAK,SAAS,KAAK,EAAG;AACtB,cAAM,KAAK,SAAS;AAAA,MAC3B,WAAgB,YAAY,MAAO;AAC5B,aAAK,SAAS,KAAK,EAAG;AACtB,cAAM;AAAA,UACJ,aAAa,IAAM;AAAA,UACnB,YAAY,KAAO;AAAA,QACpB;AAAA,MACR,WAAgB,YAAY,OAAS;AAC9B,aAAK,SAAS,KAAK,EAAG;AACtB,cAAM;AAAA,UACJ,aAAa,KAAM;AAAA,UACnB,aAAa,IAAM,KAAO;AAAA,UAC1B,YAAY,KAAO;AAAA,QACpB;AAAA,MACR,WAAgB,YAAY,SAAU;AAC/B,aAAK,SAAS,KAAK,EAAG;AACtB,cAAM;AAAA,UACJ,aAAa,KAAO;AAAA,UACpB,aAAa,KAAM,KAAO;AAAA,UAC1B,aAAa,IAAM,KAAO;AAAA,UAC1B,YAAY,KAAO;AAAA,QACpB;AAAA,MACR,OAAY;AACL,cAAM,IAAI,MAAM,oBAAoB;AAAA,MAC3C;AAAA,IACA;AAEG,WAAO;AAAA,EACV;AAEC,WAAS,aAAc,KAAK;AAC1B,UAAM,YAAY,CAAE;AACpB,aAASA,KAAI,GAAGA,KAAI,IAAI,QAAQ,EAAEA,IAAG;AAEnC,gBAAU,KAAK,IAAI,WAAWA,EAAC,IAAI,GAAI;AAAA,IAC5C;AACG,WAAO;AAAA,EACV;AAEC,WAAS,eAAgB,KAAK,OAAO;AACnC,QAAIE,IAAG,IAAI;AACX,UAAM,YAAY,CAAE;AACpB,aAASF,KAAI,GAAGA,KAAI,IAAI,QAAQ,EAAEA,IAAG;AACnC,WAAK,SAAS,KAAK,EAAG;AAEtB,MAAAE,KAAI,IAAI,WAAWF,EAAC;AACpB,WAAKE,MAAK;AACV,WAAKA,KAAI;AACT,gBAAU,KAAK,EAAE;AACjB,gBAAU,KAAK,EAAE;AAAA,IACtB;AAEG,WAAO;AAAA,EACV;AAEC,WAAS,cAAe,KAAK;AAC3B,WAAO,OAAO,YAAY,YAAY,GAAG,CAAC;AAAA,EAC7C;AAEC,WAAS,WAAY,KAAK,KAAK,QAAQ,QAAQ;AAC7C,QAAIF;AACJ,SAAKA,KAAI,GAAGA,KAAI,QAAQ,EAAEA,IAAG;AAC3B,UAAKA,KAAI,UAAU,IAAI,UAAYA,MAAK,IAAI,OAAS;AACrD,UAAIA,KAAI,MAAM,IAAI,IAAIA,EAAC;AAAA,IAC5B;AACG,WAAOA;AAAA,EACV;AAKC,WAAS,WAAY,KAAK,MAAM;AAC9B,WAAO,eAAe,QACnB,OAAO,QAAQ,IAAI,eAAe,QAAQ,IAAI,YAAY,QAAQ,QACjE,IAAI,YAAY,SAAS,KAAK;AAAA,EACrC;AACC,WAAS,YAAa,KAAK;AAEzB,WAAO,QAAQ;AAAA,EAClB;AAIC,QAAM,sBAAuB,WAAY;AACvC,UAAM,WAAW;AACjB,UAAM,QAAQ,IAAI,MAAM,GAAG;AAC3B,aAASA,KAAI,GAAGA,KAAI,IAAI,EAAEA,IAAG;AAC3B,YAAM,MAAMA,KAAI;AAChB,eAAS,IAAI,GAAG,IAAI,IAAI,EAAE,GAAG;AAC3B,cAAM,MAAM,CAAC,IAAI,SAASA,EAAC,IAAI,SAAS,CAAC;AAAA,MAChD;AAAA,IACA;AACG,WAAO;AAAA,EACV,EAAK;AAGJ,WAAS,mBAAoB,IAAI;AAC/B,WAAO,OAAO,WAAW,cAAc,yBAAyB;AAAA,EACnE;AAEC,WAAS,yBAA0B;AACjC,UAAM,IAAI,MAAM,sBAAsB;AAAA,EACvC;AACF,GAAG,MAAM;AAET,MAAM,SAAS,OAAO;AAEtB,MAAMc,SAAO,OAAO;AACpB,MAAM,cAAc,OAAO;AAC3B,MAAM,WAAW,OAAO;AACxB,MAAM,OAAO,OAAO;AACpB,MAAM,cAAc,OAAO;AAC3B,MAAM,oBAAoB,OAAO;AACjC,MAAM,aAAa,OAAO;AAC1B,MAAM,oBAAoB,OAAO;AACjC,MAAMC,SAAO,OAAO;AACpB,MAAM,OAAO,OAAO;AACpB,MAAMC,cAAY,OAAO;AACzB,MAAM,UAAU,OAAO;AACvB,MAAM,SAAS,OAAO;AACtB,MAAM,aAAa,OAAO;AAC1B,MAAM,mBAAmB,OAAO;AAChC,MAAM,mBAAmB,OAAO;AAChC,MAAM,YAAY,OAAO;;;;;;;;;;;;;;;;;;;;;;ACxyElB,IAAI;AAAA,CACV,SAAUC,gBAAe;AACtB,EAAAA,eAAc,SAAS,IAAI;AAC3B,EAAAA,eAAc,SAAS,IAAI;AAC3B,EAAAA,eAAc,YAAY,IAAI;AAC9B,EAAAA,eAAc,QAAQ,IAAI;AAC9B,GAAG,kBAAkB,gBAAgB,CAAA,EAAG;ACRjC,IAAI;AAAA,CACV,SAAUC,qBAAoB;AAC3B,EAAAA,oBAAmB,iBAAiB,IAAI;AACxC,EAAAA,oBAAmB,cAAc,IAAI;AACzC,GAAG,uBAAuB,qBAAqB,CAAA,EAAG;ACH3C,IAAI;AAAA,CACV,SAAUC,sBAAqB;AAC5B,EAAAA,qBAAoB,kBAAkB,IAAI;AAC1C,EAAAA,qBAAoB,oBAAoB,IAAI;AAC5C,EAAAA,qBAAoB,aAAa,IAAI;AACrC,EAAAA,qBAAoB,qBAAqB,IAAI;AAC7C,EAAAA,qBAAoB,2BAA2B,IAAI;AACnD,EAAAA,qBAAoB,iBAAiB,IAAI;AAC7C,GAAG,wBAAwB,sBAAsB,CAAA,EAAG;ACH7C,SAAS,kBAAkB,aAAa;AAC3C,MAAI,CAAC,YAAY,SAAU;AACvB,gBAAY,OAAQ;AAC5B;AAUO,SAAS,yBAAyB,aAAa;AAClD,QAAM,wBAAwB,CAAC,YAAY,kBAAkB,YAAY,eAAe,WAAW;AACnG,MAAI,CAAC,YAAY,SAAQ,KAAM;AAC3B,gBAAY,kBAAkB,CAAC,IAAI,UAAU,CAAC,GAAG,IAAI,UAAU,CAAC,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC;AAC5F;AASO,SAAS,0BAA0B,aAAa;AACnD,2BAAyB,WAAW;AACpC,oBAAkB,WAAW;AAC7B,QAAM,mBAAmB,YAAY,QAAS;AAC9C,SAAOf,SAAO,KAAK,gBAAgB,EAAE,SAAS,QAAQ;AAC1D;AA0BO,SAAS,6BAA6B,aAAa,eAAe;AAGrE,SAAO,YAAY,qBAAqB,aAAa;AACzD;AACO,SAAS,8BAA8B,iBAAiB;AAC3D,SAAO,yBAAyB,MAAM,gBAAgB,OAAO,eAAe,EAAE,QAAQ;AAC1F;AAmDO,SAAS,2BAA2B,cAAc;AACrD,QAAM,UAAUA,SAAO,KAAK,cAAc,QAAQ;AAClD,SAAO,MAAM,aAAa,OAAO,OAAO;AAC5C;AAMO,SAAS,yBAAyB,QAAQ;AAC7C,SAAOA,SAAO,KAAK,MAAM,EAAE,SAAS,QAAQ;AAChD;AAMO,SAAS,mBAAmB,QAAQ;AACvC,SAAOA,SAAO,KAAK,MAAM,EAAE,SAAS,OAAO;AAC/C;AAMO,SAAS,yBAAyB,cAAc;AACnD,QAAM,UAAUA,SAAO,KAAK,cAAc,QAAQ;AAClD,SAAO,IAAI,WAAW,OAAO;AACjC;AAQO,SAAS,oBAAoB,OAAO;AACvC,QAAM,aAAa,MAAM,QAAS;AAClC,SAAOA,SAAO,KAAK,UAAU,EAAE,SAAS,QAAQ;AACpD;AAoBO,SAAS,oBAAoB,SAAS;AACzC,SAAO,8BAAiC,QAAQ,SAAS;AAC7D;AAsBO,SAAS,uBAAuB,SAAS,oBAAoB,WAAW;AAC3E,QAAM,eAAe,2BAA2B,kBAAkB;AAClE,QAAM,YAAY,aAAa,QAAQ,CAAC,EAAE,WAAW,aAAa,QAAQ,CAAC,EAAE;AAC7E,MAAI,CAAC;AACD,UAAM,IAAI,MAAM,sCAAsC;AAC1D,SAAO,UAAU,OAAOA,SAAO,KAAK,oBAAoB,OAAO,CAAC,GAAG,SAAS;AAChF;AAsCO,MAAM,qBAAqB;AAAA,EAC9B,CAAC,SAAS,SAAS,KAAK,gBAAgB;AAAA,EACxC,CAAC,SAAS,SAAS,KAAK,gBAAgB;AAAA,EACxC,CAAC,SAAS,YAAY,KAAK,mBAAmB;AAAA,EAC9C,CAAC,SAAS,YAAY,KAAK,eAAe;AAC9C;AACA,MAAM,oBAAoB,SAAS;AAEnC,MAAM,eAAe,mBAAmB,CAAC,EAAE,CAAC;AAkFrC,SAAS,sBAAsB,SAAS;AAC3C,WAASJ,KAAI,GAAGA,KAAI,mBAAmB,QAAQA,MAAK;AAChD,UAAM,CAAC,UAAUoB,IAAG,QAAQ,IAAI,mBAAmBpB,EAAC;AACpD,QAAI,YAAY,UAAU;AACtB,aAAO;AAAA,IACnB;AAAA,EACA;AACI,SAAO;AACX;AAgBO,SAAS,sBAAsB,UAAU;AAC5C,WAASA,KAAI,GAAGA,KAAI,mBAAmB,QAAQA,MAAK;AAChD,UAAM,CAAC,WAAWoB,IAAG,OAAO,IAAI,mBAAmBpB,EAAC;AACpD,QAAI,SAAS,SAAQ,MAAO,UAAU,SAAQ,GAAI;AAC9C,aAAO;AAAA,IACnB;AAAA,EACA;AACI,SAAO;AACX;AA6BO,MAAM,oBAAoB,CAAC,UAAU,SAASqB,aAAY;AAAA,EAC7D,QAAQ;AAAA,IACJ,QAAQ,CAAC,sBAAsB,QAAQ,CAAC;AAAA,IACxC;AAAA,IACA,QAAAA;AAAA,EACH;AACL;AAOO,MAAM,8BAA8B,CAAC,YAAY;AACpD,QAAM,kBAAkB,QAAQ,WAAW;AAC3C,MAAI,CAAC;AACD,UAAM,IAAI,MAAM,2BAA2B;AAC/C,SAAO,gBAAgB,SAAS,IAAI,CAAC,YAAY;AAC7C,UAAM,CAAC,OAAO,SAAS,GAAG,IAAI,QAAQ,MAAM,GAAG;AAC/C,WAAO;AAAA,MACH,SAAS,sBAAsB,QAAQ,MAAM,OAAO;AAAA,MACpD,SAAS,UAAU,WAAW,GAAG;AAAA,IACpC;AAAA,EACT,CAAK;AACL;AC7bO,IAAI;AAAA,CACV,SAAUC,SAAQ;AACf,EAAAA,QAAO,gBAAgB,IAAI;AAC3B,EAAAA,QAAO,kBAAkB,IAAI;AAC7B,EAAAA,QAAO,eAAe,IAAI;AAC1B,EAAAA,QAAO,mBAAmB,IAAI;AAC9B,EAAAA,QAAO,aAAa,IAAI;AACxB,EAAAA,QAAO,qBAAqB,IAAI;AAChC,EAAAA,QAAO,eAAe,IAAI;AAC9B,GAAG,WAAW,SAAS,CAAA,EAAG;AACnB,MAAM,iBAAiB,CAAC,YAAY;AACvC,MAAI,OAAO,WAAW;AAClB;AACJ,SAAO,iBAAiB,WAAW,CAAC,UAAU;AAC1C,QAAI,IAAI;AACR,UAAM,KAAK,UAAU,QAAQ,UAAU,SAAS,SAAS,MAAM,UAAU,QAAQ,OAAO,SAAS,SAAS,GAAG,SAAS,OAAO,qBAAqB,MAAM,KAAK,UAAU;AACnK,cAAQ,MAAM,KAAK,UAAU,KAAK;AAAA,IAC9C;AACQ,UAAM,KAAK,UAAU,QAAQ,UAAU,SAAS,SAAS,MAAM,UAAU,QAAQ,OAAO,SAAS,SAAS,GAAG,SAAS,OAAO,uBAAuB,MAAM,KAAK,UAAU;AACrK,cAAQ,MAAM,KAAK,UAAU,IAAI;AAAA,IAC7C;AAAA,EACA,CAAK;AACD,aAAW,MAAM;AACb,mBAAgB;AAAA,EACnB,GAAE,GAAG;AACV;AACO,MAAM,iBAAiB,MAAM;AAChC,SAAO,YAAY,EAAE,MAAM,OAAO,eAAgB,GAAE,GAAG;AACvD,MAAI,OAAO,QAAQ;AACf,WAAO,OAAO,YAAY,EAAE,MAAM,OAAO,YAAa,GAAE,GAAG;AAAA,EACnE;AACA;AACO,MAAM,mBAAmB,CAAC,IAAI,UAAU,kBAAkB;AAC7D,MAAI,UAAU;AACV,WAAO,OAAO,YAAY,EAAE,MAAM,OAAO,eAAe,cAAe,GAAE,GAAG;AAC5E;AAAA,EACR;AACI,SAAO,YAAY,EAAE,MAAM,OAAO,mBAAmB,IAAI,cAAe,GAAE,GAAG;AACjF;AACO,MAAM,gBAAgB,CAAC,OAAO;AACjC,SAAO,YAAY,EAAE,MAAM,OAAO,gBAAgB,GAAI,GAAE,GAAG;AAC/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxCA,SAAS,aAAc,GAAG;AACxB,MAAI;AAAE,WAAO,KAAK,UAAU,CAAC;AAAA,EAAC,SAAS,GAAG;AAAE,WAAO;AAAA,EAAc;AACnE;AAEA,IAAA,uBAAiBC;AAEjB,SAASA,SAAOC,IAAG,MAAM,MAAM;AAC7B,MAAI,KAAM,QAAQ,KAAK,aAAc;AACrC,MAAI,SAAS;AACb,MAAI,OAAOA,OAAM,YAAYA,OAAM,MAAM;AACvC,QAAI,MAAM,KAAK,SAAS;AACxB,QAAI,QAAQ,EAAG,QAAOA;AACtB,QAAI,UAAU,IAAI,MAAM,GAAG;AAC3B,YAAQ,CAAC,IAAI,GAAGA,EAAC;AACjB,aAAS,QAAQ,GAAG,QAAQ,KAAK,SAAS;AACxC,cAAQ,KAAK,IAAI,GAAG,KAAK,KAAK,CAAC;AAAA,IACrC;AACI,WAAO,QAAQ,KAAK,GAAG;AAAA,EAC3B;AACE,MAAI,OAAOA,OAAM,UAAU;AACzB,WAAOA;AAAA,EACX;AACE,MAAI,SAAS,KAAK;AAClB,MAAI,WAAW,EAAG,QAAOA;AACzB,MAAI,MAAM;AACV,MAAI,IAAI,IAAI;AACZ,MAAI,UAAU;AACd,MAAI,OAAQA,MAAKA,GAAE,UAAW;AAC9B,WAASxB,KAAI,GAAGA,KAAI,QAAO;AACzB,QAAIwB,GAAE,WAAWxB,EAAC,MAAM,MAAMA,KAAI,IAAI,MAAM;AAC1C,gBAAU,UAAU,KAAK,UAAU;AACnC,cAAQwB,GAAE,WAAWxB,KAAI,CAAC,GAAC;AAAA,QACzB,KAAK;AAAA,QACL,KAAK;AACH,cAAI,KAAK;AACP;AACF,cAAI,KAAK,CAAC,KAAK,KAAO;AACtB,cAAI,UAAUA;AACZ,mBAAOwB,GAAE,MAAM,SAASxB,EAAC;AAC3B,iBAAO,OAAO,KAAK,CAAC,CAAC;AACrB,oBAAUA,KAAI;AACd,UAAAA;AACA;AAAA,QACF,KAAK;AACH,cAAI,KAAK;AACP;AACF,cAAI,KAAK,CAAC,KAAK,KAAO;AACtB,cAAI,UAAUA;AACZ,mBAAOwB,GAAE,MAAM,SAASxB,EAAC;AAC3B,iBAAO,KAAK,MAAM,OAAO,KAAK,CAAC,CAAC,CAAC;AACjC,oBAAUA,KAAI;AACd,UAAAA;AACA;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,cAAI,KAAK;AACP;AACF,cAAI,KAAK,CAAC,MAAM,OAAW;AAC3B,cAAI,UAAUA;AACZ,mBAAOwB,GAAE,MAAM,SAASxB,EAAC;AAC3B,cAAI,OAAO,OAAO,KAAK,CAAC;AACxB,cAAI,SAAS,UAAU;AACrB,mBAAO,MAAO,KAAK,CAAC,IAAI;AACxB,sBAAUA,KAAI;AACd,YAAAA;AACA;AAAA,UACZ;AACU,cAAI,SAAS,YAAY;AACvB,mBAAO,KAAK,CAAC,EAAE,QAAQ;AACvB,sBAAUA,KAAI;AACd,YAAAA;AACA;AAAA,UACZ;AACU,iBAAO,GAAG,KAAK,CAAC,CAAC;AACjB,oBAAUA,KAAI;AACd,UAAAA;AACA;AAAA,QACF,KAAK;AACH,cAAI,KAAK;AACP;AACF,cAAI,UAAUA;AACZ,mBAAOwB,GAAE,MAAM,SAASxB,EAAC;AAC3B,iBAAO,OAAO,KAAK,CAAC,CAAC;AACrB,oBAAUA,KAAI;AACd,UAAAA;AACA;AAAA,QACF,KAAK;AACH,cAAI,UAAUA;AACZ,mBAAOwB,GAAE,MAAM,SAASxB,EAAC;AAC3B,iBAAO;AACP,oBAAUA,KAAI;AACd,UAAAA;AACA;AACA;AAAA,MACV;AACM,QAAE;AAAA,IACR;AACI,MAAEA;AAAA,EACN;AACE,MAAI,YAAY;AACd,WAAOwB;AAAA,WACA,UAAU,MAAM;AACvB,WAAOA,GAAE,MAAM,OAAO;AAAA,EAC1B;AAEE,SAAO;AACT;AC1GA,MAAM,SAASC;AAEf,IAAAC,YAAiB;AAEjB,MAAM,WAAW,uBAAwB,EAAC,WAAW,CAAA;AACrD,MAAM,iBAAiB;AAAA,EACrB,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,uBAAuB;AAAA,EACvB,wBAAwB;AAAA,EACxB,qBAAqB;AAAA,EACrB,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AACP;AAEA,SAAS,gBAAiB,WAAW,aAAa;AAChD,MAAI,MAAM,QAAQ,SAAS,GAAG;AAC5B,UAAM,cAAc,UAAU,OAAO,SAAUC,IAAG;AAChD,aAAOA,OAAM;AAAA,IACd,CAAA;AACD,WAAO;AAAA,EACX,WAAa,cAAc,MAAM;AAC7B,WAAO,OAAO,KAAK,WAAW;AAAA,EAClC;AAEE,SAAO;AACT;AAEA,SAAS,KAAM,MAAM;AACnB,SAAO,QAAQ,CAAA;AACf,OAAK,UAAU,KAAK,WAAW,CAAA;AAE/B,QAAMC,YAAW,KAAK,QAAQ;AAC9B,MAAIA,aAAY,OAAOA,UAAS,SAAS,YAAY;AAAE,UAAM,MAAM,iDAAiD;AAAA,EAAC;AAErH,QAAMtB,SAAQ,KAAK,QAAQ,SAAS;AACpC,MAAI,KAAK,QAAQ,MAAO,MAAK,QAAQ,WAAW;AAChD,QAAM,cAAc,KAAK,eAAe,CAAA;AACxC,QAAM,YAAY,gBAAgB,KAAK,QAAQ,WAAW,WAAW;AACrE,MAAI,kBAAkB,KAAK,QAAQ;AAEnC,MACE,MAAM,QAAQ,KAAK,QAAQ,SAAS,KACpC,KAAK,QAAQ,UAAU,QAAQ,qBAAqB,IAAI,GACxD,mBAAkB;AAEpB,QAAM,SAAS,CAAC,SAAS,SAAS,QAAQ,QAAQ,SAAS,OAAO;AAElE,MAAI,OAAOA,WAAU,YAAY;AAC/B,IAAAA,OAAM,QAAQA,OAAM,QAAQA,OAAM,OAClCA,OAAM,OAAOA,OAAM,QAAQA,OAAM,QAAQA;AAAA,EAC7C;AACE,MAAI,KAAK,YAAY,MAAO,MAAK,QAAQ;AACzC,QAAM,QAAQ,KAAK,SAAS;AAC5B,QAAM,SAAS,OAAO,OAAOA,MAAK;AAClC,MAAI,CAAC,OAAO,IAAK,QAAO,MAAMuB;AAE9B,SAAO,eAAe,QAAQ,YAAY;AAAA,IACxC,KAAK;AAAA,EACN,CAAA;AACD,SAAO,eAAe,QAAQ,SAAS;AAAA,IACrC,KAAK;AAAA,IACL,KAAK;AAAA,EACN,CAAA;AAED,QAAM,UAAU;AAAA,IACd,UAAAD;AAAA,IACA;AAAA,IACA,UAAU,KAAK,QAAQ;AAAA,IACvB;AAAA,IACA,WAAW,gBAAgB,IAAI;AAAA,EACnC;AACE,SAAO,SAAS,KAAK;AACrB,SAAO,QAAQ;AAEf,SAAO,kBAAkB,OAAO,kBAChC,OAAO,OAAO,OAAO,cAAc,OAAO,KAC1C,OAAO,kBAAkB,OAAO,OAChC,OAAO,sBAAsB,OAAO,iBACpC,OAAO,qBAAqB,OAAO,YACnC,OAAO,gBAAgB,OAAO,aAC9B,OAAO,QAAQ,OAAO,QAAQC;AAC9B,SAAO,cAAc;AACrB,SAAO,aAAa;AACpB,SAAO,mBAAmB;AAC1B,SAAO,QAAQ;AAEf,MAAID,UAAU,QAAO,YAAY,oBAAmB;AAEpD,WAAS,cAAe;AACtB,WAAO,KAAK,UAAU,WAClB,WACA,KAAK,OAAO,OAAO,KAAK,KAAK;AAAA,EACrC;AAEE,WAAS,WAAY;AACnB,WAAO,KAAK;AAAA,EAChB;AACE,WAAS,SAAUE,QAAO;AACxB,QAAIA,WAAU,YAAY,CAAC,KAAK,OAAO,OAAOA,MAAK,GAAG;AACpD,YAAM,MAAM,mBAAmBA,MAAK;AAAA,IAC1C;AACI,SAAK,SAASA;AAEd,QAAI,SAAS,QAAQ,SAAS,KAAK;AACnC,QAAI,SAAS,QAAQ,SAAS,OAAO;AACrC,QAAI,SAAS,QAAQ,QAAQ,OAAO;AACpC,QAAI,SAAS,QAAQ,QAAQ,KAAK;AAClC,QAAI,SAAS,QAAQ,SAAS,KAAK;AACnC,QAAI,SAAS,QAAQ,SAAS,KAAK;AAAA,EACvC;AAEE,WAAS,MAAO,UAAU,cAAc;AACtC,QAAI,CAAC,UAAU;AACb,YAAM,IAAI,MAAM,iCAAiC;AAAA,IACvD;AACI,mBAAe,gBAAgB,CAAA;AAC/B,QAAI,aAAa,SAAS,aAAa;AACrC,mBAAa,cAAc,SAAS;AAAA,IAC1C;AACI,UAAM,0BAA0B,aAAa;AAC7C,QAAI,aAAa,yBAAyB;AACxC,UAAI,mBAAmB,OAAO,OAAO,CAAE,GAAE,aAAa,uBAAuB;AAC7E,UAAI,iBAAiB,KAAK,QAAQ,cAAc,OAC5C,OAAO,KAAK,gBAAgB,IAC5B;AACJ,aAAO,SAAS;AAChB,uBAAiB,CAAC,QAAQ,GAAG,gBAAgB,kBAAkB,KAAK,gBAAgB;AAAA,IAC1F;AACI,aAAS,MAAO,QAAQ;AACtB,WAAK,eAAe,OAAO,cAAc,KAAK;AAC9C,WAAK,QAAQ,KAAK,QAAQ,UAAU,OAAO;AAC3C,WAAK,QAAQ,KAAK,QAAQ,UAAU,OAAO;AAC3C,WAAK,OAAO,KAAK,QAAQ,UAAU,MAAM;AACzC,WAAK,OAAO,KAAK,QAAQ,UAAU,MAAM;AACzC,WAAK,QAAQ,KAAK,QAAQ,UAAU,OAAO;AAC3C,WAAK,QAAQ,KAAK,QAAQ,UAAU,OAAO;AAC3C,UAAI,kBAAkB;AACpB,aAAK,cAAc;AACnB,aAAK,aAAa;AAAA,MAC1B;AACM,UAAIF,WAAU;AACZ,aAAK,YAAY;AAAA,UACf,CAAA,EAAG,OAAO,OAAO,UAAU,UAAU,QAAQ;AAAA,QACvD;AAAA,MACA;AAAA,IACA;AACI,UAAM,YAAY;AAClB,WAAO,IAAI,MAAM,IAAI;AAAA,EACzB;AACE,SAAO;AACT;AAEA,KAAK,SAAS;AAAA,EACZ,QAAQ;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,EACR;AAAA,EACD,QAAQ;AAAA,IACN,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,EACR;AACA;AAEA,KAAK,iBAAiB;AACtB,KAAK,mBAAmB,OAAO,OAAO,CAAA,GAAI,EAAE,UAAU,WAAW,UAAU,QAAS,CAAA;AAEpF,SAAS,IAAK,MAAM,QAAQ,OAAO,UAAU;AAC3C,QAAMtB,SAAQ,OAAO,eAAe,MAAM;AAC1C,SAAO,KAAK,IAAI,OAAO,WAAW,OAAO,OAAO,OAAO,KAAK,IACxDuB,SACCvB,OAAM,KAAK,IAAIA,OAAM,KAAK,IAAK,SAAS,KAAK,KAAK,SAAS,QAAQ,KAAKuB;AAE7E,OAAK,MAAM,QAAQ,KAAK;AAC1B;AAEA,SAAS,KAAM,MAAM,QAAQ,OAAO;AAClC,MAAI,CAAC,KAAK,YAAY,OAAO,KAAK,MAAMA,OAAM;AAE9C,SAAO,KAAK,IAAK,yBAAU,OAAO;AAChC,WAAO,SAAS,MAAO;AACrB,YAAM,KAAK,KAAK,UAAS;AACzB,YAAM,OAAO,IAAI,MAAM,UAAU,MAAM;AACvC,YAAMvB,SAAS,OAAO,kBAAkB,OAAO,eAAe,IAAI,MAAM,WAAY,WAAW;AAC/F,eAASN,KAAI,GAAGA,KAAI,KAAK,QAAQA,KAAK,MAAKA,EAAC,IAAI,UAAUA,EAAC;AAE3D,UAAI,KAAK,aAAa,CAAC,KAAK,UAAU;AACpC,yBAAiB,MAAM,KAAK,YAAY,KAAK,aAAa,KAAK,gBAAgB;AAAA,MACvF;AACM,UAAI,KAAK,SAAU,OAAM,KAAKM,QAAO,SAAS,MAAM,OAAO,MAAM,EAAE,CAAC;AAAA,UAC/D,OAAM,MAAMA,QAAO,IAAI;AAE5B,UAAI,KAAK,UAAU;AACjB,cAAM,gBAAgB,KAAK,SAAS,SAAS,OAAO;AACpD,cAAM,gBAAgB,KAAK,OAAO,OAAO,aAAa;AACtD,cAAM,cAAc,KAAK,OAAO,OAAO,KAAK;AAC5C,YAAI,cAAc,cAAe;AACjC,iBAAS,MAAM;AAAA,UACb;AAAA,UACA,aAAa;AAAA,UACb;AAAA,UACA;AAAA,UACA,eAAe,KAAK,OAAO,OAAO,KAAK,SAAS,SAAS,OAAO,KAAK;AAAA,UACrE,MAAM,KAAK,SAAS;AAAA,UACpB,KAAK,OAAO;AAAA,QACtB,GAAW,IAAI;AAAA,MACf;AAAA,IACA;AAAA,EACA,EAAK,OAAO,KAAK,CAAC;AAClB;AAEA,SAAS,SAAU,QAAQ,OAAO,MAAM,IAAI;AAC1C,MAAI,OAAO,WAAY,kBAAiB,MAAM,OAAO,YAAY,OAAO,aAAa,OAAO,gBAAgB;AAC5G,QAAM,aAAa,KAAK,MAAK;AAC7B,MAAI,MAAM,WAAW,CAAC;AACtB,QAAM,IAAI,CAAA;AACV,MAAI,IAAI;AACN,MAAE,OAAO;AAAA,EACb;AACE,IAAE,QAAQ,KAAK,OAAO,OAAO,KAAK;AAClC,MAAI,OAAO,OAAO,cAAc,KAAK;AACrC,MAAI,MAAM,EAAG,OAAM;AAEnB,MAAI,QAAQ,QAAQ,OAAO,QAAQ,UAAU;AAC3C,WAAO,SAAS,OAAO,WAAW,CAAC,MAAM,UAAU;AACjD,aAAO,OAAO,GAAG,WAAW,MAAO,CAAA;AAAA,IACzC;AACI,UAAM,WAAW,SAAS,OAAO,WAAW,MAAK,GAAI,UAAU,IAAI;AAAA,EACvE,WAAa,OAAO,QAAQ,SAAU,OAAM,OAAO,WAAW,MAAK,GAAI,UAAU;AAC/E,MAAI,QAAQ,OAAW,GAAE,MAAM;AAC/B,SAAO;AACT;AAEA,SAAS,iBAAkB,MAAM,WAAW,aAAa,iBAAiB;AACxE,aAAWN,MAAK,MAAM;AACpB,QAAI,mBAAmB,KAAKA,EAAC,aAAa,OAAO;AAC/C,WAAKA,EAAC,IAAI,KAAK,eAAe,IAAI,KAAKA,EAAC,CAAC;AAAA,IAC1C,WAAU,OAAO,KAAKA,EAAC,MAAM,YAAY,CAAC,MAAM,QAAQ,KAAKA,EAAC,CAAC,GAAG;AACjE,iBAAW2B,MAAK,KAAK3B,EAAC,GAAG;AACvB,YAAI,aAAa,UAAU,QAAQ2B,EAAC,IAAI,MAAMA,MAAK,aAAa;AAC9D,eAAK3B,EAAC,EAAE2B,EAAC,IAAI,YAAYA,EAAC,EAAE,KAAK3B,EAAC,EAAE2B,EAAC,CAAC;AAAA,QAChD;AAAA,MACA;AAAA,IACA;AAAA,EACA;AACA;AAEA,SAAS,KAAM,QAAQ,UAAU,OAAO;AACtC,SAAO,WAAY;AACjB,UAAM,OAAO,IAAI,MAAM,IAAI,UAAU,MAAM;AAC3C,SAAK,CAAC,IAAI;AACV,aAAS3B,KAAI,GAAGA,KAAI,KAAK,QAAQA,MAAK;AACpC,WAAKA,EAAC,IAAI,UAAUA,KAAI,CAAC;AAAA,IAC/B;AACI,WAAO,OAAO,KAAK,EAAE,MAAM,MAAM,IAAI;AAAA,EACzC;AACA;AAEA,SAAS,SAAU,QAAQ,MAAM,MAAM;AACrC,QAAM,OAAO,KAAK;AAClB,QAAM,KAAK,KAAK;AAChB,QAAM,cAAc,KAAK;AACzB,QAAM,cAAc,KAAK;AACzB,QAAM,MAAM,KAAK;AACjB,QAAM,WAAW,OAAO,UAAU;AAElC;AAAA,IACE;AAAA,IACA,OAAO,cAAc,OAAO,KAAK,OAAO,WAAW;AAAA,IACnD,OAAO;AAAA,IACP,OAAO,qBAAqB,SAAY,OAAO,OAAO;AAAA,EAC1D;AACE,SAAO,UAAU,KAAK;AACtB,SAAO,UAAU,WAAW,KAAK,OAAO,SAAU,KAAK;AAErD,WAAO,SAAS,QAAQ,GAAG,MAAM;AAAA,EAClC,CAAA;AAED,SAAO,UAAU,MAAM,QAAQ;AAC/B,SAAO,UAAU,MAAM,QAAQ;AAE/B,OAAK,aAAa,OAAO,WAAW,GAAG;AAEvC,SAAO,YAAY,oBAAoB,QAAQ;AACjD;AAEA,SAAS,oBAAqB,UAAU;AACtC,SAAO;AAAA,IACL,IAAI;AAAA,IACJ,UAAU,CAAE;AAAA,IACZ,UAAU,YAAY,CAAE;AAAA,IACxB,OAAO,EAAE,OAAO,IAAI,OAAO,EAAC;AAAA,EAChC;AACA;AAEA,SAAS,WAAY,KAAK;AACxB,QAAM,MAAM;AAAA,IACV,MAAM,IAAI,YAAY;AAAA,IACtB,KAAK,IAAI;AAAA,IACT,OAAO,IAAI;AAAA,EACf;AACE,aAAW,OAAO,KAAK;AACrB,QAAI,IAAI,GAAG,MAAM,QAAW;AAC1B,UAAI,GAAG,IAAI,IAAI,GAAG;AAAA,IACxB;AAAA,EACA;AACE,SAAO;AACT;AAEA,SAAS,gBAAiB,MAAM;AAC9B,MAAI,OAAO,KAAK,cAAc,YAAY;AACxC,WAAO,KAAK;AAAA,EAChB;AACE,MAAI,KAAK,cAAc,OAAO;AAC5B,WAAO;AAAA,EACX;AACE,SAAO;AACT;AAEA,SAAS,OAAQ;AAAE,SAAO,CAAE;AAAA;AAC5B,SAAS,YAAa,GAAG;AAAE,SAAO;AAAC;AACnC,SAAS6B,SAAQ;AAAA;AAEjB,SAAS,WAAY;AAAE,SAAO;AAAK;AACnC,SAAS,YAAa;AAAE,SAAO,KAAK,IAAK;AAAA;AACzC,SAAS,WAAY;AAAE,SAAO,KAAK,MAAM,KAAK,IAAK,IAAG,GAAM;AAAC;AAC7D,SAAS,UAAW;AAAE,SAAO,IAAI,KAAK,KAAK,IAAK,CAAA,EAAE;AAAe;AAIjE,SAAS,yBAA0B;AACjC,WAAS,KAAM,GAAG;AAAE,WAAO,OAAO,MAAM,eAAe;AAAA,EAAC;AACxD,MAAI;AACF,QAAI,OAAO,eAAe,YAAa,QAAO;AAC9C,WAAO,eAAe,OAAO,WAAW,cAAc;AAAA,MACpD,KAAK,WAAY;AACf,eAAO,OAAO,UAAU;AACxB,eAAQ,KAAK,aAAa;AAAA,MAC3B;AAAA,MACD,cAAc;AAAA,IACf,CAAA;AACD,WAAO;AAAA,EACR,SAAQ,GAAG;AACV,WAAO,KAAK,IAAI,KAAK,KAAK,MAAM,KAAK,KAAK,IAAI,KAAK,CAAA;AAAA,EACvD;AACA;;ACpWkI,MAAC,IAAE,EAAC,OAAM,OAAM,GAAE,IAAE;AAAqvF,IAAIpB,MAAE,OAAO,gBAAesB,MAAE,OAAO,kBAAiB,IAAE,OAAO,2BAA0B,IAAE,OAAO,uBAAsB,IAAE,OAAO,UAAU,gBAAeC,MAAE,OAAO,UAAU,sBAAqB,IAAE,CAAC,GAAE,GAAE,MAAI,KAAK,IAAEvB,IAAE,GAAE,GAAE,EAAC,YAAW,MAAG,cAAa,MAAG,UAAS,MAAG,OAAM,EAAC,CAAC,IAAE,EAAE,CAAC,IAAE,GAAE,IAAE,CAAC,GAAE,MAAI;AAAC,WAAQ,KAAK,EAAU,GAAE,KAAK,GAAE,CAAC,KAAG,EAAE,GAAE,GAAE,EAAE,CAAC,CAAC;AAAE,MAAG,EAAE,UAAQ,KAAK,EAAE,CAAC,EAAEuB,KAAE,KAAK,GAAE,CAAC,KAAG,EAAE,GAAE,GAAE,EAAE,CAAC,CAAC;AAAE,SAAO;AAAC,GAAE,IAAE,CAAC,GAAE,MAAID,IAAE,GAAE,EAAE,CAAC,CAAC;AAAE,SAAS,EAAE,GAAE;AAAC,SAAO,EAAE,EAAE,CAAE,GAAC,CAAC,GAAE,EAAC,QAAM,uBAAG,UAAO,EAAE,MAAK,CAAC;AAAC;AAAC,SAASE,IAAE,GAAE,IAAE,GAAE;AAAC,SAAO,EAAE,CAAC,KAAG;AAAE;AAAC,SAAS,EAAE,GAAE,GAAE,IAAE,GAAE;AAAC,SAAO,EAAE,CAAC,IAAE,GAAE;AAAC;AAAC,SAAS,EAAE,GAAE,IAAE,GAAE;AAAC,MAAI,IAAE;AAAG,SAAO,OAAO,EAAE,WAAS,MAAI,IAAEA,IAAE,GAAE,CAAC,IAAE,IAAE,EAAE,SAAU,EAAC,WAAS,IAAG;AAAC;AAAC,SAAS,EAAE,GAAE,GAAE,IAAE,GAAE;AAAC,QAAM,IAAE,EAAE,GAAE,CAAC;AAAE,SAAO,EAAE,KAAI,IAAG,GAAG,CAAC,IAAI,CAAC,KAAG;AAAC;AAAC,SAAS,EAAE,GAAE,GAAE,IAAE,GAAE;AAAC,QAAM,IAAE,EAAE,GAAE,GAAE,CAAC,GAAE,IAAE,EAAE,MAAM,EAAC,SAAQ,EAAC,CAAC;AAAE,SAAO,EAAE,GAAE,GAAE,CAAC;AAAC;;ACuBlpH,IAAI,IAAI,OAAO,YAAY,WAAW,UAAU;AAChD,IAAI,eAAe,KAAK,OAAO,EAAE,UAAU,aACvC,EAAE,QACF,SAASC,cAAa,QAAQ,UAAU,MAAM;AAC9C,SAAO,SAAS,UAAU,MAAM,KAAK,QAAQ,UAAU,IAAI;AAC/D;AAEA,IAAI;AACJ,IAAI,KAAK,OAAO,EAAE,YAAY,YAAY;AACxC,mBAAiB,EAAE;AACrB,WAAW,OAAO,uBAAuB;AACvC,mBAAiB,SAASC,gBAAe,QAAQ;AAC/C,WAAO,OAAO,oBAAoB,MAAM,EACrC,OAAO,OAAO,sBAAsB,MAAM,CAAC;AAAA,EAC/C;AACH,OAAO;AACL,mBAAiB,SAASA,gBAAe,QAAQ;AAC/C,WAAO,OAAO,oBAAoB,MAAM;AAAA,EACzC;AACH;AAEA,SAAS,mBAAmB,SAAS;AACnC,MAAI,WAAW,QAAQ,KAAM,SAAQ,KAAK,OAAO;AACnD;AAEA,IAAI,cAAc,OAAO,SAAS,SAASC,aAAY,OAAO;AAC5D,SAAO,UAAU;AACnB;AAEA,SAAS,eAAe;AACtB,eAAa,KAAK,KAAK,IAAI;AAC7B;AACAC,OAAc,UAAG;AACEA,OAAA,QAAA,OAAGC;AAGtB,aAAa,eAAe;AAE5B,aAAa,UAAU,UAAU;AACjC,aAAa,UAAU,eAAe;AACtC,aAAa,UAAU,gBAAgB;AAIvC,IAAI,sBAAsB;AAE1B,SAAS,cAAc,UAAU;AAC/B,MAAI,OAAO,aAAa,YAAY;AAClC,UAAM,IAAI,UAAU,qEAAqE,OAAO,QAAQ;AAAA,EAC5G;AACA;AAEA,OAAO,eAAe,cAAc,uBAAuB;AAAA,EACzD,YAAY;AAAA,EACZ,KAAK,WAAW;AACd,WAAO;AAAA,EACR;AAAA,EACD,KAAK,SAAS,KAAK;AACjB,QAAI,OAAO,QAAQ,YAAY,MAAM,KAAK,YAAY,GAAG,GAAG;AAC1D,YAAM,IAAI,WAAW,oGAAoG,MAAM,GAAG;AAAA,IACxI;AACI,0BAAsB;AAAA,EAC1B;AACA,CAAC;AAED,aAAa,OAAO,WAAW;AAE7B,MAAI,KAAK,YAAY,UACjB,KAAK,YAAY,OAAO,eAAe,IAAI,EAAE,SAAS;AACxD,SAAK,UAAU,uBAAO,OAAO,IAAI;AACjC,SAAK,eAAe;AAAA,EACxB;AAEE,OAAK,gBAAgB,KAAK,iBAAiB;AAC7C;AAIA,aAAa,UAAU,kBAAkB,SAAS,gBAAgB3B,IAAG;AACnE,MAAI,OAAOA,OAAM,YAAYA,KAAI,KAAK,YAAYA,EAAC,GAAG;AACpD,UAAM,IAAI,WAAW,kFAAkFA,KAAI,GAAG;AAAA,EAClH;AACE,OAAK,gBAAgBA;AACrB,SAAO;AACT;AAEA,SAAS,iBAAiB,MAAM;AAC9B,MAAI,KAAK,kBAAkB;AACzB,WAAO,aAAa;AACtB,SAAO,KAAK;AACd;AAEA,aAAa,UAAU,kBAAkB,SAAS,kBAAkB;AAClE,SAAO,iBAAiB,IAAI;AAC9B;AAEA,aAAa,UAAU,OAAO,SAAS,KAAK,MAAM;AAChD,MAAI,OAAO,CAAE;AACb,WAASX,KAAI,GAAGA,KAAI,UAAU,QAAQA,KAAK,MAAK,KAAK,UAAUA,EAAC,CAAC;AACjE,MAAI,UAAW,SAAS;AAExB,MAAIqB,UAAS,KAAK;AAClB,MAAIA,YAAW;AACb,cAAW,WAAWA,QAAO,UAAU;AAAA,WAChC,CAAC;AACR,WAAO;AAGT,MAAI,SAAS;AACX,QAAI;AACJ,QAAI,KAAK,SAAS;AAChB,WAAK,KAAK,CAAC;AACb,QAAI,cAAc,OAAO;AAGvB,YAAM;AAAA,IACZ;AAEI,QAAI,MAAM,IAAI,MAAM,sBAAsB,KAAK,OAAO,GAAG,UAAU,MAAM,GAAG;AAC5E,QAAI,UAAU;AACd,UAAM;AAAA,EACV;AAEE,MAAI,UAAUA,QAAO,IAAI;AAEzB,MAAI,YAAY;AACd,WAAO;AAET,MAAI,OAAO,YAAY,YAAY;AACjC,iBAAa,SAAS,MAAM,IAAI;AAAA,EACpC,OAAS;AACL,QAAI,MAAM,QAAQ;AAClB,QAAIkB,aAAY,WAAW,SAAS,GAAG;AACvC,aAASvC,KAAI,GAAGA,KAAI,KAAK,EAAEA;AACzB,mBAAauC,WAAUvC,EAAC,GAAG,MAAM,IAAI;AAAA,EAC3C;AAEE,SAAO;AACT;AAEA,SAAS,aAAa,QAAQ,MAAM,UAAU,SAAS;AACrD,MAAI;AACJ,MAAIqB;AACJ,MAAI;AAEJ,gBAAc,QAAQ;AAEtB,EAAAA,UAAS,OAAO;AAChB,MAAIA,YAAW,QAAW;AACxB,IAAAA,UAAS,OAAO,UAAU,uBAAO,OAAO,IAAI;AAC5C,WAAO,eAAe;AAAA,EAC1B,OAAS;AAGL,QAAIA,QAAO,gBAAgB,QAAW;AACpC,aAAO;AAAA,QAAK;AAAA,QAAe;AAAA,QACf,SAAS,WAAW,SAAS,WAAW;AAAA,MAAQ;AAI5D,MAAAA,UAAS,OAAO;AAAA,IACtB;AACI,eAAWA,QAAO,IAAI;AAAA,EAC1B;AAEE,MAAI,aAAa,QAAW;AAE1B,eAAWA,QAAO,IAAI,IAAI;AAC1B,MAAE,OAAO;AAAA,EACb,OAAS;AACL,QAAI,OAAO,aAAa,YAAY;AAElC,iBAAWA,QAAO,IAAI,IACpB,UAAU,CAAC,UAAU,QAAQ,IAAI,CAAC,UAAU,QAAQ;AAAA,IAEvD,WAAU,SAAS;AAClB,eAAS,QAAQ,QAAQ;AAAA,IAC/B,OAAW;AACL,eAAS,KAAK,QAAQ;AAAA,IAC5B;AAGI,QAAI,iBAAiB,MAAM;AAC3B,QAAI,IAAI,KAAK,SAAS,SAAS,KAAK,CAAC,SAAS,QAAQ;AACpD,eAAS,SAAS;AAGlB,UAAImB,KAAI,IAAI,MAAM,iDACE,SAAS,SAAS,MAAM,OAAO,IAAI,IAAI,mEAEvB;AACpC,MAAAA,GAAE,OAAO;AACT,MAAAA,GAAE,UAAU;AACZ,MAAAA,GAAE,OAAO;AACT,MAAAA,GAAE,QAAQ,SAAS;AACnB,yBAAmBA,EAAC;AAAA,IAC1B;AAAA,EACA;AAEE,SAAO;AACT;AAEA,aAAa,UAAU,cAAc,SAAS,YAAY,MAAM,UAAU;AACxE,SAAO,aAAa,MAAM,MAAM,UAAU,KAAK;AACjD;AAEA,aAAa,UAAU,KAAK,aAAa,UAAU;AAEnD,aAAa,UAAU,kBACnB,SAAS,gBAAgB,MAAM,UAAU;AACvC,SAAO,aAAa,MAAM,MAAM,UAAU,IAAI;AAC/C;AAEL,SAAS,cAAc;AACrB,MAAI,CAAC,KAAK,OAAO;AACf,SAAK,OAAO,eAAe,KAAK,MAAM,KAAK,MAAM;AACjD,SAAK,QAAQ;AACb,QAAI,UAAU,WAAW;AACvB,aAAO,KAAK,SAAS,KAAK,KAAK,MAAM;AACvC,WAAO,KAAK,SAAS,MAAM,KAAK,QAAQ,SAAS;AAAA,EACrD;AACA;AAEA,SAAS,UAAU,QAAQ,MAAM,UAAU;AACzC,MAAI,QAAQ,EAAE,OAAO,OAAO,QAAQ,QAAW,QAAgB,MAAY,SAAoB;AAC/F,MAAI,UAAU,YAAY,KAAK,KAAK;AACpC,UAAQ,WAAW;AACnB,QAAM,SAAS;AACf,SAAO;AACT;AAEA,aAAa,UAAU,OAAO,SAAS,KAAK,MAAM,UAAU;AAC1D,gBAAc,QAAQ;AACtB,OAAK,GAAG,MAAM,UAAU,MAAM,MAAM,QAAQ,CAAC;AAC7C,SAAO;AACT;AAEA,aAAa,UAAU,sBACnB,SAAS,oBAAoB,MAAM,UAAU;AAC3C,gBAAc,QAAQ;AACtB,OAAK,gBAAgB,MAAM,UAAU,MAAM,MAAM,QAAQ,CAAC;AAC1D,SAAO;AACR;AAGL,aAAa,UAAU,iBACnB,SAAS,eAAe,MAAM,UAAU;AACtC,MAAI,MAAMnB,SAAQ,UAAUrB,IAAG;AAE/B,gBAAc,QAAQ;AAEtB,EAAAqB,UAAS,KAAK;AACd,MAAIA,YAAW;AACb,WAAO;AAET,SAAOA,QAAO,IAAI;AAClB,MAAI,SAAS;AACX,WAAO;AAET,MAAI,SAAS,YAAY,KAAK,aAAa,UAAU;AACnD,QAAI,EAAE,KAAK,iBAAiB;AAC1B,WAAK,UAAU,uBAAO,OAAO,IAAI;AAAA,SAC9B;AACH,aAAOA,QAAO,IAAI;AAClB,UAAIA,QAAO;AACT,aAAK,KAAK,kBAAkB,MAAM,KAAK,YAAY,QAAQ;AAAA,IACvE;AAAA,EACA,WAAiB,OAAO,SAAS,YAAY;AACrC,eAAW;AAEX,SAAKrB,KAAI,KAAK,SAAS,GAAGA,MAAK,GAAGA,MAAK;AACrC,UAAI,KAAKA,EAAC,MAAM,YAAY,KAAKA,EAAC,EAAE,aAAa,UAAU;AACzD,2BAAmB,KAAKA,EAAC,EAAE;AAC3B,mBAAWA;AACX;AAAA,MACZ;AAAA,IACA;AAEQ,QAAI,WAAW;AACb,aAAO;AAET,QAAI,aAAa;AACf,WAAK,MAAO;AAAA,SACT;AACH,gBAAU,MAAM,QAAQ;AAAA,IAClC;AAEQ,QAAI,KAAK,WAAW;AAClB,MAAAqB,QAAO,IAAI,IAAI,KAAK,CAAC;AAEvB,QAAIA,QAAO,mBAAmB;AAC5B,WAAK,KAAK,kBAAkB,MAAM,oBAAoB,QAAQ;AAAA,EACxE;AAEM,SAAO;AACR;AAEL,aAAa,UAAU,MAAM,aAAa,UAAU;AAEpD,aAAa,UAAU,qBACnB,SAAS,mBAAmB,MAAM;AAChC,MAAIkB,YAAWlB,SAAQrB;AAEvB,EAAAqB,UAAS,KAAK;AACd,MAAIA,YAAW;AACb,WAAO;AAGT,MAAIA,QAAO,mBAAmB,QAAW;AACvC,QAAI,UAAU,WAAW,GAAG;AAC1B,WAAK,UAAU,uBAAO,OAAO,IAAI;AACjC,WAAK,eAAe;AAAA,IACrB,WAAUA,QAAO,IAAI,MAAM,QAAW;AACrC,UAAI,EAAE,KAAK,iBAAiB;AAC1B,aAAK,UAAU,uBAAO,OAAO,IAAI;AAAA;AAEjC,eAAOA,QAAO,IAAI;AAAA,IAC9B;AACQ,WAAO;AAAA,EACf;AAGM,MAAI,UAAU,WAAW,GAAG;AAC1B,QAAI,OAAO,OAAO,KAAKA,OAAM;AAC7B,QAAI;AACJ,SAAKrB,KAAI,GAAGA,KAAI,KAAK,QAAQ,EAAEA,IAAG;AAChC,YAAM,KAAKA,EAAC;AACZ,UAAI,QAAQ,iBAAkB;AAC9B,WAAK,mBAAmB,GAAG;AAAA,IACrC;AACQ,SAAK,mBAAmB,gBAAgB;AACxC,SAAK,UAAU,uBAAO,OAAO,IAAI;AACjC,SAAK,eAAe;AACpB,WAAO;AAAA,EACf;AAEM,EAAAuC,aAAYlB,QAAO,IAAI;AAEvB,MAAI,OAAOkB,eAAc,YAAY;AACnC,SAAK,eAAe,MAAMA,UAAS;AAAA,EAC3C,WAAiBA,eAAc,QAAW;AAElC,SAAKvC,KAAIuC,WAAU,SAAS,GAAGvC,MAAK,GAAGA,MAAK;AAC1C,WAAK,eAAe,MAAMuC,WAAUvC,EAAC,CAAC;AAAA,IAChD;AAAA,EACA;AAEM,SAAO;AACR;AAEL,SAAS,WAAW,QAAQ,MAAM,QAAQ;AACxC,MAAIqB,UAAS,OAAO;AAEpB,MAAIA,YAAW;AACb,WAAO,CAAE;AAEX,MAAI,aAAaA,QAAO,IAAI;AAC5B,MAAI,eAAe;AACjB,WAAO,CAAE;AAEX,MAAI,OAAO,eAAe;AACxB,WAAO,SAAS,CAAC,WAAW,YAAY,UAAU,IAAI,CAAC,UAAU;AAEnE,SAAO,SACL,gBAAgB,UAAU,IAAI,WAAW,YAAY,WAAW,MAAM;AAC1E;AAEA,aAAa,UAAU,YAAY,SAAS,UAAU,MAAM;AAC1D,SAAO,WAAW,MAAM,MAAM,IAAI;AACpC;AAEA,aAAa,UAAU,eAAe,SAAS,aAAa,MAAM;AAChE,SAAO,WAAW,MAAM,MAAM,KAAK;AACrC;AAEA,aAAa,gBAAgB,SAAS,SAAS,MAAM;AACnD,MAAI,OAAO,QAAQ,kBAAkB,YAAY;AAC/C,WAAO,QAAQ,cAAc,IAAI;AAAA,EACrC,OAAS;AACL,WAAO,cAAc,KAAK,SAAS,IAAI;AAAA,EAC3C;AACA;AAEA,aAAa,UAAU,gBAAgB;AACvC,SAAS,cAAc,MAAM;AAC3B,MAAIA,UAAS,KAAK;AAElB,MAAIA,YAAW,QAAW;AACxB,QAAI,aAAaA,QAAO,IAAI;AAE5B,QAAI,OAAO,eAAe,YAAY;AACpC,aAAO;AAAA,IACb,WAAe,eAAe,QAAW;AACnC,aAAO,WAAW;AAAA,IACxB;AAAA,EACA;AAEE,SAAO;AACT;AAEA,aAAa,UAAU,aAAa,SAAS,aAAa;AACxD,SAAO,KAAK,eAAe,IAAI,eAAe,KAAK,OAAO,IAAI,CAAE;AAClE;AAEA,SAAS,WAAW,KAAKV,IAAG;AAC1B,MAAI,OAAO,IAAI,MAAMA,EAAC;AACtB,WAASX,KAAI,GAAGA,KAAIW,IAAG,EAAEX;AACvB,SAAKA,EAAC,IAAI,IAAIA,EAAC;AACjB,SAAO;AACT;AAEA,SAAS,UAAU,MAAM,OAAO;AAC9B,SAAO,QAAQ,IAAI,KAAK,QAAQ;AAC9B,SAAK,KAAK,IAAI,KAAK,QAAQ,CAAC;AAC9B,OAAK,IAAK;AACZ;AAEA,SAAS,gBAAgB,KAAK;AAC5B,MAAI,MAAM,IAAI,MAAM,IAAI,MAAM;AAC9B,WAASA,KAAI,GAAGA,KAAI,IAAI,QAAQ,EAAEA,IAAG;AACnC,QAAIA,EAAC,IAAI,IAAIA,EAAC,EAAE,YAAY,IAAIA,EAAC;AAAA,EACrC;AACE,SAAO;AACT;AAEA,SAASsC,MAAK,SAAS,MAAM;AAC3B,SAAO,IAAI,QAAQ,SAAU,SAAS,QAAQ;AAC5C,aAAS,cAAc,KAAK;AAC1B,cAAQ,eAAe,MAAM,QAAQ;AACrC,aAAO,GAAG;AAAA,IAChB;AAEI,aAAS,WAAW;AAClB,UAAI,OAAO,QAAQ,mBAAmB,YAAY;AAChD,gBAAQ,eAAe,SAAS,aAAa;AAAA,MACrD;AACM,cAAQ,CAAA,EAAG,MAAM,KAAK,SAAS,CAAC;AAAA,IACtC;AAEI,mCAA+B,SAAS,MAAM,UAAU,EAAE,MAAM,MAAM;AACtE,QAAI,SAAS,SAAS;AACpB,oCAA8B,SAAS,eAAe,EAAE,MAAM,KAAI,CAAE;AAAA,IAC1E;AAAA,EACA,CAAG;AACH;AAEA,SAAS,8BAA8B,SAAS,SAAS,OAAO;AAC9D,MAAI,OAAO,QAAQ,OAAO,YAAY;AACpC,mCAA+B,SAAS,SAAS,SAAS,KAAK;AAAA,EACnE;AACA;AAEA,SAAS,+BAA+B,SAAS,MAAM,UAAU,OAAO;AACtE,MAAI,OAAO,QAAQ,OAAO,YAAY;AACpC,QAAI,MAAM,MAAM;AACd,cAAQ,KAAK,MAAM,QAAQ;AAAA,IACjC,OAAW;AACL,cAAQ,GAAG,MAAM,QAAQ;AAAA,IAC/B;AAAA,EACG,WAAU,OAAO,QAAQ,qBAAqB,YAAY;AAGzD,YAAQ,iBAAiB,MAAM,SAAS,aAAa,KAAK;AAGxD,UAAI,MAAM,MAAM;AACd,gBAAQ,oBAAoB,MAAM,YAAY;AAAA,MACtD;AACM,eAAS,GAAG;AAAA,IAClB,CAAK;AAAA,EACL,OAAS;AACL,UAAM,IAAI,UAAU,wEAAwE,OAAO,OAAO;AAAA,EAC9G;AACA;;;AChfO,MAAM,cAAc;AACpB,MAAM,kBAAkB;AACxB,MAAM,mBAAmB;AACzB,MAAM,iBAAiB;AACvB,MAAM,iBAAiB;AACvB,MAAM,eAAe;AACrB,MAAM,uBAAuB,CAAC,QAAQ,QAAQ,QAAQ,QAAQ,MAAM;AAEpE,MAAM,qBAAqB;AAAA,EAC9B,CAAC,WAAW,GAAG,EAAE,MAAM,QAAQ,SAAS,cAAe;AAAA,EACvD,CAAC,eAAe,GAAG,EAAE,MAAM,QAAQ,SAAS,kBAAmB;AAAA,EAC/D,CAAC,gBAAgB,GAAG,EAAE,MAAM,QAAQ,SAAS,mBAAoB;AAAA,EACjE,CAAC,cAAc,GAAG,EAAE,MAAM,QAAQ,SAAS,iBAAkB;AAAA,EAC7D,CAAC,cAAc,GAAG,EAAE,MAAM,QAAQ,SAAS,iBAAkB;AAAA,EAC7D,CAAC,YAAY,GAAG,EAAE,MAAM,OAAQ,SAAS,eAAgB;AAC7D;AACO,MAAM,gBAAgB;ACZtB,SAAS,oBAAoB1B,OAAM;AACtC,SAAO,qBAAqB,SAASA,KAAI;AAC7C;AAIO,SAAS,SAAS,MAAM;AAC3B,MAAI,CAAC,OAAO,KAAK,kBAAkB,EAAE,SAAS,IAAI,GAAG;AACjD,WAAO,mBAAmB,aAAa;AAAA,EAC/C;AACI,SAAO,mBAAmB,IAAI;AAClC;AACO,SAAS,eAAeA,OAAM;AACjC,QAAM,QAAQ,OAAO,OAAO,kBAAkB,EAAE,KAAK,OAAK,EAAE,SAASA,KAAI;AACzE,MAAI,CAAC,OAAO;AACR,WAAO,mBAAmB,aAAa;AAAA,EAC/C;AACI,SAAO;AACX;;ACtBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBA,IAAI,gBAAgB,SAAS,GAAGL,IAAG;AAC/B,kBAAgB,OAAO,kBAClB,EAAE,WAAW,CAAA,eAAgB,SAAS,SAAUkC,IAAGlC,IAAG;AAAE,IAAAkC,GAAE,YAAYlC;AAAA,EAAE,KACzE,SAAUkC,IAAGlC,IAAG;AAAE,aAASmC,MAAKnC,GAAG,KAAIA,GAAE,eAAemC,EAAC,EAAG,CAAAD,GAAEC,EAAC,IAAInC,GAAEmC,EAAC;AAAA;AAC1E,SAAO,cAAc,GAAGnC,EAAC;AAC7B;AAEO,SAAS,UAAU,GAAGA,IAAG;AAC5B,gBAAc,GAAGA,EAAC;AAClB,WAAS,KAAK;AAAE,SAAK,cAAc;AAAA,EAAI;AACvC,IAAE,YAAYA,OAAM,OAAO,OAAO,OAAOA,EAAC,KAAK,GAAG,YAAYA,GAAE,WAAW,IAAI,GAAI;AACvF;AAEO,IAAI,WAAW,WAAW;AAC7B,aAAW,OAAO,UAAU,SAASoC,UAAS,GAAG;AAC7C,aAAS,GAAG3C,KAAI,GAAGW,KAAI,UAAU,QAAQX,KAAIW,IAAGX,MAAK;AACjD,UAAI,UAAUA,EAAC;AACf,eAAS0C,MAAK,EAAG,KAAI,OAAO,UAAU,eAAe,KAAK,GAAGA,EAAC,EAAG,GAAEA,EAAC,IAAI,EAAEA,EAAC;AAAA,IAC9E;AACD,WAAO;AAAA,EACV;AACD,SAAO,SAAS,MAAM,MAAM,SAAS;AACzC;AAEO,SAAS,OAAO,GAAG,GAAG;AACzB,MAAI,IAAI,CAAA;AACR,WAASA,MAAK,EAAG,KAAI,OAAO,UAAU,eAAe,KAAK,GAAGA,EAAC,KAAK,EAAE,QAAQA,EAAC,IAAI;AAC9E,MAAEA,EAAC,IAAI,EAAEA,EAAC;AACd,MAAI,KAAK,QAAQ,OAAO,OAAO,0BAA0B;AACrD,aAAS1C,KAAI,GAAG0C,KAAI,OAAO,sBAAsB,CAAC,GAAG1C,KAAI0C,GAAE,QAAQ1C,MAAK;AACpE,UAAI,EAAE,QAAQ0C,GAAE1C,EAAC,CAAC,IAAI,KAAK,OAAO,UAAU,qBAAqB,KAAK,GAAG0C,GAAE1C,EAAC,CAAC;AACzE,UAAE0C,GAAE1C,EAAC,CAAC,IAAI,EAAE0C,GAAE1C,EAAC,CAAC;AAAA,IACvB;AACL,SAAO;AACX;AAEO,SAAS,WAAW,YAAY,QAAQ,KAAK,MAAM;AACtD,MAAIE,KAAI,UAAU,QAAQ,IAAIA,KAAI,IAAI,SAAS,SAAS,OAAO,OAAO,OAAO,yBAAyB,QAAQ,GAAG,IAAI,MAAM;AAC3H,MAAI,OAAO,YAAY,YAAY,OAAO,QAAQ,aAAa,WAAY,KAAI,QAAQ,SAAS,YAAY,QAAQ,KAAK,IAAI;AAAA,MACxH,UAASF,KAAI,WAAW,SAAS,GAAGA,MAAK,GAAGA,KAAK,KAAI,IAAI,WAAWA,EAAC,EAAG,MAAKE,KAAI,IAAI,EAAE,CAAC,IAAIA,KAAI,IAAI,EAAE,QAAQ,KAAK,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM;AAChJ,SAAOA,KAAI,KAAK,KAAK,OAAO,eAAe,QAAQ,KAAK,CAAC,GAAG;AAChE;AAEO,SAAS,QAAQ,YAAY,WAAW;AAC3C,SAAO,SAAU,QAAQ,KAAK;AAAE,cAAU,QAAQ,KAAK,UAAU;AAAA,EAAI;AACzE;AAEO,SAAS,WAAW,aAAa,eAAe;AACnD,MAAI,OAAO,YAAY,YAAY,OAAO,QAAQ,aAAa,WAAY,QAAO,QAAQ,SAAS,aAAa,aAAa;AACjI;AAEO,SAAS,UAAU,SAAS,YAAY,GAAG,WAAW;AACzD,WAAS,MAAM,OAAO;AAAE,WAAO,iBAAiB,IAAI,QAAQ,IAAI,EAAE,SAAU,SAAS;AAAE,cAAQ,KAAK;AAAA,IAAE,CAAE;AAAA,EAAI;AAC5G,SAAO,KAAK,MAAM,IAAI,UAAU,SAAU,SAAS,QAAQ;AACvD,aAAS,UAAU,OAAO;AAAE,UAAI;AAAE,aAAK,UAAU,KAAK,KAAK,CAAC;AAAA,MAAE,SAAU,GAAG;AAAE,eAAO,CAAC;AAAA;IAAM;AAC3F,aAAS,SAAS,OAAO;AAAE,UAAI;AAAE,aAAK,UAAU,OAAO,EAAE,KAAK,CAAC;AAAA,MAAI,SAAQ,GAAG;AAAE,eAAO,CAAC;AAAA;IAAM;AAC9F,aAAS,KAAK,QAAQ;AAAE,aAAO,OAAO,QAAQ,OAAO,KAAK,IAAI,MAAM,OAAO,KAAK,EAAE,KAAK,WAAW,QAAQ;AAAA,IAAI;AAC9G,UAAM,YAAY,UAAU,MAAM,SAAS,cAAc,CAAE,CAAA,GAAG,KAAI,CAAE;AAAA,EAC5E,CAAK;AACL;AAEO,SAAS,YAAY,SAAS,MAAM;AACvC,MAAIkB,KAAI,EAAE,OAAO,GAAG,MAAM,WAAW;AAAE,QAAI,EAAE,CAAC,IAAI,EAAG,OAAM,EAAE,CAAC;AAAG,WAAO,EAAE,CAAC;AAAA,EAAI,GAAE,MAAM,CAAE,GAAE,KAAK,CAAA,EAAI,GAAEI,IAAGd,IAAG,GAAGkC;AAC/G,SAAOA,KAAI,EAAE,MAAM,KAAK,CAAC,GAAG,SAAS,KAAK,CAAC,GAAG,UAAU,KAAK,CAAC,EAAG,GAAE,OAAO,WAAW,eAAeA,GAAE,OAAO,QAAQ,IAAI,WAAW;AAAE,WAAO;AAAA,EAAO,IAAGA;AACvJ,WAAS,KAAKjC,IAAG;AAAE,WAAO,SAAUsB,IAAG;AAAE,aAAO,KAAK,CAACtB,IAAGsB,EAAC,CAAC;AAAA,IAAI;AAAA,EAAG;AAClE,WAAS,KAAK,IAAI;AACd,QAAIT,GAAG,OAAM,IAAI,UAAU,iCAAiC;AAC5D,WAAOJ,GAAG,KAAI;AACV,UAAII,KAAI,GAAGd,OAAM,IAAI,GAAG,CAAC,IAAI,IAAIA,GAAE,QAAQ,IAAI,GAAG,CAAC,IAAIA,GAAE,OAAO,OAAO,IAAIA,GAAE,QAAQ,MAAM,EAAE,KAAKA,EAAC,GAAG,KAAKA,GAAE,SAAS,EAAE,IAAI,EAAE,KAAKA,IAAG,GAAG,CAAC,CAAC,GAAG,KAAM,QAAO;AAC3J,UAAIA,KAAI,GAAG,EAAG,MAAK,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,KAAK;AACtC,cAAQ,GAAG,CAAC,GAAC;AAAA,QACT,KAAK;AAAA,QAAG,KAAK;AAAG,cAAI;AAAI;AAAA,QACxB,KAAK;AAAG,UAAAU,GAAE;AAAS,iBAAO,EAAE,OAAO,GAAG,CAAC,GAAG,MAAM,MAAK;AAAA,QACrD,KAAK;AAAG,UAAAA,GAAE;AAAS,UAAAV,KAAI,GAAG,CAAC;AAAG,eAAK,CAAC,CAAC;AAAG;AAAA,QACxC,KAAK;AAAG,eAAKU,GAAE,IAAI;AAAO,UAAAA,GAAE,KAAK,IAAG;AAAI;AAAA,QACxC;AACI,cAAI,EAAE,IAAIA,GAAE,MAAM,IAAI,EAAE,SAAS,KAAK,EAAE,EAAE,SAAS,CAAC,OAAO,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI;AAAE,YAAAA,KAAI;AAAG;AAAA,UAAW;AAC5G,cAAI,GAAG,CAAC,MAAM,MAAM,CAAC,KAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC,IAAK;AAAE,YAAAA,GAAE,QAAQ,GAAG,CAAC;AAAG;AAAA,UAAQ;AACtF,cAAI,GAAG,CAAC,MAAM,KAAKA,GAAE,QAAQ,EAAE,CAAC,GAAG;AAAE,YAAAA,GAAE,QAAQ,EAAE,CAAC;AAAG,gBAAI;AAAI;AAAA,UAAQ;AACrE,cAAI,KAAKA,GAAE,QAAQ,EAAE,CAAC,GAAG;AAAE,YAAAA,GAAE,QAAQ,EAAE,CAAC;AAAG,YAAAA,GAAE,IAAI,KAAK,EAAE;AAAG;AAAA,UAAQ;AACnE,cAAI,EAAE,CAAC,EAAG,CAAAA,GAAE,IAAI,IAAG;AACnB,UAAAA,GAAE,KAAK,IAAK;AAAE;AAAA,MACrB;AACD,WAAK,KAAK,KAAK,SAASA,EAAC;AAAA,IAC5B,SAAQ,GAAG;AAAE,WAAK,CAAC,GAAG,CAAC;AAAG,MAAAV,KAAI;AAAA,IAAE,UAAW;AAAE,MAAAc,KAAI,IAAI;AAAA,IAAI;AAC1D,QAAI,GAAG,CAAC,IAAI,EAAG,OAAM,GAAG,CAAC;AAAG,WAAO,EAAE,OAAO,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,QAAQ,MAAM;EAC7E;AACL;AAEO,SAAS,gBAAgB,GAAG,GAAGG,IAAGkB,KAAI;AACzC,MAAIA,QAAO,OAAW,CAAAA,MAAKlB;AAC3B,IAAEkB,GAAE,IAAI,EAAElB,EAAC;AACf;AAEO,SAAS,aAAa,GAAG,SAAS;AACrC,WAASe,MAAK,EAAG,KAAIA,OAAM,aAAa,CAAC,QAAQ,eAAeA,EAAC,EAAG,SAAQA,EAAC,IAAI,EAAEA,EAAC;AACxF;AAEO,SAAS,SAAS,GAAG;AACxB,MAAI,IAAI,OAAO,WAAW,cAAc,OAAO,UAAU,IAAI,KAAK,EAAE,CAAC,GAAG1C,KAAI;AAC5E,MAAI,EAAG,QAAO,EAAE,KAAK,CAAC;AACtB,MAAI,KAAK,OAAO,EAAE,WAAW,SAAU,QAAO;AAAA,IAC1C,MAAM,WAAY;AACd,UAAI,KAAKA,MAAK,EAAE,OAAQ,KAAI;AAC5B,aAAO,EAAE,OAAO,KAAK,EAAEA,IAAG,GAAG,MAAM,CAAC;IACvC;AAAA,EACT;AACI,QAAM,IAAI,UAAU,IAAI,4BAA4B,iCAAiC;AACzF;AAEO,SAAS,OAAO,GAAGW,IAAG;AACzB,MAAI,IAAI,OAAO,WAAW,cAAc,EAAE,OAAO,QAAQ;AACzD,MAAI,CAAC,EAAG,QAAO;AACf,MAAIX,KAAI,EAAE,KAAK,CAAC,GAAG,GAAG,KAAK,CAAE,GAAE;AAC/B,MAAI;AACA,YAAQW,OAAM,UAAUA,OAAM,MAAM,EAAE,IAAIX,GAAE,KAAM,GAAE,KAAM,IAAG,KAAK,EAAE,KAAK;AAAA,EAC5E,SACM,OAAO;AAAE,QAAI,EAAE,MAAc;AAAA,EAAG,UAC/B;AACJ,QAAI;AACA,UAAI,KAAK,CAAC,EAAE,SAAS,IAAIA,GAAE,QAAQ,GAAI,GAAE,KAAKA,EAAC;AAAA,IAClD,UACO;AAAE,UAAI,EAAG,OAAM,EAAE;AAAA,IAAQ;AAAA,EACpC;AACD,SAAO;AACX;AAEO,SAAS,WAAW;AACvB,WAAS,KAAK,CAAA,GAAIA,KAAI,GAAGA,KAAI,UAAU,QAAQA;AAC3C,SAAK,GAAG,OAAO,OAAO,UAAUA,EAAC,CAAC,CAAC;AACvC,SAAO;AACX;AAEO,SAAS,iBAAiB;AAC7B,WAAS,IAAI,GAAGA,KAAI,GAAG,KAAK,UAAU,QAAQA,KAAI,IAAIA,KAAK,MAAK,UAAUA,EAAC,EAAE;AAC7E,WAAS,IAAI,MAAM,CAAC,GAAG2B,KAAI,GAAG3B,KAAI,GAAGA,KAAI,IAAIA;AACzC,aAAS,IAAI,UAAUA,EAAC,GAAG,IAAI,GAAG,KAAK,EAAE,QAAQ,IAAI,IAAI,KAAK2B;AAC1D,QAAEA,EAAC,IAAI,EAAE,CAAC;AAClB,SAAO;AACX;AAEO,SAAS,QAAQM,IAAG;AACvB,SAAO,gBAAgB,WAAW,KAAK,IAAIA,IAAG,QAAQ,IAAI,QAAQA,EAAC;AACvE;AAEO,SAAS,iBAAiB,SAAS,YAAY,WAAW;AAC7D,MAAI,CAAC,OAAO,cAAe,OAAM,IAAI,UAAU,sCAAsC;AACrF,MAAIW,KAAI,UAAU,MAAM,SAAS,cAAc,CAAA,CAAE,GAAG5C,IAAG,IAAI;AAC3D,SAAOA,KAAI,CAAA,GAAI,KAAK,MAAM,GAAG,KAAK,OAAO,GAAG,KAAK,QAAQ,GAAGA,GAAE,OAAO,aAAa,IAAI,WAAY;AAAE,WAAO;AAAA,EAAO,GAAEA;AACpH,WAAS,KAAKW,IAAG;AAAE,QAAIiC,GAAEjC,EAAC,EAAG,CAAAX,GAAEW,EAAC,IAAI,SAAUsB,IAAG;AAAE,aAAO,IAAI,QAAQ,SAAU,GAAG1B,IAAG;AAAE,UAAE,KAAK,CAACI,IAAGsB,IAAG,GAAG1B,EAAC,CAAC,IAAI,KAAK,OAAOI,IAAGsB,EAAC;AAAA,MAAE,CAAE;AAAA,IAAI;AAAA,EAAG;AAC1I,WAAS,OAAOtB,IAAGsB,IAAG;AAAE,QAAI;AAAE,WAAKW,GAAEjC,EAAC,EAAEsB,EAAC,CAAC;AAAA,IAAE,SAAU,GAAG;AAAE,aAAO,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC;AAAA;EAAM;AAClF,WAAS,KAAK,GAAG;AAAE,MAAE,iBAAiB,UAAU,QAAQ,QAAQ,EAAE,MAAM,CAAC,EAAE,KAAK,SAAS,MAAM,IAAI,OAAO,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC;AAAA,EAAI;AACxH,WAAS,QAAQ,OAAO;AAAE,WAAO,QAAQ,KAAK;AAAA,EAAI;AAClD,WAAS,OAAO,OAAO;AAAE,WAAO,SAAS,KAAK;AAAA,EAAI;AAClD,WAAS,OAAOT,IAAGS,IAAG;AAAE,QAAIT,GAAES,EAAC,GAAG,EAAE,MAAK,GAAI,EAAE,OAAQ,QAAO,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AAAA,EAAI;AACtF;AAEO,SAAS,iBAAiB,GAAG;AAChC,MAAIjC,IAAG0C;AACP,SAAO1C,KAAI,CAAA,GAAI,KAAK,MAAM,GAAG,KAAK,SAAS,SAAU,GAAG;AAAE,UAAM;AAAA,EAAE,CAAE,GAAG,KAAK,QAAQ,GAAGA,GAAE,OAAO,QAAQ,IAAI,WAAY;AAAE,WAAO;AAAA,EAAO,GAAEA;AAC1I,WAAS,KAAKW,IAAGa,IAAG;AAAE,IAAAxB,GAAEW,EAAC,IAAI,EAAEA,EAAC,IAAI,SAAUsB,IAAG;AAAE,cAAQS,KAAI,CAACA,MAAK,EAAE,OAAO,QAAQ,EAAE/B,EAAC,EAAEsB,EAAC,CAAC,GAAG,MAAMtB,OAAM,SAAU,IAAGa,KAAIA,GAAES,EAAC,IAAIA;AAAA,IAAE,IAAKT;AAAA,EAAI;AACnJ;AAEO,SAAS,cAAc,GAAG;AAC7B,MAAI,CAAC,OAAO,cAAe,OAAM,IAAI,UAAU,sCAAsC;AACrF,MAAI,IAAI,EAAE,OAAO,aAAa,GAAGxB;AACjC,SAAO,IAAI,EAAE,KAAK,CAAC,KAAK,IAAI,OAAO,aAAa,aAAa,SAAS,CAAC,IAAI,EAAE,OAAO,QAAQ,EAAC,GAAIA,KAAI,CAAE,GAAE,KAAK,MAAM,GAAG,KAAK,OAAO,GAAG,KAAK,QAAQ,GAAGA,GAAE,OAAO,aAAa,IAAI,WAAY;AAAE,WAAO;AAAA,EAAK,GAAIA;AAC9M,WAAS,KAAKW,IAAG;AAAE,IAAAX,GAAEW,EAAC,IAAI,EAAEA,EAAC,KAAK,SAAUsB,IAAG;AAAE,aAAO,IAAI,QAAQ,SAAU,SAAS,QAAQ;AAAE,QAAAA,KAAI,EAAEtB,EAAC,EAAEsB,EAAC,GAAG,OAAO,SAAS,QAAQA,GAAE,MAAMA,GAAE,KAAK;AAAA,MAAE,CAAE;AAAA,IAAI;AAAA,EAAG;AAChK,WAAS,OAAO,SAAS,QAAQ,GAAGA,IAAG;AAAE,YAAQ,QAAQA,EAAC,EAAE,KAAK,SAASA,IAAG;AAAE,cAAQ,EAAE,OAAOA,IAAG,MAAM,EAAC,CAAE;AAAA,IAAE,GAAI,MAAM;AAAA,EAAI;AAChI;AAEO,SAAS,qBAAqB,QAAQ,KAAK;AAC9C,MAAI,OAAO,gBAAgB;AAAE,WAAO,eAAe,QAAQ,OAAO,EAAE,OAAO,IAAG,CAAE;AAAA,EAAI,OAAM;AAAE,WAAO,MAAM;AAAA,EAAM;AAC/G,SAAO;AACX;AAEO,SAAS,aAAa,KAAK;AAC9B,MAAI,OAAO,IAAI,WAAY,QAAO;AAClC,MAAI,SAAS,CAAA;AACb,MAAI,OAAO;AAAM,aAASN,MAAK,IAAK,KAAI,OAAO,eAAe,KAAK,KAAKA,EAAC,EAAG,QAAOA,EAAC,IAAI,IAAIA,EAAC;AAAA;AAC7F,SAAO,UAAU;AACjB,SAAO;AACX;AAEO,SAAS,gBAAgB,KAAK;AACjC,SAAQ,OAAO,IAAI,aAAc,MAAM,EAAE,SAAS;AACtD;AAEO,SAAS,uBAAuB,UAAU,YAAY;AACzD,MAAI,CAAC,WAAW,IAAI,QAAQ,GAAG;AAC3B,UAAM,IAAI,UAAU,gDAAgD;AAAA,EACvE;AACD,SAAO,WAAW,IAAI,QAAQ;AAClC;AAEO,SAAS,uBAAuB,UAAU,YAAY,OAAO;AAChE,MAAI,CAAC,WAAW,IAAI,QAAQ,GAAG;AAC3B,UAAM,IAAI,UAAU,gDAAgD;AAAA,EACvE;AACD,aAAW,IAAI,UAAU,KAAK;AAC9B,SAAO;AACX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxNA,SAAO,eAAe,QAAS,cAAc,EAAE,OAAO,MAAM;AAC5D,SAAA,2BAAmC,OAAuB,kBAAG,yBAA0B;AACvF,WAAS,kBAAkB;AACvB,YAAQmB,mBAAW,QAAQA,mBAAW,SAAS,SAASA,eAAO,YAAYA,mBAAW,QAAQA,mBAAW,SAAS,SAASA,eAAO,aAAa,CAAE;AAAA;AAE9H,SAAA,kBAAG;AAC1B,WAAS,kBAAkB;AACvB,UAAM,gBAAgB,gBAAiB;AACvC,WAAO,cAAc,UAAU,cAAc;AAAA;AAE1B,SAAA,kBAAG;AAC1B,WAAS,2BAA2B;AAChC,WAAO,CAAC,CAAC,qBAAqB,CAAC,CAAC,gBAAiB;AAAA;AAErB,SAAA,2BAAG;;;ACfnC,SAAS,wBAAyBrC,IAAG;AACpC,SAAOA,MAAKA,GAAE,cAAc,OAAO,UAAU,eAAe,KAAKA,IAAG,SAAS,IAAIA,GAAE,SAAS,IAAIA;AACjG;AAEA,IAAI,UAAU,EAAC,SAAS,GAAE;AAG1B,IAAI,UAAU,QAAQ,UAAU,CAAE;AAOlC,IAAI;AACJ,IAAI;AAEJ,SAAS,mBAAmB;AACxB,QAAM,IAAI,MAAM,iCAAiC;AACrD;AACA,SAAS,sBAAuB;AAC5B,QAAM,IAAI,MAAM,mCAAmC;AACvD;AAAA,CACC,WAAY;AACT,MAAI;AACA,QAAI,OAAO,eAAe,YAAY;AAClC,yBAAmB;AAAA,IAC/B,OAAe;AACH,yBAAmB;AAAA,IAC/B;AAAA,EACK,SAAQ,GAAG;AACR,uBAAmB;AAAA,EAC3B;AACI,MAAI;AACA,QAAI,OAAO,iBAAiB,YAAY;AACpC,2BAAqB;AAAA,IACjC,OAAe;AACH,2BAAqB;AAAA,IACjC;AAAA,EACK,SAAQ,GAAG;AACR,yBAAqB;AAAA,EAC7B;AACA,GAAI;AACJ,SAAS,WAAW,KAAK;AACrB,MAAI,qBAAqB,YAAY;AAEjC,WAAO,WAAW,KAAK,CAAC;AAAA,EAChC;AAEI,OAAK,qBAAqB,oBAAoB,CAAC,qBAAqB,YAAY;AAC5E,uBAAmB;AACnB,WAAO,WAAW,KAAK,CAAC;AAAA,EAChC;AACI,MAAI;AAEA,WAAO,iBAAiB,KAAK,CAAC;AAAA,EACjC,SAAO,GAAE;AACN,QAAI;AAEA,aAAO,iBAAiB,KAAK,MAAM,KAAK,CAAC;AAAA,IAC5C,SAAOsC,IAAE;AAEN,aAAO,iBAAiB,KAAK,MAAM,KAAK,CAAC;AAAA,IACrD;AAAA,EACA;AAGA;AACA,SAAS,gBAAgB,QAAQ;AAC7B,MAAI,uBAAuB,cAAc;AAErC,WAAO,aAAa,MAAM;AAAA,EAClC;AAEI,OAAK,uBAAuB,uBAAuB,CAAC,uBAAuB,cAAc;AACrF,yBAAqB;AACrB,WAAO,aAAa,MAAM;AAAA,EAClC;AACI,MAAI;AAEA,WAAO,mBAAmB,MAAM;AAAA,EACnC,SAAQ,GAAE;AACP,QAAI;AAEA,aAAO,mBAAmB,KAAK,MAAM,MAAM;AAAA,IAC9C,SAAQA,IAAE;AAGP,aAAO,mBAAmB,KAAK,MAAM,MAAM;AAAA,IACvD;AAAA,EACA;AAIA;AACA,IAAI,QAAQ,CAAE;AACd,IAAI,WAAW;AACf,IAAI;AACJ,IAAI,aAAa;AAEjB,SAAS,kBAAkB;AACvB,MAAI,CAAC,YAAY,CAAC,cAAc;AAC5B;AAAA,EACR;AACI,aAAW;AACX,MAAI,aAAa,QAAQ;AACrB,YAAQ,aAAa,OAAO,KAAK;AAAA,EACzC,OAAW;AACH,iBAAa;AAAA,EACrB;AACI,MAAI,MAAM,QAAQ;AACd,eAAY;AAAA,EACpB;AACA;AAEA,SAAS,aAAa;AAClB,MAAI,UAAU;AACV;AAAA,EACR;AACI,MAAI,UAAU,WAAW,eAAe;AACxC,aAAW;AAEX,MAAI,MAAM,MAAM;AAChB,SAAM,KAAK;AACP,mBAAe;AACf,YAAQ,CAAE;AACV,WAAO,EAAE,aAAa,KAAK;AACvB,UAAI,cAAc;AACd,qBAAa,UAAU,EAAE,IAAK;AAAA,MAC9C;AAAA,IACA;AACQ,iBAAa;AACb,UAAM,MAAM;AAAA,EACpB;AACI,iBAAe;AACf,aAAW;AACX,kBAAgB,OAAO;AAC3B;AAEA,QAAQ,WAAW,SAAU,KAAK;AAC9B,MAAI,OAAO,IAAI,MAAM,UAAU,SAAS,CAAC;AACzC,MAAI,UAAU,SAAS,GAAG;AACtB,aAAS/C,KAAI,GAAGA,KAAI,UAAU,QAAQA,MAAK;AACvC,WAAKA,KAAI,CAAC,IAAI,UAAUA,EAAC;AAAA,IACrC;AAAA,EACA;AACI,QAAM,KAAK,IAAI,KAAK,KAAK,IAAI,CAAC;AAC9B,MAAI,MAAM,WAAW,KAAK,CAAC,UAAU;AACjC,eAAW,UAAU;AAAA,EAC7B;AACA;AAGA,SAAS,KAAK,KAAK,OAAO;AACtB,OAAK,MAAM;AACX,OAAK,QAAQ;AACjB;AACA,KAAK,UAAU,MAAM,WAAY;AAC7B,OAAK,IAAI,MAAM,MAAM,KAAK,KAAK;AACnC;AACA,QAAQ,QAAQ;AAChB,QAAQ,UAAU;AAClB,QAAQ,MAAM,CAAE;AAChB,QAAQ,OAAO,CAAE;AACjB,QAAQ,UAAU;AAClB,QAAQ,WAAW,CAAE;AAErB,SAAS,OAAO;AAAA;AAEhB,QAAQ,KAAK;AACb,QAAQ,cAAc;AACtB,QAAQ,OAAO;AACf,QAAQ,MAAM;AACd,QAAQ,iBAAiB;AACzB,QAAQ,qBAAqB;AAC7B,QAAQ,OAAO;AACf,QAAQ,kBAAkB;AAC1B,QAAQ,sBAAsB;AAE9B,QAAQ,YAAY,SAAU,MAAM;AAAE,SAAO,CAAA;AAAI;AAEjD,QAAQ,UAAU,SAAU,MAAM;AAC9B,QAAM,IAAI,MAAM,kCAAkC;AACtD;AAEA,QAAQ,MAAM,WAAY;AAAE,SAAO;AAAK;AACxC,QAAQ,QAAQ,SAAU,KAAK;AAC3B,QAAM,IAAI,MAAM,gCAAgC;AACpD;AACA,QAAQ,QAAQ,WAAW;AAAE,SAAO;AAAI;AAExC,IAAI,iBAAiB,QAAQ;AAC7B,MAAM,YAAyB,wCAAwB,cAAc;;;;;;AC/LrE,SAAO,eAAe,KAAS,cAAc,EAAE,OAAO,MAAM;AAC5D,MAAA,YAAoB,IAAc,SAAG,oBAAwB;AAC7D,WAASgD,iBAAgB;AACrB,WAAQ,OAAO,aAAa,eACxB,OAAO,cAAc,eACrB,UAAU,YAAY;AAAA;AAET,MAAA,gBAAGA;AACxB,WAAS,SAAS;AACd,WAAQ,OAAOC,cAAY,eACvB,OAAOA,UAAQ,aAAa,eAC5B,OAAOA,UAAQ,SAAS,SAAS;AAAA;AAE3B,MAAA,SAAG;AACjB,WAAS,YAAY;AACjB,WAAO,CAACD,oBAAmB,CAAC,OAAQ;AAAA;AAEvB,MAAA,YAAG;;;;ACjBpB,SAAO,eAAc,SAAU,cAAc,EAAE,OAAO,MAAM;AAC5D,QAAM,UAAU;AAChB,UAAQ,aAAaE,cAAmB,GAAE,OAAO;AACjD,UAAQ,aAAaC,WAAgB,GAAE,OAAO;;ACFvC,SAAS,UAAU,UAAU,GAAG;AACnC,QAAM,OAAO,KAAK,IAAG,IAAK,KAAK,IAAI,IAAI,OAAO;AAC9C,QAAM,QAAQ,KAAK,MAAM,KAAK,WAAW,KAAK,IAAI,IAAI,OAAO,CAAC;AAC9D,SAAO,OAAO;AAClB;AACO,SAAS,eAAe,UAAU,GAAG;AACxC,SAAO,OAAO,UAAU,OAAO,CAAC;AACpC;AACO,SAAS,qBAAqB,QAAQ,QAAQ,IAAI;AACrD,SAAO;AAAA,IACH,IAAI,MAAM,UAAW;AAAA,IACrB,SAAS;AAAA,IACT;AAAA,IACA;AAAA,EACH;AACL;AACO,SAAS,oBAAoB,IAAI,QAAQ;AAC5C,SAAO;AAAA,IACH;AAAA,IACA,SAAS;AAAA,IACT;AAAA,EACH;AACL;AACO,SAAS,mBAAmB,IAAI,OAAO,MAAM;AAChD,SAAO;AAAA,IACH;AAAA,IACA,SAAS;AAAA,IACT,OAAO,mBAAmB,KAAW;AAAA,EACxC;AACL;AACO,SAAS,mBAAmB,OAAO,MAAM;AAC5C,MAAI,OAAO,UAAU,aAAa;AAC9B,WAAO,SAAS,cAAc;AAAA,EACtC;AACI,MAAI,OAAO,UAAU,UAAU;AAC3B,YAAQ,OAAO,OAAO,OAAO,OAAO,CAAA,GAAI,SAAS,YAAY,CAAC,GAAG,EAAE,SAAS,MAAK,CAAE;AAAA,EAC3F;AAII,MAAI,oBAAoB,MAAM,IAAI,GAAG;AACjC,YAAQ,eAAe,MAAM,IAAI;AAAA,EACzC;AACI,SAAO;AACX;AC9CO,SAAS,iBAAiB,SAAS;AACtC,SAAQ,OAAO,YAAY,YACvB,QAAQ,WACR,aAAa,WACb,QAAQ,YAAY;AAC5B;AACO,SAAS,iBAAiB,SAAS;AACtC,SAAO,iBAAiB,OAAO,KAAK,YAAY;AACpD;AACO,SAAS,kBAAkB,SAAS;AACvC,SAAO,iBAAiB,OAAO,MAAM,gBAAgB,OAAO,KAAK,eAAe,OAAO;AAC3F;AACO,SAAS,gBAAgB,SAAS;AACrC,SAAO,YAAY;AACvB;AACO,SAAS,eAAe,SAAS;AACpC,SAAO,WAAW;AACtB;;;;;;;;AChBA,SAAO,eAAeC,OAAS,cAAc,EAAE,OAAO,MAAM;AAC/CA,QAAA,QAAG;AAChB,WAASC,QAAM,SAAS;AACpB,WAAO,IAAI,QAAQ,aAAW;AAC1B,iBAAW,MAAM;AACb,gBAAQ,IAAI;AAAA,MACf,GAAE,OAAO;AAAA,IAClB,CAAK;AAAA;AAEQD,QAAA,QAAGC;;;;;;;;;;ACThB,SAAO,eAAe,MAAS,cAAc,EAAE,OAAO,MAAM;AAC5D,OAAA,eAAuB,KAAA,cAAsB;AAC1B,OAAA,cAAG;AACF,OAAA,eAAG;;;;;;;;;ACHvB,WAAO,eAAc,SAAU,cAAc,EAAE,OAAO,MAAM;AAC5D,YAAmB,WAAA,QAAA,aAAqB,QAAsB,cAAA,QAAA,YAAoB,QAAmB,WAAA,QAAA,cAAsB,QAAqB,aAAA,QAAA,YAAoB,QAAqB,aAAA,QAAA,UAAkB,QAA4B,oBAAA,QAAA,eAAuB,QAAoB,YAAA,QAAA,cAAsB,mBAAmB,QAAwB,gBAAA,QAAA,iBAAyB,QAAsB,cAAA,QAAA,eAAuB,QAAqB,aAAA,QAAA,gBAAwB,QAAyB,iBAAA,QAAA,cAAsB,QAAuB,eAAA,QAAA,aAAqB;AACjiB,YAAA,aAAqB;AACrB,YAAA,eAAuB;AACvB,YAAA,cAAsB;AACtB,YAAA,iBAAyB;AACzB,YAAA,gBAAwB;AACxB,YAAqB,aAAA,QAAQ;AAC7B,YAAA,eAAuB,QAAQ,aAAa;AAC5C,YAAA,cAAsB,QAAQ,aAAa;AAC3C,YAAA,iBAAyB,QAAQ,aAAa;AAC9C,YAAA,gBAAwB,QAAQ,aAAa;AAC7C,YAAmB,WAAA,QAAQ;AAC3B,YAAA,cAAsB,QAAQ,WAAW;AACzC,YAAA,YAAoB,QAAQ,WAAW;AACvC,YAAA,eAAuB,QAAQ,WAAW;AAC1C,YAAA,oBAA4B,QAAQ,WAAW;AAC/C,YAAkB,UAAA,QAAQ;AAC1B,YAAA,aAAqB,QAAQ,UAAU;AACvC,YAAA,YAAoB,QAAQ,UAAU;AACtC,YAAA,aAAqB,QAAQ,UAAU;AACvC,YAAA,cAAsB,QAAQ,UAAU;AACxC,YAAmB,WAAA,QAAQ;AAC3B,YAAA,YAAoB,QAAQ,WAAW;AACvC,YAAA,cAAsB,QAAQ,WAAW;AACzC,YAAA,aAAqB,QAAQ,WAAW;AACxC,YAAA,WAAmB,QAAQ,UAAU;AAAA;;;;;;;;AC1BrC,WAAO,eAAc,SAAU,cAAc,EAAE,OAAO,MAAM;AAC5D,UAAM,UAAU;AAChB,YAAQ,aAAaH,YAAiB,GAAE,OAAO;AAC/C,YAAQ,aAAaC,YAAiB,GAAE,OAAO;AAAA;;;;;;;ACH/C,SAAO,eAAe,SAAS,cAAc,EAAE,OAAO,MAAM;AAC5D,UAAA,kBAA0B,QAAA,gBAAwB;AAClD,QAAM,cAAc1B,iBAAuB;AAC3C,WAAS,cAAc,SAAS;AAC5B,WAAO,UAAU,YAAY;AAAA;AAEZ,UAAA,gBAAG;AACxB,WAAS,gBAAgB,aAAa;AAClC,WAAO,KAAK,MAAM,cAAc,YAAY,YAAY;AAAA;AAErC,UAAA,kBAAG;;;;;;;;ACV1B,WAAO,eAAc,SAAU,cAAc,EAAE,OAAO,MAAM;AAC5D,UAAM,UAAU;AAChB,YAAQ,aAAayB,aAAkB,GAAE,OAAO;AAChD,YAAQ,aAAaC,eAAoB,GAAE,OAAO;AAAA;;;;;;;;ACHlD,SAAO,eAAeG,SAAS,cAAc,EAAE,OAAO,MAAM;AAC/CA,UAAA,QAAG;AAAA,EAChB,MAAM,MAAM;AAAA,IACR,cAAc;AACV,WAAK,aAAa,oBAAI,IAAK;AAAA;IAE/B,MAAM,OAAO;AACT,UAAI,KAAK,WAAW,IAAI,KAAK,GAAG;AAC5B,cAAM,IAAI,MAAM,oCAAoC,KAAK,EAAE;AAAA;AAE/D,WAAK,WAAW,IAAI,OAAO,EAAE,SAAS,KAAK,IAAG,GAAI;AAAA;IAEtD,KAAK,OAAO;AACR,YAAM,YAAY,KAAK,IAAI,KAAK;AAChC,UAAI,OAAO,UAAU,YAAY,aAAa;AAC1C,cAAM,IAAI,MAAM,oCAAoC,KAAK,EAAE;AAAA;AAE/D,YAAM,UAAU,KAAK,IAAK,IAAG,UAAU;AACvC,WAAK,WAAW,IAAI,OAAO,EAAE,SAAS,UAAU,SAAS,SAAS;AAAA;IAEtE,IAAI,OAAO;AACP,YAAM,YAAY,KAAK,WAAW,IAAI,KAAK;AAC3C,UAAI,OAAO,cAAc,aAAa;AAClC,cAAM,IAAI,MAAM,iCAAiC,KAAK,EAAE;AAAA;AAE5D,aAAO;AAAA;IAEX,QAAQ,OAAO;AACX,YAAM,YAAY,KAAK,IAAI,KAAK;AAChC,YAAM,UAAU,UAAU,WAAW,KAAK,IAAG,IAAK,UAAU;AAC5D,aAAO;AAAA;;AAGFA,UAAA,QAAG;AACDA,UAAA,UAAG;;;;;;;;;AClClB,SAAO,eAAe,OAAS,cAAc,EAAE,OAAO,MAAM;AAC9C,QAAA,SAAG;AAAA,EACjB,MAAM,OAAO;AAAA;AAEC,QAAA,SAAG;;;;;;;;ACJjB,WAAO,eAAc,SAAU,cAAc,EAAE,OAAO,MAAM;AAC5D,UAAM,UAAU;AAChB,YAAQ,aAAaJ,aAAkB,GAAE,OAAO;AAAA;;;;ACFhD,SAAO,eAAc,SAAU,cAAc,EAAE,OAAO,MAAM;AAC5D,QAAM,UAAU;AAChB,UAAQ,aAAaA,aAAkB,GAAE,OAAO;AAChD,UAAQ,aAAaC,eAAkB,GAAE,OAAO;AAChD,UAAQ,aAAaI,aAAkB,GAAE,OAAO;AAChD,UAAQ,aAAaC,iBAAsB,GAAE,OAAO;;ACNpD,MAAMV,WAAS,cAAc,UAAU;ACAwhC,MAAM,EAAC;AAAA,EAAC,YAAY,GAAE;AAAC,SAAK,OAAK,GAAE,KAAK,WAAS,MAAK,KAAK,UAAQ;AAAA,EAAC;AAAC;AAA0C,MAAM,EAAC;AAAA,EAAC,YAAY,GAAE;AAAC,SAAK,SAAO;AAAA,EAAC;AAAC;ACA88B,MAAC,KAAG,MAAK,KAAG,GAAE,KAAG,UAAS,KAAG,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAI,KAAG,EAAC,MAAK,IAAG,QAAO,SAAQ,YAAW,OAAG,UAAS,gCAA+B,GAA0c,KAAG,iCAA6J,KAAG,YAAiB,KAAG,oBAAmB,KAAG,WAAU,IAAEW,gBAAG,KAAG,UAAS,IAAE,EAAC,mBAAkB,EAAC,KAAI,EAAC,KAAIlD,IAAAA,cAAE,QAAO,MAAG,KAAI,KAAI,GAAE,KAAI,EAAC,KAAIA,IAAC,cAAC,QAAO,OAAG,KAAI,KAAI,GAAE,QAAO,EAAC,KAAIA,IAAAA,cAAE,QAAO,OAAG,KAAI,KAAI,GAAE,YAAW,EAAC,KAAIA,kBAAE,QAAO,OAAG,KAAI,KAAI,EAAC,GAAE,kBAAiB,EAAC,KAAI,EAAC,KAAIA,IAAC,cAAC,QAAO,OAAG,KAAI,KAAI,GAAE,KAAI,EAAC,KAAIA,IAAAA,cAAE,QAAO,OAAG,KAAI,KAAI,EAAC,GAAE,kBAAiB,EAAC,KAAI,EAAC,KAAImD,aAAE,QAAO,OAAG,KAAI,KAAI,GAAE,KAAI,EAAC,KAAIA,IAAC,SAAC,QAAO,OAAG,KAAI,KAAI,EAAC,GAAE,kBAAiB,EAAC,KAAI,EAAC,KAAIA,IAAC,SAAC,QAAO,OAAG,KAAI,KAAI,GAAE,KAAI,EAAC,KAAIA,aAAE,QAAO,OAAG,KAAI,KAAI,EAAC,GAAE,mBAAkB,EAAC,KAAI,EAAC,KAAInD,IAAC,cAAC,QAAO,MAAG,KAAI,KAAI,GAAE,KAAI,EAAC,KAAIA,IAAC,cAAC,QAAO,OAAG,KAAI,KAAI,EAAC,GAAE,iBAAgB,EAAC,KAAI,EAAC,KAAIA,IAAAA,cAAE,QAAO,MAAG,KAAI,KAAI,GAAE,KAAI,EAAC,KAAIA,IAAC,cAAC,QAAO,OAAG,KAAI,KAAI,EAAC,GAAE,kBAAiB,EAAC,KAAI,EAAC,KAAImD,IAAAA,SAAE,QAAO,OAAG,KAAI,KAAI,GAAE,KAAI,EAAC,KAAIA,IAAAA,SAAE,QAAO,OAAG,KAAI,KAAI,EAAC,GAAE,gBAAe,EAAC,KAAI,EAAC,KAAIA,IAAC,SAAC,QAAO,OAAG,KAAI,KAAI,GAAE,KAAI,EAAC,KAAIA,IAAAA,SAAE,QAAO,OAAG,KAAI,KAAI,EAAC,GAAE,wBAAuB,EAAC,KAAI,EAAC,KAAIC,cAAG,QAAO,MAAG,KAAI,KAAI,GAAE,KAAI,EAAC,KAAIA,IAAE,UAAC,QAAO,OAAG,KAAI,KAAI,GAAE,QAAO,EAAC,KAAIpD,IAAAA,cAAE,QAAO,OAAG,KAAI,KAAI,GAAE,YAAW,EAAC,KAAIA,IAAC,cAAC,QAAO,OAAG,KAAI,KAAI,EAAC,EAAC,GAAE,KAAG,EAAC,KAAIA,IAAAA,cAAE,KAAIkD,IAAE,WAAA,GAAE,IAAE,EAAC,MAAK,QAAO,QAAO,SAAQ,GAAE,KAAG,WAAU,KAAG,CAAC,qBAAoB,qBAAoB,kBAAiB,wBAAwB,GAAE,KAAG,MAAY,KAAG,QAAO,KAAG,YAAW,KAAG,iBAAgB,KAAG,YAAW,KAAG,GAAG,EAAE,IAAI,GAAG,IAAI,EAAE,KAAI,KAAG,GAAG,EAAE;AAAW,IAAI,KAAG,OAAO,gBAAe,KAAG,OAAO,kBAAiB,KAAG,OAAO,2BAA0B,KAAG,OAAO,uBAAsB,KAAG,OAAO,UAAU,gBAAe,KAAG,OAAO,UAAU,sBAAqB,KAAG,CAAC,GAAE,GAAE,MAAI,KAAK,IAAE,GAAG,GAAE,GAAE,EAAC,YAAW,MAAG,cAAa,MAAG,UAAS,MAAG,OAAM,EAAC,CAAC,IAAE,EAAE,CAAC,IAAE,GAAE,IAAE,CAAC,GAAE,MAAI;AAAC,WAAQ,KAAK,MAAI,IAAE,CAAE,GAAE,IAAG,KAAK,GAAE,CAAC,KAAG,GAAG,GAAE,GAAE,EAAE,CAAC,CAAC;AAAE,MAAG,GAAG,UAAQ,KAAK,GAAG,CAAC,EAAE,IAAG,KAAK,GAAE,CAAC,KAAG,GAAG,GAAE,GAAE,EAAE,CAAC,CAAC;AAAE,SAAO;AAAC,GAAE,IAAE,CAAC,GAAE,MAAI,GAAG,GAAE,GAAG,CAAC,CAAC;AAAE,MAAM,WAAWG,EAAE;AAAA,EAAC,YAAY,GAAE;AAAC,UAAM,CAAC,GAAE,KAAK,OAAK,IAAG,KAAK,SAAO,IAAI,MAAG,KAAK,cAAY,OAAG,KAAK,eAAa,EAAC,OAAM,EAAE,MAAK,OAAM,CAAE,EAAA,GAAE,KAAK,sBAAoB,EAAC,OAAM,EAAE,MAAK,OAAM,CAAE,EAAA,GAAE,KAAK,oBAAkBC,IAAE,YAAC,KAAK,2BAAyB,oBAAI,OAAI,KAAK,qBAAmB,oBAAI,OAAI,KAAK,uBAAqB,KAAI,KAAK,oBAAkB,CAAA,GAAG,KAAK,OAAK,YAAS;AAAC,WAAK,gBAAc,MAAM,KAAK,QAAS,GAAC,KAAK,sBAAuB,GAAC,KAAK,sBAAqB,GAAG,KAAK,sBAAqB,GAAG,MAAM,KAAK,0BAAyB,GAAG,KAAK,OAAO,KAAK,QAAQ,SAAS,EAAC,SAAQ,OAAO,KAAK,CAAC,EAAC,CAAC,GAAE,KAAK,cAAY,MAAG,WAAW,MAAI;AAAC,aAAK,oBAAoB,QAAM,KAAK,0BAA2B,GAAC,KAAK,2BAA4B;AAAA,MAAA,GAAEC,IAAE,cAAC,KAAK,iBAAiB,CAAC;AAAA,IAAE,GAAE,KAAK,UAAQ,OAAM,MAAG;AAAC,WAAK,cAAa,GAAG,MAAM,KAAK,0BAA2B;AAAC,YAAM,IAAE,EAAE,EAAE,CAAE,GAAC,CAAC,GAAE,EAAC,oBAAmB,EAAE,sBAAoB,CAAA,GAAG,oBAAmB,EAAE,sBAAoB,CAAE,EAAA,CAAC;AAAE,YAAM,KAAK,eAAe,CAAC;AAAE,YAAK,EAAC,cAAa,GAAE,oBAAmB9D,IAAE,oBAAmB,GAAE,mBAAkBW,IAAE,QAAO,EAAC,IAAE;AAAE,UAAIT,KAAE,GAAE,GAAEwC,KAAE;AAAG,UAAG;AAAC,QAAAxC,OAAIwC,KAAE,KAAK,OAAO,KAAK,QAAQ,SAAS,IAAIxC,EAAC,EAAE;AAAA,MAAO,SAAOW,IAAE;AAAC,cAAM,KAAK,OAAO,OAAO,MAAM,4BAA4BX,EAAC,UAAU,GAAEW;AAAA,MAAC;AAAC,UAAG,CAACX,MAAG,CAACwC,IAAE;AAAC,cAAK,EAAC,OAAM7B,IAAE,KAAIkB,GAAC,IAAE,MAAM,KAAK,OAAO,KAAK,QAAQ;AAAS,QAAA7B,KAAEW,IAAE,IAAEkB;AAAA,MAAC;AAAC,UAAG,CAAC7B,IAAE;AAAC,cAAK,EAAC,SAAQW,GAAC,IAAEkD,iBAAE,mBAAkB,4BAA4B7D,EAAC,EAAE;AAAE,cAAM,IAAI,MAAMW,EAAC;AAAA,MAAC;AAAC,YAAM,IAAE,MAAM,KAAK,OAAO,KAAK,OAAO,gBAAiB,GAAC,IAAE,EAAE,kBAAkB,IAAI,OAAKN,IAAAA,cAAEiC,KAAEwB,WAAE,CAAC,GAAE,IAAE,EAAE,EAAC,oBAAmBhE,IAAE,oBAAmB,GAAE,QAAO,KAAG,CAAC,EAAC,UAASiE,yBAAE,CAAC,GAAE,UAAS,EAAC,WAAU,GAAE,UAAS,KAAK,OAAO,SAAQ,GAAE,iBAAgBzB,IAAE,cAAatC,GAAC,GAAES,MAAG,EAAC,mBAAkBA,GAAC,CAAC,GAAE,EAAC,QAAOD,IAAE,SAAQU,IAAE,MAAK8C,GAAC,IAAEC,qBAAE,GAAE,EAAE;AAAE,WAAK,OAAO,KAAKvB,YAAE,iBAAiB,GAAE,OAAM,EAAC,OAAM/B,IAAE,SAAQkB,GAAC,MAAI;AAAC,YAAGlB,GAAE,CAAAH,GAAEG,EAAC;AAAA,iBAAUkB,IAAE;AAAC,UAAAA,GAAE,KAAK,YAAU;AAAE,gBAAMqC,KAAE,EAAE,EAAE,IAAGrC,EAAC,GAAE,EAAC,cAAa,EAAE,cAAa,oBAAmB,EAAE,oBAAmB,oBAAmB,EAAE,oBAAmB,eAAcP,gBAAE,MAAK,CAAC;AAAE,gBAAM,KAAK,OAAO,QAAQ,IAAIO,GAAE,OAAMqC,EAAC,GAAE,MAAM,KAAK,UAAUrC,GAAE,OAAMA,GAAE,MAAM,GAAE7B,MAAG,MAAM,KAAK,OAAO,KAAK,QAAQ,eAAe,EAAC,OAAMA,IAAE,UAAS6B,GAAE,KAAK,SAAQ,CAAC,GAAE,KAAK,yBAAyBqC,EAAC,GAAEhD,GAAEgD,EAAC;AAAA,QAAC;AAAA,MAAC,CAAC;AAAE,YAAM,IAAE,MAAM,KAAK,YAAY,EAAC,OAAMlE,IAAE,QAAO,qBAAoB,QAAO,GAAE,sBAAqB,KAAE,CAAC;AAAE,aAAO,MAAM,KAAK,YAAY,GAAE,EAAE,EAAC,IAAG,EAAC,GAAE,CAAC,CAAC,GAAE,EAAC,KAAI,GAAE,UAASgE,GAAC;AAAA,IAAC,GAAE,KAAK,OAAK,OAAM,MAAG;AAAC,WAAK,cAAe,GAAC,MAAM,KAAK,0BAA2B;AAAC,UAAG;AAAC,eAAO,MAAM,KAAK,OAAO,KAAK,QAAQ,KAAK,CAAC;AAAA,MAAC,SAAO,GAAE;AAAC,cAAM,KAAK,OAAO,OAAO,MAAM,eAAe,GAAE;AAAA,MAAC;AAAA,IAAC,GAAE,KAAK,UAAQ,OAAM,MAAG;AAAC,UAAI,GAAE,GAAElE;AAAE,YAAM,IAAE,KAAK,OAAO,KAAK,YAAY,YAAY,EAAC,YAAW,EAAC,QAAO,IAAE,uBAAG,OAAK,OAAK,SAAO,EAAE,SAAQ,GAAG,OAAM,CAACqE,4BAAE,uBAAuB,EAAC,EAAC,CAAC;AAAE,UAAG;AAAC,aAAK,cAAe,GAAC,MAAM,KAAK;MAA2B,SAAO,GAAE;AAAC,cAAM,EAAE,SAASC,4BAAE,sBAAsB,GAAE;AAAA,MAAC;AAAC,UAAG;AAAC,cAAM,KAAK,kBAAkB,uBAAG,EAAE;AAAA,MAAC,SAAO,GAAE;AAAC,cAAM,KAAK,OAAO,OAAO,MAAM,6BAA6B,uBAAG,EAAE,UAAU,GAAE,EAAE,SAASA,4BAAE,kBAAkB,GAAE;AAAA,MAAC;AAAC,UAAG;AAAC,cAAM,KAAK,eAAe,CAAC;AAAA,MAAC,SAAO,GAAE;AAAC,cAAM,KAAK,OAAO,OAAO,MAAM,sCAAsC,GAAE,EAAE,SAASA,4BAAE,4CAA4C,GAAE;AAAA,MAAC;AAAC,YAAK,EAAC,IAAG3D,IAAE,eAAc,GAAE,YAAWT,IAAE,mBAAkB,GAAE,eAAcwC,GAAC,IAAE,GAAE,IAAE,KAAK,OAAO,SAAS,IAAI/B,EAAC;AAAE,WAAK,OAAO,KAAK,YAAY,YAAY,EAAC,SAAQ,EAAE,QAAO,CAAC;AAAE,YAAK,EAAC,cAAa,GAAE,UAAS6B,IAAE,oBAAmB,GAAE,oBAAmB9B,GAAC,IAAE;AAAE,UAAIU,MAAG,IAAE,KAAK,OAAO,KAAK,gBAAc,OAAK,SAAO,EAAE,SAAS,EAAC,OAAM,EAAC,CAAC;AAAE,MAAAA,OAAIA,MAAGpB,KAAE,KAAK,OAAO,KAAK,gBAAc,OAAK,SAAOA,GAAE,YAAY,EAAC,MAAKqE,4BAAE,yBAAwB,YAAW,EAAC,OAAM,GAAE,OAAM,CAACA,4BAAE,yBAAwBA,4BAAE,qCAAqC,EAAC,EAAC,CAAC;AAAG,YAAMH,KAAE,MAAM,KAAK,OAAO,KAAK,OAAO,gBAAe,GAAG,IAAE1B,GAAE,WAAU3B,KAAE,MAAM,KAAK,OAAO,KAAK,OAAO,kBAAkBqD,IAAE,CAAC,GAAEnC,KAAE,EAAE,EAAE,EAAC,OAAM,EAAC,UAAS,KAAG,MAAK,GAAE,YAAW7B,IAAE,YAAW,EAAC,WAAUgE,IAAE,UAAS,KAAK,OAAO,SAAQ,GAAE,QAAOF,WAAE,CAAC,EAAC,GAAE,KAAG,EAAC,mBAAkB,EAAC,CAAC,GAAEtB,MAAG,EAAC,eAAcA,GAAC,CAAC,GAAE0B,KAAE5C,gBAAE;AAAM,MAAAJ,GAAE,SAASiD,4BAAE,yBAAyB;AAAE,UAAG;AAAC,cAAM,KAAK,OAAO,KAAK,QAAQ,UAAUxD,IAAE,EAAC,eAAcuD,GAAC,CAAC;AAAA,MAAC,SAAO,GAAE;AAAC,cAAMhD,GAAE,SAASkD,4BAAE,+BAA+B,GAAE;AAAA,MAAC;AAAC,MAAAlD,GAAE,SAASiD,4BAAE,+BAA+B;AAAE,YAAM,IAAE,EAAE,EAAE,CAAA,GAAGtC,EAAC,GAAE,EAAC,OAAMlB,IAAE,oBAAmB,GAAE,oBAAmBH,IAAE,cAAa,GAAE,cAAa,OAAG,MAAKqB,GAAE,YAAW,MAAK,EAAC,WAAUS,GAAE,WAAU,UAASA,GAAE,SAAQ,GAAE,YAAW0B,IAAE,eAAc1C,gBAAE,MAAK,CAAC;AAAE,YAAM,KAAK,OAAO,QAAQ,IAAIX,IAAE,CAAC,GAAEO,GAAE,SAASiD,4BAAE,aAAa;AAAE,UAAG;AAAC,QAAAjD,GAAE,SAASiD,4BAAE,yBAAyB,GAAE,MAAM,KAAK,YAAY,EAAC,OAAMxD,IAAE,QAAO,oBAAmB,QAAOkB,IAAE,sBAAqB,KAAE,CAAC,EAAE,MAAM,OAAG;AAAC,gBAAMX,MAAA,gBAAAA,GAAG,SAASkD,4BAAE,iCAAgC;AAAA,QAAC,CAAC,GAAElD,GAAE,SAASiD,4BAAE,8BAA8B,GAAEjD,GAAE,SAASiD,4BAAE,0BAA0B,GAAE,MAAM,KAAK,WAAW,EAAC,IAAG1D,IAAE,OAAM,GAAE,QAAO,EAAC,OAAM,EAAC,UAAS,KAAG,MAAK,GAAE,oBAAmBuD,GAAC,GAAE,sBAAqB,KAAE,CAAC,EAAE,MAAM,OAAG;AAAC,gBAAM9C,MAAA,gBAAAA,GAAG,SAASkD,4BAAE,kCAAiC;AAAA,QAAC,CAAC,GAAElD,GAAE,SAASiD,4BAAE,+BAA+B;AAAA,MAAC,SAAO,GAAE;AAAC,cAAM,KAAK,OAAO,OAAO,MAAM,CAAC,GAAE,KAAK,OAAO,QAAQ,OAAOxD,IAAE0D,YAAE,mBAAmB,CAAC,GAAE,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY1D,EAAC,GAAE;AAAA,MAAC;AAAC,aAAO,KAAK,OAAO,KAAK,YAAY,YAAY,EAAC,SAAQO,GAAE,QAAO,CAAC,GAAE,MAAM,KAAK,OAAO,KAAK,QAAQ,eAAe,EAAC,OAAM,GAAE,UAASoB,GAAE,SAAQ,CAAC,GAAE,MAAM,KAAK,OAAO,SAAS,OAAO7B,IAAE4D,YAAE,mBAAmB,CAAC,GAAE,MAAM,KAAK,OAAO,KAAK,QAAQ,SAAS,EAAC,OAAM,EAAC,CAAC,GAAE,MAAM,KAAK,UAAU1D,IAAEmD,WAAE,CAAC,CAAC,GAAE,EAAC,OAAMnD,IAAE,cAAa,MAAI,QAAQ,QAAQ,KAAK,OAAO,QAAQ,IAAIA,EAAC,CAAC,EAAC;AAAA,IAAC,GAAE,KAAK,SAAO,OAAM,MAAG;AAAC,WAAK,cAAe,GAAC,MAAM,KAAK;AAA4B,UAAG;AAAC,cAAM,KAAK,cAAc,CAAC;AAAA,MAAC,SAAO,GAAE;AAAC,cAAM,KAAK,OAAO,OAAO,MAAM,oCAAoC,GAAE;AAAA,MAAC;AAAC,YAAK,EAAC,IAAG,GAAE,QAAO,EAAC,IAAE;AAAE,UAAIb;AAAE,UAAG;AAAC,QAAAA,KAAE,KAAK,OAAO,SAAS,IAAI,CAAC,EAAE;AAAA,MAAY,SAAO,GAAE;AAAC,cAAM,KAAK,OAAO,OAAO,MAAM,4BAA4B,CAAC,UAAU,GAAE;AAAA,MAAC;AAAC,MAAAA,OAAI,MAAM,KAAK,UAAU,EAAC,IAAG,GAAE,OAAMA,IAAE,OAAM,GAAE,SAAQ,EAAE,kBAAkB,OAAM,CAAC,GAAE,MAAM,KAAK,OAAO,SAAS,OAAO,GAAEuE,YAAE,mBAAmB,CAAC;AAAA,IAAE,GAAE,KAAK,SAAO,OAAM,MAAG;AAAC,WAAK,iBAAgB,MAAM,KAAK,0BAAyB;AAAG,UAAG;AAAC,cAAM,KAAK,cAAc,CAAC;AAAA,MAAC,SAAO7B,IAAE;AAAC,cAAM,KAAK,OAAO,OAAO,MAAM,oCAAoC,GAAEA;AAAA,MAAC;AAAC,YAAK,EAAC,OAAM,GAAE,YAAW,EAAC,IAAE,GAAE,EAAC,MAAK1C,IAAE,SAAQ,GAAE,QAAOW,GAAC,IAAEwD,wBAAI,IAAEK,UAAG,GAACtE,KAAEuE,eAAI,EAAC,SAAQ,GAAG,IAAE,KAAK,OAAO,QAAQ,IAAI,CAAC,EAAE;AAAW,aAAO,KAAK,OAAO,KAAK7B,YAAE,kBAAiB,CAAC,GAAE,CAAC,EAAC,OAAMF,GAAC,MAAI;AAAC,QAAAA,KAAE/B,GAAE+B,EAAC,IAAE,EAAG;AAAA,MAAA,CAAC,GAAE,MAAM,KAAK,OAAO,QAAQ,OAAO,GAAE,EAAC,YAAW,EAAC,CAAC,GAAE,MAAM,KAAK,YAAY,EAAC,OAAM,GAAE,QAAO,oBAAmB,QAAO,EAAC,YAAW,EAAC,GAAE,sBAAqB,MAAG,aAAY,GAAE,YAAWxC,GAAC,CAAC,EAAE,MAAM,CAAAwC,OAAG;AAAC,aAAK,OAAO,OAAO,MAAMA,EAAC,GAAE,KAAK,OAAO,QAAQ,OAAO,GAAE,EAAC,YAAW,EAAC,CAAC,GAAE/B,GAAE+B,EAAC;AAAA,MAAC,CAAC,GAAE,EAAC,cAAa1C,GAAC;AAAA,IAAC,GAAE,KAAK,SAAO,OAAM,MAAG;AAAC,WAAK,cAAe,GAAC,MAAM,KAAK;AAA4B,UAAG;AAAC,cAAM,KAAK,cAAc,CAAC;AAAA,MAAC,SAAO,GAAE;AAAC,cAAM,KAAK,OAAO,OAAO,MAAM,oCAAoC,GAAE;AAAA,MAAC;AAAC,YAAK,EAAC,OAAM,EAAC,IAAE,GAAE,IAAEwE,UAAG,GAAC,EAAC,MAAKxE,IAAE,SAAQ,GAAE,QAAOW,GAAC,IAAEwD,qBAAC;AAAG,aAAO,KAAK,OAAO,KAAKvB,YAAE,kBAAiB,CAAC,GAAE,CAAC,EAAC,OAAM,EAAC,MAAI;AAAC,YAAEjC,GAAE,CAAC,IAAE,EAAC;AAAA,MAAE,CAAC,GAAE,MAAM,KAAK,UAAU,GAAEqD,WAAE,CAAC,CAAC,GAAE,KAAK,YAAY,EAAC,OAAM,GAAE,QAAO,oBAAmB,QAAO,CAAA,GAAG,aAAY,GAAE,sBAAqB,KAAE,CAAC,EAAE,MAAM,OAAG;AAAC,QAAArD,GAAE,CAAC;AAAA,MAAC,CAAC,GAAE,EAAC,cAAaX,GAAC;AAAA,IAAC,GAAE,KAAK,UAAQ,OAAM,MAAG;AAAC,WAAK,cAAe;AAAC,UAAG;AAAC,cAAM,KAAK,eAAe,CAAC;AAAA,MAAC,SAAOwC,IAAE;AAAC,cAAM,KAAK,OAAO,OAAO,MAAM,sCAAsC,GAAEA;AAAA,MAAC;AAAC,YAAK,EAAC,SAAQ,GAAE,SAAQ,GAAE,OAAMxC,IAAE,QAAO,IAAE,EAAE,kBAAkB,IAAI,IAAG,IAAE,GAAEW,KAAE,KAAK,OAAO,QAAQ,IAAIX,EAAC;AAAE,OAAAW,MAAA,gBAAAA,GAAG,mBAAgBa,gBAAE,SAAO,MAAM,KAAK,0BAA2B;AAAC,YAAM,IAAEgD,aAAItE,KAAEuE,eAAI,EAAC,SAAQ,GAAG,EAAC,MAAK,GAAE,SAAQ/B,IAAE,QAAO,EAAC,IAAEyB,qBAAE,GAAE,oCAAoC;AAAE,WAAK,OAAO,KAAKvB,YAAE,mBAAkB,CAAC,GAAE,CAAC,EAAC,OAAMJ,IAAE,QAAO,EAAC,MAAI;AAAC,QAAAA,KAAE,EAAEA,EAAC,IAAEE,GAAE,CAAC;AAAA,MAAC,CAAC;AAAE,YAAM,IAAE,KAAK,oBAAoB/B,GAAE,KAAK,UAASA,GAAE,aAAa;AAAE,aAAO,KAAG,MAAM,KAAK,YAAY,EAAC,aAAY,GAAE,YAAWT,IAAE,OAAMF,IAAE,QAAO,qBAAoB,QAAO,EAAC,SAAQ,EAAE,EAAE,CAAA,GAAG,CAAC,GAAE,EAAC,iBAAgBgE,WAAE,CAAC,EAAC,CAAC,GAAE,SAAQ,EAAC,GAAE,QAAO,GAAE,sBAAqB,MAAG,SAAQ,EAAC,CAAC,EAAE,MAAM,CAAAxB,OAAG,EAAEA,EAAC,CAAC,GAAE,KAAK,OAAO,OAAO,KAAK,wBAAuB,EAAC,OAAMxC,IAAE,SAAQ,GAAE,SAAQ,GAAE,IAAG,EAAC,CAAC,GAAE,MAAM,EAAG,KAAE,MAAM,QAAQ,IAAI,CAAC,IAAI,QAAQ,OAAMwC,OAAG;AAAC,cAAM,KAAK,YAAY,EAAC,aAAY,GAAE,YAAWtC,IAAE,OAAMF,IAAE,QAAO,qBAAoB,QAAO,EAAC,SAAQ,EAAE,EAAE,CAAE,GAAC,CAAC,GAAE,EAAC,iBAAgBgE,WAAE,CAAC,EAAC,CAAC,GAAE,SAAQ,EAAC,GAAE,QAAO,GAAE,sBAAqB,KAAE,CAAC,EAAE,MAAM,OAAG,EAAE,CAAC,CAAC,GAAE,KAAK,OAAO,OAAO,KAAK,wBAAuB,EAAC,OAAMhE,IAAE,SAAQ,GAAE,SAAQ,GAAE,IAAG,EAAC,CAAC,GAAEwC,GAAC;AAAA,MAAE,CAAC,GAAE,IAAI,QAAQ,OAAMA,OAAG;AAAC,YAAI;AAAE,YAAG,GAAG,IAAE7B,GAAE,kBAAgB,QAAM,EAAE,kBAAiB;AAAC,gBAAMD,KAAE,MAAMgE,YAAG,KAAK,OAAO,KAAK,SAAQ,EAAE;AAAE,gBAAMC,uBAAG,EAAC,IAAG,GAAE,OAAM3E,IAAE,YAAWU,GAAC,CAAC;AAAA,QAAC;AAAC,QAAA8B,GAAC;AAAA,MAAE,CAAC,GAAE,EAAC,CAAE,CAAC,EAAE,KAAK,CAAAA,OAAGA,GAAE,CAAC,CAAC;AAAA,IAAC,GAAE,KAAK,UAAQ,OAAM,MAAG;AAAC,WAAK,iBAAgB,MAAM,KAAK,eAAe,CAAC;AAAE,YAAK,EAAC,OAAM,GAAE,UAAS,EAAC,IAAE,GAAE,EAAC,IAAGxC,GAAC,IAAE,GAAE,IAAE,KAAK,OAAO,QAAQ,IAAI,CAAC;AAAE,QAAE,kBAAgBwB,gBAAE,SAAO,MAAM,KAAK,0BAA2B;AAAC,YAAMb,KAAE,KAAK,oBAAoB,EAAE,KAAK,UAAS,EAAE,aAAa;AAAEiE,sBAAE,CAAC,IAAE,MAAM,KAAK,WAAW,EAAC,IAAG5E,IAAE,OAAM,GAAE,QAAO,EAAE,QAAO,sBAAqB,MAAG,SAAQW,GAAC,CAAC,IAAEkE,eAAE,CAAC,KAAG,MAAM,KAAK,UAAU,EAAC,IAAG7E,IAAE,OAAM,GAAE,OAAM,EAAE,OAAM,SAAQW,GAAC,CAAC,GAAE,KAAK,qBAAqB,CAAC;AAAA,IAAC,GAAE,KAAK,OAAK,OAAM,MAAG;AAAC,WAAK,cAAe,GAAC,MAAM,KAAK,0BAAyB;AAAG,UAAG;AAAC,cAAM,KAAK,YAAY,CAAC;AAAA,MAAC,SAAO,GAAE;AAAC,cAAM,KAAK,OAAO,OAAO,MAAM,gCAAgC,GAAE;AAAA,MAAC;AAAC,YAAK,EAAC,OAAM,EAAC,IAAE;AAAE,UAAG,KAAK,OAAO,QAAQ,KAAK,SAAS,CAAC,GAAE;AAAC,cAAM,IAAE6D,UAAG,GAACxE,KAAEyE,eAAI,EAAC,SAAU,GAAC,EAAC,MAAK,GAAE,SAAQ9D,IAAE,QAAO,EAAC,IAAEwD,qBAAC;AAAG,aAAK,OAAO,KAAKvB,YAAE,gBAAe,CAAC,GAAE,CAAC,EAAC,OAAM1C,GAAC,MAAI;AAAC,UAAAA,KAAE,EAAEA,EAAC,IAAES,GAAG;AAAA,QAAA,CAAC,GAAE,MAAM,QAAQ,IAAI,CAAC,KAAK,YAAY,EAAC,OAAM,GAAE,QAAO,kBAAiB,QAAO,CAAE,GAAC,sBAAqB,MAAG,aAAY,GAAE,YAAWX,GAAC,CAAC,GAAE,EAAG,CAAA,CAAC;AAAA,MAAC,MAAM,MAAK,OAAO,KAAK,QAAQ,SAAS,KAAK,SAAS,CAAC,KAAG,MAAM,KAAK,OAAO,KAAK,QAAQ,KAAK,EAAC,OAAM,EAAC,CAAC;AAAA,IAAC,GAAE,KAAK,OAAK,OAAM,MAAG;AAAC,WAAK,cAAa,GAAG,MAAM,KAAK,0BAAyB,GAAG,MAAM,KAAK,YAAY,CAAC;AAAE,YAAK,EAAC,OAAM,GAAE,OAAM,GAAE,SAAQA,GAAC,IAAE,GAAE,IAAEyE,eAAE,EAAG;AAAW,YAAM,KAAK,YAAY,EAAC,OAAM,GAAE,QAAO,mBAAkB,QAAO,EAAC,OAAM,GAAE,SAAQzE,GAAC,GAAE,sBAAqB,MAAG,YAAW,EAAC,CAAC;AAAA,IAAC,GAAE,KAAK,aAAW,OAAM,MAAG;AAAC,WAAK,cAAe,GAAC,MAAM,KAAK,0BAA2B,GAAC,MAAM,KAAK,kBAAkB,CAAC;AAAE,YAAK,EAAC,OAAM,EAAC,IAAE;AAAE,UAAG,KAAK,OAAO,QAAQ,KAAK,SAAS,CAAC,EAAE,OAAM,KAAK,YAAY,EAAC,OAAM,GAAE,QAAO,oBAAmB,QAAOuE,YAAE,mBAAmB,GAAE,sBAAqB,KAAE,CAAC,GAAE,MAAM,KAAK,cAAc,EAAC,OAAM,GAAE,WAAU,MAAE,CAAC;AAAA,eAAU,KAAK,OAAO,KAAK,QAAQ,SAAS,KAAK,SAAS,CAAC,EAAE,OAAM,KAAK,OAAO,KAAK,QAAQ,WAAW,EAAC,OAAM,EAAC,CAAC;AAAA,WAAM;AAAC,cAAK,EAAC,SAAQ,EAAC,IAAER,iBAAE,oBAAmB,uCAAuC,CAAC,EAAE;AAAE,cAAM,IAAI,MAAM,CAAC;AAAA,MAAC;AAAA,IAAC,GAAE,KAAK,OAAK,QAAI,KAAK,cAAe,GAAC,KAAK,OAAO,QAAQ,SAAS,OAAO,OAAGe,oBAAG,GAAE,CAAC,CAAC,IAAG,KAAK,4BAA0B,MAAI,KAAK,OAAO,eAAe,OAAM,GAAG,KAAK,eAAa,OAAM,GAAE,MAAI;AAAC,UAAI;AAAE,WAAK,cAAa,GAAG,KAAK,oBAAoB,CAAC;AAAE,YAAM9E,KAAE,KAAG,KAAK,OAAO,KAAK,sBAAsB,SAAS,CAAC,OAAK,IAAE,KAAK,OAAO,SAAS,aAAW,OAAK,SAAO,EAAE,WAAU,IAAEA,KAAEwB,gBAAE,YAAUA,gBAAE;AAAM,YAAIA,gBAAE,SAAO,MAAM,KAAK,0BAA2B;AAAC,YAAK,EAAC,QAAOb,IAAE,WAAU,IAAE,IAAG,KAAIT,IAAE,QAAO,GAAE,OAAMwC,IAAE,MAAK,GAAE,KAAI,GAAE,KAAIF,IAAE,SAAQ,IAAE,CAAA,GAAG,QAAO9B,GAAC,IAAE,GAAEU,KAAE,CAAC,GAAG,EAAE,aAAW,CAAE,CAAA,GAAE,EAAC,OAAM8C,IAAE,KAAI,EAAC,IAAE,MAAM,KAAK,OAAO,KAAK,QAAQ,OAAO,EAAC,SAAQ,CAAC,wBAAwB,GAAE,eAAc,EAAC,CAAC;AAAE,WAAK,OAAO,OAAO,KAAK,EAAC,SAAQ,yBAAwB,SAAQ,EAAC,OAAMA,IAAE,KAAI,EAAC,EAAC,CAAC;AAAE,YAAMrD,KAAE,MAAM,KAAK,OAAO,KAAK,OAAO,gBAAe,GAAGkB,KAAEgD,QAAGlE,EAAC;AAAE,UAAG,MAAM,QAAQ,IAAI,CAAC,KAAK,OAAO,KAAK,SAAS,IAAI,IAAG,EAAC,eAAckB,IAAE,WAAUlB,GAAC,CAAC,GAAE,KAAK,OAAO,KAAK,cAAc,IAAIkB,IAAE,EAAC,OAAMA,IAAE,cAAamC,GAAC,CAAC,CAAC,CAAC,GAAE,MAAM,KAAK,OAAO,KAAK,QAAQ,UAAUnC,IAAE,EAAC,eAAc,EAAC,CAAC,GAAE,KAAK,OAAO,OAAO,KAAK,yCAAyCmC,EAAC,EAAE,GAAE,EAAE,SAAO,GAAE;AAAC,cAAK,EAAC,WAAU,EAAC,IAAEc,aAAGrE,GAAE,CAAC,CAAC;AAAE,YAAIsE,KAAEC,mBAAG,GAAE,WAAU,CAAC;AAAEC,8BAAG/D,EAAC,MAAI6D,KAAEG,mBAAGH,IAAE7D,GAAE,IAAK,CAAA,IAAGA,GAAE,KAAK6D,EAAC;AAAA,MAAC;AAAC,YAAMb,KAAE1D,MAAGA,KAAE,EAAE,uBAAuB,IAAI,MAAIA,KAAE,EAAE,uBAAuB,IAAI,KAAI,IAAE,EAAC,aAAY,EAAC,MAAK,KAAG,WAAU,QAAOC,IAAE,WAAU,GAAE,KAAIT,IAAE,QAAO,GAAE,SAAQ,KAAI,OAAMwC,IAAE,MAAI,oBAAI,KAAI,GAAG,YAAW,GAAG,KAAI,GAAE,KAAIF,IAAE,WAAUpB,GAAC,GAAE,WAAU,EAAC,WAAUP,IAAE,UAAS,KAAK,OAAO,SAAQ,GAAE,iBAAgBmD,WAAEI,EAAC,EAAC,GAAE,IAAE,EAAC,QAAO,EAAC,QAAOzD,IAAE,SAAQ,CAAC,GAAG,oBAAI,IAAI,CAAC,iBAAgB,GAAG,CAAC,CAAC,CAAC,GAAE,QAAO,CAAC,gBAAe,iBAAiB,EAAC,EAAC,GAAE,KAAG,EAAC,oBAAmB,CAAA,GAAG,oBAAmB,GAAE,QAAO,CAAC,EAAC,UAAS,MAAK,CAAC,GAAE,cAAauD,IAAE,UAAS,EAAC,WAAUrD,IAAE,UAAS,KAAK,OAAO,SAAQ,GAAE,iBAAgBmD,WAAE,EAAE,kBAAkB,IAAI,GAAG,EAAC,GAAE,EAAC,MAAK,IAAG,SAAQ,IAAG,QAAO,GAAE,IAAEG,qBAAEC,IAAE,iBAAiB,GAAE,KAAG,OAAM,EAAC,OAAM,GAAE,SAAQa,GAAC,MAAI;AAAC,YAAG,KAAK,OAAO,IAAIrC,YAAE,mBAAkB,CAAC,GAAE,EAAE,GAAE,EAAE,IAAG,CAAC;AAAA,iBAAUqC,IAAE;AAAC,UAAAA,GAAE,KAAK,YAAUpE,IAAE,MAAM,KAAK,OAAO,QAAQ,IAAIoE,GAAE,OAAMA,EAAC,GAAE,MAAM,KAAK,UAAUA,GAAE,OAAMA,GAAE,MAAM,GAAEf,MAAG,MAAM,KAAK,OAAO,KAAK,QAAQ,eAAe,EAAC,OAAMA,IAAE,UAASe,GAAE,KAAK,SAAQ,CAAC;AAAE,gBAAM,KAAG,KAAK,OAAO,QAAQ,IAAIA,GAAE,KAAK;AAAE,gBAAM,KAAK,eAAe,CAAC,GAAE,GAAG,EAAC,SAAQ,GAAE,CAAC;AAAA,QAAC;AAAA,MAAC,GAAE,KAAG,OAAM,MAAG;AAAC,YAAIA,IAAE,IAAG;AAAG,YAAG,MAAM,KAAK,yBAAyB,GAAE,EAAC,SAAQ,aAAY,MAAK,EAAC,CAAC,GAAE,EAAE,OAAM;AAAC,gBAAM,KAAGV,YAAE,yBAAwB,wBAAwB;AAAE,iBAAO,EAAE,MAAM,SAAO,GAAG,OAAK,UAAQ,KAAK,OAAO,IAAI3B,YAAE,iBAAiB,GAAE,EAAE,GAAE,GAAG,EAAE,MAAM,OAAO;AAAA,QAAE;AAAC,cAAM,KAAK,eAAe,CAAC,GAAE,KAAK,OAAO,IAAIA,YAAE,iBAAiB,GAAE,EAAE;AAAE,cAAK,EAAC,QAAO,IAAG,WAAU,EAAC,IAAE,EAAE,QAAO,KAAG,CAAE,GAAC,KAAG;AAAG,mBAAU,MAAM,IAAG;AAAC,gBAAMyC,oBAAG,EAAC,OAAM,IAAG,WAAU,KAAK,OAAO,KAAK,UAAS,CAAC,MAAI,KAAK,OAAO,OAAO,MAAM,IAAG,+BAA+B,GAAE,GAAGd,YAAE,6BAA4B,+BAA+B,CAAC;AAAG,gBAAK,EAAC,GAAE,GAAE,IAAE,IAAG,KAAGY,sBAAG,GAAG,SAAS,GAAE,KAAG,CAACG,wBAAG,GAAG,GAAG,CAAC,GAAE,KAAGC,cAAG,GAAG,GAAG;AAAE,cAAG,IAAG;AAAC,kBAAM,KAAGC,oBAAG,EAAE,GAAE,KAAGC,mBAAG,EAAE;AAAE,eAAG,KAAK,GAAG,EAAE,GAAE,GAAG,KAAK,GAAG,EAAE;AAAA,UAAC;AAAC,qBAAU,MAAM,GAAG,IAAG,KAAK,GAAG,EAAE,IAAI,EAAE,EAAE;AAAA,QAAC;AAAC,cAAM,KAAG,MAAM,KAAK,OAAO,KAAK,OAAO,kBAAkB5E,IAAE,EAAE,SAAS;AAAE,YAAI;AAAG,WAAG,SAAO,MAAI,KAAG,EAAC,OAAM,IAAG,cAAa,MAAG,MAAK,EAAC,WAAUA,IAAE,UAAS,KAAK,OAAO,SAAQ,GAAE,MAAK,GAAE,YAAW,EAAE,WAAU,QAAOmD,WAAE,CAAC,GAAE,oBAAmB,CAAA,GAAG,oBAAmB,CAAA,GAAG,OAAM,EAAC,UAAS,MAAK,GAAE,cAAaE,IAAE,YAAWwB,wBAAG,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,GAAE,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC,GAAE,eAAc,EAAC,GAAE,MAAM,KAAK,OAAO,KAAK,QAAQ,UAAU,IAAG,EAAC,eAAc,EAAC,CAAC,GAAE,MAAM,KAAK,OAAO,QAAQ,IAAI,IAAG,EAAE,GAAExB,MAAG,MAAM,KAAK,OAAO,KAAK,QAAQ,eAAe,EAAC,OAAMA,IAAE,UAAS,EAAE,SAAQ,CAAC,GAAE,KAAG,KAAK,OAAO,QAAQ,IAAI,EAAE,KAAIe,KAAE,KAAK,OAAO,SAAS,aAAW,QAAMA,GAAE,aAAW,KAAG,EAAE,SAAS,aAAW,QAAM,GAAG,aAAW,KAAG,EAAE,SAAS,aAAW,QAAM,GAAG,aAAW,MAAI,KAAK,OAAO,KAAK,wBAAwB,EAAE,SAAS,SAAS,SAAS,GAAE,KAAK,OAAO,QAAQ,OAAO,IAAG,EAAC,eAAczD,gBAAE,UAAS,CAAC,IAAG,GAAG,EAAC,OAAM,IAAG,SAAQ,GAAE,CAAC;AAAA,MAAC,GAAE,IAAEgD,UAAC,GAAG,IAAEA,UAAC;AAAG,WAAK,OAAO,KAAK5B,YAAE,iBAAiB,GAAE,EAAE,GAAE,KAAK,OAAO,KAAKA,YAAE,mBAAkB,CAAC,GAAE,EAAE;AAAE,UAAI;AAAG,UAAG;AAAC,YAAG5C,IAAE;AAAC,gBAAM,IAAE2F,qBAAG,0BAAyB,GAAE,CAAC;AAAE,eAAK,OAAO,KAAK,QAAQ,IAAIzB,IAAE,CAAC;AAAE,gBAAMe,KAAE,MAAM,KAAK,OAAO,KAAK,OAAO,OAAO,IAAG,GAAE,EAAC,MAAKW,QAAG,UAASC,UAAE,CAAC;AAAE,eAAGC,eAAG,GAAE5B,IAAEe,EAAC;AAAA,QAAC,MAAM,OAAM,QAAQ,IAAI,CAAC,KAAK,YAAY,EAAC,OAAMf,IAAE,QAAO,0BAAyB,QAAO,GAAE,QAAO,EAAE,QAAO,sBAAqB,MAAG,aAAY,EAAC,CAAC,GAAE,KAAK,YAAY,EAAC,OAAMA,IAAE,QAAO,qBAAoB,QAAO,IAAG,QAAO,EAAE,kBAAkB,IAAI,KAAI,sBAAqB,MAAG,aAAY,EAAC,CAAC,CAAC,CAAC;AAAA,MAAC,SAAO,GAAE;AAAC,cAAM,KAAK,OAAO,IAAItB,YAAE,iBAAiB,GAAE,EAAE,GAAE,KAAK,OAAO,IAAIA,YAAE,mBAAkB,CAAC,GAAE,EAAE,GAAE;AAAA,MAAC;AAAC,aAAO,MAAM,KAAK,YAAY,GAAE,EAAE,EAAC,IAAG,EAAC,GAAE,EAAE,CAAC,GAAE,MAAM,KAAK,eAAe,GAAE,EAAC,SAAQ,EAAE,EAAE,CAAE,GAAC,CAAC,GAAE,EAAC,eAAc,CAAA,EAAE,CAAC,GAAE,cAAasB,IAAE,eAAc,EAAC,CAAC,GAAE,EAAC,KAAI,MAAI,GAAE,UAAS,GAAE;AAAA,IAAC,GAAE,KAAK,6BAA2B,OAAM,MAAG;AAAC,YAAK,EAAC,IAAG,GAAE,OAAM,EAAC,IAAE,GAAElE,KAAE,KAAK,OAAO,KAAK,YAAY,YAAY,EAAC,YAAW,EAAC,OAAM,EAAE,SAAU,GAAC,OAAM,CAAC+F,iCAAE,qCAAqC,EAAC,EAAC,CAAC;AAAE,UAAG;AAAC,aAAK,cAAe;AAAA,MAAA,SAAOrF,IAAE;AAAC,cAAMV,GAAE,SAASgG,iCAAG,sBAAsB,GAAEtF;AAAA,MAAC;AAAC,YAAM,IAAE,KAAK,sBAAsB,CAAC;AAAE,UAAG,CAAC,EAAE,OAAMV,GAAE,SAASgG,iCAAG,+CAA+C,GAAE,IAAI,MAAM,+CAA+C,CAAC,EAAE;AAAE,YAAMrF,KAAE,EAAE,iBAAea,gBAAE;AAAM,MAAAb,OAAIa,gBAAE,SAAO,MAAM,KAAK,0BAAyB;AAAG,YAAM,IAAE,EAAE,UAAU,WAAUtB,KAAE,MAAM,KAAK,OAAO,KAAK,OAAO,gBAAiB,GAAC,IAAE6E,QAAG,CAAC,GAAErC,KAAE,EAAC,MAAKuD,QAAG,mBAAkB,GAAE,iBAAgB/F,GAAC,GAAE,IAAE,CAAA,GAAG,IAAE,CAAE;AAAC,iBAAUQ,MAAK,GAAE;AAAC,YAAG,CAAC,MAAM2E,oBAAG,EAAC,OAAM3E,IAAE,WAAU,KAAK,OAAO,KAAK,UAAS,CAAC,GAAE;AAAC,UAAAV,GAAE,SAASgG,iCAAG,aAAa;AAAE,gBAAMjE,KAAEwC,YAAE,6BAA4B,+BAA+B;AAAE,gBAAM,MAAM,KAAK,UAAU,EAAC,IAAG,GAAE,OAAM,GAAE,OAAMxC,IAAE,YAAWW,GAAC,CAAC,GAAE,IAAI,MAAMX,GAAE,OAAO;AAAA,QAAC;AAAC,QAAA/B,GAAE,SAAS+F,iCAAE,eAAe;AAAE,cAAK,EAAC,GAAE3E,GAAC,IAAEV,IAAEwD,KAAEiB,sBAAG/D,GAAE,SAAS,GAAE,IAAE,CAACkE,wBAAGlE,GAAE,GAAG,CAAC,GAAEP,KAAE0E,cAAGnE,GAAE,GAAG;AAAE,YAAG8C,IAAE;AAAC,gBAAMnC,KAAEyD,oBAAGtB,EAAC,GAAEE,KAAEqB,mBAAGvB,EAAC;AAAE,YAAE,KAAK,GAAGnC,EAAC,GAAE,EAAE,KAAK,GAAGqC,EAAC;AAAA,QAAC;AAAC,mBAAUrC,MAAK,EAAE,GAAE,KAAK,GAAGA,EAAC,IAAIlB,EAAC,EAAE;AAAA,MAAC;AAAC,YAAM2B,KAAE,MAAM,KAAK,OAAO,KAAK,OAAO,kBAAkBtC,IAAE,CAAC;AAAE,MAAAF,GAAE,SAAS+F,iCAAE,kCAAkC;AAAE,UAAI;AAAE,WAAG,uBAAG,UAAO,GAAE;AAAC,YAAE,EAAC,OAAMvD,IAAE,cAAa,MAAG,MAAK,EAAC,WAAUtC,IAAE,UAAS,KAAK,OAAO,SAAQ,GAAE,MAAK,EAAC,WAAU,GAAE,UAAS,EAAE,UAAU,SAAQ,GAAE,YAAW,GAAE,QAAO8D,WAAE,CAAC,GAAE,gBAAe,GAAE,oBAAmB,IAAG,oBAAmB,CAAA,GAAG,OAAM,EAAC,UAAS,MAAK,GAAE,cAAa,EAAE,cAAa,YAAW0B,wBAAG,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,GAAE,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,GAAE,eAAc/E,GAAC,GAAEX,GAAE,SAAS+F,iCAAE,uCAAuC;AAAE,YAAG;AAAC,gBAAM,KAAK,OAAO,KAAK,QAAQ,UAAUvD,IAAE,EAAC,eAAc7B,GAAC,CAAC;AAAA,QAAC,SAAOD,IAAE;AAAC,gBAAMV,GAAE,SAASgG,iCAAG,6CAA6C,GAAEtF;AAAA,QAAC;AAAC,QAAAV,GAAE,SAAS+F,iCAAE,6CAA6C,GAAE,MAAM,KAAK,OAAO,QAAQ,IAAIvD,IAAE,CAAC,GAAExC,GAAE,SAAS+F,iCAAE,2BAA2B,GAAE,MAAM,KAAK,OAAO,KAAK,QAAQ,eAAe,EAAC,OAAM,EAAE,cAAa,UAAS,EAAE,UAAU,SAAQ,CAAC;AAAA,MAAC;AAAC,MAAA/F,GAAE,SAAS+F,iCAAE,wCAAwC;AAAE,UAAG;AAAC,cAAM,KAAK,WAAW,EAAC,OAAM,GAAE,IAAG,GAAE,QAAO,EAAC,QAAO,GAAE,WAAU,EAAC,WAAU7F,IAAE,UAAS,KAAK,OAAO,SAAQ,EAAC,GAAE,YAAWwC,IAAE,sBAAqB,MAAG,SAAQ,KAAK,oBAAoB,EAAE,UAAU,UAAS/B,EAAC,EAAC,CAAC;AAAA,MAAC,SAAOD,IAAE;AAAC,cAAMV,GAAE,SAASgG,iCAAG,6CAA6C,GAAEtF;AAAA,MAAC;AAAC,aAAO,MAAM,KAAK,OAAO,KAAK,SAAS,OAAO,GAAE,EAAC,SAAQ,aAAY,MAAK,EAAC,CAAC,GAAE,MAAM,KAAK,OAAO,KAAK,QAAQ,SAAS,EAAC,OAAM,EAAE,aAAY,CAAC,GAAE,KAAK,OAAO,KAAK,YAAY,YAAY,EAAC,SAAQV,GAAE,QAAO,CAAC,GAAE,EAAC,SAAQ,EAAC;AAAA,IAAC,GAAE,KAAK,4BAA0B,OAAM,MAAG;AAAC,WAAK,cAAe;AAAC,YAAK,EAAC,IAAG,GAAE,QAAO,EAAC,IAAE,GAAEA,KAAE,KAAK,sBAAsB,CAAC;AAAE,UAAG,CAACA,GAAE,OAAM,IAAI,MAAM,+CAA+C,CAAC,EAAE;AAAE,MAAAA,GAAE,kBAAgBwB,gBAAE,SAAO,MAAM,KAAK;AAA4B,YAAM,IAAExB,GAAE,UAAU,WAAUW,KAAE,MAAM,KAAK,OAAO,KAAK,OAAO,mBAAkB,IAAEoE,QAAG,CAAC,GAAE7E,KAAE,EAAC,MAAK+F,QAAG,mBAAkB,GAAE,iBAAgBtF,GAAC;AAAE,YAAM,KAAK,UAAU,EAAC,IAAG,GAAE,OAAM,GAAE,OAAM,GAAE,YAAWT,IAAE,SAAQ,EAAE,uBAAuB,QAAO,SAAQ,KAAK,oBAAoBF,GAAE,UAAU,UAASA,GAAE,aAAa,EAAC,CAAC,GAAE,MAAM,KAAK,OAAO,KAAK,SAAS,OAAO,GAAE,EAAC,SAAQ,YAAW,MAAK,EAAC,CAAC,GAAE,MAAM,KAAK,OAAO,SAAS,OAAO,GAAEuE,YAAE,mBAAmB,CAAC;AAAA,IAAC,GAAE,KAAK,oBAAkB,OAAG;AAAC,WAAK,cAAa;AAAG,YAAK,EAAC,SAAQ,GAAE,KAAI,EAAC,IAAE;AAAE,aAAO2B,cAAG,GAAE,CAAC;AAAA,IAAC,GAAE,KAAK,2BAAyB,MAAI;AAAC,iBAAW,YAAS;AAAC,YAAG,KAAK,kBAAkB,WAAS,EAAE,QAAK,KAAK,kBAAkB,SAAO,IAAG,KAAG;AAAC,gBAAM,IAAE,KAAK,kBAAkB;AAAQ,eAAG,MAAM,KAAK,eAAe,CAAC;AAAA,QAAC,SAAO,GAAE;AAAC,eAAK,OAAO,OAAO,MAAM,CAAC;AAAA,QAAC;AAAA,MAAC,GAAE,EAAE;AAAA,IAAC,GAAE,KAAK,2BAAyB,OAAM,MAAG;AAAC,UAAG,EAAE,aAAa,KAAG;AAAC,cAAM,IAAE,KAAK,OAAO,KAAK,QAAQ,SAAS,IAAI,EAAE,YAAY,GAAE,IAAE,KAAK,OAAO,KAAK,QAAQ,SAAS,OAAM,EAAG,OAAO,CAAAlG,OAAG;AAAC,cAAI,GAAEW;AAAE,mBAAQ,IAAEX,GAAE,iBAAe,OAAK,SAAO,EAAE,UAAQW,KAAEX,GAAE,iBAAe,OAAK,SAAOW,GAAE,SAAO,EAAE,KAAK,SAAS,OAAKX,GAAE,SAAOA,GAAE,UAAQ,EAAE;AAAA,QAAK,CAAC;AAAE,YAAG,EAAE,WAAS,EAAE;AAAO,aAAK,OAAO,OAAO,KAAK,eAAe,EAAE,MAAM,uBAAuB,GAAE,MAAM,QAAQ,IAAI,EAAE,IAAI,CAAAA,OAAG,KAAK,OAAO,KAAK,QAAQ,WAAW,EAAC,OAAMA,GAAE,MAAK,CAAC,CAAC,CAAC,GAAE,KAAK,OAAO,OAAO,KAAK,sCAAsC;AAAA,MAAC,SAAO,GAAE;AAAC,aAAK,OAAO,OAAO,MAAM,CAAC;AAAA,MAAC;AAAA,IAAC,GAAE,KAAK,gBAAc,OAAM,MAAG;AAAC,UAAI;AAAE,YAAK,EAAC,OAAM,GAAE,mBAAkBA,KAAE,OAAG,WAAU,IAAE,MAAG,IAAGW,KAAE,EAAC,IAAE,GAAE,EAAC,MAAK,EAAC,IAAE,KAAK,OAAO,QAAQ,IAAI,CAAC;AAAE,YAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,CAAC,GAAE,MAAM,KAAK,OAAO,QAAQ,OAAO,GAAE4D,YAAE,mBAAmB,CAAC,GAAE,KAAK,qBAAqB,GAAE,SAAS,GAAE,KAAK,OAAO,KAAK,OAAO,SAAS,IAAI,EAAE,SAAS,KAAG,MAAM,KAAK,OAAO,KAAK,OAAO,cAAc,EAAE,SAAS,GAAE,KAAK,OAAO,KAAK,OAAO,SAAS,IAAI,CAAC,KAAG,MAAM,KAAK,OAAO,KAAK,OAAO,aAAa,CAAC,GAAEvE,MAAG,KAAK,OAAO,KAAK,QAAQ,IAAI,CAAC,GAAE,KAAK,OAAO,KAAK,QAAQ,WAAW,EAAE,EAAE,MAAM,CAAAE,OAAG,KAAK,OAAO,OAAO,KAAKA,EAAC,CAAC,GAAE,KAAK,0BAA2B,EAAC,QAAQ,CAAAA,OAAG;AAAC,QAAAA,GAAE,UAAQ,KAAG,KAAK,4BAA4BA,GAAE,IAAGqE,YAAE,mBAAmB,CAAC;AAAA,MAAC,CAAC,GAAE,QAAM,IAAE,KAAK,oBAAoB,MAAM,CAAC,MAAI,OAAK,SAAO,EAAE,WAAS,KAAK,oBAAoB,QAAM,EAAE,OAAM,KAAG,KAAK,OAAO,OAAO,KAAK,kBAAiB,EAAC,IAAG5D,IAAE,OAAM,EAAC,CAAC;AAAA,IAAC,GAAE,KAAK,iBAAe,OAAM,GAAE,MAAI;AAAC,UAAG,EAAE,KAAG;AAAC,cAAM,IAAE,KAAK,OAAO,SAAS,IAAI,CAAC,GAAEX,KAAE,KAAK,OAAO,KAAK,YAAY,SAAS,EAAC,OAAM,EAAE,aAAY,CAAC;AAAE,QAAAA,MAAA,gBAAAA,GAAG,SAASsE,4BAAE;AAAA,MAAiB,QAAM;AAAA,MAAE;AAAA,YAAM,QAAQ,IAAI,CAAC,KAAK,OAAO,SAAS,OAAO,GAAEC,YAAE,mBAAmB,CAAC,GAAE,IAAE,QAAQ,QAAO,IAAG,KAAK,OAAO,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,GAAE,KAAK,qBAAqB,GAAE,UAAU;AAAA,IAAC,GAAE,KAAK,8BAA4B,OAAM,GAAE,GAAE,IAAE,UAAK;AAAC,YAAM,QAAQ,IAAI,CAAC,KAAK,OAAO,eAAe,OAAO,GAAE,CAAC,GAAE,IAAE,QAAQ,QAAO,IAAG,KAAK,OAAO,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,GAAE,KAAK,qBAAqB,GAAE,SAAS,GAAE,KAAK,oBAAoB,QAAM,KAAK,oBAAoB,MAAM,OAAO,CAAAvE,OAAGA,GAAE,OAAK,CAAC,GAAE,MAAI,KAAK,oBAAoB,QAAM,EAAE,MAAK,KAAK,OAAO,OAAO,KAAK,0BAAyB,EAAC,IAAG,EAAC,CAAC;AAAA,IAAE,GAAE,KAAK,2BAAyB,OAAM,GAAE,GAAE,IAAE,UAAK;AAAC,YAAM,QAAQ,IAAI,CAAC,KAAK,OAAO,KAAK,SAAS,OAAO,GAAE,CAAC,GAAE,IAAE,QAAQ,YAAU,KAAK,OAAO,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC;AAAA,IAAC,GAAE,KAAK,YAAU,OAAM,GAAE,MAAI;AAAC,WAAK,OAAO,QAAQ,KAAK,SAAS,CAAC,MAAI,KAAK,OAAO,KAAK,QAAQ,IAAI,GAAE,CAAC,GAAE,MAAM,KAAK,OAAO,QAAQ,OAAO,GAAE,EAAC,QAAO,EAAC,CAAC;AAAA,IAAE,GAAE,KAAK,cAAY,OAAM,GAAE,MAAI;AAAC,WAAK,OAAO,KAAK,QAAQ,IAAI,GAAEgE,WAAE,EAAE,kBAAkB,IAAI,GAAG,CAAC,GAAE,MAAM,KAAK,OAAO,SAAS,IAAI,GAAE,CAAC;AAAA,IAAC,GAAE,KAAK,iBAAe,OAAM,GAAE,MAAI;AAAC,YAAK,EAAC,SAAQ,GAAE,cAAahE,IAAE,eAAc,IAAEwB,gBAAE,MAAK,IAAE;AAAE,WAAK,OAAO,KAAK,QAAQ,IAAI,GAAE,EAAE,eAAe,GAAE,MAAM,KAAK,OAAO,KAAK,SAAS,IAAI,GAAE,EAAC,aAAY,EAAE,aAAY,WAAU,EAAE,WAAU,iBAAgB,EAAE,iBAAgB,IAAG,GAAE,cAAaxB,IAAE,eAAc,EAAE,eAAc,eAAc,EAAC,CAAC;AAAA,IAAC,GAAE,KAAK,2BAAyB,OAAM,MAAG;AAAC,YAAK,EAAC,IAAG,GAAE,OAAM,GAAE,QAAOA,IAAE,eAAc,EAAC,IAAE,GAAEW,KAAEX,GAAE,QAAQ,mBAAiBgE,WAAE,EAAE,kBAAkB,IAAI,GAAG;AAAE,WAAK,OAAO,KAAK,QAAQ,IAAI,GAAErD,EAAC,GAAE,MAAM,KAAK,OAAO,eAAe,IAAI,GAAE,EAAC,IAAG,GAAE,OAAM,GAAE,QAAOX,IAAE,eAAc,EAAC,CAAC;AAAA,IAAC,GAAE,KAAK,cAAY,OAAM,MAAG;AAAC,YAAK,EAAC,OAAM,GAAE,QAAO,GAAE,QAAOA,IAAE,QAAO,GAAE,YAAWW,IAAE,aAAY,GAAE,sBAAqBT,IAAE,SAAQ,EAAC,IAAE,GAAEwC,KAAEiD,qBAAG,GAAE3F,IAAE,CAAC;AAAE,UAAI;AAAE,YAAM,IAAE,CAAC,CAAC;AAAE,UAAG;AAAC,cAAMU,KAAE,IAAEmF,YAAGM;AAAG,YAAE,MAAM,KAAK,OAAO,KAAK,OAAO,OAAO,GAAEzD,IAAE,EAAC,UAAShC,GAAC,CAAC;AAAA,MAAC,SAAOA,IAAE;AAAC,cAAM,MAAM,KAAK,QAAS,GAAC,KAAK,OAAO,OAAO,MAAM,mDAAmD,CAAC,SAAS,GAAEA;AAAA,MAAC;AAAC,UAAI8B;AAAE,UAAG,GAAG,SAAS,CAAC,GAAE;AAAC,cAAM9B,KAAE0F,YAAE,KAAK,UAAU1D,EAAC,CAAC,GAAEtB,KAAEgF,YAAE,CAAC;AAAE,QAAA5D,KAAE,MAAM,KAAK,OAAO,KAAK,OAAO,SAAS,EAAC,IAAGpB,IAAE,aAAYV,GAAC,CAAC;AAAA,MAAC;AAAC,YAAM,IAAE,EAAE,CAAC,EAAE;AAAI,UAAG,EAAE,cAAY8B,IAAE,MAAI,EAAE,MAAI,IAAG7B,OAAI,EAAE,KAAGA,KAAG,KAAK,OAAO,KAAK,QAAQ,IAAI,GAAE+B,EAAC,GAAE,GAAE;AAAC,cAAMhC,KAAEoF,eAAG,GAAE,GAAE,CAAC;AAAE,cAAMhD,SAAO,QAAQ,QAAQpC,IAAE,KAAK,OAAO,IAAI;AAAA,MAAC,OAAK;AAAC,cAAMA,KAAE,EAAE,CAAC,EAAE;AAAI,cAAIA,GAAE,MAAI,IAAGC,OAAID,GAAE,KAAGC,KAAGT,MAAGQ,GAAE,WAAS,EAAE,EAAE,CAAA,GAAGA,GAAE,QAAQ,GAAE,EAAC,sBAAqB,KAAE,CAAC,GAAE,MAAM,KAAK,OAAO,KAAK,QAAQ,QAAQ,GAAE,GAAEA,EAAC,KAAG,KAAK,OAAO,KAAK,QAAQ,QAAQ,GAAE,GAAEA,EAAC,EAAE,MAAM,CAAAU,OAAG,KAAK,OAAO,OAAO,MAAMA,EAAC,CAAC;AAAA,MAAC;AAAC,aAAOsB,GAAE;AAAA,IAAE,GAAE,KAAK,aAAW,OAAM,MAAG;AAAC,YAAK,EAAC,IAAG,GAAE,OAAM,GAAE,QAAO1C,IAAE,sBAAqB,GAAE,YAAWW,IAAE,SAAQ,EAAC,IAAE,GAAET,KAAEmG,oBAAG,GAAErG,EAAC;AAAE,UAAI;AAAE,YAAM0C,KAAE,KAAG,QAAOI,YAAQ,OAAK,SAAOA,SAAO,WAAS;AAAI,UAAG;AAAC,cAAM,IAAEJ,KAAEmD,YAAGM;AAAG,YAAE,MAAM,KAAK,OAAO,KAAK,OAAO,OAAO,GAAEjG,IAAE,EAAE,EAAE,IAAGS,MAAG,CAAA,CAAE,GAAE,EAAC,UAAS,EAAC,CAAC,CAAC;AAAA,MAAC,SAAO,GAAE;AAAC,cAAM,MAAM,KAAK,QAAS,GAAC,KAAK,OAAO,OAAO,MAAM,kDAAkD,CAAC,SAAS,GAAE;AAAA,MAAC;AAAC,UAAI;AAAE,UAAG;AAAC,YAAE,MAAM,KAAK,OAAO,KAAK,QAAQ,IAAI,GAAE,CAAC;AAAA,MAAC,SAAO,GAAE;AAAC,cAAM,KAAK,OAAO,OAAO,MAAM,+BAA+B,CAAC,KAAK,CAAC,UAAU,GAAE;AAAA,MAAC;AAAC,UAAG+B,IAAE;AAAC,cAAM,IAAEoD,eAAG,GAAE,GAAE,CAAC;AAAE,cAAMhD,SAAO,QAAQ,QAAQ,GAAE,KAAK,OAAO,IAAI;AAAA,MAAC,OAAK;AAAC,cAAM,IAAE,EAAE,EAAE,QAAQ,MAAM,EAAE;AAAI,aAAG,EAAE,WAAS,EAAE,EAAE,CAAE,GAAC,EAAE,QAAQ,GAAE,EAAC,sBAAqB,KAAE,CAAC,GAAE,MAAM,KAAK,OAAO,KAAK,QAAQ,QAAQ,GAAE,GAAE,CAAC,KAAG,KAAK,OAAO,KAAK,QAAQ,QAAQ,GAAE,GAAE,CAAC,EAAE,MAAM,CAAAN,OAAG,KAAK,OAAO,OAAO,MAAMA,EAAC,CAAC;AAAA,MAAC;AAAC,YAAM,KAAK,OAAO,KAAK,QAAQ,QAAQtC,EAAC;AAAA,IAAC,GAAE,KAAK,YAAU,OAAM,MAAG;AAAC,YAAK,EAAC,IAAG,GAAE,OAAM,GAAE,OAAMF,IAAE,YAAW,GAAE,SAAQW,IAAE,SAAQ,EAAC,IAAE,GAAET,KAAEoG,mBAAG,GAAEtG,EAAC;AAAE,UAAI;AAAE,YAAM0C,KAAE,KAAG,QAAOI,YAAQ,OAAK,SAAOA,SAAO,WAAS;AAAI,UAAG;AAAC,cAAM,IAAEJ,KAAEmD,YAAGM;AAAG,YAAE,MAAM,KAAK,OAAO,KAAK,OAAO,OAAO,GAAEjG,IAAE,EAAE,EAAE,CAAA,GAAG,KAAG,CAAA,CAAE,GAAE,EAAC,UAAS,EAAC,CAAC,CAAC;AAAA,MAAC,SAAO,GAAE;AAAC,cAAM,MAAM,KAAK,QAAO,GAAG,KAAK,OAAO,OAAO,MAAM,iDAAiD,CAAC,SAAS,GAAE;AAAA,MAAC;AAAC,UAAI;AAAE,UAAG;AAAC,YAAE,MAAM,KAAK,OAAO,KAAK,QAAQ,IAAI,GAAE,CAAC;AAAA,MAAC,SAAO,GAAE;AAAC,cAAM,KAAK,OAAO,OAAO,MAAM,8BAA8B,CAAC,KAAK,CAAC,UAAU,GAAE;AAAA,MAAC;AAAC,UAAGwC,IAAE;AAAC,cAAM,IAAEoD,eAAG,GAAE,GAAE,CAAC;AAAE,cAAMhD,SAAO,QAAQ,QAAQ,GAAE,KAAK,OAAO,IAAI;AAAA,MAAC,OAAK;AAAC,cAAM,IAAEnC,MAAG,EAAE,EAAE,QAAQ,MAAM,EAAE;AAAI,aAAK,OAAO,KAAK,QAAQ,QAAQ,GAAE,GAAE,CAAC;AAAA,MAAC;AAAC,YAAM,KAAK,OAAO,KAAK,QAAQ,QAAQT,EAAC;AAAA,IAAC,GAAE,KAAK,UAAQ,YAAS;AAAC,YAAM,IAAE,CAAA,GAAG,IAAE,CAAE;AAAC,WAAK,OAAO,QAAQ,OAAQ,EAAC,QAAQ,OAAG;AAAC,YAAIF,KAAE;AAAGuG,kBAAE,EAAE,MAAM,MAAIvG,KAAE,OAAI,KAAK,OAAO,KAAK,OAAO,SAAS,IAAI,EAAE,KAAK,MAAIA,KAAE,OAAIA,MAAG,EAAE,KAAK,EAAE,KAAK;AAAA,MAAC,CAAC,GAAE,KAAK,OAAO,SAAS,OAAQ,EAAC,QAAQ,OAAG;AAACuG,kBAAE,EAAE,eAAe,KAAG,EAAE,KAAK,EAAE,EAAE;AAAA,MAAC,CAAC,GAAE,MAAM,QAAQ,IAAI,CAAC,GAAG,EAAE,IAAI,OAAG,KAAK,cAAc,EAAC,OAAM,EAAC,CAAC,CAAC,GAAE,GAAG,EAAE,IAAI,OAAG,KAAK,eAAe,CAAC,CAAC,CAAC,CAAC;AAAA,IAAC,GAAE,KAAK,sBAAoB,OAAM,MAAG;AAAC,WAAK,aAAa,MAAM,KAAK,CAAC,GAAE,MAAM,KAAK,qBAAsB;AAAA,IAAA,GAAE,KAAK,uBAAqB,YAAS;AAAC,UAAG,KAAK,aAAa,UAAQ,EAAE,QAAO;AAAC,aAAK,OAAO,OAAO,KAAK,2CAA2C;AAAE;AAAA,MAAM;AAAC,WAAI,KAAK,OAAO,OAAO,KAAK,+BAA+B,KAAK,aAAa,MAAM,MAAM,WAAW,GAAE,KAAK,aAAa,MAAM,SAAO,KAAG;AAAC,aAAK,aAAa,QAAM,EAAE;AAAO,cAAM,IAAE,KAAK,aAAa,MAAM,MAAO;AAAC,YAAG,EAAE,KAAG;AAAC,gBAAM,KAAK,eAAe,CAAC;AAAA,QAAC,SAAO,GAAE;AAAC,eAAK,OAAO,OAAO,KAAK,CAAC;AAAA,QAAC;AAAA,MAAC;AAAC,WAAK,aAAa,QAAM,EAAE;AAAA,IAAI,GAAE,KAAK,iBAAe,OAAM,MAAG;AAAC,YAAK,EAAC,OAAM,GAAE,SAAQ,GAAE,aAAYvG,IAAE,eAAc,GAAE,aAAYW,GAAC,IAAE,GAAE,IAAE,EAAE;AAAO,UAAG,CAAC,KAAK,2BAA2B,EAAC,OAAM,GAAE,eAAc,EAAC,CAAC,EAAE,SAAO,GAAG;AAAA,QAAA,KAAI;AAAoB,iBAAO,MAAM,KAAK,wBAAwB,EAAC,OAAM,GAAE,SAAQ,GAAE,aAAYX,IAAE,aAAYW,GAAC,CAAC;AAAA,QAAE,KAAI;AAAmB,iBAAO,MAAM,KAAK,uBAAuB,GAAE,CAAC;AAAA,QAAE,KAAI;AAAmB,iBAAO,MAAM,KAAK,uBAAuB,GAAE,CAAC;AAAA,QAAE,KAAI;AAAmB,iBAAO,MAAM,KAAK,uBAAuB,GAAE,CAAC;AAAA,QAAE,KAAI;AAAiB,iBAAO,MAAM,KAAK,qBAAqB,GAAE,CAAC;AAAA,QAAE,KAAI;AAAmB,iBAAO,MAAM,KAAK,uBAAuB,GAAE,CAAC;AAAA,QAAE,KAAI;AAAoB,iBAAO,MAAM,KAAK,iBAAiB,EAAC,OAAM,GAAE,SAAQ,GAAE,aAAYX,IAAE,aAAYW,IAAE,eAAc,EAAC,CAAC;AAAA,QAAE,KAAI;AAAkB,iBAAO,MAAM,KAAK,sBAAsB,GAAE,CAAC;AAAA,QAAE,KAAI;AAAyB,iBAAO,MAAM,KAAK,6BAA6B,EAAC,OAAM,GAAE,SAAQ,GAAE,aAAYX,IAAE,aAAYW,IAAE,eAAc,EAAC,CAAC;AAAA,QAAE;AAAQ,iBAAO,KAAK,OAAO,OAAO,KAAK,8BAA8B,CAAC,EAAE;AAAA,MAAC;AAAA,IAAC,GAAE,KAAK,uBAAqB,OAAM,MAAG;AAAC,YAAK,EAAC,OAAM,GAAE,SAAQ,GAAE,eAAcX,GAAC,IAAE,GAAE,KAAG,MAAM,KAAK,OAAO,KAAK,QAAQ,IAAI,GAAE,EAAE,EAAE,GAAG,QAAQ;AAAO,cAAO,GAAC;AAAA,QAAE,KAAI;AAAoB,iBAAO,KAAK,yBAAyB,GAAE,GAAEA,EAAC;AAAA,QAAE,KAAI;AAAmB,iBAAO,KAAK,wBAAwB,GAAE,CAAC;AAAA,QAAE,KAAI;AAAmB,iBAAO,KAAK,wBAAwB,GAAE,CAAC;AAAA,QAAE,KAAI;AAAmB,iBAAO,KAAK,wBAAwB,GAAE,CAAC;AAAA,QAAE,KAAI;AAAiB,iBAAO,KAAK,sBAAsB,GAAE,CAAC;AAAA,QAAE,KAAI;AAAoB,iBAAO,KAAK,yBAAyB,GAAE,CAAC;AAAA,QAAE,KAAI;AAAyB,iBAAO,KAAK,8BAA8B,GAAE,CAAC;AAAA,QAAE;AAAQ,iBAAO,KAAK,OAAO,OAAO,KAAK,+BAA+B,CAAC,EAAE;AAAA,MAAC;AAAA,IAAC,GAAE,KAAK,6BAA2B,OAAG;AAAC,YAAK,EAAC,OAAM,EAAC,IAAE,GAAE,EAAC,SAAQ,EAAC,IAAE+D,iBAAE,sBAAqB,4BAA4B,CAAC,2DAA2D;AAAE,YAAM,IAAI,MAAM,CAAC;AAAA,IAAC,GAAE,KAAK,6BAA2B,OAAG;AAAC,YAAK,EAAC,OAAM,GAAE,eAAc,EAAC,IAAE,GAAE/D,KAAE,KAAK,yBAAyB,IAAI,CAAC;AAAE,aAAM,CAACA,MAAGA,GAAE,SAAS,CAAC,IAAE,QAAG,CAAC,EAAEA,GAAE,SAAS,wBAAwB,KAAG,KAAK,OAAO,OAAO,cAAc,sBAAsB,IAAE;AAAA,IAAE,GAAE,KAAK,0BAAwB,OAAM,MAAG;AAAC,YAAK,EAAC,OAAM,GAAE,SAAQ,GAAE,aAAYA,IAAE,aAAY,EAAC,IAAE,GAAE,EAAC,QAAOW,IAAE,IAAG,EAAC,IAAE;AAAE,UAAG;AAAC,cAAMT,KAAE,KAAK,OAAO,KAAK,YAAY,SAAS,EAAC,OAAM,EAAC,CAAC;AAAE,aAAK,eAAe,EAAE,CAAA,GAAG,EAAE,MAAM,CAAC;AAAE,cAAM,IAAES,GAAE,mBAAiBqD,WAAE,EAAE,kBAAkB,IAAI,GAAG,GAAEtB,KAAE,EAAE,EAAC,IAAG,GAAE,cAAa,GAAE,iBAAgB,EAAC,GAAE/B,EAAC;AAAE,cAAM,KAAK,YAAY,GAAE+B,EAAC;AAAE,cAAM,IAAE,MAAM,KAAK,iBAAiB,EAAC,eAAc1C,IAAE,MAAKoG,YAAE,KAAK,UAAU,CAAC,CAAC,GAAE,aAAY,GAAE,UAAS1D,GAAE,SAAS,SAAQ,CAAC;AAAE,aAAK,OAAO,OAAO,cAAc,kBAAkB,MAAI,MAAI,QAAQ,KAAK,wCAAwC,GAAExC,MAAA,gBAAAA,GAAG,SAASsG,4BAAG,+BAA8BtG,MAAA,gBAAAA,GAAG,SAASuG,4BAAG,wBAAuB,KAAK,OAAO,OAAO,KAAK,oBAAmB,EAAC,IAAG,GAAE,QAAO/D,IAAE,eAAc,EAAC,CAAC;AAAA,MAAC,SAAOxC,IAAE;AAAC,cAAM,KAAK,UAAU,EAAC,IAAG,GAAE,OAAM,GAAE,OAAMA,IAAE,SAAQ,EAAE,kBAAkB,WAAU,CAAC,GAAE,KAAK,OAAO,OAAO,MAAMA,EAAC;AAAA,MAAC;AAAA,IAAC,GAAE,KAAK,2BAAyB,OAAM,GAAE,GAAE,MAAI;AAAC,YAAK,EAAC,IAAGF,GAAC,IAAE;AAAE,UAAG4E,gBAAE,CAAC,GAAE;AAAC,cAAK,EAAC,QAAO,EAAC,IAAE;AAAE,aAAK,OAAO,OAAO,MAAM,EAAC,MAAK,UAAS,QAAO,4BAA2B,QAAO,EAAC,CAAC;AAAE,cAAMjE,KAAE,KAAK,OAAO,SAAS,IAAIX,EAAC;AAAE,aAAK,OAAO,OAAO,MAAM,EAAC,MAAK,UAAS,QAAO,4BAA2B,UAASW,GAAC,CAAC;AAAE,cAAM,IAAEA,GAAE,SAAS;AAAU,aAAK,OAAO,OAAO,MAAM,EAAC,MAAK,UAAS,QAAO,4BAA2B,eAAc,EAAC,CAAC;AAAE,cAAMT,KAAE,EAAE;AAAmB,aAAK,OAAO,OAAO,MAAM,EAAC,MAAK,UAAS,QAAO,4BAA2B,eAAcA,GAAC,CAAC;AAAE,cAAM,IAAE,MAAM,KAAK,OAAO,KAAK,OAAO,kBAAkB,GAAEA,EAAC;AAAE,aAAK,OAAO,OAAO,MAAM,EAAC,MAAK,UAAS,QAAO,4BAA2B,cAAa,EAAC,CAAC;AAAE,cAAMwC,KAAE,MAAM,KAAK,OAAO,KAAK,QAAQ,UAAU,GAAE,EAAC,eAAc,EAAC,CAAC;AAAE,aAAK,OAAO,OAAO,MAAM,EAAC,MAAK,UAAS,QAAO,4BAA2B,gBAAeA,GAAC,CAAC,GAAE,MAAM,KAAK,OAAO,KAAK,QAAQ,SAAS,EAAC,OAAM,EAAC,CAAC;AAAA,MAAC,WAASmC,eAAE,CAAC,GAAE;AAAC,cAAM,KAAK,OAAO,SAAS,OAAO7E,IAAEuE,YAAE,mBAAmB,CAAC;AAAE,cAAM,IAAE3B,YAAE,iBAAiB;AAAE,YAAG,KAAK,OAAO,cAAc,CAAC,MAAI,EAAE,OAAM,IAAI,MAAM,YAAY,CAAC,6BAA6B;AAAE,aAAK,OAAO,KAAKA,YAAE,iBAAiB,GAAE,EAAC,OAAM,EAAE,MAAK,CAAC;AAAA,MAAC;AAAA,IAAC,GAAE,KAAK,yBAAuB,OAAM,GAAE,MAAI;AAAC,YAAK,EAAC,IAAG,GAAE,QAAO5C,GAAC,IAAE;AAAE,UAAG;AAAC,aAAK,4BAA4BA,EAAC;AAAE,cAAK,EAAC,OAAM,GAAE,YAAWW,IAAE,QAAO,GAAE,YAAWT,IAAE,mBAAkB,GAAE,eAAcwC,GAAC,IAAE,EAAE,QAAO,IAAE,EAAE,EAAE,EAAE,EAAC,OAAM,GAAE,OAAM,GAAE,QAAO,GAAE,YAAWxC,IAAE,cAAa,MAAG,cAAa,IAAG,oBAAmB,CAAE,GAAC,oBAAmB,IAAG,YAAWS,GAAE,WAAU,MAAK,EAAC,WAAU,IAAG,UAAS,KAAK,OAAO,SAAQ,GAAE,MAAK,EAAC,WAAUA,GAAE,WAAU,UAASA,GAAE,SAAQ,EAAC,GAAE,KAAG,EAAC,mBAAkB,EAAC,CAAC,GAAE+B,MAAG,EAAC,eAAcA,GAAC,CAAC,GAAE,EAAC,eAAclB,gBAAE,MAAK,CAAC,GAAE,IAAEoB,YAAE,iBAAiB;AAAE,YAAG,KAAK,OAAO,cAAc,CAAC,MAAI,EAAE,OAAM,IAAI,MAAM,YAAY,CAAC,4BAA4B;AAAE,aAAK,OAAO,KAAKA,YAAE,iBAAiB,GAAE,EAAC,SAAQ,EAAC,CAAC,GAAE,MAAM,KAAK,WAAW,EAAC,IAAG,EAAE,IAAG,OAAM,GAAE,QAAO,MAAG,sBAAqB,KAAE,CAAC;AAAA,MAAC,SAAO,GAAE;AAAC,cAAM,KAAK,UAAU,EAAC,IAAG,GAAE,OAAM,GAAE,OAAM,EAAC,CAAC,GAAE,KAAK,OAAO,OAAO,MAAM,CAAC;AAAA,MAAC;AAAA,IAAC,GAAE,KAAK,0BAAwB,OAAM,GAAE,MAAI;AAAC,YAAK,EAAC,IAAG,EAAC,IAAE;AAAEgC,sBAAE,CAAC,KAAG,MAAM,KAAK,OAAO,QAAQ,OAAO,GAAE,EAAC,cAAa,KAAE,CAAC,GAAE,KAAK,OAAO,KAAKhC,YAAE,mBAAkB,CAAC,GAAE,CAAE,CAAA,KAAGiC,eAAE,CAAC,MAAI,MAAM,KAAK,OAAO,QAAQ,OAAO,GAAEN,YAAE,mBAAmB,CAAC,GAAE,KAAK,OAAO,KAAK3B,YAAE,mBAAkB,CAAC,GAAE,EAAC,OAAM,EAAE,MAAK,CAAC;AAAA,IAAE,GAAE,KAAK,yBAAuB,OAAM,GAAE,MAAI;AAAC,YAAK,EAAC,QAAO,GAAE,IAAG5C,GAAC,IAAE;AAAE,UAAG;AAAC,cAAM,IAAE,GAAG,CAAC,mBAAkBW,KAAE+F,YAAG,IAAI,CAAC;AAAE,YAAG/F,MAAG,KAAK,mBAAmBA,IAAEX,EAAC,GAAE;AAAC,eAAK,OAAO,OAAO,KAAK,oCAAoCA,EAAC,EAAE,GAAE,KAAK,UAAU,EAAC,IAAGA,IAAE,OAAM,GAAE,OAAMuE,YAAE,wBAAwB,EAAC,CAAC;AAAE;AAAA,QAAM;AAAC,aAAK,cAAc,EAAE,EAAC,OAAM,EAAC,GAAE,CAAC,CAAC;AAAE,YAAG;AAACmC,sBAAG,IAAI,GAAE1G,EAAC,GAAE,MAAM,KAAK,OAAO,QAAQ,OAAO,GAAE,EAAC,YAAW,EAAE,WAAU,CAAC,GAAE,MAAM,KAAK,WAAW,EAAC,IAAGA,IAAE,OAAM,GAAE,QAAO,MAAG,sBAAqB,KAAE,CAAC;AAAA,QAAC,SAAO,GAAE;AAAC,gBAAM0G,YAAG,OAAO,CAAC,GAAE;AAAA,QAAC;AAAC,aAAK,OAAO,OAAO,KAAK,kBAAiB,EAAC,IAAG1G,IAAE,OAAM,GAAE,QAAO,EAAC,CAAC;AAAA,MAAC,SAAO,GAAE;AAAC,cAAM,KAAK,UAAU,EAAC,IAAGA,IAAE,OAAM,GAAE,OAAM,EAAC,CAAC,GAAE,KAAK,OAAO,OAAO,MAAM,CAAC;AAAA,MAAC;AAAA,IAAC,GAAE,KAAK,qBAAmB,CAAC,GAAE,MAAI,SAAS,EAAE,SAAQ,EAAG,MAAM,GAAE,EAAE,CAAC,KAAG,SAAS,EAAE,SAAU,EAAC,MAAM,GAAE,EAAE,CAAC,GAAE,KAAK,0BAAwB,CAAC,GAAE,MAAI;AAAC,YAAK,EAAC,IAAG,EAAC,IAAE,GAAEA,KAAE4C,YAAE,kBAAiB,CAAC;AAAE,UAAG,KAAK,OAAO,cAAc5C,EAAC,MAAI,EAAE,OAAM,IAAI,MAAM,YAAYA,EAAC,wBAAwB;AAAE4E,sBAAE,CAAC,IAAE,KAAK,OAAO,KAAKhC,YAAE,kBAAiB,CAAC,GAAE,CAAE,CAAA,IAAEiC,eAAE,CAAC,KAAG,KAAK,OAAO,KAAKjC,YAAE,kBAAiB,CAAC,GAAE,EAAC,OAAM,EAAE,MAAK,CAAC;AAAA,IAAC,GAAE,KAAK,yBAAuB,OAAM,GAAE,MAAI;AAAC,YAAK,EAAC,IAAG,EAAC,IAAE;AAAE,UAAG;AAAC,aAAK,cAAc,EAAC,OAAM,EAAC,CAAC,GAAE,MAAM,KAAK,UAAU,GAAEoB,WAAE,CAAC,CAAC,GAAE,MAAM,KAAK,WAAW,EAAC,IAAG,GAAE,OAAM,GAAE,QAAO,MAAG,sBAAqB,KAAE,CAAC,GAAE,KAAK,OAAO,OAAO,KAAK,kBAAiB,EAAC,IAAG,GAAE,OAAM,EAAC,CAAC;AAAA,MAAC,SAAOhE,IAAE;AAAC,cAAM,KAAK,UAAU,EAAC,IAAG,GAAE,OAAM,GAAE,OAAMA,GAAC,CAAC,GAAE,KAAK,OAAO,OAAO,MAAMA,EAAC;AAAA,MAAC;AAAA,IAAC,GAAE,KAAK,0BAAwB,CAAC,GAAE,MAAI;AAAC,YAAK,EAAC,IAAG,EAAC,IAAE,GAAEA,KAAE4C,YAAE,kBAAiB,CAAC;AAAE,UAAG,KAAK,OAAO,cAAc5C,EAAC,MAAI,EAAE,OAAM,IAAI,MAAM,YAAYA,EAAC,wBAAwB;AAAE4E,sBAAE,CAAC,IAAE,KAAK,OAAO,KAAKhC,YAAE,kBAAiB,CAAC,GAAE,CAAE,CAAA,IAAEiC,eAAE,CAAC,KAAG,KAAK,OAAO,KAAKjC,YAAE,kBAAiB,CAAC,GAAE,EAAC,OAAM,EAAE,MAAK,CAAC;AAAA,IAAC,GAAE,KAAK,uBAAqB,OAAM,GAAE,MAAI;AAAC,YAAK,EAAC,IAAG,EAAC,IAAE;AAAE,UAAG;AAAC,aAAK,YAAY,EAAC,OAAM,EAAC,CAAC,GAAE,MAAM,KAAK,WAAW,EAAC,IAAG,GAAE,OAAM,GAAE,QAAO,MAAG,sBAAqB,KAAE,CAAC,GAAE,KAAK,OAAO,OAAO,KAAK,gBAAe,EAAC,IAAG,GAAE,OAAM,EAAC,CAAC;AAAA,MAAC,SAAO5C,IAAE;AAAC,cAAM,KAAK,UAAU,EAAC,IAAG,GAAE,OAAM,GAAE,OAAMA,GAAC,CAAC,GAAE,KAAK,OAAO,OAAO,MAAMA,EAAC;AAAA,MAAC;AAAA,IAAC,GAAE,KAAK,wBAAsB,CAAC,GAAE,MAAI;AAAC,YAAK,EAAC,IAAG,EAAC,IAAE,GAAEA,KAAE4C,YAAE,gBAAe,CAAC;AAAE,UAAG,KAAK,OAAO,cAAc5C,EAAC,MAAI,EAAE,OAAM,IAAI,MAAM,YAAYA,EAAC,wBAAwB;AAAE,iBAAW,MAAI;AAAC4E,wBAAE,CAAC,IAAE,KAAK,OAAO,KAAKhC,YAAE,gBAAe,CAAC,GAAE,CAAE,CAAA,IAAEiC,eAAE,CAAC,KAAG,KAAK,OAAO,KAAKjC,YAAE,gBAAe,CAAC,GAAE,EAAC,OAAM,EAAE,MAAK,CAAC;AAAA,MAAC,GAAE,GAAG;AAAA,IAAC,GAAE,KAAK,yBAAuB,OAAM,GAAE,MAAI;AAAC,YAAK,EAAC,IAAG,EAAC,IAAE;AAAE,UAAG;AAAC,aAAK,kBAAkB,EAAC,OAAM,GAAE,QAAO,EAAE,OAAM,CAAC,GAAE,QAAQ,IAAI,CAAC,IAAI,QAAQ,CAAA5C,OAAG;AAAC,eAAK,OAAO,KAAK,QAAQ,KAAK2G,eAAG,SAAQ,YAAS;AAAC,YAAA3G,GAAE,MAAM,KAAK,cAAc,EAAC,OAAM,GAAE,IAAG,EAAC,CAAC,CAAC;AAAA,UAAC,CAAC;AAAA,QAAC,CAAC,GAAE,KAAK,WAAW,EAAC,IAAG,GAAE,OAAM,GAAE,QAAO,MAAG,sBAAqB,KAAE,CAAC,GAAE,KAAK,mCAAmC,EAAC,OAAM,GAAE,OAAMuE,YAAE,mBAAmB,EAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAAvE,OAAG,KAAK,OAAO,OAAO,MAAMA,EAAC,CAAC;AAAA,MAAC,SAAOA,IAAE;AAAC,aAAK,OAAO,OAAO,MAAMA,EAAC;AAAA,MAAC;AAAA,IAAC,GAAE,KAAK,mBAAiB,OAAM,MAAG;AAAC,UAAI,GAAE,GAAEA;AAAE,YAAK,EAAC,OAAM,GAAE,SAAQW,IAAE,aAAY,GAAE,aAAYT,IAAE,eAAc,EAAC,IAAE,GAAE,EAAC,IAAGwC,IAAE,QAAO,EAAC,IAAE/B;AAAE,UAAG;AAAC,cAAM,KAAK,eAAe,EAAE,EAAC,OAAM,EAAC,GAAE,CAAC,CAAC;AAAE,cAAM,IAAE,KAAK,OAAO,QAAQ,IAAI,CAAC,GAAE6B,KAAE,MAAM,KAAK,iBAAiB,EAAC,eAAc,GAAE,MAAK4D,YAAE,KAAK,UAAUT,qBAAG,qBAAoB,GAAEjD,EAAC,CAAC,CAAC,GAAE,aAAYxC,IAAE,UAAS,EAAE,KAAK,UAAS,eAAc,EAAC,CAAC,GAAE,IAAE,EAAC,IAAGwC,IAAE,OAAM,GAAE,QAAO,GAAE,eAAcF,GAAC;AAAE,cAAM,KAAK,yBAAyB,CAAC,GAAE,MAAIhB,gBAAE,cAAY,IAAE,EAAE,KAAK,SAAS,aAAW,QAAM,EAAE,aAAW,KAAK,OAAO,KAAK,yBAAyB,IAAE,EAAE,KAAK,SAAS,aAAW,OAAK,SAAO,EAAE,SAAS,IAAGxB,KAAE,KAAK,OAAO,eAAa,QAAMA,GAAE,sBAAoB,KAAK,mBAAmB,CAAC,KAAG,KAAK,uCAAuC,CAAC,GAAE,KAAK,2BAA0B;AAAA,MAAG,SAAO,GAAE;AAAC,cAAM,KAAK,UAAU,EAAC,IAAG0C,IAAE,OAAM,GAAE,OAAM,EAAC,CAAC,GAAE,KAAK,OAAO,OAAO,MAAM,CAAC;AAAA,MAAC;AAAA,IAAC,GAAE,KAAK,2BAAyB,CAAC,GAAE,MAAI;AAAC,YAAK,EAAC,IAAG,EAAC,IAAE,GAAE1C,KAAE4C,YAAE,mBAAkB,CAAC;AAAE,UAAG,KAAK,OAAO,cAAc5C,EAAC,MAAI,EAAE,OAAM,IAAI,MAAM,YAAYA,EAAC,wBAAwB;AAAE4E,sBAAE,CAAC,IAAE,KAAK,OAAO,KAAKhC,YAAE,mBAAkB,CAAC,GAAE,EAAC,QAAO,EAAE,OAAM,CAAC,IAAEiC,eAAE,CAAC,KAAG,KAAK,OAAO,KAAKjC,YAAE,mBAAkB,CAAC,GAAE,EAAC,OAAM,EAAE,MAAK,CAAC;AAAA,IAAC,GAAE,KAAK,wBAAsB,OAAM,GAAE,MAAI;AAAC,YAAK,EAAC,IAAG,GAAE,QAAO5C,GAAC,IAAE;AAAE,UAAG;AAAC,cAAM,IAAE,GAAG,CAAC,kBAAkBA,GAAE,MAAM,IAAI,IAAGW,KAAE+F,YAAG,IAAI,CAAC;AAAE,YAAG/F,MAAG,KAAK,mBAAmBA,IAAE,CAAC,GAAE;AAAC,eAAK,OAAO,OAAO,KAAK,oCAAoC,CAAC,EAAE;AAAE;AAAA,QAAM;AAAC,aAAK,YAAY,EAAE,EAAC,OAAM,EAAC,GAAEX,EAAC,CAAC,GAAE,KAAK,OAAO,OAAO,KAAK,iBAAgB,EAAC,IAAG,GAAE,OAAM,GAAE,QAAOA,GAAC,CAAC,GAAE0G,YAAG,IAAI,GAAE,CAAC;AAAA,MAAC,SAAO,GAAE;AAAC,cAAM,KAAK,UAAU,EAAC,IAAG,GAAE,OAAM,GAAE,OAAM,EAAC,CAAC,GAAE,KAAK,OAAO,OAAO,MAAM,CAAC;AAAA,MAAC;AAAA,IAAC,GAAE,KAAK,gCAA8B,CAAC,GAAE,MAAI;AAAC,YAAK,EAAC,IAAG,EAAC,IAAE;AAAE,WAAK,OAAO,OAAO,MAAM,EAAC,MAAK,UAAS,QAAO,iCAAgC,OAAM,GAAE,SAAQ,EAAC,CAAC,GAAE9B,gBAAE,CAAC,IAAE,KAAK,OAAO,KAAKhC,YAAE,mBAAkB,CAAC,GAAE,EAAC,QAAO,EAAE,OAAM,CAAC,IAAEiC,eAAE,CAAC,KAAG,KAAK,OAAO,KAAKjC,YAAE,mBAAkB,CAAC,GAAE,EAAC,OAAM,EAAE,MAAK,CAAC;AAAA,IAAC,GAAE,KAAK,+BAA6B,OAAM,MAAG;AAAC,UAAI;AAAE,YAAK,EAAC,OAAM,GAAE,SAAQ5C,IAAE,aAAY,GAAE,aAAYW,IAAE,eAAc,EAAC,IAAE;AAAE,UAAG;AAAC,cAAK,EAAC,WAAUT,IAAE,aAAY,GAAE,iBAAgBwC,GAAC,IAAE1C,GAAE,QAAO,IAAE,MAAM,KAAK,iBAAiB,EAAC,eAAc,GAAE,MAAKoG,YAAE,KAAK,UAAUpG,EAAC,CAAC,GAAE,aAAYW,IAAE,UAAST,GAAE,UAAS,eAAc,EAAC,CAAC,GAAE,IAAE,EAAC,WAAUA,IAAE,cAAa,GAAE,IAAGF,GAAE,IAAG,aAAY,GAAE,eAAc,GAAE,iBAAgB0C,GAAC;AAAE,cAAM,KAAK,eAAe1C,GAAE,IAAG,EAAC,SAAQ,GAAE,cAAa,GAAE,eAAc,EAAC,CAAC,GAAE,MAAIwB,gBAAE,cAAY,IAAEtB,GAAE,SAAS,aAAW,QAAM,EAAE,aAAW,KAAK,OAAO,KAAK,wBAAwBA,GAAE,SAAS,SAAS,SAAS,GAAE,KAAK,OAAO,OAAO,KAAK,wBAAuB,EAAC,OAAM,GAAE,QAAOF,GAAE,QAAO,IAAGA,GAAE,IAAG,eAAc,EAAC,CAAC;AAAA,MAAC,SAAOE,IAAE;AAAC,aAAK,OAAO,OAAO,MAAMA,EAAC;AAAE,cAAM,IAAEF,GAAE,OAAO,UAAU,WAAU0C,KAAE,MAAM,KAAK,OAAO,KAAK,OAAO,mBAAkB,IAAE,KAAK,oBAAoB1C,GAAE,OAAO,UAAU,UAAS,CAAC,GAAE,IAAE,EAAC,MAAKiG,QAAG,mBAAkB,GAAE,iBAAgBvD,GAAC;AAAE,cAAM,KAAK,UAAU,EAAC,IAAG1C,GAAE,IAAG,OAAM,GAAE,OAAME,IAAE,YAAW,GAAE,SAAQ,EAAE,uBAAuB,YAAW,SAAQ,EAAC,CAAC;AAAA,MAAC;AAAA,IAAC,GAAE,KAAK,yCAAuC,OAAG;AAAC,WAAK,oBAAoB,MAAM,KAAK,CAAC;AAAA,IAAC,GAAE,KAAK,uBAAqB,OAAG;AAAC,WAAK,4BAA4B,EAAE,SAAS,IAAG,EAAC,SAAQ,aAAY,MAAK,EAAC,CAAC,GAAE,WAAW,MAAI;AAAC,aAAK,oBAAoB,QAAM,EAAE,MAAK,KAAK,2BAA4B;AAAA,MAAA,GAAE4D,IAAAA,cAAG,KAAK,iBAAiB,CAAC;AAAA,IAAC,GAAE,KAAK,qCAAmC,CAAC,EAAC,OAAM,GAAE,OAAM,EAAC,MAAI;AAAC,YAAM,IAAE,KAAK,OAAO,KAAK,QAAQ;AAAQ,QAAE,SAAO,KAAG,EAAE,OAAO,CAAA9D,OAAGA,GAAE,UAAQ,KAAGA,GAAE,QAAQ,WAAS,mBAAmB,EAAE,QAAQ,CAAAA,OAAG;AAAC,cAAM,IAAEA,GAAE,QAAQ,IAAGW,KAAEiC,YAAE,mBAAkB,CAAC;AAAE,YAAG,KAAK,OAAO,cAAcjC,EAAC,MAAI,EAAE,OAAM,IAAI,MAAM,YAAYA,EAAC,wBAAwB;AAAE,aAAK,OAAO,KAAKiC,YAAE,mBAAkB5C,GAAE,QAAQ,EAAE,GAAE,EAAC,OAAM,EAAC,CAAC;AAAA,MAAC,CAAC;AAAA,IAAC,GAAE,KAAK,6BAA2B,MAAI;AAAC,UAAG,KAAK,oBAAoB,UAAQ,EAAE,QAAO;AAAC,aAAK,OAAO,OAAO,KAAK,0CAA0C;AAAE;AAAA,MAAM;AAAC,YAAM,IAAE,KAAK,oBAAoB,MAAM,CAAC;AAAE,UAAG,CAAC,GAAE;AAAC,aAAK,OAAO,OAAO,KAAK,iCAAiC;AAAE;AAAA,MAAM;AAAC,UAAG;AAAC,aAAK,oBAAoB,QAAM,EAAE,QAAO,KAAK,mBAAmB,CAAC;AAAA,MAAC,SAAO,GAAE;AAAC,aAAK,OAAO,OAAO,MAAM,CAAC;AAAA,MAAC;AAAA,IAAC,GAAE,KAAK,qBAAmB,OAAG;AAAC,WAAK,OAAO,OAAO,KAAK,mBAAkB,CAAC;AAAA,IAAC,GAAE,KAAK,mBAAiB,OAAG;AAAC,UAAG,EAAE,WAAS,KAAK,yBAAyB,IAAI,EAAE,OAAM,EAAE,OAAO,GAAE,EAAE,OAAO;AAAO,YAAM,IAAE,KAAK,OAAO,SAAS,OAAM,EAAG,KAAK,OAAG,EAAE,iBAAe,EAAE,KAAK;AAAE,WAAG,KAAK,wBAAwB,EAAC,OAAM,EAAE,OAAM,SAAQ2F,qBAAG,qBAAoB,EAAC,oBAAmB,EAAE,oBAAmB,oBAAmB,EAAE,oBAAmB,QAAO,EAAE,QAAO,UAAS,EAAE,UAAS,mBAAkB,EAAE,kBAAiB,GAAE,EAAE,EAAE,EAAC,CAAC;AAAA,IAAC,GAAE,KAAK,iBAAe,OAAM,MAAG;AAAC,UAAG,CAACiB,cAAE,CAAC,GAAE;AAAC,cAAK,EAAC,SAAQ,EAAC,IAAE7C,iBAAE,sBAAqB,qBAAqB,KAAK,UAAU,CAAC,CAAC,EAAE;AAAE,cAAM,IAAI,MAAM,CAAC;AAAA,MAAC;AAAC,YAAK,EAAC,cAAa,GAAE,oBAAmB,GAAE,oBAAmB/D,IAAE,mBAAkB,GAAE,QAAOW,GAAC,IAAE;AAAE,UAAGkG,YAAG,CAAC,KAAG,MAAM,KAAK,oBAAoB,CAAC,GAAE,CAACC,cAAGnG,IAAE,IAAE,GAAE;AAAC,cAAK,EAAC,SAAQ,EAAC,IAAEoD,iBAAE,sBAAqB,qBAAqBpD,EAAC,EAAE;AAAE,cAAM,IAAI,MAAM,CAAC;AAAA,MAAC;AAAC,OAACkG,YAAG,CAAC,KAAGE,cAAG,CAAC,MAAI,KAAG,KAAK,mBAAmB,GAAE,oBAAoB,GAAE,CAACF,YAAG7G,EAAC,KAAG+G,cAAG/G,EAAC,MAAI,KAAG,KAAK,mBAAmBA,IAAE,oBAAoB,GAAE6G,YAAG,CAAC,KAAG,KAAK,qBAAqB,GAAE,mBAAmB;AAAA,IAAC,GAAE,KAAK,qBAAmB,CAAC,GAAE,MAAI;AAAC,YAAM,IAAEG,0BAAG,GAAE,aAAY,CAAC;AAAE,UAAG,EAAE,OAAM,IAAI,MAAM,EAAE,OAAO;AAAA,IAAC,GAAE,KAAK,iBAAe,OAAM,MAAG;AAAC,UAAG,CAACJ,cAAE,CAAC,EAAE,OAAM,IAAI,MAAM7C,iBAAE,sBAAqB,qBAAqB,CAAC,EAAE,EAAE,OAAO;AAAE,YAAK,EAAC,IAAG,GAAE,YAAW,GAAE,eAAc/D,IAAE,mBAAkB,EAAC,IAAE;AAAE,WAAK,qBAAqB,CAAC,GAAE,MAAM,KAAK,kBAAkB,CAAC;AAAE,YAAMW,KAAE,KAAK,OAAO,SAAS,IAAI,CAAC,GAAE,IAAEsG,kBAAG,GAAE,WAAW;AAAE,UAAG,EAAE,OAAM,IAAI,MAAM,EAAE,OAAO;AAAE,YAAM/G,KAAEgH,uBAAGvG,GAAE,oBAAmB,GAAE,WAAW;AAAE,UAAGT,GAAE,OAAM,IAAI,MAAMA,GAAE,OAAO;AAAE,UAAG,CAACyB,cAAE3B,IAAE,IAAE,GAAE;AAAC,cAAK,EAAC,SAAQ,EAAC,IAAE+D,iBAAE,sBAAqB,4BAA4B/D,EAAC,EAAE;AAAE,cAAM,IAAI,MAAM,CAAC;AAAA,MAAC;AAAC6G,kBAAG,CAAC,KAAG,KAAK,qBAAqB,GAAE,mBAAmB;AAAA,IAAC,GAAE,KAAK,gBAAc,OAAM,MAAG;AAAC,UAAG,CAACD,cAAE,CAAC,GAAE;AAAC,cAAK,EAAC,SAAQ5G,GAAC,IAAE+D,iBAAE,sBAAqB,oBAAoB,CAAC,EAAE;AAAE,cAAM,IAAI,MAAM/D,EAAC;AAAA,MAAC;AAAC,YAAK,EAAC,IAAG,GAAE,QAAO,EAAC,IAAE;AAAE,UAAG,KAAK,qBAAqB,CAAC,GAAE,MAAM,KAAK,kBAAkB,CAAC,GAAE,CAACmH,mBAAG,CAAC,GAAE;AAAC,cAAK,EAAC,SAAQnH,GAAC,IAAE+D,iBAAE,sBAAqB,oBAAoB,KAAK,UAAU,CAAC,CAAC,EAAE;AAAE,cAAM,IAAI,MAAM/D,EAAC;AAAA,MAAC;AAAA,IAAC,GAAE,KAAK,8BAA4B,OAAG;AAAC,UAAG,CAAC4G,cAAE,CAAC,GAAE;AAAC,cAAK,EAAC,SAAQ1G,GAAC,IAAE6D,iBAAE,sBAAqB,oCAAoC,CAAC,EAAE;AAAE,cAAM,IAAI,MAAM7D,EAAC;AAAA,MAAC;AAAC,YAAK,EAAC,OAAM,GAAE,YAAW,GAAE,YAAWF,IAAE,QAAO,EAAC,IAAE;AAAE,UAAG,CAACoH,aAAG,CAAC,GAAE;AAAC,cAAK,EAAC,SAAQlH,GAAC,IAAE6D,iBAAE,sBAAqB,4DAA4D;AAAE,cAAM,IAAI,MAAM7D,EAAC;AAAA,MAAC;AAAC,YAAMS,KAAE0G,kBAAG,GAAE,0BAA0B;AAAE,UAAG1G,GAAE,OAAM,IAAI,MAAMA,GAAE,OAAO;AAAE,YAAM,IAAEsG,kBAAGjH,IAAE,0BAA0B;AAAE,UAAG,EAAE,OAAM,IAAI,MAAM,EAAE,OAAO;AAAE,UAAGuG,UAAE,CAAC,GAAE;AAAC,cAAK,EAAC,SAAQrG,GAAC,IAAE6D,iBAAE,WAAU,0BAA0B;AAAE,cAAM,IAAI,MAAM7D,EAAC;AAAA,MAAC;AAAA,IAAC,GAAE,KAAK,gBAAc,OAAM,MAAG;AAAC,UAAG,CAAC0G,cAAE,CAAC,GAAE;AAAC,cAAK,EAAC,SAAQ,EAAC,IAAE7C,iBAAE,sBAAqB,oBAAoB,CAAC,EAAE;AAAE,cAAM,IAAI,MAAM,CAAC;AAAA,MAAC;AAAC,YAAK,EAAC,OAAM,GAAE,YAAW,EAAC,IAAE;AAAE,WAAK,qBAAqB,CAAC,GAAE,MAAM,KAAK,oBAAoB,CAAC;AAAE,YAAM/D,KAAE,KAAK,OAAO,QAAQ,IAAI,CAAC,GAAE,IAAEiH,kBAAG,GAAE,UAAU;AAAE,UAAG,EAAE,OAAM,IAAI,MAAM,EAAE,OAAO;AAAE,YAAMtG,KAAEuG,uBAAGlH,GAAE,oBAAmB,GAAE,UAAU;AAAE,UAAGW,GAAE,OAAM,IAAI,MAAMA,GAAE,OAAO;AAAA,IAAC,GAAE,KAAK,gBAAc,OAAM,MAAG;AAAC,UAAG,CAACiG,cAAE,CAAC,GAAE;AAAC,cAAK,EAAC,SAAQ,EAAC,IAAE7C,iBAAE,sBAAqB,oBAAoB,CAAC,EAAE;AAAE,cAAM,IAAI,MAAM,CAAC;AAAA,MAAC;AAAC,YAAK,EAAC,OAAM,EAAC,IAAE;AAAE,WAAK,qBAAqB,CAAC,GAAE,MAAM,KAAK,oBAAoB,CAAC;AAAA,IAAC,GAAE,KAAK,iBAAe,OAAM,MAAG;AAAC,UAAG,CAAC6C,cAAE,CAAC,GAAE;AAAC,cAAK,EAAC,SAAQ,EAAC,IAAE7C,iBAAE,sBAAqB,qBAAqB,CAAC,EAAE;AAAE,cAAM,IAAI,MAAM,CAAC;AAAA,MAAC;AAAC,YAAK,EAAC,OAAM,GAAE,SAAQ,GAAE,SAAQ/D,IAAE,QAAO,EAAC,IAAE;AAAE,WAAK,qBAAqB,CAAC,GAAE,MAAM,KAAK,oBAAoB,CAAC;AAAE,YAAK,EAAC,YAAWW,GAAC,IAAE,KAAK,OAAO,QAAQ,IAAI,CAAC;AAAE,UAAG,CAAC2G,yBAAG3G,IAAEX,EAAC,GAAE;AAAC,cAAK,EAAC,SAAQ,EAAC,IAAE+D,iBAAE,sBAAqB,sBAAsB/D,EAAC,EAAE;AAAE,cAAM,IAAI,MAAM,CAAC;AAAA,MAAC;AAAC,UAAG,CAACuH,eAAG,CAAC,GAAE;AAAC,cAAK,EAAC,SAAQ,EAAC,IAAExD,iBAAE,sBAAqB,aAAa,KAAK,UAAU,CAAC,CAAC,EAAE;AAAE,cAAM,IAAI,MAAM,CAAC;AAAA,MAAC;AAAC,UAAG,CAACyD,yBAAG7G,IAAEX,IAAE,EAAE,MAAM,GAAE;AAAC,cAAK,EAAC,SAAQ,EAAC,IAAE+D,iBAAE,sBAAqB,qBAAqB,EAAE,MAAM,EAAE;AAAE,cAAM,IAAI,MAAM,CAAC;AAAA,MAAC;AAAC,UAAG,KAAG,CAAC0D,qBAAG,GAAE,EAAE,GAAE;AAAC,cAAK,EAAC,SAAQ,EAAC,IAAE1D,iBAAE,sBAAqB,qBAAqB,CAAC,kDAAkD,GAAG,GAAG,QAAQ,GAAG,GAAG,EAAE;AAAE,cAAM,IAAI,MAAM,CAAC;AAAA,MAAC;AAAA,IAAC,GAAE,KAAK,iBAAe,OAAM,MAAG;AAAC,UAAI;AAAE,UAAG,CAAC6C,cAAE,CAAC,GAAE;AAAC,cAAK,EAAC,SAAQ,EAAC,IAAE7C,iBAAE,sBAAqB,qBAAqB,CAAC,EAAE;AAAE,cAAM,IAAI,MAAM,CAAC;AAAA,MAAC;AAAC,YAAK,EAAC,OAAM,GAAE,UAAS/D,GAAC,IAAE;AAAE,UAAG;AAAC,cAAM,KAAK,oBAAoB,CAAC;AAAA,MAAC,SAAO,GAAE;AAAC,eAAM,IAAE,uBAAG,aAAW,QAAM,EAAE,MAAI,KAAK,qBAAqB,CAAC,GAAE;AAAA,MAAC;AAAC,UAAG,CAAC0H,gBAAG1H,EAAC,GAAE;AAAC,cAAK,EAAC,SAAQ,EAAC,IAAE+D,iBAAE,sBAAqB,uBAAuB,KAAK,UAAU/D,EAAC,CAAC,EAAE;AAAE,cAAM,IAAI,MAAM,CAAC;AAAA,MAAC;AAAA,IAAC,GAAE,KAAK,cAAY,OAAM,MAAG;AAAC,UAAG,CAAC4G,cAAE,CAAC,GAAE;AAAC,cAAK,EAAC,SAAQ,EAAC,IAAE7C,iBAAE,sBAAqB,kBAAkB,CAAC,EAAE;AAAE,cAAM,IAAI,MAAM,CAAC;AAAA,MAAC;AAAC,YAAK,EAAC,OAAM,EAAC,IAAE;AAAE,YAAM,KAAK,6BAA6B,CAAC;AAAA,IAAC,GAAE,KAAK,cAAY,OAAM,MAAG;AAAC,UAAG,CAAC6C,cAAE,CAAC,GAAE;AAAC,cAAK,EAAC,SAAQjG,GAAC,IAAEoD,iBAAE,sBAAqB,kBAAkB,CAAC,EAAE;AAAE,cAAM,IAAI,MAAMpD,EAAC;AAAA,MAAC;AAAC,YAAK,EAAC,OAAM,GAAE,OAAM,GAAE,SAAQX,GAAC,IAAE;AAAE,YAAM,KAAK,oBAAoB,CAAC;AAAE,YAAK,EAAC,YAAW,EAAC,IAAE,KAAK,OAAO,QAAQ,IAAI,CAAC;AAAE,UAAG,CAACsH,yBAAG,GAAEtH,EAAC,GAAE;AAAC,cAAK,EAAC,SAAQW,GAAC,IAAEoD,iBAAE,sBAAqB,mBAAmB/D,EAAC,EAAE;AAAE,cAAM,IAAI,MAAMW,EAAC;AAAA,MAAC;AAAC,UAAG,CAACgH,aAAG,CAAC,GAAE;AAAC,cAAK,EAAC,SAAQhH,GAAC,IAAEoD,iBAAE,sBAAqB,iBAAiB,KAAK,UAAU,CAAC,CAAC,EAAE;AAAE,cAAM,IAAI,MAAMpD,EAAC;AAAA,MAAC;AAAC,UAAG,CAACiH,uBAAG,GAAE5H,IAAE,EAAE,IAAI,GAAE;AAAC,cAAK,EAAC,SAAQW,GAAC,IAAEoD,iBAAE,sBAAqB,iBAAiB,KAAK,UAAU,CAAC,CAAC,EAAE;AAAE,cAAM,IAAI,MAAMpD,EAAC;AAAA,MAAC;AAAA,IAAC,GAAE,KAAK,oBAAkB,OAAM,MAAG;AAAC,UAAG,CAACiG,cAAE,CAAC,GAAE;AAAC,cAAK,EAAC,SAAQ,EAAC,IAAE7C,iBAAE,sBAAqB,wBAAwB,CAAC,EAAE;AAAE,cAAM,IAAI,MAAM,CAAC;AAAA,MAAC;AAAC,YAAK,EAAC,OAAM,EAAC,IAAE;AAAE,YAAM,KAAK,6BAA6B,CAAC;AAAA,IAAC,GAAE,KAAK,sBAAoB,OAAG;AAAC,YAAK,EAAC,QAAO,GAAE,KAAI,GAAE,QAAO/D,IAAE,OAAM,EAAC,IAAE;AAAE,UAAG,CAAC,MAAM,QAAQ,CAAC,KAAG,EAAE,WAAS,EAAE,OAAM,IAAI,MAAM,kDAAkD;AAAE,UAAG,CAAC2B,cAAE,GAAE,KAAE,EAAE,OAAM,IAAI,MAAM,2BAA2B;AAAE,UAAG,CAACA,cAAE3B,IAAE,KAAE,EAAE,OAAM,IAAI,MAAM,8BAA8B;AAAE,UAAG,CAAC2B,cAAE,GAAE,KAAE,EAAE,OAAM,IAAI,MAAM,6BAA6B;AAAE,UAAG,CAAC,GAAG,IAAI,IAAI,EAAE,IAAI,OAAGqD,aAAG,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAO,EAAE,OAAM,IAAI,MAAM,mFAAmF;AAAE,YAAK,EAAC,WAAUrE,GAAC,IAAEqE,aAAG,EAAE,CAAC,CAAC;AAAE,UAAGrE,OAAI,SAAS,OAAM,IAAI,MAAM,6GAA6G;AAAA,IAAC,GAAE,KAAK,mBAAiB,OAAM,MAAG;AAAC,YAAK,EAAC,eAAc,GAAE,MAAK,GAAE,aAAYX,IAAE,UAAS,GAAE,eAAcW,GAAC,IAAE,GAAE,IAAE,EAAC,UAAS,EAAC,WAAU,EAAE,aAAWkH,eAAG,YAAW,WAAU,QAAO,EAAE,OAAK,GAAE,EAAC;AAAE,UAAG;AAAC,YAAGlH,OAAIa,gBAAE,WAAU;AAAC,gBAAM,IAAE,KAAK,oBAAoB,GAAEb,EAAC;AAAE,iBAAO,EAAE,SAAS,aAAW,KAAG,IAAI,IAAI,CAAC,EAAE,WAAS,IAAI,IAAI,EAAE,GAAG,EAAE,SAAO,UAAQ,WAAU;AAAA,QAAC;AAAC,cAAMT,KAAE,MAAM,KAAK,OAAO,KAAK,OAAO,QAAQ,EAAC,eAAc,GAAE,MAAK,GAAE,aAAYF,IAAE,WAAU,EAAE,UAAS,CAAC;AAAE,QAAAE,OAAI,EAAE,SAAS,SAAOA,GAAE,QAAO,EAAE,SAAS,SAAOA,GAAE,QAAO,EAAE,SAAS,aAAWA,GAAE,WAAS,IAAI,IAAI,EAAE,GAAG,EAAE,SAAO,UAAQ;AAAA,MAAU,SAAOA,IAAE;AAAC,aAAK,OAAO,OAAO,KAAKA,EAAC;AAAA,MAAC;AAAC,aAAO,KAAK,OAAO,OAAO,MAAM,mBAAmB,KAAK,UAAU,CAAC,CAAC,EAAE,GAAE;AAAA,IAAC,GAAE,KAAK,uBAAqB,CAAC,GAAE,MAAI;AAAC,aAAO,OAAO,CAAC,EAAE,QAAQ,OAAG;AAAC,YAAG,CAACyB,cAAE,GAAE,KAAE,GAAE;AAAC,gBAAK,EAAC,SAAQ3B,GAAC,IAAE+D,iBAAE,sBAAqB,GAAG,CAAC,wDAAwD,KAAK,UAAU,CAAC,CAAC,EAAE;AAAE,gBAAM,IAAI,MAAM/D,EAAC;AAAA,QAAC;AAAA,MAAC,CAAC;AAAA,IAAC,GAAE,KAAK,wBAAsB,OAAG;AAAC,YAAM,IAAE,KAAK,OAAO,KAAK,SAAS,IAAI,CAAC;AAAE,aAAO,OAAO,KAAG,WAAS,IAAE;AAAA,IAAM,GAAE,KAAK,uBAAqB,CAAC,GAAE,MAAI;AAAC,UAAG,KAAK,mBAAmB,IAAI,GAAE,CAAC,GAAE,KAAK,mBAAmB,QAAM,KAAK,sBAAqB;AAAC,YAAI,IAAE;AAAE,cAAMA,KAAE,KAAK,uBAAqB;AAAE,mBAAU,KAAK,KAAK,mBAAmB,KAAM,GAAC;AAAC,cAAG,OAAKA,GAAE;AAAM,eAAK,mBAAmB,OAAO,CAAC;AAAA,QAAC;AAAA,MAAC;AAAA,IAAC,GAAE,KAAK,uBAAqB,OAAG;AAAC,YAAM,IAAE,KAAK,mBAAmB,IAAI,CAAC;AAAE,UAAG,GAAE;AAAC,cAAK,EAAC,SAAQ,EAAC,IAAE+D,iBAAE,sBAAqB,iCAAiC,CAAC,KAAK,CAAC,EAAE;AAAE,cAAM,IAAI,MAAM,CAAC;AAAA,MAAC;AAAA,IAAC,GAAE,KAAK,oBAAkB,CAAC,GAAE,MAAI;AAAC,UAAI,GAAE/D,IAAE,GAAEW,IAAE,GAAET,IAAE,GAAEwC,IAAE;AAAE,aAAM,CAAC,KAAG,MAAIlB,gBAAE,YAAU,UAAKxB,MAAG,IAAE,KAAK,OAAO,aAAW,OAAK,SAAO,EAAE,aAAW,OAAK,SAAOA,GAAE,cAAY,UAAMW,MAAG,IAAE,KAAK,OAAO,aAAW,OAAK,SAAO,EAAE,aAAW,OAAK,SAAOA,GAAE,eAAa,YAAUT,MAAG,IAAE,KAAK,OAAO,aAAW,OAAK,SAAO,EAAE,aAAW,OAAK,SAAOA,GAAE,eAAa,QAAM,IAAE,uBAAG,aAAW,OAAK,SAAO,EAAE,eAAa,YAAUwC,KAAE,uBAAG,aAAW,OAAK,SAAOA,GAAE,eAAa,QAAM,IAAE,uBAAG,aAAW,OAAK,SAAO,EAAE,cAAY,QAAI,KAAK,OAAO,KAAK,sBAAsB,SAAS,EAAE,SAAS,SAAS,KAAG,QAAOI,YAAQ,OAAK,SAAOA,SAAO,WAAS;AAAA,IAAG,GAAE,KAAK,sBAAoB,CAAC,GAAE,MAAI;AAAC,UAAI;AAAE,aAAO,KAAK,kBAAkB,GAAE,CAAC,KAAG,IAAE,uBAAG,aAAW,OAAK,SAAO,EAAE,YAAU;AAAA,IAAM,GAAE,KAAK,wBAAsB,CAAC,EAAC,KAAI,EAAC,MAAI;AAAC,UAAG,CAAC,KAAG,CAAC,EAAE,SAAS,OAAO,KAAG,CAAC,EAAE,SAAS,OAAO,EAAE;AAAO,YAAM,IAAEgF,sBAAG,GAAE,OAAO,KAAG,IAAG,IAAE,mBAAmBA,sBAAG,GAAE,OAAO,KAAG,EAAE,GAAE9H,KAAE,KAAK,OAAO,QAAQ,KAAK,SAAS,CAAC;AAAE,MAAAA,MAAG,KAAK,OAAO,QAAQ,OAAO,GAAE,EAAC,eAAcwB,gBAAE,UAAS,CAAC,GAAE,KAAK,OAAO,KAAK,iBAAiB,EAAC,OAAM,GAAE,SAAQ,GAAE,eAAcxB,GAAC,CAAC;AAAA,IAAC,GAAE,KAAK,4BAA0B,YAAS;AAAC,UAAI;AAAE,UAAG+H,UAAE,KAAIC,oBAAO,IAAE,KAAK,OAAO,SAAS,aAAW,QAAM,EAAE,UAAS;AAAC,cAAM,IAAElF,YAAQ,OAAK,SAAOA,SAAO;AAAQ,YAAG,OAAO,IAAE,KAAI;AAAC,YAAE,iBAAiB,OAAM,KAAK,uBAAsB,KAAK,OAAO,IAAI;AAAE,gBAAM,IAAE,MAAM,EAAE,cAAa;AAAG,eAAG,WAAW,MAAI;AAAC,iBAAK,sBAAsB,EAAC,KAAI,EAAC,CAAC;AAAA,UAAC,GAAE,EAAE;AAAA,QAAC;AAAA,MAAC;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,gBAAe;AAAC,QAAG,CAAC,KAAK,aAAY;AAAC,YAAK,EAAC,SAAQ,EAAC,IAAEiB,iBAAE,mBAAkB,KAAK,IAAI;AAAE,YAAM,IAAI,MAAM,CAAC;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,MAAM,4BAA2B;AAAC,UAAM,KAAK,OAAO,KAAK,QAAQ,0BAAyB;AAAA,EAAE;AAAA,EAAC,wBAAuB;AAAC,SAAK,OAAO,KAAK,QAAQ,GAAG4C,eAAG,SAAQ,OAAG;AAAC,OAAC,KAAK,eAAa,KAAK,kBAAkB,SAAO,IAAE,KAAK,kBAAkB,KAAK,CAAC,IAAE,KAAK,eAAe,CAAC;AAAA,IAAC,CAAC;AAAA,EAAC;AAAA,EAAC,MAAM,eAAe,GAAE;AAAC,UAAK,EAAC,OAAM,GAAE,SAAQ,GAAE,aAAY,GAAE,eAAc3G,GAAC,IAAE,GAAE,EAAC,WAAU,EAAC,IAAE,KAAK,OAAO,KAAK,SAAS,KAAK,SAAS,EAAE,IAAE,KAAK,OAAO,KAAK,SAAS,IAAI,EAAE,IAAE,EAAC,eAAc,QAAO,WAAU,OAAM,GAAEW,KAAE,MAAM,KAAK,OAAO,KAAK,OAAO,OAAO,GAAE,GAAE,EAAC,mBAAkB,GAAE,UAASX,OAAIwB,gBAAE,YAAUqE,YAAGM,OAAE,CAAC;AAAE,QAAG;AAAC8B,uBAAGtH,EAAC,KAAG,KAAK,OAAO,KAAK,QAAQ,IAAI,GAAEA,EAAC,GAAE,KAAK,oBAAoB,EAAC,OAAM,GAAE,SAAQA,IAAE,aAAY,GAAE,eAAcX,IAAE,aAAYoG,YAAE,CAAC,EAAC,CAAC,KAAG8B,kBAAGvH,EAAC,KAAG,MAAM,KAAK,OAAO,KAAK,QAAQ,QAAQA,EAAC,GAAE,MAAM,KAAK,qBAAqB,EAAC,OAAM,GAAE,SAAQA,IAAE,eAAcX,GAAC,CAAC,GAAE,KAAK,OAAO,KAAK,QAAQ,OAAO,GAAEW,GAAE,EAAE,KAAG,KAAK,2BAA2B,EAAC,OAAM,GAAE,SAAQA,IAAE,eAAcX,GAAC,CAAC;AAAA,IAAC,SAAO,GAAE;AAAC,WAAK,OAAO,OAAO,MAAM,CAAC;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,wBAAuB;AAAC,SAAK,OAAO,KAAK,QAAQ,GAAGmI,eAAG,SAAQ,OAAM,MAAG;AAAC,YAAK,EAAC,OAAM,GAAE,IAAG,EAAC,IAAEC,mBAAG,EAAE,MAAM;AAAE,UAAG,KAAG,KAAK,OAAO,eAAe,KAAK,SAAS,CAAC,EAAE,QAAO,MAAM,KAAK,4BAA4B,GAAErE,iBAAE,SAAS,GAAE,IAAE;AAAE,UAAG,KAAG,KAAK,OAAO,KAAK,SAAS,KAAK,SAAS,CAAC,EAAE,QAAO,MAAM,KAAK,yBAAyB,GAAEA,iBAAE,SAAS,GAAE,IAAE;AAAE,UAAE,KAAK,OAAO,QAAQ,KAAK,SAAS,CAAC,MAAI,MAAM,KAAK,cAAc,EAAC,OAAM,GAAE,mBAAkB,KAAE,CAAC,GAAE,KAAK,OAAO,OAAO,KAAK,kBAAiB,EAAC,OAAM,EAAC,CAAC,KAAG,MAAI,MAAM,KAAK,eAAe,GAAE,IAAE,GAAE,KAAK,OAAO,OAAO,KAAK,mBAAkB,EAAC,IAAG,EAAC,CAAC;AAAA,IAAE,CAAC;AAAA,EAAC;AAAA,EAAC,wBAAuB;AAAC,SAAK,OAAO,KAAK,QAAQ,OAAO,GAAGsE,eAAG,QAAO,OAAG,KAAK,iBAAiB,CAAC,CAAC,GAAE,KAAK,OAAO,KAAK,QAAQ,OAAO,GAAGA,eAAG,QAAO,OAAG;AAAC,WAAK,qBAAqB,EAAE,OAAM,SAAS;AAAA,IAAC,CAAC;AAAA,EAAC;AAAA,EAAC,oBAAoB,GAAE;AAAC,QAAG,CAAC1G,cAAE,GAAE,KAAE,GAAE;AAAC,YAAK,EAAC,SAAQ,EAAC,IAAEoC,iBAAE,sBAAqB,qCAAqC,CAAC,EAAE;AAAE,YAAM,IAAI,MAAM,CAAC;AAAA,IAAC;AAAC,QAAG,CAAC,KAAK,OAAO,KAAK,QAAQ,SAAS,KAAK,SAAS,CAAC,GAAE;AAAC,YAAK,EAAC,SAAQ,EAAC,IAAEA,iBAAE,mBAAkB,gCAAgC,CAAC,EAAE;AAAE,YAAM,IAAI,MAAM,CAAC;AAAA,IAAC;AAAC,QAAGwC,UAAE,KAAK,OAAO,KAAK,QAAQ,SAAS,IAAI,CAAC,EAAE,MAAM,GAAE;AAAC,YAAK,EAAC,SAAQ,EAAC,IAAExC,iBAAE,WAAU,kBAAkB,CAAC,EAAE;AAAE,YAAM,IAAI,MAAM,CAAC;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,MAAM,oBAAoB,GAAE;AAAC,QAAG,CAACpC,cAAE,GAAE,KAAE,GAAE;AAAC,YAAK,EAAC,SAAQ,EAAC,IAAEoC,iBAAE,sBAAqB,qCAAqC,CAAC,EAAE;AAAE,YAAM,IAAI,MAAM,CAAC;AAAA,IAAC;AAAC,QAAG,KAAK,qBAAqB,CAAC,GAAE,CAAC,KAAK,OAAO,QAAQ,KAAK,SAAS,CAAC,GAAE;AAAC,YAAK,EAAC,SAAQ,EAAC,IAAEA,iBAAE,mBAAkB,gCAAgC,CAAC,EAAE;AAAE,YAAM,IAAI,MAAM,CAAC;AAAA,IAAC;AAAC,QAAGwC,UAAE,KAAK,OAAO,QAAQ,IAAI,CAAC,EAAE,MAAM,GAAE;AAAC,YAAM,KAAK,cAAc,EAAC,OAAM,EAAC,CAAC;AAAE,YAAK,EAAC,SAAQ,EAAC,IAAExC,iBAAE,WAAU,kBAAkB,CAAC,EAAE;AAAE,YAAM,IAAI,MAAM,CAAC;AAAA,IAAC;AAAC,QAAG,CAAC,KAAK,OAAO,KAAK,OAAO,SAAS,IAAI,CAAC,GAAE;AAAC,YAAK,EAAC,SAAQ,EAAC,IAAEA,iBAAE,sBAAqB,6CAA6C,CAAC,EAAE;AAAE,YAAM,MAAM,KAAK,cAAc,EAAC,OAAM,EAAC,CAAC,GAAE,IAAI,MAAM,CAAC;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,MAAM,6BAA6B,GAAE;AAAC,QAAG,KAAK,qBAAqB,CAAC,GAAE,KAAK,OAAO,QAAQ,KAAK,SAAS,CAAC,EAAE,OAAM,KAAK,oBAAoB,CAAC;AAAA,aAAU,KAAK,OAAO,KAAK,QAAQ,SAAS,KAAK,SAAS,CAAC,EAAE,MAAK,oBAAoB,CAAC;AAAA,aAAUpC,cAAE,GAAE,KAAE,GAAE;AAAC,YAAK,EAAC,SAAQ,EAAC,IAAEoC,iBAAE,mBAAkB,2CAA2C,CAAC,EAAE;AAAE,YAAM,IAAI,MAAM,CAAC;AAAA,IAAC,OAAK;AAAC,YAAK,EAAC,SAAQ,EAAC,IAAEA,iBAAE,sBAAqB,gDAAgD,CAAC,EAAE;AAAE,YAAM,IAAI,MAAM,CAAC;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,MAAM,kBAAkB,GAAE;AAAC,QAAG,CAACuE,UAAG,CAAC,GAAE;AAAC,YAAK,EAAC,SAAQ,EAAC,IAAEvE,iBAAE,sBAAqB,mCAAmC,CAAC,EAAE;AAAE,YAAM,IAAI,MAAM,CAAC;AAAA,IAAC;AAAC,QAAG,CAAC,KAAK,OAAO,SAAS,KAAK,SAAS,CAAC,GAAE;AAAC,YAAK,EAAC,SAAQ,EAAC,IAAEA,iBAAE,mBAAkB,8BAA8B,CAAC,EAAE;AAAE,YAAM,IAAI,MAAM,CAAC;AAAA,IAAC;AAAC,QAAGwC,UAAE,KAAK,OAAO,SAAS,IAAI,CAAC,EAAE,eAAe,GAAE;AAAC,YAAM,KAAK,eAAe,CAAC;AAAE,YAAK,EAAC,SAAQ,EAAC,IAAExC,iBAAE,WAAU,gBAAgB,CAAC,EAAE;AAAE,YAAM,IAAI,MAAM,CAAC;AAAA,IAAC;AAAA,EAAC;AAAC;AAAC,MAAM,WAAWwE,MAAC;AAAA,EAAC,YAAY,GAAE,GAAE;AAAC,UAAM,GAAE,GAAE,IAAG,EAAE,GAAE,KAAK,OAAK,GAAE,KAAK,SAAO;AAAA,EAAC;AAAC;AAAC,MAAM,WAAWA,MAAC;AAAA,EAAC,YAAY,GAAE,GAAE;AAAC,UAAM,GAAE,GAAE,IAAG,EAAE,GAAE,KAAK,OAAK,GAAE,KAAK,SAAO;AAAA,EAAC;AAAC;AAAC,MAAM,WAAWA,MAAC;AAAA,EAAC,YAAY,GAAE,GAAE;AAAC,UAAM,GAAE,GAAE,IAAG,IAAG,OAAG,EAAE,EAAE,GAAE,KAAK,OAAK,GAAE,KAAK,SAAO;AAAA,EAAC;AAAC;AAAC,MAAM,WAAWA,MAAC;AAAA,EAAC,YAAY,GAAE,GAAE;AAAC,UAAM,GAAE,GAAE,IAAG,IAAG,MAAI,EAAE,GAAE,KAAK,OAAK,GAAE,KAAK,SAAO;AAAA,EAAC;AAAC;AAAC,MAAM,WAAWA,MAAC;AAAA,EAAC,YAAY,GAAE,GAAE;AAAC,UAAM,GAAE,GAAE,IAAG,EAAE,GAAE,KAAK,OAAK,GAAE,KAAK,SAAO;AAAA,EAAC;AAAC;AAAC,MAAM,WAAWA,MAAC;AAAA,EAAC,YAAY,GAAE,GAAE;AAAC,UAAM,GAAE,GAAE,IAAG,IAAG,OAAG,EAAE,EAAE,GAAE,KAAK,OAAK,GAAE,KAAK,SAAO;AAAA,EAAC;AAAC;AAAC,MAAM,GAAE;AAAA,EAAC,YAAY,GAAE,GAAE;AAAC,SAAK,OAAK,GAAE,KAAK,SAAO,GAAE,KAAK,WAAS,IAAI,GAAG,KAAK,MAAK,KAAK,MAAM,GAAE,KAAK,gBAAc,IAAI,GAAG,KAAK,MAAK,KAAK,MAAM,GAAE,KAAK,WAAS,IAAI,GAAG,KAAK,MAAK,KAAK,MAAM;AAAA,EAAC;AAAA,EAAC,MAAM,OAAM;AAAC,UAAM,KAAK,SAAS,KAAI,GAAG,MAAM,KAAK,cAAc,KAAM,GAAC,MAAM,KAAK,SAAS,KAAI;AAAA,EAAE;AAAC;AAAC,MAAM,WAAWC,EAAE;AAAA,EAAC,YAAY,GAAE;AAAC,UAAM,CAAC,GAAE,KAAK,WAAS,IAAG,KAAK,UAAQ,IAAG,KAAK,OAAK,GAAG,MAAK,KAAK,SAAO,IAAIC,cAAAA,gBAAG,KAAK,KAAG,CAAC,GAAE,MAAI,KAAK,OAAO,GAAG,GAAE,CAAC,GAAE,KAAK,OAAK,CAAC,GAAE,MAAI,KAAK,OAAO,KAAK,GAAE,CAAC,GAAE,KAAK,MAAI,CAAC,GAAE,MAAI,KAAK,OAAO,IAAI,GAAE,CAAC,GAAE,KAAK,iBAAe,CAAC,GAAE,MAAI,KAAK,OAAO,eAAe,GAAE,CAAC,GAAE,KAAK,qBAAmB,OAAG,KAAK,OAAO,mBAAmB,CAAC,GAAE,KAAK,UAAQ,OAAM,MAAG;AAAC,UAAG;AAAC,eAAO,MAAM,KAAK,OAAO,QAAQ,CAAC;AAAA,MAAC,SAAO,GAAE;AAAC,cAAM,KAAK,OAAO,MAAM,EAAE,OAAO,GAAE;AAAA,MAAC;AAAA,IAAC,GAAE,KAAK,OAAK,OAAM,MAAG;AAAC,UAAG;AAAC,eAAO,MAAM,KAAK,OAAO,KAAK,CAAC;AAAA,MAAC,SAAO,GAAE;AAAC,cAAM,KAAK,OAAO,MAAM,EAAE,OAAO,GAAE;AAAA,MAAC;AAAA,IAAC,GAAE,KAAK,UAAQ,OAAM,MAAG;AAAC,UAAG;AAAC,eAAO,MAAM,KAAK,OAAO,QAAQ,CAAC;AAAA,MAAC,SAAO,GAAE;AAAC,cAAM,KAAK,OAAO,MAAM,EAAE,OAAO,GAAE;AAAA,MAAC;AAAA,IAAC,GAAE,KAAK,SAAO,OAAM,MAAG;AAAC,UAAG;AAAC,eAAO,MAAM,KAAK,OAAO,OAAO,CAAC;AAAA,MAAC,SAAO,GAAE;AAAC,cAAM,KAAK,OAAO,MAAM,EAAE,OAAO,GAAE;AAAA,MAAC;AAAA,IAAC,GAAE,KAAK,SAAO,OAAM,MAAG;AAAC,UAAG;AAAC,eAAO,MAAM,KAAK,OAAO,OAAO,CAAC;AAAA,MAAC,SAAO,GAAE;AAAC,cAAM,KAAK,OAAO,MAAM,EAAE,OAAO,GAAE;AAAA,MAAC;AAAA,IAAC,GAAE,KAAK,SAAO,OAAM,MAAG;AAAC,UAAG;AAAC,eAAO,MAAM,KAAK,OAAO,OAAO,CAAC;AAAA,MAAC,SAAO,GAAE;AAAC,cAAM,KAAK,OAAO,MAAM,EAAE,OAAO,GAAE;AAAA,MAAC;AAAA,IAAC,GAAE,KAAK,UAAQ,OAAM,MAAG;AAAC,UAAG;AAAC,eAAO,MAAM,KAAK,OAAO,QAAQ,CAAC;AAAA,MAAC,SAAO,GAAE;AAAC,cAAM,KAAK,OAAO,MAAM,EAAE,OAAO,GAAE;AAAA,MAAC;AAAA,IAAC,GAAE,KAAK,UAAQ,OAAM,MAAG;AAAC,UAAG;AAAC,eAAO,MAAM,KAAK,OAAO,QAAQ,CAAC;AAAA,MAAC,SAAO,GAAE;AAAC,cAAM,KAAK,OAAO,MAAM,EAAE,OAAO,GAAE;AAAA,MAAC;AAAA,IAAC,GAAE,KAAK,OAAK,OAAM,MAAG;AAAC,UAAG;AAAC,eAAO,MAAM,KAAK,OAAO,KAAK,CAAC;AAAA,MAAC,SAAO,GAAE;AAAC,cAAM,KAAK,OAAO,MAAM,EAAE,OAAO,GAAE;AAAA,MAAC;AAAA,IAAC,GAAE,KAAK,OAAK,OAAM,MAAG;AAAC,UAAG;AAAC,eAAO,MAAM,KAAK,OAAO,KAAK,CAAC;AAAA,MAAC,SAAO,GAAE;AAAC,cAAM,KAAK,OAAO,MAAM,EAAE,OAAO,GAAE;AAAA,MAAC;AAAA,IAAC,GAAE,KAAK,aAAW,OAAM,MAAG;AAAC,UAAG;AAAC,eAAO,MAAM,KAAK,OAAO,WAAW,CAAC;AAAA,MAAC,SAAO,GAAE;AAAC,cAAM,KAAK,OAAO,MAAM,EAAE,OAAO,GAAE;AAAA,MAAC;AAAA,IAAC,GAAE,KAAK,OAAK,OAAG;AAAC,UAAG;AAAC,eAAO,KAAK,OAAO,KAAK,CAAC;AAAA,MAAC,SAAO,GAAE;AAAC,cAAM,KAAK,OAAO,MAAM,EAAE,OAAO,GAAE;AAAA,MAAC;AAAA,IAAC,GAAE,KAAK,4BAA0B,MAAI;AAAC,UAAG;AAAC,eAAO,KAAK,OAAO;MAA2B,SAAO,GAAE;AAAC,cAAM,KAAK,OAAO,MAAM,EAAE,OAAO,GAAE;AAAA,MAAC;AAAA,IAAC,GAAE,KAAK,eAAa,OAAM,GAAE,MAAI;AAAC,UAAG;AAAC,eAAO,MAAM,KAAK,OAAO,aAAa,GAAE,CAAC;AAAA,MAAC,SAAOzI,IAAE;AAAC,cAAM,KAAK,OAAO,MAAMA,GAAE,OAAO,GAAEA;AAAA,MAAC;AAAA,IAAC,GAAE,KAAK,oBAAkB,OAAG;AAAC,UAAG;AAAC,eAAO,KAAK,OAAO,kBAAkB,CAAC;AAAA,MAAC,SAAO,GAAE;AAAC,cAAM,KAAK,OAAO,MAAM,EAAE,OAAO,GAAE;AAAA,MAAC;AAAA,IAAC,GAAE,KAAK,6BAA2B,OAAM,MAAG;AAAC,UAAG;AAAC,eAAO,MAAM,KAAK,OAAO,2BAA2B,CAAC;AAAA,MAAC,SAAO,GAAE;AAAC,cAAM,KAAK,OAAO,MAAM,EAAE,OAAO,GAAE;AAAA,MAAC;AAAA,IAAC,GAAE,KAAK,4BAA0B,OAAM,MAAG;AAAC,UAAG;AAAC,eAAO,MAAM,KAAK,OAAO,0BAA0B,CAAC;AAAA,MAAC,SAAO,GAAE;AAAC,cAAM,KAAK,OAAO,MAAM,EAAE,OAAO,GAAE;AAAA,MAAC;AAAA,IAAC,GAAE,KAAK,QAAK,uBAAG,SAAM,GAAG,MAAK,KAAK,YAAS,uBAAG,aAAU0I,eAAE,GAAG,KAAK,aAAW,uBAAG;AAAW,UAAM,IAAE,QAAO,uBAAG,UAAO,OAAK,QAAO,uBAAG,WAAQ,WAAS,EAAE,SAAO,GAAGC,EAAG,EAAC,QAAM,uBAAG,WAAQ,GAAG,OAAM,CAAC,CAAC;AAAE,SAAK,QAAK,uBAAG,SAAM,IAAIC,KAAG,CAAC,GAAE,KAAK,SAAOC,EAAG,GAAE,KAAK,IAAI,GAAE,KAAK,UAAQ,IAAI,GAAG,KAAK,MAAK,KAAK,MAAM,GAAE,KAAK,WAAS,IAAI,GAAG,KAAK,MAAK,KAAK,MAAM,GAAE,KAAK,iBAAe,IAAI,GAAG,KAAK,MAAK,KAAK,MAAM,GAAE,KAAK,SAAO,IAAI,GAAG,IAAI,GAAE,KAAK,OAAK,IAAI,GAAG,KAAK,MAAK,KAAK,MAAM;AAAA,EAAC;AAAA,EAAC,aAAa,KAAK,GAAE;AAAC,UAAM,IAAE,IAAI,GAAG,CAAC;AAAE,WAAO,MAAM,EAAE,WAAU,GAAG;AAAA,EAAC;AAAA,EAAC,IAAI,UAAS;AAAC,WAAOC,EAAG,KAAK,MAAM;AAAA,EAAC;AAAA,EAAC,IAAI,UAAS;AAAC,WAAO,KAAK,KAAK,QAAQ;AAAA,EAAQ;AAAA,EAAC,MAAM,aAAY;AAAC,SAAK,OAAO,MAAM,aAAa;AAAE,QAAG;AAAC,YAAM,KAAK,KAAK,SAAQ,MAAM,KAAK,QAAQ,KAAM,GAAC,MAAM,KAAK,SAAS,KAAI,GAAG,MAAM,KAAK,eAAe,KAAM,GAAC,MAAM,KAAK,KAAK,KAAI,GAAG,MAAM,KAAK,OAAO,KAAM,GAAC,KAAK,OAAO,KAAK,mCAAmC,GAAE,KAAK,OAAO;IAA0B,SAAO,GAAE;AAAC,YAAM,KAAK,OAAO,KAAK,mCAAmC,GAAE,KAAK,OAAO,MAAM,EAAE,OAAO,GAAE;AAAA,IAAC;AAAA,EAAC;AAAC;ACAh9yD,IAAA,kBAAA,MAAM,cAAc;AAAA,EACvB,YAAY,WAAW,QAAQ;AAC3B,SAAK,WAAW;AAChB,SAAK,WAAW;AAAA,EACxB;AAAA,EACI,YAAY,OAAO;AACf,SAAK,WAAW;AAAA,EACxB;AAAA,EACI,cAAc;AACV,WAAO,KAAK;AAAA,EACpB;AAAA,EACI,MAAM,YAAY,MAAM;AACpB,QAAI,CAAC,SAAS,QAAQ,QAAQ,OAAO,EAAE,SAAS,KAAK,QAAQ,GAAG;AAC5D,cAAQ,MAAM,WAAW,OAAO,IAAI,GAAG,IAAI;AAAA,IACvD;AAAA,EACA;AAAA,EACI,KAAK,YAAY,MAAM;AACnB,QAAI,CAAC,QAAQ,QAAQ,OAAO,EAAE,SAAS,KAAK,QAAQ,GAAG;AACnD,cAAQ,KAAK,UAAU,OAAO,IAAI,GAAG,IAAI;AAAA,IACrD;AAAA,EACA;AAAA,EACI,KAAK,YAAY,MAAM;AACnB,QAAI,CAAC,QAAQ,OAAO,EAAE,SAAS,KAAK,QAAQ,GAAG;AAC3C,cAAQ,KAAK,UAAU,OAAO,IAAI,GAAG,IAAI;AAAA,IACrD;AAAA,EACA;AAAA,EACI,MAAM,YAAY,MAAM;AACpB,QAAI,KAAK,aAAa,SAAS;AAC3B,cAAQ,MAAM,WAAW,OAAO,IAAI,GAAG,IAAI;AAAA,IACvD;AAAA,EACA;AACA;AC/BO,MAAM,6BAA6B,MAAM;AAAA,EAC5C,YAAY,SAAS;AACjB,UAAM,OAAO;AACb,SAAK,OAAO;AAAA,EACpB;AACA;ACmBA,MAAM,UAAU,CAAE;AACX,MAAM,WAAW;AAAA,EACpB,YAAY,WAAW,YAAY,OAAO,WAAW,SAAS,SAAS,aAAa,WAAW,SAAS;AACpG,SAAK,YAAY;AACjB,SAAK,aAAa;AAClB,SAAK,QAAQ;AACb,SAAK,WAAW;AAChB,SAAK,cAAc;AACnB,SAAK,SAAS,IAAIC,gBAAc,QAAQ;AAAA,EAChD;AAAA;AAAA;AAAA;AAAA;AAAA,EAKI,YAAY,OAAO;AACf,QAAI,KAAK,kBAAkBA,iBAAe;AACtC,WAAK,OAAO,YAAY,KAAK;AAAA,IACzC;AAAA,EACA;AAAA,EACI,mBAAmB;AACf,UAAM,iBAAiB,KAAK,SAAS,SAAU;AAC/C,QAAI,CAAC,QAAQ,cAAc,GAAG;AAC1B,cAAQ,cAAc,IAAI,OAAO,QAAQ,cAAc;AAAA,IACnE;AACQ,WAAO,QAAQ,cAAc;AAAA,EACrC;AAAA,EACI,IAAI,mBAAmB;AACnB,WAAO,GAAG,sBAAsB,KAAK,QAAQ,CAAC,IAAI,KAAK,UAAU,SAAQ,CAAE;AAAA,EACnF;AAAA,EACI,gBAAgB,eAAe;AAC3B,UAAM,WAAW,OAAO,OAAO,KAAK,iBAAgB,EAAG,OAAO,EAAE,IAAI,CAAC,MAAM,OAAO,MAAM,WAAW,UAAU,WAAW,CAAC,IAAI,CAAC;AAE9H,aAAS/I,KAAI,SAAS,SAAS,GAAGA,KAAI,GAAGA,MAAK;AAC1C,YAAM,IAAI,KAAK,MAAM,KAAK,YAAYA,KAAI,EAAE;AAC5C,OAAC,SAASA,EAAC,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,SAASA,EAAC,CAAC;AAAA,IAClE;AACQ,WAAO,SAAS,MAAM,GAAG,aAAa;AAAA,EAC9C;AAAA,EACI,QAAQ,SAAS;AACb,QAAI,IAAI;AAER,QAAI,GAAG,MAAM,KAAK,SAAS,QAAQ,SAAS,SAAS,SAAS,KAAK,gBAAgB,QAAQ,OAAO,SAAS,SAAS,GAAG,aAAa,QAAQ,OAAO,SAAS,SAAS,GAAG,IAAI,KAAK,KAAK,IAAI;AACtL,WAAK,OAAO,MAAM,mFAAmF;AAErG,WAAK,WAAW,KAAK;AAAA,QACjB,OAAO,KAAK;AAAA,QACZ,OAAO;AAAA,UACH,MAAM;AAAA,UACN,MAAM,EAAE,OAAO,KAAK,MAAO;AAAA,QAC9B;AAAA,QACD,SAAS,sBAAsB,KAAK,QAAQ;AAAA,MAC5D,CAAa;AACD,YAAM,IAAI,qBAAqB,2DAA2D;AAAA,IACtG;AACQ,QAAI,KAAK;AACL,oBAAc,KAAK,WAAW;AAClC,WAAO,KAAK,WAAW,QAAQ;AAAA,MAC3B,OAAO,KAAK;AAAA,MACZ;AAAA,MACA,SAAS,sBAAsB,KAAK,QAAQ;AAAA,IACxD,CAAS;AAAA,EACT;AAAA,EACI,eAAe;AACX,WAAO,KAAK;AAAA,EACpB;AAAA,EACI,gBAAgB;AACZ,UAAM,IAAI,MAAM,yBAAyB;AAAA,EACjD;AAAA,EACI,cAAc;AACV,WAAO,KAAK;AAAA,EACpB;AAAA,EACI,aAAa;AACT,WAAO,KAAK,iBAAgB,EAAG;AAAA,EACvC;AAAA,EACI,mBAAmB;AACf,WAAO,KAAK,iBAAgB,EAAG;AAAA,EACvC;AAAA,EACI,oBAAoB;AAChB,WAAO,KAAK,KAAK,IAAI,oBAAqB,EAAC,aAAa,KAAK,SAAS,CAAC;AAAA,EAC/E;AAAA,EACI,iBAAiB;AACb,WAAO,KAAK,KAAK,IAAI,iBAAkB,EAAC,aAAa,KAAK,SAAS,CAAC;AAAA,EAC5E;AAAA,EACI,oBAAoB;AAChB,WAAO,KAAK,KAAK,IAAI,oBAAqB,EAAC,aAAa,KAAK,SAAS,CAAC;AAAA,EAC/E;AAAA,EACI,cAAc;AACV,WAAO,KAAK,WAAW;AAAA,EAC/B;AAAA,EACI,MAAM,KAAK,MAAM,cAAc;AAAA,IAC3B,UAAU;AAAA,EAClB,GAAO;AACC,QAAI;AACA,YAAM,gBAAgB,YAAY,aAAa,WACzC,yBAAyB,KAAK,CAAC,CAAC,IAChC,mBAAmB,KAAK,CAAC,CAAC;AAChC,YAAM,EAAE,aAAY,IAAK,MAAM,KAAK,QAAQ;AAAA,QACxC,QAAQ,oBAAoB;AAAA,QAC5B,QAAQ;AAAA,UACJ,iBAAiB,KAAK;AAAA,UACtB,SAAS;AAAA,QACZ;AAAA,MACjB,CAAa;AACD,YAAM,SAAS,2BAA2B,YAAY;AACtD,YAAM,kBAAkB,IAAI,gBAAgB;AAAA,QACxC,WAAW,KAAK,aAAc;AAAA,QAC9B,WAAW,UAAU,UAAU,OAAO,QAAQ,CAAC,EAAE,YAAY;AAAA,QAC7D,WAAW,OAAO,QAAQ,CAAC,EAAE,WACzB,OAAO,QAAQ,CAAC,EAAE;AAAA,MACtC,CAAa;AACD,WAAK,OAAO,MAAM,0BAA0B;AAC5C,aAAO,CAAC,eAAe;AAAA,IACnC,SACe,OAAO;AACV,WAAK,OAAO,MAAM,uBAAuB,KAAK;AAC9C,YAAM;AAAA,IAClB;AAAA,EACA;AAAA,EACI,MAAM,iBAAiB,aAAa;AAChC,UAAM,IAAI,MAAM,yBAAyB;AAAA,EACjD;AAAA,EACI,MAAM,oBAAoB,aAAa;AACnC,WAAO,YACF,kBAAkB,KAAK,gBAAgB,EAAE,CAAC,EAC1C,iBAAiB,cAAc,SAAS,KAAK,aAAc,CAAA,CAAC;AAAA,EACzE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASI,MAAM,gBAAgB,aAAa;AAC/B,QAAI;AACJ,QAAI,CAAC,YAAY,kBAAkB,YAAY,eAAe,WAAW;AACrE,sBAAgB,KAAK,gBAAgB,CAAC,EAAE,CAAC;AAAA;AAEzC,sBAAgB,YAAY,eAAe,CAAC;AAChD,UAAM,kBAAkB,6BAA6B,aAAa,aAAa;AAC/E,QAAI,CAAC;AACD,YAAM,IAAI,MAAM,sCAAsC;AAC1D,UAAM,wBAAwB,8BAA8B,eAAe;AAC3E,UAAM,EAAE,aAAY,IAAK,MAAM,KAAK,QAAQ;AAAA,MACxC,QAAQ,oBAAoB;AAAA,MAC5B,QAAQ;AAAA,QACJ,iBAAiB,KAAK;AAAA,QACtB,iBAAiB;AAAA,MACpB;AAAA,IACb,CAAS;AACD,UAAM,SAAS,2BAA2B,YAAY;AACtD,UAAM,YAAY,yBAAyB,qBAAqB;AAChE,UAAM,QAAQ,MAAM,YAAY,OAAO,EAAE,WAAW,QAAQ,EAAE,OAAQ;AACtE,WAAO,YAAY,UAAU,KAAK;AAAA,EAC1C;AAAA,EACI,MAAM,8BAA8B,SAAS;AACzC,QAAI;AACA,YAAM,iBAAiB,QAAQ,QAAS;AACxC,WAAK,OAAO,MAAM,mCAAmC,gBAAgB,OAAO;AAC5E,YAAM,cAAc,YAAY,UAAU,cAAc;AACxD,WAAK,OAAO,MAAM,iCAAiC,WAAW;AAC9D,YAAM,SAAS,MAAM,KAAK,QAAQ;AAAA,QAC9B,QAAQ,oBAAoB;AAAA,QAC5B,QAAQ;AAAA,UACJ,iBAAiB,KAAK;AAAA,UACtB,iBAAiB,0BAA0B,WAAW;AAAA,QACzD;AAAA,MACjB,CAAa;AACD,WAAK,OAAO,MAAM,4CAA4C;AAC9D,aAAO,EAAE,QAAQ,oBAAoB,SAAS,MAAM,EAAG;AAAA,IACnE,SACe,OAAO;AACV,WAAK,OAAO,MAAM,wCAAwC,KAAK;AAC/D,aAAO,EAAE,MAAO;AAAA,IAC5B;AAAA,EACA;AAAA,EACI,MAAM,oBAAoB,OAAO,4BAA4B;AACzD,QAAI,iBAAiB,qBAAqB;AACtC,YAAM,kCAAkC,2BAA2B,MAAM,GAAG;AAC5E,YAAMgJ,QAAO,gCAAgC,IAAI,CAAC,MAAM,yBAAyB,CAAC,CAAC;AACnF,aAAOA,MAAK,IAAI,CAAC,MAAM,kBAAkB,UAAU,CAAC,CAAC;AAAA,IACjE;AACQ,UAAM,OAAO,yBAAyB,0BAA0B;AAChE,QAAI,iBAAiB,qBAAqB;AACtC,aAAO,eAAe,UAAU,IAAI;AAAA,IAChD,WACiB,iBAAiB,kBAAkB;AACxC,aAAO,YAAY,UAAU,IAAI;AAAA,IAC7C,WACiB,iBAAiB,yBAAyB;AAC/C,aAAO,mBAAmB,UAAU,IAAI;AAAA,IACpD,WACiB,iBAAiB,wBAAwB;AAC9C,aAAO,kBAAkB,UAAU,IAAI;AAAA,IACnD,OACa;AACD,YAAM,IAAI,MAAM,wBAAwB;AAAA,IACpD;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQI,MAAM,+BAA+B,SAAS;AAC1C,QAAI;AACA,YAAM,YAAY,KAAK,aAAa,SAAS;AAC7C,YAAM,SAAS,YAAY,OAAO,WAAY,IAAG,OAAO,WAAY;AACpE,YAAM,UAAU,wBAAwB,UAAU,QAAQ,QAAO,CAAE;AACnE,YAAM,SAAS,MAAM,QAAQ,QAAQ,MAAM;AAC3C,aAAO,EAAE,OAAQ;AAAA,IAC7B,SACe,OAAO;AACV,aAAO,EAAE,MAAO;AAAA,IAC5B;AAAA,EACA;AAAA,EACI,MAAM,wBAAwB,SAAS;AACnC,QAAI;AACA,YAAM,iBAAiB,mBAAmB;AAC1C,UAAI,gBAAgB;AAChB,aAAK,OAAO,MAAM,4CAA4C,OAAO;AACrE,cAAMC,UAAS,MAAM,KAAK,+BAA+B,OAAO;AAChE,YAAI,EAAEA,YAAW,QAAQA,YAAW,SAAS,SAASA,QAAO,QAAQ;AACjE,iBAAO,EAAE,QAAQA,QAAO,OAAQ;AAAA,QACpD;AACgB,aAAK,OAAO,MAAM,0DAA0DA,QAAO,KAAK;AAAA,MACxG;AAKY,YAAM,QAAQ,iBACR,wBAAwB,UAAU,QAAQ,QAAS,CAAA,IACnD,MAAM,UAAU,QAAQ,SAAS;AACvC,WAAK,OAAO,MAAM,2BAA2B,OAAO,oBAAoB,KAAK,GAAG,cAAc;AAC9F,YAAM,SAAS,MAAM,KAAK,QAAQ;AAAA,QAC9B,QAAQ,oBAAoB;AAAA,QAC5B,QAAQ;AAAA,UACJ,iBAAiB,KAAK;AAAA,UACtB,OAAO,oBAAoB,KAAK;AAAA,QACnC;AAAA,MACjB,CAAa;AACD,WAAK,OAAO,MAAM,wCAAwC,MAAM;AAChE,aAAO,EAAE,QAAQ,KAAK,oBAAoB,OAAO,OAAO,QAAQ,EAAG;AAAA,IAC/E,SACe,OAAO;AACV,WAAK,OAAO,MAAM,kCAAkC,KAAK;AACzD,aAAO,EAAE,MAAO;AAAA,IAC5B;AAAA,EACA;AAAA,EACI,MAAM,KAAK,SAAS;AAChB,QAAI,IAAI,IAAI,IAAI,IAAIC,KAAI,IAAI,IAAI,IAAI;AACpC,UAAM,iBAAiB,mBAAmB;AAC1C,QAAI,WAAW;AAEf,QAAI,CAAC,gBAAgB;AACjB,iBAAW,MAAM,KAAK,8BAA8B,OAAO;AAC3D,UAAI,SAAS,QAAQ;AACjB,eAAO,SAAS;AAAA,MAChC;AAAA,IACA;AACQ,UAAM,cAAc,MAAM,KAAK,wBAAwB,OAAO;AAC9D,QAAI,YAAY,QAAQ;AACpB,aAAO,YAAY;AAAA,IAC/B;AAEQ,QAAI,gBAAgB;AAChB,YAAM,IAAI,MAAM,sCACZ,KAAK,UAAU;AAAA,QACX,YAAY;AAAA,UACR,OAAO,KAAK,YAAY,WAAW,QAAQ,OAAO,SAAS,SAAS,GAAG;AAAA,UACvE,UAAU,KAAK,YAAY,WAAW,QAAQ,OAAO,SAAS,SAAS,GAAG;AAAA,UAC1E,QAAQ,KAAK,YAAY,WAAW,QAAQ,OAAO,SAAS,SAAS,GAAG;AAAA,QAC3E;AAAA,MACrB,CAAiB,CAAC;AAAA,IAClB;AACQ,UAAM,IAAI,MAAM,6CACZ,KAAK,UAAU;AAAA,MACX,SAAS;AAAA,QACL,OAAO,KAAK,aAAa,QAAQ,aAAa,SAAS,SAAS,SAAS,WAAW,QAAQ,OAAO,SAAS,SAAS,GAAG;AAAA,QACxH,UAAUA,MAAK,aAAa,QAAQ,aAAa,SAAS,SAAS,SAAS,WAAW,QAAQA,QAAO,SAAS,SAASA,IAAG;AAAA,QAC3H,QAAQ,KAAK,aAAa,QAAQ,aAAa,SAAS,SAAS,SAAS,WAAW,QAAQ,OAAO,SAAS,SAAS,GAAG;AAAA,MAC5H;AAAA,MACD,YAAY;AAAA,QACR,OAAO,KAAK,YAAY,WAAW,QAAQ,OAAO,SAAS,SAAS,GAAG;AAAA,QACvE,UAAU,KAAK,YAAY,WAAW,QAAQ,OAAO,SAAS,SAAS,GAAG;AAAA,QAC1E,QAAQ,KAAK,YAAY,WAAW,QAAQ,OAAO,SAAS,SAAS,GAAG;AAAA,MAC3E;AAAA,IACjB,GAAe,MAAM,CAAC,CAAC;AAAA,EACvB;AACA;AChSO,MAAM,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWvB,YAAY,UAAU,SAAS,WAAW,SAAS7H,SAAQ,QAAQ,WAAW,SAAS;AACnF,SAAK,UAAU,SAAS;AACxB,SAAK,mBAAmB,CAAE;AAC1B,SAAK,kBAAkB,CAAE;AACzB,SAAK,kBAAkB,CAAE;AACzB,SAAK,aAAa,CAAE;AACpB,SAAK,yBAAyB;AAC9B,SAAK,UAAU,CAAE;AACjB,SAAK,iBAAiB;AACtB,SAAK,mBAAmB,OAAO,aAAa;AACxC,aAAO,IAAI,QAAQ,OAAO,SAAS,WAAW;AAC1C,cAAM,gBAAgB;AACtB,cAAM,UAAU,WAAW,MAAM;AAC7B,sBAAY,MAAO;AACnB,iBAAO,IAAI,MAAM,2BAA2B,aAAa,MAAM,CAAC;AAAA,QACnE,GAAE,aAAa;AAChB,YAAI;AACA,iBAAO,QAAQ,MAAM,UAAU;AAAA,QACnD,SACuB,OAAO;AACV,iBAAO,KAAK;AAAA,QAChC,UACwB;AACJ,uBAAa,OAAO;AAAA,QACxC;AAAA,MACA,CAAa;AAAA,IACJ;AACD,SAAK,SAAS,IAAI0H,gBAAc,QAAQ;AACxC,SAAK,eAAe;AACpB,SAAK,UAAU;AACf,SAAK,YAAY;AACjB,SAAK,mBAAmB,YAAY,QAAQ,YAAY,SAAS,UAAU,OAAO,OAAO,mBAAmB;AAC5G,SAAK,kBAAkB1H,YAAW,QAAQA,YAAW,SAASA,UAAS,CAAE;AACzE,SAAK,kBAAkB,WAAW,QAAQ,WAAW,SAAS,SAAS,CAAE;AACzE,SAAK,aAAa,CAAE;AACpB,SAAK,qBAAqB,IAAI,mBAAmB;AAAA,MAC7C;AAAA,MACA;AAAA,IACZ,CAAS;AACD,mBAAe,CAAC8H,WAAU,aAAa;AACnC,WAAK,WAAW,KAAK,OAAO,OAAO,OAAO,OAAO,CAAE,GAAEA,SAAQ,GAAG,EAAE,WAAW,MAAM,mBAAmB,SAAQ,CAAE,CAAC;AAAA,IAC7H,CAAS;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA,EAKI,YAAY,OAAO;AACf,QAAI,KAAK,kBAAkBJ,iBAAe;AACtC,WAAK,OAAO,YAAY,KAAK;AAAA,IACzC;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA,EAKI,MAAM,KAAK,EAAE,OAAQ,IAAG,IAAI;AACxB,QAAI;AACA,WAAK,iBAAiB;AACtB,UAAI,CAAC,KAAK,WAAW;AACjB,cAAM,IAAI,MAAM,2BAA2B;AAAA,MAC3D;AACY,WAAK,sBAAsB,MAAMK,GAAW,KAAK;AAAA,QAC7C;AAAA,QACA,UAAU;AAAA,QACV,WAAW,KAAK;AAAA,QAChB,UAAU,KAAK;AAAA,MAC/B,CAAa;AACD,YAAM,mBAAmB,KAAK,oBAAoB,QAAQ,OAAQ;AAClE,UAAI,iBAAiB,SAAS;AAC1B,aAAK,UAAU,iBAAiB,QAAQ,CAAC,YAAY,KAAK,cAAc,OAAO,CAAC;AAAA;AAEhF,aAAK,mBAAoB;AAC7B,WAAK,oBAAoB,GAAG,iBAAiB,KAAK,mBAAmB,KAAK,IAAI,CAAC;AAC/E,WAAK,oBAAoB,GAAG,kBAAkB,KAAK,oBAAoB,KAAK,IAAI,CAAC;AACjF,WAAK,oBAAoB,GAAG,kBAAkB,KAAK,oBAAoB,KAAK,IAAI,CAAC;AAEjF,WAAK,oBAAoB,KAAK,OAAO,GAAG,kBAAkB,KAAK,oBAAoB,KAAK,IAAI,CAAC;AAC7F,WAAK,oBAAoB,KAAK,QAAQ,OAAO,GAAG,kBAAkB,KAAK,oBAAoB,KAAK,IAAI,CAAC;AAAA,IACjH,SACe,GAAG;AACN,WAAK,OAAO,MAAM,qCAAqC,CAAC;AAAA,IACpE,UACgB;AACJ,WAAK,iBAAiB;AAAA,IAClC;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQI,UAAU,WAAW;AACjB,QAAI,KAAK,gBAAgB;AACrB,YAAM,IAAI,MAAM,wDAAwD;AAAA,IACpF;AACQ,UAAM,SAAS,KAAK,QAAQ,KAAK,CAACC,YAAWA,QAAO,aAAY,EAAG,OAAO,SAAS,CAAC;AACpF,QAAI,CAAC;AACD,YAAM,IAAI,MAAM,wCAAwC;AAC5D,WAAO;AAAA,EACf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOI,MAAM,UAAU,cAAc;AAC1B,WAAO,KAAK,iBAAiB,YAAY;AACrC,UAAI;AACA,cAAM,EAAE,KAAK,SAAQ,IAAK,MAAM,KAAK,WAAW,YAAY;AAC5D,YAAI,CAAC;AACD,gBAAM,IAAI,MAAM,oBAAoB;AACxC,oBAAY,KAAK,KAAK,MAAM;AACxB,gBAAM,IAAI,MAAM,uBAAuB;AAAA,QAC3D,CAAiB;AACD,cAAM,KAAK,mBAAmB,MAAM,UAAU;AAAA,MAC9D,UACoB;AACJ,oBAAY,MAAO;AAAA,MACnC;AAAA,IACA,CAAS;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMI,MAAM,UAAU,cAAc;AAC1B,QAAI;AACA,YAAM,EAAE,KAAK,SAAQ,IAAK,MAAM,KAAK,WAAW,YAAY;AAC5D,WAAK,mBAAmB,UAAU,EAAE,IAAG,CAAE;AACzC,YAAM,UAAU,MAAM,SAAU;AAChC,YAAM,KAAK,mBAAmB,OAAO;AACrC,aAAO;AAAA,IACnB,UACgB;AACJ,WAAK,mBAAmB,WAAY;AAAA,IAChD;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOI,MAAM,QAAQ,gBAAgB,cAAc,aAAa;AACrD,WAAO,KAAK,iBAAiB,YAAY;AACrC,UAAI;AACJ,YAAM,EAAE,KAAK,SAAQ,IAAK,MAAM,KAAK,WAAW,YAAY;AAC5D,UAAI,CAAC;AACD,cAAM,IAAI,MAAM,oBAAoB;AACxC,qBAAe,GAAG;AAClB,YAAM,UAAU,MAAM,SAAU;AAChC,UAAI,aAAa;AACb,cAAM,oBAAoB,OAAO,OAAO,OAAO,OAAO,CAAE,GAAE,QAAQ,iBAAiB,GAAG,EAAE,YAAW,CAAE;AACrG,gBAAQ,oBAAoB;AAC5B,gBAAQ,KAAK,KAAK,yBAAyB,QAAQ,OAAO,SAAS,SAAS,GAAG,QAAQ,OAAO,QAAQ,OAAO;AAAA,UACzG;AAAA,QACpB,CAAiB;AAAA,MACjB;AACY,YAAM,KAAK,mBAAmB,OAAO;AACrC,aAAO;AAAA,IACnB,CAAS;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOI,MAAM,iBAAiB,aAAa,cAAc;AAC9C,UAAM,YAAY,KAAK,WAAW,KAAK,CAAC,QAAQ,IAAI,OAAO,WAAW;AACtE,QAAI,CAAC,aAAa,CAAC,UAAU;AACzB,YAAM,IAAI,MAAM,4BAA4B;AAChD,WAAO,KAAK,QAAQ,CAAC,QAAQ;AACzB,uBAAiB,UAAU,IAAI,UAAU,mBAAmB,GAAG;AAAA,IAClE,GAAE,cAAc,UAAU,oBAAoB,SAAY,WAAW;AAAA,EAC9E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOI,gBAAgB,OAAO;AACnB,QAAI;AACA,UAAI,CAAC,KAAK,qBAAqB;AAC3B,eAAO;AAAA,MACvB;AACY,YAAM,UAAU,KAAK,oBAAoB,QAAQ,IAAI,KAAK;AAC1D,YAAM,YAAY,KAAK,QAAQ,KAAK,CAAC,WAAW,OAAO,UAAU,KAAK;AACtE,UAAI,CAAC,SAAS;AAEV,YAAI,WAAW;AACX,eAAK,OAAO,KAAK,iDAAiD,KAAK,EAAE;AACzE,eAAK,oBAAoB,EAAE,OAAO;AAAA,QACtD;AACgB,eAAO;AAAA,MACvB;AACY,UAAI,CAAC,WAAW;AACZ,aAAK,OAAO,KAAK,iDAAiD,KAAK,EAAE;AACzE,eAAO;AAAA,MACvB;AACY,aAAO;AAAA,IACnB,SACe,GAAG;AACN,WAAK,OAAO,MAAM,6BAA6B,CAAC;AAChD,aAAO;AAAA,IACnB;AAAA,EACA;AAAA;AAAA;AAAA;AAAA,EAII,4BAA4B;AACxB,SAAK,UAAU,KAAK,QAAQ,OAAO,CAAC,WAAW,KAAK,gBAAgB,OAAO,KAAK,CAAC;AAAA,EACzF;AAAA;AAAA;AAAA;AAAA,EAII,MAAM,qBAAqB;AACvB,UAAM,YAAY,KAAK,WAAW,KAAK,CAAC,QAAQ,IAAI,iBAAiB;AACrE,QAAI,WAAW;AACX,YAAM,UAAU,MAAM,KAAK,iBAAiB,UAAU,EAAE;AACxD,UAAI,KAAK;AACL,aAAK,uBAAuB,OAAO;AAAA,IACnD;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMI,MAAM,WAAW,OAAO;AACpB,QAAI;AACA,UAAI,CAAC,KAAK,qBAAqB;AAC3B,cAAM,IAAI,MAAM,kCAAkC;AAAA,MAClE;AACY,YAAM,KAAK,oBAAoB,WAAW;AAAA,QACtC;AAAA,QACA,QAAQ,YAAY,mBAAmB;AAAA,MACvD,CAAa;AACD,aAAO;AAAA,IACnB,SACe,GAAG;AACN,WAAK,OAAO,MAAM,uEAAuE,CAAC;AAC1F,aAAO;AAAA,IACnB;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOI,MAAM,gBAAgB;AAClB,QAAI,CAAC,KAAK,qBAAqB;AAC3B,YAAM,IAAI,MAAM,kCAAkC;AAAA,IAC9D;AACQ,UAAM,WAAW,KAAK,oBAAoB,QAAQ,OAAQ;AAC1D,UAAM,WAAW,KAAK,oBAAoB,KAAK,QAAQ,YAAa;AACpE,QAAI,EAAE,aAAa,QAAQ,aAAa,SAAS,SAAS,SAAS,WAAW,EAAE,aAAa,QAAQ,aAAa,SAAS,SAAS,SAAS,SAAS;AAClJ,YAAM,IAAI,MAAM,qEAAqE;AAAA,IACjG;AACQ,UAAM,wBAAwB,CAAE;AAEhC,eAAW,WAAW,KAAK,oBAAoB,QAAQ,OAAM,GAAI;AAC7D,WAAK,OAAO,KAAK,+BAA+B,OAAO,EAAE;AACzD,YAAM,UAAU,KAAK,WAAW,QAAQ,KAAK;AAC7C,4BAAsB,KAAK,OAAO;AAAA,IAC9C;AAGQ,eAAW,WAAW,UAAU;AAC5B,YAAM,UAAU,KAAK,WAAW,QAAQ,KAAK;AAC7C,4BAAsB,KAAK,OAAO;AAAA,IAC9C;AACQ,UAAM,QAAQ,IAAI,qBAAqB;AACvC,SAAK,UAAU,CAAE;AAAA,EACzB;AAAA,EACI,cAAc,SAAS;AACnB,UAAM,uBAAuB,4BAA4B,OAAO;AAChE,WAAO,qBAAqB,IAAI,CAAC,EAAE,SAAS,QAAO,MAAO;AACtD,UAAI;AACJ,aAAO,IAAI,WAAW,SAAS,KAAK,qBAAqB,QAAQ,OAAO,UAAU,KAAK,QAAQ,uBAAuB,QAAQ,OAAO,SAAS,SAAS,GAAG,aAAa,KAAK,kBAAkBN,kBAAgB,KAAK,OAAO,YAAW,IAAK,OAAO;AAAA,IAC7P,CAAS;AAAA,EACT;AAAA,EACI,MAAM,mBAAmB,SAAS;AAC9B,UAAM,aAAa,KAAK,cAAc,OAAO;AAE7C,eAAW,aAAa,YAAY;AAEhC,YAAM,kBAAkB,KAAK,QAAQ,OAAO,CAAC,kBAAkB;AAC3D,YAAI,IAAI;AACR,cAAM,sBAAsB,KAAK,kBAAkB,QAAQ,kBAAkB,SAAS,SAAS,cAAc,aAAY,OAAQ,QAAQ,OAAO,SAAS,SAAS,GAAG,SAAQ,SAAU,KAAK,cAAc,QAAQ,cAAc,SAAS,SAAS,UAAU,oBAAoB,QAAQ,OAAO,SAAS,SAAS,GAAG;AACpT,cAAM,sBAAsB,UAAU,gBAAgB,cAAc;AACpE,cAAM,oBAAoB,UAAU,YAAa;AACjD,cAAM,yBAAyB,cAAc,YAAa;AAC1D,cAAM,qBAAqB,sBAAsB,QAAQ,sBAAsB,SAAS,SAAS,kBAAkB,WAAW,2BAA2B,QAAQ,2BAA2B,SAAS,SAAS,uBAAuB;AACrO,YAAI,cAAc,UAAU,UAAU,OAAO;AACzC,eAAK,OAAO,MAAM,6EAA6E,UAAU,aAAY,EAAG,UAAU;AAAA,QACtJ;AACgB,eAAO,qBAAqB,uBAAuB;AAAA,MACnE,CAAa;AAED,iBAAW,kBAAkB,iBAAiB;AAC1C,aAAK,OAAO,MAAM,8CAA8C,eAAe,aAAc,EAAC,SAAU,CAAA,EAAE;AAC1G,cAAM,KAAK,WAAW,eAAe,KAAK;AAC1C,aAAK,UAAU,KAAK,QAAQ,OAAO,CAAC,MAAM,EAAE,UAAU,eAAe,KAAK;AAAA,MAC1F;AAAA,IACA;AAEQ,SAAK,QAAQ,KAAK,GAAG,UAAU;AAC/B,SAAK,OAAO,MAAM,qCAAqC,KAAK,QACvD,IAAI,CAAC,MAAM,GAAG,EAAE,eAAe,UAAU,IAAI,EAAE,KAAK,EAAE,EACtD,KAAK,IAAI,CAAC,EAAE;AAAA,EACzB;AAAA,EACI,MAAM,WAAW,cAAc;AAC3B,QAAI,CAAC,KAAK,qBAAqB;AAC3B,YAAM,IAAI,MAAM,kCAAkC;AAAA,IAC9D;AACQ,WAAO,KAAK,oBAAoB,QAAQ;AAAA,MACpC;AAAA,MACA,oBAAoB,kBAAkB,KAAK,SAAS,KAAK,kBAAkB,KAAK,eAAe;AAAA,IAC3G,CAAS;AAAA,EACT;AAAA,EACI,MAAM,QAAQ,EAAE,QAAQ,UAAW;AAC/B,QAAI,IAAI,IAAI;AACZ,QAAI;AACJ,SAAK,OAAO,MAAM,sBAAsB,MAAM,iBAAiB,KAAK,UAAU,MAAM,CAAC,EAAE;AACvF,QAAI,WAAW,QAAQ,WAAW,SAAS,SAAS,OAAO,iBAAiB;AAExE,YAAM,mBAAmB,MAAM,KAAK,WAAW,QAAQ,WAAW,SAAS,SAAS,OAAO,qBAAqB,QAAQ,OAAO,SAAS,SAAS,GAAG,MAAM,GAAG,OAAO,QAAQ,OAAO,SAAS,SAAS,GAAG,IAAK;AAC7M,eAAS,KAAK,QAAQ,KAAK,CAAC,MAAM;AAAE,YAAIO;AAAI,iBAASA,MAAK,MAAM,QAAQ,MAAM,SAAS,SAAS,EAAE,aAAY,OAAQ,QAAQA,QAAO,SAAS,SAASA,IAAG,SAAQ,OAAQ;AAAA,MAAgB,CAAE;AAC5L,WAAK,OAAO,MAAM,kBAAkB,KAAK,WAAW,QAAQ,WAAW,SAAS,SAAS,OAAO,aAAY,OAAQ,QAAQ,OAAO,SAAS,SAAS,GAAG,SAAQ,CAAE,EAAE;AACpK,UAAI,CAAC,QAAQ;AACT,cAAM,IAAI,MAAM,oCAAoC,WAAW,QAAQ,WAAW,SAAS,SAAS,OAAO,eAAe,mEAAmE;AAAA,MAC7M;AAAA,IACA,OACa;AACD,eAAS,KAAK,QAAQ,KAAK,QAAQ,SAAS,CAAC;AAAA,IACzD;AACQ,QAAI,CAAC,QAAQ;AACT,YAAM,IAAI,MAAM,6DAA6D;AAAA,IACzF;AACQ,SAAK,OAAO,MAAM,iBAAiB,OAAO,eAAe,SAAU,CAAA,KAAK,OAAO,KAAK,sBAAsB;AAC1G,WAAO,MAAM,OAAO,QAAQ;AAAA,MACxB;AAAA,MACA;AAAA,IACZ,CAAS;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOI,MAAM,mBAAmB;AACrB,WAAO,MAAM,KAAK,QAAQ;AAAA,MACtB,QAAQ,oBAAoB;AAAA,MAC5B,QAAQ;AAAA,IACpB,CAAS;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiBI,MAAM,mBAAmB,QAAQ;AAC7B,WAAO,MAAM,KAAK,QAAQ;AAAA,MACtB,QAAQ,oBAAoB;AAAA,MAC5B;AAAA,IACZ,CAAS;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAkBI,MAAM,YAAY,QAAQ;AACtB,WAAO,MAAM,KAAK,QAAQ;AAAA,MACtB,QAAQ,oBAAoB;AAAA,MAC5B;AAAA,IACZ,CAAS;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAmBI,MAAM,oBAAoB,QAAQ;AAC9B,WAAO,MAAM,KAAK,QAAQ;AAAA,MACtB,QAAQ,oBAAoB;AAAA,MAC5B;AAAA,IACZ,CAAS;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAmBI,MAAM,0BAA0B,QAAQ;AACpC,WAAO,MAAM,KAAK,QAAQ;AAAA,MACtB,QAAQ,oBAAoB;AAAA,MAC5B;AAAA,IACZ,CAAS;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAoBI,MAAM,gBAAgB,QAAQ;AAC1B,QAAI,IAAI;AACR,QAAI,QAAQ,WAAW,QAAQ,WAAW,SAAS,SAAS,OAAO,qBAAqB,UAAU;AAC9F,WAAK,OAAO,KAAK,iHAAiH;AAClI,aAAO,MAAM,KAAK,QAAQ;AAAA,QACtB,QAAQ,oBAAoB;AAAA,QAC5B;AAAA,MAChB,CAAa;AAAA,IACb;AACQ,SAAK,WAAW,QAAQ,WAAW,SAAS,SAAS,OAAO,4BAA4B,aAAa;AACjG,YAAM,mBAAmB,MAAM,KAAK,WAAW,QAAQ,WAAW,SAAS,SAAS,OAAO,qBAAqB,QAAQ,OAAO,SAAS,SAAS,GAAG,MAAM,GAAG,OAAO,QAAQ,OAAO,SAAS,SAAS,GAAG,IAAK;AAC7M,YAAM,gBAAgB,KAAK,QAAQ,KAAK,CAAC,WAAW;AAAE,YAAIA;AAAI,iBAASA,MAAK,WAAW,QAAQ,WAAW,SAAS,SAAS,OAAO,aAAc,OAAM,QAAQA,QAAO,SAAS,SAASA,IAAG,SAAQ,OAAQ;AAAA,MAAgB,CAAE;AAC7N,UAAI,CAAC,eAAe;AAChB,cAAM,IAAI,MAAM,+BAA+B,eAAe,EAAE;AAAA,MAChF;AACY,UAAI,EAAE,WAAW,QAAQ,WAAW,SAAS,SAAS,OAAO,kBAAkB;AAC3E,cAAM,IAAI,MAAM,yBAAyB;AAAA,MACzD;AACY,aAAO,MAAM,cAAc,gBAAgB,OAAO,eAAe;AAAA,IAC7E;AACQ,UAAM,IAAI,MAAM,0HAA0H;AAAA,EAClJ;AAAA,EACI,mBAAmB,MAAM;AACrB,SAAK,OAAO,MAAM,2BAA2B,IAAI;AACjD,SAAK,0BAA2B;AAAA,EACxC;AAAA,EACI,oBAAoB,EAAE,OAAO,UAAW;AACpC,UAAM,EAAE,WAAU,IAAK;AACvB,UAAM,WAAW,KAAK,oBAAoB,QAAQ,IAAI,KAAK;AAC3D,UAAM,iBAAiB,OAAO,OAAO,OAAO,OAAO,CAAA,GAAI,QAAQ,GAAG,EAAE,YAAY;AAChF,SAAK,OAAO,KAAK,oBAAoB,cAAc;AACnD,SAAK,UAAU,KAAK,QAAQ,OAAO,CAAC,WAAW,OAAO,UAAU,KAAK;AACrE,SAAK,QAAQ,KAAK,GAAG,KAAK,cAAc,cAAc,CAAC;AAAA,EAC/D;AAAA,EACI,oBAAoB,OAAO;AACvB,SAAK,OAAO,KAAK,oBAAoB,KAAK;AAC1C,QAAI,gBAAgB;AACpB,SAAK,UAAU,KAAK,QAAQ,OAAO,CAAC,WAAW;AAC3C,UAAI,OAAO,UAAU,MAAM,OAAO;AAC9B,eAAO;AAAA,MACvB;AACY,sBAAgB;AAChB,aAAO;AAAA,IACnB,CAAS;AAED,QAAI,eAAe;AACf,UAAI;AACA,aAAK,WAAW,MAAM,KAAK;AAAA,MAC3C,SACmB,GAAG;AACN,aAAK,OAAO,MAAM,gCAAgC,CAAC;AAAA,MACnE;AACY,WAAK,OAAO,KAAK,oCAAoC;AAAA,IACjE;AAAA,EACA;AAAA,EACI,oBAAoB,OAAO;AACvB,SAAK,OAAO,KAAK,oBAAoB,KAAK;AAC1C,SAAK,UAAU,KAAK,QAAQ,OAAO,CAAC,WAAW,OAAO,UAAU,MAAM,KAAK;AAC3E,QAAI;AACA,WAAK,WAAW,MAAM,KAAK;AAAA,IACvC,SACe,GAAG;AACN,WAAK,OAAO,MAAM,gCAAgC,CAAC;AAAA,IAC/D;AACQ,SAAK,OAAO,KAAK,2BAA2B;AAAA,EACpD;AACA;AChkBO,MAAMP,eAAiC;AAAA,EAAvC,cAAA;AACL,SAAQ,WAAgD;AAAA,EAAA;AAAA,EAExD,YAAY,OAAkD;AAC5D,SAAK,WAAW;AAAA,EAAA;AAAA,EAGlB,MAAM,YAAoB,MAAmB;AACvC,QAAA,CAAC,SAAS,QAAQ,QAAQ,OAAO,EAAE,SAAS,KAAK,QAAQ,GAAG;AAC9D,cAAQ,MAAM,WAAW,OAAO,IAAI,GAAG,IAAI;AAAA,IAAA;AAAA,EAC7C;AAAA,EAGF,KAAK,YAAoB,MAAmB;AACtC,QAAA,CAAC,QAAQ,QAAQ,OAAO,EAAE,SAAS,KAAK,QAAQ,GAAG;AACrD,cAAQ,KAAK,UAAU,OAAO,IAAI,GAAG,IAAI;AAAA,IAAA;AAAA,EAC3C;AAAA,EAGF,KAAK,YAAoB,MAAmB;AAC1C,QAAI,CAAC,QAAQ,OAAO,EAAE,SAAS,KAAK,QAAQ,GAAG;AAC7C,cAAQ,KAAK,UAAU,OAAO,IAAI,GAAG,IAAI;AAAA,IAAA;AAAA,EAC3C;AAAA,EAGF,MAAM,YAAoB,MAAmB;AACvC,QAAA,KAAK,aAAa,SAAS;AAC7B,cAAQ,MAAM,WAAW,OAAO,IAAI,GAAG,IAAI;AAAA,IAAA;AAAA,EAC7C;AAEJ;ACnCa,MAAA,iBAAiB,MAC5B,WAAW,OAAO;AAAA,EAChB,SAAS;AACX,CAAC;ACyES,IAAA,yBAAAQ,UAAL;AACLA,QAAA,cAAe,IAAA;AACfA,QAAA,gBAAiB,IAAA;AAFPA,SAAAA;AAAA,GAAA,QAAA,CAAA,CAAA;AAaA,IAAA,2BAAAC,YAAL;AACLA,UAAA,SAAU,IAAA;AADAA,SAAAA;AAAA,GAAA,UAAA,CAAA,CAAA;ACvCZ,MAAA,0BAAA;AAAA,EAYA,YAAA,QAAA,SAAA;AAPA,SAAA,yBAAA;AACA,SAAA,6BAAA;AAOA,SAAA,SAAA,UAAA,IAAAT,eAAA;AACA,SAAA,UAAA,WAAA,SAAA;AAAA,EAAA;AAAA,EANA,IAAA,gBAAA;AACA,WAAA,0BAAA;AAAA,EAAA;AAAA,EAQA,OAAA,YACA,QACA,SACA;AACA,QAAA,WAAA,uEAAA;AACA,QAAA,CAAA,UAAA;AACA,gCAAA,WAAA,IAAA;AAAA,QACA;AAAA,QACA;AAAA,MACA;AACA,iBAAA,0BAAA;AAAA,IAAA;AAEA,QAAA,SAAA;AACA,eAAA,WAAA,OAAA;AAAA,IAAA;AAEA,WAAA;AAAA,EAAA;AAAA,EAGA,UAAA,QAAA;AACA,SAAA,SAAA;AAAA,EAAA;AAAA,EAGA,WAAA,SAAA;AACA,SAAA,UAAA;AAAA,EAAA;AAAA,EAGA,aAAA;AACA,WAAA,KAAA;AAAA,EAAA;AAAA,EAGA,YAAA,OAAA;AACA,QAAA,KAAA,kBAAAA,gBAAA;AACA,WAAA,OAAA,YAAA,KAAA;AAAA,IAAA,OACA;AACA,WAAA,OAAA,KAAA,sDAAA;AAAA,IAAA;AAAA,EACA;AAAA,EAGA,MAAA,KACA,WACA,UACA,SACA,wBACA;AACA,UAAA,gBAAA,WAAA,KAAA;AACA,UAAA,YAAA,cAAA,SAAA,MAAA;AAEA,QAAA,0BAAA,uBAAA;AACA,aAAA,0BAAA;AAAA,IAAA;AAGA,8BAAA,wBAAA,IAAA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,OAAA,OAAA,mBAAA;AAAA,MACA,CAAA,mBAAA,cAAA,mBAAA,eAAA;AAAA,MACA,CAAA,YAAA,cAAA,UAAA,cAAA,OAAA;AAAA,MACA;AAAA,IACA;AAEA,UAAA,0BAAA,sBAAA,KAAA;AAAA,MACA,QAAA;AAAA,IAAA,CACA;AAEA,8BAAA,sBAAA,yBAAA,CACA,YACA;AACA,WAAA,OAAA,KAAA,gCAAA,OAAA;AACA,WAAA,iBAAA,OAAA;AACA,UAAA,wBAAA;AACA,+BAAA,OAAA;AAAA,MAAA;AAAA,IAEA;AAEA,SAAA,OAAA;AAAA,MACA,4CAAA,aAAA;AAAA,IACA;AACA,WAAA,0BAAA;AAAA,EAAA;AAAA,EAGA,MAAA,UAAA;AACA,SAAA,kBAAA;AACA,UAAA,UAAA,MAAA,KAAA,cAAA,UAAA;AACA,SAAA,iBAAA,OAAA;AACA,WAAA;AAAA,EAAA;AAAA,EAGA,MAAA,aAAA;;AACA,QAAA;AACA,WAAA,kBAAA;AACA,YAAA,cAAA,KAAA,eAAA;AACA,YAAA,YAAA,2CAAA;AACA,YAAA,UAAA,2CAAA;AACA,YAAA,UAAA,kCAAA,kBAAA,mBAAA,QAAA;AAAA,QACA,CAAA,YAAA,QAAA,aAAA,EAAA,eAAA;AAAA;AAEA,cAAA,UAAA,kBAAA,mBAAA,WAAA,iCAAA;AACA,WAAA,OAAA,KAAA,qBAAA,SAAA,OAAA,OAAA,EAAA;AACA,aAAA;AAAA,aACA,GAAA;AACA,WAAA,OAAA,MAAA,wBAAA,CAAA;AACA,aAAA;AAAA,IAAA;AAAA,EACA;AAAA,EAGA,MAAA,gBAAA;;AACA,QAAA;AACA,WAAA,kBAAA;AACA,cAAA,UAAA,kBAAA,mBAAA;AACA,WAAA,OAAA,KAAA,+BAAA;AACA,aAAA;AAAA,aACA,GAAA;AACA,WAAA,OAAA,MAAA,wBAAA,CAAA;AACA,aAAA;AAAA,IAAA;AAAA,EACA;AAAA,EAGA,MAAA,mBACA,IACA,gBAAA,OACA;AACA,SAAA,kBAAA;AACA,UAAA,cAAA,KAAA,eAAA;AACA,UAAA,YAAA,2CAAA;AACA,UAAA,SAAA,KAAA,cAAA,QAAA;AAAA,MACA,CAAA,YAAA,QAAA,aAAA,EAAA,eAAA;AAAA,IACA;AACA,QAAA,CAAA,eAAA;AACA,YAAA,WAAA,MAAA,GAAA,iBAAA,MAAA;AACA,YAAA,aAAA,MAAA,SAAA,kBAAA,MAAA;AACA,aAAA,MAAA,WAAA,qBAAA,MAAA;AAAA,IAAA,OACA;AACA,YAAA,aAAA,MAAA,GAAA,kBAAA,MAAA;AACA,aAAA,MAAA,WAAA,qBAAA,MAAA;AAAA,IAAA;AAAA,EACA;AAAA,EAGA,MAAA,oCACA,IACA,eACA;;AACA,QAAA;AACA,YAAA,SAAA,MAAA,KAAA,mBAAA,IAAA,aAAA;AACA,aAAA;AAAA,QACA;AAAA,QACA,OAAA;AAAA,MACA;AAAA,aACA,GAAA;AACA,YAAA,QAAA;AACA,YAAA,WAAA,WAAA,YAAA,mBAAA;AACA,WAAA,OAAA,MAAA,iCAAA,CAAA;AACA,WAAA,OAAA,MAAA,qCAAA,OAAA;AACA,UAAA,QAAA,SAAA,4BAAA,GAAA;AACA,eAAA;AAAA,UACA,QAAA;AAAA,UACA,OAAA;AAAA,QACA;AAAA,MACA,WAAA,QAAA,SAAA,QAAA,GAAA;AACA,eAAA;AAAA,UACA,QAAA;AAAA,UACA,OAAA;AAAA,QACA;AAAA,MACA,WAAA,QAAA,SAAA,mBAAA,GAAA;AACA,eAAA;AAAA,UACA,QAAA;AAAA,UACA,OAAA;AAAA,QACA;AAAA,MACA,WAAA,QAAA,SAAA,qBAAA,GAAA;AACA,eAAA;AAAA,UACA,QAAA;AAAA,UACA,OAAA;AAAA,QACA;AAAA,MACA,WAAA,QAAA,SAAA,mBAAA,GAAA;AACA,eAAA;AAAA,UACA,QAAA;AAAA,UACA,OACA;AAAA,QACA;AAAA,MACA,WAAA,QAAA,SAAA,cAAA,GAAA;AACA,eAAA;AAAA,UACA,QAAA;AAAA,UACA,OACA;AAAA,QACA;AAAA,MACA,WAAA,QAAA,SAAA,MAAA,GAAA;AACA,eAAA;AAAA,UACA,QAAA;AAAA,UACA,OAAA;AAAA,QACA;AAAA,MACA,WAAA,QAAA,SAAA,qBAAA,GAAA;AACA,eAAA;AAAA,UACA,QAAA;AAAA,UACA,OAAA;AAAA,QACA;AAAA,MAAA;AAAA,IACA;AAAA,EACA;AAAA,EAGA,MAAA,qBACA,SACA,SACA,WACA;AACA,SAAA,kBAAA;AAEA,QAAA,cAAA,IAAA,8BACA,EAAA,WAAA,QAAA,WAAA,OAAA,CAAA,EACA,WAAA,OAAA;AAEA,QAAA,WAAA;AACA,oBAAA,MAAA,YAAA,KAAA,SAAA;AAAA,IAAA;AAGA,WAAA,KAAA,mBAAA,WAAA;AAAA,EAAA;AAAA,EAGA,MAAA,aACA,eACA,aACA,QACA;AACA,SAAA,kBAAA;AAEA,UAAA,cAAA,IAAA,oBAAA,EACA,iBAAA,cAAA,SAAA,aAAA,CAAA,EACA,gBAAA,UAAA,WAAA,aAAA,GAAA,IAAA,KAAA,CAAA,MAAA,CAAA,EACA,gBAAA,UAAA,WAAA,WAAA,GAAA,IAAA,KAAA,MAAA,CAAA;AAEA,WAAA,KAAA,mBAAA,WAAA;AAAA,EAAA;AAAA,EAGA,MAAA,qBACA,YACA,cACA,YACA,MAAA,KACA;AACA,SAAA,kBAAA;AAEA,UAAA,cAAA,IAAA,2BAAA,EACA,cAAA,WAAA,WAAA,UAAA,CAAA,EACA,OAAA,GAAA,EACA,YAAA,cAAA,UAAA;AAEA,WAAA,KAAA,mBAAA,WAAA;AAAA,EAAA;AAAA,EAGA,iBAAA,SAAA;;AACA,UAAA,kBAAA,yBAAA,eAAA,mBAAA,WAAA,mBAAA,aAAA,mBAAA;AACA,UAAA,eAAA,iDAAA,MAAA;AACA,UAAA,YAAA,aAAA,IAAA;AACA,UAAA,UAAA,aAAA,IAAA;AACA,SAAA,OAAA,KAAA,qBAAA,WAAA,OAAA;AACA,QAAA,CAAA,WAAA;AACA,WAAA,OAAA,MAAA,oCAAA;AACA;AAAA,IAAA,OACA;AACA,WAAA,mBAAA,WAAA,OAAA;AAAA,IAAA;AAAA,EACA;AAAA,EAGA,mBAAA;AACA,UAAA,cAAA,KAAA,eAAA;AACA,UAAA,UAAA,2CAAA;AAEA,QAAA,CAAA,SAAA;AACA,WAAA,OAAA,KAAA,wCAAA;AAEA,YAAA,gBAAA,aAAA,QAAA,kBAAA;AAEA,UAAA,eAAA;AACA,eAAA;AAAA,MAAA;AAGA,aAAA;AAAA,IAAA;AAGA,QAAA,YAAA,KAAA,SAAA;AACA,WAAA,OAAA;AAAA,QACA;AAAA,QACA;AAAA,MACA;AACA,WAAA,UAAA;AAAA,IAAA;AAGA,WAAA,QAAA,cAAA,mBAAA;AAAA,EAAA;AAAA,EAGA,MAAA,eAAA,SAAA;AACA,QAAA;AACA,YAAA,gBAAA,KAAA,iBAAA;AAEA,YAAA,MAAA,WAAA,aAAA,0CAAA,OAAA;AACA,YAAA,WAAA,MAAA,eAAA,EAAA,GAAA;AACA,UAAA,CAAA,SAAA,IAAA;AACA,cAAA,IAAA;AAAA,UACA,sDAAA,SAAA,MAAA;AAAA,QACA;AAAA,MAAA;AAEA,aAAA,MAAA,SAAA,KAAA;AAAA,aACA,GAAA;AACA,WAAA,OAAA,MAAA,2BAAA,CAAA;AACA,YAAA;AAAA,IAAA;AAAA,EACA;AAAA,EAGA,MAAA,oBAAA;AACA,SAAA,kBAAA;AACA,UAAA,cAAA,KAAA,eAAA;AACA,UAAA,UAAA,2CAAA;AAEA,QAAA,CAAA,SAAA;AACA,aAAA;AAAA,IAAA;AAGA,UAAA,kBAAA,MAAA,KAAA,eAAA,OAAA;AACA,QAAA,CAAA,iBAAA;AACA,YAAA,IAAA;AAAA,QACA;AAAA,MACA;AAAA,IAAA;AAEA,UAAA,UAAA,gBAAA,QAAA,UAAA,MAAA;AACA,WAAA,OAAA,OAAA,EAAA,eAAA,OAAA;AAAA,EAAA;AAAA,EAGA,iBAGA;;AACA,UAAA,EAAA,WAAA,oBAAA,KAAA,mBAAA;AACA,QAAA,CAAA,iBAAA;AACA,aAAA;AAAA,IAAA;AAEA,UAAA,WAAA,kCAAA,kBAAA,mBAAA;AAEA,QAAA,EAAA,mCAAA,SAAA;AACA,aAAA;AAAA,IAAA;AAGA,UAAA,eAAA,KAAA,cAAA,QAAA;AAAA,MACA,CAAA,YAAA,QAAA,aAAA,EAAA,eAAA;AAAA,IACA;AACA,QAAA,CAAA,cAAA;AACA,aAAA;AAAA,IAAA;AAEA,UAAA,aAAA,kDAAA,mBAAA,mBAAA;AACA,QAAA,CAAA,WAAA;AACA,aAAA;AAAA,IAAA;AAEA,UAAA,UAAA,aAAA,YAAA;AACA,WAAA;AAAA,MACA;AAAA,MACA;AAAA,IACA;AAAA,EAAA;AAAA,EAIA,MAAA,8BAGA;AACA,SAAA,kBAAA;AACA,UAAA,aAAA,MAAA,WAAA,qBAAA;AACA,UAAA,YAAA,WAAA;AACA,WAAA;AAAA,MACA,YAAA,WAAA,SAAA;AAAA,MACA,WAAA,UAAA,SAAA;AAAA,IACA;AAAA,EAAA;AAAA,EAGA,MAAA,YAAA,SAAA,MAAA,UAAA;AACA,SAAA,kBAAA;AAGA,QAAA,CAAA,SAAA;AACA,YAAA,IAAA,MAAA,sBAAA;AAAA,IAAA;AAEA,QAAA,CAAA,UAAA;AACA,YAAA,IAAA,MAAA,wCAAA;AAAA,IAAA;AAIA,UAAA,cAAA,KAAA,eAAA;AACA,QAAA,EAAA,2CAAA,YAAA;AACA,YAAA,IAAA,MAAA,4BAAA;AAAA,IAAA;AAGA,UAAA,SAAA,KAAA,cAAA,QAAA;AAAA,MACA,CAAA,YAAA,QAAA,aAAA,EAAA,SAAA,MAAA,YAAA;AAAA,IACA;AACA,QAAA,CAAA,QAAA;AACA,YAAA,IAAA,MAAA,2CAAA;AAAA,IAAA;AAIA,QAAA,OAAA,cAAA,eAAA,KAAA,QAAA,YAAA;AACA,YAAA,IAAA,MAAA,uDAAA;AAAA,IAAA;AAIA,QAAA,cAAA,IAAA,uBAAA,EACA,WAAA,QAAA,WAAA,OAAA,CAAA,EACA,aAAA,QAAA,EAAA;AAsBA,QAAA,kBAAA;AACA,QAAA;AACA,wBAAA,WAAA,WAAA,QAAA;AACA,kBAAA,YAAA,gBAAA,SAAA;AACA,WAAA,OAAA,MAAA,mCAAA,gBAAA,UAAA,UAAA;AAAA,aACA,GAAA;AACA,WAAA,OAAA,MAAA,+BAAA,CAAA;AACA,YAAA,IAAA,MAAA,kFAAA;AAAA,IAAA;AAIA,kBAAA,MAAA,YAAA,iBAAA,MAAA;AACA,SAAA,OAAA,MAAA,mCAAA,OAAA,aAAA,EAAA,UAAA;AAGA,QAAA,iBAAA;AACA,oBAAA,MAAA,YAAA,KAAA,eAAA;AACA,WAAA,OAAA,MAAA,2CAAA;AAAA,IAAA;AAIA,UAAA,EAAA,QAAA,MAAA,IAAA,MAAA,KAAA,oCAAA,aAAA,IAAA;AACA,QAAA,OAAA;AACA,YAAA,IAAA,MAAA,2BAAA,KAAA,EAAA;AAAA,IAAA;AAGA,SAAA,OAAA,MAAA,uCAAA,OAAA,QAAA,UAAA;AACA,WAAA,OAAA,QAAA,SAAA;AAAA,EAAA;AAAA,EAGA,MAAA,YACA,MACA,UACA,YACA;AACA,SAAA,kBAAA;AAGA,UAAA,cAAA,KAAA,eAAA;AACA,QAAA,EAAA,2CAAA,YAAA;AACA,YAAA,IAAA,MAAA,4BAAA;AAAA,IAAA;AAGA,UAAA,SAAA,KAAA,cAAA,QAAA;AAAA,MACA,CAAA,YAAA,QAAA,aAAA,EAAA,SAAA,MAAA,YAAA;AAAA,IACA;AACA,QAAA,CAAA,QAAA;AACA,YAAA,IAAA,MAAA,2CAAA;AAAA,IAAA;AAIA,QAAA,OAAA,cAAA,eAAA,KAAA,QAAA,YAAA;AACA,YAAA,IAAA,MAAA,uDAAA;AAAA,IAAA;AAIA,QAAA,cAAA,IAAA,uBAAA,EAAA,aAAA,QAAA,EAAA;AAGA,UAAA,WAAA,CAAA,KAAA,YAAA;AACA,UAAA;AACA,cAAA,aAAA,WAAA,WAAA,GAAA;AACA,aAAA,OAAA,MAAA,UAAA,OAAA,wBAAA,WAAA,UAAA;AACA,eAAA,WAAA;AAAA,eACA,cAAA;AACA,aAAA,OAAA,MAAA,mBAAA,OAAA,wBAAA,YAAA;AACA,YAAA;AACA,gBAAA,YAAA,UAAA,WAAA,GAAA;AACA,eAAA,OAAA,MAAA,UAAA,OAAA,uBAAA,UAAA,UAAA;AACA,iBAAA;AAAA,iBACA,aAAA;AACA,eAAA,OAAA,MAAA,WAAA,OAAA,gBAAA,WAAA;AACA,gBAAA,IAAA,MAAA,WAAA,OAAA,gBAAA,YAAA,OAAA,EAAA;AAAA,QAAA;AAAA,MACA;AAAA,IAEA;AAGA,QAAA,kBAAA;AAEA,QAAA,UAAA;AACA,UAAA;AACA,0BAAA,WAAA,WAAA,QAAA;AACA,oBAAA,YAAA,gBAAA,SAAA;AACA,oBAAA,kBAAA,gBAAA,SAAA;AACA,aAAA,OAAA,MAAA,sDAAA,gBAAA,UAAA,UAAA;AAAA,MAAA,QACA;AACA,cAAA,iBAAA,SAAA,UAAA,OAAA;AACA,oBAAA,YAAA,cAAA;AACA,oBAAA,kBAAA,cAAA;AACA,aAAA,OAAA,MAAA,qDAAA,eAAA,UAAA;AAAA,MAAA;AAAA,IACA;AAIA,QAAA,cAAA,WAAA,SAAA,GAAA;AACA,YAAA,mBAAA,WAAA,IAAA,CAAA,QAAA;AAEA,YAAA,CAAA,IAAA,uBAAA,CAAA,IAAA,UAAA,CAAA,IAAA,oBAAA;AACA,gBAAA,IAAA,MAAA,sFAAA;AAAA,QAAA;AAGA,cAAA,YAAA,WAAA,IAAA,MAAA;AACA,YAAA,MAAA,SAAA,KAAA,aAAA,GAAA;AACA,gBAAA,IAAA,MAAA,2CAAA;AAAA,QAAA;AAGA,cAAA,YAAA,IAAA,iBACA,UAAA,SAAA,EACA,yBAAA,IAAA,kBAAA,EACA,uBAAA,IAAA,mBAAA;AACA,eAAA;AAAA,MAAA,CACA;AACA,kBAAA,cAAA,gBAAA;AACA,WAAA,OAAA,MAAA,0BAAA,gBAAA;AAAA,IAAA;AAIA,kBAAA,MAAA,YAAA,iBAAA,MAAA;AACA,SAAA,OAAA,MAAA,mCAAA,OAAA,aAAA,EAAA,UAAA;AAGA,QAAA,iBAAA;AACA,oBAAA,MAAA,YAAA,KAAA,eAAA;AACA,WAAA,OAAA,MAAA,2CAAA;AAAA,IAAA;AAIA,UAAA,UAAA,MAAA,KAAA,mBAAA,aAAA,IAAA;AACA,QAAA,CAAA,QAAA,SAAA;AACA,YAAA,IAAA,MAAA,gDAAA;AAAA,IAAA;AAGA,SAAA,OAAA,MAAA,uCAAA,QAAA,QAAA,UAAA;AACA,WAAA,QAAA,QAAA,SAAA;AAAA,EAAA;AAAA,EAGA,MAAA,YACA,MACA,QACA,eACA,UACA,mBACA,UACA,WACA;AACA,SAAA,kBAAA;AAEA,QAAA,cAAA,IAAA,uBAAA,EACA,aAAA,IAAA,EACA,eAAA,MAAA,EACA,YAAA,QAAA,EACA,iBAAA,aAAA,EACA,qBAAA,UAAA,WAAA,iBAAA,CAAA,EACA,aAAA,UAAA,iBAAA,EACA,cAAA,gBAAA,MAAA;AAEA,QAAA,WAAA;AACA,oBAAA,YAAA,aAAA,WAAA,WAAA,SAAA,CAAA;AAAA,IAAA;AAGA,QAAA,UAAA;AACA,oBAAA,YAAA,YAAA,WAAA,WAAA,QAAA,CAAA;AACA,oBAAA,MAAA,YAAA,KAAA,WAAA,WAAA,QAAA,CAAA;AAAA,IAAA;AAGA,UAAA,UAAA,MAAA,KAAA,mBAAA,WAAA;AACA,WAAA,QAAA,QAAA,SAAA;AAAA,EAAA;AAAA,EAGA,MAAA,QACA,SACA,UACA,WACA;AACA,SAAA,kBAAA;AAEA,QAAA,cAAA,MAAA,IAAA,qBACA,EAAA,WAAA,OAAA,EACA,YAAA,CAAA3I,SAAA,KAAA,UAAA,OAAA,CAAA,CAAA,EACA,KAAA,SAAA;AAEA,WAAA,KAAA,mBAAA,WAAA;AAAA,EAAA;AAAA,EAGA,MAAA,aAAA,SAAA,SAAA;AACA,SAAA,kBAAA;AAEA,QAAA;AAEA,UAAA,CAAA,SAAA;AACA,cAAA,IAAA,MAAA,sBAAA;AAAA,MAAA;AAIA,YAAA,gBAAA,WAAA,KAAA,iBAAA;AACA,YAAA,UAAA,WAAA,aAAA;AAGA,YAAA,MAAA,GAAA,OAAA,kBAAA,OAAA;AAGA,YAAA,WAAA,MAAA,eAAA,EAAA,GAAA;AACA,UAAA,CAAA,SAAA,IAAA;AACA,cAAA,IAAA;AAAA,UACA,yDAAA,SAAA,MAAA;AAAA,QACA;AAAA,MAAA;AAGA,YAAA,OAAA,MAAA,SAAA,KAAA;AAGA,WAAA,OAAA,KAAA,yBAAA,IAAA;AAEA,aAAA;AAAA,aACA,OAAA;AACA,WAAA,OAAA,MAAA,8BAAA,KAAA;AACA,YAAA,IAAA,MAAA,kCAAA,MAAA,OAAA,EAAA;AAAA,IAAA;AAAA,EACA;AAAA,EAGA,MAAA,YACA,SACA,eACA,yBAAA,OACA,SACA;;AACA,UAAA,gBAAA,WAAA,KAAA,iBAAA;AACA,UAAA,UAAA,WAAA,aAAA;AACA,UAAA,iBACA,OAAA,aAAA,IAAA,KAAA,CAAA,yBACA,iBAAA,aAAA,KACA;AAEA,UAAA,MAAA,GAAA,OAAA,kBAAA,OAAA,sBAAA,cAAA;AAEA,QAAA;AACA,YAAA,WAAA,MAAA,eAAA,EAAA,GAAA;AACA,UAAA,CAAA,SAAA,IAAA;AACA,cAAA,IAAA;AAAA,UACA,0CAAA,SAAA,MAAA;AAAA,QACA;AAAA,MAAA;AAEA,YAAA,OAAA,MAAA,SAAA,KAAA;AACA,YAAA,YAAA,6BAAA,aAAA,CAAA;AACA,YAAA,YAAA,kCAAA,UAAA,mBAAA;AAEA,YAAA,oBAAA,SAAA,IAAA,CAAA,QAAA;AACA,cAAA,gBAAA,KAAA,MAAA,KAAA,IAAA,OAAA,CAAA;AACA,eAAA;AAAA,UACA,GAAA;AAAA,UACA,OAAA,IAAA;AAAA,UACA,SAAA,IAAA,KAAA,OAAA,IAAA,mBAAA,IAAA,GAAA;AAAA,UACA,qBAAA,IAAA;AAAA,UACA,iBAAA,IAAA;AAAA,QACA;AAAA,MAAA,CACA;AAEA,UAAA,UAAA;AACA,cAAA,aAAA,MAAA,KAAA;AAAA,UACA;AAAA,UACA;AAAA,aACA,uBAAA,kBAAA,SAAA,CAAA,MAAA,mBAAA;AAAA,UACA;AAAA,UACA;AAAA,QACA;AACA,0BAAA,KAAA,GAAA,WAAA,QAAA;AAAA,MAAA;AAGA,aAAA;AAAA,QACA,UAAA,kBAAA;AAAA,UACA,CAAA,GAAAG,OAAA,EAAA,kBAAAA,GAAA;AAAA,QACA;AAAA,QACA,OAAA;AAAA,MACA;AAAA,aACA,OAAA;AACA,WAAA,OAAA,MAAA,8BAAA,KAAA;AACA,aAAA;AAAA,QACA,UAAA,CAAA;AAAA,QACA,OAAA,MAAA,SAAA;AAAA,MACA;AAAA,IAAA;AAAA,EACA;AAAA,EAGA,MAAA,YAAA,SAAA;AACA,UAAA,gBAAA,KAAA;AACA,QAAA,CAAA,eAAA;AACA,YAAA,IAAA,MAAA,gCAAA;AAAA,IAAA;AAGA,UAAA,cAAA,KAAA,eAAA;AACA,UAAA,YAAA,2CAAA;AAEA,UAAA,SAAA;AAAA,MACA,iBAAA,UAAA,KAAA,OAAA,IAAA,SAAA;AAAA,MACA;AAAA,IACA;AAEA,UAAA,SAAA,MAAA,cAAA;AAAA,MACA;AAAA,IACA;AAGA,WAAA,EAAA,eAAA,OAAA,aAAA;AAAA,EAAA;AAAA,EAGA,mBACA,WACA,kBACA;AACA,QAAA,CAAA,WAAA;AACA,mBAAA,WAAA,oBAAA;AACA,mBAAA,WAAA,kBAAA;AAAA,IAAA,OACA;AACA,YAAA,eAAA,qDAAA,QAAA,UAAA;AACA,mBAAA,QAAA,oBAAA,YAAA;AACA,mBAAA,QAAA,sBAAA,SAAA;AAAA,IAAA;AAAA,EACA;AAAA,EAGA,qBAGA;AACA,WAAA;AAAA,MACA,WAAA,aAAA,QAAA,oBAAA;AAAA,MACA,SAAA,aAAA,QAAA,kBAAA;AAAA,IACA;AAAA,EAAA;AAAA,EAGA,MAAA,cACA,YACA,cACA,SAKA;AACA,QAAA;AACA,YAAA,KAAA,KAAA,YAAA,cAAA,OAAA;AACA,YAAA,UAAA,MAAA,KAAA,QAAA;AAEA,YAAA,cAAA,KAAA,eAAA;AACA,YAAA,YAAA,2CAAA;AACA,YAAA,UAAA,MAAA,KAAA,kBAAA;AACA,YAAA,gBAAA,KAAA,iBAAA;AAEA,WAAA,mBAAA,WAAA,aAAA;AACA,aAAA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACA;AAAA,aACA,OAAA;AACA,WAAA,OAAA,MAAA,6BAAA,KAAA;AACA,YAAA;AAAA,IAAA;AAAA,EACA;AAAA,EAGA,MAAA,iBACA,eAAA,MACA;AACA,QAAA;AACA,YAAA,UAAA,MAAA,KAAA,WAAA;AAEA,UAAA,WAAA,cAAA;AACA,qBAAA,MAAA;AAAA,MAAA;AAGA,WAAA,mBAAA,MAAA;AACA,aAAA;AAAA,aACA,OAAA;AACA,WAAA,OAAA,MAAA,gCAAA,KAAA;AACA,aAAA;AAAA,IAAA;AAAA,EACA;AAAA,EAGA,MAAA,YACA,YACA,cACA,iBACA,yBAAA,MAAA;AAAA,EAAA,GACA;AACA,UAAA,EAAA,WAAA,gBAAA,SAAA,aAAA,IACA,KAAA,mBAAA;AAEA,QAAA,kBAAA,cAAA;AACA,UAAA;AACA,cAAA,iBACA,iBAAA,YAAA,SAAA,UAAA,SAAA;AACA,cAAA,UAAA,mBAAA;AACA,cAAA,KAAA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACA;AACA,cAAA,UAAA,MAAA,KAAA,kBAAA;AACA,eAAA;AAAA,UACA,WAAA;AAAA,UACA;AAAA,QACA;AAAA,eACA,OAAA;AACA,aAAA,OAAA,MAAA,wBAAA,KAAA;AACA,aAAA,mBAAA,QAAA,MAAA;AACA,eAAA;AAAA,MAAA;AAAA,eAEA,iBAAA;AACA,UAAA;AACA,aAAA,OAAA;AAAA,UACA;AAAA,UACA;AAAA,QACA;AACA,cAAA,KAAA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACA;AACA,aAAA,OAAA,KAAA,eAAA,eAAA;AACA,cAAA,KAAA,sBAAA;AACA,aAAA,OAAA,KAAA,4BAAA;AAAA,eACA,OAAA;AACA,aAAA,OAAA,MAAA,+BAAA,KAAA;AACA,aAAA,mBAAA,QAAA,MAAA;AACA,eAAA;AAAA,MAAA;AAAA,IACA;AAGA,WAAA;AAAA,EAAA;AAAA,EAGA,sBAAA,UAAA;AAEA,QAAA,KAAA,wBAAA;AACA,oBAAA,KAAA,sBAAA;AAAA,IAAA;AAEA,SAAA,6BAAA;AAGA,SAAA,yBAAA,YAAA,MAAA;;AACA,YAAA,eAAA,UAAA,kBAAA,mBAAA,eAAA,CAAA;AACA,YAAA,qBAAA,WAAA;AAAA,QACA,CAAA,QAAA,IAAA;AAAA,MACA;AAEA,UAAA,sBAAA,CAAA,KAAA,4BAAA;AACA,aAAA,6BAAA;AACA,iBAAA,kBAAA;AAEA,YAAA,KAAA,wBAAA;AACA,wBAAA,KAAA,sBAAA;AACA,eAAA,yBAAA;AAAA,QAAA;AAAA,MACA;AAAA,OAEA,GAAA;AAGA,WAAA,MAAA;AACA,UAAA,KAAA,wBAAA;AACA,sBAAA,KAAA,sBAAA;AACA,aAAA,yBAAA;AAAA,MAAA;AAEA,WAAA,6BAAA;AAAA,IACA;AAAA,EAAA;AAAA,EAGA,MAAA,wBAAA;AACA,UAAA,aAAA,KAAA,cAAA,cAAA,CAAA;AACA,UAAA,YAAA,WAAA,KAAA,CAAA,QAAA;AACA,WAAA,OAAA,KAAA,sBAAA,GAAA;AACA,aAAA,IAAA;AAAA,IAAA,CACA;AACA,SAAA,OAAA,KAAA,kBAAA,YAAA,SAAA;AAEA,QAAA,WAAA;AACA,YAAA,KAAA,mBAAA,SAAA;AAAA,IAAA,OACA;AAEA,WAAA,sBAAA,OAAA,iBAAA;AACA,cAAA,KAAA,mBAAA,YAAA;AAAA,MAAA,CACA;AAAA,IAAA;AAAA,EACA;AAAA,EAGA,MAAA,mBAAA,WAAA;AACA,SAAA,OAAA,KAAA,0CAAA,SAAA;AACA,UAAA,UAAA,MAAA,KAAA,cAAA,iBAAA,UAAA,EAAA;AACA,UAAA,yBAAA,KAAA,cAAA;AACA,QAAA,wBAAA;AACA,6BAAA,OAAA;AAAA,IAAA;AAAA,EACA;AAAA,EAGA,oBAAA;AACA,QAAA,CAAA,KAAA,eAAA;AACA,YAAA,IAAA,MAAA,yCAAA;AAAA,IAAA;AAAA,EACA;AAAA,EAGA,OAAA,MAAA;AACA,QAAA;AACA,UAAA,OAAA,WAAA,aAAA;AACA,eAAA,4BACA,0BAAA,YAAA;AACA,eAAA,eAAA;AAAA,MAAA;AAAA,aAEA,GAAA;AACA,cAAA,MAAA,uCAAA;AAAA,IAAA;AAAA,EACA;AAAA,EAGA,MAAA,cACA,SACA,eACA,aACA,QACA;AACA,SAAA,kBAAA;AAEA,UAAA,cAAA,IAAA,sBACA,iBAAA,cAAA,SAAA,aAAA,CAAA,EACA;AAAA,MACA,QAAA,WAAA,OAAA;AAAA,MACA,UAAA,WAAA,aAAA;AAAA,MACA,CAAA;AAAA,IAAA,EAEA;AAAA,MACA,QAAA,WAAA,OAAA;AAAA,MACA,UAAA,WAAA,WAAA;AAAA,MACA;AAAA,IACA;AAEA,WAAA,KAAA,mBAAA,WAAA;AAAA,EAAA;AAAA,EAGA,MAAA,cAAA,gBAAA;AACA,SAAA,kBAAA;AAEA,UAAA,cAAA,IAAA,yBAAA,EAAA;AAAA,MACA,IAAA,KAAA,cAAA;AAAA,IACA;AAEA,WAAA,KAAA,mBAAA,WAAA;AAAA,EAAA;AAAA,EAGA,MAAA,wBACA,WACA,SACA;AACA,SAAA,kBAAA;AAEA,UAAA,cAAA,IAAA,0BACA,EAAA,aAAA,UAAA,WAAA,SAAA,CAAA,EACA,YAAA,CAAA,QAAA,WAAA,OAAA,CAAA,CAAA;AAEA,WAAA,KAAA,mBAAA,WAAA;AAAA,EAAA;AAAA,EAGA,MAAA,2BACA,WACA,SACA;AACA,SAAA,kBAAA;AAEA,UAAA,cAAA,IAAA,2BACA,EAAA,aAAA,UAAA,WAAA,SAAA,CAAA,EACA,YAAA,CAAA,QAAA,WAAA,OAAA,CAAA,CAAA;AAEA,WAAA,KAAA,mBAAA,WAAA;AAAA,EAAA;AAAA,EAGA,MAAA,cACA,WACA,+BACA;AACA,SAAA,kBAAA;AAEA,UAAA,cAAA,IAAA,yBACA,EAAA,aAAA,UAAA,WAAA,SAAA,CAAA,EACA,iCAAA,6BAAA;AAEA,WAAA,KAAA,mBAAA,WAAA;AAAA,EAAA;AAAA,EAGA,MAAA,iBACA,kBACA,SACA,QACA,gBACA;AACA,SAAA,kBAAA;AAEA,UAAA,cACA,IAAA,mCAAA,EAAA;AAAA,MACA,QAAA,WAAA,OAAA;AAAA,MACA,UAAA,WAAA,cAAA;AAAA,MACA,UAAA,WAAA,gBAAA;AAAA,MACA;AAAA,IACA;AAEA,WAAA,KAAA,mBAAA,WAAA;AAAA,EAAA;AAAA,EAGA,MAAA,iBACA,WACA;;AACA,SAAA,kBAAA;AAEA,UAAA,gBAAA,KAAA,iBAAA;AACA,UAAA,UAAA,WAAA,aAAA;AACA,UAAA,MAAA,GAAA,OAAA,oBAAA,SAAA;AAEA,QAAA;AACA,YAAA,WAAA,MAAA,eAAA,EAAA,GAAA;AACA,UAAA,CAAA,SAAA,IAAA;AACA,cAAA,IAAA;AAAA,UACA,6DAAA,SAAA,MAAA;AAAA,QACA;AAAA,MAAA;AAEA,YAAA,OAAA,MAAA,SAAA,KAAA;AAEA,YAAA,SAAA,CAAA;AAEA,iBAAA,SAAA,KAAA,QAAA;AACA,YAAA,MAAA,UAAA;AACA,iBAAA,KAAA;AAAA,YACA,SAAA,MAAA;AAAA,YACA,SAAA,MAAA;AAAA,YACA,UAAA,MAAA;AAAA,YACA,oBACA,MAAA,UACA,MAAA,MAAA,UACA,eAAA,OAAA;AAAA,YACA,mBAAA,IAAA,KAAA,OAAA,MAAA,iBAAA,IAAA,GAAA;AAAA,UAAA,CACA;AAAA,QAAA;AAAA,MACA;AAEA,UAAA,YAAA,UAAA,UAAA,mBAAA;AACA,aAAA,UAAA;AACA,cAAA,UAAA,GAAA,OAAA,GAAA,QAAA;AACA,cAAA,eAAA,MAAA,eAAA,EAAA,OAAA;AACA,YAAA,CAAA,aAAA,IAAA;AACA,gBAAA,IAAA;AAAA,YACA,6DAAA,aAAA,MAAA,WAAA,OAAA;AAAA,UACA;AAAA,QAAA;AAEA,cAAA,WAAA,MAAA,aAAA,KAAA;AAEA,mBAAA,SAAA,SAAA,QAAA;AACA,cAAA,MAAA,UAAA;AACA,mBAAA,KAAA;AAAA,cACA,SAAA,MAAA;AAAA,cACA,SAAA,MAAA;AAAA,cACA,UAAA,MAAA;AAAA,cACA,oBACA,MAAA,UACA,MAAA,MAAA,UACA,eAAA,OAAA;AAAA,cACA,mBAAA,IAAA;AAAA,gBACA,OAAA,MAAA,iBAAA,IAAA;AAAA,cAAA;AAAA,YACA,CACA;AAAA,UAAA;AAAA,QACA;AAGA,oBAAA,cAAA,UAAA,mBAAA;AAAA,MAAA;AAGA,aAAA,EAAA,OAAA;AAAA,aACA,OAAA;AACA,WAAA,OAAA,MAAA,kCAAA,KAAA;AACA,YAAA;AAAA,IAAA;AAAA,EACA;AAAA,EAGA,MAAA,eACA,eACA;AACA,QAAA;AACA,YAAA,gBAAA,KAAA,iBAAA;AACA,YAAA,MAAA,WAAA,aAAA,8CAAA,aAAA;AAEA,WAAA,OAAA,MAAA,wBAAA,GAAA;AACA,YAAA,UAAA,MAAA,eAAA,EAAA,GAAA;AAEA,UAAA,CAAA,QAAA,IAAA;AACA,cAAA,IAAA,MAAA,gCAAA,QAAA,MAAA,EAAA;AAAA,MAAA;AAGA,aAAA,MAAA,QAAA,KAAA;AAAA,aACA,GAAA;AACA,WAAA,OAAA,MAAA,6BAAA,CAAA;AACA,aAAA;AAAA,IAAA;AAAA,EACA;AAAA,EAGA,MAAA,0BACA,WACA;;AACA,QAAA;AACA,YAAA,gBAAA,KAAA,iBAAA;AACA,YAAA,MAAA,WAAA,aAAA,wDAAA,SAAA;AAEA,WAAA,OAAA,MAAA,qCAAA,GAAA;AACA,YAAA,UAAA,MAAA,eAAA,EAAA,GAAA;AAEA,UAAA,CAAA,QAAA,IAAA;AACA,cAAA,IAAA;AAAA,UACA,6CAAA,QAAA,MAAA;AAAA,QACA;AAAA,MAAA;AAGA,YAAA,WAAA,MAAA,QAAA,KAAA;AACA,YAAA,eAAA,0CAAA,iBAAA,mBAAA;AAEA,UAAA,aAAA;AACA,eAAA,MAAA,KAAA,eAAA,YAAA,cAAA;AAAA,MAAA;AAGA,aAAA;AAAA,aACA,GAAA;AACA,WAAA,OAAA,MAAA,0CAAA,CAAA;AACA,aAAA;AAAA,IAAA;AAAA,EACA;AAAA,EAGA,MAAA,eACA,WACA,SACA;;AACA,QAAA;AACA,YAAA,gBAAA,KAAA,iBAAA;AACA,YAAA,aAAA,UAAA,aAAA,OAAA,KAAA;AACA,YAAA,MAAA,WAAA,aAAA,0CAAA,SAAA,kBAAA,UAAA;AAEA,YAAA,UAAA,MAAA,eAAA,EAAA,GAAA;AACA,UAAA,CAAA,QAAA,IAAA;AACA,cAAA,IAAA,MAAA,qCAAA,QAAA,MAAA,EAAA;AAAA,MAAA;AAGA,YAAA,WAAA,MAAA,QAAA,KAAA;AACA,UAAA,aAAA,0CAAA,UAAA,mBAAA,SAAA;AACA,UAAA,OAAA,SAAA;AAEA,aAAA,UAAA;AACA,YAAA;AACA,gBAAA,cAAA,MAAA,eAAA;AAAA,YACA,WAAA,aAAA,yBAAA,QAAA;AAAA,UACA;AAEA,cAAA,CAAA,YAAA,IAAA;AACA,kBAAA,IAAA;AAAA,cACA,sCAAA,YAAA,MAAA;AAAA,YACA;AAAA,UAAA;AAGA,gBAAA,eAAA,MAAA,YAAA,KAAA;AACA,iBAAA,CAAA,GAAA,MAAA,IAAA,6CAAA,SAAA,CAAA,CAAA;AAGA,uBAAA,kDAAA,UAAA,mBAAA,SAAA,eAAA,kDAAA,UAAA,mBAAA,QACA,aAAA,MAAA,OACA;AAAA,iBACA,GAAA;AACA,eAAA,OAAA,MAAA,qCAAA,CAAA;AACA;AAAA,QAAA;AAAA,MACA;AAGA,aAAA,KAAA,IAAA,CAAA,QAAA;AACA,YAAA;AACA,cAAA,YAAAH,SAAA,KAAA,IAAA,UAAA,QAAA,EAAA,SAAA,OAAA;AAAA,iBACA,GAAA;AACA,eAAA,OAAA,MAAA,iCAAA,CAAA;AAAA,QAAA;AAEA,eAAA;AAAA,MAAA,CACA;AAAA,aACA,GAAA;AACA,WAAA,OAAA,MAAA,8BAAA,CAAA;AACA,aAAA,CAAA;AAAA,IAAA;AAAA,EACA;AAAA,EAGA,MAAA,qBACA,cACA,WACA,SACA;AACA,UAAA,WAAA,MAAA,KAAA,eAAA,WAAA,OAAA;AAEA,WACA,SAAA;AAAA,MACA,CAAA,QACA,IAAA,aAAA,WACA,IAAA,cAAA,eAAA;AAAA,IAAA,KACA;AAAA,EAAA;AAAA,EAIA,MAAA,kBACA,MACA,aACA,YACA,WAAA,MACA,QAAA,GACA;AACA,QAAA;AACA,YAAA,gBAAA,KAAA,iBAAA;AACA,YAAA,OAAA;AAAA,QACA,OAAA;AAAA,QACA;AAAA,QACA;AAAA,QACA,MAAA,YAAA,kBAAA;AAAA,QACA,IAAA,WAAA,kBAAA;AAAA,QACA;AAAA,MACA;AAEA,UAAA,CAAA,UAAA;AACA,aAAA,MAAA;AACA,aAAA,WAAA;AAAA,MAAA;AAGA,YAAA,MAAA,WAAA,aAAA;AAEA,YAAA,WAAA,MAAA,eAAA,EAAA,KAAA;AAAA,QACA,QAAA;AAAA,QACA,MAAA,KAAA,UAAA,IAAA;AAAA,QACA,SAAA;AAAA,UACA,gBAAA;AAAA,QAAA;AAAA,MACA,CACA;AAEA,UAAA,CAAA,SAAA,IAAA;AACA,cAAA,IAAA,MAAA,iCAAA,SAAA,MAAA,EAAA;AAAA,MAAA;AAGA,aAAA,MAAA,SAAA,KAAA;AAAA,aACA,GAAA;AACA,WAAA,OAAA,MAAA,gCAAA,CAAA;AACA,aAAA;AAAA,IAAA;AAAA,EACA;AAEA;","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]} \ No newline at end of file diff --git a/dist/es/index.d.ts b/dist/es/index.d.ts index 3d3ff70..13814c5 100644 --- a/dist/es/index.d.ts +++ b/dist/es/index.d.ts @@ -38,9 +38,19 @@ declare class HashinalsWalletConnectSDK { accountId: string; network: LedgerId; }; - createTopic(memo?: string, adminKey?: string, submitKey?: string): Promise; + generatePrivateAndPublicKey(): Promise<{ + privateKey: string; + publicKey: string; + }>; + updateTopic(topicId: string, memo: string, adminKey: string): Promise; + createTopic(memo?: string, adminKey?: string, customFees?: { + denominatingTokenId: string; + amount: string; + collectorAccountId: string; + }[]): Promise; createToken(name: string, symbol: string, initialSupply: number, decimals: number, treasuryAccountId: string, adminKey: string, supplyKey: string): Promise; mintNFT(tokenId: string, metadata: string, supplyKey: PrivateKey): Promise; + getTopicInfo(topicId: string, network?: string): Promise; getMessages(topicId: string, lastTimestamp?: number, disableTimestampFilter?: boolean, network?: string): Promise; signMessage(message: string): Promise<{ userSignature: any; diff --git a/dist/es/types.d.ts b/dist/es/types.d.ts index 9aa3c91..4df02d9 100644 --- a/dist/es/types.d.ts +++ b/dist/es/types.d.ts @@ -227,7 +227,17 @@ export type HashinalsWalletConnectSDK = { executeSmartContract: (contractId: string, functionName: string, parameters: ContractFunctionParameters, gas?: number) => Promise; getAccountBalance: () => Promise; getAccountInfo: () => string; - createTopic: (memo?: string, adminKey?: string, submitKey?: string) => Promise; + createTopic: (memo?: string, adminKey?: string, customFees?: { + denominatingTokenId: string; + amount: string; + collectorAccountId: string; + }[]) => Promise; + generatePrivateAndPublicKey: () => Promise<{ + privateKey: string; + publicKey: string; + }>; + getTopicInfo: (topicId: string) => Promise; + updateTopic: (topicId: string, memo: string, adminKey: string) => Promise; createToken: (name: string, symbol: string, initialSupply: number, decimals: number, treasuryAccountId: string, adminKey: string, supplyKey: string) => Promise; mintNFT: (tokenId: string, metadata: string, supplyKey: PrivateKey) => Promise; dAppConnector?: DAppConnector; diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 40b3a12..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,85 +0,0 @@ -import { SessionTypes, SignClientTypes } from '@walletconnect/types'; -import { Transaction, AccountId, ContractId, LedgerId, TransactionReceipt, ContractFunctionParameters, PrivateKey } from '@hashgraph/sdk'; -import * as HashgraphSDK from '@hashgraph/sdk'; -import { DAppConnector } from '@hashgraph/hedera-wallet-connect'; -import { FetchMessagesResult, TokenBalance, HederaAccountResponse, HederaTXResponse, Nft } from './types'; -import { ILogger } from './logger/logger'; -declare class HashinalsWalletConnectSDK { - private static instance; - private static dAppConnectorInstance; - private logger; - private network; - private extensionCheckInterval; - private hasCalledExtensionCallback; - get dAppConnector(): DAppConnector; - constructor(logger?: ILogger, network?: LedgerId); - static getInstance(logger?: ILogger, network?: LedgerId): HashinalsWalletConnectSDK; - setLogger(logger: ILogger): void; - setNetwork(network: LedgerId): void; - getNetwork(): LedgerId; - setLogLevel(level: 'error' | 'warn' | 'info' | 'debug'): void; - init(projectId: string, metadata: SignClientTypes.Metadata, network?: LedgerId, onSessionIframeCreated?: (session: SessionTypes.Struct) => void): Promise; - connect(): Promise; - disconnect(): Promise; - disconnectAll(): Promise; - executeTransaction(tx: Transaction, disableSigner?: boolean): Promise; - executeTransactionWithErrorHandling(tx: Transaction, disableSigner: boolean): Promise<{ - result?: TransactionReceipt; - error?: string; - }>; - submitMessageToTopic(topicId: string, message: string, submitKey?: PrivateKey): Promise; - transferHbar(fromAccountId: string, toAccountId: string, amount: number): Promise; - executeSmartContract(contractId: string, functionName: string, parameters: ContractFunctionParameters, gas?: number): Promise; - private handleNewSession; - private getNetworkPrefix; - requestAccount(account: string): Promise; - getAccountBalance(): Promise; - getAccountInfo(): { - accountId: string; - network: LedgerId; - }; - createTopic(memo?: string, adminKey?: string, submitKey?: string): Promise; - createToken(name: string, symbol: string, initialSupply: number, decimals: number, treasuryAccountId: string, adminKey: string, supplyKey: string): Promise; - mintNFT(tokenId: string, metadata: string, supplyKey: PrivateKey): Promise; - getMessages(topicId: string, lastTimestamp?: number, disableTimestampFilter?: boolean, network?: string): Promise; - signMessage(message: string): Promise<{ - userSignature: any; - }>; - private saveConnectionInfo; - loadConnectionInfo(): { - accountId: string | null; - network: string | null; - }; - connectWallet(PROJECT_ID: string, APP_METADATA: SignClientTypes.Metadata, network?: LedgerId): Promise<{ - accountId: string; - balance: string; - session: SessionTypes.Struct; - }>; - disconnectWallet(clearStorage?: boolean): Promise; - initAccount(PROJECT_ID: string, APP_METADATA: SignClientTypes.Metadata, networkOverride?: LedgerId, onSessionIframeCreated?: (session: SessionTypes.Struct) => void): Promise<{ - accountId: string; - balance: string; - } | null>; - subscribeToExtensions(callback: (extension: any) => void): () => void; - connectViaDappBrowser(): Promise; - private connectToExtension; - private ensureInitialized; - static run(): void; - transferToken(tokenId: string, fromAccountId: string, toAccountId: string, amount: number): Promise; - createAccount(initialBalance: number): Promise; - associateTokenToAccount(accountId: string, tokenId: string): Promise; - dissociateTokenFromAccount(accountId: string, tokenId: string): Promise; - updateAccount(accountId: string, maxAutomaticTokenAssociations: number): Promise; - approveAllowance(spenderAccountId: string, tokenId: string, amount: number, ownerAccountId: string): Promise; - getAccountTokens(accountId: string): Promise<{ - tokens: TokenBalance[]; - }>; - getTransaction(transactionId: string): Promise; - getTransactionByTimestamp(timestamp: string): Promise; - getAccountNFTs(accountId: string, tokenId?: string): Promise; - validateNFTOwnership(serialNumber: string, accountId: string, tokenId: string): Promise; - readSmartContract(data: string, fromAccount: AccountId, contractId: ContractId, estimate?: boolean, value?: number): Promise; -} -export * from './types'; -export * from './sign'; -export { HashinalsWalletConnectSDK, HashgraphSDK }; diff --git a/dist/logger/logger.d.ts b/dist/logger/logger.d.ts deleted file mode 100644 index 389219a..0000000 --- a/dist/logger/logger.d.ts +++ /dev/null @@ -1,14 +0,0 @@ -export interface ILogger { - error(message: string, ...args: any[]): void; - warn(message: string, ...args: any[]): void; - info(message: string, ...args: any[]): void; - debug(message: string, ...args: any[]): void; -} -export declare class DefaultLogger implements ILogger { - private logLevel; - setLogLevel(level: 'error' | 'warn' | 'info' | 'debug'): void; - error(message: string, ...args: any[]): void; - warn(message: string, ...args: any[]): void; - info(message: string, ...args: any[]): void; - debug(message: string, ...args: any[]): void; -} diff --git a/dist/sign/index.d.ts b/dist/sign/index.d.ts deleted file mode 100644 index c3435e4..0000000 --- a/dist/sign/index.d.ts +++ /dev/null @@ -1 +0,0 @@ -export { base64StringToSignatureMap, prefixMessageToSign, verifyMessageSignature, } from '@hashgraph/hedera-wallet-connect'; diff --git a/dist/types.d.ts b/dist/types.d.ts deleted file mode 100644 index 88804d4..0000000 --- a/dist/types.d.ts +++ /dev/null @@ -1,254 +0,0 @@ -import { DAppConnector } from '@hashgraph/hedera-wallet-connect'; -import * as hashgraph from '@hashgraph/sdk'; -import { ContractFunctionParameters, TransactionReceipt, PrivateKey, Transaction, AccountId, ContractId } from '@hashgraph/sdk'; -import { SessionTypes, SignClientTypes } from '@walletconnect/types'; -export interface HederaAccountResponse { - account: string; - alias: null; - auto_renew_period: number; - balance: Balance; - created_timestamp: string; - decline_reward: boolean; - deleted: boolean; - ethereum_nonce: number; - evm_address: string; - expiry_timestamp: string; - key: Key; - max_automatic_token_associations: number; - memo: string; - pending_reward: number; - receiver_sig_required: boolean; - staked_account_id: null; - staked_node_id: number; - stake_period_start: string; - transactions: HBARTransaction[]; - links: Links; -} -export interface Balance { - balance: number; - timestamp: string; - tokens: Token[]; -} -export interface Token { - token_id: string; - balance: number; -} -export interface Key { - _type: string; - key: string; -} -export interface Links { - next: string; -} -export interface HBARTransaction { - bytes: null; - charged_tx_fee: number; - consensus_timestamp: string; - entity_id: null | string; - max_fee: string; - memo_base64: string; - name: Name; - nft_transfers: NftTransfer[]; - node: string; - nonce: number; - parent_consensus_timestamp: null; - result: Result; - scheduled: boolean; - staking_reward_transfers: StakingRewardTransfer[]; - token_transfers: Transfer[]; - transaction_hash: string; - transaction_id: string; - transfers: Transfer[]; - valid_duration_seconds: string; - valid_start_timestamp: string; -} -export declare enum Name { - Contractcall = "CONTRACTCALL", - Cryptotransfer = "CRYPTOTRANSFER" -} -export interface NftTransfer { - is_approval: boolean; - receiver_account_id: string; - sender_account_id: string; - serial_number: number; - token_id: string; -} -export declare enum Result { - Success = "SUCCESS" -} -export interface StakingRewardTransfer { - account: string; - amount: number; -} -export interface Transfer { - token_id?: string; - account: string; - amount: number; - is_approval: boolean; -} -export interface Message { - payer: string; - created: Date; - consensus_timestamp: string; - sequence_number: number; - [key: string]: any; -} -export interface FetchMessagesResult { - messages: Message[]; - error?: string; -} -export interface Account { - account: string; - alias: null; - auto_renew_period: number; - balance: Balance; - decline_reward: boolean; - deleted: boolean; - ethereum_nonce: null; - evm_address: null; - expiry_timestamp: string; - key: Key; - max_automatic_token_associations: number; - memo: string; - receiver_sig_required: null; - staked_account_id: null; - staked_node_id: null; - stake_period_start: null; -} -export interface Balance { - balance: number; - timestamp: string; - tokens: Token[]; -} -export interface Token { - token_id: string; - balance: number; -} -export interface Key { - _type: string; - key: string; -} -export interface TokenBalance { - tokenId: string; - balance: string; - decimals: number; - created_timestamp: Date; - formatted_balance: string; -} -export interface HederaTXResponse { - transactions: MirrorNodeTransaction[]; -} -export interface MirrorNodeTransaction { - bytes: null; - charged_tx_fee: number; - consensus_timestamp: string; - entity_id: string; - max_fee: string; - memo_base64: string; - name: string; - node: null | string; - nonce: number; - parent_consensus_timestamp: null | string; - result: string; - scheduled: boolean; - transaction_hash: string; - transaction_id: string; - transfers: Transfer[]; - token_transfers: TokenTransfer[]; - valid_duration_seconds: null | string; - valid_start_timestamp: string; - nft_transfers?: NftTransfer[]; -} -export interface NftTransfer { - is_approval: boolean; - receiver_account_id: string; - sender_account_id: string; - serial_number: number; - token_id: string; -} -export interface TokenTransfer { - token_id: string; - account: string; - amount: number; -} -export interface HBarNFT { - nfts: Nft[]; - links: Links; -} -export interface Links { - next: string; -} -export interface Nft { - account_id: string; - created_timestamp: string; - delegating_spender: null; - deleted: boolean; - metadata: string; - modified_timestamp: string; - serial_number: number; - spender: null; - token_id: string; - token_uri?: string; - owner_of?: string; -} -export interface FormattedOwner { - token_uri?: string; - chain?: string; - owner_of?: string; - token_address?: string; - token_id?: string; - account_id?: string; - serial_number?: number; - [key: string]: any; -} -export type HashinalsWalletConnectSDK = { - run: () => void; - init: (projectId: string, metadata: SignClientTypes.Metadata) => Promise; - connect: () => Promise; - connectWallet(PROJECT_ID: string, APP_METADATA: SignClientTypes.Metadata): Promise<{ - accountId: string; - balance: string; - session: SessionTypes.Struct; - }>; - disconnect: () => Promise; - disconnectAll: () => Promise; - disconnectWallet: () => Promise; - loadConnectionInfo: () => string | null; - saveConnectionInfo: (accountId: string) => void; - executeTransaction: (tx: Transaction, disableSigner: boolean) => Promise; - executeTransationWithErrorHandling: (tx: Transaction, disableSigner: boolean) => Promise<{ - result?: TransactionReceipt; - error?: string; - }>; - result?: TransactionReceipt; - error?: string; - submitMessageToTopic: (topicId: string, message: string) => Promise; - transferHbar: (fromAccountId: string, toAccountId: string, amount: number) => Promise; - executeSmartContract: (contractId: string, functionName: string, parameters: ContractFunctionParameters, gas?: number) => Promise; - getAccountBalance: () => Promise; - getAccountInfo: () => string; - createTopic: (memo?: string, adminKey?: string, submitKey?: string) => Promise; - createToken: (name: string, symbol: string, initialSupply: number, decimals: number, treasuryAccountId: string, adminKey: string, supplyKey: string) => Promise; - mintNFT: (tokenId: string, metadata: string, supplyKey: PrivateKey) => Promise; - dAppConnector?: DAppConnector; - getMessages: (topicId: string, lastTimestamp?: number, disableTimestampFilter?: boolean) => Promise; - initAccount: (PROJECT_ID: string, APP_METADATA: SignClientTypes.Metadata) => Promise<{ - accountId: string; - balance: string; - } | null>; - transferToken: (tokenId: string, fromAccountId: string, toAccountId: string, amount: number) => Promise; - createAccount: (initialBalance: number) => Promise; - associateTokenToAccount: (accountId: string, tokenId: string) => Promise; - dissociateTokenFromAccount: (accountId: string, tokenId: string) => Promise; - updateAccount: (accountId: string, maxAutomaticTokenAssociations: number) => Promise; - approveAllowance: (spenderAccountId: string, tokenId: string, amount: number, ownerAccountId: string) => Promise; - getAccountTokens: (accountId: string) => Promise<{ - tokens: TokenBalance[]; - }>; - getTransaction: (transactionId: string) => Promise; - getTransactionByTimestamp: (timestamp: string) => Promise; - getAccountNFTs: (accountId: string, tokenId?: string) => Promise; - validateNFTOwnership: (serialNumber: string, accountId: string, tokenId: string) => Promise; - readSmartContract: (data: string, fromAccount: AccountId, contractId: ContractId, estimate?: boolean, value?: number) => Promise; - HashgraphSDK: typeof hashgraph; -}; diff --git a/dist/umd/hashinal-wc.umd.js b/dist/umd/hashinal-wc.umd.js index ecf3a88..3729a11 100644 --- a/dist/umd/hashinal-wc.umd.js +++ b/dist/umd/hashinal-wc.umd.js @@ -1,13 +1,13 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).HashinalsWalletConnectSDK={})}(this,(function(exports){"use strict";var __defProp2=Object.defineProperty,__defNormalProp2=(e,t,r)=>t in e?__defProp2(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,__publicField=(e,t,r)=>__defNormalProp2(e,"symbol"!=typeof t?t+"":t,r);function _mergeNamespaces(e,t){for(var r=0;rn[t]})}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var buffer$1={},base64Js={};base64Js.byteLength=byteLength$1,base64Js.toByteArray=toByteArray,base64Js.fromByteArray=fromByteArray;for(var lookup=[],revLookup=[],Arr="undefined"!=typeof Uint8Array?Uint8Array:Array,code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",i$9=0,len=code.length;i$90)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function byteLength$1(e){var t=getLens(e),r=t[0],n=t[1];return 3*(r+n)/4-n}function _byteLength(e,t,r){return 3*(t+r)/4-r}function toByteArray(e){var t,r,n=getLens(e),o=n[0],i=n[1],a=new Arr(_byteLength(e,o,i)),s=0,c=i>0?o-4:o;for(r=0;r>16&255,a[s++]=t>>8&255,a[s++]=255&t;return 2===i&&(t=revLookup[e.charCodeAt(r)]<<2|revLookup[e.charCodeAt(r+1)]>>4,a[s++]=255&t),1===i&&(t=revLookup[e.charCodeAt(r)]<<10|revLookup[e.charCodeAt(r+1)]<<4|revLookup[e.charCodeAt(r+2)]>>2,a[s++]=t>>8&255,a[s++]=255&t),a}function tripletToBase64(e){return lookup[e>>18&63]+lookup[e>>12&63]+lookup[e>>6&63]+lookup[63&e]}function encodeChunk(e,t,r){for(var n,o=[],i=t;is?s:a+i));return 1===n?(t=e[r-1],o.push(lookup[t>>2]+lookup[t<<4&63]+"==")):2===n&&(t=(e[r-2]<<8)+e[r-1],o.push(lookup[t>>10]+lookup[t>>4&63]+lookup[t<<2&63]+"=")),o.join("")}revLookup["-".charCodeAt(0)]=62,revLookup["_".charCodeAt(0)]=63;var ieee754={ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).HashinalsWalletConnectSDK={})}(this,(function(exports){"use strict";var __defProp2=Object.defineProperty,__defNormalProp2=(e,t,r)=>t in e?__defProp2(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,__publicField=(e,t,r)=>__defNormalProp2(e,"symbol"!=typeof t?t+"":t,r);function _mergeNamespaces(e,t){for(var r=0;rn[t]})}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var buffer$1={},base64Js={};base64Js.byteLength=byteLength$1,base64Js.toByteArray=toByteArray,base64Js.fromByteArray=fromByteArray;for(var lookup=[],revLookup=[],Arr="undefined"!=typeof Uint8Array?Uint8Array:Array,code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",i$n=0,len=code.length;i$n0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function byteLength$1(e){var t=getLens(e),r=t[0],n=t[1];return 3*(r+n)/4-n}function _byteLength(e,t,r){return 3*(t+r)/4-r}function toByteArray(e){var t,r,n=getLens(e),o=n[0],i=n[1],s=new Arr(_byteLength(e,o,i)),a=0,c=i>0?o-4:o;for(r=0;r>16&255,s[a++]=t>>8&255,s[a++]=255&t;return 2===i&&(t=revLookup[e.charCodeAt(r)]<<2|revLookup[e.charCodeAt(r+1)]>>4,s[a++]=255&t),1===i&&(t=revLookup[e.charCodeAt(r)]<<10|revLookup[e.charCodeAt(r+1)]<<4|revLookup[e.charCodeAt(r+2)]>>2,s[a++]=t>>8&255,s[a++]=255&t),s}function tripletToBase64(e){return lookup[e>>18&63]+lookup[e>>12&63]+lookup[e>>6&63]+lookup[63&e]}function encodeChunk(e,t,r){for(var n,o=[],i=t;ia?a:s+i));return 1===n?(t=e[r-1],o.push(lookup[t>>2]+lookup[t<<4&63]+"==")):2===n&&(t=(e[r-2]<<8)+e[r-1],o.push(lookup[t>>10]+lookup[t>>4&63]+lookup[t<<2&63]+"=")),o.join("")}revLookup["-".charCodeAt(0)]=62,revLookup["_".charCodeAt(0)]=63;var ieee754={ /*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */ -read:function(e,t,r,n,o){var i,a,s=8*o-n-1,c=(1<>1,l=-7,d=r?o-1:0,f=r?-1:1,h=e[t+d];for(d+=f,i=h&(1<<-l)-1,h>>=-l,l+=s;l>0;i=256*i+e[t+d],d+=f,l-=8);for(a=i&(1<<-l)-1,i>>=-l,l+=n;l>0;a=256*a+e[t+d],d+=f,l-=8);if(0===i)i=1-u;else{if(i===c)return a?NaN:1/0*(h?-1:1);a+=Math.pow(2,n),i-=u}return(h?-1:1)*a*Math.pow(2,i-n)},write:function(e,t,r,n,o,i){var a,s,c,u=8*i-o-1,l=(1<>1,f=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,h=n?0:i-1,p=n?1:-1,y=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=l):(a=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-a))<1&&(a--,c*=2),(t+=a+d>=1?f/c:f*Math.pow(2,1-d))*c>=2&&(a++,c/=2),a+d>=l?(s=0,a=l):a+d>=1?(s=(t*c-1)*Math.pow(2,o),a+=d):(s=t*Math.pow(2,d-1)*Math.pow(2,o),a=0));o>=8;e[r+h]=255&s,h+=p,s/=256,o-=8);for(a=a<0;e[r+h]=255&a,h+=p,a/=256,u-=8);e[r+h-p]|=128*y}}; +read:function(e,t,r,n,o){var i,s,a=8*o-n-1,c=(1<>1,l=-7,d=r?o-1:0,h=r?-1:1,f=e[t+d];for(d+=h,i=f&(1<<-l)-1,f>>=-l,l+=a;l>0;i=256*i+e[t+d],d+=h,l-=8);for(s=i&(1<<-l)-1,i>>=-l,l+=n;l>0;s=256*s+e[t+d],d+=h,l-=8);if(0===i)i=1-u;else{if(i===c)return s?NaN:1/0*(f?-1:1);s+=Math.pow(2,n),i-=u}return(f?-1:1)*s*Math.pow(2,i-n)},write:function(e,t,r,n,o,i){var s,a,c,u=8*i-o-1,l=(1<>1,h=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,f=n?0:i-1,p=n?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,s=l):(s=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-s))<1&&(s--,c*=2),(t+=s+d>=1?h/c:h*Math.pow(2,1-d))*c>=2&&(s++,c/=2),s+d>=l?(a=0,s=l):s+d>=1?(a=(t*c-1)*Math.pow(2,o),s+=d):(a=t*Math.pow(2,d-1)*Math.pow(2,o),s=0));o>=8;e[r+f]=255&a,f+=p,a/=256,o-=8);for(s=s<0;e[r+f]=255&s,f+=p,s/=256,u-=8);e[r+f-p]|=128*m}}; /*! * The buffer module from node.js, for the browser. * * @author Feross Aboukhadijeh * @license MIT */ -!function(e){const t=base64Js,r=ieee754,n="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=u,e.SlowBuffer=function(e){+e!=e&&(e=0);return u.alloc(+e)},e.INSPECT_MAX_BYTES=50;const o=2147483647;e.kMaxLength=o;const{Uint8Array:i,ArrayBuffer:a,SharedArrayBuffer:s}=globalThis;function c(e){if(e>o)throw new RangeError('The value "'+e+'" is invalid for option "size"');const t=new i(e);return Object.setPrototypeOf(t,u.prototype),t}function u(e,t,r){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return f(e)}return l(e,t,r)}function l(e,t,r){if("string"==typeof e)return function(e,t){"string"==typeof t&&""!==t||(t="utf8");if(!u.isEncoding(t))throw new TypeError("Unknown encoding: "+t);const r=0|m(e,t);let n=c(r);const o=n.write(e,t);o!==r&&(n=n.slice(0,o));return n}(e,t);if(a.isView(e))return function(e){if(Y(e,i)){const t=new i(e);return p(t.buffer,t.byteOffset,t.byteLength)}return h(e)}(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(Y(e,a)||e&&Y(e.buffer,a))return p(e,t,r);if(void 0!==s&&(Y(e,s)||e&&Y(e.buffer,s)))return p(e,t,r);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');const n=e.valueOf&&e.valueOf();if(null!=n&&n!==e)return u.from(n,t,r);const o=function(e){if(u.isBuffer(e)){const t=0|y(e.length),r=c(t);return 0===r.length||e.copy(r,0,0,t),r}if(void 0!==e.length)return"number"!=typeof e.length||X(e.length)?c(0):h(e);if("Buffer"===e.type&&Array.isArray(e.data))return h(e.data)}(e);if(o)return o;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return u.from(e[Symbol.toPrimitive]("string"),t,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function d(e){if("number"!=typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function f(e){return d(e),c(e<0?0:0|y(e))}function h(e){const t=e.length<0?0:0|y(e.length),r=c(t);for(let n=0;n=o)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o.toString(16)+" bytes");return 0|e}function m(e,t){if(u.isBuffer(e))return e.length;if(a.isView(e)||Y(e,a))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);const r=e.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;let o=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return V(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return W(e).length;default:if(o)return n?-1:V(e).length;t=(""+t).toLowerCase(),o=!0}}function g(e,t,r){let n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return O(this,t,r);case"utf8":case"utf-8":return A(this,t,r);case"ascii":return C(this,t,r);case"latin1":case"binary":return R(this,t,r);case"base64":return S(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return N(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function b(e,t,r){const n=e[t];e[t]=e[r],e[r]=n}function v(e,t,r,n,o){if(0===e.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),X(r=+r)&&(r=o?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(o)return-1;r=e.length-1}else if(r<0){if(!o)return-1;r=0}if("string"==typeof t&&(t=u.from(t,n)),u.isBuffer(t))return 0===t.length?-1:w(e,t,r,n,o);if("number"==typeof t)return t&=255,"function"==typeof i.prototype.indexOf?o?i.prototype.indexOf.call(e,t,r):i.prototype.lastIndexOf.call(e,t,r):w(e,[t],r,n,o);throw new TypeError("val must be string, number or Buffer")}function w(e,t,r,n,o){let i,a=1,s=e.length,c=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;a=2,s/=2,c/=2,r/=2}function u(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(o){let n=-1;for(i=r;is&&(r=s-c),i=r;i>=0;i--){let r=!0;for(let n=0;no&&(n=o):n=o;const i=t.length;let a;for(n>i/2&&(n=i/2),a=0;a>8,o=r%256,i.push(o),i.push(n);return i}(t,e.length-r),e,r,n)}function S(e,r,n){return 0===r&&n===e.length?t.fromByteArray(e):t.fromByteArray(e.slice(r,n))}function A(e,t,r){r=Math.min(e.length,r);const n=[];let o=t;for(;o239?4:t>223?3:t>191?2:1;if(o+a<=r){let r,n,s,c;switch(a){case 1:t<128&&(i=t);break;case 2:r=e[o+1],128==(192&r)&&(c=(31&t)<<6|63&r,c>127&&(i=c));break;case 3:r=e[o+1],n=e[o+2],128==(192&r)&&128==(192&n)&&(c=(15&t)<<12|(63&r)<<6|63&n,c>2047&&(c<55296||c>57343)&&(i=c));break;case 4:r=e[o+1],n=e[o+2],s=e[o+3],128==(192&r)&&128==(192&n)&&128==(192&s)&&(c=(15&t)<<18|(63&r)<<12|(63&n)<<6|63&s,c>65535&&c<1114112&&(i=c))}}null===i?(i=65533,a=1):i>65535&&(i-=65536,n.push(i>>>10&1023|55296),i=56320|1023&i),n.push(i),o+=a}return function(e){const t=e.length;if(t<=E)return String.fromCharCode.apply(String,e);let r="",n=0;for(;nn.length?(u.isBuffer(t)||(t=u.from(t)),t.copy(n,o)):i.prototype.set.call(n,t,o);else{if(!u.isBuffer(t))throw new TypeError('"list" argument must be an Array of Buffers');t.copy(n,o)}o+=t.length}return n},u.byteLength=m,u.prototype._isBuffer=!0,u.prototype.swap16=function(){const e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let t=0;tr&&(t+=" ... "),""},n&&(u.prototype[n]=u.prototype.inspect),u.prototype.compare=function(e,t,r,n,o){if(Y(e,i)&&(e=u.from(e,e.offset,e.byteLength)),!u.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===o&&(o=this.length),t<0||r>e.length||n<0||o>this.length)throw new RangeError("out of range index");if(n>=o&&t>=r)return 0;if(n>=o)return-1;if(t>=r)return 1;if(this===e)return 0;let a=(o>>>=0)-(n>>>=0),s=(r>>>=0)-(t>>>=0);const c=Math.min(a,s),l=this.slice(n,o),d=e.slice(t,r);for(let i=0;i>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}const o=this.length-t;if((void 0===r||r>o)&&(r=o),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");let i=!1;for(;;)switch(n){case"hex":return _(this,e,t,r);case"utf8":case"utf-8":return I(this,e,t,r);case"ascii":case"latin1":case"binary":return T(this,e,t,r);case"base64":return k(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return $(this,e,t,r);default:if(i)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),i=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};const E=4096;function C(e,t,r){let n="";r=Math.min(e.length,r);for(let o=t;on)&&(r=n);let o="";for(let i=t;ir)throw new RangeError("Trying to access beyond buffer length")}function M(e,t,r,n,o,i){if(!u.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||te.length)throw new RangeError("Index out of range")}function B(e,t,r,n,o){K(t,n,o,e,r,7);let i=Number(t&BigInt(4294967295));e[r++]=i,i>>=8,e[r++]=i,i>>=8,e[r++]=i,i>>=8,e[r++]=i;let a=Number(t>>BigInt(32)&BigInt(4294967295));return e[r++]=a,a>>=8,e[r++]=a,a>>=8,e[r++]=a,a>>=8,e[r++]=a,r}function D(e,t,r,n,o){K(t,n,o,e,r,7);let i=Number(t&BigInt(4294967295));e[r+7]=i,i>>=8,e[r+6]=i,i>>=8,e[r+5]=i,i>>=8,e[r+4]=i;let a=Number(t>>BigInt(32)&BigInt(4294967295));return e[r+3]=a,a>>=8,e[r+2]=a,a>>=8,e[r+1]=a,a>>=8,e[r]=a,r+8}function x(e,t,r,n,o,i){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function L(e,t,n,o,i){return t=+t,n>>>=0,i||x(e,0,n,4),r.write(e,t,n,o,23,4),n+4}function U(e,t,n,o,i){return t=+t,n>>>=0,i||x(e,0,n,8),r.write(e,t,n,o,52,8),n+8}u.prototype.slice=function(e,t){const r=this.length;(e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t>>=0,t>>>=0,r||P(e,t,this.length);let n=this[e],o=1,i=0;for(;++i>>=0,t>>>=0,r||P(e,t,this.length);let n=this[e+--t],o=1;for(;t>0&&(o*=256);)n+=this[e+--t]*o;return n},u.prototype.readUint8=u.prototype.readUInt8=function(e,t){return e>>>=0,t||P(e,1,this.length),this[e]},u.prototype.readUint16LE=u.prototype.readUInt16LE=function(e,t){return e>>>=0,t||P(e,2,this.length),this[e]|this[e+1]<<8},u.prototype.readUint16BE=u.prototype.readUInt16BE=function(e,t){return e>>>=0,t||P(e,2,this.length),this[e]<<8|this[e+1]},u.prototype.readUint32LE=u.prototype.readUInt32LE=function(e,t){return e>>>=0,t||P(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},u.prototype.readUint32BE=u.prototype.readUInt32BE=function(e,t){return e>>>=0,t||P(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},u.prototype.readBigUInt64LE=Z((function(e){H(e>>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||G(e,this.length-8);const n=t+256*this[++e]+65536*this[++e]+this[++e]*2**24,o=this[++e]+256*this[++e]+65536*this[++e]+r*2**24;return BigInt(n)+(BigInt(o)<>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||G(e,this.length-8);const n=t*2**24+65536*this[++e]+256*this[++e]+this[++e],o=this[++e]*2**24+65536*this[++e]+256*this[++e]+r;return(BigInt(n)<>>=0,t>>>=0,r||P(e,t,this.length);let n=this[e],o=1,i=0;for(;++i=o&&(n-=Math.pow(2,8*t)),n},u.prototype.readIntBE=function(e,t,r){e>>>=0,t>>>=0,r||P(e,t,this.length);let n=t,o=1,i=this[e+--n];for(;n>0&&(o*=256);)i+=this[e+--n]*o;return o*=128,i>=o&&(i-=Math.pow(2,8*t)),i},u.prototype.readInt8=function(e,t){return e>>>=0,t||P(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},u.prototype.readInt16LE=function(e,t){e>>>=0,t||P(e,2,this.length);const r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},u.prototype.readInt16BE=function(e,t){e>>>=0,t||P(e,2,this.length);const r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},u.prototype.readInt32LE=function(e,t){return e>>>=0,t||P(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},u.prototype.readInt32BE=function(e,t){return e>>>=0,t||P(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},u.prototype.readBigInt64LE=Z((function(e){H(e>>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||G(e,this.length-8);const n=this[e+4]+256*this[e+5]+65536*this[e+6]+(r<<24);return(BigInt(n)<>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||G(e,this.length-8);const n=(t<<24)+65536*this[++e]+256*this[++e]+this[++e];return(BigInt(n)<>>=0,t||P(e,4,this.length),r.read(this,e,!0,23,4)},u.prototype.readFloatBE=function(e,t){return e>>>=0,t||P(e,4,this.length),r.read(this,e,!1,23,4)},u.prototype.readDoubleLE=function(e,t){return e>>>=0,t||P(e,8,this.length),r.read(this,e,!0,52,8)},u.prototype.readDoubleBE=function(e,t){return e>>>=0,t||P(e,8,this.length),r.read(this,e,!1,52,8)},u.prototype.writeUintLE=u.prototype.writeUIntLE=function(e,t,r,n){if(e=+e,t>>>=0,r>>>=0,!n){M(this,e,t,r,Math.pow(2,8*r)-1,0)}let o=1,i=0;for(this[t]=255&e;++i>>=0,r>>>=0,!n){M(this,e,t,r,Math.pow(2,8*r)-1,0)}let o=r-1,i=1;for(this[t+o]=255&e;--o>=0&&(i*=256);)this[t+o]=e/i&255;return t+r},u.prototype.writeUint8=u.prototype.writeUInt8=function(e,t,r){return e=+e,t>>>=0,r||M(this,e,t,1,255,0),this[t]=255&e,t+1},u.prototype.writeUint16LE=u.prototype.writeUInt16LE=function(e,t,r){return e=+e,t>>>=0,r||M(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},u.prototype.writeUint16BE=u.prototype.writeUInt16BE=function(e,t,r){return e=+e,t>>>=0,r||M(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},u.prototype.writeUint32LE=u.prototype.writeUInt32LE=function(e,t,r){return e=+e,t>>>=0,r||M(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},u.prototype.writeUint32BE=u.prototype.writeUInt32BE=function(e,t,r){return e=+e,t>>>=0,r||M(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},u.prototype.writeBigUInt64LE=Z((function(e,t=0){return B(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),u.prototype.writeBigUInt64BE=Z((function(e,t=0){return D(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),u.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t>>>=0,!n){const n=Math.pow(2,8*r-1);M(this,e,t,r,n-1,-n)}let o=0,i=1,a=0;for(this[t]=255&e;++o>>=0,!n){const n=Math.pow(2,8*r-1);M(this,e,t,r,n-1,-n)}let o=r-1,i=1,a=0;for(this[t+o]=255&e;--o>=0&&(i*=256);)e<0&&0===a&&0!==this[t+o+1]&&(a=1),this[t+o]=(e/i|0)-a&255;return t+r},u.prototype.writeInt8=function(e,t,r){return e=+e,t>>>=0,r||M(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},u.prototype.writeInt16LE=function(e,t,r){return e=+e,t>>>=0,r||M(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},u.prototype.writeInt16BE=function(e,t,r){return e=+e,t>>>=0,r||M(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},u.prototype.writeInt32LE=function(e,t,r){return e=+e,t>>>=0,r||M(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},u.prototype.writeInt32BE=function(e,t,r){return e=+e,t>>>=0,r||M(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},u.prototype.writeBigInt64LE=Z((function(e,t=0){return B(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),u.prototype.writeBigInt64BE=Z((function(e,t=0){return D(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),u.prototype.writeFloatLE=function(e,t,r){return L(this,e,t,!0,r)},u.prototype.writeFloatBE=function(e,t,r){return L(this,e,t,!1,r)},u.prototype.writeDoubleLE=function(e,t,r){return U(this,e,t,!0,r)},u.prototype.writeDoubleBE=function(e,t,r){return U(this,e,t,!1,r)},u.prototype.copy=function(e,t,r,n){if(!u.isBuffer(e))throw new TypeError("argument should be a Buffer");if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(o=t;o=n+4;r-=3)t=`_${e.slice(r-3,r)}${t}`;return`${e.slice(0,r)}${t}`}function K(e,t,r,n,o,i){if(e>r||e= 0${r} and < 2${r} ** ${8*(i+1)}${r}`:`>= -(2${r} ** ${8*(i+1)-1}${r}) and < 2 ** ${8*(i+1)-1}${r}`,new j.ERR_OUT_OF_RANGE("value",n,e)}!function(e,t,r){H(t,"offset"),void 0!==e[t]&&void 0!==e[t+r]||G(t,e.length-(r+1))}(n,o,i)}function H(e,t){if("number"!=typeof e)throw new j.ERR_INVALID_ARG_TYPE(t,"number",e)}function G(e,t,r){if(Math.floor(e)!==e)throw H(e,r),new j.ERR_OUT_OF_RANGE("offset","an integer",e);if(t<0)throw new j.ERR_BUFFER_OUT_OF_BOUNDS;throw new j.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${t}`,e)}F("ERR_BUFFER_OUT_OF_BOUNDS",(function(e){return e?`${e} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"}),RangeError),F("ERR_INVALID_ARG_TYPE",(function(e,t){return`The "${e}" argument must be of type number. Received type ${typeof t}`}),TypeError),F("ERR_OUT_OF_RANGE",(function(e,t,r){let n=`The value of "${e}" is out of range.`,o=r;return Number.isInteger(r)&&Math.abs(r)>2**32?o=q(String(r)):"bigint"==typeof r&&(o=String(r),(r>BigInt(2)**BigInt(32)||r<-(BigInt(2)**BigInt(32)))&&(o=q(o)),o+="n"),n+=` It must be ${t}. Received ${o}`,n}),RangeError);const z=/[^+/0-9A-Za-z-_]/g;function V(e,t){let r;t=t||1/0;const n=e.length;let o=null;const i=[];for(let a=0;a55295&&r<57344){if(!o){if(r>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(a+1===n){(t-=3)>-1&&i.push(239,191,189);continue}o=r;continue}if(r<56320){(t-=3)>-1&&i.push(239,191,189),o=r;continue}r=65536+(o-55296<<10|r-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,r<128){if((t-=1)<0)break;i.push(r)}else if(r<2048){if((t-=2)<0)break;i.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;i.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return i}function W(e){return t.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(z,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function Q(e,t,r,n){let o;for(o=0;o=t.length||o>=e.length);++o)t[o+r]=e[o];return o}function Y(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function X(e){return e!=e}const J=function(){const e="0123456789abcdef",t=new Array(256);for(let r=0;r<16;++r){const n=16*r;for(let o=0;o<16;++o)t[n+o]=e[r]+e[o]}return t}();function Z(e){return"undefined"==typeof BigInt?ee:e}function ee(){throw new Error("BigInt not supported")}}(buffer$1);const Buffer$2=buffer$1.Buffer,Blob$2=buffer$1.Blob,BlobOptions=buffer$1.BlobOptions,Buffer$1$1=buffer$1.Buffer,File=buffer$1.File,FileOptions=buffer$1.FileOptions,INSPECT_MAX_BYTES=buffer$1.INSPECT_MAX_BYTES,SlowBuffer=buffer$1.SlowBuffer,TranscodeEncoding=buffer$1.TranscodeEncoding,atob$1=buffer$1.atob,btoa$1=buffer$1.btoa,constants$2=buffer$1.constants,isAscii=buffer$1.isAscii,isUtf8=buffer$1.isUtf8,kMaxLength=buffer$1.kMaxLength,kStringMaxLength=buffer$1.kStringMaxLength,resolveObjectURL=buffer$1.resolveObjectURL,transcode=buffer$1.transcode,dist=Object.freeze(Object.defineProperty({__proto__:null,Blob:Blob$2,BlobOptions:BlobOptions,Buffer:Buffer$1$1,File:File,FileOptions:FileOptions,INSPECT_MAX_BYTES:INSPECT_MAX_BYTES,SlowBuffer:SlowBuffer,TranscodeEncoding:TranscodeEncoding,atob:atob$1,btoa:btoa$1,constants:constants$2,default:Buffer$2,isAscii:isAscii,isUtf8:isUtf8,kMaxLength:kMaxLength,kStringMaxLength:kStringMaxLength,resolveObjectURL:resolveObjectURL,transcode:transcode},Symbol.toStringTag,{value:"Module"})); +!function(e){const t=base64Js,r=ieee754,n="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=u,e.SlowBuffer=function(e){+e!=e&&(e=0);return u.alloc(+e)},e.INSPECT_MAX_BYTES=50;const o=2147483647;e.kMaxLength=o;const{Uint8Array:i,ArrayBuffer:s,SharedArrayBuffer:a}=globalThis;function c(e){if(e>o)throw new RangeError('The value "'+e+'" is invalid for option "size"');const t=new i(e);return Object.setPrototypeOf(t,u.prototype),t}function u(e,t,r){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return h(e)}return l(e,t,r)}function l(e,t,r){if("string"==typeof e)return function(e,t){"string"==typeof t&&""!==t||(t="utf8");if(!u.isEncoding(t))throw new TypeError("Unknown encoding: "+t);const r=0|y(e,t);let n=c(r);const o=n.write(e,t);o!==r&&(n=n.slice(0,o));return n}(e,t);if(s.isView(e))return function(e){if(J(e,i)){const t=new i(e);return p(t.buffer,t.byteOffset,t.byteLength)}return f(e)}(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(J(e,s)||e&&J(e.buffer,s))return p(e,t,r);if(void 0!==a&&(J(e,a)||e&&J(e.buffer,a)))return p(e,t,r);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');const n=e.valueOf&&e.valueOf();if(null!=n&&n!==e)return u.from(n,t,r);const o=function(e){if(u.isBuffer(e)){const t=0|m(e.length),r=c(t);return 0===r.length||e.copy(r,0,0,t),r}if(void 0!==e.length)return"number"!=typeof e.length||Q(e.length)?c(0):f(e);if("Buffer"===e.type&&Array.isArray(e.data))return f(e.data)}(e);if(o)return o;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return u.from(e[Symbol.toPrimitive]("string"),t,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function d(e){if("number"!=typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function h(e){return d(e),c(e<0?0:0|m(e))}function f(e){const t=e.length<0?0:0|m(e.length),r=c(t);for(let n=0;n=o)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o.toString(16)+" bytes");return 0|e}function y(e,t){if(u.isBuffer(e))return e.length;if(s.isView(e)||J(e,s))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);const r=e.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;let o=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return W(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return V(e).length;default:if(o)return n?-1:W(e).length;t=(""+t).toLowerCase(),o=!0}}function g(e,t,r){let n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return C(this,t,r);case"utf8":case"utf-8":return E(this,t,r);case"ascii":return P(this,t,r);case"latin1":case"binary":return R(this,t,r);case"base64":return S(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return O(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function b(e,t,r){const n=e[t];e[t]=e[r],e[r]=n}function w(e,t,r,n,o){if(0===e.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),Q(r=+r)&&(r=o?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(o)return-1;r=e.length-1}else if(r<0){if(!o)return-1;r=0}if("string"==typeof t&&(t=u.from(t,n)),u.isBuffer(t))return 0===t.length?-1:_(e,t,r,n,o);if("number"==typeof t)return t&=255,"function"==typeof i.prototype.indexOf?o?i.prototype.indexOf.call(e,t,r):i.prototype.lastIndexOf.call(e,t,r):_(e,[t],r,n,o);throw new TypeError("val must be string, number or Buffer")}function _(e,t,r,n,o){let i,s=1,a=e.length,c=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;s=2,a/=2,c/=2,r/=2}function u(e,t){return 1===s?e[t]:e.readUInt16BE(t*s)}if(o){let n=-1;for(i=r;ia&&(r=a-c),i=r;i>=0;i--){let r=!0;for(let n=0;no&&(n=o):n=o;const i=t.length;let s;for(n>i/2&&(n=i/2),s=0;s>8,o=r%256,i.push(o),i.push(n);return i}(t,e.length-r),e,r,n)}function S(e,r,n){return 0===r&&n===e.length?t.fromByteArray(e):t.fromByteArray(e.slice(r,n))}function E(e,t,r){r=Math.min(e.length,r);const n=[];let o=t;for(;o239?4:t>223?3:t>191?2:1;if(o+s<=r){let r,n,a,c;switch(s){case 1:t<128&&(i=t);break;case 2:r=e[o+1],128==(192&r)&&(c=(31&t)<<6|63&r,c>127&&(i=c));break;case 3:r=e[o+1],n=e[o+2],128==(192&r)&&128==(192&n)&&(c=(15&t)<<12|(63&r)<<6|63&n,c>2047&&(c<55296||c>57343)&&(i=c));break;case 4:r=e[o+1],n=e[o+2],a=e[o+3],128==(192&r)&&128==(192&n)&&128==(192&a)&&(c=(15&t)<<18|(63&r)<<12|(63&n)<<6|63&a,c>65535&&c<1114112&&(i=c))}}null===i?(i=65533,s=1):i>65535&&(i-=65536,n.push(i>>>10&1023|55296),i=56320|1023&i),n.push(i),o+=s}return function(e){const t=e.length;if(t<=T)return String.fromCharCode.apply(String,e);let r="",n=0;for(;nn.length?(u.isBuffer(t)||(t=u.from(t)),t.copy(n,o)):i.prototype.set.call(n,t,o);else{if(!u.isBuffer(t))throw new TypeError('"list" argument must be an Array of Buffers');t.copy(n,o)}o+=t.length}return n},u.byteLength=y,u.prototype._isBuffer=!0,u.prototype.swap16=function(){const e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let t=0;tr&&(t+=" ... "),""},n&&(u.prototype[n]=u.prototype.inspect),u.prototype.compare=function(e,t,r,n,o){if(J(e,i)&&(e=u.from(e,e.offset,e.byteLength)),!u.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===o&&(o=this.length),t<0||r>e.length||n<0||o>this.length)throw new RangeError("out of range index");if(n>=o&&t>=r)return 0;if(n>=o)return-1;if(t>=r)return 1;if(this===e)return 0;let s=(o>>>=0)-(n>>>=0),a=(r>>>=0)-(t>>>=0);const c=Math.min(s,a),l=this.slice(n,o),d=e.slice(t,r);for(let i=0;i>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}const o=this.length-t;if((void 0===r||r>o)&&(r=o),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");let i=!1;for(;;)switch(n){case"hex":return v(this,e,t,r);case"utf8":case"utf-8":return $(this,e,t,r);case"ascii":case"latin1":case"binary":return I(this,e,t,r);case"base64":return k(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return A(this,e,t,r);default:if(i)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),i=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};const T=4096;function P(e,t,r){let n="";r=Math.min(e.length,r);for(let o=t;on)&&(r=n);let o="";for(let i=t;ir)throw new RangeError("Trying to access beyond buffer length")}function N(e,t,r,n,o,i){if(!u.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||te.length)throw new RangeError("Index out of range")}function B(e,t,r,n,o){K(t,n,o,e,r,7);let i=Number(t&BigInt(4294967295));e[r++]=i,i>>=8,e[r++]=i,i>>=8,e[r++]=i,i>>=8,e[r++]=i;let s=Number(t>>BigInt(32)&BigInt(4294967295));return e[r++]=s,s>>=8,e[r++]=s,s>>=8,e[r++]=s,s>>=8,e[r++]=s,r}function x(e,t,r,n,o){K(t,n,o,e,r,7);let i=Number(t&BigInt(4294967295));e[r+7]=i,i>>=8,e[r+6]=i,i>>=8,e[r+5]=i,i>>=8,e[r+4]=i;let s=Number(t>>BigInt(32)&BigInt(4294967295));return e[r+3]=s,s>>=8,e[r+2]=s,s>>=8,e[r+1]=s,s>>=8,e[r]=s,r+8}function D(e,t,r,n,o,i){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function L(e,t,n,o,i){return t=+t,n>>>=0,i||D(e,0,n,4),r.write(e,t,n,o,23,4),n+4}function U(e,t,n,o,i){return t=+t,n>>>=0,i||D(e,0,n,8),r.write(e,t,n,o,52,8),n+8}u.prototype.slice=function(e,t){const r=this.length;(e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t>>=0,t>>>=0,r||M(e,t,this.length);let n=this[e],o=1,i=0;for(;++i>>=0,t>>>=0,r||M(e,t,this.length);let n=this[e+--t],o=1;for(;t>0&&(o*=256);)n+=this[e+--t]*o;return n},u.prototype.readUint8=u.prototype.readUInt8=function(e,t){return e>>>=0,t||M(e,1,this.length),this[e]},u.prototype.readUint16LE=u.prototype.readUInt16LE=function(e,t){return e>>>=0,t||M(e,2,this.length),this[e]|this[e+1]<<8},u.prototype.readUint16BE=u.prototype.readUInt16BE=function(e,t){return e>>>=0,t||M(e,2,this.length),this[e]<<8|this[e+1]},u.prototype.readUint32LE=u.prototype.readUInt32LE=function(e,t){return e>>>=0,t||M(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},u.prototype.readUint32BE=u.prototype.readUInt32BE=function(e,t){return e>>>=0,t||M(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},u.prototype.readBigUInt64LE=X((function(e){z(e>>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||H(e,this.length-8);const n=t+256*this[++e]+65536*this[++e]+this[++e]*2**24,o=this[++e]+256*this[++e]+65536*this[++e]+r*2**24;return BigInt(n)+(BigInt(o)<>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||H(e,this.length-8);const n=t*2**24+65536*this[++e]+256*this[++e]+this[++e],o=this[++e]*2**24+65536*this[++e]+256*this[++e]+r;return(BigInt(n)<>>=0,t>>>=0,r||M(e,t,this.length);let n=this[e],o=1,i=0;for(;++i=o&&(n-=Math.pow(2,8*t)),n},u.prototype.readIntBE=function(e,t,r){e>>>=0,t>>>=0,r||M(e,t,this.length);let n=t,o=1,i=this[e+--n];for(;n>0&&(o*=256);)i+=this[e+--n]*o;return o*=128,i>=o&&(i-=Math.pow(2,8*t)),i},u.prototype.readInt8=function(e,t){return e>>>=0,t||M(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},u.prototype.readInt16LE=function(e,t){e>>>=0,t||M(e,2,this.length);const r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},u.prototype.readInt16BE=function(e,t){e>>>=0,t||M(e,2,this.length);const r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},u.prototype.readInt32LE=function(e,t){return e>>>=0,t||M(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},u.prototype.readInt32BE=function(e,t){return e>>>=0,t||M(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},u.prototype.readBigInt64LE=X((function(e){z(e>>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||H(e,this.length-8);const n=this[e+4]+256*this[e+5]+65536*this[e+6]+(r<<24);return(BigInt(n)<>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||H(e,this.length-8);const n=(t<<24)+65536*this[++e]+256*this[++e]+this[++e];return(BigInt(n)<>>=0,t||M(e,4,this.length),r.read(this,e,!0,23,4)},u.prototype.readFloatBE=function(e,t){return e>>>=0,t||M(e,4,this.length),r.read(this,e,!1,23,4)},u.prototype.readDoubleLE=function(e,t){return e>>>=0,t||M(e,8,this.length),r.read(this,e,!0,52,8)},u.prototype.readDoubleBE=function(e,t){return e>>>=0,t||M(e,8,this.length),r.read(this,e,!1,52,8)},u.prototype.writeUintLE=u.prototype.writeUIntLE=function(e,t,r,n){if(e=+e,t>>>=0,r>>>=0,!n){N(this,e,t,r,Math.pow(2,8*r)-1,0)}let o=1,i=0;for(this[t]=255&e;++i>>=0,r>>>=0,!n){N(this,e,t,r,Math.pow(2,8*r)-1,0)}let o=r-1,i=1;for(this[t+o]=255&e;--o>=0&&(i*=256);)this[t+o]=e/i&255;return t+r},u.prototype.writeUint8=u.prototype.writeUInt8=function(e,t,r){return e=+e,t>>>=0,r||N(this,e,t,1,255,0),this[t]=255&e,t+1},u.prototype.writeUint16LE=u.prototype.writeUInt16LE=function(e,t,r){return e=+e,t>>>=0,r||N(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},u.prototype.writeUint16BE=u.prototype.writeUInt16BE=function(e,t,r){return e=+e,t>>>=0,r||N(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},u.prototype.writeUint32LE=u.prototype.writeUInt32LE=function(e,t,r){return e=+e,t>>>=0,r||N(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},u.prototype.writeUint32BE=u.prototype.writeUInt32BE=function(e,t,r){return e=+e,t>>>=0,r||N(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},u.prototype.writeBigUInt64LE=X((function(e,t=0){return B(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),u.prototype.writeBigUInt64BE=X((function(e,t=0){return x(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),u.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t>>>=0,!n){const n=Math.pow(2,8*r-1);N(this,e,t,r,n-1,-n)}let o=0,i=1,s=0;for(this[t]=255&e;++o>>=0,!n){const n=Math.pow(2,8*r-1);N(this,e,t,r,n-1,-n)}let o=r-1,i=1,s=0;for(this[t+o]=255&e;--o>=0&&(i*=256);)e<0&&0===s&&0!==this[t+o+1]&&(s=1),this[t+o]=(e/i|0)-s&255;return t+r},u.prototype.writeInt8=function(e,t,r){return e=+e,t>>>=0,r||N(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},u.prototype.writeInt16LE=function(e,t,r){return e=+e,t>>>=0,r||N(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},u.prototype.writeInt16BE=function(e,t,r){return e=+e,t>>>=0,r||N(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},u.prototype.writeInt32LE=function(e,t,r){return e=+e,t>>>=0,r||N(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},u.prototype.writeInt32BE=function(e,t,r){return e=+e,t>>>=0,r||N(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},u.prototype.writeBigInt64LE=X((function(e,t=0){return B(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),u.prototype.writeBigInt64BE=X((function(e,t=0){return x(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),u.prototype.writeFloatLE=function(e,t,r){return L(this,e,t,!0,r)},u.prototype.writeFloatBE=function(e,t,r){return L(this,e,t,!1,r)},u.prototype.writeDoubleLE=function(e,t,r){return U(this,e,t,!0,r)},u.prototype.writeDoubleBE=function(e,t,r){return U(this,e,t,!1,r)},u.prototype.copy=function(e,t,r,n){if(!u.isBuffer(e))throw new TypeError("argument should be a Buffer");if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(o=t;o=n+4;r-=3)t=`_${e.slice(r-3,r)}${t}`;return`${e.slice(0,r)}${t}`}function K(e,t,r,n,o,i){if(e>r||e= 0${r} and < 2${r} ** ${8*(i+1)}${r}`:`>= -(2${r} ** ${8*(i+1)-1}${r}) and < 2 ** ${8*(i+1)-1}${r}`,new F.ERR_OUT_OF_RANGE("value",n,e)}!function(e,t,r){z(t,"offset"),void 0!==e[t]&&void 0!==e[t+r]||H(t,e.length-(r+1))}(n,o,i)}function z(e,t){if("number"!=typeof e)throw new F.ERR_INVALID_ARG_TYPE(t,"number",e)}function H(e,t,r){if(Math.floor(e)!==e)throw z(e,r),new F.ERR_OUT_OF_RANGE("offset","an integer",e);if(t<0)throw new F.ERR_BUFFER_OUT_OF_BOUNDS;throw new F.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${t}`,e)}j("ERR_BUFFER_OUT_OF_BOUNDS",(function(e){return e?`${e} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"}),RangeError),j("ERR_INVALID_ARG_TYPE",(function(e,t){return`The "${e}" argument must be of type number. Received type ${typeof t}`}),TypeError),j("ERR_OUT_OF_RANGE",(function(e,t,r){let n=`The value of "${e}" is out of range.`,o=r;return Number.isInteger(r)&&Math.abs(r)>2**32?o=q(String(r)):"bigint"==typeof r&&(o=String(r),(r>BigInt(2)**BigInt(32)||r<-(BigInt(2)**BigInt(32)))&&(o=q(o)),o+="n"),n+=` It must be ${t}. Received ${o}`,n}),RangeError);const G=/[^+/0-9A-Za-z-_]/g;function W(e,t){let r;t=t||1/0;const n=e.length;let o=null;const i=[];for(let s=0;s55295&&r<57344){if(!o){if(r>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(s+1===n){(t-=3)>-1&&i.push(239,191,189);continue}o=r;continue}if(r<56320){(t-=3)>-1&&i.push(239,191,189),o=r;continue}r=65536+(o-55296<<10|r-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,r<128){if((t-=1)<0)break;i.push(r)}else if(r<2048){if((t-=2)<0)break;i.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;i.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return i}function V(e){return t.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(G,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function Y(e,t,r,n){let o;for(o=0;o=t.length||o>=e.length);++o)t[o+r]=e[o];return o}function J(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function Q(e){return e!=e}const Z=function(){const e="0123456789abcdef",t=new Array(256);for(let r=0;r<16;++r){const n=16*r;for(let o=0;o<16;++o)t[n+o]=e[r]+e[o]}return t}();function X(e){return"undefined"==typeof BigInt?ee:e}function ee(){throw new Error("BigInt not supported")}}(buffer$1);const Buffer$2=buffer$1.Buffer,Blob$1=buffer$1.Blob,BlobOptions=buffer$1.BlobOptions,Buffer$1$1=buffer$1.Buffer,File=buffer$1.File,FileOptions=buffer$1.FileOptions,INSPECT_MAX_BYTES=buffer$1.INSPECT_MAX_BYTES,SlowBuffer=buffer$1.SlowBuffer,TranscodeEncoding=buffer$1.TranscodeEncoding,atob$1=buffer$1.atob,btoa$1=buffer$1.btoa,constants$2=buffer$1.constants,isAscii=buffer$1.isAscii,isUtf8=buffer$1.isUtf8,kMaxLength=buffer$1.kMaxLength,kStringMaxLength=buffer$1.kStringMaxLength,resolveObjectURL=buffer$1.resolveObjectURL,transcode=buffer$1.transcode,dist=Object.freeze(Object.defineProperty({__proto__:null,Blob:Blob$1,BlobOptions:BlobOptions,Buffer:Buffer$1$1,File:File,FileOptions:FileOptions,INSPECT_MAX_BYTES:INSPECT_MAX_BYTES,SlowBuffer:SlowBuffer,TranscodeEncoding:TranscodeEncoding,atob:atob$1,btoa:btoa$1,constants:constants$2,default:Buffer$2,isAscii:isAscii,isUtf8:isUtf8,kMaxLength:kMaxLength,kStringMaxLength:kStringMaxLength,resolveObjectURL:resolveObjectURL,transcode:transcode},Symbol.toStringTag,{value:"Module"})); /** * @license * Copyright 2009 The Closure Library Authors @@ -27,8 +27,15 @@ read:function(e,t,r,n,o){var i,a,s=8*o-n-1,c=(1<>1,l=-7,d=r?o-1:0,f=r? * * SPDX-License-Identifier: Apache-2.0 */ -var wasm$1=null;try{wasm$1=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch(e2){}function Long$1(e,t,r){this.low=0|e,this.high=0|t,this.unsigned=!!r}function isLong$2(e){return!0===(e&&e.__isLong__)}function ctz32(e){var t=Math.clz32(e&-e);return e?31-t:t}Long$1.prototype.__isLong__,Object.defineProperty(Long$1.prototype,"__isLong__",{value:!0}),Long$1.isLong=isLong$2;var INT_CACHE$1={},UINT_CACHE$1={};function fromInt$1(e,t){var r,n,o;return t?(o=0<=(e>>>=0)&&e<256)&&(n=UINT_CACHE$1[e])?n:(r=fromBits$1(e,0,!0),o&&(UINT_CACHE$1[e]=r),r):(o=-128<=(e|=0)&&e<128)&&(n=INT_CACHE$1[e])?n:(r=fromBits$1(e,e<0?-1:0,!1),o&&(INT_CACHE$1[e]=r),r)}function fromNumber$1(e,t){if(isNaN(e))return t?UZERO$1:ZERO$1;if(t){if(e<0)return UZERO$1;if(e>=TWO_PWR_64_DBL$1)return MAX_UNSIGNED_VALUE$1}else{if(e<=-TWO_PWR_63_DBL$1)return MIN_VALUE$1;if(e+1>=TWO_PWR_63_DBL$1)return MAX_VALUE$1}return e<0?fromNumber$1(-e,t).neg():fromBits$1(e%TWO_PWR_32_DBL$1|0,e/TWO_PWR_32_DBL$1|0,t)}function fromBits$1(e,t,r){return new Long$1(e,t,r)}Long$1.fromInt=fromInt$1,Long$1.fromNumber=fromNumber$1,Long$1.fromBits=fromBits$1;var pow_dbl$1=Math.pow;function fromString$5(e,t,r){if(0===e.length)throw Error("empty string");if("number"==typeof t?(r=t,t=!1):t=!!t,"NaN"===e||"Infinity"===e||"+Infinity"===e||"-Infinity"===e)return t?UZERO$1:ZERO$1;if((r=r||10)<2||360)throw Error("interior hyphen");if(0===n)return fromString$5(e.substring(1),t,r).neg();for(var o=fromNumber$1(pow_dbl$1(r,8)),i=ZERO$1,a=0;a>>0:this.low},LongPrototype$1.toNumber=function(){return this.unsigned?(this.high>>>0)*TWO_PWR_32_DBL$1+(this.low>>>0):this.high*TWO_PWR_32_DBL$1+(this.low>>>0)},LongPrototype$1.toString=function(e){if((e=e||10)<2||36>>0).toString(e);if((i=s).isZero())return c+a;for(;c.length<6;)c="0"+c;a=""+c+a}},LongPrototype$1.getHighBits=function(){return this.high},LongPrototype$1.getHighBitsUnsigned=function(){return this.high>>>0},LongPrototype$1.getLowBits=function(){return this.low},LongPrototype$1.getLowBitsUnsigned=function(){return this.low>>>0},LongPrototype$1.getNumBitsAbs=function(){if(this.isNegative())return this.eq(MIN_VALUE$1)?64:this.neg().getNumBitsAbs();for(var e=0!=this.high?this.high:this.low,t=31;t>0&&!(e&1<=0},LongPrototype$1.isOdd=function(){return!(1&~this.low)},LongPrototype$1.isEven=function(){return!(1&this.low)},LongPrototype$1.equals=function(e){return isLong$2(e)||(e=fromValue$1(e)),(this.unsigned===e.unsigned||this.high>>>31!=1||e.high>>>31!=1)&&(this.high===e.high&&this.low===e.low)},LongPrototype$1.eq=LongPrototype$1.equals,LongPrototype$1.notEquals=function(e){return!this.eq(e)},LongPrototype$1.neq=LongPrototype$1.notEquals,LongPrototype$1.ne=LongPrototype$1.notEquals,LongPrototype$1.lessThan=function(e){return this.comp(e)<0},LongPrototype$1.lt=LongPrototype$1.lessThan,LongPrototype$1.lessThanOrEqual=function(e){return this.comp(e)<=0},LongPrototype$1.lte=LongPrototype$1.lessThanOrEqual,LongPrototype$1.le=LongPrototype$1.lessThanOrEqual,LongPrototype$1.greaterThan=function(e){return this.comp(e)>0},LongPrototype$1.gt=LongPrototype$1.greaterThan,LongPrototype$1.greaterThanOrEqual=function(e){return this.comp(e)>=0},LongPrototype$1.gte=LongPrototype$1.greaterThanOrEqual,LongPrototype$1.ge=LongPrototype$1.greaterThanOrEqual,LongPrototype$1.compare=function(e){if(isLong$2(e)||(e=fromValue$1(e)),this.eq(e))return 0;var t=this.isNegative(),r=e.isNegative();return t&&!r?-1:!t&&r?1:this.unsigned?e.high>>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1:this.sub(e).isNegative()?-1:1},LongPrototype$1.comp=LongPrototype$1.compare,LongPrototype$1.negate=function(){return!this.unsigned&&this.eq(MIN_VALUE$1)?MIN_VALUE$1:this.not().add(ONE$1)},LongPrototype$1.neg=LongPrototype$1.negate,LongPrototype$1.add=function(e){isLong$2(e)||(e=fromValue$1(e));var t=this.high>>>16,r=65535&this.high,n=this.low>>>16,o=65535&this.low,i=e.high>>>16,a=65535&e.high,s=e.low>>>16,c=0,u=0,l=0,d=0;return l+=(d+=o+(65535&e.low))>>>16,u+=(l+=n+s)>>>16,c+=(u+=r+a)>>>16,c+=t+i,fromBits$1((l&=65535)<<16|(d&=65535),(c&=65535)<<16|(u&=65535),this.unsigned)},LongPrototype$1.subtract=function(e){return isLong$2(e)||(e=fromValue$1(e)),this.add(e.neg())},LongPrototype$1.sub=LongPrototype$1.subtract,LongPrototype$1.multiply=function(e){if(this.isZero())return this;if(isLong$2(e)||(e=fromValue$1(e)),wasm$1)return fromBits$1(wasm$1.mul(this.low,this.high,e.low,e.high),wasm$1.get_high(),this.unsigned);if(e.isZero())return this.unsigned?UZERO$1:ZERO$1;if(this.eq(MIN_VALUE$1))return e.isOdd()?MIN_VALUE$1:ZERO$1;if(e.eq(MIN_VALUE$1))return this.isOdd()?MIN_VALUE$1:ZERO$1;if(this.isNegative())return e.isNegative()?this.neg().mul(e.neg()):this.neg().mul(e).neg();if(e.isNegative())return this.mul(e.neg()).neg();if(this.lt(TWO_PWR_24$1)&&e.lt(TWO_PWR_24$1))return fromNumber$1(this.toNumber()*e.toNumber(),this.unsigned);var t=this.high>>>16,r=65535&this.high,n=this.low>>>16,o=65535&this.low,i=e.high>>>16,a=65535&e.high,s=e.low>>>16,c=65535&e.low,u=0,l=0,d=0,f=0;return d+=(f+=o*c)>>>16,l+=(d+=n*c)>>>16,d&=65535,l+=(d+=o*s)>>>16,u+=(l+=r*c)>>>16,l&=65535,u+=(l+=n*s)>>>16,l&=65535,u+=(l+=o*a)>>>16,u+=t*c+r*s+n*a+o*i,fromBits$1((d&=65535)<<16|(f&=65535),(u&=65535)<<16|(l&=65535),this.unsigned)},LongPrototype$1.mul=LongPrototype$1.multiply,LongPrototype$1.divide=function(e){if(isLong$2(e)||(e=fromValue$1(e)),e.isZero())throw Error("division by zero");var t,r,n;if(wasm$1)return this.unsigned||-2147483648!==this.high||-1!==e.low||-1!==e.high?fromBits$1((this.unsigned?wasm$1.div_u:wasm$1.div_s)(this.low,this.high,e.low,e.high),wasm$1.get_high(),this.unsigned):this;if(this.isZero())return this.unsigned?UZERO$1:ZERO$1;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return UZERO$1;if(e.gt(this.shru(1)))return UONE$1;n=UZERO$1}else{if(this.eq(MIN_VALUE$1))return e.eq(ONE$1)||e.eq(NEG_ONE$1)?MIN_VALUE$1:e.eq(MIN_VALUE$1)?ONE$1:(t=this.shr(1).div(e).shl(1)).eq(ZERO$1)?e.isNegative()?ONE$1:NEG_ONE$1:(r=this.sub(e.mul(t)),n=t.add(r.div(e)));if(e.eq(MIN_VALUE$1))return this.unsigned?UZERO$1:ZERO$1;if(this.isNegative())return e.isNegative()?this.neg().div(e.neg()):this.neg().div(e).neg();if(e.isNegative())return this.div(e.neg()).neg();n=ZERO$1}for(r=this;r.gte(e);){t=Math.max(1,Math.floor(r.toNumber()/e.toNumber()));for(var o=Math.ceil(Math.log(t)/Math.LN2),i=o<=48?1:pow_dbl$1(2,o-48),a=fromNumber$1(t),s=a.mul(e);s.isNegative()||s.gt(r);)s=(a=fromNumber$1(t-=i,this.unsigned)).mul(e);a.isZero()&&(a=ONE$1),n=n.add(a),r=r.sub(s)}return n},LongPrototype$1.div=LongPrototype$1.divide,LongPrototype$1.modulo=function(e){return isLong$2(e)||(e=fromValue$1(e)),wasm$1?fromBits$1((this.unsigned?wasm$1.rem_u:wasm$1.rem_s)(this.low,this.high,e.low,e.high),wasm$1.get_high(),this.unsigned):this.sub(this.div(e).mul(e))},LongPrototype$1.mod=LongPrototype$1.modulo,LongPrototype$1.rem=LongPrototype$1.modulo,LongPrototype$1.not=function(){return fromBits$1(~this.low,~this.high,this.unsigned)},LongPrototype$1.countLeadingZeros=function(){return this.high?Math.clz32(this.high):Math.clz32(this.low)+32},LongPrototype$1.clz=LongPrototype$1.countLeadingZeros,LongPrototype$1.countTrailingZeros=function(){return this.low?ctz32(this.low):ctz32(this.high)+32},LongPrototype$1.ctz=LongPrototype$1.countTrailingZeros,LongPrototype$1.and=function(e){return isLong$2(e)||(e=fromValue$1(e)),fromBits$1(this.low&e.low,this.high&e.high,this.unsigned)},LongPrototype$1.or=function(e){return isLong$2(e)||(e=fromValue$1(e)),fromBits$1(this.low|e.low,this.high|e.high,this.unsigned)},LongPrototype$1.xor=function(e){return isLong$2(e)||(e=fromValue$1(e)),fromBits$1(this.low^e.low,this.high^e.high,this.unsigned)},LongPrototype$1.shiftLeft=function(e){return isLong$2(e)&&(e=e.toInt()),0==(e&=63)?this:e<32?fromBits$1(this.low<>>32-e,this.unsigned):fromBits$1(0,this.low<>>e|this.high<<32-e,this.high>>e,this.unsigned):fromBits$1(this.high>>e-32,this.high>=0?0:-1,this.unsigned)},LongPrototype$1.shr=LongPrototype$1.shiftRight,LongPrototype$1.shiftRightUnsigned=function(e){return isLong$2(e)&&(e=e.toInt()),0==(e&=63)?this:e<32?fromBits$1(this.low>>>e|this.high<<32-e,this.high>>>e,this.unsigned):fromBits$1(32===e?this.high:this.high>>>e-32,0,this.unsigned)},LongPrototype$1.shru=LongPrototype$1.shiftRightUnsigned,LongPrototype$1.shr_u=LongPrototype$1.shiftRightUnsigned,LongPrototype$1.rotateLeft=function(e){var t;return isLong$2(e)&&(e=e.toInt()),0==(e&=63)?this:32===e?fromBits$1(this.high,this.low,this.unsigned):e<32?(t=32-e,fromBits$1(this.low<>>t,this.high<>>t,this.unsigned)):(t=32-(e-=32),fromBits$1(this.high<>>t,this.low<>>t,this.unsigned))},LongPrototype$1.rotl=LongPrototype$1.rotateLeft,LongPrototype$1.rotateRight=function(e){var t;return isLong$2(e)&&(e=e.toInt()),0==(e&=63)?this:32===e?fromBits$1(this.high,this.low,this.unsigned):e<32?(t=32-e,fromBits$1(this.high<>>e,this.low<>>e,this.unsigned)):(t=32-(e-=32),fromBits$1(this.low<>>e,this.high<>>e,this.unsigned))},LongPrototype$1.rotr=LongPrototype$1.rotateRight,LongPrototype$1.toSigned=function(){return this.unsigned?fromBits$1(this.low,this.high,!1):this},LongPrototype$1.toUnsigned=function(){return this.unsigned?this:fromBits$1(this.low,this.high,!0)},LongPrototype$1.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()},LongPrototype$1.toBytesLE=function(){var e=this.high,t=this.low;return[255&t,t>>>8&255,t>>>16&255,t>>>24,255&e,e>>>8&255,e>>>16&255,e>>>24]},LongPrototype$1.toBytesBE=function(){var e=this.high,t=this.low;return[e>>>24,e>>>16&255,e>>>8&255,255&e,t>>>24,t>>>16&255,t>>>8&255,255&t]},Long$1.fromBytes=function(e,t,r){return r?Long$1.fromBytesLE(e,t):Long$1.fromBytesBE(e,t)},Long$1.fromBytesLE=function(e,t){return new Long$1(e[0]|e[1]<<8|e[2]<<16|e[3]<<24,e[4]|e[5]<<8|e[6]<<16|e[7]<<24,t)},Long$1.fromBytesBE=function(e,t){return new Long$1(e[4]<<24|e[5]<<16|e[6]<<8|e[7],e[0]<<24|e[1]<<16|e[2]<<8|e[3],t)};const long$1=Object.freeze(Object.defineProperty({__proto__:null,default:Long$1},Symbol.toStringTag,{value:"Module"})),byteToHex$1=[];for(let ee=0;ee<=255;ee+=1)byteToHex$1.push(ee.toString(16).padStart(2,"0"));function encode$9(e){let t="";for(const r of e)t+=byteToHex$1[r];return t}function decode$a(e){const t=(e.startsWith("0x")?e.substring(2):e).match(/.{1,2}/gu);return new Uint8Array((null==t?[]:t).map((e=>parseInt(e,16))))}class BadEntityIdError extends Error{constructor(e,t,r,n,o){super(`Entity ID ${e.toString()}.${t.toString()}.${r.toString()}-${n} was incorrect.`),this.name="BadEntityIdException",this.shard=e,this.realm=t,this.num=r,this.presentChecksum=n,this.expectedChecksum=o}}var isNumeric=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,mathceil=Math.ceil,mathfloor=Math.floor,bignumberError="[BigNumber Error] ",tooManyDigits=bignumberError+"Number primitive has more than 15 significant digits: ",BASE=1e14,LOG_BASE=14,MAX_SAFE_INTEGER$1=9007199254740991,POWS_TEN=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],SQRT_BASE=1e7,MAX=1e9;function clone(e){var t,r,n,o,i,a=w.prototype={constructor:w,toString:null,valueOf:null},s=new w(1),c=20,u=4,l=-7,d=21,f=-1e7,h=1e7,p=!1,y=1,m=0,g={prefix:"",groupSize:3,secondaryGroupSize:0,groupSeparator:",",decimalSeparator:".",fractionGroupSize:0,fractionGroupSeparator:" ",suffix:""},b="0123456789abcdefghijklmnopqrstuvwxyz",v=!0;function w(e,t){var o,i,a,s,l,d,p,y,m=this;if(!(m instanceof w))return new w(e,t);if(null==t){if(e&&!0===e._isBigNumber)return m.s=e.s,void(!e.c||e.e>h?m.c=m.e=null:e.e=10;l/=10,s++);return void(s>h?m.c=m.e=null:(m.e=s,m.c=[e]))}y=String(e)}else{if(!isNumeric.test(y=String(e)))return n(m,y,d);m.s=45==y.charCodeAt(0)?(y=y.slice(1),-1):1}(s=y.indexOf("."))>-1&&(y=y.replace(".","")),(l=y.search(/e/i))>0?(s<0&&(s=l),s+=+y.slice(l+1),y=y.substring(0,l)):s<0&&(s=y.length)}else{if(intCheck(t,2,b.length,"Base"),10==t&&v)return k(m=new w(e),c+m.e+1,u);if(y=String(e),d="number"==typeof e){if(0*e!=0)return n(m,y,d,t);if(m.s=1/e<0?(y=y.slice(1),-1):1,w.DEBUG&&y.replace(/^0\.0*|\./,"").length>15)throw Error(tooManyDigits+e)}else m.s=45===y.charCodeAt(0)?(y=y.slice(1),-1):1;for(o=b.slice(0,t),s=l=0,p=y.length;ls){s=p;continue}}else if(!a&&(y==y.toUpperCase()&&(y=y.toLowerCase())||y==y.toLowerCase()&&(y=y.toUpperCase()))){a=!0,l=-1,s=0;continue}return n(m,String(e),d,t)}d=!1,(s=(y=r(y,t,10,m.s)).indexOf("."))>-1?y=y.replace(".",""):s=y.length}for(l=0;48===y.charCodeAt(l);l++);for(p=y.length;48===y.charCodeAt(--p););if(y=y.slice(l,++p)){if(p-=l,d&&w.DEBUG&&p>15&&(e>MAX_SAFE_INTEGER$1||e!==mathfloor(e)))throw Error(tooManyDigits+m.s*e);if((s=s-l-1)>h)m.c=m.e=null;else if(s=d)?toExponential(c,a):toFixedPoint(c,a,"0");else if(i=(e=k(new w(e),t,r)).e,s=(c=coeffToString(e.c)).length,1==n||2==n&&(t<=i||i<=l)){for(;ss){if(--t>0)for(c+=".";t--;c+="0");}else if((t+=i-s)>0)for(i+1==s&&(c+=".");t--;c+="0");return e.s<0&&o?"-"+c:c}function I(e,t){for(var r,n,o=1,i=new w(e[0]);o=10;o/=10,n++);return(r=n+r*LOG_BASE-1)>h?e.c=e.e=null:r=10;s/=10,o++);if((i=t-o)<0)i+=LOG_BASE,a=t,c=d[u=0],l=mathfloor(c/p[o-a-1]%10);else if((u=mathceil((i+1)/LOG_BASE))>=d.length){if(!n)break e;for(;d.length<=u;d.push(0));c=l=0,o=1,a=(i%=LOG_BASE)-LOG_BASE+1}else{for(c=s=d[u],o=1;s>=10;s/=10,o++);l=(a=(i%=LOG_BASE)-LOG_BASE+o)<0?0:mathfloor(c/p[o-a-1]%10)}if(n=n||t<0||null!=d[u+1]||(a<0?c:c%p[o-a-1]),n=r<4?(l||n)&&(0==r||r==(e.s<0?3:2)):l>5||5==l&&(4==r||n||6==r&&(i>0?a>0?c/p[o-a]:0:d[u-1])%10&1||r==(e.s<0?8:7)),t<1||!d[0])return d.length=0,n?(t-=e.e+1,d[0]=p[(LOG_BASE-t%LOG_BASE)%LOG_BASE],e.e=-t||0):d[0]=e.e=0,e;if(0==i?(d.length=u,s=1,u--):(d.length=u+1,s=p[LOG_BASE-i],d[u]=a>0?mathfloor(c/p[o-a]%p[a])*s:0),n)for(;;){if(0==u){for(i=1,a=d[0];a>=10;a/=10,i++);for(a=d[0]+=s,s=1;a>=10;a/=10,s++);i!=s&&(e.e++,d[0]==BASE&&(d[0]=1));break}if(d[u]+=s,d[u]!=BASE)break;d[u--]=0,s=1}for(i=d.length;0===d[--i];d.pop());}e.e>h?e.c=e.e=null:e.e=d?toExponential(t,r):toFixedPoint(t,r,"0"),e.s<0?"-"+t:t)}return w.clone=clone,w.ROUND_UP=0,w.ROUND_DOWN=1,w.ROUND_CEIL=2,w.ROUND_FLOOR=3,w.ROUND_HALF_UP=4,w.ROUND_HALF_DOWN=5,w.ROUND_HALF_EVEN=6,w.ROUND_HALF_CEIL=7,w.ROUND_HALF_FLOOR=8,w.EUCLID=9,w.config=w.set=function(e){var t,r;if(null!=e){if("object"!=typeof e)throw Error(bignumberError+"Object expected: "+e);if(e.hasOwnProperty(t="DECIMAL_PLACES")&&(intCheck(r=e[t],0,MAX,t),c=r),e.hasOwnProperty(t="ROUNDING_MODE")&&(intCheck(r=e[t],0,8,t),u=r),e.hasOwnProperty(t="EXPONENTIAL_AT")&&((r=e[t])&&r.pop?(intCheck(r[0],-MAX,0,t),intCheck(r[1],0,MAX,t),l=r[0],d=r[1]):(intCheck(r,-MAX,MAX,t),l=-(d=r<0?-r:r))),e.hasOwnProperty(t="RANGE"))if((r=e[t])&&r.pop)intCheck(r[0],-MAX,-1,t),intCheck(r[1],1,MAX,t),f=r[0],h=r[1];else{if(intCheck(r,-MAX,MAX,t),!r)throw Error(bignumberError+t+" cannot be zero: "+r);f=-(h=r<0?-r:r)}if(e.hasOwnProperty(t="CRYPTO")){if((r=e[t])!==!!r)throw Error(bignumberError+t+" not true or false: "+r);if(r){if("undefined"==typeof crypto||!crypto||!crypto.getRandomValues&&!crypto.randomBytes)throw p=!r,Error(bignumberError+"crypto unavailable");p=r}else p=r}if(e.hasOwnProperty(t="MODULO_MODE")&&(intCheck(r=e[t],0,9,t),y=r),e.hasOwnProperty(t="POW_PRECISION")&&(intCheck(r=e[t],0,MAX,t),m=r),e.hasOwnProperty(t="FORMAT")){if("object"!=typeof(r=e[t]))throw Error(bignumberError+t+" not an object: "+r);g=r}if(e.hasOwnProperty(t="ALPHABET")){if("string"!=typeof(r=e[t])||/^.?$|[+\-.\s]|(.).*\1/.test(r))throw Error(bignumberError+t+" invalid: "+r);v="0123456789"==r.slice(0,10),b=r}}return{DECIMAL_PLACES:c,ROUNDING_MODE:u,EXPONENTIAL_AT:[l,d],RANGE:[f,h],CRYPTO:p,MODULO_MODE:y,POW_PRECISION:m,FORMAT:g,ALPHABET:b}},w.isBigNumber=function(e){if(!e||!0!==e._isBigNumber)return!1;if(!w.DEBUG)return!0;var t,r,n=e.c,o=e.e,i=e.s;e:if("[object Array]"=={}.toString.call(n)){if((1===i||-1===i)&&o>=-MAX&&o<=MAX&&o===mathfloor(o)){if(0===n[0]){if(0===o&&1===n.length)return!0;break e}if((t=(o+1)%LOG_BASE)<1&&(t+=LOG_BASE),String(n[0]).length==t){for(t=0;t=BASE||r!==mathfloor(r))break e;if(0!==r)return!0}}}else if(null===n&&null===o&&(null===i||1===i||-1===i))return!0;throw Error(bignumberError+"Invalid BigNumber: "+e)},w.maximum=w.max=function(){return I(arguments,-1)},w.minimum=w.min=function(){return I(arguments,1)},w.random=(o=9007199254740992,i=Math.random()*o&2097151?function(){return mathfloor(Math.random()*o)}:function(){return 8388608*(1073741824*Math.random()|0)+(8388608*Math.random()|0)},function(e){var t,r,n,o,a,u=0,l=[],d=new w(s);if(null==e?e=c:intCheck(e,0,MAX),o=mathceil(e/LOG_BASE),p)if(crypto.getRandomValues){for(t=crypto.getRandomValues(new Uint32Array(o*=2));u>>11))>=9e15?(r=crypto.getRandomValues(new Uint32Array(2)),t[u]=r[0],t[u+1]=r[1]):(l.push(a%1e14),u+=2);u=o/2}else{if(!crypto.randomBytes)throw p=!1,Error(bignumberError+"crypto unavailable");for(t=crypto.randomBytes(o*=7);u=9e15?crypto.randomBytes(7).copy(t,u):(l.push(a%1e14),u+=7);u=o/7}if(!p)for(;u=10;a/=10,u++);ur-1&&(null==a[o+1]&&(a[o+1]=0),a[o+1]+=a[o]/r|0,a[o]%=r)}return a.reverse()}return function(n,o,i,a,s){var l,d,f,h,p,y,g,v,_=n.indexOf("."),I=c,T=u;for(_>=0&&(h=m,m=0,n=n.replace(".",""),y=(v=new w(o)).pow(n.length-_),m=h,v.c=r(toFixedPoint(coeffToString(y.c),y.e,"0"),10,i,e),v.e=v.c.length),f=h=(g=r(n,o,i,s?(l=b,e):(l=e,b))).length;0==g[--h];g.pop());if(!g[0])return l.charAt(0);if(_<0?--f:(y.c=g,y.e=f,y.s=a,g=(y=t(y,v,I,T,i)).c,p=y.r,f=y.e),_=g[d=f+I+1],h=i/2,p=p||d<0||null!=g[d+1],p=T<4?(null!=_||p)&&(0==T||T==(y.s<0?3:2)):_>h||_==h&&(4==T||p||6==T&&1&g[d-1]||T==(y.s<0?8:7)),d<1||!g[0])n=p?toFixedPoint(l.charAt(1),-I,l.charAt(0)):l.charAt(0);else{if(g.length=d,p)for(--i;++g[--d]>i;)g[d]=0,d||(++f,g=[1].concat(g));for(h=g.length;!g[--h];);for(_=0,n="";_<=h;n+=l.charAt(g[_++]));n=toFixedPoint(n,f,l.charAt(0))}return n}}(),t=function(){function e(e,t,r){var n,o,i,a,s=0,c=e.length,u=t%SQRT_BASE,l=t/SQRT_BASE|0;for(e=e.slice();c--;)s=((o=u*(i=e[c]%SQRT_BASE)+(n=l*i+(a=e[c]/SQRT_BASE|0)*u)%SQRT_BASE*SQRT_BASE+s)/r|0)+(n/SQRT_BASE|0)+l*a,e[c]=o%r;return s&&(e=[s].concat(e)),e}function t(e,t,r,n){var o,i;if(r!=n)i=r>n?1:-1;else for(o=i=0;ot[o]?1:-1;break}return i}function r(e,t,r,n){for(var o=0;r--;)e[r]-=o,o=e[r]1;e.splice(0,1));}return function(n,o,i,a,s){var c,u,l,d,f,h,p,y,m,g,b,v,_,I,T,$,S,A=n.s==o.s?1:-1,E=n.c,C=o.c;if(!(E&&E[0]&&C&&C[0]))return new w(n.s&&o.s&&(E?!C||E[0]!=C[0]:C)?E&&0==E[0]||!C?0*A:A/0:NaN);for(m=(y=new w(A)).c=[],A=i+(u=n.e-o.e)+1,s||(s=BASE,u=bitFloor(n.e/LOG_BASE)-bitFloor(o.e/LOG_BASE),A=A/LOG_BASE|0),l=0;C[l]==(E[l]||0);l++);if(C[l]>(E[l]||0)&&u--,A<0)m.push(1),d=!0;else{for(I=E.length,$=C.length,l=0,A+=2,(f=mathfloor(s/(C[0]+1)))>1&&(C=e(C,f,s),E=e(E,f,s),$=C.length,I=E.length),_=$,b=(g=E.slice(0,$)).length;b<$;g[b++]=0);S=C.slice(),S=[0].concat(S),T=C[0],C[1]>=s/2&&T++;do{if(f=0,(c=t(C,g,$,b))<0){if(v=g[0],$!=b&&(v=v*s+(g[1]||0)),(f=mathfloor(v/T))>1)for(f>=s&&(f=s-1),p=(h=e(C,f,s)).length,b=g.length;1==t(h,g,p,b);)f--,r(h,$=10;A/=10,l++);k(y,i+(y.e=l+u*LOG_BASE-1)+1,a,d)}else y.e=u,y.r=+d;return y}}(),n=function(){var e=/^(-?)0([xbo])(?=\w[\w.]*$)/i,t=/^([^.]+)\.$/,r=/^\.([^.]+)$/,n=/^-?(Infinity|NaN)$/,o=/^\s*\+(?=[\w.])|^\s+|\s+$/g;return function(i,a,s,c){var u,l=s?a:a.replace(o,"");if(n.test(l))i.s=isNaN(l)?null:l<0?-1:1;else{if(!s&&(l=l.replace(e,(function(e,t,r){return u="x"==(r=r.toLowerCase())?16:"b"==r?2:8,c&&c!=u?e:t})),c&&(u=c,l=l.replace(t,"$1").replace(r,"0.$1")),a!=l))return new w(l,u);if(w.DEBUG)throw Error(bignumberError+"Not a"+(c?" base "+c:"")+" number: "+a);i.s=null}i.c=i.e=null}}(),a.absoluteValue=a.abs=function(){var e=new w(this);return e.s<0&&(e.s=1),e},a.comparedTo=function(e,t){return compare$3(this,new w(e,t))},a.decimalPlaces=a.dp=function(e,t){var r,n,o,i=this;if(null!=e)return intCheck(e,0,MAX),null==t?t=u:intCheck(t,0,8),k(new w(i),e+i.e+1,t);if(!(r=i.c))return null;if(n=((o=r.length-1)-bitFloor(this.e/LOG_BASE))*LOG_BASE,o=r[o])for(;o%10==0;o/=10,n--);return n<0&&(n=0),n},a.dividedBy=a.div=function(e,r){return t(this,new w(e,r),c,u)},a.dividedToIntegerBy=a.idiv=function(e,r){return t(this,new w(e,r),0,1)},a.exponentiatedBy=a.pow=function(e,t){var r,n,o,i,a,c,l,d,f=this;if((e=new w(e)).c&&!e.isInteger())throw Error(bignumberError+"Exponent not an integer: "+$(e));if(null!=t&&(t=new w(t)),a=e.e>14,!f.c||!f.c[0]||1==f.c[0]&&!f.e&&1==f.c.length||!e.c||!e.c[0])return d=new w(Math.pow(+$(f),a?e.s*(2-isOdd(e)):+$(e))),t?d.mod(t):d;if(c=e.s<0,t){if(t.c?!t.c[0]:!t.s)return new w(NaN);(n=!c&&f.isInteger()&&t.isInteger())&&(f=f.mod(t))}else{if(e.e>9&&(f.e>0||f.e<-1||(0==f.e?f.c[0]>1||a&&f.c[1]>=24e7:f.c[0]<8e13||a&&f.c[0]<=9999975e7)))return i=f.s<0&&isOdd(e)?-0:0,f.e>-1&&(i=1/i),new w(c?1/i:i);m&&(i=mathceil(m/LOG_BASE+2))}for(a?(r=new w(.5),c&&(e.s=1),l=isOdd(e)):l=(o=Math.abs(+$(e)))%2,d=new w(s);;){if(l){if(!(d=d.times(f)).c)break;i?d.c.length>i&&(d.c.length=i):n&&(d=d.mod(t))}if(o){if(0===(o=mathfloor(o/2)))break;l=o%2}else if(k(e=e.times(r),e.e+1,1),e.e>14)l=isOdd(e);else{if(0===(o=+$(e)))break;l=o%2}f=f.times(f),i?f.c&&f.c.length>i&&(f.c.length=i):n&&(f=f.mod(t))}return n?d:(c&&(d=s.div(d)),t?d.mod(t):i?k(d,m,u,undefined):d)},a.integerValue=function(e){var t=new w(this);return null==e?e=u:intCheck(e,0,8),k(t,t.e+1,e)},a.isEqualTo=a.eq=function(e,t){return 0===compare$3(this,new w(e,t))},a.isFinite=function(){return!!this.c},a.isGreaterThan=a.gt=function(e,t){return compare$3(this,new w(e,t))>0},a.isGreaterThanOrEqualTo=a.gte=function(e,t){return 1===(t=compare$3(this,new w(e,t)))||0===t},a.isInteger=function(){return!!this.c&&bitFloor(this.e/LOG_BASE)>this.c.length-2},a.isLessThan=a.lt=function(e,t){return compare$3(this,new w(e,t))<0},a.isLessThanOrEqualTo=a.lte=function(e,t){return-1===(t=compare$3(this,new w(e,t)))||0===t},a.isNaN=function(){return!this.s},a.isNegative=function(){return this.s<0},a.isPositive=function(){return this.s>0},a.isZero=function(){return!!this.c&&0==this.c[0]},a.minus=function(e,t){var r,n,o,i,a=this,s=a.s;if(t=(e=new w(e,t)).s,!s||!t)return new w(NaN);if(s!=t)return e.s=-t,a.plus(e);var c=a.e/LOG_BASE,l=e.e/LOG_BASE,d=a.c,f=e.c;if(!c||!l){if(!d||!f)return d?(e.s=-t,e):new w(f?a:NaN);if(!d[0]||!f[0])return f[0]?(e.s=-t,e):new w(d[0]?a:3==u?-0:0)}if(c=bitFloor(c),l=bitFloor(l),d=d.slice(),s=c-l){for((i=s<0)?(s=-s,o=d):(l=c,o=f),o.reverse(),t=s;t--;o.push(0));o.reverse()}else for(n=(i=(s=d.length)<(t=f.length))?s:t,s=t=0;t0)for(;t--;d[r++]=0);for(t=BASE-1;n>s;){if(d[--n]=0;){for(r=0,f=v[o]%m,h=v[o]/m|0,i=o+(a=c);i>o;)r=((u=f*(u=b[--a]%m)+(s=h*u+(l=b[a]/m|0)*f)%m*m+p[i]+r)/y|0)+(s/m|0)+h*l,p[i--]=u%y;p[i]=r}return r?++n:p.splice(0,1),T(e,p,n)},a.negated=function(){var e=new w(this);return e.s=-e.s||null,e},a.plus=function(e,t){var r,n=this,o=n.s;if(t=(e=new w(e,t)).s,!o||!t)return new w(NaN);if(o!=t)return e.s=-t,n.minus(e);var i=n.e/LOG_BASE,a=e.e/LOG_BASE,s=n.c,c=e.c;if(!i||!a){if(!s||!c)return new w(o/0);if(!s[0]||!c[0])return c[0]?e:new w(s[0]?n:0*o)}if(i=bitFloor(i),a=bitFloor(a),s=s.slice(),o=i-a){for(o>0?(a=i,r=c):(o=-o,r=s),r.reverse();o--;r.push(0));r.reverse()}for((o=s.length)-(t=c.length)<0&&(r=c,c=s,s=r,t=o),o=0;t;)o=(s[--t]=s[t]+c[t]+o)/BASE|0,s[t]=BASE===s[t]?0:s[t]%BASE;return o&&(s=[o].concat(s),++a),T(e,s,a)},a.precision=a.sd=function(e,t){var r,n,o,i=this;if(null!=e&&e!==!!e)return intCheck(e,1,MAX),null==t?t=u:intCheck(t,0,8),k(new w(i),e,t);if(!(r=i.c))return null;if(n=(o=r.length-1)*LOG_BASE+1,o=r[o]){for(;o%10==0;o/=10,n--);for(o=r[0];o>=10;o/=10,n++);}return e&&i.e+1>n&&(n=i.e+1),n},a.shiftedBy=function(e){return intCheck(e,-MAX_SAFE_INTEGER$1,MAX_SAFE_INTEGER$1),this.times("1e"+e)},a.squareRoot=a.sqrt=function(){var e,r,n,o,i,a=this,s=a.c,l=a.s,d=a.e,f=c+4,h=new w("0.5");if(1!==l||!s||!s[0])return new w(!l||l<0&&(!s||s[0])?NaN:s?a:1/0);if(0==(l=Math.sqrt(+$(a)))||l==1/0?(((r=coeffToString(s)).length+d)%2==0&&(r+="0"),l=Math.sqrt(+r),d=bitFloor((d+1)/2)-(d<0||d%2),n=new w(r=l==1/0?"5e"+d:(r=l.toExponential()).slice(0,r.indexOf("e")+1)+d)):n=new w(l+""),n.c[0])for((l=(d=n.e)+f)<3&&(l=0);;)if(i=n,n=h.times(i.plus(t(a,i,f,1))),coeffToString(i.c).slice(0,l)===(r=coeffToString(n.c)).slice(0,l)){if(n.e0&&p>0){for(i=p%s||s,l=h.substr(0,i);i0&&(l+=u+h.slice(i)),f&&(l="-"+l)}n=d?l+(r.decimalSeparator||"")+((c=+r.fractionGroupSize)?d.replace(new RegExp("\\d{"+c+"}\\B","g"),"$&"+(r.fractionGroupSeparator||"")):d):l}return(r.prefix||"")+n+(r.suffix||"")},a.toFraction=function(e){var r,n,o,i,a,c,l,d,f,p,y,m,g=this,b=g.c;if(null!=e&&(!(l=new w(e)).isInteger()&&(l.c||1!==l.s)||l.lt(s)))throw Error(bignumberError+"Argument "+(l.isInteger()?"out of range: ":"not an integer: ")+$(l));if(!b)return new w(g);for(r=new w(s),f=n=new w(s),o=d=new w(s),m=coeffToString(b),a=r.e=m.length-g.e-1,r.c[0]=POWS_TEN[(c=a%LOG_BASE)<0?LOG_BASE+c:c],e=!e||l.comparedTo(r)>0?a>0?r:f:l,c=h,h=1/0,l=new w(m),d.c[0]=0;p=t(l,r,0,1),1!=(i=n.plus(p.times(o))).comparedTo(e);)n=o,o=i,f=d.plus(p.times(i=f)),d=i,r=l.minus(p.times(i=r)),l=i;return i=t(e.minus(n),o,0,1),d=d.plus(i.times(f)),n=n.plus(i.times(o)),d.s=f.s=g.s,y=t(f,o,a*=2,u).minus(g).abs().comparedTo(t(d,n,a,u).minus(g).abs())<1?[f,o]:[d,n],h=c,y},a.toNumber=function(){return+$(this)},a.toPrecision=function(e,t){return null!=e&&intCheck(e,1,MAX),_(this,e,t,2)},a.toString=function(e){var t,n=this,o=n.s,i=n.e;return null===i?o?(t="Infinity",o<0&&(t="-"+t)):t="NaN":(null==e?t=i<=l||i>=d?toExponential(coeffToString(n.c),i):toFixedPoint(coeffToString(n.c),i,"0"):10===e&&v?t=toFixedPoint(coeffToString((n=k(new w(n),c+i+1,u)).c),n.e,"0"):(intCheck(e,2,b.length,"Base"),t=r(toFixedPoint(coeffToString(n.c),i,"0"),10,e,o,!0)),o<0&&n.c[0]&&(t="-"+t)),t},a.valueOf=a.toJSON=function(){return $(this)},a._isBigNumber=!0,a[Symbol.toStringTag]="BigNumber",a[Symbol.for("nodejs.util.inspect.custom")]=a.valueOf,null!=e&&w.set(e),w}function bitFloor(e){var t=0|e;return e>0||e===t?t:t-1}function coeffToString(e){for(var t,r,n=1,o=e.length,i=e[0]+"";nu^r?1:-1;for(s=(c=o.length)<(u=i.length)?c:u,a=0;ai[a]^r?1:-1;return c==u?0:c>u^r?1:-1}function intCheck(e,t,r,n){if(er||e!==mathfloor(e))throw Error(bignumberError+(n||"Argument")+("number"==typeof e?er?" out of range: ":" not an integer: ":" not a primitive number: ")+String(e))}function isOdd(e){var t=e.c.length-1;return bitFloor(e.e/LOG_BASE)==t&&e.c[t]%2!=0}function toExponential(e,t){return(e.length>1?e.charAt(0)+"."+e.slice(1):e)+(t<0?"e":"e+")+t}function toFixedPoint(e,t,r){var n,o;if(t<0){for(o=r+".";++t;o+=r);e=o+e}else if(++t>(n=e.length)){for(o=r,t-=n;--t;o+=r);e+=o}else t=0))throw new Error("Invalid offset!");if(!(Number.isInteger(r)&&r>=0))throw new Error("Invalid length!");return new DataView(e.buffer,e.byteOffset+t,Math.min(r,e.byteLength-t))}function compare$2(e,t,r=new Set){if("object"==typeof e&&"object"==typeof t){const n=Object.keys(e),o=Object.keys(t);if(n.length!==o.length)return!1;for(let i=0;i=8&&(s-=8,a[u++]=255&c>>s)}if(s>=t.bits||255&c<<8-s)throw new SyntaxError("Unexpected end of data");return a}function _stringify(e,t,r){void 0===r&&(r={});for(var n=r.pad,o=void 0===n||n,i=(1<t.bits;)s-=t.bits,a+=t.chars[i&c>>s];if(s&&(a+=t.chars[i&c<e&&base32$3.parse(e,decodeOpts),encode$8=e=>e&&base32$3.stringify(e,encodeOpts),base32$2={decode:decode$9,encode:encode$8};var commonjsGlobal="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function getDefaultExportFromCjs$1(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function getAugmentedNamespace(e){if(e.__esModule)return e;var t=e.default;if("function"==typeof t){var r=function e(){return this instanceof e?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};r.prototype=t.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(e).forEach((function(t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})})),r}var lib$2={},indexMinimal$1={},minimal$3={},aspromise=asPromise;function asPromise(e,t){for(var r=new Array(arguments.length-1),n=0,o=2,i=!0;o1&&"="===e.charAt(t);)++r;return Math.ceil(3*e.length)/4-r};for(var r=new Array(64),n=new Array(123),o=0;o<64;)n[r[o]=o<26?o+65:o<52?o+71:o<62?o-4:o-59|43]=o++;t.encode=function(e,t,n){for(var o,i=null,a=[],s=0,c=0;t>2],o=(3&u)<<4,c=1;break;case 1:a[s++]=r[o|u>>4],o=(15&u)<<2,c=2;break;case 2:a[s++]=r[o|u>>6],a[s++]=r[63&u],c=0}s>8191&&((i||(i=[])).push(String.fromCharCode.apply(String,a)),s=0)}return c&&(a[s++]=r[o],a[s++]=61,1===c&&(a[s++]=61)),i?(s&&i.push(String.fromCharCode.apply(String,a.slice(0,s))),i.join("")):String.fromCharCode.apply(String,a.slice(0,s))};var i="invalid encoding";t.decode=function(e,t,r){for(var o,a=r,s=0,c=0;c1)break;if(void 0===(u=n[u]))throw Error(i);switch(s){case 0:o=u,s=1;break;case 1:t[r++]=o<<2|(48&u)>>4,o=u,s=2;break;case 2:t[r++]=(15&o)<<4|(60&u)>>2,o=u,s=3;break;case 3:t[r++]=(3&o)<<6|u,s=0}}if(1===s)throw Error(i);return r-a},t.test=function(e){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(e)}}(base64$4);var eventemitter=EventEmitter$1;function EventEmitter$1(){this._listeners={}}EventEmitter$1.prototype.on=function(e,t,r){return(this._listeners[e]||(this._listeners[e]=[])).push({fn:t,ctx:r||this}),this},EventEmitter$1.prototype.off=function(e,t){if(void 0===e)this._listeners={};else if(void 0===t)this._listeners[e]=[];else for(var r=this._listeners[e],n=0;n0?0:2147483648,r,n);else if(isNaN(t))e(2143289344,r,n);else if(t>34028234663852886e22)e((o<<31|2139095040)>>>0,r,n);else if(t<11754943508222875e-54)e((o<<31|Math.round(t/1401298464324817e-60))>>>0,r,n);else{var i=Math.floor(Math.log(t)/Math.LN2);e((o<<31|i+127<<23|8388607&Math.round(t*Math.pow(2,-i)*8388608))>>>0,r,n)}}function r(e,t,r){var n=e(t,r),o=2*(n>>31)+1,i=n>>>23&255,a=8388607&n;return 255===i?a?NaN:o*(1/0):0===i?1401298464324817e-60*o*a:o*Math.pow(2,i-150)*(a+8388608)}e.writeFloatLE=t.bind(null,writeUintLE$1),e.writeFloatBE=t.bind(null,writeUintBE$1),e.readFloatLE=r.bind(null,readUintLE$1),e.readFloatBE=r.bind(null,readUintBE$1)}(),"undefined"!=typeof Float64Array?function(){var t=new Float64Array([-0]),r=new Uint8Array(t.buffer),n=128===r[7];function o(e,n,o){t[0]=e,n[o]=r[0],n[o+1]=r[1],n[o+2]=r[2],n[o+3]=r[3],n[o+4]=r[4],n[o+5]=r[5],n[o+6]=r[6],n[o+7]=r[7]}function i(e,n,o){t[0]=e,n[o]=r[7],n[o+1]=r[6],n[o+2]=r[5],n[o+3]=r[4],n[o+4]=r[3],n[o+5]=r[2],n[o+6]=r[1],n[o+7]=r[0]}function a(e,n){return r[0]=e[n],r[1]=e[n+1],r[2]=e[n+2],r[3]=e[n+3],r[4]=e[n+4],r[5]=e[n+5],r[6]=e[n+6],r[7]=e[n+7],t[0]}function s(e,n){return r[7]=e[n],r[6]=e[n+1],r[5]=e[n+2],r[4]=e[n+3],r[3]=e[n+4],r[2]=e[n+5],r[1]=e[n+6],r[0]=e[n+7],t[0]}e.writeDoubleLE=n?o:i,e.writeDoubleBE=n?i:o,e.readDoubleLE=n?a:s,e.readDoubleBE=n?s:a}():function(){function t(e,t,r,n,o,i){var a=n<0?1:0;if(a&&(n=-n),0===n)e(0,o,i+t),e(1/n>0?0:2147483648,o,i+r);else if(isNaN(n))e(0,o,i+t),e(2146959360,o,i+r);else if(n>17976931348623157e292)e(0,o,i+t),e((a<<31|2146435072)>>>0,o,i+r);else{var s;if(n<22250738585072014e-324)e((s=n/5e-324)>>>0,o,i+t),e((a<<31|s/4294967296)>>>0,o,i+r);else{var c=Math.floor(Math.log(n)/Math.LN2);1024===c&&(c=1023),e(4503599627370496*(s=n*Math.pow(2,-c))>>>0,o,i+t),e((a<<31|c+1023<<20|1048576*s&1048575)>>>0,o,i+r)}}}function r(e,t,r,n,o){var i=e(n,o+t),a=e(n,o+r),s=2*(a>>31)+1,c=a>>>20&2047,u=4294967296*(1048575&a)+i;return 2047===c?u?NaN:s*(1/0):0===c?5e-324*s*u:s*Math.pow(2,c-1075)*(u+4503599627370496)}e.writeDoubleLE=t.bind(null,writeUintLE$1,0,4),e.writeDoubleBE=t.bind(null,writeUintBE$1,4,0),e.readDoubleLE=r.bind(null,readUintLE$1,0,4),e.readDoubleBE=r.bind(null,readUintBE$1,4,0)}(),e}function writeUintLE$1(e,t,r){t[r]=255&e,t[r+1]=e>>>8&255,t[r+2]=e>>>16&255,t[r+3]=e>>>24}function writeUintBE$1(e,t,r){t[r]=e>>>24,t[r+1]=e>>>16&255,t[r+2]=e>>>8&255,t[r+3]=255&e}function readUintLE$1(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24)>>>0}function readUintBE$1(e,t){return(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0}var inquire_1=inquire;function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(e2){}return null}var utf8$4={},exports2,utf82;exports2=utf8$4,utf82=exports2,utf82.length=function(e){for(var t=0,r=0,n=0;n191&&n<224?i[a++]=(31&n)<<6|63&e[t++]:n>239&&n<365?(n=((7&n)<<18|(63&e[t++])<<12|(63&e[t++])<<6|63&e[t++])-65536,i[a++]=55296+(n>>10),i[a++]=56320+(1023&n)):i[a++]=(15&n)<<12|(63&e[t++])<<6|63&e[t++],a>8191&&((o||(o=[])).push(String.fromCharCode.apply(String,i)),a=0);return o?(a&&o.push(String.fromCharCode.apply(String,i.slice(0,a))),o.join("")):String.fromCharCode.apply(String,i.slice(0,a))},utf82.write=function(e,t,r){for(var n,o,i=r,a=0;a>6|192,t[r++]=63&n|128):55296==(64512&n)&&56320==(64512&(o=e.charCodeAt(a+1)))?(n=65536+((1023&n)<<10)+(1023&o),++a,t[r++]=n>>18|240,t[r++]=n>>12&63|128,t[r++]=n>>6&63|128,t[r++]=63&n|128):(t[r++]=n>>12|224,t[r++]=n>>6&63|128,t[r++]=63&n|128);return r-i};var pool_1=pool,longbits$1,hasRequiredLongbits$1,hasRequiredMinimal$1;function pool(e,t,r){var n=r||8192,o=n>>>1,i=null,a=n;return function(r){if(r<1||r>o)return e(r);a+r>n&&(i=e(n),a=0);var s=t.call(i,a,a+=r);return 7&a&&(a=1+(7|a)),s}}function requireLongbits$1(){if(hasRequiredLongbits$1)return longbits$1;hasRequiredLongbits$1=1,longbits$1=t;var e=requireMinimal$1();function t(e,t){this.lo=e>>>0,this.hi=t>>>0}var r=t.zero=new t(0,0);r.toNumber=function(){return 0},r.zzEncode=r.zzDecode=function(){return this},r.length=function(){return 1};var n=t.zeroHash="\0\0\0\0\0\0\0\0";t.fromNumber=function(e){if(0===e)return r;var n=e<0;n&&(e=-e);var o=e>>>0,i=(e-o)/4294967296>>>0;return n&&(i=~i>>>0,o=~o>>>0,++o>4294967295&&(o=0,++i>4294967295&&(i=0))),new t(o,i)},t.from=function(n){if("number"==typeof n)return t.fromNumber(n);if(e.isString(n)){if(!e.Long)return t.fromNumber(parseInt(n,10));n=e.Long.fromString(n)}return n.low||n.high?new t(n.low>>>0,n.high>>>0):r},t.prototype.toNumber=function(e){if(!e&&this.hi>>>31){var t=1+~this.lo>>>0,r=~this.hi>>>0;return t||(r=r+1>>>0),-(t+4294967296*r)}return this.lo+4294967296*this.hi},t.prototype.toLong=function(t){return e.Long?new e.Long(0|this.lo,0|this.hi,Boolean(t)):{low:0|this.lo,high:0|this.hi,unsigned:Boolean(t)}};var o=String.prototype.charCodeAt;return t.fromHash=function(e){return e===n?r:new t((o.call(e,0)|o.call(e,1)<<8|o.call(e,2)<<16|o.call(e,3)<<24)>>>0,(o.call(e,4)|o.call(e,5)<<8|o.call(e,6)<<16|o.call(e,7)<<24)>>>0)},t.prototype.toHash=function(){return String.fromCharCode(255&this.lo,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,255&this.hi,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},t.prototype.zzEncode=function(){var e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this},t.prototype.zzDecode=function(){var e=-(1&this.lo);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this},t.prototype.length=function(){var e=this.lo,t=(this.lo>>>28|this.hi<<4)>>>0,r=this.hi>>>24;return 0===r?0===t?e<16384?e<128?1:2:e<2097152?3:4:t<16384?t<128?5:6:t<2097152?7:8:r<128?9:10},longbits$1}function requireMinimal$1(){return hasRequiredMinimal$1||(hasRequiredMinimal$1=1,function(e){var t=e;function r(e,t,r){for(var n=Object.keys(t),o=0;o0)},t.Buffer=function(){try{var e=t.inquire("buffer").Buffer;return e.prototype.utf8Write?e:null}catch(e2){return null}}(),t._Buffer_from=null,t._Buffer_allocUnsafe=null,t.newBuffer=function(e){return"number"==typeof e?t.Buffer?t._Buffer_allocUnsafe(e):new t.Array(e):t.Buffer?t._Buffer_from(e):"undefined"==typeof Uint8Array?e:new Uint8Array(e)},t.Array="undefined"!=typeof Uint8Array?Uint8Array:Array,t.Long=t.global.dcodeIO&&t.global.dcodeIO.Long||t.global.Long||t.inquire("long"),t.key2Re=/^true|false|0|1$/,t.key32Re=/^-?(?:0|[1-9][0-9]*)$/,t.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/,t.longToHash=function(e){return e?t.LongBits.from(e).toHash():t.LongBits.zeroHash},t.longFromHash=function(e,r){var n=t.LongBits.fromHash(e);return t.Long?t.Long.fromBits(n.lo,n.hi,r):n.toNumber(Boolean(r))},t.merge=r,t.lcFirst=function(e){return e.charAt(0).toLowerCase()+e.substring(1)},t.newError=n,t.ProtocolError=n("ProtocolError"),t.oneOfGetter=function(e){for(var t={},r=0;r-1;--r)if(1===t[e[r]]&&void 0!==this[e[r]]&&null!==this[e[r]])return e[r]}},t.oneOfSetter=function(e){return function(t){for(var r=0;r127;)t[r++]=127&e|128,e>>>=7;t[r]=e}function VarintOp$1(e,t){this.len=e,this.next=void 0,this.val=t}function writeVarint64$1(e,t,r){for(;e.hi;)t[r++]=127&e.lo|128,e.lo=(e.lo>>>7|e.hi<<25)>>>0,e.hi>>>=7;for(;e.lo>127;)t[r++]=127&e.lo|128,e.lo=e.lo>>>7;t[r++]=e.lo}function writeFixed32$1(e,t,r){t[r]=255&e,t[r+1]=e>>>8&255,t[r+2]=e>>>16&255,t[r+3]=e>>>24}Writer$4.create=create$3(),Writer$4.alloc=function(e){return new util$d.Array(e)},util$d.Array!==Array&&(Writer$4.alloc=util$d.pool(Writer$4.alloc,util$d.Array.prototype.subarray)),Writer$4.prototype._push=function(e,t,r){return this.tail=this.tail.next=new Op$1(e,t,r),this.len+=t,this},VarintOp$1.prototype=Object.create(Op$1.prototype),VarintOp$1.prototype.fn=writeVarint32$1,Writer$4.prototype.uint32=function(e){return this.len+=(this.tail=this.tail.next=new VarintOp$1((e>>>=0)<128?1:e<16384?2:e<2097152?3:e<268435456?4:5,e)).len,this},Writer$4.prototype.int32=function(e){return e<0?this._push(writeVarint64$1,10,LongBits$3.fromNumber(e)):this.uint32(e)},Writer$4.prototype.sint32=function(e){return this.uint32((e<<1^e>>31)>>>0)},Writer$4.prototype.uint64=function(e){var t=LongBits$3.from(e);return this._push(writeVarint64$1,t.length(),t)},Writer$4.prototype.int64=Writer$4.prototype.uint64,Writer$4.prototype.sint64=function(e){var t=LongBits$3.from(e).zzEncode();return this._push(writeVarint64$1,t.length(),t)},Writer$4.prototype.bool=function(e){return this._push(writeByte$1,1,e?1:0)},Writer$4.prototype.fixed32=function(e){return this._push(writeFixed32$1,4,e>>>0)},Writer$4.prototype.sfixed32=Writer$4.prototype.fixed32,Writer$4.prototype.fixed64=function(e){var t=LongBits$3.from(e);return this._push(writeFixed32$1,4,t.lo)._push(writeFixed32$1,4,t.hi)},Writer$4.prototype.sfixed64=Writer$4.prototype.fixed64,Writer$4.prototype.float=function(e){return this._push(util$d.float.writeFloatLE,4,e)},Writer$4.prototype.double=function(e){return this._push(util$d.float.writeDoubleLE,8,e)};var writeBytes$1=util$d.Array.prototype.set?function(e,t,r){t.set(e,r)}:function(e,t,r){for(var n=0;n>>0;if(!t)return this._push(writeByte$1,1,0);if(util$d.isString(e)){var r=Writer$4.alloc(t=base64$3.length(e));base64$3.decode(e,r,0),e=r}return this.uint32(t)._push(writeBytes$1,t,e)},Writer$4.prototype.string=function(e){var t=utf8$3.length(e);return t?this.uint32(t)._push(utf8$3.write,t,e):this._push(writeByte$1,1,0)},Writer$4.prototype.fork=function(){return this.states=new State$1(this),this.head=this.tail=new Op$1(noop$6,0,0),this.len=0,this},Writer$4.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new Op$1(noop$6,0,0),this.len=0),this},Writer$4.prototype.ldelim=function(){var e=this.head,t=this.tail,r=this.len;return this.reset().uint32(r),r&&(this.tail.next=e.next,this.tail=t,this.len+=r),this},Writer$4.prototype.finish=function(){for(var e=this.head.next,t=this.constructor.alloc(this.len),r=0;e;)e.fn(e.val,t,r),r+=e.len,e=e.next;return t},Writer$4._configure=function(e){BufferWriter$3=e,Writer$4.create=create$3(),BufferWriter$3._configure()};var writer_buffer$1=BufferWriter$2,Writer$3=writer$1;(BufferWriter$2.prototype=Object.create(Writer$3.prototype)).constructor=BufferWriter$2;var util$c=requireMinimal$1();function BufferWriter$2(){Writer$3.call(this)}function writeStringBuffer$1(e,t,r){e.length<40?util$c.utf8.write(e,t,r):t.utf8Write?t.utf8Write(e,r):t.write(e,r)}BufferWriter$2._configure=function(){BufferWriter$2.alloc=util$c._Buffer_allocUnsafe,BufferWriter$2.writeBytesBuffer=util$c.Buffer&&util$c.Buffer.prototype instanceof Uint8Array&&"set"===util$c.Buffer.prototype.set.name?function(e,t,r){t.set(e,r)}:function(e,t,r){if(e.copy)e.copy(t,r,0,e.length);else for(var n=0;n>>0;return this.uint32(t),t&&this._push(BufferWriter$2.writeBytesBuffer,t,e),this},BufferWriter$2.prototype.string=function(e){var t=util$c.Buffer.byteLength(e);return this.uint32(t),t&&this._push(writeStringBuffer$1,t,e),this},BufferWriter$2._configure();var reader$1=Reader$4,util$b=requireMinimal$1(),BufferReader$3,LongBits$2=util$b.LongBits,utf8$2=util$b.utf8;function indexOutOfRange$1(e,t){return RangeError("index out of range: "+e.pos+" + "+(t||1)+" > "+e.len)}function Reader$4(e){this.buf=e,this.pos=0,this.len=e.length}var create_array$1="undefined"!=typeof Uint8Array?function(e){if(e instanceof Uint8Array||Array.isArray(e))return new Reader$4(e);throw Error("illegal buffer")}:function(e){if(Array.isArray(e))return new Reader$4(e);throw Error("illegal buffer")},create$2=function(){return util$b.Buffer?function(e){return(Reader$4.create=function(e){return util$b.Buffer.isBuffer(e)?new BufferReader$3(e):create_array$1(e)})(e)}:create_array$1};function readLongVarint$1(){var e=new LongBits$2(0,0),t=0;if(!(this.len-this.pos>4)){for(;t<3;++t){if(this.pos>=this.len)throw indexOutOfRange$1(this);if(e.lo=(e.lo|(127&this.buf[this.pos])<<7*t)>>>0,this.buf[this.pos++]<128)return e}return e.lo=(e.lo|(127&this.buf[this.pos++])<<7*t)>>>0,e}for(;t<4;++t)if(e.lo=(e.lo|(127&this.buf[this.pos])<<7*t)>>>0,this.buf[this.pos++]<128)return e;if(e.lo=(e.lo|(127&this.buf[this.pos])<<28)>>>0,e.hi=(e.hi|(127&this.buf[this.pos])>>4)>>>0,this.buf[this.pos++]<128)return e;if(t=0,this.len-this.pos>4){for(;t<5;++t)if(e.hi=(e.hi|(127&this.buf[this.pos])<<7*t+3)>>>0,this.buf[this.pos++]<128)return e}else for(;t<5;++t){if(this.pos>=this.len)throw indexOutOfRange$1(this);if(e.hi=(e.hi|(127&this.buf[this.pos])<<7*t+3)>>>0,this.buf[this.pos++]<128)return e}throw Error("invalid varint encoding")}function readFixed32_end$1(e,t){return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0}function readFixed64$1(){if(this.pos+8>this.len)throw indexOutOfRange$1(this,8);return new LongBits$2(readFixed32_end$1(this.buf,this.pos+=4),readFixed32_end$1(this.buf,this.pos+=4))}Reader$4.create=create$2(),Reader$4.prototype._slice=util$b.Array.prototype.subarray||util$b.Array.prototype.slice,Reader$4.prototype.uint32=function(){var e=4294967295;return function(){if(e=(127&this.buf[this.pos])>>>0,this.buf[this.pos++]<128)return e;if(e=(e|(127&this.buf[this.pos])<<7)>>>0,this.buf[this.pos++]<128)return e;if(e=(e|(127&this.buf[this.pos])<<14)>>>0,this.buf[this.pos++]<128)return e;if(e=(e|(127&this.buf[this.pos])<<21)>>>0,this.buf[this.pos++]<128)return e;if(e=(e|(15&this.buf[this.pos])<<28)>>>0,this.buf[this.pos++]<128)return e;if((this.pos+=5)>this.len)throw this.pos=this.len,indexOutOfRange$1(this,10);return e}}(),Reader$4.prototype.int32=function(){return 0|this.uint32()},Reader$4.prototype.sint32=function(){var e=this.uint32();return e>>>1^-(1&e)},Reader$4.prototype.bool=function(){return 0!==this.uint32()},Reader$4.prototype.fixed32=function(){if(this.pos+4>this.len)throw indexOutOfRange$1(this,4);return readFixed32_end$1(this.buf,this.pos+=4)},Reader$4.prototype.sfixed32=function(){if(this.pos+4>this.len)throw indexOutOfRange$1(this,4);return 0|readFixed32_end$1(this.buf,this.pos+=4)},Reader$4.prototype.float=function(){if(this.pos+4>this.len)throw indexOutOfRange$1(this,4);var e=util$b.float.readFloatLE(this.buf,this.pos);return this.pos+=4,e},Reader$4.prototype.double=function(){if(this.pos+8>this.len)throw indexOutOfRange$1(this,4);var e=util$b.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,e},Reader$4.prototype.bytes=function(){var e=this.uint32(),t=this.pos,r=this.pos+e;if(r>this.len)throw indexOutOfRange$1(this,e);if(this.pos+=e,Array.isArray(this.buf))return this.buf.slice(t,r);if(t===r){var n=util$b.Buffer;return n?n.alloc(0):new this.buf.constructor(0)}return this._slice.call(this.buf,t,r)},Reader$4.prototype.string=function(){var e=this.bytes();return utf8$2.read(e,0,e.length)},Reader$4.prototype.skip=function(e){if("number"==typeof e){if(this.pos+e>this.len)throw indexOutOfRange$1(this,e);this.pos+=e}else do{if(this.pos>=this.len)throw indexOutOfRange$1(this)}while(128&this.buf[this.pos++]);return this},Reader$4.prototype.skipType=function(e){switch(e){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;4!=(e=7&this.uint32());)this.skipType(e);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+e+" at offset "+this.pos)}return this},Reader$4._configure=function(e){BufferReader$3=e,Reader$4.create=create$2(),BufferReader$3._configure();var t=util$b.Long?"toLong":"toNumber";util$b.merge(Reader$4.prototype,{int64:function(){return readLongVarint$1.call(this)[t](!1)},uint64:function(){return readLongVarint$1.call(this)[t](!0)},sint64:function(){return readLongVarint$1.call(this).zzDecode()[t](!1)},fixed64:function(){return readFixed64$1.call(this)[t](!0)},sfixed64:function(){return readFixed64$1.call(this)[t](!1)}})};var reader_buffer$1=BufferReader$2,Reader$3=reader$1;(BufferReader$2.prototype=Object.create(Reader$3.prototype)).constructor=BufferReader$2;var util$a=requireMinimal$1();function BufferReader$2(e){Reader$3.call(this,e)}BufferReader$2._configure=function(){util$a.Buffer&&(BufferReader$2.prototype._slice=util$a.Buffer.prototype.slice)},BufferReader$2.prototype.string=function(){var e=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+e,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+e,this.len))},BufferReader$2._configure();var rpc$1={},service$1=Service$1,util$9=requireMinimal$1();function Service$1(e,t,r){if("function"!=typeof e)throw TypeError("rpcImpl must be a function");util$9.EventEmitter.call(this),this.rpcImpl=e,this.requestDelimited=Boolean(t),this.responseDelimited=Boolean(r)}(Service$1.prototype=Object.create(util$9.EventEmitter.prototype)).constructor=Service$1,Service$1.prototype.rpcCall=function e(t,r,n,o,i){if(!o)throw TypeError("request must be specified");var a=this;if(!i)return util$9.asPromise(e,a,t,r,n,o);if(a.rpcImpl)try{return a.rpcImpl(t,r[a.requestDelimited?"encodeDelimited":"encode"](o).finish(),(function(e,r){if(e)return a.emit("error",e,t),i(e);if(null!==r){if(!(r instanceof n))try{r=n[a.responseDelimited?"decodeDelimited":"decode"](r)}catch(o){return a.emit("error",o,t),i(o)}return a.emit("data",r,t),i(null,r)}a.end(!0)}))}catch(s){return a.emit("error",s,t),void setTimeout((function(){i(s)}),0)}else setTimeout((function(){i(Error("already ended"))}),0)},Service$1.prototype.end=function(e){return this.rpcImpl&&(e||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this},function(e){e.Service=service$1}(rpc$1);var roots$1={};!function(e){var t=e;function r(){t.util._configure(),t.Writer._configure(t.BufferWriter),t.Reader._configure(t.BufferReader)}t.build="minimal",t.Writer=writer$1,t.BufferWriter=writer_buffer$1,t.Reader=reader$1,t.BufferReader=reader_buffer$1,t.util=requireMinimal$1(),t.rpc=rpc$1,t.roots=roots$1,t.configure=r,r()}(indexMinimal$1);var minimal$2=indexMinimal$1;const require$$1$2=getAugmentedNamespace(long$1);var proto$9={};Object.defineProperty(proto$9,"__esModule",{value:!0}),proto$9.proto=proto$9.google=proto$9.default=proto$9.com=void 0;var $protobuf$1=_interopRequireWildcard$1(minimal$2);function _getRequireWildcardCache$1(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(_getRequireWildcardCache$1=function(e){return e?r:t})(e)}function _interopRequireWildcard$1(e,t){if(e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=_getRequireWildcardCache$1(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&{}.hasOwnProperty.call(e,i)){var a=o?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(n,i,a):n[i]=e[i]}return n.default=e,r&&r.set(e,n),n}const $Reader=$protobuf$1.Reader,$Writer=$protobuf$1.Writer,$util=$protobuf$1.util,$root=proto$9.default=$protobuf$1.roots.hashgraph||($protobuf$1.roots.hashgraph={});var Reader_1,Writer_1,com_1,google_1;proto$9.com=$root.com=(()=>{const e={};return e.hedera=function(){const e={};return e.mirror=function(){const e={};return e.api=function(){const e={};return e.proto=function(){const e={};return e.ConsensusTopicQuery=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.topicID=$root.proto.TopicID.decode(e,e.uint32());break;case 2:n.consensusStartTime=$root.proto.Timestamp.decode(e,e.uint32());break;case 3:n.consensusEndTime=$root.proto.Timestamp.decode(e,e.uint32());break;case 4:n.limit=e.uint64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.mirror.api.proto.ConsensusTopicQuery"},e}(),e.ConsensusTopicResponse=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.consensusTimestamp=$root.proto.Timestamp.decode(e,e.uint32());break;case 2:n.message=e.bytes();break;case 3:n.runningHash=e.bytes();break;case 4:n.sequenceNumber=e.uint64();break;case 5:n.runningHashVersion=e.uint64();break;case 6:n.chunkInfo=$root.proto.ConsensusMessageChunkInfo.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.mirror.api.proto.ConsensusTopicResponse"},e}(),e.ConsensusService=function(){function e(e,t,r){$protobuf$1.rpc.Service.call(this,e,t,r)}return(e.prototype=Object.create($protobuf$1.rpc.Service.prototype)).constructor=e,e.create=function(e,t,r){return new this(e,t,r)},Object.defineProperty(e.prototype.subscribeTopic=function e(t,r){return this.rpcCall(e,$root.com.hedera.mirror.api.proto.ConsensusTopicQuery,$root.com.hedera.mirror.api.proto.ConsensusTopicResponse,t,r)},"name",{value:"subscribeTopic"}),e}(),e.AddressBookQuery=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.fileId=$root.proto.FileID.decode(e,e.uint32());break;case 2:n.limit=e.int32();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.mirror.api.proto.AddressBookQuery"},e}(),e.NetworkService=function(){function e(e,t,r){$protobuf$1.rpc.Service.call(this,e,t,r)}return(e.prototype=Object.create($protobuf$1.rpc.Service.prototype)).constructor=e,e.create=function(e,t,r){return new this(e,t,r)},Object.defineProperty(e.prototype.getNodes=function e(t,r){return this.rpcCall(e,$root.com.hedera.mirror.api.proto.AddressBookQuery,$root.proto.NodeAddress,t,r)},"name",{value:"getNodes"}),e}(),e}(),e}(),e}(),e.hapi=function(){const e={};return e.node=function(){const e={};return e.addressbook=function(){const e={};return e.NodeCreateTransactionBody=function(){function e(e){if(this.gossipEndpoint=[],this.serviceEndpoint=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.accountId=$root.proto.AccountID.decode(e,e.uint32());break;case 2:n.description=e.string();break;case 3:n.gossipEndpoint&&n.gossipEndpoint.length||(n.gossipEndpoint=[]),n.gossipEndpoint.push($root.proto.ServiceEndpoint.decode(e,e.uint32()));break;case 4:n.serviceEndpoint&&n.serviceEndpoint.length||(n.serviceEndpoint=[]),n.serviceEndpoint.push($root.proto.ServiceEndpoint.decode(e,e.uint32()));break;case 5:n.gossipCaCertificate=e.bytes();break;case 6:n.grpcCertificateHash=e.bytes();break;case 7:n.adminKey=$root.proto.Key.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.hapi.node.addressbook.NodeCreateTransactionBody"},e}(),e.NodeUpdateTransactionBody=function(){function e(e){if(this.gossipEndpoint=[],this.serviceEndpoint=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.nodeId=e.uint64();break;case 2:n.accountId=$root.proto.AccountID.decode(e,e.uint32());break;case 3:n.description=$root.google.protobuf.StringValue.decode(e,e.uint32());break;case 4:n.gossipEndpoint&&n.gossipEndpoint.length||(n.gossipEndpoint=[]),n.gossipEndpoint.push($root.proto.ServiceEndpoint.decode(e,e.uint32()));break;case 5:n.serviceEndpoint&&n.serviceEndpoint.length||(n.serviceEndpoint=[]),n.serviceEndpoint.push($root.proto.ServiceEndpoint.decode(e,e.uint32()));break;case 6:n.gossipCaCertificate=$root.google.protobuf.BytesValue.decode(e,e.uint32());break;case 7:n.grpcCertificateHash=$root.google.protobuf.BytesValue.decode(e,e.uint32());break;case 8:n.adminKey=$root.proto.Key.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.hapi.node.addressbook.NodeUpdateTransactionBody"},e}(),e.NodeDeleteTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==1)n.nodeId=e.uint64();else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.hapi.node.addressbook.NodeDeleteTransactionBody"},e}(),e}(),e}(),e.services=function(){const e={};return e.auxiliary=function(){const e={};return e.tss=function(){const e={};return e.TssMessageTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.sourceRosterHash=e.bytes();break;case 2:n.targetRosterHash=e.bytes();break;case 3:n.shareIndex=e.uint64();break;case 4:n.tssMessage=e.bytes();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.hapi.services.auxiliary.tss.TssMessageTransactionBody"},e}(),e.TssVoteTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.sourceRosterHash=e.bytes();break;case 2:n.targetRosterHash=e.bytes();break;case 3:n.ledgerId=e.bytes();break;case 4:n.nodeSignature=e.bytes();break;case 5:n.tssVote=e.bytes();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.hapi.services.auxiliary.tss.TssVoteTransactionBody"},e}(),e.TssShareSignatureTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.rosterHash=e.bytes();break;case 2:n.shareIndex=e.uint64();break;case 3:n.messageHash=e.bytes();break;case 4:n.shareSignature=e.bytes();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.hapi.services.auxiliary.tss.TssShareSignatureTransactionBody"},e}(),e.TssEncryptionKeyTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==1)n.publicTssEncryptionKey=e.bytes();else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.hapi.services.auxiliary.tss.TssEncryptionKeyTransactionBody"},e}(),e}(),e}(),e}(),e.platform=function(){const e={};return e.event=function(){const e={};return e.EventConsensusData=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.consensusTimestamp=$root.proto.Timestamp.decode(e,e.uint32());break;case 2:n.consensusOrder=e.uint64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.hapi.platform.event.EventConsensusData"},e}(),e.EventCore=function(){function e(e){if(this.parents=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.creatorNodeId=e.int64();break;case 2:n.birthRound=e.int64();break;case 3:n.timeCreated=$root.proto.Timestamp.decode(e,e.uint32());break;case 4:n.parents&&n.parents.length||(n.parents=[]),n.parents.push($root.com.hedera.hapi.platform.event.EventDescriptor.decode(e,e.uint32()));break;case 17:n.version=$root.proto.SemanticVersion.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.hapi.platform.event.EventCore"},e}(),e.EventDescriptor=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.hash=e.bytes();break;case 2:n.creatorNodeId=e.int64();break;case 3:n.birthRound=e.int64();break;case 17:n.generation=e.int64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.hapi.platform.event.EventDescriptor"},e}(),e.EventTransaction=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.applicationTransaction=e.bytes();break;case 2:n.stateSignatureTransaction=$root.com.hedera.hapi.platform.event.StateSignatureTransaction.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.hapi.platform.event.EventTransaction"},e}(),e.GossipEvent=function(){function e(e){if(this.eventTransaction=[],this.transactions=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.eventCore=$root.com.hedera.hapi.platform.event.EventCore.decode(e,e.uint32());break;case 2:n.signature=e.bytes();break;case 3:n.eventTransaction&&n.eventTransaction.length||(n.eventTransaction=[]),n.eventTransaction.push($root.com.hedera.hapi.platform.event.EventTransaction.decode(e,e.uint32()));break;case 4:n.transactions&&n.transactions.length||(n.transactions=[]),n.transactions.push(e.bytes());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.hapi.platform.event.GossipEvent"},e}(),e.StateSignatureTransaction=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.round=e.int64();break;case 2:n.signature=e.bytes();break;case 3:n.hash=e.bytes();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.hapi.platform.event.StateSignatureTransaction"},e}(),e}(),e}(),e}(),e}(),e})(),proto$9.proto=$root.proto=(()=>{const e={};return e.TransactionList=function(){function e(e){if(this.transactionList=[],e)for(var t=Object.keys(e),r=0;r>>3==1)n.transactionList&&n.transactionList.length||(n.transactionList=[]),n.transactionList.push($root.proto.Transaction.decode(e,e.uint32()));else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TransactionList"},e}(),e.AddressBookService=function(){function e(e,t,r){$protobuf$1.rpc.Service.call(this,e,t,r)}return(e.prototype=Object.create($protobuf$1.rpc.Service.prototype)).constructor=e,e.create=function(e,t,r){return new this(e,t,r)},Object.defineProperty(e.prototype.createNode=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"createNode"}),Object.defineProperty(e.prototype.deleteNode=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"deleteNode"}),Object.defineProperty(e.prototype.updateNode=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"updateNode"}),e}(),e.Query=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.getByKey=$root.proto.GetByKeyQuery.decode(e,e.uint32());break;case 2:n.getBySolidityID=$root.proto.GetBySolidityIDQuery.decode(e,e.uint32());break;case 3:n.contractCallLocal=$root.proto.ContractCallLocalQuery.decode(e,e.uint32());break;case 4:n.contractGetInfo=$root.proto.ContractGetInfoQuery.decode(e,e.uint32());break;case 5:n.contractGetBytecode=$root.proto.ContractGetBytecodeQuery.decode(e,e.uint32());break;case 6:n.ContractGetRecords=$root.proto.ContractGetRecordsQuery.decode(e,e.uint32());break;case 7:n.cryptogetAccountBalance=$root.proto.CryptoGetAccountBalanceQuery.decode(e,e.uint32());break;case 8:n.cryptoGetAccountRecords=$root.proto.CryptoGetAccountRecordsQuery.decode(e,e.uint32());break;case 9:n.cryptoGetInfo=$root.proto.CryptoGetInfoQuery.decode(e,e.uint32());break;case 10:n.cryptoGetLiveHash=$root.proto.CryptoGetLiveHashQuery.decode(e,e.uint32());break;case 11:n.cryptoGetProxyStakers=$root.proto.CryptoGetStakersQuery.decode(e,e.uint32());break;case 12:n.fileGetContents=$root.proto.FileGetContentsQuery.decode(e,e.uint32());break;case 13:n.fileGetInfo=$root.proto.FileGetInfoQuery.decode(e,e.uint32());break;case 14:n.transactionGetReceipt=$root.proto.TransactionGetReceiptQuery.decode(e,e.uint32());break;case 15:n.transactionGetRecord=$root.proto.TransactionGetRecordQuery.decode(e,e.uint32());break;case 16:n.transactionGetFastRecord=$root.proto.TransactionGetFastRecordQuery.decode(e,e.uint32());break;case 50:n.consensusGetTopicInfo=$root.proto.ConsensusGetTopicInfoQuery.decode(e,e.uint32());break;case 51:n.networkGetVersionInfo=$root.proto.NetworkGetVersionInfoQuery.decode(e,e.uint32());break;case 52:n.tokenGetInfo=$root.proto.TokenGetInfoQuery.decode(e,e.uint32());break;case 53:n.scheduleGetInfo=$root.proto.ScheduleGetInfoQuery.decode(e,e.uint32());break;case 54:n.tokenGetAccountNftInfos=$root.proto.TokenGetAccountNftInfosQuery.decode(e,e.uint32());break;case 55:n.tokenGetNftInfo=$root.proto.TokenGetNftInfoQuery.decode(e,e.uint32());break;case 56:n.tokenGetNftInfos=$root.proto.TokenGetNftInfosQuery.decode(e,e.uint32());break;case 57:n.networkGetExecutionTime=$root.proto.NetworkGetExecutionTimeQuery.decode(e,e.uint32());break;case 58:n.accountDetails=$root.proto.GetAccountDetailsQuery.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.Query"},e}(),e.GetByKeyQuery=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.QueryHeader.decode(e,e.uint32());break;case 2:n.key=$root.proto.Key.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.GetByKeyQuery"},e}(),e.EntityID=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.accountID=$root.proto.AccountID.decode(e,e.uint32());break;case 2:n.liveHash=$root.proto.LiveHash.decode(e,e.uint32());break;case 3:n.fileID=$root.proto.FileID.decode(e,e.uint32());break;case 4:n.contractID=$root.proto.ContractID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.EntityID"},e}(),e.GetByKeyResponse=function(){function e(e){if(this.entities=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.ResponseHeader.decode(e,e.uint32());break;case 2:n.entities&&n.entities.length||(n.entities=[]),n.entities.push($root.proto.EntityID.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.GetByKeyResponse"},e}(),e.ShardID=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==1)n.shardNum=e.int64();else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ShardID"},e}(),e.RealmID=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.shardNum=e.int64();break;case 2:n.realmNum=e.int64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.RealmID"},e}(),e.BlockHashAlgorithm=function(){const e={},t=Object.create(e);return t[e[0]="SHA2_384"]=0,t}(),e.AccountID=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.shardNum=e.int64();break;case 2:n.realmNum=e.int64();break;case 3:n.accountNum=e.int64();break;case 4:n.alias=e.bytes();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.AccountID"},e}(),e.NftID=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.token_ID=$root.proto.TokenID.decode(e,e.uint32());break;case 2:n.serialNumber=e.int64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.NftID"},e}(),e.FileID=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.shardNum=e.int64();break;case 2:n.realmNum=e.int64();break;case 3:n.fileNum=e.int64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FileID"},e}(),e.ContractID=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.shardNum=e.int64();break;case 2:n.realmNum=e.int64();break;case 3:n.contractNum=e.int64();break;case 4:n.evmAddress=e.bytes();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractID"},e}(),e.TransactionID=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.transactionValidStart=$root.proto.Timestamp.decode(e,e.uint32());break;case 2:n.accountID=$root.proto.AccountID.decode(e,e.uint32());break;case 3:n.scheduled=e.bool();break;case 4:n.nonce=e.int32();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TransactionID"},e}(),e.AccountAmount=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.accountID=$root.proto.AccountID.decode(e,e.uint32());break;case 2:n.amount=e.sint64();break;case 3:n.isApproval=e.bool();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.AccountAmount"},e}(),e.TransferList=function(){function e(e){if(this.accountAmounts=[],e)for(var t=Object.keys(e),r=0;r>>3==1)n.accountAmounts&&n.accountAmounts.length||(n.accountAmounts=[]),n.accountAmounts.push($root.proto.AccountAmount.decode(e,e.uint32()));else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TransferList"},e}(),e.NftTransfer=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.senderAccountID=$root.proto.AccountID.decode(e,e.uint32());break;case 2:n.receiverAccountID=$root.proto.AccountID.decode(e,e.uint32());break;case 3:n.serialNumber=e.int64();break;case 4:n.isApproval=e.bool();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.NftTransfer"},e}(),e.TokenTransferList=function(){function e(e){if(this.transfers=[],this.nftTransfers=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.token=$root.proto.TokenID.decode(e,e.uint32());break;case 2:n.transfers&&n.transfers.length||(n.transfers=[]),n.transfers.push($root.proto.AccountAmount.decode(e,e.uint32()));break;case 3:n.nftTransfers&&n.nftTransfers.length||(n.nftTransfers=[]),n.nftTransfers.push($root.proto.NftTransfer.decode(e,e.uint32()));break;case 4:n.expectedDecimals=$root.google.protobuf.UInt32Value.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenTransferList"},e}(),e.Fraction=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.numerator=e.int64();break;case 2:n.denominator=e.int64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.Fraction"},e}(),e.TopicID=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.shardNum=e.int64();break;case 2:n.realmNum=e.int64();break;case 3:n.topicNum=e.int64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TopicID"},e}(),e.TokenID=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.shardNum=e.int64();break;case 2:n.realmNum=e.int64();break;case 3:n.tokenNum=e.int64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenID"},e}(),e.ScheduleID=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.shardNum=e.int64();break;case 2:n.realmNum=e.int64();break;case 3:n.scheduleNum=e.int64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ScheduleID"},e}(),e.TokenType=function(){const e={},t=Object.create(e);return t[e[0]="FUNGIBLE_COMMON"]=0,t[e[1]="NON_FUNGIBLE_UNIQUE"]=1,t}(),e.SubType=function(){const e={},t=Object.create(e);return t[e[0]="DEFAULT"]=0,t[e[1]="TOKEN_FUNGIBLE_COMMON"]=1,t[e[2]="TOKEN_NON_FUNGIBLE_UNIQUE"]=2,t[e[3]="TOKEN_FUNGIBLE_COMMON_WITH_CUSTOM_FEES"]=3,t[e[4]="TOKEN_NON_FUNGIBLE_UNIQUE_WITH_CUSTOM_FEES"]=4,t[e[5]="SCHEDULE_CREATE_CONTRACT_CALL"]=5,t}(),e.TokenSupplyType=function(){const e={},t=Object.create(e);return t[e[0]="INFINITE"]=0,t[e[1]="FINITE"]=1,t}(),e.TokenKeyValidation=function(){const e={},t=Object.create(e);return t[e[0]="FULL_VALIDATION"]=0,t[e[1]="NO_VALIDATION"]=1,t}(),e.TokenFreezeStatus=function(){const e={},t=Object.create(e);return t[e[0]="FreezeNotApplicable"]=0,t[e[1]="Frozen"]=1,t[e[2]="Unfrozen"]=2,t}(),e.TokenKycStatus=function(){const e={},t=Object.create(e);return t[e[0]="KycNotApplicable"]=0,t[e[1]="Granted"]=1,t[e[2]="Revoked"]=2,t}(),e.TokenPauseStatus=function(){const e={},t=Object.create(e);return t[e[0]="PauseNotApplicable"]=0,t[e[1]="Paused"]=1,t[e[2]="Unpaused"]=2,t}(),e.Key=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.contractID=$root.proto.ContractID.decode(e,e.uint32());break;case 2:n.ed25519=e.bytes();break;case 3:n.RSA_3072=e.bytes();break;case 4:n.ECDSA_384=e.bytes();break;case 5:n.thresholdKey=$root.proto.ThresholdKey.decode(e,e.uint32());break;case 6:n.keyList=$root.proto.KeyList.decode(e,e.uint32());break;case 7:n.ECDSASecp256k1=e.bytes();break;case 8:n.delegatableContractId=$root.proto.ContractID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.Key"},e}(),e.ThresholdKey=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.threshold=e.uint32();break;case 2:n.keys=$root.proto.KeyList.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ThresholdKey"},e}(),e.KeyList=function(){function e(e){if(this.keys=[],e)for(var t=Object.keys(e),r=0;r>>3==1)n.keys&&n.keys.length||(n.keys=[]),n.keys.push($root.proto.Key.decode(e,e.uint32()));else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.KeyList"},e}(),e.Signature=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.contract=e.bytes();break;case 2:n.ed25519=e.bytes();break;case 3:n.RSA_3072=e.bytes();break;case 4:n.ECDSA_384=e.bytes();break;case 5:n.thresholdSignature=$root.proto.ThresholdSignature.decode(e,e.uint32());break;case 6:n.signatureList=$root.proto.SignatureList.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.Signature"},e}(),e.ThresholdSignature=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==2)n.sigs=$root.proto.SignatureList.decode(e,e.uint32());else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ThresholdSignature"},e}(),e.SignatureList=function(){function e(e){if(this.sigs=[],e)for(var t=Object.keys(e),r=0;r>>3==2)n.sigs&&n.sigs.length||(n.sigs=[]),n.sigs.push($root.proto.Signature.decode(e,e.uint32()));else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.SignatureList"},e}(),e.SignaturePair=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.pubKeyPrefix=e.bytes();break;case 2:n.contract=e.bytes();break;case 3:n.ed25519=e.bytes();break;case 4:n.RSA_3072=e.bytes();break;case 5:n.ECDSA_384=e.bytes();break;case 6:n.ECDSASecp256k1=e.bytes();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.SignaturePair"},e}(),e.SignatureMap=function(){function e(e){if(this.sigPair=[],e)for(var t=Object.keys(e),r=0;r>>3==1)n.sigPair&&n.sigPair.length||(n.sigPair=[]),n.sigPair.push($root.proto.SignaturePair.decode(e,e.uint32()));else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.SignatureMap"},e}(),e.HederaFunctionality=function(){const e={},t=Object.create(e);return t[e[0]="NONE"]=0,t[e[1]="CryptoTransfer"]=1,t[e[2]="CryptoUpdate"]=2,t[e[3]="CryptoDelete"]=3,t[e[4]="CryptoAddLiveHash"]=4,t[e[5]="CryptoDeleteLiveHash"]=5,t[e[6]="ContractCall"]=6,t[e[7]="ContractCreate"]=7,t[e[8]="ContractUpdate"]=8,t[e[9]="FileCreate"]=9,t[e[10]="FileAppend"]=10,t[e[11]="FileUpdate"]=11,t[e[12]="FileDelete"]=12,t[e[13]="CryptoGetAccountBalance"]=13,t[e[14]="CryptoGetAccountRecords"]=14,t[e[15]="CryptoGetInfo"]=15,t[e[16]="ContractCallLocal"]=16,t[e[17]="ContractGetInfo"]=17,t[e[18]="ContractGetBytecode"]=18,t[e[19]="GetBySolidityID"]=19,t[e[20]="GetByKey"]=20,t[e[21]="CryptoGetLiveHash"]=21,t[e[22]="CryptoGetStakers"]=22,t[e[23]="FileGetContents"]=23,t[e[24]="FileGetInfo"]=24,t[e[25]="TransactionGetRecord"]=25,t[e[26]="ContractGetRecords"]=26,t[e[27]="CryptoCreate"]=27,t[e[28]="SystemDelete"]=28,t[e[29]="SystemUndelete"]=29,t[e[30]="ContractDelete"]=30,t[e[31]="Freeze"]=31,t[e[32]="CreateTransactionRecord"]=32,t[e[33]="CryptoAccountAutoRenew"]=33,t[e[34]="ContractAutoRenew"]=34,t[e[35]="GetVersionInfo"]=35,t[e[36]="TransactionGetReceipt"]=36,t[e[50]="ConsensusCreateTopic"]=50,t[e[51]="ConsensusUpdateTopic"]=51,t[e[52]="ConsensusDeleteTopic"]=52,t[e[53]="ConsensusGetTopicInfo"]=53,t[e[54]="ConsensusSubmitMessage"]=54,t[e[55]="UncheckedSubmit"]=55,t[e[56]="TokenCreate"]=56,t[e[58]="TokenGetInfo"]=58,t[e[59]="TokenFreezeAccount"]=59,t[e[60]="TokenUnfreezeAccount"]=60,t[e[61]="TokenGrantKycToAccount"]=61,t[e[62]="TokenRevokeKycFromAccount"]=62,t[e[63]="TokenDelete"]=63,t[e[64]="TokenUpdate"]=64,t[e[65]="TokenMint"]=65,t[e[66]="TokenBurn"]=66,t[e[67]="TokenAccountWipe"]=67,t[e[68]="TokenAssociateToAccount"]=68,t[e[69]="TokenDissociateFromAccount"]=69,t[e[70]="ScheduleCreate"]=70,t[e[71]="ScheduleDelete"]=71,t[e[72]="ScheduleSign"]=72,t[e[73]="ScheduleGetInfo"]=73,t[e[74]="TokenGetAccountNftInfos"]=74,t[e[75]="TokenGetNftInfo"]=75,t[e[76]="TokenGetNftInfos"]=76,t[e[77]="TokenFeeScheduleUpdate"]=77,t[e[78]="NetworkGetExecutionTime"]=78,t[e[79]="TokenPause"]=79,t[e[80]="TokenUnpause"]=80,t[e[81]="CryptoApproveAllowance"]=81,t[e[82]="CryptoDeleteAllowance"]=82,t[e[83]="GetAccountDetails"]=83,t[e[84]="EthereumTransaction"]=84,t[e[85]="NodeStakeUpdate"]=85,t[e[86]="UtilPrng"]=86,t[e[87]="TransactionGetFastRecord"]=87,t[e[88]="TokenUpdateNfts"]=88,t[e[89]="NodeCreate"]=89,t[e[90]="NodeUpdate"]=90,t[e[91]="NodeDelete"]=91,t[e[92]="TokenReject"]=92,t[e[93]="TokenAirdrop"]=93,t[e[94]="TokenCancelAirdrop"]=94,t[e[95]="TokenClaimAirdrop"]=95,t[e[96]="TssMessage"]=96,t[e[97]="TssVote"]=97,t[e[98]="TssShareSignature"]=98,t[e[99]="TssEncryptionKey"]=99,t[e[100]="StateSignatureTransaction"]=100,t}(),e.FeeComponents=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.min=e.int64();break;case 2:n.max=e.int64();break;case 3:n.constant=e.int64();break;case 4:n.bpt=e.int64();break;case 5:n.vpt=e.int64();break;case 6:n.rbh=e.int64();break;case 7:n.sbh=e.int64();break;case 8:n.gas=e.int64();break;case 9:n.tv=e.int64();break;case 10:n.bpr=e.int64();break;case 11:n.sbpr=e.int64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FeeComponents"},e}(),e.TransactionFeeSchedule=function(){function e(e){if(this.fees=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.hederaFunctionality=e.int32();break;case 2:n.feeData=$root.proto.FeeData.decode(e,e.uint32());break;case 3:n.fees&&n.fees.length||(n.fees=[]),n.fees.push($root.proto.FeeData.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TransactionFeeSchedule"},e}(),e.FeeData=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.nodedata=$root.proto.FeeComponents.decode(e,e.uint32());break;case 2:n.networkdata=$root.proto.FeeComponents.decode(e,e.uint32());break;case 3:n.servicedata=$root.proto.FeeComponents.decode(e,e.uint32());break;case 4:n.subType=e.int32();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FeeData"},e}(),e.FeeSchedule=function(){function e(e){if(this.transactionFeeSchedule=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.transactionFeeSchedule&&n.transactionFeeSchedule.length||(n.transactionFeeSchedule=[]),n.transactionFeeSchedule.push($root.proto.TransactionFeeSchedule.decode(e,e.uint32()));break;case 2:n.expiryTime=$root.proto.TimestampSeconds.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FeeSchedule"},e}(),e.CurrentAndNextFeeSchedule=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.currentFeeSchedule=$root.proto.FeeSchedule.decode(e,e.uint32());break;case 2:n.nextFeeSchedule=$root.proto.FeeSchedule.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CurrentAndNextFeeSchedule"},e}(),e.ServiceEndpoint=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.ipAddressV4=e.bytes();break;case 2:n.port=e.int32();break;case 3:n.domainName=e.string();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ServiceEndpoint"},e}(),e.NodeAddress=function(){function e(e){if(this.serviceEndpoint=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.ipAddress=e.bytes();break;case 2:n.portno=e.int32();break;case 3:n.memo=e.bytes();break;case 4:n.RSA_PubKey=e.string();break;case 5:n.nodeId=e.int64();break;case 6:n.nodeAccountId=$root.proto.AccountID.decode(e,e.uint32());break;case 7:n.nodeCertHash=e.bytes();break;case 8:n.serviceEndpoint&&n.serviceEndpoint.length||(n.serviceEndpoint=[]),n.serviceEndpoint.push($root.proto.ServiceEndpoint.decode(e,e.uint32()));break;case 9:n.description=e.string();break;case 10:n.stake=e.int64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.NodeAddress"},e}(),e.NodeAddressBook=function(){function e(e){if(this.nodeAddress=[],e)for(var t=Object.keys(e),r=0;r>>3==1)n.nodeAddress&&n.nodeAddress.length||(n.nodeAddress=[]),n.nodeAddress.push($root.proto.NodeAddress.decode(e,e.uint32()));else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.NodeAddressBook"},e}(),e.SemanticVersion=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.major=e.int32();break;case 2:n.minor=e.int32();break;case 3:n.patch=e.int32();break;case 4:n.pre=e.string();break;case 5:n.build=e.string();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.SemanticVersion"},e}(),e.Setting=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.name=e.string();break;case 2:n.value=e.string();break;case 3:n.data=e.bytes();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.Setting"},e}(),e.ServicesConfigurationList=function(){function e(e){if(this.nameValue=[],e)for(var t=Object.keys(e),r=0;r>>3==1)n.nameValue&&n.nameValue.length||(n.nameValue=[]),n.nameValue.push($root.proto.Setting.decode(e,e.uint32()));else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ServicesConfigurationList"},e}(),e.TokenRelationship=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.tokenId=$root.proto.TokenID.decode(e,e.uint32());break;case 2:n.symbol=e.string();break;case 3:n.balance=e.uint64();break;case 4:n.kycStatus=e.int32();break;case 5:n.freezeStatus=e.int32();break;case 6:n.decimals=e.uint32();break;case 7:n.automaticAssociation=e.bool();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenRelationship"},e}(),e.TokenBalance=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.tokenId=$root.proto.TokenID.decode(e,e.uint32());break;case 2:n.balance=e.uint64();break;case 3:n.decimals=e.uint32();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenBalance"},e}(),e.TokenBalances=function(){function e(e){if(this.tokenBalances=[],e)for(var t=Object.keys(e),r=0;r>>3==1)n.tokenBalances&&n.tokenBalances.length||(n.tokenBalances=[]),n.tokenBalances.push($root.proto.TokenBalance.decode(e,e.uint32()));else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenBalances"},e}(),e.TokenAssociation=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.tokenId=$root.proto.TokenID.decode(e,e.uint32());break;case 2:n.accountId=$root.proto.AccountID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenAssociation"},e}(),e.StakingInfo=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.declineReward=e.bool();break;case 2:n.stakePeriodStart=$root.proto.Timestamp.decode(e,e.uint32());break;case 3:n.pendingReward=e.int64();break;case 4:n.stakedToMe=e.int64();break;case 5:n.stakedAccountId=$root.proto.AccountID.decode(e,e.uint32());break;case 6:n.stakedNodeId=e.int64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.StakingInfo"},e}(),e.PendingAirdropId=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.senderId=$root.proto.AccountID.decode(e,e.uint32());break;case 2:n.receiverId=$root.proto.AccountID.decode(e,e.uint32());break;case 3:n.fungibleTokenType=$root.proto.TokenID.decode(e,e.uint32());break;case 4:n.nonFungibleToken=$root.proto.NftID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.PendingAirdropId"},e}(),e.PendingAirdropValue=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==1)n.amount=e.uint64();else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.PendingAirdropValue"},e}(),e.Timestamp=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.seconds=e.int64();break;case 2:n.nanos=e.int32();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.Timestamp"},e}(),e.TimestampSeconds=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==1)n.seconds=e.int64();else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TimestampSeconds"},e}(),e.ResponseType=function(){const e={},t=Object.create(e);return t[e[0]="ANSWER_ONLY"]=0,t[e[1]="ANSWER_STATE_PROOF"]=1,t[e[2]="COST_ANSWER"]=2,t[e[3]="COST_ANSWER_STATE_PROOF"]=3,t}(),e.QueryHeader=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.payment=$root.proto.Transaction.decode(e,e.uint32());break;case 2:n.responseType=e.int32();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.QueryHeader"},e}(),e.Transaction=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.body=$root.proto.TransactionBody.decode(e,e.uint32());break;case 2:n.sigs=$root.proto.SignatureList.decode(e,e.uint32());break;case 3:n.sigMap=$root.proto.SignatureMap.decode(e,e.uint32());break;case 4:n.bodyBytes=e.bytes();break;case 5:n.signedTransactionBytes=e.bytes();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.Transaction"},e}(),e.TransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.transactionID=$root.proto.TransactionID.decode(e,e.uint32());break;case 2:n.nodeAccountID=$root.proto.AccountID.decode(e,e.uint32());break;case 3:n.transactionFee=e.uint64();break;case 4:n.transactionValidDuration=$root.proto.Duration.decode(e,e.uint32());break;case 5:n.generateRecord=e.bool();break;case 6:n.memo=e.string();break;case 7:n.contractCall=$root.proto.ContractCallTransactionBody.decode(e,e.uint32());break;case 8:n.contractCreateInstance=$root.proto.ContractCreateTransactionBody.decode(e,e.uint32());break;case 9:n.contractUpdateInstance=$root.proto.ContractUpdateTransactionBody.decode(e,e.uint32());break;case 10:n.cryptoAddLiveHash=$root.proto.CryptoAddLiveHashTransactionBody.decode(e,e.uint32());break;case 11:n.cryptoCreateAccount=$root.proto.CryptoCreateTransactionBody.decode(e,e.uint32());break;case 12:n.cryptoDelete=$root.proto.CryptoDeleteTransactionBody.decode(e,e.uint32());break;case 13:n.cryptoDeleteLiveHash=$root.proto.CryptoDeleteLiveHashTransactionBody.decode(e,e.uint32());break;case 14:n.cryptoTransfer=$root.proto.CryptoTransferTransactionBody.decode(e,e.uint32());break;case 15:n.cryptoUpdateAccount=$root.proto.CryptoUpdateTransactionBody.decode(e,e.uint32());break;case 16:n.fileAppend=$root.proto.FileAppendTransactionBody.decode(e,e.uint32());break;case 17:n.fileCreate=$root.proto.FileCreateTransactionBody.decode(e,e.uint32());break;case 18:n.fileDelete=$root.proto.FileDeleteTransactionBody.decode(e,e.uint32());break;case 19:n.fileUpdate=$root.proto.FileUpdateTransactionBody.decode(e,e.uint32());break;case 20:n.systemDelete=$root.proto.SystemDeleteTransactionBody.decode(e,e.uint32());break;case 21:n.systemUndelete=$root.proto.SystemUndeleteTransactionBody.decode(e,e.uint32());break;case 22:n.contractDeleteInstance=$root.proto.ContractDeleteTransactionBody.decode(e,e.uint32());break;case 23:n.freeze=$root.proto.FreezeTransactionBody.decode(e,e.uint32());break;case 24:n.consensusCreateTopic=$root.proto.ConsensusCreateTopicTransactionBody.decode(e,e.uint32());break;case 25:n.consensusUpdateTopic=$root.proto.ConsensusUpdateTopicTransactionBody.decode(e,e.uint32());break;case 26:n.consensusDeleteTopic=$root.proto.ConsensusDeleteTopicTransactionBody.decode(e,e.uint32());break;case 27:n.consensusSubmitMessage=$root.proto.ConsensusSubmitMessageTransactionBody.decode(e,e.uint32());break;case 28:n.uncheckedSubmit=$root.proto.UncheckedSubmitBody.decode(e,e.uint32());break;case 29:n.tokenCreation=$root.proto.TokenCreateTransactionBody.decode(e,e.uint32());break;case 31:n.tokenFreeze=$root.proto.TokenFreezeAccountTransactionBody.decode(e,e.uint32());break;case 32:n.tokenUnfreeze=$root.proto.TokenUnfreezeAccountTransactionBody.decode(e,e.uint32());break;case 33:n.tokenGrantKyc=$root.proto.TokenGrantKycTransactionBody.decode(e,e.uint32());break;case 34:n.tokenRevokeKyc=$root.proto.TokenRevokeKycTransactionBody.decode(e,e.uint32());break;case 35:n.tokenDeletion=$root.proto.TokenDeleteTransactionBody.decode(e,e.uint32());break;case 36:n.tokenUpdate=$root.proto.TokenUpdateTransactionBody.decode(e,e.uint32());break;case 37:n.tokenMint=$root.proto.TokenMintTransactionBody.decode(e,e.uint32());break;case 38:n.tokenBurn=$root.proto.TokenBurnTransactionBody.decode(e,e.uint32());break;case 39:n.tokenWipe=$root.proto.TokenWipeAccountTransactionBody.decode(e,e.uint32());break;case 40:n.tokenAssociate=$root.proto.TokenAssociateTransactionBody.decode(e,e.uint32());break;case 41:n.tokenDissociate=$root.proto.TokenDissociateTransactionBody.decode(e,e.uint32());break;case 42:n.scheduleCreate=$root.proto.ScheduleCreateTransactionBody.decode(e,e.uint32());break;case 43:n.scheduleDelete=$root.proto.ScheduleDeleteTransactionBody.decode(e,e.uint32());break;case 44:n.scheduleSign=$root.proto.ScheduleSignTransactionBody.decode(e,e.uint32());break;case 45:n.tokenFeeScheduleUpdate=$root.proto.TokenFeeScheduleUpdateTransactionBody.decode(e,e.uint32());break;case 46:n.tokenPause=$root.proto.TokenPauseTransactionBody.decode(e,e.uint32());break;case 47:n.tokenUnpause=$root.proto.TokenUnpauseTransactionBody.decode(e,e.uint32());break;case 48:n.cryptoApproveAllowance=$root.proto.CryptoApproveAllowanceTransactionBody.decode(e,e.uint32());break;case 49:n.cryptoDeleteAllowance=$root.proto.CryptoDeleteAllowanceTransactionBody.decode(e,e.uint32());break;case 50:n.ethereumTransaction=$root.proto.EthereumTransactionBody.decode(e,e.uint32());break;case 51:n.nodeStakeUpdate=$root.proto.NodeStakeUpdateTransactionBody.decode(e,e.uint32());break;case 52:n.utilPrng=$root.proto.UtilPrngTransactionBody.decode(e,e.uint32());break;case 53:n.tokenUpdateNfts=$root.proto.TokenUpdateNftsTransactionBody.decode(e,e.uint32());break;case 54:n.nodeCreate=$root.com.hedera.hapi.node.addressbook.NodeCreateTransactionBody.decode(e,e.uint32());break;case 55:n.nodeUpdate=$root.com.hedera.hapi.node.addressbook.NodeUpdateTransactionBody.decode(e,e.uint32());break;case 56:n.nodeDelete=$root.com.hedera.hapi.node.addressbook.NodeDeleteTransactionBody.decode(e,e.uint32());break;case 57:n.tokenReject=$root.proto.TokenRejectTransactionBody.decode(e,e.uint32());break;case 58:n.tokenAirdrop=$root.proto.TokenAirdropTransactionBody.decode(e,e.uint32());break;case 59:n.tokenCancelAirdrop=$root.proto.TokenCancelAirdropTransactionBody.decode(e,e.uint32());break;case 60:n.tokenClaimAirdrop=$root.proto.TokenClaimAirdropTransactionBody.decode(e,e.uint32());break;case 61:n.tssMessage=$root.com.hedera.hapi.services.auxiliary.tss.TssMessageTransactionBody.decode(e,e.uint32());break;case 62:n.tssVote=$root.com.hedera.hapi.services.auxiliary.tss.TssVoteTransactionBody.decode(e,e.uint32());break;case 63:n.tssShareSignature=$root.com.hedera.hapi.services.auxiliary.tss.TssShareSignatureTransactionBody.decode(e,e.uint32());break;case 64:n.tssEncryptionKey=$root.com.hedera.hapi.services.auxiliary.tss.TssEncryptionKeyTransactionBody.decode(e,e.uint32());break;case 65:n.stateSignatureTransaction=$root.com.hedera.hapi.platform.event.StateSignatureTransaction.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TransactionBody"},e}(),e.SystemDeleteTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.fileID=$root.proto.FileID.decode(e,e.uint32());break;case 2:n.contractID=$root.proto.ContractID.decode(e,e.uint32());break;case 3:n.expirationTime=$root.proto.TimestampSeconds.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.SystemDeleteTransactionBody"},e}(),e.SystemUndeleteTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.fileID=$root.proto.FileID.decode(e,e.uint32());break;case 2:n.contractID=$root.proto.ContractID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.SystemUndeleteTransactionBody"},e}(),e.FreezeTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.startHour=e.int32();break;case 2:n.startMin=e.int32();break;case 3:n.endHour=e.int32();break;case 4:n.endMin=e.int32();break;case 5:n.updateFile=$root.proto.FileID.decode(e,e.uint32());break;case 6:n.fileHash=e.bytes();break;case 7:n.startTime=$root.proto.Timestamp.decode(e,e.uint32());break;case 8:n.freezeType=e.int32();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FreezeTransactionBody"},e}(),e.FreezeType=function(){const e={},t=Object.create(e);return t[e[0]="UNKNOWN_FREEZE_TYPE"]=0,t[e[1]="FREEZE_ONLY"]=1,t[e[2]="PREPARE_UPGRADE"]=2,t[e[3]="FREEZE_UPGRADE"]=3,t[e[4]="FREEZE_ABORT"]=4,t[e[5]="TELEMETRY_UPGRADE"]=5,t}(),e.ContractCallTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.contractID=$root.proto.ContractID.decode(e,e.uint32());break;case 2:n.gas=e.int64();break;case 3:n.amount=e.int64();break;case 4:n.functionParameters=e.bytes();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractCallTransactionBody"},e}(),e.ContractCreateTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.fileID=$root.proto.FileID.decode(e,e.uint32());break;case 16:n.initcode=e.bytes();break;case 3:n.adminKey=$root.proto.Key.decode(e,e.uint32());break;case 4:n.gas=e.int64();break;case 5:n.initialBalance=e.int64();break;case 6:n.proxyAccountID=$root.proto.AccountID.decode(e,e.uint32());break;case 8:n.autoRenewPeriod=$root.proto.Duration.decode(e,e.uint32());break;case 9:n.constructorParameters=e.bytes();break;case 10:n.shardID=$root.proto.ShardID.decode(e,e.uint32());break;case 11:n.realmID=$root.proto.RealmID.decode(e,e.uint32());break;case 12:n.newRealmAdminKey=$root.proto.Key.decode(e,e.uint32());break;case 13:n.memo=e.string();break;case 14:n.maxAutomaticTokenAssociations=e.int32();break;case 15:n.autoRenewAccountId=$root.proto.AccountID.decode(e,e.uint32());break;case 17:n.stakedAccountId=$root.proto.AccountID.decode(e,e.uint32());break;case 18:n.stakedNodeId=e.int64();break;case 19:n.declineReward=e.bool();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractCreateTransactionBody"},e}(),e.Duration=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==1)n.seconds=e.int64();else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.Duration"},e}(),e.ContractUpdateTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.contractID=$root.proto.ContractID.decode(e,e.uint32());break;case 2:n.expirationTime=$root.proto.Timestamp.decode(e,e.uint32());break;case 3:n.adminKey=$root.proto.Key.decode(e,e.uint32());break;case 6:n.proxyAccountID=$root.proto.AccountID.decode(e,e.uint32());break;case 7:n.autoRenewPeriod=$root.proto.Duration.decode(e,e.uint32());break;case 8:n.fileID=$root.proto.FileID.decode(e,e.uint32());break;case 9:n.memo=e.string();break;case 10:n.memoWrapper=$root.google.protobuf.StringValue.decode(e,e.uint32());break;case 11:n.maxAutomaticTokenAssociations=$root.google.protobuf.Int32Value.decode(e,e.uint32());break;case 12:n.autoRenewAccountId=$root.proto.AccountID.decode(e,e.uint32());break;case 13:n.stakedAccountId=$root.proto.AccountID.decode(e,e.uint32());break;case 14:n.stakedNodeId=e.int64();break;case 15:n.declineReward=$root.google.protobuf.BoolValue.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractUpdateTransactionBody"},e}(),e.LiveHash=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.accountId=$root.proto.AccountID.decode(e,e.uint32());break;case 2:n.hash=e.bytes();break;case 3:n.keys=$root.proto.KeyList.decode(e,e.uint32());break;case 5:n.duration=$root.proto.Duration.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.LiveHash"},e}(),e.CryptoAddLiveHashTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==3)n.liveHash=$root.proto.LiveHash.decode(e,e.uint32());else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoAddLiveHashTransactionBody"},e}(),e.CryptoCreateTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.key=$root.proto.Key.decode(e,e.uint32());break;case 2:n.initialBalance=e.uint64();break;case 3:n.proxyAccountID=$root.proto.AccountID.decode(e,e.uint32());break;case 6:n.sendRecordThreshold=e.uint64();break;case 7:n.receiveRecordThreshold=e.uint64();break;case 8:n.receiverSigRequired=e.bool();break;case 9:n.autoRenewPeriod=$root.proto.Duration.decode(e,e.uint32());break;case 10:n.shardID=$root.proto.ShardID.decode(e,e.uint32());break;case 11:n.realmID=$root.proto.RealmID.decode(e,e.uint32());break;case 12:n.newRealmAdminKey=$root.proto.Key.decode(e,e.uint32());break;case 13:n.memo=e.string();break;case 14:n.maxAutomaticTokenAssociations=e.int32();break;case 15:n.stakedAccountId=$root.proto.AccountID.decode(e,e.uint32());break;case 16:n.stakedNodeId=e.int64();break;case 17:n.declineReward=e.bool();break;case 18:n.alias=e.bytes();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoCreateTransactionBody"},e}(),e.CryptoDeleteTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.transferAccountID=$root.proto.AccountID.decode(e,e.uint32());break;case 2:n.deleteAccountID=$root.proto.AccountID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoDeleteTransactionBody"},e}(),e.CryptoDeleteLiveHashTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.accountOfLiveHash=$root.proto.AccountID.decode(e,e.uint32());break;case 2:n.liveHashToDelete=e.bytes();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoDeleteLiveHashTransactionBody"},e}(),e.CryptoTransferTransactionBody=function(){function e(e){if(this.tokenTransfers=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.transfers=$root.proto.TransferList.decode(e,e.uint32());break;case 2:n.tokenTransfers&&n.tokenTransfers.length||(n.tokenTransfers=[]),n.tokenTransfers.push($root.proto.TokenTransferList.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoTransferTransactionBody"},e}(),e.CryptoUpdateTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 2:n.accountIDToUpdate=$root.proto.AccountID.decode(e,e.uint32());break;case 3:n.key=$root.proto.Key.decode(e,e.uint32());break;case 4:n.proxyAccountID=$root.proto.AccountID.decode(e,e.uint32());break;case 5:n.proxyFraction=e.int32();break;case 6:n.sendRecordThreshold=e.uint64();break;case 11:n.sendRecordThresholdWrapper=$root.google.protobuf.UInt64Value.decode(e,e.uint32());break;case 7:n.receiveRecordThreshold=e.uint64();break;case 12:n.receiveRecordThresholdWrapper=$root.google.protobuf.UInt64Value.decode(e,e.uint32());break;case 8:n.autoRenewPeriod=$root.proto.Duration.decode(e,e.uint32());break;case 9:n.expirationTime=$root.proto.Timestamp.decode(e,e.uint32());break;case 10:n.receiverSigRequired=e.bool();break;case 13:n.receiverSigRequiredWrapper=$root.google.protobuf.BoolValue.decode(e,e.uint32());break;case 14:n.memo=$root.google.protobuf.StringValue.decode(e,e.uint32());break;case 15:n.maxAutomaticTokenAssociations=$root.google.protobuf.Int32Value.decode(e,e.uint32());break;case 16:n.stakedAccountId=$root.proto.AccountID.decode(e,e.uint32());break;case 17:n.stakedNodeId=e.int64();break;case 18:n.declineReward=$root.google.protobuf.BoolValue.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoUpdateTransactionBody"},e}(),e.CryptoApproveAllowanceTransactionBody=function(){function e(e){if(this.cryptoAllowances=[],this.nftAllowances=[],this.tokenAllowances=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.cryptoAllowances&&n.cryptoAllowances.length||(n.cryptoAllowances=[]),n.cryptoAllowances.push($root.proto.CryptoAllowance.decode(e,e.uint32()));break;case 2:n.nftAllowances&&n.nftAllowances.length||(n.nftAllowances=[]),n.nftAllowances.push($root.proto.NftAllowance.decode(e,e.uint32()));break;case 3:n.tokenAllowances&&n.tokenAllowances.length||(n.tokenAllowances=[]),n.tokenAllowances.push($root.proto.TokenAllowance.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoApproveAllowanceTransactionBody"},e}(),e.CryptoAllowance=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.owner=$root.proto.AccountID.decode(e,e.uint32());break;case 2:n.spender=$root.proto.AccountID.decode(e,e.uint32());break;case 3:n.amount=e.int64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoAllowance"},e}(),e.NftAllowance=function(){function e(e){if(this.serialNumbers=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.tokenId=$root.proto.TokenID.decode(e,e.uint32());break;case 2:n.owner=$root.proto.AccountID.decode(e,e.uint32());break;case 3:n.spender=$root.proto.AccountID.decode(e,e.uint32());break;case 4:if(n.serialNumbers&&n.serialNumbers.length||(n.serialNumbers=[]),2==(7&o))for(var i=e.uint32()+e.pos;e.pos>>3){case 1:n.tokenId=$root.proto.TokenID.decode(e,e.uint32());break;case 2:n.owner=$root.proto.AccountID.decode(e,e.uint32());break;case 3:n.spender=$root.proto.AccountID.decode(e,e.uint32());break;case 4:n.amount=e.int64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenAllowance"},e}(),e.CryptoDeleteAllowanceTransactionBody=function(){function e(e){if(this.nftAllowances=[],e)for(var t=Object.keys(e),r=0;r>>3==2)n.nftAllowances&&n.nftAllowances.length||(n.nftAllowances=[]),n.nftAllowances.push($root.proto.NftRemoveAllowance.decode(e,e.uint32()));else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoDeleteAllowanceTransactionBody"},e}(),e.NftRemoveAllowance=function(){function e(e){if(this.serialNumbers=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.tokenId=$root.proto.TokenID.decode(e,e.uint32());break;case 2:n.owner=$root.proto.AccountID.decode(e,e.uint32());break;case 3:if(n.serialNumbers&&n.serialNumbers.length||(n.serialNumbers=[]),2==(7&o))for(var i=e.uint32()+e.pos;e.pos>>3){case 1:n.ethereumData=e.bytes();break;case 2:n.callData=$root.proto.FileID.decode(e,e.uint32());break;case 3:n.maxGasAllowance=e.int64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.EthereumTransactionBody"},e}(),e.FileAppendTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 2:n.fileID=$root.proto.FileID.decode(e,e.uint32());break;case 4:n.contents=e.bytes();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FileAppendTransactionBody"},e}(),e.FileCreateTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 2:n.expirationTime=$root.proto.Timestamp.decode(e,e.uint32());break;case 3:n.keys=$root.proto.KeyList.decode(e,e.uint32());break;case 4:n.contents=e.bytes();break;case 5:n.shardID=$root.proto.ShardID.decode(e,e.uint32());break;case 6:n.realmID=$root.proto.RealmID.decode(e,e.uint32());break;case 7:n.newRealmAdminKey=$root.proto.Key.decode(e,e.uint32());break;case 8:n.memo=e.string();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FileCreateTransactionBody"},e}(),e.FileDeleteTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==2)n.fileID=$root.proto.FileID.decode(e,e.uint32());else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FileDeleteTransactionBody"},e}(),e.FileUpdateTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.fileID=$root.proto.FileID.decode(e,e.uint32());break;case 2:n.expirationTime=$root.proto.Timestamp.decode(e,e.uint32());break;case 3:n.keys=$root.proto.KeyList.decode(e,e.uint32());break;case 4:n.contents=e.bytes();break;case 5:n.memo=$root.google.protobuf.StringValue.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FileUpdateTransactionBody"},e}(),e.ContractDeleteTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.contractID=$root.proto.ContractID.decode(e,e.uint32());break;case 2:n.transferAccountID=$root.proto.AccountID.decode(e,e.uint32());break;case 3:n.transferContractID=$root.proto.ContractID.decode(e,e.uint32());break;case 4:n.permanentRemoval=e.bool();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractDeleteTransactionBody"},e}(),e.ConsensusCreateTopicTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.memo=e.string();break;case 2:n.adminKey=$root.proto.Key.decode(e,e.uint32());break;case 3:n.submitKey=$root.proto.Key.decode(e,e.uint32());break;case 6:n.autoRenewPeriod=$root.proto.Duration.decode(e,e.uint32());break;case 7:n.autoRenewAccount=$root.proto.AccountID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ConsensusCreateTopicTransactionBody"},e}(),e.ConsensusUpdateTopicTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.topicID=$root.proto.TopicID.decode(e,e.uint32());break;case 2:n.memo=$root.google.protobuf.StringValue.decode(e,e.uint32());break;case 4:n.expirationTime=$root.proto.Timestamp.decode(e,e.uint32());break;case 6:n.adminKey=$root.proto.Key.decode(e,e.uint32());break;case 7:n.submitKey=$root.proto.Key.decode(e,e.uint32());break;case 8:n.autoRenewPeriod=$root.proto.Duration.decode(e,e.uint32());break;case 9:n.autoRenewAccount=$root.proto.AccountID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ConsensusUpdateTopicTransactionBody"},e}(),e.ConsensusDeleteTopicTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==1)n.topicID=$root.proto.TopicID.decode(e,e.uint32());else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ConsensusDeleteTopicTransactionBody"},e}(),e.ConsensusMessageChunkInfo=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.initialTransactionID=$root.proto.TransactionID.decode(e,e.uint32());break;case 2:n.total=e.int32();break;case 3:n.number=e.int32();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ConsensusMessageChunkInfo"},e}(),e.ConsensusSubmitMessageTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.topicID=$root.proto.TopicID.decode(e,e.uint32());break;case 2:n.message=e.bytes();break;case 3:n.chunkInfo=$root.proto.ConsensusMessageChunkInfo.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ConsensusSubmitMessageTransactionBody"},e}(),e.UncheckedSubmitBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==1)n.transactionBytes=e.bytes();else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.UncheckedSubmitBody"},e}(),e.TokenCreateTransactionBody=function(){function e(e){if(this.customFees=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.name=e.string();break;case 2:n.symbol=e.string();break;case 3:n.decimals=e.uint32();break;case 4:n.initialSupply=e.uint64();break;case 5:n.treasury=$root.proto.AccountID.decode(e,e.uint32());break;case 6:n.adminKey=$root.proto.Key.decode(e,e.uint32());break;case 7:n.kycKey=$root.proto.Key.decode(e,e.uint32());break;case 8:n.freezeKey=$root.proto.Key.decode(e,e.uint32());break;case 9:n.wipeKey=$root.proto.Key.decode(e,e.uint32());break;case 10:n.supplyKey=$root.proto.Key.decode(e,e.uint32());break;case 11:n.freezeDefault=e.bool();break;case 13:n.expiry=$root.proto.Timestamp.decode(e,e.uint32());break;case 14:n.autoRenewAccount=$root.proto.AccountID.decode(e,e.uint32());break;case 15:n.autoRenewPeriod=$root.proto.Duration.decode(e,e.uint32());break;case 16:n.memo=e.string();break;case 17:n.tokenType=e.int32();break;case 18:n.supplyType=e.int32();break;case 19:n.maxSupply=e.int64();break;case 20:n.feeScheduleKey=$root.proto.Key.decode(e,e.uint32());break;case 21:n.customFees&&n.customFees.length||(n.customFees=[]),n.customFees.push($root.proto.CustomFee.decode(e,e.uint32()));break;case 22:n.pauseKey=$root.proto.Key.decode(e,e.uint32());break;case 23:n.metadata=e.bytes();break;case 24:n.metadataKey=$root.proto.Key.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenCreateTransactionBody"},e}(),e.FractionalFee=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.fractionalAmount=$root.proto.Fraction.decode(e,e.uint32());break;case 2:n.minimumAmount=e.int64();break;case 3:n.maximumAmount=e.int64();break;case 4:n.netOfTransfers=e.bool();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FractionalFee"},e}(),e.FixedFee=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.amount=e.int64();break;case 2:n.denominatingTokenId=$root.proto.TokenID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FixedFee"},e}(),e.RoyaltyFee=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.exchangeValueFraction=$root.proto.Fraction.decode(e,e.uint32());break;case 2:n.fallbackFee=$root.proto.FixedFee.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.RoyaltyFee"},e}(),e.CustomFee=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.fixedFee=$root.proto.FixedFee.decode(e,e.uint32());break;case 2:n.fractionalFee=$root.proto.FractionalFee.decode(e,e.uint32());break;case 4:n.royaltyFee=$root.proto.RoyaltyFee.decode(e,e.uint32());break;case 3:n.feeCollectorAccountId=$root.proto.AccountID.decode(e,e.uint32());break;case 5:n.allCollectorsAreExempt=e.bool();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CustomFee"},e}(),e.AssessedCustomFee=function(){function e(e){if(this.effectivePayerAccountId=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.amount=e.int64();break;case 2:n.tokenId=$root.proto.TokenID.decode(e,e.uint32());break;case 3:n.feeCollectorAccountId=$root.proto.AccountID.decode(e,e.uint32());break;case 4:n.effectivePayerAccountId&&n.effectivePayerAccountId.length||(n.effectivePayerAccountId=[]),n.effectivePayerAccountId.push($root.proto.AccountID.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.AssessedCustomFee"},e}(),e.TokenFreezeAccountTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.token=$root.proto.TokenID.decode(e,e.uint32());break;case 2:n.account=$root.proto.AccountID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenFreezeAccountTransactionBody"},e}(),e.TokenUnfreezeAccountTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.token=$root.proto.TokenID.decode(e,e.uint32());break;case 2:n.account=$root.proto.AccountID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenUnfreezeAccountTransactionBody"},e}(),e.TokenGrantKycTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.token=$root.proto.TokenID.decode(e,e.uint32());break;case 2:n.account=$root.proto.AccountID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenGrantKycTransactionBody"},e}(),e.TokenRevokeKycTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.token=$root.proto.TokenID.decode(e,e.uint32());break;case 2:n.account=$root.proto.AccountID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenRevokeKycTransactionBody"},e}(),e.TokenDeleteTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==1)n.token=$root.proto.TokenID.decode(e,e.uint32());else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenDeleteTransactionBody"},e}(),e.TokenUpdateTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.token=$root.proto.TokenID.decode(e,e.uint32());break;case 2:n.symbol=e.string();break;case 3:n.name=e.string();break;case 4:n.treasury=$root.proto.AccountID.decode(e,e.uint32());break;case 5:n.adminKey=$root.proto.Key.decode(e,e.uint32());break;case 6:n.kycKey=$root.proto.Key.decode(e,e.uint32());break;case 7:n.freezeKey=$root.proto.Key.decode(e,e.uint32());break;case 8:n.wipeKey=$root.proto.Key.decode(e,e.uint32());break;case 9:n.supplyKey=$root.proto.Key.decode(e,e.uint32());break;case 10:n.autoRenewAccount=$root.proto.AccountID.decode(e,e.uint32());break;case 11:n.autoRenewPeriod=$root.proto.Duration.decode(e,e.uint32());break;case 12:n.expiry=$root.proto.Timestamp.decode(e,e.uint32());break;case 13:n.memo=$root.google.protobuf.StringValue.decode(e,e.uint32());break;case 14:n.feeScheduleKey=$root.proto.Key.decode(e,e.uint32());break;case 15:n.pauseKey=$root.proto.Key.decode(e,e.uint32());break;case 16:n.metadata=$root.google.protobuf.BytesValue.decode(e,e.uint32());break;case 17:n.metadataKey=$root.proto.Key.decode(e,e.uint32());break;case 18:n.keyVerificationMode=e.int32();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenUpdateTransactionBody"},e}(),e.TokenMintTransactionBody=function(){function e(e){if(this.metadata=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.token=$root.proto.TokenID.decode(e,e.uint32());break;case 2:n.amount=e.uint64();break;case 3:n.metadata&&n.metadata.length||(n.metadata=[]),n.metadata.push(e.bytes());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenMintTransactionBody"},e}(),e.TokenBurnTransactionBody=function(){function e(e){if(this.serialNumbers=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.token=$root.proto.TokenID.decode(e,e.uint32());break;case 2:n.amount=e.uint64();break;case 3:if(n.serialNumbers&&n.serialNumbers.length||(n.serialNumbers=[]),2==(7&o))for(var i=e.uint32()+e.pos;e.pos>>3){case 1:n.token=$root.proto.TokenID.decode(e,e.uint32());break;case 2:n.account=$root.proto.AccountID.decode(e,e.uint32());break;case 3:n.amount=e.uint64();break;case 4:if(n.serialNumbers&&n.serialNumbers.length||(n.serialNumbers=[]),2==(7&o))for(var i=e.uint32()+e.pos;e.pos>>3){case 1:n.account=$root.proto.AccountID.decode(e,e.uint32());break;case 2:n.tokens&&n.tokens.length||(n.tokens=[]),n.tokens.push($root.proto.TokenID.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenAssociateTransactionBody"},e}(),e.TokenDissociateTransactionBody=function(){function e(e){if(this.tokens=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.account=$root.proto.AccountID.decode(e,e.uint32());break;case 2:n.tokens&&n.tokens.length||(n.tokens=[]),n.tokens.push($root.proto.TokenID.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenDissociateTransactionBody"},e}(),e.TokenFeeScheduleUpdateTransactionBody=function(){function e(e){if(this.customFees=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.tokenId=$root.proto.TokenID.decode(e,e.uint32());break;case 2:n.customFees&&n.customFees.length||(n.customFees=[]),n.customFees.push($root.proto.CustomFee.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenFeeScheduleUpdateTransactionBody"},e}(),e.TokenPauseTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==1)n.token=$root.proto.TokenID.decode(e,e.uint32());else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenPauseTransactionBody"},e}(),e.TokenUnpauseTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==1)n.token=$root.proto.TokenID.decode(e,e.uint32());else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenUnpauseTransactionBody"},e}(),e.TokenUpdateNftsTransactionBody=function(){function e(e){if(this.serialNumbers=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.token=$root.proto.TokenID.decode(e,e.uint32());break;case 2:if(n.serialNumbers&&n.serialNumbers.length||(n.serialNumbers=[]),2==(7&o))for(var i=e.uint32()+e.pos;e.pos>>3){case 1:n.owner=$root.proto.AccountID.decode(e,e.uint32());break;case 2:n.rejections&&n.rejections.length||(n.rejections=[]),n.rejections.push($root.proto.TokenReference.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenRejectTransactionBody"},e}(),e.TokenReference=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.fungibleToken=$root.proto.TokenID.decode(e,e.uint32());break;case 2:n.nft=$root.proto.NftID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenReference"},e}(),e.TokenAirdropTransactionBody=function(){function e(e){if(this.tokenTransfers=[],e)for(var t=Object.keys(e),r=0;r>>3==1)n.tokenTransfers&&n.tokenTransfers.length||(n.tokenTransfers=[]),n.tokenTransfers.push($root.proto.TokenTransferList.decode(e,e.uint32()));else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenAirdropTransactionBody"},e}(),e.TokenCancelAirdropTransactionBody=function(){function e(e){if(this.pendingAirdrops=[],e)for(var t=Object.keys(e),r=0;r>>3==1)n.pendingAirdrops&&n.pendingAirdrops.length||(n.pendingAirdrops=[]),n.pendingAirdrops.push($root.proto.PendingAirdropId.decode(e,e.uint32()));else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenCancelAirdropTransactionBody"},e}(),e.TokenClaimAirdropTransactionBody=function(){function e(e){if(this.pendingAirdrops=[],e)for(var t=Object.keys(e),r=0;r>>3==1)n.pendingAirdrops&&n.pendingAirdrops.length||(n.pendingAirdrops=[]),n.pendingAirdrops.push($root.proto.PendingAirdropId.decode(e,e.uint32()));else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenClaimAirdropTransactionBody"},e}(),e.ScheduleCreateTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.scheduledTransactionBody=$root.proto.SchedulableTransactionBody.decode(e,e.uint32());break;case 2:n.memo=e.string();break;case 3:n.adminKey=$root.proto.Key.decode(e,e.uint32());break;case 4:n.payerAccountID=$root.proto.AccountID.decode(e,e.uint32());break;case 5:n.expirationTime=$root.proto.Timestamp.decode(e,e.uint32());break;case 13:n.waitForExpiry=e.bool();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ScheduleCreateTransactionBody"},e}(),e.SchedulableTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.transactionFee=e.uint64();break;case 2:n.memo=e.string();break;case 3:n.contractCall=$root.proto.ContractCallTransactionBody.decode(e,e.uint32());break;case 4:n.contractCreateInstance=$root.proto.ContractCreateTransactionBody.decode(e,e.uint32());break;case 5:n.contractUpdateInstance=$root.proto.ContractUpdateTransactionBody.decode(e,e.uint32());break;case 6:n.contractDeleteInstance=$root.proto.ContractDeleteTransactionBody.decode(e,e.uint32());break;case 37:n.cryptoApproveAllowance=$root.proto.CryptoApproveAllowanceTransactionBody.decode(e,e.uint32());break;case 38:n.cryptoDeleteAllowance=$root.proto.CryptoDeleteAllowanceTransactionBody.decode(e,e.uint32());break;case 7:n.cryptoCreateAccount=$root.proto.CryptoCreateTransactionBody.decode(e,e.uint32());break;case 8:n.cryptoDelete=$root.proto.CryptoDeleteTransactionBody.decode(e,e.uint32());break;case 9:n.cryptoTransfer=$root.proto.CryptoTransferTransactionBody.decode(e,e.uint32());break;case 10:n.cryptoUpdateAccount=$root.proto.CryptoUpdateTransactionBody.decode(e,e.uint32());break;case 11:n.fileAppend=$root.proto.FileAppendTransactionBody.decode(e,e.uint32());break;case 12:n.fileCreate=$root.proto.FileCreateTransactionBody.decode(e,e.uint32());break;case 13:n.fileDelete=$root.proto.FileDeleteTransactionBody.decode(e,e.uint32());break;case 14:n.fileUpdate=$root.proto.FileUpdateTransactionBody.decode(e,e.uint32());break;case 15:n.systemDelete=$root.proto.SystemDeleteTransactionBody.decode(e,e.uint32());break;case 16:n.systemUndelete=$root.proto.SystemUndeleteTransactionBody.decode(e,e.uint32());break;case 17:n.freeze=$root.proto.FreezeTransactionBody.decode(e,e.uint32());break;case 18:n.consensusCreateTopic=$root.proto.ConsensusCreateTopicTransactionBody.decode(e,e.uint32());break;case 19:n.consensusUpdateTopic=$root.proto.ConsensusUpdateTopicTransactionBody.decode(e,e.uint32());break;case 20:n.consensusDeleteTopic=$root.proto.ConsensusDeleteTopicTransactionBody.decode(e,e.uint32());break;case 21:n.consensusSubmitMessage=$root.proto.ConsensusSubmitMessageTransactionBody.decode(e,e.uint32());break;case 22:n.tokenCreation=$root.proto.TokenCreateTransactionBody.decode(e,e.uint32());break;case 23:n.tokenFreeze=$root.proto.TokenFreezeAccountTransactionBody.decode(e,e.uint32());break;case 24:n.tokenUnfreeze=$root.proto.TokenUnfreezeAccountTransactionBody.decode(e,e.uint32());break;case 25:n.tokenGrantKyc=$root.proto.TokenGrantKycTransactionBody.decode(e,e.uint32());break;case 26:n.tokenRevokeKyc=$root.proto.TokenRevokeKycTransactionBody.decode(e,e.uint32());break;case 27:n.tokenDeletion=$root.proto.TokenDeleteTransactionBody.decode(e,e.uint32());break;case 28:n.tokenUpdate=$root.proto.TokenUpdateTransactionBody.decode(e,e.uint32());break;case 29:n.tokenMint=$root.proto.TokenMintTransactionBody.decode(e,e.uint32());break;case 30:n.tokenBurn=$root.proto.TokenBurnTransactionBody.decode(e,e.uint32());break;case 31:n.tokenWipe=$root.proto.TokenWipeAccountTransactionBody.decode(e,e.uint32());break;case 32:n.tokenAssociate=$root.proto.TokenAssociateTransactionBody.decode(e,e.uint32());break;case 33:n.tokenDissociate=$root.proto.TokenDissociateTransactionBody.decode(e,e.uint32());break;case 39:n.tokenFeeScheduleUpdate=$root.proto.TokenFeeScheduleUpdateTransactionBody.decode(e,e.uint32());break;case 35:n.tokenPause=$root.proto.TokenPauseTransactionBody.decode(e,e.uint32());break;case 36:n.tokenUnpause=$root.proto.TokenUnpauseTransactionBody.decode(e,e.uint32());break;case 34:n.scheduleDelete=$root.proto.ScheduleDeleteTransactionBody.decode(e,e.uint32());break;case 40:n.utilPrng=$root.proto.UtilPrngTransactionBody.decode(e,e.uint32());break;case 41:n.tokenUpdateNfts=$root.proto.TokenUpdateNftsTransactionBody.decode(e,e.uint32());break;case 42:n.nodeCreate=$root.com.hedera.hapi.node.addressbook.NodeCreateTransactionBody.decode(e,e.uint32());break;case 43:n.nodeUpdate=$root.com.hedera.hapi.node.addressbook.NodeUpdateTransactionBody.decode(e,e.uint32());break;case 44:n.nodeDelete=$root.com.hedera.hapi.node.addressbook.NodeDeleteTransactionBody.decode(e,e.uint32());break;case 45:n.tokenReject=$root.proto.TokenRejectTransactionBody.decode(e,e.uint32());break;case 46:n.tokenCancelAirdrop=$root.proto.TokenCancelAirdropTransactionBody.decode(e,e.uint32());break;case 47:n.tokenClaimAirdrop=$root.proto.TokenClaimAirdropTransactionBody.decode(e,e.uint32());break;case 48:n.tokenAirdrop=$root.proto.TokenAirdropTransactionBody.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.SchedulableTransactionBody"},e}(),e.ScheduleDeleteTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==1)n.scheduleID=$root.proto.ScheduleID.decode(e,e.uint32());else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ScheduleDeleteTransactionBody"},e}(),e.UtilPrngTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==1)n.range=e.int32();else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.UtilPrngTransactionBody"},e}(),e.ScheduleSignTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==1)n.scheduleID=$root.proto.ScheduleID.decode(e,e.uint32());else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ScheduleSignTransactionBody"},e}(),e.NodeStakeUpdateTransactionBody=function(){function e(e){if(this.nodeStake=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.endOfStakingPeriod=$root.proto.Timestamp.decode(e,e.uint32());break;case 2:n.nodeStake&&n.nodeStake.length||(n.nodeStake=[]),n.nodeStake.push($root.proto.NodeStake.decode(e,e.uint32()));break;case 3:n.maxStakingRewardRatePerHbar=e.int64();break;case 4:n.nodeRewardFeeFraction=$root.proto.Fraction.decode(e,e.uint32());break;case 5:n.stakingPeriodsStored=e.int64();break;case 6:n.stakingPeriod=e.int64();break;case 7:n.stakingRewardFeeFraction=$root.proto.Fraction.decode(e,e.uint32());break;case 8:n.stakingStartThreshold=e.int64();break;case 9:n.stakingRewardRate=e.int64();break;case 10:n.reservedStakingRewards=e.int64();break;case 11:n.unreservedStakingRewardBalance=e.int64();break;case 12:n.rewardBalanceThreshold=e.int64();break;case 13:n.maxStakeRewarded=e.int64();break;case 14:n.maxTotalReward=e.int64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.NodeStakeUpdateTransactionBody"},e}(),e.NodeStake=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.maxStake=e.int64();break;case 2:n.minStake=e.int64();break;case 3:n.nodeId=e.int64();break;case 4:n.rewardRate=e.int64();break;case 5:n.stake=e.int64();break;case 6:n.stakeNotRewarded=e.int64();break;case 7:n.stakeRewarded=e.int64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.NodeStake"},e}(),e.ResponseHeader=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.nodeTransactionPrecheckCode=e.int32();break;case 2:n.responseType=e.int32();break;case 3:n.cost=e.uint64();break;case 4:n.stateProof=e.bytes();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ResponseHeader"},e}(),e.ResponseCodeEnum=function(){const e={},t=Object.create(e);return t[e[0]="OK"]=0,t[e[1]="INVALID_TRANSACTION"]=1,t[e[2]="PAYER_ACCOUNT_NOT_FOUND"]=2,t[e[3]="INVALID_NODE_ACCOUNT"]=3,t[e[4]="TRANSACTION_EXPIRED"]=4,t[e[5]="INVALID_TRANSACTION_START"]=5,t[e[6]="INVALID_TRANSACTION_DURATION"]=6,t[e[7]="INVALID_SIGNATURE"]=7,t[e[8]="MEMO_TOO_LONG"]=8,t[e[9]="INSUFFICIENT_TX_FEE"]=9,t[e[10]="INSUFFICIENT_PAYER_BALANCE"]=10,t[e[11]="DUPLICATE_TRANSACTION"]=11,t[e[12]="BUSY"]=12,t[e[13]="NOT_SUPPORTED"]=13,t[e[14]="INVALID_FILE_ID"]=14,t[e[15]="INVALID_ACCOUNT_ID"]=15,t[e[16]="INVALID_CONTRACT_ID"]=16,t[e[17]="INVALID_TRANSACTION_ID"]=17,t[e[18]="RECEIPT_NOT_FOUND"]=18,t[e[19]="RECORD_NOT_FOUND"]=19,t[e[20]="INVALID_SOLIDITY_ID"]=20,t[e[21]="UNKNOWN"]=21,t[e[22]="SUCCESS"]=22,t[e[23]="FAIL_INVALID"]=23,t[e[24]="FAIL_FEE"]=24,t[e[25]="FAIL_BALANCE"]=25,t[e[26]="KEY_REQUIRED"]=26,t[e[27]="BAD_ENCODING"]=27,t[e[28]="INSUFFICIENT_ACCOUNT_BALANCE"]=28,t[e[29]="INVALID_SOLIDITY_ADDRESS"]=29,t[e[30]="INSUFFICIENT_GAS"]=30,t[e[31]="CONTRACT_SIZE_LIMIT_EXCEEDED"]=31,t[e[32]="LOCAL_CALL_MODIFICATION_EXCEPTION"]=32,t[e[33]="CONTRACT_REVERT_EXECUTED"]=33,t[e[34]="CONTRACT_EXECUTION_EXCEPTION"]=34,t[e[35]="INVALID_RECEIVING_NODE_ACCOUNT"]=35,t[e[36]="MISSING_QUERY_HEADER"]=36,t[e[37]="ACCOUNT_UPDATE_FAILED"]=37,t[e[38]="INVALID_KEY_ENCODING"]=38,t[e[39]="NULL_SOLIDITY_ADDRESS"]=39,t[e[40]="CONTRACT_UPDATE_FAILED"]=40,t[e[41]="INVALID_QUERY_HEADER"]=41,t[e[42]="INVALID_FEE_SUBMITTED"]=42,t[e[43]="INVALID_PAYER_SIGNATURE"]=43,t[e[44]="KEY_NOT_PROVIDED"]=44,t[e[45]="INVALID_EXPIRATION_TIME"]=45,t[e[46]="NO_WACL_KEY"]=46,t[e[47]="FILE_CONTENT_EMPTY"]=47,t[e[48]="INVALID_ACCOUNT_AMOUNTS"]=48,t[e[49]="EMPTY_TRANSACTION_BODY"]=49,t[e[50]="INVALID_TRANSACTION_BODY"]=50,t[e[51]="INVALID_SIGNATURE_TYPE_MISMATCHING_KEY"]=51,t[e[52]="INVALID_SIGNATURE_COUNT_MISMATCHING_KEY"]=52,t[e[53]="EMPTY_LIVE_HASH_BODY"]=53,t[e[54]="EMPTY_LIVE_HASH"]=54,t[e[55]="EMPTY_LIVE_HASH_KEYS"]=55,t[e[56]="INVALID_LIVE_HASH_SIZE"]=56,t[e[57]="EMPTY_QUERY_BODY"]=57,t[e[58]="EMPTY_LIVE_HASH_QUERY"]=58,t[e[59]="LIVE_HASH_NOT_FOUND"]=59,t[e[60]="ACCOUNT_ID_DOES_NOT_EXIST"]=60,t[e[61]="LIVE_HASH_ALREADY_EXISTS"]=61,t[e[62]="INVALID_FILE_WACL"]=62,t[e[63]="SERIALIZATION_FAILED"]=63,t[e[64]="TRANSACTION_OVERSIZE"]=64,t[e[65]="TRANSACTION_TOO_MANY_LAYERS"]=65,t[e[66]="CONTRACT_DELETED"]=66,t[e[67]="PLATFORM_NOT_ACTIVE"]=67,t[e[68]="KEY_PREFIX_MISMATCH"]=68,t[e[69]="PLATFORM_TRANSACTION_NOT_CREATED"]=69,t[e[70]="INVALID_RENEWAL_PERIOD"]=70,t[e[71]="INVALID_PAYER_ACCOUNT_ID"]=71,t[e[72]="ACCOUNT_DELETED"]=72,t[e[73]="FILE_DELETED"]=73,t[e[74]="ACCOUNT_REPEATED_IN_ACCOUNT_AMOUNTS"]=74,t[e[75]="SETTING_NEGATIVE_ACCOUNT_BALANCE"]=75,t[e[76]="OBTAINER_REQUIRED"]=76,t[e[77]="OBTAINER_SAME_CONTRACT_ID"]=77,t[e[78]="OBTAINER_DOES_NOT_EXIST"]=78,t[e[79]="MODIFYING_IMMUTABLE_CONTRACT"]=79,t[e[80]="FILE_SYSTEM_EXCEPTION"]=80,t[e[81]="AUTORENEW_DURATION_NOT_IN_RANGE"]=81,t[e[82]="ERROR_DECODING_BYTESTRING"]=82,t[e[83]="CONTRACT_FILE_EMPTY"]=83,t[e[84]="CONTRACT_BYTECODE_EMPTY"]=84,t[e[85]="INVALID_INITIAL_BALANCE"]=85,t[e[86]="INVALID_RECEIVE_RECORD_THRESHOLD"]=86,t[e[87]="INVALID_SEND_RECORD_THRESHOLD"]=87,t[e[88]="ACCOUNT_IS_NOT_GENESIS_ACCOUNT"]=88,t[e[89]="PAYER_ACCOUNT_UNAUTHORIZED"]=89,t[e[90]="INVALID_FREEZE_TRANSACTION_BODY"]=90,t[e[91]="FREEZE_TRANSACTION_BODY_NOT_FOUND"]=91,t[e[92]="TRANSFER_LIST_SIZE_LIMIT_EXCEEDED"]=92,t[e[93]="RESULT_SIZE_LIMIT_EXCEEDED"]=93,t[e[94]="NOT_SPECIAL_ACCOUNT"]=94,t[e[95]="CONTRACT_NEGATIVE_GAS"]=95,t[e[96]="CONTRACT_NEGATIVE_VALUE"]=96,t[e[97]="INVALID_FEE_FILE"]=97,t[e[98]="INVALID_EXCHANGE_RATE_FILE"]=98,t[e[99]="INSUFFICIENT_LOCAL_CALL_GAS"]=99,t[e[100]="ENTITY_NOT_ALLOWED_TO_DELETE"]=100,t[e[101]="AUTHORIZATION_FAILED"]=101,t[e[102]="FILE_UPLOADED_PROTO_INVALID"]=102,t[e[103]="FILE_UPLOADED_PROTO_NOT_SAVED_TO_DISK"]=103,t[e[104]="FEE_SCHEDULE_FILE_PART_UPLOADED"]=104,t[e[105]="EXCHANGE_RATE_CHANGE_LIMIT_EXCEEDED"]=105,t[e[106]="MAX_CONTRACT_STORAGE_EXCEEDED"]=106,t[e[107]="TRANSFER_ACCOUNT_SAME_AS_DELETE_ACCOUNT"]=107,t[e[108]="TOTAL_LEDGER_BALANCE_INVALID"]=108,t[e[110]="EXPIRATION_REDUCTION_NOT_ALLOWED"]=110,t[e[111]="MAX_GAS_LIMIT_EXCEEDED"]=111,t[e[112]="MAX_FILE_SIZE_EXCEEDED"]=112,t[e[113]="RECEIVER_SIG_REQUIRED"]=113,t[e[150]="INVALID_TOPIC_ID"]=150,t[e[155]="INVALID_ADMIN_KEY"]=155,t[e[156]="INVALID_SUBMIT_KEY"]=156,t[e[157]="UNAUTHORIZED"]=157,t[e[158]="INVALID_TOPIC_MESSAGE"]=158,t[e[159]="INVALID_AUTORENEW_ACCOUNT"]=159,t[e[160]="AUTORENEW_ACCOUNT_NOT_ALLOWED"]=160,t[e[162]="TOPIC_EXPIRED"]=162,t[e[163]="INVALID_CHUNK_NUMBER"]=163,t[e[164]="INVALID_CHUNK_TRANSACTION_ID"]=164,t[e[165]="ACCOUNT_FROZEN_FOR_TOKEN"]=165,t[e[166]="TOKENS_PER_ACCOUNT_LIMIT_EXCEEDED"]=166,t[e[167]="INVALID_TOKEN_ID"]=167,t[e[168]="INVALID_TOKEN_DECIMALS"]=168,t[e[169]="INVALID_TOKEN_INITIAL_SUPPLY"]=169,t[e[170]="INVALID_TREASURY_ACCOUNT_FOR_TOKEN"]=170,t[e[171]="INVALID_TOKEN_SYMBOL"]=171,t[e[172]="TOKEN_HAS_NO_FREEZE_KEY"]=172,t[e[173]="TRANSFERS_NOT_ZERO_SUM_FOR_TOKEN"]=173,t[e[174]="MISSING_TOKEN_SYMBOL"]=174,t[e[175]="TOKEN_SYMBOL_TOO_LONG"]=175,t[e[176]="ACCOUNT_KYC_NOT_GRANTED_FOR_TOKEN"]=176,t[e[177]="TOKEN_HAS_NO_KYC_KEY"]=177,t[e[178]="INSUFFICIENT_TOKEN_BALANCE"]=178,t[e[179]="TOKEN_WAS_DELETED"]=179,t[e[180]="TOKEN_HAS_NO_SUPPLY_KEY"]=180,t[e[181]="TOKEN_HAS_NO_WIPE_KEY"]=181,t[e[182]="INVALID_TOKEN_MINT_AMOUNT"]=182,t[e[183]="INVALID_TOKEN_BURN_AMOUNT"]=183,t[e[184]="TOKEN_NOT_ASSOCIATED_TO_ACCOUNT"]=184,t[e[185]="CANNOT_WIPE_TOKEN_TREASURY_ACCOUNT"]=185,t[e[186]="INVALID_KYC_KEY"]=186,t[e[187]="INVALID_WIPE_KEY"]=187,t[e[188]="INVALID_FREEZE_KEY"]=188,t[e[189]="INVALID_SUPPLY_KEY"]=189,t[e[190]="MISSING_TOKEN_NAME"]=190,t[e[191]="TOKEN_NAME_TOO_LONG"]=191,t[e[192]="INVALID_WIPING_AMOUNT"]=192,t[e[193]="TOKEN_IS_IMMUTABLE"]=193,t[e[194]="TOKEN_ALREADY_ASSOCIATED_TO_ACCOUNT"]=194,t[e[195]="TRANSACTION_REQUIRES_ZERO_TOKEN_BALANCES"]=195,t[e[196]="ACCOUNT_IS_TREASURY"]=196,t[e[197]="TOKEN_ID_REPEATED_IN_TOKEN_LIST"]=197,t[e[198]="TOKEN_TRANSFER_LIST_SIZE_LIMIT_EXCEEDED"]=198,t[e[199]="EMPTY_TOKEN_TRANSFER_BODY"]=199,t[e[200]="EMPTY_TOKEN_TRANSFER_ACCOUNT_AMOUNTS"]=200,t[e[201]="INVALID_SCHEDULE_ID"]=201,t[e[202]="SCHEDULE_IS_IMMUTABLE"]=202,t[e[203]="INVALID_SCHEDULE_PAYER_ID"]=203,t[e[204]="INVALID_SCHEDULE_ACCOUNT_ID"]=204,t[e[205]="NO_NEW_VALID_SIGNATURES"]=205,t[e[206]="UNRESOLVABLE_REQUIRED_SIGNERS"]=206,t[e[207]="SCHEDULED_TRANSACTION_NOT_IN_WHITELIST"]=207,t[e[208]="SOME_SIGNATURES_WERE_INVALID"]=208,t[e[209]="TRANSACTION_ID_FIELD_NOT_ALLOWED"]=209,t[e[210]="IDENTICAL_SCHEDULE_ALREADY_CREATED"]=210,t[e[211]="INVALID_ZERO_BYTE_IN_STRING"]=211,t[e[212]="SCHEDULE_ALREADY_DELETED"]=212,t[e[213]="SCHEDULE_ALREADY_EXECUTED"]=213,t[e[214]="MESSAGE_SIZE_TOO_LARGE"]=214,t[e[215]="OPERATION_REPEATED_IN_BUCKET_GROUPS"]=215,t[e[216]="BUCKET_CAPACITY_OVERFLOW"]=216,t[e[217]="NODE_CAPACITY_NOT_SUFFICIENT_FOR_OPERATION"]=217,t[e[218]="BUCKET_HAS_NO_THROTTLE_GROUPS"]=218,t[e[219]="THROTTLE_GROUP_HAS_ZERO_OPS_PER_SEC"]=219,t[e[220]="SUCCESS_BUT_MISSING_EXPECTED_OPERATION"]=220,t[e[221]="UNPARSEABLE_THROTTLE_DEFINITIONS"]=221,t[e[222]="INVALID_THROTTLE_DEFINITIONS"]=222,t[e[223]="ACCOUNT_EXPIRED_AND_PENDING_REMOVAL"]=223,t[e[224]="INVALID_TOKEN_MAX_SUPPLY"]=224,t[e[225]="INVALID_TOKEN_NFT_SERIAL_NUMBER"]=225,t[e[226]="INVALID_NFT_ID"]=226,t[e[227]="METADATA_TOO_LONG"]=227,t[e[228]="BATCH_SIZE_LIMIT_EXCEEDED"]=228,t[e[229]="INVALID_QUERY_RANGE"]=229,t[e[230]="FRACTION_DIVIDES_BY_ZERO"]=230,t[e[231]="INSUFFICIENT_PAYER_BALANCE_FOR_CUSTOM_FEE"]=231,t[e[232]="CUSTOM_FEES_LIST_TOO_LONG"]=232,t[e[233]="INVALID_CUSTOM_FEE_COLLECTOR"]=233,t[e[234]="INVALID_TOKEN_ID_IN_CUSTOM_FEES"]=234,t[e[235]="TOKEN_NOT_ASSOCIATED_TO_FEE_COLLECTOR"]=235,t[e[236]="TOKEN_MAX_SUPPLY_REACHED"]=236,t[e[237]="SENDER_DOES_NOT_OWN_NFT_SERIAL_NO"]=237,t[e[238]="CUSTOM_FEE_NOT_FULLY_SPECIFIED"]=238,t[e[239]="CUSTOM_FEE_MUST_BE_POSITIVE"]=239,t[e[240]="TOKEN_HAS_NO_FEE_SCHEDULE_KEY"]=240,t[e[241]="CUSTOM_FEE_OUTSIDE_NUMERIC_RANGE"]=241,t[e[242]="ROYALTY_FRACTION_CANNOT_EXCEED_ONE"]=242,t[e[243]="FRACTIONAL_FEE_MAX_AMOUNT_LESS_THAN_MIN_AMOUNT"]=243,t[e[244]="CUSTOM_SCHEDULE_ALREADY_HAS_NO_FEES"]=244,t[e[245]="CUSTOM_FEE_DENOMINATION_MUST_BE_FUNGIBLE_COMMON"]=245,t[e[246]="CUSTOM_FRACTIONAL_FEE_ONLY_ALLOWED_FOR_FUNGIBLE_COMMON"]=246,t[e[247]="INVALID_CUSTOM_FEE_SCHEDULE_KEY"]=247,t[e[248]="INVALID_TOKEN_MINT_METADATA"]=248,t[e[249]="INVALID_TOKEN_BURN_METADATA"]=249,t[e[250]="CURRENT_TREASURY_STILL_OWNS_NFTS"]=250,t[e[251]="ACCOUNT_STILL_OWNS_NFTS"]=251,t[e[252]="TREASURY_MUST_OWN_BURNED_NFT"]=252,t[e[253]="ACCOUNT_DOES_NOT_OWN_WIPED_NFT"]=253,t[e[254]="ACCOUNT_AMOUNT_TRANSFERS_ONLY_ALLOWED_FOR_FUNGIBLE_COMMON"]=254,t[e[255]="MAX_NFTS_IN_PRICE_REGIME_HAVE_BEEN_MINTED"]=255,t[e[256]="PAYER_ACCOUNT_DELETED"]=256,t[e[257]="CUSTOM_FEE_CHARGING_EXCEEDED_MAX_RECURSION_DEPTH"]=257,t[e[258]="CUSTOM_FEE_CHARGING_EXCEEDED_MAX_ACCOUNT_AMOUNTS"]=258,t[e[259]="INSUFFICIENT_SENDER_ACCOUNT_BALANCE_FOR_CUSTOM_FEE"]=259,t[e[260]="SERIAL_NUMBER_LIMIT_REACHED"]=260,t[e[261]="CUSTOM_ROYALTY_FEE_ONLY_ALLOWED_FOR_NON_FUNGIBLE_UNIQUE"]=261,t[e[262]="NO_REMAINING_AUTOMATIC_ASSOCIATIONS"]=262,t[e[263]="EXISTING_AUTOMATIC_ASSOCIATIONS_EXCEED_GIVEN_LIMIT"]=263,t[e[264]="REQUESTED_NUM_AUTOMATIC_ASSOCIATIONS_EXCEEDS_ASSOCIATION_LIMIT"]=264,t[e[265]="TOKEN_IS_PAUSED"]=265,t[e[266]="TOKEN_HAS_NO_PAUSE_KEY"]=266,t[e[267]="INVALID_PAUSE_KEY"]=267,t[e[268]="FREEZE_UPDATE_FILE_DOES_NOT_EXIST"]=268,t[e[269]="FREEZE_UPDATE_FILE_HASH_DOES_NOT_MATCH"]=269,t[e[270]="NO_UPGRADE_HAS_BEEN_PREPARED"]=270,t[e[271]="NO_FREEZE_IS_SCHEDULED"]=271,t[e[272]="UPDATE_FILE_HASH_CHANGED_SINCE_PREPARE_UPGRADE"]=272,t[e[273]="FREEZE_START_TIME_MUST_BE_FUTURE"]=273,t[e[274]="PREPARED_UPDATE_FILE_IS_IMMUTABLE"]=274,t[e[275]="FREEZE_ALREADY_SCHEDULED"]=275,t[e[276]="FREEZE_UPGRADE_IN_PROGRESS"]=276,t[e[277]="UPDATE_FILE_ID_DOES_NOT_MATCH_PREPARED"]=277,t[e[278]="UPDATE_FILE_HASH_DOES_NOT_MATCH_PREPARED"]=278,t[e[279]="CONSENSUS_GAS_EXHAUSTED"]=279,t[e[280]="REVERTED_SUCCESS"]=280,t[e[281]="MAX_STORAGE_IN_PRICE_REGIME_HAS_BEEN_USED"]=281,t[e[282]="INVALID_ALIAS_KEY"]=282,t[e[283]="UNEXPECTED_TOKEN_DECIMALS"]=283,t[e[284]="INVALID_PROXY_ACCOUNT_ID"]=284,t[e[285]="INVALID_TRANSFER_ACCOUNT_ID"]=285,t[e[286]="INVALID_FEE_COLLECTOR_ACCOUNT_ID"]=286,t[e[287]="ALIAS_IS_IMMUTABLE"]=287,t[e[288]="SPENDER_ACCOUNT_SAME_AS_OWNER"]=288,t[e[289]="AMOUNT_EXCEEDS_TOKEN_MAX_SUPPLY"]=289,t[e[290]="NEGATIVE_ALLOWANCE_AMOUNT"]=290,t[e[291]="CANNOT_APPROVE_FOR_ALL_FUNGIBLE_COMMON"]=291,t[e[292]="SPENDER_DOES_NOT_HAVE_ALLOWANCE"]=292,t[e[293]="AMOUNT_EXCEEDS_ALLOWANCE"]=293,t[e[294]="MAX_ALLOWANCES_EXCEEDED"]=294,t[e[295]="EMPTY_ALLOWANCES"]=295,t[e[296]="SPENDER_ACCOUNT_REPEATED_IN_ALLOWANCES"]=296,t[e[297]="REPEATED_SERIAL_NUMS_IN_NFT_ALLOWANCES"]=297,t[e[298]="FUNGIBLE_TOKEN_IN_NFT_ALLOWANCES"]=298,t[e[299]="NFT_IN_FUNGIBLE_TOKEN_ALLOWANCES"]=299,t[e[300]="INVALID_ALLOWANCE_OWNER_ID"]=300,t[e[301]="INVALID_ALLOWANCE_SPENDER_ID"]=301,t[e[302]="REPEATED_ALLOWANCES_TO_DELETE"]=302,t[e[303]="INVALID_DELEGATING_SPENDER"]=303,t[e[304]="DELEGATING_SPENDER_CANNOT_GRANT_APPROVE_FOR_ALL"]=304,t[e[305]="DELEGATING_SPENDER_DOES_NOT_HAVE_APPROVE_FOR_ALL"]=305,t[e[306]="SCHEDULE_EXPIRATION_TIME_TOO_FAR_IN_FUTURE"]=306,t[e[307]="SCHEDULE_EXPIRATION_TIME_MUST_BE_HIGHER_THAN_CONSENSUS_TIME"]=307,t[e[308]="SCHEDULE_FUTURE_THROTTLE_EXCEEDED"]=308,t[e[309]="SCHEDULE_FUTURE_GAS_LIMIT_EXCEEDED"]=309,t[e[310]="INVALID_ETHEREUM_TRANSACTION"]=310,t[e[311]="WRONG_CHAIN_ID"]=311,t[e[312]="WRONG_NONCE"]=312,t[e[313]="ACCESS_LIST_UNSUPPORTED"]=313,t[e[314]="SCHEDULE_PENDING_EXPIRATION"]=314,t[e[315]="CONTRACT_IS_TOKEN_TREASURY"]=315,t[e[316]="CONTRACT_HAS_NON_ZERO_TOKEN_BALANCES"]=316,t[e[317]="CONTRACT_EXPIRED_AND_PENDING_REMOVAL"]=317,t[e[318]="CONTRACT_HAS_NO_AUTO_RENEW_ACCOUNT"]=318,t[e[319]="PERMANENT_REMOVAL_REQUIRES_SYSTEM_INITIATION"]=319,t[e[320]="PROXY_ACCOUNT_ID_FIELD_IS_DEPRECATED"]=320,t[e[321]="SELF_STAKING_IS_NOT_ALLOWED"]=321,t[e[322]="INVALID_STAKING_ID"]=322,t[e[323]="STAKING_NOT_ENABLED"]=323,t[e[324]="INVALID_PRNG_RANGE"]=324,t[e[325]="MAX_ENTITIES_IN_PRICE_REGIME_HAVE_BEEN_CREATED"]=325,t[e[326]="INVALID_FULL_PREFIX_SIGNATURE_FOR_PRECOMPILE"]=326,t[e[327]="INSUFFICIENT_BALANCES_FOR_STORAGE_RENT"]=327,t[e[328]="MAX_CHILD_RECORDS_EXCEEDED"]=328,t[e[329]="INSUFFICIENT_BALANCES_FOR_RENEWAL_FEES"]=329,t[e[330]="TRANSACTION_HAS_UNKNOWN_FIELDS"]=330,t[e[331]="ACCOUNT_IS_IMMUTABLE"]=331,t[e[332]="ALIAS_ALREADY_ASSIGNED"]=332,t[e[333]="INVALID_METADATA_KEY"]=333,t[e[334]="TOKEN_HAS_NO_METADATA_KEY"]=334,t[e[335]="MISSING_TOKEN_METADATA"]=335,t[e[336]="MISSING_SERIAL_NUMBERS"]=336,t[e[337]="TOKEN_HAS_NO_ADMIN_KEY"]=337,t[e[338]="NODE_DELETED"]=338,t[e[339]="INVALID_NODE_ID"]=339,t[e[340]="INVALID_GOSSIP_ENDPOINT"]=340,t[e[341]="INVALID_NODE_ACCOUNT_ID"]=341,t[e[342]="INVALID_NODE_DESCRIPTION"]=342,t[e[343]="INVALID_SERVICE_ENDPOINT"]=343,t[e[344]="INVALID_GOSSIP_CA_CERTIFICATE"]=344,t[e[345]="INVALID_GRPC_CERTIFICATE"]=345,t[e[346]="INVALID_MAX_AUTO_ASSOCIATIONS"]=346,t[e[347]="MAX_NODES_CREATED"]=347,t[e[348]="IP_FQDN_CANNOT_BE_SET_FOR_SAME_ENDPOINT"]=348,t[e[349]="GOSSIP_ENDPOINT_CANNOT_HAVE_FQDN"]=349,t[e[350]="FQDN_SIZE_TOO_LARGE"]=350,t[e[351]="INVALID_ENDPOINT"]=351,t[e[352]="GOSSIP_ENDPOINTS_EXCEEDED_LIMIT"]=352,t[e[353]="TOKEN_REFERENCE_REPEATED"]=353,t[e[354]="INVALID_OWNER_ID"]=354,t[e[355]="TOKEN_REFERENCE_LIST_SIZE_LIMIT_EXCEEDED"]=355,t[e[356]="SERVICE_ENDPOINTS_EXCEEDED_LIMIT"]=356,t[e[357]="INVALID_IPV4_ADDRESS"]=357,t[e[358]="EMPTY_TOKEN_REFERENCE_LIST"]=358,t[e[359]="UPDATE_NODE_ACCOUNT_NOT_ALLOWED"]=359,t[e[360]="TOKEN_HAS_NO_METADATA_OR_SUPPLY_KEY"]=360,t[e[361]="EMPTY_PENDING_AIRDROP_ID_LIST"]=361,t[e[362]="PENDING_AIRDROP_ID_REPEATED"]=362,t[e[363]="PENDING_AIRDROP_ID_LIST_TOO_LONG"]=363,t[e[364]="PENDING_NFT_AIRDROP_ALREADY_EXISTS"]=364,t[e[365]="ACCOUNT_HAS_PENDING_AIRDROPS"]=365,t[e[366]="THROTTLED_AT_CONSENSUS"]=366,t[e[367]="INVALID_PENDING_AIRDROP_ID"]=367,t[e[368]="TOKEN_AIRDROP_WITH_FALLBACK_ROYALTY"]=368,t[e[369]="INVALID_TOKEN_IN_PENDING_AIRDROP"]=369,t[e[370]="SCHEDULE_EXPIRY_IS_BUSY"]=370,t[e[371]="INVALID_GRPC_CERTIFICATE_HASH"]=371,t[e[372]="MISSING_EXPIRY_TIME"]=372,t[e[373]="NO_SCHEDULING_ALLOWED_AFTER_SCHEDULED_RECURSION"]=373,t[e[374]="RECURSIVE_SCHEDULING_LIMIT_REACHED"]=374,t}(),e.GetBySolidityIDQuery=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.QueryHeader.decode(e,e.uint32());break;case 2:n.solidityID=e.string();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.GetBySolidityIDQuery"},e}(),e.GetBySolidityIDResponse=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.ResponseHeader.decode(e,e.uint32());break;case 2:n.accountID=$root.proto.AccountID.decode(e,e.uint32());break;case 3:n.fileID=$root.proto.FileID.decode(e,e.uint32());break;case 4:n.contractID=$root.proto.ContractID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.GetBySolidityIDResponse"},e}(),e.ContractLoginfo=function(){function e(e){if(this.topic=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.contractID=$root.proto.ContractID.decode(e,e.uint32());break;case 2:n.bloom=e.bytes();break;case 3:n.topic&&n.topic.length||(n.topic=[]),n.topic.push(e.bytes());break;case 4:n.data=e.bytes();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractLoginfo"},e}(),e.ContractFunctionResult=function(){function e(e){if(this.logInfo=[],this.createdContractIDs=[],this.contractNonces=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.contractID=$root.proto.ContractID.decode(e,e.uint32());break;case 2:n.contractCallResult=e.bytes();break;case 3:n.errorMessage=e.string();break;case 4:n.bloom=e.bytes();break;case 5:n.gasUsed=e.uint64();break;case 6:n.logInfo&&n.logInfo.length||(n.logInfo=[]),n.logInfo.push($root.proto.ContractLoginfo.decode(e,e.uint32()));break;case 7:n.createdContractIDs&&n.createdContractIDs.length||(n.createdContractIDs=[]),n.createdContractIDs.push($root.proto.ContractID.decode(e,e.uint32()));break;case 9:n.evmAddress=$root.google.protobuf.BytesValue.decode(e,e.uint32());break;case 10:n.gas=e.int64();break;case 11:n.amount=e.int64();break;case 12:n.functionParameters=e.bytes();break;case 13:n.senderId=$root.proto.AccountID.decode(e,e.uint32());break;case 14:n.contractNonces&&n.contractNonces.length||(n.contractNonces=[]),n.contractNonces.push($root.proto.ContractNonceInfo.decode(e,e.uint32()));break;case 15:n.signerNonce=$root.google.protobuf.Int64Value.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractFunctionResult"},e}(),e.ContractCallLocalQuery=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.QueryHeader.decode(e,e.uint32());break;case 2:n.contractID=$root.proto.ContractID.decode(e,e.uint32());break;case 3:n.gas=e.int64();break;case 4:n.functionParameters=e.bytes();break;case 5:n.maxResultSize=e.int64();break;case 6:n.senderId=$root.proto.AccountID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractCallLocalQuery"},e}(),e.ContractCallLocalResponse=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.ResponseHeader.decode(e,e.uint32());break;case 2:n.functionResult=$root.proto.ContractFunctionResult.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractCallLocalResponse"},e}(),e.ContractNonceInfo=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.contractId=$root.proto.ContractID.decode(e,e.uint32());break;case 2:n.nonce=e.int64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractNonceInfo"},e}(),e.ContractGetInfoQuery=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.QueryHeader.decode(e,e.uint32());break;case 2:n.contractID=$root.proto.ContractID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractGetInfoQuery"},e}(),e.ContractGetInfoResponse=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.ResponseHeader.decode(e,e.uint32());break;case 2:n.contractInfo=$root.proto.ContractGetInfoResponse.ContractInfo.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractGetInfoResponse"},e.ContractInfo=function(){function e(e){if(this.tokenRelationships=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.contractID=$root.proto.ContractID.decode(e,e.uint32());break;case 2:n.accountID=$root.proto.AccountID.decode(e,e.uint32());break;case 3:n.contractAccountID=e.string();break;case 4:n.adminKey=$root.proto.Key.decode(e,e.uint32());break;case 5:n.expirationTime=$root.proto.Timestamp.decode(e,e.uint32());break;case 6:n.autoRenewPeriod=$root.proto.Duration.decode(e,e.uint32());break;case 7:n.storage=e.int64();break;case 8:n.memo=e.string();break;case 9:n.balance=e.uint64();break;case 10:n.deleted=e.bool();break;case 11:n.tokenRelationships&&n.tokenRelationships.length||(n.tokenRelationships=[]),n.tokenRelationships.push($root.proto.TokenRelationship.decode(e,e.uint32()));break;case 12:n.ledgerId=e.bytes();break;case 13:n.autoRenewAccountId=$root.proto.AccountID.decode(e,e.uint32());break;case 14:n.maxAutomaticTokenAssociations=e.int32();break;case 15:n.stakingInfo=$root.proto.StakingInfo.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractGetInfoResponse.ContractInfo"},e}(),e}(),e.ContractGetBytecodeQuery=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.QueryHeader.decode(e,e.uint32());break;case 2:n.contractID=$root.proto.ContractID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractGetBytecodeQuery"},e}(),e.ContractGetBytecodeResponse=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.ResponseHeader.decode(e,e.uint32());break;case 6:n.bytecode=e.bytes();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractGetBytecodeResponse"},e}(),e.ContractGetRecordsQuery=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.QueryHeader.decode(e,e.uint32());break;case 2:n.contractID=$root.proto.ContractID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractGetRecordsQuery"},e}(),e.ContractGetRecordsResponse=function(){function e(e){if(this.records=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.ResponseHeader.decode(e,e.uint32());break;case 2:n.contractID=$root.proto.ContractID.decode(e,e.uint32());break;case 3:n.records&&n.records.length||(n.records=[]),n.records.push($root.proto.TransactionRecord.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractGetRecordsResponse"},e}(),e.TransactionRecord=function(){function e(e){if(this.tokenTransferLists=[],this.assessedCustomFees=[],this.automaticTokenAssociations=[],this.paidStakingRewards=[],this.newPendingAirdrops=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.receipt=$root.proto.TransactionReceipt.decode(e,e.uint32());break;case 2:n.transactionHash=e.bytes();break;case 3:n.consensusTimestamp=$root.proto.Timestamp.decode(e,e.uint32());break;case 4:n.transactionID=$root.proto.TransactionID.decode(e,e.uint32());break;case 5:n.memo=e.string();break;case 6:n.transactionFee=e.uint64();break;case 7:n.contractCallResult=$root.proto.ContractFunctionResult.decode(e,e.uint32());break;case 8:n.contractCreateResult=$root.proto.ContractFunctionResult.decode(e,e.uint32());break;case 10:n.transferList=$root.proto.TransferList.decode(e,e.uint32());break;case 11:n.tokenTransferLists&&n.tokenTransferLists.length||(n.tokenTransferLists=[]),n.tokenTransferLists.push($root.proto.TokenTransferList.decode(e,e.uint32()));break;case 12:n.scheduleRef=$root.proto.ScheduleID.decode(e,e.uint32());break;case 13:n.assessedCustomFees&&n.assessedCustomFees.length||(n.assessedCustomFees=[]),n.assessedCustomFees.push($root.proto.AssessedCustomFee.decode(e,e.uint32()));break;case 14:n.automaticTokenAssociations&&n.automaticTokenAssociations.length||(n.automaticTokenAssociations=[]),n.automaticTokenAssociations.push($root.proto.TokenAssociation.decode(e,e.uint32()));break;case 15:n.parentConsensusTimestamp=$root.proto.Timestamp.decode(e,e.uint32());break;case 16:n.alias=e.bytes();break;case 17:n.ethereumHash=e.bytes();break;case 18:n.paidStakingRewards&&n.paidStakingRewards.length||(n.paidStakingRewards=[]),n.paidStakingRewards.push($root.proto.AccountAmount.decode(e,e.uint32()));break;case 19:n.prngBytes=e.bytes();break;case 20:n.prngNumber=e.int32();break;case 21:n.evmAddress=e.bytes();break;case 22:n.newPendingAirdrops&&n.newPendingAirdrops.length||(n.newPendingAirdrops=[]),n.newPendingAirdrops.push($root.proto.PendingAirdropRecord.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TransactionRecord"},e}(),e.PendingAirdropRecord=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.pendingAirdropId=$root.proto.PendingAirdropId.decode(e,e.uint32());break;case 2:n.pendingAirdropValue=$root.proto.PendingAirdropValue.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.PendingAirdropRecord"},e}(),e.TransactionReceipt=function(){function e(e){if(this.serialNumbers=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.status=e.int32();break;case 2:n.accountID=$root.proto.AccountID.decode(e,e.uint32());break;case 3:n.fileID=$root.proto.FileID.decode(e,e.uint32());break;case 4:n.contractID=$root.proto.ContractID.decode(e,e.uint32());break;case 5:n.exchangeRate=$root.proto.ExchangeRateSet.decode(e,e.uint32());break;case 6:n.topicID=$root.proto.TopicID.decode(e,e.uint32());break;case 7:n.topicSequenceNumber=e.uint64();break;case 8:n.topicRunningHash=e.bytes();break;case 9:n.topicRunningHashVersion=e.uint64();break;case 10:n.tokenID=$root.proto.TokenID.decode(e,e.uint32());break;case 11:n.newTotalSupply=e.uint64();break;case 12:n.scheduleID=$root.proto.ScheduleID.decode(e,e.uint32());break;case 13:n.scheduledTransactionID=$root.proto.TransactionID.decode(e,e.uint32());break;case 14:if(n.serialNumbers&&n.serialNumbers.length||(n.serialNumbers=[]),2==(7&o))for(var i=e.uint32()+e.pos;e.pos>>3){case 1:n.hbarEquiv=e.int32();break;case 2:n.centEquiv=e.int32();break;case 3:n.expirationTime=$root.proto.TimestampSeconds.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ExchangeRate"},e}(),e.ExchangeRateSet=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.currentRate=$root.proto.ExchangeRate.decode(e,e.uint32());break;case 2:n.nextRate=$root.proto.ExchangeRate.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ExchangeRateSet"},e}(),e.CryptoGetAccountBalanceQuery=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.QueryHeader.decode(e,e.uint32());break;case 2:n.accountID=$root.proto.AccountID.decode(e,e.uint32());break;case 3:n.contractID=$root.proto.ContractID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoGetAccountBalanceQuery"},e}(),e.CryptoGetAccountBalanceResponse=function(){function e(e){if(this.tokenBalances=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.ResponseHeader.decode(e,e.uint32());break;case 2:n.accountID=$root.proto.AccountID.decode(e,e.uint32());break;case 3:n.balance=e.uint64();break;case 4:n.tokenBalances&&n.tokenBalances.length||(n.tokenBalances=[]),n.tokenBalances.push($root.proto.TokenBalance.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoGetAccountBalanceResponse"},e}(),e.CryptoGetAccountRecordsQuery=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.QueryHeader.decode(e,e.uint32());break;case 2:n.accountID=$root.proto.AccountID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoGetAccountRecordsQuery"},e}(),e.CryptoGetAccountRecordsResponse=function(){function e(e){if(this.records=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.ResponseHeader.decode(e,e.uint32());break;case 2:n.accountID=$root.proto.AccountID.decode(e,e.uint32());break;case 3:n.records&&n.records.length||(n.records=[]),n.records.push($root.proto.TransactionRecord.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoGetAccountRecordsResponse"},e}(),e.CryptoGetInfoQuery=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.QueryHeader.decode(e,e.uint32());break;case 2:n.accountID=$root.proto.AccountID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoGetInfoQuery"},e}(),e.CryptoGetInfoResponse=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.ResponseHeader.decode(e,e.uint32());break;case 2:n.accountInfo=$root.proto.CryptoGetInfoResponse.AccountInfo.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoGetInfoResponse"},e.AccountInfo=function(){function e(e){if(this.liveHashes=[],this.tokenRelationships=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.accountID=$root.proto.AccountID.decode(e,e.uint32());break;case 2:n.contractAccountID=e.string();break;case 3:n.deleted=e.bool();break;case 4:n.proxyAccountID=$root.proto.AccountID.decode(e,e.uint32());break;case 6:n.proxyReceived=e.int64();break;case 7:n.key=$root.proto.Key.decode(e,e.uint32());break;case 8:n.balance=e.uint64();break;case 9:n.generateSendRecordThreshold=e.uint64();break;case 10:n.generateReceiveRecordThreshold=e.uint64();break;case 11:n.receiverSigRequired=e.bool();break;case 12:n.expirationTime=$root.proto.Timestamp.decode(e,e.uint32());break;case 13:n.autoRenewPeriod=$root.proto.Duration.decode(e,e.uint32());break;case 14:n.liveHashes&&n.liveHashes.length||(n.liveHashes=[]),n.liveHashes.push($root.proto.LiveHash.decode(e,e.uint32()));break;case 15:n.tokenRelationships&&n.tokenRelationships.length||(n.tokenRelationships=[]),n.tokenRelationships.push($root.proto.TokenRelationship.decode(e,e.uint32()));break;case 16:n.memo=e.string();break;case 17:n.ownedNfts=e.int64();break;case 18:n.maxAutomaticTokenAssociations=e.int32();break;case 19:n.alias=e.bytes();break;case 20:n.ledgerId=e.bytes();break;case 21:n.ethereumNonce=e.int64();break;case 22:n.stakingInfo=$root.proto.StakingInfo.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoGetInfoResponse.AccountInfo"},e}(),e}(),e.CryptoGetLiveHashQuery=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.QueryHeader.decode(e,e.uint32());break;case 2:n.accountID=$root.proto.AccountID.decode(e,e.uint32());break;case 3:n.hash=e.bytes();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoGetLiveHashQuery"},e}(),e.CryptoGetLiveHashResponse=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.ResponseHeader.decode(e,e.uint32());break;case 2:n.liveHash=$root.proto.LiveHash.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoGetLiveHashResponse"},e}(),e.CryptoGetStakersQuery=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.QueryHeader.decode(e,e.uint32());break;case 2:n.accountID=$root.proto.AccountID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoGetStakersQuery"},e}(),e.ProxyStaker=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.accountID=$root.proto.AccountID.decode(e,e.uint32());break;case 2:n.amount=e.int64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ProxyStaker"},e}(),e.AllProxyStakers=function(){function e(e){if(this.proxyStaker=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.accountID=$root.proto.AccountID.decode(e,e.uint32());break;case 2:n.proxyStaker&&n.proxyStaker.length||(n.proxyStaker=[]),n.proxyStaker.push($root.proto.ProxyStaker.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.AllProxyStakers"},e}(),e.CryptoGetStakersResponse=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.ResponseHeader.decode(e,e.uint32());break;case 3:n.stakers=$root.proto.AllProxyStakers.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoGetStakersResponse"},e}(),e.FileGetContentsQuery=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.QueryHeader.decode(e,e.uint32());break;case 2:n.fileID=$root.proto.FileID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FileGetContentsQuery"},e}(),e.FileGetContentsResponse=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.ResponseHeader.decode(e,e.uint32());break;case 2:n.fileContents=$root.proto.FileGetContentsResponse.FileContents.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FileGetContentsResponse"},e.FileContents=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.fileID=$root.proto.FileID.decode(e,e.uint32());break;case 2:n.contents=e.bytes();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FileGetContentsResponse.FileContents"},e}(),e}(),e.FileGetInfoQuery=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.QueryHeader.decode(e,e.uint32());break;case 2:n.fileID=$root.proto.FileID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FileGetInfoQuery"},e}(),e.FileGetInfoResponse=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.ResponseHeader.decode(e,e.uint32());break;case 2:n.fileInfo=$root.proto.FileGetInfoResponse.FileInfo.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FileGetInfoResponse"},e.FileInfo=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.fileID=$root.proto.FileID.decode(e,e.uint32());break;case 2:n.size=e.int64();break;case 3:n.expirationTime=$root.proto.Timestamp.decode(e,e.uint32());break;case 4:n.deleted=e.bool();break;case 5:n.keys=$root.proto.KeyList.decode(e,e.uint32());break;case 6:n.memo=e.string();break;case 7:n.ledgerId=e.bytes();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FileGetInfoResponse.FileInfo"},e}(),e}(),e.TransactionGetReceiptQuery=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.QueryHeader.decode(e,e.uint32());break;case 2:n.transactionID=$root.proto.TransactionID.decode(e,e.uint32());break;case 3:n.includeDuplicates=e.bool();break;case 4:n.includeChildReceipts=e.bool();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TransactionGetReceiptQuery"},e}(),e.TransactionGetReceiptResponse=function(){function e(e){if(this.duplicateTransactionReceipts=[],this.childTransactionReceipts=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.ResponseHeader.decode(e,e.uint32());break;case 2:n.receipt=$root.proto.TransactionReceipt.decode(e,e.uint32());break;case 4:n.duplicateTransactionReceipts&&n.duplicateTransactionReceipts.length||(n.duplicateTransactionReceipts=[]),n.duplicateTransactionReceipts.push($root.proto.TransactionReceipt.decode(e,e.uint32()));break;case 5:n.childTransactionReceipts&&n.childTransactionReceipts.length||(n.childTransactionReceipts=[]),n.childTransactionReceipts.push($root.proto.TransactionReceipt.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TransactionGetReceiptResponse"},e}(),e.TransactionGetRecordQuery=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.QueryHeader.decode(e,e.uint32());break;case 2:n.transactionID=$root.proto.TransactionID.decode(e,e.uint32());break;case 3:n.includeDuplicates=e.bool();break;case 4:n.includeChildRecords=e.bool();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TransactionGetRecordQuery"},e}(),e.TransactionGetRecordResponse=function(){function e(e){if(this.duplicateTransactionRecords=[],this.childTransactionRecords=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.ResponseHeader.decode(e,e.uint32());break;case 3:n.transactionRecord=$root.proto.TransactionRecord.decode(e,e.uint32());break;case 4:n.duplicateTransactionRecords&&n.duplicateTransactionRecords.length||(n.duplicateTransactionRecords=[]),n.duplicateTransactionRecords.push($root.proto.TransactionRecord.decode(e,e.uint32()));break;case 5:n.childTransactionRecords&&n.childTransactionRecords.length||(n.childTransactionRecords=[]),n.childTransactionRecords.push($root.proto.TransactionRecord.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TransactionGetRecordResponse"},e}(),e.TransactionGetFastRecordQuery=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.QueryHeader.decode(e,e.uint32());break;case 2:n.transactionID=$root.proto.TransactionID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TransactionGetFastRecordQuery"},e}(),e.TransactionGetFastRecordResponse=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.ResponseHeader.decode(e,e.uint32());break;case 2:n.transactionRecord=$root.proto.TransactionRecord.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TransactionGetFastRecordResponse"},e}(),e.ConsensusGetTopicInfoQuery=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.QueryHeader.decode(e,e.uint32());break;case 2:n.topicID=$root.proto.TopicID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ConsensusGetTopicInfoQuery"},e}(),e.ConsensusGetTopicInfoResponse=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.ResponseHeader.decode(e,e.uint32());break;case 2:n.topicID=$root.proto.TopicID.decode(e,e.uint32());break;case 5:n.topicInfo=$root.proto.ConsensusTopicInfo.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ConsensusGetTopicInfoResponse"},e}(),e.ConsensusTopicInfo=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.memo=e.string();break;case 2:n.runningHash=e.bytes();break;case 3:n.sequenceNumber=e.uint64();break;case 4:n.expirationTime=$root.proto.Timestamp.decode(e,e.uint32());break;case 5:n.adminKey=$root.proto.Key.decode(e,e.uint32());break;case 6:n.submitKey=$root.proto.Key.decode(e,e.uint32());break;case 7:n.autoRenewPeriod=$root.proto.Duration.decode(e,e.uint32());break;case 8:n.autoRenewAccount=$root.proto.AccountID.decode(e,e.uint32());break;case 9:n.ledgerId=e.bytes();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ConsensusTopicInfo"},e}(),e.NetworkGetVersionInfoQuery=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==1)n.header=$root.proto.QueryHeader.decode(e,e.uint32());else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.NetworkGetVersionInfoQuery"},e}(),e.NetworkGetVersionInfoResponse=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.ResponseHeader.decode(e,e.uint32());break;case 2:n.hapiProtoVersion=$root.proto.SemanticVersion.decode(e,e.uint32());break;case 3:n.hederaServicesVersion=$root.proto.SemanticVersion.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.NetworkGetVersionInfoResponse"},e}(),e.NetworkGetExecutionTimeQuery=function(){function e(e){if(this.transactionIds=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.QueryHeader.decode(e,e.uint32());break;case 2:n.transactionIds&&n.transactionIds.length||(n.transactionIds=[]),n.transactionIds.push($root.proto.TransactionID.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.NetworkGetExecutionTimeQuery"},e}(),e.NetworkGetExecutionTimeResponse=function(){function e(e){if(this.executionTimes=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.ResponseHeader.decode(e,e.uint32());break;case 2:if(n.executionTimes&&n.executionTimes.length||(n.executionTimes=[]),2==(7&o))for(var i=e.uint32()+e.pos;e.pos>>3){case 1:n.header=$root.proto.QueryHeader.decode(e,e.uint32());break;case 2:n.token=$root.proto.TokenID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenGetInfoQuery"},e}(),e.TokenInfo=function(){function e(e){if(this.customFees=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.tokenId=$root.proto.TokenID.decode(e,e.uint32());break;case 2:n.name=e.string();break;case 3:n.symbol=e.string();break;case 4:n.decimals=e.uint32();break;case 5:n.totalSupply=e.uint64();break;case 6:n.treasury=$root.proto.AccountID.decode(e,e.uint32());break;case 7:n.adminKey=$root.proto.Key.decode(e,e.uint32());break;case 8:n.kycKey=$root.proto.Key.decode(e,e.uint32());break;case 9:n.freezeKey=$root.proto.Key.decode(e,e.uint32());break;case 10:n.wipeKey=$root.proto.Key.decode(e,e.uint32());break;case 11:n.supplyKey=$root.proto.Key.decode(e,e.uint32());break;case 12:n.defaultFreezeStatus=e.int32();break;case 13:n.defaultKycStatus=e.int32();break;case 14:n.deleted=e.bool();break;case 15:n.autoRenewAccount=$root.proto.AccountID.decode(e,e.uint32());break;case 16:n.autoRenewPeriod=$root.proto.Duration.decode(e,e.uint32());break;case 17:n.expiry=$root.proto.Timestamp.decode(e,e.uint32());break;case 18:n.memo=e.string();break;case 19:n.tokenType=e.int32();break;case 20:n.supplyType=e.int32();break;case 21:n.maxSupply=e.int64();break;case 22:n.feeScheduleKey=$root.proto.Key.decode(e,e.uint32());break;case 23:n.customFees&&n.customFees.length||(n.customFees=[]),n.customFees.push($root.proto.CustomFee.decode(e,e.uint32()));break;case 24:n.pauseKey=$root.proto.Key.decode(e,e.uint32());break;case 25:n.pauseStatus=e.int32();break;case 26:n.ledgerId=e.bytes();break;case 27:n.metadata=e.bytes();break;case 28:n.metadataKey=$root.proto.Key.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenInfo"},e}(),e.TokenGetInfoResponse=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.ResponseHeader.decode(e,e.uint32());break;case 2:n.tokenInfo=$root.proto.TokenInfo.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenGetInfoResponse"},e}(),e.ScheduleGetInfoQuery=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.QueryHeader.decode(e,e.uint32());break;case 2:n.scheduleID=$root.proto.ScheduleID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ScheduleGetInfoQuery"},e}(),e.ScheduleInfo=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.scheduleID=$root.proto.ScheduleID.decode(e,e.uint32());break;case 2:n.deletionTime=$root.proto.Timestamp.decode(e,e.uint32());break;case 3:n.executionTime=$root.proto.Timestamp.decode(e,e.uint32());break;case 4:n.expirationTime=$root.proto.Timestamp.decode(e,e.uint32());break;case 5:n.scheduledTransactionBody=$root.proto.SchedulableTransactionBody.decode(e,e.uint32());break;case 6:n.memo=e.string();break;case 7:n.adminKey=$root.proto.Key.decode(e,e.uint32());break;case 8:n.signers=$root.proto.KeyList.decode(e,e.uint32());break;case 9:n.creatorAccountID=$root.proto.AccountID.decode(e,e.uint32());break;case 10:n.payerAccountID=$root.proto.AccountID.decode(e,e.uint32());break;case 11:n.scheduledTransactionID=$root.proto.TransactionID.decode(e,e.uint32());break;case 12:n.ledgerId=e.bytes();break;case 13:n.waitForExpiry=e.bool();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ScheduleInfo"},e}(),e.ScheduleGetInfoResponse=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.ResponseHeader.decode(e,e.uint32());break;case 2:n.scheduleInfo=$root.proto.ScheduleInfo.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ScheduleGetInfoResponse"},e}(),e.TokenGetAccountNftInfosQuery=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.QueryHeader.decode(e,e.uint32());break;case 2:n.accountID=$root.proto.AccountID.decode(e,e.uint32());break;case 3:n.start=e.int64();break;case 4:n.end=e.int64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenGetAccountNftInfosQuery"},e}(),e.TokenGetAccountNftInfosResponse=function(){function e(e){if(this.nfts=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.ResponseHeader.decode(e,e.uint32());break;case 2:n.nfts&&n.nfts.length||(n.nfts=[]),n.nfts.push($root.proto.TokenNftInfo.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenGetAccountNftInfosResponse"},e}(),e.TokenGetNftInfoQuery=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.QueryHeader.decode(e,e.uint32());break;case 2:n.nftID=$root.proto.NftID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenGetNftInfoQuery"},e}(),e.TokenNftInfo=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.nftID=$root.proto.NftID.decode(e,e.uint32());break;case 2:n.accountID=$root.proto.AccountID.decode(e,e.uint32());break;case 3:n.creationTime=$root.proto.Timestamp.decode(e,e.uint32());break;case 4:n.metadata=e.bytes();break;case 5:n.ledgerId=e.bytes();break;case 6:n.spenderId=$root.proto.AccountID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenNftInfo"},e}(),e.TokenGetNftInfoResponse=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.ResponseHeader.decode(e,e.uint32());break;case 2:n.nft=$root.proto.TokenNftInfo.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenGetNftInfoResponse"},e}(),e.TokenGetNftInfosQuery=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.QueryHeader.decode(e,e.uint32());break;case 2:n.tokenID=$root.proto.TokenID.decode(e,e.uint32());break;case 3:n.start=e.int64();break;case 4:n.end=e.int64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenGetNftInfosQuery"},e}(),e.TokenGetNftInfosResponse=function(){function e(e){if(this.nfts=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.ResponseHeader.decode(e,e.uint32());break;case 2:n.tokenID=$root.proto.TokenID.decode(e,e.uint32());break;case 3:n.nfts&&n.nfts.length||(n.nfts=[]),n.nfts.push($root.proto.TokenNftInfo.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenGetNftInfosResponse"},e}(),e.GetAccountDetailsQuery=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.QueryHeader.decode(e,e.uint32());break;case 2:n.accountId=$root.proto.AccountID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.GetAccountDetailsQuery"},e}(),e.GetAccountDetailsResponse=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.ResponseHeader.decode(e,e.uint32());break;case 2:n.accountDetails=$root.proto.GetAccountDetailsResponse.AccountDetails.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.GetAccountDetailsResponse"},e.AccountDetails=function(){function e(e){if(this.tokenRelationships=[],this.grantedCryptoAllowances=[],this.grantedNftAllowances=[],this.grantedTokenAllowances=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.accountId=$root.proto.AccountID.decode(e,e.uint32());break;case 2:n.contractAccountId=e.string();break;case 3:n.deleted=e.bool();break;case 4:n.proxyAccountId=$root.proto.AccountID.decode(e,e.uint32());break;case 5:n.proxyReceived=e.int64();break;case 6:n.key=$root.proto.Key.decode(e,e.uint32());break;case 7:n.balance=e.uint64();break;case 8:n.receiverSigRequired=e.bool();break;case 9:n.expirationTime=$root.proto.Timestamp.decode(e,e.uint32());break;case 10:n.autoRenewPeriod=$root.proto.Duration.decode(e,e.uint32());break;case 11:n.tokenRelationships&&n.tokenRelationships.length||(n.tokenRelationships=[]),n.tokenRelationships.push($root.proto.TokenRelationship.decode(e,e.uint32()));break;case 12:n.memo=e.string();break;case 13:n.ownedNfts=e.int64();break;case 14:n.maxAutomaticTokenAssociations=e.int32();break;case 15:n.alias=e.bytes();break;case 16:n.ledgerId=e.bytes();break;case 17:n.grantedCryptoAllowances&&n.grantedCryptoAllowances.length||(n.grantedCryptoAllowances=[]),n.grantedCryptoAllowances.push($root.proto.GrantedCryptoAllowance.decode(e,e.uint32()));break;case 18:n.grantedNftAllowances&&n.grantedNftAllowances.length||(n.grantedNftAllowances=[]),n.grantedNftAllowances.push($root.proto.GrantedNftAllowance.decode(e,e.uint32()));break;case 19:n.grantedTokenAllowances&&n.grantedTokenAllowances.length||(n.grantedTokenAllowances=[]),n.grantedTokenAllowances.push($root.proto.GrantedTokenAllowance.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.GetAccountDetailsResponse.AccountDetails"},e}(),e}(),e.GrantedCryptoAllowance=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.spender=$root.proto.AccountID.decode(e,e.uint32());break;case 2:n.amount=e.int64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.GrantedCryptoAllowance"},e}(),e.GrantedNftAllowance=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.tokenId=$root.proto.TokenID.decode(e,e.uint32());break;case 2:n.spender=$root.proto.AccountID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.GrantedNftAllowance"},e}(),e.GrantedTokenAllowance=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.tokenId=$root.proto.TokenID.decode(e,e.uint32());break;case 2:n.spender=$root.proto.AccountID.decode(e,e.uint32());break;case 3:n.amount=e.int64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.GrantedTokenAllowance"},e}(),e.Response=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.getByKey=$root.proto.GetByKeyResponse.decode(e,e.uint32());break;case 2:n.getBySolidityID=$root.proto.GetBySolidityIDResponse.decode(e,e.uint32());break;case 3:n.contractCallLocal=$root.proto.ContractCallLocalResponse.decode(e,e.uint32());break;case 5:n.contractGetBytecodeResponse=$root.proto.ContractGetBytecodeResponse.decode(e,e.uint32());break;case 4:n.contractGetInfo=$root.proto.ContractGetInfoResponse.decode(e,e.uint32());break;case 6:n.contractGetRecordsResponse=$root.proto.ContractGetRecordsResponse.decode(e,e.uint32());break;case 7:n.cryptogetAccountBalance=$root.proto.CryptoGetAccountBalanceResponse.decode(e,e.uint32());break;case 8:n.cryptoGetAccountRecords=$root.proto.CryptoGetAccountRecordsResponse.decode(e,e.uint32());break;case 9:n.cryptoGetInfo=$root.proto.CryptoGetInfoResponse.decode(e,e.uint32());break;case 10:n.cryptoGetLiveHash=$root.proto.CryptoGetLiveHashResponse.decode(e,e.uint32());break;case 11:n.cryptoGetProxyStakers=$root.proto.CryptoGetStakersResponse.decode(e,e.uint32());break;case 12:n.fileGetContents=$root.proto.FileGetContentsResponse.decode(e,e.uint32());break;case 13:n.fileGetInfo=$root.proto.FileGetInfoResponse.decode(e,e.uint32());break;case 14:n.transactionGetReceipt=$root.proto.TransactionGetReceiptResponse.decode(e,e.uint32());break;case 15:n.transactionGetRecord=$root.proto.TransactionGetRecordResponse.decode(e,e.uint32());break;case 16:n.transactionGetFastRecord=$root.proto.TransactionGetFastRecordResponse.decode(e,e.uint32());break;case 150:n.consensusGetTopicInfo=$root.proto.ConsensusGetTopicInfoResponse.decode(e,e.uint32());break;case 151:n.networkGetVersionInfo=$root.proto.NetworkGetVersionInfoResponse.decode(e,e.uint32());break;case 152:n.tokenGetInfo=$root.proto.TokenGetInfoResponse.decode(e,e.uint32());break;case 153:n.scheduleGetInfo=$root.proto.ScheduleGetInfoResponse.decode(e,e.uint32());break;case 154:n.tokenGetAccountNftInfos=$root.proto.TokenGetAccountNftInfosResponse.decode(e,e.uint32());break;case 155:n.tokenGetNftInfo=$root.proto.TokenGetNftInfoResponse.decode(e,e.uint32());break;case 156:n.tokenGetNftInfos=$root.proto.TokenGetNftInfosResponse.decode(e,e.uint32());break;case 157:n.networkGetExecutionTime=$root.proto.NetworkGetExecutionTimeResponse.decode(e,e.uint32());break;case 158:n.accountDetails=$root.proto.GetAccountDetailsResponse.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.Response"},e}(),e.TransactionResponse=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.nodeTransactionPrecheckCode=e.int32();break;case 2:n.cost=e.uint64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TransactionResponse"},e}(),e.ConsensusService=function(){function e(e,t,r){$protobuf$1.rpc.Service.call(this,e,t,r)}return(e.prototype=Object.create($protobuf$1.rpc.Service.prototype)).constructor=e,e.create=function(e,t,r){return new this(e,t,r)},Object.defineProperty(e.prototype.createTopic=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"createTopic"}),Object.defineProperty(e.prototype.updateTopic=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"updateTopic"}),Object.defineProperty(e.prototype.deleteTopic=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"deleteTopic"}),Object.defineProperty(e.prototype.getTopicInfo=function e(t,r){return this.rpcCall(e,$root.proto.Query,$root.proto.Response,t,r)},"name",{value:"getTopicInfo"}),Object.defineProperty(e.prototype.submitMessage=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"submitMessage"}),e}(),e.CryptoService=function(){function e(e,t,r){$protobuf$1.rpc.Service.call(this,e,t,r)}return(e.prototype=Object.create($protobuf$1.rpc.Service.prototype)).constructor=e,e.create=function(e,t,r){return new this(e,t,r)},Object.defineProperty(e.prototype.createAccount=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"createAccount"}),Object.defineProperty(e.prototype.updateAccount=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"updateAccount"}),Object.defineProperty(e.prototype.cryptoTransfer=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"cryptoTransfer"}),Object.defineProperty(e.prototype.cryptoDelete=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"cryptoDelete"}),Object.defineProperty(e.prototype.approveAllowances=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"approveAllowances"}),Object.defineProperty(e.prototype.deleteAllowances=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"deleteAllowances"}),Object.defineProperty(e.prototype.addLiveHash=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"addLiveHash"}),Object.defineProperty(e.prototype.deleteLiveHash=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"deleteLiveHash"}),Object.defineProperty(e.prototype.getLiveHash=function e(t,r){return this.rpcCall(e,$root.proto.Query,$root.proto.Response,t,r)},"name",{value:"getLiveHash"}),Object.defineProperty(e.prototype.getAccountRecords=function e(t,r){return this.rpcCall(e,$root.proto.Query,$root.proto.Response,t,r)},"name",{value:"getAccountRecords"}),Object.defineProperty(e.prototype.cryptoGetBalance=function e(t,r){return this.rpcCall(e,$root.proto.Query,$root.proto.Response,t,r)},"name",{value:"cryptoGetBalance"}),Object.defineProperty(e.prototype.getAccountInfo=function e(t,r){return this.rpcCall(e,$root.proto.Query,$root.proto.Response,t,r)},"name",{value:"getAccountInfo"}),Object.defineProperty(e.prototype.getTransactionReceipts=function e(t,r){return this.rpcCall(e,$root.proto.Query,$root.proto.Response,t,r)},"name",{value:"getTransactionReceipts"}),Object.defineProperty(e.prototype.getFastTransactionRecord=function e(t,r){return this.rpcCall(e,$root.proto.Query,$root.proto.Response,t,r)},"name",{value:"getFastTransactionRecord"}),Object.defineProperty(e.prototype.getTxRecordByTxID=function e(t,r){return this.rpcCall(e,$root.proto.Query,$root.proto.Response,t,r)},"name",{value:"getTxRecordByTxID"}),Object.defineProperty(e.prototype.getStakersByAccountID=function e(t,r){return this.rpcCall(e,$root.proto.Query,$root.proto.Response,t,r)},"name",{value:"getStakersByAccountID"}),e}(),e.FileService=function(){function e(e,t,r){$protobuf$1.rpc.Service.call(this,e,t,r)}return(e.prototype=Object.create($protobuf$1.rpc.Service.prototype)).constructor=e,e.create=function(e,t,r){return new this(e,t,r)},Object.defineProperty(e.prototype.createFile=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"createFile"}),Object.defineProperty(e.prototype.updateFile=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"updateFile"}),Object.defineProperty(e.prototype.deleteFile=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"deleteFile"}),Object.defineProperty(e.prototype.appendContent=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"appendContent"}),Object.defineProperty(e.prototype.getFileContent=function e(t,r){return this.rpcCall(e,$root.proto.Query,$root.proto.Response,t,r)},"name",{value:"getFileContent"}),Object.defineProperty(e.prototype.getFileInfo=function e(t,r){return this.rpcCall(e,$root.proto.Query,$root.proto.Response,t,r)},"name",{value:"getFileInfo"}),Object.defineProperty(e.prototype.systemDelete=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"systemDelete"}),Object.defineProperty(e.prototype.systemUndelete=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"systemUndelete"}),e}(),e.FreezeService=function(){function e(e,t,r){$protobuf$1.rpc.Service.call(this,e,t,r)}return(e.prototype=Object.create($protobuf$1.rpc.Service.prototype)).constructor=e,e.create=function(e,t,r){return new this(e,t,r)},Object.defineProperty(e.prototype.freeze=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"freeze"}),e}(),e.NetworkService=function(){function e(e,t,r){$protobuf$1.rpc.Service.call(this,e,t,r)}return(e.prototype=Object.create($protobuf$1.rpc.Service.prototype)).constructor=e,e.create=function(e,t,r){return new this(e,t,r)},Object.defineProperty(e.prototype.getVersionInfo=function e(t,r){return this.rpcCall(e,$root.proto.Query,$root.proto.Response,t,r)},"name",{value:"getVersionInfo"}),Object.defineProperty(e.prototype.getExecutionTime=function e(t,r){return this.rpcCall(e,$root.proto.Query,$root.proto.Response,t,r)},"name",{value:"getExecutionTime"}),Object.defineProperty(e.prototype.uncheckedSubmit=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"uncheckedSubmit"}),Object.defineProperty(e.prototype.getAccountDetails=function e(t,r){return this.rpcCall(e,$root.proto.Query,$root.proto.Response,t,r)},"name",{value:"getAccountDetails"}),e}(),e.ScheduleService=function(){function e(e,t,r){$protobuf$1.rpc.Service.call(this,e,t,r)}return(e.prototype=Object.create($protobuf$1.rpc.Service.prototype)).constructor=e,e.create=function(e,t,r){return new this(e,t,r)},Object.defineProperty(e.prototype.createSchedule=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"createSchedule"}),Object.defineProperty(e.prototype.signSchedule=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"signSchedule"}),Object.defineProperty(e.prototype.deleteSchedule=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"deleteSchedule"}),Object.defineProperty(e.prototype.getScheduleInfo=function e(t,r){return this.rpcCall(e,$root.proto.Query,$root.proto.Response,t,r)},"name",{value:"getScheduleInfo"}),e}(),e.SmartContractService=function(){function e(e,t,r){$protobuf$1.rpc.Service.call(this,e,t,r)}return(e.prototype=Object.create($protobuf$1.rpc.Service.prototype)).constructor=e,e.create=function(e,t,r){return new this(e,t,r)},Object.defineProperty(e.prototype.createContract=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"createContract"}),Object.defineProperty(e.prototype.updateContract=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"updateContract"}),Object.defineProperty(e.prototype.contractCallMethod=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"contractCallMethod"}),Object.defineProperty(e.prototype.getContractInfo=function e(t,r){return this.rpcCall(e,$root.proto.Query,$root.proto.Response,t,r)},"name",{value:"getContractInfo"}),Object.defineProperty(e.prototype.contractCallLocalMethod=function e(t,r){return this.rpcCall(e,$root.proto.Query,$root.proto.Response,t,r)},"name",{value:"contractCallLocalMethod"}),Object.defineProperty(e.prototype.contractGetBytecode=function e(t,r){return this.rpcCall(e,$root.proto.Query,$root.proto.Response,t,r)},"name",{value:"ContractGetBytecode"}),Object.defineProperty(e.prototype.getBySolidityID=function e(t,r){return this.rpcCall(e,$root.proto.Query,$root.proto.Response,t,r)},"name",{value:"getBySolidityID"}),Object.defineProperty(e.prototype.getTxRecordByContractID=function e(t,r){return this.rpcCall(e,$root.proto.Query,$root.proto.Response,t,r)},"name",{value:"getTxRecordByContractID"}),Object.defineProperty(e.prototype.deleteContract=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"deleteContract"}),Object.defineProperty(e.prototype.systemDelete=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"systemDelete"}),Object.defineProperty(e.prototype.systemUndelete=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"systemUndelete"}),Object.defineProperty(e.prototype.callEthereum=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"callEthereum"}),e}(),e.ThrottleGroup=function(){function e(e){if(this.operations=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:if(n.operations&&n.operations.length||(n.operations=[]),2==(7&o))for(var i=e.uint32()+e.pos;e.pos>>3){case 1:n.name=e.string();break;case 2:n.burstPeriodMs=e.uint64();break;case 3:n.throttleGroups&&n.throttleGroups.length||(n.throttleGroups=[]),n.throttleGroups.push($root.proto.ThrottleGroup.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ThrottleBucket"},e}(),e.ThrottleDefinitions=function(){function e(e){if(this.throttleBuckets=[],e)for(var t=Object.keys(e),r=0;r>>3==1)n.throttleBuckets&&n.throttleBuckets.length||(n.throttleBuckets=[]),n.throttleBuckets.push($root.proto.ThrottleBucket.decode(e,e.uint32()));else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ThrottleDefinitions"},e}(),e.TokenService=function(){function e(e,t,r){$protobuf$1.rpc.Service.call(this,e,t,r)}return(e.prototype=Object.create($protobuf$1.rpc.Service.prototype)).constructor=e,e.create=function(e,t,r){return new this(e,t,r)},Object.defineProperty(e.prototype.createToken=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"createToken"}),Object.defineProperty(e.prototype.updateToken=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"updateToken"}),Object.defineProperty(e.prototype.mintToken=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"mintToken"}),Object.defineProperty(e.prototype.burnToken=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"burnToken"}),Object.defineProperty(e.prototype.deleteToken=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"deleteToken"}),Object.defineProperty(e.prototype.wipeTokenAccount=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"wipeTokenAccount"}),Object.defineProperty(e.prototype.freezeTokenAccount=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"freezeTokenAccount"}),Object.defineProperty(e.prototype.unfreezeTokenAccount=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"unfreezeTokenAccount"}),Object.defineProperty(e.prototype.grantKycToTokenAccount=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"grantKycToTokenAccount"}),Object.defineProperty(e.prototype.revokeKycFromTokenAccount=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"revokeKycFromTokenAccount"}),Object.defineProperty(e.prototype.associateTokens=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"associateTokens"}),Object.defineProperty(e.prototype.dissociateTokens=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"dissociateTokens"}),Object.defineProperty(e.prototype.updateTokenFeeSchedule=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"updateTokenFeeSchedule"}),Object.defineProperty(e.prototype.getTokenInfo=function e(t,r){return this.rpcCall(e,$root.proto.Query,$root.proto.Response,t,r)},"name",{value:"getTokenInfo"}),Object.defineProperty(e.prototype.getAccountNftInfos=function e(t,r){return this.rpcCall(e,$root.proto.Query,$root.proto.Response,t,r)},"name",{value:"getAccountNftInfos"}),Object.defineProperty(e.prototype.getTokenNftInfo=function e(t,r){return this.rpcCall(e,$root.proto.Query,$root.proto.Response,t,r)},"name",{value:"getTokenNftInfo"}),Object.defineProperty(e.prototype.getTokenNftInfos=function e(t,r){return this.rpcCall(e,$root.proto.Query,$root.proto.Response,t,r)},"name",{value:"getTokenNftInfos"}),Object.defineProperty(e.prototype.pauseToken=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"pauseToken"}),Object.defineProperty(e.prototype.unpauseToken=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"unpauseToken"}),Object.defineProperty(e.prototype.updateNfts=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"updateNfts"}),Object.defineProperty(e.prototype.rejectToken=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"rejectToken"}),Object.defineProperty(e.prototype.airdropTokens=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"airdropTokens"}),Object.defineProperty(e.prototype.cancelAirdrop=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"cancelAirdrop"}),Object.defineProperty(e.prototype.claimAirdrop=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"claimAirdrop"}),e}(),e.SignedTransaction=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.bodyBytes=e.bytes();break;case 2:n.sigMap=$root.proto.SignatureMap.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.SignedTransaction"},e}(),e.UtilService=function(){function e(e,t,r){$protobuf$1.rpc.Service.call(this,e,t,r)}return(e.prototype=Object.create($protobuf$1.rpc.Service.prototype)).constructor=e,e.create=function(e,t,r){return new this(e,t,r)},Object.defineProperty(e.prototype.prng=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"prng"}),e}(),e.TokenUnitBalance=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.tokenId=$root.proto.TokenID.decode(e,e.uint32());break;case 2:n.balance=e.uint64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenUnitBalance"},e}(),e.SingleAccountBalances=function(){function e(e){if(this.tokenUnitBalances=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.accountID=$root.proto.AccountID.decode(e,e.uint32());break;case 2:n.hbarBalance=e.uint64();break;case 3:n.tokenUnitBalances&&n.tokenUnitBalances.length||(n.tokenUnitBalances=[]),n.tokenUnitBalances.push($root.proto.TokenUnitBalance.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.SingleAccountBalances"},e}(),e.AllAccountBalances=function(){function e(e){if(this.allAccounts=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.consensusTimestamp=$root.proto.Timestamp.decode(e,e.uint32());break;case 2:n.allAccounts&&n.allAccounts.length||(n.allAccounts=[]),n.allAccounts.push($root.proto.SingleAccountBalances.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.AllAccountBalances"},e}(),e.ContractActions=function(){function e(e){if(this.contractActions=[],e)for(var t=Object.keys(e),r=0;r>>3==1)n.contractActions&&n.contractActions.length||(n.contractActions=[]),n.contractActions.push($root.proto.ContractAction.decode(e,e.uint32()));else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractActions"},e}(),e.ContractActionType=function(){const e={},t=Object.create(e);return t[e[0]="NO_ACTION"]=0,t[e[1]="CALL"]=1,t[e[2]="CREATE"]=2,t[e[3]="PRECOMPILE"]=3,t[e[4]="SYSTEM"]=4,t}(),e.CallOperationType=function(){const e={},t=Object.create(e);return t[e[0]="OP_UNKNOWN"]=0,t[e[1]="OP_CALL"]=1,t[e[2]="OP_CALLCODE"]=2,t[e[3]="OP_DELEGATECALL"]=3,t[e[4]="OP_STATICCALL"]=4,t[e[5]="OP_CREATE"]=5,t[e[6]="OP_CREATE2"]=6,t}(),e.ContractAction=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.callType=e.int32();break;case 2:n.callingAccount=$root.proto.AccountID.decode(e,e.uint32());break;case 3:n.callingContract=$root.proto.ContractID.decode(e,e.uint32());break;case 4:n.gas=e.int64();break;case 5:n.input=e.bytes();break;case 6:n.recipientAccount=$root.proto.AccountID.decode(e,e.uint32());break;case 7:n.recipientContract=$root.proto.ContractID.decode(e,e.uint32());break;case 8:n.targetedAddress=e.bytes();break;case 9:n.value=e.int64();break;case 10:n.gasUsed=e.int64();break;case 11:n.output=e.bytes();break;case 12:n.revertReason=e.bytes();break;case 13:n.error=e.bytes();break;case 14:n.callDepth=e.int32();break;case 15:n.callOperationType=e.int32();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractAction"},e}(),e.ContractBytecode=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.contractId=$root.proto.ContractID.decode(e,e.uint32());break;case 2:n.initcode=e.bytes();break;case 3:n.runtimeBytecode=e.bytes();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractBytecode"},e}(),e.ContractStateChanges=function(){function e(e){if(this.contractStateChanges=[],e)for(var t=Object.keys(e),r=0;r>>3==1)n.contractStateChanges&&n.contractStateChanges.length||(n.contractStateChanges=[]),n.contractStateChanges.push($root.proto.ContractStateChange.decode(e,e.uint32()));else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractStateChanges"},e}(),e.ContractStateChange=function(){function e(e){if(this.storageChanges=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.contractId=$root.proto.ContractID.decode(e,e.uint32());break;case 2:n.storageChanges&&n.storageChanges.length||(n.storageChanges=[]),n.storageChanges.push($root.proto.StorageChange.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractStateChange"},e}(),e.StorageChange=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.slot=e.bytes();break;case 2:n.valueRead=e.bytes();break;case 3:n.valueWritten=$root.google.protobuf.BytesValue.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.StorageChange"},e}(),e.HashAlgorithm=function(){const e={},t=Object.create(e);return t[e[0]="HASH_ALGORITHM_UNKNOWN"]=0,t[e[1]="SHA_384"]=1,t}(),e.HashObject=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.algorithm=e.int32();break;case 2:n.length=e.int32();break;case 3:n.hash=e.bytes();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.HashObject"},e}(),e.RecordStreamFile=function(){function e(e){if(this.recordStreamItems=[],this.sidecars=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.hapiProtoVersion=$root.proto.SemanticVersion.decode(e,e.uint32());break;case 2:n.startObjectRunningHash=$root.proto.HashObject.decode(e,e.uint32());break;case 3:n.recordStreamItems&&n.recordStreamItems.length||(n.recordStreamItems=[]),n.recordStreamItems.push($root.proto.RecordStreamItem.decode(e,e.uint32()));break;case 4:n.endObjectRunningHash=$root.proto.HashObject.decode(e,e.uint32());break;case 5:n.blockNumber=e.int64();break;case 6:n.sidecars&&n.sidecars.length||(n.sidecars=[]),n.sidecars.push($root.proto.SidecarMetadata.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.RecordStreamFile"},e}(),e.RecordStreamItem=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.transaction=$root.proto.Transaction.decode(e,e.uint32());break;case 2:n.record=$root.proto.TransactionRecord.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.RecordStreamItem"},e}(),e.SidecarMetadata=function(){function e(e){if(this.types=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.hash=$root.proto.HashObject.decode(e,e.uint32());break;case 2:n.id=e.int32();break;case 3:if(n.types&&n.types.length||(n.types=[]),2==(7&o))for(var i=e.uint32()+e.pos;e.pos>>3==1)n.sidecarRecords&&n.sidecarRecords.length||(n.sidecarRecords=[]),n.sidecarRecords.push($root.proto.TransactionSidecarRecord.decode(e,e.uint32()));else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.SidecarFile"},e}(),e.TransactionSidecarRecord=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.consensusTimestamp=$root.proto.Timestamp.decode(e,e.uint32());break;case 2:n.migration=e.bool();break;case 3:n.stateChanges=$root.proto.ContractStateChanges.decode(e,e.uint32());break;case 4:n.actions=$root.proto.ContractActions.decode(e,e.uint32());break;case 5:n.bytecode=$root.proto.ContractBytecode.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TransactionSidecarRecord"},e}(),e.SignatureFile=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.fileSignature=$root.proto.SignatureObject.decode(e,e.uint32());break;case 2:n.metadataSignature=$root.proto.SignatureObject.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.SignatureFile"},e}(),e.SignatureObject=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.type=e.int32();break;case 2:n.length=e.int32();break;case 3:n.checksum=e.int32();break;case 4:n.signature=e.bytes();break;case 5:n.hashObject=$root.proto.HashObject.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.SignatureObject"},e}(),e.SignatureType=function(){const e={},t=Object.create(e);return t[e[0]="SIGNATURE_TYPE_UNKNOWN"]=0,t[e[1]="SHA_384_WITH_RSA"]=1,t}(),e})(),proto$9.google=$root.google=(()=>{const e={};return e.protobuf=function(){const e={};return e.DoubleValue=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==1)n.value=e.double();else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/google.protobuf.DoubleValue"},e}(),e.FloatValue=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==1)n.value=e.float();else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/google.protobuf.FloatValue"},e}(),e.Int64Value=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==1)n.value=e.int64();else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/google.protobuf.Int64Value"},e}(),e.UInt64Value=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==1)n.value=e.uint64();else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/google.protobuf.UInt64Value"},e}(),e.Int32Value=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==1)n.value=e.int32();else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/google.protobuf.Int32Value"},e}(),e.UInt32Value=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==1)n.value=e.uint32();else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/google.protobuf.UInt32Value"},e}(),e.BoolValue=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==1)n.value=e.bool();else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/google.protobuf.BoolValue"},e}(),e.StringValue=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==1)n.value=e.string();else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/google.protobuf.StringValue"},e}(),e.BytesValue=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==1)n.value=e.bytes();else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/google.protobuf.BytesValue"},e}(),e}(),e})(),Object.defineProperty(lib$2,"__esModule",{value:!0});var proto_1=lib$2.proto=google_1=lib$2.google=com_1=lib$2.com=Writer_1=lib$2.Writer=Reader_1=lib$2.Reader=void 0,$protobuf=_interopRequireWildcard(minimal$2),_long=_interopRequireDefault(require$$1$2),$proto=_interopRequireWildcard(proto$9),$util2;function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(_getRequireWildcardCache=function(e){return e?r:t})(e)}function _interopRequireWildcard(e,t){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=_getRequireWildcardCache(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&{}.hasOwnProperty.call(e,i)){var a=o?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(n,i,a):n[i]=e[i]}return n.default=e,r&&r.set(e,n),n}$util2=$protobuf.util,null==$util2.Long&&(console.log("Patching Protobuf Long.js instance..."),$util2.Long=_long.default,null!=$protobuf.Reader._configure&&$protobuf.Reader._configure($protobuf.BufferReader)),Reader_1=lib$2.Reader=$protobuf.Reader,Writer_1=lib$2.Writer=$protobuf.Writer,proto_1=lib$2.proto=$proto.proto,com_1=lib$2.com=$proto.com,google_1=lib$2.google=$proto.google;const HashgraphProto=_mergeNamespaces({__proto__:null,get Reader(){return Reader_1},get Writer(){return Writer_1},get com(){return com_1},default:lib$2,get google(){return google_1},get proto(){return proto_1}},[lib$2]);let Key$1=class{};class BadKeyError extends Error{constructor(e){super(e instanceof Error?e.message:e),this.name="BadKeyError",e instanceof Error&&(this.cause=e,this.stack=e.stack)}}function commonjsRequire$1(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var naclFast={exports:{}},cryptoBrowserify={};function getDefaultExportFromCjs(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var browser$h={exports:{}},process=browser$h.exports={},cachedSetTimeout,cachedClearTimeout;function defaultSetTimout(){throw new Error("setTimeout has not been defined")}function defaultClearTimeout(){throw new Error("clearTimeout has not been defined")}function runTimeout(e){if(cachedSetTimeout===setTimeout)return setTimeout(e,0);if((cachedSetTimeout===defaultSetTimout||!cachedSetTimeout)&&setTimeout)return cachedSetTimeout=setTimeout,setTimeout(e,0);try{return cachedSetTimeout(e,0)}catch(e2){try{return cachedSetTimeout.call(null,e,0)}catch(t){return cachedSetTimeout.call(this,e,0)}}}function runClearTimeout(e){if(cachedClearTimeout===clearTimeout)return clearTimeout(e);if((cachedClearTimeout===defaultClearTimeout||!cachedClearTimeout)&&clearTimeout)return cachedClearTimeout=clearTimeout,clearTimeout(e);try{return cachedClearTimeout(e)}catch(e2){try{return cachedClearTimeout.call(null,e)}catch(t){return cachedClearTimeout.call(this,e)}}}!function(){try{cachedSetTimeout="function"==typeof setTimeout?setTimeout:defaultSetTimout}catch(e2){cachedSetTimeout=defaultSetTimout}try{cachedClearTimeout="function"==typeof clearTimeout?clearTimeout:defaultClearTimeout}catch(e2){cachedClearTimeout=defaultClearTimeout}}();var queue=[],draining=!1,currentQueue,queueIndex=-1;function cleanUpNextTick(){draining&¤tQueue&&(draining=!1,currentQueue.length?queue=currentQueue.concat(queue):queueIndex=-1,queue.length&&drainQueue())}function drainQueue(){if(!draining){var e=runTimeout(cleanUpNextTick);draining=!0;for(var t=queue.length;t;){for(currentQueue=queue,queue=[];++queueIndex1)for(var r=1;r */var hasRequiredSafeBuffer$1,hasRequiredBrowser$b;function requireSafeBuffer$1(){return hasRequiredSafeBuffer$1||(hasRequiredSafeBuffer$1=1,function(e,t){var r=require$$2$1,n=r.Buffer;function o(e,t){for(var r in e)t[r]=e[r]}function i(e,t,r){return n(e,t,r)}n.from&&n.alloc&&n.allocUnsafe&&n.allocUnsafeSlow?e.exports=r:(o(r,t),t.Buffer=i),i.prototype=Object.create(n.prototype),o(n,i),i.from=function(e,t,r){if("number"==typeof e)throw new TypeError("Argument must not be a number");return n(e,t,r)},i.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError("Argument must be a number");var o=n(e);return void 0!==t?"string"==typeof r?o.fill(t,r):o.fill(t):o.fill(0),o},i.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return n(e)},i.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return r.SlowBuffer(e)}}(safeBuffer$1,safeBuffer$1.exports)),safeBuffer$1.exports}function requireBrowser$b(){if(hasRequiredBrowser$b)return browser$g.exports;hasRequiredBrowser$b=1;var e=65536,t=4294967295;var r=requireSafeBuffer$1().Buffer,n=commonjsGlobal.crypto||commonjsGlobal.msCrypto;return n&&n.getRandomValues?browser$g.exports=function(o,i){if(o>t)throw new RangeError("requested too many random bytes");var a=r.allocUnsafe(o);if(o>0)if(o>e)for(var s=0;s0&&a.length>o&&!a.warned){a.warned=!0;var s=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");s.name="MaxListenersExceededWarning",s.emitter=e,s.type=t,s.count=a.length,ProcessEmitWarning(s)}return e}function onceWrapper(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function _onceWrap(e,t,r){var n={fired:!1,wrapFn:void 0,target:e,type:t,listener:r},o=onceWrapper.bind(n);return o.listener=r,n.wrapFn=o,o}function _listeners(e,t,r){var n=e._events;if(void 0===n)return[];var o=n[t];return void 0===o?[]:"function"==typeof o?r?[o.listener||o]:[o]:r?unwrapListeners(o):arrayClone(o,o.length)}function listenerCount(e){var t=this._events;if(void 0!==t){var r=t[e];if("function"==typeof r)return 1;if(void 0!==r)return r.length}return 0}function arrayClone(e,t){for(var r=new Array(t),n=0;n0&&(i=t[0]),i instanceof Error)throw i;var a=new Error("Unhandled error."+(i?" ("+i.message+")":""));throw a.context=i,a}var s=o[e];if(void 0===s)return!1;if("function"==typeof s)ReflectApply(s,this,t);else{var c=s.length,u=arrayClone(s,c);for(r=0;r=0;i--)if(r[i]===t||r[i].listener===t){a=r[i].listener,o=i;break}if(o<0)return this;0===o?r.shift():spliceOne(r,o),1===r.length&&(n[e]=r[0]),void 0!==n.removeListener&&this.emit("removeListener",e,a||t)}return this},EventEmitter.prototype.off=EventEmitter.prototype.removeListener,EventEmitter.prototype.removeAllListeners=function(e){var t,r,n;if(void 0===(r=this._events))return this;if(void 0===r.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==r[e]&&(0==--this._eventsCount?this._events=Object.create(null):delete r[e]),this;if(0===arguments.length){var o,i=Object.keys(r);for(n=0;n=0;n--)this.removeListener(e,t[n]);return this},EventEmitter.prototype.listeners=function(e){return _listeners(this,e,!0)},EventEmitter.prototype.rawListeners=function(e){return _listeners(this,e,!1)},EventEmitter.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):listenerCount.call(e,t)},EventEmitter.prototype.listenerCount=listenerCount,EventEmitter.prototype.eventNames=function(){return this._eventsCount>0?ReflectOwnKeys(this._events):[]};var eventsExports=events.exports;const mi=getDefaultExportFromCjs$1(eventsExports);var streamBrowser$1,hasRequiredStreamBrowser$1;function requireStreamBrowser$1(){return hasRequiredStreamBrowser$1?streamBrowser$1:(hasRequiredStreamBrowser$1=1,streamBrowser$1=eventsExports.EventEmitter)}var util$8={},types$1={},shams$1,hasRequiredShams$1,shams,hasRequiredShams,esObjectAtoms,hasRequiredEsObjectAtoms,esErrors,hasRequiredEsErrors,_eval,hasRequired_eval,range,hasRequiredRange,ref,hasRequiredRef,syntax,hasRequiredSyntax,type,hasRequiredType,uri,hasRequiredUri,abs,hasRequiredAbs,floor,hasRequiredFloor,max,hasRequiredMax,min,hasRequiredMin,pow,hasRequiredPow,gOPD,hasRequiredGOPD,gopd,hasRequiredGopd,esDefineProperty,hasRequiredEsDefineProperty,hasSymbols,hasRequiredHasSymbols,implementation,hasRequiredImplementation,functionBind,hasRequiredFunctionBind,functionCall,hasRequiredFunctionCall,functionApply,hasRequiredFunctionApply,reflectApply,hasRequiredReflectApply,actualApply,hasRequiredActualApply,callBindApplyHelpers,hasRequiredCallBindApplyHelpers,get$1,hasRequiredGet,hasown,hasRequiredHasown,getIntrinsic,hasRequiredGetIntrinsic,callBound,hasRequiredCallBound,isArguments,hasRequiredIsArguments,isGeneratorFunction,hasRequiredIsGeneratorFunction,isCallable,hasRequiredIsCallable,forEach_1,hasRequiredForEach,possibleTypedArrayNames,hasRequiredPossibleTypedArrayNames,availableTypedArrays,hasRequiredAvailableTypedArrays;function requireShams$1(){return hasRequiredShams$1?shams$1:(hasRequiredShams$1=1,shams$1=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"==typeof Symbol.iterator)return!0;var e={},t=Symbol("test"),r=Object(t);if("string"==typeof t)return!1;if("[object Symbol]"!==Object.prototype.toString.call(t))return!1;if("[object Symbol]"!==Object.prototype.toString.call(r))return!1;for(var n in e[t]=42,e)return!1;if("function"==typeof Object.keys&&0!==Object.keys(e).length)return!1;if("function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(e).length)return!1;var o=Object.getOwnPropertySymbols(e);if(1!==o.length||o[0]!==t)return!1;if(!Object.prototype.propertyIsEnumerable.call(e,t))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){var i=Object.getOwnPropertyDescriptor(e,t);if(42!==i.value||!0!==i.enumerable)return!1}return!0})}function requireShams(){if(hasRequiredShams)return shams;hasRequiredShams=1;var e=requireShams$1();return shams=function(){return e()&&!!Symbol.toStringTag}}function requireEsObjectAtoms(){return hasRequiredEsObjectAtoms?esObjectAtoms:(hasRequiredEsObjectAtoms=1,esObjectAtoms=Object)}function requireEsErrors(){return hasRequiredEsErrors?esErrors:(hasRequiredEsErrors=1,esErrors=Error)}function require_eval(){return hasRequired_eval?_eval:(hasRequired_eval=1,_eval=EvalError)}function requireRange(){return hasRequiredRange?range:(hasRequiredRange=1,range=RangeError)}function requireRef(){return hasRequiredRef?ref:(hasRequiredRef=1,ref=ReferenceError)}function requireSyntax(){return hasRequiredSyntax?syntax:(hasRequiredSyntax=1,syntax=SyntaxError)}function requireType(){return hasRequiredType?type:(hasRequiredType=1,type=TypeError)}function requireUri(){return hasRequiredUri?uri:(hasRequiredUri=1,uri=URIError)}function requireAbs(){return hasRequiredAbs?abs:(hasRequiredAbs=1,abs=Math.abs)}function requireFloor(){return hasRequiredFloor?floor:(hasRequiredFloor=1,floor=Math.floor)}function requireMax(){return hasRequiredMax?max:(hasRequiredMax=1,max=Math.max)}function requireMin(){return hasRequiredMin?min:(hasRequiredMin=1,min=Math.min)}function requirePow(){return hasRequiredPow?pow:(hasRequiredPow=1,pow=Math.pow)}function requireGOPD(){return hasRequiredGOPD?gOPD:(hasRequiredGOPD=1,gOPD=Object.getOwnPropertyDescriptor)}function requireGopd(){if(hasRequiredGopd)return gopd;hasRequiredGopd=1;var e=requireGOPD();if(e)try{e([],"length")}catch(e2){e=null}return gopd=e}function requireEsDefineProperty(){if(hasRequiredEsDefineProperty)return esDefineProperty;hasRequiredEsDefineProperty=1;var e=Object.defineProperty||!1;if(e)try{e({},"a",{value:1})}catch(e2){e=!1}return esDefineProperty=e}function requireHasSymbols(){if(hasRequiredHasSymbols)return hasSymbols;hasRequiredHasSymbols=1;var e="undefined"!=typeof Symbol&&Symbol,t=requireShams$1();return hasSymbols=function(){return"function"==typeof e&&("function"==typeof Symbol&&("symbol"==typeof e("foo")&&("symbol"==typeof Symbol("bar")&&t())))}}function requireImplementation(){if(hasRequiredImplementation)return implementation;hasRequiredImplementation=1;var e=Object.prototype.toString,t=Math.max,r=function(e,t){for(var r=[],n=0;n1&&"boolean"!=typeof t)throw new s('"allowMissing" argument must be a boolean');if(null===x(/^%?[^%]*%?$/,e))throw new a("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var r=function(e){var t=D(e,0,1),r=D(e,-1);if("%"===t&&"%"!==r)throw new a("invalid intrinsic syntax, expected closing `%`");if("%"===r&&"%"!==t)throw new a("invalid intrinsic syntax, expected opening `%`");var n=[];return B(e,L,(function(e,t,r,o){n[n.length]=r?B(o,U,"$1"):t||e})),n}(e),n=r.length>0?r[0]:"",o=j("%"+n+"%",t),i=o.name,c=o.value,u=!1,l=o.alias;l&&(n=l[0],M(r,P([0,1],l)));for(var d=1,f=!0;d=r.length){var g=m(c,h);c=(f=!!g)&&"get"in g&&!("originalValue"in g.get)?g.get:c[h]}else f=N(c,h),c=c[h];f&&!u&&(A[i]=c)}}return c},getIntrinsic}function requireCallBound(){if(hasRequiredCallBound)return callBound;hasRequiredCallBound=1;var e=requireGetIntrinsic(),t=requireCallBindApplyHelpers(),r=t([e("%String.prototype.indexOf%")]);return callBound=function(n,o){var i=e(n,!!o);return"function"==typeof i&&r(n,".prototype.")>-1?t([i]):i}}function requireIsArguments(){if(hasRequiredIsArguments)return isArguments;hasRequiredIsArguments=1;var e=requireShams()(),t=requireCallBound()("Object.prototype.toString"),r=function(r){return!(e&&r&&"object"==typeof r&&Symbol.toStringTag in r)&&"[object Arguments]"===t(r)},n=function(e){return!!r(e)||null!==e&&"object"==typeof e&&"length"in e&&"number"==typeof e.length&&e.length>=0&&"[object Array]"!==t(e)&&"callee"in e&&"[object Function]"===t(e.callee)},o=function(){return r(arguments)}();return r.isLegacyArguments=n,isArguments=o?r:n}function requireIsGeneratorFunction(){if(hasRequiredIsGeneratorFunction)return isGeneratorFunction;hasRequiredIsGeneratorFunction=1;var e,t=Object.prototype.toString,r=Function.prototype.toString,n=/^\s*(?:function)?\*/,o=requireShams()(),i=Object.getPrototypeOf;return isGeneratorFunction=function(a){if("function"!=typeof a)return!1;if(n.test(r.call(a)))return!0;if(!o)return"[object GeneratorFunction]"===t.call(a);if(!i)return!1;if(void 0===e){var s=function(){if(!o)return!1;try{return Function("return function*() {}")()}catch(e2){}}();e=!!s&&i(s)}return i(a)===e}}function requireIsCallable(){if(hasRequiredIsCallable)return isCallable;hasRequiredIsCallable=1;var e,t,r=Function.prototype.toString,n="object"==typeof Reflect&&null!==Reflect&&Reflect.apply;if("function"==typeof n&&"function"==typeof Object.defineProperty)try{e=Object.defineProperty({},"length",{get:function(){throw t}}),t={},n((function(){throw 42}),null,e)}catch(f){f!==t&&(n=null)}else n=null;var o=/^\s*class\b/,i=function(e){try{var t=r.call(e);return o.test(t)}catch(e2){return!1}},a=function(e){try{return!i(e)&&(r.call(e),!0)}catch(e2){return!1}},s=Object.prototype.toString,c="function"==typeof Symbol&&!!Symbol.toStringTag,u=!(0 in[,]),l=function(){return!1};if("object"==typeof document){var d=document.all;s.call(d)===s.call(document.all)&&(l=function(e){if((u||!e)&&(void 0===e||"object"==typeof e))try{var t=s.call(e);return("[object HTMLAllCollection]"===t||"[object HTML document.all class]"===t||"[object HTMLCollection]"===t||"[object Object]"===t)&&null==e("")}catch(e2){}return!1})}return isCallable=n?function(r){if(l(r))return!0;if(!r)return!1;if("function"!=typeof r&&"object"!=typeof r)return!1;try{n(r,null,e)}catch(e2){if(e2!==t)return!1}return!i(r)&&a(r)}:function(e){if(l(e))return!0;if(!e)return!1;if("function"!=typeof e&&"object"!=typeof e)return!1;if(c)return a(e);if(i(e))return!1;var t=s.call(e);return!("[object Function]"!==t&&"[object GeneratorFunction]"!==t&&!/^\[object HTML/.test(t))&&a(e)}}function requireForEach(){if(hasRequiredForEach)return forEach_1;hasRequiredForEach=1;var e=requireIsCallable(),t=Object.prototype.toString,r=Object.prototype.hasOwnProperty;return forEach_1=function(n,o,i){if(!e(o))throw new TypeError("iterator must be a function");var a;arguments.length>=3&&(a=i),"[object Array]"===t.call(n)?function(e,t,n){for(var o=0,i=e.length;o3&&"boolean"!=typeof arguments[3]&&null!==arguments[3])throw new r("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&"boolean"!=typeof arguments[4]&&null!==arguments[4])throw new r("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&"boolean"!=typeof arguments[5]&&null!==arguments[5])throw new r("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&"boolean"!=typeof arguments[6])throw new r("`loose`, if provided, must be a boolean");var s=arguments.length>3?arguments[3]:null,c=arguments.length>4?arguments[4]:null,u=arguments.length>5?arguments[5]:null,l=arguments.length>6&&arguments[6],d=!!n&&n(o,i);if(e)e(o,i,{configurable:null===u&&d?d.configurable:!u,enumerable:null===s&&d?d.enumerable:!s,value:a,writable:null===c&&d?d.writable:!c});else{if(!l&&(s||c||u))throw new t("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.");o[i]=a}},defineDataProperty}function requireHasPropertyDescriptors(){if(hasRequiredHasPropertyDescriptors)return hasPropertyDescriptors_1;hasRequiredHasPropertyDescriptors=1;var e=requireEsDefineProperty(),t=function(){return!!e};return t.hasArrayLengthDefineBug=function(){if(!e)return null;try{return 1!==e([],"length",{value:1}).length}catch(e2){return!0}},hasPropertyDescriptors_1=t}function requireSetFunctionLength(){if(hasRequiredSetFunctionLength)return setFunctionLength;hasRequiredSetFunctionLength=1;var e=requireGetIntrinsic(),t=requireDefineDataProperty(),r=requireHasPropertyDescriptors()(),n=requireGopd(),o=requireType(),i=e("%Math.floor%");return setFunctionLength=function(e,a){if("function"!=typeof e)throw new o("`fn` is not a function");if("number"!=typeof a||a<0||a>4294967295||i(a)!==a)throw new o("`length` must be a positive 32-bit integer");var s=arguments.length>2&&!!arguments[2],c=!0,u=!0;if("length"in e&&n){var l=n(e,"length");l&&!l.configurable&&(c=!1),l&&!l.writable&&(u=!1)}return(c||u||!s)&&(r?t(e,"length",a,!0,!0):t(e,"length",a)),e},setFunctionLength}function requireApplyBind(){if(hasRequiredApplyBind)return applyBind;hasRequiredApplyBind=1;var e=requireFunctionBind(),t=requireFunctionApply(),r=requireActualApply();return applyBind=function(){return r(e,t,arguments)},applyBind}function requireCallBind(){return hasRequiredCallBind||(hasRequiredCallBind=1,e=callBind,t=requireSetFunctionLength(),r=requireEsDefineProperty(),n=requireCallBindApplyHelpers(),o=requireApplyBind(),e.exports=function(e){var r=n(arguments),o=e.length-(arguments.length-1);return t(r,1+(o>0?o:0),!0)},r?r(e.exports,"apply",{value:o}):e.exports.apply=o),callBind.exports;var e,t,r,n,o}function requireWhichTypedArray(){if(hasRequiredWhichTypedArray)return whichTypedArray;hasRequiredWhichTypedArray=1;var e=requireForEach(),t=requireAvailableTypedArrays(),r=requireCallBind(),n=requireCallBound(),o=requireGopd(),i=n("Object.prototype.toString"),a=requireShams()(),s="undefined"==typeof globalThis?commonjsGlobal:globalThis,c=t(),u=n("String.prototype.slice"),l=Object.getPrototypeOf,d=n("Array.prototype.indexOf",!0)||function(e,t){for(var r=0;r-1?r:"Object"===r&&function(t){var r=!1;return e(f,(function(e,n){if(!r)try{e(t),r=u(n,1)}catch(e2){}})),r}(t)}return o?function(t){var r=!1;return e(f,(function(e,n){if(!r)try{"$"+e(t)===n&&(r=u(n,1))}catch(e2){}})),r}(t):null}}function requireIsTypedArray(){if(hasRequiredIsTypedArray)return isTypedArray$1;hasRequiredIsTypedArray=1;var e=requireWhichTypedArray();return isTypedArray$1=function(t){return!!e(t)}}function requireTypes$1(){return hasRequiredTypes$1||(hasRequiredTypes$1=1,function(e){var t=requireIsArguments(),r=requireIsGeneratorFunction(),n=requireWhichTypedArray(),o=requireIsTypedArray();function i(e){return e.call.bind(e)}var a="undefined"!=typeof BigInt,s="undefined"!=typeof Symbol,c=i(Object.prototype.toString),u=i(Number.prototype.valueOf),l=i(String.prototype.valueOf),d=i(Boolean.prototype.valueOf);if(a)var f=i(BigInt.prototype.valueOf);if(s)var h=i(Symbol.prototype.valueOf);function p(e,t){if("object"!=typeof e)return!1;try{return t(e),!0}catch(e2){return!1}}function y(e){return"[object Map]"===c(e)}function m(e){return"[object Set]"===c(e)}function g(e){return"[object WeakMap]"===c(e)}function b(e){return"[object WeakSet]"===c(e)}function v(e){return"[object ArrayBuffer]"===c(e)}function w(e){return"undefined"!=typeof ArrayBuffer&&(v.working?v(e):e instanceof ArrayBuffer)}function _(e){return"[object DataView]"===c(e)}function I(e){return"undefined"!=typeof DataView&&(_.working?_(e):e instanceof DataView)}e.isArgumentsObject=t,e.isGeneratorFunction=r,e.isTypedArray=o,e.isPromise=function(e){return"undefined"!=typeof Promise&&e instanceof Promise||null!==e&&"object"==typeof e&&"function"==typeof e.then&&"function"==typeof e.catch},e.isArrayBufferView=function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):o(e)||I(e)},e.isUint8Array=function(e){return"Uint8Array"===n(e)},e.isUint8ClampedArray=function(e){return"Uint8ClampedArray"===n(e)},e.isUint16Array=function(e){return"Uint16Array"===n(e)},e.isUint32Array=function(e){return"Uint32Array"===n(e)},e.isInt8Array=function(e){return"Int8Array"===n(e)},e.isInt16Array=function(e){return"Int16Array"===n(e)},e.isInt32Array=function(e){return"Int32Array"===n(e)},e.isFloat32Array=function(e){return"Float32Array"===n(e)},e.isFloat64Array=function(e){return"Float64Array"===n(e)},e.isBigInt64Array=function(e){return"BigInt64Array"===n(e)},e.isBigUint64Array=function(e){return"BigUint64Array"===n(e)},y.working="undefined"!=typeof Map&&y(new Map),e.isMap=function(e){return"undefined"!=typeof Map&&(y.working?y(e):e instanceof Map)},m.working="undefined"!=typeof Set&&m(new Set),e.isSet=function(e){return"undefined"!=typeof Set&&(m.working?m(e):e instanceof Set)},g.working="undefined"!=typeof WeakMap&&g(new WeakMap),e.isWeakMap=function(e){return"undefined"!=typeof WeakMap&&(g.working?g(e):e instanceof WeakMap)},b.working="undefined"!=typeof WeakSet&&b(new WeakSet),e.isWeakSet=function(e){return b(e)},v.working="undefined"!=typeof ArrayBuffer&&v(new ArrayBuffer),e.isArrayBuffer=w,_.working="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView&&_(new DataView(new ArrayBuffer(1),0,1)),e.isDataView=I;var T="undefined"!=typeof SharedArrayBuffer?SharedArrayBuffer:void 0;function k(e){return"[object SharedArrayBuffer]"===c(e)}function $(e){return void 0!==T&&(void 0===k.working&&(k.working=k(new T)),k.working?k(e):e instanceof T)}function S(e){return p(e,u)}function A(e){return p(e,l)}function E(e){return p(e,d)}function C(e){return a&&p(e,f)}function R(e){return s&&p(e,h)}e.isSharedArrayBuffer=$,e.isAsyncFunction=function(e){return"[object AsyncFunction]"===c(e)},e.isMapIterator=function(e){return"[object Map Iterator]"===c(e)},e.isSetIterator=function(e){return"[object Set Iterator]"===c(e)},e.isGeneratorObject=function(e){return"[object Generator]"===c(e)},e.isWebAssemblyCompiledModule=function(e){return"[object WebAssembly.Module]"===c(e)},e.isNumberObject=S,e.isStringObject=A,e.isBooleanObject=E,e.isBigIntObject=C,e.isSymbolObject=R,e.isBoxedPrimitive=function(e){return S(e)||A(e)||E(e)||C(e)||R(e)},e.isAnyArrayBuffer=function(e){return"undefined"!=typeof Uint8Array&&(w(e)||$(e))},["isProxy","isExternal","isModuleNamespaceObject"].forEach((function(t){Object.defineProperty(e,t,{enumerable:!1,value:function(){throw new Error(t+" is not supported in userland")}})}))}(types$1)),types$1}function requireIsBufferBrowser(){return hasRequiredIsBufferBrowser?isBufferBrowser:(hasRequiredIsBufferBrowser=1,isBufferBrowser=function(e){return e&&"object"==typeof e&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8})}function requireUtil$1(){return hasRequiredUtil$1||(hasRequiredUtil$1=1,function(e){var t=Object.getOwnPropertyDescriptors||function(e){for(var t=Object.keys(e),r={},n=0;n=i)return e;switch(e){case"%s":return String(o[n++]);case"%d":return Number(o[n++]);case"%j":try{return JSON.stringify(o[n++])}catch(t){return"[Circular]"}default:return e}})),c=o[n];n=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),h(r)?n.showHidden=r:r&&e._extend(n,r),g(n.showHidden)&&(n.showHidden=!1),g(n.depth)&&(n.depth=2),g(n.colors)&&(n.colors=!1),g(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=s),u(n,t,n.depth)}function s(e,t){var r=a.styles[t];return r?"["+a.colors[r][0]+"m"+e+"["+a.colors[r][1]+"m":e}function c(e,t){return e}function u(t,r,n){if(t.customInspect&&r&&I(r.inspect)&&r.inspect!==e.inspect&&(!r.constructor||r.constructor.prototype!==r)){var o=r.inspect(n,t);return m(o)||(o=u(t,o,n)),o}var i=function(e,t){if(g(t))return e.stylize("undefined","undefined");if(m(t)){var r="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(r,"string")}if(y(t))return e.stylize(""+t,"number");if(h(t))return e.stylize(""+t,"boolean");if(p(t))return e.stylize("null","null")}(t,r);if(i)return i;var a=Object.keys(r),s=function(e){var t={};return e.forEach((function(e,r){t[e]=!0})),t}(a);if(t.showHidden&&(a=Object.getOwnPropertyNames(r)),_(r)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return l(r);if(0===a.length){if(I(r)){var c=r.name?": "+r.name:"";return t.stylize("[Function"+c+"]","special")}if(b(r))return t.stylize(RegExp.prototype.toString.call(r),"regexp");if(w(r))return t.stylize(Date.prototype.toString.call(r),"date");if(_(r))return l(r)}var v,T="",k=!1,$=["{","}"];(f(r)&&(k=!0,$=["[","]"]),I(r))&&(T=" [Function"+(r.name?": "+r.name:"")+"]");return b(r)&&(T=" "+RegExp.prototype.toString.call(r)),w(r)&&(T=" "+Date.prototype.toUTCString.call(r)),_(r)&&(T=" "+l(r)),0!==a.length||k&&0!=r.length?n<0?b(r)?t.stylize(RegExp.prototype.toString.call(r),"regexp"):t.stylize("[Object]","special"):(t.seen.push(r),v=k?function(e,t,r,n,o){for(var i=[],a=0,s=t.length;a60)return r[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+r[1];return r[0]+t+" "+e.join(", ")+" "+r[1]}(v,T,$)):$[0]+T+$[1]}function l(e){return"["+Error.prototype.toString.call(e)+"]"}function d(e,t,r,n,o,i){var a,s,c;if((c=Object.getOwnPropertyDescriptor(t,o)||{value:t[o]}).get?s=c.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):c.set&&(s=e.stylize("[Setter]","special")),S(n,o)||(a="["+o+"]"),s||(e.seen.indexOf(c.value)<0?(s=p(r)?u(e,c.value,null):u(e,c.value,r-1)).indexOf("\n")>-1&&(s=i?s.split("\n").map((function(e){return" "+e})).join("\n").slice(2):"\n"+s.split("\n").map((function(e){return" "+e})).join("\n")):s=e.stylize("[Circular]","special")),g(a)){if(i&&o.match(/^\d+$/))return s;(a=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.slice(1,-1),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+s}function f(e){return Array.isArray(e)}function h(e){return"boolean"==typeof e}function p(e){return null===e}function y(e){return"number"==typeof e}function m(e){return"string"==typeof e}function g(e){return void 0===e}function b(e){return v(e)&&"[object RegExp]"===T(e)}function v(e){return"object"==typeof e&&null!==e}function w(e){return v(e)&&"[object Date]"===T(e)}function _(e){return v(e)&&("[object Error]"===T(e)||e instanceof Error)}function I(e){return"function"==typeof e}function T(e){return Object.prototype.toString.call(e)}function k(e){return e<10?"0"+e.toString(10):e.toString(10)}e.debuglog=function(t){if(t=t.toUpperCase(),!n[t])if(o.test(t)){var r=process$1.pid;n[t]=function(){var n=e.format.apply(e,arguments);console.error("%s %d: %s",t,r,n)}}else n[t]=function(){};return n[t]},e.inspect=a,a.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},a.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},e.types=requireTypes$1(),e.isArray=f,e.isBoolean=h,e.isNull=p,e.isNullOrUndefined=function(e){return null==e},e.isNumber=y,e.isString=m,e.isSymbol=function(e){return"symbol"==typeof e},e.isUndefined=g,e.isRegExp=b,e.types.isRegExp=b,e.isObject=v,e.isDate=w,e.types.isDate=w,e.isError=_,e.types.isNativeError=_,e.isFunction=I,e.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},e.isBuffer=requireIsBufferBrowser();var $=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function S(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.log=function(){var t,r;console.log("%s - %s",(r=[k((t=new Date).getHours()),k(t.getMinutes()),k(t.getSeconds())].join(":"),[t.getDate(),$[t.getMonth()],r].join(" ")),e.format.apply(e,arguments))},e.inherits=inherits_browserExports,e._extend=function(e,t){if(!t||!v(t))return e;for(var r=Object.keys(t),n=r.length;n--;)e[r[n]]=t[r[n]];return e};var A="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function E(e,t){if(!e){var r=new Error("Promise was rejected with a falsy value");r.reason=e,e=r}return t(e)}e.promisify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');if(A&&e[A]){var r;if("function"!=typeof(r=e[A]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(r,A,{value:r,enumerable:!1,writable:!1,configurable:!0}),r}function r(){for(var t,r,n=new Promise((function(e,n){t=e,r=n})),o=[],i=0;i0?this.tail.next=t:this.head=t,this.tail=t,++this.length}},{key:"unshift",value:function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length}},{key:"shift",value:function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(e){if(0===this.length)return"";for(var t=this.head,r=""+t.data;t=t.next;)r+=e+t.data;return r}},{key:"concat",value:function(e){if(0===this.length)return i.alloc(0);for(var t,r,n,o=i.allocUnsafe(e>>>0),a=this.head,s=0;a;)t=a.data,r=o,n=s,i.prototype.copy.call(t,r,n),s+=a.data.length,a=a.next;return o}},{key:"consume",value:function(e,t){var r;return eo.length?o.length:e;if(i===o.length?n+=o:n+=o.slice(0,e),0===(e-=i)){i===o.length?(++r,t.next?this.head=t.next:this.head=this.tail=null):(this.head=t,t.data=o.slice(i));break}++r}return this.length-=r,n}},{key:"_getBuffer",value:function(e){var t=i.allocUnsafe(e),r=this.head,n=1;for(r.data.copy(t),e-=r.data.length;r=r.next;){var o=r.data,a=e>o.length?o.length:e;if(o.copy(t,t.length-e,0,a),0===(e-=a)){a===o.length?(++n,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=o.slice(a));break}++n}return this.length-=n,t}},{key:s,value:function(e,r){return a(this,t(t({},r),{},{depth:0,customInspect:!1}))}}]),e}()}function requireDestroy$1(){if(hasRequiredDestroy$1)return destroy_1$1;function e(e,n){r(e,n),t(e)}function t(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function r(e,t){e.emit("error",t)}return hasRequiredDestroy$1=1,destroy_1$1={destroy:function(n,o){var i=this,a=this._readableState&&this._readableState.destroyed,s=this._writableState&&this._writableState.destroyed;return a||s?(o?o(n):n&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process$1.nextTick(r,this,n)):process$1.nextTick(r,this,n)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(n||null,(function(r){!o&&r?i._writableState?i._writableState.errorEmitted?process$1.nextTick(t,i):(i._writableState.errorEmitted=!0,process$1.nextTick(e,i,r)):process$1.nextTick(e,i,r):o?(process$1.nextTick(t,i),o(r)):process$1.nextTick(t,i)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)},errorOrDestroy:function(e,t){var r=e._readableState,n=e._writableState;r&&r.autoDestroy||n&&n.autoDestroy?e.destroy(t):e.emit("error",t)}}}var errorsBrowser={},hasRequiredErrorsBrowser,state$8,hasRequiredState,browser$f,hasRequiredBrowser$a,_stream_writable$1,hasRequired_stream_writable$1,_stream_duplex$1,hasRequired_stream_duplex$1;function requireErrorsBrowser(){if(hasRequiredErrorsBrowser)return errorsBrowser;hasRequiredErrorsBrowser=1;var e={};function t(t,r,n){n||(n=Error);var o=function(e){var t,n;function o(t,n,o){return e.call(this,function(e,t,n){return"string"==typeof r?r:r(e,t,n)}(t,n,o))||this}return n=e,(t=o).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,o}(n);o.prototype.name=n.name,o.prototype.code=t,e[t]=o}function r(e,t){if(Array.isArray(e)){var r=e.length;return e=e.map((function(e){return String(e)})),r>2?"one of ".concat(t," ").concat(e.slice(0,r-1).join(", "),", or ")+e[r-1]:2===r?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}return"of ".concat(t," ").concat(String(e))}return t("ERR_INVALID_OPT_VALUE",(function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'}),TypeError),t("ERR_INVALID_ARG_TYPE",(function(e,t,n){var o,i,a;if("string"==typeof t&&(i="not ",t.substr(0,i.length)===i)?(o="must not be",t=t.replace(/^not /,"")):o="must be",function(e,t,r){return(void 0===r||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}(e," argument"))a="The ".concat(e," ").concat(o," ").concat(r(t,"type"));else{var s=function(e,t,r){return"number"!=typeof r&&(r=0),!(r+t.length>e.length)&&-1!==e.indexOf(t,r)}(e,".")?"property":"argument";a='The "'.concat(e,'" ').concat(s," ").concat(o," ").concat(r(t,"type"))}return a+=". Received type ".concat(typeof n)}),TypeError),t("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),t("ERR_METHOD_NOT_IMPLEMENTED",(function(e){return"The "+e+" method is not implemented"})),t("ERR_STREAM_PREMATURE_CLOSE","Premature close"),t("ERR_STREAM_DESTROYED",(function(e){return"Cannot call "+e+" after a stream was destroyed"})),t("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),t("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),t("ERR_STREAM_WRITE_AFTER_END","write after end"),t("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),t("ERR_UNKNOWN_ENCODING",(function(e){return"Unknown encoding: "+e}),TypeError),t("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),errorsBrowser.codes=e,errorsBrowser}function requireState(){if(hasRequiredState)return state$8;hasRequiredState=1;var e=requireErrorsBrowser().codes.ERR_INVALID_OPT_VALUE;return state$8={getHighWaterMark:function(t,r,n,o){var i=function(e,t,r){return null!=e.highWaterMark?e.highWaterMark:t?e[r]:null}(r,o,n);if(null!=i){if(!isFinite(i)||Math.floor(i)!==i||i<0)throw new e(o?n:"highWaterMark",i);return Math.floor(i)}return t.objectMode?16:16384}}}function requireBrowser$a(){if(hasRequiredBrowser$a)return browser$f;function e(e){try{if(!commonjsGlobal.localStorage)return!1}catch(r){return!1}var t=commonjsGlobal.localStorage[e];return null!=t&&"true"===String(t).toLowerCase()}return hasRequiredBrowser$a=1,browser$f=function(t,r){if(e("noDeprecation"))return t;var n=!1;return function(){if(!n){if(e("throwDeprecation"))throw new Error(r);e("traceDeprecation")?console.trace(r):console.warn(r),n=!0}return t.apply(this,arguments)}},browser$f}function require_stream_writable$1(){if(hasRequired_stream_writable$1)return _stream_writable$1;function e(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,r){var n=e.entry;e.entry=null;for(;n;){var o=n.callback;t.pendingcb--,o(r),n=n.next}t.corkedRequestsFree.next=e}(t,e)}}var t;hasRequired_stream_writable$1=1,_stream_writable$1=_,_.WritableState=w;var r={deprecate:requireBrowser$a()},n=requireStreamBrowser$1(),o=require$$2$1.Buffer,i=(void 0!==commonjsGlobal?commonjsGlobal:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{}).Uint8Array||function(){};var a,s=requireDestroy$1(),c=requireState().getHighWaterMark,u=requireErrorsBrowser().codes,l=u.ERR_INVALID_ARG_TYPE,d=u.ERR_METHOD_NOT_IMPLEMENTED,f=u.ERR_MULTIPLE_CALLBACK,h=u.ERR_STREAM_CANNOT_PIPE,p=u.ERR_STREAM_DESTROYED,y=u.ERR_STREAM_NULL_VALUES,m=u.ERR_STREAM_WRITE_AFTER_END,g=u.ERR_UNKNOWN_ENCODING,b=s.errorOrDestroy;function v(){}function w(r,n,o){t=t||require_stream_duplex$1(),r=r||{},"boolean"!=typeof o&&(o=n instanceof t),this.objectMode=!!r.objectMode,o&&(this.objectMode=this.objectMode||!!r.writableObjectMode),this.highWaterMark=c(this,r,"writableHighWaterMark",o),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var i=!1===r.decodeStrings;this.decodeStrings=!i,this.defaultEncoding=r.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var r=e._writableState,n=r.sync,o=r.writecb;if("function"!=typeof o)throw new f;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(r),t)!function(e,t,r,n,o){--t.pendingcb,r?(process$1.nextTick(o,n),process$1.nextTick(A,e,t),e._writableState.errorEmitted=!0,b(e,n)):(o(n),e._writableState.errorEmitted=!0,b(e,n),A(e,t))}(e,r,n,t,o);else{var i=$(r)||e.destroyed;i||r.corked||r.bufferProcessing||!r.bufferedRequest||k(e,r),n?process$1.nextTick(T,e,r,i,o):T(e,r,i,o)}}(n,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==r.emitClose,this.autoDestroy=!!r.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new e(this)}function _(e){var r=this instanceof(t=t||require_stream_duplex$1());if(!r&&!a.call(_,this))return new _(e);this._writableState=new w(e,this,r),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),n.call(this)}function I(e,t,r,n,o,i,a){t.writelen=n,t.writecb=a,t.writing=!0,t.sync=!0,t.destroyed?t.onwrite(new p("write")):r?e._writev(o,t.onwrite):e._write(o,i,t.onwrite),t.sync=!1}function T(e,t,r,n){r||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,n(),A(e,t)}function k(t,r){r.bufferProcessing=!0;var n=r.bufferedRequest;if(t._writev&&n&&n.next){var o=r.bufferedRequestCount,i=new Array(o),a=r.corkedRequestsFree;a.entry=n;for(var s=0,c=!0;n;)i[s]=n,n.isBuf||(c=!1),n=n.next,s+=1;i.allBuffers=c,I(t,r,!0,r.length,i,"",a.finish),r.pendingcb++,r.lastBufferedRequest=null,a.next?(r.corkedRequestsFree=a.next,a.next=null):r.corkedRequestsFree=new e(r),r.bufferedRequestCount=0}else{for(;n;){var u=n.chunk,l=n.encoding,d=n.callback;if(I(t,r,!1,r.objectMode?1:u.length,u,l,d),n=n.next,r.bufferedRequestCount--,r.writing)break}null===n&&(r.lastBufferedRequest=null)}r.bufferedRequest=n,r.bufferProcessing=!1}function $(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function S(e,t){e._final((function(r){t.pendingcb--,r&&b(e,r),t.prefinished=!0,e.emit("prefinish"),A(e,t)}))}function A(e,t){var r=$(t);if(r&&(function(e,t){t.prefinished||t.finalCalled||("function"!=typeof e._final||t.destroyed?(t.prefinished=!0,e.emit("prefinish")):(t.pendingcb++,t.finalCalled=!0,process$1.nextTick(S,e,t)))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"),t.autoDestroy))){var n=e._readableState;(!n||n.autoDestroy&&n.endEmitted)&&e.destroy()}return r}return inherits_browserExports(_,n),w.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(w.prototype,"buffer",{get:r.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(a=Function.prototype[Symbol.hasInstance],Object.defineProperty(_,Symbol.hasInstance,{value:function(e){return!!a.call(this,e)||this===_&&(e&&e._writableState instanceof w)}})):a=function(e){return e instanceof this},_.prototype.pipe=function(){b(this,new h)},_.prototype.write=function(e,t,r){var n,a=this._writableState,s=!1,c=!a.objectMode&&(n=e,o.isBuffer(n)||n instanceof i);return c&&!o.isBuffer(e)&&(e=function(e){return o.from(e)}(e)),"function"==typeof t&&(r=t,t=null),c?t="buffer":t||(t=a.defaultEncoding),"function"!=typeof r&&(r=v),a.ending?function(e,t){var r=new m;b(e,r),process$1.nextTick(t,r)}(this,r):(c||function(e,t,r,n){var o;return null===r?o=new y:"string"==typeof r||t.objectMode||(o=new l("chunk",["string","Buffer"],r)),!o||(b(e,o),process$1.nextTick(n,o),!1)}(this,a,e,r))&&(a.pendingcb++,s=function(e,t,r,n,i,a){if(!r){var s=function(e,t,r){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=o.from(t,r));return t}(t,n,i);n!==s&&(r=!0,i="buffer",n=s)}var c=t.objectMode?1:n.length;t.length+=c;var u=t.length-1))throw new g(e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(_.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(_.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),_.prototype._write=function(e,t,r){r(new d("_write()"))},_.prototype._writev=null,_.prototype.end=function(e,t,r){var n=this._writableState;return"function"==typeof e?(r=e,e=null,t=null):"function"==typeof t&&(r=t,t=null),null!=e&&this.write(e,t),n.corked&&(n.corked=1,this.uncork()),n.ending||function(e,t,r){t.ending=!0,A(e,t),r&&(t.finished?process$1.nextTick(r):e.once("finish",r));t.ended=!0,e.writable=!1}(this,n,r),this},Object.defineProperty(_.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(_.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),_.prototype.destroy=s.destroy,_.prototype._undestroy=s.undestroy,_.prototype._destroy=function(e,t){t(e)},_stream_writable$1}function require_stream_duplex$1(){if(hasRequired_stream_duplex$1)return _stream_duplex$1;hasRequired_stream_duplex$1=1;var e=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};_stream_duplex$1=a;var t=require_stream_readable$1(),r=require_stream_writable$1();inherits_browserExports(a,t);for(var n=e(r.prototype),o=0;o>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function o(e){var t=this.lastTotal-this.lastNeed,r=function(e,t){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==r?r:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function i(e,t){if((e.length-t)%2==0){var r=e.toString("utf16le",t);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function a(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,r)}return t}function s(e,t){var r=(e.length-t)%3;return 0===r?e.toString("base64",t):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-r))}function c(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function u(e){return e.toString(this.encoding)}function l(e){return e&&e.length?this.write(e):""}return string_decoder.StringDecoder=r,r.prototype.write=function(e){if(0===e.length)return"";var t,r;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r=0)return i>0&&(e.lastNeed=i-1),i;if(--o=0)return i>0&&(e.lastNeed=i-2),i;if(--o=0)return i>0&&(2===i?i=0:e.lastNeed=i-3),i;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=r;var o=e.length-(r-this.lastNeed);return e.copy(this.lastChar,0,o),e.toString("utf8",t,o)},r.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length},string_decoder}function requireEndOfStream(){if(hasRequiredEndOfStream)return endOfStream;hasRequiredEndOfStream=1;var e=requireErrorsBrowser().codes.ERR_STREAM_PREMATURE_CLOSE;function t(){}return endOfStream=function r(n,o,i){if("function"==typeof o)return r(n,null,o);o||(o={}),i=function(e){var t=!1;return function(){if(!t){t=!0;for(var r=arguments.length,n=new Array(r),o=0;o0)if("string"==typeof t||u.objectMode||Object.getPrototypeOf(t)===n.prototype||(t=function(e){return n.from(e)}(t)),a)u.endEmitted?b(e,new g):T(e,u,t,!0);else if(u.ended)b(e,new y);else{if(u.destroyed)return!1;u.reading=!1,u.decoder&&!r?(t=u.decoder.write(t),u.objectMode||0!==t.length?T(e,u,t,!1):E(e,u)):T(e,u,t,!1)}else a||(u.reading=!1,E(e,u));return!u.ended&&(u.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=k?e=k:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function S(e){var t=e._readableState;i("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(i("emitReadable",t.flowing),t.emittedReadable=!0,process$1.nextTick(A,e))}function A(e){var t=e._readableState;i("emitReadable_",t.destroyed,t.length,t.ended),t.destroyed||!t.length&&!t.ended||(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,P(e)}function E(e,t){t.readingMore||(t.readingMore=!0,process$1.nextTick(C,e,t))}function C(e,t){for(;!t.reading&&!t.ended&&(t.length0,t.resumeScheduled&&!t.paused?t.flowing=!0:e.listenerCount("data")>0&&e.resume()}function O(e){i("readable nexttick read 0"),e.read(0)}function N(e,t){i("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),P(e),t.flowing&&!t.reading&&e.read(0)}function P(e){var t=e._readableState;for(i("flow",t.flowing);t.flowing&&null!==e.read(););}function M(e,t){return 0===t.length?null:(t.objectMode?r=t.buffer.shift():!e||e>=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):r=t.buffer.consume(e,t.decoder),r);var r}function B(e){var t=e._readableState;i("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,process$1.nextTick(D,t,e))}function D(e,t){if(i("endReadableNT",e.endEmitted,e.length),!e.endEmitted&&0===e.length&&(e.endEmitted=!0,t.readable=!1,t.emit("end"),e.autoDestroy)){var r=t._writableState;(!r||r.autoDestroy&&r.finished)&&t.destroy()}}function x(e,t){for(var r=0,n=e.length;r=t.highWaterMark:t.length>0)||t.ended))return i("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?B(this):S(this),null;if(0===(e=$(e,t))&&t.ended)return 0===t.length&&B(this),null;var n,o=t.needReadable;return i("need readable",o),(0===t.length||t.length-e0?M(e,t):null)?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.awaitDrain=0),0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&B(this)),null!==n&&this.emit("data",n),n},_.prototype._read=function(e){b(this,new m("_read()"))},_.prototype.pipe=function(e,r){var n=this,o=this._readableState;switch(o.pipesCount){case 0:o.pipes=e;break;case 1:o.pipes=[o.pipes,e];break;default:o.pipes.push(e)}o.pipesCount+=1,i("pipe count=%d opts=%j",o.pipesCount,r);var a=(!r||!1!==r.end)&&e!==process$1.stdout&&e!==process$1.stderr?c:y;function s(t,r){i("onunpipe"),t===n&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,i("cleanup"),e.removeListener("close",h),e.removeListener("finish",p),e.removeListener("drain",u),e.removeListener("error",f),e.removeListener("unpipe",s),n.removeListener("end",c),n.removeListener("end",y),n.removeListener("data",d),l=!0,!o.awaitDrain||e._writableState&&!e._writableState.needDrain||u())}function c(){i("onend"),e.end()}o.endEmitted?process$1.nextTick(a):n.once("end",a),e.on("unpipe",s);var u=function(e){return function(){var r=e._readableState;i("pipeOnDrain",r.awaitDrain),r.awaitDrain&&r.awaitDrain--,0===r.awaitDrain&&t(e,"data")&&(r.flowing=!0,P(e))}}(n);e.on("drain",u);var l=!1;function d(t){i("ondata");var r=e.write(t);i("dest.write",r),!1===r&&((1===o.pipesCount&&o.pipes===e||o.pipesCount>1&&-1!==x(o.pipes,e))&&!l&&(i("false write response, pause",o.awaitDrain),o.awaitDrain++),n.pause())}function f(r){i("onerror",r),y(),e.removeListener("error",f),0===t(e,"error")&&b(e,r)}function h(){e.removeListener("finish",p),y()}function p(){i("onfinish"),e.removeListener("close",h),y()}function y(){i("unpipe"),n.unpipe(e)}return n.on("data",d),function(e,t,r){if("function"==typeof e.prependListener)return e.prependListener(t,r);e._events&&e._events[t]?Array.isArray(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r)}(e,"error",f),e.once("close",h),e.once("finish",p),e.emit("pipe",n),o.flowing||(i("pipe resume"),n.resume()),e},_.prototype.unpipe=function(e){var t=this._readableState,r={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,r)),this;if(!e){var n=t.pipes,o=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i0,!1!==o.flowing&&this.resume()):"readable"===e&&(o.endEmitted||o.readableListening||(o.readableListening=o.needReadable=!0,o.flowing=!1,o.emittedReadable=!1,i("on readable",o.length,o.reading),o.length?S(this):o.reading||process$1.nextTick(O,this))),n},_.prototype.addListener=_.prototype.on,_.prototype.removeListener=function(e,t){var n=r.prototype.removeListener.call(this,e,t);return"readable"===e&&process$1.nextTick(R,this),n},_.prototype.removeAllListeners=function(e){var t=r.prototype.removeAllListeners.apply(this,arguments);return"readable"!==e&&void 0!==e||process$1.nextTick(R,this),t},_.prototype.resume=function(){var e=this._readableState;return e.flowing||(i("resume"),e.flowing=!e.readableListening,function(e,t){t.resumeScheduled||(t.resumeScheduled=!0,process$1.nextTick(N,e,t))}(this,e)),e.paused=!1,this},_.prototype.pause=function(){return i("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(i("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},_.prototype.wrap=function(e){var t=this,r=this._readableState,n=!1;for(var o in e.on("end",(function(){if(i("wrapped end"),r.decoder&&!r.ended){var e=r.decoder.end();e&&e.length&&t.push(e)}t.push(null)})),e.on("data",(function(o){(i("wrapped data"),r.decoder&&(o=r.decoder.write(o)),r.objectMode&&null==o)||(r.objectMode||o&&o.length)&&(t.push(o)||(n=!0,e.pause()))})),e)void 0===this[o]&&"function"==typeof e[o]&&(this[o]=function(t){return function(){return e[t].apply(e,arguments)}}(o));for(var a=0;a0,(function(e){u||(u=e),e&&d.forEach(i),o||(d.forEach(i),l(u))}))}));return s.reduce(a)},pipeline_1}function requireStreamBrowserify(){if(hasRequiredStreamBrowserify)return streamBrowserify;hasRequiredStreamBrowserify=1,streamBrowserify=t;var e=eventsExports.EventEmitter;function t(){e.call(this)}return inherits_browserExports(t,e),t.Readable=require_stream_readable$1(),t.Writable=require_stream_writable$1(),t.Duplex=require_stream_duplex$1(),t.Transform=require_stream_transform$1(),t.PassThrough=require_stream_passthrough$1(),t.finished=requireEndOfStream(),t.pipeline=requirePipeline(),t.Stream=t,t.prototype.pipe=function(t,r){var n=this;function o(e){t.writable&&!1===t.write(e)&&n.pause&&n.pause()}function i(){n.readable&&n.resume&&n.resume()}n.on("data",o),t.on("drain",i),t._isStdio||r&&!1===r.end||(n.on("end",s),n.on("close",c));var a=!1;function s(){a||(a=!0,t.end())}function c(){a||(a=!0,"function"==typeof t.destroy&&t.destroy())}function u(t){if(l(),0===e.listenerCount(this,"error"))throw t}function l(){n.removeListener("data",o),t.removeListener("drain",i),n.removeListener("end",s),n.removeListener("close",c),n.removeListener("error",u),t.removeListener("error",u),n.removeListener("end",l),n.removeListener("close",l),t.removeListener("close",l)}return n.on("error",u),t.on("error",u),n.on("end",l),n.on("close",l),t.on("close",l),t.emit("pipe",n),t},streamBrowserify}function requireHashBase(){if(hasRequiredHashBase)return hashBase;hasRequiredHashBase=1;var e=requireSafeBuffer$1().Buffer,t=requireStreamBrowserify().Transform;function r(r){t.call(this),this._block=e.allocUnsafe(r),this._blockSize=r,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}inherits_browserExports(r,t),r.prototype._transform=function(e,t,r){var n=null;try{this.update(e,t)}catch(o){n=o}r(n)},r.prototype._flush=function(e){var t=null;try{this.push(this.digest())}catch(r){t=r}e(t)};var n="undefined"!=typeof Uint8Array,o="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&ArrayBuffer.isView&&(e.prototype instanceof Uint8Array||e.TYPED_ARRAY_SUPPORT);return r.prototype.update=function(t,r){if(this._finalized)throw new Error("Digest already called");t=function(t,r){if(t instanceof e)return t;if("string"==typeof t)return e.from(t,r);if(o&&ArrayBuffer.isView(t)){if(0===t.byteLength)return e.alloc(0);var i=e.from(t.buffer,t.byteOffset,t.byteLength);if(i.byteLength===t.byteLength)return i}if(n&&t instanceof Uint8Array)return e.from(t);if(e.isBuffer(t)&&t.constructor&&"function"==typeof t.constructor.isBuffer&&t.constructor.isBuffer(t))return e.from(t);throw new TypeError('The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView.')}(t,r);for(var i=this._block,a=0;this._blockOffset+t.length-a>=this._blockSize;){for(var s=this._blockOffset;s0;++c)this._length[c]+=u,(u=this._length[c]/4294967296|0)>0&&(this._length[c]-=4294967296*u);return this},r.prototype._update=function(){throw new Error("_update is not implemented")},r.prototype.digest=function(e){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var t=this._digest();void 0!==e&&(t=t.toString(e)),this._block.fill(0),this._blockOffset=0;for(var r=0;r<4;++r)this._length[r]=0;return t},r.prototype._digest=function(){throw new Error("_digest is not implemented")},hashBase=r}function requireMd5_js(){if(hasRequiredMd5_js)return md5_js;hasRequiredMd5_js=1;var e=inherits_browserExports,t=requireHashBase(),r=requireSafeBuffer$1().Buffer,n=new Array(16);function o(){t.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}function i(e,t){return e<>>32-t}function a(e,t,r,n,o,a,s){return i(e+(t&r|~t&n)+o+a|0,s)+t|0}function s(e,t,r,n,o,a,s){return i(e+(t&n|r&~n)+o+a|0,s)+t|0}function c(e,t,r,n,o,a,s){return i(e+(t^r^n)+o+a|0,s)+t|0}function u(e,t,r,n,o,a,s){return i(e+(r^(t|~n))+o+a|0,s)+t|0}return e(o,t),o.prototype._update=function(){for(var e=n,t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);var r=this._a,o=this._b,i=this._c,l=this._d;r=a(r,o,i,l,e[0],3614090360,7),l=a(l,r,o,i,e[1],3905402710,12),i=a(i,l,r,o,e[2],606105819,17),o=a(o,i,l,r,e[3],3250441966,22),r=a(r,o,i,l,e[4],4118548399,7),l=a(l,r,o,i,e[5],1200080426,12),i=a(i,l,r,o,e[6],2821735955,17),o=a(o,i,l,r,e[7],4249261313,22),r=a(r,o,i,l,e[8],1770035416,7),l=a(l,r,o,i,e[9],2336552879,12),i=a(i,l,r,o,e[10],4294925233,17),o=a(o,i,l,r,e[11],2304563134,22),r=a(r,o,i,l,e[12],1804603682,7),l=a(l,r,o,i,e[13],4254626195,12),i=a(i,l,r,o,e[14],2792965006,17),r=s(r,o=a(o,i,l,r,e[15],1236535329,22),i,l,e[1],4129170786,5),l=s(l,r,o,i,e[6],3225465664,9),i=s(i,l,r,o,e[11],643717713,14),o=s(o,i,l,r,e[0],3921069994,20),r=s(r,o,i,l,e[5],3593408605,5),l=s(l,r,o,i,e[10],38016083,9),i=s(i,l,r,o,e[15],3634488961,14),o=s(o,i,l,r,e[4],3889429448,20),r=s(r,o,i,l,e[9],568446438,5),l=s(l,r,o,i,e[14],3275163606,9),i=s(i,l,r,o,e[3],4107603335,14),o=s(o,i,l,r,e[8],1163531501,20),r=s(r,o,i,l,e[13],2850285829,5),l=s(l,r,o,i,e[2],4243563512,9),i=s(i,l,r,o,e[7],1735328473,14),r=c(r,o=s(o,i,l,r,e[12],2368359562,20),i,l,e[5],4294588738,4),l=c(l,r,o,i,e[8],2272392833,11),i=c(i,l,r,o,e[11],1839030562,16),o=c(o,i,l,r,e[14],4259657740,23),r=c(r,o,i,l,e[1],2763975236,4),l=c(l,r,o,i,e[4],1272893353,11),i=c(i,l,r,o,e[7],4139469664,16),o=c(o,i,l,r,e[10],3200236656,23),r=c(r,o,i,l,e[13],681279174,4),l=c(l,r,o,i,e[0],3936430074,11),i=c(i,l,r,o,e[3],3572445317,16),o=c(o,i,l,r,e[6],76029189,23),r=c(r,o,i,l,e[9],3654602809,4),l=c(l,r,o,i,e[12],3873151461,11),i=c(i,l,r,o,e[15],530742520,16),r=u(r,o=c(o,i,l,r,e[2],3299628645,23),i,l,e[0],4096336452,6),l=u(l,r,o,i,e[7],1126891415,10),i=u(i,l,r,o,e[14],2878612391,15),o=u(o,i,l,r,e[5],4237533241,21),r=u(r,o,i,l,e[12],1700485571,6),l=u(l,r,o,i,e[3],2399980690,10),i=u(i,l,r,o,e[10],4293915773,15),o=u(o,i,l,r,e[1],2240044497,21),r=u(r,o,i,l,e[8],1873313359,6),l=u(l,r,o,i,e[15],4264355552,10),i=u(i,l,r,o,e[6],2734768916,15),o=u(o,i,l,r,e[13],1309151649,21),r=u(r,o,i,l,e[4],4149444226,6),l=u(l,r,o,i,e[11],3174756917,10),i=u(i,l,r,o,e[2],718787259,15),o=u(o,i,l,r,e[9],3951481745,21),this._a=this._a+r|0,this._b=this._b+o|0,this._c=this._c+i|0,this._d=this._d+l|0},o.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=r.allocUnsafe(16);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e},md5_js=o}function requireRipemd160(){if(hasRequiredRipemd160)return ripemd160;hasRequiredRipemd160=1;var e=require$$2$1.Buffer,t=inherits_browserExports,r=requireHashBase(),n=new Array(16),o=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],i=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],a=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],s=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],c=[0,1518500249,1859775393,2400959708,2840853838],u=[1352829926,1548603684,1836072691,2053994217,0];function l(){r.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}function d(e,t){return e<>>32-t}function f(e,t,r,n,o,i,a,s){return d(e+(t^r^n)+i+a|0,s)+o|0}function h(e,t,r,n,o,i,a,s){return d(e+(t&r|~t&n)+i+a|0,s)+o|0}function p(e,t,r,n,o,i,a,s){return d(e+((t|~r)^n)+i+a|0,s)+o|0}function y(e,t,r,n,o,i,a,s){return d(e+(t&n|r&~n)+i+a|0,s)+o|0}function m(e,t,r,n,o,i,a,s){return d(e+(t^(r|~n))+i+a|0,s)+o|0}return t(l,r),l.prototype._update=function(){for(var e=n,t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);for(var r=0|this._a,l=0|this._b,g=0|this._c,b=0|this._d,v=0|this._e,w=0|this._a,_=0|this._b,I=0|this._c,T=0|this._d,k=0|this._e,$=0;$<80;$+=1){var S,A;$<16?(S=f(r,l,g,b,v,e[o[$]],c[0],a[$]),A=m(w,_,I,T,k,e[i[$]],u[0],s[$])):$<32?(S=h(r,l,g,b,v,e[o[$]],c[1],a[$]),A=y(w,_,I,T,k,e[i[$]],u[1],s[$])):$<48?(S=p(r,l,g,b,v,e[o[$]],c[2],a[$]),A=p(w,_,I,T,k,e[i[$]],u[2],s[$])):$<64?(S=y(r,l,g,b,v,e[o[$]],c[3],a[$]),A=h(w,_,I,T,k,e[i[$]],u[3],s[$])):(S=m(r,l,g,b,v,e[o[$]],c[4],a[$]),A=f(w,_,I,T,k,e[i[$]],u[4],s[$])),r=v,v=b,b=d(g,10),g=l,l=S,w=k,k=T,T=d(I,10),I=_,_=A}var E=this._b+g+T|0;this._b=this._c+b+k|0,this._c=this._d+v+w|0,this._d=this._e+r+_|0,this._e=this._a+l+I|0,this._a=E},l.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var t=e.alloc?e.alloc(20):new e(20);return t.writeInt32LE(this._a,0),t.writeInt32LE(this._b,4),t.writeInt32LE(this._c,8),t.writeInt32LE(this._d,12),t.writeInt32LE(this._e,16),t},ripemd160=l}var sha_js={exports:{}},hash$9,hasRequiredHash,sha$1,hasRequiredSha,sha1$1,hasRequiredSha1,sha256$3,hasRequiredSha256,sha224$1,hasRequiredSha224,sha512$4,hasRequiredSha512,sha384$2,hasRequiredSha384,hasRequiredSha_js,cipherBase,hasRequiredCipherBase,browser$e,hasRequiredBrowser$9,legacy$1,hasRequiredLegacy,md5$1,hasRequiredMd5,browser$d,hasRequiredBrowser$8;function requireHash(){if(hasRequiredHash)return hash$9;hasRequiredHash=1;var e=requireSafeBuffer$1().Buffer;function t(t,r){this._block=e.alloc(t),this._finalSize=r,this._blockSize=t,this._len=0}return t.prototype.update=function(t,r){"string"==typeof t&&(r=r||"utf8",t=e.from(t,r));for(var n=this._block,o=this._blockSize,i=t.length,a=this._len,s=0;s=this._finalSize&&(this._update(this._block),this._block.fill(0));var r=8*this._len;if(r<=4294967295)this._block.writeUInt32BE(r,this._blockSize-4);else{var n=(4294967295&r)>>>0,o=(r-n)/4294967296;this._block.writeUInt32BE(o,this._blockSize-8),this._block.writeUInt32BE(n,this._blockSize-4)}this._update(this._block);var i=this._hash();return e?i.toString(e):i},t.prototype._update=function(){throw new Error("_update must be implemented by subclass")},hash$9=t}function requireSha(){if(hasRequiredSha)return sha$1;hasRequiredSha=1;var e=inherits_browserExports,t=requireHash(),r=requireSafeBuffer$1().Buffer,n=[1518500249,1859775393,-1894007588,-899497514],o=new Array(80);function i(){this.init(),this._w=o,t.call(this,64,56)}function a(e){return e<<30|e>>>2}function s(e,t,r,n){return 0===e?t&r|~t&n:2===e?t&r|t&n|r&n:t^r^n}return e(i,t),i.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},i.prototype._update=function(e){for(var t,r=this._w,o=0|this._a,i=0|this._b,c=0|this._c,u=0|this._d,l=0|this._e,d=0;d<16;++d)r[d]=e.readInt32BE(4*d);for(;d<80;++d)r[d]=r[d-3]^r[d-8]^r[d-14]^r[d-16];for(var f=0;f<80;++f){var h=~~(f/20),p=0|((t=o)<<5|t>>>27)+s(h,i,c,u)+l+r[f]+n[h];l=u,u=c,c=a(i),i=o,o=p}this._a=o+this._a|0,this._b=i+this._b|0,this._c=c+this._c|0,this._d=u+this._d|0,this._e=l+this._e|0},i.prototype._hash=function(){var e=r.allocUnsafe(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},sha$1=i}function requireSha1(){if(hasRequiredSha1)return sha1$1;hasRequiredSha1=1;var e=inherits_browserExports,t=requireHash(),r=requireSafeBuffer$1().Buffer,n=[1518500249,1859775393,-1894007588,-899497514],o=new Array(80);function i(){this.init(),this._w=o,t.call(this,64,56)}function a(e){return e<<5|e>>>27}function s(e){return e<<30|e>>>2}function c(e,t,r,n){return 0===e?t&r|~t&n:2===e?t&r|t&n|r&n:t^r^n}return e(i,t),i.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},i.prototype._update=function(e){for(var t,r=this._w,o=0|this._a,i=0|this._b,u=0|this._c,l=0|this._d,d=0|this._e,f=0;f<16;++f)r[f]=e.readInt32BE(4*f);for(;f<80;++f)r[f]=(t=r[f-3]^r[f-8]^r[f-14]^r[f-16])<<1|t>>>31;for(var h=0;h<80;++h){var p=~~(h/20),y=a(o)+c(p,i,u,l)+d+r[h]+n[p]|0;d=l,l=u,u=s(i),i=o,o=y}this._a=o+this._a|0,this._b=i+this._b|0,this._c=u+this._c|0,this._d=l+this._d|0,this._e=d+this._e|0},i.prototype._hash=function(){var e=r.allocUnsafe(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},sha1$1=i}function requireSha256(){if(hasRequiredSha256)return sha256$3;hasRequiredSha256=1;var e=inherits_browserExports,t=requireHash(),r=requireSafeBuffer$1().Buffer,n=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],o=new Array(64);function i(){this.init(),this._w=o,t.call(this,64,56)}function a(e,t,r){return r^e&(t^r)}function s(e,t,r){return e&t|r&(e|t)}function c(e){return(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10)}function u(e){return(e>>>6|e<<26)^(e>>>11|e<<21)^(e>>>25|e<<7)}function l(e){return(e>>>7|e<<25)^(e>>>18|e<<14)^e>>>3}return e(i,t),i.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this},i.prototype._update=function(e){for(var t,r=this._w,o=0|this._a,i=0|this._b,d=0|this._c,f=0|this._d,h=0|this._e,p=0|this._f,y=0|this._g,m=0|this._h,g=0;g<16;++g)r[g]=e.readInt32BE(4*g);for(;g<64;++g)r[g]=0|(((t=r[g-2])>>>17|t<<15)^(t>>>19|t<<13)^t>>>10)+r[g-7]+l(r[g-15])+r[g-16];for(var b=0;b<64;++b){var v=m+u(h)+a(h,p,y)+n[b]+r[b]|0,w=c(o)+s(o,i,d)|0;m=y,y=p,p=h,h=f+v|0,f=d,d=i,i=o,o=v+w|0}this._a=o+this._a|0,this._b=i+this._b|0,this._c=d+this._c|0,this._d=f+this._d|0,this._e=h+this._e|0,this._f=p+this._f|0,this._g=y+this._g|0,this._h=m+this._h|0},i.prototype._hash=function(){var e=r.allocUnsafe(32);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e.writeInt32BE(this._h,28),e},sha256$3=i}function requireSha224(){if(hasRequiredSha224)return sha224$1;hasRequiredSha224=1;var e=inherits_browserExports,t=requireSha256(),r=requireHash(),n=requireSafeBuffer$1().Buffer,o=new Array(64);function i(){this.init(),this._w=o,r.call(this,64,56)}return e(i,t),i.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},i.prototype._hash=function(){var e=n.allocUnsafe(28);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e},sha224$1=i}function requireSha512(){if(hasRequiredSha512)return sha512$4;hasRequiredSha512=1;var e=inherits_browserExports,t=requireHash(),r=requireSafeBuffer$1().Buffer,n=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],o=new Array(160);function i(){this.init(),this._w=o,t.call(this,128,112)}function a(e,t,r){return r^e&(t^r)}function s(e,t,r){return e&t|r&(e|t)}function c(e,t){return(e>>>28|t<<4)^(t>>>2|e<<30)^(t>>>7|e<<25)}function u(e,t){return(e>>>14|t<<18)^(e>>>18|t<<14)^(t>>>9|e<<23)}function l(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^e>>>7}function d(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^(e>>>7|t<<25)}function f(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^e>>>6}function h(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^(e>>>6|t<<26)}function p(e,t){return e>>>0>>0?1:0}return e(i,t),i.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},i.prototype._update=function(e){for(var t=this._w,r=0|this._ah,o=0|this._bh,i=0|this._ch,y=0|this._dh,m=0|this._eh,g=0|this._fh,b=0|this._gh,v=0|this._hh,w=0|this._al,_=0|this._bl,I=0|this._cl,T=0|this._dl,k=0|this._el,$=0|this._fl,S=0|this._gl,A=0|this._hl,E=0;E<32;E+=2)t[E]=e.readInt32BE(4*E),t[E+1]=e.readInt32BE(4*E+4);for(;E<160;E+=2){var C=t[E-30],R=t[E-30+1],O=l(C,R),N=d(R,C),P=f(C=t[E-4],R=t[E-4+1]),M=h(R,C),B=t[E-14],D=t[E-14+1],x=t[E-32],L=t[E-32+1],U=N+D|0,j=O+B+p(U,N)|0;j=(j=j+P+p(U=U+M|0,M)|0)+x+p(U=U+L|0,L)|0,t[E]=j,t[E+1]=U}for(var F=0;F<160;F+=2){j=t[F],U=t[F+1];var q=s(r,o,i),K=s(w,_,I),H=c(r,w),G=c(w,r),z=u(m,k),V=u(k,m),W=n[F],Q=n[F+1],Y=a(m,g,b),X=a(k,$,S),J=A+V|0,Z=v+z+p(J,A)|0;Z=(Z=(Z=Z+Y+p(J=J+X|0,X)|0)+W+p(J=J+Q|0,Q)|0)+j+p(J=J+U|0,U)|0;var ee=G+K|0,te=H+q+p(ee,G)|0;v=b,A=S,b=g,S=$,g=m,$=k,m=y+Z+p(k=T+J|0,T)|0,y=i,T=I,i=o,I=_,o=r,_=w,r=Z+te+p(w=J+ee|0,J)|0}this._al=this._al+w|0,this._bl=this._bl+_|0,this._cl=this._cl+I|0,this._dl=this._dl+T|0,this._el=this._el+k|0,this._fl=this._fl+$|0,this._gl=this._gl+S|0,this._hl=this._hl+A|0,this._ah=this._ah+r+p(this._al,w)|0,this._bh=this._bh+o+p(this._bl,_)|0,this._ch=this._ch+i+p(this._cl,I)|0,this._dh=this._dh+y+p(this._dl,T)|0,this._eh=this._eh+m+p(this._el,k)|0,this._fh=this._fh+g+p(this._fl,$)|0,this._gh=this._gh+b+p(this._gl,S)|0,this._hh=this._hh+v+p(this._hl,A)|0},i.prototype._hash=function(){var e=r.allocUnsafe(64);function t(t,r,n){e.writeInt32BE(t,n),e.writeInt32BE(r,n+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),t(this._gh,this._gl,48),t(this._hh,this._hl,56),e},sha512$4=i}function requireSha384(){if(hasRequiredSha384)return sha384$2;hasRequiredSha384=1;var e=inherits_browserExports,t=requireSha512(),r=requireHash(),n=requireSafeBuffer$1().Buffer,o=new Array(160);function i(){this.init(),this._w=o,r.call(this,128,112)}return e(i,t),i.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},i.prototype._hash=function(){var e=n.allocUnsafe(48);function t(t,r,n){e.writeInt32BE(t,n),e.writeInt32BE(r,n+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),e},sha384$2=i}function requireSha_js(){if(hasRequiredSha_js)return sha_js.exports;hasRequiredSha_js=1;var e=sha_js.exports=function(t){t=t.toLowerCase();var r=e[t];if(!r)throw new Error(t+" is not supported (we accept pull requests)");return new r};return e.sha=requireSha(),e.sha1=requireSha1(),e.sha224=requireSha224(),e.sha256=requireSha256(),e.sha384=requireSha384(),e.sha512=requireSha512(),sha_js.exports}function requireCipherBase(){if(hasRequiredCipherBase)return cipherBase;hasRequiredCipherBase=1;var e=requireSafeBuffer$1().Buffer,t=requireStreamBrowserify().Transform,r=requireString_decoder().StringDecoder;function n(e){t.call(this),this.hashMode="string"==typeof e,this.hashMode?this[e]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}inherits_browserExports(n,t);var o="undefined"!=typeof Uint8Array,i="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&ArrayBuffer.isView&&(e.prototype instanceof Uint8Array||e.TYPED_ARRAY_SUPPORT);return n.prototype.update=function(t,r,n){var a=function(t,r){if(t instanceof e)return t;if("string"==typeof t)return e.from(t,r);if(i&&ArrayBuffer.isView(t)){if(0===t.byteLength)return e.alloc(0);var n=e.from(t.buffer,t.byteOffset,t.byteLength);if(n.byteLength===t.byteLength)return n}if(o&&t instanceof Uint8Array)return e.from(t);if(e.isBuffer(t)&&t.constructor&&"function"==typeof t.constructor.isBuffer&&t.constructor.isBuffer(t))return e.from(t);throw new TypeError('The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView.')}(t,r),s=this._update(a);return this.hashMode?this:(n&&(s=this._toString(s,n)),s)},n.prototype.setAutoPadding=function(){},n.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},n.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},n.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},n.prototype._transform=function(e,t,r){var n;try{this.hashMode?this._update(e):this.push(this._update(e))}catch(e2){n=e2}finally{r(n)}},n.prototype._flush=function(e){var t;try{this.push(this.__final())}catch(e2){t=e2}e(t)},n.prototype._finalOrDigest=function(t){var r=this.__final()||e.alloc(0);return t&&(r=this._toString(r,t,!0)),r},n.prototype._toString=function(e,t,n){if(this._decoder||(this._decoder=new r(t),this._encoding=t),this._encoding!==t)throw new Error("can’t switch encodings");var o=this._decoder.write(e);return n&&(o+=this._decoder.end()),o},cipherBase=n}function requireBrowser$9(){if(hasRequiredBrowser$9)return browser$e;hasRequiredBrowser$9=1;var e=inherits_browserExports,t=requireMd5_js(),r=requireRipemd160(),n=requireSha_js(),o=requireCipherBase();function i(e){o.call(this,"digest"),this._hash=e}return e(i,o),i.prototype._update=function(e){this._hash.update(e)},i.prototype._final=function(){return this._hash.digest()},browser$e=function(e){return"md5"===(e=e.toLowerCase())?new t:"rmd160"===e||"ripemd160"===e?new r:new i(n(e))}}function requireLegacy(){if(hasRequiredLegacy)return legacy$1;hasRequiredLegacy=1;var e=inherits_browserExports,t=requireSafeBuffer$1().Buffer,r=requireCipherBase(),n=t.alloc(128),o=64;function i(e,i){r.call(this,"digest"),"string"==typeof i&&(i=t.from(i)),this._alg=e,this._key=i,i.length>o?i=e(i):i.lengtho)?t=("rmd160"===e?new i:a(e)).update(t).digest():t.lengthe||r!=r)throw new TypeError("Bad key length")}}function requireDefaultEncoding(){if(hasRequiredDefaultEncoding)return defaultEncoding_1;var e;if(hasRequiredDefaultEncoding=1,commonjsGlobal.process&&commonjsGlobal.process.browser)e="utf-8";else if(commonjsGlobal.process&&commonjsGlobal.process.version){e=parseInt(process$1.version.split(".")[0].slice(1),10)>=6?"utf-8":"binary"}else e="utf-8";return defaultEncoding_1=e}function requireToBuffer(){if(hasRequiredToBuffer)return toBuffer;hasRequiredToBuffer=1;var e=requireSafeBuffer$1().Buffer;return toBuffer=function(t,r,n){if(e.isBuffer(t))return t;if("string"==typeof t)return e.from(t,r);if(ArrayBuffer.isView(t))return e.from(t.buffer);throw new TypeError(n+" must be a string, a Buffer, a typed array or a DataView")}}function requireSyncBrowser(){if(hasRequiredSyncBrowser)return syncBrowser;hasRequiredSyncBrowser=1;var e=requireMd5(),t=requireRipemd160(),r=requireSha_js(),n=requireSafeBuffer$1().Buffer,o=requirePrecondition(),i=requireDefaultEncoding(),a=requireToBuffer(),s=n.alloc(128),c={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function u(o,i,a){var u=function(n){function o(e){return r(n).update(e).digest()}function i(e){return(new t).update(e).digest()}return"rmd160"===n||"ripemd160"===n?i:"md5"===n?e:o}(o),l="sha512"===o||"sha384"===o?128:64;i.length>l?i=u(i):i.length>>0},utils$Q.writeUInt32BE=function(e,t,r){e[0+r]=t>>>24,e[1+r]=t>>>16&255,e[2+r]=t>>>8&255,e[3+r]=255&t},utils$Q.ip=function(e,t,r,n){for(var o=0,i=0,a=6;a>=0;a-=2){for(var s=0;s<=24;s+=8)o<<=1,o|=t>>>s+a&1;for(s=0;s<=24;s+=8)o<<=1,o|=e>>>s+a&1}for(a=6;a>=0;a-=2){for(s=1;s<=25;s+=8)i<<=1,i|=t>>>s+a&1;for(s=1;s<=25;s+=8)i<<=1,i|=e>>>s+a&1}r[n+0]=o>>>0,r[n+1]=i>>>0},utils$Q.rip=function(e,t,r,n){for(var o=0,i=0,a=0;a<4;a++)for(var s=24;s>=0;s-=8)o<<=1,o|=t>>>s+a&1,o<<=1,o|=e>>>s+a&1;for(a=4;a<8;a++)for(s=24;s>=0;s-=8)i<<=1,i|=t>>>s+a&1,i<<=1,i|=e>>>s+a&1;r[n+0]=o>>>0,r[n+1]=i>>>0},utils$Q.pc1=function(e,t,r,n){for(var o=0,i=0,a=7;a>=5;a--){for(var s=0;s<=24;s+=8)o<<=1,o|=t>>s+a&1;for(s=0;s<=24;s+=8)o<<=1,o|=e>>s+a&1}for(s=0;s<=24;s+=8)o<<=1,o|=t>>s+a&1;for(a=1;a<=3;a++){for(s=0;s<=24;s+=8)i<<=1,i|=t>>s+a&1;for(s=0;s<=24;s+=8)i<<=1,i|=e>>s+a&1}for(s=0;s<=24;s+=8)i<<=1,i|=e>>s+a&1;r[n+0]=o>>>0,r[n+1]=i>>>0},utils$Q.r28shl=function(e,t){return e<>>28-t};var e=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];utils$Q.pc2=function(t,r,n,o){for(var i=0,a=0,s=e.length>>>1,c=0;c>>e[c]&1;for(c=s;c>>e[c]&1;n[o+0]=i>>>0,n[o+1]=a>>>0},utils$Q.expand=function(e,t,r){var n=0,o=0;n=(1&e)<<5|e>>>27;for(var i=23;i>=15;i-=4)n<<=6,n|=e>>>i&63;for(i=11;i>=3;i-=4)o|=e>>>i&63,o<<=6;o|=(31&e)<<1|e>>>31,t[r+0]=n>>>0,t[r+1]=o>>>0};var t=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];utils$Q.substitute=function(e,r){for(var n=0,o=0;o<4;o++){n<<=4,n|=t[64*o+(e>>>18-6*o&63)]}for(o=0;o<4;o++){n<<=4,n|=t[256+64*o+(r>>>18-6*o&63)]}return n>>>0};var r=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];return utils$Q.permute=function(e){for(var t=0,n=0;n>>r[n]&1;return t>>>0},utils$Q.padSplit=function(e,t,r){for(var n=e.toString(2);n.length0;n--)t+=this._buffer(e,t),r+=this._flushBuffer(o,r);return t+=this._buffer(e,t),o},t.prototype.final=function(e){var t,r;return e&&(t=this.update(e)),r="encrypt"===this.type?this._finalEncrypt():this._finalDecrypt(),t?t.concat(r):r},t.prototype._pad=function(e,t){if(0===t)return!1;for(;t>>1];o=r.r28shl(o,c),i=r.r28shl(i,c),r.pc2(o,i,t.keys,s)}},i.prototype._update=function(e,t,n,o){var i=this._desState,a=r.readUInt32BE(e,t),s=r.readUInt32BE(e,t+4);r.ip(a,s,i.tmp,0),a=i.tmp[0],s=i.tmp[1],"encrypt"===this.type?this._encrypt(i,a,s,i.tmp,0):this._decrypt(i,a,s,i.tmp,0),a=i.tmp[0],s=i.tmp[1],r.writeUInt32BE(n,a,o),r.writeUInt32BE(n,s,o+4)},i.prototype._pad=function(e,t){if(!1===this.padding)return!1;for(var r=e.length-t,n=t;n>>0,a=f}r.rip(s,a,o,i)},i.prototype._decrypt=function(e,t,n,o,i){for(var a=n,s=t,c=e.keys.length-2;c>=0;c-=2){var u=e.keys[c],l=e.keys[c+1];r.expand(a,e.tmp,0),u^=e.tmp[0],l^=e.tmp[1];var d=r.substitute(u,l),f=a;a=(s^r.permute(d))>>>0,s=f}r.rip(a,s,o,i)},des}assert$x.equal=function(e,t,r){if(e!=t)throw new Error(r||"Assertion failed: "+e+" != "+t)};var cbc$1={},hasRequiredCbc$1,ede,hasRequiredEde,hasRequiredDes,browserifyDes,hasRequiredBrowserifyDes;function requireCbc$1(){if(hasRequiredCbc$1)return cbc$1;hasRequiredCbc$1=1;var e=minimalisticAssert$1,t=inherits_browserExports,r={};function n(t){e.equal(t.length,8,"Invalid IV length"),this.iv=new Array(8);for(var r=0;r>a%8,e._prev=r(e._prev,n?o:i);return s}function r(t,r){var n=t.length,o=-1,i=e.allocUnsafe(t.length);for(t=e.concat([t,e.from([r])]);++o>7;return i}return cfb1.encrypt=function(r,n,o){for(var i=n.length,a=e.allocUnsafe(i),s=-1;++s>>24]^l[p>>>16&255]^d[y>>>8&255]^f[255&m]^t[g++],a=u[p>>>24]^l[y>>>16&255]^d[m>>>8&255]^f[255&h]^t[g++],s=u[y>>>24]^l[m>>>16&255]^d[h>>>8&255]^f[255&p]^t[g++],c=u[m>>>24]^l[h>>>16&255]^d[p>>>8&255]^f[255&y]^t[g++],h=i,p=a,y=s,m=c;return i=(n[h>>>24]<<24|n[p>>>16&255]<<16|n[y>>>8&255]<<8|n[255&m])^t[g++],a=(n[p>>>24]<<24|n[y>>>16&255]<<16|n[m>>>8&255]<<8|n[255&h])^t[g++],s=(n[y>>>24]<<24|n[m>>>16&255]<<16|n[h>>>8&255]<<8|n[255&p])^t[g++],c=(n[m>>>24]<<24|n[h>>>16&255]<<16|n[p>>>8&255]<<8|n[255&y])^t[g++],[i>>>=0,a>>>=0,s>>>=0,c>>>=0]}var o=[0,1,2,4,8,16,32,64,128,27,54],i=function(){for(var e=new Array(256),t=0;t<256;t++)e[t]=t<128?t<<1:t<<1^283;for(var r=[],n=[],o=[[],[],[],[]],i=[[],[],[],[]],a=0,s=0,c=0;c<256;++c){var u=s^s<<1^s<<2^s<<3^s<<4;u=u>>>8^255&u^99,r[a]=u,n[u]=a;var l=e[a],d=e[l],f=e[d],h=257*e[u]^16843008*u;o[0][a]=h<<24|h>>>8,o[1][a]=h<<16|h>>>16,o[2][a]=h<<8|h>>>24,o[3][a]=h,h=16843009*f^65537*d^257*l^16843008*a,i[0][u]=h<<24|h>>>8,i[1][u]=h<<16|h>>>16,i[2][u]=h<<8|h>>>24,i[3][u]=h,0===a?a=s=1:(a=l^e[e[e[f^l]]],s^=e[e[s]])}return{SBOX:r,INV_SBOX:n,SUB_MIX:o,INV_SUB_MIX:i}}();function a(e){this._key=t(e),this._reset()}return a.blockSize=16,a.keySize=32,a.prototype.blockSize=a.blockSize,a.prototype.keySize=a.keySize,a.prototype._reset=function(){for(var e=this._key,t=e.length,r=t+6,n=4*(r+1),a=[],s=0;s>>24,c=i.SBOX[c>>>24]<<24|i.SBOX[c>>>16&255]<<16|i.SBOX[c>>>8&255]<<8|i.SBOX[255&c],c^=o[s/t|0]<<24):t>6&&s%t==4&&(c=i.SBOX[c>>>24]<<24|i.SBOX[c>>>16&255]<<16|i.SBOX[c>>>8&255]<<8|i.SBOX[255&c]),a[s]=a[s-t]^c}for(var u=[],l=0;l>>24]]^i.INV_SUB_MIX[1][i.SBOX[f>>>16&255]]^i.INV_SUB_MIX[2][i.SBOX[f>>>8&255]]^i.INV_SUB_MIX[3][i.SBOX[255&f]]}this._nRounds=r,this._keySchedule=a,this._invKeySchedule=u},a.prototype.encryptBlockRaw=function(e){return n(e=t(e),this._keySchedule,i.SUB_MIX,i.SBOX,this._nRounds)},a.prototype.encryptBlock=function(t){var r=this.encryptBlockRaw(t),n=e.allocUnsafe(16);return n.writeUInt32BE(r[0],0),n.writeUInt32BE(r[1],4),n.writeUInt32BE(r[2],8),n.writeUInt32BE(r[3],12),n},a.prototype.decryptBlock=function(r){var o=(r=t(r))[1];r[1]=r[3],r[3]=o;var a=n(r,this._invKeySchedule,i.INV_SUB_MIX,i.INV_SBOX,this._nRounds),s=e.allocUnsafe(16);return s.writeUInt32BE(a[0],0),s.writeUInt32BE(a[3],4),s.writeUInt32BE(a[2],8),s.writeUInt32BE(a[1],12),s},a.prototype.scrub=function(){r(this._keySchedule),r(this._invKeySchedule),r(this._key)},aes.AES=a,aes}function requireGhash(){if(hasRequiredGhash)return ghash;hasRequiredGhash=1;var e=requireSafeBuffer$1().Buffer,t=e.alloc(16,0);function r(t){var r=e.allocUnsafe(16);return r.writeUInt32BE(t[0]>>>0,0),r.writeUInt32BE(t[1]>>>0,4),r.writeUInt32BE(t[2]>>>0,8),r.writeUInt32BE(t[3]>>>0,12),r}function n(t){this.h=t,this.state=e.alloc(16,0),this.cache=e.allocUnsafe(0)}return n.prototype.ghash=function(e){for(var t=-1;++t0;t--)o[t]=o[t]>>>1|(1&o[t-1])<<31;o[0]=o[0]>>>1,n&&(o[0]=o[0]^225<<24)}this.state=r(i)},n.prototype.update=function(t){var r;for(this.cache=e.concat([this.cache,t]);this.cache.length>=16;)r=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(r)},n.prototype.final=function(n,o){return this.cache.length&&this.ghash(e.concat([this.cache,t],16)),this.ghash(r([0,n,0,o])),this.state},ghash=n}function requireAuthCipher(){if(hasRequiredAuthCipher)return authCipher;hasRequiredAuthCipher=1;var e=requireAes(),t=requireSafeBuffer$1().Buffer,r=requireCipherBase(),n=inherits_browserExports,o=requireGhash(),i=requireBufferXor(),a=requireIncr32();function s(n,i,s,c){r.call(this);var u=t.alloc(4,0);this._cipher=new e.AES(i);var l=this._cipher.encryptBlock(u);this._ghash=new o(l),s=function(e,r,n){if(12===r.length)return e._finID=t.concat([r,t.from([0,0,0,1])]),t.concat([r,t.from([0,0,0,2])]);var i=new o(n),s=r.length,c=s%16;i.update(r),c&&(c=16-c,i.update(t.alloc(c,0))),i.update(t.alloc(8,0));var u=8*s,l=t.alloc(8);l.writeUIntBE(u,0,8),i.update(l),e._finID=i.state;var d=t.from(e._finID);return a(d),d}(this,s,l),this._prev=t.from(s),this._cache=t.allocUnsafe(0),this._secCache=t.allocUnsafe(0),this._decrypt=c,this._alen=0,this._len=0,this._mode=n,this._authTag=null,this._called=!1}return n(s,r),s.prototype._update=function(e){if(!this._called&&this._alen){var r=16-this._alen%16;r<16&&(r=t.alloc(r,0),this._ghash.update(r))}this._called=!0;var n=this._mode.encrypt(this,e);return this._decrypt?this._ghash.update(e):this._ghash.update(n),this._len+=e.length,n},s.prototype._final=function(){if(this._decrypt&&!this._authTag)throw new Error("Unsupported state or unable to authenticate data");var e=i(this._ghash.final(8*this._alen,8*this._len),this._cipher.encryptBlock(this._finID));if(this._decrypt&&function(e,t){var r=0;e.length!==t.length&&r++;for(var n=Math.min(e.length,t.length),o=0;o0||i>0;){var l=new t;l.update(u),l.update(r),n&&l.update(n),u=l.digest();var d=0;if(a>0){var f=s.length-a;d=Math.min(a,u.length),u.copy(s,f,0,d),a-=d}if(d0){var h=c.length-i,p=Math.min(i,u.length-d);u.copy(c,h,d,d+p),i-=p}}return u.fill(0),{key:s,iv:c}}}function requireEncrypter(){if(hasRequiredEncrypter)return encrypter;hasRequiredEncrypter=1;var e=requireModes$1(),t=requireAuthCipher(),r=requireSafeBuffer$1().Buffer,n=requireStreamCipher(),o=requireCipherBase(),i=requireAes(),a=requireEvp_bytestokey();function s(e,t,n){o.call(this),this._cache=new u,this._cipher=new i.AES(t),this._prev=r.from(n),this._mode=e,this._autopadding=!0}inherits_browserExports(s,o),s.prototype._update=function(e){var t,n;this._cache.add(e);for(var o=[];t=this._cache.get();)n=this._mode.encrypt(this,t),o.push(n);return r.concat(o)};var c=r.alloc(16,16);function u(){this.cache=r.allocUnsafe(0)}function l(o,i,a){var c=e[o.toLowerCase()];if(!c)throw new TypeError("invalid suite type");if("string"==typeof i&&(i=r.from(i)),i.length!==c.key/8)throw new TypeError("invalid key length "+i.length);if("string"==typeof a&&(a=r.from(a)),"GCM"!==c.mode&&a.length!==c.iv)throw new TypeError("invalid iv length "+a.length);return"stream"===c.type?new n(c.module,i,a):"auth"===c.type?new t(c.module,i,a):new s(c.module,i,a)}return s.prototype._final=function(){var e=this._cache.flush();if(this._autopadding)return e=this._mode.encrypt(this,e),this._cipher.scrub(),e;if(!e.equals(c))throw this._cipher.scrub(),new Error("data not multiple of block length")},s.prototype.setAutoPadding=function(e){return this._autopadding=!!e,this},u.prototype.add=function(e){this.cache=r.concat([this.cache,e])},u.prototype.get=function(){if(this.cache.length>15){var e=this.cache.slice(0,16);return this.cache=this.cache.slice(16),e}return null},u.prototype.flush=function(){for(var e=16-this.cache.length,t=r.allocUnsafe(e),n=-1;++n16)throw new Error("unable to decrypt data");var r=-1;for(;++r16)return t=this.cache.slice(0,16),this.cache=this.cache.slice(16),t}else if(this.cache.length>=16)return t=this.cache.slice(0,16),this.cache=this.cache.slice(16),t;return null},c.prototype.flush=function(){if(this.cache.length)return this.cache},decrypter.createDecipher=function(e,t){var n=r[e.toLowerCase()];if(!n)throw new TypeError("invalid suite type");var o=a(t,!1,n.key,n.iv);return u(e,o.key,o.iv)},decrypter.createDecipheriv=u,decrypter}function requireBrowser$6(){if(hasRequiredBrowser$6)return browser$a;hasRequiredBrowser$6=1;var e=requireEncrypter(),t=requireDecrypter(),r=require$$2;return browser$a.createCipher=browser$a.Cipher=e.createCipher,browser$a.createCipheriv=browser$a.Cipheriv=e.createCipheriv,browser$a.createDecipher=browser$a.Decipher=t.createDecipher,browser$a.createDecipheriv=browser$a.Decipheriv=t.createDecipheriv,browser$a.listCiphers=browser$a.getCiphers=function(){return Object.keys(r)},browser$a}var modes$1={},hasRequiredModes,hasRequiredBrowser$5;function requireModes(){return hasRequiredModes||(hasRequiredModes=1,function(e){e["des-ecb"]={key:8,iv:0},e["des-cbc"]=e.des={key:8,iv:8},e["des-ede3-cbc"]=e.des3={key:24,iv:8},e["des-ede3"]={key:24,iv:0},e["des-ede-cbc"]={key:16,iv:8},e["des-ede"]={key:16,iv:0}}(modes$1)),modes$1}function requireBrowser$5(){if(hasRequiredBrowser$5)return browser$b;hasRequiredBrowser$5=1;var e=requireBrowserifyDes(),t=requireBrowser$6(),r=requireModes$1(),n=requireModes(),o=requireEvp_bytestokey();function i(o,i,a){if(o=o.toLowerCase(),r[o])return t.createCipheriv(o,i,a);if(n[o])return new e({key:i,iv:a,mode:o});throw new TypeError("invalid suite type")}function a(o,i,a){if(o=o.toLowerCase(),r[o])return t.createDecipheriv(o,i,a);if(n[o])return new e({key:i,iv:a,mode:o,decrypt:!0});throw new TypeError("invalid suite type")}return browser$b.createCipher=browser$b.Cipher=function(e,t){var a,s;if(e=e.toLowerCase(),r[e])a=r[e].key,s=r[e].iv;else{if(!n[e])throw new TypeError("invalid suite type");a=8*n[e].key,s=n[e].iv}var c=o(t,!1,a,s);return i(e,c.key,c.iv)},browser$b.createCipheriv=browser$b.Cipheriv=i,browser$b.createDecipher=browser$b.Decipher=function(e,t){var i,s;if(e=e.toLowerCase(),r[e])i=r[e].key,s=r[e].iv;else{if(!n[e])throw new TypeError("invalid suite type");i=8*n[e].key,s=n[e].iv}var c=o(t,!1,i,s);return a(e,c.key,c.iv)},browser$b.createDecipheriv=browser$b.Decipheriv=a,browser$b.listCiphers=browser$b.getCiphers=function(){return Object.keys(n).concat(t.getCiphers())},browser$b}var browser$9={},bn$b={exports:{}},hasRequiredBn$5;function requireBn$5(){return hasRequiredBn$5||(hasRequiredBn$5=1,function(e,t){function r(e,t){if(!e)throw new Error(t||"Assertion failed")}function n(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}function o(e,t,r){if(o.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(r=t,t=10),this._init(e||0,t||10,r||"be"))}var i;"object"==typeof e?e.exports=o:t.BN=o,o.BN=o,o.wordSize=26;try{i="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:require$$2$1.Buffer}catch(e2){}function a(e,t){var r=e.charCodeAt(t);return r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:r-48&15}function s(e,t,r){var n=a(e,r);return r-1>=t&&(n|=a(e,r-1)<<4),n}function c(e,t,r,n){for(var o=0,i=Math.min(e.length,r),a=t;a=49?s-49+10:s>=17?s-17+10:s}return o}o.isBN=function(e){return e instanceof o||null!==e&&"object"==typeof e&&e.constructor.wordSize===o.wordSize&&Array.isArray(e.words)},o.max=function(e,t){return e.cmp(t)>0?e:t},o.min=function(e,t){return e.cmp(t)<0?e:t},o.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),r(t===(0|t)&&t>=2&&t<=36);var o=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(o++,this.negative=1),o=0;o-=3)a=e[o]|e[o-1]<<8|e[o-2]<<16,this.words[i]|=a<>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);else if("le"===n)for(o=0,i=0;o>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);return this.strip()},o.prototype._parseHex=function(e,t,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var n=0;n=t;n-=2)o=s(e,t,n)<=18?(i-=18,a+=1,this.words[a]|=o>>>26):i+=8;else for(n=(e.length-t)%2==0?t+1:t;n=18?(i-=18,a+=1,this.words[a]|=o>>>26):i+=8;this.strip()},o.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var n=0,o=1;o<=67108863;o*=t)n++;n--,o=o/t|0;for(var i=e.length-r,a=i%n,s=Math.min(i,i-a)+r,u=0,l=r;l1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?""};var u=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],l=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],d=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function f(e,t,r){r.negative=t.negative^e.negative;var n=e.length+t.length|0;r.length=n,n=n-1|0;var o=0|e.words[0],i=0|t.words[0],a=o*i,s=67108863&a,c=a/67108864|0;r.words[0]=s;for(var u=1;u>>26,d=67108863&c,f=Math.min(u,t.length-1),h=Math.max(0,u-e.length+1);h<=f;h++){var p=u-h|0;l+=(a=(o=0|e.words[p])*(i=0|t.words[h])+d)/67108864|0,d=67108863&a}r.words[u]=0|d,c=0|l}return 0!==c?r.words[u]=0|c:r.length--,r.strip()}o.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var o=0,i=0,a=0;a>>24-o&16777215,(o+=2)>=26&&(o-=26,a--),n=0!==i||a!==this.length-1?u[6-c.length]+c+n:c+n}for(0!==i&&(n=i.toString(16)+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var f=l[e],h=d[e];n="";var p=this.clone();for(p.negative=0;!p.isZero();){var y=p.modn(h).toString(e);n=(p=p.idivn(h)).isZero()?y+n:u[f-y.length]+y+n}for(this.isZero()&&(n="0"+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(e,t){return r(void 0!==i),this.toArrayLike(i,e,t)},o.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},o.prototype.toArrayLike=function(e,t,n){var o=this.byteLength(),i=n||Math.max(1,o);r(o<=i,"byte array longer than desired length"),r(i>0,"Requested array length <= 0"),this.strip();var a,s,c="le"===t,u=new e(i),l=this.clone();if(c){for(s=0;!l.isZero();s++)a=l.andln(255),l.iushrn(8),u[s]=a;for(;s=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},o.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 8191&t||(r+=13,t>>>=13),127&t||(r+=7,t>>>=7),15&t||(r+=4,t>>>=4),3&t||(r+=2,t>>>=2),1&t||r++,r},o.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},o.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},o.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;re.length?this.clone().iand(e):e.clone().iand(this)},o.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},o.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var n=0;ne.length?this.clone().ixor(e):e.clone().ixor(this)},o.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},o.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var o=0;o0&&(this.words[o]=~this.words[o]&67108863>>26-n),this.strip()},o.prototype.notn=function(e){return this.clone().inotn(e)},o.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var n=e/26|0,o=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<e.length?(r=this,n=e):(r=e,n=this);for(var o=0,i=0;i>>26;for(;0!==o&&i>>26;if(this.length=r.length,0!==o)this.words[this.length]=o,this.length++;else if(r!==this)for(;ie.length?this.clone().iadd(e):e.clone().iadd(this)},o.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,n,o=this.cmp(e);if(0===o)return this.negative=0,this.length=1,this.words[0]=0,this;o>0?(r=this,n=e):(r=e,n=this);for(var i=0,a=0;a>26,this.words[a]=67108863&t;for(;0!==i&&a>26,this.words[a]=67108863&t;if(0===i&&a>>13,h=0|a[1],p=8191&h,y=h>>>13,m=0|a[2],g=8191&m,b=m>>>13,v=0|a[3],w=8191&v,_=v>>>13,I=0|a[4],T=8191&I,k=I>>>13,$=0|a[5],S=8191&$,A=$>>>13,E=0|a[6],C=8191&E,R=E>>>13,O=0|a[7],N=8191&O,P=O>>>13,M=0|a[8],B=8191&M,D=M>>>13,x=0|a[9],L=8191&x,U=x>>>13,j=0|s[0],F=8191&j,q=j>>>13,K=0|s[1],H=8191&K,G=K>>>13,z=0|s[2],V=8191&z,W=z>>>13,Q=0|s[3],Y=8191&Q,X=Q>>>13,J=0|s[4],Z=8191&J,ee=J>>>13,te=0|s[5],re=8191&te,ne=te>>>13,oe=0|s[6],ie=8191&oe,ae=oe>>>13,se=0|s[7],ce=8191&se,ue=se>>>13,le=0|s[8],de=8191&le,fe=le>>>13,he=0|s[9],pe=8191&he,ye=he>>>13;r.negative=e.negative^t.negative,r.length=19;var me=(u+(n=Math.imul(d,F))|0)+((8191&(o=(o=Math.imul(d,q))+Math.imul(f,F)|0))<<13)|0;u=((i=Math.imul(f,q))+(o>>>13)|0)+(me>>>26)|0,me&=67108863,n=Math.imul(p,F),o=(o=Math.imul(p,q))+Math.imul(y,F)|0,i=Math.imul(y,q);var ge=(u+(n=n+Math.imul(d,H)|0)|0)+((8191&(o=(o=o+Math.imul(d,G)|0)+Math.imul(f,H)|0))<<13)|0;u=((i=i+Math.imul(f,G)|0)+(o>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(g,F),o=(o=Math.imul(g,q))+Math.imul(b,F)|0,i=Math.imul(b,q),n=n+Math.imul(p,H)|0,o=(o=o+Math.imul(p,G)|0)+Math.imul(y,H)|0,i=i+Math.imul(y,G)|0;var be=(u+(n=n+Math.imul(d,V)|0)|0)+((8191&(o=(o=o+Math.imul(d,W)|0)+Math.imul(f,V)|0))<<13)|0;u=((i=i+Math.imul(f,W)|0)+(o>>>13)|0)+(be>>>26)|0,be&=67108863,n=Math.imul(w,F),o=(o=Math.imul(w,q))+Math.imul(_,F)|0,i=Math.imul(_,q),n=n+Math.imul(g,H)|0,o=(o=o+Math.imul(g,G)|0)+Math.imul(b,H)|0,i=i+Math.imul(b,G)|0,n=n+Math.imul(p,V)|0,o=(o=o+Math.imul(p,W)|0)+Math.imul(y,V)|0,i=i+Math.imul(y,W)|0;var ve=(u+(n=n+Math.imul(d,Y)|0)|0)+((8191&(o=(o=o+Math.imul(d,X)|0)+Math.imul(f,Y)|0))<<13)|0;u=((i=i+Math.imul(f,X)|0)+(o>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(T,F),o=(o=Math.imul(T,q))+Math.imul(k,F)|0,i=Math.imul(k,q),n=n+Math.imul(w,H)|0,o=(o=o+Math.imul(w,G)|0)+Math.imul(_,H)|0,i=i+Math.imul(_,G)|0,n=n+Math.imul(g,V)|0,o=(o=o+Math.imul(g,W)|0)+Math.imul(b,V)|0,i=i+Math.imul(b,W)|0,n=n+Math.imul(p,Y)|0,o=(o=o+Math.imul(p,X)|0)+Math.imul(y,Y)|0,i=i+Math.imul(y,X)|0;var we=(u+(n=n+Math.imul(d,Z)|0)|0)+((8191&(o=(o=o+Math.imul(d,ee)|0)+Math.imul(f,Z)|0))<<13)|0;u=((i=i+Math.imul(f,ee)|0)+(o>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(S,F),o=(o=Math.imul(S,q))+Math.imul(A,F)|0,i=Math.imul(A,q),n=n+Math.imul(T,H)|0,o=(o=o+Math.imul(T,G)|0)+Math.imul(k,H)|0,i=i+Math.imul(k,G)|0,n=n+Math.imul(w,V)|0,o=(o=o+Math.imul(w,W)|0)+Math.imul(_,V)|0,i=i+Math.imul(_,W)|0,n=n+Math.imul(g,Y)|0,o=(o=o+Math.imul(g,X)|0)+Math.imul(b,Y)|0,i=i+Math.imul(b,X)|0,n=n+Math.imul(p,Z)|0,o=(o=o+Math.imul(p,ee)|0)+Math.imul(y,Z)|0,i=i+Math.imul(y,ee)|0;var _e=(u+(n=n+Math.imul(d,re)|0)|0)+((8191&(o=(o=o+Math.imul(d,ne)|0)+Math.imul(f,re)|0))<<13)|0;u=((i=i+Math.imul(f,ne)|0)+(o>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(C,F),o=(o=Math.imul(C,q))+Math.imul(R,F)|0,i=Math.imul(R,q),n=n+Math.imul(S,H)|0,o=(o=o+Math.imul(S,G)|0)+Math.imul(A,H)|0,i=i+Math.imul(A,G)|0,n=n+Math.imul(T,V)|0,o=(o=o+Math.imul(T,W)|0)+Math.imul(k,V)|0,i=i+Math.imul(k,W)|0,n=n+Math.imul(w,Y)|0,o=(o=o+Math.imul(w,X)|0)+Math.imul(_,Y)|0,i=i+Math.imul(_,X)|0,n=n+Math.imul(g,Z)|0,o=(o=o+Math.imul(g,ee)|0)+Math.imul(b,Z)|0,i=i+Math.imul(b,ee)|0,n=n+Math.imul(p,re)|0,o=(o=o+Math.imul(p,ne)|0)+Math.imul(y,re)|0,i=i+Math.imul(y,ne)|0;var Ie=(u+(n=n+Math.imul(d,ie)|0)|0)+((8191&(o=(o=o+Math.imul(d,ae)|0)+Math.imul(f,ie)|0))<<13)|0;u=((i=i+Math.imul(f,ae)|0)+(o>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,n=Math.imul(N,F),o=(o=Math.imul(N,q))+Math.imul(P,F)|0,i=Math.imul(P,q),n=n+Math.imul(C,H)|0,o=(o=o+Math.imul(C,G)|0)+Math.imul(R,H)|0,i=i+Math.imul(R,G)|0,n=n+Math.imul(S,V)|0,o=(o=o+Math.imul(S,W)|0)+Math.imul(A,V)|0,i=i+Math.imul(A,W)|0,n=n+Math.imul(T,Y)|0,o=(o=o+Math.imul(T,X)|0)+Math.imul(k,Y)|0,i=i+Math.imul(k,X)|0,n=n+Math.imul(w,Z)|0,o=(o=o+Math.imul(w,ee)|0)+Math.imul(_,Z)|0,i=i+Math.imul(_,ee)|0,n=n+Math.imul(g,re)|0,o=(o=o+Math.imul(g,ne)|0)+Math.imul(b,re)|0,i=i+Math.imul(b,ne)|0,n=n+Math.imul(p,ie)|0,o=(o=o+Math.imul(p,ae)|0)+Math.imul(y,ie)|0,i=i+Math.imul(y,ae)|0;var Te=(u+(n=n+Math.imul(d,ce)|0)|0)+((8191&(o=(o=o+Math.imul(d,ue)|0)+Math.imul(f,ce)|0))<<13)|0;u=((i=i+Math.imul(f,ue)|0)+(o>>>13)|0)+(Te>>>26)|0,Te&=67108863,n=Math.imul(B,F),o=(o=Math.imul(B,q))+Math.imul(D,F)|0,i=Math.imul(D,q),n=n+Math.imul(N,H)|0,o=(o=o+Math.imul(N,G)|0)+Math.imul(P,H)|0,i=i+Math.imul(P,G)|0,n=n+Math.imul(C,V)|0,o=(o=o+Math.imul(C,W)|0)+Math.imul(R,V)|0,i=i+Math.imul(R,W)|0,n=n+Math.imul(S,Y)|0,o=(o=o+Math.imul(S,X)|0)+Math.imul(A,Y)|0,i=i+Math.imul(A,X)|0,n=n+Math.imul(T,Z)|0,o=(o=o+Math.imul(T,ee)|0)+Math.imul(k,Z)|0,i=i+Math.imul(k,ee)|0,n=n+Math.imul(w,re)|0,o=(o=o+Math.imul(w,ne)|0)+Math.imul(_,re)|0,i=i+Math.imul(_,ne)|0,n=n+Math.imul(g,ie)|0,o=(o=o+Math.imul(g,ae)|0)+Math.imul(b,ie)|0,i=i+Math.imul(b,ae)|0,n=n+Math.imul(p,ce)|0,o=(o=o+Math.imul(p,ue)|0)+Math.imul(y,ce)|0,i=i+Math.imul(y,ue)|0;var ke=(u+(n=n+Math.imul(d,de)|0)|0)+((8191&(o=(o=o+Math.imul(d,fe)|0)+Math.imul(f,de)|0))<<13)|0;u=((i=i+Math.imul(f,fe)|0)+(o>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(L,F),o=(o=Math.imul(L,q))+Math.imul(U,F)|0,i=Math.imul(U,q),n=n+Math.imul(B,H)|0,o=(o=o+Math.imul(B,G)|0)+Math.imul(D,H)|0,i=i+Math.imul(D,G)|0,n=n+Math.imul(N,V)|0,o=(o=o+Math.imul(N,W)|0)+Math.imul(P,V)|0,i=i+Math.imul(P,W)|0,n=n+Math.imul(C,Y)|0,o=(o=o+Math.imul(C,X)|0)+Math.imul(R,Y)|0,i=i+Math.imul(R,X)|0,n=n+Math.imul(S,Z)|0,o=(o=o+Math.imul(S,ee)|0)+Math.imul(A,Z)|0,i=i+Math.imul(A,ee)|0,n=n+Math.imul(T,re)|0,o=(o=o+Math.imul(T,ne)|0)+Math.imul(k,re)|0,i=i+Math.imul(k,ne)|0,n=n+Math.imul(w,ie)|0,o=(o=o+Math.imul(w,ae)|0)+Math.imul(_,ie)|0,i=i+Math.imul(_,ae)|0,n=n+Math.imul(g,ce)|0,o=(o=o+Math.imul(g,ue)|0)+Math.imul(b,ce)|0,i=i+Math.imul(b,ue)|0,n=n+Math.imul(p,de)|0,o=(o=o+Math.imul(p,fe)|0)+Math.imul(y,de)|0,i=i+Math.imul(y,fe)|0;var $e=(u+(n=n+Math.imul(d,pe)|0)|0)+((8191&(o=(o=o+Math.imul(d,ye)|0)+Math.imul(f,pe)|0))<<13)|0;u=((i=i+Math.imul(f,ye)|0)+(o>>>13)|0)+($e>>>26)|0,$e&=67108863,n=Math.imul(L,H),o=(o=Math.imul(L,G))+Math.imul(U,H)|0,i=Math.imul(U,G),n=n+Math.imul(B,V)|0,o=(o=o+Math.imul(B,W)|0)+Math.imul(D,V)|0,i=i+Math.imul(D,W)|0,n=n+Math.imul(N,Y)|0,o=(o=o+Math.imul(N,X)|0)+Math.imul(P,Y)|0,i=i+Math.imul(P,X)|0,n=n+Math.imul(C,Z)|0,o=(o=o+Math.imul(C,ee)|0)+Math.imul(R,Z)|0,i=i+Math.imul(R,ee)|0,n=n+Math.imul(S,re)|0,o=(o=o+Math.imul(S,ne)|0)+Math.imul(A,re)|0,i=i+Math.imul(A,ne)|0,n=n+Math.imul(T,ie)|0,o=(o=o+Math.imul(T,ae)|0)+Math.imul(k,ie)|0,i=i+Math.imul(k,ae)|0,n=n+Math.imul(w,ce)|0,o=(o=o+Math.imul(w,ue)|0)+Math.imul(_,ce)|0,i=i+Math.imul(_,ue)|0,n=n+Math.imul(g,de)|0,o=(o=o+Math.imul(g,fe)|0)+Math.imul(b,de)|0,i=i+Math.imul(b,fe)|0;var Se=(u+(n=n+Math.imul(p,pe)|0)|0)+((8191&(o=(o=o+Math.imul(p,ye)|0)+Math.imul(y,pe)|0))<<13)|0;u=((i=i+Math.imul(y,ye)|0)+(o>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(L,V),o=(o=Math.imul(L,W))+Math.imul(U,V)|0,i=Math.imul(U,W),n=n+Math.imul(B,Y)|0,o=(o=o+Math.imul(B,X)|0)+Math.imul(D,Y)|0,i=i+Math.imul(D,X)|0,n=n+Math.imul(N,Z)|0,o=(o=o+Math.imul(N,ee)|0)+Math.imul(P,Z)|0,i=i+Math.imul(P,ee)|0,n=n+Math.imul(C,re)|0,o=(o=o+Math.imul(C,ne)|0)+Math.imul(R,re)|0,i=i+Math.imul(R,ne)|0,n=n+Math.imul(S,ie)|0,o=(o=o+Math.imul(S,ae)|0)+Math.imul(A,ie)|0,i=i+Math.imul(A,ae)|0,n=n+Math.imul(T,ce)|0,o=(o=o+Math.imul(T,ue)|0)+Math.imul(k,ce)|0,i=i+Math.imul(k,ue)|0,n=n+Math.imul(w,de)|0,o=(o=o+Math.imul(w,fe)|0)+Math.imul(_,de)|0,i=i+Math.imul(_,fe)|0;var Ae=(u+(n=n+Math.imul(g,pe)|0)|0)+((8191&(o=(o=o+Math.imul(g,ye)|0)+Math.imul(b,pe)|0))<<13)|0;u=((i=i+Math.imul(b,ye)|0)+(o>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(L,Y),o=(o=Math.imul(L,X))+Math.imul(U,Y)|0,i=Math.imul(U,X),n=n+Math.imul(B,Z)|0,o=(o=o+Math.imul(B,ee)|0)+Math.imul(D,Z)|0,i=i+Math.imul(D,ee)|0,n=n+Math.imul(N,re)|0,o=(o=o+Math.imul(N,ne)|0)+Math.imul(P,re)|0,i=i+Math.imul(P,ne)|0,n=n+Math.imul(C,ie)|0,o=(o=o+Math.imul(C,ae)|0)+Math.imul(R,ie)|0,i=i+Math.imul(R,ae)|0,n=n+Math.imul(S,ce)|0,o=(o=o+Math.imul(S,ue)|0)+Math.imul(A,ce)|0,i=i+Math.imul(A,ue)|0,n=n+Math.imul(T,de)|0,o=(o=o+Math.imul(T,fe)|0)+Math.imul(k,de)|0,i=i+Math.imul(k,fe)|0;var Ee=(u+(n=n+Math.imul(w,pe)|0)|0)+((8191&(o=(o=o+Math.imul(w,ye)|0)+Math.imul(_,pe)|0))<<13)|0;u=((i=i+Math.imul(_,ye)|0)+(o>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(L,Z),o=(o=Math.imul(L,ee))+Math.imul(U,Z)|0,i=Math.imul(U,ee),n=n+Math.imul(B,re)|0,o=(o=o+Math.imul(B,ne)|0)+Math.imul(D,re)|0,i=i+Math.imul(D,ne)|0,n=n+Math.imul(N,ie)|0,o=(o=o+Math.imul(N,ae)|0)+Math.imul(P,ie)|0,i=i+Math.imul(P,ae)|0,n=n+Math.imul(C,ce)|0,o=(o=o+Math.imul(C,ue)|0)+Math.imul(R,ce)|0,i=i+Math.imul(R,ue)|0,n=n+Math.imul(S,de)|0,o=(o=o+Math.imul(S,fe)|0)+Math.imul(A,de)|0,i=i+Math.imul(A,fe)|0;var Ce=(u+(n=n+Math.imul(T,pe)|0)|0)+((8191&(o=(o=o+Math.imul(T,ye)|0)+Math.imul(k,pe)|0))<<13)|0;u=((i=i+Math.imul(k,ye)|0)+(o>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,n=Math.imul(L,re),o=(o=Math.imul(L,ne))+Math.imul(U,re)|0,i=Math.imul(U,ne),n=n+Math.imul(B,ie)|0,o=(o=o+Math.imul(B,ae)|0)+Math.imul(D,ie)|0,i=i+Math.imul(D,ae)|0,n=n+Math.imul(N,ce)|0,o=(o=o+Math.imul(N,ue)|0)+Math.imul(P,ce)|0,i=i+Math.imul(P,ue)|0,n=n+Math.imul(C,de)|0,o=(o=o+Math.imul(C,fe)|0)+Math.imul(R,de)|0,i=i+Math.imul(R,fe)|0;var Re=(u+(n=n+Math.imul(S,pe)|0)|0)+((8191&(o=(o=o+Math.imul(S,ye)|0)+Math.imul(A,pe)|0))<<13)|0;u=((i=i+Math.imul(A,ye)|0)+(o>>>13)|0)+(Re>>>26)|0,Re&=67108863,n=Math.imul(L,ie),o=(o=Math.imul(L,ae))+Math.imul(U,ie)|0,i=Math.imul(U,ae),n=n+Math.imul(B,ce)|0,o=(o=o+Math.imul(B,ue)|0)+Math.imul(D,ce)|0,i=i+Math.imul(D,ue)|0,n=n+Math.imul(N,de)|0,o=(o=o+Math.imul(N,fe)|0)+Math.imul(P,de)|0,i=i+Math.imul(P,fe)|0;var Oe=(u+(n=n+Math.imul(C,pe)|0)|0)+((8191&(o=(o=o+Math.imul(C,ye)|0)+Math.imul(R,pe)|0))<<13)|0;u=((i=i+Math.imul(R,ye)|0)+(o>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,n=Math.imul(L,ce),o=(o=Math.imul(L,ue))+Math.imul(U,ce)|0,i=Math.imul(U,ue),n=n+Math.imul(B,de)|0,o=(o=o+Math.imul(B,fe)|0)+Math.imul(D,de)|0,i=i+Math.imul(D,fe)|0;var Ne=(u+(n=n+Math.imul(N,pe)|0)|0)+((8191&(o=(o=o+Math.imul(N,ye)|0)+Math.imul(P,pe)|0))<<13)|0;u=((i=i+Math.imul(P,ye)|0)+(o>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,n=Math.imul(L,de),o=(o=Math.imul(L,fe))+Math.imul(U,de)|0,i=Math.imul(U,fe);var Pe=(u+(n=n+Math.imul(B,pe)|0)|0)+((8191&(o=(o=o+Math.imul(B,ye)|0)+Math.imul(D,pe)|0))<<13)|0;u=((i=i+Math.imul(D,ye)|0)+(o>>>13)|0)+(Pe>>>26)|0,Pe&=67108863;var Me=(u+(n=Math.imul(L,pe))|0)+((8191&(o=(o=Math.imul(L,ye))+Math.imul(U,pe)|0))<<13)|0;return u=((i=Math.imul(U,ye))+(o>>>13)|0)+(Me>>>26)|0,Me&=67108863,c[0]=me,c[1]=ge,c[2]=be,c[3]=ve,c[4]=we,c[5]=_e,c[6]=Ie,c[7]=Te,c[8]=ke,c[9]=$e,c[10]=Se,c[11]=Ae,c[12]=Ee,c[13]=Ce,c[14]=Re,c[15]=Oe,c[16]=Ne,c[17]=Pe,c[18]=Me,0!==u&&(c[19]=u,r.length++),r};function p(e,t,r){return(new y).mulp(e,t,r)}function y(e,t){this.x=e,this.y=t}Math.imul||(h=f),o.prototype.mulTo=function(e,t){var r,n=this.length+e.length;return r=10===this.length&&10===e.length?h(this,e,t):n<63?f(this,e,t):n<1024?function(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var n=0,o=0,i=0;i>>26)|0)>>>26,a&=67108863}r.words[i]=s,n=a,a=o}return 0!==n?r.words[i]=n:r.length--,r.strip()}(this,e,t):p(this,e,t),r},y.prototype.makeRBT=function(e){for(var t=new Array(e),r=o.prototype._countBits(e)-1,n=0;n>=1;return n},y.prototype.permute=function(e,t,r,n,o,i){for(var a=0;a>>=1)o++;return 1<>>=13,n[2*a+1]=8191&i,i>>>=13;for(a=2*t;a>=26,t+=o/67108864|0,t+=i>>>26,this.words[n]=67108863&i}return 0!==t&&(this.words[n]=t,this.length++),this},o.prototype.muln=function(e){return this.clone().imuln(e)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r>>o}return t}(e);if(0===t.length)return new o(1);for(var r=this,n=0;n=0);var t,n=e%26,o=(e-n)/26,i=67108863>>>26-n<<26-n;if(0!==n){var a=0;for(t=0;t>>26-n}a&&(this.words[t]=a,this.length++)}if(0!==o){for(t=this.length-1;t>=0;t--)this.words[t+o]=this.words[t];for(t=0;t=0),o=t?(t-t%26)/26:0;var i=e%26,a=Math.min((e-i)/26,this.length),s=67108863^67108863>>>i<a)for(this.length-=a,u=0;u=0&&(0!==l||u>=o);u--){var d=0|this.words[u];this.words[u]=l<<26-i|d>>>i,l=d&s}return c&&0!==l&&(c.words[c.length++]=l),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(e,t,n){return r(0===this.negative),this.iushrn(e,t,n)},o.prototype.shln=function(e){return this.clone().ishln(e)},o.prototype.ushln=function(e){return this.clone().iushln(e)},o.prototype.shrn=function(e){return this.clone().ishrn(e)},o.prototype.ushrn=function(e){return this.clone().iushrn(e)},o.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26,o=1<=0);var t=e%26,n=(e-t)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==t&&n++,this.length=Math.min(n,this.length),0!==t){var o=67108863^67108863>>>t<=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},o.prototype.isubn=function(e){if(r("number"==typeof e),r(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t>26)-(c/67108864|0),this.words[o+n]=67108863&i}for(;o>26,this.words[o+n]=67108863&i;if(0===s)return this.strip();for(r(-1===s),s=0,o=0;o>26,this.words[o]=67108863&i;return this.negative=1,this.strip()},o.prototype._wordDiv=function(e,t){var r=(this.length,e.length),n=this.clone(),i=e,a=0|i.words[i.length-1];0!=(r=26-this._countBits(a))&&(i=i.ushln(r),n.iushln(r),a=0|i.words[i.length-1]);var s,c=n.length-i.length;if("mod"!==t){(s=new o(null)).length=c+1,s.words=new Array(s.length);for(var u=0;u=0;d--){var f=67108864*(0|n.words[i.length+d])+(0|n.words[i.length+d-1]);for(f=Math.min(f/a|0,67108863),n._ishlnsubmul(i,f,d);0!==n.negative;)f--,n.negative=0,n._ishlnsubmul(i,1,d),n.isZero()||(n.negative^=1);s&&(s.words[d]=f)}return s&&s.strip(),n.strip(),"div"!==t&&0!==r&&n.iushrn(r),{div:s||null,mod:n}},o.prototype.divmod=function(e,t,n){return r(!e.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===e.negative?(s=this.neg().divmod(e,t),"mod"!==t&&(i=s.div.neg()),"div"!==t&&(a=s.mod.neg(),n&&0!==a.negative&&a.iadd(e)),{div:i,mod:a}):0===this.negative&&0!==e.negative?(s=this.divmod(e.neg(),t),"mod"!==t&&(i=s.div.neg()),{div:i,mod:s.mod}):this.negative&e.negative?(s=this.neg().divmod(e.neg(),t),"div"!==t&&(a=s.mod.neg(),n&&0!==a.negative&&a.isub(e)),{div:s.div,mod:a}):e.length>this.length||this.cmp(e)<0?{div:new o(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new o(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new o(this.modn(e.words[0]))}:this._wordDiv(e,t);var i,a,s},o.prototype.div=function(e){return this.divmod(e,"div",!1).div},o.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},o.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},o.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,n=e.ushrn(1),o=e.andln(1),i=r.cmp(n);return i<0||1===o&&0===i?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},o.prototype.modn=function(e){r(e<=67108863);for(var t=(1<<26)%e,n=0,o=this.length-1;o>=0;o--)n=(t*n+(0|this.words[o]))%e;return n},o.prototype.idivn=function(e){r(e<=67108863);for(var t=0,n=this.length-1;n>=0;n--){var o=(0|this.words[n])+67108864*t;this.words[n]=o/e|0,t=o%e}return this.strip()},o.prototype.divn=function(e){return this.clone().idivn(e)},o.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i=new o(1),a=new o(0),s=new o(0),c=new o(1),u=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++u;for(var l=n.clone(),d=t.clone();!t.isZero();){for(var f=0,h=1;!(t.words[0]&h)&&f<26;++f,h<<=1);if(f>0)for(t.iushrn(f);f-- >0;)(i.isOdd()||a.isOdd())&&(i.iadd(l),a.isub(d)),i.iushrn(1),a.iushrn(1);for(var p=0,y=1;!(n.words[0]&y)&&p<26;++p,y<<=1);if(p>0)for(n.iushrn(p);p-- >0;)(s.isOdd()||c.isOdd())&&(s.iadd(l),c.isub(d)),s.iushrn(1),c.iushrn(1);t.cmp(n)>=0?(t.isub(n),i.isub(s),a.isub(c)):(n.isub(t),s.isub(i),c.isub(a))}return{a:s,b:c,gcd:n.iushln(u)}},o.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i,a=new o(1),s=new o(0),c=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var u=0,l=1;!(t.words[0]&l)&&u<26;++u,l<<=1);if(u>0)for(t.iushrn(u);u-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);for(var d=0,f=1;!(n.words[0]&f)&&d<26;++d,f<<=1);if(d>0)for(n.iushrn(d);d-- >0;)s.isOdd()&&s.iadd(c),s.iushrn(1);t.cmp(n)>=0?(t.isub(n),a.isub(s)):(n.isub(t),s.isub(a))}return(i=0===t.cmpn(1)?a:s).cmpn(0)<0&&i.iadd(e),i},o.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var n=0;t.isEven()&&r.isEven();n++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var o=t.cmp(r);if(o<0){var i=t;t=r,r=i}else if(0===o||0===r.cmpn(1))break;t.isub(r)}return r.iushln(n)},o.prototype.invm=function(e){return this.egcd(e).a.umod(e)},o.prototype.isEven=function(){return!(1&this.words[0])},o.prototype.isOdd=function(){return!(1&~this.words[0])},o.prototype.andln=function(e){return this.words[0]&e},o.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,n=(e-t)/26,o=1<>>26,s&=67108863,this.words[a]=s}return 0!==i&&(this.words[a]=i,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this.strip(),this.length>1)t=1;else{n&&(e=-e),r(e<=67108863,"Number is too big");var o=0|this.words[0];t=o===e?0:oe.length)return 1;if(this.length=0;r--){var n=0|this.words[r],o=0|e.words[r];if(n!==o){no&&(t=1);break}}return t},o.prototype.gtn=function(e){return 1===this.cmpn(e)},o.prototype.gt=function(e){return 1===this.cmp(e)},o.prototype.gten=function(e){return this.cmpn(e)>=0},o.prototype.gte=function(e){return this.cmp(e)>=0},o.prototype.ltn=function(e){return-1===this.cmpn(e)},o.prototype.lt=function(e){return-1===this.cmp(e)},o.prototype.lten=function(e){return this.cmpn(e)<=0},o.prototype.lte=function(e){return this.cmp(e)<=0},o.prototype.eqn=function(e){return 0===this.cmpn(e)},o.prototype.eq=function(e){return 0===this.cmp(e)},o.red=function(e){return new I(e)},o.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},o.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(e){return this.red=e,this},o.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},o.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},o.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},o.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},o.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},o.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},o.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},o.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},o.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var m={k256:null,p224:null,p192:null,p25519:null};function g(e,t){this.name=e,this.p=new o(t,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function b(){g.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function v(){g.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function w(){g.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function _(){g.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function I(e){if("string"==typeof e){var t=o._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function T(e){I.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}g.prototype._tmp=function(){var e=new o(null);return e.words=new Array(Math.ceil(this.n/13)),e},g.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var n=t0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},g.prototype.split=function(e,t){e.iushrn(this.n,0,t)},g.prototype.imulK=function(e){return e.imul(this.k)},n(b,g),b.prototype.split=function(e,t){for(var r=4194303,n=Math.min(e.length,9),o=0;o>>22,i=a}i>>>=22,e.words[o-10]=i,0===i&&e.length>10?e.length-=10:e.length-=9},b.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r>>=26,e.words[r]=o,t=n}return 0!==t&&(e.words[e.length++]=t),e},o._prime=function(e){if(m[e])return m[e];var t;if("k256"===e)t=new b;else if("p224"===e)t=new v;else if("p192"===e)t=new w;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new _}return m[e]=t,t},I.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},I.prototype._verify2=function(e,t){r(!(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},I.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},I.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},I.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},I.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},I.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},I.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},I.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},I.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},I.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},I.prototype.isqr=function(e){return this.imul(e,e.clone())},I.prototype.sqr=function(e){return this.mul(e,e)},I.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var n=this.m.add(new o(1)).iushrn(2);return this.pow(e,n)}for(var i=this.m.subn(1),a=0;!i.isZero()&&0===i.andln(1);)a++,i.iushrn(1);r(!i.isZero());var s=new o(1).toRed(this),c=s.redNeg(),u=this.m.subn(1).iushrn(1),l=this.m.bitLength();for(l=new o(2*l*l).toRed(this);0!==this.pow(l,u).cmp(c);)l.redIAdd(c);for(var d=this.pow(l,i),f=this.pow(e,i.addn(1).iushrn(1)),h=this.pow(e,i),p=a;0!==h.cmp(s);){for(var y=h,m=0;0!==y.cmp(s);m++)y=y.redSqr();r(m=0;n--){for(var u=t.words[n],l=c-1;l>=0;l--){var d=u>>l&1;i!==r[0]&&(i=this.sqr(i)),0!==d||0!==a?(a<<=1,a|=d,(4==++s||0===n&&0===l)&&(i=this.mul(i,r[a]),s=0,a=0)):s=0}c=26}return i},I.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},I.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},o.mont=function(e){return new T(e)},n(T,I),T.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},T.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},T.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=r.isub(n).iushrn(this.shift),i=o;return o.cmp(this.m)>=0?i=o.isub(this.m):o.cmpn(0)<0&&(i=o.iadd(this.m)),i._forceRed(this)},T.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new o(0)._forceRed(this);var r=e.mul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},T.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(bn$b,commonjsGlobal)),bn$b.exports}bn$b.exports;var bn$a={exports:{}},hasRequiredBn$4;function requireBn$4(){return hasRequiredBn$4||(hasRequiredBn$4=1,function(e,t){function r(e,t){if(!e)throw new Error(t||"Assertion failed")}function n(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}function o(e,t,r){if(o.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(r=t,t=10),this._init(e||0,t||10,r||"be"))}var i;"object"==typeof e?e.exports=o:t.BN=o,o.BN=o,o.wordSize=26;try{i="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:require$$2$1.Buffer}catch(e2){}function a(e,t){var r=e.charCodeAt(t);return r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:r-48&15}function s(e,t,r){var n=a(e,r);return r-1>=t&&(n|=a(e,r-1)<<4),n}function c(e,t,r,n){for(var o=0,i=Math.min(e.length,r),a=t;a=49?s-49+10:s>=17?s-17+10:s}return o}o.isBN=function(e){return e instanceof o||null!==e&&"object"==typeof e&&e.constructor.wordSize===o.wordSize&&Array.isArray(e.words)},o.max=function(e,t){return e.cmp(t)>0?e:t},o.min=function(e,t){return e.cmp(t)<0?e:t},o.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),r(t===(0|t)&&t>=2&&t<=36);var o=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(o++,this.negative=1),o=0;o-=3)a=e[o]|e[o-1]<<8|e[o-2]<<16,this.words[i]|=a<>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);else if("le"===n)for(o=0,i=0;o>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);return this.strip()},o.prototype._parseHex=function(e,t,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var n=0;n=t;n-=2)o=s(e,t,n)<=18?(i-=18,a+=1,this.words[a]|=o>>>26):i+=8;else for(n=(e.length-t)%2==0?t+1:t;n=18?(i-=18,a+=1,this.words[a]|=o>>>26):i+=8;this.strip()},o.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var n=0,o=1;o<=67108863;o*=t)n++;n--,o=o/t|0;for(var i=e.length-r,a=i%n,s=Math.min(i,i-a)+r,u=0,l=r;l1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?""};var u=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],l=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],d=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function f(e,t,r){r.negative=t.negative^e.negative;var n=e.length+t.length|0;r.length=n,n=n-1|0;var o=0|e.words[0],i=0|t.words[0],a=o*i,s=67108863&a,c=a/67108864|0;r.words[0]=s;for(var u=1;u>>26,d=67108863&c,f=Math.min(u,t.length-1),h=Math.max(0,u-e.length+1);h<=f;h++){var p=u-h|0;l+=(a=(o=0|e.words[p])*(i=0|t.words[h])+d)/67108864|0,d=67108863&a}r.words[u]=0|d,c=0|l}return 0!==c?r.words[u]=0|c:r.length--,r.strip()}o.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var o=0,i=0,a=0;a>>24-o&16777215,(o+=2)>=26&&(o-=26,a--),n=0!==i||a!==this.length-1?u[6-c.length]+c+n:c+n}for(0!==i&&(n=i.toString(16)+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var f=l[e],h=d[e];n="";var p=this.clone();for(p.negative=0;!p.isZero();){var y=p.modn(h).toString(e);n=(p=p.idivn(h)).isZero()?y+n:u[f-y.length]+y+n}for(this.isZero()&&(n="0"+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(e,t){return r(void 0!==i),this.toArrayLike(i,e,t)},o.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},o.prototype.toArrayLike=function(e,t,n){var o=this.byteLength(),i=n||Math.max(1,o);r(o<=i,"byte array longer than desired length"),r(i>0,"Requested array length <= 0"),this.strip();var a,s,c="le"===t,u=new e(i),l=this.clone();if(c){for(s=0;!l.isZero();s++)a=l.andln(255),l.iushrn(8),u[s]=a;for(;s=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},o.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 8191&t||(r+=13,t>>>=13),127&t||(r+=7,t>>>=7),15&t||(r+=4,t>>>=4),3&t||(r+=2,t>>>=2),1&t||r++,r},o.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},o.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},o.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;re.length?this.clone().iand(e):e.clone().iand(this)},o.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},o.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var n=0;ne.length?this.clone().ixor(e):e.clone().ixor(this)},o.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},o.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var o=0;o0&&(this.words[o]=~this.words[o]&67108863>>26-n),this.strip()},o.prototype.notn=function(e){return this.clone().inotn(e)},o.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var n=e/26|0,o=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<e.length?(r=this,n=e):(r=e,n=this);for(var o=0,i=0;i>>26;for(;0!==o&&i>>26;if(this.length=r.length,0!==o)this.words[this.length]=o,this.length++;else if(r!==this)for(;ie.length?this.clone().iadd(e):e.clone().iadd(this)},o.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,n,o=this.cmp(e);if(0===o)return this.negative=0,this.length=1,this.words[0]=0,this;o>0?(r=this,n=e):(r=e,n=this);for(var i=0,a=0;a>26,this.words[a]=67108863&t;for(;0!==i&&a>26,this.words[a]=67108863&t;if(0===i&&a>>13,h=0|a[1],p=8191&h,y=h>>>13,m=0|a[2],g=8191&m,b=m>>>13,v=0|a[3],w=8191&v,_=v>>>13,I=0|a[4],T=8191&I,k=I>>>13,$=0|a[5],S=8191&$,A=$>>>13,E=0|a[6],C=8191&E,R=E>>>13,O=0|a[7],N=8191&O,P=O>>>13,M=0|a[8],B=8191&M,D=M>>>13,x=0|a[9],L=8191&x,U=x>>>13,j=0|s[0],F=8191&j,q=j>>>13,K=0|s[1],H=8191&K,G=K>>>13,z=0|s[2],V=8191&z,W=z>>>13,Q=0|s[3],Y=8191&Q,X=Q>>>13,J=0|s[4],Z=8191&J,ee=J>>>13,te=0|s[5],re=8191&te,ne=te>>>13,oe=0|s[6],ie=8191&oe,ae=oe>>>13,se=0|s[7],ce=8191&se,ue=se>>>13,le=0|s[8],de=8191&le,fe=le>>>13,he=0|s[9],pe=8191&he,ye=he>>>13;r.negative=e.negative^t.negative,r.length=19;var me=(u+(n=Math.imul(d,F))|0)+((8191&(o=(o=Math.imul(d,q))+Math.imul(f,F)|0))<<13)|0;u=((i=Math.imul(f,q))+(o>>>13)|0)+(me>>>26)|0,me&=67108863,n=Math.imul(p,F),o=(o=Math.imul(p,q))+Math.imul(y,F)|0,i=Math.imul(y,q);var ge=(u+(n=n+Math.imul(d,H)|0)|0)+((8191&(o=(o=o+Math.imul(d,G)|0)+Math.imul(f,H)|0))<<13)|0;u=((i=i+Math.imul(f,G)|0)+(o>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(g,F),o=(o=Math.imul(g,q))+Math.imul(b,F)|0,i=Math.imul(b,q),n=n+Math.imul(p,H)|0,o=(o=o+Math.imul(p,G)|0)+Math.imul(y,H)|0,i=i+Math.imul(y,G)|0;var be=(u+(n=n+Math.imul(d,V)|0)|0)+((8191&(o=(o=o+Math.imul(d,W)|0)+Math.imul(f,V)|0))<<13)|0;u=((i=i+Math.imul(f,W)|0)+(o>>>13)|0)+(be>>>26)|0,be&=67108863,n=Math.imul(w,F),o=(o=Math.imul(w,q))+Math.imul(_,F)|0,i=Math.imul(_,q),n=n+Math.imul(g,H)|0,o=(o=o+Math.imul(g,G)|0)+Math.imul(b,H)|0,i=i+Math.imul(b,G)|0,n=n+Math.imul(p,V)|0,o=(o=o+Math.imul(p,W)|0)+Math.imul(y,V)|0,i=i+Math.imul(y,W)|0;var ve=(u+(n=n+Math.imul(d,Y)|0)|0)+((8191&(o=(o=o+Math.imul(d,X)|0)+Math.imul(f,Y)|0))<<13)|0;u=((i=i+Math.imul(f,X)|0)+(o>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(T,F),o=(o=Math.imul(T,q))+Math.imul(k,F)|0,i=Math.imul(k,q),n=n+Math.imul(w,H)|0,o=(o=o+Math.imul(w,G)|0)+Math.imul(_,H)|0,i=i+Math.imul(_,G)|0,n=n+Math.imul(g,V)|0,o=(o=o+Math.imul(g,W)|0)+Math.imul(b,V)|0,i=i+Math.imul(b,W)|0,n=n+Math.imul(p,Y)|0,o=(o=o+Math.imul(p,X)|0)+Math.imul(y,Y)|0,i=i+Math.imul(y,X)|0;var we=(u+(n=n+Math.imul(d,Z)|0)|0)+((8191&(o=(o=o+Math.imul(d,ee)|0)+Math.imul(f,Z)|0))<<13)|0;u=((i=i+Math.imul(f,ee)|0)+(o>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(S,F),o=(o=Math.imul(S,q))+Math.imul(A,F)|0,i=Math.imul(A,q),n=n+Math.imul(T,H)|0,o=(o=o+Math.imul(T,G)|0)+Math.imul(k,H)|0,i=i+Math.imul(k,G)|0,n=n+Math.imul(w,V)|0,o=(o=o+Math.imul(w,W)|0)+Math.imul(_,V)|0,i=i+Math.imul(_,W)|0,n=n+Math.imul(g,Y)|0,o=(o=o+Math.imul(g,X)|0)+Math.imul(b,Y)|0,i=i+Math.imul(b,X)|0,n=n+Math.imul(p,Z)|0,o=(o=o+Math.imul(p,ee)|0)+Math.imul(y,Z)|0,i=i+Math.imul(y,ee)|0;var _e=(u+(n=n+Math.imul(d,re)|0)|0)+((8191&(o=(o=o+Math.imul(d,ne)|0)+Math.imul(f,re)|0))<<13)|0;u=((i=i+Math.imul(f,ne)|0)+(o>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(C,F),o=(o=Math.imul(C,q))+Math.imul(R,F)|0,i=Math.imul(R,q),n=n+Math.imul(S,H)|0,o=(o=o+Math.imul(S,G)|0)+Math.imul(A,H)|0,i=i+Math.imul(A,G)|0,n=n+Math.imul(T,V)|0,o=(o=o+Math.imul(T,W)|0)+Math.imul(k,V)|0,i=i+Math.imul(k,W)|0,n=n+Math.imul(w,Y)|0,o=(o=o+Math.imul(w,X)|0)+Math.imul(_,Y)|0,i=i+Math.imul(_,X)|0,n=n+Math.imul(g,Z)|0,o=(o=o+Math.imul(g,ee)|0)+Math.imul(b,Z)|0,i=i+Math.imul(b,ee)|0,n=n+Math.imul(p,re)|0,o=(o=o+Math.imul(p,ne)|0)+Math.imul(y,re)|0,i=i+Math.imul(y,ne)|0;var Ie=(u+(n=n+Math.imul(d,ie)|0)|0)+((8191&(o=(o=o+Math.imul(d,ae)|0)+Math.imul(f,ie)|0))<<13)|0;u=((i=i+Math.imul(f,ae)|0)+(o>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,n=Math.imul(N,F),o=(o=Math.imul(N,q))+Math.imul(P,F)|0,i=Math.imul(P,q),n=n+Math.imul(C,H)|0,o=(o=o+Math.imul(C,G)|0)+Math.imul(R,H)|0,i=i+Math.imul(R,G)|0,n=n+Math.imul(S,V)|0,o=(o=o+Math.imul(S,W)|0)+Math.imul(A,V)|0,i=i+Math.imul(A,W)|0,n=n+Math.imul(T,Y)|0,o=(o=o+Math.imul(T,X)|0)+Math.imul(k,Y)|0,i=i+Math.imul(k,X)|0,n=n+Math.imul(w,Z)|0,o=(o=o+Math.imul(w,ee)|0)+Math.imul(_,Z)|0,i=i+Math.imul(_,ee)|0,n=n+Math.imul(g,re)|0,o=(o=o+Math.imul(g,ne)|0)+Math.imul(b,re)|0,i=i+Math.imul(b,ne)|0,n=n+Math.imul(p,ie)|0,o=(o=o+Math.imul(p,ae)|0)+Math.imul(y,ie)|0,i=i+Math.imul(y,ae)|0;var Te=(u+(n=n+Math.imul(d,ce)|0)|0)+((8191&(o=(o=o+Math.imul(d,ue)|0)+Math.imul(f,ce)|0))<<13)|0;u=((i=i+Math.imul(f,ue)|0)+(o>>>13)|0)+(Te>>>26)|0,Te&=67108863,n=Math.imul(B,F),o=(o=Math.imul(B,q))+Math.imul(D,F)|0,i=Math.imul(D,q),n=n+Math.imul(N,H)|0,o=(o=o+Math.imul(N,G)|0)+Math.imul(P,H)|0,i=i+Math.imul(P,G)|0,n=n+Math.imul(C,V)|0,o=(o=o+Math.imul(C,W)|0)+Math.imul(R,V)|0,i=i+Math.imul(R,W)|0,n=n+Math.imul(S,Y)|0,o=(o=o+Math.imul(S,X)|0)+Math.imul(A,Y)|0,i=i+Math.imul(A,X)|0,n=n+Math.imul(T,Z)|0,o=(o=o+Math.imul(T,ee)|0)+Math.imul(k,Z)|0,i=i+Math.imul(k,ee)|0,n=n+Math.imul(w,re)|0,o=(o=o+Math.imul(w,ne)|0)+Math.imul(_,re)|0,i=i+Math.imul(_,ne)|0,n=n+Math.imul(g,ie)|0,o=(o=o+Math.imul(g,ae)|0)+Math.imul(b,ie)|0,i=i+Math.imul(b,ae)|0,n=n+Math.imul(p,ce)|0,o=(o=o+Math.imul(p,ue)|0)+Math.imul(y,ce)|0,i=i+Math.imul(y,ue)|0;var ke=(u+(n=n+Math.imul(d,de)|0)|0)+((8191&(o=(o=o+Math.imul(d,fe)|0)+Math.imul(f,de)|0))<<13)|0;u=((i=i+Math.imul(f,fe)|0)+(o>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(L,F),o=(o=Math.imul(L,q))+Math.imul(U,F)|0,i=Math.imul(U,q),n=n+Math.imul(B,H)|0,o=(o=o+Math.imul(B,G)|0)+Math.imul(D,H)|0,i=i+Math.imul(D,G)|0,n=n+Math.imul(N,V)|0,o=(o=o+Math.imul(N,W)|0)+Math.imul(P,V)|0,i=i+Math.imul(P,W)|0,n=n+Math.imul(C,Y)|0,o=(o=o+Math.imul(C,X)|0)+Math.imul(R,Y)|0,i=i+Math.imul(R,X)|0,n=n+Math.imul(S,Z)|0,o=(o=o+Math.imul(S,ee)|0)+Math.imul(A,Z)|0,i=i+Math.imul(A,ee)|0,n=n+Math.imul(T,re)|0,o=(o=o+Math.imul(T,ne)|0)+Math.imul(k,re)|0,i=i+Math.imul(k,ne)|0,n=n+Math.imul(w,ie)|0,o=(o=o+Math.imul(w,ae)|0)+Math.imul(_,ie)|0,i=i+Math.imul(_,ae)|0,n=n+Math.imul(g,ce)|0,o=(o=o+Math.imul(g,ue)|0)+Math.imul(b,ce)|0,i=i+Math.imul(b,ue)|0,n=n+Math.imul(p,de)|0,o=(o=o+Math.imul(p,fe)|0)+Math.imul(y,de)|0,i=i+Math.imul(y,fe)|0;var $e=(u+(n=n+Math.imul(d,pe)|0)|0)+((8191&(o=(o=o+Math.imul(d,ye)|0)+Math.imul(f,pe)|0))<<13)|0;u=((i=i+Math.imul(f,ye)|0)+(o>>>13)|0)+($e>>>26)|0,$e&=67108863,n=Math.imul(L,H),o=(o=Math.imul(L,G))+Math.imul(U,H)|0,i=Math.imul(U,G),n=n+Math.imul(B,V)|0,o=(o=o+Math.imul(B,W)|0)+Math.imul(D,V)|0,i=i+Math.imul(D,W)|0,n=n+Math.imul(N,Y)|0,o=(o=o+Math.imul(N,X)|0)+Math.imul(P,Y)|0,i=i+Math.imul(P,X)|0,n=n+Math.imul(C,Z)|0,o=(o=o+Math.imul(C,ee)|0)+Math.imul(R,Z)|0,i=i+Math.imul(R,ee)|0,n=n+Math.imul(S,re)|0,o=(o=o+Math.imul(S,ne)|0)+Math.imul(A,re)|0,i=i+Math.imul(A,ne)|0,n=n+Math.imul(T,ie)|0,o=(o=o+Math.imul(T,ae)|0)+Math.imul(k,ie)|0,i=i+Math.imul(k,ae)|0,n=n+Math.imul(w,ce)|0,o=(o=o+Math.imul(w,ue)|0)+Math.imul(_,ce)|0,i=i+Math.imul(_,ue)|0,n=n+Math.imul(g,de)|0,o=(o=o+Math.imul(g,fe)|0)+Math.imul(b,de)|0,i=i+Math.imul(b,fe)|0;var Se=(u+(n=n+Math.imul(p,pe)|0)|0)+((8191&(o=(o=o+Math.imul(p,ye)|0)+Math.imul(y,pe)|0))<<13)|0;u=((i=i+Math.imul(y,ye)|0)+(o>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(L,V),o=(o=Math.imul(L,W))+Math.imul(U,V)|0,i=Math.imul(U,W),n=n+Math.imul(B,Y)|0,o=(o=o+Math.imul(B,X)|0)+Math.imul(D,Y)|0,i=i+Math.imul(D,X)|0,n=n+Math.imul(N,Z)|0,o=(o=o+Math.imul(N,ee)|0)+Math.imul(P,Z)|0,i=i+Math.imul(P,ee)|0,n=n+Math.imul(C,re)|0,o=(o=o+Math.imul(C,ne)|0)+Math.imul(R,re)|0,i=i+Math.imul(R,ne)|0,n=n+Math.imul(S,ie)|0,o=(o=o+Math.imul(S,ae)|0)+Math.imul(A,ie)|0,i=i+Math.imul(A,ae)|0,n=n+Math.imul(T,ce)|0,o=(o=o+Math.imul(T,ue)|0)+Math.imul(k,ce)|0,i=i+Math.imul(k,ue)|0,n=n+Math.imul(w,de)|0,o=(o=o+Math.imul(w,fe)|0)+Math.imul(_,de)|0,i=i+Math.imul(_,fe)|0;var Ae=(u+(n=n+Math.imul(g,pe)|0)|0)+((8191&(o=(o=o+Math.imul(g,ye)|0)+Math.imul(b,pe)|0))<<13)|0;u=((i=i+Math.imul(b,ye)|0)+(o>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(L,Y),o=(o=Math.imul(L,X))+Math.imul(U,Y)|0,i=Math.imul(U,X),n=n+Math.imul(B,Z)|0,o=(o=o+Math.imul(B,ee)|0)+Math.imul(D,Z)|0,i=i+Math.imul(D,ee)|0,n=n+Math.imul(N,re)|0,o=(o=o+Math.imul(N,ne)|0)+Math.imul(P,re)|0,i=i+Math.imul(P,ne)|0,n=n+Math.imul(C,ie)|0,o=(o=o+Math.imul(C,ae)|0)+Math.imul(R,ie)|0,i=i+Math.imul(R,ae)|0,n=n+Math.imul(S,ce)|0,o=(o=o+Math.imul(S,ue)|0)+Math.imul(A,ce)|0,i=i+Math.imul(A,ue)|0,n=n+Math.imul(T,de)|0,o=(o=o+Math.imul(T,fe)|0)+Math.imul(k,de)|0,i=i+Math.imul(k,fe)|0;var Ee=(u+(n=n+Math.imul(w,pe)|0)|0)+((8191&(o=(o=o+Math.imul(w,ye)|0)+Math.imul(_,pe)|0))<<13)|0;u=((i=i+Math.imul(_,ye)|0)+(o>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(L,Z),o=(o=Math.imul(L,ee))+Math.imul(U,Z)|0,i=Math.imul(U,ee),n=n+Math.imul(B,re)|0,o=(o=o+Math.imul(B,ne)|0)+Math.imul(D,re)|0,i=i+Math.imul(D,ne)|0,n=n+Math.imul(N,ie)|0,o=(o=o+Math.imul(N,ae)|0)+Math.imul(P,ie)|0,i=i+Math.imul(P,ae)|0,n=n+Math.imul(C,ce)|0,o=(o=o+Math.imul(C,ue)|0)+Math.imul(R,ce)|0,i=i+Math.imul(R,ue)|0,n=n+Math.imul(S,de)|0,o=(o=o+Math.imul(S,fe)|0)+Math.imul(A,de)|0,i=i+Math.imul(A,fe)|0;var Ce=(u+(n=n+Math.imul(T,pe)|0)|0)+((8191&(o=(o=o+Math.imul(T,ye)|0)+Math.imul(k,pe)|0))<<13)|0;u=((i=i+Math.imul(k,ye)|0)+(o>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,n=Math.imul(L,re),o=(o=Math.imul(L,ne))+Math.imul(U,re)|0,i=Math.imul(U,ne),n=n+Math.imul(B,ie)|0,o=(o=o+Math.imul(B,ae)|0)+Math.imul(D,ie)|0,i=i+Math.imul(D,ae)|0,n=n+Math.imul(N,ce)|0,o=(o=o+Math.imul(N,ue)|0)+Math.imul(P,ce)|0,i=i+Math.imul(P,ue)|0,n=n+Math.imul(C,de)|0,o=(o=o+Math.imul(C,fe)|0)+Math.imul(R,de)|0,i=i+Math.imul(R,fe)|0;var Re=(u+(n=n+Math.imul(S,pe)|0)|0)+((8191&(o=(o=o+Math.imul(S,ye)|0)+Math.imul(A,pe)|0))<<13)|0;u=((i=i+Math.imul(A,ye)|0)+(o>>>13)|0)+(Re>>>26)|0,Re&=67108863,n=Math.imul(L,ie),o=(o=Math.imul(L,ae))+Math.imul(U,ie)|0,i=Math.imul(U,ae),n=n+Math.imul(B,ce)|0,o=(o=o+Math.imul(B,ue)|0)+Math.imul(D,ce)|0,i=i+Math.imul(D,ue)|0,n=n+Math.imul(N,de)|0,o=(o=o+Math.imul(N,fe)|0)+Math.imul(P,de)|0,i=i+Math.imul(P,fe)|0;var Oe=(u+(n=n+Math.imul(C,pe)|0)|0)+((8191&(o=(o=o+Math.imul(C,ye)|0)+Math.imul(R,pe)|0))<<13)|0;u=((i=i+Math.imul(R,ye)|0)+(o>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,n=Math.imul(L,ce),o=(o=Math.imul(L,ue))+Math.imul(U,ce)|0,i=Math.imul(U,ue),n=n+Math.imul(B,de)|0,o=(o=o+Math.imul(B,fe)|0)+Math.imul(D,de)|0,i=i+Math.imul(D,fe)|0;var Ne=(u+(n=n+Math.imul(N,pe)|0)|0)+((8191&(o=(o=o+Math.imul(N,ye)|0)+Math.imul(P,pe)|0))<<13)|0;u=((i=i+Math.imul(P,ye)|0)+(o>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,n=Math.imul(L,de),o=(o=Math.imul(L,fe))+Math.imul(U,de)|0,i=Math.imul(U,fe);var Pe=(u+(n=n+Math.imul(B,pe)|0)|0)+((8191&(o=(o=o+Math.imul(B,ye)|0)+Math.imul(D,pe)|0))<<13)|0;u=((i=i+Math.imul(D,ye)|0)+(o>>>13)|0)+(Pe>>>26)|0,Pe&=67108863;var Me=(u+(n=Math.imul(L,pe))|0)+((8191&(o=(o=Math.imul(L,ye))+Math.imul(U,pe)|0))<<13)|0;return u=((i=Math.imul(U,ye))+(o>>>13)|0)+(Me>>>26)|0,Me&=67108863,c[0]=me,c[1]=ge,c[2]=be,c[3]=ve,c[4]=we,c[5]=_e,c[6]=Ie,c[7]=Te,c[8]=ke,c[9]=$e,c[10]=Se,c[11]=Ae,c[12]=Ee,c[13]=Ce,c[14]=Re,c[15]=Oe,c[16]=Ne,c[17]=Pe,c[18]=Me,0!==u&&(c[19]=u,r.length++),r};function p(e,t,r){return(new y).mulp(e,t,r)}function y(e,t){this.x=e,this.y=t}Math.imul||(h=f),o.prototype.mulTo=function(e,t){var r,n=this.length+e.length;return r=10===this.length&&10===e.length?h(this,e,t):n<63?f(this,e,t):n<1024?function(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var n=0,o=0,i=0;i>>26)|0)>>>26,a&=67108863}r.words[i]=s,n=a,a=o}return 0!==n?r.words[i]=n:r.length--,r.strip()}(this,e,t):p(this,e,t),r},y.prototype.makeRBT=function(e){for(var t=new Array(e),r=o.prototype._countBits(e)-1,n=0;n>=1;return n},y.prototype.permute=function(e,t,r,n,o,i){for(var a=0;a>>=1)o++;return 1<>>=13,n[2*a+1]=8191&i,i>>>=13;for(a=2*t;a>=26,t+=o/67108864|0,t+=i>>>26,this.words[n]=67108863&i}return 0!==t&&(this.words[n]=t,this.length++),this},o.prototype.muln=function(e){return this.clone().imuln(e)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r>>o}return t}(e);if(0===t.length)return new o(1);for(var r=this,n=0;n=0);var t,n=e%26,o=(e-n)/26,i=67108863>>>26-n<<26-n;if(0!==n){var a=0;for(t=0;t>>26-n}a&&(this.words[t]=a,this.length++)}if(0!==o){for(t=this.length-1;t>=0;t--)this.words[t+o]=this.words[t];for(t=0;t=0),o=t?(t-t%26)/26:0;var i=e%26,a=Math.min((e-i)/26,this.length),s=67108863^67108863>>>i<a)for(this.length-=a,u=0;u=0&&(0!==l||u>=o);u--){var d=0|this.words[u];this.words[u]=l<<26-i|d>>>i,l=d&s}return c&&0!==l&&(c.words[c.length++]=l),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(e,t,n){return r(0===this.negative),this.iushrn(e,t,n)},o.prototype.shln=function(e){return this.clone().ishln(e)},o.prototype.ushln=function(e){return this.clone().iushln(e)},o.prototype.shrn=function(e){return this.clone().ishrn(e)},o.prototype.ushrn=function(e){return this.clone().iushrn(e)},o.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26,o=1<=0);var t=e%26,n=(e-t)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==t&&n++,this.length=Math.min(n,this.length),0!==t){var o=67108863^67108863>>>t<=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},o.prototype.isubn=function(e){if(r("number"==typeof e),r(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t>26)-(c/67108864|0),this.words[o+n]=67108863&i}for(;o>26,this.words[o+n]=67108863&i;if(0===s)return this.strip();for(r(-1===s),s=0,o=0;o>26,this.words[o]=67108863&i;return this.negative=1,this.strip()},o.prototype._wordDiv=function(e,t){var r=(this.length,e.length),n=this.clone(),i=e,a=0|i.words[i.length-1];0!=(r=26-this._countBits(a))&&(i=i.ushln(r),n.iushln(r),a=0|i.words[i.length-1]);var s,c=n.length-i.length;if("mod"!==t){(s=new o(null)).length=c+1,s.words=new Array(s.length);for(var u=0;u=0;d--){var f=67108864*(0|n.words[i.length+d])+(0|n.words[i.length+d-1]);for(f=Math.min(f/a|0,67108863),n._ishlnsubmul(i,f,d);0!==n.negative;)f--,n.negative=0,n._ishlnsubmul(i,1,d),n.isZero()||(n.negative^=1);s&&(s.words[d]=f)}return s&&s.strip(),n.strip(),"div"!==t&&0!==r&&n.iushrn(r),{div:s||null,mod:n}},o.prototype.divmod=function(e,t,n){return r(!e.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===e.negative?(s=this.neg().divmod(e,t),"mod"!==t&&(i=s.div.neg()),"div"!==t&&(a=s.mod.neg(),n&&0!==a.negative&&a.iadd(e)),{div:i,mod:a}):0===this.negative&&0!==e.negative?(s=this.divmod(e.neg(),t),"mod"!==t&&(i=s.div.neg()),{div:i,mod:s.mod}):this.negative&e.negative?(s=this.neg().divmod(e.neg(),t),"div"!==t&&(a=s.mod.neg(),n&&0!==a.negative&&a.isub(e)),{div:s.div,mod:a}):e.length>this.length||this.cmp(e)<0?{div:new o(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new o(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new o(this.modn(e.words[0]))}:this._wordDiv(e,t);var i,a,s},o.prototype.div=function(e){return this.divmod(e,"div",!1).div},o.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},o.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},o.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,n=e.ushrn(1),o=e.andln(1),i=r.cmp(n);return i<0||1===o&&0===i?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},o.prototype.modn=function(e){r(e<=67108863);for(var t=(1<<26)%e,n=0,o=this.length-1;o>=0;o--)n=(t*n+(0|this.words[o]))%e;return n},o.prototype.idivn=function(e){r(e<=67108863);for(var t=0,n=this.length-1;n>=0;n--){var o=(0|this.words[n])+67108864*t;this.words[n]=o/e|0,t=o%e}return this.strip()},o.prototype.divn=function(e){return this.clone().idivn(e)},o.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i=new o(1),a=new o(0),s=new o(0),c=new o(1),u=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++u;for(var l=n.clone(),d=t.clone();!t.isZero();){for(var f=0,h=1;!(t.words[0]&h)&&f<26;++f,h<<=1);if(f>0)for(t.iushrn(f);f-- >0;)(i.isOdd()||a.isOdd())&&(i.iadd(l),a.isub(d)),i.iushrn(1),a.iushrn(1);for(var p=0,y=1;!(n.words[0]&y)&&p<26;++p,y<<=1);if(p>0)for(n.iushrn(p);p-- >0;)(s.isOdd()||c.isOdd())&&(s.iadd(l),c.isub(d)),s.iushrn(1),c.iushrn(1);t.cmp(n)>=0?(t.isub(n),i.isub(s),a.isub(c)):(n.isub(t),s.isub(i),c.isub(a))}return{a:s,b:c,gcd:n.iushln(u)}},o.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i,a=new o(1),s=new o(0),c=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var u=0,l=1;!(t.words[0]&l)&&u<26;++u,l<<=1);if(u>0)for(t.iushrn(u);u-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);for(var d=0,f=1;!(n.words[0]&f)&&d<26;++d,f<<=1);if(d>0)for(n.iushrn(d);d-- >0;)s.isOdd()&&s.iadd(c),s.iushrn(1);t.cmp(n)>=0?(t.isub(n),a.isub(s)):(n.isub(t),s.isub(a))}return(i=0===t.cmpn(1)?a:s).cmpn(0)<0&&i.iadd(e),i},o.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var n=0;t.isEven()&&r.isEven();n++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var o=t.cmp(r);if(o<0){var i=t;t=r,r=i}else if(0===o||0===r.cmpn(1))break;t.isub(r)}return r.iushln(n)},o.prototype.invm=function(e){return this.egcd(e).a.umod(e)},o.prototype.isEven=function(){return!(1&this.words[0])},o.prototype.isOdd=function(){return!(1&~this.words[0])},o.prototype.andln=function(e){return this.words[0]&e},o.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,n=(e-t)/26,o=1<>>26,s&=67108863,this.words[a]=s}return 0!==i&&(this.words[a]=i,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this.strip(),this.length>1)t=1;else{n&&(e=-e),r(e<=67108863,"Number is too big");var o=0|this.words[0];t=o===e?0:oe.length)return 1;if(this.length=0;r--){var n=0|this.words[r],o=0|e.words[r];if(n!==o){no&&(t=1);break}}return t},o.prototype.gtn=function(e){return 1===this.cmpn(e)},o.prototype.gt=function(e){return 1===this.cmp(e)},o.prototype.gten=function(e){return this.cmpn(e)>=0},o.prototype.gte=function(e){return this.cmp(e)>=0},o.prototype.ltn=function(e){return-1===this.cmpn(e)},o.prototype.lt=function(e){return-1===this.cmp(e)},o.prototype.lten=function(e){return this.cmpn(e)<=0},o.prototype.lte=function(e){return this.cmp(e)<=0},o.prototype.eqn=function(e){return 0===this.cmpn(e)},o.prototype.eq=function(e){return 0===this.cmp(e)},o.red=function(e){return new I(e)},o.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},o.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(e){return this.red=e,this},o.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},o.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},o.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},o.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},o.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},o.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},o.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},o.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},o.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var m={k256:null,p224:null,p192:null,p25519:null};function g(e,t){this.name=e,this.p=new o(t,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function b(){g.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function v(){g.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function w(){g.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function _(){g.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function I(e){if("string"==typeof e){var t=o._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function T(e){I.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}g.prototype._tmp=function(){var e=new o(null);return e.words=new Array(Math.ceil(this.n/13)),e},g.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var n=t0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},g.prototype.split=function(e,t){e.iushrn(this.n,0,t)},g.prototype.imulK=function(e){return e.imul(this.k)},n(b,g),b.prototype.split=function(e,t){for(var r=4194303,n=Math.min(e.length,9),o=0;o>>22,i=a}i>>>=22,e.words[o-10]=i,0===i&&e.length>10?e.length-=10:e.length-=9},b.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r>>=26,e.words[r]=o,t=n}return 0!==t&&(e.words[e.length++]=t),e},o._prime=function(e){if(m[e])return m[e];var t;if("k256"===e)t=new b;else if("p224"===e)t=new v;else if("p192"===e)t=new w;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new _}return m[e]=t,t},I.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},I.prototype._verify2=function(e,t){r(!(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},I.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},I.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},I.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},I.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},I.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},I.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},I.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},I.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},I.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},I.prototype.isqr=function(e){return this.imul(e,e.clone())},I.prototype.sqr=function(e){return this.mul(e,e)},I.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var n=this.m.add(new o(1)).iushrn(2);return this.pow(e,n)}for(var i=this.m.subn(1),a=0;!i.isZero()&&0===i.andln(1);)a++,i.iushrn(1);r(!i.isZero());var s=new o(1).toRed(this),c=s.redNeg(),u=this.m.subn(1).iushrn(1),l=this.m.bitLength();for(l=new o(2*l*l).toRed(this);0!==this.pow(l,u).cmp(c);)l.redIAdd(c);for(var d=this.pow(l,i),f=this.pow(e,i.addn(1).iushrn(1)),h=this.pow(e,i),p=a;0!==h.cmp(s);){for(var y=h,m=0;0!==y.cmp(s);m++)y=y.redSqr();r(m=0;n--){for(var u=t.words[n],l=c-1;l>=0;l--){var d=u>>l&1;i!==r[0]&&(i=this.sqr(i)),0!==d||0!==a?(a<<=1,a|=d,(4==++s||0===n&&0===l)&&(i=this.mul(i,r[a]),s=0,a=0)):s=0}c=26}return i},I.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},I.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},o.mont=function(e){return new T(e)},n(T,I),T.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},T.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},T.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=r.isub(n).iushrn(this.shift),i=o;return o.cmp(this.m)>=0?i=o.isub(this.m):o.cmpn(0)<0&&(i=o.iadd(this.m)),i._forceRed(this)},T.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new o(0)._forceRed(this);var r=e.mul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},T.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(bn$a,commonjsGlobal)),bn$a.exports}bn$a.exports;var brorand={exports:{}},hasRequiredBrorand,mr$3,hasRequiredMr,generatePrime,hasRequiredGeneratePrime;function requireBrorand(){if(hasRequiredBrorand)return brorand.exports;var e;function t(e){this.rand=e}if(hasRequiredBrorand=1,brorand.exports=function(r){return e||(e=new t(null)),e.generate(r)},brorand.exports.Rand=t,t.prototype.generate=function(e){return this._rand(e)},t.prototype._rand=function(e){if(this.rand.getBytes)return this.rand.getBytes(e);for(var t=new Uint8Array(e),r=0;r=0);return o},r.prototype._randrange=function(e,t){var r=t.sub(e);return e.add(this._randbelow(r))},r.prototype.test=function(t,r,n){var o=t.bitLength(),i=e.mont(t),a=new e(1).toRed(i);r||(r=Math.max(1,o/48|0));for(var s=t.subn(1),c=0;!s.testn(c);c++);for(var u=t.shrn(c),l=s.toRed(i);r>0;r--){var d=this._randrange(new e(2),s);n&&n(d);var f=d.toRed(i).redPow(u);if(0!==f.cmp(a)&&0!==f.cmp(l)){for(var h=1;h0;r--){var l=this._randrange(new e(2),a),d=t.gcd(l);if(0!==d.cmpn(1))return d;var f=l.toRed(o).redPow(c);if(0!==f.cmp(i)&&0!==f.cmp(u)){for(var h=1;hd;)y.ishrn(1);if(y.isEven()&&y.iadd(o),y.testn(1)||y.iadd(i),p.cmp(i)){if(!p.cmp(a))for(;y.mod(s).cmp(c);)y.iadd(l)}else for(;y.mod(r).cmp(u);)y.iadd(l);if(f(m=y.shrn(1))&&f(y)&&h(m)&&h(y)&&n.test(m)&&n.test(y))return y}}return generatePrime}const modp1={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},modp2={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},modp5={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},modp14={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},modp15={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},modp16={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},modp17={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},modp18={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"},require$$1$1={modp1:modp1,modp2:modp2,modp5:modp5,modp14:modp14,modp15:modp15,modp16:modp16,modp17:modp17,modp18:modp18};var dh,hasRequiredDh,hasRequiredBrowser$4;function requireDh(){if(hasRequiredDh)return dh;hasRequiredDh=1;var e=requireBn$5(),t=new(requireMr()),r=new e(24),n=new e(11),o=new e(10),i=new e(3),a=new e(7),s=requireGeneratePrime(),c=requireBrowser$b();function u(t,r){return r=r||"utf8",Buffer$2.isBuffer(t)||(t=new Buffer$2(t,r)),this._pub=new e(t),this}function l(t,r){return r=r||"utf8",Buffer$2.isBuffer(t)||(t=new Buffer$2(t,r)),this._priv=new e(t),this}dh=f;var d={};function f(t,r,n){this.setGenerator(r),this.__prime=new e(t),this._prime=e.mont(this.__prime),this._primeLen=t.length,this._pub=void 0,this._priv=void 0,this._primeCode=void 0,n?(this.setPublicKey=u,this.setPrivateKey=l):this._primeCode=8}function h(e,t){var r=new Buffer$2(e.toArray());return t?r.toString(t):r}return Object.defineProperty(f.prototype,"verifyError",{enumerable:!0,get:function(){return"number"!=typeof this._primeCode&&(this._primeCode=function(e,c){var u=c.toString("hex"),l=[u,e.toString(16)].join("_");if(l in d)return d[l];var f,h=0;if(e.isEven()||!s.simpleSieve||!s.fermatTest(e)||!t.test(e))return h+=1,h+="02"===u||"05"===u?8:4,d[l]=h,h;switch(t.test(e.shrn(1))||(h+=2),u){case"02":e.mod(r).cmp(n)&&(h+=8);break;case"05":(f=e.mod(o)).cmp(i)&&f.cmp(a)&&(h+=8);break;default:h+=4}return d[l]=h,h}(this.__prime,this.__gen)),this._primeCode}}),f.prototype.generateKeys=function(){return this._priv||(this._priv=new e(c(this._primeLen))),this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed(),this.getPublicKey()},f.prototype.computeSecret=function(t){var r=(t=(t=new e(t)).toRed(this._prime)).redPow(this._priv).fromRed(),n=new Buffer$2(r.toArray()),o=this.getPrime();if(n.length0?this.tail.next=t:this.head=t,this.tail=t,++this.length},e.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},e.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},e.prototype.clear=function(){this.head=this.tail=null,this.length=0},e.prototype.join=function(e){if(0===this.length)return"";for(var t=this.head,r=""+t.data;t=t.next;)r+=e+t.data;return r},e.prototype.concat=function(e){if(0===this.length)return t.alloc(0);for(var r,n,o,i=t.allocUnsafe(e>>>0),a=this.head,s=0;a;)r=a.data,n=i,o=s,r.copy(n,o),s+=a.data.length,a=a.next;return i},e}(),r&&r.inspect&&r.inspect.custom&&(e.exports.prototype[r.inspect.custom]=function(){var e=r.inspect({length:this.length});return this.constructor.name+" "+e})),BufferList.exports;var e,t,r}function requireDestroy(){if(hasRequiredDestroy)return destroy_1;hasRequiredDestroy=1;var e=requireProcessNextickArgs();function t(e,t){e.emit("error",t)}return destroy_1={destroy:function(r,n){var o=this,i=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return i||a?(n?n(r):r&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,e.nextTick(t,this,r)):e.nextTick(t,this,r)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(r||null,(function(r){!n&&r?o._writableState?o._writableState.errorEmitted||(o._writableState.errorEmitted=!0,e.nextTick(t,o,r)):e.nextTick(t,o,r):n&&n(r)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}}function require_stream_writable(){if(hasRequired_stream_writable)return _stream_writable;hasRequired_stream_writable=1;var e=requireProcessNextickArgs();function t(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,r){var n=e.entry;e.entry=null;for(;n;){var o=n.callback;t.pendingcb--,o(r),n=n.next}t.corkedRequestsFree.next=e}(t,e)}}_stream_writable=h;var r,n=!process$1.browser&&["v0.10","v0.9."].indexOf(process$1.version.slice(0,5))>-1?setImmediate:e.nextTick;h.WritableState=f;var o=Object.create(requireUtil());o.inherits=inherits_browserExports;var i={deprecate:requireBrowser$a()},a=requireStreamBrowser(),s=requireSafeBuffer().Buffer,c=(void 0!==commonjsGlobal?commonjsGlobal:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{}).Uint8Array||function(){};var u,l=requireDestroy();function d(){}function f(o,i){r=r||require_stream_duplex(),o=o||{};var a=i instanceof r;this.objectMode=!!o.objectMode,a&&(this.objectMode=this.objectMode||!!o.writableObjectMode);var s=o.highWaterMark,c=o.writableHighWaterMark,u=this.objectMode?16:16384;this.highWaterMark=s||0===s?s:a&&(c||0===c)?c:u,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var l=!1===o.decodeStrings;this.decodeStrings=!l,this.defaultEncoding=o.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(t){!function(t,r){var o=t._writableState,i=o.sync,a=o.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(o),r)!function(t,r,n,o,i){--r.pendingcb,n?(e.nextTick(i,o),e.nextTick(v,t,r),t._writableState.errorEmitted=!0,t.emit("error",o)):(i(o),t._writableState.errorEmitted=!0,t.emit("error",o),v(t,r))}(t,o,i,r,a);else{var s=g(o);s||o.corked||o.bufferProcessing||!o.bufferedRequest||m(t,o),i?n(y,t,o,s,a):y(t,o,s,a)}}(i,t)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new t(this)}function h(e){if(r=r||require_stream_duplex(),!(u.call(h,this)||this instanceof r))return new h(e);this._writableState=new f(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),a.call(this)}function p(e,t,r,n,o,i,a){t.writelen=n,t.writecb=a,t.writing=!0,t.sync=!0,r?e._writev(o,t.onwrite):e._write(o,i,t.onwrite),t.sync=!1}function y(e,t,r,n){r||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,n(),v(e,t)}function m(e,r){r.bufferProcessing=!0;var n=r.bufferedRequest;if(e._writev&&n&&n.next){var o=r.bufferedRequestCount,i=new Array(o),a=r.corkedRequestsFree;a.entry=n;for(var s=0,c=!0;n;)i[s]=n,n.isBuf||(c=!1),n=n.next,s+=1;i.allBuffers=c,p(e,r,!0,r.length,i,"",a.finish),r.pendingcb++,r.lastBufferedRequest=null,a.next?(r.corkedRequestsFree=a.next,a.next=null):r.corkedRequestsFree=new t(r),r.bufferedRequestCount=0}else{for(;n;){var u=n.chunk,l=n.encoding,d=n.callback;if(p(e,r,!1,r.objectMode?1:u.length,u,l,d),n=n.next,r.bufferedRequestCount--,r.writing)break}null===n&&(r.lastBufferedRequest=null)}r.bufferedRequest=n,r.bufferProcessing=!1}function g(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function b(e,t){e._final((function(r){t.pendingcb--,r&&e.emit("error",r),t.prefinished=!0,e.emit("prefinish"),v(e,t)}))}function v(t,r){var n=g(r);return n&&(!function(t,r){r.prefinished||r.finalCalled||("function"==typeof t._final?(r.pendingcb++,r.finalCalled=!0,e.nextTick(b,t,r)):(r.prefinished=!0,t.emit("prefinish")))}(t,r),0===r.pendingcb&&(r.finished=!0,t.emit("finish"))),n}return o.inherits(h,a),f.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(f.prototype,"buffer",{get:i.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(u=Function.prototype[Symbol.hasInstance],Object.defineProperty(h,Symbol.hasInstance,{value:function(e){return!!u.call(this,e)||this===h&&(e&&e._writableState instanceof f)}})):u=function(e){return e instanceof this},h.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},h.prototype.write=function(t,r,n){var o,i=this._writableState,a=!1,u=!i.objectMode&&(o=t,s.isBuffer(o)||o instanceof c);return u&&!s.isBuffer(t)&&(t=function(e){return s.from(e)}(t)),"function"==typeof r&&(n=r,r=null),u?r="buffer":r||(r=i.defaultEncoding),"function"!=typeof n&&(n=d),i.ended?function(t,r){var n=new Error("write after end");t.emit("error",n),e.nextTick(r,n)}(this,n):(u||function(t,r,n,o){var i=!0,a=!1;return null===n?a=new TypeError("May not write null values to stream"):"string"==typeof n||void 0===n||r.objectMode||(a=new TypeError("Invalid non-string/buffer chunk")),a&&(t.emit("error",a),e.nextTick(o,a),i=!1),i}(this,i,t,n))&&(i.pendingcb++,a=function(e,t,r,n,o,i){if(!r){var a=function(e,t,r){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=s.from(t,r));return t}(t,n,o);n!==a&&(r=!0,o="buffer",n=a)}var c=t.objectMode?1:n.length;t.length+=c;var u=t.length-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(h.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),h.prototype._write=function(e,t,r){r(new Error("_write() is not implemented"))},h.prototype._writev=null,h.prototype.end=function(t,r,n){var o=this._writableState;"function"==typeof t?(n=t,t=null,r=null):"function"==typeof r&&(n=r,r=null),null!=t&&this.write(t,r),o.corked&&(o.corked=1,this.uncork()),o.ending||function(t,r,n){r.ending=!0,v(t,r),n&&(r.finished?e.nextTick(n):t.once("finish",n));r.ended=!0,t.writable=!1}(this,o,n)},Object.defineProperty(h.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),h.prototype.destroy=l.destroy,h.prototype._undestroy=l.undestroy,h.prototype._destroy=function(e,t){this.end(),t(e)},_stream_writable}function require_stream_duplex(){if(hasRequired_stream_duplex)return _stream_duplex;hasRequired_stream_duplex=1;var e=requireProcessNextickArgs(),t=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};_stream_duplex=c;var r=Object.create(requireUtil());r.inherits=inherits_browserExports;var n=require_stream_readable(),o=require_stream_writable();r.inherits(c,n);for(var i=t(o.prototype),a=0;a0?("string"==typeof t||c.objectMode||Object.getPrototypeOf(t)===i.prototype||(t=function(e){return i.from(e)}(t)),n?c.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):g(e,c,t,!0):c.ended?e.emit("error",new Error("stream.push() after EOF")):(c.reading=!1,c.decoder&&!r?(t=c.decoder.write(t),c.objectMode||0!==t.length?g(e,c,t,!1):I(e,c)):g(e,c,t,!1))):n||(c.reading=!1));return function(e){return!e.ended&&(e.needReadable||e.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=b?e=b:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function w(t){var r=t._readableState;r.needReadable=!1,r.emittedReadable||(u("emitReadable",r.flowing),r.emittedReadable=!0,r.sync?e.nextTick(_,t):_(t))}function _(e){u("emit readable"),e.emit("readable"),S(e)}function I(t,r){r.readingMore||(r.readingMore=!0,e.nextTick(T,t,r))}function T(e,t){for(var r=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):r=function(e,t,r){var n;ei.length?i.length:e;if(a===i.length?o+=i:o+=i.slice(0,e),0===(e-=a)){a===i.length?(++n,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=i.slice(a));break}++n}return t.length-=n,o}(e,t):function(e,t){var r=i.allocUnsafe(e),n=t.head,o=1;n.data.copy(r),e-=n.data.length;for(;n=n.next;){var a=n.data,s=e>a.length?a.length:e;if(a.copy(r,r.length-e,0,s),0===(e-=s)){s===a.length?(++o,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=a.slice(s));break}++o}return t.length-=o,r}(e,t);return n}(e,t.buffer,t.decoder),r);var r}function E(t){var r=t._readableState;if(r.length>0)throw new Error('"endReadable()" called on non-empty stream');r.endEmitted||(r.ended=!0,e.nextTick(C,r,t))}function C(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function R(e,t){for(var r=0,n=e.length;r=t.highWaterMark||t.ended))return u("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?E(this):w(this),null;if(0===(e=v(e,t))&&t.ended)return 0===t.length&&E(this),null;var n,o=t.needReadable;return u("need readable",o),(0===t.length||t.length-e0?A(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&E(this)),null!==n&&this.emit("data",n),n},y.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},y.prototype.pipe=function(t,o){var i=this,a=this._readableState;switch(a.pipesCount){case 0:a.pipes=t;break;case 1:a.pipes=[a.pipes,t];break;default:a.pipes.push(t)}a.pipesCount+=1,u("pipe count=%d opts=%j",a.pipesCount,o);var s=(!o||!1!==o.end)&&t!==process$1.stdout&&t!==process$1.stderr?l:b;function c(e,r){u("onunpipe"),e===i&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,u("cleanup"),t.removeListener("close",m),t.removeListener("finish",g),t.removeListener("drain",d),t.removeListener("error",y),t.removeListener("unpipe",c),i.removeListener("end",l),i.removeListener("end",b),i.removeListener("data",p),f=!0,!a.awaitDrain||t._writableState&&!t._writableState.needDrain||d())}function l(){u("onend"),t.end()}a.endEmitted?e.nextTick(s):i.once("end",s),t.on("unpipe",c);var d=function(e){return function(){var t=e._readableState;u("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&n(e,"data")&&(t.flowing=!0,S(e))}}(i);t.on("drain",d);var f=!1;var h=!1;function p(e){u("ondata"),h=!1,!1!==t.write(e)||h||((1===a.pipesCount&&a.pipes===t||a.pipesCount>1&&-1!==R(a.pipes,t))&&!f&&(u("false write response, pause",a.awaitDrain),a.awaitDrain++,h=!0),i.pause())}function y(e){u("onerror",e),b(),t.removeListener("error",y),0===n(t,"error")&&t.emit("error",e)}function m(){t.removeListener("finish",g),b()}function g(){u("onfinish"),t.removeListener("close",m),b()}function b(){u("unpipe"),i.unpipe(t)}return i.on("data",p),function(e,t,n){if("function"==typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?r(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}(t,"error",y),t.once("close",m),t.once("finish",g),t.emit("pipe",i),a.flowing||(u("pipe resume"),i.resume()),t},y.prototype.unpipe=function(e){var t=this._readableState,r={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,r)),this;if(!e){var n=t.pipes,o=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i=48&&n<=57?n-48:n>=65&&n<=70?n-55:n>=97&&n<=102?n-87:void r(!1,"Invalid character in "+e)}function s(e,t,r){var n=a(e,r);return r-1>=t&&(n|=a(e,r-1)<<4),n}function c(e,t,n,o){for(var i=0,a=0,s=Math.min(e.length,n),c=t;c=49?u-49+10:u>=17?u-17+10:u,r(u>=0&&a0?e:t},o.min=function(e,t){return e.cmp(t)<0?e:t},o.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),r(t===(0|t)&&t>=2&&t<=36);var o=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(o++,this.negative=1),o=0;o-=3)a=e[o]|e[o-1]<<8|e[o-2]<<16,this.words[i]|=a<>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);else if("le"===n)for(o=0,i=0;o>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);return this._strip()},o.prototype._parseHex=function(e,t,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var n=0;n=t;n-=2)o=s(e,t,n)<=18?(i-=18,a+=1,this.words[a]|=o>>>26):i+=8;else for(n=(e.length-t)%2==0?t+1:t;n=18?(i-=18,a+=1,this.words[a]|=o>>>26):i+=8;this._strip()},o.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var n=0,o=1;o<=67108863;o*=t)n++;n--,o=o/t|0;for(var i=e.length-r,a=i%n,s=Math.min(i,i-a)+r,u=0,l=r;l1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{o.prototype[Symbol.for("nodejs.util.inspect.custom")]=l}catch(e2){o.prototype.inspect=l}else o.prototype.inspect=l;function l(){return(this.red?""}var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],f=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],h=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function p(e,t,r){r.negative=t.negative^e.negative;var n=e.length+t.length|0;r.length=n,n=n-1|0;var o=0|e.words[0],i=0|t.words[0],a=o*i,s=67108863&a,c=a/67108864|0;r.words[0]=s;for(var u=1;u>>26,d=67108863&c,f=Math.min(u,t.length-1),h=Math.max(0,u-e.length+1);h<=f;h++){var p=u-h|0;l+=(a=(o=0|e.words[p])*(i=0|t.words[h])+d)/67108864|0,d=67108863&a}r.words[u]=0|d,c=0|l}return 0!==c?r.words[u]=0|c:r.length--,r._strip()}o.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var o=0,i=0,a=0;a>>24-o&16777215,(o+=2)>=26&&(o-=26,a--),n=0!==i||a!==this.length-1?d[6-c.length]+c+n:c+n}for(0!==i&&(n=i.toString(16)+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var u=f[e],l=h[e];n="";var p=this.clone();for(p.negative=0;!p.isZero();){var y=p.modrn(l).toString(e);n=(p=p.idivn(l)).isZero()?y+n:d[u-y.length]+y+n}for(this.isZero()&&(n="0"+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},o.prototype.toJSON=function(){return this.toString(16,2)},i&&(o.prototype.toBuffer=function(e,t){return this.toArrayLike(i,e,t)}),o.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},o.prototype.toArrayLike=function(e,t,n){this._strip();var o=this.byteLength(),i=n||Math.max(1,o);r(o<=i,"byte array longer than desired length"),r(i>0,"Requested array length <= 0");var a=function(e,t){return e.allocUnsafe?e.allocUnsafe(t):new e(t)}(e,i);return this["_toArrayLike"+("le"===t?"LE":"BE")](a,o),a},o.prototype._toArrayLikeLE=function(e,t){for(var r=0,n=0,o=0,i=0;o>8&255),r>16&255),6===i?(r>24&255),n=0,i=0):(n=a>>>24,i+=2)}if(r=0&&(e[r--]=a>>8&255),r>=0&&(e[r--]=a>>16&255),6===i?(r>=0&&(e[r--]=a>>24&255),n=0,i=0):(n=a>>>24,i+=2)}if(r>=0)for(e[r--]=n;r>=0;)e[r--]=0},Math.clz32?o.prototype._countBits=function(e){return 32-Math.clz32(e)}:o.prototype._countBits=function(e){var t=e,r=0;return t>=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},o.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 8191&t||(r+=13,t>>>=13),127&t||(r+=7,t>>>=7),15&t||(r+=4,t>>>=4),3&t||(r+=2,t>>>=2),1&t||r++,r},o.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},o.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},o.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;re.length?this.clone().iand(e):e.clone().iand(this)},o.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},o.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var n=0;ne.length?this.clone().ixor(e):e.clone().ixor(this)},o.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},o.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var o=0;o0&&(this.words[o]=~this.words[o]&67108863>>26-n),this._strip()},o.prototype.notn=function(e){return this.clone().inotn(e)},o.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var n=e/26|0,o=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<e.length?(r=this,n=e):(r=e,n=this);for(var o=0,i=0;i>>26;for(;0!==o&&i>>26;if(this.length=r.length,0!==o)this.words[this.length]=o,this.length++;else if(r!==this)for(;ie.length?this.clone().iadd(e):e.clone().iadd(this)},o.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,n,o=this.cmp(e);if(0===o)return this.negative=0,this.length=1,this.words[0]=0,this;o>0?(r=this,n=e):(r=e,n=this);for(var i=0,a=0;a>26,this.words[a]=67108863&t;for(;0!==i&&a>26,this.words[a]=67108863&t;if(0===i&&a>>13,h=0|a[1],p=8191&h,y=h>>>13,m=0|a[2],g=8191&m,b=m>>>13,v=0|a[3],w=8191&v,_=v>>>13,I=0|a[4],T=8191&I,k=I>>>13,$=0|a[5],S=8191&$,A=$>>>13,E=0|a[6],C=8191&E,R=E>>>13,O=0|a[7],N=8191&O,P=O>>>13,M=0|a[8],B=8191&M,D=M>>>13,x=0|a[9],L=8191&x,U=x>>>13,j=0|s[0],F=8191&j,q=j>>>13,K=0|s[1],H=8191&K,G=K>>>13,z=0|s[2],V=8191&z,W=z>>>13,Q=0|s[3],Y=8191&Q,X=Q>>>13,J=0|s[4],Z=8191&J,ee=J>>>13,te=0|s[5],re=8191&te,ne=te>>>13,oe=0|s[6],ie=8191&oe,ae=oe>>>13,se=0|s[7],ce=8191&se,ue=se>>>13,le=0|s[8],de=8191&le,fe=le>>>13,he=0|s[9],pe=8191&he,ye=he>>>13;r.negative=e.negative^t.negative,r.length=19;var me=(u+(n=Math.imul(d,F))|0)+((8191&(o=(o=Math.imul(d,q))+Math.imul(f,F)|0))<<13)|0;u=((i=Math.imul(f,q))+(o>>>13)|0)+(me>>>26)|0,me&=67108863,n=Math.imul(p,F),o=(o=Math.imul(p,q))+Math.imul(y,F)|0,i=Math.imul(y,q);var ge=(u+(n=n+Math.imul(d,H)|0)|0)+((8191&(o=(o=o+Math.imul(d,G)|0)+Math.imul(f,H)|0))<<13)|0;u=((i=i+Math.imul(f,G)|0)+(o>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(g,F),o=(o=Math.imul(g,q))+Math.imul(b,F)|0,i=Math.imul(b,q),n=n+Math.imul(p,H)|0,o=(o=o+Math.imul(p,G)|0)+Math.imul(y,H)|0,i=i+Math.imul(y,G)|0;var be=(u+(n=n+Math.imul(d,V)|0)|0)+((8191&(o=(o=o+Math.imul(d,W)|0)+Math.imul(f,V)|0))<<13)|0;u=((i=i+Math.imul(f,W)|0)+(o>>>13)|0)+(be>>>26)|0,be&=67108863,n=Math.imul(w,F),o=(o=Math.imul(w,q))+Math.imul(_,F)|0,i=Math.imul(_,q),n=n+Math.imul(g,H)|0,o=(o=o+Math.imul(g,G)|0)+Math.imul(b,H)|0,i=i+Math.imul(b,G)|0,n=n+Math.imul(p,V)|0,o=(o=o+Math.imul(p,W)|0)+Math.imul(y,V)|0,i=i+Math.imul(y,W)|0;var ve=(u+(n=n+Math.imul(d,Y)|0)|0)+((8191&(o=(o=o+Math.imul(d,X)|0)+Math.imul(f,Y)|0))<<13)|0;u=((i=i+Math.imul(f,X)|0)+(o>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(T,F),o=(o=Math.imul(T,q))+Math.imul(k,F)|0,i=Math.imul(k,q),n=n+Math.imul(w,H)|0,o=(o=o+Math.imul(w,G)|0)+Math.imul(_,H)|0,i=i+Math.imul(_,G)|0,n=n+Math.imul(g,V)|0,o=(o=o+Math.imul(g,W)|0)+Math.imul(b,V)|0,i=i+Math.imul(b,W)|0,n=n+Math.imul(p,Y)|0,o=(o=o+Math.imul(p,X)|0)+Math.imul(y,Y)|0,i=i+Math.imul(y,X)|0;var we=(u+(n=n+Math.imul(d,Z)|0)|0)+((8191&(o=(o=o+Math.imul(d,ee)|0)+Math.imul(f,Z)|0))<<13)|0;u=((i=i+Math.imul(f,ee)|0)+(o>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(S,F),o=(o=Math.imul(S,q))+Math.imul(A,F)|0,i=Math.imul(A,q),n=n+Math.imul(T,H)|0,o=(o=o+Math.imul(T,G)|0)+Math.imul(k,H)|0,i=i+Math.imul(k,G)|0,n=n+Math.imul(w,V)|0,o=(o=o+Math.imul(w,W)|0)+Math.imul(_,V)|0,i=i+Math.imul(_,W)|0,n=n+Math.imul(g,Y)|0,o=(o=o+Math.imul(g,X)|0)+Math.imul(b,Y)|0,i=i+Math.imul(b,X)|0,n=n+Math.imul(p,Z)|0,o=(o=o+Math.imul(p,ee)|0)+Math.imul(y,Z)|0,i=i+Math.imul(y,ee)|0;var _e=(u+(n=n+Math.imul(d,re)|0)|0)+((8191&(o=(o=o+Math.imul(d,ne)|0)+Math.imul(f,re)|0))<<13)|0;u=((i=i+Math.imul(f,ne)|0)+(o>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(C,F),o=(o=Math.imul(C,q))+Math.imul(R,F)|0,i=Math.imul(R,q),n=n+Math.imul(S,H)|0,o=(o=o+Math.imul(S,G)|0)+Math.imul(A,H)|0,i=i+Math.imul(A,G)|0,n=n+Math.imul(T,V)|0,o=(o=o+Math.imul(T,W)|0)+Math.imul(k,V)|0,i=i+Math.imul(k,W)|0,n=n+Math.imul(w,Y)|0,o=(o=o+Math.imul(w,X)|0)+Math.imul(_,Y)|0,i=i+Math.imul(_,X)|0,n=n+Math.imul(g,Z)|0,o=(o=o+Math.imul(g,ee)|0)+Math.imul(b,Z)|0,i=i+Math.imul(b,ee)|0,n=n+Math.imul(p,re)|0,o=(o=o+Math.imul(p,ne)|0)+Math.imul(y,re)|0,i=i+Math.imul(y,ne)|0;var Ie=(u+(n=n+Math.imul(d,ie)|0)|0)+((8191&(o=(o=o+Math.imul(d,ae)|0)+Math.imul(f,ie)|0))<<13)|0;u=((i=i+Math.imul(f,ae)|0)+(o>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,n=Math.imul(N,F),o=(o=Math.imul(N,q))+Math.imul(P,F)|0,i=Math.imul(P,q),n=n+Math.imul(C,H)|0,o=(o=o+Math.imul(C,G)|0)+Math.imul(R,H)|0,i=i+Math.imul(R,G)|0,n=n+Math.imul(S,V)|0,o=(o=o+Math.imul(S,W)|0)+Math.imul(A,V)|0,i=i+Math.imul(A,W)|0,n=n+Math.imul(T,Y)|0,o=(o=o+Math.imul(T,X)|0)+Math.imul(k,Y)|0,i=i+Math.imul(k,X)|0,n=n+Math.imul(w,Z)|0,o=(o=o+Math.imul(w,ee)|0)+Math.imul(_,Z)|0,i=i+Math.imul(_,ee)|0,n=n+Math.imul(g,re)|0,o=(o=o+Math.imul(g,ne)|0)+Math.imul(b,re)|0,i=i+Math.imul(b,ne)|0,n=n+Math.imul(p,ie)|0,o=(o=o+Math.imul(p,ae)|0)+Math.imul(y,ie)|0,i=i+Math.imul(y,ae)|0;var Te=(u+(n=n+Math.imul(d,ce)|0)|0)+((8191&(o=(o=o+Math.imul(d,ue)|0)+Math.imul(f,ce)|0))<<13)|0;u=((i=i+Math.imul(f,ue)|0)+(o>>>13)|0)+(Te>>>26)|0,Te&=67108863,n=Math.imul(B,F),o=(o=Math.imul(B,q))+Math.imul(D,F)|0,i=Math.imul(D,q),n=n+Math.imul(N,H)|0,o=(o=o+Math.imul(N,G)|0)+Math.imul(P,H)|0,i=i+Math.imul(P,G)|0,n=n+Math.imul(C,V)|0,o=(o=o+Math.imul(C,W)|0)+Math.imul(R,V)|0,i=i+Math.imul(R,W)|0,n=n+Math.imul(S,Y)|0,o=(o=o+Math.imul(S,X)|0)+Math.imul(A,Y)|0,i=i+Math.imul(A,X)|0,n=n+Math.imul(T,Z)|0,o=(o=o+Math.imul(T,ee)|0)+Math.imul(k,Z)|0,i=i+Math.imul(k,ee)|0,n=n+Math.imul(w,re)|0,o=(o=o+Math.imul(w,ne)|0)+Math.imul(_,re)|0,i=i+Math.imul(_,ne)|0,n=n+Math.imul(g,ie)|0,o=(o=o+Math.imul(g,ae)|0)+Math.imul(b,ie)|0,i=i+Math.imul(b,ae)|0,n=n+Math.imul(p,ce)|0,o=(o=o+Math.imul(p,ue)|0)+Math.imul(y,ce)|0,i=i+Math.imul(y,ue)|0;var ke=(u+(n=n+Math.imul(d,de)|0)|0)+((8191&(o=(o=o+Math.imul(d,fe)|0)+Math.imul(f,de)|0))<<13)|0;u=((i=i+Math.imul(f,fe)|0)+(o>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(L,F),o=(o=Math.imul(L,q))+Math.imul(U,F)|0,i=Math.imul(U,q),n=n+Math.imul(B,H)|0,o=(o=o+Math.imul(B,G)|0)+Math.imul(D,H)|0,i=i+Math.imul(D,G)|0,n=n+Math.imul(N,V)|0,o=(o=o+Math.imul(N,W)|0)+Math.imul(P,V)|0,i=i+Math.imul(P,W)|0,n=n+Math.imul(C,Y)|0,o=(o=o+Math.imul(C,X)|0)+Math.imul(R,Y)|0,i=i+Math.imul(R,X)|0,n=n+Math.imul(S,Z)|0,o=(o=o+Math.imul(S,ee)|0)+Math.imul(A,Z)|0,i=i+Math.imul(A,ee)|0,n=n+Math.imul(T,re)|0,o=(o=o+Math.imul(T,ne)|0)+Math.imul(k,re)|0,i=i+Math.imul(k,ne)|0,n=n+Math.imul(w,ie)|0,o=(o=o+Math.imul(w,ae)|0)+Math.imul(_,ie)|0,i=i+Math.imul(_,ae)|0,n=n+Math.imul(g,ce)|0,o=(o=o+Math.imul(g,ue)|0)+Math.imul(b,ce)|0,i=i+Math.imul(b,ue)|0,n=n+Math.imul(p,de)|0,o=(o=o+Math.imul(p,fe)|0)+Math.imul(y,de)|0,i=i+Math.imul(y,fe)|0;var $e=(u+(n=n+Math.imul(d,pe)|0)|0)+((8191&(o=(o=o+Math.imul(d,ye)|0)+Math.imul(f,pe)|0))<<13)|0;u=((i=i+Math.imul(f,ye)|0)+(o>>>13)|0)+($e>>>26)|0,$e&=67108863,n=Math.imul(L,H),o=(o=Math.imul(L,G))+Math.imul(U,H)|0,i=Math.imul(U,G),n=n+Math.imul(B,V)|0,o=(o=o+Math.imul(B,W)|0)+Math.imul(D,V)|0,i=i+Math.imul(D,W)|0,n=n+Math.imul(N,Y)|0,o=(o=o+Math.imul(N,X)|0)+Math.imul(P,Y)|0,i=i+Math.imul(P,X)|0,n=n+Math.imul(C,Z)|0,o=(o=o+Math.imul(C,ee)|0)+Math.imul(R,Z)|0,i=i+Math.imul(R,ee)|0,n=n+Math.imul(S,re)|0,o=(o=o+Math.imul(S,ne)|0)+Math.imul(A,re)|0,i=i+Math.imul(A,ne)|0,n=n+Math.imul(T,ie)|0,o=(o=o+Math.imul(T,ae)|0)+Math.imul(k,ie)|0,i=i+Math.imul(k,ae)|0,n=n+Math.imul(w,ce)|0,o=(o=o+Math.imul(w,ue)|0)+Math.imul(_,ce)|0,i=i+Math.imul(_,ue)|0,n=n+Math.imul(g,de)|0,o=(o=o+Math.imul(g,fe)|0)+Math.imul(b,de)|0,i=i+Math.imul(b,fe)|0;var Se=(u+(n=n+Math.imul(p,pe)|0)|0)+((8191&(o=(o=o+Math.imul(p,ye)|0)+Math.imul(y,pe)|0))<<13)|0;u=((i=i+Math.imul(y,ye)|0)+(o>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(L,V),o=(o=Math.imul(L,W))+Math.imul(U,V)|0,i=Math.imul(U,W),n=n+Math.imul(B,Y)|0,o=(o=o+Math.imul(B,X)|0)+Math.imul(D,Y)|0,i=i+Math.imul(D,X)|0,n=n+Math.imul(N,Z)|0,o=(o=o+Math.imul(N,ee)|0)+Math.imul(P,Z)|0,i=i+Math.imul(P,ee)|0,n=n+Math.imul(C,re)|0,o=(o=o+Math.imul(C,ne)|0)+Math.imul(R,re)|0,i=i+Math.imul(R,ne)|0,n=n+Math.imul(S,ie)|0,o=(o=o+Math.imul(S,ae)|0)+Math.imul(A,ie)|0,i=i+Math.imul(A,ae)|0,n=n+Math.imul(T,ce)|0,o=(o=o+Math.imul(T,ue)|0)+Math.imul(k,ce)|0,i=i+Math.imul(k,ue)|0,n=n+Math.imul(w,de)|0,o=(o=o+Math.imul(w,fe)|0)+Math.imul(_,de)|0,i=i+Math.imul(_,fe)|0;var Ae=(u+(n=n+Math.imul(g,pe)|0)|0)+((8191&(o=(o=o+Math.imul(g,ye)|0)+Math.imul(b,pe)|0))<<13)|0;u=((i=i+Math.imul(b,ye)|0)+(o>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(L,Y),o=(o=Math.imul(L,X))+Math.imul(U,Y)|0,i=Math.imul(U,X),n=n+Math.imul(B,Z)|0,o=(o=o+Math.imul(B,ee)|0)+Math.imul(D,Z)|0,i=i+Math.imul(D,ee)|0,n=n+Math.imul(N,re)|0,o=(o=o+Math.imul(N,ne)|0)+Math.imul(P,re)|0,i=i+Math.imul(P,ne)|0,n=n+Math.imul(C,ie)|0,o=(o=o+Math.imul(C,ae)|0)+Math.imul(R,ie)|0,i=i+Math.imul(R,ae)|0,n=n+Math.imul(S,ce)|0,o=(o=o+Math.imul(S,ue)|0)+Math.imul(A,ce)|0,i=i+Math.imul(A,ue)|0,n=n+Math.imul(T,de)|0,o=(o=o+Math.imul(T,fe)|0)+Math.imul(k,de)|0,i=i+Math.imul(k,fe)|0;var Ee=(u+(n=n+Math.imul(w,pe)|0)|0)+((8191&(o=(o=o+Math.imul(w,ye)|0)+Math.imul(_,pe)|0))<<13)|0;u=((i=i+Math.imul(_,ye)|0)+(o>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(L,Z),o=(o=Math.imul(L,ee))+Math.imul(U,Z)|0,i=Math.imul(U,ee),n=n+Math.imul(B,re)|0,o=(o=o+Math.imul(B,ne)|0)+Math.imul(D,re)|0,i=i+Math.imul(D,ne)|0,n=n+Math.imul(N,ie)|0,o=(o=o+Math.imul(N,ae)|0)+Math.imul(P,ie)|0,i=i+Math.imul(P,ae)|0,n=n+Math.imul(C,ce)|0,o=(o=o+Math.imul(C,ue)|0)+Math.imul(R,ce)|0,i=i+Math.imul(R,ue)|0,n=n+Math.imul(S,de)|0,o=(o=o+Math.imul(S,fe)|0)+Math.imul(A,de)|0,i=i+Math.imul(A,fe)|0;var Ce=(u+(n=n+Math.imul(T,pe)|0)|0)+((8191&(o=(o=o+Math.imul(T,ye)|0)+Math.imul(k,pe)|0))<<13)|0;u=((i=i+Math.imul(k,ye)|0)+(o>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,n=Math.imul(L,re),o=(o=Math.imul(L,ne))+Math.imul(U,re)|0,i=Math.imul(U,ne),n=n+Math.imul(B,ie)|0,o=(o=o+Math.imul(B,ae)|0)+Math.imul(D,ie)|0,i=i+Math.imul(D,ae)|0,n=n+Math.imul(N,ce)|0,o=(o=o+Math.imul(N,ue)|0)+Math.imul(P,ce)|0,i=i+Math.imul(P,ue)|0,n=n+Math.imul(C,de)|0,o=(o=o+Math.imul(C,fe)|0)+Math.imul(R,de)|0,i=i+Math.imul(R,fe)|0;var Re=(u+(n=n+Math.imul(S,pe)|0)|0)+((8191&(o=(o=o+Math.imul(S,ye)|0)+Math.imul(A,pe)|0))<<13)|0;u=((i=i+Math.imul(A,ye)|0)+(o>>>13)|0)+(Re>>>26)|0,Re&=67108863,n=Math.imul(L,ie),o=(o=Math.imul(L,ae))+Math.imul(U,ie)|0,i=Math.imul(U,ae),n=n+Math.imul(B,ce)|0,o=(o=o+Math.imul(B,ue)|0)+Math.imul(D,ce)|0,i=i+Math.imul(D,ue)|0,n=n+Math.imul(N,de)|0,o=(o=o+Math.imul(N,fe)|0)+Math.imul(P,de)|0,i=i+Math.imul(P,fe)|0;var Oe=(u+(n=n+Math.imul(C,pe)|0)|0)+((8191&(o=(o=o+Math.imul(C,ye)|0)+Math.imul(R,pe)|0))<<13)|0;u=((i=i+Math.imul(R,ye)|0)+(o>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,n=Math.imul(L,ce),o=(o=Math.imul(L,ue))+Math.imul(U,ce)|0,i=Math.imul(U,ue),n=n+Math.imul(B,de)|0,o=(o=o+Math.imul(B,fe)|0)+Math.imul(D,de)|0,i=i+Math.imul(D,fe)|0;var Ne=(u+(n=n+Math.imul(N,pe)|0)|0)+((8191&(o=(o=o+Math.imul(N,ye)|0)+Math.imul(P,pe)|0))<<13)|0;u=((i=i+Math.imul(P,ye)|0)+(o>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,n=Math.imul(L,de),o=(o=Math.imul(L,fe))+Math.imul(U,de)|0,i=Math.imul(U,fe);var Pe=(u+(n=n+Math.imul(B,pe)|0)|0)+((8191&(o=(o=o+Math.imul(B,ye)|0)+Math.imul(D,pe)|0))<<13)|0;u=((i=i+Math.imul(D,ye)|0)+(o>>>13)|0)+(Pe>>>26)|0,Pe&=67108863;var Me=(u+(n=Math.imul(L,pe))|0)+((8191&(o=(o=Math.imul(L,ye))+Math.imul(U,pe)|0))<<13)|0;return u=((i=Math.imul(U,ye))+(o>>>13)|0)+(Me>>>26)|0,Me&=67108863,c[0]=me,c[1]=ge,c[2]=be,c[3]=ve,c[4]=we,c[5]=_e,c[6]=Ie,c[7]=Te,c[8]=ke,c[9]=$e,c[10]=Se,c[11]=Ae,c[12]=Ee,c[13]=Ce,c[14]=Re,c[15]=Oe,c[16]=Ne,c[17]=Pe,c[18]=Me,0!==u&&(c[19]=u,r.length++),r};function m(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var n=0,o=0,i=0;i>>26)|0)>>>26,a&=67108863}r.words[i]=s,n=a,a=o}return 0!==n?r.words[i]=n:r.length--,r._strip()}function g(e,t,r){return m(e,t,r)}Math.imul||(y=p),o.prototype.mulTo=function(e,t){var r=this.length+e.length;return 10===this.length&&10===e.length?y(this,e,t):r<63?p(this,e,t):r<1024?m(this,e,t):g(this,e,t)},o.prototype.mul=function(e){var t=new o(null);return t.words=new Array(this.length+e.length),this.mulTo(e,t)},o.prototype.mulf=function(e){var t=new o(null);return t.words=new Array(this.length+e.length),g(this,e,t)},o.prototype.imul=function(e){return this.clone().mulTo(e,this)},o.prototype.imuln=function(e){var t=e<0;t&&(e=-e),r("number"==typeof e),r(e<67108864);for(var n=0,o=0;o>=26,n+=i/67108864|0,n+=a>>>26,this.words[o]=67108863&a}return 0!==n&&(this.words[o]=n,this.length++),t?this.ineg():this},o.prototype.muln=function(e){return this.clone().imuln(e)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r>>o&1}return t}(e);if(0===t.length)return new o(1);for(var r=this,n=0;n=0);var t,n=e%26,o=(e-n)/26,i=67108863>>>26-n<<26-n;if(0!==n){var a=0;for(t=0;t>>26-n}a&&(this.words[t]=a,this.length++)}if(0!==o){for(t=this.length-1;t>=0;t--)this.words[t+o]=this.words[t];for(t=0;t=0),o=t?(t-t%26)/26:0;var i=e%26,a=Math.min((e-i)/26,this.length),s=67108863^67108863>>>i<a)for(this.length-=a,u=0;u=0&&(0!==l||u>=o);u--){var d=0|this.words[u];this.words[u]=l<<26-i|d>>>i,l=d&s}return c&&0!==l&&(c.words[c.length++]=l),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},o.prototype.ishrn=function(e,t,n){return r(0===this.negative),this.iushrn(e,t,n)},o.prototype.shln=function(e){return this.clone().ishln(e)},o.prototype.ushln=function(e){return this.clone().iushln(e)},o.prototype.shrn=function(e){return this.clone().ishrn(e)},o.prototype.ushrn=function(e){return this.clone().iushrn(e)},o.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26,o=1<=0);var t=e%26,n=(e-t)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==t&&n++,this.length=Math.min(n,this.length),0!==t){var o=67108863^67108863>>>t<=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},o.prototype.isubn=function(e){if(r("number"==typeof e),r(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t>26)-(c/67108864|0),this.words[o+n]=67108863&i}for(;o>26,this.words[o+n]=67108863&i;if(0===s)return this._strip();for(r(-1===s),s=0,o=0;o>26,this.words[o]=67108863&i;return this.negative=1,this._strip()},o.prototype._wordDiv=function(e,t){var r=(this.length,e.length),n=this.clone(),i=e,a=0|i.words[i.length-1];0!=(r=26-this._countBits(a))&&(i=i.ushln(r),n.iushln(r),a=0|i.words[i.length-1]);var s,c=n.length-i.length;if("mod"!==t){(s=new o(null)).length=c+1,s.words=new Array(s.length);for(var u=0;u=0;d--){var f=67108864*(0|n.words[i.length+d])+(0|n.words[i.length+d-1]);for(f=Math.min(f/a|0,67108863),n._ishlnsubmul(i,f,d);0!==n.negative;)f--,n.negative=0,n._ishlnsubmul(i,1,d),n.isZero()||(n.negative^=1);s&&(s.words[d]=f)}return s&&s._strip(),n._strip(),"div"!==t&&0!==r&&n.iushrn(r),{div:s||null,mod:n}},o.prototype.divmod=function(e,t,n){return r(!e.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===e.negative?(s=this.neg().divmod(e,t),"mod"!==t&&(i=s.div.neg()),"div"!==t&&(a=s.mod.neg(),n&&0!==a.negative&&a.iadd(e)),{div:i,mod:a}):0===this.negative&&0!==e.negative?(s=this.divmod(e.neg(),t),"mod"!==t&&(i=s.div.neg()),{div:i,mod:s.mod}):this.negative&e.negative?(s=this.neg().divmod(e.neg(),t),"div"!==t&&(a=s.mod.neg(),n&&0!==a.negative&&a.isub(e)),{div:s.div,mod:a}):e.length>this.length||this.cmp(e)<0?{div:new o(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new o(this.modrn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new o(this.modrn(e.words[0]))}:this._wordDiv(e,t);var i,a,s},o.prototype.div=function(e){return this.divmod(e,"div",!1).div},o.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},o.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},o.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,n=e.ushrn(1),o=e.andln(1),i=r.cmp(n);return i<0||1===o&&0===i?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},o.prototype.modrn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var n=(1<<26)%e,o=0,i=this.length-1;i>=0;i--)o=(n*o+(0|this.words[i]))%e;return t?-o:o},o.prototype.modn=function(e){return this.modrn(e)},o.prototype.idivn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var n=0,o=this.length-1;o>=0;o--){var i=(0|this.words[o])+67108864*n;this.words[o]=i/e|0,n=i%e}return this._strip(),t?this.ineg():this},o.prototype.divn=function(e){return this.clone().idivn(e)},o.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i=new o(1),a=new o(0),s=new o(0),c=new o(1),u=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++u;for(var l=n.clone(),d=t.clone();!t.isZero();){for(var f=0,h=1;!(t.words[0]&h)&&f<26;++f,h<<=1);if(f>0)for(t.iushrn(f);f-- >0;)(i.isOdd()||a.isOdd())&&(i.iadd(l),a.isub(d)),i.iushrn(1),a.iushrn(1);for(var p=0,y=1;!(n.words[0]&y)&&p<26;++p,y<<=1);if(p>0)for(n.iushrn(p);p-- >0;)(s.isOdd()||c.isOdd())&&(s.iadd(l),c.isub(d)),s.iushrn(1),c.iushrn(1);t.cmp(n)>=0?(t.isub(n),i.isub(s),a.isub(c)):(n.isub(t),s.isub(i),c.isub(a))}return{a:s,b:c,gcd:n.iushln(u)}},o.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i,a=new o(1),s=new o(0),c=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var u=0,l=1;!(t.words[0]&l)&&u<26;++u,l<<=1);if(u>0)for(t.iushrn(u);u-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);for(var d=0,f=1;!(n.words[0]&f)&&d<26;++d,f<<=1);if(d>0)for(n.iushrn(d);d-- >0;)s.isOdd()&&s.iadd(c),s.iushrn(1);t.cmp(n)>=0?(t.isub(n),a.isub(s)):(n.isub(t),s.isub(a))}return(i=0===t.cmpn(1)?a:s).cmpn(0)<0&&i.iadd(e),i},o.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var n=0;t.isEven()&&r.isEven();n++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var o=t.cmp(r);if(o<0){var i=t;t=r,r=i}else if(0===o||0===r.cmpn(1))break;t.isub(r)}return r.iushln(n)},o.prototype.invm=function(e){return this.egcd(e).a.umod(e)},o.prototype.isEven=function(){return!(1&this.words[0])},o.prototype.isOdd=function(){return!(1&~this.words[0])},o.prototype.andln=function(e){return this.words[0]&e},o.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,n=(e-t)/26,o=1<>>26,s&=67108863,this.words[a]=s}return 0!==i&&(this.words[a]=i,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this._strip(),this.length>1)t=1;else{n&&(e=-e),r(e<=67108863,"Number is too big");var o=0|this.words[0];t=o===e?0:oe.length)return 1;if(this.length=0;r--){var n=0|this.words[r],o=0|e.words[r];if(n!==o){no&&(t=1);break}}return t},o.prototype.gtn=function(e){return 1===this.cmpn(e)},o.prototype.gt=function(e){return 1===this.cmp(e)},o.prototype.gten=function(e){return this.cmpn(e)>=0},o.prototype.gte=function(e){return this.cmp(e)>=0},o.prototype.ltn=function(e){return-1===this.cmpn(e)},o.prototype.lt=function(e){return-1===this.cmp(e)},o.prototype.lten=function(e){return this.cmpn(e)<=0},o.prototype.lte=function(e){return this.cmp(e)<=0},o.prototype.eqn=function(e){return 0===this.cmpn(e)},o.prototype.eq=function(e){return 0===this.cmp(e)},o.red=function(e){return new k(e)},o.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},o.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(e){return this.red=e,this},o.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},o.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},o.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},o.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},o.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},o.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},o.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},o.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},o.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var b={k256:null,p224:null,p192:null,p25519:null};function v(e,t){this.name=e,this.p=new o(t,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function w(){v.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function _(){v.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function I(){v.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function T(){v.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function k(e){if("string"==typeof e){var t=o._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function $(e){k.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}v.prototype._tmp=function(){var e=new o(null);return e.words=new Array(Math.ceil(this.n/13)),e},v.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var n=t0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},v.prototype.split=function(e,t){e.iushrn(this.n,0,t)},v.prototype.imulK=function(e){return e.imul(this.k)},n(w,v),w.prototype.split=function(e,t){for(var r=4194303,n=Math.min(e.length,9),o=0;o>>22,i=a}i>>>=22,e.words[o-10]=i,0===i&&e.length>10?e.length-=10:e.length-=9},w.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r>>=26,e.words[r]=o,t=n}return 0!==t&&(e.words[e.length++]=t),e},o._prime=function(e){if(b[e])return b[e];var t;if("k256"===e)t=new w;else if("p224"===e)t=new _;else if("p192"===e)t=new I;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new T}return b[e]=t,t},k.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},k.prototype._verify2=function(e,t){r(!(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},k.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):(u(e,e.umod(this.m)._forceRed(this)),e)},k.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},k.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},k.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},k.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},k.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},k.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},k.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},k.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},k.prototype.isqr=function(e){return this.imul(e,e.clone())},k.prototype.sqr=function(e){return this.mul(e,e)},k.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var n=this.m.add(new o(1)).iushrn(2);return this.pow(e,n)}for(var i=this.m.subn(1),a=0;!i.isZero()&&0===i.andln(1);)a++,i.iushrn(1);r(!i.isZero());var s=new o(1).toRed(this),c=s.redNeg(),u=this.m.subn(1).iushrn(1),l=this.m.bitLength();for(l=new o(2*l*l).toRed(this);0!==this.pow(l,u).cmp(c);)l.redIAdd(c);for(var d=this.pow(l,i),f=this.pow(e,i.addn(1).iushrn(1)),h=this.pow(e,i),p=a;0!==h.cmp(s);){for(var y=h,m=0;0!==y.cmp(s);m++)y=y.redSqr();r(m=0;n--){for(var u=t.words[n],l=c-1;l>=0;l--){var d=u>>l&1;i!==r[0]&&(i=this.sqr(i)),0!==d||0!==a?(a<<=1,a|=d,(4==++s||0===n&&0===l)&&(i=this.mul(i,r[a]),s=0,a=0)):s=0}c=26}return i},k.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},k.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},o.mont=function(e){return new $(e)},n($,k),$.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},$.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},$.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=r.isub(n).iushrn(this.shift),i=o;return o.cmp(this.m)>=0?i=o.isub(this.m):o.cmpn(0)<0&&(i=o.iadd(this.m)),i._forceRed(this)},$.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new o(0)._forceRed(this);var r=e.mul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},$.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(module2,commonjsGlobal);var bnExports$3=bn$9.exports;const BN$o=getDefaultExportFromCjs$1(bnExports$3);var browserifyRsa,hasRequiredBrowserifyRsa;function requireBrowserifyRsa(){if(hasRequiredBrowserifyRsa)return browserifyRsa;hasRequiredBrowserifyRsa=1;var e=bnExports$3,t=requireBrowser$b(),r=requireSafeBuffer$1().Buffer;function n(r){var n,o=r.modulus.byteLength();do{n=new e(t(o))}while(n.cmp(r.modulus)>=0||!n.umod(r.prime1)||!n.umod(r.prime2));return n}function o(t,o){var i=function(t){var r=n(t);return{blinder:r.toRed(e.mont(t.modulus)).redPow(new e(t.publicExponent)).fromRed(),unblinder:r.invm(t.modulus)}}(o),a=o.modulus.byteLength(),s=new e(t).mul(i.blinder).umod(o.modulus),c=s.toRed(e.mont(o.prime1)),u=s.toRed(e.mont(o.prime2)),l=o.coefficient,d=o.prime1,f=o.prime2,h=c.redPow(o.exponent1).fromRed(),p=u.redPow(o.exponent2).fromRed(),y=h.isub(p).imul(l).umod(d).imul(f);return p.iadd(y).imul(i.unblinder).umod(o.modulus).toArrayLike(r,"be",a)}return o.getr=n,browserifyRsa=o}var elliptic$4={};const name$3="elliptic",version$d="6.6.1",description$3="EC cryptography",main$3="lib/elliptic.js",files$3=["lib"],scripts$3={lint:"eslint lib test","lint:fix":"npm run lint -- --fix",unit:"istanbul test _mocha --reporter=spec test/index.js",test:"npm run lint && npm run unit",version:"grunt dist && git add dist/"},repository$3={type:"git",url:"git@github.com:indutny/elliptic"},keywords$3=["EC","Elliptic","curve","Cryptography"],author$3="Fedor Indutny ",license$3="MIT",bugs$3={url:"https://github.com/indutny/elliptic/issues"},homepage$3="https://github.com/indutny/elliptic",devDependencies$3={brfs:"^2.0.2",coveralls:"^3.1.0",eslint:"^7.6.0",grunt:"^1.2.1","grunt-browserify":"^5.3.0","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^5.0.0","grunt-mocha-istanbul":"^5.0.2","grunt-saucelabs":"^9.0.1",istanbul:"^0.4.5",mocha:"^8.0.1"},dependencies$3={"bn.js":"^4.11.9",brorand:"^1.1.0","hash.js":"^1.0.0","hmac-drbg":"^1.0.1",inherits:"^2.0.4","minimalistic-assert":"^1.0.1","minimalistic-crypto-utils":"^1.0.1"},require$$0$6={name:name$3,version:version$d,description:description$3,main:main$3,files:files$3,scripts:scripts$3,repository:repository$3,keywords:keywords$3,author:author$3,license:license$3,bugs:bugs$3,homepage:homepage$3,devDependencies:devDependencies$3,dependencies:dependencies$3};var utils$P={},bn$8={exports:{}},hasRequiredBn$3;function requireBn$3(){return hasRequiredBn$3||(hasRequiredBn$3=1,function(e){!function(e,t){function r(e,t){if(!e)throw new Error(t||"Assertion failed")}function n(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}function o(e,t,r){if(o.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(r=t,t=10),this._init(e||0,t||10,r||"be"))}var i;"object"==typeof e?e.exports=o:t.BN=o,o.BN=o,o.wordSize=26;try{i="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:require$$2$1.Buffer}catch(e2){}function a(e,t){var r=e.charCodeAt(t);return r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:r-48&15}function s(e,t,r){var n=a(e,r);return r-1>=t&&(n|=a(e,r-1)<<4),n}function c(e,t,r,n){for(var o=0,i=Math.min(e.length,r),a=t;a=49?s-49+10:s>=17?s-17+10:s}return o}o.isBN=function(e){return e instanceof o||null!==e&&"object"==typeof e&&e.constructor.wordSize===o.wordSize&&Array.isArray(e.words)},o.max=function(e,t){return e.cmp(t)>0?e:t},o.min=function(e,t){return e.cmp(t)<0?e:t},o.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),r(t===(0|t)&&t>=2&&t<=36);var o=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(o++,this.negative=1),o=0;o-=3)a=e[o]|e[o-1]<<8|e[o-2]<<16,this.words[i]|=a<>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);else if("le"===n)for(o=0,i=0;o>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);return this.strip()},o.prototype._parseHex=function(e,t,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var n=0;n=t;n-=2)o=s(e,t,n)<=18?(i-=18,a+=1,this.words[a]|=o>>>26):i+=8;else for(n=(e.length-t)%2==0?t+1:t;n=18?(i-=18,a+=1,this.words[a]|=o>>>26):i+=8;this.strip()},o.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var n=0,o=1;o<=67108863;o*=t)n++;n--,o=o/t|0;for(var i=e.length-r,a=i%n,s=Math.min(i,i-a)+r,u=0,l=r;l1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?""};var u=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],l=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],d=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function f(e,t,r){r.negative=t.negative^e.negative;var n=e.length+t.length|0;r.length=n,n=n-1|0;var o=0|e.words[0],i=0|t.words[0],a=o*i,s=67108863&a,c=a/67108864|0;r.words[0]=s;for(var u=1;u>>26,d=67108863&c,f=Math.min(u,t.length-1),h=Math.max(0,u-e.length+1);h<=f;h++){var p=u-h|0;l+=(a=(o=0|e.words[p])*(i=0|t.words[h])+d)/67108864|0,d=67108863&a}r.words[u]=0|d,c=0|l}return 0!==c?r.words[u]=0|c:r.length--,r.strip()}o.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var o=0,i=0,a=0;a>>24-o&16777215,(o+=2)>=26&&(o-=26,a--),n=0!==i||a!==this.length-1?u[6-c.length]+c+n:c+n}for(0!==i&&(n=i.toString(16)+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var f=l[e],h=d[e];n="";var p=this.clone();for(p.negative=0;!p.isZero();){var y=p.modn(h).toString(e);n=(p=p.idivn(h)).isZero()?y+n:u[f-y.length]+y+n}for(this.isZero()&&(n="0"+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(e,t){return r(void 0!==i),this.toArrayLike(i,e,t)},o.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},o.prototype.toArrayLike=function(e,t,n){var o=this.byteLength(),i=n||Math.max(1,o);r(o<=i,"byte array longer than desired length"),r(i>0,"Requested array length <= 0"),this.strip();var a,s,c="le"===t,u=new e(i),l=this.clone();if(c){for(s=0;!l.isZero();s++)a=l.andln(255),l.iushrn(8),u[s]=a;for(;s=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},o.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 8191&t||(r+=13,t>>>=13),127&t||(r+=7,t>>>=7),15&t||(r+=4,t>>>=4),3&t||(r+=2,t>>>=2),1&t||r++,r},o.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},o.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},o.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;re.length?this.clone().iand(e):e.clone().iand(this)},o.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},o.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var n=0;ne.length?this.clone().ixor(e):e.clone().ixor(this)},o.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},o.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var o=0;o0&&(this.words[o]=~this.words[o]&67108863>>26-n),this.strip()},o.prototype.notn=function(e){return this.clone().inotn(e)},o.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var n=e/26|0,o=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<e.length?(r=this,n=e):(r=e,n=this);for(var o=0,i=0;i>>26;for(;0!==o&&i>>26;if(this.length=r.length,0!==o)this.words[this.length]=o,this.length++;else if(r!==this)for(;ie.length?this.clone().iadd(e):e.clone().iadd(this)},o.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,n,o=this.cmp(e);if(0===o)return this.negative=0,this.length=1,this.words[0]=0,this;o>0?(r=this,n=e):(r=e,n=this);for(var i=0,a=0;a>26,this.words[a]=67108863&t;for(;0!==i&&a>26,this.words[a]=67108863&t;if(0===i&&a>>13,h=0|a[1],p=8191&h,y=h>>>13,m=0|a[2],g=8191&m,b=m>>>13,v=0|a[3],w=8191&v,_=v>>>13,I=0|a[4],T=8191&I,k=I>>>13,$=0|a[5],S=8191&$,A=$>>>13,E=0|a[6],C=8191&E,R=E>>>13,O=0|a[7],N=8191&O,P=O>>>13,M=0|a[8],B=8191&M,D=M>>>13,x=0|a[9],L=8191&x,U=x>>>13,j=0|s[0],F=8191&j,q=j>>>13,K=0|s[1],H=8191&K,G=K>>>13,z=0|s[2],V=8191&z,W=z>>>13,Q=0|s[3],Y=8191&Q,X=Q>>>13,J=0|s[4],Z=8191&J,ee=J>>>13,te=0|s[5],re=8191&te,ne=te>>>13,oe=0|s[6],ie=8191&oe,ae=oe>>>13,se=0|s[7],ce=8191&se,ue=se>>>13,le=0|s[8],de=8191&le,fe=le>>>13,he=0|s[9],pe=8191&he,ye=he>>>13;r.negative=e.negative^t.negative,r.length=19;var me=(u+(n=Math.imul(d,F))|0)+((8191&(o=(o=Math.imul(d,q))+Math.imul(f,F)|0))<<13)|0;u=((i=Math.imul(f,q))+(o>>>13)|0)+(me>>>26)|0,me&=67108863,n=Math.imul(p,F),o=(o=Math.imul(p,q))+Math.imul(y,F)|0,i=Math.imul(y,q);var ge=(u+(n=n+Math.imul(d,H)|0)|0)+((8191&(o=(o=o+Math.imul(d,G)|0)+Math.imul(f,H)|0))<<13)|0;u=((i=i+Math.imul(f,G)|0)+(o>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(g,F),o=(o=Math.imul(g,q))+Math.imul(b,F)|0,i=Math.imul(b,q),n=n+Math.imul(p,H)|0,o=(o=o+Math.imul(p,G)|0)+Math.imul(y,H)|0,i=i+Math.imul(y,G)|0;var be=(u+(n=n+Math.imul(d,V)|0)|0)+((8191&(o=(o=o+Math.imul(d,W)|0)+Math.imul(f,V)|0))<<13)|0;u=((i=i+Math.imul(f,W)|0)+(o>>>13)|0)+(be>>>26)|0,be&=67108863,n=Math.imul(w,F),o=(o=Math.imul(w,q))+Math.imul(_,F)|0,i=Math.imul(_,q),n=n+Math.imul(g,H)|0,o=(o=o+Math.imul(g,G)|0)+Math.imul(b,H)|0,i=i+Math.imul(b,G)|0,n=n+Math.imul(p,V)|0,o=(o=o+Math.imul(p,W)|0)+Math.imul(y,V)|0,i=i+Math.imul(y,W)|0;var ve=(u+(n=n+Math.imul(d,Y)|0)|0)+((8191&(o=(o=o+Math.imul(d,X)|0)+Math.imul(f,Y)|0))<<13)|0;u=((i=i+Math.imul(f,X)|0)+(o>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(T,F),o=(o=Math.imul(T,q))+Math.imul(k,F)|0,i=Math.imul(k,q),n=n+Math.imul(w,H)|0,o=(o=o+Math.imul(w,G)|0)+Math.imul(_,H)|0,i=i+Math.imul(_,G)|0,n=n+Math.imul(g,V)|0,o=(o=o+Math.imul(g,W)|0)+Math.imul(b,V)|0,i=i+Math.imul(b,W)|0,n=n+Math.imul(p,Y)|0,o=(o=o+Math.imul(p,X)|0)+Math.imul(y,Y)|0,i=i+Math.imul(y,X)|0;var we=(u+(n=n+Math.imul(d,Z)|0)|0)+((8191&(o=(o=o+Math.imul(d,ee)|0)+Math.imul(f,Z)|0))<<13)|0;u=((i=i+Math.imul(f,ee)|0)+(o>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(S,F),o=(o=Math.imul(S,q))+Math.imul(A,F)|0,i=Math.imul(A,q),n=n+Math.imul(T,H)|0,o=(o=o+Math.imul(T,G)|0)+Math.imul(k,H)|0,i=i+Math.imul(k,G)|0,n=n+Math.imul(w,V)|0,o=(o=o+Math.imul(w,W)|0)+Math.imul(_,V)|0,i=i+Math.imul(_,W)|0,n=n+Math.imul(g,Y)|0,o=(o=o+Math.imul(g,X)|0)+Math.imul(b,Y)|0,i=i+Math.imul(b,X)|0,n=n+Math.imul(p,Z)|0,o=(o=o+Math.imul(p,ee)|0)+Math.imul(y,Z)|0,i=i+Math.imul(y,ee)|0;var _e=(u+(n=n+Math.imul(d,re)|0)|0)+((8191&(o=(o=o+Math.imul(d,ne)|0)+Math.imul(f,re)|0))<<13)|0;u=((i=i+Math.imul(f,ne)|0)+(o>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(C,F),o=(o=Math.imul(C,q))+Math.imul(R,F)|0,i=Math.imul(R,q),n=n+Math.imul(S,H)|0,o=(o=o+Math.imul(S,G)|0)+Math.imul(A,H)|0,i=i+Math.imul(A,G)|0,n=n+Math.imul(T,V)|0,o=(o=o+Math.imul(T,W)|0)+Math.imul(k,V)|0,i=i+Math.imul(k,W)|0,n=n+Math.imul(w,Y)|0,o=(o=o+Math.imul(w,X)|0)+Math.imul(_,Y)|0,i=i+Math.imul(_,X)|0,n=n+Math.imul(g,Z)|0,o=(o=o+Math.imul(g,ee)|0)+Math.imul(b,Z)|0,i=i+Math.imul(b,ee)|0,n=n+Math.imul(p,re)|0,o=(o=o+Math.imul(p,ne)|0)+Math.imul(y,re)|0,i=i+Math.imul(y,ne)|0;var Ie=(u+(n=n+Math.imul(d,ie)|0)|0)+((8191&(o=(o=o+Math.imul(d,ae)|0)+Math.imul(f,ie)|0))<<13)|0;u=((i=i+Math.imul(f,ae)|0)+(o>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,n=Math.imul(N,F),o=(o=Math.imul(N,q))+Math.imul(P,F)|0,i=Math.imul(P,q),n=n+Math.imul(C,H)|0,o=(o=o+Math.imul(C,G)|0)+Math.imul(R,H)|0,i=i+Math.imul(R,G)|0,n=n+Math.imul(S,V)|0,o=(o=o+Math.imul(S,W)|0)+Math.imul(A,V)|0,i=i+Math.imul(A,W)|0,n=n+Math.imul(T,Y)|0,o=(o=o+Math.imul(T,X)|0)+Math.imul(k,Y)|0,i=i+Math.imul(k,X)|0,n=n+Math.imul(w,Z)|0,o=(o=o+Math.imul(w,ee)|0)+Math.imul(_,Z)|0,i=i+Math.imul(_,ee)|0,n=n+Math.imul(g,re)|0,o=(o=o+Math.imul(g,ne)|0)+Math.imul(b,re)|0,i=i+Math.imul(b,ne)|0,n=n+Math.imul(p,ie)|0,o=(o=o+Math.imul(p,ae)|0)+Math.imul(y,ie)|0,i=i+Math.imul(y,ae)|0;var Te=(u+(n=n+Math.imul(d,ce)|0)|0)+((8191&(o=(o=o+Math.imul(d,ue)|0)+Math.imul(f,ce)|0))<<13)|0;u=((i=i+Math.imul(f,ue)|0)+(o>>>13)|0)+(Te>>>26)|0,Te&=67108863,n=Math.imul(B,F),o=(o=Math.imul(B,q))+Math.imul(D,F)|0,i=Math.imul(D,q),n=n+Math.imul(N,H)|0,o=(o=o+Math.imul(N,G)|0)+Math.imul(P,H)|0,i=i+Math.imul(P,G)|0,n=n+Math.imul(C,V)|0,o=(o=o+Math.imul(C,W)|0)+Math.imul(R,V)|0,i=i+Math.imul(R,W)|0,n=n+Math.imul(S,Y)|0,o=(o=o+Math.imul(S,X)|0)+Math.imul(A,Y)|0,i=i+Math.imul(A,X)|0,n=n+Math.imul(T,Z)|0,o=(o=o+Math.imul(T,ee)|0)+Math.imul(k,Z)|0,i=i+Math.imul(k,ee)|0,n=n+Math.imul(w,re)|0,o=(o=o+Math.imul(w,ne)|0)+Math.imul(_,re)|0,i=i+Math.imul(_,ne)|0,n=n+Math.imul(g,ie)|0,o=(o=o+Math.imul(g,ae)|0)+Math.imul(b,ie)|0,i=i+Math.imul(b,ae)|0,n=n+Math.imul(p,ce)|0,o=(o=o+Math.imul(p,ue)|0)+Math.imul(y,ce)|0,i=i+Math.imul(y,ue)|0;var ke=(u+(n=n+Math.imul(d,de)|0)|0)+((8191&(o=(o=o+Math.imul(d,fe)|0)+Math.imul(f,de)|0))<<13)|0;u=((i=i+Math.imul(f,fe)|0)+(o>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(L,F),o=(o=Math.imul(L,q))+Math.imul(U,F)|0,i=Math.imul(U,q),n=n+Math.imul(B,H)|0,o=(o=o+Math.imul(B,G)|0)+Math.imul(D,H)|0,i=i+Math.imul(D,G)|0,n=n+Math.imul(N,V)|0,o=(o=o+Math.imul(N,W)|0)+Math.imul(P,V)|0,i=i+Math.imul(P,W)|0,n=n+Math.imul(C,Y)|0,o=(o=o+Math.imul(C,X)|0)+Math.imul(R,Y)|0,i=i+Math.imul(R,X)|0,n=n+Math.imul(S,Z)|0,o=(o=o+Math.imul(S,ee)|0)+Math.imul(A,Z)|0,i=i+Math.imul(A,ee)|0,n=n+Math.imul(T,re)|0,o=(o=o+Math.imul(T,ne)|0)+Math.imul(k,re)|0,i=i+Math.imul(k,ne)|0,n=n+Math.imul(w,ie)|0,o=(o=o+Math.imul(w,ae)|0)+Math.imul(_,ie)|0,i=i+Math.imul(_,ae)|0,n=n+Math.imul(g,ce)|0,o=(o=o+Math.imul(g,ue)|0)+Math.imul(b,ce)|0,i=i+Math.imul(b,ue)|0,n=n+Math.imul(p,de)|0,o=(o=o+Math.imul(p,fe)|0)+Math.imul(y,de)|0,i=i+Math.imul(y,fe)|0;var $e=(u+(n=n+Math.imul(d,pe)|0)|0)+((8191&(o=(o=o+Math.imul(d,ye)|0)+Math.imul(f,pe)|0))<<13)|0;u=((i=i+Math.imul(f,ye)|0)+(o>>>13)|0)+($e>>>26)|0,$e&=67108863,n=Math.imul(L,H),o=(o=Math.imul(L,G))+Math.imul(U,H)|0,i=Math.imul(U,G),n=n+Math.imul(B,V)|0,o=(o=o+Math.imul(B,W)|0)+Math.imul(D,V)|0,i=i+Math.imul(D,W)|0,n=n+Math.imul(N,Y)|0,o=(o=o+Math.imul(N,X)|0)+Math.imul(P,Y)|0,i=i+Math.imul(P,X)|0,n=n+Math.imul(C,Z)|0,o=(o=o+Math.imul(C,ee)|0)+Math.imul(R,Z)|0,i=i+Math.imul(R,ee)|0,n=n+Math.imul(S,re)|0,o=(o=o+Math.imul(S,ne)|0)+Math.imul(A,re)|0,i=i+Math.imul(A,ne)|0,n=n+Math.imul(T,ie)|0,o=(o=o+Math.imul(T,ae)|0)+Math.imul(k,ie)|0,i=i+Math.imul(k,ae)|0,n=n+Math.imul(w,ce)|0,o=(o=o+Math.imul(w,ue)|0)+Math.imul(_,ce)|0,i=i+Math.imul(_,ue)|0,n=n+Math.imul(g,de)|0,o=(o=o+Math.imul(g,fe)|0)+Math.imul(b,de)|0,i=i+Math.imul(b,fe)|0;var Se=(u+(n=n+Math.imul(p,pe)|0)|0)+((8191&(o=(o=o+Math.imul(p,ye)|0)+Math.imul(y,pe)|0))<<13)|0;u=((i=i+Math.imul(y,ye)|0)+(o>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(L,V),o=(o=Math.imul(L,W))+Math.imul(U,V)|0,i=Math.imul(U,W),n=n+Math.imul(B,Y)|0,o=(o=o+Math.imul(B,X)|0)+Math.imul(D,Y)|0,i=i+Math.imul(D,X)|0,n=n+Math.imul(N,Z)|0,o=(o=o+Math.imul(N,ee)|0)+Math.imul(P,Z)|0,i=i+Math.imul(P,ee)|0,n=n+Math.imul(C,re)|0,o=(o=o+Math.imul(C,ne)|0)+Math.imul(R,re)|0,i=i+Math.imul(R,ne)|0,n=n+Math.imul(S,ie)|0,o=(o=o+Math.imul(S,ae)|0)+Math.imul(A,ie)|0,i=i+Math.imul(A,ae)|0,n=n+Math.imul(T,ce)|0,o=(o=o+Math.imul(T,ue)|0)+Math.imul(k,ce)|0,i=i+Math.imul(k,ue)|0,n=n+Math.imul(w,de)|0,o=(o=o+Math.imul(w,fe)|0)+Math.imul(_,de)|0,i=i+Math.imul(_,fe)|0;var Ae=(u+(n=n+Math.imul(g,pe)|0)|0)+((8191&(o=(o=o+Math.imul(g,ye)|0)+Math.imul(b,pe)|0))<<13)|0;u=((i=i+Math.imul(b,ye)|0)+(o>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(L,Y),o=(o=Math.imul(L,X))+Math.imul(U,Y)|0,i=Math.imul(U,X),n=n+Math.imul(B,Z)|0,o=(o=o+Math.imul(B,ee)|0)+Math.imul(D,Z)|0,i=i+Math.imul(D,ee)|0,n=n+Math.imul(N,re)|0,o=(o=o+Math.imul(N,ne)|0)+Math.imul(P,re)|0,i=i+Math.imul(P,ne)|0,n=n+Math.imul(C,ie)|0,o=(o=o+Math.imul(C,ae)|0)+Math.imul(R,ie)|0,i=i+Math.imul(R,ae)|0,n=n+Math.imul(S,ce)|0,o=(o=o+Math.imul(S,ue)|0)+Math.imul(A,ce)|0,i=i+Math.imul(A,ue)|0,n=n+Math.imul(T,de)|0,o=(o=o+Math.imul(T,fe)|0)+Math.imul(k,de)|0,i=i+Math.imul(k,fe)|0;var Ee=(u+(n=n+Math.imul(w,pe)|0)|0)+((8191&(o=(o=o+Math.imul(w,ye)|0)+Math.imul(_,pe)|0))<<13)|0;u=((i=i+Math.imul(_,ye)|0)+(o>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(L,Z),o=(o=Math.imul(L,ee))+Math.imul(U,Z)|0,i=Math.imul(U,ee),n=n+Math.imul(B,re)|0,o=(o=o+Math.imul(B,ne)|0)+Math.imul(D,re)|0,i=i+Math.imul(D,ne)|0,n=n+Math.imul(N,ie)|0,o=(o=o+Math.imul(N,ae)|0)+Math.imul(P,ie)|0,i=i+Math.imul(P,ae)|0,n=n+Math.imul(C,ce)|0,o=(o=o+Math.imul(C,ue)|0)+Math.imul(R,ce)|0,i=i+Math.imul(R,ue)|0,n=n+Math.imul(S,de)|0,o=(o=o+Math.imul(S,fe)|0)+Math.imul(A,de)|0,i=i+Math.imul(A,fe)|0;var Ce=(u+(n=n+Math.imul(T,pe)|0)|0)+((8191&(o=(o=o+Math.imul(T,ye)|0)+Math.imul(k,pe)|0))<<13)|0;u=((i=i+Math.imul(k,ye)|0)+(o>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,n=Math.imul(L,re),o=(o=Math.imul(L,ne))+Math.imul(U,re)|0,i=Math.imul(U,ne),n=n+Math.imul(B,ie)|0,o=(o=o+Math.imul(B,ae)|0)+Math.imul(D,ie)|0,i=i+Math.imul(D,ae)|0,n=n+Math.imul(N,ce)|0,o=(o=o+Math.imul(N,ue)|0)+Math.imul(P,ce)|0,i=i+Math.imul(P,ue)|0,n=n+Math.imul(C,de)|0,o=(o=o+Math.imul(C,fe)|0)+Math.imul(R,de)|0,i=i+Math.imul(R,fe)|0;var Re=(u+(n=n+Math.imul(S,pe)|0)|0)+((8191&(o=(o=o+Math.imul(S,ye)|0)+Math.imul(A,pe)|0))<<13)|0;u=((i=i+Math.imul(A,ye)|0)+(o>>>13)|0)+(Re>>>26)|0,Re&=67108863,n=Math.imul(L,ie),o=(o=Math.imul(L,ae))+Math.imul(U,ie)|0,i=Math.imul(U,ae),n=n+Math.imul(B,ce)|0,o=(o=o+Math.imul(B,ue)|0)+Math.imul(D,ce)|0,i=i+Math.imul(D,ue)|0,n=n+Math.imul(N,de)|0,o=(o=o+Math.imul(N,fe)|0)+Math.imul(P,de)|0,i=i+Math.imul(P,fe)|0;var Oe=(u+(n=n+Math.imul(C,pe)|0)|0)+((8191&(o=(o=o+Math.imul(C,ye)|0)+Math.imul(R,pe)|0))<<13)|0;u=((i=i+Math.imul(R,ye)|0)+(o>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,n=Math.imul(L,ce),o=(o=Math.imul(L,ue))+Math.imul(U,ce)|0,i=Math.imul(U,ue),n=n+Math.imul(B,de)|0,o=(o=o+Math.imul(B,fe)|0)+Math.imul(D,de)|0,i=i+Math.imul(D,fe)|0;var Ne=(u+(n=n+Math.imul(N,pe)|0)|0)+((8191&(o=(o=o+Math.imul(N,ye)|0)+Math.imul(P,pe)|0))<<13)|0;u=((i=i+Math.imul(P,ye)|0)+(o>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,n=Math.imul(L,de),o=(o=Math.imul(L,fe))+Math.imul(U,de)|0,i=Math.imul(U,fe);var Pe=(u+(n=n+Math.imul(B,pe)|0)|0)+((8191&(o=(o=o+Math.imul(B,ye)|0)+Math.imul(D,pe)|0))<<13)|0;u=((i=i+Math.imul(D,ye)|0)+(o>>>13)|0)+(Pe>>>26)|0,Pe&=67108863;var Me=(u+(n=Math.imul(L,pe))|0)+((8191&(o=(o=Math.imul(L,ye))+Math.imul(U,pe)|0))<<13)|0;return u=((i=Math.imul(U,ye))+(o>>>13)|0)+(Me>>>26)|0,Me&=67108863,c[0]=me,c[1]=ge,c[2]=be,c[3]=ve,c[4]=we,c[5]=_e,c[6]=Ie,c[7]=Te,c[8]=ke,c[9]=$e,c[10]=Se,c[11]=Ae,c[12]=Ee,c[13]=Ce,c[14]=Re,c[15]=Oe,c[16]=Ne,c[17]=Pe,c[18]=Me,0!==u&&(c[19]=u,r.length++),r};function p(e,t,r){return(new y).mulp(e,t,r)}function y(e,t){this.x=e,this.y=t}Math.imul||(h=f),o.prototype.mulTo=function(e,t){var r,n=this.length+e.length;return r=10===this.length&&10===e.length?h(this,e,t):n<63?f(this,e,t):n<1024?function(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var n=0,o=0,i=0;i>>26)|0)>>>26,a&=67108863}r.words[i]=s,n=a,a=o}return 0!==n?r.words[i]=n:r.length--,r.strip()}(this,e,t):p(this,e,t),r},y.prototype.makeRBT=function(e){for(var t=new Array(e),r=o.prototype._countBits(e)-1,n=0;n>=1;return n},y.prototype.permute=function(e,t,r,n,o,i){for(var a=0;a>>=1)o++;return 1<>>=13,n[2*a+1]=8191&i,i>>>=13;for(a=2*t;a>=26,t+=o/67108864|0,t+=i>>>26,this.words[n]=67108863&i}return 0!==t&&(this.words[n]=t,this.length++),this},o.prototype.muln=function(e){return this.clone().imuln(e)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r>>o}return t}(e);if(0===t.length)return new o(1);for(var r=this,n=0;n=0);var t,n=e%26,o=(e-n)/26,i=67108863>>>26-n<<26-n;if(0!==n){var a=0;for(t=0;t>>26-n}a&&(this.words[t]=a,this.length++)}if(0!==o){for(t=this.length-1;t>=0;t--)this.words[t+o]=this.words[t];for(t=0;t=0),o=t?(t-t%26)/26:0;var i=e%26,a=Math.min((e-i)/26,this.length),s=67108863^67108863>>>i<a)for(this.length-=a,u=0;u=0&&(0!==l||u>=o);u--){var d=0|this.words[u];this.words[u]=l<<26-i|d>>>i,l=d&s}return c&&0!==l&&(c.words[c.length++]=l),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(e,t,n){return r(0===this.negative),this.iushrn(e,t,n)},o.prototype.shln=function(e){return this.clone().ishln(e)},o.prototype.ushln=function(e){return this.clone().iushln(e)},o.prototype.shrn=function(e){return this.clone().ishrn(e)},o.prototype.ushrn=function(e){return this.clone().iushrn(e)},o.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26,o=1<=0);var t=e%26,n=(e-t)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==t&&n++,this.length=Math.min(n,this.length),0!==t){var o=67108863^67108863>>>t<=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},o.prototype.isubn=function(e){if(r("number"==typeof e),r(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t>26)-(c/67108864|0),this.words[o+n]=67108863&i}for(;o>26,this.words[o+n]=67108863&i;if(0===s)return this.strip();for(r(-1===s),s=0,o=0;o>26,this.words[o]=67108863&i;return this.negative=1,this.strip()},o.prototype._wordDiv=function(e,t){var r=(this.length,e.length),n=this.clone(),i=e,a=0|i.words[i.length-1];0!==(r=26-this._countBits(a))&&(i=i.ushln(r),n.iushln(r),a=0|i.words[i.length-1]);var s,c=n.length-i.length;if("mod"!==t){(s=new o(null)).length=c+1,s.words=new Array(s.length);for(var u=0;u=0;d--){var f=67108864*(0|n.words[i.length+d])+(0|n.words[i.length+d-1]);for(f=Math.min(f/a|0,67108863),n._ishlnsubmul(i,f,d);0!==n.negative;)f--,n.negative=0,n._ishlnsubmul(i,1,d),n.isZero()||(n.negative^=1);s&&(s.words[d]=f)}return s&&s.strip(),n.strip(),"div"!==t&&0!==r&&n.iushrn(r),{div:s||null,mod:n}},o.prototype.divmod=function(e,t,n){return r(!e.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===e.negative?(s=this.neg().divmod(e,t),"mod"!==t&&(i=s.div.neg()),"div"!==t&&(a=s.mod.neg(),n&&0!==a.negative&&a.iadd(e)),{div:i,mod:a}):0===this.negative&&0!==e.negative?(s=this.divmod(e.neg(),t),"mod"!==t&&(i=s.div.neg()),{div:i,mod:s.mod}):this.negative&e.negative?(s=this.neg().divmod(e.neg(),t),"div"!==t&&(a=s.mod.neg(),n&&0!==a.negative&&a.isub(e)),{div:s.div,mod:a}):e.length>this.length||this.cmp(e)<0?{div:new o(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new o(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new o(this.modn(e.words[0]))}:this._wordDiv(e,t);var i,a,s},o.prototype.div=function(e){return this.divmod(e,"div",!1).div},o.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},o.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},o.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,n=e.ushrn(1),o=e.andln(1),i=r.cmp(n);return i<0||1===o&&0===i?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},o.prototype.modn=function(e){r(e<=67108863);for(var t=(1<<26)%e,n=0,o=this.length-1;o>=0;o--)n=(t*n+(0|this.words[o]))%e;return n},o.prototype.idivn=function(e){r(e<=67108863);for(var t=0,n=this.length-1;n>=0;n--){var o=(0|this.words[n])+67108864*t;this.words[n]=o/e|0,t=o%e}return this.strip()},o.prototype.divn=function(e){return this.clone().idivn(e)},o.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i=new o(1),a=new o(0),s=new o(0),c=new o(1),u=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++u;for(var l=n.clone(),d=t.clone();!t.isZero();){for(var f=0,h=1;!(t.words[0]&h)&&f<26;++f,h<<=1);if(f>0)for(t.iushrn(f);f-- >0;)(i.isOdd()||a.isOdd())&&(i.iadd(l),a.isub(d)),i.iushrn(1),a.iushrn(1);for(var p=0,y=1;!(n.words[0]&y)&&p<26;++p,y<<=1);if(p>0)for(n.iushrn(p);p-- >0;)(s.isOdd()||c.isOdd())&&(s.iadd(l),c.isub(d)),s.iushrn(1),c.iushrn(1);t.cmp(n)>=0?(t.isub(n),i.isub(s),a.isub(c)):(n.isub(t),s.isub(i),c.isub(a))}return{a:s,b:c,gcd:n.iushln(u)}},o.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i,a=new o(1),s=new o(0),c=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var u=0,l=1;!(t.words[0]&l)&&u<26;++u,l<<=1);if(u>0)for(t.iushrn(u);u-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);for(var d=0,f=1;!(n.words[0]&f)&&d<26;++d,f<<=1);if(d>0)for(n.iushrn(d);d-- >0;)s.isOdd()&&s.iadd(c),s.iushrn(1);t.cmp(n)>=0?(t.isub(n),a.isub(s)):(n.isub(t),s.isub(a))}return(i=0===t.cmpn(1)?a:s).cmpn(0)<0&&i.iadd(e),i},o.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var n=0;t.isEven()&&r.isEven();n++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var o=t.cmp(r);if(o<0){var i=t;t=r,r=i}else if(0===o||0===r.cmpn(1))break;t.isub(r)}return r.iushln(n)},o.prototype.invm=function(e){return this.egcd(e).a.umod(e)},o.prototype.isEven=function(){return!(1&this.words[0])},o.prototype.isOdd=function(){return!(1&~this.words[0])},o.prototype.andln=function(e){return this.words[0]&e},o.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,n=(e-t)/26,o=1<>>26,s&=67108863,this.words[a]=s}return 0!==i&&(this.words[a]=i,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this.strip(),this.length>1)t=1;else{n&&(e=-e),r(e<=67108863,"Number is too big");var o=0|this.words[0];t=o===e?0:oe.length)return 1;if(this.length=0;r--){var n=0|this.words[r],o=0|e.words[r];if(n!==o){no&&(t=1);break}}return t},o.prototype.gtn=function(e){return 1===this.cmpn(e)},o.prototype.gt=function(e){return 1===this.cmp(e)},o.prototype.gten=function(e){return this.cmpn(e)>=0},o.prototype.gte=function(e){return this.cmp(e)>=0},o.prototype.ltn=function(e){return-1===this.cmpn(e)},o.prototype.lt=function(e){return-1===this.cmp(e)},o.prototype.lten=function(e){return this.cmpn(e)<=0},o.prototype.lte=function(e){return this.cmp(e)<=0},o.prototype.eqn=function(e){return 0===this.cmpn(e)},o.prototype.eq=function(e){return 0===this.cmp(e)},o.red=function(e){return new I(e)},o.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},o.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(e){return this.red=e,this},o.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},o.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},o.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},o.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},o.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},o.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},o.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},o.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},o.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var m={k256:null,p224:null,p192:null,p25519:null};function g(e,t){this.name=e,this.p=new o(t,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function b(){g.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function v(){g.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function w(){g.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function _(){g.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function I(e){if("string"==typeof e){var t=o._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function T(e){I.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}g.prototype._tmp=function(){var e=new o(null);return e.words=new Array(Math.ceil(this.n/13)),e},g.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var n=t0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},g.prototype.split=function(e,t){e.iushrn(this.n,0,t)},g.prototype.imulK=function(e){return e.imul(this.k)},n(b,g),b.prototype.split=function(e,t){for(var r=4194303,n=Math.min(e.length,9),o=0;o>>22,i=a}i>>>=22,e.words[o-10]=i,0===i&&e.length>10?e.length-=10:e.length-=9},b.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r>>=26,e.words[r]=o,t=n}return 0!==t&&(e.words[e.length++]=t),e},o._prime=function(e){if(m[e])return m[e];var t;if("k256"===e)t=new b;else if("p224"===e)t=new v;else if("p192"===e)t=new w;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new _}return m[e]=t,t},I.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},I.prototype._verify2=function(e,t){r(!(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},I.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},I.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},I.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},I.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},I.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},I.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},I.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},I.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},I.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},I.prototype.isqr=function(e){return this.imul(e,e.clone())},I.prototype.sqr=function(e){return this.mul(e,e)},I.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var n=this.m.add(new o(1)).iushrn(2);return this.pow(e,n)}for(var i=this.m.subn(1),a=0;!i.isZero()&&0===i.andln(1);)a++,i.iushrn(1);r(!i.isZero());var s=new o(1).toRed(this),c=s.redNeg(),u=this.m.subn(1).iushrn(1),l=this.m.bitLength();for(l=new o(2*l*l).toRed(this);0!==this.pow(l,u).cmp(c);)l.redIAdd(c);for(var d=this.pow(l,i),f=this.pow(e,i.addn(1).iushrn(1)),h=this.pow(e,i),p=a;0!==h.cmp(s);){for(var y=h,m=0;0!==y.cmp(s);m++)y=y.redSqr();r(m=0;n--){for(var u=t.words[n],l=c-1;l>=0;l--){var d=u>>l&1;i!==r[0]&&(i=this.sqr(i)),0!==d||0!==a?(a<<=1,a|=d,(4===++s||0===n&&0===l)&&(i=this.mul(i,r[a]),s=0,a=0)):s=0}c=26}return i},I.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},I.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},o.mont=function(e){return new T(e)},n(T,I),T.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},T.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},T.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=r.isub(n).iushrn(this.shift),i=o;return o.cmp(this.m)>=0?i=o.isub(this.m):o.cmpn(0)<0&&(i=o.iadd(this.m)),i._forceRed(this)},T.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new o(0)._forceRed(this);var r=e.mul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},T.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e,commonjsGlobal)}(bn$8)),bn$8.exports}bn$8.exports;var utils$O={},hasRequiredUtils$1;function requireUtils$1(){return hasRequiredUtils$1||(hasRequiredUtils$1=1,function(e){var t=e,r=requireBn$3(),n=minimalisticAssert$1,o=utils$O;t.assert=n,t.toArray=o.toArray,t.zero2=o.zero2,t.toHex=o.toHex,t.encode=o.encode,t.getNAF=function(e,t,r){var n,o=new Array(Math.max(e.bitLength(),r)+1);for(n=0;n(i>>1)-1?(i>>1)-c:c,a.isubn(s)):s=0,o[n]=s,a.iushrn(1)}return o},t.getJSF=function(e,t){var r=[[],[]];e=e.clone(),t=t.clone();for(var n,o=0,i=0;e.cmpn(-o)>0||t.cmpn(-i)>0;){var a,s,c=e.andln(3)+o&3,u=t.andln(3)+i&3;3===c&&(c=-1),3===u&&(u=-1),a=1&c?3!==(n=e.andln(7)+o&7)&&5!==n||2!==u?c:-c:0,r[0].push(a),s=1&u?3!==(n=t.andln(7)+i&7)&&5!==n||2!==c?u:-u:0,r[1].push(s),2*o===a+1&&(o=1-o),2*i===s+1&&(i=1-i),e.iushrn(1),t.iushrn(1)}return r},t.cachedProperty=function(e,t,r){var n="_"+t;e.prototype[t]=function(){return void 0!==this[n]?this[n]:this[n]=r.call(this)}},t.parseBytes=function(e){return"string"==typeof e?t.toArray(e,"hex"):e},t.intFromLE=function(e){return new r(e,"hex","le")}}(utils$P)),utils$P}!function(e){var t=e;function r(e){return 1===e.length?"0"+e:e}function n(e){for(var t="",n=0;n>8,a=255&o;i?r.push(i,a):r.push(a)}return r},t.zero2=r,t.toHex=n,t.encode=function(e,t){return"hex"===t?n(e):e}}(utils$O);var curve$3={},base$6,hasRequiredBase$1,short$3,hasRequiredShort,mont$3,hasRequiredMont,edwards$3,hasRequiredEdwards,hasRequiredCurve;function requireBase$1(){if(hasRequiredBase$1)return base$6;hasRequiredBase$1=1;var e=requireBn$3(),t=requireUtils$1(),r=t.getNAF,n=t.getJSF,o=t.assert;function i(t,r){this.type=t,this.p=new e(r.p,16),this.red=r.prime?e.red(r.prime):e.mont(this.p),this.zero=new e(0).toRed(this.red),this.one=new e(1).toRed(this.red),this.two=new e(2).toRed(this.red),this.n=r.n&&new e(r.n,16),this.g=r.g&&this.pointFromJSON(r.g,r.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var n=this.n&&this.p.div(this.n);!n||n.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}function a(e,t){this.curve=e,this.type=t,this.precomputed=null}return base$6=i,i.prototype.point=function(){throw new Error("Not implemented")},i.prototype.validate=function(){throw new Error("Not implemented")},i.prototype._fixedNafMul=function(e,t){o(e.precomputed);var n=e._getDoubles(),i=r(t,1,this._bitLength),a=(1<=s;l--)c=(c<<1)+i[l];u.push(c)}for(var d=this.jpoint(null,null,null),f=this.jpoint(null,null,null),h=a;h>0;h--){for(s=0;s=0;u--){for(var l=0;u>=0&&0===s[u];u--)l++;if(u>=0&&l++,c=c.dblp(l),u<0)break;var d=s[u];o(0!==d),c="affine"===e.type?d>0?c.mixedAdd(a[d-1>>1]):c.mixedAdd(a[-d-1>>1].neg()):d>0?c.add(a[d-1>>1]):c.add(a[-d-1>>1].neg())}return"affine"===e.type?c.toP():c},i.prototype._wnafMulAdd=function(e,t,o,i,a){var s,c,u,l=this._wnafT1,d=this._wnafT2,f=this._wnafT3,h=0;for(s=0;s=1;s-=2){var y=s-1,m=s;if(1===l[y]&&1===l[m]){var g=[t[y],null,null,t[m]];0===t[y].y.cmp(t[m].y)?(g[1]=t[y].add(t[m]),g[2]=t[y].toJ().mixedAdd(t[m].neg())):0===t[y].y.cmp(t[m].y.redNeg())?(g[1]=t[y].toJ().mixedAdd(t[m]),g[2]=t[y].add(t[m].neg())):(g[1]=t[y].toJ().mixedAdd(t[m]),g[2]=t[y].toJ().mixedAdd(t[m].neg()));var b=[-3,-1,-5,-7,0,7,5,1,3],v=n(o[y],o[m]);for(h=Math.max(v[0].length,h),f[y]=new Array(h),f[m]=new Array(h),c=0;c=0;s--){for(var k=0;s>=0;){var $=!0;for(c=0;c=0&&k++,I=I.dblp(k),s<0)break;for(c=0;c0?u=d[c][S-1>>1]:S<0&&(u=d[c][-S-1>>1].neg()),I="affine"===u.type?I.mixedAdd(u):I.add(u))}}for(s=0;s=Math.ceil((e.bitLength()+1)/t.step)},a.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var r=[this],n=this,o=0;o=0&&(a=r,s=n),o.negative&&(o=o.neg(),i=i.neg()),a.negative&&(a=a.neg(),s=s.neg()),[{a:o,b:i},{a:a,b:s}]},i.prototype._endoSplit=function(e){var t=this.endo.basis,r=t[0],n=t[1],o=n.b.mul(e).divRound(this.n),i=r.b.neg().mul(e).divRound(this.n),a=o.mul(r.a),s=i.mul(n.a),c=o.mul(r.b),u=i.mul(n.b);return{k1:e.sub(a).sub(s),k2:c.add(u).neg()}},i.prototype.pointFromX=function(e,r){(e=new t(e,16)).red||(e=e.toRed(this.red));var n=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),o=n.redSqrt();if(0!==o.redSqr().redSub(n).cmp(this.zero))throw new Error("invalid point");var i=o.fromRed().isOdd();return(r&&!i||!r&&i)&&(o=o.redNeg()),this.point(e,o)},i.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,r=e.y,n=this.a.redMul(t),o=t.redSqr().redMul(t).redIAdd(n).redIAdd(this.b);return 0===r.redSqr().redISub(o).cmpn(0)},i.prototype._endoWnafMulAdd=function(e,t,r){for(var n=this._endoWnafT1,o=this._endoWnafT2,i=0;i":""},a.prototype.isInfinity=function(){return this.inf},a.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var r=t.redSqr().redISub(this.x).redISub(e.x),n=t.redMul(this.x.redSub(r)).redISub(this.y);return this.curve.point(r,n)},a.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,r=this.x.redSqr(),n=e.redInvm(),o=r.redAdd(r).redIAdd(r).redIAdd(t).redMul(n),i=o.redSqr().redISub(this.x.redAdd(this.x)),a=o.redMul(this.x.redSub(i)).redISub(this.y);return this.curve.point(i,a)},a.prototype.getX=function(){return this.x.fromRed()},a.prototype.getY=function(){return this.y.fromRed()},a.prototype.mul=function(e){return e=new t(e,16),this.isInfinity()?this:this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},a.prototype.mulAdd=function(e,t,r){var n=[this,t],o=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,o):this.curve._wnafMulAdd(1,n,o,2)},a.prototype.jmulAdd=function(e,t,r){var n=[this,t],o=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,o,!0):this.curve._wnafMulAdd(1,n,o,2,!0)},a.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},a.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var r=this.precomputed,n=function(e){return e.neg()};t.precomputed={naf:r.naf&&{wnd:r.naf.wnd,points:r.naf.points.map(n)},doubles:r.doubles&&{step:r.doubles.step,points:r.doubles.points.map(n)}}}return t},a.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},r(s,n.BasePoint),i.prototype.jpoint=function(e,t,r){return new s(this,e,t,r)},s.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),r=this.x.redMul(t),n=this.y.redMul(t).redMul(e);return this.curve.point(r,n)},s.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},s.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),r=this.z.redSqr(),n=this.x.redMul(t),o=e.x.redMul(r),i=this.y.redMul(t.redMul(e.z)),a=e.y.redMul(r.redMul(this.z)),s=n.redSub(o),c=i.redSub(a);if(0===s.cmpn(0))return 0!==c.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var u=s.redSqr(),l=u.redMul(s),d=n.redMul(u),f=c.redSqr().redIAdd(l).redISub(d).redISub(d),h=c.redMul(d.redISub(f)).redISub(i.redMul(l)),p=this.z.redMul(e.z).redMul(s);return this.curve.jpoint(f,h,p)},s.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),r=this.x,n=e.x.redMul(t),o=this.y,i=e.y.redMul(t).redMul(this.z),a=r.redSub(n),s=o.redSub(i);if(0===a.cmpn(0))return 0!==s.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var c=a.redSqr(),u=c.redMul(a),l=r.redMul(c),d=s.redSqr().redIAdd(u).redISub(l).redISub(l),f=s.redMul(l.redISub(d)).redISub(o.redMul(u)),h=this.z.redMul(a);return this.curve.jpoint(d,f,h)},s.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();var t;if(this.curve.zeroA||this.curve.threeA){var r=this;for(t=0;t=0)return!1;if(r.redIAdd(o),0===this.x.cmp(r))return!0}},s.prototype.inspect=function(){return this.isInfinity()?"":""},s.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},short$3}function requireMont(){if(hasRequiredMont)return mont$3;hasRequiredMont=1;var e=requireBn$3(),t=inherits_browserExports,r=requireBase$1(),n=requireUtils$1();function o(t){r.call(this,"mont",t),this.a=new e(t.a,16).toRed(this.red),this.b=new e(t.b,16).toRed(this.red),this.i4=new e(4).toRed(this.red).redInvm(),this.two=new e(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}function i(t,n,o){r.BasePoint.call(this,t,"projective"),null===n&&null===o?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new e(n,16),this.z=new e(o,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}return t(o,r),mont$3=o,o.prototype.validate=function(e){var t=e.normalize().x,r=t.redSqr(),n=r.redMul(t).redAdd(r.redMul(this.a)).redAdd(t);return 0===n.redSqrt().redSqr().cmp(n)},t(i,r.BasePoint),o.prototype.decodePoint=function(e,t){return this.point(n.toArray(e,t),1)},o.prototype.point=function(e,t){return new i(this,e,t)},o.prototype.pointFromJSON=function(e){return i.fromJSON(this,e)},i.prototype.precompute=function(){},i.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},i.fromJSON=function(e,t){return new i(e,t[0],t[1]||e.one)},i.prototype.inspect=function(){return this.isInfinity()?"":""},i.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},i.prototype.dbl=function(){var e=this.x.redAdd(this.z).redSqr(),t=this.x.redSub(this.z).redSqr(),r=e.redSub(t),n=e.redMul(t),o=r.redMul(t.redAdd(this.curve.a24.redMul(r)));return this.curve.point(n,o)},i.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},i.prototype.diffAdd=function(e,t){var r=this.x.redAdd(this.z),n=this.x.redSub(this.z),o=e.x.redAdd(e.z),i=e.x.redSub(e.z).redMul(r),a=o.redMul(n),s=t.z.redMul(i.redAdd(a).redSqr()),c=t.x.redMul(i.redISub(a).redSqr());return this.curve.point(s,c)},i.prototype.mul=function(e){for(var t=e.clone(),r=this,n=this.curve.point(null,null),o=[];0!==t.cmpn(0);t.iushrn(1))o.push(t.andln(1));for(var i=o.length-1;i>=0;i--)0===o[i]?(r=r.diffAdd(n,this),n=n.dbl()):(n=r.diffAdd(n,this),r=r.dbl());return n},i.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},i.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},i.prototype.eq=function(e){return 0===this.getX().cmp(e.getX())},i.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},i.prototype.getX=function(){return this.normalize(),this.x.fromRed()},mont$3}function requireEdwards(){if(hasRequiredEdwards)return edwards$3;hasRequiredEdwards=1;var e=requireUtils$1(),t=requireBn$3(),r=inherits_browserExports,n=requireBase$1(),o=e.assert;function i(e){this.twisted=1!=(0|e.a),this.mOneA=this.twisted&&-1==(0|e.a),this.extended=this.mOneA,n.call(this,"edwards",e),this.a=new t(e.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new t(e.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new t(e.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),o(!this.twisted||0===this.c.fromRed().cmpn(1)),this.oneC=1==(0|e.c)}function a(e,r,o,i,a){n.BasePoint.call(this,e,"projective"),null===r&&null===o&&null===i?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new t(r,16),this.y=new t(o,16),this.z=i?new t(i,16):this.curve.one,this.t=a&&new t(a,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}return r(i,n),edwards$3=i,i.prototype._mulA=function(e){return this.mOneA?e.redNeg():this.a.redMul(e)},i.prototype._mulC=function(e){return this.oneC?e:this.c.redMul(e)},i.prototype.jpoint=function(e,t,r,n){return this.point(e,t,r,n)},i.prototype.pointFromX=function(e,r){(e=new t(e,16)).red||(e=e.toRed(this.red));var n=e.redSqr(),o=this.c2.redSub(this.a.redMul(n)),i=this.one.redSub(this.c2.redMul(this.d).redMul(n)),a=o.redMul(i.redInvm()),s=a.redSqrt();if(0!==s.redSqr().redSub(a).cmp(this.zero))throw new Error("invalid point");var c=s.fromRed().isOdd();return(r&&!c||!r&&c)&&(s=s.redNeg()),this.point(e,s)},i.prototype.pointFromY=function(e,r){(e=new t(e,16)).red||(e=e.toRed(this.red));var n=e.redSqr(),o=n.redSub(this.c2),i=n.redMul(this.d).redMul(this.c2).redSub(this.a),a=o.redMul(i.redInvm());if(0===a.cmp(this.zero)){if(r)throw new Error("invalid point");return this.point(this.zero,e)}var s=a.redSqrt();if(0!==s.redSqr().redSub(a).cmp(this.zero))throw new Error("invalid point");return s.fromRed().isOdd()!==r&&(s=s.redNeg()),this.point(s,e)},i.prototype.validate=function(e){if(e.isInfinity())return!0;e.normalize();var t=e.x.redSqr(),r=e.y.redSqr(),n=t.redMul(this.a).redAdd(r),o=this.c2.redMul(this.one.redAdd(this.d.redMul(t).redMul(r)));return 0===n.cmp(o)},r(a,n.BasePoint),i.prototype.pointFromJSON=function(e){return a.fromJSON(this,e)},i.prototype.point=function(e,t,r,n){return new a(this,e,t,r,n)},a.fromJSON=function(e,t){return new a(e,t[0],t[1],t[2])},a.prototype.inspect=function(){return this.isInfinity()?"":""},a.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},a.prototype._extDbl=function(){var e=this.x.redSqr(),t=this.y.redSqr(),r=this.z.redSqr();r=r.redIAdd(r);var n=this.curve._mulA(e),o=this.x.redAdd(this.y).redSqr().redISub(e).redISub(t),i=n.redAdd(t),a=i.redSub(r),s=n.redSub(t),c=o.redMul(a),u=i.redMul(s),l=o.redMul(s),d=a.redMul(i);return this.curve.point(c,u,d,l)},a.prototype._projDbl=function(){var e,t,r,n,o,i,a=this.x.redAdd(this.y).redSqr(),s=this.x.redSqr(),c=this.y.redSqr();if(this.curve.twisted){var u=(n=this.curve._mulA(s)).redAdd(c);this.zOne?(e=a.redSub(s).redSub(c).redMul(u.redSub(this.curve.two)),t=u.redMul(n.redSub(c)),r=u.redSqr().redSub(u).redSub(u)):(o=this.z.redSqr(),i=u.redSub(o).redISub(o),e=a.redSub(s).redISub(c).redMul(i),t=u.redMul(n.redSub(c)),r=u.redMul(i))}else n=s.redAdd(c),o=this.curve._mulC(this.z).redSqr(),i=n.redSub(o).redSub(o),e=this.curve._mulC(a.redISub(n)).redMul(i),t=this.curve._mulC(n).redMul(s.redISub(c)),r=n.redMul(i);return this.curve.point(e,t,r)},a.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},a.prototype._extAdd=function(e){var t=this.y.redSub(this.x).redMul(e.y.redSub(e.x)),r=this.y.redAdd(this.x).redMul(e.y.redAdd(e.x)),n=this.t.redMul(this.curve.dd).redMul(e.t),o=this.z.redMul(e.z.redAdd(e.z)),i=r.redSub(t),a=o.redSub(n),s=o.redAdd(n),c=r.redAdd(t),u=i.redMul(a),l=s.redMul(c),d=i.redMul(c),f=a.redMul(s);return this.curve.point(u,l,f,d)},a.prototype._projAdd=function(e){var t,r,n=this.z.redMul(e.z),o=n.redSqr(),i=this.x.redMul(e.x),a=this.y.redMul(e.y),s=this.curve.d.redMul(i).redMul(a),c=o.redSub(s),u=o.redAdd(s),l=this.x.redAdd(this.y).redMul(e.x.redAdd(e.y)).redISub(i).redISub(a),d=n.redMul(c).redMul(l);return this.curve.twisted?(t=n.redMul(u).redMul(a.redSub(this.curve._mulA(i))),r=c.redMul(u)):(t=n.redMul(u).redMul(a.redSub(i)),r=this.curve._mulC(c).redMul(u)),this.curve.point(d,t,r)},a.prototype.add=function(e){return this.isInfinity()?e:e.isInfinity()?this:this.curve.extended?this._extAdd(e):this._projAdd(e)},a.prototype.mul=function(e){return this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve._wnafMul(this,e)},a.prototype.mulAdd=function(e,t,r){return this.curve._wnafMulAdd(1,[this,t],[e,r],2,!1)},a.prototype.jmulAdd=function(e,t,r){return this.curve._wnafMulAdd(1,[this,t],[e,r],2,!0)},a.prototype.normalize=function(){if(this.zOne)return this;var e=this.z.redInvm();return this.x=this.x.redMul(e),this.y=this.y.redMul(e),this.t&&(this.t=this.t.redMul(e)),this.z=this.curve.one,this.zOne=!0,this},a.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},a.prototype.getX=function(){return this.normalize(),this.x.fromRed()},a.prototype.getY=function(){return this.normalize(),this.y.fromRed()},a.prototype.eq=function(e){return this===e||0===this.getX().cmp(e.getX())&&0===this.getY().cmp(e.getY())},a.prototype.eqXToP=function(e){var t=e.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(t))return!0;for(var r=e.clone(),n=this.curve.redN.redMul(this.z);;){if(r.iadd(this.curve.n),r.cmp(this.curve.p)>=0)return!1;if(t.redIAdd(n),0===this.x.cmp(t))return!0}},a.prototype.toP=a.prototype.normalize,a.prototype.mixedAdd=a.prototype.add,edwards$3}function requireCurve(){return hasRequiredCurve||(hasRequiredCurve=1,function(e){var t=e;t.base=requireBase$1(),t.short=requireShort(),t.mont=requireMont(),t.edwards=requireEdwards()}(curve$3)),curve$3}var curves$8={},hash$8={},utils$N={},assert$w=minimalisticAssert$1,inherits$a=inherits_browserExports;function isSurrogatePair(e,t){return 55296==(64512&e.charCodeAt(t))&&(!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1)))}function toArray$1(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var r=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),o=0;o>6|192,r[n++]=63&i|128):isSurrogatePair(e,o)?(i=65536+((1023&i)<<10)+(1023&e.charCodeAt(++o)),r[n++]=i>>18|240,r[n++]=i>>12&63|128,r[n++]=i>>6&63|128,r[n++]=63&i|128):(r[n++]=i>>12|224,r[n++]=i>>6&63|128,r[n++]=63&i|128)}else for(o=0;o>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function toHex32(e,t){for(var r="",n=0;n>>0}return i}function split32(e,t){for(var r=new Array(4*e.length),n=0,o=0;n>>24,r[o+1]=i>>>16&255,r[o+2]=i>>>8&255,r[o+3]=255&i):(r[o+3]=i>>>24,r[o+2]=i>>>16&255,r[o+1]=i>>>8&255,r[o]=255&i)}return r}function rotr32$1(e,t){return e>>>t|e<<32-t}function rotl32$2(e,t){return e<>>32-t}function sum32$3(e,t){return e+t>>>0}function sum32_3$1(e,t,r){return e+t+r>>>0}function sum32_4$2(e,t,r,n){return e+t+r+n>>>0}function sum32_5$2(e,t,r,n,o){return e+t+r+n+o>>>0}function sum64$1(e,t,r,n){var o=e[t],i=n+e[t+1]>>>0,a=(i>>0,e[t+1]=i}function sum64_hi$1(e,t,r,n){return(t+n>>>0>>0}function sum64_lo$1(e,t,r,n){return t+n>>>0}function sum64_4_hi$1(e,t,r,n,o,i,a,s){var c=0,u=t;return c+=(u=u+n>>>0)>>0)>>0)>>0}function sum64_4_lo$1(e,t,r,n,o,i,a,s){return t+n+i+s>>>0}function sum64_5_hi$1(e,t,r,n,o,i,a,s,c,u){var l=0,d=t;return l+=(d=d+n>>>0)>>0)>>0)>>0)>>0}function sum64_5_lo$1(e,t,r,n,o,i,a,s,c,u){return t+n+i+s+u>>>0}function rotr64_hi$1(e,t,r){return(t<<32-r|e>>>r)>>>0}function rotr64_lo$1(e,t,r){return(e<<32-r|t>>>r)>>>0}function shr64_hi$1(e,t,r){return e>>>r}function shr64_lo$1(e,t,r){return(e<<32-r|t>>>r)>>>0}utils$N.inherits=inherits$a,utils$N.toArray=toArray$1,utils$N.toHex=toHex$1,utils$N.htonl=htonl,utils$N.toHex32=toHex32,utils$N.zero2=zero2,utils$N.zero8=zero8,utils$N.join32=join32,utils$N.split32=split32,utils$N.rotr32=rotr32$1,utils$N.rotl32=rotl32$2,utils$N.sum32=sum32$3,utils$N.sum32_3=sum32_3$1,utils$N.sum32_4=sum32_4$2,utils$N.sum32_5=sum32_5$2,utils$N.sum64=sum64$1,utils$N.sum64_hi=sum64_hi$1,utils$N.sum64_lo=sum64_lo$1,utils$N.sum64_4_hi=sum64_4_hi$1,utils$N.sum64_4_lo=sum64_4_lo$1,utils$N.sum64_5_hi=sum64_5_hi$1,utils$N.sum64_5_lo=sum64_5_lo$1,utils$N.rotr64_hi=rotr64_hi$1,utils$N.rotr64_lo=rotr64_lo$1,utils$N.shr64_hi=shr64_hi$1,utils$N.shr64_lo=shr64_lo$1;var common$5={},utils$M=utils$N,assert$v=minimalisticAssert$1;function BlockHash$4(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}common$5.BlockHash=BlockHash$4,BlockHash$4.prototype.update=function(e,t){if(e=utils$M.toArray(e,t),this.pending?this.pending=this.pending.concat(e):this.pending=e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var r=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-r,e.length),0===this.pending.length&&(this.pending=null),e=utils$M.join32(e,0,e.length-r,this.endian);for(var n=0;n>>24&255,n[o++]=e>>>16&255,n[o++]=e>>>8&255,n[o++]=255&e}else for(n[o++]=255&e,n[o++]=e>>>8&255,n[o++]=e>>>16&255,n[o++]=e>>>24&255,n[o++]=0,n[o++]=0,n[o++]=0,n[o++]=0,i=8;i>>3}function g1_256$1(e){return rotr32(e,17)^rotr32(e,19)^e>>>10}common$4.ft_1=ft_1$1,common$4.ch32=ch32$1,common$4.maj32=maj32$1,common$4.p32=p32,common$4.s0_256=s0_256$1,common$4.s1_256=s1_256$1,common$4.g0_256=g0_256$1,common$4.g1_256=g1_256$1;var utils$K=utils$N,common$3=common$5,shaCommon$1=common$4,rotl32$1=utils$K.rotl32,sum32$2=utils$K.sum32,sum32_5$1=utils$K.sum32_5,ft_1=shaCommon$1.ft_1,BlockHash$3=common$3.BlockHash,sha1_K=[1518500249,1859775393,2400959708,3395469782];function SHA1(){if(!(this instanceof SHA1))return new SHA1;BlockHash$3.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}utils$K.inherits(SHA1,BlockHash$3);var _1=SHA1;SHA1.blockSize=512,SHA1.outSize=160,SHA1.hmacStrength=80,SHA1.padLength=64,SHA1.prototype._update=function(e,t){for(var r=this.W,n=0;n<16;n++)r[n]=e[t+n];for(;nthis.blockSize&&(e=(new this.Hash).update(e).digest()),assert$s(e.length<=this.blockSize);for(var t=e.length;t=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,r,n)}var hmacDrbg$1=HmacDRBG$3,key$9,hasRequiredKey$1,signature$8,hasRequiredSignature$1,ec$5,hasRequiredEc$1,key$8,hasRequiredKey,signature$7,hasRequiredSignature,eddsa$3,hasRequiredEddsa,hasRequiredElliptic$1;function requireKey$1(){if(hasRequiredKey$1)return key$9;hasRequiredKey$1=1;var e=requireBn$3(),t=requireUtils$1().assert;function r(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}return key$9=r,r.fromPublic=function(e,t,n){return t instanceof r?t:new r(e,{pub:t,pubEnc:n})},r.fromPrivate=function(e,t,n){return t instanceof r?t:new r(e,{priv:t,privEnc:n})},r.prototype.validate=function(){var e=this.getPublic();return e.isInfinity()?{result:!1,reason:"Invalid public key"}:e.validate()?e.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},r.prototype.getPublic=function(e,t){return"string"==typeof e&&(t=e,e=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),t?this.pub.encode(t,e):this.pub},r.prototype.getPrivate=function(e){return"hex"===e?this.priv.toString(16,2):this.priv},r.prototype._importPrivate=function(t,r){this.priv=new e(t,r||16),this.priv=this.priv.umod(this.ec.curve.n)},r.prototype._importPublic=function(e,r){if(e.x||e.y)return"mont"===this.ec.curve.type?t(e.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||t(e.x&&e.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(e.x,e.y));this.pub=this.ec.curve.decodePoint(e,r)},r.prototype.derive=function(e){return e.validate()||t(e.validate(),"public point not validated"),e.mul(this.priv).getX()},r.prototype.sign=function(e,t,r){return this.ec.sign(e,this,t,r)},r.prototype.verify=function(e,t,r){return this.ec.verify(e,t,this,void 0,r)},r.prototype.inspect=function(){return""},key$9}function requireSignature$1(){if(hasRequiredSignature$1)return signature$8;hasRequiredSignature$1=1;var e=requireBn$3(),t=requireUtils$1(),r=t.assert;function n(t,o){if(t instanceof n)return t;this._importDER(t,o)||(r(t.r&&t.s,"Signature without r or s"),this.r=new e(t.r,16),this.s=new e(t.s,16),void 0===t.recoveryParam?this.recoveryParam=null:this.recoveryParam=t.recoveryParam)}function o(){this.place=0}function i(e,t){var r=e[t.place++];if(!(128&r))return r;var n=15&r;if(0===n||n>4)return!1;if(0===e[t.place])return!1;for(var o=0,i=0,a=t.place;i>>=0;return!(o<=127)&&(t.place=a,o)}function a(e){for(var t=0,r=e.length-1;!e[t]&&!(128&e[t+1])&&t>>3);for(e.push(128|r);--r;)e.push(t>>>(r<<3)&255);e.push(t)}}return signature$8=n,n.prototype._importDER=function(r,n){r=t.toArray(r,n);var a=new o;if(48!==r[a.place++])return!1;var s=i(r,a);if(!1===s)return!1;if(s+a.place!==r.length)return!1;if(2!==r[a.place++])return!1;var c=i(r,a);if(!1===c)return!1;if(128&r[a.place])return!1;var u=r.slice(a.place,c+a.place);if(a.place+=c,2!==r[a.place++])return!1;var l=i(r,a);if(!1===l)return!1;if(r.length!==l+a.place)return!1;if(128&r[a.place])return!1;var d=r.slice(a.place,l+a.place);if(0===u[0]){if(!(128&u[1]))return!1;u=u.slice(1)}if(0===d[0]){if(!(128&d[1]))return!1;d=d.slice(1)}return this.r=new e(u),this.s=new e(d),this.recoveryParam=null,!0},n.prototype.toDER=function(e){var r=this.r.toArray(),n=this.s.toArray();for(128&r[0]&&(r=[0].concat(r)),128&n[0]&&(n=[0].concat(n)),r=a(r),n=a(n);!(n[0]||128&n[1]);)n=n.slice(1);var o=[2];s(o,r.length),(o=o.concat(r)).push(2),s(o,n.length);var i=o.concat(n),c=[48];return s(c,i.length),c=c.concat(i),t.encode(c,e)},signature$8}function requireEc$1(){if(hasRequiredEc$1)return ec$5;hasRequiredEc$1=1;var e=requireBn$3(),t=hmacDrbg$1,r=requireUtils$1(),n=requireCurves(),o=requireBrorand(),i=r.assert,a=requireKey$1(),s=requireSignature$1();function c(e){if(!(this instanceof c))return new c(e);"string"==typeof e&&(i(Object.prototype.hasOwnProperty.call(n,e),"Unknown curve "+e),e=n[e]),e instanceof n.PresetCurve&&(e={curve:e}),this.curve=e.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=e.curve.g,this.g.precompute(e.curve.n.bitLength()+1),this.hash=e.hash||e.curve.hash}return ec$5=c,c.prototype.keyPair=function(e){return new a(this,e)},c.prototype.keyFromPrivate=function(e,t){return a.fromPrivate(this,e,t)},c.prototype.keyFromPublic=function(e,t){return a.fromPublic(this,e,t)},c.prototype.genKeyPair=function(r){r||(r={});for(var n=new t({hash:this.hash,pers:r.pers,persEnc:r.persEnc||"utf8",entropy:r.entropy||o(this.hash.hmacStrength),entropyEnc:r.entropy&&r.entropyEnc||"utf8",nonce:this.n.toArray()}),i=this.n.byteLength(),a=this.n.sub(new e(2));;){var s=new e(n.generate(i));if(!(s.cmp(a)>0))return s.iaddn(1),this.keyFromPrivate(s)}},c.prototype._truncateToN=function(t,r,n){var o;if(e.isBN(t)||"number"==typeof t)o=(t=new e(t,16)).byteLength();else if("object"==typeof t)o=t.length,t=new e(t,16);else{var i=t.toString();o=i.length+1>>>1,t=new e(i,16)}"number"!=typeof n&&(n=8*o);var a=n-this.n.bitLength();return a>0&&(t=t.ushrn(a)),!r&&t.cmp(this.n)>=0?t.sub(this.n):t},c.prototype.sign=function(r,n,o,a){if("object"==typeof o&&(a=o,o=null),a||(a={}),"string"!=typeof r&&"number"!=typeof r&&!e.isBN(r)){i("object"==typeof r&&r&&"number"==typeof r.length,"Expected message to be an array-like, a hex string, or a BN instance"),i(r.length>>>0===r.length);for(var c=0;c=0)){var m=this.g.mul(y);if(!m.isInfinity()){var g=m.getX(),b=g.umod(this.n);if(0!==b.cmpn(0)){var v=y.invm(this.n).mul(b.mul(n.getPrivate()).iadd(r));if(0!==(v=v.umod(this.n)).cmpn(0)){var w=(m.getY().isOdd()?1:0)|(0!==g.cmp(b)?2:0);return a.canonical&&v.cmp(this.nh)>0&&(v=this.n.sub(v),w^=1),new s({r:b,s:v,recoveryParam:w})}}}}}},c.prototype.verify=function(e,t,r,n,o){o||(o={}),e=this._truncateToN(e,!1,o.msgBitLength),r=this.keyFromPublic(r,n);var i=(t=new s(t,"hex")).r,a=t.s;if(i.cmpn(1)<0||i.cmp(this.n)>=0)return!1;if(a.cmpn(1)<0||a.cmp(this.n)>=0)return!1;var c,u=a.invm(this.n),l=u.mul(e).umod(this.n),d=u.mul(i).umod(this.n);return this.curve._maxwellTrick?!(c=this.g.jmulAdd(l,r.getPublic(),d)).isInfinity()&&c.eqXToP(i):!(c=this.g.mulAdd(l,r.getPublic(),d)).isInfinity()&&0===c.getX().umod(this.n).cmp(i)},c.prototype.recoverPubKey=function(t,r,n,o){i((3&n)===n,"The recovery param is more than two bits"),r=new s(r,o);var a=this.n,c=new e(t),u=r.r,l=r.s,d=1&n,f=n>>1;if(u.cmp(this.curve.p.umod(this.curve.n))>=0&&f)throw new Error("Unable to find sencond key candinate");u=f?this.curve.pointFromX(u.add(this.curve.n),d):this.curve.pointFromX(u,d);var h=r.r.invm(a),p=a.sub(c).mul(h).umod(a),y=l.mul(h).umod(a);return this.g.mulAdd(p,u,y)},c.prototype.getKeyRecoveryParam=function(e,t,r,n){if(null!==(t=new s(t,n)).recoveryParam)return t.recoveryParam;for(var o=0;o<4;o++){var i;try{i=this.recoverPubKey(e,t,o)}catch(a){continue}if(i.eq(r))return o}throw new Error("Unable to find valid recovery factor")},ec$5}function requireKey(){if(hasRequiredKey)return key$8;hasRequiredKey=1;var e=requireUtils$1(),t=e.assert,r=e.parseBytes,n=e.cachedProperty;function o(e,t){this.eddsa=e,this._secret=r(t.secret),e.isPoint(t.pub)?this._pub=t.pub:this._pubBytes=r(t.pub)}return o.fromPublic=function(e,t){return t instanceof o?t:new o(e,{pub:t})},o.fromSecret=function(e,t){return t instanceof o?t:new o(e,{secret:t})},o.prototype.secret=function(){return this._secret},n(o,"pubBytes",(function(){return this.eddsa.encodePoint(this.pub())})),n(o,"pub",(function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())})),n(o,"privBytes",(function(){var e=this.eddsa,t=this.hash(),r=e.encodingLength-1,n=t.slice(0,e.encodingLength);return n[0]&=248,n[r]&=127,n[r]|=64,n})),n(o,"priv",(function(){return this.eddsa.decodeInt(this.privBytes())})),n(o,"hash",(function(){return this.eddsa.hash().update(this.secret()).digest()})),n(o,"messagePrefix",(function(){return this.hash().slice(this.eddsa.encodingLength)})),o.prototype.sign=function(e){return t(this._secret,"KeyPair can only verify"),this.eddsa.sign(e,this)},o.prototype.verify=function(e,t){return this.eddsa.verify(e,t,this)},o.prototype.getSecret=function(r){return t(this._secret,"KeyPair is public only"),e.encode(this.secret(),r)},o.prototype.getPublic=function(t){return e.encode(this.pubBytes(),t)},key$8=o}function requireSignature(){if(hasRequiredSignature)return signature$7;hasRequiredSignature=1;var e=requireBn$3(),t=requireUtils$1(),r=t.assert,n=t.cachedProperty,o=t.parseBytes;function i(t,n){this.eddsa=t,"object"!=typeof n&&(n=o(n)),Array.isArray(n)&&(r(n.length===2*t.encodingLength,"Signature has invalid size"),n={R:n.slice(0,t.encodingLength),S:n.slice(t.encodingLength)}),r(n.R&&n.S,"Signature without R or S"),t.isPoint(n.R)&&(this._R=n.R),n.S instanceof e&&(this._S=n.S),this._Rencoded=Array.isArray(n.R)?n.R:n.Rencoded,this._Sencoded=Array.isArray(n.S)?n.S:n.Sencoded}return n(i,"S",(function(){return this.eddsa.decodeInt(this.Sencoded())})),n(i,"R",(function(){return this.eddsa.decodePoint(this.Rencoded())})),n(i,"Rencoded",(function(){return this.eddsa.encodePoint(this.R())})),n(i,"Sencoded",(function(){return this.eddsa.encodeInt(this.S())})),i.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())},i.prototype.toHex=function(){return t.encode(this.toBytes(),"hex").toUpperCase()},signature$7=i}function requireEddsa(){if(hasRequiredEddsa)return eddsa$3;hasRequiredEddsa=1;var e=hash$8,t=requireCurves(),r=requireUtils$1(),n=r.assert,o=r.parseBytes,i=requireKey(),a=requireSignature();function s(r){if(n("ed25519"===r,"only tested with ed25519 so far"),!(this instanceof s))return new s(r);r=t[r].curve,this.curve=r,this.g=r.g,this.g.precompute(r.n.bitLength()+1),this.pointClass=r.point().constructor,this.encodingLength=Math.ceil(r.n.bitLength()/8),this.hash=e.sha512}return eddsa$3=s,s.prototype.sign=function(e,t){e=o(e);var r=this.keyFromSecret(t),n=this.hashInt(r.messagePrefix(),e),i=this.g.mul(n),a=this.encodePoint(i),s=this.hashInt(a,r.pubBytes(),e).mul(r.priv()),c=n.add(s).umod(this.curve.n);return this.makeSignature({R:i,S:c,Rencoded:a})},s.prototype.verify=function(e,t,r){if(e=o(e),(t=this.makeSignature(t)).S().gte(t.eddsa.curve.n)||t.S().isNeg())return!1;var n=this.keyFromPublic(r),i=this.hashInt(t.Rencoded(),n.pubBytes(),e),a=this.g.mul(t.S());return t.R().add(n.pub().mul(i)).eq(a)},s.prototype.hashInt=function(){for(var e=this.hash(),t=0;t=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(e.concat(r||[])),this._reseed=1},HmacDRBG$3.prototype.generate=function(e,t,r,n){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof t&&(n=r,r=t,t=null),r&&(r=utils$D.toArray(r,n||"hex"),this._update(r));for(var o=[];o.length=65&&r<=70?r-55:r>=97&&r<=102?r-87:r-48&15}function s(e,t,r){var n=a(e,r);return r-1>=t&&(n|=a(e,r-1)<<4),n}function c(e,t,r,n){for(var o=0,i=Math.min(e.length,r),a=t;a=49?s-49+10:s>=17?s-17+10:s}return o}o.isBN=function(e){return e instanceof o||null!==e&&"object"==typeof e&&e.constructor.wordSize===o.wordSize&&Array.isArray(e.words)},o.max=function(e,t){return e.cmp(t)>0?e:t},o.min=function(e,t){return e.cmp(t)<0?e:t},o.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),r(t===(0|t)&&t>=2&&t<=36);var o=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(o++,this.negative=1),o=0;o-=3)a=e[o]|e[o-1]<<8|e[o-2]<<16,this.words[i]|=a<>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);else if("le"===n)for(o=0,i=0;o>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);return this.strip()},o.prototype._parseHex=function(e,t,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var n=0;n=t;n-=2)o=s(e,t,n)<=18?(i-=18,a+=1,this.words[a]|=o>>>26):i+=8;else for(n=(e.length-t)%2==0?t+1:t;n=18?(i-=18,a+=1,this.words[a]|=o>>>26):i+=8;this.strip()},o.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var n=0,o=1;o<=67108863;o*=t)n++;n--,o=o/t|0;for(var i=e.length-r,a=i%n,s=Math.min(i,i-a)+r,u=0,l=r;l1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?""};var u=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],l=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],d=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function f(e,t,r){r.negative=t.negative^e.negative;var n=e.length+t.length|0;r.length=n,n=n-1|0;var o=0|e.words[0],i=0|t.words[0],a=o*i,s=67108863&a,c=a/67108864|0;r.words[0]=s;for(var u=1;u>>26,d=67108863&c,f=Math.min(u,t.length-1),h=Math.max(0,u-e.length+1);h<=f;h++){var p=u-h|0;l+=(a=(o=0|e.words[p])*(i=0|t.words[h])+d)/67108864|0,d=67108863&a}r.words[u]=0|d,c=0|l}return 0!==c?r.words[u]=0|c:r.length--,r.strip()}o.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var o=0,i=0,a=0;a>>24-o&16777215,(o+=2)>=26&&(o-=26,a--),n=0!==i||a!==this.length-1?u[6-c.length]+c+n:c+n}for(0!==i&&(n=i.toString(16)+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var f=l[e],h=d[e];n="";var p=this.clone();for(p.negative=0;!p.isZero();){var y=p.modn(h).toString(e);n=(p=p.idivn(h)).isZero()?y+n:u[f-y.length]+y+n}for(this.isZero()&&(n="0"+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(e,t){return r(void 0!==i),this.toArrayLike(i,e,t)},o.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},o.prototype.toArrayLike=function(e,t,n){var o=this.byteLength(),i=n||Math.max(1,o);r(o<=i,"byte array longer than desired length"),r(i>0,"Requested array length <= 0"),this.strip();var a,s,c="le"===t,u=new e(i),l=this.clone();if(c){for(s=0;!l.isZero();s++)a=l.andln(255),l.iushrn(8),u[s]=a;for(;s=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},o.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 8191&t||(r+=13,t>>>=13),127&t||(r+=7,t>>>=7),15&t||(r+=4,t>>>=4),3&t||(r+=2,t>>>=2),1&t||r++,r},o.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},o.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},o.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;re.length?this.clone().iand(e):e.clone().iand(this)},o.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},o.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var n=0;ne.length?this.clone().ixor(e):e.clone().ixor(this)},o.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},o.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var o=0;o0&&(this.words[o]=~this.words[o]&67108863>>26-n),this.strip()},o.prototype.notn=function(e){return this.clone().inotn(e)},o.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var n=e/26|0,o=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<e.length?(r=this,n=e):(r=e,n=this);for(var o=0,i=0;i>>26;for(;0!==o&&i>>26;if(this.length=r.length,0!==o)this.words[this.length]=o,this.length++;else if(r!==this)for(;ie.length?this.clone().iadd(e):e.clone().iadd(this)},o.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,n,o=this.cmp(e);if(0===o)return this.negative=0,this.length=1,this.words[0]=0,this;o>0?(r=this,n=e):(r=e,n=this);for(var i=0,a=0;a>26,this.words[a]=67108863&t;for(;0!==i&&a>26,this.words[a]=67108863&t;if(0===i&&a>>13,h=0|a[1],p=8191&h,y=h>>>13,m=0|a[2],g=8191&m,b=m>>>13,v=0|a[3],w=8191&v,_=v>>>13,I=0|a[4],T=8191&I,k=I>>>13,$=0|a[5],S=8191&$,A=$>>>13,E=0|a[6],C=8191&E,R=E>>>13,O=0|a[7],N=8191&O,P=O>>>13,M=0|a[8],B=8191&M,D=M>>>13,x=0|a[9],L=8191&x,U=x>>>13,j=0|s[0],F=8191&j,q=j>>>13,K=0|s[1],H=8191&K,G=K>>>13,z=0|s[2],V=8191&z,W=z>>>13,Q=0|s[3],Y=8191&Q,X=Q>>>13,J=0|s[4],Z=8191&J,ee=J>>>13,te=0|s[5],re=8191&te,ne=te>>>13,oe=0|s[6],ie=8191&oe,ae=oe>>>13,se=0|s[7],ce=8191&se,ue=se>>>13,le=0|s[8],de=8191&le,fe=le>>>13,he=0|s[9],pe=8191&he,ye=he>>>13;r.negative=e.negative^t.negative,r.length=19;var me=(u+(n=Math.imul(d,F))|0)+((8191&(o=(o=Math.imul(d,q))+Math.imul(f,F)|0))<<13)|0;u=((i=Math.imul(f,q))+(o>>>13)|0)+(me>>>26)|0,me&=67108863,n=Math.imul(p,F),o=(o=Math.imul(p,q))+Math.imul(y,F)|0,i=Math.imul(y,q);var ge=(u+(n=n+Math.imul(d,H)|0)|0)+((8191&(o=(o=o+Math.imul(d,G)|0)+Math.imul(f,H)|0))<<13)|0;u=((i=i+Math.imul(f,G)|0)+(o>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(g,F),o=(o=Math.imul(g,q))+Math.imul(b,F)|0,i=Math.imul(b,q),n=n+Math.imul(p,H)|0,o=(o=o+Math.imul(p,G)|0)+Math.imul(y,H)|0,i=i+Math.imul(y,G)|0;var be=(u+(n=n+Math.imul(d,V)|0)|0)+((8191&(o=(o=o+Math.imul(d,W)|0)+Math.imul(f,V)|0))<<13)|0;u=((i=i+Math.imul(f,W)|0)+(o>>>13)|0)+(be>>>26)|0,be&=67108863,n=Math.imul(w,F),o=(o=Math.imul(w,q))+Math.imul(_,F)|0,i=Math.imul(_,q),n=n+Math.imul(g,H)|0,o=(o=o+Math.imul(g,G)|0)+Math.imul(b,H)|0,i=i+Math.imul(b,G)|0,n=n+Math.imul(p,V)|0,o=(o=o+Math.imul(p,W)|0)+Math.imul(y,V)|0,i=i+Math.imul(y,W)|0;var ve=(u+(n=n+Math.imul(d,Y)|0)|0)+((8191&(o=(o=o+Math.imul(d,X)|0)+Math.imul(f,Y)|0))<<13)|0;u=((i=i+Math.imul(f,X)|0)+(o>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(T,F),o=(o=Math.imul(T,q))+Math.imul(k,F)|0,i=Math.imul(k,q),n=n+Math.imul(w,H)|0,o=(o=o+Math.imul(w,G)|0)+Math.imul(_,H)|0,i=i+Math.imul(_,G)|0,n=n+Math.imul(g,V)|0,o=(o=o+Math.imul(g,W)|0)+Math.imul(b,V)|0,i=i+Math.imul(b,W)|0,n=n+Math.imul(p,Y)|0,o=(o=o+Math.imul(p,X)|0)+Math.imul(y,Y)|0,i=i+Math.imul(y,X)|0;var we=(u+(n=n+Math.imul(d,Z)|0)|0)+((8191&(o=(o=o+Math.imul(d,ee)|0)+Math.imul(f,Z)|0))<<13)|0;u=((i=i+Math.imul(f,ee)|0)+(o>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(S,F),o=(o=Math.imul(S,q))+Math.imul(A,F)|0,i=Math.imul(A,q),n=n+Math.imul(T,H)|0,o=(o=o+Math.imul(T,G)|0)+Math.imul(k,H)|0,i=i+Math.imul(k,G)|0,n=n+Math.imul(w,V)|0,o=(o=o+Math.imul(w,W)|0)+Math.imul(_,V)|0,i=i+Math.imul(_,W)|0,n=n+Math.imul(g,Y)|0,o=(o=o+Math.imul(g,X)|0)+Math.imul(b,Y)|0,i=i+Math.imul(b,X)|0,n=n+Math.imul(p,Z)|0,o=(o=o+Math.imul(p,ee)|0)+Math.imul(y,Z)|0,i=i+Math.imul(y,ee)|0;var _e=(u+(n=n+Math.imul(d,re)|0)|0)+((8191&(o=(o=o+Math.imul(d,ne)|0)+Math.imul(f,re)|0))<<13)|0;u=((i=i+Math.imul(f,ne)|0)+(o>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(C,F),o=(o=Math.imul(C,q))+Math.imul(R,F)|0,i=Math.imul(R,q),n=n+Math.imul(S,H)|0,o=(o=o+Math.imul(S,G)|0)+Math.imul(A,H)|0,i=i+Math.imul(A,G)|0,n=n+Math.imul(T,V)|0,o=(o=o+Math.imul(T,W)|0)+Math.imul(k,V)|0,i=i+Math.imul(k,W)|0,n=n+Math.imul(w,Y)|0,o=(o=o+Math.imul(w,X)|0)+Math.imul(_,Y)|0,i=i+Math.imul(_,X)|0,n=n+Math.imul(g,Z)|0,o=(o=o+Math.imul(g,ee)|0)+Math.imul(b,Z)|0,i=i+Math.imul(b,ee)|0,n=n+Math.imul(p,re)|0,o=(o=o+Math.imul(p,ne)|0)+Math.imul(y,re)|0,i=i+Math.imul(y,ne)|0;var Ie=(u+(n=n+Math.imul(d,ie)|0)|0)+((8191&(o=(o=o+Math.imul(d,ae)|0)+Math.imul(f,ie)|0))<<13)|0;u=((i=i+Math.imul(f,ae)|0)+(o>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,n=Math.imul(N,F),o=(o=Math.imul(N,q))+Math.imul(P,F)|0,i=Math.imul(P,q),n=n+Math.imul(C,H)|0,o=(o=o+Math.imul(C,G)|0)+Math.imul(R,H)|0,i=i+Math.imul(R,G)|0,n=n+Math.imul(S,V)|0,o=(o=o+Math.imul(S,W)|0)+Math.imul(A,V)|0,i=i+Math.imul(A,W)|0,n=n+Math.imul(T,Y)|0,o=(o=o+Math.imul(T,X)|0)+Math.imul(k,Y)|0,i=i+Math.imul(k,X)|0,n=n+Math.imul(w,Z)|0,o=(o=o+Math.imul(w,ee)|0)+Math.imul(_,Z)|0,i=i+Math.imul(_,ee)|0,n=n+Math.imul(g,re)|0,o=(o=o+Math.imul(g,ne)|0)+Math.imul(b,re)|0,i=i+Math.imul(b,ne)|0,n=n+Math.imul(p,ie)|0,o=(o=o+Math.imul(p,ae)|0)+Math.imul(y,ie)|0,i=i+Math.imul(y,ae)|0;var Te=(u+(n=n+Math.imul(d,ce)|0)|0)+((8191&(o=(o=o+Math.imul(d,ue)|0)+Math.imul(f,ce)|0))<<13)|0;u=((i=i+Math.imul(f,ue)|0)+(o>>>13)|0)+(Te>>>26)|0,Te&=67108863,n=Math.imul(B,F),o=(o=Math.imul(B,q))+Math.imul(D,F)|0,i=Math.imul(D,q),n=n+Math.imul(N,H)|0,o=(o=o+Math.imul(N,G)|0)+Math.imul(P,H)|0,i=i+Math.imul(P,G)|0,n=n+Math.imul(C,V)|0,o=(o=o+Math.imul(C,W)|0)+Math.imul(R,V)|0,i=i+Math.imul(R,W)|0,n=n+Math.imul(S,Y)|0,o=(o=o+Math.imul(S,X)|0)+Math.imul(A,Y)|0,i=i+Math.imul(A,X)|0,n=n+Math.imul(T,Z)|0,o=(o=o+Math.imul(T,ee)|0)+Math.imul(k,Z)|0,i=i+Math.imul(k,ee)|0,n=n+Math.imul(w,re)|0,o=(o=o+Math.imul(w,ne)|0)+Math.imul(_,re)|0,i=i+Math.imul(_,ne)|0,n=n+Math.imul(g,ie)|0,o=(o=o+Math.imul(g,ae)|0)+Math.imul(b,ie)|0,i=i+Math.imul(b,ae)|0,n=n+Math.imul(p,ce)|0,o=(o=o+Math.imul(p,ue)|0)+Math.imul(y,ce)|0,i=i+Math.imul(y,ue)|0;var ke=(u+(n=n+Math.imul(d,de)|0)|0)+((8191&(o=(o=o+Math.imul(d,fe)|0)+Math.imul(f,de)|0))<<13)|0;u=((i=i+Math.imul(f,fe)|0)+(o>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(L,F),o=(o=Math.imul(L,q))+Math.imul(U,F)|0,i=Math.imul(U,q),n=n+Math.imul(B,H)|0,o=(o=o+Math.imul(B,G)|0)+Math.imul(D,H)|0,i=i+Math.imul(D,G)|0,n=n+Math.imul(N,V)|0,o=(o=o+Math.imul(N,W)|0)+Math.imul(P,V)|0,i=i+Math.imul(P,W)|0,n=n+Math.imul(C,Y)|0,o=(o=o+Math.imul(C,X)|0)+Math.imul(R,Y)|0,i=i+Math.imul(R,X)|0,n=n+Math.imul(S,Z)|0,o=(o=o+Math.imul(S,ee)|0)+Math.imul(A,Z)|0,i=i+Math.imul(A,ee)|0,n=n+Math.imul(T,re)|0,o=(o=o+Math.imul(T,ne)|0)+Math.imul(k,re)|0,i=i+Math.imul(k,ne)|0,n=n+Math.imul(w,ie)|0,o=(o=o+Math.imul(w,ae)|0)+Math.imul(_,ie)|0,i=i+Math.imul(_,ae)|0,n=n+Math.imul(g,ce)|0,o=(o=o+Math.imul(g,ue)|0)+Math.imul(b,ce)|0,i=i+Math.imul(b,ue)|0,n=n+Math.imul(p,de)|0,o=(o=o+Math.imul(p,fe)|0)+Math.imul(y,de)|0,i=i+Math.imul(y,fe)|0;var $e=(u+(n=n+Math.imul(d,pe)|0)|0)+((8191&(o=(o=o+Math.imul(d,ye)|0)+Math.imul(f,pe)|0))<<13)|0;u=((i=i+Math.imul(f,ye)|0)+(o>>>13)|0)+($e>>>26)|0,$e&=67108863,n=Math.imul(L,H),o=(o=Math.imul(L,G))+Math.imul(U,H)|0,i=Math.imul(U,G),n=n+Math.imul(B,V)|0,o=(o=o+Math.imul(B,W)|0)+Math.imul(D,V)|0,i=i+Math.imul(D,W)|0,n=n+Math.imul(N,Y)|0,o=(o=o+Math.imul(N,X)|0)+Math.imul(P,Y)|0,i=i+Math.imul(P,X)|0,n=n+Math.imul(C,Z)|0,o=(o=o+Math.imul(C,ee)|0)+Math.imul(R,Z)|0,i=i+Math.imul(R,ee)|0,n=n+Math.imul(S,re)|0,o=(o=o+Math.imul(S,ne)|0)+Math.imul(A,re)|0,i=i+Math.imul(A,ne)|0,n=n+Math.imul(T,ie)|0,o=(o=o+Math.imul(T,ae)|0)+Math.imul(k,ie)|0,i=i+Math.imul(k,ae)|0,n=n+Math.imul(w,ce)|0,o=(o=o+Math.imul(w,ue)|0)+Math.imul(_,ce)|0,i=i+Math.imul(_,ue)|0,n=n+Math.imul(g,de)|0,o=(o=o+Math.imul(g,fe)|0)+Math.imul(b,de)|0,i=i+Math.imul(b,fe)|0;var Se=(u+(n=n+Math.imul(p,pe)|0)|0)+((8191&(o=(o=o+Math.imul(p,ye)|0)+Math.imul(y,pe)|0))<<13)|0;u=((i=i+Math.imul(y,ye)|0)+(o>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(L,V),o=(o=Math.imul(L,W))+Math.imul(U,V)|0,i=Math.imul(U,W),n=n+Math.imul(B,Y)|0,o=(o=o+Math.imul(B,X)|0)+Math.imul(D,Y)|0,i=i+Math.imul(D,X)|0,n=n+Math.imul(N,Z)|0,o=(o=o+Math.imul(N,ee)|0)+Math.imul(P,Z)|0,i=i+Math.imul(P,ee)|0,n=n+Math.imul(C,re)|0,o=(o=o+Math.imul(C,ne)|0)+Math.imul(R,re)|0,i=i+Math.imul(R,ne)|0,n=n+Math.imul(S,ie)|0,o=(o=o+Math.imul(S,ae)|0)+Math.imul(A,ie)|0,i=i+Math.imul(A,ae)|0,n=n+Math.imul(T,ce)|0,o=(o=o+Math.imul(T,ue)|0)+Math.imul(k,ce)|0,i=i+Math.imul(k,ue)|0,n=n+Math.imul(w,de)|0,o=(o=o+Math.imul(w,fe)|0)+Math.imul(_,de)|0,i=i+Math.imul(_,fe)|0;var Ae=(u+(n=n+Math.imul(g,pe)|0)|0)+((8191&(o=(o=o+Math.imul(g,ye)|0)+Math.imul(b,pe)|0))<<13)|0;u=((i=i+Math.imul(b,ye)|0)+(o>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(L,Y),o=(o=Math.imul(L,X))+Math.imul(U,Y)|0,i=Math.imul(U,X),n=n+Math.imul(B,Z)|0,o=(o=o+Math.imul(B,ee)|0)+Math.imul(D,Z)|0,i=i+Math.imul(D,ee)|0,n=n+Math.imul(N,re)|0,o=(o=o+Math.imul(N,ne)|0)+Math.imul(P,re)|0,i=i+Math.imul(P,ne)|0,n=n+Math.imul(C,ie)|0,o=(o=o+Math.imul(C,ae)|0)+Math.imul(R,ie)|0,i=i+Math.imul(R,ae)|0,n=n+Math.imul(S,ce)|0,o=(o=o+Math.imul(S,ue)|0)+Math.imul(A,ce)|0,i=i+Math.imul(A,ue)|0,n=n+Math.imul(T,de)|0,o=(o=o+Math.imul(T,fe)|0)+Math.imul(k,de)|0,i=i+Math.imul(k,fe)|0;var Ee=(u+(n=n+Math.imul(w,pe)|0)|0)+((8191&(o=(o=o+Math.imul(w,ye)|0)+Math.imul(_,pe)|0))<<13)|0;u=((i=i+Math.imul(_,ye)|0)+(o>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(L,Z),o=(o=Math.imul(L,ee))+Math.imul(U,Z)|0,i=Math.imul(U,ee),n=n+Math.imul(B,re)|0,o=(o=o+Math.imul(B,ne)|0)+Math.imul(D,re)|0,i=i+Math.imul(D,ne)|0,n=n+Math.imul(N,ie)|0,o=(o=o+Math.imul(N,ae)|0)+Math.imul(P,ie)|0,i=i+Math.imul(P,ae)|0,n=n+Math.imul(C,ce)|0,o=(o=o+Math.imul(C,ue)|0)+Math.imul(R,ce)|0,i=i+Math.imul(R,ue)|0,n=n+Math.imul(S,de)|0,o=(o=o+Math.imul(S,fe)|0)+Math.imul(A,de)|0,i=i+Math.imul(A,fe)|0;var Ce=(u+(n=n+Math.imul(T,pe)|0)|0)+((8191&(o=(o=o+Math.imul(T,ye)|0)+Math.imul(k,pe)|0))<<13)|0;u=((i=i+Math.imul(k,ye)|0)+(o>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,n=Math.imul(L,re),o=(o=Math.imul(L,ne))+Math.imul(U,re)|0,i=Math.imul(U,ne),n=n+Math.imul(B,ie)|0,o=(o=o+Math.imul(B,ae)|0)+Math.imul(D,ie)|0,i=i+Math.imul(D,ae)|0,n=n+Math.imul(N,ce)|0,o=(o=o+Math.imul(N,ue)|0)+Math.imul(P,ce)|0,i=i+Math.imul(P,ue)|0,n=n+Math.imul(C,de)|0,o=(o=o+Math.imul(C,fe)|0)+Math.imul(R,de)|0,i=i+Math.imul(R,fe)|0;var Re=(u+(n=n+Math.imul(S,pe)|0)|0)+((8191&(o=(o=o+Math.imul(S,ye)|0)+Math.imul(A,pe)|0))<<13)|0;u=((i=i+Math.imul(A,ye)|0)+(o>>>13)|0)+(Re>>>26)|0,Re&=67108863,n=Math.imul(L,ie),o=(o=Math.imul(L,ae))+Math.imul(U,ie)|0,i=Math.imul(U,ae),n=n+Math.imul(B,ce)|0,o=(o=o+Math.imul(B,ue)|0)+Math.imul(D,ce)|0,i=i+Math.imul(D,ue)|0,n=n+Math.imul(N,de)|0,o=(o=o+Math.imul(N,fe)|0)+Math.imul(P,de)|0,i=i+Math.imul(P,fe)|0;var Oe=(u+(n=n+Math.imul(C,pe)|0)|0)+((8191&(o=(o=o+Math.imul(C,ye)|0)+Math.imul(R,pe)|0))<<13)|0;u=((i=i+Math.imul(R,ye)|0)+(o>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,n=Math.imul(L,ce),o=(o=Math.imul(L,ue))+Math.imul(U,ce)|0,i=Math.imul(U,ue),n=n+Math.imul(B,de)|0,o=(o=o+Math.imul(B,fe)|0)+Math.imul(D,de)|0,i=i+Math.imul(D,fe)|0;var Ne=(u+(n=n+Math.imul(N,pe)|0)|0)+((8191&(o=(o=o+Math.imul(N,ye)|0)+Math.imul(P,pe)|0))<<13)|0;u=((i=i+Math.imul(P,ye)|0)+(o>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,n=Math.imul(L,de),o=(o=Math.imul(L,fe))+Math.imul(U,de)|0,i=Math.imul(U,fe);var Pe=(u+(n=n+Math.imul(B,pe)|0)|0)+((8191&(o=(o=o+Math.imul(B,ye)|0)+Math.imul(D,pe)|0))<<13)|0;u=((i=i+Math.imul(D,ye)|0)+(o>>>13)|0)+(Pe>>>26)|0,Pe&=67108863;var Me=(u+(n=Math.imul(L,pe))|0)+((8191&(o=(o=Math.imul(L,ye))+Math.imul(U,pe)|0))<<13)|0;return u=((i=Math.imul(U,ye))+(o>>>13)|0)+(Me>>>26)|0,Me&=67108863,c[0]=me,c[1]=ge,c[2]=be,c[3]=ve,c[4]=we,c[5]=_e,c[6]=Ie,c[7]=Te,c[8]=ke,c[9]=$e,c[10]=Se,c[11]=Ae,c[12]=Ee,c[13]=Ce,c[14]=Re,c[15]=Oe,c[16]=Ne,c[17]=Pe,c[18]=Me,0!==u&&(c[19]=u,r.length++),r};function p(e,t,r){return(new y).mulp(e,t,r)}function y(e,t){this.x=e,this.y=t}Math.imul||(h=f),o.prototype.mulTo=function(e,t){var r,n=this.length+e.length;return r=10===this.length&&10===e.length?h(this,e,t):n<63?f(this,e,t):n<1024?function(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var n=0,o=0,i=0;i>>26)|0)>>>26,a&=67108863}r.words[i]=s,n=a,a=o}return 0!==n?r.words[i]=n:r.length--,r.strip()}(this,e,t):p(this,e,t),r},y.prototype.makeRBT=function(e){for(var t=new Array(e),r=o.prototype._countBits(e)-1,n=0;n>=1;return n},y.prototype.permute=function(e,t,r,n,o,i){for(var a=0;a>>=1)o++;return 1<>>=13,n[2*a+1]=8191&i,i>>>=13;for(a=2*t;a>=26,t+=o/67108864|0,t+=i>>>26,this.words[n]=67108863&i}return 0!==t&&(this.words[n]=t,this.length++),this},o.prototype.muln=function(e){return this.clone().imuln(e)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r>>o}return t}(e);if(0===t.length)return new o(1);for(var r=this,n=0;n=0);var t,n=e%26,o=(e-n)/26,i=67108863>>>26-n<<26-n;if(0!==n){var a=0;for(t=0;t>>26-n}a&&(this.words[t]=a,this.length++)}if(0!==o){for(t=this.length-1;t>=0;t--)this.words[t+o]=this.words[t];for(t=0;t=0),o=t?(t-t%26)/26:0;var i=e%26,a=Math.min((e-i)/26,this.length),s=67108863^67108863>>>i<a)for(this.length-=a,u=0;u=0&&(0!==l||u>=o);u--){var d=0|this.words[u];this.words[u]=l<<26-i|d>>>i,l=d&s}return c&&0!==l&&(c.words[c.length++]=l),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(e,t,n){return r(0===this.negative),this.iushrn(e,t,n)},o.prototype.shln=function(e){return this.clone().ishln(e)},o.prototype.ushln=function(e){return this.clone().iushln(e)},o.prototype.shrn=function(e){return this.clone().ishrn(e)},o.prototype.ushrn=function(e){return this.clone().iushrn(e)},o.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26,o=1<=0);var t=e%26,n=(e-t)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==t&&n++,this.length=Math.min(n,this.length),0!==t){var o=67108863^67108863>>>t<=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},o.prototype.isubn=function(e){if(r("number"==typeof e),r(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t>26)-(c/67108864|0),this.words[o+n]=67108863&i}for(;o>26,this.words[o+n]=67108863&i;if(0===s)return this.strip();for(r(-1===s),s=0,o=0;o>26,this.words[o]=67108863&i;return this.negative=1,this.strip()},o.prototype._wordDiv=function(e,t){var r=(this.length,e.length),n=this.clone(),i=e,a=0|i.words[i.length-1];0!==(r=26-this._countBits(a))&&(i=i.ushln(r),n.iushln(r),a=0|i.words[i.length-1]);var s,c=n.length-i.length;if("mod"!==t){(s=new o(null)).length=c+1,s.words=new Array(s.length);for(var u=0;u=0;d--){var f=67108864*(0|n.words[i.length+d])+(0|n.words[i.length+d-1]);for(f=Math.min(f/a|0,67108863),n._ishlnsubmul(i,f,d);0!==n.negative;)f--,n.negative=0,n._ishlnsubmul(i,1,d),n.isZero()||(n.negative^=1);s&&(s.words[d]=f)}return s&&s.strip(),n.strip(),"div"!==t&&0!==r&&n.iushrn(r),{div:s||null,mod:n}},o.prototype.divmod=function(e,t,n){return r(!e.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===e.negative?(s=this.neg().divmod(e,t),"mod"!==t&&(i=s.div.neg()),"div"!==t&&(a=s.mod.neg(),n&&0!==a.negative&&a.iadd(e)),{div:i,mod:a}):0===this.negative&&0!==e.negative?(s=this.divmod(e.neg(),t),"mod"!==t&&(i=s.div.neg()),{div:i,mod:s.mod}):this.negative&e.negative?(s=this.neg().divmod(e.neg(),t),"div"!==t&&(a=s.mod.neg(),n&&0!==a.negative&&a.isub(e)),{div:s.div,mod:a}):e.length>this.length||this.cmp(e)<0?{div:new o(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new o(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new o(this.modn(e.words[0]))}:this._wordDiv(e,t);var i,a,s},o.prototype.div=function(e){return this.divmod(e,"div",!1).div},o.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},o.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},o.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,n=e.ushrn(1),o=e.andln(1),i=r.cmp(n);return i<0||1===o&&0===i?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},o.prototype.modn=function(e){r(e<=67108863);for(var t=(1<<26)%e,n=0,o=this.length-1;o>=0;o--)n=(t*n+(0|this.words[o]))%e;return n},o.prototype.idivn=function(e){r(e<=67108863);for(var t=0,n=this.length-1;n>=0;n--){var o=(0|this.words[n])+67108864*t;this.words[n]=o/e|0,t=o%e}return this.strip()},o.prototype.divn=function(e){return this.clone().idivn(e)},o.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i=new o(1),a=new o(0),s=new o(0),c=new o(1),u=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++u;for(var l=n.clone(),d=t.clone();!t.isZero();){for(var f=0,h=1;!(t.words[0]&h)&&f<26;++f,h<<=1);if(f>0)for(t.iushrn(f);f-- >0;)(i.isOdd()||a.isOdd())&&(i.iadd(l),a.isub(d)),i.iushrn(1),a.iushrn(1);for(var p=0,y=1;!(n.words[0]&y)&&p<26;++p,y<<=1);if(p>0)for(n.iushrn(p);p-- >0;)(s.isOdd()||c.isOdd())&&(s.iadd(l),c.isub(d)),s.iushrn(1),c.iushrn(1);t.cmp(n)>=0?(t.isub(n),i.isub(s),a.isub(c)):(n.isub(t),s.isub(i),c.isub(a))}return{a:s,b:c,gcd:n.iushln(u)}},o.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i,a=new o(1),s=new o(0),c=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var u=0,l=1;!(t.words[0]&l)&&u<26;++u,l<<=1);if(u>0)for(t.iushrn(u);u-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);for(var d=0,f=1;!(n.words[0]&f)&&d<26;++d,f<<=1);if(d>0)for(n.iushrn(d);d-- >0;)s.isOdd()&&s.iadd(c),s.iushrn(1);t.cmp(n)>=0?(t.isub(n),a.isub(s)):(n.isub(t),s.isub(a))}return(i=0===t.cmpn(1)?a:s).cmpn(0)<0&&i.iadd(e),i},o.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var n=0;t.isEven()&&r.isEven();n++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var o=t.cmp(r);if(o<0){var i=t;t=r,r=i}else if(0===o||0===r.cmpn(1))break;t.isub(r)}return r.iushln(n)},o.prototype.invm=function(e){return this.egcd(e).a.umod(e)},o.prototype.isEven=function(){return!(1&this.words[0])},o.prototype.isOdd=function(){return!(1&~this.words[0])},o.prototype.andln=function(e){return this.words[0]&e},o.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,n=(e-t)/26,o=1<>>26,s&=67108863,this.words[a]=s}return 0!==i&&(this.words[a]=i,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this.strip(),this.length>1)t=1;else{n&&(e=-e),r(e<=67108863,"Number is too big");var o=0|this.words[0];t=o===e?0:oe.length)return 1;if(this.length=0;r--){var n=0|this.words[r],o=0|e.words[r];if(n!==o){no&&(t=1);break}}return t},o.prototype.gtn=function(e){return 1===this.cmpn(e)},o.prototype.gt=function(e){return 1===this.cmp(e)},o.prototype.gten=function(e){return this.cmpn(e)>=0},o.prototype.gte=function(e){return this.cmp(e)>=0},o.prototype.ltn=function(e){return-1===this.cmpn(e)},o.prototype.lt=function(e){return-1===this.cmp(e)},o.prototype.lten=function(e){return this.cmpn(e)<=0},o.prototype.lte=function(e){return this.cmp(e)<=0},o.prototype.eqn=function(e){return 0===this.cmpn(e)},o.prototype.eq=function(e){return 0===this.cmp(e)},o.red=function(e){return new I(e)},o.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},o.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(e){return this.red=e,this},o.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},o.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},o.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},o.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},o.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},o.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},o.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},o.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},o.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var m={k256:null,p224:null,p192:null,p25519:null};function g(e,t){this.name=e,this.p=new o(t,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function b(){g.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function v(){g.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function w(){g.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function _(){g.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function I(e){if("string"==typeof e){var t=o._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function T(e){I.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}g.prototype._tmp=function(){var e=new o(null);return e.words=new Array(Math.ceil(this.n/13)),e},g.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var n=t0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},g.prototype.split=function(e,t){e.iushrn(this.n,0,t)},g.prototype.imulK=function(e){return e.imul(this.k)},n(b,g),b.prototype.split=function(e,t){for(var r=4194303,n=Math.min(e.length,9),o=0;o>>22,i=a}i>>>=22,e.words[o-10]=i,0===i&&e.length>10?e.length-=10:e.length-=9},b.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r>>=26,e.words[r]=o,t=n}return 0!==t&&(e.words[e.length++]=t),e},o._prime=function(e){if(m[e])return m[e];var t;if("k256"===e)t=new b;else if("p224"===e)t=new v;else if("p192"===e)t=new w;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new _}return m[e]=t,t},I.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},I.prototype._verify2=function(e,t){r(!(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},I.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},I.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},I.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},I.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},I.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},I.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},I.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},I.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},I.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},I.prototype.isqr=function(e){return this.imul(e,e.clone())},I.prototype.sqr=function(e){return this.mul(e,e)},I.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var n=this.m.add(new o(1)).iushrn(2);return this.pow(e,n)}for(var i=this.m.subn(1),a=0;!i.isZero()&&0===i.andln(1);)a++,i.iushrn(1);r(!i.isZero());var s=new o(1).toRed(this),c=s.redNeg(),u=this.m.subn(1).iushrn(1),l=this.m.bitLength();for(l=new o(2*l*l).toRed(this);0!==this.pow(l,u).cmp(c);)l.redIAdd(c);for(var d=this.pow(l,i),f=this.pow(e,i.addn(1).iushrn(1)),h=this.pow(e,i),p=a;0!==h.cmp(s);){for(var y=h,m=0;0!==y.cmp(s);m++)y=y.redSqr();r(m=0;n--){for(var u=t.words[n],l=c-1;l>=0;l--){var d=u>>l&1;i!==r[0]&&(i=this.sqr(i)),0!==d||0!==a?(a<<=1,a|=d,(4===++s||0===n&&0===l)&&(i=this.mul(i,r[a]),s=0,a=0)):s=0}c=26}return i},I.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},I.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},o.mont=function(e){return new T(e)},n(T,I),T.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},T.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},T.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=r.isub(n).iushrn(this.shift),i=o;return o.cmp(this.m)>=0?i=o.isub(this.m):o.cmpn(0)<0&&(i=o.iadd(this.m)),i._forceRed(this)},T.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new o(0)._forceRed(this);var r=e.mul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},T.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e,commonjsGlobal)}(bn$7)),bn$7.exports}bn$7.exports;var api$1={},vmBrowserify={},hasRequiredVmBrowserify,hasRequiredApi;function requireVmBrowserify(){return hasRequiredVmBrowserify||(hasRequiredVmBrowserify=1,function(exports){var indexOf=function(e,t){if(e.indexOf)return e.indexOf(t);for(var r=0;r>6],i=!(32&r);if(31&~r)r&=31;else{var a=r;for(r=0;!(128&~a);){if(a=e.readUInt8(t),e.isError(a))return a;r<<=7,r|=127&a}}return{cls:n,primitive:i,tag:r,tagStr:o.tag[r]}}function c(e,t,r){var n=e.readUInt8(r);if(e.isError(n))return n;if(!t&&128===n)return null;if(!(128&n))return n;var o=127&n;if(o>4)return e.error("length octect is too long");n=0;for(var i=0;i=31)return n.error("Multi-octet tag encoding unsupported");t||(i|=32);return i|=o.tagClassByName[r||"universal"]<<6,i}(e,r,n,this.reporter);if(i.length<128)return(a=new t(2))[0]=s,a[1]=i.length,this._createEncoderBuffer([a,i]);for(var c=1,u=i.length;u>=256;u>>=8)c++;(a=new t(2+c))[0]=s,a[1]=128|c;u=1+c;for(var l=i.length;l>0;u--,l>>=8)a[u]=255&l;return this._createEncoderBuffer([a,i])},a.prototype._encodeStr=function(e,r){if("bitstr"===r)return this._createEncoderBuffer([0|e.unused,e.data]);if("bmpstr"===r){for(var n=new t(2*e.length),o=0;o=40)return this.reporter.error("Second objid identifier OOB");e.splice(0,2,40*e[0]+e[1])}var i=0;for(o=0;o=128;a>>=7)i++}var s=new t(i),c=s.length-1;for(o=e.length-1;o>=0;o--){a=e[o];for(s[c--]=127&a;(a>>=7)>0;)s[c--]=128|127&a}return this._createEncoderBuffer(s)},a.prototype._encodeTime=function(e,t){var r,n=new Date(e);return"gentime"===t?r=[s(n.getFullYear()),s(n.getUTCMonth()+1),s(n.getUTCDate()),s(n.getUTCHours()),s(n.getUTCMinutes()),s(n.getUTCSeconds()),"Z"].join(""):"utctime"===t?r=[s(n.getFullYear()%100),s(n.getUTCMonth()+1),s(n.getUTCDate()),s(n.getUTCHours()),s(n.getUTCMinutes()),s(n.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+t+" time is not supported yet"),this._encodeStr(r,"octstr")},a.prototype._encodeNull=function(){return this._createEncoderBuffer("")},a.prototype._encodeInt=function(e,r){if("string"==typeof e){if(!r)return this.reporter.error("String int or enum given, but no values map");if(!r.hasOwnProperty(e))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(e));e=r[e]}if("number"!=typeof e&&!t.isBuffer(e)){var n=e.toArray();!e.sign&&128&n[0]&&n.unshift(0),e=new t(n)}if(t.isBuffer(e)){var o=e.length;0===e.length&&o++;var i=new t(o);return e.copy(i),0===e.length&&(i[0]=0),this._createEncoderBuffer(i)}if(e<128)return this._createEncoderBuffer(e);if(e<256)return this._createEncoderBuffer([0,e]);o=1;for(var a=e;a>=256;a>>=8)o++;for(a=(i=new Array(o)).length-1;a>=0;a--)i[a]=255&e,e>>=8;return 128&i[0]&&i.unshift(0),this._createEncoderBuffer(new t(i))},a.prototype._encodeBool=function(e){return this._createEncoderBuffer(e?255:0)},a.prototype._use=function(e,t){return"function"==typeof e&&(e=e(t)),e._getEncoder("der").tree},a.prototype._skipDefault=function(e,t,r){var n,o=this._baseState;if(null===o.default)return!1;var i=e.join();if(void 0===o.defaultBuffer&&(o.defaultBuffer=this._encodeValue(o.default,t,r).join()),i.length!==o.defaultBuffer.length)return!1;for(n=0;n0&&r.ishrn(n),r}function u(r,n,o){var i,a;do{for(i=e.alloc(0);8*i.length=0)throw new Error("invalid sig")}return verify_1=function(a,s,c,u,l){var d=n(c);if("ec"===d.type){if("ecdsa"!==u&&"ecdsa/rsa"!==u)throw new Error("wrong public key type");return function(e,t,n){var i=o[n.data.algorithm.curve.join(".")];if(!i)throw new Error("unknown curve "+n.data.algorithm.curve.join("."));var a=new r(i),s=n.data.subjectPrivateKey.data;return a.verify(t,e,s)}(a,s,d)}if("dsa"===d.type){if("dsa"!==u)throw new Error("wrong public key type");return function(e,r,o){var a=o.data.p,s=o.data.q,c=o.data.g,u=o.data.pub_key,l=n.signature.decode(e,"der"),d=l.s,f=l.r;i(d,s),i(f,s);var h=t.mont(a),p=d.invm(s),y=c.toRed(h).redPow(new t(r).mul(p).mod(s)).fromRed().mul(u.toRed(h).redPow(f.mul(p).mod(s)).fromRed()).mod(a).mod(s);return 0===y.cmp(f)}(a,s,d)}if("rsa"!==u&&"ecdsa/rsa"!==u)throw new Error("wrong public key type");s=e.concat([l,s]);for(var f=d.modulus.byteLength(),h=[1],p=0;s.length+h.length+2",license$2="MIT",bugs$2={url:"https://github.com/indutny/elliptic/issues"},homepage$2="https://github.com/indutny/elliptic",devDependencies$2={brfs:"^2.0.2",coveralls:"^3.1.0",eslint:"^7.6.0",grunt:"^1.2.1","grunt-browserify":"^5.3.0","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^5.0.0","grunt-mocha-istanbul":"^5.0.2","grunt-saucelabs":"^9.0.1",istanbul:"^0.4.5",mocha:"^8.0.1"},dependencies$2={"bn.js":"^4.11.9",brorand:"^1.1.0","hash.js":"^1.0.0","hmac-drbg":"^1.0.1",inherits:"^2.0.4","minimalistic-assert":"^1.0.1","minimalistic-crypto-utils":"^1.0.1"},require$$0$5={name:name$2,version:version$c,description:description$2,main:main$2,files:files$2,scripts:scripts$2,repository:repository$2,keywords:keywords$2,author:author$2,license:license$2,bugs:bugs$2,homepage:homepage$2,devDependencies:devDependencies$2,dependencies:dependencies$2};var utils$C={},bn$6={exports:{}};bn$6.exports,function(e){!function(e,t){function r(e,t){if(!e)throw new Error(t||"Assertion failed")}function n(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}function o(e,t,r){if(o.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(r=t,t=10),this._init(e||0,t||10,r||"be"))}var i;"object"==typeof e?e.exports=o:t.BN=o,o.BN=o,o.wordSize=26;try{i="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:require$$2$1.Buffer}catch(e2){}function a(e,t){var r=e.charCodeAt(t);return r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:r-48&15}function s(e,t,r){var n=a(e,r);return r-1>=t&&(n|=a(e,r-1)<<4),n}function c(e,t,r,n){for(var o=0,i=Math.min(e.length,r),a=t;a=49?s-49+10:s>=17?s-17+10:s}return o}o.isBN=function(e){return e instanceof o||null!==e&&"object"==typeof e&&e.constructor.wordSize===o.wordSize&&Array.isArray(e.words)},o.max=function(e,t){return e.cmp(t)>0?e:t},o.min=function(e,t){return e.cmp(t)<0?e:t},o.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),r(t===(0|t)&&t>=2&&t<=36);var o=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(o++,this.negative=1),o=0;o-=3)a=e[o]|e[o-1]<<8|e[o-2]<<16,this.words[i]|=a<>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);else if("le"===n)for(o=0,i=0;o>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);return this.strip()},o.prototype._parseHex=function(e,t,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var n=0;n=t;n-=2)o=s(e,t,n)<=18?(i-=18,a+=1,this.words[a]|=o>>>26):i+=8;else for(n=(e.length-t)%2==0?t+1:t;n=18?(i-=18,a+=1,this.words[a]|=o>>>26):i+=8;this.strip()},o.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var n=0,o=1;o<=67108863;o*=t)n++;n--,o=o/t|0;for(var i=e.length-r,a=i%n,s=Math.min(i,i-a)+r,u=0,l=r;l1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?""};var u=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],l=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],d=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function f(e,t,r){r.negative=t.negative^e.negative;var n=e.length+t.length|0;r.length=n,n=n-1|0;var o=0|e.words[0],i=0|t.words[0],a=o*i,s=67108863&a,c=a/67108864|0;r.words[0]=s;for(var u=1;u>>26,d=67108863&c,f=Math.min(u,t.length-1),h=Math.max(0,u-e.length+1);h<=f;h++){var p=u-h|0;l+=(a=(o=0|e.words[p])*(i=0|t.words[h])+d)/67108864|0,d=67108863&a}r.words[u]=0|d,c=0|l}return 0!==c?r.words[u]=0|c:r.length--,r.strip()}o.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var o=0,i=0,a=0;a>>24-o&16777215,(o+=2)>=26&&(o-=26,a--),n=0!==i||a!==this.length-1?u[6-c.length]+c+n:c+n}for(0!==i&&(n=i.toString(16)+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var f=l[e],h=d[e];n="";var p=this.clone();for(p.negative=0;!p.isZero();){var y=p.modn(h).toString(e);n=(p=p.idivn(h)).isZero()?y+n:u[f-y.length]+y+n}for(this.isZero()&&(n="0"+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(e,t){return r(void 0!==i),this.toArrayLike(i,e,t)},o.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},o.prototype.toArrayLike=function(e,t,n){var o=this.byteLength(),i=n||Math.max(1,o);r(o<=i,"byte array longer than desired length"),r(i>0,"Requested array length <= 0"),this.strip();var a,s,c="le"===t,u=new e(i),l=this.clone();if(c){for(s=0;!l.isZero();s++)a=l.andln(255),l.iushrn(8),u[s]=a;for(;s=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},o.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 8191&t||(r+=13,t>>>=13),127&t||(r+=7,t>>>=7),15&t||(r+=4,t>>>=4),3&t||(r+=2,t>>>=2),1&t||r++,r},o.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},o.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},o.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;re.length?this.clone().iand(e):e.clone().iand(this)},o.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},o.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var n=0;ne.length?this.clone().ixor(e):e.clone().ixor(this)},o.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},o.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var o=0;o0&&(this.words[o]=~this.words[o]&67108863>>26-n),this.strip()},o.prototype.notn=function(e){return this.clone().inotn(e)},o.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var n=e/26|0,o=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<e.length?(r=this,n=e):(r=e,n=this);for(var o=0,i=0;i>>26;for(;0!==o&&i>>26;if(this.length=r.length,0!==o)this.words[this.length]=o,this.length++;else if(r!==this)for(;ie.length?this.clone().iadd(e):e.clone().iadd(this)},o.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,n,o=this.cmp(e);if(0===o)return this.negative=0,this.length=1,this.words[0]=0,this;o>0?(r=this,n=e):(r=e,n=this);for(var i=0,a=0;a>26,this.words[a]=67108863&t;for(;0!==i&&a>26,this.words[a]=67108863&t;if(0===i&&a>>13,h=0|a[1],p=8191&h,y=h>>>13,m=0|a[2],g=8191&m,b=m>>>13,v=0|a[3],w=8191&v,_=v>>>13,I=0|a[4],T=8191&I,k=I>>>13,$=0|a[5],S=8191&$,A=$>>>13,E=0|a[6],C=8191&E,R=E>>>13,O=0|a[7],N=8191&O,P=O>>>13,M=0|a[8],B=8191&M,D=M>>>13,x=0|a[9],L=8191&x,U=x>>>13,j=0|s[0],F=8191&j,q=j>>>13,K=0|s[1],H=8191&K,G=K>>>13,z=0|s[2],V=8191&z,W=z>>>13,Q=0|s[3],Y=8191&Q,X=Q>>>13,J=0|s[4],Z=8191&J,ee=J>>>13,te=0|s[5],re=8191&te,ne=te>>>13,oe=0|s[6],ie=8191&oe,ae=oe>>>13,se=0|s[7],ce=8191&se,ue=se>>>13,le=0|s[8],de=8191&le,fe=le>>>13,he=0|s[9],pe=8191&he,ye=he>>>13;r.negative=e.negative^t.negative,r.length=19;var me=(u+(n=Math.imul(d,F))|0)+((8191&(o=(o=Math.imul(d,q))+Math.imul(f,F)|0))<<13)|0;u=((i=Math.imul(f,q))+(o>>>13)|0)+(me>>>26)|0,me&=67108863,n=Math.imul(p,F),o=(o=Math.imul(p,q))+Math.imul(y,F)|0,i=Math.imul(y,q);var ge=(u+(n=n+Math.imul(d,H)|0)|0)+((8191&(o=(o=o+Math.imul(d,G)|0)+Math.imul(f,H)|0))<<13)|0;u=((i=i+Math.imul(f,G)|0)+(o>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(g,F),o=(o=Math.imul(g,q))+Math.imul(b,F)|0,i=Math.imul(b,q),n=n+Math.imul(p,H)|0,o=(o=o+Math.imul(p,G)|0)+Math.imul(y,H)|0,i=i+Math.imul(y,G)|0;var be=(u+(n=n+Math.imul(d,V)|0)|0)+((8191&(o=(o=o+Math.imul(d,W)|0)+Math.imul(f,V)|0))<<13)|0;u=((i=i+Math.imul(f,W)|0)+(o>>>13)|0)+(be>>>26)|0,be&=67108863,n=Math.imul(w,F),o=(o=Math.imul(w,q))+Math.imul(_,F)|0,i=Math.imul(_,q),n=n+Math.imul(g,H)|0,o=(o=o+Math.imul(g,G)|0)+Math.imul(b,H)|0,i=i+Math.imul(b,G)|0,n=n+Math.imul(p,V)|0,o=(o=o+Math.imul(p,W)|0)+Math.imul(y,V)|0,i=i+Math.imul(y,W)|0;var ve=(u+(n=n+Math.imul(d,Y)|0)|0)+((8191&(o=(o=o+Math.imul(d,X)|0)+Math.imul(f,Y)|0))<<13)|0;u=((i=i+Math.imul(f,X)|0)+(o>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(T,F),o=(o=Math.imul(T,q))+Math.imul(k,F)|0,i=Math.imul(k,q),n=n+Math.imul(w,H)|0,o=(o=o+Math.imul(w,G)|0)+Math.imul(_,H)|0,i=i+Math.imul(_,G)|0,n=n+Math.imul(g,V)|0,o=(o=o+Math.imul(g,W)|0)+Math.imul(b,V)|0,i=i+Math.imul(b,W)|0,n=n+Math.imul(p,Y)|0,o=(o=o+Math.imul(p,X)|0)+Math.imul(y,Y)|0,i=i+Math.imul(y,X)|0;var we=(u+(n=n+Math.imul(d,Z)|0)|0)+((8191&(o=(o=o+Math.imul(d,ee)|0)+Math.imul(f,Z)|0))<<13)|0;u=((i=i+Math.imul(f,ee)|0)+(o>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(S,F),o=(o=Math.imul(S,q))+Math.imul(A,F)|0,i=Math.imul(A,q),n=n+Math.imul(T,H)|0,o=(o=o+Math.imul(T,G)|0)+Math.imul(k,H)|0,i=i+Math.imul(k,G)|0,n=n+Math.imul(w,V)|0,o=(o=o+Math.imul(w,W)|0)+Math.imul(_,V)|0,i=i+Math.imul(_,W)|0,n=n+Math.imul(g,Y)|0,o=(o=o+Math.imul(g,X)|0)+Math.imul(b,Y)|0,i=i+Math.imul(b,X)|0,n=n+Math.imul(p,Z)|0,o=(o=o+Math.imul(p,ee)|0)+Math.imul(y,Z)|0,i=i+Math.imul(y,ee)|0;var _e=(u+(n=n+Math.imul(d,re)|0)|0)+((8191&(o=(o=o+Math.imul(d,ne)|0)+Math.imul(f,re)|0))<<13)|0;u=((i=i+Math.imul(f,ne)|0)+(o>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(C,F),o=(o=Math.imul(C,q))+Math.imul(R,F)|0,i=Math.imul(R,q),n=n+Math.imul(S,H)|0,o=(o=o+Math.imul(S,G)|0)+Math.imul(A,H)|0,i=i+Math.imul(A,G)|0,n=n+Math.imul(T,V)|0,o=(o=o+Math.imul(T,W)|0)+Math.imul(k,V)|0,i=i+Math.imul(k,W)|0,n=n+Math.imul(w,Y)|0,o=(o=o+Math.imul(w,X)|0)+Math.imul(_,Y)|0,i=i+Math.imul(_,X)|0,n=n+Math.imul(g,Z)|0,o=(o=o+Math.imul(g,ee)|0)+Math.imul(b,Z)|0,i=i+Math.imul(b,ee)|0,n=n+Math.imul(p,re)|0,o=(o=o+Math.imul(p,ne)|0)+Math.imul(y,re)|0,i=i+Math.imul(y,ne)|0;var Ie=(u+(n=n+Math.imul(d,ie)|0)|0)+((8191&(o=(o=o+Math.imul(d,ae)|0)+Math.imul(f,ie)|0))<<13)|0;u=((i=i+Math.imul(f,ae)|0)+(o>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,n=Math.imul(N,F),o=(o=Math.imul(N,q))+Math.imul(P,F)|0,i=Math.imul(P,q),n=n+Math.imul(C,H)|0,o=(o=o+Math.imul(C,G)|0)+Math.imul(R,H)|0,i=i+Math.imul(R,G)|0,n=n+Math.imul(S,V)|0,o=(o=o+Math.imul(S,W)|0)+Math.imul(A,V)|0,i=i+Math.imul(A,W)|0,n=n+Math.imul(T,Y)|0,o=(o=o+Math.imul(T,X)|0)+Math.imul(k,Y)|0,i=i+Math.imul(k,X)|0,n=n+Math.imul(w,Z)|0,o=(o=o+Math.imul(w,ee)|0)+Math.imul(_,Z)|0,i=i+Math.imul(_,ee)|0,n=n+Math.imul(g,re)|0,o=(o=o+Math.imul(g,ne)|0)+Math.imul(b,re)|0,i=i+Math.imul(b,ne)|0,n=n+Math.imul(p,ie)|0,o=(o=o+Math.imul(p,ae)|0)+Math.imul(y,ie)|0,i=i+Math.imul(y,ae)|0;var Te=(u+(n=n+Math.imul(d,ce)|0)|0)+((8191&(o=(o=o+Math.imul(d,ue)|0)+Math.imul(f,ce)|0))<<13)|0;u=((i=i+Math.imul(f,ue)|0)+(o>>>13)|0)+(Te>>>26)|0,Te&=67108863,n=Math.imul(B,F),o=(o=Math.imul(B,q))+Math.imul(D,F)|0,i=Math.imul(D,q),n=n+Math.imul(N,H)|0,o=(o=o+Math.imul(N,G)|0)+Math.imul(P,H)|0,i=i+Math.imul(P,G)|0,n=n+Math.imul(C,V)|0,o=(o=o+Math.imul(C,W)|0)+Math.imul(R,V)|0,i=i+Math.imul(R,W)|0,n=n+Math.imul(S,Y)|0,o=(o=o+Math.imul(S,X)|0)+Math.imul(A,Y)|0,i=i+Math.imul(A,X)|0,n=n+Math.imul(T,Z)|0,o=(o=o+Math.imul(T,ee)|0)+Math.imul(k,Z)|0,i=i+Math.imul(k,ee)|0,n=n+Math.imul(w,re)|0,o=(o=o+Math.imul(w,ne)|0)+Math.imul(_,re)|0,i=i+Math.imul(_,ne)|0,n=n+Math.imul(g,ie)|0,o=(o=o+Math.imul(g,ae)|0)+Math.imul(b,ie)|0,i=i+Math.imul(b,ae)|0,n=n+Math.imul(p,ce)|0,o=(o=o+Math.imul(p,ue)|0)+Math.imul(y,ce)|0,i=i+Math.imul(y,ue)|0;var ke=(u+(n=n+Math.imul(d,de)|0)|0)+((8191&(o=(o=o+Math.imul(d,fe)|0)+Math.imul(f,de)|0))<<13)|0;u=((i=i+Math.imul(f,fe)|0)+(o>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(L,F),o=(o=Math.imul(L,q))+Math.imul(U,F)|0,i=Math.imul(U,q),n=n+Math.imul(B,H)|0,o=(o=o+Math.imul(B,G)|0)+Math.imul(D,H)|0,i=i+Math.imul(D,G)|0,n=n+Math.imul(N,V)|0,o=(o=o+Math.imul(N,W)|0)+Math.imul(P,V)|0,i=i+Math.imul(P,W)|0,n=n+Math.imul(C,Y)|0,o=(o=o+Math.imul(C,X)|0)+Math.imul(R,Y)|0,i=i+Math.imul(R,X)|0,n=n+Math.imul(S,Z)|0,o=(o=o+Math.imul(S,ee)|0)+Math.imul(A,Z)|0,i=i+Math.imul(A,ee)|0,n=n+Math.imul(T,re)|0,o=(o=o+Math.imul(T,ne)|0)+Math.imul(k,re)|0,i=i+Math.imul(k,ne)|0,n=n+Math.imul(w,ie)|0,o=(o=o+Math.imul(w,ae)|0)+Math.imul(_,ie)|0,i=i+Math.imul(_,ae)|0,n=n+Math.imul(g,ce)|0,o=(o=o+Math.imul(g,ue)|0)+Math.imul(b,ce)|0,i=i+Math.imul(b,ue)|0,n=n+Math.imul(p,de)|0,o=(o=o+Math.imul(p,fe)|0)+Math.imul(y,de)|0,i=i+Math.imul(y,fe)|0;var $e=(u+(n=n+Math.imul(d,pe)|0)|0)+((8191&(o=(o=o+Math.imul(d,ye)|0)+Math.imul(f,pe)|0))<<13)|0;u=((i=i+Math.imul(f,ye)|0)+(o>>>13)|0)+($e>>>26)|0,$e&=67108863,n=Math.imul(L,H),o=(o=Math.imul(L,G))+Math.imul(U,H)|0,i=Math.imul(U,G),n=n+Math.imul(B,V)|0,o=(o=o+Math.imul(B,W)|0)+Math.imul(D,V)|0,i=i+Math.imul(D,W)|0,n=n+Math.imul(N,Y)|0,o=(o=o+Math.imul(N,X)|0)+Math.imul(P,Y)|0,i=i+Math.imul(P,X)|0,n=n+Math.imul(C,Z)|0,o=(o=o+Math.imul(C,ee)|0)+Math.imul(R,Z)|0,i=i+Math.imul(R,ee)|0,n=n+Math.imul(S,re)|0,o=(o=o+Math.imul(S,ne)|0)+Math.imul(A,re)|0,i=i+Math.imul(A,ne)|0,n=n+Math.imul(T,ie)|0,o=(o=o+Math.imul(T,ae)|0)+Math.imul(k,ie)|0,i=i+Math.imul(k,ae)|0,n=n+Math.imul(w,ce)|0,o=(o=o+Math.imul(w,ue)|0)+Math.imul(_,ce)|0,i=i+Math.imul(_,ue)|0,n=n+Math.imul(g,de)|0,o=(o=o+Math.imul(g,fe)|0)+Math.imul(b,de)|0,i=i+Math.imul(b,fe)|0;var Se=(u+(n=n+Math.imul(p,pe)|0)|0)+((8191&(o=(o=o+Math.imul(p,ye)|0)+Math.imul(y,pe)|0))<<13)|0;u=((i=i+Math.imul(y,ye)|0)+(o>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(L,V),o=(o=Math.imul(L,W))+Math.imul(U,V)|0,i=Math.imul(U,W),n=n+Math.imul(B,Y)|0,o=(o=o+Math.imul(B,X)|0)+Math.imul(D,Y)|0,i=i+Math.imul(D,X)|0,n=n+Math.imul(N,Z)|0,o=(o=o+Math.imul(N,ee)|0)+Math.imul(P,Z)|0,i=i+Math.imul(P,ee)|0,n=n+Math.imul(C,re)|0,o=(o=o+Math.imul(C,ne)|0)+Math.imul(R,re)|0,i=i+Math.imul(R,ne)|0,n=n+Math.imul(S,ie)|0,o=(o=o+Math.imul(S,ae)|0)+Math.imul(A,ie)|0,i=i+Math.imul(A,ae)|0,n=n+Math.imul(T,ce)|0,o=(o=o+Math.imul(T,ue)|0)+Math.imul(k,ce)|0,i=i+Math.imul(k,ue)|0,n=n+Math.imul(w,de)|0,o=(o=o+Math.imul(w,fe)|0)+Math.imul(_,de)|0,i=i+Math.imul(_,fe)|0;var Ae=(u+(n=n+Math.imul(g,pe)|0)|0)+((8191&(o=(o=o+Math.imul(g,ye)|0)+Math.imul(b,pe)|0))<<13)|0;u=((i=i+Math.imul(b,ye)|0)+(o>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(L,Y),o=(o=Math.imul(L,X))+Math.imul(U,Y)|0,i=Math.imul(U,X),n=n+Math.imul(B,Z)|0,o=(o=o+Math.imul(B,ee)|0)+Math.imul(D,Z)|0,i=i+Math.imul(D,ee)|0,n=n+Math.imul(N,re)|0,o=(o=o+Math.imul(N,ne)|0)+Math.imul(P,re)|0,i=i+Math.imul(P,ne)|0,n=n+Math.imul(C,ie)|0,o=(o=o+Math.imul(C,ae)|0)+Math.imul(R,ie)|0,i=i+Math.imul(R,ae)|0,n=n+Math.imul(S,ce)|0,o=(o=o+Math.imul(S,ue)|0)+Math.imul(A,ce)|0,i=i+Math.imul(A,ue)|0,n=n+Math.imul(T,de)|0,o=(o=o+Math.imul(T,fe)|0)+Math.imul(k,de)|0,i=i+Math.imul(k,fe)|0;var Ee=(u+(n=n+Math.imul(w,pe)|0)|0)+((8191&(o=(o=o+Math.imul(w,ye)|0)+Math.imul(_,pe)|0))<<13)|0;u=((i=i+Math.imul(_,ye)|0)+(o>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(L,Z),o=(o=Math.imul(L,ee))+Math.imul(U,Z)|0,i=Math.imul(U,ee),n=n+Math.imul(B,re)|0,o=(o=o+Math.imul(B,ne)|0)+Math.imul(D,re)|0,i=i+Math.imul(D,ne)|0,n=n+Math.imul(N,ie)|0,o=(o=o+Math.imul(N,ae)|0)+Math.imul(P,ie)|0,i=i+Math.imul(P,ae)|0,n=n+Math.imul(C,ce)|0,o=(o=o+Math.imul(C,ue)|0)+Math.imul(R,ce)|0,i=i+Math.imul(R,ue)|0,n=n+Math.imul(S,de)|0,o=(o=o+Math.imul(S,fe)|0)+Math.imul(A,de)|0,i=i+Math.imul(A,fe)|0;var Ce=(u+(n=n+Math.imul(T,pe)|0)|0)+((8191&(o=(o=o+Math.imul(T,ye)|0)+Math.imul(k,pe)|0))<<13)|0;u=((i=i+Math.imul(k,ye)|0)+(o>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,n=Math.imul(L,re),o=(o=Math.imul(L,ne))+Math.imul(U,re)|0,i=Math.imul(U,ne),n=n+Math.imul(B,ie)|0,o=(o=o+Math.imul(B,ae)|0)+Math.imul(D,ie)|0,i=i+Math.imul(D,ae)|0,n=n+Math.imul(N,ce)|0,o=(o=o+Math.imul(N,ue)|0)+Math.imul(P,ce)|0,i=i+Math.imul(P,ue)|0,n=n+Math.imul(C,de)|0,o=(o=o+Math.imul(C,fe)|0)+Math.imul(R,de)|0,i=i+Math.imul(R,fe)|0;var Re=(u+(n=n+Math.imul(S,pe)|0)|0)+((8191&(o=(o=o+Math.imul(S,ye)|0)+Math.imul(A,pe)|0))<<13)|0;u=((i=i+Math.imul(A,ye)|0)+(o>>>13)|0)+(Re>>>26)|0,Re&=67108863,n=Math.imul(L,ie),o=(o=Math.imul(L,ae))+Math.imul(U,ie)|0,i=Math.imul(U,ae),n=n+Math.imul(B,ce)|0,o=(o=o+Math.imul(B,ue)|0)+Math.imul(D,ce)|0,i=i+Math.imul(D,ue)|0,n=n+Math.imul(N,de)|0,o=(o=o+Math.imul(N,fe)|0)+Math.imul(P,de)|0,i=i+Math.imul(P,fe)|0;var Oe=(u+(n=n+Math.imul(C,pe)|0)|0)+((8191&(o=(o=o+Math.imul(C,ye)|0)+Math.imul(R,pe)|0))<<13)|0;u=((i=i+Math.imul(R,ye)|0)+(o>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,n=Math.imul(L,ce),o=(o=Math.imul(L,ue))+Math.imul(U,ce)|0,i=Math.imul(U,ue),n=n+Math.imul(B,de)|0,o=(o=o+Math.imul(B,fe)|0)+Math.imul(D,de)|0,i=i+Math.imul(D,fe)|0;var Ne=(u+(n=n+Math.imul(N,pe)|0)|0)+((8191&(o=(o=o+Math.imul(N,ye)|0)+Math.imul(P,pe)|0))<<13)|0;u=((i=i+Math.imul(P,ye)|0)+(o>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,n=Math.imul(L,de),o=(o=Math.imul(L,fe))+Math.imul(U,de)|0,i=Math.imul(U,fe);var Pe=(u+(n=n+Math.imul(B,pe)|0)|0)+((8191&(o=(o=o+Math.imul(B,ye)|0)+Math.imul(D,pe)|0))<<13)|0;u=((i=i+Math.imul(D,ye)|0)+(o>>>13)|0)+(Pe>>>26)|0,Pe&=67108863;var Me=(u+(n=Math.imul(L,pe))|0)+((8191&(o=(o=Math.imul(L,ye))+Math.imul(U,pe)|0))<<13)|0;return u=((i=Math.imul(U,ye))+(o>>>13)|0)+(Me>>>26)|0,Me&=67108863,c[0]=me,c[1]=ge,c[2]=be,c[3]=ve,c[4]=we,c[5]=_e,c[6]=Ie,c[7]=Te,c[8]=ke,c[9]=$e,c[10]=Se,c[11]=Ae,c[12]=Ee,c[13]=Ce,c[14]=Re,c[15]=Oe,c[16]=Ne,c[17]=Pe,c[18]=Me,0!==u&&(c[19]=u,r.length++),r};function p(e,t,r){return(new y).mulp(e,t,r)}function y(e,t){this.x=e,this.y=t}Math.imul||(h=f),o.prototype.mulTo=function(e,t){var r,n=this.length+e.length;return r=10===this.length&&10===e.length?h(this,e,t):n<63?f(this,e,t):n<1024?function(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var n=0,o=0,i=0;i>>26)|0)>>>26,a&=67108863}r.words[i]=s,n=a,a=o}return 0!==n?r.words[i]=n:r.length--,r.strip()}(this,e,t):p(this,e,t),r},y.prototype.makeRBT=function(e){for(var t=new Array(e),r=o.prototype._countBits(e)-1,n=0;n>=1;return n},y.prototype.permute=function(e,t,r,n,o,i){for(var a=0;a>>=1)o++;return 1<>>=13,n[2*a+1]=8191&i,i>>>=13;for(a=2*t;a>=26,t+=o/67108864|0,t+=i>>>26,this.words[n]=67108863&i}return 0!==t&&(this.words[n]=t,this.length++),this},o.prototype.muln=function(e){return this.clone().imuln(e)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r>>o}return t}(e);if(0===t.length)return new o(1);for(var r=this,n=0;n=0);var t,n=e%26,o=(e-n)/26,i=67108863>>>26-n<<26-n;if(0!==n){var a=0;for(t=0;t>>26-n}a&&(this.words[t]=a,this.length++)}if(0!==o){for(t=this.length-1;t>=0;t--)this.words[t+o]=this.words[t];for(t=0;t=0),o=t?(t-t%26)/26:0;var i=e%26,a=Math.min((e-i)/26,this.length),s=67108863^67108863>>>i<a)for(this.length-=a,u=0;u=0&&(0!==l||u>=o);u--){var d=0|this.words[u];this.words[u]=l<<26-i|d>>>i,l=d&s}return c&&0!==l&&(c.words[c.length++]=l),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(e,t,n){return r(0===this.negative),this.iushrn(e,t,n)},o.prototype.shln=function(e){return this.clone().ishln(e)},o.prototype.ushln=function(e){return this.clone().iushln(e)},o.prototype.shrn=function(e){return this.clone().ishrn(e)},o.prototype.ushrn=function(e){return this.clone().iushrn(e)},o.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26,o=1<=0);var t=e%26,n=(e-t)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==t&&n++,this.length=Math.min(n,this.length),0!==t){var o=67108863^67108863>>>t<=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},o.prototype.isubn=function(e){if(r("number"==typeof e),r(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t>26)-(c/67108864|0),this.words[o+n]=67108863&i}for(;o>26,this.words[o+n]=67108863&i;if(0===s)return this.strip();for(r(-1===s),s=0,o=0;o>26,this.words[o]=67108863&i;return this.negative=1,this.strip()},o.prototype._wordDiv=function(e,t){var r=(this.length,e.length),n=this.clone(),i=e,a=0|i.words[i.length-1];0!==(r=26-this._countBits(a))&&(i=i.ushln(r),n.iushln(r),a=0|i.words[i.length-1]);var s,c=n.length-i.length;if("mod"!==t){(s=new o(null)).length=c+1,s.words=new Array(s.length);for(var u=0;u=0;d--){var f=67108864*(0|n.words[i.length+d])+(0|n.words[i.length+d-1]);for(f=Math.min(f/a|0,67108863),n._ishlnsubmul(i,f,d);0!==n.negative;)f--,n.negative=0,n._ishlnsubmul(i,1,d),n.isZero()||(n.negative^=1);s&&(s.words[d]=f)}return s&&s.strip(),n.strip(),"div"!==t&&0!==r&&n.iushrn(r),{div:s||null,mod:n}},o.prototype.divmod=function(e,t,n){return r(!e.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===e.negative?(s=this.neg().divmod(e,t),"mod"!==t&&(i=s.div.neg()),"div"!==t&&(a=s.mod.neg(),n&&0!==a.negative&&a.iadd(e)),{div:i,mod:a}):0===this.negative&&0!==e.negative?(s=this.divmod(e.neg(),t),"mod"!==t&&(i=s.div.neg()),{div:i,mod:s.mod}):this.negative&e.negative?(s=this.neg().divmod(e.neg(),t),"div"!==t&&(a=s.mod.neg(),n&&0!==a.negative&&a.isub(e)),{div:s.div,mod:a}):e.length>this.length||this.cmp(e)<0?{div:new o(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new o(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new o(this.modn(e.words[0]))}:this._wordDiv(e,t);var i,a,s},o.prototype.div=function(e){return this.divmod(e,"div",!1).div},o.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},o.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},o.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,n=e.ushrn(1),o=e.andln(1),i=r.cmp(n);return i<0||1===o&&0===i?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},o.prototype.modn=function(e){r(e<=67108863);for(var t=(1<<26)%e,n=0,o=this.length-1;o>=0;o--)n=(t*n+(0|this.words[o]))%e;return n},o.prototype.idivn=function(e){r(e<=67108863);for(var t=0,n=this.length-1;n>=0;n--){var o=(0|this.words[n])+67108864*t;this.words[n]=o/e|0,t=o%e}return this.strip()},o.prototype.divn=function(e){return this.clone().idivn(e)},o.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i=new o(1),a=new o(0),s=new o(0),c=new o(1),u=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++u;for(var l=n.clone(),d=t.clone();!t.isZero();){for(var f=0,h=1;!(t.words[0]&h)&&f<26;++f,h<<=1);if(f>0)for(t.iushrn(f);f-- >0;)(i.isOdd()||a.isOdd())&&(i.iadd(l),a.isub(d)),i.iushrn(1),a.iushrn(1);for(var p=0,y=1;!(n.words[0]&y)&&p<26;++p,y<<=1);if(p>0)for(n.iushrn(p);p-- >0;)(s.isOdd()||c.isOdd())&&(s.iadd(l),c.isub(d)),s.iushrn(1),c.iushrn(1);t.cmp(n)>=0?(t.isub(n),i.isub(s),a.isub(c)):(n.isub(t),s.isub(i),c.isub(a))}return{a:s,b:c,gcd:n.iushln(u)}},o.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i,a=new o(1),s=new o(0),c=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var u=0,l=1;!(t.words[0]&l)&&u<26;++u,l<<=1);if(u>0)for(t.iushrn(u);u-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);for(var d=0,f=1;!(n.words[0]&f)&&d<26;++d,f<<=1);if(d>0)for(n.iushrn(d);d-- >0;)s.isOdd()&&s.iadd(c),s.iushrn(1);t.cmp(n)>=0?(t.isub(n),a.isub(s)):(n.isub(t),s.isub(a))}return(i=0===t.cmpn(1)?a:s).cmpn(0)<0&&i.iadd(e),i},o.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var n=0;t.isEven()&&r.isEven();n++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var o=t.cmp(r);if(o<0){var i=t;t=r,r=i}else if(0===o||0===r.cmpn(1))break;t.isub(r)}return r.iushln(n)},o.prototype.invm=function(e){return this.egcd(e).a.umod(e)},o.prototype.isEven=function(){return!(1&this.words[0])},o.prototype.isOdd=function(){return!(1&~this.words[0])},o.prototype.andln=function(e){return this.words[0]&e},o.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,n=(e-t)/26,o=1<>>26,s&=67108863,this.words[a]=s}return 0!==i&&(this.words[a]=i,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this.strip(),this.length>1)t=1;else{n&&(e=-e),r(e<=67108863,"Number is too big");var o=0|this.words[0];t=o===e?0:oe.length)return 1;if(this.length=0;r--){var n=0|this.words[r],o=0|e.words[r];if(n!==o){no&&(t=1);break}}return t},o.prototype.gtn=function(e){return 1===this.cmpn(e)},o.prototype.gt=function(e){return 1===this.cmp(e)},o.prototype.gten=function(e){return this.cmpn(e)>=0},o.prototype.gte=function(e){return this.cmp(e)>=0},o.prototype.ltn=function(e){return-1===this.cmpn(e)},o.prototype.lt=function(e){return-1===this.cmp(e)},o.prototype.lten=function(e){return this.cmpn(e)<=0},o.prototype.lte=function(e){return this.cmp(e)<=0},o.prototype.eqn=function(e){return 0===this.cmpn(e)},o.prototype.eq=function(e){return 0===this.cmp(e)},o.red=function(e){return new I(e)},o.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},o.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(e){return this.red=e,this},o.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},o.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},o.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},o.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},o.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},o.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},o.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},o.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},o.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var m={k256:null,p224:null,p192:null,p25519:null};function g(e,t){this.name=e,this.p=new o(t,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function b(){g.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function v(){g.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function w(){g.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function _(){g.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function I(e){if("string"==typeof e){var t=o._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function T(e){I.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}g.prototype._tmp=function(){var e=new o(null);return e.words=new Array(Math.ceil(this.n/13)),e},g.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var n=t0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},g.prototype.split=function(e,t){e.iushrn(this.n,0,t)},g.prototype.imulK=function(e){return e.imul(this.k)},n(b,g),b.prototype.split=function(e,t){for(var r=4194303,n=Math.min(e.length,9),o=0;o>>22,i=a}i>>>=22,e.words[o-10]=i,0===i&&e.length>10?e.length-=10:e.length-=9},b.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r>>=26,e.words[r]=o,t=n}return 0!==t&&(e.words[e.length++]=t),e},o._prime=function(e){if(m[e])return m[e];var t;if("k256"===e)t=new b;else if("p224"===e)t=new v;else if("p192"===e)t=new w;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new _}return m[e]=t,t},I.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},I.prototype._verify2=function(e,t){r(!(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},I.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},I.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},I.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},I.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},I.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},I.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},I.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},I.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},I.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},I.prototype.isqr=function(e){return this.imul(e,e.clone())},I.prototype.sqr=function(e){return this.mul(e,e)},I.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var n=this.m.add(new o(1)).iushrn(2);return this.pow(e,n)}for(var i=this.m.subn(1),a=0;!i.isZero()&&0===i.andln(1);)a++,i.iushrn(1);r(!i.isZero());var s=new o(1).toRed(this),c=s.redNeg(),u=this.m.subn(1).iushrn(1),l=this.m.bitLength();for(l=new o(2*l*l).toRed(this);0!==this.pow(l,u).cmp(c);)l.redIAdd(c);for(var d=this.pow(l,i),f=this.pow(e,i.addn(1).iushrn(1)),h=this.pow(e,i),p=a;0!==h.cmp(s);){for(var y=h,m=0;0!==y.cmp(s);m++)y=y.redSqr();r(m=0;n--){for(var u=t.words[n],l=c-1;l>=0;l--){var d=u>>l&1;i!==r[0]&&(i=this.sqr(i)),0!==d||0!==a?(a<<=1,a|=d,(4===++s||0===n&&0===l)&&(i=this.mul(i,r[a]),s=0,a=0)):s=0}c=26}return i},I.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},I.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},o.mont=function(e){return new T(e)},n(T,I),T.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},T.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},T.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=r.isub(n).iushrn(this.shift),i=o;return o.cmp(this.m)>=0?i=o.isub(this.m):o.cmpn(0)<0&&(i=o.iadd(this.m)),i._forceRed(this)},T.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new o(0)._forceRed(this);var r=e.mul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},T.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e,commonjsGlobal)}(bn$6);var bnExports$2=bn$6.exports;!function(e){var t=e,r=bnExports$2,n=minimalisticAssert$1,o=utils$O;t.assert=n,t.toArray=o.toArray,t.zero2=o.zero2,t.toHex=o.toHex,t.encode=o.encode,t.getNAF=function(e,t,r){var n=new Array(Math.max(e.bitLength(),r)+1);n.fill(0);for(var o=1<(o>>1)-1?(o>>1)-c:c,i.isubn(s)):s=0,n[a]=s,i.iushrn(1)}return n},t.getJSF=function(e,t){var r=[[],[]];e=e.clone(),t=t.clone();for(var n,o=0,i=0;e.cmpn(-o)>0||t.cmpn(-i)>0;){var a,s,c=e.andln(3)+o&3,u=t.andln(3)+i&3;3===c&&(c=-1),3===u&&(u=-1),a=1&c?3!==(n=e.andln(7)+o&7)&&5!==n||2!==u?c:-c:0,r[0].push(a),s=1&u?3!==(n=t.andln(7)+i&7)&&5!==n||2!==c?u:-u:0,r[1].push(s),2*o===a+1&&(o=1-o),2*i===s+1&&(i=1-i),e.iushrn(1),t.iushrn(1)}return r},t.cachedProperty=function(e,t,r){var n="_"+t;e.prototype[t]=function(){return void 0!==this[n]?this[n]:this[n]=r.call(this)}},t.parseBytes=function(e){return"string"==typeof e?t.toArray(e,"hex"):e},t.intFromLE=function(e){return new r(e,"hex","le")}}(utils$C);var curve$2={},BN$n=bnExports$2,utils$B=utils$C,getNAF$3=utils$B.getNAF,getJSF$3=utils$B.getJSF,assert$q=utils$B.assert;function BaseCurve$3(e,t){this.type=e,this.p=new BN$n(t.p,16),this.red=t.prime?BN$n.red(t.prime):BN$n.mont(this.p),this.zero=new BN$n(0).toRed(this.red),this.one=new BN$n(1).toRed(this.red),this.two=new BN$n(2).toRed(this.red),this.n=t.n&&new BN$n(t.n,16),this.g=t.g&&this.pointFromJSON(t.g,t.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var r=this.n&&this.p.div(this.n);!r||r.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}var base$4=BaseCurve$3;function BasePoint$3(e,t){this.curve=e,this.type=t,this.precomputed=null}BaseCurve$3.prototype.point=function(){throw new Error("Not implemented")},BaseCurve$3.prototype.validate=function(){throw new Error("Not implemented")},BaseCurve$3.prototype._fixedNafMul=function(e,t){assert$q(e.precomputed);var r=e._getDoubles(),n=getNAF$3(t,1,this._bitLength),o=(1<=i;c--)a=(a<<1)+n[c];s.push(a)}for(var u=this.jpoint(null,null,null),l=this.jpoint(null,null,null),d=o;d>0;d--){for(i=0;i=0;s--){for(var c=0;s>=0&&0===i[s];s--)c++;if(s>=0&&c++,a=a.dblp(c),s<0)break;var u=i[s];assert$q(0!==u),a="affine"===e.type?u>0?a.mixedAdd(o[u-1>>1]):a.mixedAdd(o[-u-1>>1].neg()):u>0?a.add(o[u-1>>1]):a.add(o[-u-1>>1].neg())}return"affine"===e.type?a.toP():a},BaseCurve$3.prototype._wnafMulAdd=function(e,t,r,n,o){var i,a,s,c=this._wnafT1,u=this._wnafT2,l=this._wnafT3,d=0;for(i=0;i=1;i-=2){var h=i-1,p=i;if(1===c[h]&&1===c[p]){var y=[t[h],null,null,t[p]];0===t[h].y.cmp(t[p].y)?(y[1]=t[h].add(t[p]),y[2]=t[h].toJ().mixedAdd(t[p].neg())):0===t[h].y.cmp(t[p].y.redNeg())?(y[1]=t[h].toJ().mixedAdd(t[p]),y[2]=t[h].add(t[p].neg())):(y[1]=t[h].toJ().mixedAdd(t[p]),y[2]=t[h].toJ().mixedAdd(t[p].neg()));var m=[-3,-1,-5,-7,0,7,5,1,3],g=getJSF$3(r[h],r[p]);for(d=Math.max(g[0].length,d),l[h]=new Array(d),l[p]=new Array(d),a=0;a=0;i--){for(var I=0;i>=0;){var T=!0;for(a=0;a=0&&I++,w=w.dblp(I),i<0)break;for(a=0;a0?s=u[a][k-1>>1]:k<0&&(s=u[a][-k-1>>1].neg()),w="affine"===s.type?w.mixedAdd(s):w.add(s))}}for(i=0;i=Math.ceil((e.bitLength()+1)/t.step)},BasePoint$3.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var r=[this],n=this,o=0;o=0&&(i=t,a=r),n.negative&&(n=n.neg(),o=o.neg()),i.negative&&(i=i.neg(),a=a.neg()),[{a:n,b:o},{a:i,b:a}]},ShortCurve$3.prototype._endoSplit=function(e){var t=this.endo.basis,r=t[0],n=t[1],o=n.b.mul(e).divRound(this.n),i=r.b.neg().mul(e).divRound(this.n),a=o.mul(r.a),s=i.mul(n.a),c=o.mul(r.b),u=i.mul(n.b);return{k1:e.sub(a).sub(s),k2:c.add(u).neg()}},ShortCurve$3.prototype.pointFromX=function(e,t){(e=new BN$m(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),n=r.redSqrt();if(0!==n.redSqr().redSub(r).cmp(this.zero))throw new Error("invalid point");var o=n.fromRed().isOdd();return(t&&!o||!t&&o)&&(n=n.redNeg()),this.point(e,n)},ShortCurve$3.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,r=e.y,n=this.a.redMul(t),o=t.redSqr().redMul(t).redIAdd(n).redIAdd(this.b);return 0===r.redSqr().redISub(o).cmpn(0)},ShortCurve$3.prototype._endoWnafMulAdd=function(e,t,r){for(var n=this._endoWnafT1,o=this._endoWnafT2,i=0;i":""},Point$9.prototype.isInfinity=function(){return this.inf},Point$9.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var r=t.redSqr().redISub(this.x).redISub(e.x),n=t.redMul(this.x.redSub(r)).redISub(this.y);return this.curve.point(r,n)},Point$9.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,r=this.x.redSqr(),n=e.redInvm(),o=r.redAdd(r).redIAdd(r).redIAdd(t).redMul(n),i=o.redSqr().redISub(this.x.redAdd(this.x)),a=o.redMul(this.x.redSub(i)).redISub(this.y);return this.curve.point(i,a)},Point$9.prototype.getX=function(){return this.x.fromRed()},Point$9.prototype.getY=function(){return this.y.fromRed()},Point$9.prototype.mul=function(e){return e=new BN$m(e,16),this.isInfinity()?this:this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},Point$9.prototype.mulAdd=function(e,t,r){var n=[this,t],o=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,o):this.curve._wnafMulAdd(1,n,o,2)},Point$9.prototype.jmulAdd=function(e,t,r){var n=[this,t],o=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,o,!0):this.curve._wnafMulAdd(1,n,o,2,!0)},Point$9.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},Point$9.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var r=this.precomputed,n=function(e){return e.neg()};t.precomputed={naf:r.naf&&{wnd:r.naf.wnd,points:r.naf.points.map(n)},doubles:r.doubles&&{step:r.doubles.step,points:r.doubles.points.map(n)}}}return t},Point$9.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},inherits$9(JPoint$3,Base$8.BasePoint),ShortCurve$3.prototype.jpoint=function(e,t,r){return new JPoint$3(this,e,t,r)},JPoint$3.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),r=this.x.redMul(t),n=this.y.redMul(t).redMul(e);return this.curve.point(r,n)},JPoint$3.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},JPoint$3.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),r=this.z.redSqr(),n=this.x.redMul(t),o=e.x.redMul(r),i=this.y.redMul(t.redMul(e.z)),a=e.y.redMul(r.redMul(this.z)),s=n.redSub(o),c=i.redSub(a);if(0===s.cmpn(0))return 0!==c.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var u=s.redSqr(),l=u.redMul(s),d=n.redMul(u),f=c.redSqr().redIAdd(l).redISub(d).redISub(d),h=c.redMul(d.redISub(f)).redISub(i.redMul(l)),p=this.z.redMul(e.z).redMul(s);return this.curve.jpoint(f,h,p)},JPoint$3.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),r=this.x,n=e.x.redMul(t),o=this.y,i=e.y.redMul(t).redMul(this.z),a=r.redSub(n),s=o.redSub(i);if(0===a.cmpn(0))return 0!==s.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var c=a.redSqr(),u=c.redMul(a),l=r.redMul(c),d=s.redSqr().redIAdd(u).redISub(l).redISub(l),f=s.redMul(l.redISub(d)).redISub(o.redMul(u)),h=this.z.redMul(a);return this.curve.jpoint(d,f,h)},JPoint$3.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();var t;if(this.curve.zeroA||this.curve.threeA){var r=this;for(t=0;t=0)return!1;if(r.redIAdd(o),0===this.x.cmp(r))return!0}},JPoint$3.prototype.inspect=function(){return this.isInfinity()?"":""},JPoint$3.prototype.isInfinity=function(){return 0===this.z.cmpn(0)};var BN$l=bnExports$2,inherits$8=inherits_browserExports,Base$7=base$4,utils$z=utils$C;function MontCurve$2(e){Base$7.call(this,"mont",e),this.a=new BN$l(e.a,16).toRed(this.red),this.b=new BN$l(e.b,16).toRed(this.red),this.i4=new BN$l(4).toRed(this.red).redInvm(),this.two=new BN$l(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}inherits$8(MontCurve$2,Base$7);var mont$2=MontCurve$2;function Point$8(e,t,r){Base$7.BasePoint.call(this,e,"projective"),null===t&&null===r?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new BN$l(t,16),this.z=new BN$l(r,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}MontCurve$2.prototype.validate=function(e){var t=e.normalize().x,r=t.redSqr(),n=r.redMul(t).redAdd(r.redMul(this.a)).redAdd(t);return 0===n.redSqrt().redSqr().cmp(n)},inherits$8(Point$8,Base$7.BasePoint),MontCurve$2.prototype.decodePoint=function(e,t){return this.point(utils$z.toArray(e,t),1)},MontCurve$2.prototype.point=function(e,t){return new Point$8(this,e,t)},MontCurve$2.prototype.pointFromJSON=function(e){return Point$8.fromJSON(this,e)},Point$8.prototype.precompute=function(){},Point$8.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},Point$8.fromJSON=function(e,t){return new Point$8(e,t[0],t[1]||e.one)},Point$8.prototype.inspect=function(){return this.isInfinity()?"":""},Point$8.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},Point$8.prototype.dbl=function(){var e=this.x.redAdd(this.z).redSqr(),t=this.x.redSub(this.z).redSqr(),r=e.redSub(t),n=e.redMul(t),o=r.redMul(t.redAdd(this.curve.a24.redMul(r)));return this.curve.point(n,o)},Point$8.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},Point$8.prototype.diffAdd=function(e,t){var r=this.x.redAdd(this.z),n=this.x.redSub(this.z),o=e.x.redAdd(e.z),i=e.x.redSub(e.z).redMul(r),a=o.redMul(n),s=t.z.redMul(i.redAdd(a).redSqr()),c=t.x.redMul(i.redISub(a).redSqr());return this.curve.point(s,c)},Point$8.prototype.mul=function(e){for(var t=e.clone(),r=this,n=this.curve.point(null,null),o=[];0!==t.cmpn(0);t.iushrn(1))o.push(t.andln(1));for(var i=o.length-1;i>=0;i--)0===o[i]?(r=r.diffAdd(n,this),n=n.dbl()):(n=r.diffAdd(n,this),r=r.dbl());return n},Point$8.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},Point$8.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},Point$8.prototype.eq=function(e){return 0===this.getX().cmp(e.getX())},Point$8.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},Point$8.prototype.getX=function(){return this.normalize(),this.x.fromRed()};var utils$y=utils$C,BN$k=bnExports$2,inherits$7=inherits_browserExports,Base$6=base$4,assert$o=utils$y.assert;function EdwardsCurve$2(e){this.twisted=1!=(0|e.a),this.mOneA=this.twisted&&-1==(0|e.a),this.extended=this.mOneA,Base$6.call(this,"edwards",e),this.a=new BN$k(e.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new BN$k(e.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new BN$k(e.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),assert$o(!this.twisted||0===this.c.fromRed().cmpn(1)),this.oneC=1==(0|e.c)}inherits$7(EdwardsCurve$2,Base$6);var edwards$2=EdwardsCurve$2;function Point$7(e,t,r,n,o){Base$6.BasePoint.call(this,e,"projective"),null===t&&null===r&&null===n?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new BN$k(t,16),this.y=new BN$k(r,16),this.z=n?new BN$k(n,16):this.curve.one,this.t=o&&new BN$k(o,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}EdwardsCurve$2.prototype._mulA=function(e){return this.mOneA?e.redNeg():this.a.redMul(e)},EdwardsCurve$2.prototype._mulC=function(e){return this.oneC?e:this.c.redMul(e)},EdwardsCurve$2.prototype.jpoint=function(e,t,r,n){return this.point(e,t,r,n)},EdwardsCurve$2.prototype.pointFromX=function(e,t){(e=new BN$k(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr(),n=this.c2.redSub(this.a.redMul(r)),o=this.one.redSub(this.c2.redMul(this.d).redMul(r)),i=n.redMul(o.redInvm()),a=i.redSqrt();if(0!==a.redSqr().redSub(i).cmp(this.zero))throw new Error("invalid point");var s=a.fromRed().isOdd();return(t&&!s||!t&&s)&&(a=a.redNeg()),this.point(e,a)},EdwardsCurve$2.prototype.pointFromY=function(e,t){(e=new BN$k(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr(),n=r.redSub(this.c2),o=r.redMul(this.d).redMul(this.c2).redSub(this.a),i=n.redMul(o.redInvm());if(0===i.cmp(this.zero)){if(t)throw new Error("invalid point");return this.point(this.zero,e)}var a=i.redSqrt();if(0!==a.redSqr().redSub(i).cmp(this.zero))throw new Error("invalid point");return a.fromRed().isOdd()!==t&&(a=a.redNeg()),this.point(a,e)},EdwardsCurve$2.prototype.validate=function(e){if(e.isInfinity())return!0;e.normalize();var t=e.x.redSqr(),r=e.y.redSqr(),n=t.redMul(this.a).redAdd(r),o=this.c2.redMul(this.one.redAdd(this.d.redMul(t).redMul(r)));return 0===n.cmp(o)},inherits$7(Point$7,Base$6.BasePoint),EdwardsCurve$2.prototype.pointFromJSON=function(e){return Point$7.fromJSON(this,e)},EdwardsCurve$2.prototype.point=function(e,t,r,n){return new Point$7(this,e,t,r,n)},Point$7.fromJSON=function(e,t){return new Point$7(e,t[0],t[1],t[2])},Point$7.prototype.inspect=function(){return this.isInfinity()?"":""},Point$7.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},Point$7.prototype._extDbl=function(){var e=this.x.redSqr(),t=this.y.redSqr(),r=this.z.redSqr();r=r.redIAdd(r);var n=this.curve._mulA(e),o=this.x.redAdd(this.y).redSqr().redISub(e).redISub(t),i=n.redAdd(t),a=i.redSub(r),s=n.redSub(t),c=o.redMul(a),u=i.redMul(s),l=o.redMul(s),d=a.redMul(i);return this.curve.point(c,u,d,l)},Point$7.prototype._projDbl=function(){var e,t,r,n,o,i,a=this.x.redAdd(this.y).redSqr(),s=this.x.redSqr(),c=this.y.redSqr();if(this.curve.twisted){var u=(n=this.curve._mulA(s)).redAdd(c);this.zOne?(e=a.redSub(s).redSub(c).redMul(u.redSub(this.curve.two)),t=u.redMul(n.redSub(c)),r=u.redSqr().redSub(u).redSub(u)):(o=this.z.redSqr(),i=u.redSub(o).redISub(o),e=a.redSub(s).redISub(c).redMul(i),t=u.redMul(n.redSub(c)),r=u.redMul(i))}else n=s.redAdd(c),o=this.curve._mulC(this.z).redSqr(),i=n.redSub(o).redSub(o),e=this.curve._mulC(a.redISub(n)).redMul(i),t=this.curve._mulC(n).redMul(s.redISub(c)),r=n.redMul(i);return this.curve.point(e,t,r)},Point$7.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},Point$7.prototype._extAdd=function(e){var t=this.y.redSub(this.x).redMul(e.y.redSub(e.x)),r=this.y.redAdd(this.x).redMul(e.y.redAdd(e.x)),n=this.t.redMul(this.curve.dd).redMul(e.t),o=this.z.redMul(e.z.redAdd(e.z)),i=r.redSub(t),a=o.redSub(n),s=o.redAdd(n),c=r.redAdd(t),u=i.redMul(a),l=s.redMul(c),d=i.redMul(c),f=a.redMul(s);return this.curve.point(u,l,f,d)},Point$7.prototype._projAdd=function(e){var t,r,n=this.z.redMul(e.z),o=n.redSqr(),i=this.x.redMul(e.x),a=this.y.redMul(e.y),s=this.curve.d.redMul(i).redMul(a),c=o.redSub(s),u=o.redAdd(s),l=this.x.redAdd(this.y).redMul(e.x.redAdd(e.y)).redISub(i).redISub(a),d=n.redMul(c).redMul(l);return this.curve.twisted?(t=n.redMul(u).redMul(a.redSub(this.curve._mulA(i))),r=c.redMul(u)):(t=n.redMul(u).redMul(a.redSub(i)),r=this.curve._mulC(c).redMul(u)),this.curve.point(d,t,r)},Point$7.prototype.add=function(e){return this.isInfinity()?e:e.isInfinity()?this:this.curve.extended?this._extAdd(e):this._projAdd(e)},Point$7.prototype.mul=function(e){return this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve._wnafMul(this,e)},Point$7.prototype.mulAdd=function(e,t,r){return this.curve._wnafMulAdd(1,[this,t],[e,r],2,!1)},Point$7.prototype.jmulAdd=function(e,t,r){return this.curve._wnafMulAdd(1,[this,t],[e,r],2,!0)},Point$7.prototype.normalize=function(){if(this.zOne)return this;var e=this.z.redInvm();return this.x=this.x.redMul(e),this.y=this.y.redMul(e),this.t&&(this.t=this.t.redMul(e)),this.z=this.curve.one,this.zOne=!0,this},Point$7.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},Point$7.prototype.getX=function(){return this.normalize(),this.x.fromRed()},Point$7.prototype.getY=function(){return this.normalize(),this.y.fromRed()},Point$7.prototype.eq=function(e){return this===e||0===this.getX().cmp(e.getX())&&0===this.getY().cmp(e.getY())},Point$7.prototype.eqXToP=function(e){var t=e.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(t))return!0;for(var r=e.clone(),n=this.curve.redN.redMul(this.z);;){if(r.iadd(this.curve.n),r.cmp(this.curve.p)>=0)return!1;if(t.redIAdd(n),0===this.x.cmp(t))return!0}},Point$7.prototype.toP=Point$7.prototype.normalize,Point$7.prototype.mixedAdd=Point$7.prototype.add,function(e){var t=e;t.base=base$4,t.short=short$2,t.mont=mont$2,t.edwards=edwards$2}(curve$2);var curves$7={},secp256k1$4,hasRequiredSecp256k1$2;function requireSecp256k1$2(){return hasRequiredSecp256k1$2?secp256k1$4:(hasRequiredSecp256k1$2=1,secp256k1$4={doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}})}!function(e){var t,r=e,n=hash$8,o=curve$2,i=utils$C.assert;function a(e){"short"===e.type?this.curve=new o.short(e):"edwards"===e.type?this.curve=new o.edwards(e):this.curve=new o.mont(e),this.g=this.curve.g,this.n=this.curve.n,this.hash=e.hash,i(this.g.validate(),"Invalid curve"),i(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function s(e,t){Object.defineProperty(r,e,{configurable:!0,enumerable:!0,get:function(){var n=new a(t);return Object.defineProperty(r,e,{configurable:!0,enumerable:!0,value:n}),n}})}r.PresetCurve=a,s("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:n.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),s("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:n.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),s("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:n.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),s("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:n.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),s("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:n.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),s("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:n.sha256,gRed:!1,g:["9"]}),s("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:n.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{t=requireSecp256k1$2()}catch(e2){t=void 0}s("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:n.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",t]})}(curves$7);var BN$j=bnExports$2,utils$x=utils$C,assert$n=utils$x.assert;function KeyPair$b(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}var key$7=KeyPair$b;KeyPair$b.fromPublic=function(e,t,r){return t instanceof KeyPair$b?t:new KeyPair$b(e,{pub:t,pubEnc:r})},KeyPair$b.fromPrivate=function(e,t,r){return t instanceof KeyPair$b?t:new KeyPair$b(e,{priv:t,privEnc:r})},KeyPair$b.prototype.validate=function(){var e=this.getPublic();return e.isInfinity()?{result:!1,reason:"Invalid public key"}:e.validate()?e.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},KeyPair$b.prototype.getPublic=function(e,t){return"string"==typeof e&&(t=e,e=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),t?this.pub.encode(t,e):this.pub},KeyPair$b.prototype.getPrivate=function(e){return"hex"===e?this.priv.toString(16,2):this.priv},KeyPair$b.prototype._importPrivate=function(e,t){this.priv=new BN$j(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},KeyPair$b.prototype._importPublic=function(e,t){if(e.x||e.y)return"mont"===this.ec.curve.type?assert$n(e.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||assert$n(e.x&&e.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(e.x,e.y));this.pub=this.ec.curve.decodePoint(e,t)},KeyPair$b.prototype.derive=function(e){return e.validate()||assert$n(e.validate(),"public point not validated"),e.mul(this.priv).getX()},KeyPair$b.prototype.sign=function(e,t,r){return this.ec.sign(e,this,t,r)},KeyPair$b.prototype.verify=function(e,t){return this.ec.verify(e,t,this)},KeyPair$b.prototype.inspect=function(){return""};var BN$i=bnExports$2,utils$w=utils$C,assert$m=utils$w.assert;function Signature$b(e,t){if(e instanceof Signature$b)return e;this._importDER(e,t)||(assert$m(e.r&&e.s,"Signature without r or s"),this.r=new BN$i(e.r,16),this.s=new BN$i(e.s,16),void 0===e.recoveryParam?this.recoveryParam=null:this.recoveryParam=e.recoveryParam)}var signature$6=Signature$b,ec$4,hasRequiredEc;function Position$3(){this.place=0}function getLength$3(e,t){var r=e[t.place++];if(!(128&r))return r;var n=15&r;if(0===n||n>4)return!1;for(var o=0,i=0,a=t.place;i>>=0;return!(o<=127)&&(t.place=a,o)}function rmPadding$3(e){for(var t=0,r=e.length-1;!e[t]&&!(128&e[t+1])&&t>>3);for(e.push(128|r);--r;)e.push(t>>>(r<<3)&255);e.push(t)}}function requireEc(){if(hasRequiredEc)return ec$4;hasRequiredEc=1;var e=bnExports$2,t=hmacDrbg$1,r=utils$C,n=curves$7,o=requireBrorand(),i=r.assert,a=key$7,s=signature$6;function c(e){if(!(this instanceof c))return new c(e);"string"==typeof e&&(i(Object.prototype.hasOwnProperty.call(n,e),"Unknown curve "+e),e=n[e]),e instanceof n.PresetCurve&&(e={curve:e}),this.curve=e.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=e.curve.g,this.g.precompute(e.curve.n.bitLength()+1),this.hash=e.hash||e.curve.hash}return ec$4=c,c.prototype.keyPair=function(e){return new a(this,e)},c.prototype.keyFromPrivate=function(e,t){return a.fromPrivate(this,e,t)},c.prototype.keyFromPublic=function(e,t){return a.fromPublic(this,e,t)},c.prototype.genKeyPair=function(r){r||(r={});for(var n=new t({hash:this.hash,pers:r.pers,persEnc:r.persEnc||"utf8",entropy:r.entropy||o(this.hash.hmacStrength),entropyEnc:r.entropy&&r.entropyEnc||"utf8",nonce:this.n.toArray()}),i=this.n.byteLength(),a=this.n.sub(new e(2));;){var s=new e(n.generate(i));if(!(s.cmp(a)>0))return s.iaddn(1),this.keyFromPrivate(s)}},c.prototype._truncateToN=function(e,t){var r=8*e.byteLength()-this.n.bitLength();return r>0&&(e=e.ushrn(r)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},c.prototype.sign=function(r,n,o,i){"object"==typeof o&&(i=o,o=null),i||(i={}),n=this.keyFromPrivate(n,o),r=this._truncateToN(new e(r,16));for(var a=this.n.byteLength(),c=n.getPrivate().toArray("be",a),u=r.toArray("be",a),l=new t({hash:this.hash,entropy:c,nonce:u,pers:i.pers,persEnc:i.persEnc||"utf8"}),d=this.n.sub(new e(1)),f=0;;f++){var h=i.k?i.k(f):new e(l.generate(this.n.byteLength()));if(!((h=this._truncateToN(h,!0)).cmpn(1)<=0||h.cmp(d)>=0)){var p=this.g.mul(h);if(!p.isInfinity()){var y=p.getX(),m=y.umod(this.n);if(0!==m.cmpn(0)){var g=h.invm(this.n).mul(m.mul(n.getPrivate()).iadd(r));if(0!==(g=g.umod(this.n)).cmpn(0)){var b=(p.getY().isOdd()?1:0)|(0!==y.cmp(m)?2:0);return i.canonical&&g.cmp(this.nh)>0&&(g=this.n.sub(g),b^=1),new s({r:m,s:g,recoveryParam:b})}}}}}},c.prototype.verify=function(t,r,n,o){t=this._truncateToN(new e(t,16)),n=this.keyFromPublic(n,o);var i=(r=new s(r,"hex")).r,a=r.s;if(i.cmpn(1)<0||i.cmp(this.n)>=0)return!1;if(a.cmpn(1)<0||a.cmp(this.n)>=0)return!1;var c,u=a.invm(this.n),l=u.mul(t).umod(this.n),d=u.mul(i).umod(this.n);return this.curve._maxwellTrick?!(c=this.g.jmulAdd(l,n.getPublic(),d)).isInfinity()&&c.eqXToP(i):!(c=this.g.mulAdd(l,n.getPublic(),d)).isInfinity()&&0===c.getX().umod(this.n).cmp(i)},c.prototype.recoverPubKey=function(t,r,n,o){i((3&n)===n,"The recovery param is more than two bits"),r=new s(r,o);var a=this.n,c=new e(t),u=r.r,l=r.s,d=1&n,f=n>>1;if(u.cmp(this.curve.p.umod(this.curve.n))>=0&&f)throw new Error("Unable to find sencond key candinate");u=f?this.curve.pointFromX(u.add(this.curve.n),d):this.curve.pointFromX(u,d);var h=r.r.invm(a),p=a.sub(c).mul(h).umod(a),y=l.mul(h).umod(a);return this.g.mulAdd(p,u,y)},c.prototype.getKeyRecoveryParam=function(e,t,r,n){if(null!==(t=new s(t,n)).recoveryParam)return t.recoveryParam;for(var o=0;o<4;o++){var i;try{i=this.recoverPubKey(e,t,o)}catch(a){continue}if(i.eq(r))return o}throw new Error("Unable to find valid recovery factor")},ec$4}Signature$b.prototype._importDER=function(e,t){e=utils$w.toArray(e,t);var r=new Position$3;if(48!==e[r.place++])return!1;var n=getLength$3(e,r);if(!1===n)return!1;if(n+r.place!==e.length)return!1;if(2!==e[r.place++])return!1;var o=getLength$3(e,r);if(!1===o)return!1;var i=e.slice(r.place,o+r.place);if(r.place+=o,2!==e[r.place++])return!1;var a=getLength$3(e,r);if(!1===a)return!1;if(e.length!==a+r.place)return!1;var s=e.slice(r.place,a+r.place);if(0===i[0]){if(!(128&i[1]))return!1;i=i.slice(1)}if(0===s[0]){if(!(128&s[1]))return!1;s=s.slice(1)}return this.r=new BN$i(i),this.s=new BN$i(s),this.recoveryParam=null,!0},Signature$b.prototype.toDER=function(e){var t=this.r.toArray(),r=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&r[0]&&(r=[0].concat(r)),t=rmPadding$3(t),r=rmPadding$3(r);!(r[0]||128&r[1]);)r=r.slice(1);var n=[2];constructLength$3(n,t.length),(n=n.concat(t)).push(2),constructLength$3(n,r.length);var o=n.concat(r),i=[48];return constructLength$3(i,o.length),i=i.concat(o),utils$w.encode(i,e)};var utils$v=utils$C,assert$l=utils$v.assert,parseBytes$8=utils$v.parseBytes,cachedProperty$5=utils$v.cachedProperty;function KeyPair$a(e,t){this.eddsa=e,this._secret=parseBytes$8(t.secret),e.isPoint(t.pub)?this._pub=t.pub:this._pubBytes=parseBytes$8(t.pub)}KeyPair$a.fromPublic=function(e,t){return t instanceof KeyPair$a?t:new KeyPair$a(e,{pub:t})},KeyPair$a.fromSecret=function(e,t){return t instanceof KeyPair$a?t:new KeyPair$a(e,{secret:t})},KeyPair$a.prototype.secret=function(){return this._secret},cachedProperty$5(KeyPair$a,"pubBytes",(function(){return this.eddsa.encodePoint(this.pub())})),cachedProperty$5(KeyPair$a,"pub",(function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())})),cachedProperty$5(KeyPair$a,"privBytes",(function(){var e=this.eddsa,t=this.hash(),r=e.encodingLength-1,n=t.slice(0,e.encodingLength);return n[0]&=248,n[r]&=127,n[r]|=64,n})),cachedProperty$5(KeyPair$a,"priv",(function(){return this.eddsa.decodeInt(this.privBytes())})),cachedProperty$5(KeyPair$a,"hash",(function(){return this.eddsa.hash().update(this.secret()).digest()})),cachedProperty$5(KeyPair$a,"messagePrefix",(function(){return this.hash().slice(this.eddsa.encodingLength)})),KeyPair$a.prototype.sign=function(e){return assert$l(this._secret,"KeyPair can only verify"),this.eddsa.sign(e,this)},KeyPair$a.prototype.verify=function(e,t){return this.eddsa.verify(e,t,this)},KeyPair$a.prototype.getSecret=function(e){return assert$l(this._secret,"KeyPair is public only"),utils$v.encode(this.secret(),e)},KeyPair$a.prototype.getPublic=function(e){return utils$v.encode(this.pubBytes(),e)};var key$6=KeyPair$a,BN$h=bnExports$2,utils$u=utils$C,assert$k=utils$u.assert,cachedProperty$4=utils$u.cachedProperty,parseBytes$7=utils$u.parseBytes;function Signature$a(e,t){this.eddsa=e,"object"!=typeof t&&(t=parseBytes$7(t)),Array.isArray(t)&&(t={R:t.slice(0,e.encodingLength),S:t.slice(e.encodingLength)}),assert$k(t.R&&t.S,"Signature without R or S"),e.isPoint(t.R)&&(this._R=t.R),t.S instanceof BN$h&&(this._S=t.S),this._Rencoded=Array.isArray(t.R)?t.R:t.Rencoded,this._Sencoded=Array.isArray(t.S)?t.S:t.Sencoded}cachedProperty$4(Signature$a,"S",(function(){return this.eddsa.decodeInt(this.Sencoded())})),cachedProperty$4(Signature$a,"R",(function(){return this.eddsa.decodePoint(this.Rencoded())})),cachedProperty$4(Signature$a,"Rencoded",(function(){return this.eddsa.encodePoint(this.R())})),cachedProperty$4(Signature$a,"Sencoded",(function(){return this.eddsa.encodeInt(this.S())})),Signature$a.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())},Signature$a.prototype.toHex=function(){return utils$u.encode(this.toBytes(),"hex").toUpperCase()};var signature$5=Signature$a,hash$5=hash$8,curves$6=curves$7,utils$t=utils$C,assert$j=utils$t.assert,parseBytes$6=utils$t.parseBytes,KeyPair$9=key$6,Signature$9=signature$5;function EDDSA$2(e){if(assert$j("ed25519"===e,"only tested with ed25519 so far"),!(this instanceof EDDSA$2))return new EDDSA$2(e);e=curves$6[e].curve,this.curve=e,this.g=e.g,this.g.precompute(e.n.bitLength()+1),this.pointClass=e.point().constructor,this.encodingLength=Math.ceil(e.n.bitLength()/8),this.hash=hash$5.sha512}var eddsa$2=EDDSA$2,hasRequiredElliptic;function requireElliptic(){return hasRequiredElliptic||(hasRequiredElliptic=1,function(e){var t=e;t.version=require$$0$5.version,t.utils=utils$C,t.rand=requireBrorand(),t.curve=curve$2,t.curves=curves$7,t.ec=requireEc(),t.eddsa=eddsa$2}(elliptic$3)),elliptic$3}EDDSA$2.prototype.sign=function(e,t){e=parseBytes$6(e);var r=this.keyFromSecret(t),n=this.hashInt(r.messagePrefix(),e),o=this.g.mul(n),i=this.encodePoint(o),a=this.hashInt(i,r.pubBytes(),e).mul(r.priv()),s=n.add(a).umod(this.curve.n);return this.makeSignature({R:o,S:s,Rencoded:i})},EDDSA$2.prototype.verify=function(e,t,r){e=parseBytes$6(e),t=this.makeSignature(t);var n=this.keyFromPublic(r),o=this.hashInt(t.Rencoded(),n.pubBytes(),e),i=this.g.mul(t.S());return t.R().add(n.pub().mul(o)).eq(i)},EDDSA$2.prototype.hashInt=function(){for(var e=this.hash(),t=0;t=65&&r<=70?r-55:r>=97&&r<=102?r-87:r-48&15}function s(e,t,r){var n=a(e,r);return r-1>=t&&(n|=a(e,r-1)<<4),n}function c(e,t,r,n){for(var o=0,i=Math.min(e.length,r),a=t;a=49?s-49+10:s>=17?s-17+10:s}return o}o.isBN=function(e){return e instanceof o||null!==e&&"object"==typeof e&&e.constructor.wordSize===o.wordSize&&Array.isArray(e.words)},o.max=function(e,t){return e.cmp(t)>0?e:t},o.min=function(e,t){return e.cmp(t)<0?e:t},o.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),r(t===(0|t)&&t>=2&&t<=36);var o=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(o++,this.negative=1),o=0;o-=3)a=e[o]|e[o-1]<<8|e[o-2]<<16,this.words[i]|=a<>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);else if("le"===n)for(o=0,i=0;o>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);return this.strip()},o.prototype._parseHex=function(e,t,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var n=0;n=t;n-=2)o=s(e,t,n)<=18?(i-=18,a+=1,this.words[a]|=o>>>26):i+=8;else for(n=(e.length-t)%2==0?t+1:t;n=18?(i-=18,a+=1,this.words[a]|=o>>>26):i+=8;this.strip()},o.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var n=0,o=1;o<=67108863;o*=t)n++;n--,o=o/t|0;for(var i=e.length-r,a=i%n,s=Math.min(i,i-a)+r,u=0,l=r;l1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?""};var u=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],l=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],d=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function f(e,t,r){r.negative=t.negative^e.negative;var n=e.length+t.length|0;r.length=n,n=n-1|0;var o=0|e.words[0],i=0|t.words[0],a=o*i,s=67108863&a,c=a/67108864|0;r.words[0]=s;for(var u=1;u>>26,d=67108863&c,f=Math.min(u,t.length-1),h=Math.max(0,u-e.length+1);h<=f;h++){var p=u-h|0;l+=(a=(o=0|e.words[p])*(i=0|t.words[h])+d)/67108864|0,d=67108863&a}r.words[u]=0|d,c=0|l}return 0!==c?r.words[u]=0|c:r.length--,r.strip()}o.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var o=0,i=0,a=0;a>>24-o&16777215,(o+=2)>=26&&(o-=26,a--),n=0!==i||a!==this.length-1?u[6-c.length]+c+n:c+n}for(0!==i&&(n=i.toString(16)+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var f=l[e],h=d[e];n="";var p=this.clone();for(p.negative=0;!p.isZero();){var y=p.modn(h).toString(e);n=(p=p.idivn(h)).isZero()?y+n:u[f-y.length]+y+n}for(this.isZero()&&(n="0"+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(e,t){return r(void 0!==i),this.toArrayLike(i,e,t)},o.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},o.prototype.toArrayLike=function(e,t,n){var o=this.byteLength(),i=n||Math.max(1,o);r(o<=i,"byte array longer than desired length"),r(i>0,"Requested array length <= 0"),this.strip();var a,s,c="le"===t,u=new e(i),l=this.clone();if(c){for(s=0;!l.isZero();s++)a=l.andln(255),l.iushrn(8),u[s]=a;for(;s=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},o.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 8191&t||(r+=13,t>>>=13),127&t||(r+=7,t>>>=7),15&t||(r+=4,t>>>=4),3&t||(r+=2,t>>>=2),1&t||r++,r},o.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},o.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},o.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;re.length?this.clone().iand(e):e.clone().iand(this)},o.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},o.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var n=0;ne.length?this.clone().ixor(e):e.clone().ixor(this)},o.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},o.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var o=0;o0&&(this.words[o]=~this.words[o]&67108863>>26-n),this.strip()},o.prototype.notn=function(e){return this.clone().inotn(e)},o.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var n=e/26|0,o=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<e.length?(r=this,n=e):(r=e,n=this);for(var o=0,i=0;i>>26;for(;0!==o&&i>>26;if(this.length=r.length,0!==o)this.words[this.length]=o,this.length++;else if(r!==this)for(;ie.length?this.clone().iadd(e):e.clone().iadd(this)},o.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,n,o=this.cmp(e);if(0===o)return this.negative=0,this.length=1,this.words[0]=0,this;o>0?(r=this,n=e):(r=e,n=this);for(var i=0,a=0;a>26,this.words[a]=67108863&t;for(;0!==i&&a>26,this.words[a]=67108863&t;if(0===i&&a>>13,h=0|a[1],p=8191&h,y=h>>>13,m=0|a[2],g=8191&m,b=m>>>13,v=0|a[3],w=8191&v,_=v>>>13,I=0|a[4],T=8191&I,k=I>>>13,$=0|a[5],S=8191&$,A=$>>>13,E=0|a[6],C=8191&E,R=E>>>13,O=0|a[7],N=8191&O,P=O>>>13,M=0|a[8],B=8191&M,D=M>>>13,x=0|a[9],L=8191&x,U=x>>>13,j=0|s[0],F=8191&j,q=j>>>13,K=0|s[1],H=8191&K,G=K>>>13,z=0|s[2],V=8191&z,W=z>>>13,Q=0|s[3],Y=8191&Q,X=Q>>>13,J=0|s[4],Z=8191&J,ee=J>>>13,te=0|s[5],re=8191&te,ne=te>>>13,oe=0|s[6],ie=8191&oe,ae=oe>>>13,se=0|s[7],ce=8191&se,ue=se>>>13,le=0|s[8],de=8191&le,fe=le>>>13,he=0|s[9],pe=8191&he,ye=he>>>13;r.negative=e.negative^t.negative,r.length=19;var me=(u+(n=Math.imul(d,F))|0)+((8191&(o=(o=Math.imul(d,q))+Math.imul(f,F)|0))<<13)|0;u=((i=Math.imul(f,q))+(o>>>13)|0)+(me>>>26)|0,me&=67108863,n=Math.imul(p,F),o=(o=Math.imul(p,q))+Math.imul(y,F)|0,i=Math.imul(y,q);var ge=(u+(n=n+Math.imul(d,H)|0)|0)+((8191&(o=(o=o+Math.imul(d,G)|0)+Math.imul(f,H)|0))<<13)|0;u=((i=i+Math.imul(f,G)|0)+(o>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(g,F),o=(o=Math.imul(g,q))+Math.imul(b,F)|0,i=Math.imul(b,q),n=n+Math.imul(p,H)|0,o=(o=o+Math.imul(p,G)|0)+Math.imul(y,H)|0,i=i+Math.imul(y,G)|0;var be=(u+(n=n+Math.imul(d,V)|0)|0)+((8191&(o=(o=o+Math.imul(d,W)|0)+Math.imul(f,V)|0))<<13)|0;u=((i=i+Math.imul(f,W)|0)+(o>>>13)|0)+(be>>>26)|0,be&=67108863,n=Math.imul(w,F),o=(o=Math.imul(w,q))+Math.imul(_,F)|0,i=Math.imul(_,q),n=n+Math.imul(g,H)|0,o=(o=o+Math.imul(g,G)|0)+Math.imul(b,H)|0,i=i+Math.imul(b,G)|0,n=n+Math.imul(p,V)|0,o=(o=o+Math.imul(p,W)|0)+Math.imul(y,V)|0,i=i+Math.imul(y,W)|0;var ve=(u+(n=n+Math.imul(d,Y)|0)|0)+((8191&(o=(o=o+Math.imul(d,X)|0)+Math.imul(f,Y)|0))<<13)|0;u=((i=i+Math.imul(f,X)|0)+(o>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(T,F),o=(o=Math.imul(T,q))+Math.imul(k,F)|0,i=Math.imul(k,q),n=n+Math.imul(w,H)|0,o=(o=o+Math.imul(w,G)|0)+Math.imul(_,H)|0,i=i+Math.imul(_,G)|0,n=n+Math.imul(g,V)|0,o=(o=o+Math.imul(g,W)|0)+Math.imul(b,V)|0,i=i+Math.imul(b,W)|0,n=n+Math.imul(p,Y)|0,o=(o=o+Math.imul(p,X)|0)+Math.imul(y,Y)|0,i=i+Math.imul(y,X)|0;var we=(u+(n=n+Math.imul(d,Z)|0)|0)+((8191&(o=(o=o+Math.imul(d,ee)|0)+Math.imul(f,Z)|0))<<13)|0;u=((i=i+Math.imul(f,ee)|0)+(o>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(S,F),o=(o=Math.imul(S,q))+Math.imul(A,F)|0,i=Math.imul(A,q),n=n+Math.imul(T,H)|0,o=(o=o+Math.imul(T,G)|0)+Math.imul(k,H)|0,i=i+Math.imul(k,G)|0,n=n+Math.imul(w,V)|0,o=(o=o+Math.imul(w,W)|0)+Math.imul(_,V)|0,i=i+Math.imul(_,W)|0,n=n+Math.imul(g,Y)|0,o=(o=o+Math.imul(g,X)|0)+Math.imul(b,Y)|0,i=i+Math.imul(b,X)|0,n=n+Math.imul(p,Z)|0,o=(o=o+Math.imul(p,ee)|0)+Math.imul(y,Z)|0,i=i+Math.imul(y,ee)|0;var _e=(u+(n=n+Math.imul(d,re)|0)|0)+((8191&(o=(o=o+Math.imul(d,ne)|0)+Math.imul(f,re)|0))<<13)|0;u=((i=i+Math.imul(f,ne)|0)+(o>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(C,F),o=(o=Math.imul(C,q))+Math.imul(R,F)|0,i=Math.imul(R,q),n=n+Math.imul(S,H)|0,o=(o=o+Math.imul(S,G)|0)+Math.imul(A,H)|0,i=i+Math.imul(A,G)|0,n=n+Math.imul(T,V)|0,o=(o=o+Math.imul(T,W)|0)+Math.imul(k,V)|0,i=i+Math.imul(k,W)|0,n=n+Math.imul(w,Y)|0,o=(o=o+Math.imul(w,X)|0)+Math.imul(_,Y)|0,i=i+Math.imul(_,X)|0,n=n+Math.imul(g,Z)|0,o=(o=o+Math.imul(g,ee)|0)+Math.imul(b,Z)|0,i=i+Math.imul(b,ee)|0,n=n+Math.imul(p,re)|0,o=(o=o+Math.imul(p,ne)|0)+Math.imul(y,re)|0,i=i+Math.imul(y,ne)|0;var Ie=(u+(n=n+Math.imul(d,ie)|0)|0)+((8191&(o=(o=o+Math.imul(d,ae)|0)+Math.imul(f,ie)|0))<<13)|0;u=((i=i+Math.imul(f,ae)|0)+(o>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,n=Math.imul(N,F),o=(o=Math.imul(N,q))+Math.imul(P,F)|0,i=Math.imul(P,q),n=n+Math.imul(C,H)|0,o=(o=o+Math.imul(C,G)|0)+Math.imul(R,H)|0,i=i+Math.imul(R,G)|0,n=n+Math.imul(S,V)|0,o=(o=o+Math.imul(S,W)|0)+Math.imul(A,V)|0,i=i+Math.imul(A,W)|0,n=n+Math.imul(T,Y)|0,o=(o=o+Math.imul(T,X)|0)+Math.imul(k,Y)|0,i=i+Math.imul(k,X)|0,n=n+Math.imul(w,Z)|0,o=(o=o+Math.imul(w,ee)|0)+Math.imul(_,Z)|0,i=i+Math.imul(_,ee)|0,n=n+Math.imul(g,re)|0,o=(o=o+Math.imul(g,ne)|0)+Math.imul(b,re)|0,i=i+Math.imul(b,ne)|0,n=n+Math.imul(p,ie)|0,o=(o=o+Math.imul(p,ae)|0)+Math.imul(y,ie)|0,i=i+Math.imul(y,ae)|0;var Te=(u+(n=n+Math.imul(d,ce)|0)|0)+((8191&(o=(o=o+Math.imul(d,ue)|0)+Math.imul(f,ce)|0))<<13)|0;u=((i=i+Math.imul(f,ue)|0)+(o>>>13)|0)+(Te>>>26)|0,Te&=67108863,n=Math.imul(B,F),o=(o=Math.imul(B,q))+Math.imul(D,F)|0,i=Math.imul(D,q),n=n+Math.imul(N,H)|0,o=(o=o+Math.imul(N,G)|0)+Math.imul(P,H)|0,i=i+Math.imul(P,G)|0,n=n+Math.imul(C,V)|0,o=(o=o+Math.imul(C,W)|0)+Math.imul(R,V)|0,i=i+Math.imul(R,W)|0,n=n+Math.imul(S,Y)|0,o=(o=o+Math.imul(S,X)|0)+Math.imul(A,Y)|0,i=i+Math.imul(A,X)|0,n=n+Math.imul(T,Z)|0,o=(o=o+Math.imul(T,ee)|0)+Math.imul(k,Z)|0,i=i+Math.imul(k,ee)|0,n=n+Math.imul(w,re)|0,o=(o=o+Math.imul(w,ne)|0)+Math.imul(_,re)|0,i=i+Math.imul(_,ne)|0,n=n+Math.imul(g,ie)|0,o=(o=o+Math.imul(g,ae)|0)+Math.imul(b,ie)|0,i=i+Math.imul(b,ae)|0,n=n+Math.imul(p,ce)|0,o=(o=o+Math.imul(p,ue)|0)+Math.imul(y,ce)|0,i=i+Math.imul(y,ue)|0;var ke=(u+(n=n+Math.imul(d,de)|0)|0)+((8191&(o=(o=o+Math.imul(d,fe)|0)+Math.imul(f,de)|0))<<13)|0;u=((i=i+Math.imul(f,fe)|0)+(o>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(L,F),o=(o=Math.imul(L,q))+Math.imul(U,F)|0,i=Math.imul(U,q),n=n+Math.imul(B,H)|0,o=(o=o+Math.imul(B,G)|0)+Math.imul(D,H)|0,i=i+Math.imul(D,G)|0,n=n+Math.imul(N,V)|0,o=(o=o+Math.imul(N,W)|0)+Math.imul(P,V)|0,i=i+Math.imul(P,W)|0,n=n+Math.imul(C,Y)|0,o=(o=o+Math.imul(C,X)|0)+Math.imul(R,Y)|0,i=i+Math.imul(R,X)|0,n=n+Math.imul(S,Z)|0,o=(o=o+Math.imul(S,ee)|0)+Math.imul(A,Z)|0,i=i+Math.imul(A,ee)|0,n=n+Math.imul(T,re)|0,o=(o=o+Math.imul(T,ne)|0)+Math.imul(k,re)|0,i=i+Math.imul(k,ne)|0,n=n+Math.imul(w,ie)|0,o=(o=o+Math.imul(w,ae)|0)+Math.imul(_,ie)|0,i=i+Math.imul(_,ae)|0,n=n+Math.imul(g,ce)|0,o=(o=o+Math.imul(g,ue)|0)+Math.imul(b,ce)|0,i=i+Math.imul(b,ue)|0,n=n+Math.imul(p,de)|0,o=(o=o+Math.imul(p,fe)|0)+Math.imul(y,de)|0,i=i+Math.imul(y,fe)|0;var $e=(u+(n=n+Math.imul(d,pe)|0)|0)+((8191&(o=(o=o+Math.imul(d,ye)|0)+Math.imul(f,pe)|0))<<13)|0;u=((i=i+Math.imul(f,ye)|0)+(o>>>13)|0)+($e>>>26)|0,$e&=67108863,n=Math.imul(L,H),o=(o=Math.imul(L,G))+Math.imul(U,H)|0,i=Math.imul(U,G),n=n+Math.imul(B,V)|0,o=(o=o+Math.imul(B,W)|0)+Math.imul(D,V)|0,i=i+Math.imul(D,W)|0,n=n+Math.imul(N,Y)|0,o=(o=o+Math.imul(N,X)|0)+Math.imul(P,Y)|0,i=i+Math.imul(P,X)|0,n=n+Math.imul(C,Z)|0,o=(o=o+Math.imul(C,ee)|0)+Math.imul(R,Z)|0,i=i+Math.imul(R,ee)|0,n=n+Math.imul(S,re)|0,o=(o=o+Math.imul(S,ne)|0)+Math.imul(A,re)|0,i=i+Math.imul(A,ne)|0,n=n+Math.imul(T,ie)|0,o=(o=o+Math.imul(T,ae)|0)+Math.imul(k,ie)|0,i=i+Math.imul(k,ae)|0,n=n+Math.imul(w,ce)|0,o=(o=o+Math.imul(w,ue)|0)+Math.imul(_,ce)|0,i=i+Math.imul(_,ue)|0,n=n+Math.imul(g,de)|0,o=(o=o+Math.imul(g,fe)|0)+Math.imul(b,de)|0,i=i+Math.imul(b,fe)|0;var Se=(u+(n=n+Math.imul(p,pe)|0)|0)+((8191&(o=(o=o+Math.imul(p,ye)|0)+Math.imul(y,pe)|0))<<13)|0;u=((i=i+Math.imul(y,ye)|0)+(o>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(L,V),o=(o=Math.imul(L,W))+Math.imul(U,V)|0,i=Math.imul(U,W),n=n+Math.imul(B,Y)|0,o=(o=o+Math.imul(B,X)|0)+Math.imul(D,Y)|0,i=i+Math.imul(D,X)|0,n=n+Math.imul(N,Z)|0,o=(o=o+Math.imul(N,ee)|0)+Math.imul(P,Z)|0,i=i+Math.imul(P,ee)|0,n=n+Math.imul(C,re)|0,o=(o=o+Math.imul(C,ne)|0)+Math.imul(R,re)|0,i=i+Math.imul(R,ne)|0,n=n+Math.imul(S,ie)|0,o=(o=o+Math.imul(S,ae)|0)+Math.imul(A,ie)|0,i=i+Math.imul(A,ae)|0,n=n+Math.imul(T,ce)|0,o=(o=o+Math.imul(T,ue)|0)+Math.imul(k,ce)|0,i=i+Math.imul(k,ue)|0,n=n+Math.imul(w,de)|0,o=(o=o+Math.imul(w,fe)|0)+Math.imul(_,de)|0,i=i+Math.imul(_,fe)|0;var Ae=(u+(n=n+Math.imul(g,pe)|0)|0)+((8191&(o=(o=o+Math.imul(g,ye)|0)+Math.imul(b,pe)|0))<<13)|0;u=((i=i+Math.imul(b,ye)|0)+(o>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(L,Y),o=(o=Math.imul(L,X))+Math.imul(U,Y)|0,i=Math.imul(U,X),n=n+Math.imul(B,Z)|0,o=(o=o+Math.imul(B,ee)|0)+Math.imul(D,Z)|0,i=i+Math.imul(D,ee)|0,n=n+Math.imul(N,re)|0,o=(o=o+Math.imul(N,ne)|0)+Math.imul(P,re)|0,i=i+Math.imul(P,ne)|0,n=n+Math.imul(C,ie)|0,o=(o=o+Math.imul(C,ae)|0)+Math.imul(R,ie)|0,i=i+Math.imul(R,ae)|0,n=n+Math.imul(S,ce)|0,o=(o=o+Math.imul(S,ue)|0)+Math.imul(A,ce)|0,i=i+Math.imul(A,ue)|0,n=n+Math.imul(T,de)|0,o=(o=o+Math.imul(T,fe)|0)+Math.imul(k,de)|0,i=i+Math.imul(k,fe)|0;var Ee=(u+(n=n+Math.imul(w,pe)|0)|0)+((8191&(o=(o=o+Math.imul(w,ye)|0)+Math.imul(_,pe)|0))<<13)|0;u=((i=i+Math.imul(_,ye)|0)+(o>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(L,Z),o=(o=Math.imul(L,ee))+Math.imul(U,Z)|0,i=Math.imul(U,ee),n=n+Math.imul(B,re)|0,o=(o=o+Math.imul(B,ne)|0)+Math.imul(D,re)|0,i=i+Math.imul(D,ne)|0,n=n+Math.imul(N,ie)|0,o=(o=o+Math.imul(N,ae)|0)+Math.imul(P,ie)|0,i=i+Math.imul(P,ae)|0,n=n+Math.imul(C,ce)|0,o=(o=o+Math.imul(C,ue)|0)+Math.imul(R,ce)|0,i=i+Math.imul(R,ue)|0,n=n+Math.imul(S,de)|0,o=(o=o+Math.imul(S,fe)|0)+Math.imul(A,de)|0,i=i+Math.imul(A,fe)|0;var Ce=(u+(n=n+Math.imul(T,pe)|0)|0)+((8191&(o=(o=o+Math.imul(T,ye)|0)+Math.imul(k,pe)|0))<<13)|0;u=((i=i+Math.imul(k,ye)|0)+(o>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,n=Math.imul(L,re),o=(o=Math.imul(L,ne))+Math.imul(U,re)|0,i=Math.imul(U,ne),n=n+Math.imul(B,ie)|0,o=(o=o+Math.imul(B,ae)|0)+Math.imul(D,ie)|0,i=i+Math.imul(D,ae)|0,n=n+Math.imul(N,ce)|0,o=(o=o+Math.imul(N,ue)|0)+Math.imul(P,ce)|0,i=i+Math.imul(P,ue)|0,n=n+Math.imul(C,de)|0,o=(o=o+Math.imul(C,fe)|0)+Math.imul(R,de)|0,i=i+Math.imul(R,fe)|0;var Re=(u+(n=n+Math.imul(S,pe)|0)|0)+((8191&(o=(o=o+Math.imul(S,ye)|0)+Math.imul(A,pe)|0))<<13)|0;u=((i=i+Math.imul(A,ye)|0)+(o>>>13)|0)+(Re>>>26)|0,Re&=67108863,n=Math.imul(L,ie),o=(o=Math.imul(L,ae))+Math.imul(U,ie)|0,i=Math.imul(U,ae),n=n+Math.imul(B,ce)|0,o=(o=o+Math.imul(B,ue)|0)+Math.imul(D,ce)|0,i=i+Math.imul(D,ue)|0,n=n+Math.imul(N,de)|0,o=(o=o+Math.imul(N,fe)|0)+Math.imul(P,de)|0,i=i+Math.imul(P,fe)|0;var Oe=(u+(n=n+Math.imul(C,pe)|0)|0)+((8191&(o=(o=o+Math.imul(C,ye)|0)+Math.imul(R,pe)|0))<<13)|0;u=((i=i+Math.imul(R,ye)|0)+(o>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,n=Math.imul(L,ce),o=(o=Math.imul(L,ue))+Math.imul(U,ce)|0,i=Math.imul(U,ue),n=n+Math.imul(B,de)|0,o=(o=o+Math.imul(B,fe)|0)+Math.imul(D,de)|0,i=i+Math.imul(D,fe)|0;var Ne=(u+(n=n+Math.imul(N,pe)|0)|0)+((8191&(o=(o=o+Math.imul(N,ye)|0)+Math.imul(P,pe)|0))<<13)|0;u=((i=i+Math.imul(P,ye)|0)+(o>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,n=Math.imul(L,de),o=(o=Math.imul(L,fe))+Math.imul(U,de)|0,i=Math.imul(U,fe);var Pe=(u+(n=n+Math.imul(B,pe)|0)|0)+((8191&(o=(o=o+Math.imul(B,ye)|0)+Math.imul(D,pe)|0))<<13)|0;u=((i=i+Math.imul(D,ye)|0)+(o>>>13)|0)+(Pe>>>26)|0,Pe&=67108863;var Me=(u+(n=Math.imul(L,pe))|0)+((8191&(o=(o=Math.imul(L,ye))+Math.imul(U,pe)|0))<<13)|0;return u=((i=Math.imul(U,ye))+(o>>>13)|0)+(Me>>>26)|0,Me&=67108863,c[0]=me,c[1]=ge,c[2]=be,c[3]=ve,c[4]=we,c[5]=_e,c[6]=Ie,c[7]=Te,c[8]=ke,c[9]=$e,c[10]=Se,c[11]=Ae,c[12]=Ee,c[13]=Ce,c[14]=Re,c[15]=Oe,c[16]=Ne,c[17]=Pe,c[18]=Me,0!==u&&(c[19]=u,r.length++),r};function p(e,t,r){return(new y).mulp(e,t,r)}function y(e,t){this.x=e,this.y=t}Math.imul||(h=f),o.prototype.mulTo=function(e,t){var r,n=this.length+e.length;return r=10===this.length&&10===e.length?h(this,e,t):n<63?f(this,e,t):n<1024?function(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var n=0,o=0,i=0;i>>26)|0)>>>26,a&=67108863}r.words[i]=s,n=a,a=o}return 0!==n?r.words[i]=n:r.length--,r.strip()}(this,e,t):p(this,e,t),r},y.prototype.makeRBT=function(e){for(var t=new Array(e),r=o.prototype._countBits(e)-1,n=0;n>=1;return n},y.prototype.permute=function(e,t,r,n,o,i){for(var a=0;a>>=1)o++;return 1<>>=13,n[2*a+1]=8191&i,i>>>=13;for(a=2*t;a>=26,t+=o/67108864|0,t+=i>>>26,this.words[n]=67108863&i}return 0!==t&&(this.words[n]=t,this.length++),this},o.prototype.muln=function(e){return this.clone().imuln(e)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r>>o}return t}(e);if(0===t.length)return new o(1);for(var r=this,n=0;n=0);var t,n=e%26,o=(e-n)/26,i=67108863>>>26-n<<26-n;if(0!==n){var a=0;for(t=0;t>>26-n}a&&(this.words[t]=a,this.length++)}if(0!==o){for(t=this.length-1;t>=0;t--)this.words[t+o]=this.words[t];for(t=0;t=0),o=t?(t-t%26)/26:0;var i=e%26,a=Math.min((e-i)/26,this.length),s=67108863^67108863>>>i<a)for(this.length-=a,u=0;u=0&&(0!==l||u>=o);u--){var d=0|this.words[u];this.words[u]=l<<26-i|d>>>i,l=d&s}return c&&0!==l&&(c.words[c.length++]=l),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(e,t,n){return r(0===this.negative),this.iushrn(e,t,n)},o.prototype.shln=function(e){return this.clone().ishln(e)},o.prototype.ushln=function(e){return this.clone().iushln(e)},o.prototype.shrn=function(e){return this.clone().ishrn(e)},o.prototype.ushrn=function(e){return this.clone().iushrn(e)},o.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26,o=1<=0);var t=e%26,n=(e-t)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==t&&n++,this.length=Math.min(n,this.length),0!==t){var o=67108863^67108863>>>t<=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},o.prototype.isubn=function(e){if(r("number"==typeof e),r(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t>26)-(c/67108864|0),this.words[o+n]=67108863&i}for(;o>26,this.words[o+n]=67108863&i;if(0===s)return this.strip();for(r(-1===s),s=0,o=0;o>26,this.words[o]=67108863&i;return this.negative=1,this.strip()},o.prototype._wordDiv=function(e,t){var r=(this.length,e.length),n=this.clone(),i=e,a=0|i.words[i.length-1];0!==(r=26-this._countBits(a))&&(i=i.ushln(r),n.iushln(r),a=0|i.words[i.length-1]);var s,c=n.length-i.length;if("mod"!==t){(s=new o(null)).length=c+1,s.words=new Array(s.length);for(var u=0;u=0;d--){var f=67108864*(0|n.words[i.length+d])+(0|n.words[i.length+d-1]);for(f=Math.min(f/a|0,67108863),n._ishlnsubmul(i,f,d);0!==n.negative;)f--,n.negative=0,n._ishlnsubmul(i,1,d),n.isZero()||(n.negative^=1);s&&(s.words[d]=f)}return s&&s.strip(),n.strip(),"div"!==t&&0!==r&&n.iushrn(r),{div:s||null,mod:n}},o.prototype.divmod=function(e,t,n){return r(!e.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===e.negative?(s=this.neg().divmod(e,t),"mod"!==t&&(i=s.div.neg()),"div"!==t&&(a=s.mod.neg(),n&&0!==a.negative&&a.iadd(e)),{div:i,mod:a}):0===this.negative&&0!==e.negative?(s=this.divmod(e.neg(),t),"mod"!==t&&(i=s.div.neg()),{div:i,mod:s.mod}):this.negative&e.negative?(s=this.neg().divmod(e.neg(),t),"div"!==t&&(a=s.mod.neg(),n&&0!==a.negative&&a.isub(e)),{div:s.div,mod:a}):e.length>this.length||this.cmp(e)<0?{div:new o(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new o(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new o(this.modn(e.words[0]))}:this._wordDiv(e,t);var i,a,s},o.prototype.div=function(e){return this.divmod(e,"div",!1).div},o.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},o.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},o.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,n=e.ushrn(1),o=e.andln(1),i=r.cmp(n);return i<0||1===o&&0===i?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},o.prototype.modn=function(e){r(e<=67108863);for(var t=(1<<26)%e,n=0,o=this.length-1;o>=0;o--)n=(t*n+(0|this.words[o]))%e;return n},o.prototype.idivn=function(e){r(e<=67108863);for(var t=0,n=this.length-1;n>=0;n--){var o=(0|this.words[n])+67108864*t;this.words[n]=o/e|0,t=o%e}return this.strip()},o.prototype.divn=function(e){return this.clone().idivn(e)},o.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i=new o(1),a=new o(0),s=new o(0),c=new o(1),u=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++u;for(var l=n.clone(),d=t.clone();!t.isZero();){for(var f=0,h=1;!(t.words[0]&h)&&f<26;++f,h<<=1);if(f>0)for(t.iushrn(f);f-- >0;)(i.isOdd()||a.isOdd())&&(i.iadd(l),a.isub(d)),i.iushrn(1),a.iushrn(1);for(var p=0,y=1;!(n.words[0]&y)&&p<26;++p,y<<=1);if(p>0)for(n.iushrn(p);p-- >0;)(s.isOdd()||c.isOdd())&&(s.iadd(l),c.isub(d)),s.iushrn(1),c.iushrn(1);t.cmp(n)>=0?(t.isub(n),i.isub(s),a.isub(c)):(n.isub(t),s.isub(i),c.isub(a))}return{a:s,b:c,gcd:n.iushln(u)}},o.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i,a=new o(1),s=new o(0),c=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var u=0,l=1;!(t.words[0]&l)&&u<26;++u,l<<=1);if(u>0)for(t.iushrn(u);u-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);for(var d=0,f=1;!(n.words[0]&f)&&d<26;++d,f<<=1);if(d>0)for(n.iushrn(d);d-- >0;)s.isOdd()&&s.iadd(c),s.iushrn(1);t.cmp(n)>=0?(t.isub(n),a.isub(s)):(n.isub(t),s.isub(a))}return(i=0===t.cmpn(1)?a:s).cmpn(0)<0&&i.iadd(e),i},o.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var n=0;t.isEven()&&r.isEven();n++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var o=t.cmp(r);if(o<0){var i=t;t=r,r=i}else if(0===o||0===r.cmpn(1))break;t.isub(r)}return r.iushln(n)},o.prototype.invm=function(e){return this.egcd(e).a.umod(e)},o.prototype.isEven=function(){return!(1&this.words[0])},o.prototype.isOdd=function(){return!(1&~this.words[0])},o.prototype.andln=function(e){return this.words[0]&e},o.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,n=(e-t)/26,o=1<>>26,s&=67108863,this.words[a]=s}return 0!==i&&(this.words[a]=i,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this.strip(),this.length>1)t=1;else{n&&(e=-e),r(e<=67108863,"Number is too big");var o=0|this.words[0];t=o===e?0:oe.length)return 1;if(this.length=0;r--){var n=0|this.words[r],o=0|e.words[r];if(n!==o){no&&(t=1);break}}return t},o.prototype.gtn=function(e){return 1===this.cmpn(e)},o.prototype.gt=function(e){return 1===this.cmp(e)},o.prototype.gten=function(e){return this.cmpn(e)>=0},o.prototype.gte=function(e){return this.cmp(e)>=0},o.prototype.ltn=function(e){return-1===this.cmpn(e)},o.prototype.lt=function(e){return-1===this.cmp(e)},o.prototype.lten=function(e){return this.cmpn(e)<=0},o.prototype.lte=function(e){return this.cmp(e)<=0},o.prototype.eqn=function(e){return 0===this.cmpn(e)},o.prototype.eq=function(e){return 0===this.cmp(e)},o.red=function(e){return new I(e)},o.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},o.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(e){return this.red=e,this},o.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},o.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},o.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},o.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},o.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},o.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},o.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},o.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},o.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var m={k256:null,p224:null,p192:null,p25519:null};function g(e,t){this.name=e,this.p=new o(t,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function b(){g.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function v(){g.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function w(){g.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function _(){g.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function I(e){if("string"==typeof e){var t=o._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function T(e){I.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}g.prototype._tmp=function(){var e=new o(null);return e.words=new Array(Math.ceil(this.n/13)),e},g.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var n=t0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},g.prototype.split=function(e,t){e.iushrn(this.n,0,t)},g.prototype.imulK=function(e){return e.imul(this.k)},n(b,g),b.prototype.split=function(e,t){for(var r=4194303,n=Math.min(e.length,9),o=0;o>>22,i=a}i>>>=22,e.words[o-10]=i,0===i&&e.length>10?e.length-=10:e.length-=9},b.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r>>=26,e.words[r]=o,t=n}return 0!==t&&(e.words[e.length++]=t),e},o._prime=function(e){if(m[e])return m[e];var t;if("k256"===e)t=new b;else if("p224"===e)t=new v;else if("p192"===e)t=new w;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new _}return m[e]=t,t},I.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},I.prototype._verify2=function(e,t){r(!(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},I.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},I.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},I.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},I.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},I.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},I.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},I.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},I.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},I.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},I.prototype.isqr=function(e){return this.imul(e,e.clone())},I.prototype.sqr=function(e){return this.mul(e,e)},I.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var n=this.m.add(new o(1)).iushrn(2);return this.pow(e,n)}for(var i=this.m.subn(1),a=0;!i.isZero()&&0===i.andln(1);)a++,i.iushrn(1);r(!i.isZero());var s=new o(1).toRed(this),c=s.redNeg(),u=this.m.subn(1).iushrn(1),l=this.m.bitLength();for(l=new o(2*l*l).toRed(this);0!==this.pow(l,u).cmp(c);)l.redIAdd(c);for(var d=this.pow(l,i),f=this.pow(e,i.addn(1).iushrn(1)),h=this.pow(e,i),p=a;0!==h.cmp(s);){for(var y=h,m=0;0!==y.cmp(s);m++)y=y.redSqr();r(m=0;n--){for(var u=t.words[n],l=c-1;l>=0;l--){var d=u>>l&1;i!==r[0]&&(i=this.sqr(i)),0!==d||0!==a?(a<<=1,a|=d,(4===++s||0===n&&0===l)&&(i=this.mul(i,r[a]),s=0,a=0)):s=0}c=26}return i},I.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},I.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},o.mont=function(e){return new T(e)},n(T,I),T.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},T.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},T.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=r.isub(n).iushrn(this.shift),i=o;return o.cmp(this.m)>=0?i=o.isub(this.m):o.cmpn(0)<0&&(i=o.iadd(this.m)),i._forceRed(this)},T.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new o(0)._forceRed(this);var r=e.mul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},T.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e,commonjsGlobal)}(bn$5)),bn$5.exports}function requireBrowser$2(){if(hasRequiredBrowser$2)return browser$7;hasRequiredBrowser$2=1;var e=requireElliptic(),t=requireBn$1();browser$7=function(e){return new n(e)};var r={secp256k1:{name:"secp256k1",byteLength:32},secp224r1:{name:"p224",byteLength:28},prime256v1:{name:"p256",byteLength:32},prime192v1:{name:"p192",byteLength:24},ed25519:{name:"ed25519",byteLength:32},secp384r1:{name:"p384",byteLength:48},secp521r1:{name:"p521",byteLength:66}};function n(t){this.curveType=r[t],this.curveType||(this.curveType={name:t}),this.curve=new e.ec(this.curveType.name),this.keys=void 0}function o(e,t,r){Array.isArray(e)||(e=e.toArray());var n=new Buffer$2(e);if(r&&n.length=65&&r<=70?r-55:r>=97&&r<=102?r-87:r-48&15}function s(e,t,r){var n=a(e,r);return r-1>=t&&(n|=a(e,r-1)<<4),n}function c(e,t,r,n){for(var o=0,i=Math.min(e.length,r),a=t;a=49?s-49+10:s>=17?s-17+10:s}return o}o.isBN=function(e){return e instanceof o||null!==e&&"object"==typeof e&&e.constructor.wordSize===o.wordSize&&Array.isArray(e.words)},o.max=function(e,t){return e.cmp(t)>0?e:t},o.min=function(e,t){return e.cmp(t)<0?e:t},o.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),r(t===(0|t)&&t>=2&&t<=36);var o=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(o++,this.negative=1),o=0;o-=3)a=e[o]|e[o-1]<<8|e[o-2]<<16,this.words[i]|=a<>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);else if("le"===n)for(o=0,i=0;o>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);return this.strip()},o.prototype._parseHex=function(e,t,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var n=0;n=t;n-=2)o=s(e,t,n)<=18?(i-=18,a+=1,this.words[a]|=o>>>26):i+=8;else for(n=(e.length-t)%2==0?t+1:t;n=18?(i-=18,a+=1,this.words[a]|=o>>>26):i+=8;this.strip()},o.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var n=0,o=1;o<=67108863;o*=t)n++;n--,o=o/t|0;for(var i=e.length-r,a=i%n,s=Math.min(i,i-a)+r,u=0,l=r;l1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?""};var u=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],l=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],d=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function f(e,t,r){r.negative=t.negative^e.negative;var n=e.length+t.length|0;r.length=n,n=n-1|0;var o=0|e.words[0],i=0|t.words[0],a=o*i,s=67108863&a,c=a/67108864|0;r.words[0]=s;for(var u=1;u>>26,d=67108863&c,f=Math.min(u,t.length-1),h=Math.max(0,u-e.length+1);h<=f;h++){var p=u-h|0;l+=(a=(o=0|e.words[p])*(i=0|t.words[h])+d)/67108864|0,d=67108863&a}r.words[u]=0|d,c=0|l}return 0!==c?r.words[u]=0|c:r.length--,r.strip()}o.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var o=0,i=0,a=0;a>>24-o&16777215,(o+=2)>=26&&(o-=26,a--),n=0!==i||a!==this.length-1?u[6-c.length]+c+n:c+n}for(0!==i&&(n=i.toString(16)+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var f=l[e],h=d[e];n="";var p=this.clone();for(p.negative=0;!p.isZero();){var y=p.modn(h).toString(e);n=(p=p.idivn(h)).isZero()?y+n:u[f-y.length]+y+n}for(this.isZero()&&(n="0"+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(e,t){return r(void 0!==i),this.toArrayLike(i,e,t)},o.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},o.prototype.toArrayLike=function(e,t,n){var o=this.byteLength(),i=n||Math.max(1,o);r(o<=i,"byte array longer than desired length"),r(i>0,"Requested array length <= 0"),this.strip();var a,s,c="le"===t,u=new e(i),l=this.clone();if(c){for(s=0;!l.isZero();s++)a=l.andln(255),l.iushrn(8),u[s]=a;for(;s=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},o.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 8191&t||(r+=13,t>>>=13),127&t||(r+=7,t>>>=7),15&t||(r+=4,t>>>=4),3&t||(r+=2,t>>>=2),1&t||r++,r},o.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},o.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},o.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;re.length?this.clone().iand(e):e.clone().iand(this)},o.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},o.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var n=0;ne.length?this.clone().ixor(e):e.clone().ixor(this)},o.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},o.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var o=0;o0&&(this.words[o]=~this.words[o]&67108863>>26-n),this.strip()},o.prototype.notn=function(e){return this.clone().inotn(e)},o.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var n=e/26|0,o=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<e.length?(r=this,n=e):(r=e,n=this);for(var o=0,i=0;i>>26;for(;0!==o&&i>>26;if(this.length=r.length,0!==o)this.words[this.length]=o,this.length++;else if(r!==this)for(;ie.length?this.clone().iadd(e):e.clone().iadd(this)},o.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,n,o=this.cmp(e);if(0===o)return this.negative=0,this.length=1,this.words[0]=0,this;o>0?(r=this,n=e):(r=e,n=this);for(var i=0,a=0;a>26,this.words[a]=67108863&t;for(;0!==i&&a>26,this.words[a]=67108863&t;if(0===i&&a>>13,h=0|a[1],p=8191&h,y=h>>>13,m=0|a[2],g=8191&m,b=m>>>13,v=0|a[3],w=8191&v,_=v>>>13,I=0|a[4],T=8191&I,k=I>>>13,$=0|a[5],S=8191&$,A=$>>>13,E=0|a[6],C=8191&E,R=E>>>13,O=0|a[7],N=8191&O,P=O>>>13,M=0|a[8],B=8191&M,D=M>>>13,x=0|a[9],L=8191&x,U=x>>>13,j=0|s[0],F=8191&j,q=j>>>13,K=0|s[1],H=8191&K,G=K>>>13,z=0|s[2],V=8191&z,W=z>>>13,Q=0|s[3],Y=8191&Q,X=Q>>>13,J=0|s[4],Z=8191&J,ee=J>>>13,te=0|s[5],re=8191&te,ne=te>>>13,oe=0|s[6],ie=8191&oe,ae=oe>>>13,se=0|s[7],ce=8191&se,ue=se>>>13,le=0|s[8],de=8191&le,fe=le>>>13,he=0|s[9],pe=8191&he,ye=he>>>13;r.negative=e.negative^t.negative,r.length=19;var me=(u+(n=Math.imul(d,F))|0)+((8191&(o=(o=Math.imul(d,q))+Math.imul(f,F)|0))<<13)|0;u=((i=Math.imul(f,q))+(o>>>13)|0)+(me>>>26)|0,me&=67108863,n=Math.imul(p,F),o=(o=Math.imul(p,q))+Math.imul(y,F)|0,i=Math.imul(y,q);var ge=(u+(n=n+Math.imul(d,H)|0)|0)+((8191&(o=(o=o+Math.imul(d,G)|0)+Math.imul(f,H)|0))<<13)|0;u=((i=i+Math.imul(f,G)|0)+(o>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(g,F),o=(o=Math.imul(g,q))+Math.imul(b,F)|0,i=Math.imul(b,q),n=n+Math.imul(p,H)|0,o=(o=o+Math.imul(p,G)|0)+Math.imul(y,H)|0,i=i+Math.imul(y,G)|0;var be=(u+(n=n+Math.imul(d,V)|0)|0)+((8191&(o=(o=o+Math.imul(d,W)|0)+Math.imul(f,V)|0))<<13)|0;u=((i=i+Math.imul(f,W)|0)+(o>>>13)|0)+(be>>>26)|0,be&=67108863,n=Math.imul(w,F),o=(o=Math.imul(w,q))+Math.imul(_,F)|0,i=Math.imul(_,q),n=n+Math.imul(g,H)|0,o=(o=o+Math.imul(g,G)|0)+Math.imul(b,H)|0,i=i+Math.imul(b,G)|0,n=n+Math.imul(p,V)|0,o=(o=o+Math.imul(p,W)|0)+Math.imul(y,V)|0,i=i+Math.imul(y,W)|0;var ve=(u+(n=n+Math.imul(d,Y)|0)|0)+((8191&(o=(o=o+Math.imul(d,X)|0)+Math.imul(f,Y)|0))<<13)|0;u=((i=i+Math.imul(f,X)|0)+(o>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(T,F),o=(o=Math.imul(T,q))+Math.imul(k,F)|0,i=Math.imul(k,q),n=n+Math.imul(w,H)|0,o=(o=o+Math.imul(w,G)|0)+Math.imul(_,H)|0,i=i+Math.imul(_,G)|0,n=n+Math.imul(g,V)|0,o=(o=o+Math.imul(g,W)|0)+Math.imul(b,V)|0,i=i+Math.imul(b,W)|0,n=n+Math.imul(p,Y)|0,o=(o=o+Math.imul(p,X)|0)+Math.imul(y,Y)|0,i=i+Math.imul(y,X)|0;var we=(u+(n=n+Math.imul(d,Z)|0)|0)+((8191&(o=(o=o+Math.imul(d,ee)|0)+Math.imul(f,Z)|0))<<13)|0;u=((i=i+Math.imul(f,ee)|0)+(o>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(S,F),o=(o=Math.imul(S,q))+Math.imul(A,F)|0,i=Math.imul(A,q),n=n+Math.imul(T,H)|0,o=(o=o+Math.imul(T,G)|0)+Math.imul(k,H)|0,i=i+Math.imul(k,G)|0,n=n+Math.imul(w,V)|0,o=(o=o+Math.imul(w,W)|0)+Math.imul(_,V)|0,i=i+Math.imul(_,W)|0,n=n+Math.imul(g,Y)|0,o=(o=o+Math.imul(g,X)|0)+Math.imul(b,Y)|0,i=i+Math.imul(b,X)|0,n=n+Math.imul(p,Z)|0,o=(o=o+Math.imul(p,ee)|0)+Math.imul(y,Z)|0,i=i+Math.imul(y,ee)|0;var _e=(u+(n=n+Math.imul(d,re)|0)|0)+((8191&(o=(o=o+Math.imul(d,ne)|0)+Math.imul(f,re)|0))<<13)|0;u=((i=i+Math.imul(f,ne)|0)+(o>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(C,F),o=(o=Math.imul(C,q))+Math.imul(R,F)|0,i=Math.imul(R,q),n=n+Math.imul(S,H)|0,o=(o=o+Math.imul(S,G)|0)+Math.imul(A,H)|0,i=i+Math.imul(A,G)|0,n=n+Math.imul(T,V)|0,o=(o=o+Math.imul(T,W)|0)+Math.imul(k,V)|0,i=i+Math.imul(k,W)|0,n=n+Math.imul(w,Y)|0,o=(o=o+Math.imul(w,X)|0)+Math.imul(_,Y)|0,i=i+Math.imul(_,X)|0,n=n+Math.imul(g,Z)|0,o=(o=o+Math.imul(g,ee)|0)+Math.imul(b,Z)|0,i=i+Math.imul(b,ee)|0,n=n+Math.imul(p,re)|0,o=(o=o+Math.imul(p,ne)|0)+Math.imul(y,re)|0,i=i+Math.imul(y,ne)|0;var Ie=(u+(n=n+Math.imul(d,ie)|0)|0)+((8191&(o=(o=o+Math.imul(d,ae)|0)+Math.imul(f,ie)|0))<<13)|0;u=((i=i+Math.imul(f,ae)|0)+(o>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,n=Math.imul(N,F),o=(o=Math.imul(N,q))+Math.imul(P,F)|0,i=Math.imul(P,q),n=n+Math.imul(C,H)|0,o=(o=o+Math.imul(C,G)|0)+Math.imul(R,H)|0,i=i+Math.imul(R,G)|0,n=n+Math.imul(S,V)|0,o=(o=o+Math.imul(S,W)|0)+Math.imul(A,V)|0,i=i+Math.imul(A,W)|0,n=n+Math.imul(T,Y)|0,o=(o=o+Math.imul(T,X)|0)+Math.imul(k,Y)|0,i=i+Math.imul(k,X)|0,n=n+Math.imul(w,Z)|0,o=(o=o+Math.imul(w,ee)|0)+Math.imul(_,Z)|0,i=i+Math.imul(_,ee)|0,n=n+Math.imul(g,re)|0,o=(o=o+Math.imul(g,ne)|0)+Math.imul(b,re)|0,i=i+Math.imul(b,ne)|0,n=n+Math.imul(p,ie)|0,o=(o=o+Math.imul(p,ae)|0)+Math.imul(y,ie)|0,i=i+Math.imul(y,ae)|0;var Te=(u+(n=n+Math.imul(d,ce)|0)|0)+((8191&(o=(o=o+Math.imul(d,ue)|0)+Math.imul(f,ce)|0))<<13)|0;u=((i=i+Math.imul(f,ue)|0)+(o>>>13)|0)+(Te>>>26)|0,Te&=67108863,n=Math.imul(B,F),o=(o=Math.imul(B,q))+Math.imul(D,F)|0,i=Math.imul(D,q),n=n+Math.imul(N,H)|0,o=(o=o+Math.imul(N,G)|0)+Math.imul(P,H)|0,i=i+Math.imul(P,G)|0,n=n+Math.imul(C,V)|0,o=(o=o+Math.imul(C,W)|0)+Math.imul(R,V)|0,i=i+Math.imul(R,W)|0,n=n+Math.imul(S,Y)|0,o=(o=o+Math.imul(S,X)|0)+Math.imul(A,Y)|0,i=i+Math.imul(A,X)|0,n=n+Math.imul(T,Z)|0,o=(o=o+Math.imul(T,ee)|0)+Math.imul(k,Z)|0,i=i+Math.imul(k,ee)|0,n=n+Math.imul(w,re)|0,o=(o=o+Math.imul(w,ne)|0)+Math.imul(_,re)|0,i=i+Math.imul(_,ne)|0,n=n+Math.imul(g,ie)|0,o=(o=o+Math.imul(g,ae)|0)+Math.imul(b,ie)|0,i=i+Math.imul(b,ae)|0,n=n+Math.imul(p,ce)|0,o=(o=o+Math.imul(p,ue)|0)+Math.imul(y,ce)|0,i=i+Math.imul(y,ue)|0;var ke=(u+(n=n+Math.imul(d,de)|0)|0)+((8191&(o=(o=o+Math.imul(d,fe)|0)+Math.imul(f,de)|0))<<13)|0;u=((i=i+Math.imul(f,fe)|0)+(o>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(L,F),o=(o=Math.imul(L,q))+Math.imul(U,F)|0,i=Math.imul(U,q),n=n+Math.imul(B,H)|0,o=(o=o+Math.imul(B,G)|0)+Math.imul(D,H)|0,i=i+Math.imul(D,G)|0,n=n+Math.imul(N,V)|0,o=(o=o+Math.imul(N,W)|0)+Math.imul(P,V)|0,i=i+Math.imul(P,W)|0,n=n+Math.imul(C,Y)|0,o=(o=o+Math.imul(C,X)|0)+Math.imul(R,Y)|0,i=i+Math.imul(R,X)|0,n=n+Math.imul(S,Z)|0,o=(o=o+Math.imul(S,ee)|0)+Math.imul(A,Z)|0,i=i+Math.imul(A,ee)|0,n=n+Math.imul(T,re)|0,o=(o=o+Math.imul(T,ne)|0)+Math.imul(k,re)|0,i=i+Math.imul(k,ne)|0,n=n+Math.imul(w,ie)|0,o=(o=o+Math.imul(w,ae)|0)+Math.imul(_,ie)|0,i=i+Math.imul(_,ae)|0,n=n+Math.imul(g,ce)|0,o=(o=o+Math.imul(g,ue)|0)+Math.imul(b,ce)|0,i=i+Math.imul(b,ue)|0,n=n+Math.imul(p,de)|0,o=(o=o+Math.imul(p,fe)|0)+Math.imul(y,de)|0,i=i+Math.imul(y,fe)|0;var $e=(u+(n=n+Math.imul(d,pe)|0)|0)+((8191&(o=(o=o+Math.imul(d,ye)|0)+Math.imul(f,pe)|0))<<13)|0;u=((i=i+Math.imul(f,ye)|0)+(o>>>13)|0)+($e>>>26)|0,$e&=67108863,n=Math.imul(L,H),o=(o=Math.imul(L,G))+Math.imul(U,H)|0,i=Math.imul(U,G),n=n+Math.imul(B,V)|0,o=(o=o+Math.imul(B,W)|0)+Math.imul(D,V)|0,i=i+Math.imul(D,W)|0,n=n+Math.imul(N,Y)|0,o=(o=o+Math.imul(N,X)|0)+Math.imul(P,Y)|0,i=i+Math.imul(P,X)|0,n=n+Math.imul(C,Z)|0,o=(o=o+Math.imul(C,ee)|0)+Math.imul(R,Z)|0,i=i+Math.imul(R,ee)|0,n=n+Math.imul(S,re)|0,o=(o=o+Math.imul(S,ne)|0)+Math.imul(A,re)|0,i=i+Math.imul(A,ne)|0,n=n+Math.imul(T,ie)|0,o=(o=o+Math.imul(T,ae)|0)+Math.imul(k,ie)|0,i=i+Math.imul(k,ae)|0,n=n+Math.imul(w,ce)|0,o=(o=o+Math.imul(w,ue)|0)+Math.imul(_,ce)|0,i=i+Math.imul(_,ue)|0,n=n+Math.imul(g,de)|0,o=(o=o+Math.imul(g,fe)|0)+Math.imul(b,de)|0,i=i+Math.imul(b,fe)|0;var Se=(u+(n=n+Math.imul(p,pe)|0)|0)+((8191&(o=(o=o+Math.imul(p,ye)|0)+Math.imul(y,pe)|0))<<13)|0;u=((i=i+Math.imul(y,ye)|0)+(o>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(L,V),o=(o=Math.imul(L,W))+Math.imul(U,V)|0,i=Math.imul(U,W),n=n+Math.imul(B,Y)|0,o=(o=o+Math.imul(B,X)|0)+Math.imul(D,Y)|0,i=i+Math.imul(D,X)|0,n=n+Math.imul(N,Z)|0,o=(o=o+Math.imul(N,ee)|0)+Math.imul(P,Z)|0,i=i+Math.imul(P,ee)|0,n=n+Math.imul(C,re)|0,o=(o=o+Math.imul(C,ne)|0)+Math.imul(R,re)|0,i=i+Math.imul(R,ne)|0,n=n+Math.imul(S,ie)|0,o=(o=o+Math.imul(S,ae)|0)+Math.imul(A,ie)|0,i=i+Math.imul(A,ae)|0,n=n+Math.imul(T,ce)|0,o=(o=o+Math.imul(T,ue)|0)+Math.imul(k,ce)|0,i=i+Math.imul(k,ue)|0,n=n+Math.imul(w,de)|0,o=(o=o+Math.imul(w,fe)|0)+Math.imul(_,de)|0,i=i+Math.imul(_,fe)|0;var Ae=(u+(n=n+Math.imul(g,pe)|0)|0)+((8191&(o=(o=o+Math.imul(g,ye)|0)+Math.imul(b,pe)|0))<<13)|0;u=((i=i+Math.imul(b,ye)|0)+(o>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(L,Y),o=(o=Math.imul(L,X))+Math.imul(U,Y)|0,i=Math.imul(U,X),n=n+Math.imul(B,Z)|0,o=(o=o+Math.imul(B,ee)|0)+Math.imul(D,Z)|0,i=i+Math.imul(D,ee)|0,n=n+Math.imul(N,re)|0,o=(o=o+Math.imul(N,ne)|0)+Math.imul(P,re)|0,i=i+Math.imul(P,ne)|0,n=n+Math.imul(C,ie)|0,o=(o=o+Math.imul(C,ae)|0)+Math.imul(R,ie)|0,i=i+Math.imul(R,ae)|0,n=n+Math.imul(S,ce)|0,o=(o=o+Math.imul(S,ue)|0)+Math.imul(A,ce)|0,i=i+Math.imul(A,ue)|0,n=n+Math.imul(T,de)|0,o=(o=o+Math.imul(T,fe)|0)+Math.imul(k,de)|0,i=i+Math.imul(k,fe)|0;var Ee=(u+(n=n+Math.imul(w,pe)|0)|0)+((8191&(o=(o=o+Math.imul(w,ye)|0)+Math.imul(_,pe)|0))<<13)|0;u=((i=i+Math.imul(_,ye)|0)+(o>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(L,Z),o=(o=Math.imul(L,ee))+Math.imul(U,Z)|0,i=Math.imul(U,ee),n=n+Math.imul(B,re)|0,o=(o=o+Math.imul(B,ne)|0)+Math.imul(D,re)|0,i=i+Math.imul(D,ne)|0,n=n+Math.imul(N,ie)|0,o=(o=o+Math.imul(N,ae)|0)+Math.imul(P,ie)|0,i=i+Math.imul(P,ae)|0,n=n+Math.imul(C,ce)|0,o=(o=o+Math.imul(C,ue)|0)+Math.imul(R,ce)|0,i=i+Math.imul(R,ue)|0,n=n+Math.imul(S,de)|0,o=(o=o+Math.imul(S,fe)|0)+Math.imul(A,de)|0,i=i+Math.imul(A,fe)|0;var Ce=(u+(n=n+Math.imul(T,pe)|0)|0)+((8191&(o=(o=o+Math.imul(T,ye)|0)+Math.imul(k,pe)|0))<<13)|0;u=((i=i+Math.imul(k,ye)|0)+(o>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,n=Math.imul(L,re),o=(o=Math.imul(L,ne))+Math.imul(U,re)|0,i=Math.imul(U,ne),n=n+Math.imul(B,ie)|0,o=(o=o+Math.imul(B,ae)|0)+Math.imul(D,ie)|0,i=i+Math.imul(D,ae)|0,n=n+Math.imul(N,ce)|0,o=(o=o+Math.imul(N,ue)|0)+Math.imul(P,ce)|0,i=i+Math.imul(P,ue)|0,n=n+Math.imul(C,de)|0,o=(o=o+Math.imul(C,fe)|0)+Math.imul(R,de)|0,i=i+Math.imul(R,fe)|0;var Re=(u+(n=n+Math.imul(S,pe)|0)|0)+((8191&(o=(o=o+Math.imul(S,ye)|0)+Math.imul(A,pe)|0))<<13)|0;u=((i=i+Math.imul(A,ye)|0)+(o>>>13)|0)+(Re>>>26)|0,Re&=67108863,n=Math.imul(L,ie),o=(o=Math.imul(L,ae))+Math.imul(U,ie)|0,i=Math.imul(U,ae),n=n+Math.imul(B,ce)|0,o=(o=o+Math.imul(B,ue)|0)+Math.imul(D,ce)|0,i=i+Math.imul(D,ue)|0,n=n+Math.imul(N,de)|0,o=(o=o+Math.imul(N,fe)|0)+Math.imul(P,de)|0,i=i+Math.imul(P,fe)|0;var Oe=(u+(n=n+Math.imul(C,pe)|0)|0)+((8191&(o=(o=o+Math.imul(C,ye)|0)+Math.imul(R,pe)|0))<<13)|0;u=((i=i+Math.imul(R,ye)|0)+(o>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,n=Math.imul(L,ce),o=(o=Math.imul(L,ue))+Math.imul(U,ce)|0,i=Math.imul(U,ue),n=n+Math.imul(B,de)|0,o=(o=o+Math.imul(B,fe)|0)+Math.imul(D,de)|0,i=i+Math.imul(D,fe)|0;var Ne=(u+(n=n+Math.imul(N,pe)|0)|0)+((8191&(o=(o=o+Math.imul(N,ye)|0)+Math.imul(P,pe)|0))<<13)|0;u=((i=i+Math.imul(P,ye)|0)+(o>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,n=Math.imul(L,de),o=(o=Math.imul(L,fe))+Math.imul(U,de)|0,i=Math.imul(U,fe);var Pe=(u+(n=n+Math.imul(B,pe)|0)|0)+((8191&(o=(o=o+Math.imul(B,ye)|0)+Math.imul(D,pe)|0))<<13)|0;u=((i=i+Math.imul(D,ye)|0)+(o>>>13)|0)+(Pe>>>26)|0,Pe&=67108863;var Me=(u+(n=Math.imul(L,pe))|0)+((8191&(o=(o=Math.imul(L,ye))+Math.imul(U,pe)|0))<<13)|0;return u=((i=Math.imul(U,ye))+(o>>>13)|0)+(Me>>>26)|0,Me&=67108863,c[0]=me,c[1]=ge,c[2]=be,c[3]=ve,c[4]=we,c[5]=_e,c[6]=Ie,c[7]=Te,c[8]=ke,c[9]=$e,c[10]=Se,c[11]=Ae,c[12]=Ee,c[13]=Ce,c[14]=Re,c[15]=Oe,c[16]=Ne,c[17]=Pe,c[18]=Me,0!==u&&(c[19]=u,r.length++),r};function p(e,t,r){return(new y).mulp(e,t,r)}function y(e,t){this.x=e,this.y=t}Math.imul||(h=f),o.prototype.mulTo=function(e,t){var r,n=this.length+e.length;return r=10===this.length&&10===e.length?h(this,e,t):n<63?f(this,e,t):n<1024?function(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var n=0,o=0,i=0;i>>26)|0)>>>26,a&=67108863}r.words[i]=s,n=a,a=o}return 0!==n?r.words[i]=n:r.length--,r.strip()}(this,e,t):p(this,e,t),r},y.prototype.makeRBT=function(e){for(var t=new Array(e),r=o.prototype._countBits(e)-1,n=0;n>=1;return n},y.prototype.permute=function(e,t,r,n,o,i){for(var a=0;a>>=1)o++;return 1<>>=13,n[2*a+1]=8191&i,i>>>=13;for(a=2*t;a>=26,t+=o/67108864|0,t+=i>>>26,this.words[n]=67108863&i}return 0!==t&&(this.words[n]=t,this.length++),this},o.prototype.muln=function(e){return this.clone().imuln(e)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r>>o}return t}(e);if(0===t.length)return new o(1);for(var r=this,n=0;n=0);var t,n=e%26,o=(e-n)/26,i=67108863>>>26-n<<26-n;if(0!==n){var a=0;for(t=0;t>>26-n}a&&(this.words[t]=a,this.length++)}if(0!==o){for(t=this.length-1;t>=0;t--)this.words[t+o]=this.words[t];for(t=0;t=0),o=t?(t-t%26)/26:0;var i=e%26,a=Math.min((e-i)/26,this.length),s=67108863^67108863>>>i<a)for(this.length-=a,u=0;u=0&&(0!==l||u>=o);u--){var d=0|this.words[u];this.words[u]=l<<26-i|d>>>i,l=d&s}return c&&0!==l&&(c.words[c.length++]=l),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(e,t,n){return r(0===this.negative),this.iushrn(e,t,n)},o.prototype.shln=function(e){return this.clone().ishln(e)},o.prototype.ushln=function(e){return this.clone().iushln(e)},o.prototype.shrn=function(e){return this.clone().ishrn(e)},o.prototype.ushrn=function(e){return this.clone().iushrn(e)},o.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26,o=1<=0);var t=e%26,n=(e-t)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==t&&n++,this.length=Math.min(n,this.length),0!==t){var o=67108863^67108863>>>t<=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},o.prototype.isubn=function(e){if(r("number"==typeof e),r(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t>26)-(c/67108864|0),this.words[o+n]=67108863&i}for(;o>26,this.words[o+n]=67108863&i;if(0===s)return this.strip();for(r(-1===s),s=0,o=0;o>26,this.words[o]=67108863&i;return this.negative=1,this.strip()},o.prototype._wordDiv=function(e,t){var r=(this.length,e.length),n=this.clone(),i=e,a=0|i.words[i.length-1];0!==(r=26-this._countBits(a))&&(i=i.ushln(r),n.iushln(r),a=0|i.words[i.length-1]);var s,c=n.length-i.length;if("mod"!==t){(s=new o(null)).length=c+1,s.words=new Array(s.length);for(var u=0;u=0;d--){var f=67108864*(0|n.words[i.length+d])+(0|n.words[i.length+d-1]);for(f=Math.min(f/a|0,67108863),n._ishlnsubmul(i,f,d);0!==n.negative;)f--,n.negative=0,n._ishlnsubmul(i,1,d),n.isZero()||(n.negative^=1);s&&(s.words[d]=f)}return s&&s.strip(),n.strip(),"div"!==t&&0!==r&&n.iushrn(r),{div:s||null,mod:n}},o.prototype.divmod=function(e,t,n){return r(!e.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===e.negative?(s=this.neg().divmod(e,t),"mod"!==t&&(i=s.div.neg()),"div"!==t&&(a=s.mod.neg(),n&&0!==a.negative&&a.iadd(e)),{div:i,mod:a}):0===this.negative&&0!==e.negative?(s=this.divmod(e.neg(),t),"mod"!==t&&(i=s.div.neg()),{div:i,mod:s.mod}):this.negative&e.negative?(s=this.neg().divmod(e.neg(),t),"div"!==t&&(a=s.mod.neg(),n&&0!==a.negative&&a.isub(e)),{div:s.div,mod:a}):e.length>this.length||this.cmp(e)<0?{div:new o(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new o(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new o(this.modn(e.words[0]))}:this._wordDiv(e,t);var i,a,s},o.prototype.div=function(e){return this.divmod(e,"div",!1).div},o.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},o.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},o.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,n=e.ushrn(1),o=e.andln(1),i=r.cmp(n);return i<0||1===o&&0===i?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},o.prototype.modn=function(e){r(e<=67108863);for(var t=(1<<26)%e,n=0,o=this.length-1;o>=0;o--)n=(t*n+(0|this.words[o]))%e;return n},o.prototype.idivn=function(e){r(e<=67108863);for(var t=0,n=this.length-1;n>=0;n--){var o=(0|this.words[n])+67108864*t;this.words[n]=o/e|0,t=o%e}return this.strip()},o.prototype.divn=function(e){return this.clone().idivn(e)},o.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i=new o(1),a=new o(0),s=new o(0),c=new o(1),u=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++u;for(var l=n.clone(),d=t.clone();!t.isZero();){for(var f=0,h=1;!(t.words[0]&h)&&f<26;++f,h<<=1);if(f>0)for(t.iushrn(f);f-- >0;)(i.isOdd()||a.isOdd())&&(i.iadd(l),a.isub(d)),i.iushrn(1),a.iushrn(1);for(var p=0,y=1;!(n.words[0]&y)&&p<26;++p,y<<=1);if(p>0)for(n.iushrn(p);p-- >0;)(s.isOdd()||c.isOdd())&&(s.iadd(l),c.isub(d)),s.iushrn(1),c.iushrn(1);t.cmp(n)>=0?(t.isub(n),i.isub(s),a.isub(c)):(n.isub(t),s.isub(i),c.isub(a))}return{a:s,b:c,gcd:n.iushln(u)}},o.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i,a=new o(1),s=new o(0),c=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var u=0,l=1;!(t.words[0]&l)&&u<26;++u,l<<=1);if(u>0)for(t.iushrn(u);u-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);for(var d=0,f=1;!(n.words[0]&f)&&d<26;++d,f<<=1);if(d>0)for(n.iushrn(d);d-- >0;)s.isOdd()&&s.iadd(c),s.iushrn(1);t.cmp(n)>=0?(t.isub(n),a.isub(s)):(n.isub(t),s.isub(a))}return(i=0===t.cmpn(1)?a:s).cmpn(0)<0&&i.iadd(e),i},o.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var n=0;t.isEven()&&r.isEven();n++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var o=t.cmp(r);if(o<0){var i=t;t=r,r=i}else if(0===o||0===r.cmpn(1))break;t.isub(r)}return r.iushln(n)},o.prototype.invm=function(e){return this.egcd(e).a.umod(e)},o.prototype.isEven=function(){return!(1&this.words[0])},o.prototype.isOdd=function(){return!(1&~this.words[0])},o.prototype.andln=function(e){return this.words[0]&e},o.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,n=(e-t)/26,o=1<>>26,s&=67108863,this.words[a]=s}return 0!==i&&(this.words[a]=i,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this.strip(),this.length>1)t=1;else{n&&(e=-e),r(e<=67108863,"Number is too big");var o=0|this.words[0];t=o===e?0:oe.length)return 1;if(this.length=0;r--){var n=0|this.words[r],o=0|e.words[r];if(n!==o){no&&(t=1);break}}return t},o.prototype.gtn=function(e){return 1===this.cmpn(e)},o.prototype.gt=function(e){return 1===this.cmp(e)},o.prototype.gten=function(e){return this.cmpn(e)>=0},o.prototype.gte=function(e){return this.cmp(e)>=0},o.prototype.ltn=function(e){return-1===this.cmpn(e)},o.prototype.lt=function(e){return-1===this.cmp(e)},o.prototype.lten=function(e){return this.cmpn(e)<=0},o.prototype.lte=function(e){return this.cmp(e)<=0},o.prototype.eqn=function(e){return 0===this.cmpn(e)},o.prototype.eq=function(e){return 0===this.cmp(e)},o.red=function(e){return new I(e)},o.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},o.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(e){return this.red=e,this},o.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},o.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},o.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},o.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},o.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},o.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},o.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},o.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},o.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var m={k256:null,p224:null,p192:null,p25519:null};function g(e,t){this.name=e,this.p=new o(t,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function b(){g.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function v(){g.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function w(){g.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function _(){g.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function I(e){if("string"==typeof e){var t=o._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function T(e){I.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}g.prototype._tmp=function(){var e=new o(null);return e.words=new Array(Math.ceil(this.n/13)),e},g.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var n=t0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},g.prototype.split=function(e,t){e.iushrn(this.n,0,t)},g.prototype.imulK=function(e){return e.imul(this.k)},n(b,g),b.prototype.split=function(e,t){for(var r=4194303,n=Math.min(e.length,9),o=0;o>>22,i=a}i>>>=22,e.words[o-10]=i,0===i&&e.length>10?e.length-=10:e.length-=9},b.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r>>=26,e.words[r]=o,t=n}return 0!==t&&(e.words[e.length++]=t),e},o._prime=function(e){if(m[e])return m[e];var t;if("k256"===e)t=new b;else if("p224"===e)t=new v;else if("p192"===e)t=new w;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new _}return m[e]=t,t},I.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},I.prototype._verify2=function(e,t){r(!(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},I.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},I.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},I.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},I.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},I.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},I.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},I.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},I.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},I.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},I.prototype.isqr=function(e){return this.imul(e,e.clone())},I.prototype.sqr=function(e){return this.mul(e,e)},I.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var n=this.m.add(new o(1)).iushrn(2);return this.pow(e,n)}for(var i=this.m.subn(1),a=0;!i.isZero()&&0===i.andln(1);)a++,i.iushrn(1);r(!i.isZero());var s=new o(1).toRed(this),c=s.redNeg(),u=this.m.subn(1).iushrn(1),l=this.m.bitLength();for(l=new o(2*l*l).toRed(this);0!==this.pow(l,u).cmp(c);)l.redIAdd(c);for(var d=this.pow(l,i),f=this.pow(e,i.addn(1).iushrn(1)),h=this.pow(e,i),p=a;0!==h.cmp(s);){for(var y=h,m=0;0!==y.cmp(s);m++)y=y.redSqr();r(m=0;n--){for(var u=t.words[n],l=c-1;l>=0;l--){var d=u>>l&1;i!==r[0]&&(i=this.sqr(i)),0!==d||0!==a?(a<<=1,a|=d,(4===++s||0===n&&0===l)&&(i=this.mul(i,r[a]),s=0,a=0)):s=0}c=26}return i},I.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},I.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},o.mont=function(e){return new T(e)},n(T,I),T.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},T.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},T.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=r.isub(n).iushrn(this.shift),i=o;return o.cmp(this.m)>=0?i=o.isub(this.m):o.cmpn(0)<0&&(i=o.iadd(this.m)),i._forceRed(this)},T.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new o(0)._forceRed(this);var r=e.mul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},T.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e,commonjsGlobal)}(bn$4)),bn$4.exports}function requireWithPublic(){if(hasRequiredWithPublic)return withPublic_1;hasRequiredWithPublic=1;var e=requireBn(),t=requireSafeBuffer$1().Buffer;return withPublic_1=function(r,n){return t.from(r.toRed(e.mont(n.modulus)).redPow(new e(n.publicExponent)).fromRed().toArray())}}function requirePublicEncrypt(){if(hasRequiredPublicEncrypt)return publicEncrypt;hasRequiredPublicEncrypt=1;var e=requireParseAsn1(),t=requireBrowser$b(),r=requireBrowser$9(),n=requireMgf(),o=requireXor(),i=requireBn(),a=requireWithPublic(),s=requireBrowserifyRsa(),c=requireSafeBuffer$1().Buffer;return publicEncrypt=function(u,l,d){var f;f=u.padding?u.padding:d?1:4;var h,p=e(u);if(4===f)h=function(e,a){var s=e.modulus.byteLength(),u=a.length,l=r("sha1").update(c.alloc(0)).digest(),d=l.length,f=2*d;if(u>s-f-2)throw new Error("message too long");var h=c.alloc(s-u-f-2),p=s-d-1,y=t(d),m=o(c.concat([l,h,c.alloc(1,1),a],p),n(y,p)),g=o(y,n(m,d));return new i(c.concat([c.alloc(1),g,m],s))}(p,l);else if(1===f)h=function(e,r,n){var o,a=r.length,s=e.modulus.byteLength();if(a>s-11)throw new Error("message too long");o=n?c.alloc(s-a-3,255):function(e){var r,n=c.allocUnsafe(e),o=0,i=t(2*e),a=0;for(;o=0)throw new Error("data too long for modulus")}return d?s(h,p):a(h,p)}}function requirePrivateDecrypt(){if(hasRequiredPrivateDecrypt)return privateDecrypt;hasRequiredPrivateDecrypt=1;var e=requireParseAsn1(),t=requireMgf(),r=requireXor(),n=requireBn(),o=requireBrowserifyRsa(),i=requireBrowser$9(),a=requireWithPublic(),s=requireSafeBuffer$1().Buffer;return privateDecrypt=function(c,u,l){var d;d=c.padding?c.padding:l?1:4;var f,h=e(c),p=h.modulus.byteLength();if(u.length>p||new n(u).cmp(h.modulus)>=0)throw new Error("decryption error");f=l?a(new n(u),h):o(u,h);var y=s.alloc(p-f.length);if(f=s.concat([y,f],p),4===d)return function(e,n){var o=e.modulus.byteLength(),a=i("sha1").update(s.alloc(0)).digest(),c=a.length;if(0!==n[0])throw new Error("decryption error");var u=n.slice(1,c+1),l=n.slice(c+1),d=r(u,t(l,c)),f=r(l,t(d,o-c-1));if(function(e,t){e=s.from(e),t=s.from(t);var r=0,n=e.length;e.length!==t.length&&(r++,n=Math.min(e.length,t.length));var o=-1;for(;++o=t.length){i++;break}var a=t.slice(2,o-1);("0002"!==n.toString("hex")&&!r||"0001"!==n.toString("hex")&&r)&&i++;a.length<8&&i++;if(i)throw new Error("decryption error");return t.slice(o)}(0,f,l);if(3===d)return f;throw new Error("unknown padding")}}function requireBrowser$1(){return hasRequiredBrowser$1||(hasRequiredBrowser$1=1,function(e){e.publicEncrypt=requirePublicEncrypt(),e.privateDecrypt=requirePrivateDecrypt(),e.privateEncrypt=function(t,r){return e.publicEncrypt(t,r,!0)},e.publicDecrypt=function(t,r){return e.privateDecrypt(t,r,!0)}}(browser$6)),browser$6}bn$4.exports;var browser$5={},hasRequiredBrowser,hasRequiredCryptoBrowserify;function requireBrowser(){if(hasRequiredBrowser)return browser$5;function e(){throw new Error("secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11")}hasRequiredBrowser=1;var t=requireSafeBuffer$1(),r=requireBrowser$b(),n=t.Buffer,o=t.kMaxLength,i=commonjsGlobal.crypto||commonjsGlobal.msCrypto,a=Math.pow(2,32)-1;function s(e,t){if("number"!=typeof e||e!=e)throw new TypeError("offset must be a number");if(e>a||e<0)throw new TypeError("offset must be a uint32");if(e>o||e>t)throw new RangeError("offset out of range")}function c(e,t,r){if("number"!=typeof e||e!=e)throw new TypeError("size must be a number");if(e>a||e<0)throw new TypeError("size must be a uint32");if(e+t>r||e>o)throw new RangeError("buffer too small")}function u(e,t,n,o){if(process$1.browser){var a=e.buffer,s=new Uint8Array(a,t,n);return i.getRandomValues(s),o?void process$1.nextTick((function(){o(null,e)})):e}if(!o)return r(n).copy(e,t),e;r(n,(function(r,n){if(r)return o(r);n.copy(e,t),o(null,e)}))}return i&&i.getRandomValues||!process$1.browser?(browser$5.randomFill=function(e,t,r,o){if(!(n.isBuffer(e)||e instanceof commonjsGlobal.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if("function"==typeof t)o=t,t=0,r=e.length;else if("function"==typeof r)o=r,r=e.length-t;else if("function"!=typeof o)throw new TypeError('"cb" argument must be a function');return s(t,e.length),c(r,t,e.length),u(e,t,r,o)},browser$5.randomFillSync=function(e,t,r){void 0===t&&(t=0);if(!(n.isBuffer(e)||e instanceof commonjsGlobal.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');s(t,e.length),void 0===r&&(r=e.length-t);return c(r,t,e.length),u(e,t,r)}):(browser$5.randomFill=e,browser$5.randomFillSync=e),browser$5}function requireCryptoBrowserify(){if(hasRequiredCryptoBrowserify)return cryptoBrowserify;hasRequiredCryptoBrowserify=1,cryptoBrowserify.randomBytes=cryptoBrowserify.rng=cryptoBrowserify.pseudoRandomBytes=cryptoBrowserify.prng=requireBrowser$b(),cryptoBrowserify.createHash=cryptoBrowserify.Hash=requireBrowser$9(),cryptoBrowserify.createHmac=cryptoBrowserify.Hmac=requireBrowser$8();var e=requireAlgos(),t=Object.keys(e),r=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(t);cryptoBrowserify.getHashes=function(){return r};var n=requireBrowser$7();cryptoBrowserify.pbkdf2=n.pbkdf2,cryptoBrowserify.pbkdf2Sync=n.pbkdf2Sync;var o=requireBrowser$5();cryptoBrowserify.Cipher=o.Cipher,cryptoBrowserify.createCipher=o.createCipher,cryptoBrowserify.Cipheriv=o.Cipheriv,cryptoBrowserify.createCipheriv=o.createCipheriv,cryptoBrowserify.Decipher=o.Decipher,cryptoBrowserify.createDecipher=o.createDecipher,cryptoBrowserify.Decipheriv=o.Decipheriv,cryptoBrowserify.createDecipheriv=o.createDecipheriv,cryptoBrowserify.getCiphers=o.getCiphers,cryptoBrowserify.listCiphers=o.listCiphers;var i=requireBrowser$4();cryptoBrowserify.DiffieHellmanGroup=i.DiffieHellmanGroup,cryptoBrowserify.createDiffieHellmanGroup=i.createDiffieHellmanGroup,cryptoBrowserify.getDiffieHellman=i.getDiffieHellman,cryptoBrowserify.createDiffieHellman=i.createDiffieHellman,cryptoBrowserify.DiffieHellman=i.DiffieHellman;var a=requireBrowser$3();cryptoBrowserify.createSign=a.createSign,cryptoBrowserify.Sign=a.Sign,cryptoBrowserify.createVerify=a.createVerify,cryptoBrowserify.Verify=a.Verify,cryptoBrowserify.createECDH=requireBrowser$2();var s=requireBrowser$1();cryptoBrowserify.publicEncrypt=s.publicEncrypt,cryptoBrowserify.privateEncrypt=s.privateEncrypt,cryptoBrowserify.publicDecrypt=s.publicDecrypt,cryptoBrowserify.privateDecrypt=s.privateDecrypt;var c=requireBrowser();return cryptoBrowserify.randomFill=c.randomFill,cryptoBrowserify.randomFillSync=c.randomFillSync,cryptoBrowserify.createCredentials=function(){throw new Error("sorry, createCredentials is not implemented yet\nwe accept pull requests\nhttps://github.com/browserify/crypto-browserify")},cryptoBrowserify.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6},cryptoBrowserify}!function(e){!function(e){var t=function(e){var t,r=new Float64Array(16);if(e)for(t=0;t>24&255,e[t+1]=r>>16&255,e[t+2]=r>>8&255,e[t+3]=255&r,e[t+4]=n>>24&255,e[t+5]=n>>16&255,e[t+6]=n>>8&255,e[t+7]=255&n}function p(e,t,r,n,o){var i,a=0;for(i=0;i>>8)-1}function y(e,t,r,n){return p(e,t,r,n,16)}function m(e,t,r,n){return p(e,t,r,n,32)}function g(e,t,r,n){!function(e,t,r,n){for(var o,i=255&n[0]|(255&n[1])<<8|(255&n[2])<<16|(255&n[3])<<24,a=255&r[0]|(255&r[1])<<8|(255&r[2])<<16|(255&r[3])<<24,s=255&r[4]|(255&r[5])<<8|(255&r[6])<<16|(255&r[7])<<24,c=255&r[8]|(255&r[9])<<8|(255&r[10])<<16|(255&r[11])<<24,u=255&r[12]|(255&r[13])<<8|(255&r[14])<<16|(255&r[15])<<24,l=255&n[4]|(255&n[5])<<8|(255&n[6])<<16|(255&n[7])<<24,d=255&t[0]|(255&t[1])<<8|(255&t[2])<<16|(255&t[3])<<24,f=255&t[4]|(255&t[5])<<8|(255&t[6])<<16|(255&t[7])<<24,h=255&t[8]|(255&t[9])<<8|(255&t[10])<<16|(255&t[11])<<24,p=255&t[12]|(255&t[13])<<8|(255&t[14])<<16|(255&t[15])<<24,y=255&n[8]|(255&n[9])<<8|(255&n[10])<<16|(255&n[11])<<24,m=255&r[16]|(255&r[17])<<8|(255&r[18])<<16|(255&r[19])<<24,g=255&r[20]|(255&r[21])<<8|(255&r[22])<<16|(255&r[23])<<24,b=255&r[24]|(255&r[25])<<8|(255&r[26])<<16|(255&r[27])<<24,v=255&r[28]|(255&r[29])<<8|(255&r[30])<<16|(255&r[31])<<24,w=255&n[12]|(255&n[13])<<8|(255&n[14])<<16|(255&n[15])<<24,_=i,I=a,T=s,k=c,$=u,S=l,A=d,E=f,C=h,R=p,O=y,N=m,P=g,M=b,B=v,D=w,x=0;x<20;x+=2)_^=(o=(P^=(o=(C^=(o=($^=(o=_+P|0)<<7|o>>>25)+_|0)<<9|o>>>23)+$|0)<<13|o>>>19)+C|0)<<18|o>>>14,S^=(o=(I^=(o=(M^=(o=(R^=(o=S+I|0)<<7|o>>>25)+S|0)<<9|o>>>23)+R|0)<<13|o>>>19)+M|0)<<18|o>>>14,O^=(o=(A^=(o=(T^=(o=(B^=(o=O+A|0)<<7|o>>>25)+O|0)<<9|o>>>23)+B|0)<<13|o>>>19)+T|0)<<18|o>>>14,D^=(o=(N^=(o=(E^=(o=(k^=(o=D+N|0)<<7|o>>>25)+D|0)<<9|o>>>23)+k|0)<<13|o>>>19)+E|0)<<18|o>>>14,_^=(o=(k^=(o=(T^=(o=(I^=(o=_+k|0)<<7|o>>>25)+_|0)<<9|o>>>23)+I|0)<<13|o>>>19)+T|0)<<18|o>>>14,S^=(o=($^=(o=(E^=(o=(A^=(o=S+$|0)<<7|o>>>25)+S|0)<<9|o>>>23)+A|0)<<13|o>>>19)+E|0)<<18|o>>>14,O^=(o=(R^=(o=(C^=(o=(N^=(o=O+R|0)<<7|o>>>25)+O|0)<<9|o>>>23)+N|0)<<13|o>>>19)+C|0)<<18|o>>>14,D^=(o=(B^=(o=(M^=(o=(P^=(o=D+B|0)<<7|o>>>25)+D|0)<<9|o>>>23)+P|0)<<13|o>>>19)+M|0)<<18|o>>>14;_=_+i|0,I=I+a|0,T=T+s|0,k=k+c|0,$=$+u|0,S=S+l|0,A=A+d|0,E=E+f|0,C=C+h|0,R=R+p|0,O=O+y|0,N=N+m|0,P=P+g|0,M=M+b|0,B=B+v|0,D=D+w|0,e[0]=_>>>0&255,e[1]=_>>>8&255,e[2]=_>>>16&255,e[3]=_>>>24&255,e[4]=I>>>0&255,e[5]=I>>>8&255,e[6]=I>>>16&255,e[7]=I>>>24&255,e[8]=T>>>0&255,e[9]=T>>>8&255,e[10]=T>>>16&255,e[11]=T>>>24&255,e[12]=k>>>0&255,e[13]=k>>>8&255,e[14]=k>>>16&255,e[15]=k>>>24&255,e[16]=$>>>0&255,e[17]=$>>>8&255,e[18]=$>>>16&255,e[19]=$>>>24&255,e[20]=S>>>0&255,e[21]=S>>>8&255,e[22]=S>>>16&255,e[23]=S>>>24&255,e[24]=A>>>0&255,e[25]=A>>>8&255,e[26]=A>>>16&255,e[27]=A>>>24&255,e[28]=E>>>0&255,e[29]=E>>>8&255,e[30]=E>>>16&255,e[31]=E>>>24&255,e[32]=C>>>0&255,e[33]=C>>>8&255,e[34]=C>>>16&255,e[35]=C>>>24&255,e[36]=R>>>0&255,e[37]=R>>>8&255,e[38]=R>>>16&255,e[39]=R>>>24&255,e[40]=O>>>0&255,e[41]=O>>>8&255,e[42]=O>>>16&255,e[43]=O>>>24&255,e[44]=N>>>0&255,e[45]=N>>>8&255,e[46]=N>>>16&255,e[47]=N>>>24&255,e[48]=P>>>0&255,e[49]=P>>>8&255,e[50]=P>>>16&255,e[51]=P>>>24&255,e[52]=M>>>0&255,e[53]=M>>>8&255,e[54]=M>>>16&255,e[55]=M>>>24&255,e[56]=B>>>0&255,e[57]=B>>>8&255,e[58]=B>>>16&255,e[59]=B>>>24&255,e[60]=D>>>0&255,e[61]=D>>>8&255,e[62]=D>>>16&255,e[63]=D>>>24&255}(e,t,r,n)}function b(e,t,r,n){!function(e,t,r,n){for(var o,i=255&n[0]|(255&n[1])<<8|(255&n[2])<<16|(255&n[3])<<24,a=255&r[0]|(255&r[1])<<8|(255&r[2])<<16|(255&r[3])<<24,s=255&r[4]|(255&r[5])<<8|(255&r[6])<<16|(255&r[7])<<24,c=255&r[8]|(255&r[9])<<8|(255&r[10])<<16|(255&r[11])<<24,u=255&r[12]|(255&r[13])<<8|(255&r[14])<<16|(255&r[15])<<24,l=255&n[4]|(255&n[5])<<8|(255&n[6])<<16|(255&n[7])<<24,d=255&t[0]|(255&t[1])<<8|(255&t[2])<<16|(255&t[3])<<24,f=255&t[4]|(255&t[5])<<8|(255&t[6])<<16|(255&t[7])<<24,h=255&t[8]|(255&t[9])<<8|(255&t[10])<<16|(255&t[11])<<24,p=255&t[12]|(255&t[13])<<8|(255&t[14])<<16|(255&t[15])<<24,y=255&n[8]|(255&n[9])<<8|(255&n[10])<<16|(255&n[11])<<24,m=255&r[16]|(255&r[17])<<8|(255&r[18])<<16|(255&r[19])<<24,g=255&r[20]|(255&r[21])<<8|(255&r[22])<<16|(255&r[23])<<24,b=255&r[24]|(255&r[25])<<8|(255&r[26])<<16|(255&r[27])<<24,v=255&r[28]|(255&r[29])<<8|(255&r[30])<<16|(255&r[31])<<24,w=255&n[12]|(255&n[13])<<8|(255&n[14])<<16|(255&n[15])<<24,_=0;_<20;_+=2)i^=(o=(g^=(o=(h^=(o=(u^=(o=i+g|0)<<7|o>>>25)+i|0)<<9|o>>>23)+u|0)<<13|o>>>19)+h|0)<<18|o>>>14,l^=(o=(a^=(o=(b^=(o=(p^=(o=l+a|0)<<7|o>>>25)+l|0)<<9|o>>>23)+p|0)<<13|o>>>19)+b|0)<<18|o>>>14,y^=(o=(d^=(o=(s^=(o=(v^=(o=y+d|0)<<7|o>>>25)+y|0)<<9|o>>>23)+v|0)<<13|o>>>19)+s|0)<<18|o>>>14,w^=(o=(m^=(o=(f^=(o=(c^=(o=w+m|0)<<7|o>>>25)+w|0)<<9|o>>>23)+c|0)<<13|o>>>19)+f|0)<<18|o>>>14,i^=(o=(c^=(o=(s^=(o=(a^=(o=i+c|0)<<7|o>>>25)+i|0)<<9|o>>>23)+a|0)<<13|o>>>19)+s|0)<<18|o>>>14,l^=(o=(u^=(o=(f^=(o=(d^=(o=l+u|0)<<7|o>>>25)+l|0)<<9|o>>>23)+d|0)<<13|o>>>19)+f|0)<<18|o>>>14,y^=(o=(p^=(o=(h^=(o=(m^=(o=y+p|0)<<7|o>>>25)+y|0)<<9|o>>>23)+m|0)<<13|o>>>19)+h|0)<<18|o>>>14,w^=(o=(v^=(o=(b^=(o=(g^=(o=w+v|0)<<7|o>>>25)+w|0)<<9|o>>>23)+g|0)<<13|o>>>19)+b|0)<<18|o>>>14;e[0]=i>>>0&255,e[1]=i>>>8&255,e[2]=i>>>16&255,e[3]=i>>>24&255,e[4]=l>>>0&255,e[5]=l>>>8&255,e[6]=l>>>16&255,e[7]=l>>>24&255,e[8]=y>>>0&255,e[9]=y>>>8&255,e[10]=y>>>16&255,e[11]=y>>>24&255,e[12]=w>>>0&255,e[13]=w>>>8&255,e[14]=w>>>16&255,e[15]=w>>>24&255,e[16]=d>>>0&255,e[17]=d>>>8&255,e[18]=d>>>16&255,e[19]=d>>>24&255,e[20]=f>>>0&255,e[21]=f>>>8&255,e[22]=f>>>16&255,e[23]=f>>>24&255,e[24]=h>>>0&255,e[25]=h>>>8&255,e[26]=h>>>16&255,e[27]=h>>>24&255,e[28]=p>>>0&255,e[29]=p>>>8&255,e[30]=p>>>16&255,e[31]=p>>>24&255}(e,t,r,n)}var v=new Uint8Array([101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107]);function w(e,t,r,n,o,i,a){var s,c,u=new Uint8Array(16),l=new Uint8Array(64);for(c=0;c<16;c++)u[c]=0;for(c=0;c<8;c++)u[c]=i[c];for(;o>=64;){for(g(l,u,a,v),c=0;c<64;c++)e[t+c]=r[n+c]^l[c];for(s=1,c=8;c<16;c++)s=s+(255&u[c])|0,u[c]=255&s,s>>>=8;o-=64,t+=64,n+=64}if(o>0)for(g(l,u,a,v),c=0;c=64;){for(g(c,s,o,v),a=0;a<64;a++)e[t+a]=c[a];for(i=1,a=8;a<16;a++)i=i+(255&s[a])|0,s[a]=255&i,i>>>=8;r-=64,t+=64}if(r>0)for(g(c,s,o,v),a=0;a>>13|r<<3),n=255&e[4]|(255&e[5])<<8,this.r[2]=7939&(r>>>10|n<<6),o=255&e[6]|(255&e[7])<<8,this.r[3]=8191&(n>>>7|o<<9),i=255&e[8]|(255&e[9])<<8,this.r[4]=255&(o>>>4|i<<12),this.r[5]=i>>>1&8190,a=255&e[10]|(255&e[11])<<8,this.r[6]=8191&(i>>>14|a<<2),s=255&e[12]|(255&e[13])<<8,this.r[7]=8065&(a>>>11|s<<5),c=255&e[14]|(255&e[15])<<8,this.r[8]=8191&(s>>>8|c<<8),this.r[9]=c>>>5&127,this.pad[0]=255&e[16]|(255&e[17])<<8,this.pad[1]=255&e[18]|(255&e[19])<<8,this.pad[2]=255&e[20]|(255&e[21])<<8,this.pad[3]=255&e[22]|(255&e[23])<<8,this.pad[4]=255&e[24]|(255&e[25])<<8,this.pad[5]=255&e[26]|(255&e[27])<<8,this.pad[6]=255&e[28]|(255&e[29])<<8,this.pad[7]=255&e[30]|(255&e[31])<<8};function $(e,t,r,n,o,i){var a=new k(i);return a.update(r,n,o),a.finish(e,t),0}function S(e,t,r,n,o,i){var a=new Uint8Array(16);return $(a,0,r,n,o,i),y(e,t,a,0)}function A(e,t,r,n,o){var i;if(r<32)return-1;for(T(e,0,t,0,r,n,o),$(e,16,e,32,r-32,e),i=0;i<16;i++)e[i]=0;return 0}function E(e,t,r,n,o){var i,a=new Uint8Array(32);if(r<32)return-1;if(I(a,0,32,n,o),0!==S(t,16,t,32,r-32,a))return-1;for(T(e,0,t,0,r,n,o),i=0;i<32;i++)e[i]=0;return 0}function C(e,t){var r;for(r=0;r<16;r++)e[r]=0|t[r]}function R(e){var t,r,n=1;for(t=0;t<16;t++)r=e[t]+n+65535,n=Math.floor(r/65536),e[t]=r-65536*n;e[0]+=n-1+37*(n-1)}function O(e,t,r){for(var n,o=~(r-1),i=0;i<16;i++)n=o&(e[i]^t[i]),e[i]^=n,t[i]^=n}function N(e,r){var n,o,i,a=t(),s=t();for(n=0;n<16;n++)s[n]=r[n];for(R(s),R(s),R(s),o=0;o<2;o++){for(a[0]=s[0]-65517,n=1;n<15;n++)a[n]=s[n]-65535-(a[n-1]>>16&1),a[n-1]&=65535;a[15]=s[15]-32767-(a[14]>>16&1),i=a[15]>>16&1,a[14]&=65535,O(s,a,1-i)}for(n=0;n<16;n++)e[2*n]=255&s[n],e[2*n+1]=s[n]>>8}function P(e,t){var r=new Uint8Array(32),n=new Uint8Array(32);return N(r,e),N(n,t),m(r,0,n,0)}function M(e){var t=new Uint8Array(32);return N(t,e),1&t[0]}function B(e,t){var r;for(r=0;r<16;r++)e[r]=t[2*r]+(t[2*r+1]<<8);e[15]&=32767}function D(e,t,r){for(var n=0;n<16;n++)e[n]=t[n]+r[n]}function x(e,t,r){for(var n=0;n<16;n++)e[n]=t[n]-r[n]}function L(e,t,r){var n,o,i=0,a=0,s=0,c=0,u=0,l=0,d=0,f=0,h=0,p=0,y=0,m=0,g=0,b=0,v=0,w=0,_=0,I=0,T=0,k=0,$=0,S=0,A=0,E=0,C=0,R=0,O=0,N=0,P=0,M=0,B=0,D=r[0],x=r[1],L=r[2],U=r[3],j=r[4],F=r[5],q=r[6],K=r[7],H=r[8],G=r[9],z=r[10],V=r[11],W=r[12],Q=r[13],Y=r[14],X=r[15];i+=(n=t[0])*D,a+=n*x,s+=n*L,c+=n*U,u+=n*j,l+=n*F,d+=n*q,f+=n*K,h+=n*H,p+=n*G,y+=n*z,m+=n*V,g+=n*W,b+=n*Q,v+=n*Y,w+=n*X,a+=(n=t[1])*D,s+=n*x,c+=n*L,u+=n*U,l+=n*j,d+=n*F,f+=n*q,h+=n*K,p+=n*H,y+=n*G,m+=n*z,g+=n*V,b+=n*W,v+=n*Q,w+=n*Y,_+=n*X,s+=(n=t[2])*D,c+=n*x,u+=n*L,l+=n*U,d+=n*j,f+=n*F,h+=n*q,p+=n*K,y+=n*H,m+=n*G,g+=n*z,b+=n*V,v+=n*W,w+=n*Q,_+=n*Y,I+=n*X,c+=(n=t[3])*D,u+=n*x,l+=n*L,d+=n*U,f+=n*j,h+=n*F,p+=n*q,y+=n*K,m+=n*H,g+=n*G,b+=n*z,v+=n*V,w+=n*W,_+=n*Q,I+=n*Y,T+=n*X,u+=(n=t[4])*D,l+=n*x,d+=n*L,f+=n*U,h+=n*j,p+=n*F,y+=n*q,m+=n*K,g+=n*H,b+=n*G,v+=n*z,w+=n*V,_+=n*W,I+=n*Q,T+=n*Y,k+=n*X,l+=(n=t[5])*D,d+=n*x,f+=n*L,h+=n*U,p+=n*j,y+=n*F,m+=n*q,g+=n*K,b+=n*H,v+=n*G,w+=n*z,_+=n*V,I+=n*W,T+=n*Q,k+=n*Y,$+=n*X,d+=(n=t[6])*D,f+=n*x,h+=n*L,p+=n*U,y+=n*j,m+=n*F,g+=n*q,b+=n*K,v+=n*H,w+=n*G,_+=n*z,I+=n*V,T+=n*W,k+=n*Q,$+=n*Y,S+=n*X,f+=(n=t[7])*D,h+=n*x,p+=n*L,y+=n*U,m+=n*j,g+=n*F,b+=n*q,v+=n*K,w+=n*H,_+=n*G,I+=n*z,T+=n*V,k+=n*W,$+=n*Q,S+=n*Y,A+=n*X,h+=(n=t[8])*D,p+=n*x,y+=n*L,m+=n*U,g+=n*j,b+=n*F,v+=n*q,w+=n*K,_+=n*H,I+=n*G,T+=n*z,k+=n*V,$+=n*W,S+=n*Q,A+=n*Y,E+=n*X,p+=(n=t[9])*D,y+=n*x,m+=n*L,g+=n*U,b+=n*j,v+=n*F,w+=n*q,_+=n*K,I+=n*H,T+=n*G,k+=n*z,$+=n*V,S+=n*W,A+=n*Q,E+=n*Y,C+=n*X,y+=(n=t[10])*D,m+=n*x,g+=n*L,b+=n*U,v+=n*j,w+=n*F,_+=n*q,I+=n*K,T+=n*H,k+=n*G,$+=n*z,S+=n*V,A+=n*W,E+=n*Q,C+=n*Y,R+=n*X,m+=(n=t[11])*D,g+=n*x,b+=n*L,v+=n*U,w+=n*j,_+=n*F,I+=n*q,T+=n*K,k+=n*H,$+=n*G,S+=n*z,A+=n*V,E+=n*W,C+=n*Q,R+=n*Y,O+=n*X,g+=(n=t[12])*D,b+=n*x,v+=n*L,w+=n*U,_+=n*j,I+=n*F,T+=n*q,k+=n*K,$+=n*H,S+=n*G,A+=n*z,E+=n*V,C+=n*W,R+=n*Q,O+=n*Y,N+=n*X,b+=(n=t[13])*D,v+=n*x,w+=n*L,_+=n*U,I+=n*j,T+=n*F,k+=n*q,$+=n*K,S+=n*H,A+=n*G,E+=n*z,C+=n*V,R+=n*W,O+=n*Q,N+=n*Y,P+=n*X,v+=(n=t[14])*D,w+=n*x,_+=n*L,I+=n*U,T+=n*j,k+=n*F,$+=n*q,S+=n*K,A+=n*H,E+=n*G,C+=n*z,R+=n*V,O+=n*W,N+=n*Q,P+=n*Y,M+=n*X,w+=(n=t[15])*D,a+=38*(I+=n*L),s+=38*(T+=n*U),c+=38*(k+=n*j),u+=38*($+=n*F),l+=38*(S+=n*q),d+=38*(A+=n*K),f+=38*(E+=n*H),h+=38*(C+=n*G),p+=38*(R+=n*z),y+=38*(O+=n*V),m+=38*(N+=n*W),g+=38*(P+=n*Q),b+=38*(M+=n*Y),v+=38*(B+=n*X),i=(n=(i+=38*(_+=n*x))+(o=1)+65535)-65536*(o=Math.floor(n/65536)),a=(n=a+o+65535)-65536*(o=Math.floor(n/65536)),s=(n=s+o+65535)-65536*(o=Math.floor(n/65536)),c=(n=c+o+65535)-65536*(o=Math.floor(n/65536)),u=(n=u+o+65535)-65536*(o=Math.floor(n/65536)),l=(n=l+o+65535)-65536*(o=Math.floor(n/65536)),d=(n=d+o+65535)-65536*(o=Math.floor(n/65536)),f=(n=f+o+65535)-65536*(o=Math.floor(n/65536)),h=(n=h+o+65535)-65536*(o=Math.floor(n/65536)),p=(n=p+o+65535)-65536*(o=Math.floor(n/65536)),y=(n=y+o+65535)-65536*(o=Math.floor(n/65536)),m=(n=m+o+65535)-65536*(o=Math.floor(n/65536)),g=(n=g+o+65535)-65536*(o=Math.floor(n/65536)),b=(n=b+o+65535)-65536*(o=Math.floor(n/65536)),v=(n=v+o+65535)-65536*(o=Math.floor(n/65536)),w=(n=w+o+65535)-65536*(o=Math.floor(n/65536)),i=(n=(i+=o-1+37*(o-1))+(o=1)+65535)-65536*(o=Math.floor(n/65536)),a=(n=a+o+65535)-65536*(o=Math.floor(n/65536)),s=(n=s+o+65535)-65536*(o=Math.floor(n/65536)),c=(n=c+o+65535)-65536*(o=Math.floor(n/65536)),u=(n=u+o+65535)-65536*(o=Math.floor(n/65536)),l=(n=l+o+65535)-65536*(o=Math.floor(n/65536)),d=(n=d+o+65535)-65536*(o=Math.floor(n/65536)),f=(n=f+o+65535)-65536*(o=Math.floor(n/65536)),h=(n=h+o+65535)-65536*(o=Math.floor(n/65536)),p=(n=p+o+65535)-65536*(o=Math.floor(n/65536)),y=(n=y+o+65535)-65536*(o=Math.floor(n/65536)),m=(n=m+o+65535)-65536*(o=Math.floor(n/65536)),g=(n=g+o+65535)-65536*(o=Math.floor(n/65536)),b=(n=b+o+65535)-65536*(o=Math.floor(n/65536)),v=(n=v+o+65535)-65536*(o=Math.floor(n/65536)),w=(n=w+o+65535)-65536*(o=Math.floor(n/65536)),i+=o-1+37*(o-1),e[0]=i,e[1]=a,e[2]=s,e[3]=c,e[4]=u,e[5]=l,e[6]=d,e[7]=f,e[8]=h,e[9]=p,e[10]=y,e[11]=m,e[12]=g,e[13]=b,e[14]=v,e[15]=w}function U(e,t){L(e,t,t)}function j(e,r){var n,o=t();for(n=0;n<16;n++)o[n]=r[n];for(n=253;n>=0;n--)U(o,o),2!==n&&4!==n&&L(o,o,r);for(n=0;n<16;n++)e[n]=o[n]}function F(e,r){var n,o=t();for(n=0;n<16;n++)o[n]=r[n];for(n=250;n>=0;n--)U(o,o),1!==n&&L(o,o,r);for(n=0;n<16;n++)e[n]=o[n]}function q(e,r,n){var o,i,a=new Uint8Array(32),c=new Float64Array(80),u=t(),l=t(),d=t(),f=t(),h=t(),p=t();for(i=0;i<31;i++)a[i]=r[i];for(a[31]=127&r[31]|64,a[0]&=248,B(c,n),i=0;i<16;i++)l[i]=c[i],f[i]=u[i]=d[i]=0;for(u[0]=f[0]=1,i=254;i>=0;--i)O(u,l,o=a[i>>>3]>>>(7&i)&1),O(d,f,o),D(h,u,d),x(u,u,d),D(d,l,f),x(l,l,f),U(f,h),U(p,u),L(u,d,u),L(d,l,h),D(h,u,d),x(u,u,d),U(l,u),x(d,f,p),L(u,d,s),D(u,u,f),L(d,d,u),L(u,f,p),L(f,l,c),U(l,h),O(u,l,o),O(d,f,o);for(i=0;i<16;i++)c[i+16]=u[i],c[i+32]=d[i],c[i+48]=l[i],c[i+64]=f[i];var y=c.subarray(32),m=c.subarray(16);return j(y,y),L(m,m,y),N(e,m),0}function K(e,t){return q(e,t,o)}function H(e,t){return r(t,32),K(e,t)}function G(e,t,r){var o=new Uint8Array(32);return q(o,r,t),b(e,n,o,v)}k.prototype.blocks=function(e,t,r){for(var n,o,i,a,s,c,u,l,d,f,h,p,y,m,g,b,v,w,_,I=this.fin?0:2048,T=this.h[0],k=this.h[1],$=this.h[2],S=this.h[3],A=this.h[4],E=this.h[5],C=this.h[6],R=this.h[7],O=this.h[8],N=this.h[9],P=this.r[0],M=this.r[1],B=this.r[2],D=this.r[3],x=this.r[4],L=this.r[5],U=this.r[6],j=this.r[7],F=this.r[8],q=this.r[9];r>=16;)f=d=0,f+=(T+=8191&(n=255&e[t+0]|(255&e[t+1])<<8))*P,f+=(k+=8191&(n>>>13|(o=255&e[t+2]|(255&e[t+3])<<8)<<3))*(5*q),f+=($+=8191&(o>>>10|(i=255&e[t+4]|(255&e[t+5])<<8)<<6))*(5*F),f+=(S+=8191&(i>>>7|(a=255&e[t+6]|(255&e[t+7])<<8)<<9))*(5*j),d=(f+=(A+=8191&(a>>>4|(s=255&e[t+8]|(255&e[t+9])<<8)<<12))*(5*U))>>>13,f&=8191,f+=(E+=s>>>1&8191)*(5*L),f+=(C+=8191&(s>>>14|(c=255&e[t+10]|(255&e[t+11])<<8)<<2))*(5*x),f+=(R+=8191&(c>>>11|(u=255&e[t+12]|(255&e[t+13])<<8)<<5))*(5*D),f+=(O+=8191&(u>>>8|(l=255&e[t+14]|(255&e[t+15])<<8)<<8))*(5*B),h=d+=(f+=(N+=l>>>5|I)*(5*M))>>>13,h+=T*M,h+=k*P,h+=$*(5*q),h+=S*(5*F),d=(h+=A*(5*j))>>>13,h&=8191,h+=E*(5*U),h+=C*(5*L),h+=R*(5*x),h+=O*(5*D),d+=(h+=N*(5*B))>>>13,h&=8191,p=d,p+=T*B,p+=k*M,p+=$*P,p+=S*(5*q),d=(p+=A*(5*F))>>>13,p&=8191,p+=E*(5*j),p+=C*(5*U),p+=R*(5*L),p+=O*(5*x),y=d+=(p+=N*(5*D))>>>13,y+=T*D,y+=k*B,y+=$*M,y+=S*P,d=(y+=A*(5*q))>>>13,y&=8191,y+=E*(5*F),y+=C*(5*j),y+=R*(5*U),y+=O*(5*L),m=d+=(y+=N*(5*x))>>>13,m+=T*x,m+=k*D,m+=$*B,m+=S*M,d=(m+=A*P)>>>13,m&=8191,m+=E*(5*q),m+=C*(5*F),m+=R*(5*j),m+=O*(5*U),g=d+=(m+=N*(5*L))>>>13,g+=T*L,g+=k*x,g+=$*D,g+=S*B,d=(g+=A*M)>>>13,g&=8191,g+=E*P,g+=C*(5*q),g+=R*(5*F),g+=O*(5*j),b=d+=(g+=N*(5*U))>>>13,b+=T*U,b+=k*L,b+=$*x,b+=S*D,d=(b+=A*B)>>>13,b&=8191,b+=E*M,b+=C*P,b+=R*(5*q),b+=O*(5*F),v=d+=(b+=N*(5*j))>>>13,v+=T*j,v+=k*U,v+=$*L,v+=S*x,d=(v+=A*D)>>>13,v&=8191,v+=E*B,v+=C*M,v+=R*P,v+=O*(5*q),w=d+=(v+=N*(5*F))>>>13,w+=T*F,w+=k*j,w+=$*U,w+=S*L,d=(w+=A*x)>>>13,w&=8191,w+=E*D,w+=C*B,w+=R*M,w+=O*P,_=d+=(w+=N*(5*q))>>>13,_+=T*q,_+=k*F,_+=$*j,_+=S*U,d=(_+=A*L)>>>13,_&=8191,_+=E*x,_+=C*D,_+=R*B,_+=O*M,T=f=8191&(d=(d=((d+=(_+=N*P)>>>13)<<2)+d|0)+(f&=8191)|0),k=h+=d>>>=13,$=p&=8191,S=y&=8191,A=m&=8191,E=g&=8191,C=b&=8191,R=v&=8191,O=w&=8191,N=_&=8191,t+=16,r-=16;this.h[0]=T,this.h[1]=k,this.h[2]=$,this.h[3]=S,this.h[4]=A,this.h[5]=E,this.h[6]=C,this.h[7]=R,this.h[8]=O,this.h[9]=N},k.prototype.finish=function(e,t){var r,n,o,i,a=new Uint16Array(10);if(this.leftover){for(i=this.leftover,this.buffer[i++]=1;i<16;i++)this.buffer[i]=0;this.fin=1,this.blocks(this.buffer,0,16)}for(r=this.h[1]>>>13,this.h[1]&=8191,i=2;i<10;i++)this.h[i]+=r,r=this.h[i]>>>13,this.h[i]&=8191;for(this.h[0]+=5*r,r=this.h[0]>>>13,this.h[0]&=8191,this.h[1]+=r,r=this.h[1]>>>13,this.h[1]&=8191,this.h[2]+=r,a[0]=this.h[0]+5,r=a[0]>>>13,a[0]&=8191,i=1;i<10;i++)a[i]=this.h[i]+r,r=a[i]>>>13,a[i]&=8191;for(a[9]-=8192,n=(1^r)-1,i=0;i<10;i++)a[i]&=n;for(n=~n,i=0;i<10;i++)this.h[i]=this.h[i]&n|a[i];for(this.h[0]=65535&(this.h[0]|this.h[1]<<13),this.h[1]=65535&(this.h[1]>>>3|this.h[2]<<10),this.h[2]=65535&(this.h[2]>>>6|this.h[3]<<7),this.h[3]=65535&(this.h[3]>>>9|this.h[4]<<4),this.h[4]=65535&(this.h[4]>>>12|this.h[5]<<1|this.h[6]<<14),this.h[5]=65535&(this.h[6]>>>2|this.h[7]<<11),this.h[6]=65535&(this.h[7]>>>5|this.h[8]<<8),this.h[7]=65535&(this.h[8]>>>8|this.h[9]<<5),o=this.h[0]+this.pad[0],this.h[0]=65535&o,i=1;i<8;i++)o=(this.h[i]+this.pad[i]|0)+(o>>>16)|0,this.h[i]=65535&o;e[t+0]=this.h[0]>>>0&255,e[t+1]=this.h[0]>>>8&255,e[t+2]=this.h[1]>>>0&255,e[t+3]=this.h[1]>>>8&255,e[t+4]=this.h[2]>>>0&255,e[t+5]=this.h[2]>>>8&255,e[t+6]=this.h[3]>>>0&255,e[t+7]=this.h[3]>>>8&255,e[t+8]=this.h[4]>>>0&255,e[t+9]=this.h[4]>>>8&255,e[t+10]=this.h[5]>>>0&255,e[t+11]=this.h[5]>>>8&255,e[t+12]=this.h[6]>>>0&255,e[t+13]=this.h[6]>>>8&255,e[t+14]=this.h[7]>>>0&255,e[t+15]=this.h[7]>>>8&255},k.prototype.update=function(e,t,r){var n,o;if(this.leftover){for((o=16-this.leftover)>r&&(o=r),n=0;n=16&&(o=r-r%16,this.blocks(e,t,o),t+=o,r-=o),r){for(n=0;n=128;){for(I=0;I<16;I++)T=8*I+Q,R[I]=r[T+0]<<24|r[T+1]<<16|r[T+2]<<8|r[T+3],O[I]=r[T+4]<<24|r[T+5]<<16|r[T+6]<<8|r[T+7];for(I=0;I<80;I++)if(o=N,i=P,a=M,s=B,c=D,u=x,l=L,U,f=j,h=F,p=q,y=K,m=H,g=G,b=z,V,S=65535&($=V),A=$>>>16,E=65535&(k=U),C=k>>>16,S+=65535&($=(H>>>14|D<<18)^(H>>>18|D<<14)^(D>>>9|H<<23)),A+=$>>>16,E+=65535&(k=(D>>>14|H<<18)^(D>>>18|H<<14)^(H>>>9|D<<23)),C+=k>>>16,S+=65535&($=H&G^~H&z),A+=$>>>16,E+=65535&(k=D&x^~D&L),C+=k>>>16,S+=65535&($=W[2*I+1]),A+=$>>>16,E+=65535&(k=W[2*I]),C+=k>>>16,k=R[I%16],A+=($=O[I%16])>>>16,E+=65535&k,C+=k>>>16,E+=(A+=(S+=65535&$)>>>16)>>>16,S=65535&($=_=65535&S|A<<16),A=$>>>16,E=65535&(k=w=65535&E|(C+=E>>>16)<<16),C=k>>>16,S+=65535&($=(j>>>28|N<<4)^(N>>>2|j<<30)^(N>>>7|j<<25)),A+=$>>>16,E+=65535&(k=(N>>>28|j<<4)^(j>>>2|N<<30)^(j>>>7|N<<25)),C+=k>>>16,A+=($=j&F^j&q^F&q)>>>16,E+=65535&(k=N&P^N&M^P&M),C+=k>>>16,d=65535&(E+=(A+=(S+=65535&$)>>>16)>>>16)|(C+=E>>>16)<<16,v=65535&S|A<<16,S=65535&($=y),A=$>>>16,E=65535&(k=s),C=k>>>16,A+=($=_)>>>16,E+=65535&(k=w),C+=k>>>16,P=o,M=i,B=a,D=s=65535&(E+=(A+=(S+=65535&$)>>>16)>>>16)|(C+=E>>>16)<<16,x=c,L=u,U=l,N=d,F=f,q=h,K=p,H=y=65535&S|A<<16,G=m,z=g,V=b,j=v,I%16==15)for(T=0;T<16;T++)k=R[T],S=65535&($=O[T]),A=$>>>16,E=65535&k,C=k>>>16,k=R[(T+9)%16],S+=65535&($=O[(T+9)%16]),A+=$>>>16,E+=65535&k,C+=k>>>16,w=R[(T+1)%16],S+=65535&($=((_=O[(T+1)%16])>>>1|w<<31)^(_>>>8|w<<24)^(_>>>7|w<<25)),A+=$>>>16,E+=65535&(k=(w>>>1|_<<31)^(w>>>8|_<<24)^w>>>7),C+=k>>>16,w=R[(T+14)%16],A+=($=((_=O[(T+14)%16])>>>19|w<<13)^(w>>>29|_<<3)^(_>>>6|w<<26))>>>16,E+=65535&(k=(w>>>19|_<<13)^(_>>>29|w<<3)^w>>>6),C+=k>>>16,C+=(E+=(A+=(S+=65535&$)>>>16)>>>16)>>>16,R[T]=65535&E|C<<16,O[T]=65535&S|A<<16;S=65535&($=j),A=$>>>16,E=65535&(k=N),C=k>>>16,k=e[0],A+=($=t[0])>>>16,E+=65535&k,C+=k>>>16,C+=(E+=(A+=(S+=65535&$)>>>16)>>>16)>>>16,e[0]=N=65535&E|C<<16,t[0]=j=65535&S|A<<16,S=65535&($=F),A=$>>>16,E=65535&(k=P),C=k>>>16,k=e[1],A+=($=t[1])>>>16,E+=65535&k,C+=k>>>16,C+=(E+=(A+=(S+=65535&$)>>>16)>>>16)>>>16,e[1]=P=65535&E|C<<16,t[1]=F=65535&S|A<<16,S=65535&($=q),A=$>>>16,E=65535&(k=M),C=k>>>16,k=e[2],A+=($=t[2])>>>16,E+=65535&k,C+=k>>>16,C+=(E+=(A+=(S+=65535&$)>>>16)>>>16)>>>16,e[2]=M=65535&E|C<<16,t[2]=q=65535&S|A<<16,S=65535&($=K),A=$>>>16,E=65535&(k=B),C=k>>>16,k=e[3],A+=($=t[3])>>>16,E+=65535&k,C+=k>>>16,C+=(E+=(A+=(S+=65535&$)>>>16)>>>16)>>>16,e[3]=B=65535&E|C<<16,t[3]=K=65535&S|A<<16,S=65535&($=H),A=$>>>16,E=65535&(k=D),C=k>>>16,k=e[4],A+=($=t[4])>>>16,E+=65535&k,C+=k>>>16,C+=(E+=(A+=(S+=65535&$)>>>16)>>>16)>>>16,e[4]=D=65535&E|C<<16,t[4]=H=65535&S|A<<16,S=65535&($=G),A=$>>>16,E=65535&(k=x),C=k>>>16,k=e[5],A+=($=t[5])>>>16,E+=65535&k,C+=k>>>16,C+=(E+=(A+=(S+=65535&$)>>>16)>>>16)>>>16,e[5]=x=65535&E|C<<16,t[5]=G=65535&S|A<<16,S=65535&($=z),A=$>>>16,E=65535&(k=L),C=k>>>16,k=e[6],A+=($=t[6])>>>16,E+=65535&k,C+=k>>>16,C+=(E+=(A+=(S+=65535&$)>>>16)>>>16)>>>16,e[6]=L=65535&E|C<<16,t[6]=z=65535&S|A<<16,S=65535&($=V),A=$>>>16,E=65535&(k=U),C=k>>>16,k=e[7],A+=($=t[7])>>>16,E+=65535&k,C+=k>>>16,C+=(E+=(A+=(S+=65535&$)>>>16)>>>16)>>>16,e[7]=U=65535&E|C<<16,t[7]=V=65535&S|A<<16,Q+=128,n-=128}return n}function Y(e,t,r){var n,o=new Int32Array(8),i=new Int32Array(8),a=new Uint8Array(256),s=r;for(o[0]=1779033703,o[1]=3144134277,o[2]=1013904242,o[3]=2773480762,o[4]=1359893119,o[5]=2600822924,o[6]=528734635,o[7]=1541459225,i[0]=4089235720,i[1]=2227873595,i[2]=4271175723,i[3]=1595750129,i[4]=2917565137,i[5]=725511199,i[6]=4215389547,i[7]=327033209,Q(o,i,t,r),r%=128,n=0;n=0;--o)J(e,t,n=r[o/8|0]>>(7&o)&1),X(t,e),X(e,e),J(e,t,n)}function te(e,r){var n=[t(),t(),t(),t()];C(n[0],l),C(n[1],d),C(n[2],a),L(n[3],l,d),ee(e,n,r)}function re(e,n,o){var i,a=new Uint8Array(64),s=[t(),t(),t(),t()];for(o||r(n,32),Y(a,n,32),a[0]&=248,a[31]&=127,a[31]|=64,te(s,a),Z(e,s),i=0;i<32;i++)n[i+32]=e[i];return 0}var ne=new Float64Array([237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16]);function oe(e,t){var r,n,o,i;for(n=63;n>=32;--n){for(r=0,o=n-32,i=n-12;o>4)*ne[o],r=t[o]>>8,t[o]&=255;for(o=0;o<32;o++)t[o]-=r*ne[o];for(n=0;n<32;n++)t[n+1]+=t[n]>>8,e[n]=255&t[n]}function ie(e){var t,r=new Float64Array(64);for(t=0;t<64;t++)r[t]=e[t];for(t=0;t<64;t++)e[t]=0;oe(e,r)}function ae(e,r,n,o){var i,a,s=new Uint8Array(64),c=new Uint8Array(64),u=new Uint8Array(64),l=new Float64Array(64),d=[t(),t(),t(),t()];Y(s,o,32),s[0]&=248,s[31]&=127,s[31]|=64;var f=n+64;for(i=0;i>7&&x(e[0],i,e[0]),L(e[3],e[0],e[1]),0)}(h,o))return-1;for(s=0;s=0},e.sign.keyPair=function(){var e=new Uint8Array(le),t=new Uint8Array(de);return re(e,t),{publicKey:e,secretKey:t}},e.sign.keyPair.fromSecretKey=function(e){if(he(e),e.length!==de)throw new Error("bad secret key size");for(var t=new Uint8Array(le),r=0;rparseInt(e,16))))}function hexZeroPadded(e,t){const r="0123456789abcdef";let n="0x";for(let o=0;o>4]+r[15&t]}for(n.length>2*t+2&&console.log("result out of range","result");n.length<2*t+2;)n="0x0"+n.substring(2);return n.substring(2)}var forge$D={options:{usePureJavaScript:!1}},api={},baseN$1=api,_reverseAlphabets={};function _encodeWithByteBuffer(e,t){var r=0,n=t.length,o=t.charAt(0),i=[0];for(r=0;r0;)i.push(s%n),s=s/n|0}var c="";for(r=0;0===e.at(r)&&r=0;--r)c+=t[i[r]];return c}api.encode=function(e,t,r){if("string"!=typeof t)throw new TypeError('"alphabet" must be a string.');if(void 0!==r&&"number"!=typeof r)throw new TypeError('"maxline" must be a number.');var n="";if(e instanceof Uint8Array){var o=0,i=t.length,a=t.charAt(0),s=[0];for(o=0;o0;)s.push(u%i),u=u/i|0}for(o=0;0===e[o]&&o=0;--o)n+=t[s[o]]}else n=_encodeWithByteBuffer(e,t);if(r){var l=new RegExp(".{1,"+r+"}","g");n=n.match(l).join("\r\n")}return n},api.decode=function(e,t){if("string"!=typeof e)throw new TypeError('"input" must be a string.');if("string"!=typeof t)throw new TypeError('"alphabet" must be a string.');var r=_reverseAlphabets[t];if(!r){r=_reverseAlphabets[t]=[];for(var n=0;n>=8;for(;u>0;)a.push(255&u),u>>=8}for(var l=0;e[l]===i&&l15?(r=Date.now(),i(e)):(t.push(e),1===t.length&&o.setAttribute("a",n=!n))}}util$6.nextTick=util$6.setImmediate}(),util$6.isNodejs=void 0!==process$1&&process$1.versions&&process$1.versions.node,util$6.globalScope=util$6.isNodejs?commonjsGlobal:"undefined"==typeof self?window:self,util$6.isArray=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},util$6.isArrayBuffer=function(e){return"undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer},util$6.isArrayBufferView=function(e){return e&&util$6.isArrayBuffer(e.buffer)&&void 0!==e.byteLength},util$6.ByteBuffer=ByteStringBuffer,util$6.ByteStringBuffer=ByteStringBuffer;var _MAX_CONSTRUCTED_STRING_LENGTH=4096;function DataBuffer(e,t){t=t||{},this.read=t.readOffset||0,this.growSize=t.growSize||1024;var r=util$6.isArrayBuffer(e),n=util$6.isArrayBufferView(e);if(r||n)return this.data=r?new DataView(e):new DataView(e.buffer,e.byteOffset,e.byteLength),void(this.write="writeOffset"in t?t.writeOffset:this.data.byteLength);this.data=new DataView(new ArrayBuffer(0)),this.write=0,null!=e&&this.putBytes(e),"writeOffset"in t&&(this.write=t.writeOffset)}util$6.ByteStringBuffer.prototype._optimizeConstructedString=function(e){this._constructedStringLength+=e,this._constructedStringLength>_MAX_CONSTRUCTED_STRING_LENGTH&&(this.data.substr(0,1),this._constructedStringLength=0)},util$6.ByteStringBuffer.prototype.length=function(){return this.data.length-this.read},util$6.ByteStringBuffer.prototype.isEmpty=function(){return this.length()<=0},util$6.ByteStringBuffer.prototype.putByte=function(e){return this.putBytes(String.fromCharCode(e))},util$6.ByteStringBuffer.prototype.fillWithByte=function(e,t){e=String.fromCharCode(e);for(var r=this.data;t>0;)1&t&&(r+=e),(t>>>=1)>0&&(e+=e);return this.data=r,this._optimizeConstructedString(t),this},util$6.ByteStringBuffer.prototype.putBytes=function(e){return this.data+=e,this._optimizeConstructedString(e.length),this},util$6.ByteStringBuffer.prototype.putString=function(e){return this.putBytes(util$6.encodeUtf8(e))},util$6.ByteStringBuffer.prototype.putInt16=function(e){return this.putBytes(String.fromCharCode(e>>8&255)+String.fromCharCode(255&e))},util$6.ByteStringBuffer.prototype.putInt24=function(e){return this.putBytes(String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(255&e))},util$6.ByteStringBuffer.prototype.putInt32=function(e){return this.putBytes(String.fromCharCode(e>>24&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(255&e))},util$6.ByteStringBuffer.prototype.putInt16Le=function(e){return this.putBytes(String.fromCharCode(255&e)+String.fromCharCode(e>>8&255))},util$6.ByteStringBuffer.prototype.putInt24Le=function(e){return this.putBytes(String.fromCharCode(255&e)+String.fromCharCode(e>>8&255)+String.fromCharCode(e>>16&255))},util$6.ByteStringBuffer.prototype.putInt32Le=function(e){return this.putBytes(String.fromCharCode(255&e)+String.fromCharCode(e>>8&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>24&255))},util$6.ByteStringBuffer.prototype.putInt=function(e,t){_checkBitsParam(t);var r="";do{t-=8,r+=String.fromCharCode(e>>t&255)}while(t>0);return this.putBytes(r)},util$6.ByteStringBuffer.prototype.putSignedInt=function(e,t){return e<0&&(e+=2<0);return t},util$6.ByteStringBuffer.prototype.getSignedInt=function(e){var t=this.getInt(e),r=2<=r&&(t-=r<<1),t},util$6.ByteStringBuffer.prototype.getBytes=function(e){var t;return e?(e=Math.min(this.length(),e),t=this.data.slice(this.read,this.read+e),this.read+=e):0===e?t="":(t=0===this.read?this.data:this.data.slice(this.read),this.clear()),t},util$6.ByteStringBuffer.prototype.bytes=function(e){return void 0===e?this.data.slice(this.read):this.data.slice(this.read,this.read+e)},util$6.ByteStringBuffer.prototype.at=function(e){return this.data.charCodeAt(this.read+e)},util$6.ByteStringBuffer.prototype.setAt=function(e,t){return this.data=this.data.substr(0,this.read+e)+String.fromCharCode(t)+this.data.substr(this.read+e+1),this},util$6.ByteStringBuffer.prototype.last=function(){return this.data.charCodeAt(this.data.length-1)},util$6.ByteStringBuffer.prototype.copy=function(){var e=util$6.createBuffer(this.data);return e.read=this.read,e},util$6.ByteStringBuffer.prototype.compact=function(){return this.read>0&&(this.data=this.data.slice(this.read),this.read=0),this},util$6.ByteStringBuffer.prototype.clear=function(){return this.data="",this.read=0,this},util$6.ByteStringBuffer.prototype.truncate=function(e){var t=Math.max(0,this.length()-e);return this.data=this.data.substr(this.read,t),this.read=0,this},util$6.ByteStringBuffer.prototype.toHex=function(){for(var e="",t=this.read;t=e)return this;t=Math.max(t||this.growSize,e);var r=new Uint8Array(this.data.buffer,this.data.byteOffset,this.data.byteLength),n=new Uint8Array(this.length()+t);return n.set(r),this.data=new DataView(n.buffer),this},util$6.DataBuffer.prototype.putByte=function(e){return this.accommodate(1),this.data.setUint8(this.write++,e),this},util$6.DataBuffer.prototype.fillWithByte=function(e,t){this.accommodate(t);for(var r=0;r>8&65535),this.data.setInt8(this.write,e>>16&255),this.write+=3,this},util$6.DataBuffer.prototype.putInt32=function(e){return this.accommodate(4),this.data.setInt32(this.write,e),this.write+=4,this},util$6.DataBuffer.prototype.putInt16Le=function(e){return this.accommodate(2),this.data.setInt16(this.write,e,!0),this.write+=2,this},util$6.DataBuffer.prototype.putInt24Le=function(e){return this.accommodate(3),this.data.setInt8(this.write,e>>16&255),this.data.setInt16(this.write,e>>8&65535,!0),this.write+=3,this},util$6.DataBuffer.prototype.putInt32Le=function(e){return this.accommodate(4),this.data.setInt32(this.write,e,!0),this.write+=4,this},util$6.DataBuffer.prototype.putInt=function(e,t){_checkBitsParam(t),this.accommodate(t/8);do{t-=8,this.data.setInt8(this.write++,e>>t&255)}while(t>0);return this},util$6.DataBuffer.prototype.putSignedInt=function(e,t){return _checkBitsParam(t),this.accommodate(t/8),e<0&&(e+=2<0);return t},util$6.DataBuffer.prototype.getSignedInt=function(e){var t=this.getInt(e),r=2<=r&&(t-=r<<1),t},util$6.DataBuffer.prototype.getBytes=function(e){var t;return e?(e=Math.min(this.length(),e),t=this.data.slice(this.read,this.read+e),this.read+=e):0===e?t="":(t=0===this.read?this.data:this.data.slice(this.read),this.clear()),t},util$6.DataBuffer.prototype.bytes=function(e){return void 0===e?this.data.slice(this.read):this.data.slice(this.read,this.read+e)},util$6.DataBuffer.prototype.at=function(e){return this.data.getUint8(this.read+e)},util$6.DataBuffer.prototype.setAt=function(e,t){return this.data.setUint8(e,t),this},util$6.DataBuffer.prototype.last=function(){return this.data.getUint8(this.write-1)},util$6.DataBuffer.prototype.copy=function(){return new util$6.DataBuffer(this)},util$6.DataBuffer.prototype.compact=function(){if(this.read>0){var e=new Uint8Array(this.data.buffer,this.read),t=new Uint8Array(e.byteLength);t.set(e),this.data=new DataView(t),this.write-=this.read,this.read=0}return this},util$6.DataBuffer.prototype.clear=function(){return this.data=new DataView(new ArrayBuffer(0)),this.read=this.write=0,this},util$6.DataBuffer.prototype.truncate=function(e){return this.write=Math.max(0,this.length()-e),this.read=Math.min(this.read,this.write),this},util$6.DataBuffer.prototype.toHex=function(){for(var e="",t=this.read;t0;)1&t&&(r+=e),(t>>>=1)>0&&(e+=e);return r},util$6.xorBytes=function(e,t,r){for(var n="",o="",i="",a=0,s=0;r>0;--r,++a)o=e.charCodeAt(a)^t.charCodeAt(a),s>=10&&(n+=i,i="",s=0),i+=String.fromCharCode(o),++s;return n+=i},util$6.hexToBytes=function(e){var t="",r=0;for(!0&e.length&&(r=1,t+=String.fromCharCode(parseInt(e[0],16)));r>24&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(255&e)};var _base64="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",_base64Idx=[62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,64,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],_base58="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";util$6.encode64=function(e,t){for(var r,n,o,i="",a="",s=0;s>2),i+=_base64.charAt((3&r)<<4|n>>4),isNaN(n)?i+="==":(i+=_base64.charAt((15&n)<<2|o>>6),i+=isNaN(o)?"=":_base64.charAt(63&o)),t&&i.length>t&&(a+=i.substr(0,t)+"\r\n",i=i.substr(t));return a+=i},util$6.decode64=function(e){e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var t,r,n,o,i="",a=0;a>4),64!==n&&(i+=String.fromCharCode((15&r)<<4|n>>2),64!==o&&(i+=String.fromCharCode((3&n)<<6|o)));return i},util$6.encodeUtf8=function(e){return unescape(encodeURIComponent(e))},util$6.decodeUtf8=function(e){return decodeURIComponent(escape(e))},util$6.binary={raw:{},hex:{},base64:{},base58:{},baseN:{encode:baseN.encode,decode:baseN.decode}},util$6.binary.raw.encode=function(e){return String.fromCharCode.apply(null,e)},util$6.binary.raw.decode=function(e,t,r){var n=t;n||(n=new Uint8Array(e.length));for(var o=r=r||0,i=0;i>2),i+=_base64.charAt((3&r)<<4|n>>4),isNaN(n)?i+="==":(i+=_base64.charAt((15&n)<<2|o>>6),i+=isNaN(o)?"=":_base64.charAt(63&o)),t&&i.length>t&&(a+=i.substr(0,t)+"\r\n",i=i.substr(t));return a+=i},util$6.binary.base64.decode=function(e,t,r){var n,o,i,a,s=t;s||(s=new Uint8Array(3*Math.ceil(e.length/4))),e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var c=0,u=r=r||0;c>4,64!==i&&(s[u++]=(15&o)<<4|i>>2,64!==a&&(s[u++]=(3&i)<<6|a));return t?u-r:s.subarray(0,u)},util$6.binary.base58.encode=function(e,t){return util$6.binary.baseN.encode(e,_base58,t)},util$6.binary.base58.decode=function(e,t){return util$6.binary.baseN.decode(e,_base58,t)},util$6.text={utf8:{},utf16:{}},util$6.text.utf8.encode=function(e,t,r){e=util$6.encodeUtf8(e);var n=t;n||(n=new Uint8Array(e.length));for(var o=r=r||0,i=0;i0&&i.push(r),a=n.lastIndex;var s=t[0][1];switch(s){case"s":case"o":o");break;case"%":i.push("%");break;default:i.push("<%"+s+"?>")}}return i.push(e.substring(a)),i.join("")},util$6.formatNumber=function(e,t,r,n){var o=e,i=isNaN(t=Math.abs(t))?2:t,a=void 0===r?",":r,s=void 0===n?".":n,c=o<0?"-":"",u=parseInt(o=Math.abs(+o||0).toFixed(i),10)+"",l=u.length>3?u.length%3:0;return c+(l?u.substr(0,l)+s:"")+u.substr(l).replace(/(\d{3})(?=\d)/g,"$1"+s)+(i?a+Math.abs(o-u).toFixed(i).slice(2):"")},util$6.formatSize=function(e){return e=e>=1073741824?util$6.formatNumber(e/1073741824,2,".","")+" GiB":e>=1048576?util$6.formatNumber(e/1048576,2,".","")+" MiB":e>=1024?util$6.formatNumber(e/1024,0)+" KiB":util$6.formatNumber(e,0)+" bytes"},util$6.bytesFromIP=function(e){return-1!==e.indexOf(".")?util$6.bytesFromIPv4(e):-1!==e.indexOf(":")?util$6.bytesFromIPv6(e):null},util$6.bytesFromIPv4=function(e){if(4!==(e=e.split(".")).length)return null;for(var t=util$6.createBuffer(),r=0;rr[n].end-r[n].start&&(n=r.length-1)):r.push({start:s,end:s})}t.push(i)}if(r.length>0){var c=r[n];c.end-c.start>0&&(t.splice(c.start,c.end-c.start+1,""),0===c.start&&t.unshift(""),7===c.end&&t.push(""))}return t.join(":")},util$6.estimateCores=function(e,t){if("function"==typeof e&&(t=e,e={}),e=e||{},"cores"in util$6&&!e.update)return t(null,util$6.cores);if("undefined"!=typeof navigator&&"hardwareConcurrency"in navigator&&navigator.hardwareConcurrency>0)return util$6.cores=navigator.hardwareConcurrency,t(null,util$6.cores);if("undefined"==typeof Worker)return util$6.cores=1,t(null,util$6.cores);if("undefined"==typeof Blob)return util$6.cores=2,t(null,util$6.cores);var r=URL.createObjectURL(new Blob(["(",function(){self.addEventListener("message",(function(e){var t=Date.now(),r=t+4;self.postMessage({st:t,et:r})}))}.toString(),")()"],{type:"application/javascript"}));!function e(n,o,i){if(0===o){var a=Math.floor(n.reduce((function(e,t){return e+t}),0)/n.length);return util$6.cores=Math.max(1,a),URL.revokeObjectURL(r),t(null,util$6.cores)}!function(e,t){for(var n=[],o=[],i=0;is.st&&o.sto.st&&s.st4){var r=e;e=forge$A.util.createBuffer();for(var n=0;n0))return!0;for(var n=0;n0))return!0;for(var n=0;n0)return!1;var r=e.length(),n=e.at(r-1);return!(n>this.blockSize<<2)&&(e.truncate(n),!0)},modes.cbc=function(e){e=e||{},this.name="CBC",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints)},modes.cbc.prototype.start=function(e){if(null===e.iv){if(!this._prev)throw new Error("Invalid IV parameter.");this._iv=this._prev.slice(0)}else{if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=transformIV(e.iv,this.blockSize),this._prev=this._iv.slice(0)}},modes.cbc.prototype.encrypt=function(e,t,r){if(e.length()0))return!0;for(var n=0;n0))return!0;for(var n=0;n0)return!1;var r=e.length(),n=e.at(r-1);return!(n>this.blockSize<<2)&&(e.truncate(n),!0)},modes.cfb=function(e){e=e||{},this.name="CFB",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialBlock=new Array(this._ints),this._partialOutput=forge$A.util.createBuffer(),this._partialBytes=0},modes.cfb.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=transformIV(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0},modes.cfb.prototype.encrypt=function(e,t,r){var n=e.length();if(0===n)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),0===this._partialBytes&&n>=this.blockSize)for(var o=0;o0&&(i=this.blockSize-i),this._partialOutput.clear();for(o=0;o0)e.read-=this.blockSize;else for(o=0;o0&&this._partialOutput.getBytes(this._partialBytes),i>0&&!r)return t.putBytes(this._partialOutput.getBytes(i-this._partialBytes)),this._partialBytes=i,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}},modes.cfb.prototype.decrypt=function(e,t,r){var n=e.length();if(0===n)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),0===this._partialBytes&&n>=this.blockSize)for(var o=0;o0&&(i=this.blockSize-i),this._partialOutput.clear();for(o=0;o0)e.read-=this.blockSize;else for(o=0;o0&&this._partialOutput.getBytes(this._partialBytes),i>0&&!r)return t.putBytes(this._partialOutput.getBytes(i-this._partialBytes)),this._partialBytes=i,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}},modes.ofb=function(e){e=e||{},this.name="OFB",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=forge$A.util.createBuffer(),this._partialBytes=0},modes.ofb.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=transformIV(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0},modes.ofb.prototype.encrypt=function(e,t,r){var n=e.length();if(0===e.length())return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),0===this._partialBytes&&n>=this.blockSize)for(var o=0;o0&&(i=this.blockSize-i),this._partialOutput.clear();for(o=0;o0)e.read-=this.blockSize;else for(o=0;o0&&this._partialOutput.getBytes(this._partialBytes),i>0&&!r)return t.putBytes(this._partialOutput.getBytes(i-this._partialBytes)),this._partialBytes=i,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}},modes.ofb.prototype.decrypt=modes.ofb.prototype.encrypt,modes.ctr=function(e){e=e||{},this.name="CTR",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=forge$A.util.createBuffer(),this._partialBytes=0},modes.ctr.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=transformIV(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0},modes.ctr.prototype.encrypt=function(e,t,r){var n=e.length();if(0===n)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),0===this._partialBytes&&n>=this.blockSize)for(var o=0;o0&&(i=this.blockSize-i),this._partialOutput.clear();for(o=0;o0&&(e.read-=this.blockSize),this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),i>0&&!r)return t.putBytes(this._partialOutput.getBytes(i-this._partialBytes)),this._partialBytes=i,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}inc32(this._inBlock)},modes.ctr.prototype.decrypt=modes.ctr.prototype.encrypt,modes.gcm=function(e){e=e||{},this.name="GCM",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints),this._partialOutput=forge$A.util.createBuffer(),this._partialBytes=0,this._R=3774873600},modes.gcm.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");var t,r=forge$A.util.createBuffer(e.iv);if(this._cipherLength=0,t="additionalData"in e?forge$A.util.createBuffer(e.additionalData):forge$A.util.createBuffer(),this._tagLength="tagLength"in e?e.tagLength:128,this._tag=null,e.decrypt&&(this._tag=forge$A.util.createBuffer(e.tag).getBytes(),this._tag.length!==this._tagLength/8))throw new Error("Authentication tag does not match tag length.");this._hashBlock=new Array(this._ints),this.tag=null,this._hashSubkey=new Array(this._ints),this.cipher.encrypt([0,0,0,0],this._hashSubkey),this.componentBits=4,this._m=this.generateHashTable(this._hashSubkey,this.componentBits);var n=r.length();if(12===n)this._j0=[r.getInt32(),r.getInt32(),r.getInt32(),1];else{for(this._j0=[0,0,0,0];r.length()>0;)this._j0=this.ghash(this._hashSubkey,this._j0,[r.getInt32(),r.getInt32(),r.getInt32(),r.getInt32()]);this._j0=this.ghash(this._hashSubkey,this._j0,[0,0].concat(from64To32(8*n)))}this._inBlock=this._j0.slice(0),inc32(this._inBlock),this._partialBytes=0,t=forge$A.util.createBuffer(t),this._aDataLength=from64To32(8*t.length());var o=t.length()%this.blockSize;for(o&&t.fillWithByte(0,this.blockSize-o),this._s=[0,0,0,0];t.length()>0;)this._s=this.ghash(this._hashSubkey,this._s,[t.getInt32(),t.getInt32(),t.getInt32(),t.getInt32()])},modes.gcm.prototype.encrypt=function(e,t,r){var n=e.length();if(0===n)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),0===this._partialBytes&&n>=this.blockSize){for(var o=0;o0&&(i=this.blockSize-i),this._partialOutput.clear();for(o=0;o0&&this._partialOutput.getBytes(this._partialBytes),i>0&&!r)return e.read-=this.blockSize,t.putBytes(this._partialOutput.getBytes(i-this._partialBytes)),this._partialBytes=i,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}this._s=this.ghash(this._hashSubkey,this._s,this._outBlock),inc32(this._inBlock)},modes.gcm.prototype.decrypt=function(e,t,r){var n=e.length();if(n0))return!0;this.cipher.encrypt(this._inBlock,this._outBlock),inc32(this._inBlock),this._hashBlock[0]=e.getInt32(),this._hashBlock[1]=e.getInt32(),this._hashBlock[2]=e.getInt32(),this._hashBlock[3]=e.getInt32(),this._s=this.ghash(this._hashSubkey,this._s,this._hashBlock);for(var o=0;o0;--n)t[n]=e[n]>>>1|(1&e[n-1])<<31;t[0]=e[0]>>>1,r&&(t[0]^=this._R)},modes.gcm.prototype.tableMultiply=function(e){for(var t=[0,0,0,0],r=0;r<32;++r){var n=e[r/8|0]>>>4*(7-r%8)&15,o=this._m[r][n];t[0]^=o[0],t[1]^=o[1],t[2]^=o[2],t[3]^=o[3]}return t},modes.gcm.prototype.ghash=function(e,t,r){return t[0]^=r[0],t[1]^=r[1],t[2]^=r[2],t[3]^=r[3],this.tableMultiply(t)},modes.gcm.prototype.generateHashTable=function(e,t){for(var r=8/t,n=4*r,o=16*r,i=new Array(o),a=0;a>>1,o=new Array(r);o[n]=e.slice(0);for(var i=n>>>1;i>0;)this.pow(o[2*i],o[i]=[]),i>>=1;for(i=2;i>>=2;for(n=0;n>8^255&i^99,sbox[u]=i,isbox[i]=u,s=(a=e[i])<<24^i<<16^i<<8^i^a,c=((r=e[u])^(n=e[r])^(o=e[n]))<<24^(u^o)<<16^(u^n^o)<<8^u^r^o;for(var d=0;d<4;++d)mix$1[d][u]=s,imix[d][i]=c,s=s<<24|s>>>8,c=c<<24|c>>>8;0===u?u=l=1:(u=r^e[e[e[r^o]]],l^=e[e[l]])}}function _expandKey(e,t){for(var r,n=e.slice(0),o=1,i=n.length,a=Nb*(i+6+1),s=i;s>>16&255]<<24^sbox[r>>>8&255]<<16^sbox[255&r]<<8^sbox[r>>>24]^rcon[o]<<24,o++):i>6&&s%i==4&&(r=sbox[r>>>24]<<24^sbox[r>>>16&255]<<16^sbox[r>>>8&255]<<8^sbox[255&r]),n[s]=n[s-i]^r;if(t){for(var c,u=imix[0],l=imix[1],d=imix[2],f=imix[3],h=n.slice(0),p=(s=0,(a=n.length)-Nb);s>>24]]^l[sbox[c>>>16&255]]^d[sbox[c>>>8&255]]^f[sbox[255&c]];n=h}return n}function _updateBlock$1(e,t,r,n){var o,i,a,s,c,u,l,d,f,h,p,y,m=e.length/4-1;n?(o=imix[0],i=imix[1],a=imix[2],s=imix[3],c=isbox):(o=mix$1[0],i=mix$1[1],a=mix$1[2],s=mix$1[3],c=sbox),u=t[0]^e[0],l=t[n?3:1]^e[1],d=t[2]^e[2],f=t[n?1:3]^e[3];for(var g=3,b=1;b>>24]^i[l>>>16&255]^a[d>>>8&255]^s[255&f]^e[++g],p=o[l>>>24]^i[d>>>16&255]^a[f>>>8&255]^s[255&u]^e[++g],y=o[d>>>24]^i[f>>>16&255]^a[u>>>8&255]^s[255&l]^e[++g],f=o[f>>>24]^i[u>>>16&255]^a[l>>>8&255]^s[255&d]^e[++g],u=h,l=p,d=y;r[0]=c[u>>>24]<<24^c[l>>>16&255]<<16^c[d>>>8&255]<<8^c[255&f]^e[++g],r[n?3:1]=c[l>>>24]<<24^c[d>>>16&255]<<16^c[f>>>8&255]<<8^c[255&u]^e[++g],r[2]=c[d>>>24]<<24^c[f>>>16&255]<<16^c[u>>>8&255]<<8^c[255&l]^e[++g],r[n?1:3]=c[f>>>24]<<24^c[u>>>16&255]<<16^c[l>>>8&255]<<8^c[255&d]^e[++g]}function _createCipher$1(e){var t,r="AES-"+((e=e||{}).mode||"CBC").toUpperCase(),n=(t=e.decrypt?forge$z.cipher.createDecipher(r,e.key):forge$z.cipher.createCipher(r,e.key)).start;return t.start=function(e,r){var o=null;r instanceof forge$z.util.ByteBuffer&&(o=r,r={}),(r=r||{}).output=o,r.iv=e,n.call(t,r)},t}var forge$y=forge$D;forge$y.pki=forge$y.pki||{};var oids$2=forge$y.pki.oids=forge$y.oids=forge$y.oids||{};function _IN(e,t){oids$2[e]=t,oids$2[t]=e}function _I_(e,t){oids$2[e]=t}_IN("1.2.840.113549.1.1.1","rsaEncryption"),_IN("1.2.840.113549.1.1.4","md5WithRSAEncryption"),_IN("1.2.840.113549.1.1.5","sha1WithRSAEncryption"),_IN("1.2.840.113549.1.1.7","RSAES-OAEP"),_IN("1.2.840.113549.1.1.8","mgf1"),_IN("1.2.840.113549.1.1.9","pSpecified"),_IN("1.2.840.113549.1.1.10","RSASSA-PSS"),_IN("1.2.840.113549.1.1.11","sha256WithRSAEncryption"),_IN("1.2.840.113549.1.1.12","sha384WithRSAEncryption"),_IN("1.2.840.113549.1.1.13","sha512WithRSAEncryption"),_IN("1.3.101.112","EdDSA25519"),_IN("1.2.840.10040.4.3","dsa-with-sha1"),_IN("1.3.14.3.2.7","desCBC"),_IN("1.3.14.3.2.26","sha1"),_IN("1.3.14.3.2.29","sha1WithRSASignature"),_IN("2.16.840.1.101.3.4.2.1","sha256"),_IN("2.16.840.1.101.3.4.2.2","sha384"),_IN("2.16.840.1.101.3.4.2.3","sha512"),_IN("2.16.840.1.101.3.4.2.4","sha224"),_IN("2.16.840.1.101.3.4.2.5","sha512-224"),_IN("2.16.840.1.101.3.4.2.6","sha512-256"),_IN("1.2.840.113549.2.2","md2"),_IN("1.2.840.113549.2.5","md5"),_IN("1.2.840.113549.1.7.1","data"),_IN("1.2.840.113549.1.7.2","signedData"),_IN("1.2.840.113549.1.7.3","envelopedData"),_IN("1.2.840.113549.1.7.4","signedAndEnvelopedData"),_IN("1.2.840.113549.1.7.5","digestedData"),_IN("1.2.840.113549.1.7.6","encryptedData"),_IN("1.2.840.113549.1.9.1","emailAddress"),_IN("1.2.840.113549.1.9.2","unstructuredName"),_IN("1.2.840.113549.1.9.3","contentType"),_IN("1.2.840.113549.1.9.4","messageDigest"),_IN("1.2.840.113549.1.9.5","signingTime"),_IN("1.2.840.113549.1.9.6","counterSignature"),_IN("1.2.840.113549.1.9.7","challengePassword"),_IN("1.2.840.113549.1.9.8","unstructuredAddress"),_IN("1.2.840.113549.1.9.14","extensionRequest"),_IN("1.2.840.113549.1.9.20","friendlyName"),_IN("1.2.840.113549.1.9.21","localKeyId"),_IN("1.2.840.113549.1.9.22.1","x509Certificate"),_IN("1.2.840.113549.1.12.10.1.1","keyBag"),_IN("1.2.840.113549.1.12.10.1.2","pkcs8ShroudedKeyBag"),_IN("1.2.840.113549.1.12.10.1.3","certBag"),_IN("1.2.840.113549.1.12.10.1.4","crlBag"),_IN("1.2.840.113549.1.12.10.1.5","secretBag"),_IN("1.2.840.113549.1.12.10.1.6","safeContentsBag"),_IN("1.2.840.113549.1.5.13","pkcs5PBES2"),_IN("1.2.840.113549.1.5.12","pkcs5PBKDF2"),_IN("1.2.840.113549.1.12.1.1","pbeWithSHAAnd128BitRC4"),_IN("1.2.840.113549.1.12.1.2","pbeWithSHAAnd40BitRC4"),_IN("1.2.840.113549.1.12.1.3","pbeWithSHAAnd3-KeyTripleDES-CBC"),_IN("1.2.840.113549.1.12.1.4","pbeWithSHAAnd2-KeyTripleDES-CBC"),_IN("1.2.840.113549.1.12.1.5","pbeWithSHAAnd128BitRC2-CBC"),_IN("1.2.840.113549.1.12.1.6","pbewithSHAAnd40BitRC2-CBC"),_IN("1.2.840.113549.2.7","hmacWithSHA1"),_IN("1.2.840.113549.2.8","hmacWithSHA224"),_IN("1.2.840.113549.2.9","hmacWithSHA256"),_IN("1.2.840.113549.2.10","hmacWithSHA384"),_IN("1.2.840.113549.2.11","hmacWithSHA512"),_IN("1.2.840.113549.3.7","des-EDE3-CBC"),_IN("2.16.840.1.101.3.4.1.2","aes128-CBC"),_IN("2.16.840.1.101.3.4.1.22","aes192-CBC"),_IN("2.16.840.1.101.3.4.1.42","aes256-CBC"),_IN("2.5.4.3","commonName"),_IN("2.5.4.4","surname"),_IN("2.5.4.5","serialNumber"),_IN("2.5.4.6","countryName"),_IN("2.5.4.7","localityName"),_IN("2.5.4.8","stateOrProvinceName"),_IN("2.5.4.9","streetAddress"),_IN("2.5.4.10","organizationName"),_IN("2.5.4.11","organizationalUnitName"),_IN("2.5.4.12","title"),_IN("2.5.4.13","description"),_IN("2.5.4.15","businessCategory"),_IN("2.5.4.17","postalCode"),_IN("2.5.4.42","givenName"),_IN("1.3.6.1.4.1.311.60.2.1.2","jurisdictionOfIncorporationStateOrProvinceName"),_IN("1.3.6.1.4.1.311.60.2.1.3","jurisdictionOfIncorporationCountryName"),_IN("2.16.840.1.113730.1.1","nsCertType"),_IN("2.16.840.1.113730.1.13","nsComment"),_I_("2.5.29.1","authorityKeyIdentifier"),_I_("2.5.29.2","keyAttributes"),_I_("2.5.29.3","certificatePolicies"),_I_("2.5.29.4","keyUsageRestriction"),_I_("2.5.29.5","policyMapping"),_I_("2.5.29.6","subtreesConstraint"),_I_("2.5.29.7","subjectAltName"),_I_("2.5.29.8","issuerAltName"),_I_("2.5.29.9","subjectDirectoryAttributes"),_I_("2.5.29.10","basicConstraints"),_I_("2.5.29.11","nameConstraints"),_I_("2.5.29.12","policyConstraints"),_I_("2.5.29.13","basicConstraints"),_IN("2.5.29.14","subjectKeyIdentifier"),_IN("2.5.29.15","keyUsage"),_I_("2.5.29.16","privateKeyUsagePeriod"),_IN("2.5.29.17","subjectAltName"),_IN("2.5.29.18","issuerAltName"),_IN("2.5.29.19","basicConstraints"),_I_("2.5.29.20","cRLNumber"),_I_("2.5.29.21","cRLReason"),_I_("2.5.29.22","expirationDate"),_I_("2.5.29.23","instructionCode"),_I_("2.5.29.24","invalidityDate"),_I_("2.5.29.25","cRLDistributionPoints"),_I_("2.5.29.26","issuingDistributionPoint"),_I_("2.5.29.27","deltaCRLIndicator"),_I_("2.5.29.28","issuingDistributionPoint"),_I_("2.5.29.29","certificateIssuer"),_I_("2.5.29.30","nameConstraints"),_IN("2.5.29.31","cRLDistributionPoints"),_IN("2.5.29.32","certificatePolicies"),_I_("2.5.29.33","policyMappings"),_I_("2.5.29.34","policyConstraints"),_IN("2.5.29.35","authorityKeyIdentifier"),_I_("2.5.29.36","policyConstraints"),_IN("2.5.29.37","extKeyUsage"),_I_("2.5.29.46","freshestCRL"),_I_("2.5.29.54","inhibitAnyPolicy"),_IN("1.3.6.1.4.1.11129.2.4.2","timestampList"),_IN("1.3.6.1.5.5.7.1.1","authorityInfoAccess"),_IN("1.3.6.1.5.5.7.3.1","serverAuth"),_IN("1.3.6.1.5.5.7.3.2","clientAuth"),_IN("1.3.6.1.5.5.7.3.3","codeSigning"),_IN("1.3.6.1.5.5.7.3.4","emailProtection"),_IN("1.3.6.1.5.5.7.3.8","timeStamping");var forge$x=forge$D,asn1$8=forge$x.asn1=forge$x.asn1||{};function _checkBufferLength(e,t,r){if(r>t){var n=new Error("Too few bytes to parse DER.");throw n.available=e.length(),n.remaining=t,n.requested=r,n}}asn1$8.Class={UNIVERSAL:0,APPLICATION:64,CONTEXT_SPECIFIC:128,PRIVATE:192},asn1$8.Type={NONE:0,BOOLEAN:1,INTEGER:2,BITSTRING:3,OCTETSTRING:4,NULL:5,OID:6,ODESC:7,EXTERNAL:8,REAL:9,ENUMERATED:10,EMBEDDED:11,UTF8:12,ROID:13,SEQUENCE:16,SET:17,PRINTABLESTRING:19,IA5STRING:22,UTCTIME:23,GENERALIZEDTIME:24,BMPSTRING:30},asn1$8.create=function(e,t,r,n,o){if(forge$x.util.isArray(n)){for(var i=[],a=0;at){if(n.strict){var d=new Error("Too few bytes to read ASN.1 value.");throw d.available=e.length(),d.remaining=t,d.requested=l,d}l=t}var f=!(32&~i);if(f)if(c=[],void 0===l)for(;;){if(_checkBufferLength(e,t,2),e.bytes(2)===String.fromCharCode(0,0)){e.getBytes(2),t-=2;break}o=e.length(),c.push(_fromDer(e,t,r+1,n)),t-=o-e.length()}else for(;l>0;)o=e.length(),c.push(_fromDer(e,l,r+1,n)),t-=o-e.length(),l-=o-e.length();if(void 0===c&&a===asn1$8.Class.UNIVERSAL&&s===asn1$8.Type.BITSTRING&&(u=e.bytes(l)),void 0===c&&n.decodeBitStrings&&a===asn1$8.Class.UNIVERSAL&&s===asn1$8.Type.BITSTRING&&l>1){var h=e.read,p=t,y=0;if(s===asn1$8.Type.BITSTRING&&(_checkBufferLength(e,t,1),y=e.getByte(),t--),0===y)try{o=e.length();var m=_fromDer(e,t,r+1,{strict:!0,decodeBitStrings:!0}),g=o-e.length();t-=g,s==asn1$8.Type.BITSTRING&&g++;var b=m.tagClass;g!==l||b!==asn1$8.Class.UNIVERSAL&&b!==asn1$8.Class.CONTEXT_SPECIFIC||(c=[m])}catch(w){}void 0===c&&(e.read=h,t=p)}if(void 0===c){if(void 0===l){if(n.strict)throw new Error("Non-constructed ASN.1 object of indefinite length.");l=t}if(s===asn1$8.Type.BMPSTRING)for(c="";l>0;l-=2)_checkBufferLength(e,t,2),c+=String.fromCharCode(e.getInt16()),t-=2;else c=e.getBytes(l),t-=l}var v=void 0===u?null:{bitStringContents:u};return asn1$8.create(a,s,f,c,v)}asn1$8.fromDer=function(e,t){void 0===t&&(t={strict:!0,parseAllBytes:!0,decodeBitStrings:!0}),"boolean"==typeof t&&(t={strict:t,parseAllBytes:!0,decodeBitStrings:!0}),"strict"in t||(t.strict=!0),"parseAllBytes"in t||(t.parseAllBytes=!0),"decodeBitStrings"in t||(t.decodeBitStrings=!0),"string"==typeof e&&(e=forge$x.util.createBuffer(e));var r=e.length(),n=_fromDer(e,e.length(),0,t);if(t.parseAllBytes&&0!==e.length()){var o=new Error("Unparsed DER bytes remain after ASN.1 parsing.");throw o.byteCount=r,o.remaining=e.length(),o}return n},asn1$8.toDer=function(e){var t=forge$x.util.createBuffer(),r=e.tagClass|e.type,n=forge$x.util.createBuffer(),o=!1;if("bitStringContents"in e&&(o=!0,e.original&&(o=asn1$8.equals(e,e.original))),o)n.putBytes(e.bitStringContents);else if(e.composed){e.constructed?r|=32:n.putByte(0);for(var i=0;i1)||(0!==e.value.charCodeAt(0)||128&e.value.charCodeAt(1))&&(255!==e.value.charCodeAt(0)||128&~e.value.charCodeAt(1))?n.putBytes(e.value):n.putBytes(e.value.substr(1));if(t.putByte(r),n.length()<=127)t.putByte(127&n.length());else{var a=n.length(),s="";do{s+=String.fromCharCode(255&a),a>>>=8}while(a>0);t.putByte(128|s.length);for(i=s.length-1;i>=0;--i)t.putByte(s.charCodeAt(i))}return t.putBuffer(n),t},asn1$8.oidToDer=function(e){var t,r,n,o,i=e.split("."),a=forge$x.util.createBuffer();a.putByte(40*parseInt(i[0],10)+parseInt(i[1],10));for(var s=2;s>>=7,t||(o|=128),r.push(o),t=!1}while(n>0);for(var c=r.length-1;c>=0;--c)a.putByte(r[c])}return a},asn1$8.derToOid=function(e){var t;"string"==typeof e&&(e=forge$x.util.createBuffer(e));var r=e.getByte();t=Math.floor(r/40)+"."+r%40;for(var n=0;e.length()>0;)n<<=7,128&(r=e.getByte())?n+=127&r:(t+="."+(n+r),n=0);return t},asn1$8.utcTimeToDate=function(e){var t=new Date,r=parseInt(e.substr(0,2),10);r=r>=50?1900+r:2e3+r;var n=parseInt(e.substr(2,2),10)-1,o=parseInt(e.substr(4,2),10),i=parseInt(e.substr(6,2),10),a=parseInt(e.substr(8,2),10),s=0;if(e.length>11){var c=e.charAt(10),u=10;"+"!==c&&"-"!==c&&(s=parseInt(e.substr(10,2),10),u+=2)}if(t.setUTCFullYear(r,n,o),t.setUTCHours(i,a,s,0),u&&("+"===(c=e.charAt(u))||"-"===c)){var l=60*parseInt(e.substr(u+1,2),10)+parseInt(e.substr(u+4,2),10);l*=6e4,"+"===c?t.setTime(+t-l):t.setTime(+t+l)}return t},asn1$8.generalizedTimeToDate=function(e){var t=new Date,r=parseInt(e.substr(0,4),10),n=parseInt(e.substr(4,2),10)-1,o=parseInt(e.substr(6,2),10),i=parseInt(e.substr(8,2),10),a=parseInt(e.substr(10,2),10),s=parseInt(e.substr(12,2),10),c=0,u=0,l=!1;"Z"===e.charAt(e.length-1)&&(l=!0);var d=e.length-5,f=e.charAt(d);"+"!==f&&"-"!==f||(u=60*parseInt(e.substr(d+1,2),10)+parseInt(e.substr(d+4,2),10),u*=6e4,"+"===f&&(u*=-1),l=!0);return"."===e.charAt(14)&&(c=1e3*parseFloat(e.substr(14),10)),l?(t.setUTCFullYear(r,n,o),t.setUTCHours(i,a,s,c),t.setTime(+t+u)):(t.setFullYear(r,n,o),t.setHours(i,a,s,c)),t},asn1$8.dateToUtcTime=function(e){if("string"==typeof e)return e;var t="",r=[];r.push((""+e.getUTCFullYear()).substr(2)),r.push(""+(e.getUTCMonth()+1)),r.push(""+e.getUTCDate()),r.push(""+e.getUTCHours()),r.push(""+e.getUTCMinutes()),r.push(""+e.getUTCSeconds());for(var n=0;n=-128&&e<128)return t.putSignedInt(e,8);if(e>=-32768&&e<32768)return t.putSignedInt(e,16);if(e>=-8388608&&e<8388608)return t.putSignedInt(e,24);if(e>=-2147483648&&e<2147483648)return t.putSignedInt(e,32);var r=new Error("Integer too large; max is 32-bits.");throw r.integer=e,r},asn1$8.derToInteger=function(e){"string"==typeof e&&(e=forge$x.util.createBuffer(e));var t=8*e.length();if(t>32)throw new Error("Integer too large; max is 32-bits.");return e.getSignedInt(t)},asn1$8.validate=function(e,t,r,n){var o=!1;if(e.tagClass!==t.tagClass&&void 0!==t.tagClass||e.type!==t.type&&void 0!==t.type)n&&(e.tagClass!==t.tagClass&&n.push("["+t.name+'] Expected tag class "'+t.tagClass+'", got "'+e.tagClass+'"'),e.type!==t.type&&n.push("["+t.name+'] Expected type "'+t.type+'", got "'+e.type+'"'));else if(e.constructed===t.constructed||void 0===t.constructed){if(o=!0,t.value&&forge$x.util.isArray(t.value))for(var i=0,a=0;o&&a0&&(n+="\n");for(var o="",i=0;i1?n+="0x"+forge$x.util.bytesToHex(e.value.slice(1)):n+="(none)",e.value.length>0){var u=e.value.charCodeAt(0);1==u?n+=" (1 unused bit shown)":u>1&&(n+=" ("+u+" unused bits shown)")}}else if(e.type===asn1$8.Type.OCTETSTRING)_nonLatinRegex.test(e.value)||(n+="("+e.value+") "),n+="0x"+forge$x.util.bytesToHex(e.value);else if(e.type===asn1$8.Type.UTF8)try{n+=forge$x.util.decodeUtf8(e.value)}catch(e2){if("URI malformed"!==e2.message)throw e2;n+="0x"+forge$x.util.bytesToHex(e.value)+" (malformed UTF8)"}else e.type===asn1$8.Type.PRINTABLESTRING||e.type===asn1$8.Type.IA5String?n+=e.value:_nonLatinRegex.test(e.value)?n+="0x"+forge$x.util.bytesToHex(e.value):0===e.value.length?n+="[null]":n+=e.value}return n};var forge$w=forge$D;forge$w.md=forge$w.md||{},forge$w.md.algorithms=forge$w.md.algorithms||{};var forge$v=forge$D,hmac$2=forge$v.hmac=forge$v.hmac||{};hmac$2.create=function(){var e=null,t=null,r=null,n=null,o={start:function(o,i){if(null!==o)if("string"==typeof o){if(!((o=o.toLowerCase())in forge$v.md.algorithms))throw new Error('Unknown hash algorithm "'+o+'"');t=forge$v.md.algorithms[o].create()}else t=o;if(null===i)i=e;else{if("string"==typeof i)i=forge$v.util.createBuffer(i);else if(forge$v.util.isArray(i)){var a=i;i=forge$v.util.createBuffer();for(var s=0;st.blockLength&&(t.start(),t.update(i.bytes()),i=t.digest()),r=forge$v.util.createBuffer(),n=forge$v.util.createBuffer(),c=i.length();for(s=0;s>>0,a>>>0];for(var s=n.fullMessageLength.length-1;s>=0;--s)n.fullMessageLength[s]+=a[1],a[1]=a[0]+(n.fullMessageLength[s]/4294967296>>>0),n.fullMessageLength[s]=n.fullMessageLength[s]>>>0,a[0]=a[1]/4294967296>>>0;return t.putBytes(o),_update$3(e,r,t),(t.read>2048||0===t.length())&&t.compact(),n},n.digest=function(){var o=forge$u.util.createBuffer();o.putBytes(t.bytes());var i=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize&n.blockLength-1;o.putBytes(_padding$3.substr(0,n.blockLength-i));for(var a,s=0,c=n.fullMessageLength.length-1;c>=0;--c)s=(a=8*n.fullMessageLength[c]+s)/4294967296>>>0,o.putInt32Le(a>>>0);var u={h0:e.h0,h1:e.h1,h2:e.h2,h3:e.h3};_update$3(u,r,o);var l=forge$u.util.createBuffer();return l.putInt32Le(u.h0),l.putInt32Le(u.h1),l.putInt32Le(u.h2),l.putInt32Le(u.h3),l},n};var _padding$3=null,_g=null,_r$3=null,_k$2=null,_initialized$3=!1;function _init$3(){_padding$3=String.fromCharCode(128),_padding$3+=forge$u.util.fillString(String.fromCharCode(0),64),_g=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,1,6,11,0,5,10,15,4,9,14,3,8,13,2,7,12,5,8,11,14,1,4,7,10,13,0,3,6,9,12,15,2,0,7,14,5,12,3,10,1,8,15,6,13,4,11,2,9],_r$3=[7,12,17,22,7,12,17,22,7,12,17,22,7,12,17,22,5,9,14,20,5,9,14,20,5,9,14,20,5,9,14,20,4,11,16,23,4,11,16,23,4,11,16,23,4,11,16,23,6,10,15,21,6,10,15,21,6,10,15,21,6,10,15,21],_k$2=new Array(64);for(var e=0;e<64;++e)_k$2[e]=Math.floor(4294967296*Math.abs(Math.sin(e+1)));_initialized$3=!0}function _update$3(e,t,r){for(var n,o,i,a,s,c,u,l=r.length();l>=64;){for(o=e.h0,i=e.h1,a=e.h2,s=e.h3,u=0;u<16;++u)t[u]=r.getInt32Le(),n=o+(s^i&(a^s))+_k$2[u]+t[u],o=s,s=a,a=i,i+=n<<(c=_r$3[u])|n>>>32-c;for(;u<32;++u)n=o+(a^s&(i^a))+_k$2[u]+t[_g[u]],o=s,s=a,a=i,i+=n<<(c=_r$3[u])|n>>>32-c;for(;u<48;++u)n=o+(i^a^s)+_k$2[u]+t[_g[u]],o=s,s=a,a=i,i+=n<<(c=_r$3[u])|n>>>32-c;for(;u<64;++u)n=o+(a^(i|~s))+_k$2[u]+t[_g[u]],o=s,s=a,a=i,i+=n<<(c=_r$3[u])|n>>>32-c;e.h0=e.h0+o|0,e.h1=e.h1+i|0,e.h2=e.h2+a|0,e.h3=e.h3+s|0,l-=64}}var forge$t=forge$D,pem=forge$t.pem=forge$t.pem||{};function foldHeader(e){for(var t=e.name+": ",r=[],n=function(e,t){return" "+t},o=0;o65&&-1!==a){var s=t[a];","===s?(++a,t=t.substr(0,a)+"\r\n "+t.substr(a)):t=t.substr(0,a)+"\r\n"+s+t.substr(a+1),i=o-a-1,a=-1,++o}else" "!==t[o]&&"\t"!==t[o]&&","!==t[o]||(a=o);return t}function ltrim(e){return e.replace(/^\s+/,"")}pem.encode=function(e,t){t=t||{};var r,n="-----BEGIN "+e.type+"-----\r\n";if(e.procType&&(n+=foldHeader(r={name:"Proc-Type",values:[String(e.procType.version),e.procType.type]})),e.contentDomain&&(n+=foldHeader(r={name:"Content-Domain",values:[e.contentDomain]})),e.dekInfo&&(r={name:"DEK-Info",values:[e.dekInfo.algorithm]},e.dekInfo.parameters&&r.values.push(e.dekInfo.parameters),n+=foldHeader(r)),e.headers)for(var o=0;o8?3:1,g=[],b=[0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0],v=0,w=0;w>>4^I))<<4,_^=t=65535&((I^=t)>>>-16^_),_^=(t=858993459&(_>>>2^(I^=t<<-16)))<<2,_^=t=65535&((I^=t)>>>-16^_),_^=(t=1431655765&(_>>>1^(I^=t<<-16)))<<1,_^=t=16711935&((I^=t)>>>8^_),t=(_^=(t=1431655765&(_>>>1^(I^=t<<8)))<<1)<<8|(I^=t)>>>20&240,_=I<<24|I<<8&16711680|I>>>8&65280|I>>>24&240,I=t;for(var T=0;T>>26,I=I<<2|I>>>26):(_=_<<1|_>>>27,I=I<<1|I>>>27);var k=r[(_&=-15)>>>28]|n[_>>>24&15]|o[_>>>20&15]|i[_>>>16&15]|a[_>>>12&15]|s[_>>>8&15]|c[_>>>4&15],$=u[(I&=-15)>>>28]|l[I>>>24&15]|d[I>>>20&15]|f[I>>>16&15]|h[I>>>12&15]|p[I>>>8&15]|y[I>>>4&15];t=65535&($>>>16^k),g[v++]=k^t,g[v++]=$^t<<16}}return g}function _updateBlock(e,t,r,n){var o,i,a=32===e.length?3:9;o=3===a?n?[30,-2,-2]:[0,32,2]:n?[94,62,-2,32,64,2,30,-2,-2]:[0,32,2,62,30,-2,64,96,2];var s=t[0],c=t[1];s^=(i=252645135&(s>>>4^c))<<4,s^=(i=65535&(s>>>16^(c^=i)))<<16,s^=i=858993459&((c^=i)>>>2^s),s^=i=16711935&((c^=i<<2)>>>8^s),s=(s^=(i=1431655765&(s>>>1^(c^=i<<8)))<<1)<<1|s>>>31,c=(c^=i)<<1|c>>>31;for(var u=0;u>>4|c<<28)^e[f+1];i=s,s=c,c=i^(spfunction2[h>>>24&63]|spfunction4[h>>>16&63]|spfunction6[h>>>8&63]|spfunction8[63&h]|spfunction1[p>>>24&63]|spfunction3[p>>>16&63]|spfunction5[p>>>8&63]|spfunction7[63&p])}i=s,s=c,c=i}c=c>>>1|c<<31,c^=i=1431655765&((s=s>>>1|s<<31)>>>1^c),c^=(i=16711935&(c>>>8^(s^=i<<1)))<<8,c^=(i=858993459&(c>>>2^(s^=i)))<<2,c^=i=65535&((s^=i)>>>16^c),c^=i=252645135&((s^=i<<16)>>>4^c),s^=i<<4,r[0]=s,r[1]=c}function _createCipher(e){var t,r="DES-"+((e=e||{}).mode||"CBC").toUpperCase(),n=(t=e.decrypt?forge$s.cipher.createDecipher(r,e.key):forge$s.cipher.createCipher(r,e.key)).start;return t.start=function(e,r){var o=null;r instanceof forge$s.util.ByteBuffer&&(o=r,r={}),(r=r||{}).output=o,r.iv=e,n.call(t,r)},t}var forge$r=forge$D,pkcs5=forge$r.pkcs5=forge$r.pkcs5||{},crypto$2;forge$r.util.isNodejs&&!forge$r.options.usePureJavaScript&&(crypto$2=requireCryptoBrowserify()),forge$r.pbkdf2=pkcs5.pbkdf2=function(e,t,r,n,o,i){if("function"==typeof o&&(i=o,o=null),forge$r.util.isNodejs&&!forge$r.options.usePureJavaScript&&crypto$2.pbkdf2&&(null===o||"object"!=typeof o)&&(crypto$2.pbkdf2Sync.length>4||!o||"sha1"===o))return"string"!=typeof o&&(o="sha1"),e=Buffer$2.from(e,"binary"),t=Buffer$2.from(t,"binary"),i?4===crypto$2.pbkdf2Sync.length?crypto$2.pbkdf2(e,t,r,n,(function(e,t){if(e)return i(e);i(null,t.toString("binary"))})):crypto$2.pbkdf2(e,t,r,n,o,(function(e,t){if(e)return i(e);i(null,t.toString("binary"))})):4===crypto$2.pbkdf2Sync.length?crypto$2.pbkdf2Sync(e,t,r,n).toString("binary"):crypto$2.pbkdf2Sync(e,t,r,n,o).toString("binary");if(null==o&&(o="sha1"),"string"==typeof o){if(!(o in forge$r.md.algorithms))throw new Error("Unknown hash algorithm: "+o);o=forge$r.md[o].create()}var a=o.digestLength;if(n>4294967295*a){var s=new Error("Derived key is too long.");if(i)return i(s);throw s}var c=Math.ceil(n/a),u=n-(c-1)*a,l=forge$r.hmac.create();l.start(o,e);var d,f,h,p="";if(!i){for(var y=1;y<=c;++y){l.start(null,null),l.update(t),l.update(forge$r.util.int32ToBytes(y)),d=h=l.digest().getBytes();for(var m=2;m<=r;++m)l.start(null,null),l.update(h),f=l.digest().getBytes(),d=forge$r.util.xorBytes(d,f,a),h=f;p+=yc)return i(null,p);l.start(null,null),l.update(t),l.update(forge$r.util.int32ToBytes(y)),d=h=l.digest().getBytes(),m=2,b()}function b(){if(m<=r)return l.start(null,null),l.update(h),f=l.digest().getBytes(),d=forge$r.util.xorBytes(d,f,a),h=f,++m,forge$r.util.setImmediate(b);p+=y>>0,a>>>0];for(var s=n.fullMessageLength.length-1;s>=0;--s)n.fullMessageLength[s]+=a[1],a[1]=a[0]+(n.fullMessageLength[s]/4294967296>>>0),n.fullMessageLength[s]=n.fullMessageLength[s]>>>0,a[0]=a[1]/4294967296>>>0;return t.putBytes(o),_update$2(e,r,t),(t.read>2048||0===t.length())&&t.compact(),n},n.digest=function(){var o=forge$q.util.createBuffer();o.putBytes(t.bytes());var i,a=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize&n.blockLength-1;o.putBytes(_padding$2.substr(0,n.blockLength-a));for(var s=8*n.fullMessageLength[0],c=0;c>>0,o.putInt32(s>>>0),s=i>>>0;o.putInt32(s);var u={h0:e.h0,h1:e.h1,h2:e.h2,h3:e.h3,h4:e.h4,h5:e.h5,h6:e.h6,h7:e.h7};_update$2(u,r,o);var l=forge$q.util.createBuffer();return l.putInt32(u.h0),l.putInt32(u.h1),l.putInt32(u.h2),l.putInt32(u.h3),l.putInt32(u.h4),l.putInt32(u.h5),l.putInt32(u.h6),l.putInt32(u.h7),l},n};var _padding$2=null,_initialized$2=!1,_k$1=null;function _init$2(){_padding$2=String.fromCharCode(128),_padding$2+=forge$q.util.fillString(String.fromCharCode(0),64),_k$1=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],_initialized$2=!0}function _update$2(e,t,r){for(var n,o,i,a,s,c,u,l,d,f,h,p,y,m=r.length();m>=64;){for(s=0;s<16;++s)t[s]=r.getInt32();for(;s<64;++s)n=((n=t[s-2])>>>17|n<<15)^(n>>>19|n<<13)^n>>>10,o=((o=t[s-15])>>>7|o<<25)^(o>>>18|o<<14)^o>>>3,t[s]=n+t[s-7]+o+t[s-16]|0;for(c=e.h0,u=e.h1,l=e.h2,d=e.h3,f=e.h4,h=e.h5,p=e.h6,y=e.h7,s=0;s<64;++s)i=(c>>>2|c<<30)^(c>>>13|c<<19)^(c>>>22|c<<10),a=c&u|l&(c^u),n=y+((f>>>6|f<<26)^(f>>>11|f<<21)^(f>>>25|f<<7))+(p^f&(h^p))+_k$1[s]+t[s],y=p,p=h,h=f,f=d+n>>>0,d=l,l=u,u=c,c=n+(o=i+a)>>>0;e.h0=e.h0+c|0,e.h1=e.h1+u|0,e.h2=e.h2+l|0,e.h3=e.h3+d|0,e.h4=e.h4+f|0,e.h5=e.h5+h|0,e.h6=e.h6+p|0,e.h7=e.h7+y|0,m-=64}}var forge$p=forge$D,_crypto$1=null;!forge$p.util.isNodejs||forge$p.options.usePureJavaScript||process$1.versions["node-webkit"]||(_crypto$1=requireCryptoBrowserify());var prng=forge$p.prng=forge$p.prng||{};prng.create=function(e){for(var t={plugin:e,key:null,seed:null,time:null,reseeds:0,generated:0,keyBytes:""},r=e.md,n=new Array(32),o=0;o<32;++o)n[o]=r.create();function i(){if(t.pools[0].messageLength>=32)return a();var e=32-t.pools[0].messageLength<<5;t.collect(t.seedFileSync(e)),a()}function a(){t.reseeds=4294967295===t.reseeds?0:t.reseeds+1;var e=t.plugin.md.create();e.update(t.keyBytes);for(var r=1,n=0;n<32;++n)t.reseeds%r==0&&(e.update(t.pools[n].digest().getBytes()),t.pools[n].start()),r<<=1;t.keyBytes=e.digest().getBytes(),e.start(),e.update(t.keyBytes);var o=e.digest().getBytes();t.key=t.plugin.formatKey(t.keyBytes),t.seed=t.plugin.formatSeed(o),t.generated=0}function s(e){var t=null,r=forge$p.util.globalScope,n=r.crypto||r.msCrypto;n&&n.getRandomValues&&(t=function(e){return n.getRandomValues(e)});var o=forge$p.util.createBuffer();if(t)for(;o.length()>16)))<<16,d=4294967295&(u=(2147483647&(u+=c>>15))+(u>>31));for(s=0;s<3;++s)l=d>>>(s<<3),l^=Math.floor(256*Math.random()),o.putByte(255&l)}return o.getBytes(e)}return t.pools=n,t.pool=0,t.generate=function(e,r){if(!r)return t.generateSync(e);var n=t.plugin.cipher,o=t.plugin.increment,i=t.plugin.formatKey,s=t.plugin.formatSeed,c=forge$p.util.createBuffer();t.key=null,function u(l){if(l)return r(l);if(c.length()>=e)return r(null,c.getBytes(e));t.generated>1048575&&(t.key=null);if(null===t.key)return forge$p.util.nextTick((function(){!function(e){if(t.pools[0].messageLength>=32)return a(),e();var r=32-t.pools[0].messageLength<<5;t.seedFile(r,(function(r,n){if(r)return e(r);t.collect(n),a(),e()}))}(u)}));var d=n(t.key,t.seed);t.generated+=d.length,c.putBytes(d),t.key=i(n(t.key,o(t.seed))),t.seed=s(n(t.key,t.seed)),forge$p.util.setImmediate(u)}()},t.generateSync=function(e){var r=t.plugin.cipher,n=t.plugin.increment,o=t.plugin.formatKey,a=t.plugin.formatSeed;t.key=null;for(var s=forge$p.util.createBuffer();s.length()1048575&&(t.key=null),null===t.key&&i();var c=r(t.key,t.seed);t.generated+=c.length,s.putBytes(c),t.key=o(r(t.key,n(t.seed))),t.seed=a(r(t.key,t.seed))}return s.getBytes(e)},_crypto$1?(t.seedFile=function(e,t){_crypto$1.randomBytes(e,(function(e,r){if(e)return t(e);t(null,r.toString())}))},t.seedFileSync=function(e){return _crypto$1.randomBytes(e).toString()}):(t.seedFile=function(e,t){try{t(null,s(e))}catch(e2){t(e2)}},t.seedFileSync=s),t.collect=function(e){for(var r=e.length,n=0;n>o&255);t.collect(n)},t.registerWorker=function(e){if(e===self)t.seedFile=function(e,t){self.addEventListener("message",(function e(r){var n=r.data;n.forge&&n.forge.prng&&(self.removeEventListener("message",e),t(n.forge.prng.err,n.forge.prng.bytes))})),self.postMessage({forge:{prng:{needed:e}}})};else{e.addEventListener("message",(function(r){var n=r.data;n.forge&&n.forge.prng&&t.seedFile(n.forge.prng.needed,(function(t,r){e.postMessage({forge:{prng:{err:t,bytes:r}}})}))}))}},t};var forge$o=forge$D;forge$o.random&&forge$o.random.getBytes?forge$o.random:function(e){var t={},r=new Array(4),n=forge$o.util.createBuffer();function o(){var e=forge$o.prng.create(t);return e.getBytes=function(t,r){return e.generate(t,r)},e.getBytesSync=function(t){return e.generate(t)},e}t.formatKey=function(e){var t=forge$o.util.createBuffer(e);return(e=new Array(4))[0]=t.getInt32(),e[1]=t.getInt32(),e[2]=t.getInt32(),e[3]=t.getInt32(),forge$o.aes._expandKey(e,!1)},t.formatSeed=function(e){var t=forge$o.util.createBuffer(e);return(e=new Array(4))[0]=t.getInt32(),e[1]=t.getInt32(),e[2]=t.getInt32(),e[3]=t.getInt32(),e},t.cipher=function(e,t){return forge$o.aes._updateBlock(e,t,r,!1),n.putInt32(r[0]),n.putInt32(r[1]),n.putInt32(r[2]),n.putInt32(r[3]),n.getBytes()},t.increment=function(e){return++e[3],e},t.md=forge$o.md.sha256;var i=o(),a=null,s=forge$o.util.globalScope,c=s.crypto||s.msCrypto;if(c&&c.getRandomValues&&(a=function(e){return c.getRandomValues(e)}),forge$o.options.usePureJavaScript||!forge$o.util.isNodejs&&!a){if(i.collectInt(+new Date,32),"undefined"!=typeof navigator){var u="";for(var l in navigator)try{"string"==typeof navigator[l]&&(u+=navigator[l])}catch(e2){}i.collect(u),u=null}e&&(e().mousemove((function(e){i.collectInt(e.clientX,16),i.collectInt(e.clientY,16)})),e().keypress((function(e){i.collectInt(e.charCode,8)})))}if(forge$o.random)for(var l in i)forge$o.random[l]=i[l];else forge$o.random=i;forge$o.random.createInstance=o,forge$o.random}("undefined"!=typeof jQuery?jQuery:null);var forge$n=forge$D,piTable=[217,120,249,196,25,221,181,237,40,233,253,121,74,160,216,157,198,126,55,131,43,118,83,142,98,76,100,136,68,139,251,162,23,154,89,245,135,179,79,19,97,69,109,141,9,129,125,50,189,143,64,235,134,183,123,11,240,149,33,34,92,107,78,130,84,214,101,147,206,96,178,28,115,86,192,20,167,140,241,220,18,117,202,31,59,190,228,209,66,61,212,48,163,60,182,38,111,191,14,218,70,105,7,87,39,242,29,155,188,148,67,3,248,17,199,246,144,239,62,231,6,195,213,47,200,102,30,215,8,232,234,222,128,82,238,247,132,170,114,172,53,77,106,42,150,26,210,113,90,21,73,116,75,159,208,94,4,24,164,236,194,224,65,110,15,81,203,204,36,145,175,80,161,244,112,57,153,124,58,133,35,184,180,122,252,2,54,91,37,85,151,49,45,93,250,152,227,138,146,174,5,223,41,16,103,108,186,201,211,0,230,207,225,158,168,44,99,22,1,63,88,226,137,169,13,56,52,27,171,51,255,176,187,72,12,95,185,177,205,46,197,243,219,71,229,165,156,119,10,166,32,104,254,127,193,173],s$8=[1,2,3,5],rol=function(e,t){return e<>16-t},ror=function(e,t){return(65535&e)>>t|e<<16-t&65535};forge$n.rc2=forge$n.rc2||{},forge$n.rc2.expandKey=function(e,t){"string"==typeof e&&(e=forge$n.util.createBuffer(e)),t=t||128;var r,n=e,o=e.length(),i=t,a=Math.ceil(i/8),s=255>>(7&i);for(r=o;r<128;r++)n.putByte(piTable[n.at(r-1)+n.at(r-o)&255]);for(n.setAt(128-a,piTable[n.at(128-a)&s]),r=127-a;r>=0;r--)n.setAt(r,piTable[n.at(r+1)^n.at(r+a)]);return n};var createCipher=function(e,t,r){var n,o,i,a,s=!1,c=null,u=null,l=null,d=[];for(e=forge$n.rc2.expandKey(e,t),i=0;i<64;i++)d.push(e.getInt16Le());r?(n=function(e){for(i=0;i<4;i++)e[i]+=d[a]+(e[(i+3)%4]&e[(i+2)%4])+(~e[(i+3)%4]&e[(i+1)%4]),e[i]=rol(e[i],s$8[i]),a++},o=function(e){for(i=0;i<4;i++)e[i]+=d[63&e[(i+3)%4]]}):(n=function(e){for(i=3;i>=0;i--)e[i]=ror(e[i],s$8[i]),e[i]-=d[a]+(e[(i+3)%4]&e[(i+2)%4])+(~e[(i+3)%4]&e[(i+1)%4]),a--},o=function(e){for(i=3;i>=0;i--)e[i]-=d[63&e[(i+3)%4]]});var f=function(e){var t=[];for(i=0;i<4;i++){var n=c.getInt16Le();null!==l&&(r?n^=l.getInt16Le():l.putInt16Le(n)),t.push(65535&n)}a=r?0:63;for(var o=0;o=8;)f([[5,n],[1,o],[6,n],[1,o],[5,n]])},finish:function(e){var t=!0;if(r)if(e)t=e(8,c,!r);else{var n=8===c.length()?8:8-c.length();c.fillWithByte(n,n)}if(t&&(s=!0,h.update()),!r&&(t=0===c.length()))if(e)t=e(8,u,!r);else{var o=u.length(),i=u.at(o-1);i>o?t=!1:u.truncate(i)}return t}}};forge$n.rc2.startEncrypting=function(e,t,r){var n=forge$n.rc2.createEncryptionCipher(e,128);return n.start(t,r),n},forge$n.rc2.createEncryptionCipher=function(e,t){return createCipher(e,t,!0)},forge$n.rc2.startDecrypting=function(e,t,r){var n=forge$n.rc2.createDecryptionCipher(e,128);return n.start(t,r),n},forge$n.rc2.createDecryptionCipher=function(e,t){return createCipher(e,t,!1)};var forge$m=forge$D,dbits;function BigInteger$4(e,t,r){this.data=[],null!=e&&("number"==typeof e?this.fromNumber(e,t,r):null==t&&"string"!=typeof e?this.fromString(e,256):this.fromString(e,t))}function nbi(){return new BigInteger$4(null)}function am1(e,t,r,n,o,i){for(;--i>=0;){var a=t*this.data[e++]+r.data[n]+o;o=Math.floor(a/67108864),r.data[n++]=67108863&a}return o}function am2(e,t,r,n,o,i){for(var a=32767&t,s=t>>15;--i>=0;){var c=32767&this.data[e],u=this.data[e++]>>15,l=s*c+u*a;o=((c=a*c+((32767&l)<<15)+r.data[n]+(1073741823&o))>>>30)+(l>>>15)+s*u+(o>>>30),r.data[n++]=1073741823&c}return o}function am3(e,t,r,n,o,i){for(var a=16383&t,s=t>>14;--i>=0;){var c=16383&this.data[e],u=this.data[e++]>>14,l=s*c+u*a;o=((c=a*c+((16383&l)<<14)+r.data[n]+o)>>28)+(l>>14)+s*u,r.data[n++]=268435455&c}return o}forge$m.jsbn=forge$m.jsbn||{},forge$m.jsbn.BigInteger=BigInteger$4,"undefined"==typeof navigator?(BigInteger$4.prototype.am=am3,dbits=28):"Microsoft Internet Explorer"==navigator.appName?(BigInteger$4.prototype.am=am2,dbits=30):"Netscape"!=navigator.appName?(BigInteger$4.prototype.am=am1,dbits=26):(BigInteger$4.prototype.am=am3,dbits=28),BigInteger$4.prototype.DB=dbits,BigInteger$4.prototype.DM=(1<=0;--t)e.data[t]=this.data[t];e.t=this.t,e.s=this.s}function bnpFromInt(e){this.t=1,this.s=e<0?-1:0,e>0?this.data[0]=e:e<-1?this.data[0]=e+this.DV:this.t=0}function nbv(e){var t=nbi();return t.fromInt(e),t}function bnpFromString(e,t){var r;if(16==t)r=4;else if(8==t)r=3;else if(256==t)r=8;else if(2==t)r=1;else if(32==t)r=5;else{if(4!=t)return void this.fromRadix(e,t);r=2}this.t=0,this.s=0;for(var n=e.length,o=!1,i=0;--n>=0;){var a=8==r?255&e[n]:intAt(e,n);a<0?"-"==e.charAt(n)&&(o=!0):(o=!1,0==i?this.data[this.t++]=a:i+r>this.DB?(this.data[this.t-1]|=(a&(1<>this.DB-i):this.data[this.t-1]|=a<=this.DB&&(i-=this.DB))}8==r&&128&e[0]&&(this.s=-1,i>0&&(this.data[this.t-1]|=(1<0&&this.data[this.t-1]==e;)--this.t}function bnToString(e){if(this.s<0)return"-"+this.negate().toString(e);var t;if(16==e)t=4;else if(8==e)t=3;else if(2==e)t=1;else if(32==e)t=5;else{if(4!=e)return this.toRadix(e);t=2}var r,n=(1<0)for(s>s)>0&&(o=!0,i=int2char(r));a>=0;)s>(s+=this.DB-t)):(r=this.data[a]>>(s-=t)&n,s<=0&&(s+=this.DB,--a)),r>0&&(o=!0),o&&(i+=int2char(r));return o?i:"0"}function bnNegate(){var e=nbi();return BigInteger$4.ZERO.subTo(this,e),e}function bnAbs(){return this.s<0?this.negate():this}function bnCompareTo(e){var t=this.s-e.s;if(0!=t)return t;var r=this.t;if(0!=(t=r-e.t))return this.s<0?-t:t;for(;--r>=0;)if(0!=(t=this.data[r]-e.data[r]))return t;return 0}function nbits(e){var t,r=1;return 0!=(t=e>>>16)&&(e=t,r+=16),0!=(t=e>>8)&&(e=t,r+=8),0!=(t=e>>4)&&(e=t,r+=4),0!=(t=e>>2)&&(e=t,r+=2),0!=(t=e>>1)&&(e=t,r+=1),r}function bnBitLength(){return this.t<=0?0:this.DB*(this.t-1)+nbits(this.data[this.t-1]^this.s&this.DM)}function bnpDLShiftTo(e,t){var r;for(r=this.t-1;r>=0;--r)t.data[r+e]=this.data[r];for(r=e-1;r>=0;--r)t.data[r]=0;t.t=this.t+e,t.s=this.s}function bnpDRShiftTo(e,t){for(var r=e;r=0;--r)t.data[r+a+1]=this.data[r]>>o|s,s=(this.data[r]&i)<=0;--r)t.data[r]=0;t.data[a]=s,t.t=this.t+a+1,t.s=this.s,t.clamp()}function bnpRShiftTo(e,t){t.s=this.s;var r=Math.floor(e/this.DB);if(r>=this.t)t.t=0;else{var n=e%this.DB,o=this.DB-n,i=(1<>n;for(var a=r+1;a>n;n>0&&(t.data[this.t-r-1]|=(this.s&i)<>=this.DB;if(e.t>=this.DB;n+=this.s}else{for(n+=this.s;r>=this.DB;n-=e.s}t.s=n<0?-1:0,n<-1?t.data[r++]=this.DV+n:n>0&&(t.data[r++]=n),t.t=r,t.clamp()}function bnpMultiplyTo(e,t){var r=this.abs(),n=e.abs(),o=r.t;for(t.t=o+n.t;--o>=0;)t.data[o]=0;for(o=0;o=0;)e.data[r]=0;for(r=0;r=t.DV&&(e.data[r+t.t]-=t.DV,e.data[r+t.t+1]=1)}e.t>0&&(e.data[e.t-1]+=t.am(r,t.data[r],e,2*r,0,1)),e.s=0,e.clamp()}function bnpDivRemTo(e,t,r){var n=e.abs();if(!(n.t<=0)){var o=this.abs();if(o.t0?(n.lShiftTo(c,i),o.lShiftTo(c,r)):(n.copyTo(i),o.copyTo(r));var u=i.t,l=i.data[u-1];if(0!=l){var d=l*(1<1?i.data[u-2]>>this.F2:0),f=this.FV/d,h=(1<=0&&(r.data[r.t++]=1,r.subTo(g,r)),BigInteger$4.ONE.dlShiftTo(u,g),g.subTo(i,i);i.t=0;){var b=r.data[--y]==l?this.DM:Math.floor(r.data[y]*f+(r.data[y-1]+p)*h);if((r.data[y]+=i.am(0,b,r,m,0,u))0&&r.rShiftTo(c,r),a<0&&BigInteger$4.ZERO.subTo(r,r)}}}function bnMod(e){var t=nbi();return this.abs().divRemTo(e,null,t),this.s<0&&t.compareTo(BigInteger$4.ZERO)>0&&e.subTo(t,t),t}function Classic(e){this.m=e}function cConvert(e){return e.s<0||e.compareTo(this.m)>=0?e.mod(this.m):e}function cRevert(e){return e}function cReduce(e){e.divRemTo(this.m,null,e)}function cMulTo(e,t,r){e.multiplyTo(t,r),this.reduce(r)}function cSqrTo(e,t){e.squareTo(t),this.reduce(t)}function bnpInvDigit(){if(this.t<1)return 0;var e=this.data[0];if(!(1&e))return 0;var t=3&e;return(t=(t=(t=(t=t*(2-(15&e)*t)&15)*(2-(255&e)*t)&255)*(2-((65535&e)*t&65535))&65535)*(2-e*t%this.DV)%this.DV)>0?this.DV-t:-t}function Montgomery(e){this.m=e,this.mp=e.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<0&&this.m.subTo(t,t),t}function montRevert(e){var t=nbi();return e.copyTo(t),this.reduce(t),t}function montReduce(e){for(;e.t<=this.mt2;)e.data[e.t++]=0;for(var t=0;t>15)*this.mpl&this.um)<<15)&e.DM;for(r=t+this.m.t,e.data[r]+=this.m.am(0,n,e,t,0,this.m.t);e.data[r]>=e.DV;)e.data[r]-=e.DV,e.data[++r]++}e.clamp(),e.drShiftTo(this.m.t,e),e.compareTo(this.m)>=0&&e.subTo(this.m,e)}function montSqrTo(e,t){e.squareTo(t),this.reduce(t)}function montMulTo(e,t,r){e.multiplyTo(t,r),this.reduce(r)}function bnpIsEven(){return 0==(this.t>0?1&this.data[0]:this.s)}function bnpExp(e,t){if(e>4294967295||e<1)return BigInteger$4.ONE;var r=nbi(),n=nbi(),o=t.convert(this),i=nbits(e)-1;for(o.copyTo(r);--i>=0;)if(t.sqrTo(r,n),(e&1<0)t.mulTo(n,o,r);else{var a=r;r=n,n=a}return t.revert(r)}function bnModPowInt(e,t){var r;return r=e<256||t.isEven()?new Classic(t):new Montgomery(t),this.exp(e,r)}function bnClone(){var e=nbi();return this.copyTo(e),e}function bnIntValue(){if(this.s<0){if(1==this.t)return this.data[0]-this.DV;if(0==this.t)return-1}else{if(1==this.t)return this.data[0];if(0==this.t)return 0}return(this.data[1]&(1<<32-this.DB)-1)<>24}function bnShortValue(){return 0==this.t?this.s:this.data[0]<<16>>16}function bnpChunkSize(e){return Math.floor(Math.LN2*this.DB/Math.log(e))}function bnSigNum(){return this.s<0?-1:this.t<=0||1==this.t&&this.data[0]<=0?0:1}function bnpToRadix(e){if(null==e&&(e=10),0==this.signum()||e<2||e>36)return"0";var t=this.chunkSize(e),r=Math.pow(e,t),n=nbv(r),o=nbi(),i=nbi(),a="";for(this.divRemTo(n,o,i);o.signum()>0;)a=(r+i.intValue()).toString(e).substr(1)+a,o.divRemTo(n,o,i);return i.intValue().toString(e)+a}function bnpFromRadix(e,t){this.fromInt(0),null==t&&(t=10);for(var r=this.chunkSize(t),n=Math.pow(t,r),o=!1,i=0,a=0,s=0;s=r&&(this.dMultiply(n),this.dAddOffset(a,0),i=0,a=0))}i>0&&(this.dMultiply(Math.pow(t,i)),this.dAddOffset(a,0)),o&&BigInteger$4.ZERO.subTo(this,this)}function bnpFromNumber(e,t,r){if("number"==typeof t)if(e<2)this.fromInt(1);else for(this.fromNumber(e,r),this.testBit(e-1)||this.bitwiseTo(BigInteger$4.ONE.shiftLeft(e-1),op_or,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(t);)this.dAddOffset(2,0),this.bitLength()>e&&this.subTo(BigInteger$4.ONE.shiftLeft(e-1),this);else{var n=new Array,o=7&e;n.length=1+(e>>3),t.nextBytes(n),o>0?n[0]&=(1<0)for(n>n)!=(this.s&this.DM)>>n&&(t[o++]=r|this.s<=0;)n<8?(r=(this.data[e]&(1<>(n+=this.DB-8)):(r=this.data[e]>>(n-=8)&255,n<=0&&(n+=this.DB,--e)),128&r&&(r|=-256),0==o&&(128&this.s)!=(128&r)&&++o,(o>0||r!=this.s)&&(t[o++]=r);return t}function bnEquals(e){return 0==this.compareTo(e)}function bnMin(e){return this.compareTo(e)<0?this:e}function bnMax(e){return this.compareTo(e)>0?this:e}function bnpBitwiseTo(e,t,r){var n,o,i=Math.min(e.t,this.t);for(n=0;n>=16,t+=16),255&e||(e>>=8,t+=8),15&e||(e>>=4,t+=4),3&e||(e>>=2,t+=2),1&e||++t,t}function bnGetLowestSetBit(){for(var e=0;e=this.t?0!=this.s:!!(this.data[t]&1<>=this.DB;if(e.t>=this.DB;n+=this.s}else{for(n+=this.s;r>=this.DB;n+=e.s}t.s=n<0?-1:0,n>0?t.data[r++]=n:n<-1&&(t.data[r++]=this.DV+n),t.t=r,t.clamp()}function bnAdd(e){var t=nbi();return this.addTo(e,t),t}function bnSubtract(e){var t=nbi();return this.subTo(e,t),t}function bnMultiply(e){var t=nbi();return this.multiplyTo(e,t),t}function bnDivide(e){var t=nbi();return this.divRemTo(e,t,null),t}function bnRemainder(e){var t=nbi();return this.divRemTo(e,null,t),t}function bnDivideAndRemainder(e){var t=nbi(),r=nbi();return this.divRemTo(e,t,r),new Array(t,r)}function bnpDMultiply(e){this.data[this.t]=this.am(0,e-1,this,0,0,this.t),++this.t,this.clamp()}function bnpDAddOffset(e,t){if(0!=e){for(;this.t<=t;)this.data[this.t++]=0;for(this.data[t]+=e;this.data[t]>=this.DV;)this.data[t]-=this.DV,++t>=this.t&&(this.data[this.t++]=0),++this.data[t]}}function NullExp(){}function nNop(e){return e}function nMulTo(e,t,r){e.multiplyTo(t,r)}function nSqrTo(e,t){e.squareTo(t)}function bnPow(e){return this.exp(e,new NullExp)}function bnpMultiplyLowerTo(e,t,r){var n,o=Math.min(this.t+e.t,t);for(r.s=0,r.t=o;o>0;)r.data[--o]=0;for(n=r.t-this.t;o=0;)r.data[n]=0;for(n=Math.max(t-this.t,0);n2*this.m.t)return e.mod(this.m);if(e.compareTo(this.m)<0)return e;var t=nbi();return e.copyTo(t),this.reduce(t),t}function barrettRevert(e){return e}function barrettReduce(e){for(e.drShiftTo(this.m.t-1,this.r2),e.t>this.m.t+1&&(e.t=this.m.t+1,e.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);e.compareTo(this.r2)<0;)e.dAddOffset(1,this.m.t+1);for(e.subTo(this.r2,e);e.compareTo(this.m)>=0;)e.subTo(this.m,e)}function barrettSqrTo(e,t){e.squareTo(t),this.reduce(t)}function barrettMulTo(e,t,r){e.multiplyTo(t,r),this.reduce(r)}function bnModPow(e,t){var r,n,o=e.bitLength(),i=nbv(1);if(o<=0)return i;r=o<18?1:o<48?3:o<144?4:o<768?5:6,n=o<8?new Classic(t):t.isEven()?new Barrett(t):new Montgomery(t);var a=new Array,s=3,c=r-1,u=(1<1){var l=nbi();for(n.sqrTo(a[1],l);s<=u;)a[s]=nbi(),n.mulTo(l,a[s-2],a[s]),s+=2}var d,f,h=e.t-1,p=!0,y=nbi();for(o=nbits(e.data[h])-1;h>=0;){for(o>=c?d=e.data[h]>>o-c&u:(d=(e.data[h]&(1<0&&(d|=e.data[h-1]>>this.DB+o-c)),s=r;!(1&d);)d>>=1,--s;if((o-=s)<0&&(o+=this.DB,--h),p)a[d].copyTo(i),p=!1;else{for(;s>1;)n.sqrTo(i,y),n.sqrTo(y,i),s-=2;s>0?n.sqrTo(i,y):(f=i,i=y,y=f),n.mulTo(y,a[d],i)}for(;h>=0&&!(e.data[h]&1<0&&(t.rShiftTo(i,t),r.rShiftTo(i,r));t.signum()>0;)(o=t.getLowestSetBit())>0&&t.rShiftTo(o,t),(o=r.getLowestSetBit())>0&&r.rShiftTo(o,r),t.compareTo(r)>=0?(t.subTo(r,t),t.rShiftTo(1,t)):(r.subTo(t,r),r.rShiftTo(1,r));return i>0&&r.lShiftTo(i,r),r}function bnpModInt(e){if(e<=0)return 0;var t=this.DV%e,r=this.s<0?e-1:0;if(this.t>0)if(0==t)r=this.data[0]%e;else for(var n=this.t-1;n>=0;--n)r=(t*r+this.data[n])%e;return r}function bnModInverse(e){var t=e.isEven();if(this.isEven()&&t||0==e.signum())return BigInteger$4.ZERO;for(var r=e.clone(),n=this.clone(),o=nbv(1),i=nbv(0),a=nbv(0),s=nbv(1);0!=r.signum();){for(;r.isEven();)r.rShiftTo(1,r),t?(o.isEven()&&i.isEven()||(o.addTo(this,o),i.subTo(e,i)),o.rShiftTo(1,o)):i.isEven()||i.subTo(e,i),i.rShiftTo(1,i);for(;n.isEven();)n.rShiftTo(1,n),t?(a.isEven()&&s.isEven()||(a.addTo(this,a),s.subTo(e,s)),a.rShiftTo(1,a)):s.isEven()||s.subTo(e,s),s.rShiftTo(1,s);r.compareTo(n)>=0?(r.subTo(n,r),t&&o.subTo(a,o),i.subTo(s,i)):(n.subTo(r,n),t&&a.subTo(o,a),s.subTo(i,s))}return 0!=n.compareTo(BigInteger$4.ONE)?BigInteger$4.ZERO:s.compareTo(e)>=0?s.subtract(e):s.signum()<0?(s.addTo(e,s),s.signum()<0?s.add(e):s):s}Classic.prototype.convert=cConvert,Classic.prototype.revert=cRevert,Classic.prototype.reduce=cReduce,Classic.prototype.mulTo=cMulTo,Classic.prototype.sqrTo=cSqrTo,Montgomery.prototype.convert=montConvert,Montgomery.prototype.revert=montRevert,Montgomery.prototype.reduce=montReduce,Montgomery.prototype.mulTo=montMulTo,Montgomery.prototype.sqrTo=montSqrTo,BigInteger$4.prototype.copyTo=bnpCopyTo,BigInteger$4.prototype.fromInt=bnpFromInt,BigInteger$4.prototype.fromString=bnpFromString,BigInteger$4.prototype.clamp=bnpClamp,BigInteger$4.prototype.dlShiftTo=bnpDLShiftTo,BigInteger$4.prototype.drShiftTo=bnpDRShiftTo,BigInteger$4.prototype.lShiftTo=bnpLShiftTo,BigInteger$4.prototype.rShiftTo=bnpRShiftTo,BigInteger$4.prototype.subTo=bnpSubTo,BigInteger$4.prototype.multiplyTo=bnpMultiplyTo,BigInteger$4.prototype.squareTo=bnpSquareTo,BigInteger$4.prototype.divRemTo=bnpDivRemTo,BigInteger$4.prototype.invDigit=bnpInvDigit,BigInteger$4.prototype.isEven=bnpIsEven,BigInteger$4.prototype.exp=bnpExp,BigInteger$4.prototype.toString=bnToString,BigInteger$4.prototype.negate=bnNegate,BigInteger$4.prototype.abs=bnAbs,BigInteger$4.prototype.compareTo=bnCompareTo,BigInteger$4.prototype.bitLength=bnBitLength,BigInteger$4.prototype.mod=bnMod,BigInteger$4.prototype.modPowInt=bnModPowInt,BigInteger$4.ZERO=nbv(0),BigInteger$4.ONE=nbv(1),NullExp.prototype.convert=nNop,NullExp.prototype.revert=nNop,NullExp.prototype.mulTo=nMulTo,NullExp.prototype.sqrTo=nSqrTo,Barrett.prototype.convert=barrettConvert,Barrett.prototype.revert=barrettRevert,Barrett.prototype.reduce=barrettReduce,Barrett.prototype.mulTo=barrettMulTo,Barrett.prototype.sqrTo=barrettSqrTo;var lowprimes=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509],lplim=(1<<26)/lowprimes[lowprimes.length-1];function bnIsProbablePrime(e){var t,r=this.abs();if(1==r.t&&r.data[0]<=lowprimes[lowprimes.length-1]){for(t=0;t=0);var s=n.modPow(o,this);if(0!=s.compareTo(BigInteger$4.ONE)&&0!=s.compareTo(t)){for(var c=1;c++>>0,a>>>0];for(var s=n.fullMessageLength.length-1;s>=0;--s)n.fullMessageLength[s]+=a[1],a[1]=a[0]+(n.fullMessageLength[s]/4294967296>>>0),n.fullMessageLength[s]=n.fullMessageLength[s]>>>0,a[0]=a[1]/4294967296>>>0;return t.putBytes(o),_update$1(e,r,t),(t.read>2048||0===t.length())&&t.compact(),n},n.digest=function(){var o=forge$l.util.createBuffer();o.putBytes(t.bytes());var i,a=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize&n.blockLength-1;o.putBytes(_padding$1.substr(0,n.blockLength-a));for(var s=8*n.fullMessageLength[0],c=0;c>>0,o.putInt32(s>>>0),s=i>>>0;o.putInt32(s);var u={h0:e.h0,h1:e.h1,h2:e.h2,h3:e.h3,h4:e.h4};_update$1(u,r,o);var l=forge$l.util.createBuffer();return l.putInt32(u.h0),l.putInt32(u.h1),l.putInt32(u.h2),l.putInt32(u.h3),l.putInt32(u.h4),l},n};var _padding$1=null,_initialized$1=!1;function _init$1(){_padding$1=String.fromCharCode(128),_padding$1+=forge$l.util.fillString(String.fromCharCode(0),64),_initialized$1=!0}function _update$1(e,t,r){for(var n,o,i,a,s,c,u,l=r.length();l>=64;){for(o=e.h0,i=e.h1,a=e.h2,s=e.h3,c=e.h4,u=0;u<16;++u)n=r.getInt32(),t[u]=n,n=(o<<5|o>>>27)+(s^i&(a^s))+c+1518500249+n,c=s,s=a,a=(i<<30|i>>>2)>>>0,i=o,o=n;for(;u<20;++u)n=(n=t[u-3]^t[u-8]^t[u-14]^t[u-16])<<1|n>>>31,t[u]=n,n=(o<<5|o>>>27)+(s^i&(a^s))+c+1518500249+n,c=s,s=a,a=(i<<30|i>>>2)>>>0,i=o,o=n;for(;u<32;++u)n=(n=t[u-3]^t[u-8]^t[u-14]^t[u-16])<<1|n>>>31,t[u]=n,n=(o<<5|o>>>27)+(i^a^s)+c+1859775393+n,c=s,s=a,a=(i<<30|i>>>2)>>>0,i=o,o=n;for(;u<40;++u)n=(n=t[u-6]^t[u-16]^t[u-28]^t[u-32])<<2|n>>>30,t[u]=n,n=(o<<5|o>>>27)+(i^a^s)+c+1859775393+n,c=s,s=a,a=(i<<30|i>>>2)>>>0,i=o,o=n;for(;u<60;++u)n=(n=t[u-6]^t[u-16]^t[u-28]^t[u-32])<<2|n>>>30,t[u]=n,n=(o<<5|o>>>27)+(i&a|s&(i^a))+c+2400959708+n,c=s,s=a,a=(i<<30|i>>>2)>>>0,i=o,o=n;for(;u<80;++u)n=(n=t[u-6]^t[u-16]^t[u-28]^t[u-32])<<2|n>>>30,t[u]=n,n=(o<<5|o>>>27)+(i^a^s)+c+3395469782+n,c=s,s=a,a=(i<<30|i>>>2)>>>0,i=o,o=n;e.h0=e.h0+o|0,e.h1=e.h1+i|0,e.h2=e.h2+a|0,e.h3=e.h3+s|0,e.h4=e.h4+c|0,l-=64}}var forge$k=forge$D,pkcs1=forge$k.pkcs1=forge$k.pkcs1||{};function rsa_mgf1(e,t,r){r||(r=forge$k.md.sha1.create());for(var n="",o=Math.ceil(t/r.digestLength),i=0;i>24&255,i>>16&255,i>>8&255,255&i);r.start(),r.update(e+a),n+=r.digest().getBytes()}return n.substring(0,t)}pkcs1.encode_rsa_oaep=function(e,t,r){var n,o,i,a;"string"==typeof r?(n=r,o=arguments[3]||void 0,i=arguments[4]||void 0):r&&(n=r.label||void 0,o=r.seed||void 0,i=r.md||void 0,r.mgf1&&r.mgf1.md&&(a=r.mgf1.md)),i?i.start():i=forge$k.md.sha1.create(),a||(a=i);var s=Math.ceil(e.n.bitLength()/8),c=s-2*i.digestLength-2;if(t.length>c)throw(p=new Error("RSAES-OAEP input message length is too long.")).length=t.length,p.maxLength=c,p;n||(n=""),i.update(n,"raw");for(var u=i.digest(),l="",d=c-t.length,f=0;fe&&(a=s(e,r));var h=a.toString(16);i.target.postMessage({hex:h,workLoad:u}),a.dAddOffset(l,0)}}}f()}(e,r,n,o);return i(e,r,n,o)}(e,c,o.options,n);throw new Error("Invalid prime generation algorithm: "+o.name)}}function i(e,t,r,n){var o=s(e,t),i=function(e){return e<=100?27:e<=150?18:e<=200?15:e<=250?12:e<=300?9:e<=350?8:e<=400?7:e<=500?6:e<=600?5:e<=800?4:e<=1250?3:2}(o.bitLength());"millerRabinTests"in r&&(i=r.millerRabinTests);var c=10;"maxBlockTime"in r&&(c=r.maxBlockTime),a(o,e,t,0,i,c,n)}function a(e,t,n,o,i,c,u){var l=+new Date;do{if(e.bitLength()>t&&(e=s(t,n)),e.isProbablePrime(i))return u(null,e);e.dAddOffset(r[o++%8],0)}while(c<0||+new Date-l=0||!n.gcd(t.n).equals(BigInteger$3.ONE));for(var o=(e=e.multiply(n.modPow(t.e,t.n)).mod(t.n)).mod(t.p).modPow(t.dP,t.p),i=e.mod(t.q).modPow(t.dQ,t.q);o.compareTo(i)<0;)o=o.add(t.p);var a=o.subtract(i).multiply(t.qInv).mod(t.p).multiply(t.q).add(i);return a=a.multiply(n.modInverse(t.n)).mod(t.n)};function _encodePkcs1_v1_5(e,t,r){var n=forge$i.util.createBuffer(),o=Math.ceil(t.n.bitLength()/8);if(e.length>o-11){var i=new Error("Message is too long for PKCS#1 v1.5 padding.");throw i.length=e.length,i.max=o-11,i}n.putByte(0),n.putByte(r);var a,s=o-3-e.length;if(0===r||1===r){a=0===r?0:255;for(var c=0;c0;){var u=0,l=forge$i.random.getBytes(s);for(c=0;c1;){if(255!==i.getByte()){--i.read;break}++c}else if(2===s)for(c=0;i.length()>1;){if(0===i.getByte()){--i.read;break}++c}if(0!==i.getByte()||c!==o-3-i.length())throw new Error("Encryption block is invalid.");return i.getBytes()}function _generateKeyPair(e,t,r){"function"==typeof t&&(r=t,t={});var n={algorithm:{name:(t=t||{}).algorithm||"PRIMEINC",options:{workers:t.workers||2,workLoad:t.workLoad||100,workerScript:t.workerScript}}};function o(){i(e.pBits,(function(t,n){return t?r(t):(e.p=n,null!==e.q?a(t,e.q):void i(e.qBits,a))}))}function i(e,t){forge$i.prime.generateProbablePrime(e,n,t)}function a(t,n){if(t)return r(t);if(e.q=n,e.p.compareTo(e.q)<0){var s=e.p;e.p=e.q,e.q=s}if(0!==e.p.subtract(BigInteger$3.ONE).gcd(e.e).compareTo(BigInteger$3.ONE))return e.p=null,void o();if(0!==e.q.subtract(BigInteger$3.ONE).gcd(e.e).compareTo(BigInteger$3.ONE))return e.q=null,void i(e.qBits,a);if(e.p1=e.p.subtract(BigInteger$3.ONE),e.q1=e.q.subtract(BigInteger$3.ONE),e.phi=e.p1.multiply(e.q1),0!==e.phi.gcd(e.e).compareTo(BigInteger$3.ONE))return e.p=e.q=null,void o();if(e.n=e.p.multiply(e.q),e.n.bitLength()!==e.bits)return e.q=null,void i(e.qBits,a);var c=e.e.modInverse(e.phi);e.keys={privateKey:pki$4.rsa.setPrivateKey(e.n,e.e,c,e.p,e.q,c.mod(e.p1),c.mod(e.q1),e.q.modInverse(e.p)),publicKey:pki$4.rsa.setPublicKey(e.n,e.e)},r(null,e.keys)}"prng"in t&&(n.prng=t.prng),o()}function _bnToBytes(e){var t=e.toString(16);t[0]>="8"&&(t="00"+t);var r=forge$i.util.hexToBytes(t);return!(r.length>1)||(0!==r.charCodeAt(0)||128&r.charCodeAt(1))&&(255!==r.charCodeAt(0)||128&~r.charCodeAt(1))?r:r.substr(1)}function _getMillerRabinTests(e){return e<=100?27:e<=150?18:e<=200?15:e<=250?12:e<=300?9:e<=350?8:e<=400?7:e<=500?6:e<=600?5:e<=800?4:e<=1250?3:2}function _detectNodeCrypto(e){return forge$i.util.isNodejs&&"function"==typeof _crypto[e]}function _detectSubtleCrypto(e){return void 0!==util$5.globalScope&&"object"==typeof util$5.globalScope.crypto&&"object"==typeof util$5.globalScope.crypto.subtle&&"function"==typeof util$5.globalScope.crypto.subtle[e]}function _detectSubtleMsCrypto(e){return void 0!==util$5.globalScope&&"object"==typeof util$5.globalScope.msCrypto&&"object"==typeof util$5.globalScope.msCrypto.subtle&&"function"==typeof util$5.globalScope.msCrypto.subtle[e]}function _intToUint8Array(e){for(var t=forge$i.util.hexToBytes(e.toString(16)),r=new Uint8Array(t.length),n=0;n0;)c.putByte(0),--u;return c.putBytes(forge$i.util.hexToBytes(s)),c.getBytes()},pki$4.rsa.decrypt=function(e,t,r,n){var o=Math.ceil(t.n.bitLength()/8);if(e.length!==o){var i=new Error("Encrypted message length is invalid.");throw i.length=e.length,i.expected=o,i}var a=new BigInteger$3(forge$i.util.createBuffer(e).toHex(),16);if(a.compareTo(t.n)>=0)throw new Error("Encrypted message is invalid.");for(var s=_modPow(a,t,r).toString(16),c=forge$i.util.createBuffer(),u=o-Math.ceil(s.length/2);u>0;)c.putByte(0),--u;return c.putBytes(forge$i.util.hexToBytes(s)),!1!==n?_decodePkcs1_v1_5(c.getBytes(),t,r):c.getBytes()},pki$4.rsa.createKeyPairGenerationState=function(e,t,r){"string"==typeof e&&(e=parseInt(e,10)),e=e||2048;var n,o=(r=r||{}).prng||forge$i.random,i={nextBytes:function(e){for(var t=o.getBytesSync(e.length),r=0;r>1,pBits:e-(e>>1),pqState:0,num:null,keys:null}).e.fromInt(n.eInt),n},pki$4.rsa.stepKeyPairGenerationState=function(e,t){"algorithm"in e||(e.algorithm="PRIMEINC");var r=new BigInteger$3(null);r.fromInt(30);for(var n,o=0,i=function(e,t){return e|t},a=+new Date,s=0;null===e.keys&&(t<=0||sc?e.pqState=0:e.num.isProbablePrime(_getMillerRabinTests(e.num.bitLength()))?++e.pqState:e.num.dAddOffset(GCD_30_DELTA[o++%8],0):2===e.pqState?e.pqState=0===e.num.subtract(BigInteger$3.ONE).gcd(e.e).compareTo(BigInteger$3.ONE)?3:0:3===e.pqState&&(e.pqState=0,null===e.p?e.p=e.num:e.q=e.num,null!==e.p&&null!==e.q&&++e.state,e.num=null)}else if(1===e.state)e.p.compareTo(e.q)<0&&(e.num=e.p,e.p=e.q,e.q=e.num),++e.state;else if(2===e.state)e.p1=e.p.subtract(BigInteger$3.ONE),e.q1=e.q.subtract(BigInteger$3.ONE),e.phi=e.p1.multiply(e.q1),++e.state;else if(3===e.state)0===e.phi.gcd(e.e).compareTo(BigInteger$3.ONE)?++e.state:(e.p=null,e.q=null,e.state=0);else if(4===e.state)e.n=e.p.multiply(e.q),e.n.bitLength()===e.bits?++e.state:(e.q=null,e.state=0);else if(5===e.state){var l=e.e.modInverse(e.phi);e.keys={privateKey:pki$4.rsa.setPrivateKey(e.n,e.e,l,e.p,e.q,l.mod(e.p1),l.mod(e.q1),e.q.modInverse(e.p)),publicKey:pki$4.rsa.setPublicKey(e.n,e.e)}}s+=(n=+new Date)-a,a=n}return null!==e.keys},pki$4.rsa.generateKeyPair=function(e,t,r,n){if(1===arguments.length?"object"==typeof e?(r=e,e=void 0):"function"==typeof e&&(n=e,e=void 0):2===arguments.length?"number"==typeof e?"function"==typeof t?(n=t,t=void 0):"number"!=typeof t&&(r=t,t=void 0):(r=e,n=t,e=void 0,t=void 0):3===arguments.length&&("number"==typeof t?"function"==typeof r&&(n=r,r=void 0):(n=r,r=t,t=void 0)),r=r||{},void 0===e&&(e=r.bits||2048),void 0===t&&(t=r.e||65537),!forge$i.options.usePureJavaScript&&!r.prng&&e>=256&&e<=16384&&(65537===t||3===t))if(n){if(_detectNodeCrypto("generateKeyPair"))return _crypto.generateKeyPair("rsa",{modulusLength:e,publicExponent:t,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}},(function(e,t,r){if(e)return n(e);n(null,{privateKey:pki$4.privateKeyFromPem(r),publicKey:pki$4.publicKeyFromPem(t)})}));if(_detectSubtleCrypto("generateKey")&&_detectSubtleCrypto("exportKey"))return util$5.globalScope.crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:_intToUint8Array(t),hash:{name:"SHA-256"}},!0,["sign","verify"]).then((function(e){return util$5.globalScope.crypto.subtle.exportKey("pkcs8",e.privateKey)})).then(void 0,(function(e){n(e)})).then((function(e){if(e){var t=pki$4.privateKeyFromAsn1(asn1$7.fromDer(forge$i.util.createBuffer(e)));n(null,{privateKey:t,publicKey:pki$4.setRsaPublicKey(t.n,t.e)})}}));if(_detectSubtleMsCrypto("generateKey")&&_detectSubtleMsCrypto("exportKey")){var o=util$5.globalScope.msCrypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:_intToUint8Array(t),hash:{name:"SHA-256"}},!0,["sign","verify"]);return o.oncomplete=function(e){var t=e.target.result,r=util$5.globalScope.msCrypto.subtle.exportKey("pkcs8",t.privateKey);r.oncomplete=function(e){var t=e.target.result,r=pki$4.privateKeyFromAsn1(asn1$7.fromDer(forge$i.util.createBuffer(t)));n(null,{privateKey:r,publicKey:pki$4.setRsaPublicKey(r.n,r.e)})},r.onerror=function(e){n(e)}},void(o.onerror=function(e){n(e)})}}else if(_detectNodeCrypto("generateKeyPairSync")){var i=_crypto.generateKeyPairSync("rsa",{modulusLength:e,publicExponent:t,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}});return{privateKey:pki$4.privateKeyFromPem(i.privateKey),publicKey:pki$4.publicKeyFromPem(i.publicKey)}}var a=pki$4.rsa.createKeyPairGenerationState(e,t,r);if(!n)return pki$4.rsa.stepKeyPairGenerationState(a,0),a.keys;_generateKeyPair(a,r,n)},pki$4.setRsaPublicKey=pki$4.rsa.setPublicKey=function(e,t){var r={n:e,e:t,encrypt:function(e,t,n){if("string"==typeof t?t=t.toUpperCase():void 0===t&&(t="RSAES-PKCS1-V1_5"),"RSAES-PKCS1-V1_5"===t)t={encode:function(e,t,r){return _encodePkcs1_v1_5(e,t,2).getBytes()}};else if("RSA-OAEP"===t||"RSAES-OAEP"===t)t={encode:function(e,t){return forge$i.pkcs1.encode_rsa_oaep(t,e,n)}};else if(-1!==["RAW","NONE","NULL",null].indexOf(t))t={encode:function(e){return e}};else if("string"==typeof t)throw new Error('Unsupported encryption scheme: "'+t+'".');var o=t.encode(e,r,!0);return pki$4.rsa.encrypt(o,r,!0)},verify:function(e,t,n,o){"string"==typeof n?n=n.toUpperCase():void 0===n&&(n="RSASSA-PKCS1-V1_5"),void 0===o&&(o={_parseAllDigestBytes:!0}),"_parseAllDigestBytes"in o||(o._parseAllDigestBytes=!0),"RSASSA-PKCS1-V1_5"===n?n={verify:function(e,t){t=_decodePkcs1_v1_5(t,r,!0);var n=asn1$7.fromDer(t,{parseAllBytes:o._parseAllDigestBytes}),i={},a=[];if(!asn1$7.validate(n,digestInfoValidator,i,a))throw(s=new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value.")).errors=a,s;var s,c=asn1$7.derToOid(i.algorithmIdentifier);if(c!==forge$i.oids.md2&&c!==forge$i.oids.md5&&c!==forge$i.oids.sha1&&c!==forge$i.oids.sha224&&c!==forge$i.oids.sha256&&c!==forge$i.oids.sha384&&c!==forge$i.oids.sha512&&c!==forge$i.oids["sha512-224"]&&c!==forge$i.oids["sha512-256"])throw(s=new Error("Unknown RSASSA-PKCS1-v1_5 DigestAlgorithm identifier.")).oid=c,s;if((c===forge$i.oids.md2||c===forge$i.oids.md5)&&!("parameters"in i))throw new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value. Missing algorithm identifer NULL parameters.");return e===i.digest}}:"NONE"!==n&&"NULL"!==n&&null!==n||(n={verify:function(e,t){return e===(t=_decodePkcs1_v1_5(t,r,!0))}});var i=pki$4.rsa.decrypt(t,r,!0,!1);return n.verify(e,i,r.n.bitLength())}};return r},pki$4.setRsaPrivateKey=pki$4.rsa.setPrivateKey=function(e,t,r,n,o,i,a,s){var c={n:e,e:t,d:r,p:n,q:o,dP:i,dQ:a,qInv:s,decrypt:function(e,t,r){"string"==typeof t?t=t.toUpperCase():void 0===t&&(t="RSAES-PKCS1-V1_5");var n=pki$4.rsa.decrypt(e,c,!1,!1);if("RSAES-PKCS1-V1_5"===t)t={decode:_decodePkcs1_v1_5};else if("RSA-OAEP"===t||"RSAES-OAEP"===t)t={decode:function(e,t){return forge$i.pkcs1.decode_rsa_oaep(t,e,r)}};else{if(-1===["RAW","NONE","NULL",null].indexOf(t))throw new Error('Unsupported encryption scheme: "'+t+'".');t={decode:function(e){return e}}}return t.decode(n,c,!1)},sign:function(e,t){var r=!1;"string"==typeof t&&(t=t.toUpperCase()),void 0===t||"RSASSA-PKCS1-V1_5"===t?(t={encode:emsaPkcs1v15encode},r=1):"NONE"!==t&&"NULL"!==t&&null!==t||(t={encode:function(){return e}},r=1);var n=t.encode(e,c.n.bitLength());return pki$4.rsa.encrypt(n,c,r)}};return c},pki$4.wrapRsaPrivateKey=function(e){return asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.SEQUENCE,!0,[asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.INTEGER,!1,asn1$7.integerToDer(0).getBytes()),asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.SEQUENCE,!0,[asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.OID,!1,asn1$7.oidToDer(pki$4.oids.rsaEncryption).getBytes()),asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.NULL,!1,"")]),asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.OCTETSTRING,!1,asn1$7.toDer(e).getBytes())])},pki$4.privateKeyFromAsn1=function(e){var t,r,n,o,i,a,s,c,u={},l=[];if(asn1$7.validate(e,privateKeyValidator$1,u,l)&&(e=asn1$7.fromDer(forge$i.util.createBuffer(u.privateKey))),u={},l=[],!asn1$7.validate(e,rsaPrivateKeyValidator,u,l)){var d=new Error("Cannot read private key. ASN.1 object does not contain an RSAPrivateKey.");throw d.errors=l,d}return t=forge$i.util.createBuffer(u.privateKeyModulus).toHex(),r=forge$i.util.createBuffer(u.privateKeyPublicExponent).toHex(),n=forge$i.util.createBuffer(u.privateKeyPrivateExponent).toHex(),o=forge$i.util.createBuffer(u.privateKeyPrime1).toHex(),i=forge$i.util.createBuffer(u.privateKeyPrime2).toHex(),a=forge$i.util.createBuffer(u.privateKeyExponent1).toHex(),s=forge$i.util.createBuffer(u.privateKeyExponent2).toHex(),c=forge$i.util.createBuffer(u.privateKeyCoefficient).toHex(),pki$4.setRsaPrivateKey(new BigInteger$3(t,16),new BigInteger$3(r,16),new BigInteger$3(n,16),new BigInteger$3(o,16),new BigInteger$3(i,16),new BigInteger$3(a,16),new BigInteger$3(s,16),new BigInteger$3(c,16))},pki$4.privateKeyToAsn1=pki$4.privateKeyToRSAPrivateKey=function(e){return asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.SEQUENCE,!0,[asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.INTEGER,!1,asn1$7.integerToDer(0).getBytes()),asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.INTEGER,!1,_bnToBytes(e.n)),asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.INTEGER,!1,_bnToBytes(e.e)),asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.INTEGER,!1,_bnToBytes(e.d)),asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.INTEGER,!1,_bnToBytes(e.p)),asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.INTEGER,!1,_bnToBytes(e.q)),asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.INTEGER,!1,_bnToBytes(e.dP)),asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.INTEGER,!1,_bnToBytes(e.dQ)),asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.INTEGER,!1,_bnToBytes(e.qInv))])},pki$4.publicKeyFromAsn1=function(e){var t={},r=[];if(asn1$7.validate(e,publicKeyValidator$2,t,r)){var n,o=asn1$7.derToOid(t.publicKeyOid);if(o!==pki$4.oids.rsaEncryption)throw(n=new Error("Cannot read public key. Unknown OID.")).oid=o,n;e=t.rsaPublicKey}if(r=[],!asn1$7.validate(e,rsaPublicKeyValidator,t,r))throw(n=new Error("Cannot read public key. ASN.1 object does not contain an RSAPublicKey.")).errors=r,n;var i=forge$i.util.createBuffer(t.publicKeyModulus).toHex(),a=forge$i.util.createBuffer(t.publicKeyExponent).toHex();return pki$4.setRsaPublicKey(new BigInteger$3(i,16),new BigInteger$3(a,16))},pki$4.publicKeyToAsn1=pki$4.publicKeyToSubjectPublicKeyInfo=function(e){return asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.SEQUENCE,!0,[asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.SEQUENCE,!0,[asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.OID,!1,asn1$7.oidToDer(pki$4.oids.rsaEncryption).getBytes()),asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.NULL,!1,"")]),asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.BITSTRING,!1,[pki$4.publicKeyToRSAPublicKey(e)])])},pki$4.publicKeyToRSAPublicKey=function(e){return asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.SEQUENCE,!0,[asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.INTEGER,!1,_bnToBytes(e.n)),asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.INTEGER,!1,_bnToBytes(e.e))])};var forge$h=forge$D;if(void 0===BigInteger$2)var BigInteger$2=forge$h.jsbn.BigInteger;var asn1$6=forge$h.asn1,pki$3=forge$h.pki=forge$h.pki||{};pki$3.pbe=forge$h.pbe=forge$h.pbe||{};var oids$1=pki$3.oids,encryptedPrivateKeyValidator={name:"EncryptedPrivateKeyInfo",tagClass:asn1$6.Class.UNIVERSAL,type:asn1$6.Type.SEQUENCE,constructed:!0,value:[{name:"EncryptedPrivateKeyInfo.encryptionAlgorithm",tagClass:asn1$6.Class.UNIVERSAL,type:asn1$6.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:asn1$6.Class.UNIVERSAL,type:asn1$6.Type.OID,constructed:!1,capture:"encryptionOid"},{name:"AlgorithmIdentifier.parameters",tagClass:asn1$6.Class.UNIVERSAL,type:asn1$6.Type.SEQUENCE,constructed:!0,captureAsn1:"encryptionParams"}]},{name:"EncryptedPrivateKeyInfo.encryptedData",tagClass:asn1$6.Class.UNIVERSAL,type:asn1$6.Type.OCTETSTRING,constructed:!1,capture:"encryptedData"}]},PBES2AlgorithmsValidator={name:"PBES2Algorithms",tagClass:asn1$6.Class.UNIVERSAL,type:asn1$6.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.keyDerivationFunc",tagClass:asn1$6.Class.UNIVERSAL,type:asn1$6.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.keyDerivationFunc.oid",tagClass:asn1$6.Class.UNIVERSAL,type:asn1$6.Type.OID,constructed:!1,capture:"kdfOid"},{name:"PBES2Algorithms.params",tagClass:asn1$6.Class.UNIVERSAL,type:asn1$6.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.params.salt",tagClass:asn1$6.Class.UNIVERSAL,type:asn1$6.Type.OCTETSTRING,constructed:!1,capture:"kdfSalt"},{name:"PBES2Algorithms.params.iterationCount",tagClass:asn1$6.Class.UNIVERSAL,type:asn1$6.Type.INTEGER,constructed:!1,capture:"kdfIterationCount"},{name:"PBES2Algorithms.params.keyLength",tagClass:asn1$6.Class.UNIVERSAL,type:asn1$6.Type.INTEGER,constructed:!1,optional:!0,capture:"keyLength"},{name:"PBES2Algorithms.params.prf",tagClass:asn1$6.Class.UNIVERSAL,type:asn1$6.Type.SEQUENCE,constructed:!0,optional:!0,value:[{name:"PBES2Algorithms.params.prf.algorithm",tagClass:asn1$6.Class.UNIVERSAL,type:asn1$6.Type.OID,constructed:!1,capture:"prfOid"}]}]}]},{name:"PBES2Algorithms.encryptionScheme",tagClass:asn1$6.Class.UNIVERSAL,type:asn1$6.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.encryptionScheme.oid",tagClass:asn1$6.Class.UNIVERSAL,type:asn1$6.Type.OID,constructed:!1,capture:"encOid"},{name:"PBES2Algorithms.encryptionScheme.iv",tagClass:asn1$6.Class.UNIVERSAL,type:asn1$6.Type.OCTETSTRING,constructed:!1,capture:"encIv"}]}]},pkcs12PbeParamsValidator={name:"pkcs-12PbeParams",tagClass:asn1$6.Class.UNIVERSAL,type:asn1$6.Type.SEQUENCE,constructed:!0,value:[{name:"pkcs-12PbeParams.salt",tagClass:asn1$6.Class.UNIVERSAL,type:asn1$6.Type.OCTETSTRING,constructed:!1,capture:"salt"},{name:"pkcs-12PbeParams.iterations",tagClass:asn1$6.Class.UNIVERSAL,type:asn1$6.Type.INTEGER,constructed:!1,capture:"iterations"}]};function hash$4(e,t){return e.start().update(t).digest().getBytes()}function prfOidToMessageDigest(e){var t;if(e){if(!(t=pki$3.oids[asn1$6.derToOid(e)])){var r=new Error("Unsupported PRF OID.");throw r.oid=e,r.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],r}}else t="hmacWithSHA1";return prfAlgorithmToMessageDigest(t)}function prfAlgorithmToMessageDigest(e){var t=forge$h.md;switch(e){case"hmacWithSHA224":t=forge$h.md.sha512;case"hmacWithSHA1":case"hmacWithSHA256":case"hmacWithSHA384":case"hmacWithSHA512":e=e.substr(8).toLowerCase();break;default:var r=new Error("Unsupported PRF algorithm.");throw r.algorithm=e,r.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],r}if(!t||!(e in t))throw new Error("Unknown hash algorithm: "+e);return t[e].create()}function createPbkdf2Params(e,t,r,n){var o=asn1$6.create(asn1$6.Class.UNIVERSAL,asn1$6.Type.SEQUENCE,!0,[asn1$6.create(asn1$6.Class.UNIVERSAL,asn1$6.Type.OCTETSTRING,!1,e),asn1$6.create(asn1$6.Class.UNIVERSAL,asn1$6.Type.INTEGER,!1,t.getBytes())]);return"hmacWithSHA1"!==n&&o.value.push(asn1$6.create(asn1$6.Class.UNIVERSAL,asn1$6.Type.INTEGER,!1,forge$h.util.hexToBytes(r.toString(16))),asn1$6.create(asn1$6.Class.UNIVERSAL,asn1$6.Type.SEQUENCE,!0,[asn1$6.create(asn1$6.Class.UNIVERSAL,asn1$6.Type.OID,!1,asn1$6.oidToDer(pki$3.oids[n]).getBytes()),asn1$6.create(asn1$6.Class.UNIVERSAL,asn1$6.Type.NULL,!1,"")])),o}pki$3.encryptPrivateKeyInfo=function(e,t,r){(r=r||{}).saltSize=r.saltSize||8,r.count=r.count||2048,r.algorithm=r.algorithm||"aes128",r.prfAlgorithm=r.prfAlgorithm||"sha1";var n,o,i,a=forge$h.random.getBytesSync(r.saltSize),s=r.count,c=asn1$6.integerToDer(s);if(0===r.algorithm.indexOf("aes")||"des"===r.algorithm){var u,l,d;switch(r.algorithm){case"aes128":n=16,u=16,l=oids$1["aes128-CBC"],d=forge$h.aes.createEncryptionCipher;break;case"aes192":n=24,u=16,l=oids$1["aes192-CBC"],d=forge$h.aes.createEncryptionCipher;break;case"aes256":n=32,u=16,l=oids$1["aes256-CBC"],d=forge$h.aes.createEncryptionCipher;break;case"des":n=8,u=8,l=oids$1.desCBC,d=forge$h.des.createEncryptionCipher;break;default:throw(g=new Error("Cannot encrypt private key. Unknown encryption algorithm.")).algorithm=r.algorithm,g}var f="hmacWith"+r.prfAlgorithm.toUpperCase(),h=prfAlgorithmToMessageDigest(f),p=forge$h.pkcs5.pbkdf2(t,a,s,n,h),y=forge$h.random.getBytesSync(u);(b=d(p)).start(y),b.update(asn1$6.toDer(e)),b.finish(),i=b.output.getBytes();var m=createPbkdf2Params(a,c,n,f);o=asn1$6.create(asn1$6.Class.UNIVERSAL,asn1$6.Type.SEQUENCE,!0,[asn1$6.create(asn1$6.Class.UNIVERSAL,asn1$6.Type.OID,!1,asn1$6.oidToDer(oids$1.pkcs5PBES2).getBytes()),asn1$6.create(asn1$6.Class.UNIVERSAL,asn1$6.Type.SEQUENCE,!0,[asn1$6.create(asn1$6.Class.UNIVERSAL,asn1$6.Type.SEQUENCE,!0,[asn1$6.create(asn1$6.Class.UNIVERSAL,asn1$6.Type.OID,!1,asn1$6.oidToDer(oids$1.pkcs5PBKDF2).getBytes()),m]),asn1$6.create(asn1$6.Class.UNIVERSAL,asn1$6.Type.SEQUENCE,!0,[asn1$6.create(asn1$6.Class.UNIVERSAL,asn1$6.Type.OID,!1,asn1$6.oidToDer(l).getBytes()),asn1$6.create(asn1$6.Class.UNIVERSAL,asn1$6.Type.OCTETSTRING,!1,y)])])])}else{var g;if("3des"!==r.algorithm)throw(g=new Error("Cannot encrypt private key. Unknown encryption algorithm.")).algorithm=r.algorithm,g;n=24;var b,v=new forge$h.util.ByteBuffer(a);p=pki$3.pbe.generatePkcs12Key(t,v,1,s,n),y=pki$3.pbe.generatePkcs12Key(t,v,2,s,n);(b=forge$h.des.createEncryptionCipher(p)).start(y),b.update(asn1$6.toDer(e)),b.finish(),i=b.output.getBytes(),o=asn1$6.create(asn1$6.Class.UNIVERSAL,asn1$6.Type.SEQUENCE,!0,[asn1$6.create(asn1$6.Class.UNIVERSAL,asn1$6.Type.OID,!1,asn1$6.oidToDer(oids$1["pbeWithSHAAnd3-KeyTripleDES-CBC"]).getBytes()),asn1$6.create(asn1$6.Class.UNIVERSAL,asn1$6.Type.SEQUENCE,!0,[asn1$6.create(asn1$6.Class.UNIVERSAL,asn1$6.Type.OCTETSTRING,!1,a),asn1$6.create(asn1$6.Class.UNIVERSAL,asn1$6.Type.INTEGER,!1,c.getBytes())])])}return asn1$6.create(asn1$6.Class.UNIVERSAL,asn1$6.Type.SEQUENCE,!0,[o,asn1$6.create(asn1$6.Class.UNIVERSAL,asn1$6.Type.OCTETSTRING,!1,i)])},pki$3.decryptPrivateKeyInfo=function(e,t){var r=null,n={},o=[];if(!asn1$6.validate(e,encryptedPrivateKeyValidator,n,o)){var i=new Error("Cannot read encrypted private key. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw i.errors=o,i}var a=asn1$6.derToOid(n.encryptionOid),s=pki$3.pbe.getCipher(a,n.encryptionParams,t),c=forge$h.util.createBuffer(n.encryptedData);return s.update(c),s.finish()&&(r=asn1$6.fromDer(s.output)),r},pki$3.encryptedPrivateKeyToPem=function(e,t){var r={type:"ENCRYPTED PRIVATE KEY",body:asn1$6.toDer(e).getBytes()};return forge$h.pem.encode(r,{maxline:t})},pki$3.encryptedPrivateKeyFromPem=function(e){var t=forge$h.pem.decode(e)[0];if("ENCRYPTED PRIVATE KEY"!==t.type){var r=new Error('Could not convert encrypted private key from PEM; PEM header type is "ENCRYPTED PRIVATE KEY".');throw r.headerType=t.type,r}if(t.procType&&"ENCRYPTED"===t.procType.type)throw new Error("Could not convert encrypted private key from PEM; PEM is encrypted.");return asn1$6.fromDer(t.body)},pki$3.encryptRsaPrivateKey=function(e,t,r){if(!(r=r||{}).legacy){var n=pki$3.wrapRsaPrivateKey(pki$3.privateKeyToAsn1(e));return n=pki$3.encryptPrivateKeyInfo(n,t,r),pki$3.encryptedPrivateKeyToPem(n)}var o,i,a,s;switch(r.algorithm){case"aes128":o="AES-128-CBC",a=16,i=forge$h.random.getBytesSync(16),s=forge$h.aes.createEncryptionCipher;break;case"aes192":o="AES-192-CBC",a=24,i=forge$h.random.getBytesSync(16),s=forge$h.aes.createEncryptionCipher;break;case"aes256":o="AES-256-CBC",a=32,i=forge$h.random.getBytesSync(16),s=forge$h.aes.createEncryptionCipher;break;case"3des":o="DES-EDE3-CBC",a=24,i=forge$h.random.getBytesSync(8),s=forge$h.des.createEncryptionCipher;break;case"des":o="DES-CBC",a=8,i=forge$h.random.getBytesSync(8),s=forge$h.des.createEncryptionCipher;break;default:var c=new Error('Could not encrypt RSA private key; unsupported encryption algorithm "'+r.algorithm+'".');throw c.algorithm=r.algorithm,c}var u=s(forge$h.pbe.opensslDeriveBytes(t,i.substr(0,8),a));u.start(i),u.update(asn1$6.toDer(pki$3.privateKeyToAsn1(e))),u.finish();var l={type:"RSA PRIVATE KEY",procType:{version:"4",type:"ENCRYPTED"},dekInfo:{algorithm:o,parameters:forge$h.util.bytesToHex(i).toUpperCase()},body:u.output.getBytes()};return forge$h.pem.encode(l)},pki$3.decryptRsaPrivateKey=function(e,t){var r=null,n=forge$h.pem.decode(e)[0];if("ENCRYPTED PRIVATE KEY"!==n.type&&"PRIVATE KEY"!==n.type&&"RSA PRIVATE KEY"!==n.type)throw(a=new Error('Could not convert private key from PEM; PEM header type is not "ENCRYPTED PRIVATE KEY", "PRIVATE KEY", or "RSA PRIVATE KEY".')).headerType=a,a;if(n.procType&&"ENCRYPTED"===n.procType.type){var o,i;switch(n.dekInfo.algorithm){case"DES-CBC":o=8,i=forge$h.des.createDecryptionCipher;break;case"DES-EDE3-CBC":o=24,i=forge$h.des.createDecryptionCipher;break;case"AES-128-CBC":o=16,i=forge$h.aes.createDecryptionCipher;break;case"AES-192-CBC":o=24,i=forge$h.aes.createDecryptionCipher;break;case"AES-256-CBC":o=32,i=forge$h.aes.createDecryptionCipher;break;case"RC2-40-CBC":o=5,i=function(e){return forge$h.rc2.createDecryptionCipher(e,40)};break;case"RC2-64-CBC":o=8,i=function(e){return forge$h.rc2.createDecryptionCipher(e,64)};break;case"RC2-128-CBC":o=16,i=function(e){return forge$h.rc2.createDecryptionCipher(e,128)};break;default:var a;throw(a=new Error('Could not decrypt private key; unsupported encryption algorithm "'+n.dekInfo.algorithm+'".')).algorithm=n.dekInfo.algorithm,a}var s=forge$h.util.hexToBytes(n.dekInfo.parameters),c=i(forge$h.pbe.opensslDeriveBytes(t,s.substr(0,8),o));if(c.start(s),c.update(forge$h.util.createBuffer(n.body)),!c.finish())return r;r=c.output.getBytes()}else r=n.body;return null!==(r="ENCRYPTED PRIVATE KEY"===n.type?pki$3.decryptPrivateKeyInfo(asn1$6.fromDer(r),t):asn1$6.fromDer(r))&&(r=pki$3.privateKeyFromAsn1(r)),r},pki$3.pbe.generatePkcs12Key=function(e,t,r,n,o,i){var a,s;if(null==i){if(!("sha1"in forge$h.md))throw new Error('"sha1" hash algorithm unavailable.');i=forge$h.md.sha1.create()}var c=i.digestLength,u=i.blockLength,l=new forge$h.util.ByteBuffer,d=new forge$h.util.ByteBuffer;if(null!=e){for(s=0;s=0;s--)E>>=8,E+=k.at(s)+A.at(s),A.setAt(s,255&E);S.putBuffer(A)}v=S,l.putBuffer(I)}return l.truncate(l.length()-o),l},pki$3.pbe.getCipher=function(e,t,r){switch(e){case pki$3.oids.pkcs5PBES2:return pki$3.pbe.getCipherForPBES2(e,t,r);case pki$3.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:case pki$3.oids["pbewithSHAAnd40BitRC2-CBC"]:return pki$3.pbe.getCipherForPKCS12PBE(e,t,r);default:var n=new Error("Cannot read encrypted PBE data block. Unsupported OID.");throw n.oid=e,n.supportedOids=["pkcs5PBES2","pbeWithSHAAnd3-KeyTripleDES-CBC","pbewithSHAAnd40BitRC2-CBC"],n}},pki$3.pbe.getCipherForPBES2=function(e,t,r){var n,o={},i=[];if(!asn1$6.validate(t,PBES2AlgorithmsValidator,o,i))throw(n=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.")).errors=i,n;if((e=asn1$6.derToOid(o.kdfOid))!==pki$3.oids.pkcs5PBKDF2)throw(n=new Error("Cannot read encrypted private key. Unsupported key derivation function OID.")).oid=e,n.supportedOids=["pkcs5PBKDF2"],n;if((e=asn1$6.derToOid(o.encOid))!==pki$3.oids["aes128-CBC"]&&e!==pki$3.oids["aes192-CBC"]&&e!==pki$3.oids["aes256-CBC"]&&e!==pki$3.oids["des-EDE3-CBC"]&&e!==pki$3.oids.desCBC)throw(n=new Error("Cannot read encrypted private key. Unsupported encryption scheme OID.")).oid=e,n.supportedOids=["aes128-CBC","aes192-CBC","aes256-CBC","des-EDE3-CBC","desCBC"],n;var a,s,c=o.kdfSalt,u=forge$h.util.createBuffer(o.kdfIterationCount);switch(u=u.getInt(u.length()<<3),pki$3.oids[e]){case"aes128-CBC":a=16,s=forge$h.aes.createDecryptionCipher;break;case"aes192-CBC":a=24,s=forge$h.aes.createDecryptionCipher;break;case"aes256-CBC":a=32,s=forge$h.aes.createDecryptionCipher;break;case"des-EDE3-CBC":a=24,s=forge$h.des.createDecryptionCipher;break;case"desCBC":a=8,s=forge$h.des.createDecryptionCipher}var l=prfOidToMessageDigest(o.prfOid),d=forge$h.pkcs5.pbkdf2(r,c,u,a,l),f=o.encIv,h=s(d);return h.start(f),h},pki$3.pbe.getCipherForPKCS12PBE=function(e,t,r){var n={},o=[];if(!asn1$6.validate(t,pkcs12PbeParamsValidator,n,o))throw(l=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.")).errors=o,l;var i,a,s,c=forge$h.util.createBuffer(n.salt),u=forge$h.util.createBuffer(n.iterations);switch(u=u.getInt(u.length()<<3),e){case pki$3.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:i=24,a=8,s=forge$h.des.startDecrypting;break;case pki$3.oids["pbewithSHAAnd40BitRC2-CBC"]:i=5,a=8,s=function(e,t){var r=forge$h.rc2.createDecryptionCipher(e,40);return r.start(t,null),r};break;default:var l;throw(l=new Error("Cannot read PKCS #12 PBE data block. Unsupported OID.")).oid=e,l}var d=prfOidToMessageDigest(n.prfOid),f=pki$3.pbe.generatePkcs12Key(r,c,1,u,i,d);return d.start(),s(f,pki$3.pbe.generatePkcs12Key(r,c,2,u,a,d))},pki$3.pbe.opensslDeriveBytes=function(e,t,r,n){if(null==n){if(!("md5"in forge$h.md))throw new Error('"md5" hash algorithm unavailable.');n=forge$h.md.md5.create()}null===t&&(t="");for(var o=[hash$4(n,e+t)],i=16,a=1;i>8*d-l&255;return(v=String.fromCharCode(v.charCodeAt(0)&~w)+v.substr(1))+p+String.fromCharCode(188)},verify:function(e,i,a){var s,c=a-1,u=Math.ceil(c/8);if(i=i.substr(-u),u>8*u-c&255;if(d.charCodeAt(0)&h)throw new Error("Bits beyond keysize not zero as expected.");var p=n.generate(f,l),y="";for(s=0;s128)throw new Error('Invalid "nsComment" content.');e.value=asn1$4.create(asn1$4.Class.UNIVERSAL,asn1$4.Type.IA5STRING,!1,e.comment)}else if("subjectKeyIdentifier"===e.name&&t.cert){var u=t.cert.generateSubjectKeyIdentifier();e.subjectKeyIdentifier=u.toHex(),e.value=asn1$4.create(asn1$4.Class.UNIVERSAL,asn1$4.Type.OCTETSTRING,!1,u.getBytes())}else if("authorityKeyIdentifier"===e.name&&t.cert){e.value=asn1$4.create(asn1$4.Class.UNIVERSAL,asn1$4.Type.SEQUENCE,!0,[]);a=e.value.value;if(e.keyIdentifier){var l=!0===e.keyIdentifier?t.cert.generateSubjectKeyIdentifier().getBytes():e.keyIdentifier;a.push(asn1$4.create(asn1$4.Class.CONTEXT_SPECIFIC,0,!1,l))}if(e.authorityCertIssuer){var d=[asn1$4.create(asn1$4.Class.CONTEXT_SPECIFIC,4,!0,[_dnToAsn1(!0===e.authorityCertIssuer?t.cert.issuer:e.authorityCertIssuer)])];a.push(asn1$4.create(asn1$4.Class.CONTEXT_SPECIFIC,1,!0,d))}if(e.serialNumber){var f=forge$c.util.hexToBytes(!0===e.serialNumber?t.cert.serialNumber:e.serialNumber);a.push(asn1$4.create(asn1$4.Class.CONTEXT_SPECIFIC,2,!1,f))}}else if("cRLDistributionPoints"===e.name){e.value=asn1$4.create(asn1$4.Class.UNIVERSAL,asn1$4.Type.SEQUENCE,!0,[]);a=e.value.value;var h,p=asn1$4.create(asn1$4.Class.UNIVERSAL,asn1$4.Type.SEQUENCE,!0,[]),y=asn1$4.create(asn1$4.Class.CONTEXT_SPECIFIC,0,!0,[]);for(c=0;c2)throw new Error("Cannot read notBefore/notAfter validity times; more than two times were provided in the certificate.");if(s.length<2)throw new Error("Cannot read notBefore/notAfter validity times; they were not provided as either UTCTime or GeneralizedTime.");if(i.validity.notBefore=s[0],i.validity.notAfter=s[1],i.tbsCertificate=r.tbsCertificate,t){i.md=_createSignatureDigest({signatureOid:i.signatureOid,type:"certificate"});var c=asn1$4.toDer(i.tbsCertificate);i.md.update(c.getBytes())}var u=forge$c.md.sha1.create(),l=asn1$4.toDer(r.certIssuer);u.update(l.getBytes()),i.issuer.getField=function(e){return _getAttribute(i.issuer,e)},i.issuer.addField=function(e){_fillMissingFields([e]),i.issuer.attributes.push(e)},i.issuer.attributes=pki$2.RDNAttributesAsArray(r.certIssuer),r.certIssuerUniqueId&&(i.issuer.uniqueId=r.certIssuerUniqueId),i.issuer.hash=u.digest().toHex();var d=forge$c.md.sha1.create(),f=asn1$4.toDer(r.certSubject);return d.update(f.getBytes()),i.subject.getField=function(e){return _getAttribute(i.subject,e)},i.subject.addField=function(e){_fillMissingFields([e]),i.subject.attributes.push(e)},i.subject.attributes=pki$2.RDNAttributesAsArray(r.certSubject),r.certSubjectUniqueId&&(i.subject.uniqueId=r.certSubjectUniqueId),i.subject.hash=d.digest().toHex(),r.certExtensions?i.extensions=pki$2.certificateExtensionsFromAsn1(r.certExtensions):i.extensions=[],i.publicKey=pki$2.publicKeyFromAsn1(r.subjectPublicKeyInfo),i},pki$2.certificateExtensionsFromAsn1=function(e){for(var t=[],r=0;r1&&(r=i.value.charCodeAt(1),n=i.value.length>2?i.value.charCodeAt(2):0),t.digitalSignature=!(128&~r),t.nonRepudiation=!(64&~r),t.keyEncipherment=!(32&~r),t.dataEncipherment=!(16&~r),t.keyAgreement=!(8&~r),t.keyCertSign=!(4&~r),t.cRLSign=!(2&~r),t.encipherOnly=!(1&~r),t.decipherOnly=!(128&~n)}else if("basicConstraints"===t.name){(i=asn1$4.fromDer(t.value)).value.length>0&&i.value[0].type===asn1$4.Type.BOOLEAN?t.cA=0!==i.value[0].value.charCodeAt(0):t.cA=!1;var o=null;i.value.length>0&&i.value[0].type===asn1$4.Type.INTEGER?o=i.value[0].value:i.value.length>1&&(o=i.value[1].value),null!==o&&(t.pathLenConstraint=asn1$4.derToInteger(o))}else if("extKeyUsage"===t.name)for(var i=asn1$4.fromDer(t.value),a=0;a1&&(r=i.value.charCodeAt(1)),t.client=!(128&~r),t.server=!(64&~r),t.email=!(32&~r),t.objsign=!(16&~r),t.reserved=!(8&~r),t.sslCA=!(4&~r),t.emailCA=!(2&~r),t.objCA=!(1&~r)}else if("subjectAltName"===t.name||"issuerAltName"===t.name){var c;t.altNames=[];i=asn1$4.fromDer(t.value);for(var u=0;u=jan_1_1950&&e0&&n.value.push(pki$2.certificateExtensionsToAsn1(e.extensions)),n},pki$2.getCertificationRequestInfo=function(e){return asn1$4.create(asn1$4.Class.UNIVERSAL,asn1$4.Type.SEQUENCE,!0,[asn1$4.create(asn1$4.Class.UNIVERSAL,asn1$4.Type.INTEGER,!1,asn1$4.integerToDer(e.version).getBytes()),_dnToAsn1(e.subject),pki$2.publicKeyToAsn1(e.publicKey),_CRIAttributesToAsn1(e)])},pki$2.distinguishedNameToAsn1=function(e){return _dnToAsn1(e)},pki$2.certificateToAsn1=function(e){var t=e.tbsCertificate||pki$2.getTBSCertificate(e);return asn1$4.create(asn1$4.Class.UNIVERSAL,asn1$4.Type.SEQUENCE,!0,[t,asn1$4.create(asn1$4.Class.UNIVERSAL,asn1$4.Type.SEQUENCE,!0,[asn1$4.create(asn1$4.Class.UNIVERSAL,asn1$4.Type.OID,!1,asn1$4.oidToDer(e.signatureOid).getBytes()),_signatureParametersToAsn1(e.signatureOid,e.signatureParameters)]),asn1$4.create(asn1$4.Class.UNIVERSAL,asn1$4.Type.BITSTRING,!1,String.fromCharCode(0)+e.signature)])},pki$2.certificateExtensionsToAsn1=function(e){var t=asn1$4.create(asn1$4.Class.CONTEXT_SPECIFIC,3,!0,[]),r=asn1$4.create(asn1$4.Class.UNIVERSAL,asn1$4.Type.SEQUENCE,!0,[]);t.value.push(r);for(var n=0;nc.validity.notAfter)&&(a={message:"Certificate is not valid yet or has expired.",error:pki$2.certificateError.certificate_expired,notBefore:c.validity.notBefore,notAfter:c.validity.notAfter,now:o}),null===a){if(null===(u=t[0]||e.getIssuer(c))&&c.isIssuer(c)&&(l=!0,u=c),u){var d=u;forge$c.util.isArray(d)||(d=[d]);for(var f=!1;!f&&d.length>0;){u=d.shift();try{f=u.verify(c)}catch(w){}}f||(a={message:"Certificate signature is invalid.",error:pki$2.certificateError.bad_certificate})}null!==a||u&&!l||e.hasCertificate(c)||(a={message:"Certificate is not trusted.",error:pki$2.certificateError.unknown_ca})}if(null===a&&u&&!c.isIssuer(u)&&(a={message:"Certificate issuer is invalid.",error:pki$2.certificateError.bad_certificate}),null===a)for(var h={keyUsage:!0,basicConstraints:!0},p=0;null===a&&pm.pathLenConstraint&&(a={message:"Certificate basicConstraints pathLenConstraint violated.",error:pki$2.certificateError.bad_certificate})}var b=null===a||a.error,v=r.verify?r.verify(b,s,n):b;if(!0!==v)throw!0===b&&(a={message:"The application rejected the certificate.",error:pki$2.certificateError.bad_certificate}),(v||0===v)&&("object"!=typeof v||forge$c.util.isArray(v)?"string"==typeof v&&(a.error=v):(v.message&&(a.message=v.message),v.error&&(a.error=v.error))),a;a=null,i=!1,++s}while(t.length>0);return!0};var forge$b=forge$D,asn1$3=forge$b.asn1,pki$1=forge$b.pki,p12=forge$b.pkcs12=forge$b.pkcs12||{},contentInfoValidator={name:"ContentInfo",tagClass:asn1$3.Class.UNIVERSAL,type:asn1$3.Type.SEQUENCE,constructed:!0,value:[{name:"ContentInfo.contentType",tagClass:asn1$3.Class.UNIVERSAL,type:asn1$3.Type.OID,constructed:!1,capture:"contentType"},{name:"ContentInfo.content",tagClass:asn1$3.Class.CONTEXT_SPECIFIC,constructed:!0,captureAsn1:"content"}]},pfxValidator={name:"PFX",tagClass:asn1$3.Class.UNIVERSAL,type:asn1$3.Type.SEQUENCE,constructed:!0,value:[{name:"PFX.version",tagClass:asn1$3.Class.UNIVERSAL,type:asn1$3.Type.INTEGER,constructed:!1,capture:"version"},contentInfoValidator,{name:"PFX.macData",tagClass:asn1$3.Class.UNIVERSAL,type:asn1$3.Type.SEQUENCE,constructed:!0,optional:!0,captureAsn1:"mac",value:[{name:"PFX.macData.mac",tagClass:asn1$3.Class.UNIVERSAL,type:asn1$3.Type.SEQUENCE,constructed:!0,value:[{name:"PFX.macData.mac.digestAlgorithm",tagClass:asn1$3.Class.UNIVERSAL,type:asn1$3.Type.SEQUENCE,constructed:!0,value:[{name:"PFX.macData.mac.digestAlgorithm.algorithm",tagClass:asn1$3.Class.UNIVERSAL,type:asn1$3.Type.OID,constructed:!1,capture:"macAlgorithm"},{name:"PFX.macData.mac.digestAlgorithm.parameters",tagClass:asn1$3.Class.UNIVERSAL,captureAsn1:"macAlgorithmParameters"}]},{name:"PFX.macData.mac.digest",tagClass:asn1$3.Class.UNIVERSAL,type:asn1$3.Type.OCTETSTRING,constructed:!1,capture:"macDigest"}]},{name:"PFX.macData.macSalt",tagClass:asn1$3.Class.UNIVERSAL,type:asn1$3.Type.OCTETSTRING,constructed:!1,capture:"macSalt"},{name:"PFX.macData.iterations",tagClass:asn1$3.Class.UNIVERSAL,type:asn1$3.Type.INTEGER,constructed:!1,optional:!0,capture:"macIterations"}]}]},safeBagValidator={name:"SafeBag",tagClass:asn1$3.Class.UNIVERSAL,type:asn1$3.Type.SEQUENCE,constructed:!0,value:[{name:"SafeBag.bagId",tagClass:asn1$3.Class.UNIVERSAL,type:asn1$3.Type.OID,constructed:!1,capture:"bagId"},{name:"SafeBag.bagValue",tagClass:asn1$3.Class.CONTEXT_SPECIFIC,constructed:!0,captureAsn1:"bagValue"},{name:"SafeBag.bagAttributes",tagClass:asn1$3.Class.UNIVERSAL,type:asn1$3.Type.SET,constructed:!0,optional:!0,capture:"bagAttributes"}]},attributeValidator={name:"Attribute",tagClass:asn1$3.Class.UNIVERSAL,type:asn1$3.Type.SEQUENCE,constructed:!0,value:[{name:"Attribute.attrId",tagClass:asn1$3.Class.UNIVERSAL,type:asn1$3.Type.OID,constructed:!1,capture:"oid"},{name:"Attribute.attrValues",tagClass:asn1$3.Class.UNIVERSAL,type:asn1$3.Type.SET,constructed:!0,capture:"values"}]},certBagValidator={name:"CertBag",tagClass:asn1$3.Class.UNIVERSAL,type:asn1$3.Type.SEQUENCE,constructed:!0,value:[{name:"CertBag.certId",tagClass:asn1$3.Class.UNIVERSAL,type:asn1$3.Type.OID,constructed:!1,capture:"certId"},{name:"CertBag.certValue",tagClass:asn1$3.Class.CONTEXT_SPECIFIC,constructed:!0,value:[{name:"CertBag.certValue[0]",tagClass:asn1$3.Class.UNIVERSAL,type:asn1$3.Class.OCTETSTRING,constructed:!1,capture:"cert"}]}]};function _getBagsByAttribute(e,t,r,n){for(var o=[],i=0;i=0&&o.push(s):o.push(s))}return o}function _decodePkcs7Data(e){if(e.composed||e.constructed){for(var t=forge$b.util.createBuffer(),r=0;r0&&(o=asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.SET,!0,s));var c=[],u=[];null!==t&&(u=forge$b.util.isArray(t)?t:[t]);for(var l=[],d=0;d0){var y=asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.SEQUENCE,!0,l),m=asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.SEQUENCE,!0,[asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.OID,!1,asn1$3.oidToDer(pki$1.oids.data).getBytes()),asn1$3.create(asn1$3.Class.CONTEXT_SPECIFIC,0,!0,[asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.OCTETSTRING,!1,asn1$3.toDer(y).getBytes())])]);c.push(m)}var g=null;if(null!==e){var b=pki$1.wrapRsaPrivateKey(pki$1.privateKeyToAsn1(e));g=null===r?asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.SEQUENCE,!0,[asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.OID,!1,asn1$3.oidToDer(pki$1.oids.keyBag).getBytes()),asn1$3.create(asn1$3.Class.CONTEXT_SPECIFIC,0,!0,[b]),o]):asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.SEQUENCE,!0,[asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.OID,!1,asn1$3.oidToDer(pki$1.oids.pkcs8ShroudedKeyBag).getBytes()),asn1$3.create(asn1$3.Class.CONTEXT_SPECIFIC,0,!0,[pki$1.encryptPrivateKeyInfo(b,r,n)]),o]);var v=asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.SEQUENCE,!0,[g]),w=asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.SEQUENCE,!0,[asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.OID,!1,asn1$3.oidToDer(pki$1.oids.data).getBytes()),asn1$3.create(asn1$3.Class.CONTEXT_SPECIFIC,0,!0,[asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.OCTETSTRING,!1,asn1$3.toDer(v).getBytes())])]);c.push(w)}var _,I=asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.SEQUENCE,!0,c);if(n.useMac){var T=forge$b.md.sha1.create(),k=new forge$b.util.ByteBuffer(forge$b.random.getBytes(n.saltSize)),$=n.count,S=(e=p12.generateKey(r,k,3,$,20),forge$b.hmac.create());S.start(T,e),S.update(asn1$3.toDer(I).getBytes());var A=S.getMac();_=asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.SEQUENCE,!0,[asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.SEQUENCE,!0,[asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.SEQUENCE,!0,[asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.OID,!1,asn1$3.oidToDer(pki$1.oids.sha1).getBytes()),asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.NULL,!1,"")]),asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.OCTETSTRING,!1,A.getBytes())]),asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.OCTETSTRING,!1,k.getBytes()),asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.INTEGER,!1,asn1$3.integerToDer($).getBytes())])}return asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.SEQUENCE,!0,[asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.INTEGER,!1,asn1$3.integerToDer(3).getBytes()),asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.SEQUENCE,!0,[asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.OID,!1,asn1$3.oidToDer(pki$1.oids.data).getBytes()),asn1$3.create(asn1$3.Class.CONTEXT_SPECIFIC,0,!0,[asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.OCTETSTRING,!1,asn1$3.toDer(I).getBytes())])]),_])},p12.generateKey=forge$b.pbe.generatePkcs12Key;var forge$a=forge$D,asn1$2=forge$a.asn1,pki=forge$a.pki=forge$a.pki||{};pki.pemToDer=function(e){var t=forge$a.pem.decode(e)[0];if(t.procType&&"ENCRYPTED"===t.procType.type)throw new Error("Could not convert PEM to DER; PEM is encrypted.");return forge$a.util.createBuffer(t.body)},pki.privateKeyFromPem=function(e){var t=forge$a.pem.decode(e)[0];if("PRIVATE KEY"!==t.type&&"RSA PRIVATE KEY"!==t.type){var r=new Error('Could not convert private key from PEM; PEM header type is not "PRIVATE KEY" or "RSA PRIVATE KEY".');throw r.headerType=t.type,r}if(t.procType&&"ENCRYPTED"===t.procType.type)throw new Error("Could not convert private key from PEM; PEM is encrypted.");var n=asn1$2.fromDer(t.body);return pki.privateKeyFromAsn1(n)},pki.privateKeyToPem=function(e,t){var r={type:"RSA PRIVATE KEY",body:asn1$2.toDer(pki.privateKeyToAsn1(e)).getBytes()};return forge$a.pem.encode(r,{maxline:t})},pki.privateKeyInfoToPem=function(e,t){var r={type:"PRIVATE KEY",body:asn1$2.toDer(e).getBytes()};return forge$a.pem.encode(r,{maxline:t})};var forge$9=forge$D,prf_TLS1=function(e,t,r,n){var o=forge$9.util.createBuffer(),i=e.length>>1,a=i+(1&e.length),s=e.substr(0,a),c=e.substr(i,a),u=forge$9.util.createBuffer(),l=forge$9.hmac.create();r=t+r;var d=Math.ceil(n/16),f=Math.ceil(n/20);l.start("MD5",s);var h=forge$9.util.createBuffer();u.putBytes(r);for(var p=0;p0&&(tls$1.queue(e,tls$1.createAlert(e,{level:tls$1.Alert.Level.warning,description:tls$1.Alert.Description.no_renegotiation})),tls$1.flush(e)),e.process()},tls$1.parseHelloMessage=function(e,t,r){var n=null,o=e.entity===tls$1.ConnectionEnd.client;if(r<38)e.error(e,{message:o?"Invalid ServerHello message. Message too short.":"Invalid ClientHello message. Message too short.",send:!0,alert:{level:tls$1.Alert.Level.fatal,description:tls$1.Alert.Description.illegal_parameter}});else{var i=t.fragment,a=i.length();if(n={version:{major:i.getByte(),minor:i.getByte()},random:forge$9.util.createBuffer(i.getBytes(32)),session_id:readVector(i,1),extensions:[]},o?(n.cipher_suite=i.getBytes(2),n.compression_method=i.getByte()):(n.cipher_suites=readVector(i,2),n.compression_methods=readVector(i,1)),(a=r-(a-i.length()))>0){for(var s=readVector(i,2);s.length()>0;)n.extensions.push({type:[s.getByte(),s.getByte()],data:readVector(s,2)});if(!o)for(var c=0;c0;){if(0!==l.getByte())break;e.session.extensions.server_name.serverNameList.push(readVector(l,2).getBytes())}}}if(e.session.version&&(n.version.major!==e.session.version.major||n.version.minor!==e.session.version.minor))return e.error(e,{message:"TLS version change is disallowed during renegotiation.",send:!0,alert:{level:tls$1.Alert.Level.fatal,description:tls$1.Alert.Description.protocol_version}});if(o)e.session.cipherSuite=tls$1.getCipherSuite(n.cipher_suite);else for(var d=forge$9.util.createBuffer(n.cipher_suites.bytes());d.length()>0&&(e.session.cipherSuite=tls$1.getCipherSuite(d.getBytes(2)),null===e.session.cipherSuite););if(null===e.session.cipherSuite)return e.error(e,{message:"No cipher suites in common.",send:!0,alert:{level:tls$1.Alert.Level.fatal,description:tls$1.Alert.Description.handshake_failure},cipherSuite:forge$9.util.bytesToHex(n.cipher_suite)});e.session.compressionMethod=o?n.compression_method:tls$1.CompressionMethod.none}return n},tls$1.createSecurityParameters=function(e,t){var r=e.entity===tls$1.ConnectionEnd.client,n=t.random.bytes(),o=r?e.session.sp.client_random:n,i=r?n:tls$1.createRandom().getBytes();e.session.sp={entity:e.entity,prf_algorithm:tls$1.PRFAlgorithm.tls_prf_sha256,bulk_cipher_algorithm:null,cipher_type:null,enc_key_length:null,block_length:null,fixed_iv_length:null,record_iv_length:null,mac_algorithm:null,mac_length:null,mac_key_length:null,compression_algorithm:e.session.compressionMethod,pre_master_secret:null,master_secret:null,client_random:o,server_random:i}},tls$1.handleServerHello=function(e,t,r){var n=tls$1.parseHelloMessage(e,t,r);if(!e.fail){if(!(n.version.minor<=e.version.minor))return e.error(e,{message:"Incompatible TLS version.",send:!0,alert:{level:tls$1.Alert.Level.fatal,description:tls$1.Alert.Description.protocol_version}});e.version.minor=n.version.minor,e.session.version=e.version;var o=n.session_id.bytes();o.length>0&&o===e.session.id?(e.expect=SCC,e.session.resuming=!0,e.session.sp.server_random=n.random.bytes()):(e.expect=SCE,e.session.resuming=!1,tls$1.createSecurityParameters(e,n)),e.session.id=o,e.process()}},tls$1.handleClientHello=function(e,t,r){var n=tls$1.parseHelloMessage(e,t,r);if(!e.fail){var o=n.session_id.bytes(),i=null;if(e.sessionCache&&(null===(i=e.sessionCache.getSession(o))?o="":(i.version.major!==n.version.major||i.version.minor>n.version.minor)&&(i=null,o="")),0===o.length&&(o=forge$9.random.getBytes(32)),e.session.id=o,e.session.clientHelloVersion=n.version,e.session.sp={},i)e.version=e.session.version=i.version,e.session.sp=i.sp;else{for(var a,s=1;s0;)n=readVector(a.certificate_list,3),o=forge$9.asn1.fromDer(n),n=forge$9.pki.certificateFromAsn1(o,!0),s.push(n)}catch(u){return e.error(e,{message:"Could not parse certificate list.",cause:u,send:!0,alert:{level:tls$1.Alert.Level.fatal,description:tls$1.Alert.Description.bad_certificate}})}var c=e.entity===tls$1.ConnectionEnd.client;!c&&!0!==e.verifyClient||0!==s.length?0===s.length?e.expect=c?SKE:CKE:(c?e.session.serverCertificate=s[0]:e.session.clientCertificate=s[0],tls$1.verifyCertificateChain(e,s)&&(e.expect=c?SKE:CKE)):e.error(e,{message:c?"No server certificate provided.":"No client certificate provided.",send:!0,alert:{level:tls$1.Alert.Level.fatal,description:tls$1.Alert.Description.illegal_parameter}}),e.process()},tls$1.handleServerKeyExchange=function(e,t,r){if(r>0)return e.error(e,{message:"Invalid key parameters. Only RSA is supported.",send:!0,alert:{level:tls$1.Alert.Level.fatal,description:tls$1.Alert.Description.unsupported_certificate}});e.expect=SCR,e.process()},tls$1.handleClientKeyExchange=function(e,t,r){if(r<48)return e.error(e,{message:"Invalid key parameters. Only RSA is supported.",send:!0,alert:{level:tls$1.Alert.Level.fatal,description:tls$1.Alert.Description.unsupported_certificate}});var n=t.fragment,o={enc_pre_master_secret:readVector(n,2).getBytes()},i=null;if(e.getPrivateKey)try{i=e.getPrivateKey(e,e.session.serverCertificate),i=forge$9.pki.privateKeyFromPem(i)}catch(c){e.error(e,{message:"Could not get private key.",cause:c,send:!0,alert:{level:tls$1.Alert.Level.fatal,description:tls$1.Alert.Description.internal_error}})}if(null===i)return e.error(e,{message:"No private key set.",send:!0,alert:{level:tls$1.Alert.Level.fatal,description:tls$1.Alert.Description.internal_error}});try{var a=e.session.sp;a.pre_master_secret=i.decrypt(o.enc_pre_master_secret);var s=e.session.clientHelloVersion;if(s.major!==a.pre_master_secret.charCodeAt(0)||s.minor!==a.pre_master_secret.charCodeAt(1))throw new Error("TLS version rollback attack detected.")}catch(c){a.pre_master_secret=forge$9.random.getBytes(48)}e.expect=CCC,null!==e.session.clientCertificate&&(e.expect=CCV),e.process()},tls$1.handleCertificateRequest=function(e,t,r){if(r<3)return e.error(e,{message:"Invalid CertificateRequest. Message too short.",send:!0,alert:{level:tls$1.Alert.Level.fatal,description:tls$1.Alert.Description.illegal_parameter}});var n=t.fragment,o={certificate_types:readVector(n,1),certificate_authorities:readVector(n,2)};e.session.certificateRequest=o,e.expect=SHD,e.process()},tls$1.handleCertificateVerify=function(e,t,r){if(r<2)return e.error(e,{message:"Invalid CertificateVerify. Message too short.",send:!0,alert:{level:tls$1.Alert.Level.fatal,description:tls$1.Alert.Description.illegal_parameter}});var n=t.fragment;n.read-=4;var o=n.bytes();n.read+=4;var i={signature:readVector(n,2).getBytes()},a=forge$9.util.createBuffer();a.putBuffer(e.session.md5.digest()),a.putBuffer(e.session.sha1.digest()),a=a.getBytes();try{if(!e.session.clientCertificate.publicKey.verify(a,i.signature,"NONE"))throw new Error("CertificateVerify signature does not match.");e.session.md5.update(o),e.session.sha1.update(o)}catch(s){return e.error(e,{message:"Bad signature in CertificateVerify.",send:!0,alert:{level:tls$1.Alert.Level.fatal,description:tls$1.Alert.Description.handshake_failure}})}e.expect=CCC,e.process()},tls$1.handleServerHelloDone=function(e,t,r){if(r>0)return e.error(e,{message:"Invalid ServerHelloDone message. Invalid length.",send:!0,alert:{level:tls$1.Alert.Level.fatal,description:tls$1.Alert.Description.record_overflow}});if(null===e.serverCertificate){var n={message:"No server certificate provided. Not enough security.",send:!0,alert:{level:tls$1.Alert.Level.fatal,description:tls$1.Alert.Description.insufficient_security}},o=e.verify(e,n.alert.description,0,[]);if(!0!==o)return(o||0===o)&&("object"!=typeof o||forge$9.util.isArray(o)?"number"==typeof o&&(n.alert.description=o):(o.message&&(n.message=o.message),o.alert&&(n.alert.description=o.alert))),e.error(e,n)}null!==e.session.certificateRequest&&(t=tls$1.createRecord(e,{type:tls$1.ContentType.handshake,data:tls$1.createCertificate(e)}),tls$1.queue(e,t)),t=tls$1.createRecord(e,{type:tls$1.ContentType.handshake,data:tls$1.createClientKeyExchange(e)}),tls$1.queue(e,t),e.expect=SER;var i=function(e,t){null!==e.session.certificateRequest&&null!==e.session.clientCertificate&&tls$1.queue(e,tls$1.createRecord(e,{type:tls$1.ContentType.handshake,data:tls$1.createCertificateVerify(e,t)})),tls$1.queue(e,tls$1.createRecord(e,{type:tls$1.ContentType.change_cipher_spec,data:tls$1.createChangeCipherSpec()})),e.state.pending=tls$1.createConnectionState(e),e.state.current.write=e.state.pending.write,tls$1.queue(e,tls$1.createRecord(e,{type:tls$1.ContentType.handshake,data:tls$1.createFinished(e)})),e.expect=SCC,tls$1.flush(e),e.process()};if(null===e.session.certificateRequest||null===e.session.clientCertificate)return i(e,null);tls$1.getClientSignature(e,i)},tls$1.handleChangeCipherSpec=function(e,t){if(1!==t.fragment.getByte())return e.error(e,{message:"Invalid ChangeCipherSpec message received.",send:!0,alert:{level:tls$1.Alert.Level.fatal,description:tls$1.Alert.Description.illegal_parameter}});var r=e.entity===tls$1.ConnectionEnd.client;(e.session.resuming&&r||!e.session.resuming&&!r)&&(e.state.pending=tls$1.createConnectionState(e)),e.state.current.read=e.state.pending.read,(!e.session.resuming&&r||e.session.resuming&&!r)&&(e.state.pending=null),e.expect=r?SFI:CFI,e.process()},tls$1.handleFinished=function(e,t,r){var n=t.fragment;n.read-=4;var o=n.bytes();n.read+=4;var i=t.fragment.getBytes();(n=forge$9.util.createBuffer()).putBuffer(e.session.md5.digest()),n.putBuffer(e.session.sha1.digest());var a=e.entity===tls$1.ConnectionEnd.client,s=a?"server finished":"client finished",c=e.session.sp;if((n=prf_TLS1(c.master_secret,s,n.getBytes(),12)).getBytes()!==i)return e.error(e,{message:"Invalid verify_data in Finished message.",send:!0,alert:{level:tls$1.Alert.Level.fatal,description:tls$1.Alert.Description.decrypt_error}});e.session.md5.update(o),e.session.sha1.update(o),(e.session.resuming&&a||!e.session.resuming&&!a)&&(tls$1.queue(e,tls$1.createRecord(e,{type:tls$1.ContentType.change_cipher_spec,data:tls$1.createChangeCipherSpec()})),e.state.current.write=e.state.pending.write,e.state.pending=null,tls$1.queue(e,tls$1.createRecord(e,{type:tls$1.ContentType.handshake,data:tls$1.createFinished(e)}))),e.expect=a?SAD:CAD,e.handshaking=!1,++e.handshakes,e.peerCertificate=a?e.session.serverCertificate:e.session.clientCertificate,tls$1.flush(e),e.isConnected=!0,e.connected(e),e.process()},tls$1.handleAlert=function(e,t){var r,n=t.fragment,o={level:n.getByte(),description:n.getByte()};switch(o.description){case tls$1.Alert.Description.close_notify:r="Connection closed.";break;case tls$1.Alert.Description.unexpected_message:r="Unexpected message.";break;case tls$1.Alert.Description.bad_record_mac:r="Bad record MAC.";break;case tls$1.Alert.Description.decryption_failed:r="Decryption failed.";break;case tls$1.Alert.Description.record_overflow:r="Record overflow.";break;case tls$1.Alert.Description.decompression_failure:r="Decompression failed.";break;case tls$1.Alert.Description.handshake_failure:r="Handshake failure.";break;case tls$1.Alert.Description.bad_certificate:r="Bad certificate.";break;case tls$1.Alert.Description.unsupported_certificate:r="Unsupported certificate.";break;case tls$1.Alert.Description.certificate_revoked:r="Certificate revoked.";break;case tls$1.Alert.Description.certificate_expired:r="Certificate expired.";break;case tls$1.Alert.Description.certificate_unknown:r="Certificate unknown.";break;case tls$1.Alert.Description.illegal_parameter:r="Illegal parameter.";break;case tls$1.Alert.Description.unknown_ca:r="Unknown certificate authority.";break;case tls$1.Alert.Description.access_denied:r="Access denied.";break;case tls$1.Alert.Description.decode_error:r="Decode error.";break;case tls$1.Alert.Description.decrypt_error:r="Decrypt error.";break;case tls$1.Alert.Description.export_restriction:r="Export restriction.";break;case tls$1.Alert.Description.protocol_version:r="Unsupported protocol version.";break;case tls$1.Alert.Description.insufficient_security:r="Insufficient security.";break;case tls$1.Alert.Description.internal_error:r="Internal error.";break;case tls$1.Alert.Description.user_canceled:r="User canceled.";break;case tls$1.Alert.Description.no_renegotiation:r="Renegotiation not supported.";break;default:r="Unknown error."}if(o.description===tls$1.Alert.Description.close_notify)return e.close();e.error(e,{message:r,send:!1,origin:e.entity===tls$1.ConnectionEnd.client?"server":"client",alert:o}),e.process()},tls$1.handleHandshake=function(e,t){var r=t.fragment,n=r.getByte(),o=r.getInt24();if(o>r.length())return e.fragmented=t,t.fragment=forge$9.util.createBuffer(),r.read-=4,e.process();e.fragmented=null,r.read-=4;var i=r.bytes(o+4);r.read+=4,n in hsTable[e.entity][e.expect]?(e.entity!==tls$1.ConnectionEnd.server||e.open||e.fail||(e.handshaking=!0,e.session={version:null,extensions:{server_name:{serverNameList:[]}},cipherSuite:null,compressionMethod:null,serverCertificate:null,clientCertificate:null,md5:forge$9.md.md5.create(),sha1:forge$9.md.sha1.create()}),n!==tls$1.HandshakeType.hello_request&&n!==tls$1.HandshakeType.certificate_verify&&n!==tls$1.HandshakeType.finished&&(e.session.md5.update(i),e.session.sha1.update(i)),hsTable[e.entity][e.expect][n](e,t,o)):tls$1.handleUnexpected(e,t)},tls$1.handleApplicationData=function(e,t){e.data.putBuffer(t.fragment),e.dataReady(e),e.process()},tls$1.handleHeartbeat=function(e,t){var r=t.fragment,n=r.getByte(),o=r.getInt16(),i=r.getBytes(o);if(n===tls$1.HeartbeatMessageType.heartbeat_request){if(e.handshaking||o>i.length)return e.process();tls$1.queue(e,tls$1.createRecord(e,{type:tls$1.ContentType.heartbeat,data:tls$1.createHeartbeat(tls$1.HeartbeatMessageType.heartbeat_response,i)})),tls$1.flush(e)}else if(n===tls$1.HeartbeatMessageType.heartbeat_response){if(i!==e.expectedHeartbeatPayload)return e.process();e.heartbeatReceived&&e.heartbeatReceived(e,forge$9.util.createBuffer(i))}e.process()};var SHE=0,SCE=1,SKE=2,SCR=3,SHD=4,SCC=5,SFI=6,SAD=7,SER=8,CHE=0,CCE=1,CKE=2,CCV=3,CCC=4,CFI=5,CAD=6,__=tls$1.handleUnexpected,R0=tls$1.handleChangeCipherSpec,R1=tls$1.handleAlert,R2=tls$1.handleHandshake,R3=tls$1.handleApplicationData,R4=tls$1.handleHeartbeat,ctTable=[];ctTable[tls$1.ConnectionEnd.client]=[[__,R1,R2,__,R4],[__,R1,R2,__,R4],[__,R1,R2,__,R4],[__,R1,R2,__,R4],[__,R1,R2,__,R4],[R0,R1,__,__,R4],[__,R1,R2,__,R4],[__,R1,R2,R3,R4],[__,R1,R2,__,R4]],ctTable[tls$1.ConnectionEnd.server]=[[__,R1,R2,__,R4],[__,R1,R2,__,R4],[__,R1,R2,__,R4],[__,R1,R2,__,R4],[R0,R1,__,__,R4],[__,R1,R2,__,R4],[__,R1,R2,R3,R4],[__,R1,R2,__,R4]];var H0=tls$1.handleHelloRequest,H1=tls$1.handleServerHello,H2=tls$1.handleCertificate,H3=tls$1.handleServerKeyExchange,H4=tls$1.handleCertificateRequest,H5=tls$1.handleServerHelloDone,H6=tls$1.handleFinished,hsTable=[];hsTable[tls$1.ConnectionEnd.client]=[[__,__,H1,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__],[H0,__,__,__,__,__,__,__,__,__,__,H2,H3,H4,H5,__,__,__,__,__,__],[H0,__,__,__,__,__,__,__,__,__,__,__,H3,H4,H5,__,__,__,__,__,__],[H0,__,__,__,__,__,__,__,__,__,__,__,__,H4,H5,__,__,__,__,__,__],[H0,__,__,__,__,__,__,__,__,__,__,__,__,__,H5,__,__,__,__,__,__],[H0,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__],[H0,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,H6],[H0,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__],[H0,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__]];var H7=tls$1.handleClientHello,H8=tls$1.handleClientKeyExchange,H9=tls$1.handleCertificateVerify;hsTable[tls$1.ConnectionEnd.server]=[[__,H7,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__],[__,__,__,__,__,__,__,__,__,__,__,H2,__,__,__,__,__,__,__,__,__],[__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,H8,__,__,__,__],[__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,H9,__,__,__,__,__],[__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__],[__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,H6],[__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__],[__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__]],tls$1.generateKeys=function(e,t){var r=prf_TLS1,n=t.client_random+t.server_random;e.session.resuming||(t.master_secret=r(t.pre_master_secret,"master secret",n,48).bytes(),t.pre_master_secret=null),n=t.server_random+t.client_random;var o=2*t.mac_key_length+2*t.enc_key_length,i=e.version.major===tls$1.Versions.TLS_1_0.major&&e.version.minor===tls$1.Versions.TLS_1_0.minor;i&&(o+=2*t.fixed_iv_length);var a=r(t.master_secret,"key expansion",n,o),s={client_write_MAC_key:a.getBytes(t.mac_key_length),server_write_MAC_key:a.getBytes(t.mac_key_length),client_write_key:a.getBytes(t.enc_key_length),server_write_key:a.getBytes(t.enc_key_length)};return i&&(s.client_write_IV=a.getBytes(t.fixed_iv_length),s.server_write_IV=a.getBytes(t.fixed_iv_length)),s},tls$1.createConnectionState=function(e){var t=e.entity===tls$1.ConnectionEnd.client,r=function(){var e={sequenceNumber:[0,0],macKey:null,macLength:0,macFunction:null,cipherState:null,cipherFunction:function(e){return!0},compressionState:null,compressFunction:function(e){return!0},updateSequenceNumber:function(){4294967295===e.sequenceNumber[1]?(e.sequenceNumber[1]=0,++e.sequenceNumber[0]):++e.sequenceNumber[1]}};return e},n={read:r(),write:r()};if(n.read.update=function(e,t){return n.read.cipherFunction(t,n.read)?n.read.compressFunction(e,t,n.read)||e.error(e,{message:"Could not decompress record.",send:!0,alert:{level:tls$1.Alert.Level.fatal,description:tls$1.Alert.Description.decompression_failure}}):e.error(e,{message:"Could not decrypt record or bad MAC.",send:!0,alert:{level:tls$1.Alert.Level.fatal,description:tls$1.Alert.Description.bad_record_mac}}),!e.fail},n.write.update=function(e,t){return n.write.compressFunction(e,t,n.write)?n.write.cipherFunction(t,n.write)||e.error(e,{message:"Could not encrypt record.",send:!1,alert:{level:tls$1.Alert.Level.fatal,description:tls$1.Alert.Description.internal_error}}):e.error(e,{message:"Could not compress record.",send:!1,alert:{level:tls$1.Alert.Level.fatal,description:tls$1.Alert.Description.internal_error}}),!e.fail},e.session){var o=e.session.sp;switch(e.session.cipherSuite.initSecurityParameters(o),o.keys=tls$1.generateKeys(e,o),n.read.macKey=t?o.keys.server_write_MAC_key:o.keys.client_write_MAC_key,n.write.macKey=t?o.keys.client_write_MAC_key:o.keys.server_write_MAC_key,e.session.cipherSuite.initConnectionState(n,e,o),o.compression_algorithm){case tls$1.CompressionMethod.none:break;case tls$1.CompressionMethod.deflate:n.read.compressFunction=inflate,n.write.compressFunction=deflate;break;default:throw new Error("Unsupported compression algorithm.")}}return n},tls$1.createRandom=function(){var e=new Date,t=+e+6e4*e.getTimezoneOffset(),r=forge$9.util.createBuffer();return r.putInt32(t),r.putBytes(forge$9.random.getBytes(28)),r},tls$1.createRecord=function(e,t){return t.data?{type:t.type,version:{major:e.version.major,minor:e.version.minor},length:t.data.length(),fragment:t.data}:null},tls$1.createAlert=function(e,t){var r=forge$9.util.createBuffer();return r.putByte(t.level),r.putByte(t.description),tls$1.createRecord(e,{type:tls$1.ContentType.alert,data:r})},tls$1.createClientHello=function(e){e.session.clientHelloVersion={major:e.version.major,minor:e.version.minor};for(var t=forge$9.util.createBuffer(),r=0;r0&&(d+=2);var f=e.session.id,h=f.length+1+2+4+28+2+o+1+a+d,p=forge$9.util.createBuffer();return p.putByte(tls$1.HandshakeType.client_hello),p.putInt24(h),p.putByte(e.version.major),p.putByte(e.version.minor),p.putBytes(e.session.sp.client_random),writeVector(p,1,forge$9.util.createBuffer(f)),writeVector(p,2,t),writeVector(p,1,i),d>0&&writeVector(p,2,s),p},tls$1.createServerHello=function(e){var t=e.session.id,r=t.length+1+2+4+28+2+1,n=forge$9.util.createBuffer();return n.putByte(tls$1.HandshakeType.server_hello),n.putInt24(r),n.putByte(e.version.major),n.putByte(e.version.minor),n.putBytes(e.session.sp.server_random),writeVector(n,1,forge$9.util.createBuffer(t)),n.putByte(e.session.cipherSuite.id[0]),n.putByte(e.session.cipherSuite.id[1]),n.putByte(e.session.compressionMethod),n},tls$1.createCertificate=function(e){var t,r=e.entity===tls$1.ConnectionEnd.client,n=null;e.getCertificate&&(t=r?e.session.certificateRequest:e.session.extensions.server_name.serverNameList,n=e.getCertificate(e,t));var o=forge$9.util.createBuffer();if(null!==n)try{forge$9.util.isArray(n)||(n=[n]);for(var i=null,a=0;atls$1.MaxFragment;)n.push(tls$1.createRecord(e,{type:t.type,data:forge$9.util.createBuffer(o.slice(0,tls$1.MaxFragment))})),o=o.slice(tls$1.MaxFragment);o.length>0&&n.push(tls$1.createRecord(e,{type:t.type,data:forge$9.util.createBuffer(o)}))}for(var i=0;i0&&(n=r.order[0]),null!==n&&n in r.cache)for(var o in t=r.cache[n],delete r.cache[n],r.order)if(r.order[o]===n){r.order.splice(o,1);break}return t},r.setSession=function(e,t){if(r.order.length===r.capacity){var n=r.order.shift();delete r.cache[n]}n=forge$9.util.bytesToHex(e);r.order.push(n),r.cache[n]=t}}return r},tls$1.createConnection=function(e){var t=null;t=e.caStore?forge$9.util.isArray(e.caStore)?forge$9.pki.createCaStore(e.caStore):e.caStore:forge$9.pki.createCaStore();var r=e.cipherSuites||null;if(null===r)for(var n in r=[],tls$1.CipherSuites)r.push(tls$1.CipherSuites[n]);var o=e.server?tls$1.ConnectionEnd.server:tls$1.ConnectionEnd.client,i=e.sessionCache?tls$1.createSessionCache(e.sessionCache):null,a={version:{major:tls$1.Version.major,minor:tls$1.Version.minor},entity:o,sessionId:e.sessionId,caStore:t,sessionCache:i,cipherSuites:r,connected:e.connected,virtualHost:e.virtualHost||null,verifyClient:e.verifyClient||!1,verify:e.verify||function(e,t,r,n){return t},verifyOptions:e.verifyOptions||{},getCertificate:e.getCertificate||null,getPrivateKey:e.getPrivateKey||null,getSignature:e.getSignature||null,input:forge$9.util.createBuffer(),tlsData:forge$9.util.createBuffer(),data:forge$9.util.createBuffer(),tlsDataReady:e.tlsDataReady,dataReady:e.dataReady,heartbeatReceived:e.heartbeatReceived,closed:e.closed,error:function(t,r){r.origin=r.origin||(t.entity===tls$1.ConnectionEnd.client?"client":"server"),r.send&&(tls$1.queue(t,tls$1.createAlert(t,r.alert)),tls$1.flush(t));var n=!1!==r.fatal;n&&(t.fail=!0),e.error(t,r),n&&t.close(!1)},deflate:e.deflate||null,inflate:e.inflate||null,reset:function(e){a.version={major:tls$1.Version.major,minor:tls$1.Version.minor},a.record=null,a.session=null,a.peerCertificate=null,a.state={pending:null,current:null},a.expect=a.entity===tls$1.ConnectionEnd.client?SHE:CHE,a.fragmented=null,a.records=[],a.open=!1,a.handshakes=0,a.handshaking=!1,a.isConnected=!1,a.fail=!(e||void 0===e),a.input.clear(),a.tlsData.clear(),a.data.clear(),a.state.current=tls$1.createConnectionState(a)}};a.reset();return a.handshake=function(e){if(a.entity!==tls$1.ConnectionEnd.client)a.error(a,{message:"Cannot initiate handshake as a server.",fatal:!1});else if(a.handshaking)a.error(a,{message:"Handshake already in progress.",fatal:!1});else{a.fail&&!a.open&&0===a.handshakes&&(a.fail=!1),a.handshaking=!0;var t=null;(e=e||"").length>0&&(a.sessionCache&&(t=a.sessionCache.getSession(e)),null===t&&(e="")),0===e.length&&a.sessionCache&&null!==(t=a.sessionCache.getSession())&&(e=t.id),a.session={id:e,version:null,cipherSuite:null,compressionMethod:null,serverCertificate:null,certificateRequest:null,clientCertificate:null,sp:{},md5:forge$9.md.md5.create(),sha1:forge$9.md.sha1.create()},t&&(a.version=t.version,a.session.sp=t.sp),a.session.sp.client_random=tls$1.createRandom().getBytes(),a.open=!0,tls$1.queue(a,tls$1.createRecord(a,{type:tls$1.ContentType.handshake,data:tls$1.createClientHello(a)})),tls$1.flush(a)}},a.process=function(e){var t,r,n,o,i=0;return e&&a.input.putBytes(e),a.fail||(null!==a.record&&a.record.ready&&a.record.fragment.isEmpty()&&(a.record=null),null===a.record&&(i=function(e){var t=0,r=e.input,n=r.length();if(n<5)t=5-n;else{e.record={type:r.getByte(),version:{major:r.getByte(),minor:r.getByte()},length:r.getInt16(),fragment:forge$9.util.createBuffer(),ready:!1};var o=e.record.version.major===e.version.major;o&&e.session&&e.session.version&&(o=e.record.version.minor===e.version.minor),o||e.error(e,{message:"Incompatible TLS version.",send:!0,alert:{level:tls$1.Alert.Level.fatal,description:tls$1.Alert.Description.protocol_version}})}return t}(a)),a.fail||null===a.record||a.record.ready||(i=function(e){var t=0,r=e.input,n=r.length();return n=tls.Versions.TLS_1_1.minor&&i.output.putBytes(r),i.update(e.fragment),i.finish(encrypt_aes_cbc_sha1_padding)&&(e.fragment=i.output,e.length=e.fragment.length(),n=!0),n}function encrypt_aes_cbc_sha1_padding(e,t,r){if(!r){var n=e-t.length()%e;t.fillWithByte(n-1,n)}return!0}function decrypt_aes_cbc_sha1_padding(e,t,r){var n=!0;if(r){for(var o=t.length(),i=t.last(),a=o-1-i;a=i?(e.fragment=o.output.getBytes(s-i),a=o.output.getBytes(i)):e.fragment=o.output.getBytes(),e.fragment=forge$8.util.createBuffer(e.fragment),e.length=e.fragment.length();var c=t.macFunction(t.macKey,t.sequenceNumber,e);return t.updateSequenceNumber(),n=compareMacs(t.macKey,a,c)&&n}function compareMacs(e,t,r){var n=forge$8.hmac.create();return n.start("SHA1",e),n.update(t),t=n.digest().getBytes(),n.start(null,null),n.update(r),t===(r=n.digest().getBytes())}tls.CipherSuites.TLS_RSA_WITH_AES_128_CBC_SHA={id:[0,47],name:"TLS_RSA_WITH_AES_128_CBC_SHA",initSecurityParameters:function(e){e.bulk_cipher_algorithm=tls.BulkCipherAlgorithm.aes,e.cipher_type=tls.CipherType.block,e.enc_key_length=16,e.block_length=16,e.fixed_iv_length=16,e.record_iv_length=16,e.mac_algorithm=tls.MACAlgorithm.hmac_sha1,e.mac_length=20,e.mac_key_length=20},initConnectionState:initConnectionState},tls.CipherSuites.TLS_RSA_WITH_AES_256_CBC_SHA={id:[0,53],name:"TLS_RSA_WITH_AES_256_CBC_SHA",initSecurityParameters:function(e){e.bulk_cipher_algorithm=tls.BulkCipherAlgorithm.aes,e.cipher_type=tls.CipherType.block,e.enc_key_length=32,e.block_length=16,e.fixed_iv_length=16,e.record_iv_length=16,e.mac_algorithm=tls.MACAlgorithm.hmac_sha1,e.mac_length=20,e.mac_key_length=20},initConnectionState:initConnectionState};var forge$7=forge$D,sha512$2=forge$7.sha512=forge$7.sha512||{};forge$7.md.sha512=forge$7.md.algorithms.sha512=sha512$2;var sha384=forge$7.sha384=forge$7.sha512.sha384=forge$7.sha512.sha384||{};sha384.create=function(){return sha512$2.create("SHA-384")},forge$7.md.sha384=forge$7.md.algorithms.sha384=sha384,forge$7.sha512.sha256=forge$7.sha512.sha256||{create:function(){return sha512$2.create("SHA-512/256")}},forge$7.md["sha512/256"]=forge$7.md.algorithms["sha512/256"]=forge$7.sha512.sha256,forge$7.sha512.sha224=forge$7.sha512.sha224||{create:function(){return sha512$2.create("SHA-512/224")}},forge$7.md["sha512/224"]=forge$7.md.algorithms["sha512/224"]=forge$7.sha512.sha224,sha512$2.create=function(e){if(_initialized||_init(),void 0===e&&(e="SHA-512"),!(e in _states))throw new Error("Invalid SHA-512 algorithm: "+e);for(var t=_states[e],r=null,n=forge$7.util.createBuffer(),o=new Array(80),i=0;i<80;++i)o[i]=new Array(2);var a=64;switch(e){case"SHA-384":a=48;break;case"SHA-512/256":a=32;break;case"SHA-512/224":a=28}var s={algorithm:e.replace("-","").toLowerCase(),blockLength:128,digestLength:a,messageLength:0,fullMessageLength:null,messageLengthSize:16,start:function(){s.messageLength=0,s.fullMessageLength=s.messageLength128=[];for(var e=s.messageLengthSize/4,o=0;o>>0,i>>>0];for(var a=s.fullMessageLength.length-1;a>=0;--a)s.fullMessageLength[a]+=i[1],i[1]=i[0]+(s.fullMessageLength[a]/4294967296>>>0),s.fullMessageLength[a]=s.fullMessageLength[a]>>>0,i[0]=i[1]/4294967296>>>0;return n.putBytes(e),_update(r,o,n),(n.read>2048||0===n.length())&&n.compact(),s},s.digest=function(){var t=forge$7.util.createBuffer();t.putBytes(n.bytes());var i,a=s.fullMessageLength[s.fullMessageLength.length-1]+s.messageLengthSize&s.blockLength-1;t.putBytes(_padding.substr(0,s.blockLength-a));for(var c=8*s.fullMessageLength[0],u=0;u>>0,t.putInt32(c>>>0),c=i>>>0;t.putInt32(c);var l=new Array(r.length);for(u=0;u=128;){for(C=0;C<16;++C)t[C][0]=r.getInt32()>>>0,t[C][1]=r.getInt32()>>>0;for(;C<80;++C)n=(((R=(N=t[C-2])[0])>>>19|(O=N[1])<<13)^(O>>>29|R<<3)^R>>>6)>>>0,o=((R<<13|O>>>19)^(O<<3|R>>>29)^(R<<26|O>>>6))>>>0,i=(((R=(M=t[C-15])[0])>>>1|(O=M[1])<<31)^(R>>>8|O<<24)^R>>>7)>>>0,a=((R<<31|O>>>1)^(R<<24|O>>>8)^(R<<25|O>>>7))>>>0,P=t[C-7],B=t[C-16],O=o+P[1]+a+B[1],t[C][0]=n+P[0]+i+B[0]+(O/4294967296>>>0)>>>0,t[C][1]=O>>>0;for(h=e[0][0],p=e[0][1],y=e[1][0],m=e[1][1],g=e[2][0],b=e[2][1],v=e[3][0],w=e[3][1],_=e[4][0],I=e[4][1],T=e[5][0],k=e[5][1],$=e[6][0],S=e[6][1],A=e[7][0],E=e[7][1],C=0;C<80;++C)u=((_>>>14|I<<18)^(_>>>18|I<<14)^(I>>>9|_<<23))>>>0,l=($^_&(T^$))>>>0,s=((h>>>28|p<<4)^(p>>>2|h<<30)^(p>>>7|h<<25))>>>0,c=((h<<4|p>>>28)^(p<<30|h>>>2)^(p<<25|h>>>7))>>>0,d=(h&y|g&(h^y))>>>0,f=(p&m|b&(p^m))>>>0,O=E+(((_<<18|I>>>14)^(_<<14|I>>>18)^(I<<23|_>>>9))>>>0)+((S^I&(k^S))>>>0)+_k[C][1]+t[C][1],n=A+u+l+_k[C][0]+t[C][0]+(O/4294967296>>>0)>>>0,o=O>>>0,i=s+d+((O=c+f)/4294967296>>>0)>>>0,a=O>>>0,A=$,E=S,$=T,S=k,T=_,k=I,_=v+n+((O=w+o)/4294967296>>>0)>>>0,I=O>>>0,v=g,w=b,g=y,b=m,y=h,m=p,h=n+i+((O=o+a)/4294967296>>>0)>>>0,p=O>>>0;O=e[0][1]+p,e[0][0]=e[0][0]+h+(O/4294967296>>>0)>>>0,e[0][1]=O>>>0,O=e[1][1]+m,e[1][0]=e[1][0]+y+(O/4294967296>>>0)>>>0,e[1][1]=O>>>0,O=e[2][1]+b,e[2][0]=e[2][0]+g+(O/4294967296>>>0)>>>0,e[2][1]=O>>>0,O=e[3][1]+w,e[3][0]=e[3][0]+v+(O/4294967296>>>0)>>>0,e[3][1]=O>>>0,O=e[4][1]+I,e[4][0]=e[4][0]+_+(O/4294967296>>>0)>>>0,e[4][1]=O>>>0,O=e[5][1]+k,e[5][0]=e[5][0]+T+(O/4294967296>>>0)>>>0,e[5][1]=O>>>0,O=e[6][1]+S,e[6][0]=e[6][0]+$+(O/4294967296>>>0)>>>0,e[6][1]=O>>>0,O=e[7][1]+E,e[7][0]=e[7][0]+A+(O/4294967296>>>0)>>>0,e[7][1]=O>>>0,D-=128}}var asn1Validator$1={},forge$6=forge$D,asn1$1=forge$6.asn1;asn1Validator$1.privateKeyValidator={name:"PrivateKeyInfo",tagClass:asn1$1.Class.UNIVERSAL,type:asn1$1.Type.SEQUENCE,constructed:!0,value:[{name:"PrivateKeyInfo.version",tagClass:asn1$1.Class.UNIVERSAL,type:asn1$1.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"PrivateKeyInfo.privateKeyAlgorithm",tagClass:asn1$1.Class.UNIVERSAL,type:asn1$1.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:asn1$1.Class.UNIVERSAL,type:asn1$1.Type.OID,constructed:!1,capture:"privateKeyOid"}]},{name:"PrivateKeyInfo",tagClass:asn1$1.Class.UNIVERSAL,type:asn1$1.Type.OCTETSTRING,constructed:!1,capture:"privateKey"}]},asn1Validator$1.publicKeyValidator={name:"SubjectPublicKeyInfo",tagClass:asn1$1.Class.UNIVERSAL,type:asn1$1.Type.SEQUENCE,constructed:!0,captureAsn1:"subjectPublicKeyInfo",value:[{name:"SubjectPublicKeyInfo.AlgorithmIdentifier",tagClass:asn1$1.Class.UNIVERSAL,type:asn1$1.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:asn1$1.Class.UNIVERSAL,type:asn1$1.Type.OID,constructed:!1,capture:"publicKeyOid"}]},{tagClass:asn1$1.Class.UNIVERSAL,type:asn1$1.Type.BITSTRING,constructed:!1,composed:!0,captureBitStringValue:"ed25519PublicKey"}]};var forge$5=forge$D,asn1Validator=asn1Validator$1,publicKeyValidator=asn1Validator.publicKeyValidator,privateKeyValidator=asn1Validator.privateKeyValidator;if(void 0===BigInteger$1)var BigInteger$1=forge$5.jsbn.BigInteger;var ByteBuffer=forge$5.util.ByteBuffer,NativeBuffer=void 0===Buffer$2?Uint8Array:Buffer$2;forge$5.pki=forge$5.pki||{},forge$5.pki.ed25519=forge$5.ed25519=forge$5.ed25519||{};var ed25519$1=forge$5.ed25519;function messageToNativeBuffer(e){var t=e.message;if(t instanceof Uint8Array||t instanceof NativeBuffer)return t;var r=e.encoding;if(void 0===t){if(!e.md)throw new TypeError('"options.message" or "options.md" not specified.');t=e.md.digest().getBytes(),r="binary"}if("string"==typeof t&&!r)throw new TypeError('"options.encoding" must be "binary" or "utf8".');if("string"==typeof t){if(void 0!==Buffer$2)return Buffer$2.from(t,r);t=new ByteBuffer(t,r)}else if(!(t instanceof ByteBuffer))throw new TypeError('"options.message" must be a node.js Buffer, a Uint8Array, a forge ByteBuffer, or a string with "options.encoding" specifying its encoding.');for(var n=new NativeBuffer(t.length()),o=0;o=0};var gf0=gf(),gf1=gf([1]),D$7=gf([30883,4953,19914,30187,55467,16705,2637,112,59544,30585,16505,36039,65139,11119,27886,20995]),D2=gf([61785,9906,39828,60374,45398,33411,5274,224,53552,61171,33010,6542,64743,22239,55772,9222]),X$3=gf([54554,36645,11616,51542,42930,38181,51040,26924,56412,64982,57905,49316,21502,52590,14035,8553]),Y$2=gf([26200,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214]),L$6=new Float64Array([237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16]),I$7=gf([41136,18958,6951,50414,58488,44335,6150,12099,55207,15867,153,11085,57099,20417,9344,11139]);function sha512$1(e,t){var r=forge$5.md.sha512.create(),n=new ByteBuffer(e);r.update(n.getBytes(t),"binary");var o=r.digest().getBytes();if(void 0!==Buffer$2)return Buffer$2.from(o,"binary");for(var i=new NativeBuffer(ed25519$1.constants.HASH_BYTE_LENGTH),a=0;a<64;++a)i[a]=o.charCodeAt(a);return i}function crypto_sign_keypair(e,t){var r,n=[gf(),gf(),gf(),gf()],o=sha512$1(t,32);for(o[0]&=248,o[31]&=127,o[31]|=64,scalarbase(n,o),pack$1(e,n),r=0;r<32;++r)t[r+32]=e[r];return 0}function crypto_sign(e,t,r,n){var o,i,a=new Float64Array(64),s=[gf(),gf(),gf(),gf()],c=sha512$1(n,32);c[0]&=248,c[31]&=127,c[31]|=64;var u=r+64;for(o=0;o=32;--n){for(r=0,o=n-32,i=n-12;o>8,t[o]-=256*r;t[o]+=r,t[n]=0}for(r=0,o=0;o<32;++o)t[o]+=r-(t[31]>>4)*L$6[o],r=t[o]>>8,t[o]&=255;for(o=0;o<32;++o)t[o]-=r*L$6[o];for(n=0;n<32;++n)t[n+1]+=t[n]>>8,e[n]=255&t[n]}function reduce(e){for(var t=new Float64Array(64),r=0;r<64;++r)t[r]=e[r],e[r]=0;modL(e,t)}function add(e,t){var r=gf(),n=gf(),o=gf(),i=gf(),a=gf(),s=gf(),c=gf(),u=gf(),l=gf();Z$4(r,e[1],e[0]),Z$4(l,t[1],t[0]),M$7(r,r,l),A$6(n,e[0],e[1]),A$6(l,t[0],t[1]),M$7(n,n,l),M$7(o,e[3],t[3]),M$7(o,o,D2),M$7(i,e[2],t[2]),A$6(i,i,i),Z$4(a,n,r),Z$4(s,i,o),A$6(c,i,o),A$6(u,n,r),M$7(e[0],a,s),M$7(e[1],u,c),M$7(e[2],c,s),M$7(e[3],a,u)}function cswap(e,t,r){for(var n=0;n<4;++n)sel25519(e[n],t[n],r)}function pack$1(e,t){var r=gf(),n=gf(),o=gf();inv25519(o,t[2]),M$7(r,t[0],o),M$7(n,t[1],o),pack25519(e,n),e[31]^=par25519(r)<<7}function pack25519(e,t){var r,n,o,i=gf(),a=gf();for(r=0;r<16;++r)a[r]=t[r];for(car25519(a),car25519(a),car25519(a),n=0;n<2;++n){for(i[0]=a[0]-65517,r=1;r<15;++r)i[r]=a[r]-65535-(i[r-1]>>16&1),i[r-1]&=65535;i[15]=a[15]-32767-(i[14]>>16&1),o=i[15]>>16&1,i[14]&=65535,sel25519(a,i,1-o)}for(r=0;r<16;r++)e[2*r]=255&a[r],e[2*r+1]=a[r]>>8}function unpackneg(e,t){var r=gf(),n=gf(),o=gf(),i=gf(),a=gf(),s=gf(),c=gf();return set25519(e[2],gf1),unpack25519(e[1],t),S$9(o,e[1]),M$7(i,o,D$7),Z$4(o,o,e[2]),A$6(i,e[2],i),S$9(a,i),S$9(s,a),M$7(c,s,a),M$7(r,c,o),M$7(r,r,i),pow2523(r,r),M$7(r,r,o),M$7(r,r,i),M$7(r,r,i),M$7(e[0],r,i),S$9(n,e[0]),M$7(n,n,i),neq25519(n,o)&&M$7(e[0],e[0],I$7),S$9(n,e[0]),M$7(n,n,i),neq25519(n,o)?-1:(par25519(e[0])===t[31]>>7&&Z$4(e[0],gf0,e[0]),M$7(e[3],e[0],e[1]),0)}function unpack25519(e,t){var r;for(r=0;r<16;++r)e[r]=t[2*r]+(t[2*r+1]<<8);e[15]&=32767}function pow2523(e,t){var r,n=gf();for(r=0;r<16;++r)n[r]=t[r];for(r=250;r>=0;--r)S$9(n,n),1!==r&&M$7(n,n,t);for(r=0;r<16;++r)e[r]=n[r]}function neq25519(e,t){var r=new NativeBuffer(32),n=new NativeBuffer(32);return pack25519(r,e),pack25519(n,t),crypto_verify_32(r,0,n,0)}function crypto_verify_32(e,t,r,n){return vn(e,t,r,n,32)}function vn(e,t,r,n,o){var i,a=0;for(i=0;i>>8)-1}function par25519(e){var t=new NativeBuffer(32);return pack25519(t,e),1&t[0]}function scalarmult(e,t,r){var n,o;for(set25519(e[0],gf0),set25519(e[1],gf1),set25519(e[2],gf1),set25519(e[3],gf0),o=255;o>=0;--o)cswap(e,t,n=r[o/8|0]>>(7&o)&1),add(t,e),add(e,e),cswap(e,t,n)}function scalarbase(e,t){var r=[gf(),gf(),gf(),gf()];set25519(r[0],X$3),set25519(r[1],Y$2),set25519(r[2],gf1),M$7(r[3],X$3,Y$2),scalarmult(e,r,t)}function set25519(e,t){var r;for(r=0;r<16;r++)e[r]=0|t[r]}function inv25519(e,t){var r,n=gf();for(r=0;r<16;++r)n[r]=t[r];for(r=253;r>=0;--r)S$9(n,n),2!==r&&4!==r&&M$7(n,n,t);for(r=0;r<16;++r)e[r]=n[r]}function car25519(e){var t,r,n=1;for(t=0;t<16;++t)r=e[t]+n+65535,n=Math.floor(r/65536),e[t]=r-65536*n;e[0]+=n-1+37*(n-1)}function sel25519(e,t,r){for(var n,o=~(r-1),i=0;i<16;++i)n=o&(e[i]^t[i]),e[i]^=n,t[i]^=n}function gf(e){var t,r=new Float64Array(16);if(e)for(t=0;t0&&(o=forge$4.util.fillString(String.fromCharCode(0),a)+o),{encapsulation:t.encrypt(o,"NONE"),key:e.generate(o,n)}},decrypt:function(t,r,n){var o=t.decrypt(r,"NONE");return e.generate(o,n)}};return n},forge$4.kem.kdf1=function(e,t){_createKDF(this,e,0,t||e.digestLength)},forge$4.kem.kdf2=function(e,t){_createKDF(this,e,1,t||e.digestLength)};var forge$3=forge$D;forge$3.log=forge$3.log||{},forge$3.log.levels=["none","error","warning","info","debug","verbose","max"];var sLevelInfo={},sLoggers=[],sConsoleLogger=null;forge$3.log.LEVEL_LOCKED=2,forge$3.log.NO_LEVEL_CHECK=4,forge$3.log.INTERPOLATE=8;for(var i$8=0;i$80){for(var r=asn1.create(asn1.Class.CONTEXT_SPECIFIC,1,!0,[]),n=0;n=r&&o0&&o.value[0].value.push(asn1.create(asn1.Class.CONTEXT_SPECIFIC,0,!0,t)),n.length>0&&o.value[0].value.push(asn1.create(asn1.Class.CONTEXT_SPECIFIC,1,!0,n)),o.value[0].value.push(asn1.create(asn1.Class.UNIVERSAL,asn1.Type.SET,!0,e.signerInfos)),asn1.create(asn1.Class.UNIVERSAL,asn1.Type.SEQUENCE,!0,[asn1.create(asn1.Class.UNIVERSAL,asn1.Type.OID,!1,asn1.oidToDer(e.type).getBytes()),o])},addSigner:function(t){var r=t.issuer,n=t.serialNumber;if(t.certificate){var o=t.certificate;"string"==typeof o&&(o=forge$2.pki.certificateFromPem(o)),r=o.issuer.attributes,n=o.serialNumber}var i=t.key;if(!i)throw new Error("Could not add PKCS#7 signer; no private key specified.");"string"==typeof i&&(i=forge$2.pki.privateKeyFromPem(i));var a=t.digestAlgorithm||forge$2.pki.oids.sha1;switch(a){case forge$2.pki.oids.sha1:case forge$2.pki.oids.sha256:case forge$2.pki.oids.sha384:case forge$2.pki.oids.sha512:case forge$2.pki.oids.md5:break;default:throw new Error("Could not add PKCS#7 signer; unknown message digest algorithm: "+a)}var s=t.authenticatedAttributes||[];if(s.length>0){for(var c=!1,u=!1,l=0;l="8"&&(r="00"+r);var n=forge$1.util.hexToBytes(r);e.putInt32(n.length),e.putBytes(n)}function _addStringToBuffer(e,t){e.putInt32(t.length),e.putString(t)}function _sha1(){for(var e=forge$1.md.sha1.create(),t=arguments.length,r=0;r64)throw new TypeError("Seed should be at most 512 bits");const t=await hash$3(HashAlgorithm.Sha512,"Bitcoin seed",e);return{keyData:t.subarray(0,32),chainCode:t.subarray(32)}}function toHardenedIndex(e){return e|HARDENED_BIT$1}function isHardenedIndex(e){return!!(e&HARDENED_BIT$1)}async function derive(e,t,r){if(isHardenedIndex(r))throw new Error("the index should not be pre-hardened");const n=new Uint8Array(37);n[0]=0,n.set(e,1),new DataView(n.buffer,n.byteOffset,n.byteLength).setUint32(33,r,!1),n[33]|=128;const o=await hash$3(HashAlgorithm.Sha512,t,n);return{keyData:o.subarray(0,32),chainCode:o.subarray(32)}}async function fromSeed(e){const t=await hash$3(HashAlgorithm.Sha512,"ed25519 seed",e);return{keyData:t.subarray(0,32),chainCode:t.subarray(32)}}const derPrefix$2="302e020100300506032b657004220420",derPrefixBytes$2=decode$8(derPrefix$2);class Ed25519PrivateKey{constructor(e,t){this._keyPair=e instanceof Uint8Array?nacl.sign.keyPair.fromSeed(e):e,this._chainCode=null!=t?t:null}get _type(){return"ED25519"}static generate(){const e=bytes(64);return new Ed25519PrivateKey(nacl.sign.keyPair.fromSeed(e.subarray(0,32)),e.subarray(32))}static async generateAsync(){const e=await bytesAsync(64);return new Ed25519PrivateKey(nacl.sign.keyPair.fromSeed(e.subarray(0,32)),e.subarray(32))}static fromBytes(e){switch(e.length){case 48:return Ed25519PrivateKey.fromBytesDer(e);case 32:case 64:return Ed25519PrivateKey.fromBytesRaw(e);default:throw new BadKeyError(`invalid private key length: ${e.length} bytes`)}}static fromBytesDer(e){const t=forge.asn1.fromDer(new forge.util.ByteStringBuffer(e));let r;try{r=forge.pki.ed25519.privateKeyFromAsn1(t).privateKeyBytes}catch(o){const e=null!=o&&null!=o.message?o.message:"";throw new BadKeyError(`cannot decode ED25519 private key data from DER format: ${e}`)}const n=nacl.sign.keyPair.fromSeed(r);return new Ed25519PrivateKey(n)}static fromBytesRaw(e){switch(e.length){case 32:return new Ed25519PrivateKey(nacl.sign.keyPair.fromSeed(e));case 64:return new Ed25519PrivateKey(nacl.sign.keyPair.fromSecretKey(e))}throw new BadKeyError(`invalid private key length: ${e.length} bytes`)}static fromString(e){return Ed25519PrivateKey.fromBytes(decode$8(e))}static fromStringDer(e){return Ed25519PrivateKey.fromBytesDer(decode$8(e))}static fromStringRaw(e){return Ed25519PrivateKey.fromBytesRaw(decode$8(e))}static async fromSeed(e){const{keyData:t,chainCode:r}=await fromSeed(e);return new Ed25519PrivateKey(t,r)}get publicKey(){return new Ed25519PublicKey(this._keyPair.publicKey)}sign(e){return nacl.sign.detached(e,this._keyPair.secretKey)}toBytesDer(){const e=new Uint8Array(derPrefixBytes$2.length+32),t=this._keyPair.secretKey.subarray(0,32),r=32-t.length,n=derPrefixBytes$2.length+r;return e.set(derPrefixBytes$2,0),e.set(t,n),e}toBytesRaw(){return this._keyPair.secretKey.slice(0,32)}}const HEX_CHARS$1="0123456789abcdef".split(""),KECCAK_PADDING$1=[1,256,65536,16777216],SHIFT$1=[0,8,16,24],RC$1=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],Keccak$1=e=>{return{blocks:[],reset:!0,block:0,start:0,blockCount:1600-(e<<1)>>5,outputBlocks:e>>5,s:(t=[0,0,0,0,0,0,0,0,0,0],[].concat(t,t,t,t,t))};var t},update$1=(e,t)=>{for(var r,n,o=t.length,i=e.blocks,a=e.blockCount<<2,s=e.blockCount,c=e.outputBlocks,u=e.s,l=0;l>2]|=t[l]<>2]|=n<>2]|=(192|n>>6)<>2]|=(128|63&n)<=57344?(i[r>>2]|=(224|n>>12)<>2]|=(128|n>>6&63)<>2]|=(128|63&n)<>2]|=(240|n>>18)<>2]|=(128|n>>12&63)<>2]|=(128|n>>6&63)<>2]|=(128|63&n)<=a){for(e.start=r-a,e.block=i[s],r=0;r>2]|=KECCAK_PADDING$1[3&r],e.lastByteIndex===a)for(i[0]=i[s],r=1;r>4&15]+HEX_CHARS$1[15&d]+HEX_CHARS$1[d>>12&15]+HEX_CHARS$1[d>>8&15]+HEX_CHARS$1[d>>20&15]+HEX_CHARS$1[d>>16&15]+HEX_CHARS$1[d>>28&15]+HEX_CHARS$1[d>>24&15];h%s==0&&(f$8(u),r=0)}return"0x"+f},f$8=e=>{var t,r,n,o,i,a,s,c,u,l,d,f,h,p,y,m,g,b,v,w,_,I,T,k,$,S,A,E,C,R,O,N,P,M,B,D,x,L,U,j,F,q,K,H,G,z,V,W,Q,Y,X,J,Z,ee,te,re,ne,oe,ie,ae,se,ce,ue;for(n=0;n<48;n+=2)o=e[0]^e[10]^e[20]^e[30]^e[40],i=e[1]^e[11]^e[21]^e[31]^e[41],a=e[2]^e[12]^e[22]^e[32]^e[42],s=e[3]^e[13]^e[23]^e[33]^e[43],c=e[4]^e[14]^e[24]^e[34]^e[44],u=e[5]^e[15]^e[25]^e[35]^e[45],l=e[6]^e[16]^e[26]^e[36]^e[46],d=e[7]^e[17]^e[27]^e[37]^e[47],t=(f=e[8]^e[18]^e[28]^e[38]^e[48])^(a<<1|s>>>31),r=(h=e[9]^e[19]^e[29]^e[39]^e[49])^(s<<1|a>>>31),e[0]^=t,e[1]^=r,e[10]^=t,e[11]^=r,e[20]^=t,e[21]^=r,e[30]^=t,e[31]^=r,e[40]^=t,e[41]^=r,t=o^(c<<1|u>>>31),r=i^(u<<1|c>>>31),e[2]^=t,e[3]^=r,e[12]^=t,e[13]^=r,e[22]^=t,e[23]^=r,e[32]^=t,e[33]^=r,e[42]^=t,e[43]^=r,t=a^(l<<1|d>>>31),r=s^(d<<1|l>>>31),e[4]^=t,e[5]^=r,e[14]^=t,e[15]^=r,e[24]^=t,e[25]^=r,e[34]^=t,e[35]^=r,e[44]^=t,e[45]^=r,t=c^(f<<1|h>>>31),r=u^(h<<1|f>>>31),e[6]^=t,e[7]^=r,e[16]^=t,e[17]^=r,e[26]^=t,e[27]^=r,e[36]^=t,e[37]^=r,e[46]^=t,e[47]^=r,t=l^(o<<1|i>>>31),r=d^(i<<1|o>>>31),e[8]^=t,e[9]^=r,e[18]^=t,e[19]^=r,e[28]^=t,e[29]^=r,e[38]^=t,e[39]^=r,e[48]^=t,e[49]^=r,p=e[0],y=e[1],z=e[11]<<4|e[10]>>>28,V=e[10]<<4|e[11]>>>28,E=e[20]<<3|e[21]>>>29,C=e[21]<<3|e[20]>>>29,ae=e[31]<<9|e[30]>>>23,se=e[30]<<9|e[31]>>>23,q=e[40]<<18|e[41]>>>14,K=e[41]<<18|e[40]>>>14,M=e[2]<<1|e[3]>>>31,B=e[3]<<1|e[2]>>>31,m=e[13]<<12|e[12]>>>20,g=e[12]<<12|e[13]>>>20,W=e[22]<<10|e[23]>>>22,Q=e[23]<<10|e[22]>>>22,R=e[33]<<13|e[32]>>>19,O=e[32]<<13|e[33]>>>19,ce=e[42]<<2|e[43]>>>30,ue=e[43]<<2|e[42]>>>30,ee=e[5]<<30|e[4]>>>2,te=e[4]<<30|e[5]>>>2,D=e[14]<<6|e[15]>>>26,x=e[15]<<6|e[14]>>>26,b=e[25]<<11|e[24]>>>21,v=e[24]<<11|e[25]>>>21,Y=e[34]<<15|e[35]>>>17,X=e[35]<<15|e[34]>>>17,N=e[45]<<29|e[44]>>>3,P=e[44]<<29|e[45]>>>3,k=e[6]<<28|e[7]>>>4,$=e[7]<<28|e[6]>>>4,re=e[17]<<23|e[16]>>>9,ne=e[16]<<23|e[17]>>>9,L=e[26]<<25|e[27]>>>7,U=e[27]<<25|e[26]>>>7,w=e[36]<<21|e[37]>>>11,_=e[37]<<21|e[36]>>>11,J=e[47]<<24|e[46]>>>8,Z=e[46]<<24|e[47]>>>8,H=e[8]<<27|e[9]>>>5,G=e[9]<<27|e[8]>>>5,S=e[18]<<20|e[19]>>>12,A=e[19]<<20|e[18]>>>12,oe=e[29]<<7|e[28]>>>25,ie=e[28]<<7|e[29]>>>25,j=e[38]<<8|e[39]>>>24,F=e[39]<<8|e[38]>>>24,I=e[48]<<14|e[49]>>>18,T=e[49]<<14|e[48]>>>18,e[0]=p^~m&b,e[1]=y^~g&v,e[10]=k^~S&E,e[11]=$^~A&C,e[20]=M^~D&L,e[21]=B^~x&U,e[30]=H^~z&W,e[31]=G^~V&Q,e[40]=ee^~re&oe,e[41]=te^~ne&ie,e[2]=m^~b&w,e[3]=g^~v&_,e[12]=S^~E&R,e[13]=A^~C&O,e[22]=D^~L&j,e[23]=x^~U&F,e[32]=z^~W&Y,e[33]=V^~Q&X,e[42]=re^~oe&ae,e[43]=ne^~ie&se,e[4]=b^~w&I,e[5]=v^~_&T,e[14]=E^~R&N,e[15]=C^~O&P,e[24]=L^~j&q,e[25]=U^~F&K,e[34]=W^~Y&J,e[35]=Q^~X&Z,e[44]=oe^~ae&ce,e[45]=ie^~se&ue,e[6]=w^~I&p,e[7]=_^~T&y,e[16]=R^~N&k,e[17]=O^~P&$,e[26]=j^~q&M,e[27]=F^~K&B,e[36]=Y^~J&H,e[37]=X^~Z&G,e[46]=ae^~ce&ee,e[47]=se^~ue&te,e[8]=I^~p&m,e[9]=T^~y&g,e[18]=N^~k&S,e[19]=P^~$&A,e[28]=q^~M&D,e[29]=K^~B&x,e[38]=J^~H&z,e[39]=Z^~G&V,e[48]=ce^~ee&re,e[49]=ue^~te&ne,e[0]^=RC$1[n],e[1]^=RC$1[n+1]},keccak$1=e=>t=>{var r;if("0x"===t.slice(0,2)){r=[];for(var n=2,o=t.length;n>>25)+n|0)&n|~r&o)+t[1]-389564586|0)<<12|i>>>20)+r|0)&r|~i&n)+t[2]+606105819|0)<<17|o>>>15)+i|0)&i|~o&r)+t[3]-1044525330|0)<<22|n>>>10)+o|0,n=((n+=((o=((o+=((i=((i+=((r=((r+=(n&o|~n&i)+t[4]-176418897|0)<<7|r>>>25)+n|0)&n|~r&o)+t[5]+1200080426|0)<<12|i>>>20)+r|0)&r|~i&n)+t[6]-1473231341|0)<<17|o>>>15)+i|0)&i|~o&r)+t[7]-45705983|0)<<22|n>>>10)+o|0,n=((n+=((o=((o+=((i=((i+=((r=((r+=(n&o|~n&i)+t[8]+1770035416|0)<<7|r>>>25)+n|0)&n|~r&o)+t[9]-1958414417|0)<<12|i>>>20)+r|0)&r|~i&n)+t[10]-42063|0)<<17|o>>>15)+i|0)&i|~o&r)+t[11]-1990404162|0)<<22|n>>>10)+o|0,n=((n+=((o=((o+=((i=((i+=((r=((r+=(n&o|~n&i)+t[12]+1804603682|0)<<7|r>>>25)+n|0)&n|~r&o)+t[13]-40341101|0)<<12|i>>>20)+r|0)&r|~i&n)+t[14]-1502002290|0)<<17|o>>>15)+i|0)&i|~o&r)+t[15]+1236535329|0)<<22|n>>>10)+o|0,n=((n+=((o=((o+=((i=((i+=((r=((r+=(n&i|o&~i)+t[1]-165796510|0)<<5|r>>>27)+n|0)&o|n&~o)+t[6]-1069501632|0)<<9|i>>>23)+r|0)&n|r&~n)+t[11]+643717713|0)<<14|o>>>18)+i|0)&r|i&~r)+t[0]-373897302|0)<<20|n>>>12)+o|0,n=((n+=((o=((o+=((i=((i+=((r=((r+=(n&i|o&~i)+t[5]-701558691|0)<<5|r>>>27)+n|0)&o|n&~o)+t[10]+38016083|0)<<9|i>>>23)+r|0)&n|r&~n)+t[15]-660478335|0)<<14|o>>>18)+i|0)&r|i&~r)+t[4]-405537848|0)<<20|n>>>12)+o|0,n=((n+=((o=((o+=((i=((i+=((r=((r+=(n&i|o&~i)+t[9]+568446438|0)<<5|r>>>27)+n|0)&o|n&~o)+t[14]-1019803690|0)<<9|i>>>23)+r|0)&n|r&~n)+t[3]-187363961|0)<<14|o>>>18)+i|0)&r|i&~r)+t[8]+1163531501|0)<<20|n>>>12)+o|0,n=((n+=((o=((o+=((i=((i+=((r=((r+=(n&i|o&~i)+t[13]-1444681467|0)<<5|r>>>27)+n|0)&o|n&~o)+t[2]-51403784|0)<<9|i>>>23)+r|0)&n|r&~n)+t[7]+1735328473|0)<<14|o>>>18)+i|0)&r|i&~r)+t[12]-1926607734|0)<<20|n>>>12)+o|0,n=((n+=((o=((o+=((i=((i+=((r=((r+=(n^o^i)+t[5]-378558|0)<<4|r>>>28)+n|0)^n^o)+t[8]-2022574463|0)<<11|i>>>21)+r|0)^r^n)+t[11]+1839030562|0)<<16|o>>>16)+i|0)^i^r)+t[14]-35309556|0)<<23|n>>>9)+o|0,n=((n+=((o=((o+=((i=((i+=((r=((r+=(n^o^i)+t[1]-1530992060|0)<<4|r>>>28)+n|0)^n^o)+t[4]+1272893353|0)<<11|i>>>21)+r|0)^r^n)+t[7]-155497632|0)<<16|o>>>16)+i|0)^i^r)+t[10]-1094730640|0)<<23|n>>>9)+o|0,n=((n+=((o=((o+=((i=((i+=((r=((r+=(n^o^i)+t[13]+681279174|0)<<4|r>>>28)+n|0)^n^o)+t[0]-358537222|0)<<11|i>>>21)+r|0)^r^n)+t[3]-722521979|0)<<16|o>>>16)+i|0)^i^r)+t[6]+76029189|0)<<23|n>>>9)+o|0,n=((n+=((o=((o+=((i=((i+=((r=((r+=(n^o^i)+t[9]-640364487|0)<<4|r>>>28)+n|0)^n^o)+t[12]-421815835|0)<<11|i>>>21)+r|0)^r^n)+t[15]+530742520|0)<<16|o>>>16)+i|0)^i^r)+t[2]-995338651|0)<<23|n>>>9)+o|0,n=((n+=((i=((i+=(n^((r=((r+=(o^(n|~i))+t[0]-198630844|0)<<6|r>>>26)+n|0)|~o))+t[7]+1126891415|0)<<10|i>>>22)+r|0)^((o=((o+=(r^(i|~n))+t[14]-1416354905|0)<<15|o>>>17)+i|0)|~r))+t[5]-57434055|0)<<21|n>>>11)+o|0,n=((n+=((i=((i+=(n^((r=((r+=(o^(n|~i))+t[12]+1700485571|0)<<6|r>>>26)+n|0)|~o))+t[3]-1894986606|0)<<10|i>>>22)+r|0)^((o=((o+=(r^(i|~n))+t[10]-1051523|0)<<15|o>>>17)+i|0)|~r))+t[1]-2054922799|0)<<21|n>>>11)+o|0,n=((n+=((i=((i+=(n^((r=((r+=(o^(n|~i))+t[8]+1873313359|0)<<6|r>>>26)+n|0)|~o))+t[15]-30611744|0)<<10|i>>>22)+r|0)^((o=((o+=(r^(i|~n))+t[6]-1560198380|0)<<15|o>>>17)+i|0)|~r))+t[13]+1309151649|0)<<21|n>>>11)+o|0,n=((n+=((i=((i+=(n^((r=((r+=(o^(n|~i))+t[4]-145523070|0)<<6|r>>>26)+n|0)|~o))+t[11]-1120210379|0)<<10|i>>>22)+r|0)^((o=((o+=(r^(i|~n))+t[2]+718787259|0)<<15|o>>>17)+i|0)|~r))+t[9]-343485551|0)<<21|n>>>11)+o|0,e[0]=r+e[0]|0,e[1]=n+e[1]|0,e[2]=o+e[2]|0,e[3]=i+e[3]|0}function n(e){var t,r=[];for(t=0;t<64;t+=4)r[t>>2]=e.charCodeAt(t)+(e.charCodeAt(t+1)<<8)+(e.charCodeAt(t+2)<<16)+(e.charCodeAt(t+3)<<24);return r}function o(e){var t,r=[];for(t=0;t<64;t+=4)r[t>>2]=e[t]+(e[t+1]<<8)+(e[t+2]<<16)+(e[t+3]<<24);return r}function i(e){var t,o,i,a,s,c,u=e.length,l=[1732584193,-271733879,-1732584194,271733878];for(t=64;t<=u;t+=64)r(l,n(e.substring(t-64,t)));for(o=(e=e.substring(t-64)).length,i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],t=0;t>2]|=e.charCodeAt(t)<<(t%4<<3);if(i[t>>2]|=128<<(t%4<<3),t>55)for(r(l,i),t=0;t<16;t+=1)i[t]=0;return a=(a=8*u).toString(16).match(/(.*?)(.{0,8})$/),s=parseInt(a[2],16),c=parseInt(a[1],16)||0,i[14]=s,i[15]=c,r(l,i),l}function a(e){var t,n,i,a,s,c,u=e.length,l=[1732584193,-271733879,-1732584194,271733878];for(t=64;t<=u;t+=64)r(l,o(e.subarray(t-64,t)));for(n=(e=t-64>2]|=e[t]<<(t%4<<3);if(i[t>>2]|=128<<(t%4<<3),t>55)for(r(l,i),t=0;t<16;t+=1)i[t]=0;return a=(a=8*u).toString(16).match(/(.*?)(.{0,8})$/),s=parseInt(a[2],16),c=parseInt(a[1],16)||0,i[14]=s,i[15]=c,r(l,i),l}function s(e){var r,n="";for(r=0;r<4;r+=1)n+=t[e>>8*r+4&15]+t[e>>8*r&15];return n}function c(e){var t;for(t=0;tl?new ArrayBuffer(0):(o=l-u,i=new ArrayBuffer(o),a=new Uint8Array(i),s=new Uint8Array(this,u,o),a.set(s),i)}}(),p.prototype.append=function(e){return this.appendBinary(u(e)),this},p.prototype.appendBinary=function(e){this._buff+=e,this._length+=e.length;var t,o=this._buff.length;for(t=64;t<=o;t+=64)r(this._hash,n(this._buff.substring(t-64,t)));return this._buff=this._buff.substring(t-64),this},p.prototype.end=function(e){var t,r,n=this._buff,o=n.length,i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(t=0;t>2]|=n.charCodeAt(t)<<(t%4<<3);return this._finish(i,o),r=c(this._hash),e&&(r=h(r)),this.reset(),r},p.prototype.reset=function(){return this._buff="",this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},p.prototype.getState=function(){return{buff:this._buff,length:this._length,hash:this._hash.slice()}},p.prototype.setState=function(e){return this._buff=e.buff,this._length=e.length,this._hash=e.hash,this},p.prototype.destroy=function(){delete this._hash,delete this._buff,delete this._length},p.prototype._finish=function(e,t){var n,o,i,a=t;if(e[a>>2]|=128<<(a%4<<3),a>55)for(r(this._hash,e),a=0;a<16;a+=1)e[a]=0;n=(n=8*this._length).toString(16).match(/(.*?)(.{0,8})$/),o=parseInt(n[2],16),i=parseInt(n[1],16)||0,e[14]=o,e[15]=i,r(this._hash,e)},p.hash=function(e,t){return p.hashBinary(u(e),t)},p.hashBinary=function(e,t){var r=c(i(e));return t?h(r):r},p.ArrayBuffer=function(){this.reset()},p.ArrayBuffer.prototype.append=function(e){var t,n=f(this._buff.buffer,e),i=n.length;for(this._length+=e.byteLength,t=64;t<=i;t+=64)r(this._hash,o(n.subarray(t-64,t)));return this._buff=t-64>2]|=n[t]<<(t%4<<3);return this._finish(i,o),r=c(this._hash),e&&(r=h(r)),this.reset(),r},p.ArrayBuffer.prototype.reset=function(){return this._buff=new Uint8Array(0),this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},p.ArrayBuffer.prototype.getState=function(){var e=p.prototype.getState.call(this);return e.buff=d(e.buff),e},p.ArrayBuffer.prototype.setState=function(e){return e.buff=l(e.buff,!0),p.prototype.setState.call(this,e)},p.ArrayBuffer.prototype.destroy=p.prototype.destroy,p.ArrayBuffer.prototype._finish=p.prototype._finish,p.ArrayBuffer.hash=function(e,t){var r=c(a(new Uint8Array(e)));return t?h(r):r},p}()}(sparkMd5);var sparkMd5Exports=sparkMd5.exports;const SparkMD5=getDefaultExportFromCjs$1(sparkMd5Exports),CipherAlgorithm={Aes128Ctr:"AES-128-CTR",Aes128Cbc:"AES-128-CBC"};async function createCipheriv(e,t,r,n){let o;switch(e.toUpperCase()){case CipherAlgorithm.Aes128Ctr:o={name:"AES-CTR",counter:r,length:128};break;case CipherAlgorithm.Aes128Cbc:o={name:"AES-CBC",iv:r};break;default:throw new Error("(BUG) non-exhaustive switch statement for CipherAlgorithm")}const i=await window.crypto.subtle.importKey("raw",t,o.name,!1,["encrypt"]);return new Uint8Array(await window.crypto.subtle.encrypt(o,i,n))}async function createDecipheriv(e,t,r,n){let o;switch(e.toUpperCase()){case CipherAlgorithm.Aes128Ctr:o={name:"AES-CTR",counter:r,length:128};break;case CipherAlgorithm.Aes128Cbc:o={name:"AES-CBC",iv:r};break;default:throw new Error("(BUG) non-exhaustive switch statement for CipherAlgorithm")}const i=await window.crypto.subtle.importKey("raw",t,o.name,!1,["decrypt"]);let a;try{a=await window.crypto.subtle.decrypt(o,i,n)}catch(s){const e=null!=s&&null!=s.message?s.message:"";throw new Error(`Unable to decrypt: ${e}`)}return new Uint8Array(a)}async function messageDigest(e,t){const r=encode$6(e),n=decode$8(t).slice(0,8),o=SparkMD5.ArrayBuffer.hash(Buffer$1$1.concat([Buffer$1$1.from(r),Buffer$1$1.from(n)]));return Promise.resolve(decode$8(o))}async function deriveKey(e,t,r,n,o){const i="string"==typeof t?encode$6(t):t,a="string"==typeof r?encode$6(r):r;try{const t=await window.crypto.subtle.importKey("raw",i,{name:"PBKDF2",hash:e},!1,["deriveBits"]);return new Uint8Array(await window.crypto.subtle.deriveBits({name:"PBKDF2",hash:e,salt:a,iterations:n},t,o<<3))}catch{throw new Error("(BUG) Non-Exhaustive switch statement for algorithms")}}const HMAC_SHA256="hmac-sha256";async function createKeystore(e,t){const r=262144,n=await bytesAsync(32),o=await deriveKey(HashAlgorithm.Sha256,t,n,r,32),i=await bytesAsync(16),a=await createCipheriv(CipherAlgorithm.Aes128Ctr,o.slice(0,16),i,e),s=await hash$3(HashAlgorithm.Sha384,o.slice(16),a),c={version:1,crypto:{ciphertext:encode$7(a),cipherparams:{iv:encode$7(i)},cipher:CipherAlgorithm.Aes128Ctr,kdf:"pbkdf2",kdfparams:{dkLen:32,salt:encode$7(n),c:r,prf:HMAC_SHA256},mac:encode$7(s)}};return encode$6(JSON.stringify(c))}async function loadKeystore(e,t){const r=JSON.parse(decode$7(e));if(1!==r.version)throw new BadKeyError(`unsupported keystore version: ${r.version}`);const{ciphertext:n,cipherparams:{iv:o},cipher:i,kdf:a,kdfparams:{dkLen:s,salt:c,c:u,prf:l},mac:d}=r.crypto;if("pbkdf2"!==a)throw new BadKeyError(`unsupported key derivation function:" + ${a}`);if(l!==HMAC_SHA256)throw new BadKeyError(`unsupported key derivation hash function: ${l}`);const f=decode$8(c),h=decode$8(o),p=decode$8(n),y=await deriveKey(HashAlgorithm.Sha256,t,f,u,s),m=decode$8(d),g=await hash$3(HashAlgorithm.Sha384,y.slice(16),p);if(!m.every(((e,t)=>e===g[t])))throw new BadKeyError("HMAC mismatch; passphrase is incorrect");return createDecipheriv(i,y.slice(0,16),h,p)}function decode$6(e){return decodeIncremental(e)[0]}function decodeIncremental(e){const[t,r]=decodeLength(e.subarray(1)),n=r.subarray(0,t),o=r.subarray(t);switch(e[0]){case 2:return[{int:decodeInt(n)},o];case 4:return[{bytes:n},o];case 5:return[{},o];case 6:return[{ident:decodeObjectIdent(n)},o];case 48:return[{seq:decodeSeq(n)},o];default:throw new Error(`unsupported DER type tag: ${e[0]}`)}}function decodeSeq(e){let t=e;const r=[];for(;0!==t.length;){const[e,n]=decodeIncremental(t);r.push(e),t=n}return r}function decodeObjectIdent(e){const t=[Math.floor(e[0]/40),e[0]%40];let r=0;for(const n of e.subarray(1))r*=128,n<128?(r+=n,t.push(r),r=0):r+=127&n;return t.join(".")}function decodeLength(e){if(e[0]<128)return[e[0],e.subarray(1)];const t=e[0]-128,r=e.subarray(1,t+1),n=e.subarray(t+1);return[decodeInt(r),n]}function decodeInt(e){const t=e.length;if(1===t)return e[0];let r=new DataView(e.buffer,e.byteOffset,e.byteLength);if(2===t)return r.getUint16(0,!1);if(3===t){const t=Uint8Array.of(0,...e);r=new DataView(t.buffer,t.byteOffset,t.byteLength)}if(t>4)throw new Error(`unsupported DER integer length of ${t} bytes`);return r.getUint32(0,!1)}class AlgorithmIdentifier{constructor(e){if(!("seq"in e&&e.seq.length>=1&&"ident"in e.seq[0]))throw new Error(`error parsing AlgorithmIdentifier from ${JSON.stringify(e)}`);this.algIdent=e.seq[0].ident,this.parameters=e.seq[1]}toString(){return JSON.stringify(this)}}class PBES2Params{constructor(e){if(!("seq"in e)||2!==e.seq.length)throw new Error(`error parsing PBES2Params from ${JSON.stringify(e)}`);this.kdf=new AlgorithmIdentifier(e.seq[0]),this.encScheme=new AlgorithmIdentifier(e.seq[1])}}class PBKDF2Params{constructor(e){if("seq"in e&&e.seq.length>=2&&"bytes"in e.seq[0]&&"int"in e.seq[1]&&(this.salt=e.seq[0].bytes,this.iterCount=e.seq[1].int,e.seq.length>2))return"seq"in e.seq[2]?void(this.prf=new AlgorithmIdentifier(e.seq[2])):("int"in e.seq[2]&&(this.keyLength=e.seq[2].int),void(4===e.seq.length&&(this.prf=new AlgorithmIdentifier(e.seq[3]))));throw new Error(`error parsing PBKDF2Params from ${JSON.stringify(e)}`)}}class PrivateKeyInfo{constructor(e){if(!("seq"in e)||3!==e.seq.length)throw new Error(`error parsing PrivateKeyInfo from ${JSON.stringify(e)}`);if(!("int"in e.seq[0])||0!==e.seq[0].int)throw new Error(`expected version = 0, got ${JSON.stringify(e.seq[0])}`);if(this.version=0,this.algId=new AlgorithmIdentifier(e.seq[1]),!("bytes"in e.seq[2]))throw new Error(`expected octet string as 3rd element, got ${JSON.stringify(e.seq[2])}`);this.privateKey=e.seq[2].bytes}static parse(e){return new PrivateKeyInfo(decode$6(e))}}class EncryptedPrivateKeyInfo{constructor(e){if("seq"in e&&2===e.seq.length&&"bytes"in e.seq[1])return this.algId=new AlgorithmIdentifier(e.seq[0]),void(this.data=e.seq[1].bytes);throw new Error(`error parsing EncryptedPrivateKeyInfo from ${JSON.stringify(e)}`)}static parse(e){return new EncryptedPrivateKeyInfo(decode$6(e))}async decrypt(e){if("1.2.840.113549.1.5.13"!==this.algId.algIdent||!this.algId.parameters)throw new Error(`unsupported key encryption algorithm: ${this.algId.toString()}`);const t=new PBES2Params(this.algId.parameters);if("1.2.840.113549.1.5.12"!==t.kdf.algIdent||!t.kdf.parameters)throw new Error(`unsupported key derivation function: ${t.kdf.toString()}`);const r=new PBKDF2Params(t.kdf.parameters);if(!r.prf)throw new Error("unsupported PRF HMAC-SHA-1");if("1.2.840.113549.2.9"!==r.prf.algIdent)throw new Error(`unsupported PRF ${r.prf.toString()}`);if("2.16.840.1.101.3.4.1.2"!==t.encScheme.algIdent)throw new Error(`unsupported encryption scheme: ${t.encScheme.toString()}`);if(!t.encScheme.parameters||!("bytes"in t.encScheme.parameters))throw new Error(`expected IV as bytes for AES-128-CBC, got: ${JSON.stringify(t.encScheme.parameters)}`);const n=r.keyLength||16,o=t.encScheme.parameters.bytes,i=await deriveKey(HashAlgorithm.Sha256,e,r.salt,r.iterCount,n),a=await createDecipheriv(CipherAlgorithm.Aes128Cbc,i,o,this.data);return PrivateKeyInfo.parse(a)}}function decode$5(e){return Uint8Array.from(Buffer$1$1.from(e,"base64"))} +var wasm=null;try{wasm=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch{}function Long(e,t,r){this.low=0|e,this.high=0|t,this.unsigned=!!r}function isLong(e){return!0===(e&&e.__isLong__)}function ctz32(e){var t=Math.clz32(e&-e);return e?31-t:t}Long.prototype.__isLong__,Object.defineProperty(Long.prototype,"__isLong__",{value:!0}),Long.isLong=isLong;var INT_CACHE={},UINT_CACHE={};function fromInt(e,t){var r,n,o;return t?(o=0<=(e>>>=0)&&e<256)&&(n=UINT_CACHE[e])?n:(r=fromBits(e,0,!0),o&&(UINT_CACHE[e]=r),r):(o=-128<=(e|=0)&&e<128)&&(n=INT_CACHE[e])?n:(r=fromBits(e,e<0?-1:0,!1),o&&(INT_CACHE[e]=r),r)}function fromNumber(e,t){if(isNaN(e))return t?UZERO:ZERO;if(t){if(e<0)return UZERO;if(e>=TWO_PWR_64_DBL)return MAX_UNSIGNED_VALUE}else{if(e<=-TWO_PWR_63_DBL)return MIN_VALUE;if(e+1>=TWO_PWR_63_DBL)return MAX_VALUE}return e<0?fromNumber(-e,t).neg():fromBits(e%TWO_PWR_32_DBL|0,e/TWO_PWR_32_DBL|0,t)}function fromBits(e,t,r){return new Long(e,t,r)}Long.fromInt=fromInt,Long.fromNumber=fromNumber,Long.fromBits=fromBits;var pow_dbl=Math.pow;function fromString$3(e,t,r){if(0===e.length)throw Error("empty string");if("number"==typeof t?(r=t,t=!1):t=!!t,"NaN"===e||"Infinity"===e||"+Infinity"===e||"-Infinity"===e)return t?UZERO:ZERO;if((r=r||10)<2||360)throw Error("interior hyphen");if(0===n)return fromString$3(e.substring(1),t,r).neg();for(var o=fromNumber(pow_dbl(r,8)),i=ZERO,s=0;s>>0:this.low},LongPrototype.toNumber=function(){return this.unsigned?(this.high>>>0)*TWO_PWR_32_DBL+(this.low>>>0):this.high*TWO_PWR_32_DBL+(this.low>>>0)},LongPrototype.toString=function(e){if((e=e||10)<2||36>>0).toString(e);if((i=a).isZero())return c+s;for(;c.length<6;)c="0"+c;s=""+c+s}},LongPrototype.getHighBits=function(){return this.high},LongPrototype.getHighBitsUnsigned=function(){return this.high>>>0},LongPrototype.getLowBits=function(){return this.low},LongPrototype.getLowBitsUnsigned=function(){return this.low>>>0},LongPrototype.getNumBitsAbs=function(){if(this.isNegative())return this.eq(MIN_VALUE)?64:this.neg().getNumBitsAbs();for(var e=0!=this.high?this.high:this.low,t=31;t>0&&!(e&1<>21;return!e||!this.unsigned&&(-1===e&&!(0===this.low&&-2097152===this.high))},LongPrototype.isZero=function(){return 0===this.high&&0===this.low},LongPrototype.eqz=LongPrototype.isZero,LongPrototype.isNegative=function(){return!this.unsigned&&this.high<0},LongPrototype.isPositive=function(){return this.unsigned||this.high>=0},LongPrototype.isOdd=function(){return!(1&~this.low)},LongPrototype.isEven=function(){return!(1&this.low)},LongPrototype.equals=function(e){return isLong(e)||(e=fromValue(e)),(this.unsigned===e.unsigned||this.high>>>31!=1||e.high>>>31!=1)&&(this.high===e.high&&this.low===e.low)},LongPrototype.eq=LongPrototype.equals,LongPrototype.notEquals=function(e){return!this.eq(e)},LongPrototype.neq=LongPrototype.notEquals,LongPrototype.ne=LongPrototype.notEquals,LongPrototype.lessThan=function(e){return this.comp(e)<0},LongPrototype.lt=LongPrototype.lessThan,LongPrototype.lessThanOrEqual=function(e){return this.comp(e)<=0},LongPrototype.lte=LongPrototype.lessThanOrEqual,LongPrototype.le=LongPrototype.lessThanOrEqual,LongPrototype.greaterThan=function(e){return this.comp(e)>0},LongPrototype.gt=LongPrototype.greaterThan,LongPrototype.greaterThanOrEqual=function(e){return this.comp(e)>=0},LongPrototype.gte=LongPrototype.greaterThanOrEqual,LongPrototype.ge=LongPrototype.greaterThanOrEqual,LongPrototype.compare=function(e){if(isLong(e)||(e=fromValue(e)),this.eq(e))return 0;var t=this.isNegative(),r=e.isNegative();return t&&!r?-1:!t&&r?1:this.unsigned?e.high>>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1:this.sub(e).isNegative()?-1:1},LongPrototype.comp=LongPrototype.compare,LongPrototype.negate=function(){return!this.unsigned&&this.eq(MIN_VALUE)?MIN_VALUE:this.not().add(ONE)},LongPrototype.neg=LongPrototype.negate,LongPrototype.add=function(e){isLong(e)||(e=fromValue(e));var t=this.high>>>16,r=65535&this.high,n=this.low>>>16,o=65535&this.low,i=e.high>>>16,s=65535&e.high,a=e.low>>>16,c=0,u=0,l=0,d=0;return l+=(d+=o+(65535&e.low))>>>16,u+=(l+=n+a)>>>16,c+=(u+=r+s)>>>16,c+=t+i,fromBits((l&=65535)<<16|(d&=65535),(c&=65535)<<16|(u&=65535),this.unsigned)},LongPrototype.subtract=function(e){return isLong(e)||(e=fromValue(e)),this.add(e.neg())},LongPrototype.sub=LongPrototype.subtract,LongPrototype.multiply=function(e){if(this.isZero())return this;if(isLong(e)||(e=fromValue(e)),wasm)return fromBits(wasm.mul(this.low,this.high,e.low,e.high),wasm.get_high(),this.unsigned);if(e.isZero())return this.unsigned?UZERO:ZERO;if(this.eq(MIN_VALUE))return e.isOdd()?MIN_VALUE:ZERO;if(e.eq(MIN_VALUE))return this.isOdd()?MIN_VALUE:ZERO;if(this.isNegative())return e.isNegative()?this.neg().mul(e.neg()):this.neg().mul(e).neg();if(e.isNegative())return this.mul(e.neg()).neg();if(this.lt(TWO_PWR_24)&&e.lt(TWO_PWR_24))return fromNumber(this.toNumber()*e.toNumber(),this.unsigned);var t=this.high>>>16,r=65535&this.high,n=this.low>>>16,o=65535&this.low,i=e.high>>>16,s=65535&e.high,a=e.low>>>16,c=65535&e.low,u=0,l=0,d=0,h=0;return d+=(h+=o*c)>>>16,l+=(d+=n*c)>>>16,d&=65535,l+=(d+=o*a)>>>16,u+=(l+=r*c)>>>16,l&=65535,u+=(l+=n*a)>>>16,l&=65535,u+=(l+=o*s)>>>16,u+=t*c+r*a+n*s+o*i,fromBits((d&=65535)<<16|(h&=65535),(u&=65535)<<16|(l&=65535),this.unsigned)},LongPrototype.mul=LongPrototype.multiply,LongPrototype.divide=function(e){if(isLong(e)||(e=fromValue(e)),e.isZero())throw Error("division by zero");var t,r,n;if(wasm)return this.unsigned||-2147483648!==this.high||-1!==e.low||-1!==e.high?fromBits((this.unsigned?wasm.div_u:wasm.div_s)(this.low,this.high,e.low,e.high),wasm.get_high(),this.unsigned):this;if(this.isZero())return this.unsigned?UZERO:ZERO;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return UZERO;if(e.gt(this.shru(1)))return UONE;n=UZERO}else{if(this.eq(MIN_VALUE))return e.eq(ONE)||e.eq(NEG_ONE)?MIN_VALUE:e.eq(MIN_VALUE)?ONE:(t=this.shr(1).div(e).shl(1)).eq(ZERO)?e.isNegative()?ONE:NEG_ONE:(r=this.sub(e.mul(t)),n=t.add(r.div(e)));if(e.eq(MIN_VALUE))return this.unsigned?UZERO:ZERO;if(this.isNegative())return e.isNegative()?this.neg().div(e.neg()):this.neg().div(e).neg();if(e.isNegative())return this.div(e.neg()).neg();n=ZERO}for(r=this;r.gte(e);){t=Math.max(1,Math.floor(r.toNumber()/e.toNumber()));for(var o=Math.ceil(Math.log(t)/Math.LN2),i=o<=48?1:pow_dbl(2,o-48),s=fromNumber(t),a=s.mul(e);a.isNegative()||a.gt(r);)a=(s=fromNumber(t-=i,this.unsigned)).mul(e);s.isZero()&&(s=ONE),n=n.add(s),r=r.sub(a)}return n},LongPrototype.div=LongPrototype.divide,LongPrototype.modulo=function(e){return isLong(e)||(e=fromValue(e)),wasm?fromBits((this.unsigned?wasm.rem_u:wasm.rem_s)(this.low,this.high,e.low,e.high),wasm.get_high(),this.unsigned):this.sub(this.div(e).mul(e))},LongPrototype.mod=LongPrototype.modulo,LongPrototype.rem=LongPrototype.modulo,LongPrototype.not=function(){return fromBits(~this.low,~this.high,this.unsigned)},LongPrototype.countLeadingZeros=function(){return this.high?Math.clz32(this.high):Math.clz32(this.low)+32},LongPrototype.clz=LongPrototype.countLeadingZeros,LongPrototype.countTrailingZeros=function(){return this.low?ctz32(this.low):ctz32(this.high)+32},LongPrototype.ctz=LongPrototype.countTrailingZeros,LongPrototype.and=function(e){return isLong(e)||(e=fromValue(e)),fromBits(this.low&e.low,this.high&e.high,this.unsigned)},LongPrototype.or=function(e){return isLong(e)||(e=fromValue(e)),fromBits(this.low|e.low,this.high|e.high,this.unsigned)},LongPrototype.xor=function(e){return isLong(e)||(e=fromValue(e)),fromBits(this.low^e.low,this.high^e.high,this.unsigned)},LongPrototype.shiftLeft=function(e){return isLong(e)&&(e=e.toInt()),0==(e&=63)?this:e<32?fromBits(this.low<>>32-e,this.unsigned):fromBits(0,this.low<>>e|this.high<<32-e,this.high>>e,this.unsigned):fromBits(this.high>>e-32,this.high>=0?0:-1,this.unsigned)},LongPrototype.shr=LongPrototype.shiftRight,LongPrototype.shiftRightUnsigned=function(e){return isLong(e)&&(e=e.toInt()),0==(e&=63)?this:e<32?fromBits(this.low>>>e|this.high<<32-e,this.high>>>e,this.unsigned):fromBits(32===e?this.high:this.high>>>e-32,0,this.unsigned)},LongPrototype.shru=LongPrototype.shiftRightUnsigned,LongPrototype.shr_u=LongPrototype.shiftRightUnsigned,LongPrototype.rotateLeft=function(e){var t;return isLong(e)&&(e=e.toInt()),0==(e&=63)?this:32===e?fromBits(this.high,this.low,this.unsigned):e<32?(t=32-e,fromBits(this.low<>>t,this.high<>>t,this.unsigned)):(t=32-(e-=32),fromBits(this.high<>>t,this.low<>>t,this.unsigned))},LongPrototype.rotl=LongPrototype.rotateLeft,LongPrototype.rotateRight=function(e){var t;return isLong(e)&&(e=e.toInt()),0==(e&=63)?this:32===e?fromBits(this.high,this.low,this.unsigned):e<32?(t=32-e,fromBits(this.high<>>e,this.low<>>e,this.unsigned)):(t=32-(e-=32),fromBits(this.low<>>e,this.high<>>e,this.unsigned))},LongPrototype.rotr=LongPrototype.rotateRight,LongPrototype.toSigned=function(){return this.unsigned?fromBits(this.low,this.high,!1):this},LongPrototype.toUnsigned=function(){return this.unsigned?this:fromBits(this.low,this.high,!0)},LongPrototype.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()},LongPrototype.toBytesLE=function(){var e=this.high,t=this.low;return[255&t,t>>>8&255,t>>>16&255,t>>>24,255&e,e>>>8&255,e>>>16&255,e>>>24]},LongPrototype.toBytesBE=function(){var e=this.high,t=this.low;return[e>>>24,e>>>16&255,e>>>8&255,255&e,t>>>24,t>>>16&255,t>>>8&255,255&t]},Long.fromBytes=function(e,t,r){return r?Long.fromBytesLE(e,t):Long.fromBytesBE(e,t)},Long.fromBytesLE=function(e,t){return new Long(e[0]|e[1]<<8|e[2]<<16|e[3]<<24,e[4]|e[5]<<8|e[6]<<16|e[7]<<24,t)},Long.fromBytesBE=function(e,t){return new Long(e[4]<<24|e[5]<<16|e[6]<<8|e[7],e[0]<<24|e[1]<<16|e[2]<<8|e[3],t)},"function"==typeof BigInt&&(Long.fromBigInt=function(e,t){return fromBits(Number(BigInt.asIntN(32,e)),Number(BigInt.asIntN(32,e>>BigInt(32))),t)},Long.fromValue=function(e,t){return"bigint"==typeof e?Long.fromBigInt(e,t):fromValue(e,t)},LongPrototype.toBigInt=function(){var e=BigInt(this.low>>>0);return BigInt(this.unsigned?this.high>>>0:this.high)<f?y.c=y.e=null:e.e=10;l/=10,a++);return void(a>f?y.c=y.e=null:(y.e=a,y.c=[e]))}m=String(e)}else{if(!isNumeric.test(m=String(e)))return n(y,m,d);y.s=45==m.charCodeAt(0)?(m=m.slice(1),-1):1}(a=m.indexOf("."))>-1&&(m=m.replace(".","")),(l=m.search(/e/i))>0?(a<0&&(a=l),a+=+m.slice(l+1),m=m.substring(0,l)):a<0&&(a=m.length)}else{if(intCheck(t,2,b.length,"Base"),10==t&&w)return k(y=new _(e),c+y.e+1,u);if(m=String(e),d="number"==typeof e){if(0*e!=0)return n(y,m,d,t);if(y.s=1/e<0?(m=m.slice(1),-1):1,_.DEBUG&&m.replace(/^0\.0*|\./,"").length>15)throw Error(tooManyDigits+e)}else y.s=45===m.charCodeAt(0)?(m=m.slice(1),-1):1;for(o=b.slice(0,t),a=l=0,p=m.length;la){a=p;continue}}else if(!s&&(m==m.toUpperCase()&&(m=m.toLowerCase())||m==m.toLowerCase()&&(m=m.toUpperCase()))){s=!0,l=-1,a=0;continue}return n(y,String(e),d,t)}d=!1,(a=(m=r(m,t,10,y.s)).indexOf("."))>-1?m=m.replace(".",""):a=m.length}for(l=0;48===m.charCodeAt(l);l++);for(p=m.length;48===m.charCodeAt(--p););if(m=m.slice(l,++p)){if(p-=l,d&&_.DEBUG&&p>15&&(e>MAX_SAFE_INTEGER$1||e!==mathfloor(e)))throw Error(tooManyDigits+y.s*e);if((a=a-l-1)>f)y.c=y.e=null;else if(a=d)?toExponential(c,s):toFixedPoint(c,s,"0");else if(i=(e=k(new _(e),t,r)).e,a=(c=coeffToString(e.c)).length,1==n||2==n&&(t<=i||i<=l)){for(;aa){if(--t>0)for(c+=".";t--;c+="0");}else if((t+=i-a)>0)for(i+1==a&&(c+=".");t--;c+="0");return e.s<0&&o?"-"+c:c}function $(e,t){for(var r,n,o=1,i=new _(e[0]);o=10;o/=10,n++);return(r=n+r*LOG_BASE-1)>f?e.c=e.e=null:r=10;a/=10,o++);if((i=t-o)<0)i+=LOG_BASE,s=t,c=d[u=0],l=mathfloor(c/p[o-s-1]%10);else if((u=mathceil((i+1)/LOG_BASE))>=d.length){if(!n)break e;for(;d.length<=u;d.push(0));c=l=0,o=1,s=(i%=LOG_BASE)-LOG_BASE+1}else{for(c=a=d[u],o=1;a>=10;a/=10,o++);l=(s=(i%=LOG_BASE)-LOG_BASE+o)<0?0:mathfloor(c/p[o-s-1]%10)}if(n=n||t<0||null!=d[u+1]||(s<0?c:c%p[o-s-1]),n=r<4?(l||n)&&(0==r||r==(e.s<0?3:2)):l>5||5==l&&(4==r||n||6==r&&(i>0?s>0?c/p[o-s]:0:d[u-1])%10&1||r==(e.s<0?8:7)),t<1||!d[0])return d.length=0,n?(t-=e.e+1,d[0]=p[(LOG_BASE-t%LOG_BASE)%LOG_BASE],e.e=-t||0):d[0]=e.e=0,e;if(0==i?(d.length=u,a=1,u--):(d.length=u+1,a=p[LOG_BASE-i],d[u]=s>0?mathfloor(c/p[o-s]%p[s])*a:0),n)for(;;){if(0==u){for(i=1,s=d[0];s>=10;s/=10,i++);for(s=d[0]+=a,a=1;s>=10;s/=10,a++);i!=a&&(e.e++,d[0]==BASE&&(d[0]=1));break}if(d[u]+=a,d[u]!=BASE)break;d[u--]=0,a=1}for(i=d.length;0===d[--i];d.pop());}e.e>f?e.c=e.e=null:e.e=d?toExponential(t,r):toFixedPoint(t,r,"0"),e.s<0?"-"+t:t)}return _.clone=clone,_.ROUND_UP=0,_.ROUND_DOWN=1,_.ROUND_CEIL=2,_.ROUND_FLOOR=3,_.ROUND_HALF_UP=4,_.ROUND_HALF_DOWN=5,_.ROUND_HALF_EVEN=6,_.ROUND_HALF_CEIL=7,_.ROUND_HALF_FLOOR=8,_.EUCLID=9,_.config=_.set=function(e){var t,r;if(null!=e){if("object"!=typeof e)throw Error(bignumberError+"Object expected: "+e);if(e.hasOwnProperty(t="DECIMAL_PLACES")&&(intCheck(r=e[t],0,MAX,t),c=r),e.hasOwnProperty(t="ROUNDING_MODE")&&(intCheck(r=e[t],0,8,t),u=r),e.hasOwnProperty(t="EXPONENTIAL_AT")&&((r=e[t])&&r.pop?(intCheck(r[0],-MAX,0,t),intCheck(r[1],0,MAX,t),l=r[0],d=r[1]):(intCheck(r,-MAX,MAX,t),l=-(d=r<0?-r:r))),e.hasOwnProperty(t="RANGE"))if((r=e[t])&&r.pop)intCheck(r[0],-MAX,-1,t),intCheck(r[1],1,MAX,t),h=r[0],f=r[1];else{if(intCheck(r,-MAX,MAX,t),!r)throw Error(bignumberError+t+" cannot be zero: "+r);h=-(f=r<0?-r:r)}if(e.hasOwnProperty(t="CRYPTO")){if((r=e[t])!==!!r)throw Error(bignumberError+t+" not true or false: "+r);if(r){if("undefined"==typeof crypto||!crypto||!crypto.getRandomValues&&!crypto.randomBytes)throw p=!r,Error(bignumberError+"crypto unavailable");p=r}else p=r}if(e.hasOwnProperty(t="MODULO_MODE")&&(intCheck(r=e[t],0,9,t),m=r),e.hasOwnProperty(t="POW_PRECISION")&&(intCheck(r=e[t],0,MAX,t),y=r),e.hasOwnProperty(t="FORMAT")){if("object"!=typeof(r=e[t]))throw Error(bignumberError+t+" not an object: "+r);g=r}if(e.hasOwnProperty(t="ALPHABET")){if("string"!=typeof(r=e[t])||/^.?$|[+\-.\s]|(.).*\1/.test(r))throw Error(bignumberError+t+" invalid: "+r);w="0123456789"==r.slice(0,10),b=r}}return{DECIMAL_PLACES:c,ROUNDING_MODE:u,EXPONENTIAL_AT:[l,d],RANGE:[h,f],CRYPTO:p,MODULO_MODE:m,POW_PRECISION:y,FORMAT:g,ALPHABET:b}},_.isBigNumber=function(e){if(!e||!0!==e._isBigNumber)return!1;if(!_.DEBUG)return!0;var t,r,n=e.c,o=e.e,i=e.s;e:if("[object Array]"=={}.toString.call(n)){if((1===i||-1===i)&&o>=-MAX&&o<=MAX&&o===mathfloor(o)){if(0===n[0]){if(0===o&&1===n.length)return!0;break e}if((t=(o+1)%LOG_BASE)<1&&(t+=LOG_BASE),String(n[0]).length==t){for(t=0;t=BASE||r!==mathfloor(r))break e;if(0!==r)return!0}}}else if(null===n&&null===o&&(null===i||1===i||-1===i))return!0;throw Error(bignumberError+"Invalid BigNumber: "+e)},_.maximum=_.max=function(){return $(arguments,-1)},_.minimum=_.min=function(){return $(arguments,1)},_.random=(o=9007199254740992,i=Math.random()*o&2097151?function(){return mathfloor(Math.random()*o)}:function(){return 8388608*(1073741824*Math.random()|0)+(8388608*Math.random()|0)},function(e){var t,r,n,o,s,u=0,l=[],d=new _(a);if(null==e?e=c:intCheck(e,0,MAX),o=mathceil(e/LOG_BASE),p)if(crypto.getRandomValues){for(t=crypto.getRandomValues(new Uint32Array(o*=2));u>>11))>=9e15?(r=crypto.getRandomValues(new Uint32Array(2)),t[u]=r[0],t[u+1]=r[1]):(l.push(s%1e14),u+=2);u=o/2}else{if(!crypto.randomBytes)throw p=!1,Error(bignumberError+"crypto unavailable");for(t=crypto.randomBytes(o*=7);u=9e15?crypto.randomBytes(7).copy(t,u):(l.push(s%1e14),u+=7);u=o/7}if(!p)for(;u=10;s/=10,u++);ur-1&&(null==s[o+1]&&(s[o+1]=0),s[o+1]+=s[o]/r|0,s[o]%=r)}return s.reverse()}return function(n,o,i,s,a){var l,d,h,f,p,m,g,w,v=n.indexOf("."),$=c,I=u;for(v>=0&&(f=y,y=0,n=n.replace(".",""),m=(w=new _(o)).pow(n.length-v),y=f,w.c=r(toFixedPoint(coeffToString(m.c),m.e,"0"),10,i,e),w.e=w.c.length),h=f=(g=r(n,o,i,a?(l=b,e):(l=e,b))).length;0==g[--f];g.pop());if(!g[0])return l.charAt(0);if(v<0?--h:(m.c=g,m.e=h,m.s=s,g=(m=t(m,w,$,I,i)).c,p=m.r,h=m.e),v=g[d=h+$+1],f=i/2,p=p||d<0||null!=g[d+1],p=I<4?(null!=v||p)&&(0==I||I==(m.s<0?3:2)):v>f||v==f&&(4==I||p||6==I&&1&g[d-1]||I==(m.s<0?8:7)),d<1||!g[0])n=p?toFixedPoint(l.charAt(1),-$,l.charAt(0)):l.charAt(0);else{if(g.length=d,p)for(--i;++g[--d]>i;)g[d]=0,d||(++h,g=[1].concat(g));for(f=g.length;!g[--f];);for(v=0,n="";v<=f;n+=l.charAt(g[v++]));n=toFixedPoint(n,h,l.charAt(0))}return n}}(),t=function(){function e(e,t,r){var n,o,i,s,a=0,c=e.length,u=t%SQRT_BASE,l=t/SQRT_BASE|0;for(e=e.slice();c--;)a=((o=u*(i=e[c]%SQRT_BASE)+(n=l*i+(s=e[c]/SQRT_BASE|0)*u)%SQRT_BASE*SQRT_BASE+a)/r|0)+(n/SQRT_BASE|0)+l*s,e[c]=o%r;return a&&(e=[a].concat(e)),e}function t(e,t,r,n){var o,i;if(r!=n)i=r>n?1:-1;else for(o=i=0;ot[o]?1:-1;break}return i}function r(e,t,r,n){for(var o=0;r--;)e[r]-=o,o=e[r]1;e.splice(0,1));}return function(n,o,i,s,a){var c,u,l,d,h,f,p,m,y,g,b,w,v,$,I,A,S,E=n.s==o.s?1:-1,T=n.c,P=o.c;if(!(T&&T[0]&&P&&P[0]))return new _(n.s&&o.s&&(T?!P||T[0]!=P[0]:P)?T&&0==T[0]||!P?0*E:E/0:NaN);for(y=(m=new _(E)).c=[],E=i+(u=n.e-o.e)+1,a||(a=BASE,u=bitFloor(n.e/LOG_BASE)-bitFloor(o.e/LOG_BASE),E=E/LOG_BASE|0),l=0;P[l]==(T[l]||0);l++);if(P[l]>(T[l]||0)&&u--,E<0)y.push(1),d=!0;else{for($=T.length,A=P.length,l=0,E+=2,(h=mathfloor(a/(P[0]+1)))>1&&(P=e(P,h,a),T=e(T,h,a),A=P.length,$=T.length),v=A,b=(g=T.slice(0,A)).length;b=a/2&&I++;do{if(h=0,(c=t(P,g,A,b))<0){if(w=g[0],A!=b&&(w=w*a+(g[1]||0)),(h=mathfloor(w/I))>1)for(h>=a&&(h=a-1),p=(f=e(P,h,a)).length,b=g.length;1==t(f,g,p,b);)h--,r(f,A=10;E/=10,l++);k(m,i+(m.e=l+u*LOG_BASE-1)+1,s,d)}else m.e=u,m.r=+d;return m}}(),n=function(){var e=/^(-?)0([xbo])(?=\w[\w.]*$)/i,t=/^([^.]+)\.$/,r=/^\.([^.]+)$/,n=/^-?(Infinity|NaN)$/,o=/^\s*\+(?=[\w.])|^\s+|\s+$/g;return function(i,s,a,c){var u,l=a?s:s.replace(o,"");if(n.test(l))i.s=isNaN(l)?null:l<0?-1:1;else{if(!a&&(l=l.replace(e,(function(e,t,r){return u="x"==(r=r.toLowerCase())?16:"b"==r?2:8,c&&c!=u?e:t})),c&&(u=c,l=l.replace(t,"$1").replace(r,"0.$1")),s!=l))return new _(l,u);if(_.DEBUG)throw Error(bignumberError+"Not a"+(c?" base "+c:"")+" number: "+s);i.s=null}i.c=i.e=null}}(),s.absoluteValue=s.abs=function(){var e=new _(this);return e.s<0&&(e.s=1),e},s.comparedTo=function(e,t){return compare$1(this,new _(e,t))},s.decimalPlaces=s.dp=function(e,t){var r,n,o,i=this;if(null!=e)return intCheck(e,0,MAX),null==t?t=u:intCheck(t,0,8),k(new _(i),e+i.e+1,t);if(!(r=i.c))return null;if(n=((o=r.length-1)-bitFloor(this.e/LOG_BASE))*LOG_BASE,o=r[o])for(;o%10==0;o/=10,n--);return n<0&&(n=0),n},s.dividedBy=s.div=function(e,r){return t(this,new _(e,r),c,u)},s.dividedToIntegerBy=s.idiv=function(e,r){return t(this,new _(e,r),0,1)},s.exponentiatedBy=s.pow=function(e,t){var r,n,o,i,s,c,l,d,h=this;if((e=new _(e)).c&&!e.isInteger())throw Error(bignumberError+"Exponent not an integer: "+A(e));if(null!=t&&(t=new _(t)),s=e.e>14,!h.c||!h.c[0]||1==h.c[0]&&!h.e&&1==h.c.length||!e.c||!e.c[0])return d=new _(Math.pow(+A(h),s?e.s*(2-isOdd(e)):+A(e))),t?d.mod(t):d;if(c=e.s<0,t){if(t.c?!t.c[0]:!t.s)return new _(NaN);(n=!c&&h.isInteger()&&t.isInteger())&&(h=h.mod(t))}else{if(e.e>9&&(h.e>0||h.e<-1||(0==h.e?h.c[0]>1||s&&h.c[1]>=24e7:h.c[0]<8e13||s&&h.c[0]<=9999975e7)))return i=h.s<0&&isOdd(e)?-0:0,h.e>-1&&(i=1/i),new _(c?1/i:i);y&&(i=mathceil(y/LOG_BASE+2))}for(s?(r=new _(.5),c&&(e.s=1),l=isOdd(e)):l=(o=Math.abs(+A(e)))%2,d=new _(a);;){if(l){if(!(d=d.times(h)).c)break;i?d.c.length>i&&(d.c.length=i):n&&(d=d.mod(t))}if(o){if(0===(o=mathfloor(o/2)))break;l=o%2}else if(k(e=e.times(r),e.e+1,1),e.e>14)l=isOdd(e);else{if(0===(o=+A(e)))break;l=o%2}h=h.times(h),i?h.c&&h.c.length>i&&(h.c.length=i):n&&(h=h.mod(t))}return n?d:(c&&(d=a.div(d)),t?d.mod(t):i?k(d,y,u,undefined):d)},s.integerValue=function(e){var t=new _(this);return null==e?e=u:intCheck(e,0,8),k(t,t.e+1,e)},s.isEqualTo=s.eq=function(e,t){return 0===compare$1(this,new _(e,t))},s.isFinite=function(){return!!this.c},s.isGreaterThan=s.gt=function(e,t){return compare$1(this,new _(e,t))>0},s.isGreaterThanOrEqualTo=s.gte=function(e,t){return 1===(t=compare$1(this,new _(e,t)))||0===t},s.isInteger=function(){return!!this.c&&bitFloor(this.e/LOG_BASE)>this.c.length-2},s.isLessThan=s.lt=function(e,t){return compare$1(this,new _(e,t))<0},s.isLessThanOrEqualTo=s.lte=function(e,t){return-1===(t=compare$1(this,new _(e,t)))||0===t},s.isNaN=function(){return!this.s},s.isNegative=function(){return this.s<0},s.isPositive=function(){return this.s>0},s.isZero=function(){return!!this.c&&0==this.c[0]},s.minus=function(e,t){var r,n,o,i,s=this,a=s.s;if(t=(e=new _(e,t)).s,!a||!t)return new _(NaN);if(a!=t)return e.s=-t,s.plus(e);var c=s.e/LOG_BASE,l=e.e/LOG_BASE,d=s.c,h=e.c;if(!c||!l){if(!d||!h)return d?(e.s=-t,e):new _(h?s:NaN);if(!d[0]||!h[0])return h[0]?(e.s=-t,e):new _(d[0]?s:3==u?-0:0)}if(c=bitFloor(c),l=bitFloor(l),d=d.slice(),a=c-l){for((i=a<0)?(a=-a,o=d):(l=c,o=h),o.reverse(),t=a;t--;o.push(0));o.reverse()}else for(n=(i=(a=d.length)<(t=h.length))?a:t,a=t=0;t0)for(;t--;d[r++]=0);for(t=BASE-1;n>a;){if(d[--n]=0;){for(r=0,h=w[o]%y,f=w[o]/y|0,i=o+(s=c);i>o;)r=((u=h*(u=b[--s]%y)+(a=f*u+(l=b[s]/y|0)*h)%y*y+p[i]+r)/m|0)+(a/y|0)+f*l,p[i--]=u%m;p[i]=r}return r?++n:p.splice(0,1),I(e,p,n)},s.negated=function(){var e=new _(this);return e.s=-e.s||null,e},s.plus=function(e,t){var r,n=this,o=n.s;if(t=(e=new _(e,t)).s,!o||!t)return new _(NaN);if(o!=t)return e.s=-t,n.minus(e);var i=n.e/LOG_BASE,s=e.e/LOG_BASE,a=n.c,c=e.c;if(!i||!s){if(!a||!c)return new _(o/0);if(!a[0]||!c[0])return c[0]?e:new _(a[0]?n:0*o)}if(i=bitFloor(i),s=bitFloor(s),a=a.slice(),o=i-s){for(o>0?(s=i,r=c):(o=-o,r=a),r.reverse();o--;r.push(0));r.reverse()}for((o=a.length)-(t=c.length)<0&&(r=c,c=a,a=r,t=o),o=0;t;)o=(a[--t]=a[t]+c[t]+o)/BASE|0,a[t]=BASE===a[t]?0:a[t]%BASE;return o&&(a=[o].concat(a),++s),I(e,a,s)},s.precision=s.sd=function(e,t){var r,n,o,i=this;if(null!=e&&e!==!!e)return intCheck(e,1,MAX),null==t?t=u:intCheck(t,0,8),k(new _(i),e,t);if(!(r=i.c))return null;if(n=(o=r.length-1)*LOG_BASE+1,o=r[o]){for(;o%10==0;o/=10,n--);for(o=r[0];o>=10;o/=10,n++);}return e&&i.e+1>n&&(n=i.e+1),n},s.shiftedBy=function(e){return intCheck(e,-MAX_SAFE_INTEGER$1,MAX_SAFE_INTEGER$1),this.times("1e"+e)},s.squareRoot=s.sqrt=function(){var e,r,n,o,i,s=this,a=s.c,l=s.s,d=s.e,h=c+4,f=new _("0.5");if(1!==l||!a||!a[0])return new _(!l||l<0&&(!a||a[0])?NaN:a?s:1/0);if(0==(l=Math.sqrt(+A(s)))||l==1/0?(((r=coeffToString(a)).length+d)%2==0&&(r+="0"),l=Math.sqrt(+r),d=bitFloor((d+1)/2)-(d<0||d%2),n=new _(r=l==1/0?"5e"+d:(r=l.toExponential()).slice(0,r.indexOf("e")+1)+d)):n=new _(l+""),n.c[0])for((l=(d=n.e)+h)<3&&(l=0);;)if(i=n,n=f.times(i.plus(t(s,i,h,1))),coeffToString(i.c).slice(0,l)===(r=coeffToString(n.c)).slice(0,l)){if(n.e0&&p>0){for(i=p%a||a,l=f.substr(0,i);i0&&(l+=u+f.slice(i)),h&&(l="-"+l)}n=d?l+(r.decimalSeparator||"")+((c=+r.fractionGroupSize)?d.replace(new RegExp("\\d{"+c+"}\\B","g"),"$&"+(r.fractionGroupSeparator||"")):d):l}return(r.prefix||"")+n+(r.suffix||"")},s.toFraction=function(e){var r,n,o,i,s,c,l,d,h,p,m,y,g=this,b=g.c;if(null!=e&&(!(l=new _(e)).isInteger()&&(l.c||1!==l.s)||l.lt(a)))throw Error(bignumberError+"Argument "+(l.isInteger()?"out of range: ":"not an integer: ")+A(l));if(!b)return new _(g);for(r=new _(a),h=n=new _(a),o=d=new _(a),y=coeffToString(b),s=r.e=y.length-g.e-1,r.c[0]=POWS_TEN[(c=s%LOG_BASE)<0?LOG_BASE+c:c],e=!e||l.comparedTo(r)>0?s>0?r:h:l,c=f,f=1/0,l=new _(y),d.c[0]=0;p=t(l,r,0,1),1!=(i=n.plus(p.times(o))).comparedTo(e);)n=o,o=i,h=d.plus(p.times(i=h)),d=i,r=l.minus(p.times(i=r)),l=i;return i=t(e.minus(n),o,0,1),d=d.plus(i.times(h)),n=n.plus(i.times(o)),d.s=h.s=g.s,m=t(h,o,s*=2,u).minus(g).abs().comparedTo(t(d,n,s,u).minus(g).abs())<1?[h,o]:[d,n],f=c,m},s.toNumber=function(){return+A(this)},s.toPrecision=function(e,t){return null!=e&&intCheck(e,1,MAX),v(this,e,t,2)},s.toString=function(e){var t,n=this,o=n.s,i=n.e;return null===i?o?(t="Infinity",o<0&&(t="-"+t)):t="NaN":(null==e?t=i<=l||i>=d?toExponential(coeffToString(n.c),i):toFixedPoint(coeffToString(n.c),i,"0"):10===e&&w?t=toFixedPoint(coeffToString((n=k(new _(n),c+i+1,u)).c),n.e,"0"):(intCheck(e,2,b.length,"Base"),t=r(toFixedPoint(coeffToString(n.c),i,"0"),10,e,o,!0)),o<0&&n.c[0]&&(t="-"+t)),t},s.valueOf=s.toJSON=function(){return A(this)},s._isBigNumber=!0,s[Symbol.toStringTag]="BigNumber",s[Symbol.for("nodejs.util.inspect.custom")]=s.valueOf,null!=e&&_.set(e),_}function bitFloor(e){var t=0|e;return e>0||e===t?t:t-1}function coeffToString(e){for(var t,r,n=1,o=e.length,i=e[0]+"";nu^r?1:-1;for(a=(c=o.length)<(u=i.length)?c:u,s=0;si[s]^r?1:-1;return c==u?0:c>u^r?1:-1}function intCheck(e,t,r,n){if(er||e!==mathfloor(e))throw Error(bignumberError+(n||"Argument")+("number"==typeof e?er?" out of range: ":" not an integer: ":" not a primitive number: ")+String(e))}function isOdd(e){var t=e.c.length-1;return bitFloor(e.e/LOG_BASE)==t&&e.c[t]%2!=0}function toExponential(e,t){return(e.length>1?e.charAt(0)+"."+e.slice(1):e)+(t<0?"e":"e+")+t}function toFixedPoint(e,t,r){var n,o;if(t<0){for(o=r+".";++t;o+=r);e=o+e}else if(++t>(n=e.length)){for(o=r,t-=n;--t;o+=r);e+=o}else t=8&&(a-=8,s[u++]=255&c>>a)}if(a>=t.bits||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return s}function _stringify(e,t,r){void 0===r&&(r={});for(var n=r.pad,o=void 0===n||n,i=(1<t.bits;)a-=t.bits,s+=t.chars[i&c>>a];if(a&&(s+=t.chars[i&c<1&&"="===e.charAt(t);)++r;return Math.ceil(3*e.length)/4-r};for(var r=new Array(64),n=new Array(123),o=0;o<64;)n[r[o]=o<26?o+65:o<52?o+71:o<62?o-4:o-59|43]=o++;t.encode=function(e,t,n){for(var o,i=null,s=[],a=0,c=0;t>2],o=(3&u)<<4,c=1;break;case 1:s[a++]=r[o|u>>4],o=(15&u)<<2,c=2;break;case 2:s[a++]=r[o|u>>6],s[a++]=r[63&u],c=0}a>8191&&((i||(i=[])).push(String.fromCharCode.apply(String,s)),a=0)}return c&&(s[a++]=r[o],s[a++]=61,1===c&&(s[a++]=61)),i?(a&&i.push(String.fromCharCode.apply(String,s.slice(0,a))),i.join("")):String.fromCharCode.apply(String,s.slice(0,a))};var i="invalid encoding";t.decode=function(e,t,r){for(var o,s=r,a=0,c=0;c1)break;if(void 0===(u=n[u]))throw Error(i);switch(a){case 0:o=u,a=1;break;case 1:t[r++]=o<<2|(48&u)>>4,o=u,a=2;break;case 2:t[r++]=(15&o)<<4|(60&u)>>2,o=u,a=3;break;case 3:t[r++]=(3&o)<<6|u,a=0}}if(1===a)throw Error(i);return r-s},t.test=function(e){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(e)}}(base64$3);var eventemitter=EventEmitter$1;function EventEmitter$1(){this._listeners={}}EventEmitter$1.prototype.on=function(e,t,r){return(this._listeners[e]||(this._listeners[e]=[])).push({fn:t,ctx:r||this}),this},EventEmitter$1.prototype.off=function(e,t){if(void 0===e)this._listeners={};else if(void 0===t)this._listeners[e]=[];else for(var r=this._listeners[e],n=0;n0?0:2147483648,r,n);else if(isNaN(t))e(2143289344,r,n);else if(t>34028234663852886e22)e((o<<31|2139095040)>>>0,r,n);else if(t<11754943508222875e-54)e((o<<31|Math.round(t/1401298464324817e-60))>>>0,r,n);else{var i=Math.floor(Math.log(t)/Math.LN2);e((o<<31|i+127<<23|8388607&Math.round(t*Math.pow(2,-i)*8388608))>>>0,r,n)}}function r(e,t,r){var n=e(t,r),o=2*(n>>31)+1,i=n>>>23&255,s=8388607&n;return 255===i?s?NaN:o*(1/0):0===i?1401298464324817e-60*o*s:o*Math.pow(2,i-150)*(s+8388608)}e.writeFloatLE=t.bind(null,writeUintLE$1),e.writeFloatBE=t.bind(null,writeUintBE$1),e.readFloatLE=r.bind(null,readUintLE$1),e.readFloatBE=r.bind(null,readUintBE$1)}(),"undefined"!=typeof Float64Array?function(){var t=new Float64Array([-0]),r=new Uint8Array(t.buffer),n=128===r[7];function o(e,n,o){t[0]=e,n[o]=r[0],n[o+1]=r[1],n[o+2]=r[2],n[o+3]=r[3],n[o+4]=r[4],n[o+5]=r[5],n[o+6]=r[6],n[o+7]=r[7]}function i(e,n,o){t[0]=e,n[o]=r[7],n[o+1]=r[6],n[o+2]=r[5],n[o+3]=r[4],n[o+4]=r[3],n[o+5]=r[2],n[o+6]=r[1],n[o+7]=r[0]}function s(e,n){return r[0]=e[n],r[1]=e[n+1],r[2]=e[n+2],r[3]=e[n+3],r[4]=e[n+4],r[5]=e[n+5],r[6]=e[n+6],r[7]=e[n+7],t[0]}function a(e,n){return r[7]=e[n],r[6]=e[n+1],r[5]=e[n+2],r[4]=e[n+3],r[3]=e[n+4],r[2]=e[n+5],r[1]=e[n+6],r[0]=e[n+7],t[0]}e.writeDoubleLE=n?o:i,e.writeDoubleBE=n?i:o,e.readDoubleLE=n?s:a,e.readDoubleBE=n?a:s}():function(){function t(e,t,r,n,o,i){var s=n<0?1:0;if(s&&(n=-n),0===n)e(0,o,i+t),e(1/n>0?0:2147483648,o,i+r);else if(isNaN(n))e(0,o,i+t),e(2146959360,o,i+r);else if(n>17976931348623157e292)e(0,o,i+t),e((s<<31|2146435072)>>>0,o,i+r);else{var a;if(n<22250738585072014e-324)e((a=n/5e-324)>>>0,o,i+t),e((s<<31|a/4294967296)>>>0,o,i+r);else{var c=Math.floor(Math.log(n)/Math.LN2);1024===c&&(c=1023),e(4503599627370496*(a=n*Math.pow(2,-c))>>>0,o,i+t),e((s<<31|c+1023<<20|1048576*a&1048575)>>>0,o,i+r)}}}function r(e,t,r,n,o){var i=e(n,o+t),s=e(n,o+r),a=2*(s>>31)+1,c=s>>>20&2047,u=4294967296*(1048575&s)+i;return 2047===c?u?NaN:a*(1/0):0===c?5e-324*a*u:a*Math.pow(2,c-1075)*(u+4503599627370496)}e.writeDoubleLE=t.bind(null,writeUintLE$1,0,4),e.writeDoubleBE=t.bind(null,writeUintBE$1,4,0),e.readDoubleLE=r.bind(null,readUintLE$1,0,4),e.readDoubleBE=r.bind(null,readUintBE$1,4,0)}(),e}function writeUintLE$1(e,t,r){t[r]=255&e,t[r+1]=e>>>8&255,t[r+2]=e>>>16&255,t[r+3]=e>>>24}function writeUintBE$1(e,t,r){t[r]=e>>>24,t[r+1]=e>>>16&255,t[r+2]=e>>>8&255,t[r+3]=255&e}function readUintLE$1(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24)>>>0}function readUintBE$1(e,t){return(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0}var inquire_1=inquire;function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(e2){}return null}var utf8$2={},exports2,utf82;exports2=utf8$2,utf82=exports2,utf82.length=function(e){for(var t=0,r=0,n=0;n191&&n<224?i[s++]=(31&n)<<6|63&e[t++]:n>239&&n<365?(n=((7&n)<<18|(63&e[t++])<<12|(63&e[t++])<<6|63&e[t++])-65536,i[s++]=55296+(n>>10),i[s++]=56320+(1023&n)):i[s++]=(15&n)<<12|(63&e[t++])<<6|63&e[t++],s>8191&&((o||(o=[])).push(String.fromCharCode.apply(String,i)),s=0);return o?(s&&o.push(String.fromCharCode.apply(String,i.slice(0,s))),o.join("")):String.fromCharCode.apply(String,i.slice(0,s))},utf82.write=function(e,t,r){for(var n,o,i=r,s=0;s>6|192,t[r++]=63&n|128):55296==(64512&n)&&56320==(64512&(o=e.charCodeAt(s+1)))?(n=65536+((1023&n)<<10)+(1023&o),++s,t[r++]=n>>18|240,t[r++]=n>>12&63|128,t[r++]=n>>6&63|128,t[r++]=63&n|128):(t[r++]=n>>12|224,t[r++]=n>>6&63|128,t[r++]=63&n|128);return r-i};var pool_1=pool,longbits,hasRequiredLongbits,hasRequiredMinimal;function pool(e,t,r){var n=r||8192,o=n>>>1,i=null,s=n;return function(r){if(r<1||r>o)return e(r);s+r>n&&(i=e(n),s=0);var a=t.call(i,s,s+=r);return 7&s&&(s=1+(7|s)),a}}function requireLongbits(){if(hasRequiredLongbits)return longbits;hasRequiredLongbits=1,longbits=t;var e=requireMinimal();function t(e,t){this.lo=e>>>0,this.hi=t>>>0}var r=t.zero=new t(0,0);r.toNumber=function(){return 0},r.zzEncode=r.zzDecode=function(){return this},r.length=function(){return 1};var n=t.zeroHash="\0\0\0\0\0\0\0\0";t.fromNumber=function(e){if(0===e)return r;var n=e<0;n&&(e=-e);var o=e>>>0,i=(e-o)/4294967296>>>0;return n&&(i=~i>>>0,o=~o>>>0,++o>4294967295&&(o=0,++i>4294967295&&(i=0))),new t(o,i)},t.from=function(n){if("number"==typeof n)return t.fromNumber(n);if(e.isString(n)){if(!e.Long)return t.fromNumber(parseInt(n,10));n=e.Long.fromString(n)}return n.low||n.high?new t(n.low>>>0,n.high>>>0):r},t.prototype.toNumber=function(e){if(!e&&this.hi>>>31){var t=1+~this.lo>>>0,r=~this.hi>>>0;return t||(r=r+1>>>0),-(t+4294967296*r)}return this.lo+4294967296*this.hi},t.prototype.toLong=function(t){return e.Long?new e.Long(0|this.lo,0|this.hi,Boolean(t)):{low:0|this.lo,high:0|this.hi,unsigned:Boolean(t)}};var o=String.prototype.charCodeAt;return t.fromHash=function(e){return e===n?r:new t((o.call(e,0)|o.call(e,1)<<8|o.call(e,2)<<16|o.call(e,3)<<24)>>>0,(o.call(e,4)|o.call(e,5)<<8|o.call(e,6)<<16|o.call(e,7)<<24)>>>0)},t.prototype.toHash=function(){return String.fromCharCode(255&this.lo,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,255&this.hi,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},t.prototype.zzEncode=function(){var e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this},t.prototype.zzDecode=function(){var e=-(1&this.lo);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this},t.prototype.length=function(){var e=this.lo,t=(this.lo>>>28|this.hi<<4)>>>0,r=this.hi>>>24;return 0===r?0===t?e<16384?e<128?1:2:e<2097152?3:4:t<16384?t<128?5:6:t<2097152?7:8:r<128?9:10},longbits}function requireMinimal(){return hasRequiredMinimal||(hasRequiredMinimal=1,function(e){var t=e;function r(e,t,r){for(var n=Object.keys(t),o=0;o0)},t.Buffer=function(){try{var e=t.inquire("buffer").Buffer;return e.prototype.utf8Write?e:null}catch(r){return null}}(),t._Buffer_from=null,t._Buffer_allocUnsafe=null,t.newBuffer=function(e){return"number"==typeof e?t.Buffer?t._Buffer_allocUnsafe(e):new t.Array(e):t.Buffer?t._Buffer_from(e):"undefined"==typeof Uint8Array?e:new Uint8Array(e)},t.Array="undefined"!=typeof Uint8Array?Uint8Array:Array,t.Long=t.global.dcodeIO&&t.global.dcodeIO.Long||t.global.Long||t.inquire("long"),t.key2Re=/^true|false|0|1$/,t.key32Re=/^-?(?:0|[1-9][0-9]*)$/,t.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/,t.longToHash=function(e){return e?t.LongBits.from(e).toHash():t.LongBits.zeroHash},t.longFromHash=function(e,r){var n=t.LongBits.fromHash(e);return t.Long?t.Long.fromBits(n.lo,n.hi,r):n.toNumber(Boolean(r))},t.merge=r,t.lcFirst=function(e){return e.charAt(0).toLowerCase()+e.substring(1)},t.newError=n,t.ProtocolError=n("ProtocolError"),t.oneOfGetter=function(e){for(var t={},r=0;r-1;--r)if(1===t[e[r]]&&void 0!==this[e[r]]&&null!==this[e[r]])return e[r]}},t.oneOfSetter=function(e){return function(t){for(var r=0;r127;)t[r++]=127&e|128,e>>>=7;t[r]=e}function VarintOp(e,t){this.len=e,this.next=void 0,this.val=t}function writeVarint64(e,t,r){for(;e.hi;)t[r++]=127&e.lo|128,e.lo=(e.lo>>>7|e.hi<<25)>>>0,e.hi>>>=7;for(;e.lo>127;)t[r++]=127&e.lo|128,e.lo=e.lo>>>7;t[r++]=e.lo}function writeFixed32(e,t,r){t[r]=255&e,t[r+1]=e>>>8&255,t[r+2]=e>>>16&255,t[r+3]=e>>>24}Writer$3.create=create$1(),Writer$3.alloc=function(e){return new util$7.Array(e)},util$7.Array!==Array&&(Writer$3.alloc=util$7.pool(Writer$3.alloc,util$7.Array.prototype.subarray)),Writer$3.prototype._push=function(e,t,r){return this.tail=this.tail.next=new Op(e,t,r),this.len+=t,this},VarintOp.prototype=Object.create(Op.prototype),VarintOp.prototype.fn=writeVarint32,Writer$3.prototype.uint32=function(e){return this.len+=(this.tail=this.tail.next=new VarintOp((e>>>=0)<128?1:e<16384?2:e<2097152?3:e<268435456?4:5,e)).len,this},Writer$3.prototype.int32=function(e){return e<0?this._push(writeVarint64,10,LongBits$1.fromNumber(e)):this.uint32(e)},Writer$3.prototype.sint32=function(e){return this.uint32((e<<1^e>>31)>>>0)},Writer$3.prototype.uint64=function(e){var t=LongBits$1.from(e);return this._push(writeVarint64,t.length(),t)},Writer$3.prototype.int64=Writer$3.prototype.uint64,Writer$3.prototype.sint64=function(e){var t=LongBits$1.from(e).zzEncode();return this._push(writeVarint64,t.length(),t)},Writer$3.prototype.bool=function(e){return this._push(writeByte,1,e?1:0)},Writer$3.prototype.fixed32=function(e){return this._push(writeFixed32,4,e>>>0)},Writer$3.prototype.sfixed32=Writer$3.prototype.fixed32,Writer$3.prototype.fixed64=function(e){var t=LongBits$1.from(e);return this._push(writeFixed32,4,t.lo)._push(writeFixed32,4,t.hi)},Writer$3.prototype.sfixed64=Writer$3.prototype.fixed64,Writer$3.prototype.float=function(e){return this._push(util$7.float.writeFloatLE,4,e)},Writer$3.prototype.double=function(e){return this._push(util$7.float.writeDoubleLE,8,e)};var writeBytes=util$7.Array.prototype.set?function(e,t,r){t.set(e,r)}:function(e,t,r){for(var n=0;n>>0;if(!t)return this._push(writeByte,1,0);if(util$7.isString(e)){var r=Writer$3.alloc(t=base64$2.length(e));base64$2.decode(e,r,0),e=r}return this.uint32(t)._push(writeBytes,t,e)},Writer$3.prototype.string=function(e){var t=utf8$1.length(e);return t?this.uint32(t)._push(utf8$1.write,t,e):this._push(writeByte,1,0)},Writer$3.prototype.fork=function(){return this.states=new State(this),this.head=this.tail=new Op(noop$4,0,0),this.len=0,this},Writer$3.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new Op(noop$4,0,0),this.len=0),this},Writer$3.prototype.ldelim=function(){var e=this.head,t=this.tail,r=this.len;return this.reset().uint32(r),r&&(this.tail.next=e.next,this.tail=t,this.len+=r),this},Writer$3.prototype.finish=function(){for(var e=this.head.next,t=this.constructor.alloc(this.len),r=0;e;)e.fn(e.val,t,r),r+=e.len,e=e.next;return t},Writer$3._configure=function(e){BufferWriter$1=e,Writer$3.create=create$1(),BufferWriter$1._configure()};var writer_buffer=BufferWriter,Writer$2=writer;(BufferWriter.prototype=Object.create(Writer$2.prototype)).constructor=BufferWriter;var util$6=requireMinimal();function BufferWriter(){Writer$2.call(this)}function writeStringBuffer(e,t,r){e.length<40?util$6.utf8.write(e,t,r):t.utf8Write?t.utf8Write(e,r):t.write(e,r)}BufferWriter._configure=function(){BufferWriter.alloc=util$6._Buffer_allocUnsafe,BufferWriter.writeBytesBuffer=util$6.Buffer&&util$6.Buffer.prototype instanceof Uint8Array&&"set"===util$6.Buffer.prototype.set.name?function(e,t,r){t.set(e,r)}:function(e,t,r){if(e.copy)e.copy(t,r,0,e.length);else for(var n=0;n>>0;return this.uint32(t),t&&this._push(BufferWriter.writeBytesBuffer,t,e),this},BufferWriter.prototype.string=function(e){var t=util$6.Buffer.byteLength(e);return this.uint32(t),t&&this._push(writeStringBuffer,t,e),this},BufferWriter._configure();var reader=Reader$3,util$5=requireMinimal(),BufferReader$1,LongBits=util$5.LongBits,utf8=util$5.utf8;function indexOutOfRange(e,t){return RangeError("index out of range: "+e.pos+" + "+(t||1)+" > "+e.len)}function Reader$3(e){this.buf=e,this.pos=0,this.len=e.length}var create_array="undefined"!=typeof Uint8Array?function(e){if(e instanceof Uint8Array||Array.isArray(e))return new Reader$3(e);throw Error("illegal buffer")}:function(e){if(Array.isArray(e))return new Reader$3(e);throw Error("illegal buffer")},create=function(){return util$5.Buffer?function(e){return(Reader$3.create=function(e){return util$5.Buffer.isBuffer(e)?new BufferReader$1(e):create_array(e)})(e)}:create_array};function readLongVarint(){var e=new LongBits(0,0),t=0;if(!(this.len-this.pos>4)){for(;t<3;++t){if(this.pos>=this.len)throw indexOutOfRange(this);if(e.lo=(e.lo|(127&this.buf[this.pos])<<7*t)>>>0,this.buf[this.pos++]<128)return e}return e.lo=(e.lo|(127&this.buf[this.pos++])<<7*t)>>>0,e}for(;t<4;++t)if(e.lo=(e.lo|(127&this.buf[this.pos])<<7*t)>>>0,this.buf[this.pos++]<128)return e;if(e.lo=(e.lo|(127&this.buf[this.pos])<<28)>>>0,e.hi=(e.hi|(127&this.buf[this.pos])>>4)>>>0,this.buf[this.pos++]<128)return e;if(t=0,this.len-this.pos>4){for(;t<5;++t)if(e.hi=(e.hi|(127&this.buf[this.pos])<<7*t+3)>>>0,this.buf[this.pos++]<128)return e}else for(;t<5;++t){if(this.pos>=this.len)throw indexOutOfRange(this);if(e.hi=(e.hi|(127&this.buf[this.pos])<<7*t+3)>>>0,this.buf[this.pos++]<128)return e}throw Error("invalid varint encoding")}function readFixed32_end(e,t){return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0}function readFixed64(){if(this.pos+8>this.len)throw indexOutOfRange(this,8);return new LongBits(readFixed32_end(this.buf,this.pos+=4),readFixed32_end(this.buf,this.pos+=4))}Reader$3.create=create(),Reader$3.prototype._slice=util$5.Array.prototype.subarray||util$5.Array.prototype.slice,Reader$3.prototype.uint32=function(){var e=4294967295;return function(){if(e=(127&this.buf[this.pos])>>>0,this.buf[this.pos++]<128)return e;if(e=(e|(127&this.buf[this.pos])<<7)>>>0,this.buf[this.pos++]<128)return e;if(e=(e|(127&this.buf[this.pos])<<14)>>>0,this.buf[this.pos++]<128)return e;if(e=(e|(127&this.buf[this.pos])<<21)>>>0,this.buf[this.pos++]<128)return e;if(e=(e|(15&this.buf[this.pos])<<28)>>>0,this.buf[this.pos++]<128)return e;if((this.pos+=5)>this.len)throw this.pos=this.len,indexOutOfRange(this,10);return e}}(),Reader$3.prototype.int32=function(){return 0|this.uint32()},Reader$3.prototype.sint32=function(){var e=this.uint32();return e>>>1^-(1&e)},Reader$3.prototype.bool=function(){return 0!==this.uint32()},Reader$3.prototype.fixed32=function(){if(this.pos+4>this.len)throw indexOutOfRange(this,4);return readFixed32_end(this.buf,this.pos+=4)},Reader$3.prototype.sfixed32=function(){if(this.pos+4>this.len)throw indexOutOfRange(this,4);return 0|readFixed32_end(this.buf,this.pos+=4)},Reader$3.prototype.float=function(){if(this.pos+4>this.len)throw indexOutOfRange(this,4);var e=util$5.float.readFloatLE(this.buf,this.pos);return this.pos+=4,e},Reader$3.prototype.double=function(){if(this.pos+8>this.len)throw indexOutOfRange(this,4);var e=util$5.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,e},Reader$3.prototype.bytes=function(){var e=this.uint32(),t=this.pos,r=this.pos+e;if(r>this.len)throw indexOutOfRange(this,e);if(this.pos+=e,Array.isArray(this.buf))return this.buf.slice(t,r);if(t===r){var n=util$5.Buffer;return n?n.alloc(0):new this.buf.constructor(0)}return this._slice.call(this.buf,t,r)},Reader$3.prototype.string=function(){var e=this.bytes();return utf8.read(e,0,e.length)},Reader$3.prototype.skip=function(e){if("number"==typeof e){if(this.pos+e>this.len)throw indexOutOfRange(this,e);this.pos+=e}else do{if(this.pos>=this.len)throw indexOutOfRange(this)}while(128&this.buf[this.pos++]);return this},Reader$3.prototype.skipType=function(e){switch(e){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;4!=(e=7&this.uint32());)this.skipType(e);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+e+" at offset "+this.pos)}return this},Reader$3._configure=function(e){BufferReader$1=e,Reader$3.create=create(),BufferReader$1._configure();var t=util$5.Long?"toLong":"toNumber";util$5.merge(Reader$3.prototype,{int64:function(){return readLongVarint.call(this)[t](!1)},uint64:function(){return readLongVarint.call(this)[t](!0)},sint64:function(){return readLongVarint.call(this).zzDecode()[t](!1)},fixed64:function(){return readFixed64.call(this)[t](!0)},sfixed64:function(){return readFixed64.call(this)[t](!1)}})};var reader_buffer=BufferReader,Reader$2=reader;(BufferReader.prototype=Object.create(Reader$2.prototype)).constructor=BufferReader;var util$4=requireMinimal();function BufferReader(e){Reader$2.call(this,e)}BufferReader._configure=function(){util$4.Buffer&&(BufferReader.prototype._slice=util$4.Buffer.prototype.slice)},BufferReader.prototype.string=function(){var e=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+e,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+e,this.len))},BufferReader._configure();var rpc={},service=Service,util$3=requireMinimal();function Service(e,t,r){if("function"!=typeof e)throw TypeError("rpcImpl must be a function");util$3.EventEmitter.call(this),this.rpcImpl=e,this.requestDelimited=Boolean(t),this.responseDelimited=Boolean(r)}(Service.prototype=Object.create(util$3.EventEmitter.prototype)).constructor=Service,Service.prototype.rpcCall=function e(t,r,n,o,i){if(!o)throw TypeError("request must be specified");var s=this;if(!i)return util$3.asPromise(e,s,t,r,n,o);if(s.rpcImpl)try{return s.rpcImpl(t,r[s.requestDelimited?"encodeDelimited":"encode"](o).finish(),(function(e,r){if(e)return s.emit("error",e,t),i(e);if(null!==r){if(!(r instanceof n))try{r=n[s.responseDelimited?"decodeDelimited":"decode"](r)}catch(o){return s.emit("error",o,t),i(o)}return s.emit("data",r,t),i(null,r)}s.end(!0)}))}catch(a){return s.emit("error",a,t),void setTimeout((function(){i(a)}),0)}else setTimeout((function(){i(Error("already ended"))}),0)},Service.prototype.end=function(e){return this.rpcImpl&&(e||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this},function(e){e.Service=service}(rpc);var roots={};!function(e){var t=e;function r(){t.util._configure(),t.Writer._configure(t.BufferWriter),t.Reader._configure(t.BufferReader)}t.build="minimal",t.Writer=writer,t.BufferWriter=writer_buffer,t.Reader=reader,t.BufferReader=reader_buffer,t.util=requireMinimal(),t.rpc=rpc,t.roots=roots,t.configure=r,r()}(indexMinimal);var minimal=indexMinimal;const require$$1$2=getAugmentedNamespace(long);var proto$2={};Object.defineProperty(proto$2,"__esModule",{value:!0}),proto$2.proto=proto$2.google=proto$2.default=proto$2.com=void 0;var $protobuf$1=_interopRequireWildcard$1(minimal);function _getRequireWildcardCache$1(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(_getRequireWildcardCache$1=function(e){return e?r:t})(e)}function _interopRequireWildcard$1(e,t){if(e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=_getRequireWildcardCache$1(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var s=o?Object.getOwnPropertyDescriptor(e,i):null;s&&(s.get||s.set)?Object.defineProperty(n,i,s):n[i]=e[i]}return n.default=e,r&&r.set(e,n),n}const $Reader=$protobuf$1.Reader,$Writer=$protobuf$1.Writer,$util=$protobuf$1.util,$root=$protobuf$1.roots.hashgraph||($protobuf$1.roots.hashgraph={});proto$2.default=$root;const com$1=$root.com=(()=>{const e={};return e.hedera=function(){const e={};return e.mirror=function(){const e={};return e.api=function(){const e={};return e.proto=function(){const e={};return e.ConsensusTopicQuery=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.topicID=$root.proto.TopicID.decode(e,e.uint32());break;case 2:n.consensusStartTime=$root.proto.Timestamp.decode(e,e.uint32());break;case 3:n.consensusEndTime=$root.proto.Timestamp.decode(e,e.uint32());break;case 4:n.limit=e.uint64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.mirror.api.proto.ConsensusTopicQuery"},e}(),e.ConsensusTopicResponse=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.consensusTimestamp=$root.proto.Timestamp.decode(e,e.uint32());break;case 2:n.message=e.bytes();break;case 3:n.runningHash=e.bytes();break;case 4:n.sequenceNumber=e.uint64();break;case 5:n.runningHashVersion=e.uint64();break;case 6:n.chunkInfo=$root.proto.ConsensusMessageChunkInfo.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.mirror.api.proto.ConsensusTopicResponse"},e}(),e.ConsensusService=function(){function e(e,t,r){$protobuf$1.rpc.Service.call(this,e,t,r)}return(e.prototype=Object.create($protobuf$1.rpc.Service.prototype)).constructor=e,e.create=function(e,t,r){return new this(e,t,r)},Object.defineProperty(e.prototype.subscribeTopic=function e(t,r){return this.rpcCall(e,$root.com.hedera.mirror.api.proto.ConsensusTopicQuery,$root.com.hedera.mirror.api.proto.ConsensusTopicResponse,t,r)},"name",{value:"subscribeTopic"}),e}(),e.AddressBookQuery=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.fileId=$root.proto.FileID.decode(e,e.uint32());break;case 2:n.limit=e.int32();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.mirror.api.proto.AddressBookQuery"},e}(),e.NetworkService=function(){function e(e,t,r){$protobuf$1.rpc.Service.call(this,e,t,r)}return(e.prototype=Object.create($protobuf$1.rpc.Service.prototype)).constructor=e,e.create=function(e,t,r){return new this(e,t,r)},Object.defineProperty(e.prototype.getNodes=function e(t,r){return this.rpcCall(e,$root.com.hedera.mirror.api.proto.AddressBookQuery,$root.proto.NodeAddress,t,r)},"name",{value:"getNodes"}),e}(),e}(),e}(),e}(),e.hapi=function(){const e={};return e.node=function(){const e={};return e.addressbook=function(){const e={};return e.NodeCreateTransactionBody=function(){function e(e){if(this.gossipEndpoint=[],this.serviceEndpoint=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.accountId=$root.proto.AccountID.decode(e,e.uint32());break;case 2:n.description=e.string();break;case 3:n.gossipEndpoint&&n.gossipEndpoint.length||(n.gossipEndpoint=[]),n.gossipEndpoint.push($root.proto.ServiceEndpoint.decode(e,e.uint32()));break;case 4:n.serviceEndpoint&&n.serviceEndpoint.length||(n.serviceEndpoint=[]),n.serviceEndpoint.push($root.proto.ServiceEndpoint.decode(e,e.uint32()));break;case 5:n.gossipCaCertificate=e.bytes();break;case 6:n.grpcCertificateHash=e.bytes();break;case 7:n.adminKey=$root.proto.Key.decode(e,e.uint32());break;case 8:n.declineReward=e.bool();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.hapi.node.addressbook.NodeCreateTransactionBody"},e}(),e.NodeUpdateTransactionBody=function(){function e(e){if(this.gossipEndpoint=[],this.serviceEndpoint=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.nodeId=e.uint64();break;case 2:n.accountId=$root.proto.AccountID.decode(e,e.uint32());break;case 3:n.description=$root.google.protobuf.StringValue.decode(e,e.uint32());break;case 4:n.gossipEndpoint&&n.gossipEndpoint.length||(n.gossipEndpoint=[]),n.gossipEndpoint.push($root.proto.ServiceEndpoint.decode(e,e.uint32()));break;case 5:n.serviceEndpoint&&n.serviceEndpoint.length||(n.serviceEndpoint=[]),n.serviceEndpoint.push($root.proto.ServiceEndpoint.decode(e,e.uint32()));break;case 6:n.gossipCaCertificate=$root.google.protobuf.BytesValue.decode(e,e.uint32());break;case 7:n.grpcCertificateHash=$root.google.protobuf.BytesValue.decode(e,e.uint32());break;case 8:n.adminKey=$root.proto.Key.decode(e,e.uint32());break;case 9:n.declineReward=$root.google.protobuf.BoolValue.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.hapi.node.addressbook.NodeUpdateTransactionBody"},e}(),e.NodeDeleteTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==1)n.nodeId=e.uint64();else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.hapi.node.addressbook.NodeDeleteTransactionBody"},e}(),e}(),e.state=function(){const e={};return e.hints=function(){const e={};return e.HintsPartyId=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.partyId=e.uint32();break;case 2:n.numParties=e.uint32();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.hapi.node.state.hints.HintsPartyId"},e}(),e.HintsKeySet=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.nodeId=e.uint64();break;case 2:n.adoptionTime=$root.proto.Timestamp.decode(e,e.uint32());break;case 3:n.key=e.bytes();break;case 4:n.nextKey=e.bytes();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.hapi.node.state.hints.HintsKeySet"},e}(),e.PreprocessedKeys=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.aggregationKey=e.bytes();break;case 2:n.verificationKey=e.bytes();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.hapi.node.state.hints.PreprocessedKeys"},e}(),e.PreprocessingVoteId=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.constructionId=e.uint64();break;case 2:n.nodeId=e.uint64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.hapi.node.state.hints.PreprocessingVoteId"},e}(),e.PreprocessingVote=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.preprocessedKeys=$root.com.hedera.hapi.node.state.hints.PreprocessedKeys.decode(e,e.uint32());break;case 2:n.congruentNodeId=e.uint64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.hapi.node.state.hints.PreprocessingVote"},e}(),e.NodePartyId=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.nodeId=e.uint64();break;case 2:n.partyId=e.uint32();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.hapi.node.state.hints.NodePartyId"},e}(),e.HintsScheme=function(){function e(e){if(this.nodePartyIds=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.preprocessedKeys=$root.com.hedera.hapi.node.state.hints.PreprocessedKeys.decode(e,e.uint32());break;case 2:n.nodePartyIds&&n.nodePartyIds.length||(n.nodePartyIds=[]),n.nodePartyIds.push($root.com.hedera.hapi.node.state.hints.NodePartyId.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.hapi.node.state.hints.HintsScheme"},e}(),e.HintsConstruction=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.constructionId=e.uint64();break;case 2:n.sourceRosterHash=e.bytes();break;case 3:n.targetRosterHash=e.bytes();break;case 4:n.gracePeriodEndTime=$root.proto.Timestamp.decode(e,e.uint32());break;case 5:n.preprocessingStartTime=$root.proto.Timestamp.decode(e,e.uint32());break;case 6:n.hintsScheme=$root.com.hedera.hapi.node.state.hints.HintsScheme.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.hapi.node.state.hints.HintsConstruction"},e}(),e.CRSStage=function(){const e={},t=Object.create(e);return t[e[0]="GATHERING_CONTRIBUTIONS"]=0,t[e[1]="WAITING_FOR_ADOPTING_FINAL_CRS"]=1,t[e[2]="COMPLETED"]=2,t}(),e.CRSState=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.crs=e.bytes();break;case 2:n.stage=e.int32();break;case 3:n.nextContributingNodeId=$root.google.protobuf.UInt64Value.decode(e,e.uint32());break;case 4:n.contributionEndTime=$root.proto.Timestamp.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.hapi.node.state.hints.CRSState"},e}(),e}(),e.history=function(){const e={};return e.ProofKeySet=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 2:n.adoptionTime=$root.proto.Timestamp.decode(e,e.uint32());break;case 3:n.key=e.bytes();break;case 4:n.nextKey=e.bytes();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.hapi.node.state.history.ProofKeySet"},e}(),e.ProofKey=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.nodeId=e.uint64();break;case 2:n.key=e.bytes();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.hapi.node.state.history.ProofKey"},e}(),e.History=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.addressBookHash=e.bytes();break;case 2:n.metadata=e.bytes();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.hapi.node.state.history.History"},e}(),e.HistoryProof=function(){function e(e){if(this.targetProofKeys=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.sourceAddressBookHash=e.bytes();break;case 2:n.targetProofKeys&&n.targetProofKeys.length||(n.targetProofKeys=[]),n.targetProofKeys.push($root.com.hedera.hapi.node.state.history.ProofKey.decode(e,e.uint32()));break;case 3:n.targetHistory=$root.com.hedera.hapi.node.state.history.History.decode(e,e.uint32());break;case 4:n.proof=e.bytes();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.hapi.node.state.history.HistoryProof"},e}(),e.HistoryProofConstruction=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.constructionId=e.uint64();break;case 2:n.sourceRosterHash=e.bytes();break;case 3:n.sourceProof=$root.com.hedera.hapi.node.state.history.HistoryProof.decode(e,e.uint32());break;case 4:n.targetRosterHash=e.bytes();break;case 5:n.gracePeriodEndTime=$root.proto.Timestamp.decode(e,e.uint32());break;case 6:n.assemblyStartTime=$root.proto.Timestamp.decode(e,e.uint32());break;case 7:n.targetProof=$root.com.hedera.hapi.node.state.history.HistoryProof.decode(e,e.uint32());break;case 8:n.failureReason=e.string();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.hapi.node.state.history.HistoryProofConstruction"},e}(),e.ConstructionNodeId=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.constructionId=e.uint64();break;case 2:n.nodeId=e.uint64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.hapi.node.state.history.ConstructionNodeId"},e}(),e.HistoryProofVote=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.proof=$root.com.hedera.hapi.node.state.history.HistoryProof.decode(e,e.uint32());break;case 2:n.congruentNodeId=e.uint64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.hapi.node.state.history.HistoryProofVote"},e}(),e.HistorySignature=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.history=$root.com.hedera.hapi.node.state.history.History.decode(e,e.uint32());break;case 2:n.signature=e.bytes();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.hapi.node.state.history.HistorySignature"},e}(),e.RecordedHistorySignature=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.signingTime=$root.proto.Timestamp.decode(e,e.uint32());break;case 2:n.historySignature=$root.com.hedera.hapi.node.state.history.HistorySignature.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.hapi.node.state.history.RecordedHistorySignature"},e}(),e}(),e}(),e}(),e.services=function(){const e={};return e.auxiliary=function(){const e={};return e.hints=function(){const e={};return e.HintsKeyPublicationTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.partyId=e.uint32();break;case 2:n.numParties=e.uint32();break;case 3:n.hintsKey=e.bytes();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.hapi.services.auxiliary.hints.HintsKeyPublicationTransactionBody"},e}(),e.HintsPreprocessingVoteTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.constructionId=e.uint64();break;case 2:n.vote=$root.com.hedera.hapi.node.state.hints.PreprocessingVote.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.hapi.services.auxiliary.hints.HintsPreprocessingVoteTransactionBody"},e}(),e.HintsPartialSignatureTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.constructionId=e.uint64();break;case 2:n.message=e.bytes();break;case 3:n.partialSignature=e.bytes();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.hapi.services.auxiliary.hints.HintsPartialSignatureTransactionBody"},e}(),e.CrsPublicationTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.newCrs=e.bytes();break;case 2:n.proof=e.bytes();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.hapi.services.auxiliary.hints.CrsPublicationTransactionBody"},e}(),e}(),e.history=function(){const e={};return e.HistoryProofSignatureTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.constructionId=e.uint64();break;case 2:n.signature=$root.com.hedera.hapi.node.state.history.HistorySignature.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.hapi.services.auxiliary.history.HistoryProofSignatureTransactionBody"},e}(),e.HistoryProofKeyPublicationTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==1)n.proofKey=e.bytes();else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.hapi.services.auxiliary.history.HistoryProofKeyPublicationTransactionBody"},e}(),e.HistoryProofVoteTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.constructionId=e.uint64();break;case 2:n.vote=$root.com.hedera.hapi.node.state.history.HistoryProofVote.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.hapi.services.auxiliary.history.HistoryProofVoteTransactionBody"},e}(),e}(),e}(),e}(),e.platform=function(){const e={};return e.event=function(){const e={};return e.EventConsensusData=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.consensusTimestamp=$root.proto.Timestamp.decode(e,e.uint32());break;case 2:n.consensusOrder=e.uint64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.hapi.platform.event.EventConsensusData"},e}(),e.EventCore=function(){function e(e){if(this.parents=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.creatorNodeId=e.int64();break;case 2:n.birthRound=e.int64();break;case 3:n.timeCreated=$root.proto.Timestamp.decode(e,e.uint32());break;case 4:n.parents&&n.parents.length||(n.parents=[]),n.parents.push($root.com.hedera.hapi.platform.event.EventDescriptor.decode(e,e.uint32()));break;case 17:n.version=$root.proto.SemanticVersion.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.hapi.platform.event.EventCore"},e}(),e.EventDescriptor=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.hash=e.bytes();break;case 2:n.creatorNodeId=e.int64();break;case 3:n.birthRound=e.int64();break;case 17:n.generation=e.int64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.hapi.platform.event.EventDescriptor"},e}(),e.TransactionGroupRole=function(){const e={},t=Object.create(e);return t[e[0]="STANDALONE"]=0,t[e[1]="FIRST_CHILD"]=1,t[e[2]="MIDDLE_CHILD"]=2,t[e[3]="LAST_CHILD"]=3,t[e[4]="STARTING_PARENT"]=4,t[e[5]="PARENT"]=5,t[e[6]="ENDING_PARENT"]=6,t}(),e.EventTransaction=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.applicationTransaction=e.bytes();break;case 2:n.stateSignatureTransaction=$root.com.hedera.hapi.platform.event.StateSignatureTransaction.decode(e,e.uint32());break;case 3:n.transactionGroupRole=e.int32();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.hapi.platform.event.EventTransaction"},e}(),e.GossipEvent=function(){function e(e){if(this.transactions=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.eventCore=$root.com.hedera.hapi.platform.event.EventCore.decode(e,e.uint32());break;case 2:n.signature=e.bytes();break;case 4:n.transactions&&n.transactions.length||(n.transactions=[]),n.transactions.push(e.bytes());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.hapi.platform.event.GossipEvent"},e}(),e.StateSignatureTransaction=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.round=e.int64();break;case 2:n.signature=e.bytes();break;case 3:n.hash=e.bytes();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.hapi.platform.event.StateSignatureTransaction"},e}(),e}(),e}(),e}(),e}(),e})();proto$2.com=com$1;const proto$1=$root.proto=(()=>{const e={};return e.TransactionList=function(){function e(e){if(this.transactionList=[],e)for(var t=Object.keys(e),r=0;r>>3==1)n.transactionList&&n.transactionList.length||(n.transactionList=[]),n.transactionList.push($root.proto.Transaction.decode(e,e.uint32()));else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TransactionList"},e}(),e.AddressBookService=function(){function e(e,t,r){$protobuf$1.rpc.Service.call(this,e,t,r)}return(e.prototype=Object.create($protobuf$1.rpc.Service.prototype)).constructor=e,e.create=function(e,t,r){return new this(e,t,r)},Object.defineProperty(e.prototype.createNode=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"createNode"}),Object.defineProperty(e.prototype.deleteNode=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"deleteNode"}),Object.defineProperty(e.prototype.updateNode=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"updateNode"}),e}(),e.TransactionResponse=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.nodeTransactionPrecheckCode=e.int32();break;case 2:n.cost=e.uint64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TransactionResponse"},e}(),e.ResponseCodeEnum=function(){const e={},t=Object.create(e);return t[e[0]="OK"]=0,t[e[1]="INVALID_TRANSACTION"]=1,t[e[2]="PAYER_ACCOUNT_NOT_FOUND"]=2,t[e[3]="INVALID_NODE_ACCOUNT"]=3,t[e[4]="TRANSACTION_EXPIRED"]=4,t[e[5]="INVALID_TRANSACTION_START"]=5,t[e[6]="INVALID_TRANSACTION_DURATION"]=6,t[e[7]="INVALID_SIGNATURE"]=7,t[e[8]="MEMO_TOO_LONG"]=8,t[e[9]="INSUFFICIENT_TX_FEE"]=9,t[e[10]="INSUFFICIENT_PAYER_BALANCE"]=10,t[e[11]="DUPLICATE_TRANSACTION"]=11,t[e[12]="BUSY"]=12,t[e[13]="NOT_SUPPORTED"]=13,t[e[14]="INVALID_FILE_ID"]=14,t[e[15]="INVALID_ACCOUNT_ID"]=15,t[e[16]="INVALID_CONTRACT_ID"]=16,t[e[17]="INVALID_TRANSACTION_ID"]=17,t[e[18]="RECEIPT_NOT_FOUND"]=18,t[e[19]="RECORD_NOT_FOUND"]=19,t[e[20]="INVALID_SOLIDITY_ID"]=20,t[e[21]="UNKNOWN"]=21,t[e[22]="SUCCESS"]=22,t[e[23]="FAIL_INVALID"]=23,t[e[24]="FAIL_FEE"]=24,t[e[25]="FAIL_BALANCE"]=25,t[e[26]="KEY_REQUIRED"]=26,t[e[27]="BAD_ENCODING"]=27,t[e[28]="INSUFFICIENT_ACCOUNT_BALANCE"]=28,t[e[29]="INVALID_SOLIDITY_ADDRESS"]=29,t[e[30]="INSUFFICIENT_GAS"]=30,t[e[31]="CONTRACT_SIZE_LIMIT_EXCEEDED"]=31,t[e[32]="LOCAL_CALL_MODIFICATION_EXCEPTION"]=32,t[e[33]="CONTRACT_REVERT_EXECUTED"]=33,t[e[34]="CONTRACT_EXECUTION_EXCEPTION"]=34,t[e[35]="INVALID_RECEIVING_NODE_ACCOUNT"]=35,t[e[36]="MISSING_QUERY_HEADER"]=36,t[e[37]="ACCOUNT_UPDATE_FAILED"]=37,t[e[38]="INVALID_KEY_ENCODING"]=38,t[e[39]="NULL_SOLIDITY_ADDRESS"]=39,t[e[40]="CONTRACT_UPDATE_FAILED"]=40,t[e[41]="INVALID_QUERY_HEADER"]=41,t[e[42]="INVALID_FEE_SUBMITTED"]=42,t[e[43]="INVALID_PAYER_SIGNATURE"]=43,t[e[44]="KEY_NOT_PROVIDED"]=44,t[e[45]="INVALID_EXPIRATION_TIME"]=45,t[e[46]="NO_WACL_KEY"]=46,t[e[47]="FILE_CONTENT_EMPTY"]=47,t[e[48]="INVALID_ACCOUNT_AMOUNTS"]=48,t[e[49]="EMPTY_TRANSACTION_BODY"]=49,t[e[50]="INVALID_TRANSACTION_BODY"]=50,t[e[51]="INVALID_SIGNATURE_TYPE_MISMATCHING_KEY"]=51,t[e[52]="INVALID_SIGNATURE_COUNT_MISMATCHING_KEY"]=52,t[e[53]="EMPTY_LIVE_HASH_BODY"]=53,t[e[54]="EMPTY_LIVE_HASH"]=54,t[e[55]="EMPTY_LIVE_HASH_KEYS"]=55,t[e[56]="INVALID_LIVE_HASH_SIZE"]=56,t[e[57]="EMPTY_QUERY_BODY"]=57,t[e[58]="EMPTY_LIVE_HASH_QUERY"]=58,t[e[59]="LIVE_HASH_NOT_FOUND"]=59,t[e[60]="ACCOUNT_ID_DOES_NOT_EXIST"]=60,t[e[61]="LIVE_HASH_ALREADY_EXISTS"]=61,t[e[62]="INVALID_FILE_WACL"]=62,t[e[63]="SERIALIZATION_FAILED"]=63,t[e[64]="TRANSACTION_OVERSIZE"]=64,t[e[65]="TRANSACTION_TOO_MANY_LAYERS"]=65,t[e[66]="CONTRACT_DELETED"]=66,t[e[67]="PLATFORM_NOT_ACTIVE"]=67,t[e[68]="KEY_PREFIX_MISMATCH"]=68,t[e[69]="PLATFORM_TRANSACTION_NOT_CREATED"]=69,t[e[70]="INVALID_RENEWAL_PERIOD"]=70,t[e[71]="INVALID_PAYER_ACCOUNT_ID"]=71,t[e[72]="ACCOUNT_DELETED"]=72,t[e[73]="FILE_DELETED"]=73,t[e[74]="ACCOUNT_REPEATED_IN_ACCOUNT_AMOUNTS"]=74,t[e[75]="SETTING_NEGATIVE_ACCOUNT_BALANCE"]=75,t[e[76]="OBTAINER_REQUIRED"]=76,t[e[77]="OBTAINER_SAME_CONTRACT_ID"]=77,t[e[78]="OBTAINER_DOES_NOT_EXIST"]=78,t[e[79]="MODIFYING_IMMUTABLE_CONTRACT"]=79,t[e[80]="FILE_SYSTEM_EXCEPTION"]=80,t[e[81]="AUTORENEW_DURATION_NOT_IN_RANGE"]=81,t[e[82]="ERROR_DECODING_BYTESTRING"]=82,t[e[83]="CONTRACT_FILE_EMPTY"]=83,t[e[84]="CONTRACT_BYTECODE_EMPTY"]=84,t[e[85]="INVALID_INITIAL_BALANCE"]=85,t[e[86]="INVALID_RECEIVE_RECORD_THRESHOLD"]=86,t[e[87]="INVALID_SEND_RECORD_THRESHOLD"]=87,t[e[88]="ACCOUNT_IS_NOT_GENESIS_ACCOUNT"]=88,t[e[89]="PAYER_ACCOUNT_UNAUTHORIZED"]=89,t[e[90]="INVALID_FREEZE_TRANSACTION_BODY"]=90,t[e[91]="FREEZE_TRANSACTION_BODY_NOT_FOUND"]=91,t[e[92]="TRANSFER_LIST_SIZE_LIMIT_EXCEEDED"]=92,t[e[93]="RESULT_SIZE_LIMIT_EXCEEDED"]=93,t[e[94]="NOT_SPECIAL_ACCOUNT"]=94,t[e[95]="CONTRACT_NEGATIVE_GAS"]=95,t[e[96]="CONTRACT_NEGATIVE_VALUE"]=96,t[e[97]="INVALID_FEE_FILE"]=97,t[e[98]="INVALID_EXCHANGE_RATE_FILE"]=98,t[e[99]="INSUFFICIENT_LOCAL_CALL_GAS"]=99,t[e[100]="ENTITY_NOT_ALLOWED_TO_DELETE"]=100,t[e[101]="AUTHORIZATION_FAILED"]=101,t[e[102]="FILE_UPLOADED_PROTO_INVALID"]=102,t[e[103]="FILE_UPLOADED_PROTO_NOT_SAVED_TO_DISK"]=103,t[e[104]="FEE_SCHEDULE_FILE_PART_UPLOADED"]=104,t[e[105]="EXCHANGE_RATE_CHANGE_LIMIT_EXCEEDED"]=105,t[e[106]="MAX_CONTRACT_STORAGE_EXCEEDED"]=106,t[e[107]="TRANSFER_ACCOUNT_SAME_AS_DELETE_ACCOUNT"]=107,t[e[108]="TOTAL_LEDGER_BALANCE_INVALID"]=108,t[e[110]="EXPIRATION_REDUCTION_NOT_ALLOWED"]=110,t[e[111]="MAX_GAS_LIMIT_EXCEEDED"]=111,t[e[112]="MAX_FILE_SIZE_EXCEEDED"]=112,t[e[113]="RECEIVER_SIG_REQUIRED"]=113,t[e[150]="INVALID_TOPIC_ID"]=150,t[e[155]="INVALID_ADMIN_KEY"]=155,t[e[156]="INVALID_SUBMIT_KEY"]=156,t[e[157]="UNAUTHORIZED"]=157,t[e[158]="INVALID_TOPIC_MESSAGE"]=158,t[e[159]="INVALID_AUTORENEW_ACCOUNT"]=159,t[e[160]="AUTORENEW_ACCOUNT_NOT_ALLOWED"]=160,t[e[162]="TOPIC_EXPIRED"]=162,t[e[163]="INVALID_CHUNK_NUMBER"]=163,t[e[164]="INVALID_CHUNK_TRANSACTION_ID"]=164,t[e[165]="ACCOUNT_FROZEN_FOR_TOKEN"]=165,t[e[166]="TOKENS_PER_ACCOUNT_LIMIT_EXCEEDED"]=166,t[e[167]="INVALID_TOKEN_ID"]=167,t[e[168]="INVALID_TOKEN_DECIMALS"]=168,t[e[169]="INVALID_TOKEN_INITIAL_SUPPLY"]=169,t[e[170]="INVALID_TREASURY_ACCOUNT_FOR_TOKEN"]=170,t[e[171]="INVALID_TOKEN_SYMBOL"]=171,t[e[172]="TOKEN_HAS_NO_FREEZE_KEY"]=172,t[e[173]="TRANSFERS_NOT_ZERO_SUM_FOR_TOKEN"]=173,t[e[174]="MISSING_TOKEN_SYMBOL"]=174,t[e[175]="TOKEN_SYMBOL_TOO_LONG"]=175,t[e[176]="ACCOUNT_KYC_NOT_GRANTED_FOR_TOKEN"]=176,t[e[177]="TOKEN_HAS_NO_KYC_KEY"]=177,t[e[178]="INSUFFICIENT_TOKEN_BALANCE"]=178,t[e[179]="TOKEN_WAS_DELETED"]=179,t[e[180]="TOKEN_HAS_NO_SUPPLY_KEY"]=180,t[e[181]="TOKEN_HAS_NO_WIPE_KEY"]=181,t[e[182]="INVALID_TOKEN_MINT_AMOUNT"]=182,t[e[183]="INVALID_TOKEN_BURN_AMOUNT"]=183,t[e[184]="TOKEN_NOT_ASSOCIATED_TO_ACCOUNT"]=184,t[e[185]="CANNOT_WIPE_TOKEN_TREASURY_ACCOUNT"]=185,t[e[186]="INVALID_KYC_KEY"]=186,t[e[187]="INVALID_WIPE_KEY"]=187,t[e[188]="INVALID_FREEZE_KEY"]=188,t[e[189]="INVALID_SUPPLY_KEY"]=189,t[e[190]="MISSING_TOKEN_NAME"]=190,t[e[191]="TOKEN_NAME_TOO_LONG"]=191,t[e[192]="INVALID_WIPING_AMOUNT"]=192,t[e[193]="TOKEN_IS_IMMUTABLE"]=193,t[e[194]="TOKEN_ALREADY_ASSOCIATED_TO_ACCOUNT"]=194,t[e[195]="TRANSACTION_REQUIRES_ZERO_TOKEN_BALANCES"]=195,t[e[196]="ACCOUNT_IS_TREASURY"]=196,t[e[197]="TOKEN_ID_REPEATED_IN_TOKEN_LIST"]=197,t[e[198]="TOKEN_TRANSFER_LIST_SIZE_LIMIT_EXCEEDED"]=198,t[e[199]="EMPTY_TOKEN_TRANSFER_BODY"]=199,t[e[200]="EMPTY_TOKEN_TRANSFER_ACCOUNT_AMOUNTS"]=200,t[e[201]="INVALID_SCHEDULE_ID"]=201,t[e[202]="SCHEDULE_IS_IMMUTABLE"]=202,t[e[203]="INVALID_SCHEDULE_PAYER_ID"]=203,t[e[204]="INVALID_SCHEDULE_ACCOUNT_ID"]=204,t[e[205]="NO_NEW_VALID_SIGNATURES"]=205,t[e[206]="UNRESOLVABLE_REQUIRED_SIGNERS"]=206,t[e[207]="SCHEDULED_TRANSACTION_NOT_IN_WHITELIST"]=207,t[e[208]="SOME_SIGNATURES_WERE_INVALID"]=208,t[e[209]="TRANSACTION_ID_FIELD_NOT_ALLOWED"]=209,t[e[210]="IDENTICAL_SCHEDULE_ALREADY_CREATED"]=210,t[e[211]="INVALID_ZERO_BYTE_IN_STRING"]=211,t[e[212]="SCHEDULE_ALREADY_DELETED"]=212,t[e[213]="SCHEDULE_ALREADY_EXECUTED"]=213,t[e[214]="MESSAGE_SIZE_TOO_LARGE"]=214,t[e[215]="OPERATION_REPEATED_IN_BUCKET_GROUPS"]=215,t[e[216]="BUCKET_CAPACITY_OVERFLOW"]=216,t[e[217]="NODE_CAPACITY_NOT_SUFFICIENT_FOR_OPERATION"]=217,t[e[218]="BUCKET_HAS_NO_THROTTLE_GROUPS"]=218,t[e[219]="THROTTLE_GROUP_HAS_ZERO_OPS_PER_SEC"]=219,t[e[220]="SUCCESS_BUT_MISSING_EXPECTED_OPERATION"]=220,t[e[221]="UNPARSEABLE_THROTTLE_DEFINITIONS"]=221,t[e[222]="INVALID_THROTTLE_DEFINITIONS"]=222,t[e[223]="ACCOUNT_EXPIRED_AND_PENDING_REMOVAL"]=223,t[e[224]="INVALID_TOKEN_MAX_SUPPLY"]=224,t[e[225]="INVALID_TOKEN_NFT_SERIAL_NUMBER"]=225,t[e[226]="INVALID_NFT_ID"]=226,t[e[227]="METADATA_TOO_LONG"]=227,t[e[228]="BATCH_SIZE_LIMIT_EXCEEDED"]=228,t[e[229]="INVALID_QUERY_RANGE"]=229,t[e[230]="FRACTION_DIVIDES_BY_ZERO"]=230,t[e[231]="INSUFFICIENT_PAYER_BALANCE_FOR_CUSTOM_FEE"]=231,t[e[232]="CUSTOM_FEES_LIST_TOO_LONG"]=232,t[e[233]="INVALID_CUSTOM_FEE_COLLECTOR"]=233,t[e[234]="INVALID_TOKEN_ID_IN_CUSTOM_FEES"]=234,t[e[235]="TOKEN_NOT_ASSOCIATED_TO_FEE_COLLECTOR"]=235,t[e[236]="TOKEN_MAX_SUPPLY_REACHED"]=236,t[e[237]="SENDER_DOES_NOT_OWN_NFT_SERIAL_NO"]=237,t[e[238]="CUSTOM_FEE_NOT_FULLY_SPECIFIED"]=238,t[e[239]="CUSTOM_FEE_MUST_BE_POSITIVE"]=239,t[e[240]="TOKEN_HAS_NO_FEE_SCHEDULE_KEY"]=240,t[e[241]="CUSTOM_FEE_OUTSIDE_NUMERIC_RANGE"]=241,t[e[242]="ROYALTY_FRACTION_CANNOT_EXCEED_ONE"]=242,t[e[243]="FRACTIONAL_FEE_MAX_AMOUNT_LESS_THAN_MIN_AMOUNT"]=243,t[e[244]="CUSTOM_SCHEDULE_ALREADY_HAS_NO_FEES"]=244,t[e[245]="CUSTOM_FEE_DENOMINATION_MUST_BE_FUNGIBLE_COMMON"]=245,t[e[246]="CUSTOM_FRACTIONAL_FEE_ONLY_ALLOWED_FOR_FUNGIBLE_COMMON"]=246,t[e[247]="INVALID_CUSTOM_FEE_SCHEDULE_KEY"]=247,t[e[248]="INVALID_TOKEN_MINT_METADATA"]=248,t[e[249]="INVALID_TOKEN_BURN_METADATA"]=249,t[e[250]="CURRENT_TREASURY_STILL_OWNS_NFTS"]=250,t[e[251]="ACCOUNT_STILL_OWNS_NFTS"]=251,t[e[252]="TREASURY_MUST_OWN_BURNED_NFT"]=252,t[e[253]="ACCOUNT_DOES_NOT_OWN_WIPED_NFT"]=253,t[e[254]="ACCOUNT_AMOUNT_TRANSFERS_ONLY_ALLOWED_FOR_FUNGIBLE_COMMON"]=254,t[e[255]="MAX_NFTS_IN_PRICE_REGIME_HAVE_BEEN_MINTED"]=255,t[e[256]="PAYER_ACCOUNT_DELETED"]=256,t[e[257]="CUSTOM_FEE_CHARGING_EXCEEDED_MAX_RECURSION_DEPTH"]=257,t[e[258]="CUSTOM_FEE_CHARGING_EXCEEDED_MAX_ACCOUNT_AMOUNTS"]=258,t[e[259]="INSUFFICIENT_SENDER_ACCOUNT_BALANCE_FOR_CUSTOM_FEE"]=259,t[e[260]="SERIAL_NUMBER_LIMIT_REACHED"]=260,t[e[261]="CUSTOM_ROYALTY_FEE_ONLY_ALLOWED_FOR_NON_FUNGIBLE_UNIQUE"]=261,t[e[262]="NO_REMAINING_AUTOMATIC_ASSOCIATIONS"]=262,t[e[263]="EXISTING_AUTOMATIC_ASSOCIATIONS_EXCEED_GIVEN_LIMIT"]=263,t[e[264]="REQUESTED_NUM_AUTOMATIC_ASSOCIATIONS_EXCEEDS_ASSOCIATION_LIMIT"]=264,t[e[265]="TOKEN_IS_PAUSED"]=265,t[e[266]="TOKEN_HAS_NO_PAUSE_KEY"]=266,t[e[267]="INVALID_PAUSE_KEY"]=267,t[e[268]="FREEZE_UPDATE_FILE_DOES_NOT_EXIST"]=268,t[e[269]="FREEZE_UPDATE_FILE_HASH_DOES_NOT_MATCH"]=269,t[e[270]="NO_UPGRADE_HAS_BEEN_PREPARED"]=270,t[e[271]="NO_FREEZE_IS_SCHEDULED"]=271,t[e[272]="UPDATE_FILE_HASH_CHANGED_SINCE_PREPARE_UPGRADE"]=272,t[e[273]="FREEZE_START_TIME_MUST_BE_FUTURE"]=273,t[e[274]="PREPARED_UPDATE_FILE_IS_IMMUTABLE"]=274,t[e[275]="FREEZE_ALREADY_SCHEDULED"]=275,t[e[276]="FREEZE_UPGRADE_IN_PROGRESS"]=276,t[e[277]="UPDATE_FILE_ID_DOES_NOT_MATCH_PREPARED"]=277,t[e[278]="UPDATE_FILE_HASH_DOES_NOT_MATCH_PREPARED"]=278,t[e[279]="CONSENSUS_GAS_EXHAUSTED"]=279,t[e[280]="REVERTED_SUCCESS"]=280,t[e[281]="MAX_STORAGE_IN_PRICE_REGIME_HAS_BEEN_USED"]=281,t[e[282]="INVALID_ALIAS_KEY"]=282,t[e[283]="UNEXPECTED_TOKEN_DECIMALS"]=283,t[e[284]="INVALID_PROXY_ACCOUNT_ID"]=284,t[e[285]="INVALID_TRANSFER_ACCOUNT_ID"]=285,t[e[286]="INVALID_FEE_COLLECTOR_ACCOUNT_ID"]=286,t[e[287]="ALIAS_IS_IMMUTABLE"]=287,t[e[288]="SPENDER_ACCOUNT_SAME_AS_OWNER"]=288,t[e[289]="AMOUNT_EXCEEDS_TOKEN_MAX_SUPPLY"]=289,t[e[290]="NEGATIVE_ALLOWANCE_AMOUNT"]=290,t[e[291]="CANNOT_APPROVE_FOR_ALL_FUNGIBLE_COMMON"]=291,t[e[292]="SPENDER_DOES_NOT_HAVE_ALLOWANCE"]=292,t[e[293]="AMOUNT_EXCEEDS_ALLOWANCE"]=293,t[e[294]="MAX_ALLOWANCES_EXCEEDED"]=294,t[e[295]="EMPTY_ALLOWANCES"]=295,t[e[296]="SPENDER_ACCOUNT_REPEATED_IN_ALLOWANCES"]=296,t[e[297]="REPEATED_SERIAL_NUMS_IN_NFT_ALLOWANCES"]=297,t[e[298]="FUNGIBLE_TOKEN_IN_NFT_ALLOWANCES"]=298,t[e[299]="NFT_IN_FUNGIBLE_TOKEN_ALLOWANCES"]=299,t[e[300]="INVALID_ALLOWANCE_OWNER_ID"]=300,t[e[301]="INVALID_ALLOWANCE_SPENDER_ID"]=301,t[e[302]="REPEATED_ALLOWANCES_TO_DELETE"]=302,t[e[303]="INVALID_DELEGATING_SPENDER"]=303,t[e[304]="DELEGATING_SPENDER_CANNOT_GRANT_APPROVE_FOR_ALL"]=304,t[e[305]="DELEGATING_SPENDER_DOES_NOT_HAVE_APPROVE_FOR_ALL"]=305,t[e[306]="SCHEDULE_EXPIRATION_TIME_TOO_FAR_IN_FUTURE"]=306,t[e[307]="SCHEDULE_EXPIRATION_TIME_MUST_BE_HIGHER_THAN_CONSENSUS_TIME"]=307,t[e[308]="SCHEDULE_FUTURE_THROTTLE_EXCEEDED"]=308,t[e[309]="SCHEDULE_FUTURE_GAS_LIMIT_EXCEEDED"]=309,t[e[310]="INVALID_ETHEREUM_TRANSACTION"]=310,t[e[311]="WRONG_CHAIN_ID"]=311,t[e[312]="WRONG_NONCE"]=312,t[e[313]="ACCESS_LIST_UNSUPPORTED"]=313,t[e[314]="SCHEDULE_PENDING_EXPIRATION"]=314,t[e[315]="CONTRACT_IS_TOKEN_TREASURY"]=315,t[e[316]="CONTRACT_HAS_NON_ZERO_TOKEN_BALANCES"]=316,t[e[317]="CONTRACT_EXPIRED_AND_PENDING_REMOVAL"]=317,t[e[318]="CONTRACT_HAS_NO_AUTO_RENEW_ACCOUNT"]=318,t[e[319]="PERMANENT_REMOVAL_REQUIRES_SYSTEM_INITIATION"]=319,t[e[320]="PROXY_ACCOUNT_ID_FIELD_IS_DEPRECATED"]=320,t[e[321]="SELF_STAKING_IS_NOT_ALLOWED"]=321,t[e[322]="INVALID_STAKING_ID"]=322,t[e[323]="STAKING_NOT_ENABLED"]=323,t[e[324]="INVALID_PRNG_RANGE"]=324,t[e[325]="MAX_ENTITIES_IN_PRICE_REGIME_HAVE_BEEN_CREATED"]=325,t[e[326]="INVALID_FULL_PREFIX_SIGNATURE_FOR_PRECOMPILE"]=326,t[e[327]="INSUFFICIENT_BALANCES_FOR_STORAGE_RENT"]=327,t[e[328]="MAX_CHILD_RECORDS_EXCEEDED"]=328,t[e[329]="INSUFFICIENT_BALANCES_FOR_RENEWAL_FEES"]=329,t[e[330]="TRANSACTION_HAS_UNKNOWN_FIELDS"]=330,t[e[331]="ACCOUNT_IS_IMMUTABLE"]=331,t[e[332]="ALIAS_ALREADY_ASSIGNED"]=332,t[e[333]="INVALID_METADATA_KEY"]=333,t[e[334]="TOKEN_HAS_NO_METADATA_KEY"]=334,t[e[335]="MISSING_TOKEN_METADATA"]=335,t[e[336]="MISSING_SERIAL_NUMBERS"]=336,t[e[337]="TOKEN_HAS_NO_ADMIN_KEY"]=337,t[e[338]="NODE_DELETED"]=338,t[e[339]="INVALID_NODE_ID"]=339,t[e[340]="INVALID_GOSSIP_ENDPOINT"]=340,t[e[341]="INVALID_NODE_ACCOUNT_ID"]=341,t[e[342]="INVALID_NODE_DESCRIPTION"]=342,t[e[343]="INVALID_SERVICE_ENDPOINT"]=343,t[e[344]="INVALID_GOSSIP_CA_CERTIFICATE"]=344,t[e[345]="INVALID_GRPC_CERTIFICATE"]=345,t[e[346]="INVALID_MAX_AUTO_ASSOCIATIONS"]=346,t[e[347]="MAX_NODES_CREATED"]=347,t[e[348]="IP_FQDN_CANNOT_BE_SET_FOR_SAME_ENDPOINT"]=348,t[e[349]="GOSSIP_ENDPOINT_CANNOT_HAVE_FQDN"]=349,t[e[350]="FQDN_SIZE_TOO_LARGE"]=350,t[e[351]="INVALID_ENDPOINT"]=351,t[e[352]="GOSSIP_ENDPOINTS_EXCEEDED_LIMIT"]=352,t[e[353]="TOKEN_REFERENCE_REPEATED"]=353,t[e[354]="INVALID_OWNER_ID"]=354,t[e[355]="TOKEN_REFERENCE_LIST_SIZE_LIMIT_EXCEEDED"]=355,t[e[356]="SERVICE_ENDPOINTS_EXCEEDED_LIMIT"]=356,t[e[357]="INVALID_IPV4_ADDRESS"]=357,t[e[358]="EMPTY_TOKEN_REFERENCE_LIST"]=358,t[e[359]="UPDATE_NODE_ACCOUNT_NOT_ALLOWED"]=359,t[e[360]="TOKEN_HAS_NO_METADATA_OR_SUPPLY_KEY"]=360,t[e[361]="EMPTY_PENDING_AIRDROP_ID_LIST"]=361,t[e[362]="PENDING_AIRDROP_ID_REPEATED"]=362,t[e[363]="PENDING_AIRDROP_ID_LIST_TOO_LONG"]=363,t[e[364]="PENDING_NFT_AIRDROP_ALREADY_EXISTS"]=364,t[e[365]="ACCOUNT_HAS_PENDING_AIRDROPS"]=365,t[e[366]="THROTTLED_AT_CONSENSUS"]=366,t[e[367]="INVALID_PENDING_AIRDROP_ID"]=367,t[e[368]="TOKEN_AIRDROP_WITH_FALLBACK_ROYALTY"]=368,t[e[369]="INVALID_TOKEN_IN_PENDING_AIRDROP"]=369,t[e[370]="SCHEDULE_EXPIRY_IS_BUSY"]=370,t[e[371]="INVALID_GRPC_CERTIFICATE_HASH"]=371,t[e[372]="MISSING_EXPIRY_TIME"]=372,t[e[373]="NO_SCHEDULING_ALLOWED_AFTER_SCHEDULED_RECURSION"]=373,t[e[374]="RECURSIVE_SCHEDULING_LIMIT_REACHED"]=374,t[e[375]="WAITING_FOR_LEDGER_ID"]=375,t[e[376]="MAX_ENTRIES_FOR_FEE_EXEMPT_KEY_LIST_EXCEEDED"]=376,t[e[377]="FEE_EXEMPT_KEY_LIST_CONTAINS_DUPLICATED_KEYS"]=377,t[e[378]="INVALID_KEY_IN_FEE_EXEMPT_KEY_LIST"]=378,t[e[379]="INVALID_FEE_SCHEDULE_KEY"]=379,t[e[380]="FEE_SCHEDULE_KEY_CANNOT_BE_UPDATED"]=380,t[e[381]="FEE_SCHEDULE_KEY_NOT_SET"]=381,t[e[382]="MAX_CUSTOM_FEE_LIMIT_EXCEEDED"]=382,t[e[383]="NO_VALID_MAX_CUSTOM_FEE"]=383,t[e[384]="INVALID_MAX_CUSTOM_FEES"]=384,t[e[385]="DUPLICATE_DENOMINATION_IN_MAX_CUSTOM_FEE_LIST"]=385,t[e[386]="DUPLICATE_ACCOUNT_ID_IN_MAX_CUSTOM_FEE_LIST"]=386,t[e[387]="MAX_CUSTOM_FEES_IS_NOT_SUPPORTED"]=387,t[e[388]="BATCH_LIST_EMPTY"]=388,t[e[389]="BATCH_LIST_CONTAINS_DUPLICATES"]=389,t[e[390]="BATCH_TRANSACTION_IN_BLACKLIST"]=390,t[e[391]="INNER_TRANSACTION_FAILED"]=391,t[e[392]="MISSING_BATCH_KEY"]=392,t[e[393]="BATCH_KEY_SET_ON_NON_INNER_TRANSACTION"]=393,t[e[394]="INVALID_BATCH_KEY"]=394,t[e[395]="SCHEDULE_EXPIRY_NOT_CONFIGURABLE"]=395,t[e[396]="CREATING_SYSTEM_ENTITIES"]=396,t}(),e.Transaction=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.body=$root.proto.TransactionBody.decode(e,e.uint32());break;case 2:n.sigs=$root.proto.SignatureList.decode(e,e.uint32());break;case 3:n.sigMap=$root.proto.SignatureMap.decode(e,e.uint32());break;case 4:n.bodyBytes=e.bytes();break;case 5:n.signedTransactionBytes=e.bytes();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.Transaction"},e}(),e.TransactionBody=function(){function e(e){if(this.maxCustomFees=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.transactionID=$root.proto.TransactionID.decode(e,e.uint32());break;case 2:n.nodeAccountID=$root.proto.AccountID.decode(e,e.uint32());break;case 3:n.transactionFee=e.uint64();break;case 4:n.transactionValidDuration=$root.proto.Duration.decode(e,e.uint32());break;case 5:n.generateRecord=e.bool();break;case 6:n.memo=e.string();break;case 73:n.batchKey=$root.proto.Key.decode(e,e.uint32());break;case 7:n.contractCall=$root.proto.ContractCallTransactionBody.decode(e,e.uint32());break;case 8:n.contractCreateInstance=$root.proto.ContractCreateTransactionBody.decode(e,e.uint32());break;case 9:n.contractUpdateInstance=$root.proto.ContractUpdateTransactionBody.decode(e,e.uint32());break;case 10:n.cryptoAddLiveHash=$root.proto.CryptoAddLiveHashTransactionBody.decode(e,e.uint32());break;case 11:n.cryptoCreateAccount=$root.proto.CryptoCreateTransactionBody.decode(e,e.uint32());break;case 12:n.cryptoDelete=$root.proto.CryptoDeleteTransactionBody.decode(e,e.uint32());break;case 13:n.cryptoDeleteLiveHash=$root.proto.CryptoDeleteLiveHashTransactionBody.decode(e,e.uint32());break;case 14:n.cryptoTransfer=$root.proto.CryptoTransferTransactionBody.decode(e,e.uint32());break;case 15:n.cryptoUpdateAccount=$root.proto.CryptoUpdateTransactionBody.decode(e,e.uint32());break;case 16:n.fileAppend=$root.proto.FileAppendTransactionBody.decode(e,e.uint32());break;case 17:n.fileCreate=$root.proto.FileCreateTransactionBody.decode(e,e.uint32());break;case 18:n.fileDelete=$root.proto.FileDeleteTransactionBody.decode(e,e.uint32());break;case 19:n.fileUpdate=$root.proto.FileUpdateTransactionBody.decode(e,e.uint32());break;case 20:n.systemDelete=$root.proto.SystemDeleteTransactionBody.decode(e,e.uint32());break;case 21:n.systemUndelete=$root.proto.SystemUndeleteTransactionBody.decode(e,e.uint32());break;case 22:n.contractDeleteInstance=$root.proto.ContractDeleteTransactionBody.decode(e,e.uint32());break;case 23:n.freeze=$root.proto.FreezeTransactionBody.decode(e,e.uint32());break;case 24:n.consensusCreateTopic=$root.proto.ConsensusCreateTopicTransactionBody.decode(e,e.uint32());break;case 25:n.consensusUpdateTopic=$root.proto.ConsensusUpdateTopicTransactionBody.decode(e,e.uint32());break;case 26:n.consensusDeleteTopic=$root.proto.ConsensusDeleteTopicTransactionBody.decode(e,e.uint32());break;case 27:n.consensusSubmitMessage=$root.proto.ConsensusSubmitMessageTransactionBody.decode(e,e.uint32());break;case 28:n.uncheckedSubmit=$root.proto.UncheckedSubmitBody.decode(e,e.uint32());break;case 29:n.tokenCreation=$root.proto.TokenCreateTransactionBody.decode(e,e.uint32());break;case 31:n.tokenFreeze=$root.proto.TokenFreezeAccountTransactionBody.decode(e,e.uint32());break;case 32:n.tokenUnfreeze=$root.proto.TokenUnfreezeAccountTransactionBody.decode(e,e.uint32());break;case 33:n.tokenGrantKyc=$root.proto.TokenGrantKycTransactionBody.decode(e,e.uint32());break;case 34:n.tokenRevokeKyc=$root.proto.TokenRevokeKycTransactionBody.decode(e,e.uint32());break;case 35:n.tokenDeletion=$root.proto.TokenDeleteTransactionBody.decode(e,e.uint32());break;case 36:n.tokenUpdate=$root.proto.TokenUpdateTransactionBody.decode(e,e.uint32());break;case 37:n.tokenMint=$root.proto.TokenMintTransactionBody.decode(e,e.uint32());break;case 38:n.tokenBurn=$root.proto.TokenBurnTransactionBody.decode(e,e.uint32());break;case 39:n.tokenWipe=$root.proto.TokenWipeAccountTransactionBody.decode(e,e.uint32());break;case 40:n.tokenAssociate=$root.proto.TokenAssociateTransactionBody.decode(e,e.uint32());break;case 41:n.tokenDissociate=$root.proto.TokenDissociateTransactionBody.decode(e,e.uint32());break;case 42:n.scheduleCreate=$root.proto.ScheduleCreateTransactionBody.decode(e,e.uint32());break;case 43:n.scheduleDelete=$root.proto.ScheduleDeleteTransactionBody.decode(e,e.uint32());break;case 44:n.scheduleSign=$root.proto.ScheduleSignTransactionBody.decode(e,e.uint32());break;case 45:n.tokenFeeScheduleUpdate=$root.proto.TokenFeeScheduleUpdateTransactionBody.decode(e,e.uint32());break;case 46:n.tokenPause=$root.proto.TokenPauseTransactionBody.decode(e,e.uint32());break;case 47:n.tokenUnpause=$root.proto.TokenUnpauseTransactionBody.decode(e,e.uint32());break;case 48:n.cryptoApproveAllowance=$root.proto.CryptoApproveAllowanceTransactionBody.decode(e,e.uint32());break;case 49:n.cryptoDeleteAllowance=$root.proto.CryptoDeleteAllowanceTransactionBody.decode(e,e.uint32());break;case 50:n.ethereumTransaction=$root.proto.EthereumTransactionBody.decode(e,e.uint32());break;case 51:n.nodeStakeUpdate=$root.proto.NodeStakeUpdateTransactionBody.decode(e,e.uint32());break;case 52:n.utilPrng=$root.proto.UtilPrngTransactionBody.decode(e,e.uint32());break;case 53:n.tokenUpdateNfts=$root.proto.TokenUpdateNftsTransactionBody.decode(e,e.uint32());break;case 54:n.nodeCreate=$root.com.hedera.hapi.node.addressbook.NodeCreateTransactionBody.decode(e,e.uint32());break;case 55:n.nodeUpdate=$root.com.hedera.hapi.node.addressbook.NodeUpdateTransactionBody.decode(e,e.uint32());break;case 56:n.nodeDelete=$root.com.hedera.hapi.node.addressbook.NodeDeleteTransactionBody.decode(e,e.uint32());break;case 57:n.tokenReject=$root.proto.TokenRejectTransactionBody.decode(e,e.uint32());break;case 58:n.tokenAirdrop=$root.proto.TokenAirdropTransactionBody.decode(e,e.uint32());break;case 59:n.tokenCancelAirdrop=$root.proto.TokenCancelAirdropTransactionBody.decode(e,e.uint32());break;case 60:n.tokenClaimAirdrop=$root.proto.TokenClaimAirdropTransactionBody.decode(e,e.uint32());break;case 65:n.stateSignatureTransaction=$root.com.hedera.hapi.platform.event.StateSignatureTransaction.decode(e,e.uint32());break;case 66:n.hintsPreprocessingVote=$root.com.hedera.hapi.services.auxiliary.hints.HintsPreprocessingVoteTransactionBody.decode(e,e.uint32());break;case 67:n.hintsKeyPublication=$root.com.hedera.hapi.services.auxiliary.hints.HintsKeyPublicationTransactionBody.decode(e,e.uint32());break;case 68:n.hintsPartialSignature=$root.com.hedera.hapi.services.auxiliary.hints.HintsPartialSignatureTransactionBody.decode(e,e.uint32());break;case 69:n.historyProofSignature=$root.com.hedera.hapi.services.auxiliary.history.HistoryProofSignatureTransactionBody.decode(e,e.uint32());break;case 70:n.historyProofKeyPublication=$root.com.hedera.hapi.services.auxiliary.history.HistoryProofKeyPublicationTransactionBody.decode(e,e.uint32());break;case 71:n.historyProofVote=$root.com.hedera.hapi.services.auxiliary.history.HistoryProofVoteTransactionBody.decode(e,e.uint32());break;case 72:n.crsPublication=$root.com.hedera.hapi.services.auxiliary.hints.CrsPublicationTransactionBody.decode(e,e.uint32());break;case 74:n.atomicBatch=$root.proto.AtomicBatchTransactionBody.decode(e,e.uint32());break;case 1001:n.maxCustomFees&&n.maxCustomFees.length||(n.maxCustomFees=[]),n.maxCustomFees.push($root.proto.CustomFeeLimit.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TransactionBody"},e}(),e.AtomicBatchTransactionBody=function(){function e(e){if(this.transactions=[],e)for(var t=Object.keys(e),r=0;r>>3==1)n.transactions&&n.transactions.length||(n.transactions=[]),n.transactions.push(e.bytes());else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.AtomicBatchTransactionBody"},e}(),e.ShardID=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==1)n.shardNum=e.int64();else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ShardID"},e}(),e.RealmID=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.shardNum=e.int64();break;case 2:n.realmNum=e.int64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.RealmID"},e}(),e.TokenID=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.shardNum=e.int64();break;case 2:n.realmNum=e.int64();break;case 3:n.tokenNum=e.int64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenID"},e}(),e.BlockHashAlgorithm=function(){const e={},t=Object.create(e);return t[e[0]="SHA2_384"]=0,t}(),e.AccountID=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.shardNum=e.int64();break;case 2:n.realmNum=e.int64();break;case 3:n.accountNum=e.int64();break;case 4:n.alias=e.bytes();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.AccountID"},e}(),e.NftID=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.token_ID=$root.proto.TokenID.decode(e,e.uint32());break;case 2:n.serialNumber=e.int64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.NftID"},e}(),e.FileID=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.shardNum=e.int64();break;case 2:n.realmNum=e.int64();break;case 3:n.fileNum=e.int64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FileID"},e}(),e.ContractID=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.shardNum=e.int64();break;case 2:n.realmNum=e.int64();break;case 3:n.contractNum=e.int64();break;case 4:n.evmAddress=e.bytes();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractID"},e}(),e.TopicID=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.shardNum=e.int64();break;case 2:n.realmNum=e.int64();break;case 3:n.topicNum=e.int64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TopicID"},e}(),e.ScheduleID=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.shardNum=e.int64();break;case 2:n.realmNum=e.int64();break;case 3:n.scheduleNum=e.int64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ScheduleID"},e}(),e.TransactionID=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.transactionValidStart=$root.proto.Timestamp.decode(e,e.uint32());break;case 2:n.accountID=$root.proto.AccountID.decode(e,e.uint32());break;case 3:n.scheduled=e.bool();break;case 4:n.nonce=e.int32();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TransactionID"},e}(),e.AccountAmount=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.accountID=$root.proto.AccountID.decode(e,e.uint32());break;case 2:n.amount=e.sint64();break;case 3:n.isApproval=e.bool();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.AccountAmount"},e}(),e.TransferList=function(){function e(e){if(this.accountAmounts=[],e)for(var t=Object.keys(e),r=0;r>>3==1)n.accountAmounts&&n.accountAmounts.length||(n.accountAmounts=[]),n.accountAmounts.push($root.proto.AccountAmount.decode(e,e.uint32()));else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TransferList"},e}(),e.NftTransfer=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.senderAccountID=$root.proto.AccountID.decode(e,e.uint32());break;case 2:n.receiverAccountID=$root.proto.AccountID.decode(e,e.uint32());break;case 3:n.serialNumber=e.int64();break;case 4:n.isApproval=e.bool();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.NftTransfer"},e}(),e.TokenTransferList=function(){function e(e){if(this.transfers=[],this.nftTransfers=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.token=$root.proto.TokenID.decode(e,e.uint32());break;case 2:n.transfers&&n.transfers.length||(n.transfers=[]),n.transfers.push($root.proto.AccountAmount.decode(e,e.uint32()));break;case 3:n.nftTransfers&&n.nftTransfers.length||(n.nftTransfers=[]),n.nftTransfers.push($root.proto.NftTransfer.decode(e,e.uint32()));break;case 4:n.expectedDecimals=$root.google.protobuf.UInt32Value.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenTransferList"},e}(),e.Fraction=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.numerator=e.int64();break;case 2:n.denominator=e.int64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.Fraction"},e}(),e.TokenType=function(){const e={},t=Object.create(e);return t[e[0]="FUNGIBLE_COMMON"]=0,t[e[1]="NON_FUNGIBLE_UNIQUE"]=1,t}(),e.SubType=function(){const e={},t=Object.create(e);return t[e[0]="DEFAULT"]=0,t[e[1]="TOKEN_FUNGIBLE_COMMON"]=1,t[e[2]="TOKEN_NON_FUNGIBLE_UNIQUE"]=2,t[e[3]="TOKEN_FUNGIBLE_COMMON_WITH_CUSTOM_FEES"]=3,t[e[4]="TOKEN_NON_FUNGIBLE_UNIQUE_WITH_CUSTOM_FEES"]=4,t[e[5]="SCHEDULE_CREATE_CONTRACT_CALL"]=5,t[e[6]="TOPIC_CREATE_WITH_CUSTOM_FEES"]=6,t}(),e.TokenSupplyType=function(){const e={},t=Object.create(e);return t[e[0]="INFINITE"]=0,t[e[1]="FINITE"]=1,t}(),e.TokenKeyValidation=function(){const e={},t=Object.create(e);return t[e[0]="FULL_VALIDATION"]=0,t[e[1]="NO_VALIDATION"]=1,t}(),e.TokenFreezeStatus=function(){const e={},t=Object.create(e);return t[e[0]="FreezeNotApplicable"]=0,t[e[1]="Frozen"]=1,t[e[2]="Unfrozen"]=2,t}(),e.TokenKycStatus=function(){const e={},t=Object.create(e);return t[e[0]="KycNotApplicable"]=0,t[e[1]="Granted"]=1,t[e[2]="Revoked"]=2,t}(),e.TokenPauseStatus=function(){const e={},t=Object.create(e);return t[e[0]="PauseNotApplicable"]=0,t[e[1]="Paused"]=1,t[e[2]="Unpaused"]=2,t}(),e.Key=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.contractID=$root.proto.ContractID.decode(e,e.uint32());break;case 2:n.ed25519=e.bytes();break;case 3:n.RSA_3072=e.bytes();break;case 4:n.ECDSA_384=e.bytes();break;case 5:n.thresholdKey=$root.proto.ThresholdKey.decode(e,e.uint32());break;case 6:n.keyList=$root.proto.KeyList.decode(e,e.uint32());break;case 7:n.ECDSASecp256k1=e.bytes();break;case 8:n.delegatableContractId=$root.proto.ContractID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.Key"},e}(),e.ThresholdKey=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.threshold=e.uint32();break;case 2:n.keys=$root.proto.KeyList.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ThresholdKey"},e}(),e.KeyList=function(){function e(e){if(this.keys=[],e)for(var t=Object.keys(e),r=0;r>>3==1)n.keys&&n.keys.length||(n.keys=[]),n.keys.push($root.proto.Key.decode(e,e.uint32()));else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.KeyList"},e}(),e.Signature=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.contract=e.bytes();break;case 2:n.ed25519=e.bytes();break;case 3:n.RSA_3072=e.bytes();break;case 4:n.ECDSA_384=e.bytes();break;case 5:n.thresholdSignature=$root.proto.ThresholdSignature.decode(e,e.uint32());break;case 6:n.signatureList=$root.proto.SignatureList.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.Signature"},e}(),e.ThresholdSignature=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==2)n.sigs=$root.proto.SignatureList.decode(e,e.uint32());else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ThresholdSignature"},e}(),e.SignatureList=function(){function e(e){if(this.sigs=[],e)for(var t=Object.keys(e),r=0;r>>3==2)n.sigs&&n.sigs.length||(n.sigs=[]),n.sigs.push($root.proto.Signature.decode(e,e.uint32()));else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.SignatureList"},e}(),e.SignaturePair=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.pubKeyPrefix=e.bytes();break;case 2:n.contract=e.bytes();break;case 3:n.ed25519=e.bytes();break;case 4:n.RSA_3072=e.bytes();break;case 5:n.ECDSA_384=e.bytes();break;case 6:n.ECDSASecp256k1=e.bytes();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.SignaturePair"},e}(),e.SignatureMap=function(){function e(e){if(this.sigPair=[],e)for(var t=Object.keys(e),r=0;r>>3==1)n.sigPair&&n.sigPair.length||(n.sigPair=[]),n.sigPair.push($root.proto.SignaturePair.decode(e,e.uint32()));else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.SignatureMap"},e}(),e.HederaFunctionality=function(){const e={},t=Object.create(e);return t[e[0]="NONE"]=0,t[e[1]="CryptoTransfer"]=1,t[e[2]="CryptoUpdate"]=2,t[e[3]="CryptoDelete"]=3,t[e[4]="CryptoAddLiveHash"]=4,t[e[5]="CryptoDeleteLiveHash"]=5,t[e[6]="ContractCall"]=6,t[e[7]="ContractCreate"]=7,t[e[8]="ContractUpdate"]=8,t[e[9]="FileCreate"]=9,t[e[10]="FileAppend"]=10,t[e[11]="FileUpdate"]=11,t[e[12]="FileDelete"]=12,t[e[13]="CryptoGetAccountBalance"]=13,t[e[14]="CryptoGetAccountRecords"]=14,t[e[15]="CryptoGetInfo"]=15,t[e[16]="ContractCallLocal"]=16,t[e[17]="ContractGetInfo"]=17,t[e[18]="ContractGetBytecode"]=18,t[e[19]="GetBySolidityID"]=19,t[e[20]="GetByKey"]=20,t[e[21]="CryptoGetLiveHash"]=21,t[e[22]="CryptoGetStakers"]=22,t[e[23]="FileGetContents"]=23,t[e[24]="FileGetInfo"]=24,t[e[25]="TransactionGetRecord"]=25,t[e[26]="ContractGetRecords"]=26,t[e[27]="CryptoCreate"]=27,t[e[28]="SystemDelete"]=28,t[e[29]="SystemUndelete"]=29,t[e[30]="ContractDelete"]=30,t[e[31]="Freeze"]=31,t[e[32]="CreateTransactionRecord"]=32,t[e[33]="CryptoAccountAutoRenew"]=33,t[e[34]="ContractAutoRenew"]=34,t[e[35]="GetVersionInfo"]=35,t[e[36]="TransactionGetReceipt"]=36,t[e[50]="ConsensusCreateTopic"]=50,t[e[51]="ConsensusUpdateTopic"]=51,t[e[52]="ConsensusDeleteTopic"]=52,t[e[53]="ConsensusGetTopicInfo"]=53,t[e[54]="ConsensusSubmitMessage"]=54,t[e[55]="UncheckedSubmit"]=55,t[e[56]="TokenCreate"]=56,t[e[58]="TokenGetInfo"]=58,t[e[59]="TokenFreezeAccount"]=59,t[e[60]="TokenUnfreezeAccount"]=60,t[e[61]="TokenGrantKycToAccount"]=61,t[e[62]="TokenRevokeKycFromAccount"]=62,t[e[63]="TokenDelete"]=63,t[e[64]="TokenUpdate"]=64,t[e[65]="TokenMint"]=65,t[e[66]="TokenBurn"]=66,t[e[67]="TokenAccountWipe"]=67,t[e[68]="TokenAssociateToAccount"]=68,t[e[69]="TokenDissociateFromAccount"]=69,t[e[70]="ScheduleCreate"]=70,t[e[71]="ScheduleDelete"]=71,t[e[72]="ScheduleSign"]=72,t[e[73]="ScheduleGetInfo"]=73,t[e[74]="TokenGetAccountNftInfos"]=74,t[e[75]="TokenGetNftInfo"]=75,t[e[76]="TokenGetNftInfos"]=76,t[e[77]="TokenFeeScheduleUpdate"]=77,t[e[78]="NetworkGetExecutionTime"]=78,t[e[79]="TokenPause"]=79,t[e[80]="TokenUnpause"]=80,t[e[81]="CryptoApproveAllowance"]=81,t[e[82]="CryptoDeleteAllowance"]=82,t[e[83]="GetAccountDetails"]=83,t[e[84]="EthereumTransaction"]=84,t[e[85]="NodeStakeUpdate"]=85,t[e[86]="UtilPrng"]=86,t[e[87]="TransactionGetFastRecord"]=87,t[e[88]="TokenUpdateNfts"]=88,t[e[89]="NodeCreate"]=89,t[e[90]="NodeUpdate"]=90,t[e[91]="NodeDelete"]=91,t[e[92]="TokenReject"]=92,t[e[93]="TokenAirdrop"]=93,t[e[94]="TokenCancelAirdrop"]=94,t[e[95]="TokenClaimAirdrop"]=95,t[e[100]="StateSignatureTransaction"]=100,t[e[101]="HintsKeyPublication"]=101,t[e[102]="HintsPreprocessingVote"]=102,t[e[103]="HintsPartialSignature"]=103,t[e[104]="HistoryAssemblySignature"]=104,t[e[105]="HistoryProofKeyPublication"]=105,t[e[106]="HistoryProofVote"]=106,t[e[107]="CrsPublication"]=107,t[e[108]="AtomicBatch"]=108,t}(),e.FeeComponents=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.min=e.int64();break;case 2:n.max=e.int64();break;case 3:n.constant=e.int64();break;case 4:n.bpt=e.int64();break;case 5:n.vpt=e.int64();break;case 6:n.rbh=e.int64();break;case 7:n.sbh=e.int64();break;case 8:n.gas=e.int64();break;case 9:n.tv=e.int64();break;case 10:n.bpr=e.int64();break;case 11:n.sbpr=e.int64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FeeComponents"},e}(),e.TransactionFeeSchedule=function(){function e(e){if(this.fees=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.hederaFunctionality=e.int32();break;case 2:n.feeData=$root.proto.FeeData.decode(e,e.uint32());break;case 3:n.fees&&n.fees.length||(n.fees=[]),n.fees.push($root.proto.FeeData.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TransactionFeeSchedule"},e}(),e.FeeData=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.nodedata=$root.proto.FeeComponents.decode(e,e.uint32());break;case 2:n.networkdata=$root.proto.FeeComponents.decode(e,e.uint32());break;case 3:n.servicedata=$root.proto.FeeComponents.decode(e,e.uint32());break;case 4:n.subType=e.int32();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FeeData"},e}(),e.FeeSchedule=function(){function e(e){if(this.transactionFeeSchedule=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.transactionFeeSchedule&&n.transactionFeeSchedule.length||(n.transactionFeeSchedule=[]),n.transactionFeeSchedule.push($root.proto.TransactionFeeSchedule.decode(e,e.uint32()));break;case 2:n.expiryTime=$root.proto.TimestampSeconds.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FeeSchedule"},e}(),e.CurrentAndNextFeeSchedule=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.currentFeeSchedule=$root.proto.FeeSchedule.decode(e,e.uint32());break;case 2:n.nextFeeSchedule=$root.proto.FeeSchedule.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CurrentAndNextFeeSchedule"},e}(),e.ServiceEndpoint=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.ipAddressV4=e.bytes();break;case 2:n.port=e.int32();break;case 3:n.domainName=e.string();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ServiceEndpoint"},e}(),e.NodeAddress=function(){function e(e){if(this.serviceEndpoint=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.ipAddress=e.bytes();break;case 2:n.portno=e.int32();break;case 3:n.memo=e.bytes();break;case 4:n.RSA_PubKey=e.string();break;case 5:n.nodeId=e.int64();break;case 6:n.nodeAccountId=$root.proto.AccountID.decode(e,e.uint32());break;case 7:n.nodeCertHash=e.bytes();break;case 8:n.serviceEndpoint&&n.serviceEndpoint.length||(n.serviceEndpoint=[]),n.serviceEndpoint.push($root.proto.ServiceEndpoint.decode(e,e.uint32()));break;case 9:n.description=e.string();break;case 10:n.stake=e.int64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.NodeAddress"},e}(),e.NodeAddressBook=function(){function e(e){if(this.nodeAddress=[],e)for(var t=Object.keys(e),r=0;r>>3==1)n.nodeAddress&&n.nodeAddress.length||(n.nodeAddress=[]),n.nodeAddress.push($root.proto.NodeAddress.decode(e,e.uint32()));else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.NodeAddressBook"},e}(),e.SemanticVersion=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.major=e.int32();break;case 2:n.minor=e.int32();break;case 3:n.patch=e.int32();break;case 4:n.pre=e.string();break;case 5:n.build=e.string();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.SemanticVersion"},e}(),e.Setting=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.name=e.string();break;case 2:n.value=e.string();break;case 3:n.data=e.bytes();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.Setting"},e}(),e.ServicesConfigurationList=function(){function e(e){if(this.nameValue=[],e)for(var t=Object.keys(e),r=0;r>>3==1)n.nameValue&&n.nameValue.length||(n.nameValue=[]),n.nameValue.push($root.proto.Setting.decode(e,e.uint32()));else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ServicesConfigurationList"},e}(),e.TokenRelationship=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.tokenId=$root.proto.TokenID.decode(e,e.uint32());break;case 2:n.symbol=e.string();break;case 3:n.balance=e.uint64();break;case 4:n.kycStatus=e.int32();break;case 5:n.freezeStatus=e.int32();break;case 6:n.decimals=e.uint32();break;case 7:n.automaticAssociation=e.bool();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenRelationship"},e}(),e.TokenBalance=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.tokenId=$root.proto.TokenID.decode(e,e.uint32());break;case 2:n.balance=e.uint64();break;case 3:n.decimals=e.uint32();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenBalance"},e}(),e.TokenBalances=function(){function e(e){if(this.tokenBalances=[],e)for(var t=Object.keys(e),r=0;r>>3==1)n.tokenBalances&&n.tokenBalances.length||(n.tokenBalances=[]),n.tokenBalances.push($root.proto.TokenBalance.decode(e,e.uint32()));else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenBalances"},e}(),e.TokenAssociation=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.tokenId=$root.proto.TokenID.decode(e,e.uint32());break;case 2:n.accountId=$root.proto.AccountID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenAssociation"},e}(),e.StakingInfo=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.declineReward=e.bool();break;case 2:n.stakePeriodStart=$root.proto.Timestamp.decode(e,e.uint32());break;case 3:n.pendingReward=e.int64();break;case 4:n.stakedToMe=e.int64();break;case 5:n.stakedAccountId=$root.proto.AccountID.decode(e,e.uint32());break;case 6:n.stakedNodeId=e.int64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.StakingInfo"},e}(),e.PendingAirdropId=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.senderId=$root.proto.AccountID.decode(e,e.uint32());break;case 2:n.receiverId=$root.proto.AccountID.decode(e,e.uint32());break;case 3:n.fungibleTokenType=$root.proto.TokenID.decode(e,e.uint32());break;case 4:n.nonFungibleToken=$root.proto.NftID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.PendingAirdropId"},e}(),e.PendingAirdropValue=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==1)n.amount=e.uint64();else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.PendingAirdropValue"},e}(),e.Timestamp=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.seconds=e.int64();break;case 2:n.nanos=e.int32();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.Timestamp"},e}(),e.TimestampSeconds=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==1)n.seconds=e.int64();else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TimestampSeconds"},e}(),e.SystemDeleteTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.fileID=$root.proto.FileID.decode(e,e.uint32());break;case 2:n.contractID=$root.proto.ContractID.decode(e,e.uint32());break;case 3:n.expirationTime=$root.proto.TimestampSeconds.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.SystemDeleteTransactionBody"},e}(),e.SystemUndeleteTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.fileID=$root.proto.FileID.decode(e,e.uint32());break;case 2:n.contractID=$root.proto.ContractID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.SystemUndeleteTransactionBody"},e}(),e.FreezeTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.startHour=e.int32();break;case 2:n.startMin=e.int32();break;case 3:n.endHour=e.int32();break;case 4:n.endMin=e.int32();break;case 5:n.updateFile=$root.proto.FileID.decode(e,e.uint32());break;case 6:n.fileHash=e.bytes();break;case 7:n.startTime=$root.proto.Timestamp.decode(e,e.uint32());break;case 8:n.freezeType=e.int32();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FreezeTransactionBody"},e}(),e.FreezeType=function(){const e={},t=Object.create(e);return t[e[0]="UNKNOWN_FREEZE_TYPE"]=0,t[e[1]="FREEZE_ONLY"]=1,t[e[2]="PREPARE_UPGRADE"]=2,t[e[3]="FREEZE_UPGRADE"]=3,t[e[4]="FREEZE_ABORT"]=4,t[e[5]="TELEMETRY_UPGRADE"]=5,t}(),e.ContractCallTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.contractID=$root.proto.ContractID.decode(e,e.uint32());break;case 2:n.gas=e.int64();break;case 3:n.amount=e.int64();break;case 4:n.functionParameters=e.bytes();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractCallTransactionBody"},e}(),e.ContractCreateTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.fileID=$root.proto.FileID.decode(e,e.uint32());break;case 16:n.initcode=e.bytes();break;case 3:n.adminKey=$root.proto.Key.decode(e,e.uint32());break;case 4:n.gas=e.int64();break;case 5:n.initialBalance=e.int64();break;case 6:n.proxyAccountID=$root.proto.AccountID.decode(e,e.uint32());break;case 8:n.autoRenewPeriod=$root.proto.Duration.decode(e,e.uint32());break;case 9:n.constructorParameters=e.bytes();break;case 10:n.shardID=$root.proto.ShardID.decode(e,e.uint32());break;case 11:n.realmID=$root.proto.RealmID.decode(e,e.uint32());break;case 12:n.newRealmAdminKey=$root.proto.Key.decode(e,e.uint32());break;case 13:n.memo=e.string();break;case 14:n.maxAutomaticTokenAssociations=e.int32();break;case 15:n.autoRenewAccountId=$root.proto.AccountID.decode(e,e.uint32());break;case 17:n.stakedAccountId=$root.proto.AccountID.decode(e,e.uint32());break;case 18:n.stakedNodeId=e.int64();break;case 19:n.declineReward=e.bool();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractCreateTransactionBody"},e}(),e.Duration=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==1)n.seconds=e.int64();else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.Duration"},e}(),e.ContractUpdateTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.contractID=$root.proto.ContractID.decode(e,e.uint32());break;case 2:n.expirationTime=$root.proto.Timestamp.decode(e,e.uint32());break;case 3:n.adminKey=$root.proto.Key.decode(e,e.uint32());break;case 6:n.proxyAccountID=$root.proto.AccountID.decode(e,e.uint32());break;case 7:n.autoRenewPeriod=$root.proto.Duration.decode(e,e.uint32());break;case 8:n.fileID=$root.proto.FileID.decode(e,e.uint32());break;case 9:n.memo=e.string();break;case 10:n.memoWrapper=$root.google.protobuf.StringValue.decode(e,e.uint32());break;case 11:n.maxAutomaticTokenAssociations=$root.google.protobuf.Int32Value.decode(e,e.uint32());break;case 12:n.autoRenewAccountId=$root.proto.AccountID.decode(e,e.uint32());break;case 13:n.stakedAccountId=$root.proto.AccountID.decode(e,e.uint32());break;case 14:n.stakedNodeId=e.int64();break;case 15:n.declineReward=$root.google.protobuf.BoolValue.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractUpdateTransactionBody"},e}(),e.LiveHash=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.accountId=$root.proto.AccountID.decode(e,e.uint32());break;case 2:n.hash=e.bytes();break;case 3:n.keys=$root.proto.KeyList.decode(e,e.uint32());break;case 5:n.duration=$root.proto.Duration.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.LiveHash"},e}(),e.CryptoAddLiveHashTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==3)n.liveHash=$root.proto.LiveHash.decode(e,e.uint32());else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoAddLiveHashTransactionBody"},e}(),e.CryptoCreateTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.key=$root.proto.Key.decode(e,e.uint32());break;case 2:n.initialBalance=e.uint64();break;case 3:n.proxyAccountID=$root.proto.AccountID.decode(e,e.uint32());break;case 6:n.sendRecordThreshold=e.uint64();break;case 7:n.receiveRecordThreshold=e.uint64();break;case 8:n.receiverSigRequired=e.bool();break;case 9:n.autoRenewPeriod=$root.proto.Duration.decode(e,e.uint32());break;case 10:n.shardID=$root.proto.ShardID.decode(e,e.uint32());break;case 11:n.realmID=$root.proto.RealmID.decode(e,e.uint32());break;case 12:n.newRealmAdminKey=$root.proto.Key.decode(e,e.uint32());break;case 13:n.memo=e.string();break;case 14:n.maxAutomaticTokenAssociations=e.int32();break;case 15:n.stakedAccountId=$root.proto.AccountID.decode(e,e.uint32());break;case 16:n.stakedNodeId=e.int64();break;case 17:n.declineReward=e.bool();break;case 18:n.alias=e.bytes();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoCreateTransactionBody"},e}(),e.CryptoDeleteTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.transferAccountID=$root.proto.AccountID.decode(e,e.uint32());break;case 2:n.deleteAccountID=$root.proto.AccountID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoDeleteTransactionBody"},e}(),e.CryptoDeleteLiveHashTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.accountOfLiveHash=$root.proto.AccountID.decode(e,e.uint32());break;case 2:n.liveHashToDelete=e.bytes();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoDeleteLiveHashTransactionBody"},e}(),e.CryptoTransferTransactionBody=function(){function e(e){if(this.tokenTransfers=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.transfers=$root.proto.TransferList.decode(e,e.uint32());break;case 2:n.tokenTransfers&&n.tokenTransfers.length||(n.tokenTransfers=[]),n.tokenTransfers.push($root.proto.TokenTransferList.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoTransferTransactionBody"},e}(),e.CryptoUpdateTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 2:n.accountIDToUpdate=$root.proto.AccountID.decode(e,e.uint32());break;case 3:n.key=$root.proto.Key.decode(e,e.uint32());break;case 4:n.proxyAccountID=$root.proto.AccountID.decode(e,e.uint32());break;case 5:n.proxyFraction=e.int32();break;case 6:n.sendRecordThreshold=e.uint64();break;case 11:n.sendRecordThresholdWrapper=$root.google.protobuf.UInt64Value.decode(e,e.uint32());break;case 7:n.receiveRecordThreshold=e.uint64();break;case 12:n.receiveRecordThresholdWrapper=$root.google.protobuf.UInt64Value.decode(e,e.uint32());break;case 8:n.autoRenewPeriod=$root.proto.Duration.decode(e,e.uint32());break;case 9:n.expirationTime=$root.proto.Timestamp.decode(e,e.uint32());break;case 10:n.receiverSigRequired=e.bool();break;case 13:n.receiverSigRequiredWrapper=$root.google.protobuf.BoolValue.decode(e,e.uint32());break;case 14:n.memo=$root.google.protobuf.StringValue.decode(e,e.uint32());break;case 15:n.maxAutomaticTokenAssociations=$root.google.protobuf.Int32Value.decode(e,e.uint32());break;case 16:n.stakedAccountId=$root.proto.AccountID.decode(e,e.uint32());break;case 17:n.stakedNodeId=e.int64();break;case 18:n.declineReward=$root.google.protobuf.BoolValue.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoUpdateTransactionBody"},e}(),e.CryptoApproveAllowanceTransactionBody=function(){function e(e){if(this.cryptoAllowances=[],this.nftAllowances=[],this.tokenAllowances=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.cryptoAllowances&&n.cryptoAllowances.length||(n.cryptoAllowances=[]),n.cryptoAllowances.push($root.proto.CryptoAllowance.decode(e,e.uint32()));break;case 2:n.nftAllowances&&n.nftAllowances.length||(n.nftAllowances=[]),n.nftAllowances.push($root.proto.NftAllowance.decode(e,e.uint32()));break;case 3:n.tokenAllowances&&n.tokenAllowances.length||(n.tokenAllowances=[]),n.tokenAllowances.push($root.proto.TokenAllowance.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoApproveAllowanceTransactionBody"},e}(),e.CryptoAllowance=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.owner=$root.proto.AccountID.decode(e,e.uint32());break;case 2:n.spender=$root.proto.AccountID.decode(e,e.uint32());break;case 3:n.amount=e.int64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoAllowance"},e}(),e.NftAllowance=function(){function e(e){if(this.serialNumbers=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.tokenId=$root.proto.TokenID.decode(e,e.uint32());break;case 2:n.owner=$root.proto.AccountID.decode(e,e.uint32());break;case 3:n.spender=$root.proto.AccountID.decode(e,e.uint32());break;case 4:if(n.serialNumbers&&n.serialNumbers.length||(n.serialNumbers=[]),2==(7&o))for(var i=e.uint32()+e.pos;e.pos>>3){case 1:n.tokenId=$root.proto.TokenID.decode(e,e.uint32());break;case 2:n.owner=$root.proto.AccountID.decode(e,e.uint32());break;case 3:n.spender=$root.proto.AccountID.decode(e,e.uint32());break;case 4:n.amount=e.int64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenAllowance"},e}(),e.CryptoDeleteAllowanceTransactionBody=function(){function e(e){if(this.nftAllowances=[],e)for(var t=Object.keys(e),r=0;r>>3==2)n.nftAllowances&&n.nftAllowances.length||(n.nftAllowances=[]),n.nftAllowances.push($root.proto.NftRemoveAllowance.decode(e,e.uint32()));else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoDeleteAllowanceTransactionBody"},e}(),e.NftRemoveAllowance=function(){function e(e){if(this.serialNumbers=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.tokenId=$root.proto.TokenID.decode(e,e.uint32());break;case 2:n.owner=$root.proto.AccountID.decode(e,e.uint32());break;case 3:if(n.serialNumbers&&n.serialNumbers.length||(n.serialNumbers=[]),2==(7&o))for(var i=e.uint32()+e.pos;e.pos>>3){case 1:n.ethereumData=e.bytes();break;case 2:n.callData=$root.proto.FileID.decode(e,e.uint32());break;case 3:n.maxGasAllowance=e.int64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.EthereumTransactionBody"},e}(),e.FileAppendTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 2:n.fileID=$root.proto.FileID.decode(e,e.uint32());break;case 4:n.contents=e.bytes();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FileAppendTransactionBody"},e}(),e.FileCreateTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 2:n.expirationTime=$root.proto.Timestamp.decode(e,e.uint32());break;case 3:n.keys=$root.proto.KeyList.decode(e,e.uint32());break;case 4:n.contents=e.bytes();break;case 5:n.shardID=$root.proto.ShardID.decode(e,e.uint32());break;case 6:n.realmID=$root.proto.RealmID.decode(e,e.uint32());break;case 7:n.newRealmAdminKey=$root.proto.Key.decode(e,e.uint32());break;case 8:n.memo=e.string();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FileCreateTransactionBody"},e}(),e.FileDeleteTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==2)n.fileID=$root.proto.FileID.decode(e,e.uint32());else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FileDeleteTransactionBody"},e}(),e.FileUpdateTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.fileID=$root.proto.FileID.decode(e,e.uint32());break;case 2:n.expirationTime=$root.proto.Timestamp.decode(e,e.uint32());break;case 3:n.keys=$root.proto.KeyList.decode(e,e.uint32());break;case 4:n.contents=e.bytes();break;case 5:n.memo=$root.google.protobuf.StringValue.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FileUpdateTransactionBody"},e}(),e.ContractDeleteTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.contractID=$root.proto.ContractID.decode(e,e.uint32());break;case 2:n.transferAccountID=$root.proto.AccountID.decode(e,e.uint32());break;case 3:n.transferContractID=$root.proto.ContractID.decode(e,e.uint32());break;case 4:n.permanentRemoval=e.bool();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractDeleteTransactionBody"},e}(),e.ConsensusCreateTopicTransactionBody=function(){function e(e){if(this.feeExemptKeyList=[],this.customFees=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.memo=e.string();break;case 2:n.adminKey=$root.proto.Key.decode(e,e.uint32());break;case 3:n.submitKey=$root.proto.Key.decode(e,e.uint32());break;case 6:n.autoRenewPeriod=$root.proto.Duration.decode(e,e.uint32());break;case 7:n.autoRenewAccount=$root.proto.AccountID.decode(e,e.uint32());break;case 8:n.feeScheduleKey=$root.proto.Key.decode(e,e.uint32());break;case 9:n.feeExemptKeyList&&n.feeExemptKeyList.length||(n.feeExemptKeyList=[]),n.feeExemptKeyList.push($root.proto.Key.decode(e,e.uint32()));break;case 10:n.customFees&&n.customFees.length||(n.customFees=[]),n.customFees.push($root.proto.FixedCustomFee.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ConsensusCreateTopicTransactionBody"},e}(),e.FractionalFee=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.fractionalAmount=$root.proto.Fraction.decode(e,e.uint32());break;case 2:n.minimumAmount=e.int64();break;case 3:n.maximumAmount=e.int64();break;case 4:n.netOfTransfers=e.bool();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FractionalFee"},e}(),e.FixedFee=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.amount=e.int64();break;case 2:n.denominatingTokenId=$root.proto.TokenID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FixedFee"},e}(),e.RoyaltyFee=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.exchangeValueFraction=$root.proto.Fraction.decode(e,e.uint32());break;case 2:n.fallbackFee=$root.proto.FixedFee.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.RoyaltyFee"},e}(),e.CustomFee=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.fixedFee=$root.proto.FixedFee.decode(e,e.uint32());break;case 2:n.fractionalFee=$root.proto.FractionalFee.decode(e,e.uint32());break;case 4:n.royaltyFee=$root.proto.RoyaltyFee.decode(e,e.uint32());break;case 3:n.feeCollectorAccountId=$root.proto.AccountID.decode(e,e.uint32());break;case 5:n.allCollectorsAreExempt=e.bool();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CustomFee"},e}(),e.AssessedCustomFee=function(){function e(e){if(this.effectivePayerAccountId=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.amount=e.int64();break;case 2:n.tokenId=$root.proto.TokenID.decode(e,e.uint32());break;case 3:n.feeCollectorAccountId=$root.proto.AccountID.decode(e,e.uint32());break;case 4:n.effectivePayerAccountId&&n.effectivePayerAccountId.length||(n.effectivePayerAccountId=[]),n.effectivePayerAccountId.push($root.proto.AccountID.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.AssessedCustomFee"},e}(),e.FixedCustomFee=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.fixedFee=$root.proto.FixedFee.decode(e,e.uint32());break;case 2:n.feeCollectorAccountId=$root.proto.AccountID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FixedCustomFee"},e}(),e.FixedCustomFeeList=function(){function e(e){if(this.fees=[],e)for(var t=Object.keys(e),r=0;r>>3==1)n.fees&&n.fees.length||(n.fees=[]),n.fees.push($root.proto.FixedCustomFee.decode(e,e.uint32()));else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FixedCustomFeeList"},e}(),e.FeeExemptKeyList=function(){function e(e){if(this.keys=[],e)for(var t=Object.keys(e),r=0;r>>3==1)n.keys&&n.keys.length||(n.keys=[]),n.keys.push($root.proto.Key.decode(e,e.uint32()));else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FeeExemptKeyList"},e}(),e.CustomFeeLimit=function(){function e(e){if(this.fees=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.accountId=$root.proto.AccountID.decode(e,e.uint32());break;case 2:n.fees&&n.fees.length||(n.fees=[]),n.fees.push($root.proto.FixedFee.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CustomFeeLimit"},e}(),e.ConsensusUpdateTopicTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.topicID=$root.proto.TopicID.decode(e,e.uint32());break;case 2:n.memo=$root.google.protobuf.StringValue.decode(e,e.uint32());break;case 4:n.expirationTime=$root.proto.Timestamp.decode(e,e.uint32());break;case 6:n.adminKey=$root.proto.Key.decode(e,e.uint32());break;case 7:n.submitKey=$root.proto.Key.decode(e,e.uint32());break;case 8:n.autoRenewPeriod=$root.proto.Duration.decode(e,e.uint32());break;case 9:n.autoRenewAccount=$root.proto.AccountID.decode(e,e.uint32());break;case 10:n.feeScheduleKey=$root.proto.Key.decode(e,e.uint32());break;case 11:n.feeExemptKeyList=$root.proto.FeeExemptKeyList.decode(e,e.uint32());break;case 12:n.customFees=$root.proto.FixedCustomFeeList.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ConsensusUpdateTopicTransactionBody"},e}(),e.ConsensusDeleteTopicTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==1)n.topicID=$root.proto.TopicID.decode(e,e.uint32());else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ConsensusDeleteTopicTransactionBody"},e}(),e.ConsensusMessageChunkInfo=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.initialTransactionID=$root.proto.TransactionID.decode(e,e.uint32());break;case 2:n.total=e.int32();break;case 3:n.number=e.int32();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ConsensusMessageChunkInfo"},e}(),e.ConsensusSubmitMessageTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.topicID=$root.proto.TopicID.decode(e,e.uint32());break;case 2:n.message=e.bytes();break;case 3:n.chunkInfo=$root.proto.ConsensusMessageChunkInfo.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ConsensusSubmitMessageTransactionBody"},e}(),e.UncheckedSubmitBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==1)n.transactionBytes=e.bytes();else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.UncheckedSubmitBody"},e}(),e.TokenCreateTransactionBody=function(){function e(e){if(this.customFees=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.name=e.string();break;case 2:n.symbol=e.string();break;case 3:n.decimals=e.uint32();break;case 4:n.initialSupply=e.uint64();break;case 5:n.treasury=$root.proto.AccountID.decode(e,e.uint32());break;case 6:n.adminKey=$root.proto.Key.decode(e,e.uint32());break;case 7:n.kycKey=$root.proto.Key.decode(e,e.uint32());break;case 8:n.freezeKey=$root.proto.Key.decode(e,e.uint32());break;case 9:n.wipeKey=$root.proto.Key.decode(e,e.uint32());break;case 10:n.supplyKey=$root.proto.Key.decode(e,e.uint32());break;case 11:n.freezeDefault=e.bool();break;case 13:n.expiry=$root.proto.Timestamp.decode(e,e.uint32());break;case 14:n.autoRenewAccount=$root.proto.AccountID.decode(e,e.uint32());break;case 15:n.autoRenewPeriod=$root.proto.Duration.decode(e,e.uint32());break;case 16:n.memo=e.string();break;case 17:n.tokenType=e.int32();break;case 18:n.supplyType=e.int32();break;case 19:n.maxSupply=e.int64();break;case 20:n.feeScheduleKey=$root.proto.Key.decode(e,e.uint32());break;case 21:n.customFees&&n.customFees.length||(n.customFees=[]),n.customFees.push($root.proto.CustomFee.decode(e,e.uint32()));break;case 22:n.pauseKey=$root.proto.Key.decode(e,e.uint32());break;case 23:n.metadata=e.bytes();break;case 24:n.metadataKey=$root.proto.Key.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenCreateTransactionBody"},e}(),e.TokenFreezeAccountTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.token=$root.proto.TokenID.decode(e,e.uint32());break;case 2:n.account=$root.proto.AccountID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenFreezeAccountTransactionBody"},e}(),e.TokenUnfreezeAccountTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.token=$root.proto.TokenID.decode(e,e.uint32());break;case 2:n.account=$root.proto.AccountID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenUnfreezeAccountTransactionBody"},e}(),e.TokenGrantKycTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.token=$root.proto.TokenID.decode(e,e.uint32());break;case 2:n.account=$root.proto.AccountID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenGrantKycTransactionBody"},e}(),e.TokenRevokeKycTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.token=$root.proto.TokenID.decode(e,e.uint32());break;case 2:n.account=$root.proto.AccountID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenRevokeKycTransactionBody"},e}(),e.TokenDeleteTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==1)n.token=$root.proto.TokenID.decode(e,e.uint32());else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenDeleteTransactionBody"},e}(),e.TokenUpdateTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.token=$root.proto.TokenID.decode(e,e.uint32());break;case 2:n.symbol=e.string();break;case 3:n.name=e.string();break;case 4:n.treasury=$root.proto.AccountID.decode(e,e.uint32());break;case 5:n.adminKey=$root.proto.Key.decode(e,e.uint32());break;case 6:n.kycKey=$root.proto.Key.decode(e,e.uint32());break;case 7:n.freezeKey=$root.proto.Key.decode(e,e.uint32());break;case 8:n.wipeKey=$root.proto.Key.decode(e,e.uint32());break;case 9:n.supplyKey=$root.proto.Key.decode(e,e.uint32());break;case 10:n.autoRenewAccount=$root.proto.AccountID.decode(e,e.uint32());break;case 11:n.autoRenewPeriod=$root.proto.Duration.decode(e,e.uint32());break;case 12:n.expiry=$root.proto.Timestamp.decode(e,e.uint32());break;case 13:n.memo=$root.google.protobuf.StringValue.decode(e,e.uint32());break;case 14:n.feeScheduleKey=$root.proto.Key.decode(e,e.uint32());break;case 15:n.pauseKey=$root.proto.Key.decode(e,e.uint32());break;case 16:n.metadata=$root.google.protobuf.BytesValue.decode(e,e.uint32());break;case 17:n.metadataKey=$root.proto.Key.decode(e,e.uint32());break;case 18:n.keyVerificationMode=e.int32();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenUpdateTransactionBody"},e}(),e.TokenMintTransactionBody=function(){function e(e){if(this.metadata=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.token=$root.proto.TokenID.decode(e,e.uint32());break;case 2:n.amount=e.uint64();break;case 3:n.metadata&&n.metadata.length||(n.metadata=[]),n.metadata.push(e.bytes());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenMintTransactionBody"},e}(),e.TokenBurnTransactionBody=function(){function e(e){if(this.serialNumbers=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.token=$root.proto.TokenID.decode(e,e.uint32());break;case 2:n.amount=e.uint64();break;case 3:if(n.serialNumbers&&n.serialNumbers.length||(n.serialNumbers=[]),2==(7&o))for(var i=e.uint32()+e.pos;e.pos>>3){case 1:n.token=$root.proto.TokenID.decode(e,e.uint32());break;case 2:n.account=$root.proto.AccountID.decode(e,e.uint32());break;case 3:n.amount=e.uint64();break;case 4:if(n.serialNumbers&&n.serialNumbers.length||(n.serialNumbers=[]),2==(7&o))for(var i=e.uint32()+e.pos;e.pos>>3){case 1:n.account=$root.proto.AccountID.decode(e,e.uint32());break;case 2:n.tokens&&n.tokens.length||(n.tokens=[]),n.tokens.push($root.proto.TokenID.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenAssociateTransactionBody"},e}(),e.TokenDissociateTransactionBody=function(){function e(e){if(this.tokens=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.account=$root.proto.AccountID.decode(e,e.uint32());break;case 2:n.tokens&&n.tokens.length||(n.tokens=[]),n.tokens.push($root.proto.TokenID.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenDissociateTransactionBody"},e}(),e.TokenFeeScheduleUpdateTransactionBody=function(){function e(e){if(this.customFees=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.tokenId=$root.proto.TokenID.decode(e,e.uint32());break;case 2:n.customFees&&n.customFees.length||(n.customFees=[]),n.customFees.push($root.proto.CustomFee.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenFeeScheduleUpdateTransactionBody"},e}(),e.TokenPauseTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==1)n.token=$root.proto.TokenID.decode(e,e.uint32());else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenPauseTransactionBody"},e}(),e.TokenUnpauseTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==1)n.token=$root.proto.TokenID.decode(e,e.uint32());else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenUnpauseTransactionBody"},e}(),e.TokenUpdateNftsTransactionBody=function(){function e(e){if(this.serialNumbers=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.token=$root.proto.TokenID.decode(e,e.uint32());break;case 2:if(n.serialNumbers&&n.serialNumbers.length||(n.serialNumbers=[]),2==(7&o))for(var i=e.uint32()+e.pos;e.pos>>3){case 1:n.owner=$root.proto.AccountID.decode(e,e.uint32());break;case 2:n.rejections&&n.rejections.length||(n.rejections=[]),n.rejections.push($root.proto.TokenReference.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenRejectTransactionBody"},e}(),e.TokenReference=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.fungibleToken=$root.proto.TokenID.decode(e,e.uint32());break;case 2:n.nft=$root.proto.NftID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenReference"},e}(),e.TokenAirdropTransactionBody=function(){function e(e){if(this.tokenTransfers=[],e)for(var t=Object.keys(e),r=0;r>>3==1)n.tokenTransfers&&n.tokenTransfers.length||(n.tokenTransfers=[]),n.tokenTransfers.push($root.proto.TokenTransferList.decode(e,e.uint32()));else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenAirdropTransactionBody"},e}(),e.TokenCancelAirdropTransactionBody=function(){function e(e){if(this.pendingAirdrops=[],e)for(var t=Object.keys(e),r=0;r>>3==1)n.pendingAirdrops&&n.pendingAirdrops.length||(n.pendingAirdrops=[]),n.pendingAirdrops.push($root.proto.PendingAirdropId.decode(e,e.uint32()));else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenCancelAirdropTransactionBody"},e}(),e.TokenClaimAirdropTransactionBody=function(){function e(e){if(this.pendingAirdrops=[],e)for(var t=Object.keys(e),r=0;r>>3==1)n.pendingAirdrops&&n.pendingAirdrops.length||(n.pendingAirdrops=[]),n.pendingAirdrops.push($root.proto.PendingAirdropId.decode(e,e.uint32()));else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenClaimAirdropTransactionBody"},e}(),e.ScheduleCreateTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.scheduledTransactionBody=$root.proto.SchedulableTransactionBody.decode(e,e.uint32());break;case 2:n.memo=e.string();break;case 3:n.adminKey=$root.proto.Key.decode(e,e.uint32());break;case 4:n.payerAccountID=$root.proto.AccountID.decode(e,e.uint32());break;case 5:n.expirationTime=$root.proto.Timestamp.decode(e,e.uint32());break;case 13:n.waitForExpiry=e.bool();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ScheduleCreateTransactionBody"},e}(),e.SchedulableTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.transactionFee=e.uint64();break;case 2:n.memo=e.string();break;case 3:n.contractCall=$root.proto.ContractCallTransactionBody.decode(e,e.uint32());break;case 4:n.contractCreateInstance=$root.proto.ContractCreateTransactionBody.decode(e,e.uint32());break;case 5:n.contractUpdateInstance=$root.proto.ContractUpdateTransactionBody.decode(e,e.uint32());break;case 6:n.contractDeleteInstance=$root.proto.ContractDeleteTransactionBody.decode(e,e.uint32());break;case 7:n.cryptoCreateAccount=$root.proto.CryptoCreateTransactionBody.decode(e,e.uint32());break;case 8:n.cryptoDelete=$root.proto.CryptoDeleteTransactionBody.decode(e,e.uint32());break;case 9:n.cryptoTransfer=$root.proto.CryptoTransferTransactionBody.decode(e,e.uint32());break;case 10:n.cryptoUpdateAccount=$root.proto.CryptoUpdateTransactionBody.decode(e,e.uint32());break;case 11:n.fileAppend=$root.proto.FileAppendTransactionBody.decode(e,e.uint32());break;case 12:n.fileCreate=$root.proto.FileCreateTransactionBody.decode(e,e.uint32());break;case 13:n.fileDelete=$root.proto.FileDeleteTransactionBody.decode(e,e.uint32());break;case 14:n.fileUpdate=$root.proto.FileUpdateTransactionBody.decode(e,e.uint32());break;case 15:n.systemDelete=$root.proto.SystemDeleteTransactionBody.decode(e,e.uint32());break;case 16:n.systemUndelete=$root.proto.SystemUndeleteTransactionBody.decode(e,e.uint32());break;case 17:n.freeze=$root.proto.FreezeTransactionBody.decode(e,e.uint32());break;case 18:n.consensusCreateTopic=$root.proto.ConsensusCreateTopicTransactionBody.decode(e,e.uint32());break;case 19:n.consensusUpdateTopic=$root.proto.ConsensusUpdateTopicTransactionBody.decode(e,e.uint32());break;case 20:n.consensusDeleteTopic=$root.proto.ConsensusDeleteTopicTransactionBody.decode(e,e.uint32());break;case 21:n.consensusSubmitMessage=$root.proto.ConsensusSubmitMessageTransactionBody.decode(e,e.uint32());break;case 22:n.tokenCreation=$root.proto.TokenCreateTransactionBody.decode(e,e.uint32());break;case 23:n.tokenFreeze=$root.proto.TokenFreezeAccountTransactionBody.decode(e,e.uint32());break;case 24:n.tokenUnfreeze=$root.proto.TokenUnfreezeAccountTransactionBody.decode(e,e.uint32());break;case 25:n.tokenGrantKyc=$root.proto.TokenGrantKycTransactionBody.decode(e,e.uint32());break;case 26:n.tokenRevokeKyc=$root.proto.TokenRevokeKycTransactionBody.decode(e,e.uint32());break;case 27:n.tokenDeletion=$root.proto.TokenDeleteTransactionBody.decode(e,e.uint32());break;case 28:n.tokenUpdate=$root.proto.TokenUpdateTransactionBody.decode(e,e.uint32());break;case 29:n.tokenMint=$root.proto.TokenMintTransactionBody.decode(e,e.uint32());break;case 30:n.tokenBurn=$root.proto.TokenBurnTransactionBody.decode(e,e.uint32());break;case 31:n.tokenWipe=$root.proto.TokenWipeAccountTransactionBody.decode(e,e.uint32());break;case 32:n.tokenAssociate=$root.proto.TokenAssociateTransactionBody.decode(e,e.uint32());break;case 33:n.tokenDissociate=$root.proto.TokenDissociateTransactionBody.decode(e,e.uint32());break;case 34:n.scheduleDelete=$root.proto.ScheduleDeleteTransactionBody.decode(e,e.uint32());break;case 35:n.tokenPause=$root.proto.TokenPauseTransactionBody.decode(e,e.uint32());break;case 36:n.tokenUnpause=$root.proto.TokenUnpauseTransactionBody.decode(e,e.uint32());break;case 37:n.cryptoApproveAllowance=$root.proto.CryptoApproveAllowanceTransactionBody.decode(e,e.uint32());break;case 38:n.cryptoDeleteAllowance=$root.proto.CryptoDeleteAllowanceTransactionBody.decode(e,e.uint32());break;case 39:n.tokenFeeScheduleUpdate=$root.proto.TokenFeeScheduleUpdateTransactionBody.decode(e,e.uint32());break;case 40:n.utilPrng=$root.proto.UtilPrngTransactionBody.decode(e,e.uint32());break;case 41:n.tokenUpdateNfts=$root.proto.TokenUpdateNftsTransactionBody.decode(e,e.uint32());break;case 42:n.nodeCreate=$root.com.hedera.hapi.node.addressbook.NodeCreateTransactionBody.decode(e,e.uint32());break;case 43:n.nodeUpdate=$root.com.hedera.hapi.node.addressbook.NodeUpdateTransactionBody.decode(e,e.uint32());break;case 44:n.nodeDelete=$root.com.hedera.hapi.node.addressbook.NodeDeleteTransactionBody.decode(e,e.uint32());break;case 45:n.tokenReject=$root.proto.TokenRejectTransactionBody.decode(e,e.uint32());break;case 46:n.tokenCancelAirdrop=$root.proto.TokenCancelAirdropTransactionBody.decode(e,e.uint32());break;case 47:n.tokenClaimAirdrop=$root.proto.TokenClaimAirdropTransactionBody.decode(e,e.uint32());break;case 48:n.tokenAirdrop=$root.proto.TokenAirdropTransactionBody.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.SchedulableTransactionBody"},e}(),e.ScheduleDeleteTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==1)n.scheduleID=$root.proto.ScheduleID.decode(e,e.uint32());else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ScheduleDeleteTransactionBody"},e}(),e.UtilPrngTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==1)n.range=e.int32();else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.UtilPrngTransactionBody"},e}(),e.ScheduleSignTransactionBody=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==1)n.scheduleID=$root.proto.ScheduleID.decode(e,e.uint32());else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ScheduleSignTransactionBody"},e}(),e.NodeStakeUpdateTransactionBody=function(){function e(e){if(this.nodeStake=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.endOfStakingPeriod=$root.proto.Timestamp.decode(e,e.uint32());break;case 2:n.nodeStake&&n.nodeStake.length||(n.nodeStake=[]),n.nodeStake.push($root.proto.NodeStake.decode(e,e.uint32()));break;case 3:n.maxStakingRewardRatePerHbar=e.int64();break;case 4:n.nodeRewardFeeFraction=$root.proto.Fraction.decode(e,e.uint32());break;case 5:n.stakingPeriodsStored=e.int64();break;case 6:n.stakingPeriod=e.int64();break;case 7:n.stakingRewardFeeFraction=$root.proto.Fraction.decode(e,e.uint32());break;case 8:n.stakingStartThreshold=e.int64();break;case 9:n.stakingRewardRate=e.int64();break;case 10:n.reservedStakingRewards=e.int64();break;case 11:n.unreservedStakingRewardBalance=e.int64();break;case 12:n.rewardBalanceThreshold=e.int64();break;case 13:n.maxStakeRewarded=e.int64();break;case 14:n.maxTotalReward=e.int64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.NodeStakeUpdateTransactionBody"},e}(),e.NodeStake=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.maxStake=e.int64();break;case 2:n.minStake=e.int64();break;case 3:n.nodeId=e.int64();break;case 4:n.rewardRate=e.int64();break;case 5:n.stake=e.int64();break;case 6:n.stakeNotRewarded=e.int64();break;case 7:n.stakeRewarded=e.int64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.NodeStake"},e}(),e.ConsensusGetTopicInfoQuery=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.QueryHeader.decode(e,e.uint32());break;case 2:n.topicID=$root.proto.TopicID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ConsensusGetTopicInfoQuery"},e}(),e.ConsensusGetTopicInfoResponse=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.ResponseHeader.decode(e,e.uint32());break;case 2:n.topicID=$root.proto.TopicID.decode(e,e.uint32());break;case 5:n.topicInfo=$root.proto.ConsensusTopicInfo.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ConsensusGetTopicInfoResponse"},e}(),e.ResponseType=function(){const e={},t=Object.create(e);return t[e[0]="ANSWER_ONLY"]=0,t[e[1]="ANSWER_STATE_PROOF"]=1,t[e[2]="COST_ANSWER"]=2,t[e[3]="COST_ANSWER_STATE_PROOF"]=3,t}(),e.QueryHeader=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.payment=$root.proto.Transaction.decode(e,e.uint32());break;case 2:n.responseType=e.int32();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.QueryHeader"},e}(),e.ResponseHeader=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.nodeTransactionPrecheckCode=e.int32();break;case 2:n.responseType=e.int32();break;case 3:n.cost=e.uint64();break;case 4:n.stateProof=e.bytes();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ResponseHeader"},e}(),e.ConsensusTopicInfo=function(){function e(e){if(this.feeExemptKeyList=[],this.customFees=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.memo=e.string();break;case 2:n.runningHash=e.bytes();break;case 3:n.sequenceNumber=e.uint64();break;case 4:n.expirationTime=$root.proto.Timestamp.decode(e,e.uint32());break;case 5:n.adminKey=$root.proto.Key.decode(e,e.uint32());break;case 6:n.submitKey=$root.proto.Key.decode(e,e.uint32());break;case 7:n.autoRenewPeriod=$root.proto.Duration.decode(e,e.uint32());break;case 8:n.autoRenewAccount=$root.proto.AccountID.decode(e,e.uint32());break;case 9:n.ledgerId=e.bytes();break;case 10:n.feeScheduleKey=$root.proto.Key.decode(e,e.uint32());break;case 11:n.feeExemptKeyList&&n.feeExemptKeyList.length||(n.feeExemptKeyList=[]),n.feeExemptKeyList.push($root.proto.Key.decode(e,e.uint32()));break;case 12:n.customFees&&n.customFees.length||(n.customFees=[]),n.customFees.push($root.proto.FixedCustomFee.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ConsensusTopicInfo"},e}(),e.ConsensusService=function(){function e(e,t,r){$protobuf$1.rpc.Service.call(this,e,t,r)}return(e.prototype=Object.create($protobuf$1.rpc.Service.prototype)).constructor=e,e.create=function(e,t,r){return new this(e,t,r)},Object.defineProperty(e.prototype.createTopic=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"createTopic"}),Object.defineProperty(e.prototype.updateTopic=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"updateTopic"}),Object.defineProperty(e.prototype.deleteTopic=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"deleteTopic"}),Object.defineProperty(e.prototype.submitMessage=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"submitMessage"}),Object.defineProperty(e.prototype.getTopicInfo=function e(t,r){return this.rpcCall(e,$root.proto.Query,$root.proto.Response,t,r)},"name",{value:"getTopicInfo"}),e}(),e.Query=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.getByKey=$root.proto.GetByKeyQuery.decode(e,e.uint32());break;case 2:n.getBySolidityID=$root.proto.GetBySolidityIDQuery.decode(e,e.uint32());break;case 3:n.contractCallLocal=$root.proto.ContractCallLocalQuery.decode(e,e.uint32());break;case 4:n.contractGetInfo=$root.proto.ContractGetInfoQuery.decode(e,e.uint32());break;case 5:n.contractGetBytecode=$root.proto.ContractGetBytecodeQuery.decode(e,e.uint32());break;case 6:n.ContractGetRecords=$root.proto.ContractGetRecordsQuery.decode(e,e.uint32());break;case 7:n.cryptogetAccountBalance=$root.proto.CryptoGetAccountBalanceQuery.decode(e,e.uint32());break;case 8:n.cryptoGetAccountRecords=$root.proto.CryptoGetAccountRecordsQuery.decode(e,e.uint32());break;case 9:n.cryptoGetInfo=$root.proto.CryptoGetInfoQuery.decode(e,e.uint32());break;case 10:n.cryptoGetLiveHash=$root.proto.CryptoGetLiveHashQuery.decode(e,e.uint32());break;case 11:n.cryptoGetProxyStakers=$root.proto.CryptoGetStakersQuery.decode(e,e.uint32());break;case 12:n.fileGetContents=$root.proto.FileGetContentsQuery.decode(e,e.uint32());break;case 13:n.fileGetInfo=$root.proto.FileGetInfoQuery.decode(e,e.uint32());break;case 14:n.transactionGetReceipt=$root.proto.TransactionGetReceiptQuery.decode(e,e.uint32());break;case 15:n.transactionGetRecord=$root.proto.TransactionGetRecordQuery.decode(e,e.uint32());break;case 16:n.transactionGetFastRecord=$root.proto.TransactionGetFastRecordQuery.decode(e,e.uint32());break;case 50:n.consensusGetTopicInfo=$root.proto.ConsensusGetTopicInfoQuery.decode(e,e.uint32());break;case 51:n.networkGetVersionInfo=$root.proto.NetworkGetVersionInfoQuery.decode(e,e.uint32());break;case 52:n.tokenGetInfo=$root.proto.TokenGetInfoQuery.decode(e,e.uint32());break;case 53:n.scheduleGetInfo=$root.proto.ScheduleGetInfoQuery.decode(e,e.uint32());break;case 54:n.tokenGetAccountNftInfos=$root.proto.TokenGetAccountNftInfosQuery.decode(e,e.uint32());break;case 55:n.tokenGetNftInfo=$root.proto.TokenGetNftInfoQuery.decode(e,e.uint32());break;case 56:n.tokenGetNftInfos=$root.proto.TokenGetNftInfosQuery.decode(e,e.uint32());break;case 57:n.networkGetExecutionTime=$root.proto.NetworkGetExecutionTimeQuery.decode(e,e.uint32());break;case 58:n.accountDetails=$root.proto.GetAccountDetailsQuery.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.Query"},e}(),e.GetByKeyQuery=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.QueryHeader.decode(e,e.uint32());break;case 2:n.key=$root.proto.Key.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.GetByKeyQuery"},e}(),e.EntityID=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.accountID=$root.proto.AccountID.decode(e,e.uint32());break;case 2:n.liveHash=$root.proto.LiveHash.decode(e,e.uint32());break;case 3:n.fileID=$root.proto.FileID.decode(e,e.uint32());break;case 4:n.contractID=$root.proto.ContractID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.EntityID"},e}(),e.GetByKeyResponse=function(){function e(e){if(this.entities=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.ResponseHeader.decode(e,e.uint32());break;case 2:n.entities&&n.entities.length||(n.entities=[]),n.entities.push($root.proto.EntityID.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.GetByKeyResponse"},e}(),e.GetBySolidityIDQuery=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.QueryHeader.decode(e,e.uint32());break;case 2:n.solidityID=e.string();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.GetBySolidityIDQuery"},e}(),e.GetBySolidityIDResponse=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.ResponseHeader.decode(e,e.uint32());break;case 2:n.accountID=$root.proto.AccountID.decode(e,e.uint32());break;case 3:n.fileID=$root.proto.FileID.decode(e,e.uint32());break;case 4:n.contractID=$root.proto.ContractID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.GetBySolidityIDResponse"},e}(),e.ContractCallLocalQuery=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.QueryHeader.decode(e,e.uint32());break;case 2:n.contractID=$root.proto.ContractID.decode(e,e.uint32());break;case 3:n.gas=e.int64();break;case 4:n.functionParameters=e.bytes();break;case 5:n.maxResultSize=e.int64();break;case 6:n.senderId=$root.proto.AccountID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractCallLocalQuery"},e}(),e.ContractCallLocalResponse=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.ResponseHeader.decode(e,e.uint32());break;case 2:n.functionResult=$root.proto.ContractFunctionResult.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractCallLocalResponse"},e}(),e.ContractNonceInfo=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.contractId=$root.proto.ContractID.decode(e,e.uint32());break;case 2:n.nonce=e.int64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractNonceInfo"},e}(),e.ContractLoginfo=function(){function e(e){if(this.topic=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.contractID=$root.proto.ContractID.decode(e,e.uint32());break;case 2:n.bloom=e.bytes();break;case 3:n.topic&&n.topic.length||(n.topic=[]),n.topic.push(e.bytes());break;case 4:n.data=e.bytes();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractLoginfo"},e}(),e.ContractFunctionResult=function(){function e(e){if(this.logInfo=[],this.createdContractIDs=[],this.contractNonces=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.contractID=$root.proto.ContractID.decode(e,e.uint32());break;case 2:n.contractCallResult=e.bytes();break;case 3:n.errorMessage=e.string();break;case 4:n.bloom=e.bytes();break;case 5:n.gasUsed=e.uint64();break;case 6:n.logInfo&&n.logInfo.length||(n.logInfo=[]),n.logInfo.push($root.proto.ContractLoginfo.decode(e,e.uint32()));break;case 7:n.createdContractIDs&&n.createdContractIDs.length||(n.createdContractIDs=[]),n.createdContractIDs.push($root.proto.ContractID.decode(e,e.uint32()));break;case 9:n.evmAddress=$root.google.protobuf.BytesValue.decode(e,e.uint32());break;case 10:n.gas=e.int64();break;case 11:n.amount=e.int64();break;case 12:n.functionParameters=e.bytes();break;case 13:n.senderId=$root.proto.AccountID.decode(e,e.uint32());break;case 14:n.contractNonces&&n.contractNonces.length||(n.contractNonces=[]),n.contractNonces.push($root.proto.ContractNonceInfo.decode(e,e.uint32()));break;case 15:n.signerNonce=$root.google.protobuf.Int64Value.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractFunctionResult"},e}(),e.ContractGetInfoQuery=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.QueryHeader.decode(e,e.uint32());break;case 2:n.contractID=$root.proto.ContractID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractGetInfoQuery"},e}(),e.ContractGetInfoResponse=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.ResponseHeader.decode(e,e.uint32());break;case 2:n.contractInfo=$root.proto.ContractGetInfoResponse.ContractInfo.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractGetInfoResponse"},e.ContractInfo=function(){function e(e){if(this.tokenRelationships=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.contractID=$root.proto.ContractID.decode(e,e.uint32());break;case 2:n.accountID=$root.proto.AccountID.decode(e,e.uint32());break;case 3:n.contractAccountID=e.string();break;case 4:n.adminKey=$root.proto.Key.decode(e,e.uint32());break;case 5:n.expirationTime=$root.proto.Timestamp.decode(e,e.uint32());break;case 6:n.autoRenewPeriod=$root.proto.Duration.decode(e,e.uint32());break;case 7:n.storage=e.int64();break;case 8:n.memo=e.string();break;case 9:n.balance=e.uint64();break;case 10:n.deleted=e.bool();break;case 11:n.tokenRelationships&&n.tokenRelationships.length||(n.tokenRelationships=[]),n.tokenRelationships.push($root.proto.TokenRelationship.decode(e,e.uint32()));break;case 12:n.ledgerId=e.bytes();break;case 13:n.autoRenewAccountId=$root.proto.AccountID.decode(e,e.uint32());break;case 14:n.maxAutomaticTokenAssociations=e.int32();break;case 15:n.stakingInfo=$root.proto.StakingInfo.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractGetInfoResponse.ContractInfo"},e}(),e}(),e.ContractGetBytecodeQuery=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.QueryHeader.decode(e,e.uint32());break;case 2:n.contractID=$root.proto.ContractID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractGetBytecodeQuery"},e}(),e.ContractGetBytecodeResponse=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.ResponseHeader.decode(e,e.uint32());break;case 6:n.bytecode=e.bytes();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractGetBytecodeResponse"},e}(),e.ContractGetRecordsQuery=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.QueryHeader.decode(e,e.uint32());break;case 2:n.contractID=$root.proto.ContractID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractGetRecordsQuery"},e}(),e.ContractGetRecordsResponse=function(){function e(e){if(this.records=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.ResponseHeader.decode(e,e.uint32());break;case 2:n.contractID=$root.proto.ContractID.decode(e,e.uint32());break;case 3:n.records&&n.records.length||(n.records=[]),n.records.push($root.proto.TransactionRecord.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractGetRecordsResponse"},e}(),e.TransactionRecord=function(){function e(e){if(this.tokenTransferLists=[],this.assessedCustomFees=[],this.automaticTokenAssociations=[],this.paidStakingRewards=[],this.newPendingAirdrops=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.receipt=$root.proto.TransactionReceipt.decode(e,e.uint32());break;case 2:n.transactionHash=e.bytes();break;case 3:n.consensusTimestamp=$root.proto.Timestamp.decode(e,e.uint32());break;case 4:n.transactionID=$root.proto.TransactionID.decode(e,e.uint32());break;case 5:n.memo=e.string();break;case 6:n.transactionFee=e.uint64();break;case 7:n.contractCallResult=$root.proto.ContractFunctionResult.decode(e,e.uint32());break;case 8:n.contractCreateResult=$root.proto.ContractFunctionResult.decode(e,e.uint32());break;case 10:n.transferList=$root.proto.TransferList.decode(e,e.uint32());break;case 11:n.tokenTransferLists&&n.tokenTransferLists.length||(n.tokenTransferLists=[]),n.tokenTransferLists.push($root.proto.TokenTransferList.decode(e,e.uint32()));break;case 12:n.scheduleRef=$root.proto.ScheduleID.decode(e,e.uint32());break;case 13:n.assessedCustomFees&&n.assessedCustomFees.length||(n.assessedCustomFees=[]),n.assessedCustomFees.push($root.proto.AssessedCustomFee.decode(e,e.uint32()));break;case 14:n.automaticTokenAssociations&&n.automaticTokenAssociations.length||(n.automaticTokenAssociations=[]),n.automaticTokenAssociations.push($root.proto.TokenAssociation.decode(e,e.uint32()));break;case 15:n.parentConsensusTimestamp=$root.proto.Timestamp.decode(e,e.uint32());break;case 16:n.alias=e.bytes();break;case 17:n.ethereumHash=e.bytes();break;case 18:n.paidStakingRewards&&n.paidStakingRewards.length||(n.paidStakingRewards=[]),n.paidStakingRewards.push($root.proto.AccountAmount.decode(e,e.uint32()));break;case 19:n.prngBytes=e.bytes();break;case 20:n.prngNumber=e.int32();break;case 21:n.evmAddress=e.bytes();break;case 22:n.newPendingAirdrops&&n.newPendingAirdrops.length||(n.newPendingAirdrops=[]),n.newPendingAirdrops.push($root.proto.PendingAirdropRecord.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TransactionRecord"},e}(),e.PendingAirdropRecord=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.pendingAirdropId=$root.proto.PendingAirdropId.decode(e,e.uint32());break;case 2:n.pendingAirdropValue=$root.proto.PendingAirdropValue.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.PendingAirdropRecord"},e}(),e.TransactionReceipt=function(){function e(e){if(this.serialNumbers=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.status=e.int32();break;case 2:n.accountID=$root.proto.AccountID.decode(e,e.uint32());break;case 3:n.fileID=$root.proto.FileID.decode(e,e.uint32());break;case 4:n.contractID=$root.proto.ContractID.decode(e,e.uint32());break;case 5:n.exchangeRate=$root.proto.ExchangeRateSet.decode(e,e.uint32());break;case 6:n.topicID=$root.proto.TopicID.decode(e,e.uint32());break;case 7:n.topicSequenceNumber=e.uint64();break;case 8:n.topicRunningHash=e.bytes();break;case 9:n.topicRunningHashVersion=e.uint64();break;case 10:n.tokenID=$root.proto.TokenID.decode(e,e.uint32());break;case 11:n.newTotalSupply=e.uint64();break;case 12:n.scheduleID=$root.proto.ScheduleID.decode(e,e.uint32());break;case 13:n.scheduledTransactionID=$root.proto.TransactionID.decode(e,e.uint32());break;case 14:if(n.serialNumbers&&n.serialNumbers.length||(n.serialNumbers=[]),2==(7&o))for(var i=e.uint32()+e.pos;e.pos>>3){case 1:n.hbarEquiv=e.int32();break;case 2:n.centEquiv=e.int32();break;case 3:n.expirationTime=$root.proto.TimestampSeconds.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ExchangeRate"},e}(),e.ExchangeRateSet=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.currentRate=$root.proto.ExchangeRate.decode(e,e.uint32());break;case 2:n.nextRate=$root.proto.ExchangeRate.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ExchangeRateSet"},e}(),e.CryptoGetAccountBalanceQuery=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.QueryHeader.decode(e,e.uint32());break;case 2:n.accountID=$root.proto.AccountID.decode(e,e.uint32());break;case 3:n.contractID=$root.proto.ContractID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoGetAccountBalanceQuery"},e}(),e.CryptoGetAccountBalanceResponse=function(){function e(e){if(this.tokenBalances=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.ResponseHeader.decode(e,e.uint32());break;case 2:n.accountID=$root.proto.AccountID.decode(e,e.uint32());break;case 3:n.balance=e.uint64();break;case 4:n.tokenBalances&&n.tokenBalances.length||(n.tokenBalances=[]),n.tokenBalances.push($root.proto.TokenBalance.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoGetAccountBalanceResponse"},e}(),e.CryptoGetAccountRecordsQuery=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.QueryHeader.decode(e,e.uint32());break;case 2:n.accountID=$root.proto.AccountID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoGetAccountRecordsQuery"},e}(),e.CryptoGetAccountRecordsResponse=function(){function e(e){if(this.records=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.ResponseHeader.decode(e,e.uint32());break;case 2:n.accountID=$root.proto.AccountID.decode(e,e.uint32());break;case 3:n.records&&n.records.length||(n.records=[]),n.records.push($root.proto.TransactionRecord.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoGetAccountRecordsResponse"},e}(),e.CryptoGetInfoQuery=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.QueryHeader.decode(e,e.uint32());break;case 2:n.accountID=$root.proto.AccountID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoGetInfoQuery"},e}(),e.CryptoGetInfoResponse=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.ResponseHeader.decode(e,e.uint32());break;case 2:n.accountInfo=$root.proto.CryptoGetInfoResponse.AccountInfo.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoGetInfoResponse"},e.AccountInfo=function(){function e(e){if(this.liveHashes=[],this.tokenRelationships=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.accountID=$root.proto.AccountID.decode(e,e.uint32());break;case 2:n.contractAccountID=e.string();break;case 3:n.deleted=e.bool();break;case 4:n.proxyAccountID=$root.proto.AccountID.decode(e,e.uint32());break;case 6:n.proxyReceived=e.int64();break;case 7:n.key=$root.proto.Key.decode(e,e.uint32());break;case 8:n.balance=e.uint64();break;case 9:n.generateSendRecordThreshold=e.uint64();break;case 10:n.generateReceiveRecordThreshold=e.uint64();break;case 11:n.receiverSigRequired=e.bool();break;case 12:n.expirationTime=$root.proto.Timestamp.decode(e,e.uint32());break;case 13:n.autoRenewPeriod=$root.proto.Duration.decode(e,e.uint32());break;case 14:n.liveHashes&&n.liveHashes.length||(n.liveHashes=[]),n.liveHashes.push($root.proto.LiveHash.decode(e,e.uint32()));break;case 15:n.tokenRelationships&&n.tokenRelationships.length||(n.tokenRelationships=[]),n.tokenRelationships.push($root.proto.TokenRelationship.decode(e,e.uint32()));break;case 16:n.memo=e.string();break;case 17:n.ownedNfts=e.int64();break;case 18:n.maxAutomaticTokenAssociations=e.int32();break;case 19:n.alias=e.bytes();break;case 20:n.ledgerId=e.bytes();break;case 21:n.ethereumNonce=e.int64();break;case 22:n.stakingInfo=$root.proto.StakingInfo.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoGetInfoResponse.AccountInfo"},e}(),e}(),e.CryptoGetLiveHashQuery=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.QueryHeader.decode(e,e.uint32());break;case 2:n.accountID=$root.proto.AccountID.decode(e,e.uint32());break;case 3:n.hash=e.bytes();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoGetLiveHashQuery"},e}(),e.CryptoGetLiveHashResponse=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.ResponseHeader.decode(e,e.uint32());break;case 2:n.liveHash=$root.proto.LiveHash.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoGetLiveHashResponse"},e}(),e.CryptoGetStakersQuery=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.QueryHeader.decode(e,e.uint32());break;case 2:n.accountID=$root.proto.AccountID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoGetStakersQuery"},e}(),e.ProxyStaker=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.accountID=$root.proto.AccountID.decode(e,e.uint32());break;case 2:n.amount=e.int64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ProxyStaker"},e}(),e.AllProxyStakers=function(){function e(e){if(this.proxyStaker=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.accountID=$root.proto.AccountID.decode(e,e.uint32());break;case 2:n.proxyStaker&&n.proxyStaker.length||(n.proxyStaker=[]),n.proxyStaker.push($root.proto.ProxyStaker.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.AllProxyStakers"},e}(),e.CryptoGetStakersResponse=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.ResponseHeader.decode(e,e.uint32());break;case 3:n.stakers=$root.proto.AllProxyStakers.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoGetStakersResponse"},e}(),e.FileGetContentsQuery=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.QueryHeader.decode(e,e.uint32());break;case 2:n.fileID=$root.proto.FileID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FileGetContentsQuery"},e}(),e.FileGetContentsResponse=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.ResponseHeader.decode(e,e.uint32());break;case 2:n.fileContents=$root.proto.FileGetContentsResponse.FileContents.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FileGetContentsResponse"},e.FileContents=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.fileID=$root.proto.FileID.decode(e,e.uint32());break;case 2:n.contents=e.bytes();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FileGetContentsResponse.FileContents"},e}(),e}(),e.FileGetInfoQuery=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.QueryHeader.decode(e,e.uint32());break;case 2:n.fileID=$root.proto.FileID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FileGetInfoQuery"},e}(),e.FileGetInfoResponse=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.ResponseHeader.decode(e,e.uint32());break;case 2:n.fileInfo=$root.proto.FileGetInfoResponse.FileInfo.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FileGetInfoResponse"},e.FileInfo=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.fileID=$root.proto.FileID.decode(e,e.uint32());break;case 2:n.size=e.int64();break;case 3:n.expirationTime=$root.proto.Timestamp.decode(e,e.uint32());break;case 4:n.deleted=e.bool();break;case 5:n.keys=$root.proto.KeyList.decode(e,e.uint32());break;case 6:n.memo=e.string();break;case 7:n.ledgerId=e.bytes();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FileGetInfoResponse.FileInfo"},e}(),e}(),e.TransactionGetReceiptQuery=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.QueryHeader.decode(e,e.uint32());break;case 2:n.transactionID=$root.proto.TransactionID.decode(e,e.uint32());break;case 3:n.includeDuplicates=e.bool();break;case 4:n.includeChildReceipts=e.bool();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TransactionGetReceiptQuery"},e}(),e.TransactionGetReceiptResponse=function(){function e(e){if(this.duplicateTransactionReceipts=[],this.childTransactionReceipts=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.ResponseHeader.decode(e,e.uint32());break;case 2:n.receipt=$root.proto.TransactionReceipt.decode(e,e.uint32());break;case 4:n.duplicateTransactionReceipts&&n.duplicateTransactionReceipts.length||(n.duplicateTransactionReceipts=[]),n.duplicateTransactionReceipts.push($root.proto.TransactionReceipt.decode(e,e.uint32()));break;case 5:n.childTransactionReceipts&&n.childTransactionReceipts.length||(n.childTransactionReceipts=[]),n.childTransactionReceipts.push($root.proto.TransactionReceipt.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TransactionGetReceiptResponse"},e}(),e.TransactionGetRecordQuery=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.QueryHeader.decode(e,e.uint32());break;case 2:n.transactionID=$root.proto.TransactionID.decode(e,e.uint32());break;case 3:n.includeDuplicates=e.bool();break;case 4:n.includeChildRecords=e.bool();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TransactionGetRecordQuery"},e}(),e.TransactionGetRecordResponse=function(){function e(e){if(this.duplicateTransactionRecords=[],this.childTransactionRecords=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.ResponseHeader.decode(e,e.uint32());break;case 3:n.transactionRecord=$root.proto.TransactionRecord.decode(e,e.uint32());break;case 4:n.duplicateTransactionRecords&&n.duplicateTransactionRecords.length||(n.duplicateTransactionRecords=[]),n.duplicateTransactionRecords.push($root.proto.TransactionRecord.decode(e,e.uint32()));break;case 5:n.childTransactionRecords&&n.childTransactionRecords.length||(n.childTransactionRecords=[]),n.childTransactionRecords.push($root.proto.TransactionRecord.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TransactionGetRecordResponse"},e}(),e.TransactionGetFastRecordQuery=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.QueryHeader.decode(e,e.uint32());break;case 2:n.transactionID=$root.proto.TransactionID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TransactionGetFastRecordQuery"},e}(),e.TransactionGetFastRecordResponse=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.ResponseHeader.decode(e,e.uint32());break;case 2:n.transactionRecord=$root.proto.TransactionRecord.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TransactionGetFastRecordResponse"},e}(),e.NetworkGetVersionInfoQuery=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==1)n.header=$root.proto.QueryHeader.decode(e,e.uint32());else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.NetworkGetVersionInfoQuery"},e}(),e.NetworkGetVersionInfoResponse=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.ResponseHeader.decode(e,e.uint32());break;case 2:n.hapiProtoVersion=$root.proto.SemanticVersion.decode(e,e.uint32());break;case 3:n.hederaServicesVersion=$root.proto.SemanticVersion.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.NetworkGetVersionInfoResponse"},e}(),e.NetworkGetExecutionTimeQuery=function(){function e(e){if(this.transactionIds=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.QueryHeader.decode(e,e.uint32());break;case 2:n.transactionIds&&n.transactionIds.length||(n.transactionIds=[]),n.transactionIds.push($root.proto.TransactionID.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.NetworkGetExecutionTimeQuery"},e}(),e.NetworkGetExecutionTimeResponse=function(){function e(e){if(this.executionTimes=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.ResponseHeader.decode(e,e.uint32());break;case 2:if(n.executionTimes&&n.executionTimes.length||(n.executionTimes=[]),2==(7&o))for(var i=e.uint32()+e.pos;e.pos>>3){case 1:n.header=$root.proto.QueryHeader.decode(e,e.uint32());break;case 2:n.token=$root.proto.TokenID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenGetInfoQuery"},e}(),e.TokenInfo=function(){function e(e){if(this.customFees=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.tokenId=$root.proto.TokenID.decode(e,e.uint32());break;case 2:n.name=e.string();break;case 3:n.symbol=e.string();break;case 4:n.decimals=e.uint32();break;case 5:n.totalSupply=e.uint64();break;case 6:n.treasury=$root.proto.AccountID.decode(e,e.uint32());break;case 7:n.adminKey=$root.proto.Key.decode(e,e.uint32());break;case 8:n.kycKey=$root.proto.Key.decode(e,e.uint32());break;case 9:n.freezeKey=$root.proto.Key.decode(e,e.uint32());break;case 10:n.wipeKey=$root.proto.Key.decode(e,e.uint32());break;case 11:n.supplyKey=$root.proto.Key.decode(e,e.uint32());break;case 12:n.defaultFreezeStatus=e.int32();break;case 13:n.defaultKycStatus=e.int32();break;case 14:n.deleted=e.bool();break;case 15:n.autoRenewAccount=$root.proto.AccountID.decode(e,e.uint32());break;case 16:n.autoRenewPeriod=$root.proto.Duration.decode(e,e.uint32());break;case 17:n.expiry=$root.proto.Timestamp.decode(e,e.uint32());break;case 18:n.memo=e.string();break;case 19:n.tokenType=e.int32();break;case 20:n.supplyType=e.int32();break;case 21:n.maxSupply=e.int64();break;case 22:n.feeScheduleKey=$root.proto.Key.decode(e,e.uint32());break;case 23:n.customFees&&n.customFees.length||(n.customFees=[]),n.customFees.push($root.proto.CustomFee.decode(e,e.uint32()));break;case 24:n.pauseKey=$root.proto.Key.decode(e,e.uint32());break;case 25:n.pauseStatus=e.int32();break;case 26:n.ledgerId=e.bytes();break;case 27:n.metadata=e.bytes();break;case 28:n.metadataKey=$root.proto.Key.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenInfo"},e}(),e.TokenGetInfoResponse=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.ResponseHeader.decode(e,e.uint32());break;case 2:n.tokenInfo=$root.proto.TokenInfo.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenGetInfoResponse"},e}(),e.ScheduleGetInfoQuery=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.QueryHeader.decode(e,e.uint32());break;case 2:n.scheduleID=$root.proto.ScheduleID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ScheduleGetInfoQuery"},e}(),e.ScheduleInfo=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.scheduleID=$root.proto.ScheduleID.decode(e,e.uint32());break;case 2:n.deletionTime=$root.proto.Timestamp.decode(e,e.uint32());break;case 3:n.executionTime=$root.proto.Timestamp.decode(e,e.uint32());break;case 4:n.expirationTime=$root.proto.Timestamp.decode(e,e.uint32());break;case 5:n.scheduledTransactionBody=$root.proto.SchedulableTransactionBody.decode(e,e.uint32());break;case 6:n.memo=e.string();break;case 7:n.adminKey=$root.proto.Key.decode(e,e.uint32());break;case 8:n.signers=$root.proto.KeyList.decode(e,e.uint32());break;case 9:n.creatorAccountID=$root.proto.AccountID.decode(e,e.uint32());break;case 10:n.payerAccountID=$root.proto.AccountID.decode(e,e.uint32());break;case 11:n.scheduledTransactionID=$root.proto.TransactionID.decode(e,e.uint32());break;case 12:n.ledgerId=e.bytes();break;case 13:n.waitForExpiry=e.bool();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ScheduleInfo"},e}(),e.ScheduleGetInfoResponse=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.ResponseHeader.decode(e,e.uint32());break;case 2:n.scheduleInfo=$root.proto.ScheduleInfo.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ScheduleGetInfoResponse"},e}(),e.TokenGetAccountNftInfosQuery=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.QueryHeader.decode(e,e.uint32());break;case 2:n.accountID=$root.proto.AccountID.decode(e,e.uint32());break;case 3:n.start=e.int64();break;case 4:n.end=e.int64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenGetAccountNftInfosQuery"},e}(),e.TokenGetAccountNftInfosResponse=function(){function e(e){if(this.nfts=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.ResponseHeader.decode(e,e.uint32());break;case 2:n.nfts&&n.nfts.length||(n.nfts=[]),n.nfts.push($root.proto.TokenNftInfo.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenGetAccountNftInfosResponse"},e}(),e.TokenGetNftInfoQuery=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.QueryHeader.decode(e,e.uint32());break;case 2:n.nftID=$root.proto.NftID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenGetNftInfoQuery"},e}(),e.TokenNftInfo=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.nftID=$root.proto.NftID.decode(e,e.uint32());break;case 2:n.accountID=$root.proto.AccountID.decode(e,e.uint32());break;case 3:n.creationTime=$root.proto.Timestamp.decode(e,e.uint32());break;case 4:n.metadata=e.bytes();break;case 5:n.ledgerId=e.bytes();break;case 6:n.spenderId=$root.proto.AccountID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenNftInfo"},e}(),e.TokenGetNftInfoResponse=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.ResponseHeader.decode(e,e.uint32());break;case 2:n.nft=$root.proto.TokenNftInfo.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenGetNftInfoResponse"},e}(),e.TokenGetNftInfosQuery=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.QueryHeader.decode(e,e.uint32());break;case 2:n.tokenID=$root.proto.TokenID.decode(e,e.uint32());break;case 3:n.start=e.int64();break;case 4:n.end=e.int64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenGetNftInfosQuery"},e}(),e.TokenGetNftInfosResponse=function(){function e(e){if(this.nfts=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.ResponseHeader.decode(e,e.uint32());break;case 2:n.tokenID=$root.proto.TokenID.decode(e,e.uint32());break;case 3:n.nfts&&n.nfts.length||(n.nfts=[]),n.nfts.push($root.proto.TokenNftInfo.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenGetNftInfosResponse"},e}(),e.GetAccountDetailsQuery=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.QueryHeader.decode(e,e.uint32());break;case 2:n.accountId=$root.proto.AccountID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.GetAccountDetailsQuery"},e}(),e.GetAccountDetailsResponse=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.header=$root.proto.ResponseHeader.decode(e,e.uint32());break;case 2:n.accountDetails=$root.proto.GetAccountDetailsResponse.AccountDetails.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.GetAccountDetailsResponse"},e.AccountDetails=function(){function e(e){if(this.tokenRelationships=[],this.grantedCryptoAllowances=[],this.grantedNftAllowances=[],this.grantedTokenAllowances=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.accountId=$root.proto.AccountID.decode(e,e.uint32());break;case 2:n.contractAccountId=e.string();break;case 3:n.deleted=e.bool();break;case 4:n.proxyAccountId=$root.proto.AccountID.decode(e,e.uint32());break;case 5:n.proxyReceived=e.int64();break;case 6:n.key=$root.proto.Key.decode(e,e.uint32());break;case 7:n.balance=e.uint64();break;case 8:n.receiverSigRequired=e.bool();break;case 9:n.expirationTime=$root.proto.Timestamp.decode(e,e.uint32());break;case 10:n.autoRenewPeriod=$root.proto.Duration.decode(e,e.uint32());break;case 11:n.tokenRelationships&&n.tokenRelationships.length||(n.tokenRelationships=[]),n.tokenRelationships.push($root.proto.TokenRelationship.decode(e,e.uint32()));break;case 12:n.memo=e.string();break;case 13:n.ownedNfts=e.int64();break;case 14:n.maxAutomaticTokenAssociations=e.int32();break;case 15:n.alias=e.bytes();break;case 16:n.ledgerId=e.bytes();break;case 17:n.grantedCryptoAllowances&&n.grantedCryptoAllowances.length||(n.grantedCryptoAllowances=[]),n.grantedCryptoAllowances.push($root.proto.GrantedCryptoAllowance.decode(e,e.uint32()));break;case 18:n.grantedNftAllowances&&n.grantedNftAllowances.length||(n.grantedNftAllowances=[]),n.grantedNftAllowances.push($root.proto.GrantedNftAllowance.decode(e,e.uint32()));break;case 19:n.grantedTokenAllowances&&n.grantedTokenAllowances.length||(n.grantedTokenAllowances=[]),n.grantedTokenAllowances.push($root.proto.GrantedTokenAllowance.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.GetAccountDetailsResponse.AccountDetails"},e}(),e}(),e.GrantedCryptoAllowance=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.spender=$root.proto.AccountID.decode(e,e.uint32());break;case 2:n.amount=e.int64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.GrantedCryptoAllowance"},e}(),e.GrantedNftAllowance=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.tokenId=$root.proto.TokenID.decode(e,e.uint32());break;case 2:n.spender=$root.proto.AccountID.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.GrantedNftAllowance"},e}(),e.GrantedTokenAllowance=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.tokenId=$root.proto.TokenID.decode(e,e.uint32());break;case 2:n.spender=$root.proto.AccountID.decode(e,e.uint32());break;case 3:n.amount=e.int64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.GrantedTokenAllowance"},e}(),e.Response=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.getByKey=$root.proto.GetByKeyResponse.decode(e,e.uint32());break;case 2:n.getBySolidityID=$root.proto.GetBySolidityIDResponse.decode(e,e.uint32());break;case 3:n.contractCallLocal=$root.proto.ContractCallLocalResponse.decode(e,e.uint32());break;case 5:n.contractGetBytecodeResponse=$root.proto.ContractGetBytecodeResponse.decode(e,e.uint32());break;case 4:n.contractGetInfo=$root.proto.ContractGetInfoResponse.decode(e,e.uint32());break;case 6:n.contractGetRecordsResponse=$root.proto.ContractGetRecordsResponse.decode(e,e.uint32());break;case 7:n.cryptogetAccountBalance=$root.proto.CryptoGetAccountBalanceResponse.decode(e,e.uint32());break;case 8:n.cryptoGetAccountRecords=$root.proto.CryptoGetAccountRecordsResponse.decode(e,e.uint32());break;case 9:n.cryptoGetInfo=$root.proto.CryptoGetInfoResponse.decode(e,e.uint32());break;case 10:n.cryptoGetLiveHash=$root.proto.CryptoGetLiveHashResponse.decode(e,e.uint32());break;case 11:n.cryptoGetProxyStakers=$root.proto.CryptoGetStakersResponse.decode(e,e.uint32());break;case 12:n.fileGetContents=$root.proto.FileGetContentsResponse.decode(e,e.uint32());break;case 13:n.fileGetInfo=$root.proto.FileGetInfoResponse.decode(e,e.uint32());break;case 14:n.transactionGetReceipt=$root.proto.TransactionGetReceiptResponse.decode(e,e.uint32());break;case 15:n.transactionGetRecord=$root.proto.TransactionGetRecordResponse.decode(e,e.uint32());break;case 16:n.transactionGetFastRecord=$root.proto.TransactionGetFastRecordResponse.decode(e,e.uint32());break;case 150:n.consensusGetTopicInfo=$root.proto.ConsensusGetTopicInfoResponse.decode(e,e.uint32());break;case 151:n.networkGetVersionInfo=$root.proto.NetworkGetVersionInfoResponse.decode(e,e.uint32());break;case 152:n.tokenGetInfo=$root.proto.TokenGetInfoResponse.decode(e,e.uint32());break;case 153:n.scheduleGetInfo=$root.proto.ScheduleGetInfoResponse.decode(e,e.uint32());break;case 154:n.tokenGetAccountNftInfos=$root.proto.TokenGetAccountNftInfosResponse.decode(e,e.uint32());break;case 155:n.tokenGetNftInfo=$root.proto.TokenGetNftInfoResponse.decode(e,e.uint32());break;case 156:n.tokenGetNftInfos=$root.proto.TokenGetNftInfosResponse.decode(e,e.uint32());break;case 157:n.networkGetExecutionTime=$root.proto.NetworkGetExecutionTimeResponse.decode(e,e.uint32());break;case 158:n.accountDetails=$root.proto.GetAccountDetailsResponse.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.Response"},e}(),e.CryptoService=function(){function e(e,t,r){$protobuf$1.rpc.Service.call(this,e,t,r)}return(e.prototype=Object.create($protobuf$1.rpc.Service.prototype)).constructor=e,e.create=function(e,t,r){return new this(e,t,r)},Object.defineProperty(e.prototype.createAccount=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"createAccount"}),Object.defineProperty(e.prototype.updateAccount=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"updateAccount"}),Object.defineProperty(e.prototype.cryptoTransfer=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"cryptoTransfer"}),Object.defineProperty(e.prototype.cryptoDelete=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"cryptoDelete"}),Object.defineProperty(e.prototype.approveAllowances=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"approveAllowances"}),Object.defineProperty(e.prototype.deleteAllowances=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"deleteAllowances"}),Object.defineProperty(e.prototype.addLiveHash=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"addLiveHash"}),Object.defineProperty(e.prototype.deleteLiveHash=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"deleteLiveHash"}),Object.defineProperty(e.prototype.getLiveHash=function e(t,r){return this.rpcCall(e,$root.proto.Query,$root.proto.Response,t,r)},"name",{value:"getLiveHash"}),Object.defineProperty(e.prototype.getAccountRecords=function e(t,r){return this.rpcCall(e,$root.proto.Query,$root.proto.Response,t,r)},"name",{value:"getAccountRecords"}),Object.defineProperty(e.prototype.cryptoGetBalance=function e(t,r){return this.rpcCall(e,$root.proto.Query,$root.proto.Response,t,r)},"name",{value:"cryptoGetBalance"}),Object.defineProperty(e.prototype.getAccountInfo=function e(t,r){return this.rpcCall(e,$root.proto.Query,$root.proto.Response,t,r)},"name",{value:"getAccountInfo"}),Object.defineProperty(e.prototype.getTransactionReceipts=function e(t,r){return this.rpcCall(e,$root.proto.Query,$root.proto.Response,t,r)},"name",{value:"getTransactionReceipts"}),Object.defineProperty(e.prototype.getTxRecordByTxID=function e(t,r){return this.rpcCall(e,$root.proto.Query,$root.proto.Response,t,r)},"name",{value:"getTxRecordByTxID"}),e}(),e.FileService=function(){function e(e,t,r){$protobuf$1.rpc.Service.call(this,e,t,r)}return(e.prototype=Object.create($protobuf$1.rpc.Service.prototype)).constructor=e,e.create=function(e,t,r){return new this(e,t,r)},Object.defineProperty(e.prototype.createFile=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"createFile"}),Object.defineProperty(e.prototype.updateFile=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"updateFile"}),Object.defineProperty(e.prototype.deleteFile=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"deleteFile"}),Object.defineProperty(e.prototype.appendContent=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"appendContent"}),Object.defineProperty(e.prototype.getFileContent=function e(t,r){return this.rpcCall(e,$root.proto.Query,$root.proto.Response,t,r)},"name",{value:"getFileContent"}),Object.defineProperty(e.prototype.getFileInfo=function e(t,r){return this.rpcCall(e,$root.proto.Query,$root.proto.Response,t,r)},"name",{value:"getFileInfo"}),Object.defineProperty(e.prototype.systemDelete=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"systemDelete"}),Object.defineProperty(e.prototype.systemUndelete=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"systemUndelete"}),e}(),e.FreezeService=function(){function e(e,t,r){$protobuf$1.rpc.Service.call(this,e,t,r)}return(e.prototype=Object.create($protobuf$1.rpc.Service.prototype)).constructor=e,e.create=function(e,t,r){return new this(e,t,r)},Object.defineProperty(e.prototype.freeze=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"freeze"}),e}(),e.NetworkService=function(){function e(e,t,r){$protobuf$1.rpc.Service.call(this,e,t,r)}return(e.prototype=Object.create($protobuf$1.rpc.Service.prototype)).constructor=e,e.create=function(e,t,r){return new this(e,t,r)},Object.defineProperty(e.prototype.getVersionInfo=function e(t,r){return this.rpcCall(e,$root.proto.Query,$root.proto.Response,t,r)},"name",{value:"getVersionInfo"}),Object.defineProperty(e.prototype.getAccountDetails=function e(t,r){return this.rpcCall(e,$root.proto.Query,$root.proto.Response,t,r)},"name",{value:"getAccountDetails"}),Object.defineProperty(e.prototype.getExecutionTime=function e(t,r){return this.rpcCall(e,$root.proto.Query,$root.proto.Response,t,r)},"name",{value:"getExecutionTime"}),Object.defineProperty(e.prototype.uncheckedSubmit=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"uncheckedSubmit"}),e}(),e.ScheduleService=function(){function e(e,t,r){$protobuf$1.rpc.Service.call(this,e,t,r)}return(e.prototype=Object.create($protobuf$1.rpc.Service.prototype)).constructor=e,e.create=function(e,t,r){return new this(e,t,r)},Object.defineProperty(e.prototype.createSchedule=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"createSchedule"}),Object.defineProperty(e.prototype.signSchedule=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"signSchedule"}),Object.defineProperty(e.prototype.deleteSchedule=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"deleteSchedule"}),Object.defineProperty(e.prototype.getScheduleInfo=function e(t,r){return this.rpcCall(e,$root.proto.Query,$root.proto.Response,t,r)},"name",{value:"getScheduleInfo"}),e}(),e.SmartContractService=function(){function e(e,t,r){$protobuf$1.rpc.Service.call(this,e,t,r)}return(e.prototype=Object.create($protobuf$1.rpc.Service.prototype)).constructor=e,e.create=function(e,t,r){return new this(e,t,r)},Object.defineProperty(e.prototype.createContract=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"createContract"}),Object.defineProperty(e.prototype.updateContract=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"updateContract"}),Object.defineProperty(e.prototype.contractCallMethod=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"contractCallMethod"}),Object.defineProperty(e.prototype.contractCallLocalMethod=function e(t,r){return this.rpcCall(e,$root.proto.Query,$root.proto.Response,t,r)},"name",{value:"contractCallLocalMethod"}),Object.defineProperty(e.prototype.getContractInfo=function e(t,r){return this.rpcCall(e,$root.proto.Query,$root.proto.Response,t,r)},"name",{value:"getContractInfo"}),Object.defineProperty(e.prototype.contractGetBytecode=function e(t,r){return this.rpcCall(e,$root.proto.Query,$root.proto.Response,t,r)},"name",{value:"ContractGetBytecode"}),Object.defineProperty(e.prototype.getBySolidityID=function e(t,r){return this.rpcCall(e,$root.proto.Query,$root.proto.Response,t,r)},"name",{value:"getBySolidityID"}),Object.defineProperty(e.prototype.getTxRecordByContractID=function e(t,r){return this.rpcCall(e,$root.proto.Query,$root.proto.Response,t,r)},"name",{value:"getTxRecordByContractID"}),Object.defineProperty(e.prototype.deleteContract=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"deleteContract"}),Object.defineProperty(e.prototype.systemDelete=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"systemDelete"}),Object.defineProperty(e.prototype.systemUndelete=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"systemUndelete"}),Object.defineProperty(e.prototype.callEthereum=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"callEthereum"}),e}(),e.ThrottleGroup=function(){function e(e){if(this.operations=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:if(n.operations&&n.operations.length||(n.operations=[]),2==(7&o))for(var i=e.uint32()+e.pos;e.pos>>3){case 1:n.name=e.string();break;case 2:n.burstPeriodMs=e.uint64();break;case 3:n.throttleGroups&&n.throttleGroups.length||(n.throttleGroups=[]),n.throttleGroups.push($root.proto.ThrottleGroup.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ThrottleBucket"},e}(),e.ThrottleDefinitions=function(){function e(e){if(this.throttleBuckets=[],e)for(var t=Object.keys(e),r=0;r>>3==1)n.throttleBuckets&&n.throttleBuckets.length||(n.throttleBuckets=[]),n.throttleBuckets.push($root.proto.ThrottleBucket.decode(e,e.uint32()));else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ThrottleDefinitions"},e}(),e.TokenService=function(){function e(e,t,r){$protobuf$1.rpc.Service.call(this,e,t,r)}return(e.prototype=Object.create($protobuf$1.rpc.Service.prototype)).constructor=e,e.create=function(e,t,r){return new this(e,t,r)},Object.defineProperty(e.prototype.createToken=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"createToken"}),Object.defineProperty(e.prototype.updateToken=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"updateToken"}),Object.defineProperty(e.prototype.mintToken=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"mintToken"}),Object.defineProperty(e.prototype.burnToken=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"burnToken"}),Object.defineProperty(e.prototype.deleteToken=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"deleteToken"}),Object.defineProperty(e.prototype.wipeTokenAccount=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"wipeTokenAccount"}),Object.defineProperty(e.prototype.freezeTokenAccount=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"freezeTokenAccount"}),Object.defineProperty(e.prototype.unfreezeTokenAccount=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"unfreezeTokenAccount"}),Object.defineProperty(e.prototype.grantKycToTokenAccount=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"grantKycToTokenAccount"}),Object.defineProperty(e.prototype.revokeKycFromTokenAccount=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"revokeKycFromTokenAccount"}),Object.defineProperty(e.prototype.associateTokens=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"associateTokens"}),Object.defineProperty(e.prototype.dissociateTokens=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"dissociateTokens"}),Object.defineProperty(e.prototype.updateTokenFeeSchedule=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"updateTokenFeeSchedule"}),Object.defineProperty(e.prototype.getTokenInfo=function e(t,r){return this.rpcCall(e,$root.proto.Query,$root.proto.Response,t,r)},"name",{value:"getTokenInfo"}),Object.defineProperty(e.prototype.getTokenNftInfo=function e(t,r){return this.rpcCall(e,$root.proto.Query,$root.proto.Response,t,r)},"name",{value:"getTokenNftInfo"}),Object.defineProperty(e.prototype.pauseToken=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"pauseToken"}),Object.defineProperty(e.prototype.unpauseToken=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"unpauseToken"}),Object.defineProperty(e.prototype.updateNfts=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"updateNfts"}),Object.defineProperty(e.prototype.rejectToken=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"rejectToken"}),Object.defineProperty(e.prototype.airdropTokens=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"airdropTokens"}),Object.defineProperty(e.prototype.cancelAirdrop=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"cancelAirdrop"}),Object.defineProperty(e.prototype.claimAirdrop=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"claimAirdrop"}),e}(),e.SignedTransaction=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.bodyBytes=e.bytes();break;case 2:n.sigMap=$root.proto.SignatureMap.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.SignedTransaction"},e}(),e.UtilService=function(){function e(e,t,r){$protobuf$1.rpc.Service.call(this,e,t,r)}return(e.prototype=Object.create($protobuf$1.rpc.Service.prototype)).constructor=e,e.create=function(e,t,r){return new this(e,t,r)},Object.defineProperty(e.prototype.prng=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"prng"}),Object.defineProperty(e.prototype.atomicBatch=function e(t,r){return this.rpcCall(e,$root.proto.Transaction,$root.proto.TransactionResponse,t,r)},"name",{value:"atomicBatch"}),e}(),e.TokenUnitBalance=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.tokenId=$root.proto.TokenID.decode(e,e.uint32());break;case 2:n.balance=e.uint64();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenUnitBalance"},e}(),e.SingleAccountBalances=function(){function e(e){if(this.tokenUnitBalances=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.accountID=$root.proto.AccountID.decode(e,e.uint32());break;case 2:n.hbarBalance=e.uint64();break;case 3:n.tokenUnitBalances&&n.tokenUnitBalances.length||(n.tokenUnitBalances=[]),n.tokenUnitBalances.push($root.proto.TokenUnitBalance.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.SingleAccountBalances"},e}(),e.AllAccountBalances=function(){function e(e){if(this.allAccounts=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.consensusTimestamp=$root.proto.Timestamp.decode(e,e.uint32());break;case 2:n.allAccounts&&n.allAccounts.length||(n.allAccounts=[]),n.allAccounts.push($root.proto.SingleAccountBalances.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.AllAccountBalances"},e}(),e.ContractActions=function(){function e(e){if(this.contractActions=[],e)for(var t=Object.keys(e),r=0;r>>3==1)n.contractActions&&n.contractActions.length||(n.contractActions=[]),n.contractActions.push($root.proto.ContractAction.decode(e,e.uint32()));else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractActions"},e}(),e.ContractActionType=function(){const e={},t=Object.create(e);return t[e[0]="NO_ACTION"]=0,t[e[1]="CALL"]=1,t[e[2]="CREATE"]=2,t[e[3]="PRECOMPILE"]=3,t[e[4]="SYSTEM"]=4,t}(),e.CallOperationType=function(){const e={},t=Object.create(e);return t[e[0]="OP_UNKNOWN"]=0,t[e[1]="OP_CALL"]=1,t[e[2]="OP_CALLCODE"]=2,t[e[3]="OP_DELEGATECALL"]=3,t[e[4]="OP_STATICCALL"]=4,t[e[5]="OP_CREATE"]=5,t[e[6]="OP_CREATE2"]=6,t}(),e.ContractAction=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.callType=e.int32();break;case 2:n.callingAccount=$root.proto.AccountID.decode(e,e.uint32());break;case 3:n.callingContract=$root.proto.ContractID.decode(e,e.uint32());break;case 4:n.gas=e.int64();break;case 5:n.input=e.bytes();break;case 6:n.recipientAccount=$root.proto.AccountID.decode(e,e.uint32());break;case 7:n.recipientContract=$root.proto.ContractID.decode(e,e.uint32());break;case 8:n.targetedAddress=e.bytes();break;case 9:n.value=e.int64();break;case 10:n.gasUsed=e.int64();break;case 11:n.output=e.bytes();break;case 12:n.revertReason=e.bytes();break;case 13:n.error=e.bytes();break;case 14:n.callDepth=e.int32();break;case 15:n.callOperationType=e.int32();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractAction"},e}(),e.ContractBytecode=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.contractId=$root.proto.ContractID.decode(e,e.uint32());break;case 2:n.initcode=e.bytes();break;case 3:n.runtimeBytecode=e.bytes();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractBytecode"},e}(),e.ContractStateChanges=function(){function e(e){if(this.contractStateChanges=[],e)for(var t=Object.keys(e),r=0;r>>3==1)n.contractStateChanges&&n.contractStateChanges.length||(n.contractStateChanges=[]),n.contractStateChanges.push($root.proto.ContractStateChange.decode(e,e.uint32()));else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractStateChanges"},e}(),e.ContractStateChange=function(){function e(e){if(this.storageChanges=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.contractId=$root.proto.ContractID.decode(e,e.uint32());break;case 2:n.storageChanges&&n.storageChanges.length||(n.storageChanges=[]),n.storageChanges.push($root.proto.StorageChange.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractStateChange"},e}(),e.StorageChange=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.slot=e.bytes();break;case 2:n.valueRead=e.bytes();break;case 3:n.valueWritten=$root.google.protobuf.BytesValue.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.StorageChange"},e}(),e.HashAlgorithm=function(){const e={},t=Object.create(e);return t[e[0]="HASH_ALGORITHM_UNKNOWN"]=0,t[e[1]="SHA_384"]=1,t}(),e.HashObject=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.algorithm=e.int32();break;case 2:n.length=e.int32();break;case 3:n.hash=e.bytes();break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.HashObject"},e}(),e.RecordStreamFile=function(){function e(e){if(this.recordStreamItems=[],this.sidecars=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.hapiProtoVersion=$root.proto.SemanticVersion.decode(e,e.uint32());break;case 2:n.startObjectRunningHash=$root.proto.HashObject.decode(e,e.uint32());break;case 3:n.recordStreamItems&&n.recordStreamItems.length||(n.recordStreamItems=[]),n.recordStreamItems.push($root.proto.RecordStreamItem.decode(e,e.uint32()));break;case 4:n.endObjectRunningHash=$root.proto.HashObject.decode(e,e.uint32());break;case 5:n.blockNumber=e.int64();break;case 6:n.sidecars&&n.sidecars.length||(n.sidecars=[]),n.sidecars.push($root.proto.SidecarMetadata.decode(e,e.uint32()));break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.RecordStreamFile"},e}(),e.RecordStreamItem=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.transaction=$root.proto.Transaction.decode(e,e.uint32());break;case 2:n.record=$root.proto.TransactionRecord.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.RecordStreamItem"},e}(),e.SidecarMetadata=function(){function e(e){if(this.types=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.hash=$root.proto.HashObject.decode(e,e.uint32());break;case 2:n.id=e.int32();break;case 3:if(n.types&&n.types.length||(n.types=[]),2==(7&o))for(var i=e.uint32()+e.pos;e.pos>>3==1)n.sidecarRecords&&n.sidecarRecords.length||(n.sidecarRecords=[]),n.sidecarRecords.push($root.proto.TransactionSidecarRecord.decode(e,e.uint32()));else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.SidecarFile"},e}(),e.TransactionSidecarRecord=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.consensusTimestamp=$root.proto.Timestamp.decode(e,e.uint32());break;case 2:n.migration=e.bool();break;case 3:n.stateChanges=$root.proto.ContractStateChanges.decode(e,e.uint32());break;case 4:n.actions=$root.proto.ContractActions.decode(e,e.uint32());break;case 5:n.bytecode=$root.proto.ContractBytecode.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TransactionSidecarRecord"},e}(),e.SignatureFile=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.fileSignature=$root.proto.SignatureObject.decode(e,e.uint32());break;case 2:n.metadataSignature=$root.proto.SignatureObject.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.SignatureFile"},e}(),e.SignatureObject=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:n.type=e.int32();break;case 2:n.length=e.int32();break;case 3:n.checksum=e.int32();break;case 4:n.signature=e.bytes();break;case 5:n.hashObject=$root.proto.HashObject.decode(e,e.uint32());break;default:e.skipType(7&o)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.SignatureObject"},e}(),e.SignatureType=function(){const e={},t=Object.create(e);return t[e[0]="SIGNATURE_TYPE_UNKNOWN"]=0,t[e[1]="SHA_384_WITH_RSA"]=1,t}(),e})();proto$2.proto=proto$1;const google$1=$root.google=(()=>{const e={};return e.protobuf=function(){const e={};return e.DoubleValue=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==1)n.value=e.double();else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/google.protobuf.DoubleValue"},e}(),e.FloatValue=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==1)n.value=e.float();else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/google.protobuf.FloatValue"},e}(),e.Int64Value=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==1)n.value=e.int64();else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/google.protobuf.Int64Value"},e}(),e.UInt64Value=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==1)n.value=e.uint64();else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/google.protobuf.UInt64Value"},e}(),e.Int32Value=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==1)n.value=e.int32();else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/google.protobuf.Int32Value"},e}(),e.UInt32Value=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==1)n.value=e.uint32();else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/google.protobuf.UInt32Value"},e}(),e.BoolValue=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==1)n.value=e.bool();else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/google.protobuf.BoolValue"},e}(),e.StringValue=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==1)n.value=e.string();else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/google.protobuf.StringValue"},e}(),e.BytesValue=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3==1)n.value=e.bytes();else e.skipType(7&o)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/google.protobuf.BytesValue"},e}(),e}(),e})();proto$2.google=google$1,Object.defineProperty(lib,"__esModule",{value:!0});var proto_1=lib.proto=google_1=lib.google=com_1=lib.com=Writer_1=lib.Writer=Reader_1=lib.Reader=void 0,$protobuf=_interopRequireWildcard(minimal),_long=_interopRequireDefault(require$$1$2),$proto=_interopRequireWildcard(proto$2),$util2;function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(_getRequireWildcardCache=function(e){return e?r:t})(e)}function _interopRequireWildcard(e,t){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=_getRequireWildcardCache(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var s=o?Object.getOwnPropertyDescriptor(e,i):null;s&&(s.get||s.set)?Object.defineProperty(n,i,s):n[i]=e[i]}return n.default=e,r&&r.set(e,n),n}$util2=$protobuf.util,null==$util2.Long&&(console.log("Patching Protobuf Long.js instance..."),$util2.Long=_long.default,null!=$protobuf.Reader._configure&&$protobuf.Reader._configure($protobuf.BufferReader));const Reader$1=$protobuf.Reader;var Reader_1=lib.Reader=Reader$1;const Writer$1=$protobuf.Writer;var Writer_1=lib.Writer=Writer$1;const proto=$proto.proto;proto_1=lib.proto=proto;const com=$proto.com;var com_1=lib.com=com;const google=$proto.google;var google_1=lib.google=google;const e$E=_mergeNamespaces({__proto__:null,get Reader(){return Reader_1},get Writer(){return Writer_1},get com(){return com_1},default:lib,get google(){return google_1},get proto(){return proto_1}},[lib]);class Key{}class BadKeyError extends Error{constructor(e){super(e instanceof Error?e.message:e),this.name="BadKeyError",e instanceof Error&&(this.cause=e,this.stack=e.stack)}}function commonjsRequire$1(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var naclFast={exports:{}},cryptoBrowserify={};function getDefaultExportFromCjs(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var browser$h={exports:{}},process=browser$h.exports={},cachedSetTimeout,cachedClearTimeout;function defaultSetTimout(){throw new Error("setTimeout has not been defined")}function defaultClearTimeout(){throw new Error("clearTimeout has not been defined")}function runTimeout(e){if(cachedSetTimeout===setTimeout)return setTimeout(e,0);if((cachedSetTimeout===defaultSetTimout||!cachedSetTimeout)&&setTimeout)return cachedSetTimeout=setTimeout,setTimeout(e,0);try{return cachedSetTimeout(e,0)}catch(t){try{return cachedSetTimeout.call(null,e,0)}catch(r){return cachedSetTimeout.call(this,e,0)}}}function runClearTimeout(e){if(cachedClearTimeout===clearTimeout)return clearTimeout(e);if((cachedClearTimeout===defaultClearTimeout||!cachedClearTimeout)&&clearTimeout)return cachedClearTimeout=clearTimeout,clearTimeout(e);try{return cachedClearTimeout(e)}catch(t){try{return cachedClearTimeout.call(null,e)}catch(r){return cachedClearTimeout.call(this,e)}}}!function(){try{cachedSetTimeout="function"==typeof setTimeout?setTimeout:defaultSetTimout}catch(e){cachedSetTimeout=defaultSetTimout}try{cachedClearTimeout="function"==typeof clearTimeout?clearTimeout:defaultClearTimeout}catch(e){cachedClearTimeout=defaultClearTimeout}}();var queue=[],draining=!1,currentQueue,queueIndex=-1;function cleanUpNextTick(){draining&¤tQueue&&(draining=!1,currentQueue.length?queue=currentQueue.concat(queue):queueIndex=-1,queue.length&&drainQueue())}function drainQueue(){if(!draining){var e=runTimeout(cleanUpNextTick);draining=!0;for(var t=queue.length;t;){for(currentQueue=queue,queue=[];++queueIndex1)for(var r=1;r */var hasRequiredSafeBuffer$1,hasRequiredBrowser$b;function requireSafeBuffer$1(){return hasRequiredSafeBuffer$1||(hasRequiredSafeBuffer$1=1,function(e,t){var r=require$$2$1,n=r.Buffer;function o(e,t){for(var r in e)t[r]=e[r]}function i(e,t,r){return n(e,t,r)}n.from&&n.alloc&&n.allocUnsafe&&n.allocUnsafeSlow?e.exports=r:(o(r,t),t.Buffer=i),i.prototype=Object.create(n.prototype),o(n,i),i.from=function(e,t,r){if("number"==typeof e)throw new TypeError("Argument must not be a number");return n(e,t,r)},i.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError("Argument must be a number");var o=n(e);return void 0!==t?"string"==typeof r?o.fill(t,r):o.fill(t):o.fill(0),o},i.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return n(e)},i.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return r.SlowBuffer(e)}}(safeBuffer$1,safeBuffer$1.exports)),safeBuffer$1.exports}function requireBrowser$b(){if(hasRequiredBrowser$b)return browser$g.exports;hasRequiredBrowser$b=1;var e=65536,t=4294967295;var r=requireSafeBuffer$1().Buffer,n=commonjsGlobal.crypto||commonjsGlobal.msCrypto;return n&&n.getRandomValues?browser$g.exports=function(o,i){if(o>t)throw new RangeError("requested too many random bytes");var s=r.allocUnsafe(o);if(o>0)if(o>e)for(var a=0;a0&&s.length>o&&!s.warned){s.warned=!0;var a=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");a.name="MaxListenersExceededWarning",a.emitter=e,a.type=t,a.count=s.length,ProcessEmitWarning(a)}return e}function onceWrapper(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function _onceWrap(e,t,r){var n={fired:!1,wrapFn:void 0,target:e,type:t,listener:r},o=onceWrapper.bind(n);return o.listener=r,n.wrapFn=o,o}function _listeners(e,t,r){var n=e._events;if(void 0===n)return[];var o=n[t];return void 0===o?[]:"function"==typeof o?r?[o.listener||o]:[o]:r?unwrapListeners(o):arrayClone(o,o.length)}function listenerCount(e){var t=this._events;if(void 0!==t){var r=t[e];if("function"==typeof r)return 1;if(void 0!==r)return r.length}return 0}function arrayClone(e,t){for(var r=new Array(t),n=0;n0&&(i=t[0]),i instanceof Error)throw i;var s=new Error("Unhandled error."+(i?" ("+i.message+")":""));throw s.context=i,s}var a=o[e];if(void 0===a)return!1;if("function"==typeof a)ReflectApply(a,this,t);else{var c=a.length,u=arrayClone(a,c);for(r=0;r=0;i--)if(r[i]===t||r[i].listener===t){s=r[i].listener,o=i;break}if(o<0)return this;0===o?r.shift():spliceOne(r,o),1===r.length&&(n[e]=r[0]),void 0!==n.removeListener&&this.emit("removeListener",e,s||t)}return this},EventEmitter.prototype.off=EventEmitter.prototype.removeListener,EventEmitter.prototype.removeAllListeners=function(e){var t,r,n;if(void 0===(r=this._events))return this;if(void 0===r.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==r[e]&&(0==--this._eventsCount?this._events=Object.create(null):delete r[e]),this;if(0===arguments.length){var o,i=Object.keys(r);for(n=0;n=0;n--)this.removeListener(e,t[n]);return this},EventEmitter.prototype.listeners=function(e){return _listeners(this,e,!0)},EventEmitter.prototype.rawListeners=function(e){return _listeners(this,e,!1)},EventEmitter.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):listenerCount.call(e,t)},EventEmitter.prototype.listenerCount=listenerCount,EventEmitter.prototype.eventNames=function(){return this._eventsCount>0?ReflectOwnKeys(this._events):[]};var eventsExports=events.exports;const mi=getDefaultExportFromCjs$1(eventsExports);var streamBrowser$1,hasRequiredStreamBrowser$1;function requireStreamBrowser$1(){return hasRequiredStreamBrowser$1?streamBrowser$1:(hasRequiredStreamBrowser$1=1,streamBrowser$1=eventsExports.EventEmitter)}var util$2={},types$1={},shams$1,hasRequiredShams$1,shams,hasRequiredShams,esObjectAtoms,hasRequiredEsObjectAtoms,esErrors,hasRequiredEsErrors,_eval,hasRequired_eval,range,hasRequiredRange,ref,hasRequiredRef,syntax,hasRequiredSyntax,type,hasRequiredType,uri,hasRequiredUri,abs,hasRequiredAbs,floor,hasRequiredFloor,max,hasRequiredMax,min,hasRequiredMin,pow,hasRequiredPow,gOPD,hasRequiredGOPD,gopd,hasRequiredGopd,esDefineProperty,hasRequiredEsDefineProperty,hasSymbols,hasRequiredHasSymbols,implementation,hasRequiredImplementation,functionBind,hasRequiredFunctionBind,functionCall,hasRequiredFunctionCall,functionApply,hasRequiredFunctionApply,reflectApply,hasRequiredReflectApply,actualApply,hasRequiredActualApply,callBindApplyHelpers,hasRequiredCallBindApplyHelpers,get$1,hasRequiredGet,hasown,hasRequiredHasown,getIntrinsic,hasRequiredGetIntrinsic,callBound,hasRequiredCallBound,isArguments,hasRequiredIsArguments,isGeneratorFunction,hasRequiredIsGeneratorFunction,isCallable,hasRequiredIsCallable,forEach_1,hasRequiredForEach,possibleTypedArrayNames,hasRequiredPossibleTypedArrayNames,availableTypedArrays,hasRequiredAvailableTypedArrays;function requireShams$1(){return hasRequiredShams$1?shams$1:(hasRequiredShams$1=1,shams$1=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"==typeof Symbol.iterator)return!0;var e={},t=Symbol("test"),r=Object(t);if("string"==typeof t)return!1;if("[object Symbol]"!==Object.prototype.toString.call(t))return!1;if("[object Symbol]"!==Object.prototype.toString.call(r))return!1;for(var n in e[t]=42,e)return!1;if("function"==typeof Object.keys&&0!==Object.keys(e).length)return!1;if("function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(e).length)return!1;var o=Object.getOwnPropertySymbols(e);if(1!==o.length||o[0]!==t)return!1;if(!Object.prototype.propertyIsEnumerable.call(e,t))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){var i=Object.getOwnPropertyDescriptor(e,t);if(42!==i.value||!0!==i.enumerable)return!1}return!0})}function requireShams(){if(hasRequiredShams)return shams;hasRequiredShams=1;var e=requireShams$1();return shams=function(){return e()&&!!Symbol.toStringTag}}function requireEsObjectAtoms(){return hasRequiredEsObjectAtoms?esObjectAtoms:(hasRequiredEsObjectAtoms=1,esObjectAtoms=Object)}function requireEsErrors(){return hasRequiredEsErrors?esErrors:(hasRequiredEsErrors=1,esErrors=Error)}function require_eval(){return hasRequired_eval?_eval:(hasRequired_eval=1,_eval=EvalError)}function requireRange(){return hasRequiredRange?range:(hasRequiredRange=1,range=RangeError)}function requireRef(){return hasRequiredRef?ref:(hasRequiredRef=1,ref=ReferenceError)}function requireSyntax(){return hasRequiredSyntax?syntax:(hasRequiredSyntax=1,syntax=SyntaxError)}function requireType(){return hasRequiredType?type:(hasRequiredType=1,type=TypeError)}function requireUri(){return hasRequiredUri?uri:(hasRequiredUri=1,uri=URIError)}function requireAbs(){return hasRequiredAbs?abs:(hasRequiredAbs=1,abs=Math.abs)}function requireFloor(){return hasRequiredFloor?floor:(hasRequiredFloor=1,floor=Math.floor)}function requireMax(){return hasRequiredMax?max:(hasRequiredMax=1,max=Math.max)}function requireMin(){return hasRequiredMin?min:(hasRequiredMin=1,min=Math.min)}function requirePow(){return hasRequiredPow?pow:(hasRequiredPow=1,pow=Math.pow)}function requireGOPD(){return hasRequiredGOPD?gOPD:(hasRequiredGOPD=1,gOPD=Object.getOwnPropertyDescriptor)}function requireGopd(){if(hasRequiredGopd)return gopd;hasRequiredGopd=1;var e=requireGOPD();if(e)try{e([],"length")}catch(t){e=null}return gopd=e}function requireEsDefineProperty(){if(hasRequiredEsDefineProperty)return esDefineProperty;hasRequiredEsDefineProperty=1;var e=Object.defineProperty||!1;if(e)try{e({},"a",{value:1})}catch(t){e=!1}return esDefineProperty=e}function requireHasSymbols(){if(hasRequiredHasSymbols)return hasSymbols;hasRequiredHasSymbols=1;var e="undefined"!=typeof Symbol&&Symbol,t=requireShams$1();return hasSymbols=function(){return"function"==typeof e&&("function"==typeof Symbol&&("symbol"==typeof e("foo")&&("symbol"==typeof Symbol("bar")&&t())))}}function requireImplementation(){if(hasRequiredImplementation)return implementation;hasRequiredImplementation=1;var e=Object.prototype.toString,t=Math.max,r=function(e,t){for(var r=[],n=0;n1&&"boolean"!=typeof t)throw new a('"allowMissing" argument must be a boolean');if(null===D(/^%?[^%]*%?$/,e))throw new s("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var r=function(e){var t=x(e,0,1),r=x(e,-1);if("%"===t&&"%"!==r)throw new s("invalid intrinsic syntax, expected closing `%`");if("%"===r&&"%"!==t)throw new s("invalid intrinsic syntax, expected opening `%`");var n=[];return B(e,L,(function(e,t,r,o){n[n.length]=r?B(o,U,"$1"):t||e})),n}(e),n=r.length>0?r[0]:"",o=F("%"+n+"%",t),i=o.name,c=o.value,u=!1,l=o.alias;l&&(n=l[0],N(r,M([0,1],l)));for(var d=1,h=!0;d=r.length){var g=y(c,f);c=(h=!!g)&&"get"in g&&!("originalValue"in g.get)?g.get:c[f]}else h=O(c,f),c=c[f];h&&!u&&(E[i]=c)}}return c},getIntrinsic}function requireCallBound(){if(hasRequiredCallBound)return callBound;hasRequiredCallBound=1;var e=requireGetIntrinsic(),t=requireCallBindApplyHelpers(),r=t([e("%String.prototype.indexOf%")]);return callBound=function(n,o){var i=e(n,!!o);return"function"==typeof i&&r(n,".prototype.")>-1?t([i]):i}}function requireIsArguments(){if(hasRequiredIsArguments)return isArguments;hasRequiredIsArguments=1;var e=requireShams()(),t=requireCallBound()("Object.prototype.toString"),r=function(r){return!(e&&r&&"object"==typeof r&&Symbol.toStringTag in r)&&"[object Arguments]"===t(r)},n=function(e){return!!r(e)||null!==e&&"object"==typeof e&&"length"in e&&"number"==typeof e.length&&e.length>=0&&"[object Array]"!==t(e)&&"callee"in e&&"[object Function]"===t(e.callee)},o=function(){return r(arguments)}();return r.isLegacyArguments=n,isArguments=o?r:n}function requireIsGeneratorFunction(){if(hasRequiredIsGeneratorFunction)return isGeneratorFunction;hasRequiredIsGeneratorFunction=1;var e,t=Object.prototype.toString,r=Function.prototype.toString,n=/^\s*(?:function)?\*/,o=requireShams()(),i=Object.getPrototypeOf;return isGeneratorFunction=function(s){if("function"!=typeof s)return!1;if(n.test(r.call(s)))return!0;if(!o)return"[object GeneratorFunction]"===t.call(s);if(!i)return!1;if(void 0===e){var a=function(){if(!o)return!1;try{return Function("return function*() {}")()}catch(e){}}();e=!!a&&i(a)}return i(s)===e}}function requireIsCallable(){if(hasRequiredIsCallable)return isCallable;hasRequiredIsCallable=1;var e,t,r=Function.prototype.toString,n="object"==typeof Reflect&&null!==Reflect&&Reflect.apply;if("function"==typeof n&&"function"==typeof Object.defineProperty)try{e=Object.defineProperty({},"length",{get:function(){throw t}}),t={},n((function(){throw 42}),null,e)}catch(h){h!==t&&(n=null)}else n=null;var o=/^\s*class\b/,i=function(e){try{var t=r.call(e);return o.test(t)}catch(n){return!1}},s=function(e){try{return!i(e)&&(r.call(e),!0)}catch(t){return!1}},a=Object.prototype.toString,c="function"==typeof Symbol&&!!Symbol.toStringTag,u=!(0 in[,]),l=function(){return!1};if("object"==typeof document){var d=document.all;a.call(d)===a.call(document.all)&&(l=function(e){if((u||!e)&&(void 0===e||"object"==typeof e))try{var t=a.call(e);return("[object HTMLAllCollection]"===t||"[object HTML document.all class]"===t||"[object HTMLCollection]"===t||"[object Object]"===t)&&null==e("")}catch(r){}return!1})}return isCallable=n?function(r){if(l(r))return!0;if(!r)return!1;if("function"!=typeof r&&"object"!=typeof r)return!1;try{n(r,null,e)}catch(o){if(o!==t)return!1}return!i(r)&&s(r)}:function(e){if(l(e))return!0;if(!e)return!1;if("function"!=typeof e&&"object"!=typeof e)return!1;if(c)return s(e);if(i(e))return!1;var t=a.call(e);return!("[object Function]"!==t&&"[object GeneratorFunction]"!==t&&!/^\[object HTML/.test(t))&&s(e)}}function requireForEach(){if(hasRequiredForEach)return forEach_1;hasRequiredForEach=1;var e=requireIsCallable(),t=Object.prototype.toString,r=Object.prototype.hasOwnProperty;return forEach_1=function(n,o,i){if(!e(o))throw new TypeError("iterator must be a function");var s;arguments.length>=3&&(s=i),"[object Array]"===t.call(n)?function(e,t,n){for(var o=0,i=e.length;o3&&"boolean"!=typeof arguments[3]&&null!==arguments[3])throw new r("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&"boolean"!=typeof arguments[4]&&null!==arguments[4])throw new r("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&"boolean"!=typeof arguments[5]&&null!==arguments[5])throw new r("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&"boolean"!=typeof arguments[6])throw new r("`loose`, if provided, must be a boolean");var a=arguments.length>3?arguments[3]:null,c=arguments.length>4?arguments[4]:null,u=arguments.length>5?arguments[5]:null,l=arguments.length>6&&arguments[6],d=!!n&&n(o,i);if(e)e(o,i,{configurable:null===u&&d?d.configurable:!u,enumerable:null===a&&d?d.enumerable:!a,value:s,writable:null===c&&d?d.writable:!c});else{if(!l&&(a||c||u))throw new t("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.");o[i]=s}},defineDataProperty}function requireHasPropertyDescriptors(){if(hasRequiredHasPropertyDescriptors)return hasPropertyDescriptors_1;hasRequiredHasPropertyDescriptors=1;var e=requireEsDefineProperty(),t=function(){return!!e};return t.hasArrayLengthDefineBug=function(){if(!e)return null;try{return 1!==e([],"length",{value:1}).length}catch(t){return!0}},hasPropertyDescriptors_1=t}function requireSetFunctionLength(){if(hasRequiredSetFunctionLength)return setFunctionLength;hasRequiredSetFunctionLength=1;var e=requireGetIntrinsic(),t=requireDefineDataProperty(),r=requireHasPropertyDescriptors()(),n=requireGopd(),o=requireType(),i=e("%Math.floor%");return setFunctionLength=function(e,s){if("function"!=typeof e)throw new o("`fn` is not a function");if("number"!=typeof s||s<0||s>4294967295||i(s)!==s)throw new o("`length` must be a positive 32-bit integer");var a=arguments.length>2&&!!arguments[2],c=!0,u=!0;if("length"in e&&n){var l=n(e,"length");l&&!l.configurable&&(c=!1),l&&!l.writable&&(u=!1)}return(c||u||!a)&&(r?t(e,"length",s,!0,!0):t(e,"length",s)),e},setFunctionLength}function requireApplyBind(){if(hasRequiredApplyBind)return applyBind;hasRequiredApplyBind=1;var e=requireFunctionBind(),t=requireFunctionApply(),r=requireActualApply();return applyBind=function(){return r(e,t,arguments)},applyBind}function requireCallBind(){return hasRequiredCallBind||(hasRequiredCallBind=1,e=callBind,t=requireSetFunctionLength(),r=requireEsDefineProperty(),n=requireCallBindApplyHelpers(),o=requireApplyBind(),e.exports=function(e){var r=n(arguments),o=e.length-(arguments.length-1);return t(r,1+(o>0?o:0),!0)},r?r(e.exports,"apply",{value:o}):e.exports.apply=o),callBind.exports;var e,t,r,n,o}function requireWhichTypedArray(){if(hasRequiredWhichTypedArray)return whichTypedArray;hasRequiredWhichTypedArray=1;var e=requireForEach(),t=requireAvailableTypedArrays(),r=requireCallBind(),n=requireCallBound(),o=requireGopd(),i=n("Object.prototype.toString"),s=requireShams()(),a="undefined"==typeof globalThis?commonjsGlobal:globalThis,c=t(),u=n("String.prototype.slice"),l=Object.getPrototypeOf,d=n("Array.prototype.indexOf",!0)||function(e,t){for(var r=0;r-1?r:"Object"===r&&function(t){var r=!1;return e(h,(function(e,n){if(!r)try{e(t),r=u(n,1)}catch(o){}})),r}(t)}return o?function(t){var r=!1;return e(h,(function(e,n){if(!r)try{"$"+e(t)===n&&(r=u(n,1))}catch(o){}})),r}(t):null}}function requireIsTypedArray(){if(hasRequiredIsTypedArray)return isTypedArray;hasRequiredIsTypedArray=1;var e=requireWhichTypedArray();return isTypedArray=function(t){return!!e(t)}}function requireTypes$1(){return hasRequiredTypes$1||(hasRequiredTypes$1=1,function(e){var t=requireIsArguments(),r=requireIsGeneratorFunction(),n=requireWhichTypedArray(),o=requireIsTypedArray();function i(e){return e.call.bind(e)}var s="undefined"!=typeof BigInt,a="undefined"!=typeof Symbol,c=i(Object.prototype.toString),u=i(Number.prototype.valueOf),l=i(String.prototype.valueOf),d=i(Boolean.prototype.valueOf);if(s)var h=i(BigInt.prototype.valueOf);if(a)var f=i(Symbol.prototype.valueOf);function p(e,t){if("object"!=typeof e)return!1;try{return t(e),!0}catch(r){return!1}}function m(e){return"[object Map]"===c(e)}function y(e){return"[object Set]"===c(e)}function g(e){return"[object WeakMap]"===c(e)}function b(e){return"[object WeakSet]"===c(e)}function w(e){return"[object ArrayBuffer]"===c(e)}function _(e){return"undefined"!=typeof ArrayBuffer&&(w.working?w(e):e instanceof ArrayBuffer)}function v(e){return"[object DataView]"===c(e)}function $(e){return"undefined"!=typeof DataView&&(v.working?v(e):e instanceof DataView)}e.isArgumentsObject=t,e.isGeneratorFunction=r,e.isTypedArray=o,e.isPromise=function(e){return"undefined"!=typeof Promise&&e instanceof Promise||null!==e&&"object"==typeof e&&"function"==typeof e.then&&"function"==typeof e.catch},e.isArrayBufferView=function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):o(e)||$(e)},e.isUint8Array=function(e){return"Uint8Array"===n(e)},e.isUint8ClampedArray=function(e){return"Uint8ClampedArray"===n(e)},e.isUint16Array=function(e){return"Uint16Array"===n(e)},e.isUint32Array=function(e){return"Uint32Array"===n(e)},e.isInt8Array=function(e){return"Int8Array"===n(e)},e.isInt16Array=function(e){return"Int16Array"===n(e)},e.isInt32Array=function(e){return"Int32Array"===n(e)},e.isFloat32Array=function(e){return"Float32Array"===n(e)},e.isFloat64Array=function(e){return"Float64Array"===n(e)},e.isBigInt64Array=function(e){return"BigInt64Array"===n(e)},e.isBigUint64Array=function(e){return"BigUint64Array"===n(e)},m.working="undefined"!=typeof Map&&m(new Map),e.isMap=function(e){return"undefined"!=typeof Map&&(m.working?m(e):e instanceof Map)},y.working="undefined"!=typeof Set&&y(new Set),e.isSet=function(e){return"undefined"!=typeof Set&&(y.working?y(e):e instanceof Set)},g.working="undefined"!=typeof WeakMap&&g(new WeakMap),e.isWeakMap=function(e){return"undefined"!=typeof WeakMap&&(g.working?g(e):e instanceof WeakMap)},b.working="undefined"!=typeof WeakSet&&b(new WeakSet),e.isWeakSet=function(e){return b(e)},w.working="undefined"!=typeof ArrayBuffer&&w(new ArrayBuffer),e.isArrayBuffer=_,v.working="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView&&v(new DataView(new ArrayBuffer(1),0,1)),e.isDataView=$;var I="undefined"!=typeof SharedArrayBuffer?SharedArrayBuffer:void 0;function k(e){return"[object SharedArrayBuffer]"===c(e)}function A(e){return void 0!==I&&(void 0===k.working&&(k.working=k(new I)),k.working?k(e):e instanceof I)}function S(e){return p(e,u)}function E(e){return p(e,l)}function T(e){return p(e,d)}function P(e){return s&&p(e,h)}function R(e){return a&&p(e,f)}e.isSharedArrayBuffer=A,e.isAsyncFunction=function(e){return"[object AsyncFunction]"===c(e)},e.isMapIterator=function(e){return"[object Map Iterator]"===c(e)},e.isSetIterator=function(e){return"[object Set Iterator]"===c(e)},e.isGeneratorObject=function(e){return"[object Generator]"===c(e)},e.isWebAssemblyCompiledModule=function(e){return"[object WebAssembly.Module]"===c(e)},e.isNumberObject=S,e.isStringObject=E,e.isBooleanObject=T,e.isBigIntObject=P,e.isSymbolObject=R,e.isBoxedPrimitive=function(e){return S(e)||E(e)||T(e)||P(e)||R(e)},e.isAnyArrayBuffer=function(e){return"undefined"!=typeof Uint8Array&&(_(e)||A(e))},["isProxy","isExternal","isModuleNamespaceObject"].forEach((function(t){Object.defineProperty(e,t,{enumerable:!1,value:function(){throw new Error(t+" is not supported in userland")}})}))}(types$1)),types$1}function requireIsBufferBrowser(){return hasRequiredIsBufferBrowser?isBufferBrowser:(hasRequiredIsBufferBrowser=1,isBufferBrowser=function(e){return e&&"object"==typeof e&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8})}function requireUtil$1(){return hasRequiredUtil$1||(hasRequiredUtil$1=1,function(e){var t=Object.getOwnPropertyDescriptors||function(e){for(var t=Object.keys(e),r={},n=0;n=i)return e;switch(e){case"%s":return String(o[n++]);case"%d":return Number(o[n++]);case"%j":try{return JSON.stringify(o[n++])}catch(t){return"[Circular]"}default:return e}})),c=o[n];n=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),f(r)?n.showHidden=r:r&&e._extend(n,r),g(n.showHidden)&&(n.showHidden=!1),g(n.depth)&&(n.depth=2),g(n.colors)&&(n.colors=!1),g(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=a),u(n,t,n.depth)}function a(e,t){var r=s.styles[t];return r?"["+s.colors[r][0]+"m"+e+"["+s.colors[r][1]+"m":e}function c(e,t){return e}function u(t,r,n){if(t.customInspect&&r&&$(r.inspect)&&r.inspect!==e.inspect&&(!r.constructor||r.constructor.prototype!==r)){var o=r.inspect(n,t);return y(o)||(o=u(t,o,n)),o}var i=function(e,t){if(g(t))return e.stylize("undefined","undefined");if(y(t)){var r="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(r,"string")}if(m(t))return e.stylize(""+t,"number");if(f(t))return e.stylize(""+t,"boolean");if(p(t))return e.stylize("null","null")}(t,r);if(i)return i;var s=Object.keys(r),a=function(e){var t={};return e.forEach((function(e,r){t[e]=!0})),t}(s);if(t.showHidden&&(s=Object.getOwnPropertyNames(r)),v(r)&&(s.indexOf("message")>=0||s.indexOf("description")>=0))return l(r);if(0===s.length){if($(r)){var c=r.name?": "+r.name:"";return t.stylize("[Function"+c+"]","special")}if(b(r))return t.stylize(RegExp.prototype.toString.call(r),"regexp");if(_(r))return t.stylize(Date.prototype.toString.call(r),"date");if(v(r))return l(r)}var w,I="",k=!1,A=["{","}"];(h(r)&&(k=!0,A=["[","]"]),$(r))&&(I=" [Function"+(r.name?": "+r.name:"")+"]");return b(r)&&(I=" "+RegExp.prototype.toString.call(r)),_(r)&&(I=" "+Date.prototype.toUTCString.call(r)),v(r)&&(I=" "+l(r)),0!==s.length||k&&0!=r.length?n<0?b(r)?t.stylize(RegExp.prototype.toString.call(r),"regexp"):t.stylize("[Object]","special"):(t.seen.push(r),w=k?function(e,t,r,n,o){for(var i=[],s=0,a=t.length;s60)return r[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+r[1];return r[0]+t+" "+e.join(", ")+" "+r[1]}(w,I,A)):A[0]+I+A[1]}function l(e){return"["+Error.prototype.toString.call(e)+"]"}function d(e,t,r,n,o,i){var s,a,c;if((c=Object.getOwnPropertyDescriptor(t,o)||{value:t[o]}).get?a=c.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):c.set&&(a=e.stylize("[Setter]","special")),S(n,o)||(s="["+o+"]"),a||(e.seen.indexOf(c.value)<0?(a=p(r)?u(e,c.value,null):u(e,c.value,r-1)).indexOf("\n")>-1&&(a=i?a.split("\n").map((function(e){return" "+e})).join("\n").slice(2):"\n"+a.split("\n").map((function(e){return" "+e})).join("\n")):a=e.stylize("[Circular]","special")),g(s)){if(i&&o.match(/^\d+$/))return a;(s=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(s=s.slice(1,-1),s=e.stylize(s,"name")):(s=s.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),s=e.stylize(s,"string"))}return s+": "+a}function h(e){return Array.isArray(e)}function f(e){return"boolean"==typeof e}function p(e){return null===e}function m(e){return"number"==typeof e}function y(e){return"string"==typeof e}function g(e){return void 0===e}function b(e){return w(e)&&"[object RegExp]"===I(e)}function w(e){return"object"==typeof e&&null!==e}function _(e){return w(e)&&"[object Date]"===I(e)}function v(e){return w(e)&&("[object Error]"===I(e)||e instanceof Error)}function $(e){return"function"==typeof e}function I(e){return Object.prototype.toString.call(e)}function k(e){return e<10?"0"+e.toString(10):e.toString(10)}e.debuglog=function(t){if(t=t.toUpperCase(),!n[t])if(o.test(t)){var r=process$1.pid;n[t]=function(){var n=e.format.apply(e,arguments);console.error("%s %d: %s",t,r,n)}}else n[t]=function(){};return n[t]},e.inspect=s,s.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},s.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},e.types=requireTypes$1(),e.isArray=h,e.isBoolean=f,e.isNull=p,e.isNullOrUndefined=function(e){return null==e},e.isNumber=m,e.isString=y,e.isSymbol=function(e){return"symbol"==typeof e},e.isUndefined=g,e.isRegExp=b,e.types.isRegExp=b,e.isObject=w,e.isDate=_,e.types.isDate=_,e.isError=v,e.types.isNativeError=v,e.isFunction=$,e.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},e.isBuffer=requireIsBufferBrowser();var A=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function S(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.log=function(){var t,r;console.log("%s - %s",(r=[k((t=new Date).getHours()),k(t.getMinutes()),k(t.getSeconds())].join(":"),[t.getDate(),A[t.getMonth()],r].join(" ")),e.format.apply(e,arguments))},e.inherits=requireInherits_browser(),e._extend=function(e,t){if(!t||!w(t))return e;for(var r=Object.keys(t),n=r.length;n--;)e[r[n]]=t[r[n]];return e};var E="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function T(e,t){if(!e){var r=new Error("Promise was rejected with a falsy value");r.reason=e,e=r}return t(e)}e.promisify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');if(E&&e[E]){var r;if("function"!=typeof(r=e[E]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(r,E,{value:r,enumerable:!1,writable:!1,configurable:!0}),r}function r(){for(var t,r,n=new Promise((function(e,n){t=e,r=n})),o=[],i=0;i0?this.tail.next=t:this.head=t,this.tail=t,++this.length}},{key:"unshift",value:function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length}},{key:"shift",value:function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(e){if(0===this.length)return"";for(var t=this.head,r=""+t.data;t=t.next;)r+=e+t.data;return r}},{key:"concat",value:function(e){if(0===this.length)return i.alloc(0);for(var t,r,n,o=i.allocUnsafe(e>>>0),s=this.head,a=0;s;)t=s.data,r=o,n=a,i.prototype.copy.call(t,r,n),a+=s.data.length,s=s.next;return o}},{key:"consume",value:function(e,t){var r;return eo.length?o.length:e;if(i===o.length?n+=o:n+=o.slice(0,e),0===(e-=i)){i===o.length?(++r,t.next?this.head=t.next:this.head=this.tail=null):(this.head=t,t.data=o.slice(i));break}++r}return this.length-=r,n}},{key:"_getBuffer",value:function(e){var t=i.allocUnsafe(e),r=this.head,n=1;for(r.data.copy(t),e-=r.data.length;r=r.next;){var o=r.data,s=e>o.length?o.length:e;if(o.copy(t,t.length-e,0,s),0===(e-=s)){s===o.length?(++n,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=o.slice(s));break}++n}return this.length-=n,t}},{key:a,value:function(e,r){return s(this,t(t({},r),{},{depth:0,customInspect:!1}))}}]),e}()}function requireDestroy$1(){if(hasRequiredDestroy$1)return destroy_1$1;function e(e,n){r(e,n),t(e)}function t(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function r(e,t){e.emit("error",t)}return hasRequiredDestroy$1=1,destroy_1$1={destroy:function(n,o){var i=this,s=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return s||a?(o?o(n):n&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process$1.nextTick(r,this,n)):process$1.nextTick(r,this,n)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(n||null,(function(r){!o&&r?i._writableState?i._writableState.errorEmitted?process$1.nextTick(t,i):(i._writableState.errorEmitted=!0,process$1.nextTick(e,i,r)):process$1.nextTick(e,i,r):o?(process$1.nextTick(t,i),o(r)):process$1.nextTick(t,i)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)},errorOrDestroy:function(e,t){var r=e._readableState,n=e._writableState;r&&r.autoDestroy||n&&n.autoDestroy?e.destroy(t):e.emit("error",t)}}}var errorsBrowser={},hasRequiredErrorsBrowser,state$8,hasRequiredState,browser$f,hasRequiredBrowser$a,_stream_writable$1,hasRequired_stream_writable$1,_stream_duplex$1,hasRequired_stream_duplex$1;function requireErrorsBrowser(){if(hasRequiredErrorsBrowser)return errorsBrowser;hasRequiredErrorsBrowser=1;var e={};function t(t,r,n){n||(n=Error);var o=function(e){var t,n;function o(t,n,o){return e.call(this,function(e,t,n){return"string"==typeof r?r:r(e,t,n)}(t,n,o))||this}return n=e,(t=o).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,o}(n);o.prototype.name=n.name,o.prototype.code=t,e[t]=o}function r(e,t){if(Array.isArray(e)){var r=e.length;return e=e.map((function(e){return String(e)})),r>2?"one of ".concat(t," ").concat(e.slice(0,r-1).join(", "),", or ")+e[r-1]:2===r?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}return"of ".concat(t," ").concat(String(e))}return t("ERR_INVALID_OPT_VALUE",(function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'}),TypeError),t("ERR_INVALID_ARG_TYPE",(function(e,t,n){var o,i,s;if("string"==typeof t&&(i="not ",t.substr(0,i.length)===i)?(o="must not be",t=t.replace(/^not /,"")):o="must be",function(e,t,r){return(void 0===r||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}(e," argument"))s="The ".concat(e," ").concat(o," ").concat(r(t,"type"));else{var a=function(e,t,r){return"number"!=typeof r&&(r=0),!(r+t.length>e.length)&&-1!==e.indexOf(t,r)}(e,".")?"property":"argument";s='The "'.concat(e,'" ').concat(a," ").concat(o," ").concat(r(t,"type"))}return s+=". Received type ".concat(typeof n)}),TypeError),t("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),t("ERR_METHOD_NOT_IMPLEMENTED",(function(e){return"The "+e+" method is not implemented"})),t("ERR_STREAM_PREMATURE_CLOSE","Premature close"),t("ERR_STREAM_DESTROYED",(function(e){return"Cannot call "+e+" after a stream was destroyed"})),t("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),t("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),t("ERR_STREAM_WRITE_AFTER_END","write after end"),t("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),t("ERR_UNKNOWN_ENCODING",(function(e){return"Unknown encoding: "+e}),TypeError),t("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),errorsBrowser.codes=e,errorsBrowser}function requireState(){if(hasRequiredState)return state$8;hasRequiredState=1;var e=requireErrorsBrowser().codes.ERR_INVALID_OPT_VALUE;return state$8={getHighWaterMark:function(t,r,n,o){var i=function(e,t,r){return null!=e.highWaterMark?e.highWaterMark:t?e[r]:null}(r,o,n);if(null!=i){if(!isFinite(i)||Math.floor(i)!==i||i<0)throw new e(o?n:"highWaterMark",i);return Math.floor(i)}return t.objectMode?16:16384}}}function requireBrowser$a(){if(hasRequiredBrowser$a)return browser$f;function e(e){try{if(!commonjsGlobal.localStorage)return!1}catch(r){return!1}var t=commonjsGlobal.localStorage[e];return null!=t&&"true"===String(t).toLowerCase()}return hasRequiredBrowser$a=1,browser$f=function(t,r){if(e("noDeprecation"))return t;var n=!1;return function(){if(!n){if(e("throwDeprecation"))throw new Error(r);e("traceDeprecation")?console.trace(r):console.warn(r),n=!0}return t.apply(this,arguments)}},browser$f}function require_stream_writable$1(){if(hasRequired_stream_writable$1)return _stream_writable$1;function e(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,r){var n=e.entry;e.entry=null;for(;n;){var o=n.callback;t.pendingcb--,o(r),n=n.next}t.corkedRequestsFree.next=e}(t,e)}}var t;hasRequired_stream_writable$1=1,_stream_writable$1=v,v.WritableState=_;var r={deprecate:requireBrowser$a()},n=requireStreamBrowser$1(),o=require$$2$1.Buffer,i=(void 0!==commonjsGlobal?commonjsGlobal:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{}).Uint8Array||function(){};var s,a=requireDestroy$1(),c=requireState().getHighWaterMark,u=requireErrorsBrowser().codes,l=u.ERR_INVALID_ARG_TYPE,d=u.ERR_METHOD_NOT_IMPLEMENTED,h=u.ERR_MULTIPLE_CALLBACK,f=u.ERR_STREAM_CANNOT_PIPE,p=u.ERR_STREAM_DESTROYED,m=u.ERR_STREAM_NULL_VALUES,y=u.ERR_STREAM_WRITE_AFTER_END,g=u.ERR_UNKNOWN_ENCODING,b=a.errorOrDestroy;function w(){}function _(r,n,o){t=t||require_stream_duplex$1(),r=r||{},"boolean"!=typeof o&&(o=n instanceof t),this.objectMode=!!r.objectMode,o&&(this.objectMode=this.objectMode||!!r.writableObjectMode),this.highWaterMark=c(this,r,"writableHighWaterMark",o),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var i=!1===r.decodeStrings;this.decodeStrings=!i,this.defaultEncoding=r.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var r=e._writableState,n=r.sync,o=r.writecb;if("function"!=typeof o)throw new h;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(r),t)!function(e,t,r,n,o){--t.pendingcb,r?(process$1.nextTick(o,n),process$1.nextTick(E,e,t),e._writableState.errorEmitted=!0,b(e,n)):(o(n),e._writableState.errorEmitted=!0,b(e,n),E(e,t))}(e,r,n,t,o);else{var i=A(r)||e.destroyed;i||r.corked||r.bufferProcessing||!r.bufferedRequest||k(e,r),n?process$1.nextTick(I,e,r,i,o):I(e,r,i,o)}}(n,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==r.emitClose,this.autoDestroy=!!r.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new e(this)}function v(e){var r=this instanceof(t=t||require_stream_duplex$1());if(!r&&!s.call(v,this))return new v(e);this._writableState=new _(e,this,r),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),n.call(this)}function $(e,t,r,n,o,i,s){t.writelen=n,t.writecb=s,t.writing=!0,t.sync=!0,t.destroyed?t.onwrite(new p("write")):r?e._writev(o,t.onwrite):e._write(o,i,t.onwrite),t.sync=!1}function I(e,t,r,n){r||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,n(),E(e,t)}function k(t,r){r.bufferProcessing=!0;var n=r.bufferedRequest;if(t._writev&&n&&n.next){var o=r.bufferedRequestCount,i=new Array(o),s=r.corkedRequestsFree;s.entry=n;for(var a=0,c=!0;n;)i[a]=n,n.isBuf||(c=!1),n=n.next,a+=1;i.allBuffers=c,$(t,r,!0,r.length,i,"",s.finish),r.pendingcb++,r.lastBufferedRequest=null,s.next?(r.corkedRequestsFree=s.next,s.next=null):r.corkedRequestsFree=new e(r),r.bufferedRequestCount=0}else{for(;n;){var u=n.chunk,l=n.encoding,d=n.callback;if($(t,r,!1,r.objectMode?1:u.length,u,l,d),n=n.next,r.bufferedRequestCount--,r.writing)break}null===n&&(r.lastBufferedRequest=null)}r.bufferedRequest=n,r.bufferProcessing=!1}function A(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function S(e,t){e._final((function(r){t.pendingcb--,r&&b(e,r),t.prefinished=!0,e.emit("prefinish"),E(e,t)}))}function E(e,t){var r=A(t);if(r&&(function(e,t){t.prefinished||t.finalCalled||("function"!=typeof e._final||t.destroyed?(t.prefinished=!0,e.emit("prefinish")):(t.pendingcb++,t.finalCalled=!0,process$1.nextTick(S,e,t)))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"),t.autoDestroy))){var n=e._readableState;(!n||n.autoDestroy&&n.endEmitted)&&e.destroy()}return r}return requireInherits_browser()(v,n),_.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(_.prototype,"buffer",{get:r.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(s=Function.prototype[Symbol.hasInstance],Object.defineProperty(v,Symbol.hasInstance,{value:function(e){return!!s.call(this,e)||this===v&&(e&&e._writableState instanceof _)}})):s=function(e){return e instanceof this},v.prototype.pipe=function(){b(this,new f)},v.prototype.write=function(e,t,r){var n,s=this._writableState,a=!1,c=!s.objectMode&&(n=e,o.isBuffer(n)||n instanceof i);return c&&!o.isBuffer(e)&&(e=function(e){return o.from(e)}(e)),"function"==typeof t&&(r=t,t=null),c?t="buffer":t||(t=s.defaultEncoding),"function"!=typeof r&&(r=w),s.ending?function(e,t){var r=new y;b(e,r),process$1.nextTick(t,r)}(this,r):(c||function(e,t,r,n){var o;return null===r?o=new m:"string"==typeof r||t.objectMode||(o=new l("chunk",["string","Buffer"],r)),!o||(b(e,o),process$1.nextTick(n,o),!1)}(this,s,e,r))&&(s.pendingcb++,a=function(e,t,r,n,i,s){if(!r){var a=function(e,t,r){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=o.from(t,r));return t}(t,n,i);n!==a&&(r=!0,i="buffer",n=a)}var c=t.objectMode?1:n.length;t.length+=c;var u=t.length-1))throw new g(e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(v.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(v.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),v.prototype._write=function(e,t,r){r(new d("_write()"))},v.prototype._writev=null,v.prototype.end=function(e,t,r){var n=this._writableState;return"function"==typeof e?(r=e,e=null,t=null):"function"==typeof t&&(r=t,t=null),null!=e&&this.write(e,t),n.corked&&(n.corked=1,this.uncork()),n.ending||function(e,t,r){t.ending=!0,E(e,t),r&&(t.finished?process$1.nextTick(r):e.once("finish",r));t.ended=!0,e.writable=!1}(this,n,r),this},Object.defineProperty(v.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(v.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),v.prototype.destroy=a.destroy,v.prototype._undestroy=a.undestroy,v.prototype._destroy=function(e,t){t(e)},_stream_writable$1}function require_stream_duplex$1(){if(hasRequired_stream_duplex$1)return _stream_duplex$1;hasRequired_stream_duplex$1=1;var e=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};_stream_duplex$1=s;var t=require_stream_readable$1(),r=require_stream_writable$1();requireInherits_browser()(s,t);for(var n=e(r.prototype),o=0;o>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function o(e){var t=this.lastTotal-this.lastNeed,r=function(e,t){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==r?r:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function i(e,t){if((e.length-t)%2==0){var r=e.toString("utf16le",t);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function s(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,r)}return t}function a(e,t){var r=(e.length-t)%3;return 0===r?e.toString("base64",t):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-r))}function c(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function u(e){return e.toString(this.encoding)}function l(e){return e&&e.length?this.write(e):""}return string_decoder.StringDecoder=r,r.prototype.write=function(e){if(0===e.length)return"";var t,r;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r=0)return i>0&&(e.lastNeed=i-1),i;if(--o=0)return i>0&&(e.lastNeed=i-2),i;if(--o=0)return i>0&&(2===i?i=0:e.lastNeed=i-3),i;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=r;var o=e.length-(r-this.lastNeed);return e.copy(this.lastChar,0,o),e.toString("utf8",t,o)},r.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length},string_decoder}function requireEndOfStream(){if(hasRequiredEndOfStream)return endOfStream;hasRequiredEndOfStream=1;var e=requireErrorsBrowser().codes.ERR_STREAM_PREMATURE_CLOSE;function t(){}return endOfStream=function r(n,o,i){if("function"==typeof o)return r(n,null,o);o||(o={}),i=function(e){var t=!1;return function(){if(!t){t=!0;for(var r=arguments.length,n=new Array(r),o=0;o0)if("string"==typeof t||u.objectMode||Object.getPrototypeOf(t)===n.prototype||(t=function(e){return n.from(e)}(t)),s)u.endEmitted?b(e,new g):I(e,u,t,!0);else if(u.ended)b(e,new m);else{if(u.destroyed)return!1;u.reading=!1,u.decoder&&!r?(t=u.decoder.write(t),u.objectMode||0!==t.length?I(e,u,t,!1):T(e,u)):I(e,u,t,!1)}else s||(u.reading=!1,T(e,u));return!u.ended&&(u.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=k?e=k:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function S(e){var t=e._readableState;i("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(i("emitReadable",t.flowing),t.emittedReadable=!0,process$1.nextTick(E,e))}function E(e){var t=e._readableState;i("emitReadable_",t.destroyed,t.length,t.ended),t.destroyed||!t.length&&!t.ended||(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,M(e)}function T(e,t){t.readingMore||(t.readingMore=!0,process$1.nextTick(P,e,t))}function P(e,t){for(;!t.reading&&!t.ended&&(t.length0,t.resumeScheduled&&!t.paused?t.flowing=!0:e.listenerCount("data")>0&&e.resume()}function C(e){i("readable nexttick read 0"),e.read(0)}function O(e,t){i("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),M(e),t.flowing&&!t.reading&&e.read(0)}function M(e){var t=e._readableState;for(i("flow",t.flowing);t.flowing&&null!==e.read(););}function N(e,t){return 0===t.length?null:(t.objectMode?r=t.buffer.shift():!e||e>=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):r=t.buffer.consume(e,t.decoder),r);var r}function B(e){var t=e._readableState;i("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,process$1.nextTick(x,t,e))}function x(e,t){if(i("endReadableNT",e.endEmitted,e.length),!e.endEmitted&&0===e.length&&(e.endEmitted=!0,t.readable=!1,t.emit("end"),e.autoDestroy)){var r=t._writableState;(!r||r.autoDestroy&&r.finished)&&t.destroy()}}function D(e,t){for(var r=0,n=e.length;r=t.highWaterMark:t.length>0)||t.ended))return i("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?B(this):S(this),null;if(0===(e=A(e,t))&&t.ended)return 0===t.length&&B(this),null;var n,o=t.needReadable;return i("need readable",o),(0===t.length||t.length-e0?N(e,t):null)?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.awaitDrain=0),0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&B(this)),null!==n&&this.emit("data",n),n},v.prototype._read=function(e){b(this,new y("_read()"))},v.prototype.pipe=function(e,r){var n=this,o=this._readableState;switch(o.pipesCount){case 0:o.pipes=e;break;case 1:o.pipes=[o.pipes,e];break;default:o.pipes.push(e)}o.pipesCount+=1,i("pipe count=%d opts=%j",o.pipesCount,r);var s=(!r||!1!==r.end)&&e!==process$1.stdout&&e!==process$1.stderr?c:m;function a(t,r){i("onunpipe"),t===n&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,i("cleanup"),e.removeListener("close",f),e.removeListener("finish",p),e.removeListener("drain",u),e.removeListener("error",h),e.removeListener("unpipe",a),n.removeListener("end",c),n.removeListener("end",m),n.removeListener("data",d),l=!0,!o.awaitDrain||e._writableState&&!e._writableState.needDrain||u())}function c(){i("onend"),e.end()}o.endEmitted?process$1.nextTick(s):n.once("end",s),e.on("unpipe",a);var u=function(e){return function(){var r=e._readableState;i("pipeOnDrain",r.awaitDrain),r.awaitDrain&&r.awaitDrain--,0===r.awaitDrain&&t(e,"data")&&(r.flowing=!0,M(e))}}(n);e.on("drain",u);var l=!1;function d(t){i("ondata");var r=e.write(t);i("dest.write",r),!1===r&&((1===o.pipesCount&&o.pipes===e||o.pipesCount>1&&-1!==D(o.pipes,e))&&!l&&(i("false write response, pause",o.awaitDrain),o.awaitDrain++),n.pause())}function h(r){i("onerror",r),m(),e.removeListener("error",h),0===t(e,"error")&&b(e,r)}function f(){e.removeListener("finish",p),m()}function p(){i("onfinish"),e.removeListener("close",f),m()}function m(){i("unpipe"),n.unpipe(e)}return n.on("data",d),function(e,t,r){if("function"==typeof e.prependListener)return e.prependListener(t,r);e._events&&e._events[t]?Array.isArray(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r)}(e,"error",h),e.once("close",f),e.once("finish",p),e.emit("pipe",n),o.flowing||(i("pipe resume"),n.resume()),e},v.prototype.unpipe=function(e){var t=this._readableState,r={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,r)),this;if(!e){var n=t.pipes,o=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i0,!1!==o.flowing&&this.resume()):"readable"===e&&(o.endEmitted||o.readableListening||(o.readableListening=o.needReadable=!0,o.flowing=!1,o.emittedReadable=!1,i("on readable",o.length,o.reading),o.length?S(this):o.reading||process$1.nextTick(C,this))),n},v.prototype.addListener=v.prototype.on,v.prototype.removeListener=function(e,t){var n=r.prototype.removeListener.call(this,e,t);return"readable"===e&&process$1.nextTick(R,this),n},v.prototype.removeAllListeners=function(e){var t=r.prototype.removeAllListeners.apply(this,arguments);return"readable"!==e&&void 0!==e||process$1.nextTick(R,this),t},v.prototype.resume=function(){var e=this._readableState;return e.flowing||(i("resume"),e.flowing=!e.readableListening,function(e,t){t.resumeScheduled||(t.resumeScheduled=!0,process$1.nextTick(O,e,t))}(this,e)),e.paused=!1,this},v.prototype.pause=function(){return i("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(i("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},v.prototype.wrap=function(e){var t=this,r=this._readableState,n=!1;for(var o in e.on("end",(function(){if(i("wrapped end"),r.decoder&&!r.ended){var e=r.decoder.end();e&&e.length&&t.push(e)}t.push(null)})),e.on("data",(function(o){(i("wrapped data"),r.decoder&&(o=r.decoder.write(o)),r.objectMode&&null==o)||(r.objectMode||o&&o.length)&&(t.push(o)||(n=!0,e.pause()))})),e)void 0===this[o]&&"function"==typeof e[o]&&(this[o]=function(t){return function(){return e[t].apply(e,arguments)}}(o));for(var s=0;s0,(function(e){u||(u=e),e&&d.forEach(i),o||(d.forEach(i),l(u))}))}));return a.reduce(s)},pipeline_1}function requireStreamBrowserify(){if(hasRequiredStreamBrowserify)return streamBrowserify;hasRequiredStreamBrowserify=1,streamBrowserify=t;var e=eventsExports.EventEmitter;function t(){e.call(this)}return requireInherits_browser()(t,e),t.Readable=require_stream_readable$1(),t.Writable=require_stream_writable$1(),t.Duplex=require_stream_duplex$1(),t.Transform=require_stream_transform$1(),t.PassThrough=require_stream_passthrough$1(),t.finished=requireEndOfStream(),t.pipeline=requirePipeline(),t.Stream=t,t.prototype.pipe=function(t,r){var n=this;function o(e){t.writable&&!1===t.write(e)&&n.pause&&n.pause()}function i(){n.readable&&n.resume&&n.resume()}n.on("data",o),t.on("drain",i),t._isStdio||r&&!1===r.end||(n.on("end",a),n.on("close",c));var s=!1;function a(){s||(s=!0,t.end())}function c(){s||(s=!0,"function"==typeof t.destroy&&t.destroy())}function u(t){if(l(),0===e.listenerCount(this,"error"))throw t}function l(){n.removeListener("data",o),t.removeListener("drain",i),n.removeListener("end",a),n.removeListener("close",c),n.removeListener("error",u),t.removeListener("error",u),n.removeListener("end",l),n.removeListener("close",l),t.removeListener("close",l)}return n.on("error",u),t.on("error",u),n.on("end",l),n.on("close",l),t.on("close",l),t.emit("pipe",n),t},streamBrowserify}function requireHashBase(){if(hasRequiredHashBase)return hashBase;hasRequiredHashBase=1;var e=requireSafeBuffer$1().Buffer,t=requireStreamBrowserify().Transform;function r(r){t.call(this),this._block=e.allocUnsafe(r),this._blockSize=r,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}requireInherits_browser()(r,t),r.prototype._transform=function(e,t,r){var n=null;try{this.update(e,t)}catch(o){n=o}r(n)},r.prototype._flush=function(e){var t=null;try{this.push(this.digest())}catch(r){t=r}e(t)};var n="undefined"!=typeof Uint8Array,o="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&ArrayBuffer.isView&&(e.prototype instanceof Uint8Array||e.TYPED_ARRAY_SUPPORT);return r.prototype.update=function(t,r){if(this._finalized)throw new Error("Digest already called");t=function(t,r){if(t instanceof e)return t;if("string"==typeof t)return e.from(t,r);if(o&&ArrayBuffer.isView(t)){if(0===t.byteLength)return e.alloc(0);var i=e.from(t.buffer,t.byteOffset,t.byteLength);if(i.byteLength===t.byteLength)return i}if(n&&t instanceof Uint8Array)return e.from(t);if(e.isBuffer(t)&&t.constructor&&"function"==typeof t.constructor.isBuffer&&t.constructor.isBuffer(t))return e.from(t);throw new TypeError('The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView.')}(t,r);for(var i=this._block,s=0;this._blockOffset+t.length-s>=this._blockSize;){for(var a=this._blockOffset;a0;++c)this._length[c]+=u,(u=this._length[c]/4294967296|0)>0&&(this._length[c]-=4294967296*u);return this},r.prototype._update=function(){throw new Error("_update is not implemented")},r.prototype.digest=function(e){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var t=this._digest();void 0!==e&&(t=t.toString(e)),this._block.fill(0),this._blockOffset=0;for(var r=0;r<4;++r)this._length[r]=0;return t},r.prototype._digest=function(){throw new Error("_digest is not implemented")},hashBase=r}function requireMd5_js(){if(hasRequiredMd5_js)return md5_js;hasRequiredMd5_js=1;var e=requireInherits_browser(),t=requireHashBase(),r=requireSafeBuffer$1().Buffer,n=new Array(16);function o(){t.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}function i(e,t){return e<>>32-t}function s(e,t,r,n,o,s,a){return i(e+(t&r|~t&n)+o+s|0,a)+t|0}function a(e,t,r,n,o,s,a){return i(e+(t&n|r&~n)+o+s|0,a)+t|0}function c(e,t,r,n,o,s,a){return i(e+(t^r^n)+o+s|0,a)+t|0}function u(e,t,r,n,o,s,a){return i(e+(r^(t|~n))+o+s|0,a)+t|0}return e(o,t),o.prototype._update=function(){for(var e=n,t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);var r=this._a,o=this._b,i=this._c,l=this._d;r=s(r,o,i,l,e[0],3614090360,7),l=s(l,r,o,i,e[1],3905402710,12),i=s(i,l,r,o,e[2],606105819,17),o=s(o,i,l,r,e[3],3250441966,22),r=s(r,o,i,l,e[4],4118548399,7),l=s(l,r,o,i,e[5],1200080426,12),i=s(i,l,r,o,e[6],2821735955,17),o=s(o,i,l,r,e[7],4249261313,22),r=s(r,o,i,l,e[8],1770035416,7),l=s(l,r,o,i,e[9],2336552879,12),i=s(i,l,r,o,e[10],4294925233,17),o=s(o,i,l,r,e[11],2304563134,22),r=s(r,o,i,l,e[12],1804603682,7),l=s(l,r,o,i,e[13],4254626195,12),i=s(i,l,r,o,e[14],2792965006,17),r=a(r,o=s(o,i,l,r,e[15],1236535329,22),i,l,e[1],4129170786,5),l=a(l,r,o,i,e[6],3225465664,9),i=a(i,l,r,o,e[11],643717713,14),o=a(o,i,l,r,e[0],3921069994,20),r=a(r,o,i,l,e[5],3593408605,5),l=a(l,r,o,i,e[10],38016083,9),i=a(i,l,r,o,e[15],3634488961,14),o=a(o,i,l,r,e[4],3889429448,20),r=a(r,o,i,l,e[9],568446438,5),l=a(l,r,o,i,e[14],3275163606,9),i=a(i,l,r,o,e[3],4107603335,14),o=a(o,i,l,r,e[8],1163531501,20),r=a(r,o,i,l,e[13],2850285829,5),l=a(l,r,o,i,e[2],4243563512,9),i=a(i,l,r,o,e[7],1735328473,14),r=c(r,o=a(o,i,l,r,e[12],2368359562,20),i,l,e[5],4294588738,4),l=c(l,r,o,i,e[8],2272392833,11),i=c(i,l,r,o,e[11],1839030562,16),o=c(o,i,l,r,e[14],4259657740,23),r=c(r,o,i,l,e[1],2763975236,4),l=c(l,r,o,i,e[4],1272893353,11),i=c(i,l,r,o,e[7],4139469664,16),o=c(o,i,l,r,e[10],3200236656,23),r=c(r,o,i,l,e[13],681279174,4),l=c(l,r,o,i,e[0],3936430074,11),i=c(i,l,r,o,e[3],3572445317,16),o=c(o,i,l,r,e[6],76029189,23),r=c(r,o,i,l,e[9],3654602809,4),l=c(l,r,o,i,e[12],3873151461,11),i=c(i,l,r,o,e[15],530742520,16),r=u(r,o=c(o,i,l,r,e[2],3299628645,23),i,l,e[0],4096336452,6),l=u(l,r,o,i,e[7],1126891415,10),i=u(i,l,r,o,e[14],2878612391,15),o=u(o,i,l,r,e[5],4237533241,21),r=u(r,o,i,l,e[12],1700485571,6),l=u(l,r,o,i,e[3],2399980690,10),i=u(i,l,r,o,e[10],4293915773,15),o=u(o,i,l,r,e[1],2240044497,21),r=u(r,o,i,l,e[8],1873313359,6),l=u(l,r,o,i,e[15],4264355552,10),i=u(i,l,r,o,e[6],2734768916,15),o=u(o,i,l,r,e[13],1309151649,21),r=u(r,o,i,l,e[4],4149444226,6),l=u(l,r,o,i,e[11],3174756917,10),i=u(i,l,r,o,e[2],718787259,15),o=u(o,i,l,r,e[9],3951481745,21),this._a=this._a+r|0,this._b=this._b+o|0,this._c=this._c+i|0,this._d=this._d+l|0},o.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=r.allocUnsafe(16);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e},md5_js=o}function requireRipemd160(){if(hasRequiredRipemd160)return ripemd160;hasRequiredRipemd160=1;var e=require$$2$1.Buffer,t=requireInherits_browser(),r=requireHashBase(),n=new Array(16),o=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],i=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],s=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],a=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],c=[0,1518500249,1859775393,2400959708,2840853838],u=[1352829926,1548603684,1836072691,2053994217,0];function l(){r.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}function d(e,t){return e<>>32-t}function h(e,t,r,n,o,i,s,a){return d(e+(t^r^n)+i+s|0,a)+o|0}function f(e,t,r,n,o,i,s,a){return d(e+(t&r|~t&n)+i+s|0,a)+o|0}function p(e,t,r,n,o,i,s,a){return d(e+((t|~r)^n)+i+s|0,a)+o|0}function m(e,t,r,n,o,i,s,a){return d(e+(t&n|r&~n)+i+s|0,a)+o|0}function y(e,t,r,n,o,i,s,a){return d(e+(t^(r|~n))+i+s|0,a)+o|0}return t(l,r),l.prototype._update=function(){for(var e=n,t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);for(var r=0|this._a,l=0|this._b,g=0|this._c,b=0|this._d,w=0|this._e,_=0|this._a,v=0|this._b,$=0|this._c,I=0|this._d,k=0|this._e,A=0;A<80;A+=1){var S,E;A<16?(S=h(r,l,g,b,w,e[o[A]],c[0],s[A]),E=y(_,v,$,I,k,e[i[A]],u[0],a[A])):A<32?(S=f(r,l,g,b,w,e[o[A]],c[1],s[A]),E=m(_,v,$,I,k,e[i[A]],u[1],a[A])):A<48?(S=p(r,l,g,b,w,e[o[A]],c[2],s[A]),E=p(_,v,$,I,k,e[i[A]],u[2],a[A])):A<64?(S=m(r,l,g,b,w,e[o[A]],c[3],s[A]),E=f(_,v,$,I,k,e[i[A]],u[3],a[A])):(S=y(r,l,g,b,w,e[o[A]],c[4],s[A]),E=h(_,v,$,I,k,e[i[A]],u[4],a[A])),r=w,w=b,b=d(g,10),g=l,l=S,_=k,k=I,I=d($,10),$=v,v=E}var T=this._b+g+I|0;this._b=this._c+b+k|0,this._c=this._d+w+_|0,this._d=this._e+r+v|0,this._e=this._a+l+$|0,this._a=T},l.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var t=e.alloc?e.alloc(20):new e(20);return t.writeInt32LE(this._a,0),t.writeInt32LE(this._b,4),t.writeInt32LE(this._c,8),t.writeInt32LE(this._d,12),t.writeInt32LE(this._e,16),t},ripemd160=l}var sha_js={exports:{}},hash$7,hasRequiredHash,sha$1,hasRequiredSha,sha1,hasRequiredSha1,sha256$3,hasRequiredSha256,sha224$1,hasRequiredSha224,sha512$2,hasRequiredSha512,sha384$1,hasRequiredSha384,hasRequiredSha_js,cipherBase,hasRequiredCipherBase,browser$e,hasRequiredBrowser$9,legacy$1,hasRequiredLegacy,md5,hasRequiredMd5,browser$d,hasRequiredBrowser$8;function requireHash(){if(hasRequiredHash)return hash$7;hasRequiredHash=1;var e=requireSafeBuffer$1().Buffer;function t(t,r){this._block=e.alloc(t),this._finalSize=r,this._blockSize=t,this._len=0}return t.prototype.update=function(t,r){"string"==typeof t&&(r=r||"utf8",t=e.from(t,r));for(var n=this._block,o=this._blockSize,i=t.length,s=this._len,a=0;a=this._finalSize&&(this._update(this._block),this._block.fill(0));var r=8*this._len;if(r<=4294967295)this._block.writeUInt32BE(r,this._blockSize-4);else{var n=(4294967295&r)>>>0,o=(r-n)/4294967296;this._block.writeUInt32BE(o,this._blockSize-8),this._block.writeUInt32BE(n,this._blockSize-4)}this._update(this._block);var i=this._hash();return e?i.toString(e):i},t.prototype._update=function(){throw new Error("_update must be implemented by subclass")},hash$7=t}function requireSha(){if(hasRequiredSha)return sha$1;hasRequiredSha=1;var e=requireInherits_browser(),t=requireHash(),r=requireSafeBuffer$1().Buffer,n=[1518500249,1859775393,-1894007588,-899497514],o=new Array(80);function i(){this.init(),this._w=o,t.call(this,64,56)}function s(e){return e<<30|e>>>2}function a(e,t,r,n){return 0===e?t&r|~t&n:2===e?t&r|t&n|r&n:t^r^n}return e(i,t),i.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},i.prototype._update=function(e){for(var t,r=this._w,o=0|this._a,i=0|this._b,c=0|this._c,u=0|this._d,l=0|this._e,d=0;d<16;++d)r[d]=e.readInt32BE(4*d);for(;d<80;++d)r[d]=r[d-3]^r[d-8]^r[d-14]^r[d-16];for(var h=0;h<80;++h){var f=~~(h/20),p=0|((t=o)<<5|t>>>27)+a(f,i,c,u)+l+r[h]+n[f];l=u,u=c,c=s(i),i=o,o=p}this._a=o+this._a|0,this._b=i+this._b|0,this._c=c+this._c|0,this._d=u+this._d|0,this._e=l+this._e|0},i.prototype._hash=function(){var e=r.allocUnsafe(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},sha$1=i}function requireSha1(){if(hasRequiredSha1)return sha1;hasRequiredSha1=1;var e=requireInherits_browser(),t=requireHash(),r=requireSafeBuffer$1().Buffer,n=[1518500249,1859775393,-1894007588,-899497514],o=new Array(80);function i(){this.init(),this._w=o,t.call(this,64,56)}function s(e){return e<<5|e>>>27}function a(e){return e<<30|e>>>2}function c(e,t,r,n){return 0===e?t&r|~t&n:2===e?t&r|t&n|r&n:t^r^n}return e(i,t),i.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},i.prototype._update=function(e){for(var t,r=this._w,o=0|this._a,i=0|this._b,u=0|this._c,l=0|this._d,d=0|this._e,h=0;h<16;++h)r[h]=e.readInt32BE(4*h);for(;h<80;++h)r[h]=(t=r[h-3]^r[h-8]^r[h-14]^r[h-16])<<1|t>>>31;for(var f=0;f<80;++f){var p=~~(f/20),m=s(o)+c(p,i,u,l)+d+r[f]+n[p]|0;d=l,l=u,u=a(i),i=o,o=m}this._a=o+this._a|0,this._b=i+this._b|0,this._c=u+this._c|0,this._d=l+this._d|0,this._e=d+this._e|0},i.prototype._hash=function(){var e=r.allocUnsafe(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},sha1=i}function requireSha256(){if(hasRequiredSha256)return sha256$3;hasRequiredSha256=1;var e=requireInherits_browser(),t=requireHash(),r=requireSafeBuffer$1().Buffer,n=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],o=new Array(64);function i(){this.init(),this._w=o,t.call(this,64,56)}function s(e,t,r){return r^e&(t^r)}function a(e,t,r){return e&t|r&(e|t)}function c(e){return(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10)}function u(e){return(e>>>6|e<<26)^(e>>>11|e<<21)^(e>>>25|e<<7)}function l(e){return(e>>>7|e<<25)^(e>>>18|e<<14)^e>>>3}return e(i,t),i.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this},i.prototype._update=function(e){for(var t,r=this._w,o=0|this._a,i=0|this._b,d=0|this._c,h=0|this._d,f=0|this._e,p=0|this._f,m=0|this._g,y=0|this._h,g=0;g<16;++g)r[g]=e.readInt32BE(4*g);for(;g<64;++g)r[g]=0|(((t=r[g-2])>>>17|t<<15)^(t>>>19|t<<13)^t>>>10)+r[g-7]+l(r[g-15])+r[g-16];for(var b=0;b<64;++b){var w=y+u(f)+s(f,p,m)+n[b]+r[b]|0,_=c(o)+a(o,i,d)|0;y=m,m=p,p=f,f=h+w|0,h=d,d=i,i=o,o=w+_|0}this._a=o+this._a|0,this._b=i+this._b|0,this._c=d+this._c|0,this._d=h+this._d|0,this._e=f+this._e|0,this._f=p+this._f|0,this._g=m+this._g|0,this._h=y+this._h|0},i.prototype._hash=function(){var e=r.allocUnsafe(32);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e.writeInt32BE(this._h,28),e},sha256$3=i}function requireSha224(){if(hasRequiredSha224)return sha224$1;hasRequiredSha224=1;var e=requireInherits_browser(),t=requireSha256(),r=requireHash(),n=requireSafeBuffer$1().Buffer,o=new Array(64);function i(){this.init(),this._w=o,r.call(this,64,56)}return e(i,t),i.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},i.prototype._hash=function(){var e=n.allocUnsafe(28);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e},sha224$1=i}function requireSha512(){if(hasRequiredSha512)return sha512$2;hasRequiredSha512=1;var e=requireInherits_browser(),t=requireHash(),r=requireSafeBuffer$1().Buffer,n=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],o=new Array(160);function i(){this.init(),this._w=o,t.call(this,128,112)}function s(e,t,r){return r^e&(t^r)}function a(e,t,r){return e&t|r&(e|t)}function c(e,t){return(e>>>28|t<<4)^(t>>>2|e<<30)^(t>>>7|e<<25)}function u(e,t){return(e>>>14|t<<18)^(e>>>18|t<<14)^(t>>>9|e<<23)}function l(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^e>>>7}function d(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^(e>>>7|t<<25)}function h(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^e>>>6}function f(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^(e>>>6|t<<26)}function p(e,t){return e>>>0>>0?1:0}return e(i,t),i.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},i.prototype._update=function(e){for(var t=this._w,r=0|this._ah,o=0|this._bh,i=0|this._ch,m=0|this._dh,y=0|this._eh,g=0|this._fh,b=0|this._gh,w=0|this._hh,_=0|this._al,v=0|this._bl,$=0|this._cl,I=0|this._dl,k=0|this._el,A=0|this._fl,S=0|this._gl,E=0|this._hl,T=0;T<32;T+=2)t[T]=e.readInt32BE(4*T),t[T+1]=e.readInt32BE(4*T+4);for(;T<160;T+=2){var P=t[T-30],R=t[T-30+1],C=l(P,R),O=d(R,P),M=h(P=t[T-4],R=t[T-4+1]),N=f(R,P),B=t[T-14],x=t[T-14+1],D=t[T-32],L=t[T-32+1],U=O+x|0,F=C+B+p(U,O)|0;F=(F=F+M+p(U=U+N|0,N)|0)+D+p(U=U+L|0,L)|0,t[T]=F,t[T+1]=U}for(var j=0;j<160;j+=2){F=t[j],U=t[j+1];var q=a(r,o,i),K=a(_,v,$),z=c(r,_),H=c(_,r),G=u(y,k),W=u(k,y),V=n[j],Y=n[j+1],J=s(y,g,b),Q=s(k,A,S),Z=E+W|0,X=w+G+p(Z,E)|0;X=(X=(X=X+J+p(Z=Z+Q|0,Q)|0)+V+p(Z=Z+Y|0,Y)|0)+F+p(Z=Z+U|0,U)|0;var ee=H+K|0,te=z+q+p(ee,H)|0;w=b,E=S,b=g,S=A,g=y,A=k,y=m+X+p(k=I+Z|0,I)|0,m=i,I=$,i=o,$=v,o=r,v=_,r=X+te+p(_=Z+ee|0,Z)|0}this._al=this._al+_|0,this._bl=this._bl+v|0,this._cl=this._cl+$|0,this._dl=this._dl+I|0,this._el=this._el+k|0,this._fl=this._fl+A|0,this._gl=this._gl+S|0,this._hl=this._hl+E|0,this._ah=this._ah+r+p(this._al,_)|0,this._bh=this._bh+o+p(this._bl,v)|0,this._ch=this._ch+i+p(this._cl,$)|0,this._dh=this._dh+m+p(this._dl,I)|0,this._eh=this._eh+y+p(this._el,k)|0,this._fh=this._fh+g+p(this._fl,A)|0,this._gh=this._gh+b+p(this._gl,S)|0,this._hh=this._hh+w+p(this._hl,E)|0},i.prototype._hash=function(){var e=r.allocUnsafe(64);function t(t,r,n){e.writeInt32BE(t,n),e.writeInt32BE(r,n+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),t(this._gh,this._gl,48),t(this._hh,this._hl,56),e},sha512$2=i}function requireSha384(){if(hasRequiredSha384)return sha384$1;hasRequiredSha384=1;var e=requireInherits_browser(),t=requireSha512(),r=requireHash(),n=requireSafeBuffer$1().Buffer,o=new Array(160);function i(){this.init(),this._w=o,r.call(this,128,112)}return e(i,t),i.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},i.prototype._hash=function(){var e=n.allocUnsafe(48);function t(t,r,n){e.writeInt32BE(t,n),e.writeInt32BE(r,n+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),e},sha384$1=i}function requireSha_js(){if(hasRequiredSha_js)return sha_js.exports;hasRequiredSha_js=1;var e=sha_js.exports=function(t){t=t.toLowerCase();var r=e[t];if(!r)throw new Error(t+" is not supported (we accept pull requests)");return new r};return e.sha=requireSha(),e.sha1=requireSha1(),e.sha224=requireSha224(),e.sha256=requireSha256(),e.sha384=requireSha384(),e.sha512=requireSha512(),sha_js.exports}function requireCipherBase(){if(hasRequiredCipherBase)return cipherBase;hasRequiredCipherBase=1;var e=requireSafeBuffer$1().Buffer,t=requireStreamBrowserify().Transform,r=requireString_decoder().StringDecoder;function n(e){t.call(this),this.hashMode="string"==typeof e,this.hashMode?this[e]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}requireInherits_browser()(n,t);var o="undefined"!=typeof Uint8Array,i="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&ArrayBuffer.isView&&(e.prototype instanceof Uint8Array||e.TYPED_ARRAY_SUPPORT);return n.prototype.update=function(t,r,n){var s=function(t,r){if(t instanceof e)return t;if("string"==typeof t)return e.from(t,r);if(i&&ArrayBuffer.isView(t)){if(0===t.byteLength)return e.alloc(0);var n=e.from(t.buffer,t.byteOffset,t.byteLength);if(n.byteLength===t.byteLength)return n}if(o&&t instanceof Uint8Array)return e.from(t);if(e.isBuffer(t)&&t.constructor&&"function"==typeof t.constructor.isBuffer&&t.constructor.isBuffer(t))return e.from(t);throw new TypeError('The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView.')}(t,r),a=this._update(s);return this.hashMode?this:(n&&(a=this._toString(a,n)),a)},n.prototype.setAutoPadding=function(){},n.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},n.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},n.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},n.prototype._transform=function(e,t,r){var n;try{this.hashMode?this._update(e):this.push(this._update(e))}catch(o){n=o}finally{r(n)}},n.prototype._flush=function(e){var t;try{this.push(this.__final())}catch(r){t=r}e(t)},n.prototype._finalOrDigest=function(t){var r=this.__final()||e.alloc(0);return t&&(r=this._toString(r,t,!0)),r},n.prototype._toString=function(e,t,n){if(this._decoder||(this._decoder=new r(t),this._encoding=t),this._encoding!==t)throw new Error("can’t switch encodings");var o=this._decoder.write(e);return n&&(o+=this._decoder.end()),o},cipherBase=n}function requireBrowser$9(){if(hasRequiredBrowser$9)return browser$e;hasRequiredBrowser$9=1;var e=requireInherits_browser(),t=requireMd5_js(),r=requireRipemd160(),n=requireSha_js(),o=requireCipherBase();function i(e){o.call(this,"digest"),this._hash=e}return e(i,o),i.prototype._update=function(e){this._hash.update(e)},i.prototype._final=function(){return this._hash.digest()},browser$e=function(e){return"md5"===(e=e.toLowerCase())?new t:"rmd160"===e||"ripemd160"===e?new r:new i(n(e))}}function requireLegacy(){if(hasRequiredLegacy)return legacy$1;hasRequiredLegacy=1;var e=requireInherits_browser(),t=requireSafeBuffer$1().Buffer,r=requireCipherBase(),n=t.alloc(128),o=64;function i(e,i){r.call(this,"digest"),"string"==typeof i&&(i=t.from(i)),this._alg=e,this._key=i,i.length>o?i=e(i):i.lengtho)?t=("rmd160"===e?new i:s(e)).update(t).digest():t.lengthe||r!=r)throw new TypeError("Bad key length")}}function requireDefaultEncoding(){if(hasRequiredDefaultEncoding)return defaultEncoding_1;var e;if(hasRequiredDefaultEncoding=1,commonjsGlobal.process&&commonjsGlobal.process.browser)e="utf-8";else if(commonjsGlobal.process&&commonjsGlobal.process.version){e=parseInt(process$1.version.split(".")[0].slice(1),10)>=6?"utf-8":"binary"}else e="utf-8";return defaultEncoding_1=e}function requireToBuffer(){if(hasRequiredToBuffer)return toBuffer;hasRequiredToBuffer=1;var e=requireSafeBuffer$1().Buffer;return toBuffer=function(t,r,n){if(e.isBuffer(t))return t;if("string"==typeof t)return e.from(t,r);if(ArrayBuffer.isView(t))return e.from(t.buffer);throw new TypeError(n+" must be a string, a Buffer, a typed array or a DataView")}}function requireSyncBrowser(){if(hasRequiredSyncBrowser)return syncBrowser;hasRequiredSyncBrowser=1;var e=requireMd5(),t=requireRipemd160(),r=requireSha_js(),n=requireSafeBuffer$1().Buffer,o=requirePrecondition(),i=requireDefaultEncoding(),s=requireToBuffer(),a=n.alloc(128),c={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function u(o,i,s){var u=function(n){function o(e){return r(n).update(e).digest()}function i(e){return(new t).update(e).digest()}return"rmd160"===n||"ripemd160"===n?i:"md5"===n?e:o}(o),l="sha512"===o||"sha384"===o?128:64;i.length>l?i=u(i):i.length>>0},utils$C.writeUInt32BE=function(e,t,r){e[0+r]=t>>>24,e[1+r]=t>>>16&255,e[2+r]=t>>>8&255,e[3+r]=255&t},utils$C.ip=function(e,t,r,n){for(var o=0,i=0,s=6;s>=0;s-=2){for(var a=0;a<=24;a+=8)o<<=1,o|=t>>>a+s&1;for(a=0;a<=24;a+=8)o<<=1,o|=e>>>a+s&1}for(s=6;s>=0;s-=2){for(a=1;a<=25;a+=8)i<<=1,i|=t>>>a+s&1;for(a=1;a<=25;a+=8)i<<=1,i|=e>>>a+s&1}r[n+0]=o>>>0,r[n+1]=i>>>0},utils$C.rip=function(e,t,r,n){for(var o=0,i=0,s=0;s<4;s++)for(var a=24;a>=0;a-=8)o<<=1,o|=t>>>a+s&1,o<<=1,o|=e>>>a+s&1;for(s=4;s<8;s++)for(a=24;a>=0;a-=8)i<<=1,i|=t>>>a+s&1,i<<=1,i|=e>>>a+s&1;r[n+0]=o>>>0,r[n+1]=i>>>0},utils$C.pc1=function(e,t,r,n){for(var o=0,i=0,s=7;s>=5;s--){for(var a=0;a<=24;a+=8)o<<=1,o|=t>>a+s&1;for(a=0;a<=24;a+=8)o<<=1,o|=e>>a+s&1}for(a=0;a<=24;a+=8)o<<=1,o|=t>>a+s&1;for(s=1;s<=3;s++){for(a=0;a<=24;a+=8)i<<=1,i|=t>>a+s&1;for(a=0;a<=24;a+=8)i<<=1,i|=e>>a+s&1}for(a=0;a<=24;a+=8)i<<=1,i|=e>>a+s&1;r[n+0]=o>>>0,r[n+1]=i>>>0},utils$C.r28shl=function(e,t){return e<>>28-t};var e=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];utils$C.pc2=function(t,r,n,o){for(var i=0,s=0,a=e.length>>>1,c=0;c>>e[c]&1;for(c=a;c>>e[c]&1;n[o+0]=i>>>0,n[o+1]=s>>>0},utils$C.expand=function(e,t,r){var n=0,o=0;n=(1&e)<<5|e>>>27;for(var i=23;i>=15;i-=4)n<<=6,n|=e>>>i&63;for(i=11;i>=3;i-=4)o|=e>>>i&63,o<<=6;o|=(31&e)<<1|e>>>31,t[r+0]=n>>>0,t[r+1]=o>>>0};var t=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];utils$C.substitute=function(e,r){for(var n=0,o=0;o<4;o++){n<<=4,n|=t[64*o+(e>>>18-6*o&63)]}for(o=0;o<4;o++){n<<=4,n|=t[256+64*o+(r>>>18-6*o&63)]}return n>>>0};var r=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];return utils$C.permute=function(e){for(var t=0,n=0;n>>r[n]&1;return t>>>0},utils$C.padSplit=function(e,t,r){for(var n=e.toString(2);n.length0;n--)t+=this._buffer(e,t),r+=this._flushBuffer(o,r);return t+=this._buffer(e,t),o},t.prototype.final=function(e){var t,r;return e&&(t=this.update(e)),r="encrypt"===this.type?this._finalEncrypt():this._finalDecrypt(),t?t.concat(r):r},t.prototype._pad=function(e,t){if(0===t)return!1;for(;t>>1];o=r.r28shl(o,c),i=r.r28shl(i,c),r.pc2(o,i,t.keys,a)}},i.prototype._update=function(e,t,n,o){var i=this._desState,s=r.readUInt32BE(e,t),a=r.readUInt32BE(e,t+4);r.ip(s,a,i.tmp,0),s=i.tmp[0],a=i.tmp[1],"encrypt"===this.type?this._encrypt(i,s,a,i.tmp,0):this._decrypt(i,s,a,i.tmp,0),s=i.tmp[0],a=i.tmp[1],r.writeUInt32BE(n,s,o),r.writeUInt32BE(n,a,o+4)},i.prototype._pad=function(e,t){if(!1===this.padding)return!1;for(var r=e.length-t,n=t;n>>0,s=h}r.rip(a,s,o,i)},i.prototype._decrypt=function(e,t,n,o,i){for(var s=n,a=t,c=e.keys.length-2;c>=0;c-=2){var u=e.keys[c],l=e.keys[c+1];r.expand(s,e.tmp,0),u^=e.tmp[0],l^=e.tmp[1];var d=r.substitute(u,l),h=s;s=(a^r.permute(d))>>>0,a=h}r.rip(s,a,o,i)},des}assert$o.equal=function(e,t,r){if(e!=t)throw new Error(r||"Assertion failed: "+e+" != "+t)};var cbc$1={},hasRequiredCbc$1,ede,hasRequiredEde,hasRequiredDes,browserifyDes,hasRequiredBrowserifyDes;function requireCbc$1(){if(hasRequiredCbc$1)return cbc$1;hasRequiredCbc$1=1;var e=minimalisticAssert$1,t=requireInherits_browser(),r={};function n(t){e.equal(t.length,8,"Invalid IV length"),this.iv=new Array(8);for(var r=0;r>s%8,e._prev=r(e._prev,n?o:i);return a}function r(t,r){var n=t.length,o=-1,i=e.allocUnsafe(t.length);for(t=e.concat([t,e.from([r])]);++o>7;return i}return cfb1.encrypt=function(r,n,o){for(var i=n.length,s=e.allocUnsafe(i),a=-1;++a>>24]^l[p>>>16&255]^d[m>>>8&255]^h[255&y]^t[g++],s=u[p>>>24]^l[m>>>16&255]^d[y>>>8&255]^h[255&f]^t[g++],a=u[m>>>24]^l[y>>>16&255]^d[f>>>8&255]^h[255&p]^t[g++],c=u[y>>>24]^l[f>>>16&255]^d[p>>>8&255]^h[255&m]^t[g++],f=i,p=s,m=a,y=c;return i=(n[f>>>24]<<24|n[p>>>16&255]<<16|n[m>>>8&255]<<8|n[255&y])^t[g++],s=(n[p>>>24]<<24|n[m>>>16&255]<<16|n[y>>>8&255]<<8|n[255&f])^t[g++],a=(n[m>>>24]<<24|n[y>>>16&255]<<16|n[f>>>8&255]<<8|n[255&p])^t[g++],c=(n[y>>>24]<<24|n[f>>>16&255]<<16|n[p>>>8&255]<<8|n[255&m])^t[g++],[i>>>=0,s>>>=0,a>>>=0,c>>>=0]}var o=[0,1,2,4,8,16,32,64,128,27,54],i=function(){for(var e=new Array(256),t=0;t<256;t++)e[t]=t<128?t<<1:t<<1^283;for(var r=[],n=[],o=[[],[],[],[]],i=[[],[],[],[]],s=0,a=0,c=0;c<256;++c){var u=a^a<<1^a<<2^a<<3^a<<4;u=u>>>8^255&u^99,r[s]=u,n[u]=s;var l=e[s],d=e[l],h=e[d],f=257*e[u]^16843008*u;o[0][s]=f<<24|f>>>8,o[1][s]=f<<16|f>>>16,o[2][s]=f<<8|f>>>24,o[3][s]=f,f=16843009*h^65537*d^257*l^16843008*s,i[0][u]=f<<24|f>>>8,i[1][u]=f<<16|f>>>16,i[2][u]=f<<8|f>>>24,i[3][u]=f,0===s?s=a=1:(s=l^e[e[e[h^l]]],a^=e[e[a]])}return{SBOX:r,INV_SBOX:n,SUB_MIX:o,INV_SUB_MIX:i}}();function s(e){this._key=t(e),this._reset()}return s.blockSize=16,s.keySize=32,s.prototype.blockSize=s.blockSize,s.prototype.keySize=s.keySize,s.prototype._reset=function(){for(var e=this._key,t=e.length,r=t+6,n=4*(r+1),s=[],a=0;a>>24,c=i.SBOX[c>>>24]<<24|i.SBOX[c>>>16&255]<<16|i.SBOX[c>>>8&255]<<8|i.SBOX[255&c],c^=o[a/t|0]<<24):t>6&&a%t==4&&(c=i.SBOX[c>>>24]<<24|i.SBOX[c>>>16&255]<<16|i.SBOX[c>>>8&255]<<8|i.SBOX[255&c]),s[a]=s[a-t]^c}for(var u=[],l=0;l>>24]]^i.INV_SUB_MIX[1][i.SBOX[h>>>16&255]]^i.INV_SUB_MIX[2][i.SBOX[h>>>8&255]]^i.INV_SUB_MIX[3][i.SBOX[255&h]]}this._nRounds=r,this._keySchedule=s,this._invKeySchedule=u},s.prototype.encryptBlockRaw=function(e){return n(e=t(e),this._keySchedule,i.SUB_MIX,i.SBOX,this._nRounds)},s.prototype.encryptBlock=function(t){var r=this.encryptBlockRaw(t),n=e.allocUnsafe(16);return n.writeUInt32BE(r[0],0),n.writeUInt32BE(r[1],4),n.writeUInt32BE(r[2],8),n.writeUInt32BE(r[3],12),n},s.prototype.decryptBlock=function(r){var o=(r=t(r))[1];r[1]=r[3],r[3]=o;var s=n(r,this._invKeySchedule,i.INV_SUB_MIX,i.INV_SBOX,this._nRounds),a=e.allocUnsafe(16);return a.writeUInt32BE(s[0],0),a.writeUInt32BE(s[3],4),a.writeUInt32BE(s[2],8),a.writeUInt32BE(s[1],12),a},s.prototype.scrub=function(){r(this._keySchedule),r(this._invKeySchedule),r(this._key)},aes.AES=s,aes}function requireGhash(){if(hasRequiredGhash)return ghash;hasRequiredGhash=1;var e=requireSafeBuffer$1().Buffer,t=e.alloc(16,0);function r(t){var r=e.allocUnsafe(16);return r.writeUInt32BE(t[0]>>>0,0),r.writeUInt32BE(t[1]>>>0,4),r.writeUInt32BE(t[2]>>>0,8),r.writeUInt32BE(t[3]>>>0,12),r}function n(t){this.h=t,this.state=e.alloc(16,0),this.cache=e.allocUnsafe(0)}return n.prototype.ghash=function(e){for(var t=-1;++t0;t--)o[t]=o[t]>>>1|(1&o[t-1])<<31;o[0]=o[0]>>>1,n&&(o[0]=o[0]^225<<24)}this.state=r(i)},n.prototype.update=function(t){var r;for(this.cache=e.concat([this.cache,t]);this.cache.length>=16;)r=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(r)},n.prototype.final=function(n,o){return this.cache.length&&this.ghash(e.concat([this.cache,t],16)),this.ghash(r([0,n,0,o])),this.state},ghash=n}function requireAuthCipher(){if(hasRequiredAuthCipher)return authCipher;hasRequiredAuthCipher=1;var e=requireAes(),t=requireSafeBuffer$1().Buffer,r=requireCipherBase(),n=requireInherits_browser(),o=requireGhash(),i=requireBufferXor(),s=requireIncr32();function a(n,i,a,c){r.call(this);var u=t.alloc(4,0);this._cipher=new e.AES(i);var l=this._cipher.encryptBlock(u);this._ghash=new o(l),a=function(e,r,n){if(12===r.length)return e._finID=t.concat([r,t.from([0,0,0,1])]),t.concat([r,t.from([0,0,0,2])]);var i=new o(n),a=r.length,c=a%16;i.update(r),c&&(c=16-c,i.update(t.alloc(c,0))),i.update(t.alloc(8,0));var u=8*a,l=t.alloc(8);l.writeUIntBE(u,0,8),i.update(l),e._finID=i.state;var d=t.from(e._finID);return s(d),d}(this,a,l),this._prev=t.from(a),this._cache=t.allocUnsafe(0),this._secCache=t.allocUnsafe(0),this._decrypt=c,this._alen=0,this._len=0,this._mode=n,this._authTag=null,this._called=!1}return n(a,r),a.prototype._update=function(e){if(!this._called&&this._alen){var r=16-this._alen%16;r<16&&(r=t.alloc(r,0),this._ghash.update(r))}this._called=!0;var n=this._mode.encrypt(this,e);return this._decrypt?this._ghash.update(e):this._ghash.update(n),this._len+=e.length,n},a.prototype._final=function(){if(this._decrypt&&!this._authTag)throw new Error("Unsupported state or unable to authenticate data");var e=i(this._ghash.final(8*this._alen,8*this._len),this._cipher.encryptBlock(this._finID));if(this._decrypt&&function(e,t){var r=0;e.length!==t.length&&r++;for(var n=Math.min(e.length,t.length),o=0;o0||i>0;){var l=new t;l.update(u),l.update(r),n&&l.update(n),u=l.digest();var d=0;if(s>0){var h=a.length-s;d=Math.min(s,u.length),u.copy(a,h,0,d),s-=d}if(d0){var f=c.length-i,p=Math.min(i,u.length-d);u.copy(c,f,d,d+p),i-=p}}return u.fill(0),{key:a,iv:c}}}function requireEncrypter(){if(hasRequiredEncrypter)return encrypter;hasRequiredEncrypter=1;var e=requireModes$1(),t=requireAuthCipher(),r=requireSafeBuffer$1().Buffer,n=requireStreamCipher(),o=requireCipherBase(),i=requireAes(),s=requireEvp_bytestokey();function a(e,t,n){o.call(this),this._cache=new u,this._cipher=new i.AES(t),this._prev=r.from(n),this._mode=e,this._autopadding=!0}requireInherits_browser()(a,o),a.prototype._update=function(e){var t,n;this._cache.add(e);for(var o=[];t=this._cache.get();)n=this._mode.encrypt(this,t),o.push(n);return r.concat(o)};var c=r.alloc(16,16);function u(){this.cache=r.allocUnsafe(0)}function l(o,i,s){var c=e[o.toLowerCase()];if(!c)throw new TypeError("invalid suite type");if("string"==typeof i&&(i=r.from(i)),i.length!==c.key/8)throw new TypeError("invalid key length "+i.length);if("string"==typeof s&&(s=r.from(s)),"GCM"!==c.mode&&s.length!==c.iv)throw new TypeError("invalid iv length "+s.length);return"stream"===c.type?new n(c.module,i,s):"auth"===c.type?new t(c.module,i,s):new a(c.module,i,s)}return a.prototype._final=function(){var e=this._cache.flush();if(this._autopadding)return e=this._mode.encrypt(this,e),this._cipher.scrub(),e;if(!e.equals(c))throw this._cipher.scrub(),new Error("data not multiple of block length")},a.prototype.setAutoPadding=function(e){return this._autopadding=!!e,this},u.prototype.add=function(e){this.cache=r.concat([this.cache,e])},u.prototype.get=function(){if(this.cache.length>15){var e=this.cache.slice(0,16);return this.cache=this.cache.slice(16),e}return null},u.prototype.flush=function(){for(var e=16-this.cache.length,t=r.allocUnsafe(e),n=-1;++n16)throw new Error("unable to decrypt data");var r=-1;for(;++r16)return t=this.cache.slice(0,16),this.cache=this.cache.slice(16),t}else if(this.cache.length>=16)return t=this.cache.slice(0,16),this.cache=this.cache.slice(16),t;return null},c.prototype.flush=function(){if(this.cache.length)return this.cache},decrypter.createDecipher=function(e,t){var n=r[e.toLowerCase()];if(!n)throw new TypeError("invalid suite type");var o=s(t,!1,n.key,n.iv);return u(e,o.key,o.iv)},decrypter.createDecipheriv=u,decrypter}function requireBrowser$6(){if(hasRequiredBrowser$6)return browser$a;hasRequiredBrowser$6=1;var e=requireEncrypter(),t=requireDecrypter(),r=require$$2;return browser$a.createCipher=browser$a.Cipher=e.createCipher,browser$a.createCipheriv=browser$a.Cipheriv=e.createCipheriv,browser$a.createDecipher=browser$a.Decipher=t.createDecipher,browser$a.createDecipheriv=browser$a.Decipheriv=t.createDecipheriv,browser$a.listCiphers=browser$a.getCiphers=function(){return Object.keys(r)},browser$a}var modes={},hasRequiredModes,hasRequiredBrowser$5;function requireModes(){return hasRequiredModes||(hasRequiredModes=1,function(e){e["des-ecb"]={key:8,iv:0},e["des-cbc"]=e.des={key:8,iv:8},e["des-ede3-cbc"]=e.des3={key:24,iv:8},e["des-ede3"]={key:24,iv:0},e["des-ede-cbc"]={key:16,iv:8},e["des-ede"]={key:16,iv:0}}(modes)),modes}function requireBrowser$5(){if(hasRequiredBrowser$5)return browser$b;hasRequiredBrowser$5=1;var e=requireBrowserifyDes(),t=requireBrowser$6(),r=requireModes$1(),n=requireModes(),o=requireEvp_bytestokey();function i(o,i,s){if(o=o.toLowerCase(),r[o])return t.createCipheriv(o,i,s);if(n[o])return new e({key:i,iv:s,mode:o});throw new TypeError("invalid suite type")}function s(o,i,s){if(o=o.toLowerCase(),r[o])return t.createDecipheriv(o,i,s);if(n[o])return new e({key:i,iv:s,mode:o,decrypt:!0});throw new TypeError("invalid suite type")}return browser$b.createCipher=browser$b.Cipher=function(e,t){var s,a;if(e=e.toLowerCase(),r[e])s=r[e].key,a=r[e].iv;else{if(!n[e])throw new TypeError("invalid suite type");s=8*n[e].key,a=n[e].iv}var c=o(t,!1,s,a);return i(e,c.key,c.iv)},browser$b.createCipheriv=browser$b.Cipheriv=i,browser$b.createDecipher=browser$b.Decipher=function(e,t){var i,a;if(e=e.toLowerCase(),r[e])i=r[e].key,a=r[e].iv;else{if(!n[e])throw new TypeError("invalid suite type");i=8*n[e].key,a=n[e].iv}var c=o(t,!1,i,a);return s(e,c.key,c.iv)},browser$b.createDecipheriv=browser$b.Decipheriv=s,browser$b.listCiphers=browser$b.getCiphers=function(){return Object.keys(n).concat(t.getCiphers())},browser$b}var browser$9={},bn$9={exports:{}},hasRequiredBn$4;function requireBn$4(){return hasRequiredBn$4||(hasRequiredBn$4=1,function(e,t){function r(e,t){if(!e)throw new Error(t||"Assertion failed")}function n(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}function o(e,t,r){if(o.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(r=t,t=10),this._init(e||0,t||10,r||"be"))}var i;"object"==typeof e?e.exports=o:t.BN=o,o.BN=o,o.wordSize=26;try{i="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:require$$2$1.Buffer}catch(k){}function s(e,t){var r=e.charCodeAt(t);return r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:r-48&15}function a(e,t,r){var n=s(e,r);return r-1>=t&&(n|=s(e,r-1)<<4),n}function c(e,t,r,n){for(var o=0,i=Math.min(e.length,r),s=t;s=49?a-49+10:a>=17?a-17+10:a}return o}o.isBN=function(e){return e instanceof o||null!==e&&"object"==typeof e&&e.constructor.wordSize===o.wordSize&&Array.isArray(e.words)},o.max=function(e,t){return e.cmp(t)>0?e:t},o.min=function(e,t){return e.cmp(t)<0?e:t},o.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),r(t===(0|t)&&t>=2&&t<=36);var o=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(o++,this.negative=1),o=0;o-=3)s=e[o]|e[o-1]<<8|e[o-2]<<16,this.words[i]|=s<>>26-a&67108863,(a+=24)>=26&&(a-=26,i++);else if("le"===n)for(o=0,i=0;o>>26-a&67108863,(a+=24)>=26&&(a-=26,i++);return this.strip()},o.prototype._parseHex=function(e,t,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var n=0;n=t;n-=2)o=a(e,t,n)<=18?(i-=18,s+=1,this.words[s]|=o>>>26):i+=8;else for(n=(e.length-t)%2==0?t+1:t;n=18?(i-=18,s+=1,this.words[s]|=o>>>26):i+=8;this.strip()},o.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var n=0,o=1;o<=67108863;o*=t)n++;n--,o=o/t|0;for(var i=e.length-r,s=i%n,a=Math.min(i,i-s)+r,u=0,l=r;l1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?""};var u=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],l=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],d=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function h(e,t,r){r.negative=t.negative^e.negative;var n=e.length+t.length|0;r.length=n,n=n-1|0;var o=0|e.words[0],i=0|t.words[0],s=o*i,a=67108863&s,c=s/67108864|0;r.words[0]=a;for(var u=1;u>>26,d=67108863&c,h=Math.min(u,t.length-1),f=Math.max(0,u-e.length+1);f<=h;f++){var p=u-f|0;l+=(s=(o=0|e.words[p])*(i=0|t.words[f])+d)/67108864|0,d=67108863&s}r.words[u]=0|d,c=0|l}return 0!==c?r.words[u]=0|c:r.length--,r.strip()}o.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var o=0,i=0,s=0;s>>24-o&16777215,(o+=2)>=26&&(o-=26,s--),n=0!==i||s!==this.length-1?u[6-c.length]+c+n:c+n}for(0!==i&&(n=i.toString(16)+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var h=l[e],f=d[e];n="";var p=this.clone();for(p.negative=0;!p.isZero();){var m=p.modn(f).toString(e);n=(p=p.idivn(f)).isZero()?m+n:u[h-m.length]+m+n}for(this.isZero()&&(n="0"+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(e,t){return r(void 0!==i),this.toArrayLike(i,e,t)},o.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},o.prototype.toArrayLike=function(e,t,n){var o=this.byteLength(),i=n||Math.max(1,o);r(o<=i,"byte array longer than desired length"),r(i>0,"Requested array length <= 0"),this.strip();var s,a,c="le"===t,u=new e(i),l=this.clone();if(c){for(a=0;!l.isZero();a++)s=l.andln(255),l.iushrn(8),u[a]=s;for(;a=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},o.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 8191&t||(r+=13,t>>>=13),127&t||(r+=7,t>>>=7),15&t||(r+=4,t>>>=4),3&t||(r+=2,t>>>=2),1&t||r++,r},o.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},o.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},o.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;re.length?this.clone().iand(e):e.clone().iand(this)},o.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},o.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var n=0;ne.length?this.clone().ixor(e):e.clone().ixor(this)},o.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},o.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var o=0;o0&&(this.words[o]=~this.words[o]&67108863>>26-n),this.strip()},o.prototype.notn=function(e){return this.clone().inotn(e)},o.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var n=e/26|0,o=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<e.length?(r=this,n=e):(r=e,n=this);for(var o=0,i=0;i>>26;for(;0!==o&&i>>26;if(this.length=r.length,0!==o)this.words[this.length]=o,this.length++;else if(r!==this)for(;ie.length?this.clone().iadd(e):e.clone().iadd(this)},o.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,n,o=this.cmp(e);if(0===o)return this.negative=0,this.length=1,this.words[0]=0,this;o>0?(r=this,n=e):(r=e,n=this);for(var i=0,s=0;s>26,this.words[s]=67108863&t;for(;0!==i&&s>26,this.words[s]=67108863&t;if(0===i&&s>>13,f=0|s[1],p=8191&f,m=f>>>13,y=0|s[2],g=8191&y,b=y>>>13,w=0|s[3],_=8191&w,v=w>>>13,$=0|s[4],I=8191&$,k=$>>>13,A=0|s[5],S=8191&A,E=A>>>13,T=0|s[6],P=8191&T,R=T>>>13,C=0|s[7],O=8191&C,M=C>>>13,N=0|s[8],B=8191&N,x=N>>>13,D=0|s[9],L=8191&D,U=D>>>13,F=0|a[0],j=8191&F,q=F>>>13,K=0|a[1],z=8191&K,H=K>>>13,G=0|a[2],W=8191&G,V=G>>>13,Y=0|a[3],J=8191&Y,Q=Y>>>13,Z=0|a[4],X=8191&Z,ee=Z>>>13,te=0|a[5],re=8191&te,ne=te>>>13,oe=0|a[6],ie=8191&oe,se=oe>>>13,ae=0|a[7],ce=8191&ae,ue=ae>>>13,le=0|a[8],de=8191&le,he=le>>>13,fe=0|a[9],pe=8191&fe,me=fe>>>13;r.negative=e.negative^t.negative,r.length=19;var ye=(u+(n=Math.imul(d,j))|0)+((8191&(o=(o=Math.imul(d,q))+Math.imul(h,j)|0))<<13)|0;u=((i=Math.imul(h,q))+(o>>>13)|0)+(ye>>>26)|0,ye&=67108863,n=Math.imul(p,j),o=(o=Math.imul(p,q))+Math.imul(m,j)|0,i=Math.imul(m,q);var ge=(u+(n=n+Math.imul(d,z)|0)|0)+((8191&(o=(o=o+Math.imul(d,H)|0)+Math.imul(h,z)|0))<<13)|0;u=((i=i+Math.imul(h,H)|0)+(o>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(g,j),o=(o=Math.imul(g,q))+Math.imul(b,j)|0,i=Math.imul(b,q),n=n+Math.imul(p,z)|0,o=(o=o+Math.imul(p,H)|0)+Math.imul(m,z)|0,i=i+Math.imul(m,H)|0;var be=(u+(n=n+Math.imul(d,W)|0)|0)+((8191&(o=(o=o+Math.imul(d,V)|0)+Math.imul(h,W)|0))<<13)|0;u=((i=i+Math.imul(h,V)|0)+(o>>>13)|0)+(be>>>26)|0,be&=67108863,n=Math.imul(_,j),o=(o=Math.imul(_,q))+Math.imul(v,j)|0,i=Math.imul(v,q),n=n+Math.imul(g,z)|0,o=(o=o+Math.imul(g,H)|0)+Math.imul(b,z)|0,i=i+Math.imul(b,H)|0,n=n+Math.imul(p,W)|0,o=(o=o+Math.imul(p,V)|0)+Math.imul(m,W)|0,i=i+Math.imul(m,V)|0;var we=(u+(n=n+Math.imul(d,J)|0)|0)+((8191&(o=(o=o+Math.imul(d,Q)|0)+Math.imul(h,J)|0))<<13)|0;u=((i=i+Math.imul(h,Q)|0)+(o>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(I,j),o=(o=Math.imul(I,q))+Math.imul(k,j)|0,i=Math.imul(k,q),n=n+Math.imul(_,z)|0,o=(o=o+Math.imul(_,H)|0)+Math.imul(v,z)|0,i=i+Math.imul(v,H)|0,n=n+Math.imul(g,W)|0,o=(o=o+Math.imul(g,V)|0)+Math.imul(b,W)|0,i=i+Math.imul(b,V)|0,n=n+Math.imul(p,J)|0,o=(o=o+Math.imul(p,Q)|0)+Math.imul(m,J)|0,i=i+Math.imul(m,Q)|0;var _e=(u+(n=n+Math.imul(d,X)|0)|0)+((8191&(o=(o=o+Math.imul(d,ee)|0)+Math.imul(h,X)|0))<<13)|0;u=((i=i+Math.imul(h,ee)|0)+(o>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(S,j),o=(o=Math.imul(S,q))+Math.imul(E,j)|0,i=Math.imul(E,q),n=n+Math.imul(I,z)|0,o=(o=o+Math.imul(I,H)|0)+Math.imul(k,z)|0,i=i+Math.imul(k,H)|0,n=n+Math.imul(_,W)|0,o=(o=o+Math.imul(_,V)|0)+Math.imul(v,W)|0,i=i+Math.imul(v,V)|0,n=n+Math.imul(g,J)|0,o=(o=o+Math.imul(g,Q)|0)+Math.imul(b,J)|0,i=i+Math.imul(b,Q)|0,n=n+Math.imul(p,X)|0,o=(o=o+Math.imul(p,ee)|0)+Math.imul(m,X)|0,i=i+Math.imul(m,ee)|0;var ve=(u+(n=n+Math.imul(d,re)|0)|0)+((8191&(o=(o=o+Math.imul(d,ne)|0)+Math.imul(h,re)|0))<<13)|0;u=((i=i+Math.imul(h,ne)|0)+(o>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(P,j),o=(o=Math.imul(P,q))+Math.imul(R,j)|0,i=Math.imul(R,q),n=n+Math.imul(S,z)|0,o=(o=o+Math.imul(S,H)|0)+Math.imul(E,z)|0,i=i+Math.imul(E,H)|0,n=n+Math.imul(I,W)|0,o=(o=o+Math.imul(I,V)|0)+Math.imul(k,W)|0,i=i+Math.imul(k,V)|0,n=n+Math.imul(_,J)|0,o=(o=o+Math.imul(_,Q)|0)+Math.imul(v,J)|0,i=i+Math.imul(v,Q)|0,n=n+Math.imul(g,X)|0,o=(o=o+Math.imul(g,ee)|0)+Math.imul(b,X)|0,i=i+Math.imul(b,ee)|0,n=n+Math.imul(p,re)|0,o=(o=o+Math.imul(p,ne)|0)+Math.imul(m,re)|0,i=i+Math.imul(m,ne)|0;var $e=(u+(n=n+Math.imul(d,ie)|0)|0)+((8191&(o=(o=o+Math.imul(d,se)|0)+Math.imul(h,ie)|0))<<13)|0;u=((i=i+Math.imul(h,se)|0)+(o>>>13)|0)+($e>>>26)|0,$e&=67108863,n=Math.imul(O,j),o=(o=Math.imul(O,q))+Math.imul(M,j)|0,i=Math.imul(M,q),n=n+Math.imul(P,z)|0,o=(o=o+Math.imul(P,H)|0)+Math.imul(R,z)|0,i=i+Math.imul(R,H)|0,n=n+Math.imul(S,W)|0,o=(o=o+Math.imul(S,V)|0)+Math.imul(E,W)|0,i=i+Math.imul(E,V)|0,n=n+Math.imul(I,J)|0,o=(o=o+Math.imul(I,Q)|0)+Math.imul(k,J)|0,i=i+Math.imul(k,Q)|0,n=n+Math.imul(_,X)|0,o=(o=o+Math.imul(_,ee)|0)+Math.imul(v,X)|0,i=i+Math.imul(v,ee)|0,n=n+Math.imul(g,re)|0,o=(o=o+Math.imul(g,ne)|0)+Math.imul(b,re)|0,i=i+Math.imul(b,ne)|0,n=n+Math.imul(p,ie)|0,o=(o=o+Math.imul(p,se)|0)+Math.imul(m,ie)|0,i=i+Math.imul(m,se)|0;var Ie=(u+(n=n+Math.imul(d,ce)|0)|0)+((8191&(o=(o=o+Math.imul(d,ue)|0)+Math.imul(h,ce)|0))<<13)|0;u=((i=i+Math.imul(h,ue)|0)+(o>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,n=Math.imul(B,j),o=(o=Math.imul(B,q))+Math.imul(x,j)|0,i=Math.imul(x,q),n=n+Math.imul(O,z)|0,o=(o=o+Math.imul(O,H)|0)+Math.imul(M,z)|0,i=i+Math.imul(M,H)|0,n=n+Math.imul(P,W)|0,o=(o=o+Math.imul(P,V)|0)+Math.imul(R,W)|0,i=i+Math.imul(R,V)|0,n=n+Math.imul(S,J)|0,o=(o=o+Math.imul(S,Q)|0)+Math.imul(E,J)|0,i=i+Math.imul(E,Q)|0,n=n+Math.imul(I,X)|0,o=(o=o+Math.imul(I,ee)|0)+Math.imul(k,X)|0,i=i+Math.imul(k,ee)|0,n=n+Math.imul(_,re)|0,o=(o=o+Math.imul(_,ne)|0)+Math.imul(v,re)|0,i=i+Math.imul(v,ne)|0,n=n+Math.imul(g,ie)|0,o=(o=o+Math.imul(g,se)|0)+Math.imul(b,ie)|0,i=i+Math.imul(b,se)|0,n=n+Math.imul(p,ce)|0,o=(o=o+Math.imul(p,ue)|0)+Math.imul(m,ce)|0,i=i+Math.imul(m,ue)|0;var ke=(u+(n=n+Math.imul(d,de)|0)|0)+((8191&(o=(o=o+Math.imul(d,he)|0)+Math.imul(h,de)|0))<<13)|0;u=((i=i+Math.imul(h,he)|0)+(o>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(L,j),o=(o=Math.imul(L,q))+Math.imul(U,j)|0,i=Math.imul(U,q),n=n+Math.imul(B,z)|0,o=(o=o+Math.imul(B,H)|0)+Math.imul(x,z)|0,i=i+Math.imul(x,H)|0,n=n+Math.imul(O,W)|0,o=(o=o+Math.imul(O,V)|0)+Math.imul(M,W)|0,i=i+Math.imul(M,V)|0,n=n+Math.imul(P,J)|0,o=(o=o+Math.imul(P,Q)|0)+Math.imul(R,J)|0,i=i+Math.imul(R,Q)|0,n=n+Math.imul(S,X)|0,o=(o=o+Math.imul(S,ee)|0)+Math.imul(E,X)|0,i=i+Math.imul(E,ee)|0,n=n+Math.imul(I,re)|0,o=(o=o+Math.imul(I,ne)|0)+Math.imul(k,re)|0,i=i+Math.imul(k,ne)|0,n=n+Math.imul(_,ie)|0,o=(o=o+Math.imul(_,se)|0)+Math.imul(v,ie)|0,i=i+Math.imul(v,se)|0,n=n+Math.imul(g,ce)|0,o=(o=o+Math.imul(g,ue)|0)+Math.imul(b,ce)|0,i=i+Math.imul(b,ue)|0,n=n+Math.imul(p,de)|0,o=(o=o+Math.imul(p,he)|0)+Math.imul(m,de)|0,i=i+Math.imul(m,he)|0;var Ae=(u+(n=n+Math.imul(d,pe)|0)|0)+((8191&(o=(o=o+Math.imul(d,me)|0)+Math.imul(h,pe)|0))<<13)|0;u=((i=i+Math.imul(h,me)|0)+(o>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(L,z),o=(o=Math.imul(L,H))+Math.imul(U,z)|0,i=Math.imul(U,H),n=n+Math.imul(B,W)|0,o=(o=o+Math.imul(B,V)|0)+Math.imul(x,W)|0,i=i+Math.imul(x,V)|0,n=n+Math.imul(O,J)|0,o=(o=o+Math.imul(O,Q)|0)+Math.imul(M,J)|0,i=i+Math.imul(M,Q)|0,n=n+Math.imul(P,X)|0,o=(o=o+Math.imul(P,ee)|0)+Math.imul(R,X)|0,i=i+Math.imul(R,ee)|0,n=n+Math.imul(S,re)|0,o=(o=o+Math.imul(S,ne)|0)+Math.imul(E,re)|0,i=i+Math.imul(E,ne)|0,n=n+Math.imul(I,ie)|0,o=(o=o+Math.imul(I,se)|0)+Math.imul(k,ie)|0,i=i+Math.imul(k,se)|0,n=n+Math.imul(_,ce)|0,o=(o=o+Math.imul(_,ue)|0)+Math.imul(v,ce)|0,i=i+Math.imul(v,ue)|0,n=n+Math.imul(g,de)|0,o=(o=o+Math.imul(g,he)|0)+Math.imul(b,de)|0,i=i+Math.imul(b,he)|0;var Se=(u+(n=n+Math.imul(p,pe)|0)|0)+((8191&(o=(o=o+Math.imul(p,me)|0)+Math.imul(m,pe)|0))<<13)|0;u=((i=i+Math.imul(m,me)|0)+(o>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(L,W),o=(o=Math.imul(L,V))+Math.imul(U,W)|0,i=Math.imul(U,V),n=n+Math.imul(B,J)|0,o=(o=o+Math.imul(B,Q)|0)+Math.imul(x,J)|0,i=i+Math.imul(x,Q)|0,n=n+Math.imul(O,X)|0,o=(o=o+Math.imul(O,ee)|0)+Math.imul(M,X)|0,i=i+Math.imul(M,ee)|0,n=n+Math.imul(P,re)|0,o=(o=o+Math.imul(P,ne)|0)+Math.imul(R,re)|0,i=i+Math.imul(R,ne)|0,n=n+Math.imul(S,ie)|0,o=(o=o+Math.imul(S,se)|0)+Math.imul(E,ie)|0,i=i+Math.imul(E,se)|0,n=n+Math.imul(I,ce)|0,o=(o=o+Math.imul(I,ue)|0)+Math.imul(k,ce)|0,i=i+Math.imul(k,ue)|0,n=n+Math.imul(_,de)|0,o=(o=o+Math.imul(_,he)|0)+Math.imul(v,de)|0,i=i+Math.imul(v,he)|0;var Ee=(u+(n=n+Math.imul(g,pe)|0)|0)+((8191&(o=(o=o+Math.imul(g,me)|0)+Math.imul(b,pe)|0))<<13)|0;u=((i=i+Math.imul(b,me)|0)+(o>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(L,J),o=(o=Math.imul(L,Q))+Math.imul(U,J)|0,i=Math.imul(U,Q),n=n+Math.imul(B,X)|0,o=(o=o+Math.imul(B,ee)|0)+Math.imul(x,X)|0,i=i+Math.imul(x,ee)|0,n=n+Math.imul(O,re)|0,o=(o=o+Math.imul(O,ne)|0)+Math.imul(M,re)|0,i=i+Math.imul(M,ne)|0,n=n+Math.imul(P,ie)|0,o=(o=o+Math.imul(P,se)|0)+Math.imul(R,ie)|0,i=i+Math.imul(R,se)|0,n=n+Math.imul(S,ce)|0,o=(o=o+Math.imul(S,ue)|0)+Math.imul(E,ce)|0,i=i+Math.imul(E,ue)|0,n=n+Math.imul(I,de)|0,o=(o=o+Math.imul(I,he)|0)+Math.imul(k,de)|0,i=i+Math.imul(k,he)|0;var Te=(u+(n=n+Math.imul(_,pe)|0)|0)+((8191&(o=(o=o+Math.imul(_,me)|0)+Math.imul(v,pe)|0))<<13)|0;u=((i=i+Math.imul(v,me)|0)+(o>>>13)|0)+(Te>>>26)|0,Te&=67108863,n=Math.imul(L,X),o=(o=Math.imul(L,ee))+Math.imul(U,X)|0,i=Math.imul(U,ee),n=n+Math.imul(B,re)|0,o=(o=o+Math.imul(B,ne)|0)+Math.imul(x,re)|0,i=i+Math.imul(x,ne)|0,n=n+Math.imul(O,ie)|0,o=(o=o+Math.imul(O,se)|0)+Math.imul(M,ie)|0,i=i+Math.imul(M,se)|0,n=n+Math.imul(P,ce)|0,o=(o=o+Math.imul(P,ue)|0)+Math.imul(R,ce)|0,i=i+Math.imul(R,ue)|0,n=n+Math.imul(S,de)|0,o=(o=o+Math.imul(S,he)|0)+Math.imul(E,de)|0,i=i+Math.imul(E,he)|0;var Pe=(u+(n=n+Math.imul(I,pe)|0)|0)+((8191&(o=(o=o+Math.imul(I,me)|0)+Math.imul(k,pe)|0))<<13)|0;u=((i=i+Math.imul(k,me)|0)+(o>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,n=Math.imul(L,re),o=(o=Math.imul(L,ne))+Math.imul(U,re)|0,i=Math.imul(U,ne),n=n+Math.imul(B,ie)|0,o=(o=o+Math.imul(B,se)|0)+Math.imul(x,ie)|0,i=i+Math.imul(x,se)|0,n=n+Math.imul(O,ce)|0,o=(o=o+Math.imul(O,ue)|0)+Math.imul(M,ce)|0,i=i+Math.imul(M,ue)|0,n=n+Math.imul(P,de)|0,o=(o=o+Math.imul(P,he)|0)+Math.imul(R,de)|0,i=i+Math.imul(R,he)|0;var Re=(u+(n=n+Math.imul(S,pe)|0)|0)+((8191&(o=(o=o+Math.imul(S,me)|0)+Math.imul(E,pe)|0))<<13)|0;u=((i=i+Math.imul(E,me)|0)+(o>>>13)|0)+(Re>>>26)|0,Re&=67108863,n=Math.imul(L,ie),o=(o=Math.imul(L,se))+Math.imul(U,ie)|0,i=Math.imul(U,se),n=n+Math.imul(B,ce)|0,o=(o=o+Math.imul(B,ue)|0)+Math.imul(x,ce)|0,i=i+Math.imul(x,ue)|0,n=n+Math.imul(O,de)|0,o=(o=o+Math.imul(O,he)|0)+Math.imul(M,de)|0,i=i+Math.imul(M,he)|0;var Ce=(u+(n=n+Math.imul(P,pe)|0)|0)+((8191&(o=(o=o+Math.imul(P,me)|0)+Math.imul(R,pe)|0))<<13)|0;u=((i=i+Math.imul(R,me)|0)+(o>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,n=Math.imul(L,ce),o=(o=Math.imul(L,ue))+Math.imul(U,ce)|0,i=Math.imul(U,ue),n=n+Math.imul(B,de)|0,o=(o=o+Math.imul(B,he)|0)+Math.imul(x,de)|0,i=i+Math.imul(x,he)|0;var Oe=(u+(n=n+Math.imul(O,pe)|0)|0)+((8191&(o=(o=o+Math.imul(O,me)|0)+Math.imul(M,pe)|0))<<13)|0;u=((i=i+Math.imul(M,me)|0)+(o>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,n=Math.imul(L,de),o=(o=Math.imul(L,he))+Math.imul(U,de)|0,i=Math.imul(U,he);var Me=(u+(n=n+Math.imul(B,pe)|0)|0)+((8191&(o=(o=o+Math.imul(B,me)|0)+Math.imul(x,pe)|0))<<13)|0;u=((i=i+Math.imul(x,me)|0)+(o>>>13)|0)+(Me>>>26)|0,Me&=67108863;var Ne=(u+(n=Math.imul(L,pe))|0)+((8191&(o=(o=Math.imul(L,me))+Math.imul(U,pe)|0))<<13)|0;return u=((i=Math.imul(U,me))+(o>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,c[0]=ye,c[1]=ge,c[2]=be,c[3]=we,c[4]=_e,c[5]=ve,c[6]=$e,c[7]=Ie,c[8]=ke,c[9]=Ae,c[10]=Se,c[11]=Ee,c[12]=Te,c[13]=Pe,c[14]=Re,c[15]=Ce,c[16]=Oe,c[17]=Me,c[18]=Ne,0!==u&&(c[19]=u,r.length++),r};function p(e,t,r){return(new m).mulp(e,t,r)}function m(e,t){this.x=e,this.y=t}Math.imul||(f=h),o.prototype.mulTo=function(e,t){var r,n=this.length+e.length;return r=10===this.length&&10===e.length?f(this,e,t):n<63?h(this,e,t):n<1024?function(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var n=0,o=0,i=0;i>>26)|0)>>>26,s&=67108863}r.words[i]=a,n=s,s=o}return 0!==n?r.words[i]=n:r.length--,r.strip()}(this,e,t):p(this,e,t),r},m.prototype.makeRBT=function(e){for(var t=new Array(e),r=o.prototype._countBits(e)-1,n=0;n>=1;return n},m.prototype.permute=function(e,t,r,n,o,i){for(var s=0;s>>=1)o++;return 1<>>=13,n[2*s+1]=8191&i,i>>>=13;for(s=2*t;s>=26,t+=o/67108864|0,t+=i>>>26,this.words[n]=67108863&i}return 0!==t&&(this.words[n]=t,this.length++),this},o.prototype.muln=function(e){return this.clone().imuln(e)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r>>o}return t}(e);if(0===t.length)return new o(1);for(var r=this,n=0;n=0);var t,n=e%26,o=(e-n)/26,i=67108863>>>26-n<<26-n;if(0!==n){var s=0;for(t=0;t>>26-n}s&&(this.words[t]=s,this.length++)}if(0!==o){for(t=this.length-1;t>=0;t--)this.words[t+o]=this.words[t];for(t=0;t=0),o=t?(t-t%26)/26:0;var i=e%26,s=Math.min((e-i)/26,this.length),a=67108863^67108863>>>i<s)for(this.length-=s,u=0;u=0&&(0!==l||u>=o);u--){var d=0|this.words[u];this.words[u]=l<<26-i|d>>>i,l=d&a}return c&&0!==l&&(c.words[c.length++]=l),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(e,t,n){return r(0===this.negative),this.iushrn(e,t,n)},o.prototype.shln=function(e){return this.clone().ishln(e)},o.prototype.ushln=function(e){return this.clone().iushln(e)},o.prototype.shrn=function(e){return this.clone().ishrn(e)},o.prototype.ushrn=function(e){return this.clone().iushrn(e)},o.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26,o=1<=0);var t=e%26,n=(e-t)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==t&&n++,this.length=Math.min(n,this.length),0!==t){var o=67108863^67108863>>>t<=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},o.prototype.isubn=function(e){if(r("number"==typeof e),r(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t>26)-(c/67108864|0),this.words[o+n]=67108863&i}for(;o>26,this.words[o+n]=67108863&i;if(0===a)return this.strip();for(r(-1===a),a=0,o=0;o>26,this.words[o]=67108863&i;return this.negative=1,this.strip()},o.prototype._wordDiv=function(e,t){var r=(this.length,e.length),n=this.clone(),i=e,s=0|i.words[i.length-1];0!=(r=26-this._countBits(s))&&(i=i.ushln(r),n.iushln(r),s=0|i.words[i.length-1]);var a,c=n.length-i.length;if("mod"!==t){(a=new o(null)).length=c+1,a.words=new Array(a.length);for(var u=0;u=0;d--){var h=67108864*(0|n.words[i.length+d])+(0|n.words[i.length+d-1]);for(h=Math.min(h/s|0,67108863),n._ishlnsubmul(i,h,d);0!==n.negative;)h--,n.negative=0,n._ishlnsubmul(i,1,d),n.isZero()||(n.negative^=1);a&&(a.words[d]=h)}return a&&a.strip(),n.strip(),"div"!==t&&0!==r&&n.iushrn(r),{div:a||null,mod:n}},o.prototype.divmod=function(e,t,n){return r(!e.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===e.negative?(a=this.neg().divmod(e,t),"mod"!==t&&(i=a.div.neg()),"div"!==t&&(s=a.mod.neg(),n&&0!==s.negative&&s.iadd(e)),{div:i,mod:s}):0===this.negative&&0!==e.negative?(a=this.divmod(e.neg(),t),"mod"!==t&&(i=a.div.neg()),{div:i,mod:a.mod}):this.negative&e.negative?(a=this.neg().divmod(e.neg(),t),"div"!==t&&(s=a.mod.neg(),n&&0!==s.negative&&s.isub(e)),{div:a.div,mod:s}):e.length>this.length||this.cmp(e)<0?{div:new o(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new o(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new o(this.modn(e.words[0]))}:this._wordDiv(e,t);var i,s,a},o.prototype.div=function(e){return this.divmod(e,"div",!1).div},o.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},o.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},o.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,n=e.ushrn(1),o=e.andln(1),i=r.cmp(n);return i<0||1===o&&0===i?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},o.prototype.modn=function(e){r(e<=67108863);for(var t=(1<<26)%e,n=0,o=this.length-1;o>=0;o--)n=(t*n+(0|this.words[o]))%e;return n},o.prototype.idivn=function(e){r(e<=67108863);for(var t=0,n=this.length-1;n>=0;n--){var o=(0|this.words[n])+67108864*t;this.words[n]=o/e|0,t=o%e}return this.strip()},o.prototype.divn=function(e){return this.clone().idivn(e)},o.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i=new o(1),s=new o(0),a=new o(0),c=new o(1),u=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++u;for(var l=n.clone(),d=t.clone();!t.isZero();){for(var h=0,f=1;!(t.words[0]&f)&&h<26;++h,f<<=1);if(h>0)for(t.iushrn(h);h-- >0;)(i.isOdd()||s.isOdd())&&(i.iadd(l),s.isub(d)),i.iushrn(1),s.iushrn(1);for(var p=0,m=1;!(n.words[0]&m)&&p<26;++p,m<<=1);if(p>0)for(n.iushrn(p);p-- >0;)(a.isOdd()||c.isOdd())&&(a.iadd(l),c.isub(d)),a.iushrn(1),c.iushrn(1);t.cmp(n)>=0?(t.isub(n),i.isub(a),s.isub(c)):(n.isub(t),a.isub(i),c.isub(s))}return{a:a,b:c,gcd:n.iushln(u)}},o.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i,s=new o(1),a=new o(0),c=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var u=0,l=1;!(t.words[0]&l)&&u<26;++u,l<<=1);if(u>0)for(t.iushrn(u);u-- >0;)s.isOdd()&&s.iadd(c),s.iushrn(1);for(var d=0,h=1;!(n.words[0]&h)&&d<26;++d,h<<=1);if(d>0)for(n.iushrn(d);d-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);t.cmp(n)>=0?(t.isub(n),s.isub(a)):(n.isub(t),a.isub(s))}return(i=0===t.cmpn(1)?s:a).cmpn(0)<0&&i.iadd(e),i},o.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var n=0;t.isEven()&&r.isEven();n++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var o=t.cmp(r);if(o<0){var i=t;t=r,r=i}else if(0===o||0===r.cmpn(1))break;t.isub(r)}return r.iushln(n)},o.prototype.invm=function(e){return this.egcd(e).a.umod(e)},o.prototype.isEven=function(){return!(1&this.words[0])},o.prototype.isOdd=function(){return!(1&~this.words[0])},o.prototype.andln=function(e){return this.words[0]&e},o.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,n=(e-t)/26,o=1<>>26,a&=67108863,this.words[s]=a}return 0!==i&&(this.words[s]=i,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this.strip(),this.length>1)t=1;else{n&&(e=-e),r(e<=67108863,"Number is too big");var o=0|this.words[0];t=o===e?0:oe.length)return 1;if(this.length=0;r--){var n=0|this.words[r],o=0|e.words[r];if(n!==o){no&&(t=1);break}}return t},o.prototype.gtn=function(e){return 1===this.cmpn(e)},o.prototype.gt=function(e){return 1===this.cmp(e)},o.prototype.gten=function(e){return this.cmpn(e)>=0},o.prototype.gte=function(e){return this.cmp(e)>=0},o.prototype.ltn=function(e){return-1===this.cmpn(e)},o.prototype.lt=function(e){return-1===this.cmp(e)},o.prototype.lten=function(e){return this.cmpn(e)<=0},o.prototype.lte=function(e){return this.cmp(e)<=0},o.prototype.eqn=function(e){return 0===this.cmpn(e)},o.prototype.eq=function(e){return 0===this.cmp(e)},o.red=function(e){return new $(e)},o.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},o.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(e){return this.red=e,this},o.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},o.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},o.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},o.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},o.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},o.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},o.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},o.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},o.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var y={k256:null,p224:null,p192:null,p25519:null};function g(e,t){this.name=e,this.p=new o(t,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function b(){g.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function w(){g.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){g.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function v(){g.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function $(e){if("string"==typeof e){var t=o._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function I(e){$.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}g.prototype._tmp=function(){var e=new o(null);return e.words=new Array(Math.ceil(this.n/13)),e},g.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var n=t0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},g.prototype.split=function(e,t){e.iushrn(this.n,0,t)},g.prototype.imulK=function(e){return e.imul(this.k)},n(b,g),b.prototype.split=function(e,t){for(var r=4194303,n=Math.min(e.length,9),o=0;o>>22,i=s}i>>>=22,e.words[o-10]=i,0===i&&e.length>10?e.length-=10:e.length-=9},b.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r>>=26,e.words[r]=o,t=n}return 0!==t&&(e.words[e.length++]=t),e},o._prime=function(e){if(y[e])return y[e];var t;if("k256"===e)t=new b;else if("p224"===e)t=new w;else if("p192"===e)t=new _;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new v}return y[e]=t,t},$.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},$.prototype._verify2=function(e,t){r(!(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},$.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},$.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},$.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},$.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},$.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},$.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},$.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},$.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},$.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},$.prototype.isqr=function(e){return this.imul(e,e.clone())},$.prototype.sqr=function(e){return this.mul(e,e)},$.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var n=this.m.add(new o(1)).iushrn(2);return this.pow(e,n)}for(var i=this.m.subn(1),s=0;!i.isZero()&&0===i.andln(1);)s++,i.iushrn(1);r(!i.isZero());var a=new o(1).toRed(this),c=a.redNeg(),u=this.m.subn(1).iushrn(1),l=this.m.bitLength();for(l=new o(2*l*l).toRed(this);0!==this.pow(l,u).cmp(c);)l.redIAdd(c);for(var d=this.pow(l,i),h=this.pow(e,i.addn(1).iushrn(1)),f=this.pow(e,i),p=s;0!==f.cmp(a);){for(var m=f,y=0;0!==m.cmp(a);y++)m=m.redSqr();r(y=0;n--){for(var u=t.words[n],l=c-1;l>=0;l--){var d=u>>l&1;i!==r[0]&&(i=this.sqr(i)),0!==d||0!==s?(s<<=1,s|=d,(4==++a||0===n&&0===l)&&(i=this.mul(i,r[s]),a=0,s=0)):a=0}c=26}return i},$.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},$.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},o.mont=function(e){return new I(e)},n(I,$),I.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},I.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},I.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=r.isub(n).iushrn(this.shift),i=o;return o.cmp(this.m)>=0?i=o.isub(this.m):o.cmpn(0)<0&&(i=o.iadd(this.m)),i._forceRed(this)},I.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new o(0)._forceRed(this);var r=e.mul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),s=i;return i.cmp(this.m)>=0?s=i.isub(this.m):i.cmpn(0)<0&&(s=i.iadd(this.m)),s._forceRed(this)},I.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(bn$9,commonjsGlobal)),bn$9.exports}bn$9.exports;var bn$8={exports:{}},hasRequiredBn$3;function requireBn$3(){return hasRequiredBn$3||(hasRequiredBn$3=1,function(e,t){function r(e,t){if(!e)throw new Error(t||"Assertion failed")}function n(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}function o(e,t,r){if(o.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(r=t,t=10),this._init(e||0,t||10,r||"be"))}var i;"object"==typeof e?e.exports=o:t.BN=o,o.BN=o,o.wordSize=26;try{i="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:require$$2$1.Buffer}catch(k){}function s(e,t){var r=e.charCodeAt(t);return r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:r-48&15}function a(e,t,r){var n=s(e,r);return r-1>=t&&(n|=s(e,r-1)<<4),n}function c(e,t,r,n){for(var o=0,i=Math.min(e.length,r),s=t;s=49?a-49+10:a>=17?a-17+10:a}return o}o.isBN=function(e){return e instanceof o||null!==e&&"object"==typeof e&&e.constructor.wordSize===o.wordSize&&Array.isArray(e.words)},o.max=function(e,t){return e.cmp(t)>0?e:t},o.min=function(e,t){return e.cmp(t)<0?e:t},o.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),r(t===(0|t)&&t>=2&&t<=36);var o=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(o++,this.negative=1),o=0;o-=3)s=e[o]|e[o-1]<<8|e[o-2]<<16,this.words[i]|=s<>>26-a&67108863,(a+=24)>=26&&(a-=26,i++);else if("le"===n)for(o=0,i=0;o>>26-a&67108863,(a+=24)>=26&&(a-=26,i++);return this.strip()},o.prototype._parseHex=function(e,t,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var n=0;n=t;n-=2)o=a(e,t,n)<=18?(i-=18,s+=1,this.words[s]|=o>>>26):i+=8;else for(n=(e.length-t)%2==0?t+1:t;n=18?(i-=18,s+=1,this.words[s]|=o>>>26):i+=8;this.strip()},o.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var n=0,o=1;o<=67108863;o*=t)n++;n--,o=o/t|0;for(var i=e.length-r,s=i%n,a=Math.min(i,i-s)+r,u=0,l=r;l1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?""};var u=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],l=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],d=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function h(e,t,r){r.negative=t.negative^e.negative;var n=e.length+t.length|0;r.length=n,n=n-1|0;var o=0|e.words[0],i=0|t.words[0],s=o*i,a=67108863&s,c=s/67108864|0;r.words[0]=a;for(var u=1;u>>26,d=67108863&c,h=Math.min(u,t.length-1),f=Math.max(0,u-e.length+1);f<=h;f++){var p=u-f|0;l+=(s=(o=0|e.words[p])*(i=0|t.words[f])+d)/67108864|0,d=67108863&s}r.words[u]=0|d,c=0|l}return 0!==c?r.words[u]=0|c:r.length--,r.strip()}o.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var o=0,i=0,s=0;s>>24-o&16777215,(o+=2)>=26&&(o-=26,s--),n=0!==i||s!==this.length-1?u[6-c.length]+c+n:c+n}for(0!==i&&(n=i.toString(16)+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var h=l[e],f=d[e];n="";var p=this.clone();for(p.negative=0;!p.isZero();){var m=p.modn(f).toString(e);n=(p=p.idivn(f)).isZero()?m+n:u[h-m.length]+m+n}for(this.isZero()&&(n="0"+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(e,t){return r(void 0!==i),this.toArrayLike(i,e,t)},o.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},o.prototype.toArrayLike=function(e,t,n){var o=this.byteLength(),i=n||Math.max(1,o);r(o<=i,"byte array longer than desired length"),r(i>0,"Requested array length <= 0"),this.strip();var s,a,c="le"===t,u=new e(i),l=this.clone();if(c){for(a=0;!l.isZero();a++)s=l.andln(255),l.iushrn(8),u[a]=s;for(;a=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},o.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 8191&t||(r+=13,t>>>=13),127&t||(r+=7,t>>>=7),15&t||(r+=4,t>>>=4),3&t||(r+=2,t>>>=2),1&t||r++,r},o.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},o.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},o.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;re.length?this.clone().iand(e):e.clone().iand(this)},o.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},o.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var n=0;ne.length?this.clone().ixor(e):e.clone().ixor(this)},o.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},o.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var o=0;o0&&(this.words[o]=~this.words[o]&67108863>>26-n),this.strip()},o.prototype.notn=function(e){return this.clone().inotn(e)},o.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var n=e/26|0,o=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<e.length?(r=this,n=e):(r=e,n=this);for(var o=0,i=0;i>>26;for(;0!==o&&i>>26;if(this.length=r.length,0!==o)this.words[this.length]=o,this.length++;else if(r!==this)for(;ie.length?this.clone().iadd(e):e.clone().iadd(this)},o.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,n,o=this.cmp(e);if(0===o)return this.negative=0,this.length=1,this.words[0]=0,this;o>0?(r=this,n=e):(r=e,n=this);for(var i=0,s=0;s>26,this.words[s]=67108863&t;for(;0!==i&&s>26,this.words[s]=67108863&t;if(0===i&&s>>13,f=0|s[1],p=8191&f,m=f>>>13,y=0|s[2],g=8191&y,b=y>>>13,w=0|s[3],_=8191&w,v=w>>>13,$=0|s[4],I=8191&$,k=$>>>13,A=0|s[5],S=8191&A,E=A>>>13,T=0|s[6],P=8191&T,R=T>>>13,C=0|s[7],O=8191&C,M=C>>>13,N=0|s[8],B=8191&N,x=N>>>13,D=0|s[9],L=8191&D,U=D>>>13,F=0|a[0],j=8191&F,q=F>>>13,K=0|a[1],z=8191&K,H=K>>>13,G=0|a[2],W=8191&G,V=G>>>13,Y=0|a[3],J=8191&Y,Q=Y>>>13,Z=0|a[4],X=8191&Z,ee=Z>>>13,te=0|a[5],re=8191&te,ne=te>>>13,oe=0|a[6],ie=8191&oe,se=oe>>>13,ae=0|a[7],ce=8191&ae,ue=ae>>>13,le=0|a[8],de=8191&le,he=le>>>13,fe=0|a[9],pe=8191&fe,me=fe>>>13;r.negative=e.negative^t.negative,r.length=19;var ye=(u+(n=Math.imul(d,j))|0)+((8191&(o=(o=Math.imul(d,q))+Math.imul(h,j)|0))<<13)|0;u=((i=Math.imul(h,q))+(o>>>13)|0)+(ye>>>26)|0,ye&=67108863,n=Math.imul(p,j),o=(o=Math.imul(p,q))+Math.imul(m,j)|0,i=Math.imul(m,q);var ge=(u+(n=n+Math.imul(d,z)|0)|0)+((8191&(o=(o=o+Math.imul(d,H)|0)+Math.imul(h,z)|0))<<13)|0;u=((i=i+Math.imul(h,H)|0)+(o>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(g,j),o=(o=Math.imul(g,q))+Math.imul(b,j)|0,i=Math.imul(b,q),n=n+Math.imul(p,z)|0,o=(o=o+Math.imul(p,H)|0)+Math.imul(m,z)|0,i=i+Math.imul(m,H)|0;var be=(u+(n=n+Math.imul(d,W)|0)|0)+((8191&(o=(o=o+Math.imul(d,V)|0)+Math.imul(h,W)|0))<<13)|0;u=((i=i+Math.imul(h,V)|0)+(o>>>13)|0)+(be>>>26)|0,be&=67108863,n=Math.imul(_,j),o=(o=Math.imul(_,q))+Math.imul(v,j)|0,i=Math.imul(v,q),n=n+Math.imul(g,z)|0,o=(o=o+Math.imul(g,H)|0)+Math.imul(b,z)|0,i=i+Math.imul(b,H)|0,n=n+Math.imul(p,W)|0,o=(o=o+Math.imul(p,V)|0)+Math.imul(m,W)|0,i=i+Math.imul(m,V)|0;var we=(u+(n=n+Math.imul(d,J)|0)|0)+((8191&(o=(o=o+Math.imul(d,Q)|0)+Math.imul(h,J)|0))<<13)|0;u=((i=i+Math.imul(h,Q)|0)+(o>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(I,j),o=(o=Math.imul(I,q))+Math.imul(k,j)|0,i=Math.imul(k,q),n=n+Math.imul(_,z)|0,o=(o=o+Math.imul(_,H)|0)+Math.imul(v,z)|0,i=i+Math.imul(v,H)|0,n=n+Math.imul(g,W)|0,o=(o=o+Math.imul(g,V)|0)+Math.imul(b,W)|0,i=i+Math.imul(b,V)|0,n=n+Math.imul(p,J)|0,o=(o=o+Math.imul(p,Q)|0)+Math.imul(m,J)|0,i=i+Math.imul(m,Q)|0;var _e=(u+(n=n+Math.imul(d,X)|0)|0)+((8191&(o=(o=o+Math.imul(d,ee)|0)+Math.imul(h,X)|0))<<13)|0;u=((i=i+Math.imul(h,ee)|0)+(o>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(S,j),o=(o=Math.imul(S,q))+Math.imul(E,j)|0,i=Math.imul(E,q),n=n+Math.imul(I,z)|0,o=(o=o+Math.imul(I,H)|0)+Math.imul(k,z)|0,i=i+Math.imul(k,H)|0,n=n+Math.imul(_,W)|0,o=(o=o+Math.imul(_,V)|0)+Math.imul(v,W)|0,i=i+Math.imul(v,V)|0,n=n+Math.imul(g,J)|0,o=(o=o+Math.imul(g,Q)|0)+Math.imul(b,J)|0,i=i+Math.imul(b,Q)|0,n=n+Math.imul(p,X)|0,o=(o=o+Math.imul(p,ee)|0)+Math.imul(m,X)|0,i=i+Math.imul(m,ee)|0;var ve=(u+(n=n+Math.imul(d,re)|0)|0)+((8191&(o=(o=o+Math.imul(d,ne)|0)+Math.imul(h,re)|0))<<13)|0;u=((i=i+Math.imul(h,ne)|0)+(o>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(P,j),o=(o=Math.imul(P,q))+Math.imul(R,j)|0,i=Math.imul(R,q),n=n+Math.imul(S,z)|0,o=(o=o+Math.imul(S,H)|0)+Math.imul(E,z)|0,i=i+Math.imul(E,H)|0,n=n+Math.imul(I,W)|0,o=(o=o+Math.imul(I,V)|0)+Math.imul(k,W)|0,i=i+Math.imul(k,V)|0,n=n+Math.imul(_,J)|0,o=(o=o+Math.imul(_,Q)|0)+Math.imul(v,J)|0,i=i+Math.imul(v,Q)|0,n=n+Math.imul(g,X)|0,o=(o=o+Math.imul(g,ee)|0)+Math.imul(b,X)|0,i=i+Math.imul(b,ee)|0,n=n+Math.imul(p,re)|0,o=(o=o+Math.imul(p,ne)|0)+Math.imul(m,re)|0,i=i+Math.imul(m,ne)|0;var $e=(u+(n=n+Math.imul(d,ie)|0)|0)+((8191&(o=(o=o+Math.imul(d,se)|0)+Math.imul(h,ie)|0))<<13)|0;u=((i=i+Math.imul(h,se)|0)+(o>>>13)|0)+($e>>>26)|0,$e&=67108863,n=Math.imul(O,j),o=(o=Math.imul(O,q))+Math.imul(M,j)|0,i=Math.imul(M,q),n=n+Math.imul(P,z)|0,o=(o=o+Math.imul(P,H)|0)+Math.imul(R,z)|0,i=i+Math.imul(R,H)|0,n=n+Math.imul(S,W)|0,o=(o=o+Math.imul(S,V)|0)+Math.imul(E,W)|0,i=i+Math.imul(E,V)|0,n=n+Math.imul(I,J)|0,o=(o=o+Math.imul(I,Q)|0)+Math.imul(k,J)|0,i=i+Math.imul(k,Q)|0,n=n+Math.imul(_,X)|0,o=(o=o+Math.imul(_,ee)|0)+Math.imul(v,X)|0,i=i+Math.imul(v,ee)|0,n=n+Math.imul(g,re)|0,o=(o=o+Math.imul(g,ne)|0)+Math.imul(b,re)|0,i=i+Math.imul(b,ne)|0,n=n+Math.imul(p,ie)|0,o=(o=o+Math.imul(p,se)|0)+Math.imul(m,ie)|0,i=i+Math.imul(m,se)|0;var Ie=(u+(n=n+Math.imul(d,ce)|0)|0)+((8191&(o=(o=o+Math.imul(d,ue)|0)+Math.imul(h,ce)|0))<<13)|0;u=((i=i+Math.imul(h,ue)|0)+(o>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,n=Math.imul(B,j),o=(o=Math.imul(B,q))+Math.imul(x,j)|0,i=Math.imul(x,q),n=n+Math.imul(O,z)|0,o=(o=o+Math.imul(O,H)|0)+Math.imul(M,z)|0,i=i+Math.imul(M,H)|0,n=n+Math.imul(P,W)|0,o=(o=o+Math.imul(P,V)|0)+Math.imul(R,W)|0,i=i+Math.imul(R,V)|0,n=n+Math.imul(S,J)|0,o=(o=o+Math.imul(S,Q)|0)+Math.imul(E,J)|0,i=i+Math.imul(E,Q)|0,n=n+Math.imul(I,X)|0,o=(o=o+Math.imul(I,ee)|0)+Math.imul(k,X)|0,i=i+Math.imul(k,ee)|0,n=n+Math.imul(_,re)|0,o=(o=o+Math.imul(_,ne)|0)+Math.imul(v,re)|0,i=i+Math.imul(v,ne)|0,n=n+Math.imul(g,ie)|0,o=(o=o+Math.imul(g,se)|0)+Math.imul(b,ie)|0,i=i+Math.imul(b,se)|0,n=n+Math.imul(p,ce)|0,o=(o=o+Math.imul(p,ue)|0)+Math.imul(m,ce)|0,i=i+Math.imul(m,ue)|0;var ke=(u+(n=n+Math.imul(d,de)|0)|0)+((8191&(o=(o=o+Math.imul(d,he)|0)+Math.imul(h,de)|0))<<13)|0;u=((i=i+Math.imul(h,he)|0)+(o>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(L,j),o=(o=Math.imul(L,q))+Math.imul(U,j)|0,i=Math.imul(U,q),n=n+Math.imul(B,z)|0,o=(o=o+Math.imul(B,H)|0)+Math.imul(x,z)|0,i=i+Math.imul(x,H)|0,n=n+Math.imul(O,W)|0,o=(o=o+Math.imul(O,V)|0)+Math.imul(M,W)|0,i=i+Math.imul(M,V)|0,n=n+Math.imul(P,J)|0,o=(o=o+Math.imul(P,Q)|0)+Math.imul(R,J)|0,i=i+Math.imul(R,Q)|0,n=n+Math.imul(S,X)|0,o=(o=o+Math.imul(S,ee)|0)+Math.imul(E,X)|0,i=i+Math.imul(E,ee)|0,n=n+Math.imul(I,re)|0,o=(o=o+Math.imul(I,ne)|0)+Math.imul(k,re)|0,i=i+Math.imul(k,ne)|0,n=n+Math.imul(_,ie)|0,o=(o=o+Math.imul(_,se)|0)+Math.imul(v,ie)|0,i=i+Math.imul(v,se)|0,n=n+Math.imul(g,ce)|0,o=(o=o+Math.imul(g,ue)|0)+Math.imul(b,ce)|0,i=i+Math.imul(b,ue)|0,n=n+Math.imul(p,de)|0,o=(o=o+Math.imul(p,he)|0)+Math.imul(m,de)|0,i=i+Math.imul(m,he)|0;var Ae=(u+(n=n+Math.imul(d,pe)|0)|0)+((8191&(o=(o=o+Math.imul(d,me)|0)+Math.imul(h,pe)|0))<<13)|0;u=((i=i+Math.imul(h,me)|0)+(o>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(L,z),o=(o=Math.imul(L,H))+Math.imul(U,z)|0,i=Math.imul(U,H),n=n+Math.imul(B,W)|0,o=(o=o+Math.imul(B,V)|0)+Math.imul(x,W)|0,i=i+Math.imul(x,V)|0,n=n+Math.imul(O,J)|0,o=(o=o+Math.imul(O,Q)|0)+Math.imul(M,J)|0,i=i+Math.imul(M,Q)|0,n=n+Math.imul(P,X)|0,o=(o=o+Math.imul(P,ee)|0)+Math.imul(R,X)|0,i=i+Math.imul(R,ee)|0,n=n+Math.imul(S,re)|0,o=(o=o+Math.imul(S,ne)|0)+Math.imul(E,re)|0,i=i+Math.imul(E,ne)|0,n=n+Math.imul(I,ie)|0,o=(o=o+Math.imul(I,se)|0)+Math.imul(k,ie)|0,i=i+Math.imul(k,se)|0,n=n+Math.imul(_,ce)|0,o=(o=o+Math.imul(_,ue)|0)+Math.imul(v,ce)|0,i=i+Math.imul(v,ue)|0,n=n+Math.imul(g,de)|0,o=(o=o+Math.imul(g,he)|0)+Math.imul(b,de)|0,i=i+Math.imul(b,he)|0;var Se=(u+(n=n+Math.imul(p,pe)|0)|0)+((8191&(o=(o=o+Math.imul(p,me)|0)+Math.imul(m,pe)|0))<<13)|0;u=((i=i+Math.imul(m,me)|0)+(o>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(L,W),o=(o=Math.imul(L,V))+Math.imul(U,W)|0,i=Math.imul(U,V),n=n+Math.imul(B,J)|0,o=(o=o+Math.imul(B,Q)|0)+Math.imul(x,J)|0,i=i+Math.imul(x,Q)|0,n=n+Math.imul(O,X)|0,o=(o=o+Math.imul(O,ee)|0)+Math.imul(M,X)|0,i=i+Math.imul(M,ee)|0,n=n+Math.imul(P,re)|0,o=(o=o+Math.imul(P,ne)|0)+Math.imul(R,re)|0,i=i+Math.imul(R,ne)|0,n=n+Math.imul(S,ie)|0,o=(o=o+Math.imul(S,se)|0)+Math.imul(E,ie)|0,i=i+Math.imul(E,se)|0,n=n+Math.imul(I,ce)|0,o=(o=o+Math.imul(I,ue)|0)+Math.imul(k,ce)|0,i=i+Math.imul(k,ue)|0,n=n+Math.imul(_,de)|0,o=(o=o+Math.imul(_,he)|0)+Math.imul(v,de)|0,i=i+Math.imul(v,he)|0;var Ee=(u+(n=n+Math.imul(g,pe)|0)|0)+((8191&(o=(o=o+Math.imul(g,me)|0)+Math.imul(b,pe)|0))<<13)|0;u=((i=i+Math.imul(b,me)|0)+(o>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(L,J),o=(o=Math.imul(L,Q))+Math.imul(U,J)|0,i=Math.imul(U,Q),n=n+Math.imul(B,X)|0,o=(o=o+Math.imul(B,ee)|0)+Math.imul(x,X)|0,i=i+Math.imul(x,ee)|0,n=n+Math.imul(O,re)|0,o=(o=o+Math.imul(O,ne)|0)+Math.imul(M,re)|0,i=i+Math.imul(M,ne)|0,n=n+Math.imul(P,ie)|0,o=(o=o+Math.imul(P,se)|0)+Math.imul(R,ie)|0,i=i+Math.imul(R,se)|0,n=n+Math.imul(S,ce)|0,o=(o=o+Math.imul(S,ue)|0)+Math.imul(E,ce)|0,i=i+Math.imul(E,ue)|0,n=n+Math.imul(I,de)|0,o=(o=o+Math.imul(I,he)|0)+Math.imul(k,de)|0,i=i+Math.imul(k,he)|0;var Te=(u+(n=n+Math.imul(_,pe)|0)|0)+((8191&(o=(o=o+Math.imul(_,me)|0)+Math.imul(v,pe)|0))<<13)|0;u=((i=i+Math.imul(v,me)|0)+(o>>>13)|0)+(Te>>>26)|0,Te&=67108863,n=Math.imul(L,X),o=(o=Math.imul(L,ee))+Math.imul(U,X)|0,i=Math.imul(U,ee),n=n+Math.imul(B,re)|0,o=(o=o+Math.imul(B,ne)|0)+Math.imul(x,re)|0,i=i+Math.imul(x,ne)|0,n=n+Math.imul(O,ie)|0,o=(o=o+Math.imul(O,se)|0)+Math.imul(M,ie)|0,i=i+Math.imul(M,se)|0,n=n+Math.imul(P,ce)|0,o=(o=o+Math.imul(P,ue)|0)+Math.imul(R,ce)|0,i=i+Math.imul(R,ue)|0,n=n+Math.imul(S,de)|0,o=(o=o+Math.imul(S,he)|0)+Math.imul(E,de)|0,i=i+Math.imul(E,he)|0;var Pe=(u+(n=n+Math.imul(I,pe)|0)|0)+((8191&(o=(o=o+Math.imul(I,me)|0)+Math.imul(k,pe)|0))<<13)|0;u=((i=i+Math.imul(k,me)|0)+(o>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,n=Math.imul(L,re),o=(o=Math.imul(L,ne))+Math.imul(U,re)|0,i=Math.imul(U,ne),n=n+Math.imul(B,ie)|0,o=(o=o+Math.imul(B,se)|0)+Math.imul(x,ie)|0,i=i+Math.imul(x,se)|0,n=n+Math.imul(O,ce)|0,o=(o=o+Math.imul(O,ue)|0)+Math.imul(M,ce)|0,i=i+Math.imul(M,ue)|0,n=n+Math.imul(P,de)|0,o=(o=o+Math.imul(P,he)|0)+Math.imul(R,de)|0,i=i+Math.imul(R,he)|0;var Re=(u+(n=n+Math.imul(S,pe)|0)|0)+((8191&(o=(o=o+Math.imul(S,me)|0)+Math.imul(E,pe)|0))<<13)|0;u=((i=i+Math.imul(E,me)|0)+(o>>>13)|0)+(Re>>>26)|0,Re&=67108863,n=Math.imul(L,ie),o=(o=Math.imul(L,se))+Math.imul(U,ie)|0,i=Math.imul(U,se),n=n+Math.imul(B,ce)|0,o=(o=o+Math.imul(B,ue)|0)+Math.imul(x,ce)|0,i=i+Math.imul(x,ue)|0,n=n+Math.imul(O,de)|0,o=(o=o+Math.imul(O,he)|0)+Math.imul(M,de)|0,i=i+Math.imul(M,he)|0;var Ce=(u+(n=n+Math.imul(P,pe)|0)|0)+((8191&(o=(o=o+Math.imul(P,me)|0)+Math.imul(R,pe)|0))<<13)|0;u=((i=i+Math.imul(R,me)|0)+(o>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,n=Math.imul(L,ce),o=(o=Math.imul(L,ue))+Math.imul(U,ce)|0,i=Math.imul(U,ue),n=n+Math.imul(B,de)|0,o=(o=o+Math.imul(B,he)|0)+Math.imul(x,de)|0,i=i+Math.imul(x,he)|0;var Oe=(u+(n=n+Math.imul(O,pe)|0)|0)+((8191&(o=(o=o+Math.imul(O,me)|0)+Math.imul(M,pe)|0))<<13)|0;u=((i=i+Math.imul(M,me)|0)+(o>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,n=Math.imul(L,de),o=(o=Math.imul(L,he))+Math.imul(U,de)|0,i=Math.imul(U,he);var Me=(u+(n=n+Math.imul(B,pe)|0)|0)+((8191&(o=(o=o+Math.imul(B,me)|0)+Math.imul(x,pe)|0))<<13)|0;u=((i=i+Math.imul(x,me)|0)+(o>>>13)|0)+(Me>>>26)|0,Me&=67108863;var Ne=(u+(n=Math.imul(L,pe))|0)+((8191&(o=(o=Math.imul(L,me))+Math.imul(U,pe)|0))<<13)|0;return u=((i=Math.imul(U,me))+(o>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,c[0]=ye,c[1]=ge,c[2]=be,c[3]=we,c[4]=_e,c[5]=ve,c[6]=$e,c[7]=Ie,c[8]=ke,c[9]=Ae,c[10]=Se,c[11]=Ee,c[12]=Te,c[13]=Pe,c[14]=Re,c[15]=Ce,c[16]=Oe,c[17]=Me,c[18]=Ne,0!==u&&(c[19]=u,r.length++),r};function p(e,t,r){return(new m).mulp(e,t,r)}function m(e,t){this.x=e,this.y=t}Math.imul||(f=h),o.prototype.mulTo=function(e,t){var r,n=this.length+e.length;return r=10===this.length&&10===e.length?f(this,e,t):n<63?h(this,e,t):n<1024?function(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var n=0,o=0,i=0;i>>26)|0)>>>26,s&=67108863}r.words[i]=a,n=s,s=o}return 0!==n?r.words[i]=n:r.length--,r.strip()}(this,e,t):p(this,e,t),r},m.prototype.makeRBT=function(e){for(var t=new Array(e),r=o.prototype._countBits(e)-1,n=0;n>=1;return n},m.prototype.permute=function(e,t,r,n,o,i){for(var s=0;s>>=1)o++;return 1<>>=13,n[2*s+1]=8191&i,i>>>=13;for(s=2*t;s>=26,t+=o/67108864|0,t+=i>>>26,this.words[n]=67108863&i}return 0!==t&&(this.words[n]=t,this.length++),this},o.prototype.muln=function(e){return this.clone().imuln(e)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r>>o}return t}(e);if(0===t.length)return new o(1);for(var r=this,n=0;n=0);var t,n=e%26,o=(e-n)/26,i=67108863>>>26-n<<26-n;if(0!==n){var s=0;for(t=0;t>>26-n}s&&(this.words[t]=s,this.length++)}if(0!==o){for(t=this.length-1;t>=0;t--)this.words[t+o]=this.words[t];for(t=0;t=0),o=t?(t-t%26)/26:0;var i=e%26,s=Math.min((e-i)/26,this.length),a=67108863^67108863>>>i<s)for(this.length-=s,u=0;u=0&&(0!==l||u>=o);u--){var d=0|this.words[u];this.words[u]=l<<26-i|d>>>i,l=d&a}return c&&0!==l&&(c.words[c.length++]=l),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(e,t,n){return r(0===this.negative),this.iushrn(e,t,n)},o.prototype.shln=function(e){return this.clone().ishln(e)},o.prototype.ushln=function(e){return this.clone().iushln(e)},o.prototype.shrn=function(e){return this.clone().ishrn(e)},o.prototype.ushrn=function(e){return this.clone().iushrn(e)},o.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26,o=1<=0);var t=e%26,n=(e-t)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==t&&n++,this.length=Math.min(n,this.length),0!==t){var o=67108863^67108863>>>t<=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},o.prototype.isubn=function(e){if(r("number"==typeof e),r(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t>26)-(c/67108864|0),this.words[o+n]=67108863&i}for(;o>26,this.words[o+n]=67108863&i;if(0===a)return this.strip();for(r(-1===a),a=0,o=0;o>26,this.words[o]=67108863&i;return this.negative=1,this.strip()},o.prototype._wordDiv=function(e,t){var r=(this.length,e.length),n=this.clone(),i=e,s=0|i.words[i.length-1];0!=(r=26-this._countBits(s))&&(i=i.ushln(r),n.iushln(r),s=0|i.words[i.length-1]);var a,c=n.length-i.length;if("mod"!==t){(a=new o(null)).length=c+1,a.words=new Array(a.length);for(var u=0;u=0;d--){var h=67108864*(0|n.words[i.length+d])+(0|n.words[i.length+d-1]);for(h=Math.min(h/s|0,67108863),n._ishlnsubmul(i,h,d);0!==n.negative;)h--,n.negative=0,n._ishlnsubmul(i,1,d),n.isZero()||(n.negative^=1);a&&(a.words[d]=h)}return a&&a.strip(),n.strip(),"div"!==t&&0!==r&&n.iushrn(r),{div:a||null,mod:n}},o.prototype.divmod=function(e,t,n){return r(!e.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===e.negative?(a=this.neg().divmod(e,t),"mod"!==t&&(i=a.div.neg()),"div"!==t&&(s=a.mod.neg(),n&&0!==s.negative&&s.iadd(e)),{div:i,mod:s}):0===this.negative&&0!==e.negative?(a=this.divmod(e.neg(),t),"mod"!==t&&(i=a.div.neg()),{div:i,mod:a.mod}):this.negative&e.negative?(a=this.neg().divmod(e.neg(),t),"div"!==t&&(s=a.mod.neg(),n&&0!==s.negative&&s.isub(e)),{div:a.div,mod:s}):e.length>this.length||this.cmp(e)<0?{div:new o(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new o(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new o(this.modn(e.words[0]))}:this._wordDiv(e,t);var i,s,a},o.prototype.div=function(e){return this.divmod(e,"div",!1).div},o.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},o.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},o.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,n=e.ushrn(1),o=e.andln(1),i=r.cmp(n);return i<0||1===o&&0===i?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},o.prototype.modn=function(e){r(e<=67108863);for(var t=(1<<26)%e,n=0,o=this.length-1;o>=0;o--)n=(t*n+(0|this.words[o]))%e;return n},o.prototype.idivn=function(e){r(e<=67108863);for(var t=0,n=this.length-1;n>=0;n--){var o=(0|this.words[n])+67108864*t;this.words[n]=o/e|0,t=o%e}return this.strip()},o.prototype.divn=function(e){return this.clone().idivn(e)},o.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i=new o(1),s=new o(0),a=new o(0),c=new o(1),u=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++u;for(var l=n.clone(),d=t.clone();!t.isZero();){for(var h=0,f=1;!(t.words[0]&f)&&h<26;++h,f<<=1);if(h>0)for(t.iushrn(h);h-- >0;)(i.isOdd()||s.isOdd())&&(i.iadd(l),s.isub(d)),i.iushrn(1),s.iushrn(1);for(var p=0,m=1;!(n.words[0]&m)&&p<26;++p,m<<=1);if(p>0)for(n.iushrn(p);p-- >0;)(a.isOdd()||c.isOdd())&&(a.iadd(l),c.isub(d)),a.iushrn(1),c.iushrn(1);t.cmp(n)>=0?(t.isub(n),i.isub(a),s.isub(c)):(n.isub(t),a.isub(i),c.isub(s))}return{a:a,b:c,gcd:n.iushln(u)}},o.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i,s=new o(1),a=new o(0),c=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var u=0,l=1;!(t.words[0]&l)&&u<26;++u,l<<=1);if(u>0)for(t.iushrn(u);u-- >0;)s.isOdd()&&s.iadd(c),s.iushrn(1);for(var d=0,h=1;!(n.words[0]&h)&&d<26;++d,h<<=1);if(d>0)for(n.iushrn(d);d-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);t.cmp(n)>=0?(t.isub(n),s.isub(a)):(n.isub(t),a.isub(s))}return(i=0===t.cmpn(1)?s:a).cmpn(0)<0&&i.iadd(e),i},o.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var n=0;t.isEven()&&r.isEven();n++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var o=t.cmp(r);if(o<0){var i=t;t=r,r=i}else if(0===o||0===r.cmpn(1))break;t.isub(r)}return r.iushln(n)},o.prototype.invm=function(e){return this.egcd(e).a.umod(e)},o.prototype.isEven=function(){return!(1&this.words[0])},o.prototype.isOdd=function(){return!(1&~this.words[0])},o.prototype.andln=function(e){return this.words[0]&e},o.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,n=(e-t)/26,o=1<>>26,a&=67108863,this.words[s]=a}return 0!==i&&(this.words[s]=i,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this.strip(),this.length>1)t=1;else{n&&(e=-e),r(e<=67108863,"Number is too big");var o=0|this.words[0];t=o===e?0:oe.length)return 1;if(this.length=0;r--){var n=0|this.words[r],o=0|e.words[r];if(n!==o){no&&(t=1);break}}return t},o.prototype.gtn=function(e){return 1===this.cmpn(e)},o.prototype.gt=function(e){return 1===this.cmp(e)},o.prototype.gten=function(e){return this.cmpn(e)>=0},o.prototype.gte=function(e){return this.cmp(e)>=0},o.prototype.ltn=function(e){return-1===this.cmpn(e)},o.prototype.lt=function(e){return-1===this.cmp(e)},o.prototype.lten=function(e){return this.cmpn(e)<=0},o.prototype.lte=function(e){return this.cmp(e)<=0},o.prototype.eqn=function(e){return 0===this.cmpn(e)},o.prototype.eq=function(e){return 0===this.cmp(e)},o.red=function(e){return new $(e)},o.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},o.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(e){return this.red=e,this},o.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},o.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},o.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},o.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},o.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},o.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},o.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},o.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},o.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var y={k256:null,p224:null,p192:null,p25519:null};function g(e,t){this.name=e,this.p=new o(t,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function b(){g.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function w(){g.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){g.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function v(){g.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function $(e){if("string"==typeof e){var t=o._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function I(e){$.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}g.prototype._tmp=function(){var e=new o(null);return e.words=new Array(Math.ceil(this.n/13)),e},g.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var n=t0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},g.prototype.split=function(e,t){e.iushrn(this.n,0,t)},g.prototype.imulK=function(e){return e.imul(this.k)},n(b,g),b.prototype.split=function(e,t){for(var r=4194303,n=Math.min(e.length,9),o=0;o>>22,i=s}i>>>=22,e.words[o-10]=i,0===i&&e.length>10?e.length-=10:e.length-=9},b.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r>>=26,e.words[r]=o,t=n}return 0!==t&&(e.words[e.length++]=t),e},o._prime=function(e){if(y[e])return y[e];var t;if("k256"===e)t=new b;else if("p224"===e)t=new w;else if("p192"===e)t=new _;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new v}return y[e]=t,t},$.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},$.prototype._verify2=function(e,t){r(!(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},$.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},$.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},$.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},$.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},$.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},$.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},$.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},$.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},$.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},$.prototype.isqr=function(e){return this.imul(e,e.clone())},$.prototype.sqr=function(e){return this.mul(e,e)},$.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var n=this.m.add(new o(1)).iushrn(2);return this.pow(e,n)}for(var i=this.m.subn(1),s=0;!i.isZero()&&0===i.andln(1);)s++,i.iushrn(1);r(!i.isZero());var a=new o(1).toRed(this),c=a.redNeg(),u=this.m.subn(1).iushrn(1),l=this.m.bitLength();for(l=new o(2*l*l).toRed(this);0!==this.pow(l,u).cmp(c);)l.redIAdd(c);for(var d=this.pow(l,i),h=this.pow(e,i.addn(1).iushrn(1)),f=this.pow(e,i),p=s;0!==f.cmp(a);){for(var m=f,y=0;0!==m.cmp(a);y++)m=m.redSqr();r(y=0;n--){for(var u=t.words[n],l=c-1;l>=0;l--){var d=u>>l&1;i!==r[0]&&(i=this.sqr(i)),0!==d||0!==s?(s<<=1,s|=d,(4==++a||0===n&&0===l)&&(i=this.mul(i,r[s]),a=0,s=0)):a=0}c=26}return i},$.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},$.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},o.mont=function(e){return new I(e)},n(I,$),I.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},I.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},I.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=r.isub(n).iushrn(this.shift),i=o;return o.cmp(this.m)>=0?i=o.isub(this.m):o.cmpn(0)<0&&(i=o.iadd(this.m)),i._forceRed(this)},I.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new o(0)._forceRed(this);var r=e.mul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),s=i;return i.cmp(this.m)>=0?s=i.isub(this.m):i.cmpn(0)<0&&(s=i.iadd(this.m)),s._forceRed(this)},I.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(bn$8,commonjsGlobal)),bn$8.exports}bn$8.exports;var brorand={exports:{}},hasRequiredBrorand,mr$3,hasRequiredMr,generatePrime,hasRequiredGeneratePrime;function requireBrorand(){if(hasRequiredBrorand)return brorand.exports;var e;function t(e){this.rand=e}if(hasRequiredBrorand=1,brorand.exports=function(r){return e||(e=new t(null)),e.generate(r)},brorand.exports.Rand=t,t.prototype.generate=function(e){return this._rand(e)},t.prototype._rand=function(e){if(this.rand.getBytes)return this.rand.getBytes(e);for(var t=new Uint8Array(e),r=0;r=0);return o},r.prototype._randrange=function(e,t){var r=t.sub(e);return e.add(this._randbelow(r))},r.prototype.test=function(t,r,n){var o=t.bitLength(),i=e.mont(t),s=new e(1).toRed(i);r||(r=Math.max(1,o/48|0));for(var a=t.subn(1),c=0;!a.testn(c);c++);for(var u=t.shrn(c),l=a.toRed(i);r>0;r--){var d=this._randrange(new e(2),a);n&&n(d);var h=d.toRed(i).redPow(u);if(0!==h.cmp(s)&&0!==h.cmp(l)){for(var f=1;f0;r--){var l=this._randrange(new e(2),s),d=t.gcd(l);if(0!==d.cmpn(1))return d;var h=l.toRed(o).redPow(c);if(0!==h.cmp(i)&&0!==h.cmp(u)){for(var f=1;fd;)m.ishrn(1);if(m.isEven()&&m.iadd(o),m.testn(1)||m.iadd(i),p.cmp(i)){if(!p.cmp(s))for(;m.mod(a).cmp(c);)m.iadd(l)}else for(;m.mod(r).cmp(u);)m.iadd(l);if(h(y=m.shrn(1))&&h(m)&&f(y)&&f(m)&&n.test(y)&&n.test(m))return m}}return generatePrime}const modp1={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},modp2={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},modp5={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},modp14={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},modp15={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},modp16={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},modp17={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},modp18={gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"},require$$1$1={modp1:modp1,modp2:modp2,modp5:modp5,modp14:modp14,modp15:modp15,modp16:modp16,modp17:modp17,modp18:modp18};var dh,hasRequiredDh,hasRequiredBrowser$4;function requireDh(){if(hasRequiredDh)return dh;hasRequiredDh=1;var e=requireBn$4(),t=new(requireMr()),r=new e(24),n=new e(11),o=new e(10),i=new e(3),s=new e(7),a=requireGeneratePrime(),c=requireBrowser$b();function u(t,r){return r=r||"utf8",Buffer$2.isBuffer(t)||(t=new Buffer$2(t,r)),this._pub=new e(t),this}function l(t,r){return r=r||"utf8",Buffer$2.isBuffer(t)||(t=new Buffer$2(t,r)),this._priv=new e(t),this}dh=h;var d={};function h(t,r,n){this.setGenerator(r),this.__prime=new e(t),this._prime=e.mont(this.__prime),this._primeLen=t.length,this._pub=void 0,this._priv=void 0,this._primeCode=void 0,n?(this.setPublicKey=u,this.setPrivateKey=l):this._primeCode=8}function f(e,t){var r=new Buffer$2(e.toArray());return t?r.toString(t):r}return Object.defineProperty(h.prototype,"verifyError",{enumerable:!0,get:function(){return"number"!=typeof this._primeCode&&(this._primeCode=function(e,c){var u=c.toString("hex"),l=[u,e.toString(16)].join("_");if(l in d)return d[l];var h,f=0;if(e.isEven()||!a.simpleSieve||!a.fermatTest(e)||!t.test(e))return f+=1,f+="02"===u||"05"===u?8:4,d[l]=f,f;switch(t.test(e.shrn(1))||(f+=2),u){case"02":e.mod(r).cmp(n)&&(f+=8);break;case"05":(h=e.mod(o)).cmp(i)&&h.cmp(s)&&(f+=8);break;default:f+=4}return d[l]=f,f}(this.__prime,this.__gen)),this._primeCode}}),h.prototype.generateKeys=function(){return this._priv||(this._priv=new e(c(this._primeLen))),this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed(),this.getPublicKey()},h.prototype.computeSecret=function(t){var r=(t=(t=new e(t)).toRed(this._prime)).redPow(this._priv).fromRed(),n=new Buffer$2(r.toArray()),o=this.getPrime();if(n.length0?this.tail.next=t:this.head=t,this.tail=t,++this.length},e.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},e.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},e.prototype.clear=function(){this.head=this.tail=null,this.length=0},e.prototype.join=function(e){if(0===this.length)return"";for(var t=this.head,r=""+t.data;t=t.next;)r+=e+t.data;return r},e.prototype.concat=function(e){if(0===this.length)return t.alloc(0);for(var r,n,o,i=t.allocUnsafe(e>>>0),s=this.head,a=0;s;)r=s.data,n=i,o=a,r.copy(n,o),a+=s.data.length,s=s.next;return i},e}(),r&&r.inspect&&r.inspect.custom&&(e.exports.prototype[r.inspect.custom]=function(){var e=r.inspect({length:this.length});return this.constructor.name+" "+e})),BufferList.exports;var e,t,r}function requireDestroy(){if(hasRequiredDestroy)return destroy_1;hasRequiredDestroy=1;var e=requireProcessNextickArgs();function t(e,t){e.emit("error",t)}return destroy_1={destroy:function(r,n){var o=this,i=this._readableState&&this._readableState.destroyed,s=this._writableState&&this._writableState.destroyed;return i||s?(n?n(r):r&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,e.nextTick(t,this,r)):e.nextTick(t,this,r)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(r||null,(function(r){!n&&r?o._writableState?o._writableState.errorEmitted||(o._writableState.errorEmitted=!0,e.nextTick(t,o,r)):e.nextTick(t,o,r):n&&n(r)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}}function require_stream_writable(){if(hasRequired_stream_writable)return _stream_writable;hasRequired_stream_writable=1;var e=requireProcessNextickArgs();function t(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,r){var n=e.entry;e.entry=null;for(;n;){var o=n.callback;t.pendingcb--,o(r),n=n.next}t.corkedRequestsFree.next=e}(t,e)}}_stream_writable=f;var r,n=!process$1.browser&&["v0.10","v0.9."].indexOf(process$1.version.slice(0,5))>-1?setImmediate:e.nextTick;f.WritableState=h;var o=Object.create(requireUtil());o.inherits=requireInherits_browser();var i={deprecate:requireBrowser$a()},s=requireStreamBrowser(),a=requireSafeBuffer().Buffer,c=(void 0!==commonjsGlobal?commonjsGlobal:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{}).Uint8Array||function(){};var u,l=requireDestroy();function d(){}function h(o,i){r=r||require_stream_duplex(),o=o||{};var s=i instanceof r;this.objectMode=!!o.objectMode,s&&(this.objectMode=this.objectMode||!!o.writableObjectMode);var a=o.highWaterMark,c=o.writableHighWaterMark,u=this.objectMode?16:16384;this.highWaterMark=a||0===a?a:s&&(c||0===c)?c:u,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var l=!1===o.decodeStrings;this.decodeStrings=!l,this.defaultEncoding=o.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(t){!function(t,r){var o=t._writableState,i=o.sync,s=o.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(o),r)!function(t,r,n,o,i){--r.pendingcb,n?(e.nextTick(i,o),e.nextTick(w,t,r),t._writableState.errorEmitted=!0,t.emit("error",o)):(i(o),t._writableState.errorEmitted=!0,t.emit("error",o),w(t,r))}(t,o,i,r,s);else{var a=g(o);a||o.corked||o.bufferProcessing||!o.bufferedRequest||y(t,o),i?n(m,t,o,a,s):m(t,o,a,s)}}(i,t)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new t(this)}function f(e){if(r=r||require_stream_duplex(),!(u.call(f,this)||this instanceof r))return new f(e);this._writableState=new h(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),s.call(this)}function p(e,t,r,n,o,i,s){t.writelen=n,t.writecb=s,t.writing=!0,t.sync=!0,r?e._writev(o,t.onwrite):e._write(o,i,t.onwrite),t.sync=!1}function m(e,t,r,n){r||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,n(),w(e,t)}function y(e,r){r.bufferProcessing=!0;var n=r.bufferedRequest;if(e._writev&&n&&n.next){var o=r.bufferedRequestCount,i=new Array(o),s=r.corkedRequestsFree;s.entry=n;for(var a=0,c=!0;n;)i[a]=n,n.isBuf||(c=!1),n=n.next,a+=1;i.allBuffers=c,p(e,r,!0,r.length,i,"",s.finish),r.pendingcb++,r.lastBufferedRequest=null,s.next?(r.corkedRequestsFree=s.next,s.next=null):r.corkedRequestsFree=new t(r),r.bufferedRequestCount=0}else{for(;n;){var u=n.chunk,l=n.encoding,d=n.callback;if(p(e,r,!1,r.objectMode?1:u.length,u,l,d),n=n.next,r.bufferedRequestCount--,r.writing)break}null===n&&(r.lastBufferedRequest=null)}r.bufferedRequest=n,r.bufferProcessing=!1}function g(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function b(e,t){e._final((function(r){t.pendingcb--,r&&e.emit("error",r),t.prefinished=!0,e.emit("prefinish"),w(e,t)}))}function w(t,r){var n=g(r);return n&&(!function(t,r){r.prefinished||r.finalCalled||("function"==typeof t._final?(r.pendingcb++,r.finalCalled=!0,e.nextTick(b,t,r)):(r.prefinished=!0,t.emit("prefinish")))}(t,r),0===r.pendingcb&&(r.finished=!0,t.emit("finish"))),n}return o.inherits(f,s),h.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(h.prototype,"buffer",{get:i.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(u=Function.prototype[Symbol.hasInstance],Object.defineProperty(f,Symbol.hasInstance,{value:function(e){return!!u.call(this,e)||this===f&&(e&&e._writableState instanceof h)}})):u=function(e){return e instanceof this},f.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},f.prototype.write=function(t,r,n){var o,i=this._writableState,s=!1,u=!i.objectMode&&(o=t,a.isBuffer(o)||o instanceof c);return u&&!a.isBuffer(t)&&(t=function(e){return a.from(e)}(t)),"function"==typeof r&&(n=r,r=null),u?r="buffer":r||(r=i.defaultEncoding),"function"!=typeof n&&(n=d),i.ended?function(t,r){var n=new Error("write after end");t.emit("error",n),e.nextTick(r,n)}(this,n):(u||function(t,r,n,o){var i=!0,s=!1;return null===n?s=new TypeError("May not write null values to stream"):"string"==typeof n||void 0===n||r.objectMode||(s=new TypeError("Invalid non-string/buffer chunk")),s&&(t.emit("error",s),e.nextTick(o,s),i=!1),i}(this,i,t,n))&&(i.pendingcb++,s=function(e,t,r,n,o,i){if(!r){var s=function(e,t,r){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=a.from(t,r));return t}(t,n,o);n!==s&&(r=!0,o="buffer",n=s)}var c=t.objectMode?1:n.length;t.length+=c;var u=t.length-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(f.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),f.prototype._write=function(e,t,r){r(new Error("_write() is not implemented"))},f.prototype._writev=null,f.prototype.end=function(t,r,n){var o=this._writableState;"function"==typeof t?(n=t,t=null,r=null):"function"==typeof r&&(n=r,r=null),null!=t&&this.write(t,r),o.corked&&(o.corked=1,this.uncork()),o.ending||function(t,r,n){r.ending=!0,w(t,r),n&&(r.finished?e.nextTick(n):t.once("finish",n));r.ended=!0,t.writable=!1}(this,o,n)},Object.defineProperty(f.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),f.prototype.destroy=l.destroy,f.prototype._undestroy=l.undestroy,f.prototype._destroy=function(e,t){this.end(),t(e)},_stream_writable}function require_stream_duplex(){if(hasRequired_stream_duplex)return _stream_duplex;hasRequired_stream_duplex=1;var e=requireProcessNextickArgs(),t=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};_stream_duplex=c;var r=Object.create(requireUtil());r.inherits=requireInherits_browser();var n=require_stream_readable(),o=require_stream_writable();r.inherits(c,n);for(var i=t(o.prototype),s=0;s0?("string"==typeof t||c.objectMode||Object.getPrototypeOf(t)===i.prototype||(t=function(e){return i.from(e)}(t)),n?c.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):g(e,c,t,!0):c.ended?e.emit("error",new Error("stream.push() after EOF")):(c.reading=!1,c.decoder&&!r?(t=c.decoder.write(t),c.objectMode||0!==t.length?g(e,c,t,!1):$(e,c)):g(e,c,t,!1))):n||(c.reading=!1));return function(e){return!e.ended&&(e.needReadable||e.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=b?e=b:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function _(t){var r=t._readableState;r.needReadable=!1,r.emittedReadable||(u("emitReadable",r.flowing),r.emittedReadable=!0,r.sync?e.nextTick(v,t):v(t))}function v(e){u("emit readable"),e.emit("readable"),S(e)}function $(t,r){r.readingMore||(r.readingMore=!0,e.nextTick(I,t,r))}function I(e,t){for(var r=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):r=function(e,t,r){var n;ei.length?i.length:e;if(s===i.length?o+=i:o+=i.slice(0,e),0===(e-=s)){s===i.length?(++n,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=i.slice(s));break}++n}return t.length-=n,o}(e,t):function(e,t){var r=i.allocUnsafe(e),n=t.head,o=1;n.data.copy(r),e-=n.data.length;for(;n=n.next;){var s=n.data,a=e>s.length?s.length:e;if(s.copy(r,r.length-e,0,a),0===(e-=a)){a===s.length?(++o,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=s.slice(a));break}++o}return t.length-=o,r}(e,t);return n}(e,t.buffer,t.decoder),r);var r}function T(t){var r=t._readableState;if(r.length>0)throw new Error('"endReadable()" called on non-empty stream');r.endEmitted||(r.ended=!0,e.nextTick(P,r,t))}function P(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function R(e,t){for(var r=0,n=e.length;r=t.highWaterMark||t.ended))return u("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?T(this):_(this),null;if(0===(e=w(e,t))&&t.ended)return 0===t.length&&T(this),null;var n,o=t.needReadable;return u("need readable",o),(0===t.length||t.length-e0?E(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&T(this)),null!==n&&this.emit("data",n),n},m.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},m.prototype.pipe=function(t,o){var i=this,s=this._readableState;switch(s.pipesCount){case 0:s.pipes=t;break;case 1:s.pipes=[s.pipes,t];break;default:s.pipes.push(t)}s.pipesCount+=1,u("pipe count=%d opts=%j",s.pipesCount,o);var a=(!o||!1!==o.end)&&t!==process$1.stdout&&t!==process$1.stderr?l:b;function c(e,r){u("onunpipe"),e===i&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,u("cleanup"),t.removeListener("close",y),t.removeListener("finish",g),t.removeListener("drain",d),t.removeListener("error",m),t.removeListener("unpipe",c),i.removeListener("end",l),i.removeListener("end",b),i.removeListener("data",p),h=!0,!s.awaitDrain||t._writableState&&!t._writableState.needDrain||d())}function l(){u("onend"),t.end()}s.endEmitted?e.nextTick(a):i.once("end",a),t.on("unpipe",c);var d=function(e){return function(){var t=e._readableState;u("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&n(e,"data")&&(t.flowing=!0,S(e))}}(i);t.on("drain",d);var h=!1;var f=!1;function p(e){u("ondata"),f=!1,!1!==t.write(e)||f||((1===s.pipesCount&&s.pipes===t||s.pipesCount>1&&-1!==R(s.pipes,t))&&!h&&(u("false write response, pause",s.awaitDrain),s.awaitDrain++,f=!0),i.pause())}function m(e){u("onerror",e),b(),t.removeListener("error",m),0===n(t,"error")&&t.emit("error",e)}function y(){t.removeListener("finish",g),b()}function g(){u("onfinish"),t.removeListener("close",y),b()}function b(){u("unpipe"),i.unpipe(t)}return i.on("data",p),function(e,t,n){if("function"==typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?r(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}(t,"error",m),t.once("close",y),t.once("finish",g),t.emit("pipe",i),s.flowing||(u("pipe resume"),i.resume()),t},m.prototype.unpipe=function(e){var t=this._readableState,r={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,r)),this;if(!e){var n=t.pipes,o=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i=48&&n<=57?n-48:n>=65&&n<=70?n-55:n>=97&&n<=102?n-87:void r(!1,"Invalid character in "+e)}function a(e,t,r){var n=s(e,r);return r-1>=t&&(n|=s(e,r-1)<<4),n}function c(e,t,n,o){for(var i=0,s=0,a=Math.min(e.length,n),c=t;c=49?u-49+10:u>=17?u-17+10:u,r(u>=0&&s0?e:t},o.min=function(e,t){return e.cmp(t)<0?e:t},o.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),r(t===(0|t)&&t>=2&&t<=36);var o=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(o++,this.negative=1),o=0;o-=3)s=e[o]|e[o-1]<<8|e[o-2]<<16,this.words[i]|=s<>>26-a&67108863,(a+=24)>=26&&(a-=26,i++);else if("le"===n)for(o=0,i=0;o>>26-a&67108863,(a+=24)>=26&&(a-=26,i++);return this._strip()},o.prototype._parseHex=function(e,t,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var n=0;n=t;n-=2)o=a(e,t,n)<=18?(i-=18,s+=1,this.words[s]|=o>>>26):i+=8;else for(n=(e.length-t)%2==0?t+1:t;n=18?(i-=18,s+=1,this.words[s]|=o>>>26):i+=8;this._strip()},o.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var n=0,o=1;o<=67108863;o*=t)n++;n--,o=o/t|0;for(var i=e.length-r,s=i%n,a=Math.min(i,i-s)+r,u=0,l=r;l1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{o.prototype[Symbol.for("nodejs.util.inspect.custom")]=l}catch(S){o.prototype.inspect=l}else o.prototype.inspect=l;function l(){return(this.red?""}var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],h=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],f=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function p(e,t,r){r.negative=t.negative^e.negative;var n=e.length+t.length|0;r.length=n,n=n-1|0;var o=0|e.words[0],i=0|t.words[0],s=o*i,a=67108863&s,c=s/67108864|0;r.words[0]=a;for(var u=1;u>>26,d=67108863&c,h=Math.min(u,t.length-1),f=Math.max(0,u-e.length+1);f<=h;f++){var p=u-f|0;l+=(s=(o=0|e.words[p])*(i=0|t.words[f])+d)/67108864|0,d=67108863&s}r.words[u]=0|d,c=0|l}return 0!==c?r.words[u]=0|c:r.length--,r._strip()}o.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var o=0,i=0,s=0;s>>24-o&16777215,(o+=2)>=26&&(o-=26,s--),n=0!==i||s!==this.length-1?d[6-c.length]+c+n:c+n}for(0!==i&&(n=i.toString(16)+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var u=h[e],l=f[e];n="";var p=this.clone();for(p.negative=0;!p.isZero();){var m=p.modrn(l).toString(e);n=(p=p.idivn(l)).isZero()?m+n:d[u-m.length]+m+n}for(this.isZero()&&(n="0"+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},o.prototype.toJSON=function(){return this.toString(16,2)},i&&(o.prototype.toBuffer=function(e,t){return this.toArrayLike(i,e,t)}),o.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},o.prototype.toArrayLike=function(e,t,n){this._strip();var o=this.byteLength(),i=n||Math.max(1,o);r(o<=i,"byte array longer than desired length"),r(i>0,"Requested array length <= 0");var s=function(e,t){return e.allocUnsafe?e.allocUnsafe(t):new e(t)}(e,i);return this["_toArrayLike"+("le"===t?"LE":"BE")](s,o),s},o.prototype._toArrayLikeLE=function(e,t){for(var r=0,n=0,o=0,i=0;o>8&255),r>16&255),6===i?(r>24&255),n=0,i=0):(n=s>>>24,i+=2)}if(r=0&&(e[r--]=s>>8&255),r>=0&&(e[r--]=s>>16&255),6===i?(r>=0&&(e[r--]=s>>24&255),n=0,i=0):(n=s>>>24,i+=2)}if(r>=0)for(e[r--]=n;r>=0;)e[r--]=0},Math.clz32?o.prototype._countBits=function(e){return 32-Math.clz32(e)}:o.prototype._countBits=function(e){var t=e,r=0;return t>=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},o.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 8191&t||(r+=13,t>>>=13),127&t||(r+=7,t>>>=7),15&t||(r+=4,t>>>=4),3&t||(r+=2,t>>>=2),1&t||r++,r},o.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},o.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},o.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;re.length?this.clone().iand(e):e.clone().iand(this)},o.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},o.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var n=0;ne.length?this.clone().ixor(e):e.clone().ixor(this)},o.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},o.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var o=0;o0&&(this.words[o]=~this.words[o]&67108863>>26-n),this._strip()},o.prototype.notn=function(e){return this.clone().inotn(e)},o.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var n=e/26|0,o=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<e.length?(r=this,n=e):(r=e,n=this);for(var o=0,i=0;i>>26;for(;0!==o&&i>>26;if(this.length=r.length,0!==o)this.words[this.length]=o,this.length++;else if(r!==this)for(;ie.length?this.clone().iadd(e):e.clone().iadd(this)},o.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,n,o=this.cmp(e);if(0===o)return this.negative=0,this.length=1,this.words[0]=0,this;o>0?(r=this,n=e):(r=e,n=this);for(var i=0,s=0;s>26,this.words[s]=67108863&t;for(;0!==i&&s>26,this.words[s]=67108863&t;if(0===i&&s>>13,f=0|s[1],p=8191&f,m=f>>>13,y=0|s[2],g=8191&y,b=y>>>13,w=0|s[3],_=8191&w,v=w>>>13,$=0|s[4],I=8191&$,k=$>>>13,A=0|s[5],S=8191&A,E=A>>>13,T=0|s[6],P=8191&T,R=T>>>13,C=0|s[7],O=8191&C,M=C>>>13,N=0|s[8],B=8191&N,x=N>>>13,D=0|s[9],L=8191&D,U=D>>>13,F=0|a[0],j=8191&F,q=F>>>13,K=0|a[1],z=8191&K,H=K>>>13,G=0|a[2],W=8191&G,V=G>>>13,Y=0|a[3],J=8191&Y,Q=Y>>>13,Z=0|a[4],X=8191&Z,ee=Z>>>13,te=0|a[5],re=8191&te,ne=te>>>13,oe=0|a[6],ie=8191&oe,se=oe>>>13,ae=0|a[7],ce=8191&ae,ue=ae>>>13,le=0|a[8],de=8191&le,he=le>>>13,fe=0|a[9],pe=8191&fe,me=fe>>>13;r.negative=e.negative^t.negative,r.length=19;var ye=(u+(n=Math.imul(d,j))|0)+((8191&(o=(o=Math.imul(d,q))+Math.imul(h,j)|0))<<13)|0;u=((i=Math.imul(h,q))+(o>>>13)|0)+(ye>>>26)|0,ye&=67108863,n=Math.imul(p,j),o=(o=Math.imul(p,q))+Math.imul(m,j)|0,i=Math.imul(m,q);var ge=(u+(n=n+Math.imul(d,z)|0)|0)+((8191&(o=(o=o+Math.imul(d,H)|0)+Math.imul(h,z)|0))<<13)|0;u=((i=i+Math.imul(h,H)|0)+(o>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(g,j),o=(o=Math.imul(g,q))+Math.imul(b,j)|0,i=Math.imul(b,q),n=n+Math.imul(p,z)|0,o=(o=o+Math.imul(p,H)|0)+Math.imul(m,z)|0,i=i+Math.imul(m,H)|0;var be=(u+(n=n+Math.imul(d,W)|0)|0)+((8191&(o=(o=o+Math.imul(d,V)|0)+Math.imul(h,W)|0))<<13)|0;u=((i=i+Math.imul(h,V)|0)+(o>>>13)|0)+(be>>>26)|0,be&=67108863,n=Math.imul(_,j),o=(o=Math.imul(_,q))+Math.imul(v,j)|0,i=Math.imul(v,q),n=n+Math.imul(g,z)|0,o=(o=o+Math.imul(g,H)|0)+Math.imul(b,z)|0,i=i+Math.imul(b,H)|0,n=n+Math.imul(p,W)|0,o=(o=o+Math.imul(p,V)|0)+Math.imul(m,W)|0,i=i+Math.imul(m,V)|0;var we=(u+(n=n+Math.imul(d,J)|0)|0)+((8191&(o=(o=o+Math.imul(d,Q)|0)+Math.imul(h,J)|0))<<13)|0;u=((i=i+Math.imul(h,Q)|0)+(o>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(I,j),o=(o=Math.imul(I,q))+Math.imul(k,j)|0,i=Math.imul(k,q),n=n+Math.imul(_,z)|0,o=(o=o+Math.imul(_,H)|0)+Math.imul(v,z)|0,i=i+Math.imul(v,H)|0,n=n+Math.imul(g,W)|0,o=(o=o+Math.imul(g,V)|0)+Math.imul(b,W)|0,i=i+Math.imul(b,V)|0,n=n+Math.imul(p,J)|0,o=(o=o+Math.imul(p,Q)|0)+Math.imul(m,J)|0,i=i+Math.imul(m,Q)|0;var _e=(u+(n=n+Math.imul(d,X)|0)|0)+((8191&(o=(o=o+Math.imul(d,ee)|0)+Math.imul(h,X)|0))<<13)|0;u=((i=i+Math.imul(h,ee)|0)+(o>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(S,j),o=(o=Math.imul(S,q))+Math.imul(E,j)|0,i=Math.imul(E,q),n=n+Math.imul(I,z)|0,o=(o=o+Math.imul(I,H)|0)+Math.imul(k,z)|0,i=i+Math.imul(k,H)|0,n=n+Math.imul(_,W)|0,o=(o=o+Math.imul(_,V)|0)+Math.imul(v,W)|0,i=i+Math.imul(v,V)|0,n=n+Math.imul(g,J)|0,o=(o=o+Math.imul(g,Q)|0)+Math.imul(b,J)|0,i=i+Math.imul(b,Q)|0,n=n+Math.imul(p,X)|0,o=(o=o+Math.imul(p,ee)|0)+Math.imul(m,X)|0,i=i+Math.imul(m,ee)|0;var ve=(u+(n=n+Math.imul(d,re)|0)|0)+((8191&(o=(o=o+Math.imul(d,ne)|0)+Math.imul(h,re)|0))<<13)|0;u=((i=i+Math.imul(h,ne)|0)+(o>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(P,j),o=(o=Math.imul(P,q))+Math.imul(R,j)|0,i=Math.imul(R,q),n=n+Math.imul(S,z)|0,o=(o=o+Math.imul(S,H)|0)+Math.imul(E,z)|0,i=i+Math.imul(E,H)|0,n=n+Math.imul(I,W)|0,o=(o=o+Math.imul(I,V)|0)+Math.imul(k,W)|0,i=i+Math.imul(k,V)|0,n=n+Math.imul(_,J)|0,o=(o=o+Math.imul(_,Q)|0)+Math.imul(v,J)|0,i=i+Math.imul(v,Q)|0,n=n+Math.imul(g,X)|0,o=(o=o+Math.imul(g,ee)|0)+Math.imul(b,X)|0,i=i+Math.imul(b,ee)|0,n=n+Math.imul(p,re)|0,o=(o=o+Math.imul(p,ne)|0)+Math.imul(m,re)|0,i=i+Math.imul(m,ne)|0;var $e=(u+(n=n+Math.imul(d,ie)|0)|0)+((8191&(o=(o=o+Math.imul(d,se)|0)+Math.imul(h,ie)|0))<<13)|0;u=((i=i+Math.imul(h,se)|0)+(o>>>13)|0)+($e>>>26)|0,$e&=67108863,n=Math.imul(O,j),o=(o=Math.imul(O,q))+Math.imul(M,j)|0,i=Math.imul(M,q),n=n+Math.imul(P,z)|0,o=(o=o+Math.imul(P,H)|0)+Math.imul(R,z)|0,i=i+Math.imul(R,H)|0,n=n+Math.imul(S,W)|0,o=(o=o+Math.imul(S,V)|0)+Math.imul(E,W)|0,i=i+Math.imul(E,V)|0,n=n+Math.imul(I,J)|0,o=(o=o+Math.imul(I,Q)|0)+Math.imul(k,J)|0,i=i+Math.imul(k,Q)|0,n=n+Math.imul(_,X)|0,o=(o=o+Math.imul(_,ee)|0)+Math.imul(v,X)|0,i=i+Math.imul(v,ee)|0,n=n+Math.imul(g,re)|0,o=(o=o+Math.imul(g,ne)|0)+Math.imul(b,re)|0,i=i+Math.imul(b,ne)|0,n=n+Math.imul(p,ie)|0,o=(o=o+Math.imul(p,se)|0)+Math.imul(m,ie)|0,i=i+Math.imul(m,se)|0;var Ie=(u+(n=n+Math.imul(d,ce)|0)|0)+((8191&(o=(o=o+Math.imul(d,ue)|0)+Math.imul(h,ce)|0))<<13)|0;u=((i=i+Math.imul(h,ue)|0)+(o>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,n=Math.imul(B,j),o=(o=Math.imul(B,q))+Math.imul(x,j)|0,i=Math.imul(x,q),n=n+Math.imul(O,z)|0,o=(o=o+Math.imul(O,H)|0)+Math.imul(M,z)|0,i=i+Math.imul(M,H)|0,n=n+Math.imul(P,W)|0,o=(o=o+Math.imul(P,V)|0)+Math.imul(R,W)|0,i=i+Math.imul(R,V)|0,n=n+Math.imul(S,J)|0,o=(o=o+Math.imul(S,Q)|0)+Math.imul(E,J)|0,i=i+Math.imul(E,Q)|0,n=n+Math.imul(I,X)|0,o=(o=o+Math.imul(I,ee)|0)+Math.imul(k,X)|0,i=i+Math.imul(k,ee)|0,n=n+Math.imul(_,re)|0,o=(o=o+Math.imul(_,ne)|0)+Math.imul(v,re)|0,i=i+Math.imul(v,ne)|0,n=n+Math.imul(g,ie)|0,o=(o=o+Math.imul(g,se)|0)+Math.imul(b,ie)|0,i=i+Math.imul(b,se)|0,n=n+Math.imul(p,ce)|0,o=(o=o+Math.imul(p,ue)|0)+Math.imul(m,ce)|0,i=i+Math.imul(m,ue)|0;var ke=(u+(n=n+Math.imul(d,de)|0)|0)+((8191&(o=(o=o+Math.imul(d,he)|0)+Math.imul(h,de)|0))<<13)|0;u=((i=i+Math.imul(h,he)|0)+(o>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(L,j),o=(o=Math.imul(L,q))+Math.imul(U,j)|0,i=Math.imul(U,q),n=n+Math.imul(B,z)|0,o=(o=o+Math.imul(B,H)|0)+Math.imul(x,z)|0,i=i+Math.imul(x,H)|0,n=n+Math.imul(O,W)|0,o=(o=o+Math.imul(O,V)|0)+Math.imul(M,W)|0,i=i+Math.imul(M,V)|0,n=n+Math.imul(P,J)|0,o=(o=o+Math.imul(P,Q)|0)+Math.imul(R,J)|0,i=i+Math.imul(R,Q)|0,n=n+Math.imul(S,X)|0,o=(o=o+Math.imul(S,ee)|0)+Math.imul(E,X)|0,i=i+Math.imul(E,ee)|0,n=n+Math.imul(I,re)|0,o=(o=o+Math.imul(I,ne)|0)+Math.imul(k,re)|0,i=i+Math.imul(k,ne)|0,n=n+Math.imul(_,ie)|0,o=(o=o+Math.imul(_,se)|0)+Math.imul(v,ie)|0,i=i+Math.imul(v,se)|0,n=n+Math.imul(g,ce)|0,o=(o=o+Math.imul(g,ue)|0)+Math.imul(b,ce)|0,i=i+Math.imul(b,ue)|0,n=n+Math.imul(p,de)|0,o=(o=o+Math.imul(p,he)|0)+Math.imul(m,de)|0,i=i+Math.imul(m,he)|0;var Ae=(u+(n=n+Math.imul(d,pe)|0)|0)+((8191&(o=(o=o+Math.imul(d,me)|0)+Math.imul(h,pe)|0))<<13)|0;u=((i=i+Math.imul(h,me)|0)+(o>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(L,z),o=(o=Math.imul(L,H))+Math.imul(U,z)|0,i=Math.imul(U,H),n=n+Math.imul(B,W)|0,o=(o=o+Math.imul(B,V)|0)+Math.imul(x,W)|0,i=i+Math.imul(x,V)|0,n=n+Math.imul(O,J)|0,o=(o=o+Math.imul(O,Q)|0)+Math.imul(M,J)|0,i=i+Math.imul(M,Q)|0,n=n+Math.imul(P,X)|0,o=(o=o+Math.imul(P,ee)|0)+Math.imul(R,X)|0,i=i+Math.imul(R,ee)|0,n=n+Math.imul(S,re)|0,o=(o=o+Math.imul(S,ne)|0)+Math.imul(E,re)|0,i=i+Math.imul(E,ne)|0,n=n+Math.imul(I,ie)|0,o=(o=o+Math.imul(I,se)|0)+Math.imul(k,ie)|0,i=i+Math.imul(k,se)|0,n=n+Math.imul(_,ce)|0,o=(o=o+Math.imul(_,ue)|0)+Math.imul(v,ce)|0,i=i+Math.imul(v,ue)|0,n=n+Math.imul(g,de)|0,o=(o=o+Math.imul(g,he)|0)+Math.imul(b,de)|0,i=i+Math.imul(b,he)|0;var Se=(u+(n=n+Math.imul(p,pe)|0)|0)+((8191&(o=(o=o+Math.imul(p,me)|0)+Math.imul(m,pe)|0))<<13)|0;u=((i=i+Math.imul(m,me)|0)+(o>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(L,W),o=(o=Math.imul(L,V))+Math.imul(U,W)|0,i=Math.imul(U,V),n=n+Math.imul(B,J)|0,o=(o=o+Math.imul(B,Q)|0)+Math.imul(x,J)|0,i=i+Math.imul(x,Q)|0,n=n+Math.imul(O,X)|0,o=(o=o+Math.imul(O,ee)|0)+Math.imul(M,X)|0,i=i+Math.imul(M,ee)|0,n=n+Math.imul(P,re)|0,o=(o=o+Math.imul(P,ne)|0)+Math.imul(R,re)|0,i=i+Math.imul(R,ne)|0,n=n+Math.imul(S,ie)|0,o=(o=o+Math.imul(S,se)|0)+Math.imul(E,ie)|0,i=i+Math.imul(E,se)|0,n=n+Math.imul(I,ce)|0,o=(o=o+Math.imul(I,ue)|0)+Math.imul(k,ce)|0,i=i+Math.imul(k,ue)|0,n=n+Math.imul(_,de)|0,o=(o=o+Math.imul(_,he)|0)+Math.imul(v,de)|0,i=i+Math.imul(v,he)|0;var Ee=(u+(n=n+Math.imul(g,pe)|0)|0)+((8191&(o=(o=o+Math.imul(g,me)|0)+Math.imul(b,pe)|0))<<13)|0;u=((i=i+Math.imul(b,me)|0)+(o>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(L,J),o=(o=Math.imul(L,Q))+Math.imul(U,J)|0,i=Math.imul(U,Q),n=n+Math.imul(B,X)|0,o=(o=o+Math.imul(B,ee)|0)+Math.imul(x,X)|0,i=i+Math.imul(x,ee)|0,n=n+Math.imul(O,re)|0,o=(o=o+Math.imul(O,ne)|0)+Math.imul(M,re)|0,i=i+Math.imul(M,ne)|0,n=n+Math.imul(P,ie)|0,o=(o=o+Math.imul(P,se)|0)+Math.imul(R,ie)|0,i=i+Math.imul(R,se)|0,n=n+Math.imul(S,ce)|0,o=(o=o+Math.imul(S,ue)|0)+Math.imul(E,ce)|0,i=i+Math.imul(E,ue)|0,n=n+Math.imul(I,de)|0,o=(o=o+Math.imul(I,he)|0)+Math.imul(k,de)|0,i=i+Math.imul(k,he)|0;var Te=(u+(n=n+Math.imul(_,pe)|0)|0)+((8191&(o=(o=o+Math.imul(_,me)|0)+Math.imul(v,pe)|0))<<13)|0;u=((i=i+Math.imul(v,me)|0)+(o>>>13)|0)+(Te>>>26)|0,Te&=67108863,n=Math.imul(L,X),o=(o=Math.imul(L,ee))+Math.imul(U,X)|0,i=Math.imul(U,ee),n=n+Math.imul(B,re)|0,o=(o=o+Math.imul(B,ne)|0)+Math.imul(x,re)|0,i=i+Math.imul(x,ne)|0,n=n+Math.imul(O,ie)|0,o=(o=o+Math.imul(O,se)|0)+Math.imul(M,ie)|0,i=i+Math.imul(M,se)|0,n=n+Math.imul(P,ce)|0,o=(o=o+Math.imul(P,ue)|0)+Math.imul(R,ce)|0,i=i+Math.imul(R,ue)|0,n=n+Math.imul(S,de)|0,o=(o=o+Math.imul(S,he)|0)+Math.imul(E,de)|0,i=i+Math.imul(E,he)|0;var Pe=(u+(n=n+Math.imul(I,pe)|0)|0)+((8191&(o=(o=o+Math.imul(I,me)|0)+Math.imul(k,pe)|0))<<13)|0;u=((i=i+Math.imul(k,me)|0)+(o>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,n=Math.imul(L,re),o=(o=Math.imul(L,ne))+Math.imul(U,re)|0,i=Math.imul(U,ne),n=n+Math.imul(B,ie)|0,o=(o=o+Math.imul(B,se)|0)+Math.imul(x,ie)|0,i=i+Math.imul(x,se)|0,n=n+Math.imul(O,ce)|0,o=(o=o+Math.imul(O,ue)|0)+Math.imul(M,ce)|0,i=i+Math.imul(M,ue)|0,n=n+Math.imul(P,de)|0,o=(o=o+Math.imul(P,he)|0)+Math.imul(R,de)|0,i=i+Math.imul(R,he)|0;var Re=(u+(n=n+Math.imul(S,pe)|0)|0)+((8191&(o=(o=o+Math.imul(S,me)|0)+Math.imul(E,pe)|0))<<13)|0;u=((i=i+Math.imul(E,me)|0)+(o>>>13)|0)+(Re>>>26)|0,Re&=67108863,n=Math.imul(L,ie),o=(o=Math.imul(L,se))+Math.imul(U,ie)|0,i=Math.imul(U,se),n=n+Math.imul(B,ce)|0,o=(o=o+Math.imul(B,ue)|0)+Math.imul(x,ce)|0,i=i+Math.imul(x,ue)|0,n=n+Math.imul(O,de)|0,o=(o=o+Math.imul(O,he)|0)+Math.imul(M,de)|0,i=i+Math.imul(M,he)|0;var Ce=(u+(n=n+Math.imul(P,pe)|0)|0)+((8191&(o=(o=o+Math.imul(P,me)|0)+Math.imul(R,pe)|0))<<13)|0;u=((i=i+Math.imul(R,me)|0)+(o>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,n=Math.imul(L,ce),o=(o=Math.imul(L,ue))+Math.imul(U,ce)|0,i=Math.imul(U,ue),n=n+Math.imul(B,de)|0,o=(o=o+Math.imul(B,he)|0)+Math.imul(x,de)|0,i=i+Math.imul(x,he)|0;var Oe=(u+(n=n+Math.imul(O,pe)|0)|0)+((8191&(o=(o=o+Math.imul(O,me)|0)+Math.imul(M,pe)|0))<<13)|0;u=((i=i+Math.imul(M,me)|0)+(o>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,n=Math.imul(L,de),o=(o=Math.imul(L,he))+Math.imul(U,de)|0,i=Math.imul(U,he);var Me=(u+(n=n+Math.imul(B,pe)|0)|0)+((8191&(o=(o=o+Math.imul(B,me)|0)+Math.imul(x,pe)|0))<<13)|0;u=((i=i+Math.imul(x,me)|0)+(o>>>13)|0)+(Me>>>26)|0,Me&=67108863;var Ne=(u+(n=Math.imul(L,pe))|0)+((8191&(o=(o=Math.imul(L,me))+Math.imul(U,pe)|0))<<13)|0;return u=((i=Math.imul(U,me))+(o>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,c[0]=ye,c[1]=ge,c[2]=be,c[3]=we,c[4]=_e,c[5]=ve,c[6]=$e,c[7]=Ie,c[8]=ke,c[9]=Ae,c[10]=Se,c[11]=Ee,c[12]=Te,c[13]=Pe,c[14]=Re,c[15]=Ce,c[16]=Oe,c[17]=Me,c[18]=Ne,0!==u&&(c[19]=u,r.length++),r};function y(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var n=0,o=0,i=0;i>>26)|0)>>>26,s&=67108863}r.words[i]=a,n=s,s=o}return 0!==n?r.words[i]=n:r.length--,r._strip()}function g(e,t,r){return y(e,t,r)}Math.imul||(m=p),o.prototype.mulTo=function(e,t){var r=this.length+e.length;return 10===this.length&&10===e.length?m(this,e,t):r<63?p(this,e,t):r<1024?y(this,e,t):g(this,e,t)},o.prototype.mul=function(e){var t=new o(null);return t.words=new Array(this.length+e.length),this.mulTo(e,t)},o.prototype.mulf=function(e){var t=new o(null);return t.words=new Array(this.length+e.length),g(this,e,t)},o.prototype.imul=function(e){return this.clone().mulTo(e,this)},o.prototype.imuln=function(e){var t=e<0;t&&(e=-e),r("number"==typeof e),r(e<67108864);for(var n=0,o=0;o>=26,n+=i/67108864|0,n+=s>>>26,this.words[o]=67108863&s}return 0!==n&&(this.words[o]=n,this.length++),t?this.ineg():this},o.prototype.muln=function(e){return this.clone().imuln(e)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r>>o&1}return t}(e);if(0===t.length)return new o(1);for(var r=this,n=0;n=0);var t,n=e%26,o=(e-n)/26,i=67108863>>>26-n<<26-n;if(0!==n){var s=0;for(t=0;t>>26-n}s&&(this.words[t]=s,this.length++)}if(0!==o){for(t=this.length-1;t>=0;t--)this.words[t+o]=this.words[t];for(t=0;t=0),o=t?(t-t%26)/26:0;var i=e%26,s=Math.min((e-i)/26,this.length),a=67108863^67108863>>>i<s)for(this.length-=s,u=0;u=0&&(0!==l||u>=o);u--){var d=0|this.words[u];this.words[u]=l<<26-i|d>>>i,l=d&a}return c&&0!==l&&(c.words[c.length++]=l),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},o.prototype.ishrn=function(e,t,n){return r(0===this.negative),this.iushrn(e,t,n)},o.prototype.shln=function(e){return this.clone().ishln(e)},o.prototype.ushln=function(e){return this.clone().iushln(e)},o.prototype.shrn=function(e){return this.clone().ishrn(e)},o.prototype.ushrn=function(e){return this.clone().iushrn(e)},o.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26,o=1<=0);var t=e%26,n=(e-t)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==t&&n++,this.length=Math.min(n,this.length),0!==t){var o=67108863^67108863>>>t<=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},o.prototype.isubn=function(e){if(r("number"==typeof e),r(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t>26)-(c/67108864|0),this.words[o+n]=67108863&i}for(;o>26,this.words[o+n]=67108863&i;if(0===a)return this._strip();for(r(-1===a),a=0,o=0;o>26,this.words[o]=67108863&i;return this.negative=1,this._strip()},o.prototype._wordDiv=function(e,t){var r=(this.length,e.length),n=this.clone(),i=e,s=0|i.words[i.length-1];0!=(r=26-this._countBits(s))&&(i=i.ushln(r),n.iushln(r),s=0|i.words[i.length-1]);var a,c=n.length-i.length;if("mod"!==t){(a=new o(null)).length=c+1,a.words=new Array(a.length);for(var u=0;u=0;d--){var h=67108864*(0|n.words[i.length+d])+(0|n.words[i.length+d-1]);for(h=Math.min(h/s|0,67108863),n._ishlnsubmul(i,h,d);0!==n.negative;)h--,n.negative=0,n._ishlnsubmul(i,1,d),n.isZero()||(n.negative^=1);a&&(a.words[d]=h)}return a&&a._strip(),n._strip(),"div"!==t&&0!==r&&n.iushrn(r),{div:a||null,mod:n}},o.prototype.divmod=function(e,t,n){return r(!e.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===e.negative?(a=this.neg().divmod(e,t),"mod"!==t&&(i=a.div.neg()),"div"!==t&&(s=a.mod.neg(),n&&0!==s.negative&&s.iadd(e)),{div:i,mod:s}):0===this.negative&&0!==e.negative?(a=this.divmod(e.neg(),t),"mod"!==t&&(i=a.div.neg()),{div:i,mod:a.mod}):this.negative&e.negative?(a=this.neg().divmod(e.neg(),t),"div"!==t&&(s=a.mod.neg(),n&&0!==s.negative&&s.isub(e)),{div:a.div,mod:s}):e.length>this.length||this.cmp(e)<0?{div:new o(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new o(this.modrn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new o(this.modrn(e.words[0]))}:this._wordDiv(e,t);var i,s,a},o.prototype.div=function(e){return this.divmod(e,"div",!1).div},o.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},o.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},o.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,n=e.ushrn(1),o=e.andln(1),i=r.cmp(n);return i<0||1===o&&0===i?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},o.prototype.modrn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var n=(1<<26)%e,o=0,i=this.length-1;i>=0;i--)o=(n*o+(0|this.words[i]))%e;return t?-o:o},o.prototype.modn=function(e){return this.modrn(e)},o.prototype.idivn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var n=0,o=this.length-1;o>=0;o--){var i=(0|this.words[o])+67108864*n;this.words[o]=i/e|0,n=i%e}return this._strip(),t?this.ineg():this},o.prototype.divn=function(e){return this.clone().idivn(e)},o.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i=new o(1),s=new o(0),a=new o(0),c=new o(1),u=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++u;for(var l=n.clone(),d=t.clone();!t.isZero();){for(var h=0,f=1;!(t.words[0]&f)&&h<26;++h,f<<=1);if(h>0)for(t.iushrn(h);h-- >0;)(i.isOdd()||s.isOdd())&&(i.iadd(l),s.isub(d)),i.iushrn(1),s.iushrn(1);for(var p=0,m=1;!(n.words[0]&m)&&p<26;++p,m<<=1);if(p>0)for(n.iushrn(p);p-- >0;)(a.isOdd()||c.isOdd())&&(a.iadd(l),c.isub(d)),a.iushrn(1),c.iushrn(1);t.cmp(n)>=0?(t.isub(n),i.isub(a),s.isub(c)):(n.isub(t),a.isub(i),c.isub(s))}return{a:a,b:c,gcd:n.iushln(u)}},o.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i,s=new o(1),a=new o(0),c=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var u=0,l=1;!(t.words[0]&l)&&u<26;++u,l<<=1);if(u>0)for(t.iushrn(u);u-- >0;)s.isOdd()&&s.iadd(c),s.iushrn(1);for(var d=0,h=1;!(n.words[0]&h)&&d<26;++d,h<<=1);if(d>0)for(n.iushrn(d);d-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);t.cmp(n)>=0?(t.isub(n),s.isub(a)):(n.isub(t),a.isub(s))}return(i=0===t.cmpn(1)?s:a).cmpn(0)<0&&i.iadd(e),i},o.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var n=0;t.isEven()&&r.isEven();n++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var o=t.cmp(r);if(o<0){var i=t;t=r,r=i}else if(0===o||0===r.cmpn(1))break;t.isub(r)}return r.iushln(n)},o.prototype.invm=function(e){return this.egcd(e).a.umod(e)},o.prototype.isEven=function(){return!(1&this.words[0])},o.prototype.isOdd=function(){return!(1&~this.words[0])},o.prototype.andln=function(e){return this.words[0]&e},o.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,n=(e-t)/26,o=1<>>26,a&=67108863,this.words[s]=a}return 0!==i&&(this.words[s]=i,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this._strip(),this.length>1)t=1;else{n&&(e=-e),r(e<=67108863,"Number is too big");var o=0|this.words[0];t=o===e?0:oe.length)return 1;if(this.length=0;r--){var n=0|this.words[r],o=0|e.words[r];if(n!==o){no&&(t=1);break}}return t},o.prototype.gtn=function(e){return 1===this.cmpn(e)},o.prototype.gt=function(e){return 1===this.cmp(e)},o.prototype.gten=function(e){return this.cmpn(e)>=0},o.prototype.gte=function(e){return this.cmp(e)>=0},o.prototype.ltn=function(e){return-1===this.cmpn(e)},o.prototype.lt=function(e){return-1===this.cmp(e)},o.prototype.lten=function(e){return this.cmpn(e)<=0},o.prototype.lte=function(e){return this.cmp(e)<=0},o.prototype.eqn=function(e){return 0===this.cmpn(e)},o.prototype.eq=function(e){return 0===this.cmp(e)},o.red=function(e){return new k(e)},o.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},o.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(e){return this.red=e,this},o.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},o.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},o.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},o.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},o.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},o.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},o.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},o.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},o.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var b={k256:null,p224:null,p192:null,p25519:null};function w(e,t){this.name=e,this.p=new o(t,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function _(){w.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function v(){w.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function $(){w.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function I(){w.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function k(e){if("string"==typeof e){var t=o._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function A(e){k.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}w.prototype._tmp=function(){var e=new o(null);return e.words=new Array(Math.ceil(this.n/13)),e},w.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var n=t0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},w.prototype.split=function(e,t){e.iushrn(this.n,0,t)},w.prototype.imulK=function(e){return e.imul(this.k)},n(_,w),_.prototype.split=function(e,t){for(var r=4194303,n=Math.min(e.length,9),o=0;o>>22,i=s}i>>>=22,e.words[o-10]=i,0===i&&e.length>10?e.length-=10:e.length-=9},_.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r>>=26,e.words[r]=o,t=n}return 0!==t&&(e.words[e.length++]=t),e},o._prime=function(e){if(b[e])return b[e];var t;if("k256"===e)t=new _;else if("p224"===e)t=new v;else if("p192"===e)t=new $;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new I}return b[e]=t,t},k.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},k.prototype._verify2=function(e,t){r(!(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},k.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):(u(e,e.umod(this.m)._forceRed(this)),e)},k.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},k.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},k.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},k.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},k.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},k.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},k.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},k.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},k.prototype.isqr=function(e){return this.imul(e,e.clone())},k.prototype.sqr=function(e){return this.mul(e,e)},k.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var n=this.m.add(new o(1)).iushrn(2);return this.pow(e,n)}for(var i=this.m.subn(1),s=0;!i.isZero()&&0===i.andln(1);)s++,i.iushrn(1);r(!i.isZero());var a=new o(1).toRed(this),c=a.redNeg(),u=this.m.subn(1).iushrn(1),l=this.m.bitLength();for(l=new o(2*l*l).toRed(this);0!==this.pow(l,u).cmp(c);)l.redIAdd(c);for(var d=this.pow(l,i),h=this.pow(e,i.addn(1).iushrn(1)),f=this.pow(e,i),p=s;0!==f.cmp(a);){for(var m=f,y=0;0!==m.cmp(a);y++)m=m.redSqr();r(y=0;n--){for(var u=t.words[n],l=c-1;l>=0;l--){var d=u>>l&1;i!==r[0]&&(i=this.sqr(i)),0!==d||0!==s?(s<<=1,s|=d,(4==++a||0===n&&0===l)&&(i=this.mul(i,r[s]),a=0,s=0)):a=0}c=26}return i},k.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},k.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},o.mont=function(e){return new A(e)},n(A,k),A.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},A.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},A.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=r.isub(n).iushrn(this.shift),i=o;return o.cmp(this.m)>=0?i=o.isub(this.m):o.cmpn(0)<0&&(i=o.iadd(this.m)),i._forceRed(this)},A.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new o(0)._forceRed(this);var r=e.mul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),s=i;return i.cmp(this.m)>=0?s=i.isub(this.m):i.cmpn(0)<0&&(s=i.iadd(this.m)),s._forceRed(this)},A.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(module2,commonjsGlobal);var bnExports$2=bn$7.exports;const BN$g=getDefaultExportFromCjs$1(bnExports$2);var browserifyRsa,hasRequiredBrowserifyRsa;function requireBrowserifyRsa(){if(hasRequiredBrowserifyRsa)return browserifyRsa;hasRequiredBrowserifyRsa=1;var e=bnExports$2,t=requireBrowser$b(),r=requireSafeBuffer$1().Buffer;function n(r){var n,o=r.modulus.byteLength();do{n=new e(t(o))}while(n.cmp(r.modulus)>=0||!n.umod(r.prime1)||!n.umod(r.prime2));return n}function o(t,o){var i=function(t){var r=n(t);return{blinder:r.toRed(e.mont(t.modulus)).redPow(new e(t.publicExponent)).fromRed(),unblinder:r.invm(t.modulus)}}(o),s=o.modulus.byteLength(),a=new e(t).mul(i.blinder).umod(o.modulus),c=a.toRed(e.mont(o.prime1)),u=a.toRed(e.mont(o.prime2)),l=o.coefficient,d=o.prime1,h=o.prime2,f=c.redPow(o.exponent1).fromRed(),p=u.redPow(o.exponent2).fromRed(),m=f.isub(p).imul(l).umod(d).imul(h);return p.iadd(m).imul(i.unblinder).umod(o.modulus).toArrayLike(r,"be",s)}return o.getr=n,browserifyRsa=o}var elliptic$1={};const name$1="elliptic",version$b="6.6.1",description$1="EC cryptography",main$1="lib/elliptic.js",files$1=["lib"],scripts$1={lint:"eslint lib test","lint:fix":"npm run lint -- --fix",unit:"istanbul test _mocha --reporter=spec test/index.js",test:"npm run lint && npm run unit",version:"grunt dist && git add dist/"},repository$1={type:"git",url:"git@github.com:indutny/elliptic"},keywords$1=["EC","Elliptic","curve","Cryptography"],author$1="Fedor Indutny ",license$1="MIT",bugs$1={url:"https://github.com/indutny/elliptic/issues"},homepage$1="https://github.com/indutny/elliptic",devDependencies$1={brfs:"^2.0.2",coveralls:"^3.1.0",eslint:"^7.6.0",grunt:"^1.2.1","grunt-browserify":"^5.3.0","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^5.0.0","grunt-mocha-istanbul":"^5.0.2","grunt-saucelabs":"^9.0.1",istanbul:"^0.4.5",mocha:"^8.0.1"},dependencies$1={"bn.js":"^4.11.9",brorand:"^1.1.0","hash.js":"^1.0.0","hmac-drbg":"^1.0.1",inherits:"^2.0.4","minimalistic-assert":"^1.0.1","minimalistic-crypto-utils":"^1.0.1"},require$$0$4={name:name$1,version:version$b,description:description$1,main:main$1,files:files$1,scripts:scripts$1,repository:repository$1,keywords:keywords$1,author:author$1,license:license$1,bugs:bugs$1,homepage:homepage$1,devDependencies:devDependencies$1,dependencies:dependencies$1};var utils$B={},bn$6={exports:{}};bn$6.exports,function(e){!function(e,t){function r(e,t){if(!e)throw new Error(t||"Assertion failed")}function n(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}function o(e,t,r){if(o.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(r=t,t=10),this._init(e||0,t||10,r||"be"))}var i;"object"==typeof e?e.exports=o:t.BN=o,o.BN=o,o.wordSize=26;try{i="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:require$$2$1.Buffer}catch(k){}function s(e,t){var r=e.charCodeAt(t);return r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:r-48&15}function a(e,t,r){var n=s(e,r);return r-1>=t&&(n|=s(e,r-1)<<4),n}function c(e,t,r,n){for(var o=0,i=Math.min(e.length,r),s=t;s=49?a-49+10:a>=17?a-17+10:a}return o}o.isBN=function(e){return e instanceof o||null!==e&&"object"==typeof e&&e.constructor.wordSize===o.wordSize&&Array.isArray(e.words)},o.max=function(e,t){return e.cmp(t)>0?e:t},o.min=function(e,t){return e.cmp(t)<0?e:t},o.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),r(t===(0|t)&&t>=2&&t<=36);var o=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(o++,this.negative=1),o=0;o-=3)s=e[o]|e[o-1]<<8|e[o-2]<<16,this.words[i]|=s<>>26-a&67108863,(a+=24)>=26&&(a-=26,i++);else if("le"===n)for(o=0,i=0;o>>26-a&67108863,(a+=24)>=26&&(a-=26,i++);return this.strip()},o.prototype._parseHex=function(e,t,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var n=0;n=t;n-=2)o=a(e,t,n)<=18?(i-=18,s+=1,this.words[s]|=o>>>26):i+=8;else for(n=(e.length-t)%2==0?t+1:t;n=18?(i-=18,s+=1,this.words[s]|=o>>>26):i+=8;this.strip()},o.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var n=0,o=1;o<=67108863;o*=t)n++;n--,o=o/t|0;for(var i=e.length-r,s=i%n,a=Math.min(i,i-s)+r,u=0,l=r;l1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?""};var u=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],l=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],d=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function h(e,t,r){r.negative=t.negative^e.negative;var n=e.length+t.length|0;r.length=n,n=n-1|0;var o=0|e.words[0],i=0|t.words[0],s=o*i,a=67108863&s,c=s/67108864|0;r.words[0]=a;for(var u=1;u>>26,d=67108863&c,h=Math.min(u,t.length-1),f=Math.max(0,u-e.length+1);f<=h;f++){var p=u-f|0;l+=(s=(o=0|e.words[p])*(i=0|t.words[f])+d)/67108864|0,d=67108863&s}r.words[u]=0|d,c=0|l}return 0!==c?r.words[u]=0|c:r.length--,r.strip()}o.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var o=0,i=0,s=0;s>>24-o&16777215,(o+=2)>=26&&(o-=26,s--),n=0!==i||s!==this.length-1?u[6-c.length]+c+n:c+n}for(0!==i&&(n=i.toString(16)+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var h=l[e],f=d[e];n="";var p=this.clone();for(p.negative=0;!p.isZero();){var m=p.modn(f).toString(e);n=(p=p.idivn(f)).isZero()?m+n:u[h-m.length]+m+n}for(this.isZero()&&(n="0"+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(e,t){return r(void 0!==i),this.toArrayLike(i,e,t)},o.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},o.prototype.toArrayLike=function(e,t,n){var o=this.byteLength(),i=n||Math.max(1,o);r(o<=i,"byte array longer than desired length"),r(i>0,"Requested array length <= 0"),this.strip();var s,a,c="le"===t,u=new e(i),l=this.clone();if(c){for(a=0;!l.isZero();a++)s=l.andln(255),l.iushrn(8),u[a]=s;for(;a=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},o.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 8191&t||(r+=13,t>>>=13),127&t||(r+=7,t>>>=7),15&t||(r+=4,t>>>=4),3&t||(r+=2,t>>>=2),1&t||r++,r},o.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},o.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},o.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;re.length?this.clone().iand(e):e.clone().iand(this)},o.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},o.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var n=0;ne.length?this.clone().ixor(e):e.clone().ixor(this)},o.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},o.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var o=0;o0&&(this.words[o]=~this.words[o]&67108863>>26-n),this.strip()},o.prototype.notn=function(e){return this.clone().inotn(e)},o.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var n=e/26|0,o=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<e.length?(r=this,n=e):(r=e,n=this);for(var o=0,i=0;i>>26;for(;0!==o&&i>>26;if(this.length=r.length,0!==o)this.words[this.length]=o,this.length++;else if(r!==this)for(;ie.length?this.clone().iadd(e):e.clone().iadd(this)},o.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,n,o=this.cmp(e);if(0===o)return this.negative=0,this.length=1,this.words[0]=0,this;o>0?(r=this,n=e):(r=e,n=this);for(var i=0,s=0;s>26,this.words[s]=67108863&t;for(;0!==i&&s>26,this.words[s]=67108863&t;if(0===i&&s>>13,f=0|s[1],p=8191&f,m=f>>>13,y=0|s[2],g=8191&y,b=y>>>13,w=0|s[3],_=8191&w,v=w>>>13,$=0|s[4],I=8191&$,k=$>>>13,A=0|s[5],S=8191&A,E=A>>>13,T=0|s[6],P=8191&T,R=T>>>13,C=0|s[7],O=8191&C,M=C>>>13,N=0|s[8],B=8191&N,x=N>>>13,D=0|s[9],L=8191&D,U=D>>>13,F=0|a[0],j=8191&F,q=F>>>13,K=0|a[1],z=8191&K,H=K>>>13,G=0|a[2],W=8191&G,V=G>>>13,Y=0|a[3],J=8191&Y,Q=Y>>>13,Z=0|a[4],X=8191&Z,ee=Z>>>13,te=0|a[5],re=8191&te,ne=te>>>13,oe=0|a[6],ie=8191&oe,se=oe>>>13,ae=0|a[7],ce=8191&ae,ue=ae>>>13,le=0|a[8],de=8191&le,he=le>>>13,fe=0|a[9],pe=8191&fe,me=fe>>>13;r.negative=e.negative^t.negative,r.length=19;var ye=(u+(n=Math.imul(d,j))|0)+((8191&(o=(o=Math.imul(d,q))+Math.imul(h,j)|0))<<13)|0;u=((i=Math.imul(h,q))+(o>>>13)|0)+(ye>>>26)|0,ye&=67108863,n=Math.imul(p,j),o=(o=Math.imul(p,q))+Math.imul(m,j)|0,i=Math.imul(m,q);var ge=(u+(n=n+Math.imul(d,z)|0)|0)+((8191&(o=(o=o+Math.imul(d,H)|0)+Math.imul(h,z)|0))<<13)|0;u=((i=i+Math.imul(h,H)|0)+(o>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(g,j),o=(o=Math.imul(g,q))+Math.imul(b,j)|0,i=Math.imul(b,q),n=n+Math.imul(p,z)|0,o=(o=o+Math.imul(p,H)|0)+Math.imul(m,z)|0,i=i+Math.imul(m,H)|0;var be=(u+(n=n+Math.imul(d,W)|0)|0)+((8191&(o=(o=o+Math.imul(d,V)|0)+Math.imul(h,W)|0))<<13)|0;u=((i=i+Math.imul(h,V)|0)+(o>>>13)|0)+(be>>>26)|0,be&=67108863,n=Math.imul(_,j),o=(o=Math.imul(_,q))+Math.imul(v,j)|0,i=Math.imul(v,q),n=n+Math.imul(g,z)|0,o=(o=o+Math.imul(g,H)|0)+Math.imul(b,z)|0,i=i+Math.imul(b,H)|0,n=n+Math.imul(p,W)|0,o=(o=o+Math.imul(p,V)|0)+Math.imul(m,W)|0,i=i+Math.imul(m,V)|0;var we=(u+(n=n+Math.imul(d,J)|0)|0)+((8191&(o=(o=o+Math.imul(d,Q)|0)+Math.imul(h,J)|0))<<13)|0;u=((i=i+Math.imul(h,Q)|0)+(o>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(I,j),o=(o=Math.imul(I,q))+Math.imul(k,j)|0,i=Math.imul(k,q),n=n+Math.imul(_,z)|0,o=(o=o+Math.imul(_,H)|0)+Math.imul(v,z)|0,i=i+Math.imul(v,H)|0,n=n+Math.imul(g,W)|0,o=(o=o+Math.imul(g,V)|0)+Math.imul(b,W)|0,i=i+Math.imul(b,V)|0,n=n+Math.imul(p,J)|0,o=(o=o+Math.imul(p,Q)|0)+Math.imul(m,J)|0,i=i+Math.imul(m,Q)|0;var _e=(u+(n=n+Math.imul(d,X)|0)|0)+((8191&(o=(o=o+Math.imul(d,ee)|0)+Math.imul(h,X)|0))<<13)|0;u=((i=i+Math.imul(h,ee)|0)+(o>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(S,j),o=(o=Math.imul(S,q))+Math.imul(E,j)|0,i=Math.imul(E,q),n=n+Math.imul(I,z)|0,o=(o=o+Math.imul(I,H)|0)+Math.imul(k,z)|0,i=i+Math.imul(k,H)|0,n=n+Math.imul(_,W)|0,o=(o=o+Math.imul(_,V)|0)+Math.imul(v,W)|0,i=i+Math.imul(v,V)|0,n=n+Math.imul(g,J)|0,o=(o=o+Math.imul(g,Q)|0)+Math.imul(b,J)|0,i=i+Math.imul(b,Q)|0,n=n+Math.imul(p,X)|0,o=(o=o+Math.imul(p,ee)|0)+Math.imul(m,X)|0,i=i+Math.imul(m,ee)|0;var ve=(u+(n=n+Math.imul(d,re)|0)|0)+((8191&(o=(o=o+Math.imul(d,ne)|0)+Math.imul(h,re)|0))<<13)|0;u=((i=i+Math.imul(h,ne)|0)+(o>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(P,j),o=(o=Math.imul(P,q))+Math.imul(R,j)|0,i=Math.imul(R,q),n=n+Math.imul(S,z)|0,o=(o=o+Math.imul(S,H)|0)+Math.imul(E,z)|0,i=i+Math.imul(E,H)|0,n=n+Math.imul(I,W)|0,o=(o=o+Math.imul(I,V)|0)+Math.imul(k,W)|0,i=i+Math.imul(k,V)|0,n=n+Math.imul(_,J)|0,o=(o=o+Math.imul(_,Q)|0)+Math.imul(v,J)|0,i=i+Math.imul(v,Q)|0,n=n+Math.imul(g,X)|0,o=(o=o+Math.imul(g,ee)|0)+Math.imul(b,X)|0,i=i+Math.imul(b,ee)|0,n=n+Math.imul(p,re)|0,o=(o=o+Math.imul(p,ne)|0)+Math.imul(m,re)|0,i=i+Math.imul(m,ne)|0;var $e=(u+(n=n+Math.imul(d,ie)|0)|0)+((8191&(o=(o=o+Math.imul(d,se)|0)+Math.imul(h,ie)|0))<<13)|0;u=((i=i+Math.imul(h,se)|0)+(o>>>13)|0)+($e>>>26)|0,$e&=67108863,n=Math.imul(O,j),o=(o=Math.imul(O,q))+Math.imul(M,j)|0,i=Math.imul(M,q),n=n+Math.imul(P,z)|0,o=(o=o+Math.imul(P,H)|0)+Math.imul(R,z)|0,i=i+Math.imul(R,H)|0,n=n+Math.imul(S,W)|0,o=(o=o+Math.imul(S,V)|0)+Math.imul(E,W)|0,i=i+Math.imul(E,V)|0,n=n+Math.imul(I,J)|0,o=(o=o+Math.imul(I,Q)|0)+Math.imul(k,J)|0,i=i+Math.imul(k,Q)|0,n=n+Math.imul(_,X)|0,o=(o=o+Math.imul(_,ee)|0)+Math.imul(v,X)|0,i=i+Math.imul(v,ee)|0,n=n+Math.imul(g,re)|0,o=(o=o+Math.imul(g,ne)|0)+Math.imul(b,re)|0,i=i+Math.imul(b,ne)|0,n=n+Math.imul(p,ie)|0,o=(o=o+Math.imul(p,se)|0)+Math.imul(m,ie)|0,i=i+Math.imul(m,se)|0;var Ie=(u+(n=n+Math.imul(d,ce)|0)|0)+((8191&(o=(o=o+Math.imul(d,ue)|0)+Math.imul(h,ce)|0))<<13)|0;u=((i=i+Math.imul(h,ue)|0)+(o>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,n=Math.imul(B,j),o=(o=Math.imul(B,q))+Math.imul(x,j)|0,i=Math.imul(x,q),n=n+Math.imul(O,z)|0,o=(o=o+Math.imul(O,H)|0)+Math.imul(M,z)|0,i=i+Math.imul(M,H)|0,n=n+Math.imul(P,W)|0,o=(o=o+Math.imul(P,V)|0)+Math.imul(R,W)|0,i=i+Math.imul(R,V)|0,n=n+Math.imul(S,J)|0,o=(o=o+Math.imul(S,Q)|0)+Math.imul(E,J)|0,i=i+Math.imul(E,Q)|0,n=n+Math.imul(I,X)|0,o=(o=o+Math.imul(I,ee)|0)+Math.imul(k,X)|0,i=i+Math.imul(k,ee)|0,n=n+Math.imul(_,re)|0,o=(o=o+Math.imul(_,ne)|0)+Math.imul(v,re)|0,i=i+Math.imul(v,ne)|0,n=n+Math.imul(g,ie)|0,o=(o=o+Math.imul(g,se)|0)+Math.imul(b,ie)|0,i=i+Math.imul(b,se)|0,n=n+Math.imul(p,ce)|0,o=(o=o+Math.imul(p,ue)|0)+Math.imul(m,ce)|0,i=i+Math.imul(m,ue)|0;var ke=(u+(n=n+Math.imul(d,de)|0)|0)+((8191&(o=(o=o+Math.imul(d,he)|0)+Math.imul(h,de)|0))<<13)|0;u=((i=i+Math.imul(h,he)|0)+(o>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(L,j),o=(o=Math.imul(L,q))+Math.imul(U,j)|0,i=Math.imul(U,q),n=n+Math.imul(B,z)|0,o=(o=o+Math.imul(B,H)|0)+Math.imul(x,z)|0,i=i+Math.imul(x,H)|0,n=n+Math.imul(O,W)|0,o=(o=o+Math.imul(O,V)|0)+Math.imul(M,W)|0,i=i+Math.imul(M,V)|0,n=n+Math.imul(P,J)|0,o=(o=o+Math.imul(P,Q)|0)+Math.imul(R,J)|0,i=i+Math.imul(R,Q)|0,n=n+Math.imul(S,X)|0,o=(o=o+Math.imul(S,ee)|0)+Math.imul(E,X)|0,i=i+Math.imul(E,ee)|0,n=n+Math.imul(I,re)|0,o=(o=o+Math.imul(I,ne)|0)+Math.imul(k,re)|0,i=i+Math.imul(k,ne)|0,n=n+Math.imul(_,ie)|0,o=(o=o+Math.imul(_,se)|0)+Math.imul(v,ie)|0,i=i+Math.imul(v,se)|0,n=n+Math.imul(g,ce)|0,o=(o=o+Math.imul(g,ue)|0)+Math.imul(b,ce)|0,i=i+Math.imul(b,ue)|0,n=n+Math.imul(p,de)|0,o=(o=o+Math.imul(p,he)|0)+Math.imul(m,de)|0,i=i+Math.imul(m,he)|0;var Ae=(u+(n=n+Math.imul(d,pe)|0)|0)+((8191&(o=(o=o+Math.imul(d,me)|0)+Math.imul(h,pe)|0))<<13)|0;u=((i=i+Math.imul(h,me)|0)+(o>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(L,z),o=(o=Math.imul(L,H))+Math.imul(U,z)|0,i=Math.imul(U,H),n=n+Math.imul(B,W)|0,o=(o=o+Math.imul(B,V)|0)+Math.imul(x,W)|0,i=i+Math.imul(x,V)|0,n=n+Math.imul(O,J)|0,o=(o=o+Math.imul(O,Q)|0)+Math.imul(M,J)|0,i=i+Math.imul(M,Q)|0,n=n+Math.imul(P,X)|0,o=(o=o+Math.imul(P,ee)|0)+Math.imul(R,X)|0,i=i+Math.imul(R,ee)|0,n=n+Math.imul(S,re)|0,o=(o=o+Math.imul(S,ne)|0)+Math.imul(E,re)|0,i=i+Math.imul(E,ne)|0,n=n+Math.imul(I,ie)|0,o=(o=o+Math.imul(I,se)|0)+Math.imul(k,ie)|0,i=i+Math.imul(k,se)|0,n=n+Math.imul(_,ce)|0,o=(o=o+Math.imul(_,ue)|0)+Math.imul(v,ce)|0,i=i+Math.imul(v,ue)|0,n=n+Math.imul(g,de)|0,o=(o=o+Math.imul(g,he)|0)+Math.imul(b,de)|0,i=i+Math.imul(b,he)|0;var Se=(u+(n=n+Math.imul(p,pe)|0)|0)+((8191&(o=(o=o+Math.imul(p,me)|0)+Math.imul(m,pe)|0))<<13)|0;u=((i=i+Math.imul(m,me)|0)+(o>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(L,W),o=(o=Math.imul(L,V))+Math.imul(U,W)|0,i=Math.imul(U,V),n=n+Math.imul(B,J)|0,o=(o=o+Math.imul(B,Q)|0)+Math.imul(x,J)|0,i=i+Math.imul(x,Q)|0,n=n+Math.imul(O,X)|0,o=(o=o+Math.imul(O,ee)|0)+Math.imul(M,X)|0,i=i+Math.imul(M,ee)|0,n=n+Math.imul(P,re)|0,o=(o=o+Math.imul(P,ne)|0)+Math.imul(R,re)|0,i=i+Math.imul(R,ne)|0,n=n+Math.imul(S,ie)|0,o=(o=o+Math.imul(S,se)|0)+Math.imul(E,ie)|0,i=i+Math.imul(E,se)|0,n=n+Math.imul(I,ce)|0,o=(o=o+Math.imul(I,ue)|0)+Math.imul(k,ce)|0,i=i+Math.imul(k,ue)|0,n=n+Math.imul(_,de)|0,o=(o=o+Math.imul(_,he)|0)+Math.imul(v,de)|0,i=i+Math.imul(v,he)|0;var Ee=(u+(n=n+Math.imul(g,pe)|0)|0)+((8191&(o=(o=o+Math.imul(g,me)|0)+Math.imul(b,pe)|0))<<13)|0;u=((i=i+Math.imul(b,me)|0)+(o>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(L,J),o=(o=Math.imul(L,Q))+Math.imul(U,J)|0,i=Math.imul(U,Q),n=n+Math.imul(B,X)|0,o=(o=o+Math.imul(B,ee)|0)+Math.imul(x,X)|0,i=i+Math.imul(x,ee)|0,n=n+Math.imul(O,re)|0,o=(o=o+Math.imul(O,ne)|0)+Math.imul(M,re)|0,i=i+Math.imul(M,ne)|0,n=n+Math.imul(P,ie)|0,o=(o=o+Math.imul(P,se)|0)+Math.imul(R,ie)|0,i=i+Math.imul(R,se)|0,n=n+Math.imul(S,ce)|0,o=(o=o+Math.imul(S,ue)|0)+Math.imul(E,ce)|0,i=i+Math.imul(E,ue)|0,n=n+Math.imul(I,de)|0,o=(o=o+Math.imul(I,he)|0)+Math.imul(k,de)|0,i=i+Math.imul(k,he)|0;var Te=(u+(n=n+Math.imul(_,pe)|0)|0)+((8191&(o=(o=o+Math.imul(_,me)|0)+Math.imul(v,pe)|0))<<13)|0;u=((i=i+Math.imul(v,me)|0)+(o>>>13)|0)+(Te>>>26)|0,Te&=67108863,n=Math.imul(L,X),o=(o=Math.imul(L,ee))+Math.imul(U,X)|0,i=Math.imul(U,ee),n=n+Math.imul(B,re)|0,o=(o=o+Math.imul(B,ne)|0)+Math.imul(x,re)|0,i=i+Math.imul(x,ne)|0,n=n+Math.imul(O,ie)|0,o=(o=o+Math.imul(O,se)|0)+Math.imul(M,ie)|0,i=i+Math.imul(M,se)|0,n=n+Math.imul(P,ce)|0,o=(o=o+Math.imul(P,ue)|0)+Math.imul(R,ce)|0,i=i+Math.imul(R,ue)|0,n=n+Math.imul(S,de)|0,o=(o=o+Math.imul(S,he)|0)+Math.imul(E,de)|0,i=i+Math.imul(E,he)|0;var Pe=(u+(n=n+Math.imul(I,pe)|0)|0)+((8191&(o=(o=o+Math.imul(I,me)|0)+Math.imul(k,pe)|0))<<13)|0;u=((i=i+Math.imul(k,me)|0)+(o>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,n=Math.imul(L,re),o=(o=Math.imul(L,ne))+Math.imul(U,re)|0,i=Math.imul(U,ne),n=n+Math.imul(B,ie)|0,o=(o=o+Math.imul(B,se)|0)+Math.imul(x,ie)|0,i=i+Math.imul(x,se)|0,n=n+Math.imul(O,ce)|0,o=(o=o+Math.imul(O,ue)|0)+Math.imul(M,ce)|0,i=i+Math.imul(M,ue)|0,n=n+Math.imul(P,de)|0,o=(o=o+Math.imul(P,he)|0)+Math.imul(R,de)|0,i=i+Math.imul(R,he)|0;var Re=(u+(n=n+Math.imul(S,pe)|0)|0)+((8191&(o=(o=o+Math.imul(S,me)|0)+Math.imul(E,pe)|0))<<13)|0;u=((i=i+Math.imul(E,me)|0)+(o>>>13)|0)+(Re>>>26)|0,Re&=67108863,n=Math.imul(L,ie),o=(o=Math.imul(L,se))+Math.imul(U,ie)|0,i=Math.imul(U,se),n=n+Math.imul(B,ce)|0,o=(o=o+Math.imul(B,ue)|0)+Math.imul(x,ce)|0,i=i+Math.imul(x,ue)|0,n=n+Math.imul(O,de)|0,o=(o=o+Math.imul(O,he)|0)+Math.imul(M,de)|0,i=i+Math.imul(M,he)|0;var Ce=(u+(n=n+Math.imul(P,pe)|0)|0)+((8191&(o=(o=o+Math.imul(P,me)|0)+Math.imul(R,pe)|0))<<13)|0;u=((i=i+Math.imul(R,me)|0)+(o>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,n=Math.imul(L,ce),o=(o=Math.imul(L,ue))+Math.imul(U,ce)|0,i=Math.imul(U,ue),n=n+Math.imul(B,de)|0,o=(o=o+Math.imul(B,he)|0)+Math.imul(x,de)|0,i=i+Math.imul(x,he)|0;var Oe=(u+(n=n+Math.imul(O,pe)|0)|0)+((8191&(o=(o=o+Math.imul(O,me)|0)+Math.imul(M,pe)|0))<<13)|0;u=((i=i+Math.imul(M,me)|0)+(o>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,n=Math.imul(L,de),o=(o=Math.imul(L,he))+Math.imul(U,de)|0,i=Math.imul(U,he);var Me=(u+(n=n+Math.imul(B,pe)|0)|0)+((8191&(o=(o=o+Math.imul(B,me)|0)+Math.imul(x,pe)|0))<<13)|0;u=((i=i+Math.imul(x,me)|0)+(o>>>13)|0)+(Me>>>26)|0,Me&=67108863;var Ne=(u+(n=Math.imul(L,pe))|0)+((8191&(o=(o=Math.imul(L,me))+Math.imul(U,pe)|0))<<13)|0;return u=((i=Math.imul(U,me))+(o>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,c[0]=ye,c[1]=ge,c[2]=be,c[3]=we,c[4]=_e,c[5]=ve,c[6]=$e,c[7]=Ie,c[8]=ke,c[9]=Ae,c[10]=Se,c[11]=Ee,c[12]=Te,c[13]=Pe,c[14]=Re,c[15]=Ce,c[16]=Oe,c[17]=Me,c[18]=Ne,0!==u&&(c[19]=u,r.length++),r};function p(e,t,r){return(new m).mulp(e,t,r)}function m(e,t){this.x=e,this.y=t}Math.imul||(f=h),o.prototype.mulTo=function(e,t){var r,n=this.length+e.length;return r=10===this.length&&10===e.length?f(this,e,t):n<63?h(this,e,t):n<1024?function(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var n=0,o=0,i=0;i>>26)|0)>>>26,s&=67108863}r.words[i]=a,n=s,s=o}return 0!==n?r.words[i]=n:r.length--,r.strip()}(this,e,t):p(this,e,t),r},m.prototype.makeRBT=function(e){for(var t=new Array(e),r=o.prototype._countBits(e)-1,n=0;n>=1;return n},m.prototype.permute=function(e,t,r,n,o,i){for(var s=0;s>>=1)o++;return 1<>>=13,n[2*s+1]=8191&i,i>>>=13;for(s=2*t;s>=26,t+=o/67108864|0,t+=i>>>26,this.words[n]=67108863&i}return 0!==t&&(this.words[n]=t,this.length++),this},o.prototype.muln=function(e){return this.clone().imuln(e)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r>>o}return t}(e);if(0===t.length)return new o(1);for(var r=this,n=0;n=0);var t,n=e%26,o=(e-n)/26,i=67108863>>>26-n<<26-n;if(0!==n){var s=0;for(t=0;t>>26-n}s&&(this.words[t]=s,this.length++)}if(0!==o){for(t=this.length-1;t>=0;t--)this.words[t+o]=this.words[t];for(t=0;t=0),o=t?(t-t%26)/26:0;var i=e%26,s=Math.min((e-i)/26,this.length),a=67108863^67108863>>>i<s)for(this.length-=s,u=0;u=0&&(0!==l||u>=o);u--){var d=0|this.words[u];this.words[u]=l<<26-i|d>>>i,l=d&a}return c&&0!==l&&(c.words[c.length++]=l),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(e,t,n){return r(0===this.negative),this.iushrn(e,t,n)},o.prototype.shln=function(e){return this.clone().ishln(e)},o.prototype.ushln=function(e){return this.clone().iushln(e)},o.prototype.shrn=function(e){return this.clone().ishrn(e)},o.prototype.ushrn=function(e){return this.clone().iushrn(e)},o.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26,o=1<=0);var t=e%26,n=(e-t)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==t&&n++,this.length=Math.min(n,this.length),0!==t){var o=67108863^67108863>>>t<=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},o.prototype.isubn=function(e){if(r("number"==typeof e),r(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t>26)-(c/67108864|0),this.words[o+n]=67108863&i}for(;o>26,this.words[o+n]=67108863&i;if(0===a)return this.strip();for(r(-1===a),a=0,o=0;o>26,this.words[o]=67108863&i;return this.negative=1,this.strip()},o.prototype._wordDiv=function(e,t){var r=(this.length,e.length),n=this.clone(),i=e,s=0|i.words[i.length-1];0!==(r=26-this._countBits(s))&&(i=i.ushln(r),n.iushln(r),s=0|i.words[i.length-1]);var a,c=n.length-i.length;if("mod"!==t){(a=new o(null)).length=c+1,a.words=new Array(a.length);for(var u=0;u=0;d--){var h=67108864*(0|n.words[i.length+d])+(0|n.words[i.length+d-1]);for(h=Math.min(h/s|0,67108863),n._ishlnsubmul(i,h,d);0!==n.negative;)h--,n.negative=0,n._ishlnsubmul(i,1,d),n.isZero()||(n.negative^=1);a&&(a.words[d]=h)}return a&&a.strip(),n.strip(),"div"!==t&&0!==r&&n.iushrn(r),{div:a||null,mod:n}},o.prototype.divmod=function(e,t,n){return r(!e.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===e.negative?(a=this.neg().divmod(e,t),"mod"!==t&&(i=a.div.neg()),"div"!==t&&(s=a.mod.neg(),n&&0!==s.negative&&s.iadd(e)),{div:i,mod:s}):0===this.negative&&0!==e.negative?(a=this.divmod(e.neg(),t),"mod"!==t&&(i=a.div.neg()),{div:i,mod:a.mod}):this.negative&e.negative?(a=this.neg().divmod(e.neg(),t),"div"!==t&&(s=a.mod.neg(),n&&0!==s.negative&&s.isub(e)),{div:a.div,mod:s}):e.length>this.length||this.cmp(e)<0?{div:new o(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new o(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new o(this.modn(e.words[0]))}:this._wordDiv(e,t);var i,s,a},o.prototype.div=function(e){return this.divmod(e,"div",!1).div},o.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},o.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},o.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,n=e.ushrn(1),o=e.andln(1),i=r.cmp(n);return i<0||1===o&&0===i?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},o.prototype.modn=function(e){r(e<=67108863);for(var t=(1<<26)%e,n=0,o=this.length-1;o>=0;o--)n=(t*n+(0|this.words[o]))%e;return n},o.prototype.idivn=function(e){r(e<=67108863);for(var t=0,n=this.length-1;n>=0;n--){var o=(0|this.words[n])+67108864*t;this.words[n]=o/e|0,t=o%e}return this.strip()},o.prototype.divn=function(e){return this.clone().idivn(e)},o.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i=new o(1),s=new o(0),a=new o(0),c=new o(1),u=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++u;for(var l=n.clone(),d=t.clone();!t.isZero();){for(var h=0,f=1;!(t.words[0]&f)&&h<26;++h,f<<=1);if(h>0)for(t.iushrn(h);h-- >0;)(i.isOdd()||s.isOdd())&&(i.iadd(l),s.isub(d)),i.iushrn(1),s.iushrn(1);for(var p=0,m=1;!(n.words[0]&m)&&p<26;++p,m<<=1);if(p>0)for(n.iushrn(p);p-- >0;)(a.isOdd()||c.isOdd())&&(a.iadd(l),c.isub(d)),a.iushrn(1),c.iushrn(1);t.cmp(n)>=0?(t.isub(n),i.isub(a),s.isub(c)):(n.isub(t),a.isub(i),c.isub(s))}return{a:a,b:c,gcd:n.iushln(u)}},o.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i,s=new o(1),a=new o(0),c=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var u=0,l=1;!(t.words[0]&l)&&u<26;++u,l<<=1);if(u>0)for(t.iushrn(u);u-- >0;)s.isOdd()&&s.iadd(c),s.iushrn(1);for(var d=0,h=1;!(n.words[0]&h)&&d<26;++d,h<<=1);if(d>0)for(n.iushrn(d);d-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);t.cmp(n)>=0?(t.isub(n),s.isub(a)):(n.isub(t),a.isub(s))}return(i=0===t.cmpn(1)?s:a).cmpn(0)<0&&i.iadd(e),i},o.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var n=0;t.isEven()&&r.isEven();n++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var o=t.cmp(r);if(o<0){var i=t;t=r,r=i}else if(0===o||0===r.cmpn(1))break;t.isub(r)}return r.iushln(n)},o.prototype.invm=function(e){return this.egcd(e).a.umod(e)},o.prototype.isEven=function(){return!(1&this.words[0])},o.prototype.isOdd=function(){return!(1&~this.words[0])},o.prototype.andln=function(e){return this.words[0]&e},o.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,n=(e-t)/26,o=1<>>26,a&=67108863,this.words[s]=a}return 0!==i&&(this.words[s]=i,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this.strip(),this.length>1)t=1;else{n&&(e=-e),r(e<=67108863,"Number is too big");var o=0|this.words[0];t=o===e?0:oe.length)return 1;if(this.length=0;r--){var n=0|this.words[r],o=0|e.words[r];if(n!==o){no&&(t=1);break}}return t},o.prototype.gtn=function(e){return 1===this.cmpn(e)},o.prototype.gt=function(e){return 1===this.cmp(e)},o.prototype.gten=function(e){return this.cmpn(e)>=0},o.prototype.gte=function(e){return this.cmp(e)>=0},o.prototype.ltn=function(e){return-1===this.cmpn(e)},o.prototype.lt=function(e){return-1===this.cmp(e)},o.prototype.lten=function(e){return this.cmpn(e)<=0},o.prototype.lte=function(e){return this.cmp(e)<=0},o.prototype.eqn=function(e){return 0===this.cmpn(e)},o.prototype.eq=function(e){return 0===this.cmp(e)},o.red=function(e){return new $(e)},o.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},o.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(e){return this.red=e,this},o.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},o.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},o.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},o.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},o.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},o.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},o.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},o.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},o.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var y={k256:null,p224:null,p192:null,p25519:null};function g(e,t){this.name=e,this.p=new o(t,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function b(){g.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function w(){g.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){g.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function v(){g.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function $(e){if("string"==typeof e){var t=o._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function I(e){$.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}g.prototype._tmp=function(){var e=new o(null);return e.words=new Array(Math.ceil(this.n/13)),e},g.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var n=t0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},g.prototype.split=function(e,t){e.iushrn(this.n,0,t)},g.prototype.imulK=function(e){return e.imul(this.k)},n(b,g),b.prototype.split=function(e,t){for(var r=4194303,n=Math.min(e.length,9),o=0;o>>22,i=s}i>>>=22,e.words[o-10]=i,0===i&&e.length>10?e.length-=10:e.length-=9},b.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r>>=26,e.words[r]=o,t=n}return 0!==t&&(e.words[e.length++]=t),e},o._prime=function(e){if(y[e])return y[e];var t;if("k256"===e)t=new b;else if("p224"===e)t=new w;else if("p192"===e)t=new _;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new v}return y[e]=t,t},$.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},$.prototype._verify2=function(e,t){r(!(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},$.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},$.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},$.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},$.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},$.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},$.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},$.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},$.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},$.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},$.prototype.isqr=function(e){return this.imul(e,e.clone())},$.prototype.sqr=function(e){return this.mul(e,e)},$.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var n=this.m.add(new o(1)).iushrn(2);return this.pow(e,n)}for(var i=this.m.subn(1),s=0;!i.isZero()&&0===i.andln(1);)s++,i.iushrn(1);r(!i.isZero());var a=new o(1).toRed(this),c=a.redNeg(),u=this.m.subn(1).iushrn(1),l=this.m.bitLength();for(l=new o(2*l*l).toRed(this);0!==this.pow(l,u).cmp(c);)l.redIAdd(c);for(var d=this.pow(l,i),h=this.pow(e,i.addn(1).iushrn(1)),f=this.pow(e,i),p=s;0!==f.cmp(a);){for(var m=f,y=0;0!==m.cmp(a);y++)m=m.redSqr();r(y=0;n--){for(var u=t.words[n],l=c-1;l>=0;l--){var d=u>>l&1;i!==r[0]&&(i=this.sqr(i)),0!==d||0!==s?(s<<=1,s|=d,(4===++a||0===n&&0===l)&&(i=this.mul(i,r[s]),a=0,s=0)):a=0}c=26}return i},$.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},$.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},o.mont=function(e){return new I(e)},n(I,$),I.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},I.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},I.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=r.isub(n).iushrn(this.shift),i=o;return o.cmp(this.m)>=0?i=o.isub(this.m):o.cmpn(0)<0&&(i=o.iadd(this.m)),i._forceRed(this)},I.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new o(0)._forceRed(this);var r=e.mul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),s=i;return i.cmp(this.m)>=0?s=i.isub(this.m):i.cmpn(0)<0&&(s=i.iadd(this.m)),s._forceRed(this)},I.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e,commonjsGlobal)}(bn$6);var bnExports$1=bn$6.exports,utils$A={};!function(e){var t=e;function r(e){return 1===e.length?"0"+e:e}function n(e){for(var t="",n=0;n>8,s=255&o;i?r.push(i,s):r.push(s)}return r},t.zero2=r,t.toHex=n,t.encode=function(e,t){return"hex"===t?n(e):e}}(utils$A),function(e){var t=e,r=bnExports$1,n=minimalisticAssert$1,o=utils$A;t.assert=n,t.toArray=o.toArray,t.zero2=o.zero2,t.toHex=o.toHex,t.encode=o.encode,t.getNAF=function(e,t,r){var n,o=new Array(Math.max(e.bitLength(),r)+1);for(n=0;n(i>>1)-1?(i>>1)-c:c,s.isubn(a)):a=0,o[n]=a,s.iushrn(1)}return o},t.getJSF=function(e,t){var r=[[],[]];e=e.clone(),t=t.clone();for(var n,o=0,i=0;e.cmpn(-o)>0||t.cmpn(-i)>0;){var s,a,c=e.andln(3)+o&3,u=t.andln(3)+i&3;3===c&&(c=-1),3===u&&(u=-1),s=1&c?3!==(n=e.andln(7)+o&7)&&5!==n||2!==u?c:-c:0,r[0].push(s),a=1&u?3!==(n=t.andln(7)+i&7)&&5!==n||2!==c?u:-u:0,r[1].push(a),2*o===s+1&&(o=1-o),2*i===a+1&&(i=1-i),e.iushrn(1),t.iushrn(1)}return r},t.cachedProperty=function(e,t,r){var n="_"+t;e.prototype[t]=function(){return void 0!==this[n]?this[n]:this[n]=r.call(this)}},t.parseBytes=function(e){return"string"==typeof e?t.toArray(e,"hex"):e},t.intFromLE=function(e){return new r(e,"hex","le")}}(utils$B);var curve$1={},BN$f=bnExports$1,utils$z=utils$B,getNAF$2=utils$z.getNAF,getJSF$2=utils$z.getJSF,assert$n=utils$z.assert;function BaseCurve$2(e,t){this.type=e,this.p=new BN$f(t.p,16),this.red=t.prime?BN$f.red(t.prime):BN$f.mont(this.p),this.zero=new BN$f(0).toRed(this.red),this.one=new BN$f(1).toRed(this.red),this.two=new BN$f(2).toRed(this.red),this.n=t.n&&new BN$f(t.n,16),this.g=t.g&&this.pointFromJSON(t.g,t.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var r=this.n&&this.p.div(this.n);!r||r.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}var base$4=BaseCurve$2;function BasePoint$2(e,t){this.curve=e,this.type=t,this.precomputed=null}BaseCurve$2.prototype.point=function(){throw new Error("Not implemented")},BaseCurve$2.prototype.validate=function(){throw new Error("Not implemented")},BaseCurve$2.prototype._fixedNafMul=function(e,t){assert$n(e.precomputed);var r=e._getDoubles(),n=getNAF$2(t,1,this._bitLength),o=(1<=i;c--)s=(s<<1)+n[c];a.push(s)}for(var u=this.jpoint(null,null,null),l=this.jpoint(null,null,null),d=o;d>0;d--){for(i=0;i=0;a--){for(var c=0;a>=0&&0===i[a];a--)c++;if(a>=0&&c++,s=s.dblp(c),a<0)break;var u=i[a];assert$n(0!==u),s="affine"===e.type?u>0?s.mixedAdd(o[u-1>>1]):s.mixedAdd(o[-u-1>>1].neg()):u>0?s.add(o[u-1>>1]):s.add(o[-u-1>>1].neg())}return"affine"===e.type?s.toP():s},BaseCurve$2.prototype._wnafMulAdd=function(e,t,r,n,o){var i,s,a,c=this._wnafT1,u=this._wnafT2,l=this._wnafT3,d=0;for(i=0;i=1;i-=2){var f=i-1,p=i;if(1===c[f]&&1===c[p]){var m=[t[f],null,null,t[p]];0===t[f].y.cmp(t[p].y)?(m[1]=t[f].add(t[p]),m[2]=t[f].toJ().mixedAdd(t[p].neg())):0===t[f].y.cmp(t[p].y.redNeg())?(m[1]=t[f].toJ().mixedAdd(t[p]),m[2]=t[f].add(t[p].neg())):(m[1]=t[f].toJ().mixedAdd(t[p]),m[2]=t[f].toJ().mixedAdd(t[p].neg()));var y=[-3,-1,-5,-7,0,7,5,1,3],g=getJSF$2(r[f],r[p]);for(d=Math.max(g[0].length,d),l[f]=new Array(d),l[p]=new Array(d),s=0;s=0;i--){for(var $=0;i>=0;){var I=!0;for(s=0;s=0&&$++,_=_.dblp($),i<0)break;for(s=0;s0?a=u[s][k-1>>1]:k<0&&(a=u[s][-k-1>>1].neg()),_="affine"===a.type?_.mixedAdd(a):_.add(a))}}for(i=0;i=Math.ceil((e.bitLength()+1)/t.step)},BasePoint$2.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var r=[this],n=this,o=0;o=0&&(i=t,s=r),n.negative&&(n=n.neg(),o=o.neg()),i.negative&&(i=i.neg(),s=s.neg()),[{a:n,b:o},{a:i,b:s}]},ShortCurve$2.prototype._endoSplit=function(e){var t=this.endo.basis,r=t[0],n=t[1],o=n.b.mul(e).divRound(this.n),i=r.b.neg().mul(e).divRound(this.n),s=o.mul(r.a),a=i.mul(n.a),c=o.mul(r.b),u=i.mul(n.b);return{k1:e.sub(s).sub(a),k2:c.add(u).neg()}},ShortCurve$2.prototype.pointFromX=function(e,t){(e=new BN$e(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),n=r.redSqrt();if(0!==n.redSqr().redSub(r).cmp(this.zero))throw new Error("invalid point");var o=n.fromRed().isOdd();return(t&&!o||!t&&o)&&(n=n.redNeg()),this.point(e,n)},ShortCurve$2.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,r=e.y,n=this.a.redMul(t),o=t.redSqr().redMul(t).redIAdd(n).redIAdd(this.b);return 0===r.redSqr().redISub(o).cmpn(0)},ShortCurve$2.prototype._endoWnafMulAdd=function(e,t,r){for(var n=this._endoWnafT1,o=this._endoWnafT2,i=0;i":""},Point$6.prototype.isInfinity=function(){return this.inf},Point$6.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var r=t.redSqr().redISub(this.x).redISub(e.x),n=t.redMul(this.x.redSub(r)).redISub(this.y);return this.curve.point(r,n)},Point$6.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,r=this.x.redSqr(),n=e.redInvm(),o=r.redAdd(r).redIAdd(r).redIAdd(t).redMul(n),i=o.redSqr().redISub(this.x.redAdd(this.x)),s=o.redMul(this.x.redSub(i)).redISub(this.y);return this.curve.point(i,s)},Point$6.prototype.getX=function(){return this.x.fromRed()},Point$6.prototype.getY=function(){return this.y.fromRed()},Point$6.prototype.mul=function(e){return e=new BN$e(e,16),this.isInfinity()?this:this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},Point$6.prototype.mulAdd=function(e,t,r){var n=[this,t],o=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,o):this.curve._wnafMulAdd(1,n,o,2)},Point$6.prototype.jmulAdd=function(e,t,r){var n=[this,t],o=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,o,!0):this.curve._wnafMulAdd(1,n,o,2,!0)},Point$6.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},Point$6.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var r=this.precomputed,n=function(e){return e.neg()};t.precomputed={naf:r.naf&&{wnd:r.naf.wnd,points:r.naf.points.map(n)},doubles:r.doubles&&{step:r.doubles.step,points:r.doubles.points.map(n)}}}return t},Point$6.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},inherits$6(JPoint$2,Base$5.BasePoint),ShortCurve$2.prototype.jpoint=function(e,t,r){return new JPoint$2(this,e,t,r)},JPoint$2.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),r=this.x.redMul(t),n=this.y.redMul(t).redMul(e);return this.curve.point(r,n)},JPoint$2.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},JPoint$2.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),r=this.z.redSqr(),n=this.x.redMul(t),o=e.x.redMul(r),i=this.y.redMul(t.redMul(e.z)),s=e.y.redMul(r.redMul(this.z)),a=n.redSub(o),c=i.redSub(s);if(0===a.cmpn(0))return 0!==c.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var u=a.redSqr(),l=u.redMul(a),d=n.redMul(u),h=c.redSqr().redIAdd(l).redISub(d).redISub(d),f=c.redMul(d.redISub(h)).redISub(i.redMul(l)),p=this.z.redMul(e.z).redMul(a);return this.curve.jpoint(h,f,p)},JPoint$2.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),r=this.x,n=e.x.redMul(t),o=this.y,i=e.y.redMul(t).redMul(this.z),s=r.redSub(n),a=o.redSub(i);if(0===s.cmpn(0))return 0!==a.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var c=s.redSqr(),u=c.redMul(s),l=r.redMul(c),d=a.redSqr().redIAdd(u).redISub(l).redISub(l),h=a.redMul(l.redISub(d)).redISub(o.redMul(u)),f=this.z.redMul(s);return this.curve.jpoint(d,h,f)},JPoint$2.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();var t;if(this.curve.zeroA||this.curve.threeA){var r=this;for(t=0;t=0)return!1;if(r.redIAdd(o),0===this.x.cmp(r))return!0}},JPoint$2.prototype.inspect=function(){return this.isInfinity()?"":""},JPoint$2.prototype.isInfinity=function(){return 0===this.z.cmpn(0)};var BN$d=bnExports$1,inherits$5=requireInherits_browser(),Base$4=base$4,utils$x=utils$B;function MontCurve$1(e){Base$4.call(this,"mont",e),this.a=new BN$d(e.a,16).toRed(this.red),this.b=new BN$d(e.b,16).toRed(this.red),this.i4=new BN$d(4).toRed(this.red).redInvm(),this.two=new BN$d(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}inherits$5(MontCurve$1,Base$4);var mont$1=MontCurve$1;function Point$5(e,t,r){Base$4.BasePoint.call(this,e,"projective"),null===t&&null===r?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new BN$d(t,16),this.z=new BN$d(r,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}MontCurve$1.prototype.validate=function(e){var t=e.normalize().x,r=t.redSqr(),n=r.redMul(t).redAdd(r.redMul(this.a)).redAdd(t);return 0===n.redSqrt().redSqr().cmp(n)},inherits$5(Point$5,Base$4.BasePoint),MontCurve$1.prototype.decodePoint=function(e,t){return this.point(utils$x.toArray(e,t),1)},MontCurve$1.prototype.point=function(e,t){return new Point$5(this,e,t)},MontCurve$1.prototype.pointFromJSON=function(e){return Point$5.fromJSON(this,e)},Point$5.prototype.precompute=function(){},Point$5.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},Point$5.fromJSON=function(e,t){return new Point$5(e,t[0],t[1]||e.one)},Point$5.prototype.inspect=function(){return this.isInfinity()?"":""},Point$5.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},Point$5.prototype.dbl=function(){var e=this.x.redAdd(this.z).redSqr(),t=this.x.redSub(this.z).redSqr(),r=e.redSub(t),n=e.redMul(t),o=r.redMul(t.redAdd(this.curve.a24.redMul(r)));return this.curve.point(n,o)},Point$5.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},Point$5.prototype.diffAdd=function(e,t){var r=this.x.redAdd(this.z),n=this.x.redSub(this.z),o=e.x.redAdd(e.z),i=e.x.redSub(e.z).redMul(r),s=o.redMul(n),a=t.z.redMul(i.redAdd(s).redSqr()),c=t.x.redMul(i.redISub(s).redSqr());return this.curve.point(a,c)},Point$5.prototype.mul=function(e){for(var t=e.clone(),r=this,n=this.curve.point(null,null),o=[];0!==t.cmpn(0);t.iushrn(1))o.push(t.andln(1));for(var i=o.length-1;i>=0;i--)0===o[i]?(r=r.diffAdd(n,this),n=n.dbl()):(n=r.diffAdd(n,this),r=r.dbl());return n},Point$5.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},Point$5.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},Point$5.prototype.eq=function(e){return 0===this.getX().cmp(e.getX())},Point$5.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},Point$5.prototype.getX=function(){return this.normalize(),this.x.fromRed()};var utils$w=utils$B,BN$c=bnExports$1,inherits$4=requireInherits_browser(),Base$3=base$4,assert$l=utils$w.assert;function EdwardsCurve$1(e){this.twisted=1!=(0|e.a),this.mOneA=this.twisted&&-1==(0|e.a),this.extended=this.mOneA,Base$3.call(this,"edwards",e),this.a=new BN$c(e.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new BN$c(e.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new BN$c(e.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),assert$l(!this.twisted||0===this.c.fromRed().cmpn(1)),this.oneC=1==(0|e.c)}inherits$4(EdwardsCurve$1,Base$3);var edwards$1=EdwardsCurve$1;function Point$4(e,t,r,n,o){Base$3.BasePoint.call(this,e,"projective"),null===t&&null===r&&null===n?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new BN$c(t,16),this.y=new BN$c(r,16),this.z=n?new BN$c(n,16):this.curve.one,this.t=o&&new BN$c(o,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}EdwardsCurve$1.prototype._mulA=function(e){return this.mOneA?e.redNeg():this.a.redMul(e)},EdwardsCurve$1.prototype._mulC=function(e){return this.oneC?e:this.c.redMul(e)},EdwardsCurve$1.prototype.jpoint=function(e,t,r,n){return this.point(e,t,r,n)},EdwardsCurve$1.prototype.pointFromX=function(e,t){(e=new BN$c(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr(),n=this.c2.redSub(this.a.redMul(r)),o=this.one.redSub(this.c2.redMul(this.d).redMul(r)),i=n.redMul(o.redInvm()),s=i.redSqrt();if(0!==s.redSqr().redSub(i).cmp(this.zero))throw new Error("invalid point");var a=s.fromRed().isOdd();return(t&&!a||!t&&a)&&(s=s.redNeg()),this.point(e,s)},EdwardsCurve$1.prototype.pointFromY=function(e,t){(e=new BN$c(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr(),n=r.redSub(this.c2),o=r.redMul(this.d).redMul(this.c2).redSub(this.a),i=n.redMul(o.redInvm());if(0===i.cmp(this.zero)){if(t)throw new Error("invalid point");return this.point(this.zero,e)}var s=i.redSqrt();if(0!==s.redSqr().redSub(i).cmp(this.zero))throw new Error("invalid point");return s.fromRed().isOdd()!==t&&(s=s.redNeg()),this.point(s,e)},EdwardsCurve$1.prototype.validate=function(e){if(e.isInfinity())return!0;e.normalize();var t=e.x.redSqr(),r=e.y.redSqr(),n=t.redMul(this.a).redAdd(r),o=this.c2.redMul(this.one.redAdd(this.d.redMul(t).redMul(r)));return 0===n.cmp(o)},inherits$4(Point$4,Base$3.BasePoint),EdwardsCurve$1.prototype.pointFromJSON=function(e){return Point$4.fromJSON(this,e)},EdwardsCurve$1.prototype.point=function(e,t,r,n){return new Point$4(this,e,t,r,n)},Point$4.fromJSON=function(e,t){return new Point$4(e,t[0],t[1],t[2])},Point$4.prototype.inspect=function(){return this.isInfinity()?"":""},Point$4.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},Point$4.prototype._extDbl=function(){var e=this.x.redSqr(),t=this.y.redSqr(),r=this.z.redSqr();r=r.redIAdd(r);var n=this.curve._mulA(e),o=this.x.redAdd(this.y).redSqr().redISub(e).redISub(t),i=n.redAdd(t),s=i.redSub(r),a=n.redSub(t),c=o.redMul(s),u=i.redMul(a),l=o.redMul(a),d=s.redMul(i);return this.curve.point(c,u,d,l)},Point$4.prototype._projDbl=function(){var e,t,r,n,o,i,s=this.x.redAdd(this.y).redSqr(),a=this.x.redSqr(),c=this.y.redSqr();if(this.curve.twisted){var u=(n=this.curve._mulA(a)).redAdd(c);this.zOne?(e=s.redSub(a).redSub(c).redMul(u.redSub(this.curve.two)),t=u.redMul(n.redSub(c)),r=u.redSqr().redSub(u).redSub(u)):(o=this.z.redSqr(),i=u.redSub(o).redISub(o),e=s.redSub(a).redISub(c).redMul(i),t=u.redMul(n.redSub(c)),r=u.redMul(i))}else n=a.redAdd(c),o=this.curve._mulC(this.z).redSqr(),i=n.redSub(o).redSub(o),e=this.curve._mulC(s.redISub(n)).redMul(i),t=this.curve._mulC(n).redMul(a.redISub(c)),r=n.redMul(i);return this.curve.point(e,t,r)},Point$4.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},Point$4.prototype._extAdd=function(e){var t=this.y.redSub(this.x).redMul(e.y.redSub(e.x)),r=this.y.redAdd(this.x).redMul(e.y.redAdd(e.x)),n=this.t.redMul(this.curve.dd).redMul(e.t),o=this.z.redMul(e.z.redAdd(e.z)),i=r.redSub(t),s=o.redSub(n),a=o.redAdd(n),c=r.redAdd(t),u=i.redMul(s),l=a.redMul(c),d=i.redMul(c),h=s.redMul(a);return this.curve.point(u,l,h,d)},Point$4.prototype._projAdd=function(e){var t,r,n=this.z.redMul(e.z),o=n.redSqr(),i=this.x.redMul(e.x),s=this.y.redMul(e.y),a=this.curve.d.redMul(i).redMul(s),c=o.redSub(a),u=o.redAdd(a),l=this.x.redAdd(this.y).redMul(e.x.redAdd(e.y)).redISub(i).redISub(s),d=n.redMul(c).redMul(l);return this.curve.twisted?(t=n.redMul(u).redMul(s.redSub(this.curve._mulA(i))),r=c.redMul(u)):(t=n.redMul(u).redMul(s.redSub(i)),r=this.curve._mulC(c).redMul(u)),this.curve.point(d,t,r)},Point$4.prototype.add=function(e){return this.isInfinity()?e:e.isInfinity()?this:this.curve.extended?this._extAdd(e):this._projAdd(e)},Point$4.prototype.mul=function(e){return this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve._wnafMul(this,e)},Point$4.prototype.mulAdd=function(e,t,r){return this.curve._wnafMulAdd(1,[this,t],[e,r],2,!1)},Point$4.prototype.jmulAdd=function(e,t,r){return this.curve._wnafMulAdd(1,[this,t],[e,r],2,!0)},Point$4.prototype.normalize=function(){if(this.zOne)return this;var e=this.z.redInvm();return this.x=this.x.redMul(e),this.y=this.y.redMul(e),this.t&&(this.t=this.t.redMul(e)),this.z=this.curve.one,this.zOne=!0,this},Point$4.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},Point$4.prototype.getX=function(){return this.normalize(),this.x.fromRed()},Point$4.prototype.getY=function(){return this.normalize(),this.y.fromRed()},Point$4.prototype.eq=function(e){return this===e||0===this.getX().cmp(e.getX())&&0===this.getY().cmp(e.getY())},Point$4.prototype.eqXToP=function(e){var t=e.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(t))return!0;for(var r=e.clone(),n=this.curve.redN.redMul(this.z);;){if(r.iadd(this.curve.n),r.cmp(this.curve.p)>=0)return!1;if(t.redIAdd(n),0===this.x.cmp(t))return!0}},Point$4.prototype.toP=Point$4.prototype.normalize,Point$4.prototype.mixedAdd=Point$4.prototype.add,function(e){var t=e;t.base=base$4,t.short=short$1,t.mont=mont$1,t.edwards=edwards$1}(curve$1);var curves$4={},hash$6={},utils$v={},assert$k=minimalisticAssert$1,inherits$3=requireInherits_browser();function isSurrogatePair(e,t){return 55296==(64512&e.charCodeAt(t))&&(!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1)))}function toArray(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var r=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),o=0;o>6|192,r[n++]=63&i|128):isSurrogatePair(e,o)?(i=65536+((1023&i)<<10)+(1023&e.charCodeAt(++o)),r[n++]=i>>18|240,r[n++]=i>>12&63|128,r[n++]=i>>6&63|128,r[n++]=63&i|128):(r[n++]=i>>12|224,r[n++]=i>>6&63|128,r[n++]=63&i|128)}else for(o=0;o>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function toHex32(e,t){for(var r="",n=0;n>>0}return i}function split32(e,t){for(var r=new Array(4*e.length),n=0,o=0;n>>24,r[o+1]=i>>>16&255,r[o+2]=i>>>8&255,r[o+3]=255&i):(r[o+3]=i>>>24,r[o+2]=i>>>16&255,r[o+1]=i>>>8&255,r[o]=255&i)}return r}function rotr32$1(e,t){return e>>>t|e<<32-t}function rotl32$2(e,t){return e<>>32-t}function sum32$3(e,t){return e+t>>>0}function sum32_3$1(e,t,r){return e+t+r>>>0}function sum32_4$2(e,t,r,n){return e+t+r+n>>>0}function sum32_5$2(e,t,r,n,o){return e+t+r+n+o>>>0}function sum64$1(e,t,r,n){var o=e[t],i=n+e[t+1]>>>0,s=(i>>0,e[t+1]=i}function sum64_hi$1(e,t,r,n){return(t+n>>>0>>0}function sum64_lo$1(e,t,r,n){return t+n>>>0}function sum64_4_hi$1(e,t,r,n,o,i,s,a){var c=0,u=t;return c+=(u=u+n>>>0)>>0)>>0)>>0}function sum64_4_lo$1(e,t,r,n,o,i,s,a){return t+n+i+a>>>0}function sum64_5_hi$1(e,t,r,n,o,i,s,a,c,u){var l=0,d=t;return l+=(d=d+n>>>0)>>0)>>0)>>0)>>0}function sum64_5_lo$1(e,t,r,n,o,i,s,a,c,u){return t+n+i+a+u>>>0}function rotr64_hi$1(e,t,r){return(t<<32-r|e>>>r)>>>0}function rotr64_lo$1(e,t,r){return(e<<32-r|t>>>r)>>>0}function shr64_hi$1(e,t,r){return e>>>r}function shr64_lo$1(e,t,r){return(e<<32-r|t>>>r)>>>0}utils$v.inherits=inherits$3,utils$v.toArray=toArray,utils$v.toHex=toHex$1,utils$v.htonl=htonl,utils$v.toHex32=toHex32,utils$v.zero2=zero2,utils$v.zero8=zero8,utils$v.join32=join32,utils$v.split32=split32,utils$v.rotr32=rotr32$1,utils$v.rotl32=rotl32$2,utils$v.sum32=sum32$3,utils$v.sum32_3=sum32_3$1,utils$v.sum32_4=sum32_4$2,utils$v.sum32_5=sum32_5$2,utils$v.sum64=sum64$1,utils$v.sum64_hi=sum64_hi$1,utils$v.sum64_lo=sum64_lo$1,utils$v.sum64_4_hi=sum64_4_hi$1,utils$v.sum64_4_lo=sum64_4_lo$1,utils$v.sum64_5_hi=sum64_5_hi$1,utils$v.sum64_5_lo=sum64_5_lo$1,utils$v.rotr64_hi=rotr64_hi$1,utils$v.rotr64_lo=rotr64_lo$1,utils$v.shr64_hi=shr64_hi$1,utils$v.shr64_lo=shr64_lo$1;var common$5={},utils$u=utils$v,assert$j=minimalisticAssert$1;function BlockHash$4(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}common$5.BlockHash=BlockHash$4,BlockHash$4.prototype.update=function(e,t){if(e=utils$u.toArray(e,t),this.pending?this.pending=this.pending.concat(e):this.pending=e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var r=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-r,e.length),0===this.pending.length&&(this.pending=null),e=utils$u.join32(e,0,e.length-r,this.endian);for(var n=0;n>>24&255,n[o++]=e>>>16&255,n[o++]=e>>>8&255,n[o++]=255&e}else for(n[o++]=255&e,n[o++]=e>>>8&255,n[o++]=e>>>16&255,n[o++]=e>>>24&255,n[o++]=0,n[o++]=0,n[o++]=0,n[o++]=0,i=8;i>>3}function g1_256$1(e){return rotr32(e,17)^rotr32(e,19)^e>>>10}common$4.ft_1=ft_1$1,common$4.ch32=ch32$1,common$4.maj32=maj32$1,common$4.p32=p32,common$4.s0_256=s0_256$1,common$4.s1_256=s1_256$1,common$4.g0_256=g0_256$1,common$4.g1_256=g1_256$1;var utils$s=utils$v,common$3=common$5,shaCommon$1=common$4,rotl32$1=utils$s.rotl32,sum32$2=utils$s.sum32,sum32_5$1=utils$s.sum32_5,ft_1=shaCommon$1.ft_1,BlockHash$3=common$3.BlockHash,sha1_K=[1518500249,1859775393,2400959708,3395469782];function SHA1(){if(!(this instanceof SHA1))return new SHA1;BlockHash$3.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}utils$s.inherits(SHA1,BlockHash$3);var _1=SHA1;SHA1.blockSize=512,SHA1.outSize=160,SHA1.hmacStrength=80,SHA1.padLength=64,SHA1.prototype._update=function(e,t){for(var r=this.W,n=0;n<16;n++)r[n]=e[t+n];for(;nthis.blockSize&&(e=(new this.Hash).update(e).digest()),assert$g(e.length<=this.blockSize);for(var t=e.length;t=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,r,n)}var hmacDrbg$1=HmacDRBG$2;HmacDRBG$2.prototype._init=function(e,t,r){var n=e.concat(t).concat(r);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var o=0;o=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(e.concat(r||[])),this._reseed=1},HmacDRBG$2.prototype.generate=function(e,t,r,n){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof t&&(n=r,r=t,t=null),r&&(r=utils$l.toArray(r,n||"hex"),this._update(r));for(var o=[];o.length"};var BN$a=bnExports$1,utils$j=utils$B,assert$d=utils$j.assert;function Signature$7(e,t){if(e instanceof Signature$7)return e;this._importDER(e,t)||(assert$d(e.r&&e.s,"Signature without r or s"),this.r=new BN$a(e.r,16),this.s=new BN$a(e.s,16),void 0===e.recoveryParam?this.recoveryParam=null:this.recoveryParam=e.recoveryParam)}var signature$4=Signature$7,ec$2,hasRequiredEc;function Position$2(){this.place=0}function getLength$2(e,t){var r=e[t.place++];if(!(128&r))return r;var n=15&r;if(0===n||n>4)return!1;if(0===e[t.place])return!1;for(var o=0,i=0,s=t.place;i>>=0;return!(o<=127)&&(t.place=s,o)}function rmPadding$2(e){for(var t=0,r=e.length-1;!e[t]&&!(128&e[t+1])&&t>>3);for(e.push(128|r);--r;)e.push(t>>>(r<<3)&255);e.push(t)}}function requireEc(){if(hasRequiredEc)return ec$2;hasRequiredEc=1;var e=bnExports$1,t=hmacDrbg$1,r=utils$B,n=curves$4,o=requireBrorand(),i=r.assert,s=key$4,a=signature$4;function c(e){if(!(this instanceof c))return new c(e);"string"==typeof e&&(i(Object.prototype.hasOwnProperty.call(n,e),"Unknown curve "+e),e=n[e]),e instanceof n.PresetCurve&&(e={curve:e}),this.curve=e.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=e.curve.g,this.g.precompute(e.curve.n.bitLength()+1),this.hash=e.hash||e.curve.hash}return ec$2=c,c.prototype.keyPair=function(e){return new s(this,e)},c.prototype.keyFromPrivate=function(e,t){return s.fromPrivate(this,e,t)},c.prototype.keyFromPublic=function(e,t){return s.fromPublic(this,e,t)},c.prototype.genKeyPair=function(r){r||(r={});for(var n=new t({hash:this.hash,pers:r.pers,persEnc:r.persEnc||"utf8",entropy:r.entropy||o(this.hash.hmacStrength),entropyEnc:r.entropy&&r.entropyEnc||"utf8",nonce:this.n.toArray()}),i=this.n.byteLength(),s=this.n.sub(new e(2));;){var a=new e(n.generate(i));if(!(a.cmp(s)>0))return a.iaddn(1),this.keyFromPrivate(a)}},c.prototype._truncateToN=function(t,r,n){var o;if(e.isBN(t)||"number"==typeof t)o=(t=new e(t,16)).byteLength();else if("object"==typeof t)o=t.length,t=new e(t,16);else{var i=t.toString();o=i.length+1>>>1,t=new e(i,16)}"number"!=typeof n&&(n=8*o);var s=n-this.n.bitLength();return s>0&&(t=t.ushrn(s)),!r&&t.cmp(this.n)>=0?t.sub(this.n):t},c.prototype.sign=function(r,n,o,s){if("object"==typeof o&&(s=o,o=null),s||(s={}),"string"!=typeof r&&"number"!=typeof r&&!e.isBN(r)){i("object"==typeof r&&r&&"number"==typeof r.length,"Expected message to be an array-like, a hex string, or a BN instance"),i(r.length>>>0===r.length);for(var c=0;c=0)){var y=this.g.mul(m);if(!y.isInfinity()){var g=y.getX(),b=g.umod(this.n);if(0!==b.cmpn(0)){var w=m.invm(this.n).mul(b.mul(n.getPrivate()).iadd(r));if(0!==(w=w.umod(this.n)).cmpn(0)){var _=(y.getY().isOdd()?1:0)|(0!==g.cmp(b)?2:0);return s.canonical&&w.cmp(this.nh)>0&&(w=this.n.sub(w),_^=1),new a({r:b,s:w,recoveryParam:_})}}}}}},c.prototype.verify=function(e,t,r,n,o){o||(o={}),e=this._truncateToN(e,!1,o.msgBitLength),r=this.keyFromPublic(r,n);var i=(t=new a(t,"hex")).r,s=t.s;if(i.cmpn(1)<0||i.cmp(this.n)>=0)return!1;if(s.cmpn(1)<0||s.cmp(this.n)>=0)return!1;var c,u=s.invm(this.n),l=u.mul(e).umod(this.n),d=u.mul(i).umod(this.n);return this.curve._maxwellTrick?!(c=this.g.jmulAdd(l,r.getPublic(),d)).isInfinity()&&c.eqXToP(i):!(c=this.g.mulAdd(l,r.getPublic(),d)).isInfinity()&&0===c.getX().umod(this.n).cmp(i)},c.prototype.recoverPubKey=function(t,r,n,o){i((3&n)===n,"The recovery param is more than two bits"),r=new a(r,o);var s=this.n,c=new e(t),u=r.r,l=r.s,d=1&n,h=n>>1;if(u.cmp(this.curve.p.umod(this.curve.n))>=0&&h)throw new Error("Unable to find sencond key candinate");u=h?this.curve.pointFromX(u.add(this.curve.n),d):this.curve.pointFromX(u,d);var f=r.r.invm(s),p=s.sub(c).mul(f).umod(s),m=l.mul(f).umod(s);return this.g.mulAdd(p,u,m)},c.prototype.getKeyRecoveryParam=function(e,t,r,n){if(null!==(t=new a(t,n)).recoveryParam)return t.recoveryParam;for(var o=0;o<4;o++){var i;try{i=this.recoverPubKey(e,t,o)}catch(s){continue}if(i.eq(r))return o}throw new Error("Unable to find valid recovery factor")},ec$2}Signature$7.prototype._importDER=function(e,t){e=utils$j.toArray(e,t);var r=new Position$2;if(48!==e[r.place++])return!1;var n=getLength$2(e,r);if(!1===n)return!1;if(n+r.place!==e.length)return!1;if(2!==e[r.place++])return!1;var o=getLength$2(e,r);if(!1===o)return!1;if(128&e[r.place])return!1;var i=e.slice(r.place,o+r.place);if(r.place+=o,2!==e[r.place++])return!1;var s=getLength$2(e,r);if(!1===s)return!1;if(e.length!==s+r.place)return!1;if(128&e[r.place])return!1;var a=e.slice(r.place,s+r.place);if(0===i[0]){if(!(128&i[1]))return!1;i=i.slice(1)}if(0===a[0]){if(!(128&a[1]))return!1;a=a.slice(1)}return this.r=new BN$a(i),this.s=new BN$a(a),this.recoveryParam=null,!0},Signature$7.prototype.toDER=function(e){var t=this.r.toArray(),r=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&r[0]&&(r=[0].concat(r)),t=rmPadding$2(t),r=rmPadding$2(r);!(r[0]||128&r[1]);)r=r.slice(1);var n=[2];constructLength$2(n,t.length),(n=n.concat(t)).push(2),constructLength$2(n,r.length);var o=n.concat(r),i=[48];return constructLength$2(i,o.length),i=i.concat(o),utils$j.encode(i,e)};var utils$i=utils$B,assert$c=utils$i.assert,parseBytes$5=utils$i.parseBytes,cachedProperty$3=utils$i.cachedProperty;function KeyPair$6(e,t){this.eddsa=e,this._secret=parseBytes$5(t.secret),e.isPoint(t.pub)?this._pub=t.pub:this._pubBytes=parseBytes$5(t.pub)}KeyPair$6.fromPublic=function(e,t){return t instanceof KeyPair$6?t:new KeyPair$6(e,{pub:t})},KeyPair$6.fromSecret=function(e,t){return t instanceof KeyPair$6?t:new KeyPair$6(e,{secret:t})},KeyPair$6.prototype.secret=function(){return this._secret},cachedProperty$3(KeyPair$6,"pubBytes",(function(){return this.eddsa.encodePoint(this.pub())})),cachedProperty$3(KeyPair$6,"pub",(function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())})),cachedProperty$3(KeyPair$6,"privBytes",(function(){var e=this.eddsa,t=this.hash(),r=e.encodingLength-1,n=t.slice(0,e.encodingLength);return n[0]&=248,n[r]&=127,n[r]|=64,n})),cachedProperty$3(KeyPair$6,"priv",(function(){return this.eddsa.decodeInt(this.privBytes())})),cachedProperty$3(KeyPair$6,"hash",(function(){return this.eddsa.hash().update(this.secret()).digest()})),cachedProperty$3(KeyPair$6,"messagePrefix",(function(){return this.hash().slice(this.eddsa.encodingLength)})),KeyPair$6.prototype.sign=function(e){return assert$c(this._secret,"KeyPair can only verify"),this.eddsa.sign(e,this)},KeyPair$6.prototype.verify=function(e,t){return this.eddsa.verify(e,t,this)},KeyPair$6.prototype.getSecret=function(e){return assert$c(this._secret,"KeyPair is public only"),utils$i.encode(this.secret(),e)},KeyPair$6.prototype.getPublic=function(e){return utils$i.encode(this.pubBytes(),e)};var key$3=KeyPair$6,BN$9=bnExports$1,utils$h=utils$B,assert$b=utils$h.assert,cachedProperty$2=utils$h.cachedProperty,parseBytes$4=utils$h.parseBytes;function Signature$6(e,t){this.eddsa=e,"object"!=typeof t&&(t=parseBytes$4(t)),Array.isArray(t)&&(assert$b(t.length===2*e.encodingLength,"Signature has invalid size"),t={R:t.slice(0,e.encodingLength),S:t.slice(e.encodingLength)}),assert$b(t.R&&t.S,"Signature without R or S"),e.isPoint(t.R)&&(this._R=t.R),t.S instanceof BN$9&&(this._S=t.S),this._Rencoded=Array.isArray(t.R)?t.R:t.Rencoded,this._Sencoded=Array.isArray(t.S)?t.S:t.Sencoded}cachedProperty$2(Signature$6,"S",(function(){return this.eddsa.decodeInt(this.Sencoded())})),cachedProperty$2(Signature$6,"R",(function(){return this.eddsa.decodePoint(this.Rencoded())})),cachedProperty$2(Signature$6,"Rencoded",(function(){return this.eddsa.encodePoint(this.R())})),cachedProperty$2(Signature$6,"Sencoded",(function(){return this.eddsa.encodeInt(this.S())})),Signature$6.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())},Signature$6.prototype.toHex=function(){return utils$h.encode(this.toBytes(),"hex").toUpperCase()};var signature$3=Signature$6,hash$3=hash$6,curves$3=curves$4,utils$g=utils$B,assert$a=utils$g.assert,parseBytes$3=utils$g.parseBytes,KeyPair$5=key$3,Signature$5=signature$3;function EDDSA$1(e){if(assert$a("ed25519"===e,"only tested with ed25519 so far"),!(this instanceof EDDSA$1))return new EDDSA$1(e);e=curves$3[e].curve,this.curve=e,this.g=e.g,this.g.precompute(e.n.bitLength()+1),this.pointClass=e.point().constructor,this.encodingLength=Math.ceil(e.n.bitLength()/8),this.hash=hash$3.sha512}var eddsa$1=EDDSA$1,hasRequiredElliptic;function requireElliptic(){return hasRequiredElliptic||(hasRequiredElliptic=1,function(e){var t=e;t.version=require$$0$4.version,t.utils=utils$B,t.rand=requireBrorand(),t.curve=curve$1,t.curves=curves$4,t.ec=requireEc(),t.eddsa=eddsa$1}(elliptic$1)),elliptic$1}EDDSA$1.prototype.sign=function(e,t){e=parseBytes$3(e);var r=this.keyFromSecret(t),n=this.hashInt(r.messagePrefix(),e),o=this.g.mul(n),i=this.encodePoint(o),s=this.hashInt(i,r.pubBytes(),e).mul(r.priv()),a=n.add(s).umod(this.curve.n);return this.makeSignature({R:o,S:a,Rencoded:i})},EDDSA$1.prototype.verify=function(e,t,r){if(e=parseBytes$3(e),(t=this.makeSignature(t)).S().gte(t.eddsa.curve.n)||t.S().isNeg())return!1;var n=this.keyFromPublic(r),o=this.hashInt(t.Rencoded(),n.pubBytes(),e),i=this.g.mul(t.S());return t.R().add(n.pub().mul(o)).eq(i)},EDDSA$1.prototype.hashInt=function(){for(var e=this.hash(),t=0;t=65&&r<=70?r-55:r>=97&&r<=102?r-87:r-48&15}function a(e,t,r){var n=s(e,r);return r-1>=t&&(n|=s(e,r-1)<<4),n}function c(e,t,r,n){for(var o=0,i=Math.min(e.length,r),s=t;s=49?a-49+10:a>=17?a-17+10:a}return o}o.isBN=function(e){return e instanceof o||null!==e&&"object"==typeof e&&e.constructor.wordSize===o.wordSize&&Array.isArray(e.words)},o.max=function(e,t){return e.cmp(t)>0?e:t},o.min=function(e,t){return e.cmp(t)<0?e:t},o.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),r(t===(0|t)&&t>=2&&t<=36);var o=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(o++,this.negative=1),o=0;o-=3)s=e[o]|e[o-1]<<8|e[o-2]<<16,this.words[i]|=s<>>26-a&67108863,(a+=24)>=26&&(a-=26,i++);else if("le"===n)for(o=0,i=0;o>>26-a&67108863,(a+=24)>=26&&(a-=26,i++);return this.strip()},o.prototype._parseHex=function(e,t,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var n=0;n=t;n-=2)o=a(e,t,n)<=18?(i-=18,s+=1,this.words[s]|=o>>>26):i+=8;else for(n=(e.length-t)%2==0?t+1:t;n=18?(i-=18,s+=1,this.words[s]|=o>>>26):i+=8;this.strip()},o.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var n=0,o=1;o<=67108863;o*=t)n++;n--,o=o/t|0;for(var i=e.length-r,s=i%n,a=Math.min(i,i-s)+r,u=0,l=r;l1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?""};var u=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],l=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],d=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function h(e,t,r){r.negative=t.negative^e.negative;var n=e.length+t.length|0;r.length=n,n=n-1|0;var o=0|e.words[0],i=0|t.words[0],s=o*i,a=67108863&s,c=s/67108864|0;r.words[0]=a;for(var u=1;u>>26,d=67108863&c,h=Math.min(u,t.length-1),f=Math.max(0,u-e.length+1);f<=h;f++){var p=u-f|0;l+=(s=(o=0|e.words[p])*(i=0|t.words[f])+d)/67108864|0,d=67108863&s}r.words[u]=0|d,c=0|l}return 0!==c?r.words[u]=0|c:r.length--,r.strip()}o.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var o=0,i=0,s=0;s>>24-o&16777215,(o+=2)>=26&&(o-=26,s--),n=0!==i||s!==this.length-1?u[6-c.length]+c+n:c+n}for(0!==i&&(n=i.toString(16)+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var h=l[e],f=d[e];n="";var p=this.clone();for(p.negative=0;!p.isZero();){var m=p.modn(f).toString(e);n=(p=p.idivn(f)).isZero()?m+n:u[h-m.length]+m+n}for(this.isZero()&&(n="0"+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(e,t){return r(void 0!==i),this.toArrayLike(i,e,t)},o.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},o.prototype.toArrayLike=function(e,t,n){var o=this.byteLength(),i=n||Math.max(1,o);r(o<=i,"byte array longer than desired length"),r(i>0,"Requested array length <= 0"),this.strip();var s,a,c="le"===t,u=new e(i),l=this.clone();if(c){for(a=0;!l.isZero();a++)s=l.andln(255),l.iushrn(8),u[a]=s;for(;a=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},o.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 8191&t||(r+=13,t>>>=13),127&t||(r+=7,t>>>=7),15&t||(r+=4,t>>>=4),3&t||(r+=2,t>>>=2),1&t||r++,r},o.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},o.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},o.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;re.length?this.clone().iand(e):e.clone().iand(this)},o.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},o.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var n=0;ne.length?this.clone().ixor(e):e.clone().ixor(this)},o.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},o.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var o=0;o0&&(this.words[o]=~this.words[o]&67108863>>26-n),this.strip()},o.prototype.notn=function(e){return this.clone().inotn(e)},o.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var n=e/26|0,o=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<e.length?(r=this,n=e):(r=e,n=this);for(var o=0,i=0;i>>26;for(;0!==o&&i>>26;if(this.length=r.length,0!==o)this.words[this.length]=o,this.length++;else if(r!==this)for(;ie.length?this.clone().iadd(e):e.clone().iadd(this)},o.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,n,o=this.cmp(e);if(0===o)return this.negative=0,this.length=1,this.words[0]=0,this;o>0?(r=this,n=e):(r=e,n=this);for(var i=0,s=0;s>26,this.words[s]=67108863&t;for(;0!==i&&s>26,this.words[s]=67108863&t;if(0===i&&s>>13,f=0|s[1],p=8191&f,m=f>>>13,y=0|s[2],g=8191&y,b=y>>>13,w=0|s[3],_=8191&w,v=w>>>13,$=0|s[4],I=8191&$,k=$>>>13,A=0|s[5],S=8191&A,E=A>>>13,T=0|s[6],P=8191&T,R=T>>>13,C=0|s[7],O=8191&C,M=C>>>13,N=0|s[8],B=8191&N,x=N>>>13,D=0|s[9],L=8191&D,U=D>>>13,F=0|a[0],j=8191&F,q=F>>>13,K=0|a[1],z=8191&K,H=K>>>13,G=0|a[2],W=8191&G,V=G>>>13,Y=0|a[3],J=8191&Y,Q=Y>>>13,Z=0|a[4],X=8191&Z,ee=Z>>>13,te=0|a[5],re=8191&te,ne=te>>>13,oe=0|a[6],ie=8191&oe,se=oe>>>13,ae=0|a[7],ce=8191&ae,ue=ae>>>13,le=0|a[8],de=8191&le,he=le>>>13,fe=0|a[9],pe=8191&fe,me=fe>>>13;r.negative=e.negative^t.negative,r.length=19;var ye=(u+(n=Math.imul(d,j))|0)+((8191&(o=(o=Math.imul(d,q))+Math.imul(h,j)|0))<<13)|0;u=((i=Math.imul(h,q))+(o>>>13)|0)+(ye>>>26)|0,ye&=67108863,n=Math.imul(p,j),o=(o=Math.imul(p,q))+Math.imul(m,j)|0,i=Math.imul(m,q);var ge=(u+(n=n+Math.imul(d,z)|0)|0)+((8191&(o=(o=o+Math.imul(d,H)|0)+Math.imul(h,z)|0))<<13)|0;u=((i=i+Math.imul(h,H)|0)+(o>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(g,j),o=(o=Math.imul(g,q))+Math.imul(b,j)|0,i=Math.imul(b,q),n=n+Math.imul(p,z)|0,o=(o=o+Math.imul(p,H)|0)+Math.imul(m,z)|0,i=i+Math.imul(m,H)|0;var be=(u+(n=n+Math.imul(d,W)|0)|0)+((8191&(o=(o=o+Math.imul(d,V)|0)+Math.imul(h,W)|0))<<13)|0;u=((i=i+Math.imul(h,V)|0)+(o>>>13)|0)+(be>>>26)|0,be&=67108863,n=Math.imul(_,j),o=(o=Math.imul(_,q))+Math.imul(v,j)|0,i=Math.imul(v,q),n=n+Math.imul(g,z)|0,o=(o=o+Math.imul(g,H)|0)+Math.imul(b,z)|0,i=i+Math.imul(b,H)|0,n=n+Math.imul(p,W)|0,o=(o=o+Math.imul(p,V)|0)+Math.imul(m,W)|0,i=i+Math.imul(m,V)|0;var we=(u+(n=n+Math.imul(d,J)|0)|0)+((8191&(o=(o=o+Math.imul(d,Q)|0)+Math.imul(h,J)|0))<<13)|0;u=((i=i+Math.imul(h,Q)|0)+(o>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(I,j),o=(o=Math.imul(I,q))+Math.imul(k,j)|0,i=Math.imul(k,q),n=n+Math.imul(_,z)|0,o=(o=o+Math.imul(_,H)|0)+Math.imul(v,z)|0,i=i+Math.imul(v,H)|0,n=n+Math.imul(g,W)|0,o=(o=o+Math.imul(g,V)|0)+Math.imul(b,W)|0,i=i+Math.imul(b,V)|0,n=n+Math.imul(p,J)|0,o=(o=o+Math.imul(p,Q)|0)+Math.imul(m,J)|0,i=i+Math.imul(m,Q)|0;var _e=(u+(n=n+Math.imul(d,X)|0)|0)+((8191&(o=(o=o+Math.imul(d,ee)|0)+Math.imul(h,X)|0))<<13)|0;u=((i=i+Math.imul(h,ee)|0)+(o>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(S,j),o=(o=Math.imul(S,q))+Math.imul(E,j)|0,i=Math.imul(E,q),n=n+Math.imul(I,z)|0,o=(o=o+Math.imul(I,H)|0)+Math.imul(k,z)|0,i=i+Math.imul(k,H)|0,n=n+Math.imul(_,W)|0,o=(o=o+Math.imul(_,V)|0)+Math.imul(v,W)|0,i=i+Math.imul(v,V)|0,n=n+Math.imul(g,J)|0,o=(o=o+Math.imul(g,Q)|0)+Math.imul(b,J)|0,i=i+Math.imul(b,Q)|0,n=n+Math.imul(p,X)|0,o=(o=o+Math.imul(p,ee)|0)+Math.imul(m,X)|0,i=i+Math.imul(m,ee)|0;var ve=(u+(n=n+Math.imul(d,re)|0)|0)+((8191&(o=(o=o+Math.imul(d,ne)|0)+Math.imul(h,re)|0))<<13)|0;u=((i=i+Math.imul(h,ne)|0)+(o>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(P,j),o=(o=Math.imul(P,q))+Math.imul(R,j)|0,i=Math.imul(R,q),n=n+Math.imul(S,z)|0,o=(o=o+Math.imul(S,H)|0)+Math.imul(E,z)|0,i=i+Math.imul(E,H)|0,n=n+Math.imul(I,W)|0,o=(o=o+Math.imul(I,V)|0)+Math.imul(k,W)|0,i=i+Math.imul(k,V)|0,n=n+Math.imul(_,J)|0,o=(o=o+Math.imul(_,Q)|0)+Math.imul(v,J)|0,i=i+Math.imul(v,Q)|0,n=n+Math.imul(g,X)|0,o=(o=o+Math.imul(g,ee)|0)+Math.imul(b,X)|0,i=i+Math.imul(b,ee)|0,n=n+Math.imul(p,re)|0,o=(o=o+Math.imul(p,ne)|0)+Math.imul(m,re)|0,i=i+Math.imul(m,ne)|0;var $e=(u+(n=n+Math.imul(d,ie)|0)|0)+((8191&(o=(o=o+Math.imul(d,se)|0)+Math.imul(h,ie)|0))<<13)|0;u=((i=i+Math.imul(h,se)|0)+(o>>>13)|0)+($e>>>26)|0,$e&=67108863,n=Math.imul(O,j),o=(o=Math.imul(O,q))+Math.imul(M,j)|0,i=Math.imul(M,q),n=n+Math.imul(P,z)|0,o=(o=o+Math.imul(P,H)|0)+Math.imul(R,z)|0,i=i+Math.imul(R,H)|0,n=n+Math.imul(S,W)|0,o=(o=o+Math.imul(S,V)|0)+Math.imul(E,W)|0,i=i+Math.imul(E,V)|0,n=n+Math.imul(I,J)|0,o=(o=o+Math.imul(I,Q)|0)+Math.imul(k,J)|0,i=i+Math.imul(k,Q)|0,n=n+Math.imul(_,X)|0,o=(o=o+Math.imul(_,ee)|0)+Math.imul(v,X)|0,i=i+Math.imul(v,ee)|0,n=n+Math.imul(g,re)|0,o=(o=o+Math.imul(g,ne)|0)+Math.imul(b,re)|0,i=i+Math.imul(b,ne)|0,n=n+Math.imul(p,ie)|0,o=(o=o+Math.imul(p,se)|0)+Math.imul(m,ie)|0,i=i+Math.imul(m,se)|0;var Ie=(u+(n=n+Math.imul(d,ce)|0)|0)+((8191&(o=(o=o+Math.imul(d,ue)|0)+Math.imul(h,ce)|0))<<13)|0;u=((i=i+Math.imul(h,ue)|0)+(o>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,n=Math.imul(B,j),o=(o=Math.imul(B,q))+Math.imul(x,j)|0,i=Math.imul(x,q),n=n+Math.imul(O,z)|0,o=(o=o+Math.imul(O,H)|0)+Math.imul(M,z)|0,i=i+Math.imul(M,H)|0,n=n+Math.imul(P,W)|0,o=(o=o+Math.imul(P,V)|0)+Math.imul(R,W)|0,i=i+Math.imul(R,V)|0,n=n+Math.imul(S,J)|0,o=(o=o+Math.imul(S,Q)|0)+Math.imul(E,J)|0,i=i+Math.imul(E,Q)|0,n=n+Math.imul(I,X)|0,o=(o=o+Math.imul(I,ee)|0)+Math.imul(k,X)|0,i=i+Math.imul(k,ee)|0,n=n+Math.imul(_,re)|0,o=(o=o+Math.imul(_,ne)|0)+Math.imul(v,re)|0,i=i+Math.imul(v,ne)|0,n=n+Math.imul(g,ie)|0,o=(o=o+Math.imul(g,se)|0)+Math.imul(b,ie)|0,i=i+Math.imul(b,se)|0,n=n+Math.imul(p,ce)|0,o=(o=o+Math.imul(p,ue)|0)+Math.imul(m,ce)|0,i=i+Math.imul(m,ue)|0;var ke=(u+(n=n+Math.imul(d,de)|0)|0)+((8191&(o=(o=o+Math.imul(d,he)|0)+Math.imul(h,de)|0))<<13)|0;u=((i=i+Math.imul(h,he)|0)+(o>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(L,j),o=(o=Math.imul(L,q))+Math.imul(U,j)|0,i=Math.imul(U,q),n=n+Math.imul(B,z)|0,o=(o=o+Math.imul(B,H)|0)+Math.imul(x,z)|0,i=i+Math.imul(x,H)|0,n=n+Math.imul(O,W)|0,o=(o=o+Math.imul(O,V)|0)+Math.imul(M,W)|0,i=i+Math.imul(M,V)|0,n=n+Math.imul(P,J)|0,o=(o=o+Math.imul(P,Q)|0)+Math.imul(R,J)|0,i=i+Math.imul(R,Q)|0,n=n+Math.imul(S,X)|0,o=(o=o+Math.imul(S,ee)|0)+Math.imul(E,X)|0,i=i+Math.imul(E,ee)|0,n=n+Math.imul(I,re)|0,o=(o=o+Math.imul(I,ne)|0)+Math.imul(k,re)|0,i=i+Math.imul(k,ne)|0,n=n+Math.imul(_,ie)|0,o=(o=o+Math.imul(_,se)|0)+Math.imul(v,ie)|0,i=i+Math.imul(v,se)|0,n=n+Math.imul(g,ce)|0,o=(o=o+Math.imul(g,ue)|0)+Math.imul(b,ce)|0,i=i+Math.imul(b,ue)|0,n=n+Math.imul(p,de)|0,o=(o=o+Math.imul(p,he)|0)+Math.imul(m,de)|0,i=i+Math.imul(m,he)|0;var Ae=(u+(n=n+Math.imul(d,pe)|0)|0)+((8191&(o=(o=o+Math.imul(d,me)|0)+Math.imul(h,pe)|0))<<13)|0;u=((i=i+Math.imul(h,me)|0)+(o>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(L,z),o=(o=Math.imul(L,H))+Math.imul(U,z)|0,i=Math.imul(U,H),n=n+Math.imul(B,W)|0,o=(o=o+Math.imul(B,V)|0)+Math.imul(x,W)|0,i=i+Math.imul(x,V)|0,n=n+Math.imul(O,J)|0,o=(o=o+Math.imul(O,Q)|0)+Math.imul(M,J)|0,i=i+Math.imul(M,Q)|0,n=n+Math.imul(P,X)|0,o=(o=o+Math.imul(P,ee)|0)+Math.imul(R,X)|0,i=i+Math.imul(R,ee)|0,n=n+Math.imul(S,re)|0,o=(o=o+Math.imul(S,ne)|0)+Math.imul(E,re)|0,i=i+Math.imul(E,ne)|0,n=n+Math.imul(I,ie)|0,o=(o=o+Math.imul(I,se)|0)+Math.imul(k,ie)|0,i=i+Math.imul(k,se)|0,n=n+Math.imul(_,ce)|0,o=(o=o+Math.imul(_,ue)|0)+Math.imul(v,ce)|0,i=i+Math.imul(v,ue)|0,n=n+Math.imul(g,de)|0,o=(o=o+Math.imul(g,he)|0)+Math.imul(b,de)|0,i=i+Math.imul(b,he)|0;var Se=(u+(n=n+Math.imul(p,pe)|0)|0)+((8191&(o=(o=o+Math.imul(p,me)|0)+Math.imul(m,pe)|0))<<13)|0;u=((i=i+Math.imul(m,me)|0)+(o>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(L,W),o=(o=Math.imul(L,V))+Math.imul(U,W)|0,i=Math.imul(U,V),n=n+Math.imul(B,J)|0,o=(o=o+Math.imul(B,Q)|0)+Math.imul(x,J)|0,i=i+Math.imul(x,Q)|0,n=n+Math.imul(O,X)|0,o=(o=o+Math.imul(O,ee)|0)+Math.imul(M,X)|0,i=i+Math.imul(M,ee)|0,n=n+Math.imul(P,re)|0,o=(o=o+Math.imul(P,ne)|0)+Math.imul(R,re)|0,i=i+Math.imul(R,ne)|0,n=n+Math.imul(S,ie)|0,o=(o=o+Math.imul(S,se)|0)+Math.imul(E,ie)|0,i=i+Math.imul(E,se)|0,n=n+Math.imul(I,ce)|0,o=(o=o+Math.imul(I,ue)|0)+Math.imul(k,ce)|0,i=i+Math.imul(k,ue)|0,n=n+Math.imul(_,de)|0,o=(o=o+Math.imul(_,he)|0)+Math.imul(v,de)|0,i=i+Math.imul(v,he)|0;var Ee=(u+(n=n+Math.imul(g,pe)|0)|0)+((8191&(o=(o=o+Math.imul(g,me)|0)+Math.imul(b,pe)|0))<<13)|0;u=((i=i+Math.imul(b,me)|0)+(o>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(L,J),o=(o=Math.imul(L,Q))+Math.imul(U,J)|0,i=Math.imul(U,Q),n=n+Math.imul(B,X)|0,o=(o=o+Math.imul(B,ee)|0)+Math.imul(x,X)|0,i=i+Math.imul(x,ee)|0,n=n+Math.imul(O,re)|0,o=(o=o+Math.imul(O,ne)|0)+Math.imul(M,re)|0,i=i+Math.imul(M,ne)|0,n=n+Math.imul(P,ie)|0,o=(o=o+Math.imul(P,se)|0)+Math.imul(R,ie)|0,i=i+Math.imul(R,se)|0,n=n+Math.imul(S,ce)|0,o=(o=o+Math.imul(S,ue)|0)+Math.imul(E,ce)|0,i=i+Math.imul(E,ue)|0,n=n+Math.imul(I,de)|0,o=(o=o+Math.imul(I,he)|0)+Math.imul(k,de)|0,i=i+Math.imul(k,he)|0;var Te=(u+(n=n+Math.imul(_,pe)|0)|0)+((8191&(o=(o=o+Math.imul(_,me)|0)+Math.imul(v,pe)|0))<<13)|0;u=((i=i+Math.imul(v,me)|0)+(o>>>13)|0)+(Te>>>26)|0,Te&=67108863,n=Math.imul(L,X),o=(o=Math.imul(L,ee))+Math.imul(U,X)|0,i=Math.imul(U,ee),n=n+Math.imul(B,re)|0,o=(o=o+Math.imul(B,ne)|0)+Math.imul(x,re)|0,i=i+Math.imul(x,ne)|0,n=n+Math.imul(O,ie)|0,o=(o=o+Math.imul(O,se)|0)+Math.imul(M,ie)|0,i=i+Math.imul(M,se)|0,n=n+Math.imul(P,ce)|0,o=(o=o+Math.imul(P,ue)|0)+Math.imul(R,ce)|0,i=i+Math.imul(R,ue)|0,n=n+Math.imul(S,de)|0,o=(o=o+Math.imul(S,he)|0)+Math.imul(E,de)|0,i=i+Math.imul(E,he)|0;var Pe=(u+(n=n+Math.imul(I,pe)|0)|0)+((8191&(o=(o=o+Math.imul(I,me)|0)+Math.imul(k,pe)|0))<<13)|0;u=((i=i+Math.imul(k,me)|0)+(o>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,n=Math.imul(L,re),o=(o=Math.imul(L,ne))+Math.imul(U,re)|0,i=Math.imul(U,ne),n=n+Math.imul(B,ie)|0,o=(o=o+Math.imul(B,se)|0)+Math.imul(x,ie)|0,i=i+Math.imul(x,se)|0,n=n+Math.imul(O,ce)|0,o=(o=o+Math.imul(O,ue)|0)+Math.imul(M,ce)|0,i=i+Math.imul(M,ue)|0,n=n+Math.imul(P,de)|0,o=(o=o+Math.imul(P,he)|0)+Math.imul(R,de)|0,i=i+Math.imul(R,he)|0;var Re=(u+(n=n+Math.imul(S,pe)|0)|0)+((8191&(o=(o=o+Math.imul(S,me)|0)+Math.imul(E,pe)|0))<<13)|0;u=((i=i+Math.imul(E,me)|0)+(o>>>13)|0)+(Re>>>26)|0,Re&=67108863,n=Math.imul(L,ie),o=(o=Math.imul(L,se))+Math.imul(U,ie)|0,i=Math.imul(U,se),n=n+Math.imul(B,ce)|0,o=(o=o+Math.imul(B,ue)|0)+Math.imul(x,ce)|0,i=i+Math.imul(x,ue)|0,n=n+Math.imul(O,de)|0,o=(o=o+Math.imul(O,he)|0)+Math.imul(M,de)|0,i=i+Math.imul(M,he)|0;var Ce=(u+(n=n+Math.imul(P,pe)|0)|0)+((8191&(o=(o=o+Math.imul(P,me)|0)+Math.imul(R,pe)|0))<<13)|0;u=((i=i+Math.imul(R,me)|0)+(o>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,n=Math.imul(L,ce),o=(o=Math.imul(L,ue))+Math.imul(U,ce)|0,i=Math.imul(U,ue),n=n+Math.imul(B,de)|0,o=(o=o+Math.imul(B,he)|0)+Math.imul(x,de)|0,i=i+Math.imul(x,he)|0;var Oe=(u+(n=n+Math.imul(O,pe)|0)|0)+((8191&(o=(o=o+Math.imul(O,me)|0)+Math.imul(M,pe)|0))<<13)|0;u=((i=i+Math.imul(M,me)|0)+(o>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,n=Math.imul(L,de),o=(o=Math.imul(L,he))+Math.imul(U,de)|0,i=Math.imul(U,he);var Me=(u+(n=n+Math.imul(B,pe)|0)|0)+((8191&(o=(o=o+Math.imul(B,me)|0)+Math.imul(x,pe)|0))<<13)|0;u=((i=i+Math.imul(x,me)|0)+(o>>>13)|0)+(Me>>>26)|0,Me&=67108863;var Ne=(u+(n=Math.imul(L,pe))|0)+((8191&(o=(o=Math.imul(L,me))+Math.imul(U,pe)|0))<<13)|0;return u=((i=Math.imul(U,me))+(o>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,c[0]=ye,c[1]=ge,c[2]=be,c[3]=we,c[4]=_e,c[5]=ve,c[6]=$e,c[7]=Ie,c[8]=ke,c[9]=Ae,c[10]=Se,c[11]=Ee,c[12]=Te,c[13]=Pe,c[14]=Re,c[15]=Ce,c[16]=Oe,c[17]=Me,c[18]=Ne,0!==u&&(c[19]=u,r.length++),r};function p(e,t,r){return(new m).mulp(e,t,r)}function m(e,t){this.x=e,this.y=t}Math.imul||(f=h),o.prototype.mulTo=function(e,t){var r,n=this.length+e.length;return r=10===this.length&&10===e.length?f(this,e,t):n<63?h(this,e,t):n<1024?function(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var n=0,o=0,i=0;i>>26)|0)>>>26,s&=67108863}r.words[i]=a,n=s,s=o}return 0!==n?r.words[i]=n:r.length--,r.strip()}(this,e,t):p(this,e,t),r},m.prototype.makeRBT=function(e){for(var t=new Array(e),r=o.prototype._countBits(e)-1,n=0;n>=1;return n},m.prototype.permute=function(e,t,r,n,o,i){for(var s=0;s>>=1)o++;return 1<>>=13,n[2*s+1]=8191&i,i>>>=13;for(s=2*t;s>=26,t+=o/67108864|0,t+=i>>>26,this.words[n]=67108863&i}return 0!==t&&(this.words[n]=t,this.length++),this},o.prototype.muln=function(e){return this.clone().imuln(e)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r>>o}return t}(e);if(0===t.length)return new o(1);for(var r=this,n=0;n=0);var t,n=e%26,o=(e-n)/26,i=67108863>>>26-n<<26-n;if(0!==n){var s=0;for(t=0;t>>26-n}s&&(this.words[t]=s,this.length++)}if(0!==o){for(t=this.length-1;t>=0;t--)this.words[t+o]=this.words[t];for(t=0;t=0),o=t?(t-t%26)/26:0;var i=e%26,s=Math.min((e-i)/26,this.length),a=67108863^67108863>>>i<s)for(this.length-=s,u=0;u=0&&(0!==l||u>=o);u--){var d=0|this.words[u];this.words[u]=l<<26-i|d>>>i,l=d&a}return c&&0!==l&&(c.words[c.length++]=l),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(e,t,n){return r(0===this.negative),this.iushrn(e,t,n)},o.prototype.shln=function(e){return this.clone().ishln(e)},o.prototype.ushln=function(e){return this.clone().iushln(e)},o.prototype.shrn=function(e){return this.clone().ishrn(e)},o.prototype.ushrn=function(e){return this.clone().iushrn(e)},o.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26,o=1<=0);var t=e%26,n=(e-t)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==t&&n++,this.length=Math.min(n,this.length),0!==t){var o=67108863^67108863>>>t<=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},o.prototype.isubn=function(e){if(r("number"==typeof e),r(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t>26)-(c/67108864|0),this.words[o+n]=67108863&i}for(;o>26,this.words[o+n]=67108863&i;if(0===a)return this.strip();for(r(-1===a),a=0,o=0;o>26,this.words[o]=67108863&i;return this.negative=1,this.strip()},o.prototype._wordDiv=function(e,t){var r=(this.length,e.length),n=this.clone(),i=e,s=0|i.words[i.length-1];0!==(r=26-this._countBits(s))&&(i=i.ushln(r),n.iushln(r),s=0|i.words[i.length-1]);var a,c=n.length-i.length;if("mod"!==t){(a=new o(null)).length=c+1,a.words=new Array(a.length);for(var u=0;u=0;d--){var h=67108864*(0|n.words[i.length+d])+(0|n.words[i.length+d-1]);for(h=Math.min(h/s|0,67108863),n._ishlnsubmul(i,h,d);0!==n.negative;)h--,n.negative=0,n._ishlnsubmul(i,1,d),n.isZero()||(n.negative^=1);a&&(a.words[d]=h)}return a&&a.strip(),n.strip(),"div"!==t&&0!==r&&n.iushrn(r),{div:a||null,mod:n}},o.prototype.divmod=function(e,t,n){return r(!e.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===e.negative?(a=this.neg().divmod(e,t),"mod"!==t&&(i=a.div.neg()),"div"!==t&&(s=a.mod.neg(),n&&0!==s.negative&&s.iadd(e)),{div:i,mod:s}):0===this.negative&&0!==e.negative?(a=this.divmod(e.neg(),t),"mod"!==t&&(i=a.div.neg()),{div:i,mod:a.mod}):this.negative&e.negative?(a=this.neg().divmod(e.neg(),t),"div"!==t&&(s=a.mod.neg(),n&&0!==s.negative&&s.isub(e)),{div:a.div,mod:s}):e.length>this.length||this.cmp(e)<0?{div:new o(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new o(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new o(this.modn(e.words[0]))}:this._wordDiv(e,t);var i,s,a},o.prototype.div=function(e){return this.divmod(e,"div",!1).div},o.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},o.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},o.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,n=e.ushrn(1),o=e.andln(1),i=r.cmp(n);return i<0||1===o&&0===i?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},o.prototype.modn=function(e){r(e<=67108863);for(var t=(1<<26)%e,n=0,o=this.length-1;o>=0;o--)n=(t*n+(0|this.words[o]))%e;return n},o.prototype.idivn=function(e){r(e<=67108863);for(var t=0,n=this.length-1;n>=0;n--){var o=(0|this.words[n])+67108864*t;this.words[n]=o/e|0,t=o%e}return this.strip()},o.prototype.divn=function(e){return this.clone().idivn(e)},o.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i=new o(1),s=new o(0),a=new o(0),c=new o(1),u=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++u;for(var l=n.clone(),d=t.clone();!t.isZero();){for(var h=0,f=1;!(t.words[0]&f)&&h<26;++h,f<<=1);if(h>0)for(t.iushrn(h);h-- >0;)(i.isOdd()||s.isOdd())&&(i.iadd(l),s.isub(d)),i.iushrn(1),s.iushrn(1);for(var p=0,m=1;!(n.words[0]&m)&&p<26;++p,m<<=1);if(p>0)for(n.iushrn(p);p-- >0;)(a.isOdd()||c.isOdd())&&(a.iadd(l),c.isub(d)),a.iushrn(1),c.iushrn(1);t.cmp(n)>=0?(t.isub(n),i.isub(a),s.isub(c)):(n.isub(t),a.isub(i),c.isub(s))}return{a:a,b:c,gcd:n.iushln(u)}},o.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i,s=new o(1),a=new o(0),c=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var u=0,l=1;!(t.words[0]&l)&&u<26;++u,l<<=1);if(u>0)for(t.iushrn(u);u-- >0;)s.isOdd()&&s.iadd(c),s.iushrn(1);for(var d=0,h=1;!(n.words[0]&h)&&d<26;++d,h<<=1);if(d>0)for(n.iushrn(d);d-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);t.cmp(n)>=0?(t.isub(n),s.isub(a)):(n.isub(t),a.isub(s))}return(i=0===t.cmpn(1)?s:a).cmpn(0)<0&&i.iadd(e),i},o.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var n=0;t.isEven()&&r.isEven();n++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var o=t.cmp(r);if(o<0){var i=t;t=r,r=i}else if(0===o||0===r.cmpn(1))break;t.isub(r)}return r.iushln(n)},o.prototype.invm=function(e){return this.egcd(e).a.umod(e)},o.prototype.isEven=function(){return!(1&this.words[0])},o.prototype.isOdd=function(){return!(1&~this.words[0])},o.prototype.andln=function(e){return this.words[0]&e},o.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,n=(e-t)/26,o=1<>>26,a&=67108863,this.words[s]=a}return 0!==i&&(this.words[s]=i,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this.strip(),this.length>1)t=1;else{n&&(e=-e),r(e<=67108863,"Number is too big");var o=0|this.words[0];t=o===e?0:oe.length)return 1;if(this.length=0;r--){var n=0|this.words[r],o=0|e.words[r];if(n!==o){no&&(t=1);break}}return t},o.prototype.gtn=function(e){return 1===this.cmpn(e)},o.prototype.gt=function(e){return 1===this.cmp(e)},o.prototype.gten=function(e){return this.cmpn(e)>=0},o.prototype.gte=function(e){return this.cmp(e)>=0},o.prototype.ltn=function(e){return-1===this.cmpn(e)},o.prototype.lt=function(e){return-1===this.cmp(e)},o.prototype.lten=function(e){return this.cmpn(e)<=0},o.prototype.lte=function(e){return this.cmp(e)<=0},o.prototype.eqn=function(e){return 0===this.cmpn(e)},o.prototype.eq=function(e){return 0===this.cmp(e)},o.red=function(e){return new $(e)},o.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},o.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(e){return this.red=e,this},o.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},o.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},o.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},o.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},o.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},o.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},o.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},o.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},o.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var y={k256:null,p224:null,p192:null,p25519:null};function g(e,t){this.name=e,this.p=new o(t,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function b(){g.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function w(){g.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){g.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function v(){g.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function $(e){if("string"==typeof e){var t=o._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function I(e){$.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}g.prototype._tmp=function(){var e=new o(null);return e.words=new Array(Math.ceil(this.n/13)),e},g.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var n=t0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},g.prototype.split=function(e,t){e.iushrn(this.n,0,t)},g.prototype.imulK=function(e){return e.imul(this.k)},n(b,g),b.prototype.split=function(e,t){for(var r=4194303,n=Math.min(e.length,9),o=0;o>>22,i=s}i>>>=22,e.words[o-10]=i,0===i&&e.length>10?e.length-=10:e.length-=9},b.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r>>=26,e.words[r]=o,t=n}return 0!==t&&(e.words[e.length++]=t),e},o._prime=function(e){if(y[e])return y[e];var t;if("k256"===e)t=new b;else if("p224"===e)t=new w;else if("p192"===e)t=new _;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new v}return y[e]=t,t},$.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},$.prototype._verify2=function(e,t){r(!(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},$.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},$.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},$.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},$.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},$.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},$.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},$.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},$.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},$.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},$.prototype.isqr=function(e){return this.imul(e,e.clone())},$.prototype.sqr=function(e){return this.mul(e,e)},$.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var n=this.m.add(new o(1)).iushrn(2);return this.pow(e,n)}for(var i=this.m.subn(1),s=0;!i.isZero()&&0===i.andln(1);)s++,i.iushrn(1);r(!i.isZero());var a=new o(1).toRed(this),c=a.redNeg(),u=this.m.subn(1).iushrn(1),l=this.m.bitLength();for(l=new o(2*l*l).toRed(this);0!==this.pow(l,u).cmp(c);)l.redIAdd(c);for(var d=this.pow(l,i),h=this.pow(e,i.addn(1).iushrn(1)),f=this.pow(e,i),p=s;0!==f.cmp(a);){for(var m=f,y=0;0!==m.cmp(a);y++)m=m.redSqr();r(y=0;n--){for(var u=t.words[n],l=c-1;l>=0;l--){var d=u>>l&1;i!==r[0]&&(i=this.sqr(i)),0!==d||0!==s?(s<<=1,s|=d,(4===++a||0===n&&0===l)&&(i=this.mul(i,r[s]),a=0,s=0)):a=0}c=26}return i},$.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},$.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},o.mont=function(e){return new I(e)},n(I,$),I.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},I.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},I.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=r.isub(n).iushrn(this.shift),i=o;return o.cmp(this.m)>=0?i=o.isub(this.m):o.cmpn(0)<0&&(i=o.iadd(this.m)),i._forceRed(this)},I.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new o(0)._forceRed(this);var r=e.mul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),s=i;return i.cmp(this.m)>=0?s=i.isub(this.m):i.cmpn(0)<0&&(s=i.iadd(this.m)),s._forceRed(this)},I.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e,commonjsGlobal)}(bn$5)),bn$5.exports}bn$5.exports;var api$1={},vmBrowserify={},hasRequiredVmBrowserify,hasRequiredApi;function requireVmBrowserify(){return hasRequiredVmBrowserify||(hasRequiredVmBrowserify=1,function(exports){var indexOf=function(e,t){if(e.indexOf)return e.indexOf(t);for(var r=0;r>6],i=!(32&r);if(31&~r)r&=31;else{var s=r;for(r=0;!(128&~s);){if(s=e.readUInt8(t),e.isError(s))return s;r<<=7,r|=127&s}}return{cls:n,primitive:i,tag:r,tagStr:o.tag[r]}}function c(e,t,r){var n=e.readUInt8(r);if(e.isError(n))return n;if(!t&&128===n)return null;if(!(128&n))return n;var o=127&n;if(o>4)return e.error("length octect is too long");n=0;for(var i=0;i=31)return n.error("Multi-octet tag encoding unsupported");t||(i|=32);return i|=o.tagClassByName[r||"universal"]<<6,i}(e,r,n,this.reporter);if(i.length<128)return(s=new t(2))[0]=a,s[1]=i.length,this._createEncoderBuffer([s,i]);for(var c=1,u=i.length;u>=256;u>>=8)c++;(s=new t(2+c))[0]=a,s[1]=128|c;u=1+c;for(var l=i.length;l>0;u--,l>>=8)s[u]=255&l;return this._createEncoderBuffer([s,i])},s.prototype._encodeStr=function(e,r){if("bitstr"===r)return this._createEncoderBuffer([0|e.unused,e.data]);if("bmpstr"===r){for(var n=new t(2*e.length),o=0;o=40)return this.reporter.error("Second objid identifier OOB");e.splice(0,2,40*e[0]+e[1])}var i=0;for(o=0;o=128;s>>=7)i++}var a=new t(i),c=a.length-1;for(o=e.length-1;o>=0;o--){s=e[o];for(a[c--]=127&s;(s>>=7)>0;)a[c--]=128|127&s}return this._createEncoderBuffer(a)},s.prototype._encodeTime=function(e,t){var r,n=new Date(e);return"gentime"===t?r=[a(n.getFullYear()),a(n.getUTCMonth()+1),a(n.getUTCDate()),a(n.getUTCHours()),a(n.getUTCMinutes()),a(n.getUTCSeconds()),"Z"].join(""):"utctime"===t?r=[a(n.getFullYear()%100),a(n.getUTCMonth()+1),a(n.getUTCDate()),a(n.getUTCHours()),a(n.getUTCMinutes()),a(n.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+t+" time is not supported yet"),this._encodeStr(r,"octstr")},s.prototype._encodeNull=function(){return this._createEncoderBuffer("")},s.prototype._encodeInt=function(e,r){if("string"==typeof e){if(!r)return this.reporter.error("String int or enum given, but no values map");if(!r.hasOwnProperty(e))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(e));e=r[e]}if("number"!=typeof e&&!t.isBuffer(e)){var n=e.toArray();!e.sign&&128&n[0]&&n.unshift(0),e=new t(n)}if(t.isBuffer(e)){var o=e.length;0===e.length&&o++;var i=new t(o);return e.copy(i),0===e.length&&(i[0]=0),this._createEncoderBuffer(i)}if(e<128)return this._createEncoderBuffer(e);if(e<256)return this._createEncoderBuffer([0,e]);o=1;for(var s=e;s>=256;s>>=8)o++;for(s=(i=new Array(o)).length-1;s>=0;s--)i[s]=255&e,e>>=8;return 128&i[0]&&i.unshift(0),this._createEncoderBuffer(new t(i))},s.prototype._encodeBool=function(e){return this._createEncoderBuffer(e?255:0)},s.prototype._use=function(e,t){return"function"==typeof e&&(e=e(t)),e._getEncoder("der").tree},s.prototype._skipDefault=function(e,t,r){var n,o=this._baseState;if(null===o.default)return!1;var i=e.join();if(void 0===o.defaultBuffer&&(o.defaultBuffer=this._encodeValue(o.default,t,r).join()),i.length!==o.defaultBuffer.length)return!1;for(n=0;n0&&r.ishrn(n),r}function u(r,n,o){var i,s;do{for(i=e.alloc(0);8*i.length=0)throw new Error("invalid sig")}return verify_1=function(s,a,c,u,l){var d=n(c);if("ec"===d.type){if("ecdsa"!==u&&"ecdsa/rsa"!==u)throw new Error("wrong public key type");return function(e,t,n){var i=o[n.data.algorithm.curve.join(".")];if(!i)throw new Error("unknown curve "+n.data.algorithm.curve.join("."));var s=new r(i),a=n.data.subjectPrivateKey.data;return s.verify(t,e,a)}(s,a,d)}if("dsa"===d.type){if("dsa"!==u)throw new Error("wrong public key type");return function(e,r,o){var s=o.data.p,a=o.data.q,c=o.data.g,u=o.data.pub_key,l=n.signature.decode(e,"der"),d=l.s,h=l.r;i(d,a),i(h,a);var f=t.mont(s),p=d.invm(a),m=c.toRed(f).redPow(new t(r).mul(p).mod(a)).fromRed().mul(u.toRed(f).redPow(h.mul(p).mod(a)).fromRed()).mod(s).mod(a);return 0===m.cmp(h)}(s,a,d)}if("rsa"!==u&&"ecdsa/rsa"!==u)throw new Error("wrong public key type");a=e.concat([l,a]);for(var h=d.modulus.byteLength(),f=[1],p=0;a.length+f.length+2=65&&r<=70?r-55:r>=97&&r<=102?r-87:r-48&15}function a(e,t,r){var n=s(e,r);return r-1>=t&&(n|=s(e,r-1)<<4),n}function c(e,t,r,n){for(var o=0,i=Math.min(e.length,r),s=t;s=49?a-49+10:a>=17?a-17+10:a}return o}o.isBN=function(e){return e instanceof o||null!==e&&"object"==typeof e&&e.constructor.wordSize===o.wordSize&&Array.isArray(e.words)},o.max=function(e,t){return e.cmp(t)>0?e:t},o.min=function(e,t){return e.cmp(t)<0?e:t},o.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),r(t===(0|t)&&t>=2&&t<=36);var o=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(o++,this.negative=1),o=0;o-=3)s=e[o]|e[o-1]<<8|e[o-2]<<16,this.words[i]|=s<>>26-a&67108863,(a+=24)>=26&&(a-=26,i++);else if("le"===n)for(o=0,i=0;o>>26-a&67108863,(a+=24)>=26&&(a-=26,i++);return this.strip()},o.prototype._parseHex=function(e,t,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var n=0;n=t;n-=2)o=a(e,t,n)<=18?(i-=18,s+=1,this.words[s]|=o>>>26):i+=8;else for(n=(e.length-t)%2==0?t+1:t;n=18?(i-=18,s+=1,this.words[s]|=o>>>26):i+=8;this.strip()},o.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var n=0,o=1;o<=67108863;o*=t)n++;n--,o=o/t|0;for(var i=e.length-r,s=i%n,a=Math.min(i,i-s)+r,u=0,l=r;l1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?""};var u=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],l=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],d=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function h(e,t,r){r.negative=t.negative^e.negative;var n=e.length+t.length|0;r.length=n,n=n-1|0;var o=0|e.words[0],i=0|t.words[0],s=o*i,a=67108863&s,c=s/67108864|0;r.words[0]=a;for(var u=1;u>>26,d=67108863&c,h=Math.min(u,t.length-1),f=Math.max(0,u-e.length+1);f<=h;f++){var p=u-f|0;l+=(s=(o=0|e.words[p])*(i=0|t.words[f])+d)/67108864|0,d=67108863&s}r.words[u]=0|d,c=0|l}return 0!==c?r.words[u]=0|c:r.length--,r.strip()}o.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var o=0,i=0,s=0;s>>24-o&16777215,(o+=2)>=26&&(o-=26,s--),n=0!==i||s!==this.length-1?u[6-c.length]+c+n:c+n}for(0!==i&&(n=i.toString(16)+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var h=l[e],f=d[e];n="";var p=this.clone();for(p.negative=0;!p.isZero();){var m=p.modn(f).toString(e);n=(p=p.idivn(f)).isZero()?m+n:u[h-m.length]+m+n}for(this.isZero()&&(n="0"+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(e,t){return r(void 0!==i),this.toArrayLike(i,e,t)},o.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},o.prototype.toArrayLike=function(e,t,n){var o=this.byteLength(),i=n||Math.max(1,o);r(o<=i,"byte array longer than desired length"),r(i>0,"Requested array length <= 0"),this.strip();var s,a,c="le"===t,u=new e(i),l=this.clone();if(c){for(a=0;!l.isZero();a++)s=l.andln(255),l.iushrn(8),u[a]=s;for(;a=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},o.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 8191&t||(r+=13,t>>>=13),127&t||(r+=7,t>>>=7),15&t||(r+=4,t>>>=4),3&t||(r+=2,t>>>=2),1&t||r++,r},o.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},o.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},o.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;re.length?this.clone().iand(e):e.clone().iand(this)},o.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},o.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var n=0;ne.length?this.clone().ixor(e):e.clone().ixor(this)},o.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},o.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var o=0;o0&&(this.words[o]=~this.words[o]&67108863>>26-n),this.strip()},o.prototype.notn=function(e){return this.clone().inotn(e)},o.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var n=e/26|0,o=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<e.length?(r=this,n=e):(r=e,n=this);for(var o=0,i=0;i>>26;for(;0!==o&&i>>26;if(this.length=r.length,0!==o)this.words[this.length]=o,this.length++;else if(r!==this)for(;ie.length?this.clone().iadd(e):e.clone().iadd(this)},o.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,n,o=this.cmp(e);if(0===o)return this.negative=0,this.length=1,this.words[0]=0,this;o>0?(r=this,n=e):(r=e,n=this);for(var i=0,s=0;s>26,this.words[s]=67108863&t;for(;0!==i&&s>26,this.words[s]=67108863&t;if(0===i&&s>>13,f=0|s[1],p=8191&f,m=f>>>13,y=0|s[2],g=8191&y,b=y>>>13,w=0|s[3],_=8191&w,v=w>>>13,$=0|s[4],I=8191&$,k=$>>>13,A=0|s[5],S=8191&A,E=A>>>13,T=0|s[6],P=8191&T,R=T>>>13,C=0|s[7],O=8191&C,M=C>>>13,N=0|s[8],B=8191&N,x=N>>>13,D=0|s[9],L=8191&D,U=D>>>13,F=0|a[0],j=8191&F,q=F>>>13,K=0|a[1],z=8191&K,H=K>>>13,G=0|a[2],W=8191&G,V=G>>>13,Y=0|a[3],J=8191&Y,Q=Y>>>13,Z=0|a[4],X=8191&Z,ee=Z>>>13,te=0|a[5],re=8191&te,ne=te>>>13,oe=0|a[6],ie=8191&oe,se=oe>>>13,ae=0|a[7],ce=8191&ae,ue=ae>>>13,le=0|a[8],de=8191&le,he=le>>>13,fe=0|a[9],pe=8191&fe,me=fe>>>13;r.negative=e.negative^t.negative,r.length=19;var ye=(u+(n=Math.imul(d,j))|0)+((8191&(o=(o=Math.imul(d,q))+Math.imul(h,j)|0))<<13)|0;u=((i=Math.imul(h,q))+(o>>>13)|0)+(ye>>>26)|0,ye&=67108863,n=Math.imul(p,j),o=(o=Math.imul(p,q))+Math.imul(m,j)|0,i=Math.imul(m,q);var ge=(u+(n=n+Math.imul(d,z)|0)|0)+((8191&(o=(o=o+Math.imul(d,H)|0)+Math.imul(h,z)|0))<<13)|0;u=((i=i+Math.imul(h,H)|0)+(o>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(g,j),o=(o=Math.imul(g,q))+Math.imul(b,j)|0,i=Math.imul(b,q),n=n+Math.imul(p,z)|0,o=(o=o+Math.imul(p,H)|0)+Math.imul(m,z)|0,i=i+Math.imul(m,H)|0;var be=(u+(n=n+Math.imul(d,W)|0)|0)+((8191&(o=(o=o+Math.imul(d,V)|0)+Math.imul(h,W)|0))<<13)|0;u=((i=i+Math.imul(h,V)|0)+(o>>>13)|0)+(be>>>26)|0,be&=67108863,n=Math.imul(_,j),o=(o=Math.imul(_,q))+Math.imul(v,j)|0,i=Math.imul(v,q),n=n+Math.imul(g,z)|0,o=(o=o+Math.imul(g,H)|0)+Math.imul(b,z)|0,i=i+Math.imul(b,H)|0,n=n+Math.imul(p,W)|0,o=(o=o+Math.imul(p,V)|0)+Math.imul(m,W)|0,i=i+Math.imul(m,V)|0;var we=(u+(n=n+Math.imul(d,J)|0)|0)+((8191&(o=(o=o+Math.imul(d,Q)|0)+Math.imul(h,J)|0))<<13)|0;u=((i=i+Math.imul(h,Q)|0)+(o>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(I,j),o=(o=Math.imul(I,q))+Math.imul(k,j)|0,i=Math.imul(k,q),n=n+Math.imul(_,z)|0,o=(o=o+Math.imul(_,H)|0)+Math.imul(v,z)|0,i=i+Math.imul(v,H)|0,n=n+Math.imul(g,W)|0,o=(o=o+Math.imul(g,V)|0)+Math.imul(b,W)|0,i=i+Math.imul(b,V)|0,n=n+Math.imul(p,J)|0,o=(o=o+Math.imul(p,Q)|0)+Math.imul(m,J)|0,i=i+Math.imul(m,Q)|0;var _e=(u+(n=n+Math.imul(d,X)|0)|0)+((8191&(o=(o=o+Math.imul(d,ee)|0)+Math.imul(h,X)|0))<<13)|0;u=((i=i+Math.imul(h,ee)|0)+(o>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(S,j),o=(o=Math.imul(S,q))+Math.imul(E,j)|0,i=Math.imul(E,q),n=n+Math.imul(I,z)|0,o=(o=o+Math.imul(I,H)|0)+Math.imul(k,z)|0,i=i+Math.imul(k,H)|0,n=n+Math.imul(_,W)|0,o=(o=o+Math.imul(_,V)|0)+Math.imul(v,W)|0,i=i+Math.imul(v,V)|0,n=n+Math.imul(g,J)|0,o=(o=o+Math.imul(g,Q)|0)+Math.imul(b,J)|0,i=i+Math.imul(b,Q)|0,n=n+Math.imul(p,X)|0,o=(o=o+Math.imul(p,ee)|0)+Math.imul(m,X)|0,i=i+Math.imul(m,ee)|0;var ve=(u+(n=n+Math.imul(d,re)|0)|0)+((8191&(o=(o=o+Math.imul(d,ne)|0)+Math.imul(h,re)|0))<<13)|0;u=((i=i+Math.imul(h,ne)|0)+(o>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(P,j),o=(o=Math.imul(P,q))+Math.imul(R,j)|0,i=Math.imul(R,q),n=n+Math.imul(S,z)|0,o=(o=o+Math.imul(S,H)|0)+Math.imul(E,z)|0,i=i+Math.imul(E,H)|0,n=n+Math.imul(I,W)|0,o=(o=o+Math.imul(I,V)|0)+Math.imul(k,W)|0,i=i+Math.imul(k,V)|0,n=n+Math.imul(_,J)|0,o=(o=o+Math.imul(_,Q)|0)+Math.imul(v,J)|0,i=i+Math.imul(v,Q)|0,n=n+Math.imul(g,X)|0,o=(o=o+Math.imul(g,ee)|0)+Math.imul(b,X)|0,i=i+Math.imul(b,ee)|0,n=n+Math.imul(p,re)|0,o=(o=o+Math.imul(p,ne)|0)+Math.imul(m,re)|0,i=i+Math.imul(m,ne)|0;var $e=(u+(n=n+Math.imul(d,ie)|0)|0)+((8191&(o=(o=o+Math.imul(d,se)|0)+Math.imul(h,ie)|0))<<13)|0;u=((i=i+Math.imul(h,se)|0)+(o>>>13)|0)+($e>>>26)|0,$e&=67108863,n=Math.imul(O,j),o=(o=Math.imul(O,q))+Math.imul(M,j)|0,i=Math.imul(M,q),n=n+Math.imul(P,z)|0,o=(o=o+Math.imul(P,H)|0)+Math.imul(R,z)|0,i=i+Math.imul(R,H)|0,n=n+Math.imul(S,W)|0,o=(o=o+Math.imul(S,V)|0)+Math.imul(E,W)|0,i=i+Math.imul(E,V)|0,n=n+Math.imul(I,J)|0,o=(o=o+Math.imul(I,Q)|0)+Math.imul(k,J)|0,i=i+Math.imul(k,Q)|0,n=n+Math.imul(_,X)|0,o=(o=o+Math.imul(_,ee)|0)+Math.imul(v,X)|0,i=i+Math.imul(v,ee)|0,n=n+Math.imul(g,re)|0,o=(o=o+Math.imul(g,ne)|0)+Math.imul(b,re)|0,i=i+Math.imul(b,ne)|0,n=n+Math.imul(p,ie)|0,o=(o=o+Math.imul(p,se)|0)+Math.imul(m,ie)|0,i=i+Math.imul(m,se)|0;var Ie=(u+(n=n+Math.imul(d,ce)|0)|0)+((8191&(o=(o=o+Math.imul(d,ue)|0)+Math.imul(h,ce)|0))<<13)|0;u=((i=i+Math.imul(h,ue)|0)+(o>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,n=Math.imul(B,j),o=(o=Math.imul(B,q))+Math.imul(x,j)|0,i=Math.imul(x,q),n=n+Math.imul(O,z)|0,o=(o=o+Math.imul(O,H)|0)+Math.imul(M,z)|0,i=i+Math.imul(M,H)|0,n=n+Math.imul(P,W)|0,o=(o=o+Math.imul(P,V)|0)+Math.imul(R,W)|0,i=i+Math.imul(R,V)|0,n=n+Math.imul(S,J)|0,o=(o=o+Math.imul(S,Q)|0)+Math.imul(E,J)|0,i=i+Math.imul(E,Q)|0,n=n+Math.imul(I,X)|0,o=(o=o+Math.imul(I,ee)|0)+Math.imul(k,X)|0,i=i+Math.imul(k,ee)|0,n=n+Math.imul(_,re)|0,o=(o=o+Math.imul(_,ne)|0)+Math.imul(v,re)|0,i=i+Math.imul(v,ne)|0,n=n+Math.imul(g,ie)|0,o=(o=o+Math.imul(g,se)|0)+Math.imul(b,ie)|0,i=i+Math.imul(b,se)|0,n=n+Math.imul(p,ce)|0,o=(o=o+Math.imul(p,ue)|0)+Math.imul(m,ce)|0,i=i+Math.imul(m,ue)|0;var ke=(u+(n=n+Math.imul(d,de)|0)|0)+((8191&(o=(o=o+Math.imul(d,he)|0)+Math.imul(h,de)|0))<<13)|0;u=((i=i+Math.imul(h,he)|0)+(o>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(L,j),o=(o=Math.imul(L,q))+Math.imul(U,j)|0,i=Math.imul(U,q),n=n+Math.imul(B,z)|0,o=(o=o+Math.imul(B,H)|0)+Math.imul(x,z)|0,i=i+Math.imul(x,H)|0,n=n+Math.imul(O,W)|0,o=(o=o+Math.imul(O,V)|0)+Math.imul(M,W)|0,i=i+Math.imul(M,V)|0,n=n+Math.imul(P,J)|0,o=(o=o+Math.imul(P,Q)|0)+Math.imul(R,J)|0,i=i+Math.imul(R,Q)|0,n=n+Math.imul(S,X)|0,o=(o=o+Math.imul(S,ee)|0)+Math.imul(E,X)|0,i=i+Math.imul(E,ee)|0,n=n+Math.imul(I,re)|0,o=(o=o+Math.imul(I,ne)|0)+Math.imul(k,re)|0,i=i+Math.imul(k,ne)|0,n=n+Math.imul(_,ie)|0,o=(o=o+Math.imul(_,se)|0)+Math.imul(v,ie)|0,i=i+Math.imul(v,se)|0,n=n+Math.imul(g,ce)|0,o=(o=o+Math.imul(g,ue)|0)+Math.imul(b,ce)|0,i=i+Math.imul(b,ue)|0,n=n+Math.imul(p,de)|0,o=(o=o+Math.imul(p,he)|0)+Math.imul(m,de)|0,i=i+Math.imul(m,he)|0;var Ae=(u+(n=n+Math.imul(d,pe)|0)|0)+((8191&(o=(o=o+Math.imul(d,me)|0)+Math.imul(h,pe)|0))<<13)|0;u=((i=i+Math.imul(h,me)|0)+(o>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(L,z),o=(o=Math.imul(L,H))+Math.imul(U,z)|0,i=Math.imul(U,H),n=n+Math.imul(B,W)|0,o=(o=o+Math.imul(B,V)|0)+Math.imul(x,W)|0,i=i+Math.imul(x,V)|0,n=n+Math.imul(O,J)|0,o=(o=o+Math.imul(O,Q)|0)+Math.imul(M,J)|0,i=i+Math.imul(M,Q)|0,n=n+Math.imul(P,X)|0,o=(o=o+Math.imul(P,ee)|0)+Math.imul(R,X)|0,i=i+Math.imul(R,ee)|0,n=n+Math.imul(S,re)|0,o=(o=o+Math.imul(S,ne)|0)+Math.imul(E,re)|0,i=i+Math.imul(E,ne)|0,n=n+Math.imul(I,ie)|0,o=(o=o+Math.imul(I,se)|0)+Math.imul(k,ie)|0,i=i+Math.imul(k,se)|0,n=n+Math.imul(_,ce)|0,o=(o=o+Math.imul(_,ue)|0)+Math.imul(v,ce)|0,i=i+Math.imul(v,ue)|0,n=n+Math.imul(g,de)|0,o=(o=o+Math.imul(g,he)|0)+Math.imul(b,de)|0,i=i+Math.imul(b,he)|0;var Se=(u+(n=n+Math.imul(p,pe)|0)|0)+((8191&(o=(o=o+Math.imul(p,me)|0)+Math.imul(m,pe)|0))<<13)|0;u=((i=i+Math.imul(m,me)|0)+(o>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(L,W),o=(o=Math.imul(L,V))+Math.imul(U,W)|0,i=Math.imul(U,V),n=n+Math.imul(B,J)|0,o=(o=o+Math.imul(B,Q)|0)+Math.imul(x,J)|0,i=i+Math.imul(x,Q)|0,n=n+Math.imul(O,X)|0,o=(o=o+Math.imul(O,ee)|0)+Math.imul(M,X)|0,i=i+Math.imul(M,ee)|0,n=n+Math.imul(P,re)|0,o=(o=o+Math.imul(P,ne)|0)+Math.imul(R,re)|0,i=i+Math.imul(R,ne)|0,n=n+Math.imul(S,ie)|0,o=(o=o+Math.imul(S,se)|0)+Math.imul(E,ie)|0,i=i+Math.imul(E,se)|0,n=n+Math.imul(I,ce)|0,o=(o=o+Math.imul(I,ue)|0)+Math.imul(k,ce)|0,i=i+Math.imul(k,ue)|0,n=n+Math.imul(_,de)|0,o=(o=o+Math.imul(_,he)|0)+Math.imul(v,de)|0,i=i+Math.imul(v,he)|0;var Ee=(u+(n=n+Math.imul(g,pe)|0)|0)+((8191&(o=(o=o+Math.imul(g,me)|0)+Math.imul(b,pe)|0))<<13)|0;u=((i=i+Math.imul(b,me)|0)+(o>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(L,J),o=(o=Math.imul(L,Q))+Math.imul(U,J)|0,i=Math.imul(U,Q),n=n+Math.imul(B,X)|0,o=(o=o+Math.imul(B,ee)|0)+Math.imul(x,X)|0,i=i+Math.imul(x,ee)|0,n=n+Math.imul(O,re)|0,o=(o=o+Math.imul(O,ne)|0)+Math.imul(M,re)|0,i=i+Math.imul(M,ne)|0,n=n+Math.imul(P,ie)|0,o=(o=o+Math.imul(P,se)|0)+Math.imul(R,ie)|0,i=i+Math.imul(R,se)|0,n=n+Math.imul(S,ce)|0,o=(o=o+Math.imul(S,ue)|0)+Math.imul(E,ce)|0,i=i+Math.imul(E,ue)|0,n=n+Math.imul(I,de)|0,o=(o=o+Math.imul(I,he)|0)+Math.imul(k,de)|0,i=i+Math.imul(k,he)|0;var Te=(u+(n=n+Math.imul(_,pe)|0)|0)+((8191&(o=(o=o+Math.imul(_,me)|0)+Math.imul(v,pe)|0))<<13)|0;u=((i=i+Math.imul(v,me)|0)+(o>>>13)|0)+(Te>>>26)|0,Te&=67108863,n=Math.imul(L,X),o=(o=Math.imul(L,ee))+Math.imul(U,X)|0,i=Math.imul(U,ee),n=n+Math.imul(B,re)|0,o=(o=o+Math.imul(B,ne)|0)+Math.imul(x,re)|0,i=i+Math.imul(x,ne)|0,n=n+Math.imul(O,ie)|0,o=(o=o+Math.imul(O,se)|0)+Math.imul(M,ie)|0,i=i+Math.imul(M,se)|0,n=n+Math.imul(P,ce)|0,o=(o=o+Math.imul(P,ue)|0)+Math.imul(R,ce)|0,i=i+Math.imul(R,ue)|0,n=n+Math.imul(S,de)|0,o=(o=o+Math.imul(S,he)|0)+Math.imul(E,de)|0,i=i+Math.imul(E,he)|0;var Pe=(u+(n=n+Math.imul(I,pe)|0)|0)+((8191&(o=(o=o+Math.imul(I,me)|0)+Math.imul(k,pe)|0))<<13)|0;u=((i=i+Math.imul(k,me)|0)+(o>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,n=Math.imul(L,re),o=(o=Math.imul(L,ne))+Math.imul(U,re)|0,i=Math.imul(U,ne),n=n+Math.imul(B,ie)|0,o=(o=o+Math.imul(B,se)|0)+Math.imul(x,ie)|0,i=i+Math.imul(x,se)|0,n=n+Math.imul(O,ce)|0,o=(o=o+Math.imul(O,ue)|0)+Math.imul(M,ce)|0,i=i+Math.imul(M,ue)|0,n=n+Math.imul(P,de)|0,o=(o=o+Math.imul(P,he)|0)+Math.imul(R,de)|0,i=i+Math.imul(R,he)|0;var Re=(u+(n=n+Math.imul(S,pe)|0)|0)+((8191&(o=(o=o+Math.imul(S,me)|0)+Math.imul(E,pe)|0))<<13)|0;u=((i=i+Math.imul(E,me)|0)+(o>>>13)|0)+(Re>>>26)|0,Re&=67108863,n=Math.imul(L,ie),o=(o=Math.imul(L,se))+Math.imul(U,ie)|0,i=Math.imul(U,se),n=n+Math.imul(B,ce)|0,o=(o=o+Math.imul(B,ue)|0)+Math.imul(x,ce)|0,i=i+Math.imul(x,ue)|0,n=n+Math.imul(O,de)|0,o=(o=o+Math.imul(O,he)|0)+Math.imul(M,de)|0,i=i+Math.imul(M,he)|0;var Ce=(u+(n=n+Math.imul(P,pe)|0)|0)+((8191&(o=(o=o+Math.imul(P,me)|0)+Math.imul(R,pe)|0))<<13)|0;u=((i=i+Math.imul(R,me)|0)+(o>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,n=Math.imul(L,ce),o=(o=Math.imul(L,ue))+Math.imul(U,ce)|0,i=Math.imul(U,ue),n=n+Math.imul(B,de)|0,o=(o=o+Math.imul(B,he)|0)+Math.imul(x,de)|0,i=i+Math.imul(x,he)|0;var Oe=(u+(n=n+Math.imul(O,pe)|0)|0)+((8191&(o=(o=o+Math.imul(O,me)|0)+Math.imul(M,pe)|0))<<13)|0;u=((i=i+Math.imul(M,me)|0)+(o>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,n=Math.imul(L,de),o=(o=Math.imul(L,he))+Math.imul(U,de)|0,i=Math.imul(U,he);var Me=(u+(n=n+Math.imul(B,pe)|0)|0)+((8191&(o=(o=o+Math.imul(B,me)|0)+Math.imul(x,pe)|0))<<13)|0;u=((i=i+Math.imul(x,me)|0)+(o>>>13)|0)+(Me>>>26)|0,Me&=67108863;var Ne=(u+(n=Math.imul(L,pe))|0)+((8191&(o=(o=Math.imul(L,me))+Math.imul(U,pe)|0))<<13)|0;return u=((i=Math.imul(U,me))+(o>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,c[0]=ye,c[1]=ge,c[2]=be,c[3]=we,c[4]=_e,c[5]=ve,c[6]=$e,c[7]=Ie,c[8]=ke,c[9]=Ae,c[10]=Se,c[11]=Ee,c[12]=Te,c[13]=Pe,c[14]=Re,c[15]=Ce,c[16]=Oe,c[17]=Me,c[18]=Ne,0!==u&&(c[19]=u,r.length++),r};function p(e,t,r){return(new m).mulp(e,t,r)}function m(e,t){this.x=e,this.y=t}Math.imul||(f=h),o.prototype.mulTo=function(e,t){var r,n=this.length+e.length;return r=10===this.length&&10===e.length?f(this,e,t):n<63?h(this,e,t):n<1024?function(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var n=0,o=0,i=0;i>>26)|0)>>>26,s&=67108863}r.words[i]=a,n=s,s=o}return 0!==n?r.words[i]=n:r.length--,r.strip()}(this,e,t):p(this,e,t),r},m.prototype.makeRBT=function(e){for(var t=new Array(e),r=o.prototype._countBits(e)-1,n=0;n>=1;return n},m.prototype.permute=function(e,t,r,n,o,i){for(var s=0;s>>=1)o++;return 1<>>=13,n[2*s+1]=8191&i,i>>>=13;for(s=2*t;s>=26,t+=o/67108864|0,t+=i>>>26,this.words[n]=67108863&i}return 0!==t&&(this.words[n]=t,this.length++),this},o.prototype.muln=function(e){return this.clone().imuln(e)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r>>o}return t}(e);if(0===t.length)return new o(1);for(var r=this,n=0;n=0);var t,n=e%26,o=(e-n)/26,i=67108863>>>26-n<<26-n;if(0!==n){var s=0;for(t=0;t>>26-n}s&&(this.words[t]=s,this.length++)}if(0!==o){for(t=this.length-1;t>=0;t--)this.words[t+o]=this.words[t];for(t=0;t=0),o=t?(t-t%26)/26:0;var i=e%26,s=Math.min((e-i)/26,this.length),a=67108863^67108863>>>i<s)for(this.length-=s,u=0;u=0&&(0!==l||u>=o);u--){var d=0|this.words[u];this.words[u]=l<<26-i|d>>>i,l=d&a}return c&&0!==l&&(c.words[c.length++]=l),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(e,t,n){return r(0===this.negative),this.iushrn(e,t,n)},o.prototype.shln=function(e){return this.clone().ishln(e)},o.prototype.ushln=function(e){return this.clone().iushln(e)},o.prototype.shrn=function(e){return this.clone().ishrn(e)},o.prototype.ushrn=function(e){return this.clone().iushrn(e)},o.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26,o=1<=0);var t=e%26,n=(e-t)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==t&&n++,this.length=Math.min(n,this.length),0!==t){var o=67108863^67108863>>>t<=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},o.prototype.isubn=function(e){if(r("number"==typeof e),r(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t>26)-(c/67108864|0),this.words[o+n]=67108863&i}for(;o>26,this.words[o+n]=67108863&i;if(0===a)return this.strip();for(r(-1===a),a=0,o=0;o>26,this.words[o]=67108863&i;return this.negative=1,this.strip()},o.prototype._wordDiv=function(e,t){var r=(this.length,e.length),n=this.clone(),i=e,s=0|i.words[i.length-1];0!==(r=26-this._countBits(s))&&(i=i.ushln(r),n.iushln(r),s=0|i.words[i.length-1]);var a,c=n.length-i.length;if("mod"!==t){(a=new o(null)).length=c+1,a.words=new Array(a.length);for(var u=0;u=0;d--){var h=67108864*(0|n.words[i.length+d])+(0|n.words[i.length+d-1]);for(h=Math.min(h/s|0,67108863),n._ishlnsubmul(i,h,d);0!==n.negative;)h--,n.negative=0,n._ishlnsubmul(i,1,d),n.isZero()||(n.negative^=1);a&&(a.words[d]=h)}return a&&a.strip(),n.strip(),"div"!==t&&0!==r&&n.iushrn(r),{div:a||null,mod:n}},o.prototype.divmod=function(e,t,n){return r(!e.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===e.negative?(a=this.neg().divmod(e,t),"mod"!==t&&(i=a.div.neg()),"div"!==t&&(s=a.mod.neg(),n&&0!==s.negative&&s.iadd(e)),{div:i,mod:s}):0===this.negative&&0!==e.negative?(a=this.divmod(e.neg(),t),"mod"!==t&&(i=a.div.neg()),{div:i,mod:a.mod}):this.negative&e.negative?(a=this.neg().divmod(e.neg(),t),"div"!==t&&(s=a.mod.neg(),n&&0!==s.negative&&s.isub(e)),{div:a.div,mod:s}):e.length>this.length||this.cmp(e)<0?{div:new o(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new o(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new o(this.modn(e.words[0]))}:this._wordDiv(e,t);var i,s,a},o.prototype.div=function(e){return this.divmod(e,"div",!1).div},o.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},o.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},o.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,n=e.ushrn(1),o=e.andln(1),i=r.cmp(n);return i<0||1===o&&0===i?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},o.prototype.modn=function(e){r(e<=67108863);for(var t=(1<<26)%e,n=0,o=this.length-1;o>=0;o--)n=(t*n+(0|this.words[o]))%e;return n},o.prototype.idivn=function(e){r(e<=67108863);for(var t=0,n=this.length-1;n>=0;n--){var o=(0|this.words[n])+67108864*t;this.words[n]=o/e|0,t=o%e}return this.strip()},o.prototype.divn=function(e){return this.clone().idivn(e)},o.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i=new o(1),s=new o(0),a=new o(0),c=new o(1),u=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++u;for(var l=n.clone(),d=t.clone();!t.isZero();){for(var h=0,f=1;!(t.words[0]&f)&&h<26;++h,f<<=1);if(h>0)for(t.iushrn(h);h-- >0;)(i.isOdd()||s.isOdd())&&(i.iadd(l),s.isub(d)),i.iushrn(1),s.iushrn(1);for(var p=0,m=1;!(n.words[0]&m)&&p<26;++p,m<<=1);if(p>0)for(n.iushrn(p);p-- >0;)(a.isOdd()||c.isOdd())&&(a.iadd(l),c.isub(d)),a.iushrn(1),c.iushrn(1);t.cmp(n)>=0?(t.isub(n),i.isub(a),s.isub(c)):(n.isub(t),a.isub(i),c.isub(s))}return{a:a,b:c,gcd:n.iushln(u)}},o.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i,s=new o(1),a=new o(0),c=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var u=0,l=1;!(t.words[0]&l)&&u<26;++u,l<<=1);if(u>0)for(t.iushrn(u);u-- >0;)s.isOdd()&&s.iadd(c),s.iushrn(1);for(var d=0,h=1;!(n.words[0]&h)&&d<26;++d,h<<=1);if(d>0)for(n.iushrn(d);d-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);t.cmp(n)>=0?(t.isub(n),s.isub(a)):(n.isub(t),a.isub(s))}return(i=0===t.cmpn(1)?s:a).cmpn(0)<0&&i.iadd(e),i},o.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var n=0;t.isEven()&&r.isEven();n++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var o=t.cmp(r);if(o<0){var i=t;t=r,r=i}else if(0===o||0===r.cmpn(1))break;t.isub(r)}return r.iushln(n)},o.prototype.invm=function(e){return this.egcd(e).a.umod(e)},o.prototype.isEven=function(){return!(1&this.words[0])},o.prototype.isOdd=function(){return!(1&~this.words[0])},o.prototype.andln=function(e){return this.words[0]&e},o.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,n=(e-t)/26,o=1<>>26,a&=67108863,this.words[s]=a}return 0!==i&&(this.words[s]=i,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this.strip(),this.length>1)t=1;else{n&&(e=-e),r(e<=67108863,"Number is too big");var o=0|this.words[0];t=o===e?0:oe.length)return 1;if(this.length=0;r--){var n=0|this.words[r],o=0|e.words[r];if(n!==o){no&&(t=1);break}}return t},o.prototype.gtn=function(e){return 1===this.cmpn(e)},o.prototype.gt=function(e){return 1===this.cmp(e)},o.prototype.gten=function(e){return this.cmpn(e)>=0},o.prototype.gte=function(e){return this.cmp(e)>=0},o.prototype.ltn=function(e){return-1===this.cmpn(e)},o.prototype.lt=function(e){return-1===this.cmp(e)},o.prototype.lten=function(e){return this.cmpn(e)<=0},o.prototype.lte=function(e){return this.cmp(e)<=0},o.prototype.eqn=function(e){return 0===this.cmpn(e)},o.prototype.eq=function(e){return 0===this.cmp(e)},o.red=function(e){return new $(e)},o.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},o.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(e){return this.red=e,this},o.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},o.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},o.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},o.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},o.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},o.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},o.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},o.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},o.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var y={k256:null,p224:null,p192:null,p25519:null};function g(e,t){this.name=e,this.p=new o(t,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function b(){g.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function w(){g.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){g.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function v(){g.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function $(e){if("string"==typeof e){var t=o._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function I(e){$.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}g.prototype._tmp=function(){var e=new o(null);return e.words=new Array(Math.ceil(this.n/13)),e},g.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var n=t0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},g.prototype.split=function(e,t){e.iushrn(this.n,0,t)},g.prototype.imulK=function(e){return e.imul(this.k)},n(b,g),b.prototype.split=function(e,t){for(var r=4194303,n=Math.min(e.length,9),o=0;o>>22,i=s}i>>>=22,e.words[o-10]=i,0===i&&e.length>10?e.length-=10:e.length-=9},b.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r>>=26,e.words[r]=o,t=n}return 0!==t&&(e.words[e.length++]=t),e},o._prime=function(e){if(y[e])return y[e];var t;if("k256"===e)t=new b;else if("p224"===e)t=new w;else if("p192"===e)t=new _;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new v}return y[e]=t,t},$.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},$.prototype._verify2=function(e,t){r(!(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},$.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},$.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},$.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},$.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},$.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},$.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},$.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},$.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},$.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},$.prototype.isqr=function(e){return this.imul(e,e.clone())},$.prototype.sqr=function(e){return this.mul(e,e)},$.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var n=this.m.add(new o(1)).iushrn(2);return this.pow(e,n)}for(var i=this.m.subn(1),s=0;!i.isZero()&&0===i.andln(1);)s++,i.iushrn(1);r(!i.isZero());var a=new o(1).toRed(this),c=a.redNeg(),u=this.m.subn(1).iushrn(1),l=this.m.bitLength();for(l=new o(2*l*l).toRed(this);0!==this.pow(l,u).cmp(c);)l.redIAdd(c);for(var d=this.pow(l,i),h=this.pow(e,i.addn(1).iushrn(1)),f=this.pow(e,i),p=s;0!==f.cmp(a);){for(var m=f,y=0;0!==m.cmp(a);y++)m=m.redSqr();r(y=0;n--){for(var u=t.words[n],l=c-1;l>=0;l--){var d=u>>l&1;i!==r[0]&&(i=this.sqr(i)),0!==d||0!==s?(s<<=1,s|=d,(4===++a||0===n&&0===l)&&(i=this.mul(i,r[s]),a=0,s=0)):a=0}c=26}return i},$.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},$.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},o.mont=function(e){return new I(e)},n(I,$),I.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},I.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},I.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=r.isub(n).iushrn(this.shift),i=o;return o.cmp(this.m)>=0?i=o.isub(this.m):o.cmpn(0)<0&&(i=o.iadd(this.m)),i._forceRed(this)},I.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new o(0)._forceRed(this);var r=e.mul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),s=i;return i.cmp(this.m)>=0?s=i.isub(this.m):i.cmpn(0)<0&&(s=i.iadd(this.m)),s._forceRed(this)},I.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e,commonjsGlobal)}(bn$4)),bn$4.exports}function requireBrowser$2(){if(hasRequiredBrowser$2)return browser$7;hasRequiredBrowser$2=1;var e=requireElliptic(),t=requireBn$1();browser$7=function(e){return new n(e)};var r={secp256k1:{name:"secp256k1",byteLength:32},secp224r1:{name:"p224",byteLength:28},prime256v1:{name:"p256",byteLength:32},prime192v1:{name:"p192",byteLength:24},ed25519:{name:"ed25519",byteLength:32},secp384r1:{name:"p384",byteLength:48},secp521r1:{name:"p521",byteLength:66}};function n(t){this.curveType=r[t],this.curveType||(this.curveType={name:t}),this.curve=new e.ec(this.curveType.name),this.keys=void 0}function o(e,t,r){Array.isArray(e)||(e=e.toArray());var n=new Buffer$2(e);if(r&&n.length=65&&r<=70?r-55:r>=97&&r<=102?r-87:r-48&15}function a(e,t,r){var n=s(e,r);return r-1>=t&&(n|=s(e,r-1)<<4),n}function c(e,t,r,n){for(var o=0,i=Math.min(e.length,r),s=t;s=49?a-49+10:a>=17?a-17+10:a}return o}o.isBN=function(e){return e instanceof o||null!==e&&"object"==typeof e&&e.constructor.wordSize===o.wordSize&&Array.isArray(e.words)},o.max=function(e,t){return e.cmp(t)>0?e:t},o.min=function(e,t){return e.cmp(t)<0?e:t},o.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),r(t===(0|t)&&t>=2&&t<=36);var o=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(o++,this.negative=1),o=0;o-=3)s=e[o]|e[o-1]<<8|e[o-2]<<16,this.words[i]|=s<>>26-a&67108863,(a+=24)>=26&&(a-=26,i++);else if("le"===n)for(o=0,i=0;o>>26-a&67108863,(a+=24)>=26&&(a-=26,i++);return this.strip()},o.prototype._parseHex=function(e,t,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var n=0;n=t;n-=2)o=a(e,t,n)<=18?(i-=18,s+=1,this.words[s]|=o>>>26):i+=8;else for(n=(e.length-t)%2==0?t+1:t;n=18?(i-=18,s+=1,this.words[s]|=o>>>26):i+=8;this.strip()},o.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var n=0,o=1;o<=67108863;o*=t)n++;n--,o=o/t|0;for(var i=e.length-r,s=i%n,a=Math.min(i,i-s)+r,u=0,l=r;l1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?""};var u=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],l=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],d=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function h(e,t,r){r.negative=t.negative^e.negative;var n=e.length+t.length|0;r.length=n,n=n-1|0;var o=0|e.words[0],i=0|t.words[0],s=o*i,a=67108863&s,c=s/67108864|0;r.words[0]=a;for(var u=1;u>>26,d=67108863&c,h=Math.min(u,t.length-1),f=Math.max(0,u-e.length+1);f<=h;f++){var p=u-f|0;l+=(s=(o=0|e.words[p])*(i=0|t.words[f])+d)/67108864|0,d=67108863&s}r.words[u]=0|d,c=0|l}return 0!==c?r.words[u]=0|c:r.length--,r.strip()}o.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var o=0,i=0,s=0;s>>24-o&16777215,(o+=2)>=26&&(o-=26,s--),n=0!==i||s!==this.length-1?u[6-c.length]+c+n:c+n}for(0!==i&&(n=i.toString(16)+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var h=l[e],f=d[e];n="";var p=this.clone();for(p.negative=0;!p.isZero();){var m=p.modn(f).toString(e);n=(p=p.idivn(f)).isZero()?m+n:u[h-m.length]+m+n}for(this.isZero()&&(n="0"+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(e,t){return r(void 0!==i),this.toArrayLike(i,e,t)},o.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},o.prototype.toArrayLike=function(e,t,n){var o=this.byteLength(),i=n||Math.max(1,o);r(o<=i,"byte array longer than desired length"),r(i>0,"Requested array length <= 0"),this.strip();var s,a,c="le"===t,u=new e(i),l=this.clone();if(c){for(a=0;!l.isZero();a++)s=l.andln(255),l.iushrn(8),u[a]=s;for(;a=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},o.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 8191&t||(r+=13,t>>>=13),127&t||(r+=7,t>>>=7),15&t||(r+=4,t>>>=4),3&t||(r+=2,t>>>=2),1&t||r++,r},o.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},o.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},o.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;re.length?this.clone().iand(e):e.clone().iand(this)},o.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},o.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var n=0;ne.length?this.clone().ixor(e):e.clone().ixor(this)},o.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},o.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var o=0;o0&&(this.words[o]=~this.words[o]&67108863>>26-n),this.strip()},o.prototype.notn=function(e){return this.clone().inotn(e)},o.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var n=e/26|0,o=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<e.length?(r=this,n=e):(r=e,n=this);for(var o=0,i=0;i>>26;for(;0!==o&&i>>26;if(this.length=r.length,0!==o)this.words[this.length]=o,this.length++;else if(r!==this)for(;ie.length?this.clone().iadd(e):e.clone().iadd(this)},o.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,n,o=this.cmp(e);if(0===o)return this.negative=0,this.length=1,this.words[0]=0,this;o>0?(r=this,n=e):(r=e,n=this);for(var i=0,s=0;s>26,this.words[s]=67108863&t;for(;0!==i&&s>26,this.words[s]=67108863&t;if(0===i&&s>>13,f=0|s[1],p=8191&f,m=f>>>13,y=0|s[2],g=8191&y,b=y>>>13,w=0|s[3],_=8191&w,v=w>>>13,$=0|s[4],I=8191&$,k=$>>>13,A=0|s[5],S=8191&A,E=A>>>13,T=0|s[6],P=8191&T,R=T>>>13,C=0|s[7],O=8191&C,M=C>>>13,N=0|s[8],B=8191&N,x=N>>>13,D=0|s[9],L=8191&D,U=D>>>13,F=0|a[0],j=8191&F,q=F>>>13,K=0|a[1],z=8191&K,H=K>>>13,G=0|a[2],W=8191&G,V=G>>>13,Y=0|a[3],J=8191&Y,Q=Y>>>13,Z=0|a[4],X=8191&Z,ee=Z>>>13,te=0|a[5],re=8191&te,ne=te>>>13,oe=0|a[6],ie=8191&oe,se=oe>>>13,ae=0|a[7],ce=8191&ae,ue=ae>>>13,le=0|a[8],de=8191&le,he=le>>>13,fe=0|a[9],pe=8191&fe,me=fe>>>13;r.negative=e.negative^t.negative,r.length=19;var ye=(u+(n=Math.imul(d,j))|0)+((8191&(o=(o=Math.imul(d,q))+Math.imul(h,j)|0))<<13)|0;u=((i=Math.imul(h,q))+(o>>>13)|0)+(ye>>>26)|0,ye&=67108863,n=Math.imul(p,j),o=(o=Math.imul(p,q))+Math.imul(m,j)|0,i=Math.imul(m,q);var ge=(u+(n=n+Math.imul(d,z)|0)|0)+((8191&(o=(o=o+Math.imul(d,H)|0)+Math.imul(h,z)|0))<<13)|0;u=((i=i+Math.imul(h,H)|0)+(o>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(g,j),o=(o=Math.imul(g,q))+Math.imul(b,j)|0,i=Math.imul(b,q),n=n+Math.imul(p,z)|0,o=(o=o+Math.imul(p,H)|0)+Math.imul(m,z)|0,i=i+Math.imul(m,H)|0;var be=(u+(n=n+Math.imul(d,W)|0)|0)+((8191&(o=(o=o+Math.imul(d,V)|0)+Math.imul(h,W)|0))<<13)|0;u=((i=i+Math.imul(h,V)|0)+(o>>>13)|0)+(be>>>26)|0,be&=67108863,n=Math.imul(_,j),o=(o=Math.imul(_,q))+Math.imul(v,j)|0,i=Math.imul(v,q),n=n+Math.imul(g,z)|0,o=(o=o+Math.imul(g,H)|0)+Math.imul(b,z)|0,i=i+Math.imul(b,H)|0,n=n+Math.imul(p,W)|0,o=(o=o+Math.imul(p,V)|0)+Math.imul(m,W)|0,i=i+Math.imul(m,V)|0;var we=(u+(n=n+Math.imul(d,J)|0)|0)+((8191&(o=(o=o+Math.imul(d,Q)|0)+Math.imul(h,J)|0))<<13)|0;u=((i=i+Math.imul(h,Q)|0)+(o>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(I,j),o=(o=Math.imul(I,q))+Math.imul(k,j)|0,i=Math.imul(k,q),n=n+Math.imul(_,z)|0,o=(o=o+Math.imul(_,H)|0)+Math.imul(v,z)|0,i=i+Math.imul(v,H)|0,n=n+Math.imul(g,W)|0,o=(o=o+Math.imul(g,V)|0)+Math.imul(b,W)|0,i=i+Math.imul(b,V)|0,n=n+Math.imul(p,J)|0,o=(o=o+Math.imul(p,Q)|0)+Math.imul(m,J)|0,i=i+Math.imul(m,Q)|0;var _e=(u+(n=n+Math.imul(d,X)|0)|0)+((8191&(o=(o=o+Math.imul(d,ee)|0)+Math.imul(h,X)|0))<<13)|0;u=((i=i+Math.imul(h,ee)|0)+(o>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(S,j),o=(o=Math.imul(S,q))+Math.imul(E,j)|0,i=Math.imul(E,q),n=n+Math.imul(I,z)|0,o=(o=o+Math.imul(I,H)|0)+Math.imul(k,z)|0,i=i+Math.imul(k,H)|0,n=n+Math.imul(_,W)|0,o=(o=o+Math.imul(_,V)|0)+Math.imul(v,W)|0,i=i+Math.imul(v,V)|0,n=n+Math.imul(g,J)|0,o=(o=o+Math.imul(g,Q)|0)+Math.imul(b,J)|0,i=i+Math.imul(b,Q)|0,n=n+Math.imul(p,X)|0,o=(o=o+Math.imul(p,ee)|0)+Math.imul(m,X)|0,i=i+Math.imul(m,ee)|0;var ve=(u+(n=n+Math.imul(d,re)|0)|0)+((8191&(o=(o=o+Math.imul(d,ne)|0)+Math.imul(h,re)|0))<<13)|0;u=((i=i+Math.imul(h,ne)|0)+(o>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(P,j),o=(o=Math.imul(P,q))+Math.imul(R,j)|0,i=Math.imul(R,q),n=n+Math.imul(S,z)|0,o=(o=o+Math.imul(S,H)|0)+Math.imul(E,z)|0,i=i+Math.imul(E,H)|0,n=n+Math.imul(I,W)|0,o=(o=o+Math.imul(I,V)|0)+Math.imul(k,W)|0,i=i+Math.imul(k,V)|0,n=n+Math.imul(_,J)|0,o=(o=o+Math.imul(_,Q)|0)+Math.imul(v,J)|0,i=i+Math.imul(v,Q)|0,n=n+Math.imul(g,X)|0,o=(o=o+Math.imul(g,ee)|0)+Math.imul(b,X)|0,i=i+Math.imul(b,ee)|0,n=n+Math.imul(p,re)|0,o=(o=o+Math.imul(p,ne)|0)+Math.imul(m,re)|0,i=i+Math.imul(m,ne)|0;var $e=(u+(n=n+Math.imul(d,ie)|0)|0)+((8191&(o=(o=o+Math.imul(d,se)|0)+Math.imul(h,ie)|0))<<13)|0;u=((i=i+Math.imul(h,se)|0)+(o>>>13)|0)+($e>>>26)|0,$e&=67108863,n=Math.imul(O,j),o=(o=Math.imul(O,q))+Math.imul(M,j)|0,i=Math.imul(M,q),n=n+Math.imul(P,z)|0,o=(o=o+Math.imul(P,H)|0)+Math.imul(R,z)|0,i=i+Math.imul(R,H)|0,n=n+Math.imul(S,W)|0,o=(o=o+Math.imul(S,V)|0)+Math.imul(E,W)|0,i=i+Math.imul(E,V)|0,n=n+Math.imul(I,J)|0,o=(o=o+Math.imul(I,Q)|0)+Math.imul(k,J)|0,i=i+Math.imul(k,Q)|0,n=n+Math.imul(_,X)|0,o=(o=o+Math.imul(_,ee)|0)+Math.imul(v,X)|0,i=i+Math.imul(v,ee)|0,n=n+Math.imul(g,re)|0,o=(o=o+Math.imul(g,ne)|0)+Math.imul(b,re)|0,i=i+Math.imul(b,ne)|0,n=n+Math.imul(p,ie)|0,o=(o=o+Math.imul(p,se)|0)+Math.imul(m,ie)|0,i=i+Math.imul(m,se)|0;var Ie=(u+(n=n+Math.imul(d,ce)|0)|0)+((8191&(o=(o=o+Math.imul(d,ue)|0)+Math.imul(h,ce)|0))<<13)|0;u=((i=i+Math.imul(h,ue)|0)+(o>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,n=Math.imul(B,j),o=(o=Math.imul(B,q))+Math.imul(x,j)|0,i=Math.imul(x,q),n=n+Math.imul(O,z)|0,o=(o=o+Math.imul(O,H)|0)+Math.imul(M,z)|0,i=i+Math.imul(M,H)|0,n=n+Math.imul(P,W)|0,o=(o=o+Math.imul(P,V)|0)+Math.imul(R,W)|0,i=i+Math.imul(R,V)|0,n=n+Math.imul(S,J)|0,o=(o=o+Math.imul(S,Q)|0)+Math.imul(E,J)|0,i=i+Math.imul(E,Q)|0,n=n+Math.imul(I,X)|0,o=(o=o+Math.imul(I,ee)|0)+Math.imul(k,X)|0,i=i+Math.imul(k,ee)|0,n=n+Math.imul(_,re)|0,o=(o=o+Math.imul(_,ne)|0)+Math.imul(v,re)|0,i=i+Math.imul(v,ne)|0,n=n+Math.imul(g,ie)|0,o=(o=o+Math.imul(g,se)|0)+Math.imul(b,ie)|0,i=i+Math.imul(b,se)|0,n=n+Math.imul(p,ce)|0,o=(o=o+Math.imul(p,ue)|0)+Math.imul(m,ce)|0,i=i+Math.imul(m,ue)|0;var ke=(u+(n=n+Math.imul(d,de)|0)|0)+((8191&(o=(o=o+Math.imul(d,he)|0)+Math.imul(h,de)|0))<<13)|0;u=((i=i+Math.imul(h,he)|0)+(o>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(L,j),o=(o=Math.imul(L,q))+Math.imul(U,j)|0,i=Math.imul(U,q),n=n+Math.imul(B,z)|0,o=(o=o+Math.imul(B,H)|0)+Math.imul(x,z)|0,i=i+Math.imul(x,H)|0,n=n+Math.imul(O,W)|0,o=(o=o+Math.imul(O,V)|0)+Math.imul(M,W)|0,i=i+Math.imul(M,V)|0,n=n+Math.imul(P,J)|0,o=(o=o+Math.imul(P,Q)|0)+Math.imul(R,J)|0,i=i+Math.imul(R,Q)|0,n=n+Math.imul(S,X)|0,o=(o=o+Math.imul(S,ee)|0)+Math.imul(E,X)|0,i=i+Math.imul(E,ee)|0,n=n+Math.imul(I,re)|0,o=(o=o+Math.imul(I,ne)|0)+Math.imul(k,re)|0,i=i+Math.imul(k,ne)|0,n=n+Math.imul(_,ie)|0,o=(o=o+Math.imul(_,se)|0)+Math.imul(v,ie)|0,i=i+Math.imul(v,se)|0,n=n+Math.imul(g,ce)|0,o=(o=o+Math.imul(g,ue)|0)+Math.imul(b,ce)|0,i=i+Math.imul(b,ue)|0,n=n+Math.imul(p,de)|0,o=(o=o+Math.imul(p,he)|0)+Math.imul(m,de)|0,i=i+Math.imul(m,he)|0;var Ae=(u+(n=n+Math.imul(d,pe)|0)|0)+((8191&(o=(o=o+Math.imul(d,me)|0)+Math.imul(h,pe)|0))<<13)|0;u=((i=i+Math.imul(h,me)|0)+(o>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(L,z),o=(o=Math.imul(L,H))+Math.imul(U,z)|0,i=Math.imul(U,H),n=n+Math.imul(B,W)|0,o=(o=o+Math.imul(B,V)|0)+Math.imul(x,W)|0,i=i+Math.imul(x,V)|0,n=n+Math.imul(O,J)|0,o=(o=o+Math.imul(O,Q)|0)+Math.imul(M,J)|0,i=i+Math.imul(M,Q)|0,n=n+Math.imul(P,X)|0,o=(o=o+Math.imul(P,ee)|0)+Math.imul(R,X)|0,i=i+Math.imul(R,ee)|0,n=n+Math.imul(S,re)|0,o=(o=o+Math.imul(S,ne)|0)+Math.imul(E,re)|0,i=i+Math.imul(E,ne)|0,n=n+Math.imul(I,ie)|0,o=(o=o+Math.imul(I,se)|0)+Math.imul(k,ie)|0,i=i+Math.imul(k,se)|0,n=n+Math.imul(_,ce)|0,o=(o=o+Math.imul(_,ue)|0)+Math.imul(v,ce)|0,i=i+Math.imul(v,ue)|0,n=n+Math.imul(g,de)|0,o=(o=o+Math.imul(g,he)|0)+Math.imul(b,de)|0,i=i+Math.imul(b,he)|0;var Se=(u+(n=n+Math.imul(p,pe)|0)|0)+((8191&(o=(o=o+Math.imul(p,me)|0)+Math.imul(m,pe)|0))<<13)|0;u=((i=i+Math.imul(m,me)|0)+(o>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(L,W),o=(o=Math.imul(L,V))+Math.imul(U,W)|0,i=Math.imul(U,V),n=n+Math.imul(B,J)|0,o=(o=o+Math.imul(B,Q)|0)+Math.imul(x,J)|0,i=i+Math.imul(x,Q)|0,n=n+Math.imul(O,X)|0,o=(o=o+Math.imul(O,ee)|0)+Math.imul(M,X)|0,i=i+Math.imul(M,ee)|0,n=n+Math.imul(P,re)|0,o=(o=o+Math.imul(P,ne)|0)+Math.imul(R,re)|0,i=i+Math.imul(R,ne)|0,n=n+Math.imul(S,ie)|0,o=(o=o+Math.imul(S,se)|0)+Math.imul(E,ie)|0,i=i+Math.imul(E,se)|0,n=n+Math.imul(I,ce)|0,o=(o=o+Math.imul(I,ue)|0)+Math.imul(k,ce)|0,i=i+Math.imul(k,ue)|0,n=n+Math.imul(_,de)|0,o=(o=o+Math.imul(_,he)|0)+Math.imul(v,de)|0,i=i+Math.imul(v,he)|0;var Ee=(u+(n=n+Math.imul(g,pe)|0)|0)+((8191&(o=(o=o+Math.imul(g,me)|0)+Math.imul(b,pe)|0))<<13)|0;u=((i=i+Math.imul(b,me)|0)+(o>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(L,J),o=(o=Math.imul(L,Q))+Math.imul(U,J)|0,i=Math.imul(U,Q),n=n+Math.imul(B,X)|0,o=(o=o+Math.imul(B,ee)|0)+Math.imul(x,X)|0,i=i+Math.imul(x,ee)|0,n=n+Math.imul(O,re)|0,o=(o=o+Math.imul(O,ne)|0)+Math.imul(M,re)|0,i=i+Math.imul(M,ne)|0,n=n+Math.imul(P,ie)|0,o=(o=o+Math.imul(P,se)|0)+Math.imul(R,ie)|0,i=i+Math.imul(R,se)|0,n=n+Math.imul(S,ce)|0,o=(o=o+Math.imul(S,ue)|0)+Math.imul(E,ce)|0,i=i+Math.imul(E,ue)|0,n=n+Math.imul(I,de)|0,o=(o=o+Math.imul(I,he)|0)+Math.imul(k,de)|0,i=i+Math.imul(k,he)|0;var Te=(u+(n=n+Math.imul(_,pe)|0)|0)+((8191&(o=(o=o+Math.imul(_,me)|0)+Math.imul(v,pe)|0))<<13)|0;u=((i=i+Math.imul(v,me)|0)+(o>>>13)|0)+(Te>>>26)|0,Te&=67108863,n=Math.imul(L,X),o=(o=Math.imul(L,ee))+Math.imul(U,X)|0,i=Math.imul(U,ee),n=n+Math.imul(B,re)|0,o=(o=o+Math.imul(B,ne)|0)+Math.imul(x,re)|0,i=i+Math.imul(x,ne)|0,n=n+Math.imul(O,ie)|0,o=(o=o+Math.imul(O,se)|0)+Math.imul(M,ie)|0,i=i+Math.imul(M,se)|0,n=n+Math.imul(P,ce)|0,o=(o=o+Math.imul(P,ue)|0)+Math.imul(R,ce)|0,i=i+Math.imul(R,ue)|0,n=n+Math.imul(S,de)|0,o=(o=o+Math.imul(S,he)|0)+Math.imul(E,de)|0,i=i+Math.imul(E,he)|0;var Pe=(u+(n=n+Math.imul(I,pe)|0)|0)+((8191&(o=(o=o+Math.imul(I,me)|0)+Math.imul(k,pe)|0))<<13)|0;u=((i=i+Math.imul(k,me)|0)+(o>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,n=Math.imul(L,re),o=(o=Math.imul(L,ne))+Math.imul(U,re)|0,i=Math.imul(U,ne),n=n+Math.imul(B,ie)|0,o=(o=o+Math.imul(B,se)|0)+Math.imul(x,ie)|0,i=i+Math.imul(x,se)|0,n=n+Math.imul(O,ce)|0,o=(o=o+Math.imul(O,ue)|0)+Math.imul(M,ce)|0,i=i+Math.imul(M,ue)|0,n=n+Math.imul(P,de)|0,o=(o=o+Math.imul(P,he)|0)+Math.imul(R,de)|0,i=i+Math.imul(R,he)|0;var Re=(u+(n=n+Math.imul(S,pe)|0)|0)+((8191&(o=(o=o+Math.imul(S,me)|0)+Math.imul(E,pe)|0))<<13)|0;u=((i=i+Math.imul(E,me)|0)+(o>>>13)|0)+(Re>>>26)|0,Re&=67108863,n=Math.imul(L,ie),o=(o=Math.imul(L,se))+Math.imul(U,ie)|0,i=Math.imul(U,se),n=n+Math.imul(B,ce)|0,o=(o=o+Math.imul(B,ue)|0)+Math.imul(x,ce)|0,i=i+Math.imul(x,ue)|0,n=n+Math.imul(O,de)|0,o=(o=o+Math.imul(O,he)|0)+Math.imul(M,de)|0,i=i+Math.imul(M,he)|0;var Ce=(u+(n=n+Math.imul(P,pe)|0)|0)+((8191&(o=(o=o+Math.imul(P,me)|0)+Math.imul(R,pe)|0))<<13)|0;u=((i=i+Math.imul(R,me)|0)+(o>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,n=Math.imul(L,ce),o=(o=Math.imul(L,ue))+Math.imul(U,ce)|0,i=Math.imul(U,ue),n=n+Math.imul(B,de)|0,o=(o=o+Math.imul(B,he)|0)+Math.imul(x,de)|0,i=i+Math.imul(x,he)|0;var Oe=(u+(n=n+Math.imul(O,pe)|0)|0)+((8191&(o=(o=o+Math.imul(O,me)|0)+Math.imul(M,pe)|0))<<13)|0;u=((i=i+Math.imul(M,me)|0)+(o>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,n=Math.imul(L,de),o=(o=Math.imul(L,he))+Math.imul(U,de)|0,i=Math.imul(U,he);var Me=(u+(n=n+Math.imul(B,pe)|0)|0)+((8191&(o=(o=o+Math.imul(B,me)|0)+Math.imul(x,pe)|0))<<13)|0;u=((i=i+Math.imul(x,me)|0)+(o>>>13)|0)+(Me>>>26)|0,Me&=67108863;var Ne=(u+(n=Math.imul(L,pe))|0)+((8191&(o=(o=Math.imul(L,me))+Math.imul(U,pe)|0))<<13)|0;return u=((i=Math.imul(U,me))+(o>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,c[0]=ye,c[1]=ge,c[2]=be,c[3]=we,c[4]=_e,c[5]=ve,c[6]=$e,c[7]=Ie,c[8]=ke,c[9]=Ae,c[10]=Se,c[11]=Ee,c[12]=Te,c[13]=Pe,c[14]=Re,c[15]=Ce,c[16]=Oe,c[17]=Me,c[18]=Ne,0!==u&&(c[19]=u,r.length++),r};function p(e,t,r){return(new m).mulp(e,t,r)}function m(e,t){this.x=e,this.y=t}Math.imul||(f=h),o.prototype.mulTo=function(e,t){var r,n=this.length+e.length;return r=10===this.length&&10===e.length?f(this,e,t):n<63?h(this,e,t):n<1024?function(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var n=0,o=0,i=0;i>>26)|0)>>>26,s&=67108863}r.words[i]=a,n=s,s=o}return 0!==n?r.words[i]=n:r.length--,r.strip()}(this,e,t):p(this,e,t),r},m.prototype.makeRBT=function(e){for(var t=new Array(e),r=o.prototype._countBits(e)-1,n=0;n>=1;return n},m.prototype.permute=function(e,t,r,n,o,i){for(var s=0;s>>=1)o++;return 1<>>=13,n[2*s+1]=8191&i,i>>>=13;for(s=2*t;s>=26,t+=o/67108864|0,t+=i>>>26,this.words[n]=67108863&i}return 0!==t&&(this.words[n]=t,this.length++),this},o.prototype.muln=function(e){return this.clone().imuln(e)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r>>o}return t}(e);if(0===t.length)return new o(1);for(var r=this,n=0;n=0);var t,n=e%26,o=(e-n)/26,i=67108863>>>26-n<<26-n;if(0!==n){var s=0;for(t=0;t>>26-n}s&&(this.words[t]=s,this.length++)}if(0!==o){for(t=this.length-1;t>=0;t--)this.words[t+o]=this.words[t];for(t=0;t=0),o=t?(t-t%26)/26:0;var i=e%26,s=Math.min((e-i)/26,this.length),a=67108863^67108863>>>i<s)for(this.length-=s,u=0;u=0&&(0!==l||u>=o);u--){var d=0|this.words[u];this.words[u]=l<<26-i|d>>>i,l=d&a}return c&&0!==l&&(c.words[c.length++]=l),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(e,t,n){return r(0===this.negative),this.iushrn(e,t,n)},o.prototype.shln=function(e){return this.clone().ishln(e)},o.prototype.ushln=function(e){return this.clone().iushln(e)},o.prototype.shrn=function(e){return this.clone().ishrn(e)},o.prototype.ushrn=function(e){return this.clone().iushrn(e)},o.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26,o=1<=0);var t=e%26,n=(e-t)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==t&&n++,this.length=Math.min(n,this.length),0!==t){var o=67108863^67108863>>>t<=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},o.prototype.isubn=function(e){if(r("number"==typeof e),r(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t>26)-(c/67108864|0),this.words[o+n]=67108863&i}for(;o>26,this.words[o+n]=67108863&i;if(0===a)return this.strip();for(r(-1===a),a=0,o=0;o>26,this.words[o]=67108863&i;return this.negative=1,this.strip()},o.prototype._wordDiv=function(e,t){var r=(this.length,e.length),n=this.clone(),i=e,s=0|i.words[i.length-1];0!==(r=26-this._countBits(s))&&(i=i.ushln(r),n.iushln(r),s=0|i.words[i.length-1]);var a,c=n.length-i.length;if("mod"!==t){(a=new o(null)).length=c+1,a.words=new Array(a.length);for(var u=0;u=0;d--){var h=67108864*(0|n.words[i.length+d])+(0|n.words[i.length+d-1]);for(h=Math.min(h/s|0,67108863),n._ishlnsubmul(i,h,d);0!==n.negative;)h--,n.negative=0,n._ishlnsubmul(i,1,d),n.isZero()||(n.negative^=1);a&&(a.words[d]=h)}return a&&a.strip(),n.strip(),"div"!==t&&0!==r&&n.iushrn(r),{div:a||null,mod:n}},o.prototype.divmod=function(e,t,n){return r(!e.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===e.negative?(a=this.neg().divmod(e,t),"mod"!==t&&(i=a.div.neg()),"div"!==t&&(s=a.mod.neg(),n&&0!==s.negative&&s.iadd(e)),{div:i,mod:s}):0===this.negative&&0!==e.negative?(a=this.divmod(e.neg(),t),"mod"!==t&&(i=a.div.neg()),{div:i,mod:a.mod}):this.negative&e.negative?(a=this.neg().divmod(e.neg(),t),"div"!==t&&(s=a.mod.neg(),n&&0!==s.negative&&s.isub(e)),{div:a.div,mod:s}):e.length>this.length||this.cmp(e)<0?{div:new o(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new o(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new o(this.modn(e.words[0]))}:this._wordDiv(e,t);var i,s,a},o.prototype.div=function(e){return this.divmod(e,"div",!1).div},o.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},o.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},o.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,n=e.ushrn(1),o=e.andln(1),i=r.cmp(n);return i<0||1===o&&0===i?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},o.prototype.modn=function(e){r(e<=67108863);for(var t=(1<<26)%e,n=0,o=this.length-1;o>=0;o--)n=(t*n+(0|this.words[o]))%e;return n},o.prototype.idivn=function(e){r(e<=67108863);for(var t=0,n=this.length-1;n>=0;n--){var o=(0|this.words[n])+67108864*t;this.words[n]=o/e|0,t=o%e}return this.strip()},o.prototype.divn=function(e){return this.clone().idivn(e)},o.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i=new o(1),s=new o(0),a=new o(0),c=new o(1),u=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++u;for(var l=n.clone(),d=t.clone();!t.isZero();){for(var h=0,f=1;!(t.words[0]&f)&&h<26;++h,f<<=1);if(h>0)for(t.iushrn(h);h-- >0;)(i.isOdd()||s.isOdd())&&(i.iadd(l),s.isub(d)),i.iushrn(1),s.iushrn(1);for(var p=0,m=1;!(n.words[0]&m)&&p<26;++p,m<<=1);if(p>0)for(n.iushrn(p);p-- >0;)(a.isOdd()||c.isOdd())&&(a.iadd(l),c.isub(d)),a.iushrn(1),c.iushrn(1);t.cmp(n)>=0?(t.isub(n),i.isub(a),s.isub(c)):(n.isub(t),a.isub(i),c.isub(s))}return{a:a,b:c,gcd:n.iushln(u)}},o.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i,s=new o(1),a=new o(0),c=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var u=0,l=1;!(t.words[0]&l)&&u<26;++u,l<<=1);if(u>0)for(t.iushrn(u);u-- >0;)s.isOdd()&&s.iadd(c),s.iushrn(1);for(var d=0,h=1;!(n.words[0]&h)&&d<26;++d,h<<=1);if(d>0)for(n.iushrn(d);d-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);t.cmp(n)>=0?(t.isub(n),s.isub(a)):(n.isub(t),a.isub(s))}return(i=0===t.cmpn(1)?s:a).cmpn(0)<0&&i.iadd(e),i},o.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var n=0;t.isEven()&&r.isEven();n++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var o=t.cmp(r);if(o<0){var i=t;t=r,r=i}else if(0===o||0===r.cmpn(1))break;t.isub(r)}return r.iushln(n)},o.prototype.invm=function(e){return this.egcd(e).a.umod(e)},o.prototype.isEven=function(){return!(1&this.words[0])},o.prototype.isOdd=function(){return!(1&~this.words[0])},o.prototype.andln=function(e){return this.words[0]&e},o.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,n=(e-t)/26,o=1<>>26,a&=67108863,this.words[s]=a}return 0!==i&&(this.words[s]=i,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this.strip(),this.length>1)t=1;else{n&&(e=-e),r(e<=67108863,"Number is too big");var o=0|this.words[0];t=o===e?0:oe.length)return 1;if(this.length=0;r--){var n=0|this.words[r],o=0|e.words[r];if(n!==o){no&&(t=1);break}}return t},o.prototype.gtn=function(e){return 1===this.cmpn(e)},o.prototype.gt=function(e){return 1===this.cmp(e)},o.prototype.gten=function(e){return this.cmpn(e)>=0},o.prototype.gte=function(e){return this.cmp(e)>=0},o.prototype.ltn=function(e){return-1===this.cmpn(e)},o.prototype.lt=function(e){return-1===this.cmp(e)},o.prototype.lten=function(e){return this.cmpn(e)<=0},o.prototype.lte=function(e){return this.cmp(e)<=0},o.prototype.eqn=function(e){return 0===this.cmpn(e)},o.prototype.eq=function(e){return 0===this.cmp(e)},o.red=function(e){return new $(e)},o.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},o.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(e){return this.red=e,this},o.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},o.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},o.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},o.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},o.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},o.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},o.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},o.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},o.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var y={k256:null,p224:null,p192:null,p25519:null};function g(e,t){this.name=e,this.p=new o(t,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function b(){g.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function w(){g.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){g.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function v(){g.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function $(e){if("string"==typeof e){var t=o._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function I(e){$.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}g.prototype._tmp=function(){var e=new o(null);return e.words=new Array(Math.ceil(this.n/13)),e},g.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var n=t0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},g.prototype.split=function(e,t){e.iushrn(this.n,0,t)},g.prototype.imulK=function(e){return e.imul(this.k)},n(b,g),b.prototype.split=function(e,t){for(var r=4194303,n=Math.min(e.length,9),o=0;o>>22,i=s}i>>>=22,e.words[o-10]=i,0===i&&e.length>10?e.length-=10:e.length-=9},b.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r>>=26,e.words[r]=o,t=n}return 0!==t&&(e.words[e.length++]=t),e},o._prime=function(e){if(y[e])return y[e];var t;if("k256"===e)t=new b;else if("p224"===e)t=new w;else if("p192"===e)t=new _;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new v}return y[e]=t,t},$.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},$.prototype._verify2=function(e,t){r(!(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},$.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},$.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},$.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},$.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},$.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},$.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},$.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},$.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},$.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},$.prototype.isqr=function(e){return this.imul(e,e.clone())},$.prototype.sqr=function(e){return this.mul(e,e)},$.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var n=this.m.add(new o(1)).iushrn(2);return this.pow(e,n)}for(var i=this.m.subn(1),s=0;!i.isZero()&&0===i.andln(1);)s++,i.iushrn(1);r(!i.isZero());var a=new o(1).toRed(this),c=a.redNeg(),u=this.m.subn(1).iushrn(1),l=this.m.bitLength();for(l=new o(2*l*l).toRed(this);0!==this.pow(l,u).cmp(c);)l.redIAdd(c);for(var d=this.pow(l,i),h=this.pow(e,i.addn(1).iushrn(1)),f=this.pow(e,i),p=s;0!==f.cmp(a);){for(var m=f,y=0;0!==m.cmp(a);y++)m=m.redSqr();r(y=0;n--){for(var u=t.words[n],l=c-1;l>=0;l--){var d=u>>l&1;i!==r[0]&&(i=this.sqr(i)),0!==d||0!==s?(s<<=1,s|=d,(4===++a||0===n&&0===l)&&(i=this.mul(i,r[s]),a=0,s=0)):a=0}c=26}return i},$.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},$.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},o.mont=function(e){return new I(e)},n(I,$),I.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},I.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},I.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=r.isub(n).iushrn(this.shift),i=o;return o.cmp(this.m)>=0?i=o.isub(this.m):o.cmpn(0)<0&&(i=o.iadd(this.m)),i._forceRed(this)},I.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new o(0)._forceRed(this);var r=e.mul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),s=i;return i.cmp(this.m)>=0?s=i.isub(this.m):i.cmpn(0)<0&&(s=i.iadd(this.m)),s._forceRed(this)},I.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e,commonjsGlobal)}(bn$3)),bn$3.exports}function requireWithPublic(){if(hasRequiredWithPublic)return withPublic_1;hasRequiredWithPublic=1;var e=requireBn(),t=requireSafeBuffer$1().Buffer;return withPublic_1=function(r,n){return t.from(r.toRed(e.mont(n.modulus)).redPow(new e(n.publicExponent)).fromRed().toArray())}}function requirePublicEncrypt(){if(hasRequiredPublicEncrypt)return publicEncrypt;hasRequiredPublicEncrypt=1;var e=requireParseAsn1(),t=requireBrowser$b(),r=requireBrowser$9(),n=requireMgf(),o=requireXor(),i=requireBn(),s=requireWithPublic(),a=requireBrowserifyRsa(),c=requireSafeBuffer$1().Buffer;return publicEncrypt=function(u,l,d){var h;h=u.padding?u.padding:d?1:4;var f,p=e(u);if(4===h)f=function(e,s){var a=e.modulus.byteLength(),u=s.length,l=r("sha1").update(c.alloc(0)).digest(),d=l.length,h=2*d;if(u>a-h-2)throw new Error("message too long");var f=c.alloc(a-u-h-2),p=a-d-1,m=t(d),y=o(c.concat([l,f,c.alloc(1,1),s],p),n(m,p)),g=o(m,n(y,d));return new i(c.concat([c.alloc(1),g,y],a))}(p,l);else if(1===h)f=function(e,r,n){var o,s=r.length,a=e.modulus.byteLength();if(s>a-11)throw new Error("message too long");o=n?c.alloc(a-s-3,255):function(e){var r,n=c.allocUnsafe(e),o=0,i=t(2*e),s=0;for(;o=0)throw new Error("data too long for modulus")}return d?a(f,p):s(f,p)}}function requirePrivateDecrypt(){if(hasRequiredPrivateDecrypt)return privateDecrypt;hasRequiredPrivateDecrypt=1;var e=requireParseAsn1(),t=requireMgf(),r=requireXor(),n=requireBn(),o=requireBrowserifyRsa(),i=requireBrowser$9(),s=requireWithPublic(),a=requireSafeBuffer$1().Buffer;return privateDecrypt=function(c,u,l){var d;d=c.padding?c.padding:l?1:4;var h,f=e(c),p=f.modulus.byteLength();if(u.length>p||new n(u).cmp(f.modulus)>=0)throw new Error("decryption error");h=l?s(new n(u),f):o(u,f);var m=a.alloc(p-h.length);if(h=a.concat([m,h],p),4===d)return function(e,n){var o=e.modulus.byteLength(),s=i("sha1").update(a.alloc(0)).digest(),c=s.length;if(0!==n[0])throw new Error("decryption error");var u=n.slice(1,c+1),l=n.slice(c+1),d=r(u,t(l,c)),h=r(l,t(d,o-c-1));if(function(e,t){e=a.from(e),t=a.from(t);var r=0,n=e.length;e.length!==t.length&&(r++,n=Math.min(e.length,t.length));var o=-1;for(;++o=t.length){i++;break}var s=t.slice(2,o-1);("0002"!==n.toString("hex")&&!r||"0001"!==n.toString("hex")&&r)&&i++;s.length<8&&i++;if(i)throw new Error("decryption error");return t.slice(o)}(0,h,l);if(3===d)return h;throw new Error("unknown padding")}}function requireBrowser$1(){return hasRequiredBrowser$1||(hasRequiredBrowser$1=1,function(e){e.publicEncrypt=requirePublicEncrypt(),e.privateDecrypt=requirePrivateDecrypt(),e.privateEncrypt=function(t,r){return e.publicEncrypt(t,r,!0)},e.publicDecrypt=function(t,r){return e.privateDecrypt(t,r,!0)}}(browser$6)),browser$6}bn$3.exports;var browser$5={},hasRequiredBrowser,hasRequiredCryptoBrowserify;function requireBrowser(){if(hasRequiredBrowser)return browser$5;function e(){throw new Error("secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11")}hasRequiredBrowser=1;var t=requireSafeBuffer$1(),r=requireBrowser$b(),n=t.Buffer,o=t.kMaxLength,i=commonjsGlobal.crypto||commonjsGlobal.msCrypto,s=Math.pow(2,32)-1;function a(e,t){if("number"!=typeof e||e!=e)throw new TypeError("offset must be a number");if(e>s||e<0)throw new TypeError("offset must be a uint32");if(e>o||e>t)throw new RangeError("offset out of range")}function c(e,t,r){if("number"!=typeof e||e!=e)throw new TypeError("size must be a number");if(e>s||e<0)throw new TypeError("size must be a uint32");if(e+t>r||e>o)throw new RangeError("buffer too small")}function u(e,t,n,o){if(process$1.browser){var s=e.buffer,a=new Uint8Array(s,t,n);return i.getRandomValues(a),o?void process$1.nextTick((function(){o(null,e)})):e}if(!o)return r(n).copy(e,t),e;r(n,(function(r,n){if(r)return o(r);n.copy(e,t),o(null,e)}))}return i&&i.getRandomValues||!process$1.browser?(browser$5.randomFill=function(e,t,r,o){if(!(n.isBuffer(e)||e instanceof commonjsGlobal.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if("function"==typeof t)o=t,t=0,r=e.length;else if("function"==typeof r)o=r,r=e.length-t;else if("function"!=typeof o)throw new TypeError('"cb" argument must be a function');return a(t,e.length),c(r,t,e.length),u(e,t,r,o)},browser$5.randomFillSync=function(e,t,r){void 0===t&&(t=0);if(!(n.isBuffer(e)||e instanceof commonjsGlobal.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');a(t,e.length),void 0===r&&(r=e.length-t);return c(r,t,e.length),u(e,t,r)}):(browser$5.randomFill=e,browser$5.randomFillSync=e),browser$5}function requireCryptoBrowserify(){if(hasRequiredCryptoBrowserify)return cryptoBrowserify;hasRequiredCryptoBrowserify=1,cryptoBrowserify.randomBytes=cryptoBrowserify.rng=cryptoBrowserify.pseudoRandomBytes=cryptoBrowserify.prng=requireBrowser$b(),cryptoBrowserify.createHash=cryptoBrowserify.Hash=requireBrowser$9(),cryptoBrowserify.createHmac=cryptoBrowserify.Hmac=requireBrowser$8();var e=requireAlgos(),t=Object.keys(e),r=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(t);cryptoBrowserify.getHashes=function(){return r};var n=requireBrowser$7();cryptoBrowserify.pbkdf2=n.pbkdf2,cryptoBrowserify.pbkdf2Sync=n.pbkdf2Sync;var o=requireBrowser$5();cryptoBrowserify.Cipher=o.Cipher,cryptoBrowserify.createCipher=o.createCipher,cryptoBrowserify.Cipheriv=o.Cipheriv,cryptoBrowserify.createCipheriv=o.createCipheriv,cryptoBrowserify.Decipher=o.Decipher,cryptoBrowserify.createDecipher=o.createDecipher,cryptoBrowserify.Decipheriv=o.Decipheriv,cryptoBrowserify.createDecipheriv=o.createDecipheriv,cryptoBrowserify.getCiphers=o.getCiphers,cryptoBrowserify.listCiphers=o.listCiphers;var i=requireBrowser$4();cryptoBrowserify.DiffieHellmanGroup=i.DiffieHellmanGroup,cryptoBrowserify.createDiffieHellmanGroup=i.createDiffieHellmanGroup,cryptoBrowserify.getDiffieHellman=i.getDiffieHellman,cryptoBrowserify.createDiffieHellman=i.createDiffieHellman,cryptoBrowserify.DiffieHellman=i.DiffieHellman;var s=requireBrowser$3();cryptoBrowserify.createSign=s.createSign,cryptoBrowserify.Sign=s.Sign,cryptoBrowserify.createVerify=s.createVerify,cryptoBrowserify.Verify=s.Verify,cryptoBrowserify.createECDH=requireBrowser$2();var a=requireBrowser$1();cryptoBrowserify.publicEncrypt=a.publicEncrypt,cryptoBrowserify.privateEncrypt=a.privateEncrypt,cryptoBrowserify.publicDecrypt=a.publicDecrypt,cryptoBrowserify.privateDecrypt=a.privateDecrypt;var c=requireBrowser();return cryptoBrowserify.randomFill=c.randomFill,cryptoBrowserify.randomFillSync=c.randomFillSync,cryptoBrowserify.createCredentials=function(){throw new Error("sorry, createCredentials is not implemented yet\nwe accept pull requests\nhttps://github.com/browserify/crypto-browserify")},cryptoBrowserify.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6},cryptoBrowserify}!function(e){!function(e){var t=function(e){var t,r=new Float64Array(16);if(e)for(t=0;t>24&255,e[t+1]=r>>16&255,e[t+2]=r>>8&255,e[t+3]=255&r,e[t+4]=n>>24&255,e[t+5]=n>>16&255,e[t+6]=n>>8&255,e[t+7]=255&n}function p(e,t,r,n,o){var i,s=0;for(i=0;i>>8)-1}function m(e,t,r,n){return p(e,t,r,n,16)}function y(e,t,r,n){return p(e,t,r,n,32)}function g(e,t,r,n){!function(e,t,r,n){for(var o,i=255&n[0]|(255&n[1])<<8|(255&n[2])<<16|(255&n[3])<<24,s=255&r[0]|(255&r[1])<<8|(255&r[2])<<16|(255&r[3])<<24,a=255&r[4]|(255&r[5])<<8|(255&r[6])<<16|(255&r[7])<<24,c=255&r[8]|(255&r[9])<<8|(255&r[10])<<16|(255&r[11])<<24,u=255&r[12]|(255&r[13])<<8|(255&r[14])<<16|(255&r[15])<<24,l=255&n[4]|(255&n[5])<<8|(255&n[6])<<16|(255&n[7])<<24,d=255&t[0]|(255&t[1])<<8|(255&t[2])<<16|(255&t[3])<<24,h=255&t[4]|(255&t[5])<<8|(255&t[6])<<16|(255&t[7])<<24,f=255&t[8]|(255&t[9])<<8|(255&t[10])<<16|(255&t[11])<<24,p=255&t[12]|(255&t[13])<<8|(255&t[14])<<16|(255&t[15])<<24,m=255&n[8]|(255&n[9])<<8|(255&n[10])<<16|(255&n[11])<<24,y=255&r[16]|(255&r[17])<<8|(255&r[18])<<16|(255&r[19])<<24,g=255&r[20]|(255&r[21])<<8|(255&r[22])<<16|(255&r[23])<<24,b=255&r[24]|(255&r[25])<<8|(255&r[26])<<16|(255&r[27])<<24,w=255&r[28]|(255&r[29])<<8|(255&r[30])<<16|(255&r[31])<<24,_=255&n[12]|(255&n[13])<<8|(255&n[14])<<16|(255&n[15])<<24,v=i,$=s,I=a,k=c,A=u,S=l,E=d,T=h,P=f,R=p,C=m,O=y,M=g,N=b,B=w,x=_,D=0;D<20;D+=2)v^=(o=(M^=(o=(P^=(o=(A^=(o=v+M|0)<<7|o>>>25)+v|0)<<9|o>>>23)+A|0)<<13|o>>>19)+P|0)<<18|o>>>14,S^=(o=($^=(o=(N^=(o=(R^=(o=S+$|0)<<7|o>>>25)+S|0)<<9|o>>>23)+R|0)<<13|o>>>19)+N|0)<<18|o>>>14,C^=(o=(E^=(o=(I^=(o=(B^=(o=C+E|0)<<7|o>>>25)+C|0)<<9|o>>>23)+B|0)<<13|o>>>19)+I|0)<<18|o>>>14,x^=(o=(O^=(o=(T^=(o=(k^=(o=x+O|0)<<7|o>>>25)+x|0)<<9|o>>>23)+k|0)<<13|o>>>19)+T|0)<<18|o>>>14,v^=(o=(k^=(o=(I^=(o=($^=(o=v+k|0)<<7|o>>>25)+v|0)<<9|o>>>23)+$|0)<<13|o>>>19)+I|0)<<18|o>>>14,S^=(o=(A^=(o=(T^=(o=(E^=(o=S+A|0)<<7|o>>>25)+S|0)<<9|o>>>23)+E|0)<<13|o>>>19)+T|0)<<18|o>>>14,C^=(o=(R^=(o=(P^=(o=(O^=(o=C+R|0)<<7|o>>>25)+C|0)<<9|o>>>23)+O|0)<<13|o>>>19)+P|0)<<18|o>>>14,x^=(o=(B^=(o=(N^=(o=(M^=(o=x+B|0)<<7|o>>>25)+x|0)<<9|o>>>23)+M|0)<<13|o>>>19)+N|0)<<18|o>>>14;v=v+i|0,$=$+s|0,I=I+a|0,k=k+c|0,A=A+u|0,S=S+l|0,E=E+d|0,T=T+h|0,P=P+f|0,R=R+p|0,C=C+m|0,O=O+y|0,M=M+g|0,N=N+b|0,B=B+w|0,x=x+_|0,e[0]=v>>>0&255,e[1]=v>>>8&255,e[2]=v>>>16&255,e[3]=v>>>24&255,e[4]=$>>>0&255,e[5]=$>>>8&255,e[6]=$>>>16&255,e[7]=$>>>24&255,e[8]=I>>>0&255,e[9]=I>>>8&255,e[10]=I>>>16&255,e[11]=I>>>24&255,e[12]=k>>>0&255,e[13]=k>>>8&255,e[14]=k>>>16&255,e[15]=k>>>24&255,e[16]=A>>>0&255,e[17]=A>>>8&255,e[18]=A>>>16&255,e[19]=A>>>24&255,e[20]=S>>>0&255,e[21]=S>>>8&255,e[22]=S>>>16&255,e[23]=S>>>24&255,e[24]=E>>>0&255,e[25]=E>>>8&255,e[26]=E>>>16&255,e[27]=E>>>24&255,e[28]=T>>>0&255,e[29]=T>>>8&255,e[30]=T>>>16&255,e[31]=T>>>24&255,e[32]=P>>>0&255,e[33]=P>>>8&255,e[34]=P>>>16&255,e[35]=P>>>24&255,e[36]=R>>>0&255,e[37]=R>>>8&255,e[38]=R>>>16&255,e[39]=R>>>24&255,e[40]=C>>>0&255,e[41]=C>>>8&255,e[42]=C>>>16&255,e[43]=C>>>24&255,e[44]=O>>>0&255,e[45]=O>>>8&255,e[46]=O>>>16&255,e[47]=O>>>24&255,e[48]=M>>>0&255,e[49]=M>>>8&255,e[50]=M>>>16&255,e[51]=M>>>24&255,e[52]=N>>>0&255,e[53]=N>>>8&255,e[54]=N>>>16&255,e[55]=N>>>24&255,e[56]=B>>>0&255,e[57]=B>>>8&255,e[58]=B>>>16&255,e[59]=B>>>24&255,e[60]=x>>>0&255,e[61]=x>>>8&255,e[62]=x>>>16&255,e[63]=x>>>24&255}(e,t,r,n)}function b(e,t,r,n){!function(e,t,r,n){for(var o,i=255&n[0]|(255&n[1])<<8|(255&n[2])<<16|(255&n[3])<<24,s=255&r[0]|(255&r[1])<<8|(255&r[2])<<16|(255&r[3])<<24,a=255&r[4]|(255&r[5])<<8|(255&r[6])<<16|(255&r[7])<<24,c=255&r[8]|(255&r[9])<<8|(255&r[10])<<16|(255&r[11])<<24,u=255&r[12]|(255&r[13])<<8|(255&r[14])<<16|(255&r[15])<<24,l=255&n[4]|(255&n[5])<<8|(255&n[6])<<16|(255&n[7])<<24,d=255&t[0]|(255&t[1])<<8|(255&t[2])<<16|(255&t[3])<<24,h=255&t[4]|(255&t[5])<<8|(255&t[6])<<16|(255&t[7])<<24,f=255&t[8]|(255&t[9])<<8|(255&t[10])<<16|(255&t[11])<<24,p=255&t[12]|(255&t[13])<<8|(255&t[14])<<16|(255&t[15])<<24,m=255&n[8]|(255&n[9])<<8|(255&n[10])<<16|(255&n[11])<<24,y=255&r[16]|(255&r[17])<<8|(255&r[18])<<16|(255&r[19])<<24,g=255&r[20]|(255&r[21])<<8|(255&r[22])<<16|(255&r[23])<<24,b=255&r[24]|(255&r[25])<<8|(255&r[26])<<16|(255&r[27])<<24,w=255&r[28]|(255&r[29])<<8|(255&r[30])<<16|(255&r[31])<<24,_=255&n[12]|(255&n[13])<<8|(255&n[14])<<16|(255&n[15])<<24,v=0;v<20;v+=2)i^=(o=(g^=(o=(f^=(o=(u^=(o=i+g|0)<<7|o>>>25)+i|0)<<9|o>>>23)+u|0)<<13|o>>>19)+f|0)<<18|o>>>14,l^=(o=(s^=(o=(b^=(o=(p^=(o=l+s|0)<<7|o>>>25)+l|0)<<9|o>>>23)+p|0)<<13|o>>>19)+b|0)<<18|o>>>14,m^=(o=(d^=(o=(a^=(o=(w^=(o=m+d|0)<<7|o>>>25)+m|0)<<9|o>>>23)+w|0)<<13|o>>>19)+a|0)<<18|o>>>14,_^=(o=(y^=(o=(h^=(o=(c^=(o=_+y|0)<<7|o>>>25)+_|0)<<9|o>>>23)+c|0)<<13|o>>>19)+h|0)<<18|o>>>14,i^=(o=(c^=(o=(a^=(o=(s^=(o=i+c|0)<<7|o>>>25)+i|0)<<9|o>>>23)+s|0)<<13|o>>>19)+a|0)<<18|o>>>14,l^=(o=(u^=(o=(h^=(o=(d^=(o=l+u|0)<<7|o>>>25)+l|0)<<9|o>>>23)+d|0)<<13|o>>>19)+h|0)<<18|o>>>14,m^=(o=(p^=(o=(f^=(o=(y^=(o=m+p|0)<<7|o>>>25)+m|0)<<9|o>>>23)+y|0)<<13|o>>>19)+f|0)<<18|o>>>14,_^=(o=(w^=(o=(b^=(o=(g^=(o=_+w|0)<<7|o>>>25)+_|0)<<9|o>>>23)+g|0)<<13|o>>>19)+b|0)<<18|o>>>14;e[0]=i>>>0&255,e[1]=i>>>8&255,e[2]=i>>>16&255,e[3]=i>>>24&255,e[4]=l>>>0&255,e[5]=l>>>8&255,e[6]=l>>>16&255,e[7]=l>>>24&255,e[8]=m>>>0&255,e[9]=m>>>8&255,e[10]=m>>>16&255,e[11]=m>>>24&255,e[12]=_>>>0&255,e[13]=_>>>8&255,e[14]=_>>>16&255,e[15]=_>>>24&255,e[16]=d>>>0&255,e[17]=d>>>8&255,e[18]=d>>>16&255,e[19]=d>>>24&255,e[20]=h>>>0&255,e[21]=h>>>8&255,e[22]=h>>>16&255,e[23]=h>>>24&255,e[24]=f>>>0&255,e[25]=f>>>8&255,e[26]=f>>>16&255,e[27]=f>>>24&255,e[28]=p>>>0&255,e[29]=p>>>8&255,e[30]=p>>>16&255,e[31]=p>>>24&255}(e,t,r,n)}var w=new Uint8Array([101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107]);function _(e,t,r,n,o,i,s){var a,c,u=new Uint8Array(16),l=new Uint8Array(64);for(c=0;c<16;c++)u[c]=0;for(c=0;c<8;c++)u[c]=i[c];for(;o>=64;){for(g(l,u,s,w),c=0;c<64;c++)e[t+c]=r[n+c]^l[c];for(a=1,c=8;c<16;c++)a=a+(255&u[c])|0,u[c]=255&a,a>>>=8;o-=64,t+=64,n+=64}if(o>0)for(g(l,u,s,w),c=0;c=64;){for(g(c,a,o,w),s=0;s<64;s++)e[t+s]=c[s];for(i=1,s=8;s<16;s++)i=i+(255&a[s])|0,a[s]=255&i,i>>>=8;r-=64,t+=64}if(r>0)for(g(c,a,o,w),s=0;s>>13|r<<3),n=255&e[4]|(255&e[5])<<8,this.r[2]=7939&(r>>>10|n<<6),o=255&e[6]|(255&e[7])<<8,this.r[3]=8191&(n>>>7|o<<9),i=255&e[8]|(255&e[9])<<8,this.r[4]=255&(o>>>4|i<<12),this.r[5]=i>>>1&8190,s=255&e[10]|(255&e[11])<<8,this.r[6]=8191&(i>>>14|s<<2),a=255&e[12]|(255&e[13])<<8,this.r[7]=8065&(s>>>11|a<<5),c=255&e[14]|(255&e[15])<<8,this.r[8]=8191&(a>>>8|c<<8),this.r[9]=c>>>5&127,this.pad[0]=255&e[16]|(255&e[17])<<8,this.pad[1]=255&e[18]|(255&e[19])<<8,this.pad[2]=255&e[20]|(255&e[21])<<8,this.pad[3]=255&e[22]|(255&e[23])<<8,this.pad[4]=255&e[24]|(255&e[25])<<8,this.pad[5]=255&e[26]|(255&e[27])<<8,this.pad[6]=255&e[28]|(255&e[29])<<8,this.pad[7]=255&e[30]|(255&e[31])<<8};function A(e,t,r,n,o,i){var s=new k(i);return s.update(r,n,o),s.finish(e,t),0}function S(e,t,r,n,o,i){var s=new Uint8Array(16);return A(s,0,r,n,o,i),m(e,t,s,0)}function E(e,t,r,n,o){var i;if(r<32)return-1;for(I(e,0,t,0,r,n,o),A(e,16,e,32,r-32,e),i=0;i<16;i++)e[i]=0;return 0}function T(e,t,r,n,o){var i,s=new Uint8Array(32);if(r<32)return-1;if($(s,0,32,n,o),0!==S(t,16,t,32,r-32,s))return-1;for(I(e,0,t,0,r,n,o),i=0;i<32;i++)e[i]=0;return 0}function P(e,t){var r;for(r=0;r<16;r++)e[r]=0|t[r]}function R(e){var t,r,n=1;for(t=0;t<16;t++)r=e[t]+n+65535,n=Math.floor(r/65536),e[t]=r-65536*n;e[0]+=n-1+37*(n-1)}function C(e,t,r){for(var n,o=~(r-1),i=0;i<16;i++)n=o&(e[i]^t[i]),e[i]^=n,t[i]^=n}function O(e,r){var n,o,i,s=t(),a=t();for(n=0;n<16;n++)a[n]=r[n];for(R(a),R(a),R(a),o=0;o<2;o++){for(s[0]=a[0]-65517,n=1;n<15;n++)s[n]=a[n]-65535-(s[n-1]>>16&1),s[n-1]&=65535;s[15]=a[15]-32767-(s[14]>>16&1),i=s[15]>>16&1,s[14]&=65535,C(a,s,1-i)}for(n=0;n<16;n++)e[2*n]=255&a[n],e[2*n+1]=a[n]>>8}function M(e,t){var r=new Uint8Array(32),n=new Uint8Array(32);return O(r,e),O(n,t),y(r,0,n,0)}function N(e){var t=new Uint8Array(32);return O(t,e),1&t[0]}function B(e,t){var r;for(r=0;r<16;r++)e[r]=t[2*r]+(t[2*r+1]<<8);e[15]&=32767}function x(e,t,r){for(var n=0;n<16;n++)e[n]=t[n]+r[n]}function D(e,t,r){for(var n=0;n<16;n++)e[n]=t[n]-r[n]}function L(e,t,r){var n,o,i=0,s=0,a=0,c=0,u=0,l=0,d=0,h=0,f=0,p=0,m=0,y=0,g=0,b=0,w=0,_=0,v=0,$=0,I=0,k=0,A=0,S=0,E=0,T=0,P=0,R=0,C=0,O=0,M=0,N=0,B=0,x=r[0],D=r[1],L=r[2],U=r[3],F=r[4],j=r[5],q=r[6],K=r[7],z=r[8],H=r[9],G=r[10],W=r[11],V=r[12],Y=r[13],J=r[14],Q=r[15];i+=(n=t[0])*x,s+=n*D,a+=n*L,c+=n*U,u+=n*F,l+=n*j,d+=n*q,h+=n*K,f+=n*z,p+=n*H,m+=n*G,y+=n*W,g+=n*V,b+=n*Y,w+=n*J,_+=n*Q,s+=(n=t[1])*x,a+=n*D,c+=n*L,u+=n*U,l+=n*F,d+=n*j,h+=n*q,f+=n*K,p+=n*z,m+=n*H,y+=n*G,g+=n*W,b+=n*V,w+=n*Y,_+=n*J,v+=n*Q,a+=(n=t[2])*x,c+=n*D,u+=n*L,l+=n*U,d+=n*F,h+=n*j,f+=n*q,p+=n*K,m+=n*z,y+=n*H,g+=n*G,b+=n*W,w+=n*V,_+=n*Y,v+=n*J,$+=n*Q,c+=(n=t[3])*x,u+=n*D,l+=n*L,d+=n*U,h+=n*F,f+=n*j,p+=n*q,m+=n*K,y+=n*z,g+=n*H,b+=n*G,w+=n*W,_+=n*V,v+=n*Y,$+=n*J,I+=n*Q,u+=(n=t[4])*x,l+=n*D,d+=n*L,h+=n*U,f+=n*F,p+=n*j,m+=n*q,y+=n*K,g+=n*z,b+=n*H,w+=n*G,_+=n*W,v+=n*V,$+=n*Y,I+=n*J,k+=n*Q,l+=(n=t[5])*x,d+=n*D,h+=n*L,f+=n*U,p+=n*F,m+=n*j,y+=n*q,g+=n*K,b+=n*z,w+=n*H,_+=n*G,v+=n*W,$+=n*V,I+=n*Y,k+=n*J,A+=n*Q,d+=(n=t[6])*x,h+=n*D,f+=n*L,p+=n*U,m+=n*F,y+=n*j,g+=n*q,b+=n*K,w+=n*z,_+=n*H,v+=n*G,$+=n*W,I+=n*V,k+=n*Y,A+=n*J,S+=n*Q,h+=(n=t[7])*x,f+=n*D,p+=n*L,m+=n*U,y+=n*F,g+=n*j,b+=n*q,w+=n*K,_+=n*z,v+=n*H,$+=n*G,I+=n*W,k+=n*V,A+=n*Y,S+=n*J,E+=n*Q,f+=(n=t[8])*x,p+=n*D,m+=n*L,y+=n*U,g+=n*F,b+=n*j,w+=n*q,_+=n*K,v+=n*z,$+=n*H,I+=n*G,k+=n*W,A+=n*V,S+=n*Y,E+=n*J,T+=n*Q,p+=(n=t[9])*x,m+=n*D,y+=n*L,g+=n*U,b+=n*F,w+=n*j,_+=n*q,v+=n*K,$+=n*z,I+=n*H,k+=n*G,A+=n*W,S+=n*V,E+=n*Y,T+=n*J,P+=n*Q,m+=(n=t[10])*x,y+=n*D,g+=n*L,b+=n*U,w+=n*F,_+=n*j,v+=n*q,$+=n*K,I+=n*z,k+=n*H,A+=n*G,S+=n*W,E+=n*V,T+=n*Y,P+=n*J,R+=n*Q,y+=(n=t[11])*x,g+=n*D,b+=n*L,w+=n*U,_+=n*F,v+=n*j,$+=n*q,I+=n*K,k+=n*z,A+=n*H,S+=n*G,E+=n*W,T+=n*V,P+=n*Y,R+=n*J,C+=n*Q,g+=(n=t[12])*x,b+=n*D,w+=n*L,_+=n*U,v+=n*F,$+=n*j,I+=n*q,k+=n*K,A+=n*z,S+=n*H,E+=n*G,T+=n*W,P+=n*V,R+=n*Y,C+=n*J,O+=n*Q,b+=(n=t[13])*x,w+=n*D,_+=n*L,v+=n*U,$+=n*F,I+=n*j,k+=n*q,A+=n*K,S+=n*z,E+=n*H,T+=n*G,P+=n*W,R+=n*V,C+=n*Y,O+=n*J,M+=n*Q,w+=(n=t[14])*x,_+=n*D,v+=n*L,$+=n*U,I+=n*F,k+=n*j,A+=n*q,S+=n*K,E+=n*z,T+=n*H,P+=n*G,R+=n*W,C+=n*V,O+=n*Y,M+=n*J,N+=n*Q,_+=(n=t[15])*x,s+=38*($+=n*L),a+=38*(I+=n*U),c+=38*(k+=n*F),u+=38*(A+=n*j),l+=38*(S+=n*q),d+=38*(E+=n*K),h+=38*(T+=n*z),f+=38*(P+=n*H),p+=38*(R+=n*G),m+=38*(C+=n*W),y+=38*(O+=n*V),g+=38*(M+=n*Y),b+=38*(N+=n*J),w+=38*(B+=n*Q),i=(n=(i+=38*(v+=n*D))+(o=1)+65535)-65536*(o=Math.floor(n/65536)),s=(n=s+o+65535)-65536*(o=Math.floor(n/65536)),a=(n=a+o+65535)-65536*(o=Math.floor(n/65536)),c=(n=c+o+65535)-65536*(o=Math.floor(n/65536)),u=(n=u+o+65535)-65536*(o=Math.floor(n/65536)),l=(n=l+o+65535)-65536*(o=Math.floor(n/65536)),d=(n=d+o+65535)-65536*(o=Math.floor(n/65536)),h=(n=h+o+65535)-65536*(o=Math.floor(n/65536)),f=(n=f+o+65535)-65536*(o=Math.floor(n/65536)),p=(n=p+o+65535)-65536*(o=Math.floor(n/65536)),m=(n=m+o+65535)-65536*(o=Math.floor(n/65536)),y=(n=y+o+65535)-65536*(o=Math.floor(n/65536)),g=(n=g+o+65535)-65536*(o=Math.floor(n/65536)),b=(n=b+o+65535)-65536*(o=Math.floor(n/65536)),w=(n=w+o+65535)-65536*(o=Math.floor(n/65536)),_=(n=_+o+65535)-65536*(o=Math.floor(n/65536)),i=(n=(i+=o-1+37*(o-1))+(o=1)+65535)-65536*(o=Math.floor(n/65536)),s=(n=s+o+65535)-65536*(o=Math.floor(n/65536)),a=(n=a+o+65535)-65536*(o=Math.floor(n/65536)),c=(n=c+o+65535)-65536*(o=Math.floor(n/65536)),u=(n=u+o+65535)-65536*(o=Math.floor(n/65536)),l=(n=l+o+65535)-65536*(o=Math.floor(n/65536)),d=(n=d+o+65535)-65536*(o=Math.floor(n/65536)),h=(n=h+o+65535)-65536*(o=Math.floor(n/65536)),f=(n=f+o+65535)-65536*(o=Math.floor(n/65536)),p=(n=p+o+65535)-65536*(o=Math.floor(n/65536)),m=(n=m+o+65535)-65536*(o=Math.floor(n/65536)),y=(n=y+o+65535)-65536*(o=Math.floor(n/65536)),g=(n=g+o+65535)-65536*(o=Math.floor(n/65536)),b=(n=b+o+65535)-65536*(o=Math.floor(n/65536)),w=(n=w+o+65535)-65536*(o=Math.floor(n/65536)),_=(n=_+o+65535)-65536*(o=Math.floor(n/65536)),i+=o-1+37*(o-1),e[0]=i,e[1]=s,e[2]=a,e[3]=c,e[4]=u,e[5]=l,e[6]=d,e[7]=h,e[8]=f,e[9]=p,e[10]=m,e[11]=y,e[12]=g,e[13]=b,e[14]=w,e[15]=_}function U(e,t){L(e,t,t)}function F(e,r){var n,o=t();for(n=0;n<16;n++)o[n]=r[n];for(n=253;n>=0;n--)U(o,o),2!==n&&4!==n&&L(o,o,r);for(n=0;n<16;n++)e[n]=o[n]}function j(e,r){var n,o=t();for(n=0;n<16;n++)o[n]=r[n];for(n=250;n>=0;n--)U(o,o),1!==n&&L(o,o,r);for(n=0;n<16;n++)e[n]=o[n]}function q(e,r,n){var o,i,s=new Uint8Array(32),c=new Float64Array(80),u=t(),l=t(),d=t(),h=t(),f=t(),p=t();for(i=0;i<31;i++)s[i]=r[i];for(s[31]=127&r[31]|64,s[0]&=248,B(c,n),i=0;i<16;i++)l[i]=c[i],h[i]=u[i]=d[i]=0;for(u[0]=h[0]=1,i=254;i>=0;--i)C(u,l,o=s[i>>>3]>>>(7&i)&1),C(d,h,o),x(f,u,d),D(u,u,d),x(d,l,h),D(l,l,h),U(h,f),U(p,u),L(u,d,u),L(d,l,f),x(f,u,d),D(u,u,d),U(l,u),D(d,h,p),L(u,d,a),x(u,u,h),L(d,d,u),L(u,h,p),L(h,l,c),U(l,f),C(u,l,o),C(d,h,o);for(i=0;i<16;i++)c[i+16]=u[i],c[i+32]=d[i],c[i+48]=l[i],c[i+64]=h[i];var m=c.subarray(32),y=c.subarray(16);return F(m,m),L(y,y,m),O(e,y),0}function K(e,t){return q(e,t,o)}function z(e,t){return r(t,32),K(e,t)}function H(e,t,r){var o=new Uint8Array(32);return q(o,r,t),b(e,n,o,w)}k.prototype.blocks=function(e,t,r){for(var n,o,i,s,a,c,u,l,d,h,f,p,m,y,g,b,w,_,v,$=this.fin?0:2048,I=this.h[0],k=this.h[1],A=this.h[2],S=this.h[3],E=this.h[4],T=this.h[5],P=this.h[6],R=this.h[7],C=this.h[8],O=this.h[9],M=this.r[0],N=this.r[1],B=this.r[2],x=this.r[3],D=this.r[4],L=this.r[5],U=this.r[6],F=this.r[7],j=this.r[8],q=this.r[9];r>=16;)h=d=0,h+=(I+=8191&(n=255&e[t+0]|(255&e[t+1])<<8))*M,h+=(k+=8191&(n>>>13|(o=255&e[t+2]|(255&e[t+3])<<8)<<3))*(5*q),h+=(A+=8191&(o>>>10|(i=255&e[t+4]|(255&e[t+5])<<8)<<6))*(5*j),h+=(S+=8191&(i>>>7|(s=255&e[t+6]|(255&e[t+7])<<8)<<9))*(5*F),d=(h+=(E+=8191&(s>>>4|(a=255&e[t+8]|(255&e[t+9])<<8)<<12))*(5*U))>>>13,h&=8191,h+=(T+=a>>>1&8191)*(5*L),h+=(P+=8191&(a>>>14|(c=255&e[t+10]|(255&e[t+11])<<8)<<2))*(5*D),h+=(R+=8191&(c>>>11|(u=255&e[t+12]|(255&e[t+13])<<8)<<5))*(5*x),h+=(C+=8191&(u>>>8|(l=255&e[t+14]|(255&e[t+15])<<8)<<8))*(5*B),f=d+=(h+=(O+=l>>>5|$)*(5*N))>>>13,f+=I*N,f+=k*M,f+=A*(5*q),f+=S*(5*j),d=(f+=E*(5*F))>>>13,f&=8191,f+=T*(5*U),f+=P*(5*L),f+=R*(5*D),f+=C*(5*x),d+=(f+=O*(5*B))>>>13,f&=8191,p=d,p+=I*B,p+=k*N,p+=A*M,p+=S*(5*q),d=(p+=E*(5*j))>>>13,p&=8191,p+=T*(5*F),p+=P*(5*U),p+=R*(5*L),p+=C*(5*D),m=d+=(p+=O*(5*x))>>>13,m+=I*x,m+=k*B,m+=A*N,m+=S*M,d=(m+=E*(5*q))>>>13,m&=8191,m+=T*(5*j),m+=P*(5*F),m+=R*(5*U),m+=C*(5*L),y=d+=(m+=O*(5*D))>>>13,y+=I*D,y+=k*x,y+=A*B,y+=S*N,d=(y+=E*M)>>>13,y&=8191,y+=T*(5*q),y+=P*(5*j),y+=R*(5*F),y+=C*(5*U),g=d+=(y+=O*(5*L))>>>13,g+=I*L,g+=k*D,g+=A*x,g+=S*B,d=(g+=E*N)>>>13,g&=8191,g+=T*M,g+=P*(5*q),g+=R*(5*j),g+=C*(5*F),b=d+=(g+=O*(5*U))>>>13,b+=I*U,b+=k*L,b+=A*D,b+=S*x,d=(b+=E*B)>>>13,b&=8191,b+=T*N,b+=P*M,b+=R*(5*q),b+=C*(5*j),w=d+=(b+=O*(5*F))>>>13,w+=I*F,w+=k*U,w+=A*L,w+=S*D,d=(w+=E*x)>>>13,w&=8191,w+=T*B,w+=P*N,w+=R*M,w+=C*(5*q),_=d+=(w+=O*(5*j))>>>13,_+=I*j,_+=k*F,_+=A*U,_+=S*L,d=(_+=E*D)>>>13,_&=8191,_+=T*x,_+=P*B,_+=R*N,_+=C*M,v=d+=(_+=O*(5*q))>>>13,v+=I*q,v+=k*j,v+=A*F,v+=S*U,d=(v+=E*L)>>>13,v&=8191,v+=T*D,v+=P*x,v+=R*B,v+=C*N,I=h=8191&(d=(d=((d+=(v+=O*M)>>>13)<<2)+d|0)+(h&=8191)|0),k=f+=d>>>=13,A=p&=8191,S=m&=8191,E=y&=8191,T=g&=8191,P=b&=8191,R=w&=8191,C=_&=8191,O=v&=8191,t+=16,r-=16;this.h[0]=I,this.h[1]=k,this.h[2]=A,this.h[3]=S,this.h[4]=E,this.h[5]=T,this.h[6]=P,this.h[7]=R,this.h[8]=C,this.h[9]=O},k.prototype.finish=function(e,t){var r,n,o,i,s=new Uint16Array(10);if(this.leftover){for(i=this.leftover,this.buffer[i++]=1;i<16;i++)this.buffer[i]=0;this.fin=1,this.blocks(this.buffer,0,16)}for(r=this.h[1]>>>13,this.h[1]&=8191,i=2;i<10;i++)this.h[i]+=r,r=this.h[i]>>>13,this.h[i]&=8191;for(this.h[0]+=5*r,r=this.h[0]>>>13,this.h[0]&=8191,this.h[1]+=r,r=this.h[1]>>>13,this.h[1]&=8191,this.h[2]+=r,s[0]=this.h[0]+5,r=s[0]>>>13,s[0]&=8191,i=1;i<10;i++)s[i]=this.h[i]+r,r=s[i]>>>13,s[i]&=8191;for(s[9]-=8192,n=(1^r)-1,i=0;i<10;i++)s[i]&=n;for(n=~n,i=0;i<10;i++)this.h[i]=this.h[i]&n|s[i];for(this.h[0]=65535&(this.h[0]|this.h[1]<<13),this.h[1]=65535&(this.h[1]>>>3|this.h[2]<<10),this.h[2]=65535&(this.h[2]>>>6|this.h[3]<<7),this.h[3]=65535&(this.h[3]>>>9|this.h[4]<<4),this.h[4]=65535&(this.h[4]>>>12|this.h[5]<<1|this.h[6]<<14),this.h[5]=65535&(this.h[6]>>>2|this.h[7]<<11),this.h[6]=65535&(this.h[7]>>>5|this.h[8]<<8),this.h[7]=65535&(this.h[8]>>>8|this.h[9]<<5),o=this.h[0]+this.pad[0],this.h[0]=65535&o,i=1;i<8;i++)o=(this.h[i]+this.pad[i]|0)+(o>>>16)|0,this.h[i]=65535&o;e[t+0]=this.h[0]>>>0&255,e[t+1]=this.h[0]>>>8&255,e[t+2]=this.h[1]>>>0&255,e[t+3]=this.h[1]>>>8&255,e[t+4]=this.h[2]>>>0&255,e[t+5]=this.h[2]>>>8&255,e[t+6]=this.h[3]>>>0&255,e[t+7]=this.h[3]>>>8&255,e[t+8]=this.h[4]>>>0&255,e[t+9]=this.h[4]>>>8&255,e[t+10]=this.h[5]>>>0&255,e[t+11]=this.h[5]>>>8&255,e[t+12]=this.h[6]>>>0&255,e[t+13]=this.h[6]>>>8&255,e[t+14]=this.h[7]>>>0&255,e[t+15]=this.h[7]>>>8&255},k.prototype.update=function(e,t,r){var n,o;if(this.leftover){for((o=16-this.leftover)>r&&(o=r),n=0;n=16&&(o=r-r%16,this.blocks(e,t,o),t+=o,r-=o),r){for(n=0;n=128;){for($=0;$<16;$++)I=8*$+Y,R[$]=r[I+0]<<24|r[I+1]<<16|r[I+2]<<8|r[I+3],C[$]=r[I+4]<<24|r[I+5]<<16|r[I+6]<<8|r[I+7];for($=0;$<80;$++)if(o=O,i=M,s=N,a=B,c=x,u=D,l=L,U,h=F,f=j,p=q,m=K,y=z,g=H,b=G,W,S=65535&(A=W),E=A>>>16,T=65535&(k=U),P=k>>>16,S+=65535&(A=(z>>>14|x<<18)^(z>>>18|x<<14)^(x>>>9|z<<23)),E+=A>>>16,T+=65535&(k=(x>>>14|z<<18)^(x>>>18|z<<14)^(z>>>9|x<<23)),P+=k>>>16,S+=65535&(A=z&H^~z&G),E+=A>>>16,T+=65535&(k=x&D^~x&L),P+=k>>>16,S+=65535&(A=V[2*$+1]),E+=A>>>16,T+=65535&(k=V[2*$]),P+=k>>>16,k=R[$%16],E+=(A=C[$%16])>>>16,T+=65535&k,P+=k>>>16,T+=(E+=(S+=65535&A)>>>16)>>>16,S=65535&(A=v=65535&S|E<<16),E=A>>>16,T=65535&(k=_=65535&T|(P+=T>>>16)<<16),P=k>>>16,S+=65535&(A=(F>>>28|O<<4)^(O>>>2|F<<30)^(O>>>7|F<<25)),E+=A>>>16,T+=65535&(k=(O>>>28|F<<4)^(F>>>2|O<<30)^(F>>>7|O<<25)),P+=k>>>16,E+=(A=F&j^F&q^j&q)>>>16,T+=65535&(k=O&M^O&N^M&N),P+=k>>>16,d=65535&(T+=(E+=(S+=65535&A)>>>16)>>>16)|(P+=T>>>16)<<16,w=65535&S|E<<16,S=65535&(A=m),E=A>>>16,T=65535&(k=a),P=k>>>16,E+=(A=v)>>>16,T+=65535&(k=_),P+=k>>>16,M=o,N=i,B=s,x=a=65535&(T+=(E+=(S+=65535&A)>>>16)>>>16)|(P+=T>>>16)<<16,D=c,L=u,U=l,O=d,j=h,q=f,K=p,z=m=65535&S|E<<16,H=y,G=g,W=b,F=w,$%16==15)for(I=0;I<16;I++)k=R[I],S=65535&(A=C[I]),E=A>>>16,T=65535&k,P=k>>>16,k=R[(I+9)%16],S+=65535&(A=C[(I+9)%16]),E+=A>>>16,T+=65535&k,P+=k>>>16,_=R[(I+1)%16],S+=65535&(A=((v=C[(I+1)%16])>>>1|_<<31)^(v>>>8|_<<24)^(v>>>7|_<<25)),E+=A>>>16,T+=65535&(k=(_>>>1|v<<31)^(_>>>8|v<<24)^_>>>7),P+=k>>>16,_=R[(I+14)%16],E+=(A=((v=C[(I+14)%16])>>>19|_<<13)^(_>>>29|v<<3)^(v>>>6|_<<26))>>>16,T+=65535&(k=(_>>>19|v<<13)^(v>>>29|_<<3)^_>>>6),P+=k>>>16,P+=(T+=(E+=(S+=65535&A)>>>16)>>>16)>>>16,R[I]=65535&T|P<<16,C[I]=65535&S|E<<16;S=65535&(A=F),E=A>>>16,T=65535&(k=O),P=k>>>16,k=e[0],E+=(A=t[0])>>>16,T+=65535&k,P+=k>>>16,P+=(T+=(E+=(S+=65535&A)>>>16)>>>16)>>>16,e[0]=O=65535&T|P<<16,t[0]=F=65535&S|E<<16,S=65535&(A=j),E=A>>>16,T=65535&(k=M),P=k>>>16,k=e[1],E+=(A=t[1])>>>16,T+=65535&k,P+=k>>>16,P+=(T+=(E+=(S+=65535&A)>>>16)>>>16)>>>16,e[1]=M=65535&T|P<<16,t[1]=j=65535&S|E<<16,S=65535&(A=q),E=A>>>16,T=65535&(k=N),P=k>>>16,k=e[2],E+=(A=t[2])>>>16,T+=65535&k,P+=k>>>16,P+=(T+=(E+=(S+=65535&A)>>>16)>>>16)>>>16,e[2]=N=65535&T|P<<16,t[2]=q=65535&S|E<<16,S=65535&(A=K),E=A>>>16,T=65535&(k=B),P=k>>>16,k=e[3],E+=(A=t[3])>>>16,T+=65535&k,P+=k>>>16,P+=(T+=(E+=(S+=65535&A)>>>16)>>>16)>>>16,e[3]=B=65535&T|P<<16,t[3]=K=65535&S|E<<16,S=65535&(A=z),E=A>>>16,T=65535&(k=x),P=k>>>16,k=e[4],E+=(A=t[4])>>>16,T+=65535&k,P+=k>>>16,P+=(T+=(E+=(S+=65535&A)>>>16)>>>16)>>>16,e[4]=x=65535&T|P<<16,t[4]=z=65535&S|E<<16,S=65535&(A=H),E=A>>>16,T=65535&(k=D),P=k>>>16,k=e[5],E+=(A=t[5])>>>16,T+=65535&k,P+=k>>>16,P+=(T+=(E+=(S+=65535&A)>>>16)>>>16)>>>16,e[5]=D=65535&T|P<<16,t[5]=H=65535&S|E<<16,S=65535&(A=G),E=A>>>16,T=65535&(k=L),P=k>>>16,k=e[6],E+=(A=t[6])>>>16,T+=65535&k,P+=k>>>16,P+=(T+=(E+=(S+=65535&A)>>>16)>>>16)>>>16,e[6]=L=65535&T|P<<16,t[6]=G=65535&S|E<<16,S=65535&(A=W),E=A>>>16,T=65535&(k=U),P=k>>>16,k=e[7],E+=(A=t[7])>>>16,T+=65535&k,P+=k>>>16,P+=(T+=(E+=(S+=65535&A)>>>16)>>>16)>>>16,e[7]=U=65535&T|P<<16,t[7]=W=65535&S|E<<16,Y+=128,n-=128}return n}function J(e,t,r){var n,o=new Int32Array(8),i=new Int32Array(8),s=new Uint8Array(256),a=r;for(o[0]=1779033703,o[1]=3144134277,o[2]=1013904242,o[3]=2773480762,o[4]=1359893119,o[5]=2600822924,o[6]=528734635,o[7]=1541459225,i[0]=4089235720,i[1]=2227873595,i[2]=4271175723,i[3]=1595750129,i[4]=2917565137,i[5]=725511199,i[6]=4215389547,i[7]=327033209,Y(o,i,t,r),r%=128,n=0;n=0;--o)Z(e,t,n=r[o/8|0]>>(7&o)&1),Q(t,e),Q(e,e),Z(e,t,n)}function te(e,r){var n=[t(),t(),t(),t()];P(n[0],l),P(n[1],d),P(n[2],s),L(n[3],l,d),ee(e,n,r)}function re(e,n,o){var i,s=new Uint8Array(64),a=[t(),t(),t(),t()];for(o||r(n,32),J(s,n,32),s[0]&=248,s[31]&=127,s[31]|=64,te(a,s),X(e,a),i=0;i<32;i++)n[i+32]=e[i];return 0}var ne=new Float64Array([237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16]);function oe(e,t){var r,n,o,i;for(n=63;n>=32;--n){for(r=0,o=n-32,i=n-12;o>4)*ne[o],r=t[o]>>8,t[o]&=255;for(o=0;o<32;o++)t[o]-=r*ne[o];for(n=0;n<32;n++)t[n+1]+=t[n]>>8,e[n]=255&t[n]}function ie(e){var t,r=new Float64Array(64);for(t=0;t<64;t++)r[t]=e[t];for(t=0;t<64;t++)e[t]=0;oe(e,r)}function se(e,r,n,o){var i,s,a=new Uint8Array(64),c=new Uint8Array(64),u=new Uint8Array(64),l=new Float64Array(64),d=[t(),t(),t(),t()];J(a,o,32),a[0]&=248,a[31]&=127,a[31]|=64;var h=n+64;for(i=0;i>7&&D(e[0],i,e[0]),L(e[3],e[0],e[1]),0)}(f,o))return-1;for(a=0;a=0},e.sign.keyPair=function(){var e=new Uint8Array(le),t=new Uint8Array(de);return re(e,t),{publicKey:e,secretKey:t}},e.sign.keyPair.fromSecretKey=function(e){if(fe(e),e.length!==de)throw new Error("bad secret key size");for(var t=new Uint8Array(le),r=0;rparseInt(e,16))))}const derPrefix$3="302a300506032b6570032100",derPrefixBytes$3=decode$7(derPrefix$3);class Ed25519PublicKey extends Key{constructor(e){super(),this._keyData=e}get _type(){return"ED25519"}static fromBytes(e){switch(e.length){case 32:return Ed25519PublicKey.fromBytesRaw(e);case 44:return Ed25519PublicKey.fromBytesDer(e);default:throw new BadKeyError(`invalid public key length: ${e.length} bytes`)}}static fromBytesDer(e){try{if(44!==e.length)throw new Error(`invalid length: ${e.length} bytes`);if(!e.subarray(0,12).every(((e,t)=>e===derPrefixBytes$3[t])))throw new Error("invalid DER prefix");const t=e.subarray(12);return new Ed25519PublicKey(t)}catch(t){throw new BadKeyError(`cannot decode ED25519 public key data from DER format: ${t instanceof Error?t.message:"unknown error"}`)}}static fromBytesRaw(e){if(32!=e.length)throw new BadKeyError(`invalid public key length: ${e.length} bytes`);return new Ed25519PublicKey(e)}static fromString(e){return Ed25519PublicKey.fromBytes(decode$7(e))}verify(e,t){return nacl.sign.detached.verify(e,t,this._keyData)}toBytesDer(){const e=new Uint8Array(derPrefixBytes$3.length+32);return e.set(derPrefixBytes$3,0),e.set(this._keyData.subarray(0,32),derPrefixBytes$3.length),e}toBytesRaw(){return this._keyData.slice()}equals(e){return arrayEqual(this._keyData,e._keyData)}}function bytes(e){return nacl.randomBytes(e)}function bytesAsync(e){return Promise.resolve(nacl.randomBytes(e))}function decode$6(e){return(new TextDecoder).decode(e)}function encode$3(e){return(new TextEncoder).encode(e)}const HashAlgorithm={Sha256:"SHA-256",Sha384:"SHA-384",Sha512:"SHA-512"};async function hash$2(e,t,r){const n="string"==typeof t?encode$3(t):t,o="string"==typeof r?encode$3(r):r;try{const t=await window.crypto.subtle.importKey("raw",n,{name:"HMAC",hash:e},!1,["sign"]);return new Uint8Array(await window.crypto.subtle.sign("HMAC",t,o))}catch{throw new Error("Fallback if SubtleCrypto fails is not implemented")}}const crypto$2="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0; +/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function isBytes$2(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name}function anumber(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function abytes$1(e,...t){if(!isBytes$2(e))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}function ahash(e){if("function"!=typeof e||"function"!=typeof e.create)throw new Error("Hash should be wrapped by utils.createHasher");anumber(e.outputLen),anumber(e.blockLen)}function aexists(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function aoutput(e,t){abytes$1(e);const r=t.outputLen;if(e.length>>t}function utf8ToBytes$1(e){if("string"!=typeof e)throw new Error("string expected");return new Uint8Array((new TextEncoder).encode(e))}function toBytes(e){return"string"==typeof e&&(e=utf8ToBytes$1(e)),abytes$1(e),e}function concatBytes$1(...e){let t=0;for(let n=0;ne().update(toBytes(t)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function randomBytes(e=32){if(crypto$2&&"function"==typeof crypto$2.getRandomValues)return crypto$2.getRandomValues(new Uint8Array(e));if(crypto$2&&"function"==typeof crypto$2.randomBytes)return Uint8Array.from(crypto$2.randomBytes(e));throw new Error("crypto.getRandomValues must be defined")}function setBigUint64(e,t,r,n){if("function"==typeof e.setBigUint64)return e.setBigUint64(t,r,n);const o=BigInt(32),i=BigInt(4294967295),s=Number(r>>o&i),a=Number(r&i),c=n?4:0,u=n?0:4;e.setUint32(t+c,s,n),e.setUint32(t+u,a,n)}function Chi(e,t,r){return e&t^~e&r}function Maj(e,t,r){return e&t^e&r^t&r}class HashMD extends Hash{constructor(e,t,r,n){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=e,this.outputLen=t,this.padOffset=r,this.isLE=n,this.buffer=new Uint8Array(e),this.view=createView(this.buffer)}update(e){aexists(this),abytes$1(e=toBytes(e));const{view:t,buffer:r,blockLen:n}=this,o=e.length;for(let i=0;in-i&&(this.process(r,0),i=0);for(let l=i;lu.length)throw new Error("_sha2: outputLen bigger than state");for(let l=0;l>>3,n=rotr(t,17)^rotr(t,19)^t>>>10;SHA256_W[l]=n+SHA256_W[l-7]+r+SHA256_W[l-16]|0}let{A:r,B:n,C:o,D:i,E:s,F:a,G:c,H:u}=this;for(let l=0;l<64;l++){const e=u+(rotr(s,6)^rotr(s,11)^rotr(s,25))+Chi(s,a,c)+SHA256_K[l]+SHA256_W[l]|0,t=(rotr(r,2)^rotr(r,13)^rotr(r,22))+Maj(r,n,o)|0;u=c,c=a,a=s,s=i+e|0,i=o,o=n,n=r,r=e+t|0}r=r+this.A|0,n=n+this.B|0,o=o+this.C|0,i=i+this.D|0,s=s+this.E|0,a=a+this.F|0,c=c+this.G|0,u=u+this.H|0,this.set(r,n,o,i,s,a,c,u)}roundClean(){clean(SHA256_W)}destroy(){this.set(0,0,0,0,0,0,0,0),clean(this.buffer)}}const sha256$1=createHasher((()=>new SHA256));let HMAC$1=class extends Hash{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,ahash(e);const r=toBytes(t);if(this.iHash=e.create(),"function"!=typeof this.iHash.update)throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const n=this.blockLen,o=new Uint8Array(n);o.set(r.length>n?e.create().update(r).digest():r);for(let i=0;inew HMAC$1(e,t).update(r).digest();hmac$2.create=(e,t)=>new HMAC$1(e,t) +/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */;const _0n$4=BigInt(0),_1n$4=BigInt(1);function isBytes$1(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name}function abytes(e){if(!isBytes$1(e))throw new Error("Uint8Array expected")}function abool(e,t){if("boolean"!=typeof t)throw new Error(e+" boolean expected, got "+t)}function numberToHexUnpadded(e){const t=e.toString(16);return 1&t.length?"0"+t:t}function hexToNumber(e){if("string"!=typeof e)throw new Error("hex string expected, got "+typeof e);return""===e?_0n$4:BigInt("0x"+e)}const hasHexBuiltin="function"==typeof Uint8Array.from([]).toHex&&"function"==typeof Uint8Array.fromHex,hexes=Array.from({length:256},((e,t)=>t.toString(16).padStart(2,"0")));function bytesToHex(e){if(abytes(e),hasHexBuiltin)return e.toHex();let t="";for(let r=0;r=asciis._0&&e<=asciis._9?e-asciis._0:e>=asciis.A&&e<=asciis.F?e-(asciis.A-10):e>=asciis.a&&e<=asciis.f?e-(asciis.a-10):void 0}function hexToBytes(e){if("string"!=typeof e)throw new Error("hex string expected, got "+typeof e);if(hasHexBuiltin)return Uint8Array.fromHex(e);const t=e.length,r=t/2;if(t%2)throw new Error("hex string expected, got unpadded hex of length "+t);const n=new Uint8Array(r);for(let o=0,i=0;o"bigint"==typeof e&&_0n$4<=e;function inRange(e,t,r){return isPosBig(e)&&isPosBig(t)&&isPosBig(r)&&t<=e&&e_0n$4;e>>=_1n$4,t+=1);return t}const bitMask=e=>(_1n$4<new Uint8Array(e),u8fr=e=>Uint8Array.from(e);function createHmacDrbg(e,t,r){if("number"!=typeof e||e<2)throw new Error("hashLen must be a number");if("number"!=typeof t||t<2)throw new Error("qByteLen must be a number");if("function"!=typeof r)throw new Error("hmacFn must be a function");let n=u8n(e),o=u8n(e),i=0;const s=()=>{n.fill(1),o.fill(0),i=0},a=(...e)=>r(o,n,...e),c=(e=u8n(0))=>{o=a(u8fr([0]),e),n=a(),0!==e.length&&(o=a(u8fr([1]),e),n=a())},u=()=>{if(i++>=1e3)throw new Error("drbg: tried 1000 values");let e=0;const r=[];for(;e{let r;for(s(),c(e);!(r=t(u()));)c();return s(),r}}const validatorFns={bigint:e=>"bigint"==typeof e,function:e=>"function"==typeof e,boolean:e=>"boolean"==typeof e,string:e=>"string"==typeof e,stringOrUint8Array:e=>"string"==typeof e||isBytes$1(e),isSafeInteger:e=>Number.isSafeInteger(e),array:e=>Array.isArray(e),field:(e,t)=>t.Fp.isValid(e),hash:e=>"function"==typeof e&&Number.isSafeInteger(e.outputLen)};function validateObject(e,t,r={}){const n=(t,r,n)=>{const o=validatorFns[r];if("function"!=typeof o)throw new Error("invalid validator function");const i=e[t];if(!(n&&void 0===i||o(i,e)))throw new Error("param "+String(t)+" is invalid. Expected "+r+", got "+i)};for(const[o,i]of Object.entries(t))n(o,i,!1);for(const[o,i]of Object.entries(r))n(o,i,!0);return e}function memoized(e){const t=new WeakMap;return(r,...n)=>{const o=t.get(r);if(void 0!==o)return o;const i=e(r,...n);return t.set(r,i),i}} +/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const _0n$3=BigInt(0),_1n$3=BigInt(1),_2n$1=BigInt(2),_3n$1=BigInt(3),_4n$1=BigInt(4),_5n=BigInt(5),_8n=BigInt(8);function mod(e,t){const r=e%t;return r>=_0n$3?r:t+r}function pow2(e,t,r){let n=e;for(;t-- >_0n$3;)n*=n,n%=r;return n}function invert(e,t){if(e===_0n$3)throw new Error("invert: expected non-zero number");if(t<=_0n$3)throw new Error("invert: expected positive modulus, got "+t);let r=mod(e,t),n=t,o=_0n$3,i=_1n$3;for(;r!==_0n$3;){const e=n%r,t=o-i*(n/r);n=r,r=e,o=i,i=t}if(n!==_1n$3)throw new Error("invert: does not exist");return mod(o,t)}function sqrt3mod4(e,t){const r=(e.ORDER+_1n$3)/_4n$1,n=e.pow(t,r);if(!e.eql(e.sqr(n),t))throw new Error("Cannot find square root");return n}function sqrt5mod8(e,t){const r=(e.ORDER-_5n)/_8n,n=e.mul(t,_2n$1),o=e.pow(n,r),i=e.mul(t,o),s=e.mul(e.mul(i,_2n$1),o),a=e.mul(i,e.sub(s,e.ONE));if(!e.eql(e.sqr(a),t))throw new Error("Cannot find square root");return a}function tonelliShanks(e){if(e1e3)throw new Error("Cannot find square root: probably non-prime P");if(1===r)return sqrt3mod4;let i=o.pow(n,t);const s=(t+_1n$3)/_2n$1;return function(e,n){if(e.is0(n))return n;if(1!==FpLegendre(e,n))throw new Error("Cannot find square root");let o=r,a=e.mul(e.ONE,i),c=e.pow(n,t),u=e.pow(n,s);for(;!e.eql(c,e.ONE);){if(e.is0(c))return e.ZERO;let t=1,r=e.sqr(c);for(;!e.eql(r,e.ONE);)if(t++,r=e.sqr(r),t===o)throw new Error("Cannot find square root");const n=_1n$3<(e[t]="function",e)),{ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"}))}function FpPow(e,t,r){if(r<_0n$3)throw new Error("invalid exponent, negatives unsupported");if(r===_0n$3)return e.ONE;if(r===_1n$3)return t;let n=e.ONE,o=t;for(;r>_0n$3;)r&_1n$3&&(n=e.mul(n,o)),o=e.sqr(o),r>>=_1n$3;return n}function FpInvertBatch(e,t,r=!1){const n=new Array(t.length).fill(r?e.ZERO:void 0),o=t.reduce(((t,r,o)=>e.is0(r)?t:(n[o]=t,e.mul(t,r))),e.ONE),i=e.inv(o);return t.reduceRight(((t,r,o)=>e.is0(r)?t:(n[o]=e.mul(t,n[o]),e.mul(t,r))),i),n}function FpLegendre(e,t){const r=(e.ORDER-_1n$3)/_2n$1,n=e.pow(t,r),o=e.eql(n,e.ONE),i=e.eql(n,e.ZERO),s=e.eql(n,e.neg(e.ONE));if(!o&&!i&&!s)throw new Error("invalid Legendre symbol result");return o?1:i?0:-1}function nLength(e,t){void 0!==t&&anumber(t);const r=void 0!==t?t:e.toString(2).length;return{nBitLength:r,nByteLength:Math.ceil(r/8)}}function Field(e,t,r=!1,n={}){if(e<=_0n$3)throw new Error("invalid field: expected ORDER > 0, got "+e);const{nBitLength:o,nByteLength:i}=nLength(e,t);if(i>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let s;const a=Object.freeze({ORDER:e,isLE:r,BITS:o,BYTES:i,MASK:bitMask(o),ZERO:_0n$3,ONE:_1n$3,create:t=>mod(t,e),isValid:t=>{if("bigint"!=typeof t)throw new Error("invalid field element: expected bigint, got "+typeof t);return _0n$3<=t&&te===_0n$3,isOdd:e=>(e&_1n$3)===_1n$3,neg:t=>mod(-t,e),eql:(e,t)=>e===t,sqr:t=>mod(t*t,e),add:(t,r)=>mod(t+r,e),sub:(t,r)=>mod(t-r,e),mul:(t,r)=>mod(t*r,e),pow:(e,t)=>FpPow(a,e,t),div:(t,r)=>mod(t*invert(r,e),e),sqrN:e=>e*e,addN:(e,t)=>e+t,subN:(e,t)=>e-t,mulN:(e,t)=>e*t,inv:t=>invert(t,e),sqrt:n.sqrt||(t=>(s||(s=FpSqrt(e)),s(a,t))),toBytes:e=>r?numberToBytesLE(e,i):numberToBytesBE(e,i),fromBytes:e=>{if(e.length!==i)throw new Error("Field.fromBytes: expected "+i+" bytes, got "+e.length);return r?bytesToNumberLE(e):bytesToNumberBE(e)},invertBatch:e=>FpInvertBatch(a,e),cmov:(e,t,r)=>r?t:e});return Object.freeze(a)}function getFieldBytesLength(e){if("bigint"!=typeof e)throw new Error("field order must be bigint");const t=e.toString(2).length;return Math.ceil(t/8)}function getMinHashLength(e){const t=getFieldBytesLength(e);return t+Math.ceil(t/2)}function mapHashToField(e,t,r=!1){const n=e.length,o=getFieldBytesLength(t),i=getMinHashLength(t);if(n<16||n1024)throw new Error("expected "+i+"-1024 bytes of input, got "+n);const s=mod(r?bytesToNumberLE(e):bytesToNumberBE(e),t-_1n$3)+_1n$3;return r?numberToBytesLE(s,o):numberToBytesBE(s,o)} +/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const _0n$2=BigInt(0),_1n$2=BigInt(1);function constTimeNegate(e,t){const r=t.negate();return e?r:t}function validateW(e,t){if(!Number.isSafeInteger(e)||e<=0||e>t)throw new Error("invalid window size, expected [1.."+t+"], got W="+e)}function calcWOpts(e,t){validateW(e,t);const r=2**e;return{windows:Math.ceil(t/e)+1,windowSize:2**(e-1),mask:bitMask(e),maxNumber:r,shiftBy:BigInt(e)}}function calcOffsets(e,t,r){const{windowSize:n,mask:o,maxNumber:i,shiftBy:s}=r;let a=Number(e&o),c=e>>s;a>n&&(a-=i,c+=_1n$2);const u=t*n;return{nextN:c,offset:u+Math.abs(a)-1,isZero:0===a,isNeg:a<0,isNegF:t%2!=0,offsetF:u}}function validateMSMPoints(e,t){if(!Array.isArray(e))throw new Error("array expected");e.forEach(((e,r)=>{if(!(e instanceof t))throw new Error("invalid point at index "+r)}))}function validateMSMScalars(e,t){if(!Array.isArray(e))throw new Error("array of scalars expected");e.forEach(((e,r)=>{if(!t.isValid(e))throw new Error("invalid scalar at index "+r)}))}const pointPrecomputes=new WeakMap,pointWindowSizes=new WeakMap;function getW(e){return pointWindowSizes.get(e)||1}function wNAF(e,t){return{constTimeNegate:constTimeNegate,hasPrecomputes:e=>1!==getW(e),unsafeLadder(t,r,n=e.ZERO){let o=t;for(;r>_0n$2;)r&_1n$2&&(n=n.add(o)),o=o.double(),r>>=_1n$2;return n},precomputeWindow(e,r){const{windows:n,windowSize:o}=calcWOpts(r,t),i=[];let s=e,a=s;for(let t=0;t12?c=a-3:a>4?c=a-2:a>0&&(c=2);const u=bitMask(c),l=new Array(Number(u)+1).fill(s);let d=s;for(let h=Math.floor((t.BITS-1)/c)*c;h>=0;h-=c){l.fill(s);for(let t=0;t>BigInt(h)&u);l[o]=l[o].add(r[t])}let e=s;for(let t=l.length-1,r=s;t>0;t--)r=r.add(l[t]),e=e.add(r);if(d=d.add(e),0!==h)for(let t=0;t{const{Err:r}=DER;if(e<0||e>256)throw new r("tlv.encode: wrong tag");if(1&t.length)throw new r("tlv.encode: unpadded data");const n=t.length/2,o=numberToHexUnpadded(n);if(o.length/2&128)throw new r("tlv.encode: long form length too big");const i=n>127?numberToHexUnpadded(o.length/2|128):"";return numberToHexUnpadded(e)+i+o+t},decode(e,t){const{Err:r}=DER;let n=0;if(e<0||e>256)throw new r("tlv.encode: wrong tag");if(t.length<2||t[n++]!==e)throw new r("tlv.decode: wrong tlv");const o=t[n++];let i=0;if(!!(128&o)){const e=127&o;if(!e)throw new r("tlv.decode(long): indefinite length not supported");if(e>4)throw new r("tlv.decode(long): byte length is too big");const s=t.subarray(n,n+e);if(s.length!==e)throw new r("tlv.decode: length bytes not complete");if(0===s[0])throw new r("tlv.decode(long): zero leftmost byte");for(const t of s)i=i<<8|t;if(n+=e,i<128)throw new r("tlv.decode(long): not minimal encoding")}else i=o;const s=t.subarray(n,n+i);if(s.length!==i)throw new r("tlv.decode: wrong value length");return{v:s,l:t.subarray(n+i)}}},_int:{encode(e){const{Err:t}=DER;if(e<_0n$1)throw new t("integer: negative integers are not allowed");let r=numberToHexUnpadded(e);if(8&Number.parseInt(r[0],16)&&(r="00"+r),1&r.length)throw new t("unexpected DER parsing assertion: unpadded hex");return r},decode(e){const{Err:t}=DER;if(128&e[0])throw new t("invalid signature integer: negative");if(0===e[0]&&!(128&e[1]))throw new t("invalid signature integer: unnecessary leading zero");return bytesToNumberBE(e)}},toSig(e){const{Err:t,_int:r,_tlv:n}=DER,o=ensureBytes("signature",e),{v:i,l:s}=n.decode(48,o);if(s.length)throw new t("invalid signature: left bytes after parsing");const{v:a,l:c}=n.decode(2,i),{v:u,l:l}=n.decode(2,c);if(l.length)throw new t("invalid signature: left bytes after parsing");return{r:r.decode(a),s:r.decode(u)}},hexFromSig(e){const{_tlv:t,_int:r}=DER,n=t.encode(2,r.encode(e.r))+t.encode(2,r.encode(e.s));return t.encode(48,n)}};function numToSizedHex(e,t){return bytesToHex(numberToBytesBE(e,t))}const _0n$1=BigInt(0),_1n$1=BigInt(1);BigInt(2);const _3n=BigInt(3),_4n=BigInt(4);function weierstrassPoints(e){const t=validatePointOpts(e),{Fp:r}=t,n=Field(t.n,t.nBitLength),o=t.toBytes||((e,t,n)=>{const o=t.toAffine();return concatBytes(Uint8Array.from([4]),r.toBytes(o.x),r.toBytes(o.y))}),i=t.fromBytes||(e=>{const t=e.subarray(1);return{x:r.fromBytes(t.subarray(0,r.BYTES)),y:r.fromBytes(t.subarray(r.BYTES,2*r.BYTES))}});function s(e){const{a:n,b:o}=t,i=r.sqr(e),s=r.mul(i,e);return r.add(r.add(s,r.mul(e,n)),o)}function a(e,t){const n=r.sqr(t),o=s(e);return r.eql(n,o)}if(!a(t.Gx,t.Gy))throw new Error("bad curve params: generator point");const c=r.mul(r.pow(t.a,_3n),_4n),u=r.mul(r.sqr(t.b),BigInt(27));if(r.is0(r.add(c,u)))throw new Error("bad curve params: a or b");function l(e){const{allowedPrivateKeyLengths:r,nByteLength:n,wrapPrivateKey:o,n:i}=t;if(r&&"bigint"!=typeof e){if(isBytes$1(e)&&(e=bytesToHex(e)),"string"!=typeof e||!r.includes(e.length))throw new Error("invalid private key");e=e.padStart(2*n,"0")}let s;try{s="bigint"==typeof e?e:bytesToNumberBE(ensureBytes("private key",e,n))}catch(a){throw new Error("invalid private key, expected hex or "+n+" bytes, got "+typeof e)}return o&&(s=mod(s,i)),aInRange("private key",s,_1n$1,i),s}function d(e){if(!(e instanceof p))throw new Error("ProjectivePoint expected")}const h=memoized(((e,t)=>{const{px:n,py:o,pz:i}=e;if(r.eql(i,r.ONE))return{x:n,y:o};const s=e.is0();null==t&&(t=s?r.ONE:r.inv(i));const a=r.mul(n,t),c=r.mul(o,t),u=r.mul(i,t);if(s)return{x:r.ZERO,y:r.ZERO};if(!r.eql(u,r.ONE))throw new Error("invZ was invalid");return{x:a,y:c}})),f=memoized((e=>{if(e.is0()){if(t.allowInfinityPoint&&!r.is0(e.py))return;throw new Error("bad point: ZERO")}const{x:n,y:o}=e.toAffine();if(!r.isValid(n)||!r.isValid(o))throw new Error("bad point: x or y not FE");if(!a(n,o))throw new Error("bad point: equation left != right");if(!e.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0}));class p{constructor(e,t,n){if(null==e||!r.isValid(e))throw new Error("x required");if(null==t||!r.isValid(t)||r.is0(t))throw new Error("y required");if(null==n||!r.isValid(n))throw new Error("z required");this.px=e,this.py=t,this.pz=n,Object.freeze(this)}static fromAffine(e){const{x:t,y:n}=e||{};if(!e||!r.isValid(t)||!r.isValid(n))throw new Error("invalid affine point");if(e instanceof p)throw new Error("projective point not allowed");const o=e=>r.eql(e,r.ZERO);return o(t)&&o(n)?p.ZERO:new p(t,n,r.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(e){const t=FpInvertBatch(r,e.map((e=>e.pz)));return e.map(((e,r)=>e.toAffine(t[r]))).map(p.fromAffine)}static fromHex(e){const t=p.fromAffine(i(ensureBytes("pointHex",e)));return t.assertValidity(),t}static fromPrivateKey(e){return p.BASE.multiply(l(e))}static msm(e,t){return pippenger(p,n,e,t)}_setWindowSize(e){g.setWindowSize(this,e)}assertValidity(){f(this)}hasEvenY(){const{y:e}=this.toAffine();if(r.isOdd)return!r.isOdd(e);throw new Error("Field doesn't support isOdd")}equals(e){d(e);const{px:t,py:n,pz:o}=this,{px:i,py:s,pz:a}=e,c=r.eql(r.mul(t,a),r.mul(i,o)),u=r.eql(r.mul(n,a),r.mul(s,o));return c&&u}negate(){return new p(this.px,r.neg(this.py),this.pz)}double(){const{a:e,b:n}=t,o=r.mul(n,_3n),{px:i,py:s,pz:a}=this;let c=r.ZERO,u=r.ZERO,l=r.ZERO,d=r.mul(i,i),h=r.mul(s,s),f=r.mul(a,a),m=r.mul(i,s);return m=r.add(m,m),l=r.mul(i,a),l=r.add(l,l),c=r.mul(e,l),u=r.mul(o,f),u=r.add(c,u),c=r.sub(h,u),u=r.add(h,u),u=r.mul(c,u),c=r.mul(m,c),l=r.mul(o,l),f=r.mul(e,f),m=r.sub(d,f),m=r.mul(e,m),m=r.add(m,l),l=r.add(d,d),d=r.add(l,d),d=r.add(d,f),d=r.mul(d,m),u=r.add(u,d),f=r.mul(s,a),f=r.add(f,f),d=r.mul(f,m),c=r.sub(c,d),l=r.mul(f,h),l=r.add(l,l),l=r.add(l,l),new p(c,u,l)}add(e){d(e);const{px:n,py:o,pz:i}=this,{px:s,py:a,pz:c}=e;let u=r.ZERO,l=r.ZERO,h=r.ZERO;const f=t.a,m=r.mul(t.b,_3n);let y=r.mul(n,s),g=r.mul(o,a),b=r.mul(i,c),w=r.add(n,o),_=r.add(s,a);w=r.mul(w,_),_=r.add(y,g),w=r.sub(w,_),_=r.add(n,i);let v=r.add(s,c);return _=r.mul(_,v),v=r.add(y,b),_=r.sub(_,v),v=r.add(o,i),u=r.add(a,c),v=r.mul(v,u),u=r.add(g,b),v=r.sub(v,u),h=r.mul(f,_),u=r.mul(m,b),h=r.add(u,h),u=r.sub(g,h),h=r.add(g,h),l=r.mul(u,h),g=r.add(y,y),g=r.add(g,y),b=r.mul(f,b),_=r.mul(m,_),g=r.add(g,b),b=r.sub(y,b),b=r.mul(f,b),_=r.add(_,b),y=r.mul(g,_),l=r.add(l,y),y=r.mul(v,_),u=r.mul(w,u),u=r.sub(u,y),y=r.mul(w,g),h=r.mul(v,h),h=r.add(h,y),new p(u,l,h)}subtract(e){return this.add(e.negate())}is0(){return this.equals(p.ZERO)}wNAF(e){return g.wNAFCached(this,e,p.normalizeZ)}multiplyUnsafe(e){const{endo:n,n:o}=t;aInRange("scalar",e,_0n$1,o);const i=p.ZERO;if(e===_0n$1)return i;if(this.is0()||e===_1n$1)return this;if(!n||g.hasPrecomputes(this))return g.wNAFCachedUnsafe(this,e,p.normalizeZ);let{k1neg:s,k1:a,k2neg:c,k2:u}=n.splitScalar(e),l=i,d=i,h=this;for(;a>_0n$1||u>_0n$1;)a&_1n$1&&(l=l.add(h)),u&_1n$1&&(d=d.add(h)),h=h.double(),a>>=_1n$1,u>>=_1n$1;return s&&(l=l.negate()),c&&(d=d.negate()),d=new p(r.mul(d.px,n.beta),d.py,d.pz),l.add(d)}multiply(e){const{endo:n,n:o}=t;let i,s;if(aInRange("scalar",e,_1n$1,o),n){const{k1neg:t,k1:o,k2neg:a,k2:c}=n.splitScalar(e);let{p:u,f:l}=this.wNAF(o),{p:d,f:h}=this.wNAF(c);u=g.constTimeNegate(t,u),d=g.constTimeNegate(a,d),d=new p(r.mul(d.px,n.beta),d.py,d.pz),i=u.add(d),s=l.add(h)}else{const{p:t,f:r}=this.wNAF(e);i=t,s=r}return p.normalizeZ([i,s])[0]}multiplyAndAddUnsafe(e,t,r){const n=p.BASE,o=(e,t)=>t!==_0n$1&&t!==_1n$1&&e.equals(n)?e.multiply(t):e.multiplyUnsafe(t),i=o(this,t).add(o(e,r));return i.is0()?void 0:i}toAffine(e){return h(this,e)}isTorsionFree(){const{h:e,isTorsionFree:r}=t;if(e===_1n$1)return!0;if(r)return r(p,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h:e,clearCofactor:r}=t;return e===_1n$1?this:r?r(p,this):this.multiplyUnsafe(t.h)}toRawBytes(e=!0){return abool("isCompressed",e),this.assertValidity(),o(p,this,e)}toHex(e=!0){return abool("isCompressed",e),bytesToHex(this.toRawBytes(e))}}p.BASE=new p(t.Gx,t.Gy,r.ONE),p.ZERO=new p(r.ZERO,r.ONE,r.ZERO);const{endo:m,nBitLength:y}=t,g=wNAF(p,m?Math.ceil(y/2):y);return{CURVE:t,ProjectivePoint:p,normPrivateKeyToScalar:l,weierstrassEquation:s,isWithinCurveOrder:function(e){return inRange(e,_1n$1,t.n)}}}function validateOpts(e){const t=validateBasic(e);return validateObject(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}function weierstrass(e){const t=validateOpts(e),{Fp:r,n:n,nByteLength:o,nBitLength:i}=t,s=r.BYTES+1,a=2*r.BYTES+1;function c(e){return mod(e,n)}function u(e){return invert(e,n)}const{ProjectivePoint:l,normPrivateKeyToScalar:d,weierstrassEquation:h,isWithinCurveOrder:f}=weierstrassPoints({...t,toBytes(e,t,n){const o=t.toAffine(),i=r.toBytes(o.x),s=concatBytes;return abool("isCompressed",n),n?s(Uint8Array.from([t.hasEvenY()?2:3]),i):s(Uint8Array.from([4]),i,r.toBytes(o.y))},fromBytes(e){const t=e.length,n=e[0],o=e.subarray(1);if(t!==s||2!==n&&3!==n){if(t===a&&4===n){return{x:r.fromBytes(o.subarray(0,r.BYTES)),y:r.fromBytes(o.subarray(r.BYTES,2*r.BYTES))}}throw new Error("invalid Point, expected length of "+s+", or uncompressed "+a+", got "+t)}{const e=bytesToNumberBE(o);if(!inRange(e,_1n$1,r.ORDER))throw new Error("Point is not on curve");const t=h(e);let s;try{s=r.sqrt(t)}catch(i){const e=i instanceof Error?": "+i.message:"";throw new Error("Point is not on curve"+e)}return!(1&~n)!==((s&_1n$1)===_1n$1)&&(s=r.neg(s)),{x:e,y:s}}}});function p(e){return e>n>>_1n$1}const m=(e,t,r)=>bytesToNumberBE(e.slice(t,r));class y{constructor(e,t,r){aInRange("r",e,_1n$1,n),aInRange("s",t,_1n$1,n),this.r=e,this.s=t,null!=r&&(this.recovery=r),Object.freeze(this)}static fromCompact(e){const t=o;return e=ensureBytes("compactSignature",e,2*t),new y(m(e,0,t),m(e,t,2*t))}static fromDER(e){const{r:t,s:r}=DER.toSig(ensureBytes("DER",e));return new y(t,r)}assertValidity(){}addRecoveryBit(e){return new y(this.r,this.s,e)}recoverPublicKey(e){const{r:n,s:o,recovery:i}=this,s=_(ensureBytes("msgHash",e));if(null==i||![0,1,2,3].includes(i))throw new Error("recovery id invalid");const a=2===i||3===i?n+t.n:n;if(a>=r.ORDER)throw new Error("recovery id 2 or 3 invalid");const d=1&i?"03":"02",h=l.fromHex(d+numToSizedHex(a,r.BYTES)),f=u(a),p=c(-s*f),m=c(o*f),y=l.BASE.multiplyAndAddUnsafe(h,p,m);if(!y)throw new Error("point at infinify");return y.assertValidity(),y}hasHighS(){return p(this.s)}normalizeS(){return this.hasHighS()?new y(this.r,c(-this.s),this.recovery):this}toDERRawBytes(){return hexToBytes(this.toDERHex())}toDERHex(){return DER.hexFromSig(this)}toCompactRawBytes(){return hexToBytes(this.toCompactHex())}toCompactHex(){const e=o;return numToSizedHex(this.r,e)+numToSizedHex(this.s,e)}}const g={isValidPrivateKey(e){try{return d(e),!0}catch(t){return!1}},normPrivateKeyToScalar:d,randomPrivateKey:()=>{const e=getMinHashLength(t.n);return mapHashToField(t.randomBytes(e),t.n)},precompute:(e=8,t=l.BASE)=>(t._setWindowSize(e),t.multiply(BigInt(3)),t)};function b(e){if("bigint"==typeof e)return!1;if(e instanceof l)return!0;const n=ensureBytes("key",e).length,i=r.BYTES,s=i+1,a=2*i+1;return t.allowedPrivateKeyLengths||o===s?void 0:n===s||n===a}const w=t.bits2int||function(e){if(e.length>8192)throw new Error("input is too large");const t=bytesToNumberBE(e),r=8*e.length-i;return r>0?t>>BigInt(r):t},_=t.bits2int_modN||function(e){return c(w(e))},v=bitMask(i);function $(e){return aInRange("num < 2^"+i,e,_0n$1,v),numberToBytesBE(e,o)}function I(e,n,o=k){if(["recovered","canonical"].some((e=>e in o)))throw new Error("sign() legacy options not supported");const{hash:i,randomBytes:s}=t;let{lowS:a,prehash:h,extraEntropy:m}=o;null==a&&(a=!0),e=ensureBytes("msgHash",e),validateSigVerOpts(o),h&&(e=ensureBytes("prehashed msgHash",i(e)));const g=_(e),b=d(n),v=[$(b),$(g)];if(null!=m&&!1!==m){const e=!0===m?s(r.BYTES):m;v.push(ensureBytes("extraEntropy",e))}const I=concatBytes(...v),A=g;return{seed:I,k2sig:function(e){const t=w(e);if(!f(t))return;const r=u(t),n=l.BASE.multiply(t).toAffine(),o=c(n.x);if(o===_0n$1)return;const i=c(r*c(A+o*b));if(i===_0n$1)return;let s=(n.x===o?0:2)|Number(n.y&_1n$1),d=i;return a&&p(i)&&(d=function(e){return p(e)?c(-e):e}(i),s^=1),new y(o,d,s)}}}const k={lowS:t.lowS,prehash:!1},A={lowS:t.lowS,prehash:!1};return l.BASE._setWindowSize(8),{CURVE:t,getPublicKey:function(e,t=!0){return l.fromPrivateKey(e).toRawBytes(t)},getSharedSecret:function(e,t,r=!0){if(!0===b(e))throw new Error("first arg must be private key");if(!1===b(t))throw new Error("second arg must be public key");return l.fromHex(t).multiply(d(e)).toRawBytes(r)},sign:function(e,r,n=k){const{seed:o,k2sig:i}=I(e,r,n),s=t;return createHmacDrbg(s.hash.outputLen,s.nByteLength,s.hmac)(o,i)},verify:function(e,r,n,o=A){var i;const s=e;r=ensureBytes("msgHash",r),n=ensureBytes("publicKey",n);const{lowS:a,prehash:d,format:h}=o;if(validateSigVerOpts(o),"strict"in o)throw new Error("options.strict was renamed to lowS");if(void 0!==h&&"compact"!==h&&"der"!==h)throw new Error("format must be compact or der");const f="string"==typeof s||isBytes$1(s),p=!f&&!h&&"object"==typeof s&&null!==s&&"bigint"==typeof s.r&&"bigint"==typeof s.s;if(!f&&!p)throw new Error("invalid signature, expected Uint8Array, hex string or Signature instance");let m,g;try{if(p&&(m=new y(s.r,s.s)),f){try{"compact"!==h&&(m=y.fromDER(s))}catch(E){if(!(E instanceof DER.Err))throw E}m||"der"===h||(m=y.fromCompact(s))}g=l.fromHex(n)}catch(T){return!1}if(!m)return!1;if(a&&m.hasHighS())return!1;d&&(r=t.hash(r));const{r:b,s:w}=m,v=_(r),$=u(w),I=c(v*$),k=c(b*$),S=null==(i=l.BASE.multiplyAndAddUnsafe(g,I,k))?void 0:i.toAffine();return!!S&&c(S.x)===b},ProjectivePoint:l,Signature:y,utils:g}} +/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function getHash(e){return{hash:e,hmac:(t,...r)=>hmac$2(e,t,concatBytes$1(...r)),randomBytes:randomBytes}}function createCurve(e,t){const r=t=>weierstrass({...e,...getHash(t)});return{...r(t),create:r}} +/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const secp256k1P=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),secp256k1N=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),_0n=BigInt(0),_1n=BigInt(1),_2n=BigInt(2),divNearest=(e,t)=>(e+t/_2n)/t;function sqrtMod(e){const t=secp256k1P,r=BigInt(3),n=BigInt(6),o=BigInt(11),i=BigInt(22),s=BigInt(23),a=BigInt(44),c=BigInt(88),u=e*e*e%t,l=u*u*e%t,d=pow2(l,r,t)*l%t,h=pow2(d,r,t)*l%t,f=pow2(h,_2n,t)*u%t,p=pow2(f,o,t)*f%t,m=pow2(p,i,t)*p%t,y=pow2(m,a,t)*m%t,g=pow2(y,c,t)*y%t,b=pow2(g,a,t)*m%t,w=pow2(b,r,t)*l%t,_=pow2(w,s,t)*p%t,v=pow2(_,n,t)*u%t,$=pow2(v,_2n,t);if(!Fpk1.eql(Fpk1.sqr($),e))throw new Error("Cannot find square root");return $}const Fpk1=Field(secp256k1P,void 0,void 0,{sqrt:sqrtMod}),secp256k1$1=createCurve({a:_0n,b:BigInt(7),Fp:Fpk1,n:secp256k1N,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:e=>{const t=secp256k1N,r=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-_1n*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),o=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),i=r,s=BigInt("0x100000000000000000000000000000000"),a=divNearest(i*e,t),c=divNearest(-n*e,t);let u=mod(e-a*r-c*o,t),l=mod(-a*n-c*i,t);const d=u>s,h=l>s;if(d&&(u=t-u),h&&(l=t-l),u>s||l>s)throw new Error("splitScalar: Endomorphism failed, k="+e);return{k1neg:d,k1:u,k2neg:h,k2:l}}}},sha256$1),N$6=secp256k1$1.CURVE.n,HARDENED_BIT=2147483648;async function derive$1(e,t,r){const n=isHardenedIndex(r),o=new Uint8Array(37),i=secp256k1$1.getPublicKey(e,!0);n?(o[0]=0,o.set(e,1)):o.set(i,0),new DataView(o.buffer,o.byteOffset,o.byteLength).setUint32(33,r,!1);const s=await hash$2(HashAlgorithm.Sha512,t,o),a=s.subarray(0,32),c=s.subarray(32);try{const n=bytesToNumberBE(e),o=(n+bytesToNumberBE(a))%N$6;if(0n===o)return derive$1(e,t,r+1);return{keyData:numberToBytesBE(o,32),chainCode:c}}catch{return derive$1(e,t,r+1)}}async function fromSeed$1(e){if(e.length<16)throw new TypeError("Seed should be at least 128 bits");if(e.length>64)throw new TypeError("Seed should be at most 512 bits");const t=await hash$2(HashAlgorithm.Sha512,"Bitcoin seed",e);return{keyData:t.subarray(0,32),chainCode:t.subarray(32)}}function toHardenedIndex(e){return e|HARDENED_BIT}function isHardenedIndex(e){return!!(e&HARDENED_BIT)}async function derive(e,t,r){if(isHardenedIndex(r))throw new Error("the index should not be pre-hardened");const n=new Uint8Array(37);n[0]=0,n.set(e,1),new DataView(n.buffer,n.byteOffset,n.byteLength).setUint32(33,r,!1),n[33]|=128;const o=await hash$2(HashAlgorithm.Sha512,t,n);return{keyData:o.subarray(0,32),chainCode:o.subarray(32)}}async function fromSeed(e){const t=await hash$2(HashAlgorithm.Sha512,"ed25519 seed",e);return{keyData:t.subarray(0,32),chainCode:t.subarray(32)}}const derPrefix$2="302e020100300506032b657004220420",derPrefixBytes$2=decode$7(derPrefix$2);class Ed25519PrivateKey{constructor(e,t){this._keyPair=e instanceof Uint8Array?nacl.sign.keyPair.fromSeed(e):e,this._chainCode=null!=t?t:null}get _type(){return"ED25519"}static generate(){const e=bytes(64);return new Ed25519PrivateKey(nacl.sign.keyPair.fromSeed(e.subarray(0,32)),e.subarray(32))}static async generateAsync(){const e=await bytesAsync(64);return new Ed25519PrivateKey(nacl.sign.keyPair.fromSeed(e.subarray(0,32)),e.subarray(32))}static fromBytes(e){switch(e.length){case 48:return Ed25519PrivateKey.fromBytesDer(e);case 32:case 64:return Ed25519PrivateKey.fromBytesRaw(e);default:throw new BadKeyError(`invalid private key length: ${e.length} bytes`)}}static fromBytesDer(e){let t;try{const r=new Uint8Array(e),n=r.subarray(0,e.length-32);if(!n.every(((e,t)=>derPrefixBytes$2[t]===e)))throw new BadKeyError("invalid DER prefix for ED25519 private key");t=r.slice(e.length-32)}catch(n){const e=null!=n&&null!=n.message?n.message:"";throw new BadKeyError(`cannot decode ED25519 private key data from DER format: ${e}`)}const r=nacl.sign.keyPair.fromSeed(t);return new Ed25519PrivateKey(r)}static fromBytesRaw(e){switch(e.length){case 32:return new Ed25519PrivateKey(nacl.sign.keyPair.fromSeed(e));case 64:return new Ed25519PrivateKey(nacl.sign.keyPair.fromSecretKey(e))}throw new BadKeyError(`invalid private key length: ${e.length} bytes`)}static fromString(e){return Ed25519PrivateKey.fromBytes(decode$7(e))}static fromStringDer(e){return Ed25519PrivateKey.fromBytesDer(decode$7(e))}static fromStringRaw(e){return Ed25519PrivateKey.fromBytesRaw(decode$7(e))}static async fromSeed(e){const{keyData:t,chainCode:r}=await fromSeed(e);return new Ed25519PrivateKey(t,r)}get publicKey(){return new Ed25519PublicKey(this._keyPair.publicKey)}sign(e){return nacl.sign.detached(e,this._keyPair.secretKey)}toBytesDer(){const e=new Uint8Array(derPrefixBytes$2.length+32),t=this._keyPair.secretKey.subarray(0,32),r=32-t.length,n=derPrefixBytes$2.length+r;return e.set(derPrefixBytes$2,0),e.set(t,n),e}toBytesRaw(){return this._keyPair.secretKey.slice(0,32)}}const HEX_CHARS="0123456789abcdef".split(""),KECCAK_PADDING=[1,256,65536,16777216],SHIFT=[0,8,16,24],RC=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],Keccak=e=>{return{blocks:[],reset:!0,block:0,start:0,blockCount:1600-(e<<1)>>5,outputBlocks:e>>5,s:(t=[0,0,0,0,0,0,0,0,0,0],[].concat(t,t,t,t,t))};var t},update=(e,t)=>{for(var r,n,o=t.length,i=e.blocks,s=e.blockCount<<2,a=e.blockCount,c=e.outputBlocks,u=e.s,l=0;l>2]|=t[l]<>2]|=n<>2]|=(192|n>>6)<>2]|=(128|63&n)<=57344?(i[r>>2]|=(224|n>>12)<>2]|=(128|n>>6&63)<>2]|=(128|63&n)<>2]|=(240|n>>18)<>2]|=(128|n>>12&63)<>2]|=(128|n>>6&63)<>2]|=(128|63&n)<=s){for(e.start=r-s,e.block=i[a],r=0;r>2]|=KECCAK_PADDING[3&r],e.lastByteIndex===s)for(i[0]=i[a],r=1;r>4&15]+HEX_CHARS[15&d]+HEX_CHARS[d>>12&15]+HEX_CHARS[d>>8&15]+HEX_CHARS[d>>20&15]+HEX_CHARS[d>>16&15]+HEX_CHARS[d>>28&15]+HEX_CHARS[d>>24&15];f%a==0&&(f$b(u),r=0)}return"0x"+h},f$b=e=>{var t,r,n,o,i,s,a,c,u,l,d,h,f,p,m,y,g,b,w,_,v,$,I,k,A,S,E,T,P,R,C,O,M,N,B,x,D,L,U,F,j,q,K,z,H,G,W,V,Y,J,Q,Z,X,ee,te,re,ne,oe,ie,se,ae,ce,ue;for(n=0;n<48;n+=2)o=e[0]^e[10]^e[20]^e[30]^e[40],i=e[1]^e[11]^e[21]^e[31]^e[41],s=e[2]^e[12]^e[22]^e[32]^e[42],a=e[3]^e[13]^e[23]^e[33]^e[43],c=e[4]^e[14]^e[24]^e[34]^e[44],u=e[5]^e[15]^e[25]^e[35]^e[45],l=e[6]^e[16]^e[26]^e[36]^e[46],d=e[7]^e[17]^e[27]^e[37]^e[47],t=(h=e[8]^e[18]^e[28]^e[38]^e[48])^(s<<1|a>>>31),r=(f=e[9]^e[19]^e[29]^e[39]^e[49])^(a<<1|s>>>31),e[0]^=t,e[1]^=r,e[10]^=t,e[11]^=r,e[20]^=t,e[21]^=r,e[30]^=t,e[31]^=r,e[40]^=t,e[41]^=r,t=o^(c<<1|u>>>31),r=i^(u<<1|c>>>31),e[2]^=t,e[3]^=r,e[12]^=t,e[13]^=r,e[22]^=t,e[23]^=r,e[32]^=t,e[33]^=r,e[42]^=t,e[43]^=r,t=s^(l<<1|d>>>31),r=a^(d<<1|l>>>31),e[4]^=t,e[5]^=r,e[14]^=t,e[15]^=r,e[24]^=t,e[25]^=r,e[34]^=t,e[35]^=r,e[44]^=t,e[45]^=r,t=c^(h<<1|f>>>31),r=u^(f<<1|h>>>31),e[6]^=t,e[7]^=r,e[16]^=t,e[17]^=r,e[26]^=t,e[27]^=r,e[36]^=t,e[37]^=r,e[46]^=t,e[47]^=r,t=l^(o<<1|i>>>31),r=d^(i<<1|o>>>31),e[8]^=t,e[9]^=r,e[18]^=t,e[19]^=r,e[28]^=t,e[29]^=r,e[38]^=t,e[39]^=r,e[48]^=t,e[49]^=r,p=e[0],m=e[1],G=e[11]<<4|e[10]>>>28,W=e[10]<<4|e[11]>>>28,T=e[20]<<3|e[21]>>>29,P=e[21]<<3|e[20]>>>29,se=e[31]<<9|e[30]>>>23,ae=e[30]<<9|e[31]>>>23,q=e[40]<<18|e[41]>>>14,K=e[41]<<18|e[40]>>>14,N=e[2]<<1|e[3]>>>31,B=e[3]<<1|e[2]>>>31,y=e[13]<<12|e[12]>>>20,g=e[12]<<12|e[13]>>>20,V=e[22]<<10|e[23]>>>22,Y=e[23]<<10|e[22]>>>22,R=e[33]<<13|e[32]>>>19,C=e[32]<<13|e[33]>>>19,ce=e[42]<<2|e[43]>>>30,ue=e[43]<<2|e[42]>>>30,ee=e[5]<<30|e[4]>>>2,te=e[4]<<30|e[5]>>>2,x=e[14]<<6|e[15]>>>26,D=e[15]<<6|e[14]>>>26,b=e[25]<<11|e[24]>>>21,w=e[24]<<11|e[25]>>>21,J=e[34]<<15|e[35]>>>17,Q=e[35]<<15|e[34]>>>17,O=e[45]<<29|e[44]>>>3,M=e[44]<<29|e[45]>>>3,k=e[6]<<28|e[7]>>>4,A=e[7]<<28|e[6]>>>4,re=e[17]<<23|e[16]>>>9,ne=e[16]<<23|e[17]>>>9,L=e[26]<<25|e[27]>>>7,U=e[27]<<25|e[26]>>>7,_=e[36]<<21|e[37]>>>11,v=e[37]<<21|e[36]>>>11,Z=e[47]<<24|e[46]>>>8,X=e[46]<<24|e[47]>>>8,z=e[8]<<27|e[9]>>>5,H=e[9]<<27|e[8]>>>5,S=e[18]<<20|e[19]>>>12,E=e[19]<<20|e[18]>>>12,oe=e[29]<<7|e[28]>>>25,ie=e[28]<<7|e[29]>>>25,F=e[38]<<8|e[39]>>>24,j=e[39]<<8|e[38]>>>24,$=e[48]<<14|e[49]>>>18,I=e[49]<<14|e[48]>>>18,e[0]=p^~y&b,e[1]=m^~g&w,e[10]=k^~S&T,e[11]=A^~E&P,e[20]=N^~x&L,e[21]=B^~D&U,e[30]=z^~G&V,e[31]=H^~W&Y,e[40]=ee^~re&oe,e[41]=te^~ne&ie,e[2]=y^~b&_,e[3]=g^~w&v,e[12]=S^~T&R,e[13]=E^~P&C,e[22]=x^~L&F,e[23]=D^~U&j,e[32]=G^~V&J,e[33]=W^~Y&Q,e[42]=re^~oe&se,e[43]=ne^~ie&ae,e[4]=b^~_&$,e[5]=w^~v&I,e[14]=T^~R&O,e[15]=P^~C&M,e[24]=L^~F&q,e[25]=U^~j&K,e[34]=V^~J&Z,e[35]=Y^~Q&X,e[44]=oe^~se&ce,e[45]=ie^~ae&ue,e[6]=_^~$&p,e[7]=v^~I&m,e[16]=R^~O&k,e[17]=C^~M&A,e[26]=F^~q&N,e[27]=j^~K&B,e[36]=J^~Z&z,e[37]=Q^~X&H,e[46]=se^~ce&ee,e[47]=ae^~ue&te,e[8]=$^~p&y,e[9]=I^~m&g,e[18]=O^~k&S,e[19]=M^~A&E,e[28]=q^~N&x,e[29]=K^~B&D,e[38]=Z^~z&G,e[39]=X^~H&W,e[48]=ce^~ee&re,e[49]=ue^~te&ne,e[0]^=RC[n],e[1]^=RC[n+1]},keccak=e=>t=>{var r;if("0x"===t.slice(0,2)){r=[];for(var n=2,o=t.length;n>>25)+n|0)&n|~r&o)+t[1]-389564586|0)<<12|i>>>20)+r|0)&r|~i&n)+t[2]+606105819|0)<<17|o>>>15)+i|0)&i|~o&r)+t[3]-1044525330|0)<<22|n>>>10)+o|0,n=((n+=((o=((o+=((i=((i+=((r=((r+=(n&o|~n&i)+t[4]-176418897|0)<<7|r>>>25)+n|0)&n|~r&o)+t[5]+1200080426|0)<<12|i>>>20)+r|0)&r|~i&n)+t[6]-1473231341|0)<<17|o>>>15)+i|0)&i|~o&r)+t[7]-45705983|0)<<22|n>>>10)+o|0,n=((n+=((o=((o+=((i=((i+=((r=((r+=(n&o|~n&i)+t[8]+1770035416|0)<<7|r>>>25)+n|0)&n|~r&o)+t[9]-1958414417|0)<<12|i>>>20)+r|0)&r|~i&n)+t[10]-42063|0)<<17|o>>>15)+i|0)&i|~o&r)+t[11]-1990404162|0)<<22|n>>>10)+o|0,n=((n+=((o=((o+=((i=((i+=((r=((r+=(n&o|~n&i)+t[12]+1804603682|0)<<7|r>>>25)+n|0)&n|~r&o)+t[13]-40341101|0)<<12|i>>>20)+r|0)&r|~i&n)+t[14]-1502002290|0)<<17|o>>>15)+i|0)&i|~o&r)+t[15]+1236535329|0)<<22|n>>>10)+o|0,n=((n+=((o=((o+=((i=((i+=((r=((r+=(n&i|o&~i)+t[1]-165796510|0)<<5|r>>>27)+n|0)&o|n&~o)+t[6]-1069501632|0)<<9|i>>>23)+r|0)&n|r&~n)+t[11]+643717713|0)<<14|o>>>18)+i|0)&r|i&~r)+t[0]-373897302|0)<<20|n>>>12)+o|0,n=((n+=((o=((o+=((i=((i+=((r=((r+=(n&i|o&~i)+t[5]-701558691|0)<<5|r>>>27)+n|0)&o|n&~o)+t[10]+38016083|0)<<9|i>>>23)+r|0)&n|r&~n)+t[15]-660478335|0)<<14|o>>>18)+i|0)&r|i&~r)+t[4]-405537848|0)<<20|n>>>12)+o|0,n=((n+=((o=((o+=((i=((i+=((r=((r+=(n&i|o&~i)+t[9]+568446438|0)<<5|r>>>27)+n|0)&o|n&~o)+t[14]-1019803690|0)<<9|i>>>23)+r|0)&n|r&~n)+t[3]-187363961|0)<<14|o>>>18)+i|0)&r|i&~r)+t[8]+1163531501|0)<<20|n>>>12)+o|0,n=((n+=((o=((o+=((i=((i+=((r=((r+=(n&i|o&~i)+t[13]-1444681467|0)<<5|r>>>27)+n|0)&o|n&~o)+t[2]-51403784|0)<<9|i>>>23)+r|0)&n|r&~n)+t[7]+1735328473|0)<<14|o>>>18)+i|0)&r|i&~r)+t[12]-1926607734|0)<<20|n>>>12)+o|0,n=((n+=((o=((o+=((i=((i+=((r=((r+=(n^o^i)+t[5]-378558|0)<<4|r>>>28)+n|0)^n^o)+t[8]-2022574463|0)<<11|i>>>21)+r|0)^r^n)+t[11]+1839030562|0)<<16|o>>>16)+i|0)^i^r)+t[14]-35309556|0)<<23|n>>>9)+o|0,n=((n+=((o=((o+=((i=((i+=((r=((r+=(n^o^i)+t[1]-1530992060|0)<<4|r>>>28)+n|0)^n^o)+t[4]+1272893353|0)<<11|i>>>21)+r|0)^r^n)+t[7]-155497632|0)<<16|o>>>16)+i|0)^i^r)+t[10]-1094730640|0)<<23|n>>>9)+o|0,n=((n+=((o=((o+=((i=((i+=((r=((r+=(n^o^i)+t[13]+681279174|0)<<4|r>>>28)+n|0)^n^o)+t[0]-358537222|0)<<11|i>>>21)+r|0)^r^n)+t[3]-722521979|0)<<16|o>>>16)+i|0)^i^r)+t[6]+76029189|0)<<23|n>>>9)+o|0,n=((n+=((o=((o+=((i=((i+=((r=((r+=(n^o^i)+t[9]-640364487|0)<<4|r>>>28)+n|0)^n^o)+t[12]-421815835|0)<<11|i>>>21)+r|0)^r^n)+t[15]+530742520|0)<<16|o>>>16)+i|0)^i^r)+t[2]-995338651|0)<<23|n>>>9)+o|0,n=((n+=((i=((i+=(n^((r=((r+=(o^(n|~i))+t[0]-198630844|0)<<6|r>>>26)+n|0)|~o))+t[7]+1126891415|0)<<10|i>>>22)+r|0)^((o=((o+=(r^(i|~n))+t[14]-1416354905|0)<<15|o>>>17)+i|0)|~r))+t[5]-57434055|0)<<21|n>>>11)+o|0,n=((n+=((i=((i+=(n^((r=((r+=(o^(n|~i))+t[12]+1700485571|0)<<6|r>>>26)+n|0)|~o))+t[3]-1894986606|0)<<10|i>>>22)+r|0)^((o=((o+=(r^(i|~n))+t[10]-1051523|0)<<15|o>>>17)+i|0)|~r))+t[1]-2054922799|0)<<21|n>>>11)+o|0,n=((n+=((i=((i+=(n^((r=((r+=(o^(n|~i))+t[8]+1873313359|0)<<6|r>>>26)+n|0)|~o))+t[15]-30611744|0)<<10|i>>>22)+r|0)^((o=((o+=(r^(i|~n))+t[6]-1560198380|0)<<15|o>>>17)+i|0)|~r))+t[13]+1309151649|0)<<21|n>>>11)+o|0,n=((n+=((i=((i+=(n^((r=((r+=(o^(n|~i))+t[4]-145523070|0)<<6|r>>>26)+n|0)|~o))+t[11]-1120210379|0)<<10|i>>>22)+r|0)^((o=((o+=(r^(i|~n))+t[2]+718787259|0)<<15|o>>>17)+i|0)|~r))+t[9]-343485551|0)<<21|n>>>11)+o|0,e[0]=r+e[0]|0,e[1]=n+e[1]|0,e[2]=o+e[2]|0,e[3]=i+e[3]|0}function n(e){var t,r=[];for(t=0;t<64;t+=4)r[t>>2]=e.charCodeAt(t)+(e.charCodeAt(t+1)<<8)+(e.charCodeAt(t+2)<<16)+(e.charCodeAt(t+3)<<24);return r}function o(e){var t,r=[];for(t=0;t<64;t+=4)r[t>>2]=e[t]+(e[t+1]<<8)+(e[t+2]<<16)+(e[t+3]<<24);return r}function i(e){var t,o,i,s,a,c,u=e.length,l=[1732584193,-271733879,-1732584194,271733878];for(t=64;t<=u;t+=64)r(l,n(e.substring(t-64,t)));for(o=(e=e.substring(t-64)).length,i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],t=0;t>2]|=e.charCodeAt(t)<<(t%4<<3);if(i[t>>2]|=128<<(t%4<<3),t>55)for(r(l,i),t=0;t<16;t+=1)i[t]=0;return s=(s=8*u).toString(16).match(/(.*?)(.{0,8})$/),a=parseInt(s[2],16),c=parseInt(s[1],16)||0,i[14]=a,i[15]=c,r(l,i),l}function s(e){var t,n,i,s,a,c,u=e.length,l=[1732584193,-271733879,-1732584194,271733878];for(t=64;t<=u;t+=64)r(l,o(e.subarray(t-64,t)));for(n=(e=t-64>2]|=e[t]<<(t%4<<3);if(i[t>>2]|=128<<(t%4<<3),t>55)for(r(l,i),t=0;t<16;t+=1)i[t]=0;return s=(s=8*u).toString(16).match(/(.*?)(.{0,8})$/),a=parseInt(s[2],16),c=parseInt(s[1],16)||0,i[14]=a,i[15]=c,r(l,i),l}function a(e){var r,n="";for(r=0;r<4;r+=1)n+=t[e>>8*r+4&15]+t[e>>8*r&15];return n}function c(e){var t;for(t=0;tl?new ArrayBuffer(0):(o=l-u,i=new ArrayBuffer(o),s=new Uint8Array(i),a=new Uint8Array(this,u,o),s.set(a),i)}}(),p.prototype.append=function(e){return this.appendBinary(u(e)),this},p.prototype.appendBinary=function(e){this._buff+=e,this._length+=e.length;var t,o=this._buff.length;for(t=64;t<=o;t+=64)r(this._hash,n(this._buff.substring(t-64,t)));return this._buff=this._buff.substring(t-64),this},p.prototype.end=function(e){var t,r,n=this._buff,o=n.length,i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(t=0;t>2]|=n.charCodeAt(t)<<(t%4<<3);return this._finish(i,o),r=c(this._hash),e&&(r=f(r)),this.reset(),r},p.prototype.reset=function(){return this._buff="",this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},p.prototype.getState=function(){return{buff:this._buff,length:this._length,hash:this._hash.slice()}},p.prototype.setState=function(e){return this._buff=e.buff,this._length=e.length,this._hash=e.hash,this},p.prototype.destroy=function(){delete this._hash,delete this._buff,delete this._length},p.prototype._finish=function(e,t){var n,o,i,s=t;if(e[s>>2]|=128<<(s%4<<3),s>55)for(r(this._hash,e),s=0;s<16;s+=1)e[s]=0;n=(n=8*this._length).toString(16).match(/(.*?)(.{0,8})$/),o=parseInt(n[2],16),i=parseInt(n[1],16)||0,e[14]=o,e[15]=i,r(this._hash,e)},p.hash=function(e,t){return p.hashBinary(u(e),t)},p.hashBinary=function(e,t){var r=c(i(e));return t?f(r):r},p.ArrayBuffer=function(){this.reset()},p.ArrayBuffer.prototype.append=function(e){var t,n=h(this._buff.buffer,e),i=n.length;for(this._length+=e.byteLength,t=64;t<=i;t+=64)r(this._hash,o(n.subarray(t-64,t)));return this._buff=t-64>2]|=n[t]<<(t%4<<3);return this._finish(i,o),r=c(this._hash),e&&(r=f(r)),this.reset(),r},p.ArrayBuffer.prototype.reset=function(){return this._buff=new Uint8Array(0),this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},p.ArrayBuffer.prototype.getState=function(){var e=p.prototype.getState.call(this);return e.buff=d(e.buff),e},p.ArrayBuffer.prototype.setState=function(e){return e.buff=l(e.buff,!0),p.prototype.setState.call(this,e)},p.ArrayBuffer.prototype.destroy=p.prototype.destroy,p.ArrayBuffer.prototype._finish=p.prototype._finish,p.ArrayBuffer.hash=function(e,t){var r=c(s(new Uint8Array(e)));return t?f(r):r},p}()}(sparkMd5);var sparkMd5Exports=sparkMd5.exports;const SparkMD5=getDefaultExportFromCjs$1(sparkMd5Exports),CipherAlgorithm={Aes128Ctr:"AES-128-CTR",Aes128Cbc:"AES-128-CBC"};async function createCipheriv(e,t,r,n){let o;switch(e.toUpperCase()){case CipherAlgorithm.Aes128Ctr:o={name:"AES-CTR",counter:r,length:128};break;case CipherAlgorithm.Aes128Cbc:o={name:"AES-CBC",iv:r};break;default:throw new Error("(BUG) non-exhaustive switch statement for CipherAlgorithm")}const i=await window.crypto.subtle.importKey("raw",t,o.name,!1,["encrypt"]);return new Uint8Array(await window.crypto.subtle.encrypt(o,i,n))}async function createDecipheriv(e,t,r,n){let o;switch(e.toUpperCase()){case CipherAlgorithm.Aes128Ctr:o={name:"AES-CTR",counter:r,length:128};break;case CipherAlgorithm.Aes128Cbc:o={name:"AES-CBC",iv:r};break;default:throw new Error("(BUG) non-exhaustive switch statement for CipherAlgorithm")}const i=await window.crypto.subtle.importKey("raw",t,o.name,!1,["decrypt"]);let s;try{s=await window.crypto.subtle.decrypt(o,i,n)}catch(a){const e=null!=a&&null!=a.message?a.message:"";throw new Error(`Unable to decrypt: ${e}`)}return new Uint8Array(s)}async function messageDigest(e,t){const r=encode$3(e),n=decode$7(t).slice(0,8),o=SparkMD5.ArrayBuffer.hash(Buffer$1$1.concat([Buffer$1$1.from(r),Buffer$1$1.from(n)]));return Promise.resolve(decode$7(o))}async function deriveKey(e,t,r,n,o){const i="string"==typeof t?encode$3(t):t,s="string"==typeof r?encode$3(r):r;try{const t=await window.crypto.subtle.importKey("raw",i,{name:"PBKDF2",hash:e},!1,["deriveBits"]);return new Uint8Array(await window.crypto.subtle.deriveBits({name:"PBKDF2",hash:e,salt:s,iterations:n},t,o<<3))}catch{throw new Error("(BUG) Non-Exhaustive switch statement for algorithms")}}const HMAC_SHA256="hmac-sha256";async function createKeystore(e,t){const r=262144,n=await bytesAsync(32),o=await deriveKey(HashAlgorithm.Sha256,t,n,r,32),i=await bytesAsync(16),s=await createCipheriv(CipherAlgorithm.Aes128Ctr,o.slice(0,16),i,e),a=await hash$2(HashAlgorithm.Sha384,o.slice(16),s),c={version:1,crypto:{ciphertext:encode$4(s),cipherparams:{iv:encode$4(i)},cipher:CipherAlgorithm.Aes128Ctr,kdf:"pbkdf2",kdfparams:{dkLen:32,salt:encode$4(n),c:r,prf:HMAC_SHA256},mac:encode$4(a)}};return encode$3(JSON.stringify(c))}async function loadKeystore(e,t){const r=JSON.parse(decode$6(e));if(1!==r.version)throw new BadKeyError(`unsupported keystore version: ${r.version}`);const{ciphertext:n,cipherparams:{iv:o},cipher:i,kdf:s,kdfparams:{dkLen:a,salt:c,c:u,prf:l},mac:d}=r.crypto;if("pbkdf2"!==s)throw new BadKeyError(`unsupported key derivation function:" + ${s}`);if(l!==HMAC_SHA256)throw new BadKeyError(`unsupported key derivation hash function: ${l}`);const h=decode$7(c),f=decode$7(o),p=decode$7(n),m=await deriveKey(HashAlgorithm.Sha256,t,h,u,a),y=decode$7(d),g=await hash$2(HashAlgorithm.Sha384,m.slice(16),p);if(!y.every(((e,t)=>e===g[t])))throw new BadKeyError("HMAC mismatch; passphrase is incorrect");return createDecipheriv(i,m.slice(0,16),f,p)}function decode$5(e){return decodeIncremental(e)[0]}function decodeIncremental(e){const[t,r]=decodeLength(e.subarray(1)),n=r.subarray(0,t),o=r.subarray(t);switch(e[0]){case 2:return[{int:decodeInt(n)},o];case 4:return[{bytes:n},o];case 5:return[{},o];case 6:return[{ident:decodeObjectIdent(n)},o];case 48:return[{seq:decodeSeq(n)},o];default:throw new Error(`unsupported DER type tag: ${e[0]}`)}}function decodeSeq(e){let t=e;const r=[];for(;0!==t.length;){const[e,n]=decodeIncremental(t);r.push(e),t=n}return r}function decodeObjectIdent(e){const t=[Math.floor(e[0]/40),e[0]%40];let r=0;for(const n of e.subarray(1))r*=128,n<128?(r+=n,t.push(r),r=0):r+=127&n;return t.join(".")}function decodeLength(e){if(e[0]<128)return[e[0],e.subarray(1)];const t=e[0]-128,r=e.subarray(1,t+1),n=e.subarray(t+1);return[decodeInt(r),n]}function decodeInt(e){const t=e.length;if(1===t)return e[0];let r=new DataView(e.buffer,e.byteOffset,e.byteLength);if(2===t)return r.getUint16(0,!1);if(3===t){const t=Uint8Array.of(0,...e);r=new DataView(t.buffer,t.byteOffset,t.byteLength)}if(t>4)throw new Error(`unsupported DER integer length of ${t} bytes`);return r.getUint32(0,!1)}class AlgorithmIdentifier{constructor(e){if(!("seq"in e&&e.seq.length>=1&&"ident"in e.seq[0]))throw new Error(`error parsing AlgorithmIdentifier from ${JSON.stringify(e)}`);this.algIdent=e.seq[0].ident,this.parameters=e.seq[1]}toString(){return JSON.stringify(this)}}class PBES2Params{constructor(e){if(!("seq"in e)||2!==e.seq.length)throw new Error(`error parsing PBES2Params from ${JSON.stringify(e)}`);this.kdf=new AlgorithmIdentifier(e.seq[0]),this.encScheme=new AlgorithmIdentifier(e.seq[1])}}class PBKDF2Params{constructor(e){if("seq"in e&&e.seq.length>=2&&"bytes"in e.seq[0]&&"int"in e.seq[1]&&(this.salt=e.seq[0].bytes,this.iterCount=e.seq[1].int,e.seq.length>2))return"seq"in e.seq[2]?void(this.prf=new AlgorithmIdentifier(e.seq[2])):("int"in e.seq[2]&&(this.keyLength=e.seq[2].int),void(4===e.seq.length&&(this.prf=new AlgorithmIdentifier(e.seq[3]))));throw new Error(`error parsing PBKDF2Params from ${JSON.stringify(e)}`)}}class PrivateKeyInfo{constructor(e){if(!("seq"in e)||3!==e.seq.length)throw new Error(`error parsing PrivateKeyInfo from ${JSON.stringify(e)}`);if(!("int"in e.seq[0])||0!==e.seq[0].int)throw new Error(`expected version = 0, got ${JSON.stringify(e.seq[0])}`);if(this.version=0,this.algId=new AlgorithmIdentifier(e.seq[1]),!("bytes"in e.seq[2]))throw new Error(`expected octet string as 3rd element, got ${JSON.stringify(e.seq[2])}`);this.privateKey=e.seq[2].bytes}static parse(e){return new PrivateKeyInfo(decode$5(e))}}class EncryptedPrivateKeyInfo{constructor(e){if("seq"in e&&2===e.seq.length&&"bytes"in e.seq[1])return this.algId=new AlgorithmIdentifier(e.seq[0]),void(this.data=e.seq[1].bytes);throw new Error(`error parsing EncryptedPrivateKeyInfo from ${JSON.stringify(e)}`)}static parse(e){return new EncryptedPrivateKeyInfo(decode$5(e))}async decrypt(e){if("1.2.840.113549.1.5.13"!==this.algId.algIdent||!this.algId.parameters)throw new Error(`unsupported key encryption algorithm: ${this.algId.toString()}`);const t=new PBES2Params(this.algId.parameters);if("1.2.840.113549.1.5.12"!==t.kdf.algIdent||!t.kdf.parameters)throw new Error(`unsupported key derivation function: ${t.kdf.toString()}`);const r=new PBKDF2Params(t.kdf.parameters);if(!r.prf)throw new Error("unsupported PRF HMAC-SHA-1");if("1.2.840.113549.2.9"!==r.prf.algIdent)throw new Error(`unsupported PRF ${r.prf.toString()}`);if("2.16.840.1.101.3.4.1.2"!==t.encScheme.algIdent)throw new Error(`unsupported encryption scheme: ${t.encScheme.toString()}`);if(!t.encScheme.parameters||!("bytes"in t.encScheme.parameters))throw new Error(`expected IV as bytes for AES-128-CBC, got: ${JSON.stringify(t.encScheme.parameters)}`);const n=r.keyLength||16,o=t.encScheme.parameters.bytes,i=await deriveKey(HashAlgorithm.Sha256,e,r.salt,r.iterCount,n),s=await createDecipheriv(CipherAlgorithm.Aes128Cbc,i,o,this.data);return PrivateKeyInfo.parse(s)}}function decode$4(e){return Uint8Array.from(Buffer$1$1.from(e,"base64"))} /*! * MIT License * @@ -56,7 +63,7 @@ var wasm$1=null;try{wasm$1=new WebAssembly.Instance(new WebAssembly.Module(new U /*! Copyright (c) Peculiar Ventures, LLC */ -function utilFromBase(e,t){let r=0;if(1===e.length)return e[0];for(let n=e.length-1;n>=0;n--)r+=e[e.length-1-n]*Math.pow(2,t*n);return r}function utilToBase(e,t,r=-1){const n=r;let o=e,i=0,a=Math.pow(2,t);for(let s=1;s<8;s++){if(e=0;n--){const e=Math.pow(2,n*t);r[i-n-1]=Math.floor(o/e),o-=r[i-n-1]*e}return e}a*=Math.pow(2,t)}return new ArrayBuffer(0)}function utilConcatView(...e){let t=0,r=0;for(const i of e)t+=i.length;const n=new ArrayBuffer(t),o=new Uint8Array(n);for(const i of e)o.set(i,r),r+=i.length;return o}function utilDecodeTC(){const e=new Uint8Array(this.valueHex);if(this.valueHex.byteLength>=2){const t=255===e[0]&&128&e[1],r=0===e[0]&&!(128&e[1]);(t||r)&&this.warnings.push("Needlessly long format")}const t=new ArrayBuffer(this.valueHex.byteLength),r=new Uint8Array(t);for(let a=0;a=0;n--)r+=e[e.length-1-n]*Math.pow(2,t*n);return r}function utilToBase(e,t,r=-1){const n=r;let o=e,i=0,s=Math.pow(2,t);for(let a=1;a<8;a++){if(e=0;n--){const e=Math.pow(2,n*t);r[i-n-1]=Math.floor(o/e),o-=r[i-n-1]*e}return e}s*=Math.pow(2,t)}return new ArrayBuffer(0)}function utilConcatView(...e){let t=0,r=0;for(const i of e)t+=i.length;const n=new ArrayBuffer(t),o=new Uint8Array(n);for(const i of e)o.set(i,r),r+=i.length;return o}function utilDecodeTC(){const e=new Uint8Array(this.valueHex);if(this.valueHex.byteLength>=2){const t=255===e[0]&&128&e[1],r=0===e[0]&&!(128&e[1]);(t||r)&&this.warnings.push("Needlessly long format")}const t=new ArrayBuffer(this.valueHex.byteLength),r=new Uint8Array(t);for(let s=0;s=o.length)return this.error="End of input reached before message was fully decoded",-1;if(e===r){r+=255;const e=new Uint8Array(r);for(let r=0;r8)return this.error="Too big integer",-1;if(i+1>o.length)return this.error="End of input reached before message was fully decoded",-1;const a=t+1,s=n.subarray(a,a+i);return 0===s[i-1]&&this.warnings.push("Needlessly long encoded length"),this.length=utilFromBase(s,8),this.longFormUsed&&this.length<=127&&this.warnings.push("Unnecessary usage of long length form"),this.blockLength=i+1,t+this.blockLength}toBER(e=!1){let t,r;if(this.length>127&&(this.longFormUsed=!0),this.isIndefiniteForm)return t=new ArrayBuffer(1),!1===e&&(r=new Uint8Array(t),r[0]=128),t;if(this.longFormUsed){const n=utilToBase(this.length,8);if(n.byteLength>127)return this.error="Too big length",EMPTY_BUFFER;if(t=new ArrayBuffer(n.byteLength+1),e)return t;const o=new Uint8Array(n);r=new Uint8Array(t),r[0]=128|n.byteLength;for(let e=0;e=37&&!1===o.idBlock.isHexOnly)return o.error="UNIVERSAL 37 and upper tags are reserved by ASN.1 standard",{offset:-1,result:o};switch(o.idBlock.tagNumber){case 0:if(o.idBlock.isConstructed&&o.lenBlock.length>0)return o.error="Type [UNIVERSAL 0] is reserved",{offset:-1,result:o};s=typeStore.EndOfContent;break;case 1:s=typeStore.Boolean;break;case 2:s=typeStore.Integer;break;case 3:s=typeStore.BitString;break;case 4:s=typeStore.OctetString;break;case 5:s=typeStore.Null;break;case 6:s=typeStore.ObjectIdentifier;break;case 10:s=typeStore.Enumerated;break;case 12:s=typeStore.Utf8String;break;case 13:s=typeStore.RelativeObjectIdentifier;break;case 14:s=typeStore.TIME;break;case 15:return o.error="[UNIVERSAL 15] is reserved by ASN.1 standard",{offset:-1,result:o};case 16:s=typeStore.Sequence;break;case 17:s=typeStore.Set;break;case 18:s=typeStore.NumericString;break;case 19:s=typeStore.PrintableString;break;case 20:s=typeStore.TeletexString;break;case 21:s=typeStore.VideotexString;break;case 22:s=typeStore.IA5String;break;case 23:s=typeStore.UTCTime;break;case 24:s=typeStore.GeneralizedTime;break;case 25:s=typeStore.GraphicString;break;case 26:s=typeStore.VisibleString;break;case 27:s=typeStore.GeneralString;break;case 28:s=typeStore.UniversalString;break;case 29:s=typeStore.CharacterString;break;case 30:s=typeStore.BmpString;break;case 31:s=typeStore.DATE;break;case 32:s=typeStore.TimeOfDay;break;case 33:s=typeStore.DateTime;break;case 34:s=typeStore.Duration;break;default:{const e=o.idBlock.isConstructed?new typeStore.Constructed:new typeStore.Primitive;e.idBlock=o.idBlock,e.lenBlock=o.lenBlock,e.warnings=o.warnings,o=e}}}else s=o.idBlock.isConstructed?typeStore.Constructed:typeStore.Primitive;return o=localChangeType(o,s),a=o.fromBER(e,t,o.lenBlock.isIndefiniteForm?r:o.lenBlock.length),o.valueBeforeDecodeView=e.subarray(n,n+o.blockLength),{offset:a,result:o}}function fromBER(e){if(!e.byteLength){const e=new BaseBlock({},ValueBlock);return e.error="Input buffer has zero length",{offset:-1,result:e}}return localFromBER(BufferSourceConverter.toUint8Array(e).slice(),0,e.byteLength)}function checkLen(e,t){return e?1:t}_a$w=Primitive,typeStore.Primitive=_a$w,Primitive.NAME="PRIMITIVE";class LocalConstructedValueBlock extends ValueBlock{constructor({value:e=[],isIndefiniteForm:t=!1,...r}={}){super(r),this.value=e,this.isIndefiniteForm=t}fromBER(e,t,r){const n=BufferSourceConverter.toUint8Array(e);if(!checkBufferParams(this,n,t,r))return-1;if(this.valueBeforeDecodeView=n.subarray(t,t+r),0===this.valueBeforeDecodeView.length)return this.warnings.push("Zero buffer length"),t;let o=t;for(;checkLen(this.isIndefiniteForm,r)>0;){const e=localFromBER(n,o,r);if(-1===e.offset)return this.error=e.result.error,this.warnings.concat(e.result.warnings),-1;if(o=e.offset,this.blockLength+=e.result.blockLength,r-=e.result.blockLength,this.value.push(e.result),this.isIndefiniteForm&&e.result.constructor.NAME===END_OF_CONTENT_NAME)break}return this.isIndefiniteForm&&(this.value[this.value.length-1].constructor.NAME===END_OF_CONTENT_NAME?this.value.pop():this.warnings.push("No EndOfContent block encoded")),o}toBER(e,t){const r=t||new ViewWriter;for(let n=0;n` ${e}`)).join("\n"));const t=3===this.idBlock.tagClass?`[${this.idBlock.tagNumber}]`:this.constructor.NAME;return e.length?`${t} :\n${e.join("\n")}`:`${t} :`}}_a$v=Constructed,typeStore.Constructed=_a$v,Constructed.NAME="CONSTRUCTED";class LocalEndOfContentValueBlock extends ValueBlock{fromBER(e,t,r){return t}toBER(e){return EMPTY_BUFFER}}LocalEndOfContentValueBlock.override="EndOfContentValueBlock";class EndOfContent extends BaseBlock{constructor(e={}){super(e,LocalEndOfContentValueBlock),this.idBlock.tagClass=1,this.idBlock.tagNumber=0}}_a$u=EndOfContent,typeStore.EndOfContent=_a$u,EndOfContent.NAME=END_OF_CONTENT_NAME;class Null extends BaseBlock{constructor(e={}){super(e,ValueBlock),this.idBlock.tagClass=1,this.idBlock.tagNumber=5}fromBER(e,t,r){return this.lenBlock.length>0&&this.warnings.push("Non-zero length of value block for Null type"),this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.blockLength+=r,t+r>e.byteLength?(this.error="End of input reached before message was fully decoded (inconsistent offset and length values)",-1):t+r}toBER(e,t){const r=new ArrayBuffer(2);if(!e){const e=new Uint8Array(r);e[0]=5,e[1]=0}return t&&t.write(r),r}onAsciiEncoding(){return`${this.constructor.NAME}`}}_a$t=Null,typeStore.Null=_a$t,Null.NAME="NULL";class LocalBooleanValueBlock extends(HexBlock(ValueBlock)){constructor({value:e,...t}={}){super(t),t.valueHex?this.valueHexView=BufferSourceConverter.toUint8Array(t.valueHex):this.valueHexView=new Uint8Array(1),e&&(this.value=e)}get value(){for(const e of this.valueHexView)if(e>0)return!0;return!1}set value(e){this.valueHexView[0]=e?255:0}fromBER(e,t,r){const n=BufferSourceConverter.toUint8Array(e);return checkBufferParams(this,n,t,r)?(this.valueHexView=n.subarray(t,t+r),r>1&&this.warnings.push("Boolean value encoded in more then 1 octet"),this.isHexOnly=!0,utilDecodeTC.call(this),this.blockLength=r,t+r):-1}toBER(){return this.valueHexView.slice()}toJSON(){return{...super.toJSON(),value:this.value}}}LocalBooleanValueBlock.NAME="BooleanValueBlock";let Boolean$1=class extends BaseBlock{constructor(e={}){super(e,LocalBooleanValueBlock),this.idBlock.tagClass=1,this.idBlock.tagNumber=1}getValue(){return this.valueBlock.value}setValue(e){this.valueBlock.value=e}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.getValue}`}};_a$s=Boolean$1,typeStore.Boolean=_a$s,Boolean$1.NAME="BOOLEAN";class LocalOctetStringValueBlock extends(HexBlock(LocalConstructedValueBlock)){constructor({isConstructed:e=!1,...t}={}){super(t),this.isConstructed=e}fromBER(e,t,r){let n=0;if(this.isConstructed){if(this.isHexOnly=!1,n=LocalConstructedValueBlock.prototype.fromBER.call(this,e,t,r),-1===n)return n;for(let e=0;e0&&r.unusedBits>0)return this.error='Using of "unused bits" inside constructive BIT STRING allowed for least one only',-1;this.unusedBits=r.unusedBits}return n}const o=BufferSourceConverter.toUint8Array(e);if(!checkBufferParams(this,o,t,r))return-1;const i=o.subarray(t,t+r);if(this.unusedBits=i[0],this.unusedBits>7)return this.error="Unused bits for BitString must be in range 0-7",-1;if(!this.unusedBits){const e=i.subarray(1);try{if(e.byteLength){const t=localFromBER(e,0,e.byteLength);-1!==t.offset&&t.offset===r-1&&(this.value=[t.result])}}catch(e2){}}return this.valueHexView=i.subarray(1),this.blockLength=i.length,t+r}toBER(e,t){if(this.isConstructed)return LocalConstructedValueBlock.prototype.toBER.call(this,e,t);if(e)return new ArrayBuffer(this.valueHexView.byteLength+1);if(!this.valueHexView.byteLength)return EMPTY_BUFFER;const r=new Uint8Array(this.valueHexView.length+1);return r[0]=this.unusedBits,r.set(this.valueHexView,1),r.buffer}toJSON(){return{...super.toJSON(),unusedBits:this.unusedBits,isConstructed:this.isConstructed}}}LocalBitStringValueBlock.NAME="BitStringValueBlock";class BitString extends BaseBlock{constructor({idBlock:e={},lenBlock:t={},...r}={}){var n,o;null!==(n=r.isConstructed)&&void 0!==n||(r.isConstructed=!!(null===(o=r.value)||void 0===o?void 0:o.length)),super({idBlock:{isConstructed:r.isConstructed,...e},lenBlock:{...t,isIndefiniteForm:!!r.isIndefiniteForm},...r},LocalBitStringValueBlock),this.idBlock.tagClass=1,this.idBlock.tagNumber=3}fromBER(e,t,r){return this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,super.fromBER(e,t,r)}onAsciiEncoding(){if(this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length)return Constructed.prototype.onAsciiEncoding.call(this);{const e=[],t=this.valueBlock.valueHexView;for(const n of t)e.push(n.toString(2).padStart(8,"0"));const r=e.join("");return`${this.constructor.NAME} : ${r.substring(0,r.length-this.valueBlock.unusedBits)}`}}}function viewAdd(e,t){const r=new Uint8Array([0]),n=new Uint8Array(e),o=new Uint8Array(t);let i=n.slice(0);const a=i.length-1,s=o.slice(0),c=s.length-1;let u=0;let l=0;for(let d=c=0;d--,l++){if(!0==l=i.length)i=utilConcatView(new Uint8Array([u%10]),i);else i[a-l]=u%10}return r[0]>0&&(i=utilConcatView(r,i)),i}function power2(e){if(e>=powers2.length)for(let t=powers2.length;t<=e;t++){const e=new Uint8Array([0]);let r=powers2[t-1].slice(0);for(let t=r.length-1;t>=0;t--){const n=new Uint8Array([(r[t]<<1)+e[0]]);e[0]=n[0]/10,r[t]=n[0]%10}e[0]>0&&(r=utilConcatView(e,r)),powers2.push(r)}return powers2[e]}function viewSub(e,t){let r=0;const n=new Uint8Array(e),o=new Uint8Array(t),i=n.slice(0),a=i.length-1,s=o.slice(0),c=s.length-1;let u,l=0;for(let d=c;d>=0;d--,l++)if(u=i[a-l]-s[c-l]-r,!0==u<0)r=1,i[a-l]=u+10;else r=0,i[a-l]=u;if(r>0)for(let d=a-c+1;d>=0;d--,l++){if(u=i[a-l]-r,!(u<0)){r=0,i[a-l]=u;break}r=1,i[a-l]=u+10}return i.slice()}_a$q=BitString,typeStore.BitString=_a$q,BitString.NAME=BIT_STRING_NAME;class LocalIntegerValueBlock extends(HexBlock(ValueBlock)){constructor({value:e,...t}={}){super(t),this._valueDec=0,t.valueHex&&this.setValueHex(),void 0!==e&&(this.valueDec=e)}setValueHex(){this.valueHexView.length>=4?(this.warnings.push("Too big Integer for decoding, hex only"),this.isHexOnly=!0,this._valueDec=0):(this.isHexOnly=!1,this.valueHexView.length>0&&(this._valueDec=utilDecodeTC.call(this)))}set valueDec(e){this._valueDec=e,this.isHexOnly=!1,this.valueHexView=new Uint8Array(utilEncodeTC(e))}get valueDec(){return this._valueDec}fromDER(e,t,r,n=0){const o=this.fromBER(e,t,r);if(-1===o)return o;const i=this.valueHexView;return 0===i[0]&&128&i[1]?this.valueHexView=i.subarray(1):0!==n&&i.length1&&(n=i.length+1),this.valueHexView=i.subarray(n-i.length)),o}toDER(e=!1){const t=this.valueHexView;switch(!0){case!!(128&t[0]):{const e=new Uint8Array(this.valueHexView.length+1);e[0]=0,e.set(t,1),this.valueHexView=e}break;case 0===t[0]&&!(128&t[1]):this.valueHexView=this.valueHexView.subarray(1)}return this.toBER(e)}fromBER(e,t,r){const n=super.fromBER(e,t,r);return-1===n||this.setValueHex(),n}toBER(e){return e?new ArrayBuffer(this.valueHexView.length):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}toString(){const e=8*this.valueHexView.length-1;let t,r=new Uint8Array(8*this.valueHexView.length/3),n=0;const o=this.valueHexView;let i="",a=!1;for(let s=o.byteLength-1;s>=0;s--){t=o[s];for(let o=0;o<8;o++){if(!(1&~t))if(n===e)r=viewSub(power2(n),r),i="-";else r=viewAdd(r,power2(n));n++,t>>=1}}for(let s=0;s0;){const t=new LocalSidValueBlock;if(n=t.fromBER(e,n,r),-1===n)return this.blockLength=0,this.error=t.error,n;0===this.value.length&&(t.isFirstSid=!0),this.blockLength+=t.blockLength,r-=t.blockLength,this.value.push(t)}return n}toBER(e){const t=[];for(let r=0;rNumber.MAX_SAFE_INTEGER){assertBigInt();const t=BigInt(n);e.valueBigInt=t}else if(e.valueDec=parseInt(n,10),isNaN(e.valueDec))return;this.value.length||(e.isFirstSid=!0,o=!0),this.value.push(e)}}while(-1!==r)}toString(){let e="",t=!1;for(let r=0;r0;){const t=new LocalRelativeSidValueBlock;if(n=t.fromBER(e,n,r),-1===n)return this.blockLength=0,this.error=t.error,n;this.blockLength+=t.blockLength,r-=t.blockLength,this.value.push(t)}return n}toBER(e,t){const r=[];for(let n=0;n4)continue;const i=4-o.length;for(let e=o.length-1;e>=0;e--)r[4*n+e+i]=o[e]}this.valueBlock.value=e}}LocalUniversalStringValueBlock.NAME="UniversalStringValueBlock";class UniversalString extends LocalUniversalStringValueBlock{constructor({...e}={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=28}}_a$g=UniversalString,typeStore.UniversalString=_a$g,UniversalString.NAME="UniversalString";class NumericString extends LocalSimpleStringBlock{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=18}}_a$f=NumericString,typeStore.NumericString=_a$f,NumericString.NAME="NumericString";class PrintableString extends LocalSimpleStringBlock{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=19}}_a$e=PrintableString,typeStore.PrintableString=_a$e,PrintableString.NAME="PrintableString";class TeletexString extends LocalSimpleStringBlock{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=20}}_a$d=TeletexString,typeStore.TeletexString=_a$d,TeletexString.NAME="TeletexString";class VideotexString extends LocalSimpleStringBlock{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=21}}_a$c=VideotexString,typeStore.VideotexString=_a$c,VideotexString.NAME="VideotexString";class IA5String extends LocalSimpleStringBlock{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=22}}_a$b=IA5String,typeStore.IA5String=_a$b,IA5String.NAME="IA5String";class GraphicString extends LocalSimpleStringBlock{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=25}}_a$a=GraphicString,typeStore.GraphicString=_a$a,GraphicString.NAME="GraphicString";class VisibleString extends LocalSimpleStringBlock{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=26}}_a$9=VisibleString,typeStore.VisibleString=_a$9,VisibleString.NAME="VisibleString";class GeneralString extends LocalSimpleStringBlock{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=27}}_a$8=GeneralString,typeStore.GeneralString=_a$8,GeneralString.NAME="GeneralString";class CharacterString extends LocalSimpleStringBlock{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=29}}_a$7=CharacterString,typeStore.CharacterString=_a$7,CharacterString.NAME="CharacterString";class UTCTime extends VisibleString{constructor({value:e,valueDate:t,...r}={}){if(super(r),this.year=0,this.month=0,this.day=0,this.hour=0,this.minute=0,this.second=0,e){this.fromString(e),this.valueBlock.valueHexView=new Uint8Array(e.length);for(let t=0;t=50?1900+r:2e3+r,this.month=parseInt(t[2],10),this.day=parseInt(t[3],10),this.hour=parseInt(t[4],10),this.minute=parseInt(t[5],10),this.second=parseInt(t[6],10)}toString(e="iso"){if("iso"===e){const e=new Array(7);return e[0]=padNumber(this.year<2e3?this.year-1900:this.year-2e3,2),e[1]=padNumber(this.month,2),e[2]=padNumber(this.day,2),e[3]=padNumber(this.hour,2),e[4]=padNumber(this.minute,2),e[5]=padNumber(this.second,2),e[6]="Z",e.join("")}return super.toString(e)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.toDate().toISOString()}`}toJSON(){return{...super.toJSON(),year:this.year,month:this.month,day:this.day,hour:this.hour,minute:this.minute,second:this.second}}}_a$6=UTCTime,typeStore.UTCTime=_a$6,UTCTime.NAME="UTCTime";class GeneralizedTime extends UTCTime{constructor(e={}){var t;super(e),null!==(t=this.millisecond)&&void 0!==t||(this.millisecond=0),this.idBlock.tagClass=1,this.idBlock.tagNumber=24}fromDate(e){super.fromDate(e),this.millisecond=e.getUTCMilliseconds()}toDate(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second,this.millisecond))}fromString(e){let t,r=!1,n="",o="",i=0,a=0,s=0;if("Z"===e[e.length-1])n=e.substring(0,e.length-1),r=!0;else{const t=new Number(e[e.length-1]);if(isNaN(t.valueOf()))throw new Error("Wrong input string for conversion");n=e}if(r){if(-1!==n.indexOf("+"))throw new Error("Wrong input string for conversion");if(-1!==n.indexOf("-"))throw new Error("Wrong input string for conversion")}else{let e=1,t=n.indexOf("+"),r="";if(-1===t&&(t=n.indexOf("-"),e=-1),-1!==t){if(r=n.substring(t+1),n=n.substring(0,t),2!==r.length&&4!==r.length)throw new Error("Wrong input string for conversion");let o=parseInt(r.substring(0,2),10);if(isNaN(o.valueOf()))throw new Error("Wrong input string for conversion");if(a=e*o,4===r.length){if(o=parseInt(r.substring(2,4),10),isNaN(o.valueOf()))throw new Error("Wrong input string for conversion");s=e*o}}}let c=n.indexOf(".");if(-1===c&&(c=n.indexOf(",")),-1!==c){const e=new Number(`0${n.substring(c)}`);if(isNaN(e.valueOf()))throw new Error("Wrong input string for conversion");i=e.valueOf(),o=n.substring(0,c)}else o=n;switch(!0){case 8===o.length:if(t=/(\d{4})(\d{2})(\d{2})/gi,-1!==c)throw new Error("Wrong input string for conversion");break;case 10===o.length:if(t=/(\d{4})(\d{2})(\d{2})(\d{2})/gi,-1!==c){let e=60*i;this.minute=Math.floor(e),e=60*(e-this.minute),this.second=Math.floor(e),e=1e3*(e-this.second),this.millisecond=Math.floor(e)}break;case 12===o.length:if(t=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})/gi,-1!==c){let e=60*i;this.second=Math.floor(e),e=1e3*(e-this.second),this.millisecond=Math.floor(e)}break;case 14===o.length:if(t=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/gi,-1!==c){const e=1e3*i;this.millisecond=Math.floor(e)}break;default:throw new Error("Wrong input string for conversion")}const u=t.exec(o);if(null===u)throw new Error("Wrong input string for conversion");for(let l=1;lnew PrivateKey$1(e),CACHE$1.privateKeyFromBytes=e=>PrivateKey$1.fromBytes(e);const BadMnemonicReason=Object.freeze({BadLength:"BadLength",UnknownWords:"UnknownWords",ChecksumMismatch:"ChecksumMismatch"});class BadMnemonicError extends Error{constructor(e,t,r){let n;switch(t){case BadMnemonicReason.BadLength:n="mnemonic is of an unexpected number of words";break;case BadMnemonicReason.ChecksumMismatch:n="checksum byte in mnemonic did not match the rest of the mnemonic";break;case BadMnemonicReason.UnknownWords:n="mnemonic contained words that are not in the standard word list";break;default:throw new Error(`unexpected value ${t.toString()} for 'reason'`)}super(`invalid mnemonic: ${n}`),void 0!==Error.captureStackTrace&&Error.captureStackTrace(this,BadMnemonicError),this.name="BadMnemonicError",this.reason=t,this.mnemonic=e,this.unknownWordIndices=r}}const legacyWords=["aback","abbey","abbot","abide","ablaze","able","aboard","abode","abort","abound","about","above","abroad","abrupt","absent","absorb","absurd","abuse","accent","accept","access","accord","accuse","ace","ache","aching","acid","acidic","acorn","acre","across","act","action","active","actor","actual","acute","adam","adapt","add","added","addict","adept","adhere","adjust","admire","admit","adobe","adopt","adrift","adult","adverb","advice","aerial","afar","affair","affect","afford","afghan","afield","afloat","afraid","afresh","after","again","age","agency","agenda","agent","aghast","agile","ago","agony","agree","agreed","ahead","aid","aide","aim","air","airman","airy","akin","alarm","alaska","albeit","album","ale","alert","alibi","alice","alien","alight","align","alike","alive","alkali","all","alley","allied","allow","alloy","ally","almond","almost","aloft","alone","along","aloof","aloud","alpha","alpine","also","altar","alter","always","amaze","amazon","amber","ambush","amen","amend","amid","amidst","amiss","among","amount","ample","amuse","anchor","and","andrew","anew","angel","anger","angle","angry","animal","ankle","annoy","annual","answer","anthem","any","anyhow","anyway","apart","apathy","apex","apiece","appeal","appear","apple","apply","april","apron","arab","arcade","arcane","arch","arctic","ardent","are","area","argue","arid","arise","ark","arm","armful","army","aroma","around","arouse","array","arrest","arrive","arrow","arson","art","artery","artful","artist","ascent","ash","ashen","ashore","aside","ask","asleep","aspect","assay","assent","assert","assess","asset","assign","assist","assume","assure","asthma","astute","asylum","ate","athens","atlas","atom","atomic","attach","attack","attain","attend","attic","auburn","audio","audit","august","aunt","auntie","aura","austin","author","auto","autumn","avail","avenge","avenue","avert","avid","avoid","await","awake","awaken","award","aware","awash","away","awful","awhile","axe","axes","axiom","axis","axle","aye","babe","baby","bach","back","backup","bacon","bad","badge","badly","bag","baggy","bail","bait","bake","baker","bakery","bald","ball","ballad","ballet","ballot","baltic","bamboo","ban","banal","banana","band","bang","bank","bar","barber","bare","barely","barge","bark","barley","barn","baron","barrel","barren","basalt","base","basic","basil","basin","basis","basket","bass","bat","batch","bath","baton","battle","bay","beach","beacon","beak","beam","bean","bear","beard","beast","beat","beauty","become","bed","beech","beef","beefy","beep","beer","beet","beetle","before","beg","beggar","begin","behalf","behave","behind","beige","being","belief","bell","belly","belong","below","belt","bench","bend","benign","bent","berlin","berry","berth","beset","beside","best","bestow","bet","beta","betray","better","beware","beyond","bias","biceps","bicker","bid","big","bigger","bike","bile","bill","bin","binary","bind","biopsy","birch","bird","birdie","birth","bishop","bit","bitch","bite","bitter","black","blade","blame","bland","blast","blaze","bleak","blend","bless","blew","blind","blink","blip","bliss","blitz","block","blond","blood","bloody","bloom","blot","blouse","blow","blue","bluff","blunt","blur","blush","boar","board","boast","boat","bob","bodily","body","bogus","boil","bold","bolt","bomb","bombay","bond","bone","bonn","bonnet","bonus","bony","book","boom","boost","boot","booth","booze","border","bore","borrow","bosom","boss","boston","both","bother","bottle","bottom","bought","bounce","bound","bounty","bout","bovine","bow","bowel","bowl","box","boy","boyish","brace","brain","brainy","brake","bran","branch","brand","brandy","brass","brave","bravo","brazil","breach","bread","break","breast","breath","bred","breed","breeze","brew","bribe","brick","bride","bridge","brief","bright","brim","brine","bring","brink","brisk","broad","broke","broken","bronze","brook","broom","brown","bruise","brush","brutal","brute","bubble","buck","bucket","buckle","budget","buffet","buggy","build","bulb","bulge","bulk","bulky","bull","bullet","bully","bump","bumpy","bunch","bundle","bunk","bunny","burden","bureau","burial","buried","burly","burn","burnt","burrow","burst","bury","bus","bush","bust","bustle","busy","but","butler","butt","butter","button","buy","buyer","buzz","bye","byte","cab","cabin","cable","cache","cactus","caesar","cage","cairo","cajun","cajole","cake","calf","call","caller","calm","calmly","came","camel","camera","camp","campus","can","canada","canal","canary","cancel","cancer","candid","candle","candy","cane","canine","canoe","canopy","canvas","canyon","cap","cape","car","carbon","card","care","career","caress","cargo","carl","carnal","carol","carp","carpet","carrot","carry","cart","cartel","case","cash","cask","cast","castle","casual","cat","catch","cater","cattle","caught","causal","cause","cave","cease","celery","cell","cellar","celtic","cement","censor","census","cent","cereal","chain","chair","chalk","chalky","champ","chance","change","chant","chaos","chap","chapel","charge","charm","chart","chase","chat","cheap","cheat","check","cheek","cheeky","cheer","cheery","cheese","chef","cheque","cherry","chess","chest","chew","chic","chick","chief","child","chile","chill","chilly","chin","china","chip","choice","choir","choose","chop","choppy","chord","chorus","chose","chosen","chris","chrome","chunk","chunky","church","cider","cigar","cinema","circa","circle","circus","cite","city","civic","civil","clad","claim","clammy","clan","clap","clash","clasp","class","clause","claw","clay","clean","clear","clergy","clerk","clever","click","client","cliff","climax","climb","clinch","cling","clinic","clip","cloak","clock","clone","close","closer","closet","cloth","cloud","cloudy","clout","clown","club","clue","clumsy","clung","clutch","coach","coal","coarse","coast","coat","coax","cobalt","cobra","coca","cock","cocoa","code","coffee","coffin","cohort","coil","coin","coke","cold","collar","colon","colony","colt","column","comb","combat","come","comedy","comic","commit","common","compel","comply","concur","cone","confer","congo","consul","convex","convey","convoy","cook","cool","cope","copper","copy","coral","cord","core","cork","corn","corner","corps","corpse","corpus","cortex","cosmic","cosmos","cost","costly","cotton","couch","cough","could","count","county","coup","couple","coupon","course","court","cousin","cove","cover","covert","cow","coward","cowboy","cozy","crab","crack","cradle","craft","crafty","crag","crane","crash","crate","crater","crawl","crazy","creak","cream","creamy","create","credit","creed","creek","creep","creepy","crept","crest","crew","cried","crime","crisis","crisp","critic","crook","crop","cross","crow","crowd","crown","crude","cruel","cruise","crunch","crush","crust","crux","cry","crypt","cuba","cube","cubic","cuckoo","cuff","cult","cup","curb","cure","curfew","curl","curry","curse","cursor","curve","cuss","custom","cut","cute","cycle","cyclic","cynic","czech","dad","daddy","dagger","daily","dairy","daisy","dale","dam","damage","damp","dampen","dance","danger","danish","dare","dark","darken","darn","dart","dash","data","date","david","dawn","day","dead","deadly","deaf","deal","dealer","dean","dear","death","debate","debit","debris","debt","debtor","decade","decay","decent","decide","deck","decor","decree","deduce","deed","deep","deeply","deer","defeat","defect","defend","defer","define","defy","degree","deity","delay","delete","delhi","delta","demand","demise","demo","demure","denial","denote","dense","dental","deny","depart","depend","depict","deploy","depot","depth","deputy","derive","desert","design","desire","desist","desk","detail","detect","deter","detest","detour","device","devise","devoid","devote","devour","dial","diana","diary","dice","dictum","did","die","diesel","diet","differ","dig","digest","digit","dine","dinghy","dinner","diode","dip","dire","direct","dirt","dirty","disc","disco","dish","disk","dismal","dispel","ditch","dive","divert","divide","divine","dizzy","docile","dock","doctor","dog","dogma","dole","doll","dollar","dolly","domain","dome","domino","donate","done","donkey","donor","doom","door","dorsal","dose","dot","double","doubt","dough","dour","dove","down","dozen","draft","drag","dragon","drain","drama","drank","draw","drawer","dread","dream","dreary","dress","drew","dried","drift","drill","drink","drip","drive","driver","drop","drove","drown","drug","drum","drunk","dry","dual","duck","duct","due","duel","duet","duke","dull","duly","dumb","dummy","dump","dune","dung","duress","during","dusk","dust","dusty","dutch","duty","dwarf","dwell","dyer","dying","dynamo","each","eager","eagle","ear","earl","early","earn","earth","ease","easel","easily","east","easter","easy","eat","eaten","eater","echo","eddy","eden","edge","edible","edict","edit","editor","eel","eerie","eerily","effect","effort","egg","ego","eight","eighth","eighty","either","elbow","elder","eldest","elect","eleven","elicit","elite","else","elude","elves","embark","emblem","embryo","emerge","emit","empire","employ","empty","enable","enamel","end","endure","enemy","energy","engage","engine","enjoy","enlist","enough","ensure","entail","enter","entire","entry","envoy","envy","enzyme","epic","epoch","equal","equate","equip","equity","era","erect","eric","erode","erotic","errant","error","escape","escort","essay","essex","estate","esteem","ethic","ethnic","europe","evade","eve","even","event","ever","every","evict","evil","evoke","evolve","exact","exam","exceed","excel","except","excess","excise","excite","excuse","exempt","exert","exile","exist","exit","exodus","exotic","expand","expect","expert","expire","export","expose","extend","extra","eye","eyed","fabric","face","facial","fact","factor","fade","fail","faint","fair","fairly","fairy","faith","fake","falcon","fall","false","falter","fame","family","famine","famous","fan","fancy","far","farce","fare","farm","farmer","fast","fasten","faster","fat","fatal","fate","father","fatty","fault","faulty","fauna","fear","feast","feat","fed","fee","feeble","feed","feel","feet","fell","fellow","felt","female","fence","fend","ferry","fetal","fetch","feudal","fever","few","fewer","fiasco","fiddle","field","fiend","fierce","fiery","fifth","fifty","fig","fight","figure","file","fill","filled","filler","film","filter","filth","filthy","final","finale","find","fine","finery","finger","finish","finite","fire","firm","firmly","first","fiscal","fish","fisher","fist","fit","fitful","five","fix","flag","flair","flak","flame","flank","flap","flare","flash","flask","flat","flavor","flaw","fled","flee","fleece","fleet","flesh","fleshy","flew","flick","flight","flimsy","flint","flirt","float","flock","flood","floor","floppy","flora","floral","flour","flow","flower","fluent","fluffy","fluid","flung","flurry","flush","flute","flux","fly","flyer","foal","foam","focal","focus","fog","foil","fold","folk","follow","folly","fond","fondly","font","food","fool","foot","for","forbid","force","ford","forest","forge","forget","fork","form","formal","format","former","fort","forth","forty","forum","fossil","foster","foul","found","four","fourth","fox","foyer","frail","frame","franc","france","frank","fraud","fred","free","freed","freely","freeze","french","frenzy","fresh","friar","friday","fridge","fried","friend","fright","fringe","frock","frog","from","front","frost","frosty","frown","frozen","frugal","fruit","fry","fudge","fuel","full","fully","fumes","fun","fund","funny","fur","furry","fury","fuse","fusion","fuss","fussy","futile","future","fuzzy","gadget","gain","gala","galaxy","gale","gall","galley","gallon","gallop","gamble","game","gamma","gandhi","gang","gap","garage","garden","garlic","gas","gasp","gate","gather","gauge","gaunt","gave","gaze","gear","geese","gem","gemini","gender","gene","geneva","genial","genius","genre","gentle","gently","gentry","genus","george","germ","get","ghetto","ghost","giant","gift","giggle","gill","gilt","ginger","girl","give","given","glad","glade","glance","gland","glare","glass","glassy","gleam","glee","glide","global","globe","gloom","gloomy","gloria","glory","gloss","glossy","glove","glow","glue","gnat","gnu","goal","goat","gold","golden","golf","gone","gong","goo","good","goose","gore","gorge","gory","gosh","gospel","gossip","got","gothic","govern","gown","grab","grace","grade","grail","grain","grand","grant","grape","graph","grasp","grass","grassy","grate","grave","gravel","gravy","grease","greasy","great","greece","greed","greedy","greek","green","greet","grew","grey","grid","grief","grill","grim","grin","grind","grip","grit","gritty","groan","groin","groom","groove","gross","ground","group","grove","grow","grown","growth","grudge","grunt","guard","guess","guest","guide","guild","guilt","guilty","guise","guitar","gulf","gully","gun","gunman","guru","gut","guy","gypsy","habit","hack","had","hail","hair","hairy","haiti","hale","half","hall","halt","hamlet","hammer","hand","handle","handy","hang","hangar","hanoi","happen","happy","harass","harbor","hard","harder","hardly","hare","harem","harm","harp","harry","harsh","has","hash","hassle","haste","hasten","hasty","hat","hatch","hate","haul","haunt","havana","have","haven","havoc","hawaii","hawk","hay","hazard","haze","hazel","hazy","head","heal","health","heap","hear","heard","heart","hearth","hearty","heat","heater","heaven","heavy","hebrew","heck","hectic","hedge","heel","hefty","height","heir","held","helium","helix","hell","hello","helm","helmet","help","hemp","hence","henry","her","herald","herb","herd","here","hereby","hermes","hernia","hero","heroic","heroin","hey","heyday","hick","hidden","hide","high","higher","highly","hill","him","hind","hinder","hint","hippie","hire","his","hiss","hit","hive","hoard","hoarse","hobby","hockey","hold","holder","hole","hollow","holly","holy","home","honest","honey","hood","hook","hope","horn","horrid","horror","horse","hose","host","hot","hotel","hound","hour","house","hover","how","huge","hull","human","humane","humble","humid","hung","hunger","hungry","hunt","hurdle","hurl","hurry","hurt","hush","hut","hybrid","hymn","hyphen","ice","icing","icon","idaho","idea","ideal","idiom","idiot","idle","idly","idol","ignite","ignore","ill","image","immune","impact","imply","import","impose","inca","incest","inch","income","incur","indeed","index","india","indian","indoor","induce","inept","inert","infant","infect","infer","influx","inform","inject","injure","injury","ink","inlaid","inland","inlet","inmate","inn","innate","inner","input","insane","insect","insert","inset","inside","insist","insult","insure","intact","intake","intend","inter","into","invade","invent","invest","invite","invoke","inward","iowa","iran","iraq","irish","iron","ironic","irony","isaac","isabel","island","isle","israel","issue","italy","itch","item","itself","ivan","ivory","jack","jacket","jacob","jade","jaguar","jail","james","jane","japan","jargon","java","jaw","jazz","jeep","jelly","jerky","jest","jet","jewel","jewish","jim","job","jock","jockey","joe","john","join","joint","joke","jolly","jolt","jordan","joseph","joy","joyful","joyous","judge","judy","juice","juicy","july","jumble","jumbo","jump","june","jungle","junior","junk","junta","jury","just","kansas","karate","karl","keel","keen","keep","keeper","kenya","kept","kernel","kettle","key","khaki","kick","kid","kidnap","kidney","kill","killer","kin","kind","kindly","king","kiss","kite","kitten","knack","knee","kneel","knew","knife","knight","knit","knob","knock","knot","know","known","koran","korea","kuwait","label","lace","lack","lad","ladder","laden","lady","lagoon","laity","lake","lamb","lame","lamp","lance","land","lane","lap","lapse","large","larval","laser","last","latch","late","lately","latent","later","latest","latin","latter","laugh","launch","lava","lavish","law","lawful","lawn","lawyer","lay","layer","layman","lazy","lead","leader","leaf","leafy","league","leak","leaky","lean","leap","learn","lease","leash","least","leave","led","ledge","left","leg","legacy","legal","legend","legion","lemon","lend","length","lens","lent","leo","leper","lesion","less","lessen","lesser","lesson","lest","let","lethal","letter","level","lever","levy","lewis","liable","liar","libel","libya","lice","lick","lid","lie","lied","lier","life","lift","light","like","likely","limb","lime","limit","limp","line","linear","linen","linger","link","lint","lion","lip","liquid","liquor","list","listen","lit","live","lively","liver","liz","lizard","load","loaf","loan","lobby","lobe","local","locate","lock","locus","lodge","loft","lofty","log","logic","logo","london","lone","lonely","long","longer","look","loop","loose","loosen","loot","lord","lorry","lose","loss","lost","lot","lotion","lotus","loud","loudly","lounge","lousy","love","lovely","lover","low","lower","lowest","loyal","lucid","luck","lucky","lucy","lull","lump","lumpy","lunacy","lunar","lunch","lung","lure","lurid","lush","lust","lute","luther","luxury","lying","lymph","lynch","lyric","macho","macro","mad","madam","made","mafia","magic","magma","magnet","magnum","magpie","maid","maiden","mail","main","mainly","major","make","maker","male","malice","mall","malt","mammal","manage","mane","mania","manic","manner","manor","mantle","manual","manure","many","map","maple","marble","march","mare","margin","maria","marina","mark","market","marry","mars","marsh","martin","martyr","mary","mask","mason","mass","mast","master","mat","match","mate","matrix","matter","mature","maxim","may","maybe","mayor","maze","mead","meadow","meal","mean","meant","meat","medal","media","median","medic","medium","meet","mellow","melody","melon","melt","member","memo","memory","menace","mend","mental","mentor","menu","mercy","mere","merely","merge","merger","merit","merry","mesh","mess","messy","met","metal","meter","method","methyl","metric","metro","mexico","miami","mickey","mid","midday","middle","midst","midway","might","mighty","mild","mildew","mile","milk","milky","mill","mimic","mince","mind","mine","mini","mink","minor","mint","minus","minute","mire","mirror","mirth","misery","miss","mist","misty","mite","mix","moan","moat","mob","mobile","mock","mode","model","modem","modern","modest","modify","module","moist","molar","mold","mole","molten","moment","monday","money","monk","monkey","month","mood","moody","moon","moor","moral","morale","morbid","more","morgue","mortal","mortar","mosaic","moscow","moses","mosque","moss","most","mostly","moth","mother","motion","motive","motor","mount","mourn","mouse","mouth","move","movie","mrs","much","muck","mucus","mud","muddle","muddy","mule","mummy","munich","murder","murky","murmur","muscle","museum","music","mussel","must","mutant","mute","mutiny","mutter","mutton","mutual","muzzle","myopic","myriad","myself","mystic","myth","nadir","nail","naked","name","namely","nape","napkin","naples","narrow","nasal","nasty","nathan","nation","native","nature","nausea","naval","nave","navy","near","nearer","nearly","neat","neatly","neck","need","needle","needy","negate","neon","nepal","nephew","nerve","nest","net","neural","never","newly","next","nice","nicely","niche","nickel","niece","night","nile","nimble","nine","ninety","ninth","nobel","noble","nobody","node","noise","noisy","none","noon","nor","norm","normal","north","norway","nose","nosy","not","note","notice","notify","notion","noun","novel","novice","now","nozzle","null","numb","number","nurse","nut","nylon","nymph","oak","oar","oasis","oath","obese","obey","object","oblige","oboe","obtain","obtuse","occult","occupy","occur","ocean","octave","odd","off","offend","offer","office","offset","often","ohio","oil","oily","okay","old","older","oldest","olive","omega","omen","omit","once","one","onion","only","onset","onto","onus","onward","opaque","open","openly","opera","opium","oppose","optic","option","oracle","oral","orange","orbit","orchid","ordeal","order","organ","orgasm","orient","origin","ornate","orphan","oscar","other","otter","ought","ounce","our","out","outer","output","outset","oval","oven","over","overt","owe","owing","owl","own","owner","oxford","oxide","oxygen","oyster","ozone","pace","pack","packet","pact","pad","paddle","paddy","pagan","page","paid","pain","paint","pair","palace","pale","palm","pan","panama","panel","panic","papa","papal","paper","parade","parcel","pardon","parent","paris","parish","park","parody","parrot","part","partly","party","pascal","pass","past","paste","pastel","pastor","pastry","pat","patch","patent","path","patio","patrol","patron","paul","pause","pave","paw","pawn","pay","peace","peach","peak","pear","pearl","pedal","peel","peer","peking","pelvic","pelvis","pen","penal","pence","pencil","penny","people","pepper","per","perch","peril","period","perish","permit","person","peru","pest","pet","peter","petite","petrol","petty","phase","philip","phone","photo","phrase","piano","pick","picket","picnic","pie","piece","pier","pierce","piety","pig","pigeon","piggy","pike","pile","pill","pillar","pillow","pilot","pin","pinch","pine","pink","pint","pious","pipe","pirate","piss","pistol","piston","pit","pitch","pity","pivot","pixel","pizza","place","placid","plague","plain","plan","plane","planet","plank","plant","plasma","plate","play","player","plea","plead","please","pledge","plenty","plight","plot","plough","ploy","plug","plum","plump","plunge","plural","plus","plush","pocket","poem","poet","poetic","poetry","point","poison","poland","polar","pole","police","policy","polish","polite","poll","pollen","polo","pond","ponder","pony","pool","poor","poorly","pop","poppy","pore","pork","port","portal","pose","posh","post","postal","pot","potato","potent","pouch","pound","pour","powder","power","praise","pray","prayer","preach","prefer","prefix","press","pretty","price","pride","priest","primal","prime","prince","print","prior","prism","prison","privy","prize","probe","profit","prompt","prone","proof","propel","proper","prose","proton","proud","prove","proven","proxy","prune","pry","psalm","pseudo","psyche","pub","public","puff","pull","pulp","pulpit","pulsar","pulse","pump","punch","punish","punk","pupil","puppet","puppy","pure","purely","purge","purify","purple","purse","pursue","push","pushy","put","putt","puzzle","quaint","quake","quarry","quart","quartz","quebec","queen","queer","query","quest","queue","quick","quid","quiet","quilt","quirk","quit","quite","quiver","quiz","quota","quote","rabbit","race","racial","racism","rack","racket","radar","radio","radish","radius","raffle","raft","rage","raid","rail","rain","rainy","raise","rake","rally","ramp","random","range","rank","ransom","rape","rapid","rare","rarely","rarity","rash","rat","rate","rather","ratify","ratio","rattle","rave","raven","raw","ray","razor","reach","react","read","reader","ready","real","really","realm","reap","rear","reason","rebel","recall","recent","recess","recipe","reckon","record","recoup","rector","red","redeem","redo","reduce","reed","reef","reek","refer","reform","refuge","refuse","regal","regard","regent","regime","region","regret","reign","reject","relate","relax","relay","relic","relief","relish","rely","remain","remark","remedy","remind","remit","remote","remove","renal","render","rent","rental","repair","repeal","repeat","repent","reply","report","rescue","resent","reside","resign","resin","resist","resort","rest","result","resume","retail","retain","retina","retire","return","reveal","review","revise","revive","revolt","reward","rex","rhine","rhino","rhyme","rhythm","ribbon","rice","rich","rick","rid","ride","rider","ridge","rife","rifle","rift","right","rigid","rile","rim","ring","rinse","riot","ripe","ripen","ripple","rise","risk","risky","rite","ritual","ritz","rival","river","road","roar","roast","rob","robe","robert","robin","robot","robust","rock","rocket","rocky","rod","rode","rodent","rogue","role","roll","roman","rome","roof","room","root","rope","rose","rosy","rot","rotate","rotor","rotten","rouge","rough","round","route","rover","row","royal","rub","rubber","rubble","ruby","rudder","rude","rug","rugby","ruin","rule","ruler","rumble","rump","run","rune","rung","runway","rural","rush","russia","rust","rustic","rusty","sack","sacred","sad","saddle","sadism","sadly","safari","safe","safely","safer","safety","saga","sage","sahara","said","sail","sailor","saint","sake","salad","salary","sale","saline","saliva","salmon","saloon","salt","salty","salute","sam","same","sample","sand","sandy","sane","sash","satin","satire","saturn","sauce","saucer","saudi","sauna","savage","save","saw","say","scale","scalp","scan","scant","scar","scarce","scare","scarf","scary","scene","scenic","scent","school","scold","scope","score","scorn","scotch","scott","scout","scrap","scrape","scream","screen","screw","script","scroll","scrub","scum","sea","seal","seam","seaman","search","season","seat","second","secret","sect","sector","secure","see","seed","seeing","seek","seem","seize","seldom","select","self","sell","seller","semi","senate","send","senile","senior","sense","sensor","sent","sentry","seoul","sequel","serene","serial","series","sermon","serum","serve","server","set","settle","seven","severe","sew","sewage","shabby","shade","shadow","shady","shaft","shaggy","shah","shake","shaky","shall","sham","shame","shape","share","shark","sharp","shawl","she","shear","sheen","sheep","sheer","sheet","shelf","shell","sherry","shield","shift","shine","shiny","ship","shire","shirk","shirt","shiver","shock","shoe","shook","shoot","shop","shore","short","shot","should","shout","show","shower","shrank","shrewd","shrill","shrimp","shrine","shrink","shrub","shrug","shut","shy","shyly","sick","side","siege","sigh","sight","sigma","sign","signal","silent","silk","silken","silky","sill","silly","silo","silver","simple","simply","since","sinful","sing","singer","single","sink","sir","sire","siren","sister","sit","site","sitter","six","sixth","sixty","size","sketch","skill","skin","skinny","skip","skirt","skull","sky","slab","slack","slain","slam","slang","slap","slat","slate","slave","sleek","sleep","sleepy","sleeve","slice","slick","slid","slide","slight","slim","slimy","sling","slip","slit","slogan","slope","sloppy","slot","slow","slowly","slug","slum","slump","smack","small","smart","smash","smear","smell","smelly","smelt","smile","smite","smoke","smoky","smooth","smug","snack","snail","snake","snap","snatch","sneak","snow","snowy","snug","soak","soap","sober","soccer","social","sock","socket","socks","soda","sodden","sodium","sofa","soft","soften","softly","soggy","soil","solar","sold","sole","solely","solemn","solid","solo","solve","some","son","sonar","sonata","song","sonic","sony","soon","sooner","soot","soothe","sordid","sore","sorrow","sorry","sort","soul","sound","soup","sour","source","soviet","sow","space","spade","spain","span","spare","spark","sparse","spasm","spat","spate","speak","spear","speech","speed","speedy","spell","spend","sphere","spice","spicy","spider","spiky","spill","spin","spinal","spine","spiral","spirit","spit","spite","splash","split","spoil","spoke","sponge","spoon","sport","spot","spouse","spray","spread","spree","spring","sprint","spur","squad","square","squash","squat","squid","stab","stable","stack","staff","stage","stain","stair","stairs","stake","stale","stall","stamp","stance","stand","staple","star","starch","stare","stark","start","starve","state","static","statue","status","stay","stead","steady","steak","steal","steam","steel","steep","steer","stem","stench","step","stereo","stern","stew","stick","sticky","stiff","stifle","stigma","still","sting","stint","stir","stitch","stock","stocky","stone","stony","stool","stop","store","storm","stormy","story","stout","stove","stow","strain","strait","strand","strap","strata","straw","stray","streak","stream","street","stress","strict","stride","strife","strike","string","strip","stripe","strive","stroke","stroll","strong","stud","studio","study","stuff","stuffy","stunt","stupid","sturdy","style","submit","subtle","subtly","suburb","such","sudden","sue","suez","suffer","sugar","suit","suite","suitor","sullen","sultan","sum","summer","summit","summon","sun","sunday","sunny","sunset","super","superb","supper","supple","supply","sure","surely","surf","surge","survey","suture","swamp","swan","swap","swarm","sway","swear","sweat","sweaty","sweden","sweep","sweet","swell","swift","swim","swine","swing","swirl","swiss","switch","sword","swore","sydney","symbol","synod","syntax","syria","syrup","system","table","tablet","taboo","tacit","tackle","tact","tactic","tail","tailor","taiwan","take","tale","talent","talk","tall","tally","tame","tampa","tan","tandem","tangle","tank","tap","tape","target","tariff","tarp","tart","tarzan","task","taste","tasty","tattoo","taurus","taut","tavern","tax","taxi","tea","teach","teak","team","tear","tease","tech","teeth","tell","temper","temple","tempo","tempt","ten","tenant","tend","tender","tendon","tennis","tenor","tense","tent","tenth","tenure","teresa","term","terror","terse","test","texas","text","thank","thaw","them","theme","thence","theory","there","these","thesis","they","thick","thief","thigh","thin","thing","think","third","thirst","thirty","this","thomas","thorn","those","though","thread","threat","three","thrill","thrive","throat","throne","throng","throw","thrust","thud","thug","thumb","thus","thyme","tibet","tick","ticket","tidal","tide","tidy","tie","tier","tiger","tight","tile","till","tilt","timber","time","timid","tin","tiny","tip","tire","tissue","title","toad","toast","today","toe","toilet","token","tokyo","told","toll","tom","tomato","tomb","tonal","tone","tongue","tonic","too","took","tool","tooth","top","topaz","topic","torch","torque","torso","tort","toss","total","touch","tough","tour","toward","towel","tower","town","toxic","toxin","toy","trace","track","tract","trade","tragic","trail","train","trait","tram","trance","trap","trauma","travel","tray","tread","treat","treaty","treble","tree","trek","tremor","trench","trend","trendy","trial","tribal","tribe","trick","tricky","tried","trifle","trim","trio","trip","triple","troop","trophy","trot","trough","trout","truce","truck","true","truly","trunk","trust","truth","try","tube","tumble","tuna","tundra","tune","tunic","tunnel","turban","turf","turk","turkey","turn","turtle","tutor","tweed","twelve","twenty","twice","twin","twist","two","tycoon","tying","type","tyrant","ugly","ulcer","ultra","umpire","unable","uncle","under","uneasy","unfair","unify","union","unique","unit","unite","unity","unlike","unrest","unruly","until","update","upheld","uphill","uphold","upon","upper","uproar","upset","upshot","uptake","upturn","upward","urban","urge","urgent","urging","urine","usable","usage","use","useful","user","usual","utmost","utter","vacant","vacuum","vague","vain","valet","valid","valley","value","valve","van","vanish","vanity","vary","vase","vast","vat","vault","vector","veil","vein","velvet","vendor","veneer","venice","venom","vent","venue","venus","verb","verbal","verge","verify","verity","verse","versus","very","vessel","vest","vet","veto","via","viable","vicar","vice","victim","victor","video","vienna","view","vigil","viking","vile","villa","vine","vinyl","viola","violet","violin","viral","virgo","virtue","virus","visa","vision","visit","visual","vital","vivid","vocal","vodka","vogue","voice","void","volley","volume","vote","vowel","voyage","vulgar","wade","wage","waist","wait","waiter","wake","walk","walker","wall","wallet","walnut","wander","want","war","warden","warm","warmth","warn","warp","warsaw","wary","was","wash","wasp","waste","watch","water","watery","wave","wax","way","weak","weaken","wealth","weapon","wear","weary","weave","wedge","wee","weed","week","weekly","weep","weigh","weight","weird","well","were","west","wet","whale","wharf","what","wheat","wheel","when","whence","where","which","whiff","while","whim","whip","whisky","white","who","whole","wholly","whom","whose","why","wicked","wide","widely","widen","wider","widow","width","wife","wig","wild","wildly","will","willow","wily","win","wind","window","windy","wine","wing","wink","winner","winter","wipe","wire","wisdom","wise","wish","wit","witch","with","within","witty","wizard","woke","wolf","wolves","woman","womb","won","wonder","wood","wooden","woods","woody","wool","word","work","worker","world","worm","worry","worse","worst","worth","worthy","would","wound","wrap","wrath","wreath","wreck","wring","wrist","writ","write","writer","wrong","xerox","yacht","yale","yard","yarn","yeah","year","yeard","yeast","yellow","yet","yield","yogurt","yolk","you","young","your","youth","zaire","zeal","zebra","zenith","zero","zeus","zigzag","zinc","zombie","zone"],bip39Words=["abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse","access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act","action","actor","actress","actual","adapt","add","addict","address","adjust","admit","adult","advance","advice","aerobic","affair","afford","afraid","again","age","agent","agree","ahead","aim","air","airport","aisle","alarm","album","alcohol","alert","alien","all","alley","allow","almost","alone","alpha","already","also","alter","always","amateur","amazing","among","amount","amused","analyst","anchor","ancient","anger","angle","angry","animal","ankle","announce","annual","another","answer","antenna","antique","anxiety","any","apart","apology","appear","apple","approve","april","arch","arctic","area","arena","argue","arm","armed","armor","army","around","arrange","arrest","arrive","arrow","art","artefact","artist","artwork","ask","aspect","assault","asset","assist","assume","asthma","athlete","atom","attack","attend","attitude","attract","auction","audit","august","aunt","author","auto","autumn","average","avocado","avoid","awake","aware","away","awesome","awful","awkward","axis","baby","bachelor","bacon","badge","bag","balance","balcony","ball","bamboo","banana","banner","bar","barely","bargain","barrel","base","basic","basket","battle","beach","bean","beauty","because","become","beef","before","begin","behave","behind","believe","below","belt","bench","benefit","best","betray","better","between","beyond","bicycle","bid","bike","bind","biology","bird","birth","bitter","black","blade","blame","blanket","blast","bleak","bless","blind","blood","blossom","blouse","blue","blur","blush","board","boat","body","boil","bomb","bone","bonus","book","boost","border","boring","borrow","boss","bottom","bounce","box","boy","bracket","brain","brand","brass","brave","bread","breeze","brick","bridge","brief","bright","bring","brisk","broccoli","broken","bronze","broom","brother","brown","brush","bubble","buddy","budget","buffalo","build","bulb","bulk","bullet","bundle","bunker","burden","burger","burst","bus","business","busy","butter","buyer","buzz","cabbage","cabin","cable","cactus","cage","cake","call","calm","camera","camp","can","canal","cancel","candy","cannon","canoe","canvas","canyon","capable","capital","captain","car","carbon","card","cargo","carpet","carry","cart","case","cash","casino","castle","casual","cat","catalog","catch","category","cattle","caught","cause","caution","cave","ceiling","celery","cement","census","century","cereal","certain","chair","chalk","champion","change","chaos","chapter","charge","chase","chat","cheap","check","cheese","chef","cherry","chest","chicken","chief","child","chimney","choice","choose","chronic","chuckle","chunk","churn","cigar","cinnamon","circle","citizen","city","civil","claim","clap","clarify","claw","clay","clean","clerk","clever","click","client","cliff","climb","clinic","clip","clock","clog","close","cloth","cloud","clown","club","clump","cluster","clutch","coach","coast","coconut","code","coffee","coil","coin","collect","color","column","combine","come","comfort","comic","common","company","concert","conduct","confirm","congress","connect","consider","control","convince","cook","cool","copper","copy","coral","core","corn","correct","cost","cotton","couch","country","couple","course","cousin","cover","coyote","crack","cradle","craft","cram","crane","crash","crater","crawl","crazy","cream","credit","creek","crew","cricket","crime","crisp","critic","crop","cross","crouch","crowd","crucial","cruel","cruise","crumble","crunch","crush","cry","crystal","cube","culture","cup","cupboard","curious","current","curtain","curve","cushion","custom","cute","cycle","dad","damage","damp","dance","danger","daring","dash","daughter","dawn","day","deal","debate","debris","decade","december","decide","decline","decorate","decrease","deer","defense","define","defy","degree","delay","deliver","demand","demise","denial","dentist","deny","depart","depend","deposit","depth","deputy","derive","describe","desert","design","desk","despair","destroy","detail","detect","develop","device","devote","diagram","dial","diamond","diary","dice","diesel","diet","differ","digital","dignity","dilemma","dinner","dinosaur","direct","dirt","disagree","discover","disease","dish","dismiss","disorder","display","distance","divert","divide","divorce","dizzy","doctor","document","dog","doll","dolphin","domain","donate","donkey","donor","door","dose","double","dove","draft","dragon","drama","drastic","draw","dream","dress","drift","drill","drink","drip","drive","drop","drum","dry","duck","dumb","dune","during","dust","dutch","duty","dwarf","dynamic","eager","eagle","early","earn","earth","easily","east","easy","echo","ecology","economy","edge","edit","educate","effort","egg","eight","either","elbow","elder","electric","elegant","element","elephant","elevator","elite","else","embark","embody","embrace","emerge","emotion","employ","empower","empty","enable","enact","end","endless","endorse","enemy","energy","enforce","engage","engine","enhance","enjoy","enlist","enough","enrich","enroll","ensure","enter","entire","entry","envelope","episode","equal","equip","era","erase","erode","erosion","error","erupt","escape","essay","essence","estate","eternal","ethics","evidence","evil","evoke","evolve","exact","example","excess","exchange","excite","exclude","excuse","execute","exercise","exhaust","exhibit","exile","exist","exit","exotic","expand","expect","expire","explain","expose","express","extend","extra","eye","eyebrow","fabric","face","faculty","fade","faint","faith","fall","false","fame","family","famous","fan","fancy","fantasy","farm","fashion","fat","fatal","father","fatigue","fault","favorite","feature","february","federal","fee","feed","feel","female","fence","festival","fetch","fever","few","fiber","fiction","field","figure","file","film","filter","final","find","fine","finger","finish","fire","firm","first","fiscal","fish","fit","fitness","fix","flag","flame","flash","flat","flavor","flee","flight","flip","float","flock","floor","flower","fluid","flush","fly","foam","focus","fog","foil","fold","follow","food","foot","force","forest","forget","fork","fortune","forum","forward","fossil","foster","found","fox","fragile","frame","frequent","fresh","friend","fringe","frog","front","frost","frown","frozen","fruit","fuel","fun","funny","furnace","fury","future","gadget","gain","galaxy","gallery","game","gap","garage","garbage","garden","garlic","garment","gas","gasp","gate","gather","gauge","gaze","general","genius","genre","gentle","genuine","gesture","ghost","giant","gift","giggle","ginger","giraffe","girl","give","glad","glance","glare","glass","glide","glimpse","globe","gloom","glory","glove","glow","glue","goat","goddess","gold","good","goose","gorilla","gospel","gossip","govern","gown","grab","grace","grain","grant","grape","grass","gravity","great","green","grid","grief","grit","grocery","group","grow","grunt","guard","guess","guide","guilt","guitar","gun","gym","habit","hair","half","hammer","hamster","hand","happy","harbor","hard","harsh","harvest","hat","have","hawk","hazard","head","health","heart","heavy","hedgehog","height","hello","helmet","help","hen","hero","hidden","high","hill","hint","hip","hire","history","hobby","hockey","hold","hole","holiday","hollow","home","honey","hood","hope","horn","horror","horse","hospital","host","hotel","hour","hover","hub","huge","human","humble","humor","hundred","hungry","hunt","hurdle","hurry","hurt","husband","hybrid","ice","icon","idea","identify","idle","ignore","ill","illegal","illness","image","imitate","immense","immune","impact","impose","improve","impulse","inch","include","income","increase","index","indicate","indoor","industry","infant","inflict","inform","inhale","inherit","initial","inject","injury","inmate","inner","innocent","input","inquiry","insane","insect","inside","inspire","install","intact","interest","into","invest","invite","involve","iron","island","isolate","issue","item","ivory","jacket","jaguar","jar","jazz","jealous","jeans","jelly","jewel","job","join","joke","journey","joy","judge","juice","jump","jungle","junior","junk","just","kangaroo","keen","keep","ketchup","key","kick","kid","kidney","kind","kingdom","kiss","kit","kitchen","kite","kitten","kiwi","knee","knife","knock","know","lab","label","labor","ladder","lady","lake","lamp","language","laptop","large","later","latin","laugh","laundry","lava","law","lawn","lawsuit","layer","lazy","leader","leaf","learn","leave","lecture","left","leg","legal","legend","leisure","lemon","lend","length","lens","leopard","lesson","letter","level","liar","liberty","library","license","life","lift","light","like","limb","limit","link","lion","liquid","list","little","live","lizard","load","loan","lobster","local","lock","logic","lonely","long","loop","lottery","loud","lounge","love","loyal","lucky","luggage","lumber","lunar","lunch","luxury","lyrics","machine","mad","magic","magnet","maid","mail","main","major","make","mammal","man","manage","mandate","mango","mansion","manual","maple","marble","march","margin","marine","market","marriage","mask","mass","master","match","material","math","matrix","matter","maximum","maze","meadow","mean","measure","meat","mechanic","medal","media","melody","melt","member","memory","mention","menu","mercy","merge","merit","merry","mesh","message","metal","method","middle","midnight","milk","million","mimic","mind","minimum","minor","minute","miracle","mirror","misery","miss","mistake","mix","mixed","mixture","mobile","model","modify","mom","moment","monitor","monkey","monster","month","moon","moral","more","morning","mosquito","mother","motion","motor","mountain","mouse","move","movie","much","muffin","mule","multiply","muscle","museum","mushroom","music","must","mutual","myself","mystery","myth","naive","name","napkin","narrow","nasty","nation","nature","near","neck","need","negative","neglect","neither","nephew","nerve","nest","net","network","neutral","never","news","next","nice","night","noble","noise","nominee","noodle","normal","north","nose","notable","note","nothing","notice","novel","now","nuclear","number","nurse","nut","oak","obey","object","oblige","obscure","observe","obtain","obvious","occur","ocean","october","odor","off","offer","office","often","oil","okay","old","olive","olympic","omit","once","one","onion","online","only","open","opera","opinion","oppose","option","orange","orbit","orchard","order","ordinary","organ","orient","original","orphan","ostrich","other","outdoor","outer","output","outside","oval","oven","over","own","owner","oxygen","oyster","ozone","pact","paddle","page","pair","palace","palm","panda","panel","panic","panther","paper","parade","parent","park","parrot","party","pass","patch","path","patient","patrol","pattern","pause","pave","payment","peace","peanut","pear","peasant","pelican","pen","penalty","pencil","people","pepper","perfect","permit","person","pet","phone","photo","phrase","physical","piano","picnic","picture","piece","pig","pigeon","pill","pilot","pink","pioneer","pipe","pistol","pitch","pizza","place","planet","plastic","plate","play","please","pledge","pluck","plug","plunge","poem","poet","point","polar","pole","police","pond","pony","pool","popular","portion","position","possible","post","potato","pottery","poverty","powder","power","practice","praise","predict","prefer","prepare","present","pretty","prevent","price","pride","primary","print","priority","prison","private","prize","problem","process","produce","profit","program","project","promote","proof","property","prosper","protect","proud","provide","public","pudding","pull","pulp","pulse","pumpkin","punch","pupil","puppy","purchase","purity","purpose","purse","push","put","puzzle","pyramid","quality","quantum","quarter","question","quick","quit","quiz","quote","rabbit","raccoon","race","rack","radar","radio","rail","rain","raise","rally","ramp","ranch","random","range","rapid","rare","rate","rather","raven","raw","razor","ready","real","reason","rebel","rebuild","recall","receive","recipe","record","recycle","reduce","reflect","reform","refuse","region","regret","regular","reject","relax","release","relief","rely","remain","remember","remind","remove","render","renew","rent","reopen","repair","repeat","replace","report","require","rescue","resemble","resist","resource","response","result","retire","retreat","return","reunion","reveal","review","reward","rhythm","rib","ribbon","rice","rich","ride","ridge","rifle","right","rigid","ring","riot","ripple","risk","ritual","rival","river","road","roast","robot","robust","rocket","romance","roof","rookie","room","rose","rotate","rough","round","route","royal","rubber","rude","rug","rule","run","runway","rural","sad","saddle","sadness","safe","sail","salad","salmon","salon","salt","salute","same","sample","sand","satisfy","satoshi","sauce","sausage","save","say","scale","scan","scare","scatter","scene","scheme","school","science","scissors","scorpion","scout","scrap","screen","script","scrub","sea","search","season","seat","second","secret","section","security","seed","seek","segment","select","sell","seminar","senior","sense","sentence","series","service","session","settle","setup","seven","shadow","shaft","shallow","share","shed","shell","sheriff","shield","shift","shine","ship","shiver","shock","shoe","shoot","shop","short","shoulder","shove","shrimp","shrug","shuffle","shy","sibling","sick","side","siege","sight","sign","silent","silk","silly","silver","similar","simple","since","sing","siren","sister","situate","six","size","skate","sketch","ski","skill","skin","skirt","skull","slab","slam","sleep","slender","slice","slide","slight","slim","slogan","slot","slow","slush","small","smart","smile","smoke","smooth","snack","snake","snap","sniff","snow","soap","soccer","social","sock","soda","soft","solar","soldier","solid","solution","solve","someone","song","soon","sorry","sort","soul","sound","soup","source","south","space","spare","spatial","spawn","speak","special","speed","spell","spend","sphere","spice","spider","spike","spin","spirit","split","spoil","sponsor","spoon","sport","spot","spray","spread","spring","spy","square","squeeze","squirrel","stable","stadium","staff","stage","stairs","stamp","stand","start","state","stay","steak","steel","stem","step","stereo","stick","still","sting","stock","stomach","stone","stool","story","stove","strategy","street","strike","strong","struggle","student","stuff","stumble","style","subject","submit","subway","success","such","sudden","suffer","sugar","suggest","suit","summer","sun","sunny","sunset","super","supply","supreme","sure","surface","surge","surprise","surround","survey","suspect","sustain","swallow","swamp","swap","swarm","swear","sweet","swift","swim","swing","switch","sword","symbol","symptom","syrup","system","table","tackle","tag","tail","talent","talk","tank","tape","target","task","taste","tattoo","taxi","teach","team","tell","ten","tenant","tennis","tent","term","test","text","thank","that","theme","then","theory","there","they","thing","this","thought","three","thrive","throw","thumb","thunder","ticket","tide","tiger","tilt","timber","time","tiny","tip","tired","tissue","title","toast","tobacco","today","toddler","toe","together","toilet","token","tomato","tomorrow","tone","tongue","tonight","tool","tooth","top","topic","topple","torch","tornado","tortoise","toss","total","tourist","toward","tower","town","toy","track","trade","traffic","tragic","train","transfer","trap","trash","travel","tray","treat","tree","trend","trial","tribe","trick","trigger","trim","trip","trophy","trouble","truck","true","truly","trumpet","trust","truth","try","tube","tuition","tumble","tuna","tunnel","turkey","turn","turtle","twelve","twenty","twice","twin","twist","two","type","typical","ugly","umbrella","unable","unaware","uncle","uncover","under","undo","unfair","unfold","unhappy","uniform","unique","unit","universe","unknown","unlock","until","unusual","unveil","update","upgrade","uphold","upon","upper","upset","urban","urge","usage","use","used","useful","useless","usual","utility","vacant","vacuum","vague","valid","valley","valve","van","vanish","vapor","various","vast","vault","vehicle","velvet","vendor","venture","venue","verb","verify","version","very","vessel","veteran","viable","vibrant","vicious","victory","video","view","village","vintage","violin","virtual","virus","visa","visit","visual","vital","vivid","vocal","voice","void","volcano","volume","vote","voyage","wage","wagon","wait","walk","wall","walnut","want","warfare","warm","warrior","wash","wasp","waste","water","wave","way","wealth","weapon","wear","weasel","weather","web","wedding","weekend","weird","welcome","west","wet","whale","what","wheat","wheel","when","where","whip","whisper","wide","width","wife","wild","will","win","window","wine","wing","wink","winner","winter","wire","wisdom","wise","wish","witness","wolf","woman","wonder","wood","wool","word","work","world","worry","worth","wrap","wreck","wrestle","wrist","write","wrong","yard","year","yellow","you","young","youth","zebra","zero","zone","zoo"];async function digest$1(e){return new Uint8Array(await crypto.subtle.digest("SHA-256",e))}async function toSeed(e,t){const r=e.join(" "),n=`mnemonic${t}`.normalize("NFKD");return deriveKey(HashAlgorithm.Sha512,r,n,2048,64)}function legacy1(e,t){const r=convertRadix(e.map((e=>t.indexOf(e.toLowerCase()))),t.length,256,33),n=r[r.length-1],o=new Uint8Array(r.length-1);for(let i=0;i>>1^(1&t?178:0)}return 255^t}function convertRadix(e,t,r,n){let o=new BigNumber$1(0);for(const a of e)o=o.times(t),o=o.plus(a);const i=new Uint8Array(n);for(let a=n-1;a>=0;a-=1){const e=o.dividedToIntegerBy(r),t=o.modulo(r);o=e,i[a]=t.toNumber()}return i}function bytesToBits(e){const t=[];t.fill(!1,0,8*e.length);for(let r=0;rbip39Words[binaryToByte(e)]));return new e({words:i})}static fromWords(t){return new e({words:t})._validate()}toPrivateKey(e=""){return this.toEd25519PrivateKey(e)}async toEd25519PrivateKey(e="",t=HEDERA_PATH){let{keyData:r,chainCode:n}=await this._toKeyData(e,ED25519_SEED_TEXT);for(const i of t)({keyData:r,chainCode:n}=await derive(r,n,i));const o=nacl.sign.keyPair.fromSeed(r);if(null==CACHE$1.privateKeyConstructor)throw new Error("PrivateKey not found in cache");return CACHE$1.privateKeyConstructor(new Ed25519PrivateKey(o,n))}async toStandardEd25519PrivateKey(t="",r){const n=await e.toSeed(this.words,t);let o=await PrivateKey$1.fromSeedED25519(n);r=null==r?0:r;for(const e of[44,3030,0,0,r])o=await o.derive(e);return o}async toEcdsaPrivateKey(e="",t=HEDERA_PATH){let{keyData:r,chainCode:n}=await this._toKeyData(e,ECDSA_SEED_TEXT);for(const o of t)({keyData:r,chainCode:n}=await derive$1(r,n,o));if(null==CACHE$1.privateKeyConstructor)throw new Error("PrivateKey not found in cache");return CACHE$1.privateKeyConstructor(new EcdsaPrivateKey(fromBytes(r),n))}async toStandardECDSAsecp256k1PrivateKey(t="",r){const n=await e.toSeed(this.words,t);let o=await PrivateKey$1.fromSeedECDSAsecp256k1(n);r=null==r?0:r;for(const e of[toHardenedIndex(44),toHardenedIndex(3030),toHardenedIndex(0),0,r])o=await o.derive(e);return o}static async toSeed(e,t){return await toSeed(e,t)}async _toKeyData(e,t){const r=await toSeed(this.words,e),n=await hash$3(HashAlgorithm.Sha512,t,r);return{keyData:n.subarray(0,32),chainCode:n.subarray(32)}}static async fromString(t){return e.fromWords(t.split(/\s|,/))}async _validate(){if(22===this.words.length){const e=this.words.reduce(((e,t,r)=>legacyWords.includes(t.toLowerCase())?e:[...e,r]),[]);if(e.length>0)throw new BadMnemonicError(this,BadMnemonicReason.UnknownWords,e);const[t,r]=legacy1(this.words,legacyWords);if(r!==crc8(t))throw new BadMnemonicError(this,BadMnemonicReason.ChecksumMismatch,[])}else{if(12!==this.words.length&&24!==this.words.length)throw new BadMnemonicError(this,BadMnemonicReason.BadLength,[]);const e=this.words.reduce(((e,t,r)=>bip39Words.includes(t)?e:[...e,r]),[]);if(e.length>0)throw new BadMnemonicError(this,BadMnemonicReason.UnknownWords,e);const t=this.words.map((e=>bip39Words.indexOf(e).toString(2).padStart(11,"0"))).join(""),r=32*Math.floor(t.length/33),n=t.slice(0,r),o=t.slice(r),i=n.match(/(.{1,8})/g).map(binaryToByte);if(await deriveChecksumBits(Uint8Array.from(i))!==o)throw new BadMnemonicError(this,BadMnemonicReason.ChecksumMismatch,[])}return this}async toLegacyPrivateKey(){let e;if(22===this.words.length?[e]=legacy1(this.words,legacyWords):e=await legacy2(this.words,bip39Words),null==CACHE$1.privateKeyFromBytes)throw new Error("PrivateKey not found in cache");return CACHE$1.privateKeyFromBytes(e)}toString(){return this.words.join(" ")}};function binaryToByte(e){return parseInt(e,2)}function bytesToBinary(e){return e.map((e=>e.toString(2).padStart(8,"0"))).join("")}async function deriveChecksumBits(e){const t=8*e.length/32,r=await digest$1(e);return bytesToBinary(Array.from(r)).slice(0,t)}function arrayEqual(e,t){if(e===t)return!0;if(e.byteLength!==t.byteLength)return!1;const r=new DataView(e.buffer,e.byteOffset,e.byteLength),n=new DataView(t.buffer,t.byteOffset,t.byteLength);let o=e.byteLength;for(;o--;)if(r.getUint8(o)!==n.getUint8(o))return!1;return!0}class Cache{constructor(){this._timeDrift=0,this._contractId=null,this._keyList=null,this._thresholdKey=null,this._publicKeyED25519=null,this._publicKeyECDSA=null,this._privateKeyConstructor=null,this._mnemonicFromString=null,this._accountIdConstructor=null,this._delegateContractId=null,this._evmAddress=null,this._ethereumTransactionDataLegacyFromBytes=null,this._ethereumTransactionDataEip1559FromBytes=null,this._ethereumTransactionDataEip2930FromBytes=null,this._transactionReceiptQueryConstructor=null,this._transactionRecordQueryConstructor=null}setTimeDrift(e){this._timeDrift=e}get timeDrift(){if(null==this._timeDrift)throw new Error("Cache.timeDrift was used before it was set");return this._timeDrift}setContractId(e){this._contractId=e}get contractId(){if(null==this._contractId)throw new Error("Cache.contractId was used before it was set");return this._contractId}setKeyList(e){this._keyList=e}get keyList(){if(null==this._keyList)throw new Error("Cache.keyList was used before it was set");return this._keyList}setThresholdKey(e){this._thresholdKey=e}get thresholdKey(){if(null==this._thresholdKey)throw new Error("Cache.thresholdKey was used before it was set");return this._thresholdKey}setPublicKeyED25519(e){this._publicKeyED25519=e}get publicKeyED25519(){if(null==this._publicKeyED25519)throw new Error("Cache.publicKeyED25519 was used before it was set");return this._publicKeyED25519}setPublicKeyECDSA(e){this._publicKeyECDSA=e}get publicKeyECDSA(){if(null==this._publicKeyECDSA)throw new Error("Cache.publicKeyECDSA was used before it was set");return this._publicKeyECDSA}setPrivateKeyConstructor(e){this._privateKeyConstructor=e}get privateKeyConstructor(){if(null==this._privateKeyConstructor)throw new Error("Cache.privateKeyConstructor was used before it was set");return this._privateKeyConstructor}setMnemonicFromString(e){this._mnemonicFromString=e}get mnemonicFromString(){if(null==this._mnemonicFromString)throw new Error("Cache.mnemonicFromString was used before it was set");return this.mnemonicFromString}setAccountIdConstructor(e){this._accountIdConstructor=e}get accountIdConstructor(){if(null==this._accountIdConstructor)throw new Error("Cache.accountIdConstructor was used before it was set");return this._accountIdConstructor}setDelegateContractId(e){this._delegateContractId=e}get delegateContractId(){if(null==this._delegateContractId)throw new Error("Cache.delegateContractId was used before it was set");return this._delegateContractId}setEvmAddress(e){this._evmAddress=e}get evmAddress(){if(null==this._evmAddress)throw new Error("Cache.evmAddress was used before it was set");return this._evmAddress}setEthereumTransactionDataLegacyFromBytes(e){this._ethereumTransactionDataLegacyFromBytes=e}get ethereumTransactionDataLegacyFromBytes(){if(null==this._ethereumTransactionDataLegacyFromBytes)throw new Error("Cache.ethereumTransactionDataLegacyFromBytes was used before it was set");return this._ethereumTransactionDataLegacyFromBytes}setEthereumTransactionDataEip1559FromBytes(e){this._ethereumTransactionDataEip1559FromBytes=e}get ethereumTransactionDataEip1559FromBytes(){if(null==this._ethereumTransactionDataEip1559FromBytes)throw new Error("Cache.ethereumTransactionDataEip1559FromBytes was used before it was set");return this._ethereumTransactionDataEip1559FromBytes}setEthereumTransactionDataEip2930FromBytes(e){this._ethereumTransactionDataEip2930FromBytes=e}get ethereumTransactionDataEip2930FromBytes(){if(null==this._ethereumTransactionDataEip2930FromBytes)throw new Error("Cache.ethereumTransactionDataEip2930FromBytes was used before it was set");return this._ethereumTransactionDataEip2930FromBytes}setTransactionReceiptQueryConstructor(e){this._transactionReceiptQueryConstructor=e}get transactionReceiptQueryConstructor(){if(null==this._transactionReceiptQueryConstructor)throw new Error("Cache.transactionReceiptQueryConstructor was used before it was set");return this._transactionReceiptQueryConstructor}setTransactionRecordQueryConstructor(e){this._transactionRecordQueryConstructor=e}get transactionRecordQueryConstructor(){if(null==this._transactionRecordQueryConstructor)throw new Error("Cache.transactionRecordQueryConstructor was used before it was set");return this._transactionRecordQueryConstructor}setAddressBookQueryConstructor(e){this._addressBookQueryConstructor=e}get addressBookQueryConstructor(){if(null==this._addressBookQueryConstructor)throw new Error("Cache.addressBookQueryConstructor was used before it was set");return this._addressBookQueryConstructor}}const CACHE=new Cache;class Key{_toProtobufKey(){throw new Error("not implemented")}static _fromProtobufKey(e){return null!=e.contractID?CACHE.contractId(e.contractID):null!=e.delegatableContractId?CACHE.delegateContractId(e.delegatableContractId):null!=e.ed25519&&e.ed25519.byteLength>0?CACHE.publicKeyED25519(e.ed25519):null!=e.ECDSASecp256k1&&e.ECDSASecp256k1.byteLength>0?CACHE.publicKeyECDSA(e.ECDSASecp256k1):null!=e.thresholdKey&&null!=e.thresholdKey.threshold?CACHE.thresholdKey(e.thresholdKey):null!=e.keyList?CACHE.keyList(e.keyList):null}}class PublicKey extends Key{constructor(e){super(),this._key=e}static fromBytes(e){return new PublicKey(PublicKey$1.fromBytes(e))}static fromBytesED25519(e){return new PublicKey(PublicKey$1.fromBytesED25519(e))}static fromBytesECDSA(e){return new PublicKey(PublicKey$1.fromBytesECDSA(e))}static fromString(e){return new PublicKey(PublicKey$1.fromString(e))}static fromStringECDSA(e){return new PublicKey(PublicKey$1.fromStringECDSA(e))}static fromStringED25519(e){return new PublicKey(PublicKey$1.fromStringED25519(e))}verify(e,t){return this._key.verify(e,t)}verifyTransaction(e){e._requireFrozen(),e.isFrozen()||e.freeze();for(const t of e._signedTransactions.list)if(null!=t.sigMap&&null!=t.sigMap.sigPair){let e=!1;for(const r of t.sigMap.sigPair){if(arrayEqual(r.pubKeyPrefix,this.toBytesRaw())){e=!0;const n=t.bodyBytes;let o=null;if(null!=r.ed25519?o=r.ed25519:null!=r.ECDSASecp256k1&&(o=r.ECDSASecp256k1),null==o)continue;if(!this.verify(n,o))return!1}}if(!e)return!1}return!0}toBytes(){return this._key.toBytes()}toBytesDer(){return this._key.toBytesDer()}toBytesRaw(){return this._key.toBytesRaw()}toEthereumAddress(){return this._key.toEthereumAddress()}toEvmAddress(){return this._key.toEthereumAddress()}toString(){return this._key.toString()}toStringDer(){return this._key.toStringDer()}toStringRaw(){return this._key.toStringRaw()}equals(e){return this._key.equals(e._key)}_toProtobufKey(){switch(this._key._type){case"ED25519":return{ed25519:this._key.toBytesRaw()};case"secp256k1":return{ECDSASecp256k1:this._key.toBytesRaw()};default:throw new Error(`unrecognized key type ${this._key._type}`)}}_toProtobufSignature(e){switch(this._key._type){case"ED25519":return{pubKeyPrefix:this._key.toBytesRaw(),ed25519:e};case"secp256k1":return{pubKeyPrefix:this._key.toBytesRaw(),ECDSASecp256k1:e};default:throw new Error(`unrecognized key type ${this._key._type}`)}}toAccountId(e,t){return CACHE.accountIdConstructor(e,t,this)}static unusableKey(){return PublicKey.fromStringED25519("0000000000000000000000000000000000000000000000000000000000000000")}}CACHE.setPublicKeyED25519((e=>PublicKey.fromBytesED25519(e))),CACHE.setPublicKeyECDSA((e=>PublicKey.fromBytesECDSA(e)));const version$b="logger/5.7.0";let _permanentCensorErrors=!1,_censorErrors=!1;const LogLevels={debug:1,default:2,info:2,warning:3,error:4,off:5};let _logLevel=LogLevels.default,_globalLogger=null;function _checkNormalize(){try{const e=[];if(["NFD","NFC","NFKD","NFKC"].forEach((t=>{try{if("test"!=="test".normalize(t))throw new Error("bad normalize")}catch(r){e.push(t)}})),e.length)throw new Error("missing "+e.join(", "));if(String.fromCharCode(233).normalize("NFD")!==String.fromCharCode(101,769))throw new Error("broken implementation")}catch(e){return e.message}return null}const _normalizeError=_checkNormalize();var LogLevel$1,LogLevel2,ErrorCode,ErrorCode2;LogLevel2=LogLevel$1||(LogLevel$1={}),LogLevel2.DEBUG="DEBUG",LogLevel2.INFO="INFO",LogLevel2.WARNING="WARNING",LogLevel2.ERROR="ERROR",LogLevel2.OFF="OFF",ErrorCode2=ErrorCode||(ErrorCode={}),ErrorCode2.UNKNOWN_ERROR="UNKNOWN_ERROR",ErrorCode2.NOT_IMPLEMENTED="NOT_IMPLEMENTED",ErrorCode2.UNSUPPORTED_OPERATION="UNSUPPORTED_OPERATION",ErrorCode2.NETWORK_ERROR="NETWORK_ERROR",ErrorCode2.SERVER_ERROR="SERVER_ERROR",ErrorCode2.TIMEOUT="TIMEOUT",ErrorCode2.BUFFER_OVERRUN="BUFFER_OVERRUN",ErrorCode2.NUMERIC_FAULT="NUMERIC_FAULT",ErrorCode2.MISSING_NEW="MISSING_NEW",ErrorCode2.INVALID_ARGUMENT="INVALID_ARGUMENT",ErrorCode2.MISSING_ARGUMENT="MISSING_ARGUMENT",ErrorCode2.UNEXPECTED_ARGUMENT="UNEXPECTED_ARGUMENT",ErrorCode2.CALL_EXCEPTION="CALL_EXCEPTION",ErrorCode2.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",ErrorCode2.NONCE_EXPIRED="NONCE_EXPIRED",ErrorCode2.REPLACEMENT_UNDERPRICED="REPLACEMENT_UNDERPRICED",ErrorCode2.UNPREDICTABLE_GAS_LIMIT="UNPREDICTABLE_GAS_LIMIT",ErrorCode2.TRANSACTION_REPLACED="TRANSACTION_REPLACED",ErrorCode2.ACTION_REJECTED="ACTION_REJECTED";const HEX="0123456789abcdef";let Logger$1=class e{constructor(e){Object.defineProperty(this,"version",{enumerable:!0,value:e,writable:!1})}_log(e,t){const r=e.toLowerCase();null==LogLevels[r]&&this.throwArgumentError("invalid log level name","logLevel",e),_logLevel>LogLevels[r]||console.log.apply(console,t)}debug(...t){this._log(e.levels.DEBUG,t)}info(...t){this._log(e.levels.INFO,t)}warn(...t){this._log(e.levels.WARNING,t)}makeError(t,r,n){if(_censorErrors)return this.makeError("censored error",r,{});r||(r=e.errors.UNKNOWN_ERROR),n||(n={});const o=[];Object.keys(n).forEach((e=>{const t=n[e];try{if(t instanceof Uint8Array){let r="";for(let e=0;e>4],r+=HEX[15&t[e]];o.push(e+"=Uint8Array(0x"+r+")")}else o.push(e+"="+JSON.stringify(t))}catch(r){o.push(e+"="+JSON.stringify(n[e].toString()))}})),o.push(`code=${r}`),o.push(`version=${this.version}`);const i=t;let a="";switch(r){case ErrorCode.NUMERIC_FAULT:{a="NUMERIC_FAULT";const e=t;switch(e){case"overflow":case"underflow":case"division-by-zero":a+="-"+e;break;case"negative-power":case"negative-width":a+="-unsupported";break;case"unbound-bitwise-result":a+="-unbound-result"}break}case ErrorCode.CALL_EXCEPTION:case ErrorCode.INSUFFICIENT_FUNDS:case ErrorCode.MISSING_NEW:case ErrorCode.NONCE_EXPIRED:case ErrorCode.REPLACEMENT_UNDERPRICED:case ErrorCode.TRANSACTION_REPLACED:case ErrorCode.UNPREDICTABLE_GAS_LIMIT:a=r}a&&(t+=" [ See: https://links.ethers.org/v5-errors-"+a+" ]"),o.length&&(t+=" ("+o.join(", ")+")");const s=new Error(t);return s.reason=i,s.code=r,Object.keys(n).forEach((function(e){s[e]=n[e]})),s}throwError(e,t,r){throw this.makeError(e,t,r)}throwArgumentError(t,r,n){return this.throwError(t,e.errors.INVALID_ARGUMENT,{argument:r,value:n})}assert(e,t,r,n){e||this.throwError(t,r,n)}assertArgument(e,t,r,n){e||this.throwArgumentError(t,r,n)}checkNormalize(t){_normalizeError&&this.throwError("platform missing String.prototype.normalize",e.errors.UNSUPPORTED_OPERATION,{operation:"String.prototype.normalize",form:_normalizeError})}checkSafeUint53(t,r){"number"==typeof t&&(null==r&&(r="value not safe"),(t<0||t>=9007199254740991)&&this.throwError(r,e.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"out-of-safe-range",value:t}),t%1&&this.throwError(r,e.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"non-integer",value:t}))}checkArgumentCount(t,r,n){n=n?": "+n:"",tr&&this.throwError("too many arguments"+n,e.errors.UNEXPECTED_ARGUMENT,{count:t,expectedCount:r})}checkNew(t,r){t!==Object&&null!=t||this.throwError("missing new",e.errors.MISSING_NEW,{name:r.name})}checkAbstract(t,r){t===r?this.throwError("cannot instantiate abstract class "+JSON.stringify(r.name)+" directly; use a sub-class",e.errors.UNSUPPORTED_OPERATION,{name:t.name,operation:"new"}):t!==Object&&null!=t||this.throwError("missing new",e.errors.MISSING_NEW,{name:r.name})}static globalLogger(){return _globalLogger||(_globalLogger=new e(version$b)),_globalLogger}static setCensorship(t,r){if(!t&&r&&this.globalLogger().throwError("cannot permanently disable censorship",e.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"}),_permanentCensorErrors){if(!t)return;this.globalLogger().throwError("error censorship permanent",e.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"})}_censorErrors=!!t,_permanentCensorErrors=!!r}static setLogLevel(t){const r=LogLevels[t.toLowerCase()];null!=r?_logLevel=r:e.globalLogger().warn("invalid log level - "+t)}static from(t){return new e(t)}};Logger$1.errors=ErrorCode,Logger$1.levels=LogLevel$1;const version$a="bytes/5.7.0",logger$9=new Logger$1(version$a);function isHexable(e){return!!e.toHexString}function addSlice(e){return e.slice||(e.slice=function(){const t=Array.prototype.slice.call(arguments);return addSlice(new Uint8Array(Array.prototype.slice.apply(e,t)))}),e}function isBytesLike(e){return isHexString(e)&&!(e.length%2)||isBytes(e)}function isInteger(e){return"number"==typeof e&&e==e&&e%1==0}function isBytes(e){if(null==e)return!1;if(e.constructor===Uint8Array)return!0;if("string"==typeof e)return!1;if(!isInteger(e.length)||e.length<0)return!1;for(let t=0;t=256)return!1}return!0}function arrayify(e,t){if(t||(t={}),"number"==typeof e){logger$9.checkSafeUint53(e,"invalid arrayify value");const t=[];for(;e;)t.unshift(255&e),e=parseInt(String(e/256));return 0===t.length&&t.push(0),addSlice(new Uint8Array(t))}if(t.allowMissingPrefix&&"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),isHexable(e)&&(e=e.toHexString()),isHexString(e)){let r=e.substring(2);r.length%2&&("left"===t.hexPad?r="0"+r:"right"===t.hexPad?r+="0":logger$9.throwArgumentError("hex data is odd-length","value",e));const n=[];for(let e=0;earrayify(e))),r=t.reduce(((e,t)=>e+t.length),0),n=new Uint8Array(r);return t.reduce(((e,t)=>(n.set(t,e),e+t.length)),0),addSlice(n)}function zeroPad(e,t){(e=arrayify(e)).length>t&&logger$9.throwArgumentError("value out of range","value",arguments[0]);const r=new Uint8Array(t);return r.set(e,t-e.length),addSlice(r)}function isHexString(e,t){return!("string"!=typeof e||!e.match(/^0x[0-9A-Fa-f]*$/))&&(!t||e.length===2+2*t)}const HexCharacters="0123456789abcdef";function hexlify(e,t){if(t||(t={}),"number"==typeof e){logger$9.checkSafeUint53(e,"invalid hexlify value");let t="";for(;e;)t=HexCharacters[15&e]+t,e=Math.floor(e/16);return t.length?(t.length%2&&(t="0"+t),"0x"+t):"0x00"}if("bigint"==typeof e)return(e=e.toString(16)).length%2?"0x0"+e:"0x"+e;if(t.allowMissingPrefix&&"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),isHexable(e))return e.toHexString();if(isHexString(e))return e.length%2&&("left"===t.hexPad?e="0x0"+e.substring(2):"right"===t.hexPad?e+="0":logger$9.throwArgumentError("hex data is odd-length","value",e)),e.toLowerCase();if(isBytes(e)){let t="0x";for(let r=0;r>4]+HexCharacters[15&n]}return t}return logger$9.throwArgumentError("invalid hexlify value","value",e)}function hexDataLength(e){if("string"!=typeof e)e=hexlify(e);else if(!isHexString(e)||e.length%2)return null;return(e.length-2)/2}function hexDataSlice(e,t,r){return"string"!=typeof e?e=hexlify(e):(!isHexString(e)||e.length%2)&&logger$9.throwArgumentError("invalid hexData","value",e),t=2+2*t,"0x"+e.substring(t)}function hexConcat(e){let t="0x";return e.forEach((e=>{t+=hexlify(e).substring(2)})),t}function hexZeroPad(e,t){for("string"!=typeof e?e=hexlify(e):isHexString(e)||logger$9.throwArgumentError("invalid hex string","value",e),e.length>2*t+2&&logger$9.throwArgumentError("value out of range","value",arguments[1]);e.length<2*t+2;)e="0x0"+e.substring(2);return e}function splitSignature(e){const t={r:"0x",s:"0x",_vs:"0x",recoveryParam:0,v:0,yParityAndS:"0x",compact:"0x"};if(isBytesLike(e)){let r=arrayify(e);64===r.length?(t.v=27+(r[32]>>7),r[32]&=127,t.r=hexlify(r.slice(0,32)),t.s=hexlify(r.slice(32,64))):65===r.length?(t.r=hexlify(r.slice(0,32)),t.s=hexlify(r.slice(32,64)),t.v=r[64]):logger$9.throwArgumentError("invalid signature string","signature",e),t.v<27&&(0===t.v||1===t.v?t.v+=27:logger$9.throwArgumentError("signature invalid v byte","signature",e)),t.recoveryParam=1-t.v%2,t.recoveryParam&&(r[32]|=128),t._vs=hexlify(r.slice(32,64))}else{if(t.r=e.r,t.s=e.s,t.v=e.v,t.recoveryParam=e.recoveryParam,t._vs=e._vs,null!=t._vs){const r=zeroPad(arrayify(t._vs),32);t._vs=hexlify(r);const n=r[0]>=128?1:0;null==t.recoveryParam?t.recoveryParam=n:t.recoveryParam!==n&&logger$9.throwArgumentError("signature recoveryParam mismatch _vs","signature",e),r[0]&=127;const o=hexlify(r);null==t.s?t.s=o:t.s!==o&&logger$9.throwArgumentError("signature v mismatch _vs","signature",e)}if(null==t.recoveryParam)null==t.v?logger$9.throwArgumentError("signature missing v and recoveryParam","signature",e):0===t.v||1===t.v?t.recoveryParam=t.v:t.recoveryParam=1-t.v%2;else if(null==t.v)t.v=27+t.recoveryParam;else{const r=0===t.v||1===t.v?t.v:1-t.v%2;t.recoveryParam!==r&&logger$9.throwArgumentError("signature recoveryParam mismatch v","signature",e)}null!=t.r&&isHexString(t.r)?t.r=hexZeroPad(t.r,32):logger$9.throwArgumentError("signature missing or invalid r","signature",e),null!=t.s&&isHexString(t.s)?t.s=hexZeroPad(t.s,32):logger$9.throwArgumentError("signature missing or invalid s","signature",e);const r=arrayify(t.s);r[0]>=128&&logger$9.throwArgumentError("signature s out of range","signature",e),t.recoveryParam&&(r[0]|=128);const n=hexlify(r);t._vs&&(isHexString(t._vs)||logger$9.throwArgumentError("signature invalid _vs","signature",e),t._vs=hexZeroPad(t._vs,32)),null==t._vs?t._vs=n:t._vs!==n&&logger$9.throwArgumentError("signature _vs mismatch v and s","signature",e)}return t.yParityAndS=t._vs,t.compact=t.r+t.yParityAndS.substring(2),t}const regex$2=/"^(0|(?:[1-9]\\d*))\\.(0|(?:[1-9]\\d*))\\.(0|(?:[1-9]\\d*))(?:-([a-z]{5}))?$/,ENTITY_ID_REGEX=/^(\d+)(?:\.(\d+)\.([a-fA-F0-9]+))?(?:-([a-z]{5}))?$/;function constructor(e,t,r){if(null==t&&null!=r||null!=t&&null==r)throw new Error("invalid entity ID");const[n,o,i]="number"==typeof e||Long$1.isLong(e)?[null!=r?Long$1.fromValue(e):Long$1.ZERO,null!=t?Long$1.fromValue(t):Long$1.ZERO,null!=r?Long$1.fromValue(r):Long$1.fromValue(e)]:[null!=e.shard?Long$1.fromValue(e.shard):Long$1.ZERO,null!=e.realm?Long$1.fromValue(e.realm):Long$1.ZERO,Long$1.fromValue(e.num)];if(n.isNegative()||o.isNegative()||i.isNegative())throw new Error("negative numbers are not allowed in IDs");return{shard:n,realm:o,num:i}}function compare$1(e,t){let r=e[0].compare(t[0]);return 0!=r?r:(r=e[1].compare(t[1]),0!=r?r:e[2].compare(t[2]))}function fromStringSplitter(e){const t=ENTITY_ID_REGEX.exec(e);if(null==t)throw new Error(`failed to parse entity id: ${e}`);return null==t[2]&&null==t[3]?{shard:"0",realm:"0",numOrHex:t[1],checksum:t[4]}:{shard:t[1],realm:t[2],numOrHex:t[3],checksum:t[4]}}function fromString$4(e){const t=fromStringSplitter(e);if(Number.isNaN(t.shard)||Number.isNaN(t.realm)||Number.isNaN(t.numOrHex))throw new Error("invalid format for entity ID");return{shard:null!=t.shard?Long$1.fromString(t.shard):Long$1.ZERO,realm:null!=t.realm?Long$1.fromString(t.realm):Long$1.ZERO,num:Long$1.fromString(t.numOrHex),checksum:t.checksum}}function fromSolidityAddress(e){const t=e.startsWith("0x")?decode$a(e.slice(2)):decode$a(e);if(20!==t.length)throw new Error(`Invalid hex encoded solidity address length:\n expected length 40, got length ${e.length}`);return[Long$1.fromBytesBE([0,0,0,0,...t.slice(0,4)]),Long$1.fromBytesBE(Array.from(t.slice(4,12))),Long$1.fromBytesBE(Array.from(t.slice(12,20)))]}function toSolidityAddress(e){const t=new Uint8Array(20),r=safeView(t),[n,o,i]=e;return r.setUint32(0,convertToNumber(n)),r.setUint32(8,convertToNumber(o)),r.setUint32(16,convertToNumber(i)),encode$9(t)}function _parseAddress(e,t){let r=regex$2.exec(t);if(null===r){return{status:0}}let n=[Long$1.fromString(r[1]),Long$1.fromString(r[2]),Long$1.fromString(r[3])],o=`${n[0].toString()}.${n[1].toString()}.${n[2].toString()}`,i=_checksum(e,o);return{status:void 0===r[4]?2:i==r[4]?3:1,num1:n[0],num2:n[1],num3:n[2],givenChecksum:r[4],correctChecksum:i,noChecksumFormat:o,withChecksumFormat:`${o}-${i}`}}function _checksum(e,t){let r="",n=[],o=0,i=0,a=0,s=0,c=0;const u=11881376,l="a".charCodeAt(0);let d=new Uint8Array(e.length+6);d.set(e,0),d.set([0,0,0,0,0,0],e.length);for(let f=0;f0?PublicKey.fromBytes(r.ed25519):null!=r.ECDSASecp256k1&&r.ECDSASecp256k1.byteLength>0?PublicKey.fromBytes(r.ECDSASecp256k1):null}function aliasToEvmAddress(e){const t=base32$2.decode(e);if(!t)return null;try{throw proto_1.Key.decode(t),new Error("The alias is created with ed25519 or ECDSASecp256k1 account. Please use aliasToPublicKey!")}catch(e2){return toHexString(t)}}function publicKeyToAlias(e){if("string"==typeof e&&(e.startsWith("0x")&&42==e.length||40==e.length)){e.startsWith("0x")||(e=`0x${e}`);const t=arrayify(e);return t?base32$2.encode(t):null}const t="string"==typeof e?PublicKey.fromString(e):e;let r=t.toStringRaw(),n="";"secp256k1"===t._key._type&&(n="0x3A21"),"ED25519"===t._key._type&&(n="0x1220"),r.startsWith("0x")||(r=`0x${r}`);const o=appendBuffer(arrayify(n),arrayify(r));return base32$2.encode(o)}const EntityIdHelper=Object.freeze(Object.defineProperty({__proto__:null,_checksum:_checksum,_parseAddress:_parseAddress,aliasToEvmAddress:aliasToEvmAddress,aliasToPublicKey:aliasToPublicKey,compare:compare$1,constructor:constructor,fromSolidityAddress:fromSolidityAddress,fromString:fromString$4,fromStringSplitter:fromStringSplitter,publicKeyToAlias:publicKeyToAlias,toSolidityAddress:toSolidityAddress,toStringWithChecksum:toStringWithChecksum,validateChecksum:validateChecksum},Symbol.toStringTag,{value:"Module"})),HARDENED_BIT=2147483648;class Mnemonic{constructor(e){this._mnemonic=e}static async generate(){return new Mnemonic(await Mnemonic$1._generate(24))}static async generate12(){return new Mnemonic(await Mnemonic$1._generate(12))}static async fromWords(e){return new Mnemonic(await Mnemonic$1.fromWords(e))}async toPrivateKey(e=""){return CACHE.privateKeyConstructor(await this._mnemonic.toPrivateKey(e))}async toEd25519PrivateKey(e="",t){return CACHE.privateKeyConstructor(await this._mnemonic.toEd25519PrivateKey(e,t))}async toStandardEd25519PrivateKey(e="",t){return CACHE.privateKeyConstructor(await this._mnemonic.toStandardEd25519PrivateKey(e,t))}async toEcdsaPrivateKey(e="",t){return CACHE.privateKeyConstructor(await this._mnemonic.toEcdsaPrivateKey(e,t))}calculateDerivationPathValues(e){const t=/m\/(\d+'?)\/(\d+'?)\/(\d+'?)\/(\d+'?)\/(\d+'?)/.exec(e),r=new Array(5);if(t)for(let n=1;n<=5;n++){let e=t[n];e.endsWith("'")?(e=e.substring(0,e.length-1),r[n-1]=parseInt(e,10)|HARDENED_BIT):r[n-1]=parseInt(e,10)}return r}async toStandardECDSAsecp256k1PrivateKeyImpl(e,t){return await this.toEcdsaPrivateKey(e,t)}async toStandardECDSAsecp256k1PrivateKey(e="",t){return CACHE.privateKeyConstructor(await this._mnemonic.toStandardECDSAsecp256k1PrivateKey(e,t))}async toStandardECDSAsecp256k1PrivateKeyCustomDerivationPath(e="",t){const r=this.calculateDerivationPathValues(t);return await this.toStandardECDSAsecp256k1PrivateKeyImpl(e,r)}static async fromString(e){return new Mnemonic(await Mnemonic$1.fromString(e))}async toLegacyPrivateKey(){return CACHE.privateKeyConstructor(await this._mnemonic.toLegacyPrivateKey())}async toSeed(e){return await Mnemonic$1.toSeed(this._mnemonic.words,e)}toString(){return this._mnemonic.toString()}}class ObjectMap{constructor(e){this._map=new Map,this.__map=new Map,this._fromString=e}get(e){const t="string"==typeof e?e:e.toString(),r=this._map.get(t);return null!=r?r:null}_set(e,t){const r="string"==typeof e?e:e.toString();this._map.set(r,t),this.__map.set(e,t)}values(){return this._map.values()}get size(){return this._map.size}keys(){return this.__map.keys()}[Symbol.iterator](){return this.__map[Symbol.iterator]()}toString(){const e={};for(const[t,r]of this._map)e[t]=r;return JSON.stringify(e)}toJSON(){const e={};return this._map.forEach(((t,r)=>{e[r]=t})),e}}class EvmAddress extends Key{constructor(e){super(),this._bytes=e}static fromString(e){return new EvmAddress(decode$a(e))}static fromBytes(e){return new EvmAddress(e)}toBytes(){return this._bytes}toString(){return encode$9(this._bytes)}equals(e){return arrayEqual$2(this._bytes,e._bytes)}}const global$1=globalThis||self;function bind$1(e,t){return function(){return e.apply(t,arguments)}}const{toString:toString$3}=Object.prototype,{getPrototypeOf:getPrototypeOf}=Object,kindOf=(e=>t=>{const r=toString$3.call(t);return e[r]||(e[r]=r.slice(8,-1).toLowerCase())})(Object.create(null)),kindOfTest=e=>(e=e.toLowerCase(),t=>kindOf(t)===e),typeOfTest=e=>t=>typeof t===e,{isArray:isArray$2}=Array,isUndefined=typeOfTest("undefined");function isBuffer(e){return null!==e&&!isUndefined(e)&&null!==e.constructor&&!isUndefined(e.constructor)&&isFunction$1(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const isArrayBuffer=kindOfTest("ArrayBuffer");function isArrayBufferView(e){let t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&isArrayBuffer(e.buffer),t}const isString$1=typeOfTest("string"),isFunction$1=typeOfTest("function"),isNumber$1=typeOfTest("number"),isObject$1=e=>null!==e&&"object"==typeof e,isBoolean=e=>!0===e||!1===e,isPlainObject=e=>{if("object"!==kindOf(e))return!1;const t=getPrototypeOf(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||Symbol.toStringTag in e||Symbol.iterator in e)},isDate=kindOfTest("Date"),isFile=kindOfTest("File"),isBlob=kindOfTest("Blob"),isFileList=kindOfTest("FileList"),isStream=e=>isObject$1(e)&&isFunction$1(e.pipe),isFormData=e=>{let t;return e&&("function"==typeof FormData&&e instanceof FormData||isFunction$1(e.append)&&("formdata"===(t=kindOf(e))||"object"===t&&isFunction$1(e.toString)&&"[object FormData]"===e.toString()))},isURLSearchParams=kindOfTest("URLSearchParams"),[isReadableStream,isRequest,isResponse,isHeaders]=["ReadableStream","Request","Response","Headers"].map(kindOfTest),trim=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function forEach(e,t,{allOwnKeys:r=!1}={}){if(null==e)return;let n,o;if("object"!=typeof e&&(e=[e]),isArray$2(e))for(n=0,o=e.length;n0;)if(n=r[o],t===n.toLowerCase())return n;return null}const _global="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global$1,isContextDefined=e=>!isUndefined(e)&&e!==_global;function merge(){const{caseless:e}=isContextDefined(this)&&this||{},t={},r=(r,n)=>{const o=e&&findKey(t,n)||n;isPlainObject(t[o])&&isPlainObject(r)?t[o]=merge(t[o],r):isPlainObject(r)?t[o]=merge({},r):isArray$2(r)?t[o]=r.slice():t[o]=r};for(let n=0,o=arguments.length;n(forEach(t,((t,n)=>{r&&isFunction$1(t)?e[n]=bind$1(t,r):e[n]=t}),{allOwnKeys:n}),e),stripBOM=e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),inherits$6=(e,t,r,n)=>{e.prototype=Object.create(t.prototype,n),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),r&&Object.assign(e.prototype,r)},toFlatObject=(e,t,r,n)=>{let o,i,a;const s={};if(t=t||{},null==e)return t;do{for(o=Object.getOwnPropertyNames(e),i=o.length;i-- >0;)a=o[i],n&&!n(a,e,t)||s[a]||(t[a]=e[a],s[a]=!0);e=!1!==r&&getPrototypeOf(e)}while(e&&(!r||r(e,t))&&e!==Object.prototype);return t},endsWith=(e,t,r)=>{e=String(e),(void 0===r||r>e.length)&&(r=e.length),r-=t.length;const n=e.indexOf(t,r);return-1!==n&&n===r},toArray=e=>{if(!e)return null;if(isArray$2(e))return e;let t=e.length;if(!isNumber$1(t))return null;const r=new Array(t);for(;t-- >0;)r[t]=e[t];return r},isTypedArray=(e=>t=>e&&t instanceof e)("undefined"!=typeof Uint8Array&&getPrototypeOf(Uint8Array)),forEachEntry=(e,t)=>{const r=(e&&e[Symbol.iterator]).call(e);let n;for(;(n=r.next())&&!n.done;){const r=n.value;t.call(e,r[0],r[1])}},matchAll=(e,t)=>{let r;const n=[];for(;null!==(r=e.exec(t));)n.push(r);return n},isHTMLForm=kindOfTest("HTMLFormElement"),toCamelCase=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(e,t,r){return t.toUpperCase()+r})),hasOwnProperty=(({hasOwnProperty:e})=>(t,r)=>e.call(t,r))(Object.prototype),isRegExp=kindOfTest("RegExp"),reduceDescriptors=(e,t)=>{const r=Object.getOwnPropertyDescriptors(e),n={};forEach(r,((r,o)=>{let i;!1!==(i=t(r,o,e))&&(n[o]=i||r)})),Object.defineProperties(e,n)},freezeMethods=e=>{reduceDescriptors(e,((t,r)=>{if(isFunction$1(e)&&-1!==["arguments","caller","callee"].indexOf(r))return!1;const n=e[r];isFunction$1(n)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+r+"'")}))}))},toObjectSet=(e,t)=>{const r={},n=e=>{e.forEach((e=>{r[e]=!0}))};return isArray$2(e)?n(e):n(String(e).split(t)),r},noop$4=()=>{},toFiniteNumber=(e,t)=>null!=e&&Number.isFinite(e=+e)?e:t,ALPHA="abcdefghijklmnopqrstuvwxyz",DIGIT="0123456789",ALPHABET={DIGIT:DIGIT,ALPHA:ALPHA,ALPHA_DIGIT:ALPHA+ALPHA.toUpperCase()+DIGIT},generateString=(e=16,t=ALPHABET.ALPHA_DIGIT)=>{let r="";const{length:n}=t;for(;e--;)r+=t[Math.random()*n|0];return r};function isSpecCompliantForm(e){return!!(e&&isFunction$1(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])}const toJSONObject=e=>{const t=new Array(10),r=(e,n)=>{if(isObject$1(e)){if(t.indexOf(e)>=0)return;if(!("toJSON"in e)){t[n]=e;const o=isArray$2(e)?[]:{};return forEach(e,((e,t)=>{const i=r(e,n+1);!isUndefined(i)&&(o[t]=i)})),t[n]=void 0,o}}return e};return r(e,0)},isAsyncFn=kindOfTest("AsyncFunction"),isThenable=e=>e&&(isObject$1(e)||isFunction$1(e))&&isFunction$1(e.then)&&isFunction$1(e.catch),_setImmediate=(setImmediateSupported="function"==typeof setImmediate,postMessageSupported=isFunction$1(_global.postMessage),setImmediateSupported?setImmediate:postMessageSupported?(token2=`axios@${Math.random()}`,callbacks=[],_global.addEventListener("message",(({source:e,data:t})=>{e===_global&&t===token2&&callbacks.length&&callbacks.shift()()}),!1),e=>{callbacks.push(e),_global.postMessage(token2,"*")}):e=>setTimeout(e));var setImmediateSupported,postMessageSupported,token2,callbacks;const asap="undefined"!=typeof queueMicrotask?queueMicrotask.bind(_global):void 0!==process$1&&process$1.nextTick||_setImmediate,utils$s={isArray:isArray$2,isArrayBuffer:isArrayBuffer,isBuffer:isBuffer,isFormData:isFormData,isArrayBufferView:isArrayBufferView,isString:isString$1,isNumber:isNumber$1,isBoolean:isBoolean,isObject:isObject$1,isPlainObject:isPlainObject,isReadableStream:isReadableStream,isRequest:isRequest,isResponse:isResponse,isHeaders:isHeaders,isUndefined:isUndefined,isDate:isDate,isFile:isFile,isBlob:isBlob,isRegExp:isRegExp,isFunction:isFunction$1,isStream:isStream,isURLSearchParams:isURLSearchParams,isTypedArray:isTypedArray,isFileList:isFileList,forEach:forEach,merge:merge,extend:extend,trim:trim,stripBOM:stripBOM,inherits:inherits$6,toFlatObject:toFlatObject,kindOf:kindOf,kindOfTest:kindOfTest,endsWith:endsWith,toArray:toArray,forEachEntry:forEachEntry,matchAll:matchAll,isHTMLForm:isHTMLForm,hasOwnProperty:hasOwnProperty,hasOwnProp:hasOwnProperty,reduceDescriptors:reduceDescriptors,freezeMethods:freezeMethods,toObjectSet:toObjectSet,toCamelCase:toCamelCase,noop:noop$4,toFiniteNumber:toFiniteNumber,findKey:findKey,global:_global,isContextDefined:isContextDefined,ALPHABET:ALPHABET,generateString:generateString,isSpecCompliantForm:isSpecCompliantForm,toJSONObject:toJSONObject,isAsyncFn:isAsyncFn,isThenable:isThenable,setImmediate:_setImmediate,asap:asap};function AxiosError(e,t,r,n,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),r&&(this.config=r),n&&(this.request=n),o&&(this.response=o,this.status=o.status?o.status:null)}utils$s.inherits(AxiosError,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:utils$s.toJSONObject(this.config),code:this.code,status:this.status}}});const prototype$1=AxiosError.prototype,descriptors={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((e=>{descriptors[e]={value:e}})),Object.defineProperties(AxiosError,descriptors),Object.defineProperty(prototype$1,"isAxiosError",{value:!0}),AxiosError.from=(e,t,r,n,o,i)=>{const a=Object.create(prototype$1);return utils$s.toFlatObject(e,a,(function(e){return e!==Error.prototype}),(e=>"isAxiosError"!==e)),AxiosError.call(a,e.message,t,r,n,o),a.cause=e,a.name=e.name,i&&Object.assign(a,i),a};const httpAdapter=null;function isVisitable(e){return utils$s.isPlainObject(e)||utils$s.isArray(e)}function removeBrackets(e){return utils$s.endsWith(e,"[]")?e.slice(0,-2):e}function renderKey(e,t,r){return e?e.concat(t).map((function(e,t){return e=removeBrackets(e),!r&&t?"["+e+"]":e})).join(r?".":""):t}function isFlatArray(e){return utils$s.isArray(e)&&!e.some(isVisitable)}const predicates=utils$s.toFlatObject(utils$s,{},null,(function(e){return/^is[A-Z]/.test(e)}));function toFormData(e,t,r){if(!utils$s.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;const n=(r=utils$s.toFlatObject(r,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!utils$s.isUndefined(t[e])}))).metaTokens,o=r.visitor||u,i=r.dots,a=r.indexes,s=(r.Blob||"undefined"!=typeof Blob&&Blob)&&utils$s.isSpecCompliantForm(t);if(!utils$s.isFunction(o))throw new TypeError("visitor must be a function");function c(e){if(null===e)return"";if(utils$s.isDate(e))return e.toISOString();if(!s&&utils$s.isBlob(e))throw new AxiosError("Blob is not supported. Use a Buffer instead.");return utils$s.isArrayBuffer(e)||utils$s.isTypedArray(e)?s&&"function"==typeof Blob?new Blob([e]):Buffer$2.from(e):e}function u(e,r,o){let s=e;if(e&&!o&&"object"==typeof e)if(utils$s.endsWith(r,"{}"))r=n?r:r.slice(0,-2),e=JSON.stringify(e);else if(utils$s.isArray(e)&&isFlatArray(e)||(utils$s.isFileList(e)||utils$s.endsWith(r,"[]"))&&(s=utils$s.toArray(e)))return r=removeBrackets(r),s.forEach((function(e,n){!utils$s.isUndefined(e)&&null!==e&&t.append(!0===a?renderKey([r],n,i):null===a?r:r+"[]",c(e))})),!1;return!!isVisitable(e)||(t.append(renderKey(o,r,i),c(e)),!1)}const l=[],d=Object.assign(predicates,{defaultVisitor:u,convertValue:c,isVisitable:isVisitable});if(!utils$s.isObject(e))throw new TypeError("data must be an object");return function e(r,n){if(!utils$s.isUndefined(r)){if(-1!==l.indexOf(r))throw Error("Circular reference detected in "+n.join("."));l.push(r),utils$s.forEach(r,(function(r,i){!0===(!(utils$s.isUndefined(r)||null===r)&&o.call(t,r,utils$s.isString(i)?i.trim():i,n,d))&&e(r,n?n.concat(i):[i])})),l.pop()}}(e),t}function encode$5(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function AxiosURLSearchParams(e,t){this._pairs=[],e&&toFormData(e,this,t)}const prototype=AxiosURLSearchParams.prototype;function encode$4(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function buildURL(e,t,r){if(!t)return e;const n=r&&r.encode||encode$4;utils$s.isFunction(r)&&(r={serialize:r});const o=r&&r.serialize;let i;if(i=o?o(t,r):utils$s.isURLSearchParams(t)?t.toString():new AxiosURLSearchParams(t,r).toString(n),i){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+i}return e}prototype.append=function(e,t){this._pairs.push([e,t])},prototype.toString=function(e){const t=e?function(t){return e.call(this,t,encode$5)}:encode$5;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};class InterceptorManager{constructor(){this.handlers=[]}use(e,t,r){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!r&&r.synchronous,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){utils$s.forEach(this.handlers,(function(t){null!==t&&e(t)}))}}const transitionalDefaults={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},URLSearchParams$1="undefined"!=typeof URLSearchParams?URLSearchParams:AxiosURLSearchParams,FormData$1="undefined"!=typeof FormData?FormData:null,Blob$1="undefined"!=typeof Blob?Blob:null,platform$1={isBrowser:!0,classes:{URLSearchParams:URLSearchParams$1,FormData:FormData$1,Blob:Blob$1},protocols:["http","https","file","blob","url","data"]},hasBrowserEnv="undefined"!=typeof window&&"undefined"!=typeof document,_navigator="object"==typeof navigator&&navigator||void 0,hasStandardBrowserEnv=hasBrowserEnv&&(!_navigator||["ReactNative","NativeScript","NS"].indexOf(_navigator.product)<0),hasStandardBrowserWebWorkerEnv="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,origin=hasBrowserEnv&&window.location.href||"http://localhost",utils$r=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:hasBrowserEnv,hasStandardBrowserEnv:hasStandardBrowserEnv,hasStandardBrowserWebWorkerEnv:hasStandardBrowserWebWorkerEnv,navigator:_navigator,origin:origin},Symbol.toStringTag,{value:"Module"})),platform={...utils$r,...platform$1};function toURLEncodedForm(e,t){return toFormData(e,new platform.classes.URLSearchParams,Object.assign({visitor:function(e,t,r,n){return platform.isNode&&utils$s.isBuffer(e)?(this.append(t,e.toString("base64")),!1):n.defaultVisitor.apply(this,arguments)}},t))}function parsePropPath(e){return utils$s.matchAll(/\w+|\[(\w*)]/g,e).map((e=>"[]"===e[0]?"":e[1]||e[0]))}function arrayToObject(e){const t={},r=Object.keys(e);let n;const o=r.length;let i;for(n=0;n=e.length;if(i=!i&&utils$s.isArray(n)?n.length:i,s)return utils$s.hasOwnProp(n,i)?n[i]=[n[i],r]:n[i]=r,!a;n[i]&&utils$s.isObject(n[i])||(n[i]=[]);return t(e,r,n[i],o)&&utils$s.isArray(n[i])&&(n[i]=arrayToObject(n[i])),!a}if(utils$s.isFormData(e)&&utils$s.isFunction(e.entries)){const r={};return utils$s.forEachEntry(e,((e,n)=>{t(parsePropPath(e),n,r,0)})),r}return null}function stringifySafely(e,t,r){if(utils$s.isString(e))try{return(t||JSON.parse)(e),utils$s.trim(e)}catch(e2){if("SyntaxError"!==e2.name)throw e2}return(0,JSON.stringify)(e)}const defaults$1={transitional:transitionalDefaults,adapter:["xhr","http","fetch"],transformRequest:[function(e,t){const r=t.getContentType()||"",n=r.indexOf("application/json")>-1,o=utils$s.isObject(e);o&&utils$s.isHTMLForm(e)&&(e=new FormData(e));if(utils$s.isFormData(e))return n?JSON.stringify(formDataToJSON(e)):e;if(utils$s.isArrayBuffer(e)||utils$s.isBuffer(e)||utils$s.isStream(e)||utils$s.isFile(e)||utils$s.isBlob(e)||utils$s.isReadableStream(e))return e;if(utils$s.isArrayBufferView(e))return e.buffer;if(utils$s.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let i;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return toURLEncodedForm(e,this.formSerializer).toString();if((i=utils$s.isFileList(e))||r.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return toFormData(i?{"files[]":e}:e,t&&new t,this.formSerializer)}}return o||n?(t.setContentType("application/json",!1),stringifySafely(e)):e}],transformResponse:[function(e){const t=this.transitional||defaults$1.transitional,r=t&&t.forcedJSONParsing,n="json"===this.responseType;if(utils$s.isResponse(e)||utils$s.isReadableStream(e))return e;if(e&&utils$s.isString(e)&&(r&&!this.responseType||n)){const r=!(t&&t.silentJSONParsing)&&n;try{return JSON.parse(e)}catch(e2){if(r){if("SyntaxError"===e2.name)throw AxiosError.from(e2,AxiosError.ERR_BAD_RESPONSE,this,null,this.response);throw e2}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:platform.classes.FormData,Blob:platform.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};utils$s.forEach(["delete","get","head","post","put","patch"],(e=>{defaults$1.headers[e]={}}));const ignoreDuplicateOf=utils$s.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),parseHeaders=e=>{const t={};let r,n,o;return e&&e.split("\n").forEach((function(e){o=e.indexOf(":"),r=e.substring(0,o).trim().toLowerCase(),n=e.substring(o+1).trim(),!r||t[r]&&ignoreDuplicateOf[r]||("set-cookie"===r?t[r]?t[r].push(n):t[r]=[n]:t[r]=t[r]?t[r]+", "+n:n)})),t},$internals=Symbol("internals");function normalizeHeader(e){return e&&String(e).trim().toLowerCase()}function normalizeValue(e){return!1===e||null==e?e:utils$s.isArray(e)?e.map(normalizeValue):String(e)}function parseTokens(e){const t=Object.create(null),r=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let n;for(;n=r.exec(e);)t[n[1]]=n[2];return t}const isValidHeaderName=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function matchHeaderValue(e,t,r,n,o){return utils$s.isFunction(n)?n.call(this,t,r):(o&&(t=r),utils$s.isString(t)?utils$s.isString(n)?-1!==t.indexOf(n):utils$s.isRegExp(n)?n.test(t):void 0:void 0)}function formatHeader(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((e,t,r)=>t.toUpperCase()+r))}function buildAccessors(e,t){const r=utils$s.toCamelCase(" "+t);["get","set","has"].forEach((n=>{Object.defineProperty(e,n+r,{value:function(e,r,o){return this[n].call(this,t,e,r,o)},configurable:!0})}))}class AxiosHeaders{constructor(e){e&&this.set(e)}set(e,t,r){const n=this;function o(e,t,r){const o=normalizeHeader(t);if(!o)throw new Error("header name must be a non-empty string");const i=utils$s.findKey(n,o);(!i||void 0===n[i]||!0===r||void 0===r&&!1!==n[i])&&(n[i||t]=normalizeValue(e))}const i=(e,t)=>utils$s.forEach(e,((e,r)=>o(e,r,t)));if(utils$s.isPlainObject(e)||e instanceof this.constructor)i(e,t);else if(utils$s.isString(e)&&(e=e.trim())&&!isValidHeaderName(e))i(parseHeaders(e),t);else if(utils$s.isHeaders(e))for(const[a,s]of e.entries())o(s,a,r);else null!=e&&o(t,e,r);return this}get(e,t){if(e=normalizeHeader(e)){const r=utils$s.findKey(this,e);if(r){const e=this[r];if(!t)return e;if(!0===t)return parseTokens(e);if(utils$s.isFunction(t))return t.call(this,e,r);if(utils$s.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=normalizeHeader(e)){const r=utils$s.findKey(this,e);return!(!r||void 0===this[r]||t&&!matchHeaderValue(this,this[r],r,t))}return!1}delete(e,t){const r=this;let n=!1;function o(e){if(e=normalizeHeader(e)){const o=utils$s.findKey(r,e);!o||t&&!matchHeaderValue(r,r[o],o,t)||(delete r[o],n=!0)}}return utils$s.isArray(e)?e.forEach(o):o(e),n}clear(e){const t=Object.keys(this);let r=t.length,n=!1;for(;r--;){const o=t[r];e&&!matchHeaderValue(this,this[o],o,e,!0)||(delete this[o],n=!0)}return n}normalize(e){const t=this,r={};return utils$s.forEach(this,((n,o)=>{const i=utils$s.findKey(r,o);if(i)return t[i]=normalizeValue(n),void delete t[o];const a=e?formatHeader(o):String(o).trim();a!==o&&delete t[o],t[a]=normalizeValue(n),r[a]=!0})),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return utils$s.forEach(this,((r,n)=>{null!=r&&!1!==r&&(t[n]=e&&utils$s.isArray(r)?r.join(", "):r)})),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([e,t])=>e+": "+t)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const r=new this(e);return t.forEach((e=>r.set(e))),r}static accessor(e){const t=(this[$internals]=this[$internals]={accessors:{}}).accessors,r=this.prototype;function n(e){const n=normalizeHeader(e);t[n]||(buildAccessors(r,e),t[n]=!0)}return utils$s.isArray(e)?e.forEach(n):n(e),this}}function transformData(e,t){const r=this||defaults$1,n=t||r,o=AxiosHeaders.from(n.headers);let i=n.data;return utils$s.forEach(e,(function(e){i=e.call(r,i,o.normalize(),t?t.status:void 0)})),o.normalize(),i}function isCancel(e){return!(!e||!e.__CANCEL__)}function CanceledError(e,t,r){AxiosError.call(this,null==e?"canceled":e,AxiosError.ERR_CANCELED,t,r),this.name="CanceledError"}function settle(e,t,r){const n=r.config.validateStatus;r.status&&n&&!n(r.status)?t(new AxiosError("Request failed with status code "+r.status,[AxiosError.ERR_BAD_REQUEST,AxiosError.ERR_BAD_RESPONSE][Math.floor(r.status/100)-4],r.config,r.request,r)):e(r)}function parseProtocol(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function speedometer(e,t){e=e||10;const r=new Array(e),n=new Array(e);let o,i=0,a=0;return t=void 0!==t?t:1e3,function(s){const c=Date.now(),u=n[a];o||(o=c),r[i]=s,n[i]=c;let l=a,d=0;for(;l!==i;)d+=r[l++],l%=e;if(i=(i+1)%e,i===a&&(a=(a+1)%e),c-o{o=i,r=null,n&&(clearTimeout(n),n=null),e.apply(null,t)};return[(...e)=>{const t=Date.now(),s=t-o;s>=i?a(e,t):(r=e,n||(n=setTimeout((()=>{n=null,a(r)}),i-s)))},()=>r&&a(r)]}AxiosHeaders.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),utils$s.reduceDescriptors(AxiosHeaders.prototype,(({value:e},t)=>{let r=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[r]=e}}})),utils$s.freezeMethods(AxiosHeaders),utils$s.inherits(CanceledError,AxiosError,{__CANCEL__:!0});const progressEventReducer=(e,t,r=3)=>{let n=0;const o=speedometer(50,250);return throttle((r=>{const i=r.loaded,a=r.lengthComputable?r.total:void 0,s=i-n,c=o(s);n=i;e({loaded:i,total:a,progress:a?i/a:void 0,bytes:s,rate:c||void 0,estimated:c&&a&&i<=a?(a-i)/c:void 0,event:r,lengthComputable:null!=a,[t?"download":"upload"]:!0})}),r)},progressEventDecorator=(e,t)=>{const r=null!=e;return[n=>t[0]({lengthComputable:r,total:e,loaded:n}),t[1]]},asyncDecorator=e=>(...t)=>utils$s.asap((()=>e(...t))),isURLSameOrigin=platform.hasStandardBrowserEnv?((e,t)=>r=>(r=new URL(r,platform.origin),e.protocol===r.protocol&&e.host===r.host&&(t||e.port===r.port)))(new URL(platform.origin),platform.navigator&&/(msie|trident)/i.test(platform.navigator.userAgent)):()=>!0,cookies=platform.hasStandardBrowserEnv?{write(e,t,r,n,o,i){const a=[e+"="+encodeURIComponent(t)];utils$s.isNumber(r)&&a.push("expires="+new Date(r).toGMTString()),utils$s.isString(n)&&a.push("path="+n),utils$s.isString(o)&&a.push("domain="+o),!0===i&&a.push("secure"),document.cookie=a.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read:()=>null,remove(){}};function isAbsoluteURL(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function combineURLs(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function buildFullPath(e,t){return e&&!isAbsoluteURL(t)?combineURLs(e,t):t}const headersToObject=e=>e instanceof AxiosHeaders?{...e}:e;function mergeConfig(e,t){t=t||{};const r={};function n(e,t,r,n){return utils$s.isPlainObject(e)&&utils$s.isPlainObject(t)?utils$s.merge.call({caseless:n},e,t):utils$s.isPlainObject(t)?utils$s.merge({},t):utils$s.isArray(t)?t.slice():t}function o(e,t,r,o){return utils$s.isUndefined(t)?utils$s.isUndefined(e)?void 0:n(void 0,e,0,o):n(e,t,0,o)}function i(e,t){if(!utils$s.isUndefined(t))return n(void 0,t)}function a(e,t){return utils$s.isUndefined(t)?utils$s.isUndefined(e)?void 0:n(void 0,e):n(void 0,t)}function s(r,o,i){return i in t?n(r,o):i in e?n(void 0,r):void 0}const c={url:i,method:i,data:i,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:s,headers:(e,t,r)=>o(headersToObject(e),headersToObject(t),0,!0)};return utils$s.forEach(Object.keys(Object.assign({},e,t)),(function(n){const i=c[n]||o,a=i(e[n],t[n],n);utils$s.isUndefined(a)&&i!==s||(r[n]=a)})),r}const resolveConfig=e=>{const t=mergeConfig({},e);let r,{data:n,withXSRFToken:o,xsrfHeaderName:i,xsrfCookieName:a,headers:s,auth:c}=t;if(t.headers=s=AxiosHeaders.from(s),t.url=buildURL(buildFullPath(t.baseURL,t.url),e.params,e.paramsSerializer),c&&s.set("Authorization","Basic "+btoa((c.username||"")+":"+(c.password?unescape(encodeURIComponent(c.password)):""))),utils$s.isFormData(n))if(platform.hasStandardBrowserEnv||platform.hasStandardBrowserWebWorkerEnv)s.setContentType(void 0);else if(!1!==(r=s.getContentType())){const[e,...t]=r?r.split(";").map((e=>e.trim())).filter(Boolean):[];s.setContentType([e||"multipart/form-data",...t].join("; "))}if(platform.hasStandardBrowserEnv&&(o&&utils$s.isFunction(o)&&(o=o(t)),o||!1!==o&&isURLSameOrigin(t.url))){const e=i&&a&&cookies.read(a);e&&s.set(i,e)}return t},isXHRAdapterSupported="undefined"!=typeof XMLHttpRequest,xhrAdapter=isXHRAdapterSupported&&function(e){return new Promise((function(t,r){const n=resolveConfig(e);let o=n.data;const i=AxiosHeaders.from(n.headers).normalize();let a,s,c,u,l,{responseType:d,onUploadProgress:f,onDownloadProgress:h}=n;function p(){u&&u(),l&&l(),n.cancelToken&&n.cancelToken.unsubscribe(a),n.signal&&n.signal.removeEventListener("abort",a)}let y=new XMLHttpRequest;function m(){if(!y)return;const n=AxiosHeaders.from("getAllResponseHeaders"in y&&y.getAllResponseHeaders());settle((function(e){t(e),p()}),(function(e){r(e),p()}),{data:d&&"text"!==d&&"json"!==d?y.response:y.responseText,status:y.status,statusText:y.statusText,headers:n,config:e,request:y}),y=null}y.open(n.method.toUpperCase(),n.url,!0),y.timeout=n.timeout,"onloadend"in y?y.onloadend=m:y.onreadystatechange=function(){y&&4===y.readyState&&(0!==y.status||y.responseURL&&0===y.responseURL.indexOf("file:"))&&setTimeout(m)},y.onabort=function(){y&&(r(new AxiosError("Request aborted",AxiosError.ECONNABORTED,e,y)),y=null)},y.onerror=function(){r(new AxiosError("Network Error",AxiosError.ERR_NETWORK,e,y)),y=null},y.ontimeout=function(){let t=n.timeout?"timeout of "+n.timeout+"ms exceeded":"timeout exceeded";const o=n.transitional||transitionalDefaults;n.timeoutErrorMessage&&(t=n.timeoutErrorMessage),r(new AxiosError(t,o.clarifyTimeoutError?AxiosError.ETIMEDOUT:AxiosError.ECONNABORTED,e,y)),y=null},void 0===o&&i.setContentType(null),"setRequestHeader"in y&&utils$s.forEach(i.toJSON(),(function(e,t){y.setRequestHeader(t,e)})),utils$s.isUndefined(n.withCredentials)||(y.withCredentials=!!n.withCredentials),d&&"json"!==d&&(y.responseType=n.responseType),h&&([c,l]=progressEventReducer(h,!0),y.addEventListener("progress",c)),f&&y.upload&&([s,u]=progressEventReducer(f),y.upload.addEventListener("progress",s),y.upload.addEventListener("loadend",u)),(n.cancelToken||n.signal)&&(a=t=>{y&&(r(!t||t.type?new CanceledError(null,e,y):t),y.abort(),y=null)},n.cancelToken&&n.cancelToken.subscribe(a),n.signal&&(n.signal.aborted?a():n.signal.addEventListener("abort",a)));const g=parseProtocol(n.url);g&&-1===platform.protocols.indexOf(g)?r(new AxiosError("Unsupported protocol "+g+":",AxiosError.ERR_BAD_REQUEST,e)):y.send(o||null)}))},composeSignals=(e,t)=>{const{length:r}=e=e?e.filter(Boolean):[];if(t||r){let r,n=new AbortController;const o=function(e){if(!r){r=!0,a();const t=e instanceof Error?e:this.reason;n.abort(t instanceof AxiosError?t:new CanceledError(t instanceof Error?t.message:t))}};let i=t&&setTimeout((()=>{i=null,o(new AxiosError(`timeout ${t} of ms exceeded`,AxiosError.ETIMEDOUT))}),t);const a=()=>{e&&(i&&clearTimeout(i),i=null,e.forEach((e=>{e.unsubscribe?e.unsubscribe(o):e.removeEventListener("abort",o)})),e=null)};e.forEach((e=>e.addEventListener("abort",o)));const{signal:s}=n;return s.unsubscribe=()=>utils$s.asap(a),s}},streamChunk=function*(e,t){let r=e.byteLength;if(r{const o=readBytes(e,t);let i,a=0,s=e=>{i||(i=!0,n&&n(e))};return new ReadableStream({async pull(e){try{const{done:t,value:n}=await o.next();if(t)return s(),void e.close();let i=n.byteLength;if(r){let e=a+=i;r(e)}e.enqueue(new Uint8Array(n))}catch(t){throw s(t),t}},cancel:e=>(s(e),o.return())},{highWaterMark:2})},isFetchSupported="function"==typeof fetch&&"function"==typeof Request&&"function"==typeof Response,isReadableStreamSupported=isFetchSupported&&"function"==typeof ReadableStream,encodeText=isFetchSupported&&("function"==typeof TextEncoder?(e=>t=>e.encode(t))(new TextEncoder):async e=>new Uint8Array(await new Response(e).arrayBuffer())),test=(e,...t)=>{try{return!!e(...t)}catch(e2){return!1}},supportsRequestStream=isReadableStreamSupported&&test((()=>{let e=!1;const t=new Request(platform.origin,{body:new ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t})),DEFAULT_CHUNK_SIZE=65536,supportsResponseStream=isReadableStreamSupported&&test((()=>utils$s.isReadableStream(new Response("").body))),resolvers={stream:supportsResponseStream&&(e=>e.body)};var res;isFetchSupported&&(res=new Response,["text","arrayBuffer","blob","formData","stream"].forEach((e=>{!resolvers[e]&&(resolvers[e]=utils$s.isFunction(res[e])?t=>t[e]():(t,r)=>{throw new AxiosError(`Response type '${e}' is not supported`,AxiosError.ERR_NOT_SUPPORT,r)})})));const getBodyLength=async e=>{if(null==e)return 0;if(utils$s.isBlob(e))return e.size;if(utils$s.isSpecCompliantForm(e)){const t=new Request(platform.origin,{method:"POST",body:e});return(await t.arrayBuffer()).byteLength}return utils$s.isArrayBufferView(e)||utils$s.isArrayBuffer(e)?e.byteLength:(utils$s.isURLSearchParams(e)&&(e+=""),utils$s.isString(e)?(await encodeText(e)).byteLength:void 0)},resolveBodyLength=async(e,t)=>{const r=utils$s.toFiniteNumber(e.getContentLength());return null==r?getBodyLength(t):r},fetchAdapter=isFetchSupported&&(async e=>{let{url:t,method:r,data:n,signal:o,cancelToken:i,timeout:a,onDownloadProgress:s,onUploadProgress:c,responseType:u,headers:l,withCredentials:d="same-origin",fetchOptions:f}=resolveConfig(e);u=u?(u+"").toLowerCase():"text";let h,p=composeSignals([o,i&&i.toAbortSignal()],a);const y=p&&p.unsubscribe&&(()=>{p.unsubscribe()});let m;try{if(c&&supportsRequestStream&&"get"!==r&&"head"!==r&&0!==(m=await resolveBodyLength(l,n))){let e,r=new Request(t,{method:"POST",body:n,duplex:"half"});if(utils$s.isFormData(n)&&(e=r.headers.get("content-type"))&&l.setContentType(e),r.body){const[e,t]=progressEventDecorator(m,progressEventReducer(asyncDecorator(c)));n=trackStream(r.body,DEFAULT_CHUNK_SIZE,e,t)}}utils$s.isString(d)||(d=d?"include":"omit");const o="credentials"in Request.prototype;h=new Request(t,{...f,signal:p,method:r.toUpperCase(),headers:l.normalize().toJSON(),body:n,duplex:"half",credentials:o?d:void 0});let i=await fetch(h);const a=supportsResponseStream&&("stream"===u||"response"===u);if(supportsResponseStream&&(s||a&&y)){const e={};["status","statusText","headers"].forEach((t=>{e[t]=i[t]}));const t=utils$s.toFiniteNumber(i.headers.get("content-length")),[r,n]=s&&progressEventDecorator(t,progressEventReducer(asyncDecorator(s),!0))||[];i=new Response(trackStream(i.body,DEFAULT_CHUNK_SIZE,r,(()=>{n&&n(),y&&y()})),e)}u=u||"text";let g=await resolvers[utils$s.findKey(resolvers,u)||"text"](i,e);return!a&&y&&y(),await new Promise(((t,r)=>{settle(t,r,{data:g,headers:AxiosHeaders.from(i.headers),status:i.status,statusText:i.statusText,config:e,request:h})}))}catch(g){if(y&&y(),g&&"TypeError"===g.name&&/fetch/i.test(g.message))throw Object.assign(new AxiosError("Network Error",AxiosError.ERR_NETWORK,e,h),{cause:g.cause||g});throw AxiosError.from(g,g&&g.code,e,h)}}),knownAdapters={http:httpAdapter,xhr:xhrAdapter,fetch:fetchAdapter};utils$s.forEach(knownAdapters,((e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(e2){}Object.defineProperty(e,"adapterName",{value:t})}}));const renderReason=e=>`- ${e}`,isResolvedHandle=e=>utils$s.isFunction(e)||null===e||!1===e,adapters={getAdapter:e=>{e=utils$s.isArray(e)?e:[e];const{length:t}=e;let r,n;const o={};for(let i=0;i`adapter ${e} `+(!1===t?"is not supported by the environment":"is not available in the build")));throw new AxiosError("There is no suitable adapter to dispatch the request "+(t?e.length>1?"since :\n"+e.map(renderReason).join("\n"):" "+renderReason(e[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return n},adapters:knownAdapters};function throwIfCancellationRequested(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new CanceledError(null,e)}function dispatchRequest(e){throwIfCancellationRequested(e),e.headers=AxiosHeaders.from(e.headers),e.data=transformData.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1);return adapters.getAdapter(e.adapter||defaults$1.adapter)(e).then((function(t){return throwIfCancellationRequested(e),t.data=transformData.call(e,e.transformResponse,t),t.headers=AxiosHeaders.from(t.headers),t}),(function(t){return isCancel(t)||(throwIfCancellationRequested(e),t&&t.response&&(t.response.data=transformData.call(e,e.transformResponse,t.response),t.response.headers=AxiosHeaders.from(t.response.headers))),Promise.reject(t)}))}const VERSION="1.7.9",validators$1={};["object","boolean","number","function","string","symbol"].forEach(((e,t)=>{validators$1[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}}));const deprecatedWarnings={};function assertOptions(e,t,r){if("object"!=typeof e)throw new AxiosError("options must be an object",AxiosError.ERR_BAD_OPTION_VALUE);const n=Object.keys(e);let o=n.length;for(;o-- >0;){const i=n[o],a=t[i];if(a){const t=e[i],r=void 0===t||a(t,i,e);if(!0!==r)throw new AxiosError("option "+i+" must be "+r,AxiosError.ERR_BAD_OPTION_VALUE)}else if(!0!==r)throw new AxiosError("Unknown option "+i,AxiosError.ERR_BAD_OPTION)}}validators$1.transitional=function(e,t,r){function n(e,t){return"[Axios v"+VERSION+"] Transitional option '"+e+"'"+t+(r?". "+r:"")}return(r,o,i)=>{if(!1===e)throw new AxiosError(n(o," has been removed"+(t?" in "+t:"")),AxiosError.ERR_DEPRECATED);return t&&!deprecatedWarnings[o]&&(deprecatedWarnings[o]=!0,console.warn(n(o," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(r,o,i)}},validators$1.spelling=function(e){return(t,r)=>(console.warn(`${r} is likely a misspelling of ${e}`),!0)};const validator={assertOptions:assertOptions,validators:validators$1},validators=validator.validators;class Axios{constructor(e){this.defaults=e,this.interceptors={request:new InterceptorManager,response:new InterceptorManager}}async request(e,t){try{return await this._request(e,t)}catch(r){if(r instanceof Error){let e={};Error.captureStackTrace?Error.captureStackTrace(e):e=new Error;const t=e.stack?e.stack.replace(/^.+\n/,""):"";try{r.stack?t&&!String(r.stack).endsWith(t.replace(/^.+\n.+\n/,""))&&(r.stack+="\n"+t):r.stack=t}catch(e2){}}throw r}}_request(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{},t=mergeConfig(this.defaults,t);const{transitional:r,paramsSerializer:n,headers:o}=t;void 0!==r&&validator.assertOptions(r,{silentJSONParsing:validators.transitional(validators.boolean),forcedJSONParsing:validators.transitional(validators.boolean),clarifyTimeoutError:validators.transitional(validators.boolean)},!1),null!=n&&(utils$s.isFunction(n)?t.paramsSerializer={serialize:n}:validator.assertOptions(n,{encode:validators.function,serialize:validators.function},!0)),validator.assertOptions(t,{baseUrl:validators.spelling("baseURL"),withXsrfToken:validators.spelling("withXSRFToken")},!0),t.method=(t.method||this.defaults.method||"get").toLowerCase();let i=o&&utils$s.merge(o.common,o[t.method]);o&&utils$s.forEach(["delete","get","head","post","put","patch","common"],(e=>{delete o[e]})),t.headers=AxiosHeaders.concat(i,o);const a=[];let s=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(s=s&&e.synchronous,a.unshift(e.fulfilled,e.rejected))}));const c=[];let u;this.interceptors.response.forEach((function(e){c.push(e.fulfilled,e.rejected)}));let l,d=0;if(!s){const e=[dispatchRequest.bind(this),void 0];for(e.unshift.apply(e,a),e.push.apply(e,c),l=e.length,u=Promise.resolve(t);d{if(!r._listeners)return;let t=r._listeners.length;for(;t-- >0;)r._listeners[t](e);r._listeners=null})),this.promise.then=e=>{let t;const n=new Promise((e=>{r.subscribe(e),t=e})).then(e);return n.cancel=function(){r.unsubscribe(t)},n},e((function(e,n,o){r.reason||(r.reason=new CanceledError(e,n,o),t(r.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}toAbortSignal(){const e=new AbortController,t=t=>{e.abort(t)};return this.subscribe(t),e.signal.unsubscribe=()=>this.unsubscribe(t),e.signal}static source(){let e;return{token:new CancelToken((function(t){e=t})),cancel:e}}}function spread(e){return function(t){return e.apply(null,t)}}function isAxiosError(e){return utils$s.isObject(e)&&!0===e.isAxiosError}const HttpStatusCode={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};function createInstance(e){const t=new Axios(e),r=bind$1(Axios.prototype.request,t);return utils$s.extend(r,Axios.prototype,t,{allOwnKeys:!0}),utils$s.extend(r,t,null,{allOwnKeys:!0}),r.create=function(t){return createInstance(mergeConfig(e,t))},r}Object.entries(HttpStatusCode).forEach((([e,t])=>{HttpStatusCode[t]=e}));const axios=createInstance(defaults$1);axios.Axios=Axios,axios.CanceledError=CanceledError,axios.CancelToken=CancelToken,axios.isCancel=isCancel,axios.VERSION=VERSION,axios.toFormData=toFormData,axios.AxiosError=AxiosError,axios.Cancel=axios.CanceledError,axios.all=function(e){return Promise.all(e)},axios.spread=spread,axios.isAxiosError=isAxiosError,axios.mergeConfig=mergeConfig,axios.AxiosHeaders=AxiosHeaders,axios.formToJSON=e=>formDataToJSON(utils$s.isHTMLForm(e)?new FormData(e):e),axios.getAdapter=adapters.getAdapter,axios.HttpStatusCode=HttpStatusCode,axios.default=axios;class AccountId{constructor(e,t,r,n,o){const i=constructor(e,t,r);this.shard=i.shard,this.realm=i.realm,this.num=i.num,this.aliasKey=null!=n?n:null,this.evmAddress=null!=o?o:null,this._checksum=null}static fromString(e){let t,r,n=Long$1.ZERO,o=Long$1.ZERO,i=Long$1.ZERO;if(e.startsWith("0x")&&42==e.length||40==e.length)r=EvmAddress.fromString(e);else{const a=fromStringSplitter(e);if(Number.isNaN(a.shard)||Number.isNaN(a.realm))throw new Error("invalid format for entity ID");null!=a.shard&&(n=Long$1.fromString(a.shard)),null!=a.realm&&(o=Long$1.fromString(a.realm)),a.numOrHex.length<20?i=Long$1.fromString(a.numOrHex):40==a.numOrHex.length?r=EvmAddress.fromString(a.numOrHex):t=PublicKey.fromString(a.numOrHex)}return new AccountId(n,o,i,t,r)}static fromEvmAddress(e,t,r){const n="string"==typeof r?EvmAddress.fromString(r):r;return isLongZeroAddress(n.toBytes())?this.fromSolidityAddress(n.toString()):new AccountId(e,t,0,void 0,n)}static fromEvmPublicAddress(e){return new AccountId(0,0,0,void 0,e)}static _fromProtobuf(e){let t,r;return null!=e.alias&&(20===e.alias.length?r=EvmAddress.fromBytes(e.alias):t=Key._fromProtobufKey(proto_1.Key.decode(e.alias))),t instanceof PublicKey||(t=void 0),new AccountId(null!=e.shardNum?e.shardNum:0,null!=e.realmNum?e.realmNum:0,null!=e.accountNum?e.accountNum:0,t,r)}get checksum(){return this._checksum}getEvmAddress(){return this.evmAddress}async populateAccountNum(e){if(null===this.evmAddress)throw new Error("field `evmAddress` should not be null");const t=e.mirrorNetwork[0].slice(0,e.mirrorNetwork[0].indexOf(":"));await new Promise((e=>{setTimeout(e,3e3)}));const r=`https://${t}/api/v1/accounts/${this.evmAddress.toString()}`,n=(await axios.get(r)).data.account;return this.num=Long$1.fromString(n.slice(n.lastIndexOf(".")+1)),this}async populateAccountEvmAddress(e){if(null===this.num)throw new Error("field `num` should not be null");const t=e.mirrorNetwork[0].slice(0,e.mirrorNetwork[0].indexOf(":"));await new Promise((e=>{setTimeout(e,3e3)}));const r=`https://${t}/api/v1/accounts/${this.num.toString()}`,n=(await axios.get(r)).data.evm_address;return this.evmAddress=EvmAddress.fromString(n),this}validate(e){console.warn("Deprecated: Use `validateChecksum` instead"),this.validateChecksum(e)}validateChecksum(e){if(null!=this.aliasKey)throw new Error("cannot calculate checksum with an account ID that has a aliasKey");validateChecksum(this.shard,this.realm,this.num,this._checksum,e)}static fromBytes(e){return AccountId._fromProtobuf(proto_1.AccountID.decode(e))}static fromSolidityAddress(e){return isLongZeroAddress(decode$a(e))?new AccountId(...fromSolidityAddress(e)):this.fromEvmAddress(0,0,e)}toSolidityAddress(){return null!=this.evmAddress?this.evmAddress.toString():null!=this.aliasKey&&"secp256k1"==this.aliasKey._key._type?this.aliasKey.toEvmAddress():toSolidityAddress([this.shard,this.realm,this.num])}_toProtobuf(){let e=null;return null!=this.aliasKey?e=proto_1.Key.encode(this.aliasKey._toProtobufKey()).finish():null!=this.evmAddress&&(e=this.evmAddress._bytes),{alias:e,accountNum:null!=this.aliasKey?null:this.num,shardNum:this.shard,realmNum:this.realm}}toBytes(){return proto_1.AccountID.encode(this._toProtobuf()).finish()}toString(){let e=this.num.toString();return null!=this.aliasKey?e=this.aliasKey.toString():null!=this.evmAddress&&(e=this.evmAddress.toString()),`${this.shard.toString()}.${this.realm.toString()}.${e}`}toStringWithChecksum(e){if(null!=this.aliasKey)throw new Error("cannot calculate checksum with an account ID that has a aliasKey");return toStringWithChecksum(this.toString(),e)}equals(e){let t=!1;return null!=this.aliasKey&&null!=e.aliasKey?t=this.aliasKey.equals(e.aliasKey):null!=this.evmAddress&&null!=e.evmAddress?t=this.evmAddress.equals(e.evmAddress):null==this.aliasKey&&null==e.aliasKey&&null==this.evmAddress&&null==e.evmAddress&&(t=this.num.eq(e.num)),this.shard.eq(e.shard)&&this.realm.eq(e.realm)&&t}clone(){const e=new AccountId(this);return e._checksum=this._checksum,e.aliasKey=this.aliasKey,e.evmAddress=this.evmAddress,e}compare(e){let t=this.shard.compare(e.shard);if(0!=t)return t;if(t=this.realm.compare(e.realm),0!=t)return t;if(null!=this.aliasKey&&null!=e.aliasKey){const t=this.aliasKey.toString(),r=e.aliasKey.toString();return t>r?1:tr?1:tnew AccountId(e,t,Long$1.ZERO,r)));const MAX_NS=Long$1.fromNumber(1e9),generatedIds=new Set;class Timestamp{constructor(e,t){this.seconds=e instanceof Long$1?e:Long$1.fromNumber(e),this.nanos=t instanceof Long$1?t:Long$1.fromNumber(t),Object.freeze(this)}static generate(e=!0){let t;t=e?Math.floor(5e3*Math.random())+3e3:0;const r=Date.now()-t,n=Math.floor(r/1e3)+CACHE.timeDrift,o=1e6*Math.floor(r%1e3)+Math.floor(1e6*Math.random()),i=new Timestamp(n,o);return generatedIds.has(i.toString())?this.generate():(generatedIds.add(i.toString()),i)}static fromDate(e){let t;if("number"==typeof e)t=Long$1.fromNumber(e);else if("string"==typeof e)t=Long$1.fromNumber(Date.parse(e)).mul(1e6);else{if(!(e instanceof Date))throw new TypeError(`invalid type '${typeof e}' for 'data', expected 'Date'`);t=Long$1.fromNumber(e.getTime()).mul(1e6)}return new Timestamp(0,0).plusNanos(t)}toDate(){return new Date(1e3*this.seconds.toInt()+Math.floor(this.nanos.toInt()/1e6))}plusNanos(e){const t=this.nanos.add(e);return new Timestamp(this.seconds.add(t.div(MAX_NS)),t.mod(MAX_NS))}_toProtobuf(){return{seconds:this.seconds,nanos:this.nanos.toInt()}}static _fromProtobuf(e){return new Timestamp(e.seconds instanceof Long$1?e.seconds.toInt():null!=e.seconds?e.seconds:0,null!=e.nanos?e.nanos:0)}toString(){const e=String(this.nanos).padStart(9,"0");return`${this.seconds.toString()}.${e}`}compare(e){const t=this.seconds.compare(e.seconds);return 0!=t?t:this.nanos.compare(e.nanos)}}class TransactionId{constructor(e,t,r=!1,n=null){this.accountId=e,this.validStart=t,this.scheduled=r,this.nonce=null,null!=n&&0!=n&&this.setNonce(n),Object.seal(this)}setNonce(e){return this.nonce="number"==typeof e?Long$1.fromNumber(e):e,this}static withValidStart(e,t){return new TransactionId(e,t)}static generate(e){return new TransactionId("string"==typeof e?AccountId.fromString(e):new AccountId(e),Timestamp.generate())}static fromString(e){let t,r,n,o,i,a;return[t,a]=e.split("@"),[r,a]=a.split("."),a.includes("?")?([n,a]=a.split("?scheduled"),o=!0,i=a.includes("/")?a.replace("/",""):null):a.includes("/")?([n,i]=a.split("/"),o=!1):n=a,new TransactionId(AccountId.fromString(t),new Timestamp(Long$1.fromValue(r),Long$1.fromValue(n)),o,null!=i?Long$1.fromString(i):null)}setScheduled(e){return this.scheduled=e,this}toString(){if(null!=this.accountId&&null!=this.validStart){const e=String(this.validStart.nanos).padStart(9,"0"),t=null!=this.nonce?"/".concat(this.nonce.toString()):"",r=this.scheduled?"?scheduled":"";return`${this.accountId.toString()}@${this.validStart.seconds.toString()}.${e}${r}${t}`}throw new Error("neither `accountId` nor `validStart` are set")}static _fromProtobuf(e){if(null!=e.accountID&&null!=e.transactionValidStart)return new TransactionId(AccountId._fromProtobuf(e.accountID),Timestamp._fromProtobuf(e.transactionValidStart),null!=e.scheduled?e.scheduled:void 0,null!=e.nonce?e.nonce:void 0);throw new Error("Neither `nonce` or `accountID` and `transactionValidStart` are set")}_toProtobuf(){return{accountID:null!=this.accountId?this.accountId._toProtobuf():null,transactionValidStart:null!=this.validStart?this.validStart._toProtobuf():null,scheduled:this.scheduled,nonce:null!=this.nonce?this.nonce.toInt():null}}static fromBytes(e){return TransactionId._fromProtobuf(proto_1.TransactionID.decode(e))}toBytes(){return proto_1.TransactionID.encode(this._toProtobuf()).finish()}clone(){return new TransactionId(this.accountId,this.validStart,this.scheduled,this.nonce)}compare(e){const t=this.accountId.compare(e.accountId);return 0!=t?t:this.validStart.compare(e.validStart)}getReceipt(e){return CACHE.transactionReceiptQueryConstructor().setTransactionId(this).execute(e)}async getRecord(e){return await this.getReceipt(e),CACHE.transactionRecordQueryConstructor().setTransactionId(this).execute(e)}}class SignaturePairMap extends ObjectMap{constructor(){super((e=>PublicKey.fromString(e)))}static _fromTransactionSigMap(e){const t=new SignaturePairMap,r=null!=e.sigPair?e.sigPair:[];for(const n of r)null!=n.pubKeyPrefix&&(null!=n.ed25519?t._set(PublicKey.fromBytesED25519(n.pubKeyPrefix),n.ed25519):null!=n.ECDSASecp256k1&&t._set(PublicKey.fromBytesECDSA(n.pubKeyPrefix),n.ECDSASecp256k1));return t}addSignature(e,t){return this._set(e,t),this}}class NodeAccountIdSignatureMap extends ObjectMap{constructor(){super((e=>TransactionId.fromString(e)))}static _fromSignedTransactions(e){const t=new NodeAccountIdSignatureMap;for(const{bodyBytes:r,sigMap:n}of e.list)if(null!=r&&null!=n){const e=proto_1.TransactionBody.decode(r);if(null!=e.transactionID){const r=TransactionId._fromProtobuf(e.transactionID);t._set(r,SignaturePairMap._fromTransactionSigMap(n))}}return t}addSignature(e,t,r){const n=this.get(e);n?n.addSignature(t,r):this._set(e,(new SignaturePairMap).addSignature(t,r))}}class List{constructor(){this.list=[],this.locked=!1,this.index=0}setList(e){if(this.locked)throw new Error("list is locked");return this.list=e,this.index=0,this}push(...e){if(this.locked)throw new Error("list is locked");return this.list.push(...e),this}setLocked(){return this.locked=!0,this}clear(){this.list=[],this.index=0}get(e){return this.list[e]}set(e,t){return e===this.length?this.list.push(t):this.list[e]=t,this}setIfAbsent(e,t){return e!=this.length&&null!=this.list[e]||this.set(e,t()),this}get next(){return this.get(this.advance())}get current(){return this.get(this.index)}advance(){const e=this.index;return this.index=(this.index+1)%this.list.length,e}get isEmpty(){return 0===this.length}get length(){return this.list.length}clone(){const e=new List;return e.list=this.list,e.locked=this.locked,e}}class SignatureMap extends ObjectMap{constructor(){super((e=>AccountId.fromString(e)))}static _fromTransaction(e){const t=new SignatureMap,r=e._nodeAccountIds.length,n=e._signedTransactions.length/r;for(let o=0;onew PrivateKey(e)));class KeyList extends Key{constructor(e,t){super(),this._keys=null==e?[]:e instanceof Key?[e]:e,this._threshold=null==t?null:t}static of(...e){return new KeyList(e,null)}static from(e,t,r){return new KeyList(null==t?Array.from(e):Array.from(e,t,r))}get threshold(){return this._threshold}setThreshold(e){return this._threshold=e,this}push(...e){return this._keys.push(...e)}splice(e,t,...r){return new KeyList(this._keys.splice(e,t,...r),this.threshold)}slice(e,t){return new KeyList(this._keys.slice(e,t),this.threshold)}[Symbol.iterator](){return this._keys[Symbol.iterator]()}toArray(){return this._keys.slice()}toString(){return JSON.stringify({threshold:this._threshold,keys:this._keys.toString()})}_toProtobufKey(){const e=this._keys.map((e=>e._toProtobufKey()));return null==this.threshold?{keyList:{keys:e}}:{thresholdKey:{threshold:this.threshold,keys:{keys:e}}}}static __fromProtobufKeyList(e){const t=(null!=e.keys?e.keys:[]).map((e=>Key._fromProtobufKey(e)));return new KeyList(t)}static __fromProtobufThresoldKey(e){const t=KeyList.__fromProtobufKeyList(null!=e.keys?e.keys:{});return t.setThreshold(null!=e.threshold?e.threshold:0),t}}function valueToLong(e){return BigNumber$1.isBigNumber(e)?e:new BigNumber$1(e.toString())}CACHE.setKeyList((e=>KeyList.__fromProtobufKeyList(e))),CACHE.setThresholdKey((e=>KeyList.__fromProtobufThresoldKey(e)));class HbarUnit{constructor(e,t,r){this._name=e,this._symbol=t,this._tinybar=r,Object.freeze(this)}static fromString(e){switch(e){case HbarUnit.Hbar._symbol:return HbarUnit.Hbar;case HbarUnit.Tinybar._symbol:return HbarUnit.Tinybar;case HbarUnit.Microbar._symbol:return HbarUnit.Microbar;case HbarUnit.Millibar._symbol:return HbarUnit.Millibar;case HbarUnit.Kilobar._symbol:return HbarUnit.Kilobar;case HbarUnit.Megabar._symbol:return HbarUnit.Megabar;case HbarUnit.Gigabar._symbol:return HbarUnit.Gigabar;default:throw new Error("Unknown unit.")}}}HbarUnit.Tinybar=new HbarUnit("tinybar","tℏ",new BigNumber$1(1)),HbarUnit.Microbar=new HbarUnit("microbar","μℏ",new BigNumber$1(100)),HbarUnit.Millibar=new HbarUnit("millibar","mℏ",new BigNumber$1(1e5)),HbarUnit.Hbar=new HbarUnit("hbar","ℏ",new BigNumber$1("100000000")),HbarUnit.Kilobar=new HbarUnit("kilobar","kℏ",new BigNumber$1(1e3).multipliedBy(new BigNumber$1("100000000"))),HbarUnit.Megabar=new HbarUnit("megabar","Mℏ",new BigNumber$1(1e6).multipliedBy(new BigNumber$1("100000000"))),HbarUnit.Gigabar=new HbarUnit("gigabar","Gℏ",new BigNumber$1("1000000000").multipliedBy(new BigNumber$1("100000000")));class Hbar{constructor(e,t=HbarUnit.Hbar){if(t===HbarUnit.Tinybar)this._valueInTinybar=valueToLong(e);else{let r;r=Long$1.isLong(e)?new BigNumber$1(e.toString(10)):BigNumber$1.isBigNumber(e)||"string"==typeof e||"number"==typeof e?new BigNumber$1(e):new BigNumber$1(0),this._valueInTinybar=r.multipliedBy(t._tinybar)}if(!this._valueInTinybar.isInteger())throw new Error("Hbar in tinybars contains decimals")}static from(e,t){return new Hbar(e,t)}static fromTinybars(e){return"string"==typeof e?this.fromString(e,HbarUnit.Tinybar):new Hbar(e,HbarUnit.Tinybar)}static fromString(e,t=HbarUnit.Hbar){if(/^((?:\+|-)?\d+(?:\.\d+)?)(?: (tℏ|μℏ|mℏ|ℏ|kℏ|Mℏ|Gℏ))?$/.test(e)){let[r,n]=e.split(" ");return null!=n&&(t=HbarUnit.fromString(n)),new Hbar(new BigNumber$1(r),t)}throw new Error("invalid argument provided")}to(e){return this._valueInTinybar.dividedBy(e._tinybar)}toBigNumber(){return this.to(HbarUnit.Hbar)}toTinybars(){return Long$1.fromValue(this._valueInTinybar.toFixed())}negated(){return Hbar.fromTinybars(this._valueInTinybar.negated())}isNegative(){return this._valueInTinybar.isNegative()}toString(e){return null!=e?`${this._valueInTinybar.dividedBy(e._tinybar).toString()} ${e._symbol}`:this._valueInTinybar.isLessThan(1e4)&&this._valueInTinybar.isGreaterThan(-1e4)?`${this._valueInTinybar.toFixed()} ${HbarUnit.Tinybar._symbol}`:`${this.to(HbarUnit.Hbar).toString()} ${HbarUnit.Hbar._symbol}`}}class StatusError extends Error{constructor(e,t){super(t),this.name="StatusError",this.status=e.status,this.transactionId=e.transactionId,this.message=t,void 0!==Error.captureStackTrace&&Error.captureStackTrace(this,StatusError)}toJSON(){return{name:this.name,status:this.status.toString(),transactionId:this.transactionId.toString(),message:this.message}}toString(){return JSON.stringify(this.toJSON())}valueOf(){return this.toJSON()}}class ReceiptStatusError extends StatusError{constructor(e){super(e,`receipt for transaction ${e.transactionId.toString()} contained error status ${e.status.toString()}`),this.transactionReceipt=e.transactionReceipt}}class Status{constructor(e){this._code=e,Object.freeze(this)}toString(){switch(this){case Status.Ok:return"OK";case Status.InvalidTransaction:return"INVALID_TRANSACTION";case Status.PayerAccountNotFound:return"PAYER_ACCOUNT_NOT_FOUND";case Status.InvalidNodeAccount:return"INVALID_NODE_ACCOUNT";case Status.TransactionExpired:return"TRANSACTION_EXPIRED";case Status.InvalidTransactionStart:return"INVALID_TRANSACTION_START";case Status.InvalidTransactionDuration:return"INVALID_TRANSACTION_DURATION";case Status.InvalidSignature:return"INVALID_SIGNATURE";case Status.MemoTooLong:return"MEMO_TOO_LONG";case Status.InsufficientTxFee:return"INSUFFICIENT_TX_FEE";case Status.InsufficientPayerBalance:return"INSUFFICIENT_PAYER_BALANCE";case Status.DuplicateTransaction:return"DUPLICATE_TRANSACTION";case Status.Busy:return"BUSY";case Status.NotSupported:return"NOT_SUPPORTED";case Status.InvalidFileId:return"INVALID_FILE_ID";case Status.InvalidAccountId:return"INVALID_ACCOUNT_ID";case Status.InvalidContractId:return"INVALID_CONTRACT_ID";case Status.InvalidTransactionId:return"INVALID_TRANSACTION_ID";case Status.ReceiptNotFound:return"RECEIPT_NOT_FOUND";case Status.RecordNotFound:return"RECORD_NOT_FOUND";case Status.InvalidSolidityId:return"INVALID_SOLIDITY_ID";case Status.Unknown:return"UNKNOWN";case Status.Success:return"SUCCESS";case Status.FailInvalid:return"FAIL_INVALID";case Status.FailFee:return"FAIL_FEE";case Status.FailBalance:return"FAIL_BALANCE";case Status.KeyRequired:return"KEY_REQUIRED";case Status.BadEncoding:return"BAD_ENCODING";case Status.InsufficientAccountBalance:return"INSUFFICIENT_ACCOUNT_BALANCE";case Status.InvalidSolidityAddress:return"INVALID_SOLIDITY_ADDRESS";case Status.InsufficientGas:return"INSUFFICIENT_GAS";case Status.ContractSizeLimitExceeded:return"CONTRACT_SIZE_LIMIT_EXCEEDED";case Status.LocalCallModificationException:return"LOCAL_CALL_MODIFICATION_EXCEPTION";case Status.ContractRevertExecuted:return"CONTRACT_REVERT_EXECUTED";case Status.ContractExecutionException:return"CONTRACT_EXECUTION_EXCEPTION";case Status.InvalidReceivingNodeAccount:return"INVALID_RECEIVING_NODE_ACCOUNT";case Status.MissingQueryHeader:return"MISSING_QUERY_HEADER";case Status.AccountUpdateFailed:return"ACCOUNT_UPDATE_FAILED";case Status.InvalidKeyEncoding:return"INVALID_KEY_ENCODING";case Status.NullSolidityAddress:return"NULL_SOLIDITY_ADDRESS";case Status.ContractUpdateFailed:return"CONTRACT_UPDATE_FAILED";case Status.InvalidQueryHeader:return"INVALID_QUERY_HEADER";case Status.InvalidFeeSubmitted:return"INVALID_FEE_SUBMITTED";case Status.InvalidPayerSignature:return"INVALID_PAYER_SIGNATURE";case Status.KeyNotProvided:return"KEY_NOT_PROVIDED";case Status.InvalidExpirationTime:return"INVALID_EXPIRATION_TIME";case Status.NoWaclKey:return"NO_WACL_KEY";case Status.FileContentEmpty:return"FILE_CONTENT_EMPTY";case Status.InvalidAccountAmounts:return"INVALID_ACCOUNT_AMOUNTS";case Status.EmptyTransactionBody:return"EMPTY_TRANSACTION_BODY";case Status.InvalidTransactionBody:return"INVALID_TRANSACTION_BODY";case Status.InvalidSignatureTypeMismatchingKey:return"INVALID_SIGNATURE_TYPE_MISMATCHING_KEY";case Status.InvalidSignatureCountMismatchingKey:return"INVALID_SIGNATURE_COUNT_MISMATCHING_KEY";case Status.EmptyLiveHashBody:return"EMPTY_LIVE_HASH_BODY";case Status.EmptyLiveHash:return"EMPTY_LIVE_HASH";case Status.EmptyLiveHashKeys:return"EMPTY_LIVE_HASH_KEYS";case Status.InvalidLiveHashSize:return"INVALID_LIVE_HASH_SIZE";case Status.EmptyQueryBody:return"EMPTY_QUERY_BODY";case Status.EmptyLiveHashQuery:return"EMPTY_LIVE_HASH_QUERY";case Status.LiveHashNotFound:return"LIVE_HASH_NOT_FOUND";case Status.AccountIdDoesNotExist:return"ACCOUNT_ID_DOES_NOT_EXIST";case Status.LiveHashAlreadyExists:return"LIVE_HASH_ALREADY_EXISTS";case Status.InvalidFileWacl:return"INVALID_FILE_WACL";case Status.SerializationFailed:return"SERIALIZATION_FAILED";case Status.TransactionOversize:return"TRANSACTION_OVERSIZE";case Status.TransactionTooManyLayers:return"TRANSACTION_TOO_MANY_LAYERS";case Status.ContractDeleted:return"CONTRACT_DELETED";case Status.PlatformNotActive:return"PLATFORM_NOT_ACTIVE";case Status.KeyPrefixMismatch:return"KEY_PREFIX_MISMATCH";case Status.PlatformTransactionNotCreated:return"PLATFORM_TRANSACTION_NOT_CREATED";case Status.InvalidRenewalPeriod:return"INVALID_RENEWAL_PERIOD";case Status.InvalidPayerAccountId:return"INVALID_PAYER_ACCOUNT_ID";case Status.AccountDeleted:return"ACCOUNT_DELETED";case Status.FileDeleted:return"FILE_DELETED";case Status.AccountRepeatedInAccountAmounts:return"ACCOUNT_REPEATED_IN_ACCOUNT_AMOUNTS";case Status.SettingNegativeAccountBalance:return"SETTING_NEGATIVE_ACCOUNT_BALANCE";case Status.ObtainerRequired:return"OBTAINER_REQUIRED";case Status.ObtainerSameContractId:return"OBTAINER_SAME_CONTRACT_ID";case Status.ObtainerDoesNotExist:return"OBTAINER_DOES_NOT_EXIST";case Status.ModifyingImmutableContract:return"MODIFYING_IMMUTABLE_CONTRACT";case Status.FileSystemException:return"FILE_SYSTEM_EXCEPTION";case Status.AutorenewDurationNotInRange:return"AUTORENEW_DURATION_NOT_IN_RANGE";case Status.ErrorDecodingBytestring:return"ERROR_DECODING_BYTESTRING";case Status.ContractFileEmpty:return"CONTRACT_FILE_EMPTY";case Status.ContractBytecodeEmpty:return"CONTRACT_BYTECODE_EMPTY";case Status.InvalidInitialBalance:return"INVALID_INITIAL_BALANCE";case Status.InvalidReceiveRecordThreshold:return"INVALID_RECEIVE_RECORD_THRESHOLD";case Status.InvalidSendRecordThreshold:return"INVALID_SEND_RECORD_THRESHOLD";case Status.AccountIsNotGenesisAccount:return"ACCOUNT_IS_NOT_GENESIS_ACCOUNT";case Status.PayerAccountUnauthorized:return"PAYER_ACCOUNT_UNAUTHORIZED";case Status.InvalidFreezeTransactionBody:return"INVALID_FREEZE_TRANSACTION_BODY";case Status.FreezeTransactionBodyNotFound:return"FREEZE_TRANSACTION_BODY_NOT_FOUND";case Status.TransferListSizeLimitExceeded:return"TRANSFER_LIST_SIZE_LIMIT_EXCEEDED";case Status.ResultSizeLimitExceeded:return"RESULT_SIZE_LIMIT_EXCEEDED";case Status.NotSpecialAccount:return"NOT_SPECIAL_ACCOUNT";case Status.ContractNegativeGas:return"CONTRACT_NEGATIVE_GAS";case Status.ContractNegativeValue:return"CONTRACT_NEGATIVE_VALUE";case Status.InvalidFeeFile:return"INVALID_FEE_FILE";case Status.InvalidExchangeRateFile:return"INVALID_EXCHANGE_RATE_FILE";case Status.InsufficientLocalCallGas:return"INSUFFICIENT_LOCAL_CALL_GAS";case Status.EntityNotAllowedToDelete:return"ENTITY_NOT_ALLOWED_TO_DELETE";case Status.AuthorizationFailed:return"AUTHORIZATION_FAILED";case Status.FileUploadedProtoInvalid:return"FILE_UPLOADED_PROTO_INVALID";case Status.FileUploadedProtoNotSavedToDisk:return"FILE_UPLOADED_PROTO_NOT_SAVED_TO_DISK";case Status.FeeScheduleFilePartUploaded:return"FEE_SCHEDULE_FILE_PART_UPLOADED";case Status.ExchangeRateChangeLimitExceeded:return"EXCHANGE_RATE_CHANGE_LIMIT_EXCEEDED";case Status.MaxContractStorageExceeded:return"MAX_CONTRACT_STORAGE_EXCEEDED";case Status.TransferAccountSameAsDeleteAccount:return"TRANSFER_ACCOUNT_SAME_AS_DELETE_ACCOUNT";case Status.TotalLedgerBalanceInvalid:return"TOTAL_LEDGER_BALANCE_INVALID";case Status.ExpirationReductionNotAllowed:return"EXPIRATION_REDUCTION_NOT_ALLOWED";case Status.MaxGasLimitExceeded:return"MAX_GAS_LIMIT_EXCEEDED";case Status.MaxFileSizeExceeded:return"MAX_FILE_SIZE_EXCEEDED";case Status.ReceiverSigRequired:return"RECEIVER_SIG_REQUIRED";case Status.InvalidTopicId:return"INVALID_TOPIC_ID";case Status.InvalidAdminKey:return"INVALID_ADMIN_KEY";case Status.InvalidSubmitKey:return"INVALID_SUBMIT_KEY";case Status.Unauthorized:return"UNAUTHORIZED";case Status.InvalidTopicMessage:return"INVALID_TOPIC_MESSAGE";case Status.InvalidAutorenewAccount:return"INVALID_AUTORENEW_ACCOUNT";case Status.AutorenewAccountNotAllowed:return"AUTORENEW_ACCOUNT_NOT_ALLOWED";case Status.TopicExpired:return"TOPIC_EXPIRED";case Status.InvalidChunkNumber:return"INVALID_CHUNK_NUMBER";case Status.InvalidChunkTransactionId:return"INVALID_CHUNK_TRANSACTION_ID";case Status.AccountFrozenForToken:return"ACCOUNT_FROZEN_FOR_TOKEN";case Status.TokensPerAccountLimitExceeded:return"TOKENS_PER_ACCOUNT_LIMIT_EXCEEDED";case Status.InvalidTokenId:return"INVALID_TOKEN_ID";case Status.InvalidTokenDecimals:return"INVALID_TOKEN_DECIMALS";case Status.InvalidTokenInitialSupply:return"INVALID_TOKEN_INITIAL_SUPPLY";case Status.InvalidTreasuryAccountForToken:return"INVALID_TREASURY_ACCOUNT_FOR_TOKEN";case Status.InvalidTokenSymbol:return"INVALID_TOKEN_SYMBOL";case Status.TokenHasNoFreezeKey:return"TOKEN_HAS_NO_FREEZE_KEY";case Status.TransfersNotZeroSumForToken:return"TRANSFERS_NOT_ZERO_SUM_FOR_TOKEN";case Status.MissingTokenSymbol:return"MISSING_TOKEN_SYMBOL";case Status.TokenSymbolTooLong:return"TOKEN_SYMBOL_TOO_LONG";case Status.AccountKycNotGrantedForToken:return"ACCOUNT_KYC_NOT_GRANTED_FOR_TOKEN";case Status.TokenHasNoKycKey:return"TOKEN_HAS_NO_KYC_KEY";case Status.InsufficientTokenBalance:return"INSUFFICIENT_TOKEN_BALANCE";case Status.TokenWasDeleted:return"TOKEN_WAS_DELETED";case Status.TokenHasNoSupplyKey:return"TOKEN_HAS_NO_SUPPLY_KEY";case Status.TokenHasNoWipeKey:return"TOKEN_HAS_NO_WIPE_KEY";case Status.InvalidTokenMintAmount:return"INVALID_TOKEN_MINT_AMOUNT";case Status.InvalidTokenBurnAmount:return"INVALID_TOKEN_BURN_AMOUNT";case Status.TokenNotAssociatedToAccount:return"TOKEN_NOT_ASSOCIATED_TO_ACCOUNT";case Status.CannotWipeTokenTreasuryAccount:return"CANNOT_WIPE_TOKEN_TREASURY_ACCOUNT";case Status.InvalidKycKey:return"INVALID_KYC_KEY";case Status.InvalidWipeKey:return"INVALID_WIPE_KEY";case Status.InvalidFreezeKey:return"INVALID_FREEZE_KEY";case Status.InvalidSupplyKey:return"INVALID_SUPPLY_KEY";case Status.MissingTokenName:return"MISSING_TOKEN_NAME";case Status.TokenNameTooLong:return"TOKEN_NAME_TOO_LONG";case Status.InvalidWipingAmount:return"INVALID_WIPING_AMOUNT";case Status.TokenIsImmutable:return"TOKEN_IS_IMMUTABLE";case Status.TokenAlreadyAssociatedToAccount:return"TOKEN_ALREADY_ASSOCIATED_TO_ACCOUNT";case Status.TransactionRequiresZeroTokenBalances:return"TRANSACTION_REQUIRES_ZERO_TOKEN_BALANCES";case Status.AccountIsTreasury:return"ACCOUNT_IS_TREASURY";case Status.TokenIdRepeatedInTokenList:return"TOKEN_ID_REPEATED_IN_TOKEN_LIST";case Status.TokenTransferListSizeLimitExceeded:return"TOKEN_TRANSFER_LIST_SIZE_LIMIT_EXCEEDED";case Status.EmptyTokenTransferBody:return"EMPTY_TOKEN_TRANSFER_BODY";case Status.EmptyTokenTransferAccountAmounts:return"EMPTY_TOKEN_TRANSFER_ACCOUNT_AMOUNTS";case Status.InvalidScheduleId:return"INVALID_SCHEDULE_ID";case Status.ScheduleIsImmutable:return"SCHEDULE_IS_IMMUTABLE";case Status.InvalidSchedulePayerId:return"INVALID_SCHEDULE_PAYER_ID";case Status.InvalidScheduleAccountId:return"INVALID_SCHEDULE_ACCOUNT_ID";case Status.NoNewValidSignatures:return"NO_NEW_VALID_SIGNATURES";case Status.UnresolvableRequiredSigners:return"UNRESOLVABLE_REQUIRED_SIGNERS";case Status.ScheduledTransactionNotInWhitelist:return"SCHEDULED_TRANSACTION_NOT_IN_WHITELIST";case Status.SomeSignaturesWereInvalid:return"SOME_SIGNATURES_WERE_INVALID";case Status.TransactionIdFieldNotAllowed:return"TRANSACTION_ID_FIELD_NOT_ALLOWED";case Status.IdenticalScheduleAlreadyCreated:return"IDENTICAL_SCHEDULE_ALREADY_CREATED";case Status.InvalidZeroByteInString:return"INVALID_ZERO_BYTE_IN_STRING";case Status.ScheduleAlreadyDeleted:return"SCHEDULE_ALREADY_DELETED";case Status.ScheduleAlreadyExecuted:return"SCHEDULE_ALREADY_EXECUTED";case Status.MessageSizeTooLarge:return"MESSAGE_SIZE_TOO_LARGE";case Status.OperationRepeatedInBucketGroups:return"OPERATION_REPEATED_IN_BUCKET_GROUPS";case Status.BucketCapacityOverflow:return"BUCKET_CAPACITY_OVERFLOW";case Status.NodeCapacityNotSufficientForOperation:return"NODE_CAPACITY_NOT_SUFFICIENT_FOR_OPERATION";case Status.BucketHasNoThrottleGroups:return"BUCKET_HAS_NO_THROTTLE_GROUPS";case Status.ThrottleGroupHasZeroOpsPerSec:return"THROTTLE_GROUP_HAS_ZERO_OPS_PER_SEC";case Status.SuccessButMissingExpectedOperation:return"SUCCESS_BUT_MISSING_EXPECTED_OPERATION";case Status.UnparseableThrottleDefinitions:return"UNPARSEABLE_THROTTLE_DEFINITIONS";case Status.InvalidThrottleDefinitions:return"INVALID_THROTTLE_DEFINITIONS";case Status.AccountExpiredAndPendingRemoval:return"ACCOUNT_EXPIRED_AND_PENDING_REMOVAL";case Status.InvalidTokenMaxSupply:return"INVALID_TOKEN_MAX_SUPPLY";case Status.InvalidTokenNftSerialNumber:return"INVALID_TOKEN_NFT_SERIAL_NUMBER";case Status.InvalidNftId:return"INVALID_NFT_ID";case Status.MetadataTooLong:return"METADATA_TOO_LONG";case Status.BatchSizeLimitExceeded:return"BATCH_SIZE_LIMIT_EXCEEDED";case Status.InvalidQueryRange:return"INVALID_QUERY_RANGE";case Status.FractionDividesByZero:return"FRACTION_DIVIDES_BY_ZERO";case Status.InsufficientPayerBalanceForCustomFee:return"INSUFFICIENT_PAYER_BALANCE_FOR_CUSTOM_FEE";case Status.CustomFeesListTooLong:return"CUSTOM_FEES_LIST_TOO_LONG";case Status.InvalidCustomFeeCollector:return"INVALID_CUSTOM_FEE_COLLECTOR";case Status.InvalidTokenIdInCustomFees:return"INVALID_TOKEN_ID_IN_CUSTOM_FEES";case Status.TokenNotAssociatedToFeeCollector:return"TOKEN_NOT_ASSOCIATED_TO_FEE_COLLECTOR";case Status.TokenMaxSupplyReached:return"TOKEN_MAX_SUPPLY_REACHED";case Status.SenderDoesNotOwnNftSerialNo:return"SENDER_DOES_NOT_OWN_NFT_SERIAL_NO";case Status.CustomFeeNotFullySpecified:return"CUSTOM_FEE_NOT_FULLY_SPECIFIED";case Status.CustomFeeMustBePositive:return"CUSTOM_FEE_MUST_BE_POSITIVE";case Status.TokenHasNoFeeScheduleKey:return"TOKEN_HAS_NO_FEE_SCHEDULE_KEY";case Status.CustomFeeOutsideNumericRange:return"CUSTOM_FEE_OUTSIDE_NUMERIC_RANGE";case Status.RoyaltyFractionCannotExceedOne:return"ROYALTY_FRACTION_CANNOT_EXCEED_ONE";case Status.FractionalFeeMaxAmountLessThanMinAmount:return"FRACTIONAL_FEE_MAX_AMOUNT_LESS_THAN_MIN_AMOUNT";case Status.CustomScheduleAlreadyHasNoFees:return"CUSTOM_SCHEDULE_ALREADY_HAS_NO_FEES";case Status.CustomFeeDenominationMustBeFungibleCommon:return"CUSTOM_FEE_DENOMINATION_MUST_BE_FUNGIBLE_COMMON";case Status.CustomFractionalFeeOnlyAllowedForFungibleCommon:return"CUSTOM_FRACTIONAL_FEE_ONLY_ALLOWED_FOR_FUNGIBLE_COMMON";case Status.InvalidCustomFeeScheduleKey:return"INVALID_CUSTOM_FEE_SCHEDULE_KEY";case Status.InvalidTokenMintMetadata:return"INVALID_TOKEN_MINT_METADATA";case Status.InvalidTokenBurnMetadata:return"INVALID_TOKEN_BURN_METADATA";case Status.CurrentTreasuryStillOwnsNfts:return"CURRENT_TREASURY_STILL_OWNS_NFTS";case Status.AccountStillOwnsNfts:return"ACCOUNT_STILL_OWNS_NFTS";case Status.TreasuryMustOwnBurnedNft:return"TREASURY_MUST_OWN_BURNED_NFT";case Status.AccountDoesNotOwnWipedNft:return"ACCOUNT_DOES_NOT_OWN_WIPED_NFT";case Status.AccountAmountTransfersOnlyAllowedForFungibleCommon:return"ACCOUNT_AMOUNT_TRANSFERS_ONLY_ALLOWED_FOR_FUNGIBLE_COMMON";case Status.MaxNftsInPriceRegimeHaveBeenMinted:return"MAX_NFTS_IN_PRICE_REGIME_HAVE_BEEN_MINTED";case Status.PayerAccountDeleted:return"PAYER_ACCOUNT_DELETED";case Status.CustomFeeChargingExceededMaxRecursionDepth:return"CUSTOM_FEE_CHARGING_EXCEEDED_MAX_RECURSION_DEPTH";case Status.CustomFeeChargingExceededMaxAccountAmounts:return"CUSTOM_FEE_CHARGING_EXCEEDED_MAX_ACCOUNT_AMOUNTS";case Status.InsufficientSenderAccountBalanceForCustomFee:return"INSUFFICIENT_SENDER_ACCOUNT_BALANCE_FOR_CUSTOM_FEE";case Status.SerialNumberLimitReached:return"SERIAL_NUMBER_LIMIT_REACHED";case Status.CustomRoyaltyFeeOnlyAllowedForNonFungibleUnique:return"CUSTOM_ROYALTY_FEE_ONLY_ALLOWED_FOR_NON_FUNGIBLE_UNIQUE";case Status.NoRemainingAutomaticAssociations:return"NO_REMAINING_AUTOMATIC_ASSOCIATIONS";case Status.ExistingAutomaticAssociationsExceedGivenLimit:return"EXISTING_AUTOMATIC_ASSOCIATIONS_EXCEED_GIVEN_LIMIT";case Status.RequestedNumAutomaticAssociationsExceedsAssociationLimit:return"REQUESTED_NUM_AUTOMATIC_ASSOCIATIONS_EXCEEDS_ASSOCIATION_LIMIT";case Status.TokenIsPaused:return"TOKEN_IS_PAUSED";case Status.TokenHasNoPauseKey:return"TOKEN_HAS_NO_PAUSE_KEY";case Status.InvalidPauseKey:return"INVALID_PAUSE_KEY";case Status.FreezeUpdateFileDoesNotExist:return"FREEZE_UPDATE_FILE_DOES_NOT_EXIST";case Status.FreezeUpdateFileHashDoesNotMatch:return"FREEZE_UPDATE_FILE_HASH_DOES_NOT_MATCH";case Status.NoUpgradeHasBeenPrepared:return"NO_UPGRADE_HAS_BEEN_PREPARED";case Status.NoFreezeIsScheduled:return"NO_FREEZE_IS_SCHEDULED";case Status.UpdateFileHashChangedSincePrepareUpgrade:return"UPDATE_FILE_HASH_CHANGED_SINCE_PREPARE_UPGRADE";case Status.FreezeStartTimeMustBeFuture:return"FREEZE_START_TIME_MUST_BE_FUTURE";case Status.PreparedUpdateFileIsImmutable:return"PREPARED_UPDATE_FILE_IS_IMMUTABLE";case Status.FreezeAlreadyScheduled:return"FREEZE_ALREADY_SCHEDULED";case Status.FreezeUpgradeInProgress:return"FREEZE_UPGRADE_IN_PROGRESS";case Status.UpdateFileIdDoesNotMatchPrepared:return"UPDATE_FILE_ID_DOES_NOT_MATCH_PREPARED";case Status.UpdateFileHashDoesNotMatchPrepared:return"UPDATE_FILE_HASH_DOES_NOT_MATCH_PREPARED";case Status.ConsensusGasExhausted:return"CONSENSUS_GAS_EXHAUSTED";case Status.RevertedSuccess:return"REVERTED_SUCCESS";case Status.MaxStorageInPriceRegimeHasBeenUsed:return"MAX_STORAGE_IN_PRICE_REGIME_HAS_BEEN_USED";case Status.InvalidAliasKey:return"INVALID_ALIAS_KEY";case Status.UnexpectedTokenDecimals:return"UNEXPECTED_TOKEN_DECIMALS";case Status.InvalidProxyAccountId:return"INVALID_PROXY_ACCOUNT_ID";case Status.InvalidTransferAccountId:return"INVALID_TRANSFER_ACCOUNT_ID";case Status.InvalidFeeCollectorAccountId:return"INVALID_FEE_COLLECTOR_ACCOUNT_ID";case Status.AliasIsImmutable:return"ALIAS_IS_IMMUTABLE";case Status.SpenderAccountSameAsOwner:return"SPENDER_ACCOUNT_SAME_AS_OWNER";case Status.AmountExceedsTokenMaxSupply:return"AMOUNT_EXCEEDS_TOKEN_MAX_SUPPLY";case Status.NegativeAllowanceAmount:return"NEGATIVE_ALLOWANCE_AMOUNT";case Status.CannotApproveForAllFungibleCommon:return"CANNOT_APPROVE_FOR_ALL_FUNGIBLE_COMMON";case Status.SpenderDoesNotHaveAllowance:return"SPENDER_DOES_NOT_HAVE_ALLOWANCE";case Status.AmountExceedsAllowance:return"AMOUNT_EXCEEDS_ALLOWANCE";case Status.MaxAllowancesExceeded:return"MAX_ALLOWANCES_EXCEEDED";case Status.EmptyAllowances:return"EMPTY_ALLOWANCES";case Status.SpenderAccountRepeatedInAllowances:return"SPENDER_ACCOUNT_REPEATED_IN_ALLOWANCES";case Status.RepeatedSerialNumsInNftAllowances:return"REPEATED_SERIAL_NUMS_IN_NFT_ALLOWANCES";case Status.FungibleTokenInNftAllowances:return"FUNGIBLE_TOKEN_IN_NFT_ALLOWANCES";case Status.NftInFungibleTokenAllowances:return"NFT_IN_FUNGIBLE_TOKEN_ALLOWANCES";case Status.InvalidAllowanceOwnerId:return"INVALID_ALLOWANCE_OWNER_ID";case Status.InvalidAllowanceSpenderId:return"INVALID_ALLOWANCE_SPENDER_ID";case Status.RepeatedAllowancesToDelete:return"REPEATED_ALLOWANCES_TO_DELETE";case Status.InvalidDelegatingSpender:return"INVALID_DELEGATING_SPENDER";case Status.DelegatingSpenderCannotGrantApproveForAll:return"DELEGATING_SPENDER_CANNOT_GRANT_APPROVE_FOR_ALL";case Status.DelegatingSpenderDoesNotHaveApproveForAll:return"DELEGATING_SPENDER_DOES_NOT_HAVE_APPROVE_FOR_ALL";case Status.ScheduleExpirationTimeTooFarInFuture:return"SCHEDULE_EXPIRATION_TIME_TOO_FAR_IN_FUTURE";case Status.ScheduleExpirationTimeMustBeHigherThanConsensusTime:return"SCHEDULE_EXPIRATION_TIME_MUST_BE_HIGHER_THAN_CONSENSUS_TIME";case Status.ScheduleFutureThrottleExceeded:return"SCHEDULE_FUTURE_THROTTLE_EXCEEDED";case Status.ScheduleFutureGasLimitExceeded:return"SCHEDULE_FUTURE_GAS_LIMIT_EXCEEDED";case Status.InvalidEthereumTransaction:return"INVALID_ETHEREUM_TRANSACTION";case Status.WrongChainId:return"WRONG_CHAIN_ID";case Status.WrongNonce:return"WRONG_NONCE";case Status.AccessListUnsupported:return"ACCESS_LIST_UNSUPPORTED";case Status.SchedulePendingExpiration:return"SCHEDULE_PENDING_EXPIRATION";case Status.ContractIsTokenTreasury:return"CONTRACT_IS_TOKEN_TREASURY";case Status.ContractHasNonZeroTokenBalances:return"CONTRACT_HAS_NON_ZERO_TOKEN_BALANCES";case Status.ContractExpiredAndPendingRemoval:return"CONTRACT_EXPIRED_AND_PENDING_REMOVAL";case Status.ContractHasNoAutoRenewAccount:return"CONTRACT_HAS_NO_AUTO_RENEW_ACCOUNT";case Status.PermanentRemovalRequiresSystemInitiation:return"PERMANENT_REMOVAL_REQUIRES_SYSTEM_INITIATION";case Status.ProxyAccountIdFieldIsDeprecated:return"PROXY_ACCOUNT_ID_FIELD_IS_DEPRECATED";case Status.SelfStakingIsNotAllowed:return"SELF_STAKING_IS_NOT_ALLOWED";case Status.InvalidStakingId:return"INVALID_STAKING_ID";case Status.StakingNotEnabled:return"STAKING_NOT_ENABLED";case Status.InvalidPrngRange:return"INVALID_PRNG_RANGE";case Status.MaxEntitiesInPriceRegimeHaveBeenCreated:return"MAX_ENTITIES_IN_PRICE_REGIME_HAVE_BEEN_CREATED";case Status.InvalidFullPrefixSignatureForPrecompile:return"INVALID_FULL_PREFIX_SIGNATURE_FOR_PRECOMPILE";case Status.InsufficientBalancesForStorageRent:return"INSUFFICIENT_BALANCES_FOR_STORAGE_RENT";case Status.MaxChildRecordsExceeded:return"MAX_CHILD_RECORDS_EXCEEDED";case Status.InsufficientBalancesForRenewalFees:return"INSUFFICIENT_BALANCES_FOR_RENEWAL_FEES";case Status.TransactionHasUnknownFields:return"TRANSACTION_HAS_UNKNOWN_FIELDS";case Status.AccountIsImmutable:return"ACCOUNT_IS_IMMUTABLE";case Status.AliasAlreadyAssigned:return"ALIAS_ALREADY_ASSIGNED";case Status.InvalidMetadataKey:return"INVALID_METADATA_KEY";case Status.TokenHasNoMetadataKey:return"TOKEN_HAS_NO_METADATA_KEY";case Status.MissingTokenMetadata:return"MISSING_TOKEN_METADATA";case Status.MissingSerialNumbers:return"MISSING_SERIAL_NUMBERS";case Status.TokenHasNoAdminKey:return"TOKEN_HAS_NO_ADMIN_KEY";case Status.NodeDeleted:return"NODE_DELETED";case Status.InvalidNodeId:return"INVALID_NODE_ID";case Status.InvalidGossipEndpoint:return"INVALID_GOSSIP_ENDPOINT";case Status.InvalidNodeAccountId:return"INVALID_NODE_ACCOUNT_ID";case Status.InvalidNodeDescription:return"INVALID_NODE_DESCRIPTION";case Status.InvalidServiceEndpoint:return"INVALID_SERVICE_ENDPOINT";case Status.InvalidGossipCaCertificate:return"INVALID_GOSSIP_CA_CERTIFICATE";case Status.InvalidGrpcCertificate:return"INVALID_GRPC_CERTIFICATE";case Status.InvalidMaxAutoAssociations:return"INVALID_MAX_AUTO_ASSOCIATIONS";case Status.MaxNodesCreated:return"MAX_NODES_CREATED";case Status.IpFqdnCannotBeSetForSameEndpoint:return"IP_FQDN_CANNOT_BE_SET_FOR_SAME_ENDPOINT";case Status.GossipEndpointCannotHaveFqdn:return"GOSSIP_ENDPOINT_CANNOT_HAVE_FQDN";case Status.FqdnSizeTooLarge:return"FQDN_SIZE_TOO_LARGE";case Status.InvalidEndpoint:return"INVALID_ENDPOINT";case Status.GossipEndpointsExceededLimit:return"GOSSIP_ENDPOINTS_EXCEEDED_LIMIT";case Status.ServiceEndpointsExceededLimit:return"SERVICE_ENDPOINTS_EXCEEDED_LIMIT";case Status.InvalidIpv4Address:return"INVALID_IPV4_ADDRESS";case Status.TokenReferenceRepeated:return"TOKEN_REFERENCE_REPEATED";case Status.InvalidOwnerId:return"INVALID_OWNER_ID";case Status.TokenReferenceListSizeLimitExceeded:return"TOKEN_REFERENCE_LIST_SIZE_LIMIT_EXCEEDED";case Status.EmptyTokenReferenceList:return"EMPTY_TOKEN_REFERENCE_LIST";case Status.UpdateNodeAccountNotAllowed:return"UPDATE_NODE_ACCOUNT_NOT_ALLOWED";case Status.TokenHasNoMetadataOrSupplyKey:return"TOKEN_HAS_NO_METADATA_OR_SUPPLY_KEY";case Status.EmptyPendingAirdropIdList:return"EMPTY_PENDING_AIRDROP_ID_LIST";case Status.PendingAirdropIdRepeated:return"PENDING_AIRDROP_ID_REPEATED";case Status.MaxPendingAirdropIdExceeded:return"PENDING_AIRDROP_ID_LIST_TOO_LONG";case Status.PendingNftAirdropAlreadyExists:return"PENDING_NFT_AIRDROP_ALREADY_EXISTS";case Status.AccountHasPendingAirdrops:return"ACCOUNT_HAS_PENDING_AIRDROPS";case Status.ThrottledAtConsensus:return"THROTTLED_AT_CONSENSUS";case Status.InvalidPendingAirdropId:return"INVALID_PENDING_AIRDROP_ID";case Status.TokenAirdropWithFallbackRoyalty:return"TOKEN_AIRDROP_WITH_FALLBACK_ROYALTY";case Status.InvalidTokenInPendingAirdrop:return"INVALID_TOKEN_IN_PENDING_AIRDROP";case Status.ScheduleExpiryIsBusy:return"SCHEDULE_EXPIRY_IS_BUSY";case Status.InvalidGrpcCertificateHash:return"INVALID_GRPC_CERTIFICATE_HASH";case Status.MissingExpiryTime:return"MISSING_EXPIRY_TIME";case Status.NoSchedulingAllowedAfterScheduledRecursion:return"NO_SCHEDULING_ALLOWED_AFTER_SCHEDULED_RECURSION";case Status.RecursiveSchedulingLimitReached:return"RECURSIVE_SCHEDULING_LIMIT_REACHED";default:return`UNKNOWN (${this._code})`}}static _fromCode(e){switch(e){case 0:return Status.Ok;case 1:return Status.InvalidTransaction;case 2:return Status.PayerAccountNotFound;case 3:return Status.InvalidNodeAccount;case 4:return Status.TransactionExpired;case 5:return Status.InvalidTransactionStart;case 6:return Status.InvalidTransactionDuration;case 7:return Status.InvalidSignature;case 8:return Status.MemoTooLong;case 9:return Status.InsufficientTxFee;case 10:return Status.InsufficientPayerBalance;case 11:return Status.DuplicateTransaction;case 12:return Status.Busy;case 13:return Status.NotSupported;case 14:return Status.InvalidFileId;case 15:return Status.InvalidAccountId;case 16:return Status.InvalidContractId;case 17:return Status.InvalidTransactionId;case 18:return Status.ReceiptNotFound;case 19:return Status.RecordNotFound;case 20:return Status.InvalidSolidityId;case 21:return Status.Unknown;case 22:return Status.Success;case 23:return Status.FailInvalid;case 24:return Status.FailFee;case 25:return Status.FailBalance;case 26:return Status.KeyRequired;case 27:return Status.BadEncoding;case 28:return Status.InsufficientAccountBalance;case 29:return Status.InvalidSolidityAddress;case 30:return Status.InsufficientGas;case 31:return Status.ContractSizeLimitExceeded;case 32:return Status.LocalCallModificationException;case 33:return Status.ContractRevertExecuted;case 34:return Status.ContractExecutionException;case 35:return Status.InvalidReceivingNodeAccount;case 36:return Status.MissingQueryHeader;case 37:return Status.AccountUpdateFailed;case 38:return Status.InvalidKeyEncoding;case 39:return Status.NullSolidityAddress;case 40:return Status.ContractUpdateFailed;case 41:return Status.InvalidQueryHeader;case 42:return Status.InvalidFeeSubmitted;case 43:return Status.InvalidPayerSignature;case 44:return Status.KeyNotProvided;case 45:return Status.InvalidExpirationTime;case 46:return Status.NoWaclKey;case 47:return Status.FileContentEmpty;case 48:return Status.InvalidAccountAmounts;case 49:return Status.EmptyTransactionBody;case 50:return Status.InvalidTransactionBody;case 51:return Status.InvalidSignatureTypeMismatchingKey;case 52:return Status.InvalidSignatureCountMismatchingKey;case 53:return Status.EmptyLiveHashBody;case 54:return Status.EmptyLiveHash;case 55:return Status.EmptyLiveHashKeys;case 56:return Status.InvalidLiveHashSize;case 57:return Status.EmptyQueryBody;case 58:return Status.EmptyLiveHashQuery;case 59:return Status.LiveHashNotFound;case 60:return Status.AccountIdDoesNotExist;case 61:return Status.LiveHashAlreadyExists;case 62:return Status.InvalidFileWacl;case 63:return Status.SerializationFailed;case 64:return Status.TransactionOversize;case 65:return Status.TransactionTooManyLayers;case 66:return Status.ContractDeleted;case 67:return Status.PlatformNotActive;case 68:return Status.KeyPrefixMismatch;case 69:return Status.PlatformTransactionNotCreated;case 70:return Status.InvalidRenewalPeriod;case 71:return Status.InvalidPayerAccountId;case 72:return Status.AccountDeleted;case 73:return Status.FileDeleted;case 74:return Status.AccountRepeatedInAccountAmounts;case 75:return Status.SettingNegativeAccountBalance;case 76:return Status.ObtainerRequired;case 77:return Status.ObtainerSameContractId;case 78:return Status.ObtainerDoesNotExist;case 79:return Status.ModifyingImmutableContract;case 80:return Status.FileSystemException;case 81:return Status.AutorenewDurationNotInRange;case 82:return Status.ErrorDecodingBytestring;case 83:return Status.ContractFileEmpty;case 84:return Status.ContractBytecodeEmpty;case 85:return Status.InvalidInitialBalance;case 86:return Status.InvalidReceiveRecordThreshold;case 87:return Status.InvalidSendRecordThreshold;case 88:return Status.AccountIsNotGenesisAccount;case 89:return Status.PayerAccountUnauthorized;case 90:return Status.InvalidFreezeTransactionBody;case 91:return Status.FreezeTransactionBodyNotFound;case 92:return Status.TransferListSizeLimitExceeded;case 93:return Status.ResultSizeLimitExceeded;case 94:return Status.NotSpecialAccount;case 95:return Status.ContractNegativeGas;case 96:return Status.ContractNegativeValue;case 97:return Status.InvalidFeeFile;case 98:return Status.InvalidExchangeRateFile;case 99:return Status.InsufficientLocalCallGas;case 100:return Status.EntityNotAllowedToDelete;case 101:return Status.AuthorizationFailed;case 102:return Status.FileUploadedProtoInvalid;case 103:return Status.FileUploadedProtoNotSavedToDisk;case 104:return Status.FeeScheduleFilePartUploaded;case 105:return Status.ExchangeRateChangeLimitExceeded;case 106:return Status.MaxContractStorageExceeded;case 107:return Status.TransferAccountSameAsDeleteAccount;case 108:return Status.TotalLedgerBalanceInvalid;case 110:return Status.ExpirationReductionNotAllowed;case 111:return Status.MaxGasLimitExceeded;case 112:return Status.MaxFileSizeExceeded;case 113:return Status.ReceiverSigRequired;case 150:return Status.InvalidTopicId;case 155:return Status.InvalidAdminKey;case 156:return Status.InvalidSubmitKey;case 157:return Status.Unauthorized;case 158:return Status.InvalidTopicMessage;case 159:return Status.InvalidAutorenewAccount;case 160:return Status.AutorenewAccountNotAllowed;case 162:return Status.TopicExpired;case 163:return Status.InvalidChunkNumber;case 164:return Status.InvalidChunkTransactionId;case 165:return Status.AccountFrozenForToken;case 166:return Status.TokensPerAccountLimitExceeded;case 167:return Status.InvalidTokenId;case 168:return Status.InvalidTokenDecimals;case 169:return Status.InvalidTokenInitialSupply;case 170:return Status.InvalidTreasuryAccountForToken;case 171:return Status.InvalidTokenSymbol;case 172:return Status.TokenHasNoFreezeKey;case 173:return Status.TransfersNotZeroSumForToken;case 174:return Status.MissingTokenSymbol;case 175:return Status.TokenSymbolTooLong;case 176:return Status.AccountKycNotGrantedForToken;case 177:return Status.TokenHasNoKycKey;case 178:return Status.InsufficientTokenBalance;case 179:return Status.TokenWasDeleted;case 180:return Status.TokenHasNoSupplyKey;case 181:return Status.TokenHasNoWipeKey;case 182:return Status.InvalidTokenMintAmount;case 183:return Status.InvalidTokenBurnAmount;case 184:return Status.TokenNotAssociatedToAccount;case 185:return Status.CannotWipeTokenTreasuryAccount;case 186:return Status.InvalidKycKey;case 187:return Status.InvalidWipeKey;case 188:return Status.InvalidFreezeKey;case 189:return Status.InvalidSupplyKey;case 190:return Status.MissingTokenName;case 191:return Status.TokenNameTooLong;case 192:return Status.InvalidWipingAmount;case 193:return Status.TokenIsImmutable;case 194:return Status.TokenAlreadyAssociatedToAccount;case 195:return Status.TransactionRequiresZeroTokenBalances;case 196:return Status.AccountIsTreasury;case 197:return Status.TokenIdRepeatedInTokenList;case 198:return Status.TokenTransferListSizeLimitExceeded;case 199:return Status.EmptyTokenTransferBody;case 200:return Status.EmptyTokenTransferAccountAmounts;case 201:return Status.InvalidScheduleId;case 202:return Status.ScheduleIsImmutable;case 203:return Status.InvalidSchedulePayerId;case 204:return Status.InvalidScheduleAccountId;case 205:return Status.NoNewValidSignatures;case 206:return Status.UnresolvableRequiredSigners;case 207:return Status.ScheduledTransactionNotInWhitelist;case 208:return Status.SomeSignaturesWereInvalid;case 209:return Status.TransactionIdFieldNotAllowed;case 210:return Status.IdenticalScheduleAlreadyCreated;case 211:return Status.InvalidZeroByteInString;case 212:return Status.ScheduleAlreadyDeleted;case 213:return Status.ScheduleAlreadyExecuted;case 214:return Status.MessageSizeTooLarge;case 215:return Status.OperationRepeatedInBucketGroups;case 216:return Status.BucketCapacityOverflow;case 217:return Status.NodeCapacityNotSufficientForOperation;case 218:return Status.BucketHasNoThrottleGroups;case 219:return Status.ThrottleGroupHasZeroOpsPerSec;case 220:return Status.SuccessButMissingExpectedOperation;case 221:return Status.UnparseableThrottleDefinitions;case 222:return Status.InvalidThrottleDefinitions;case 223:return Status.AccountExpiredAndPendingRemoval;case 224:return Status.InvalidTokenMaxSupply;case 225:return Status.InvalidTokenNftSerialNumber;case 226:return Status.InvalidNftId;case 227:return Status.MetadataTooLong;case 228:return Status.BatchSizeLimitExceeded;case 229:return Status.InvalidQueryRange;case 230:return Status.FractionDividesByZero;case 231:return Status.InsufficientPayerBalanceForCustomFee;case 232:return Status.CustomFeesListTooLong;case 233:return Status.InvalidCustomFeeCollector;case 234:return Status.InvalidTokenIdInCustomFees;case 235:return Status.TokenNotAssociatedToFeeCollector;case 236:return Status.TokenMaxSupplyReached;case 237:return Status.SenderDoesNotOwnNftSerialNo;case 238:return Status.CustomFeeNotFullySpecified;case 239:return Status.CustomFeeMustBePositive;case 240:return Status.TokenHasNoFeeScheduleKey;case 241:return Status.CustomFeeOutsideNumericRange;case 242:return Status.RoyaltyFractionCannotExceedOne;case 243:return Status.FractionalFeeMaxAmountLessThanMinAmount;case 244:return Status.CustomScheduleAlreadyHasNoFees;case 245:return Status.CustomFeeDenominationMustBeFungibleCommon;case 246:return Status.CustomFractionalFeeOnlyAllowedForFungibleCommon;case 247:return Status.InvalidCustomFeeScheduleKey;case 248:return Status.InvalidTokenMintMetadata;case 249:return Status.InvalidTokenBurnMetadata;case 250:return Status.CurrentTreasuryStillOwnsNfts;case 251:return Status.AccountStillOwnsNfts;case 252:return Status.TreasuryMustOwnBurnedNft;case 253:return Status.AccountDoesNotOwnWipedNft;case 254:return Status.AccountAmountTransfersOnlyAllowedForFungibleCommon;case 255:return Status.MaxNftsInPriceRegimeHaveBeenMinted;case 256:return Status.PayerAccountDeleted;case 257:return Status.CustomFeeChargingExceededMaxRecursionDepth;case 258:return Status.CustomFeeChargingExceededMaxAccountAmounts;case 259:return Status.InsufficientSenderAccountBalanceForCustomFee;case 260:return Status.SerialNumberLimitReached;case 261:return Status.CustomRoyaltyFeeOnlyAllowedForNonFungibleUnique;case 262:return Status.NoRemainingAutomaticAssociations;case 263:return Status.ExistingAutomaticAssociationsExceedGivenLimit;case 264:return Status.RequestedNumAutomaticAssociationsExceedsAssociationLimit;case 265:return Status.TokenIsPaused;case 266:return Status.TokenHasNoPauseKey;case 267:return Status.InvalidPauseKey;case 268:return Status.FreezeUpdateFileDoesNotExist;case 269:return Status.FreezeUpdateFileHashDoesNotMatch;case 270:return Status.NoUpgradeHasBeenPrepared;case 271:return Status.NoFreezeIsScheduled;case 272:return Status.UpdateFileHashChangedSincePrepareUpgrade;case 273:return Status.FreezeStartTimeMustBeFuture;case 274:return Status.PreparedUpdateFileIsImmutable;case 275:return Status.FreezeAlreadyScheduled;case 276:return Status.FreezeUpgradeInProgress;case 277:return Status.UpdateFileIdDoesNotMatchPrepared;case 278:return Status.UpdateFileHashDoesNotMatchPrepared;case 279:return Status.ConsensusGasExhausted;case 280:return Status.RevertedSuccess;case 281:return Status.MaxStorageInPriceRegimeHasBeenUsed;case 282:return Status.InvalidAliasKey;case 283:return Status.UnexpectedTokenDecimals;case 284:return Status.InvalidProxyAccountId;case 285:return Status.InvalidTransferAccountId;case 286:return Status.InvalidFeeCollectorAccountId;case 287:return Status.AliasIsImmutable;case 288:return Status.SpenderAccountSameAsOwner;case 289:return Status.AmountExceedsTokenMaxSupply;case 290:return Status.NegativeAllowanceAmount;case 291:return Status.CannotApproveForAllFungibleCommon;case 292:return Status.SpenderDoesNotHaveAllowance;case 293:return Status.AmountExceedsAllowance;case 294:return Status.MaxAllowancesExceeded;case 295:return Status.EmptyAllowances;case 296:return Status.SpenderAccountRepeatedInAllowances;case 297:return Status.RepeatedSerialNumsInNftAllowances;case 298:return Status.FungibleTokenInNftAllowances;case 299:return Status.NftInFungibleTokenAllowances;case 300:return Status.InvalidAllowanceOwnerId;case 301:return Status.InvalidAllowanceSpenderId;case 302:return Status.RepeatedAllowancesToDelete;case 303:return Status.InvalidDelegatingSpender;case 304:return Status.DelegatingSpenderCannotGrantApproveForAll;case 305:return Status.DelegatingSpenderDoesNotHaveApproveForAll;case 306:return Status.ScheduleExpirationTimeTooFarInFuture;case 307:return Status.ScheduleExpirationTimeMustBeHigherThanConsensusTime;case 308:return Status.ScheduleFutureThrottleExceeded;case 309:return Status.ScheduleFutureGasLimitExceeded;case 310:return Status.InvalidEthereumTransaction;case 311:return Status.WrongChainId;case 312:return Status.WrongNonce;case 313:return Status.AccessListUnsupported;case 314:return Status.SchedulePendingExpiration;case 315:return Status.ContractIsTokenTreasury;case 316:return Status.ContractHasNonZeroTokenBalances;case 317:return Status.ContractExpiredAndPendingRemoval;case 318:return Status.ContractHasNoAutoRenewAccount;case 319:return Status.PermanentRemovalRequiresSystemInitiation;case 320:return Status.ProxyAccountIdFieldIsDeprecated;case 321:return Status.SelfStakingIsNotAllowed;case 322:return Status.InvalidStakingId;case 323:return Status.StakingNotEnabled;case 324:return Status.InvalidPrngRange;case 325:return Status.MaxEntitiesInPriceRegimeHaveBeenCreated;case 326:return Status.InvalidFullPrefixSignatureForPrecompile;case 327:return Status.InsufficientBalancesForStorageRent;case 328:return Status.MaxChildRecordsExceeded;case 329:return Status.InsufficientBalancesForRenewalFees;case 330:return Status.TransactionHasUnknownFields;case 331:return Status.AccountIsImmutable;case 332:return Status.AliasAlreadyAssigned;case 333:return Status.InvalidMetadataKey;case 334:return Status.TokenHasNoMetadataKey;case 335:return Status.MissingTokenMetadata;case 336:return Status.MissingSerialNumbers;case 337:return Status.TokenHasNoAdminKey;case 338:return Status.NodeDeleted;case 339:return Status.InvalidNodeId;case 340:return Status.InvalidGossipEndpoint;case 341:return Status.InvalidNodeAccountId;case 342:return Status.InvalidNodeDescription;case 343:return Status.InvalidServiceEndpoint;case 344:return Status.InvalidGossipCaCertificate;case 345:return Status.InvalidGrpcCertificate;case 346:return Status.InvalidMaxAutoAssociations;case 347:return Status.MaxNodesCreated;case 348:return Status.IpFqdnCannotBeSetForSameEndpoint;case 349:return Status.GossipEndpointCannotHaveFqdn;case 350:return Status.FqdnSizeTooLarge;case 351:return Status.InvalidEndpoint;case 352:return Status.GossipEndpointsExceededLimit;case 353:return Status.TokenReferenceRepeated;case 354:return Status.InvalidOwnerId;case 355:return Status.TokenReferenceListSizeLimitExceeded;case 356:return Status.ServiceEndpointsExceededLimit;case 357:return Status.InvalidIpv4Address;case 358:return Status.EmptyTokenReferenceList;case 359:return Status.UpdateNodeAccountNotAllowed;case 360:return Status.TokenHasNoMetadataOrSupplyKey;case 361:return Status.EmptyPendingAirdropIdList;case 362:return Status.PendingAirdropIdRepeated;case 363:return Status.MaxPendingAirdropIdExceeded;case 364:return Status.PendingNftAirdropAlreadyExists;case 365:return Status.AccountHasPendingAirdrops;case 366:return Status.ThrottledAtConsensus;case 367:return Status.InvalidPendingAirdropId;case 368:return Status.TokenAirdropWithFallbackRoyalty;case 369:return Status.InvalidTokenInPendingAirdrop;case 370:return Status.ScheduleExpiryIsBusy;case 371:return Status.InvalidGrpcCertificateHash;case 372:return Status.MissingExpiryTime;case 373:return Status.NoSchedulingAllowedAfterScheduledRecursion;case 374:return Status.RecursiveSchedulingLimitReached;default:throw new Error(`(BUG) Status.fromCode() does not handle code: ${e}`)}}valueOf(){return this._code}}Status.Ok=new Status(0),Status.InvalidTransaction=new Status(1),Status.PayerAccountNotFound=new Status(2),Status.InvalidNodeAccount=new Status(3),Status.TransactionExpired=new Status(4),Status.InvalidTransactionStart=new Status(5),Status.InvalidTransactionDuration=new Status(6),Status.InvalidSignature=new Status(7),Status.MemoTooLong=new Status(8),Status.InsufficientTxFee=new Status(9),Status.InsufficientPayerBalance=new Status(10),Status.DuplicateTransaction=new Status(11),Status.Busy=new Status(12),Status.NotSupported=new Status(13),Status.InvalidFileId=new Status(14),Status.InvalidAccountId=new Status(15),Status.InvalidContractId=new Status(16),Status.InvalidTransactionId=new Status(17),Status.ReceiptNotFound=new Status(18),Status.RecordNotFound=new Status(19),Status.InvalidSolidityId=new Status(20),Status.Unknown=new Status(21),Status.Success=new Status(22),Status.FailInvalid=new Status(23),Status.FailFee=new Status(24),Status.FailBalance=new Status(25),Status.KeyRequired=new Status(26),Status.BadEncoding=new Status(27),Status.InsufficientAccountBalance=new Status(28),Status.InvalidSolidityAddress=new Status(29),Status.InsufficientGas=new Status(30),Status.ContractSizeLimitExceeded=new Status(31),Status.LocalCallModificationException=new Status(32),Status.ContractRevertExecuted=new Status(33),Status.ContractExecutionException=new Status(34),Status.InvalidReceivingNodeAccount=new Status(35),Status.MissingQueryHeader=new Status(36),Status.AccountUpdateFailed=new Status(37),Status.InvalidKeyEncoding=new Status(38),Status.NullSolidityAddress=new Status(39),Status.ContractUpdateFailed=new Status(40),Status.InvalidQueryHeader=new Status(41),Status.InvalidFeeSubmitted=new Status(42),Status.InvalidPayerSignature=new Status(43),Status.KeyNotProvided=new Status(44),Status.InvalidExpirationTime=new Status(45),Status.NoWaclKey=new Status(46),Status.FileContentEmpty=new Status(47),Status.InvalidAccountAmounts=new Status(48),Status.EmptyTransactionBody=new Status(49),Status.InvalidTransactionBody=new Status(50),Status.InvalidSignatureTypeMismatchingKey=new Status(51),Status.InvalidSignatureCountMismatchingKey=new Status(52),Status.EmptyLiveHashBody=new Status(53),Status.EmptyLiveHash=new Status(54),Status.EmptyLiveHashKeys=new Status(55),Status.InvalidLiveHashSize=new Status(56),Status.EmptyQueryBody=new Status(57),Status.EmptyLiveHashQuery=new Status(58),Status.LiveHashNotFound=new Status(59),Status.AccountIdDoesNotExist=new Status(60),Status.LiveHashAlreadyExists=new Status(61),Status.InvalidFileWacl=new Status(62),Status.SerializationFailed=new Status(63),Status.TransactionOversize=new Status(64),Status.TransactionTooManyLayers=new Status(65),Status.ContractDeleted=new Status(66),Status.PlatformNotActive=new Status(67),Status.KeyPrefixMismatch=new Status(68),Status.PlatformTransactionNotCreated=new Status(69),Status.InvalidRenewalPeriod=new Status(70),Status.InvalidPayerAccountId=new Status(71),Status.AccountDeleted=new Status(72),Status.FileDeleted=new Status(73),Status.AccountRepeatedInAccountAmounts=new Status(74),Status.SettingNegativeAccountBalance=new Status(75),Status.ObtainerRequired=new Status(76),Status.ObtainerSameContractId=new Status(77),Status.ObtainerDoesNotExist=new Status(78),Status.ModifyingImmutableContract=new Status(79),Status.FileSystemException=new Status(80),Status.AutorenewDurationNotInRange=new Status(81),Status.ErrorDecodingBytestring=new Status(82),Status.ContractFileEmpty=new Status(83),Status.ContractBytecodeEmpty=new Status(84),Status.InvalidInitialBalance=new Status(85),Status.InvalidReceiveRecordThreshold=new Status(86),Status.InvalidSendRecordThreshold=new Status(87),Status.AccountIsNotGenesisAccount=new Status(88),Status.PayerAccountUnauthorized=new Status(89),Status.InvalidFreezeTransactionBody=new Status(90),Status.FreezeTransactionBodyNotFound=new Status(91),Status.TransferListSizeLimitExceeded=new Status(92),Status.ResultSizeLimitExceeded=new Status(93),Status.NotSpecialAccount=new Status(94),Status.ContractNegativeGas=new Status(95),Status.ContractNegativeValue=new Status(96),Status.InvalidFeeFile=new Status(97),Status.InvalidExchangeRateFile=new Status(98),Status.InsufficientLocalCallGas=new Status(99),Status.EntityNotAllowedToDelete=new Status(100),Status.AuthorizationFailed=new Status(101),Status.FileUploadedProtoInvalid=new Status(102),Status.FileUploadedProtoNotSavedToDisk=new Status(103),Status.FeeScheduleFilePartUploaded=new Status(104),Status.ExchangeRateChangeLimitExceeded=new Status(105),Status.MaxContractStorageExceeded=new Status(106),Status.TransferAccountSameAsDeleteAccount=new Status(107),Status.TotalLedgerBalanceInvalid=new Status(108),Status.ExpirationReductionNotAllowed=new Status(110),Status.MaxGasLimitExceeded=new Status(111),Status.MaxFileSizeExceeded=new Status(112),Status.ReceiverSigRequired=new Status(113),Status.InvalidTopicId=new Status(150),Status.InvalidAdminKey=new Status(155),Status.InvalidSubmitKey=new Status(156),Status.Unauthorized=new Status(157),Status.InvalidTopicMessage=new Status(158),Status.InvalidAutorenewAccount=new Status(159),Status.AutorenewAccountNotAllowed=new Status(160),Status.TopicExpired=new Status(162),Status.InvalidChunkNumber=new Status(163),Status.InvalidChunkTransactionId=new Status(164),Status.AccountFrozenForToken=new Status(165),Status.TokensPerAccountLimitExceeded=new Status(166),Status.InvalidTokenId=new Status(167),Status.InvalidTokenDecimals=new Status(168),Status.InvalidTokenInitialSupply=new Status(169),Status.InvalidTreasuryAccountForToken=new Status(170),Status.InvalidTokenSymbol=new Status(171),Status.TokenHasNoFreezeKey=new Status(172),Status.TransfersNotZeroSumForToken=new Status(173),Status.MissingTokenSymbol=new Status(174),Status.TokenSymbolTooLong=new Status(175),Status.AccountKycNotGrantedForToken=new Status(176),Status.TokenHasNoKycKey=new Status(177),Status.InsufficientTokenBalance=new Status(178),Status.TokenWasDeleted=new Status(179),Status.TokenHasNoSupplyKey=new Status(180),Status.TokenHasNoWipeKey=new Status(181),Status.InvalidTokenMintAmount=new Status(182),Status.InvalidTokenBurnAmount=new Status(183),Status.TokenNotAssociatedToAccount=new Status(184),Status.CannotWipeTokenTreasuryAccount=new Status(185),Status.InvalidKycKey=new Status(186),Status.InvalidWipeKey=new Status(187),Status.InvalidFreezeKey=new Status(188),Status.InvalidSupplyKey=new Status(189),Status.MissingTokenName=new Status(190),Status.TokenNameTooLong=new Status(191),Status.InvalidWipingAmount=new Status(192),Status.TokenIsImmutable=new Status(193),Status.TokenAlreadyAssociatedToAccount=new Status(194),Status.TransactionRequiresZeroTokenBalances=new Status(195),Status.AccountIsTreasury=new Status(196),Status.TokenIdRepeatedInTokenList=new Status(197),Status.TokenTransferListSizeLimitExceeded=new Status(198),Status.EmptyTokenTransferBody=new Status(199),Status.EmptyTokenTransferAccountAmounts=new Status(200),Status.InvalidScheduleId=new Status(201),Status.ScheduleIsImmutable=new Status(202),Status.InvalidSchedulePayerId=new Status(203),Status.InvalidScheduleAccountId=new Status(204),Status.NoNewValidSignatures=new Status(205),Status.UnresolvableRequiredSigners=new Status(206),Status.ScheduledTransactionNotInWhitelist=new Status(207),Status.SomeSignaturesWereInvalid=new Status(208),Status.TransactionIdFieldNotAllowed=new Status(209),Status.IdenticalScheduleAlreadyCreated=new Status(210),Status.InvalidZeroByteInString=new Status(211),Status.ScheduleAlreadyDeleted=new Status(212),Status.ScheduleAlreadyExecuted=new Status(213),Status.MessageSizeTooLarge=new Status(214),Status.OperationRepeatedInBucketGroups=new Status(215),Status.BucketCapacityOverflow=new Status(216),Status.NodeCapacityNotSufficientForOperation=new Status(217),Status.BucketHasNoThrottleGroups=new Status(218),Status.ThrottleGroupHasZeroOpsPerSec=new Status(219),Status.SuccessButMissingExpectedOperation=new Status(220),Status.UnparseableThrottleDefinitions=new Status(221),Status.InvalidThrottleDefinitions=new Status(222),Status.AccountExpiredAndPendingRemoval=new Status(223),Status.InvalidTokenMaxSupply=new Status(224),Status.InvalidTokenNftSerialNumber=new Status(225),Status.InvalidNftId=new Status(226),Status.MetadataTooLong=new Status(227),Status.BatchSizeLimitExceeded=new Status(228),Status.InvalidQueryRange=new Status(229),Status.FractionDividesByZero=new Status(230),Status.InsufficientPayerBalanceForCustomFee=new Status(231),Status.CustomFeesListTooLong=new Status(232),Status.InvalidCustomFeeCollector=new Status(233),Status.InvalidTokenIdInCustomFees=new Status(234),Status.TokenNotAssociatedToFeeCollector=new Status(235),Status.TokenMaxSupplyReached=new Status(236),Status.SenderDoesNotOwnNftSerialNo=new Status(237),Status.CustomFeeNotFullySpecified=new Status(238),Status.CustomFeeMustBePositive=new Status(239),Status.TokenHasNoFeeScheduleKey=new Status(240),Status.CustomFeeOutsideNumericRange=new Status(241),Status.RoyaltyFractionCannotExceedOne=new Status(242),Status.FractionalFeeMaxAmountLessThanMinAmount=new Status(243),Status.CustomScheduleAlreadyHasNoFees=new Status(244),Status.CustomFeeDenominationMustBeFungibleCommon=new Status(245),Status.CustomFractionalFeeOnlyAllowedForFungibleCommon=new Status(246),Status.InvalidCustomFeeScheduleKey=new Status(247),Status.InvalidTokenMintMetadata=new Status(248),Status.InvalidTokenBurnMetadata=new Status(249),Status.CurrentTreasuryStillOwnsNfts=new Status(250),Status.AccountStillOwnsNfts=new Status(251),Status.TreasuryMustOwnBurnedNft=new Status(252),Status.AccountDoesNotOwnWipedNft=new Status(253),Status.AccountAmountTransfersOnlyAllowedForFungibleCommon=new Status(254),Status.MaxNftsInPriceRegimeHaveBeenMinted=new Status(255),Status.PayerAccountDeleted=new Status(256),Status.CustomFeeChargingExceededMaxRecursionDepth=new Status(257),Status.CustomFeeChargingExceededMaxAccountAmounts=new Status(258),Status.InsufficientSenderAccountBalanceForCustomFee=new Status(259),Status.SerialNumberLimitReached=new Status(260),Status.CustomRoyaltyFeeOnlyAllowedForNonFungibleUnique=new Status(261),Status.NoRemainingAutomaticAssociations=new Status(262),Status.ExistingAutomaticAssociationsExceedGivenLimit=new Status(263),Status.RequestedNumAutomaticAssociationsExceedsAssociationLimit=new Status(264),Status.TokenIsPaused=new Status(265),Status.TokenHasNoPauseKey=new Status(266),Status.InvalidPauseKey=new Status(267),Status.FreezeUpdateFileDoesNotExist=new Status(268),Status.FreezeUpdateFileHashDoesNotMatch=new Status(269),Status.NoUpgradeHasBeenPrepared=new Status(270),Status.NoFreezeIsScheduled=new Status(271),Status.UpdateFileHashChangedSincePrepareUpgrade=new Status(272),Status.FreezeStartTimeMustBeFuture=new Status(273),Status.PreparedUpdateFileIsImmutable=new Status(274),Status.FreezeAlreadyScheduled=new Status(275),Status.FreezeUpgradeInProgress=new Status(276),Status.UpdateFileIdDoesNotMatchPrepared=new Status(277),Status.UpdateFileHashDoesNotMatchPrepared=new Status(278),Status.ConsensusGasExhausted=new Status(279),Status.RevertedSuccess=new Status(280),Status.MaxStorageInPriceRegimeHasBeenUsed=new Status(281),Status.InvalidAliasKey=new Status(282),Status.UnexpectedTokenDecimals=new Status(283),Status.InvalidProxyAccountId=new Status(284),Status.InvalidTransferAccountId=new Status(285),Status.InvalidFeeCollectorAccountId=new Status(286),Status.AliasIsImmutable=new Status(287),Status.SpenderAccountSameAsOwner=new Status(288),Status.AmountExceedsTokenMaxSupply=new Status(289),Status.NegativeAllowanceAmount=new Status(290),Status.CannotApproveForAllFungibleCommon=new Status(291),Status.SpenderDoesNotHaveAllowance=new Status(292),Status.AmountExceedsAllowance=new Status(293),Status.MaxAllowancesExceeded=new Status(294),Status.EmptyAllowances=new Status(295),Status.SpenderAccountRepeatedInAllowances=new Status(296),Status.RepeatedSerialNumsInNftAllowances=new Status(297),Status.FungibleTokenInNftAllowances=new Status(298),Status.NftInFungibleTokenAllowances=new Status(299),Status.InvalidAllowanceOwnerId=new Status(300),Status.InvalidAllowanceSpenderId=new Status(301),Status.RepeatedAllowancesToDelete=new Status(302),Status.InvalidDelegatingSpender=new Status(303),Status.DelegatingSpenderCannotGrantApproveForAll=new Status(304),Status.DelegatingSpenderDoesNotHaveApproveForAll=new Status(305),Status.ScheduleExpirationTimeTooFarInFuture=new Status(306),Status.ScheduleExpirationTimeMustBeHigherThanConsensusTime=new Status(307),Status.ScheduleFutureThrottleExceeded=new Status(308),Status.ScheduleFutureGasLimitExceeded=new Status(309),Status.InvalidEthereumTransaction=new Status(310),Status.WrongChainId=new Status(311),Status.WrongNonce=new Status(312),Status.AccessListUnsupported=new Status(313),Status.SchedulePendingExpiration=new Status(314),Status.ContractIsTokenTreasury=new Status(315),Status.ContractHasNonZeroTokenBalances=new Status(316),Status.ContractExpiredAndPendingRemoval=new Status(317),Status.ContractHasNoAutoRenewAccount=new Status(318),Status.PermanentRemovalRequiresSystemInitiation=new Status(319),Status.ProxyAccountIdFieldIsDeprecated=new Status(320),Status.SelfStakingIsNotAllowed=new Status(321),Status.InvalidStakingId=new Status(322),Status.StakingNotEnabled=new Status(323),Status.InvalidPrngRange=new Status(324),Status.MaxEntitiesInPriceRegimeHaveBeenCreated=new Status(325),Status.InvalidFullPrefixSignatureForPrecompile=new Status(326),Status.InsufficientBalancesForStorageRent=new Status(327),Status.MaxChildRecordsExceeded=new Status(328),Status.InsufficientBalancesForRenewalFees=new Status(329),Status.TransactionHasUnknownFields=new Status(330),Status.AccountIsImmutable=new Status(331),Status.AliasAlreadyAssigned=new Status(332),Status.InvalidMetadataKey=new Status(333),Status.TokenHasNoMetadataKey=new Status(334),Status.MissingTokenMetadata=new Status(335),Status.MissingSerialNumbers=new Status(336),Status.TokenHasNoAdminKey=new Status(337),Status.NodeDeleted=new Status(338),Status.InvalidNodeId=new Status(339),Status.InvalidGossipEndpoint=new Status(340),Status.InvalidNodeAccountId=new Status(341),Status.InvalidNodeDescription=new Status(342),Status.InvalidServiceEndpoint=new Status(343),Status.InvalidGossipCaCertificate=new Status(344),Status.InvalidGrpcCertificate=new Status(345),Status.InvalidMaxAutoAssociations=new Status(346),Status.MaxNodesCreated=new Status(347),Status.IpFqdnCannotBeSetForSameEndpoint=new Status(348),Status.GossipEndpointCannotHaveFqdn=new Status(349),Status.FqdnSizeTooLarge=new Status(350),Status.InvalidEndpoint=new Status(351),Status.GossipEndpointsExceededLimit=new Status(352),Status.TokenReferenceRepeated=new Status(353),Status.InvalidOwnerId=new Status(354),Status.TokenReferenceListSizeLimitExceeded=new Status(355),Status.ServiceEndpointsExceededLimit=new Status(356),Status.InvalidIpv4Address=new Status(357),Status.EmptyTokenReferenceList=new Status(358),Status.UpdateNodeAccountNotAllowed=new Status(359),Status.TokenHasNoMetadataOrSupplyKey=new Status(360),Status.EmptyPendingAirdropIdList=new Status(361),Status.PendingAirdropIdRepeated=new Status(362),Status.MaxPendingAirdropIdExceeded=new Status(363),Status.PendingNftAirdropAlreadyExists=new Status(364),Status.AccountHasPendingAirdrops=new Status(365),Status.ThrottledAtConsensus=new Status(366),Status.InvalidPendingAirdropId=new Status(367),Status.TokenAirdropWithFallbackRoyalty=new Status(368),Status.InvalidTokenInPendingAirdrop=new Status(369),Status.ScheduleExpiryIsBusy=new Status(370),Status.InvalidGrpcCertificateHash=new Status(371),Status.MissingExpiryTime=new Status(372),Status.NoSchedulingAllowedAfterScheduledRecursion=new Status(373),Status.RecursiveSchedulingLimitReached=new Status(374);class GrpcStatus{constructor(e){this._code=e,Object.freeze(this)}static _fromValue(e){switch(e){case 0:return GrpcStatus.Ok;case 1:return GrpcStatus.Cancelled;case 2:return GrpcStatus.Unknown;case 3:return GrpcStatus.InvalidArgument;case 4:return GrpcStatus.DeadlineExceeded;case 5:return GrpcStatus.NotFound;case 6:return GrpcStatus.AlreadyExists;case 7:return GrpcStatus.PermissionDenied;case 8:return GrpcStatus.ResourceExhausted;case 9:return GrpcStatus.FailedPrecondition;case 10:return GrpcStatus.Aborted;case 11:return GrpcStatus.OutOfRange;case 12:return GrpcStatus.Unimplemented;case 13:return GrpcStatus.Internal;case 14:return GrpcStatus.Unavailable;case 15:return GrpcStatus.DataLoss;case 16:return GrpcStatus.Unauthenticated;case 17:return GrpcStatus.Timeout;case 18:return GrpcStatus.GrpcWeb;default:throw new Error("(BUG) non-exhaustive GrpcStatus switch statement")}}toString(){switch(this){case GrpcStatus.Ok:return"OK";case GrpcStatus.Cancelled:return"CANCELLED";case GrpcStatus.Unknown:return"UNKNOWN";case GrpcStatus.InvalidArgument:return"INVALID_ARGUMENT";case GrpcStatus.DeadlineExceeded:return"DEADLINE_EXCEEDED";case GrpcStatus.NotFound:return"NOT_FOUND";case GrpcStatus.AlreadyExists:return"ALREADY_EXISTS";case GrpcStatus.PermissionDenied:return"PERMISSION_DENIED";case GrpcStatus.Unauthenticated:return"UNAUTHENTICATED";case GrpcStatus.ResourceExhausted:return"RESOURCE_EXHAUSTED";case GrpcStatus.FailedPrecondition:return"FAILED_PRECONDITION";case GrpcStatus.Aborted:return"ABORTED";case GrpcStatus.OutOfRange:return"OUT_OF_RANGE";case GrpcStatus.Unimplemented:return"UNIMPLEMENTED";case GrpcStatus.Internal:return"INTERNAL";case GrpcStatus.Unavailable:return"UNAVAILABLE";case GrpcStatus.DataLoss:return"DATA_LOSS";case GrpcStatus.Timeout:return"TIMEOUT";case GrpcStatus.GrpcWeb:return"GRPC_WEB";default:return`UNKNOWN (${this._code})`}}valueOf(){return this._code}}GrpcStatus.Ok=new GrpcStatus(0),GrpcStatus.Cancelled=new GrpcStatus(1),GrpcStatus.Unknown=new GrpcStatus(2),GrpcStatus.InvalidArgument=new GrpcStatus(3),GrpcStatus.DeadlineExceeded=new GrpcStatus(4),GrpcStatus.NotFound=new GrpcStatus(5),GrpcStatus.AlreadyExists=new GrpcStatus(6),GrpcStatus.PermissionDenied=new GrpcStatus(7),GrpcStatus.ResourceExhausted=new GrpcStatus(8),GrpcStatus.FailedPrecondition=new GrpcStatus(9),GrpcStatus.Aborted=new GrpcStatus(10),GrpcStatus.OutOfRange=new GrpcStatus(11),GrpcStatus.Unimplemented=new GrpcStatus(12),GrpcStatus.Internal=new GrpcStatus(13),GrpcStatus.Unavailable=new GrpcStatus(14),GrpcStatus.DataLoss=new GrpcStatus(15),GrpcStatus.Unauthenticated=new GrpcStatus(16),GrpcStatus.Timeout=new GrpcStatus(17),GrpcStatus.GrpcWeb=new GrpcStatus(18);class GrpcServiceError extends Error{constructor(e,t){super(`gRPC service failed with: Status: ${e.toString()}, Code: ${e.valueOf()}`),this.status=e,this.nodeAccountId=t,this.name="GrpcServiceError",void 0!==Error.captureStackTrace&&Error.captureStackTrace(this,GrpcServiceError)}static _fromResponse(e){if(null!=e.code&&null!=e.details){const t=GrpcStatus._fromValue(e.code),r=new GrpcServiceError(t);return r.stack+=`\nCaused by: ${e.stack?e.stack.toString():""}`,r.message+=`: ${e.details}`,r}return e}toString(){return`${this.name}: ${this.message}`}}class HttpStatus{constructor(e){this._code=e,Object.freeze(this)}static _fromValue(e){return new HttpStatus(e)}toString(){return this._code.toString()}valueOf(){return this._code}}class HttpError extends Error{constructor(e){super(`failed with error code: ${e.toString()}`),this.status=e,this.name="HttpError",void 0!==Error.captureStackTrace&&Error.captureStackTrace(this,HttpError)}}class MaxAttemptsOrTimeoutError extends Error{constructor(e,t){super(e),this.nodeAccountId=t}toJSON(){return{message:this.message,nodeAccountId:this.nodeAccountId}}toString(){return JSON.stringify(this.toJSON())}valueOf(){return this.toJSON()}}const ExecutionState={Finished:"Finished",Retry:"Retry",Error:"Error"},RST_STREAM=/\brst[^0-9a-zA-Z]stream\b/i,DEFAULT_MAX_ATTEMPTS=10;class Executable{constructor(){this._maxAttempts=DEFAULT_MAX_ATTEMPTS,this._nodeAccountIds=new List,this.transactionNodeIds=[],this._signOnDemand=!1,this._minBackoff=null,this._maxBackoff=8e3,this._operator=null,this._requestTimeout=null,this._grpcDeadline=null,this._logger=null}get nodeAccountIds(){return this._nodeAccountIds.isEmpty?null:(this._nodeAccountIds.setLocked(),this._nodeAccountIds.list)}setNodeAccountIds(e){return this._nodeAccountIds.setList(e).setLocked(),this}get maxRetries(){return console.warn("Deprecated: use maxAttempts instead"),this.maxAttempts}setMaxRetries(e){return console.warn("Deprecated: use setMaxAttempts() instead"),this.setMaxAttempts(e)}get maxAttempts(){return this._maxAttempts}setMaxAttempts(e){return this._maxAttempts=e,this}get grpcDeadline(){return this._grpcDeadline}setGrpcDeadline(e){return this._grpcDeadline=e,this}setMinBackoff(e){if(null==e)throw new Error("minBackoff cannot be null.");if(null!=this._maxBackoff&&e>this._maxBackoff)throw new Error("minBackoff cannot be larger than maxBackoff.");return this._minBackoff=e,this}get minBackoff(){return this._minBackoff}setMaxBackoff(e){if(null==e)throw new Error("maxBackoff cannot be null.");if(null!=this._minBackoff&&ee.toString()));if(!this.transactionNodeIds.some((t=>e.includes(t)))){const t=e.length>2?`${e.slice(0,2).join(", ")} ...`:e.join(", "),r=1===e.length;throw new Error(`Attempting to execute a transaction against node${r?"":"s"} ${t}, which ${r?"is":"are"} not included in the Client's node list. Please review your Client configuration.`)}}for(let a=1;a<=r;a+=1){if(null!=this._requestTimeout&&n+this._requestTimeout<=Date.now())throw new MaxAttemptsOrTimeoutError("timeout exceeded",this._nodeAccountIds.isEmpty?"No node account ID set":this._nodeAccountIds.current.toString());let t,s;if(this._nodeAccountIds.isEmpty?(s=e._network.getNode(),t=s.accountId,this._nodeAccountIds.setList([t])):(t=this._nodeAccountIds.current,s=e._network.getNode(t)),null==s)throw new Error(`NodeAccountId not recognized: ${t.toString()}`);if(this.transactionNodeIds.length){if(!this.transactionNodeIds.includes(t.toString())){console.error(`Attempting to execute a transaction against node ${t.toString()}, which is not included in the Client's node list. Please review your Client configuration.`),this._nodeAccountIds.advance();continue}}const c=this._getLogId();this._logger&&this._logger.debug(`[${c}] Node AccountID: ${s.accountId.toString()}, IP: ${s.address.toString()}`);const u=s.getChannel(),l=await this._makeRequestAsync();let d;if(this._advanceRequest(),!s.isHealthy()&&this._nodeAccountIds.length>1){this._logger&&this._logger.debug(`[${c}] node is not healthy, skipping waiting ${s.getRemainingTime()}`);continue}try{const e=[];null!=this._grpcDeadline&&e.push(new Promise(((e,t)=>setTimeout((()=>t(new Error("grpc deadline exceeded"))),this._grpcDeadline)))),this._logger&&this._logger.trace(`[${this._getLogId()}] sending protobuf ${encode$9(this._requestToBytes(l))}`),e.push(this._execute(u,l)),d=await Promise.race(e)}catch(i){const t=GrpcServiceError._fromResponse(i);if(o=t,this._logger&&this._logger.debug(`[${c}] received error ${JSON.stringify(t)}`),(t instanceof GrpcServiceError||t instanceof HttpError)&&this._shouldRetryExceptionally(t)&&a<=r){this._logger&&this._logger.debug(`[${this._getLogId()}] node with accountId: ${s.accountId.toString()} and proxy IP: ${s.address.toString()} is unhealthy`),e._network.increaseBackoff(s);continue}throw i}this._logger&&this._logger.trace(`[${this._getLogId()}] sending protobuf ${encode$9(this._responseToBytes(d))}`),e._network.decreaseBackoff(s);const[f,h]=this._shouldRetry(l,d);switch(f.toString()!==Status.Ok.toString()&&f.toString()!==Status.Success.toString()&&(o=f),h){case ExecutionState.Retry:await delayForAttempt(a,this._minBackoff,this._maxBackoff);continue;case ExecutionState.Finished:return this._mapResponse(d,t,l);case ExecutionState.Error:throw this._mapStatusError(l,d,t);default:throw new Error("(BUG) non-exhaustive switch statement for `ExecutionState`")}}throw new MaxAttemptsOrTimeoutError(`max attempts of ${r.toString()} was reached for request with last error being: ${null!=o?o.toString():""}`,this._nodeAccountIds.current.toString())}toBytes(){throw new Error("not implemented")}setLogger(e){return this._logger=e,this}get logger(){return this._logger}}function delayForAttempt(e,t,r){const n=Math.min(Math.floor(t*Math.pow(2,e)),r);return new Promise((e=>setTimeout(e,n)))}class PrecheckStatusError extends StatusError{constructor(e){super(e,`transaction ${e.transactionId.toString()} failed precheck with status ${e.status.toString()} against node account id ${e.nodeId.toString()}`),this.contractFunctionResult=e.contractFunctionResult,this.nodeId=e.nodeId}toJSON(){return{name:this.name,status:this.status.toString(),transactionId:this.transactionId.toString(),nodeId:this.nodeId.toString(),message:this.message,contractFunctionResult:this.contractFunctionResult}}}class MaxQueryPaymentExceeded extends Error{constructor(e,t){super(),this.message=`query cost of ${e.toString()} HBAR exceeds max set on client: ${t.toString()} HBAR`,this.name="MaxQueryPaymentExceededError",this.queryCost=e,this.maxQueryPayment=t}}const QUERY_REGISTRY=new Map;class Query extends Executable{constructor(){super(),this._paymentTransactionId=null,this._paymentTransactions=[],this._queryPayment=null,this._maxQueryPayment=null,this._timestamp=Date.now()}static fromBytes(e){const t=proto_1.Query.decode(e);if(null==t.query)throw new Error("(BUG) query.query was not set in the protobuf");const r=QUERY_REGISTRY.get(t.query);if(null==r)throw new Error(`(BUG) Query.fromBytes() not implemented for type ${t.query}`);return r(t)}toBytes(){return proto_1.Query.encode(this._makeRequest()).finish()}setQueryPayment(e){return this._queryPayment=e,this}setMaxQueryPayment(e){return this._maxQueryPayment=e,this}async getCost(e){if(this._nodeAccountIds.isEmpty&&this._nodeAccountIds.setList(e._network.getNodeAccountIdsForExecute()),1!=COST_QUERY.length)throw new Error("CostQuery has not been loaded yet");this._timestamp=Date.now();const t=await COST_QUERY[0](this).execute(e);return Hbar.fromTinybars(t._valueInTinybar.multipliedBy(1.1).toFixed(0))}setPaymentTransactionId(e){return this._paymentTransactionId=e,this}get paymentTransactionId(){return this._paymentTransactionId}_getTransactionId(){if(null==this._paymentTransactionId)throw new Error("Query.PaymentTransactionId was not set duration execution");return this._paymentTransactionId}_isPaymentRequired(){return!0}_validateChecksums(e){}async _beforeExecute(e){if(this._paymentTransactions.length>0)return;if(e.isAutoValidateChecksumsEnabled()&&this._validateChecksums(e),this._nodeAccountIds.isEmpty&&this._nodeAccountIds.setList(e._network.getNodeAccountIdsForExecute()),this._operator=null!=this._operator?this._operator:e._operator,null==this._paymentTransactionId)if(this._isPaymentRequired()){if(this.transactionNodeIds=Object.values(e.network).map((e=>e.toString())),null==this._operator)throw new Error("`client` must have an `operator` or an explicit payment transaction must be provided");this._paymentTransactionId=TransactionId.generate(this._operator.accountId)}else this._paymentTransactionId=TransactionId.generate(new AccountId(0));let t=new Hbar(0);const r=null!=this._maxQueryPayment?this._maxQueryPayment:e.defaultMaxQueryPayment;if(null!=this._queryPayment)t=this._queryPayment;else if(0===this._paymentTransactions.length&&this._isPaymentRequired()){const n=await this.getCost(e);if(r.toTinybars().toInt()0&&(e={responseType:proto_1.ResponseType.ANSWER_ONLY,payment:this._paymentTransactions[this._nodeAccountIds.index]}),e}_onMakeRequest(e){throw new Error("not implemented")}_makeRequest(){let e={};return this._isPaymentRequired()&&null!=this._paymentTransactions&&(e={payment:this._paymentTransactions[this._nodeAccountIds.index],responseType:proto_1.ResponseType.ANSWER_ONLY}),this._onMakeRequest(e)}async _makeRequestAsync(){let e={responseType:proto_1.ResponseType.ANSWER_ONLY};const t=this._getLogId(),r=this._nodeAccountIds.current,n=TransactionId.generate(this._operator?this._operator.accountId:new AccountId(0)),o=this._queryPayment;return this._logger&&this._logger.debug(`[${t}] making a payment transaction for node ${r.toString()} and transaction ID ${n.toString()} with amount ${o.toString()}`),e.payment=await _makePaymentTransaction(n,r,this._isPaymentRequired()?this._operator:null,o),this._onMakeRequest(e)}_shouldRetry(e,t){const{nodeTransactionPrecheckCode:r}=this._mapResponseHeader(t),n=Status._fromCode(null!=r?r:proto_1.ResponseCodeEnum.OK);switch(this._logger&&this._logger.debug(`[${this._getLogId()}] received status ${n.toString()}`),n){case Status.Busy:case Status.Unknown:case Status.PlatformTransactionNotCreated:case Status.PlatformNotActive:return[n,ExecutionState.Retry];case Status.Ok:return[n,ExecutionState.Finished];default:return[n,ExecutionState.Error]}}_mapStatusError(e,t,r){const{nodeTransactionPrecheckCode:n}=this._mapResponseHeader(t),o=Status._fromCode(null!=n?n:proto_1.ResponseCodeEnum.OK);return new PrecheckStatusError({nodeId:r,status:o,transactionId:this._getTransactionId(),contractFunctionResult:null})}_requestToBytes(e){return proto_1.Query.encode(e).finish()}_responseToBytes(e){return proto_1.Response.encode(e).finish()}}async function _makePaymentTransaction(e,t,r,n){const o=[];null!=r?(o.push({accountID:r.accountId._toProtobuf(),amount:n.negated().toTinybars()}),o.push({accountID:t._toProtobuf(),amount:n.toTinybars()})):(o.push({accountID:new AccountId(0)._toProtobuf(),amount:n.negated().toTinybars()}),o.push({accountID:t._toProtobuf(),amount:n.toTinybars()}));const i={transactionID:e._toProtobuf(),nodeAccountID:t._toProtobuf(),transactionFee:new Hbar(1).toTinybars(),transactionValidDuration:{seconds:Long$1.fromNumber(120)},cryptoTransfer:{transfers:{accountAmounts:o}}},a={bodyBytes:proto_1.TransactionBody.encode(i).finish()};if(null!=r){const e=await r.transactionSigner(a.bodyBytes);a.sigMap={sigPair:[r.publicKey._toProtobufSignature(e)]}}return{signedTransactionBytes:proto_1.SignedTransaction.encode(a).finish()}}const COST_QUERY=[];class ContractId extends Key{constructor(e,t,r,n){super();const o=constructor(e,t,r);this.shard=o.shard,this.realm=o.realm,this.num=o.num,this.evmAddress=null!=n?n:null,this._checksum=null}static fromEvmAddress(e,t,r){return isLongZeroAddress(decode$a(r))?new ContractId(...fromSolidityAddress(r)):new ContractId(e,t,0,decode$a(r))}static fromString(e){const t=fromStringSplitter(e);if(Number.isNaN(t.shard)||Number.isNaN(t.realm))throw new Error("invalid format for entity ID");const r=null!=t.shard?Long$1.fromString(t.shard):Long$1.ZERO,n=null!=t.realm?Long$1.fromString(t.realm):Long$1.ZERO,[o,i]=t.numOrHex.length<40?[Long$1.fromString(t.numOrHex),void 0]:[Long$1.ZERO,decode$a(t.numOrHex)];return new ContractId(r,n,o,i)}static _fromProtobuf(e){return new ContractId(null!=e.shardNum?e.shardNum:0,null!=e.realmNum?e.realmNum:0,null!=e.contractNum?e.contractNum:0)}get checksum(){return this._checksum}async populateAccountNum(e){if(null===this.evmAddress)throw new Error("field `evmAddress` should not be null");const t=`https://${e.mirrorNetwork[0].slice(0,e.mirrorNetwork[0].indexOf(":"))}/api/v1/contracts/${encode$9(this.evmAddress)}`,r=(await axios.get(t)).data.contract_id;return this.num=Long$1.fromString(r.slice(r.lastIndexOf(".")+1)),this}validate(e){console.warn("Deprecated: Use `validateChecksum` instead"),this.validateChecksum(e)}validateChecksum(e){validateChecksum(this.shard,this.realm,this.num,this._checksum,e)}static fromBytes(e){return ContractId._fromProtobuf(proto_1.ContractID.decode(e))}static fromSolidityAddress(e){return isLongZeroAddress(decode$a(e))?new ContractId(...fromSolidityAddress(e)):this.fromEvmAddress(0,0,e)}toSolidityAddress(){return null!=this.evmAddress?encode$9(this.evmAddress):toSolidityAddress([this.shard,this.realm,this.num])}_toProtobuf(){return{contractNum:this.num,shardNum:this.shard,realmNum:this.realm,evmAddress:this.evmAddress}}toString(){return null!=this.evmAddress?`${this.shard.toString()}.${this.realm.toString()}.${encode$9(this.evmAddress)}`:`${this.shard.toString()}.${this.realm.toString()}.${this.num.toString()}`}toStringWithChecksum(e){return toStringWithChecksum(this.toString(),e)}toBytes(){return proto_1.ContractID.encode(this._toProtobuf()).finish()}clone(){const e=new ContractId(this);return e._checksum=this._checksum,e.evmAddress=this.evmAddress,e}compare(e){return compare$1([this.shard,this.realm,this.num],[e.shard,e.realm,e.num])}equals(e){let t=!1;return null!=this.evmAddress&&null!=e.evmAddress&&(t=arrayEqual(this.evmAddress,e.evmAddress)),this.shard.eq(e.shard)&&this.realm.eq(e.realm)&&this.num.eq(e.num)&&t}_toProtobufKey(){return{contractID:this._toProtobuf()}}static __fromProtobufKey(e){return ContractId._fromProtobuf(e)}}CACHE.setContractId((e=>ContractId.__fromProtobufKey(e)));class FileId{constructor(e,t,r){const n=constructor(e,t,r);this.shard=n.shard,this.realm=n.realm,this.num=n.num,this._checksum=null}static fromString(e){const t=fromString$4(e),r=new FileId(t);return r._checksum=t.checksum,r}static _fromProtobuf(e){return new FileId(null!=e.shardNum?Long$1.fromString(e.shardNum.toString()):0,null!=e.realmNum?Long$1.fromString(e.realmNum.toString()):0,null!=e.fileNum?Long$1.fromString(e.fileNum.toString()):0)}get checksum(){return this._checksum}validate(e){console.warn("Deprecated: Use `validateChecksum` instead"),this.validateChecksum(e)}validateChecksum(e){validateChecksum(this.shard,this.realm,this.num,this._checksum,e)}static fromBytes(e){return FileId._fromProtobuf(proto_1.FileID.decode(e))}static fromSolidityAddress(e){const[t,r,n]=fromSolidityAddress(e);return new FileId(t,r,n)}toSolidityAddress(){return toSolidityAddress([this.shard,this.realm,this.num])}_toProtobuf(){return{fileNum:this.num,shardNum:this.shard,realmNum:this.realm}}toString(){return`${this.shard.toString()}.${this.realm.toString()}.${this.num.toString()}`}toStringWithChecksum(e){return toStringWithChecksum(this.toString(),e)}toBytes(){return proto_1.FileID.encode(this._toProtobuf()).finish()}clone(){const e=new FileId(this);return e._checksum=this._checksum,e}compare(e){return compare$1([this.shard,this.realm,this.num],[e.shard,e.realm,e.num])}}FileId.ADDRESS_BOOK=new FileId(102),FileId.FEE_SCHEDULE=new FileId(111),FileId.EXCHANGE_RATES=new FileId(112);class TopicId{constructor(e,t,r){const n=constructor(e,t,r);this.shard=n.shard,this.realm=n.realm,this.num=n.num,this._checksum=null}static fromString(e){const t=fromString$4(e),r=new TopicId(t);return r._checksum=t.checksum,r}static _fromProtobuf(e){return new TopicId(null!=e.shardNum?e.shardNum:0,null!=e.realmNum?e.realmNum:0,null!=e.topicNum?e.topicNum:0)}get checksum(){return this._checksum}validate(e){console.warn("Deprecated: Use `validateChecksum` instead"),this.validateChecksum(e)}validateChecksum(e){validateChecksum(this.shard,this.realm,this.num,this._checksum,e)}static fromBytes(e){return TopicId._fromProtobuf(proto_1.TopicID.decode(e))}static fromSolidityAddress(e){const[t,r,n]=fromSolidityAddress(e);return new TopicId(t,r,n)}toSolidityAddress(){return toSolidityAddress([this.shard,this.realm,this.num])}_toProtobuf(){return{topicNum:this.num,shardNum:this.shard,realmNum:this.realm}}toString(){return`${this.shard.toString()}.${this.realm.toString()}.${this.num.toString()}`}toStringWithChecksum(e){return toStringWithChecksum(this.toString(),e)}toBytes(){return proto_1.TopicID.encode(this._toProtobuf()).finish()}clone(){const e=new TopicId(this);return e._checksum=this._checksum,e}compare(e){return compare$1([this.shard,this.realm,this.num],[e.shard,e.realm,e.num])}}class TokenId{constructor(e,t,r){const n=constructor(e,t,r);this.shard=n.shard,this.realm=n.realm,this.num=n.num,this._checksum=null}static fromString(e){const t=fromString$4(e),r=new TokenId(t);return r._checksum=t.checksum,r}static _fromProtobuf(e){return new TokenId(null!=e.shardNum?e.shardNum:0,null!=e.realmNum?e.realmNum:0,null!=e.tokenNum?e.tokenNum:0)}get checksum(){return this._checksum}validate(e){console.warn("Deprecated: Use `validateChecksum` instead"),this.validateChecksum(e)}validateChecksum(e){validateChecksum(this.shard,this.realm,this.num,this._checksum,e)}static fromBytes(e){return TokenId._fromProtobuf(proto_1.TokenID.decode(e))}static fromSolidityAddress(e){return new TokenId(...fromSolidityAddress(e))}toSolidityAddress(){return toSolidityAddress([this.shard,this.realm,this.num])}_toProtobuf(){return{tokenNum:this.num,shardNum:this.shard,realmNum:this.realm}}toString(){return`${this.shard.toString()}.${this.realm.toString()}.${this.num.toString()}`}toStringWithChecksum(e){return toStringWithChecksum(this.toString(),e)}toBytes(){return proto_1.TokenID.encode(this._toProtobuf()).finish()}clone(){const e=new TokenId(this);return e._checksum=this._checksum,e}compare(e){return compare$1([this.shard,this.realm,this.num],[e.shard,e.realm,e.num])}}class ScheduleId{constructor(e,t,r){const n=constructor(e,t,r);this.shard=n.shard,this.realm=n.realm,this.num=n.num,this._checksum=null}static fromString(e){const t=fromString$4(e),r=new ScheduleId(t);return r._checksum=t.checksum,r}static _fromProtobuf(e){return new ScheduleId(null!=e.shardNum?e.shardNum:0,null!=e.realmNum?e.realmNum:0,null!=e.scheduleNum?e.scheduleNum:0)}get checksum(){return this._checksum}validate(e){console.warn("Deprecated: Use `validateChecksum` instead"),this.validateChecksum(e)}validateChecksum(e){validateChecksum(this.shard,this.realm,this.num,this._checksum,e)}static fromBytes(e){return ScheduleId._fromProtobuf(proto_1.ScheduleID.decode(e))}static fromSolidityAddress(e){return new ScheduleId(...fromSolidityAddress(e))}toSolidityAddress(){return toSolidityAddress([this.shard,this.realm,this.num])}_toProtobuf(){return{scheduleNum:this.num,shardNum:this.shard,realmNum:this.realm}}toString(){return`${this.shard.toString()}.${this.realm.toString()}.${this.num.toString()}`}toStringWithChecksum(e){return toStringWithChecksum(this.toString(),e)}toBytes(){return proto_1.ScheduleID.encode(this._toProtobuf()).finish()}clone(){const e=new ScheduleId(this);return e._checksum=this._checksum,e}compare(e){return compare$1([this.shard,this.realm,this.num],[e.shard,e.realm,e.num])}}class ExchangeRate{constructor(e){this.hbars=e.hbars,this.cents=e.cents,this.expirationTime=e.expirationTime,this.exchangeRateInCents=e.cents/e.hbars,Object.freeze(this)}static _fromProtobuf(e){return new ExchangeRate({hbars:e.hbarEquiv,cents:e.centEquiv,expirationTime:new Date(null!=e.expirationTime&&null!=e.expirationTime.seconds?Long$1.isLong(e.expirationTime.seconds)?1e3*e.expirationTime.seconds.toInt():e.expirationTime.seconds:0)})}_toProtobuf(){return{hbarEquiv:this.hbars,centEquiv:this.cents,expirationTime:{seconds:Long$1.fromNumber(Math.trunc(this.expirationTime.getTime()/1e3))}}}toJSON(){return{hbars:this.hbars,cents:this.cents,expirationTime:this.expirationTime,exchangeRateInCents:this.exchangeRateInCents}}toString(){return JSON.stringify(this.toJSON())}}class TransactionReceipt{constructor(e){this.status=e.status,this.accountId=e.accountId,this.fileId=e.fileId,this.contractId=e.contractId,this.topicId=e.topicId,this.tokenId=e.tokenId,this.scheduleId=e.scheduleId,this.exchangeRate=e.exchangeRate,this.topicSequenceNumber=e.topicSequenceNumber,this.topicRunningHash=e.topicRunningHash,this.totalSupply=e.totalSupply,this.scheduledTransactionId=e.scheduledTransactionId,this.serials=e.serials??[],this.duplicates=e.duplicates??[],this.children=e.children??[],this.nodeId=e.nodeId,Object.freeze(this)}_toProtobuf(){return{duplicateTransactionReceipts:this.duplicates.map((e=>e._toProtobuf().receipt)),childTransactionReceipts:this.children.map((e=>e._toProtobuf().receipt)),receipt:{status:this.status.valueOf(),accountID:null!=this.accountId?this.accountId._toProtobuf():null,fileID:null!=this.fileId?this.fileId._toProtobuf():null,contractID:null!=this.contractId?this.contractId._toProtobuf():null,topicID:null!=this.topicId?this.topicId._toProtobuf():null,tokenID:null!=this.tokenId?this.tokenId._toProtobuf():null,scheduleID:null!=this.scheduleId?this.scheduleId._toProtobuf():null,topicRunningHash:null==this.topicRunningHash?null:this.topicRunningHash,topicSequenceNumber:this.topicSequenceNumber,exchangeRate:{nextRate:null,currentRate:null!=this.exchangeRate?this.exchangeRate._toProtobuf():null},scheduledTransactionID:null!=this.scheduledTransactionId?this.scheduledTransactionId._toProtobuf():null,serialNumbers:this.serials,newTotalSupply:this.totalSupply,nodeId:this.nodeId}}}static _fromProtobuf(e){const t=e.receipt,r=t.exchangeRate,n=null!=e.childTransactionReceipts?e.childTransactionReceipts.map((e=>TransactionReceipt._fromProtobuf({receipt:e}))):[],o=null!=e.duplicateTransactionReceipts?e.duplicateTransactionReceipts.map((e=>TransactionReceipt._fromProtobuf({receipt:e}))):[];return new TransactionReceipt({status:Status._fromCode(null!=t.status?t.status:0),accountId:null!=t.accountID?AccountId._fromProtobuf(t.accountID):null,fileId:null!=t.fileID?FileId._fromProtobuf(t.fileID):null,contractId:null!=t.contractID?ContractId._fromProtobuf(t.contractID):null,topicId:null!=t.topicID?TopicId._fromProtobuf(t.topicID):null,tokenId:null!=t.tokenID?TokenId._fromProtobuf(t.tokenID):null,scheduleId:null!=t.scheduleID?ScheduleId._fromProtobuf(t.scheduleID):null,exchangeRate:null!=t.exchangeRate?ExchangeRate._fromProtobuf(r.currentRate):null,topicSequenceNumber:null==t.topicSequenceNumber?null:Long$1.fromString(t.topicSequenceNumber.toString()),topicRunningHash:null!=t.topicRunningHash?new Uint8Array(t.topicRunningHash):null,totalSupply:null!=t.newTotalSupply?Long$1.fromString(t.newTotalSupply.toString()):null,scheduledTransactionId:null!=t.scheduledTransactionID?TransactionId._fromProtobuf(t.scheduledTransactionID):null,serials:null!=t.serialNumbers?t.serialNumbers.map((e=>Long$1.fromValue(e))):[],children:n,duplicates:o,nodeId:null!=t.nodeId?t.nodeId:null})}static fromBytes(e){return TransactionReceipt._fromProtobuf(proto_1.TransactionGetReceiptResponse.decode(e))}toBytes(){return proto_1.TransactionGetReceiptResponse.encode(this._toProtobuf()).finish()}toJSON(){var e,t,r,n,o,i,a,s,c,u,l;return{status:this.status.toString(),accountId:(null==(e=this.accountId)?void 0:e.toString())||null,filedId:(null==(t=this.fileId)?void 0:t.toString())||null,contractId:(null==(r=this.contractId)?void 0:r.toString())||null,topicId:(null==(n=this.topicId)?void 0:n.toString())||null,tokenId:(null==(o=this.tokenId)?void 0:o.toString())||null,scheduleId:(null==(i=this.scheduleId)?void 0:i.toString())||null,exchangeRate:(null==(a=this.exchangeRate)?void 0:a.toJSON())||null,topicSequenceNumber:(null==(s=this.topicSequenceNumber)?void 0:s.toString())||null,topicRunningHash:null!=this.topicRunningHash?encode$9(this.topicRunningHash):null,totalSupply:(null==(c=this.totalSupply)?void 0:c.toString())||null,scheduledTransactionId:(null==(u=this.scheduledTransactionId)?void 0:u.toString())||null,serials:this.serials.map((e=>e.toString())),duplicates:this.duplicates.map((e=>e.toJSON())),children:this.children.map((e=>e.toJSON())),nodeId:(null==(l=this.nodeId)?void 0:l.toString())||null}}toString(){return JSON.stringify(this.toJSON())}}const{proto:proto$8}=HashgraphProto;class TransactionReceiptQuery extends Query{constructor(e={}){super(),this._transactionId=null,this._includeChildren=null,this._includeDuplicates=null,this._validateStatus=!0,null!=e.transactionId&&this.setTransactionId(e.transactionId),null!=e.includeChildren&&this.setIncludeChildren(e.includeChildren),null!=e.includeDuplicates&&this.setIncludeDuplicates(e.includeDuplicates),null!=e.validateStatus&&this.setValidateStatus(e.validateStatus)}static _fromProtobuf(e){const t=e.transactionGetReceipt;return new TransactionReceiptQuery({transactionId:t.transactionID?TransactionId._fromProtobuf(t.transactionID):void 0,includeDuplicates:null!=t.includeDuplicates?t.includeDuplicates:void 0,includeChildren:null!=t.includeChildReceipts?t.includeChildReceipts:void 0})}get transactionId(){return this._transactionId}setTransactionId(e){return this._transactionId="string"==typeof e?TransactionId.fromString(e):e.clone(),this}setIncludeDuplicates(e){return this._includeDuplicates=e,this}get includeDuplicates(){return null!=this._includeDuplicates&&this._includeDuplicates}setIncludeChildren(e){return this._includeChildren=e,this}get includeChildren(){return null!=this._includeChildren&&this._includeChildren}setValidateStatus(e){return this._validateStatus=e,this}get validateStatus(){return this._validateStatus}_isPaymentRequired(){return!1}_shouldRetry(e,t){const{nodeTransactionPrecheckCode:r}=this._mapResponseHeader(t);let n=Status._fromCode(null!=r?r:proto$8.ResponseCodeEnum.OK);switch(this._logger&&this._logger.debug(`[${this._getLogId()}] received node precheck status ${n.toString()}`),n){case Status.Busy:case Status.Unknown:case Status.ReceiptNotFound:case Status.PlatformNotActive:return[n,ExecutionState.Retry];case Status.Ok:break;default:return[n,ExecutionState.Error]}const o=t.transactionGetReceipt.receipt.status;switch(n=Status._fromCode(o),this._logger&&this._logger.debug(`[${this._getLogId()}] received receipt status ${n.toString()}`),n){case Status.Busy:case Status.Unknown:case Status.ReceiptNotFound:return[n,ExecutionState.Retry];case Status.Success:case Status.FeeScheduleFilePartUploaded:return[n,ExecutionState.Finished];default:return[n,this._validateStatus?ExecutionState.Error:ExecutionState.Finished]}}_getTransactionId(){return null!=this._transactionId?this._transactionId:super._getTransactionId()}_mapStatusError(e,t,r){const{nodeTransactionPrecheckCode:n}=this._mapResponseHeader(t);let o=Status._fromCode(null!=n?n:proto$8.ResponseCodeEnum.OK);if(o!==Status.Ok)return new PrecheckStatusError({nodeId:r,status:o,transactionId:this._getTransactionId(),contractFunctionResult:null});const i=t.transactionGetReceipt,a=i.receipt.status;if(o=Status._fromCode(a),null==this._transactionId)throw new Error("Failed to construct `ReceiptStatusError` because `transactionId` is `null`");return new ReceiptStatusError({status:o,transactionId:this._transactionId,transactionReceipt:TransactionReceipt._fromProtobuf(i)})}_validateChecksums(e){null!=this._transactionId&&null!=this._transactionId.accountId&&this._transactionId.accountId.validateChecksum(e)}_execute(e,t){return e.crypto.getTransactionReceipts(t)}_mapResponseHeader(e){return e.transactionGetReceipt.header}_mapResponse(e,t,r){const n=e.transactionGetReceipt;return Promise.resolve(TransactionReceipt._fromProtobuf(n))}_onMakeRequest(e){return{transactionGetReceipt:{header:e,transactionID:null!=this._transactionId?this._transactionId._toProtobuf():null,includeDuplicates:this._includeDuplicates,includeChildReceipts:this._includeChildren}}}_getLogId(){return`TransactionReceiptQuery:${this._timestamp.toString()}`}}QUERY_REGISTRY.set("transactionGetReceipt",TransactionReceiptQuery._fromProtobuf);class Transfer{constructor(e){this.accountId=e.accountId instanceof AccountId?e.accountId:AccountId.fromString(e.accountId),this.amount=e.amount instanceof Hbar?e.amount:new Hbar(e.amount),this.isApproved=e.isApproved}static _fromProtobuf(e){const t=[];for(const r of e)t.push(new Transfer({accountId:AccountId._fromProtobuf(r.accountID),amount:Hbar.fromTinybars(null!=r.amount?r.amount:0),isApproved:r.isApproval}));return t}_toProtobuf(){return{accountID:this.accountId._toProtobuf(),amount:this.amount.toTinybars(),isApproval:this.isApproved}}toJSON(){return{accountId:this.accountId.toString(),amount:this.amount.toTinybars().toString(),isApproved:this.isApproved}}toString(){return JSON.stringify(this.toJSON())}}class ContractLogInfo{constructor(e){this.contractId=e.contractId,this.bloom=e.bloom,this.topics=e.topics,this.data=e.data,Object.freeze(this)}static _fromProtobuf(e){return new ContractLogInfo({contractId:ContractId._fromProtobuf(e.contractID),bloom:null!=e.bloom?e.bloom:new Uint8Array,topics:null!=e.topic?e.topic:[],data:null!=e.data?e.data:new Uint8Array})}_toProtobuf(){return{contractID:this.contractId._toProtobuf(),bloom:this.bloom,topic:this.topics,data:this.data}}}function decode$4(e){return(new TextDecoder).decode(e)}function encode$3(e){return(new TextEncoder).encode(e)}const version$9="bignumber/5.7.0";var BN$g=BN$o.BN;const logger$8=new Logger$1(version$9),_constructorGuard$1={},MAX_SAFE=9007199254740991;let _warnedToStringRadix=!1;class BigNumber{constructor(e,t){e!==_constructorGuard$1&&logger$8.throwError("cannot call constructor directly; use BigNumber.from",Logger$1.errors.UNSUPPORTED_OPERATION,{operation:"new (BigNumber)"}),this._hex=t,this._isBigNumber=!0,Object.freeze(this)}fromTwos(e){return toBigNumber(toBN(this).fromTwos(e))}toTwos(e){return toBigNumber(toBN(this).toTwos(e))}abs(){return"-"===this._hex[0]?BigNumber.from(this._hex.substring(1)):this}add(e){return toBigNumber(toBN(this).add(toBN(e)))}sub(e){return toBigNumber(toBN(this).sub(toBN(e)))}div(e){return BigNumber.from(e).isZero()&&throwFault("division-by-zero","div"),toBigNumber(toBN(this).div(toBN(e)))}mul(e){return toBigNumber(toBN(this).mul(toBN(e)))}mod(e){const t=toBN(e);return t.isNeg()&&throwFault("division-by-zero","mod"),toBigNumber(toBN(this).umod(t))}pow(e){const t=toBN(e);return t.isNeg()&&throwFault("negative-power","pow"),toBigNumber(toBN(this).pow(t))}and(e){const t=toBN(e);return(this.isNegative()||t.isNeg())&&throwFault("unbound-bitwise-result","and"),toBigNumber(toBN(this).and(t))}or(e){const t=toBN(e);return(this.isNegative()||t.isNeg())&&throwFault("unbound-bitwise-result","or"),toBigNumber(toBN(this).or(t))}xor(e){const t=toBN(e);return(this.isNegative()||t.isNeg())&&throwFault("unbound-bitwise-result","xor"),toBigNumber(toBN(this).xor(t))}mask(e){return(this.isNegative()||e<0)&&throwFault("negative-width","mask"),toBigNumber(toBN(this).maskn(e))}shl(e){return(this.isNegative()||e<0)&&throwFault("negative-width","shl"),toBigNumber(toBN(this).shln(e))}shr(e){return(this.isNegative()||e<0)&&throwFault("negative-width","shr"),toBigNumber(toBN(this).shrn(e))}eq(e){return toBN(this).eq(toBN(e))}lt(e){return toBN(this).lt(toBN(e))}lte(e){return toBN(this).lte(toBN(e))}gt(e){return toBN(this).gt(toBN(e))}gte(e){return toBN(this).gte(toBN(e))}isNegative(){return"-"===this._hex[0]}isZero(){return toBN(this).isZero()}toNumber(){try{return toBN(this).toNumber()}catch(e){throwFault("overflow","toNumber",this.toString())}return null}toBigInt(){try{return BigInt(this.toString())}catch(e2){}return logger$8.throwError("this platform does not support BigInt",Logger$1.errors.UNSUPPORTED_OPERATION,{value:this.toString()})}toString(){return arguments.length>0&&(10===arguments[0]?_warnedToStringRadix||(_warnedToStringRadix=!0,logger$8.warn("BigNumber.toString does not accept any parameters; base-10 is assumed")):16===arguments[0]?logger$8.throwError("BigNumber.toString does not accept any parameters; use bigNumber.toHexString()",Logger$1.errors.UNEXPECTED_ARGUMENT,{}):logger$8.throwError("BigNumber.toString does not accept parameters",Logger$1.errors.UNEXPECTED_ARGUMENT,{})),toBN(this).toString(10)}toHexString(){return this._hex}toJSON(e){return{type:"BigNumber",hex:this.toHexString()}}static from(e){if(e instanceof BigNumber)return e;if("string"==typeof e)return e.match(/^-?0x[0-9a-f]+$/i)?new BigNumber(_constructorGuard$1,toHex(e)):e.match(/^-?[0-9]+$/)?new BigNumber(_constructorGuard$1,toHex(new BN$g(e))):logger$8.throwArgumentError("invalid BigNumber string","value",e);if("number"==typeof e)return e%1&&throwFault("underflow","BigNumber.from",e),(e>=MAX_SAFE||e<=-MAX_SAFE)&&throwFault("overflow","BigNumber.from",e),BigNumber.from(String(e));const t=e;if("bigint"==typeof t)return BigNumber.from(t.toString());if(isBytes(t))return BigNumber.from(hexlify(t));if(t)if(t.toHexString){const e=t.toHexString();if("string"==typeof e)return BigNumber.from(e)}else{let e=t._hex;if(null==e&&"BigNumber"===t.type&&(e=t.hex),"string"==typeof e&&(isHexString(e)||"-"===e[0]&&isHexString(e.substring(1))))return BigNumber.from(e)}return logger$8.throwArgumentError("invalid BigNumber value","value",e)}static isBigNumber(e){return!(!e||!e._isBigNumber)}}function toHex(e){if("string"!=typeof e)return toHex(e.toString(16));if("-"===e[0])return"-"===(e=e.substring(1))[0]&&logger$8.throwArgumentError("invalid hex","value",e),"0x00"===(e=toHex(e))?e:"-"+e;if("0x"!==e.substring(0,2)&&(e="0x"+e),"0x"===e)return"0x00";for(e.length%2&&(e="0x0"+e.substring(2));e.length>4&&"0x00"===e.substring(0,4);)e="0x"+e.substring(4);return e}function toBigNumber(e){return BigNumber.from(toHex(e))}function toBN(e){const t=BigNumber.from(e).toHexString();return"-"===t[0]?new BN$g("-"+t.substring(3),16):new BN$g(t.substring(2),16)}function throwFault(e,t,r){const n={fault:e,operation:t};return null!=r&&(n.value=r),logger$8.throwError(e,Logger$1.errors.NUMERIC_FAULT,n)}function _base36To16(e){return new BN$g(e,36).toString(16)}function defineReadOnly(e,t,r){Object.defineProperty(e,t,{enumerable:!0,value:r,writable:!1})}const version$8="abi/5.7.0",logger$7=new Logger$1(version$8),_constructorGuard={};let ModifiersBytes={calldata:!0,memory:!0,storage:!0},ModifiersNest={calldata:!0,memory:!0};function checkModifier(e,t){if("bytes"===e||"string"===e){if(ModifiersBytes[t])return!0}else if("address"===e){if("payable"===t)return!0}else if((e.indexOf("[")>=0||"tuple"===e)&&ModifiersNest[t])return!0;return(ModifiersBytes[t]||"payable"===t)&&logger$7.throwArgumentError("invalid modifier","name",t),!1}function parseParamType(e,t){let r=e;function n(t){logger$7.throwArgumentError(`unexpected character at position ${t}`,"param",e)}function o(e){let r={type:"",name:"",parent:e,state:{allowType:!0}};return t&&(r.indexed=!1),r}e=e.replace(/\s/g," ");let i={type:"",name:"",state:{allowType:!0}},a=i;for(let s=0;sJSON.parse(t.format(e))))),JSON.stringify(t)}let t="";return"array"===this.baseType?(t+=this.arrayChildren.format(e),t+="["+(this.arrayLength<0?"":String(this.arrayLength))+"]"):"tuple"===this.baseType?(e!==FormatTypes.sighash&&(t+=this.type),t+="("+this.components.map((t=>t.format(e))).join(e===FormatTypes.full?", ":",")+")"):t+=this.type,e!==FormatTypes.sighash&&(!0===this.indexed&&(t+=" indexed"),e===FormatTypes.full&&this.name&&(t+=" "+this.name)),t}static from(e,t){return"string"==typeof e?ParamType.fromString(e,t):ParamType.fromObject(e)}static fromObject(e){return ParamType.isParamType(e)?e:new ParamType(_constructorGuard,{name:e.name||null,type:verifyType(e.type),indexed:null==e.indexed?null:!!e.indexed,components:e.components?e.components.map(ParamType.fromObject):null})}static fromString(e,t){return r=parseParamType(e,!!t),ParamType.fromObject({name:r.name,type:r.type,indexed:r.indexed,components:r.components});var r}static isParamType(e){return!(null==e||!e._isParamType)}}function verifyType(e){return e.match(/^uint($|[^1-9])/)?e="uint256"+e.substring(4):e.match(/^int($|[^1-9])/)&&(e="int256"+e.substring(3)),e}const logger$6=new Logger$1(version$8);class Coder{constructor(e,t,r,n){this.name=e,this.type=t,this.localName=r,this.dynamic=n}_throwError(e,t){logger$6.throwArgumentError(e,this.localName,t)}}let Writer$2=class{constructor(e){defineReadOnly(this,"wordSize",e||32),this._data=[],this._dataLength=0,this._padding=new Uint8Array(e)}get data(){return hexConcat(this._data)}get length(){return this._dataLength}_writeData(e){return this._data.push(e),this._dataLength+=e.length,e.length}appendWriter(e){return this._writeData(concat$1(e._data))}writeBytes(e){let t=arrayify(e);const r=t.length%this.wordSize;return r&&(t=concat$1([t,this._padding.slice(r)])),this._writeData(t)}_getValue(e){let t=arrayify(BigNumber.from(e));return t.length>this.wordSize&&logger$6.throwError("value out-of-bounds",Logger$1.errors.BUFFER_OVERRUN,{length:this.wordSize,offset:t.length}),t.length%this.wordSize&&(t=concat$1([this._padding.slice(t.length%this.wordSize),t])),t}writeValue(e){return this._writeData(this._getValue(e))}writeUpdatableValue(){const e=this._data.length;return this._data.push(this._padding),this._dataLength+=this.wordSize,t=>{this._data[e]=this._getValue(t)}}},Reader$2=class e{constructor(e,t,r,n){defineReadOnly(this,"_data",arrayify(e)),defineReadOnly(this,"wordSize",t||32),defineReadOnly(this,"_coerceFunc",r),defineReadOnly(this,"allowLoose",n),this._offset=0}get data(){return hexlify(this._data)}get consumed(){return this._offset}static coerce(e,t){let r=e.match("^u?int([0-9]+)$");return r&&parseInt(r[1])<=48&&(t=t.toNumber()),t}coerce(t,r){return this._coerceFunc?this._coerceFunc(t,r):e.coerce(t,r)}_peekBytes(e,t,r){let n=Math.ceil(t/this.wordSize)*this.wordSize;return this._offset+n>this._data.length&&(this.allowLoose&&r&&this._offset+t<=this._data.length?n=t:logger$6.throwError("data out-of-bounds",Logger$1.errors.BUFFER_OVERRUN,{length:this._data.length,offset:this._offset+n})),this._data.slice(this._offset,this._offset+n)}subReader(t){return new e(this._data.slice(this._offset+t),this.wordSize,this._coerceFunc,this.allowLoose)}readBytes(e,t){let r=this._peekBytes(0,e,!!t);return this._offset+=r.length,r.slice(0,e)}readValue(){return BigNumber.from(this.readBytes(this.wordSize))}};var sha3$1={exports:{}};!function(e){!function(){var t="input is invalid type",r="object"==typeof window,n=r?window:{};n.JS_SHA3_NO_WINDOW&&(r=!1);var o=!r&&"object"==typeof self;!n.JS_SHA3_NO_NODE_JS&&"object"==typeof process$1&&process$1.versions&&process$1.versions.node?n=commonjsGlobal:o&&(n=self);var i=!n.JS_SHA3_NO_COMMON_JS&&e.exports,a=!n.JS_SHA3_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,s="0123456789abcdef".split(""),c=[4,1024,262144,67108864],u=[0,8,16,24],l=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],d=[224,256,384,512],f=[128,256],h=["hex","buffer","arrayBuffer","array","digest"],p={128:168,256:136};!n.JS_SHA3_NO_NODE_JS&&Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),!a||!n.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(e){return"object"==typeof e&&e.buffer&&e.buffer.constructor===ArrayBuffer});for(var y=function(e,t,r){return function(n){return new R(e,t,e).update(n)[r]()}},m=function(e,t,r){return function(n,o){return new R(e,t,o).update(n)[r]()}},g=function(e,t,r){return function(t,n,o,i){return I["cshake"+e].update(t,n,o,i)[r]()}},b=function(e,t,r){return function(t,n,o,i){return I["kmac"+e].update(t,n,o,i)[r]()}},v=function(e,t,r,n){for(var o=0;o>5,this.byteCount=this.blockCount<<2,this.outputBlocks=r>>5,this.extraBytes=(31&r)>>3;for(var n=0;n<50;++n)this.s[n]=0}function O(e,t,r){R.call(this,e,t,r)}R.prototype.update=function(e){if(this.finalized)throw new Error("finalize already called");var r,n=typeof e;if("string"!==n){if("object"!==n)throw new Error(t);if(null===e)throw new Error(t);if(a&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||a&&ArrayBuffer.isView(e)))throw new Error(t);r=!0}for(var o,i,s=this.blocks,c=this.byteCount,l=e.length,d=this.blockCount,f=0,h=this.s;f>2]|=e[f]<>2]|=i<>2]|=(192|i>>6)<>2]|=(128|63&i)<=57344?(s[o>>2]|=(224|i>>12)<>2]|=(128|i>>6&63)<>2]|=(128|63&i)<>2]|=(240|i>>18)<>2]|=(128|i>>12&63)<>2]|=(128|i>>6&63)<>2]|=(128|63&i)<=c){for(this.start=o-c,this.block=s[d],o=0;o>=8);r>0;)o.unshift(r),r=255&(e>>=8),++n;return t?o.push(n):o.unshift(n),this.update(o),o.length},R.prototype.encodeString=function(e){var r,n=typeof e;if("string"!==n){if("object"!==n)throw new Error(t);if(null===e)throw new Error(t);if(a&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||a&&ArrayBuffer.isView(e)))throw new Error(t);r=!0}var o=0,i=e.length;if(r)o=i;else for(var s=0;s=57344?o+=3:(c=65536+((1023&c)<<10|1023&e.charCodeAt(++s)),o+=4)}return o+=this.encode(8*o),this.update(e),o},R.prototype.bytepad=function(e,t){for(var r=this.encode(t),n=0;n>2]|=this.padding[3&t],this.lastByteIndex===this.byteCount)for(e[0]=e[r],t=1;t>4&15]+s[15&e]+s[e>>12&15]+s[e>>8&15]+s[e>>20&15]+s[e>>16&15]+s[e>>28&15]+s[e>>24&15];a%t==0&&(N(r),i=0)}return o&&(e=r[i],c+=s[e>>4&15]+s[15&e],o>1&&(c+=s[e>>12&15]+s[e>>8&15]),o>2&&(c+=s[e>>20&15]+s[e>>16&15])),c},R.prototype.arrayBuffer=function(){this.finalize();var e,t=this.blockCount,r=this.s,n=this.outputBlocks,o=this.extraBytes,i=0,a=0,s=this.outputBits>>3;e=o?new ArrayBuffer(n+1<<2):new ArrayBuffer(s);for(var c=new Uint32Array(e);a>8&255,c[e+2]=t>>16&255,c[e+3]=t>>24&255;s%r==0&&N(n)}return i&&(e=s<<2,t=n[a],c[e]=255&t,i>1&&(c[e+1]=t>>8&255),i>2&&(c[e+2]=t>>16&255)),c},O.prototype=new R,O.prototype.finalize=function(){return this.encode(this.outputBits,!0),R.prototype.finalize.call(this)};var N=function(e){var t,r,n,o,i,a,s,c,u,d,f,h,p,y,m,g,b,v,w,_,I,T,k,$,S,A,E,C,R,O,N,P,M,B,D,x,L,U,j,F,q,K,H,G,z,V,W,Q,Y,X,J,Z,ee,te,re,ne,oe,ie,ae,se,ce,ue,le;for(n=0;n<48;n+=2)o=e[0]^e[10]^e[20]^e[30]^e[40],i=e[1]^e[11]^e[21]^e[31]^e[41],a=e[2]^e[12]^e[22]^e[32]^e[42],s=e[3]^e[13]^e[23]^e[33]^e[43],c=e[4]^e[14]^e[24]^e[34]^e[44],u=e[5]^e[15]^e[25]^e[35]^e[45],d=e[6]^e[16]^e[26]^e[36]^e[46],f=e[7]^e[17]^e[27]^e[37]^e[47],t=(h=e[8]^e[18]^e[28]^e[38]^e[48])^(a<<1|s>>>31),r=(p=e[9]^e[19]^e[29]^e[39]^e[49])^(s<<1|a>>>31),e[0]^=t,e[1]^=r,e[10]^=t,e[11]^=r,e[20]^=t,e[21]^=r,e[30]^=t,e[31]^=r,e[40]^=t,e[41]^=r,t=o^(c<<1|u>>>31),r=i^(u<<1|c>>>31),e[2]^=t,e[3]^=r,e[12]^=t,e[13]^=r,e[22]^=t,e[23]^=r,e[32]^=t,e[33]^=r,e[42]^=t,e[43]^=r,t=a^(d<<1|f>>>31),r=s^(f<<1|d>>>31),e[4]^=t,e[5]^=r,e[14]^=t,e[15]^=r,e[24]^=t,e[25]^=r,e[34]^=t,e[35]^=r,e[44]^=t,e[45]^=r,t=c^(h<<1|p>>>31),r=u^(p<<1|h>>>31),e[6]^=t,e[7]^=r,e[16]^=t,e[17]^=r,e[26]^=t,e[27]^=r,e[36]^=t,e[37]^=r,e[46]^=t,e[47]^=r,t=d^(o<<1|i>>>31),r=f^(i<<1|o>>>31),e[8]^=t,e[9]^=r,e[18]^=t,e[19]^=r,e[28]^=t,e[29]^=r,e[38]^=t,e[39]^=r,e[48]^=t,e[49]^=r,y=e[0],m=e[1],V=e[11]<<4|e[10]>>>28,W=e[10]<<4|e[11]>>>28,C=e[20]<<3|e[21]>>>29,R=e[21]<<3|e[20]>>>29,se=e[31]<<9|e[30]>>>23,ce=e[30]<<9|e[31]>>>23,K=e[40]<<18|e[41]>>>14,H=e[41]<<18|e[40]>>>14,B=e[2]<<1|e[3]>>>31,D=e[3]<<1|e[2]>>>31,g=e[13]<<12|e[12]>>>20,b=e[12]<<12|e[13]>>>20,Q=e[22]<<10|e[23]>>>22,Y=e[23]<<10|e[22]>>>22,O=e[33]<<13|e[32]>>>19,N=e[32]<<13|e[33]>>>19,ue=e[42]<<2|e[43]>>>30,le=e[43]<<2|e[42]>>>30,te=e[5]<<30|e[4]>>>2,re=e[4]<<30|e[5]>>>2,x=e[14]<<6|e[15]>>>26,L=e[15]<<6|e[14]>>>26,v=e[25]<<11|e[24]>>>21,w=e[24]<<11|e[25]>>>21,X=e[34]<<15|e[35]>>>17,J=e[35]<<15|e[34]>>>17,P=e[45]<<29|e[44]>>>3,M=e[44]<<29|e[45]>>>3,$=e[6]<<28|e[7]>>>4,S=e[7]<<28|e[6]>>>4,ne=e[17]<<23|e[16]>>>9,oe=e[16]<<23|e[17]>>>9,U=e[26]<<25|e[27]>>>7,j=e[27]<<25|e[26]>>>7,_=e[36]<<21|e[37]>>>11,I=e[37]<<21|e[36]>>>11,Z=e[47]<<24|e[46]>>>8,ee=e[46]<<24|e[47]>>>8,G=e[8]<<27|e[9]>>>5,z=e[9]<<27|e[8]>>>5,A=e[18]<<20|e[19]>>>12,E=e[19]<<20|e[18]>>>12,ie=e[29]<<7|e[28]>>>25,ae=e[28]<<7|e[29]>>>25,F=e[38]<<8|e[39]>>>24,q=e[39]<<8|e[38]>>>24,T=e[48]<<14|e[49]>>>18,k=e[49]<<14|e[48]>>>18,e[0]=y^~g&v,e[1]=m^~b&w,e[10]=$^~A&C,e[11]=S^~E&R,e[20]=B^~x&U,e[21]=D^~L&j,e[30]=G^~V&Q,e[31]=z^~W&Y,e[40]=te^~ne&ie,e[41]=re^~oe&ae,e[2]=g^~v&_,e[3]=b^~w&I,e[12]=A^~C&O,e[13]=E^~R&N,e[22]=x^~U&F,e[23]=L^~j&q,e[32]=V^~Q&X,e[33]=W^~Y&J,e[42]=ne^~ie&se,e[43]=oe^~ae&ce,e[4]=v^~_&T,e[5]=w^~I&k,e[14]=C^~O&P,e[15]=R^~N&M,e[24]=U^~F&K,e[25]=j^~q&H,e[34]=Q^~X&Z,e[35]=Y^~J&ee,e[44]=ie^~se&ue,e[45]=ae^~ce&le,e[6]=_^~T&y,e[7]=I^~k&m,e[16]=O^~P&$,e[17]=N^~M&S,e[26]=F^~K&B,e[27]=q^~H&D,e[36]=X^~Z&G,e[37]=J^~ee&z,e[46]=se^~ue&te,e[47]=ce^~le&re,e[8]=T^~y&g,e[9]=k^~m&b,e[18]=P^~$&A,e[19]=M^~S&E,e[28]=K^~B&x,e[29]=H^~D&L,e[38]=Z^~G&V,e[39]=ee^~z&W,e[48]=ue^~te&ne,e[49]=le^~re&oe,e[0]^=l[n],e[1]^=l[n+1]};if(i)e.exports=I;else for(k=0;k>=8;return t}function unarrayifyInteger(e,t,r){let n=0;for(let o=0;ot+1+n&&logger$5.throwError("child data too short",Logger$1.errors.BUFFER_OVERRUN,{})}return{consumed:1+n,result:o}}function _decode(e,t){if(0===e.length&&logger$5.throwError("data too short",Logger$1.errors.BUFFER_OVERRUN,{}),e[t]>=248){const r=e[t]-247;t+1+r>e.length&&logger$5.throwError("data short segment too short",Logger$1.errors.BUFFER_OVERRUN,{});const n=unarrayifyInteger(e,t+1,r);return t+1+r+n>e.length&&logger$5.throwError("data long segment too short",Logger$1.errors.BUFFER_OVERRUN,{}),_decodeChildren(e,t,t+1+r,r+n)}if(e[t]>=192){const r=e[t]-192;return t+1+r>e.length&&logger$5.throwError("data array too short",Logger$1.errors.BUFFER_OVERRUN,{}),_decodeChildren(e,t,t+1,r)}if(e[t]>=184){const r=e[t]-183;t+1+r>e.length&&logger$5.throwError("data array too short",Logger$1.errors.BUFFER_OVERRUN,{});const n=unarrayifyInteger(e,t+1,r);t+1+r+n>e.length&&logger$5.throwError("data array too short",Logger$1.errors.BUFFER_OVERRUN,{});return{consumed:1+r+n,result:hexlify(e.slice(t+1+r,t+1+r+n))}}if(e[t]>=128){const r=e[t]-128;t+1+r>e.length&&logger$5.throwError("data too short",Logger$1.errors.BUFFER_OVERRUN,{});return{consumed:1+r,result:hexlify(e.slice(t+1,t+1+r))}}return{consumed:1,result:hexlify(e[t])}}function decode$3(e){const t=arrayify(e),r=_decode(t,0);return r.consumed!==t.length&&logger$5.throwArgumentError("invalid rlp data","data",e),r.result}const version$6="address/5.7.0",logger$4=new Logger$1(version$6);function getChecksumAddress(e){isHexString(e,20)||logger$4.throwArgumentError("invalid address","address",e);const t=(e=e.toLowerCase()).substring(2).split(""),r=new Uint8Array(40);for(let o=0;o<40;o++)r[o]=t[o].charCodeAt(0);const n=arrayify(keccak256$1(r));for(let o=0;o<40;o+=2)n[o>>1]>>4>=8&&(t[o]=t[o].toUpperCase()),(15&n[o>>1])>=8&&(t[o+1]=t[o+1].toUpperCase());return"0x"+t.join("")}const MAX_SAFE_INTEGER=9007199254740991;function log10(e){return Math.log10?Math.log10(e):Math.log(e)/Math.LN10}const ibanLookup={};for(let ee=0;ee<10;ee++)ibanLookup[String(ee)]=String(ee);for(let ee=0;ee<26;ee++)ibanLookup[String.fromCharCode(65+ee)]=String(10+ee);const safeDigits=Math.floor(log10(MAX_SAFE_INTEGER));function ibanChecksum(e){let t=(e=(e=e.toUpperCase()).substring(4)+e.substring(0,2)+"00").split("").map((e=>ibanLookup[e])).join("");for(;t.length>=safeDigits;){let e=t.substring(0,safeDigits);t=parseInt(e,10)%97+t.substring(e.length)}let r=String(98-parseInt(t,10)%97);for(;r.length<2;)r="0"+r;return r}function getAddress(e){let t=null;if("string"!=typeof e&&logger$4.throwArgumentError("invalid address","address",e),e.match(/^(0x)?[0-9a-fA-F]{40}$/))"0x"!==e.substring(0,2)&&(e="0x"+e),t=getChecksumAddress(e),e.match(/([A-F].*[a-f])|([a-f].*[A-F])/)&&t!==e&&logger$4.throwArgumentError("bad address checksum","address",e);else if(e.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){for(e.substring(2,4)!==ibanChecksum(e)&&logger$4.throwArgumentError("bad icap checksum","address",e),t=_base36To16(e.substring(4));t.length<40;)t="0"+t;t=getChecksumAddress("0x"+t)}else logger$4.throwArgumentError("invalid address","address",e);return t}class AddressCoder extends Coder{constructor(e){super("address","address",e,!1)}defaultValue(){return"0x0000000000000000000000000000000000000000"}encode(e,t){try{t=getAddress(t)}catch(r){this._throwError(r.message,t)}return e.writeValue(t)}decode(e){return getAddress(hexZeroPad(e.readValue().toHexString(),20))}}class AnonymousCoder extends Coder{constructor(e){super(e.name,e.type,void 0,e.dynamic),this.coder=e}defaultValue(){return this.coder.defaultValue()}encode(e,t){return this.coder.encode(e,t)}decode(e){return this.coder.decode(e)}}const logger$3=new Logger$1(version$8);function pack(e,t,r){let n=null;if(Array.isArray(r))n=r;else if(r&&"object"==typeof r){let e={};n=t.map((t=>{const n=t.localName;return n||logger$3.throwError("cannot encode object for signature with missing names",Logger$1.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:r}),e[n]&&logger$3.throwError("cannot encode object for signature with duplicate names",Logger$1.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:r}),e[n]=!0,r[n]}))}else logger$3.throwArgumentError("invalid tuple value","tuple",r);t.length!==n.length&&logger$3.throwArgumentError("types/value length mismatch","tuple",r);let o=new Writer$2(e.wordSize),i=new Writer$2(e.wordSize),a=[];t.forEach(((e,t)=>{let r=n[t];if(e.dynamic){let t=i.length;e.encode(i,r);let n=o.writeUpdatableValue();a.push((e=>{n(e+t)}))}else e.encode(o,r)})),a.forEach((e=>{e(o.length)}));let s=e.appendWriter(o);return s+=e.appendWriter(i),s}function unpack(e,t){let r=[],n=e.subReader(0);t.forEach((t=>{let o=null;if(t.dynamic){let r=e.readValue(),a=n.subReader(r.toNumber());try{o=t.decode(a)}catch(i){if(i.code===Logger$1.errors.BUFFER_OVERRUN)throw i;o=i,o.baseType=t.name,o.name=t.localName,o.type=t.type}}else try{o=t.decode(e)}catch(i){if(i.code===Logger$1.errors.BUFFER_OVERRUN)throw i;o=i,o.baseType=t.name,o.name=t.localName,o.type=t.type}null!=o&&r.push(o)}));const o=t.reduce(((e,t)=>{const r=t.localName;return r&&(e[r]||(e[r]=0),e[r]++),e}),{});t.forEach(((e,t)=>{let n=e.localName;if(!n||1!==o[n])return;if("length"===n&&(n="_length"),null!=r[n])return;const i=r[t];i instanceof Error?Object.defineProperty(r,n,{enumerable:!0,get:()=>{throw i}}):r[n]=i}));for(let i=0;i{throw e}})}return Object.freeze(r)}class ArrayCoder extends Coder{constructor(e,t,r){super("array",e.type+"["+(t>=0?t:"")+"]",r,-1===t||e.dynamic),this.coder=e,this.length=t}defaultValue(){const e=this.coder.defaultValue(),t=[];for(let r=0;re._data.length&&logger$3.throwError("insufficient data length",Logger$1.errors.BUFFER_OVERRUN,{length:e._data.length,count:t}));let r=[];for(let n=0;n>6==2;n++)e++;return e}return e===Utf8ErrorReason.OVERRUN?r.length-t-1:0}function replaceFunc(e,t,r,n,o){return e===Utf8ErrorReason.OVERLONG?(n.push(o),0):(n.push(65533),ignoreFunc(e,t,r))}UnicodeNormalizationForm2=UnicodeNormalizationForm||(UnicodeNormalizationForm={}),UnicodeNormalizationForm2.current="",UnicodeNormalizationForm2.NFC="NFC",UnicodeNormalizationForm2.NFD="NFD",UnicodeNormalizationForm2.NFKC="NFKC",UnicodeNormalizationForm2.NFKD="NFKD",Utf8ErrorReason2=Utf8ErrorReason||(Utf8ErrorReason={}),Utf8ErrorReason2.UNEXPECTED_CONTINUE="unexpected continuation byte",Utf8ErrorReason2.BAD_PREFIX="bad codepoint prefix",Utf8ErrorReason2.OVERRUN="string overrun",Utf8ErrorReason2.MISSING_CONTINUE="missing continuation byte",Utf8ErrorReason2.OUT_OF_RANGE="out of UTF-8 range",Utf8ErrorReason2.UTF16_SURROGATE="UTF-16 surrogate",Utf8ErrorReason2.OVERLONG="overlong representation";const Utf8ErrorFuncs=Object.freeze({error:errorFunc,ignore:ignoreFunc,replace:replaceFunc});function getUtf8CodePoints(e,t){null==t&&(t=Utf8ErrorFuncs.error),e=arrayify(e);const r=[];let n=0;for(;n>7)){r.push(o);continue}let i=null,a=null;if(192==(224&o))i=1,a=127;else if(224==(240&o))i=2,a=2047;else{if(240!=(248&o)){n+=t(128==(192&o)?Utf8ErrorReason.UNEXPECTED_CONTINUE:Utf8ErrorReason.BAD_PREFIX,n-1,e,r);continue}i=3,a=65535}if(n-1+i>=e.length){n+=t(Utf8ErrorReason.OVERRUN,n-1,e,r);continue}let s=o&(1<<8-i-1)-1;for(let c=0;c1114111?n+=t(Utf8ErrorReason.OUT_OF_RANGE,n-1-i,e,r,s):s>=55296&&s<=57343?n+=t(Utf8ErrorReason.UTF16_SURROGATE,n-1-i,e,r,s):s<=a?n+=t(Utf8ErrorReason.OVERLONG,n-1-i,e,r,s):r.push(s))}return r}function toUtf8Bytes(e,t=UnicodeNormalizationForm.current){t!=UnicodeNormalizationForm.current&&(logger$2.checkNormalize(),e=e.normalize(t));let r=[];for(let n=0;n>6|192),r.push(63&t|128);else if(55296==(64512&t)){n++;const o=e.charCodeAt(n);if(n>=e.length||56320!=(64512&o))throw new Error("invalid utf-8 string");const i=65536+((1023&t)<<10)+(1023&o);r.push(i>>18|240),r.push(i>>12&63|128),r.push(i>>6&63|128),r.push(63&i|128)}else r.push(t>>12|224),r.push(t>>6&63|128),r.push(63&t|128)}return arrayify(r)}function _toUtf8String(e){return e.map((e=>e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10&1023),56320+(1023&e))))).join("")}function toUtf8String(e,t){return _toUtf8String(getUtf8CodePoints(e,t))}class StringCoder extends DynamicBytesCoder{constructor(e){super("string",e)}defaultValue(){return""}encode(e,t){return super.encode(e,toUtf8Bytes(t))}decode(e){return toUtf8String(super.decode(e))}}class TupleCoder extends Coder{constructor(e,t){let r=!1;const n=[];e.forEach((e=>{e.dynamic&&(r=!0),n.push(e.type)}));super("tuple","tuple("+n.join(",")+")",t,r),this.coders=e}defaultValue(){const e=[];this.coders.forEach((t=>{e.push(t.defaultValue())}));const t=this.coders.reduce(((e,t)=>{const r=t.localName;return r&&(e[r]||(e[r]=0),e[r]++),e}),{});return this.coders.forEach(((r,n)=>{let o=r.localName;o&&1===t[o]&&("length"===o&&(o="_length"),null==e[o]&&(e[o]=e[n]))})),Object.freeze(e)}encode(e,t){return pack(e,this.coders,t)}decode(e){return e.coerce(this.name,unpack(e,this.coders))}}const logger$1=new Logger$1(version$8),paramTypeBytes=new RegExp(/^bytes([0-9]*)$/),paramTypeNumber=new RegExp(/^(u?int)([0-9]*)$/);class AbiCoder{constructor(e){defineReadOnly(this,"coerceFunc",e||null)}_getCoder(e){switch(e.baseType){case"address":return new AddressCoder(e.name);case"bool":return new BooleanCoder(e.name);case"string":return new StringCoder(e.name);case"bytes":return new BytesCoder(e.name);case"array":return new ArrayCoder(this._getCoder(e.arrayChildren),e.arrayLength,e.name);case"tuple":return new TupleCoder((e.components||[]).map((e=>this._getCoder(e))),e.name);case"":return new NullCoder(e.name)}let t=e.type.match(paramTypeNumber);if(t){let r=parseInt(t[2]||"256");return(0===r||r>256||r%8!=0)&&logger$1.throwArgumentError("invalid "+t[1]+" bit length","param",e),new NumberCoder(r/8,"int"===t[1],e.name)}if(t=e.type.match(paramTypeBytes),t){let r=parseInt(t[1]);return(0===r||r>32)&&logger$1.throwArgumentError("invalid bytes length","param",e),new FixedBytesCoder(r,e.name)}return logger$1.throwArgumentError("invalid type","type",e.type)}_getWordSize(){return 32}_getReader(e,t){return new Reader$2(e,this._getWordSize(),this.coerceFunc,t)}_getWriter(){return new Writer$2(this._getWordSize())}getDefaultValue(e){const t=e.map((e=>this._getCoder(ParamType.from(e))));return new TupleCoder(t,"_").defaultValue()}encode(e,t){e.length!==t.length&&logger$1.throwError("types/values length mismatch",Logger$1.errors.INVALID_ARGUMENT,{count:{types:e.length,values:t.length},value:{types:e,values:t}});const r=e.map((e=>this._getCoder(ParamType.from(e)))),n=new TupleCoder(r,"_"),o=this._getWriter();return n.encode(o,t),o.data}decode(e,t,r){const n=e.map((e=>this._getCoder(ParamType.from(e))));return new TupleCoder(n,"_").decode(this._getReader(arrayify(t),r))}}const defaultAbiCoder=new AbiCoder,messagePrefix="Ethereum Signed Message:\n";function hashMessage(e){return"string"==typeof e&&(e=toUtf8Bytes(e)),keccak256$1(concat$1([toUtf8Bytes(messagePrefix),toUtf8Bytes(String(e.length)),e]))}const{proto:proto$7}=HashgraphProto;class ContractNonceInfo{constructor(e){this.contractId=e.contractId,this.nonce=e.nonce,Object.freeze(this)}static _fromProtobuf(e){return new ContractNonceInfo({contractId:ContractId._fromProtobuf(e.contractId),nonce:null!=e.nonce?e.nonce:Long$1.ZERO})}_toProtobuf(){return{contractId:this.contractId._toProtobuf(),nonce:this.nonce}}static fromBytes(e){return ContractNonceInfo._fromProtobuf(proto$7.ContractNonceInfo.decode(e))}toBytes(){return proto$7.ContractNonceInfo.encode(this._toProtobuf()).finish()}toJSON(){return{contractId:this.contractId.toString(),nonce:this.nonce.toNumber()}}toString(){return JSON.stringify(this.toJSON())}equals(e){return this.contractId.equals(e.contractId)&&this.nonce.eq(e.nonce)}}class ContractFunctionResult{constructor(e){this._createResult=e._createResult,this.contractId=e.contractId,this.bytes=e.bytes,this.errorMessage=e.errorMessage,this.bloom=e.bloom,this.gasUsed=e.gasUsed,this.logs=e.logs,this.createdContractIds=e.createdContractIds,this.evmAddress=e.evmAddress,this.stateChanges=e.stateChanges,this.gas=e.gas,this.amount=e.amount,this.functionParameters=e.functionParameters,this.senderAccountId=e.senderAccountId,this.contractNonces=e.contractNonces,this.signerNonce=e.signerNonce}static _fromProtobuf(e,t){const r=e.contractID,n=e.gasUsed,o=e.gas?e.gas:-1,i=e.amount?e.amount:-1;return new ContractFunctionResult({_createResult:t,bytes:e.contractCallResult,contractId:null!=r?ContractId._fromProtobuf(r):null,errorMessage:null!=e.errorMessage?e.errorMessage:null,bloom:e.bloom,gasUsed:n instanceof Long$1?n:Long$1.fromValue(n),logs:(null!=e.logInfo?e.logInfo:[]).map((e=>ContractLogInfo._fromProtobuf(e))),createdContractIds:(null!=e.createdContractIDs?e.createdContractIDs:[]).map((e=>ContractId._fromProtobuf(e))),evmAddress:null!=e.evmAddress&&Object.hasOwn(e.evmAddress,"value")&&null!=e.evmAddress.value?e.evmAddress.value:null,stateChanges:[],gas:o instanceof Long$1?o:Long$1.fromValue(o),amount:i instanceof Long$1?i:Long$1.fromValue(i),functionParameters:e.functionParameters,senderAccountId:null!=e.senderId?AccountId._fromProtobuf(e.senderId):null,contractNonces:(null!=e.contractNonces?e.contractNonces:[]).map((e=>ContractNonceInfo._fromProtobuf(e))),signerNonce:null!=e.signerNonce&&Object.hasOwn(e.signerNonce,"value")&&e.signerNonce.value||null})}asBytes(){return this.bytes}getString(e){return decode$4(this.getBytes(e))}getBytes(e){const t=this.getInt32(e),r=safeView(this.bytes).getInt32(t+28);return this.bytes.subarray(t+32,t+32+r)}getBytes32(e){return this.bytes.subarray(32*(null!=e?e:0),32*(null!=e?e:0)+32)}getBool(e){return 0!==this.bytes[32*(null!=e?e:0)+31]}getInt8(e){const t=32*(null!=e?e:0)+31;return safeView(this.bytes).getInt8(t)}getUint8(e){return this.bytes[32*(null!=e?e:0)+31]}getInt16(e){const t=32*(null!=e?e:0)+28;return safeView(this.bytes).getInt32(t)}getUint16(e){const t=32*(null!=e?e:0)+28;return safeView(this.bytes).getUint32(t)}getInt24(e){const t=32*(null!=e?e:0)+28;return safeView(this.bytes).getInt32(t)}getUint24(e){const t=32*(null!=e?e:0)+28;return safeView(this.bytes).getUint32(t)}getInt32(e){const t=32*(null!=e?e:0)+28;return safeView(this.bytes).getInt32(t)}getUint32(e){const t=32*(null!=e?e:0)+28;return safeView(this.bytes).getUint32(t)}getInt40(e){const t=defaultAbiCoder.decode(["int40"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint40(e){return new BigNumber$1(encode$9(this._getBytes32(e).subarray(27,32)),16)}getInt48(e){const t=defaultAbiCoder.decode(["int48"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint48(e){return new BigNumber$1(encode$9(this._getBytes32(e).subarray(26,32)),16)}getInt56(e){const t=defaultAbiCoder.decode(["int56"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint56(e){return new BigNumber$1(encode$9(this._getBytes32(e).subarray(25,32)),16)}getInt64(e){const t=defaultAbiCoder.decode(["int64"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint64(e){return new BigNumber$1(encode$9(this._getBytes32(e).subarray(24,32)),16)}getInt72(e){const t=defaultAbiCoder.decode(["int72"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint72(e){return new BigNumber$1(encode$9(this._getBytes32(e).subarray(23,32)),16)}getInt80(e){const t=defaultAbiCoder.decode(["int80"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint80(e){return new BigNumber$1(encode$9(this._getBytes32(e).subarray(22,32)),16)}getInt88(e){const t=defaultAbiCoder.decode(["int88"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint88(e){return new BigNumber$1(encode$9(this._getBytes32(e).subarray(21,32)),16)}getInt96(e){const t=defaultAbiCoder.decode(["int96"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint96(e){return new BigNumber$1(encode$9(this._getBytes32(e).subarray(20,32)),16)}getInt104(e){const t=defaultAbiCoder.decode(["int104"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint104(e){return new BigNumber$1(encode$9(this._getBytes32(e).subarray(19,32)),16)}getInt112(e){const t=defaultAbiCoder.decode(["int112"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint112(e){return new BigNumber$1(encode$9(this._getBytes32(e).subarray(18,32)),16)}getInt120(e){const t=defaultAbiCoder.decode(["int120"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint120(e){return new BigNumber$1(encode$9(this._getBytes32(e).subarray(17,32)),16)}getInt128(e){const t=defaultAbiCoder.decode(["int128"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint128(e){return new BigNumber$1(encode$9(this._getBytes32(e).subarray(16,32)),16)}getInt136(e){const t=defaultAbiCoder.decode(["int136"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint136(e){return new BigNumber$1(encode$9(this._getBytes32(e).subarray(15,32)),16)}getInt144(e){const t=defaultAbiCoder.decode(["int144"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint144(e){return new BigNumber$1(encode$9(this._getBytes32(e).subarray(14,32)),16)}getInt152(e){const t=defaultAbiCoder.decode(["int152"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint152(e){return new BigNumber$1(encode$9(this._getBytes32(e).subarray(13,32)),16)}getInt160(e){const t=defaultAbiCoder.decode(["int160"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint160(e){return new BigNumber$1(encode$9(this._getBytes32(e).subarray(12,32)),16)}getInt168(e){const t=defaultAbiCoder.decode(["int168"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint168(e){return new BigNumber$1(encode$9(this._getBytes32(e).subarray(11,32)),16)}getInt176(e){const t=defaultAbiCoder.decode(["int176"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint176(e){return new BigNumber$1(encode$9(this._getBytes32(e).subarray(10,32)),16)}getInt184(e){const t=defaultAbiCoder.decode(["int184"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint184(e){return new BigNumber$1(encode$9(this._getBytes32(e).subarray(9,32)),16)}getInt192(e){const t=defaultAbiCoder.decode(["int192"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint192(e){return new BigNumber$1(encode$9(this._getBytes32(e).subarray(8,32)),16)}getInt200(e){const t=defaultAbiCoder.decode(["int200"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint200(e){return new BigNumber$1(encode$9(this._getBytes32(e).subarray(7,32)),16)}getInt208(e){const t=defaultAbiCoder.decode(["int208"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint208(e){return new BigNumber$1(encode$9(this._getBytes32(e).subarray(6,32)),16)}getInt216(e){const t=defaultAbiCoder.decode(["int216"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint216(e){return new BigNumber$1(encode$9(this._getBytes32(e).subarray(5,32)),16)}getInt224(e){const t=defaultAbiCoder.decode(["int224"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint224(e){return new BigNumber$1(encode$9(this._getBytes32(e).subarray(4,32)),16)}getInt232(e){const t=defaultAbiCoder.decode(["int232"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint232(e){return new BigNumber$1(encode$9(this._getBytes32(e).subarray(3,32)),16)}getInt240(e){const t=defaultAbiCoder.decode(["int240"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint240(e){return new BigNumber$1(encode$9(this._getBytes32(e).subarray(2,32)),16)}getInt248(e){const t=defaultAbiCoder.decode(["int248"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint248(e){return new BigNumber$1(encode$9(this._getBytes32(e).subarray(1,32)),16)}getInt256(e){const t=defaultAbiCoder.decode(["int256"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint256(e){return new BigNumber$1(encode$9(this._getBytes32(e)),16)}getAddress(e){return encode$9(this.bytes.subarray(32*(null!=e?e:0)+12,32*(null!=e?e:0)+32))}getResult(e){return defaultAbiCoder.decode(e,this.bytes)}_getBytes32(e){return this.bytes.subarray(32*(null!=e?e:0),32*(null!=e?e:0)+32)}_toProtobuf(){return{contractID:null!=this.contractId?this.contractId._toProtobuf():null,contractCallResult:this.bytes,errorMessage:this.errorMessage,bloom:this.bloom,gasUsed:this.gasUsed,logInfo:this.logs.map((e=>e._toProtobuf())),createdContractIDs:this.createdContractIds.map((e=>e._toProtobuf())),evmAddress:null!=this.evmAddress?{value:this.evmAddress}:null,gas:this.gas,amount:this.amount,functionParameters:this.functionParameters,senderId:null!=this.senderAccountId?this.senderAccountId._toProtobuf():null,contractNonces:this.contractNonces.map((e=>e._toProtobuf())),signerNonce:null!=this.signerNonce?{value:this.signerNonce}:null}}}class TokenTransferAccountMap extends ObjectMap{constructor(){super((e=>AccountId.fromString(e)))}toJSON(){const e={};return this._map.forEach(((t,r)=>{e[r]=t.toString()})),e}}class TokenTransferMap extends ObjectMap{constructor(){super((e=>TokenId.fromString(e)))}__set(e,t,r){const n=e.toString();let o=this._map.get(n);null==o&&(o=new TokenTransferAccountMap,this._map.set(n,o),this.__map.set(e,o)),o._set(t,r)}static _fromProtobuf(e){const t=new TokenTransferMap;for(const r of e){const e=TokenId._fromProtobuf(r.token);for(const n of null!=r.transfers?r.transfers:[]){const r=AccountId._fromProtobuf(n.accountID);t.__set(e,r,n.amount)}}return t}_toProtobuf(){const e=[];for(const[t,r]of this){const n=[];for(const[e,t]of r)n.push({accountID:e._toProtobuf(),amount:t});e.push({token:t._toProtobuf(),transfers:n})}return e}}class TokenNftTransferMap extends ObjectMap{constructor(){super((e=>TokenId.fromString(e)))}__set(e,t){const r=e.toString();let n=this._map.get(r);null==n&&(n=[],this._map.set(r,n),this.__map.set(e,n)),n.push(t)}static _fromProtobuf(e){const t=new TokenNftTransferMap;for(const r of e){const e=TokenId._fromProtobuf(r.token);for(const n of null!=r.nftTransfers?r.nftTransfers:[]){const r=AccountId._fromProtobuf(n.senderAccountID),o=AccountId._fromProtobuf(n.receiverAccountID);t.__set(e,{sender:r,recipient:o,serial:Long$1.fromValue(n.serialNumber),isApproved:!1})}}return t}_toProtobuf(){const e=[];for(const[t,r]of this){const n=[];for(const e of r)n.push({senderAccountID:e.sender._toProtobuf(),receiverAccountID:e.recipient._toProtobuf(),serialNumber:e.serial});e.push({token:t._toProtobuf(),nftTransfers:n})}return e}toJSON(){const e={};return this._map.forEach(((t,r)=>{e[r]=t.map((e=>({sender:e.sender.toString(),recipient:e.recipient.toString(),serial:e.serial,isApproved:e.isApproved})))})),e}}class AssessedCustomFee{constructor(e={}){this._feeCollectorAccountId=null,null!=e.feeCollectorAccountId&&this.setFeeCollectorAccountId(e.feeCollectorAccountId),this._tokenId=null,null!=e.tokenId&&this.setTokenId(e.tokenId),this._amount=null,null!=e.amount&&this.setAmount(e.amount),this._payerAccountIds=null,null!=e.payerAccountIds&&this.setPayerAccountIds(e.payerAccountIds)}get feeCollectorAccountId(){return this._feeCollectorAccountId}setFeeCollectorAccountId(e){return this._feeCollectorAccountId="string"==typeof e?AccountId.fromString(e):e,this}get tokenId(){return this._tokenId}setTokenId(e){return this._tokenId="string"==typeof e?TokenId.fromString(e):e,this}get amount(){return this._amount}setAmount(e){return this._amount="number"==typeof e?Long$1.fromNumber(e):e,this}get payerAccountIds(){return this._payerAccountIds}setPayerAccountIds(e){return this._payerAccountIds=e,this}static _fromProtobuf(e){return new AssessedCustomFee({feeCollectorAccountId:null!=e.feeCollectorAccountId?AccountId._fromProtobuf(e.feeCollectorAccountId):void 0,tokenId:null!=e.tokenId?TokenId._fromProtobuf(e.tokenId):void 0,amount:null!=e.amount?e.amount:void 0,payerAccountIds:null!=e.effectivePayerAccountId?e.effectivePayerAccountId.map((e=>AccountId._fromProtobuf(e))):void 0})}_toProtobuf(){return{feeCollectorAccountId:null!=this.feeCollectorAccountId?this.feeCollectorAccountId._toProtobuf():null,tokenId:null!=this._tokenId?this._tokenId._toProtobuf():null,amount:this._amount,effectivePayerAccountId:null!=this._payerAccountIds?this._payerAccountIds.map((e=>e._toProtobuf())):null}}toJSON(){var e,t,r,n;return{feeCollectorAccountId:(null==(e=this.feeCollectorAccountId)?void 0:e.toString())||null,tokenId:(null==(t=this._tokenId)?void 0:t.toString())||null,amount:(null==(r=this._amount)?void 0:r.toString())||null,payerAccountIds:(null==(n=this._payerAccountIds)?void 0:n.map((e=>e.toString())))||[]}}}class TokenAssociation{constructor(e={}){this._accountId=null,null!=e.accountId&&this.setAccountId(e.accountId),this._tokenId=null,null!=e.tokenId&&this.setTokenId(e.tokenId),this._defaultMaxTransactionFee=new Hbar(5)}get accountId(){return this._accountId}setAccountId(e){return this._accountId="string"==typeof e?AccountId.fromString(e):e,this}get tokenId(){return this._tokenId}setTokenId(e){return this._tokenId="string"==typeof e?TokenId.fromString(e):e,this}static _fromProtobuf(e){return new TokenAssociation({accountId:null!=e.accountId?AccountId._fromProtobuf(e.accountId):void 0,tokenId:null!=e.tokenId?TokenId._fromProtobuf(e.tokenId):void 0})}_toProtobuf(){return{accountId:null!=this._accountId?this._accountId._toProtobuf():void 0,tokenId:null!=this._tokenId?this._tokenId._toProtobuf():void 0}}toJSON(){var e,t;return{accountId:(null==(e=this._accountId)?void 0:e.toString())||null,tokenId:(null==(t=this._tokenId)?void 0:t.toString())||null}}}class TokenTransfer{constructor(e){this.tokenId=e.tokenId instanceof TokenId?e.tokenId:TokenId.fromString(e.tokenId),this.accountId=e.accountId instanceof AccountId?e.accountId:AccountId.fromString(e.accountId),this.expectedDecimals=e.expectedDecimals,this.amount=Long$1.fromValue(e.amount),this.isApproved=e.isApproved}static _fromProtobuf(e){const t=[];for(const r of e){const e=TokenId._fromProtobuf(r.token),n=null!=r.expectedDecimals&&Object.hasOwn(r.expectedDecimals,"value")?r.expectedDecimals.value:null;for(const o of null!=r.transfers?r.transfers:[])t.push(new TokenTransfer({tokenId:e,accountId:AccountId._fromProtobuf(o.accountID),expectedDecimals:n||null,amount:null!=o.amount?o.amount:Long$1.ZERO,isApproved:1==o.isApproval}))}return t}_toProtobuf(){return{accountID:this.accountId._toProtobuf(),amount:this.amount,isApproval:this.isApproved}}toJSON(){return{tokenId:this.tokenId.toString(),accountId:this.accountId.toString(),expectedDecimals:this.expectedDecimals,amount:this.amount.toString(),isApproved:this.isApproved}}toString(){return JSON.stringify(this.toJSON())}}class NftId{constructor(e,t){this.tokenId=e,this.serial="number"==typeof t?Long$1.fromNumber(t):t,Object.freeze(this)}static fromString(e){const t=e.split("/").length>1?e.split("/"):e.split("@");for(const o of t)if(""===o)throw new Error("invalid format for NftId: use [token]/[serial] or [token]@[serial]");const r=TokenId.fromString(t[0]),n=Long$1.fromString(t[1]);return new NftId(r,n)}static _fromProtobuf(e){return new NftId(TokenId._fromProtobuf(e.token_ID),null!=e.serialNumber?e.serialNumber:Long$1.ZERO)}static fromBytes(e){return NftId._fromProtobuf(proto_1.NftID.decode(e))}_toProtobuf(){return{token_ID:this.tokenId._toProtobuf(),serialNumber:Long$1.fromValue(void 0!==this.serial?this.serial:0)}}toString(){return`${this.tokenId.toString()}/${this.serial.toString()}`}toBytes(){return proto_1.NftID.encode(this._toProtobuf()).finish()}}class PendingAirdropId{constructor(e={}){var t,r;this._senderId=null,this._receiverId=null,this._tokenId=null,this._nftId=null,e.receiverId&&(this._receiverId=e.receiverId),e.senderId&&(this._senderId=e.senderId),e.tokenId?this._tokenId=new TokenId(e.tokenId):e.nftId&&(this._nftId=new NftId(null==(t=e.nftId)?void 0:t.tokenId,null==(r=e.nftId)?void 0:r.serial))}static fromBytes(e){if(null==e.senderId)throw new Error("senderId is required");if(null==e.receiverId)throw new Error("receiverId is required");if(null==e.fungibleTokenType&&null==e.nonFungibleToken)throw new Error("Either fungibleTokenType or nonFungibleToken is required");return new PendingAirdropId({senderId:AccountId._fromProtobuf(e.senderId),receiverId:AccountId._fromProtobuf(e.receiverId),nftId:null!=e.nonFungibleToken?NftId._fromProtobuf(e.nonFungibleToken):null,tokenId:null!=e.fungibleTokenType?TokenId._fromProtobuf(e.fungibleTokenType):null})}setSenderid(e){return this._senderId=e,this}setReceiverId(e){return this._receiverId=e,this}setTokenId(e){return this._nftId=null,this._tokenId=e,this}setNftId(e){return this._tokenId=null,this._nftId=e,this}get senderId(){return this._senderId}get receiverId(){return this._receiverId}get tokenId(){return this._tokenId}get nftId(){return this._nftId}toBytes(){var e,t,r,n;return{senderId:null==(e=this.senderId)?void 0:e._toProtobuf(),receiverId:null==(t=this._receiverId)?void 0:t._toProtobuf(),fungibleTokenType:null==(r=this._tokenId)?void 0:r._toProtobuf(),nonFungibleToken:null==(n=this._nftId)?void 0:n._toProtobuf()}}}class PendingAirdropRecord{constructor(e){this.airdropId=e.airdropId,this.amount=e.amount}toBytes(){return{pendingAirdropId:this.airdropId.toBytes(),pendingAirdropValue:{amount:this.amount}}}static fromBytes(e){var t;if(null==e.pendingAirdropId)throw new Error("pendingAirdropId is required");const r=PendingAirdropId.fromBytes(e.pendingAirdropId),n=null==(t=e.pendingAirdropValue)?void 0:t.amount;return new PendingAirdropRecord({airdropId:r,amount:n||Long$1.ZERO})}}class TransactionRecord{constructor(e){this.receipt=e.receipt,this.transactionHash=e.transactionHash,this.consensusTimestamp=e.consensusTimestamp,this.transactionId=e.transactionId,this.transactionMemo=e.transactionMemo,this.transactionFee=e.transactionFee,this.transfers=e.transfers,this.contractFunctionResult=null!=e.contractFunctionResult?e.contractFunctionResult:null,this.tokenTransfers=e.tokenTransfers,this.tokenTransfersList=e.tokenTransfersList,this.scheduleRef=e.scheduleRef,this.assessedCustomFees=e.assessedCustomFees,this.nftTransfers=e.nftTransfers,this.automaticTokenAssociations=e.automaticTokenAssociations,this.parentConsensusTimestamp=e.parentConsensusTimestamp,this.aliasKey=e.aliasKey,this.duplicates=e.duplicates,this.children=e.children,this.hbarAllowanceAdjustments=e.hbarAllowanceAdjustments,this.tokenAllowanceAdjustments=e.tokenAllowanceAdjustments,this.nftAllowanceAdjustments=e.nftAllowanceAdjustments,this.ethereumHash=e.ethereumHash,this.paidStakingRewards=e.paidStakingRewards,this.prngBytes=e.prngBytes,this.prngNumber=e.prngNumber,this.evmAddress=e.evmAddress,this.newPendingAirdrops=e.newPendingAirdrops,Object.freeze(this)}_toProtobuf(){const e=this.tokenTransfers._toProtobuf(),t=this.nftTransfers._toProtobuf(),r=[];for(const n of e)for(const e of t)null!=n.token&&null!=e.token&&n.token.shardNum===e.token.shardNum&&n.token.realmNum===e.token.realmNum&&n.token.tokenNum===e.token.tokenNum?r.push({token:n.token,transfers:n.transfers,nftTransfers:n.nftTransfers}):(r.push(n),r.push(e));return{duplicateTransactionRecords:this.duplicates.map((e=>e._toProtobuf().transactionRecord)),childTransactionRecords:this.children.map((e=>e._toProtobuf().transactionRecord)),transactionRecord:{receipt:this.receipt._toProtobuf().receipt,transactionHash:null!=this.transactionHash?this.transactionHash:null,consensusTimestamp:null!=this.consensusTimestamp?this.consensusTimestamp._toProtobuf():null,transactionID:null!=this.transactionId?this.transactionId._toProtobuf():null,memo:null!=this.transactionMemo?this.transactionMemo:null,transactionFee:null!=this.transactionFee?this.transactionFee.toTinybars():null,contractCallResult:null==this.contractFunctionResult||this.contractFunctionResult._createResult?null:this.contractFunctionResult._toProtobuf(),contractCreateResult:null!=this.contractFunctionResult&&this.contractFunctionResult._createResult?this.contractFunctionResult._toProtobuf():null,transferList:null!=this.transfers?{accountAmounts:this.transfers.map((e=>e._toProtobuf()))}:null,tokenTransferLists:r,scheduleRef:null!=this.scheduleRef?this.scheduleRef._toProtobuf():null,assessedCustomFees:this.assessedCustomFees.map((e=>e._toProtobuf())),automaticTokenAssociations:this.automaticTokenAssociations.map((e=>e._toProtobuf())),parentConsensusTimestamp:null!=this.parentConsensusTimestamp?this.parentConsensusTimestamp._toProtobuf():null,alias:null!=this.aliasKey?proto_1.Key.encode(this.aliasKey._toProtobufKey()).finish():null,ethereumHash:this.ethereumHash,paidStakingRewards:this.paidStakingRewards.map((e=>e._toProtobuf())),prngBytes:this.prngBytes,prngNumber:null!=this.prngNumber?this.prngNumber:null,evmAddress:null!=this.evmAddress?this.evmAddress.toBytes():null,newPendingAirdrops:this.newPendingAirdrops.map((e=>e.toBytes()))}}}static _fromProtobuf(e){const t=e.transactionRecord;let r=null!=t.alias&&t.alias.length>0?Key._fromProtobufKey(proto_1.Key.decode(t.alias)):null;r instanceof PublicKey||(r=null);const n=null!=e.childTransactionRecords?e.childTransactionRecords.map((e=>TransactionRecord._fromProtobuf({transactionRecord:e}))):[],o=null!=e.duplicateTransactionRecords?e.duplicateTransactionRecords.map((e=>TransactionRecord._fromProtobuf({transactionRecord:e}))):[],i=null!=t.contractCallResult?ContractFunctionResult._fromProtobuf(t.contractCallResult,!1):null!=t.contractCreateResult?ContractFunctionResult._fromProtobuf(t.contractCreateResult,!0):void 0,a=null!=t.newPendingAirdrops?t.newPendingAirdrops.map((e=>PendingAirdropRecord.fromBytes(e))):[];return new TransactionRecord({receipt:TransactionReceipt._fromProtobuf({receipt:t.receipt}),transactionHash:null!=t.transactionHash?t.transactionHash:new Uint8Array,consensusTimestamp:Timestamp._fromProtobuf(t.consensusTimestamp),transactionId:TransactionId._fromProtobuf(t.transactionID),transactionMemo:null!=t.memo?t.memo:"",transactionFee:Hbar.fromTinybars(null!=t.transactionFee?t.transactionFee:0),transfers:Transfer._fromProtobuf(null!=t.transferList&&null!=t.transferList.accountAmounts?t.transferList.accountAmounts:[]),contractFunctionResult:i,tokenTransfers:TokenTransferMap._fromProtobuf(null!=t.tokenTransferLists?t.tokenTransferLists:[]),tokenTransfersList:TokenTransfer._fromProtobuf(null!=t.tokenTransferLists?t.tokenTransferLists:[]),scheduleRef:null!=t.scheduleRef?ScheduleId._fromProtobuf(t.scheduleRef):null,assessedCustomFees:null!=t.assessedCustomFees?t.assessedCustomFees.map((e=>AssessedCustomFee._fromProtobuf(e))):[],nftTransfers:TokenNftTransferMap._fromProtobuf(null!=t.tokenTransferLists?t.tokenTransferLists:[]),automaticTokenAssociations:null!=t.automaticTokenAssociations?t.automaticTokenAssociations.map((e=>TokenAssociation._fromProtobuf(e))):[],parentConsensusTimestamp:null!=t.parentConsensusTimestamp?Timestamp._fromProtobuf(t.parentConsensusTimestamp):null,aliasKey:r,duplicates:o,children:n,hbarAllowanceAdjustments:[],tokenAllowanceAdjustments:[],nftAllowanceAdjustments:[],ethereumHash:null!=t.ethereumHash?t.ethereumHash:null,paidStakingRewards:null!=t.paidStakingRewards?Transfer._fromProtobuf(t.paidStakingRewards):[],prngBytes:null!=t.prngBytes?t.prngBytes:null,prngNumber:null!=t.prngNumber?t.prngNumber:null,evmAddress:null!=t.evmAddress?EvmAddress.fromBytes(t.evmAddress):null,newPendingAirdrops:a})}static fromBytes(e){return TransactionRecord._fromProtobuf(proto_1.TransactionGetRecordResponse.decode(e))}toBytes(){return proto_1.TransactionGetRecordResponse.encode(this._toProtobuf()).finish()}toJSON(){var e,t,r,n;return{receipt:this.receipt.toJSON(),transactionHash:encode$9(this.transactionHash),consensusTimestamp:this.consensusTimestamp.toDate(),transactionId:this.transactionId.toString(),transactionMemo:this.transactionMemo,transactionFee:this.transactionFee.toTinybars().toString(),transfers:this.transfers.map((e=>e.toJSON())),tokenTransfers:this.tokenTransfers,tokenTransfersList:this.tokenTransfersList.map((e=>e.toJSON())),scheduleRef:(null==(e=this.scheduleRef)?void 0:e.toString())||null,assessedCustomFees:this.assessedCustomFees,nftTransfers:this.nftTransfers,automaticTokenAssociations:this.automaticTokenAssociations,parentConsensusTimestamp:(null==(t=this.parentConsensusTimestamp)?void 0:t.toDate())||null,aliasKey:(null==(r=this.aliasKey)?void 0:r.toString())||null,duplicates:this.duplicates,children:this.children,ethereumHash:null!=this.ethereumHash?encode$9(this.ethereumHash):null,paidStakingRewards:this.paidStakingRewards,prngBytes:null!=this.prngBytes?encode$9(this.prngBytes):null,prngNumber:this.prngNumber,evmAddress:(null==(n=this.evmAddress)?void 0:n.toString())||null}}toString(){return JSON.stringify(this.toJSON())}}class RecordStatusError extends StatusError{constructor(e){super(e,`Record for transaction ${e.transactionId.toString()} contained error status ${e.status.toString()}`),this.transactionRecord=e.transactionRecord}}const{proto:proto$6}=HashgraphProto;class TransactionRecordQuery extends Query{constructor(e={}){super(),this._transactionId=null,this._includeChildren=null,this._includeDuplicates=null,this._validateReceiptStatus=!0,null!=e.transactionId&&this.setTransactionId(e.transactionId),null!=e.includeChildren&&this.setIncludeChildren(e.includeChildren),null!=e.includeDuplicates&&this.setIncludeDuplicates(e.includeDuplicates),null!=e.validateReceiptStatus&&this.setValidateReceiptStatus(e.validateReceiptStatus)}get transactionId(){return this._transactionId}static _fromProtobuf(e){const t=e.transactionGetRecord;return new TransactionRecordQuery({transactionId:t.transactionID?TransactionId._fromProtobuf(t.transactionID):void 0,includeChildren:null!=t.includeChildRecords?t.includeChildRecords:void 0,includeDuplicates:null!=t.includeDuplicates?t.includeDuplicates:void 0})}setTransactionId(e){return this._transactionId="string"==typeof e?TransactionId.fromString(e):e.clone(),this}setIncludeChildren(e){return this._includeChildren=e,this}get includeChildren(){return null!=this._includeChildren&&this._includeChildren}setIncludeDuplicates(e){return this._duplicates=e,this}get includeDuplicates(){return null!=this._duplicates&&this._duplicates}setValidateReceiptStatus(e){return this._validateReceiptStatus=e,this}get validateReceiptStatus(){return this._validateReceiptStatus}_shouldRetry(e,t){const{nodeTransactionPrecheckCode:r}=this._mapResponseHeader(t);let n=Status._fromCode(null!=r?r:proto$6.ResponseCodeEnum.OK);switch(this._logger&&this._logger.debug(`[${this._getLogId()}] received node precheck status ${n.toString()}`),n){case Status.Busy:case Status.Unknown:case Status.ReceiptNotFound:case Status.RecordNotFound:case Status.PlatformNotActive:return[n,ExecutionState.Retry];case Status.Ok:break;default:return[n,ExecutionState.Error]}const o=t.transactionGetRecord;if(o.header.responseType===proto_1.ResponseType.COST_ANSWER)return[n,ExecutionState.Finished];const i=o.transactionRecord.receipt.status;switch(n=Status._fromCode(i),this._logger&&this._logger.debug(`[${this._getLogId()}] received record's receipt ${n.toString()}`),n){case Status.Ok:case Status.Busy:case Status.Unknown:case Status.ReceiptNotFound:case Status.RecordNotFound:return[n,ExecutionState.Retry];case Status.Success:return[n,ExecutionState.Finished];default:return[n,this._validateReceiptStatus?ExecutionState.Error:ExecutionState.Finished]}}_mapStatusError(e,t,r){const{nodeTransactionPrecheckCode:n}=this._mapResponseHeader(t);let o=Status._fromCode(null!=n?n:proto$6.ResponseCodeEnum.OK);switch(o){case Status.Ok:break;case Status.ContractRevertExecuted:return new RecordStatusError({status:o,transactionId:this._getTransactionId(),transactionRecord:TransactionRecord._fromProtobuf({transactionRecord:t.transactionGetRecord.transactionRecord})});default:return new PrecheckStatusError({nodeId:r,status:o,transactionId:this._getTransactionId(),contractFunctionResult:null})}const i=t.transactionGetRecord.transactionRecord.receipt,a=i.status;return o=Status._fromCode(a),o===Status.ContractRevertExecuted?new RecordStatusError({status:o,transactionId:this._getTransactionId(),transactionRecord:TransactionRecord._fromProtobuf({transactionRecord:t.transactionGetRecord.transactionRecord})}):new ReceiptStatusError({status:o,transactionId:this._getTransactionId(),transactionReceipt:TransactionReceipt._fromProtobuf({receipt:i})})}_validateChecksums(e){null!=this._transactionId&&null!=this._transactionId.accountId&&this._transactionId.accountId.validateChecksum(e)}_execute(e,t){return e.crypto.getTxRecordByTxID(t)}_mapResponseHeader(e){return e.transactionGetRecord.header}_mapResponse(e,t,r){const n=e.transactionGetRecord;return Promise.resolve(TransactionRecord._fromProtobuf(n))}_onMakeRequest(e){return{transactionGetRecord:{header:e,transactionID:null!=this._transactionId?this._transactionId._toProtobuf():null,includeChildRecords:this._includeChildren,includeDuplicates:this._includeDuplicates}}}_getLogId(){return`TransactionRecordQuery:${(null!=this._paymentTransactionId&&null!=this._paymentTransactionId.validStart?this._paymentTransactionId.validStart:this._timestamp).toString()}`}}QUERY_REGISTRY.set("transactionGetRecord",TransactionRecordQuery._fromProtobuf);class TransactionResponse{constructor(e){this.nodeId=e.nodeId,this.transactionHash=e.transactionHash,this.transactionId=e.transactionId,Object.freeze(this)}static fromJSON(e){return new TransactionResponse({nodeId:AccountId.fromString(e.nodeId),transactionHash:decode$a(e.transactionHash),transactionId:TransactionId.fromString(e.transactionId)})}async getReceipt(e){const t=await this.getReceiptQuery().execute(e);if(t.status!==Status.Success&&t.status!==Status.FeeScheduleFilePartUploaded)throw new ReceiptStatusError({transactionReceipt:t,status:t.status,transactionId:this.transactionId});return t}async getRecord(e){return await this.getReceipt(e),this.getRecordQuery().execute(e)}async getVerboseRecord(e){try{return await this.getReceiptQuery().execute(e),this.getRecordQuery().execute(e)}catch(e2){return this.getRecordQuery().execute(e)}}async getReceiptWithSigner(e){const t=await this.getReceiptQuery().executeWithSigner(e);if(t.status!==Status.Success)throw new ReceiptStatusError({transactionReceipt:t,status:t.status,transactionId:this.transactionId});return t}async getRecordWithSigner(e){return await this.getReceiptWithSigner(e),this.getRecordQuery().executeWithSigner(e)}getReceiptQuery(){return(new TransactionReceiptQuery).setTransactionId(this.transactionId).setNodeAccountIds([this.nodeId])}getRecordQuery(){return(new TransactionRecordQuery).setTransactionId(this.transactionId).setNodeAccountIds([this.nodeId])}toJSON(){return{nodeId:this.nodeId.toString(),transactionHash:encode$9(this.transactionHash),transactionId:this.transactionId.toString()}}toString(){return JSON.stringify(this.toJSON())}}async function digest(e){return new Uint8Array(await window.crypto.subtle.digest("SHA-384",e))}class TransactionHashMap extends ObjectMap{constructor(){super((e=>AccountId.fromString(e)))}static async _fromTransaction(e){const t=new TransactionHashMap;for(let r=0;rencode$9((null==e?void 0:e.pubKeyPrefix)||new Uint8Array)===t)),this._transactions=new List,this._signedTransactions=new List,this._signerPublicKeys=new Set,this._transactionValidDuration=DEFAULT_TRANSACTION_VALID_DURATION,this._defaultMaxTransactionFee=new Hbar(2),this._maxTransactionFee=null,this._transactionMemo="",this._transactionIds=new List,this._publicKeys=[],this._transactionSigners=[],this._regenerateTransactionId=null}static fromBytes(e){const t=[],r=[],n=[],o=[],i=[],a=[],s=proto_1.TransactionList.decode(e).transactionList;if(0===s.length){const t=proto_1.Transaction.decode(e);0!==t.signedTransactionBytes.length?s.push(t):s.push({signedTransactionBytes:proto_1.SignedTransaction.encode({sigMap:t.sigMap,bodyBytes:t.bodyBytes}).finish()})}for(const l of s){if(null==l.bodyBytes&&null==l.signedTransactionBytes)throw new Error("bodyBytes and signedTransactionBytes are null");if(l.bodyBytes&&0!=l.bodyBytes.length){const e=proto_1.TransactionBody.decode(l.bodyBytes);if(null!=e.transactionID){const t=TransactionId._fromProtobuf(e.transactionID);o.includes(t.toString())||(r.push(t),o.push(t.toString()))}if(null!=e.nodeAccountID){const t=AccountId._fromProtobuf(e.nodeAccountID);i.includes(t.toString())||(n.push(t),i.push(t.toString()))}if(null==e.data)throw new Error("(BUG) body.data was not set in the protobuf");a.push(e)}if(l.signedTransactionBytes&&0!=l.signedTransactionBytes.length){const e=proto_1.SignedTransaction.decode(l.signedTransactionBytes);t.push(e);const s=proto_1.TransactionBody.decode(e.bodyBytes);if(null!=s.transactionID){const e=TransactionId._fromProtobuf(s.transactionID);o.includes(e.toString())||(r.push(e),o.push(e.toString()))}if(null!=s.nodeAccountID){const e=AccountId._fromProtobuf(s.nodeAccountID);i.includes(e.toString())||(n.push(e),i.push(e.toString()))}if(null==s.data)throw new Error("(BUG) body.data was not set in the protobuf");a.push(s)}}const c=a[0];if(null==c||null==c.data)throw new Error("No transaction found in bytes or failed to decode TransactionBody");const u=TRANSACTION_REGISTRY.get(c.data);if(null==u)throw new Error(`(BUG) Transaction.fromBytes() not implemented for type ${c.data}`);return u(s,t,r,n,a)}schedule(){if(this._requireNotFrozen(),1!=SCHEDULE_CREATE_TRANSACTION.length)throw new Error("ScheduleCreateTransaction has not been loaded yet");return SCHEDULE_CREATE_TRANSACTION[0]()._setScheduledTransaction(this)}static _fromProtobufTransactions(e,t,r,n,o,i){const a=i[0];for(let c=0;cnew Long$1(0,0,!0)?Hbar.fromTinybars(a.transactionFee):null,e._transactionMemo=null!=a.memo?a.memo:"";for(let c=0;cPromise.resolve(e.sign(t))))}async signWith(e,t){this._signOnDemand||this._requireFrozen();const r=encode$9(e.toBytesRaw());if(this._signerPublicKeys.has(r))return this;if(this._transactions.clear(),this._signerPublicKeys.add(r),this._signOnDemand)return this._publicKeys.push(e),this._transactionSigners.push(t),this;this._transactionIds.setLocked(),this._nodeAccountIds.setLocked();for(const n of this._signedTransactions.list){const r=n.bodyBytes,o=await t(r);null==n.sigMap&&(n.sigMap={}),null==n.sigMap.sigPair&&(n.sigMap.sigPair=[]),n.sigMap.sigPair.push(e._toProtobufSignature(o))}return this}signWithOperator(e){const t=e._operator;if(null==t)throw new Error("`client` must have an operator to sign with the operator");return this._isFrozen()||this.freezeWith(e),this.signWith(t.publicKey,t.transactionSigner)}addSignature(e,t){var r,n;this.isFrozen()||this.freeze();const o=encode$9(e.toBytesRaw());if(this._signerPublicKeys.has(o))return this;this._transactions.clear(),this._transactionIds.setLocked(),this._nodeAccountIds.setLocked(),this._signedTransactions.setLocked();for(let i=0;i!t.equals(e))),this._transactionSigners.pop(),r}removeAllSignatures(){this.isFrozen()||this.freeze();const e=this._collectSignaturesByPublicKey();for(const t of this._signedTransactions.list)t.sigMap&&t.sigMap.sigPair&&(t.sigMap.sigPair=[]);return this._signerPublicKeys.clear(),this._publicKeys=[],this._transactionSigners=[],e}getSignatures(){return this._requireFrozen(),this._requireNotSignOnDemand(),this._buildAllTransactions(),this._transactionIds.setLocked(),this._nodeAccountIds.setLocked(),SignatureMap._fromTransaction(this)}async getSignaturesAsync(){return this._transactionIds.setLocked(),this._nodeAccountIds.setLocked(),await this._buildAllTransactionsAsync(),this._transactions.setLocked(),this._signedTransactions.setLocked(),SignatureMap._fromTransaction(this)}_setTransactionId(){if(null==this._operatorAccountId&&this._transactionIds.isEmpty)throw new Error("`transactionId` must be set or `client` must be provided with `freezeWith`")}_setNodeAccountIds(e){if(this._nodeAccountIds.isEmpty){if(null==e)throw new Error("`nodeAccountId` must be set or `client` must be provided with `freezeWith`");this._nodeAccountIds.setList(e._network.getNodeAccountIdsForExecute())}}_buildSignedTransactions(){this._signedTransactions.locked||this._signedTransactions.setList(this._nodeAccountIds.list.map((e=>this._makeSignedTransaction(e))))}_buildIncompleteTransactions(){0==this._nodeAccountIds.length?this._transactions.setList([this._makeSignedTransaction(null)]):this._transactions.setList(this._nodeAccountIds.list.map((e=>this._makeSignedTransaction(e))))}freeze(){return this.freezeWith(null)}_freezeWithAccountId(e){null==this._operatorAccountId&&(this._operatorAccountId=e)}freezeWith(e){if(this._signOnDemand=null!=e&&e.signOnDemand,this._operator=null!=e?e._operator:null,this._freezeWithAccountId(null!=e?e.operatorAccountId:null),this._maxTransactionFee=null==this._maxTransactionFee?null!=e&&null!=e.defaultMaxTransactionFee?e.defaultMaxTransactionFee:this._defaultMaxTransactionFee:this._maxTransactionFee,this._regenerateTransactionId=null!=e&&null==this._regenerateTransactionId?e.defaultRegenerateTransactionId:this._regenerateTransactionId,this._setNodeAccountIds(e),this._setTransactionId(),null!=e)for(const t of this._transactionIds.list)null!=t.accountId&&t.accountId.validateChecksum(e);return this._buildNewTransactionIdList(),this._signOnDemand||this._buildSignedTransactions(),this}async signWithSigner(e){return await e.signTransaction(this),this}async freezeWithSigner(e){return await e.populateTransaction(this),this.freeze(),this}toBytes(){return this._requireNotSignOnDemand(),this._isFrozen()?(this._transactionIds.setLocked(),this._nodeAccountIds.setLocked(),this._buildAllTransactions()):this._buildIncompleteTransactions(),proto_1.TransactionList.encode({transactionList:this._transactions.list}).finish()}async toBytesAsync(){return this._transactionIds.setLocked(),this._nodeAccountIds.setLocked(),await this._buildAllTransactionsAsync(),this._transactions.setLocked(),this._signedTransactions.setLocked(),proto_1.TransactionList.encode({transactionList:this._transactions.list}).finish()}async getTransactionHash(){return this._requireFrozen(),this._transactionIds.setLocked(),this._nodeAccountIds.setLocked(),await this._buildAllTransactionsAsync(),this._transactions.setLocked(),this._signedTransactions.setLocked(),digest(this._transactions.get(0).signedTransactionBytes)}async getTransactionHashPerNode(){return this._requireFrozen(),this._transactionIds.setLocked(),this._nodeAccountIds.setLocked(),await this._buildAllTransactionsAsync(),await TransactionHashMap._fromTransaction(this)}isFrozen(){return this._signedTransactions.length>0}_getTransactionId(){const e=this.transactionId;if(null==e)throw new Error("transaction must have been frozen before getting the transaction ID, try calling `freeze`");return e}_validateChecksums(e){}async _beforeExecute(e){this.transactionNodeIds=Object.values(e.network).map((e=>e.toString())),this._logger&&this._logger.info(`Network used: ${e._network.networkName}`),this._isFrozen()||this.freezeWith(e),e.isAutoValidateChecksumsEnabled()&&this._validateChecksums(e),null!=this._operator&&null!=this._operator||(this._operator=null!=e?e._operator:null),null!=this._operatorAccountId&&null!=this._operatorAccountId||(this._operatorAccountId=null!=e&&null!=e._operator?e._operator.accountId:null),null!=this._operator&&await this.signWith(this._operator.publicKey,this._operator.transactionSigner)}async _makeRequestAsync(){const e=this._transactionIds.index*this._nodeAccountIds.length+this._nodeAccountIds.index;return this._signOnDemand?await this._buildTransactionAsync():(this._buildTransaction(e),this._transactions.get(e))}async _signTransaction(){const e=this._makeSignedTransaction(this._nodeAccountIds.next),t=e.bodyBytes;for(let r=0;r({signedTransactionBytes:proto_1.SignedTransaction.encode(this._signedTransactions.get(e)).finish()})))}async _buildTransactionAsync(){return{signedTransactionBytes:proto_1.SignedTransaction.encode(await this._signTransaction()).finish()}}_shouldRetry(e,t){const{nodeTransactionPrecheckCode:r}=t,n=Status._fromCode(null!=r?r:proto_1.ResponseCodeEnum.OK);switch(this._logger&&(this._logger.debug(`[${this._getLogId()}] received status ${n.toString()}`),this._logger.info(`SDK Transaction Status Response: ${n.toString()}`)),n){case Status.Busy:case Status.Unknown:case Status.PlatformTransactionNotCreated:case Status.PlatformNotActive:return[n,ExecutionState.Retry];case Status.Ok:return[n,ExecutionState.Finished];case Status.TransactionExpired:return this._transactionIds.locked||null!=this._regenerateTransactionId&&!this._regenerateTransactionId?[n,ExecutionState.Error]:(this._buildNewTransactionIdList(),[n,ExecutionState.Retry]);default:return[n,ExecutionState.Error]}}_mapStatusError(e,t,r){const{nodeTransactionPrecheckCode:n}=t,o=Status._fromCode(null!=n?n:proto_1.ResponseCodeEnum.OK);return this._logger&&this._logger.info(`Transaction Error Info: ${o.toString()}, ${this.transactionId.toString()}`),new PrecheckStatusError({nodeId:r,status:o,transactionId:this._getTransactionId(),contractFunctionResult:null})}async _mapResponse(e,t,r){const n=await digest(r.signedTransactionBytes),o=this._getTransactionId();return this._transactionIds.advance(),this._logger&&this._logger.info(`Transaction Info: ${JSON.stringify(new TransactionResponse({nodeId:t,transactionHash:n,transactionId:o}).toJSON())}`),new TransactionResponse({nodeId:t,transactionHash:n,transactionId:o})}_makeSignedTransaction(e){const t=this._makeTransactionBody(e);this._logger&&this._logger.info(`Transaction Body: ${JSON.stringify(t)}`);return{sigMap:{sigPair:[]},bodyBytes:proto_1.TransactionBody.encode(t).finish()}}_makeTransactionBody(e){return{[this._getTransactionDataCase()]:this._makeTransactionData(),transactionFee:null!=this._maxTransactionFee?this._maxTransactionFee.toTinybars():null,memo:this._transactionMemo,transactionID:null!=this._transactionIds.current?this._transactionIds.current._toProtobuf():null,nodeAccountID:null!=e?e._toProtobuf():null,transactionValidDuration:{seconds:Long$1.fromNumber(this._transactionValidDuration)}}}_getTransactionDataCase(){throw new Error("not implemented")}_getScheduledTransactionBody(){return{memo:this.transactionMemo,transactionFee:null==this._maxTransactionFee?this._defaultMaxTransactionFee.toTinybars():this._maxTransactionFee.toTinybars(),[this._getTransactionDataCase()]:this._makeTransactionData()}}_makeTransactionData(){throw new Error("not implemented")}_isFrozen(){return this._signOnDemand||this._signedTransactions.length>0}_requireNotFrozen(){if(this._isFrozen())throw new Error("transaction is immutable; it has at least one signature or has been explicitly frozen")}_requireNotSignOnDemand(){if(this._signOnDemand)throw new Error("Please use `toBytesAsync()` if `signOnDemand` is enabled")}_requireFrozen(){if(!this._isFrozen())throw new Error("transaction must have been frozen before calculating the hash will be stable, try calling `freeze`")}_requireOneNodeAccountId(){if(1!=this._nodeAccountIds.length)throw"transaction did not have exactly one node ID set"}_requestToBytes(e){return proto_1.Transaction.encode(e).finish()}_responseToBytes(e){return proto_1.TransactionResponse.encode(e).finish()}_removeSignaturesFromTransaction(e,t){const r=[];return e.sigMap&&e.sigMap.sigPair?(e.sigMap.sigPair=e.sigMap.sigPair.filter((e=>{const n=this._shouldRemoveSignature(e,t),o=e.ed25519??e.ECDSASecp256k1;return n&&o&&r.push(o),!n})),r):[]}_collectSignaturesByPublicKey(){const e=new Map,t={};for(const r of this._signedTransactions.list){if(!r.sigMap||!r.sigMap.sigPair)return new Map;for(const n of r.sigMap.sigPair){const r=n.ed25519??n.ECDSASecp256k1;if(!r||!n.pubKeyPrefix)return new Map;const o=encode$9(n.pubKeyPrefix);let i=t[o];i||(i=PublicKey.fromString(o),t[o]=i),e.has(i)||e.set(i,[]);const a=e.get(i);a&&a.push(r)}}return e}}const SCHEDULE_CREATE_TRANSACTION=[];class TokenNftTransfer{constructor(e){this.tokenId=e.tokenId instanceof TokenId?e.tokenId:TokenId.fromString(e.tokenId),this.senderAccountId=e.senderAccountId instanceof AccountId?e.senderAccountId:AccountId.fromString(e.senderAccountId),this.receiverAccountId=e.receiverAccountId instanceof AccountId?e.receiverAccountId:AccountId.fromString(e.receiverAccountId),this.serialNumber=Long$1.fromValue(e.serialNumber),this.isApproved=e.isApproved}static _fromProtobuf(e){const t=[];for(const r of e){const e=TokenId._fromProtobuf(r.token);for(const n of null!=r.nftTransfers?r.nftTransfers:[])t.push(new TokenNftTransfer({tokenId:e,senderAccountId:AccountId._fromProtobuf(n.senderAccountID),receiverAccountId:AccountId._fromProtobuf(n.receiverAccountID),serialNumber:null!=n.serialNumber?n.serialNumber:Long$1.ZERO,isApproved:1==n.isApproval}))}return t}_toProtobuf(){return{senderAccountID:this.senderAccountId._toProtobuf(),receiverAccountID:this.receiverAccountId._toProtobuf(),serialNumber:this.serialNumber,isApproval:this.isApproved}}}class NullableTokenDecimalMap extends ObjectMap{constructor(){super((e=>TokenId.fromString(e)))}}class AbstractTokenTransferTransaction extends Transaction{constructor(e={}){super(),this._tokenTransfers=[],this._nftTransfers=[];for(const t of null!=e.tokenTransfers?e.tokenTransfers:[])this.addTokenTransfer(t.tokenId,t.accountId,t.amount);for(const t of null!=e.nftTransfers?e.nftTransfers:[])this.addNftTransfer(t.tokenId,t.serial,t.sender,t.recipient)}addNftTransfer(e,t,r,n){return this._addNftTransfer(!1,e,t,r,n)}_addTokenTransfer(e,t,r,n,o){this._requireNotFrozen();const i=e instanceof TokenId?e:TokenId.fromString(e),a=t instanceof AccountId?t:AccountId.fromString(t),s=r instanceof Long$1?r:Long$1.fromNumber(r);for(const c of this._tokenTransfers)if(0===c.tokenId.compare(i)&&0===c.accountId.compare(a))return c.amount=c.amount.add(s),c.expectedDecimals=o,this;return this._tokenTransfers.push(new TokenTransfer({tokenId:e,accountId:t,expectedDecimals:o,amount:r,isApproved:n})),this}addTokenTransfer(e,t,r){return this._addTokenTransfer(e,t,r,!1,null)}_addNftTransfer(e,t,r,n,o){let i,a,s;if(this._requireNotFrozen(),t instanceof NftId)i=t,a="string"==typeof r?AccountId.fromString(r):r,s="string"==typeof n?AccountId.fromString(n):n;else if(t instanceof TokenId)i=new NftId(t,r),a="string"==typeof n?AccountId.fromString(n):n,s="string"==typeof o?AccountId.fromString(o):o;else try{i=NftId.fromString(t),a="string"==typeof r?AccountId.fromString(r):r,s="string"==typeof n?AccountId.fromString(n):n}catch(c){const e=TokenId.fromString(t);i=new NftId(e,r),a="string"==typeof n?AccountId.fromString(n):n,s="string"==typeof o?AccountId.fromString(o):o}for(const u of this._nftTransfers)if(0===u.tokenId.compare(i.tokenId)&&0===u.serialNumber.compare(i.serial))return u.senderAccountId=a,u.receiverAccountId=s,this;return this._nftTransfers.push(new TokenNftTransfer({tokenId:i.tokenId,serialNumber:i.serial,senderAccountId:a,receiverAccountId:s,isApproved:e})),this}addApprovedNftTransfer(e,t,r,n){return this._addNftTransfer(!0,e,t,r,n)}addApprovedTokenTransfer(e,t,r){return this._addTokenTransfer(e,t,r,!0,null)}addTokenTransferWithDecimals(e,t,r,n){this._requireNotFrozen();const o=e instanceof TokenId?e:TokenId.fromString(e),i=t instanceof AccountId?t:AccountId.fromString(t),a=r instanceof Long$1?r:Long$1.fromNumber(r);let s=!1;for(const c of this._tokenTransfers)if(0===c.tokenId.compare(o)){if(null!=c.expectedDecimals&&c.expectedDecimals!==n)throw new Error("expected decimals mis-match");c.expectedDecimals=n,0===c.accountId.compare(i)&&(c.amount=c.amount.add(a),c.expectedDecimals=n,s=!0)}return s||this._tokenTransfers.push(new TokenTransfer({tokenId:e,accountId:t,expectedDecimals:n,amount:r,isApproved:!1})),this}get tokenIdDecimals(){const e=new NullableTokenDecimalMap;for(const t of this._tokenTransfers)e._set(t.tokenId,t.expectedDecimals);return e}get nftTransfers(){const e=new TokenNftTransferMap;for(const t of this._nftTransfers){const r=e.get(t.tokenId),n={sender:t.senderAccountId,recipient:t.receiverAccountId,serial:t.serialNumber,isApproved:t.isApproved};null!=r?r.push(n):e._set(t.tokenId,[n])}return e}get tokenTransfers(){const e=new TokenTransferMap;for(const t of this._tokenTransfers){let r=e.get(t.tokenId);null!=r?r._set(t.accountId,t.amount):(r=new TokenTransferAccountMap,r._set(t.accountId,t.amount),e._set(t.tokenId,r))}return e}_makeTransactionData(){const e=[];this._tokenTransfers.sort(((e,t)=>{const r=e.tokenId.compare(t.tokenId);return 0!==r?r:e.accountId.compare(t.accountId)})),this._nftTransfers.sort(((e,t)=>{const r=e.senderAccountId.compare(t.senderAccountId);if(0!=r)return r;const n=e.receiverAccountId.compare(t.receiverAccountId);return 0!=n?n:e.serialNumber.compare(t.serialNumber)}));let t=0,r=0;for(;t0?e[e.length-1]:null,a=null!=i?i.tokenId:null;if(null!=i&&null!=a&&0===a.compare(n)){i.transfers.push(this._tokenTransfers[t++]);continue}if(null!=i&&null!=a&&0===a.compare(o)){i.nftTransfers.push(this._nftTransfers[r++]);continue}const s=n.compare(o);0===s?e.push({tokenId:n,expectedDecimals:this._tokenTransfers[t].expectedDecimals,transfers:[this._tokenTransfers[t++]],nftTransfers:[this._nftTransfers[r++]]}):s<0?e.push({tokenId:n,expectedDecimals:this._tokenTransfers[t].expectedDecimals,transfers:[this._tokenTransfers[t++]],nftTransfers:[]}):e.push({tokenId:o,expectedDecimals:null,transfers:[],nftTransfers:[this._nftTransfers[r++]]})}else if(t({token:e.tokenId._toProtobuf(),expectedDecimals:null!=e.expectedDecimals?{value:e.expectedDecimals}:null,transfers:e.transfers.map((e=>e._toProtobuf())),nftTransfers:e.nftTransfers.map((e=>e._toProtobuf()))})))}}}class TokenAirdropTransaction extends AbstractTokenTransferTransaction{constructor(e={}){if(super(),null!=e.tokenTransfers)for(const t of e.tokenTransfers)this._addTokenTransfer(t.tokenId,t.accountId,t.amount,t.isApproved,t.expectedDecimals);if(this._nftTransfers=[],null!=e.nftTransfers)for(const t of e.nftTransfers)this._addNftTransfer(t.isApproved,t.tokenId,t.serialNumber,t.senderAccountId,t.receiverAccountId)}addApprovedTokenTransferWithDecimals(e,t,r,n){return this._requireNotFrozen(),this._addTokenTransfer(e,t,r,!0,n),this}static _fromProtobuf(e,t,r,n,o){const i=o[0].tokenAirdrop,a=TokenTransfer._fromProtobuf(i.tokenTransfers??[]),s=TokenNftTransfer._fromProtobuf(i.tokenTransfers??[]);return Transaction._fromProtobufTransactions(new TokenAirdropTransaction({nftTransfers:s,tokenTransfers:a}),e,t,r,n,o)}_execute(e,t){return e.token.airdropTokens(t)}_getTransactionDataCase(){return"tokenAirdrop"}_getLogId(){return`TokenAirdropTransaction:${this._transactionIds.current.validStart.toString()}`}}TRANSACTION_REGISTRY.set("tokenAirdrop",TokenAirdropTransaction._fromProtobuf);class AirdropPendingTransaction extends Transaction{constructor(e){super(),this._pendingAirdropIds=[],null!=(null==e?void 0:e.pendingAirdropIds)&&(this._pendingAirdropIds=e.pendingAirdropIds)}get pendingAirdropIds(){return this._pendingAirdropIds}addPendingAirdropId(e){return this._requireNotFrozen(),this._pendingAirdropIds.push(e),this}setPendingAirdropIds(e){return this._requireNotFrozen(),this._pendingAirdropIds=e,this}}class TokenClaimAirdropTransaction extends AirdropPendingTransaction{constructor(e={}){super(e)}_execute(e,t){return e.token.claimAirdrop(t)}_makeTransactionData(){return{pendingAirdrops:this.pendingAirdropIds.map((e=>e.toBytes()))}}static _fromProtobuf(e,t,r,n,o){const i=o[0],{pendingAirdrops:a}=i.tokenClaimAirdrop;return Transaction._fromProtobufTransactions(new TokenClaimAirdropTransaction({pendingAirdropIds:null==a?void 0:a.map((e=>PendingAirdropId.fromBytes(e)))}),e,t,r,n,o)}_getTransactionDataCase(){return"tokenClaimAirdrop"}_getLogId(){return`TokenClaimAirdropTransaction:${this._transactionIds.current.validStart.toString()}`}}TRANSACTION_REGISTRY.set("tokenClaimAirdrop",TokenClaimAirdropTransaction._fromProtobuf);class TokenCancelAirdropTransaction extends AirdropPendingTransaction{constructor(e={}){super(e)}_makeTransactionData(){return{pendingAirdrops:this.pendingAirdropIds.map((e=>e.toBytes()))}}_execute(e,t){return e.token.cancelAirdrop(t)}_getTransactionDataCase(){return"tokenCancelAirdrop"}static _fromProtobuf(e,t,r,n,o){const i=o[0],{pendingAirdrops:a}=i.tokenCancelAirdrop;return Transaction._fromProtobufTransactions(new TokenCancelAirdropTransaction({pendingAirdropIds:null==a?void 0:a.map((e=>PendingAirdropId.fromBytes(e)))}),e,t,r,n,o)}_getLogId(){return`TokenCancelAirdrop:${this._transactionIds.current.validStart.toString()}`}}TRANSACTION_REGISTRY.set("tokenCancelAirdrop",TokenCancelAirdropTransaction._fromProtobuf);class HbarAllowance{constructor(e){this.spenderAccountId=e.spenderAccountId,this.ownerAccountId=e.ownerAccountId,this.amount=e.amount,Object.freeze(this)}static _fromProtobuf(e){return new HbarAllowance({spenderAccountId:AccountId._fromProtobuf(e.spender),ownerAccountId:null!=e.owner?AccountId._fromProtobuf(e.owner):null,amount:Hbar.fromTinybars(null!=e.amount?e.amount:0)})}static _fromGrantedProtobuf(e,t){return new HbarAllowance({spenderAccountId:AccountId._fromProtobuf(e.spender),ownerAccountId:t,amount:Hbar.fromTinybars(null!=e.amount?e.amount:0)})}_toProtobuf(){return{owner:null!=this.ownerAccountId?this.ownerAccountId._toProtobuf():null,spender:null!=this.spenderAccountId?this.spenderAccountId._toProtobuf():null,amount:null!=this.amount?this.amount.toTinybars():null}}_validateChecksums(e){null!=this.spenderAccountId&&this.spenderAccountId.validateChecksum(e),null!=this.spenderAccountId&&this.spenderAccountId.validateChecksum(e)}toJSON(){return{ownerAccountId:null!=this.ownerAccountId?this.ownerAccountId.toString():null,spenderAccountId:null!=this.spenderAccountId?this.spenderAccountId.toString():null,amount:null!=this.amount?this.amount.toString():null}}}class TokenAllowance{constructor(e){this.tokenId=e.tokenId,this.spenderAccountId=e.spenderAccountId,this.ownerAccountId=e.ownerAccountId,this.amount=e.amount,Object.freeze(this)}static _fromProtobuf(e){return new TokenAllowance({tokenId:TokenId._fromProtobuf(e.tokenId),spenderAccountId:AccountId._fromProtobuf(e.spender),ownerAccountId:null!=e.owner?AccountId._fromProtobuf(e.owner):null,amount:null!=e.amount?Long$1.fromValue(e.amount):null})}static _fromGrantedProtobuf(e,t){return new TokenAllowance({tokenId:TokenId._fromProtobuf(e.tokenId),spenderAccountId:AccountId._fromProtobuf(e.spender),ownerAccountId:t,amount:null!=e.amount?Long$1.fromValue(e.amount):null})}_toProtobuf(){return{tokenId:this.tokenId._toProtobuf(),spender:null!=this.spenderAccountId?this.spenderAccountId._toProtobuf():null,owner:null!=this.ownerAccountId?this.ownerAccountId._toProtobuf():null,amount:this.amount}}_validateChecksums(e){this.tokenId.validateChecksum(e),null!=this.ownerAccountId&&this.ownerAccountId.validateChecksum(e),null!=this.spenderAccountId&&this.spenderAccountId.validateChecksum(e)}}class TokenNftAllowance{constructor(e){this.tokenId=e.tokenId,this.spenderAccountId=e.spenderAccountId,this.ownerAccountId=e.ownerAccountId,this.serialNumbers=e.serialNumbers,this.allSerials=e.allSerials,this.delegatingSpender=e.delegatingSpender,Object.freeze(this)}static _fromProtobuf(e){const t=null!=e.approvedForAll&&1==e.approvedForAll.value;return new TokenNftAllowance({tokenId:TokenId._fromProtobuf(e.tokenId),spenderAccountId:null!=e.spender?AccountId._fromProtobuf(e.spender):null,ownerAccountId:null!=e.owner?AccountId._fromProtobuf(e.owner):null,serialNumbers:t?null:null!=e.serialNumbers?e.serialNumbers.map((e=>Long$1.fromValue(e))):[],allSerials:t,delegatingSpender:null!=e.delegatingSpender?AccountId._fromProtobuf(e.delegatingSpender):null})}static _fromGrantedProtobuf(e,t){return new TokenNftAllowance({tokenId:TokenId._fromProtobuf(e.tokenId),spenderAccountId:AccountId._fromProtobuf(e.spender),ownerAccountId:t,serialNumbers:[],allSerials:null,delegatingSpender:null})}static _fromRemoveProtobuf(e){return new TokenNftAllowance({tokenId:TokenId._fromProtobuf(e.tokenId),spenderAccountId:null,ownerAccountId:null!=e.owner?AccountId._fromProtobuf(e.owner):null,serialNumbers:null!=e.serialNumbers?e.serialNumbers.map((e=>Long$1.fromValue(e))):[],allSerials:null,delegatingSpender:null})}_toProtobuf(){return{tokenId:this.tokenId._toProtobuf(),spender:null!=this.spenderAccountId?this.spenderAccountId._toProtobuf():null,owner:null!=this.ownerAccountId?this.ownerAccountId._toProtobuf():null,approvedForAll:null==this.serialNumbers?{value:this.allSerials}:null,serialNumbers:this.serialNumbers,delegatingSpender:null!=this.delegatingSpender?this.delegatingSpender._toProtobuf():null}}_validateChecksums(e){this.tokenId.validateChecksum(e),null!=this.ownerAccountId&&this.ownerAccountId.validateChecksum(e),null!=this.spenderAccountId&&this.spenderAccountId.validateChecksum(e)}}class AccountAllowanceAdjustTransaction extends Transaction{constructor(e={}){super(),this._hbarAllowances=null!=e.hbarAllowances?e.hbarAllowances:[],this._tokenAllowances=null!=e.tokenAllowances?e.tokenAllowances:[],this._nftAllowances=null!=e.nftAllowances?e.nftAllowances:[]}get hbarAllowances(){return this._hbarAllowances}addHbarAllowance(e,t){const r=t instanceof Hbar?t:new Hbar(t);return this._adjustHbarAllowance(null,e,requireNotNegative(r))}_adjustHbarAllowance(e,t,r){return this._requireNotFrozen(),this._hbarAllowances.push(new HbarAllowance({spenderAccountId:"string"==typeof t?AccountId.fromString(t):t instanceof ContractId?AccountId.fromEvmAddress(0,0,t.toSolidityAddress()):t,ownerAccountId:"string"==typeof e?AccountId.fromString(e):e instanceof ContractId?AccountId.fromEvmAddress(0,0,e.toSolidityAddress()):e,amount:r})),this}grantHbarAllowance(e,t,r){const n=r instanceof Hbar?r:new Hbar(r);return this._adjustHbarAllowance(e,t,requireNotNegative(n))}revokeHbarAllowance(e,t,r){const n=r instanceof Hbar?r:new Hbar(r);return this._adjustHbarAllowance(e,t,requireNotNegative(n).negated())}get tokenAllowances(){return this._tokenAllowances}addTokenAllowance(e,t,r){return this._adjustTokenAllowance(e,null,t,requireNotNegative(Long$1.fromValue(r)))}_adjustTokenAllowance(e,t,r,n){return this._requireNotFrozen(),this._tokenAllowances.push(new TokenAllowance({tokenId:"string"==typeof e?TokenId.fromString(e):e,spenderAccountId:"string"==typeof r?AccountId.fromString(r):r instanceof ContractId?AccountId.fromEvmAddress(0,0,r.toSolidityAddress()):r,ownerAccountId:"string"==typeof t?AccountId.fromString(t):t instanceof ContractId?AccountId.fromEvmAddress(0,0,t.toSolidityAddress()):t,amount:"number"==typeof n?Long$1.fromNumber(n):n})),this}grantTokenAllowance(e,t,r,n){return this._adjustTokenAllowance(e,t,r,requireNotNegative(Long$1.fromValue(n)))}revokeTokenAllowance(e,t,r,n){return this._adjustTokenAllowance(e,t,r,requireNotNegative(Long$1.fromValue(n)))}addTokenNftAllowance(e,t){const r="string"==typeof e?NftId.fromString(e):e;return this._adjustTokenNftAllowance(r,null,t)}_adjustTokenNftAllowance(e,t,r){this._requireNotFrozen();const n="string"==typeof r?AccountId.fromString(r):r instanceof ContractId?AccountId.fromEvmAddress(0,0,r.toSolidityAddress()):r,o="string"==typeof t?AccountId.fromString(t):t instanceof ContractId?AccountId.fromEvmAddress(0,0,t.toSolidityAddress()):t;let i=!1;for(const a of this._nftAllowances)if(0===a.tokenId.compare(e.tokenId)&&null!=a.spenderAccountId&&0===a.spenderAccountId.compare(n)){null!=a.serialNumbers&&a.serialNumbers.push(e.serial),i=!0;break}return i||this._nftAllowances.push(new TokenNftAllowance({tokenId:e.tokenId,spenderAccountId:n,serialNumbers:[e.serial],ownerAccountId:o,allSerials:!1,delegatingSpender:null})),this}grantTokenNftAllowance(e,t,r){const n="string"==typeof e?NftId.fromString(e):e;return requireNotNegative(n.serial),this._adjustTokenNftAllowance(n,t,r)}revokeTokenNftAllowance(e,t,r){const n="string"==typeof e?NftId.fromString(e):e;return requireNotNegative(n.serial),this._adjustTokenNftAllowance(new NftId(n.tokenId,n.serial.negate()),t,r)}addAllTokenNftAllowance(e,t){return this._adjustTokenNftAllowanceAllSerials(e,null,t,!0)}grantTokenNftAllowanceAllSerials(e,t,r){return this._adjustTokenNftAllowanceAllSerials(e,t,r,!0)}revokeTokenNftAllowanceAllSerials(e,t,r){return this._adjustTokenNftAllowanceAllSerials(e,t,r,!1)}_adjustTokenNftAllowanceAllSerials(e,t,r,n){return this._requireNotFrozen(),this._nftAllowances.push(new TokenNftAllowance({tokenId:"string"==typeof e?TokenId.fromString(e):e,ownerAccountId:null!=t?"string"==typeof t?AccountId.fromString(t):t instanceof ContractId?AccountId.fromEvmAddress(0,0,t.toSolidityAddress()):t:null,spenderAccountId:"string"==typeof r?AccountId.fromString(r):r instanceof ContractId?AccountId.fromEvmAddress(0,0,r.toSolidityAddress()):r,serialNumbers:null,allSerials:n,delegatingSpender:null})),this}_validateChecksums(e){this._hbarAllowances.map((t=>t._validateChecksums(e))),this._tokenAllowances.map((t=>t._validateChecksums(e))),this._nftAllowances.map((t=>t._validateChecksums(e)))}_execute(e,t){return Promise.reject(new Error("This feature has been deprecated for this class."))}_getTransactionDataCase(){throw new Error("This feature has been deprecated for this class.")}_makeTransactionData(){throw new Error("This feature has been deprecated.")}_getLogId(){return`AccountAllowanceAdjustTransaction:${this._transactionIds.current.validStart.toString()}`}}class AccountAllowanceApproveTransaction extends Transaction{constructor(e={}){super(),this._hbarApprovals=null!=e.hbarApprovals?e.hbarApprovals:[],this._tokenApprovals=null!=e.tokenApprovals?e.tokenApprovals:[],this._nftApprovals=null!=e.nftApprovals?e.nftApprovals:[]}static _fromProtobuf(e,t,r,n,o){const i=o[0].cryptoApproveAllowance;return Transaction._fromProtobufTransactions(new AccountAllowanceApproveTransaction({hbarApprovals:(null!=i.cryptoAllowances?i.cryptoAllowances:[]).map((e=>HbarAllowance._fromProtobuf(e))),tokenApprovals:(null!=i.tokenAllowances?i.tokenAllowances:[]).map((e=>TokenAllowance._fromProtobuf(e))),nftApprovals:(null!=i.nftAllowances?i.nftAllowances:[]).map((e=>TokenNftAllowance._fromProtobuf(e)))}),e,t,r,n,o)}get hbarApprovals(){return this._hbarApprovals}approveHbarAllowance(e,t,r){return this._requireNotFrozen(),this._hbarApprovals.push(new HbarAllowance({spenderAccountId:"string"==typeof t?AccountId.fromString(t):t instanceof ContractId?AccountId.fromEvmAddress(0,0,t.toSolidityAddress()):t,ownerAccountId:"string"==typeof e?AccountId.fromString(e):e instanceof ContractId?AccountId.fromEvmAddress(0,0,e.toSolidityAddress()):e,amount:r instanceof Hbar?r:new Hbar(r)})),this}addHbarAllowance(e,t){return this._requireNotFrozen(),this._hbarApprovals.push(new HbarAllowance({spenderAccountId:"string"==typeof e?AccountId.fromString(e):e,amount:t instanceof Hbar?t:new Hbar(t),ownerAccountId:null})),this}get tokenApprovals(){return this._tokenApprovals}approveTokenAllowance(e,t,r,n){return this._requireNotFrozen(),this._tokenApprovals.push(new TokenAllowance({tokenId:"string"==typeof e?TokenId.fromString(e):e,spenderAccountId:"string"==typeof r?AccountId.fromString(r):r instanceof ContractId?AccountId.fromEvmAddress(0,0,r.toSolidityAddress()):r,ownerAccountId:"string"==typeof t?AccountId.fromString(t):t instanceof ContractId?AccountId.fromEvmAddress(0,0,t.toSolidityAddress()):t,amount:"number"==typeof n?Long$1.fromNumber(n):n})),this}addTokenAllowance(e,t,r){return this._requireNotFrozen(),this._tokenApprovals.push(new TokenAllowance({tokenId:"string"==typeof e?TokenId.fromString(e):e,spenderAccountId:"string"==typeof t?AccountId.fromString(t):t,amount:"number"==typeof r?Long$1.fromNumber(r):r,ownerAccountId:null})),this}addTokenNftAllowance(e,t){return this._approveTokenNftAllowance(e,null,t,null)}get tokenNftApprovals(){return this._nftApprovals}_approveTokenNftAllowance(e,t,r,n){this._requireNotFrozen();const o="string"==typeof e?NftId.fromString(e):e,i="string"==typeof r?AccountId.fromString(r):r instanceof ContractId?AccountId.fromEvmAddress(0,0,r.toSolidityAddress()):r;let a=!1;for(const s of this._nftApprovals)if(0===s.tokenId.compare(o.tokenId)&&null!=s.spenderAccountId&&0===s.spenderAccountId.compare(i)){null!=s.serialNumbers&&s.serialNumbers.push(o.serial),a=!0;break}return a||this._nftApprovals.push(new TokenNftAllowance({tokenId:o.tokenId,spenderAccountId:i,ownerAccountId:"string"==typeof t?AccountId.fromString(t):t instanceof ContractId?AccountId.fromEvmAddress(0,0,t.toSolidityAddress()):t,serialNumbers:[o.serial],allSerials:!1,delegatingSpender:"string"==typeof n?AccountId.fromString(n):n})),this}approveTokenNftAllowance(e,t,r){return this._approveTokenNftAllowance(e,t,r,null)}approveTokenNftAllowanceWithDelegatingSpender(e,t,r,n){return this._approveTokenNftAllowance(e,t,r,n)}_approveAllTokenNftAllowance(e,t,r,n){return this._requireNotFrozen(),this._nftApprovals.push(new TokenNftAllowance({tokenId:"string"==typeof e?TokenId.fromString(e):e,spenderAccountId:"string"==typeof r?AccountId.fromString(r):r instanceof ContractId?AccountId.fromEvmAddress(0,0,r.toSolidityAddress()):r,ownerAccountId:"string"==typeof t?AccountId.fromString(t):t instanceof ContractId?AccountId.fromEvmAddress(0,0,t.toSolidityAddress()):t,serialNumbers:null,allSerials:n,delegatingSpender:null})),this}addAllTokenNftAllowance(e,t,r){return this._approveAllTokenNftAllowance(e,t,r,!0)}approveTokenNftAllowanceAllSerials(e,t,r){return this._approveAllTokenNftAllowance(e,t,r,!0)}deleteTokenNftAllowanceAllSerials(e,t,r){return this._approveAllTokenNftAllowance(e,t,r,!1)}_validateChecksums(e){this._hbarApprovals.map((t=>t._validateChecksums(e))),this._tokenApprovals.map((t=>t._validateChecksums(e))),this._nftApprovals.map((t=>t._validateChecksums(e)))}_execute(e,t){return e.crypto.approveAllowances(t)}_getTransactionDataCase(){return"cryptoApproveAllowance"}_makeTransactionData(){return{cryptoAllowances:this._hbarApprovals.map((e=>e._toProtobuf())),tokenAllowances:this._tokenApprovals.map((e=>e._toProtobuf())),nftAllowances:this._nftApprovals.map((e=>e._toProtobuf()))}}_getLogId(){return`AccountAllowanceApproveTransaction:${this._transactionIds.current.validStart.toString()}`}}TRANSACTION_REGISTRY.set("cryptoApproveAllowance",AccountAllowanceApproveTransaction._fromProtobuf);class AccountAllowanceDeleteTransaction extends Transaction{constructor(e={}){super(),this._nftAllowances=null!=e.nftAllowances?e.nftAllowances:[]}static _fromProtobuf(e,t,r,n,o){const i=o[0].cryptoDeleteAllowance;return Transaction._fromProtobufTransactions(new AccountAllowanceDeleteTransaction({nftAllowances:(null!=i.nftAllowances?i.nftAllowances:[]).map((e=>TokenNftAllowance._fromProtobuf(e)))}),e,t,r,n,o)}get tokenNftAllowanceDeletions(){return this._nftAllowances}deleteAllTokenNftAllowances(e,t){this._requireNotFrozen();const r="string"==typeof e?NftId.fromString(e):e,n="string"==typeof t?AccountId.fromString(t):t;let o=!1;for(const i of this._nftAllowances)if(0===i.tokenId.compare(r.tokenId)){null!=i.serialNumbers&&i.serialNumbers.push(r.serial),o=!0;break}return o||this._nftAllowances.push(new TokenNftAllowance({tokenId:r.tokenId,spenderAccountId:null,serialNumbers:[r.serial],ownerAccountId:n,allSerials:!1,delegatingSpender:null})),this}_validateChecksums(e){this._nftAllowances.map((t=>t._validateChecksums(e)))}_execute(e,t){return e.crypto.deleteAllowances(t)}_getTransactionDataCase(){return"cryptoDeleteAllowance"}_makeTransactionData(){return{nftAllowances:this._nftAllowances.map((e=>e._toProtobuf()))}}_getLogId(){return`AccountAllowanceDeleteTransaction:${this._transactionIds.current.validStart.toString()}`}}TRANSACTION_REGISTRY.set("cryptoDeleteAllowance",AccountAllowanceDeleteTransaction._fromProtobuf);class TokenBalanceMap extends ObjectMap{constructor(){super((e=>TokenId.fromString(e)))}}class TokenDecimalMap extends ObjectMap{constructor(){super((e=>TokenId.fromString(e)))}}class AccountBalance{constructor(e){this.hbars=e.hbars,this.tokens=e.tokens,this.tokenDecimals=e.tokenDecimals,Object.freeze(this)}static fromBytes(e){return AccountBalance._fromProtobuf(proto_1.CryptoGetAccountBalanceResponse.decode(e))}static _fromProtobuf(e){const t=new TokenBalanceMap,r=new TokenDecimalMap;if(null!=e.tokenBalances)for(const n of e.tokenBalances){const e=TokenId._fromProtobuf(n.tokenId);r._set(e,null!=n.decimals?n.decimals:0),t._set(e,Long$1.fromValue(n.balance))}return new AccountBalance({hbars:Hbar.fromTinybars(e.balance),tokens:t,tokenDecimals:r})}_toProtobuf(){const e=[];for(const[t,r]of null!=this.tokens?this.tokens:[])e.push({tokenId:t._toProtobuf(),balance:r,decimals:null!=this.tokenDecimals?this.tokenDecimals.get(t):null});return{balance:this.hbars.toTinybars(),tokenBalances:e}}toBytes(){return proto_1.CryptoGetAccountBalanceResponse.encode(this._toProtobuf()).finish()}toString(){return JSON.stringify(this.toJSON())}toJSON(){const e=[];for(const[t,r]of null!=this.tokens?this.tokens:[]){const n=null!=this.tokenDecimals?this.tokenDecimals.get(t):null;e.push({tokenId:t.toString(),balance:r.toString(),decimals:null!=n?n:0})}return{hbars:this.hbars.toString(),tokens:e}}}class AccountBalanceQuery extends Query{constructor(e={}){super(),this._accountId=null,this._contractId=null,null!=e.accountId&&this.setAccountId(e.accountId),null!=e.contractId&&this.setContractId(e.contractId)}static _fromProtobuf(e){const t=e.cryptogetAccountBalance;return new AccountBalanceQuery({accountId:null!=t.accountID?AccountId._fromProtobuf(t.accountID):void 0,contractId:null!=t.contractID?ContractId._fromProtobuf(t.contractID):void 0})}get accountId(){return this._accountId}setAccountId(e){return this._accountId="string"==typeof e?AccountId.fromString(e):e.clone(),this}get contractId(){return this._contractId}setContractId(e){return this._contractId="string"==typeof e?ContractId.fromString(e):e.clone(),this}_isPaymentRequired(){return!1}_validateChecksums(e){null!=this._accountId&&this._accountId.validateChecksum(e),null!=this._contractId&&this._contractId.validateChecksum(e)}_execute(e,t){return e.crypto.cryptoGetBalance(t)}_mapResponseHeader(e){return e.cryptogetAccountBalance.header}_mapResponse(e,t,r){const n=e.cryptogetAccountBalance;return Promise.resolve(AccountBalance._fromProtobuf(n))}_onMakeRequest(e){return{cryptogetAccountBalance:{header:e,accountID:null!=this._accountId?this._accountId._toProtobuf():null,contractID:null!=this._contractId?this._contractId._toProtobuf():null}}}_getLogId(){return`AccountBalanceQuery:${this._timestamp.toString()}`}}QUERY_REGISTRY.set("cryptogetAccountBalance",AccountBalanceQuery._fromProtobuf);class Duration{constructor(e){this.seconds=e instanceof Long$1?e:Long$1.fromNumber(e),Object.freeze(this)}_toProtobuf(){return{seconds:this.seconds}}static _fromProtobuf(e){return new Duration(e.seconds)}}class AccountCreateTransaction extends Transaction{constructor(e={}){super(),this._key=null,this._initialBalance=null,this._sendRecordThreshold=DEFAULT_RECORD_THRESHOLD,this._receiveRecordThreshold=DEFAULT_RECORD_THRESHOLD,this._receiverSignatureRequired=!1,this._proxyAccountId=null,this._autoRenewPeriod=new Duration(DEFAULT_AUTO_RENEW_PERIOD),this._accountMemo=null,this._maxAutomaticTokenAssociations=null,this._stakedAccountId=null,this._stakedNodeId=null,this._declineStakingReward=!1,this._alias=null,null!=e.key&&this.setKey(e.key),null!=e.receiverSignatureRequired&&this.setReceiverSignatureRequired(e.receiverSignatureRequired),null!=e.initialBalance&&this.setInitialBalance(e.initialBalance),null!=e.proxyAccountId&&this.setProxyAccountId(e.proxyAccountId),null!=e.autoRenewPeriod&&this.setAutoRenewPeriod(e.autoRenewPeriod),null!=e.accountMemo&&this.setAccountMemo(e.accountMemo),null!=e.maxAutomaticTokenAssociations&&this.setMaxAutomaticTokenAssociations(e.maxAutomaticTokenAssociations),null!=e.stakedAccountId&&this.setStakedAccountId(e.stakedAccountId),null!=e.stakedNodeId&&this.setStakedNodeId(e.stakedNodeId),null!=e.declineStakingReward&&this.setDeclineStakingReward(e.declineStakingReward),null!=e.alias&&this.setAlias(e.alias)}static _fromProtobuf(e,t,r,n,o){const i=o[0].cryptoCreateAccount;let a;return null!=i.alias&&i.alias.length>0&&20===i.alias.length&&(a=EvmAddress.fromBytes(i.alias)),Transaction._fromProtobufTransactions(new AccountCreateTransaction({key:null!=i.key?Key._fromProtobufKey(i.key):void 0,initialBalance:null!=i.initialBalance?Hbar.fromTinybars(i.initialBalance):void 0,receiverSignatureRequired:null!=i.receiverSigRequired?i.receiverSigRequired:void 0,proxyAccountId:null!=i.proxyAccountID?AccountId._fromProtobuf(i.proxyAccountID):void 0,autoRenewPeriod:null!=i.autoRenewPeriod&&null!=i.autoRenewPeriod.seconds?i.autoRenewPeriod.seconds:void 0,accountMemo:null!=i.memo?i.memo:void 0,maxAutomaticTokenAssociations:null!=i.maxAutomaticTokenAssociations?i.maxAutomaticTokenAssociations:void 0,stakedAccountId:null!=i.stakedAccountId?AccountId._fromProtobuf(i.stakedAccountId):void 0,stakedNodeId:null!=i.stakedNodeId?i.stakedNodeId:void 0,declineStakingReward:1==i.declineReward,alias:a}),e,t,r,n,o)}get key(){return this._key}setKey(e){return this._requireNotFrozen(),this._key=e,this}get initialBalance(){return this._initialBalance}setInitialBalance(e){return this._requireNotFrozen(),this._initialBalance=e instanceof Hbar?e:new Hbar(e),this}get receiverSignatureRequired(){return this._receiverSignatureRequired}setReceiverSignatureRequired(e){return this._requireNotFrozen(),this._receiverSignatureRequired=e,this}get proxyAccountId(){return this._proxyAccountId}setProxyAccountId(e){return this._requireNotFrozen(),this._proxyAccountId=e,this}get autoRenewPeriod(){return this._autoRenewPeriod}setAutoRenewPeriod(e){return this._requireNotFrozen(),this._autoRenewPeriod=e instanceof Duration?e:new Duration(e),this}get accountMemo(){return this._accountMemo}setAccountMemo(e){return this._requireNotFrozen(),this._accountMemo=e,this}get maxAutomaticTokenAssociations(){return this._maxAutomaticTokenAssociations}setMaxAutomaticTokenAssociations(e){return this._requireNotFrozen(),this._maxAutomaticTokenAssociations="number"==typeof e?Long$1.fromNumber(e):e,this}get stakedAccountId(){return this._stakedAccountId}setStakedAccountId(e){return this._requireNotFrozen(),this._stakedAccountId="string"==typeof e?AccountId.fromString(e):e,this}get stakedNodeId(){return this._stakedNodeId}setStakedNodeId(e){return this._requireNotFrozen(),this._stakedNodeId=Long$1.fromValue(e),this}get declineStakingRewards(){return this._declineStakingReward}setDeclineStakingReward(e){return this._requireNotFrozen(),this._declineStakingReward=e,this}get alias(){return this._alias}setAlias(e){if("string"==typeof e){if(!(e.startsWith("0x")&&42==e.length||40==e.length))throw new Error('evmAddress must be a valid EVM address with or without "0x" prefix');this._alias=EvmAddress.fromString(e)}else this._alias=e;return this}_validateChecksums(e){null!=this._proxyAccountId&&this._proxyAccountId.validateChecksum(e)}_execute(e,t){return e.crypto.createAccount(t)}_getTransactionDataCase(){return"cryptoCreateAccount"}_makeTransactionData(){let e=null;return null!=this._alias&&(e=this._alias.toBytes()),{key:null!=this._key?this._key._toProtobufKey():null,initialBalance:null!=this._initialBalance?this._initialBalance.toTinybars():null,autoRenewPeriod:this._autoRenewPeriod._toProtobuf(),proxyAccountID:null!=this._proxyAccountId?this._proxyAccountId._toProtobuf():null,receiveRecordThreshold:this._receiveRecordThreshold.toTinybars(),sendRecordThreshold:this._sendRecordThreshold.toTinybars(),receiverSigRequired:this._receiverSignatureRequired,memo:this._accountMemo,maxAutomaticTokenAssociations:null!=this._maxAutomaticTokenAssociations?this._maxAutomaticTokenAssociations.toInt():null,stakedAccountId:null!=this.stakedAccountId?this.stakedAccountId._toProtobuf():null,stakedNodeId:this.stakedNodeId,declineReward:this.declineStakingRewards,alias:e}}_getLogId(){return`AccountCreateTransaction:${this._transactionIds.current.validStart.toString()}`}}TRANSACTION_REGISTRY.set("cryptoCreateAccount",AccountCreateTransaction._fromProtobuf);class AccountDeleteTransaction extends Transaction{constructor(e={}){super(),this._accountId=null,this._transferAccountId=null,null!=e.accountId&&this.setAccountId(e.accountId),null!=e.transferAccountId&&this.setTransferAccountId(e.transferAccountId)}static _fromProtobuf(e,t,r,n,o){const i=o[0].cryptoDelete;return Transaction._fromProtobufTransactions(new AccountDeleteTransaction({accountId:null!=i.deleteAccountID?AccountId._fromProtobuf(i.deleteAccountID):void 0,transferAccountId:null!=i.transferAccountID?AccountId._fromProtobuf(i.transferAccountID):void 0}),e,t,r,n,o)}get accountId(){return this._accountId}setAccountId(e){return this._requireNotFrozen(),this._accountId="string"==typeof e?AccountId.fromString(e):e.clone(),this}get transferAccountId(){return this._transferAccountId}setTransferAccountId(e){return this._requireNotFrozen(),this._transferAccountId="string"==typeof e?AccountId.fromString(e):e.clone(),this}_validateChecksums(e){null!=this._accountId&&this._accountId.validateChecksum(e),null!=this._transferAccountId&&this._transferAccountId.validateChecksum(e)}_execute(e,t){return e.crypto.cryptoDelete(t)}_getTransactionDataCase(){return"cryptoDelete"}_makeTransactionData(){return{deleteAccountID:null!=this._accountId?this._accountId._toProtobuf():null,transferAccountID:null!=this._transferAccountId?this._transferAccountId._toProtobuf():null}}_getLogId(){return`AccountDeleteTransaction:${this._transactionIds.current.validStart.toString()}`}}TRANSACTION_REGISTRY.set("cryptoDelete",AccountDeleteTransaction._fromProtobuf);class StakingInfo{constructor(e){this.declineStakingReward=e.declineStakingReward,this.stakePeriodStart=e.stakePeriodStart,this.pendingReward=e.pendingReward,this.stakedToMe=e.stakedToMe,this.stakedAccountId=e.stakedAccountId,this.stakedNodeId=e.stakedNodeId,Object.freeze(this)}static _fromProtobuf(e){return new StakingInfo({declineStakingReward:1==e.declineReward,stakePeriodStart:null!=e.stakePeriodStart?Timestamp._fromProtobuf(e.stakePeriodStart):null,pendingReward:null!=e.pendingReward?Hbar.fromTinybars(e.pendingReward):null,stakedToMe:null!=e.stakedToMe?Hbar.fromTinybars(e.stakedToMe):null,stakedAccountId:null!=e.stakedAccountId?AccountId._fromProtobuf(e.stakedAccountId):null,stakedNodeId:null!=e.stakedNodeId?e.stakedNodeId:null})}_toProtobuf(){return{declineReward:this.declineStakingReward,stakePeriodStart:null!=this.stakePeriodStart?this.stakePeriodStart._toProtobuf():null,pendingReward:null!=this.pendingReward?this.pendingReward.toTinybars():null,stakedToMe:null!=this.stakedToMe?this.stakedToMe.toTinybars():null,stakedAccountId:null!=this.stakedAccountId?this.stakedAccountId._toProtobuf():null,stakedNodeId:this.stakedNodeId}}static fromBytes(e){return StakingInfo._fromProtobuf(proto_1.StakingInfo.decode(e))}toBytes(){return proto_1.StakingInfo.encode(this._toProtobuf()).finish()}toString(){return JSON.stringify(this.toJSON())}toJSON(){return{declineStakingReward:this.declineStakingReward,stakePeriodStart:null!=this.stakePeriodStart?this.stakePeriodStart.toString():null,pendingReward:null!=this.pendingReward?this.pendingReward.toString():null,stakedToMe:null!=this.stakedToMe?this.stakedToMe.toString():null,stakedAccountId:null!=this.stakedAccountId?this.stakedAccountId.toString():null,stakedNodeId:null!=this.stakedNodeId?this.stakedNodeId.toString():null}}}class LiveHash{constructor(e){this.accountId=e.accountId,this.hash=e.hash,this.keys=e.keys,this.duration=e.duration,Object.freeze(this)}static _fromProtobuf(e){const t=e;return new LiveHash({accountId:AccountId._fromProtobuf(t.accountId),hash:null!=t.hash?t.hash:new Uint8Array,keys:null!=t.keys?KeyList.__fromProtobufKeyList(t.keys):new KeyList,duration:Duration._fromProtobuf(t.duration)})}_toProtobuf(){return{accountId:this.accountId._toProtobuf(),hash:this.hash,keys:this.keys._toProtobufKey().keyList,duration:this.duration._toProtobuf()}}}class TokenRelationship{constructor(e){this.tokenId=e.tokenId,this.symbol=e.symbol,this.balance=e.balance,this.isKycGranted=e.isKycGranted,this.isFrozen=e.isFrozen,this.automaticAssociation=e.automaticAssociation,Object.freeze(this)}static _fromProtobuf(e){const t=TokenId._fromProtobuf(e.tokenId),r=null==e.kycStatus||0===e.kycStatus?null:1===e.kycStatus,n=null==e.freezeStatus||0===e.freezeStatus?null:1===e.freezeStatus;return new TokenRelationship({tokenId:t,symbol:e.symbol,balance:null!=e.balance?e.balance instanceof Long$1?e.balance:Long$1.fromValue(e.balance):Long$1.ZERO,isKycGranted:r,isFrozen:n,automaticAssociation:null!=e.automaticAssociation?e.automaticAssociation:null})}_toProtobuf(){return{tokenId:this.tokenId._toProtobuf(),symbol:this.symbol,balance:this.balance,kycStatus:null==this.isKycGranted?0:this.isKycGranted?1:2,freezeStatus:null==this.isFrozen?0:this.isFrozen?1:2,automaticAssociation:this.automaticAssociation}}}class TokenRelationshipMap extends ObjectMap{constructor(){super((e=>TokenId.fromString(e)))}static _fromProtobuf(e){const t=new TokenRelationshipMap;for(const r of e){const e=TokenId._fromProtobuf(r.tokenId);t._set(e,TokenRelationship._fromProtobuf(r))}return t}_toProtobuf(){const e=[];for(const[t,r]of this)e.push(r._toProtobuf());return e}}class LedgerId{constructor(e){this._ledgerId=e,Object.freeze(this)}static fromString(e){switch(e){case NETNAMES[0]:case"0":return LedgerId.MAINNET;case NETNAMES[1]:case"1":return LedgerId.TESTNET;case NETNAMES[2]:case"2":return LedgerId.PREVIEWNET;case NETNAMES[3]:case"3":return LedgerId.LOCAL_NODE;default:{let t=decode$a(e);if(0==t.length&&0!=e.length)throw new Error("Default reached for fromString");return new LedgerId(t)}}}toString(){if(1!=this._ledgerId.length)return encode$9(this._ledgerId);switch(this._ledgerId[0]){case 0:return NETNAMES[0];case 1:return NETNAMES[1];case 2:return NETNAMES[2];case 3:return NETNAMES[3];default:return encode$9(this._ledgerId)}}static fromBytes(e){return new LedgerId(e)}toBytes(){return this._ledgerId}isMainnet(){return this.toString()==NETNAMES[0]}isTestnet(){return this.toString()==NETNAMES[1]}isPreviewnet(){return this.toString()==NETNAMES[2]}isLocalNode(){return this.toString()==NETNAMES[3]}}const NETNAMES=["mainnet","testnet","previewnet","local-node"];LedgerId.MAINNET=new LedgerId(new Uint8Array([0])),LedgerId.TESTNET=new LedgerId(new Uint8Array([1])),LedgerId.PREVIEWNET=new LedgerId(new Uint8Array([2])),LedgerId.LOCAL_NODE=new LedgerId(new Uint8Array([3]));class AccountInfo{constructor(e){this.accountId=e.accountId,this.contractAccountId=e.contractAccountId,this.isDeleted=e.isDeleted,this.proxyAccountId=e.proxyAccountId,this.proxyReceived=e.proxyReceived,this.key=e.key,this.balance=e.balance,this.sendRecordThreshold=e.sendRecordThreshold,this.receiveRecordThreshold=e.receiveRecordThreshold,this.isReceiverSignatureRequired=e.isReceiverSignatureRequired,this.expirationTime=e.expirationTime,this.autoRenewPeriod=e.autoRenewPeriod,this.liveHashes=e.liveHashes,this.tokenRelationships=e.tokenRelationships,this.accountMemo=e.accountMemo,this.ownedNfts=e.ownedNfts,this.maxAutomaticTokenAssociations=e.maxAutomaticTokenAssociations,this.aliasKey=e.aliasKey,this.ledgerId=e.ledgerId,this.hbarAllowances=e.hbarAllowances,this.tokenAllowances=e.tokenAllowances,this.nftAllowances=e.nftAllowances,this.ethereumNonce=e.ethereumNonce,this.stakingInfo=e.stakingInfo,Object.freeze(this)}static _fromProtobuf(e){let t=null!=e.alias&&e.alias.length>0?Key._fromProtobufKey(proto_1.Key.decode(e.alias)):null;t instanceof PublicKey||(t=null);const r=AccountId._fromProtobuf(e.accountID);return new AccountInfo({accountId:r,contractAccountId:null!=e.contractAccountID?e.contractAccountID:null,isDeleted:null!=e.deleted&&e.deleted,key:Key._fromProtobufKey(e.key),balance:Hbar.fromTinybars(null!=e.balance?e.balance:0),sendRecordThreshold:Hbar.fromTinybars(null!=e.generateSendRecordThreshold?e.generateSendRecordThreshold:0),receiveRecordThreshold:Hbar.fromTinybars(null!=e.generateReceiveRecordThreshold?e.generateReceiveRecordThreshold:0),isReceiverSignatureRequired:null!=e.receiverSigRequired&&e.receiverSigRequired,expirationTime:Timestamp._fromProtobuf(e.expirationTime),autoRenewPeriod:null!=e.autoRenewPeriod?new Duration(e.autoRenewPeriod.seconds):new Duration(0),proxyAccountId:null!=e.proxyAccountID&&0!==Long$1.fromValue(e.proxyAccountID.shardNum).toInt()&&0!==Long$1.fromValue(e.proxyAccountID.realmNum).toInt()&&0!==Long$1.fromValue(e.proxyAccountID.accountNum).toInt()?AccountId._fromProtobuf(e.proxyAccountID):null,proxyReceived:Hbar.fromTinybars(null!=e.proxyReceived?e.proxyReceived:0),liveHashes:(null!=e.liveHashes?e.liveHashes:[]).map((e=>LiveHash._fromProtobuf(e))),tokenRelationships:TokenRelationshipMap._fromProtobuf(null!=e.tokenRelationships?e.tokenRelationships:[]),accountMemo:null!=e.memo?e.memo:"",ownedNfts:e.ownedNfts?e.ownedNfts:Long$1.ZERO,maxAutomaticTokenAssociations:e.maxAutomaticTokenAssociations?Long$1.fromNumber(e.maxAutomaticTokenAssociations):Long$1.ZERO,aliasKey:t,ledgerId:null!=e.ledgerId?LedgerId.fromBytes(e.ledgerId):null,hbarAllowances:[],tokenAllowances:[],nftAllowances:[],ethereumNonce:null!=e.ethereumNonce?e.ethereumNonce:null,stakingInfo:null!=e.stakingInfo?StakingInfo._fromProtobuf(e.stakingInfo):null})}_toProtobuf(){return{accountID:this.accountId._toProtobuf(),contractAccountID:this.contractAccountId,deleted:this.isDeleted,proxyAccountID:null!=this.proxyAccountId?this.proxyAccountId._toProtobuf():null,proxyReceived:this.proxyReceived.toTinybars(),key:this.key._toProtobufKey(),balance:this.balance.toTinybars(),generateSendRecordThreshold:this.sendRecordThreshold.toTinybars(),generateReceiveRecordThreshold:this.receiveRecordThreshold.toTinybars(),receiverSigRequired:this.isReceiverSignatureRequired,expirationTime:this.expirationTime._toProtobuf(),autoRenewPeriod:this.autoRenewPeriod._toProtobuf(),liveHashes:this.liveHashes.map((e=>e._toProtobuf())),tokenRelationships:null!=this.tokenRelationships?this.tokenRelationships._toProtobuf():null,memo:this.accountMemo,ownedNfts:this.ownedNfts,maxAutomaticTokenAssociations:this.maxAutomaticTokenAssociations.toInt(),alias:null!=this.aliasKey?proto_1.Key.encode(this.aliasKey._toProtobufKey()).finish():null,ledgerId:null!=this.ledgerId?this.ledgerId.toBytes():null,ethereumNonce:this.ethereumNonce,stakingInfo:null!=this.stakingInfo?this.stakingInfo._toProtobuf():null}}static fromBytes(e){return AccountInfo._fromProtobuf(proto_1.CryptoGetInfoResponse.AccountInfo.decode(e))}toBytes(){return proto_1.CryptoGetInfoResponse.AccountInfo.encode(this._toProtobuf()).finish()}toString(){return JSON.stringify(this.toJSON())}toJSON(){return{balance:this.balance.toString(),accountId:this.accountId.toString(),contractAccountId:this.contractAccountId,isDeleted:this.isDeleted,proxyAccountId:null!=this.proxyAccountId?this.proxyAccountId.toString():null,proxyReceived:this.proxyReceived.toString(),key:null!=this.key?this.key.toString():null,sendRecordThreshold:this.sendRecordThreshold.toString(),receiveRecordThreshold:this.receiveRecordThreshold.toString(),isReceiverSignatureRequired:this.isReceiverSignatureRequired,expirationTime:this.expirationTime.toString(),autoRenewPeriod:this.autoRenewPeriod.toString(),accountMemo:this.accountMemo,ownedNfts:this.ownedNfts.toString(),maxAutomaticTokenAssociations:this.maxAutomaticTokenAssociations.toString(),aliasKey:null!=this.aliasKey?this.aliasKey.toString():null,ledgerId:null!=this.ledgerId?this.ledgerId.toString():null,ethereumNonce:null!=this.ethereumNonce?this.ethereumNonce.toString():null,stakingInfo:null!=this.stakingInfo?this.stakingInfo.toJSON():null}}}class AccountInfoQuery extends Query{constructor(e={}){super(),this._accountId=null,null!=e.accountId&&this.setAccountId(e.accountId)}static _fromProtobuf(e){const t=e.cryptoGetInfo;return new AccountInfoQuery({accountId:null!=t.accountID?AccountId._fromProtobuf(t.accountID):void 0})}get accountId(){return this._accountId}setAccountId(e){return this._accountId="string"==typeof e?AccountId.fromString(e):e.clone(),this}_validateChecksums(e){null!=this._accountId&&this._accountId.validateChecksum(e)}_execute(e,t){return e.crypto.getAccountInfo(t)}async getCost(e){return super.getCost(e)}_mapResponseHeader(e){return e.cryptoGetInfo.header}_mapResponse(e,t,r){const n=e.cryptoGetInfo;return Promise.resolve(AccountInfo._fromProtobuf(n.accountInfo))}_onMakeRequest(e){return{cryptoGetInfo:{header:e,accountID:null!=this._accountId?this._accountId._toProtobuf():null}}}_getLogId(){return`AccountInfoQuery:${(null!=this._paymentTransactionId&&null!=this._paymentTransactionId.validStart?this._paymentTransactionId.validStart:this._timestamp).toString()}`}}QUERY_REGISTRY.set("cryptoGetInfo",AccountInfoQuery._fromProtobuf);class AccountInfoFlow{static async verifySignature(e,t,r,n){const o=await(new AccountInfoQuery).setAccountId(t).execute(e);return!(o.key instanceof KeyList)&&o.key.verify(r,n)}static async verifyTransaction(e,t,r){const n=await(new AccountInfoQuery).setAccountId(t).execute(e);return!(n.key instanceof KeyList)&&n.key.verifyTransaction(r)}static async verifySignatureWithSigner(e,t,r,n){const o=await(new AccountInfoQuery).setAccountId(t).executeWithSigner(e);return!(o.key instanceof KeyList)&&o.key.verify(r,n)}static async verifyTransactionWithSigner(e,t,r){const n=await(new AccountInfoQuery).setAccountId(t).executeWithSigner(e);return!(n.key instanceof KeyList)&&n.key.verifyTransaction(r)}}class AccountRecordsQuery extends Query{constructor(e={}){super(),this._accountId=null,null!=e.accountId&&this.setAccountId(e.accountId)}static _fromProtobuf(e){const t=e.cryptoGetAccountRecords;return new AccountRecordsQuery({accountId:null!=t.accountID?AccountId._fromProtobuf(t.accountID):void 0})}get accountId(){return this._accountId}setAccountId(e){return this._accountId="string"==typeof e?AccountId.fromString(e):e.clone(),this}_validateChecksums(e){null!=this._accountId&&this._accountId.validateChecksum(e)}_execute(e,t){return e.crypto.getAccountRecords(t)}_mapResponseHeader(e){return e.cryptoGetAccountRecords.header}_mapResponse(e,t,r){const n=e.cryptoGetAccountRecords.records;return Promise.resolve(n.map((e=>TransactionRecord._fromProtobuf({transactionRecord:e}))))}_onMakeRequest(e){return{cryptoGetAccountRecords:{header:e,accountID:null!=this._accountId?this._accountId._toProtobuf():null}}}_getLogId(){return`AccountRecordsQuery:${(null!=this._paymentTransactionId&&null!=this._paymentTransactionId.validStart?this._paymentTransactionId.validStart:this._timestamp).toString()}`}}QUERY_REGISTRY.set("cryptoGetAccountRecords",AccountRecordsQuery._fromProtobuf);class ProxyStaker{constructor(e){this.accountId=e.accountId,this.amount=e.amount instanceof Hbar?e.amount:new Hbar(e.amount),Object.freeze(this)}static _fromProtobuf(e){return new ProxyStaker({accountId:AccountId._fromProtobuf(e.accountID),amount:Hbar.fromTinybars(null!=e.amount?e.amount:0)})}_toProtobuf(){return{accountID:this.accountId._toProtobuf(),amount:this.amount.toTinybars()}}}class AccountStakersQuery extends Query{constructor(e={}){super(),this._accountId=null,null!=e.accountId&&this.setAccountId(e.accountId)}static _fromProtobuf(e){const t=e.cryptoGetProxyStakers;return new AccountStakersQuery({accountId:null!=t.accountID?AccountId._fromProtobuf(t.accountID):void 0})}get accountId(){return this._accountId}setAccountId(e){return this._accountId="string"==typeof e?AccountId.fromString(e):e.clone(),this}_validateChecksums(e){null!=this._accountId&&this._accountId.validateChecksum(e)}_execute(e,t){return e.crypto.getStakersByAccountID(t)}_mapResponseHeader(e){return e.cryptoGetProxyStakers.header}_mapResponse(e){const t=e.cryptoGetProxyStakers.stakers;return Promise.resolve((null!=t.proxyStaker?t.proxyStaker:[]).map((e=>ProxyStaker._fromProtobuf(e))))}_onMakeRequest(e){return{cryptoGetProxyStakers:{header:e,accountID:null!=this._accountId?this._accountId._toProtobuf():null}}}_getLogId(){return`AccountStakersQuery:${(null!=this._paymentTransactionId&&null!=this._paymentTransactionId.validStart?this._paymentTransactionId.validStart:this._timestamp).toString()}`}}QUERY_REGISTRY.set("cryptoGetProxyStakers",AccountStakersQuery._fromProtobuf);class AccountUpdateTransaction extends Transaction{constructor(e={}){super(),this._accountId=null,this._key=null,this._receiverSignatureRequired=null,this._proxyAccountId=null,this._autoRenewPeriod=null,this._expirationTime=null,this._accountMemo=null,this._maxAutomaticTokenAssociations=null,this._aliasKey=null,this._stakedAccountId=null,this._stakedNodeId=null,this._declineStakingReward=null,null!=e.accountId&&this.setAccountId(e.accountId),null!=e.key&&this.setKey(e.key),null!=e.receiverSignatureRequired&&this.setReceiverSignatureRequired(e.receiverSignatureRequired),null!=e.proxyAccountId&&this.setProxyAccountId(e.proxyAccountId),null!=e.autoRenewPeriod&&this.setAutoRenewPeriod(e.autoRenewPeriod),null!=e.expirationTime&&this.setExpirationTime(e.expirationTime),null!=e.accountMemo&&this.setAccountMemo(e.accountMemo),null!=e.maxAutomaticTokenAssociations&&this.setMaxAutomaticTokenAssociations(e.maxAutomaticTokenAssociations),null!=e.stakedAccountId&&this.setStakedAccountId(e.stakedAccountId),null!=e.stakedNodeId&&this.setStakedNodeId(e.stakedNodeId),null!=e.declineStakingReward&&this.setDeclineStakingReward(e.declineStakingReward)}static _fromProtobuf(e,t,r,n,o){const i=o[0].cryptoUpdateAccount;return Transaction._fromProtobufTransactions(new AccountUpdateTransaction({accountId:null!=i.accountIDToUpdate?AccountId._fromProtobuf(i.accountIDToUpdate):void 0,key:null!=i.key?Key._fromProtobufKey(i.key):void 0,receiverSignatureRequired:null!=i.receiverSigRequiredWrapper&&Object.hasOwn(i.receiverSigRequiredWrapper,"value")?i.receiverSigRequiredWrapper.value:void 0,proxyAccountId:null!=i.proxyAccountID?AccountId._fromProtobuf(i.proxyAccountID):void 0,autoRenewPeriod:null!=i.autoRenewPeriod&&null!=i.autoRenewPeriod.seconds?i.autoRenewPeriod.seconds:void 0,expirationTime:null!=i.expirationTime?Timestamp._fromProtobuf(i.expirationTime):void 0,accountMemo:null!=i.memo&&Object.hasOwn(i.memo,"value")?i.memo.value:void 0,maxAutomaticTokenAssociations:null!=i.maxAutomaticTokenAssociations&&null!=i.maxAutomaticTokenAssociations.value&&Object.hasOwn(i.maxAutomaticTokenAssociations,"value")?Long$1.fromNumber(i.maxAutomaticTokenAssociations.value):void 0,stakedAccountId:null!=i.stakedAccountId?AccountId._fromProtobuf(i.stakedAccountId):void 0,stakedNodeId:null!=i.stakedNodeId?i.stakedNodeId:void 0,declineStakingReward:null!=i.declineReward&&Object.hasOwn(i.declineReward,"value")?i.declineReward.value:void 0}),e,t,r,n,o)}get accountId(){return this._accountId}setAccountId(e){return this._requireNotFrozen(),this._accountId="string"==typeof e?AccountId.fromString(e):e.clone(),this}get key(){return this._key}setKey(e){return this._requireNotFrozen(),this._key=e,this}get receiverSignatureRequired(){return this._receiverSignatureRequired}setReceiverSignatureRequired(e){return this._requireNotFrozen(),this._receiverSignatureRequired=e,this}get proxyAccountId(){return this._proxyAccountId}setProxyAccountId(e){return this._requireNotFrozen(),this._proxyAccountId=e,this}get autoRenewPeriod(){return this._autoRenewPeriod}setAutoRenewPeriod(e){return this._requireNotFrozen(),this._autoRenewPeriod=e instanceof Duration?e:new Duration(e),this}get expirationTime(){return this._expirationTime}setExpirationTime(e){return this._requireNotFrozen(),this._expirationTime=e instanceof Date?Timestamp.fromDate(e):e,this}get accountMemo(){return this._accountMemo}setAccountMemo(e){return this._requireNotFrozen(),this._accountMemo=e,this}clearAccountMemo(){return this._requireNotFrozen(),this._accountMemo=null,this}get maxAutomaticTokenAssociations(){return this._maxAutomaticTokenAssociations}setMaxAutomaticTokenAssociations(e){return this._requireNotFrozen(),this._maxAutomaticTokenAssociations="number"==typeof e?Long$1.fromNumber(e):e,this}get aliasKey(){return null}setAliasKey(e){return this}get stakedAccountId(){return this._stakedAccountId}setStakedAccountId(e){return this._requireNotFrozen(),this._stakedAccountId="string"==typeof e?AccountId.fromString(e):e,this}clearStakedAccountId(){return this._requireNotFrozen(),this._stakedAccountId=new AccountId(0,0,0),this}get stakedNodeId(){return this._stakedNodeId}setStakedNodeId(e){return this._requireNotFrozen(),this._stakedNodeId=Long$1.fromValue(e),this}clearStakedNodeId(){return this._requireNotFrozen(),this._stakedNodeId=Long$1.fromNumber(-1),this}get declineStakingRewards(){return this._declineStakingReward}setDeclineStakingReward(e){return this._requireNotFrozen(),this._declineStakingReward=e,this}_validateChecksums(e){null!=this._accountId&&this._accountId.validateChecksum(e),null!=this._proxyAccountId&&this._proxyAccountId.validateChecksum(e)}_execute(e,t){return e.crypto.updateAccount(t)}_getTransactionDataCase(){return"cryptoUpdateAccount"}_makeTransactionData(){return{accountIDToUpdate:null!=this._accountId?this._accountId._toProtobuf():null,key:null!=this._key?this._key._toProtobufKey():null,expirationTime:null!=this._expirationTime?this._expirationTime._toProtobuf():null,proxyAccountID:null!=this._proxyAccountId?this._proxyAccountId._toProtobuf():null,autoRenewPeriod:null!=this._autoRenewPeriod?this._autoRenewPeriod._toProtobuf():null,receiverSigRequiredWrapper:null==this._receiverSignatureRequired?null:{value:this._receiverSignatureRequired},memo:null!=this._accountMemo?{value:this._accountMemo}:null,maxAutomaticTokenAssociations:null!=this._maxAutomaticTokenAssociations?{value:this._maxAutomaticTokenAssociations.toInt()}:null,stakedAccountId:null!=this.stakedAccountId?this.stakedAccountId._toProtobuf():null,stakedNodeId:this.stakedNodeId,declineReward:null!=this.declineStakingRewards?{value:this.declineStakingRewards}:null}}_getLogId(){return`AccountUpdateTransaction:${this._transactionIds.current.validStart.toString()}`}}TRANSACTION_REGISTRY.set("cryptoUpdateAccount",AccountUpdateTransaction._fromProtobuf);class IPv4AddressPart{constructor(e={}){this._left=null,null!=e.left&&this.setLeft(e.left),this._right=null,null!=e.right&&this.setRight(e.right)}get left(){return this._left}setLeft(e){return this._left=e,this}get right(){return this._right}setRight(e){return this._right=e,this}toString(){return null!=this._left&&null!=this._right?`${this._left.toString()}.${this._right.toString()}`:""}}class IPv4Address{constructor(e={}){this._network=null,null!=e.network&&this.setNetwork(e.network),this._host=null,null!=e.host&&this.setHost(e.host)}get newtork(){return this._network}setNetwork(e){return this._network=e,this}get host(){return this._host}setHost(e){return this._host=e,this}static _fromProtobuf(e){return new IPv4Address({network:(new IPv4AddressPart).setLeft(e[0]).setRight(e[1]),host:(new IPv4AddressPart).setLeft(e[2]).setRight(e[3])})}_toProtobuf(){return Uint8Array.of(null!=this._network&&null!=this._network._left?this._network._left:0,null!=this._network&&null!=this._network.right?this._network.right:0,null!=this._host&&null!=this._host.left?this._host.left:0,null!=this._host&&null!=this._host.right?this._host.right:0)}toString(){return null!=this._network&&null!=this._host?`${this._network.toString()}.${this._host.toString()}`:""}}class EndPoint{constructor(e={}){this._address=null,null!=e.address&&this.setAddress(e.address),this._port=null,null!=e.port&&this.setPort(e.port)}get address(){return this.address}setAddress(e){return this._address=e,this}get port(){return this._port}setPort(e){return this._port=e,this}static _fromProtobuf(e){return new EndPoint({address:null!=e.ipAddressV4?IPv4Address._fromProtobuf(e.ipAddressV4):void 0,port:null!=e.port?e.port:void 0})}_toProtobuf(){return{ipAddressV4:null!=this._address?this._address._toProtobuf():null,port:this._port}}toString(){return`${null!=this._address?this._address.toString():""}:${null!=this._port?this._port.toString():""}`}toJSON(){return{address:null!=this._address?this._address.toString():null,port:null!=this._port?this._port.toString():null}}}class NodeAddress{constructor(e={}){this._publicKey=null,null!=e.publicKey&&this.setPublicKey(e.publicKey),this._nodeId=null,null!=e.nodeId&&this.setNodeId(e.nodeId),this._accountId=null,null!=e.accountId&&this.setAccountId(e.accountId),this._certHash=null,null!=e.certHash&&this.setCertHash(e.certHash),this._addresses=[],null!=e.addresses&&this.setAddresses(e.addresses),this._description=null,null!=e.description&&this.setDescription(e.description),this._stake=null,null!=e.stake&&this.setStake(e.stake)}get publicKey(){return this._publicKey}setPublicKey(e){return this._publicKey=e,this}get nodeId(){return this._nodeId}setNodeId(e){return this._nodeId=e,this}get accountId(){return this._accountId}setAccountId(e){return this._accountId="string"==typeof e?AccountId.fromString(e):e.clone(),this}get certHash(){return this._certHash}setCertHash(e){return this._certHash=e,this}get addresses(){return this._addresses}setAddresses(e){return this._addresses=e,this}get description(){return this._description}setDescription(e){return this._description=e,this}get stake(){return this._stake}setStake(e){return this._stake=e,this}static _fromProtobuf(e){return new NodeAddress({publicKey:null!=e.RSA_PubKey?e.RSA_PubKey:void 0,nodeId:null!=e.nodeId?e.nodeId:void 0,accountId:null!=e.nodeAccountId?AccountId._fromProtobuf(e.nodeAccountId):void 0,certHash:null!=e.nodeCertHash?e.nodeCertHash:void 0,addresses:null!=e.serviceEndpoint?e.serviceEndpoint.map((e=>EndPoint._fromProtobuf(e))):void 0,description:null!=e.description?e.description:void 0,stake:null!=e.stake?e.stake:void 0})}_toProtobuf(){return{RSA_PubKey:this._publicKey,nodeId:this._nodeId,nodeAccountId:null!=this._accountId?this._accountId._toProtobuf():null,nodeCertHash:this._certHash,serviceEndpoint:this._addresses.map((e=>e._toProtobuf())),description:this._description,stake:this._stake}}toString(){return JSON.stringify(this.toJSON())}toJSON(){return{publicKey:this._publicKey,nodeId:null!=this._nodeId?this._nodeId.toString():null,accountId:null!=this._accountId?this._accountId.toString():null,certHash:null!=this._certHash?decode$4(this._certHash):null,addresses:this._addresses.map((e=>e.toJSON())),description:this._description,stake:null!=this._stake?this._stake.toString():null}}}class NodeAddressBook{constructor(e={}){this._nodeAddresses=[],null!=e.nodeAddresses&&this.setNodeAddresses(e.nodeAddresses)}get nodeAddresses(){return this._nodeAddresses}setNodeAddresses(e){return this._nodeAddresses=e,this}static fromBytes(e){return NodeAddressBook._fromProtobuf(proto_1.NodeAddressBook.decode(e))}static _fromProtobuf(e){return new NodeAddressBook({nodeAddresses:null!=e.nodeAddress?e.nodeAddress.map((e=>NodeAddress._fromProtobuf(e))):void 0})}_toProtobuf(){return{nodeAddress:this._nodeAddresses.map((e=>e._toProtobuf()))}}toString(){return JSON.stringify(this.toJSON())}toJSON(){return{nodeAddresses:this._nodeAddresses.map((e=>e.toJSON()))}}toBytes(){return proto_1.NodeAddressBook.encode(this._toProtobuf()).finish()}}class AddressBookQuery extends Query{constructor(e={}){super(),this._fileId=null,null!=e.fileId&&this.setFileId(e.fileId),this._limit=null,null!=e.limit&&this.setLimit(e.limit),this._retryHandler=e=>{if(null!=e){if(e instanceof Error)return!0;switch(e.code){case 13:return RST_STREAM.test(e.details.toString());case 5:case 8:case 14:case 17:return!0;default:return!1}}return!1},this._addresses=[],this._attempt=0}get fileId(){return this._fileId}setFileId(e){return this._fileId="string"==typeof e?FileId.fromString(e):e.clone(),this}get limit(){return this._limit}setLimit(e){return this._limit=e,this}setMaxAttempts(e){return this._maxAttempts=e,this}setMaxBackoff(e){return this._maxBackoff=e,this}execute(e,t){if(0===e._network._network.size&&!e._timer)throw new Error("The client's network update period is required. Please set it using the setNetworkUpdatePeriod method.");return new Promise(((r,n)=>{this._makeServerStreamRequest(e,r,n,t)}))}_makeServerStreamRequest(e,t,r,n){const o=com_1.hedera.mirror.api.proto.AddressBookQuery.encode({fileId:null!=this._fileId?this._fileId._toProtobuf():null,limit:this._limit}).finish();e._mirrorNetwork.getNextMirrorNode().getChannel().makeServerStreamRequest("NetworkService","getNodes",o,(e=>{this._addresses.push(NodeAddress._fromProtobuf(proto_1.NodeAddress.decode(e))),null!=this._limit&&this._limit>0&&(this._limit=this._limit-1)}),(o=>{const i=o instanceof Error?o.message:o.details;if(this._attempt=this._maxAttempts&&console.warn(`Error getting nodes from mirror for file ${null!=this._fileId?this._fileId.toString():"UNKNOWN"} during attempt ${this._attempt}. Waiting ${o} ms before next attempt: ${i}`),this._logger&&this._logger.debug(`Error getting nodes from mirror for file ${null!=this._fileId?this._fileId.toString():"UNKNOWN"} during attempt ${this._attempt}. Waiting ${o} ms before next attempt: ${i}`),this._attempt+=1,setTimeout((()=>{this._makeServerStreamRequest(e,t,r,n)}),o)}else r(new Error("failed to query address book"))}),(()=>{t(new NodeAddressBook({nodeAddresses:this._addresses}))}))}}CACHE.setAddressBookQueryConstructor((()=>new AddressBookQuery));class ContractByteCodeQuery extends Query{constructor(e={}){super(),this._contractId=null,null!=e.contractId&&this.setContractId(e.contractId)}static _fromProtobuf(e){const t=e.contractGetBytecode;return new ContractByteCodeQuery({contractId:null!=t.contractID?ContractId._fromProtobuf(t.contractID):void 0})}get contractId(){return this._contractId}setContractId(e){return this._contractId="string"==typeof e?ContractId.fromString(e):e.clone(),this}_validateChecksums(e){null!=this._contractId&&this._contractId.validateChecksum(e)}_execute(e,t){return e.smartContract.contractGetBytecode(t)}_mapResponseHeader(e){return e.contractGetBytecodeResponse.header}_mapResponse(e){const t=e.contractGetBytecodeResponse;return Promise.resolve(null!=t.bytecode?t.bytecode:new Uint8Array)}_onMakeRequest(e){return{contractGetBytecode:{header:e,contractID:null!=this._contractId?this._contractId._toProtobuf():null}}}_getLogId(){return`ContractByteCodeQuery:${(null!=this._paymentTransactionId&&null!=this._paymentTransactionId.validStart?this._paymentTransactionId.validStart:this._timestamp).toString()}`}}QUERY_REGISTRY.set("contractGetBytecode",ContractByteCodeQuery._fromProtobuf);const HEX_CHARS="0123456789abcdef".split(""),KECCAK_PADDING=[1,256,65536,16777216],SHIFT=[0,8,16,24],RC=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],Keccak=e=>{return{blocks:[],reset:!0,block:0,start:0,blockCount:1600-(e<<1)>>5,outputBlocks:e>>5,s:(t=[0,0,0,0,0,0,0,0,0,0],[].concat(t,t,t,t,t))};var t},update=(e,t)=>{for(var r,n,o=t.length,i=e.blocks,a=e.blockCount<<2,s=e.blockCount,c=e.outputBlocks,u=e.s,l=0;l>2]|=t[l]<>2]|=n<>2]|=(192|n>>6)<>2]|=(128|63&n)<=57344?(i[r>>2]|=(224|n>>12)<>2]|=(128|n>>6&63)<>2]|=(128|63&n)<>2]|=(240|n>>18)<>2]|=(128|n>>12&63)<>2]|=(128|n>>6&63)<>2]|=(128|63&n)<=a){for(e.start=r-a,e.block=i[s],r=0;r>2]|=KECCAK_PADDING[3&r],e.lastByteIndex===a)for(i[0]=i[s],r=1;r>4&15]+HEX_CHARS[15&d]+HEX_CHARS[d>>12&15]+HEX_CHARS[d>>8&15]+HEX_CHARS[d>>20&15]+HEX_CHARS[d>>16&15]+HEX_CHARS[d>>28&15]+HEX_CHARS[d>>24&15];h%s==0&&(f$7(u),r=0)}return"0x"+f},f$7=e=>{var t,r,n,o,i,a,s,c,u,l,d,f,h,p,y,m,g,b,v,w,_,I,T,k,$,S,A,E,C,R,O,N,P,M,B,D,x,L,U,j,F,q,K,H,G,z,V,W,Q,Y,X,J,Z,ee,te,re,ne,oe,ie,ae,se,ce,ue;for(n=0;n<48;n+=2)o=e[0]^e[10]^e[20]^e[30]^e[40],i=e[1]^e[11]^e[21]^e[31]^e[41],a=e[2]^e[12]^e[22]^e[32]^e[42],s=e[3]^e[13]^e[23]^e[33]^e[43],c=e[4]^e[14]^e[24]^e[34]^e[44],u=e[5]^e[15]^e[25]^e[35]^e[45],l=e[6]^e[16]^e[26]^e[36]^e[46],d=e[7]^e[17]^e[27]^e[37]^e[47],t=(f=e[8]^e[18]^e[28]^e[38]^e[48])^(a<<1|s>>>31),r=(h=e[9]^e[19]^e[29]^e[39]^e[49])^(s<<1|a>>>31),e[0]^=t,e[1]^=r,e[10]^=t,e[11]^=r,e[20]^=t,e[21]^=r,e[30]^=t,e[31]^=r,e[40]^=t,e[41]^=r,t=o^(c<<1|u>>>31),r=i^(u<<1|c>>>31),e[2]^=t,e[3]^=r,e[12]^=t,e[13]^=r,e[22]^=t,e[23]^=r,e[32]^=t,e[33]^=r,e[42]^=t,e[43]^=r,t=a^(l<<1|d>>>31),r=s^(d<<1|l>>>31),e[4]^=t,e[5]^=r,e[14]^=t,e[15]^=r,e[24]^=t,e[25]^=r,e[34]^=t,e[35]^=r,e[44]^=t,e[45]^=r,t=c^(f<<1|h>>>31),r=u^(h<<1|f>>>31),e[6]^=t,e[7]^=r,e[16]^=t,e[17]^=r,e[26]^=t,e[27]^=r,e[36]^=t,e[37]^=r,e[46]^=t,e[47]^=r,t=l^(o<<1|i>>>31),r=d^(i<<1|o>>>31),e[8]^=t,e[9]^=r,e[18]^=t,e[19]^=r,e[28]^=t,e[29]^=r,e[38]^=t,e[39]^=r,e[48]^=t,e[49]^=r,p=e[0],y=e[1],z=e[11]<<4|e[10]>>>28,V=e[10]<<4|e[11]>>>28,E=e[20]<<3|e[21]>>>29,C=e[21]<<3|e[20]>>>29,ae=e[31]<<9|e[30]>>>23,se=e[30]<<9|e[31]>>>23,q=e[40]<<18|e[41]>>>14,K=e[41]<<18|e[40]>>>14,M=e[2]<<1|e[3]>>>31,B=e[3]<<1|e[2]>>>31,m=e[13]<<12|e[12]>>>20,g=e[12]<<12|e[13]>>>20,W=e[22]<<10|e[23]>>>22,Q=e[23]<<10|e[22]>>>22,R=e[33]<<13|e[32]>>>19,O=e[32]<<13|e[33]>>>19,ce=e[42]<<2|e[43]>>>30,ue=e[43]<<2|e[42]>>>30,ee=e[5]<<30|e[4]>>>2,te=e[4]<<30|e[5]>>>2,D=e[14]<<6|e[15]>>>26,x=e[15]<<6|e[14]>>>26,b=e[25]<<11|e[24]>>>21,v=e[24]<<11|e[25]>>>21,Y=e[34]<<15|e[35]>>>17,X=e[35]<<15|e[34]>>>17,N=e[45]<<29|e[44]>>>3,P=e[44]<<29|e[45]>>>3,k=e[6]<<28|e[7]>>>4,$=e[7]<<28|e[6]>>>4,re=e[17]<<23|e[16]>>>9,ne=e[16]<<23|e[17]>>>9,L=e[26]<<25|e[27]>>>7,U=e[27]<<25|e[26]>>>7,w=e[36]<<21|e[37]>>>11,_=e[37]<<21|e[36]>>>11,J=e[47]<<24|e[46]>>>8,Z=e[46]<<24|e[47]>>>8,H=e[8]<<27|e[9]>>>5,G=e[9]<<27|e[8]>>>5,S=e[18]<<20|e[19]>>>12,A=e[19]<<20|e[18]>>>12,oe=e[29]<<7|e[28]>>>25,ie=e[28]<<7|e[29]>>>25,j=e[38]<<8|e[39]>>>24,F=e[39]<<8|e[38]>>>24,I=e[48]<<14|e[49]>>>18,T=e[49]<<14|e[48]>>>18,e[0]=p^~m&b,e[1]=y^~g&v,e[10]=k^~S&E,e[11]=$^~A&C,e[20]=M^~D&L,e[21]=B^~x&U,e[30]=H^~z&W,e[31]=G^~V&Q,e[40]=ee^~re&oe,e[41]=te^~ne&ie,e[2]=m^~b&w,e[3]=g^~v&_,e[12]=S^~E&R,e[13]=A^~C&O,e[22]=D^~L&j,e[23]=x^~U&F,e[32]=z^~W&Y,e[33]=V^~Q&X,e[42]=re^~oe&ae,e[43]=ne^~ie&se,e[4]=b^~w&I,e[5]=v^~_&T,e[14]=E^~R&N,e[15]=C^~O&P,e[24]=L^~j&q,e[25]=U^~F&K,e[34]=W^~Y&J,e[35]=Q^~X&Z,e[44]=oe^~ae&ce,e[45]=ie^~se&ue,e[6]=w^~I&p,e[7]=_^~T&y,e[16]=R^~N&k,e[17]=O^~P&$,e[26]=j^~q&M,e[27]=F^~K&B,e[36]=Y^~J&H,e[37]=X^~Z&G,e[46]=ae^~ce&ee,e[47]=se^~ue&te,e[8]=I^~p&m,e[9]=T^~y&g,e[18]=N^~k&S,e[19]=P^~$&A,e[28]=q^~M&D,e[29]=K^~B&x,e[38]=J^~H&z,e[39]=Z^~G&V,e[48]=ce^~ee&re,e[49]=ue^~te&ne,e[0]^=RC[n],e[1]^=RC[n+1]},keccak=e=>t=>{var r;if("0x"===t.slice(0,2)){r=[];for(var n=2,o=t.length;n0&&(this._params+=","),this._params+=solidityTypeToString(e),this._paramTypes.push(e),this}_build(e){if(null!=e)this._name=e;else if(null==this._name)throw new Error("`name` required for ContractFunctionSelector");const t=encode$9(encode$3(this.toString()));return decode$a(keccak256(`0x${t}`)).slice(0,4)}toString(){return`${null!=this._name?this._name.toString():""}(${this._params})`}}function solidityTypeToString(e){let t="";switch(e.ty){case ArgumentType.uint8:t="uint8";break;case ArgumentType.int8:t="int8";break;case ArgumentType.uint16:t="uint16";break;case ArgumentType.int16:t="int16";break;case ArgumentType.uint24:t="uint24";break;case ArgumentType.int24:t="int24";break;case ArgumentType.uint32:t="uint32";break;case ArgumentType.int32:t="int32";break;case ArgumentType.uint40:t="uint40";break;case ArgumentType.int40:t="int40";break;case ArgumentType.uint48:t="uint48";break;case ArgumentType.int48:t="int48";break;case ArgumentType.uint56:t="uint56";break;case ArgumentType.int56:t="int56";break;case ArgumentType.uint64:t="uint64";break;case ArgumentType.int64:t="int64";break;case ArgumentType.uint72:t="uint72";break;case ArgumentType.int72:t="int72";break;case ArgumentType.uint80:t="uint80";break;case ArgumentType.int80:t="int80";break;case ArgumentType.uint88:t="uint88";break;case ArgumentType.int88:t="int88";break;case ArgumentType.uint96:t="uint96";break;case ArgumentType.int96:t="int96";break;case ArgumentType.uint104:t="uint104";break;case ArgumentType.int104:t="int104";break;case ArgumentType.uint112:t="uint112";break;case ArgumentType.int112:t="int112";break;case ArgumentType.uint120:t="uint120";break;case ArgumentType.int120:t="int120";break;case ArgumentType.uint128:t="uint128";break;case ArgumentType.int128:t="int128";break;case ArgumentType.uint136:t="uint136";break;case ArgumentType.int136:t="int136";break;case ArgumentType.uint144:t="uint144";break;case ArgumentType.int144:t="int144";break;case ArgumentType.uint152:t="uint152";break;case ArgumentType.int152:t="int152";break;case ArgumentType.uint160:t="uint160";break;case ArgumentType.int160:t="int160";break;case ArgumentType.uint168:t="uint168";break;case ArgumentType.int168:t="int168";break;case ArgumentType.uint176:t="uint176";break;case ArgumentType.int176:t="int176";break;case ArgumentType.uint184:t="uint184";break;case ArgumentType.int184:t="int184";break;case ArgumentType.uint192:t="uint192";break;case ArgumentType.int192:t="int192";break;case ArgumentType.uint200:t="uint200";break;case ArgumentType.int200:t="int200";break;case ArgumentType.uint208:t="uint208";break;case ArgumentType.int208:t="int208";break;case ArgumentType.uint216:t="uint216";break;case ArgumentType.int216:t="int216";break;case ArgumentType.uint224:t="uint224";break;case ArgumentType.int224:t="int224";break;case ArgumentType.uint232:t="uint232";break;case ArgumentType.int232:t="int232";break;case ArgumentType.uint240:t="uint240";break;case ArgumentType.int240:t="int240";break;case ArgumentType.uint248:t="uint248";break;case ArgumentType.int248:t="int248";break;case ArgumentType.uint256:t="uint256";break;case ArgumentType.int256:t="int256";break;case ArgumentType.string:t="string";break;case ArgumentType.bool:t="bool";break;case ArgumentType.bytes:t="bytes";break;case ArgumentType.bytes32:t="bytes32";break;case ArgumentType.address:t="address";break;case ArgumentType.func:t="function";break;default:t=""}return e.array&&(t+="[]"),t}class ContractFunctionParameters{constructor(){this._selector=new ContractFunctionSelector,this._arguments=[]}addString(e){return this._selector.addString(),this._addParam(e,!0)}addStringArray(e){return this._selector.addStringArray(),this._addParam(e,!0)}addBytes(e){return this._selector.addBytes(),this._addParam(e,!0)}addBytes32(e){if(32!==e.length)throw new Error(`addBytes32 expected array to be of length 32, but received ${e.length}`);return this._selector.addBytes32(),this._addParam(e,!1)}addBytesArray(e){return this._selector.addBytesArray(),this._addParam(e,!0)}addBytes32Array(e){for(const[t,r]of e.entries())if(32!==r.length)throw new Error(`addBytes32 expected array to be of length 32, but received ${r.length}`);return this._selector.addBytes32Array(),this._addParam(e,!0)}addBool(e){return this._selector.addBool(),this._addParam(e,!1)}addInt8(e){return this._selector.addInt8(),this._addParam(convertToBigNumber(e),!1)}addUint8(e){return this._selector.addUint8(),this._addParam(convertToBigNumber(e),!1)}addInt16(e){return this._selector.addInt16(),this._addParam(convertToBigNumber(e),!1)}addUint16(e){return this._selector.addUint16(),this._addParam(convertToBigNumber(e),!1)}addInt24(e){return this._selector.addInt24(),this._addParam(convertToBigNumber(e),!1)}addUint24(e){return this._selector.addUint24(),this._addParam(convertToBigNumber(e),!1)}addInt32(e){return this._selector.addInt32(),this._addParam(convertToBigNumber(e),!1)}addUint32(e){return this._selector.addUint32(),this._addParam(convertToBigNumber(e),!1)}addInt40(e){return this._selector.addInt40(),this._addParam(convertToBigNumber(e),!1)}addUint40(e){return this._selector.addUint40(),this._addParam(convertToBigNumber(e),!1)}addInt48(e){return this._selector.addInt48(),this._addParam(convertToBigNumber(e),!1)}addUint48(e){return this._selector.addUint48(),this._addParam(convertToBigNumber(e),!1)}addInt56(e){return this._selector.addInt56(),this._addParam(convertToBigNumber(e),!1)}addUint56(e){return this._selector.addUint56(),this._addParam(convertToBigNumber(e),!1)}addInt64(e){return this._selector.addInt64(),this._addParam(convertToBigNumber(e),!1)}addUint64(e){return this._selector.addUint64(),this._addParam(convertToBigNumber(e),!1)}addInt72(e){return this._selector.addInt72(),this._addParam(convertToBigNumber(e),!1)}addUint72(e){return this._selector.addUint72(),this._addParam(convertToBigNumber(e),!1)}addInt80(e){return this._selector.addInt80(),this._addParam(convertToBigNumber(e),!1)}addUint80(e){return this._selector.addUint80(),this._addParam(convertToBigNumber(e),!1)}addInt88(e){return this._selector.addInt88(),this._addParam(convertToBigNumber(e),!1)}addUint88(e){return this._selector.addUint88(),this._addParam(convertToBigNumber(e),!1)}addInt96(e){return this._selector.addInt96(),this._addParam(convertToBigNumber(e),!1)}addUint96(e){return this._selector.addUint96(),this._addParam(convertToBigNumber(e),!1)}addInt104(e){return this._selector.addInt104(),this._addParam(convertToBigNumber(e),!1)}addUint104(e){return this._selector.addUint104(),this._addParam(convertToBigNumber(e),!1)}addInt112(e){return this._selector.addInt112(),this._addParam(convertToBigNumber(e),!1)}addUint112(e){return this._selector.addUint112(),this._addParam(convertToBigNumber(e),!1)}addInt120(e){return this._selector.addInt120(),this._addParam(convertToBigNumber(e),!1)}addUint120(e){return this._selector.addUint120(),this._addParam(convertToBigNumber(e),!1)}addInt128(e){return this._selector.addInt128(),this._addParam(convertToBigNumber(e),!1)}addUint128(e){return this._selector.addUint128(),this._addParam(convertToBigNumber(e),!1)}addInt136(e){return this._selector.addInt136(),this._addParam(convertToBigNumber(e),!1)}addUint136(e){return this._selector.addUint136(),this._addParam(convertToBigNumber(e),!1)}addInt144(e){return this._selector.addInt144(),this._addParam(convertToBigNumber(e),!1)}addUint144(e){return this._selector.addUint144(),this._addParam(convertToBigNumber(e),!1)}addInt152(e){return this._selector.addInt152(),this._addParam(convertToBigNumber(e),!1)}addUint152(e){return this._selector.addUint152(),this._addParam(convertToBigNumber(e),!1)}addInt160(e){return this._selector.addInt160(),this._addParam(convertToBigNumber(e),!1)}addUint160(e){return this._selector.addUint160(),this._addParam(convertToBigNumber(e),!1)}addInt168(e){return this._selector.addInt168(),this._addParam(convertToBigNumber(e),!1)}addUint168(e){return this._selector.addUint168(),this._addParam(convertToBigNumber(e),!1)}addInt176(e){return this._selector.addInt176(),this._addParam(convertToBigNumber(e),!1)}addUint176(e){return this._selector.addUint176(),this._addParam(convertToBigNumber(e),!1)}addInt184(e){return this._selector.addInt184(),this._addParam(convertToBigNumber(e),!1)}addUint184(e){return this._selector.addUint184(),this._addParam(convertToBigNumber(e),!1)}addInt192(e){return this._selector.addInt192(),this._addParam(convertToBigNumber(e),!1)}addUint192(e){return this._selector.addUint192(),this._addParam(convertToBigNumber(e),!1)}addInt200(e){return this._selector.addInt200(),this._addParam(convertToBigNumber(e),!1)}addUint200(e){return this._selector.addUint200(),this._addParam(convertToBigNumber(e),!1)}addInt208(e){return this._selector.addInt208(),this._addParam(convertToBigNumber(e),!1)}addUint208(e){return this._selector.addUint208(),this._addParam(convertToBigNumber(e),!1)}addInt216(e){return this._selector.addInt216(),this._addParam(convertToBigNumber(e),!1)}addUint216(e){return this._selector.addUint216(),this._addParam(convertToBigNumber(e),!1)}addInt224(e){return this._selector.addInt224(),this._addParam(convertToBigNumber(e),!1)}addUint224(e){return this._selector.addUint224(),this._addParam(convertToBigNumber(e),!1)}addInt232(e){return this._selector.addInt232(),this._addParam(convertToBigNumber(e),!1)}addUint232(e){return this._selector.addUint232(),this._addParam(convertToBigNumber(e),!1)}addInt240(e){return this._selector.addInt240(),this._addParam(convertToBigNumber(e),!1)}addUint240(e){return this._selector.addUint240(),this._addParam(convertToBigNumber(e),!1)}addInt248(e){return this._selector.addInt248(),this._addParam(convertToBigNumber(e),!1)}addUint248(e){return this._selector.addUint248(),this._addParam(convertToBigNumber(e),!1)}addInt256(e){return this._selector.addInt256(),this._addParam(convertToBigNumber(e),!1)}addUint256(e){return this._selector.addUint256(),this._addParam(convertToBigNumber(e),!1)}addInt8Array(e){return this._selector.addInt8Array(),this._addParam(convertToBigNumberArray(e),!0)}addUint8Array(e){return this._selector.addUint8Array(),this._addParam(convertToBigNumberArray(e),!0)}addInt16Array(e){return this._selector.addInt16Array(),this._addParam(convertToBigNumberArray(e),!0)}addUint16Array(e){return this._selector.addUint16Array(),this._addParam(convertToBigNumberArray(e),!0)}addInt24Array(e){return this._selector.addInt24Array(),this._addParam(convertToBigNumberArray(e),!0)}addUint24Array(e){return this._selector.addUint24Array(),this._addParam(convertToBigNumberArray(e),!0)}addInt32Array(e){return this._selector.addInt32Array(),this._addParam(convertToBigNumberArray(e),!0)}addUint32Array(e){return this._selector.addUint32Array(),this._addParam(convertToBigNumberArray(e),!0)}addInt40Array(e){return this._selector.addInt40Array(),this._addParam(convertToBigNumberArray(e),!0)}addUint40Array(e){return this._selector.addUint40Array(),this._addParam(convertToBigNumberArray(e),!0)}addInt48Array(e){return this._selector.addInt48Array(),this._addParam(convertToBigNumberArray(e),!0)}addUint48Array(e){return this._selector.addUint48Array(),this._addParam(convertToBigNumberArray(e),!0)}addInt56Array(e){return this._selector.addInt56Array(),this._addParam(convertToBigNumberArray(e),!0)}addUint56Array(e){return this._selector.addUint56Array(),this._addParam(convertToBigNumberArray(e),!0)}addInt64Array(e){return this._selector.addInt64Array(),this._addParam(convertToBigNumberArray(e),!0)}addUint64Array(e){return this._selector.addUint64Array(),this._addParam(convertToBigNumberArray(e),!0)}addInt72Array(e){return this._selector.addInt72Array(),this._addParam(convertToBigNumberArray(e),!0)}addUint72Array(e){return this._selector.addUint72Array(),this._addParam(convertToBigNumberArray(e),!0)}addInt80Array(e){return this._selector.addInt80Array(),this._addParam(convertToBigNumberArray(e),!0)}addUint80Array(e){return this._selector.addUint80Array(),this._addParam(convertToBigNumberArray(e),!0)}addInt88Array(e){return this._selector.addInt88Array(),this._addParam(convertToBigNumberArray(e),!0)}addUint88Array(e){return this._selector.addUint88Array(),this._addParam(convertToBigNumberArray(e),!0)}addInt96Array(e){return this._selector.addInt96Array(),this._addParam(convertToBigNumberArray(e),!0)}addUint96Array(e){return this._selector.addUint96Array(),this._addParam(convertToBigNumberArray(e),!0)}addInt104Array(e){return this._selector.addInt104Array(),this._addParam(convertToBigNumberArray(e),!0)}addUint104Array(e){return this._selector.addUint104Array(),this._addParam(convertToBigNumberArray(e),!0)}addInt112Array(e){return this._selector.addInt112Array(),this._addParam(convertToBigNumberArray(e),!0)}addUint112Array(e){return this._selector.addUint112Array(),this._addParam(convertToBigNumberArray(e),!0)}addInt120Array(e){return this._selector.addInt120Array(),this._addParam(convertToBigNumberArray(e),!0)}addUint120Array(e){return this._selector.addUint120Array(),this._addParam(convertToBigNumberArray(e),!0)}addInt128Array(e){return this._selector.addInt128Array(),this._addParam(convertToBigNumberArray(e),!0)}addUint128Array(e){return this._selector.addUint128Array(),this._addParam(convertToBigNumberArray(e),!0)}addInt136Array(e){return this._selector.addInt136Array(),this._addParam(convertToBigNumberArray(e),!0)}addUint136Array(e){return this._selector.addUint136Array(),this._addParam(convertToBigNumberArray(e),!0)}addInt144Array(e){return this._selector.addInt144Array(),this._addParam(convertToBigNumberArray(e),!0)}addUint144Array(e){return this._selector.addUint144Array(),this._addParam(convertToBigNumberArray(e),!0)}addInt152Array(e){return this._selector.addInt152Array(),this._addParam(convertToBigNumberArray(e),!0)}addUint152Array(e){return this._selector.addUint152Array(),this._addParam(convertToBigNumberArray(e),!0)}addInt160Array(e){return this._selector.addInt160Array(),this._addParam(convertToBigNumberArray(e),!0)}addUint160Array(e){return this._selector.addUint160Array(),this._addParam(convertToBigNumberArray(e),!0)}addInt168Array(e){return this._selector.addInt168Array(),this._addParam(convertToBigNumberArray(e),!0)}addUint168Array(e){return this._selector.addUint168Array(),this._addParam(convertToBigNumberArray(e),!0)}addInt176Array(e){return this._selector.addInt176Array(),this._addParam(convertToBigNumberArray(e),!0)}addUint176Array(e){return this._selector.addUint176Array(),this._addParam(convertToBigNumberArray(e),!0)}addInt184Array(e){return this._selector.addInt184Array(),this._addParam(convertToBigNumberArray(e),!0)}addUint184Array(e){return this._selector.addUint184Array(),this._addParam(convertToBigNumberArray(e),!0)}addInt192Array(e){return this._selector.addInt192Array(),this._addParam(convertToBigNumberArray(e),!0)}addUint192Array(e){return this._selector.addUint192Array(),this._addParam(convertToBigNumberArray(e),!0)}addInt200Array(e){return this._selector.addInt200Array(),this._addParam(convertToBigNumberArray(e),!0)}addUint200Array(e){return this._selector.addUint200Array(),this._addParam(convertToBigNumberArray(e),!0)}addInt208Array(e){return this._selector.addInt208Array(),this._addParam(convertToBigNumberArray(e),!0)}addUint208Array(e){return this._selector.addUint208Array(),this._addParam(convertToBigNumberArray(e),!0)}addInt216Array(e){return this._selector.addInt216Array(),this._addParam(convertToBigNumberArray(e),!0)}addUint216Array(e){return this._selector.addUint216Array(),this._addParam(convertToBigNumberArray(e),!0)}addInt224Array(e){return this._selector.addInt224Array(),this._addParam(convertToBigNumberArray(e),!0)}addUint224Array(e){return this._selector.addUint224Array(),this._addParam(convertToBigNumberArray(e),!0)}addInt232Array(e){return this._selector.addInt232Array(),this._addParam(convertToBigNumberArray(e),!0)}addUint232Array(e){return this._selector.addUint232Array(),this._addParam(convertToBigNumberArray(e),!0)}addInt240Array(e){return this._selector.addInt240Array(),this._addParam(convertToBigNumberArray(e),!0)}addUint240Array(e){return this._selector.addUint240Array(),this._addParam(convertToBigNumberArray(e),!0)}addInt248Array(e){return this._selector.addInt248Array(),this._addParam(convertToBigNumberArray(e),!0)}addUint248Array(e){return this._selector.addUint248Array(),this._addParam(convertToBigNumberArray(e),!0)}addInt256Array(e){return this._selector.addInt256Array(),this._addParam(convertToBigNumberArray(e),!0)}addUint256Array(e){return this._selector.addUint256Array(),this._addParam(convertToBigNumberArray(e),!0)}addAddress(e){let t;if("string"==typeof e){if(40!==e.length&&42!==e.length)throw new Error("`address` type requires parameter to be 40 or 42 characters");t=e}else t=e.toString();const r=40===t.length?decode$a(t):decode$a(t.substring(2));return this._selector.addAddress(),this._addParam(r,!1)}addAddressArray(e){const t=[];for(const[r,n]of e.entries()){let e;if("string"==typeof n){if(40!==n.length&&42!==n.length)throw new Error("`address` type requires parameter to be 40 or 42 characters");e=n}else e=n.toString();const r=40===e.length?decode$a(e):decode$a(e.substring(2));t.push(r)}return this._selector.addAddressArray(),this._addParam(t,!0)}addFunction(e,t){const r=decode$a(e),n=t._build();if(20!==r.length)throw new Error("`function` type requires parameter `address` to be exactly 20 bytes");this._selector.addFunction();const o=new Uint8Array(24);return o.set(r,0),o.set(n,20),this._addParam(o,!1)}_addParam(e,t){const r=this._selector._paramTypes.length-1,n=argumentToBytes(e,this._selector._paramTypes[r]);return this._arguments.push({dynamic:t,value:n}),this}_build(e){const t=null!=e,r=t?4:0,n=0===this._arguments.length?r:32*this._arguments.length+this._arguments.map((e=>e.dynamic?e.value.length:0)).reduce(((e,t)=>e+t))+r,o=new Uint8Array(n);t&&o.set(this._selector._build(e),0);let i=32*this._arguments.length;for(const[a,{dynamic:s,value:c}]of this._arguments.entries())if(s){const e=safeView(o,r+32*a+28);e.setUint32(0,i),o.set(c,e.getUint32(0)+r),i+=c.length}else o.set(c,r+32*a);return o}}function argumentToBytes(e,t){let r,n=new Uint8Array(32),o=safeView(n);if(t.array){if(!Array.isArray(e))throw new TypeError("SolidityType indicates type is array, but parameter is not an array");const r=[];for(const[n,o]of e.entries()){const e=argumentToBytes(o,{ty:t.ty,array:!1});r.push(e)}const i=r.map((e=>e.length)).reduce(((e,t)=>e+t),0);switch(t.ty){case ArgumentType.uint8:case ArgumentType.int8:case ArgumentType.uint16:case ArgumentType.int16:case ArgumentType.uint24:case ArgumentType.int24:case ArgumentType.uint32:case ArgumentType.int32:case ArgumentType.uint40:case ArgumentType.int40:case ArgumentType.uint48:case ArgumentType.int48:case ArgumentType.uint56:case ArgumentType.int56:case ArgumentType.uint64:case ArgumentType.int64:case ArgumentType.uint72:case ArgumentType.int72:case ArgumentType.uint80:case ArgumentType.int80:case ArgumentType.uint88:case ArgumentType.int88:case ArgumentType.uint96:case ArgumentType.int96:case ArgumentType.uint104:case ArgumentType.int104:case ArgumentType.uint112:case ArgumentType.int112:case ArgumentType.uint120:case ArgumentType.int120:case ArgumentType.uint128:case ArgumentType.int128:case ArgumentType.uint136:case ArgumentType.int136:case ArgumentType.uint144:case ArgumentType.int144:case ArgumentType.uint152:case ArgumentType.int152:case ArgumentType.uint160:case ArgumentType.int160:case ArgumentType.uint168:case ArgumentType.int168:case ArgumentType.uint176:case ArgumentType.int176:case ArgumentType.uint184:case ArgumentType.int184:case ArgumentType.uint192:case ArgumentType.int192:case ArgumentType.uint200:case ArgumentType.int200:case ArgumentType.uint208:case ArgumentType.int208:case ArgumentType.uint216:case ArgumentType.int216:case ArgumentType.uint224:case ArgumentType.int224:case ArgumentType.uint232:case ArgumentType.int232:case ArgumentType.uint240:case ArgumentType.int240:case ArgumentType.uint248:case ArgumentType.int248:case ArgumentType.uint256:case ArgumentType.int256:case ArgumentType.bool:case ArgumentType.bytes32:case ArgumentType.address:case ArgumentType.func:n=new Uint8Array(i+32);break;case ArgumentType.bytes:case ArgumentType.string:n=new Uint8Array(32*r.length+i+32);break;default:throw new TypeError(`Expected param type to be ArgumentType, but received ${t.ty}`)}o=safeView(n,28),o.setUint32(0,r.length);let a=32*r.length;for(const[e,o]of r.entries())switch(t.ty){case ArgumentType.uint8:case ArgumentType.int8:case ArgumentType.uint16:case ArgumentType.int16:case ArgumentType.uint24:case ArgumentType.int24:case ArgumentType.uint32:case ArgumentType.int32:case ArgumentType.uint40:case ArgumentType.int40:case ArgumentType.uint48:case ArgumentType.int48:case ArgumentType.uint56:case ArgumentType.int56:case ArgumentType.uint64:case ArgumentType.int64:case ArgumentType.uint72:case ArgumentType.int72:case ArgumentType.uint80:case ArgumentType.int80:case ArgumentType.uint88:case ArgumentType.int88:case ArgumentType.uint96:case ArgumentType.int96:case ArgumentType.uint104:case ArgumentType.int104:case ArgumentType.uint112:case ArgumentType.int112:case ArgumentType.uint120:case ArgumentType.int120:case ArgumentType.uint128:case ArgumentType.int128:case ArgumentType.uint136:case ArgumentType.int136:case ArgumentType.uint144:case ArgumentType.int144:case ArgumentType.uint152:case ArgumentType.int152:case ArgumentType.uint160:case ArgumentType.int160:case ArgumentType.uint168:case ArgumentType.int168:case ArgumentType.uint176:case ArgumentType.int176:case ArgumentType.uint184:case ArgumentType.int184:case ArgumentType.uint192:case ArgumentType.int192:case ArgumentType.uint200:case ArgumentType.int200:case ArgumentType.uint208:case ArgumentType.int208:case ArgumentType.uint216:case ArgumentType.int216:case ArgumentType.uint224:case ArgumentType.int224:case ArgumentType.uint232:case ArgumentType.int232:case ArgumentType.uint240:case ArgumentType.int240:case ArgumentType.uint248:case ArgumentType.int248:case ArgumentType.uint256:case ArgumentType.int256:case ArgumentType.bool:case ArgumentType.bytes32:case ArgumentType.address:case ArgumentType.func:n.set(o,32*e+32);break;case ArgumentType.bytes:case ArgumentType.string:const r=safeView(n,32*(e+1)+28);r.setUint32(0,a),n.set(o,r.getUint32(0)+32),a+=o.length;break;default:throw new TypeError(`Expected param type to be ArgumentType, but received ${t.ty}`)}return n}switch(t.ty){case ArgumentType.uint8:case ArgumentType.int8:case ArgumentType.uint16:case ArgumentType.int16:case ArgumentType.uint24:case ArgumentType.int24:case ArgumentType.uint32:case ArgumentType.int32:case ArgumentType.uint40:case ArgumentType.int40:case ArgumentType.uint48:case ArgumentType.int48:case ArgumentType.uint56:case ArgumentType.int56:case ArgumentType.uint64:case ArgumentType.int64:case ArgumentType.uint72:case ArgumentType.int72:case ArgumentType.uint80:case ArgumentType.int80:case ArgumentType.uint88:case ArgumentType.int88:case ArgumentType.uint96:case ArgumentType.int96:case ArgumentType.uint104:case ArgumentType.int104:case ArgumentType.uint112:case ArgumentType.int112:case ArgumentType.uint120:case ArgumentType.int120:case ArgumentType.uint128:case ArgumentType.int128:case ArgumentType.uint136:case ArgumentType.int136:case ArgumentType.uint144:case ArgumentType.int144:case ArgumentType.uint152:case ArgumentType.int152:case ArgumentType.uint160:case ArgumentType.int160:case ArgumentType.uint168:case ArgumentType.int168:case ArgumentType.uint176:case ArgumentType.int176:case ArgumentType.uint184:case ArgumentType.int184:case ArgumentType.uint192:case ArgumentType.int192:case ArgumentType.uint200:case ArgumentType.int200:case ArgumentType.uint208:case ArgumentType.int208:case ArgumentType.uint216:case ArgumentType.int216:case ArgumentType.uint224:case ArgumentType.int224:case ArgumentType.uint232:case ArgumentType.int232:case ArgumentType.uint240:case ArgumentType.int240:case ArgumentType.uint248:case ArgumentType.int248:case ArgumentType.int256:case ArgumentType.uint256:{let r=e.toString(16);r=e>0||0==e?"0x"+r:r.slice(0,1)+"0x"+r.slice(1);return arrayify(defaultAbiCoder.encode([solidityTypeToString(t)],[r]))}case ArgumentType.address:return n.set(e,12),n;case ArgumentType.bool:return n[31]=e?1:0,n;case ArgumentType.func:return n.set(e,8),n;case ArgumentType.bytes32:return n.set(e,0),n;case ArgumentType.bytes:case ArgumentType.string:return r=e instanceof Uint8Array?e:encode$3(e),n=Math.floor(r.length/32)>=0?0!==Math.floor(r.length%32)?new Uint8Array(32*(Math.floor(r.length/32)+1)+32):new Uint8Array(32*Math.floor(r.length/32)+32):new Uint8Array(64),n.set(r,32),o=safeView(n,28),o.setUint32(0,r.length),n;default:throw new Error(`Unsupported argument type: ${t.toString()}`)}}class ContractCallQuery extends Query{constructor(e={}){super(),this._contractId=null,null!=e.contractId&&this.setContractId(e.contractId),this._gas=null,null!=e.gas&&this.setGas(e.gas),this._functionParameters=null,null!=e.functionParameters&&(e.functionParameters instanceof Uint8Array?this.setFunctionParameters(e.functionParameters):this.setFunction(e.functionParameters.name,e.functionParameters.parameters)),this._maxResultSize=null,null!=e.maxResultSize&&this.setMaxResultSize(e.maxResultSize),this._senderAccountId=null,null!=e.senderAccountId&&this.setSenderAccountId(e.senderAccountId)}static _fromProtobuf(e){const t=e.contractCallLocal;return new ContractCallQuery({contractId:null!=t.contractID?ContractId._fromProtobuf(t.contractID):void 0,gas:null!=t.gas?t.gas:void 0,functionParameters:null!=t.functionParameters?t.functionParameters:void 0,maxResultSize:null!=t.maxResultSize?t.maxResultSize:void 0})}get contractId(){return this._contractId}setContractId(e){return this._contractId="string"==typeof e?ContractId.fromString(e):e.clone(),this}get gas(){return this._gas}setGas(e){return this._gas=e instanceof Long$1?e:Long$1.fromValue(e),this}get senderAccountId(){return this._senderAccountId}setSenderAccountId(e){return this._senderAccountId="string"==typeof e?AccountId.fromString(e):e,this}get functionParameters(){return this._functionParameters}setFunctionParameters(e){return this._functionParameters=e,this}setFunction(e,t){return this._functionParameters=(null!=t?t:new ContractFunctionParameters)._build(e),this}setMaxResultSize(e){return this._maxResultSize=e instanceof Long$1?e:Long$1.fromValue(e),this}_validateChecksums(e){null!=this._contractId&&this._contractId.validateChecksum(e)}_mapStatusError(e,t,r){const{nodeTransactionPrecheckCode:n}=this._mapResponseHeader(t),o=Status._fromCode(null!=n?n:proto_1.ResponseCodeEnum.OK);if(!t.contractCallLocal.functionResult)return new PrecheckStatusError({nodeId:r,status:o,transactionId:this._getTransactionId(),contractFunctionResult:null});const i=this._mapResponseSync(t);return new PrecheckStatusError({nodeId:r,status:o,transactionId:this._getTransactionId(),contractFunctionResult:i})}_execute(e,t){return e.smartContract.contractCallLocalMethod(t)}_mapResponseHeader(e){return e.contractCallLocal.header}_mapResponse(e){const t=e.contractCallLocal;return Promise.resolve(ContractFunctionResult._fromProtobuf(t.functionResult,!1))}_mapResponseSync(e){const t=e.contractCallLocal;return ContractFunctionResult._fromProtobuf(t.functionResult,!1)}_onMakeRequest(e){return{contractCallLocal:{header:e,contractID:null!=this._contractId?this._contractId._toProtobuf():null,gas:this._gas,maxResultSize:this._maxResultSize,functionParameters:this._functionParameters,senderId:null!=this._senderAccountId?this._senderAccountId._toProtobuf():null}}}_getLogId(){return`ContractCallQuery:${(null!=this._paymentTransactionId&&null!=this._paymentTransactionId.validStart?this._paymentTransactionId.validStart:this._timestamp).toString()}`}}QUERY_REGISTRY.set("contractCallLocal",ContractCallQuery._fromProtobuf);class FileCreateTransaction extends Transaction{constructor(e={}){super(),this._keys=null,this._expirationTime=new Timestamp(0,0).plusNanos(Long$1.fromNumber(Date.now()).mul(1e6).add(DEFAULT_AUTO_RENEW_PERIOD.mul(1e9))),this._contents=null,this._fileMemo=null,this._defaultMaxTransactionFee=new Hbar(5),null!=e.keys&&this.setKeys(e.keys),null!=e.expirationTime&&this.setExpirationTime(e.expirationTime),null!=e.contents&&this.setContents(e.contents),e.fileMemo&&null!=e.fileMemo&&this.setFileMemo(e.fileMemo)}static _fromProtobuf(e,t,r,n,o){const i=o[0].fileCreate;return Transaction._fromProtobufTransactions(new FileCreateTransaction({keys:null!=i.keys&&null!=i.keys.keys?i.keys.keys.map((e=>Key._fromProtobufKey(e))):void 0,expirationTime:null!=i.expirationTime?Timestamp._fromProtobuf(i.expirationTime):void 0,contents:null!=i.contents?i.contents:void 0,fileMemo:null!=i.memo?i.memo:void 0}),e,t,r,n,o)}get keys(){return this._keys}setKeys(e){if(this._requireNotFrozen(),e instanceof KeyList&&null!=e.threshold)throw new Error("Cannot set threshold key as file key");return this._keys=e instanceof KeyList?e.toArray():e,this}get expirationTime(){return this._expirationTime}setExpirationTime(e){return this._requireNotFrozen(),this._expirationTime=e instanceof Timestamp?e:Timestamp.fromDate(e),this}get contents(){return this._contents}setContents(e){return this._requireNotFrozen(),this._contents=e instanceof Uint8Array?e:encode$3(e),this}get fileMemo(){return this._fileMemo}setFileMemo(e){return this._requireNotFrozen(),this._fileMemo=e,this}_execute(e,t){return e.file.createFile(t)}_getTransactionDataCase(){return"fileCreate"}_makeTransactionData(){return{keys:null!=this._keys?{keys:this._keys.map((e=>e._toProtobufKey()))}:null,expirationTime:this._expirationTime._toProtobuf(),contents:this._contents,memo:this._fileMemo}}_getLogId(){return`FileCreateTransaction:${this._transactionIds.current.validStart.toString()}`}}TRANSACTION_REGISTRY.set("fileCreate",FileCreateTransaction._fromProtobuf);class FileAppendTransaction extends Transaction{constructor(e={}){super(),this._fileId=null,this._contents=null,this._maxChunks=20,this._chunkSize=4096,this._chunkInterval=10,this._defaultMaxTransactionFee=new Hbar(5),null!=e.fileId&&this.setFileId(e.fileId),null!=e.contents&&this.setContents(e.contents),null!=e.maxChunks&&this.setMaxChunks(e.maxChunks),null!=e.chunkSize&&this.setChunkSize(e.chunkSize),null!=e.chunkInterval&&this.setChunkInterval(e.chunkInterval),this._transactionIds=new List}static _fromProtobuf(e,t,r,n,o){var i;const a=o[0].fileAppend;let s;const c=n.length>0?n.length:1;for(let f=0;f1){const e=r[0].validStart,t=r[1].validStart;e&&t&&(d=t.nanos.sub(e.nanos).toNumber())}return Transaction._fromProtobufTransactions(new FileAppendTransaction({fileId:null!=a.fileID?FileId._fromProtobuf(a.fileID):void 0,contents:s,chunkSize:u,maxChunks:l,chunkInterval:d}),e,t,r,n,o)}get fileId(){return this._fileId}setFileId(e){return this._requireNotFrozen(),this._fileId="string"==typeof e?FileId.fromString(e):e.clone(),this}getRequiredChunks(){if(null==this._contents)return 1;return Math.ceil(this._contents.length/this._chunkSize)}get contents(){return this._contents}setContents(e){return this._requireNotFrozen(),this._contents=e instanceof Uint8Array?e:encode$3(e),this}get maxChunks(){return this._maxChunks}setMaxChunks(e){return this._requireNotFrozen(),this._maxChunks=e,this}get chunkSize(){return this._chunkSize}setChunkSize(e){return this._chunkSize=e,this}get chunkInterval(){return this._chunkInterval}setChunkInterval(e){return this._chunkInterval=e,this}freezeWith(e){if(super.freezeWith(e),null==this._contents)return this;let t=this._getTransactionId();this._transactionIds.locked=!1,this._transactions.clear(),this._transactionIds.clear(),this._signedTransactions.clear();for(let r=0;rthis._chunkSize)throw new Error(`cannot schedule \`FileAppendTransaction\` with message over ${this._chunkSize} bytes`);return super.schedule()}async execute(e,t){return(await this.executeAll(e,t))[0]}async executeAll(e,t){if(this.maxChunks&&this.getRequiredChunks()>this.maxChunks)throw new Error(`cannot execute \`FileAppendTransaction\` with more than ${this.maxChunks} chunks`);super._isFrozen()||this.freezeWith(e);const r=this._getTransactionId(),n=e.operatorAccountId;null!=n&&n.equals(r.accountId)&&await super.signWithOperator(e);const o=[];let i=t;for(let a=0;athis.maxChunks)throw new Error(`cannot build \`FileAppendTransaction\` with more than ${this.maxChunks} chunks`);this._transactionIds.locked=!1,this._transactions.clear(),this._transactionIds.clear(),this._signedTransactions.clear();for(let i=0;ithis.maxChunks)throw new Error(`cannot build \`FileAppendTransaction\` with more than ${this.maxChunks} chunks`);for(let e=0;ePromise.resolve(e.sign(t))))}signWith(e,t){const r=encode$9(e.toBytesRaw());return this._signerPublicKeys.has(r)||(this._publicKeys.push(e),this._transactionSigners.push(t)),this}async execute(e,t){if(null==this._bytecode)throw new Error("cannot create contract with no bytecode");const r=e.operatorPublicKey,n=(new FileCreateTransaction).setKeys(null!=r?[r]:[]).setContents(this._bytecode.subarray(0,Math.min(this._bytecode.length,2048))).freezeWith(e);await addSignersToTransaction(n,this._publicKeys,this._transactionSigners);let o=await n.execute(e,t);const i=(await o.getReceipt(e)).fileId;if(this._bytecode.length>2048){const r=(new FileAppendTransaction).setFileId(i).setContents(this._bytecode.subarray(2048)).freezeWith(e);await addSignersToTransaction(r,this._publicKeys,this._transactionSigners),await r.execute(e,t)}if(this._contractCreate.setBytecodeFileId(i).freezeWith(e),await addSignersToTransaction(this._contractCreate,this._publicKeys,this._transactionSigners),o=await this._contractCreate.execute(e,t),await o.getReceipt(e),null!=r){const r=(new FileDeleteTransaction).setFileId(i).freezeWith(e);await addSignersToTransaction(r,this._publicKeys,this._transactionSigners),await(await r.execute(e,t)).getReceipt(e)}return o}async executeWithSigner(e){if(null==this._bytecode)throw new Error("cannot create contract with no bytecode");if(null==e.getAccountKey)throw new Error("`Signer.getAccountKey()` is not implemented, but is required for `ContractCreateFlow`");const t=await e.getAccountKey();let r;if(t instanceof PublicKey)r=t;else{const e=Object.values(t._key._key._keyData),n=new Uint8Array(e);r=PublicKey.fromBytes(n)}const n=await(new FileCreateTransaction).setKeys(null!=r?[r]:[]).setContents(this._bytecode.subarray(0,Math.min(this._bytecode.length,2048))).freezeWithSigner(e);await n.signWithSigner(e),await addSignersToTransaction(n,this._publicKeys,this._transactionSigners);let o=await n.executeWithSigner(e);const i=(await o.getReceiptWithSigner(e)).fileId;if(this._bytecode.length>2048){let t=(new FileAppendTransaction).setFileId(i).setContents(this._bytecode.subarray(2048));null!=this._maxChunks&&t.setMaxChunks(this._maxChunks),t=await t.freezeWithSigner(e),await t.signWithSigner(e),await addSignersToTransaction(t,this._publicKeys,this._transactionSigners),await t.executeWithSigner(e)}if(this._contractCreate=await this._contractCreate.setBytecodeFileId(i).freezeWithSigner(e),this._contractCreate=await this._contractCreate.signWithSigner(e),await addSignersToTransaction(this._contractCreate,this._publicKeys,this._transactionSigners),o=await this._contractCreate.executeWithSigner(e),await o.getReceiptWithSigner(e),null!=t){const t=await(new FileDeleteTransaction).setFileId(i).freezeWithSigner(e);await t.signWithSigner(e),await addSignersToTransaction(t,this._publicKeys,this._transactionSigners),await(await t.executeWithSigner(e)).getReceiptWithSigner(e)}return o}}async function addSignersToTransaction(e,t,r){for(let n=0;nDelegateContractId.__fromProtobufKey(e)));class EthereumTransaction extends Transaction{constructor(e={}){super(),this._ethereumData=null,this._callDataFileId=null,this._maxGasAllowance=null,null!=e.ethereumData&&this.setEthereumData(e.ethereumData),null!=e.callData&&this.setCallDataFileId(e.callData),null!=e.callDataFileId&&this.setCallDataFileId(e.callDataFileId),null!=e.maxGasAllowance&&this.setMaxGasAllowanceHbar(e.maxGasAllowance)}static _fromProtobuf(e,t,r,n,o){const i=o[0].ethereumTransaction;return Transaction._fromProtobufTransactions(new EthereumTransaction({ethereumData:null!=i.ethereumData?i.ethereumData:void 0,callData:null!=i.callData?FileId._fromProtobuf(i.callData):void 0,maxGasAllowance:null!=i.maxGasAllowance?Hbar.fromTinybars(i.maxGasAllowance):void 0}),e,t,r,n,o)}get ethereumData(){return this._ethereumData}setEthereumData(e){return this._requireNotFrozen(),this._ethereumData=e,this}get callData(){return this.callDataFileId}setCallData(e){return this.setCallDataFileId(e)}get callDataFileId(){return this._callDataFileId}setCallDataFileId(e){return this._requireNotFrozen(),this._callDataFileId=e,this}get maxGasAllowance(){return this._maxGasAllowance}setMaxGasAllowance(e){return this.setMaxGasAllowanceHbar(e)}setMaxGasAllowanceHbar(e){return this._requireNotFrozen(),this._maxGasAllowance=e instanceof Hbar?e:new Hbar(e),this}_validateChecksums(e){null!=this._ethereumData&&this._ethereumData instanceof FileId&&this._ethereumData.validateChecksum(e)}_execute(e,t){return e.smartContract.callEthereum(t)}_getTransactionDataCase(){return"ethereumTransaction"}_makeTransactionData(){return{ethereumData:this._ethereumData,callData:null!=this._callDataFileId?this._callDataFileId._toProtobuf():null,maxGasAllowance:null!=this._maxGasAllowance?this._maxGasAllowance.toTinybars():null}}_getLogId(){return`EthereumTransaction:${this._transactionIds.current.validStart.toString()}`}}TRANSACTION_REGISTRY.set("ethereumTransaction",EthereumTransaction._fromProtobuf);class EthereumTransactionData{constructor(e){this.callData=e.callData}static fromBytes(e){if(0===e.length)throw new Error("empty bytes");switch(e[0]){case 1:return CACHE.ethereumTransactionDataEip2930FromBytes(e);case 2:return CACHE.ethereumTransactionDataEip1559FromBytes(e);default:return CACHE.ethereumTransactionDataLegacyFromBytes(e)}}toBytes(){throw new Error("not implemented")}toString(){throw new Error("not implemented")}toJSON(){throw new Error("not implemented")}}class EthereumTransactionDataLegacy extends EthereumTransactionData{constructor(e){super(e),this.nonce=e.nonce,this.gasPrice=e.gasPrice,this.gasLimit=e.gasLimit,this.to=e.to,this.value=e.value,this.v=e.v,this.r=e.r,this.s=e.s}static fromBytes(e){if(0===e.length)throw new Error("empty bytes");const t=decode$3(e);if(9!=t.length)throw new Error("invalid ethereum transaction data");return new EthereumTransactionDataLegacy({nonce:decode$a(t[0]),gasPrice:decode$a(t[1]),gasLimit:decode$a(t[2]),to:decode$a(t[3]),value:decode$a(t[4]),callData:decode$a(t[5]),v:decode$a(t[6]),r:decode$a(t[7]),s:decode$a(t[8])})}toBytes(){return decode$a(encode$2([this.nonce,this.gasPrice,this.gasLimit,this.to,this.value,this.callData,this.v,this.r,this.s]))}toString(){return JSON.stringify(this.toJSON(),null,2)}toJSON(){return{nonce:encode$9(this.nonce),gasPrice:encode$9(this.gasPrice),gasLimit:encode$9(this.gasLimit),to:encode$9(this.to),value:encode$9(this.value),callData:encode$9(this.callData),v:encode$9(this.v),r:encode$9(this.r),s:encode$9(this.s)}}}CACHE.setEthereumTransactionDataLegacyFromBytes((e=>EthereumTransactionDataLegacy.fromBytes(e)));class EthereumTransactionDataEip1559 extends EthereumTransactionData{constructor(e){super(e),this.chainId=e.chainId,this.nonce=e.nonce,this.maxPriorityGas=e.maxPriorityGas,this.maxGas=e.maxGas,this.gasLimit=e.gasLimit,this.to=e.to,this.value=e.value,this.accessList=e.accessList,this.recId=e.recId,this.r=e.r,this.s=e.s}static fromBytes(e){if(0===e.length)throw new Error("empty bytes");const t=decode$3(e.subarray(1));if(!Array.isArray(t))throw new Error("ethereum data is not a list");if(12!=t.length)throw new Error("invalid ethereum transaction data");return new EthereumTransactionDataEip1559({chainId:decode$a(t[0]),nonce:decode$a(t[1]),maxPriorityGas:decode$a(t[2]),maxGas:decode$a(t[3]),gasLimit:decode$a(t[4]),to:decode$a(t[5]),value:decode$a(t[6]),callData:decode$a(t[7]),accessList:t[8].map((e=>decode$a(e))),recId:decode$a(t[9]),r:decode$a(t[10]),s:decode$a(t[11])})}toBytes(){return decode$a("02"+encode$2([this.chainId,this.nonce,this.maxPriorityGas,this.maxGas,this.gasLimit,this.to,this.value,this.callData,this.accessList,this.recId,this.r,this.s]).substring(2))}toString(){return JSON.stringify(this.toJSON(),null,2)}toJSON(){return{chainId:encode$9(this.chainId),nonce:encode$9(this.nonce),maxPriorityGas:encode$9(this.maxPriorityGas),maxGas:encode$9(this.maxGas),gasLimit:encode$9(this.gasLimit),to:encode$9(this.to),value:encode$9(this.value),callData:encode$9(this.callData),accessList:this.accessList.map((e=>encode$9(e))),recId:encode$9(this.recId),r:encode$9(this.r),s:encode$9(this.s)}}}CACHE.setEthereumTransactionDataEip1559FromBytes((e=>EthereumTransactionDataEip1559.fromBytes(e)));class EthereumTransactionDataEip2930 extends EthereumTransactionData{constructor(e){super(e),this.chainId=e.chainId,this.nonce=e.nonce,this.gasPrice=e.gasPrice,this.gasLimit=e.gasLimit,this.to=e.to,this.value=e.value,this.accessList=e.accessList,this.recId=e.recId,this.r=e.r,this.s=e.s}static fromBytes(e){if(0===e.length)throw new Error("empty bytes");const t=decode$3(e.subarray(1));if(!Array.isArray(t))throw new Error("ethereum data is not a list");if(11!==t.length)throw new Error("invalid ethereum transaction data");return new EthereumTransactionDataEip2930({chainId:decode$a(t[0]),nonce:decode$a(t[1]),gasPrice:decode$a(t[2]),gasLimit:decode$a(t[3]),to:decode$a(t[4]),value:decode$a(t[5]),callData:decode$a(t[6]),accessList:t[7].map((e=>decode$a(e))),recId:decode$a(t[8]),r:decode$a(t[9]),s:decode$a(t[10])})}toBytes(){return decode$a("01"+encode$2([this.chainId,this.nonce,this.gasPrice,this.gasLimit,this.to,this.value,this.callData,this.accessList,this.recId,this.r,this.s]).substring(2))}toString(){return JSON.stringify(this.toJSON(),null,2)}toJSON(){return{chainId:encode$9(this.chainId),nonce:encode$9(this.nonce),gasPrice:encode$9(this.gasPrice),gasLimit:encode$9(this.gasLimit),to:encode$9(this.to),value:encode$9(this.value),callData:encode$9(this.callData),accessList:this.accessList.map((e=>encode$9(e))),recId:encode$9(this.recId),r:encode$9(this.r),s:encode$9(this.s)}}}CACHE.setEthereumTransactionDataEip2930FromBytes((e=>EthereumTransactionDataEip2930.fromBytes(e)));class EthereumFlow{constructor(e={}){this._ethereumData=null,this._callDataFileId=null,this._maxGasAllowance=null,null!=e.ethereumData&&this.setEthereumData(e.ethereumData),null!=e.maxGasAllowance&&this.setMaxGasAllowanceHbar(e.maxGasAllowance),this._maxChunks=null}get maxChunks(){return this._maxChunks}setMaxChunks(e){return this._maxChunks=e,this}get ethereumData(){return this._ethereumData}setEthereumData(e){return this._ethereumData=e instanceof Uint8Array?EthereumTransactionData.fromBytes(e):e,this}get maxGasAllowance(){return this._maxGasAllowance}setMaxGasAllowance(e){return this.setMaxGasAllowanceHbar(e)}setMaxGasAllowanceHbar(e){return this._maxGasAllowance=e instanceof Hbar?e:new Hbar(e),this}async execute(e){if(null==this._ethereumData)throw new Error("cannot submit ethereum transaction with no ethereum data");const t=new EthereumTransaction,r=this._ethereumData.toBytes();if(null!=this._maxGasAllowance&&t.setMaxGasAllowanceHbar(this._maxGasAllowance),null!=this._callDataFileId){if(0===this._ethereumData.callData.length)throw new Error("call data file ID provided, but ethereum data already contains call data");t.setEthereumData(r).setCallDataFileId(this._callDataFileId)}else if(r.length<=5120)t.setEthereumData(r);else{const r=await createFile(this._ethereumData.callData,e,this._maxChunks);this._ethereumData.callData=new Uint8Array,t.setEthereumData(this._ethereumData.toBytes()).setCallDataFileId(r)}return t.execute(e)}}async function createFile(e,t,r){const n=encode$9(e),o=(await(await(new FileCreateTransaction).setContents(n.substring(0,4096)).setKeys(t.operatorPublicKey?[t.operatorPublicKey]:[]).execute(t)).getReceipt(t)).fileId;if(e.length>4096){let e=(new FileAppendTransaction).setFileId(o).setContents(n.substring(4096,n.length));null!=r&&e.setMaxChunks(r),await(await e.execute(t)).getReceipt(t)}return o}const{proto:proto$4}=HashgraphProto;class ExchangeRates{constructor(e){this.currentRate=e.currentRate,this.nextRate=e.nextRate,Object.freeze(this)}static _fromProtobuf(e){return new ExchangeRates({currentRate:ExchangeRate._fromProtobuf(e.currentRate),nextRate:ExchangeRate._fromProtobuf(e.nextRate)})}_toProtobuf(){return{currentRate:this.currentRate._toProtobuf(),nextRate:this.nextRate._toProtobuf()}}static fromBytes(e){return ExchangeRates._fromProtobuf(proto$4.ExchangeRateSet.decode(e))}}class FeeComponents{constructor(e={}){this.min=e.min,this.max=e.max,this.constant=e.constant,this.transactionBandwidthByte=e.transactionBandwidthByte,this.transactionVerification=e.transactionVerification,this.transactionRamByteHour=e.transactionRamByteHour,this.transactionStorageByteHour=e.transactionStorageByteHour,this.contractTransactionGas=e.contractTransactionGas,this.transferVolumeHbar=e.transferVolumeHbar,this.responseMemoryByte=e.responseMemoryByte,this.responseDiskByte=e.responseDiskByte}static fromBytes(e){return FeeComponents._fromProtobuf(proto_1.FeeComponents.decode(e))}static _fromProtobuf(e){return new FeeComponents({min:null!=e.min?e.min:void 0,max:null!=e.max?e.max:void 0,constant:null!=e.constant?e.constant:void 0,transactionBandwidthByte:null!=e.bpt?e.bpt:void 0,transactionVerification:null!=e.vpt?e.vpt:void 0,transactionRamByteHour:null!=e.rbh?e.rbh:void 0,transactionStorageByteHour:null!=e.sbh?e.sbh:void 0,contractTransactionGas:null!=e.gas?e.gas:void 0,transferVolumeHbar:null!=e.tv?e.tv:void 0,responseMemoryByte:null!=e.bpr?e.bpr:void 0,responseDiskByte:null!=e.sbpr?e.sbpr:void 0})}_toProtobuf(){return{min:null!=this.min?this.min:void 0,max:null!=this.max?this.max:void 0,constant:null!=this.constant?this.constant:void 0,bpt:null!=this.transactionBandwidthByte?this.transactionBandwidthByte:void 0,vpt:null!=this.transactionVerification?this.transactionVerification:void 0,rbh:null!=this.transactionRamByteHour?this.transactionRamByteHour:void 0,sbh:null!=this.transactionStorageByteHour?this.transactionStorageByteHour:void 0,gas:null!=this.contractTransactionGas?this.contractTransactionGas:void 0,tv:null!=this.transferVolumeHbar?this.transferVolumeHbar:void 0,bpr:null!=this.responseMemoryByte?this.responseMemoryByte:void 0,sbpr:null!=this.responseDiskByte?this.responseDiskByte:void 0}}toBytes(){return proto_1.FeeComponents.encode(this._toProtobuf()).finish()}}class FeeDataType{constructor(e){this._code=e,Object.freeze(this)}toString(){switch(this){case FeeDataType.Default:return"DEFAULT";case FeeDataType.TokenFungibleCommon:return"TOKEN_FUNGIBLE_COMMON";case FeeDataType.TokenNonFungibleUnique:return"TOKEN_NON_FUNGIBLE_UNIQUE";case FeeDataType.TokenFungibleCommonWithCustomFees:return"TOKEN_FUNGIBLE_COMMON_WITH_CUSTOM_FEES";case FeeDataType.TokenNonFungibleUniqueWithCustomFees:return"TOKEN_NON_FUNGIBLE_UNIQUE_WITH_CUSTOM_FEES";case FeeDataType.ScheduleCreateContractCall:return"SCHEDULE_CREATE_CONTRACT_CALL";default:return`UNKNOWN (${this._code})`}}static _fromCode(e){switch(e){case 0:return FeeDataType.Default;case 1:return FeeDataType.TokenFungibleCommon;case 2:return FeeDataType.TokenNonFungibleUnique;case 3:return FeeDataType.TokenFungibleCommonWithCustomFees;case 4:return FeeDataType.TokenNonFungibleUniqueWithCustomFees;case 5:return FeeDataType.ScheduleCreateContractCall}throw new Error(`(BUG) SubType.fromCode() does not handle code: ${e}`)}valueOf(){return this._code}}FeeDataType.Default=new FeeDataType(0),FeeDataType.TokenFungibleCommon=new FeeDataType(1),FeeDataType.TokenNonFungibleUnique=new FeeDataType(2),FeeDataType.TokenFungibleCommonWithCustomFees=new FeeDataType(3),FeeDataType.TokenNonFungibleUniqueWithCustomFees=new FeeDataType(4),FeeDataType.ScheduleCreateContractCall=new FeeDataType(5);class FeeData{constructor(e={}){this.nodedata=e.nodedata,this.networkdata=e.networkdata,this.servicedata=e.servicedata,this.feeDataType=e.feeDataType}static fromBytes(e){return FeeData._fromProtobuf(proto_1.FeeData.decode(e))}static _fromProtobuf(e){return new FeeData({nodedata:null!=e.nodedata?FeeComponents._fromProtobuf(e.nodedata):void 0,networkdata:null!=e.networkdata?FeeComponents._fromProtobuf(e.networkdata):void 0,servicedata:null!=e.servicedata?FeeComponents._fromProtobuf(e.servicedata):void 0,feeDataType:null!=e.subType?FeeDataType._fromCode(e.subType):void 0})}_toProtobuf(){return{nodedata:null!=this.nodedata?this.nodedata._toProtobuf():void 0,networkdata:null!=this.networkdata?this.networkdata._toProtobuf():void 0,servicedata:null!=this.servicedata?this.servicedata._toProtobuf():void 0,subType:null!=this.feeDataType?this.feeDataType.valueOf():void 0}}toBytes(){return proto_1.FeeData.encode(this._toProtobuf()).finish()}}class RequestType{constructor(e){this._code=e,Object.freeze(this)}toString(){switch(this){case RequestType.None:return"NONE";case RequestType.CryptoTransfer:return"CryptoTransfer";case RequestType.CryptoUpdate:return"CryptoUpdate";case RequestType.CryptoDelete:return"CryptoDelete";case RequestType.CryptoAddLiveHash:return"CryptoAddLiveHash";case RequestType.CryptoDeleteLiveHash:return"CryptoDeleteLiveHash";case RequestType.ContractCall:return"ContractCall";case RequestType.ContractCreate:return"ContractCreate";case RequestType.ContractUpdate:return"ContractUpdate";case RequestType.FileCreate:return"FileCreate";case RequestType.FileAppend:return"FileAppend";case RequestType.FileUpdate:return"FileUpdate";case RequestType.FileDelete:return"FileDelete";case RequestType.CryptoGetAccountBalance:return"CryptoGetAccountBalance";case RequestType.CryptoGetAccountRecords:return"CryptoGetAccountRecords";case RequestType.CryptoGetInfo:return"CryptoGetInfo";case RequestType.ContractCallLocal:return"ContractCallLocal";case RequestType.ContractGetInfo:return"ContractGetInfo";case RequestType.ContractGetBytecode:return"ContractGetBytecode";case RequestType.GetBySolidityID:return"GetBySolidityID";case RequestType.GetByKey:return"GetByKey";case RequestType.CryptoGetLiveHash:return"CryptoGetLiveHash";case RequestType.CryptoGetStakers:return"CryptoGetStakers";case RequestType.FileGetContents:return"FileGetContents";case RequestType.FileGetInfo:return"FileGetInfo";case RequestType.TransactionGetRecord:return"TransactionGetRecord";case RequestType.ContractGetRecords:return"ContractGetRecords";case RequestType.CryptoCreate:return"CryptoCreate";case RequestType.SystemDelete:return"SystemDelete";case RequestType.SystemUndelete:return"SystemUndelete";case RequestType.ContractDelete:return"ContractDelete";case RequestType.Freeze:return"Freeze";case RequestType.CreateTransactionRecord:return"CreateTransactionRecord";case RequestType.CryptoAccountAutoRenew:return"CryptoAccountAutoRenew";case RequestType.ContractAutoRenew:return"ContractAutoRenew";case RequestType.GetVersionInfo:return"GetVersionInfo";case RequestType.TransactionGetReceipt:return"TransactionGetReceipt";case RequestType.ConsensusCreateTopic:return"ConsensusCreateTopic";case RequestType.ConsensusUpdateTopic:return"ConsensusUpdateTopic";case RequestType.ConsensusDeleteTopic:return"ConsensusDeleteTopic";case RequestType.ConsensusGetTopicInfo:return"ConsensusGetTopicInfo";case RequestType.ConsensusSubmitMessage:return"ConsensusSubmitMessage";case RequestType.UncheckedSubmit:return"UncheckedSubmit";case RequestType.TokenCreate:return"TokenCreate";case RequestType.TokenGetInfo:return"TokenGetInfo";case RequestType.TokenFreezeAccount:return"TokenFreezeAccount";case RequestType.TokenUnfreezeAccount:return"TokenUnfreezeAccount";case RequestType.TokenGrantKycToAccount:return"TokenGrantKycToAccount";case RequestType.TokenRevokeKycFromAccount:return"TokenRevokeKycFromAccount";case RequestType.TokenDelete:return"TokenDelete";case RequestType.TokenUpdate:return"TokenUpdate";case RequestType.TokenMint:return"TokenMint";case RequestType.TokenBurn:return"TokenBurn";case RequestType.TokenAccountWipe:return"TokenAccountWipe";case RequestType.TokenAssociateToAccount:return"TokenAssociateToAccount";case RequestType.TokenDissociateFromAccount:return"TokenDissociateFromAccount";case RequestType.ScheduleCreate:return"ScheduleCreate";case RequestType.ScheduleDelete:return"ScheduleDelete";case RequestType.ScheduleSign:return"ScheduleSign";case RequestType.ScheduleGetInfo:return"ScheduleGetInfo";case RequestType.TokenGetAccountNftInfos:return"TokenGetAccountNftInfos";case RequestType.TokenGetNftInfo:return"TokenGetNftInfo";case RequestType.TokenGetNftInfos:return"TokenGetNftInfos";case RequestType.TokenFeeScheduleUpdate:return"TokenFeeScheduleUpdate";case RequestType.NetworkGetExecutionTime:return"NetworkGetExecutionTime";case RequestType.TokenPause:return"TokenPause";case RequestType.TokenUnpause:return"TokenUnpause";case RequestType.CryptoApproveAllowance:return"CryptoApproveAllowance";case RequestType.CryptoDeleteAllowance:return"CryptoDeleteAllowance";case RequestType.GetAccountDetails:return"GetAccountDetails";case RequestType.EthereumTransaction:return"EthereumTransaction";case RequestType.NodeStakeUpdate:return"NodeStakeUpdate";case RequestType.Prng:return"UtilPrng";case RequestType.TransactionGetFastRecord:return"TransactionGetFastRecord";case RequestType.TokenUpdateNfts:return"TokenUpdateNfts";case RequestType.NodeCreate:return"NodeCreate";case RequestType.NodeUpdate:return"NodeUpdate";case RequestType.NodeDelete:return"NodeDelete";case RequestType.TokenReject:return"TokenReject";case RequestType.TokenAirdrop:return"TokenAirdrop";case RequestType.TokenCancelAirdrop:return"TokenCancelAirdrop";case RequestType.TokenClaimAirdrop:return"TokenClaimAirdrop";case RequestType.TssMessage:return"TssMessage";case RequestType.TssVote:return"TssVote";case RequestType.TssShareSignature:return"TssShareSignature";case RequestType.TssEncryptionKey:return"TssEncryptionKey";case RequestType.StateSignatureTransaction:return"StateSignatureTransaction";default:return`UNKNOWN (${this._code})`}}static _fromCode(e){switch(e){case 0:return RequestType.None;case 1:return RequestType.CryptoTransfer;case 2:return RequestType.CryptoUpdate;case 3:return RequestType.CryptoDelete;case 4:return RequestType.CryptoAddLiveHash;case 5:return RequestType.CryptoDeleteLiveHash;case 6:return RequestType.ContractCall;case 7:return RequestType.ContractCreate;case 8:return RequestType.ContractUpdate;case 9:return RequestType.FileCreate;case 10:return RequestType.FileAppend;case 11:return RequestType.FileUpdate;case 12:return RequestType.FileDelete;case 13:return RequestType.CryptoGetAccountBalance;case 14:return RequestType.CryptoGetAccountRecords;case 15:return RequestType.CryptoGetInfo;case 16:return RequestType.ContractCallLocal;case 17:return RequestType.ContractGetInfo;case 18:return RequestType.ContractGetBytecode;case 19:return RequestType.GetBySolidityID;case 20:return RequestType.GetByKey;case 21:return RequestType.CryptoGetLiveHash;case 22:return RequestType.CryptoGetStakers;case 23:return RequestType.FileGetContents;case 24:return RequestType.FileGetInfo;case 25:return RequestType.TransactionGetRecord;case 26:return RequestType.ContractGetRecords;case 27:return RequestType.CryptoCreate;case 28:return RequestType.SystemDelete;case 29:return RequestType.SystemUndelete;case 30:return RequestType.ContractDelete;case 31:return RequestType.Freeze;case 32:return RequestType.CreateTransactionRecord;case 33:return RequestType.CryptoAccountAutoRenew;case 34:return RequestType.ContractAutoRenew;case 35:return RequestType.GetVersionInfo;case 36:return RequestType.TransactionGetReceipt;case 50:return RequestType.ConsensusCreateTopic;case 51:return RequestType.ConsensusUpdateTopic;case 52:return RequestType.ConsensusDeleteTopic;case 53:return RequestType.ConsensusGetTopicInfo;case 54:return RequestType.ConsensusSubmitMessage;case 55:return RequestType.UncheckedSubmit;case 56:return RequestType.TokenCreate;case 58:return RequestType.TokenGetInfo;case 59:return RequestType.TokenFreezeAccount;case 60:return RequestType.TokenUnfreezeAccount;case 61:return RequestType.TokenGrantKycToAccount;case 62:return RequestType.TokenRevokeKycFromAccount;case 63:return RequestType.TokenDelete;case 64:return RequestType.TokenUpdate;case 65:return RequestType.TokenMint;case 66:return RequestType.TokenBurn;case 67:return RequestType.TokenAccountWipe;case 68:return RequestType.TokenAssociateToAccount;case 69:return RequestType.TokenDissociateFromAccount;case 70:return RequestType.ScheduleCreate;case 71:return RequestType.ScheduleDelete;case 72:return RequestType.ScheduleSign;case 73:return RequestType.ScheduleGetInfo;case 74:return RequestType.TokenGetAccountNftInfos;case 75:return RequestType.TokenGetNftInfo;case 76:return RequestType.TokenGetNftInfos;case 77:return RequestType.TokenFeeScheduleUpdate;case 78:return RequestType.NetworkGetExecutionTime;case 79:return RequestType.TokenPause;case 80:return RequestType.TokenUnpause;case 81:return RequestType.CryptoApproveAllowance;case 82:return RequestType.CryptoDeleteAllowance;case 83:return RequestType.GetAccountDetails;case 84:return RequestType.EthereumTransaction;case 85:return RequestType.NodeStakeUpdate;case 86:return RequestType.Prng;case 87:return RequestType.TransactionGetFastRecord;case 88:return RequestType.TokenUpdateNfts;case 89:return RequestType.NodeCreate;case 90:return RequestType.NodeUpdate;case 91:return RequestType.NodeDelete;case 92:return RequestType.TokenReject;case 93:return RequestType.TokenAirdrop;case 94:return RequestType.TokenCancelAirdrop;case 95:return RequestType.TokenClaimAirdrop;case 96:return RequestType.TssMessage;case 97:return RequestType.TssVote;case 98:return RequestType.TssShareSignature;case 99:return RequestType.TssEncryptionKey;case 100:return RequestType.StateSignatureTransaction}throw new Error(`(BUG) RequestType.fromCode() does not handle code: ${e}`)}valueOf(){return this._code}}RequestType.None=new RequestType(0),RequestType.CryptoTransfer=new RequestType(1),RequestType.CryptoUpdate=new RequestType(2),RequestType.CryptoDelete=new RequestType(3),RequestType.CryptoAddLiveHash=new RequestType(4),RequestType.CryptoDeleteLiveHash=new RequestType(5),RequestType.ContractCall=new RequestType(6),RequestType.ContractCreate=new RequestType(7),RequestType.ContractUpdate=new RequestType(8),RequestType.FileCreate=new RequestType(9),RequestType.FileAppend=new RequestType(10),RequestType.FileUpdate=new RequestType(11),RequestType.FileDelete=new RequestType(12),RequestType.CryptoGetAccountBalance=new RequestType(13),RequestType.CryptoGetAccountRecords=new RequestType(14),RequestType.CryptoGetInfo=new RequestType(15),RequestType.ContractCallLocal=new RequestType(16),RequestType.ContractGetInfo=new RequestType(17),RequestType.ContractGetBytecode=new RequestType(18),RequestType.GetBySolidityID=new RequestType(19),RequestType.GetByKey=new RequestType(20),RequestType.CryptoGetLiveHash=new RequestType(21),RequestType.CryptoGetStakers=new RequestType(22),RequestType.FileGetContents=new RequestType(23),RequestType.FileGetInfo=new RequestType(24),RequestType.TransactionGetRecord=new RequestType(25),RequestType.ContractGetRecords=new RequestType(26),RequestType.CryptoCreate=new RequestType(27),RequestType.SystemDelete=new RequestType(28),RequestType.SystemUndelete=new RequestType(29),RequestType.ContractDelete=new RequestType(30),RequestType.Freeze=new RequestType(31),RequestType.CreateTransactionRecord=new RequestType(32),RequestType.CryptoAccountAutoRenew=new RequestType(33),RequestType.ContractAutoRenew=new RequestType(34),RequestType.GetVersionInfo=new RequestType(35),RequestType.TransactionGetReceipt=new RequestType(36),RequestType.ConsensusCreateTopic=new RequestType(50),RequestType.ConsensusUpdateTopic=new RequestType(51),RequestType.ConsensusDeleteTopic=new RequestType(52),RequestType.ConsensusGetTopicInfo=new RequestType(53),RequestType.ConsensusSubmitMessage=new RequestType(54),RequestType.UncheckedSubmit=new RequestType(55),RequestType.TokenCreate=new RequestType(56),RequestType.TokenGetInfo=new RequestType(58),RequestType.TokenFreezeAccount=new RequestType(59),RequestType.TokenUnfreezeAccount=new RequestType(60),RequestType.TokenGrantKycToAccount=new RequestType(61),RequestType.TokenRevokeKycFromAccount=new RequestType(62),RequestType.TokenDelete=new RequestType(63),RequestType.TokenUpdate=new RequestType(64),RequestType.TokenMint=new RequestType(65),RequestType.TokenBurn=new RequestType(66),RequestType.TokenAccountWipe=new RequestType(67),RequestType.TokenAssociateToAccount=new RequestType(68),RequestType.TokenDissociateFromAccount=new RequestType(69),RequestType.ScheduleCreate=new RequestType(70),RequestType.ScheduleDelete=new RequestType(71),RequestType.ScheduleSign=new RequestType(72),RequestType.ScheduleGetInfo=new RequestType(73),RequestType.TokenGetAccountNftInfos=new RequestType(74),RequestType.TokenGetNftInfo=new RequestType(75),RequestType.TokenGetNftInfos=new RequestType(76),RequestType.TokenFeeScheduleUpdate=new RequestType(77),RequestType.NetworkGetExecutionTime=new RequestType(78),RequestType.TokenPause=new RequestType(79),RequestType.TokenUnpause=new RequestType(80),RequestType.CryptoApproveAllowance=new RequestType(81),RequestType.CryptoDeleteAllowance=new RequestType(82),RequestType.GetAccountDetails=new RequestType(83),RequestType.EthereumTransaction=new RequestType(84),RequestType.NodeStakeUpdate=new RequestType(85),RequestType.Prng=new RequestType(86),RequestType.TransactionGetFastRecord=new RequestType(87),RequestType.TokenUpdateNfts=new RequestType(88),RequestType.NodeCreate=new RequestType(89),RequestType.NodeUpdate=new RequestType(90),RequestType.NodeDelete=new RequestType(91),RequestType.TokenReject=new RequestType(92),RequestType.TokenAirdrop=new RequestType(93),RequestType.TokenCancelAirdrop=new RequestType(94),RequestType.TokenClaimAirdrop=new RequestType(95),RequestType.TssMessage=new RequestType(96),RequestType.TssVote=new RequestType(97),RequestType.TssShareSignature=new RequestType(98),RequestType.TssEncryptionKey=new RequestType(99),RequestType.StateSignatureTransaction=new RequestType(100);class TransactionFeeSchedule{constructor(e={}){this.hederaFunctionality=e.hederaFunctionality,this.feeData=e.feeData,this.fees=e.fees}static fromBytes(e){return TransactionFeeSchedule._fromProtobuf(proto_1.TransactionFeeSchedule.decode(e))}static _fromProtobuf(e){return new TransactionFeeSchedule({hederaFunctionality:null!=e.hederaFunctionality?RequestType._fromCode(e.hederaFunctionality):void 0,feeData:null!=e.feeData?FeeData._fromProtobuf(e.feeData):void 0,fees:null!=e.fees?e.fees.map((e=>FeeData._fromProtobuf(e))):void 0})}_toProtobuf(){return{hederaFunctionality:null!=this.hederaFunctionality?this.hederaFunctionality.valueOf():void 0,feeData:null!=this.feeData?this.feeData._toProtobuf():void 0,fees:null!=this.fees?this.fees.map((e=>e._toProtobuf())):void 0}}toBytes(){return proto_1.TransactionFeeSchedule.encode(this._toProtobuf()).finish()}}class FeeSchedule{constructor(e={}){this.transactionFeeSchedule=e.transactionFeeSchedule,this.expirationTime=e.expirationTime}static fromBytes(e){return FeeSchedule._fromProtobuf(proto_1.FeeSchedule.decode(e))}static _fromProtobuf(e){return new FeeSchedule({transactionFeeSchedule:null!=e.transactionFeeSchedule?e.transactionFeeSchedule.map((e=>TransactionFeeSchedule._fromProtobuf(e))):void 0,expirationTime:null!=e.expiryTime?Timestamp._fromProtobuf(e.expiryTime):void 0})}_toProtobuf(){return{transactionFeeSchedule:null!=this.transactionFeeSchedule?this.transactionFeeSchedule.map((e=>e._toProtobuf())):void 0,expiryTime:null!=this.expirationTime?this.expirationTime._toProtobuf():void 0}}toBytes(){return proto_1.FeeSchedule.encode(this._toProtobuf()).finish()}}class FeeSchedules{constructor(e={}){this.current=e.currentFeeSchedule,this.next=e.nextFeeSchedule}static fromBytes(e){return FeeSchedules._fromProtobuf(proto_1.CurrentAndNextFeeSchedule.decode(e))}static _fromProtobuf(e){return new FeeSchedules({currentFeeSchedule:null!=e.currentFeeSchedule?FeeSchedule._fromProtobuf(e.currentFeeSchedule):void 0,nextFeeSchedule:null!=e.nextFeeSchedule?FeeSchedule._fromProtobuf(e.nextFeeSchedule):void 0})}_toProtobuf(){return{currentFeeSchedule:null!=this.current?this.current._toProtobuf():void 0,nextFeeSchedule:null!=this.next?this.next._toProtobuf():void 0}}toBytes(){return proto_1.CurrentAndNextFeeSchedule.encode(this._toProtobuf()).finish()}}class FileContentsQuery extends Query{constructor(e={}){super(),this._fileId=null,null!=e.fileId&&this.setFileId(e.fileId)}static _fromProtobuf(e){const t=e.fileGetContents;return new FileContentsQuery({fileId:null!=t.fileID?FileId._fromProtobuf(t.fileID):void 0})}_validateChecksums(e){null!=this._fileId&&this._fileId.validateChecksum(e)}_execute(e,t){return e.file.getFileContent(t)}get fileId(){return this._fileId}setFileId(e){return this._fileId="string"==typeof e?FileId.fromString(e):e.clone(),this}_mapResponseHeader(e){return e.fileGetContents.header}_mapResponse(e){const t=e.fileGetContents.fileContents.contents;return Promise.resolve(t)}_onMakeRequest(e){return{fileGetContents:{header:e,fileID:null!=this._fileId?this._fileId._toProtobuf():null}}}_getLogId(){return`FileContentsQuery:${(null!=this._paymentTransactionId&&null!=this._paymentTransactionId.validStart?this._paymentTransactionId.validStart:this._timestamp).toString()}`}}QUERY_REGISTRY.set("fileGetContents",FileContentsQuery._fromProtobuf);const{proto:proto$3}=HashgraphProto;class FileInfo{constructor(e){this.fileId=e.fileId,this.size=e.size,this.expirationTime=e.expirationTime,this.isDeleted=e.isDeleted,this.keys=e.keys,this.fileMemo=e.fileMemo,this.ledgerId=e.ledgerId,Object.freeze(this)}static _fromProtobuf(e){const t=e.size;return new FileInfo({fileId:FileId._fromProtobuf(e.fileID),size:t instanceof Long$1?t:Long$1.fromValue(t),expirationTime:Timestamp._fromProtobuf(e.expirationTime),isDeleted:e.deleted,keys:null!=e.keys?KeyList.__fromProtobufKeyList(e.keys):new KeyList,fileMemo:null!=e.memo?e.memo:"",ledgerId:null!=e.ledgerId?LedgerId.fromBytes(e.ledgerId):null})}_toProtobuf(){return{fileID:this.fileId._toProtobuf(),size:this.size,expirationTime:this.expirationTime._toProtobuf(),deleted:this.isDeleted,keys:this.keys._toProtobufKey().keyList,memo:this.fileMemo,ledgerId:null!=this.ledgerId?this.ledgerId.toBytes():null}}static fromBytes(e){return FileInfo._fromProtobuf(proto_1.FileGetInfoResponse.FileInfo.decode(e))}toBytes(){return proto$3.FileGetInfoResponse.FileInfo.encode(this._toProtobuf()).finish()}}class FileInfoQuery extends Query{constructor(e={}){super(),this._fileId=null,null!=e.fileId&&this.setFileId(e.fileId)}static _fromProtobuf(e){const t=e.fileGetInfo;return new FileInfoQuery({fileId:null!=t.fileID?FileId._fromProtobuf(t.fileID):void 0})}get fileId(){return this._fileId}setFileId(e){return this._fileId="string"==typeof e?FileId.fromString(e):e.clone(),this}async getCost(e){return super.getCost(e)}_validateChecksums(e){null!=this._fileId&&this._fileId.validateChecksum(e)}_execute(e,t){return e.file.getFileInfo(t)}_mapResponseHeader(e){return e.fileGetInfo.header}_mapResponse(e,t,r){const n=e.fileGetInfo;return Promise.resolve(FileInfo._fromProtobuf(n.fileInfo))}_onMakeRequest(e){return{fileGetInfo:{header:e,fileID:null!=this._fileId?this._fileId._toProtobuf():null}}}_getLogId(){return`FileInfoQuery:${(null!=this._paymentTransactionId&&null!=this._paymentTransactionId.validStart?this._paymentTransactionId.validStart:this._timestamp).toString()}`}}QUERY_REGISTRY.set("fileGetInfo",FileInfoQuery._fromProtobuf);class FileUpdateTransaction extends Transaction{constructor(e={}){super(),this._fileId=null,this._keys=null,this._expirationTime=null,this._contents=null,this._fileMemo=null,null!=e.fileId&&this.setFileId(e.fileId),null!=e.keys&&this.setKeys(e.keys),null!=e.expirationTime&&this.setExpirationTime(e.expirationTime),null!=e.contents&&this.setContents(e.contents),e.fileMemo&&null!=e.fileMemo&&this.setFileMemo(e.fileMemo)}static _fromProtobuf(e,t,r,n,o){const i=o[0].fileUpdate;return Transaction._fromProtobufTransactions(new FileUpdateTransaction({fileId:null!=i.fileID?FileId._fromProtobuf(i.fileID):void 0,keys:null!=i.keys&&null!=i.keys.keys?i.keys.keys.map((e=>Key._fromProtobufKey(e))):void 0,expirationTime:null!=i.expirationTime?Timestamp._fromProtobuf(i.expirationTime):void 0,contents:null!=i.contents?i.contents:void 0,fileMemo:null!=i.memo&&Object.hasOwn(i.memo,"value")?i.memo.value:void 0}),e,t,r,n,o)}get fileId(){return this._fileId}setFileId(e){return this._requireNotFrozen(),this._fileId="string"==typeof e?FileId.fromString(e):e.clone(),this}get keys(){return this._keys}setKeys(e){if(this._requireNotFrozen(),e instanceof KeyList&&null!=e.threshold)throw new Error("Cannot set threshold key as file key");return this._keys=e instanceof KeyList?e.toArray():e,this}get expirationTime(){return this._expirationTime}setExpirationTime(e){return this._requireNotFrozen(),this._expirationTime=e instanceof Timestamp?e:Timestamp.fromDate(e),this}get contents(){return this._contents}setContents(e){return this._requireNotFrozen(),this._contents=e instanceof Uint8Array?e:encode$3(e),this}get fileMemo(){return this._fileMemo}setFileMemo(e){return this._requireNotFrozen(),this._fileMemo=e,this}clearFileMemo(){return this._requireNotFrozen(),this._fileMemo=null,this}_validateChecksums(e){null!=this._fileId&&this._fileId.validateChecksum(e)}_execute(e,t){return e.file.updateFile(t)}_getTransactionDataCase(){return"fileUpdate"}_makeTransactionData(){return{fileID:null!=this._fileId?this._fileId._toProtobuf():null,keys:null!=this._keys?{keys:this._keys.map((e=>e._toProtobufKey()))}:null,expirationTime:null!=this._expirationTime?this._expirationTime._toProtobuf():null,contents:this._contents,memo:null!=this._fileMemo?{value:this._fileMemo}:null}}_getLogId(){return`FileUpdateTransaction:${this._transactionIds.current.validStart.toString()}`}}TRANSACTION_REGISTRY.set("fileUpdate",FileUpdateTransaction._fromProtobuf);class FreezeType{constructor(e){this._code=e,Object.freeze(this)}toString(){switch(this){case FreezeType.UnknownFreezeType:return"UNKNOWN_FREEZE_TYPE";case FreezeType.FreezeOnly:return"FREEZE_ONLY";case FreezeType.PrepareUpgrade:return"PREPARE_UPGRADE";case FreezeType.FreezeUpgrade:return"FREEZE_UPGRADE";case FreezeType.FreezeAbort:return"FREEZE_ABORT";case FreezeType.TelemetryUpgrade:return"TELEMETRY_UPGRADE";default:return`UNKNOWN (${this._code})`}}static _fromCode(e){switch(e){case 0:return FreezeType.UnknownFreezeType;case 1:return FreezeType.FreezeOnly;case 2:return FreezeType.PrepareUpgrade;case 3:return FreezeType.FreezeUpgrade;case 4:return FreezeType.FreezeAbort;case 5:return FreezeType.TelemetryUpgrade;default:throw new Error(`(BUG) Status.fromCode() does not handle code: ${e}`)}}valueOf(){return this._code}}FreezeType.UnknownFreezeType=new FreezeType(0),FreezeType.FreezeOnly=new FreezeType(1),FreezeType.PrepareUpgrade=new FreezeType(2),FreezeType.FreezeUpgrade=new FreezeType(3),FreezeType.FreezeAbort=new FreezeType(4),FreezeType.TelemetryUpgrade=new FreezeType(5);class FreezeTransaction extends Transaction{constructor(e={}){super(),this._startTime=null,this._startTimestamp=null,this._endTime=null,this._fileId=null,this._fileHash=null,this._freezeType=null,null!=e.startTime&&this.setStartTime(e.startTime.hour,e.startTime.minute),null!=e.endTime&&this.setEndTime(e.endTime.hour,e.endTime.minute),null!=e.startTimestamp&&this.setStartTimestamp(e.startTimestamp),null!=e.updateFileId&&this.setUpdateFileId(e.updateFileId),null!=e.fileId&&this.setFileId(e.fileId),null!=e.fileHash&&this.setFileHash(e.fileHash),null!=e.freezeType&&this.setFreezeType(e.freezeType)}static _fromProtobuf(e,t,r,n,o){const i=o[0].freeze;return Transaction._fromProtobufTransactions(new FreezeTransaction({startTime:null!=i.startHour&&null!=i.startMin?{hour:i.startHour,minute:i.startMin}:void 0,endTime:null!=i.endHour&&null!=i.endMin?{hour:i.endHour,minute:i.endMin}:void 0,startTimestamp:null!=i.startTime?Timestamp._fromProtobuf(i.startTime):void 0,updateFileId:null!=i.updateFile?FileId._fromProtobuf(i.updateFile):void 0,fileHash:null!=i.fileHash?i.fileHash:void 0,freezeType:null!=i.freezeType?FreezeType._fromCode(i.freezeType):void 0}),e,t,r,n,o)}get startTime(){return null}setStartTime(e,t){if(this._requireNotFrozen(),"string"==typeof e){const t=e.split(":");this._startTime={hour:Number(t[0]),minute:Number(t[1])}}else this._startTime={hour:e,minute:t};return this}get startTimestamp(){return this._startTimestamp}setStartTimestamp(e){return this._requireNotFrozen(),this._startTimestamp=e,this}get endTime(){return console.warn("`FreezeTransaction.endTime` is deprecated"),this._endTime}setEndTime(e,t){if(console.warn("`FreezeTransaction.endTime` is deprecated"),this._requireNotFrozen(),"string"==typeof e){const t=e.split(":");this._endTime={hour:Number(t[0]),minute:Number(t[1])}}else this._endTime={hour:e,minute:t};return this}get updateFileId(){return this.fileId}setUpdateFileId(e){return this.setFileId(e)}get fileId(){return this._fileId}setFileId(e){return this._requireNotFrozen(),this._fileId=e,this}get fileHash(){return this._fileHash}setFileHash(e){return this._requireNotFrozen(),this._fileHash="string"==typeof e?decode$a(e):e,this}get freezeType(){return this._freezeType}setFreezeType(e){return this._requireNotFrozen(),this._freezeType=e,this}_getTransactionDataCase(){return"freeze"}_makeTransactionData(){return{startTime:null!=this._startTimestamp?this._startTimestamp._toProtobuf():null,updateFile:null!=this._fileId?this._fileId._toProtobuf():null,fileHash:this._fileHash,freezeType:null!=this._freezeType?this._freezeType.valueOf():null}}_getLogId(){return`FreezeTransaction:${this._transactionIds.current.validStart.toString()}`}_execute(e,t){return e.freeze.freeze(t)}}TRANSACTION_REGISTRY.set("freeze",FreezeTransaction._fromProtobuf);class LiveHashAddTransaction extends Transaction{constructor(e={}){super(),this._hash=null,this._keys=null,this._duration=null,this._accountId=null,null!=e.hash&&this.setHash(e.hash),null!=e.keys&&this.setKeys(e.keys),null!=e.duration&&this.setDuration(e.duration),null!=e.accountId&&this.setAccountId(e.accountId)}static _fromProtobuf(e,t,r,n,o){const i=o[0].cryptoAddLiveHash.liveHash;return Transaction._fromProtobufTransactions(new LiveHashAddTransaction({hash:null!=i.hash?i.hash:void 0,keys:null!=i.keys&&null!=i.keys.keys?i.keys.keys.map((e=>Key._fromProtobufKey(e))):void 0,duration:null!=i.duration&&null!=i.duration.seconds?i.duration.seconds:void 0,accountId:null!=i.accountId?AccountId._fromProtobuf(i.accountId):void 0}),e,t,r,n,o)}get hash(){return this._hash}setHash(e){return this._requireNotFrozen(),this._hash=e,this}get keys(){return this._keys}setKeys(e){return this._requireNotFrozen(),this._keys=e instanceof KeyList?e.toArray():e,this}get duration(){return this._duration}setDuration(e){return this._requireNotFrozen(),this._duration=e instanceof Duration?e:new Duration(e),this}get accountId(){return this._accountId}setAccountId(e){return this._requireNotFrozen(),this._accountId="string"==typeof e?AccountId.fromString(e):e.clone(),this}_validateChecksums(e){null!=this._accountId&&this._accountId.validateChecksum(e)}_execute(e,t){return e.crypto.addLiveHash(t)}_getTransactionDataCase(){return"cryptoAddLiveHash"}_makeTransactionData(){return{liveHash:{hash:this._hash,keys:null!=this._keys?{keys:this._keys.map((e=>e._toProtobufKey()))}:void 0,duration:null!=this._duration?this._duration._toProtobuf():null,accountId:null!=this._accountId?this._accountId._toProtobuf():null}}}_getLogId(){return`LiveHashAddTransaction:${this._transactionIds.current.validStart.toString()}`}}TRANSACTION_REGISTRY.set("cryptoAddLiveHash",LiveHashAddTransaction._fromProtobuf);class LiveHashDeleteTransaction extends Transaction{constructor(e={}){super(),this._hash=null,this._accountId=null,null!=e.hash&&this.setHash(e.hash),null!=e.accountId&&this.setAccountId(e.accountId)}static _fromProtobuf(e,t,r,n,o){const i=o[0].cryptoDeleteLiveHash;return Transaction._fromProtobufTransactions(new LiveHashDeleteTransaction({hash:null!=i.liveHashToDelete?i.liveHashToDelete:void 0,accountId:null!=i.accountOfLiveHash?AccountId._fromProtobuf(i.accountOfLiveHash):void 0}),e,t,r,n,o)}get hash(){return this._hash}setHash(e){return this._requireNotFrozen(),this._hash=e,this}get accountId(){return this._accountId}setAccountId(e){return this._requireNotFrozen(),this._accountId="string"==typeof e?AccountId.fromString(e):e.clone(),this}_validateChecksums(e){null!=this._accountId&&this._accountId.validateChecksum(e)}_execute(e,t){return e.crypto.deleteLiveHash(t)}_getTransactionDataCase(){return"cryptoDeleteLiveHash"}_makeTransactionData(){return{liveHashToDelete:this._hash,accountOfLiveHash:null!=this._accountId?this._accountId._toProtobuf():null}}_getLogId(){return`LiveHashDeleteTransaction:${this._transactionIds.current.validStart.toString()}`}}TRANSACTION_REGISTRY.set("cryptoDeleteLiveHash",LiveHashDeleteTransaction._fromProtobuf);class LiveHashQuery extends Query{constructor(e={}){super(),this._accountId=null,null!=e.accountId&&this.setAccountId(e.accountId),this._hash=null,null!=e.hash&&this.setHash(e.hash)}static _fromProtobuf(e){const t=e.cryptoGetLiveHash;return new LiveHashQuery({accountId:null!=t.accountID?AccountId._fromProtobuf(t.accountID):void 0,hash:null!=t.hash?t.hash:void 0})}get accountId(){return this._accountId}setAccountId(e){return this._accountId=e instanceof AccountId?e:AccountId.fromString(e),this}get liveHash(){return this._hash}setHash(e){return this._hash=e,this}_validateChecksums(e){null!=this._accountId&&this._accountId.validateChecksum(e)}_execute(e,t){return e.crypto.getLiveHash(t)}_mapResponseHeader(e){return e.cryptoGetLiveHash.header}_mapResponse(e){const t=e.cryptoGetLiveHash;return Promise.resolve(LiveHash._fromProtobuf(t.liveHash))}_onMakeRequest(e){return{cryptoGetLiveHash:{header:e,accountID:null!=this._accountId?this._accountId._toProtobuf():null,hash:this._hash}}}_getLogId(){return`LiveHashQuery:${(null!=this._paymentTransactionId&&null!=this._paymentTransactionId.validStart?this._paymentTransactionId.validStart:this._timestamp).toString()}`}}QUERY_REGISTRY.set("cryptoGetLiveHash",LiveHashQuery._fromProtobuf);class SemanticVersion{constructor(e){this.major=e.major,this.minor=e.minor,this.patch=e.patch,Object.freeze(this)}static _fromProtobuf(e){return new SemanticVersion({major:e.major,minor:e.minor,patch:e.patch})}_toProtobuf(){return{major:this.major,minor:this.minor,patch:this.patch}}static fromBytes(e){return SemanticVersion._fromProtobuf(proto_1.SemanticVersion.decode(e))}toBytes(){return proto_1.SemanticVersion.encode(this._toProtobuf()).finish()}}class NetworkVersionInfo{constructor(e){this.protobufVersion=e.protobufVersion,this.servicesVersion=e.servicesVersion,Object.freeze(this)}static _fromProtobuf(e){return new NetworkVersionInfo({protobufVersion:SemanticVersion._fromProtobuf(e.hapiProtoVersion),servicesVersion:SemanticVersion._fromProtobuf(e.hederaServicesVersion)})}_toProtobuf(){return{hapiProtoVersion:this.protobufVersion._toProtobuf(),hederaServicesVersion:this.servicesVersion._toProtobuf()}}static fromBytes(e){return NetworkVersionInfo._fromProtobuf(proto_1.NetworkGetVersionInfoResponse.decode(e))}toBytes(){return proto_1.NetworkGetVersionInfoResponse.encode(this._toProtobuf()).finish()}}class NetworkVersionInfoQuery extends Query{constructor(){super()}static _fromProtobuf(e){return new NetworkVersionInfoQuery}_execute(e,t){return e.network.getVersionInfo(t)}_mapResponseHeader(e){return e.networkGetVersionInfo.header}_mapResponse(e){const t=e.networkGetVersionInfo;return Promise.resolve(NetworkVersionInfo._fromProtobuf(t))}_onMakeRequest(e){return{networkGetVersionInfo:{header:e}}}_getLogId(){return`NetworkVersionInfoQuery:${(null!=this._paymentTransactionId&&null!=this._paymentTransactionId.validStart?this._paymentTransactionId.validStart:this._timestamp).toString()}`}}QUERY_REGISTRY.set("networkGetVersionInfo",NetworkVersionInfoQuery._fromProtobuf);const Provider={};class PrngTransaction extends Transaction{constructor(e={}){super(),this._range=null,null!=e.range&&this.setRange(e.range)}setRange(e){return this._range=e,this}get range(){return this._range}_validateChecksums(e){null!=this._range&&isNumber$2(this._range)&&this._validateChecksums(e)}_execute(e,t){return e.util.prng(t)}static _fromProtobuf(e,t,r,n,o){const i=o[0].utilPrng;return Transaction._fromProtobufTransactions(new PrngTransaction({range:i.range}),e,t,r,n,o)}_getTransactionDataCase(){return"utilPrng"}_makeTransactionData(){return{range:this.range}}_getLogId(){return`RandomGenerate:${this._transactionIds.current.validStart.toString()}`}}TRANSACTION_REGISTRY.set("utilPrng",PrngTransaction._fromProtobuf);class ScheduleCreateTransaction extends Transaction{constructor(e={}){super(),this._adminKey=null,this._scheduledTransaction=null,this._payerAccountId=null,this._scheduleMemo=null,this._scheduledSignerPublicKeys=new Set,this._expirationTime=null,this._waitForExpiry=null,null!=e.adminKey&&this.setAdminKey(e.adminKey),null!=e.payerAccountID&&this.setPayerAccountId(e.payerAccountID),null!=e.scheduleMemo&&this.setScheduleMemo(e.scheduleMemo),this._defaultMaxTransactionFee=new Hbar(5)}static _fromProtobuf(e,t,r,n,o){const i=o[0],a=i.scheduleCreate,s=new ScheduleCreateTransaction({adminKey:null!=a.adminKey?Key._fromProtobufKey(a.adminKey):void 0,payerAccountID:null!=a.payerAccountID?AccountId._fromProtobuf(a.payerAccountID):void 0,scheduleMemo:null!=a.memo?a.memo:void 0,waitForExpiry:null!=a.waitForExpiry?a.waitForExpiry:void 0,expirationTime:null!=a.expirationTime?Timestamp._fromProtobuf(a.expirationTime):void 0});if(null!=i.scheduleCreate){const e=i.scheduleCreate.scheduledTransactionBody,t=proto_1.TransactionBody.encode(e).finish(),r={signedTransactionBytes:proto_1.SignedTransaction.encode({bodyBytes:t}).finish()},n=proto_1.TransactionList.encode({transactionList:[r]}).finish(),o=Transaction.fromBytes(n);s._setScheduledTransaction(o)}return Transaction._fromProtobufTransactions(s,e,t,r,n,o)}_setScheduledTransaction(e){return this._scheduledTransaction=e,this}get adminKey(){return this._adminKey}setAdminKey(e){return this._requireNotFrozen(),this._adminKey=e,this}get payerAccountId(){return this._payerAccountId}setPayerAccountId(e){return this._requireNotFrozen(),this._payerAccountId=e,this}setScheduleMemo(e){return this._requireNotFrozen(),this._scheduleMemo=e,this}get getScheduleMemo(){return this._requireNotFrozen(),this._scheduleMemo}setScheduledTransaction(e){return this._requireNotFrozen(),e._requireNotFrozen(),this._scheduledTransaction=e.schedule()._scheduledTransaction,this}_validateChecksums(e){null!=this._payerAccountId&&this._payerAccountId.validateChecksum(e)}_execute(e,t){return e.schedule.createSchedule(t)}_getTransactionDataCase(){return"scheduleCreate"}_makeTransactionData(){return{adminKey:null!=this._adminKey?this._adminKey._toProtobufKey():null,payerAccountID:null!=this._payerAccountId?this._payerAccountId._toProtobuf():null,scheduledTransactionBody:null!=this._scheduledTransaction?this._scheduledTransaction._getScheduledTransactionBody():null,memo:this._scheduleMemo,waitForExpiry:this._waitForExpiry,expirationTime:null!=this._expirationTime?this._expirationTime._toProtobuf():null}}_getLogId(){return`ScheduleCreateTransaction:${this._transactionIds.current.validStart.toString()}`}setExpirationTime(e){return this._expirationTime=e,this}get expirationTime(){return this._requireNotFrozen(),this._expirationTime}setWaitForExpiry(e){return this._waitForExpiry=e,this}get waitForExpiry(){return this._requireNotFrozen(),this._waitForExpiry}}TRANSACTION_REGISTRY.set("scheduleCreate",ScheduleCreateTransaction._fromProtobuf),SCHEDULE_CREATE_TRANSACTION.push((()=>new ScheduleCreateTransaction));class ScheduleDeleteTransaction extends Transaction{constructor(e={}){super(),this._scheduleId=null,null!=e.scheduleId&&this.setScheduleId(e.scheduleId),this._defaultMaxTransactionFee=new Hbar(5)}static _fromProtobuf(e,t,r,n,o){const i=o[0].scheduleDelete;return Transaction._fromProtobufTransactions(new ScheduleDeleteTransaction({scheduleId:null!=i.scheduleID?ScheduleId._fromProtobuf(i.scheduleID):void 0}),e,t,r,n,o)}get scheduleId(){return this._scheduleId}setScheduleId(e){return this._requireNotFrozen(),this._scheduleId="string"==typeof e?ScheduleId.fromString(e):e.clone(),this}_validateChecksums(e){null!=this._scheduleId&&this._scheduleId.validateChecksum(e)}_execute(e,t){return e.schedule.deleteSchedule(t)}_getTransactionDataCase(){return"scheduleDelete"}_makeTransactionData(){return{scheduleID:null!=this._scheduleId?this._scheduleId._toProtobuf():null}}_getLogId(){return`ScheduleDeleteTransaction:${this._transactionIds.current.validStart.toString()}`}}TRANSACTION_REGISTRY.set("scheduleDelete",ScheduleDeleteTransaction._fromProtobuf);const{proto:proto$2}=HashgraphProto;class ScheduleInfo{constructor(e){this.scheduleId=e.scheduleId,this.creatorAccountId=e.creatorAccountID,this.payerAccountId=e.payerAccountID,this.schedulableTransactionBody=e.schedulableTransactionBody,this.signers=e.signers,this.scheduleMemo=e.scheduleMemo,this.adminKey=null!=e.adminKey?e.adminKey:null,this.expirationTime=e.expirationTime,this.executed=e.executed,this.deleted=e.deleted,this.scheduledTransactionId=e.scheduledTransactionId,this.waitForExpiry=e.waitForExpiry,Object.freeze(this)}static _fromProtobuf(e){return new ScheduleInfo({scheduleId:ScheduleId._fromProtobuf(e.scheduleID),creatorAccountID:null!=e.creatorAccountID?AccountId._fromProtobuf(e.creatorAccountID):null,payerAccountID:null!=e.payerAccountID?AccountId._fromProtobuf(e.payerAccountID):null,schedulableTransactionBody:null!=e.scheduledTransactionBody?e.scheduledTransactionBody:null,adminKey:null!=e.adminKey?Key._fromProtobufKey(e.adminKey):null,signers:null!=e.signers?KeyList.__fromProtobufKeyList(e.signers):null,scheduleMemo:null!=e.memo?e.memo:null,expirationTime:null!=e.expirationTime?Timestamp._fromProtobuf(e.expirationTime):null,executed:null!=e.executionTime?Timestamp._fromProtobuf(e.executionTime):null,deleted:null!=e.deletionTime?Timestamp._fromProtobuf(e.deletionTime):null,scheduledTransactionId:null!=e.scheduledTransactionID?TransactionId._fromProtobuf(e.scheduledTransactionID):null,waitForExpiry:null!=e.waitForExpiry&&e.waitForExpiry})}_toProtobuf(){return{scheduleID:null!=this.scheduleId?this.scheduleId._toProtobuf():null,creatorAccountID:null!=this.creatorAccountId?this.creatorAccountId._toProtobuf():null,payerAccountID:null!=this.payerAccountId?this.payerAccountId._toProtobuf():null,scheduledTransactionBody:null!=this.schedulableTransactionBody?this.schedulableTransactionBody:null,adminKey:null!=this.adminKey?this.adminKey._toProtobufKey():null,signers:null!=this.signers?this.signers._toProtobufKey().keyList:null,memo:null!=this.scheduleMemo?this.scheduleMemo:"",expirationTime:null!=this.expirationTime?this.expirationTime._toProtobuf():null,scheduledTransactionID:null!=this.scheduledTransactionId?this.scheduledTransactionId._toProtobuf():null,waitForExpiry:this.waitForExpiry}}get scheduledTransaction(){if(null==this.schedulableTransactionBody)throw new Error("Scheduled transaction body is empty");const e=new proto$2.SchedulableTransactionBody(this.schedulableTransactionBody),t=e.data;return Transaction.fromBytes(proto$2.TransactionList.encode({transactionList:[{signedTransactionBytes:proto$2.SignedTransaction.encode({bodyBytes:proto$2.TransactionBody.encode({transactionFee:this.schedulableTransactionBody.transactionFee,memo:this.schedulableTransactionBody.memo,[t]:e[t]}).finish()}).finish()}]}).finish())}}class ScheduleInfoQuery extends Query{constructor(e={}){super(),this._scheduleId=null,null!=e.scheduleId&&this.setScheduleId(e.scheduleId)}static _fromProtobuf(e){const t=e.scheduleGetInfo;return new ScheduleInfoQuery({scheduleId:null!=t.scheduleID?ScheduleId._fromProtobuf(t.scheduleID):void 0})}get scheduleId(){return this._scheduleId}setScheduleId(e){return this._scheduleId="string"==typeof e?ScheduleId.fromString(e):e.clone(),this}async getCost(e){return super.getCost(e)}_validateChecksums(e){null!=this._scheduleId&&this._scheduleId.validateChecksum(e)}_execute(e,t){return e.schedule.getScheduleInfo(t)}_mapResponseHeader(e){return e.scheduleGetInfo.header}_mapResponse(e,t,r){const n=e.scheduleGetInfo;return Promise.resolve(ScheduleInfo._fromProtobuf(n.scheduleInfo))}_onMakeRequest(e){return{scheduleGetInfo:{header:e,scheduleID:null!=this._scheduleId?this._scheduleId._toProtobuf():null}}}_getLogId(){return`ScheduleInfoQuery:${(null!=this._paymentTransactionId&&null!=this._paymentTransactionId.validStart?this._paymentTransactionId.validStart:this._timestamp).toString()}`}}QUERY_REGISTRY.set("scheduleGetInfo",ScheduleInfoQuery._fromProtobuf);class ScheduleSignTransaction extends Transaction{constructor(e={}){super(),this._scheduleId=null,null!=e.scheduleId&&this.setScheduleId(e.scheduleId),this._defaultMaxTransactionFee=new Hbar(5)}static _fromProtobuf(e,t,r,n,o){const i=o[0].scheduleSign;return Transaction._fromProtobufTransactions(new ScheduleSignTransaction({scheduleId:null!=i.scheduleID?ScheduleId._fromProtobuf(i.scheduleID):void 0}),e,t,r,n,o)}get scheduleId(){return this._scheduleId}setScheduleId(e){return this._requireNotFrozen(),this._scheduleId="string"==typeof e?ScheduleId.fromString(e):e.clone(),this}_validateChecksums(e){null!=this._scheduleId&&this._scheduleId.validateChecksum(e)}_execute(e,t){return e.schedule.signSchedule(t)}_getTransactionDataCase(){return"scheduleSign"}_makeTransactionData(){return{scheduleID:null!=this._scheduleId?this._scheduleId._toProtobuf():null}}_getLogId(){return`ScheduleSignTransaction:${this._transactionIds.current.validStart.toString()}`}}TRANSACTION_REGISTRY.set("scheduleSign",ScheduleSignTransaction._fromProtobuf);const Signer={};class SignerSignature{constructor(e){this.publicKey=e.publicKey,this.signature=e.signature,this.accountId=e.accountId}}class SubscriptionHandle{constructor(){this._call=null,this._unsubscribed=!1}_setCall(e){this._call=e}unsubscribe(){null!=this._call&&(this._unsubscribed=!0,this._call())}}class SystemDeleteTransaction extends Transaction{constructor(e={}){super(),this._fileId=null,this._contractId=null,this._expirationTime=null,null!=e.fileId&&this.setFileId(e.fileId),null!=e.contractId&&this.setContractId(e.contractId),null!=e.expirationTime&&this.setExpirationTime(e.expirationTime)}static _fromProtobuf(e,t,r,n,o){const i=o[0].systemDelete;return Transaction._fromProtobufTransactions(new SystemDeleteTransaction({fileId:null!=i.fileID?FileId._fromProtobuf(i.fileID):void 0,contractId:null!=i.contractID?ContractId._fromProtobuf(i.contractID):void 0,expirationTime:null!=i.expirationTime?Timestamp._fromProtobuf(i.expirationTime):void 0}),e,t,r,n,o)}get fileId(){return this._fileId}setFileId(e){return this._requireNotFrozen(),this._fileId=e instanceof FileId?e:FileId.fromString(e),this}get contractId(){return this._contractId}setContractId(e){return this._requireNotFrozen(),this._contractId=e instanceof ContractId?e:ContractId.fromString(e),this}get expirationTime(){return this._expirationTime}setExpirationTime(e){return this._requireNotFrozen(),this._expirationTime=e,this}_execute(e,t){return null!=this._fileId?e.file.systemDelete(t):e.smartContract.systemDelete(t)}_getTransactionDataCase(){return"systemDelete"}_makeTransactionData(){return{fileID:null!=this._fileId?this._fileId._toProtobuf():null,contractID:null!=this._contractId?this._contractId._toProtobuf():null,expirationTime:null!=this._expirationTime?this._expirationTime._toProtobuf():null}}_getLogId(){return`SystemDeleteTransaction:${this._transactionIds.current.validStart.toString()}`}}TRANSACTION_REGISTRY.set("systemDelete",SystemDeleteTransaction._fromProtobuf);class SystemUndeleteTransaction extends Transaction{constructor(e={}){super(),this._fileId=null,this._contractId=null,null!=e.fileId&&this.setFileId(e.fileId),null!=e.contractId&&this.setContractId(e.contractId)}static _fromProtobuf(e,t,r,n,o){const i=o[0].systemUndelete;return Transaction._fromProtobufTransactions(new SystemUndeleteTransaction({fileId:null!=i.fileID?FileId._fromProtobuf(i.fileID):void 0,contractId:null!=i.contractID?ContractId._fromProtobuf(i.contractID):void 0}),e,t,r,n,o)}get fileId(){return this._fileId}setFileId(e){return this._requireNotFrozen(),this._fileId=e instanceof FileId?e:FileId.fromString(e),this}get contractId(){return this._contractId}setContractId(e){return this._requireNotFrozen(),this._contractId=e instanceof ContractId?e:ContractId.fromString(e),this}_execute(e,t){return null!=this._fileId?e.file.systemUndelete(t):e.smartContract.systemUndelete(t)}_getTransactionDataCase(){return"systemUndelete"}_makeTransactionData(){return{fileID:null!=this._fileId?this._fileId._toProtobuf():null,contractID:null!=this._contractId?this._contractId._toProtobuf():null}}_getLogId(){return`SystemUndeleteTransaction:${this._transactionIds.current.validStart.toString()}`}}TRANSACTION_REGISTRY.set("systemUndelete",SystemUndeleteTransaction._fromProtobuf);class TokenAssociateTransaction extends Transaction{constructor(e={}){super(),this._tokenIds=null,this._accountId=null,this._defaultMaxTransactionFee=new Hbar(5),null!=e.tokenIds&&this.setTokenIds(e.tokenIds),null!=e.accountId&&this.setAccountId(e.accountId)}static _fromProtobuf(e,t,r,n,o){const i=o[0].tokenAssociate;return Transaction._fromProtobufTransactions(new TokenAssociateTransaction({tokenIds:null!=i.tokens?i.tokens.map((e=>TokenId._fromProtobuf(e))):void 0,accountId:null!=i.account?AccountId._fromProtobuf(i.account):void 0}),e,t,r,n,o)}get tokenIds(){return this._tokenIds}setTokenIds(e){return this._requireNotFrozen(),this._tokenIds=e.map((e=>"string"==typeof e?TokenId.fromString(e):e.clone())),this}get accountId(){return this._accountId}setAccountId(e){return this._requireNotFrozen(),this._accountId="string"==typeof e?AccountId.fromString(e):e.clone(),this}_validateChecksums(e){null!=this._accountId&&this._accountId.validateChecksum(e);for(const t of null!=this._tokenIds?this._tokenIds:[])null!=t&&t.validateChecksum(e)}_execute(e,t){return e.token.associateTokens(t)}_getTransactionDataCase(){return"tokenAssociate"}_makeTransactionData(){return{tokens:null!=this._tokenIds?this._tokenIds.map((e=>e._toProtobuf())):null,account:null!=this._accountId?this._accountId._toProtobuf():null}}_getLogId(){return`TokenAssociateTransaction:${this._transactionIds.current.validStart.toString()}`}}TRANSACTION_REGISTRY.set("tokenAssociate",TokenAssociateTransaction._fromProtobuf);class TokenBurnTransaction extends Transaction{constructor(e={}){super(),this._tokenId=null,this._amount=null,this._serials=[],null!=e.tokenId&&this.setTokenId(e.tokenId),null!=e.amount&&this.setAmount(e.amount),null!=e.serials&&this.setSerials(e.serials)}static _fromProtobuf(e,t,r,n,o){const i=o[0].tokenBurn;return Transaction._fromProtobufTransactions(new TokenBurnTransaction({tokenId:null!=i.token?TokenId._fromProtobuf(i.token):void 0,amount:null!=i.amount?i.amount:void 0,serials:null!=i.serialNumbers?i.serialNumbers:void 0}),e,t,r,n,o)}get tokenId(){return this._tokenId}setTokenId(e){return this._requireNotFrozen(),this._tokenId="string"==typeof e?TokenId.fromString(e):e.clone(),this}get amount(){return this._amount}setAmount(e){return this._requireNotFrozen(),this._amount=e instanceof Long$1?e:Long$1.fromValue(e),this}_validateChecksums(e){null!=this._tokenId&&this._tokenId.validateChecksum(e)}get serials(){return this._serials}setSerials(e){return this._requireNotFrozen(),this._serials=e.map((e=>e instanceof Long$1?e:Long$1.fromValue(e))),this}_execute(e,t){return e.token.burnToken(t)}_getTransactionDataCase(){return"tokenBurn"}_makeTransactionData(){return{amount:this._amount,serialNumbers:this._serials,token:null!=this._tokenId?this._tokenId._toProtobuf():null}}_getLogId(){return`TokenBurnTransaction:${this._transactionIds.current.validStart.toString()}`}}TRANSACTION_REGISTRY.set("tokenBurn",TokenBurnTransaction._fromProtobuf);class TokenReference{constructor(){this.fungibleToken=null,this.nft=null}static _fromProtobuf(e){return{fungibleToken:null!=e.fungibleToken?TokenId._fromProtobuf(e.fungibleToken):null,nft:null!=e.nft?NftId._fromProtobuf(e.nft):null}}}class TokenRejectTransaction extends Transaction{constructor(e={}){super(),this._owner=null,null!=e.owner&&this.setOwnerId(e.owner),this._tokenIds=[],this._nftIds=[],null!=e.tokenIds&&this.setTokenIds(e.tokenIds),null!=e.nftIds&&this.setNftIds(e.nftIds)}static _fromProtobuf(e,t,r,n,o){var i;const a=o[0].tokenReject,s=null==(i=a.rejections)?void 0:i.map((e=>TokenReference._fromProtobuf(e))),c=null==s?void 0:s.filter((e=>e.fungibleToken)).map((({fungibleToken:e})=>{if(null==e)throw new Error("Fungible Token cannot be null");return e})),u=null==s?void 0:s.filter((e=>e.nft)).map((({nft:e})=>{if(null==e)throw new Error("Nft cannot be null");return e}));return Transaction._fromProtobufTransactions(new TokenRejectTransaction({owner:null!=a.owner?AccountId._fromProtobuf(a.owner):void 0,tokenIds:c,nftIds:u}),e,t,r,n,o)}get tokenIds(){return this._tokenIds}setTokenIds(e){return this._requireNotFrozen(),this._tokenIds=e,this}addTokenId(e){var t;return this._requireNotFrozen(),null==(t=this._tokenIds)||t.push(e),this}get nftIds(){return this._nftIds}setNftIds(e){return this._requireNotFrozen(),this._nftIds=e,this}addNftId(e){var t;return this._requireNotFrozen(),null==(t=this._nftIds)||t.push(e),this}get ownerId(){return this._owner}setOwnerId(e){return this._requireNotFrozen(),this._owner=e,this}_execute(e,t){return e.token.rejectToken(t)}_getTransactionDataCase(){return"tokenReject"}_makeTransactionData(){var e;const t=[];for(const r of this._tokenIds)t.push({fungibleToken:r._toProtobuf()});for(const r of this._nftIds)t.push({nft:r._toProtobuf()});return{owner:(null==(e=this.ownerId)?void 0:e._toProtobuf())??null,rejections:t}}_getLogId(){return`TokenRejectTransaction:${this._transactionIds.current.validStart.toString()}`}}TRANSACTION_REGISTRY.set("tokenReject",TokenRejectTransaction._fromProtobuf);class TokenDissociateTransaction extends Transaction{constructor(e={}){super(),this._tokenIds=null,this._accountId=null,this._defaultMaxTransactionFee=new Hbar(5),null!=e.tokenIds&&this.setTokenIds(e.tokenIds),null!=e.accountId&&this.setAccountId(e.accountId)}static _fromProtobuf(e,t,r,n,o){const i=o[0].tokenDissociate;return Transaction._fromProtobufTransactions(new TokenDissociateTransaction({tokenIds:null!=i.tokens?i.tokens.map((e=>TokenId._fromProtobuf(e))):void 0,accountId:null!=i.account?AccountId._fromProtobuf(i.account):void 0}),e,t,r,n,o)}get tokenIds(){return this._tokenIds}setTokenIds(e){return this._requireNotFrozen(),this._tokenIds=e.map((e=>"string"==typeof e?TokenId.fromString(e):e.clone())),this}get accountId(){return this._accountId}setAccountId(e){return this._requireNotFrozen(),this._accountId="string"==typeof e?AccountId.fromString(e):e.clone(),this}_validateChecksums(e){null!=this._accountId&&this._accountId.validateChecksum(e);for(const t of null!=this._tokenIds?this._tokenIds:[])null!=t&&t.validateChecksum(e)}_execute(e,t){return e.token.dissociateTokens(t)}_getTransactionDataCase(){return"tokenDissociate"}_makeTransactionData(){return{tokens:null!=this._tokenIds?this._tokenIds.map((e=>e._toProtobuf())):null,account:null!=this._accountId?this._accountId._toProtobuf():null}}_getLogId(){return`TokenDissociateTransaction:${this._transactionIds.current.validStart.toString()}`}}TRANSACTION_REGISTRY.set("tokenDissociate",TokenDissociateTransaction._fromProtobuf);class TokenRejectFlow{constructor(){this._ownerId=null,this._tokenIds=[],this._nftIds=[],this._freezeWithClient=null,this._signPrivateKey=null,this._signPublicKey=null,this._transactionSigner=null}setOwnerId(e){return this.requireNotFrozen(),this._ownerId=e,this}get ownerId(){return this._ownerId}setTokenIds(e){return this.requireNotFrozen(),this._tokenIds=e,this}addTokenId(e){return this.requireNotFrozen(),this._tokenIds.push(e),this}get tokenIds(){return this._tokenIds}setNftIds(e){return this.requireNotFrozen(),this._nftIds=e,this}addNftId(e){return this.requireNotFrozen(),this._nftIds.push(e),this}get nftIds(){return this._nftIds}sign(e){return this._signPrivateKey=e,this._signPublicKey=null,this._transactionSigner=null,this}signWith(e,t){return this._signPublicKey=e,this._transactionSigner=t,this._signPrivateKey=null,this}signWithOperator(e){const t=e.getOperator();if(null==t)throw new Error("Client operator must be set");return this._signPublicKey=t.publicKey,this._transactionSigner=t.transactionSigner,this._signPrivateKey=null,this}fillOutTransaction(e){this._freezeWithClient&&e.freezeWith(this._freezeWithClient),this._signPrivateKey?e.sign(this._signPrivateKey):this._signPublicKey&&this._transactionSigner&&e.signWith(this._signPublicKey,this._transactionSigner)}freezeWith(e){return this._freezeWithClient=e,this}async execute(e){const t=(new TokenRejectTransaction).setTokenIds(this.tokenIds).setNftIds(this.nftIds);this.ownerId&&t.setOwnerId(this.ownerId),this.fillOutTransaction(t);const r=this.nftIds.map((e=>e.tokenId)).filter((function(e,t,r){return r.indexOf(e)===t})),n=(new TokenDissociateTransaction).setTokenIds([...this.tokenIds,...r]);null!=this.ownerId&&n.setAccountId(this.ownerId),this.fillOutTransaction(n);const o=await t.execute(e);await o.getReceipt(e);const i=await n.execute(e);return await i.getReceipt(e),o}requireNotFrozen(){if(null!=this._freezeWithClient)throw new Error("Transaction is already frozen and cannot be modified")}}class TokenType{constructor(e){this._code=e,Object.freeze(this)}toString(){switch(this){case TokenType.FungibleCommon:return"FUNGIBLE_COMMON";case TokenType.NonFungibleUnique:return"NON_FUNGIBLE_UNIQUE";default:return`UNKNOWN (${this._code})`}}static _fromCode(e){switch(e){case 0:return TokenType.FungibleCommon;case 1:return TokenType.NonFungibleUnique}throw new Error(`(BUG) TokenType.fromCode() does not handle code: ${e}`)}valueOf(){return this._code}}TokenType.FungibleCommon=new TokenType(0),TokenType.NonFungibleUnique=new TokenType(1);class TokenSupplyType{constructor(e){this._code=e,Object.freeze(this)}toString(){switch(this){case TokenSupplyType.Infinite:return"INFINITE";case TokenSupplyType.Finite:return"FINITE";default:return`UNKNOWN (${this._code})`}}static _fromCode(e){switch(e){case 0:return TokenSupplyType.Infinite;case 1:return TokenSupplyType.Finite}throw new Error(`(BUG) TokenSupplyType.fromCode() does not handle code: ${e}`)}valueOf(){return this._code}}TokenSupplyType.Infinite=new TokenSupplyType(0),TokenSupplyType.Finite=new TokenSupplyType(1);class TokenCreateTransaction extends Transaction{constructor(e={}){super(),this._tokenName=null,this._tokenSymbol=null,this._decimals=null,this._initialSupply=null,this._treasuryAccountId=null,this._adminKey=null,this._kycKey=null,this._freezeKey=null,this._pauseKey=null,this._wipeKey=null,this._supplyKey=null,this._feeScheduleKey=null,this._freezeDefault=null,this._autoRenewAccountId=null,this._expirationTime=new Timestamp(Math.floor(Date.now()/1e3+DEFAULT_AUTO_RENEW_PERIOD.toNumber()),0),this._autoRenewPeriod=new Duration(DEFAULT_AUTO_RENEW_PERIOD),this._tokenMemo=null,this._customFees=[],this._tokenType=null,this._supplyType=null,this._maxSupply=null,this._defaultMaxTransactionFee=new Hbar(30),this._metadataKey=null,this._metadata=null,null!=e.tokenName&&this.setTokenName(e.tokenName),null!=e.tokenSymbol&&this.setTokenSymbol(e.tokenSymbol),null!=e.decimals&&this.setDecimals(e.decimals),null!=e.initialSupply&&this.setInitialSupply(e.initialSupply),null!=e.treasuryAccountId&&this.setTreasuryAccountId(e.treasuryAccountId),null!=e.adminKey&&this.setAdminKey(e.adminKey),null!=e.kycKey&&this.setKycKey(e.kycKey),null!=e.freezeKey&&this.setFreezeKey(e.freezeKey),null!=e.pauseKey&&this.setPauseKey(e.pauseKey),null!=e.wipeKey&&this.setWipeKey(e.wipeKey),null!=e.supplyKey&&this.setSupplyKey(e.supplyKey),null!=e.feeScheduleKey&&this.setFeeScheduleKey(e.feeScheduleKey),null!=e.freezeDefault&&this.setFreezeDefault(e.freezeDefault),null!=e.autoRenewAccountId&&this.setAutoRenewAccountId(e.autoRenewAccountId),null!=e.expirationTime&&this.setExpirationTime(e.expirationTime),null!=e.autoRenewPeriod&&this.setAutoRenewPeriod(e.autoRenewPeriod),null!=e.tokenMemo&&this.setTokenMemo(e.tokenMemo),null!=e.customFees&&this.setCustomFees(e.customFees),null!=e.tokenType&&this.setTokenType(e.tokenType),null!=e.supplyType&&this.setSupplyType(e.supplyType),null!=e.maxSupply&&this.setMaxSupply(e.maxSupply),null!=e.metadataKey&&this.setMetadataKey(e.metadataKey),null!=e.metadata&&this.setMetadata(e.metadata)}static _fromProtobuf(e,t,r,n,o){const i=o[0].tokenCreation;return Transaction._fromProtobufTransactions(new TokenCreateTransaction({tokenName:null!=i.name?i.name:void 0,tokenSymbol:null!=i.symbol?i.symbol:void 0,decimals:null!=i.decimals?i.decimals:void 0,initialSupply:null!=i.initialSupply?i.initialSupply:void 0,treasuryAccountId:null!=i.treasury?AccountId._fromProtobuf(i.treasury):void 0,adminKey:null!=i.adminKey?Key._fromProtobufKey(i.adminKey):void 0,kycKey:null!=i.kycKey?Key._fromProtobufKey(i.kycKey):void 0,freezeKey:null!=i.freezeKey?Key._fromProtobufKey(i.freezeKey):void 0,pauseKey:null!=i.pauseKey?Key._fromProtobufKey(i.pauseKey):void 0,wipeKey:null!=i.wipeKey?Key._fromProtobufKey(i.wipeKey):void 0,supplyKey:null!=i.supplyKey?Key._fromProtobufKey(i.supplyKey):void 0,feeScheduleKey:null!=i.feeScheduleKey?Key._fromProtobufKey(i.feeScheduleKey):void 0,freezeDefault:null!=i.freezeDefault?i.freezeDefault:void 0,autoRenewAccountId:null!=i.autoRenewAccount?AccountId._fromProtobuf(i.autoRenewAccount):void 0,expirationTime:null!=i.expiry?Timestamp._fromProtobuf(i.expiry):void 0,autoRenewPeriod:null!=i.autoRenewPeriod?Duration._fromProtobuf(i.autoRenewPeriod):void 0,tokenMemo:null!=i.memo?i.memo:void 0,customFees:null!=i.customFees?i.customFees.map((e=>null!=e.fixedFee?CustomFixedFee._fromProtobuf(e):null!=e.fractionalFee?CustomFractionalFee._fromProtobuf(e):CustomRoyalyFee._fromProtobuf(e))):void 0,tokenType:null!=i.tokenType?TokenType._fromCode(i.tokenType):void 0,supplyType:null!=i.supplyType?TokenSupplyType._fromCode(i.supplyType):void 0,maxSupply:null!=i.maxSupply?i.maxSupply:void 0,metadataKey:null!=i.metadataKey?Key._fromProtobufKey(i.metadataKey):void 0,metadata:null!=i.metadata?i.metadata:void 0}),e,t,r,n,o)}get tokenName(){return this._tokenName}setTokenName(e){return this._requireNotFrozen(),this._tokenName=e,this}get tokenSymbol(){return this._tokenSymbol}setTokenSymbol(e){return this._requireNotFrozen(),this._tokenSymbol=e,this}get decimals(){return this._decimals}setDecimals(e){return this._requireNotFrozen(),this._decimals=e instanceof Long$1?e:Long$1.fromValue(e),this}get initialSupply(){return this._initialSupply}setInitialSupply(e){return this._requireNotFrozen(),this._initialSupply=Long$1.fromValue(e),this}get treasuryAccountId(){return this._treasuryAccountId}setTreasuryAccountId(e){return this._requireNotFrozen(),this._treasuryAccountId="string"==typeof e?AccountId.fromString(e):e.clone(),this}get adminKey(){return this._adminKey}setAdminKey(e){return this._requireNotFrozen(),this._adminKey=e,this}get kycKey(){return this._kycKey}setKycKey(e){return this._requireNotFrozen(),this._kycKey=e,this}get freezeKey(){return this._freezeKey}setFreezeKey(e){return this._requireNotFrozen(),this._freezeKey=e,this}get pauseKey(){return this._pauseKey}setPauseKey(e){return this._requireNotFrozen(),this._pauseKey=e,this}get wipeKey(){return this._wipeKey}setWipeKey(e){return this._requireNotFrozen(),this._wipeKey=e,this}get supplyKey(){return this._supplyKey}setSupplyKey(e){return this._requireNotFrozen(),this._supplyKey=e,this}get feeScheduleKey(){return this._feeScheduleKey}setFeeScheduleKey(e){return this._requireNotFrozen(),this._feeScheduleKey=e,this}get freezeDefault(){return this._freezeDefault}setFreezeDefault(e){return this._requireNotFrozen(),this._freezeDefault=e,this}get expirationTime(){return this._expirationTime}setExpirationTime(e){return this._requireNotFrozen(),this._expirationTime=e instanceof Timestamp?e:Timestamp.fromDate(e),this}get autoRenewAccountId(){return this._autoRenewAccountId}setAutoRenewAccountId(e){return this._requireNotFrozen(),this._autoRenewAccountId=e instanceof AccountId?e:AccountId.fromString(e),this}get autoRenewPeriod(){return this._autoRenewPeriod}setAutoRenewPeriod(e){return this._requireNotFrozen(),this._autoRenewPeriod=e instanceof Duration?e:new Duration(e),this}get tokenMemo(){return this._tokenMemo}setTokenMemo(e){return this._requireNotFrozen(),this._tokenMemo=e,this}get customFees(){return this._customFees}setCustomFees(e){return this._customFees=e,this}get tokenType(){return this._tokenType}setTokenType(e){return this._tokenType=e,this}get supplyType(){return this._supplyType}setSupplyType(e){return this._supplyType=e,this}get maxSupply(){return this._maxSupply}setMaxSupply(e){return this._maxSupply="number"==typeof e?Long$1.fromNumber(e):e,this}get metadataKey(){return this._metadataKey}setMetadataKey(e){return this._requireNotFrozen(),this._metadataKey=e,this}get metadata(){return this._metadata}setMetadata(e){return this._requireNotFrozen(),this._metadata=e,this}_validateChecksums(e){null!=this._treasuryAccountId&&this._treasuryAccountId.validateChecksum(e),null!=this._autoRenewAccountId&&this._autoRenewAccountId.validateChecksum(e)}_execute(e,t){return e.token.createToken(t)}_getTransactionDataCase(){return"tokenCreation"}_makeTransactionData(){return{name:this._tokenName,symbol:this._tokenSymbol,decimals:null!=this._decimals?this._decimals.toInt():null,initialSupply:this._initialSupply,treasury:null!=this._treasuryAccountId?this._treasuryAccountId._toProtobuf():null,adminKey:null!=this._adminKey?this._adminKey._toProtobufKey():null,kycKey:null!=this._kycKey?this._kycKey._toProtobufKey():null,freezeKey:null!=this._freezeKey?this._freezeKey._toProtobufKey():null,pauseKey:null!=this._pauseKey?this._pauseKey._toProtobufKey():null,wipeKey:null!=this._wipeKey?this._wipeKey._toProtobufKey():null,supplyKey:null!=this._supplyKey?this._supplyKey._toProtobufKey():null,feeScheduleKey:null!=this._feeScheduleKey?this._feeScheduleKey._toProtobufKey():null,freezeDefault:this._freezeDefault,autoRenewAccount:null!=this._autoRenewAccountId?this._autoRenewAccountId._toProtobuf():null,expiry:null!=this._expirationTime?this._expirationTime._toProtobuf():null,autoRenewPeriod:null!=this._autoRenewPeriod?this._autoRenewPeriod._toProtobuf():null,memo:this._tokenMemo,customFees:this.customFees.map((e=>e._toProtobuf())),tokenType:null!=this._tokenType?this._tokenType._code:null,supplyType:null!=this._supplyType?this._supplyType._code:null,maxSupply:this.maxSupply,metadataKey:null!=this._metadataKey?this._metadataKey._toProtobufKey():null,metadata:null!=this._metadata?this._metadata:void 0}}_getLogId(){return`TokenCreateTransaction:${this._transactionIds.current.validStart.toString()}`}}TRANSACTION_REGISTRY.set("tokenCreation",TokenCreateTransaction._fromProtobuf);class TokenDeleteTransaction extends Transaction{constructor(e={}){super(),this._tokenId=null,null!=e.tokenId&&this.setTokenId(e.tokenId)}static _fromProtobuf(e,t,r,n,o){const i=o[0].tokenDeletion;return Transaction._fromProtobufTransactions(new TokenDeleteTransaction({tokenId:null!=i.token?TokenId._fromProtobuf(i.token):void 0}),e,t,r,n,o)}get tokenId(){return this._tokenId}setTokenId(e){return this._requireNotFrozen(),this._tokenId="string"==typeof e?TokenId.fromString(e):e.clone(),this}_validateChecksums(e){null!=this._tokenId&&this._tokenId.validateChecksum(e)}_execute(e,t){return e.token.deleteToken(t)}_getTransactionDataCase(){return"tokenDeletion"}_makeTransactionData(){return{token:null!=this._tokenId?this._tokenId._toProtobuf():null}}_getLogId(){return`TokenDeleteTransaction:${this._transactionIds.current.validStart.toString()}`}}TRANSACTION_REGISTRY.set("tokenDeletion",TokenDeleteTransaction._fromProtobuf);class TokenFeeScheduleUpdateTransaction extends Transaction{constructor(e={}){super(),this._tokenId=null,this._customFees=[],null!=e.tokenId&&this.setTokenId(e.tokenId),null!=e.customFees&&this.setCustomFees(e.customFees)}static _fromProtobuf(e,t,r,n,o){const i=o[0].tokenFeeScheduleUpdate;return Transaction._fromProtobufTransactions(new TokenFeeScheduleUpdateTransaction({tokenId:null!=i.tokenId?TokenId._fromProtobuf(i.tokenId):void 0,customFees:null!=i.customFees?i.customFees.map((e=>null!=e.fixedFee?CustomFixedFee._fromProtobuf(e):null!=e.fractionalFee?CustomFractionalFee._fromProtobuf(e):CustomRoyalyFee._fromProtobuf(e))):void 0}),e,t,r,n,o)}get tokenId(){return this._tokenId}setTokenId(e){return this._requireNotFrozen(),this._tokenId="string"==typeof e?TokenId.fromString(e):TokenId._fromProtobuf(e._toProtobuf()),this}get customFees(){return this._customFees}setCustomFees(e){return this._requireNotFrozen(),this._customFees=e,this}_execute(e,t){return e.token.updateTokenFeeSchedule(t)}_getTransactionDataCase(){return"tokenFeeScheduleUpdate"}_makeTransactionData(){return{tokenId:null!=this._tokenId?this._tokenId._toProtobuf():null,customFees:this._customFees.map((e=>e._toProtobuf()))}}_getLogId(){return`TokenFeeScheduleUpdateTransaction:${this._transactionIds.current.validStart.toString()}`}}TRANSACTION_REGISTRY.set("tokenFeeScheduleUpdate",TokenFeeScheduleUpdateTransaction._fromProtobuf);class TokenFreezeTransaction extends Transaction{constructor(e={}){super(),this._tokenId=null,this._accountId=null,null!=e.tokenId&&this.setTokenId(e.tokenId),null!=e.accountId&&this.setAccountId(e.accountId)}static _fromProtobuf(e,t,r,n,o){const i=o[0].tokenFreeze;return Transaction._fromProtobufTransactions(new TokenFreezeTransaction({tokenId:null!=i.token?TokenId._fromProtobuf(i.token):void 0,accountId:null!=i.account?AccountId._fromProtobuf(i.account):void 0}),e,t,r,n,o)}get tokenId(){return this._tokenId}setTokenId(e){return this._requireNotFrozen(),this._tokenId="string"==typeof e?TokenId.fromString(e):e.clone(),this}get accountId(){return this._accountId}setAccountId(e){return this._requireNotFrozen(),this._accountId="string"==typeof e?AccountId.fromString(e):e.clone(),this}_validateChecksums(e){null!=this._tokenId&&this._tokenId.validateChecksum(e),null!=this._accountId&&this._accountId.validateChecksum(e)}_execute(e,t){return e.token.freezeTokenAccount(t)}_getTransactionDataCase(){return"tokenFreeze"}_makeTransactionData(){return{token:null!=this._tokenId?this._tokenId._toProtobuf():null,account:null!=this._accountId?this._accountId._toProtobuf():null}}_getLogId(){return`TokenFreezeTransaction:${this._transactionIds.current.validStart.toString()}`}}TRANSACTION_REGISTRY.set("tokenFreeze",TokenFreezeTransaction._fromProtobuf);class TokenGrantKycTransaction extends Transaction{constructor(e={}){super(),this._tokenId=null,this._accountId=null,null!=e.tokenId&&this.setTokenId(e.tokenId),null!=e.accountId&&this.setAccountId(e.accountId)}static _fromProtobuf(e,t,r,n,o){const i=o[0].tokenGrantKyc;return Transaction._fromProtobufTransactions(new TokenGrantKycTransaction({tokenId:null!=i.token?TokenId._fromProtobuf(i.token):void 0,accountId:null!=i.account?AccountId._fromProtobuf(i.account):void 0}),e,t,r,n,o)}get tokenId(){return this._tokenId}setTokenId(e){return this._requireNotFrozen(),this._tokenId="string"==typeof e?TokenId.fromString(e):e.clone(),this}get accountId(){return this._accountId}setAccountId(e){return this._requireNotFrozen(),this._accountId="string"==typeof e?AccountId.fromString(e):e.clone(),this}_validateChecksums(e){null!=this._tokenId&&this._tokenId.validateChecksum(e),null!=this._accountId&&this._accountId.validateChecksum(e)}_execute(e,t){return e.token.grantKycToTokenAccount(t)}_getTransactionDataCase(){return"tokenGrantKyc"}_makeTransactionData(){return{token:null!=this._tokenId?this._tokenId._toProtobuf():null,account:null!=this._accountId?this._accountId._toProtobuf():null}}_getLogId(){return`TokenGrantKycTransaction:${this._transactionIds.current.validStart.toString()}`}}TRANSACTION_REGISTRY.set("tokenGrantKyc",TokenGrantKycTransaction._fromProtobuf);class TokenInfo{constructor(e){this.tokenId=e.tokenId,this.name=e.name,this.symbol=e.symbol,this.decimals=e.decimals,this.totalSupply=e.totalSupply,this.treasuryAccountId=e.treasuryAccountId,this.adminKey=e.adminKey,this.kycKey=e.kycKey,this.freezeKey=e.freezeKey,this.pauseKey=e.pauseKey,this.wipeKey=e.wipeKey,this.supplyKey=e.supplyKey,this.feeScheduleKey=e.feeScheduleKey,this.defaultFreezeStatus=e.defaultFreezeStatus,this.defaultKycStatus=e.defaultKycStatus,this.pauseStatus=e.pauseStatus,this.isDeleted=e.isDeleted,this.autoRenewAccountId=e.autoRenewAccountId,this.autoRenewPeriod=e.autoRenewPeriod,this.expirationTime=e.expirationTime,this.tokenMemo=e.tokenMemo,this.customFees=e.customFees,this.tokenType=e.tokenType,this.supplyType=e.supplyType,this.maxSupply=e.maxSupply,this.ledgerId=e.ledgerId,this.metadataKey=e.metadataKey,this.metadata=e.metadata}static _fromProtobuf(e){const t=e.defaultFreezeStatus,r=e.defaultKycStatus,n=e.pauseStatus,o=null!=e.autoRenewAccount?AccountId._fromProtobuf(e.autoRenewAccount):new AccountId(0);return new TokenInfo({tokenId:TokenId._fromProtobuf(e.tokenId),name:e.name,symbol:e.symbol,decimals:e.decimals,totalSupply:Long$1.fromValue(e.totalSupply),treasuryAccountId:null!=e.treasury?AccountId._fromProtobuf(e.treasury):null,adminKey:null!=e.adminKey?Key._fromProtobufKey(e.adminKey):null,kycKey:null!=e.kycKey?Key._fromProtobufKey(e.kycKey):null,freezeKey:null!=e.freezeKey?Key._fromProtobufKey(e.freezeKey):null,pauseKey:null!=e.pauseKey?Key._fromProtobufKey(e.pauseKey):null,wipeKey:null!=e.wipeKey?Key._fromProtobufKey(e.wipeKey):null,supplyKey:null!=e.supplyKey?Key._fromProtobufKey(e.supplyKey):null,feeScheduleKey:null!=e.feeScheduleKey?Key._fromProtobufKey(e.feeScheduleKey):null,defaultFreezeStatus:0===t?null:1==t,defaultKycStatus:0===r?null:1==r,pauseStatus:0===n?null:1==n,isDeleted:e.deleted,autoRenewAccountId:0!=o.shard.toInt()||0!=o.realm.toInt()||0!=o.num.toInt()?o:null,autoRenewPeriod:null!=e.autoRenewPeriod?Duration._fromProtobuf(e.autoRenewPeriod):null,expirationTime:null!=e.expiry?Timestamp._fromProtobuf(e.expiry):null,tokenMemo:null!=e.memo?e.memo:"",customFees:null!=e.customFees?e.customFees.map((e=>null!=e.fixedFee?CustomFixedFee._fromProtobuf(e):null!=e.fractionalFee?CustomFractionalFee._fromProtobuf(e):CustomRoyalyFee._fromProtobuf(e))):[],tokenType:null!=e.tokenType?TokenType._fromCode(e.tokenType):null,supplyType:null!=e.supplyType?TokenSupplyType._fromCode(e.supplyType):null,maxSupply:null!=e.maxSupply?e.maxSupply:null,ledgerId:null!=e.ledgerId?LedgerId.fromBytes(e.ledgerId):null,metadataKey:null!=e.metadataKey?Key._fromProtobufKey(e.metadataKey):null,metadata:null!=e.metadata?e.metadata:new Uint8Array})}_toProtobuf(){return{tokenId:this.tokenId._toProtobuf(),name:this.name,symbol:this.symbol,decimals:this.decimals,totalSupply:this.totalSupply,treasury:null!=this.treasuryAccountId?this.treasuryAccountId._toProtobuf():null,adminKey:null!=this.adminKey?this.adminKey._toProtobufKey():null,kycKey:null!=this.kycKey?this.kycKey._toProtobufKey():null,freezeKey:null!=this.freezeKey?this.freezeKey._toProtobufKey():null,pauseKey:null!=this.pauseKey?this.pauseKey._toProtobufKey():null,wipeKey:null!=this.wipeKey?this.wipeKey._toProtobufKey():null,supplyKey:null!=this.supplyKey?this.supplyKey._toProtobufKey():null,feeScheduleKey:null!=this.feeScheduleKey?this.feeScheduleKey._toProtobufKey():null,defaultFreezeStatus:null==this.defaultFreezeStatus?0:this.defaultFreezeStatus?1:2,defaultKycStatus:null==this.defaultKycStatus?0:this.defaultKycStatus?1:2,pauseStatus:null==this.pauseStatus?0:this.pauseStatus?1:2,deleted:this.isDeleted,autoRenewAccount:null!=this.autoRenewAccountId?this.autoRenewAccountId._toProtobuf():void 0,autoRenewPeriod:null!=this.autoRenewPeriod?this.autoRenewPeriod._toProtobuf():null,expiry:null!=this.expirationTime?this.expirationTime._toProtobuf():null,memo:this.tokenMemo,customFees:this.customFees.map((e=>e._toProtobuf())),tokenType:null!=this.tokenType?this.tokenType._code:null,supplyType:null!=this.supplyType?this.supplyType._code:null,maxSupply:this.maxSupply,ledgerId:null!=this.ledgerId?this.ledgerId.toBytes():null,metadataKey:null!=this.metadataKey?this.metadataKey._toProtobufKey():null,metadata:null!=this.metadata?this.metadata:null}}static fromBytes(e){return TokenInfo._fromProtobuf(proto_1.TokenInfo.decode(e))}toBytes(){return proto_1.TokenInfo.encode(this._toProtobuf()).finish()}}class TokenInfoQuery extends Query{constructor(e={}){super(),this._tokenId=null,null!=e.tokenId&&this.setTokenId(e.tokenId)}static _fromProtobuf(e){const t=e.tokenGetInfo;return new TokenInfoQuery({tokenId:null!=t.token?TokenId._fromProtobuf(t.token):void 0})}get tokenId(){return this._tokenId}setTokenId(e){return this._tokenId="string"==typeof e?TokenId.fromString(e):e.clone(),this}async getCost(e){return super.getCost(e)}_validateChecksums(e){null!=this._tokenId&&this._tokenId.validateChecksum(e)}_execute(e,t){return e.token.getTokenInfo(t)}_mapResponseHeader(e){return e.tokenGetInfo.header}_mapResponse(e,t,r){const n=e.tokenGetInfo;return Promise.resolve(TokenInfo._fromProtobuf(n.tokenInfo))}_onMakeRequest(e){return{tokenGetInfo:{header:e,token:null!=this._tokenId?this._tokenId._toProtobuf():null}}}_getLogId(){return`TokenInfoQuery:${(null!=this._paymentTransactionId&&null!=this._paymentTransactionId.validStart?this._paymentTransactionId.validStart:this._timestamp).toString()}`}}QUERY_REGISTRY.set("tokenGetInfo",TokenInfoQuery._fromProtobuf);class TokenMintTransaction extends Transaction{constructor(e={}){super(),this._tokenId=null,this._amount=null,this._metadata=[],null!=e.tokenId&&this.setTokenId(e.tokenId),null!=e.amount&&this.setAmount(e.amount),null!=e.metadata&&this.setMetadata(e.metadata)}static _fromProtobuf(e,t,r,n,o){const i=o[0].tokenMint;return Transaction._fromProtobufTransactions(new TokenMintTransaction({tokenId:null!=i.token?TokenId._fromProtobuf(i.token):void 0,amount:null!=i.amount?i.amount:void 0,metadata:null!=i.metadata?i.metadata:void 0}),e,t,r,n,o)}get tokenId(){return this._tokenId}setTokenId(e){return this._requireNotFrozen(),this._tokenId="string"==typeof e?TokenId.fromString(e):e.clone(),this}get amount(){return this._amount}setAmount(e){return this._requireNotFrozen(),this._amount=e instanceof Long$1?e:Long$1.fromValue(e),this}_validateChecksums(e){null!=this._tokenId&&this._tokenId.validateChecksum(e)}get metadata(){return this._metadata}addMetadata(e){return this._requireNotFrozen(),"string"==typeof e&&console.warn("Passing a `string` for token metadata is considered a bug, and has been removed. Please provide a `Uint8Array` instead."),this._metadata.push("string"==typeof e?decode$a(e):e),this}setMetadata(e){this._requireNotFrozen();for(const t of e)if("string"==typeof t){console.warn("Passing a `string` for token metadata is considered a bug, and has been removed. Please provide a `Uint8Array` instead.");break}return this._metadata=e.map((e=>"string"==typeof e?decode$a(e):e)),this}_execute(e,t){return e.token.mintToken(t)}_getTransactionDataCase(){return"tokenMint"}_makeTransactionData(){return{amount:this._amount,token:null!=this._tokenId?this._tokenId._toProtobuf():null,metadata:this._metadata}}_getLogId(){return`TokenMintTransaction:${this._transactionIds.current.validStart.toString()}`}}TRANSACTION_REGISTRY.set("tokenMint",TokenMintTransaction._fromProtobuf);class TokenNftInfo{constructor(e){this.nftId=e.nftId,this.accountId=e.accountId,this.creationTime=e.creationTime,this.metadata=e.metadata,this.ledgerId=e.ledgerId,this.spenderId=e.spenderId,Object.freeze(this)}static _fromProtobuf(e){return new TokenNftInfo({nftId:NftId._fromProtobuf(e.nftID),accountId:AccountId._fromProtobuf(e.accountID),creationTime:Timestamp._fromProtobuf(e.creationTime),metadata:void 0!==e.metadata?e.metadata:null,ledgerId:null!=e.ledgerId?LedgerId.fromBytes(e.ledgerId):null,spenderId:null!=e.spenderId?AccountId._fromProtobuf(e.spenderId):null})}_toProtobuf(){return{nftID:this.nftId._toProtobuf(),accountID:this.accountId._toProtobuf(),creationTime:this.creationTime._toProtobuf(),metadata:this.metadata,ledgerId:null!=this.ledgerId?this.ledgerId.toBytes():null,spenderId:null!=this.spenderId?this.spenderId._toProtobuf():null}}toJson(){return{nftId:this.nftId.toString(),accountId:this.accountId.toString(),creationTime:this.creationTime.toString(),metadata:null!=this.metadata?encode$9(this.metadata):null,ledgerId:null!=this.ledgerId?this.ledgerId.toString():null,spenderId:null!=this.spenderId?this.spenderId.toString():null}}toString(){return JSON.stringify(this.toJson())}}class TokenNftInfoQuery extends Query{constructor(e={}){super(),this._nftId=null,null!=e.nftId&&this.setNftId(e.nftId),this._accountId=null,null!=e.accountId&&this.setAccountId(e.accountId),this._tokenId=null,null!=e.tokenId&&this.setTokenId(e.tokenId),this._start=null,null!=e.start&&this.setStart(e.start),this._end=null,null!=e.end&&this.setEnd(e.end)}static _fromProtobuf(e){if(null!=e.tokenGetNftInfo){const t=e.tokenGetNftInfo;return new TokenNftInfoQuery({nftId:null!=t.nftID?NftId._fromProtobuf(t.nftID):void 0})}if(null!=e.tokenGetAccountNftInfos){const t=e.tokenGetAccountNftInfos;return new TokenNftInfoQuery({accountId:null!=t.accountID?AccountId._fromProtobuf(t.accountID):void 0,start:null!=t.start?t.start:void 0,end:null!=t.end?t.end:void 0})}{const t=e.tokenGetNftInfos;return new TokenNftInfoQuery({tokenId:null!=t.tokenID?TokenId._fromProtobuf(t.tokenID):void 0,start:null!=t.start?t.start:void 0,end:null!=t.end?t.end:void 0})}}get nftId(){return this._nftId}setNftId(e){return this._nftId="string"==typeof e?NftId.fromString(e):NftId._fromProtobuf(e._toProtobuf()),this}get accountId(){return console.warn("`TokenNftInfoQuery.accountId` is deprecated with no replacement"),this._accountId}setAccountId(e){return console.warn("`TokenNftInfoQuery.setAccountId()` is deprecated with no replacement"),this._accountId="string"==typeof e?AccountId.fromString(e):AccountId._fromProtobuf(e._toProtobuf()),this}get tokenId(){return console.warn("`TokenNftInfoQuery.tokenId` is deprecated with no replacement"),this._tokenId}setTokenId(e){return console.warn("`TokenNftInfoQuery.setTokenId()` is deprecated with no replacement"),this._tokenId="string"==typeof e?TokenId.fromString(e):TokenId._fromProtobuf(e._toProtobuf()),this}get start(){return console.warn("`TokenNftInfoQuery.start` is deprecated with no replacement"),this._start}setStart(e){return console.warn("`TokenNftInfoQuery.setStart()` is deprecated with no replacement"),this._start="number"==typeof e?Long$1.fromNumber(e):e,this}get end(){return console.warn("`TokenNftInfoQuery.end` is deprecated with no replacement"),this._end}setEnd(e){return console.warn("`TokenNftInfoQuery.setEnd()` is deprecated with no replacement"),this._end="number"==typeof e?Long$1.fromNumber(e):e,this}async getCost(e){return super.getCost(e)}_execute(e,t){return e.token.getTokenNftInfo(t)}_mapResponseHeader(e){return e.tokenGetNftInfo.header}_mapResponse(e,t,r){const n=[e.tokenGetNftInfo.nft];return Promise.resolve(n.map((e=>TokenNftInfo._fromProtobuf(e))))}_onMakeRequest(e){return{tokenGetNftInfo:{header:e,nftID:null!=this._nftId?this._nftId._toProtobuf():null}}}_getLogId(){return`TokenNftInfoQuery:${(null!=this._paymentTransactionId&&null!=this._paymentTransactionId.validStart?this._paymentTransactionId.validStart:this._timestamp).toString()}`}}QUERY_REGISTRY.set("tokenGetNftInfo",TokenNftInfoQuery._fromProtobuf);class TokenPauseTransaction extends Transaction{constructor(e={}){super(),this._tokenId=null,null!=e.tokenId&&this.setTokenId(e.tokenId)}static _fromProtobuf(e,t,r,n,o){const i=o[0].tokenPause;return Transaction._fromProtobufTransactions(new TokenPauseTransaction({tokenId:null!=i.token?TokenId._fromProtobuf(i.token):void 0}),e,t,r,n,o)}get tokenId(){return this._tokenId}setTokenId(e){return this._requireNotFrozen(),this._tokenId="string"==typeof e?TokenId.fromString(e):e.clone(),this}_validateChecksums(e){null!=this._tokenId&&this._tokenId.validateChecksum(e)}_execute(e,t){return e.token.pauseToken(t)}_getTransactionDataCase(){return"tokenPause"}_makeTransactionData(){return{token:null!=this._tokenId?this._tokenId._toProtobuf():null}}_getLogId(){return`TokenPauseTransaction:${this._transactionIds.current.validStart.toString()}`}}TRANSACTION_REGISTRY.set("tokenPause",TokenPauseTransaction._fromProtobuf);class TokenRevokeKycTransaction extends Transaction{constructor(e={}){super(),this._tokenId=null,this._accountId=null,null!=e.tokenId&&this.setTokenId(e.tokenId),null!=e.accountId&&this.setAccountId(e.accountId)}static _fromProtobuf(e,t,r,n,o){const i=o[0].tokenRevokeKyc;return Transaction._fromProtobufTransactions(new TokenRevokeKycTransaction({tokenId:null!=i.token?TokenId._fromProtobuf(i.token):void 0,accountId:null!=i.account?AccountId._fromProtobuf(i.account):void 0}),e,t,r,n,o)}get tokenId(){return this._tokenId}setTokenId(e){return this._requireNotFrozen(),this._tokenId="string"==typeof e?TokenId.fromString(e):e.clone(),this}get accountId(){return this._accountId}setAccountId(e){return this._requireNotFrozen(),this._accountId="string"==typeof e?AccountId.fromString(e):e.clone(),this}_validateChecksums(e){null!=this._tokenId&&this._tokenId.validateChecksum(e),null!=this._accountId&&this._accountId.validateChecksum(e)}_execute(e,t){return e.token.revokeKycFromTokenAccount(t)}_getTransactionDataCase(){return"tokenRevokeKyc"}_makeTransactionData(){return{token:null!=this._tokenId?this._tokenId._toProtobuf():null,account:null!=this._accountId?this._accountId._toProtobuf():null}}_getLogId(){return`TokenRevokeKycTransaction:${this._transactionIds.current.validStart.toString()}`}}TRANSACTION_REGISTRY.set("tokenRevokeKyc",TokenRevokeKycTransaction._fromProtobuf);class TokenUnfreezeTransaction extends Transaction{constructor(e={}){super(),this._tokenId=null,this._accountId=null,null!=e.tokenId&&this.setTokenId(e.tokenId),null!=e.accountId&&this.setAccountId(e.accountId)}static _fromProtobuf(e,t,r,n,o){const i=o[0].tokenUnfreeze;return Transaction._fromProtobufTransactions(new TokenUnfreezeTransaction({tokenId:null!=i.token?TokenId._fromProtobuf(i.token):void 0,accountId:null!=i.account?AccountId._fromProtobuf(i.account):void 0}),e,t,r,n,o)}get tokenId(){return this._tokenId}setTokenId(e){return this._requireNotFrozen(),this._tokenId="string"==typeof e?TokenId.fromString(e):e.clone(),this}get accountId(){return this._accountId}setAccountId(e){return this._requireNotFrozen(),this._accountId="string"==typeof e?AccountId.fromString(e):e.clone(),this}_validateChecksums(e){null!=this._tokenId&&this._tokenId.validateChecksum(e),null!=this._accountId&&this._accountId.validateChecksum(e)}_execute(e,t){return e.token.unfreezeTokenAccount(t)}_getTransactionDataCase(){return"tokenUnfreeze"}_makeTransactionData(){return{token:null!=this._tokenId?this._tokenId._toProtobuf():null,account:null!=this._accountId?this._accountId._toProtobuf():null}}_getLogId(){return`TokenUnfreezeTransaction:${this._transactionIds.current.validStart.toString()}`}}TRANSACTION_REGISTRY.set("tokenUnfreeze",TokenUnfreezeTransaction._fromProtobuf);class TokenUnpauseTransaction extends Transaction{constructor(e={}){super(),this._tokenId=null,null!=e.tokenId&&this.setTokenId(e.tokenId)}static _fromProtobuf(e,t,r,n,o){const i=o[0].tokenUnpause;return Transaction._fromProtobufTransactions(new TokenUnpauseTransaction({tokenId:null!=i.token?TokenId._fromProtobuf(i.token):void 0}),e,t,r,n,o)}get tokenId(){return this._tokenId}setTokenId(e){return this._requireNotFrozen(),this._tokenId="string"==typeof e?TokenId.fromString(e):e.clone(),this}_validateChecksums(e){null!=this._tokenId&&this._tokenId.validateChecksum(e)}_execute(e,t){return e.token.unpauseToken(t)}_getTransactionDataCase(){return"tokenUnpause"}_makeTransactionData(){return{token:null!=this._tokenId?this._tokenId._toProtobuf():null}}_getLogId(){return`TokenUnpauseTransaction:${this._transactionIds.current.validStart.toString()}`}}TRANSACTION_REGISTRY.set("tokenUnpause",TokenUnpauseTransaction._fromProtobuf);class TokenKeyValidation{constructor(e){this._code=e,Object.freeze(this)}toString(){switch(this){case TokenKeyValidation.FullValidation:return"FULL_VALIDATION";case TokenKeyValidation.NoValidation:return"NO_VALIDATION";default:return`UNKNOWN (${this._code})`}}static _fromCode(e){switch(e){case 0:return TokenKeyValidation.FullValidation;case 1:return TokenKeyValidation.NoValidation}throw new Error(`(BUG) TokenKeyValidation.fromCode() does not handle code: ${e}`)}valueOf(){return this._code}}TokenKeyValidation.FullValidation=new TokenKeyValidation(0),TokenKeyValidation.NoValidation=new TokenKeyValidation(1);class TokenUpdateTransaction extends Transaction{constructor(e={}){super(),this._tokenId=null,this._tokenName=null,this._tokenSymbol=null,this._treasuryAccountId=null,this._adminKey=null,this._kycKey=null,this._freezeKey=null,this._wipeKey=null,this._supplyKey=null,this._autoRenewAccountId=null,this._expirationTime=null,this._autoRenewPeriod=null,this._tokenMemo=null,this._feeScheduleKey=null,this._pauseKey=null,this._metadataKey=null,this._metadata=null,this._keyVerificationMode=TokenKeyValidation.FullValidation,null!=e.tokenId&&this.setTokenId(e.tokenId),null!=e.tokenName&&this.setTokenName(e.tokenName),null!=e.tokenSymbol&&this.setTokenSymbol(e.tokenSymbol),null!=e.treasuryAccountId&&this.setTreasuryAccountId(e.treasuryAccountId),null!=e.adminKey&&this.setAdminKey(e.adminKey),null!=e.kycKey&&this.setKycKey(e.kycKey),null!=e.freezeKey&&this.setFreezeKey(e.freezeKey),null!=e.wipeKey&&this.setWipeKey(e.wipeKey),null!=e.supplyKey&&this.setSupplyKey(e.supplyKey),null!=e.autoRenewAccountId&&this.setAutoRenewAccountId(e.autoRenewAccountId),null!=e.expirationTime&&this.setExpirationTime(e.expirationTime),null!=e.autoRenewPeriod&&this.setAutoRenewPeriod(e.autoRenewPeriod),null!=e.tokenMemo&&this.setTokenMemo(e.tokenMemo),null!=e.feeScheduleKey&&this.setFeeScheduleKey(e.feeScheduleKey),null!=e.pauseKey&&this.setPauseKey(e.pauseKey),null!=e.metadataKey&&this.setMetadataKey(e.metadataKey),null!=e.metadata&&this.setMetadata(e.metadata),null!=e.keyVerificationMode&&this.setKeyVerificationMode(e.keyVerificationMode)}static _fromProtobuf(e,t,r,n,o){const i=o[0].tokenUpdate;return Transaction._fromProtobufTransactions(new TokenUpdateTransaction({tokenId:null!=i.token?TokenId._fromProtobuf(i.token):void 0,tokenName:Object.hasOwn(i,"name")?i.name:void 0,tokenSymbol:Object.hasOwn(i,"symbol")?i.symbol:void 0,treasuryAccountId:null!=i.treasury?AccountId._fromProtobuf(i.treasury):void 0,adminKey:null!=i.adminKey?Key._fromProtobufKey(i.adminKey):void 0,kycKey:null!=i.kycKey?Key._fromProtobufKey(i.kycKey):void 0,freezeKey:null!=i.freezeKey?Key._fromProtobufKey(i.freezeKey):void 0,wipeKey:null!=i.wipeKey?Key._fromProtobufKey(i.wipeKey):void 0,supplyKey:null!=i.supplyKey?Key._fromProtobufKey(i.supplyKey):void 0,autoRenewAccountId:null!=i.autoRenewAccount?AccountId._fromProtobuf(i.autoRenewAccount):void 0,expirationTime:null!=i.expiry?Timestamp._fromProtobuf(i.expiry):void 0,autoRenewPeriod:null!=i.autoRenewPeriod?Duration._fromProtobuf(i.autoRenewPeriod):void 0,tokenMemo:null!=i.memo&&Object.hasOwn(i.memo,"value")?i.memo.value:void 0,feeScheduleKey:null!=i.feeScheduleKey?Key._fromProtobufKey(i.feeScheduleKey):void 0,pauseKey:null!=i.pauseKey?Key._fromProtobufKey(i.pauseKey):void 0,metadataKey:null!=i.metadataKey?Key._fromProtobufKey(i.metadataKey):void 0,metadata:null!=i.metadata&&Object.hasOwn(i.metadata,"value")?i.metadata.value:void 0,keyVerificationMode:null!=i.keyVerificationMode?TokenKeyValidation._fromCode(i.keyVerificationMode):void 0}),e,t,r,n,o)}get tokenId(){return this._tokenId}setTokenId(e){return this._requireNotFrozen(),this._tokenId="string"==typeof e?TokenId.fromString(e):e.clone(),this}get tokenName(){return this._tokenName}setTokenName(e){return this._requireNotFrozen(),this._tokenName=e,this}get tokenSymbol(){return this._tokenSymbol}setTokenSymbol(e){return this._requireNotFrozen(),this._tokenSymbol=e,this}get treasuryAccountId(){return this._treasuryAccountId}setTreasuryAccountId(e){return this._requireNotFrozen(),this._treasuryAccountId="string"==typeof e?AccountId.fromString(e):e.clone(),this}get adminKey(){return this._adminKey}setAdminKey(e){return this._requireNotFrozen(),this._adminKey=e,this}get kycKey(){return this._kycKey}setKycKey(e){return this._requireNotFrozen(),this._kycKey=e,this}get freezeKey(){return this._freezeKey}setFreezeKey(e){return this._requireNotFrozen(),this._freezeKey=e,this}get wipeKey(){return this._wipeKey}setWipeKey(e){return this._requireNotFrozen(),this._wipeKey=e,this}get supplyKey(){return this._supplyKey}setSupplyKey(e){return this._requireNotFrozen(),this._supplyKey=e,this}setsupplyKey(e){return this._requireNotFrozen(),this._supplyKey=e,this}get expirationTime(){return this._expirationTime}setExpirationTime(e){return this._requireNotFrozen(),this._expirationTime=e instanceof Timestamp?e:Timestamp.fromDate(e),this}get autoRenewAccountId(){return this._autoRenewAccountId}setAutoRenewAccountId(e){return this._requireNotFrozen(),this._autoRenewAccountId=e instanceof AccountId?e:AccountId.fromString(e),this}get autoRenewPeriod(){return this._autoRenewPeriod}setAutoRenewPeriod(e){return this._requireNotFrozen(),this._autoRenewPeriod=e instanceof Duration?e:new Duration(e),this}get tokenMemo(){return this._tokenMemo}setTokenMemo(e){return this._requireNotFrozen(),this._tokenMemo=e,this}get feeScheduleKey(){return this._feeScheduleKey}setFeeScheduleKey(e){return this._requireNotFrozen(),this._feeScheduleKey=e,this}get pauseKey(){return this._pauseKey}setPauseKey(e){return this._requireNotFrozen(),this._pauseKey=e,this}get metadataKey(){return this._metadataKey}setMetadataKey(e){return this._requireNotFrozen(),this._metadataKey=e,this}get metadata(){return this._metadata}setMetadata(e){return this._requireNotFrozen(),this._metadata=e,this}get keyVerificationMode(){return this._keyVerificationMode}setKeyVerificationMode(e){return this._requireNotFrozen(),this._keyVerificationMode=e,this}clearTokenMemo(){return this._requireNotFrozen(),this._tokenMemo=null,this}_validateChecksums(e){null!=this._tokenId&&this._tokenId.validateChecksum(e),null!=this._treasuryAccountId&&this._treasuryAccountId.validateChecksum(e),null!=this._autoRenewAccountId&&this._autoRenewAccountId.validateChecksum(e)}_execute(e,t){return e.token.updateToken(t)}_getTransactionDataCase(){return"tokenUpdate"}_makeTransactionData(){return{token:null!=this._tokenId?this._tokenId._toProtobuf():null,name:null!=this.tokenName?this.tokenName:null,symbol:this.tokenSymbol,treasury:null!=this._treasuryAccountId?this._treasuryAccountId._toProtobuf():null,adminKey:null!=this._adminKey?this._adminKey._toProtobufKey():null,kycKey:null!=this._kycKey?this._kycKey._toProtobufKey():null,freezeKey:null!=this._freezeKey?this._freezeKey._toProtobufKey():null,pauseKey:null!=this._pauseKey?this._pauseKey._toProtobufKey():null,wipeKey:null!=this._wipeKey?this._wipeKey._toProtobufKey():null,supplyKey:null!=this._supplyKey?this._supplyKey._toProtobufKey():null,autoRenewAccount:null!=this._autoRenewAccountId?this._autoRenewAccountId._toProtobuf():null,expiry:null!=this._expirationTime?this._expirationTime._toProtobuf():null,autoRenewPeriod:null!=this._autoRenewPeriod?this._autoRenewPeriod._toProtobuf():null,memo:null!=this._tokenMemo?{value:this._tokenMemo}:null,feeScheduleKey:null!=this._feeScheduleKey?this._feeScheduleKey._toProtobufKey():null,metadataKey:null!=this._metadataKey?this._metadataKey._toProtobufKey():null,metadata:null!=this._metadata?{value:this._metadata}:null,keyVerificationMode:null!=this._keyVerificationMode?this._keyVerificationMode._code:void 0}}_getLogId(){return`TokenUpdateTransaction:${this._transactionIds.current.validStart.toString()}`}}TRANSACTION_REGISTRY.set("tokenUpdate",TokenUpdateTransaction._fromProtobuf);class TokenWipeTransaction extends Transaction{constructor(e={}){super(),this._tokenId=null,this._accountId=null,this._serials=[],this._amount=null,null!=e.tokenId&&this.setTokenId(e.tokenId),null!=e.accountId&&this.setAccountId(e.accountId),null!=e.amount&&this.setAmount(e.amount),null!=e.serials&&this.setSerials(e.serials)}static _fromProtobuf(e,t,r,n,o){const i=o[0].tokenWipe;return Transaction._fromProtobufTransactions(new TokenWipeTransaction({tokenId:null!=i.token?TokenId._fromProtobuf(i.token):void 0,accountId:null!=i.account?AccountId._fromProtobuf(i.account):void 0,amount:null!=i.amount?i.amount:void 0,serials:null!=i.serialNumbers?i.serialNumbers:void 0}),e,t,r,n,o)}get tokenId(){return this._tokenId}setTokenId(e){return this._requireNotFrozen(),this._tokenId="string"==typeof e?TokenId.fromString(e):e.clone(),this}get accountId(){return this._accountId}setAccountId(e){return this._requireNotFrozen(),this._accountId="string"==typeof e?AccountId.fromString(e):e.clone(),this}get amount(){return this._amount}setAmount(e){return this._requireNotFrozen(),this._amount=e instanceof Long$1?e:Long$1.fromValue(e),this}_validateChecksums(e){null!=this._tokenId&&this._tokenId.validateChecksum(e),null!=this._accountId&&this._accountId.validateChecksum(e)}get serials(){return this._serials}setSerials(e){return this._requireNotFrozen(),this._serials=e.map((e=>"number"==typeof e?Long$1.fromNumber(e):e)),this}_execute(e,t){return e.token.wipeTokenAccount(t)}_getTransactionDataCase(){return"tokenWipe"}_makeTransactionData(){return{amount:this._amount,token:null!=this._tokenId?this._tokenId._toProtobuf():null,account:null!=this._accountId?this._accountId._toProtobuf():null,serialNumbers:this.serials}}_getLogId(){return`TokenWipeTransaction:${this._transactionIds.current.validStart.toString()}`}}TRANSACTION_REGISTRY.set("tokenWipe",TokenWipeTransaction._fromProtobuf);class TopicCreateTransaction extends Transaction{constructor(e={}){super(),this._adminKey=null,this._submitKey=null,this._autoRenewAccountId=null,this._autoRenewPeriod=new Duration(DEFAULT_AUTO_RENEW_PERIOD),this._topicMemo=null,null!=e.adminKey&&this.setAdminKey(e.adminKey),null!=e.submitKey&&this.setSubmitKey(e.submitKey),null!=e.autoRenewAccountId&&this.setAutoRenewAccountId(e.autoRenewAccountId),null!=e.autoRenewPeriod&&this.setAutoRenewPeriod(e.autoRenewPeriod),null!=e.topicMemo&&this.setTopicMemo(e.topicMemo)}static _fromProtobuf(e,t,r,n,o){const i=o[0].consensusCreateTopic;return Transaction._fromProtobufTransactions(new TopicCreateTransaction({adminKey:null!=i.adminKey?Key._fromProtobufKey(i.adminKey):void 0,submitKey:null!=i.submitKey?Key._fromProtobufKey(i.submitKey):void 0,autoRenewAccountId:null!=i.autoRenewAccount?AccountId._fromProtobuf(i.autoRenewAccount):void 0,autoRenewPeriod:null!=i.autoRenewPeriod&&null!=i.autoRenewPeriod.seconds?i.autoRenewPeriod.seconds:void 0,topicMemo:null!=i.memo?i.memo:void 0}),e,t,r,n,o)}get topicMemo(){return this._topicMemo}getTopicMemo(){return this._topicMemo}setTopicMemo(e){return this._requireNotFrozen(),this._topicMemo=e,this}get adminKey(){return this._adminKey}getAdminKey(){return this._adminKey}setAdminKey(e){return this._requireNotFrozen(),this._adminKey=e,this}get submitKey(){return this._submitKey}getSubmitKey(){return this._submitKey}setSubmitKey(e){return this._requireNotFrozen(),this._submitKey=e,this}get autoRenewAccountId(){return this._autoRenewAccountId}getAutoRenewAccountId(){return this._autoRenewAccountId}setAutoRenewAccountId(e){return this._requireNotFrozen(),this._autoRenewAccountId=e instanceof AccountId?e:AccountId.fromString(e),this}get autoRenewPeriod(){return this._autoRenewPeriod}getAutoRenewPeriod(){return this._autoRenewPeriod}setAutoRenewPeriod(e){return this._requireNotFrozen(),this._autoRenewPeriod=e instanceof Duration?e:new Duration(e),this}_validateChecksums(e){null!=this._autoRenewAccountId&&this._autoRenewAccountId.validateChecksum(e)}_execute(e,t){return e.consensus.createTopic(t)}_getTransactionDataCase(){return"consensusCreateTopic"}_makeTransactionData(){return{adminKey:null!=this._adminKey?this._adminKey._toProtobufKey():null,submitKey:null!=this._submitKey?this._submitKey._toProtobufKey():null,autoRenewAccount:null!=this._autoRenewAccountId?this._autoRenewAccountId._toProtobuf():null,autoRenewPeriod:this._autoRenewPeriod._toProtobuf(),memo:this._topicMemo}}_getLogId(){return`TopicCreateTransaction:${this._transactionIds.current.validStart.toString()}`}}TRANSACTION_REGISTRY.set("consensusCreateTopic",TopicCreateTransaction._fromProtobuf);class TopicDeleteTransaction extends Transaction{constructor(e={}){super(),this._topicId=null,null!=e.topicId&&this.setTopicId(e.topicId)}static _fromProtobuf(e,t,r,n,o){const i=o[0].consensusDeleteTopic;return Transaction._fromProtobufTransactions(new TopicDeleteTransaction({topicId:null!=i.topicID?TopicId._fromProtobuf(i.topicID):void 0}),e,t,r,n,o)}get topicId(){return this._topicId}setTopicId(e){return this._requireNotFrozen(),this._topicId="string"==typeof e?TopicId.fromString(e):e.clone(),this}_validateChecksums(e){null!=this._topicId&&this._topicId.validateChecksum(e)}_execute(e,t){return e.consensus.deleteTopic(t)}_getTransactionDataCase(){return"consensusDeleteTopic"}_makeTransactionData(){return{topicID:null!=this._topicId?this._topicId._toProtobuf():null}}_getLogId(){return`TopicDeleteTransaction:${this._transactionIds.current.validStart.toString()}`}}TRANSACTION_REGISTRY.set("consensusDeleteTopic",TopicDeleteTransaction._fromProtobuf);class TopicInfo{constructor(e){this.topicId=e.topicId,this.topicMemo=e.topicMemo,this.runningHash=e.runningHash,this.sequenceNumber=e.sequenceNumber,this.expirationTime=e.expirationTime,this.adminKey=e.adminKey,this.submitKey=e.submitKey,this.autoRenewPeriod=e.autoRenewPeriod,this.autoRenewAccountId=e.autoRenewAccountId,this.ledgerId=e.ledgerId,Object.freeze(this)}static _fromProtobuf(e){const t=e.topicInfo;return new TopicInfo({topicId:TopicId._fromProtobuf(e.topicID),topicMemo:null!=t.memo?t.memo:"",runningHash:null!=t.runningHash?t.runningHash:new Uint8Array,sequenceNumber:null!=t.sequenceNumber?t.sequenceNumber instanceof Long$1?t.sequenceNumber:Long$1.fromValue(t.sequenceNumber):Long$1.ZERO,expirationTime:null!=t.expirationTime?Timestamp._fromProtobuf(t.expirationTime):null,adminKey:null!=t.adminKey?Key._fromProtobufKey(t.adminKey):null,submitKey:null!=t.submitKey?Key._fromProtobufKey(t.submitKey):null,autoRenewPeriod:null!=t.autoRenewPeriod?new Duration(t.autoRenewPeriod.seconds):null,autoRenewAccountId:null!=t.autoRenewAccount?AccountId._fromProtobuf(t.autoRenewAccount):null,ledgerId:null!=t.ledgerId?LedgerId.fromBytes(t.ledgerId):null})}_toProtobuf(){return{topicID:this.topicId._toProtobuf(),topicInfo:{memo:this.topicMemo,runningHash:this.runningHash,sequenceNumber:this.sequenceNumber,expirationTime:null!=this.expirationTime?this.expirationTime._toProtobuf():null,adminKey:null!=this.adminKey?this.adminKey._toProtobufKey():null,submitKey:null!=this.submitKey?this.submitKey._toProtobufKey():null,autoRenewPeriod:null!=this.autoRenewPeriod?this.autoRenewPeriod._toProtobuf():null,autoRenewAccount:null!=this.autoRenewAccountId?this.autoRenewAccountId._toProtobuf():null}}}static fromBytes(e){return TopicInfo._fromProtobuf({topicInfo:proto_1.ConsensusTopicInfo.decode(e)})}toBytes(){return proto_1.ConsensusTopicInfo.encode(this._toProtobuf().topicInfo).finish()}}class TopicInfoQuery extends Query{constructor(e={}){super(),this._topicId=null,null!=e.topicId&&this.setTopicId(e.topicId)}static _fromProtobuf(e){const t=e.consensusGetTopicInfo;return new TopicInfoQuery({topicId:null!=t.topicID?TopicId._fromProtobuf(t.topicID):void 0})}get topicId(){return this._topicId}setTopicId(e){return this._topicId="string"==typeof e?TopicId.fromString(e):e.clone(),this}async getCost(e){return super.getCost(e)}_validateChecksums(e){null!=this._topicId&&this._topicId.validateChecksum(e)}_execute(e,t){return e.consensus.getTopicInfo(t)}_mapResponseHeader(e){return e.consensusGetTopicInfo.header}_mapResponse(e,t,r){return Promise.resolve(TopicInfo._fromProtobuf(e.consensusGetTopicInfo))}_onMakeRequest(e){return{consensusGetTopicInfo:{header:e,topicID:null!=this._topicId?this._topicId._toProtobuf():null}}}_getLogId(){return`TopicInfoQuery:${(null!=this._paymentTransactionId&&null!=this._paymentTransactionId.validStart?this._paymentTransactionId.validStart:this._timestamp).toString()}`}}QUERY_REGISTRY.set("consensusGetTopicInfo",TopicInfoQuery._fromProtobuf);class TopicMessageChunk{constructor(e){this.consensusTimestamp=e.consensusTimestamp,this.contents=e.contents,this.runningHash=e.runningHash,this.sequenceNumber=e.sequenceNumber,Object.freeze(this)}static _fromProtobuf(e){return new TopicMessageChunk({consensusTimestamp:Timestamp._fromProtobuf(e.consensusTimestamp),contents:null!=e.message?e.message:new Uint8Array,runningHash:null!=e.runningHash?e.runningHash:new Uint8Array,sequenceNumber:null!=e.sequenceNumber?e.sequenceNumber instanceof Long$1?e.sequenceNumber:Long$1.fromValue(e.sequenceNumber):Long$1.ZERO})}_toProtobuf(){return{consensusTimestamp:this.consensusTimestamp._toProtobuf(),message:this.contents,runningHash:this.runningHash,sequenceNumber:this.sequenceNumber}}}class TopicMessage{constructor(e){this.consensusTimestamp=e.consensusTimestamp,this.contents=e.contents,this.runningHash=e.runningHash,this.sequenceNumber=e.sequenceNumber,this.chunks=e.chunks,this.initialTransactionId=e.initialTransactionId,Object.freeze(this)}static _ofSingle(e){return new TopicMessage({consensusTimestamp:Timestamp._fromProtobuf(e.consensusTimestamp),contents:null!=e.message?e.message:new Uint8Array,runningHash:null!=e.runningHash?e.runningHash:new Uint8Array,sequenceNumber:null!=e.sequenceNumber?e.sequenceNumber instanceof Long$1?e.sequenceNumber:Long$1.fromNumber(e.sequenceNumber):Long$1.ZERO,initialTransactionId:null!=e.chunkInfo&&null!=e.chunkInfo.initialTransactionID?TransactionId._fromProtobuf(e.chunkInfo.initialTransactionID):null,chunks:[TopicMessageChunk._fromProtobuf(e)]})}static _ofMany(e){const t=e[e.length-1],r=Timestamp._fromProtobuf(t.consensusTimestamp),n=t.runningHash,o=null!=t.sequenceNumber?t.sequenceNumber instanceof Long$1?t.sequenceNumber:Long$1.fromValue(t.sequenceNumber):Long$1.ZERO;e.sort(((e,t)=>(null!=e&&null!=e.chunkInfo&&null!=e.chunkInfo.number?e.chunkInfo.number:0)<(null!=t&&null!=t.chunkInfo&&null!=t.chunkInfo.number?t.chunkInfo.number:0)?-1:1));const i=e.map((e=>TopicMessageChunk._fromProtobuf(e))),a=i.map((e=>e.contents.length)).reduce(((e,t)=>e+t),0),s=new Uint8Array(a);let c=0;e.forEach((e=>{s.set(e.message,c),c+=e.message.length}));let u=null;return e.length>0&&null!=e[0].chunkInfo&&null!=e[0].chunkInfo.initialTransactionID&&(u=TransactionId._fromProtobuf(e[0].chunkInfo.initialTransactionID)),new TopicMessage({consensusTimestamp:r,contents:s,runningHash:n,sequenceNumber:o,chunks:i,initialTransactionId:u})}}class TopicMessageQuery extends Query{constructor(e={}){super(),this._topicId=null,null!=e.topicId&&this.setTopicId(e.topicId),this._startTime=null,null!=e.startTime&&this.setStartTime(e.startTime),this._endTime=null,null!=e.endTime&&this.setEndTime(e.endTime),this._limit=null,null!=e.limit&&this.setLimit(e.limit),this._errorHandler=(e,t)=>{console.error(`Error attempting to subscribe to topic: ${null!=this._topicId?this._topicId.toString():""}`)},null!=e.errorHandler&&(this._errorHandler=e.errorHandler),this._listener=null,this._completionHandler=()=>{this._logger&&this._logger.info(`Subscription to topic ${null!=this._topicId?this._topicId.toString():""} complete`)},null!=e.completionHandler&&(this._completionHandler=e.completionHandler),this._retryHandler=e=>{if(null!=e){if(e instanceof Error)return!0;switch(e.code){case 13:return RST_STREAM.test(e.details.toString());case 5:case 8:case 14:case 17:return!0;default:return!1}}return!1},null!=e.retryHandler&&(this._retryHandler=e.retryHandler),this._attempt=0,this._handle=null,this.setMaxBackoff(8e3)}get topicId(){return this._topicId}setTopicId(e){return this.requireNotSubscribed(),this._topicId="string"==typeof e?TopicId.fromString(e):e.clone(),this}get startTime(){return this._startTime}setStartTime(e){return this.requireNotSubscribed(),this._startTime=e instanceof Timestamp?e:e instanceof Date?Timestamp.fromDate(e):new Timestamp(e,0),this}get endTime(){return this._endTime}setEndTime(e){return this.requireNotSubscribed(),this._endTime=e instanceof Timestamp?e:e instanceof Date?Timestamp.fromDate(e):new Timestamp(e,0),this}get limit(){return this._limit}setLimit(e){return this.requireNotSubscribed(),this._limit=e instanceof Long$1?e:Long$1.fromValue(e),this}setErrorHandler(e){return this._errorHandler=e,this}setCompletionHandler(e){return this.requireNotSubscribed(),this._completionHandler=e,this}setMaxAttempts(e){return this.requireNotSubscribed(),this._maxAttempts=e,this}setMaxBackoff(e){return this.requireNotSubscribed(),this._maxBackoff=e,this}subscribe(e,t,r){return this._handle=new SubscriptionHandle,this._listener=r,null!=t&&(this._errorHandler=t),this._makeServerStreamRequest(e),this._handle}_makeServerStreamRequest(e){const t=new Map,r=com_1.hedera.mirror.api.proto.ConsensusTopicQuery.encode({topicID:null!=this._topicId?this._topicId._toProtobuf():null,consensusStartTime:null!=this._startTime?this._startTime._toProtobuf():null,consensusEndTime:null!=this._endTime?this._endTime._toProtobuf():null,limit:this._limit}).finish(),n=e._mirrorNetwork.getNextMirrorNode().getChannel().makeServerStreamRequest("ConsensusService","subscribeTopic",r,(e=>{const r=com_1.hedera.mirror.api.proto.ConsensusTopicResponse.decode(e);if(null!=this._limit&&this._limit.gt(0)&&(this._limit=this._limit.sub(1)),this._startTime=Timestamp._fromProtobuf(r.consensusTimestamp).plusNanos(1),null==r.chunkInfo||null!=r.chunkInfo&&1===r.chunkInfo.total)this._passTopicMessage(TopicMessage._ofSingle(r));else{const e=r.chunkInfo,n=e.initialTransactionID,o=e.total,i=TransactionId._fromProtobuf(n).toString();let a=[];const s=t.get(i);if(null==s?t.set(i,a):a=s,a.push(r),a.length===o){const e=TopicMessage._ofMany(a);t.delete(i),this._passTopicMessage(e)}}}),(t=>{var r;const n=t instanceof Error?t.message:t.details;if(!(null==(r=this._handle)?void 0:r._unsubscribed))if(this._attempt{this._makeServerStreamRequest(e)}),t)}else this._errorHandler(null,new Error(n))}),this._completionHandler);null!=this._handle&&this._handle._setCall((()=>n()))}requireNotSubscribed(){if(null!=this._handle)throw new Error("Cannot change fields on an already subscribed query")}_passTopicMessage(e){try{if(null==this._listener)throw new Error("(BUG) listener is unexpectedly not set");this._listener(e)}catch(t){this._errorHandler(e,t)}}}class TopicMessageSubmitTransaction extends Transaction{constructor(e={}){super(),this._topicId=null,null!=e.topicId&&this.setTopicId(e.topicId),this._message=null,null!=e.message&&this.setMessage(e.message),this._maxChunks=20,this._chunkSize=CHUNK_SIZE,null!=e.maxChunks&&this.setMaxChunks(e.maxChunks),null!=e.chunkSize&&this.setChunkSize(e.chunkSize),this._chunkInfo=null}static _fromProtobuf(e,t,r,n,o){const i=o[0].consensusSubmitMessage;return Transaction._fromProtobufTransactions(new TopicMessageSubmitTransaction({topicId:null!=i.topicID?TopicId._fromProtobuf(i.topicID):void 0,message:null!=i.message?i.message:void 0}),e,t,r,n,o)}get topicId(){return this._topicId}setTopicId(e){return this._requireNotFrozen(),this._topicId="string"==typeof e?TopicId.fromString(e):e.clone(),this}get message(){return this._message}getMessage(){return this._message}setMessage(e){return this._requireNotFrozen(),e=requireStringOrUint8Array(e),this._message=e instanceof Uint8Array?e:encode$3(e),this}get maxChunks(){return this._maxChunks}getMaxChunks(){return this._maxChunks}setMaxChunks(e){return this._requireNotFrozen(),this._maxChunks=e,this}get chunkSize(){return this._chunkSize}getChunkSize(){return this._chunkSize}setChunkSize(e){return this._chunkSize=e,this}freezeWith(e){if(super.freezeWith(e),null==this._message)return this;const t=Math.floor((this._message.length+(this._chunkSize-1))/this._chunkSize);if(t>this._maxChunks)throw new Error(`Message with size ${this._message.length} too long for ${this._maxChunks} chunks`);const r=this._getTransactionId()._toProtobuf();let n=this._getTransactionId();this._transactionIds.locked=!1,this._transactions.clear(),this._transactionIds.clear(),this._signedTransactions.clear();for(let o=0;othis._chunkSize)throw new Error(`cannot schedule \`TopicMessageSubmitTransaction\` with message over ${this._chunkSize} bytes`);return super.schedule()}async execute(e,t){return(await this.executeAll(e,t))[0]}async executeAll(e,t){super._isFrozen()||this.freezeWith(e);const r=this._getTransactionId(),n=e.operatorAccountId;null!=n&&n.equals(r.accountId)&&await super.signWithOperator(e);const o=[];let i=t;for(let a=0;athis._message.length&&(t=this._message.length),{topicID:null!=this._topicId?this._topicId._toProtobuf():null,message:this._message.slice(e,t),chunkInfo:this._chunkInfo}}return{topicID:null!=this._topicId?this._topicId._toProtobuf():null,message:this._message}}_getLogId(){return`TopicMessageSubmitTransaction:${this._transactionIds.current.validStart.toString()}`}}TRANSACTION_REGISTRY.set("consensusSubmitMessage",TopicMessageSubmitTransaction._fromProtobuf);class TopicUpdateTransaction extends Transaction{constructor(e={}){super(),this._topicId=null,null!=e.topicId&&this.setTopicId(e.topicId),this._topicMemo=null,null!=e.topicMemo&&this.setTopicMemo(e.topicMemo),this._submitKey=null,null!=e.submitKey&&this.setSubmitKey(e.submitKey),this._adminKey=null,null!=e.adminKey&&this.setAdminKey(e.adminKey),this._autoRenewAccountId=null,null!=e.autoRenewAccountId&&this.setAutoRenewAccountId(e.autoRenewAccountId),this._autoRenewPeriod=null,null!=e.autoRenewPeriod&&this.setAutoRenewPeriod(e.autoRenewPeriod),this._expirationTime=null,null!=e.expirationTime&&this.setExpirationTime(e.expirationTime)}static _fromProtobuf(e,t,r,n,o){const i=o[0].consensusUpdateTopic;return Transaction._fromProtobufTransactions(new TopicUpdateTransaction({topicId:null!=i.topicID?TopicId._fromProtobuf(i.topicID):void 0,adminKey:null!=i.adminKey?Key._fromProtobufKey(i.adminKey):void 0,submitKey:null!=i.submitKey?Key._fromProtobufKey(i.submitKey):void 0,autoRenewAccountId:null!=i.autoRenewAccount?AccountId._fromProtobuf(i.autoRenewAccount):void 0,autoRenewPeriod:null!=i.autoRenewPeriod&&null!=i.autoRenewPeriod.seconds?i.autoRenewPeriod.seconds:void 0,topicMemo:null!=i.memo&&Object.hasOwn(i.memo,"value")?i.memo.value:void 0,expirationTime:null!=i.expirationTime?Timestamp._fromProtobuf(i.expirationTime):void 0}),e,t,r,n,o)}get expirationTime(){return this._expirationTime}setExpirationTime(e){return this._requireNotFrozen(),this._expirationTime=e instanceof Date?Timestamp.fromDate(e):e,this}get topicId(){return this._topicId}setTopicId(e){return this._requireNotFrozen(),this._topicId="string"==typeof e?TopicId.fromString(e):e.clone(),this}clearTopicId(){return this._requireNotFrozen(),this._topicId=null,this}get topicMemo(){return this._topicMemo}setTopicMemo(e){return this._requireNotFrozen(),this._topicMemo=e,this}clearTopicMemo(){return this._requireNotFrozen(),this._topicMemo=null,this}get adminKey(){return this._adminKey}setAdminKey(e){return this._requireNotFrozen(),this._adminKey=e,this}clearAdminKey(){return this._requireNotFrozen(),this._adminKey=null,this}get submitKey(){return this._submitKey}setSubmitKey(e){return this._requireNotFrozen(),this._submitKey=e,this}clearSubmitKey(){return this._requireNotFrozen(),this._submitKey=null,this}get autoRenewAccountId(){return this._autoRenewAccountId}setAutoRenewAccountId(e){return this._requireNotFrozen(),this._autoRenewAccountId=e instanceof AccountId?e:AccountId.fromString(e),this}clearAutoRenewAccountId(){return this._requireNotFrozen(),this._autoRenewAccountId=null,this}get autoRenewPeriod(){return this._autoRenewPeriod}setAutoRenewPeriod(e){return this._requireNotFrozen(),this._autoRenewPeriod=e instanceof Duration?e:new Duration(e),this}_validateChecksums(e){null!=this._topicId&&this._topicId.validateChecksum(e),null!=this._autoRenewAccountId&&this._autoRenewAccountId.validateChecksum(e)}_execute(e,t){return e.consensus.updateTopic(t)}_getTransactionDataCase(){return"consensusUpdateTopic"}_makeTransactionData(){return{topicID:null!=this._topicId?this._topicId._toProtobuf():null,adminKey:null!=this._adminKey?this._adminKey._toProtobufKey():null,submitKey:null!=this._submitKey?this._submitKey._toProtobufKey():null,memo:null!=this._topicMemo?{value:this._topicMemo}:null,autoRenewAccount:null!=this._autoRenewAccountId?this._autoRenewAccountId._toProtobuf():null,autoRenewPeriod:null!=this._autoRenewPeriod?this._autoRenewPeriod._toProtobuf():null,expirationTime:null!=this._expirationTime?this._expirationTime._toProtobuf():null}}_getLogId(){return`TopicUpdateTransaction:${this._transactionIds.current.validStart.toString()}`}}TRANSACTION_REGISTRY.set("consensusUpdateTopic",TopicUpdateTransaction._fromProtobuf);class HbarTransferMap extends ObjectMap{constructor(){super((e=>AccountId.fromString(e)))}static _fromProtobuf(e){const t=new HbarTransferMap;for(const r of null!=e.accountAmounts?e.accountAmounts:[]){const e=AccountId._fromProtobuf(r.accountID);t._set(e,Hbar.fromTinybars(r.amount))}return t}}class TransferTransaction extends AbstractTokenTransferTransaction{constructor(e={}){super(),this._hbarTransfers=[],this._defaultMaxTransactionFee=new Hbar(1);for(const t of null!=e.hbarTransfers?e.hbarTransfers:[])this.addHbarTransfer(t.accountId,t.amount)}static _fromProtobuf(e,t,r,n,o){const i=o[0].cryptoTransfer,a=new TransferTransaction;return a._tokenTransfers=TokenTransfer._fromProtobuf(null!=i.tokenTransfers?i.tokenTransfers:[]),a._hbarTransfers=Transfer._fromProtobuf(null!=i.transfers&&null!=i.transfers.accountAmounts?i.transfers.accountAmounts:[]),a._nftTransfers=TokenNftTransfer._fromProtobuf(null!=i.tokenTransfers?i.tokenTransfers:[]),Transaction._fromProtobufTransactions(a,e,t,r,n,o)}get hbarTransfers(){const e=new HbarTransferMap;for(const t of this._hbarTransfers)e._set(t.accountId,t.amount);return e}get hbarTransfersList(){return this._hbarTransfers}_addHbarTransfer(e,t,r){this._requireNotFrozen();const n=e instanceof AccountId?e.clone():AccountId.fromString(e),o=t instanceof Hbar?t:new Hbar(t);for(const i of this._hbarTransfers)if(0===i.accountId.compare(n))return i.amount=Hbar.fromTinybars(i.amount.toTinybars().add(o.toTinybars())),this;return this._hbarTransfers.push(new Transfer({accountId:n,amount:o,isApproved:r})),this}addHbarTransfer(e,t){return this._addHbarTransfer(e,t,!1)}addApprovedHbarTransfer(e,t){return this._addHbarTransfer(e,t,!0)}_validateChecksums(e){for(const t of this._hbarTransfers)t.accountId.validateChecksum(e);for(const t of this._tokenTransfers)t.tokenId.validateChecksum(e),t.accountId.validateChecksum(e);for(const t of this._nftTransfers)t.tokenId.validateChecksum(e),t.senderAccountId.validateChecksum(e),t.receiverAccountId.validateChecksum(e)}setHbarTransferApproval(e,t){const r="string"==typeof e?AccountId.fromString(e):e;for(const n of this._hbarTransfers)0===n.accountId.compare(r)&&(n.isApproved=t);return this}setTokenTransferApproval(e,t,r){const n="string"==typeof e?TokenId.fromString(e):e,o="string"==typeof t?AccountId.fromString(t):t;for(const i of this._tokenTransfers)0===i.tokenId.compare(n)&&0===i.accountId.compare(o)&&(i.isApproved=r);return this}setNftTransferApproval(e,t){const r="string"==typeof e?NftId.fromString(e):e;for(const n of this._nftTransfers)0===n.tokenId.compare(r.tokenId)&&0===n.serialNumber.compare(r.serial)&&(n.isApproved=t);return this}_execute(e,t){return e.crypto.cryptoTransfer(t)}_getTransactionDataCase(){return"cryptoTransfer"}_makeTransactionData(){const{tokenTransfers:e}=super._makeTransactionData();return this._hbarTransfers.sort(((e,t)=>e.accountId.compare(t.accountId))),{transfers:{accountAmounts:this._hbarTransfers.map((e=>({accountID:e.accountId._toProtobuf(),amount:e.amount.toTinybars(),isApproval:e.isApproved})))},tokenTransfers:e}}_getLogId(){return`TransferTransaction:${this._transactionIds.current.validStart.toString()}`}}TRANSACTION_REGISTRY.set("cryptoTransfer",TransferTransaction._fromProtobuf);class Wallet{constructor(e,t,r){const n="string"==typeof t?PrivateKey.fromStringDer(t):t;this.publicKey=n.publicKey,this.signer=e=>Promise.resolve(n.sign(e)),this.provider=r,this.accountId="string"==typeof e?AccountId.fromString(e):e}static createRandomED25519(){const e=PrivateKey.generateED25519(),t=e.publicKey.toAccountId(0,0);return Promise.resolve(new Wallet(t,e))}static createRandomECDSA(){const e=PrivateKey.generateECDSA(),t=e.publicKey.toAccountId(0,0);return Promise.resolve(new Wallet(t,e))}getProvider(){return this.provider}getAccountId(){return this.accountId}getAccountKey(){return this.publicKey}getLedgerId(){return null==this.provider?null:this.provider.getLedgerId()}getNetwork(){return null==this.provider?{}:this.provider.getNetwork()}getMirrorNetwork(){return null==this.provider?[]:this.provider.getMirrorNetwork()}async sign(e){const t=[];for(const r of e)t.push(new SignerSignature({publicKey:this.publicKey,signature:await this.signer(r),accountId:this.accountId}));return t}getAccountBalance(){return this.call((new AccountBalanceQuery).setAccountId(this.accountId))}getAccountInfo(){return this.call((new AccountInfoQuery).setAccountId(this.accountId))}getAccountRecords(){return this.call((new AccountRecordsQuery).setAccountId(this.accountId))}signTransaction(e){return e.signWith(this.publicKey,this.signer)}checkTransaction(e){const t=e.transactionId;if(null!=t&&null!=t.accountId&&0!=t.accountId.compare(this.accountId))throw new Error("transaction's ID constructed with a different account ID");if(null==this.provider)return Promise.resolve(e);const r=(null!=e.nodeAccountIds?e.nodeAccountIds:[]).map((e=>e.toString())),n=Object.values(this.provider.getNetwork()).map((e=>e.toString()));if(!r.reduce(((e,t)=>e&&n.includes(t)),!0))throw new Error("Transaction already set node account IDs to values not within the current network");return Promise.resolve(e)}populateTransaction(e){if(e._freezeWithAccountId(this.accountId),null==e.transactionId&&e.setTransactionId(TransactionId.generate(this.accountId)),null!=e.nodeAccountIds&&0!=e.nodeAccountIds.length)return Promise.resolve(e.freeze());if(null==this.provider)return Promise.resolve(e);const t=Object.values(this.provider.getNetwork()).map((e=>"string"==typeof e?AccountId.fromString(e):e));return shuffle(t),e.setNodeAccountIds(t.slice(0,(t.length+3-1)/3)),Promise.resolve(e.freeze())}call(e){if(null==this.provider)throw new Error("cannot send request with an wallet that doesn't contain a provider");return this.provider.call(e._setOperatorWith(this.accountId,this.publicKey,this.signer))}}var browser$4={exports:{}};function tryStringify(e){try{return JSON.stringify(e)}catch(e2){return'"[Circular]"'}}var quickFormatUnescaped=format$3;function format$3(e,t,r){var n=r&&r.stringify||tryStringify;if("object"==typeof e&&null!==e){var o=t.length+1;if(1===o)return e;var i=new Array(o);i[0]=n(e);for(var a=1;a-1?l:0,e.charCodeAt(f+1)){case 100:case 102:if(u>=s)break;if(null==t[u])break;l=s)break;if(null==t[u])break;l=s)break;if(void 0===t[u])break;l",l=f+2,f++;break}c+=n(t[u]),l=f+2,f++;break;case 115:if(u>=s)break;l{n[e]=r[e]?r[e]:_console$1[e]||_console$1[logFallbackMap[e]||"log"]||noop$3})),e[baseLogFunctionSymbol]=n}function shouldSerialize$1(e,t){if(Array.isArray(e)){return e.filter((function(e){return"!stdSerializers.err"!==e}))}return!0===e&&Object.keys(t)}function pino$1(e){(e=e||{}).browser=e.browser||{};const t=e.browser.transmit;if(t&&"function"!=typeof t.send)throw Error("pino: transmit option must have a send function");const r=e.browser.write||_console$1;e.browser.write&&(e.browser.asObject=!0);const n=e.serializers||{},o=shouldSerialize$1(e.browser.serialize,n);let i=e.browser.serialize;Array.isArray(e.browser.serialize)&&e.browser.serialize.indexOf("!stdSerializers.err")>-1&&(i=!1);const a=Object.keys(e.customLevels||{}),s=["error","fatal","warn","info","debug","trace"].concat(a);"function"==typeof r&&s.forEach((function(e){r[e]=r})),(!1===e.enabled||e.browser.disabled)&&(e.level="silent");const c=e.level||"info",u=Object.create(r);u.log||(u.log=noop$3),setupBaseLogFunctions(u,s,r),appendChildLogger({},u),Object.defineProperty(u,"levelVal",{get:function(){return levelToValue(this.level,this)}}),Object.defineProperty(u,"level",{get:function(){return this._level},set:function(e){if("silent"!==e&&!this.levels.values[e])throw Error("unknown level "+e);this._level=e,set$2(this,l,u,"error"),set$2(this,l,u,"fatal"),set$2(this,l,u,"warn"),set$2(this,l,u,"info"),set$2(this,l,u,"debug"),set$2(this,l,u,"trace"),a.forEach((e=>{set$2(this,l,u,e)}))}});const l={transmit:t,serialize:o,asObject:e.browser.asObject,formatters:e.browser.formatters,levels:s,timestamp:getTimeFunction$1(e)};return u.levels=getLevels(e),u.level=c,u.setMaxListeners=u.getMaxListeners=u.emit=u.addListener=u.on=u.prependListener=u.once=u.prependOnceListener=u.removeListener=u.removeAllListeners=u.listeners=u.listenerCount=u.eventNames=u.write=u.flush=noop$3,u.serializers=n,u._serialize=o,u._stdErrSerialize=i,u.child=function(r,i){if(!r)throw new Error("missing bindings for child Pino");i=i||{},o&&r.serializers&&(i.serializers=r.serializers);const a=i.serializers;if(o&&a){var s=Object.assign({},n,a),c=!0===e.browser.serialize?Object.keys(s):o;delete r.serializers,applySerializers$1([r],c,s,this._stdErrSerialize)}function u(e){this._childLevel=1+(0|e._childLevel),this.bindings=r,s&&(this.serializers=s,this._serialize=c),t&&(this._logEvent=createLogEventShape$1([].concat(e._logEvent.bindings,r)))}u.prototype=this;const l=new u(this);return appendChildLogger(this,l),l.level=this.level,l},t&&(u._logEvent=createLogEventShape$1()),u}function getLevels(e){const t=e.customLevels||{};return{values:Object.assign({},pino$1.levels.values,t),labels:Object.assign({},pino$1.levels.labels,invertObject(t))}}function invertObject(e){const t={};return Object.keys(e).forEach((function(r){t[e[r]]=r})),t}function getBindingChain(e){const t=[];e.bindings&&t.push(e.bindings);let r=e[hierarchySymbol];for(;r.parent;)r=r.parent,r.logger.bindings&&t.push(r.logger.bindings);return t.reverse()}function set$2(e,t,r,n){if(Object.defineProperty(e,n,{value:levelToValue(e.level,r)>levelToValue(n,r)?noop$3:r[baseLogFunctionSymbol][n],writable:!0,enumerable:!0,configurable:!0}),!t.transmit&&e[n]===noop$3)return;e[n]=createWrap(e,t,r,n);const o=getBindingChain(e);0!==o.length&&(e[n]=prependBindingsInArguments(o,e[n]))}function prependBindingsInArguments(e,t){return function(){return t.apply(this,[...e,...arguments])}}function createWrap(e,t,r,n){return function(o){return function(){const i=t.timestamp(),a=new Array(arguments.length),s=Object.getPrototypeOf&&Object.getPrototypeOf(this)===_console$1?_console$1:this;for(var c=0;ce.levels.values[t],log:a=e=>e}=o;e._serialize&&applySerializers$1(r,e._serialize,e.serializers,e._stdErrSerialize);const s=r.slice();let c=s[0];const u={};n&&(u.time=n),u.level=i(t,e.levels.values[t]);let l=1+(0|e._childLevel);if(l<1&&(l=1),null!==c&&"object"==typeof c){for(;l--&&"object"==typeof s[0];)Object.assign(u,s.shift());c=s.length?format$2(s.shift(),s):void 0}else"string"==typeof c&&(c=format$2(s.shift(),s));void 0!==c&&(u.msg=c);return a(u)}function applySerializers$1(e,t,r,n){for(const o in e)if(n&&e[o]instanceof Error)e[o]=pino$1.stdSerializers.err(e[o]);else if("object"==typeof e[o]&&!Array.isArray(e[o]))for(const n in e[o])t&&t.indexOf(n)>-1&&n in r&&(e[o][n]=r[n](e[o][n]))}function transmit$1(e,t,r){const n=t.send,o=t.ts,i=t.methodLevel,a=t.methodValue,s=t.val,c=e._logEvent.bindings;applySerializers$1(r,e._serialize||Object.keys(e.serializers),e.serializers,void 0===e._stdErrSerialize||e._stdErrSerialize),e._logEvent.ts=o,e._logEvent.messages=r.filter((function(e){return-1===c.indexOf(e)})),e._logEvent.level.label=i,e._logEvent.level.value=a,n(i,e._logEvent,s),e._logEvent=createLogEventShape$1(c)}function createLogEventShape$1(e){return{ts:0,messages:[],bindings:e||[],level:{label:"",value:0}}}function asErrValue$1(e){const t={type:e.constructor.name,msg:e.message,stack:e.stack};for(const r in e)void 0===t[r]&&(t[r]=e[r]);return t}function getTimeFunction$1(e){return"function"==typeof e.timestamp?e.timestamp:!1===e.timestamp?nullTime$1:epochTime$1}function mock$1(){return{}}function passthrough$1(e){return e}function noop$3(){}function nullTime$1(){return!1}function epochTime$1(){return Date.now()}function unixTime$1(){return Math.round(Date.now()/1e3)}function isoTime$1(){return new Date(Date.now()).toISOString()}function pfGlobalThisOrFallback$1(){function e(e){return void 0!==e&&e}try{return"undefined"!=typeof globalThis||Object.defineProperty(Object.prototype,"globalThis",{get:function(){return delete Object.prototype.globalThis,this.globalThis=this},configurable:!0}),globalThis}catch(e2){return e(self)||e(window)||e(this)||{}}}pino$1.levels={values:{fatal:60,error:50,warn:40,info:30,debug:20,trace:10},labels:{10:"trace",20:"debug",30:"info",40:"warn",50:"error",60:"fatal"}},pino$1.stdSerializers=stdSerializers$1,pino$1.stdTimeFunctions=Object.assign({},{nullTime:nullTime$1,epochTime:epochTime$1,unixTime:unixTime$1,isoTime:isoTime$1}),browser$4.exports.default=pino$1,browser$4.exports.pino=pino$1;var browserExports=browser$4.exports;const pino$2=getDefaultExportFromCjs$1(browserExports);class LogLevel{constructor(e){this._name=e,Object.freeze(this)}toString(){switch(this){case LogLevel.Silent:return"silent";case LogLevel.Trace:return"trace";case LogLevel.Debug:return"debug";case LogLevel.Info:return"info";case LogLevel.Warn:return"warn";case LogLevel.Error:return"error";case LogLevel.Fatal:return"fatal";default:return`Unknown log level (${this._name})`}}static _fromString(e){switch(e){case"silent":return LogLevel.Silent;case"trace":return LogLevel.Trace;case"debug":return LogLevel.Debug;case"info":return LogLevel.Info;case"warn":return LogLevel.Warn;case"error":return LogLevel.Error;case"fatal":return LogLevel.Fatal;default:throw new Error(`Unknown log level: ${e}`)}}}LogLevel.Silent=new LogLevel("silent"),LogLevel.Trace=new LogLevel("trace"),LogLevel.Debug=new LogLevel("debug"),LogLevel.Info=new LogLevel("info"),LogLevel.Warn=new LogLevel("warn"),LogLevel.Error=new LogLevel("error"),LogLevel.Fatal=new LogLevel("fatal");class Logger{constructor(e,t="",r=!0,n=!0,o=!0,i=0){const a=t?pino$2.destination({dest:t,sync:r,fsync:n,mkdir:o,minLength:i}):null,s=a?{level:e.toString(),timestamp:pino$2.stdTimeFunctions.isoTime,formatters:{bindings:()=>({}),level:e=>({level:e.toUpperCase()})}}:{level:e.toString(),transport:{target:"pino-pretty",options:{translateTime:"SYS:dd-mm-yyyy HH:MM:ss",ignore:"pid,hostname"}}};this._logger=a?pino$2(s,a):pino$2(s),this._previousLevel=e}setLogger(e){return this._logger=e,this}setLevel(e){return this._previousLevel=LogLevel._fromString(this._logger.level),this._logger.level=e.toString(),this}get level(){return LogLevel._fromString(this._logger.level)}get levels(){return this._logger.levels.labels}setSilent(e){return this._logger.level=e?LogLevel.Silent.toString():this._previousLevel.toString(),this}get silent(){return this._logger.level==LogLevel.Silent.toString()}trace(e){this._logger.trace(e)}debug(e){this._logger.debug(e)}info(e){this._logger.info(e)}warn(e){this._logger.warn(e)}error(e){this._logger.error(e)}fatal(e){this._logger.fatal(e)}}class TokenUpdateNftsTransaction extends Transaction{constructor(e={}){super(),this._tokenId=null,this._serialNumbers=[],this._metadata=null,null!=e.tokenId&&this.setTokenId(e.tokenId),null!=e.serialNumbers&&this.setSerialNumbers(e.serialNumbers),null!=e.metadata&&this.setMetadata(e.metadata)}static _fromProtobuf(e,t,r,n,o){const i=o[0].tokenUpdateNfts;return Transaction._fromProtobufTransactions(new TokenUpdateNftsTransaction({tokenId:null!=i.token?TokenId._fromProtobuf(i.token):void 0,serialNumbers:null!=i.serialNumbers?i.serialNumbers:[],metadata:null!=i.metadata&&Object.hasOwn(i.metadata,"value")?i.metadata.value:void 0}),e,t,r,n,o)}setTokenId(e){return this._requireNotFrozen(),this._tokenId="string"==typeof e?TokenId.fromString(e):e.clone(),this}setSerialNumbers(e){return this._requireNotFrozen(),this._serialNumbers=e,this}setMetadata(e){return this._requireNotFrozen(),this._metadata=e,this}_validateChecksums(e){null!=this._tokenId&&this._tokenId.validateChecksum(e)}_execute(e,t){return e.token.pauseToken(t)}_getTransactionDataCase(){return"tokenUpdateNfts"}_makeTransactionData(){return{token:null!=this._tokenId?this._tokenId._toProtobuf():null,serialNumbers:null!=this._serialNumbers?this._serialNumbers:[],...null!=this._metadata?{metadata:{value:this._metadata}}:null}}_getLogId(){return`TokenUpdateNftsTransaction:${this._transactionIds.current.validStart.toString()}`}}TRANSACTION_REGISTRY.set("tokenUpdateNfts",TokenUpdateNftsTransaction._fromProtobuf);class ServiceEndpoint{constructor(e){this._ipAddressV4=null!=(null==e?void 0:e.ipAddressV4)?e.ipAddressV4:null,this._port=null!=(null==e?void 0:e.port)?e.port:null,this._domainName=null!=(null==e?void 0:e.domainName)?e.domainName:null}setIpAddressV4(e){if(null!=this._domainName)throw new Error("Cannot set IP address when domain name is already set.");return this._ipAddressV4=e,this}get getIpAddressV4(){return this._ipAddressV4}setPort(e){return this._port=e,this}get getPort(){return this._port}setDomainName(e){if(null!=this._ipAddressV4)throw new Error("Cannot set domain name when IP address is already set.");return this._domainName=e,this}get getDomainName(){return this._domainName}static _fromProtobuf(e){return new ServiceEndpoint({ipAddressV4:null!=e.ipAddressV4?e.ipAddressV4:void 0,port:null!=e.port?e.port:void 0,domainName:null!=e.domainName?e.domainName:void 0})}_toProtobuf(){return{ipAddressV4:this._ipAddressV4,port:this._port,domainName:this._domainName}}}const DESCRIPTION_MAX_LENGTH$1=100,GOSSIP_ENDPOINTS_MAX_LENGTH$1=10,SERVICE_ENDPOINTS_MAX_LENGTH$1=8;class NodeCreateTransaction extends Transaction{constructor(e){super(),this._accountId=null!=(null==e?void 0:e.accountId)?e.accountId:null,this._description=null!=(null==e?void 0:e.description)?e.description:null,this._gossipEndpoints=null!=(null==e?void 0:e.gossipEndpoints)?e.gossipEndpoints:null,this._serviceEndpoints=null!=(null==e?void 0:e.serviceEndpoints)?e.serviceEndpoints:null,this._gossipCaCertificate=null!=(null==e?void 0:e.gossipCaCertificate)?e.gossipCaCertificate:null,this._grpcCertificateHash=null!=(null==e?void 0:e.grpcCertificateHash)?e.grpcCertificateHash:null,this._adminKey=null!=(null==e?void 0:e.adminKey)?e.adminKey:null}static _fromProtobuf(e,t,r,n,o){const i=o[0].nodeCreate;return Transaction._fromProtobufTransactions(new NodeCreateTransaction({accountId:null!=i.accountId?AccountId._fromProtobuf(i.accountId):void 0,description:null!=i.description?i.description:void 0,gossipEndpoints:null!=i.gossipEndpoint?i.gossipEndpoint.map((e=>ServiceEndpoint._fromProtobuf(e))):void 0,serviceEndpoints:null!=i.serviceEndpoint?i.serviceEndpoint.map((e=>ServiceEndpoint._fromProtobuf(e))):void 0,gossipCaCertificate:null!=i.gossipCaCertificate?i.gossipCaCertificate:void 0,grpcCertificateHash:null!=i.grpcCertificateHash?i.grpcCertificateHash:void 0,adminKey:null!=i.adminKey?Key._fromProtobufKey(i.adminKey):void 0}),e,t,r,n,o)}setAccountId(e){return this._requireNotFrozen(),this._accountId=e instanceof AccountId?e:AccountId.fromString(e),this}get accountId(){return this._accountId}setDescription(e){if(this._requireNotFrozen(),e.length>DESCRIPTION_MAX_LENGTH$1)throw new Error(`Description must be at most ${DESCRIPTION_MAX_LENGTH$1} characters.`);return this._description=e,this}get description(){return this._description}setGossipEndpoints(e){if(this._requireNotFrozen(),0==e.length)throw new Error("GossipEndpoints list must not be empty.");if(e.length>GOSSIP_ENDPOINTS_MAX_LENGTH$1)throw new Error(`GossipEndpoints list must not contain more than ${GOSSIP_ENDPOINTS_MAX_LENGTH$1} entries.`);return this._gossipEndpoints=[...e],this}get gossipEndpoints(){return this._gossipEndpoints}addGossipEndpoint(e){return null!=this._gossipEndpoints&&this._gossipEndpoints.push(e),this}setServiceEndpoints(e){if(this._requireNotFrozen(),0==e.length)throw new Error("ServiceEndpoints list must not be empty.");if(e.length>SERVICE_ENDPOINTS_MAX_LENGTH$1)throw new Error(`ServiceEndpoints list must not contain more than ${SERVICE_ENDPOINTS_MAX_LENGTH$1} entries.`);return this._serviceEndpoints=[...e],this}get serviceEndpoints(){return this._serviceEndpoints}addServiceEndpoint(e){return null!=this._serviceEndpoints&&this._serviceEndpoints.push(e),this}setGossipCaCertificate(e){if(this._requireNotFrozen(),0==e.length)throw new Error("GossipCaCertificate must not be empty.");return this._gossipCaCertificate=e,this}get gossipCaCertificate(){return this._gossipCaCertificate}setCertificateHash(e){return this._requireNotFrozen(),this._grpcCertificateHash=e,this}get certificateHash(){return this._grpcCertificateHash}setAdminKey(e){return this._requireNotFrozen(),this._adminKey=e,this}get adminKey(){return this._adminKey}_execute(e,t){return e.addressBook.createNode(t)}_getTransactionDataCase(){return"nodeCreate"}_makeTransactionData(){return{accountId:null!=this._accountId?this._accountId._toProtobuf():null,description:null!=this._description?this._description:null,gossipEndpoint:null!=this._gossipEndpoints?this._gossipEndpoints.map((e=>e._toProtobuf())):null,serviceEndpoint:null!=this._serviceEndpoints?this._serviceEndpoints.map((e=>e._toProtobuf())):null,gossipCaCertificate:null!=this._gossipCaCertificate?this._gossipCaCertificate:null,grpcCertificateHash:null!=this._grpcCertificateHash?this._grpcCertificateHash:null,adminKey:null!=this._adminKey?this._adminKey._toProtobufKey():null}}_getLogId(){return`NodeCreateTransaction:${this._transactionIds.current.validStart.toString()}`}}TRANSACTION_REGISTRY.set("nodeCreate",NodeCreateTransaction._fromProtobuf);class NodeDeleteTransaction extends Transaction{constructor(e){super(),this._nodeId=null!=(null==e?void 0:e.nodeId)?e.nodeId:null}static _fromProtobuf(e,t,r,n,o){const i=o[0].nodeDelete;return Transaction._fromProtobufTransactions(new NodeDeleteTransaction({nodeId:null!=i.nodeId?i.nodeId:void 0}),e,t,r,n,o)}setNodeId(e){return this._nodeId=e,this}get nodeId(){return this._nodeId}_execute(e,t){return e.addressBook.deleteNode(t)}_getTransactionDataCase(){return"nodeDelete"}_makeTransactionData(){return{nodeId:null!=this._nodeId?this._nodeId:null}}_getLogId(){return`NodeDeleteTransaction:${this._transactionIds.current.validStart.toString()}`}}TRANSACTION_REGISTRY.set("nodeDelete",NodeDeleteTransaction._fromProtobuf);const DESCRIPTION_MAX_LENGTH=100,GOSSIP_ENDPOINTS_MAX_LENGTH=10,SERVICE_ENDPOINTS_MAX_LENGTH=8;class NodeUpdateTransaction extends Transaction{constructor(e){super(),this._nodeId=null!=(null==e?void 0:e.nodeId)?e.nodeId:null,this._accountId=null!=(null==e?void 0:e.accountId)?e.accountId:null,this._description=null!=(null==e?void 0:e.description)?e.description:null,this._gossipEndpoints=null!=(null==e?void 0:e.gossipEndpoints)?e.gossipEndpoints:null,this._serviceEndpoints=null!=(null==e?void 0:e.serviceEndpoints)?e.serviceEndpoints:null,this._gossipCaCertificate=null!=(null==e?void 0:e.gossipCaCertificate)?e.gossipCaCertificate:null,this._grpcCertificateHash=null!=(null==e?void 0:e.grpcCertificateHash)?e.grpcCertificateHash:null,this._adminKey=null!=(null==e?void 0:e.adminKey)?e.adminKey:null}static _fromProtobuf(e,t,r,n,o){const i=o[0].nodeUpdate;return Transaction._fromProtobufTransactions(new NodeUpdateTransaction({nodeId:null!=i.nodeId?i.nodeId:void 0,accountId:null!=i.accountId?AccountId._fromProtobuf(i.accountId):void 0,description:null!=i.description&&Object.hasOwn(i.description,"value")?i.description.value:void 0,gossipEndpoints:null!=i.gossipEndpoint?i.gossipEndpoint.map((e=>ServiceEndpoint._fromProtobuf(e))):void 0,serviceEndpoints:null!=i.serviceEndpoint?i.serviceEndpoint.map((e=>ServiceEndpoint._fromProtobuf(e))):void 0,gossipCaCertificate:null!=i.gossipCaCertificate&&Object.hasOwn(i.gossipCaCertificate,"value")?i.gossipCaCertificate.value:void 0,grpcCertificateHash:null!=i.grpcCertificateHash&&Object.hasOwn(i.grpcCertificateHash,"value")?i.grpcCertificateHash.value:void 0,adminKey:null!=i.adminKey?Key._fromProtobufKey(i.adminKey):void 0}),e,t,r,n,o)}setNodeId(e){return this._requireNotFrozen(),this._nodeId=e,this}get nodeId(){return this._nodeId}setAccountId(e){return this._requireNotFrozen(),this._accountId=e instanceof AccountId?e:AccountId.fromString(e),this}get accountId(){return this._accountId}setDescription(e){if(this._requireNotFrozen(),e.length>DESCRIPTION_MAX_LENGTH)throw new Error(`Description must be at most ${DESCRIPTION_MAX_LENGTH} characters.`);return this._description=e,this}clearDescription(){this._description=""}get description(){return this._description}setGossipEndpoints(e){if(this._requireNotFrozen(),0==e.length)throw new Error("GossipEndpoints list must not be empty.");if(e.length>GOSSIP_ENDPOINTS_MAX_LENGTH)throw new Error(`GossipEndpoints list must not contain more than ${GOSSIP_ENDPOINTS_MAX_LENGTH} entries.`);return this._gossipEndpoints=[...e],this}get gossipEndpoints(){return this._gossipEndpoints}addGossipEndpoint(e){return this._requireNotFrozen(),null!=this._gossipEndpoints&&this._gossipEndpoints.push(e),this}setServiceEndpoints(e){if(this._requireNotFrozen(),0==e.length)throw new Error("ServiceEndpoints list must not be empty.");if(e.length>SERVICE_ENDPOINTS_MAX_LENGTH)throw new Error(`ServiceEndpoints list must not contain more than ${SERVICE_ENDPOINTS_MAX_LENGTH} entries.`);return this._serviceEndpoints=[...e],this}get serviceEndpoints(){return this._serviceEndpoints}addServiceEndpoint(e){return this._requireNotFrozen(),null!=this._serviceEndpoints&&this._serviceEndpoints.push(e),this}setGossipCaCertificate(e){if(this._requireNotFrozen(),0==e.length)throw new Error("GossipCaCertificate must not be empty.");return this._gossipCaCertificate=e,this}get gossipCaCertificate(){return this._gossipCaCertificate}setCertificateHash(e){return this._requireNotFrozen(),this._grpcCertificateHash=e,this}get certificateHash(){return this._grpcCertificateHash}setAdminKey(e){return this._requireNotFrozen(),this._adminKey=e,this}get adminKey(){return this._adminKey}_execute(e,t){return e.addressBook.updateNode(t)}_getTransactionDataCase(){return"nodeUpdate"}_makeTransactionData(){return{accountId:null!=this._accountId?this._accountId._toProtobuf():null,description:{value:null!=this._description?this._description:null},gossipEndpoint:null!=this._gossipEndpoints?this._gossipEndpoints.map((e=>e._toProtobuf())):null,serviceEndpoint:null!=this._serviceEndpoints?this._serviceEndpoints.map((e=>e._toProtobuf())):null,gossipCaCertificate:null!=this._gossipCaCertificate?{value:this._gossipCaCertificate}:null,grpcCertificateHash:null!=this._grpcCertificateHash?{value:this._grpcCertificateHash}:null,adminKey:null!=this._adminKey?this._adminKey._toProtobufKey():null,nodeId:null!=this._nodeId?this._nodeId:null}}_getLogId(){return`NodeUpdateTransaction:${this._transactionIds.current.validStart.toString()}`}}TRANSACTION_REGISTRY.set("nodeUpdate",NodeUpdateTransaction._fromProtobuf);const HOST_AND_PORT=/^(\S+):(\d+)$/;class ManagedNodeAddress{constructor(e={}){if(null!=e.address){const t=HOST_AND_PORT.exec(e.address);if(null==t)throw new Error(`failed to parse address: ${e.address}`);this._address=t[1],this._port=null!=t[2]?parseInt(t[2]):null}else{if(null==e.host||null==e.port)throw new Error(`failed to create a managed node address: ${JSON.stringify(e)}`);this._address=e.host,this._port=e.port}Object.freeze(this)}static fromString(e){return new ManagedNodeAddress({address:e})}toInsecure(){let e=50212===this.port?50211:this.port;return new ManagedNodeAddress({host:this.address,port:e})}toSecure(){let e=50211===this.port?50212:this.port;return new ManagedNodeAddress({host:this.address,port:e})}get address(){return this._address}get port(){return this._port}isTransportSecurity(){return 50212==this._port||443==this._port}toString(){return null==this.port?this.address:`${this.address}:${this.port}`}}class ManagedNode{constructor(e={}){if(null!=e.newNode)this._address="string"==typeof e.newNode.address?ManagedNodeAddress.fromString(e.newNode.address):e.newNode.address,this._cert=void 0,this._channel=null,this._channelInitFunction=e.newNode.channelInitFunction,this._lastUsed=Date.now(),this._readmitTime=Date.now(),this._useCount=0,this._badGrpcStatusCount=0,this._minBackoff=8e3,this._maxBackoff=36e5,this._currentBackoff=this._minBackoff;else{if(null==e.cloneNode)throw new Error(`failed to create ManagedNode: ${JSON.stringify(e)}`);this._address=e.cloneNode.address,this._cert=e.cloneNode.node._cert,this._channel=e.cloneNode.node._channel,this._channelInitFunction=e.cloneNode.node._channelInitFunction,this._currentBackoff=e.cloneNode.node._currentBackoff,this._lastUsed=e.cloneNode.node._lastUsed,this._readmitTime=e.cloneNode.node._readmitTime,this._useCount=e.cloneNode.node._useCount,this._badGrpcStatusCount=e.cloneNode.node._badGrpcStatusCount,this._minBackoff=e.cloneNode.node._minBackoff,this._maxBackoff=e.cloneNode.node._minBackoff}}getKey(){throw new Error("not implemented")}setCert(e){return this}get address(){return this._address}get attempts(){return this._badGrpcStatusCount}get minBackoff(){return this._minBackoff}setMinBackoff(e){return this._currentBackoff<=e&&(this._currentBackoff=e),this._minBackoff=e,this}get maxBackoff(){return this._maxBackoff}setMaxBackoff(e){return this._currentBackoff<=e&&(this._currentBackoff=e),this._maxBackoff=e,this}getChannel(){return this._useCount++,this.__lastUsed=Date.now(),null!=this._channel||(this._channel=this._channelInitFunction(this.address.toString(),this._cert)),this._channel}isHealthy(){return this._readmitTime<=Date.now()}increaseBackoff(){this._currentBackoff=Math.min(2*this._currentBackoff,this._maxBackoff),this._readmitTime=Date.now()+this._currentBackoff}decreaseBackoff(){this._currentBackoff=Math.max(this._currentBackoff/2,this._minBackoff)}getRemainingTime(){return this._readmitTime-this._lastUsed}backoff(){return new Promise((e=>setTimeout(e,this.getRemainingTime())))}compare(e){let t=this.getRemainingTime()-e.getRemainingTime();return 0!=t?t:(t=this._currentBackoff-e._currentBackoff,0!=t?t:(t=this._badGrpcStatusCount-e._badGrpcStatusCount,0!=t?t:(t=this._useCount-e._useCount,0!=t?t:this._lastUsed-e._lastUsed)))}close(){null!=this._channel&&this._channel.close(),this._channel=null}}let Node$1=class e extends ManagedNode{constructor(e={}){if(super(e),null!=e.newNode)this._accountId=e.newNode.accountId,this._nodeAddress=null;else{if(null==e.cloneNode)throw new Error(`failed to create node: ${JSON.stringify(e)}`);this._accountId=e.cloneNode.node._accountId,this._nodeAddress=e.cloneNode.node._nodeAddress}}getKey(){return this._accountId.toString()}toInsecure(){return new e({cloneNode:{node:this,address:this._address.toInsecure()}})}toSecure(){return new e({cloneNode:{node:this,address:this._address.toSecure()}})}get accountId(){return this._accountId}get nodeAddress(){return this._nodeAddress}setNodeAddress(e){return this._nodeAddress=e,this}};const PREVIEWNET_ADDRESS_BOOK=NodeAddressBook._fromProtobuf(proto_1.NodeAddressBook.decode(decode$a("0ad0070a0e33352e3233312e3230382e31343810a388031a05302e302e3322cc0633303832303161323330306430363039326138363438383666373064303130313031303530303033383230313866303033303832303138613032383230313831303039663166386131323163326664366337366664353038643365343239663063363462636234346338326137303537333535326161646361643037313536396537323139353866356135643039663935383766666166636662653533343161326630313134616361653334366566336339303231336433343336656262323766343335306339393063356338633366386531653336373037626330386434323536303832336533663234653039613033616430393535613530393830313936323964643034623237623235316463653035356633646463623061343164363666303934316230623837636466653334393864343630333861623564663036663632613561646530383539383537336138386338663538363064633134393261366531383634383561396231333235306536643137623830636433396335633831393130396537336361373332646232336566386261613737366563383563653030393162656362326564656662616135656433653564626662643166383835613466613838316166336631343461386135363538353335333364383933393335393230383662326431643336326534356266653166623435363833616261366336343039373961643662343638373731383437323663366562643538623265616538356337636665336662616265663566366363656438353030333462333834373230366332643637386333363138373630323662386433353165303032616635653066666536663562316632393566646332663436396361613264323338316561306234386361393837636332633865363335653862313963653565313732613933373631613864343930613961343531386437323535383830613134643737623762613737343839326239326134306262383133363265333466633664353137386439623330313132393334323035636237376662396132383234323733393435363461383535346561343732383661343766383632333965373563393437383963653938633939383434373832343632393434663631333136376437623530323033303130303031320218033a606666643661646137346133613334613930346265613437363033303836663862656633623662653138616265643434633464343065313266623133306239376264366238353561656335643062393062306238633733353464356633623065340acf070a0d332e3231312e3234382e31373210a388031a05302e302e3322cc0633303832303161323330306430363039326138363438383666373064303130313031303530303033383230313866303033303832303138613032383230313831303039663166386131323163326664366337366664353038643365343239663063363462636234346338326137303537333535326161646361643037313536396537323139353866356135643039663935383766666166636662653533343161326630313134616361653334366566336339303231336433343336656262323766343335306339393063356338633366386531653336373037626330386434323536303832336533663234653039613033616430393535613530393830313936323964643034623237623235316463653035356633646463623061343164363666303934316230623837636466653334393864343630333861623564663036663632613561646530383539383537336138386338663538363064633134393261366531383634383561396231333235306536643137623830636433396335633831393130396537336361373332646232336566386261613737366563383563653030393162656362326564656662616135656433653564626662643166383835613466613838316166336631343461386135363538353335333364383933393335393230383662326431643336326534356266653166623435363833616261366336343039373961643662343638373731383437323663366562643538623265616538356337636665336662616265663566366363656438353030333462333834373230366332643637386333363138373630323662386433353165303032616635653066666536663562316632393566646332663436396361613264323338316561306234386361393837636332633865363335653862313963653565313732613933373631613864343930613961343531386437323535383830613134643737623762613737343839326239326134306262383133363265333466633664353137386439623330313132393334323035636237376662396132383234323733393435363461383535346561343732383661343766383632333965373563393437383963653938633939383434373832343632393434663631333136376437623530323033303130303031320218033a606666643661646137346133613334613930346265613437363033303836663862656633623662653138616265643434633464343065313266623133306239376264366238353561656335643062393062306238633733353464356633623065340ace070a0c34302e3132312e36342e343810a388031a05302e302e3322cc0633303832303161323330306430363039326138363438383666373064303130313031303530303033383230313866303033303832303138613032383230313831303039663166386131323163326664366337366664353038643365343239663063363462636234346338326137303537333535326161646361643037313536396537323139353866356135643039663935383766666166636662653533343161326630313134616361653334366566336339303231336433343336656262323766343335306339393063356338633366386531653336373037626330386434323536303832336533663234653039613033616430393535613530393830313936323964643034623237623235316463653035356633646463623061343164363666303934316230623837636466653334393864343630333861623564663036663632613561646530383539383537336138386338663538363064633134393261366531383634383561396231333235306536643137623830636433396335633831393130396537336361373332646232336566386261613737366563383563653030393162656362326564656662616135656433653564626662643166383835613466613838316166336631343461386135363538353335333364383933393335393230383662326431643336326534356266653166623435363833616261366336343039373961643662343638373731383437323663366562643538623265616538356337636665336662616265663566366363656438353030333462333834373230366332643637386333363138373630323662386433353165303032616635653066666536663562316632393566646332663436396361613264323338316561306234386361393837636332633865363335653862313963653565313732613933373631613864343930613961343531386437323535383830613134643737623762613737343839326239326134306262383133363265333466633664353137386439623330313132393334323035636237376662396132383234323733393435363461383535346561343732383661343766383632333965373563393437383963653938633939383434373832343632393434663631333136376437623530323033303130303031320218033a606666643661646137346133613334613930346265613437363033303836663862656633623662653138616265643434633464343065313266623133306239376264366238353561656335643062393062306238633733353464356633623065340ad1070a0d33352e3139392e31352e31373710a388031a05302e302e3422cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030633535376166353739666138333530316265383939623238393037373635626664666364353261623433326230313935613166316563643836666330306162366335353039623066646439376564643363623563656135366132393566333132616262353530383331646266393633663435303131386234666363366532326366343637363230306365396363386564666262663535386463363966303234323634616437643364616232336265643231333363323734653639333434383931353564623130383766393033373039303563363431383561363231316463373432666239613639303964383231383639343762323737343633646662336666306163643437656666313265616431663639373265663263313230333739336334356537373537356265346661313130633765343066613864623963363138376431313366343730343031343137393037316162663539626537643262306465383264653432313564633235353036623163396332366534393137343031633939373530366533373765366266303362363838373237653739343066616436396335653064613363643563626432626537373733353061656132643064343765393761343438633834626536636531333464363462656530393835633239313632663463316535363763636139336430366133633162653861626365333562353537666237376634666536373161363664656337393037353664306538383138313635663262616361613839316161653761633734333766633731373562366562366465623734373233373837353162623662663962306531343833663936363865396664626435363034633339623134643965326265646565633834366139383064373034643137316537626134623766636431613330643934356361313266343761333235643933393861613138663937303636303534643464313566633839393465326465626537336539323731643534383638336636316561343466623235303731653335313861373865643365623337653731613036393166323637303230333031303030312801320218043a606630643934616363663664666633373238373463396462643864373939326562333137616635303031636134313936616261323635383039636233643230306261393631613534333863336135656430356338336264663963643131356432320ad1070a0d332e3133332e3231332e31343610a388031a05302e302e3422cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030633535376166353739666138333530316265383939623238393037373635626664666364353261623433326230313935613166316563643836666330306162366335353039623066646439376564643363623563656135366132393566333132616262353530383331646266393633663435303131386234666363366532326366343637363230306365396363386564666262663535386463363966303234323634616437643364616232336265643231333363323734653639333434383931353564623130383766393033373039303563363431383561363231316463373432666239613639303964383231383639343762323737343633646662336666306163643437656666313265616431663639373265663263313230333739336334356537373537356265346661313130633765343066613864623963363138376431313366343730343031343137393037316162663539626537643262306465383264653432313564633235353036623163396332366534393137343031633939373530366533373765366266303362363838373237653739343066616436396335653064613363643563626432626537373733353061656132643064343765393761343438633834626536636531333464363462656530393835633239313632663463316535363763636139336430366133633162653861626365333562353537666237376634666536373161363664656337393037353664306538383138313635663262616361613839316161653761633734333766633731373562366562366465623734373233373837353162623662663962306531343833663936363865396664626435363034633339623134643965326265646565633834366139383064373034643137316537626134623766636431613330643934356361313266343761333235643933393861613138663937303636303534643464313566633839393465326465626537336539323731643534383638336636316561343466623235303731653335313861373865643365623337653731613036393166323637303230333031303030312801320218043a606630643934616363663664666633373238373463396462643864373939326562333137616635303031636134313936616261323635383039636233643230306261393631613534333863336135656430356338336264663963643131356432320ad0070a0c34302e37302e31312e32303210a388031a05302e302e3422cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030633535376166353739666138333530316265383939623238393037373635626664666364353261623433326230313935613166316563643836666330306162366335353039623066646439376564643363623563656135366132393566333132616262353530383331646266393633663435303131386234666363366532326366343637363230306365396363386564666262663535386463363966303234323634616437643364616232336265643231333363323734653639333434383931353564623130383766393033373039303563363431383561363231316463373432666239613639303964383231383639343762323737343633646662336666306163643437656666313265616431663639373265663263313230333739336334356537373537356265346661313130633765343066613864623963363138376431313366343730343031343137393037316162663539626537643262306465383264653432313564633235353036623163396332366534393137343031633939373530366533373765366266303362363838373237653739343066616436396335653064613363643563626432626537373733353061656132643064343765393761343438633834626536636531333464363462656530393835633239313632663463316535363763636139336430366133633162653861626365333562353537666237376634666536373161363664656337393037353664306538383138313635663262616361613839316161653761633734333766633731373562366562366465623734373233373837353162623662663962306531343833663936363865396664626435363034633339623134643965326265646565633834366139383064373034643137316537626134623766636431613330643934356361313266343761333235643933393861613138663937303636303534643464313566633839393465326465626537336539323731643534383638336636316561343466623235303731653335313861373865643365623337653731613036393166323637303230333031303030312801320218043a606630643934616363663664666633373238373463396462643864373939326562333137616635303031636134313936616261323635383039636233643230306261393631613534333863336135656430356338336264663963643131356432320ad2070a0e33352e3232352e3230312e31393510a388031a05302e302e3522cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030396261343537623733333035663034613931636334366231623936356334653834313735316162633862313431356130626164666431663332633234383233383661323237323565623765633734646561323165353036313764363438656135616333393337343161623031623865666233323132333962386434666462316466626562396533663339616134363538306464303435643138636134346430303263333764646235323763636534646463333262666337333431393637316634636134343634613366326138346663383563373161636630653561383936323664663639613831343734656431363532396638303161386166613937653433356334653034613936346133353735323732383838343365353866306130356366353135336565343530376232633638623364376662353461653661393561393539633837613132663633306539356337623162336333363935653835383636323431373932366437366331363938336661663631323235303338373435393037653963663133643637633261636435303363613435316338353933336163343131386163633237393830316362393638333439393033313435636564323736323964643038393136333137303933353837613737633232303563666135323534336235336333623665613135623834653364326333306331656437353261343633336333366232356239383933656130326164353632656239623738363862336234663437663461323565333536303634393632616337623235653538323934346630306433303739386132363266393231346438633565373464306138333736636332643662613634653138663565346134306166616336323530363264326361323363643238303037303833323164333833343331346630653538343438353932333236373361333265373061653064373131653331303538316263646231346538373133343639346336653039333066343662333762393664343961363435373339343733333165376535303764396535366465356536313436663266303230333031303030312802320218053a606361363738656263626433646338363438663765643033666235396630653231616636373531336561656535313331386536623534396265356163653930366564633166666132366439336135376163656339626537376634306561656564370ad1070a0d35322e31352e3130352e31333010a388031a05302e302e3522cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030396261343537623733333035663034613931636334366231623936356334653834313735316162633862313431356130626164666431663332633234383233383661323237323565623765633734646561323165353036313764363438656135616333393337343161623031623865666233323132333962386434666462316466626562396533663339616134363538306464303435643138636134346430303263333764646235323763636534646463333262666337333431393637316634636134343634613366326138346663383563373161636630653561383936323664663639613831343734656431363532396638303161386166613937653433356334653034613936346133353735323732383838343365353866306130356366353135336565343530376232633638623364376662353461653661393561393539633837613132663633306539356337623162336333363935653835383636323431373932366437366331363938336661663631323235303338373435393037653963663133643637633261636435303363613435316338353933336163343131386163633237393830316362393638333439393033313435636564323736323964643038393136333137303933353837613737633232303563666135323534336235336333623665613135623834653364326333306331656437353261343633336333366232356239383933656130326164353632656239623738363862336234663437663461323565333536303634393632616337623235653538323934346630306433303739386132363266393231346438633565373464306138333736636332643662613634653138663565346134306166616336323530363264326361323363643238303037303833323164333833343331346630653538343438353932333236373361333265373061653064373131653331303538316263646231346538373133343639346336653039333066343662333762393664343961363435373339343733333165376535303764396535366465356536313436663266303230333031303030312802320218053a606361363738656263626433646338363438663765643033666235396630653231616636373531336561656535313331386536623534396265356163653930366564633166666132366439336135376163656339626537376634306561656564370ad1070a0d3130342e34332e3234382e363310a388031a05302e302e3522cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030396261343537623733333035663034613931636334366231623936356334653834313735316162633862313431356130626164666431663332633234383233383661323237323565623765633734646561323165353036313764363438656135616333393337343161623031623865666233323132333962386434666462316466626562396533663339616134363538306464303435643138636134346430303263333764646235323763636534646463333262666337333431393637316634636134343634613366326138346663383563373161636630653561383936323664663639613831343734656431363532396638303161386166613937653433356334653034613936346133353735323732383838343365353866306130356366353135336565343530376232633638623364376662353461653661393561393539633837613132663633306539356337623162336333363935653835383636323431373932366437366331363938336661663631323235303338373435393037653963663133643637633261636435303363613435316338353933336163343131386163633237393830316362393638333439393033313435636564323736323964643038393136333137303933353837613737633232303563666135323534336235336333623665613135623834653364326333306331656437353261343633336333366232356239383933656130326164353632656239623738363862336234663437663461323565333536303634393632616337623235653538323934346630306433303739386132363266393231346438633565373464306138333736636332643662613634653138663565346134306166616336323530363264326361323363643238303037303833323164333833343331346630653538343438353932333236373361333265373061653064373131653331303538316263646231346538373133343639346336653039333066343662333762393664343961363435373339343733333165376535303764396535366465356536313436663266303230333031303030312802320218053a606361363738656263626433646338363438663765643033666235396630653231616636373531336561656535313331386536623534396265356163653930366564633166666132366439336135376163656339626537376634306561656564370ad2070a0e33352e3234372e3130392e31333510a388031a05302e302e3622cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030633432636361633566626336393166626265626461383766666431653735626463643839323234393463663434666462636365653439373838353231633337386266373764623039333465633064323138336437633531646236366638363463313161623764653161633363346366646331663039336132643666333765326233346362653463383133316639363833616434323837386338336433353534633634356161313637626366623036346138336463343563356231313538343939663964393235383766666637616263643566323231636438313530353438343133303030666136653536353930383962316466643635373636656137386561656466636136623435343535666438616235393834646265333565353739356432633633356561373937346434336538656165346665626666653439326537303762343862316230666336343831616539653039643339313333303039623764323634303265366535326535653931623262333830643838663062653766623462333033653730323139373835303537616139346365393234633439323665393136353639323836653836623362613635316361326130613633646634663639303766656665333438336439336234636531643464303363373134323131313337356232633263353164346562383339653337616635333062326362643666353064346362333665323739333731373064396364646163306163653263633234623830346230613237333531636638333062373635323565323664666239646266343961303536363234613736383632343934653732363364306437306365626165393532393433653535383432663563616431336663663630613265366463663761316435333366336135626235346563323139313863373665353235626132393134363637353833316531376533366336316665383534393838323864303962373632303135343132623265353237383439626165633163666663373764653463323934633535303831316535393866663234646131356133343536396464303230333031303030312803320218063a603234373166336665383134303638316665393139313364326363303633663036356534343930616536326666356435343861356162653133316432616639366362653361633235626265323433363663613466386630653736636639343566330acf070a0b35342e3234312e33382e3110a388031a05302e302e3622cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030633432636361633566626336393166626265626461383766666431653735626463643839323234393463663434666462636365653439373838353231633337386266373764623039333465633064323138336437633531646236366638363463313161623764653161633363346366646331663039336132643666333765326233346362653463383133316639363833616434323837386338336433353534633634356161313637626366623036346138336463343563356231313538343939663964393235383766666637616263643566323231636438313530353438343133303030666136653536353930383962316466643635373636656137386561656466636136623435343535666438616235393834646265333565353739356432633633356561373937346434336538656165346665626666653439326537303762343862316230666336343831616539653039643339313333303039623764323634303265366535326535653931623262333830643838663062653766623462333033653730323139373835303537616139346365393234633439323665393136353639323836653836623362613635316361326130613633646634663639303766656665333438336439336234636531643464303363373134323131313337356232633263353164346562383339653337616635333062326362643666353064346362333665323739333731373064396364646163306163653263633234623830346230613237333531636638333062373635323565323664666239646266343961303536363234613736383632343934653732363364306437306365626165393532393433653535383432663563616431336663663630613265366463663761316435333366336135626235346563323139313863373665353235626132393134363637353833316531376533366336316665383534393838323864303962373632303135343132623265353237383439626165633163666663373764653463323934633535303831316535393866663234646131356133343536396464303230333031303030312803320218063a603234373166336665383134303638316665393139313364326363303633663036356534343930616536326666356435343861356162653133316432616639366362653361633235626265323433363663613466386630653736636639343566330acf070a0b31332e38382e32322e343710a388031a05302e302e3622cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030633432636361633566626336393166626265626461383766666431653735626463643839323234393463663434666462636365653439373838353231633337386266373764623039333465633064323138336437633531646236366638363463313161623764653161633363346366646331663039336132643666333765326233346362653463383133316639363833616434323837386338336433353534633634356161313637626366623036346138336463343563356231313538343939663964393235383766666637616263643566323231636438313530353438343133303030666136653536353930383962316466643635373636656137386561656466636136623435343535666438616235393834646265333565353739356432633633356561373937346434336538656165346665626666653439326537303762343862316230666336343831616539653039643339313333303039623764323634303265366535326535653931623262333830643838663062653766623462333033653730323139373835303537616139346365393234633439323665393136353639323836653836623362613635316361326130613633646634663639303766656665333438336439336234636531643464303363373134323131313337356232633263353164346562383339653337616635333062326362643666353064346362333665323739333731373064396364646163306163653263633234623830346230613237333531636638333062373635323565323664666239646266343961303536363234613736383632343934653732363364306437306365626165393532393433653535383432663563616431336663663630613265366463663761316435333366336135626235346563323139313863373665353235626132393134363637353833316531376533366336316665383534393838323864303962373632303135343132623265353237383439626165633163666663373764653463323934633535303831316535393866663234646131356133343536396464303230333031303030312803320218063a603234373166336665383134303638316665393139313364326363303633663036356534343930616536326666356435343861356162653133316432616639366362653361633235626265323433363663613466386630653736636639343566330ad0070a0c33352e3233352e36352e353110a388031a05302e302e3722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030393032663034393061396237663564326364316330643936633661363939306635373362356630656235626462626133393636316566303233303932343139333434363639393639613638613463373037316433323939393066623137393265393030316362353539386561373163326436363736383234333230656534636162663164643335376165376632616462656463316231623061396439353632333737396234633463376234376334373837613136656537313838633732313731373736323461393236346162333963343166376666306234356138396264613430633461643037633464353936643566303964373035366263623561333566343466393561353963323636653039383932646362653436616435316632643262336539393161386636363538653166326362393463373733656234346334346538393264316535356331303736663136303833313965653635376534306631393239363735343361623432616232323233383664313735383665323533373438646162643032356535306235306165363035303732306532333964363465653666623435303763303631346464346265376166646231333330383930666633613665313736353237633331313661663132396139616335653333366439663630316537313237613664376438323061643266393032646163396232343836363861316261623038643130333432656136396137303937313332666637313230636336346663646537383430633635366261313733326261393565396333363735313137356534656333643834613765306432383834326234316262626264366632386534366333613636333365313832373936356335353832306435306461653262303436356363306434326531393562396431353332653632323565623939386436613439303739613861316364346430313735646533633837663937363134383437623363626231376161333462653832306237623361643938616333666165663939336136373738393734373832633063346165336661626263633433303230333031303030312804320218073a606633353738373364343131346131616566303361646336626136396566616632363930653232376162633136613666633665353034396136336662643936383830303462313465343633633230653338343336613361323464333138326464380ad1070a0d35342e3137372e35312e31323710a388031a05302e302e3722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030393032663034393061396237663564326364316330643936633661363939306635373362356630656235626462626133393636316566303233303932343139333434363639393639613638613463373037316433323939393066623137393265393030316362353539386561373163326436363736383234333230656534636162663164643335376165376632616462656463316231623061396439353632333737396234633463376234376334373837613136656537313838633732313731373736323461393236346162333963343166376666306234356138396264613430633461643037633464353936643566303964373035366263623561333566343466393561353963323636653039383932646362653436616435316632643262336539393161386636363538653166326362393463373733656234346334346538393264316535356331303736663136303833313965653635376534306631393239363735343361623432616232323233383664313735383665323533373438646162643032356535306235306165363035303732306532333964363465653666623435303763303631346464346265376166646231333330383930666633613665313736353237633331313661663132396139616335653333366439663630316537313237613664376438323061643266393032646163396232343836363861316261623038643130333432656136396137303937313332666637313230636336346663646537383430633635366261313733326261393565396333363735313137356534656333643834613765306432383834326234316262626264366632386534366333613636333365313832373936356335353832306435306461653262303436356363306434326531393562396431353332653632323565623939386436613439303739613861316364346430313735646533633837663937363134383437623363626231376161333462653832306237623361643938616333666165663939336136373738393734373832633063346165336661626263633433303230333031303030312804320218073a606633353738373364343131346131616566303361646336626136396566616632363930653232376162633136613666633665353034396136336662643936383830303462313465343633633230653338343336613361323464333138326464380ad0070a0c31332e36342e3137302e343010a388031a05302e302e3722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030393032663034393061396237663564326364316330643936633661363939306635373362356630656235626462626133393636316566303233303932343139333434363639393639613638613463373037316433323939393066623137393265393030316362353539386561373163326436363736383234333230656534636162663164643335376165376632616462656463316231623061396439353632333737396234633463376234376334373837613136656537313838633732313731373736323461393236346162333963343166376666306234356138396264613430633461643037633464353936643566303964373035366263623561333566343466393561353963323636653039383932646362653436616435316632643262336539393161386636363538653166326362393463373733656234346334346538393264316535356331303736663136303833313965653635376534306631393239363735343361623432616232323233383664313735383665323533373438646162643032356535306235306165363035303732306532333964363465653666623435303763303631346464346265376166646231333330383930666633613665313736353237633331313661663132396139616335653333366439663630316537313237613664376438323061643266393032646163396232343836363861316261623038643130333432656136396137303937313332666637313230636336346663646537383430633635366261313733326261393565396333363735313137356534656333643834613765306432383834326234316262626264366632386534366333613636333365313832373936356335353832306435306461653262303436356363306434326531393562396431353332653632323565623939386436613439303739613861316364346430313735646533633837663937363134383437623363626231376161333462653832306237623361643938616333666165663939336136373738393734373832633063346165336661626263633433303230333031303030312804320218073a606633353738373364343131346131616566303361646336626136396566616632363930653232376162633136613666633665353034396136336662643936383830303462313465343633633230653338343336613361323464333138326464380ad1070a0d33342e3130362e3234372e363510a388031a05302e302e3822cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030393164376466666637386634656662653538393034353063356263396533353334626666616461643933666237616662313562633762636636376433643362343133626439393934306464383235363461646130346162326534656466306131633062386662376531613830393265393133386539363062653263633638623562393766353764323831633538373265393761343739666338343833363331363065333836336235376233336534383639623138356163653565333662643433616535666136373863396562363666316634303134373836383236623266386661376530303630663434303563306138663964613732303566663436383361323433666130663331356631616662623461346431343064303232333465343437336662393266636233386633656232386336306366376362666236346530363963313830383665346464363139333839323061653066643763313933653665313034653635623831376564393339386532333232333766646630383332326339636563303964343039393237326137633031356432326234646363393639663665613166353138393032313035646636303039326235356134316234663332623935376235376438346535623232333930356538363938393531373333656139663265323436316563306436353232656538313664353835306661636665623431326366663962393939343361383764633064303436343437636539336239376531366437336239366234323633393632663831666366393435386535373537376337383061366631363135616137613132333236373338653236396262373331663839653839313632326535373765613534343230626630636134366265366663346637316366323638316163303235326161383835653133626536373263643238343539303432376463643133376366333131363235653862656533623038666463616166343635623338376365376362333338313666326331346136623939616337643733343331386366633539623765643933396261666566383739303230333031303030312805320218083a603439333161373832303264353566313062333135373537383563336634333964623638313962643131303033646637626332636539326532396135313762376332313838306465623463303137393537343462353736636434336238343938640ad0070a0c33352e38332e38392e31373110a388031a05302e302e3822cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030393164376466666637386634656662653538393034353063356263396533353334626666616461643933666237616662313562633762636636376433643362343133626439393934306464383235363461646130346162326534656466306131633062386662376531613830393265393133386539363062653263633638623562393766353764323831633538373265393761343739666338343833363331363065333836336235376233336534383639623138356163653565333662643433616535666136373863396562363666316634303134373836383236623266386661376530303630663434303563306138663964613732303566663436383361323433666130663331356631616662623461346431343064303232333465343437336662393266636233386633656232386336306366376362666236346530363963313830383665346464363139333839323061653066643763313933653665313034653635623831376564393339386532333232333766646630383332326339636563303964343039393237326137633031356432326234646363393639663665613166353138393032313035646636303039326235356134316234663332623935376235376438346535623232333930356538363938393531373333656139663265323436316563306436353232656538313664353835306661636665623431326366663962393939343361383764633064303436343437636539336239376531366437336239366234323633393632663831666366393435386535373537376337383061366631363135616137613132333236373338653236396262373331663839653839313632326535373765613534343230626630636134366265366663346637316366323638316163303235326161383835653133626536373263643238343539303432376463643133376366333131363235653862656533623038666463616166343635623338376365376362333338313666326331346136623939616337643733343331386366633539623765643933396261666566383739303230333031303030312805320218083a603439333161373832303264353566313062333135373537383563336634333964623638313962643131303033646637626332636539326532396135313762376332313838306465623463303137393537343462353736636434336238343938640ad1070a0d31332e37382e3233322e31393210a388031a05302e302e3822cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030393164376466666637386634656662653538393034353063356263396533353334626666616461643933666237616662313562633762636636376433643362343133626439393934306464383235363461646130346162326534656466306131633062386662376531613830393265393133386539363062653263633638623562393766353764323831633538373265393761343739666338343833363331363065333836336235376233336534383639623138356163653565333662643433616535666136373863396562363666316634303134373836383236623266386661376530303630663434303563306138663964613732303566663436383361323433666130663331356631616662623461346431343064303232333465343437336662393266636233386633656232386336306366376362666236346530363963313830383665346464363139333839323061653066643763313933653665313034653635623831376564393339386532333232333766646630383332326339636563303964343039393237326137633031356432326234646363393639663665613166353138393032313035646636303039326235356134316234663332623935376235376438346535623232333930356538363938393531373333656139663265323436316563306436353232656538313664353835306661636665623431326366663962393939343361383764633064303436343437636539336239376531366437336239366234323633393632663831666366393435386535373537376337383061366631363135616137613132333236373338653236396262373331663839653839313632326535373765613534343230626630636134366265366663346637316366323638316163303235326161383835653133626536373263643238343539303432376463643133376366333131363235653862656533623038666463616166343635623338376365376362333338313666326331346136623939616337643733343331386366633539623765643933396261666566383739303230333031303030312805320218083a603439333161373832303264353566313062333135373537383563336634333964623638313962643131303033646637626332636539326532396135313762376332313838306465623463303137393537343462353736636434336238343938640ad0070a0c33342e3132352e32332e343910a388031a05302e302e3922cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030633665313863386662663463643465623130343534326362323061616161323532643935663035326631303836643538316334346164373337626636363736633063336637383961663532363562386166623739623530393132646138346530616663663735343763623166666630386430353237303137656236646335636466383362353139363964343433333661363338376364373062393462663463396261663230323938343065356634663836336437303831663066613831653038363361646564623862383961356461633262623535326436653762396662613232326163323863353730373535333866633935373939323934326433343166613238373665366235303765396365376564353732653863666461356465666133363466646638643865323338323961346363626234373866313165656533623332616238356530373239353163356439343230313135666261333237303733343934663433623566366265626638343135326533353665376231366261373634623761336235326362323733343634303136336265313436356536643166613463366536663636363834613633356339613535366161373130306462653634356466386634633432336165343561303863623335623462633138373838366532323939623563303231306135666261336239343439663438336566393465643932326531653938633131336265313636623839633733353832323433313335643434323330366162653561373162373730313866663333356436646437393534323639376231363832333862393637323766643133333962356638326133623661353937643937363033376165323530363435366338623334653966626633626333323431303434316334626663386562613538353937323534656665626661613738383039613563383835343732396135626137386563653139666338343037646438383934613662633738343430333764383738636163653663313532633265383965386136346230363861366332333765303939393362653830363839303230333031303030312806320218093a603634653039383631356266343035663765643561343031333434366238396334383863666364366262323561346136373664633737656561313164333364373032363832663061363961383033306538633537373764306534323230333739390acf070a0b35302e31382e31372e393310a388031a05302e302e3922cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030633665313863386662663463643465623130343534326362323061616161323532643935663035326631303836643538316334346164373337626636363736633063336637383961663532363562386166623739623530393132646138346530616663663735343763623166666630386430353237303137656236646335636466383362353139363964343433333661363338376364373062393462663463396261663230323938343065356634663836336437303831663066613831653038363361646564623862383961356461633262623535326436653762396662613232326163323863353730373535333866633935373939323934326433343166613238373665366235303765396365376564353732653863666461356465666133363466646638643865323338323961346363626234373866313165656533623332616238356530373239353163356439343230313135666261333237303733343934663433623566366265626638343135326533353665376231366261373634623761336235326362323733343634303136336265313436356536643166613463366536663636363834613633356339613535366161373130306462653634356466386634633432336165343561303863623335623462633138373838366532323939623563303231306135666261336239343439663438336566393465643932326531653938633131336265313636623839633733353832323433313335643434323330366162653561373162373730313866663333356436646437393534323639376231363832333862393637323766643133333962356638326133623661353937643937363033376165323530363435366338623334653966626633626333323431303434316334626663386562613538353937323534656665626661613738383039613563383835343732396135626137386563653139666338343037646438383934613662633738343430333764383738636163653663313532633265383965386136346230363861366332333765303939393362653830363839303230333031303030312806320218093a603634653039383631356266343035663765643561343031333434366238396334383863666364366262323561346136373664633737656561313164333364373032363832663061363961383033306538633537373764306534323230333739390ad1070a0d32302e3135302e3133362e383910a388031a05302e302e3922cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030633665313863386662663463643465623130343534326362323061616161323532643935663035326631303836643538316334346164373337626636363736633063336637383961663532363562386166623739623530393132646138346530616663663735343763623166666630386430353237303137656236646335636466383362353139363964343433333661363338376364373062393462663463396261663230323938343065356634663836336437303831663066613831653038363361646564623862383961356461633262623535326436653762396662613232326163323863353730373535333866633935373939323934326433343166613238373665366235303765396365376564353732653863666461356465666133363466646638643865323338323961346363626234373866313165656533623332616238356530373239353163356439343230313135666261333237303733343934663433623566366265626638343135326533353665376231366261373634623761336235326362323733343634303136336265313436356536643166613463366536663636363834613633356339613535366161373130306462653634356466386634633432336165343561303863623335623462633138373838366532323939623563303231306135666261336239343439663438336566393465643932326531653938633131336265313636623839633733353832323433313335643434323330366162653561373162373730313866663333356436646437393534323639376231363832333862393637323766643133333962356638326133623661353937643937363033376165323530363435366338623334653966626633626333323431303434316334626663386562613538353937323534656665626661613738383039613563383835343732396135626137386563653139666338343037646438383934613662633738343430333764383738636163653663313532633265383965386136346230363861366332333765303939393362653830363839303230333031303030312806320218093a60363465303938363135626634303566376564356134303133343436623839633438386366636436626232356134613637366463373765656131316433336437303236383266306136396138303330653863353737376430653432323033373939"))),TESTNET_ADDRESS_BOOK=NodeAddressBook._fromProtobuf(proto_1.NodeAddressBook.decode(decode$a("0a7f0a0c33342e39342e3130362e363110a388031a05302e302e33320218033a606131373165336261383334373637343761656232653261633464306531313563616161623931383230336230646665316364656162343433343338666332383961626338626138613661666638336462356631623333343034366461383863380a80010a0d35302e31382e3133322e32313110a388031a05302e302e33320218033a606131373165336261383334373637343761656232653261633464306531313563616161623931383230336230646665316364656162343433343338666332383961626338626138613661666638336462356631623333343034366461383863380a81010a0e3133382e39312e3134322e32313910a388031a05302e302e33320218033a606131373165336261383334373637343761656232653261633464306531313563616161623931383230336230646665316364656162343433343338666332383961626338626138613661666638336462356631623333343034366461383863380a82010a0d33352e3233372e3131392e353510a388031a05302e302e342801320218043a603734303964656332653439346236323765653439633639623239346265316365616562636133666463616633363738396538386663376435623065656635353631663532623832643335313931613339633266626564363032373236373136360a7f0a0a332e3231322e362e313310a388031a05302e302e342801320218043a603734303964656332653439346236323765653439633639623239346265316365616562636133666463616633363738396538386663376435623065656635353631663532623832643335313931613339633266626564363032373236373136360a82010a0d35322e3136382e37362e32343110a388031a05302e302e342801320218043a603734303964656332653439346236323765653439633639623239346265316365616562636133666463616633363738396538386663376435623065656635353631663532623832643335313931613339633266626564363032373236373136360a82010a0d33352e3234352e32372e31393310a388031a05302e302e352802320218053a603962313431363538346134613338306262383661366337643732303764386165646462633362363365613330353939383235356263653833353162613462356463613532633932383261353461366265643630646536336365303361616132340a80010a0b35322e32302e31382e383610a388031a05302e302e352802320218053a603962313431363538346134613338306262383661366337643732303764386165646462633362363365613330353939383235356263653833353162613462356463613532633932383261353461366265643630646536336365303361616132340a81010a0c34302e37392e38332e31323410a388031a05302e302e352802320218053a603962313431363538346134613338306262383661366337643732303764386165646462633362363365613330353939383235356263653833353162613462356463613532633932383261353461366265643630646536336365303361616132340a82010a0d33342e38332e3131322e31313610a388031a05302e302e362803320218063a603634383636383562346536653063623936333437326330316665393939333166643965346334343838376261383334323361653766656564323264363438343834636638613362633563636361366133373338376266393664333836373238300a81010a0c35342e37302e3139322e333310a388031a05302e302e362803320218063a603634383636383562346536653063623936333437326330316665393939333166643965346334343838376261383334323361653766656564323264363438343834636638613362633563636361366133373338376266393664333836373238300a81010a0c35322e3138332e34352e363510a388031a05302e302e362803320218063a603634383636383562346536653063623936333437326330316665393939333166643965346334343838376261383334323361653766656564323264363438343834636638613362633563636361366133373338376266393664333836373238300a80010a0b33342e39342e3136302e3410a388031a05302e302e372804320218073a603339653930393931356138353238303330313534613663373730393530633762343737376261343031333537633065363138373635343231356363323061616363646438653566663239653963346439356366343130316661363862653435630a83010a0e35342e3137362e3139392e31303910a388031a05302e302e372804320218073a603339653930393931356138353238303330313534613663373730393530633762343737376261343031333537633065363138373635343231356363323061616363646438653566663239653963346439356366343130316661363862653435630a82010a0d31332e36342e3138312e31333610a388031a05302e302e372804320218073a603339653930393931356138353238303330313534613663373730393530633762343737376261343031333537633065363138373635343231356363323061616363646438653566663239653963346439356366343130316661363862653435630a83010a0e33342e3130362e3130322e32313810a388031a05302e302e382805320218083a606134343837346137616131623337373431613037316164616165373866623135326236393664316335386438646566626531643832333034353332613063303139656539366363313964373536383635373864333961316536633331613165650a82010a0d33352e3135352e34392e31343710a388031a05302e302e382805320218083a606134343837346137616131623337373431613037316164616165373866623135326236393664316335386438646566626531643832333034353332613063303139656539366363313964373536383635373864333961316536633331613165650a81010a0c31332e37382e3233382e333210a388031a05302e302e382805320218083a606134343837346137616131623337373431613037316164616165373866623135326236393664316335386438646566626531643832333034353332613063303139656539366363313964373536383635373864333961316536633331613165650a83010a0e33342e3133332e3139372e32333010a388031a05302e302e392806320218093a603639383332613733613336303265386431666265356164353864316332363337613162363732643731656538376166313064623634386562393161666232323832353362316634376535376433643461343466663534376233333934616132320a82010a0d35322e31342e3235322e32303710a388031a05302e302e392806320218093a603639383332613733613336303265386431666265356164353864316332363337613162363732643731656538376166313064623634386562393161666232323832353362316634376535376433643461343466663534376233333934616132320a82010a0d35322e3136352e31372e32333110a388031a05302e302e392806320218093a60363938333261373361333630326538643166626535616435386431633236333761316236373264373165653837616631306462363438656239316166623232383235336231663437653537643364346134346666353437623333393461613232"))),MAINNET_ADDRESS_BOOK=NodeAddressBook._fromProtobuf(proto_1.NodeAddressBook.decode(decode$a("0ab70722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030633435363165336332373863643635306538306334313363613434343233633163336331336366313437356636663639373664353937616534333262343961623432303836623739623834313332363035346238623364636635376438666364373962666330353831383363613234636434633163626335373465643131313765326635623762336336336365376230366439623465666366373337353633376234316665366635336338313162396465363134336633613532393537636466393536373735313230623333373033666635373632313430376162393537356263326433356330643434663039383366633165663633613466663532303966303730633932616631303632393536303163393662636564303634656331393031393730313963363831316334633864643830636234663461633731663961643736653761633839343536666266346630313166393061626432643930353336653832333436353166366265663932376533643564386237626634353930353039383362656361336162656632613964393761663334353737326137373430653936393932373562303138656130646632383661646436636539323365663930386662653736326137356632313131363836326462343464336463613164343462346432653864633130363663353030366262356137643935346164323535643462363033323733343735653531316165623438356430363961303637633061623563323435333863393333633036623561366165666139343030356332393135323133653463636461653663393432663632373266396464353238326436623839306631663230656664323339396364363734393234666135373034366163366461333265373339353161373331313365393166633262376666323965343835316238336666333966383362613965633666303863656664626236636262626666616266646661613931643933306637323030646134383133376333393463626431336537303165636463323631366664323162616436383161613466303031303230333031303030312804320218073a603665396138616263646364653665313134396133656265313766643538643839303538333961383664623732623036613365613230616131373666383638623235343838353261653432336437613963366237636666396537313436323961320ab70722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030613163343037373135343330336363373263346662373639326333663934323531626465633132333961316637613839373261626539316133353332336662656361363235613766666165363430366338353564633261663231313039303062306466306536653664623736333634646661316666653835656461353637393336653239383562383536333461333261613532613635393964643663333062653166376136633562386635656563616632363231643861343539363832666364326462616164313536316431316633336663636237663535303061633536386431363564626561616365333238366432383934663634313239643738316436633732666437643539396339653164336166346161343333633233623931306661653463343834313634316636313532366164373837656265613533393837343136376539643361373363633066623135363432396431356563373633613664306630363131356137396239616637383364373762393864383330393661613437343366393734303864396531346263663464646666653435393137363838343762343063623864613763613337353235366432623933356430393566653235326661653831666636653337663834643761393064376535373061346638656633633764373636656564613437326630393230313939303135613839303832353961383733633534353466636262646361643265353238646538353435356234303833633764633461646335613938386530636464666463313539643564373132616264353434616137336563303239303839383134633938613434663236666330363434363539633138336533313834616132373266386431646330626661336530613536303438346362303535626134646262356363333339656338306264313164363432646333613730326538633730336162323139333038346439626436336630646665313261343333633235373665616637383163666164383637656637306264613631373638623262656631346635306336633362386230393666303230333031303030312805320218083a606464336233653763643361323537643832373665343635333533363162303138623730303931663438363635653832303031306538316563303539326236396264346265316662643765636435303964303730313364643034313238343266640ab70722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030623263636163363561643066633736343561383137626661626334383761643765343133313165376133313938623337666238343264383463333935623366363764366264383438663130633666303363323930653866376461613864303031613834343164633335326131393136306133313933653638623832656466313961653637363933613961333364346362383765373839613130373037313535313565613737326361613862383661353639623931633534353038333564396333353466306461636563393766653737303931623435623134373639386237663836303134323264636432323631653932386465346461633963343264636261666466393663303732333362613330323730373666333763393639653865643330623662356438663530333462653764393263353936663862653836316535316663633361323432626639643862653965326139653865306631353565626366663233656666613763643537633130353432383131643830373736633935383535323666646230656161333465653139353564353131313933393066653837336534633034646564643239313635383834623938623436333038373838616537666334643461613461386663396263323637346261333231343933623632343435356164343130633164653731626339356431643931666130663230313431386137393565333039656166323937623639396266323763396661323736336364353963656230323165313662383230306331303630663238313766643833636663373637313833343839343631653335393932393162333830643665393339626161346231393233326136613237326464653635316638303436666463333464623237366137373764366662326265633332353562326363323434623461663536366231303566333063363530366464616530656233646564646366393437626362396336306530303039383466336234613863366334656434626639306263313933326237663934646333616536623336303030386562393032303430663962303230333031303030312802320218053a603561383634313561303861306138323566336232656237353031303135353230326533313234336665343161303333333834653738633138633131653565386632303964343933623062326664343565303662333734663262363964663564370ab70722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030613365333762373663366364356636363232643639323434343464313263363737633339356632623539303266336262393862386138623530353561373037373036636130323863643735303630613264383730326432643862303439343762646366653061386331343161613238343462316530366536363139303031326538623633323661623066613331373937336263376362346432393439663231303861613034633462306339316261613537323866356235363232656337356162663537386131663762343165646532613637656264363963313865353831666466396336303230616330646539636132633331663063363436393030333331316662623563653764623439633738376531613764323761613432356565376238346461376536363933396639633830643065383266636535356530326466633862356337383431386132366161343336353036393837313962616663656366306264343930303061646463666134303537303862646265666262313937343964323264616230303765343464343565613233623130366638383334633135326532353036326434636632346666323533353663376562333732393130353339336662343962616239303461303266306630626234313763643931396433353238393031323865366262666634666163396639306465313138613937346632613664643031653033326137396231373866363066613166636262643032623537303466623436323935633135313930383136333733656464363633356338353639373866316239353033663166373362346230626538616261326564316665656164353939353362663832656664653933613334373161626435356364613362613861363733666262333739393734396662303036643030336630653633663636356333343631643261376232396463386232303462613539613635363638613436616532383738663030643166393439306466396532383066656266343331356561303465616135363861336139666434386336326336336236656364613639303230333031303030312803320218063a606434363430333938303337393230373965636364356134343331316361306463323262353065633839356235366535336431326232396637326463366462613363616665326535623831303466626461303338616635623434376430666231320ab70722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030393361323135636334613761373232636165396331336162643633366466393963636565633661663964623436623639666135313637313665663530636532343930613938316530396162303139636132636234363831316235623631396431626431643565653666343661343263373737636264656536343261313438346563646635646464333732393634326333386336643433613838353838373434373566353832343434333636346330346466656439623839303435666230383565323563336566636234383431373333656666376335323963313339653639333530633263643739623263386431393637396137313265346538636166643332363735343162383332623365313061303132353564656636396466316539643362386438656166303331316465363764356531326232366464303164626264396433653432643335643964653237313330326530663166363964383763626337616361396538383637653964343238643363616230363636656234393064356662616233306266663366373835643033663230373261343362623962356535343635366135393263623631656166643561356566323834633763616563363666376634373332356363306434633164323766363631643861373438636135303731633036656631333464666639366634303836363838333636643436386132343738303031376530623536616261376661623433623362376330623737393036666165353438326633323831316332393265366231343435346531346238393438303161383661303363633437373934646430643734353237613732653432346564336166613034383939656362396136336632613961653732626537666139383961646630643635613332633835316439383031666334313034386466333335363466633762333137303765633866623830313430666537623761316661313230626131636236363033323463656666623462636332643962623764653063663534633831396632646433626365616465633963323566356531396463396231303230333031303030312806320218093a603365303261363732306334343636353965383633303564353562666565383230623335653635306665636163633535333039373435356532633465303332636339646564313662316262343464336235393262626163623663326266663165360ab70722cc063330383230316132333030643036303932613836343838366637306430313031303130353030303338323031386630303330383230313861303238323031383130303930323539663465336439663066333934323536353438653963373330386231306237333430336363393039346439376164313531623737303631373062393737326365623634643636326563656639303161386437643135643331396135396338623731303731616363643839356237633933363130646336393736663637633465313732396261383337336162376535326133663363386632363534393164646536396436653039393934373065373434353938313133316264393663333665363836353230336662326562643564353065616461666237323633393664656331643931373438393862346539626530346337346433303466656164643963626433323334633362376633333036633939636230633333396663323539363962343164353861326237636663313833326532323664383163313936333939336532323535613038376431363938633033643432313062643634353830363434643039356361373661613137393465646434306331633837623566383261386533396636303365393731313662613034353738653765383033343634393564373835643465663763663737313462396562366635663965306239613934663462373338383436313962393237346434613935656631353735346138396439376566356331613838623664363933653061383065626435333766633963663063613931643163363264393135646537656438313862393532653634633230303239336565386532383461343136613732613365313266633764343233623135386639623439363630636263323436366662656430666564326532346531303266646539343265623463666439346265633436643364393066633038633339666563626130336530636132343634616536363462393739353135626132396531663730326333666537303262653739333739366438656462313761613438633039323930623032343534396630363131663561653233656437653136343432646637643164616432323836633262623039643535323264643365643639386332663032303330313030303128093202180c3a606339373462623938326338313931336237333236643561336639646363343836313261313566376161643032663230376230663130636432303137613666626666353830336537636139626662343730396162323862366230396435623133660ab70722cc063330383230316132333030643036303932613836343838366637306430313031303130353030303338323031386630303330383230313861303238323031383130303962646438653834666164616133353332666334636530316138613137643463336232333266353061393739306532363236383465646334383233653831356131626435623230656365613762663536653239663662623762383331666233626636656663643134373566306238656435666662306231333835623936643136366236323966303339366138666566356630366534626361323565653461313334306565323633613464396262303230643866343732333036663364383836313338646537613031396530353962643061666339303263636261316132313361653264616136306338613031333735356665306134386530333466356234303233613264616465616138386335343836383335336163376137613364663132623266623634313837373465396231346265366561623863633237623838303132616436313632646137346530656562313631333539303566343337333734646162383538366437353061323662626433616332346165643837386334643533653635313037326338373165393464376163633537356339363733383137333461353366656166346437626136626364643234316363363435386336303837643836333032616132353163303466366435366239633332643764393636323437353065643035353738356430373733663433646330393962323863393232383131343865366338316632393766663964313636653030306163303462333132343138363737356663656637356635656261306331303332626631333064663663643761343632313164306466336530353834643932656136373334396438343930353038656234656638386635346338633364343836646538373139663130666139366665623835636337393630373663613738313331386565326439656439303363613133333630343063353961643931613464326636393865393130386165306564623962316362393561643333623139376666623138626431626138623536636265653261616539353835656365323038613165313462343835363436333032303330313030303128083202180b3a603937303834333033333130373866353638326337663332343464383263336233653238316139313837393537386465656163646363326132656265353431616631383831313561643265383338363565356635643234376234613138633165650ab50722cc0633303832303161323330306430363039326138363438383666373064303130313031303530303033383230313866303033303832303138613032383230313831303039303938383635646566326632616233373663376630663733386331643837613237616330316166643030383632306333356362366562666362623063333330303331393361333838633334366433303233313732373031323139336262373666643330303462383634333132633638396566353231336362623930313130313530396465616239346632366137333265363337393239646134633463623332353137653361646262333831316435306163346337376331666365386236353136303632313566333437303766336537323635353435653538633839343630396532383337366264623737373566653330343339653065313539326664636230633365653163333035373733643037326136623839353765616663653161313162653936356564616666333834333336366362366134346563323561383930313036653632343735363766373662353530666461343832626165633633303764363938656338383834316664363666323366323130653437623861396463626136626134653166613731366462333363383065333038313934393664636235653536303966623665376336313533373962646465643432376539323331623932353463326261663934333630386138366436393861653961336338363339646638383764366636623561373133383564323433333864393131613231326266373166316532616363386231383662393665633865363963383662366430353832313737373661303963396336383935336564623539313635373862356132363362326634363965336230633037656164613731613434376565613766386663316262383037343235353536376237663062643165366166623033353837313863393862343239653234623232393835393666633736636636616633393663613934333464373932366563376433376434623932616635366434356665666638313936303935323234613931366331666665366236363765323535666333616338636363656639323064633034346232353030333133326238373830363734326630323033303130303031320218033a603333373339306438666561313434616663313265383132353461323864616336656138323839333833366163303732656666643835653061373734383538306566323830393636343863356137663864626234636538313437363831353133370ab70722cc063330383230316132333030643036303932613836343838366637306430313031303130353030303338323031386630303330383230313861303238323031383130306335376564623966663237366530323362323830323163623164383763646631393636623639386366343865346561616137633639323037376365656538636362323339613463393231353937653865383966376363303564336633313331353738393736633465333134343035643461346530336137323431306335633039636135323761643561383562393938363337653732613332653166626330643535343662323436356539653830366332646435303965623035306162356662323730363366643932383135623164643236383965323131316361656236663534396539346139663030663038323164346361366336613631313766356135333363393236336266303734613330643563626566353064316338633233383762636139373265646564613039383362356430613662353764636230303230303036383238623430653430373662343837306232346261643834303536656535326235663432326538383430303238633235303036333832643865396336363132323566346637366561373265333430363037653966633666336332303433333037366131636138636231356564303361633839363664303530376263646536383165346530323331656539663837643131316537623438616338663934643264383432623532646637336635373363633534313439363437393763363236393638666661653734313866336236313039623561306630396533323233663461346435653335303964643235303133386636626331376266366365636531373539343433306466313830613338653930616466326166666266616430633662386331623837663137386130363164636662666638623932633931363664383734633166663561663466626364626665386539643039393337306464663630626537343736333364333665653465623563643531663665336333333965313531653431626462356135636532633863393761306134336233636434636330383138383463383739663964326633373438343238633835373366313763393066336362643032303330313030303128073202180a3a603734306166366266373339653838336338386633333434633961306638623330316533396463393831633531363365306465326133666634326239396534323665643765353662363766343231383530333834356466363266343963396662300ab70722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030393133316161333638663933343532323966393762363235396363636166666561323365303063643565616430326533663639366331653731346565333933396461643836306533386266393561323937346639656234386539333433663861616334303565613935356430353332336531313762336231633934383133613361663432666538303832633364343362616631626434643833363765393364623030616436393665363237613130333661653533346630313165616435653536663337613666666534346236623965303939343031313932616435363061303334366234316138313030393566356632643766643332643665656236353562613735386336623532366331323933383661663731393763376135336165363033643632323833323235343936316631366430656661383037396137363835363138383862653733333439323231373935366262636166616562623631333563356662623234383464356234613566646630333336616330326532366331363532633162643865616633306461653164366433656230306637623466616238643634373866653864393565623931316466393636613064656134653532326462373662383936363537306563633561663039353136343234663061663566386565363665333836643536353037313339393731363961633337353733626635326664303538646539356162326666363865363831313161623233343035656139363462326262383864303263306631636165643731656364643465346534303835393438373666646238353030626335356337626130323036366530356162393864396637653034363664393730326562353765653337323266386663633835613735353035666633323632313730323838623738383732336164623937653464653536323063633930656164313338326663643735373138383966656662313165363737316263336636663366656231396337616335343238373864303361393032373035323663336565643234393465666635346531353363613966363839303230333031303030312801320218043a603765616236393661623935343336363538626331346666366234626534643932356364353162323230646632613164356336656531363061646166323961353165363934646533656531383463653232656164386437646239333231383266330ab70722cc0633303832303161323330306430363039326138363438383666373064303130313031303530303033383230313866303033303832303138613032383230313831303038326465373330363566333466666332393334306435393439643232323062316534333636656435636637633665626436313663663934313661353365613030313766366262313136626664336633646566636331356237613464646630653434643032666536393536383830353365373961373730653230316263663731393333393030333965653866303836643466613734366337653035363931383330316639623565383465333932363238323830383561373962333232626361306235643835666539373232316132366262646532353863363230663064636561303261623165646431366363343961336632616239323838653364643166333764633462366136663731333366663932653534316337316237306432613266363664353537323561623138626638366430303965633364323466356431326530623565363830326431313531333732643462373634656265636234616638326636343934383565633537623561303164633637393538663561303363636161623763626139333534613137333732633133313662613437633935336161663934393031623366386332346536613361666436373538653766336231343363653264643363623037316232613734633932316365653934396134623561366265383739663163373930613662386436336231393264376565323961393439316664643638396139386330613763336436303332306631623461633264363232396466643934653432663361363034386137366265316562393538633861313837336265386433333861656339666335396162376633373632363738393430326331666435393566313930383735373565306265383237666334633061346662336433393361643734613934396363393836626662363463616264646165353339333566366463353630373464623933643737656133623831366264643662653533343439373237323238393835396666333463653531383630616666623632316431303438376463333834336631663836643534303334613633653438613161306430323033303130303031280a3202180d3a606132656363316232616539386264323862633161303864386633373161306434663734356337363864306337373339363235363265333433623235643833343235656565613765663865613134323935333432623865623738643332656333660ab70722cc0633303832303161323330306430363039326138363438383666373064303130313031303530303033383230313866303033303832303138613032383230313831303039383735356134303862353332316532363330353230303064366437643461326333613535346435653133383461396362356562663437346165383832633633623438366264303864313434646466316139346365396137643632353139363330303661666461616334353838343666313736343031393566653235333961363536393330656661383534663231343865363865633161303863316334396432303063336633303435666537313437663036643533346334626432363231303063623164643339373339643736306438316130626432306638336632353564323530376434636362313130366235333631386336613934343039633838376361653236326434636565396338363233323134376365633134303465306335376262613733313731333065653339363433383838616633643539386564643832623863363165363561653831613465316135366263303664333937313433613938643431636138376433656634333365663061656162363830313139316233653338343830393638663636623665383836363261663435613965323132393934663638623238386562393637626562393834373863323433653231333663316131353931663036316635626330346232316666326261343862323966313834333130383838373362646665393966386135326539343038393731383536653830346465613630326133313137383663393835363532393633633361333737303332396234303966373466646663373436623232613566383431383931323037316334636538343663396234623332306665646636653962363465326362653338346639613832623661616164346232303930373433316466316133336636393230376135363536303062653831303730643038333239303039393538353961343439386435623539333135626365626566656538303765623061336139343266316364663333363764643434343466646232393838366566636464306265346162653961313838383033393533383735656461333364623732393839663736336230323033303130303031280b3202180e3a603139366237623132303739376364623361396430303362393833643537646131303331303662313733306531376636376532633762616161646234333738396166313639366461313031316232353362636263383630333333383566303332380ab70722cc0633303832303161323330306430363039326138363438383666373064303130313031303530303033383230313866303033303832303138613032383230313831303061396462376638626161313236383938666162373839313135613362356438393734346631393765323830343161653039386633653838366336393837313732316531316262306164313166336365393132346161393631643661306463383435663439373635633366616231393935383430323637366635363434363262663238316462613535383837383066303365393035373938653138343236396161613630663761313437323333316532666231646561646438373763383463626362363431636139653563386164366534356263313539636230373966636230643434396364636438643932333963316130343765376234343864613063646361323636313061323566323936643936653734363962363736643461343434353136653761353965383532393361383038366638343063303532383534653032613863623230303264616433353832356265346438336235326661393165386337336666303439373436313438383632373837633131313866393234643331636261633162343466656666323264343336623339373965616466396234336134626661373265313562343735356663616232363065303661323739633362623733626337663136613036306434643532326664343930353830333838616135393564383034343733366535323266363432343931356637383033623735383365303935636466373863333235313936393764653831623839666235303035343735336231613137663961616662303634643834633939326639616231316363626338636231303831346463616635323634616134356632316264656661633832636361636161663335386533313337336565316261346537343032666438613730656130633238636135636337346463343235313063393639636432633435396231656333363838613031656133396139393237313063643232393763393861383462363334386135373738303466646332333464336665313930336532633231653137326461323862353961653665346337653865646438623731633439643730323033303130303031280c3202180f3a603538343661353366343437353239666439636462373830346364333136383865643665656265336236336461326635663231316666626337333731393763663366316366626664613631626537643135313066306539323339383131376637340ab70722cc0633303832303161323330306430363039326138363438383666373064303130313031303530303033383230313866303033303832303138613032383230313831303061386365616333363765623166316465356630643965663365616630646639623938343438666532303830383437363536326130363063353163323839373730623463616366653932636236353536393832336539363263326132633966656435336264333663613361313232646531633532356135383266323561346437643632386331613364356264623839333661656365373531306537353534656537303333303235633039326338323865656235373338626530326564393633646138316135393230353633346365393435343537376162383266343066313366316565353565306165373237653233633330323834623166343462393961636534646463356639616337616438386439666132323535393335623234646362613834303036343265313663663235333263306230643638393239303436303837313563343037366634366438346130653066656433366537366363646339363335356537613236313630393435633262353461653236636330306664303832333236333436656565656137646437356639313931316539396462636239396561346163366261303536633333323238643838316438353833316439636338373935393364613137343664643065653935646332623936666539336261666366663263643764393239353864373864663333663230356437313135656439666163346462366634636336306535366135343431646135623562353566613539393939303265393538613662366334346438313064646335363138313234316238376632326630353961363838306538303231373336643031383937646236353434396365383137613233373564303335353163623064653530376336303961306338303330656366346266646562323133633033646161373634613138323162373234333334663731663736386437616563623237373035326137303333373635663037323138303536633738663261383761663138333836643866363161356366636233663262613464643539393135663133643338363334643136393537353730323033303130303031280d320218103a603030306162636435396133306135333838633530306265363832663663613239343034363239356339323735383831633230643334626230643639306564613762333862366262643037613364643166646662366137303434626230396366660ab70722cc0633303832303161323330306430363039326138363438383666373064303130313031303530303033383230313866303033303832303138613032383230313831303061663062393134323537626637613436353563346135306430636164356530613165343538316564363632336630653837333066373936623866323963353831373862636363363933326331666333316633396566343462383264336334336233393837333733373366656362313239353232386130346664353061313466333634366438346665316634363763616562393864343633653239373565393935623864326531653339663362663661646463323561653335643635643032363038653033343535333739363665326162636534396238313462656164336331623735373137346165333063303062306334336539396238303439366237326433633133316631633665346663646130356632383131376566396532386334333033626534643863376530343264353862383363633132313934356132633635653739363263616139313835393338663337353764663763636139356366303262356533313934346133613631396130616333663165333462396230313364346332323463346631653730666439666433363938336566383661646535313833363263633833323263306637623631613961633735666238326537623836643638626330663039396130396131346361633561316438643338663961386137306363333766663563633362626432373432666664313436323535633137316536613137383038333237316463653066646536383165643439326362353962303739366432373031373538333864633539303831303765336136656133663961343036623364313133306363656333623437393165343962626332333136303362343661623264306639336434336265373561623961346437313065613934306532383561376231353362306361376364646565366439646365306164383335306334316439306332313562393538383531356166613061633333363561653037653831663362626233366264626561633462333162636231616134653832353635623937376639646164383564363236656566396161613965663864376533666230323033303130303031280e320218113a603933653238313031303462326231376230303935326235613431303264333365646230343363623136646533616433643364363832363066353562623065353837333765613539343463333338663763386362383863373833336663383630630ab70722cc0633303832303161323330306430363039326138363438383666373064303130313031303530303033383230313866303033303832303138613032383230313831303038633037626533303561643630623930626132646162333962306565373736306531613232663835373532323534306437306230336233663965343837356133613239616230383038386631343466353765623235326534366261353933383564306536643432373031313764613061626331623362383036393463396135303538623836643631646661303665373136373039633838653866656163376333613065316432356663306165626636613866373666636239396638343566653138313436316361623638353862393763336134303237666233373132623134653663303738396465313764343137363435373765353131343137656231363236393265623037616531653733353532333565396262343339303437623663303136313337383265376464366636303464616134363734363631643533393631663436633366616136623765373637363264333733623562353432623739656139363365666266333361633638313938626232623636316366663637363931366566333732616434633236633231366334626334373837633834656333326431383464373763373531383663303963663364396639313433336361393835333131396261623331666136616432366634353365353936643962646563613638613537363962633866656537613533356438306338633666336566623164666232383861623661393739383534623763653833313234656330643130326166663934633362373466396333373839353863323565623933336464353363316538303561313836353464366439313836393930663635373034323966393630663334653862346637666439393732646362666539323430653037346461326433353561356637656639633161663632656635393832613831373435373862396331356334396563353636626461636233306363666365663039636466653730386164343837343234653963316265363533663965653736363065376439343263316566613564613238366531616464616230366139613333663964653934363739356230323033303130303031280f320218123a603934383235313739643163333934303137306233356432363665346366613830643737386335653966356261653764653833666638636334373431663362653336616336336431653761653439373261656466366263316533636632303638390ab70722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030626531376339393634376365633635613434343037623533353835366233633362616566356235346635363561663538623834353662613863376365353335643561633732633631633434633736623363353763386538363438343136333762653130613833636665333963303932343736643064626534643663646364636437323061333062356266656235316130316131386635383263343566366338363939336663663764663138323933356465316438363930363034346463663335313836393335643962643765656137393532333532626562623465663961653066373636316537306134323337616661393839393636383763613438666366633562303064333830376630353462653066613863336266613432353033386265366566323935313634663232663733623765383863393465613962653861613466336132343563383962396431666435313932663761353062393538623265663831303462333666316266386664326366623238633134323138303063316334376534656639386166313530303730636336643639643137653865623932663138613661613161363532363661343935323338643130336638663639356235376563663337333635306130353230303837343537323162656138313536323739363763383037363336356466386334633761376434646438663263333835306331386662613731656236306536653864666264313936653035333766643730623334346563626363353330646663383364613666656466343964353161393034313935303262613964373063643335663163663363303639346532333534663930363466646266353335656232336332376330613433643062373863316638363763363164393836393564386465663762633261313062623636373463323266363661616230613931383133646466323763646238353263353965663739653162396531613037356661366565323761376533373734646266346232363436353432376536643561623931666537663066336137313738346563613138326235303230333031303030312810320218133a603038393039376465663031623037633764393734613537353532353161366161613061666236623332613534353334336432393138653732626164303433323163313131633234643432373538306633626131653236616139643735653632360ab70722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030613561643262373634336130346330353564326638636432353131623135313339666334353537353632313338386534396331313962326633393861636131313066363133393662306338363664653530363335323262623835343032373365313366366439346365316536303433386636616662303061616136343631326637313435653962636538626331613533623934313931336161373663396633613238333366616437636632383563376163326433376639396633633263646234396465346431353165363136373835363466323831663534313432346234316661376335316232613936303232383363376433326565303065623833386461313563333861666339366530363164393763656465323231363566663161613935396631633432373562326430393863343035383661353537396662623363623930303732373034313230613861363661353237306634666366643130383663393233363930613335653766643434356533336163303366313339633638363835353635373063646334616166323231303761366331613434323435366137633663373965653034303930653765356434663636626361363063613166343762366466623534336461633363626631396137373139613866353562366638336234613362386136366436303235366430613436353531666137303234626430353633316238613535383038373732353463326632663236386364633333643264626263666237333365396662653233336262396362353961623331613031343862323365386334323638306666313061663463373961346430383334366662373961393364393632393534386561663162623132343639386661656661346364643732343432633033613034623733333433326637343839303361333235633238336434353661623961653932316165376564333339316535643137383765666463323335343061376238356336393161653837306130376639306231316331336233326365343365616564313562333639363835636534393137376363393835303230333031303030312811320218143a603939666162633461646534653636326336653238323366346139366562323134343034383465356136643064333132623730633036386432326236323936333830376332333361343964626239383361376562623330653737303637373261340ab70722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030386434356332316330633935656636356130323964353263393537666430663835663230313233646130333465363136373164646565353437356630373338326136366336366362346463353035303464646664333735383130383364663864313735373733306564386436663336346466346333366132363531353931393535646132303161323430376661386162396232333133383131323235613064613233306662653338306530393061613536656661346632303265633962343832336636353031643936616336393865626632366161636633656532643166333261373231633934376531303736636633356233373364613164383761333661313532653030653731303131373932323832653832356666313731633538333362383835373062666336646138343439653666393566386231323635616235353531393430333135353364316435373666393363343263306361363061616261633463386464313632643831313466326232313531313538336337323533396665353663343939613932396465336134306130643435633137633538396332643739383863653236656166633932613364333762376561303034326434336530336166613632373162323632353561366363636661653533373138323164383165306230356332353062353966306139303734316130653065383861303965643536633562393738306430393566303930366630623831643531323633393832616165303131333663303732643834346131316436646134623261363163363434653161623137663136666634386565323366656465383435326631653432653264333061303739306332356434323036306531643434613637316132656232336431313466363863373165333366313736646235386136386234333030353462633164323938336132336133326561366666393566613763346438653338306562323936653938623739363865636638343534643831376337333765656135646439323165623836633136633762323933303461346137656362653561336131303230333031303030312812320218153a606537396165396337313933643164326263393433383436346338616135663632323461653835323936366134336239383235383833663766373432633533393562643330393935383761393638363662393233396431656666336165353037610ab70722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030623035616265326162303066646430366339353565383637313062306530366631613932363234613438616431636263386466633666323231323936326230633330666462643238346133376335613337363538623633633336656138313632353631613865346639343663626535373232633032383830316630663238316337306638643838633763303061326632653239663539376237393938363965643833353664663537633437626539393434613261616666363530663962346262613064626335336463383830666462623639656134353139303564323830323230326638653239633034613736643237616632656237633534383438356266336634363934633930633431383130383838383433373932383438383335663738313637303764336538643736663465363766353738306263663038383133633535656336333961396264363234313738663565623134376435303061663335316539656631623165333432343834636132363064623763636261653438366631336366323635623562316162363838303636303038303533623230633364656463653737316339613038613033323061613963653435316562396439383361376234396361613130393666386164633039383331386463333865306537636566306438653564353537613036373536383561316339653235366132626339646261333232623362623331373263663731343037376263333830663861306134333361386266613766626663353966366230393365633862663665393339376330396231386531383034306331623536363836343733376338666137653239373935663361343538386464613763326261623439353636356363346139623833366532656239306336326133666361663539316662356638313830346337363138306536323666613236343461376465333435313164366334363637643938393337653237373333663464316539313338383333353465353466643733353137323165373666376235366333343833333838663461366238376232386165626562303230333031303030312813320218163a603962343038383566313362366163316337353336393262613366313739303061333838333165363934613061663937343934623834333838323039636235656662646339386136646162623265316337313833393166633133356264616163330ab70722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030396463643863306135336539306333353539353734663636323034313137643362353033653530613336643330393766616338343239653663656364333762623534303731383038663265653938323033356638353161306339626532313736333833613232653338633161626131363866333266393035373063623332333363666536323539383736363661663637623531346361656632316662386466366430666364333363663236303662393264646561353533366236303638643836373832653339626435633338343435393931643431396237643165633038353939343132633039343964316332343062333563313464633535323734646261373166666165393336313235613566383139663534313332653234333964346163353539373939366563653835653133646666333336316639313331663536636561633562396635353262343963663666396139616336653564636532646233363934363266393361663830653562353662366538626566613136326130363162346137363839326264633834363437333036633630303835386664643237303332373663326337303434303139386566643766653335343563663261623538306337346366643634343561616637626437663734356363323532656162643236356561626565383632343137313034653639343861353537353666646332323264663061313031353234646531633363303863636630343330313165633766653936346564643834353161313330313437633037333633613335663131666465656638663261326237363137353762343335386666383962373561343864363762646336303930363933653062623836373965636262393366666462336633656439366265633933656634363536653337313661623837636534366361386531323539633866656464653866326631656130663365623263343865393635353164653132333330333435373235663435656436396338353735623531363833616661343732363231383236646232326262326431633466316533363436346139303230333031303030312814320218173a60346630613033333466393737363738313632663830643936376637323139313431333630633062376637663033316233376336396536323137333933336564616434366263626139373636376565373262666435613933346261313532326330")));class ManagedNetwork{constructor(e){this._network=new Map,this._nodes=[],this._healthyNodes=[],this._createNetworkChannel=e,this._ledgerId=null,this._minBackoff=8e3,this._maxBackoff=36e5,this._maxNodeAttempts=-1,this._nodeMinReadmitPeriod=this._minBackoff,this._nodeMaxReadmitPeriod=this._maxBackoff,this._earliestReadmitTime=Date.now()+this._nodeMinReadmitPeriod}setNetworkName(e){return console.warn("Deprecated: Use `setLedgerId` instead"),this.setLedgerId(e)}get networkName(){return console.warn("Deprecated: Use `ledgerId` instead"),null!=this.ledgerId?this.ledgerId.toString():null}setLedgerId(e){return this._ledgerId="string"==typeof e?LedgerId.fromString(e):e,this}get ledgerId(){return null!=this._ledgerId?this._ledgerId:null}_createNodeFromNetworkEntry(e){throw new Error("not implemented")}_getNodesToRemove(e){throw new Error("not implemented")}_removeDeadNodes(){if(this._maxNodeAttempts>0)for(let e=this._nodes.length-1;e>=0;e--){this._nodes[e]._badGrpcStatusCounte&&(t=Math.min(this._nodes[n]._readmitTime,t)),this._nodes[n]==this._healthyNodes[o])continue e;r=!1,this._nodes[n]._readmitTime<=e&&this._healthyNodes.push(this._nodes[n])}this._earliestReadmitTime=Math.min(Math.max(t,this._nodeMinReadmitPeriod),this._nodeMaxReadmitPeriod)}}_getNumberOfMostHealthyNodes(e){this._removeDeadNodes(),this._readmitNodes();const t=[];let r=this._healthyNodes.slice();e=Math.min(e,r.length);for(let n=0;nt.getKey()!==e.getKey()))}return t}_closeNode(e){const t=this._nodes[e];t.close(),this._removeNodeFromNetwork(t),this._nodes.splice(e,1)}_removeNodeFromNetwork(e){const t=this._network.get(e.getKey());for(let r=0;r[e,"string"==typeof t?AccountId.fromString(t):t]))))}setNetworkFromAddressBook(e){const t={},r=this.isTransportSecurity()?50212:50211;for(const n of e.nodeAddresses)for(const e of n.addresses)e.port===r&&null!=n.accountId&&(t[e.toString()]=n.accountId);return this.setNetwork(t),this}get network(){var e={};for(const t of this._nodes)e[t.address.toString()]=t.accountId;return e}setNetworkName(e){switch(super.setLedgerId(e),e){case"mainnet":this._addressBook=MAINNET_ADDRESS_BOOK;break;case"testnet":this._addressBook=TESTNET_ADDRESS_BOOK;break;case"previewnet":this._addressBook=PREVIEWNET_ADDRESS_BOOK}if(null!=this._addressBook)for(const t of this._nodes)for(const e of this._addressBook.nodeAddresses)null!=e.accountId&&e.accountId.toString()===t.accountId.toString()&&t.setNodeAddress(e);return this}get networkName(){return null!=this._ledgerId?this._ledgerId.toString():null}_createNodeFromNetworkEntry(e){const t="string"==typeof e[1]?AccountId.fromString(e[1]):e[1];return new Node$1({newNode:{address:e[0],accountId:t,channelInitFunction:this._createNetworkChannel}}).setMinBackoff(this._minBackoff)}_getNodesToRemove(e){const t=[];for(let r=this._nodes.length-1;r>=0;r--){const n=this._nodes[r],o=e.get(n.address.toString());null!=o&&o.toString()===n.accountId.toString()||t.push(r)}return t}_checkNetworkContainsEntry(e){for(const t of this._nodes)if(t.address.toString()===e[0])return!0;return!1}get maxNodesPerTransaction(){return this._maxNodesPerTransaction}setMaxNodesPerTransaction(e){return this._maxNodesPerTransaction=e,this}get maxNodeAttempts(){return this._maxNodeAttempts}setMaxNodeAttempts(e){return this._maxNodeAttempts=e,this}isTransportSecurity(){return this._transportSecurity}setTransportSecurity(e){if(this._transportSecurity==e)return this;this._network.clear();for(let t=0;t0?this._maxNodesPerTransaction:this._nodes.length<=9?this._nodes.length:Math.floor((this._nodes.length+3-1)/3)}getNodeAccountIdsForExecute(){return this._getNumberOfMostHealthyNodes(this.getNumberOfNodesForTransaction()).map((e=>e.accountId))}};class MirrorNode extends ManagedNode{constructor(e={}){super(e)}getKey(){return this._address.toString()}}class MirrorNetwork extends ManagedNetwork{constructor(e){super(e)}setNetwork(e){this._setNetwork(new Map(e.map((e=>[e,e]))))}get network(){var e=[];for(const t of this._nodes)e.push(t.address.toString());return e}_createNodeFromNetworkEntry(e){return new MirrorNode({newNode:{address:e[1],channelInitFunction:this._createNetworkChannel}}).setMinBackoff(this._minBackoff)}_getNodesToRemove(e){const t=[],r=Object.values(e);for(let n=this._nodes.length-1;n>=0;n--){const e=this._nodes[n];r.includes(e.address.toString())||t.push(n)}return t}getNextMirrorNode(){if(null==this._createNetworkChannel)throw new Error("mirror network not supported on browser");return this._getNumberOfMostHealthyNodes(1)[0]}}class Client{constructor(e){this._mirrorNetwork=new MirrorNetwork(this._createMirrorNetworkChannel()),this._network=new Network$1(this._createNetworkChannel()),this._operator=null,this._defaultMaxTransactionFee=null,this._defaultMaxQueryPayment=new Hbar(1),null!=e&&null!=e.operator&&this.setOperator(e.operator.accountId,e.operator.privateKey),this._maxAttempts=null,this._signOnDemand=!1,this._autoValidateChecksums=!1,this._minBackoff=250,this._maxBackoff=8e3,this._defaultRegenerateTransactionId=!0,this._requestTimeout=null,this._networkUpdatePeriod=864e5,this._isShutdown=!1,null!=e&&!1!==e.scheduleNetworkUpdate&&this._scheduleNetworkUpdate(),this._timer,this._logger=null}setNetworkName(e){return console.warn("Deprecated: Use `setLedgerId` instead"),this.setLedgerId(e)}get networkName(){return console.warn("Deprecated: Use `ledgerId` instead"),null!=this.ledgerId?this.ledgerId.toString():null}setLedgerId(e){return this._network.setLedgerId("string"==typeof e?LedgerId.fromString(e):e),this}get ledgerId(){return null!=this._network._ledgerId?this._network.ledgerId:null}setNetwork(e){throw new Error("not implemented")}setNetworkFromAddressBook(e){return this._network.setNetworkFromAddressBook(e),this}get network(){return this._network.network}setMirrorNetwork(e){throw new Error("not implemented")}get mirrorNetwork(){return this._mirrorNetwork.network}get signOnDemand(){return this._signOnDemand}setSignOnDemand(e){this._signOnDemand=e}isTransportSecurity(){return this._network.isTransportSecurity()}setTransportSecurity(e){return this._network.setTransportSecurity(e),this}setOperator(e,t){const r="string"==typeof t?PrivateKey.fromStringDer(t):t;return this.setOperatorWith(e,r.publicKey,(e=>Promise.resolve(r.sign(e))))}getOperator(){return this._operator}setOperatorWith(e,t,r){const n=e instanceof AccountId?e:AccountId.fromString(e);return null!=this._network._ledgerId&&n.validateChecksum(this),this._operator={transactionSigner:r,accountId:n,publicKey:t instanceof PublicKey?t:PublicKey.fromString(t)},this}setAutoValidateChecksums(e){return this._autoValidateChecksums=e,this}isAutoValidateChecksumsEnabled(){return this._autoValidateChecksums}get operatorAccountId(){return null!=this._operator?this._operator.accountId:null}get operatorPublicKey(){return null!=this._operator?this._operator.publicKey:null}get defaultMaxTransactionFee(){return this._defaultMaxTransactionFee}get maxTransactionFee(){return this.defaultMaxTransactionFee}setDefaultMaxTransactionFee(e){if(e.toTinybars().toInt()<0)throw new Error("defaultMaxTransactionFee must be non-negative");return this._defaultMaxTransactionFee=e,this}setMaxTransactionFee(e){return this.setDefaultMaxTransactionFee(e)}get defaultRegenerateTransactionId(){return this._defaultRegenerateTransactionId}setDefaultRegenerateTransactionId(e){return this._defaultRegenerateTransactionId=e,this}get defaultMaxQueryPayment(){return this._defaultMaxQueryPayment}get maxQueryPayment(){return this.defaultMaxQueryPayment}setDefaultMaxQueryPayment(e){if(convertToNumber(e.toTinybars())<0)throw new Error("defaultMaxQueryPayment must be non-negative");return this._defaultMaxQueryPayment=e,this}setMaxQueryPayment(e){return this.setDefaultMaxQueryPayment(e)}get maxAttempts(){return null!=this._maxAttempts?this._maxAttempts:10}setMaxAttempts(e){return this._maxAttempts=e,this}get maxNodeAttempts(){return this._network.maxNodeAttempts}setMaxNodeAttempts(e){return this._network.setMaxNodeAttempts(e),this}get nodeWaitTime(){return this._network.minBackoff}setNodeWaitTime(e){return this._network.setMinBackoff(e),this}get maxNodesPerTransaction(){return this._network.maxNodesPerTransaction}setMaxNodesPerTransaction(e){return this._network.setMaxNodesPerTransaction(e),this}setMinBackoff(e){if(null==e)throw new Error("minBackoff cannot be null.");if(e>this._maxBackoff)throw new Error("minBackoff cannot be larger than maxBackoff.");return this._minBackoff=e,this}get minBackoff(){return this._minBackoff}setMaxBackoff(e){if(null==e)throw new Error("maxBackoff cannot be null.");if(e{try{const e=await CACHE.addressBookQueryConstructor().setFileId(FileId.ADDRESS_BOOK).execute(this);this.setNetworkFromAddressBook(e),this._isShutdown||this._scheduleNetworkUpdate()}catch(e){this._logger&&this._logger.trace(`failed to update client address book: ${e.toString()}`)}}),this._networkUpdatePeriod)}get isClientShutDown(){return this._isShutdown}}const MAINNET={"https://grpc-web.myhbarwallet.com:443":new AccountId(3),"https://node00.swirldslabs.com:443":new AccountId(3),"https://node01-00-grpc.swirlds.com:443":new AccountId(4),"https://node02.swirldslabs.com:443":new AccountId(5),"https://node03.swirldslabs.com:443":new AccountId(6),"https://node04.swirldslabs.com:443":new AccountId(7),"https://node05.swirldslabs.com:443":new AccountId(8),"https://node06.swirldslabs.com:443":new AccountId(9),"https://node07.swirldslabs.com:443":new AccountId(10),"https://node08.swirldslabs.com:443":new AccountId(11),"https://node09.swirldslabs.com:443":new AccountId(12),"https://node10.swirldslabs.com:443":new AccountId(13),"https://node11.swirldslabs.com:443":new AccountId(14),"https://node12.swirldslabs.com:443":new AccountId(15),"https://node13.swirldslabs.com:443":new AccountId(16),"https://node14.swirldslabs.com:443":new AccountId(17),"https://node15.swirldslabs.com:443":new AccountId(18),"https://node16.swirldslabs.com:443":new AccountId(19),"https://node17.swirldslabs.com:443":new AccountId(20),"https://node18.swirldslabs.com:443":new AccountId(21),"https://node19.swirldslabs.com:443":new AccountId(22),"https://node20.swirldslabs.com:443":new AccountId(23),"https://node21.swirldslabs.com:443":new AccountId(24),"https://node22.swirldslabs.com:443":new AccountId(25),"https://node23.swirldslabs.com:443":new AccountId(26),"https://node24.swirldslabs.com:443":new AccountId(27),"https://node25.swirldslabs.com:443":new AccountId(28),"https://node26.swirldslabs.com:443":new AccountId(29),"https://node27.swirldslabs.com:443":new AccountId(30),"https://node28.swirldslabs.com:443":new AccountId(31),"https://node29.swirldslabs.com:443":new AccountId(32),"https://node30.swirldslabs.com:443":new AccountId(33),"https://node31.swirldslabs.com:443":new AccountId(34)},WEB_TESTNET={"https://testnet-node00-00-grpc.hedera.com:443":new AccountId(3),"https://testnet-node01-00-grpc.hedera.com:443":new AccountId(4),"https://testnet-node02-00-grpc.hedera.com:443":new AccountId(5),"https://testnet-node03-00-grpc.hedera.com:443":new AccountId(6),"https://testnet-node04-00-grpc.hedera.com:443":new AccountId(7),"https://testnet-node05-00-grpc.hedera.com:443":new AccountId(8),"https://testnet-node06-00-grpc.hedera.com:443":new AccountId(9)},WEB_PREVIEWNET={"https://previewnet-node00-00-grpc.hedera.com:443":new AccountId(3),"https://previewnet-node01-00-grpc.hedera.com:443":new AccountId(4),"https://previewnet-node02-00-grpc.hedera.com:443":new AccountId(5),"https://previewnet-node03-00-grpc.hedera.com:443":new AccountId(6),"https://previewnet-node04-00-grpc.hedera.com:443":new AccountId(7),"https://previewnet-node05-00-grpc.hedera.com:443":new AccountId(8),"https://previewnet-node06-00-grpc.hedera.com:443":new AccountId(9)};new AccountId(3),new AccountId(3);const ALL_WEB_NETWORK_NODES={...MAINNET,...WEB_TESTNET,...WEB_PREVIEWNET},{proto:proto$1}=HashgraphProto;class Channel{constructor(){this._crypto=null,this._smartContract=null,this._file=null,this._consensus=null,this._freeze=null,this._network=null,this._token=null,this._schedule=null,this._util=null,this._addressBook=null}close(){throw new Error("not implemented")}get crypto(){return null!=this._crypto||(this._crypto=proto$1.CryptoService.create(this._createUnaryClient("CryptoService"))),this._crypto}get smartContract(){return null!=this._smartContract||(this._smartContract=proto$1.SmartContractService.create(this._createUnaryClient("SmartContractService"))),this._smartContract}get file(){return null!=this._file||(this._file=proto$1.FileService.create(this._createUnaryClient("FileService"))),this._file}get consensus(){return null!=this._consensus||(this._consensus=proto$1.ConsensusService.create(this._createUnaryClient("ConsensusService"))),this._consensus}get freeze(){return null!=this._freeze||(this._freeze=proto$1.FreezeService.create(this._createUnaryClient("FreezeService"))),this._freeze}get network(){return null!=this._network||(this._network=proto$1.NetworkService.create(this._createUnaryClient("NetworkService"))),this._network}get token(){return null!=this._token||(this._token=proto$1.TokenService.create(this._createUnaryClient("TokenService"))),this._token}get schedule(){return null!=this._schedule||(this._schedule=proto$1.ScheduleService.create(this._createUnaryClient("ScheduleService"))),this._schedule}get util(){return null!=this._util||(this._util=proto$1.UtilService.create(this._createUnaryClient("UtilService"))),this._util}get addressBook(){return null!=this._addressBook||(this._addressBook=proto$1.AddressBookService.create(this._createUnaryClient("AddressBookService"))),this._addressBook}_createUnaryClient(e){throw new Error("not implemented")}}function encodeRequest(e){const t=new ArrayBuffer(e.byteLength+5);return new DataView(t,1,4).setUint32(0,e.length),new Uint8Array(t,5).set(e),t}function decodeUnaryResponse(e,t=0,r=e.byteLength){const n=new DataView(e,t,r);let o=0,i=null,a=0;for(;o>7,r=n.getUint32(o+1),s=o+5;if(s+r>n.byteLength)throw new Error("(BUG) unexpected frame length past the boundary");const c=new Uint8Array(e,n.byteOffset+s,r);if(0===t){if(null!=i)throw new Error("(BUG) unexpectedly received more than one data frame");i=c}else{if(1!==t)throw new Error(`(BUG) unexpected frame type: ${t}`);{const e=decode$4(c),[t,r]=e.split(":");if("grpc-status"!==t)throw new Error(`(BUG) unhandled trailer, ${e}`);a=parseInt(r)}}o+=r+5}if(0!==a)throw new Error(`(BUG) unhandled grpc-status: ${a}`);if(null==i)throw new Error("(BUG) unexpectedly received no response");return i}class WebChannel extends Channel{constructor(e){super(),this._address=e}close(){}_createUnaryClient(e){return async(t,r,n)=>{try{const o=await fetch(`${this._address}/proto.${e}/${t.name}`,{method:"POST",headers:{"content-type":"application/grpc-web+proto","x-user-agent":"hedera-sdk-js/v2","x-grpc-web":"1"},body:encodeRequest(r)});if(!o.ok){n(new HttpError(HttpStatus._fromValue(o.status)),null)}const i=o.headers.get("grpc-status"),a=o.headers.get("grpc-message");if(null!=i&&null!=a){const e=new GrpcServiceError(GrpcStatus._fromValue(parseInt(i)),ALL_WEB_NETWORK_NODES[this._address].toString());e.message=a,n(e,null)}const s=await o.arrayBuffer();n(null,decodeUnaryResponse(s))}catch(o){n(new GrpcServiceError(GrpcStatus._fromValue(18),ALL_WEB_NETWORK_NODES[this._address].toString()),null)}}}}const Network={fromName(e){switch(e){case"mainnet":return Network.MAINNET;case"testnet":return Network.TESTNET;case"previewnet":return Network.PREVIEWNET;default:throw new Error(`unknown network name: ${e}`)}},MAINNET:MAINNET,TESTNET:WEB_TESTNET,PREVIEWNET:WEB_PREVIEWNET};class WebClient extends Client{constructor(e){if(super(e),null!=e)if("string"==typeof e.network)switch(e.network){case"mainnet":this.setNetwork(Network.MAINNET),this.setLedgerId(LedgerId.MAINNET);break;case"testnet":this.setNetwork(Network.TESTNET),this.setLedgerId(LedgerId.TESTNET);break;case"previewnet":this.setNetwork(Network.PREVIEWNET),this.setLedgerId(LedgerId.PREVIEWNET);break;default:throw new Error(`unknown network: ${e.network}`)}else null!=e.network&&this.setNetwork(e.network)}static fromConfig(e){return new WebClient("string"==typeof e?JSON.parse(e):e)}static forNetwork(e){return new WebClient({network:e,scheduleNetworkUpdate:!1})}static forName(e){return new WebClient({network:e,scheduleNetworkUpdate:!1})}static forMainnet(){return new WebClient({network:"mainnet",scheduleNetworkUpdate:!1})}static forTestnet(){return new WebClient({network:"testnet",scheduleNetworkUpdate:!1})}static forPreviewnet(){return new WebClient({network:"previewnet",scheduleNetworkUpdate:!1})}setNetwork(e){if("string"==typeof e)switch(e){case"previewnet":this._network.setNetwork(Network.PREVIEWNET);break;case"testnet":this._network.setNetwork(Network.TESTNET);break;case"mainnet":this._network.setNetwork(Network.MAINNET)}else this._network.setNetwork(e)}setMirrorNetwork(e){return"string"==typeof e?this._mirrorNetwork.setNetwork([]):this._mirrorNetwork.setNetwork(e),this}_createNetworkChannel(){return e=>new WebChannel(e)}_createMirrorNetworkChannel(){return()=>{throw new Error("mirror support is not supported in browsers")}}}class CostQuery extends Executable{constructor(e){super(),this._query=e,this._grpcDeadline=e._grpcDeadline,this._requestTimeout=e._requestTimeout,this._nodeAccountIds=e._nodeAccountIds.clone(),this._operator=e._operator,this._header=null}_getTransactionId(){return this._query._getTransactionId()}_getLogId(){return`CostQuery:${this._query._getLogId()}`}async _beforeExecute(e){if(null==e)throw new Error("Cannot do CostQuery without Client");const t=null!=this._operator?this._operator:e._operator;if(null==t)throw new Error("`client` must have an `operator` or an explicit payment transaction must be provided");this._query._nodeAccountIds.isEmpty&&this._query._nodeAccountIds.setList(e._network.getNodeAccountIdsForExecute());const r=TransactionId.generate(t.accountId);null==this._query.paymentTransactionId&&this._query.setPaymentTransactionId(r);const n=this._getLogId(),o=new AccountId(0),i=TransactionId.generate(new AccountId(0)),a=new Hbar(0);this._logger&&this._logger.debug(`[${n}] making a payment transaction for node ${o.toString()} and transaction ID ${i.toString()} with amount ${a.toString()}`),this._header={payment:await _makePaymentTransaction(i,new AccountId(0),t,a),responseType:proto_1.ResponseType.COST_ANSWER}}_makeRequestAsync(){return Promise.resolve(this._query._onMakeRequest(this._header))}_shouldRetry(e,t){return this._query._shouldRetry(e,t)}_mapStatusError(e,t,r){return this._query._mapStatusError(e,t,r)}_mapResponse(e,t,r){const n=this._query._mapResponseHeader(e).cost;return Promise.resolve(Hbar.fromTinybars(n))}_execute(e,t){return this._query._execute(e,t)}_requestToBytes(e){return this._query._requestToBytes(e)}_responseToBytes(e){return this._query._responseToBytes(e)}}COST_QUERY.push((e=>new CostQuery(e)));const NetworkName={Mainnet:"mainnet",Testnet:"testnet",Previewnet:"previewnet"},HashgraphSDK=Object.freeze(Object.defineProperty({__proto__:null,AccountAllowanceAdjustTransaction:AccountAllowanceAdjustTransaction,AccountAllowanceApproveTransaction:AccountAllowanceApproveTransaction,AccountAllowanceDeleteTransaction:AccountAllowanceDeleteTransaction,AccountBalance:AccountBalance,AccountBalanceQuery:AccountBalanceQuery,AccountCreateTransaction:AccountCreateTransaction,AccountDeleteTransaction:AccountDeleteTransaction,AccountId:AccountId,AccountInfo:AccountInfo,AccountInfoFlow:AccountInfoFlow,AccountInfoQuery:AccountInfoQuery,AccountRecordsQuery:AccountRecordsQuery,AccountStakersQuery:AccountStakersQuery,AccountUpdateTransaction:AccountUpdateTransaction,AddressBookQuery:AddressBookQuery,AssessedCustomFee:AssessedCustomFee,BadKeyError:BadKeyError,BadMnemonicError:BadMnemonicError,BadMnemonicReason:BadMnemonicReason,Cache:CACHE,Client:WebClient,ContractByteCodeQuery:ContractByteCodeQuery,ContractCallQuery:ContractCallQuery,ContractCreateFlow:ContractCreateFlow,ContractCreateTransaction:ContractCreateTransaction,ContractDeleteTransaction:ContractDeleteTransaction,ContractExecuteTransaction:ContractExecuteTransaction,ContractFunctionParameters:ContractFunctionParameters,ContractFunctionResult:ContractFunctionResult,ContractFunctionSelector:ContractFunctionSelector,ContractId:ContractId,ContractInfo:ContractInfo,ContractInfoQuery:ContractInfoQuery,ContractLogInfo:ContractLogInfo,ContractNonceInfo:ContractNonceInfo,ContractUpdateTransaction:ContractUpdateTransaction,CustomFee:CustomFee,CustomFixedFee:CustomFixedFee,CustomFractionalFee:CustomFractionalFee,CustomRoyaltyFee:CustomRoyalyFee,DelegateContractId:DelegateContractId,EntityIdHelper:EntityIdHelper,EthereumFlow:EthereumFlow,EthereumTransaction:EthereumTransaction,EthereumTransactionData:EthereumTransactionData,EthereumTransactionDataEip1559:EthereumTransactionDataEip1559,EthereumTransactionDataEip2930:EthereumTransactionDataEip2930,EthereumTransactionDataLegacy:EthereumTransactionDataLegacy,EvmAddress:EvmAddress,ExchangeRate:ExchangeRate,ExchangeRates:ExchangeRates,Executable:Executable,FeeAssessmentMethod:FeeAssessmentMethod,FeeComponents:FeeComponents,FeeData:FeeData,FeeDataType:FeeDataType,FeeSchedule:FeeSchedule,FeeSchedules:FeeSchedules,FileAppendTransaction:FileAppendTransaction,FileContentsQuery:FileContentsQuery,FileCreateTransaction:FileCreateTransaction,FileDeleteTransaction:FileDeleteTransaction,FileId:FileId,FileInfo:FileInfo,FileInfoQuery:FileInfoQuery,FileUpdateTransaction:FileUpdateTransaction,FreezeTransaction:FreezeTransaction,FreezeType:FreezeType,HEDERA_PATH:HEDERA_PATH,Hbar:Hbar,HbarAllowance:HbarAllowance,HbarUnit:HbarUnit,Key:Key,KeyList:KeyList,LedgerId:LedgerId,LiveHash:LiveHash,LiveHashAddTransaction:LiveHashAddTransaction,LiveHashDeleteTransaction:LiveHashDeleteTransaction,LiveHashQuery:LiveHashQuery,LogLevel:LogLevel,Logger:Logger,Long:Long$1,MaxAttemptsOrTimeoutError:MaxAttemptsOrTimeoutError,MaxQueryPaymentExceeded:MaxQueryPaymentExceeded,Mnemonic:Mnemonic,NetworkName:NetworkName,NetworkVersionInfo:NetworkVersionInfo,NetworkVersionInfoQuery:NetworkVersionInfoQuery,NftId:NftId,NodeAddressBook:NodeAddressBook,NodeCreateTransaction:NodeCreateTransaction,NodeDeleteTransaction:NodeDeleteTransaction,NodeUpdateTransaction:NodeUpdateTransaction,PendingAirdropId:PendingAirdropId,PrecheckStatusError:PrecheckStatusError,PrivateKey:PrivateKey,PrngTransaction:PrngTransaction,Provider:Provider,ProxyStaker:ProxyStaker,PublicKey:PublicKey,Query:Query,ReceiptStatusError:ReceiptStatusError,RequestType:RequestType,SLIP44_ECDSA_ETH_PATH:SLIP44_ECDSA_ETH_PATH,SLIP44_ECDSA_HEDERA_PATH:SLIP44_ECDSA_HEDERA_PATH,ScheduleCreateTransaction:ScheduleCreateTransaction,ScheduleDeleteTransaction:ScheduleDeleteTransaction,ScheduleId:ScheduleId,ScheduleInfo:ScheduleInfo,ScheduleInfoQuery:ScheduleInfoQuery,ScheduleSignTransaction:ScheduleSignTransaction,SemanticVersion:SemanticVersion,ServiceEndpoint:ServiceEndpoint,SignatureMap:SignatureMap,Signer:Signer,SignerSignature:SignerSignature,Status:Status,StatusError:StatusError,SubscriptionHandle:SubscriptionHandle,SystemDeleteTransaction:SystemDeleteTransaction,SystemUndeleteTransaction:SystemUndeleteTransaction,Timestamp:Timestamp,TokenAirdropTransaction:TokenAirdropTransaction,TokenAllowance:TokenAllowance,TokenAssociateTransaction:TokenAssociateTransaction,TokenBurnTransaction:TokenBurnTransaction,TokenCancelAirdropTransaction:TokenCancelAirdropTransaction,TokenClaimAirdropTransaction:TokenClaimAirdropTransaction,TokenCreateTransaction:TokenCreateTransaction,TokenDeleteTransaction:TokenDeleteTransaction,TokenDissociateTransaction:TokenDissociateTransaction,TokenFeeScheduleUpdateTransaction:TokenFeeScheduleUpdateTransaction,TokenFreezeTransaction:TokenFreezeTransaction,TokenGrantKycTransaction:TokenGrantKycTransaction,TokenId:TokenId,TokenInfo:TokenInfo,TokenInfoQuery:TokenInfoQuery,TokenKeyValidation:TokenKeyValidation,TokenMintTransaction:TokenMintTransaction,TokenNftAllowance:TokenNftAllowance,TokenNftInfo:TokenNftInfo,TokenNftInfoQuery:TokenNftInfoQuery,TokenPauseTransaction:TokenPauseTransaction,TokenRejectFlow:TokenRejectFlow,TokenRejectTransaction:TokenRejectTransaction,TokenRevokeKycTransaction:TokenRevokeKycTransaction,TokenSupplyType:TokenSupplyType,TokenType:TokenType,TokenUnfreezeTransaction:TokenUnfreezeTransaction,TokenUnpauseTransaction:TokenUnpauseTransaction,TokenUpdateNftsTransaction:TokenUpdateNftsTransaction,TokenUpdateTransaction:TokenUpdateTransaction,TokenWipeTransaction:TokenWipeTransaction,TopicCreateTransaction:TopicCreateTransaction,TopicDeleteTransaction:TopicDeleteTransaction,TopicId:TopicId,TopicInfo:TopicInfo,TopicInfoQuery:TopicInfoQuery,TopicMessage:TopicMessage,TopicMessageChunk:TopicMessageChunk,TopicMessageQuery:TopicMessageQuery,TopicMessageSubmitTransaction:TopicMessageSubmitTransaction,TopicUpdateTransaction:TopicUpdateTransaction,Transaction:Transaction,TransactionFeeSchedule:TransactionFeeSchedule,TransactionId:TransactionId,TransactionReceipt:TransactionReceipt,TransactionReceiptQuery:TransactionReceiptQuery,TransactionRecord:TransactionRecord,TransactionRecordQuery:TransactionRecordQuery,TransactionResponse:TransactionResponse,Transfer:Transfer,TransferTransaction:TransferTransaction,Wallet:Wallet,WebClient:WebClient},Symbol.toStringTag,{value:"Module"}));var HederaChainId,HederaChainId2,HederaSessionEvent,HederaSessionEvent2,HederaJsonRpcMethod,HederaJsonRpcMethod2;HederaChainId2=HederaChainId||(HederaChainId={}),HederaChainId2.Mainnet="hedera:mainnet",HederaChainId2.Testnet="hedera:testnet",HederaChainId2.Previewnet="hedera:previewnet",HederaChainId2.Devnet="hedera:devnet",HederaSessionEvent2=HederaSessionEvent||(HederaSessionEvent={}),HederaSessionEvent2.AccountsChanged="accountsChanged",HederaSessionEvent2.ChainChanged="chainChanged",HederaJsonRpcMethod2=HederaJsonRpcMethod||(HederaJsonRpcMethod={}),HederaJsonRpcMethod2.GetNodeAddresses="hedera_getNodeAddresses",HederaJsonRpcMethod2.ExecuteTransaction="hedera_executeTransaction",HederaJsonRpcMethod2.SignMessage="hedera_signMessage",HederaJsonRpcMethod2.SignAndExecuteQuery="hedera_signAndExecuteQuery",HederaJsonRpcMethod2.SignAndExecuteTransaction="hedera_signAndExecuteTransaction",HederaJsonRpcMethod2.SignTransaction="hedera_signTransaction";var lib={},indexMinimal={},minimal$1={},longbits,hasRequiredLongbits,hasRequiredMinimal;function requireLongbits(){if(hasRequiredLongbits)return longbits;hasRequiredLongbits=1,longbits=t;var e=requireMinimal();function t(e,t){this.lo=e>>>0,this.hi=t>>>0}var r=t.zero=new t(0,0);r.toNumber=function(){return 0},r.zzEncode=r.zzDecode=function(){return this},r.length=function(){return 1};var n=t.zeroHash="\0\0\0\0\0\0\0\0";t.fromNumber=function(e){if(0===e)return r;var n=e<0;n&&(e=-e);var o=e>>>0,i=(e-o)/4294967296>>>0;return n&&(i=~i>>>0,o=~o>>>0,++o>4294967295&&(o=0,++i>4294967295&&(i=0))),new t(o,i)},t.from=function(n){if("number"==typeof n)return t.fromNumber(n);if(e.isString(n)){if(!e.Long)return t.fromNumber(parseInt(n,10));n=e.Long.fromString(n)}return n.low||n.high?new t(n.low>>>0,n.high>>>0):r},t.prototype.toNumber=function(e){if(!e&&this.hi>>>31){var t=1+~this.lo>>>0,r=~this.hi>>>0;return t||(r=r+1>>>0),-(t+4294967296*r)}return this.lo+4294967296*this.hi},t.prototype.toLong=function(t){return e.Long?new e.Long(0|this.lo,0|this.hi,Boolean(t)):{low:0|this.lo,high:0|this.hi,unsigned:Boolean(t)}};var o=String.prototype.charCodeAt;return t.fromHash=function(e){return e===n?r:new t((o.call(e,0)|o.call(e,1)<<8|o.call(e,2)<<16|o.call(e,3)<<24)>>>0,(o.call(e,4)|o.call(e,5)<<8|o.call(e,6)<<16|o.call(e,7)<<24)>>>0)},t.prototype.toHash=function(){return String.fromCharCode(255&this.lo,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,255&this.hi,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},t.prototype.zzEncode=function(){var e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this},t.prototype.zzDecode=function(){var e=-(1&this.lo);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this},t.prototype.length=function(){var e=this.lo,t=(this.lo>>>28|this.hi<<4)>>>0,r=this.hi>>>24;return 0===r?0===t?e<16384?e<128?1:2:e<2097152?3:4:t<16384?t<128?5:6:t<2097152?7:8:r<128?9:10},longbits}function requireMinimal(){return hasRequiredMinimal||(hasRequiredMinimal=1,function(e){var t=e;function r(e,t,r){for(var n=Object.keys(t),o=0;o0)},t.Buffer=function(){try{var e=t.inquire("buffer").Buffer;return e.prototype.utf8Write?e:null}catch(e2){return null}}(),t._Buffer_from=null,t._Buffer_allocUnsafe=null,t.newBuffer=function(e){return"number"==typeof e?t.Buffer?t._Buffer_allocUnsafe(e):new t.Array(e):t.Buffer?t._Buffer_from(e):"undefined"==typeof Uint8Array?e:new Uint8Array(e)},t.Array="undefined"!=typeof Uint8Array?Uint8Array:Array,t.Long=t.global.dcodeIO&&t.global.dcodeIO.Long||t.global.Long||t.inquire("long"),t.key2Re=/^true|false|0|1$/,t.key32Re=/^-?(?:0|[1-9][0-9]*)$/,t.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/,t.longToHash=function(e){return e?t.LongBits.from(e).toHash():t.LongBits.zeroHash},t.longFromHash=function(e,r){var n=t.LongBits.fromHash(e);return t.Long?t.Long.fromBits(n.lo,n.hi,r):n.toNumber(Boolean(r))},t.merge=r,t.lcFirst=function(e){return e.charAt(0).toLowerCase()+e.substring(1)},t.newError=n,t.ProtocolError=n("ProtocolError"),t.oneOfGetter=function(e){for(var t={},r=0;r-1;--r)if(1===t[e[r]]&&void 0!==this[e[r]]&&null!==this[e[r]])return e[r]}},t.oneOfSetter=function(e){return function(t){for(var r=0;r127;)t[r++]=127&e|128,e>>>=7;t[r]=e}function VarintOp(e,t){this.len=e,this.next=void 0,this.val=t}function writeVarint64(e,t,r){for(;e.hi;)t[r++]=127&e.lo|128,e.lo=(e.lo>>>7|e.hi<<25)>>>0,e.hi>>>=7;for(;e.lo>127;)t[r++]=127&e.lo|128,e.lo=e.lo>>>7;t[r++]=e.lo}function writeFixed32(e,t,r){t[r]=255&e,t[r+1]=e>>>8&255,t[r+2]=e>>>16&255,t[r+3]=e>>>24}Writer$1.create=create$1(),Writer$1.alloc=function(e){return new util$4.Array(e)},util$4.Array!==Array&&(Writer$1.alloc=util$4.pool(Writer$1.alloc,util$4.Array.prototype.subarray)),Writer$1.prototype._push=function(e,t,r){return this.tail=this.tail.next=new Op(e,t,r),this.len+=t,this},VarintOp.prototype=Object.create(Op.prototype),VarintOp.prototype.fn=writeVarint32,Writer$1.prototype.uint32=function(e){return this.len+=(this.tail=this.tail.next=new VarintOp((e>>>=0)<128?1:e<16384?2:e<2097152?3:e<268435456?4:5,e)).len,this},Writer$1.prototype.int32=function(e){return e<0?this._push(writeVarint64,10,LongBits$1.fromNumber(e)):this.uint32(e)},Writer$1.prototype.sint32=function(e){return this.uint32((e<<1^e>>31)>>>0)},Writer$1.prototype.uint64=function(e){var t=LongBits$1.from(e);return this._push(writeVarint64,t.length(),t)},Writer$1.prototype.int64=Writer$1.prototype.uint64,Writer$1.prototype.sint64=function(e){var t=LongBits$1.from(e).zzEncode();return this._push(writeVarint64,t.length(),t)},Writer$1.prototype.bool=function(e){return this._push(writeByte,1,e?1:0)},Writer$1.prototype.fixed32=function(e){return this._push(writeFixed32,4,e>>>0)},Writer$1.prototype.sfixed32=Writer$1.prototype.fixed32,Writer$1.prototype.fixed64=function(e){var t=LongBits$1.from(e);return this._push(writeFixed32,4,t.lo)._push(writeFixed32,4,t.hi)},Writer$1.prototype.sfixed64=Writer$1.prototype.fixed64,Writer$1.prototype.float=function(e){return this._push(util$4.float.writeFloatLE,4,e)},Writer$1.prototype.double=function(e){return this._push(util$4.float.writeDoubleLE,8,e)};var writeBytes=util$4.Array.prototype.set?function(e,t,r){t.set(e,r)}:function(e,t,r){for(var n=0;n>>0;if(!t)return this._push(writeByte,1,0);if(util$4.isString(e)){var r=Writer$1.alloc(t=base64$2.length(e));base64$2.decode(e,r,0),e=r}return this.uint32(t)._push(writeBytes,t,e)},Writer$1.prototype.string=function(e){var t=utf8$1.length(e);return t?this.uint32(t)._push(utf8$1.write,t,e):this._push(writeByte,1,0)},Writer$1.prototype.fork=function(){return this.states=new State(this),this.head=this.tail=new Op(noop$2,0,0),this.len=0,this},Writer$1.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new Op(noop$2,0,0),this.len=0),this},Writer$1.prototype.ldelim=function(){var e=this.head,t=this.tail,r=this.len;return this.reset().uint32(r),r&&(this.tail.next=e.next,this.tail=t,this.len+=r),this},Writer$1.prototype.finish=function(){for(var e=this.head.next,t=this.constructor.alloc(this.len),r=0;e;)e.fn(e.val,t,r),r+=e.len,e=e.next;return t},Writer$1._configure=function(e){BufferWriter$1=e,Writer$1.create=create$1(),BufferWriter$1._configure()};var writer_buffer=BufferWriter,Writer=writer;(BufferWriter.prototype=Object.create(Writer.prototype)).constructor=BufferWriter;var util$3=requireMinimal();function BufferWriter(){Writer.call(this)}function writeStringBuffer(e,t,r){e.length<40?util$3.utf8.write(e,t,r):t.utf8Write?t.utf8Write(e,r):t.write(e,r)}BufferWriter._configure=function(){BufferWriter.alloc=util$3._Buffer_allocUnsafe,BufferWriter.writeBytesBuffer=util$3.Buffer&&util$3.Buffer.prototype instanceof Uint8Array&&"set"===util$3.Buffer.prototype.set.name?function(e,t,r){t.set(e,r)}:function(e,t,r){if(e.copy)e.copy(t,r,0,e.length);else for(var n=0;n>>0;return this.uint32(t),t&&this._push(BufferWriter.writeBytesBuffer,t,e),this},BufferWriter.prototype.string=function(e){var t=util$3.Buffer.byteLength(e);return this.uint32(t),t&&this._push(writeStringBuffer,t,e),this},BufferWriter._configure();var reader=Reader$1,util$2=requireMinimal(),BufferReader$1,LongBits=util$2.LongBits,utf8=util$2.utf8;function indexOutOfRange(e,t){return RangeError("index out of range: "+e.pos+" + "+(t||1)+" > "+e.len)}function Reader$1(e){this.buf=e,this.pos=0,this.len=e.length}var create_array="undefined"!=typeof Uint8Array?function(e){if(e instanceof Uint8Array||Array.isArray(e))return new Reader$1(e);throw Error("illegal buffer")}:function(e){if(Array.isArray(e))return new Reader$1(e);throw Error("illegal buffer")},create=function(){return util$2.Buffer?function(e){return(Reader$1.create=function(e){return util$2.Buffer.isBuffer(e)?new BufferReader$1(e):create_array(e)})(e)}:create_array};function readLongVarint(){var e=new LongBits(0,0),t=0;if(!(this.len-this.pos>4)){for(;t<3;++t){if(this.pos>=this.len)throw indexOutOfRange(this);if(e.lo=(e.lo|(127&this.buf[this.pos])<<7*t)>>>0,this.buf[this.pos++]<128)return e}return e.lo=(e.lo|(127&this.buf[this.pos++])<<7*t)>>>0,e}for(;t<4;++t)if(e.lo=(e.lo|(127&this.buf[this.pos])<<7*t)>>>0,this.buf[this.pos++]<128)return e;if(e.lo=(e.lo|(127&this.buf[this.pos])<<28)>>>0,e.hi=(e.hi|(127&this.buf[this.pos])>>4)>>>0,this.buf[this.pos++]<128)return e;if(t=0,this.len-this.pos>4){for(;t<5;++t)if(e.hi=(e.hi|(127&this.buf[this.pos])<<7*t+3)>>>0,this.buf[this.pos++]<128)return e}else for(;t<5;++t){if(this.pos>=this.len)throw indexOutOfRange(this);if(e.hi=(e.hi|(127&this.buf[this.pos])<<7*t+3)>>>0,this.buf[this.pos++]<128)return e}throw Error("invalid varint encoding")}function readFixed32_end(e,t){return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0}function readFixed64(){if(this.pos+8>this.len)throw indexOutOfRange(this,8);return new LongBits(readFixed32_end(this.buf,this.pos+=4),readFixed32_end(this.buf,this.pos+=4))}Reader$1.create=create(),Reader$1.prototype._slice=util$2.Array.prototype.subarray||util$2.Array.prototype.slice,Reader$1.prototype.uint32=function(){var e=4294967295;return function(){if(e=(127&this.buf[this.pos])>>>0,this.buf[this.pos++]<128)return e;if(e=(e|(127&this.buf[this.pos])<<7)>>>0,this.buf[this.pos++]<128)return e;if(e=(e|(127&this.buf[this.pos])<<14)>>>0,this.buf[this.pos++]<128)return e;if(e=(e|(127&this.buf[this.pos])<<21)>>>0,this.buf[this.pos++]<128)return e;if(e=(e|(15&this.buf[this.pos])<<28)>>>0,this.buf[this.pos++]<128)return e;if((this.pos+=5)>this.len)throw this.pos=this.len,indexOutOfRange(this,10);return e}}(),Reader$1.prototype.int32=function(){return 0|this.uint32()},Reader$1.prototype.sint32=function(){var e=this.uint32();return e>>>1^-(1&e)},Reader$1.prototype.bool=function(){return 0!==this.uint32()},Reader$1.prototype.fixed32=function(){if(this.pos+4>this.len)throw indexOutOfRange(this,4);return readFixed32_end(this.buf,this.pos+=4)},Reader$1.prototype.sfixed32=function(){if(this.pos+4>this.len)throw indexOutOfRange(this,4);return 0|readFixed32_end(this.buf,this.pos+=4)},Reader$1.prototype.float=function(){if(this.pos+4>this.len)throw indexOutOfRange(this,4);var e=util$2.float.readFloatLE(this.buf,this.pos);return this.pos+=4,e},Reader$1.prototype.double=function(){if(this.pos+8>this.len)throw indexOutOfRange(this,4);var e=util$2.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,e},Reader$1.prototype.bytes=function(){var e=this.uint32(),t=this.pos,r=this.pos+e;if(r>this.len)throw indexOutOfRange(this,e);if(this.pos+=e,Array.isArray(this.buf))return this.buf.slice(t,r);if(t===r){var n=util$2.Buffer;return n?n.alloc(0):new this.buf.constructor(0)}return this._slice.call(this.buf,t,r)},Reader$1.prototype.string=function(){var e=this.bytes();return utf8.read(e,0,e.length)},Reader$1.prototype.skip=function(e){if("number"==typeof e){if(this.pos+e>this.len)throw indexOutOfRange(this,e);this.pos+=e}else do{if(this.pos>=this.len)throw indexOutOfRange(this)}while(128&this.buf[this.pos++]);return this},Reader$1.prototype.skipType=function(e){switch(e){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;4!=(e=7&this.uint32());)this.skipType(e);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+e+" at offset "+this.pos)}return this},Reader$1._configure=function(e){BufferReader$1=e,Reader$1.create=create(),BufferReader$1._configure();var t=util$2.Long?"toLong":"toNumber";util$2.merge(Reader$1.prototype,{int64:function(){return readLongVarint.call(this)[t](!1)},uint64:function(){return readLongVarint.call(this)[t](!0)},sint64:function(){return readLongVarint.call(this).zzDecode()[t](!1)},fixed64:function(){return readFixed64.call(this)[t](!0)},sfixed64:function(){return readFixed64.call(this)[t](!1)}})};var reader_buffer=BufferReader,Reader=reader;(BufferReader.prototype=Object.create(Reader.prototype)).constructor=BufferReader;var util$1=requireMinimal();function BufferReader(e){Reader.call(this,e)}BufferReader._configure=function(){util$1.Buffer&&(BufferReader.prototype._slice=util$1.Buffer.prototype.slice)},BufferReader.prototype.string=function(){var e=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+e,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+e,this.len))},BufferReader._configure();var rpc={},service=Service,util=requireMinimal();function Service(e,t,r){if("function"!=typeof e)throw TypeError("rpcImpl must be a function");util.EventEmitter.call(this),this.rpcImpl=e,this.requestDelimited=Boolean(t),this.responseDelimited=Boolean(r)}(Service.prototype=Object.create(util.EventEmitter.prototype)).constructor=Service,Service.prototype.rpcCall=function e(t,r,n,o,i){if(!o)throw TypeError("request must be specified");var a=this;if(!i)return util.asPromise(e,a,t,r,n,o);if(a.rpcImpl)try{return a.rpcImpl(t,r[a.requestDelimited?"encodeDelimited":"encode"](o).finish(),(function(e,r){if(e)return a.emit("error",e,t),i(e);if(null!==r){if(!(r instanceof n))try{r=n[a.responseDelimited?"decodeDelimited":"decode"](r)}catch(o){return a.emit("error",o,t),i(o)}return a.emit("data",r,t),i(null,r)}a.end(!0)}))}catch(s){return a.emit("error",s,t),void setTimeout((function(){i(s)}),0)}else setTimeout((function(){i(Error("already ended"))}),0)},Service.prototype.end=function(e){return this.rpcImpl&&(e||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this},function(e){e.Service=service}(rpc);var roots={};!function(e){var t=e;function r(){t.util._configure(),t.Writer._configure(t.BufferWriter),t.Reader._configure(t.BufferReader)}t.build="minimal",t.Writer=writer,t.BufferWriter=writer_buffer,t.Reader=reader,t.BufferReader=reader_buffer,t.util=requireMinimal(),t.rpc=rpc,t.roots=roots,t.configure=r,r()}(indexMinimal);var minimal=indexMinimal,long=Long,wasm=null;try{wasm=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch(e2){}function Long(e,t,r){this.low=0|e,this.high=0|t,this.unsigned=!!r}function isLong(e){return!0===(e&&e.__isLong__)}Long.prototype.__isLong__,Object.defineProperty(Long.prototype,"__isLong__",{value:!0}),Long.isLong=isLong;var INT_CACHE={},UINT_CACHE={};function fromInt(e,t){var r,n,o;return t?(o=0<=(e>>>=0)&&e<256)&&(n=UINT_CACHE[e])?n:(r=fromBits(e,(0|e)<0?-1:0,!0),o&&(UINT_CACHE[e]=r),r):(o=-128<=(e|=0)&&e<128)&&(n=INT_CACHE[e])?n:(r=fromBits(e,e<0?-1:0,!1),o&&(INT_CACHE[e]=r),r)}function fromNumber(e,t){if(isNaN(e))return t?UZERO:ZERO;if(t){if(e<0)return UZERO;if(e>=TWO_PWR_64_DBL)return MAX_UNSIGNED_VALUE}else{if(e<=-TWO_PWR_63_DBL)return MIN_VALUE;if(e+1>=TWO_PWR_63_DBL)return MAX_VALUE}return e<0?fromNumber(-e,t).neg():fromBits(e%TWO_PWR_32_DBL|0,e/TWO_PWR_32_DBL|0,t)}function fromBits(e,t,r){return new Long(e,t,r)}Long.fromInt=fromInt,Long.fromNumber=fromNumber,Long.fromBits=fromBits;var pow_dbl=Math.pow;function fromString$3(e,t,r){if(0===e.length)throw Error("empty string");if("NaN"===e||"Infinity"===e||"+Infinity"===e||"-Infinity"===e)return ZERO;if("number"==typeof t?(r=t,t=!1):t=!!t,(r=r||10)<2||360)throw Error("interior hyphen");if(0===n)return fromString$3(e.substring(1),t,r).neg();for(var o=fromNumber(pow_dbl(r,8)),i=ZERO,a=0;a>>0:this.low},LongPrototype.toNumber=function(){return this.unsigned?(this.high>>>0)*TWO_PWR_32_DBL+(this.low>>>0):this.high*TWO_PWR_32_DBL+(this.low>>>0)},LongPrototype.toString=function(e){if((e=e||10)<2||36>>0).toString(e);if((i=s).isZero())return c+a;for(;c.length<6;)c="0"+c;a=""+c+a}},LongPrototype.getHighBits=function(){return this.high},LongPrototype.getHighBitsUnsigned=function(){return this.high>>>0},LongPrototype.getLowBits=function(){return this.low},LongPrototype.getLowBitsUnsigned=function(){return this.low>>>0},LongPrototype.getNumBitsAbs=function(){if(this.isNegative())return this.eq(MIN_VALUE)?64:this.neg().getNumBitsAbs();for(var e=0!=this.high?this.high:this.low,t=31;t>0&&!(e&1<=0},LongPrototype.isOdd=function(){return!(1&~this.low)},LongPrototype.isEven=function(){return!(1&this.low)},LongPrototype.equals=function(e){return isLong(e)||(e=fromValue(e)),(this.unsigned===e.unsigned||this.high>>>31!=1||e.high>>>31!=1)&&(this.high===e.high&&this.low===e.low)},LongPrototype.eq=LongPrototype.equals,LongPrototype.notEquals=function(e){return!this.eq(e)},LongPrototype.neq=LongPrototype.notEquals,LongPrototype.ne=LongPrototype.notEquals,LongPrototype.lessThan=function(e){return this.comp(e)<0},LongPrototype.lt=LongPrototype.lessThan,LongPrototype.lessThanOrEqual=function(e){return this.comp(e)<=0},LongPrototype.lte=LongPrototype.lessThanOrEqual,LongPrototype.le=LongPrototype.lessThanOrEqual,LongPrototype.greaterThan=function(e){return this.comp(e)>0},LongPrototype.gt=LongPrototype.greaterThan,LongPrototype.greaterThanOrEqual=function(e){return this.comp(e)>=0},LongPrototype.gte=LongPrototype.greaterThanOrEqual,LongPrototype.ge=LongPrototype.greaterThanOrEqual,LongPrototype.compare=function(e){if(isLong(e)||(e=fromValue(e)),this.eq(e))return 0;var t=this.isNegative(),r=e.isNegative();return t&&!r?-1:!t&&r?1:this.unsigned?e.high>>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1:this.sub(e).isNegative()?-1:1},LongPrototype.comp=LongPrototype.compare,LongPrototype.negate=function(){return!this.unsigned&&this.eq(MIN_VALUE)?MIN_VALUE:this.not().add(ONE)},LongPrototype.neg=LongPrototype.negate,LongPrototype.add=function(e){isLong(e)||(e=fromValue(e));var t=this.high>>>16,r=65535&this.high,n=this.low>>>16,o=65535&this.low,i=e.high>>>16,a=65535&e.high,s=e.low>>>16,c=0,u=0,l=0,d=0;return l+=(d+=o+(65535&e.low))>>>16,u+=(l+=n+s)>>>16,c+=(u+=r+a)>>>16,c+=t+i,fromBits((l&=65535)<<16|(d&=65535),(c&=65535)<<16|(u&=65535),this.unsigned)},LongPrototype.subtract=function(e){return isLong(e)||(e=fromValue(e)),this.add(e.neg())},LongPrototype.sub=LongPrototype.subtract,LongPrototype.multiply=function(e){if(this.isZero())return ZERO;if(isLong(e)||(e=fromValue(e)),wasm)return fromBits(wasm.mul(this.low,this.high,e.low,e.high),wasm.get_high(),this.unsigned);if(e.isZero())return ZERO;if(this.eq(MIN_VALUE))return e.isOdd()?MIN_VALUE:ZERO;if(e.eq(MIN_VALUE))return this.isOdd()?MIN_VALUE:ZERO;if(this.isNegative())return e.isNegative()?this.neg().mul(e.neg()):this.neg().mul(e).neg();if(e.isNegative())return this.mul(e.neg()).neg();if(this.lt(TWO_PWR_24)&&e.lt(TWO_PWR_24))return fromNumber(this.toNumber()*e.toNumber(),this.unsigned);var t=this.high>>>16,r=65535&this.high,n=this.low>>>16,o=65535&this.low,i=e.high>>>16,a=65535&e.high,s=e.low>>>16,c=65535&e.low,u=0,l=0,d=0,f=0;return d+=(f+=o*c)>>>16,l+=(d+=n*c)>>>16,d&=65535,l+=(d+=o*s)>>>16,u+=(l+=r*c)>>>16,l&=65535,u+=(l+=n*s)>>>16,l&=65535,u+=(l+=o*a)>>>16,u+=t*c+r*s+n*a+o*i,fromBits((d&=65535)<<16|(f&=65535),(u&=65535)<<16|(l&=65535),this.unsigned)},LongPrototype.mul=LongPrototype.multiply,LongPrototype.divide=function(e){if(isLong(e)||(e=fromValue(e)),e.isZero())throw Error("division by zero");var t,r,n;if(wasm)return this.unsigned||-2147483648!==this.high||-1!==e.low||-1!==e.high?fromBits((this.unsigned?wasm.div_u:wasm.div_s)(this.low,this.high,e.low,e.high),wasm.get_high(),this.unsigned):this;if(this.isZero())return this.unsigned?UZERO:ZERO;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return UZERO;if(e.gt(this.shru(1)))return UONE;n=UZERO}else{if(this.eq(MIN_VALUE))return e.eq(ONE)||e.eq(NEG_ONE)?MIN_VALUE:e.eq(MIN_VALUE)?ONE:(t=this.shr(1).div(e).shl(1)).eq(ZERO)?e.isNegative()?ONE:NEG_ONE:(r=this.sub(e.mul(t)),n=t.add(r.div(e)));if(e.eq(MIN_VALUE))return this.unsigned?UZERO:ZERO;if(this.isNegative())return e.isNegative()?this.neg().div(e.neg()):this.neg().div(e).neg();if(e.isNegative())return this.div(e.neg()).neg();n=ZERO}for(r=this;r.gte(e);){t=Math.max(1,Math.floor(r.toNumber()/e.toNumber()));for(var o=Math.ceil(Math.log(t)/Math.LN2),i=o<=48?1:pow_dbl(2,o-48),a=fromNumber(t),s=a.mul(e);s.isNegative()||s.gt(r);)s=(a=fromNumber(t-=i,this.unsigned)).mul(e);a.isZero()&&(a=ONE),n=n.add(a),r=r.sub(s)}return n},LongPrototype.div=LongPrototype.divide,LongPrototype.modulo=function(e){return isLong(e)||(e=fromValue(e)),wasm?fromBits((this.unsigned?wasm.rem_u:wasm.rem_s)(this.low,this.high,e.low,e.high),wasm.get_high(),this.unsigned):this.sub(this.div(e).mul(e))},LongPrototype.mod=LongPrototype.modulo,LongPrototype.rem=LongPrototype.modulo,LongPrototype.not=function(){return fromBits(~this.low,~this.high,this.unsigned)},LongPrototype.and=function(e){return isLong(e)||(e=fromValue(e)),fromBits(this.low&e.low,this.high&e.high,this.unsigned)},LongPrototype.or=function(e){return isLong(e)||(e=fromValue(e)),fromBits(this.low|e.low,this.high|e.high,this.unsigned)},LongPrototype.xor=function(e){return isLong(e)||(e=fromValue(e)),fromBits(this.low^e.low,this.high^e.high,this.unsigned)},LongPrototype.shiftLeft=function(e){return isLong(e)&&(e=e.toInt()),0==(e&=63)?this:e<32?fromBits(this.low<>>32-e,this.unsigned):fromBits(0,this.low<>>e|this.high<<32-e,this.high>>e,this.unsigned):fromBits(this.high>>e-32,this.high>=0?0:-1,this.unsigned)},LongPrototype.shr=LongPrototype.shiftRight,LongPrototype.shiftRightUnsigned=function(e){if(isLong(e)&&(e=e.toInt()),0===(e&=63))return this;var t=this.high;return e<32?fromBits(this.low>>>e|t<<32-e,t>>>e,this.unsigned):fromBits(32===e?t:t>>>e-32,0,this.unsigned)},LongPrototype.shru=LongPrototype.shiftRightUnsigned,LongPrototype.shr_u=LongPrototype.shiftRightUnsigned,LongPrototype.toSigned=function(){return this.unsigned?fromBits(this.low,this.high,!1):this},LongPrototype.toUnsigned=function(){return this.unsigned?this:fromBits(this.low,this.high,!0)},LongPrototype.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()},LongPrototype.toBytesLE=function(){var e=this.high,t=this.low;return[255&t,t>>>8&255,t>>>16&255,t>>>24,255&e,e>>>8&255,e>>>16&255,e>>>24]},LongPrototype.toBytesBE=function(){var e=this.high,t=this.low;return[e>>>24,e>>>16&255,e>>>8&255,255&e,t>>>24,t>>>16&255,t>>>8&255,255&t]},Long.fromBytes=function(e,t,r){return r?Long.fromBytesLE(e,t):Long.fromBytesBE(e,t)},Long.fromBytesLE=function(e,t){return new Long(e[0]|e[1]<<8|e[2]<<16|e[3]<<24,e[4]|e[5]<<8|e[6]<<16|e[7]<<24,t)},Long.fromBytesBE=function(e,t){return new Long(e[4]<<24|e[5]<<16|e[6]<<8|e[7],e[0]<<24|e[1]<<16|e[2]<<8|e[3],t)};var proto={};function freezeTransaction(e){e.isFrozen()||e.freeze()}function setDefaultNodeAccountIds(e){const t=!e.nodeAccountIds||0===e.nodeAccountIds.length;!e.isFrozen()&&t&&e.setNodeAccountIds([new AccountId(3),new AccountId(4),new AccountId(5)])}function transactionToBase64String(e){setDefaultNodeAccountIds(e),freezeTransaction(e);const t=e.toBytes();return Buffer$1$1.from(t).toString("base64")}function transactionToTransactionBody(e,t){return e._makeTransactionBody(t)}function transactionBodyToBase64String(e){return Uint8ArrayToBase64String(lib.proto.TransactionBody.encode(e).finish())}function base64StringToSignatureMap(e){const t=Buffer$1$1.from(e,"base64");return lib.proto.SignatureMap.decode(t)}function Uint8ArrayToBase64String(e){return Buffer$1$1.from(e).toString("base64")}function Uint8ArrayToString(e){return Buffer$1$1.from(e).toString("utf-8")}function base64StringToUint8Array(e){const t=Buffer$1$1.from(e,"base64");return new Uint8Array(t)}function queryToBase64String(e){const t=e.toBytes();return Buffer$1$1.from(t).toString("base64")}function prefixMessageToSign(e){return"Hedera Signed Message:\n"+e.length+e}function verifyMessageSignature(e,t,r){const n=base64StringToSignatureMap(t),o=n.sigPair[0].ed25519||n.sigPair[0].ECDSASecp256k1;if(!o)throw new Error("Signature not found in signature map");return r.verify(Buffer$1$1.from(prefixMessageToSign(e)),o)}!function(e){var t=function(e,t){if(e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=r(t);if(n&&n.has(e))return n.get(e);var o={__proto__:null},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!=a&&Object.prototype.hasOwnProperty.call(e,a)){var s=i?Object.getOwnPropertyDescriptor(e,a):null;s&&(s.get||s.set)?Object.defineProperty(o,a,s):o[a]=e[a]}return o.default=e,n&&n.set(e,o),o}(minimal);function r(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(r=function(e){return e?n:t})(e)}Object.defineProperty(e,"__esModule",{value:!0}),e.proto=e.google=e.default=e.com=void 0;const n=t.Reader,o=t.Writer,i=t.util,a=t.roots.hashgraph||(t.roots.hashgraph={});e.default=a;const s=a.com={hedera:{mirror:{api:{proto:{ConsensusTopicQuery:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.topicID=a.proto.TopicID.decode(e,e.uint32());break;case 2:i.consensusStartTime=a.proto.Timestamp.decode(e,e.uint32());break;case 3:i.consensusEndTime=a.proto.Timestamp.decode(e,e.uint32());break;case 4:i.limit=e.uint64();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.mirror.api.proto.ConsensusTopicQuery"},e}(),ConsensusTopicResponse:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.consensusTimestamp=a.proto.Timestamp.decode(e,e.uint32());break;case 2:i.message=e.bytes();break;case 3:i.runningHash=e.bytes();break;case 4:i.sequenceNumber=e.uint64();break;case 5:i.runningHashVersion=e.uint64();break;case 6:i.chunkInfo=a.proto.ConsensusMessageChunkInfo.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.mirror.api.proto.ConsensusTopicResponse"},e}(),ConsensusService:function(){function e(e,r,n){t.rpc.Service.call(this,e,r,n)}return(e.prototype=Object.create(t.rpc.Service.prototype)).constructor=e,e.create=function(e,t,r){return new this(e,t,r)},Object.defineProperty(e.prototype.subscribeTopic=function e(t,r){return this.rpcCall(e,a.com.hedera.mirror.api.proto.ConsensusTopicQuery,a.com.hedera.mirror.api.proto.ConsensusTopicResponse,t,r)},"name",{value:"subscribeTopic"}),e}(),AddressBookQuery:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.fileId=a.proto.FileID.decode(e,e.uint32());break;case 2:i.limit=e.int32();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/com.hedera.mirror.api.proto.AddressBookQuery"},e}(),NetworkService:function(){function e(e,r,n){t.rpc.Service.call(this,e,r,n)}return(e.prototype=Object.create(t.rpc.Service.prototype)).constructor=e,e.create=function(e,t,r){return new this(e,t,r)},Object.defineProperty(e.prototype.getNodes=function e(t,r){return this.rpcCall(e,a.com.hedera.mirror.api.proto.AddressBookQuery,a.proto.NodeAddress,t,r)},"name",{value:"getNodes"}),e}()}}}}};e.com=s;const c=a.proto={TransactionList:function(){function e(e){if(this.transactionList=[],e)for(var t=Object.keys(e),r=0;r>>3?(i.transactionList&&i.transactionList.length||(i.transactionList=[]),i.transactionList.push(a.proto.Transaction.decode(e,e.uint32()))):e.skipType(7&r);return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TransactionList"},e}(),AddressBookService:function(){function e(e,r,n){t.rpc.Service.call(this,e,r,n)}return(e.prototype=Object.create(t.rpc.Service.prototype)).constructor=e,e.create=function(e,t,r){return new this(e,t,r)},Object.defineProperty(e.prototype.createNode=function e(t,r){return this.rpcCall(e,a.proto.Transaction,a.proto.TransactionResponse,t,r)},"name",{value:"createNode"}),Object.defineProperty(e.prototype.deleteNode=function e(t,r){return this.rpcCall(e,a.proto.Transaction,a.proto.TransactionResponse,t,r)},"name",{value:"deleteNode"}),Object.defineProperty(e.prototype.updateNode=function e(t,r){return this.rpcCall(e,a.proto.Transaction,a.proto.TransactionResponse,t,r)},"name",{value:"updateNode"}),Object.defineProperty(e.prototype.getNodeInfo=function e(t,r){return this.rpcCall(e,a.proto.Query,a.proto.Response,t,r)},"name",{value:"getNodeInfo"}),e}(),Query:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.getByKey=a.proto.GetByKeyQuery.decode(e,e.uint32());break;case 2:i.getBySolidityID=a.proto.GetBySolidityIDQuery.decode(e,e.uint32());break;case 3:i.contractCallLocal=a.proto.ContractCallLocalQuery.decode(e,e.uint32());break;case 4:i.contractGetInfo=a.proto.ContractGetInfoQuery.decode(e,e.uint32());break;case 5:i.contractGetBytecode=a.proto.ContractGetBytecodeQuery.decode(e,e.uint32());break;case 6:i.ContractGetRecords=a.proto.ContractGetRecordsQuery.decode(e,e.uint32());break;case 7:i.cryptogetAccountBalance=a.proto.CryptoGetAccountBalanceQuery.decode(e,e.uint32());break;case 8:i.cryptoGetAccountRecords=a.proto.CryptoGetAccountRecordsQuery.decode(e,e.uint32());break;case 9:i.cryptoGetInfo=a.proto.CryptoGetInfoQuery.decode(e,e.uint32());break;case 10:i.cryptoGetLiveHash=a.proto.CryptoGetLiveHashQuery.decode(e,e.uint32());break;case 11:i.cryptoGetProxyStakers=a.proto.CryptoGetStakersQuery.decode(e,e.uint32());break;case 12:i.fileGetContents=a.proto.FileGetContentsQuery.decode(e,e.uint32());break;case 13:i.fileGetInfo=a.proto.FileGetInfoQuery.decode(e,e.uint32());break;case 14:i.transactionGetReceipt=a.proto.TransactionGetReceiptQuery.decode(e,e.uint32());break;case 15:i.transactionGetRecord=a.proto.TransactionGetRecordQuery.decode(e,e.uint32());break;case 16:i.transactionGetFastRecord=a.proto.TransactionGetFastRecordQuery.decode(e,e.uint32());break;case 50:i.consensusGetTopicInfo=a.proto.ConsensusGetTopicInfoQuery.decode(e,e.uint32());break;case 51:i.networkGetVersionInfo=a.proto.NetworkGetVersionInfoQuery.decode(e,e.uint32());break;case 52:i.tokenGetInfo=a.proto.TokenGetInfoQuery.decode(e,e.uint32());break;case 53:i.scheduleGetInfo=a.proto.ScheduleGetInfoQuery.decode(e,e.uint32());break;case 54:i.tokenGetAccountNftInfos=a.proto.TokenGetAccountNftInfosQuery.decode(e,e.uint32());break;case 55:i.tokenGetNftInfo=a.proto.TokenGetNftInfoQuery.decode(e,e.uint32());break;case 56:i.tokenGetNftInfos=a.proto.TokenGetNftInfosQuery.decode(e,e.uint32());break;case 57:i.networkGetExecutionTime=a.proto.NetworkGetExecutionTimeQuery.decode(e,e.uint32());break;case 58:i.accountDetails=a.proto.GetAccountDetailsQuery.decode(e,e.uint32());break;case 59:i.nodeGetInfo=a.proto.NodeGetInfoQuery.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.Query"},e}(),GetByKeyQuery:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.header=a.proto.QueryHeader.decode(e,e.uint32());break;case 2:i.key=a.proto.Key.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.GetByKeyQuery"},e}(),EntityID:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.accountID=a.proto.AccountID.decode(e,e.uint32());break;case 2:i.liveHash=a.proto.LiveHash.decode(e,e.uint32());break;case 3:i.fileID=a.proto.FileID.decode(e,e.uint32());break;case 4:i.contractID=a.proto.ContractID.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.EntityID"},e}(),GetByKeyResponse:function(){function e(e){if(this.entities=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.header=a.proto.ResponseHeader.decode(e,e.uint32());break;case 2:i.entities&&i.entities.length||(i.entities=[]),i.entities.push(a.proto.EntityID.decode(e,e.uint32()));break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.GetByKeyResponse"},e}(),ShardID:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3?i.shardNum=e.int64():e.skipType(7&r);return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ShardID"},e}(),RealmID:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.shardNum=e.int64();break;case 2:i.realmNum=e.int64();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.RealmID"},e}(),AccountID:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.shardNum=e.int64();break;case 2:i.realmNum=e.int64();break;case 3:i.accountNum=e.int64();break;case 4:i.alias=e.bytes();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.AccountID"},e}(),NftID:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.token_ID=a.proto.TokenID.decode(e,e.uint32());break;case 2:i.serialNumber=e.int64();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.NftID"},e}(),FileID:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.shardNum=e.int64();break;case 2:i.realmNum=e.int64();break;case 3:i.fileNum=e.int64();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FileID"},e}(),ContractID:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.shardNum=e.int64();break;case 2:i.realmNum=e.int64();break;case 3:i.contractNum=e.int64();break;case 4:i.evmAddress=e.bytes();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractID"},e}(),TransactionID:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.transactionValidStart=a.proto.Timestamp.decode(e,e.uint32());break;case 2:i.accountID=a.proto.AccountID.decode(e,e.uint32());break;case 3:i.scheduled=e.bool();break;case 4:i.nonce=e.int32();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TransactionID"},e}(),AccountAmount:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.accountID=a.proto.AccountID.decode(e,e.uint32());break;case 2:i.amount=e.sint64();break;case 3:i.isApproval=e.bool();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.AccountAmount"},e}(),TransferList:function(){function e(e){if(this.accountAmounts=[],e)for(var t=Object.keys(e),r=0;r>>3?(i.accountAmounts&&i.accountAmounts.length||(i.accountAmounts=[]),i.accountAmounts.push(a.proto.AccountAmount.decode(e,e.uint32()))):e.skipType(7&r);return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TransferList"},e}(),NftTransfer:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.senderAccountID=a.proto.AccountID.decode(e,e.uint32());break;case 2:i.receiverAccountID=a.proto.AccountID.decode(e,e.uint32());break;case 3:i.serialNumber=e.int64();break;case 4:i.isApproval=e.bool();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.NftTransfer"},e}(),TokenTransferList:function(){function e(e){if(this.transfers=[],this.nftTransfers=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.token=a.proto.TokenID.decode(e,e.uint32());break;case 2:i.transfers&&i.transfers.length||(i.transfers=[]),i.transfers.push(a.proto.AccountAmount.decode(e,e.uint32()));break;case 3:i.nftTransfers&&i.nftTransfers.length||(i.nftTransfers=[]),i.nftTransfers.push(a.proto.NftTransfer.decode(e,e.uint32()));break;case 4:i.expectedDecimals=a.google.protobuf.UInt32Value.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenTransferList"},e}(),Fraction:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.numerator=e.int64();break;case 2:i.denominator=e.int64();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.Fraction"},e}(),TopicID:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.shardNum=e.int64();break;case 2:i.realmNum=e.int64();break;case 3:i.topicNum=e.int64();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TopicID"},e}(),TokenID:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.shardNum=e.int64();break;case 2:i.realmNum=e.int64();break;case 3:i.tokenNum=e.int64();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenID"},e}(),ScheduleID:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.shardNum=e.int64();break;case 2:i.realmNum=e.int64();break;case 3:i.scheduleNum=e.int64();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ScheduleID"},e}(),TokenType:function(){const e={},t=Object.create(e);return t[e[0]="FUNGIBLE_COMMON"]=0,t[e[1]="NON_FUNGIBLE_UNIQUE"]=1,t}(),SubType:function(){const e={},t=Object.create(e);return t[e[0]="DEFAULT"]=0,t[e[1]="TOKEN_FUNGIBLE_COMMON"]=1,t[e[2]="TOKEN_NON_FUNGIBLE_UNIQUE"]=2,t[e[3]="TOKEN_FUNGIBLE_COMMON_WITH_CUSTOM_FEES"]=3,t[e[4]="TOKEN_NON_FUNGIBLE_UNIQUE_WITH_CUSTOM_FEES"]=4,t[e[5]="SCHEDULE_CREATE_CONTRACT_CALL"]=5,t}(),TokenSupplyType:function(){const e={},t=Object.create(e);return t[e[0]="INFINITE"]=0,t[e[1]="FINITE"]=1,t}(),TokenKeyValidation:function(){const e={},t=Object.create(e);return t[e[0]="FULL_VALIDATION"]=0,t[e[1]="NO_VALIDATION"]=1,t}(),TokenFreezeStatus:function(){const e={},t=Object.create(e);return t[e[0]="FreezeNotApplicable"]=0,t[e[1]="Frozen"]=1,t[e[2]="Unfrozen"]=2,t}(),TokenKycStatus:function(){const e={},t=Object.create(e);return t[e[0]="KycNotApplicable"]=0,t[e[1]="Granted"]=1,t[e[2]="Revoked"]=2,t}(),TokenPauseStatus:function(){const e={},t=Object.create(e);return t[e[0]="PauseNotApplicable"]=0,t[e[1]="Paused"]=1,t[e[2]="Unpaused"]=2,t}(),Key:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.contractID=a.proto.ContractID.decode(e,e.uint32());break;case 2:i.ed25519=e.bytes();break;case 3:i.RSA_3072=e.bytes();break;case 4:i.ECDSA_384=e.bytes();break;case 5:i.thresholdKey=a.proto.ThresholdKey.decode(e,e.uint32());break;case 6:i.keyList=a.proto.KeyList.decode(e,e.uint32());break;case 7:i.ECDSASecp256k1=e.bytes();break;case 8:i.delegatableContractId=a.proto.ContractID.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.Key"},e}(),ThresholdKey:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.threshold=e.uint32();break;case 2:i.keys=a.proto.KeyList.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ThresholdKey"},e}(),KeyList:function(){function e(e){if(this.keys=[],e)for(var t=Object.keys(e),r=0;r>>3?(i.keys&&i.keys.length||(i.keys=[]),i.keys.push(a.proto.Key.decode(e,e.uint32()))):e.skipType(7&r);return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.KeyList"},e}(),Signature:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.contract=e.bytes();break;case 2:i.ed25519=e.bytes();break;case 3:i.RSA_3072=e.bytes();break;case 4:i.ECDSA_384=e.bytes();break;case 5:i.thresholdSignature=a.proto.ThresholdSignature.decode(e,e.uint32());break;case 6:i.signatureList=a.proto.SignatureList.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.Signature"},e}(),ThresholdSignature:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3?i.sigs=a.proto.SignatureList.decode(e,e.uint32()):e.skipType(7&r);return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ThresholdSignature"},e}(),SignatureList:function(){function e(e){if(this.sigs=[],e)for(var t=Object.keys(e),r=0;r>>3?(i.sigs&&i.sigs.length||(i.sigs=[]),i.sigs.push(a.proto.Signature.decode(e,e.uint32()))):e.skipType(7&r);return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.SignatureList"},e}(),SignaturePair:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.pubKeyPrefix=e.bytes();break;case 2:i.contract=e.bytes();break;case 3:i.ed25519=e.bytes();break;case 4:i.RSA_3072=e.bytes();break;case 5:i.ECDSA_384=e.bytes();break;case 6:i.ECDSASecp256k1=e.bytes();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.SignaturePair"},e}(),SignatureMap:function(){function e(e){if(this.sigPair=[],e)for(var t=Object.keys(e),r=0;r>>3?(i.sigPair&&i.sigPair.length||(i.sigPair=[]),i.sigPair.push(a.proto.SignaturePair.decode(e,e.uint32()))):e.skipType(7&r);return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.SignatureMap"},e}(),HederaFunctionality:function(){const e={},t=Object.create(e);return t[e[0]="NONE"]=0,t[e[1]="CryptoTransfer"]=1,t[e[2]="CryptoUpdate"]=2,t[e[3]="CryptoDelete"]=3,t[e[4]="CryptoAddLiveHash"]=4,t[e[5]="CryptoDeleteLiveHash"]=5,t[e[6]="ContractCall"]=6,t[e[7]="ContractCreate"]=7,t[e[8]="ContractUpdate"]=8,t[e[9]="FileCreate"]=9,t[e[10]="FileAppend"]=10,t[e[11]="FileUpdate"]=11,t[e[12]="FileDelete"]=12,t[e[13]="CryptoGetAccountBalance"]=13,t[e[14]="CryptoGetAccountRecords"]=14,t[e[15]="CryptoGetInfo"]=15,t[e[16]="ContractCallLocal"]=16,t[e[17]="ContractGetInfo"]=17,t[e[18]="ContractGetBytecode"]=18,t[e[19]="GetBySolidityID"]=19,t[e[20]="GetByKey"]=20,t[e[21]="CryptoGetLiveHash"]=21,t[e[22]="CryptoGetStakers"]=22,t[e[23]="FileGetContents"]=23,t[e[24]="FileGetInfo"]=24,t[e[25]="TransactionGetRecord"]=25,t[e[26]="ContractGetRecords"]=26,t[e[27]="CryptoCreate"]=27,t[e[28]="SystemDelete"]=28,t[e[29]="SystemUndelete"]=29,t[e[30]="ContractDelete"]=30,t[e[31]="Freeze"]=31,t[e[32]="CreateTransactionRecord"]=32,t[e[33]="CryptoAccountAutoRenew"]=33,t[e[34]="ContractAutoRenew"]=34,t[e[35]="GetVersionInfo"]=35,t[e[36]="TransactionGetReceipt"]=36,t[e[50]="ConsensusCreateTopic"]=50,t[e[51]="ConsensusUpdateTopic"]=51,t[e[52]="ConsensusDeleteTopic"]=52,t[e[53]="ConsensusGetTopicInfo"]=53,t[e[54]="ConsensusSubmitMessage"]=54,t[e[55]="UncheckedSubmit"]=55,t[e[56]="TokenCreate"]=56,t[e[58]="TokenGetInfo"]=58,t[e[59]="TokenFreezeAccount"]=59,t[e[60]="TokenUnfreezeAccount"]=60,t[e[61]="TokenGrantKycToAccount"]=61,t[e[62]="TokenRevokeKycFromAccount"]=62,t[e[63]="TokenDelete"]=63,t[e[64]="TokenUpdate"]=64,t[e[65]="TokenMint"]=65,t[e[66]="TokenBurn"]=66,t[e[67]="TokenAccountWipe"]=67,t[e[68]="TokenAssociateToAccount"]=68,t[e[69]="TokenDissociateFromAccount"]=69,t[e[70]="ScheduleCreate"]=70,t[e[71]="ScheduleDelete"]=71,t[e[72]="ScheduleSign"]=72,t[e[73]="ScheduleGetInfo"]=73,t[e[74]="TokenGetAccountNftInfos"]=74,t[e[75]="TokenGetNftInfo"]=75,t[e[76]="TokenGetNftInfos"]=76,t[e[77]="TokenFeeScheduleUpdate"]=77,t[e[78]="NetworkGetExecutionTime"]=78,t[e[79]="TokenPause"]=79,t[e[80]="TokenUnpause"]=80,t[e[81]="CryptoApproveAllowance"]=81,t[e[82]="CryptoDeleteAllowance"]=82,t[e[83]="GetAccountDetails"]=83,t[e[84]="EthereumTransaction"]=84,t[e[85]="NodeStakeUpdate"]=85,t[e[86]="UtilPrng"]=86,t[e[87]="TransactionGetFastRecord"]=87,t[e[88]="TokenUpdateNfts"]=88,t[e[89]="NodeCreate"]=89,t[e[90]="NodeUpdate"]=90,t[e[91]="NodeDelete"]=91,t[e[92]="NodeGetInfo"]=92,t}(),FeeComponents:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.min=e.int64();break;case 2:i.max=e.int64();break;case 3:i.constant=e.int64();break;case 4:i.bpt=e.int64();break;case 5:i.vpt=e.int64();break;case 6:i.rbh=e.int64();break;case 7:i.sbh=e.int64();break;case 8:i.gas=e.int64();break;case 9:i.tv=e.int64();break;case 10:i.bpr=e.int64();break;case 11:i.sbpr=e.int64();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FeeComponents"},e}(),TransactionFeeSchedule:function(){function e(e){if(this.fees=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.hederaFunctionality=e.int32();break;case 2:i.feeData=a.proto.FeeData.decode(e,e.uint32());break;case 3:i.fees&&i.fees.length||(i.fees=[]),i.fees.push(a.proto.FeeData.decode(e,e.uint32()));break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TransactionFeeSchedule"},e}(),FeeData:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.nodedata=a.proto.FeeComponents.decode(e,e.uint32());break;case 2:i.networkdata=a.proto.FeeComponents.decode(e,e.uint32());break;case 3:i.servicedata=a.proto.FeeComponents.decode(e,e.uint32());break;case 4:i.subType=e.int32();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FeeData"},e}(),FeeSchedule:function(){function e(e){if(this.transactionFeeSchedule=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.transactionFeeSchedule&&i.transactionFeeSchedule.length||(i.transactionFeeSchedule=[]),i.transactionFeeSchedule.push(a.proto.TransactionFeeSchedule.decode(e,e.uint32()));break;case 2:i.expiryTime=a.proto.TimestampSeconds.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FeeSchedule"},e}(),CurrentAndNextFeeSchedule:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.currentFeeSchedule=a.proto.FeeSchedule.decode(e,e.uint32());break;case 2:i.nextFeeSchedule=a.proto.FeeSchedule.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CurrentAndNextFeeSchedule"},e}(),ServiceEndpoint:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.ipAddressV4=e.bytes();break;case 2:i.port=e.int32();break;case 3:i.domainName=e.string();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ServiceEndpoint"},e}(),NodeAddress:function(){function e(e){if(this.serviceEndpoint=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.ipAddress=e.bytes();break;case 2:i.portno=e.int32();break;case 3:i.memo=e.bytes();break;case 4:i.RSA_PubKey=e.string();break;case 5:i.nodeId=e.int64();break;case 6:i.nodeAccountId=a.proto.AccountID.decode(e,e.uint32());break;case 7:i.nodeCertHash=e.bytes();break;case 8:i.serviceEndpoint&&i.serviceEndpoint.length||(i.serviceEndpoint=[]),i.serviceEndpoint.push(a.proto.ServiceEndpoint.decode(e,e.uint32()));break;case 9:i.description=e.string();break;case 10:i.stake=e.int64();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.NodeAddress"},e}(),NodeAddressBook:function(){function e(e){if(this.nodeAddress=[],e)for(var t=Object.keys(e),r=0;r>>3?(i.nodeAddress&&i.nodeAddress.length||(i.nodeAddress=[]),i.nodeAddress.push(a.proto.NodeAddress.decode(e,e.uint32()))):e.skipType(7&r);return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.NodeAddressBook"},e}(),SemanticVersion:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.major=e.int32();break;case 2:i.minor=e.int32();break;case 3:i.patch=e.int32();break;case 4:i.pre=e.string();break;case 5:i.build=e.string();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.SemanticVersion"},e}(),Setting:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.name=e.string();break;case 2:i.value=e.string();break;case 3:i.data=e.bytes();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.Setting"},e}(),ServicesConfigurationList:function(){function e(e){if(this.nameValue=[],e)for(var t=Object.keys(e),r=0;r>>3?(i.nameValue&&i.nameValue.length||(i.nameValue=[]),i.nameValue.push(a.proto.Setting.decode(e,e.uint32()))):e.skipType(7&r);return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ServicesConfigurationList"},e}(),TokenRelationship:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.tokenId=a.proto.TokenID.decode(e,e.uint32());break;case 2:i.symbol=e.string();break;case 3:i.balance=e.uint64();break;case 4:i.kycStatus=e.int32();break;case 5:i.freezeStatus=e.int32();break;case 6:i.decimals=e.uint32();break;case 7:i.automaticAssociation=e.bool();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenRelationship"},e}(),TokenBalance:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.tokenId=a.proto.TokenID.decode(e,e.uint32());break;case 2:i.balance=e.uint64();break;case 3:i.decimals=e.uint32();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenBalance"},e}(),TokenBalances:function(){function e(e){if(this.tokenBalances=[],e)for(var t=Object.keys(e),r=0;r>>3?(i.tokenBalances&&i.tokenBalances.length||(i.tokenBalances=[]),i.tokenBalances.push(a.proto.TokenBalance.decode(e,e.uint32()))):e.skipType(7&r);return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenBalances"},e}(),TokenAssociation:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.tokenId=a.proto.TokenID.decode(e,e.uint32());break;case 2:i.accountId=a.proto.AccountID.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenAssociation"},e}(),StakingInfo:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.declineReward=e.bool();break;case 2:i.stakePeriodStart=a.proto.Timestamp.decode(e,e.uint32());break;case 3:i.pendingReward=e.int64();break;case 4:i.stakedToMe=e.int64();break;case 5:i.stakedAccountId=a.proto.AccountID.decode(e,e.uint32());break;case 6:i.stakedNodeId=e.int64();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.StakingInfo"},e}(),Timestamp:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.seconds=e.int64();break;case 2:i.nanos=e.int32();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.Timestamp"},e}(),TimestampSeconds:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3?i.seconds=e.int64():e.skipType(7&r);return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TimestampSeconds"},e}(),ResponseType:function(){const e={},t=Object.create(e);return t[e[0]="ANSWER_ONLY"]=0,t[e[1]="ANSWER_STATE_PROOF"]=1,t[e[2]="COST_ANSWER"]=2,t[e[3]="COST_ANSWER_STATE_PROOF"]=3,t}(),QueryHeader:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.payment=a.proto.Transaction.decode(e,e.uint32());break;case 2:i.responseType=e.int32();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.QueryHeader"},e}(),Transaction:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.body=a.proto.TransactionBody.decode(e,e.uint32());break;case 2:i.sigs=a.proto.SignatureList.decode(e,e.uint32());break;case 3:i.sigMap=a.proto.SignatureMap.decode(e,e.uint32());break;case 4:i.bodyBytes=e.bytes();break;case 5:i.signedTransactionBytes=e.bytes();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.Transaction"},e}(),TransactionBody:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.transactionID=a.proto.TransactionID.decode(e,e.uint32());break;case 2:i.nodeAccountID=a.proto.AccountID.decode(e,e.uint32());break;case 3:i.transactionFee=e.uint64();break;case 4:i.transactionValidDuration=a.proto.Duration.decode(e,e.uint32());break;case 5:i.generateRecord=e.bool();break;case 6:i.memo=e.string();break;case 7:i.contractCall=a.proto.ContractCallTransactionBody.decode(e,e.uint32());break;case 8:i.contractCreateInstance=a.proto.ContractCreateTransactionBody.decode(e,e.uint32());break;case 9:i.contractUpdateInstance=a.proto.ContractUpdateTransactionBody.decode(e,e.uint32());break;case 22:i.contractDeleteInstance=a.proto.ContractDeleteTransactionBody.decode(e,e.uint32());break;case 50:i.ethereumTransaction=a.proto.EthereumTransactionBody.decode(e,e.uint32());break;case 10:i.cryptoAddLiveHash=a.proto.CryptoAddLiveHashTransactionBody.decode(e,e.uint32());break;case 48:i.cryptoApproveAllowance=a.proto.CryptoApproveAllowanceTransactionBody.decode(e,e.uint32());break;case 49:i.cryptoDeleteAllowance=a.proto.CryptoDeleteAllowanceTransactionBody.decode(e,e.uint32());break;case 11:i.cryptoCreateAccount=a.proto.CryptoCreateTransactionBody.decode(e,e.uint32());break;case 12:i.cryptoDelete=a.proto.CryptoDeleteTransactionBody.decode(e,e.uint32());break;case 13:i.cryptoDeleteLiveHash=a.proto.CryptoDeleteLiveHashTransactionBody.decode(e,e.uint32());break;case 14:i.cryptoTransfer=a.proto.CryptoTransferTransactionBody.decode(e,e.uint32());break;case 15:i.cryptoUpdateAccount=a.proto.CryptoUpdateTransactionBody.decode(e,e.uint32());break;case 16:i.fileAppend=a.proto.FileAppendTransactionBody.decode(e,e.uint32());break;case 17:i.fileCreate=a.proto.FileCreateTransactionBody.decode(e,e.uint32());break;case 18:i.fileDelete=a.proto.FileDeleteTransactionBody.decode(e,e.uint32());break;case 19:i.fileUpdate=a.proto.FileUpdateTransactionBody.decode(e,e.uint32());break;case 20:i.systemDelete=a.proto.SystemDeleteTransactionBody.decode(e,e.uint32());break;case 21:i.systemUndelete=a.proto.SystemUndeleteTransactionBody.decode(e,e.uint32());break;case 23:i.freeze=a.proto.FreezeTransactionBody.decode(e,e.uint32());break;case 24:i.consensusCreateTopic=a.proto.ConsensusCreateTopicTransactionBody.decode(e,e.uint32());break;case 25:i.consensusUpdateTopic=a.proto.ConsensusUpdateTopicTransactionBody.decode(e,e.uint32());break;case 26:i.consensusDeleteTopic=a.proto.ConsensusDeleteTopicTransactionBody.decode(e,e.uint32());break;case 27:i.consensusSubmitMessage=a.proto.ConsensusSubmitMessageTransactionBody.decode(e,e.uint32());break;case 28:i.uncheckedSubmit=a.proto.UncheckedSubmitBody.decode(e,e.uint32());break;case 29:i.tokenCreation=a.proto.TokenCreateTransactionBody.decode(e,e.uint32());break;case 31:i.tokenFreeze=a.proto.TokenFreezeAccountTransactionBody.decode(e,e.uint32());break;case 32:i.tokenUnfreeze=a.proto.TokenUnfreezeAccountTransactionBody.decode(e,e.uint32());break;case 33:i.tokenGrantKyc=a.proto.TokenGrantKycTransactionBody.decode(e,e.uint32());break;case 34:i.tokenRevokeKyc=a.proto.TokenRevokeKycTransactionBody.decode(e,e.uint32());break;case 35:i.tokenDeletion=a.proto.TokenDeleteTransactionBody.decode(e,e.uint32());break;case 36:i.tokenUpdate=a.proto.TokenUpdateTransactionBody.decode(e,e.uint32());break;case 37:i.tokenMint=a.proto.TokenMintTransactionBody.decode(e,e.uint32());break;case 38:i.tokenBurn=a.proto.TokenBurnTransactionBody.decode(e,e.uint32());break;case 39:i.tokenWipe=a.proto.TokenWipeAccountTransactionBody.decode(e,e.uint32());break;case 40:i.tokenAssociate=a.proto.TokenAssociateTransactionBody.decode(e,e.uint32());break;case 41:i.tokenDissociate=a.proto.TokenDissociateTransactionBody.decode(e,e.uint32());break;case 45:i.tokenFeeScheduleUpdate=a.proto.TokenFeeScheduleUpdateTransactionBody.decode(e,e.uint32());break;case 46:i.tokenPause=a.proto.TokenPauseTransactionBody.decode(e,e.uint32());break;case 47:i.tokenUnpause=a.proto.TokenUnpauseTransactionBody.decode(e,e.uint32());break;case 42:i.scheduleCreate=a.proto.ScheduleCreateTransactionBody.decode(e,e.uint32());break;case 43:i.scheduleDelete=a.proto.ScheduleDeleteTransactionBody.decode(e,e.uint32());break;case 44:i.scheduleSign=a.proto.ScheduleSignTransactionBody.decode(e,e.uint32());break;case 51:i.nodeStakeUpdate=a.proto.NodeStakeUpdateTransactionBody.decode(e,e.uint32());break;case 52:i.utilPrng=a.proto.UtilPrngTransactionBody.decode(e,e.uint32());break;case 53:i.tokenUpdateNfts=a.proto.TokenUpdateNftsTransactionBody.decode(e,e.uint32());break;case 54:i.nodeCreate=a.proto.NodeCreateTransactionBody.decode(e,e.uint32());break;case 55:i.nodeUpdate=a.proto.NodeUpdateTransactionBody.decode(e,e.uint32());break;case 56:i.nodeDelete=a.proto.NodeDeleteTransactionBody.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TransactionBody"},e}(),SystemDeleteTransactionBody:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.fileID=a.proto.FileID.decode(e,e.uint32());break;case 2:i.contractID=a.proto.ContractID.decode(e,e.uint32());break;case 3:i.expirationTime=a.proto.TimestampSeconds.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.SystemDeleteTransactionBody"},e}(),SystemUndeleteTransactionBody:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.fileID=a.proto.FileID.decode(e,e.uint32());break;case 2:i.contractID=a.proto.ContractID.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.SystemUndeleteTransactionBody"},e}(),FreezeTransactionBody:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.startHour=e.int32();break;case 2:i.startMin=e.int32();break;case 3:i.endHour=e.int32();break;case 4:i.endMin=e.int32();break;case 5:i.updateFile=a.proto.FileID.decode(e,e.uint32());break;case 6:i.fileHash=e.bytes();break;case 7:i.startTime=a.proto.Timestamp.decode(e,e.uint32());break;case 8:i.freezeType=e.int32();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FreezeTransactionBody"},e}(),FreezeType:function(){const e={},t=Object.create(e);return t[e[0]="UNKNOWN_FREEZE_TYPE"]=0,t[e[1]="FREEZE_ONLY"]=1,t[e[2]="PREPARE_UPGRADE"]=2,t[e[3]="FREEZE_UPGRADE"]=3,t[e[4]="FREEZE_ABORT"]=4,t[e[5]="TELEMETRY_UPGRADE"]=5,t}(),ContractCallTransactionBody:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.contractID=a.proto.ContractID.decode(e,e.uint32());break;case 2:i.gas=e.int64();break;case 3:i.amount=e.int64();break;case 4:i.functionParameters=e.bytes();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractCallTransactionBody"},e}(),ContractCreateTransactionBody:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.fileID=a.proto.FileID.decode(e,e.uint32());break;case 16:i.initcode=e.bytes();break;case 3:i.adminKey=a.proto.Key.decode(e,e.uint32());break;case 4:i.gas=e.int64();break;case 5:i.initialBalance=e.int64();break;case 6:i.proxyAccountID=a.proto.AccountID.decode(e,e.uint32());break;case 8:i.autoRenewPeriod=a.proto.Duration.decode(e,e.uint32());break;case 9:i.constructorParameters=e.bytes();break;case 10:i.shardID=a.proto.ShardID.decode(e,e.uint32());break;case 11:i.realmID=a.proto.RealmID.decode(e,e.uint32());break;case 12:i.newRealmAdminKey=a.proto.Key.decode(e,e.uint32());break;case 13:i.memo=e.string();break;case 14:i.maxAutomaticTokenAssociations=e.int32();break;case 15:i.autoRenewAccountId=a.proto.AccountID.decode(e,e.uint32());break;case 17:i.stakedAccountId=a.proto.AccountID.decode(e,e.uint32());break;case 18:i.stakedNodeId=e.int64();break;case 19:i.declineReward=e.bool();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractCreateTransactionBody"},e}(),Duration:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3?i.seconds=e.int64():e.skipType(7&r);return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.Duration"},e}(),ContractUpdateTransactionBody:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.contractID=a.proto.ContractID.decode(e,e.uint32());break;case 2:i.expirationTime=a.proto.Timestamp.decode(e,e.uint32());break;case 3:i.adminKey=a.proto.Key.decode(e,e.uint32());break;case 6:i.proxyAccountID=a.proto.AccountID.decode(e,e.uint32());break;case 7:i.autoRenewPeriod=a.proto.Duration.decode(e,e.uint32());break;case 8:i.fileID=a.proto.FileID.decode(e,e.uint32());break;case 9:i.memo=e.string();break;case 10:i.memoWrapper=a.google.protobuf.StringValue.decode(e,e.uint32());break;case 11:i.maxAutomaticTokenAssociations=a.google.protobuf.Int32Value.decode(e,e.uint32());break;case 12:i.autoRenewAccountId=a.proto.AccountID.decode(e,e.uint32());break;case 13:i.stakedAccountId=a.proto.AccountID.decode(e,e.uint32());break;case 14:i.stakedNodeId=e.int64();break;case 15:i.declineReward=a.google.protobuf.BoolValue.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractUpdateTransactionBody"},e}(),LiveHash:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.accountId=a.proto.AccountID.decode(e,e.uint32());break;case 2:i.hash=e.bytes();break;case 3:i.keys=a.proto.KeyList.decode(e,e.uint32());break;case 5:i.duration=a.proto.Duration.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.LiveHash"},e}(),CryptoAddLiveHashTransactionBody:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3?i.liveHash=a.proto.LiveHash.decode(e,e.uint32()):e.skipType(7&r);return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoAddLiveHashTransactionBody"},e}(),CryptoCreateTransactionBody:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.key=a.proto.Key.decode(e,e.uint32());break;case 2:i.initialBalance=e.uint64();break;case 3:i.proxyAccountID=a.proto.AccountID.decode(e,e.uint32());break;case 6:i.sendRecordThreshold=e.uint64();break;case 7:i.receiveRecordThreshold=e.uint64();break;case 8:i.receiverSigRequired=e.bool();break;case 9:i.autoRenewPeriod=a.proto.Duration.decode(e,e.uint32());break;case 10:i.shardID=a.proto.ShardID.decode(e,e.uint32());break;case 11:i.realmID=a.proto.RealmID.decode(e,e.uint32());break;case 12:i.newRealmAdminKey=a.proto.Key.decode(e,e.uint32());break;case 13:i.memo=e.string();break;case 14:i.maxAutomaticTokenAssociations=e.int32();break;case 15:i.stakedAccountId=a.proto.AccountID.decode(e,e.uint32());break;case 16:i.stakedNodeId=e.int64();break;case 17:i.declineReward=e.bool();break;case 18:i.alias=e.bytes();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoCreateTransactionBody"},e}(),CryptoDeleteTransactionBody:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.transferAccountID=a.proto.AccountID.decode(e,e.uint32());break;case 2:i.deleteAccountID=a.proto.AccountID.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoDeleteTransactionBody"},e}(),CryptoDeleteLiveHashTransactionBody:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.accountOfLiveHash=a.proto.AccountID.decode(e,e.uint32());break;case 2:i.liveHashToDelete=e.bytes();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoDeleteLiveHashTransactionBody"},e}(),CryptoTransferTransactionBody:function(){function e(e){if(this.tokenTransfers=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.transfers=a.proto.TransferList.decode(e,e.uint32());break;case 2:i.tokenTransfers&&i.tokenTransfers.length||(i.tokenTransfers=[]),i.tokenTransfers.push(a.proto.TokenTransferList.decode(e,e.uint32()));break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoTransferTransactionBody"},e}(),CryptoUpdateTransactionBody:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 2:i.accountIDToUpdate=a.proto.AccountID.decode(e,e.uint32());break;case 3:i.key=a.proto.Key.decode(e,e.uint32());break;case 4:i.proxyAccountID=a.proto.AccountID.decode(e,e.uint32());break;case 5:i.proxyFraction=e.int32();break;case 6:i.sendRecordThreshold=e.uint64();break;case 11:i.sendRecordThresholdWrapper=a.google.protobuf.UInt64Value.decode(e,e.uint32());break;case 7:i.receiveRecordThreshold=e.uint64();break;case 12:i.receiveRecordThresholdWrapper=a.google.protobuf.UInt64Value.decode(e,e.uint32());break;case 8:i.autoRenewPeriod=a.proto.Duration.decode(e,e.uint32());break;case 9:i.expirationTime=a.proto.Timestamp.decode(e,e.uint32());break;case 10:i.receiverSigRequired=e.bool();break;case 13:i.receiverSigRequiredWrapper=a.google.protobuf.BoolValue.decode(e,e.uint32());break;case 14:i.memo=a.google.protobuf.StringValue.decode(e,e.uint32());break;case 15:i.maxAutomaticTokenAssociations=a.google.protobuf.Int32Value.decode(e,e.uint32());break;case 16:i.stakedAccountId=a.proto.AccountID.decode(e,e.uint32());break;case 17:i.stakedNodeId=e.int64();break;case 18:i.declineReward=a.google.protobuf.BoolValue.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoUpdateTransactionBody"},e}(),CryptoApproveAllowanceTransactionBody:function(){function e(e){if(this.cryptoAllowances=[],this.nftAllowances=[],this.tokenAllowances=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.cryptoAllowances&&i.cryptoAllowances.length||(i.cryptoAllowances=[]),i.cryptoAllowances.push(a.proto.CryptoAllowance.decode(e,e.uint32()));break;case 2:i.nftAllowances&&i.nftAllowances.length||(i.nftAllowances=[]),i.nftAllowances.push(a.proto.NftAllowance.decode(e,e.uint32()));break;case 3:i.tokenAllowances&&i.tokenAllowances.length||(i.tokenAllowances=[]),i.tokenAllowances.push(a.proto.TokenAllowance.decode(e,e.uint32()));break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoApproveAllowanceTransactionBody"},e}(),CryptoAllowance:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.owner=a.proto.AccountID.decode(e,e.uint32());break;case 2:i.spender=a.proto.AccountID.decode(e,e.uint32());break;case 3:i.amount=e.int64();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoAllowance"},e}(),NftAllowance:function(){function e(e){if(this.serialNumbers=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.tokenId=a.proto.TokenID.decode(e,e.uint32());break;case 2:i.owner=a.proto.AccountID.decode(e,e.uint32());break;case 3:i.spender=a.proto.AccountID.decode(e,e.uint32());break;case 4:if(i.serialNumbers&&i.serialNumbers.length||(i.serialNumbers=[]),2==(7&r))for(var s=e.uint32()+e.pos;e.pos>>3){case 1:i.tokenId=a.proto.TokenID.decode(e,e.uint32());break;case 2:i.owner=a.proto.AccountID.decode(e,e.uint32());break;case 3:i.spender=a.proto.AccountID.decode(e,e.uint32());break;case 4:i.amount=e.int64();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenAllowance"},e}(),CryptoDeleteAllowanceTransactionBody:function(){function e(e){if(this.nftAllowances=[],e)for(var t=Object.keys(e),r=0;r>>3?(i.nftAllowances&&i.nftAllowances.length||(i.nftAllowances=[]),i.nftAllowances.push(a.proto.NftRemoveAllowance.decode(e,e.uint32()))):e.skipType(7&r);return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoDeleteAllowanceTransactionBody"},e}(),NftRemoveAllowance:function(){function e(e){if(this.serialNumbers=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.tokenId=a.proto.TokenID.decode(e,e.uint32());break;case 2:i.owner=a.proto.AccountID.decode(e,e.uint32());break;case 3:if(i.serialNumbers&&i.serialNumbers.length||(i.serialNumbers=[]),2==(7&r))for(var s=e.uint32()+e.pos;e.pos>>3){case 1:i.ethereumData=e.bytes();break;case 2:i.callData=a.proto.FileID.decode(e,e.uint32());break;case 3:i.maxGasAllowance=e.int64();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.EthereumTransactionBody"},e}(),FileAppendTransactionBody:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 2:i.fileID=a.proto.FileID.decode(e,e.uint32());break;case 4:i.contents=e.bytes();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FileAppendTransactionBody"},e}(),FileCreateTransactionBody:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 2:i.expirationTime=a.proto.Timestamp.decode(e,e.uint32());break;case 3:i.keys=a.proto.KeyList.decode(e,e.uint32());break;case 4:i.contents=e.bytes();break;case 5:i.shardID=a.proto.ShardID.decode(e,e.uint32());break;case 6:i.realmID=a.proto.RealmID.decode(e,e.uint32());break;case 7:i.newRealmAdminKey=a.proto.Key.decode(e,e.uint32());break;case 8:i.memo=e.string();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FileCreateTransactionBody"},e}(),FileDeleteTransactionBody:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3?i.fileID=a.proto.FileID.decode(e,e.uint32()):e.skipType(7&r);return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FileDeleteTransactionBody"},e}(),FileUpdateTransactionBody:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.fileID=a.proto.FileID.decode(e,e.uint32());break;case 2:i.expirationTime=a.proto.Timestamp.decode(e,e.uint32());break;case 3:i.keys=a.proto.KeyList.decode(e,e.uint32());break;case 4:i.contents=e.bytes();break;case 5:i.memo=a.google.protobuf.StringValue.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FileUpdateTransactionBody"},e}(),ContractDeleteTransactionBody:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.contractID=a.proto.ContractID.decode(e,e.uint32());break;case 2:i.transferAccountID=a.proto.AccountID.decode(e,e.uint32());break;case 3:i.transferContractID=a.proto.ContractID.decode(e,e.uint32());break;case 4:i.permanentRemoval=e.bool();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractDeleteTransactionBody"},e}(),ConsensusCreateTopicTransactionBody:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.memo=e.string();break;case 2:i.adminKey=a.proto.Key.decode(e,e.uint32());break;case 3:i.submitKey=a.proto.Key.decode(e,e.uint32());break;case 6:i.autoRenewPeriod=a.proto.Duration.decode(e,e.uint32());break;case 7:i.autoRenewAccount=a.proto.AccountID.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ConsensusCreateTopicTransactionBody"},e}(),ConsensusUpdateTopicTransactionBody:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.topicID=a.proto.TopicID.decode(e,e.uint32());break;case 2:i.memo=a.google.protobuf.StringValue.decode(e,e.uint32());break;case 4:i.expirationTime=a.proto.Timestamp.decode(e,e.uint32());break;case 6:i.adminKey=a.proto.Key.decode(e,e.uint32());break;case 7:i.submitKey=a.proto.Key.decode(e,e.uint32());break;case 8:i.autoRenewPeriod=a.proto.Duration.decode(e,e.uint32());break;case 9:i.autoRenewAccount=a.proto.AccountID.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ConsensusUpdateTopicTransactionBody"},e}(),ConsensusDeleteTopicTransactionBody:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3?i.topicID=a.proto.TopicID.decode(e,e.uint32()):e.skipType(7&r);return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ConsensusDeleteTopicTransactionBody"},e}(),ConsensusMessageChunkInfo:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.initialTransactionID=a.proto.TransactionID.decode(e,e.uint32());break;case 2:i.total=e.int32();break;case 3:i.number=e.int32();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ConsensusMessageChunkInfo"},e}(),ConsensusSubmitMessageTransactionBody:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.topicID=a.proto.TopicID.decode(e,e.uint32());break;case 2:i.message=e.bytes();break;case 3:i.chunkInfo=a.proto.ConsensusMessageChunkInfo.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ConsensusSubmitMessageTransactionBody"},e}(),UncheckedSubmitBody:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3?i.transactionBytes=e.bytes():e.skipType(7&r);return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.UncheckedSubmitBody"},e}(),TokenCreateTransactionBody:function(){function e(e){if(this.customFees=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.name=e.string();break;case 2:i.symbol=e.string();break;case 3:i.decimals=e.uint32();break;case 4:i.initialSupply=e.uint64();break;case 5:i.treasury=a.proto.AccountID.decode(e,e.uint32());break;case 6:i.adminKey=a.proto.Key.decode(e,e.uint32());break;case 7:i.kycKey=a.proto.Key.decode(e,e.uint32());break;case 8:i.freezeKey=a.proto.Key.decode(e,e.uint32());break;case 9:i.wipeKey=a.proto.Key.decode(e,e.uint32());break;case 10:i.supplyKey=a.proto.Key.decode(e,e.uint32());break;case 11:i.freezeDefault=e.bool();break;case 13:i.expiry=a.proto.Timestamp.decode(e,e.uint32());break;case 14:i.autoRenewAccount=a.proto.AccountID.decode(e,e.uint32());break;case 15:i.autoRenewPeriod=a.proto.Duration.decode(e,e.uint32());break;case 16:i.memo=e.string();break;case 17:i.tokenType=e.int32();break;case 18:i.supplyType=e.int32();break;case 19:i.maxSupply=e.int64();break;case 20:i.feeScheduleKey=a.proto.Key.decode(e,e.uint32());break;case 21:i.customFees&&i.customFees.length||(i.customFees=[]),i.customFees.push(a.proto.CustomFee.decode(e,e.uint32()));break;case 22:i.pauseKey=a.proto.Key.decode(e,e.uint32());break;case 23:i.metadata=e.bytes();break;case 24:i.metadataKey=a.proto.Key.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenCreateTransactionBody"},e}(),FractionalFee:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.fractionalAmount=a.proto.Fraction.decode(e,e.uint32());break;case 2:i.minimumAmount=e.int64();break;case 3:i.maximumAmount=e.int64();break;case 4:i.netOfTransfers=e.bool();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FractionalFee"},e}(),FixedFee:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.amount=e.int64();break;case 2:i.denominatingTokenId=a.proto.TokenID.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FixedFee"},e}(),RoyaltyFee:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.exchangeValueFraction=a.proto.Fraction.decode(e,e.uint32());break;case 2:i.fallbackFee=a.proto.FixedFee.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.RoyaltyFee"},e}(),CustomFee:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.fixedFee=a.proto.FixedFee.decode(e,e.uint32());break;case 2:i.fractionalFee=a.proto.FractionalFee.decode(e,e.uint32());break;case 4:i.royaltyFee=a.proto.RoyaltyFee.decode(e,e.uint32());break;case 3:i.feeCollectorAccountId=a.proto.AccountID.decode(e,e.uint32());break;case 5:i.allCollectorsAreExempt=e.bool();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CustomFee"},e}(),AssessedCustomFee:function(){function e(e){if(this.effectivePayerAccountId=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.amount=e.int64();break;case 2:i.tokenId=a.proto.TokenID.decode(e,e.uint32());break;case 3:i.feeCollectorAccountId=a.proto.AccountID.decode(e,e.uint32());break;case 4:i.effectivePayerAccountId&&i.effectivePayerAccountId.length||(i.effectivePayerAccountId=[]),i.effectivePayerAccountId.push(a.proto.AccountID.decode(e,e.uint32()));break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.AssessedCustomFee"},e}(),TokenFreezeAccountTransactionBody:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.token=a.proto.TokenID.decode(e,e.uint32());break;case 2:i.account=a.proto.AccountID.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenFreezeAccountTransactionBody"},e}(),TokenUnfreezeAccountTransactionBody:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.token=a.proto.TokenID.decode(e,e.uint32());break;case 2:i.account=a.proto.AccountID.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenUnfreezeAccountTransactionBody"},e}(),TokenGrantKycTransactionBody:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.token=a.proto.TokenID.decode(e,e.uint32());break;case 2:i.account=a.proto.AccountID.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenGrantKycTransactionBody"},e}(),TokenRevokeKycTransactionBody:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.token=a.proto.TokenID.decode(e,e.uint32());break;case 2:i.account=a.proto.AccountID.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenRevokeKycTransactionBody"},e}(),TokenDeleteTransactionBody:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3?i.token=a.proto.TokenID.decode(e,e.uint32()):e.skipType(7&r);return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenDeleteTransactionBody"},e}(),TokenUpdateTransactionBody:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.token=a.proto.TokenID.decode(e,e.uint32());break;case 2:i.symbol=e.string();break;case 3:i.name=e.string();break;case 4:i.treasury=a.proto.AccountID.decode(e,e.uint32());break;case 5:i.adminKey=a.proto.Key.decode(e,e.uint32());break;case 6:i.kycKey=a.proto.Key.decode(e,e.uint32());break;case 7:i.freezeKey=a.proto.Key.decode(e,e.uint32());break;case 8:i.wipeKey=a.proto.Key.decode(e,e.uint32());break;case 9:i.supplyKey=a.proto.Key.decode(e,e.uint32());break;case 10:i.autoRenewAccount=a.proto.AccountID.decode(e,e.uint32());break;case 11:i.autoRenewPeriod=a.proto.Duration.decode(e,e.uint32());break;case 12:i.expiry=a.proto.Timestamp.decode(e,e.uint32());break;case 13:i.memo=a.google.protobuf.StringValue.decode(e,e.uint32());break;case 14:i.feeScheduleKey=a.proto.Key.decode(e,e.uint32());break;case 15:i.pauseKey=a.proto.Key.decode(e,e.uint32());break;case 16:i.metadata=a.google.protobuf.BytesValue.decode(e,e.uint32());break;case 17:i.metadataKey=a.proto.Key.decode(e,e.uint32());break;case 18:i.keyVerificationMode=e.int32();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenUpdateTransactionBody"},e}(),TokenMintTransactionBody:function(){function e(e){if(this.metadata=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.token=a.proto.TokenID.decode(e,e.uint32());break;case 2:i.amount=e.uint64();break;case 3:i.metadata&&i.metadata.length||(i.metadata=[]),i.metadata.push(e.bytes());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenMintTransactionBody"},e}(),TokenBurnTransactionBody:function(){function e(e){if(this.serialNumbers=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.token=a.proto.TokenID.decode(e,e.uint32());break;case 2:i.amount=e.uint64();break;case 3:if(i.serialNumbers&&i.serialNumbers.length||(i.serialNumbers=[]),2==(7&r))for(var s=e.uint32()+e.pos;e.pos>>3){case 1:i.token=a.proto.TokenID.decode(e,e.uint32());break;case 2:i.account=a.proto.AccountID.decode(e,e.uint32());break;case 3:i.amount=e.uint64();break;case 4:if(i.serialNumbers&&i.serialNumbers.length||(i.serialNumbers=[]),2==(7&r))for(var s=e.uint32()+e.pos;e.pos>>3){case 1:i.account=a.proto.AccountID.decode(e,e.uint32());break;case 2:i.tokens&&i.tokens.length||(i.tokens=[]),i.tokens.push(a.proto.TokenID.decode(e,e.uint32()));break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenAssociateTransactionBody"},e}(),TokenDissociateTransactionBody:function(){function e(e){if(this.tokens=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.account=a.proto.AccountID.decode(e,e.uint32());break;case 2:i.tokens&&i.tokens.length||(i.tokens=[]),i.tokens.push(a.proto.TokenID.decode(e,e.uint32()));break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenDissociateTransactionBody"},e}(),TokenFeeScheduleUpdateTransactionBody:function(){function e(e){if(this.customFees=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.tokenId=a.proto.TokenID.decode(e,e.uint32());break;case 2:i.customFees&&i.customFees.length||(i.customFees=[]),i.customFees.push(a.proto.CustomFee.decode(e,e.uint32()));break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenFeeScheduleUpdateTransactionBody"},e}(),TokenPauseTransactionBody:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3?i.token=a.proto.TokenID.decode(e,e.uint32()):e.skipType(7&r);return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenPauseTransactionBody"},e}(),TokenUnpauseTransactionBody:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3?i.token=a.proto.TokenID.decode(e,e.uint32()):e.skipType(7&r);return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenUnpauseTransactionBody"},e}(),TokenUpdateNftsTransactionBody:function(){function e(e){if(this.serialNumbers=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.token=a.proto.TokenID.decode(e,e.uint32());break;case 2:if(i.serialNumbers&&i.serialNumbers.length||(i.serialNumbers=[]),2==(7&r))for(var s=e.uint32()+e.pos;e.pos>>3){case 1:i.scheduledTransactionBody=a.proto.SchedulableTransactionBody.decode(e,e.uint32());break;case 2:i.memo=e.string();break;case 3:i.adminKey=a.proto.Key.decode(e,e.uint32());break;case 4:i.payerAccountID=a.proto.AccountID.decode(e,e.uint32());break;case 5:i.expirationTime=a.proto.Timestamp.decode(e,e.uint32());break;case 13:i.waitForExpiry=e.bool();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ScheduleCreateTransactionBody"},e}(),SchedulableTransactionBody:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.transactionFee=e.uint64();break;case 2:i.memo=e.string();break;case 3:i.contractCall=a.proto.ContractCallTransactionBody.decode(e,e.uint32());break;case 4:i.contractCreateInstance=a.proto.ContractCreateTransactionBody.decode(e,e.uint32());break;case 5:i.contractUpdateInstance=a.proto.ContractUpdateTransactionBody.decode(e,e.uint32());break;case 6:i.contractDeleteInstance=a.proto.ContractDeleteTransactionBody.decode(e,e.uint32());break;case 37:i.cryptoApproveAllowance=a.proto.CryptoApproveAllowanceTransactionBody.decode(e,e.uint32());break;case 38:i.cryptoDeleteAllowance=a.proto.CryptoDeleteAllowanceTransactionBody.decode(e,e.uint32());break;case 7:i.cryptoCreateAccount=a.proto.CryptoCreateTransactionBody.decode(e,e.uint32());break;case 8:i.cryptoDelete=a.proto.CryptoDeleteTransactionBody.decode(e,e.uint32());break;case 9:i.cryptoTransfer=a.proto.CryptoTransferTransactionBody.decode(e,e.uint32());break;case 10:i.cryptoUpdateAccount=a.proto.CryptoUpdateTransactionBody.decode(e,e.uint32());break;case 11:i.fileAppend=a.proto.FileAppendTransactionBody.decode(e,e.uint32());break;case 12:i.fileCreate=a.proto.FileCreateTransactionBody.decode(e,e.uint32());break;case 13:i.fileDelete=a.proto.FileDeleteTransactionBody.decode(e,e.uint32());break;case 14:i.fileUpdate=a.proto.FileUpdateTransactionBody.decode(e,e.uint32());break;case 15:i.systemDelete=a.proto.SystemDeleteTransactionBody.decode(e,e.uint32());break;case 16:i.systemUndelete=a.proto.SystemUndeleteTransactionBody.decode(e,e.uint32());break;case 17:i.freeze=a.proto.FreezeTransactionBody.decode(e,e.uint32());break;case 18:i.consensusCreateTopic=a.proto.ConsensusCreateTopicTransactionBody.decode(e,e.uint32());break;case 19:i.consensusUpdateTopic=a.proto.ConsensusUpdateTopicTransactionBody.decode(e,e.uint32());break;case 20:i.consensusDeleteTopic=a.proto.ConsensusDeleteTopicTransactionBody.decode(e,e.uint32());break;case 21:i.consensusSubmitMessage=a.proto.ConsensusSubmitMessageTransactionBody.decode(e,e.uint32());break;case 22:i.tokenCreation=a.proto.TokenCreateTransactionBody.decode(e,e.uint32());break;case 23:i.tokenFreeze=a.proto.TokenFreezeAccountTransactionBody.decode(e,e.uint32());break;case 24:i.tokenUnfreeze=a.proto.TokenUnfreezeAccountTransactionBody.decode(e,e.uint32());break;case 25:i.tokenGrantKyc=a.proto.TokenGrantKycTransactionBody.decode(e,e.uint32());break;case 26:i.tokenRevokeKyc=a.proto.TokenRevokeKycTransactionBody.decode(e,e.uint32());break;case 27:i.tokenDeletion=a.proto.TokenDeleteTransactionBody.decode(e,e.uint32());break;case 28:i.tokenUpdate=a.proto.TokenUpdateTransactionBody.decode(e,e.uint32());break;case 29:i.tokenMint=a.proto.TokenMintTransactionBody.decode(e,e.uint32());break;case 30:i.tokenBurn=a.proto.TokenBurnTransactionBody.decode(e,e.uint32());break;case 31:i.tokenWipe=a.proto.TokenWipeAccountTransactionBody.decode(e,e.uint32());break;case 32:i.tokenAssociate=a.proto.TokenAssociateTransactionBody.decode(e,e.uint32());break;case 33:i.tokenDissociate=a.proto.TokenDissociateTransactionBody.decode(e,e.uint32());break;case 39:i.tokenFeeScheduleUpdate=a.proto.TokenFeeScheduleUpdateTransactionBody.decode(e,e.uint32());break;case 35:i.tokenPause=a.proto.TokenPauseTransactionBody.decode(e,e.uint32());break;case 36:i.tokenUnpause=a.proto.TokenUnpauseTransactionBody.decode(e,e.uint32());break;case 34:i.scheduleDelete=a.proto.ScheduleDeleteTransactionBody.decode(e,e.uint32());break;case 40:i.utilPrng=a.proto.UtilPrngTransactionBody.decode(e,e.uint32());break;case 41:i.tokenUpdateNfts=a.proto.TokenUpdateNftsTransactionBody.decode(e,e.uint32());break;case 42:i.nodeCreate=a.proto.NodeCreateTransactionBody.decode(e,e.uint32());break;case 43:i.nodeUpdate=a.proto.NodeUpdateTransactionBody.decode(e,e.uint32());break;case 44:i.nodeDelete=a.proto.NodeDeleteTransactionBody.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.SchedulableTransactionBody"},e}(),ScheduleDeleteTransactionBody:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3?i.scheduleID=a.proto.ScheduleID.decode(e,e.uint32()):e.skipType(7&r);return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ScheduleDeleteTransactionBody"},e}(),UtilPrngTransactionBody:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3?i.range=e.int32():e.skipType(7&r);return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.UtilPrngTransactionBody"},e}(),NodeCreateTransactionBody:function(){function e(e){if(this.gossipEndpoint=[],this.serviceEndpoint=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.accountId=a.proto.AccountID.decode(e,e.uint32());break;case 2:i.description=e.string();break;case 3:i.gossipEndpoint&&i.gossipEndpoint.length||(i.gossipEndpoint=[]),i.gossipEndpoint.push(a.proto.ServiceEndpoint.decode(e,e.uint32()));break;case 4:i.serviceEndpoint&&i.serviceEndpoint.length||(i.serviceEndpoint=[]),i.serviceEndpoint.push(a.proto.ServiceEndpoint.decode(e,e.uint32()));break;case 5:i.gossipCaCertificate=e.bytes();break;case 6:i.grpcCertificateHash=e.bytes();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.NodeCreateTransactionBody"},e}(),NodeUpdateTransactionBody:function(){function e(e){if(this.gossipEndpoint=[],this.serviceEndpoint=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.nodeId=e.uint64();break;case 2:i.accountId=a.proto.AccountID.decode(e,e.uint32());break;case 3:i.description=a.google.protobuf.StringValue.decode(e,e.uint32());break;case 4:i.gossipEndpoint&&i.gossipEndpoint.length||(i.gossipEndpoint=[]),i.gossipEndpoint.push(a.proto.ServiceEndpoint.decode(e,e.uint32()));break;case 5:i.serviceEndpoint&&i.serviceEndpoint.length||(i.serviceEndpoint=[]),i.serviceEndpoint.push(a.proto.ServiceEndpoint.decode(e,e.uint32()));break;case 6:i.gossipCaCertificate=a.google.protobuf.BytesValue.decode(e,e.uint32());break;case 7:i.grpcCertificateHash=a.google.protobuf.BytesValue.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.NodeUpdateTransactionBody"},e}(),NodeDeleteTransactionBody:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3?i.nodeId=e.uint64():e.skipType(7&r);return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.NodeDeleteTransactionBody"},e}(),ScheduleSignTransactionBody:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3?i.scheduleID=a.proto.ScheduleID.decode(e,e.uint32()):e.skipType(7&r);return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ScheduleSignTransactionBody"},e}(),NodeStakeUpdateTransactionBody:function(){function e(e){if(this.nodeStake=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.endOfStakingPeriod=a.proto.Timestamp.decode(e,e.uint32());break;case 2:i.nodeStake&&i.nodeStake.length||(i.nodeStake=[]),i.nodeStake.push(a.proto.NodeStake.decode(e,e.uint32()));break;case 3:i.maxStakingRewardRatePerHbar=e.int64();break;case 4:i.nodeRewardFeeFraction=a.proto.Fraction.decode(e,e.uint32());break;case 5:i.stakingPeriodsStored=e.int64();break;case 6:i.stakingPeriod=e.int64();break;case 7:i.stakingRewardFeeFraction=a.proto.Fraction.decode(e,e.uint32());break;case 8:i.stakingStartThreshold=e.int64();break;case 9:i.stakingRewardRate=e.int64();break;case 10:i.reservedStakingRewards=e.int64();break;case 11:i.unreservedStakingRewardBalance=e.int64();break;case 12:i.rewardBalanceThreshold=e.int64();break;case 13:i.maxStakeRewarded=e.int64();break;case 14:i.maxTotalReward=e.int64();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.NodeStakeUpdateTransactionBody"},e}(),NodeStake:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.maxStake=e.int64();break;case 2:i.minStake=e.int64();break;case 3:i.nodeId=e.int64();break;case 4:i.rewardRate=e.int64();break;case 5:i.stake=e.int64();break;case 6:i.stakeNotRewarded=e.int64();break;case 7:i.stakeRewarded=e.int64();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.NodeStake"},e}(),ResponseHeader:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.nodeTransactionPrecheckCode=e.int32();break;case 2:i.responseType=e.int32();break;case 3:i.cost=e.uint64();break;case 4:i.stateProof=e.bytes();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ResponseHeader"},e}(),ResponseCodeEnum:function(){const e={},t=Object.create(e);return t[e[0]="OK"]=0,t[e[1]="INVALID_TRANSACTION"]=1,t[e[2]="PAYER_ACCOUNT_NOT_FOUND"]=2,t[e[3]="INVALID_NODE_ACCOUNT"]=3,t[e[4]="TRANSACTION_EXPIRED"]=4,t[e[5]="INVALID_TRANSACTION_START"]=5,t[e[6]="INVALID_TRANSACTION_DURATION"]=6,t[e[7]="INVALID_SIGNATURE"]=7,t[e[8]="MEMO_TOO_LONG"]=8,t[e[9]="INSUFFICIENT_TX_FEE"]=9,t[e[10]="INSUFFICIENT_PAYER_BALANCE"]=10,t[e[11]="DUPLICATE_TRANSACTION"]=11,t[e[12]="BUSY"]=12,t[e[13]="NOT_SUPPORTED"]=13,t[e[14]="INVALID_FILE_ID"]=14,t[e[15]="INVALID_ACCOUNT_ID"]=15,t[e[16]="INVALID_CONTRACT_ID"]=16,t[e[17]="INVALID_TRANSACTION_ID"]=17,t[e[18]="RECEIPT_NOT_FOUND"]=18,t[e[19]="RECORD_NOT_FOUND"]=19,t[e[20]="INVALID_SOLIDITY_ID"]=20,t[e[21]="UNKNOWN"]=21,t[e[22]="SUCCESS"]=22,t[e[23]="FAIL_INVALID"]=23,t[e[24]="FAIL_FEE"]=24,t[e[25]="FAIL_BALANCE"]=25,t[e[26]="KEY_REQUIRED"]=26,t[e[27]="BAD_ENCODING"]=27,t[e[28]="INSUFFICIENT_ACCOUNT_BALANCE"]=28,t[e[29]="INVALID_SOLIDITY_ADDRESS"]=29,t[e[30]="INSUFFICIENT_GAS"]=30,t[e[31]="CONTRACT_SIZE_LIMIT_EXCEEDED"]=31,t[e[32]="LOCAL_CALL_MODIFICATION_EXCEPTION"]=32,t[e[33]="CONTRACT_REVERT_EXECUTED"]=33,t[e[34]="CONTRACT_EXECUTION_EXCEPTION"]=34,t[e[35]="INVALID_RECEIVING_NODE_ACCOUNT"]=35,t[e[36]="MISSING_QUERY_HEADER"]=36,t[e[37]="ACCOUNT_UPDATE_FAILED"]=37,t[e[38]="INVALID_KEY_ENCODING"]=38,t[e[39]="NULL_SOLIDITY_ADDRESS"]=39,t[e[40]="CONTRACT_UPDATE_FAILED"]=40,t[e[41]="INVALID_QUERY_HEADER"]=41,t[e[42]="INVALID_FEE_SUBMITTED"]=42,t[e[43]="INVALID_PAYER_SIGNATURE"]=43,t[e[44]="KEY_NOT_PROVIDED"]=44,t[e[45]="INVALID_EXPIRATION_TIME"]=45,t[e[46]="NO_WACL_KEY"]=46,t[e[47]="FILE_CONTENT_EMPTY"]=47,t[e[48]="INVALID_ACCOUNT_AMOUNTS"]=48,t[e[49]="EMPTY_TRANSACTION_BODY"]=49,t[e[50]="INVALID_TRANSACTION_BODY"]=50,t[e[51]="INVALID_SIGNATURE_TYPE_MISMATCHING_KEY"]=51,t[e[52]="INVALID_SIGNATURE_COUNT_MISMATCHING_KEY"]=52,t[e[53]="EMPTY_LIVE_HASH_BODY"]=53,t[e[54]="EMPTY_LIVE_HASH"]=54,t[e[55]="EMPTY_LIVE_HASH_KEYS"]=55,t[e[56]="INVALID_LIVE_HASH_SIZE"]=56,t[e[57]="EMPTY_QUERY_BODY"]=57,t[e[58]="EMPTY_LIVE_HASH_QUERY"]=58,t[e[59]="LIVE_HASH_NOT_FOUND"]=59,t[e[60]="ACCOUNT_ID_DOES_NOT_EXIST"]=60,t[e[61]="LIVE_HASH_ALREADY_EXISTS"]=61,t[e[62]="INVALID_FILE_WACL"]=62,t[e[63]="SERIALIZATION_FAILED"]=63,t[e[64]="TRANSACTION_OVERSIZE"]=64,t[e[65]="TRANSACTION_TOO_MANY_LAYERS"]=65,t[e[66]="CONTRACT_DELETED"]=66,t[e[67]="PLATFORM_NOT_ACTIVE"]=67,t[e[68]="KEY_PREFIX_MISMATCH"]=68,t[e[69]="PLATFORM_TRANSACTION_NOT_CREATED"]=69,t[e[70]="INVALID_RENEWAL_PERIOD"]=70,t[e[71]="INVALID_PAYER_ACCOUNT_ID"]=71,t[e[72]="ACCOUNT_DELETED"]=72,t[e[73]="FILE_DELETED"]=73,t[e[74]="ACCOUNT_REPEATED_IN_ACCOUNT_AMOUNTS"]=74,t[e[75]="SETTING_NEGATIVE_ACCOUNT_BALANCE"]=75,t[e[76]="OBTAINER_REQUIRED"]=76,t[e[77]="OBTAINER_SAME_CONTRACT_ID"]=77,t[e[78]="OBTAINER_DOES_NOT_EXIST"]=78,t[e[79]="MODIFYING_IMMUTABLE_CONTRACT"]=79,t[e[80]="FILE_SYSTEM_EXCEPTION"]=80,t[e[81]="AUTORENEW_DURATION_NOT_IN_RANGE"]=81,t[e[82]="ERROR_DECODING_BYTESTRING"]=82,t[e[83]="CONTRACT_FILE_EMPTY"]=83,t[e[84]="CONTRACT_BYTECODE_EMPTY"]=84,t[e[85]="INVALID_INITIAL_BALANCE"]=85,t[e[86]="INVALID_RECEIVE_RECORD_THRESHOLD"]=86,t[e[87]="INVALID_SEND_RECORD_THRESHOLD"]=87,t[e[88]="ACCOUNT_IS_NOT_GENESIS_ACCOUNT"]=88,t[e[89]="PAYER_ACCOUNT_UNAUTHORIZED"]=89,t[e[90]="INVALID_FREEZE_TRANSACTION_BODY"]=90,t[e[91]="FREEZE_TRANSACTION_BODY_NOT_FOUND"]=91,t[e[92]="TRANSFER_LIST_SIZE_LIMIT_EXCEEDED"]=92,t[e[93]="RESULT_SIZE_LIMIT_EXCEEDED"]=93,t[e[94]="NOT_SPECIAL_ACCOUNT"]=94,t[e[95]="CONTRACT_NEGATIVE_GAS"]=95,t[e[96]="CONTRACT_NEGATIVE_VALUE"]=96,t[e[97]="INVALID_FEE_FILE"]=97,t[e[98]="INVALID_EXCHANGE_RATE_FILE"]=98,t[e[99]="INSUFFICIENT_LOCAL_CALL_GAS"]=99,t[e[100]="ENTITY_NOT_ALLOWED_TO_DELETE"]=100,t[e[101]="AUTHORIZATION_FAILED"]=101,t[e[102]="FILE_UPLOADED_PROTO_INVALID"]=102,t[e[103]="FILE_UPLOADED_PROTO_NOT_SAVED_TO_DISK"]=103,t[e[104]="FEE_SCHEDULE_FILE_PART_UPLOADED"]=104,t[e[105]="EXCHANGE_RATE_CHANGE_LIMIT_EXCEEDED"]=105,t[e[106]="MAX_CONTRACT_STORAGE_EXCEEDED"]=106,t[e[107]="TRANSFER_ACCOUNT_SAME_AS_DELETE_ACCOUNT"]=107,t[e[108]="TOTAL_LEDGER_BALANCE_INVALID"]=108,t[e[110]="EXPIRATION_REDUCTION_NOT_ALLOWED"]=110,t[e[111]="MAX_GAS_LIMIT_EXCEEDED"]=111,t[e[112]="MAX_FILE_SIZE_EXCEEDED"]=112,t[e[113]="RECEIVER_SIG_REQUIRED"]=113,t[e[150]="INVALID_TOPIC_ID"]=150,t[e[155]="INVALID_ADMIN_KEY"]=155,t[e[156]="INVALID_SUBMIT_KEY"]=156,t[e[157]="UNAUTHORIZED"]=157,t[e[158]="INVALID_TOPIC_MESSAGE"]=158,t[e[159]="INVALID_AUTORENEW_ACCOUNT"]=159,t[e[160]="AUTORENEW_ACCOUNT_NOT_ALLOWED"]=160,t[e[162]="TOPIC_EXPIRED"]=162,t[e[163]="INVALID_CHUNK_NUMBER"]=163,t[e[164]="INVALID_CHUNK_TRANSACTION_ID"]=164,t[e[165]="ACCOUNT_FROZEN_FOR_TOKEN"]=165,t[e[166]="TOKENS_PER_ACCOUNT_LIMIT_EXCEEDED"]=166,t[e[167]="INVALID_TOKEN_ID"]=167,t[e[168]="INVALID_TOKEN_DECIMALS"]=168,t[e[169]="INVALID_TOKEN_INITIAL_SUPPLY"]=169,t[e[170]="INVALID_TREASURY_ACCOUNT_FOR_TOKEN"]=170,t[e[171]="INVALID_TOKEN_SYMBOL"]=171,t[e[172]="TOKEN_HAS_NO_FREEZE_KEY"]=172,t[e[173]="TRANSFERS_NOT_ZERO_SUM_FOR_TOKEN"]=173,t[e[174]="MISSING_TOKEN_SYMBOL"]=174,t[e[175]="TOKEN_SYMBOL_TOO_LONG"]=175,t[e[176]="ACCOUNT_KYC_NOT_GRANTED_FOR_TOKEN"]=176,t[e[177]="TOKEN_HAS_NO_KYC_KEY"]=177,t[e[178]="INSUFFICIENT_TOKEN_BALANCE"]=178,t[e[179]="TOKEN_WAS_DELETED"]=179,t[e[180]="TOKEN_HAS_NO_SUPPLY_KEY"]=180,t[e[181]="TOKEN_HAS_NO_WIPE_KEY"]=181,t[e[182]="INVALID_TOKEN_MINT_AMOUNT"]=182,t[e[183]="INVALID_TOKEN_BURN_AMOUNT"]=183,t[e[184]="TOKEN_NOT_ASSOCIATED_TO_ACCOUNT"]=184,t[e[185]="CANNOT_WIPE_TOKEN_TREASURY_ACCOUNT"]=185,t[e[186]="INVALID_KYC_KEY"]=186,t[e[187]="INVALID_WIPE_KEY"]=187,t[e[188]="INVALID_FREEZE_KEY"]=188,t[e[189]="INVALID_SUPPLY_KEY"]=189,t[e[190]="MISSING_TOKEN_NAME"]=190,t[e[191]="TOKEN_NAME_TOO_LONG"]=191,t[e[192]="INVALID_WIPING_AMOUNT"]=192,t[e[193]="TOKEN_IS_IMMUTABLE"]=193,t[e[194]="TOKEN_ALREADY_ASSOCIATED_TO_ACCOUNT"]=194,t[e[195]="TRANSACTION_REQUIRES_ZERO_TOKEN_BALANCES"]=195,t[e[196]="ACCOUNT_IS_TREASURY"]=196,t[e[197]="TOKEN_ID_REPEATED_IN_TOKEN_LIST"]=197,t[e[198]="TOKEN_TRANSFER_LIST_SIZE_LIMIT_EXCEEDED"]=198,t[e[199]="EMPTY_TOKEN_TRANSFER_BODY"]=199,t[e[200]="EMPTY_TOKEN_TRANSFER_ACCOUNT_AMOUNTS"]=200,t[e[201]="INVALID_SCHEDULE_ID"]=201,t[e[202]="SCHEDULE_IS_IMMUTABLE"]=202,t[e[203]="INVALID_SCHEDULE_PAYER_ID"]=203,t[e[204]="INVALID_SCHEDULE_ACCOUNT_ID"]=204,t[e[205]="NO_NEW_VALID_SIGNATURES"]=205,t[e[206]="UNRESOLVABLE_REQUIRED_SIGNERS"]=206,t[e[207]="SCHEDULED_TRANSACTION_NOT_IN_WHITELIST"]=207,t[e[208]="SOME_SIGNATURES_WERE_INVALID"]=208,t[e[209]="TRANSACTION_ID_FIELD_NOT_ALLOWED"]=209,t[e[210]="IDENTICAL_SCHEDULE_ALREADY_CREATED"]=210,t[e[211]="INVALID_ZERO_BYTE_IN_STRING"]=211,t[e[212]="SCHEDULE_ALREADY_DELETED"]=212,t[e[213]="SCHEDULE_ALREADY_EXECUTED"]=213,t[e[214]="MESSAGE_SIZE_TOO_LARGE"]=214,t[e[215]="OPERATION_REPEATED_IN_BUCKET_GROUPS"]=215,t[e[216]="BUCKET_CAPACITY_OVERFLOW"]=216,t[e[217]="NODE_CAPACITY_NOT_SUFFICIENT_FOR_OPERATION"]=217,t[e[218]="BUCKET_HAS_NO_THROTTLE_GROUPS"]=218,t[e[219]="THROTTLE_GROUP_HAS_ZERO_OPS_PER_SEC"]=219,t[e[220]="SUCCESS_BUT_MISSING_EXPECTED_OPERATION"]=220,t[e[221]="UNPARSEABLE_THROTTLE_DEFINITIONS"]=221,t[e[222]="INVALID_THROTTLE_DEFINITIONS"]=222,t[e[223]="ACCOUNT_EXPIRED_AND_PENDING_REMOVAL"]=223,t[e[224]="INVALID_TOKEN_MAX_SUPPLY"]=224,t[e[225]="INVALID_TOKEN_NFT_SERIAL_NUMBER"]=225,t[e[226]="INVALID_NFT_ID"]=226,t[e[227]="METADATA_TOO_LONG"]=227,t[e[228]="BATCH_SIZE_LIMIT_EXCEEDED"]=228,t[e[229]="INVALID_QUERY_RANGE"]=229,t[e[230]="FRACTION_DIVIDES_BY_ZERO"]=230,t[e[231]="INSUFFICIENT_PAYER_BALANCE_FOR_CUSTOM_FEE"]=231,t[e[232]="CUSTOM_FEES_LIST_TOO_LONG"]=232,t[e[233]="INVALID_CUSTOM_FEE_COLLECTOR"]=233,t[e[234]="INVALID_TOKEN_ID_IN_CUSTOM_FEES"]=234,t[e[235]="TOKEN_NOT_ASSOCIATED_TO_FEE_COLLECTOR"]=235,t[e[236]="TOKEN_MAX_SUPPLY_REACHED"]=236,t[e[237]="SENDER_DOES_NOT_OWN_NFT_SERIAL_NO"]=237,t[e[238]="CUSTOM_FEE_NOT_FULLY_SPECIFIED"]=238,t[e[239]="CUSTOM_FEE_MUST_BE_POSITIVE"]=239,t[e[240]="TOKEN_HAS_NO_FEE_SCHEDULE_KEY"]=240,t[e[241]="CUSTOM_FEE_OUTSIDE_NUMERIC_RANGE"]=241,t[e[242]="ROYALTY_FRACTION_CANNOT_EXCEED_ONE"]=242,t[e[243]="FRACTIONAL_FEE_MAX_AMOUNT_LESS_THAN_MIN_AMOUNT"]=243,t[e[244]="CUSTOM_SCHEDULE_ALREADY_HAS_NO_FEES"]=244,t[e[245]="CUSTOM_FEE_DENOMINATION_MUST_BE_FUNGIBLE_COMMON"]=245,t[e[246]="CUSTOM_FRACTIONAL_FEE_ONLY_ALLOWED_FOR_FUNGIBLE_COMMON"]=246,t[e[247]="INVALID_CUSTOM_FEE_SCHEDULE_KEY"]=247,t[e[248]="INVALID_TOKEN_MINT_METADATA"]=248,t[e[249]="INVALID_TOKEN_BURN_METADATA"]=249,t[e[250]="CURRENT_TREASURY_STILL_OWNS_NFTS"]=250,t[e[251]="ACCOUNT_STILL_OWNS_NFTS"]=251,t[e[252]="TREASURY_MUST_OWN_BURNED_NFT"]=252,t[e[253]="ACCOUNT_DOES_NOT_OWN_WIPED_NFT"]=253,t[e[254]="ACCOUNT_AMOUNT_TRANSFERS_ONLY_ALLOWED_FOR_FUNGIBLE_COMMON"]=254,t[e[255]="MAX_NFTS_IN_PRICE_REGIME_HAVE_BEEN_MINTED"]=255,t[e[256]="PAYER_ACCOUNT_DELETED"]=256,t[e[257]="CUSTOM_FEE_CHARGING_EXCEEDED_MAX_RECURSION_DEPTH"]=257,t[e[258]="CUSTOM_FEE_CHARGING_EXCEEDED_MAX_ACCOUNT_AMOUNTS"]=258,t[e[259]="INSUFFICIENT_SENDER_ACCOUNT_BALANCE_FOR_CUSTOM_FEE"]=259,t[e[260]="SERIAL_NUMBER_LIMIT_REACHED"]=260,t[e[261]="CUSTOM_ROYALTY_FEE_ONLY_ALLOWED_FOR_NON_FUNGIBLE_UNIQUE"]=261,t[e[262]="NO_REMAINING_AUTOMATIC_ASSOCIATIONS"]=262,t[e[263]="EXISTING_AUTOMATIC_ASSOCIATIONS_EXCEED_GIVEN_LIMIT"]=263,t[e[264]="REQUESTED_NUM_AUTOMATIC_ASSOCIATIONS_EXCEEDS_ASSOCIATION_LIMIT"]=264,t[e[265]="TOKEN_IS_PAUSED"]=265,t[e[266]="TOKEN_HAS_NO_PAUSE_KEY"]=266,t[e[267]="INVALID_PAUSE_KEY"]=267,t[e[268]="FREEZE_UPDATE_FILE_DOES_NOT_EXIST"]=268,t[e[269]="FREEZE_UPDATE_FILE_HASH_DOES_NOT_MATCH"]=269,t[e[270]="NO_UPGRADE_HAS_BEEN_PREPARED"]=270,t[e[271]="NO_FREEZE_IS_SCHEDULED"]=271,t[e[272]="UPDATE_FILE_HASH_CHANGED_SINCE_PREPARE_UPGRADE"]=272,t[e[273]="FREEZE_START_TIME_MUST_BE_FUTURE"]=273,t[e[274]="PREPARED_UPDATE_FILE_IS_IMMUTABLE"]=274,t[e[275]="FREEZE_ALREADY_SCHEDULED"]=275,t[e[276]="FREEZE_UPGRADE_IN_PROGRESS"]=276,t[e[277]="UPDATE_FILE_ID_DOES_NOT_MATCH_PREPARED"]=277,t[e[278]="UPDATE_FILE_HASH_DOES_NOT_MATCH_PREPARED"]=278,t[e[279]="CONSENSUS_GAS_EXHAUSTED"]=279,t[e[280]="REVERTED_SUCCESS"]=280,t[e[281]="MAX_STORAGE_IN_PRICE_REGIME_HAS_BEEN_USED"]=281,t[e[282]="INVALID_ALIAS_KEY"]=282,t[e[283]="UNEXPECTED_TOKEN_DECIMALS"]=283,t[e[284]="INVALID_PROXY_ACCOUNT_ID"]=284,t[e[285]="INVALID_TRANSFER_ACCOUNT_ID"]=285,t[e[286]="INVALID_FEE_COLLECTOR_ACCOUNT_ID"]=286,t[e[287]="ALIAS_IS_IMMUTABLE"]=287,t[e[288]="SPENDER_ACCOUNT_SAME_AS_OWNER"]=288,t[e[289]="AMOUNT_EXCEEDS_TOKEN_MAX_SUPPLY"]=289,t[e[290]="NEGATIVE_ALLOWANCE_AMOUNT"]=290,t[e[291]="CANNOT_APPROVE_FOR_ALL_FUNGIBLE_COMMON"]=291,t[e[292]="SPENDER_DOES_NOT_HAVE_ALLOWANCE"]=292,t[e[293]="AMOUNT_EXCEEDS_ALLOWANCE"]=293,t[e[294]="MAX_ALLOWANCES_EXCEEDED"]=294,t[e[295]="EMPTY_ALLOWANCES"]=295,t[e[296]="SPENDER_ACCOUNT_REPEATED_IN_ALLOWANCES"]=296,t[e[297]="REPEATED_SERIAL_NUMS_IN_NFT_ALLOWANCES"]=297,t[e[298]="FUNGIBLE_TOKEN_IN_NFT_ALLOWANCES"]=298,t[e[299]="NFT_IN_FUNGIBLE_TOKEN_ALLOWANCES"]=299,t[e[300]="INVALID_ALLOWANCE_OWNER_ID"]=300,t[e[301]="INVALID_ALLOWANCE_SPENDER_ID"]=301,t[e[302]="REPEATED_ALLOWANCES_TO_DELETE"]=302,t[e[303]="INVALID_DELEGATING_SPENDER"]=303,t[e[304]="DELEGATING_SPENDER_CANNOT_GRANT_APPROVE_FOR_ALL"]=304,t[e[305]="DELEGATING_SPENDER_DOES_NOT_HAVE_APPROVE_FOR_ALL"]=305,t[e[306]="SCHEDULE_EXPIRATION_TIME_TOO_FAR_IN_FUTURE"]=306,t[e[307]="SCHEDULE_EXPIRATION_TIME_MUST_BE_HIGHER_THAN_CONSENSUS_TIME"]=307,t[e[308]="SCHEDULE_FUTURE_THROTTLE_EXCEEDED"]=308,t[e[309]="SCHEDULE_FUTURE_GAS_LIMIT_EXCEEDED"]=309,t[e[310]="INVALID_ETHEREUM_TRANSACTION"]=310,t[e[311]="WRONG_CHAIN_ID"]=311,t[e[312]="WRONG_NONCE"]=312,t[e[313]="ACCESS_LIST_UNSUPPORTED"]=313,t[e[314]="SCHEDULE_PENDING_EXPIRATION"]=314,t[e[315]="CONTRACT_IS_TOKEN_TREASURY"]=315,t[e[316]="CONTRACT_HAS_NON_ZERO_TOKEN_BALANCES"]=316,t[e[317]="CONTRACT_EXPIRED_AND_PENDING_REMOVAL"]=317,t[e[318]="CONTRACT_HAS_NO_AUTO_RENEW_ACCOUNT"]=318,t[e[319]="PERMANENT_REMOVAL_REQUIRES_SYSTEM_INITIATION"]=319,t[e[320]="PROXY_ACCOUNT_ID_FIELD_IS_DEPRECATED"]=320,t[e[321]="SELF_STAKING_IS_NOT_ALLOWED"]=321,t[e[322]="INVALID_STAKING_ID"]=322,t[e[323]="STAKING_NOT_ENABLED"]=323,t[e[324]="INVALID_PRNG_RANGE"]=324,t[e[325]="MAX_ENTITIES_IN_PRICE_REGIME_HAVE_BEEN_CREATED"]=325,t[e[326]="INVALID_FULL_PREFIX_SIGNATURE_FOR_PRECOMPILE"]=326,t[e[327]="INSUFFICIENT_BALANCES_FOR_STORAGE_RENT"]=327,t[e[328]="MAX_CHILD_RECORDS_EXCEEDED"]=328,t[e[329]="INSUFFICIENT_BALANCES_FOR_RENEWAL_FEES"]=329,t[e[330]="TRANSACTION_HAS_UNKNOWN_FIELDS"]=330,t[e[331]="ACCOUNT_IS_IMMUTABLE"]=331,t[e[332]="ALIAS_ALREADY_ASSIGNED"]=332,t[e[333]="INVALID_METADATA_KEY"]=333,t[e[334]="TOKEN_HAS_NO_METADATA_KEY"]=334,t[e[335]="MISSING_TOKEN_METADATA"]=335,t[e[336]="MISSING_SERIAL_NUMBERS"]=336,t[e[337]="TOKEN_HAS_NO_ADMIN_KEY"]=337,t[e[338]="NODE_DELETED"]=338,t[e[339]="INVALID_NODE_ID"]=339,t[e[340]="INVALID_GOSSIP_ENDPOINT"]=340,t[e[341]="INVALID_NODE_ACCOUNT_ID"]=341,t[e[342]="INVALID_NODE_DESCRIPTION"]=342,t[e[343]="INVALID_SERVICE_ENDPOINT"]=343,t[e[344]="INVALID_GOSSIP_CAE_CERTIFICATE"]=344,t[e[345]="INVALID_GRPC_CERTIFICATE"]=345,t[e[346]="INVALID_MAX_AUTO_ASSOCIATIONS"]=346,t[e[347]="MAX_NODES_CREATED"]=347,t[e[348]="IP_FQDN_CANNOT_BE_SET_FOR_SAME_ENDPOINT"]=348,t[e[349]="GOSSIP_ENDPOINT_CANNOT_HAVE_FQDN"]=349,t[e[350]="FQDN_SIZE_TOO_LARGE"]=350,t[e[351]="INVALID_ENDPOINT"]=351,t[e[352]="GOSSIP_ENDPOINTS_EXCEEDED_LIMIT"]=352,t}(),GetBySolidityIDQuery:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.header=a.proto.QueryHeader.decode(e,e.uint32());break;case 2:i.solidityID=e.string();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.GetBySolidityIDQuery"},e}(),GetBySolidityIDResponse:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.header=a.proto.ResponseHeader.decode(e,e.uint32());break;case 2:i.accountID=a.proto.AccountID.decode(e,e.uint32());break;case 3:i.fileID=a.proto.FileID.decode(e,e.uint32());break;case 4:i.contractID=a.proto.ContractID.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.GetBySolidityIDResponse"},e}(),ContractLoginfo:function(){function e(e){if(this.topic=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.contractID=a.proto.ContractID.decode(e,e.uint32());break;case 2:i.bloom=e.bytes();break;case 3:i.topic&&i.topic.length||(i.topic=[]),i.topic.push(e.bytes());break;case 4:i.data=e.bytes();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractLoginfo"},e}(),ContractFunctionResult:function(){function e(e){if(this.logInfo=[],this.createdContractIDs=[],this.contractNonces=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.contractID=a.proto.ContractID.decode(e,e.uint32());break;case 2:i.contractCallResult=e.bytes();break;case 3:i.errorMessage=e.string();break;case 4:i.bloom=e.bytes();break;case 5:i.gasUsed=e.uint64();break;case 6:i.logInfo&&i.logInfo.length||(i.logInfo=[]),i.logInfo.push(a.proto.ContractLoginfo.decode(e,e.uint32()));break;case 7:i.createdContractIDs&&i.createdContractIDs.length||(i.createdContractIDs=[]),i.createdContractIDs.push(a.proto.ContractID.decode(e,e.uint32()));break;case 9:i.evmAddress=a.google.protobuf.BytesValue.decode(e,e.uint32());break;case 10:i.gas=e.int64();break;case 11:i.amount=e.int64();break;case 12:i.functionParameters=e.bytes();break;case 13:i.senderId=a.proto.AccountID.decode(e,e.uint32());break;case 14:i.contractNonces&&i.contractNonces.length||(i.contractNonces=[]),i.contractNonces.push(a.proto.ContractNonceInfo.decode(e,e.uint32()));break;case 15:i.signerNonce=a.google.protobuf.Int64Value.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractFunctionResult"},e}(),ContractCallLocalQuery:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.header=a.proto.QueryHeader.decode(e,e.uint32());break;case 2:i.contractID=a.proto.ContractID.decode(e,e.uint32());break;case 3:i.gas=e.int64();break;case 4:i.functionParameters=e.bytes();break;case 5:i.maxResultSize=e.int64();break;case 6:i.senderId=a.proto.AccountID.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractCallLocalQuery"},e}(),ContractCallLocalResponse:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.header=a.proto.ResponseHeader.decode(e,e.uint32());break;case 2:i.functionResult=a.proto.ContractFunctionResult.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractCallLocalResponse"},e}(),ContractNonceInfo:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.contractId=a.proto.ContractID.decode(e,e.uint32());break;case 2:i.nonce=e.int64();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractNonceInfo"},e}(),ContractGetInfoQuery:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.header=a.proto.QueryHeader.decode(e,e.uint32());break;case 2:i.contractID=a.proto.ContractID.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractGetInfoQuery"},e}(),ContractGetInfoResponse:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.header=a.proto.ResponseHeader.decode(e,e.uint32());break;case 2:i.contractInfo=a.proto.ContractGetInfoResponse.ContractInfo.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractGetInfoResponse"},e.ContractInfo=function(){function e(e){if(this.tokenRelationships=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.contractID=a.proto.ContractID.decode(e,e.uint32());break;case 2:i.accountID=a.proto.AccountID.decode(e,e.uint32());break;case 3:i.contractAccountID=e.string();break;case 4:i.adminKey=a.proto.Key.decode(e,e.uint32());break;case 5:i.expirationTime=a.proto.Timestamp.decode(e,e.uint32());break;case 6:i.autoRenewPeriod=a.proto.Duration.decode(e,e.uint32());break;case 7:i.storage=e.int64();break;case 8:i.memo=e.string();break;case 9:i.balance=e.uint64();break;case 10:i.deleted=e.bool();break;case 11:i.tokenRelationships&&i.tokenRelationships.length||(i.tokenRelationships=[]),i.tokenRelationships.push(a.proto.TokenRelationship.decode(e,e.uint32()));break;case 12:i.ledgerId=e.bytes();break;case 13:i.autoRenewAccountId=a.proto.AccountID.decode(e,e.uint32());break;case 14:i.maxAutomaticTokenAssociations=e.int32();break;case 15:i.stakingInfo=a.proto.StakingInfo.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractGetInfoResponse.ContractInfo"},e}(),e}(),ContractGetBytecodeQuery:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.header=a.proto.QueryHeader.decode(e,e.uint32());break;case 2:i.contractID=a.proto.ContractID.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractGetBytecodeQuery"},e}(),ContractGetBytecodeResponse:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.header=a.proto.ResponseHeader.decode(e,e.uint32());break;case 6:i.bytecode=e.bytes();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractGetBytecodeResponse"},e}(),ContractGetRecordsQuery:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.header=a.proto.QueryHeader.decode(e,e.uint32());break;case 2:i.contractID=a.proto.ContractID.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractGetRecordsQuery"},e}(),ContractGetRecordsResponse:function(){function e(e){if(this.records=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.header=a.proto.ResponseHeader.decode(e,e.uint32());break;case 2:i.contractID=a.proto.ContractID.decode(e,e.uint32());break;case 3:i.records&&i.records.length||(i.records=[]),i.records.push(a.proto.TransactionRecord.decode(e,e.uint32()));break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractGetRecordsResponse"},e}(),TransactionRecord:function(){function e(e){if(this.tokenTransferLists=[],this.assessedCustomFees=[],this.automaticTokenAssociations=[],this.paidStakingRewards=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.receipt=a.proto.TransactionReceipt.decode(e,e.uint32());break;case 2:i.transactionHash=e.bytes();break;case 3:i.consensusTimestamp=a.proto.Timestamp.decode(e,e.uint32());break;case 4:i.transactionID=a.proto.TransactionID.decode(e,e.uint32());break;case 5:i.memo=e.string();break;case 6:i.transactionFee=e.uint64();break;case 7:i.contractCallResult=a.proto.ContractFunctionResult.decode(e,e.uint32());break;case 8:i.contractCreateResult=a.proto.ContractFunctionResult.decode(e,e.uint32());break;case 10:i.transferList=a.proto.TransferList.decode(e,e.uint32());break;case 11:i.tokenTransferLists&&i.tokenTransferLists.length||(i.tokenTransferLists=[]),i.tokenTransferLists.push(a.proto.TokenTransferList.decode(e,e.uint32()));break;case 12:i.scheduleRef=a.proto.ScheduleID.decode(e,e.uint32());break;case 13:i.assessedCustomFees&&i.assessedCustomFees.length||(i.assessedCustomFees=[]),i.assessedCustomFees.push(a.proto.AssessedCustomFee.decode(e,e.uint32()));break;case 14:i.automaticTokenAssociations&&i.automaticTokenAssociations.length||(i.automaticTokenAssociations=[]),i.automaticTokenAssociations.push(a.proto.TokenAssociation.decode(e,e.uint32()));break;case 15:i.parentConsensusTimestamp=a.proto.Timestamp.decode(e,e.uint32());break;case 16:i.alias=e.bytes();break;case 17:i.ethereumHash=e.bytes();break;case 18:i.paidStakingRewards&&i.paidStakingRewards.length||(i.paidStakingRewards=[]),i.paidStakingRewards.push(a.proto.AccountAmount.decode(e,e.uint32()));break;case 19:i.prngBytes=e.bytes();break;case 20:i.prngNumber=e.int32();break;case 21:i.evmAddress=e.bytes();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TransactionRecord"},e}(),TransactionReceipt:function(){function e(e){if(this.serialNumbers=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.status=e.int32();break;case 2:i.accountID=a.proto.AccountID.decode(e,e.uint32());break;case 3:i.fileID=a.proto.FileID.decode(e,e.uint32());break;case 4:i.contractID=a.proto.ContractID.decode(e,e.uint32());break;case 5:i.exchangeRate=a.proto.ExchangeRateSet.decode(e,e.uint32());break;case 6:i.topicID=a.proto.TopicID.decode(e,e.uint32());break;case 7:i.topicSequenceNumber=e.uint64();break;case 8:i.topicRunningHash=e.bytes();break;case 9:i.topicRunningHashVersion=e.uint64();break;case 10:i.tokenID=a.proto.TokenID.decode(e,e.uint32());break;case 11:i.newTotalSupply=e.uint64();break;case 12:i.scheduleID=a.proto.ScheduleID.decode(e,e.uint32());break;case 13:i.scheduledTransactionID=a.proto.TransactionID.decode(e,e.uint32());break;case 14:if(i.serialNumbers&&i.serialNumbers.length||(i.serialNumbers=[]),2==(7&r))for(var s=e.uint32()+e.pos;e.pos>>3){case 1:i.hbarEquiv=e.int32();break;case 2:i.centEquiv=e.int32();break;case 3:i.expirationTime=a.proto.TimestampSeconds.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ExchangeRate"},e}(),ExchangeRateSet:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.currentRate=a.proto.ExchangeRate.decode(e,e.uint32());break;case 2:i.nextRate=a.proto.ExchangeRate.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ExchangeRateSet"},e}(),CryptoGetAccountBalanceQuery:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.header=a.proto.QueryHeader.decode(e,e.uint32());break;case 2:i.accountID=a.proto.AccountID.decode(e,e.uint32());break;case 3:i.contractID=a.proto.ContractID.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoGetAccountBalanceQuery"},e}(),CryptoGetAccountBalanceResponse:function(){function e(e){if(this.tokenBalances=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.header=a.proto.ResponseHeader.decode(e,e.uint32());break;case 2:i.accountID=a.proto.AccountID.decode(e,e.uint32());break;case 3:i.balance=e.uint64();break;case 4:i.tokenBalances&&i.tokenBalances.length||(i.tokenBalances=[]),i.tokenBalances.push(a.proto.TokenBalance.decode(e,e.uint32()));break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoGetAccountBalanceResponse"},e}(),CryptoGetAccountRecordsQuery:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.header=a.proto.QueryHeader.decode(e,e.uint32());break;case 2:i.accountID=a.proto.AccountID.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoGetAccountRecordsQuery"},e}(),CryptoGetAccountRecordsResponse:function(){function e(e){if(this.records=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.header=a.proto.ResponseHeader.decode(e,e.uint32());break;case 2:i.accountID=a.proto.AccountID.decode(e,e.uint32());break;case 3:i.records&&i.records.length||(i.records=[]),i.records.push(a.proto.TransactionRecord.decode(e,e.uint32()));break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoGetAccountRecordsResponse"},e}(),CryptoGetInfoQuery:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.header=a.proto.QueryHeader.decode(e,e.uint32());break;case 2:i.accountID=a.proto.AccountID.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoGetInfoQuery"},e}(),CryptoGetInfoResponse:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.header=a.proto.ResponseHeader.decode(e,e.uint32());break;case 2:i.accountInfo=a.proto.CryptoGetInfoResponse.AccountInfo.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoGetInfoResponse"},e.AccountInfo=function(){function e(e){if(this.liveHashes=[],this.tokenRelationships=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.accountID=a.proto.AccountID.decode(e,e.uint32());break;case 2:i.contractAccountID=e.string();break;case 3:i.deleted=e.bool();break;case 4:i.proxyAccountID=a.proto.AccountID.decode(e,e.uint32());break;case 6:i.proxyReceived=e.int64();break;case 7:i.key=a.proto.Key.decode(e,e.uint32());break;case 8:i.balance=e.uint64();break;case 9:i.generateSendRecordThreshold=e.uint64();break;case 10:i.generateReceiveRecordThreshold=e.uint64();break;case 11:i.receiverSigRequired=e.bool();break;case 12:i.expirationTime=a.proto.Timestamp.decode(e,e.uint32());break;case 13:i.autoRenewPeriod=a.proto.Duration.decode(e,e.uint32());break;case 14:i.liveHashes&&i.liveHashes.length||(i.liveHashes=[]),i.liveHashes.push(a.proto.LiveHash.decode(e,e.uint32()));break;case 15:i.tokenRelationships&&i.tokenRelationships.length||(i.tokenRelationships=[]),i.tokenRelationships.push(a.proto.TokenRelationship.decode(e,e.uint32()));break;case 16:i.memo=e.string();break;case 17:i.ownedNfts=e.int64();break;case 18:i.maxAutomaticTokenAssociations=e.int32();break;case 19:i.alias=e.bytes();break;case 20:i.ledgerId=e.bytes();break;case 21:i.ethereumNonce=e.int64();break;case 22:i.stakingInfo=a.proto.StakingInfo.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoGetInfoResponse.AccountInfo"},e}(),e}(),CryptoGetLiveHashQuery:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.header=a.proto.QueryHeader.decode(e,e.uint32());break;case 2:i.accountID=a.proto.AccountID.decode(e,e.uint32());break;case 3:i.hash=e.bytes();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoGetLiveHashQuery"},e}(),CryptoGetLiveHashResponse:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.header=a.proto.ResponseHeader.decode(e,e.uint32());break;case 2:i.liveHash=a.proto.LiveHash.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoGetLiveHashResponse"},e}(),CryptoGetStakersQuery:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.header=a.proto.QueryHeader.decode(e,e.uint32());break;case 2:i.accountID=a.proto.AccountID.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoGetStakersQuery"},e}(),ProxyStaker:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.accountID=a.proto.AccountID.decode(e,e.uint32());break;case 2:i.amount=e.int64();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ProxyStaker"},e}(),AllProxyStakers:function(){function e(e){if(this.proxyStaker=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.accountID=a.proto.AccountID.decode(e,e.uint32());break;case 2:i.proxyStaker&&i.proxyStaker.length||(i.proxyStaker=[]),i.proxyStaker.push(a.proto.ProxyStaker.decode(e,e.uint32()));break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.AllProxyStakers"},e}(),CryptoGetStakersResponse:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.header=a.proto.ResponseHeader.decode(e,e.uint32());break;case 3:i.stakers=a.proto.AllProxyStakers.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.CryptoGetStakersResponse"},e}(),FileGetContentsQuery:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.header=a.proto.QueryHeader.decode(e,e.uint32());break;case 2:i.fileID=a.proto.FileID.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FileGetContentsQuery"},e}(),FileGetContentsResponse:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.header=a.proto.ResponseHeader.decode(e,e.uint32());break;case 2:i.fileContents=a.proto.FileGetContentsResponse.FileContents.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FileGetContentsResponse"},e.FileContents=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.fileID=a.proto.FileID.decode(e,e.uint32());break;case 2:i.contents=e.bytes();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FileGetContentsResponse.FileContents"},e}(),e}(),FileGetInfoQuery:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.header=a.proto.QueryHeader.decode(e,e.uint32());break;case 2:i.fileID=a.proto.FileID.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FileGetInfoQuery"},e}(),FileGetInfoResponse:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.header=a.proto.ResponseHeader.decode(e,e.uint32());break;case 2:i.fileInfo=a.proto.FileGetInfoResponse.FileInfo.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FileGetInfoResponse"},e.FileInfo=function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.fileID=a.proto.FileID.decode(e,e.uint32());break;case 2:i.size=e.int64();break;case 3:i.expirationTime=a.proto.Timestamp.decode(e,e.uint32());break;case 4:i.deleted=e.bool();break;case 5:i.keys=a.proto.KeyList.decode(e,e.uint32());break;case 6:i.memo=e.string();break;case 7:i.ledgerId=e.bytes();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.FileGetInfoResponse.FileInfo"},e}(),e}(),TransactionGetReceiptQuery:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.header=a.proto.QueryHeader.decode(e,e.uint32());break;case 2:i.transactionID=a.proto.TransactionID.decode(e,e.uint32());break;case 3:i.includeDuplicates=e.bool();break;case 4:i.includeChildReceipts=e.bool();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TransactionGetReceiptQuery"},e}(),TransactionGetReceiptResponse:function(){function e(e){if(this.duplicateTransactionReceipts=[],this.childTransactionReceipts=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.header=a.proto.ResponseHeader.decode(e,e.uint32());break;case 2:i.receipt=a.proto.TransactionReceipt.decode(e,e.uint32());break;case 4:i.duplicateTransactionReceipts&&i.duplicateTransactionReceipts.length||(i.duplicateTransactionReceipts=[]),i.duplicateTransactionReceipts.push(a.proto.TransactionReceipt.decode(e,e.uint32()));break;case 5:i.childTransactionReceipts&&i.childTransactionReceipts.length||(i.childTransactionReceipts=[]),i.childTransactionReceipts.push(a.proto.TransactionReceipt.decode(e,e.uint32()));break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TransactionGetReceiptResponse"},e}(),TransactionGetRecordQuery:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.header=a.proto.QueryHeader.decode(e,e.uint32());break;case 2:i.transactionID=a.proto.TransactionID.decode(e,e.uint32());break;case 3:i.includeDuplicates=e.bool();break;case 4:i.includeChildRecords=e.bool();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TransactionGetRecordQuery"},e}(),TransactionGetRecordResponse:function(){function e(e){if(this.duplicateTransactionRecords=[],this.childTransactionRecords=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.header=a.proto.ResponseHeader.decode(e,e.uint32());break;case 3:i.transactionRecord=a.proto.TransactionRecord.decode(e,e.uint32());break;case 4:i.duplicateTransactionRecords&&i.duplicateTransactionRecords.length||(i.duplicateTransactionRecords=[]),i.duplicateTransactionRecords.push(a.proto.TransactionRecord.decode(e,e.uint32()));break;case 5:i.childTransactionRecords&&i.childTransactionRecords.length||(i.childTransactionRecords=[]),i.childTransactionRecords.push(a.proto.TransactionRecord.decode(e,e.uint32()));break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TransactionGetRecordResponse"},e}(),TransactionGetFastRecordQuery:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.header=a.proto.QueryHeader.decode(e,e.uint32());break;case 2:i.transactionID=a.proto.TransactionID.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TransactionGetFastRecordQuery"},e}(),TransactionGetFastRecordResponse:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.header=a.proto.ResponseHeader.decode(e,e.uint32());break;case 2:i.transactionRecord=a.proto.TransactionRecord.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TransactionGetFastRecordResponse"},e}(),ConsensusGetTopicInfoQuery:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.header=a.proto.QueryHeader.decode(e,e.uint32());break;case 2:i.topicID=a.proto.TopicID.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ConsensusGetTopicInfoQuery"},e}(),ConsensusGetTopicInfoResponse:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.header=a.proto.ResponseHeader.decode(e,e.uint32());break;case 2:i.topicID=a.proto.TopicID.decode(e,e.uint32());break;case 5:i.topicInfo=a.proto.ConsensusTopicInfo.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ConsensusGetTopicInfoResponse"},e}(),ConsensusTopicInfo:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.memo=e.string();break;case 2:i.runningHash=e.bytes();break;case 3:i.sequenceNumber=e.uint64();break;case 4:i.expirationTime=a.proto.Timestamp.decode(e,e.uint32());break;case 5:i.adminKey=a.proto.Key.decode(e,e.uint32());break;case 6:i.submitKey=a.proto.Key.decode(e,e.uint32());break;case 7:i.autoRenewPeriod=a.proto.Duration.decode(e,e.uint32());break;case 8:i.autoRenewAccount=a.proto.AccountID.decode(e,e.uint32());break;case 9:i.ledgerId=e.bytes();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ConsensusTopicInfo"},e}(),NetworkGetVersionInfoQuery:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3?i.header=a.proto.QueryHeader.decode(e,e.uint32()):e.skipType(7&r);return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.NetworkGetVersionInfoQuery"},e}(),NetworkGetVersionInfoResponse:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.header=a.proto.ResponseHeader.decode(e,e.uint32());break;case 2:i.hapiProtoVersion=a.proto.SemanticVersion.decode(e,e.uint32());break;case 3:i.hederaServicesVersion=a.proto.SemanticVersion.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.NetworkGetVersionInfoResponse"},e}(),NetworkGetExecutionTimeQuery:function(){function e(e){if(this.transactionIds=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.header=a.proto.QueryHeader.decode(e,e.uint32());break;case 2:i.transactionIds&&i.transactionIds.length||(i.transactionIds=[]),i.transactionIds.push(a.proto.TransactionID.decode(e,e.uint32()));break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.NetworkGetExecutionTimeQuery"},e}(),NetworkGetExecutionTimeResponse:function(){function e(e){if(this.executionTimes=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.header=a.proto.ResponseHeader.decode(e,e.uint32());break;case 2:if(i.executionTimes&&i.executionTimes.length||(i.executionTimes=[]),2==(7&r))for(var s=e.uint32()+e.pos;e.pos>>3){case 1:i.header=a.proto.QueryHeader.decode(e,e.uint32());break;case 2:i.token=a.proto.TokenID.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenGetInfoQuery"},e}(),TokenInfo:function(){function e(e){if(this.customFees=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.tokenId=a.proto.TokenID.decode(e,e.uint32());break;case 2:i.name=e.string();break;case 3:i.symbol=e.string();break;case 4:i.decimals=e.uint32();break;case 5:i.totalSupply=e.uint64();break;case 6:i.treasury=a.proto.AccountID.decode(e,e.uint32());break;case 7:i.adminKey=a.proto.Key.decode(e,e.uint32());break;case 8:i.kycKey=a.proto.Key.decode(e,e.uint32());break;case 9:i.freezeKey=a.proto.Key.decode(e,e.uint32());break;case 10:i.wipeKey=a.proto.Key.decode(e,e.uint32());break;case 11:i.supplyKey=a.proto.Key.decode(e,e.uint32());break;case 12:i.defaultFreezeStatus=e.int32();break;case 13:i.defaultKycStatus=e.int32();break;case 14:i.deleted=e.bool();break;case 15:i.autoRenewAccount=a.proto.AccountID.decode(e,e.uint32());break;case 16:i.autoRenewPeriod=a.proto.Duration.decode(e,e.uint32());break;case 17:i.expiry=a.proto.Timestamp.decode(e,e.uint32());break;case 18:i.memo=e.string();break;case 19:i.tokenType=e.int32();break;case 20:i.supplyType=e.int32();break;case 21:i.maxSupply=e.int64();break;case 22:i.feeScheduleKey=a.proto.Key.decode(e,e.uint32());break;case 23:i.customFees&&i.customFees.length||(i.customFees=[]),i.customFees.push(a.proto.CustomFee.decode(e,e.uint32()));break;case 24:i.pauseKey=a.proto.Key.decode(e,e.uint32());break;case 25:i.pauseStatus=e.int32();break;case 26:i.ledgerId=e.bytes();break;case 27:i.metadata=e.bytes();break;case 28:i.metadataKey=a.proto.Key.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenInfo"},e}(),TokenGetInfoResponse:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.header=a.proto.ResponseHeader.decode(e,e.uint32());break;case 2:i.tokenInfo=a.proto.TokenInfo.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenGetInfoResponse"},e}(),ScheduleGetInfoQuery:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.header=a.proto.QueryHeader.decode(e,e.uint32());break;case 2:i.scheduleID=a.proto.ScheduleID.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ScheduleGetInfoQuery"},e}(),ScheduleInfo:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.scheduleID=a.proto.ScheduleID.decode(e,e.uint32());break;case 2:i.deletionTime=a.proto.Timestamp.decode(e,e.uint32());break;case 3:i.executionTime=a.proto.Timestamp.decode(e,e.uint32());break;case 4:i.expirationTime=a.proto.Timestamp.decode(e,e.uint32());break;case 5:i.scheduledTransactionBody=a.proto.SchedulableTransactionBody.decode(e,e.uint32());break;case 6:i.memo=e.string();break;case 7:i.adminKey=a.proto.Key.decode(e,e.uint32());break;case 8:i.signers=a.proto.KeyList.decode(e,e.uint32());break;case 9:i.creatorAccountID=a.proto.AccountID.decode(e,e.uint32());break;case 10:i.payerAccountID=a.proto.AccountID.decode(e,e.uint32());break;case 11:i.scheduledTransactionID=a.proto.TransactionID.decode(e,e.uint32());break;case 12:i.ledgerId=e.bytes();break;case 13:i.waitForExpiry=e.bool();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ScheduleInfo"},e}(),ScheduleGetInfoResponse:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.header=a.proto.ResponseHeader.decode(e,e.uint32());break;case 2:i.scheduleInfo=a.proto.ScheduleInfo.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ScheduleGetInfoResponse"},e}(),TokenGetAccountNftInfosQuery:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.header=a.proto.QueryHeader.decode(e,e.uint32());break;case 2:i.accountID=a.proto.AccountID.decode(e,e.uint32());break;case 3:i.start=e.int64();break;case 4:i.end=e.int64();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenGetAccountNftInfosQuery"},e}(),TokenGetAccountNftInfosResponse:function(){function e(e){if(this.nfts=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.header=a.proto.ResponseHeader.decode(e,e.uint32());break;case 2:i.nfts&&i.nfts.length||(i.nfts=[]),i.nfts.push(a.proto.TokenNftInfo.decode(e,e.uint32()));break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenGetAccountNftInfosResponse"},e}(),TokenGetNftInfoQuery:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.header=a.proto.QueryHeader.decode(e,e.uint32());break;case 2:i.nftID=a.proto.NftID.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenGetNftInfoQuery"},e}(),TokenNftInfo:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.nftID=a.proto.NftID.decode(e,e.uint32());break;case 2:i.accountID=a.proto.AccountID.decode(e,e.uint32());break;case 3:i.creationTime=a.proto.Timestamp.decode(e,e.uint32());break;case 4:i.metadata=e.bytes();break;case 5:i.ledgerId=e.bytes();break;case 6:i.spenderId=a.proto.AccountID.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenNftInfo"},e}(),TokenGetNftInfoResponse:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.header=a.proto.ResponseHeader.decode(e,e.uint32());break;case 2:i.nft=a.proto.TokenNftInfo.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenGetNftInfoResponse"},e}(),TokenGetNftInfosQuery:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.header=a.proto.QueryHeader.decode(e,e.uint32());break;case 2:i.tokenID=a.proto.TokenID.decode(e,e.uint32());break;case 3:i.start=e.int64();break;case 4:i.end=e.int64();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenGetNftInfosQuery"},e}(),TokenGetNftInfosResponse:function(){function e(e){if(this.nfts=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.header=a.proto.ResponseHeader.decode(e,e.uint32());break;case 2:i.tokenID=a.proto.TokenID.decode(e,e.uint32());break;case 3:i.nfts&&i.nfts.length||(i.nfts=[]),i.nfts.push(a.proto.TokenNftInfo.decode(e,e.uint32()));break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenGetNftInfosResponse"},e}(),GetAccountDetailsQuery:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.header=a.proto.QueryHeader.decode(e,e.uint32());break;case 2:i.accountId=a.proto.AccountID.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.GetAccountDetailsQuery"},e}(),GetAccountDetailsResponse:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.header=a.proto.ResponseHeader.decode(e,e.uint32());break;case 2:i.accountDetails=a.proto.GetAccountDetailsResponse.AccountDetails.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.GetAccountDetailsResponse"},e.AccountDetails=function(){function e(e){if(this.tokenRelationships=[],this.grantedCryptoAllowances=[],this.grantedNftAllowances=[],this.grantedTokenAllowances=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.accountId=a.proto.AccountID.decode(e,e.uint32());break;case 2:i.contractAccountId=e.string();break;case 3:i.deleted=e.bool();break;case 4:i.proxyAccountId=a.proto.AccountID.decode(e,e.uint32());break;case 5:i.proxyReceived=e.int64();break;case 6:i.key=a.proto.Key.decode(e,e.uint32());break;case 7:i.balance=e.uint64();break;case 8:i.receiverSigRequired=e.bool();break;case 9:i.expirationTime=a.proto.Timestamp.decode(e,e.uint32());break;case 10:i.autoRenewPeriod=a.proto.Duration.decode(e,e.uint32());break;case 11:i.tokenRelationships&&i.tokenRelationships.length||(i.tokenRelationships=[]),i.tokenRelationships.push(a.proto.TokenRelationship.decode(e,e.uint32()));break;case 12:i.memo=e.string();break;case 13:i.ownedNfts=e.int64();break;case 14:i.maxAutomaticTokenAssociations=e.int32();break;case 15:i.alias=e.bytes();break;case 16:i.ledgerId=e.bytes();break;case 17:i.grantedCryptoAllowances&&i.grantedCryptoAllowances.length||(i.grantedCryptoAllowances=[]),i.grantedCryptoAllowances.push(a.proto.GrantedCryptoAllowance.decode(e,e.uint32()));break;case 18:i.grantedNftAllowances&&i.grantedNftAllowances.length||(i.grantedNftAllowances=[]),i.grantedNftAllowances.push(a.proto.GrantedNftAllowance.decode(e,e.uint32()));break;case 19:i.grantedTokenAllowances&&i.grantedTokenAllowances.length||(i.grantedTokenAllowances=[]),i.grantedTokenAllowances.push(a.proto.GrantedTokenAllowance.decode(e,e.uint32()));break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.GetAccountDetailsResponse.AccountDetails"},e}(),e}(),GrantedCryptoAllowance:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.spender=a.proto.AccountID.decode(e,e.uint32());break;case 2:i.amount=e.int64();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.GrantedCryptoAllowance"},e}(),GrantedNftAllowance:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.tokenId=a.proto.TokenID.decode(e,e.uint32());break;case 2:i.spender=a.proto.AccountID.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.GrantedNftAllowance"},e}(),GrantedTokenAllowance:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.tokenId=a.proto.TokenID.decode(e,e.uint32());break;case 2:i.spender=a.proto.AccountID.decode(e,e.uint32());break;case 3:i.amount=e.int64();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.GrantedTokenAllowance"},e}(),NodeGetInfoQuery:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.header=a.proto.QueryHeader.decode(e,e.uint32());break;case 2:i.nodeId=e.uint64();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.NodeGetInfoQuery"},e}(),NodeInfo:function(){function e(e){if(this.gossipEndpoint=[],this.serviceEndpoint=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.nodeId=e.uint64();break;case 2:i.accountId=a.proto.AccountID.decode(e,e.uint32());break;case 3:i.description=e.string();break;case 4:i.gossipEndpoint&&i.gossipEndpoint.length||(i.gossipEndpoint=[]),i.gossipEndpoint.push(a.proto.ServiceEndpoint.decode(e,e.uint32()));break;case 5:i.serviceEndpoint&&i.serviceEndpoint.length||(i.serviceEndpoint=[]),i.serviceEndpoint.push(a.proto.ServiceEndpoint.decode(e,e.uint32()));break;case 6:i.gossipCaCertificate=e.bytes();break;case 7:i.grpcCertificateHash=e.bytes();break;case 8:i.weight=e.uint64();break;case 10:i.deleted=e.bool();break;case 9:i.ledgerId=e.bytes();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.NodeInfo"},e}(),NodeGetInfoResponse:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.header=a.proto.ResponseHeader.decode(e,e.uint32());break;case 2:i.nodeInfo=a.proto.NodeInfo.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.NodeGetInfoResponse"},e}(),Response:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.getByKey=a.proto.GetByKeyResponse.decode(e,e.uint32());break;case 2:i.getBySolidityID=a.proto.GetBySolidityIDResponse.decode(e,e.uint32());break;case 3:i.contractCallLocal=a.proto.ContractCallLocalResponse.decode(e,e.uint32());break;case 5:i.contractGetBytecodeResponse=a.proto.ContractGetBytecodeResponse.decode(e,e.uint32());break;case 4:i.contractGetInfo=a.proto.ContractGetInfoResponse.decode(e,e.uint32());break;case 6:i.contractGetRecordsResponse=a.proto.ContractGetRecordsResponse.decode(e,e.uint32());break;case 7:i.cryptogetAccountBalance=a.proto.CryptoGetAccountBalanceResponse.decode(e,e.uint32());break;case 8:i.cryptoGetAccountRecords=a.proto.CryptoGetAccountRecordsResponse.decode(e,e.uint32());break;case 9:i.cryptoGetInfo=a.proto.CryptoGetInfoResponse.decode(e,e.uint32());break;case 10:i.cryptoGetLiveHash=a.proto.CryptoGetLiveHashResponse.decode(e,e.uint32());break;case 11:i.cryptoGetProxyStakers=a.proto.CryptoGetStakersResponse.decode(e,e.uint32());break;case 12:i.fileGetContents=a.proto.FileGetContentsResponse.decode(e,e.uint32());break;case 13:i.fileGetInfo=a.proto.FileGetInfoResponse.decode(e,e.uint32());break;case 14:i.transactionGetReceipt=a.proto.TransactionGetReceiptResponse.decode(e,e.uint32());break;case 15:i.transactionGetRecord=a.proto.TransactionGetRecordResponse.decode(e,e.uint32());break;case 16:i.transactionGetFastRecord=a.proto.TransactionGetFastRecordResponse.decode(e,e.uint32());break;case 150:i.consensusGetTopicInfo=a.proto.ConsensusGetTopicInfoResponse.decode(e,e.uint32());break;case 151:i.networkGetVersionInfo=a.proto.NetworkGetVersionInfoResponse.decode(e,e.uint32());break;case 152:i.tokenGetInfo=a.proto.TokenGetInfoResponse.decode(e,e.uint32());break;case 153:i.scheduleGetInfo=a.proto.ScheduleGetInfoResponse.decode(e,e.uint32());break;case 154:i.tokenGetAccountNftInfos=a.proto.TokenGetAccountNftInfosResponse.decode(e,e.uint32());break;case 155:i.tokenGetNftInfo=a.proto.TokenGetNftInfoResponse.decode(e,e.uint32());break;case 156:i.tokenGetNftInfos=a.proto.TokenGetNftInfosResponse.decode(e,e.uint32());break;case 157:i.networkGetExecutionTime=a.proto.NetworkGetExecutionTimeResponse.decode(e,e.uint32());break;case 158:i.accountDetails=a.proto.GetAccountDetailsResponse.decode(e,e.uint32());break;case 159:i.nodeGetInfo=a.proto.NodeGetInfoResponse.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.Response"},e}(),TransactionResponse:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.nodeTransactionPrecheckCode=e.int32();break;case 2:i.cost=e.uint64();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TransactionResponse"},e}(),ConsensusService:function(){function e(e,r,n){t.rpc.Service.call(this,e,r,n)}return(e.prototype=Object.create(t.rpc.Service.prototype)).constructor=e,e.create=function(e,t,r){return new this(e,t,r)},Object.defineProperty(e.prototype.createTopic=function e(t,r){return this.rpcCall(e,a.proto.Transaction,a.proto.TransactionResponse,t,r)},"name",{value:"createTopic"}),Object.defineProperty(e.prototype.updateTopic=function e(t,r){return this.rpcCall(e,a.proto.Transaction,a.proto.TransactionResponse,t,r)},"name",{value:"updateTopic"}),Object.defineProperty(e.prototype.deleteTopic=function e(t,r){return this.rpcCall(e,a.proto.Transaction,a.proto.TransactionResponse,t,r)},"name",{value:"deleteTopic"}),Object.defineProperty(e.prototype.getTopicInfo=function e(t,r){return this.rpcCall(e,a.proto.Query,a.proto.Response,t,r)},"name",{value:"getTopicInfo"}),Object.defineProperty(e.prototype.submitMessage=function e(t,r){return this.rpcCall(e,a.proto.Transaction,a.proto.TransactionResponse,t,r)},"name",{value:"submitMessage"}),e}(),CryptoService:function(){function e(e,r,n){t.rpc.Service.call(this,e,r,n)}return(e.prototype=Object.create(t.rpc.Service.prototype)).constructor=e,e.create=function(e,t,r){return new this(e,t,r)},Object.defineProperty(e.prototype.createAccount=function e(t,r){return this.rpcCall(e,a.proto.Transaction,a.proto.TransactionResponse,t,r)},"name",{value:"createAccount"}),Object.defineProperty(e.prototype.updateAccount=function e(t,r){return this.rpcCall(e,a.proto.Transaction,a.proto.TransactionResponse,t,r)},"name",{value:"updateAccount"}),Object.defineProperty(e.prototype.cryptoTransfer=function e(t,r){return this.rpcCall(e,a.proto.Transaction,a.proto.TransactionResponse,t,r)},"name",{value:"cryptoTransfer"}),Object.defineProperty(e.prototype.cryptoDelete=function e(t,r){return this.rpcCall(e,a.proto.Transaction,a.proto.TransactionResponse,t,r)},"name",{value:"cryptoDelete"}),Object.defineProperty(e.prototype.approveAllowances=function e(t,r){return this.rpcCall(e,a.proto.Transaction,a.proto.TransactionResponse,t,r)},"name",{value:"approveAllowances"}),Object.defineProperty(e.prototype.deleteAllowances=function e(t,r){return this.rpcCall(e,a.proto.Transaction,a.proto.TransactionResponse,t,r)},"name",{value:"deleteAllowances"}),Object.defineProperty(e.prototype.addLiveHash=function e(t,r){return this.rpcCall(e,a.proto.Transaction,a.proto.TransactionResponse,t,r)},"name",{value:"addLiveHash"}),Object.defineProperty(e.prototype.deleteLiveHash=function e(t,r){return this.rpcCall(e,a.proto.Transaction,a.proto.TransactionResponse,t,r)},"name",{value:"deleteLiveHash"}),Object.defineProperty(e.prototype.getLiveHash=function e(t,r){return this.rpcCall(e,a.proto.Query,a.proto.Response,t,r)},"name",{value:"getLiveHash"}),Object.defineProperty(e.prototype.getAccountRecords=function e(t,r){return this.rpcCall(e,a.proto.Query,a.proto.Response,t,r)},"name",{value:"getAccountRecords"}),Object.defineProperty(e.prototype.cryptoGetBalance=function e(t,r){return this.rpcCall(e,a.proto.Query,a.proto.Response,t,r)},"name",{value:"cryptoGetBalance"}),Object.defineProperty(e.prototype.getAccountInfo=function e(t,r){return this.rpcCall(e,a.proto.Query,a.proto.Response,t,r)},"name",{value:"getAccountInfo"}),Object.defineProperty(e.prototype.getTransactionReceipts=function e(t,r){return this.rpcCall(e,a.proto.Query,a.proto.Response,t,r)},"name",{value:"getTransactionReceipts"}),Object.defineProperty(e.prototype.getFastTransactionRecord=function e(t,r){return this.rpcCall(e,a.proto.Query,a.proto.Response,t,r)},"name",{value:"getFastTransactionRecord"}),Object.defineProperty(e.prototype.getTxRecordByTxID=function e(t,r){return this.rpcCall(e,a.proto.Query,a.proto.Response,t,r)},"name",{value:"getTxRecordByTxID"}),Object.defineProperty(e.prototype.getStakersByAccountID=function e(t,r){return this.rpcCall(e,a.proto.Query,a.proto.Response,t,r)},"name",{value:"getStakersByAccountID"}),e}(),FileService:function(){function e(e,r,n){t.rpc.Service.call(this,e,r,n)}return(e.prototype=Object.create(t.rpc.Service.prototype)).constructor=e,e.create=function(e,t,r){return new this(e,t,r)},Object.defineProperty(e.prototype.createFile=function e(t,r){return this.rpcCall(e,a.proto.Transaction,a.proto.TransactionResponse,t,r)},"name",{value:"createFile"}),Object.defineProperty(e.prototype.updateFile=function e(t,r){return this.rpcCall(e,a.proto.Transaction,a.proto.TransactionResponse,t,r)},"name",{value:"updateFile"}),Object.defineProperty(e.prototype.deleteFile=function e(t,r){return this.rpcCall(e,a.proto.Transaction,a.proto.TransactionResponse,t,r)},"name",{value:"deleteFile"}),Object.defineProperty(e.prototype.appendContent=function e(t,r){return this.rpcCall(e,a.proto.Transaction,a.proto.TransactionResponse,t,r)},"name",{value:"appendContent"}),Object.defineProperty(e.prototype.getFileContent=function e(t,r){return this.rpcCall(e,a.proto.Query,a.proto.Response,t,r)},"name",{value:"getFileContent"}),Object.defineProperty(e.prototype.getFileInfo=function e(t,r){return this.rpcCall(e,a.proto.Query,a.proto.Response,t,r)},"name",{value:"getFileInfo"}),Object.defineProperty(e.prototype.systemDelete=function e(t,r){return this.rpcCall(e,a.proto.Transaction,a.proto.TransactionResponse,t,r)},"name",{value:"systemDelete"}),Object.defineProperty(e.prototype.systemUndelete=function e(t,r){return this.rpcCall(e,a.proto.Transaction,a.proto.TransactionResponse,t,r)},"name",{value:"systemUndelete"}),e}(),FreezeService:function(){function e(e,r,n){t.rpc.Service.call(this,e,r,n)}return(e.prototype=Object.create(t.rpc.Service.prototype)).constructor=e,e.create=function(e,t,r){return new this(e,t,r)},Object.defineProperty(e.prototype.freeze=function e(t,r){return this.rpcCall(e,a.proto.Transaction,a.proto.TransactionResponse,t,r)},"name",{value:"freeze"}),e}(),NetworkService:function(){function e(e,r,n){t.rpc.Service.call(this,e,r,n)}return(e.prototype=Object.create(t.rpc.Service.prototype)).constructor=e,e.create=function(e,t,r){return new this(e,t,r)},Object.defineProperty(e.prototype.getVersionInfo=function e(t,r){return this.rpcCall(e,a.proto.Query,a.proto.Response,t,r)},"name",{value:"getVersionInfo"}),Object.defineProperty(e.prototype.getExecutionTime=function e(t,r){return this.rpcCall(e,a.proto.Query,a.proto.Response,t,r)},"name",{value:"getExecutionTime"}),Object.defineProperty(e.prototype.uncheckedSubmit=function e(t,r){return this.rpcCall(e,a.proto.Transaction,a.proto.TransactionResponse,t,r)},"name",{value:"uncheckedSubmit"}),Object.defineProperty(e.prototype.getAccountDetails=function e(t,r){return this.rpcCall(e,a.proto.Query,a.proto.Response,t,r)},"name",{value:"getAccountDetails"}),e}(),ScheduleService:function(){function e(e,r,n){t.rpc.Service.call(this,e,r,n)}return(e.prototype=Object.create(t.rpc.Service.prototype)).constructor=e,e.create=function(e,t,r){return new this(e,t,r)},Object.defineProperty(e.prototype.createSchedule=function e(t,r){return this.rpcCall(e,a.proto.Transaction,a.proto.TransactionResponse,t,r)},"name",{value:"createSchedule"}),Object.defineProperty(e.prototype.signSchedule=function e(t,r){return this.rpcCall(e,a.proto.Transaction,a.proto.TransactionResponse,t,r)},"name",{value:"signSchedule"}),Object.defineProperty(e.prototype.deleteSchedule=function e(t,r){return this.rpcCall(e,a.proto.Transaction,a.proto.TransactionResponse,t,r)},"name",{value:"deleteSchedule"}),Object.defineProperty(e.prototype.getScheduleInfo=function e(t,r){return this.rpcCall(e,a.proto.Query,a.proto.Response,t,r)},"name",{value:"getScheduleInfo"}),e}(),SmartContractService:function(){function e(e,r,n){t.rpc.Service.call(this,e,r,n)}return(e.prototype=Object.create(t.rpc.Service.prototype)).constructor=e,e.create=function(e,t,r){return new this(e,t,r)},Object.defineProperty(e.prototype.createContract=function e(t,r){return this.rpcCall(e,a.proto.Transaction,a.proto.TransactionResponse,t,r)},"name",{value:"createContract"}),Object.defineProperty(e.prototype.updateContract=function e(t,r){return this.rpcCall(e,a.proto.Transaction,a.proto.TransactionResponse,t,r)},"name",{value:"updateContract"}),Object.defineProperty(e.prototype.contractCallMethod=function e(t,r){return this.rpcCall(e,a.proto.Transaction,a.proto.TransactionResponse,t,r)},"name",{value:"contractCallMethod"}),Object.defineProperty(e.prototype.getContractInfo=function e(t,r){return this.rpcCall(e,a.proto.Query,a.proto.Response,t,r)},"name",{value:"getContractInfo"}),Object.defineProperty(e.prototype.contractCallLocalMethod=function e(t,r){return this.rpcCall(e,a.proto.Query,a.proto.Response,t,r)},"name",{value:"contractCallLocalMethod"}),Object.defineProperty(e.prototype.contractGetBytecode=function e(t,r){return this.rpcCall(e,a.proto.Query,a.proto.Response,t,r)},"name",{value:"ContractGetBytecode"}),Object.defineProperty(e.prototype.getBySolidityID=function e(t,r){return this.rpcCall(e,a.proto.Query,a.proto.Response,t,r)},"name",{value:"getBySolidityID"}),Object.defineProperty(e.prototype.getTxRecordByContractID=function e(t,r){return this.rpcCall(e,a.proto.Query,a.proto.Response,t,r)},"name",{value:"getTxRecordByContractID"}),Object.defineProperty(e.prototype.deleteContract=function e(t,r){return this.rpcCall(e,a.proto.Transaction,a.proto.TransactionResponse,t,r)},"name",{value:"deleteContract"}),Object.defineProperty(e.prototype.systemDelete=function e(t,r){return this.rpcCall(e,a.proto.Transaction,a.proto.TransactionResponse,t,r)},"name",{value:"systemDelete"}),Object.defineProperty(e.prototype.systemUndelete=function e(t,r){return this.rpcCall(e,a.proto.Transaction,a.proto.TransactionResponse,t,r)},"name",{value:"systemUndelete"}),Object.defineProperty(e.prototype.callEthereum=function e(t,r){return this.rpcCall(e,a.proto.Transaction,a.proto.TransactionResponse,t,r)},"name",{value:"callEthereum"}),e}(),ThrottleGroup:function(){function e(e){if(this.operations=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:if(i.operations&&i.operations.length||(i.operations=[]),2==(7&r))for(var s=e.uint32()+e.pos;e.pos>>3){case 1:i.name=e.string();break;case 2:i.burstPeriodMs=e.uint64();break;case 3:i.throttleGroups&&i.throttleGroups.length||(i.throttleGroups=[]),i.throttleGroups.push(a.proto.ThrottleGroup.decode(e,e.uint32()));break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ThrottleBucket"},e}(),ThrottleDefinitions:function(){function e(e){if(this.throttleBuckets=[],e)for(var t=Object.keys(e),r=0;r>>3?(i.throttleBuckets&&i.throttleBuckets.length||(i.throttleBuckets=[]),i.throttleBuckets.push(a.proto.ThrottleBucket.decode(e,e.uint32()))):e.skipType(7&r);return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ThrottleDefinitions"},e}(),TokenService:function(){function e(e,r,n){t.rpc.Service.call(this,e,r,n)}return(e.prototype=Object.create(t.rpc.Service.prototype)).constructor=e,e.create=function(e,t,r){return new this(e,t,r)},Object.defineProperty(e.prototype.createToken=function e(t,r){return this.rpcCall(e,a.proto.Transaction,a.proto.TransactionResponse,t,r)},"name",{value:"createToken"}),Object.defineProperty(e.prototype.updateToken=function e(t,r){return this.rpcCall(e,a.proto.Transaction,a.proto.TransactionResponse,t,r)},"name",{value:"updateToken"}),Object.defineProperty(e.prototype.mintToken=function e(t,r){return this.rpcCall(e,a.proto.Transaction,a.proto.TransactionResponse,t,r)},"name",{value:"mintToken"}),Object.defineProperty(e.prototype.burnToken=function e(t,r){return this.rpcCall(e,a.proto.Transaction,a.proto.TransactionResponse,t,r)},"name",{value:"burnToken"}),Object.defineProperty(e.prototype.deleteToken=function e(t,r){return this.rpcCall(e,a.proto.Transaction,a.proto.TransactionResponse,t,r)},"name",{value:"deleteToken"}),Object.defineProperty(e.prototype.wipeTokenAccount=function e(t,r){return this.rpcCall(e,a.proto.Transaction,a.proto.TransactionResponse,t,r)},"name",{value:"wipeTokenAccount"}),Object.defineProperty(e.prototype.freezeTokenAccount=function e(t,r){return this.rpcCall(e,a.proto.Transaction,a.proto.TransactionResponse,t,r)},"name",{value:"freezeTokenAccount"}),Object.defineProperty(e.prototype.unfreezeTokenAccount=function e(t,r){return this.rpcCall(e,a.proto.Transaction,a.proto.TransactionResponse,t,r)},"name",{value:"unfreezeTokenAccount"}),Object.defineProperty(e.prototype.grantKycToTokenAccount=function e(t,r){return this.rpcCall(e,a.proto.Transaction,a.proto.TransactionResponse,t,r)},"name",{value:"grantKycToTokenAccount"}),Object.defineProperty(e.prototype.revokeKycFromTokenAccount=function e(t,r){return this.rpcCall(e,a.proto.Transaction,a.proto.TransactionResponse,t,r)},"name",{value:"revokeKycFromTokenAccount"}),Object.defineProperty(e.prototype.associateTokens=function e(t,r){return this.rpcCall(e,a.proto.Transaction,a.proto.TransactionResponse,t,r)},"name",{value:"associateTokens"}),Object.defineProperty(e.prototype.dissociateTokens=function e(t,r){return this.rpcCall(e,a.proto.Transaction,a.proto.TransactionResponse,t,r)},"name",{value:"dissociateTokens"}),Object.defineProperty(e.prototype.updateTokenFeeSchedule=function e(t,r){return this.rpcCall(e,a.proto.Transaction,a.proto.TransactionResponse,t,r)},"name",{value:"updateTokenFeeSchedule"}),Object.defineProperty(e.prototype.getTokenInfo=function e(t,r){return this.rpcCall(e,a.proto.Query,a.proto.Response,t,r)},"name",{value:"getTokenInfo"}),Object.defineProperty(e.prototype.getAccountNftInfos=function e(t,r){return this.rpcCall(e,a.proto.Query,a.proto.Response,t,r)},"name",{value:"getAccountNftInfos"}),Object.defineProperty(e.prototype.getTokenNftInfo=function e(t,r){return this.rpcCall(e,a.proto.Query,a.proto.Response,t,r)},"name",{value:"getTokenNftInfo"}),Object.defineProperty(e.prototype.getTokenNftInfos=function e(t,r){return this.rpcCall(e,a.proto.Query,a.proto.Response,t,r)},"name",{value:"getTokenNftInfos"}),Object.defineProperty(e.prototype.pauseToken=function e(t,r){return this.rpcCall(e,a.proto.Transaction,a.proto.TransactionResponse,t,r)},"name",{value:"pauseToken"}),Object.defineProperty(e.prototype.unpauseToken=function e(t,r){return this.rpcCall(e,a.proto.Transaction,a.proto.TransactionResponse,t,r)},"name",{value:"unpauseToken"}),Object.defineProperty(e.prototype.updateNfts=function e(t,r){return this.rpcCall(e,a.proto.Transaction,a.proto.TransactionResponse,t,r)},"name",{value:"updateNfts"}),e}(),SignedTransaction:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.bodyBytes=e.bytes();break;case 2:i.sigMap=a.proto.SignatureMap.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.SignedTransaction"},e}(),UtilService:function(){function e(e,r,n){t.rpc.Service.call(this,e,r,n)}return(e.prototype=Object.create(t.rpc.Service.prototype)).constructor=e,e.create=function(e,t,r){return new this(e,t,r)},Object.defineProperty(e.prototype.prng=function e(t,r){return this.rpcCall(e,a.proto.Transaction,a.proto.TransactionResponse,t,r)},"name",{value:"prng"}),e}(),TokenUnitBalance:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.tokenId=a.proto.TokenID.decode(e,e.uint32());break;case 2:i.balance=e.uint64();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TokenUnitBalance"},e}(),SingleAccountBalances:function(){function e(e){if(this.tokenUnitBalances=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.accountID=a.proto.AccountID.decode(e,e.uint32());break;case 2:i.hbarBalance=e.uint64();break;case 3:i.tokenUnitBalances&&i.tokenUnitBalances.length||(i.tokenUnitBalances=[]),i.tokenUnitBalances.push(a.proto.TokenUnitBalance.decode(e,e.uint32()));break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.SingleAccountBalances"},e}(),AllAccountBalances:function(){function e(e){if(this.allAccounts=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.consensusTimestamp=a.proto.Timestamp.decode(e,e.uint32());break;case 2:i.allAccounts&&i.allAccounts.length||(i.allAccounts=[]),i.allAccounts.push(a.proto.SingleAccountBalances.decode(e,e.uint32()));break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.AllAccountBalances"},e}(),ContractActions:function(){function e(e){if(this.contractActions=[],e)for(var t=Object.keys(e),r=0;r>>3?(i.contractActions&&i.contractActions.length||(i.contractActions=[]),i.contractActions.push(a.proto.ContractAction.decode(e,e.uint32()))):e.skipType(7&r);return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractActions"},e}(),ContractActionType:function(){const e={},t=Object.create(e);return t[e[0]="NO_ACTION"]=0,t[e[1]="CALL"]=1,t[e[2]="CREATE"]=2,t[e[3]="PRECOMPILE"]=3,t[e[4]="SYSTEM"]=4,t}(),CallOperationType:function(){const e={},t=Object.create(e);return t[e[0]="OP_UNKNOWN"]=0,t[e[1]="OP_CALL"]=1,t[e[2]="OP_CALLCODE"]=2,t[e[3]="OP_DELEGATECALL"]=3,t[e[4]="OP_STATICCALL"]=4,t[e[5]="OP_CREATE"]=5,t[e[6]="OP_CREATE2"]=6,t}(),ContractAction:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.callType=e.int32();break;case 2:i.callingAccount=a.proto.AccountID.decode(e,e.uint32());break;case 3:i.callingContract=a.proto.ContractID.decode(e,e.uint32());break;case 4:i.gas=e.int64();break;case 5:i.input=e.bytes();break;case 6:i.recipientAccount=a.proto.AccountID.decode(e,e.uint32());break;case 7:i.recipientContract=a.proto.ContractID.decode(e,e.uint32());break;case 8:i.targetedAddress=e.bytes();break;case 9:i.value=e.int64();break;case 10:i.gasUsed=e.int64();break;case 11:i.output=e.bytes();break;case 12:i.revertReason=e.bytes();break;case 13:i.error=e.bytes();break;case 14:i.callDepth=e.int32();break;case 15:i.callOperationType=e.int32();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractAction"},e}(),ContractBytecode:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.contractId=a.proto.ContractID.decode(e,e.uint32());break;case 2:i.initcode=e.bytes();break;case 3:i.runtimeBytecode=e.bytes();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractBytecode"},e}(),ContractStateChanges:function(){function e(e){if(this.contractStateChanges=[],e)for(var t=Object.keys(e),r=0;r>>3?(i.contractStateChanges&&i.contractStateChanges.length||(i.contractStateChanges=[]),i.contractStateChanges.push(a.proto.ContractStateChange.decode(e,e.uint32()))):e.skipType(7&r);return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractStateChanges"},e}(),ContractStateChange:function(){function e(e){if(this.storageChanges=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.contractId=a.proto.ContractID.decode(e,e.uint32());break;case 2:i.storageChanges&&i.storageChanges.length||(i.storageChanges=[]),i.storageChanges.push(a.proto.StorageChange.decode(e,e.uint32()));break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.ContractStateChange"},e}(),StorageChange:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.slot=e.bytes();break;case 2:i.valueRead=e.bytes();break;case 3:i.valueWritten=a.google.protobuf.BytesValue.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.StorageChange"},e}(),HashAlgorithm:function(){const e={},t=Object.create(e);return t[e[0]="HASH_ALGORITHM_UNKNOWN"]=0,t[e[1]="SHA_384"]=1,t}(),HashObject:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.algorithm=e.int32();break;case 2:i.length=e.int32();break;case 3:i.hash=e.bytes();break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.HashObject"},e}(),RecordStreamFile:function(){function e(e){if(this.recordStreamItems=[],this.sidecars=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.hapiProtoVersion=a.proto.SemanticVersion.decode(e,e.uint32());break;case 2:i.startObjectRunningHash=a.proto.HashObject.decode(e,e.uint32());break;case 3:i.recordStreamItems&&i.recordStreamItems.length||(i.recordStreamItems=[]),i.recordStreamItems.push(a.proto.RecordStreamItem.decode(e,e.uint32()));break;case 4:i.endObjectRunningHash=a.proto.HashObject.decode(e,e.uint32());break;case 5:i.blockNumber=e.int64();break;case 6:i.sidecars&&i.sidecars.length||(i.sidecars=[]),i.sidecars.push(a.proto.SidecarMetadata.decode(e,e.uint32()));break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.RecordStreamFile"},e}(),RecordStreamItem:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.transaction=a.proto.Transaction.decode(e,e.uint32());break;case 2:i.record=a.proto.TransactionRecord.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.RecordStreamItem"},e}(),SidecarMetadata:function(){function e(e){if(this.types=[],e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.hash=a.proto.HashObject.decode(e,e.uint32());break;case 2:i.id=e.int32();break;case 3:if(i.types&&i.types.length||(i.types=[]),2==(7&r))for(var s=e.uint32()+e.pos;e.pos>>3?(i.sidecarRecords&&i.sidecarRecords.length||(i.sidecarRecords=[]),i.sidecarRecords.push(a.proto.TransactionSidecarRecord.decode(e,e.uint32()))):e.skipType(7&r);return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.SidecarFile"},e}(),TransactionSidecarRecord:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.consensusTimestamp=a.proto.Timestamp.decode(e,e.uint32());break;case 2:i.migration=e.bool();break;case 3:i.stateChanges=a.proto.ContractStateChanges.decode(e,e.uint32());break;case 4:i.actions=a.proto.ContractActions.decode(e,e.uint32());break;case 5:i.bytecode=a.proto.ContractBytecode.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.TransactionSidecarRecord"},e}(),SignatureFile:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.fileSignature=a.proto.SignatureObject.decode(e,e.uint32());break;case 2:i.metadataSignature=a.proto.SignatureObject.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.SignatureFile"},e}(),SignatureObject:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3){case 1:i.type=e.int32();break;case 2:i.length=e.int32();break;case 3:i.checksum=e.int32();break;case 4:i.signature=e.bytes();break;case 5:i.hashObject=a.proto.HashObject.decode(e,e.uint32());break;default:e.skipType(7&r)}return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/proto.SignatureObject"},e}(),SignatureType:function(){const e={},t=Object.create(e);return t[e[0]="SIGNATURE_TYPE_UNKNOWN"]=0,t[e[1]="SHA_384_WITH_RSA"]=1,t}()};e.proto=c;const u=a.google={protobuf:{DoubleValue:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3?i.value=e.double():e.skipType(7&r);return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/google.protobuf.DoubleValue"},e}(),FloatValue:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3?i.value=e.float():e.skipType(7&r);return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/google.protobuf.FloatValue"},e}(),Int64Value:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3?i.value=e.int64():e.skipType(7&r);return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/google.protobuf.Int64Value"},e}(),UInt64Value:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3?i.value=e.uint64():e.skipType(7&r);return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/google.protobuf.UInt64Value"},e}(),Int32Value:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3?i.value=e.int32():e.skipType(7&r);return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/google.protobuf.Int32Value"},e}(),UInt32Value:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3?i.value=e.uint32():e.skipType(7&r);return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/google.protobuf.UInt32Value"},e}(),BoolValue:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3?i.value=e.bool():e.skipType(7&r);return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/google.protobuf.BoolValue"},e}(),StringValue:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3?i.value=e.string():e.skipType(7&r);return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/google.protobuf.StringValue"},e}(),BytesValue:function(){function e(e){if(e)for(var t=Object.keys(e),r=0;r>>3?i.value=e.bytes():e.skipType(7&r);return i},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/google.protobuf.BytesValue"},e}()}};e.google=u}(proto),function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.proto=e.google=e.com=e.Writer=e.Reader=void 0;var t,r=a(minimal),n=(t=long).__esModule?t:{default:t},o=a(proto);function i(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(i=function(e){return e?r:t})(e)}function a(e,t){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=i(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!=a&&Object.prototype.hasOwnProperty.call(e,a)){var s=o?Object.getOwnPropertyDescriptor(e,a):null;s&&(s.get||s.set)?Object.defineProperty(n,a,s):n[a]=e[a]}return n.default=e,r&&r.set(e,n),n}(()=>{var e=r.util;null==e.Long&&(console.log("Patching Protobuf Long.js instance..."),e.Long=n.default,null!=r.Reader._configure&&r.Reader._configure(r.BufferReader))})();const s=r.Reader;e.Reader=s;const c=r.Writer;e.Writer=c;const u=o.proto;e.proto=u;const l=o.com;e.com=l;const d=o.google;e.google=d}(lib);const LEDGER_ID_MAPPINGS=[[LedgerId.MAINNET,295,"hedera:mainnet"],[LedgerId.TESTNET,296,"hedera:testnet"],[LedgerId.PREVIEWNET,297,"hedera:previewnet"],[LedgerId.LOCAL_NODE,298,"hedera:devnet"]],DEFAULT_LEDGER_ID=LedgerId.LOCAL_NODE,DEFAULT_CAIP=LEDGER_ID_MAPPINGS[3][2];function CAIPChainIdToLedgerId(e){for(let t=0;t({hedera:{chains:[ledgerIdToCAIPChainId(e)],methods:t,events:r}}),accountAndLedgerFromSession=e=>{const t=e.namespaces.hedera;if(!t)throw new Error("No hedera namespace found");return t.accounts.map((e=>{const[t,r,n]=e.split(":");return{network:CAIPChainIdToLedgerId(t+":"+r),account:AccountId.fromString(n)}}))};var EVENTS,EVENTS2;EVENTS2=EVENTS||(EVENTS={}),EVENTS2.extensionQuery="hedera-extension-query",EVENTS2.extensionConnect="hedera-extension-connect-",EVENTS2.extensionOpen="hedera-extension-open-",EVENTS2.extensionResponse="hedera-extension-response",EVENTS2.iframeQuery="hedera-iframe-query",EVENTS2.iframeQueryResponse="hedera-iframe-response",EVENTS2.iframeConnect="hedera-iframe-connect";const findExtensions=e=>{"undefined"!=typeof window&&(window.addEventListener("message",(t=>{var r,n;(null===(r=null==t?void 0:t.data)||void 0===r?void 0:r.type)==EVENTS.extensionResponse&&t.data.metadata&&e(t.data.metadata,!1),(null===(n=null==t?void 0:t.data)||void 0===n?void 0:n.type)==EVENTS.iframeQueryResponse&&t.data.metadata&&e(t.data.metadata,!0)})),setTimeout((()=>{extensionQuery()}),200))},extensionQuery=()=>{window.postMessage({type:EVENTS.extensionQuery},"*"),window.parent&&window.parent.postMessage({type:EVENTS.iframeQuery},"*")},extensionConnect=(e,t,r)=>{t?window.parent.postMessage({type:EVENTS.iframeConnect,pairingString:r},"*"):window.postMessage({type:EVENTS.extensionConnect+e,pairingString:r},"*")},extensionOpen=e=>{window.postMessage({type:EVENTS.extensionOpen+e},"*")};var cjs$7={},extendStatics=function(e,t){return(extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)}; + */function assertBigInt(){if("undefined"==typeof BigInt)throw new Error("BigInt is not defined. Your environment doesn't implement BigInt.")}function concat$2(e){let t=0,r=0;for(let o=0;o=o.length)return this.error="End of input reached before message was fully decoded",-1;if(e===r){r+=255;const e=new Uint8Array(r);for(let r=0;r8)return this.error="Too big integer",-1;if(i+1>o.length)return this.error="End of input reached before message was fully decoded",-1;const s=t+1,a=n.subarray(s,s+i);return 0===a[i-1]&&this.warnings.push("Needlessly long encoded length"),this.length=utilFromBase(a,8),this.longFormUsed&&this.length<=127&&this.warnings.push("Unnecessary usage of long length form"),this.blockLength=i+1,t+this.blockLength}toBER(e=!1){let t,r;if(this.length>127&&(this.longFormUsed=!0),this.isIndefiniteForm)return t=new ArrayBuffer(1),!1===e&&(r=new Uint8Array(t),r[0]=128),t;if(this.longFormUsed){const n=utilToBase(this.length,8);if(n.byteLength>127)return this.error="Too big length",EMPTY_BUFFER;if(t=new ArrayBuffer(n.byteLength+1),e)return t;const o=new Uint8Array(n);r=new Uint8Array(t),r[0]=128|n.byteLength;for(let e=0;e=37&&!1===o.idBlock.isHexOnly)return o.error="UNIVERSAL 37 and upper tags are reserved by ASN.1 standard",{offset:-1,result:o};switch(o.idBlock.tagNumber){case 0:if(o.idBlock.isConstructed&&o.lenBlock.length>0)return o.error="Type [UNIVERSAL 0] is reserved",{offset:-1,result:o};a=typeStore.EndOfContent;break;case 1:a=typeStore.Boolean;break;case 2:a=typeStore.Integer;break;case 3:a=typeStore.BitString;break;case 4:a=typeStore.OctetString;break;case 5:a=typeStore.Null;break;case 6:a=typeStore.ObjectIdentifier;break;case 10:a=typeStore.Enumerated;break;case 12:a=typeStore.Utf8String;break;case 13:a=typeStore.RelativeObjectIdentifier;break;case 14:a=typeStore.TIME;break;case 15:return o.error="[UNIVERSAL 15] is reserved by ASN.1 standard",{offset:-1,result:o};case 16:a=typeStore.Sequence;break;case 17:a=typeStore.Set;break;case 18:a=typeStore.NumericString;break;case 19:a=typeStore.PrintableString;break;case 20:a=typeStore.TeletexString;break;case 21:a=typeStore.VideotexString;break;case 22:a=typeStore.IA5String;break;case 23:a=typeStore.UTCTime;break;case 24:a=typeStore.GeneralizedTime;break;case 25:a=typeStore.GraphicString;break;case 26:a=typeStore.VisibleString;break;case 27:a=typeStore.GeneralString;break;case 28:a=typeStore.UniversalString;break;case 29:a=typeStore.CharacterString;break;case 30:a=typeStore.BmpString;break;case 31:a=typeStore.DATE;break;case 32:a=typeStore.TimeOfDay;break;case 33:a=typeStore.DateTime;break;case 34:a=typeStore.Duration;break;default:{const e=o.idBlock.isConstructed?new typeStore.Constructed:new typeStore.Primitive;e.idBlock=o.idBlock,e.lenBlock=o.lenBlock,e.warnings=o.warnings,o=e}}}else a=o.idBlock.isConstructed?typeStore.Constructed:typeStore.Primitive;return o=localChangeType(o,a),s=o.fromBER(e,t,o.lenBlock.isIndefiniteForm?r:o.lenBlock.length),o.valueBeforeDecodeView=e.subarray(n,n+o.blockLength),{offset:s,result:o}}function fromBER(e){if(!e.byteLength){const e=new BaseBlock({},ValueBlock);return e.error="Input buffer has zero length",{offset:-1,result:e}}return localFromBER(BufferSourceConverter.toUint8Array(e).slice(),0,e.byteLength)}function checkLen(e,t){return e?1:t}_a$w=Primitive,typeStore.Primitive=_a$w,Primitive.NAME="PRIMITIVE";class LocalConstructedValueBlock extends ValueBlock{constructor({value:e=[],isIndefiniteForm:t=!1,...r}={}){super(r),this.value=e,this.isIndefiniteForm=t}fromBER(e,t,r){const n=BufferSourceConverter.toUint8Array(e);if(!checkBufferParams(this,n,t,r))return-1;if(this.valueBeforeDecodeView=n.subarray(t,t+r),0===this.valueBeforeDecodeView.length)return this.warnings.push("Zero buffer length"),t;let o=t;for(;checkLen(this.isIndefiniteForm,r)>0;){const e=localFromBER(n,o,r);if(-1===e.offset)return this.error=e.result.error,this.warnings.concat(e.result.warnings),-1;if(o=e.offset,this.blockLength+=e.result.blockLength,r-=e.result.blockLength,this.value.push(e.result),this.isIndefiniteForm&&e.result.constructor.NAME===END_OF_CONTENT_NAME)break}return this.isIndefiniteForm&&(this.value[this.value.length-1].constructor.NAME===END_OF_CONTENT_NAME?this.value.pop():this.warnings.push("No EndOfContent block encoded")),o}toBER(e,t){const r=t||new ViewWriter;for(let n=0;n` ${e}`)).join("\n"));const t=3===this.idBlock.tagClass?`[${this.idBlock.tagNumber}]`:this.constructor.NAME;return e.length?`${t} :\n${e.join("\n")}`:`${t} :`}}_a$v=Constructed,typeStore.Constructed=_a$v,Constructed.NAME="CONSTRUCTED";class LocalEndOfContentValueBlock extends ValueBlock{fromBER(e,t,r){return t}toBER(e){return EMPTY_BUFFER}}LocalEndOfContentValueBlock.override="EndOfContentValueBlock";class EndOfContent extends BaseBlock{constructor(e={}){super(e,LocalEndOfContentValueBlock),this.idBlock.tagClass=1,this.idBlock.tagNumber=0}}_a$u=EndOfContent,typeStore.EndOfContent=_a$u,EndOfContent.NAME=END_OF_CONTENT_NAME;class Null extends BaseBlock{constructor(e={}){super(e,ValueBlock),this.idBlock.tagClass=1,this.idBlock.tagNumber=5}fromBER(e,t,r){return this.lenBlock.length>0&&this.warnings.push("Non-zero length of value block for Null type"),this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.blockLength+=r,t+r>e.byteLength?(this.error="End of input reached before message was fully decoded (inconsistent offset and length values)",-1):t+r}toBER(e,t){const r=new ArrayBuffer(2);if(!e){const e=new Uint8Array(r);e[0]=5,e[1]=0}return t&&t.write(r),r}onAsciiEncoding(){return`${this.constructor.NAME}`}}_a$t=Null,typeStore.Null=_a$t,Null.NAME="NULL";class LocalBooleanValueBlock extends(HexBlock(ValueBlock)){get value(){for(const e of this.valueHexView)if(e>0)return!0;return!1}set value(e){this.valueHexView[0]=e?255:0}constructor({value:e,...t}={}){super(t),t.valueHex?this.valueHexView=BufferSourceConverter.toUint8Array(t.valueHex):this.valueHexView=new Uint8Array(1),e&&(this.value=e)}fromBER(e,t,r){const n=BufferSourceConverter.toUint8Array(e);return checkBufferParams(this,n,t,r)?(this.valueHexView=n.subarray(t,t+r),r>1&&this.warnings.push("Boolean value encoded in more then 1 octet"),this.isHexOnly=!0,utilDecodeTC.call(this),this.blockLength=r,t+r):-1}toBER(){return this.valueHexView.slice()}toJSON(){return{...super.toJSON(),value:this.value}}}LocalBooleanValueBlock.NAME="BooleanValueBlock";let Boolean$1=class extends BaseBlock{getValue(){return this.valueBlock.value}setValue(e){this.valueBlock.value=e}constructor(e={}){super(e,LocalBooleanValueBlock),this.idBlock.tagClass=1,this.idBlock.tagNumber=1}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.getValue}`}};_a$s=Boolean$1,typeStore.Boolean=_a$s,Boolean$1.NAME="BOOLEAN";class LocalOctetStringValueBlock extends(HexBlock(LocalConstructedValueBlock)){constructor({isConstructed:e=!1,...t}={}){super(t),this.isConstructed=e}fromBER(e,t,r){let n=0;if(this.isConstructed){if(this.isHexOnly=!1,n=LocalConstructedValueBlock.prototype.fromBER.call(this,e,t,r),-1===n)return n;for(let e=0;e0&&r.unusedBits>0)return this.error='Using of "unused bits" inside constructive BIT STRING allowed for least one only',-1;this.unusedBits=r.unusedBits}return n}const o=BufferSourceConverter.toUint8Array(e);if(!checkBufferParams(this,o,t,r))return-1;const i=o.subarray(t,t+r);if(this.unusedBits=i[0],this.unusedBits>7)return this.error="Unused bits for BitString must be in range 0-7",-1;if(!this.unusedBits){const e=i.subarray(1);try{if(e.byteLength){const t=localFromBER(e,0,e.byteLength);-1!==t.offset&&t.offset===r-1&&(this.value=[t.result])}}catch{}}return this.valueHexView=i.subarray(1),this.blockLength=i.length,t+r}toBER(e,t){if(this.isConstructed)return LocalConstructedValueBlock.prototype.toBER.call(this,e,t);if(e)return new ArrayBuffer(this.valueHexView.byteLength+1);if(!this.valueHexView.byteLength)return EMPTY_BUFFER;const r=new Uint8Array(this.valueHexView.length+1);return r[0]=this.unusedBits,r.set(this.valueHexView,1),r.buffer}toJSON(){return{...super.toJSON(),unusedBits:this.unusedBits,isConstructed:this.isConstructed}}}LocalBitStringValueBlock.NAME="BitStringValueBlock";class BitString extends BaseBlock{constructor({idBlock:e={},lenBlock:t={},...r}={}){var n,o;null!==(n=r.isConstructed)&&void 0!==n||(r.isConstructed=!!(null===(o=r.value)||void 0===o?void 0:o.length)),super({idBlock:{isConstructed:r.isConstructed,...e},lenBlock:{...t,isIndefiniteForm:!!r.isIndefiniteForm},...r},LocalBitStringValueBlock),this.idBlock.tagClass=1,this.idBlock.tagNumber=3}fromBER(e,t,r){return this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,super.fromBER(e,t,r)}onAsciiEncoding(){if(this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length)return Constructed.prototype.onAsciiEncoding.call(this);{const e=[],t=this.valueBlock.valueHexView;for(const n of t)e.push(n.toString(2).padStart(8,"0"));const r=e.join("");return`${this.constructor.NAME} : ${r.substring(0,r.length-this.valueBlock.unusedBits)}`}}}function viewAdd(e,t){const r=new Uint8Array([0]),n=new Uint8Array(e),o=new Uint8Array(t);let i=n.slice(0);const s=i.length-1,a=o.slice(0),c=a.length-1;let u=0;let l=0;for(let d=c=0;d--,l++){if(!0==l=i.length)i=utilConcatView(new Uint8Array([u%10]),i);else i[s-l]=u%10}return r[0]>0&&(i=utilConcatView(r,i)),i}function power2(e){if(e>=powers2.length)for(let t=powers2.length;t<=e;t++){const e=new Uint8Array([0]);let r=powers2[t-1].slice(0);for(let t=r.length-1;t>=0;t--){const n=new Uint8Array([(r[t]<<1)+e[0]]);e[0]=n[0]/10,r[t]=n[0]%10}e[0]>0&&(r=utilConcatView(e,r)),powers2.push(r)}return powers2[e]}function viewSub(e,t){let r=0;const n=new Uint8Array(e),o=new Uint8Array(t),i=n.slice(0),s=i.length-1,a=o.slice(0),c=a.length-1;let u,l=0;for(let d=c;d>=0;d--,l++)if(u=i[s-l]-a[c-l]-r,!0==u<0)r=1,i[s-l]=u+10;else r=0,i[s-l]=u;if(r>0)for(let d=s-c+1;d>=0;d--,l++){if(u=i[s-l]-r,!(u<0)){r=0,i[s-l]=u;break}r=1,i[s-l]=u+10}return i.slice()}_a$q=BitString,typeStore.BitString=_a$q,BitString.NAME=BIT_STRING_NAME;class LocalIntegerValueBlock extends(HexBlock(ValueBlock)){setValueHex(){this.valueHexView.length>=4?(this.warnings.push("Too big Integer for decoding, hex only"),this.isHexOnly=!0,this._valueDec=0):(this.isHexOnly=!1,this.valueHexView.length>0&&(this._valueDec=utilDecodeTC.call(this)))}constructor({value:e,...t}={}){super(t),this._valueDec=0,t.valueHex&&this.setValueHex(),void 0!==e&&(this.valueDec=e)}set valueDec(e){this._valueDec=e,this.isHexOnly=!1,this.valueHexView=new Uint8Array(utilEncodeTC(e))}get valueDec(){return this._valueDec}fromDER(e,t,r,n=0){const o=this.fromBER(e,t,r);if(-1===o)return o;const i=this.valueHexView;return 0===i[0]&&128&i[1]?this.valueHexView=i.subarray(1):0!==n&&i.length1&&(n=i.length+1),this.valueHexView=i.subarray(n-i.length)),o}toDER(e=!1){const t=this.valueHexView;switch(!0){case!!(128&t[0]):{const e=new Uint8Array(this.valueHexView.length+1);e[0]=0,e.set(t,1),this.valueHexView=e}break;case 0===t[0]&&!(128&t[1]):this.valueHexView=this.valueHexView.subarray(1)}return this.toBER(e)}fromBER(e,t,r){const n=super.fromBER(e,t,r);return-1===n||this.setValueHex(),n}toBER(e){return e?new ArrayBuffer(this.valueHexView.length):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}toString(){const e=8*this.valueHexView.length-1;let t,r=new Uint8Array(8*this.valueHexView.length/3),n=0;const o=this.valueHexView;let i="",s=!1;for(let a=o.byteLength-1;a>=0;a--){t=o[a];for(let o=0;o<8;o++){if(!(1&~t))if(n===e)r=viewSub(power2(n),r),i="-";else r=viewAdd(r,power2(n));n++,t>>=1}}for(let a=0;a0;){const t=new LocalSidValueBlock;if(n=t.fromBER(e,n,r),-1===n)return this.blockLength=0,this.error=t.error,n;0===this.value.length&&(t.isFirstSid=!0),this.blockLength+=t.blockLength,r-=t.blockLength,this.value.push(t)}return n}toBER(e){const t=[];for(let r=0;rNumber.MAX_SAFE_INTEGER){assertBigInt();const t=BigInt(n);e.valueBigInt=t}else if(e.valueDec=parseInt(n,10),isNaN(e.valueDec))return;this.value.length||(e.isFirstSid=!0,o=!0),this.value.push(e)}}while(-1!==r)}toString(){let e="",t=!1;for(let r=0;r0;){const t=new LocalRelativeSidValueBlock;if(n=t.fromBER(e,n,r),-1===n)return this.blockLength=0,this.error=t.error,n;this.blockLength+=t.blockLength,r-=t.blockLength,this.value.push(t)}return n}toBER(e,t){const r=[];for(let n=0;n4)continue;const i=4-o.length;for(let e=o.length-1;e>=0;e--)r[4*n+e+i]=o[e]}this.valueBlock.value=e}}LocalUniversalStringValueBlock.NAME="UniversalStringValueBlock";class UniversalString extends LocalUniversalStringValueBlock{constructor({...e}={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=28}}_a$g=UniversalString,typeStore.UniversalString=_a$g,UniversalString.NAME="UniversalString";class NumericString extends LocalSimpleStringBlock{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=18}}_a$f=NumericString,typeStore.NumericString=_a$f,NumericString.NAME="NumericString";class PrintableString extends LocalSimpleStringBlock{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=19}}_a$e=PrintableString,typeStore.PrintableString=_a$e,PrintableString.NAME="PrintableString";class TeletexString extends LocalSimpleStringBlock{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=20}}_a$d=TeletexString,typeStore.TeletexString=_a$d,TeletexString.NAME="TeletexString";class VideotexString extends LocalSimpleStringBlock{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=21}}_a$c=VideotexString,typeStore.VideotexString=_a$c,VideotexString.NAME="VideotexString";class IA5String extends LocalSimpleStringBlock{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=22}}_a$b=IA5String,typeStore.IA5String=_a$b,IA5String.NAME="IA5String";class GraphicString extends LocalSimpleStringBlock{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=25}}_a$a=GraphicString,typeStore.GraphicString=_a$a,GraphicString.NAME="GraphicString";class VisibleString extends LocalSimpleStringBlock{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=26}}_a$9=VisibleString,typeStore.VisibleString=_a$9,VisibleString.NAME="VisibleString";class GeneralString extends LocalSimpleStringBlock{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=27}}_a$8=GeneralString,typeStore.GeneralString=_a$8,GeneralString.NAME="GeneralString";class CharacterString extends LocalSimpleStringBlock{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=29}}_a$7=CharacterString,typeStore.CharacterString=_a$7,CharacterString.NAME="CharacterString";class UTCTime extends VisibleString{constructor({value:e,valueDate:t,...r}={}){if(super(r),this.year=0,this.month=0,this.day=0,this.hour=0,this.minute=0,this.second=0,e){this.fromString(e),this.valueBlock.valueHexView=new Uint8Array(e.length);for(let t=0;t=50?1900+r:2e3+r,this.month=parseInt(t[2],10),this.day=parseInt(t[3],10),this.hour=parseInt(t[4],10),this.minute=parseInt(t[5],10),this.second=parseInt(t[6],10)}toString(e="iso"){if("iso"===e){const e=new Array(7);return e[0]=padNumber(this.year<2e3?this.year-1900:this.year-2e3,2),e[1]=padNumber(this.month,2),e[2]=padNumber(this.day,2),e[3]=padNumber(this.hour,2),e[4]=padNumber(this.minute,2),e[5]=padNumber(this.second,2),e[6]="Z",e.join("")}return super.toString(e)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.toDate().toISOString()}`}toJSON(){return{...super.toJSON(),year:this.year,month:this.month,day:this.day,hour:this.hour,minute:this.minute,second:this.second}}}_a$6=UTCTime,typeStore.UTCTime=_a$6,UTCTime.NAME="UTCTime";class GeneralizedTime extends UTCTime{constructor(e={}){var t;super(e),null!==(t=this.millisecond)&&void 0!==t||(this.millisecond=0),this.idBlock.tagClass=1,this.idBlock.tagNumber=24}fromDate(e){super.fromDate(e),this.millisecond=e.getUTCMilliseconds()}toDate(){const e=Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second,this.millisecond);return new Date(e)}fromString(e){let t,r=!1,n="",o="",i=0,s=0,a=0;if("Z"===e[e.length-1])n=e.substring(0,e.length-1),r=!0;else{const t=new Number(e[e.length-1]);if(isNaN(t.valueOf()))throw new Error("Wrong input string for conversion");n=e}if(r){if(-1!==n.indexOf("+"))throw new Error("Wrong input string for conversion");if(-1!==n.indexOf("-"))throw new Error("Wrong input string for conversion")}else{let e=1,t=n.indexOf("+"),r="";if(-1===t&&(t=n.indexOf("-"),e=-1),-1!==t){if(r=n.substring(t+1),n=n.substring(0,t),2!==r.length&&4!==r.length)throw new Error("Wrong input string for conversion");let o=parseInt(r.substring(0,2),10);if(isNaN(o.valueOf()))throw new Error("Wrong input string for conversion");if(s=e*o,4===r.length){if(o=parseInt(r.substring(2,4),10),isNaN(o.valueOf()))throw new Error("Wrong input string for conversion");a=e*o}}}let c=n.indexOf(".");if(-1===c&&(c=n.indexOf(",")),-1!==c){const e=new Number(`0${n.substring(c)}`);if(isNaN(e.valueOf()))throw new Error("Wrong input string for conversion");i=e.valueOf(),o=n.substring(0,c)}else o=n;switch(!0){case 8===o.length:if(t=/(\d{4})(\d{2})(\d{2})/gi,-1!==c)throw new Error("Wrong input string for conversion");break;case 10===o.length:if(t=/(\d{4})(\d{2})(\d{2})(\d{2})/gi,-1!==c){let e=60*i;this.minute=Math.floor(e),e=60*(e-this.minute),this.second=Math.floor(e),e=1e3*(e-this.second),this.millisecond=Math.floor(e)}break;case 12===o.length:if(t=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})/gi,-1!==c){let e=60*i;this.second=Math.floor(e),e=1e3*(e-this.second),this.millisecond=Math.floor(e)}break;case 14===o.length:if(t=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/gi,-1!==c){const e=1e3*i;this.millisecond=Math.floor(e)}break;default:throw new Error("Wrong input string for conversion")}const u=t.exec(o);if(null===u)throw new Error("Wrong input string for conversion");for(let l=1;l0;)i.push(a%n),a=a/n|0}var c="";for(r=0;0===e.at(r)&&r=0;--r)c+=t[i[r]];return c}api.encode=function(e,t,r){if("string"!=typeof t)throw new TypeError('"alphabet" must be a string.');if(void 0!==r&&"number"!=typeof r)throw new TypeError('"maxline" must be a number.');var n="";if(e instanceof Uint8Array){var o=0,i=t.length,s=t.charAt(0),a=[0];for(o=0;o0;)a.push(u%i),u=u/i|0}for(o=0;0===e[o]&&o=0;--o)n+=t[a[o]]}else n=_encodeWithByteBuffer(e,t);if(r){var l=new RegExp(".{1,"+r+"}","g");n=n.match(l).join("\r\n")}return n},api.decode=function(e,t){if("string"!=typeof e)throw new TypeError('"input" must be a string.');if("string"!=typeof t)throw new TypeError('"alphabet" must be a string.');var r=_reverseAlphabets[t];if(!r){r=_reverseAlphabets[t]=[];for(var n=0;n>=8;for(;u>0;)s.push(255&u),u>>=8}for(var l=0;e[l]===i&&l15?(r=Date.now(),i(e)):(t.push(e),1===t.length&&o.setAttribute("a",n=!n))}}util.nextTick=util.setImmediate}(),util.isNodejs=void 0!==process$1&&process$1.versions&&process$1.versions.node,util.globalScope=util.isNodejs?commonjsGlobal:"undefined"==typeof self?window:self,util.isArray=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},util.isArrayBuffer=function(e){return"undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer},util.isArrayBufferView=function(e){return e&&util.isArrayBuffer(e.buffer)&&void 0!==e.byteLength},util.ByteBuffer=ByteStringBuffer,util.ByteStringBuffer=ByteStringBuffer;var _MAX_CONSTRUCTED_STRING_LENGTH=4096;function DataBuffer(e,t){t=t||{},this.read=t.readOffset||0,this.growSize=t.growSize||1024;var r=util.isArrayBuffer(e),n=util.isArrayBufferView(e);if(r||n)return this.data=r?new DataView(e):new DataView(e.buffer,e.byteOffset,e.byteLength),void(this.write="writeOffset"in t?t.writeOffset:this.data.byteLength);this.data=new DataView(new ArrayBuffer(0)),this.write=0,null!=e&&this.putBytes(e),"writeOffset"in t&&(this.write=t.writeOffset)}util.ByteStringBuffer.prototype._optimizeConstructedString=function(e){this._constructedStringLength+=e,this._constructedStringLength>_MAX_CONSTRUCTED_STRING_LENGTH&&(this.data.substr(0,1),this._constructedStringLength=0)},util.ByteStringBuffer.prototype.length=function(){return this.data.length-this.read},util.ByteStringBuffer.prototype.isEmpty=function(){return this.length()<=0},util.ByteStringBuffer.prototype.putByte=function(e){return this.putBytes(String.fromCharCode(e))},util.ByteStringBuffer.prototype.fillWithByte=function(e,t){e=String.fromCharCode(e);for(var r=this.data;t>0;)1&t&&(r+=e),(t>>>=1)>0&&(e+=e);return this.data=r,this._optimizeConstructedString(t),this},util.ByteStringBuffer.prototype.putBytes=function(e){return this.data+=e,this._optimizeConstructedString(e.length),this},util.ByteStringBuffer.prototype.putString=function(e){return this.putBytes(util.encodeUtf8(e))},util.ByteStringBuffer.prototype.putInt16=function(e){return this.putBytes(String.fromCharCode(e>>8&255)+String.fromCharCode(255&e))},util.ByteStringBuffer.prototype.putInt24=function(e){return this.putBytes(String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(255&e))},util.ByteStringBuffer.prototype.putInt32=function(e){return this.putBytes(String.fromCharCode(e>>24&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(255&e))},util.ByteStringBuffer.prototype.putInt16Le=function(e){return this.putBytes(String.fromCharCode(255&e)+String.fromCharCode(e>>8&255))},util.ByteStringBuffer.prototype.putInt24Le=function(e){return this.putBytes(String.fromCharCode(255&e)+String.fromCharCode(e>>8&255)+String.fromCharCode(e>>16&255))},util.ByteStringBuffer.prototype.putInt32Le=function(e){return this.putBytes(String.fromCharCode(255&e)+String.fromCharCode(e>>8&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>24&255))},util.ByteStringBuffer.prototype.putInt=function(e,t){_checkBitsParam(t);var r="";do{t-=8,r+=String.fromCharCode(e>>t&255)}while(t>0);return this.putBytes(r)},util.ByteStringBuffer.prototype.putSignedInt=function(e,t){return e<0&&(e+=2<0);return t},util.ByteStringBuffer.prototype.getSignedInt=function(e){var t=this.getInt(e),r=2<=r&&(t-=r<<1),t},util.ByteStringBuffer.prototype.getBytes=function(e){var t;return e?(e=Math.min(this.length(),e),t=this.data.slice(this.read,this.read+e),this.read+=e):0===e?t="":(t=0===this.read?this.data:this.data.slice(this.read),this.clear()),t},util.ByteStringBuffer.prototype.bytes=function(e){return void 0===e?this.data.slice(this.read):this.data.slice(this.read,this.read+e)},util.ByteStringBuffer.prototype.at=function(e){return this.data.charCodeAt(this.read+e)},util.ByteStringBuffer.prototype.setAt=function(e,t){return this.data=this.data.substr(0,this.read+e)+String.fromCharCode(t)+this.data.substr(this.read+e+1),this},util.ByteStringBuffer.prototype.last=function(){return this.data.charCodeAt(this.data.length-1)},util.ByteStringBuffer.prototype.copy=function(){var e=util.createBuffer(this.data);return e.read=this.read,e},util.ByteStringBuffer.prototype.compact=function(){return this.read>0&&(this.data=this.data.slice(this.read),this.read=0),this},util.ByteStringBuffer.prototype.clear=function(){return this.data="",this.read=0,this},util.ByteStringBuffer.prototype.truncate=function(e){var t=Math.max(0,this.length()-e);return this.data=this.data.substr(this.read,t),this.read=0,this},util.ByteStringBuffer.prototype.toHex=function(){for(var e="",t=this.read;t=e)return this;t=Math.max(t||this.growSize,e);var r=new Uint8Array(this.data.buffer,this.data.byteOffset,this.data.byteLength),n=new Uint8Array(this.length()+t);return n.set(r),this.data=new DataView(n.buffer),this},util.DataBuffer.prototype.putByte=function(e){return this.accommodate(1),this.data.setUint8(this.write++,e),this},util.DataBuffer.prototype.fillWithByte=function(e,t){this.accommodate(t);for(var r=0;r>8&65535),this.data.setInt8(this.write,e>>16&255),this.write+=3,this},util.DataBuffer.prototype.putInt32=function(e){return this.accommodate(4),this.data.setInt32(this.write,e),this.write+=4,this},util.DataBuffer.prototype.putInt16Le=function(e){return this.accommodate(2),this.data.setInt16(this.write,e,!0),this.write+=2,this},util.DataBuffer.prototype.putInt24Le=function(e){return this.accommodate(3),this.data.setInt8(this.write,e>>16&255),this.data.setInt16(this.write,e>>8&65535,!0),this.write+=3,this},util.DataBuffer.prototype.putInt32Le=function(e){return this.accommodate(4),this.data.setInt32(this.write,e,!0),this.write+=4,this},util.DataBuffer.prototype.putInt=function(e,t){_checkBitsParam(t),this.accommodate(t/8);do{t-=8,this.data.setInt8(this.write++,e>>t&255)}while(t>0);return this},util.DataBuffer.prototype.putSignedInt=function(e,t){return _checkBitsParam(t),this.accommodate(t/8),e<0&&(e+=2<0);return t},util.DataBuffer.prototype.getSignedInt=function(e){var t=this.getInt(e),r=2<=r&&(t-=r<<1),t},util.DataBuffer.prototype.getBytes=function(e){var t;return e?(e=Math.min(this.length(),e),t=this.data.slice(this.read,this.read+e),this.read+=e):0===e?t="":(t=0===this.read?this.data:this.data.slice(this.read),this.clear()),t},util.DataBuffer.prototype.bytes=function(e){return void 0===e?this.data.slice(this.read):this.data.slice(this.read,this.read+e)},util.DataBuffer.prototype.at=function(e){return this.data.getUint8(this.read+e)},util.DataBuffer.prototype.setAt=function(e,t){return this.data.setUint8(e,t),this},util.DataBuffer.prototype.last=function(){return this.data.getUint8(this.write-1)},util.DataBuffer.prototype.copy=function(){return new util.DataBuffer(this)},util.DataBuffer.prototype.compact=function(){if(this.read>0){var e=new Uint8Array(this.data.buffer,this.read),t=new Uint8Array(e.byteLength);t.set(e),this.data=new DataView(t),this.write-=this.read,this.read=0}return this},util.DataBuffer.prototype.clear=function(){return this.data=new DataView(new ArrayBuffer(0)),this.read=this.write=0,this},util.DataBuffer.prototype.truncate=function(e){return this.write=Math.max(0,this.length()-e),this.read=Math.min(this.read,this.write),this},util.DataBuffer.prototype.toHex=function(){for(var e="",t=this.read;t0;)1&t&&(r+=e),(t>>>=1)>0&&(e+=e);return r},util.xorBytes=function(e,t,r){for(var n="",o="",i="",s=0,a=0;r>0;--r,++s)o=e.charCodeAt(s)^t.charCodeAt(s),a>=10&&(n+=i,i="",a=0),i+=String.fromCharCode(o),++a;return n+=i},util.hexToBytes=function(e){var t="",r=0;for(!0&e.length&&(r=1,t+=String.fromCharCode(parseInt(e[0],16)));r>24&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(255&e)};var _base64="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",_base64Idx=[62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,64,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],_base58="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";util.encode64=function(e,t){for(var r,n,o,i="",s="",a=0;a>2),i+=_base64.charAt((3&r)<<4|n>>4),isNaN(n)?i+="==":(i+=_base64.charAt((15&n)<<2|o>>6),i+=isNaN(o)?"=":_base64.charAt(63&o)),t&&i.length>t&&(s+=i.substr(0,t)+"\r\n",i=i.substr(t));return s+=i},util.decode64=function(e){e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var t,r,n,o,i="",s=0;s>4),64!==n&&(i+=String.fromCharCode((15&r)<<4|n>>2),64!==o&&(i+=String.fromCharCode((3&n)<<6|o)));return i},util.encodeUtf8=function(e){return unescape(encodeURIComponent(e))},util.decodeUtf8=function(e){return decodeURIComponent(escape(e))},util.binary={raw:{},hex:{},base64:{},base58:{},baseN:{encode:baseN.encode,decode:baseN.decode}},util.binary.raw.encode=function(e){return String.fromCharCode.apply(null,e)},util.binary.raw.decode=function(e,t,r){var n=t;n||(n=new Uint8Array(e.length));for(var o=r=r||0,i=0;i>2),i+=_base64.charAt((3&r)<<4|n>>4),isNaN(n)?i+="==":(i+=_base64.charAt((15&n)<<2|o>>6),i+=isNaN(o)?"=":_base64.charAt(63&o)),t&&i.length>t&&(s+=i.substr(0,t)+"\r\n",i=i.substr(t));return s+=i},util.binary.base64.decode=function(e,t,r){var n,o,i,s,a=t;a||(a=new Uint8Array(3*Math.ceil(e.length/4))),e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var c=0,u=r=r||0;c>4,64!==i&&(a[u++]=(15&o)<<4|i>>2,64!==s&&(a[u++]=(3&i)<<6|s));return t?u-r:a.subarray(0,u)},util.binary.base58.encode=function(e,t){return util.binary.baseN.encode(e,_base58,t)},util.binary.base58.decode=function(e,t){return util.binary.baseN.decode(e,_base58,t)},util.text={utf8:{},utf16:{}},util.text.utf8.encode=function(e,t,r){e=util.encodeUtf8(e);var n=t;n||(n=new Uint8Array(e.length));for(var o=r=r||0,i=0;i0&&i.push(r),s=n.lastIndex;var a=t[0][1];switch(a){case"s":case"o":o");break;case"%":i.push("%");break;default:i.push("<%"+a+"?>")}}return i.push(e.substring(s)),i.join("")},util.formatNumber=function(e,t,r,n){var o=e,i=isNaN(t=Math.abs(t))?2:t,s=void 0===r?",":r,a=void 0===n?".":n,c=o<0?"-":"",u=parseInt(o=Math.abs(+o||0).toFixed(i),10)+"",l=u.length>3?u.length%3:0;return c+(l?u.substr(0,l)+a:"")+u.substr(l).replace(/(\d{3})(?=\d)/g,"$1"+a)+(i?s+Math.abs(o-u).toFixed(i).slice(2):"")},util.formatSize=function(e){return e=e>=1073741824?util.formatNumber(e/1073741824,2,".","")+" GiB":e>=1048576?util.formatNumber(e/1048576,2,".","")+" MiB":e>=1024?util.formatNumber(e/1024,0)+" KiB":util.formatNumber(e,0)+" bytes"},util.bytesFromIP=function(e){return-1!==e.indexOf(".")?util.bytesFromIPv4(e):-1!==e.indexOf(":")?util.bytesFromIPv6(e):null},util.bytesFromIPv4=function(e){if(4!==(e=e.split(".")).length)return null;for(var t=util.createBuffer(),r=0;rr[n].end-r[n].start&&(n=r.length-1)):r.push({start:a,end:a})}t.push(i)}if(r.length>0){var c=r[n];c.end-c.start>0&&(t.splice(c.start,c.end-c.start+1,""),0===c.start&&t.unshift(""),7===c.end&&t.push(""))}return t.join(":")},util.estimateCores=function(e,t){if("function"==typeof e&&(t=e,e={}),e=e||{},"cores"in util&&!e.update)return t(null,util.cores);if("undefined"!=typeof navigator&&"hardwareConcurrency"in navigator&&navigator.hardwareConcurrency>0)return util.cores=navigator.hardwareConcurrency,t(null,util.cores);if("undefined"==typeof Worker)return util.cores=1,t(null,util.cores);if("undefined"==typeof Blob)return util.cores=2,t(null,util.cores);var r=URL.createObjectURL(new Blob(["(",function(){self.addEventListener("message",(function(e){var t=Date.now(),r=t+4;self.postMessage({st:t,et:r})}))}.toString(),")()"],{type:"application/javascript"}));!function e(n,o,i){if(0===o){var s=Math.floor(n.reduce((function(e,t){return e+t}),0)/n.length);return util.cores=Math.max(1,s),URL.revokeObjectURL(r),t(null,util.cores)}!function(e,t){for(var n=[],o=[],i=0;ia.st&&o.sto.st&&a.st65&&-1!==s){var a=t[s];","===a?(++s,t=t.substr(0,s)+"\r\n "+t.substr(s)):t=t.substr(0,s)+"\r\n"+a+t.substr(s+1),i=o-s-1,s=-1,++o}else" "!==t[o]&&"\t"!==t[o]&&","!==t[o]||(s=o);return t}function ltrim(e){return e.replace(/^\s+/,"")}pem.encode=function(e,t){t=t||{};var r,n="-----BEGIN "+e.type+"-----\r\n";if(e.procType&&(n+=foldHeader(r={name:"Proc-Type",values:[String(e.procType.version),e.procType.type]})),e.contentDomain&&(n+=foldHeader(r={name:"Content-Domain",values:[e.contentDomain]})),e.dekInfo&&(r={name:"DEK-Info",values:[e.dekInfo.algorithm]},e.dekInfo.parameters&&r.values.push(e.dekInfo.parameters),n+=foldHeader(r)),e.headers)for(var o=0;onew PrivateKey(e),CACHE.privateKeyFromBytes=e=>PrivateKey.fromBytes(e);const BadMnemonicReason=Object.freeze({BadLength:"BadLength",UnknownWords:"UnknownWords",ChecksumMismatch:"ChecksumMismatch"});class BadMnemonicError extends Error{constructor(e,t,r){let n;switch(t){case BadMnemonicReason.BadLength:n="mnemonic is of an unexpected number of words";break;case BadMnemonicReason.ChecksumMismatch:n="checksum byte in mnemonic did not match the rest of the mnemonic";break;case BadMnemonicReason.UnknownWords:n="mnemonic contained words that are not in the standard word list";break;default:throw new Error(`unexpected value ${t.toString()} for 'reason'`)}super(`invalid mnemonic: ${n}`),void 0!==Error.captureStackTrace&&Error.captureStackTrace(this,BadMnemonicError),this.name="BadMnemonicError",this.reason=t,this.mnemonic=e,this.unknownWordIndices=r}}const legacyWords=["aback","abbey","abbot","abide","ablaze","able","aboard","abode","abort","abound","about","above","abroad","abrupt","absent","absorb","absurd","abuse","accent","accept","access","accord","accuse","ace","ache","aching","acid","acidic","acorn","acre","across","act","action","active","actor","actual","acute","adam","adapt","add","added","addict","adept","adhere","adjust","admire","admit","adobe","adopt","adrift","adult","adverb","advice","aerial","afar","affair","affect","afford","afghan","afield","afloat","afraid","afresh","after","again","age","agency","agenda","agent","aghast","agile","ago","agony","agree","agreed","ahead","aid","aide","aim","air","airman","airy","akin","alarm","alaska","albeit","album","ale","alert","alibi","alice","alien","alight","align","alike","alive","alkali","all","alley","allied","allow","alloy","ally","almond","almost","aloft","alone","along","aloof","aloud","alpha","alpine","also","altar","alter","always","amaze","amazon","amber","ambush","amen","amend","amid","amidst","amiss","among","amount","ample","amuse","anchor","and","andrew","anew","angel","anger","angle","angry","animal","ankle","annoy","annual","answer","anthem","any","anyhow","anyway","apart","apathy","apex","apiece","appeal","appear","apple","apply","april","apron","arab","arcade","arcane","arch","arctic","ardent","are","area","argue","arid","arise","ark","arm","armful","army","aroma","around","arouse","array","arrest","arrive","arrow","arson","art","artery","artful","artist","ascent","ash","ashen","ashore","aside","ask","asleep","aspect","assay","assent","assert","assess","asset","assign","assist","assume","assure","asthma","astute","asylum","ate","athens","atlas","atom","atomic","attach","attack","attain","attend","attic","auburn","audio","audit","august","aunt","auntie","aura","austin","author","auto","autumn","avail","avenge","avenue","avert","avid","avoid","await","awake","awaken","award","aware","awash","away","awful","awhile","axe","axes","axiom","axis","axle","aye","babe","baby","bach","back","backup","bacon","bad","badge","badly","bag","baggy","bail","bait","bake","baker","bakery","bald","ball","ballad","ballet","ballot","baltic","bamboo","ban","banal","banana","band","bang","bank","bar","barber","bare","barely","barge","bark","barley","barn","baron","barrel","barren","basalt","base","basic","basil","basin","basis","basket","bass","bat","batch","bath","baton","battle","bay","beach","beacon","beak","beam","bean","bear","beard","beast","beat","beauty","become","bed","beech","beef","beefy","beep","beer","beet","beetle","before","beg","beggar","begin","behalf","behave","behind","beige","being","belief","bell","belly","belong","below","belt","bench","bend","benign","bent","berlin","berry","berth","beset","beside","best","bestow","bet","beta","betray","better","beware","beyond","bias","biceps","bicker","bid","big","bigger","bike","bile","bill","bin","binary","bind","biopsy","birch","bird","birdie","birth","bishop","bit","bitch","bite","bitter","black","blade","blame","bland","blast","blaze","bleak","blend","bless","blew","blind","blink","blip","bliss","blitz","block","blond","blood","bloody","bloom","blot","blouse","blow","blue","bluff","blunt","blur","blush","boar","board","boast","boat","bob","bodily","body","bogus","boil","bold","bolt","bomb","bombay","bond","bone","bonn","bonnet","bonus","bony","book","boom","boost","boot","booth","booze","border","bore","borrow","bosom","boss","boston","both","bother","bottle","bottom","bought","bounce","bound","bounty","bout","bovine","bow","bowel","bowl","box","boy","boyish","brace","brain","brainy","brake","bran","branch","brand","brandy","brass","brave","bravo","brazil","breach","bread","break","breast","breath","bred","breed","breeze","brew","bribe","brick","bride","bridge","brief","bright","brim","brine","bring","brink","brisk","broad","broke","broken","bronze","brook","broom","brown","bruise","brush","brutal","brute","bubble","buck","bucket","buckle","budget","buffet","buggy","build","bulb","bulge","bulk","bulky","bull","bullet","bully","bump","bumpy","bunch","bundle","bunk","bunny","burden","bureau","burial","buried","burly","burn","burnt","burrow","burst","bury","bus","bush","bust","bustle","busy","but","butler","butt","butter","button","buy","buyer","buzz","bye","byte","cab","cabin","cable","cache","cactus","caesar","cage","cairo","cajun","cajole","cake","calf","call","caller","calm","calmly","came","camel","camera","camp","campus","can","canada","canal","canary","cancel","cancer","candid","candle","candy","cane","canine","canoe","canopy","canvas","canyon","cap","cape","car","carbon","card","care","career","caress","cargo","carl","carnal","carol","carp","carpet","carrot","carry","cart","cartel","case","cash","cask","cast","castle","casual","cat","catch","cater","cattle","caught","causal","cause","cave","cease","celery","cell","cellar","celtic","cement","censor","census","cent","cereal","chain","chair","chalk","chalky","champ","chance","change","chant","chaos","chap","chapel","charge","charm","chart","chase","chat","cheap","cheat","check","cheek","cheeky","cheer","cheery","cheese","chef","cheque","cherry","chess","chest","chew","chic","chick","chief","child","chile","chill","chilly","chin","china","chip","choice","choir","choose","chop","choppy","chord","chorus","chose","chosen","chris","chrome","chunk","chunky","church","cider","cigar","cinema","circa","circle","circus","cite","city","civic","civil","clad","claim","clammy","clan","clap","clash","clasp","class","clause","claw","clay","clean","clear","clergy","clerk","clever","click","client","cliff","climax","climb","clinch","cling","clinic","clip","cloak","clock","clone","close","closer","closet","cloth","cloud","cloudy","clout","clown","club","clue","clumsy","clung","clutch","coach","coal","coarse","coast","coat","coax","cobalt","cobra","coca","cock","cocoa","code","coffee","coffin","cohort","coil","coin","coke","cold","collar","colon","colony","colt","column","comb","combat","come","comedy","comic","commit","common","compel","comply","concur","cone","confer","congo","consul","convex","convey","convoy","cook","cool","cope","copper","copy","coral","cord","core","cork","corn","corner","corps","corpse","corpus","cortex","cosmic","cosmos","cost","costly","cotton","couch","cough","could","count","county","coup","couple","coupon","course","court","cousin","cove","cover","covert","cow","coward","cowboy","cozy","crab","crack","cradle","craft","crafty","crag","crane","crash","crate","crater","crawl","crazy","creak","cream","creamy","create","credit","creed","creek","creep","creepy","crept","crest","crew","cried","crime","crisis","crisp","critic","crook","crop","cross","crow","crowd","crown","crude","cruel","cruise","crunch","crush","crust","crux","cry","crypt","cuba","cube","cubic","cuckoo","cuff","cult","cup","curb","cure","curfew","curl","curry","curse","cursor","curve","cuss","custom","cut","cute","cycle","cyclic","cynic","czech","dad","daddy","dagger","daily","dairy","daisy","dale","dam","damage","damp","dampen","dance","danger","danish","dare","dark","darken","darn","dart","dash","data","date","david","dawn","day","dead","deadly","deaf","deal","dealer","dean","dear","death","debate","debit","debris","debt","debtor","decade","decay","decent","decide","deck","decor","decree","deduce","deed","deep","deeply","deer","defeat","defect","defend","defer","define","defy","degree","deity","delay","delete","delhi","delta","demand","demise","demo","demure","denial","denote","dense","dental","deny","depart","depend","depict","deploy","depot","depth","deputy","derive","desert","design","desire","desist","desk","detail","detect","deter","detest","detour","device","devise","devoid","devote","devour","dial","diana","diary","dice","dictum","did","die","diesel","diet","differ","dig","digest","digit","dine","dinghy","dinner","diode","dip","dire","direct","dirt","dirty","disc","disco","dish","disk","dismal","dispel","ditch","dive","divert","divide","divine","dizzy","docile","dock","doctor","dog","dogma","dole","doll","dollar","dolly","domain","dome","domino","donate","done","donkey","donor","doom","door","dorsal","dose","dot","double","doubt","dough","dour","dove","down","dozen","draft","drag","dragon","drain","drama","drank","draw","drawer","dread","dream","dreary","dress","drew","dried","drift","drill","drink","drip","drive","driver","drop","drove","drown","drug","drum","drunk","dry","dual","duck","duct","due","duel","duet","duke","dull","duly","dumb","dummy","dump","dune","dung","duress","during","dusk","dust","dusty","dutch","duty","dwarf","dwell","dyer","dying","dynamo","each","eager","eagle","ear","earl","early","earn","earth","ease","easel","easily","east","easter","easy","eat","eaten","eater","echo","eddy","eden","edge","edible","edict","edit","editor","eel","eerie","eerily","effect","effort","egg","ego","eight","eighth","eighty","either","elbow","elder","eldest","elect","eleven","elicit","elite","else","elude","elves","embark","emblem","embryo","emerge","emit","empire","employ","empty","enable","enamel","end","endure","enemy","energy","engage","engine","enjoy","enlist","enough","ensure","entail","enter","entire","entry","envoy","envy","enzyme","epic","epoch","equal","equate","equip","equity","era","erect","eric","erode","erotic","errant","error","escape","escort","essay","essex","estate","esteem","ethic","ethnic","europe","evade","eve","even","event","ever","every","evict","evil","evoke","evolve","exact","exam","exceed","excel","except","excess","excise","excite","excuse","exempt","exert","exile","exist","exit","exodus","exotic","expand","expect","expert","expire","export","expose","extend","extra","eye","eyed","fabric","face","facial","fact","factor","fade","fail","faint","fair","fairly","fairy","faith","fake","falcon","fall","false","falter","fame","family","famine","famous","fan","fancy","far","farce","fare","farm","farmer","fast","fasten","faster","fat","fatal","fate","father","fatty","fault","faulty","fauna","fear","feast","feat","fed","fee","feeble","feed","feel","feet","fell","fellow","felt","female","fence","fend","ferry","fetal","fetch","feudal","fever","few","fewer","fiasco","fiddle","field","fiend","fierce","fiery","fifth","fifty","fig","fight","figure","file","fill","filled","filler","film","filter","filth","filthy","final","finale","find","fine","finery","finger","finish","finite","fire","firm","firmly","first","fiscal","fish","fisher","fist","fit","fitful","five","fix","flag","flair","flak","flame","flank","flap","flare","flash","flask","flat","flavor","flaw","fled","flee","fleece","fleet","flesh","fleshy","flew","flick","flight","flimsy","flint","flirt","float","flock","flood","floor","floppy","flora","floral","flour","flow","flower","fluent","fluffy","fluid","flung","flurry","flush","flute","flux","fly","flyer","foal","foam","focal","focus","fog","foil","fold","folk","follow","folly","fond","fondly","font","food","fool","foot","for","forbid","force","ford","forest","forge","forget","fork","form","formal","format","former","fort","forth","forty","forum","fossil","foster","foul","found","four","fourth","fox","foyer","frail","frame","franc","france","frank","fraud","fred","free","freed","freely","freeze","french","frenzy","fresh","friar","friday","fridge","fried","friend","fright","fringe","frock","frog","from","front","frost","frosty","frown","frozen","frugal","fruit","fry","fudge","fuel","full","fully","fumes","fun","fund","funny","fur","furry","fury","fuse","fusion","fuss","fussy","futile","future","fuzzy","gadget","gain","gala","galaxy","gale","gall","galley","gallon","gallop","gamble","game","gamma","gandhi","gang","gap","garage","garden","garlic","gas","gasp","gate","gather","gauge","gaunt","gave","gaze","gear","geese","gem","gemini","gender","gene","geneva","genial","genius","genre","gentle","gently","gentry","genus","george","germ","get","ghetto","ghost","giant","gift","giggle","gill","gilt","ginger","girl","give","given","glad","glade","glance","gland","glare","glass","glassy","gleam","glee","glide","global","globe","gloom","gloomy","gloria","glory","gloss","glossy","glove","glow","glue","gnat","gnu","goal","goat","gold","golden","golf","gone","gong","goo","good","goose","gore","gorge","gory","gosh","gospel","gossip","got","gothic","govern","gown","grab","grace","grade","grail","grain","grand","grant","grape","graph","grasp","grass","grassy","grate","grave","gravel","gravy","grease","greasy","great","greece","greed","greedy","greek","green","greet","grew","grey","grid","grief","grill","grim","grin","grind","grip","grit","gritty","groan","groin","groom","groove","gross","ground","group","grove","grow","grown","growth","grudge","grunt","guard","guess","guest","guide","guild","guilt","guilty","guise","guitar","gulf","gully","gun","gunman","guru","gut","guy","gypsy","habit","hack","had","hail","hair","hairy","haiti","hale","half","hall","halt","hamlet","hammer","hand","handle","handy","hang","hangar","hanoi","happen","happy","harass","harbor","hard","harder","hardly","hare","harem","harm","harp","harry","harsh","has","hash","hassle","haste","hasten","hasty","hat","hatch","hate","haul","haunt","havana","have","haven","havoc","hawaii","hawk","hay","hazard","haze","hazel","hazy","head","heal","health","heap","hear","heard","heart","hearth","hearty","heat","heater","heaven","heavy","hebrew","heck","hectic","hedge","heel","hefty","height","heir","held","helium","helix","hell","hello","helm","helmet","help","hemp","hence","henry","her","herald","herb","herd","here","hereby","hermes","hernia","hero","heroic","heroin","hey","heyday","hick","hidden","hide","high","higher","highly","hill","him","hind","hinder","hint","hippie","hire","his","hiss","hit","hive","hoard","hoarse","hobby","hockey","hold","holder","hole","hollow","holly","holy","home","honest","honey","hood","hook","hope","horn","horrid","horror","horse","hose","host","hot","hotel","hound","hour","house","hover","how","huge","hull","human","humane","humble","humid","hung","hunger","hungry","hunt","hurdle","hurl","hurry","hurt","hush","hut","hybrid","hymn","hyphen","ice","icing","icon","idaho","idea","ideal","idiom","idiot","idle","idly","idol","ignite","ignore","ill","image","immune","impact","imply","import","impose","inca","incest","inch","income","incur","indeed","index","india","indian","indoor","induce","inept","inert","infant","infect","infer","influx","inform","inject","injure","injury","ink","inlaid","inland","inlet","inmate","inn","innate","inner","input","insane","insect","insert","inset","inside","insist","insult","insure","intact","intake","intend","inter","into","invade","invent","invest","invite","invoke","inward","iowa","iran","iraq","irish","iron","ironic","irony","isaac","isabel","island","isle","israel","issue","italy","itch","item","itself","ivan","ivory","jack","jacket","jacob","jade","jaguar","jail","james","jane","japan","jargon","java","jaw","jazz","jeep","jelly","jerky","jest","jet","jewel","jewish","jim","job","jock","jockey","joe","john","join","joint","joke","jolly","jolt","jordan","joseph","joy","joyful","joyous","judge","judy","juice","juicy","july","jumble","jumbo","jump","june","jungle","junior","junk","junta","jury","just","kansas","karate","karl","keel","keen","keep","keeper","kenya","kept","kernel","kettle","key","khaki","kick","kid","kidnap","kidney","kill","killer","kin","kind","kindly","king","kiss","kite","kitten","knack","knee","kneel","knew","knife","knight","knit","knob","knock","knot","know","known","koran","korea","kuwait","label","lace","lack","lad","ladder","laden","lady","lagoon","laity","lake","lamb","lame","lamp","lance","land","lane","lap","lapse","large","larval","laser","last","latch","late","lately","latent","later","latest","latin","latter","laugh","launch","lava","lavish","law","lawful","lawn","lawyer","lay","layer","layman","lazy","lead","leader","leaf","leafy","league","leak","leaky","lean","leap","learn","lease","leash","least","leave","led","ledge","left","leg","legacy","legal","legend","legion","lemon","lend","length","lens","lent","leo","leper","lesion","less","lessen","lesser","lesson","lest","let","lethal","letter","level","lever","levy","lewis","liable","liar","libel","libya","lice","lick","lid","lie","lied","lier","life","lift","light","like","likely","limb","lime","limit","limp","line","linear","linen","linger","link","lint","lion","lip","liquid","liquor","list","listen","lit","live","lively","liver","liz","lizard","load","loaf","loan","lobby","lobe","local","locate","lock","locus","lodge","loft","lofty","log","logic","logo","london","lone","lonely","long","longer","look","loop","loose","loosen","loot","lord","lorry","lose","loss","lost","lot","lotion","lotus","loud","loudly","lounge","lousy","love","lovely","lover","low","lower","lowest","loyal","lucid","luck","lucky","lucy","lull","lump","lumpy","lunacy","lunar","lunch","lung","lure","lurid","lush","lust","lute","luther","luxury","lying","lymph","lynch","lyric","macho","macro","mad","madam","made","mafia","magic","magma","magnet","magnum","magpie","maid","maiden","mail","main","mainly","major","make","maker","male","malice","mall","malt","mammal","manage","mane","mania","manic","manner","manor","mantle","manual","manure","many","map","maple","marble","march","mare","margin","maria","marina","mark","market","marry","mars","marsh","martin","martyr","mary","mask","mason","mass","mast","master","mat","match","mate","matrix","matter","mature","maxim","may","maybe","mayor","maze","mead","meadow","meal","mean","meant","meat","medal","media","median","medic","medium","meet","mellow","melody","melon","melt","member","memo","memory","menace","mend","mental","mentor","menu","mercy","mere","merely","merge","merger","merit","merry","mesh","mess","messy","met","metal","meter","method","methyl","metric","metro","mexico","miami","mickey","mid","midday","middle","midst","midway","might","mighty","mild","mildew","mile","milk","milky","mill","mimic","mince","mind","mine","mini","mink","minor","mint","minus","minute","mire","mirror","mirth","misery","miss","mist","misty","mite","mix","moan","moat","mob","mobile","mock","mode","model","modem","modern","modest","modify","module","moist","molar","mold","mole","molten","moment","monday","money","monk","monkey","month","mood","moody","moon","moor","moral","morale","morbid","more","morgue","mortal","mortar","mosaic","moscow","moses","mosque","moss","most","mostly","moth","mother","motion","motive","motor","mount","mourn","mouse","mouth","move","movie","mrs","much","muck","mucus","mud","muddle","muddy","mule","mummy","munich","murder","murky","murmur","muscle","museum","music","mussel","must","mutant","mute","mutiny","mutter","mutton","mutual","muzzle","myopic","myriad","myself","mystic","myth","nadir","nail","naked","name","namely","nape","napkin","naples","narrow","nasal","nasty","nathan","nation","native","nature","nausea","naval","nave","navy","near","nearer","nearly","neat","neatly","neck","need","needle","needy","negate","neon","nepal","nephew","nerve","nest","net","neural","never","newly","next","nice","nicely","niche","nickel","niece","night","nile","nimble","nine","ninety","ninth","nobel","noble","nobody","node","noise","noisy","none","noon","nor","norm","normal","north","norway","nose","nosy","not","note","notice","notify","notion","noun","novel","novice","now","nozzle","null","numb","number","nurse","nut","nylon","nymph","oak","oar","oasis","oath","obese","obey","object","oblige","oboe","obtain","obtuse","occult","occupy","occur","ocean","octave","odd","off","offend","offer","office","offset","often","ohio","oil","oily","okay","old","older","oldest","olive","omega","omen","omit","once","one","onion","only","onset","onto","onus","onward","opaque","open","openly","opera","opium","oppose","optic","option","oracle","oral","orange","orbit","orchid","ordeal","order","organ","orgasm","orient","origin","ornate","orphan","oscar","other","otter","ought","ounce","our","out","outer","output","outset","oval","oven","over","overt","owe","owing","owl","own","owner","oxford","oxide","oxygen","oyster","ozone","pace","pack","packet","pact","pad","paddle","paddy","pagan","page","paid","pain","paint","pair","palace","pale","palm","pan","panama","panel","panic","papa","papal","paper","parade","parcel","pardon","parent","paris","parish","park","parody","parrot","part","partly","party","pascal","pass","past","paste","pastel","pastor","pastry","pat","patch","patent","path","patio","patrol","patron","paul","pause","pave","paw","pawn","pay","peace","peach","peak","pear","pearl","pedal","peel","peer","peking","pelvic","pelvis","pen","penal","pence","pencil","penny","people","pepper","per","perch","peril","period","perish","permit","person","peru","pest","pet","peter","petite","petrol","petty","phase","philip","phone","photo","phrase","piano","pick","picket","picnic","pie","piece","pier","pierce","piety","pig","pigeon","piggy","pike","pile","pill","pillar","pillow","pilot","pin","pinch","pine","pink","pint","pious","pipe","pirate","piss","pistol","piston","pit","pitch","pity","pivot","pixel","pizza","place","placid","plague","plain","plan","plane","planet","plank","plant","plasma","plate","play","player","plea","plead","please","pledge","plenty","plight","plot","plough","ploy","plug","plum","plump","plunge","plural","plus","plush","pocket","poem","poet","poetic","poetry","point","poison","poland","polar","pole","police","policy","polish","polite","poll","pollen","polo","pond","ponder","pony","pool","poor","poorly","pop","poppy","pore","pork","port","portal","pose","posh","post","postal","pot","potato","potent","pouch","pound","pour","powder","power","praise","pray","prayer","preach","prefer","prefix","press","pretty","price","pride","priest","primal","prime","prince","print","prior","prism","prison","privy","prize","probe","profit","prompt","prone","proof","propel","proper","prose","proton","proud","prove","proven","proxy","prune","pry","psalm","pseudo","psyche","pub","public","puff","pull","pulp","pulpit","pulsar","pulse","pump","punch","punish","punk","pupil","puppet","puppy","pure","purely","purge","purify","purple","purse","pursue","push","pushy","put","putt","puzzle","quaint","quake","quarry","quart","quartz","quebec","queen","queer","query","quest","queue","quick","quid","quiet","quilt","quirk","quit","quite","quiver","quiz","quota","quote","rabbit","race","racial","racism","rack","racket","radar","radio","radish","radius","raffle","raft","rage","raid","rail","rain","rainy","raise","rake","rally","ramp","random","range","rank","ransom","rape","rapid","rare","rarely","rarity","rash","rat","rate","rather","ratify","ratio","rattle","rave","raven","raw","ray","razor","reach","react","read","reader","ready","real","really","realm","reap","rear","reason","rebel","recall","recent","recess","recipe","reckon","record","recoup","rector","red","redeem","redo","reduce","reed","reef","reek","refer","reform","refuge","refuse","regal","regard","regent","regime","region","regret","reign","reject","relate","relax","relay","relic","relief","relish","rely","remain","remark","remedy","remind","remit","remote","remove","renal","render","rent","rental","repair","repeal","repeat","repent","reply","report","rescue","resent","reside","resign","resin","resist","resort","rest","result","resume","retail","retain","retina","retire","return","reveal","review","revise","revive","revolt","reward","rex","rhine","rhino","rhyme","rhythm","ribbon","rice","rich","rick","rid","ride","rider","ridge","rife","rifle","rift","right","rigid","rile","rim","ring","rinse","riot","ripe","ripen","ripple","rise","risk","risky","rite","ritual","ritz","rival","river","road","roar","roast","rob","robe","robert","robin","robot","robust","rock","rocket","rocky","rod","rode","rodent","rogue","role","roll","roman","rome","roof","room","root","rope","rose","rosy","rot","rotate","rotor","rotten","rouge","rough","round","route","rover","row","royal","rub","rubber","rubble","ruby","rudder","rude","rug","rugby","ruin","rule","ruler","rumble","rump","run","rune","rung","runway","rural","rush","russia","rust","rustic","rusty","sack","sacred","sad","saddle","sadism","sadly","safari","safe","safely","safer","safety","saga","sage","sahara","said","sail","sailor","saint","sake","salad","salary","sale","saline","saliva","salmon","saloon","salt","salty","salute","sam","same","sample","sand","sandy","sane","sash","satin","satire","saturn","sauce","saucer","saudi","sauna","savage","save","saw","say","scale","scalp","scan","scant","scar","scarce","scare","scarf","scary","scene","scenic","scent","school","scold","scope","score","scorn","scotch","scott","scout","scrap","scrape","scream","screen","screw","script","scroll","scrub","scum","sea","seal","seam","seaman","search","season","seat","second","secret","sect","sector","secure","see","seed","seeing","seek","seem","seize","seldom","select","self","sell","seller","semi","senate","send","senile","senior","sense","sensor","sent","sentry","seoul","sequel","serene","serial","series","sermon","serum","serve","server","set","settle","seven","severe","sew","sewage","shabby","shade","shadow","shady","shaft","shaggy","shah","shake","shaky","shall","sham","shame","shape","share","shark","sharp","shawl","she","shear","sheen","sheep","sheer","sheet","shelf","shell","sherry","shield","shift","shine","shiny","ship","shire","shirk","shirt","shiver","shock","shoe","shook","shoot","shop","shore","short","shot","should","shout","show","shower","shrank","shrewd","shrill","shrimp","shrine","shrink","shrub","shrug","shut","shy","shyly","sick","side","siege","sigh","sight","sigma","sign","signal","silent","silk","silken","silky","sill","silly","silo","silver","simple","simply","since","sinful","sing","singer","single","sink","sir","sire","siren","sister","sit","site","sitter","six","sixth","sixty","size","sketch","skill","skin","skinny","skip","skirt","skull","sky","slab","slack","slain","slam","slang","slap","slat","slate","slave","sleek","sleep","sleepy","sleeve","slice","slick","slid","slide","slight","slim","slimy","sling","slip","slit","slogan","slope","sloppy","slot","slow","slowly","slug","slum","slump","smack","small","smart","smash","smear","smell","smelly","smelt","smile","smite","smoke","smoky","smooth","smug","snack","snail","snake","snap","snatch","sneak","snow","snowy","snug","soak","soap","sober","soccer","social","sock","socket","socks","soda","sodden","sodium","sofa","soft","soften","softly","soggy","soil","solar","sold","sole","solely","solemn","solid","solo","solve","some","son","sonar","sonata","song","sonic","sony","soon","sooner","soot","soothe","sordid","sore","sorrow","sorry","sort","soul","sound","soup","sour","source","soviet","sow","space","spade","spain","span","spare","spark","sparse","spasm","spat","spate","speak","spear","speech","speed","speedy","spell","spend","sphere","spice","spicy","spider","spiky","spill","spin","spinal","spine","spiral","spirit","spit","spite","splash","split","spoil","spoke","sponge","spoon","sport","spot","spouse","spray","spread","spree","spring","sprint","spur","squad","square","squash","squat","squid","stab","stable","stack","staff","stage","stain","stair","stairs","stake","stale","stall","stamp","stance","stand","staple","star","starch","stare","stark","start","starve","state","static","statue","status","stay","stead","steady","steak","steal","steam","steel","steep","steer","stem","stench","step","stereo","stern","stew","stick","sticky","stiff","stifle","stigma","still","sting","stint","stir","stitch","stock","stocky","stone","stony","stool","stop","store","storm","stormy","story","stout","stove","stow","strain","strait","strand","strap","strata","straw","stray","streak","stream","street","stress","strict","stride","strife","strike","string","strip","stripe","strive","stroke","stroll","strong","stud","studio","study","stuff","stuffy","stunt","stupid","sturdy","style","submit","subtle","subtly","suburb","such","sudden","sue","suez","suffer","sugar","suit","suite","suitor","sullen","sultan","sum","summer","summit","summon","sun","sunday","sunny","sunset","super","superb","supper","supple","supply","sure","surely","surf","surge","survey","suture","swamp","swan","swap","swarm","sway","swear","sweat","sweaty","sweden","sweep","sweet","swell","swift","swim","swine","swing","swirl","swiss","switch","sword","swore","sydney","symbol","synod","syntax","syria","syrup","system","table","tablet","taboo","tacit","tackle","tact","tactic","tail","tailor","taiwan","take","tale","talent","talk","tall","tally","tame","tampa","tan","tandem","tangle","tank","tap","tape","target","tariff","tarp","tart","tarzan","task","taste","tasty","tattoo","taurus","taut","tavern","tax","taxi","tea","teach","teak","team","tear","tease","tech","teeth","tell","temper","temple","tempo","tempt","ten","tenant","tend","tender","tendon","tennis","tenor","tense","tent","tenth","tenure","teresa","term","terror","terse","test","texas","text","thank","thaw","them","theme","thence","theory","there","these","thesis","they","thick","thief","thigh","thin","thing","think","third","thirst","thirty","this","thomas","thorn","those","though","thread","threat","three","thrill","thrive","throat","throne","throng","throw","thrust","thud","thug","thumb","thus","thyme","tibet","tick","ticket","tidal","tide","tidy","tie","tier","tiger","tight","tile","till","tilt","timber","time","timid","tin","tiny","tip","tire","tissue","title","toad","toast","today","toe","toilet","token","tokyo","told","toll","tom","tomato","tomb","tonal","tone","tongue","tonic","too","took","tool","tooth","top","topaz","topic","torch","torque","torso","tort","toss","total","touch","tough","tour","toward","towel","tower","town","toxic","toxin","toy","trace","track","tract","trade","tragic","trail","train","trait","tram","trance","trap","trauma","travel","tray","tread","treat","treaty","treble","tree","trek","tremor","trench","trend","trendy","trial","tribal","tribe","trick","tricky","tried","trifle","trim","trio","trip","triple","troop","trophy","trot","trough","trout","truce","truck","true","truly","trunk","trust","truth","try","tube","tumble","tuna","tundra","tune","tunic","tunnel","turban","turf","turk","turkey","turn","turtle","tutor","tweed","twelve","twenty","twice","twin","twist","two","tycoon","tying","type","tyrant","ugly","ulcer","ultra","umpire","unable","uncle","under","uneasy","unfair","unify","union","unique","unit","unite","unity","unlike","unrest","unruly","until","update","upheld","uphill","uphold","upon","upper","uproar","upset","upshot","uptake","upturn","upward","urban","urge","urgent","urging","urine","usable","usage","use","useful","user","usual","utmost","utter","vacant","vacuum","vague","vain","valet","valid","valley","value","valve","van","vanish","vanity","vary","vase","vast","vat","vault","vector","veil","vein","velvet","vendor","veneer","venice","venom","vent","venue","venus","verb","verbal","verge","verify","verity","verse","versus","very","vessel","vest","vet","veto","via","viable","vicar","vice","victim","victor","video","vienna","view","vigil","viking","vile","villa","vine","vinyl","viola","violet","violin","viral","virgo","virtue","virus","visa","vision","visit","visual","vital","vivid","vocal","vodka","vogue","voice","void","volley","volume","vote","vowel","voyage","vulgar","wade","wage","waist","wait","waiter","wake","walk","walker","wall","wallet","walnut","wander","want","war","warden","warm","warmth","warn","warp","warsaw","wary","was","wash","wasp","waste","watch","water","watery","wave","wax","way","weak","weaken","wealth","weapon","wear","weary","weave","wedge","wee","weed","week","weekly","weep","weigh","weight","weird","well","were","west","wet","whale","wharf","what","wheat","wheel","when","whence","where","which","whiff","while","whim","whip","whisky","white","who","whole","wholly","whom","whose","why","wicked","wide","widely","widen","wider","widow","width","wife","wig","wild","wildly","will","willow","wily","win","wind","window","windy","wine","wing","wink","winner","winter","wipe","wire","wisdom","wise","wish","wit","witch","with","within","witty","wizard","woke","wolf","wolves","woman","womb","won","wonder","wood","wooden","woods","woody","wool","word","work","worker","world","worm","worry","worse","worst","worth","worthy","would","wound","wrap","wrath","wreath","wreck","wring","wrist","writ","write","writer","wrong","xerox","yacht","yale","yard","yarn","yeah","year","yeard","yeast","yellow","yet","yield","yogurt","yolk","you","young","your","youth","zaire","zeal","zebra","zenith","zero","zeus","zigzag","zinc","zombie","zone"],bip39Words=["abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse","access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act","action","actor","actress","actual","adapt","add","addict","address","adjust","admit","adult","advance","advice","aerobic","affair","afford","afraid","again","age","agent","agree","ahead","aim","air","airport","aisle","alarm","album","alcohol","alert","alien","all","alley","allow","almost","alone","alpha","already","also","alter","always","amateur","amazing","among","amount","amused","analyst","anchor","ancient","anger","angle","angry","animal","ankle","announce","annual","another","answer","antenna","antique","anxiety","any","apart","apology","appear","apple","approve","april","arch","arctic","area","arena","argue","arm","armed","armor","army","around","arrange","arrest","arrive","arrow","art","artefact","artist","artwork","ask","aspect","assault","asset","assist","assume","asthma","athlete","atom","attack","attend","attitude","attract","auction","audit","august","aunt","author","auto","autumn","average","avocado","avoid","awake","aware","away","awesome","awful","awkward","axis","baby","bachelor","bacon","badge","bag","balance","balcony","ball","bamboo","banana","banner","bar","barely","bargain","barrel","base","basic","basket","battle","beach","bean","beauty","because","become","beef","before","begin","behave","behind","believe","below","belt","bench","benefit","best","betray","better","between","beyond","bicycle","bid","bike","bind","biology","bird","birth","bitter","black","blade","blame","blanket","blast","bleak","bless","blind","blood","blossom","blouse","blue","blur","blush","board","boat","body","boil","bomb","bone","bonus","book","boost","border","boring","borrow","boss","bottom","bounce","box","boy","bracket","brain","brand","brass","brave","bread","breeze","brick","bridge","brief","bright","bring","brisk","broccoli","broken","bronze","broom","brother","brown","brush","bubble","buddy","budget","buffalo","build","bulb","bulk","bullet","bundle","bunker","burden","burger","burst","bus","business","busy","butter","buyer","buzz","cabbage","cabin","cable","cactus","cage","cake","call","calm","camera","camp","can","canal","cancel","candy","cannon","canoe","canvas","canyon","capable","capital","captain","car","carbon","card","cargo","carpet","carry","cart","case","cash","casino","castle","casual","cat","catalog","catch","category","cattle","caught","cause","caution","cave","ceiling","celery","cement","census","century","cereal","certain","chair","chalk","champion","change","chaos","chapter","charge","chase","chat","cheap","check","cheese","chef","cherry","chest","chicken","chief","child","chimney","choice","choose","chronic","chuckle","chunk","churn","cigar","cinnamon","circle","citizen","city","civil","claim","clap","clarify","claw","clay","clean","clerk","clever","click","client","cliff","climb","clinic","clip","clock","clog","close","cloth","cloud","clown","club","clump","cluster","clutch","coach","coast","coconut","code","coffee","coil","coin","collect","color","column","combine","come","comfort","comic","common","company","concert","conduct","confirm","congress","connect","consider","control","convince","cook","cool","copper","copy","coral","core","corn","correct","cost","cotton","couch","country","couple","course","cousin","cover","coyote","crack","cradle","craft","cram","crane","crash","crater","crawl","crazy","cream","credit","creek","crew","cricket","crime","crisp","critic","crop","cross","crouch","crowd","crucial","cruel","cruise","crumble","crunch","crush","cry","crystal","cube","culture","cup","cupboard","curious","current","curtain","curve","cushion","custom","cute","cycle","dad","damage","damp","dance","danger","daring","dash","daughter","dawn","day","deal","debate","debris","decade","december","decide","decline","decorate","decrease","deer","defense","define","defy","degree","delay","deliver","demand","demise","denial","dentist","deny","depart","depend","deposit","depth","deputy","derive","describe","desert","design","desk","despair","destroy","detail","detect","develop","device","devote","diagram","dial","diamond","diary","dice","diesel","diet","differ","digital","dignity","dilemma","dinner","dinosaur","direct","dirt","disagree","discover","disease","dish","dismiss","disorder","display","distance","divert","divide","divorce","dizzy","doctor","document","dog","doll","dolphin","domain","donate","donkey","donor","door","dose","double","dove","draft","dragon","drama","drastic","draw","dream","dress","drift","drill","drink","drip","drive","drop","drum","dry","duck","dumb","dune","during","dust","dutch","duty","dwarf","dynamic","eager","eagle","early","earn","earth","easily","east","easy","echo","ecology","economy","edge","edit","educate","effort","egg","eight","either","elbow","elder","electric","elegant","element","elephant","elevator","elite","else","embark","embody","embrace","emerge","emotion","employ","empower","empty","enable","enact","end","endless","endorse","enemy","energy","enforce","engage","engine","enhance","enjoy","enlist","enough","enrich","enroll","ensure","enter","entire","entry","envelope","episode","equal","equip","era","erase","erode","erosion","error","erupt","escape","essay","essence","estate","eternal","ethics","evidence","evil","evoke","evolve","exact","example","excess","exchange","excite","exclude","excuse","execute","exercise","exhaust","exhibit","exile","exist","exit","exotic","expand","expect","expire","explain","expose","express","extend","extra","eye","eyebrow","fabric","face","faculty","fade","faint","faith","fall","false","fame","family","famous","fan","fancy","fantasy","farm","fashion","fat","fatal","father","fatigue","fault","favorite","feature","february","federal","fee","feed","feel","female","fence","festival","fetch","fever","few","fiber","fiction","field","figure","file","film","filter","final","find","fine","finger","finish","fire","firm","first","fiscal","fish","fit","fitness","fix","flag","flame","flash","flat","flavor","flee","flight","flip","float","flock","floor","flower","fluid","flush","fly","foam","focus","fog","foil","fold","follow","food","foot","force","forest","forget","fork","fortune","forum","forward","fossil","foster","found","fox","fragile","frame","frequent","fresh","friend","fringe","frog","front","frost","frown","frozen","fruit","fuel","fun","funny","furnace","fury","future","gadget","gain","galaxy","gallery","game","gap","garage","garbage","garden","garlic","garment","gas","gasp","gate","gather","gauge","gaze","general","genius","genre","gentle","genuine","gesture","ghost","giant","gift","giggle","ginger","giraffe","girl","give","glad","glance","glare","glass","glide","glimpse","globe","gloom","glory","glove","glow","glue","goat","goddess","gold","good","goose","gorilla","gospel","gossip","govern","gown","grab","grace","grain","grant","grape","grass","gravity","great","green","grid","grief","grit","grocery","group","grow","grunt","guard","guess","guide","guilt","guitar","gun","gym","habit","hair","half","hammer","hamster","hand","happy","harbor","hard","harsh","harvest","hat","have","hawk","hazard","head","health","heart","heavy","hedgehog","height","hello","helmet","help","hen","hero","hidden","high","hill","hint","hip","hire","history","hobby","hockey","hold","hole","holiday","hollow","home","honey","hood","hope","horn","horror","horse","hospital","host","hotel","hour","hover","hub","huge","human","humble","humor","hundred","hungry","hunt","hurdle","hurry","hurt","husband","hybrid","ice","icon","idea","identify","idle","ignore","ill","illegal","illness","image","imitate","immense","immune","impact","impose","improve","impulse","inch","include","income","increase","index","indicate","indoor","industry","infant","inflict","inform","inhale","inherit","initial","inject","injury","inmate","inner","innocent","input","inquiry","insane","insect","inside","inspire","install","intact","interest","into","invest","invite","involve","iron","island","isolate","issue","item","ivory","jacket","jaguar","jar","jazz","jealous","jeans","jelly","jewel","job","join","joke","journey","joy","judge","juice","jump","jungle","junior","junk","just","kangaroo","keen","keep","ketchup","key","kick","kid","kidney","kind","kingdom","kiss","kit","kitchen","kite","kitten","kiwi","knee","knife","knock","know","lab","label","labor","ladder","lady","lake","lamp","language","laptop","large","later","latin","laugh","laundry","lava","law","lawn","lawsuit","layer","lazy","leader","leaf","learn","leave","lecture","left","leg","legal","legend","leisure","lemon","lend","length","lens","leopard","lesson","letter","level","liar","liberty","library","license","life","lift","light","like","limb","limit","link","lion","liquid","list","little","live","lizard","load","loan","lobster","local","lock","logic","lonely","long","loop","lottery","loud","lounge","love","loyal","lucky","luggage","lumber","lunar","lunch","luxury","lyrics","machine","mad","magic","magnet","maid","mail","main","major","make","mammal","man","manage","mandate","mango","mansion","manual","maple","marble","march","margin","marine","market","marriage","mask","mass","master","match","material","math","matrix","matter","maximum","maze","meadow","mean","measure","meat","mechanic","medal","media","melody","melt","member","memory","mention","menu","mercy","merge","merit","merry","mesh","message","metal","method","middle","midnight","milk","million","mimic","mind","minimum","minor","minute","miracle","mirror","misery","miss","mistake","mix","mixed","mixture","mobile","model","modify","mom","moment","monitor","monkey","monster","month","moon","moral","more","morning","mosquito","mother","motion","motor","mountain","mouse","move","movie","much","muffin","mule","multiply","muscle","museum","mushroom","music","must","mutual","myself","mystery","myth","naive","name","napkin","narrow","nasty","nation","nature","near","neck","need","negative","neglect","neither","nephew","nerve","nest","net","network","neutral","never","news","next","nice","night","noble","noise","nominee","noodle","normal","north","nose","notable","note","nothing","notice","novel","now","nuclear","number","nurse","nut","oak","obey","object","oblige","obscure","observe","obtain","obvious","occur","ocean","october","odor","off","offer","office","often","oil","okay","old","olive","olympic","omit","once","one","onion","online","only","open","opera","opinion","oppose","option","orange","orbit","orchard","order","ordinary","organ","orient","original","orphan","ostrich","other","outdoor","outer","output","outside","oval","oven","over","own","owner","oxygen","oyster","ozone","pact","paddle","page","pair","palace","palm","panda","panel","panic","panther","paper","parade","parent","park","parrot","party","pass","patch","path","patient","patrol","pattern","pause","pave","payment","peace","peanut","pear","peasant","pelican","pen","penalty","pencil","people","pepper","perfect","permit","person","pet","phone","photo","phrase","physical","piano","picnic","picture","piece","pig","pigeon","pill","pilot","pink","pioneer","pipe","pistol","pitch","pizza","place","planet","plastic","plate","play","please","pledge","pluck","plug","plunge","poem","poet","point","polar","pole","police","pond","pony","pool","popular","portion","position","possible","post","potato","pottery","poverty","powder","power","practice","praise","predict","prefer","prepare","present","pretty","prevent","price","pride","primary","print","priority","prison","private","prize","problem","process","produce","profit","program","project","promote","proof","property","prosper","protect","proud","provide","public","pudding","pull","pulp","pulse","pumpkin","punch","pupil","puppy","purchase","purity","purpose","purse","push","put","puzzle","pyramid","quality","quantum","quarter","question","quick","quit","quiz","quote","rabbit","raccoon","race","rack","radar","radio","rail","rain","raise","rally","ramp","ranch","random","range","rapid","rare","rate","rather","raven","raw","razor","ready","real","reason","rebel","rebuild","recall","receive","recipe","record","recycle","reduce","reflect","reform","refuse","region","regret","regular","reject","relax","release","relief","rely","remain","remember","remind","remove","render","renew","rent","reopen","repair","repeat","replace","report","require","rescue","resemble","resist","resource","response","result","retire","retreat","return","reunion","reveal","review","reward","rhythm","rib","ribbon","rice","rich","ride","ridge","rifle","right","rigid","ring","riot","ripple","risk","ritual","rival","river","road","roast","robot","robust","rocket","romance","roof","rookie","room","rose","rotate","rough","round","route","royal","rubber","rude","rug","rule","run","runway","rural","sad","saddle","sadness","safe","sail","salad","salmon","salon","salt","salute","same","sample","sand","satisfy","satoshi","sauce","sausage","save","say","scale","scan","scare","scatter","scene","scheme","school","science","scissors","scorpion","scout","scrap","screen","script","scrub","sea","search","season","seat","second","secret","section","security","seed","seek","segment","select","sell","seminar","senior","sense","sentence","series","service","session","settle","setup","seven","shadow","shaft","shallow","share","shed","shell","sheriff","shield","shift","shine","ship","shiver","shock","shoe","shoot","shop","short","shoulder","shove","shrimp","shrug","shuffle","shy","sibling","sick","side","siege","sight","sign","silent","silk","silly","silver","similar","simple","since","sing","siren","sister","situate","six","size","skate","sketch","ski","skill","skin","skirt","skull","slab","slam","sleep","slender","slice","slide","slight","slim","slogan","slot","slow","slush","small","smart","smile","smoke","smooth","snack","snake","snap","sniff","snow","soap","soccer","social","sock","soda","soft","solar","soldier","solid","solution","solve","someone","song","soon","sorry","sort","soul","sound","soup","source","south","space","spare","spatial","spawn","speak","special","speed","spell","spend","sphere","spice","spider","spike","spin","spirit","split","spoil","sponsor","spoon","sport","spot","spray","spread","spring","spy","square","squeeze","squirrel","stable","stadium","staff","stage","stairs","stamp","stand","start","state","stay","steak","steel","stem","step","stereo","stick","still","sting","stock","stomach","stone","stool","story","stove","strategy","street","strike","strong","struggle","student","stuff","stumble","style","subject","submit","subway","success","such","sudden","suffer","sugar","suggest","suit","summer","sun","sunny","sunset","super","supply","supreme","sure","surface","surge","surprise","surround","survey","suspect","sustain","swallow","swamp","swap","swarm","swear","sweet","swift","swim","swing","switch","sword","symbol","symptom","syrup","system","table","tackle","tag","tail","talent","talk","tank","tape","target","task","taste","tattoo","taxi","teach","team","tell","ten","tenant","tennis","tent","term","test","text","thank","that","theme","then","theory","there","they","thing","this","thought","three","thrive","throw","thumb","thunder","ticket","tide","tiger","tilt","timber","time","tiny","tip","tired","tissue","title","toast","tobacco","today","toddler","toe","together","toilet","token","tomato","tomorrow","tone","tongue","tonight","tool","tooth","top","topic","topple","torch","tornado","tortoise","toss","total","tourist","toward","tower","town","toy","track","trade","traffic","tragic","train","transfer","trap","trash","travel","tray","treat","tree","trend","trial","tribe","trick","trigger","trim","trip","trophy","trouble","truck","true","truly","trumpet","trust","truth","try","tube","tuition","tumble","tuna","tunnel","turkey","turn","turtle","twelve","twenty","twice","twin","twist","two","type","typical","ugly","umbrella","unable","unaware","uncle","uncover","under","undo","unfair","unfold","unhappy","uniform","unique","unit","universe","unknown","unlock","until","unusual","unveil","update","upgrade","uphold","upon","upper","upset","urban","urge","usage","use","used","useful","useless","usual","utility","vacant","vacuum","vague","valid","valley","valve","van","vanish","vapor","various","vast","vault","vehicle","velvet","vendor","venture","venue","verb","verify","version","very","vessel","veteran","viable","vibrant","vicious","victory","video","view","village","vintage","violin","virtual","virus","visa","visit","visual","vital","vivid","vocal","voice","void","volcano","volume","vote","voyage","wage","wagon","wait","walk","wall","walnut","want","warfare","warm","warrior","wash","wasp","waste","water","wave","way","wealth","weapon","wear","weasel","weather","web","wedding","weekend","weird","welcome","west","wet","whale","what","wheat","wheel","when","where","whip","whisper","wide","width","wife","wild","will","win","window","wine","wing","wink","winner","winter","wire","wisdom","wise","wish","witness","wolf","woman","wonder","wood","wool","word","work","world","worry","worth","wrap","wreck","wrestle","wrist","write","wrong","yard","year","yellow","you","young","youth","zebra","zero","zone","zoo"];async function digest(e){return new Uint8Array(await crypto.subtle.digest("SHA-256",e))}async function toSeed(e,t){const r=e.join(" "),n=`mnemonic${t}`.normalize("NFKD");return deriveKey(HashAlgorithm.Sha512,r,n,2048,64)}function legacy1(e,t){const r=convertRadix(e.map((e=>t.indexOf(e.toLowerCase()))),t.length,256,33),n=r[r.length-1],o=new Uint8Array(r.length-1);for(let i=0;i>>1^(1&t?178:0)}return 255^t}function convertRadix(e,t,r,n){let o=new BigNumber$1(0);for(const s of e)o=o.times(t),o=o.plus(s);const i=new Uint8Array(n);for(let s=n-1;s>=0;s-=1){const e=o.dividedToIntegerBy(r),t=o.modulo(r);o=e,i[s]=t.toNumber()}return i}function bytesToBits(e){const t=[];t.fill(!1,0,8*e.length);for(let r=0;rbip39Words[binaryToByte(e)]));return new Mnemonic({words:o})}static fromWords(e){return new Mnemonic({words:e})._validate()}toPrivateKey(e=""){return this.toEd25519PrivateKey(e)}async toEd25519PrivateKey(e="",t=HEDERA_PATH){let{keyData:r,chainCode:n}=await this._toKeyData(e,ED25519_SEED_TEXT);for(const i of t)({keyData:r,chainCode:n}=await derive(r,n,i));const o=nacl.sign.keyPair.fromSeed(r);if(null==CACHE.privateKeyConstructor)throw new Error("PrivateKey not found in cache");return CACHE.privateKeyConstructor(new Ed25519PrivateKey(o,n))}async toStandardEd25519PrivateKey(e="",t){const r=await Mnemonic.toSeed(this.words,e);let n=await PrivateKey.fromSeedED25519(r);t=null==t?0:t;for(const o of[44,3030,0,0,t])n=await n.derive(o);return n}async toEcdsaPrivateKey(e="",t=HEDERA_PATH){let{keyData:r,chainCode:n}=await this._toKeyData(e,ECDSA_SEED_TEXT);for(const o of t)({keyData:r,chainCode:n}=await derive$1(r,n,o));if(null==CACHE.privateKeyConstructor)throw new Error("PrivateKey not found in cache");return CACHE.privateKeyConstructor(new EcdsaPrivateKey(fromBytes(r),n))}async toStandardECDSAsecp256k1PrivateKey(e="",t){const r=await Mnemonic.toSeed(this.words,e);let n=await PrivateKey.fromSeedECDSAsecp256k1(r);t=null==t?0:t;for(const o of[toHardenedIndex(44),toHardenedIndex(3030),toHardenedIndex(0),0,t])n=await n.derive(o);return n}static async toSeed(e,t){return await toSeed(e,t)}async _toKeyData(e,t){const r=await toSeed(this.words,e),n=await hash$2(HashAlgorithm.Sha512,t,r);return{keyData:n.subarray(0,32),chainCode:n.subarray(32)}}static async fromString(e){return Mnemonic.fromWords(e.split(/\s|,/))}async _validate(){if(22===this.words.length){const e=this.words.reduce(((e,t,r)=>legacyWords.includes(t.toLowerCase())?e:[...e,r]),[]);if(e.length>0)throw new BadMnemonicError(this,BadMnemonicReason.UnknownWords,e);const[t,r]=legacy1(this.words,legacyWords);if(r!==crc8(t))throw new BadMnemonicError(this,BadMnemonicReason.ChecksumMismatch,[])}else{if(12!==this.words.length&&24!==this.words.length)throw new BadMnemonicError(this,BadMnemonicReason.BadLength,[]);const e=this.words.reduce(((e,t,r)=>bip39Words.includes(t)?e:[...e,r]),[]);if(e.length>0)throw new BadMnemonicError(this,BadMnemonicReason.UnknownWords,e);const t=this.words.map((e=>bip39Words.indexOf(e).toString(2).padStart(11,"0"))).join(""),r=32*Math.floor(t.length/33),n=t.slice(0,r),o=t.slice(r),i=n.match(/(.{1,8})/g).map(binaryToByte);if(await deriveChecksumBits(Uint8Array.from(i))!==o)throw new BadMnemonicError(this,BadMnemonicReason.ChecksumMismatch,[])}return this}async toLegacyPrivateKey(){let e;if(22===this.words.length?[e]=legacy1(this.words,legacyWords):e=await legacy2(this.words,bip39Words),null==CACHE.privateKeyFromBytes)throw new Error("PrivateKey not found in cache");return CACHE.privateKeyFromBytes(e)}toString(){return this.words.join(" ")}}function binaryToByte(e){return parseInt(e,2)}function bytesToBinary(e){return e.map((e=>e.toString(2).padStart(8,"0"))).join("")}async function deriveChecksumBits(e){const t=8*e.length/32,r=await digest(e);return bytesToBinary(Array.from(r)).slice(0,t)}function e$D(e,t){if(e===t)return!0;if(e.byteLength!==t.byteLength)return!1;const r=new DataView(e.buffer,e.byteOffset,e.byteLength),n=new DataView(t.buffer,t.byteOffset,t.byteLength);let o=e.byteLength;for(;o--;)if(r.getUint8(o)!==n.getUint8(o))return!1;return!0}const t$z=new class{constructor(){this._timeDrift=0,this._contractId=null,this._keyList=null,this._thresholdKey=null,this._publicKeyED25519=null,this._publicKeyECDSA=null,this._privateKeyConstructor=null,this._mnemonicFromString=null,this._accountIdConstructor=null,this._delegateContractId=null,this._evmAddress=null,this._ethereumTransactionDataLegacyFromBytes=null,this._ethereumTransactionDataEip1559FromBytes=null,this._ethereumTransactionDataEip2930FromBytes=null,this._transactionReceiptQueryConstructor=null,this._transactionRecordQueryConstructor=null}setTimeDrift(e){this._timeDrift=e}get timeDrift(){if(null==this._timeDrift)throw new Error("Cache.timeDrift was used before it was set");return this._timeDrift}setContractId(e){this._contractId=e}get contractId(){if(null==this._contractId)throw new Error("Cache.contractId was used before it was set");return this._contractId}setKeyList(e){this._keyList=e}get keyList(){if(null==this._keyList)throw new Error("Cache.keyList was used before it was set");return this._keyList}setThresholdKey(e){this._thresholdKey=e}get thresholdKey(){if(null==this._thresholdKey)throw new Error("Cache.thresholdKey was used before it was set");return this._thresholdKey}setPublicKeyED25519(e){this._publicKeyED25519=e}get publicKeyED25519(){if(null==this._publicKeyED25519)throw new Error("Cache.publicKeyED25519 was used before it was set");return this._publicKeyED25519}setPublicKeyECDSA(e){this._publicKeyECDSA=e}get publicKeyECDSA(){if(null==this._publicKeyECDSA)throw new Error("Cache.publicKeyECDSA was used before it was set");return this._publicKeyECDSA}setPrivateKeyConstructor(e){this._privateKeyConstructor=e}get privateKeyConstructor(){if(null==this._privateKeyConstructor)throw new Error("Cache.privateKeyConstructor was used before it was set");return this._privateKeyConstructor}setMnemonicFromString(e){this._mnemonicFromString=e}get mnemonicFromString(){if(null==this._mnemonicFromString)throw new Error("Cache.mnemonicFromString was used before it was set");return this.mnemonicFromString}setAccountIdConstructor(e){this._accountIdConstructor=e}get accountIdConstructor(){if(null==this._accountIdConstructor)throw new Error("Cache.accountIdConstructor was used before it was set");return this._accountIdConstructor}setDelegateContractId(e){this._delegateContractId=e}get delegateContractId(){if(null==this._delegateContractId)throw new Error("Cache.delegateContractId was used before it was set");return this._delegateContractId}setEvmAddress(e){this._evmAddress=e}get evmAddress(){if(null==this._evmAddress)throw new Error("Cache.evmAddress was used before it was set");return this._evmAddress}setEthereumTransactionDataLegacyFromBytes(e){this._ethereumTransactionDataLegacyFromBytes=e}get ethereumTransactionDataLegacyFromBytes(){if(null==this._ethereumTransactionDataLegacyFromBytes)throw new Error("Cache.ethereumTransactionDataLegacyFromBytes was used before it was set");return this._ethereumTransactionDataLegacyFromBytes}setEthereumTransactionDataEip1559FromBytes(e){this._ethereumTransactionDataEip1559FromBytes=e}get ethereumTransactionDataEip1559FromBytes(){if(null==this._ethereumTransactionDataEip1559FromBytes)throw new Error("Cache.ethereumTransactionDataEip1559FromBytes was used before it was set");return this._ethereumTransactionDataEip1559FromBytes}setEthereumTransactionDataEip2930FromBytes(e){this._ethereumTransactionDataEip2930FromBytes=e}get ethereumTransactionDataEip2930FromBytes(){if(null==this._ethereumTransactionDataEip2930FromBytes)throw new Error("Cache.ethereumTransactionDataEip2930FromBytes was used before it was set");return this._ethereumTransactionDataEip2930FromBytes}setTransactionReceiptQueryConstructor(e){this._transactionReceiptQueryConstructor=e}get transactionReceiptQueryConstructor(){if(null==this._transactionReceiptQueryConstructor)throw new Error("Cache.transactionReceiptQueryConstructor was used before it was set");return this._transactionReceiptQueryConstructor}setTransactionRecordQueryConstructor(e){this._transactionRecordQueryConstructor=e}get transactionRecordQueryConstructor(){if(null==this._transactionRecordQueryConstructor)throw new Error("Cache.transactionRecordQueryConstructor was used before it was set");return this._transactionRecordQueryConstructor}setAddressBookQueryConstructor(e){this._addressBookQueryConstructor=e}get addressBookQueryConstructor(){if(null==this._addressBookQueryConstructor)throw new Error("Cache.addressBookQueryConstructor was used before it was set");return this._addressBookQueryConstructor}};let t$y=class{_toProtobufKey(){throw new Error("not implemented")}static _fromProtobufKey(e){return null!=e.contractID?t$z.contractId(e.contractID):null!=e.delegatableContractId?t$z.delegateContractId(e.delegatableContractId):null!=e.ed25519&&e.ed25519.byteLength>0?t$z.publicKeyED25519(e.ed25519):null!=e.ECDSASecp256k1&&e.ECDSASecp256k1.byteLength>0?t$z.publicKeyECDSA(e.ECDSASecp256k1):null!=e.thresholdKey&&null!=e.thresholdKey.threshold?t$z.thresholdKey(e.thresholdKey):null!=e.keyList?t$z.keyList(e.keyList):null}},i$m=class e extends t$y{constructor(e){super(),this._key=e}static fromBytes(t){return new e(PublicKey.fromBytes(t))}static fromBytesED25519(t){return new e(PublicKey.fromBytesED25519(t))}static fromBytesECDSA(t){return new e(PublicKey.fromBytesECDSA(t))}static fromString(t){return new e(PublicKey.fromString(t))}static fromStringECDSA(t){return new e(PublicKey.fromStringECDSA(t))}static fromStringED25519(t){return new e(PublicKey.fromStringED25519(t))}verify(e,t){return this._key.verify(e,t)}verifyTransaction(e){e._requireFrozen(),e.isFrozen()||e.freeze();for(const t of e._signedTransactions.list)if(null!=t.sigMap&&null!=t.sigMap.sigPair){let e=!1;for(const r of t.sigMap.sigPair){if(e$D(r.pubKeyPrefix,this.toBytesRaw())){e=!0;const n=t.bodyBytes;let o=null;if(null!=r.ed25519?o=r.ed25519:null!=r.ECDSASecp256k1&&(o=r.ECDSASecp256k1),null==o)continue;if(!this.verify(n,o))return!1}}if(!e)return!1}return!0}toBytes(){return this._key.toBytes()}toBytesDer(){return this._key.toBytesDer()}toBytesRaw(){return this._key.toBytesRaw()}toEthereumAddress(){return this._key.toEthereumAddress()}toEvmAddress(){return this._key.toEthereumAddress()}toString(){return this._key.toString()}toStringDer(){return this._key.toStringDer()}toStringRaw(){return this._key.toStringRaw()}equals(e){return this._key.equals(e._key)}_toProtobufKey(){switch(this._key._type){case"ED25519":return{ed25519:this._key.toBytesRaw()};case"secp256k1":return{ECDSASecp256k1:this._key.toBytesRaw()};default:throw new Error(`unrecognized key type ${this._key._type}`)}}_toProtobufSignature(e){switch(this._key._type){case"ED25519":return{pubKeyPrefix:this._key.toBytesRaw(),ed25519:e};case"secp256k1":return{pubKeyPrefix:this._key.toBytesRaw(),ECDSASecp256k1:e};default:throw new Error(`unrecognized key type ${this._key._type}`)}}get type(){return this._key._type}toAccountId(e,t){return t$z.accountIdConstructor(e,t,this)}static unusableKey(){return e.fromStringED25519("0000000000000000000000000000000000000000000000000000000000000000")}};t$z.setPublicKeyED25519((e=>i$m.fromBytesED25519(e))),t$z.setPublicKeyECDSA((e=>i$m.fromBytesECDSA(e)));const version$a="logger/5.8.0";let _permanentCensorErrors=!1,_censorErrors=!1;const LogLevels={debug:1,default:2,info:2,warning:3,error:4,off:5};let _logLevel=LogLevels.default,_globalLogger=null;function _checkNormalize(){try{const e=[];if(["NFD","NFC","NFKD","NFKC"].forEach((t=>{try{if("test"!=="test".normalize(t))throw new Error("bad normalize")}catch(r){e.push(t)}})),e.length)throw new Error("missing "+e.join(", "));if(String.fromCharCode(233).normalize("NFD")!==String.fromCharCode(101,769))throw new Error("broken implementation")}catch(e){return e.message}return null}const _normalizeError=_checkNormalize();var LogLevel,LogLevel2,ErrorCode,ErrorCode2;LogLevel2=LogLevel||(LogLevel={}),LogLevel2.DEBUG="DEBUG",LogLevel2.INFO="INFO",LogLevel2.WARNING="WARNING",LogLevel2.ERROR="ERROR",LogLevel2.OFF="OFF",ErrorCode2=ErrorCode||(ErrorCode={}),ErrorCode2.UNKNOWN_ERROR="UNKNOWN_ERROR",ErrorCode2.NOT_IMPLEMENTED="NOT_IMPLEMENTED",ErrorCode2.UNSUPPORTED_OPERATION="UNSUPPORTED_OPERATION",ErrorCode2.NETWORK_ERROR="NETWORK_ERROR",ErrorCode2.SERVER_ERROR="SERVER_ERROR",ErrorCode2.TIMEOUT="TIMEOUT",ErrorCode2.BUFFER_OVERRUN="BUFFER_OVERRUN",ErrorCode2.NUMERIC_FAULT="NUMERIC_FAULT",ErrorCode2.MISSING_NEW="MISSING_NEW",ErrorCode2.INVALID_ARGUMENT="INVALID_ARGUMENT",ErrorCode2.MISSING_ARGUMENT="MISSING_ARGUMENT",ErrorCode2.UNEXPECTED_ARGUMENT="UNEXPECTED_ARGUMENT",ErrorCode2.CALL_EXCEPTION="CALL_EXCEPTION",ErrorCode2.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",ErrorCode2.NONCE_EXPIRED="NONCE_EXPIRED",ErrorCode2.REPLACEMENT_UNDERPRICED="REPLACEMENT_UNDERPRICED",ErrorCode2.UNPREDICTABLE_GAS_LIMIT="UNPREDICTABLE_GAS_LIMIT",ErrorCode2.TRANSACTION_REPLACED="TRANSACTION_REPLACED",ErrorCode2.ACTION_REJECTED="ACTION_REJECTED";const HEX="0123456789abcdef";class Logger{constructor(e){Object.defineProperty(this,"version",{enumerable:!0,value:e,writable:!1})}_log(e,t){const r=e.toLowerCase();null==LogLevels[r]&&this.throwArgumentError("invalid log level name","logLevel",e),_logLevel>LogLevels[r]||console.log.apply(console,t)}debug(...e){this._log(Logger.levels.DEBUG,e)}info(...e){this._log(Logger.levels.INFO,e)}warn(...e){this._log(Logger.levels.WARNING,e)}makeError(e,t,r){if(_censorErrors)return this.makeError("censored error",t,{});t||(t=Logger.errors.UNKNOWN_ERROR),r||(r={});const n=[];Object.keys(r).forEach((e=>{const t=r[e];try{if(t instanceof Uint8Array){let r="";for(let e=0;e>4],r+=HEX[15&t[e]];n.push(e+"=Uint8Array(0x"+r+")")}else n.push(e+"="+JSON.stringify(t))}catch(o){n.push(e+"="+JSON.stringify(r[e].toString()))}})),n.push(`code=${t}`),n.push(`version=${this.version}`);const o=e;let i="";switch(t){case ErrorCode.NUMERIC_FAULT:{i="NUMERIC_FAULT";const t=e;switch(t){case"overflow":case"underflow":case"division-by-zero":i+="-"+t;break;case"negative-power":case"negative-width":i+="-unsupported";break;case"unbound-bitwise-result":i+="-unbound-result"}break}case ErrorCode.CALL_EXCEPTION:case ErrorCode.INSUFFICIENT_FUNDS:case ErrorCode.MISSING_NEW:case ErrorCode.NONCE_EXPIRED:case ErrorCode.REPLACEMENT_UNDERPRICED:case ErrorCode.TRANSACTION_REPLACED:case ErrorCode.UNPREDICTABLE_GAS_LIMIT:i=t}i&&(e+=" [ See: https://links.ethers.org/v5-errors-"+i+" ]"),n.length&&(e+=" ("+n.join(", ")+")");const s=new Error(e);return s.reason=o,s.code=t,Object.keys(r).forEach((function(e){s[e]=r[e]})),s}throwError(e,t,r){throw this.makeError(e,t,r)}throwArgumentError(e,t,r){return this.throwError(e,Logger.errors.INVALID_ARGUMENT,{argument:t,value:r})}assert(e,t,r,n){e||this.throwError(t,r,n)}assertArgument(e,t,r,n){e||this.throwArgumentError(t,r,n)}checkNormalize(e){_normalizeError&&this.throwError("platform missing String.prototype.normalize",Logger.errors.UNSUPPORTED_OPERATION,{operation:"String.prototype.normalize",form:_normalizeError})}checkSafeUint53(e,t){"number"==typeof e&&(null==t&&(t="value not safe"),(e<0||e>=9007199254740991)&&this.throwError(t,Logger.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"out-of-safe-range",value:e}),e%1&&this.throwError(t,Logger.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"non-integer",value:e}))}checkArgumentCount(e,t,r){r=r?": "+r:"",et&&this.throwError("too many arguments"+r,Logger.errors.UNEXPECTED_ARGUMENT,{count:e,expectedCount:t})}checkNew(e,t){e!==Object&&null!=e||this.throwError("missing new",Logger.errors.MISSING_NEW,{name:t.name})}checkAbstract(e,t){e===t?this.throwError("cannot instantiate abstract class "+JSON.stringify(t.name)+" directly; use a sub-class",Logger.errors.UNSUPPORTED_OPERATION,{name:e.name,operation:"new"}):e!==Object&&null!=e||this.throwError("missing new",Logger.errors.MISSING_NEW,{name:t.name})}static globalLogger(){return _globalLogger||(_globalLogger=new Logger(version$a)),_globalLogger}static setCensorship(e,t){if(!e&&t&&this.globalLogger().throwError("cannot permanently disable censorship",Logger.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"}),_permanentCensorErrors){if(!e)return;this.globalLogger().throwError("error censorship permanent",Logger.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"})}_censorErrors=!!e,_permanentCensorErrors=!!t}static setLogLevel(e){const t=LogLevels[e.toLowerCase()];null!=t?_logLevel=t:Logger.globalLogger().warn("invalid log level - "+e)}static from(e){return new Logger(e)}}Logger.errors=ErrorCode,Logger.levels=LogLevel;const version$9="bytes/5.8.0",logger$9=new Logger(version$9);function isHexable(e){return!!e.toHexString}function addSlice(e){return e.slice||(e.slice=function(){const t=Array.prototype.slice.call(arguments);return addSlice(new Uint8Array(Array.prototype.slice.apply(e,t)))}),e}function isBytesLike(e){return isHexString(e)&&!(e.length%2)||isBytes(e)}function isInteger(e){return"number"==typeof e&&e==e&&e%1==0}function isBytes(e){if(null==e)return!1;if(e.constructor===Uint8Array)return!0;if("string"==typeof e)return!1;if(!isInteger(e.length)||e.length<0)return!1;for(let t=0;t=256)return!1}return!0}function arrayify(e,t){if(t||(t={}),"number"==typeof e){logger$9.checkSafeUint53(e,"invalid arrayify value");const t=[];for(;e;)t.unshift(255&e),e=parseInt(String(e/256));return 0===t.length&&t.push(0),addSlice(new Uint8Array(t))}if(t.allowMissingPrefix&&"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),isHexable(e)&&(e=e.toHexString()),isHexString(e)){let r=e.substring(2);r.length%2&&("left"===t.hexPad?r="0"+r:"right"===t.hexPad?r+="0":logger$9.throwArgumentError("hex data is odd-length","value",e));const n=[];for(let e=0;earrayify(e))),r=t.reduce(((e,t)=>e+t.length),0),n=new Uint8Array(r);return t.reduce(((e,t)=>(n.set(t,e),e+t.length)),0),addSlice(n)}function zeroPad(e,t){(e=arrayify(e)).length>t&&logger$9.throwArgumentError("value out of range","value",arguments[0]);const r=new Uint8Array(t);return r.set(e,t-e.length),addSlice(r)}function isHexString(e,t){return!("string"!=typeof e||!e.match(/^0x[0-9A-Fa-f]*$/))&&(!t||e.length===2+2*t)}const HexCharacters="0123456789abcdef";function hexlify(e,t){if(t||(t={}),"number"==typeof e){logger$9.checkSafeUint53(e,"invalid hexlify value");let t="";for(;e;)t=HexCharacters[15&e]+t,e=Math.floor(e/16);return t.length?(t.length%2&&(t="0"+t),"0x"+t):"0x00"}if("bigint"==typeof e)return(e=e.toString(16)).length%2?"0x0"+e:"0x"+e;if(t.allowMissingPrefix&&"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),isHexable(e))return e.toHexString();if(isHexString(e))return e.length%2&&("left"===t.hexPad?e="0x0"+e.substring(2):"right"===t.hexPad?e+="0":logger$9.throwArgumentError("hex data is odd-length","value",e)),e.toLowerCase();if(isBytes(e)){let t="0x";for(let r=0;r>4]+HexCharacters[15&n]}return t}return logger$9.throwArgumentError("invalid hexlify value","value",e)}function hexDataLength(e){if("string"!=typeof e)e=hexlify(e);else if(!isHexString(e)||e.length%2)return null;return(e.length-2)/2}function hexDataSlice(e,t,r){return"string"!=typeof e?e=hexlify(e):(!isHexString(e)||e.length%2)&&logger$9.throwArgumentError("invalid hexData","value",e),t=2+2*t,"0x"+e.substring(t)}function hexConcat(e){let t="0x";return e.forEach((e=>{t+=hexlify(e).substring(2)})),t}function hexZeroPad(e,t){for("string"!=typeof e?e=hexlify(e):isHexString(e)||logger$9.throwArgumentError("invalid hex string","value",e),e.length>2*t+2&&logger$9.throwArgumentError("value out of range","value",arguments[1]);e.length<2*t+2;)e="0x0"+e.substring(2);return e}function splitSignature(e){const t={r:"0x",s:"0x",_vs:"0x",recoveryParam:0,v:0,yParityAndS:"0x",compact:"0x"};if(isBytesLike(e)){let r=arrayify(e);64===r.length?(t.v=27+(r[32]>>7),r[32]&=127,t.r=hexlify(r.slice(0,32)),t.s=hexlify(r.slice(32,64))):65===r.length?(t.r=hexlify(r.slice(0,32)),t.s=hexlify(r.slice(32,64)),t.v=r[64]):logger$9.throwArgumentError("invalid signature string","signature",e),t.v<27&&(0===t.v||1===t.v?t.v+=27:logger$9.throwArgumentError("signature invalid v byte","signature",e)),t.recoveryParam=1-t.v%2,t.recoveryParam&&(r[32]|=128),t._vs=hexlify(r.slice(32,64))}else{if(t.r=e.r,t.s=e.s,t.v=e.v,t.recoveryParam=e.recoveryParam,t._vs=e._vs,null!=t._vs){const r=zeroPad(arrayify(t._vs),32);t._vs=hexlify(r);const n=r[0]>=128?1:0;null==t.recoveryParam?t.recoveryParam=n:t.recoveryParam!==n&&logger$9.throwArgumentError("signature recoveryParam mismatch _vs","signature",e),r[0]&=127;const o=hexlify(r);null==t.s?t.s=o:t.s!==o&&logger$9.throwArgumentError("signature v mismatch _vs","signature",e)}if(null==t.recoveryParam)null==t.v?logger$9.throwArgumentError("signature missing v and recoveryParam","signature",e):0===t.v||1===t.v?t.recoveryParam=t.v:t.recoveryParam=1-t.v%2;else if(null==t.v)t.v=27+t.recoveryParam;else{const r=0===t.v||1===t.v?t.v:1-t.v%2;t.recoveryParam!==r&&logger$9.throwArgumentError("signature recoveryParam mismatch v","signature",e)}null!=t.r&&isHexString(t.r)?t.r=hexZeroPad(t.r,32):logger$9.throwArgumentError("signature missing or invalid r","signature",e),null!=t.s&&isHexString(t.s)?t.s=hexZeroPad(t.s,32):logger$9.throwArgumentError("signature missing or invalid s","signature",e);const r=arrayify(t.s);r[0]>=128&&logger$9.throwArgumentError("signature s out of range","signature",e),t.recoveryParam&&(r[0]|=128);const n=hexlify(r);t._vs&&(isHexString(t._vs)||logger$9.throwArgumentError("signature invalid _vs","signature",e),t._vs=hexZeroPad(t._vs,32)),null==t._vs?t._vs=n:t._vs!==n&&logger$9.throwArgumentError("signature _vs mismatch v and s","signature",e)}return t.yParityAndS=t._vs,t.compact=t.r+t.yParityAndS.substring(2),t}let a$l=class e{constructor(e){this._mnemonic=e}static async generate(){return new e(await Mnemonic._generate(24))}static async generate12(){return new e(await Mnemonic._generate(12))}static async fromWords(t){return new e(await Mnemonic.fromWords(t))}async toPrivateKey(e=""){return t$z.privateKeyConstructor(await this._mnemonic.toPrivateKey(e))}async toEd25519PrivateKey(e="",t){return t$z.privateKeyConstructor(await this._mnemonic.toEd25519PrivateKey(e,t))}async toStandardEd25519PrivateKey(e="",t){return t$z.privateKeyConstructor(await this._mnemonic.toStandardEd25519PrivateKey(e,t))}async toEcdsaPrivateKey(e="",t){return t$z.privateKeyConstructor(await this._mnemonic.toEcdsaPrivateKey(e,t))}calculateDerivationPathValues(e){const t=/m\/(\d+'?)\/(\d+'?)\/(\d+'?)\/(\d+'?)\/(\d+'?)/.exec(e),r=new Array(5);if(t)for(let n=1;n<=5;n++){let e=t[n];e.endsWith("'")?(e=e.substring(0,e.length-1),r[n-1]=2147483648|parseInt(e,10)):r[n-1]=parseInt(e,10)}return r}async toStandardECDSAsecp256k1PrivateKeyImpl(e,t){return await this.toEcdsaPrivateKey(e,t)}async toStandardECDSAsecp256k1PrivateKey(e="",t){return t$z.privateKeyConstructor(await this._mnemonic.toStandardECDSAsecp256k1PrivateKey(e,t))}async toStandardECDSAsecp256k1PrivateKeyCustomDerivationPath(e="",t){const r=this.calculateDerivationPathValues(t);return await this.toStandardECDSAsecp256k1PrivateKeyImpl(e,r)}static async fromString(t){return new e(await Mnemonic.fromString(t))}async toLegacyPrivateKey(){return t$z.privateKeyConstructor(await this._mnemonic.toLegacyPrivateKey())}async toSeed(e){return await Mnemonic.toSeed(this._mnemonic.words,e)}toString(){return this._mnemonic.toString()}},t$x=class{constructor(e){this._map=new Map,this.__map=new Map,this._fromString=e}get(e){const t="string"==typeof e?e:e.toString(),r=this._map.get(t);return null!=r?r:null}_set(e,t){const r="string"==typeof e?e:e.toString();this._map.set(r,t),this.__map.set(e,t)}values(){return this._map.values()}get size(){return this._map.size}keys(){return this.__map.keys()}[Symbol.iterator](){return this.__map[Symbol.iterator]()}toString(){const e={};for(const[t,r]of this._map)e[t]=r;return JSON.stringify(e)}toJSON(){const e={};return this._map.forEach(((t,r)=>{e[r]=t})),e}};const t$w=[];for(let ee=0;ee<=255;ee+=1)t$w.push(ee.toString(16).padStart(2,"0"));function n$C(e){let t="";for(const r of e)t+=t$w[r];return t}function r$G(e){const t=(e.startsWith("0x")?e.substring(2):e).match(/.{1,2}/gu);return new Uint8Array((null==t?[]:t).map((e=>parseInt(e,16))))}let t$v=class extends Error{constructor(e,t,r,n,o){super(`Entity ID ${e.toString()}.${t.toString()}.${r.toString()}-${n} was incorrect.`),this.name="BadEntityIdException",this.shard=e,this.realm=t,this.num=r,this.presentChecksum=n,this.expectedChecksum=o}};const n$B="This value cannot be null | undefined.",r$F="This value must be a string or Uint8Array.",o$y="The provided variable must be an Array.",i$l="This value must be a String, Number, or BigNumber to be converted.",f$a="This value must be a String, Number, or BigNumber to be converted.",u$l="Unable to parse given variable. Returns NaN.";function a$k(e){return null!=e}function b$9(e){return a$k(e)&&e instanceof Uint8Array}function s$s(e){return a$k(e)&&("number"==typeof e||e instanceof Number)}function c$j(e){return a$k(e)&&e instanceof BigNumber$1}function h$d(e){return a$k(e)&&e instanceof Long}function g$8(e){return a$k(e)&&"string"==typeof e}function l$n(e){return a$k(e)&&(g$8(e)||b$9(e))}function w$a(e){for(let t=0;t<12;t++)if(0!=e[t])return!1;return!0}function y$c(e){if(e.isNegative())throw new Error("negative value not allowed");return e}function m$9(e){if(a$k(e))return e;throw new Error(n$B)}function p$6(e){if(l$n(m$9(e)))return e;throw new Error(r$F)}function v$8(e){if(m$9(e),c$j(e)||g$8(e)||s$s(e)||h$d(e))return new BigNumber$1(e);throw new Error(i$l)}function N$5(e){if(e instanceof Array)return e.map(v$8);throw new Error(o$y)}function d$k(e){if(m$9(e),c$j(e)||g$8(e)||s$s(e)||h$d(e)){const t=parseInt(e);if(isNaN(t))throw new Error(u$l);return t}throw new Error(f$a)}function E$8(e,t=0,r=e.byteLength){if(!(Number.isInteger(t)&&t>=0))throw new Error("Invalid offset!");if(!(Number.isInteger(r)&&r>=0))throw new Error("Invalid length!");return new DataView(e.buffer,e.byteOffset+t,Math.min(r,e.byteLength-t))}function L$6(e,t,r=new Set){if("object"==typeof e&&"object"==typeof t){const n=Object.keys(e),o=Object.keys(t);if(n.length!==o.length)return!1;for(let i=0;isetTimeout(t,e)))}const o$x={loose:!0},a$j={pad:!1};var r$E={decode:e=>e&&base32$2.parse(e,o$x),encode:e=>e&&base32$2.stringify(e,a$j)};const c$i=/"^(0|(?:[1-9]\\d*))\\.(0|(?:[1-9]\\d*))\\.(0|(?:[1-9]\\d*))(?:-([a-z]{5}))?$/,m$8=/^(\d+)(?:\.(\d+)\.([a-fA-F0-9]+))?(?:-([a-z]{5}))?$/;function f$9(e,t,r){if(null==t&&null!=r||null!=t&&null==r)throw new Error("invalid entity ID");const[n,o,i]="number"==typeof e||Long.isLong(e)?[null!=r?Long.fromValue(e):Long.ZERO,null!=t?Long.fromValue(t):Long.ZERO,null!=r?Long.fromValue(r):Long.fromValue(e)]:[null!=e.shard?Long.fromValue(e.shard):Long.ZERO,null!=e.realm?Long.fromValue(e.realm):Long.ZERO,Long.fromValue(e.num)];if(n.isNegative()||o.isNegative()||i.isNegative())throw new Error("negative numbers are not allowed in IDs");return{shard:n,realm:o,num:i}}function h$c(e,t){let r=e[0].compare(t[0]);return 0!=r?r:(r=e[1].compare(t[1]),0!=r?r:e[2].compare(t[2]))}function d$j(e){const t=m$8.exec(e);if(null==t)throw new Error(`failed to parse entity id: ${e}`);return null==t[2]&&null==t[3]?{shard:"0",realm:"0",numOrHex:t[1],checksum:t[4]}:{shard:t[1],realm:t[2],numOrHex:t[3],checksum:t[4]}}function g$7(e){const t=d$j(e);if(Number.isNaN(t.shard)||Number.isNaN(t.realm)||Number.isNaN(t.numOrHex))throw new Error("invalid format for entity ID");return{shard:null!=t.shard?Long.fromString(t.shard):Long.ZERO,realm:null!=t.realm?Long.fromString(t.realm):Long.ZERO,num:Long.fromString(t.numOrHex),checksum:t.checksum}}function w$9(e){const t=e.startsWith("0x")?r$G(e.slice(2)):r$G(e);if(20!==t.length)throw new Error(`Invalid hex encoded solidity address length:\n expected length 40, got length ${e.length}`);return[Long.fromBytesBE([0,0,0,0,...t.slice(0,4)]),Long.fromBytesBE(Array.from(t.slice(4,12))),Long.fromBytesBE(Array.from(t.slice(12,20)))]}function y$b(e){const t=new Uint8Array(20),r=E$8(t),[n,o,i]=e;return r.setUint32(0,d$k(n)),r.setUint32(8,d$k(o)),r.setUint32(16,d$k(i)),n$C(t)}function p$5(e,t){let r=c$i.exec(t);if(null===r)return{status:0};let n=[Long.fromString(r[1]),Long.fromString(r[2]),Long.fromString(r[3])],o=`${n[0].toString()}.${n[1].toString()}.${n[2].toString()}`,i=E$7(e,o);return{status:void 0===r[4]?2:i==r[4]?3:1,num1:n[0],num2:n[1],num3:n[2],givenChecksum:r[4],correctChecksum:i,noChecksumFormat:o,withChecksumFormat:`${o}-${i}`}}function E$7(e,t){let r="",n=[],o=0,i=0,s=0,a=0,c=0;const u=11881376,l="a".charCodeAt(0);let d=new Uint8Array(e.length+6);d.set(e,0),d.set([0,0,0,0,0,0],e.length);for(let h=0;h0?i$m.fromBytes(r.ed25519):null!=r.ECDSASecp256k1&&r.ECDSASecp256k1.byteLength>0?i$m.fromBytes(r.ECDSASecp256k1):null}function $$5(e){const t=r$E.decode(e);if(!t)return null;try{throw proto_1.Key.decode(t),new Error("The alias is created with ed25519 or ECDSASecp256k1 account. Please use aliasToPublicKey!")}catch(n){return r="0x",t.forEach((function(e){r+=("0"+(255&e).toString(16)).slice(-2)})),r}var r}function b$8(e){if("string"==typeof e&&(e.startsWith("0x")&&42==e.length||40==e.length)){e.startsWith("0x")||(e=`0x${e}`);const t=arrayify(e);return t?r$E.encode(t):null}const t="string"==typeof e?i$m.fromString(e):e;let r=t.toStringRaw(),n="";"secp256k1"===t._key._type&&(n="0x3A21"),"ED25519"===t._key._type&&(n="0x1220"),r.startsWith("0x")||(r=`0x${r}`);const o=(i=arrayify(n),s=arrayify(r),(a=new Uint8Array(i.byteLength+s.byteLength)).set(new Uint8Array(i),0),a.set(new Uint8Array(s),i.byteLength),a);var i,s,a;return r$E.encode(o)}const EntityIdHelper=Object.freeze(Object.defineProperty({__proto__:null,_checksum:E$7,_parseAddress:p$5,aliasToEvmAddress:$$5,aliasToPublicKey:x$8,compare:h$c,constructor:f$9,fromSolidityAddress:w$9,fromString:g$7,fromStringSplitter:d$j,publicKeyToAlias:b$8,toSolidityAddress:y$b,toStringWithChecksum:k$8,validateChecksum:S$a},Symbol.toStringTag,{value:"Module"}));let i$k=class e extends t$y{constructor(e){super(),this._bytes=e}static fromString(t){if(40!==(t=t.startsWith("0x")?t.slice(2):t).length)throw new Error("Input EVM address string is not the correct size");return new e(r$G(t))}static fromBytes(t){return new e(t)}toBytes(){return this._bytes}toString(){return n$C(this._bytes)}equals(e){return j$4(this._bytes,e._bytes)}},f$8=class e{constructor(e,t,r,n,o){const i=f$9(e,t,r);this.shard=i.shard,this.realm=i.realm,this.num=i.num,this.aliasKey=null!=n?n:null,this.evmAddress=null!=o?o:null,this._checksum=null}static fromString(t){let r,n,o=Long.ZERO,i=Long.ZERO,s=Long.ZERO;if(t.startsWith("0x")&&42==t.length||40==t.length)n=i$k.fromString(t);else{const e=d$j(t);if(Number.isNaN(e.shard)||Number.isNaN(e.realm))throw new Error("invalid format for entity ID");null!=e.shard&&(o=Long.fromString(e.shard)),null!=e.realm&&(i=Long.fromString(e.realm)),e.numOrHex.length<20?s=Long.fromString(e.numOrHex):40==e.numOrHex.length?n=i$k.fromString(e.numOrHex):r=i$m.fromString(e.numOrHex)}return new e(o,i,s,r,n)}static fromEvmAddress(t,r,n){const o="string"==typeof n?i$k.fromString(n):n;return w$a(o.toBytes())?new e(...w$9(o.toString())):new e(t,r,0,void 0,o)}static fromEvmPublicAddress(t){return new e(0,0,0,void 0,t)}static _fromProtobuf(t){let r,n;return null!=t.alias&&(20===t.alias.length?n=i$k.fromBytes(t.alias):r=t$y._fromProtobufKey(proto_1.Key.decode(t.alias))),r instanceof i$m||(r=void 0),new e(null!=t.shardNum?t.shardNum:0,null!=t.realmNum?t.realmNum:0,null!=t.accountNum?t.accountNum:0,r,n)}get checksum(){return this._checksum}getEvmAddress(){return this.evmAddress}async populateAccountNum(e){if(null===this.evmAddress)throw new Error("field `evmAddress` should not be null");const t=e.mirrorNetwork[0].slice(0,e.mirrorNetwork[0].indexOf(":"));await new Promise((e=>{setTimeout(e,3e3)}));const r=`https://${t}/api/v1/accounts/${this.evmAddress.toString()}`,n=await fetch(r),o=(await n.json()).account;return this.num=Long.fromString(o.slice(o.lastIndexOf(".")+1)),this}async populateAccountEvmAddress(e){if(null===this.num)throw new Error("field `num` should not be null");const t=e.mirrorNetwork[0].slice(0,e.mirrorNetwork[0].indexOf(":"));await new Promise((e=>{setTimeout(e,3e3)}));const r=`https://${t}/api/v1/accounts/${this.num.toString()}`,n=await fetch(r),o=(await n.json()).evm_address;return this.evmAddress=i$k.fromString(o),this}validate(e){console.warn("Deprecated: Use `validateChecksum` instead"),this.validateChecksum(e)}validateChecksum(e){if(null!=this.aliasKey)throw new Error("cannot calculate checksum with an account ID that has a aliasKey");S$a(this.shard,this.realm,this.num,this._checksum,e)}static fromBytes(t){return e._fromProtobuf(proto_1.AccountID.decode(t))}static fromSolidityAddress(t){return w$a(r$G(t))?new e(...w$9(t)):this.fromEvmAddress(0,0,t)}toSolidityAddress(){return null!=this.evmAddress?this.evmAddress.toString():null!=this.aliasKey&&"secp256k1"==this.aliasKey._key._type?this.aliasKey.toEvmAddress():y$b([this.shard,this.realm,this.num])}_toProtobuf(){let e=null;null!=this.aliasKey?e=proto_1.Key.encode(this.aliasKey._toProtobufKey()).finish():null!=this.evmAddress&&(e=this.evmAddress._bytes);const t=this.num.eq(Long.fromBigInt(0n))&&e;return e?{alias:t?e:null,accountNum:t?null:this.num,shardNum:this.shard,realmNum:this.realm}:{alias:null,accountNum:this.num,shardNum:this.shard,realmNum:this.realm}}toBytes(){return proto_1.AccountID.encode(this._toProtobuf()).finish()}toString(){let e=this.num.toString();return null!=this.aliasKey?e=this.aliasKey.toString():null!=this.evmAddress&&(e=this.evmAddress.toString()),`${this.shard.toString()}.${this.realm.toString()}.${e}`}toStringWithChecksum(e){if(null!=this.aliasKey)throw new Error("cannot calculate checksum with an account ID that has a aliasKey");return k$8(this.toString(),e)}equals(e){let t=!1;return null!=this.aliasKey&&null!=e.aliasKey?t=this.aliasKey.equals(e.aliasKey):null!=this.evmAddress&&null!=e.evmAddress?t=this.evmAddress.equals(e.evmAddress):null==this.aliasKey&&null==e.aliasKey&&null==this.evmAddress&&null==e.evmAddress&&(t=this.num.eq(e.num)),this.shard.eq(e.shard)&&this.realm.eq(e.realm)&&t}clone(){const t=new e(this);return t._checksum=this._checksum,t.aliasKey=this.aliasKey,t.evmAddress=this.evmAddress,t}compare(e){let t=this.shard.compare(e.shard);if(0!=t)return t;if(t=this.realm.compare(e.realm),0!=t)return t;if(null!=this.aliasKey&&null!=e.aliasKey){const t=this.aliasKey.toString(),r=e.aliasKey.toString();return t>r?1:tr?1:tnew f$8(e,t,Long.ZERO,r)));const o$w=Long.fromNumber(1e9),n$A=new Set;let s$r=class e{constructor(e,t){this.seconds=e instanceof Long?e:Long.fromNumber(e),this.nanos=t instanceof Long?t:Long.fromNumber(t),Object.freeze(this)}static generate(t=!0){let r;r=t?Math.floor(5e3*Math.random())+3e3:0;const n=Date.now()-r,o=Math.floor(n/1e3)+t$z.timeDrift,i=1e6*Math.floor(n%1e3)+Math.floor(1e6*Math.random()),s=new e(o,i);return n$A.has(s.toString())?this.generate():(n$A.add(s.toString()),s)}static fromDate(t){let r;if("number"==typeof t)r=Long.fromNumber(t);else if("string"==typeof t)r=Long.fromNumber(Date.parse(t)).mul(1e6);else{if(!(t instanceof Date))throw new TypeError(`invalid type '${typeof t}' for 'data', expected 'Date'`);r=Long.fromNumber(t.getTime()).mul(1e6)}return new e(0,0).plusNanos(r)}toDate(){return new Date(1e3*this.seconds.toInt()+Math.floor(this.nanos.toInt()/1e6))}plusNanos(t){const r=this.nanos.add(t);return new e(this.seconds.add(r.div(o$w)),r.mod(o$w))}_toProtobuf(){return{seconds:this.seconds,nanos:this.nanos.toInt()}}static _fromProtobuf(t){return new e(t.seconds instanceof Long?t.seconds.toInt():null!=t.seconds?t.seconds:0,null!=t.nanos?t.nanos:0)}toString(){const e=String(this.nanos).padStart(9,"0");return`${this.seconds.toString()}.${e}`}compare(e){const t=this.seconds.compare(e.seconds);return 0!=t?t:this.nanos.compare(e.nanos)}},i$j=class e{constructor(e,t,r=!1,n=null){this.accountId=e,this.validStart=t,this.scheduled=r,this.nonce=null,null!=n&&0!=n&&this.setNonce(n),Object.seal(this)}setNonce(e){return this.nonce="number"==typeof e?Long.fromNumber(e):e,this}static withValidStart(t,r){return new e(t,r)}static generate(t){return new e("string"==typeof t?f$8.fromString(t):new f$8(t),s$r.generate())}static fromString(t){let r,n,o,i,s,a;return[r,a]=t.split("@"),[n,a]=a.split("."),a.includes("?")?([o,a]=a.split("?scheduled"),i=!0,s=a.includes("/")?a.replace("/",""):null):a.includes("/")?([o,s]=a.split("/"),i=!1):o=a,new e(f$8.fromString(r),new s$r(Long.fromValue(n),Long.fromValue(o)),i,null!=s?Long.fromString(s):null)}setScheduled(e){return this.scheduled=e,this}toString(){if(null!=this.accountId&&null!=this.validStart){const e=String(this.validStart.nanos).padStart(9,"0"),t=null!=this.nonce?"/".concat(this.nonce.toString()):"",r=this.scheduled?"?scheduled":"";return`${this.accountId.toString()}@${this.validStart.seconds.toString()}.${e}${r}${t}`}throw new Error("neither `accountId` nor `validStart` are set")}static _fromProtobuf(t){if(null!=t.accountID&&null!=t.transactionValidStart)return new e(f$8._fromProtobuf(t.accountID),s$r._fromProtobuf(t.transactionValidStart),null!=t.scheduled?t.scheduled:void 0,null!=t.nonce?t.nonce:void 0);throw new Error("Neither `nonce` or `accountID` and `transactionValidStart` are set")}_toProtobuf(){return{accountID:null!=this.accountId?this.accountId._toProtobuf():null,transactionValidStart:null!=this.validStart?this.validStart._toProtobuf():null,scheduled:this.scheduled,nonce:null!=this.nonce?this.nonce.toInt():null}}static fromBytes(t){return e._fromProtobuf(proto_1.TransactionID.decode(t))}toBytes(){return proto_1.TransactionID.encode(this._toProtobuf()).finish()}clone(){return new e(this.accountId,this.validStart,this.scheduled,this.nonce)}compare(e){const t=this.accountId.compare(e.accountId);return 0!=t?t:this.validStart.compare(e.validStart)}getReceipt(e){return t$z.transactionReceiptQueryConstructor().setTransactionId(this).execute(e)}async getRecord(e){return await this.getReceipt(e),t$z.transactionRecordQueryConstructor().setTransactionId(this).execute(e)}},t$u=class e extends t$x{constructor(){super((e=>i$m.fromString(e)))}static _fromTransactionSigMap(t){const r=new e,n=null!=t.sigPair?t.sigPair:[];for(const e of n)null!=e.pubKeyPrefix&&(null!=e.ed25519?r._set(i$m.fromBytesED25519(e.pubKeyPrefix),e.ed25519):null!=e.ECDSASecp256k1&&r._set(i$m.fromBytesECDSA(e.pubKeyPrefix),e.ECDSASecp256k1));return r}addSignature(e,t){return this._set(e,t),this}},n$z=class e extends t$x{constructor(){super((e=>i$j.fromString(e)))}static _fromSignedTransactions(t){const r=new e;for(const{bodyBytes:e,sigMap:n}of t.list)if(null!=e&&null!=n){const t=proto_1.TransactionBody.decode(e);if(null!=t.transactionID){const e=i$j._fromProtobuf(t.transactionID);r._set(e,t$u._fromTransactionSigMap(n))}}return r}addSignature(e,t,r){const n=this.get(e);n?n.addSignature(t,r):this._set(e,(new t$u).addSignature(t,r))}},t$t=class e{constructor(){this.list=[],this.locked=!1,this.index=0}setList(e){if(this.locked)throw new Error("list is locked");return this.list=e,this.index=0,this}push(...e){if(this.locked)throw new Error("list is locked");return this.list.push(...e),this}setLocked(){return this.locked=!0,this}clear(){this.list=[],this.index=0,this.locked=!1}get(e){return this.list[e]}set(e,t){return e===this.length?this.list.push(t):this.list[e]=t,this}setIfAbsent(e,t){return e!=this.length&&null!=this.list[e]||this.set(e,t()),this}get next(){return this.get(this.advance())}get current(){return this.get(this.index)}advance(){const e=this.index;return this.index=(this.index+1)%this.list.length,e}get isEmpty(){return 0===this.length}get length(){return this.list.length}clone(){const t=new e;return t.list=this.list,t.locked=this.locked,t}},e$C=class e extends t$x{constructor(){super((e=>f$8.fromString(e)))}static _fromTransaction(t){const r=new e,n=t._nodeAccountIds.length,o=t._signedTransactions.length/n;for(let e=0;e{const t=e.bodyBytes;return t?this._key.sign(t):new Uint8Array}));return e.addSignature(this.publicKey,t),1===t.length?t[0]:t}isDerivable(){return this._key.isDerivable()}toBytes(){return this._key.toBytes()}toBytesDer(){return this._key.toBytesDer()}toBytesRaw(){return this._key.toBytesRaw()}toString(){return this._key.toStringDer()}toStringDer(){return this._key.toStringDer()}toStringRaw(){return this._key.toStringRaw()}toKeystore(e=""){return this._key.toKeystore(e)}_toProtobufKey(){return this.publicKey._toProtobufKey()}toAccountId(e,t){return this.publicKey.toAccountId(e,t)}get type(){return this._key._type}getRecoveryId(e,t,r){return this._key.getRecoveryId(e,t,r)}};t$z.setPrivateKeyConstructor((e=>new y$a(e)));let s$q=class e extends t$y{constructor(e,t){super(),this._keys=null==e?[]:e instanceof t$y?[e]:e,this._threshold=null==t?null:t}static of(...t){return new e(t,null)}static from(t,r,n){return new e(null==r?Array.from(t):Array.from(t,r,n))}get threshold(){return this._threshold}setThreshold(e){return this._threshold=e,this}push(...e){return this._keys.push(...e)}splice(t,r,...n){return new e(this._keys.splice(t,r,...n),this.threshold)}slice(t,r){return new e(this._keys.slice(t,r),this.threshold)}[Symbol.iterator](){return this._keys[Symbol.iterator]()}toArray(){return this._keys.slice()}toString(){return JSON.stringify({threshold:this._threshold,keys:this._keys.toString()})}_toProtobufKey(){const e=this._keys.map((e=>e._toProtobufKey()));return null==this.threshold?{keyList:{keys:e}}:{thresholdKey:{threshold:this.threshold,keys:{keys:e}}}}static __fromProtobufKeyList(t){const r=(null!=t.keys?t.keys:[]).map((e=>t$y._fromProtobufKey(e)));return new e(r)}static __fromProtobufThresoldKey(t){const r=e.__fromProtobufKeyList(null!=t.keys?t.keys:{});return r.setThreshold(null!=t.threshold?t.threshold:0),r}};function i$i(e){return BigNumber$1.isBigNumber(e)?e:new BigNumber$1(e.toString())}t$z.setKeyList((e=>s$q.__fromProtobufKeyList(e))),t$z.setThresholdKey((e=>s$q.__fromProtobufThresoldKey(e)));let e$B=class e{constructor(e,t,r){this._name=e,this._symbol=t,this._tinybar=r,Object.freeze(this)}static fromString(t){switch(t){case e.Hbar._symbol:return e.Hbar;case e.Tinybar._symbol:return e.Tinybar;case e.Microbar._symbol:return e.Microbar;case e.Millibar._symbol:return e.Millibar;case e.Kilobar._symbol:return e.Kilobar;case e.Megabar._symbol:return e.Megabar;case e.Gigabar._symbol:return e.Gigabar;default:throw new Error("Unknown unit.")}}};e$B.Tinybar=new e$B("tinybar","tℏ",new BigNumber$1(1)),e$B.Microbar=new e$B("microbar","μℏ",new BigNumber$1(100)),e$B.Millibar=new e$B("millibar","mℏ",new BigNumber$1(1e5)),e$B.Hbar=new e$B("hbar","ℏ",new BigNumber$1("100000000")),e$B.Kilobar=new e$B("kilobar","kℏ",new BigNumber$1(1e3).multipliedBy(new BigNumber$1("100000000"))),e$B.Megabar=new e$B("megabar","Mℏ",new BigNumber$1(1e6).multipliedBy(new BigNumber$1("100000000"))),e$B.Gigabar=new e$B("gigabar","Gℏ",new BigNumber$1("1000000000").multipliedBy(new BigNumber$1("100000000")));let e$A=class e{constructor(e,t=e$B.Hbar){if(t===e$B.Tinybar)this._valueInTinybar=i$i(e);else{let r;r=Long.isLong(e)?new BigNumber$1(e.toString(10)):BigNumber$1.isBigNumber(e)||"string"==typeof e||"number"==typeof e?new BigNumber$1(e):new BigNumber$1(0),this._valueInTinybar=r.multipliedBy(t._tinybar)}if(!this._valueInTinybar.isInteger())throw new Error("Hbar in tinybars contains decimals")}static from(t,r){return new e(t,r)}static fromTinybars(t){return"string"==typeof t?this.fromString(t,e$B.Tinybar):new e(t,e$B.Tinybar)}static fromString(t,r=e$B.Hbar){if(/^((?:\+|-)?\d+(?:\.\d+)?)(?: (tℏ|μℏ|mℏ|ℏ|kℏ|Mℏ|Gℏ))?$/.test(t)){let[n,o]=t.split(" ");return null!=o&&(r=e$B.fromString(o)),new e(new BigNumber$1(n),r)}throw new Error("invalid argument provided")}to(e){return this._valueInTinybar.dividedBy(e._tinybar)}toBigNumber(){return this.to(e$B.Hbar)}toTinybars(){return Long.fromValue(this._valueInTinybar.toFixed())}negated(){return e.fromTinybars(this._valueInTinybar.negated())}isNegative(){return this._valueInTinybar.isNegative()}toString(e){return null!=e?`${this._valueInTinybar.dividedBy(e._tinybar).toString()} ${e._symbol}`:this._valueInTinybar.isLessThan(1e4)&&this._valueInTinybar.isGreaterThan(-1e4)?`${this._valueInTinybar.toFixed()} ${e$B.Tinybar._symbol}`:`${this.to(e$B.Hbar).toString()} ${e$B.Hbar._symbol}`}},t$s=class e extends Error{constructor(t,r){super(r),this.name="StatusError",this.status=t.status,this.transactionId=t.transactionId,this.message=r,void 0!==Error.captureStackTrace&&Error.captureStackTrace(this,e)}toJSON(){return{name:this.name,status:this.status.toString(),transactionId:this.transactionId.toString(),message:this.message}}toString(){return JSON.stringify(this.toJSON())}valueOf(){return this.toJSON()}},r$D=class extends t$s{constructor(e){super(e,`receipt for transaction ${e.transactionId.toString()} contained error status ${e.status.toString()}`),this.transactionReceipt=e.transactionReceipt}},e$z=class e{constructor(e){this._code=e,Object.freeze(this)}toString(){switch(this){case e.Ok:return"OK";case e.InvalidTransaction:return"INVALID_TRANSACTION";case e.PayerAccountNotFound:return"PAYER_ACCOUNT_NOT_FOUND";case e.InvalidNodeAccount:return"INVALID_NODE_ACCOUNT";case e.TransactionExpired:return"TRANSACTION_EXPIRED";case e.InvalidTransactionStart:return"INVALID_TRANSACTION_START";case e.InvalidTransactionDuration:return"INVALID_TRANSACTION_DURATION";case e.InvalidSignature:return"INVALID_SIGNATURE";case e.MemoTooLong:return"MEMO_TOO_LONG";case e.InsufficientTxFee:return"INSUFFICIENT_TX_FEE";case e.InsufficientPayerBalance:return"INSUFFICIENT_PAYER_BALANCE";case e.DuplicateTransaction:return"DUPLICATE_TRANSACTION";case e.Busy:return"BUSY";case e.NotSupported:return"NOT_SUPPORTED";case e.InvalidFileId:return"INVALID_FILE_ID";case e.InvalidAccountId:return"INVALID_ACCOUNT_ID";case e.InvalidContractId:return"INVALID_CONTRACT_ID";case e.InvalidTransactionId:return"INVALID_TRANSACTION_ID";case e.ReceiptNotFound:return"RECEIPT_NOT_FOUND";case e.RecordNotFound:return"RECORD_NOT_FOUND";case e.InvalidSolidityId:return"INVALID_SOLIDITY_ID";case e.Unknown:return"UNKNOWN";case e.Success:return"SUCCESS";case e.FailInvalid:return"FAIL_INVALID";case e.FailFee:return"FAIL_FEE";case e.FailBalance:return"FAIL_BALANCE";case e.KeyRequired:return"KEY_REQUIRED";case e.BadEncoding:return"BAD_ENCODING";case e.InsufficientAccountBalance:return"INSUFFICIENT_ACCOUNT_BALANCE";case e.InvalidSolidityAddress:return"INVALID_SOLIDITY_ADDRESS";case e.InsufficientGas:return"INSUFFICIENT_GAS";case e.ContractSizeLimitExceeded:return"CONTRACT_SIZE_LIMIT_EXCEEDED";case e.LocalCallModificationException:return"LOCAL_CALL_MODIFICATION_EXCEPTION";case e.ContractRevertExecuted:return"CONTRACT_REVERT_EXECUTED";case e.ContractExecutionException:return"CONTRACT_EXECUTION_EXCEPTION";case e.InvalidReceivingNodeAccount:return"INVALID_RECEIVING_NODE_ACCOUNT";case e.MissingQueryHeader:return"MISSING_QUERY_HEADER";case e.AccountUpdateFailed:return"ACCOUNT_UPDATE_FAILED";case e.InvalidKeyEncoding:return"INVALID_KEY_ENCODING";case e.NullSolidityAddress:return"NULL_SOLIDITY_ADDRESS";case e.ContractUpdateFailed:return"CONTRACT_UPDATE_FAILED";case e.InvalidQueryHeader:return"INVALID_QUERY_HEADER";case e.InvalidFeeSubmitted:return"INVALID_FEE_SUBMITTED";case e.InvalidPayerSignature:return"INVALID_PAYER_SIGNATURE";case e.KeyNotProvided:return"KEY_NOT_PROVIDED";case e.InvalidExpirationTime:return"INVALID_EXPIRATION_TIME";case e.NoWaclKey:return"NO_WACL_KEY";case e.FileContentEmpty:return"FILE_CONTENT_EMPTY";case e.InvalidAccountAmounts:return"INVALID_ACCOUNT_AMOUNTS";case e.EmptyTransactionBody:return"EMPTY_TRANSACTION_BODY";case e.InvalidTransactionBody:return"INVALID_TRANSACTION_BODY";case e.InvalidSignatureTypeMismatchingKey:return"INVALID_SIGNATURE_TYPE_MISMATCHING_KEY";case e.InvalidSignatureCountMismatchingKey:return"INVALID_SIGNATURE_COUNT_MISMATCHING_KEY";case e.EmptyLiveHashBody:return"EMPTY_LIVE_HASH_BODY";case e.EmptyLiveHash:return"EMPTY_LIVE_HASH";case e.EmptyLiveHashKeys:return"EMPTY_LIVE_HASH_KEYS";case e.InvalidLiveHashSize:return"INVALID_LIVE_HASH_SIZE";case e.EmptyQueryBody:return"EMPTY_QUERY_BODY";case e.EmptyLiveHashQuery:return"EMPTY_LIVE_HASH_QUERY";case e.LiveHashNotFound:return"LIVE_HASH_NOT_FOUND";case e.AccountIdDoesNotExist:return"ACCOUNT_ID_DOES_NOT_EXIST";case e.LiveHashAlreadyExists:return"LIVE_HASH_ALREADY_EXISTS";case e.InvalidFileWacl:return"INVALID_FILE_WACL";case e.SerializationFailed:return"SERIALIZATION_FAILED";case e.TransactionOversize:return"TRANSACTION_OVERSIZE";case e.TransactionTooManyLayers:return"TRANSACTION_TOO_MANY_LAYERS";case e.ContractDeleted:return"CONTRACT_DELETED";case e.PlatformNotActive:return"PLATFORM_NOT_ACTIVE";case e.KeyPrefixMismatch:return"KEY_PREFIX_MISMATCH";case e.PlatformTransactionNotCreated:return"PLATFORM_TRANSACTION_NOT_CREATED";case e.InvalidRenewalPeriod:return"INVALID_RENEWAL_PERIOD";case e.InvalidPayerAccountId:return"INVALID_PAYER_ACCOUNT_ID";case e.AccountDeleted:return"ACCOUNT_DELETED";case e.FileDeleted:return"FILE_DELETED";case e.AccountRepeatedInAccountAmounts:return"ACCOUNT_REPEATED_IN_ACCOUNT_AMOUNTS";case e.SettingNegativeAccountBalance:return"SETTING_NEGATIVE_ACCOUNT_BALANCE";case e.ObtainerRequired:return"OBTAINER_REQUIRED";case e.ObtainerSameContractId:return"OBTAINER_SAME_CONTRACT_ID";case e.ObtainerDoesNotExist:return"OBTAINER_DOES_NOT_EXIST";case e.ModifyingImmutableContract:return"MODIFYING_IMMUTABLE_CONTRACT";case e.FileSystemException:return"FILE_SYSTEM_EXCEPTION";case e.AutorenewDurationNotInRange:return"AUTORENEW_DURATION_NOT_IN_RANGE";case e.ErrorDecodingBytestring:return"ERROR_DECODING_BYTESTRING";case e.ContractFileEmpty:return"CONTRACT_FILE_EMPTY";case e.ContractBytecodeEmpty:return"CONTRACT_BYTECODE_EMPTY";case e.InvalidInitialBalance:return"INVALID_INITIAL_BALANCE";case e.InvalidReceiveRecordThreshold:return"INVALID_RECEIVE_RECORD_THRESHOLD";case e.InvalidSendRecordThreshold:return"INVALID_SEND_RECORD_THRESHOLD";case e.AccountIsNotGenesisAccount:return"ACCOUNT_IS_NOT_GENESIS_ACCOUNT";case e.PayerAccountUnauthorized:return"PAYER_ACCOUNT_UNAUTHORIZED";case e.InvalidFreezeTransactionBody:return"INVALID_FREEZE_TRANSACTION_BODY";case e.FreezeTransactionBodyNotFound:return"FREEZE_TRANSACTION_BODY_NOT_FOUND";case e.TransferListSizeLimitExceeded:return"TRANSFER_LIST_SIZE_LIMIT_EXCEEDED";case e.ResultSizeLimitExceeded:return"RESULT_SIZE_LIMIT_EXCEEDED";case e.NotSpecialAccount:return"NOT_SPECIAL_ACCOUNT";case e.ContractNegativeGas:return"CONTRACT_NEGATIVE_GAS";case e.ContractNegativeValue:return"CONTRACT_NEGATIVE_VALUE";case e.InvalidFeeFile:return"INVALID_FEE_FILE";case e.InvalidExchangeRateFile:return"INVALID_EXCHANGE_RATE_FILE";case e.InsufficientLocalCallGas:return"INSUFFICIENT_LOCAL_CALL_GAS";case e.EntityNotAllowedToDelete:return"ENTITY_NOT_ALLOWED_TO_DELETE";case e.AuthorizationFailed:return"AUTHORIZATION_FAILED";case e.FileUploadedProtoInvalid:return"FILE_UPLOADED_PROTO_INVALID";case e.FileUploadedProtoNotSavedToDisk:return"FILE_UPLOADED_PROTO_NOT_SAVED_TO_DISK";case e.FeeScheduleFilePartUploaded:return"FEE_SCHEDULE_FILE_PART_UPLOADED";case e.ExchangeRateChangeLimitExceeded:return"EXCHANGE_RATE_CHANGE_LIMIT_EXCEEDED";case e.MaxContractStorageExceeded:return"MAX_CONTRACT_STORAGE_EXCEEDED";case e.TransferAccountSameAsDeleteAccount:return"TRANSFER_ACCOUNT_SAME_AS_DELETE_ACCOUNT";case e.TotalLedgerBalanceInvalid:return"TOTAL_LEDGER_BALANCE_INVALID";case e.ExpirationReductionNotAllowed:return"EXPIRATION_REDUCTION_NOT_ALLOWED";case e.MaxGasLimitExceeded:return"MAX_GAS_LIMIT_EXCEEDED";case e.MaxFileSizeExceeded:return"MAX_FILE_SIZE_EXCEEDED";case e.ReceiverSigRequired:return"RECEIVER_SIG_REQUIRED";case e.InvalidTopicId:return"INVALID_TOPIC_ID";case e.InvalidAdminKey:return"INVALID_ADMIN_KEY";case e.InvalidSubmitKey:return"INVALID_SUBMIT_KEY";case e.Unauthorized:return"UNAUTHORIZED";case e.InvalidTopicMessage:return"INVALID_TOPIC_MESSAGE";case e.InvalidAutorenewAccount:return"INVALID_AUTORENEW_ACCOUNT";case e.AutorenewAccountNotAllowed:return"AUTORENEW_ACCOUNT_NOT_ALLOWED";case e.TopicExpired:return"TOPIC_EXPIRED";case e.InvalidChunkNumber:return"INVALID_CHUNK_NUMBER";case e.InvalidChunkTransactionId:return"INVALID_CHUNK_TRANSACTION_ID";case e.AccountFrozenForToken:return"ACCOUNT_FROZEN_FOR_TOKEN";case e.TokensPerAccountLimitExceeded:return"TOKENS_PER_ACCOUNT_LIMIT_EXCEEDED";case e.InvalidTokenId:return"INVALID_TOKEN_ID";case e.InvalidTokenDecimals:return"INVALID_TOKEN_DECIMALS";case e.InvalidTokenInitialSupply:return"INVALID_TOKEN_INITIAL_SUPPLY";case e.InvalidTreasuryAccountForToken:return"INVALID_TREASURY_ACCOUNT_FOR_TOKEN";case e.InvalidTokenSymbol:return"INVALID_TOKEN_SYMBOL";case e.TokenHasNoFreezeKey:return"TOKEN_HAS_NO_FREEZE_KEY";case e.TransfersNotZeroSumForToken:return"TRANSFERS_NOT_ZERO_SUM_FOR_TOKEN";case e.MissingTokenSymbol:return"MISSING_TOKEN_SYMBOL";case e.TokenSymbolTooLong:return"TOKEN_SYMBOL_TOO_LONG";case e.AccountKycNotGrantedForToken:return"ACCOUNT_KYC_NOT_GRANTED_FOR_TOKEN";case e.TokenHasNoKycKey:return"TOKEN_HAS_NO_KYC_KEY";case e.InsufficientTokenBalance:return"INSUFFICIENT_TOKEN_BALANCE";case e.TokenWasDeleted:return"TOKEN_WAS_DELETED";case e.TokenHasNoSupplyKey:return"TOKEN_HAS_NO_SUPPLY_KEY";case e.TokenHasNoWipeKey:return"TOKEN_HAS_NO_WIPE_KEY";case e.InvalidTokenMintAmount:return"INVALID_TOKEN_MINT_AMOUNT";case e.InvalidTokenBurnAmount:return"INVALID_TOKEN_BURN_AMOUNT";case e.TokenNotAssociatedToAccount:return"TOKEN_NOT_ASSOCIATED_TO_ACCOUNT";case e.CannotWipeTokenTreasuryAccount:return"CANNOT_WIPE_TOKEN_TREASURY_ACCOUNT";case e.InvalidKycKey:return"INVALID_KYC_KEY";case e.InvalidWipeKey:return"INVALID_WIPE_KEY";case e.InvalidFreezeKey:return"INVALID_FREEZE_KEY";case e.InvalidSupplyKey:return"INVALID_SUPPLY_KEY";case e.MissingTokenName:return"MISSING_TOKEN_NAME";case e.TokenNameTooLong:return"TOKEN_NAME_TOO_LONG";case e.InvalidWipingAmount:return"INVALID_WIPING_AMOUNT";case e.TokenIsImmutable:return"TOKEN_IS_IMMUTABLE";case e.TokenAlreadyAssociatedToAccount:return"TOKEN_ALREADY_ASSOCIATED_TO_ACCOUNT";case e.TransactionRequiresZeroTokenBalances:return"TRANSACTION_REQUIRES_ZERO_TOKEN_BALANCES";case e.AccountIsTreasury:return"ACCOUNT_IS_TREASURY";case e.TokenIdRepeatedInTokenList:return"TOKEN_ID_REPEATED_IN_TOKEN_LIST";case e.TokenTransferListSizeLimitExceeded:return"TOKEN_TRANSFER_LIST_SIZE_LIMIT_EXCEEDED";case e.EmptyTokenTransferBody:return"EMPTY_TOKEN_TRANSFER_BODY";case e.EmptyTokenTransferAccountAmounts:return"EMPTY_TOKEN_TRANSFER_ACCOUNT_AMOUNTS";case e.InvalidScheduleId:return"INVALID_SCHEDULE_ID";case e.ScheduleIsImmutable:return"SCHEDULE_IS_IMMUTABLE";case e.InvalidSchedulePayerId:return"INVALID_SCHEDULE_PAYER_ID";case e.InvalidScheduleAccountId:return"INVALID_SCHEDULE_ACCOUNT_ID";case e.NoNewValidSignatures:return"NO_NEW_VALID_SIGNATURES";case e.UnresolvableRequiredSigners:return"UNRESOLVABLE_REQUIRED_SIGNERS";case e.ScheduledTransactionNotInWhitelist:return"SCHEDULED_TRANSACTION_NOT_IN_WHITELIST";case e.SomeSignaturesWereInvalid:return"SOME_SIGNATURES_WERE_INVALID";case e.TransactionIdFieldNotAllowed:return"TRANSACTION_ID_FIELD_NOT_ALLOWED";case e.IdenticalScheduleAlreadyCreated:return"IDENTICAL_SCHEDULE_ALREADY_CREATED";case e.InvalidZeroByteInString:return"INVALID_ZERO_BYTE_IN_STRING";case e.ScheduleAlreadyDeleted:return"SCHEDULE_ALREADY_DELETED";case e.ScheduleAlreadyExecuted:return"SCHEDULE_ALREADY_EXECUTED";case e.MessageSizeTooLarge:return"MESSAGE_SIZE_TOO_LARGE";case e.OperationRepeatedInBucketGroups:return"OPERATION_REPEATED_IN_BUCKET_GROUPS";case e.BucketCapacityOverflow:return"BUCKET_CAPACITY_OVERFLOW";case e.NodeCapacityNotSufficientForOperation:return"NODE_CAPACITY_NOT_SUFFICIENT_FOR_OPERATION";case e.BucketHasNoThrottleGroups:return"BUCKET_HAS_NO_THROTTLE_GROUPS";case e.ThrottleGroupHasZeroOpsPerSec:return"THROTTLE_GROUP_HAS_ZERO_OPS_PER_SEC";case e.SuccessButMissingExpectedOperation:return"SUCCESS_BUT_MISSING_EXPECTED_OPERATION";case e.UnparseableThrottleDefinitions:return"UNPARSEABLE_THROTTLE_DEFINITIONS";case e.InvalidThrottleDefinitions:return"INVALID_THROTTLE_DEFINITIONS";case e.AccountExpiredAndPendingRemoval:return"ACCOUNT_EXPIRED_AND_PENDING_REMOVAL";case e.InvalidTokenMaxSupply:return"INVALID_TOKEN_MAX_SUPPLY";case e.InvalidTokenNftSerialNumber:return"INVALID_TOKEN_NFT_SERIAL_NUMBER";case e.InvalidNftId:return"INVALID_NFT_ID";case e.MetadataTooLong:return"METADATA_TOO_LONG";case e.BatchSizeLimitExceeded:return"BATCH_SIZE_LIMIT_EXCEEDED";case e.InvalidQueryRange:return"INVALID_QUERY_RANGE";case e.FractionDividesByZero:return"FRACTION_DIVIDES_BY_ZERO";case e.InsufficientPayerBalanceForCustomFee:return"INSUFFICIENT_PAYER_BALANCE_FOR_CUSTOM_FEE";case e.CustomFeesListTooLong:return"CUSTOM_FEES_LIST_TOO_LONG";case e.InvalidCustomFeeCollector:return"INVALID_CUSTOM_FEE_COLLECTOR";case e.InvalidTokenIdInCustomFees:return"INVALID_TOKEN_ID_IN_CUSTOM_FEES";case e.TokenNotAssociatedToFeeCollector:return"TOKEN_NOT_ASSOCIATED_TO_FEE_COLLECTOR";case e.TokenMaxSupplyReached:return"TOKEN_MAX_SUPPLY_REACHED";case e.SenderDoesNotOwnNftSerialNo:return"SENDER_DOES_NOT_OWN_NFT_SERIAL_NO";case e.CustomFeeNotFullySpecified:return"CUSTOM_FEE_NOT_FULLY_SPECIFIED";case e.CustomFeeMustBePositive:return"CUSTOM_FEE_MUST_BE_POSITIVE";case e.TokenHasNoFeeScheduleKey:return"TOKEN_HAS_NO_FEE_SCHEDULE_KEY";case e.CustomFeeOutsideNumericRange:return"CUSTOM_FEE_OUTSIDE_NUMERIC_RANGE";case e.RoyaltyFractionCannotExceedOne:return"ROYALTY_FRACTION_CANNOT_EXCEED_ONE";case e.FractionalFeeMaxAmountLessThanMinAmount:return"FRACTIONAL_FEE_MAX_AMOUNT_LESS_THAN_MIN_AMOUNT";case e.CustomScheduleAlreadyHasNoFees:return"CUSTOM_SCHEDULE_ALREADY_HAS_NO_FEES";case e.CustomFeeDenominationMustBeFungibleCommon:return"CUSTOM_FEE_DENOMINATION_MUST_BE_FUNGIBLE_COMMON";case e.CustomFractionalFeeOnlyAllowedForFungibleCommon:return"CUSTOM_FRACTIONAL_FEE_ONLY_ALLOWED_FOR_FUNGIBLE_COMMON";case e.InvalidCustomFeeScheduleKey:return"INVALID_CUSTOM_FEE_SCHEDULE_KEY";case e.InvalidTokenMintMetadata:return"INVALID_TOKEN_MINT_METADATA";case e.InvalidTokenBurnMetadata:return"INVALID_TOKEN_BURN_METADATA";case e.CurrentTreasuryStillOwnsNfts:return"CURRENT_TREASURY_STILL_OWNS_NFTS";case e.AccountStillOwnsNfts:return"ACCOUNT_STILL_OWNS_NFTS";case e.TreasuryMustOwnBurnedNft:return"TREASURY_MUST_OWN_BURNED_NFT";case e.AccountDoesNotOwnWipedNft:return"ACCOUNT_DOES_NOT_OWN_WIPED_NFT";case e.AccountAmountTransfersOnlyAllowedForFungibleCommon:return"ACCOUNT_AMOUNT_TRANSFERS_ONLY_ALLOWED_FOR_FUNGIBLE_COMMON";case e.MaxNftsInPriceRegimeHaveBeenMinted:return"MAX_NFTS_IN_PRICE_REGIME_HAVE_BEEN_MINTED";case e.PayerAccountDeleted:return"PAYER_ACCOUNT_DELETED";case e.CustomFeeChargingExceededMaxRecursionDepth:return"CUSTOM_FEE_CHARGING_EXCEEDED_MAX_RECURSION_DEPTH";case e.CustomFeeChargingExceededMaxAccountAmounts:return"CUSTOM_FEE_CHARGING_EXCEEDED_MAX_ACCOUNT_AMOUNTS";case e.InsufficientSenderAccountBalanceForCustomFee:return"INSUFFICIENT_SENDER_ACCOUNT_BALANCE_FOR_CUSTOM_FEE";case e.SerialNumberLimitReached:return"SERIAL_NUMBER_LIMIT_REACHED";case e.CustomRoyaltyFeeOnlyAllowedForNonFungibleUnique:return"CUSTOM_ROYALTY_FEE_ONLY_ALLOWED_FOR_NON_FUNGIBLE_UNIQUE";case e.NoRemainingAutomaticAssociations:return"NO_REMAINING_AUTOMATIC_ASSOCIATIONS";case e.ExistingAutomaticAssociationsExceedGivenLimit:return"EXISTING_AUTOMATIC_ASSOCIATIONS_EXCEED_GIVEN_LIMIT";case e.RequestedNumAutomaticAssociationsExceedsAssociationLimit:return"REQUESTED_NUM_AUTOMATIC_ASSOCIATIONS_EXCEEDS_ASSOCIATION_LIMIT";case e.TokenIsPaused:return"TOKEN_IS_PAUSED";case e.TokenHasNoPauseKey:return"TOKEN_HAS_NO_PAUSE_KEY";case e.InvalidPauseKey:return"INVALID_PAUSE_KEY";case e.FreezeUpdateFileDoesNotExist:return"FREEZE_UPDATE_FILE_DOES_NOT_EXIST";case e.FreezeUpdateFileHashDoesNotMatch:return"FREEZE_UPDATE_FILE_HASH_DOES_NOT_MATCH";case e.NoUpgradeHasBeenPrepared:return"NO_UPGRADE_HAS_BEEN_PREPARED";case e.NoFreezeIsScheduled:return"NO_FREEZE_IS_SCHEDULED";case e.UpdateFileHashChangedSincePrepareUpgrade:return"UPDATE_FILE_HASH_CHANGED_SINCE_PREPARE_UPGRADE";case e.FreezeStartTimeMustBeFuture:return"FREEZE_START_TIME_MUST_BE_FUTURE";case e.PreparedUpdateFileIsImmutable:return"PREPARED_UPDATE_FILE_IS_IMMUTABLE";case e.FreezeAlreadyScheduled:return"FREEZE_ALREADY_SCHEDULED";case e.FreezeUpgradeInProgress:return"FREEZE_UPGRADE_IN_PROGRESS";case e.UpdateFileIdDoesNotMatchPrepared:return"UPDATE_FILE_ID_DOES_NOT_MATCH_PREPARED";case e.UpdateFileHashDoesNotMatchPrepared:return"UPDATE_FILE_HASH_DOES_NOT_MATCH_PREPARED";case e.ConsensusGasExhausted:return"CONSENSUS_GAS_EXHAUSTED";case e.RevertedSuccess:return"REVERTED_SUCCESS";case e.MaxStorageInPriceRegimeHasBeenUsed:return"MAX_STORAGE_IN_PRICE_REGIME_HAS_BEEN_USED";case e.InvalidAliasKey:return"INVALID_ALIAS_KEY";case e.UnexpectedTokenDecimals:return"UNEXPECTED_TOKEN_DECIMALS";case e.InvalidProxyAccountId:return"INVALID_PROXY_ACCOUNT_ID";case e.InvalidTransferAccountId:return"INVALID_TRANSFER_ACCOUNT_ID";case e.InvalidFeeCollectorAccountId:return"INVALID_FEE_COLLECTOR_ACCOUNT_ID";case e.AliasIsImmutable:return"ALIAS_IS_IMMUTABLE";case e.SpenderAccountSameAsOwner:return"SPENDER_ACCOUNT_SAME_AS_OWNER";case e.AmountExceedsTokenMaxSupply:return"AMOUNT_EXCEEDS_TOKEN_MAX_SUPPLY";case e.NegativeAllowanceAmount:return"NEGATIVE_ALLOWANCE_AMOUNT";case e.CannotApproveForAllFungibleCommon:return"CANNOT_APPROVE_FOR_ALL_FUNGIBLE_COMMON";case e.SpenderDoesNotHaveAllowance:return"SPENDER_DOES_NOT_HAVE_ALLOWANCE";case e.AmountExceedsAllowance:return"AMOUNT_EXCEEDS_ALLOWANCE";case e.MaxAllowancesExceeded:return"MAX_ALLOWANCES_EXCEEDED";case e.EmptyAllowances:return"EMPTY_ALLOWANCES";case e.SpenderAccountRepeatedInAllowances:return"SPENDER_ACCOUNT_REPEATED_IN_ALLOWANCES";case e.RepeatedSerialNumsInNftAllowances:return"REPEATED_SERIAL_NUMS_IN_NFT_ALLOWANCES";case e.FungibleTokenInNftAllowances:return"FUNGIBLE_TOKEN_IN_NFT_ALLOWANCES";case e.NftInFungibleTokenAllowances:return"NFT_IN_FUNGIBLE_TOKEN_ALLOWANCES";case e.InvalidAllowanceOwnerId:return"INVALID_ALLOWANCE_OWNER_ID";case e.InvalidAllowanceSpenderId:return"INVALID_ALLOWANCE_SPENDER_ID";case e.RepeatedAllowancesToDelete:return"REPEATED_ALLOWANCES_TO_DELETE";case e.InvalidDelegatingSpender:return"INVALID_DELEGATING_SPENDER";case e.DelegatingSpenderCannotGrantApproveForAll:return"DELEGATING_SPENDER_CANNOT_GRANT_APPROVE_FOR_ALL";case e.DelegatingSpenderDoesNotHaveApproveForAll:return"DELEGATING_SPENDER_DOES_NOT_HAVE_APPROVE_FOR_ALL";case e.ScheduleExpirationTimeTooFarInFuture:return"SCHEDULE_EXPIRATION_TIME_TOO_FAR_IN_FUTURE";case e.ScheduleExpirationTimeMustBeHigherThanConsensusTime:return"SCHEDULE_EXPIRATION_TIME_MUST_BE_HIGHER_THAN_CONSENSUS_TIME";case e.ScheduleFutureThrottleExceeded:return"SCHEDULE_FUTURE_THROTTLE_EXCEEDED";case e.ScheduleFutureGasLimitExceeded:return"SCHEDULE_FUTURE_GAS_LIMIT_EXCEEDED";case e.InvalidEthereumTransaction:return"INVALID_ETHEREUM_TRANSACTION";case e.WrongChainId:return"WRONG_CHAIN_ID";case e.WrongNonce:return"WRONG_NONCE";case e.AccessListUnsupported:return"ACCESS_LIST_UNSUPPORTED";case e.SchedulePendingExpiration:return"SCHEDULE_PENDING_EXPIRATION";case e.ContractIsTokenTreasury:return"CONTRACT_IS_TOKEN_TREASURY";case e.ContractHasNonZeroTokenBalances:return"CONTRACT_HAS_NON_ZERO_TOKEN_BALANCES";case e.ContractExpiredAndPendingRemoval:return"CONTRACT_EXPIRED_AND_PENDING_REMOVAL";case e.ContractHasNoAutoRenewAccount:return"CONTRACT_HAS_NO_AUTO_RENEW_ACCOUNT";case e.PermanentRemovalRequiresSystemInitiation:return"PERMANENT_REMOVAL_REQUIRES_SYSTEM_INITIATION";case e.ProxyAccountIdFieldIsDeprecated:return"PROXY_ACCOUNT_ID_FIELD_IS_DEPRECATED";case e.SelfStakingIsNotAllowed:return"SELF_STAKING_IS_NOT_ALLOWED";case e.InvalidStakingId:return"INVALID_STAKING_ID";case e.StakingNotEnabled:return"STAKING_NOT_ENABLED";case e.InvalidPrngRange:return"INVALID_PRNG_RANGE";case e.MaxEntitiesInPriceRegimeHaveBeenCreated:return"MAX_ENTITIES_IN_PRICE_REGIME_HAVE_BEEN_CREATED";case e.InvalidFullPrefixSignatureForPrecompile:return"INVALID_FULL_PREFIX_SIGNATURE_FOR_PRECOMPILE";case e.InsufficientBalancesForStorageRent:return"INSUFFICIENT_BALANCES_FOR_STORAGE_RENT";case e.MaxChildRecordsExceeded:return"MAX_CHILD_RECORDS_EXCEEDED";case e.InsufficientBalancesForRenewalFees:return"INSUFFICIENT_BALANCES_FOR_RENEWAL_FEES";case e.TransactionHasUnknownFields:return"TRANSACTION_HAS_UNKNOWN_FIELDS";case e.AccountIsImmutable:return"ACCOUNT_IS_IMMUTABLE";case e.AliasAlreadyAssigned:return"ALIAS_ALREADY_ASSIGNED";case e.InvalidMetadataKey:return"INVALID_METADATA_KEY";case e.TokenHasNoMetadataKey:return"TOKEN_HAS_NO_METADATA_KEY";case e.MissingTokenMetadata:return"MISSING_TOKEN_METADATA";case e.MissingSerialNumbers:return"MISSING_SERIAL_NUMBERS";case e.TokenHasNoAdminKey:return"TOKEN_HAS_NO_ADMIN_KEY";case e.NodeDeleted:return"NODE_DELETED";case e.InvalidNodeId:return"INVALID_NODE_ID";case e.InvalidGossipEndpoint:return"INVALID_GOSSIP_ENDPOINT";case e.InvalidNodeAccountId:return"INVALID_NODE_ACCOUNT_ID";case e.InvalidNodeDescription:return"INVALID_NODE_DESCRIPTION";case e.InvalidServiceEndpoint:return"INVALID_SERVICE_ENDPOINT";case e.InvalidGossipCaCertificate:return"INVALID_GOSSIP_CA_CERTIFICATE";case e.InvalidGrpcCertificate:return"INVALID_GRPC_CERTIFICATE";case e.InvalidMaxAutoAssociations:return"INVALID_MAX_AUTO_ASSOCIATIONS";case e.MaxNodesCreated:return"MAX_NODES_CREATED";case e.IpFqdnCannotBeSetForSameEndpoint:return"IP_FQDN_CANNOT_BE_SET_FOR_SAME_ENDPOINT";case e.GossipEndpointCannotHaveFqdn:return"GOSSIP_ENDPOINT_CANNOT_HAVE_FQDN";case e.FqdnSizeTooLarge:return"FQDN_SIZE_TOO_LARGE";case e.InvalidEndpoint:return"INVALID_ENDPOINT";case e.GossipEndpointsExceededLimit:return"GOSSIP_ENDPOINTS_EXCEEDED_LIMIT";case e.ServiceEndpointsExceededLimit:return"SERVICE_ENDPOINTS_EXCEEDED_LIMIT";case e.InvalidIpv4Address:return"INVALID_IPV4_ADDRESS";case e.TokenReferenceRepeated:return"TOKEN_REFERENCE_REPEATED";case e.InvalidOwnerId:return"INVALID_OWNER_ID";case e.TokenReferenceListSizeLimitExceeded:return"TOKEN_REFERENCE_LIST_SIZE_LIMIT_EXCEEDED";case e.EmptyTokenReferenceList:return"EMPTY_TOKEN_REFERENCE_LIST";case e.UpdateNodeAccountNotAllowed:return"UPDATE_NODE_ACCOUNT_NOT_ALLOWED";case e.TokenHasNoMetadataOrSupplyKey:return"TOKEN_HAS_NO_METADATA_OR_SUPPLY_KEY";case e.EmptyPendingAirdropIdList:return"EMPTY_PENDING_AIRDROP_ID_LIST";case e.PendingAirdropIdRepeated:return"PENDING_AIRDROP_ID_REPEATED";case e.MaxPendingAirdropIdExceeded:return"PENDING_AIRDROP_ID_LIST_TOO_LONG";case e.PendingNftAirdropAlreadyExists:return"PENDING_NFT_AIRDROP_ALREADY_EXISTS";case e.AccountHasPendingAirdrops:return"ACCOUNT_HAS_PENDING_AIRDROPS";case e.ThrottledAtConsensus:return"THROTTLED_AT_CONSENSUS";case e.InvalidPendingAirdropId:return"INVALID_PENDING_AIRDROP_ID";case e.TokenAirdropWithFallbackRoyalty:return"TOKEN_AIRDROP_WITH_FALLBACK_ROYALTY";case e.InvalidTokenInPendingAirdrop:return"INVALID_TOKEN_IN_PENDING_AIRDROP";case e.ScheduleExpiryIsBusy:return"SCHEDULE_EXPIRY_IS_BUSY";case e.InvalidGrpcCertificateHash:return"INVALID_GRPC_CERTIFICATE_HASH";case e.MissingExpiryTime:return"MISSING_EXPIRY_TIME";case e.NoSchedulingAllowedAfterScheduledRecursion:return"NO_SCHEDULING_ALLOWED_AFTER_SCHEDULED_RECURSION";case e.RecursiveSchedulingLimitReached:return"RECURSIVE_SCHEDULING_LIMIT_REACHED";case e.WaitingForLedgerId:return"WAITING_FOR_LEDGER_ID";case e.MaxEntriesForFeeExemptKeyListExceeded:return"MAX_ENTRIES_FOR_FEE_EXEMPT_KEY_LIST_EXCEEDED";case e.FeeExemptKeyListContainsDuplicatedKeys:return"FEE_EXEMPT_KEY_LIST_CONTAINS_DUPLICATED_KEYS";case e.InvalidKeyInFeeExemptKeyList:return"INVALID_KEY_IN_FEE_EXEMPT_KEY_LIST";case e.InvalidFeeScheduleKey:return"INVALID_FEE_SCHEDULE_KEY";case e.FeeScheduleKeyCannotBeUpdated:return"FEE_SCHEDULE_KEY_CANNOT_BE_UPDATED";case e.FeeScheduleKeyNotSet:return"FEE_SCHEDULE_KEY_NOT_SET";case e.MaxCustomFeeLimitExceeded:return"MAX_CUSTOM_FEE_LIMIT_EXCEEDED";case e.NoValidMaxCustomFee:return"NO_VALID_MAX_CUSTOM_FEE";case e.InvalidMaxCustomFees:return"INVALID_MAX_CUSTOM_FEES";case e.DuplicateDenominationInMaxCustomFeeList:return"DUPLICATE_DENOMINATION_IN_MAX_CUSTOM_FEE_LIST";case e.DuplicateAccountIdInMaxCustomFeeList:return"DUPLICATE_ACCOUNT_ID_IN_MAX_CUSTOM_FEE_LIST";case e.MaxCustomFeesIsNotSupported:return"MAX_CUSTOM_FEES_IS_NOT_SUPPORTED";case e.BatchListEmpty:return"BATCH_LIST_EMPTY";case e.BatchListContainsDuplicates:return"BATCH_LIST_CONTAINS_DUPLICATES";case e.BatchTransactionInBlacklist:return"BATCH_TRANSACTION_IN_BLACKLIST";case e.InnerTransactionFailed:return"INNER_TRANSACTION_FAILED";case e.MissingBatchKey:return"MISSING_BATCH_KEY";case e.BatchKeySetOnNonInnerTransaction:return"BATCH_KEY_SET_ON_NON_INNER_TRANSACTION";case e.InvalidBatchKey:return"INVALID_BATCH_KEY";case e.ScheduleExpiryNotConfigurable:return"SCHEDULE_EXPIRY_NOT_CONFIGURABLE";case e.CreatingSystemEntities:return"CREATING_SYSTEM_ENTITIES";case e.ThrottleGroupLcmOverflow:return"THROTTLE_GROUP_LCM_OVERFLOW";case e.AirdropContainsMultipleSendersForAToken:return"AIRDROP_CONTAINS_MULTIPLE_SENDERS_FOR_A_TOKEN";case e.GrpcWebProxyNotSupported:return"GRPC_WEB_PROXY_NOT_SUPPORTED";default:return`UNKNOWN (${this._code})`}}static _fromCode(t){switch(t){case 0:return e.Ok;case 1:return e.InvalidTransaction;case 2:return e.PayerAccountNotFound;case 3:return e.InvalidNodeAccount;case 4:return e.TransactionExpired;case 5:return e.InvalidTransactionStart;case 6:return e.InvalidTransactionDuration;case 7:return e.InvalidSignature;case 8:return e.MemoTooLong;case 9:return e.InsufficientTxFee;case 10:return e.InsufficientPayerBalance;case 11:return e.DuplicateTransaction;case 12:return e.Busy;case 13:return e.NotSupported;case 14:return e.InvalidFileId;case 15:return e.InvalidAccountId;case 16:return e.InvalidContractId;case 17:return e.InvalidTransactionId;case 18:return e.ReceiptNotFound;case 19:return e.RecordNotFound;case 20:return e.InvalidSolidityId;case 21:return e.Unknown;case 22:return e.Success;case 23:return e.FailInvalid;case 24:return e.FailFee;case 25:return e.FailBalance;case 26:return e.KeyRequired;case 27:return e.BadEncoding;case 28:return e.InsufficientAccountBalance;case 29:return e.InvalidSolidityAddress;case 30:return e.InsufficientGas;case 31:return e.ContractSizeLimitExceeded;case 32:return e.LocalCallModificationException;case 33:return e.ContractRevertExecuted;case 34:return e.ContractExecutionException;case 35:return e.InvalidReceivingNodeAccount;case 36:return e.MissingQueryHeader;case 37:return e.AccountUpdateFailed;case 38:return e.InvalidKeyEncoding;case 39:return e.NullSolidityAddress;case 40:return e.ContractUpdateFailed;case 41:return e.InvalidQueryHeader;case 42:return e.InvalidFeeSubmitted;case 43:return e.InvalidPayerSignature;case 44:return e.KeyNotProvided;case 45:return e.InvalidExpirationTime;case 46:return e.NoWaclKey;case 47:return e.FileContentEmpty;case 48:return e.InvalidAccountAmounts;case 49:return e.EmptyTransactionBody;case 50:return e.InvalidTransactionBody;case 51:return e.InvalidSignatureTypeMismatchingKey;case 52:return e.InvalidSignatureCountMismatchingKey;case 53:return e.EmptyLiveHashBody;case 54:return e.EmptyLiveHash;case 55:return e.EmptyLiveHashKeys;case 56:return e.InvalidLiveHashSize;case 57:return e.EmptyQueryBody;case 58:return e.EmptyLiveHashQuery;case 59:return e.LiveHashNotFound;case 60:return e.AccountIdDoesNotExist;case 61:return e.LiveHashAlreadyExists;case 62:return e.InvalidFileWacl;case 63:return e.SerializationFailed;case 64:return e.TransactionOversize;case 65:return e.TransactionTooManyLayers;case 66:return e.ContractDeleted;case 67:return e.PlatformNotActive;case 68:return e.KeyPrefixMismatch;case 69:return e.PlatformTransactionNotCreated;case 70:return e.InvalidRenewalPeriod;case 71:return e.InvalidPayerAccountId;case 72:return e.AccountDeleted;case 73:return e.FileDeleted;case 74:return e.AccountRepeatedInAccountAmounts;case 75:return e.SettingNegativeAccountBalance;case 76:return e.ObtainerRequired;case 77:return e.ObtainerSameContractId;case 78:return e.ObtainerDoesNotExist;case 79:return e.ModifyingImmutableContract;case 80:return e.FileSystemException;case 81:return e.AutorenewDurationNotInRange;case 82:return e.ErrorDecodingBytestring;case 83:return e.ContractFileEmpty;case 84:return e.ContractBytecodeEmpty;case 85:return e.InvalidInitialBalance;case 86:return e.InvalidReceiveRecordThreshold;case 87:return e.InvalidSendRecordThreshold;case 88:return e.AccountIsNotGenesisAccount;case 89:return e.PayerAccountUnauthorized;case 90:return e.InvalidFreezeTransactionBody;case 91:return e.FreezeTransactionBodyNotFound;case 92:return e.TransferListSizeLimitExceeded;case 93:return e.ResultSizeLimitExceeded;case 94:return e.NotSpecialAccount;case 95:return e.ContractNegativeGas;case 96:return e.ContractNegativeValue;case 97:return e.InvalidFeeFile;case 98:return e.InvalidExchangeRateFile;case 99:return e.InsufficientLocalCallGas;case 100:return e.EntityNotAllowedToDelete;case 101:return e.AuthorizationFailed;case 102:return e.FileUploadedProtoInvalid;case 103:return e.FileUploadedProtoNotSavedToDisk;case 104:return e.FeeScheduleFilePartUploaded;case 105:return e.ExchangeRateChangeLimitExceeded;case 106:return e.MaxContractStorageExceeded;case 107:return e.TransferAccountSameAsDeleteAccount;case 108:return e.TotalLedgerBalanceInvalid;case 110:return e.ExpirationReductionNotAllowed;case 111:return e.MaxGasLimitExceeded;case 112:return e.MaxFileSizeExceeded;case 113:return e.ReceiverSigRequired;case 150:return e.InvalidTopicId;case 155:return e.InvalidAdminKey;case 156:return e.InvalidSubmitKey;case 157:return e.Unauthorized;case 158:return e.InvalidTopicMessage;case 159:return e.InvalidAutorenewAccount;case 160:return e.AutorenewAccountNotAllowed;case 162:return e.TopicExpired;case 163:return e.InvalidChunkNumber;case 164:return e.InvalidChunkTransactionId;case 165:return e.AccountFrozenForToken;case 166:return e.TokensPerAccountLimitExceeded;case 167:return e.InvalidTokenId;case 168:return e.InvalidTokenDecimals;case 169:return e.InvalidTokenInitialSupply;case 170:return e.InvalidTreasuryAccountForToken;case 171:return e.InvalidTokenSymbol;case 172:return e.TokenHasNoFreezeKey;case 173:return e.TransfersNotZeroSumForToken;case 174:return e.MissingTokenSymbol;case 175:return e.TokenSymbolTooLong;case 176:return e.AccountKycNotGrantedForToken;case 177:return e.TokenHasNoKycKey;case 178:return e.InsufficientTokenBalance;case 179:return e.TokenWasDeleted;case 180:return e.TokenHasNoSupplyKey;case 181:return e.TokenHasNoWipeKey;case 182:return e.InvalidTokenMintAmount;case 183:return e.InvalidTokenBurnAmount;case 184:return e.TokenNotAssociatedToAccount;case 185:return e.CannotWipeTokenTreasuryAccount;case 186:return e.InvalidKycKey;case 187:return e.InvalidWipeKey;case 188:return e.InvalidFreezeKey;case 189:return e.InvalidSupplyKey;case 190:return e.MissingTokenName;case 191:return e.TokenNameTooLong;case 192:return e.InvalidWipingAmount;case 193:return e.TokenIsImmutable;case 194:return e.TokenAlreadyAssociatedToAccount;case 195:return e.TransactionRequiresZeroTokenBalances;case 196:return e.AccountIsTreasury;case 197:return e.TokenIdRepeatedInTokenList;case 198:return e.TokenTransferListSizeLimitExceeded;case 199:return e.EmptyTokenTransferBody;case 200:return e.EmptyTokenTransferAccountAmounts;case 201:return e.InvalidScheduleId;case 202:return e.ScheduleIsImmutable;case 203:return e.InvalidSchedulePayerId;case 204:return e.InvalidScheduleAccountId;case 205:return e.NoNewValidSignatures;case 206:return e.UnresolvableRequiredSigners;case 207:return e.ScheduledTransactionNotInWhitelist;case 208:return e.SomeSignaturesWereInvalid;case 209:return e.TransactionIdFieldNotAllowed;case 210:return e.IdenticalScheduleAlreadyCreated;case 211:return e.InvalidZeroByteInString;case 212:return e.ScheduleAlreadyDeleted;case 213:return e.ScheduleAlreadyExecuted;case 214:return e.MessageSizeTooLarge;case 215:return e.OperationRepeatedInBucketGroups;case 216:return e.BucketCapacityOverflow;case 217:return e.NodeCapacityNotSufficientForOperation;case 218:return e.BucketHasNoThrottleGroups;case 219:return e.ThrottleGroupHasZeroOpsPerSec;case 220:return e.SuccessButMissingExpectedOperation;case 221:return e.UnparseableThrottleDefinitions;case 222:return e.InvalidThrottleDefinitions;case 223:return e.AccountExpiredAndPendingRemoval;case 224:return e.InvalidTokenMaxSupply;case 225:return e.InvalidTokenNftSerialNumber;case 226:return e.InvalidNftId;case 227:return e.MetadataTooLong;case 228:return e.BatchSizeLimitExceeded;case 229:return e.InvalidQueryRange;case 230:return e.FractionDividesByZero;case 231:return e.InsufficientPayerBalanceForCustomFee;case 232:return e.CustomFeesListTooLong;case 233:return e.InvalidCustomFeeCollector;case 234:return e.InvalidTokenIdInCustomFees;case 235:return e.TokenNotAssociatedToFeeCollector;case 236:return e.TokenMaxSupplyReached;case 237:return e.SenderDoesNotOwnNftSerialNo;case 238:return e.CustomFeeNotFullySpecified;case 239:return e.CustomFeeMustBePositive;case 240:return e.TokenHasNoFeeScheduleKey;case 241:return e.CustomFeeOutsideNumericRange;case 242:return e.RoyaltyFractionCannotExceedOne;case 243:return e.FractionalFeeMaxAmountLessThanMinAmount;case 244:return e.CustomScheduleAlreadyHasNoFees;case 245:return e.CustomFeeDenominationMustBeFungibleCommon;case 246:return e.CustomFractionalFeeOnlyAllowedForFungibleCommon;case 247:return e.InvalidCustomFeeScheduleKey;case 248:return e.InvalidTokenMintMetadata;case 249:return e.InvalidTokenBurnMetadata;case 250:return e.CurrentTreasuryStillOwnsNfts;case 251:return e.AccountStillOwnsNfts;case 252:return e.TreasuryMustOwnBurnedNft;case 253:return e.AccountDoesNotOwnWipedNft;case 254:return e.AccountAmountTransfersOnlyAllowedForFungibleCommon;case 255:return e.MaxNftsInPriceRegimeHaveBeenMinted;case 256:return e.PayerAccountDeleted;case 257:return e.CustomFeeChargingExceededMaxRecursionDepth;case 258:return e.CustomFeeChargingExceededMaxAccountAmounts;case 259:return e.InsufficientSenderAccountBalanceForCustomFee;case 260:return e.SerialNumberLimitReached;case 261:return e.CustomRoyaltyFeeOnlyAllowedForNonFungibleUnique;case 262:return e.NoRemainingAutomaticAssociations;case 263:return e.ExistingAutomaticAssociationsExceedGivenLimit;case 264:return e.RequestedNumAutomaticAssociationsExceedsAssociationLimit;case 265:return e.TokenIsPaused;case 266:return e.TokenHasNoPauseKey;case 267:return e.InvalidPauseKey;case 268:return e.FreezeUpdateFileDoesNotExist;case 269:return e.FreezeUpdateFileHashDoesNotMatch;case 270:return e.NoUpgradeHasBeenPrepared;case 271:return e.NoFreezeIsScheduled;case 272:return e.UpdateFileHashChangedSincePrepareUpgrade;case 273:return e.FreezeStartTimeMustBeFuture;case 274:return e.PreparedUpdateFileIsImmutable;case 275:return e.FreezeAlreadyScheduled;case 276:return e.FreezeUpgradeInProgress;case 277:return e.UpdateFileIdDoesNotMatchPrepared;case 278:return e.UpdateFileHashDoesNotMatchPrepared;case 279:return e.ConsensusGasExhausted;case 280:return e.RevertedSuccess;case 281:return e.MaxStorageInPriceRegimeHasBeenUsed;case 282:return e.InvalidAliasKey;case 283:return e.UnexpectedTokenDecimals;case 284:return e.InvalidProxyAccountId;case 285:return e.InvalidTransferAccountId;case 286:return e.InvalidFeeCollectorAccountId;case 287:return e.AliasIsImmutable;case 288:return e.SpenderAccountSameAsOwner;case 289:return e.AmountExceedsTokenMaxSupply;case 290:return e.NegativeAllowanceAmount;case 291:return e.CannotApproveForAllFungibleCommon;case 292:return e.SpenderDoesNotHaveAllowance;case 293:return e.AmountExceedsAllowance;case 294:return e.MaxAllowancesExceeded;case 295:return e.EmptyAllowances;case 296:return e.SpenderAccountRepeatedInAllowances;case 297:return e.RepeatedSerialNumsInNftAllowances;case 298:return e.FungibleTokenInNftAllowances;case 299:return e.NftInFungibleTokenAllowances;case 300:return e.InvalidAllowanceOwnerId;case 301:return e.InvalidAllowanceSpenderId;case 302:return e.RepeatedAllowancesToDelete;case 303:return e.InvalidDelegatingSpender;case 304:return e.DelegatingSpenderCannotGrantApproveForAll;case 305:return e.DelegatingSpenderDoesNotHaveApproveForAll;case 306:return e.ScheduleExpirationTimeTooFarInFuture;case 307:return e.ScheduleExpirationTimeMustBeHigherThanConsensusTime;case 308:return e.ScheduleFutureThrottleExceeded;case 309:return e.ScheduleFutureGasLimitExceeded;case 310:return e.InvalidEthereumTransaction;case 311:return e.WrongChainId;case 312:return e.WrongNonce;case 313:return e.AccessListUnsupported;case 314:return e.SchedulePendingExpiration;case 315:return e.ContractIsTokenTreasury;case 316:return e.ContractHasNonZeroTokenBalances;case 317:return e.ContractExpiredAndPendingRemoval;case 318:return e.ContractHasNoAutoRenewAccount;case 319:return e.PermanentRemovalRequiresSystemInitiation;case 320:return e.ProxyAccountIdFieldIsDeprecated;case 321:return e.SelfStakingIsNotAllowed;case 322:return e.InvalidStakingId;case 323:return e.StakingNotEnabled;case 324:return e.InvalidPrngRange;case 325:return e.MaxEntitiesInPriceRegimeHaveBeenCreated;case 326:return e.InvalidFullPrefixSignatureForPrecompile;case 327:return e.InsufficientBalancesForStorageRent;case 328:return e.MaxChildRecordsExceeded;case 329:return e.InsufficientBalancesForRenewalFees;case 330:return e.TransactionHasUnknownFields;case 331:return e.AccountIsImmutable;case 332:return e.AliasAlreadyAssigned;case 333:return e.InvalidMetadataKey;case 334:return e.TokenHasNoMetadataKey;case 335:return e.MissingTokenMetadata;case 336:return e.MissingSerialNumbers;case 337:return e.TokenHasNoAdminKey;case 338:return e.NodeDeleted;case 339:return e.InvalidNodeId;case 340:return e.InvalidGossipEndpoint;case 341:return e.InvalidNodeAccountId;case 342:return e.InvalidNodeDescription;case 343:return e.InvalidServiceEndpoint;case 344:return e.InvalidGossipCaCertificate;case 345:return e.InvalidGrpcCertificate;case 346:return e.InvalidMaxAutoAssociations;case 347:return e.MaxNodesCreated;case 348:return e.IpFqdnCannotBeSetForSameEndpoint;case 349:return e.GossipEndpointCannotHaveFqdn;case 350:return e.FqdnSizeTooLarge;case 351:return e.InvalidEndpoint;case 352:return e.GossipEndpointsExceededLimit;case 353:return e.TokenReferenceRepeated;case 354:return e.InvalidOwnerId;case 355:return e.TokenReferenceListSizeLimitExceeded;case 356:return e.ServiceEndpointsExceededLimit;case 357:return e.InvalidIpv4Address;case 358:return e.EmptyTokenReferenceList;case 359:return e.UpdateNodeAccountNotAllowed;case 360:return e.TokenHasNoMetadataOrSupplyKey;case 361:return e.EmptyPendingAirdropIdList;case 362:return e.PendingAirdropIdRepeated;case 363:return e.MaxPendingAirdropIdExceeded;case 364:return e.PendingNftAirdropAlreadyExists;case 365:return e.AccountHasPendingAirdrops;case 366:return e.ThrottledAtConsensus;case 367:return e.InvalidPendingAirdropId;case 368:return e.TokenAirdropWithFallbackRoyalty;case 369:return e.InvalidTokenInPendingAirdrop;case 370:return e.ScheduleExpiryIsBusy;case 371:return e.InvalidGrpcCertificateHash;case 372:return e.MissingExpiryTime;case 373:return e.NoSchedulingAllowedAfterScheduledRecursion;case 374:return e.RecursiveSchedulingLimitReached;case 375:return e.WaitingForLedgerId;case 376:return e.MaxEntriesForFeeExemptKeyListExceeded;case 377:return e.FeeExemptKeyListContainsDuplicatedKeys;case 378:return e.InvalidKeyInFeeExemptKeyList;case 379:return e.InvalidFeeScheduleKey;case 380:return e.FeeScheduleKeyCannotBeUpdated;case 381:return e.FeeScheduleKeyNotSet;case 382:return e.MaxCustomFeeLimitExceeded;case 383:return e.NoValidMaxCustomFee;case 384:return e.InvalidMaxCustomFees;case 385:return e.DuplicateDenominationInMaxCustomFeeList;case 386:return e.DuplicateAccountIdInMaxCustomFeeList;case 387:return e.MaxCustomFeesIsNotSupported;case 388:return e.BatchListEmpty;case 389:return e.BatchListContainsDuplicates;case 390:return e.BatchTransactionInBlacklist;case 391:return e.InnerTransactionFailed;case 392:return e.MissingBatchKey;case 393:return e.BatchKeySetOnNonInnerTransaction;case 394:return e.InvalidBatchKey;case 395:return e.ScheduleExpiryNotConfigurable;case 396:return e.CreatingSystemEntities;case 397:return e.ThrottleGroupLcmOverflow;case 398:return e.AirdropContainsMultipleSendersForAToken;case 399:return e.GrpcWebProxyNotSupported;default:throw new Error(`(BUG) Status.fromCode() does not handle code: ${t}`)}}valueOf(){return this._code}};e$z.Ok=new e$z(0),e$z.InvalidTransaction=new e$z(1),e$z.PayerAccountNotFound=new e$z(2),e$z.InvalidNodeAccount=new e$z(3),e$z.TransactionExpired=new e$z(4),e$z.InvalidTransactionStart=new e$z(5),e$z.InvalidTransactionDuration=new e$z(6),e$z.InvalidSignature=new e$z(7),e$z.MemoTooLong=new e$z(8),e$z.InsufficientTxFee=new e$z(9),e$z.InsufficientPayerBalance=new e$z(10),e$z.DuplicateTransaction=new e$z(11),e$z.Busy=new e$z(12),e$z.NotSupported=new e$z(13),e$z.InvalidFileId=new e$z(14),e$z.InvalidAccountId=new e$z(15),e$z.InvalidContractId=new e$z(16),e$z.InvalidTransactionId=new e$z(17),e$z.ReceiptNotFound=new e$z(18),e$z.RecordNotFound=new e$z(19),e$z.InvalidSolidityId=new e$z(20),e$z.Unknown=new e$z(21),e$z.Success=new e$z(22),e$z.FailInvalid=new e$z(23),e$z.FailFee=new e$z(24),e$z.FailBalance=new e$z(25),e$z.KeyRequired=new e$z(26),e$z.BadEncoding=new e$z(27),e$z.InsufficientAccountBalance=new e$z(28),e$z.InvalidSolidityAddress=new e$z(29),e$z.InsufficientGas=new e$z(30),e$z.ContractSizeLimitExceeded=new e$z(31),e$z.LocalCallModificationException=new e$z(32),e$z.ContractRevertExecuted=new e$z(33),e$z.ContractExecutionException=new e$z(34),e$z.InvalidReceivingNodeAccount=new e$z(35),e$z.MissingQueryHeader=new e$z(36),e$z.AccountUpdateFailed=new e$z(37),e$z.InvalidKeyEncoding=new e$z(38),e$z.NullSolidityAddress=new e$z(39),e$z.ContractUpdateFailed=new e$z(40),e$z.InvalidQueryHeader=new e$z(41),e$z.InvalidFeeSubmitted=new e$z(42),e$z.InvalidPayerSignature=new e$z(43),e$z.KeyNotProvided=new e$z(44),e$z.InvalidExpirationTime=new e$z(45),e$z.NoWaclKey=new e$z(46),e$z.FileContentEmpty=new e$z(47),e$z.InvalidAccountAmounts=new e$z(48),e$z.EmptyTransactionBody=new e$z(49),e$z.InvalidTransactionBody=new e$z(50),e$z.InvalidSignatureTypeMismatchingKey=new e$z(51),e$z.InvalidSignatureCountMismatchingKey=new e$z(52),e$z.EmptyLiveHashBody=new e$z(53),e$z.EmptyLiveHash=new e$z(54),e$z.EmptyLiveHashKeys=new e$z(55),e$z.InvalidLiveHashSize=new e$z(56),e$z.EmptyQueryBody=new e$z(57),e$z.EmptyLiveHashQuery=new e$z(58),e$z.LiveHashNotFound=new e$z(59),e$z.AccountIdDoesNotExist=new e$z(60),e$z.LiveHashAlreadyExists=new e$z(61),e$z.InvalidFileWacl=new e$z(62),e$z.SerializationFailed=new e$z(63),e$z.TransactionOversize=new e$z(64),e$z.TransactionTooManyLayers=new e$z(65),e$z.ContractDeleted=new e$z(66),e$z.PlatformNotActive=new e$z(67),e$z.KeyPrefixMismatch=new e$z(68),e$z.PlatformTransactionNotCreated=new e$z(69),e$z.InvalidRenewalPeriod=new e$z(70),e$z.InvalidPayerAccountId=new e$z(71),e$z.AccountDeleted=new e$z(72),e$z.FileDeleted=new e$z(73),e$z.AccountRepeatedInAccountAmounts=new e$z(74),e$z.SettingNegativeAccountBalance=new e$z(75),e$z.ObtainerRequired=new e$z(76),e$z.ObtainerSameContractId=new e$z(77),e$z.ObtainerDoesNotExist=new e$z(78),e$z.ModifyingImmutableContract=new e$z(79),e$z.FileSystemException=new e$z(80),e$z.AutorenewDurationNotInRange=new e$z(81),e$z.ErrorDecodingBytestring=new e$z(82),e$z.ContractFileEmpty=new e$z(83),e$z.ContractBytecodeEmpty=new e$z(84),e$z.InvalidInitialBalance=new e$z(85),e$z.InvalidReceiveRecordThreshold=new e$z(86),e$z.InvalidSendRecordThreshold=new e$z(87),e$z.AccountIsNotGenesisAccount=new e$z(88),e$z.PayerAccountUnauthorized=new e$z(89),e$z.InvalidFreezeTransactionBody=new e$z(90),e$z.FreezeTransactionBodyNotFound=new e$z(91),e$z.TransferListSizeLimitExceeded=new e$z(92),e$z.ResultSizeLimitExceeded=new e$z(93),e$z.NotSpecialAccount=new e$z(94),e$z.ContractNegativeGas=new e$z(95),e$z.ContractNegativeValue=new e$z(96),e$z.InvalidFeeFile=new e$z(97),e$z.InvalidExchangeRateFile=new e$z(98),e$z.InsufficientLocalCallGas=new e$z(99),e$z.EntityNotAllowedToDelete=new e$z(100),e$z.AuthorizationFailed=new e$z(101),e$z.FileUploadedProtoInvalid=new e$z(102),e$z.FileUploadedProtoNotSavedToDisk=new e$z(103),e$z.FeeScheduleFilePartUploaded=new e$z(104),e$z.ExchangeRateChangeLimitExceeded=new e$z(105),e$z.MaxContractStorageExceeded=new e$z(106),e$z.TransferAccountSameAsDeleteAccount=new e$z(107),e$z.TotalLedgerBalanceInvalid=new e$z(108),e$z.ExpirationReductionNotAllowed=new e$z(110),e$z.MaxGasLimitExceeded=new e$z(111),e$z.MaxFileSizeExceeded=new e$z(112),e$z.ReceiverSigRequired=new e$z(113),e$z.InvalidTopicId=new e$z(150),e$z.InvalidAdminKey=new e$z(155),e$z.InvalidSubmitKey=new e$z(156),e$z.Unauthorized=new e$z(157),e$z.InvalidTopicMessage=new e$z(158),e$z.InvalidAutorenewAccount=new e$z(159),e$z.AutorenewAccountNotAllowed=new e$z(160),e$z.TopicExpired=new e$z(162),e$z.InvalidChunkNumber=new e$z(163),e$z.InvalidChunkTransactionId=new e$z(164),e$z.AccountFrozenForToken=new e$z(165),e$z.TokensPerAccountLimitExceeded=new e$z(166),e$z.InvalidTokenId=new e$z(167),e$z.InvalidTokenDecimals=new e$z(168),e$z.InvalidTokenInitialSupply=new e$z(169),e$z.InvalidTreasuryAccountForToken=new e$z(170),e$z.InvalidTokenSymbol=new e$z(171),e$z.TokenHasNoFreezeKey=new e$z(172),e$z.TransfersNotZeroSumForToken=new e$z(173),e$z.MissingTokenSymbol=new e$z(174),e$z.TokenSymbolTooLong=new e$z(175),e$z.AccountKycNotGrantedForToken=new e$z(176),e$z.TokenHasNoKycKey=new e$z(177),e$z.InsufficientTokenBalance=new e$z(178),e$z.TokenWasDeleted=new e$z(179),e$z.TokenHasNoSupplyKey=new e$z(180),e$z.TokenHasNoWipeKey=new e$z(181),e$z.InvalidTokenMintAmount=new e$z(182),e$z.InvalidTokenBurnAmount=new e$z(183),e$z.TokenNotAssociatedToAccount=new e$z(184),e$z.CannotWipeTokenTreasuryAccount=new e$z(185),e$z.InvalidKycKey=new e$z(186),e$z.InvalidWipeKey=new e$z(187),e$z.InvalidFreezeKey=new e$z(188),e$z.InvalidSupplyKey=new e$z(189),e$z.MissingTokenName=new e$z(190),e$z.TokenNameTooLong=new e$z(191),e$z.InvalidWipingAmount=new e$z(192),e$z.TokenIsImmutable=new e$z(193),e$z.TokenAlreadyAssociatedToAccount=new e$z(194),e$z.TransactionRequiresZeroTokenBalances=new e$z(195),e$z.AccountIsTreasury=new e$z(196),e$z.TokenIdRepeatedInTokenList=new e$z(197),e$z.TokenTransferListSizeLimitExceeded=new e$z(198),e$z.EmptyTokenTransferBody=new e$z(199),e$z.EmptyTokenTransferAccountAmounts=new e$z(200),e$z.InvalidScheduleId=new e$z(201),e$z.ScheduleIsImmutable=new e$z(202),e$z.InvalidSchedulePayerId=new e$z(203),e$z.InvalidScheduleAccountId=new e$z(204),e$z.NoNewValidSignatures=new e$z(205),e$z.UnresolvableRequiredSigners=new e$z(206),e$z.ScheduledTransactionNotInWhitelist=new e$z(207),e$z.SomeSignaturesWereInvalid=new e$z(208),e$z.TransactionIdFieldNotAllowed=new e$z(209),e$z.IdenticalScheduleAlreadyCreated=new e$z(210),e$z.InvalidZeroByteInString=new e$z(211),e$z.ScheduleAlreadyDeleted=new e$z(212),e$z.ScheduleAlreadyExecuted=new e$z(213),e$z.MessageSizeTooLarge=new e$z(214),e$z.OperationRepeatedInBucketGroups=new e$z(215),e$z.BucketCapacityOverflow=new e$z(216),e$z.NodeCapacityNotSufficientForOperation=new e$z(217),e$z.BucketHasNoThrottleGroups=new e$z(218),e$z.ThrottleGroupHasZeroOpsPerSec=new e$z(219),e$z.SuccessButMissingExpectedOperation=new e$z(220),e$z.UnparseableThrottleDefinitions=new e$z(221),e$z.InvalidThrottleDefinitions=new e$z(222),e$z.AccountExpiredAndPendingRemoval=new e$z(223),e$z.InvalidTokenMaxSupply=new e$z(224),e$z.InvalidTokenNftSerialNumber=new e$z(225),e$z.InvalidNftId=new e$z(226),e$z.MetadataTooLong=new e$z(227),e$z.BatchSizeLimitExceeded=new e$z(228),e$z.InvalidQueryRange=new e$z(229),e$z.FractionDividesByZero=new e$z(230),e$z.InsufficientPayerBalanceForCustomFee=new e$z(231),e$z.CustomFeesListTooLong=new e$z(232),e$z.InvalidCustomFeeCollector=new e$z(233),e$z.InvalidTokenIdInCustomFees=new e$z(234),e$z.TokenNotAssociatedToFeeCollector=new e$z(235),e$z.TokenMaxSupplyReached=new e$z(236),e$z.SenderDoesNotOwnNftSerialNo=new e$z(237),e$z.CustomFeeNotFullySpecified=new e$z(238),e$z.CustomFeeMustBePositive=new e$z(239),e$z.TokenHasNoFeeScheduleKey=new e$z(240),e$z.CustomFeeOutsideNumericRange=new e$z(241),e$z.RoyaltyFractionCannotExceedOne=new e$z(242),e$z.FractionalFeeMaxAmountLessThanMinAmount=new e$z(243),e$z.CustomScheduleAlreadyHasNoFees=new e$z(244),e$z.CustomFeeDenominationMustBeFungibleCommon=new e$z(245),e$z.CustomFractionalFeeOnlyAllowedForFungibleCommon=new e$z(246),e$z.InvalidCustomFeeScheduleKey=new e$z(247),e$z.InvalidTokenMintMetadata=new e$z(248),e$z.InvalidTokenBurnMetadata=new e$z(249),e$z.CurrentTreasuryStillOwnsNfts=new e$z(250),e$z.AccountStillOwnsNfts=new e$z(251),e$z.TreasuryMustOwnBurnedNft=new e$z(252),e$z.AccountDoesNotOwnWipedNft=new e$z(253),e$z.AccountAmountTransfersOnlyAllowedForFungibleCommon=new e$z(254),e$z.MaxNftsInPriceRegimeHaveBeenMinted=new e$z(255),e$z.PayerAccountDeleted=new e$z(256),e$z.CustomFeeChargingExceededMaxRecursionDepth=new e$z(257),e$z.CustomFeeChargingExceededMaxAccountAmounts=new e$z(258),e$z.InsufficientSenderAccountBalanceForCustomFee=new e$z(259),e$z.SerialNumberLimitReached=new e$z(260),e$z.CustomRoyaltyFeeOnlyAllowedForNonFungibleUnique=new e$z(261),e$z.NoRemainingAutomaticAssociations=new e$z(262),e$z.ExistingAutomaticAssociationsExceedGivenLimit=new e$z(263),e$z.RequestedNumAutomaticAssociationsExceedsAssociationLimit=new e$z(264),e$z.TokenIsPaused=new e$z(265),e$z.TokenHasNoPauseKey=new e$z(266),e$z.InvalidPauseKey=new e$z(267),e$z.FreezeUpdateFileDoesNotExist=new e$z(268),e$z.FreezeUpdateFileHashDoesNotMatch=new e$z(269),e$z.NoUpgradeHasBeenPrepared=new e$z(270),e$z.NoFreezeIsScheduled=new e$z(271),e$z.UpdateFileHashChangedSincePrepareUpgrade=new e$z(272),e$z.FreezeStartTimeMustBeFuture=new e$z(273),e$z.PreparedUpdateFileIsImmutable=new e$z(274),e$z.FreezeAlreadyScheduled=new e$z(275),e$z.FreezeUpgradeInProgress=new e$z(276),e$z.UpdateFileIdDoesNotMatchPrepared=new e$z(277),e$z.UpdateFileHashDoesNotMatchPrepared=new e$z(278),e$z.ConsensusGasExhausted=new e$z(279),e$z.RevertedSuccess=new e$z(280),e$z.MaxStorageInPriceRegimeHasBeenUsed=new e$z(281),e$z.InvalidAliasKey=new e$z(282),e$z.UnexpectedTokenDecimals=new e$z(283),e$z.InvalidProxyAccountId=new e$z(284),e$z.InvalidTransferAccountId=new e$z(285),e$z.InvalidFeeCollectorAccountId=new e$z(286),e$z.AliasIsImmutable=new e$z(287),e$z.SpenderAccountSameAsOwner=new e$z(288),e$z.AmountExceedsTokenMaxSupply=new e$z(289),e$z.NegativeAllowanceAmount=new e$z(290),e$z.CannotApproveForAllFungibleCommon=new e$z(291),e$z.SpenderDoesNotHaveAllowance=new e$z(292),e$z.AmountExceedsAllowance=new e$z(293),e$z.MaxAllowancesExceeded=new e$z(294),e$z.EmptyAllowances=new e$z(295),e$z.SpenderAccountRepeatedInAllowances=new e$z(296),e$z.RepeatedSerialNumsInNftAllowances=new e$z(297),e$z.FungibleTokenInNftAllowances=new e$z(298),e$z.NftInFungibleTokenAllowances=new e$z(299),e$z.InvalidAllowanceOwnerId=new e$z(300),e$z.InvalidAllowanceSpenderId=new e$z(301),e$z.RepeatedAllowancesToDelete=new e$z(302),e$z.InvalidDelegatingSpender=new e$z(303),e$z.DelegatingSpenderCannotGrantApproveForAll=new e$z(304),e$z.DelegatingSpenderDoesNotHaveApproveForAll=new e$z(305),e$z.ScheduleExpirationTimeTooFarInFuture=new e$z(306),e$z.ScheduleExpirationTimeMustBeHigherThanConsensusTime=new e$z(307),e$z.ScheduleFutureThrottleExceeded=new e$z(308),e$z.ScheduleFutureGasLimitExceeded=new e$z(309),e$z.InvalidEthereumTransaction=new e$z(310),e$z.WrongChainId=new e$z(311),e$z.WrongNonce=new e$z(312),e$z.AccessListUnsupported=new e$z(313),e$z.SchedulePendingExpiration=new e$z(314),e$z.ContractIsTokenTreasury=new e$z(315),e$z.ContractHasNonZeroTokenBalances=new e$z(316),e$z.ContractExpiredAndPendingRemoval=new e$z(317),e$z.ContractHasNoAutoRenewAccount=new e$z(318),e$z.PermanentRemovalRequiresSystemInitiation=new e$z(319),e$z.ProxyAccountIdFieldIsDeprecated=new e$z(320),e$z.SelfStakingIsNotAllowed=new e$z(321),e$z.InvalidStakingId=new e$z(322),e$z.StakingNotEnabled=new e$z(323),e$z.InvalidPrngRange=new e$z(324),e$z.MaxEntitiesInPriceRegimeHaveBeenCreated=new e$z(325),e$z.InvalidFullPrefixSignatureForPrecompile=new e$z(326),e$z.InsufficientBalancesForStorageRent=new e$z(327),e$z.MaxChildRecordsExceeded=new e$z(328),e$z.InsufficientBalancesForRenewalFees=new e$z(329),e$z.TransactionHasUnknownFields=new e$z(330),e$z.AccountIsImmutable=new e$z(331),e$z.AliasAlreadyAssigned=new e$z(332),e$z.InvalidMetadataKey=new e$z(333),e$z.TokenHasNoMetadataKey=new e$z(334),e$z.MissingTokenMetadata=new e$z(335),e$z.MissingSerialNumbers=new e$z(336),e$z.TokenHasNoAdminKey=new e$z(337),e$z.NodeDeleted=new e$z(338),e$z.InvalidNodeId=new e$z(339),e$z.InvalidGossipEndpoint=new e$z(340),e$z.InvalidNodeAccountId=new e$z(341),e$z.InvalidNodeDescription=new e$z(342),e$z.InvalidServiceEndpoint=new e$z(343),e$z.InvalidGossipCaCertificate=new e$z(344),e$z.InvalidGrpcCertificate=new e$z(345),e$z.InvalidMaxAutoAssociations=new e$z(346),e$z.MaxNodesCreated=new e$z(347),e$z.IpFqdnCannotBeSetForSameEndpoint=new e$z(348),e$z.GossipEndpointCannotHaveFqdn=new e$z(349),e$z.FqdnSizeTooLarge=new e$z(350),e$z.InvalidEndpoint=new e$z(351),e$z.GossipEndpointsExceededLimit=new e$z(352),e$z.TokenReferenceRepeated=new e$z(353),e$z.InvalidOwnerId=new e$z(354),e$z.TokenReferenceListSizeLimitExceeded=new e$z(355),e$z.ServiceEndpointsExceededLimit=new e$z(356),e$z.InvalidIpv4Address=new e$z(357),e$z.EmptyTokenReferenceList=new e$z(358),e$z.UpdateNodeAccountNotAllowed=new e$z(359),e$z.TokenHasNoMetadataOrSupplyKey=new e$z(360),e$z.EmptyPendingAirdropIdList=new e$z(361),e$z.PendingAirdropIdRepeated=new e$z(362),e$z.MaxPendingAirdropIdExceeded=new e$z(363),e$z.PendingNftAirdropAlreadyExists=new e$z(364),e$z.AccountHasPendingAirdrops=new e$z(365),e$z.ThrottledAtConsensus=new e$z(366),e$z.InvalidPendingAirdropId=new e$z(367),e$z.TokenAirdropWithFallbackRoyalty=new e$z(368),e$z.InvalidTokenInPendingAirdrop=new e$z(369),e$z.ScheduleExpiryIsBusy=new e$z(370),e$z.InvalidGrpcCertificateHash=new e$z(371),e$z.MissingExpiryTime=new e$z(372),e$z.NoSchedulingAllowedAfterScheduledRecursion=new e$z(373),e$z.RecursiveSchedulingLimitReached=new e$z(374),e$z.WaitingForLedgerId=new e$z(375),e$z.MaxEntriesForFeeExemptKeyListExceeded=new e$z(376),e$z.FeeExemptKeyListContainsDuplicatedKeys=new e$z(377),e$z.InvalidKeyInFeeExemptKeyList=new e$z(378),e$z.InvalidFeeScheduleKey=new e$z(379),e$z.FeeScheduleKeyCannotBeUpdated=new e$z(380),e$z.FeeScheduleKeyNotSet=new e$z(381),e$z.MaxCustomFeeLimitExceeded=new e$z(382),e$z.NoValidMaxCustomFee=new e$z(383),e$z.InvalidMaxCustomFees=new e$z(384),e$z.DuplicateDenominationInMaxCustomFeeList=new e$z(385),e$z.DuplicateAccountIdInMaxCustomFeeList=new e$z(386),e$z.MaxCustomFeesIsNotSupported=new e$z(387),e$z.BatchListEmpty=new e$z(388),e$z.BatchListContainsDuplicates=new e$z(389),e$z.BatchTransactionInBlacklist=new e$z(390),e$z.InnerTransactionFailed=new e$z(391),e$z.MissingBatchKey=new e$z(392),e$z.BatchKeySetOnNonInnerTransaction=new e$z(393),e$z.InvalidBatchKey=new e$z(394),e$z.ScheduleExpiryNotConfigurable=new e$z(395),e$z.CreatingSystemEntities=new e$z(396),e$z.ThrottleGroupLcmOverflow=new e$z(397),e$z.AirdropContainsMultipleSendersForAToken=new e$z(398),e$z.GrpcWebProxyNotSupported=new e$z(399);let e$y=class e{constructor(e){this._code=e,Object.freeze(this)}static _fromValue(t){switch(t){case 0:return e.Ok;case 1:return e.Cancelled;case 2:return e.Unknown;case 3:return e.InvalidArgument;case 4:return e.DeadlineExceeded;case 5:return e.NotFound;case 6:return e.AlreadyExists;case 7:return e.PermissionDenied;case 8:return e.ResourceExhausted;case 9:return e.FailedPrecondition;case 10:return e.Aborted;case 11:return e.OutOfRange;case 12:return e.Unimplemented;case 13:return e.Internal;case 14:return e.Unavailable;case 15:return e.DataLoss;case 16:return e.Unauthenticated;case 17:return e.Timeout;case 18:return e.GrpcWeb;default:throw new Error("(BUG) non-exhaustive GrpcStatus switch statement")}}toString(){switch(this){case e.Ok:return"OK";case e.Cancelled:return"CANCELLED";case e.Unknown:return"UNKNOWN";case e.InvalidArgument:return"INVALID_ARGUMENT";case e.DeadlineExceeded:return"DEADLINE_EXCEEDED";case e.NotFound:return"NOT_FOUND";case e.AlreadyExists:return"ALREADY_EXISTS";case e.PermissionDenied:return"PERMISSION_DENIED";case e.Unauthenticated:return"UNAUTHENTICATED";case e.ResourceExhausted:return"RESOURCE_EXHAUSTED";case e.FailedPrecondition:return"FAILED_PRECONDITION";case e.Aborted:return"ABORTED";case e.OutOfRange:return"OUT_OF_RANGE";case e.Unimplemented:return"UNIMPLEMENTED";case e.Internal:return"INTERNAL";case e.Unavailable:return"UNAVAILABLE";case e.DataLoss:return"DATA_LOSS";case e.Timeout:return"TIMEOUT";case e.GrpcWeb:return"GRPC_WEB";default:return`UNKNOWN (${this._code})`}}valueOf(){return this._code}};e$y.Ok=new e$y(0),e$y.Cancelled=new e$y(1),e$y.Unknown=new e$y(2),e$y.InvalidArgument=new e$y(3),e$y.DeadlineExceeded=new e$y(4),e$y.NotFound=new e$y(5),e$y.AlreadyExists=new e$y(6),e$y.PermissionDenied=new e$y(7),e$y.ResourceExhausted=new e$y(8),e$y.FailedPrecondition=new e$y(9),e$y.Aborted=new e$y(10),e$y.OutOfRange=new e$y(11),e$y.Unimplemented=new e$y(12),e$y.Internal=new e$y(13),e$y.Unavailable=new e$y(14),e$y.DataLoss=new e$y(15),e$y.Unauthenticated=new e$y(16),e$y.Timeout=new e$y(17),e$y.GrpcWeb=new e$y(18);let r$C=class e extends Error{constructor(t,r){super(`gRPC service failed with: Status: ${t.toString()}, Code: ${t.valueOf()}`),this.status=t,this.nodeAccountId=r,this.name="GrpcServiceError",void 0!==Error.captureStackTrace&&Error.captureStackTrace(this,e)}static _fromResponse(t){if(null!=t.code&&null!=t.details){const r=e$y._fromValue(t.code),n=new e(r);return n.stack+=`\nCaused by: ${t.stack?t.stack.toString():""}`,n.message+=`: ${t.details}`,n}return t}toString(){return`${this.name}: ${this.message}`}},r$B=class e extends Error{constructor(t){super(`failed with error code: ${t.toString()}`),this.status=t,this.name="HttpError",void 0!==Error.captureStackTrace&&Error.captureStackTrace(this,e)}},t$r=class extends Error{constructor(e,t){super(e),this.nodeAccountId=t}toJSON(){return{message:this.message,nodeAccountId:this.nodeAccountId}}toString(){return JSON.stringify(this.toJSON())}valueOf(){return this.toJSON()}};const c$h={Finished:"Finished",Retry:"Retry",Error:"Error"},a$i=/\brst[^0-9a-zA-Z]stream\b/i;let u$k=class{constructor(){this._maxAttempts=10,this._nodeAccountIds=new t$t,this.transactionNodeIds=[],this._signOnDemand=!1,this._minBackoff=null,this._maxBackoff=8e3,this._operator=null,this._requestTimeout=null,this._grpcDeadline=null,this._logger=null}get nodeAccountIds(){return this._nodeAccountIds.isEmpty?null:(this._nodeAccountIds.setLocked(),this._nodeAccountIds.list)}setNodeAccountIds(e){return this._nodeAccountIds.setList(e).setLocked(),this}get maxRetries(){return console.warn("Deprecated: use maxAttempts instead"),this.maxAttempts}setMaxRetries(e){return console.warn("Deprecated: use setMaxAttempts() instead"),this.setMaxAttempts(e)}get maxAttempts(){return this._maxAttempts}setMaxAttempts(e){return this._maxAttempts=e,this}get grpcDeadline(){return this._grpcDeadline}setGrpcDeadline(e){return this._grpcDeadline=e,this}setMinBackoff(e){if(null==e)throw new Error("minBackoff cannot be null.");if(null!=this._maxBackoff&&e>this._maxBackoff)throw new Error("minBackoff cannot be larger than maxBackoff.");return this._minBackoff=e,this}get minBackoff(){return this._minBackoff}setMaxBackoff(e){if(null==e)throw new Error("maxBackoff cannot be null.");if(null!=this._minBackoff&&ee.toString()));if(!this.transactionNodeIds.some((t=>e.includes(t)))){const t=e.length>2?`${e.slice(0,2).join(", ")} ...`:e.join(", "),r=1===e.length;throw new Error(`Attempting to execute a transaction against node${r?"":"s"} ${t}, which ${r?"is":"are"} not included in the Client's node list. Please review your Client configuration.`)}}for(let a=1;a<=i;a+=1){if(null!=this._requestTimeout&&n+this._requestTimeout<=Date.now())throw new t$r("timeout exceeded",this._nodeAccountIds.isEmpty?"No node account ID set":this._nodeAccountIds.current.toString());let t,c;if(this._nodeAccountIds.isEmpty?(c=e._network.getNode(),t=c.accountId,this._nodeAccountIds.setList([t])):(t=this._nodeAccountIds.current,c=e._network.getNode(t)),null==c)throw new Error(`NodeAccountId not recognized: ${t.toString()}`);if(this.transactionNodeIds.length&&!this.transactionNodeIds.includes(t.toString())){console.error(`Attempting to execute a transaction against node ${t.toString()}, which is not included in the Client's node list. Please review your Client configuration.`),this._nodeAccountIds.advance();continue}const u=this._getLogId();this._logger&&this._logger.debug(`[${u}] Node AccountID: ${c.accountId.toString()}, IP: ${c.address.toString()}`);const l=c.getChannel(),d=await this._makeRequestAsync();let h;if(!c.isHealthy()){const e=this._nodeAccountIds.index===this._nodeAccountIds.list.length-1;if(d$i(d)||r){await l$m(r,a,this._minBackoff,this._maxBackoff);continue}if(e||this._nodeAccountIds.length<=1)throw new Error(`Network connectivity issue: All nodes are unhealthy. Original node list: ${this._nodeAccountIds.list.join(", ")}`);this._logger&&this._logger.debug(`[${u}] Node is not healthy, trying the next node.`),this._nodeAccountIds.advance();continue}this._nodeAccountIds.advance();try{const e=[];null!=this._grpcDeadline&&e.push(new Promise(((e,t)=>setTimeout((()=>t(new Error("grpc deadline exceeded"))),this._grpcDeadline)))),this._logger&&this._logger.trace(`[${this._getLogId()}] sending protobuf ${n$C(this._requestToBytes(d))}`),e.push(this._execute(l,d)),h=await Promise.race(e)}catch(s){const t=r$C._fromResponse(s);if(o=t,this._logger&&this._logger.debug(`[${u}] received error ${JSON.stringify(t)}`),(t instanceof r$C||t instanceof r$B)&&this._shouldRetryExceptionally(t)&&a<=i){this._logger&&this._logger.debug(`[${this._getLogId()}] node with accountId: ${c.accountId.toString()} and proxy IP: ${c.address.toString()} is unhealthy`),e._network.increaseBackoff(c);continue}throw s}this._logger&&this._logger.trace(`[${this._getLogId()}] sending protobuf ${n$C(this._responseToBytes(h))}`),e._network.decreaseBackoff(c);const[f,p]=this._shouldRetry(d,h);switch(f.toString()!==e$z.Ok.toString()&&f.toString()!==e$z.Success.toString()&&(o=f),p){case c$h.Retry:await l$m(r,a,this._minBackoff,this._maxBackoff);continue;case c$h.Finished:return this._mapResponse(h,t,d);case c$h.Error:throw this._mapStatusError(d,h,t);default:throw new Error("(BUG) non-exhaustive switch statement for `ExecutionState`")}}throw new t$r(`max attempts of ${i.toString()} was reached for request with last error being: ${null!=o?o.toString():""}`,this._nodeAccountIds.current.toString())}toBytes(){throw new Error("not implemented")}setLogger(e){return this._logger=e,this}get logger(){return this._logger}};function d$i(e){return"object"==typeof e&&null!==e&&("transactionGetReceipt"in e||"transactionGetRecord"in e)}function l$m(e,t,r,n){if(e)return new Promise((e=>setTimeout(e,r)));const o=Math.min(Math.floor(r*Math.pow(2,t)),n);return new Promise((e=>setTimeout(e,o)))}let n$y=class extends t$s{constructor(e){super(e,`transaction ${e.transactionId.toString()} failed precheck with status ${e.status.toString()} against node account id ${e.nodeId.toString()}`),this.contractFunctionResult=e.contractFunctionResult,this.nodeId=e.nodeId}toJSON(){return{name:this.name,status:this.status.toString(),transactionId:this.transactionId.toString(),nodeId:this.nodeId.toString(),message:this.message,contractFunctionResult:this.contractFunctionResult}}},e$x=class extends Error{constructor(e,t){super(),this.message=`query cost of ${e.toString()} HBAR exceeds max set on client: ${t.toString()} HBAR`,this.name="MaxQueryPaymentExceededError",this.queryCost=e,this.maxQueryPayment=t}},s$p=class extends u$k{constructor(){super()}async _makePaymentTransaction(e,t,r,n){const o=[];null!=r?(o.push({accountID:r.accountId._toProtobuf(),amount:n.negated().toTinybars()}),o.push({accountID:t._toProtobuf(),amount:n.toTinybars()})):(o.push({accountID:new f$8(0)._toProtobuf(),amount:n.negated().toTinybars()}),o.push({accountID:t._toProtobuf(),amount:n.toTinybars()}));const i={transactionID:e._toProtobuf(),nodeAccountID:t._toProtobuf(),transactionFee:new e$A(1).toTinybars(),transactionValidDuration:{seconds:Long.fromNumber(120)},cryptoTransfer:{transfers:{accountAmounts:o}}},s={bodyBytes:proto_1.TransactionBody.encode(i).finish()};if(null!=r){const e=await r.transactionSigner(s.bodyBytes);s.sigMap={sigPair:[r.publicKey._toProtobufSignature(e)]}}return{signedTransactionBytes:proto_1.SignedTransaction.encode(s).finish()}}},n$x=class extends s$p{constructor(e){super(),this._query=e,this._grpcDeadline=e._grpcDeadline,this._requestTimeout=e._requestTimeout,this._nodeAccountIds=e._nodeAccountIds.clone(),this._operator=e._operator,this._header=null}_getTransactionId(){return this._query._getTransactionId()}_getLogId(){return`CostQuery:${this._query._getLogId()}`}async _beforeExecute(e){if(null==e)throw new Error("Cannot do CostQuery without Client");const t=null!=this._operator?this._operator:e._operator;if(null==t)throw new Error("`client` must have an `operator` or an explicit payment transaction must be provided");this._query._nodeAccountIds.isEmpty&&this._query._nodeAccountIds.setList(e._network.getNodeAccountIdsForExecute());const r=i$j.generate(t.accountId);null==this._query.paymentTransactionId&&this._query.setPaymentTransactionId(r);const n=this._getLogId(),o=new f$8(0),i=i$j.generate(new f$8(0)),s=new e$A(0);this._logger&&this._logger.debug(`[${n}] making a payment transaction for node ${o.toString()} and transaction ID ${i.toString()} with amount ${s.toString()}`),this._header={payment:await this._makePaymentTransaction(i,new f$8(0),t,s),responseType:proto_1.ResponseType.COST_ANSWER}}_makeRequestAsync(){return Promise.resolve(this._query._onMakeRequest(this._header))}_shouldRetry(e,t){return this._query._shouldRetry(e,t)}_mapStatusError(e,t,r){return this._query._mapStatusError(e,t,r)}_mapResponse(e,t,r){const n=this._query._mapResponseHeader(e).cost;return Promise.resolve(e$A.fromTinybars(n))}_execute(e,t){return this._query._execute(e,t)}_requestToBytes(e){return this._query._requestToBytes(e)}_responseToBytes(e){return this._query._responseToBytes(e)}};const m$7=new Map;let h$b=class extends s$p{constructor(){super(),this._paymentTransactionId=null,this._paymentTransactions=[],this._queryPayment=null,this._maxQueryPayment=null,this._timestamp=Date.now()}static fromBytes(e){const t=proto_1.Query.decode(e);if(null==t.query)throw new Error("(BUG) query.query was not set in the protobuf");const r=m$7.get(t.query);if(null==r)throw new Error(`(BUG) Query.fromBytes() not implemented for type ${t.query}`);return r(t)}toBytes(){return proto_1.Query.encode(this._makeRequest()).finish()}setQueryPayment(e){return this._queryPayment=e,this}setMaxQueryPayment(e){return this._maxQueryPayment=e,this}async getCost(e){this._nodeAccountIds.isEmpty&&this._nodeAccountIds.setList(e._network.getNodeAccountIdsForExecute()),this._timestamp=Date.now();const t=await new n$x(this).execute(e);return e$A.fromTinybars(t._valueInTinybar.multipliedBy(1.1).toFixed(0))}setPaymentTransactionId(e){return this._paymentTransactionId=e,this}get paymentTransactionId(){return this._paymentTransactionId}_getTransactionId(){if(null==this._paymentTransactionId)throw new Error("Query.PaymentTransactionId was not set duration execution");return this._paymentTransactionId}_isPaymentRequired(){return!0}_validateChecksums(e){}async _beforeExecute(e){if(this._paymentTransactions.length>0)return;if(e.isAutoValidateChecksumsEnabled()&&this._validateChecksums(e),this._nodeAccountIds.isEmpty&&this._nodeAccountIds.setList(e._network.getNodeAccountIdsForExecute()),this._operator=null!=this._operator?this._operator:e._operator,this._isPaymentRequired()){if(this.transactionNodeIds=Object.values(e.network).map((e=>e.toString())),null==this._operator)throw new Error("`client` must have an `operator` or an explicit payment transaction must be provided");this._paymentTransactionId=i$j.generate(this._operator.accountId)}else this._paymentTransactionId=i$j.generate(new f$8(0));let t=new e$A(0);const r=null!=this._maxQueryPayment?this._maxQueryPayment:e.defaultMaxQueryPayment;if(null!=this._queryPayment)t=this._queryPayment;else if(0===this._paymentTransactions.length&&this._isPaymentRequired()){const n=await this.getCost(e);if(r.toTinybars().toInt()0&&(e={responseType:proto_1.ResponseType.ANSWER_ONLY,payment:this._paymentTransactions[this._nodeAccountIds.index]}),e}_onMakeRequest(e){throw new Error("not implemented")}_makeRequest(){let e={};return this._isPaymentRequired()&&null!=this._paymentTransactions&&(e={payment:this._paymentTransactions[this._nodeAccountIds.index],responseType:proto_1.ResponseType.ANSWER_ONLY}),this._onMakeRequest(e)}async _makeRequestAsync(){let e={responseType:proto_1.ResponseType.ANSWER_ONLY};const t=this._getLogId(),r=this._nodeAccountIds.current,n=i$j.generate(this._operator?this._operator.accountId:new f$8(0)),o=this._queryPayment;return this._logger&&this._logger.debug(`[${t}] making a payment transaction for node ${r.toString()} and transaction ID ${n.toString()} with amount ${o.toString()}`),e.payment=await this._makePaymentTransaction(n,r,this._isPaymentRequired()?this._operator:null,o),this._onMakeRequest(e)}_shouldRetry(e,t){const{nodeTransactionPrecheckCode:r}=this._mapResponseHeader(t),n=e$z._fromCode(null!=r?r:proto_1.ResponseCodeEnum.OK);switch(this._logger&&this._logger.debug(`[${this._getLogId()}] received status ${n.toString()}`),n){case e$z.Busy:case e$z.Unknown:case e$z.PlatformTransactionNotCreated:case e$z.PlatformNotActive:return[n,c$h.Retry];case e$z.Ok:return[n,c$h.Finished];default:return[n,c$h.Error]}}_mapStatusError(e,t,r){const{nodeTransactionPrecheckCode:n}=this._mapResponseHeader(t),o=e$z._fromCode(null!=n?n:proto_1.ResponseCodeEnum.OK);return new n$y({nodeId:r,status:o,transactionId:this._getTransactionId(),contractFunctionResult:null})}_requestToBytes(e){return proto_1.Query.encode(e).finish()}_responseToBytes(e){return proto_1.Response.encode(e).finish()}},v$7=class e extends t$y{constructor(e,t,r,n){super();const o=f$9(e,t,r);this.shard=o.shard,this.realm=o.realm,this.num=o.num,this.evmAddress=null!=n?n:null,this._checksum=null}static fromEvmAddress(t,r,n){return w$a(r$G(n))?new e(...w$9(n)):new e(t,r,0,r$G(n))}static fromString(t){const r=d$j(t);if(Number.isNaN(r.shard)||Number.isNaN(r.realm))throw new Error("invalid format for entity ID");const n=null!=r.shard?Long.fromString(r.shard):Long.ZERO,o=null!=r.realm?Long.fromString(r.realm):Long.ZERO,[i,s]=r.numOrHex.length<40?[Long.fromString(r.numOrHex),void 0]:[Long.ZERO,r$G(r.numOrHex)];return new e(n,o,i,s)}static _fromProtobuf(t){return new e(null!=t.shardNum?t.shardNum:0,null!=t.realmNum?t.realmNum:0,null!=t.contractNum?t.contractNum:0)}get checksum(){return this._checksum}async populateAccountNum(e){if(null===this.evmAddress)throw new Error("field `evmAddress` should not be null");const t=`https://${e.mirrorNetwork[0].slice(0,e.mirrorNetwork[0].indexOf(":"))}/api/v1/contracts/${n$C(this.evmAddress)}`,r=await fetch(t),n=(await r.json()).contract_id;return this.num=Long.fromString(n.slice(n.lastIndexOf(".")+1)),this}validate(e){console.warn("Deprecated: Use `validateChecksum` instead"),this.validateChecksum(e)}validateChecksum(e){S$a(this.shard,this.realm,this.num,this._checksum,e)}static fromBytes(t){return e._fromProtobuf(proto_1.ContractID.decode(t))}static fromSolidityAddress(t){return w$a(r$G(t))?new e(...w$9(t)):this.fromEvmAddress(0,0,t)}toSolidityAddress(){return null!=this.evmAddress?n$C(this.evmAddress):y$b([this.shard,this.realm,this.num])}_toProtobuf(){return{contractNum:this.num,shardNum:this.shard,realmNum:this.realm,evmAddress:this.evmAddress}}toString(){return null!=this.evmAddress?`${this.shard.toString()}.${this.realm.toString()}.${n$C(this.evmAddress)}`:`${this.shard.toString()}.${this.realm.toString()}.${this.num.toString()}`}toStringWithChecksum(e){return k$8(this.toString(),e)}toBytes(){return proto_1.ContractID.encode(this._toProtobuf()).finish()}clone(){const t=new e(this);return t._checksum=this._checksum,t.evmAddress=this.evmAddress,t}compare(e){return h$c([this.shard,this.realm,this.num],[e.shard,e.realm,e.num])}equals(e){let t=!1;return null!=this.evmAddress&&null!=e.evmAddress&&(t=e$D(this.evmAddress,e.evmAddress)),this.shard.eq(e.shard)&&this.realm.eq(e.realm)&&this.num.eq(e.num)&&t}_toProtobufKey(){return{contractID:this._toProtobuf()}}static __fromProtobufKey(t){return e._fromProtobuf(t)}};t$z.setContractId((e=>v$7.__fromProtobufKey(e)));let u$j=class e{constructor(e,t,r){const n=f$9(e,t,r);this.shard=n.shard,this.realm=n.realm,this.num=n.num,this._checksum=null}static fromString(t){const r=g$7(t),n=new e(r);return n._checksum=r.checksum,n}static _fromProtobuf(t){return new e(null!=t.shardNum?Long.fromString(t.shardNum.toString()):0,null!=t.realmNum?Long.fromString(t.realmNum.toString()):0,null!=t.fileNum?Long.fromString(t.fileNum.toString()):0)}get checksum(){return this._checksum}validate(e){console.warn("Deprecated: Use `validateChecksum` instead"),this.validateChecksum(e)}validateChecksum(e){S$a(this.shard,this.realm,this.num,this._checksum,e)}static fromBytes(t){return e._fromProtobuf(proto_1.FileID.decode(t))}static fromSolidityAddress(t){const[r,n,o]=w$9(t);return new e(r,n,o)}toSolidityAddress(){return y$b([this.shard,this.realm,this.num])}_toProtobuf(){return{fileNum:this.num,shardNum:this.shard,realmNum:this.realm}}toString(){return`${this.shard.toString()}.${this.realm.toString()}.${this.num.toString()}`}toStringWithChecksum(e){return k$8(this.toString(),e)}toBytes(){return proto_1.FileID.encode(this._toProtobuf()).finish()}clone(){const t=new e(this);return t._checksum=this._checksum,t}compare(e){return h$c([this.shard,this.realm,this.num],[e.shard,e.realm,e.num])}};u$j.ADDRESS_BOOK=new u$j(102),u$j.FEE_SCHEDULE=new u$j(111),u$j.EXCHANGE_RATES=new u$j(112);let m$6=class e{constructor(e,t,r){const n=f$9(e,t,r);this.shard=n.shard,this.realm=n.realm,this.num=n.num,this._checksum=null}static fromString(t){const r=g$7(t),n=new e(r);return n._checksum=r.checksum,n}static _fromProtobuf(t){return new e(null!=t.shardNum?t.shardNum:0,null!=t.realmNum?t.realmNum:0,null!=t.topicNum?t.topicNum:0)}get checksum(){return this._checksum}validate(e){console.warn("Deprecated: Use `validateChecksum` instead"),this.validateChecksum(e)}validateChecksum(e){S$a(this.shard,this.realm,this.num,this._checksum,e)}static fromBytes(t){return e._fromProtobuf(proto_1.TopicID.decode(t))}static fromSolidityAddress(t){const[r,n,o]=w$9(t);return new e(r,n,o)}toSolidityAddress(){return y$b([this.shard,this.realm,this.num])}_toProtobuf(){return{topicNum:this.num,shardNum:this.shard,realmNum:this.realm}}toString(){return`${this.shard.toString()}.${this.realm.toString()}.${this.num.toString()}`}toStringWithChecksum(e){return k$8(this.toString(),e)}toBytes(){return proto_1.TopicID.encode(this._toProtobuf()).finish()}clone(){const t=new e(this);return t._checksum=this._checksum,t}compare(e){return h$c([this.shard,this.realm,this.num],[e.shard,e.realm,e.num])}},u$i=class e{constructor(e,t,r){const n=f$9(e,t,r);this.shard=n.shard,this.realm=n.realm,this.num=n.num,this._checksum=null}static fromString(t){const r=g$7(t),n=new e(r);return n._checksum=r.checksum,n}static _fromProtobuf(t){return new e(null!=t.shardNum?t.shardNum:0,null!=t.realmNum?t.realmNum:0,null!=t.tokenNum?t.tokenNum:0)}get checksum(){return this._checksum}validate(e){console.warn("Deprecated: Use `validateChecksum` instead"),this.validateChecksum(e)}validateChecksum(e){S$a(this.shard,this.realm,this.num,this._checksum,e)}static fromBytes(t){return e._fromProtobuf(proto_1.TokenID.decode(t))}static fromSolidityAddress(t){return new e(...w$9(t))}toSolidityAddress(){return y$b([this.shard,this.realm,this.num])}_toProtobuf(){return{tokenNum:this.num,shardNum:this.shard,realmNum:this.realm}}toString(){return`${this.shard.toString()}.${this.realm.toString()}.${this.num.toString()}`}toStringWithChecksum(e){return k$8(this.toString(),e)}toBytes(){return proto_1.TokenID.encode(this._toProtobuf()).finish()}clone(){const t=new e(this);return t._checksum=this._checksum,t}compare(e){return h$c([this.shard,this.realm,this.num],[e.shard,e.realm,e.num])}},o$v=class e{constructor(e,t,r){const n=f$9(e,t,r);this.shard=n.shard,this.realm=n.realm,this.num=n.num,this._checksum=null}static fromString(t){const r=g$7(t),n=new e(r);return n._checksum=r.checksum,n}static _fromProtobuf(t){return new e(null!=t.shardNum?t.shardNum:0,null!=t.realmNum?t.realmNum:0,null!=t.scheduleNum?t.scheduleNum:0)}get checksum(){return this._checksum}validate(e){console.warn("Deprecated: Use `validateChecksum` instead"),this.validateChecksum(e)}validateChecksum(e){S$a(this.shard,this.realm,this.num,this._checksum,e)}static fromBytes(t){return e._fromProtobuf(proto_1.ScheduleID.decode(t))}static fromSolidityAddress(t){return new e(...w$9(t))}toSolidityAddress(){return y$b([this.shard,this.realm,this.num])}_toProtobuf(){return{scheduleNum:this.num,shardNum:this.shard,realmNum:this.realm}}toString(){return`${this.shard.toString()}.${this.realm.toString()}.${this.num.toString()}`}toStringWithChecksum(e){return k$8(this.toString(),e)}toBytes(){return proto_1.ScheduleID.encode(this._toProtobuf()).finish()}clone(){const t=new e(this);return t._checksum=this._checksum,t}compare(e){return h$c([this.shard,this.realm,this.num],[e.shard,e.realm,e.num])}},t$q=class e{constructor(e){this.hbars=e.hbars,this.cents=e.cents,this.expirationTime=e.expirationTime,this.exchangeRateInCents=e.cents/e.hbars,Object.freeze(this)}static _fromProtobuf(t){return new e({hbars:t.hbarEquiv,cents:t.centEquiv,expirationTime:new Date(null!=t.expirationTime&&null!=t.expirationTime.seconds?Long.isLong(t.expirationTime.seconds)?1e3*t.expirationTime.seconds.toInt():t.expirationTime.seconds:0)})}_toProtobuf(){return{hbarEquiv:this.hbars,centEquiv:this.cents,expirationTime:{seconds:Long.fromNumber(Math.trunc(this.expirationTime.getTime()/1e3))}}}toJSON(){return{hbars:this.hbars,cents:this.cents,expirationTime:this.expirationTime,exchangeRateInCents:this.exchangeRateInCents}}toString(){return JSON.stringify(this.toJSON())}},d$h=class e{constructor(e){this.status=e.status,this.accountId=e.accountId,this.fileId=e.fileId,this.contractId=e.contractId,this.topicId=e.topicId,this.tokenId=e.tokenId,this.scheduleId=e.scheduleId,this.exchangeRate=e.exchangeRate,this.nextExchangeRate=e.nextExchangeRate,this.topicSequenceNumber=e.topicSequenceNumber,this.topicRunningHash=e.topicRunningHash,this.totalSupply=e.totalSupply,this.scheduledTransactionId=e.scheduledTransactionId,this.serials=e.serials??[],this.duplicates=e.duplicates??[],this.children=e.children??[],this.nodeId=e.nodeId,Object.freeze(this)}_toProtobuf(){return{duplicateTransactionReceipts:this.duplicates.map((e=>e._toProtobuf().receipt)),childTransactionReceipts:this.children.map((e=>e._toProtobuf().receipt)),receipt:{status:this.status.valueOf(),accountID:null!=this.accountId?this.accountId._toProtobuf():null,fileID:null!=this.fileId?this.fileId._toProtobuf():null,contractID:null!=this.contractId?this.contractId._toProtobuf():null,topicID:null!=this.topicId?this.topicId._toProtobuf():null,tokenID:null!=this.tokenId?this.tokenId._toProtobuf():null,scheduleID:null!=this.scheduleId?this.scheduleId._toProtobuf():null,topicRunningHash:null==this.topicRunningHash?null:this.topicRunningHash,topicSequenceNumber:this.topicSequenceNumber,exchangeRate:{nextRate:null!=this.nextExchangeRate?this.nextExchangeRate._toProtobuf():null,currentRate:null!=this.exchangeRate?this.exchangeRate._toProtobuf():null},scheduledTransactionID:null!=this.scheduledTransactionId?this.scheduledTransactionId._toProtobuf():null,serialNumbers:this.serials,newTotalSupply:this.totalSupply,nodeId:this.nodeId}}}static _fromProtobuf(t){const r=t.receipt,n=null!=t.childTransactionReceipts?t.childTransactionReceipts.map((t=>e._fromProtobuf({receipt:t}))):[],o=null!=t.duplicateTransactionReceipts?t.duplicateTransactionReceipts.map((t=>e._fromProtobuf({receipt:t}))):[];return new e({status:e$z._fromCode(null!=r.status?r.status:0),accountId:null!=r.accountID?f$8._fromProtobuf(r.accountID):null,fileId:null!=r.fileID?u$j._fromProtobuf(r.fileID):null,contractId:null!=r.contractID?v$7._fromProtobuf(r.contractID):null,topicId:null!=r.topicID?m$6._fromProtobuf(r.topicID):null,tokenId:null!=r.tokenID?u$i._fromProtobuf(r.tokenID):null,scheduleId:null!=r.scheduleID?o$v._fromProtobuf(r.scheduleID):null,exchangeRate:null!=r.exchangeRate?t$q._fromProtobuf(r.exchangeRate.currentRate):null,nextExchangeRate:null!=r.exchangeRate?t$q._fromProtobuf(r.exchangeRate.nextRate):null,topicSequenceNumber:null==r.topicSequenceNumber?null:Long.fromString(r.topicSequenceNumber.toString()),topicRunningHash:null!=r.topicRunningHash?new Uint8Array(r.topicRunningHash):null,totalSupply:null!=r.newTotalSupply?Long.fromString(r.newTotalSupply.toString()):null,scheduledTransactionId:null!=r.scheduledTransactionID?i$j._fromProtobuf(r.scheduledTransactionID):null,serials:null!=r.serialNumbers?r.serialNumbers.map((e=>Long.fromValue(e))):[],children:n,duplicates:o,nodeId:null!=r.nodeId?r.nodeId:null})}static fromBytes(t){return e._fromProtobuf(proto_1.TransactionGetReceiptResponse.decode(t))}toBytes(){return proto_1.TransactionGetReceiptResponse.encode(this._toProtobuf()).finish()}toJSON(){var e,t,r,n,o,i,s,a,c,u,l,d;return{status:this.status.toString(),accountId:(null==(e=this.accountId)?void 0:e.toString())||null,filedId:(null==(t=this.fileId)?void 0:t.toString())||null,contractId:(null==(r=this.contractId)?void 0:r.toString())||null,topicId:(null==(n=this.topicId)?void 0:n.toString())||null,tokenId:(null==(o=this.tokenId)?void 0:o.toString())||null,scheduleId:(null==(i=this.scheduleId)?void 0:i.toString())||null,exchangeRate:(null==(s=this.exchangeRate)?void 0:s.toJSON())||null,nextExchangeRate:(null==(a=this.nextExchangeRate)?void 0:a.toJSON())||null,topicSequenceNumber:(null==(c=this.topicSequenceNumber)?void 0:c.toString())||null,topicRunningHash:null!=this.topicRunningHash?n$C(this.topicRunningHash):null,totalSupply:(null==(u=this.totalSupply)?void 0:u.toString())||null,scheduledTransactionId:(null==(l=this.scheduledTransactionId)?void 0:l.toString())||null,serials:this.serials.map((e=>e.toString())),duplicates:this.duplicates.map((e=>e.toJSON())),children:this.children.map((e=>e.toJSON())),nodeId:(null==(d=this.nodeId)?void 0:d.toString())||null}}toString(){return JSON.stringify(this.toJSON())}};const{proto:u$h}=e$E;let l$l=class e extends h$b{constructor(e={}){super(),this._transactionId=null,this._includeChildren=null,this._includeDuplicates=null,this._validateStatus=!0,null!=e.transactionId&&this.setTransactionId(e.transactionId),null!=e.includeChildren&&this.setIncludeChildren(e.includeChildren),null!=e.includeDuplicates&&this.setIncludeDuplicates(e.includeDuplicates),null!=e.validateStatus&&this.setValidateStatus(e.validateStatus)}static _fromProtobuf(t){const r=t.transactionGetReceipt;return new e({transactionId:r.transactionID?i$j._fromProtobuf(r.transactionID):void 0,includeDuplicates:null!=r.includeDuplicates?r.includeDuplicates:void 0,includeChildren:null!=r.includeChildReceipts?r.includeChildReceipts:void 0})}get transactionId(){return this._transactionId}setTransactionId(e){return this._transactionId="string"==typeof e?i$j.fromString(e):e.clone(),this}setIncludeDuplicates(e){return this._includeDuplicates=e,this}get includeDuplicates(){return null!=this._includeDuplicates&&this._includeDuplicates}setIncludeChildren(e){return this._includeChildren=e,this}get includeChildren(){return null!=this._includeChildren&&this._includeChildren}setValidateStatus(e){return this._validateStatus=e,this}get validateStatus(){return this._validateStatus}_isPaymentRequired(){return!1}_shouldRetry(e,t){const{nodeTransactionPrecheckCode:r}=this._mapResponseHeader(t);let n=e$z._fromCode(null!=r?r:u$h.ResponseCodeEnum.OK);switch(this._logger&&this._logger.debug(`[${this._getLogId()}] received node precheck status ${n.toString()}`),n){case e$z.Busy:case e$z.Unknown:case e$z.ReceiptNotFound:case e$z.PlatformNotActive:return[n,c$h.Retry];case e$z.Ok:break;default:return[n,c$h.Error]}const o=t.transactionGetReceipt.receipt.status;switch(n=e$z._fromCode(o),this._logger&&this._logger.debug(`[${this._getLogId()}] received receipt status ${n.toString()}`),n){case e$z.Busy:case e$z.Unknown:case e$z.ReceiptNotFound:return[n,c$h.Retry];case e$z.Success:case e$z.FeeScheduleFilePartUploaded:return[n,c$h.Finished];default:return[n,this._validateStatus?c$h.Error:c$h.Finished]}}_getTransactionId(){return null!=this._transactionId?this._transactionId:super._getTransactionId()}_mapStatusError(e,t,r){const{nodeTransactionPrecheckCode:n}=this._mapResponseHeader(t);let o=e$z._fromCode(null!=n?n:u$h.ResponseCodeEnum.OK);if(o!==e$z.Ok)return new n$y({nodeId:r,status:o,transactionId:this._getTransactionId(),contractFunctionResult:null});const i=t.transactionGetReceipt,s=i.receipt.status;if(o=e$z._fromCode(s),null==this._transactionId)throw new Error("Failed to construct `ReceiptStatusError` because `transactionId` is `null`");return new r$D({status:o,transactionId:this._transactionId,transactionReceipt:d$h._fromProtobuf(i)})}_validateChecksums(e){null!=this._transactionId&&null!=this._transactionId.accountId&&this._transactionId.accountId.validateChecksum(e)}_execute(e,t){return e.crypto.getTransactionReceipts(t)}_mapResponseHeader(e){return e.transactionGetReceipt.header}_mapResponse(e,t,r){const n=e.transactionGetReceipt;return Promise.resolve(d$h._fromProtobuf(n))}_onMakeRequest(e){return{transactionGetReceipt:{header:e,transactionID:null!=this._transactionId?this._transactionId._toProtobuf():null,includeDuplicates:this._includeDuplicates,includeChildReceipts:this._includeChildren}}}_getLogId(){return`TransactionReceiptQuery:${this._timestamp.toString()}`}};m$7.set("transactionGetReceipt",l$l._fromProtobuf);let n$w=class e{constructor(e){this.accountId=e.accountId instanceof f$8?e.accountId:f$8.fromString(e.accountId),this.amount=e.amount instanceof e$A?e.amount:new e$A(e.amount),this.isApproved=e.isApproved}static _fromProtobuf(t){const r=[];for(const n of t)r.push(new e({accountId:f$8._fromProtobuf(n.accountID),amount:e$A.fromTinybars(null!=n.amount?n.amount:0),isApproved:n.isApproval}));return r}_toProtobuf(){return{accountID:this.accountId._toProtobuf(),amount:this.amount.toTinybars(),isApproval:this.isApproved}}toJSON(){return{accountId:this.accountId.toString(),amount:this.amount.toTinybars().toString(),isApproved:this.isApproved}}toString(){return JSON.stringify(this.toJSON())}},o$u=class e{constructor(e){this.contractId=e.contractId,this.bloom=e.bloom,this.topics=e.topics,this.data=e.data,Object.freeze(this)}static _fromProtobuf(t){return new e({contractId:v$7._fromProtobuf(t.contractID),bloom:null!=t.bloom?t.bloom:new Uint8Array,topics:null!=t.topic?t.topic:[],data:null!=t.data?t.data:new Uint8Array})}_toProtobuf(){return{contractID:this.contractId._toProtobuf(),bloom:this.bloom,topic:this.topics,data:this.data}}};function e$w(e){return(new TextDecoder).decode(e)}function n$v(e){return(new TextEncoder).encode(e)}const version$8="bignumber/5.8.0";var BN$8=BN$g.BN;const logger$8=new Logger(version$8),_constructorGuard$1={},MAX_SAFE=9007199254740991;let _warnedToStringRadix=!1;class BigNumber{constructor(e,t){e!==_constructorGuard$1&&logger$8.throwError("cannot call constructor directly; use BigNumber.from",Logger.errors.UNSUPPORTED_OPERATION,{operation:"new (BigNumber)"}),this._hex=t,this._isBigNumber=!0,Object.freeze(this)}fromTwos(e){return toBigNumber(toBN(this).fromTwos(e))}toTwos(e){return toBigNumber(toBN(this).toTwos(e))}abs(){return"-"===this._hex[0]?BigNumber.from(this._hex.substring(1)):this}add(e){return toBigNumber(toBN(this).add(toBN(e)))}sub(e){return toBigNumber(toBN(this).sub(toBN(e)))}div(e){return BigNumber.from(e).isZero()&&throwFault("division-by-zero","div"),toBigNumber(toBN(this).div(toBN(e)))}mul(e){return toBigNumber(toBN(this).mul(toBN(e)))}mod(e){const t=toBN(e);return t.isNeg()&&throwFault("division-by-zero","mod"),toBigNumber(toBN(this).umod(t))}pow(e){const t=toBN(e);return t.isNeg()&&throwFault("negative-power","pow"),toBigNumber(toBN(this).pow(t))}and(e){const t=toBN(e);return(this.isNegative()||t.isNeg())&&throwFault("unbound-bitwise-result","and"),toBigNumber(toBN(this).and(t))}or(e){const t=toBN(e);return(this.isNegative()||t.isNeg())&&throwFault("unbound-bitwise-result","or"),toBigNumber(toBN(this).or(t))}xor(e){const t=toBN(e);return(this.isNegative()||t.isNeg())&&throwFault("unbound-bitwise-result","xor"),toBigNumber(toBN(this).xor(t))}mask(e){return(this.isNegative()||e<0)&&throwFault("negative-width","mask"),toBigNumber(toBN(this).maskn(e))}shl(e){return(this.isNegative()||e<0)&&throwFault("negative-width","shl"),toBigNumber(toBN(this).shln(e))}shr(e){return(this.isNegative()||e<0)&&throwFault("negative-width","shr"),toBigNumber(toBN(this).shrn(e))}eq(e){return toBN(this).eq(toBN(e))}lt(e){return toBN(this).lt(toBN(e))}lte(e){return toBN(this).lte(toBN(e))}gt(e){return toBN(this).gt(toBN(e))}gte(e){return toBN(this).gte(toBN(e))}isNegative(){return"-"===this._hex[0]}isZero(){return toBN(this).isZero()}toNumber(){try{return toBN(this).toNumber()}catch(e){throwFault("overflow","toNumber",this.toString())}return null}toBigInt(){try{return BigInt(this.toString())}catch(e){}return logger$8.throwError("this platform does not support BigInt",Logger.errors.UNSUPPORTED_OPERATION,{value:this.toString()})}toString(){return arguments.length>0&&(10===arguments[0]?_warnedToStringRadix||(_warnedToStringRadix=!0,logger$8.warn("BigNumber.toString does not accept any parameters; base-10 is assumed")):16===arguments[0]?logger$8.throwError("BigNumber.toString does not accept any parameters; use bigNumber.toHexString()",Logger.errors.UNEXPECTED_ARGUMENT,{}):logger$8.throwError("BigNumber.toString does not accept parameters",Logger.errors.UNEXPECTED_ARGUMENT,{})),toBN(this).toString(10)}toHexString(){return this._hex}toJSON(e){return{type:"BigNumber",hex:this.toHexString()}}static from(e){if(e instanceof BigNumber)return e;if("string"==typeof e)return e.match(/^-?0x[0-9a-f]+$/i)?new BigNumber(_constructorGuard$1,toHex(e)):e.match(/^-?[0-9]+$/)?new BigNumber(_constructorGuard$1,toHex(new BN$8(e))):logger$8.throwArgumentError("invalid BigNumber string","value",e);if("number"==typeof e)return e%1&&throwFault("underflow","BigNumber.from",e),(e>=MAX_SAFE||e<=-MAX_SAFE)&&throwFault("overflow","BigNumber.from",e),BigNumber.from(String(e));const t=e;if("bigint"==typeof t)return BigNumber.from(t.toString());if(isBytes(t))return BigNumber.from(hexlify(t));if(t)if(t.toHexString){const e=t.toHexString();if("string"==typeof e)return BigNumber.from(e)}else{let e=t._hex;if(null==e&&"BigNumber"===t.type&&(e=t.hex),"string"==typeof e&&(isHexString(e)||"-"===e[0]&&isHexString(e.substring(1))))return BigNumber.from(e)}return logger$8.throwArgumentError("invalid BigNumber value","value",e)}static isBigNumber(e){return!(!e||!e._isBigNumber)}}function toHex(e){if("string"!=typeof e)return toHex(e.toString(16));if("-"===e[0])return"-"===(e=e.substring(1))[0]&&logger$8.throwArgumentError("invalid hex","value",e),"0x00"===(e=toHex(e))?e:"-"+e;if("0x"!==e.substring(0,2)&&(e="0x"+e),"0x"===e)return"0x00";for(e.length%2&&(e="0x0"+e.substring(2));e.length>4&&"0x00"===e.substring(0,4);)e="0x"+e.substring(4);return e}function toBigNumber(e){return BigNumber.from(toHex(e))}function toBN(e){const t=BigNumber.from(e).toHexString();return"-"===t[0]?new BN$8("-"+t.substring(3),16):new BN$8(t.substring(2),16)}function throwFault(e,t,r){const n={fault:e,operation:t};return null!=r&&(n.value=r),logger$8.throwError(e,Logger.errors.NUMERIC_FAULT,n)}function _base36To16(e){return new BN$8(e,36).toString(16)}function defineReadOnly(e,t,r){Object.defineProperty(e,t,{enumerable:!0,value:r,writable:!1})}const version$7="abi/5.8.0",logger$7=new Logger(version$7),_constructorGuard={};let ModifiersBytes={calldata:!0,memory:!0,storage:!0},ModifiersNest={calldata:!0,memory:!0};function checkModifier(e,t){if("bytes"===e||"string"===e){if(ModifiersBytes[t])return!0}else if("address"===e){if("payable"===t)return!0}else if((e.indexOf("[")>=0||"tuple"===e)&&ModifiersNest[t])return!0;return(ModifiersBytes[t]||"payable"===t)&&logger$7.throwArgumentError("invalid modifier","name",t),!1}function parseParamType(e,t){let r=e;function n(t){logger$7.throwArgumentError(`unexpected character at position ${t}`,"param",e)}function o(e){let r={type:"",name:"",parent:e,state:{allowType:!0}};return t&&(r.indexed=!1),r}e=e.replace(/\s/g," ");let i={type:"",name:"",state:{allowType:!0}},s=i;for(let a=0;aJSON.parse(t.format(e))))),JSON.stringify(t)}let t="";return"array"===this.baseType?(t+=this.arrayChildren.format(e),t+="["+(this.arrayLength<0?"":String(this.arrayLength))+"]"):"tuple"===this.baseType?(e!==FormatTypes.sighash&&(t+=this.type),t+="("+this.components.map((t=>t.format(e))).join(e===FormatTypes.full?", ":",")+")"):t+=this.type,e!==FormatTypes.sighash&&(!0===this.indexed&&(t+=" indexed"),e===FormatTypes.full&&this.name&&(t+=" "+this.name)),t}static from(e,t){return"string"==typeof e?ParamType.fromString(e,t):ParamType.fromObject(e)}static fromObject(e){return ParamType.isParamType(e)?e:new ParamType(_constructorGuard,{name:e.name||null,type:verifyType(e.type),indexed:null==e.indexed?null:!!e.indexed,components:e.components?e.components.map(ParamType.fromObject):null})}static fromString(e,t){return r=parseParamType(e,!!t),ParamType.fromObject({name:r.name,type:r.type,indexed:r.indexed,components:r.components});var r}static isParamType(e){return!(null==e||!e._isParamType)}}function verifyType(e){return e.match(/^uint($|[^1-9])/)?e="uint256"+e.substring(4):e.match(/^int($|[^1-9])/)&&(e="int256"+e.substring(3)),e}const logger$6=new Logger(version$7);class Coder{constructor(e,t,r,n){this.name=e,this.type=t,this.localName=r,this.dynamic=n}_throwError(e,t){logger$6.throwArgumentError(e,this.localName,t)}}class Writer{constructor(e){defineReadOnly(this,"wordSize",e||32),this._data=[],this._dataLength=0,this._padding=new Uint8Array(e)}get data(){return hexConcat(this._data)}get length(){return this._dataLength}_writeData(e){return this._data.push(e),this._dataLength+=e.length,e.length}appendWriter(e){return this._writeData(concat$1(e._data))}writeBytes(e){let t=arrayify(e);const r=t.length%this.wordSize;return r&&(t=concat$1([t,this._padding.slice(r)])),this._writeData(t)}_getValue(e){let t=arrayify(BigNumber.from(e));return t.length>this.wordSize&&logger$6.throwError("value out-of-bounds",Logger.errors.BUFFER_OVERRUN,{length:this.wordSize,offset:t.length}),t.length%this.wordSize&&(t=concat$1([this._padding.slice(t.length%this.wordSize),t])),t}writeValue(e){return this._writeData(this._getValue(e))}writeUpdatableValue(){const e=this._data.length;return this._data.push(this._padding),this._dataLength+=this.wordSize,t=>{this._data[e]=this._getValue(t)}}}class Reader{constructor(e,t,r,n){defineReadOnly(this,"_data",arrayify(e)),defineReadOnly(this,"wordSize",t||32),defineReadOnly(this,"_coerceFunc",r),defineReadOnly(this,"allowLoose",n),this._offset=0}get data(){return hexlify(this._data)}get consumed(){return this._offset}static coerce(e,t){let r=e.match("^u?int([0-9]+)$");return r&&parseInt(r[1])<=48&&(t=t.toNumber()),t}coerce(e,t){return this._coerceFunc?this._coerceFunc(e,t):Reader.coerce(e,t)}_peekBytes(e,t,r){let n=Math.ceil(t/this.wordSize)*this.wordSize;return this._offset+n>this._data.length&&(this.allowLoose&&r&&this._offset+t<=this._data.length?n=t:logger$6.throwError("data out-of-bounds",Logger.errors.BUFFER_OVERRUN,{length:this._data.length,offset:this._offset+n})),this._data.slice(this._offset,this._offset+n)}subReader(e){return new Reader(this._data.slice(this._offset+e),this.wordSize,this._coerceFunc,this.allowLoose)}readBytes(e,t){let r=this._peekBytes(0,e,!!t);return this._offset+=r.length,r.slice(0,e)}readValue(){return BigNumber.from(this.readBytes(this.wordSize))}}var sha3$1={exports:{}};!function(e){!function(){var t="input is invalid type",r="object"==typeof window,n=r?window:{};n.JS_SHA3_NO_WINDOW&&(r=!1);var o=!r&&"object"==typeof self;!n.JS_SHA3_NO_NODE_JS&&"object"==typeof process$1&&process$1.versions&&process$1.versions.node?n=commonjsGlobal:o&&(n=self);var i=!n.JS_SHA3_NO_COMMON_JS&&e.exports,s=!n.JS_SHA3_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,a="0123456789abcdef".split(""),c=[4,1024,262144,67108864],u=[0,8,16,24],l=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],d=[224,256,384,512],h=[128,256],f=["hex","buffer","arrayBuffer","array","digest"],p={128:168,256:136};!n.JS_SHA3_NO_NODE_JS&&Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),!s||!n.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(e){return"object"==typeof e&&e.buffer&&e.buffer.constructor===ArrayBuffer});for(var m=function(e,t,r){return function(n){return new R(e,t,e).update(n)[r]()}},y=function(e,t,r){return function(n,o){return new R(e,t,o).update(n)[r]()}},g=function(e,t,r){return function(t,n,o,i){return $["cshake"+e].update(t,n,o,i)[r]()}},b=function(e,t,r){return function(t,n,o,i){return $["kmac"+e].update(t,n,o,i)[r]()}},w=function(e,t,r,n){for(var o=0;o>5,this.byteCount=this.blockCount<<2,this.outputBlocks=r>>5,this.extraBytes=(31&r)>>3;for(var n=0;n<50;++n)this.s[n]=0}function C(e,t,r){R.call(this,e,t,r)}R.prototype.update=function(e){if(this.finalized)throw new Error("finalize already called");var r,n=typeof e;if("string"!==n){if("object"!==n)throw new Error(t);if(null===e)throw new Error(t);if(s&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||s&&ArrayBuffer.isView(e)))throw new Error(t);r=!0}for(var o,i,a=this.blocks,c=this.byteCount,l=e.length,d=this.blockCount,h=0,f=this.s;h>2]|=e[h]<>2]|=i<>2]|=(192|i>>6)<>2]|=(128|63&i)<=57344?(a[o>>2]|=(224|i>>12)<>2]|=(128|i>>6&63)<>2]|=(128|63&i)<>2]|=(240|i>>18)<>2]|=(128|i>>12&63)<>2]|=(128|i>>6&63)<>2]|=(128|63&i)<=c){for(this.start=o-c,this.block=a[d],o=0;o>=8);r>0;)o.unshift(r),r=255&(e>>=8),++n;return t?o.push(n):o.unshift(n),this.update(o),o.length},R.prototype.encodeString=function(e){var r,n=typeof e;if("string"!==n){if("object"!==n)throw new Error(t);if(null===e)throw new Error(t);if(s&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||s&&ArrayBuffer.isView(e)))throw new Error(t);r=!0}var o=0,i=e.length;if(r)o=i;else for(var a=0;a=57344?o+=3:(c=65536+((1023&c)<<10|1023&e.charCodeAt(++a)),o+=4)}return o+=this.encode(8*o),this.update(e),o},R.prototype.bytepad=function(e,t){for(var r=this.encode(t),n=0;n>2]|=this.padding[3&t],this.lastByteIndex===this.byteCount)for(e[0]=e[r],t=1;t>4&15]+a[15&e]+a[e>>12&15]+a[e>>8&15]+a[e>>20&15]+a[e>>16&15]+a[e>>28&15]+a[e>>24&15];s%t==0&&(O(r),i=0)}return o&&(e=r[i],c+=a[e>>4&15]+a[15&e],o>1&&(c+=a[e>>12&15]+a[e>>8&15]),o>2&&(c+=a[e>>20&15]+a[e>>16&15])),c},R.prototype.arrayBuffer=function(){this.finalize();var e,t=this.blockCount,r=this.s,n=this.outputBlocks,o=this.extraBytes,i=0,s=0,a=this.outputBits>>3;e=o?new ArrayBuffer(n+1<<2):new ArrayBuffer(a);for(var c=new Uint32Array(e);s>8&255,c[e+2]=t>>16&255,c[e+3]=t>>24&255;a%r==0&&O(n)}return i&&(e=a<<2,t=n[s],c[e]=255&t,i>1&&(c[e+1]=t>>8&255),i>2&&(c[e+2]=t>>16&255)),c},C.prototype=new R,C.prototype.finalize=function(){return this.encode(this.outputBits,!0),R.prototype.finalize.call(this)};var O=function(e){var t,r,n,o,i,s,a,c,u,d,h,f,p,m,y,g,b,w,_,v,$,I,k,A,S,E,T,P,R,C,O,M,N,B,x,D,L,U,F,j,q,K,z,H,G,W,V,Y,J,Q,Z,X,ee,te,re,ne,oe,ie,se,ae,ce,ue,le;for(n=0;n<48;n+=2)o=e[0]^e[10]^e[20]^e[30]^e[40],i=e[1]^e[11]^e[21]^e[31]^e[41],s=e[2]^e[12]^e[22]^e[32]^e[42],a=e[3]^e[13]^e[23]^e[33]^e[43],c=e[4]^e[14]^e[24]^e[34]^e[44],u=e[5]^e[15]^e[25]^e[35]^e[45],d=e[6]^e[16]^e[26]^e[36]^e[46],h=e[7]^e[17]^e[27]^e[37]^e[47],t=(f=e[8]^e[18]^e[28]^e[38]^e[48])^(s<<1|a>>>31),r=(p=e[9]^e[19]^e[29]^e[39]^e[49])^(a<<1|s>>>31),e[0]^=t,e[1]^=r,e[10]^=t,e[11]^=r,e[20]^=t,e[21]^=r,e[30]^=t,e[31]^=r,e[40]^=t,e[41]^=r,t=o^(c<<1|u>>>31),r=i^(u<<1|c>>>31),e[2]^=t,e[3]^=r,e[12]^=t,e[13]^=r,e[22]^=t,e[23]^=r,e[32]^=t,e[33]^=r,e[42]^=t,e[43]^=r,t=s^(d<<1|h>>>31),r=a^(h<<1|d>>>31),e[4]^=t,e[5]^=r,e[14]^=t,e[15]^=r,e[24]^=t,e[25]^=r,e[34]^=t,e[35]^=r,e[44]^=t,e[45]^=r,t=c^(f<<1|p>>>31),r=u^(p<<1|f>>>31),e[6]^=t,e[7]^=r,e[16]^=t,e[17]^=r,e[26]^=t,e[27]^=r,e[36]^=t,e[37]^=r,e[46]^=t,e[47]^=r,t=d^(o<<1|i>>>31),r=h^(i<<1|o>>>31),e[8]^=t,e[9]^=r,e[18]^=t,e[19]^=r,e[28]^=t,e[29]^=r,e[38]^=t,e[39]^=r,e[48]^=t,e[49]^=r,m=e[0],y=e[1],W=e[11]<<4|e[10]>>>28,V=e[10]<<4|e[11]>>>28,P=e[20]<<3|e[21]>>>29,R=e[21]<<3|e[20]>>>29,ae=e[31]<<9|e[30]>>>23,ce=e[30]<<9|e[31]>>>23,K=e[40]<<18|e[41]>>>14,z=e[41]<<18|e[40]>>>14,B=e[2]<<1|e[3]>>>31,x=e[3]<<1|e[2]>>>31,g=e[13]<<12|e[12]>>>20,b=e[12]<<12|e[13]>>>20,Y=e[22]<<10|e[23]>>>22,J=e[23]<<10|e[22]>>>22,C=e[33]<<13|e[32]>>>19,O=e[32]<<13|e[33]>>>19,ue=e[42]<<2|e[43]>>>30,le=e[43]<<2|e[42]>>>30,te=e[5]<<30|e[4]>>>2,re=e[4]<<30|e[5]>>>2,D=e[14]<<6|e[15]>>>26,L=e[15]<<6|e[14]>>>26,w=e[25]<<11|e[24]>>>21,_=e[24]<<11|e[25]>>>21,Q=e[34]<<15|e[35]>>>17,Z=e[35]<<15|e[34]>>>17,M=e[45]<<29|e[44]>>>3,N=e[44]<<29|e[45]>>>3,A=e[6]<<28|e[7]>>>4,S=e[7]<<28|e[6]>>>4,ne=e[17]<<23|e[16]>>>9,oe=e[16]<<23|e[17]>>>9,U=e[26]<<25|e[27]>>>7,F=e[27]<<25|e[26]>>>7,v=e[36]<<21|e[37]>>>11,$=e[37]<<21|e[36]>>>11,X=e[47]<<24|e[46]>>>8,ee=e[46]<<24|e[47]>>>8,H=e[8]<<27|e[9]>>>5,G=e[9]<<27|e[8]>>>5,E=e[18]<<20|e[19]>>>12,T=e[19]<<20|e[18]>>>12,ie=e[29]<<7|e[28]>>>25,se=e[28]<<7|e[29]>>>25,j=e[38]<<8|e[39]>>>24,q=e[39]<<8|e[38]>>>24,I=e[48]<<14|e[49]>>>18,k=e[49]<<14|e[48]>>>18,e[0]=m^~g&w,e[1]=y^~b&_,e[10]=A^~E&P,e[11]=S^~T&R,e[20]=B^~D&U,e[21]=x^~L&F,e[30]=H^~W&Y,e[31]=G^~V&J,e[40]=te^~ne&ie,e[41]=re^~oe&se,e[2]=g^~w&v,e[3]=b^~_&$,e[12]=E^~P&C,e[13]=T^~R&O,e[22]=D^~U&j,e[23]=L^~F&q,e[32]=W^~Y&Q,e[33]=V^~J&Z,e[42]=ne^~ie&ae,e[43]=oe^~se&ce,e[4]=w^~v&I,e[5]=_^~$&k,e[14]=P^~C&M,e[15]=R^~O&N,e[24]=U^~j&K,e[25]=F^~q&z,e[34]=Y^~Q&X,e[35]=J^~Z&ee,e[44]=ie^~ae&ue,e[45]=se^~ce&le,e[6]=v^~I&m,e[7]=$^~k&y,e[16]=C^~M&A,e[17]=O^~N&S,e[26]=j^~K&B,e[27]=q^~z&x,e[36]=Q^~X&H,e[37]=Z^~ee&G,e[46]=ae^~ue&te,e[47]=ce^~le&re,e[8]=I^~m&g,e[9]=k^~y&b,e[18]=M^~A&E,e[19]=N^~S&T,e[28]=K^~B&D,e[29]=z^~x&L,e[38]=X^~H&W,e[39]=ee^~G&V,e[48]=ue^~te&ne,e[49]=le^~re&oe,e[0]^=l[n],e[1]^=l[n+1]};if(i)e.exports=$;else for(k=0;k>=8;return t}function unarrayifyInteger(e,t,r){let n=0;for(let o=0;ot+1+n&&logger$5.throwError("child data too short",Logger.errors.BUFFER_OVERRUN,{})}return{consumed:1+n,result:o}}function _decode(e,t){if(0===e.length&&logger$5.throwError("data too short",Logger.errors.BUFFER_OVERRUN,{}),e[t]>=248){const r=e[t]-247;t+1+r>e.length&&logger$5.throwError("data short segment too short",Logger.errors.BUFFER_OVERRUN,{});const n=unarrayifyInteger(e,t+1,r);return t+1+r+n>e.length&&logger$5.throwError("data long segment too short",Logger.errors.BUFFER_OVERRUN,{}),_decodeChildren(e,t,t+1+r,r+n)}if(e[t]>=192){const r=e[t]-192;return t+1+r>e.length&&logger$5.throwError("data array too short",Logger.errors.BUFFER_OVERRUN,{}),_decodeChildren(e,t,t+1,r)}if(e[t]>=184){const r=e[t]-183;t+1+r>e.length&&logger$5.throwError("data array too short",Logger.errors.BUFFER_OVERRUN,{});const n=unarrayifyInteger(e,t+1,r);t+1+r+n>e.length&&logger$5.throwError("data array too short",Logger.errors.BUFFER_OVERRUN,{});return{consumed:1+r+n,result:hexlify(e.slice(t+1+r,t+1+r+n))}}if(e[t]>=128){const r=e[t]-128;t+1+r>e.length&&logger$5.throwError("data too short",Logger.errors.BUFFER_OVERRUN,{});return{consumed:1+r,result:hexlify(e.slice(t+1,t+1+r))}}return{consumed:1,result:hexlify(e[t])}}function decode$3(e){const t=arrayify(e),r=_decode(t,0);return r.consumed!==t.length&&logger$5.throwArgumentError("invalid rlp data","data",e),r.result}const version$5="address/5.8.0",logger$4=new Logger(version$5);function getChecksumAddress(e){isHexString(e,20)||logger$4.throwArgumentError("invalid address","address",e);const t=(e=e.toLowerCase()).substring(2).split(""),r=new Uint8Array(40);for(let o=0;o<40;o++)r[o]=t[o].charCodeAt(0);const n=arrayify(keccak256(r));for(let o=0;o<40;o+=2)n[o>>1]>>4>=8&&(t[o]=t[o].toUpperCase()),(15&n[o>>1])>=8&&(t[o+1]=t[o+1].toUpperCase());return"0x"+t.join("")}const MAX_SAFE_INTEGER=9007199254740991;function log10(e){return Math.log10?Math.log10(e):Math.log(e)/Math.LN10}const ibanLookup={};for(let ee=0;ee<10;ee++)ibanLookup[String(ee)]=String(ee);for(let ee=0;ee<26;ee++)ibanLookup[String.fromCharCode(65+ee)]=String(10+ee);const safeDigits=Math.floor(log10(MAX_SAFE_INTEGER));function ibanChecksum(e){let t=(e=(e=e.toUpperCase()).substring(4)+e.substring(0,2)+"00").split("").map((e=>ibanLookup[e])).join("");for(;t.length>=safeDigits;){let e=t.substring(0,safeDigits);t=parseInt(e,10)%97+t.substring(e.length)}let r=String(98-parseInt(t,10)%97);for(;r.length<2;)r="0"+r;return r}function getAddress(e){let t=null;if("string"!=typeof e&&logger$4.throwArgumentError("invalid address","address",e),e.match(/^(0x)?[0-9a-fA-F]{40}$/))"0x"!==e.substring(0,2)&&(e="0x"+e),t=getChecksumAddress(e),e.match(/([A-F].*[a-f])|([a-f].*[A-F])/)&&t!==e&&logger$4.throwArgumentError("bad address checksum","address",e);else if(e.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){for(e.substring(2,4)!==ibanChecksum(e)&&logger$4.throwArgumentError("bad icap checksum","address",e),t=_base36To16(e.substring(4));t.length<40;)t="0"+t;t=getChecksumAddress("0x"+t)}else logger$4.throwArgumentError("invalid address","address",e);return t}class AddressCoder extends Coder{constructor(e){super("address","address",e,!1)}defaultValue(){return"0x0000000000000000000000000000000000000000"}encode(e,t){try{t=getAddress(t)}catch(r){this._throwError(r.message,t)}return e.writeValue(t)}decode(e){return getAddress(hexZeroPad(e.readValue().toHexString(),20))}}class AnonymousCoder extends Coder{constructor(e){super(e.name,e.type,void 0,e.dynamic),this.coder=e}defaultValue(){return this.coder.defaultValue()}encode(e,t){return this.coder.encode(e,t)}decode(e){return this.coder.decode(e)}}const logger$3=new Logger(version$7);function pack(e,t,r){let n=null;if(Array.isArray(r))n=r;else if(r&&"object"==typeof r){let e={};n=t.map((t=>{const n=t.localName;return n||logger$3.throwError("cannot encode object for signature with missing names",Logger.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:r}),e[n]&&logger$3.throwError("cannot encode object for signature with duplicate names",Logger.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:r}),e[n]=!0,r[n]}))}else logger$3.throwArgumentError("invalid tuple value","tuple",r);t.length!==n.length&&logger$3.throwArgumentError("types/value length mismatch","tuple",r);let o=new Writer(e.wordSize),i=new Writer(e.wordSize),s=[];t.forEach(((e,t)=>{let r=n[t];if(e.dynamic){let t=i.length;e.encode(i,r);let n=o.writeUpdatableValue();s.push((e=>{n(e+t)}))}else e.encode(o,r)})),s.forEach((e=>{e(o.length)}));let a=e.appendWriter(o);return a+=e.appendWriter(i),a}function unpack(e,t){let r=[],n=e.subReader(0);t.forEach((t=>{let o=null;if(t.dynamic){let r=e.readValue(),s=n.subReader(r.toNumber());try{o=t.decode(s)}catch(i){if(i.code===Logger.errors.BUFFER_OVERRUN)throw i;o=i,o.baseType=t.name,o.name=t.localName,o.type=t.type}}else try{o=t.decode(e)}catch(i){if(i.code===Logger.errors.BUFFER_OVERRUN)throw i;o=i,o.baseType=t.name,o.name=t.localName,o.type=t.type}null!=o&&r.push(o)}));const o=t.reduce(((e,t)=>{const r=t.localName;return r&&(e[r]||(e[r]=0),e[r]++),e}),{});t.forEach(((e,t)=>{let n=e.localName;if(!n||1!==o[n])return;if("length"===n&&(n="_length"),null!=r[n])return;const i=r[t];i instanceof Error?Object.defineProperty(r,n,{enumerable:!0,get:()=>{throw i}}):r[n]=i}));for(let i=0;i{throw e}})}return Object.freeze(r)}class ArrayCoder extends Coder{constructor(e,t,r){super("array",e.type+"["+(t>=0?t:"")+"]",r,-1===t||e.dynamic),this.coder=e,this.length=t}defaultValue(){const e=this.coder.defaultValue(),t=[];for(let r=0;re._data.length&&logger$3.throwError("insufficient data length",Logger.errors.BUFFER_OVERRUN,{length:e._data.length,count:t}));let r=[];for(let n=0;n>6==2;n++)e++;return e}return e===Utf8ErrorReason.OVERRUN?r.length-t-1:0}function replaceFunc(e,t,r,n,o){return e===Utf8ErrorReason.OVERLONG?(n.push(o),0):(n.push(65533),ignoreFunc(e,t,r))}UnicodeNormalizationForm2=UnicodeNormalizationForm||(UnicodeNormalizationForm={}),UnicodeNormalizationForm2.current="",UnicodeNormalizationForm2.NFC="NFC",UnicodeNormalizationForm2.NFD="NFD",UnicodeNormalizationForm2.NFKC="NFKC",UnicodeNormalizationForm2.NFKD="NFKD",Utf8ErrorReason2=Utf8ErrorReason||(Utf8ErrorReason={}),Utf8ErrorReason2.UNEXPECTED_CONTINUE="unexpected continuation byte",Utf8ErrorReason2.BAD_PREFIX="bad codepoint prefix",Utf8ErrorReason2.OVERRUN="string overrun",Utf8ErrorReason2.MISSING_CONTINUE="missing continuation byte",Utf8ErrorReason2.OUT_OF_RANGE="out of UTF-8 range",Utf8ErrorReason2.UTF16_SURROGATE="UTF-16 surrogate",Utf8ErrorReason2.OVERLONG="overlong representation";const Utf8ErrorFuncs=Object.freeze({error:errorFunc,ignore:ignoreFunc,replace:replaceFunc});function getUtf8CodePoints(e,t){null==t&&(t=Utf8ErrorFuncs.error),e=arrayify(e);const r=[];let n=0;for(;n>7)){r.push(o);continue}let i=null,s=null;if(192==(224&o))i=1,s=127;else if(224==(240&o))i=2,s=2047;else{if(240!=(248&o)){n+=t(128==(192&o)?Utf8ErrorReason.UNEXPECTED_CONTINUE:Utf8ErrorReason.BAD_PREFIX,n-1,e,r);continue}i=3,s=65535}if(n-1+i>=e.length){n+=t(Utf8ErrorReason.OVERRUN,n-1,e,r);continue}let a=o&(1<<8-i-1)-1;for(let c=0;c1114111?n+=t(Utf8ErrorReason.OUT_OF_RANGE,n-1-i,e,r,a):a>=55296&&a<=57343?n+=t(Utf8ErrorReason.UTF16_SURROGATE,n-1-i,e,r,a):a<=s?n+=t(Utf8ErrorReason.OVERLONG,n-1-i,e,r,a):r.push(a))}return r}function toUtf8Bytes(e,t=UnicodeNormalizationForm.current){t!=UnicodeNormalizationForm.current&&(logger$2.checkNormalize(),e=e.normalize(t));let r=[];for(let n=0;n>6|192),r.push(63&t|128);else if(55296==(64512&t)){n++;const o=e.charCodeAt(n);if(n>=e.length||56320!=(64512&o))throw new Error("invalid utf-8 string");const i=65536+((1023&t)<<10)+(1023&o);r.push(i>>18|240),r.push(i>>12&63|128),r.push(i>>6&63|128),r.push(63&i|128)}else r.push(t>>12|224),r.push(t>>6&63|128),r.push(63&t|128)}return arrayify(r)}function _toUtf8String(e){return e.map((e=>e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10&1023),56320+(1023&e))))).join("")}function toUtf8String(e,t){return _toUtf8String(getUtf8CodePoints(e,t))}class StringCoder extends DynamicBytesCoder{constructor(e){super("string",e)}defaultValue(){return""}encode(e,t){return super.encode(e,toUtf8Bytes(t))}decode(e){return toUtf8String(super.decode(e))}}class TupleCoder extends Coder{constructor(e,t){let r=!1;const n=[];e.forEach((e=>{e.dynamic&&(r=!0),n.push(e.type)}));super("tuple","tuple("+n.join(",")+")",t,r),this.coders=e}defaultValue(){const e=[];this.coders.forEach((t=>{e.push(t.defaultValue())}));const t=this.coders.reduce(((e,t)=>{const r=t.localName;return r&&(e[r]||(e[r]=0),e[r]++),e}),{});return this.coders.forEach(((r,n)=>{let o=r.localName;o&&1===t[o]&&("length"===o&&(o="_length"),null==e[o]&&(e[o]=e[n]))})),Object.freeze(e)}encode(e,t){return pack(e,this.coders,t)}decode(e){return e.coerce(this.name,unpack(e,this.coders))}}const logger$1=new Logger(version$7),paramTypeBytes=new RegExp(/^bytes([0-9]*)$/),paramTypeNumber=new RegExp(/^(u?int)([0-9]*)$/);class AbiCoder{constructor(e){defineReadOnly(this,"coerceFunc",e||null)}_getCoder(e){switch(e.baseType){case"address":return new AddressCoder(e.name);case"bool":return new BooleanCoder(e.name);case"string":return new StringCoder(e.name);case"bytes":return new BytesCoder(e.name);case"array":return new ArrayCoder(this._getCoder(e.arrayChildren),e.arrayLength,e.name);case"tuple":return new TupleCoder((e.components||[]).map((e=>this._getCoder(e))),e.name);case"":return new NullCoder(e.name)}let t=e.type.match(paramTypeNumber);if(t){let r=parseInt(t[2]||"256");return(0===r||r>256||r%8!=0)&&logger$1.throwArgumentError("invalid "+t[1]+" bit length","param",e),new NumberCoder(r/8,"int"===t[1],e.name)}if(t=e.type.match(paramTypeBytes),t){let r=parseInt(t[1]);return(0===r||r>32)&&logger$1.throwArgumentError("invalid bytes length","param",e),new FixedBytesCoder(r,e.name)}return logger$1.throwArgumentError("invalid type","type",e.type)}_getWordSize(){return 32}_getReader(e,t){return new Reader(e,this._getWordSize(),this.coerceFunc,t)}_getWriter(){return new Writer(this._getWordSize())}getDefaultValue(e){const t=e.map((e=>this._getCoder(ParamType.from(e))));return new TupleCoder(t,"_").defaultValue()}encode(e,t){e.length!==t.length&&logger$1.throwError("types/values length mismatch",Logger.errors.INVALID_ARGUMENT,{count:{types:e.length,values:t.length},value:{types:e,values:t}});const r=e.map((e=>this._getCoder(ParamType.from(e)))),n=new TupleCoder(r,"_"),o=this._getWriter();return n.encode(o,t),o.data}decode(e,t,r){const n=e.map((e=>this._getCoder(ParamType.from(e))));return new TupleCoder(n,"_").decode(this._getReader(arrayify(t),r))}}const defaultAbiCoder=new AbiCoder,{proto:r$A}=e$E;let c$g=class e{constructor(e){this.contractId=e.contractId,this.nonce=e.nonce,Object.freeze(this)}static _fromProtobuf(t){return new e({contractId:v$7._fromProtobuf(t.contractId),nonce:null!=t.nonce?t.nonce:Long.ZERO})}_toProtobuf(){return{contractId:this.contractId._toProtobuf(),nonce:this.nonce}}static fromBytes(t){return e._fromProtobuf(r$A.ContractNonceInfo.decode(t))}toBytes(){return r$A.ContractNonceInfo.encode(this._toProtobuf()).finish()}toJSON(){return{contractId:this.contractId.toString(),nonce:this.nonce.toNumber()}}toString(){return JSON.stringify(this.toJSON())}equals(e){return this.contractId.equals(e.contractId)&&this.nonce.eq(e.nonce)}},l$k=class e{constructor(e){this._createResult=e._createResult,this.contractId=e.contractId,this.bytes=e.bytes,this.errorMessage=e.errorMessage,this.bloom=e.bloom,this.gasUsed=e.gasUsed,this.logs=e.logs,this.createdContractIds=e.createdContractIds,this.evmAddress=e.evmAddress,this.stateChanges=e.stateChanges,this.gas=e.gas,this.amount=e.amount,this.functionParameters=e.functionParameters,this.senderAccountId=e.senderAccountId,this.contractNonces=e.contractNonces,this.signerNonce=e.signerNonce}static _fromProtobuf(t,r){const n=t.contractID,o=t.gasUsed,i=t.gas?t.gas:-1,s=t.amount?t.amount:-1;return new e({_createResult:r,bytes:t.contractCallResult,contractId:null!=n?v$7._fromProtobuf(n):null,errorMessage:null!=t.errorMessage?t.errorMessage:null,bloom:t.bloom,gasUsed:o instanceof Long?o:Long.fromValue(o),logs:(null!=t.logInfo?t.logInfo:[]).map((e=>o$u._fromProtobuf(e))),createdContractIds:(null!=t.createdContractIDs?t.createdContractIDs:[]).map((e=>v$7._fromProtobuf(e))),evmAddress:null!=t.evmAddress&&Object.hasOwn(t.evmAddress,"value")&&null!=t.evmAddress.value?t.evmAddress.value:null,stateChanges:[],gas:i instanceof Long?i:Long.fromValue(i),amount:s instanceof Long?s:Long.fromValue(s),functionParameters:t.functionParameters,senderAccountId:null!=t.senderId?f$8._fromProtobuf(t.senderId):null,contractNonces:(null!=t.contractNonces?t.contractNonces:[]).map((e=>c$g._fromProtobuf(e))),signerNonce:null!=t.signerNonce&&Object.hasOwn(t.signerNonce,"value")&&t.signerNonce.value||null})}asBytes(){return this.bytes}getString(e){return e$w(this.getBytes(e))}getBytes(e){const t=this.getInt32(e),r=E$8(this.bytes).getInt32(t+28);return this.bytes.subarray(t+32,t+32+r)}getBytes32(e){return this.bytes.subarray(32*(null!=e?e:0),32*(null!=e?e:0)+32)}getBool(e){return 0!==this.bytes[32*(null!=e?e:0)+31]}getInt8(e){const t=32*(null!=e?e:0)+31;return E$8(this.bytes).getInt8(t)}getUint8(e){return this.bytes[32*(null!=e?e:0)+31]}getInt16(e){const t=32*(null!=e?e:0)+28;return E$8(this.bytes).getInt32(t)}getUint16(e){const t=32*(null!=e?e:0)+28;return E$8(this.bytes).getUint32(t)}getInt24(e){const t=32*(null!=e?e:0)+28;return E$8(this.bytes).getInt32(t)}getUint24(e){const t=32*(null!=e?e:0)+28;return E$8(this.bytes).getUint32(t)}getInt32(e){const t=32*(null!=e?e:0)+28;return E$8(this.bytes).getInt32(t)}getUint32(e){const t=32*(null!=e?e:0)+28;return E$8(this.bytes).getUint32(t)}getInt40(e){const t=defaultAbiCoder.decode(["int40"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint40(e){return new BigNumber$1(n$C(this._getBytes32(e).subarray(27,32)),16)}getInt48(e){const t=defaultAbiCoder.decode(["int48"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint48(e){return new BigNumber$1(n$C(this._getBytes32(e).subarray(26,32)),16)}getInt56(e){const t=defaultAbiCoder.decode(["int56"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint56(e){return new BigNumber$1(n$C(this._getBytes32(e).subarray(25,32)),16)}getInt64(e){const t=defaultAbiCoder.decode(["int64"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint64(e){return new BigNumber$1(n$C(this._getBytes32(e).subarray(24,32)),16)}getInt72(e){const t=defaultAbiCoder.decode(["int72"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint72(e){return new BigNumber$1(n$C(this._getBytes32(e).subarray(23,32)),16)}getInt80(e){const t=defaultAbiCoder.decode(["int80"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint80(e){return new BigNumber$1(n$C(this._getBytes32(e).subarray(22,32)),16)}getInt88(e){const t=defaultAbiCoder.decode(["int88"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint88(e){return new BigNumber$1(n$C(this._getBytes32(e).subarray(21,32)),16)}getInt96(e){const t=defaultAbiCoder.decode(["int96"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint96(e){return new BigNumber$1(n$C(this._getBytes32(e).subarray(20,32)),16)}getInt104(e){const t=defaultAbiCoder.decode(["int104"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint104(e){return new BigNumber$1(n$C(this._getBytes32(e).subarray(19,32)),16)}getInt112(e){const t=defaultAbiCoder.decode(["int112"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint112(e){return new BigNumber$1(n$C(this._getBytes32(e).subarray(18,32)),16)}getInt120(e){const t=defaultAbiCoder.decode(["int120"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint120(e){return new BigNumber$1(n$C(this._getBytes32(e).subarray(17,32)),16)}getInt128(e){const t=defaultAbiCoder.decode(["int128"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint128(e){return new BigNumber$1(n$C(this._getBytes32(e).subarray(16,32)),16)}getInt136(e){const t=defaultAbiCoder.decode(["int136"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint136(e){return new BigNumber$1(n$C(this._getBytes32(e).subarray(15,32)),16)}getInt144(e){const t=defaultAbiCoder.decode(["int144"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint144(e){return new BigNumber$1(n$C(this._getBytes32(e).subarray(14,32)),16)}getInt152(e){const t=defaultAbiCoder.decode(["int152"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint152(e){return new BigNumber$1(n$C(this._getBytes32(e).subarray(13,32)),16)}getInt160(e){const t=defaultAbiCoder.decode(["int160"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint160(e){return new BigNumber$1(n$C(this._getBytes32(e).subarray(12,32)),16)}getInt168(e){const t=defaultAbiCoder.decode(["int168"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint168(e){return new BigNumber$1(n$C(this._getBytes32(e).subarray(11,32)),16)}getInt176(e){const t=defaultAbiCoder.decode(["int176"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint176(e){return new BigNumber$1(n$C(this._getBytes32(e).subarray(10,32)),16)}getInt184(e){const t=defaultAbiCoder.decode(["int184"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint184(e){return new BigNumber$1(n$C(this._getBytes32(e).subarray(9,32)),16)}getInt192(e){const t=defaultAbiCoder.decode(["int192"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint192(e){return new BigNumber$1(n$C(this._getBytes32(e).subarray(8,32)),16)}getInt200(e){const t=defaultAbiCoder.decode(["int200"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint200(e){return new BigNumber$1(n$C(this._getBytes32(e).subarray(7,32)),16)}getInt208(e){const t=defaultAbiCoder.decode(["int208"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint208(e){return new BigNumber$1(n$C(this._getBytes32(e).subarray(6,32)),16)}getInt216(e){const t=defaultAbiCoder.decode(["int216"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint216(e){return new BigNumber$1(n$C(this._getBytes32(e).subarray(5,32)),16)}getInt224(e){const t=defaultAbiCoder.decode(["int224"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint224(e){return new BigNumber$1(n$C(this._getBytes32(e).subarray(4,32)),16)}getInt232(e){const t=defaultAbiCoder.decode(["int232"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint232(e){return new BigNumber$1(n$C(this._getBytes32(e).subarray(3,32)),16)}getInt240(e){const t=defaultAbiCoder.decode(["int240"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint240(e){return new BigNumber$1(n$C(this._getBytes32(e).subarray(2,32)),16)}getInt248(e){const t=defaultAbiCoder.decode(["int248"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint248(e){return new BigNumber$1(n$C(this._getBytes32(e).subarray(1,32)),16)}getInt256(e){const t=defaultAbiCoder.decode(["int256"],this._getBytes32(null!=e?e:0));return new BigNumber$1(t.toString())}getUint256(e){return new BigNumber$1(n$C(this._getBytes32(e)),16)}getAddress(e){return n$C(this.bytes.subarray(32*(null!=e?e:0)+12,32*(null!=e?e:0)+32))}getResult(e){return defaultAbiCoder.decode(e,this.bytes)}_getBytes32(e){return this.bytes.subarray(32*(null!=e?e:0),32*(null!=e?e:0)+32)}_toProtobuf(){return{contractID:null!=this.contractId?this.contractId._toProtobuf():null,contractCallResult:this.bytes,errorMessage:this.errorMessage,bloom:this.bloom,gasUsed:this.gasUsed,logInfo:this.logs.map((e=>e._toProtobuf())),createdContractIDs:this.createdContractIds.map((e=>e._toProtobuf())),evmAddress:null!=this.evmAddress?{value:this.evmAddress}:null,gas:this.gas,amount:this.amount,functionParameters:this.functionParameters,senderId:null!=this.senderAccountId?this.senderAccountId._toProtobuf():null,contractNonces:this.contractNonces.map((e=>e._toProtobuf())),signerNonce:null!=this.signerNonce?{value:this.signerNonce}:null}}},o$t=class extends t$x{constructor(){super((e=>f$8.fromString(e)))}toJSON(){const e={};return this._map.forEach(((t,r)=>{e[r]=t.toString()})),e}},n$u=class e extends t$x{constructor(){super((e=>u$i.fromString(e)))}__set(e,t,r){const n=e.toString();let o=this._map.get(n);null==o&&(o=new o$t,this._map.set(n,o),this.__map.set(e,o)),o._set(t,r)}static _fromProtobuf(t){const r=new e;for(const e of t){const t=u$i._fromProtobuf(e.token);for(const n of null!=e.transfers?e.transfers:[]){const e=f$8._fromProtobuf(n.accountID);r.__set(t,e,n.amount)}}return r}_toProtobuf(){const e=[];for(const[t,r]of this){const n=[];for(const[e,t]of r)n.push({accountID:e._toProtobuf(),amount:t});e.push({token:t._toProtobuf(),transfers:n})}return e}},s$o=class e extends t$x{constructor(){super((e=>u$i.fromString(e)))}__set(e,t){const r=e.toString();let n=this._map.get(r);null==n&&(n=[],this._map.set(r,n),this.__map.set(e,n)),n.push(t)}static _fromProtobuf(t){const r=new e;for(const e of t){const t=u$i._fromProtobuf(e.token);for(const n of null!=e.nftTransfers?e.nftTransfers:[]){const e=f$8._fromProtobuf(n.senderAccountID),o=f$8._fromProtobuf(n.receiverAccountID);r.__set(t,{sender:e,recipient:o,serial:Long.fromValue(n.serialNumber),isApproved:!1})}}return r}_toProtobuf(){const e=[];for(const[t,r]of this){const n=[];for(const e of r)n.push({senderAccountID:e.sender._toProtobuf(),receiverAccountID:e.recipient._toProtobuf(),serialNumber:e.serial});e.push({token:t._toProtobuf(),nftTransfers:n})}return e}toJSON(){const e={};return this._map.forEach(((t,r)=>{e[r]=t.map((e=>({sender:e.sender.toString(),recipient:e.recipient.toString(),serial:e.serial,isApproved:e.isApproved})))})),e}},n$t=class e{constructor(e={}){this._feeCollectorAccountId=null,null!=e.feeCollectorAccountId&&this.setFeeCollectorAccountId(e.feeCollectorAccountId),this._tokenId=null,null!=e.tokenId&&this.setTokenId(e.tokenId),this._amount=null,null!=e.amount&&this.setAmount(e.amount),this._payerAccountIds=null,null!=e.payerAccountIds&&this.setPayerAccountIds(e.payerAccountIds)}get feeCollectorAccountId(){return this._feeCollectorAccountId}setFeeCollectorAccountId(e){return this._feeCollectorAccountId="string"==typeof e?f$8.fromString(e):e,this}get tokenId(){return this._tokenId}setTokenId(e){return this._tokenId="string"==typeof e?u$i.fromString(e):e,this}get amount(){return this._amount}setAmount(e){return this._amount="number"==typeof e?Long.fromNumber(e):e,this}get payerAccountIds(){return this._payerAccountIds}setPayerAccountIds(e){return this._payerAccountIds=e,this}static _fromProtobuf(t){return new e({feeCollectorAccountId:null!=t.feeCollectorAccountId?f$8._fromProtobuf(t.feeCollectorAccountId):void 0,tokenId:null!=t.tokenId?u$i._fromProtobuf(t.tokenId):void 0,amount:null!=t.amount?t.amount:void 0,payerAccountIds:null!=t.effectivePayerAccountId?t.effectivePayerAccountId.map((e=>f$8._fromProtobuf(e))):void 0})}_toProtobuf(){return{feeCollectorAccountId:null!=this.feeCollectorAccountId?this.feeCollectorAccountId._toProtobuf():null,tokenId:null!=this._tokenId?this._tokenId._toProtobuf():null,amount:this._amount,effectivePayerAccountId:null!=this._payerAccountIds?this._payerAccountIds.map((e=>e._toProtobuf())):null}}toJSON(){var e,t,r,n;return{feeCollectorAccountId:(null==(e=this.feeCollectorAccountId)?void 0:e.toString())||null,tokenId:(null==(t=this._tokenId)?void 0:t.toString())||null,amount:(null==(r=this._amount)?void 0:r.toString())||null,payerAccountIds:(null==(n=this._payerAccountIds)?void 0:n.map((e=>e.toString())))||[]}}},u$g=class e{constructor(e={}){this._accountId=null,null!=e.accountId&&this.setAccountId(e.accountId),this._tokenId=null,null!=e.tokenId&&this.setTokenId(e.tokenId),this._defaultMaxTransactionFee=new e$A(5)}get accountId(){return this._accountId}setAccountId(e){return this._accountId="string"==typeof e?f$8.fromString(e):e,this}get tokenId(){return this._tokenId}setTokenId(e){return this._tokenId="string"==typeof e?u$i.fromString(e):e,this}static _fromProtobuf(t){return new e({accountId:null!=t.accountId?f$8._fromProtobuf(t.accountId):void 0,tokenId:null!=t.tokenId?u$i._fromProtobuf(t.tokenId):void 0})}_toProtobuf(){return{accountId:null!=this._accountId?this._accountId._toProtobuf():void 0,tokenId:null!=this._tokenId?this._tokenId._toProtobuf():void 0}}toJSON(){var e,t;return{accountId:(null==(e=this._accountId)?void 0:e.toString())||null,tokenId:(null==(t=this._tokenId)?void 0:t.toString())||null}}},n$s=class e{constructor(e){this.tokenId=e.tokenId instanceof u$i?e.tokenId:u$i.fromString(e.tokenId),this.accountId=e.accountId instanceof f$8?e.accountId:f$8.fromString(e.accountId),this.expectedDecimals=e.expectedDecimals,this.amount=Long.fromValue(e.amount),this.isApproved=e.isApproved}static _fromProtobuf(t){const r=[];for(const n of t){const t=u$i._fromProtobuf(n.token),o=null!=n.expectedDecimals&&Object.hasOwn(n.expectedDecimals,"value")?n.expectedDecimals.value:null;for(const i of null!=n.transfers?n.transfers:[])r.push(new e({tokenId:t,accountId:f$8._fromProtobuf(i.accountID),expectedDecimals:o||null,amount:null!=i.amount?i.amount:Long.ZERO,isApproved:1==i.isApproval}))}return r}_toProtobuf(){return{accountID:this.accountId._toProtobuf(),amount:this.amount,isApproval:this.isApproved}}toJSON(){return{tokenId:this.tokenId.toString(),accountId:this.accountId.toString(),expectedDecimals:this.expectedDecimals,amount:this.amount.toString(),isApproved:this.isApproved}}toString(){return JSON.stringify(this.toJSON())}},e$v=class e{constructor(e,t){this.tokenId=e,this.serial="number"==typeof t?Long.fromNumber(t):t,Object.freeze(this)}static fromString(t){const r=t.split("/").length>1?t.split("/"):t.split("@");for(const e of r)if(""===e)throw new Error("invalid format for NftId: use [token]/[serial] or [token]@[serial]");const n=u$i.fromString(r[0]),o=Long.fromString(r[1]);return new e(n,o)}static _fromProtobuf(t){return new e(u$i._fromProtobuf(t.token_ID),null!=t.serialNumber?t.serialNumber:Long.ZERO)}static fromBytes(t){return e._fromProtobuf(proto_1.NftID.decode(t))}_toProtobuf(){return{token_ID:this.tokenId._toProtobuf(),serialNumber:Long.fromValue(void 0!==this.serial?this.serial:0)}}toString(){return`${this.tokenId.toString()}/${this.serial.toString()}`}toBytes(){return proto_1.NftID.encode(this._toProtobuf()).finish()}},t$p=class e{constructor(e={}){var t,r;this._senderId=null,this._receiverId=null,this._tokenId=null,this._nftId=null,e.receiverId&&(this._receiverId=e.receiverId),e.senderId&&(this._senderId=e.senderId),e.tokenId?this._tokenId=new u$i(e.tokenId):e.nftId&&(this._nftId=new e$v(null==(t=e.nftId)?void 0:t.tokenId,null==(r=e.nftId)?void 0:r.serial))}static fromBytes(t){if(null==t.senderId)throw new Error("senderId is required");if(null==t.receiverId)throw new Error("receiverId is required");if(null==t.fungibleTokenType&&null==t.nonFungibleToken)throw new Error("Either fungibleTokenType or nonFungibleToken is required");return new e({senderId:f$8._fromProtobuf(t.senderId),receiverId:f$8._fromProtobuf(t.receiverId),nftId:null!=t.nonFungibleToken?e$v._fromProtobuf(t.nonFungibleToken):null,tokenId:null!=t.fungibleTokenType?u$i._fromProtobuf(t.fungibleTokenType):null})}setSenderid(e){return this._senderId=e,this}setReceiverId(e){return this._receiverId=e,this}setTokenId(e){return this._nftId=null,this._tokenId=e,this}setNftId(e){return this._tokenId=null,this._nftId=e,this}get senderId(){return this._senderId}get receiverId(){return this._receiverId}get tokenId(){return this._tokenId}get nftId(){return this._nftId}toBytes(){var e,t,r,n;return{senderId:null==(e=this.senderId)?void 0:e._toProtobuf(),receiverId:null==(t=this._receiverId)?void 0:t._toProtobuf(),fungibleTokenType:null==(r=this._tokenId)?void 0:r._toProtobuf(),nonFungibleToken:null==(n=this._nftId)?void 0:n._toProtobuf()}}},d$g=class e{constructor(e){this.airdropId=e.airdropId,this.amount=e.amount}toBytes(){return{pendingAirdropId:this.airdropId.toBytes(),pendingAirdropValue:{amount:this.amount}}}static fromBytes(t){var r;if(null==t.pendingAirdropId)throw new Error("pendingAirdropId is required");const n=t$p.fromBytes(t.pendingAirdropId),o=null==(r=t.pendingAirdropValue)?void 0:r.amount;return new e({airdropId:n,amount:o||Long.ZERO})}},b$7=class e{constructor(e){this.receipt=e.receipt,this.transactionHash=e.transactionHash,this.consensusTimestamp=e.consensusTimestamp,this.transactionId=e.transactionId,this.transactionMemo=e.transactionMemo,this.transactionFee=e.transactionFee,this.transfers=e.transfers,this.contractFunctionResult=null!=e.contractFunctionResult?e.contractFunctionResult:null,this.tokenTransfers=e.tokenTransfers,this.tokenTransfersList=e.tokenTransfersList,this.scheduleRef=e.scheduleRef,this.assessedCustomFees=e.assessedCustomFees,this.nftTransfers=e.nftTransfers,this.automaticTokenAssociations=e.automaticTokenAssociations,this.parentConsensusTimestamp=e.parentConsensusTimestamp,this.aliasKey=e.aliasKey,this.duplicates=e.duplicates,this.children=e.children,this.hbarAllowanceAdjustments=e.hbarAllowanceAdjustments,this.tokenAllowanceAdjustments=e.tokenAllowanceAdjustments,this.nftAllowanceAdjustments=e.nftAllowanceAdjustments,this.ethereumHash=e.ethereumHash,this.paidStakingRewards=e.paidStakingRewards,this.prngBytes=e.prngBytes,this.prngNumber=e.prngNumber,this.evmAddress=e.evmAddress,this.newPendingAirdrops=e.newPendingAirdrops,Object.freeze(this)}_toProtobuf(){const e=this.tokenTransfers._toProtobuf(),t=this.nftTransfers._toProtobuf(),r=[];for(const n of e)for(const e of t)null!=n.token&&null!=e.token&&n.token.shardNum===e.token.shardNum&&n.token.realmNum===e.token.realmNum&&n.token.tokenNum===e.token.tokenNum?r.push({token:n.token,transfers:n.transfers,nftTransfers:n.nftTransfers}):(r.push(n),r.push(e));return{duplicateTransactionRecords:this.duplicates.map((e=>e._toProtobuf().transactionRecord)),childTransactionRecords:this.children.map((e=>e._toProtobuf().transactionRecord)),transactionRecord:{receipt:this.receipt._toProtobuf().receipt,transactionHash:null!=this.transactionHash?this.transactionHash:null,consensusTimestamp:null!=this.consensusTimestamp?this.consensusTimestamp._toProtobuf():null,transactionID:null!=this.transactionId?this.transactionId._toProtobuf():null,memo:null!=this.transactionMemo?this.transactionMemo:null,transactionFee:null!=this.transactionFee?this.transactionFee.toTinybars():null,contractCallResult:null==this.contractFunctionResult||this.contractFunctionResult._createResult?null:this.contractFunctionResult._toProtobuf(),contractCreateResult:null!=this.contractFunctionResult&&this.contractFunctionResult._createResult?this.contractFunctionResult._toProtobuf():null,transferList:null!=this.transfers?{accountAmounts:this.transfers.map((e=>e._toProtobuf()))}:null,tokenTransferLists:r,scheduleRef:null!=this.scheduleRef?this.scheduleRef._toProtobuf():null,assessedCustomFees:this.assessedCustomFees.map((e=>e._toProtobuf())),automaticTokenAssociations:this.automaticTokenAssociations.map((e=>e._toProtobuf())),parentConsensusTimestamp:null!=this.parentConsensusTimestamp?this.parentConsensusTimestamp._toProtobuf():null,alias:null!=this.aliasKey?proto_1.Key.encode(this.aliasKey._toProtobufKey()).finish():null,ethereumHash:this.ethereumHash,paidStakingRewards:this.paidStakingRewards.map((e=>e._toProtobuf())),prngBytes:this.prngBytes,prngNumber:null!=this.prngNumber?this.prngNumber:null,evmAddress:null!=this.evmAddress?this.evmAddress.toBytes():null,newPendingAirdrops:this.newPendingAirdrops.map((e=>e.toBytes()))}}}static _fromProtobuf(t){const r=t.transactionRecord;let n=null!=r.alias&&r.alias.length>0?t$y._fromProtobufKey(proto_1.Key.decode(r.alias)):null;n instanceof i$m||(n=null);const o=null!=t.childTransactionRecords?t.childTransactionRecords.map((t=>e._fromProtobuf({transactionRecord:t}))):[],i=null!=t.duplicateTransactionRecords?t.duplicateTransactionRecords.map((t=>e._fromProtobuf({transactionRecord:t}))):[],s=null!=r.contractCallResult?l$k._fromProtobuf(r.contractCallResult,!1):null!=r.contractCreateResult?l$k._fromProtobuf(r.contractCreateResult,!0):void 0,a=null!=r.newPendingAirdrops?r.newPendingAirdrops.map((e=>d$g.fromBytes(e))):[];return new e({receipt:d$h._fromProtobuf({receipt:r.receipt}),transactionHash:null!=r.transactionHash?r.transactionHash:new Uint8Array,consensusTimestamp:s$r._fromProtobuf(r.consensusTimestamp),transactionId:i$j._fromProtobuf(r.transactionID),transactionMemo:null!=r.memo?r.memo:"",transactionFee:e$A.fromTinybars(null!=r.transactionFee?r.transactionFee:0),transfers:n$w._fromProtobuf(null!=r.transferList&&null!=r.transferList.accountAmounts?r.transferList.accountAmounts:[]),contractFunctionResult:s,tokenTransfers:n$u._fromProtobuf(null!=r.tokenTransferLists?r.tokenTransferLists:[]),tokenTransfersList:n$s._fromProtobuf(null!=r.tokenTransferLists?r.tokenTransferLists:[]),scheduleRef:null!=r.scheduleRef?o$v._fromProtobuf(r.scheduleRef):null,assessedCustomFees:null!=r.assessedCustomFees?r.assessedCustomFees.map((e=>n$t._fromProtobuf(e))):[],nftTransfers:s$o._fromProtobuf(null!=r.tokenTransferLists?r.tokenTransferLists:[]),automaticTokenAssociations:null!=r.automaticTokenAssociations?r.automaticTokenAssociations.map((e=>u$g._fromProtobuf(e))):[],parentConsensusTimestamp:null!=r.parentConsensusTimestamp?s$r._fromProtobuf(r.parentConsensusTimestamp):null,aliasKey:n,duplicates:i,children:o,hbarAllowanceAdjustments:[],tokenAllowanceAdjustments:[],nftAllowanceAdjustments:[],ethereumHash:null!=r.ethereumHash?r.ethereumHash:null,paidStakingRewards:null!=r.paidStakingRewards?n$w._fromProtobuf(r.paidStakingRewards):[],prngBytes:null!=r.prngBytes?r.prngBytes:null,prngNumber:null!=r.prngNumber?r.prngNumber:null,evmAddress:null!=r.evmAddress?i$k.fromBytes(r.evmAddress):null,newPendingAirdrops:a})}static fromBytes(t){return e._fromProtobuf(proto_1.TransactionGetRecordResponse.decode(t))}toBytes(){return proto_1.TransactionGetRecordResponse.encode(this._toProtobuf()).finish()}toJSON(){var e,t,r,n;return{receipt:this.receipt.toJSON(),transactionHash:n$C(this.transactionHash),consensusTimestamp:this.consensusTimestamp.toDate(),transactionId:this.transactionId.toString(),transactionMemo:this.transactionMemo,transactionFee:this.transactionFee.toTinybars().toString(),transfers:this.transfers.map((e=>e.toJSON())),tokenTransfers:this.tokenTransfers,tokenTransfersList:this.tokenTransfersList.map((e=>e.toJSON())),scheduleRef:(null==(e=this.scheduleRef)?void 0:e.toString())||null,assessedCustomFees:this.assessedCustomFees,nftTransfers:this.nftTransfers,automaticTokenAssociations:this.automaticTokenAssociations,parentConsensusTimestamp:(null==(t=this.parentConsensusTimestamp)?void 0:t.toDate())||null,aliasKey:(null==(r=this.aliasKey)?void 0:r.toString())||null,duplicates:this.duplicates,children:this.children,ethereumHash:null!=this.ethereumHash?n$C(this.ethereumHash):null,paidStakingRewards:this.paidStakingRewards,prngBytes:null!=this.prngBytes?n$C(this.prngBytes):null,prngNumber:this.prngNumber,evmAddress:(null==(n=this.evmAddress)?void 0:n.toString())||null}}toString(){return JSON.stringify(this.toJSON())}},r$z=class extends t$s{constructor(e){super(e,`Record for transaction ${e.transactionId.toString()} contained error status ${e.status.toString()}`),this.transactionRecord=e.transactionRecord}};const{proto:l$j}=e$E;let h$a=class e extends h$b{constructor(e={}){super(),this._transactionId=null,this._includeChildren=null,this._includeDuplicates=null,this._validateReceiptStatus=!0,null!=e.transactionId&&this.setTransactionId(e.transactionId),null!=e.includeChildren&&this.setIncludeChildren(e.includeChildren),null!=e.includeDuplicates&&this.setIncludeDuplicates(e.includeDuplicates),null!=e.validateReceiptStatus&&this.setValidateReceiptStatus(e.validateReceiptStatus)}get transactionId(){return this._transactionId}static _fromProtobuf(t){const r=t.transactionGetRecord;return new e({transactionId:r.transactionID?i$j._fromProtobuf(r.transactionID):void 0,includeChildren:null!=r.includeChildRecords?r.includeChildRecords:void 0,includeDuplicates:null!=r.includeDuplicates?r.includeDuplicates:void 0})}setTransactionId(e){return this._transactionId="string"==typeof e?i$j.fromString(e):e.clone(),this}setIncludeChildren(e){return this._includeChildren=e,this}get includeChildren(){return null!=this._includeChildren&&this._includeChildren}setIncludeDuplicates(e){return this._duplicates=e,this}get includeDuplicates(){return null!=this._duplicates&&this._duplicates}setValidateReceiptStatus(e){return this._validateReceiptStatus=e,this}get validateReceiptStatus(){return this._validateReceiptStatus}_shouldRetry(e,t){const{nodeTransactionPrecheckCode:r}=this._mapResponseHeader(t);let n=e$z._fromCode(null!=r?r:l$j.ResponseCodeEnum.OK);switch(this._logger&&this._logger.debug(`[${this._getLogId()}] received node precheck status ${n.toString()}`),n){case e$z.Busy:case e$z.Unknown:case e$z.ReceiptNotFound:case e$z.RecordNotFound:case e$z.PlatformNotActive:return[n,c$h.Retry];case e$z.Ok:break;default:return[n,c$h.Error]}const o=t.transactionGetRecord;if(o.header.responseType===proto_1.ResponseType.COST_ANSWER)return[n,c$h.Finished];const i=o.transactionRecord.receipt.status;switch(n=e$z._fromCode(i),this._logger&&this._logger.debug(`[${this._getLogId()}] received record's receipt ${n.toString()}`),n){case e$z.Ok:case e$z.Busy:case e$z.Unknown:case e$z.ReceiptNotFound:case e$z.RecordNotFound:return[n,c$h.Retry];case e$z.Success:return[n,c$h.Finished];default:return[n,this._validateReceiptStatus?c$h.Error:c$h.Finished]}}_mapStatusError(e,t,r){const{nodeTransactionPrecheckCode:n}=this._mapResponseHeader(t);let o=e$z._fromCode(null!=n?n:l$j.ResponseCodeEnum.OK);switch(o){case e$z.Ok:break;case e$z.ContractRevertExecuted:return new r$z({status:o,transactionId:this._getTransactionId(),transactionRecord:b$7._fromProtobuf({transactionRecord:t.transactionGetRecord.transactionRecord})});default:return new n$y({nodeId:r,status:o,transactionId:this._getTransactionId(),contractFunctionResult:null})}const i=t.transactionGetRecord.transactionRecord.receipt,s=i.status;return o=e$z._fromCode(s),o===e$z.ContractRevertExecuted?new r$z({status:o,transactionId:this._getTransactionId(),transactionRecord:b$7._fromProtobuf({transactionRecord:t.transactionGetRecord.transactionRecord})}):new r$D({status:o,transactionId:this._getTransactionId(),transactionReceipt:d$h._fromProtobuf({receipt:i})})}_validateChecksums(e){null!=this._transactionId&&null!=this._transactionId.accountId&&this._transactionId.accountId.validateChecksum(e)}_execute(e,t){return e.crypto.getTxRecordByTxID(t)}_mapResponseHeader(e){return e.transactionGetRecord.header}_mapResponse(e,t,r){const n=e.transactionGetRecord;return Promise.resolve(b$7._fromProtobuf(n))}_onMakeRequest(e){return{transactionGetRecord:{header:e,transactionID:null!=this._transactionId?this._transactionId._toProtobuf():null,includeChildRecords:this._includeChildren,includeDuplicates:this._includeDuplicates}}}_getLogId(){return`TransactionRecordQuery:${(null!=this._paymentTransactionId&&null!=this._paymentTransactionId.validStart?this._paymentTransactionId.validStart:this._timestamp).toString()}`}};m$7.set("transactionGetRecord",h$a._fromProtobuf);let h$9=class e{constructor(e){this.nodeId=e.nodeId,this.transactionHash=e.transactionHash,this.transactionId=e.transactionId,this.transaction=e.transaction,this.logger=e.logger}static fromJSON(t){return new e({nodeId:f$8.fromString(t.nodeId),transactionHash:r$G(t.transactionHash),transactionId:i$j.fromString(t.transactionId)})}async getReceipt(e){var t;let r;try{r=await this.getReceiptQuery().execute(e)}catch(n){if(n instanceof r$D&&n.status===e$z.ThrottledAtConsensus)return null==(t=this.logger)||t.info("Transaction throttled at consensus"),this._retryTransaction(e);throw n}if(r.status!==e$z.Success&&r.status!==e$z.FeeScheduleFilePartUploaded)throw new r$D({transactionReceipt:r,status:r.status,transactionId:this.transactionId});return r}async getRecord(e){return await this.getReceipt(e),this.getRecordQuery().execute(e)}async getVerboseRecord(e){try{return await this.getReceiptQuery().execute(e),this.getRecordQuery().execute(e)}catch(t){return this.getRecordQuery().execute(e)}}async getReceiptWithSigner(e){const t=await this.getReceiptQuery().executeWithSigner(e);if(t.status!==e$z.Success)throw new r$D({transactionReceipt:t,status:t.status,transactionId:this.transactionId});return t}async getRecordWithSigner(e){return await this.getReceiptWithSigner(e),this.getRecordQuery().executeWithSigner(e)}getReceiptQuery(){return(new l$l).setTransactionId(this.transactionId).setNodeAccountIds([this.nodeId])}getRecordQuery(){return(new h$a).setTransactionId(this.transactionId).setNodeAccountIds([this.nodeId])}toJSON(){return{nodeId:this.nodeId.toString(),transactionHash:n$C(this.transactionHash),transactionId:this.transactionId.toString()}}async _retryTransaction(e){var t,r,n,o,i,s,a,c,u;if(!this.transaction)throw new Error("If you retry transaction you should have the transaction set");if((null==(t=e.operatorAccountId)?void 0:t.toString())!==(null==(n=null==(r=this.transaction.transactionId)?void 0:r.accountId)?void 0:n.toString()))throw new Error("Retry mechanism is not supported when tx id is not generated by the operator account");if(null===e.operatorAccountId)throw new Error("Operator account is not set");let l=250;for(let h=0;h<5;h++){if(null==(o=this.logger)||o.trace(`Transaction throttled, retry attempt ${h}`),null==(i=this.transaction)||i._resetTransaction(e),null==this.transaction||null==this.transaction.transactionId)throw new Error("Transaction or Transaction ID is null after reset");this.transactionId=this.transaction.transactionId,h>0&&(await I$8(Math.min(l,16e3)),l*=2);try{this.transaction._resetTransaction(e);const t=await this.transaction.execute(e),r=await(new l$l).setTransactionId(t.transactionId).setNodeAccountIds([t.nodeId]).execute(e);if(r.status!==e$z.ThrottledAtConsensus)return null==(s=this.logger)||s.info(`Transaction throttle retry succeeded after attempt ${h}`),r}catch(d){if(d instanceof r$D&&d.status===e$z.ThrottledAtConsensus){null==(a=this.logger)||a.info("Transaction throttled at consensus");continue}throw null==(c=this.logger)||c.error(`An error occurred after throttle retry: ${d instanceof Error?d.message:String(d)}`),d}}throw null==(u=this.logger)||u.error("Transaction throttle retry failed after maximum attempts"),new Error("Transaction retry failed after maximum attempts")}toString(){return JSON.stringify(this.toJSON())}};async function t$o(e){return new Uint8Array(await window.crypto.subtle.digest("SHA-384",e))}let n$r=class e extends t$x{constructor(){super((e=>f$8.fromString(e)))}static async _fromTransaction(t){const r=new e;for(let e=0;ei$m.fromString(e)))}static _fromTransactionSigMap(t){const r=new e,n=null!=t.sigPair?t.sigPair:[];for(const e of n)null!=e.pubKeyPrefix&&(null!=e.ed25519?r._set(i$m.fromBytesED25519(e.pubKeyPrefix),e.ed25519):null!=e.ECDSASecp256k1&&r._set(i$m.fromBytesECDSA(e.pubKeyPrefix),e.ECDSASecp256k1));return r}},s$n=class e extends t$x{constructor(){super((e=>f$8.fromString(e)))}static _fromTransaction(t){const r=new e;for(let e=0;el$i._fromProtobuf({fixedFee:e}))):null})}getAccountId(){return this._accountId}setAccountId(e){return this._accountId=e instanceof f$8?e:f$8.fromString(e),this}getFees(){return this._fees}setFees(e){return this._fees=e,this}_toProtobuf(){const e=[];return null!=this._fees&&this._fees.forEach((t=>{const r=t._toProtobuf();null!=r.fixedFee&&e.push(r.fixedFee)})),{accountId:null!=this._accountId?this._accountId._toProtobuf():null,fees:e}}};const I$7=Long.fromValue(7776e3),w$8=e$A.fromTinybars(Long.fromString("9223372036854775807")),S$9=new f$8(0,0,0),A$6=1024,k$7=new Map;let P$5=class extends u$k{constructor(){super(),__publicField(this,"_shouldRemoveSignature",((e,t)=>n$C((null==e?void 0:e.pubKeyPrefix)||new Uint8Array)===t)),this._transactions=new t$t,this._signedTransactions=new t$t,this._signerPublicKeys=new Set,this._transactionValidDuration=120,this._defaultMaxTransactionFee=new e$A(2),this._customFeeLimits=[],this._maxTransactionFee=null,this._transactionMemo="",this._transactionIds=new t$t,this._publicKeys=[],this._transactionSigners=[],this._regenerateTransactionId=null,this._batchKey=null,this._isThrottled=!1}static fromBytes(e){const t=[],r=[],n=[],o=[],i=[],s=[],a=proto_1.TransactionList.decode(e).transactionList;if(0===a.length){const t=proto_1.Transaction.decode(e);0!==t.signedTransactionBytes.length?a.push(t):a.push({signedTransactionBytes:proto_1.SignedTransaction.encode({sigMap:t.sigMap,bodyBytes:t.bodyBytes}).finish()})}for(const l of a){if(null==l.bodyBytes&&null==l.signedTransactionBytes)throw new Error("bodyBytes and signedTransactionBytes are null");if(l.bodyBytes&&0!=l.bodyBytes.length){const e=proto_1.TransactionBody.decode(l.bodyBytes);if(null!=e.transactionID){const t=i$j._fromProtobuf(e.transactionID);o.includes(t.toString())||(r.push(t),o.push(t.toString()))}if(null!=e.nodeAccountID){const t=f$8._fromProtobuf(e.nodeAccountID);i.includes(t.toString())||(n.push(t),i.push(t.toString()))}if(null==e.data)throw new Error("(BUG) body.data was not set in the protobuf");s.push(e)}if(l.signedTransactionBytes&&0!=l.signedTransactionBytes.length){const e=proto_1.SignedTransaction.decode(l.signedTransactionBytes);t.push(e);const a=proto_1.TransactionBody.decode(e.bodyBytes);if(null!=a.transactionID){const e=i$j._fromProtobuf(a.transactionID);o.includes(e.toString())||(r.push(e),o.push(e.toString()))}if(null!=a.nodeAccountID){const e=f$8._fromProtobuf(a.nodeAccountID);i.includes(e.toString())||(n.push(e),i.push(e.toString()))}if(null==a.data)throw new Error("(BUG) body.data was not set in the protobuf");s.push(a)}}const c=s[0];if(null==c||null==c.data)throw new Error("No transaction found in bytes or failed to decode TransactionBody");const u=k$7.get(c.data);if(null==u)throw new Error(`(BUG) Transaction.fromBytes() not implemented for type ${c.data}`);return u(a,t,r,n,s)}schedule(){if(this._requireNotFrozen(),1!=F$4.length)throw new Error("ScheduleCreateTransaction has not been loaded yet");return F$4[0]()._setScheduledTransaction(this)}async batchify(e,t){return this._requireNotFrozen(),this.setBatchKey(t),await this.signWithOperator(e)}static _fromProtobufTransactions(e,t,r,n,o,i){var s;const a=i[0];for(let u=0;unew Long(0,0,!0)?e$A.fromTinybars(a.transactionFee):null,e._customFeeLimits=null!=a.maxCustomFees?null==(s=a.maxCustomFees)?void 0:s.map((e=>o$s._fromProtobuf(e))):[],e._batchKey=null!=a.batchKey?t$y._fromProtobufKey(null==a?void 0:a.batchKey):null,e._transactionMemo=null!=a.memo?a.memo:"";for(let u=0;uPromise.resolve(e.sign(t))))}async signWith(e,t){this._signOnDemand||this._requireFrozen();const r=n$C(e.toBytesRaw());if(this._signerPublicKeys.has(r))return this;if(this._transactions.clear(),this._signerPublicKeys.add(r),this._publicKeys.push(e),this._transactionSigners.push(t),this._signOnDemand)return this;this._transactionIds.setLocked(),this._nodeAccountIds.setLocked();for(const n of this._signedTransactions.list){const r=n.bodyBytes,o=await t(r);null==n.sigMap&&(n.sigMap={}),null==n.sigMap.sigPair&&(n.sigMap.sigPair=[]),n.sigMap.sigPair.push(e._toProtobufSignature(o))}return this}signWithOperator(e){const t=e._operator;if(null==t)throw new Error("`client` must have an operator to sign with the operator");return this._isFrozen()||this.freezeWith(e),this.signWith(t.publicKey,t.transactionSigner)}_resetTransaction(e){var t;if(!e.operatorAccountId)throw new Error("Client must have an operator account ID");null==(t=this.logger)||t.info("Resetting transaction id and resigning");const r=i$j.generate(e.operatorAccountId);this._transactionIds.clear(),this._signedTransactions.clear(),this._transactionIds.setList([r]),this._isThrottled=!0}addSignature(e,t){var r,n;if(!(t instanceof e$C))return this._addSignatureLegacy(e,t);this.isFrozen()||this.freeze();const o=n$C(e.toBytesRaw());if(this._signerPublicKeys.has(o))return this;this._transactions.clear(),this._transactionIds.setLocked(),this._nodeAccountIds.setLocked(),this._signedTransactions.setLocked();for(let i=0;i1)throw new Error("Add signature is not supported for chunked transactions");if(r&&1!==this._signedTransactions.length)throw new Error("Signature array must match the number of transactions");if(n&&t.length!==this._signedTransactions.length)throw new Error("Signature array must match the number of transactions");this.isFrozen()||this.freeze();const o=n$C(e.toBytesRaw());if(this._signerPublicKeys.has(o))return this;this._transactions.clear(),this._transactionIds.setLocked(),this._nodeAccountIds.setLocked(),this._signedTransactions.setLocked();const i=r?[t]:t;for(let s=0;s!t.equals(e))),this._transactionSigners.pop(),r}removeAllSignatures(){this.isFrozen()||this.freeze();const e=this._collectSignaturesByPublicKey();for(const t of this._signedTransactions.list)t.sigMap&&t.sigMap.sigPair&&(t.sigMap.sigPair=[]);return this._signerPublicKeys.clear(),this._publicKeys=[],this._transactionSigners=[],e}getSignatures(e){return e?this.getSignaturesLegacy():(this._requireFrozen(),this._requireNotSignOnDemand(),this._buildAllTransactions(),this._transactionIds.setLocked(),this._nodeAccountIds.setLocked(),e$C._fromTransaction(this))}async getSignaturesAsync(){return this._transactionIds.setLocked(),this._nodeAccountIds.setLocked(),await this._buildAllTransactionsAsync(),this._transactions.setLocked(),this._signedTransactions.setLocked(),e$C._fromTransaction(this)}_setTransactionId(){if(null==this._operatorAccountId&&this._transactionIds.isEmpty)throw new Error("`transactionId` must be set or `client` must be provided with `freezeWith`")}_setNodeAccountIds(e){if(this._nodeAccountIds.isEmpty){if(null==e)throw new Error("`nodeAccountId` must be set or `client` must be provided with `freezeWith`");this._nodeAccountIds.setList(e._network.getNodeAccountIdsForExecute())}}setBatchKey(e){return this._requireNotFrozen(),this._batchKey=e,this}get batchKey(){return this._batchKey}_buildSignedTransactions(){this._signedTransactions.locked||this._signedTransactions.setList(this._nodeAccountIds.list.map((e=>this._makeSignedTransaction(e))))}_buildIncompleteTransactions(){0==this._nodeAccountIds.length?this._transactions.setList([this._makeSignedTransaction(null)]):this._transactions.setList(this._nodeAccountIds.list.map((e=>this._makeSignedTransaction(e))))}freeze(){return this.freezeWith(null)}_freezeWithAccountId(e){null==this._operatorAccountId&&(this._operatorAccountId=e)}freezeWith(e){if(this._signOnDemand=null!=e&&e.signOnDemand,this._operator=null!=e?e._operator:null,this._freezeWithAccountId(null!=e?e.operatorAccountId:null),this._maxTransactionFee=null==this._maxTransactionFee?null!=e&&null!=e.defaultMaxTransactionFee?e.defaultMaxTransactionFee:this._defaultMaxTransactionFee:this._maxTransactionFee,this._regenerateTransactionId=null!=e&&null==this._regenerateTransactionId?e.defaultRegenerateTransactionId:this._regenerateTransactionId,this.batchKey?this._nodeAccountIds.setList([S$9]):this._setNodeAccountIds(e),this._setTransactionId(),null!=e)for(const t of this._transactionIds.list)null!=t.accountId&&t.accountId.validateChecksum(e);return this._buildNewTransactionIdList(),this._signOnDemand||this._buildSignedTransactions(),this}async signWithSigner(e){return await e.signTransaction(this),this}async freezeWithSigner(e){return await e.populateTransaction(this),this.freeze(),this}toBytes(){return this._requireNotSignOnDemand(),this._isFrozen()?(this._transactionIds.setLocked(),this._nodeAccountIds.setLocked(),this._buildAllTransactions()):this._buildIncompleteTransactions(),proto_1.TransactionList.encode({transactionList:this._transactions.list}).finish()}async toBytesAsync(){return this._transactionIds.setLocked(),this._nodeAccountIds.setLocked(),await this._buildAllTransactionsAsync(),this._transactions.setLocked(),this._signedTransactions.setLocked(),proto_1.TransactionList.encode({transactionList:this._transactions.list}).finish()}async getTransactionHash(){return this._requireFrozen(),this._transactionIds.setLocked(),this._nodeAccountIds.setLocked(),await this._buildAllTransactionsAsync(),this._transactions.setLocked(),this._signedTransactions.setLocked(),t$o(this._transactions.get(0).signedTransactionBytes)}async getTransactionHashPerNode(){return this._requireFrozen(),this._transactionIds.setLocked(),this._nodeAccountIds.setLocked(),await this._buildAllTransactionsAsync(),await n$r._fromTransaction(this)}isFrozen(){return this._signedTransactions.length>0}_getTransactionId(){const e=this.transactionId;if(null==e)throw new Error("transaction must have been frozen before getting the transaction ID, try calling `freeze`");return e}_validateChecksums(e){}async _beforeExecute(e){this.transactionNodeIds=Object.values(e.network).map((e=>e.toString())),this._logger&&this._logger.info(`Network used: ${e._network.networkName}`),this._isFrozen()||this.freezeWith(e),e.isAutoValidateChecksumsEnabled()&&this._validateChecksums(e),null!=this._operator&&null!=this._operator||(this._operator=null!=e?e._operator:null),null!=this._operatorAccountId&&null!=this._operatorAccountId||(this._operatorAccountId=null!=e&&null!=e._operator?e._operator.accountId:null),null!=this._operator&&await this.signWith(this._operator.publicKey,this._operator.transactionSigner)}async _makeRequestAsync(){const e=this._transactionIds.index*this._nodeAccountIds.length+this._nodeAccountIds.index;return this._signOnDemand||this._isThrottled?await this._buildTransactionAsync():(this._buildTransaction(e),this._transactions.get(e))}async _signTransaction(){const e=this._makeSignedTransaction(this._nodeAccountIds.next),t=e.bodyBytes;for(let r=0;r({signedTransactionBytes:proto_1.SignedTransaction.encode(this._signedTransactions.get(e)).finish()})))}async _buildTransactionAsync(){return{signedTransactionBytes:proto_1.SignedTransaction.encode(await this._signTransaction()).finish()}}_shouldRetry(e,t){const{nodeTransactionPrecheckCode:r}=t,n=e$z._fromCode(null!=r?r:proto_1.ResponseCodeEnum.OK);switch(this._logger&&(this._logger.debug(`[${this._getLogId()}] received status ${n.toString()}`),this._logger.info(`SDK Transaction Status Response: ${n.toString()}`)),n){case e$z.Busy:case e$z.Unknown:case e$z.PlatformTransactionNotCreated:case e$z.PlatformNotActive:return[n,c$h.Retry];case e$z.Ok:return[n,c$h.Finished];case e$z.TransactionExpired:return this._transactionIds.locked||null!=this._regenerateTransactionId&&!this._regenerateTransactionId?[n,c$h.Error]:(this._buildNewTransactionIdList(),[n,c$h.Retry]);default:return[n,c$h.Error]}}_mapStatusError(e,t,r){const{nodeTransactionPrecheckCode:n}=t,o=e$z._fromCode(null!=n?n:proto_1.ResponseCodeEnum.OK);return this._logger&&this._logger.info(`Transaction Error Info: ${o.toString()}, ${this.transactionId.toString()}`),new n$y({nodeId:r,status:o,transactionId:this._getTransactionId(),contractFunctionResult:null})}async _mapResponse(e,t,r){const n=await t$o(r.signedTransactionBytes),o=this._getTransactionId();return this._transactionIds.advance(),this._logger&&this._logger.info(`Transaction Info: ${JSON.stringify(new h$9({nodeId:t,transactionHash:n,transactionId:o,logger:this._logger}).toJSON())}`),new h$9({nodeId:t,transactionHash:n,transactionId:o,transaction:this,logger:this._logger})}_makeSignedTransaction(e){const t=this._makeTransactionBody(e);return this._logger&&this._logger.info(`Transaction Body: ${JSON.stringify(t)}`),{sigMap:{sigPair:[]},bodyBytes:proto_1.TransactionBody.encode(t).finish()}}isBatchedAndNotBatchTransaction(){return null!=this.batchKey&&"atomicBatch"!=this._getTransactionDataCase()}_makeTransactionBody(e){var t;return{[this._getTransactionDataCase()]:this._makeTransactionData(),transactionFee:null!=this._maxTransactionFee?this._maxTransactionFee.toTinybars():null,memo:this._transactionMemo,transactionID:null!=this._transactionIds.current?this._transactionIds.current._toProtobuf():null,nodeAccountID:null!=e?e._toProtobuf():null,transactionValidDuration:{seconds:Long.fromNumber(this._transactionValidDuration)},maxCustomFees:null!=this._customFeeLimits?this._customFeeLimits.map((e=>e._toProtobuf())):null,batchKey:null==(t=this.batchKey)?void 0:t._toProtobufKey()}}_getTransactionDataCase(){throw new Error("not implemented")}_getScheduledTransactionBody(){return{memo:this.transactionMemo,transactionFee:null==this._maxTransactionFee?this._defaultMaxTransactionFee.toTinybars():this._maxTransactionFee.toTinybars(),[this._getTransactionDataCase()]:this._makeTransactionData()}}_makeTransactionData(){throw new Error("not implemented")}_isFrozen(){return this._signOnDemand||this._signedTransactions.length>0}_requireNotFrozen(){if(this._isFrozen())throw new Error("transaction is immutable; it has at least one signature or has been explicitly frozen")}_requireNotSignOnDemand(){if(this._signOnDemand)throw new Error("Please use `toBytesAsync()` if `signOnDemand` is enabled")}_requireFrozen(){if(!this._isFrozen())throw new Error("transaction must have been frozen before calculating the hash will be stable, try calling `freeze`")}_requireOneNodeAccountId(){if(1!=this._nodeAccountIds.length)throw"transaction did not have exactly one node ID set"}_requestToBytes(e){return proto_1.Transaction.encode(e).finish()}_responseToBytes(e){return proto_1.TransactionResponse.encode(e).finish()}_removeSignaturesFromTransaction(e,t){const r=[];return e.sigMap&&e.sigMap.sigPair?(e.sigMap.sigPair=e.sigMap.sigPair.filter((e=>{const n=this._shouldRemoveSignature(e,t),o=e.ed25519??e.ECDSASecp256k1;return n&&o&&r.push(o),!n})),r):[]}_collectSignaturesByPublicKey(){const e=new Map,t={};for(const r of this._signedTransactions.list){if(!r.sigMap||!r.sigMap.sigPair)return new Map;for(const n of r.sigMap.sigPair){const r=n.ed25519??n.ECDSASecp256k1;if(!r||!n.pubKeyPrefix)return new Map;const o=n$C(n.pubKeyPrefix);let i=t[o];i||(i=i$m.fromString(o),t[o]=i),e.has(i)||e.set(i,[]);const s=e.get(i);s&&s.push(r)}}return e}};const F$4=[];let t$m=class e{constructor(e){this.tokenId=e.tokenId instanceof u$i?e.tokenId:u$i.fromString(e.tokenId),this.senderAccountId=e.senderAccountId instanceof f$8?e.senderAccountId:f$8.fromString(e.senderAccountId),this.receiverAccountId=e.receiverAccountId instanceof f$8?e.receiverAccountId:f$8.fromString(e.receiverAccountId),this.serialNumber=Long.fromValue(e.serialNumber),this.isApproved=e.isApproved}static _fromProtobuf(t){const r=[];for(const n of t){const t=u$i._fromProtobuf(n.token);for(const o of null!=n.nftTransfers?n.nftTransfers:[])r.push(new e({tokenId:t,senderAccountId:f$8._fromProtobuf(o.senderAccountID),receiverAccountId:f$8._fromProtobuf(o.receiverAccountID),serialNumber:null!=o.serialNumber?o.serialNumber:Long.ZERO,isApproved:1==o.isApproval}))}return r}_toProtobuf(){return{senderAccountID:this.senderAccountId._toProtobuf(),receiverAccountID:this.receiverAccountId._toProtobuf(),serialNumber:this.serialNumber,isApproval:this.isApproved}}},t$l=class extends t$x{constructor(){super((e=>u$i.fromString(e)))}},u$f=class extends P$5{constructor(e={}){super(),this._tokenTransfers=[],this._nftTransfers=[];for(const t of null!=e.tokenTransfers?e.tokenTransfers:[])this.addTokenTransfer(t.tokenId,t.accountId,t.amount);for(const t of null!=e.nftTransfers?e.nftTransfers:[])this.addNftTransfer(t.tokenId,t.serial,t.sender,t.recipient)}addNftTransfer(e,t,r,n){return this._addNftTransfer(!1,e,t,r,n)}_addTokenTransfer(e,t,r,n,o){this._requireNotFrozen();const i=e instanceof u$i?e:u$i.fromString(e),s=t instanceof f$8?t:f$8.fromString(t),a=r instanceof Long?r:Long.fromNumber(r);for(const c of this._tokenTransfers)if(0===c.tokenId.compare(i)&&0===c.accountId.compare(s))return c.amount=c.amount.add(a),c.expectedDecimals=o,this;return this._tokenTransfers.push(new n$s({tokenId:e,accountId:t,expectedDecimals:o,amount:r,isApproved:n})),this}addTokenTransfer(e,t,r){return this._addTokenTransfer(e,t,r,!1,null)}_addNftTransfer(e,t,r,n,o){let i,s,a;if(this._requireNotFrozen(),t instanceof e$v)i=t,s="string"==typeof r?f$8.fromString(r):r,a="string"==typeof n?f$8.fromString(n):n;else if(t instanceof u$i)i=new e$v(t,r),s="string"==typeof n?f$8.fromString(n):n,a="string"==typeof o?f$8.fromString(o):o;else try{i=e$v.fromString(t),s="string"==typeof r?f$8.fromString(r):r,a="string"==typeof n?f$8.fromString(n):n}catch(c){const e=u$i.fromString(t);i=new e$v(e,r),s="string"==typeof n?f$8.fromString(n):n,a="string"==typeof o?f$8.fromString(o):o}for(const u of this._nftTransfers)if(0===u.tokenId.compare(i.tokenId)&&0===u.serialNumber.compare(i.serial))return u.senderAccountId=s,u.receiverAccountId=a,this;return this._nftTransfers.push(new t$m({tokenId:i.tokenId,serialNumber:i.serial,senderAccountId:s,receiverAccountId:a,isApproved:e})),this}addApprovedNftTransfer(e,t,r,n){return this._addNftTransfer(!0,e,t,r,n)}addApprovedTokenTransfer(e,t,r){return this._addTokenTransfer(e,t,r,!0,null)}addTokenTransferWithDecimals(e,t,r,n){this._requireNotFrozen();const o=e instanceof u$i?e:u$i.fromString(e),i=t instanceof f$8?t:f$8.fromString(t),s=r instanceof Long?r:Long.fromNumber(r);let a=!1;for(const c of this._tokenTransfers)if(0===c.tokenId.compare(o)){if(null!=c.expectedDecimals&&c.expectedDecimals!==n)throw new Error("expected decimals mis-match");c.expectedDecimals=n,0===c.accountId.compare(i)&&(c.amount=c.amount.add(s),c.expectedDecimals=n,a=!0)}return a||this._tokenTransfers.push(new n$s({tokenId:e,accountId:t,expectedDecimals:n,amount:r,isApproved:!1})),this}get tokenIdDecimals(){const e=new t$l;for(const t of this._tokenTransfers)e._set(t.tokenId,t.expectedDecimals);return e}get nftTransfers(){const e=new s$o;for(const t of this._nftTransfers){const r=e.get(t.tokenId),n={sender:t.senderAccountId,recipient:t.receiverAccountId,serial:t.serialNumber,isApproved:t.isApproved};null!=r?r.push(n):e._set(t.tokenId,[n])}return e}get tokenTransfers(){const e=new n$u;for(const t of this._tokenTransfers){let r=e.get(t.tokenId);null!=r?r._set(t.accountId,t.amount):(r=new o$t,r._set(t.accountId,t.amount),e._set(t.tokenId,r))}return e}_makeTransactionData(){const e=[];this._tokenTransfers.sort(((e,t)=>{const r=e.tokenId.compare(t.tokenId);return 0!==r?r:e.accountId.compare(t.accountId)})),this._nftTransfers.sort(((e,t)=>{const r=e.senderAccountId.compare(t.senderAccountId);if(0!=r)return r;const n=e.receiverAccountId.compare(t.receiverAccountId);return 0!=n?n:e.serialNumber.compare(t.serialNumber)}));let t=0,r=0;for(;t0?e[e.length-1]:null,s=null!=i?i.tokenId:null;if(null!=i&&null!=s&&0===s.compare(n)){i.transfers.push(this._tokenTransfers[t++]);continue}if(null!=i&&null!=s&&0===s.compare(o)){i.nftTransfers.push(this._nftTransfers[r++]);continue}const a=n.compare(o);0===a?e.push({tokenId:n,expectedDecimals:this._tokenTransfers[t].expectedDecimals,transfers:[this._tokenTransfers[t++]],nftTransfers:[this._nftTransfers[r++]]}):a<0?e.push({tokenId:n,expectedDecimals:this._tokenTransfers[t].expectedDecimals,transfers:[this._tokenTransfers[t++]],nftTransfers:[]}):e.push({tokenId:o,expectedDecimals:null,transfers:[],nftTransfers:[this._nftTransfers[r++]]})}else if(t({token:e.tokenId._toProtobuf(),expectedDecimals:null!=e.expectedDecimals?{value:e.expectedDecimals}:null,transfers:e.transfers.map((e=>e._toProtobuf())),nftTransfers:e.nftTransfers.map((e=>e._toProtobuf()))})))}}},s$m=class e extends u$f{constructor(e={}){if(super(),null!=e.tokenTransfers)for(const t of e.tokenTransfers)this._addTokenTransfer(t.tokenId,t.accountId,t.amount,t.isApproved,t.expectedDecimals);if(this._nftTransfers=[],null!=e.nftTransfers)for(const t of e.nftTransfers)this._addNftTransfer(t.isApproved,t.tokenId,t.serialNumber,t.senderAccountId,t.receiverAccountId)}addApprovedTokenTransferWithDecimals(e,t,r,n){return this._requireNotFrozen(),this._addTokenTransfer(e,t,r,!0,n),this}static _fromProtobuf(t,r,n,o,i){const s=i[0].tokenAirdrop,a=n$s._fromProtobuf(s.tokenTransfers??[]),c=t$m._fromProtobuf(s.tokenTransfers??[]);return P$5._fromProtobufTransactions(new e({nftTransfers:c,tokenTransfers:a}),t,r,n,o,i)}_execute(e,t){return e.token.airdropTokens(t)}_getTransactionDataCase(){return"tokenAirdrop"}_getLogId(){return`TokenAirdropTransaction:${this._transactionIds.current.validStart.toString()}`}};k$7.set("tokenAirdrop",s$m._fromProtobuf);let d$f=class extends P$5{constructor(e){super(),this._pendingAirdropIds=[],null!=(null==e?void 0:e.pendingAirdropIds)&&(this._pendingAirdropIds=e.pendingAirdropIds)}get pendingAirdropIds(){return this._pendingAirdropIds}addPendingAirdropId(e){return this._requireNotFrozen(),this._pendingAirdropIds.push(e),this}setPendingAirdropIds(e){return this._requireNotFrozen(),this._pendingAirdropIds=e,this}},i$h=class e extends d$f{constructor(e={}){super(e)}_execute(e,t){return e.token.claimAirdrop(t)}_makeTransactionData(){return{pendingAirdrops:this.pendingAirdropIds.map((e=>e.toBytes()))}}static _fromProtobuf(t,r,n,o,i){const s=i[0],{pendingAirdrops:a}=s.tokenClaimAirdrop;return P$5._fromProtobufTransactions(new e({pendingAirdropIds:null==a?void 0:a.map((e=>t$p.fromBytes(e)))}),t,r,n,o,i)}_getTransactionDataCase(){return"tokenClaimAirdrop"}_getLogId(){return`TokenClaimAirdropTransaction:${this._transactionIds.current.validStart.toString()}`}};k$7.set("tokenClaimAirdrop",i$h._fromProtobuf);let e$t=class e extends d$f{constructor(e={}){super(e)}_makeTransactionData(){return{pendingAirdrops:this.pendingAirdropIds.map((e=>e.toBytes()))}}_execute(e,t){return e.token.cancelAirdrop(t)}_getTransactionDataCase(){return"tokenCancelAirdrop"}static _fromProtobuf(t,r,n,o,i){const s=i[0],{pendingAirdrops:a}=s.tokenCancelAirdrop;return P$5._fromProtobufTransactions(new e({pendingAirdropIds:null==a?void 0:a.map((e=>t$p.fromBytes(e)))}),t,r,n,o,i)}_getLogId(){return`TokenCancelAirdrop:${this._transactionIds.current.validStart.toString()}`}};k$7.set("tokenCancelAirdrop",e$t._fromProtobuf);let o$r=class e{constructor(e){this.spenderAccountId=e.spenderAccountId,this.ownerAccountId=e.ownerAccountId,this.amount=e.amount,Object.freeze(this)}static _fromProtobuf(t){return new e({spenderAccountId:f$8._fromProtobuf(t.spender),ownerAccountId:null!=t.owner?f$8._fromProtobuf(t.owner):null,amount:e$A.fromTinybars(null!=t.amount?t.amount:0)})}static _fromGrantedProtobuf(t,r){return new e({spenderAccountId:f$8._fromProtobuf(t.spender),ownerAccountId:r,amount:e$A.fromTinybars(null!=t.amount?t.amount:0)})}_toProtobuf(){return{owner:null!=this.ownerAccountId?this.ownerAccountId._toProtobuf():null,spender:null!=this.spenderAccountId?this.spenderAccountId._toProtobuf():null,amount:null!=this.amount?this.amount.toTinybars():null}}_validateChecksums(e){null!=this.spenderAccountId&&this.spenderAccountId.validateChecksum(e),null!=this.spenderAccountId&&this.spenderAccountId.validateChecksum(e)}toJSON(){return{ownerAccountId:null!=this.ownerAccountId?this.ownerAccountId.toString():null,spenderAccountId:null!=this.spenderAccountId?this.spenderAccountId.toString():null,amount:null!=this.amount?this.amount.toString():null}}},e$s=class e{constructor(e){this.tokenId=e.tokenId,this.spenderAccountId=e.spenderAccountId,this.ownerAccountId=e.ownerAccountId,this.amount=e.amount,Object.freeze(this)}static _fromProtobuf(t){return new e({tokenId:u$i._fromProtobuf(t.tokenId),spenderAccountId:f$8._fromProtobuf(t.spender),ownerAccountId:null!=t.owner?f$8._fromProtobuf(t.owner):null,amount:null!=t.amount?Long.fromValue(t.amount):null})}static _fromGrantedProtobuf(t,r){return new e({tokenId:u$i._fromProtobuf(t.tokenId),spenderAccountId:f$8._fromProtobuf(t.spender),ownerAccountId:r,amount:null!=t.amount?Long.fromValue(t.amount):null})}_toProtobuf(){return{tokenId:this.tokenId._toProtobuf(),spender:null!=this.spenderAccountId?this.spenderAccountId._toProtobuf():null,owner:null!=this.ownerAccountId?this.ownerAccountId._toProtobuf():null,amount:this.amount}}_validateChecksums(e){this.tokenId.validateChecksum(e),null!=this.ownerAccountId&&this.ownerAccountId.validateChecksum(e),null!=this.spenderAccountId&&this.spenderAccountId.validateChecksum(e)}},o$q=class e{constructor(e){this.tokenId=e.tokenId,this.spenderAccountId=e.spenderAccountId,this.ownerAccountId=e.ownerAccountId,this.serialNumbers=e.serialNumbers,this.allSerials=e.allSerials,this.delegatingSpender=e.delegatingSpender,Object.freeze(this)}static _fromProtobuf(t){const r=null!=t.approvedForAll&&1==t.approvedForAll.value;return new e({tokenId:u$i._fromProtobuf(t.tokenId),spenderAccountId:null!=t.spender?f$8._fromProtobuf(t.spender):null,ownerAccountId:null!=t.owner?f$8._fromProtobuf(t.owner):null,serialNumbers:r?null:null!=t.serialNumbers?t.serialNumbers.map((e=>Long.fromValue(e))):[],allSerials:r,delegatingSpender:null!=t.delegatingSpender?f$8._fromProtobuf(t.delegatingSpender):null})}static _fromGrantedProtobuf(t,r){return new e({tokenId:u$i._fromProtobuf(t.tokenId),spenderAccountId:f$8._fromProtobuf(t.spender),ownerAccountId:r,serialNumbers:[],allSerials:null,delegatingSpender:null})}static _fromRemoveProtobuf(t){return new e({tokenId:u$i._fromProtobuf(t.tokenId),spenderAccountId:null,ownerAccountId:null!=t.owner?f$8._fromProtobuf(t.owner):null,serialNumbers:null!=t.serialNumbers?t.serialNumbers.map((e=>Long.fromValue(e))):[],allSerials:null,delegatingSpender:null})}_toProtobuf(){return{tokenId:this.tokenId._toProtobuf(),spender:null!=this.spenderAccountId?this.spenderAccountId._toProtobuf():null,owner:null!=this.ownerAccountId?this.ownerAccountId._toProtobuf():null,approvedForAll:null==this.serialNumbers?{value:this.allSerials}:null,serialNumbers:this.serialNumbers,delegatingSpender:null!=this.delegatingSpender?this.delegatingSpender._toProtobuf():null}}_validateChecksums(e){this.tokenId.validateChecksum(e),null!=this.ownerAccountId&&this.ownerAccountId.validateChecksum(e),null!=this.spenderAccountId&&this.spenderAccountId.validateChecksum(e)}},c$f=class e extends P$5{constructor(e={}){super(),this._hbarApprovals=null!=e.hbarApprovals?e.hbarApprovals:[],this._tokenApprovals=null!=e.tokenApprovals?e.tokenApprovals:[],this._nftApprovals=null!=e.nftApprovals?e.nftApprovals:[]}static _fromProtobuf(t,r,n,o,i){const s=i[0].cryptoApproveAllowance;return P$5._fromProtobufTransactions(new e({hbarApprovals:(null!=s.cryptoAllowances?s.cryptoAllowances:[]).map((e=>o$r._fromProtobuf(e))),tokenApprovals:(null!=s.tokenAllowances?s.tokenAllowances:[]).map((e=>e$s._fromProtobuf(e))),nftApprovals:(null!=s.nftAllowances?s.nftAllowances:[]).map((e=>o$q._fromProtobuf(e)))}),t,r,n,o,i)}get hbarApprovals(){return this._hbarApprovals}approveHbarAllowance(e,t,r){return this._requireNotFrozen(),this._hbarApprovals.push(new o$r({spenderAccountId:"string"==typeof t?f$8.fromString(t):t instanceof v$7?f$8.fromEvmAddress(t.shard,t.realm,t.toSolidityAddress()):t,ownerAccountId:"string"==typeof e?f$8.fromString(e):e instanceof v$7?f$8.fromEvmAddress(e.shard,e.realm,e.toSolidityAddress()):e,amount:r instanceof e$A?r:new e$A(r)})),this}addHbarAllowance(e,t){return this._requireNotFrozen(),this._hbarApprovals.push(new o$r({spenderAccountId:"string"==typeof e?f$8.fromString(e):e,amount:t instanceof e$A?t:new e$A(t),ownerAccountId:null})),this}get tokenApprovals(){return this._tokenApprovals}approveTokenAllowance(e,t,r,n){return this._requireNotFrozen(),this._tokenApprovals.push(new e$s({tokenId:"string"==typeof e?u$i.fromString(e):e,spenderAccountId:"string"==typeof r?f$8.fromString(r):r instanceof v$7?f$8.fromEvmAddress(r.shard,r.realm,r.toSolidityAddress()):r,ownerAccountId:"string"==typeof t?f$8.fromString(t):t instanceof v$7?f$8.fromEvmAddress(t.shard,t.realm,t.toSolidityAddress()):t,amount:"number"==typeof n?Long.fromNumber(n):n})),this}addTokenAllowance(e,t,r){return this._requireNotFrozen(),this._tokenApprovals.push(new e$s({tokenId:"string"==typeof e?u$i.fromString(e):e,spenderAccountId:"string"==typeof t?f$8.fromString(t):t,amount:"number"==typeof r?Long.fromNumber(r):r,ownerAccountId:null})),this}addTokenNftAllowance(e,t){return this._approveTokenNftAllowance(e,null,t,null)}get tokenNftApprovals(){return this._nftApprovals}_approveTokenNftAllowance(e,t,r,n){this._requireNotFrozen();const o="string"==typeof e?e$v.fromString(e):e,i="string"==typeof r?f$8.fromString(r):r instanceof v$7?f$8.fromEvmAddress(r.shard,r.realm,r.toSolidityAddress()):r;let s=!1;for(const a of this._nftApprovals)if(0===a.tokenId.compare(o.tokenId)&&null!=a.spenderAccountId&&0===a.spenderAccountId.compare(i)){null!=a.serialNumbers&&a.serialNumbers.push(o.serial),s=!0;break}return s||this._nftApprovals.push(new o$q({tokenId:o.tokenId,spenderAccountId:i,ownerAccountId:"string"==typeof t?f$8.fromString(t):t instanceof v$7?f$8.fromEvmAddress(t.shard,t.realm,t.toSolidityAddress()):t,serialNumbers:[o.serial],allSerials:!1,delegatingSpender:"string"==typeof n?f$8.fromString(n):n})),this}approveTokenNftAllowance(e,t,r){return this._approveTokenNftAllowance(e,t,r,null)}approveTokenNftAllowanceWithDelegatingSpender(e,t,r,n){return this._approveTokenNftAllowance(e,t,r,n)}_approveAllTokenNftAllowance(e,t,r,n){return this._requireNotFrozen(),this._nftApprovals.push(new o$q({tokenId:"string"==typeof e?u$i.fromString(e):e,spenderAccountId:"string"==typeof r?f$8.fromString(r):r instanceof v$7?f$8.fromEvmAddress(r.shard,r.realm,r.toSolidityAddress()):r,ownerAccountId:"string"==typeof t?f$8.fromString(t):t instanceof v$7?f$8.fromEvmAddress(t.shard,t.realm,t.toSolidityAddress()):t,serialNumbers:null,allSerials:n,delegatingSpender:null})),this}addAllTokenNftAllowance(e,t,r){return this._approveAllTokenNftAllowance(e,t,r,!0)}approveTokenNftAllowanceAllSerials(e,t,r){return this._approveAllTokenNftAllowance(e,t,r,!0)}deleteTokenNftAllowanceAllSerials(e,t,r){return this._approveAllTokenNftAllowance(e,t,r,!1)}_validateChecksums(e){this._hbarApprovals.map((t=>t._validateChecksums(e))),this._tokenApprovals.map((t=>t._validateChecksums(e))),this._nftApprovals.map((t=>t._validateChecksums(e)))}_execute(e,t){return e.crypto.approveAllowances(t)}_getTransactionDataCase(){return"cryptoApproveAllowance"}_makeTransactionData(){return{cryptoAllowances:this._hbarApprovals.map((e=>e._toProtobuf())),tokenAllowances:this._tokenApprovals.map((e=>e._toProtobuf())),nftAllowances:this._nftApprovals.map((e=>e._toProtobuf()))}}_getLogId(){return`AccountAllowanceApproveTransaction:${this._transactionIds.current.validStart.toString()}`}};k$7.set("cryptoApproveAllowance",c$f._fromProtobuf);let r$y=class e extends P$5{constructor(e={}){super(),this._nftAllowances=null!=e.nftAllowances?e.nftAllowances:[]}static _fromProtobuf(t,r,n,o,i){const s=i[0].cryptoDeleteAllowance;return P$5._fromProtobufTransactions(new e({nftAllowances:(null!=s.nftAllowances?s.nftAllowances:[]).map((e=>o$q._fromProtobuf(e)))}),t,r,n,o,i)}get tokenNftAllowanceDeletions(){return this._nftAllowances}deleteAllTokenNftAllowances(e,t){this._requireNotFrozen();const r="string"==typeof e?e$v.fromString(e):e,n="string"==typeof t?f$8.fromString(t):t;let o=!1;for(const i of this._nftAllowances)if(0===i.tokenId.compare(r.tokenId)){null!=i.serialNumbers&&i.serialNumbers.push(r.serial),o=!0;break}return o||this._nftAllowances.push(new o$q({tokenId:r.tokenId,spenderAccountId:null,serialNumbers:[r.serial],ownerAccountId:n,allSerials:!1,delegatingSpender:null})),this}_validateChecksums(e){this._nftAllowances.map((t=>t._validateChecksums(e)))}_execute(e,t){return e.crypto.deleteAllowances(t)}_getTransactionDataCase(){return"cryptoDeleteAllowance"}_makeTransactionData(){return{nftAllowances:this._nftAllowances.map((e=>e._toProtobuf()))}}_getLogId(){return`AccountAllowanceDeleteTransaction:${this._transactionIds.current.validStart.toString()}`}};k$7.set("cryptoDeleteAllowance",r$y._fromProtobuf);let t$k=class extends t$x{constructor(){super((e=>u$i.fromString(e)))}},t$j=class extends t$x{constructor(){super((e=>u$i.fromString(e)))}},a$h=class e{constructor(e){this.hbars=e.hbars,this.tokens=e.tokens,this.tokenDecimals=e.tokenDecimals,Object.freeze(this)}static fromBytes(t){return e._fromProtobuf(proto_1.CryptoGetAccountBalanceResponse.decode(t))}static _fromProtobuf(t){const r=new t$k,n=new t$j;if(null!=t.tokenBalances)for(const e of t.tokenBalances){const t=u$i._fromProtobuf(e.tokenId);n._set(t,null!=e.decimals?e.decimals:0),r._set(t,Long.fromValue(e.balance))}return new e({hbars:e$A.fromTinybars(t.balance),tokens:r,tokenDecimals:n})}_toProtobuf(){const e=[];for(const[t,r]of null!=this.tokens?this.tokens:[])e.push({tokenId:t._toProtobuf(),balance:r,decimals:null!=this.tokenDecimals?this.tokenDecimals.get(t):null});return{balance:this.hbars.toTinybars(),tokenBalances:e}}toBytes(){return proto_1.CryptoGetAccountBalanceResponse.encode(this._toProtobuf()).finish()}toString(){return JSON.stringify(this.toJSON())}toJSON(){const e=[];for(const[t,r]of null!=this.tokens?this.tokens:[]){const n=null!=this.tokenDecimals?this.tokenDecimals.get(t):null;e.push({tokenId:t.toString(),balance:r.toString(),decimals:null!=n?n:0})}return{hbars:this.hbars.toString(),tokens:e}}},e$r=class e extends h$b{constructor(e={}){super(),this._accountId=null,this._contractId=null,null!=e.accountId&&this.setAccountId(e.accountId),null!=e.contractId&&this.setContractId(e.contractId)}static _fromProtobuf(t){const r=t.cryptogetAccountBalance;return new e({accountId:null!=r.accountID?f$8._fromProtobuf(r.accountID):void 0,contractId:null!=r.contractID?v$7._fromProtobuf(r.contractID):void 0})}get accountId(){return this._accountId}setAccountId(e){return this._accountId="string"==typeof e?f$8.fromString(e):e.clone(),this}get contractId(){return this._contractId}setContractId(e){return this._contractId="string"==typeof e?v$7.fromString(e):e.clone(),this}_isPaymentRequired(){return!1}_validateChecksums(e){null!=this._accountId&&this._accountId.validateChecksum(e),null!=this._contractId&&this._contractId.validateChecksum(e)}_execute(e,t){return e.crypto.cryptoGetBalance(t)}_mapResponseHeader(e){return e.cryptogetAccountBalance.header}_mapResponse(e,t,r){const n=e.cryptogetAccountBalance;return Promise.resolve(a$h._fromProtobuf(n))}_onMakeRequest(e){return{cryptogetAccountBalance:{header:e,accountID:null!=this._accountId?this._accountId._toProtobuf():null,contractID:null!=this._contractId?this._contractId._toProtobuf():null}}}_getLogId(){return`AccountBalanceQuery:${this._timestamp.toString()}`}};m$7.set("cryptogetAccountBalance",e$r._fromProtobuf);let s$l=class e{constructor(e){this.seconds=e instanceof Long?e:Long.fromNumber(e),Object.freeze(this)}_toProtobuf(){return{seconds:this.seconds}}static _fromProtobuf(t){return new e(t.seconds)}},h$8=class e extends P$5{constructor(e={}){super(),this._key=null,this._initialBalance=null,this._sendRecordThreshold=w$8,this._receiveRecordThreshold=w$8,this._receiverSignatureRequired=!1,this._proxyAccountId=null,this._autoRenewPeriod=new s$l(I$7),this._accountMemo=null,this._maxAutomaticTokenAssociations=null,this._stakedAccountId=null,this._stakedNodeId=null,this._declineStakingReward=!1,this._alias=null,null!=e.key&&this.setKeyWithoutAlias(e.key),null!=e.receiverSignatureRequired&&this.setReceiverSignatureRequired(e.receiverSignatureRequired),null!=e.initialBalance&&this.setInitialBalance(e.initialBalance),null!=e.proxyAccountId&&this.setProxyAccountId(e.proxyAccountId),null!=e.autoRenewPeriod&&this.setAutoRenewPeriod(e.autoRenewPeriod),null!=e.accountMemo&&this.setAccountMemo(e.accountMemo),null!=e.maxAutomaticTokenAssociations&&this.setMaxAutomaticTokenAssociations(e.maxAutomaticTokenAssociations),null!=e.stakedAccountId&&this.setStakedAccountId(e.stakedAccountId),null!=e.stakedNodeId&&this.setStakedNodeId(e.stakedNodeId),null!=e.declineStakingReward&&this.setDeclineStakingReward(e.declineStakingReward),null!=e.alias&&this.setAlias(e.alias)}static _fromProtobuf(t,r,n,o,i){const s=i[0].cryptoCreateAccount;let a;return null!=s.alias&&s.alias.length>0&&20===s.alias.length&&(a=i$k.fromBytes(s.alias)),P$5._fromProtobufTransactions(new e({key:null!=s.key?t$y._fromProtobufKey(s.key):void 0,initialBalance:null!=s.initialBalance?e$A.fromTinybars(s.initialBalance):void 0,receiverSignatureRequired:null!=s.receiverSigRequired?s.receiverSigRequired:void 0,proxyAccountId:null!=s.proxyAccountID?f$8._fromProtobuf(s.proxyAccountID):void 0,autoRenewPeriod:null!=s.autoRenewPeriod&&null!=s.autoRenewPeriod.seconds?s.autoRenewPeriod.seconds:void 0,accountMemo:null!=s.memo?s.memo:void 0,maxAutomaticTokenAssociations:null!=s.maxAutomaticTokenAssociations?s.maxAutomaticTokenAssociations:void 0,stakedAccountId:null!=s.stakedAccountId?f$8._fromProtobuf(s.stakedAccountId):void 0,stakedNodeId:null!=s.stakedNodeId?s.stakedNodeId:void 0,declineStakingReward:1==s.declineReward,alias:a}),t,r,n,o,i)}get key(){return this._key}setKey(e){return this._requireNotFrozen(),this._key=e,this}setECDSAKeyWithAlias(e){this.setKeyWithoutAlias(e);const t=this._deriveECDSAKeyAlias(e);return this.setAlias(t),this}setKeyWithAlias(e,t){this.setKeyWithoutAlias(e);const r=this._deriveECDSAKeyAlias(t);return this.setAlias(r),this}setKeyWithoutAlias(e){return this._requireNotFrozen(),this._key=e,this}get initialBalance(){return this._initialBalance}setInitialBalance(e){return this._requireNotFrozen(),this._initialBalance=e instanceof e$A?e:new e$A(e),this}get receiverSignatureRequired(){return this._receiverSignatureRequired}setReceiverSignatureRequired(e){return this._requireNotFrozen(),this._receiverSignatureRequired=e,this}get proxyAccountId(){return this._proxyAccountId}setProxyAccountId(e){return this._requireNotFrozen(),this._proxyAccountId=e,this}get autoRenewPeriod(){return this._autoRenewPeriod}setAutoRenewPeriod(e){return this._requireNotFrozen(),this._autoRenewPeriod=e instanceof s$l?e:new s$l(e),this}get accountMemo(){return this._accountMemo}setAccountMemo(e){return this._requireNotFrozen(),this._accountMemo=e,this}get maxAutomaticTokenAssociations(){return this._maxAutomaticTokenAssociations}setMaxAutomaticTokenAssociations(e){return this._requireNotFrozen(),this._maxAutomaticTokenAssociations="number"==typeof e?Long.fromNumber(e):e,this}get stakedAccountId(){return this._stakedAccountId}setStakedAccountId(e){return this._requireNotFrozen(),this._stakedAccountId="string"==typeof e?f$8.fromString(e):e,this}get stakedNodeId(){return this._stakedNodeId}setStakedNodeId(e){return this._requireNotFrozen(),this._stakedNodeId=Long.fromValue(e),this}get declineStakingRewards(){return this._declineStakingReward}setDeclineStakingReward(e){return this._requireNotFrozen(),this._declineStakingReward=e,this}get alias(){return this._alias}setAlias(e){if("string"==typeof e){if(!(e.startsWith("0x")&&42==e.length||40==e.length))throw new Error('evmAddress must be a valid EVM address with or without "0x" prefix');this._alias=i$k.fromString(e)}else this._alias=e;return this}_validateChecksums(e){null!=this._proxyAccountId&&this._proxyAccountId.validateChecksum(e)}_deriveECDSAKeyAlias(e){const t=e instanceof y$a&&"secp256k1"===e.type,r=e instanceof i$m&&"secp256k1"===e.type;if(t)return e.publicKey.toEvmAddress();if(r)return e.toEvmAddress();throw new Error("Invalid key for alias derivation provided: expected an ECDSA (secp256k1) PrivateKey or PublicKey.")}_execute(e,t){return e.crypto.createAccount(t)}_getTransactionDataCase(){return"cryptoCreateAccount"}_makeTransactionData(){let e=null;return null!=this._alias&&(e=this._alias.toBytes()),{key:null!=this._key?this._key._toProtobufKey():null,initialBalance:null!=this._initialBalance?this._initialBalance.toTinybars():null,autoRenewPeriod:this._autoRenewPeriod._toProtobuf(),proxyAccountID:null!=this._proxyAccountId?this._proxyAccountId._toProtobuf():null,receiveRecordThreshold:this._receiveRecordThreshold.toTinybars(),sendRecordThreshold:this._sendRecordThreshold.toTinybars(),receiverSigRequired:this._receiverSignatureRequired,memo:this._accountMemo,maxAutomaticTokenAssociations:null!=this._maxAutomaticTokenAssociations?this._maxAutomaticTokenAssociations.toInt():null,stakedAccountId:null!=this.stakedAccountId?this.stakedAccountId._toProtobuf():null,stakedNodeId:this.stakedNodeId,declineReward:this.declineStakingRewards,alias:e}}_getLogId(){return`AccountCreateTransaction:${this._transactionIds.current.validStart.toString()}`}};k$7.set("cryptoCreateAccount",h$8._fromProtobuf);let c$e=class e extends P$5{constructor(e={}){super(),this._accountId=null,this._transferAccountId=null,null!=e.accountId&&this.setAccountId(e.accountId),null!=e.transferAccountId&&this.setTransferAccountId(e.transferAccountId)}static _fromProtobuf(t,r,n,o,i){const s=i[0].cryptoDelete;return P$5._fromProtobufTransactions(new e({accountId:null!=s.deleteAccountID?f$8._fromProtobuf(s.deleteAccountID):void 0,transferAccountId:null!=s.transferAccountID?f$8._fromProtobuf(s.transferAccountID):void 0}),t,r,n,o,i)}get accountId(){return this._accountId}setAccountId(e){return this._requireNotFrozen(),this._accountId="string"==typeof e?f$8.fromString(e):e.clone(),this}get transferAccountId(){return this._transferAccountId}setTransferAccountId(e){return this._requireNotFrozen(),this._transferAccountId="string"==typeof e?f$8.fromString(e):e.clone(),this}_validateChecksums(e){null!=this._accountId&&this._accountId.validateChecksum(e),null!=this._transferAccountId&&this._transferAccountId.validateChecksum(e)}_execute(e,t){return e.crypto.cryptoDelete(t)}_getTransactionDataCase(){return"cryptoDelete"}_makeTransactionData(){return{deleteAccountID:null!=this._accountId?this._accountId._toProtobuf():null,transferAccountID:null!=this._transferAccountId?this._transferAccountId._toProtobuf():null}}_getLogId(){return`AccountDeleteTransaction:${this._transactionIds.current.validStart.toString()}`}};k$7.set("cryptoDelete",c$e._fromProtobuf);let r$x=class e{constructor(e){this._ledgerId=e,Object.freeze(this)}static fromString(t){switch(t){case n$q[0]:case"0":return e.MAINNET;case n$q[1]:case"1":return e.TESTNET;case n$q[2]:case"2":return e.PREVIEWNET;case n$q[3]:case"3":return e.LOCAL_NODE;default:{let r=r$G(t);if(0==r.length&&0!=t.length)throw new Error("Default reached for fromString");return new e(r)}}}toString(){if(1!=this._ledgerId.length)return n$C(this._ledgerId);switch(this._ledgerId[0]){case 0:return n$q[0];case 1:return n$q[1];case 2:return n$q[2];case 3:return n$q[3];default:return n$C(this._ledgerId)}}static fromBytes(t){return new e(t)}toBytes(){return this._ledgerId}isMainnet(){return this.toString()==n$q[0]}isTestnet(){return this.toString()==n$q[1]}isPreviewnet(){return this.toString()==n$q[2]}isLocalNode(){return this.toString()==n$q[3]}};const n$q=["mainnet","testnet","previewnet","local-node"];r$x.MAINNET=new r$x(new Uint8Array([0])),r$x.TESTNET=new r$x(new Uint8Array([1])),r$x.PREVIEWNET=new r$x(new Uint8Array([2])),r$x.LOCAL_NODE=new r$x(new Uint8Array([3]));let n$p=class e{constructor(e){this.declineStakingReward=e.declineStakingReward,this.stakePeriodStart=e.stakePeriodStart,this.pendingReward=e.pendingReward,this.stakedToMe=e.stakedToMe,this.stakedAccountId=e.stakedAccountId,this.stakedNodeId=e.stakedNodeId,Object.freeze(this)}static _fromProtobuf(t){return new e({declineStakingReward:1==t.declineReward,stakePeriodStart:null!=t.stakePeriodStart?s$r._fromProtobuf(t.stakePeriodStart):null,pendingReward:null!=t.pendingReward?e$A.fromTinybars(t.pendingReward):null,stakedToMe:null!=t.stakedToMe?e$A.fromTinybars(t.stakedToMe):null,stakedAccountId:null!=t.stakedAccountId?f$8._fromProtobuf(t.stakedAccountId):null,stakedNodeId:null!=t.stakedNodeId?t.stakedNodeId:null})}_toProtobuf(){return{declineReward:this.declineStakingReward,stakePeriodStart:null!=this.stakePeriodStart?this.stakePeriodStart._toProtobuf():null,pendingReward:null!=this.pendingReward?this.pendingReward.toTinybars():null,stakedToMe:null!=this.stakedToMe?this.stakedToMe.toTinybars():null,stakedAccountId:null!=this.stakedAccountId?this.stakedAccountId._toProtobuf():null,stakedNodeId:this.stakedNodeId}}static fromBytes(t){return e._fromProtobuf(proto_1.StakingInfo.decode(t))}toBytes(){return proto_1.StakingInfo.encode(this._toProtobuf()).finish()}toString(){return JSON.stringify(this.toJSON())}toJSON(){return{declineStakingReward:this.declineStakingReward,stakePeriodStart:null!=this.stakePeriodStart?this.stakePeriodStart.toString():null,pendingReward:null!=this.pendingReward?this.pendingReward.toString():null,stakedToMe:null!=this.stakedToMe?this.stakedToMe.toString():null,stakedAccountId:null!=this.stakedAccountId?this.stakedAccountId.toString():null,stakedNodeId:null!=this.stakedNodeId?this.stakedNodeId.toString():null}}},s$k=class e{constructor(e){this.accountId=e.accountId,this.hash=e.hash,this.keys=e.keys,this.duration=e.duration,Object.freeze(this)}static _fromProtobuf(t){const r=t;return new e({accountId:f$8._fromProtobuf(r.accountId),hash:null!=r.hash?r.hash:new Uint8Array,keys:null!=r.keys?s$q.__fromProtobufKeyList(r.keys):new s$q,duration:s$l._fromProtobuf(r.duration)})}_toProtobuf(){return{accountId:this.accountId._toProtobuf(),hash:this.hash,keys:this.keys._toProtobufKey().keyList,duration:this.duration._toProtobuf()}}},s$j=class e{constructor(e){this.tokenId=e.tokenId,this.symbol=e.symbol,this.balance=e.balance,this.isKycGranted=e.isKycGranted,this.isFrozen=e.isFrozen,this.automaticAssociation=e.automaticAssociation,Object.freeze(this)}static _fromProtobuf(t){const r=u$i._fromProtobuf(t.tokenId),n=null==t.kycStatus||0===t.kycStatus?null:1===t.kycStatus,o=null==t.freezeStatus||0===t.freezeStatus?null:1===t.freezeStatus;return new e({tokenId:r,symbol:t.symbol,balance:null!=t.balance?t.balance instanceof Long?t.balance:Long.fromValue(t.balance):Long.ZERO,isKycGranted:n,isFrozen:o,automaticAssociation:null!=t.automaticAssociation?t.automaticAssociation:null})}_toProtobuf(){return{tokenId:this.tokenId._toProtobuf(),symbol:this.symbol,balance:this.balance,kycStatus:null==this.isKycGranted?0:this.isKycGranted?1:2,freezeStatus:null==this.isFrozen?0:this.isFrozen?1:2,automaticAssociation:this.automaticAssociation}}},s$i=class e extends t$x{constructor(){super((e=>u$i.fromString(e)))}static _fromProtobuf(t){const r=new e;for(const e of t){const t=u$i._fromProtobuf(e.tokenId);r._set(t,s$j._fromProtobuf(e))}return r}_toProtobuf(){const e=[];for(const[t,r]of this)e.push(r._toProtobuf());return e}},d$e=class e{constructor(e){this.accountId=e.accountId,this.contractAccountId=e.contractAccountId,this.isDeleted=e.isDeleted,this.proxyAccountId=e.proxyAccountId,this.proxyReceived=e.proxyReceived,this.key=e.key,this.balance=e.balance,this.sendRecordThreshold=e.sendRecordThreshold,this.receiveRecordThreshold=e.receiveRecordThreshold,this.isReceiverSignatureRequired=e.isReceiverSignatureRequired,this.expirationTime=e.expirationTime,this.autoRenewPeriod=e.autoRenewPeriod,this.liveHashes=e.liveHashes,this.tokenRelationships=e.tokenRelationships,this.accountMemo=e.accountMemo,this.ownedNfts=e.ownedNfts,this.maxAutomaticTokenAssociations=e.maxAutomaticTokenAssociations,this.aliasKey=e.aliasKey,this.ledgerId=e.ledgerId,this.hbarAllowances=e.hbarAllowances,this.tokenAllowances=e.tokenAllowances,this.nftAllowances=e.nftAllowances,this.ethereumNonce=e.ethereumNonce,this.stakingInfo=e.stakingInfo,Object.freeze(this)}static _fromProtobuf(t){let r=null!=t.alias&&t.alias.length>0?t$y._fromProtobufKey(proto_1.Key.decode(t.alias)):null;r instanceof i$m||(r=null);const n=f$8._fromProtobuf(t.accountID);return new e({accountId:n,contractAccountId:null!=t.contractAccountID?t.contractAccountID:null,isDeleted:null!=t.deleted&&t.deleted,key:t$y._fromProtobufKey(t.key),balance:e$A.fromTinybars(null!=t.balance?t.balance:0),sendRecordThreshold:e$A.fromTinybars(null!=t.generateSendRecordThreshold?t.generateSendRecordThreshold:0),receiveRecordThreshold:e$A.fromTinybars(null!=t.generateReceiveRecordThreshold?t.generateReceiveRecordThreshold:0),isReceiverSignatureRequired:null!=t.receiverSigRequired&&t.receiverSigRequired,expirationTime:s$r._fromProtobuf(t.expirationTime),autoRenewPeriod:null!=t.autoRenewPeriod?new s$l(t.autoRenewPeriod.seconds):new s$l(0),proxyAccountId:null!=t.proxyAccountID&&0!==Long.fromValue(t.proxyAccountID.shardNum).toInt()&&0!==Long.fromValue(t.proxyAccountID.realmNum).toInt()&&0!==Long.fromValue(t.proxyAccountID.accountNum).toInt()?f$8._fromProtobuf(t.proxyAccountID):null,proxyReceived:e$A.fromTinybars(null!=t.proxyReceived?t.proxyReceived:0),liveHashes:(null!=t.liveHashes?t.liveHashes:[]).map((e=>s$k._fromProtobuf(e))),tokenRelationships:s$i._fromProtobuf(null!=t.tokenRelationships?t.tokenRelationships:[]),accountMemo:null!=t.memo?t.memo:"",ownedNfts:t.ownedNfts?t.ownedNfts:Long.ZERO,maxAutomaticTokenAssociations:t.maxAutomaticTokenAssociations?Long.fromNumber(t.maxAutomaticTokenAssociations):Long.ZERO,aliasKey:r,ledgerId:null!=t.ledgerId?r$x.fromBytes(t.ledgerId):null,hbarAllowances:[],tokenAllowances:[],nftAllowances:[],ethereumNonce:null!=t.ethereumNonce?t.ethereumNonce:null,stakingInfo:null!=t.stakingInfo?n$p._fromProtobuf(t.stakingInfo):null})}_toProtobuf(){return{accountID:this.accountId._toProtobuf(),contractAccountID:this.contractAccountId,deleted:this.isDeleted,proxyAccountID:null!=this.proxyAccountId?this.proxyAccountId._toProtobuf():null,proxyReceived:this.proxyReceived.toTinybars(),key:this.key._toProtobufKey(),balance:this.balance.toTinybars(),generateSendRecordThreshold:this.sendRecordThreshold.toTinybars(),generateReceiveRecordThreshold:this.receiveRecordThreshold.toTinybars(),receiverSigRequired:this.isReceiverSignatureRequired,expirationTime:this.expirationTime._toProtobuf(),autoRenewPeriod:this.autoRenewPeriod._toProtobuf(),liveHashes:this.liveHashes.map((e=>e._toProtobuf())),tokenRelationships:null!=this.tokenRelationships?this.tokenRelationships._toProtobuf():null,memo:this.accountMemo,ownedNfts:this.ownedNfts,maxAutomaticTokenAssociations:this.maxAutomaticTokenAssociations.toInt(),alias:null!=this.aliasKey?proto_1.Key.encode(this.aliasKey._toProtobufKey()).finish():null,ledgerId:null!=this.ledgerId?this.ledgerId.toBytes():null,ethereumNonce:this.ethereumNonce,stakingInfo:null!=this.stakingInfo?this.stakingInfo._toProtobuf():null}}static fromBytes(t){return e._fromProtobuf(proto_1.CryptoGetInfoResponse.AccountInfo.decode(t))}toBytes(){return proto_1.CryptoGetInfoResponse.AccountInfo.encode(this._toProtobuf()).finish()}toString(){return JSON.stringify(this.toJSON())}toJSON(){return{balance:this.balance.toString(),accountId:this.accountId.toString(),contractAccountId:this.contractAccountId,isDeleted:this.isDeleted,proxyAccountId:null!=this.proxyAccountId?this.proxyAccountId.toString():null,proxyReceived:this.proxyReceived.toString(),key:null!=this.key?this.key.toString():null,sendRecordThreshold:this.sendRecordThreshold.toString(),receiveRecordThreshold:this.receiveRecordThreshold.toString(),isReceiverSignatureRequired:this.isReceiverSignatureRequired,expirationTime:this.expirationTime.toString(),autoRenewPeriod:this.autoRenewPeriod.toString(),accountMemo:this.accountMemo,ownedNfts:this.ownedNfts.toString(),maxAutomaticTokenAssociations:this.maxAutomaticTokenAssociations.toString(),aliasKey:null!=this.aliasKey?this.aliasKey.toString():null,ledgerId:null!=this.ledgerId?this.ledgerId.toString():null,ethereumNonce:null!=this.ethereumNonce?this.ethereumNonce.toString():null,stakingInfo:null!=this.stakingInfo?this.stakingInfo.toJSON():null}}},c$d=class e extends h$b{constructor(e={}){super(),this._accountId=null,null!=e.accountId&&this.setAccountId(e.accountId)}static _fromProtobuf(t){const r=t.cryptoGetInfo;return new e({accountId:null!=r.accountID?f$8._fromProtobuf(r.accountID):void 0})}get accountId(){return this._accountId}setAccountId(e){return this._accountId="string"==typeof e?f$8.fromString(e):e.clone(),this}_validateChecksums(e){null!=this._accountId&&this._accountId.validateChecksum(e)}_execute(e,t){return e.crypto.getAccountInfo(t)}async getCost(e){return super.getCost(e)}_mapResponseHeader(e){return e.cryptoGetInfo.header}_mapResponse(e,t,r){const n=e.cryptoGetInfo;return Promise.resolve(d$e._fromProtobuf(n.accountInfo))}_onMakeRequest(e){return{cryptoGetInfo:{header:e,accountID:null!=this._accountId?this._accountId._toProtobuf():null}}}_getLogId(){return`AccountInfoQuery:${(null!=this._paymentTransactionId&&null!=this._paymentTransactionId.validStart?this._paymentTransactionId.validStart:this._timestamp).toString()}`}};m$7.set("cryptoGetInfo",c$d._fromProtobuf);let e$q=class e extends h$b{constructor(e={}){super(),this._accountId=null,null!=e.accountId&&this.setAccountId(e.accountId)}static _fromProtobuf(t){const r=t.cryptoGetAccountRecords;return new e({accountId:null!=r.accountID?f$8._fromProtobuf(r.accountID):void 0})}get accountId(){return this._accountId}setAccountId(e){return this._accountId="string"==typeof e?f$8.fromString(e):e.clone(),this}_validateChecksums(e){null!=this._accountId&&this._accountId.validateChecksum(e)}_execute(e,t){return e.crypto.getAccountRecords(t)}_mapResponseHeader(e){return e.cryptoGetAccountRecords.header}_mapResponse(e,t,r){const n=e.cryptoGetAccountRecords.records;return Promise.resolve(n.map((e=>b$7._fromProtobuf({transactionRecord:e}))))}_onMakeRequest(e){return{cryptoGetAccountRecords:{header:e,accountID:null!=this._accountId?this._accountId._toProtobuf():null}}}_getLogId(){return`AccountRecordsQuery:${(null!=this._paymentTransactionId&&null!=this._paymentTransactionId.validStart?this._paymentTransactionId.validStart:this._timestamp).toString()}`}};m$7.set("cryptoGetAccountRecords",e$q._fromProtobuf);let s$h=class e extends P$5{constructor(e={}){super(),this._accountId=null,this._key=null,this._receiverSignatureRequired=null,this._proxyAccountId=null,this._autoRenewPeriod=null,this._expirationTime=null,this._accountMemo=null,this._maxAutomaticTokenAssociations=null,this._aliasKey=null,this._stakedAccountId=null,this._stakedNodeId=null,this._declineStakingReward=null,null!=e.accountId&&this.setAccountId(e.accountId),null!=e.key&&this.setKey(e.key),null!=e.receiverSignatureRequired&&this.setReceiverSignatureRequired(e.receiverSignatureRequired),null!=e.proxyAccountId&&this.setProxyAccountId(e.proxyAccountId),null!=e.autoRenewPeriod&&this.setAutoRenewPeriod(e.autoRenewPeriod),null!=e.expirationTime&&this.setExpirationTime(e.expirationTime),null!=e.accountMemo&&this.setAccountMemo(e.accountMemo),null!=e.maxAutomaticTokenAssociations&&this.setMaxAutomaticTokenAssociations(e.maxAutomaticTokenAssociations),null!=e.stakedAccountId&&this.setStakedAccountId(e.stakedAccountId),null!=e.stakedNodeId&&this.setStakedNodeId(e.stakedNodeId),null!=e.declineStakingReward&&this.setDeclineStakingReward(e.declineStakingReward)}static _fromProtobuf(t,r,n,o,i){const s=i[0].cryptoUpdateAccount;return P$5._fromProtobufTransactions(new e({accountId:null!=s.accountIDToUpdate?f$8._fromProtobuf(s.accountIDToUpdate):void 0,key:null!=s.key?t$y._fromProtobufKey(s.key):void 0,receiverSignatureRequired:null!=s.receiverSigRequiredWrapper&&Object.hasOwn(s.receiverSigRequiredWrapper,"value")?s.receiverSigRequiredWrapper.value:void 0,proxyAccountId:null!=s.proxyAccountID?f$8._fromProtobuf(s.proxyAccountID):void 0,autoRenewPeriod:null!=s.autoRenewPeriod&&null!=s.autoRenewPeriod.seconds?s.autoRenewPeriod.seconds:void 0,expirationTime:null!=s.expirationTime?s$r._fromProtobuf(s.expirationTime):void 0,accountMemo:null!=s.memo&&Object.hasOwn(s.memo,"value")?s.memo.value:void 0,maxAutomaticTokenAssociations:null!=s.maxAutomaticTokenAssociations&&null!=s.maxAutomaticTokenAssociations.value&&Object.hasOwn(s.maxAutomaticTokenAssociations,"value")?Long.fromNumber(s.maxAutomaticTokenAssociations.value):void 0,stakedAccountId:null!=s.stakedAccountId?f$8._fromProtobuf(s.stakedAccountId):void 0,stakedNodeId:null!=s.stakedNodeId?s.stakedNodeId:void 0,declineStakingReward:null!=s.declineReward&&Object.hasOwn(s.declineReward,"value")?s.declineReward.value:void 0}),t,r,n,o,i)}get accountId(){return this._accountId}setAccountId(e){return this._requireNotFrozen(),this._accountId="string"==typeof e?f$8.fromString(e):e.clone(),this}get key(){return this._key}setKey(e){return this._requireNotFrozen(),this._key=e,this}get receiverSignatureRequired(){return this._receiverSignatureRequired}setReceiverSignatureRequired(e){return this._requireNotFrozen(),this._receiverSignatureRequired=e,this}get proxyAccountId(){return this._proxyAccountId}setProxyAccountId(e){return this._requireNotFrozen(),this._proxyAccountId=e,this}get autoRenewPeriod(){return this._autoRenewPeriod}setAutoRenewPeriod(e){return this._requireNotFrozen(),this._autoRenewPeriod=e instanceof s$l?e:new s$l(e),this}get expirationTime(){return this._expirationTime}setExpirationTime(e){return this._requireNotFrozen(),this._expirationTime=e instanceof Date?s$r.fromDate(e):e,this}get accountMemo(){return this._accountMemo}setAccountMemo(e){return this._requireNotFrozen(),this._accountMemo=e,this}clearAccountMemo(){return this._requireNotFrozen(),this._accountMemo=null,this}get maxAutomaticTokenAssociations(){return this._maxAutomaticTokenAssociations}setMaxAutomaticTokenAssociations(e){return this._requireNotFrozen(),this._maxAutomaticTokenAssociations="number"==typeof e?Long.fromNumber(e):e,this}get aliasKey(){return null}setAliasKey(e){return this}get stakedAccountId(){return this._stakedAccountId}setStakedAccountId(e){return this._requireNotFrozen(),this._stakedAccountId="string"==typeof e?f$8.fromString(e):e,this}clearStakedAccountId(){return this._requireNotFrozen(),this._stakedAccountId=new f$8(0,0,0),this}get stakedNodeId(){return this._stakedNodeId}setStakedNodeId(e){return this._requireNotFrozen(),this._stakedNodeId=Long.fromValue(e),this}clearStakedNodeId(){return this._requireNotFrozen(),this._stakedNodeId=Long.fromNumber(-1),this}get declineStakingRewards(){return this._declineStakingReward}setDeclineStakingReward(e){return this._requireNotFrozen(),this._declineStakingReward=e,this}_validateChecksums(e){null!=this._accountId&&this._accountId.validateChecksum(e),null!=this._proxyAccountId&&this._proxyAccountId.validateChecksum(e)}_execute(e,t){return e.crypto.updateAccount(t)}_getTransactionDataCase(){return"cryptoUpdateAccount"}_makeTransactionData(){return{accountIDToUpdate:null!=this._accountId?this._accountId._toProtobuf():null,key:null!=this._key?this._key._toProtobufKey():null,expirationTime:null!=this._expirationTime?this._expirationTime._toProtobuf():null,proxyAccountID:null!=this._proxyAccountId?this._proxyAccountId._toProtobuf():null,autoRenewPeriod:null!=this._autoRenewPeriod?this._autoRenewPeriod._toProtobuf():null,receiverSigRequiredWrapper:null==this._receiverSignatureRequired?null:{value:this._receiverSignatureRequired},memo:null!=this._accountMemo?{value:this._accountMemo}:null,maxAutomaticTokenAssociations:null!=this._maxAutomaticTokenAssociations?{value:this._maxAutomaticTokenAssociations.toInt()}:null,stakedAccountId:null!=this.stakedAccountId?this.stakedAccountId._toProtobuf():null,stakedNodeId:this.stakedNodeId,declineReward:null!=this.declineStakingRewards?{value:this.declineStakingRewards}:null}}_getLogId(){return`AccountUpdateTransaction:${this._transactionIds.current.validStart.toString()}`}};k$7.set("cryptoUpdateAccount",s$h._fromProtobuf);let t$i=class{constructor(e={}){this._left=null,null!=e.left&&this.setLeft(e.left),this._right=null,null!=e.right&&this.setRight(e.right)}get left(){return this._left}setLeft(e){return this._left=e,this}get right(){return this._right}setRight(e){return this._right=e,this}toString(){return null!=this._left&&null!=this._right?`${this._left.toString()}.${this._right.toString()}`:""}},s$g=class e{constructor(e={}){this._network=null,null!=e.network&&this.setNetwork(e.network),this._host=null,null!=e.host&&this.setHost(e.host)}get newtork(){return this._network}setNetwork(e){return this._network=e,this}get host(){return this._host}setHost(e){return this._host=e,this}static _fromProtobuf(t){return new e({network:(new t$i).setLeft(t[0]).setRight(t[1]),host:(new t$i).setLeft(t[2]).setRight(t[3])})}_toProtobuf(){return Uint8Array.of(null!=this._network&&null!=this._network._left?this._network._left:0,null!=this._network&&null!=this._network.right?this._network.right:0,null!=this._host&&null!=this._host.left?this._host.left:0,null!=this._host&&null!=this._host.right?this._host.right:0)}toString(){return null!=this._network&&null!=this._host?`${this._network.toString()}.${this._host.toString()}`:""}},s$f=class e{constructor(e={}){this._address=null,null!=e.address&&this.setAddress(e.address),this._port=null,null!=e.port&&this.setPort(e.port)}get address(){return this.address}setAddress(e){return this._address=e,this}get port(){return this._port}setPort(e){return this._port=e,this}static _fromProtobuf(t){return new e({address:null!=t.ipAddressV4?s$g._fromProtobuf(t.ipAddressV4):void 0,port:null!=t.port?t.port:void 0})}_toProtobuf(){return{ipAddressV4:null!=this._address?this._address._toProtobuf():null,port:this._port}}toString(){return`${null!=this._address?this._address.toString():""}:${null!=this._port?this._port.toString():""}`}toJSON(){return{address:null!=this._address?this._address.toString():null,port:null!=this._port?this._port.toString():null}}},i$g=class e{constructor(e={}){this._publicKey=null,null!=e.publicKey&&this.setPublicKey(e.publicKey),this._nodeId=null,null!=e.nodeId&&this.setNodeId(e.nodeId),this._accountId=null,null!=e.accountId&&this.setAccountId(e.accountId),this._certHash=null,null!=e.certHash&&this.setCertHash(e.certHash),this._addresses=[],null!=e.addresses&&this.setAddresses(e.addresses),this._description=null,null!=e.description&&this.setDescription(e.description),this._stake=null,null!=e.stake&&this.setStake(e.stake)}get publicKey(){return this._publicKey}setPublicKey(e){return this._publicKey=e,this}get nodeId(){return this._nodeId}setNodeId(e){return this._nodeId=e,this}get accountId(){return this._accountId}setAccountId(e){return this._accountId="string"==typeof e?f$8.fromString(e):e.clone(),this}get certHash(){return this._certHash}setCertHash(e){return this._certHash=e,this}get addresses(){return this._addresses}setAddresses(e){return this._addresses=e,this}get description(){return this._description}setDescription(e){return this._description=e,this}get stake(){return this._stake}setStake(e){return this._stake=e,this}static _fromProtobuf(t){return new e({publicKey:null!=t.RSA_PubKey?t.RSA_PubKey:void 0,nodeId:null!=t.nodeId?t.nodeId:void 0,accountId:null!=t.nodeAccountId?f$8._fromProtobuf(t.nodeAccountId):void 0,certHash:null!=t.nodeCertHash?t.nodeCertHash:void 0,addresses:null!=t.serviceEndpoint?t.serviceEndpoint.map((e=>s$f._fromProtobuf(e))):void 0,description:null!=t.description?t.description:void 0,stake:null!=t.stake?t.stake:void 0})}_toProtobuf(){return{RSA_PubKey:this._publicKey,nodeId:this._nodeId,nodeAccountId:null!=this._accountId?this._accountId._toProtobuf():null,nodeCertHash:this._certHash,serviceEndpoint:this._addresses.map((e=>e._toProtobuf())),description:this._description,stake:this._stake}}toString(){return JSON.stringify(this.toJSON())}toJSON(){return{publicKey:this._publicKey,nodeId:null!=this._nodeId?this._nodeId.toString():null,accountId:null!=this._accountId?this._accountId.toString():null,certHash:null!=this._certHash?e$w(this._certHash):null,addresses:this._addresses.map((e=>e.toJSON())),description:this._description,stake:null!=this._stake?this._stake.toString():null}}},o$p=class e{constructor(e={}){this._nodeAddresses=[],null!=e.nodeAddresses&&this.setNodeAddresses(e.nodeAddresses)}get nodeAddresses(){return this._nodeAddresses}setNodeAddresses(e){return this._nodeAddresses=e,this}static fromBytes(t){return e._fromProtobuf(proto_1.NodeAddressBook.decode(t))}static _fromProtobuf(t){return new e({nodeAddresses:null!=t.nodeAddress?t.nodeAddress.map((e=>i$g._fromProtobuf(e))):void 0})}_toProtobuf(){return{nodeAddress:this._nodeAddresses.map((e=>e._toProtobuf()))}}toString(){return JSON.stringify(this.toJSON())}toJSON(){return{nodeAddresses:this._nodeAddresses.map((e=>e.toJSON()))}}toBytes(){return proto_1.NodeAddressBook.encode(this._toProtobuf()).finish()}},d$d=class extends h$b{constructor(e={}){super(),this._fileId=null,null!=e.fileId&&this.setFileId(e.fileId),this._limit=null,null!=e.limit&&this.setLimit(e.limit),this._retryHandler=e=>{if(null!=e){if(e instanceof Error)return!0;switch(e.code){case 13:return a$i.test(e.details.toString());case 5:case 8:case 14:case 17:return!0;default:return!1}}return!1},this._addresses=[],this._attempt=0}get fileId(){return this._fileId}setFileId(e){return this._fileId="string"==typeof e?u$j.fromString(e):e.clone(),this}get limit(){return this._limit}setLimit(e){return this._limit=e,this}setMaxAttempts(e){return this._maxAttempts=e,this}setMaxBackoff(e){return this._maxBackoff=e,this}execute(e,t){if(0===e._network._network.size&&!e._timer)throw new Error("The client's network update period is required. Please set it using the setNetworkUpdatePeriod method.");return new Promise(((r,n)=>{this._makeServerStreamRequest(e,r,n,t)}))}_makeServerStreamRequest(e,t,r,n){const o=com_1.hedera.mirror.api.proto.AddressBookQuery.encode({fileId:null!=this._fileId?this._fileId._toProtobuf():null,limit:this._limit}).finish();e._mirrorNetwork.getNextMirrorNode().getChannel().makeServerStreamRequest("NetworkService","getNodes",o,(e=>{this._addresses.push(i$g._fromProtobuf(proto_1.NodeAddress.decode(e))),null!=this._limit&&this._limit>0&&(this._limit=this._limit-1)}),(o=>{const i=o instanceof Error?o.message:o.details;if(this._attempt=this._maxAttempts&&console.warn(`Error getting nodes from mirror for file ${null!=this._fileId?this._fileId.toString():"UNKNOWN"} during attempt ${this._attempt}. Waiting ${o} ms before next attempt: ${i}`),this._logger&&this._logger.debug(`Error getting nodes from mirror for file ${null!=this._fileId?this._fileId.toString():"UNKNOWN"} during attempt ${this._attempt}. Waiting ${o} ms before next attempt: ${i}`),this._attempt+=1,setTimeout((()=>{this._makeServerStreamRequest(e,t,r,n)}),o)}else r(new Error("failed to query address book"))}),(()=>{t(new o$p({nodeAddresses:this._addresses}))}))}};t$z.setAddressBookQueryConstructor((()=>new d$d));let e$p=class e{constructor(e){this._code=e,Object.freeze(this)}toString(){switch(this){case e.UnknownFreezeType:return"UNKNOWN_FREEZE_TYPE";case e.FreezeOnly:return"FREEZE_ONLY";case e.PrepareUpgrade:return"PREPARE_UPGRADE";case e.FreezeUpgrade:return"FREEZE_UPGRADE";case e.FreezeAbort:return"FREEZE_ABORT";case e.TelemetryUpgrade:return"TELEMETRY_UPGRADE";default:return`UNKNOWN (${this._code})`}}static _fromCode(t){switch(t){case 0:return e.UnknownFreezeType;case 1:return e.FreezeOnly;case 2:return e.PrepareUpgrade;case 3:return e.FreezeUpgrade;case 4:return e.FreezeAbort;case 5:return e.TelemetryUpgrade;default:throw new Error(`(BUG) Status.fromCode() does not handle code: ${t}`)}}valueOf(){return this._code}};e$p.UnknownFreezeType=new e$p(0),e$p.FreezeOnly=new e$p(1),e$p.PrepareUpgrade=new e$p(2),e$p.FreezeUpgrade=new e$p(3),e$p.FreezeAbort=new e$p(4),e$p.TelemetryUpgrade=new e$p(5);let l$h=class e extends P$5{constructor(e={}){super(),this._startTime=null,this._startTimestamp=null,this._endTime=null,this._fileId=null,this._fileHash=null,this._freezeType=null,null!=e.startTime&&this.setStartTime(e.startTime.hour,e.startTime.minute),null!=e.endTime&&this.setEndTime(e.endTime.hour,e.endTime.minute),null!=e.startTimestamp&&this.setStartTimestamp(e.startTimestamp),null!=e.updateFileId&&this.setUpdateFileId(e.updateFileId),null!=e.fileId&&this.setFileId(e.fileId),null!=e.fileHash&&this.setFileHash(e.fileHash),null!=e.freezeType&&this.setFreezeType(e.freezeType)}static _fromProtobuf(t,r,n,o,i){const s=i[0].freeze;return P$5._fromProtobufTransactions(new e({startTime:null!=s.startHour&&null!=s.startMin?{hour:s.startHour,minute:s.startMin}:void 0,endTime:null!=s.endHour&&null!=s.endMin?{hour:s.endHour,minute:s.endMin}:void 0,startTimestamp:null!=s.startTime?s$r._fromProtobuf(s.startTime):void 0,updateFileId:null!=s.updateFile?u$j._fromProtobuf(s.updateFile):void 0,fileHash:null!=s.fileHash?s.fileHash:void 0,freezeType:null!=s.freezeType?e$p._fromCode(s.freezeType):void 0}),t,r,n,o,i)}get startTime(){return null}setStartTime(e,t){if(this._requireNotFrozen(),"string"==typeof e){const t=e.split(":");this._startTime={hour:Number(t[0]),minute:Number(t[1])}}else this._startTime={hour:e,minute:t};return this}get startTimestamp(){return this._startTimestamp}setStartTimestamp(e){return this._requireNotFrozen(),this._startTimestamp=e,this}get endTime(){return console.warn("`FreezeTransaction.endTime` is deprecated"),this._endTime}setEndTime(e,t){if(console.warn("`FreezeTransaction.endTime` is deprecated"),this._requireNotFrozen(),"string"==typeof e){const t=e.split(":");this._endTime={hour:Number(t[0]),minute:Number(t[1])}}else this._endTime={hour:e,minute:t};return this}get updateFileId(){return this.fileId}setUpdateFileId(e){return this.setFileId(e)}get fileId(){return this._fileId}setFileId(e){return this._requireNotFrozen(),this._fileId=e,this}get fileHash(){return this._fileHash}setFileHash(e){return this._requireNotFrozen(),this._fileHash="string"==typeof e?r$G(e):e,this}get freezeType(){return this._freezeType}setFreezeType(e){return this._requireNotFrozen(),this._freezeType=e,this}_getTransactionDataCase(){return"freeze"}_makeTransactionData(){return{startTime:null!=this._startTimestamp?this._startTimestamp._toProtobuf():null,updateFile:null!=this._fileId?this._fileId._toProtobuf():null,fileHash:this._fileHash,freezeType:null!=this._freezeType?this._freezeType.valueOf():null}}_getLogId(){return`FreezeTransaction:${this._transactionIds.current.validStart.toString()}`}_execute(e,t){return e.freeze.freeze(t)}};k$7.set("freeze",l$h._fromProtobuf);let o$o=class e extends P$5{constructor(e){super(),this._batchTransactions=(null==e?void 0:e.transactions)||[]}setInnerTransactions(e){return e.forEach((e=>this._validateTransaction(e))),this._batchTransactions=e,this}addInnerTransaction(e){return this._validateTransaction(e),this._requireNotFrozen(),this._batchTransactions.push(e),this}get innerTransactions(){return this._batchTransactions}get innerTransactionIds(){return Array.isArray(this._batchTransactions)?this._batchTransactions.map((e=>e.transactionId)):[]}_makeTransactionData(){return Array.isArray(this._batchTransactions)?{transactions:this._batchTransactions.map((e=>proto_1.SignedTransaction.encode(e._signedTransactions.get(0)).finish()))}:{transactions:[]}}static _fromProtobuf(t,r,n,o,i){var s;const a=null==(s=i[0].atomicBatch)?void 0:s.transactions,c=null==a?void 0:a.map((e=>proto_1.SignedTransaction.decode(e))),u=null==c?void 0:c.map((e=>{const t=proto_1.TransactionBody.decode(e.bodyBytes),r=t.data;if(!r)throw new Error("Transaction type not found");const n=k$7.get(r);if(!n)throw new Error("fromProtobuf not found");return n([],[e],[],[],[t])}));return P$5._fromProtobufTransactions(new e({transactions:u}),t,r,n,o,i)}_getTransactionDataCase(){return"atomicBatch"}_getLogId(){return`AtomicBatch:${this._transactionIds.current.validStart.toString()}`}_execute(e,t){return e.util.atomicBatch(t)}_validateTransaction(t){if(t instanceof e||t instanceof l$h)throw new Error("Transaction is not allowed to be added to a batch");if(!t.isFrozen())throw new Error("Transaction must be frozen before being added to a batch");if(!t.batchKey)throw new Error("Transaction must have a batch key")}};k$7.set("atomicBatch",o$o._fromProtobuf);let o$n=class e extends h$b{constructor(e={}){super(),this._contractId=null,null!=e.contractId&&this.setContractId(e.contractId)}static _fromProtobuf(t){const r=t.contractGetBytecode;return new e({contractId:null!=r.contractID?v$7._fromProtobuf(r.contractID):void 0})}get contractId(){return this._contractId}setContractId(e){return this._contractId="string"==typeof e?v$7.fromString(e):e.clone(),this}_validateChecksums(e){null!=this._contractId&&this._contractId.validateChecksum(e)}_execute(e,t){return e.smartContract.contractGetBytecode(t)}_mapResponseHeader(e){return e.contractGetBytecodeResponse.header}_mapResponse(e){const t=e.contractGetBytecodeResponse;return Promise.resolve(null!=t.bytecode?t.bytecode:new Uint8Array)}_onMakeRequest(e){return{contractGetBytecode:{header:e,contractID:null!=this._contractId?this._contractId._toProtobuf():null}}}_getLogId(){return`ContractByteCodeQuery:${(null!=this._paymentTransactionId&&null!=this._paymentTransactionId.validStart?this._paymentTransactionId.validStart:this._timestamp).toString()}`}};m$7.set("contractGetBytecode",o$n._fromProtobuf);const t$h="0123456789abcdef".split(""),r$w=[1,256,65536,16777216],e$o=[0,8,16,24],o$m=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],s$e=e=>{var t,r,n,o,i,s,a,c,u,l,d,h,f,p,m,y,g,b,w,_,v,$,I,k,A,S,E,T,P,R,C,O,M,N,B,x,D,L,U,F,j,q,K,z,H,G,W,V,Y,J,Q,Z,X,ee,te,re,ne,oe,ie,se,ae,ce,ue;for(n=0;n<48;n+=2)o=e[0]^e[10]^e[20]^e[30]^e[40],i=e[1]^e[11]^e[21]^e[31]^e[41],s=e[2]^e[12]^e[22]^e[32]^e[42],a=e[3]^e[13]^e[23]^e[33]^e[43],c=e[4]^e[14]^e[24]^e[34]^e[44],u=e[5]^e[15]^e[25]^e[35]^e[45],l=e[6]^e[16]^e[26]^e[36]^e[46],d=e[7]^e[17]^e[27]^e[37]^e[47],t=(h=e[8]^e[18]^e[28]^e[38]^e[48])^(s<<1|a>>>31),r=(f=e[9]^e[19]^e[29]^e[39]^e[49])^(a<<1|s>>>31),e[0]^=t,e[1]^=r,e[10]^=t,e[11]^=r,e[20]^=t,e[21]^=r,e[30]^=t,e[31]^=r,e[40]^=t,e[41]^=r,t=o^(c<<1|u>>>31),r=i^(u<<1|c>>>31),e[2]^=t,e[3]^=r,e[12]^=t,e[13]^=r,e[22]^=t,e[23]^=r,e[32]^=t,e[33]^=r,e[42]^=t,e[43]^=r,t=s^(l<<1|d>>>31),r=a^(d<<1|l>>>31),e[4]^=t,e[5]^=r,e[14]^=t,e[15]^=r,e[24]^=t,e[25]^=r,e[34]^=t,e[35]^=r,e[44]^=t,e[45]^=r,t=c^(h<<1|f>>>31),r=u^(f<<1|h>>>31),e[6]^=t,e[7]^=r,e[16]^=t,e[17]^=r,e[26]^=t,e[27]^=r,e[36]^=t,e[37]^=r,e[46]^=t,e[47]^=r,t=l^(o<<1|i>>>31),r=d^(i<<1|o>>>31),e[8]^=t,e[9]^=r,e[18]^=t,e[19]^=r,e[28]^=t,e[29]^=r,e[38]^=t,e[39]^=r,e[48]^=t,e[49]^=r,p=e[0],m=e[1],G=e[11]<<4|e[10]>>>28,W=e[10]<<4|e[11]>>>28,T=e[20]<<3|e[21]>>>29,P=e[21]<<3|e[20]>>>29,se=e[31]<<9|e[30]>>>23,ae=e[30]<<9|e[31]>>>23,q=e[40]<<18|e[41]>>>14,K=e[41]<<18|e[40]>>>14,N=e[2]<<1|e[3]>>>31,B=e[3]<<1|e[2]>>>31,y=e[13]<<12|e[12]>>>20,g=e[12]<<12|e[13]>>>20,V=e[22]<<10|e[23]>>>22,Y=e[23]<<10|e[22]>>>22,R=e[33]<<13|e[32]>>>19,C=e[32]<<13|e[33]>>>19,ce=e[42]<<2|e[43]>>>30,ue=e[43]<<2|e[42]>>>30,ee=e[5]<<30|e[4]>>>2,te=e[4]<<30|e[5]>>>2,x=e[14]<<6|e[15]>>>26,D=e[15]<<6|e[14]>>>26,b=e[25]<<11|e[24]>>>21,w=e[24]<<11|e[25]>>>21,J=e[34]<<15|e[35]>>>17,Q=e[35]<<15|e[34]>>>17,O=e[45]<<29|e[44]>>>3,M=e[44]<<29|e[45]>>>3,k=e[6]<<28|e[7]>>>4,A=e[7]<<28|e[6]>>>4,re=e[17]<<23|e[16]>>>9,ne=e[16]<<23|e[17]>>>9,L=e[26]<<25|e[27]>>>7,U=e[27]<<25|e[26]>>>7,_=e[36]<<21|e[37]>>>11,v=e[37]<<21|e[36]>>>11,Z=e[47]<<24|e[46]>>>8,X=e[46]<<24|e[47]>>>8,z=e[8]<<27|e[9]>>>5,H=e[9]<<27|e[8]>>>5,S=e[18]<<20|e[19]>>>12,E=e[19]<<20|e[18]>>>12,oe=e[29]<<7|e[28]>>>25,ie=e[28]<<7|e[29]>>>25,F=e[38]<<8|e[39]>>>24,j=e[39]<<8|e[38]>>>24,$=e[48]<<14|e[49]>>>18,I=e[49]<<14|e[48]>>>18,e[0]=p^~y&b,e[1]=m^~g&w,e[10]=k^~S&T,e[11]=A^~E&P,e[20]=N^~x&L,e[21]=B^~D&U,e[30]=z^~G&V,e[31]=H^~W&Y,e[40]=ee^~re&oe,e[41]=te^~ne&ie,e[2]=y^~b&_,e[3]=g^~w&v,e[12]=S^~T&R,e[13]=E^~P&C,e[22]=x^~L&F,e[23]=D^~U&j,e[32]=G^~V&J,e[33]=W^~Y&Q,e[42]=re^~oe&se,e[43]=ne^~ie&ae,e[4]=b^~_&$,e[5]=w^~v&I,e[14]=T^~R&O,e[15]=P^~C&M,e[24]=L^~F&q,e[25]=U^~j&K,e[34]=V^~J&Z,e[35]=Y^~Q&X,e[44]=oe^~se&ce,e[45]=ie^~ae&ue,e[6]=_^~$&p,e[7]=v^~I&m,e[16]=R^~O&k,e[17]=C^~M&A,e[26]=F^~q&N,e[27]=j^~K&B,e[36]=J^~Z&z,e[37]=Q^~X&H,e[46]=se^~ce&ee,e[47]=ae^~ue&te,e[8]=$^~p&y,e[9]=I^~m&g,e[18]=O^~k&S,e[19]=M^~A&E,e[28]=q^~N&x,e[29]=K^~B&D,e[38]=Z^~z&G,e[39]=X^~H&W,e[48]=ce^~ee&re,e[49]=ue^~te&ne,e[0]^=o$m[n],e[1]^=o$m[n+1]},l$g=(a$g=256,e=>{var t,r,n;if("0x"===e.slice(0,2)){t=[];for(var o=2,i=e.length;o{for(var r,n,o=t.length,i=e.blocks,s=e.blockCount<<2,a=e.blockCount,c=e.outputBlocks,u=e.s,l=0;l>2]|=t[l]<>2]|=n<>2]|=(192|n>>6)<>2]|=(128|63&n)<=57344?(i[r>>2]|=(224|n>>12)<>2]|=(128|n>>6&63)<>2]|=(128|63&n)<>2]|=(240|n>>18)<>2]|=(128|n>>12&63)<>2]|=(128|n>>6&63)<>2]|=(128|63&n)<=s){for(e.start=r-s,e.block=i[a],r=0;r>2]|=r$w[3&r],e.lastByteIndex===s)for(i[0]=i[a],r=1;r>4&15]+t$h[15&d]+t$h[d>>12&15]+t$h[d>>8&15]+t$h[d>>20&15]+t$h[d>>16&15]+t$h[d>>28&15]+t$h[d>>24&15];f%a==0&&(s$e(u),r=0)}return"0x"+h})({blocks:[],reset:!0,block:0,start:0,blockCount:1600-((r=a$g)<<1)>>5,outputBlocks:r>>5,s:(n=[0,0,0,0,0,0,0,0,0,0],[].concat(n,n,n,n,n))},t)});var a$g;const d$c={uint8:0,int8:1,uint16:2,int16:3,uint24:4,int24:5,uint32:6,int32:7,uint40:8,int40:9,uint48:10,int48:11,uint56:12,int56:13,uint64:14,int64:15,uint72:16,int72:17,uint80:18,int80:19,uint88:20,int88:21,uint96:22,int96:23,uint104:24,int104:25,uint112:26,int112:27,uint120:28,int120:29,uint128:30,int128:31,uint136:32,int136:33,uint144:34,int144:35,uint152:36,int152:37,uint160:38,int160:39,uint168:40,int168:41,uint176:42,int176:43,uint184:44,int184:45,uint192:46,int192:47,uint200:48,int200:49,uint208:50,int208:51,uint216:52,int216:53,uint224:54,int224:55,uint232:56,int232:57,uint240:58,int240:59,uint248:60,int248:61,uint256:62,int256:63,string:64,bool:65,bytes:66,bytes32:67,address:68,func:69};let i$f=class{constructor(e){this.name=null,this._params="",this._paramTypes=[],null!=e&&(this._name=e)}addString(){return this._addParam({ty:d$c.string,array:!1})}addStringArray(){return this._addParam({ty:d$c.string,array:!0})}addBytes(){return this._addParam({ty:d$c.bytes,array:!1})}addBytes32(){return this._addParam({ty:d$c.bytes32,array:!1})}addBytesArray(){return this._addParam({ty:d$c.bytes,array:!0})}addBytes32Array(){return this._addParam({ty:d$c.bytes32,array:!0})}addInt8(){return this._addParam({ty:d$c.int8,array:!1})}addUint8(){return this._addParam({ty:d$c.uint8,array:!1})}addInt16(){return this._addParam({ty:d$c.int16,array:!1})}addUint16(){return this._addParam({ty:d$c.uint16,array:!1})}addInt24(){return this._addParam({ty:d$c.int24,array:!1})}addUint24(){return this._addParam({ty:d$c.uint24,array:!1})}addInt32(){return this._addParam({ty:d$c.int32,array:!1})}addUint32(){return this._addParam({ty:d$c.uint32,array:!1})}addInt40(){return this._addParam({ty:d$c.int40,array:!1})}addUint40(){return this._addParam({ty:d$c.uint40,array:!1})}addInt48(){return this._addParam({ty:d$c.int48,array:!1})}addUint48(){return this._addParam({ty:d$c.uint48,array:!1})}addInt56(){return this._addParam({ty:d$c.int56,array:!1})}addUint56(){return this._addParam({ty:d$c.uint56,array:!1})}addInt64(){return this._addParam({ty:d$c.int64,array:!1})}addUint64(){return this._addParam({ty:d$c.uint64,array:!1})}addInt72(){return this._addParam({ty:d$c.int72,array:!1})}addUint72(){return this._addParam({ty:d$c.uint72,array:!1})}addInt80(){return this._addParam({ty:d$c.int80,array:!1})}addUint80(){return this._addParam({ty:d$c.uint80,array:!1})}addInt88(){return this._addParam({ty:d$c.int88,array:!1})}addUint88(){return this._addParam({ty:d$c.uint88,array:!1})}addInt96(){return this._addParam({ty:d$c.int96,array:!1})}addUint96(){return this._addParam({ty:d$c.uint96,array:!1})}addInt104(){return this._addParam({ty:d$c.int104,array:!1})}addUint104(){return this._addParam({ty:d$c.uint104,array:!1})}addInt112(){return this._addParam({ty:d$c.int112,array:!1})}addUint112(){return this._addParam({ty:d$c.uint112,array:!1})}addInt120(){return this._addParam({ty:d$c.int120,array:!1})}addUint120(){return this._addParam({ty:d$c.uint120,array:!1})}addInt128(){return this._addParam({ty:d$c.int128,array:!1})}addUint128(){return this._addParam({ty:d$c.uint128,array:!1})}addInt136(){return this._addParam({ty:d$c.int136,array:!1})}addUint136(){return this._addParam({ty:d$c.uint136,array:!1})}addInt144(){return this._addParam({ty:d$c.int144,array:!1})}addUint144(){return this._addParam({ty:d$c.uint144,array:!1})}addInt152(){return this._addParam({ty:d$c.int152,array:!1})}addUint152(){return this._addParam({ty:d$c.uint152,array:!1})}addInt160(){return this._addParam({ty:d$c.int160,array:!1})}addUint160(){return this._addParam({ty:d$c.uint160,array:!1})}addInt168(){return this._addParam({ty:d$c.int168,array:!1})}addUint168(){return this._addParam({ty:d$c.uint168,array:!1})}addInt176(){return this._addParam({ty:d$c.int176,array:!1})}addUint176(){return this._addParam({ty:d$c.uint176,array:!1})}addInt184(){return this._addParam({ty:d$c.int184,array:!1})}addUint184(){return this._addParam({ty:d$c.uint184,array:!1})}addInt192(){return this._addParam({ty:d$c.int192,array:!1})}addUint192(){return this._addParam({ty:d$c.uint192,array:!1})}addInt200(){return this._addParam({ty:d$c.int200,array:!1})}addUint200(){return this._addParam({ty:d$c.uint200,array:!1})}addInt208(){return this._addParam({ty:d$c.int208,array:!1})}addUint208(){return this._addParam({ty:d$c.uint208,array:!1})}addInt216(){return this._addParam({ty:d$c.int216,array:!1})}addUint216(){return this._addParam({ty:d$c.uint216,array:!1})}addInt224(){return this._addParam({ty:d$c.int224,array:!1})}addUint224(){return this._addParam({ty:d$c.uint224,array:!1})}addInt232(){return this._addParam({ty:d$c.int232,array:!1})}addUint232(){return this._addParam({ty:d$c.uint232,array:!1})}addInt240(){return this._addParam({ty:d$c.int240,array:!1})}addUint240(){return this._addParam({ty:d$c.uint240,array:!1})}addInt248(){return this._addParam({ty:d$c.int248,array:!1})}addUint248(){return this._addParam({ty:d$c.uint248,array:!1})}addInt256(){return this._addParam({ty:d$c.int256,array:!1})}addUint256(){return this._addParam({ty:d$c.uint256,array:!1})}addInt8Array(){return this._addParam({ty:d$c.int8,array:!0})}addUint8Array(){return this._addParam({ty:d$c.uint8,array:!0})}addInt16Array(){return this._addParam({ty:d$c.int16,array:!0})}addUint16Array(){return this._addParam({ty:d$c.uint16,array:!0})}addInt24Array(){return this._addParam({ty:d$c.int24,array:!0})}addUint24Array(){return this._addParam({ty:d$c.uint24,array:!0})}addInt32Array(){return this._addParam({ty:d$c.int32,array:!0})}addUint32Array(){return this._addParam({ty:d$c.uint32,array:!0})}addInt40Array(){return this._addParam({ty:d$c.int40,array:!0})}addUint40Array(){return this._addParam({ty:d$c.uint40,array:!0})}addInt48Array(){return this._addParam({ty:d$c.int48,array:!0})}addUint48Array(){return this._addParam({ty:d$c.uint48,array:!0})}addInt56Array(){return this._addParam({ty:d$c.int56,array:!0})}addUint56Array(){return this._addParam({ty:d$c.uint56,array:!0})}addInt64Array(){return this._addParam({ty:d$c.int64,array:!0})}addUint64Array(){return this._addParam({ty:d$c.uint64,array:!0})}addInt72Array(){return this._addParam({ty:d$c.int72,array:!0})}addUint72Array(){return this._addParam({ty:d$c.uint72,array:!0})}addInt80Array(){return this._addParam({ty:d$c.int80,array:!0})}addUint80Array(){return this._addParam({ty:d$c.uint80,array:!0})}addInt88Array(){return this._addParam({ty:d$c.int88,array:!0})}addUint88Array(){return this._addParam({ty:d$c.uint88,array:!0})}addInt96Array(){return this._addParam({ty:d$c.int96,array:!0})}addUint96Array(){return this._addParam({ty:d$c.uint96,array:!0})}addInt104Array(){return this._addParam({ty:d$c.int104,array:!0})}addUint104Array(){return this._addParam({ty:d$c.uint104,array:!0})}addInt112Array(){return this._addParam({ty:d$c.int112,array:!0})}addUint112Array(){return this._addParam({ty:d$c.uint112,array:!0})}addInt120Array(){return this._addParam({ty:d$c.int120,array:!0})}addUint120Array(){return this._addParam({ty:d$c.uint120,array:!0})}addInt128Array(){return this._addParam({ty:d$c.int128,array:!0})}addUint128Array(){return this._addParam({ty:d$c.uint128,array:!0})}addInt136Array(){return this._addParam({ty:d$c.int136,array:!0})}addUint136Array(){return this._addParam({ty:d$c.uint136,array:!0})}addInt144Array(){return this._addParam({ty:d$c.int144,array:!0})}addUint144Array(){return this._addParam({ty:d$c.uint144,array:!0})}addInt152Array(){return this._addParam({ty:d$c.int152,array:!0})}addUint152Array(){return this._addParam({ty:d$c.uint152,array:!0})}addInt160Array(){return this._addParam({ty:d$c.int160,array:!0})}addUint160Array(){return this._addParam({ty:d$c.uint160,array:!0})}addInt168Array(){return this._addParam({ty:d$c.int168,array:!0})}addUint168Array(){return this._addParam({ty:d$c.uint168,array:!0})}addInt176Array(){return this._addParam({ty:d$c.int176,array:!0})}addUint176Array(){return this._addParam({ty:d$c.uint176,array:!0})}addInt184Array(){return this._addParam({ty:d$c.int184,array:!0})}addUint184Array(){return this._addParam({ty:d$c.uint184,array:!0})}addInt192Array(){return this._addParam({ty:d$c.int192,array:!0})}addUint192Array(){return this._addParam({ty:d$c.uint192,array:!0})}addInt200Array(){return this._addParam({ty:d$c.int200,array:!0})}addUint200Array(){return this._addParam({ty:d$c.uint200,array:!0})}addInt208Array(){return this._addParam({ty:d$c.int208,array:!0})}addUint208Array(){return this._addParam({ty:d$c.uint208,array:!0})}addInt216Array(){return this._addParam({ty:d$c.int216,array:!0})}addUint216Array(){return this._addParam({ty:d$c.uint216,array:!0})}addInt224Array(){return this._addParam({ty:d$c.int224,array:!0})}addUint224Array(){return this._addParam({ty:d$c.uint224,array:!0})}addInt232Array(){return this._addParam({ty:d$c.int232,array:!0})}addUint232Array(){return this._addParam({ty:d$c.uint232,array:!0})}addInt240Array(){return this._addParam({ty:d$c.int240,array:!0})}addUint240Array(){return this._addParam({ty:d$c.uint240,array:!0})}addInt248Array(){return this._addParam({ty:d$c.int248,array:!0})}addUint248Array(){return this._addParam({ty:d$c.uint248,array:!0})}addInt256Array(){return this._addParam({ty:d$c.int256,array:!0})}addUint256Array(){return this._addParam({ty:d$c.uint256,array:!0})}addBool(){return this._addParam({ty:d$c.bool,array:!1})}addAddress(){return this._addParam({ty:d$c.address,array:!1})}addAddressArray(){return this._addParam({ty:d$c.address,array:!0})}addFunction(){return this._addParam({ty:d$c.func,array:!1})}_addParam(e){return this._paramTypes.length>0&&(this._params+=","),this._params+=y$9(e),this._paramTypes.push(e),this}_build(e){if(null!=e)this._name=e;else if(null==this._name)throw new Error("`name` required for ContractFunctionSelector");const t=n$C(n$v(this.toString()));return r$G(l$g(`0x${t}`)).slice(0,4)}toString(){return`${null!=this._name?this._name.toString():""}(${this._params})`}};function y$9(e){let t="";switch(e.ty){case d$c.uint8:t="uint8";break;case d$c.int8:t="int8";break;case d$c.uint16:t="uint16";break;case d$c.int16:t="int16";break;case d$c.uint24:t="uint24";break;case d$c.int24:t="int24";break;case d$c.uint32:t="uint32";break;case d$c.int32:t="int32";break;case d$c.uint40:t="uint40";break;case d$c.int40:t="int40";break;case d$c.uint48:t="uint48";break;case d$c.int48:t="int48";break;case d$c.uint56:t="uint56";break;case d$c.int56:t="int56";break;case d$c.uint64:t="uint64";break;case d$c.int64:t="int64";break;case d$c.uint72:t="uint72";break;case d$c.int72:t="int72";break;case d$c.uint80:t="uint80";break;case d$c.int80:t="int80";break;case d$c.uint88:t="uint88";break;case d$c.int88:t="int88";break;case d$c.uint96:t="uint96";break;case d$c.int96:t="int96";break;case d$c.uint104:t="uint104";break;case d$c.int104:t="int104";break;case d$c.uint112:t="uint112";break;case d$c.int112:t="int112";break;case d$c.uint120:t="uint120";break;case d$c.int120:t="int120";break;case d$c.uint128:t="uint128";break;case d$c.int128:t="int128";break;case d$c.uint136:t="uint136";break;case d$c.int136:t="int136";break;case d$c.uint144:t="uint144";break;case d$c.int144:t="int144";break;case d$c.uint152:t="uint152";break;case d$c.int152:t="int152";break;case d$c.uint160:t="uint160";break;case d$c.int160:t="int160";break;case d$c.uint168:t="uint168";break;case d$c.int168:t="int168";break;case d$c.uint176:t="uint176";break;case d$c.int176:t="int176";break;case d$c.uint184:t="uint184";break;case d$c.int184:t="int184";break;case d$c.uint192:t="uint192";break;case d$c.int192:t="int192";break;case d$c.uint200:t="uint200";break;case d$c.int200:t="int200";break;case d$c.uint208:t="uint208";break;case d$c.int208:t="int208";break;case d$c.uint216:t="uint216";break;case d$c.int216:t="int216";break;case d$c.uint224:t="uint224";break;case d$c.int224:t="int224";break;case d$c.uint232:t="uint232";break;case d$c.int232:t="int232";break;case d$c.uint240:t="uint240";break;case d$c.int240:t="int240";break;case d$c.uint248:t="uint248";break;case d$c.int248:t="int248";break;case d$c.uint256:t="uint256";break;case d$c.int256:t="int256";break;case d$c.string:t="string";break;case d$c.bool:t="bool";break;case d$c.bytes:t="bytes";break;case d$c.bytes32:t="bytes32";break;case d$c.address:t="address";break;case d$c.func:t="function";break;default:t=""}return e.array&&(t+="[]"),t}let _$a=class{constructor(){this._selector=new i$f,this._arguments=[]}addString(e){return this._selector.addString(),this._addParam(e,!0)}addStringArray(e){return this._selector.addStringArray(),this._addParam(e,!0)}addBytes(e){return this._selector.addBytes(),this._addParam(e,!0)}addBytes32(e){if(32!==e.length)throw new Error(`addBytes32 expected array to be of length 32, but received ${e.length}`);return this._selector.addBytes32(),this._addParam(e,!1)}addBytesArray(e){return this._selector.addBytesArray(),this._addParam(e,!0)}addBytes32Array(e){for(const[t,r]of e.entries())if(32!==r.length)throw new Error(`addBytes32 expected array to be of length 32, but received ${r.length}`);return this._selector.addBytes32Array(),this._addParam(e,!0)}addBool(e){return this._selector.addBool(),this._addParam(e,!1)}addInt8(e){return this._selector.addInt8(),this._addParam(v$8(e),!1)}addUint8(e){return this._selector.addUint8(),this._addParam(v$8(e),!1)}addInt16(e){return this._selector.addInt16(),this._addParam(v$8(e),!1)}addUint16(e){return this._selector.addUint16(),this._addParam(v$8(e),!1)}addInt24(e){return this._selector.addInt24(),this._addParam(v$8(e),!1)}addUint24(e){return this._selector.addUint24(),this._addParam(v$8(e),!1)}addInt32(e){return this._selector.addInt32(),this._addParam(v$8(e),!1)}addUint32(e){return this._selector.addUint32(),this._addParam(v$8(e),!1)}addInt40(e){return this._selector.addInt40(),this._addParam(v$8(e),!1)}addUint40(e){return this._selector.addUint40(),this._addParam(v$8(e),!1)}addInt48(e){return this._selector.addInt48(),this._addParam(v$8(e),!1)}addUint48(e){return this._selector.addUint48(),this._addParam(v$8(e),!1)}addInt56(e){return this._selector.addInt56(),this._addParam(v$8(e),!1)}addUint56(e){return this._selector.addUint56(),this._addParam(v$8(e),!1)}addInt64(e){return this._selector.addInt64(),this._addParam(v$8(e),!1)}addUint64(e){return this._selector.addUint64(),this._addParam(v$8(e),!1)}addInt72(e){return this._selector.addInt72(),this._addParam(v$8(e),!1)}addUint72(e){return this._selector.addUint72(),this._addParam(v$8(e),!1)}addInt80(e){return this._selector.addInt80(),this._addParam(v$8(e),!1)}addUint80(e){return this._selector.addUint80(),this._addParam(v$8(e),!1)}addInt88(e){return this._selector.addInt88(),this._addParam(v$8(e),!1)}addUint88(e){return this._selector.addUint88(),this._addParam(v$8(e),!1)}addInt96(e){return this._selector.addInt96(),this._addParam(v$8(e),!1)}addUint96(e){return this._selector.addUint96(),this._addParam(v$8(e),!1)}addInt104(e){return this._selector.addInt104(),this._addParam(v$8(e),!1)}addUint104(e){return this._selector.addUint104(),this._addParam(v$8(e),!1)}addInt112(e){return this._selector.addInt112(),this._addParam(v$8(e),!1)}addUint112(e){return this._selector.addUint112(),this._addParam(v$8(e),!1)}addInt120(e){return this._selector.addInt120(),this._addParam(v$8(e),!1)}addUint120(e){return this._selector.addUint120(),this._addParam(v$8(e),!1)}addInt128(e){return this._selector.addInt128(),this._addParam(v$8(e),!1)}addUint128(e){return this._selector.addUint128(),this._addParam(v$8(e),!1)}addInt136(e){return this._selector.addInt136(),this._addParam(v$8(e),!1)}addUint136(e){return this._selector.addUint136(),this._addParam(v$8(e),!1)}addInt144(e){return this._selector.addInt144(),this._addParam(v$8(e),!1)}addUint144(e){return this._selector.addUint144(),this._addParam(v$8(e),!1)}addInt152(e){return this._selector.addInt152(),this._addParam(v$8(e),!1)}addUint152(e){return this._selector.addUint152(),this._addParam(v$8(e),!1)}addInt160(e){return this._selector.addInt160(),this._addParam(v$8(e),!1)}addUint160(e){return this._selector.addUint160(),this._addParam(v$8(e),!1)}addInt168(e){return this._selector.addInt168(),this._addParam(v$8(e),!1)}addUint168(e){return this._selector.addUint168(),this._addParam(v$8(e),!1)}addInt176(e){return this._selector.addInt176(),this._addParam(v$8(e),!1)}addUint176(e){return this._selector.addUint176(),this._addParam(v$8(e),!1)}addInt184(e){return this._selector.addInt184(),this._addParam(v$8(e),!1)}addUint184(e){return this._selector.addUint184(),this._addParam(v$8(e),!1)}addInt192(e){return this._selector.addInt192(),this._addParam(v$8(e),!1)}addUint192(e){return this._selector.addUint192(),this._addParam(v$8(e),!1)}addInt200(e){return this._selector.addInt200(),this._addParam(v$8(e),!1)}addUint200(e){return this._selector.addUint200(),this._addParam(v$8(e),!1)}addInt208(e){return this._selector.addInt208(),this._addParam(v$8(e),!1)}addUint208(e){return this._selector.addUint208(),this._addParam(v$8(e),!1)}addInt216(e){return this._selector.addInt216(),this._addParam(v$8(e),!1)}addUint216(e){return this._selector.addUint216(),this._addParam(v$8(e),!1)}addInt224(e){return this._selector.addInt224(),this._addParam(v$8(e),!1)}addUint224(e){return this._selector.addUint224(),this._addParam(v$8(e),!1)}addInt232(e){return this._selector.addInt232(),this._addParam(v$8(e),!1)}addUint232(e){return this._selector.addUint232(),this._addParam(v$8(e),!1)}addInt240(e){return this._selector.addInt240(),this._addParam(v$8(e),!1)}addUint240(e){return this._selector.addUint240(),this._addParam(v$8(e),!1)}addInt248(e){return this._selector.addInt248(),this._addParam(v$8(e),!1)}addUint248(e){return this._selector.addUint248(),this._addParam(v$8(e),!1)}addInt256(e){return this._selector.addInt256(),this._addParam(v$8(e),!1)}addUint256(e){return this._selector.addUint256(),this._addParam(v$8(e),!1)}addInt8Array(e){return this._selector.addInt8Array(),this._addParam(N$5(e),!0)}addUint8Array(e){return this._selector.addUint8Array(),this._addParam(N$5(e),!0)}addInt16Array(e){return this._selector.addInt16Array(),this._addParam(N$5(e),!0)}addUint16Array(e){return this._selector.addUint16Array(),this._addParam(N$5(e),!0)}addInt24Array(e){return this._selector.addInt24Array(),this._addParam(N$5(e),!0)}addUint24Array(e){return this._selector.addUint24Array(),this._addParam(N$5(e),!0)}addInt32Array(e){return this._selector.addInt32Array(),this._addParam(N$5(e),!0)}addUint32Array(e){return this._selector.addUint32Array(),this._addParam(N$5(e),!0)}addInt40Array(e){return this._selector.addInt40Array(),this._addParam(N$5(e),!0)}addUint40Array(e){return this._selector.addUint40Array(),this._addParam(N$5(e),!0)}addInt48Array(e){return this._selector.addInt48Array(),this._addParam(N$5(e),!0)}addUint48Array(e){return this._selector.addUint48Array(),this._addParam(N$5(e),!0)}addInt56Array(e){return this._selector.addInt56Array(),this._addParam(N$5(e),!0)}addUint56Array(e){return this._selector.addUint56Array(),this._addParam(N$5(e),!0)}addInt64Array(e){return this._selector.addInt64Array(),this._addParam(N$5(e),!0)}addUint64Array(e){return this._selector.addUint64Array(),this._addParam(N$5(e),!0)}addInt72Array(e){return this._selector.addInt72Array(),this._addParam(N$5(e),!0)}addUint72Array(e){return this._selector.addUint72Array(),this._addParam(N$5(e),!0)}addInt80Array(e){return this._selector.addInt80Array(),this._addParam(N$5(e),!0)}addUint80Array(e){return this._selector.addUint80Array(),this._addParam(N$5(e),!0)}addInt88Array(e){return this._selector.addInt88Array(),this._addParam(N$5(e),!0)}addUint88Array(e){return this._selector.addUint88Array(),this._addParam(N$5(e),!0)}addInt96Array(e){return this._selector.addInt96Array(),this._addParam(N$5(e),!0)}addUint96Array(e){return this._selector.addUint96Array(),this._addParam(N$5(e),!0)}addInt104Array(e){return this._selector.addInt104Array(),this._addParam(N$5(e),!0)}addUint104Array(e){return this._selector.addUint104Array(),this._addParam(N$5(e),!0)}addInt112Array(e){return this._selector.addInt112Array(),this._addParam(N$5(e),!0)}addUint112Array(e){return this._selector.addUint112Array(),this._addParam(N$5(e),!0)}addInt120Array(e){return this._selector.addInt120Array(),this._addParam(N$5(e),!0)}addUint120Array(e){return this._selector.addUint120Array(),this._addParam(N$5(e),!0)}addInt128Array(e){return this._selector.addInt128Array(),this._addParam(N$5(e),!0)}addUint128Array(e){return this._selector.addUint128Array(),this._addParam(N$5(e),!0)}addInt136Array(e){return this._selector.addInt136Array(),this._addParam(N$5(e),!0)}addUint136Array(e){return this._selector.addUint136Array(),this._addParam(N$5(e),!0)}addInt144Array(e){return this._selector.addInt144Array(),this._addParam(N$5(e),!0)}addUint144Array(e){return this._selector.addUint144Array(),this._addParam(N$5(e),!0)}addInt152Array(e){return this._selector.addInt152Array(),this._addParam(N$5(e),!0)}addUint152Array(e){return this._selector.addUint152Array(),this._addParam(N$5(e),!0)}addInt160Array(e){return this._selector.addInt160Array(),this._addParam(N$5(e),!0)}addUint160Array(e){return this._selector.addUint160Array(),this._addParam(N$5(e),!0)}addInt168Array(e){return this._selector.addInt168Array(),this._addParam(N$5(e),!0)}addUint168Array(e){return this._selector.addUint168Array(),this._addParam(N$5(e),!0)}addInt176Array(e){return this._selector.addInt176Array(),this._addParam(N$5(e),!0)}addUint176Array(e){return this._selector.addUint176Array(),this._addParam(N$5(e),!0)}addInt184Array(e){return this._selector.addInt184Array(),this._addParam(N$5(e),!0)}addUint184Array(e){return this._selector.addUint184Array(),this._addParam(N$5(e),!0)}addInt192Array(e){return this._selector.addInt192Array(),this._addParam(N$5(e),!0)}addUint192Array(e){return this._selector.addUint192Array(),this._addParam(N$5(e),!0)}addInt200Array(e){return this._selector.addInt200Array(),this._addParam(N$5(e),!0)}addUint200Array(e){return this._selector.addUint200Array(),this._addParam(N$5(e),!0)}addInt208Array(e){return this._selector.addInt208Array(),this._addParam(N$5(e),!0)}addUint208Array(e){return this._selector.addUint208Array(),this._addParam(N$5(e),!0)}addInt216Array(e){return this._selector.addInt216Array(),this._addParam(N$5(e),!0)}addUint216Array(e){return this._selector.addUint216Array(),this._addParam(N$5(e),!0)}addInt224Array(e){return this._selector.addInt224Array(),this._addParam(N$5(e),!0)}addUint224Array(e){return this._selector.addUint224Array(),this._addParam(N$5(e),!0)}addInt232Array(e){return this._selector.addInt232Array(),this._addParam(N$5(e),!0)}addUint232Array(e){return this._selector.addUint232Array(),this._addParam(N$5(e),!0)}addInt240Array(e){return this._selector.addInt240Array(),this._addParam(N$5(e),!0)}addUint240Array(e){return this._selector.addUint240Array(),this._addParam(N$5(e),!0)}addInt248Array(e){return this._selector.addInt248Array(),this._addParam(N$5(e),!0)}addUint248Array(e){return this._selector.addUint248Array(),this._addParam(N$5(e),!0)}addInt256Array(e){return this._selector.addInt256Array(),this._addParam(N$5(e),!0)}addUint256Array(e){return this._selector.addUint256Array(),this._addParam(N$5(e),!0)}addAddress(e){let t;if("string"==typeof e){if(40!==e.length&&42!==e.length)throw new Error("`address` type requires parameter to be 40 or 42 characters");t=e}else t=e.toString();const r=40===t.length?r$G(t):r$G(t.substring(2));return this._selector.addAddress(),this._addParam(r,!1)}addAddressArray(e){const t=[];for(const[r,n]of e.entries()){let e;if("string"==typeof n){if(40!==n.length&&42!==n.length)throw new Error("`address` type requires parameter to be 40 or 42 characters");e=n}else e=n.toString();const r=40===e.length?r$G(e):r$G(e.substring(2));t.push(r)}return this._selector.addAddressArray(),this._addParam(t,!0)}addFunction(e,t){const r=r$G(e),n=t._build();if(20!==r.length)throw new Error("`function` type requires parameter `address` to be exactly 20 bytes");this._selector.addFunction();const o=new Uint8Array(24);return o.set(r,0),o.set(n,20),this._addParam(o,!1)}_addParam(e,t){const r=this._selector._paramTypes.length-1,n=u$e(e,this._selector._paramTypes[r]);return this._arguments.push({dynamic:t,value:n}),this}_build(e){const t=null!=e,r=t?4:0,n=0===this._arguments.length?r:32*this._arguments.length+this._arguments.map((e=>e.dynamic?e.value.length:0)).reduce(((e,t)=>e+t))+r,o=new Uint8Array(n);t&&o.set(this._selector._build(e),0);let i=32*this._arguments.length;for(const[s,{dynamic:a,value:c}]of this._arguments.entries())if(a){const e=E$8(o,r+32*s+28);e.setUint32(0,i),o.set(c,e.getUint32(0)+r),i+=c.length}else o.set(c,r+32*s);return o}};function u$e(e,t){let r,n=new Uint8Array(32),o=E$8(n);if(t.array){if(!Array.isArray(e))throw new TypeError("SolidityType indicates type is array, but parameter is not an array");const r=[];for(const[n,o]of e.entries()){const e=u$e(o,{ty:t.ty,array:!1});r.push(e)}const i=r.map((e=>e.length)).reduce(((e,t)=>e+t),0);switch(t.ty){case d$c.uint8:case d$c.int8:case d$c.uint16:case d$c.int16:case d$c.uint24:case d$c.int24:case d$c.uint32:case d$c.int32:case d$c.uint40:case d$c.int40:case d$c.uint48:case d$c.int48:case d$c.uint56:case d$c.int56:case d$c.uint64:case d$c.int64:case d$c.uint72:case d$c.int72:case d$c.uint80:case d$c.int80:case d$c.uint88:case d$c.int88:case d$c.uint96:case d$c.int96:case d$c.uint104:case d$c.int104:case d$c.uint112:case d$c.int112:case d$c.uint120:case d$c.int120:case d$c.uint128:case d$c.int128:case d$c.uint136:case d$c.int136:case d$c.uint144:case d$c.int144:case d$c.uint152:case d$c.int152:case d$c.uint160:case d$c.int160:case d$c.uint168:case d$c.int168:case d$c.uint176:case d$c.int176:case d$c.uint184:case d$c.int184:case d$c.uint192:case d$c.int192:case d$c.uint200:case d$c.int200:case d$c.uint208:case d$c.int208:case d$c.uint216:case d$c.int216:case d$c.uint224:case d$c.int224:case d$c.uint232:case d$c.int232:case d$c.uint240:case d$c.int240:case d$c.uint248:case d$c.int248:case d$c.uint256:case d$c.int256:case d$c.bool:case d$c.bytes32:case d$c.address:case d$c.func:n=new Uint8Array(i+32);break;case d$c.bytes:case d$c.string:n=new Uint8Array(32*r.length+i+32);break;default:throw new TypeError(`Expected param type to be ArgumentType, but received ${t.ty}`)}o=E$8(n,28),o.setUint32(0,r.length);let s=32*r.length;for(const[e,o]of r.entries())switch(t.ty){case d$c.uint8:case d$c.int8:case d$c.uint16:case d$c.int16:case d$c.uint24:case d$c.int24:case d$c.uint32:case d$c.int32:case d$c.uint40:case d$c.int40:case d$c.uint48:case d$c.int48:case d$c.uint56:case d$c.int56:case d$c.uint64:case d$c.int64:case d$c.uint72:case d$c.int72:case d$c.uint80:case d$c.int80:case d$c.uint88:case d$c.int88:case d$c.uint96:case d$c.int96:case d$c.uint104:case d$c.int104:case d$c.uint112:case d$c.int112:case d$c.uint120:case d$c.int120:case d$c.uint128:case d$c.int128:case d$c.uint136:case d$c.int136:case d$c.uint144:case d$c.int144:case d$c.uint152:case d$c.int152:case d$c.uint160:case d$c.int160:case d$c.uint168:case d$c.int168:case d$c.uint176:case d$c.int176:case d$c.uint184:case d$c.int184:case d$c.uint192:case d$c.int192:case d$c.uint200:case d$c.int200:case d$c.uint208:case d$c.int208:case d$c.uint216:case d$c.int216:case d$c.uint224:case d$c.int224:case d$c.uint232:case d$c.int232:case d$c.uint240:case d$c.int240:case d$c.uint248:case d$c.int248:case d$c.uint256:case d$c.int256:case d$c.bool:case d$c.bytes32:case d$c.address:case d$c.func:n.set(o,32*e+32);break;case d$c.bytes:case d$c.string:const r=E$8(n,32*(e+1)+28);r.setUint32(0,s),n.set(o,r.getUint32(0)+32),s+=o.length;break;default:throw new TypeError(`Expected param type to be ArgumentType, but received ${t.ty}`)}return n}switch(t.ty){case d$c.uint8:case d$c.int8:case d$c.uint16:case d$c.int16:case d$c.uint24:case d$c.int24:case d$c.uint32:case d$c.int32:case d$c.uint40:case d$c.int40:case d$c.uint48:case d$c.int48:case d$c.uint56:case d$c.int56:case d$c.uint64:case d$c.int64:case d$c.uint72:case d$c.int72:case d$c.uint80:case d$c.int80:case d$c.uint88:case d$c.int88:case d$c.uint96:case d$c.int96:case d$c.uint104:case d$c.int104:case d$c.uint112:case d$c.int112:case d$c.uint120:case d$c.int120:case d$c.uint128:case d$c.int128:case d$c.uint136:case d$c.int136:case d$c.uint144:case d$c.int144:case d$c.uint152:case d$c.int152:case d$c.uint160:case d$c.int160:case d$c.uint168:case d$c.int168:case d$c.uint176:case d$c.int176:case d$c.uint184:case d$c.int184:case d$c.uint192:case d$c.int192:case d$c.uint200:case d$c.int200:case d$c.uint208:case d$c.int208:case d$c.uint216:case d$c.int216:case d$c.uint224:case d$c.int224:case d$c.uint232:case d$c.int232:case d$c.uint240:case d$c.int240:case d$c.uint248:case d$c.int248:case d$c.int256:case d$c.uint256:{let r=e.toString(16);r=e>0||0==e?"0x"+r:r.slice(0,1)+"0x"+r.slice(1);return arrayify(defaultAbiCoder.encode([y$9(t)],[r]))}case d$c.address:return n.set(e,12),n;case d$c.bool:return n[31]=e?1:0,n;case d$c.func:return n.set(e,8),n;case d$c.bytes32:return n.set(e,0),n;case d$c.bytes:case d$c.string:return r=e instanceof Uint8Array?e:n$v(e),n=Math.floor(r.length/32)>=0?0!==Math.floor(r.length%32)?new Uint8Array(32*(Math.floor(r.length/32)+1)+32):new Uint8Array(32*Math.floor(r.length/32)+32):new Uint8Array(64),n.set(r,32),o=E$8(n,28),o.setUint32(0,r.length),n;default:throw new Error(`Unsupported argument type: ${t.toString()}`)}}let l$f=class e extends h$b{constructor(e={}){super(),this._contractId=null,null!=e.contractId&&this.setContractId(e.contractId),this._gas=null,null!=e.gas&&this.setGas(e.gas),this._functionParameters=null,null!=e.functionParameters&&(e.functionParameters instanceof Uint8Array?this.setFunctionParameters(e.functionParameters):this.setFunction(e.functionParameters.name,e.functionParameters.parameters)),this._maxResultSize=null,null!=e.maxResultSize&&this.setMaxResultSize(e.maxResultSize),this._senderAccountId=null,null!=e.senderAccountId&&this.setSenderAccountId(e.senderAccountId)}static _fromProtobuf(t){const r=t.contractCallLocal;return new e({contractId:null!=r.contractID?v$7._fromProtobuf(r.contractID):void 0,gas:null!=r.gas?r.gas:void 0,functionParameters:null!=r.functionParameters?r.functionParameters:void 0,maxResultSize:null!=r.maxResultSize?r.maxResultSize:void 0})}get contractId(){return this._contractId}setContractId(e){return this._contractId="string"==typeof e?v$7.fromString(e):e.clone(),this}get gas(){return this._gas}setGas(e){return this._gas=e instanceof Long?e:Long.fromValue(e),this}get senderAccountId(){return this._senderAccountId}setSenderAccountId(e){return this._senderAccountId="string"==typeof e?f$8.fromString(e):e,this}get functionParameters(){return this._functionParameters}setFunctionParameters(e){return this._functionParameters=e,this}setFunction(e,t){return this._functionParameters=(null!=t?t:new _$a)._build(e),this}setMaxResultSize(e){return this._maxResultSize=e instanceof Long?e:Long.fromValue(e),this}_validateChecksums(e){null!=this._contractId&&this._contractId.validateChecksum(e)}_mapStatusError(e,t,r){const{nodeTransactionPrecheckCode:n}=this._mapResponseHeader(t),o=e$z._fromCode(null!=n?n:proto_1.ResponseCodeEnum.OK);if(!t.contractCallLocal.functionResult)return new n$y({nodeId:r,status:o,transactionId:this._getTransactionId(),contractFunctionResult:null});const i=this._mapResponseSync(t);return new n$y({nodeId:r,status:o,transactionId:this._getTransactionId(),contractFunctionResult:i})}_execute(e,t){return e.smartContract.contractCallLocalMethod(t)}_mapResponseHeader(e){return e.contractCallLocal.header}_mapResponse(e){const t=e.contractCallLocal;return Promise.resolve(l$k._fromProtobuf(t.functionResult,!1))}_mapResponseSync(e){const t=e.contractCallLocal;return l$k._fromProtobuf(t.functionResult,!1)}_onMakeRequest(e){return{contractCallLocal:{header:e,contractID:null!=this._contractId?this._contractId._toProtobuf():null,gas:this._gas,maxResultSize:this._maxResultSize,functionParameters:this._functionParameters,senderId:null!=this._senderAccountId?this._senderAccountId._toProtobuf():null}}}_getLogId(){return`ContractCallQuery:${(null!=this._paymentTransactionId&&null!=this._paymentTransactionId.validStart?this._paymentTransactionId.validStart:this._timestamp).toString()}`}};m$7.set("contractCallLocal",l$f._fromProtobuf);let l$e=class e extends P$5{constructor(e={}){super(),this._keys=null,this._expirationTime=new s$r(0,0).plusNanos(Long.fromNumber(Date.now()).mul(1e6).add(I$7.mul(1e9))),this._contents=null,this._fileMemo=null,this._defaultMaxTransactionFee=new e$A(5),null!=e.keys&&this.setKeys(e.keys),null!=e.expirationTime&&this.setExpirationTime(e.expirationTime),null!=e.contents&&this.setContents(e.contents),e.fileMemo&&null!=e.fileMemo&&this.setFileMemo(e.fileMemo)}static _fromProtobuf(t,r,n,o,i){const s=i[0].fileCreate;return P$5._fromProtobufTransactions(new e({keys:null!=s.keys&&null!=s.keys.keys?s.keys.keys.map((e=>t$y._fromProtobufKey(e))):void 0,expirationTime:null!=s.expirationTime?s$r._fromProtobuf(s.expirationTime):void 0,contents:null!=s.contents?s.contents:void 0,fileMemo:null!=s.memo?s.memo:void 0}),t,r,n,o,i)}get keys(){return this._keys}setKeys(e){if(this._requireNotFrozen(),e instanceof s$q&&null!=e.threshold)throw new Error("Cannot set threshold key as file key");return this._keys=e instanceof s$q?e.toArray():e,this}get expirationTime(){return this._expirationTime}setExpirationTime(e){return this._requireNotFrozen(),this._expirationTime=e instanceof s$r?e:s$r.fromDate(e),this}get contents(){return this._contents}setContents(e){return this._requireNotFrozen(),this._contents=e instanceof Uint8Array?e:n$v(e),this}get fileMemo(){return this._fileMemo}setFileMemo(e){return this._requireNotFrozen(),this._fileMemo=e,this}_execute(e,t){return e.file.createFile(t)}_getTransactionDataCase(){return"fileCreate"}_makeTransactionData(){return{keys:null!=this._keys?{keys:this._keys.map((e=>e._toProtobufKey()))}:null,expirationTime:this._expirationTime._toProtobuf(),contents:this._contents,memo:this._fileMemo}}_getLogId(){return`FileCreateTransaction:${this._transactionIds.current.validStart.toString()}`}};k$7.set("fileCreate",l$e._fromProtobuf);let c$c=class e extends P$5{constructor(e={}){super(),this._fileId=null,this._contents=null,this._maxChunks=20,this._chunkSize=4096,this._chunkInterval=10,this._defaultMaxTransactionFee=new e$A(5),null!=e.fileId&&this.setFileId(e.fileId),null!=e.contents&&this.setContents(e.contents),null!=e.maxChunks&&this.setMaxChunks(e.maxChunks),null!=e.chunkSize&&this.setChunkSize(e.chunkSize),null!=e.chunkInterval&&this.setChunkInterval(e.chunkInterval),this._transactionIds=new t$t}static _fromProtobuf(t,r,n,o,i){var s;const a=i[0].fileAppend;let c;const u=o.length>0?o.length:1;for(let e=0;e1){const e=n[0].validStart,t=n[1].validStart;e&&t&&(h=t.nanos.sub(e.nanos).toNumber())}return P$5._fromProtobufTransactions(new e({fileId:null!=a.fileID?u$j._fromProtobuf(a.fileID):void 0,contents:c,chunkSize:l,maxChunks:d,chunkInterval:h}),t,r,n,o,i)}get fileId(){return this._fileId}setFileId(e){return this._requireNotFrozen(),this._fileId="string"==typeof e?u$j.fromString(e):e.clone(),this}getRequiredChunks(){return null==this._contents?1:Math.ceil(this._contents.length/this._chunkSize)}get contents(){return this._contents}setContents(e){return this._requireNotFrozen(),this._contents=e instanceof Uint8Array?e:n$v(e),this}get maxChunks(){return this._maxChunks}setMaxChunks(e){return this._requireNotFrozen(),this._maxChunks=e,this}get chunkSize(){return this._chunkSize}setChunkSize(e){return this._chunkSize=e,this}get chunkInterval(){return this._chunkInterval}setChunkInterval(e){return this._chunkInterval=e,this}freezeWith(e){if(super.freezeWith(e),null==this._contents)return this;let t=this._getTransactionId();this._transactionIds.locked=!1,this._transactions.clear(),this._transactionIds.clear(),this._signedTransactions.clear();for(let r=0;rthis._chunkSize)throw new Error(`cannot schedule \`FileAppendTransaction\` with message over ${this._chunkSize} bytes`);return super.schedule()}async execute(e,t){return(await this.executeAll(e,t))[0]}async executeAll(e,t){if(this.maxChunks&&this.getRequiredChunks()>this.maxChunks)throw new Error(`cannot execute \`FileAppendTransaction\` with more than ${this.maxChunks} chunks`);super._isFrozen()||this.freezeWith(e);const r=this._getTransactionId(),n=e.operatorAccountId;null!=n&&n.equals(r.accountId)&&await super.signWithOperator(e);const o=[];let i=t;for(let s=0;sthis.maxChunks)throw new Error(`cannot build \`FileAppendTransaction\` with more than ${this.maxChunks} chunks`);this._transactionIds.locked=!1,this._transactions.clear(),this._transactionIds.clear(),this._signedTransactions.clear();for(let i=0;ithis.maxChunks)throw new Error(`cannot build \`FileAppendTransaction\` with more than ${this.maxChunks} chunks`);for(let e=0;ee$l.__fromProtobufKey(e)));let r$u=class e extends P$5{constructor(e={}){super(),this._ethereumData=null,this._callDataFileId=null,this._maxGasAllowance=null,null!=e.ethereumData&&this.setEthereumData(e.ethereumData),null!=e.callData&&this.setCallDataFileId(e.callData),null!=e.callDataFileId&&this.setCallDataFileId(e.callDataFileId),null!=e.maxGasAllowance&&this.setMaxGasAllowanceHbar(e.maxGasAllowance)}static _fromProtobuf(t,r,n,o,i){const s=i[0].ethereumTransaction;return P$5._fromProtobufTransactions(new e({ethereumData:null!=s.ethereumData?s.ethereumData:void 0,callData:null!=s.callData?u$j._fromProtobuf(s.callData):void 0,maxGasAllowance:null!=s.maxGasAllowance?e$A.fromTinybars(s.maxGasAllowance):void 0}),t,r,n,o,i)}get ethereumData(){return this._ethereumData}setEthereumData(e){return this._requireNotFrozen(),this._ethereumData=e,this}get callData(){return this.callDataFileId}setCallData(e){return this.setCallDataFileId(e)}get callDataFileId(){return this._callDataFileId}setCallDataFileId(e){return this._requireNotFrozen(),this._callDataFileId=e,this}get maxGasAllowance(){return this._maxGasAllowance}setMaxGasAllowance(e){return this.setMaxGasAllowanceHbar(e)}setMaxGasAllowanceHbar(e){return this._requireNotFrozen(),this._maxGasAllowance=e instanceof e$A?e:new e$A(e),this}_validateChecksums(e){null!=this._ethereumData&&this._ethereumData instanceof u$j&&this._ethereumData.validateChecksum(e)}_execute(e,t){return e.smartContract.callEthereum(t)}_getTransactionDataCase(){return"ethereumTransaction"}_makeTransactionData(){return{ethereumData:this._ethereumData,callData:null!=this._callDataFileId?this._callDataFileId._toProtobuf():null,maxGasAllowance:null!=this._maxGasAllowance?this._maxGasAllowance.toTinybars():null}}_getLogId(){return`EthereumTransaction:${this._transactionIds.current.validStart.toString()}`}};k$7.set("ethereumTransaction",r$u._fromProtobuf);let e$k=class{constructor(e){this.callData=e.callData}static fromBytes(e){if(0===e.length)throw new Error("empty bytes");switch(e[0]){case 1:return t$z.ethereumTransactionDataEip2930FromBytes(e);case 2:return t$z.ethereumTransactionDataEip1559FromBytes(e);default:return t$z.ethereumTransactionDataLegacyFromBytes(e)}}toBytes(){throw new Error("not implemented")}toString(){throw new Error("not implemented")}toJSON(){throw new Error("not implemented")}},a$f=class e extends e$k{constructor(e){super(e),this.nonce=e.nonce,this.gasPrice=e.gasPrice,this.gasLimit=e.gasLimit,this.to=e.to,this.value=e.value,this.v=e.v,this.r=e.r,this.s=e.s}static fromBytes(t){if(0===t.length)throw new Error("empty bytes");const r=decode$3(t);if(9!=r.length)throw new Error("invalid ethereum transaction data");return new e({nonce:r$G(r[0]),gasPrice:r$G(r[1]),gasLimit:r$G(r[2]),to:r$G(r[3]),value:r$G(r[4]),callData:r$G(r[5]),v:r$G(r[6]),r:r$G(r[7]),s:r$G(r[8])})}toBytes(){return r$G(encode$2([this.nonce,this.gasPrice,this.gasLimit,this.to,this.value,this.callData,this.v,this.r,this.s]))}toString(){return JSON.stringify(this.toJSON(),null,2)}toJSON(){return{nonce:n$C(this.nonce),gasPrice:n$C(this.gasPrice),gasLimit:n$C(this.gasLimit),to:n$C(this.to),value:n$C(this.value),callData:n$C(this.callData),v:n$C(this.v),r:n$C(this.r),s:n$C(this.s)}}};t$z.setEthereumTransactionDataLegacyFromBytes((e=>a$f.fromBytes(e)));let e$j=class e extends e$k{constructor(e){super(e),this.chainId=e.chainId,this.nonce=e.nonce,this.maxPriorityGas=e.maxPriorityGas,this.maxGas=e.maxGas,this.gasLimit=e.gasLimit,this.to=e.to,this.value=e.value,this.accessList=e.accessList,this.recId=e.recId,this.r=e.r,this.s=e.s}static fromBytes(t){if(0===t.length)throw new Error("empty bytes");const r=decode$3(t.subarray(1));if(!Array.isArray(r))throw new Error("ethereum data is not a list");if(12!=r.length)throw new Error("invalid ethereum transaction data");return new e({chainId:r$G(r[0]),nonce:r$G(r[1]),maxPriorityGas:r$G(r[2]),maxGas:r$G(r[3]),gasLimit:r$G(r[4]),to:r$G(r[5]),value:r$G(r[6]),callData:r$G(r[7]),accessList:r[8].map((e=>r$G(e))),recId:r$G(r[9]),r:r$G(r[10]),s:r$G(r[11])})}toBytes(){return r$G("02"+encode$2([this.chainId,this.nonce,this.maxPriorityGas,this.maxGas,this.gasLimit,this.to,this.value,this.callData,this.accessList,this.recId,this.r,this.s]).substring(2))}toString(){return JSON.stringify(this.toJSON(),null,2)}toJSON(){return{chainId:n$C(this.chainId),nonce:n$C(this.nonce),maxPriorityGas:n$C(this.maxPriorityGas),maxGas:n$C(this.maxGas),gasLimit:n$C(this.gasLimit),to:n$C(this.to),value:n$C(this.value),callData:n$C(this.callData),accessList:this.accessList.map((e=>n$C(e))),recId:n$C(this.recId),r:n$C(this.r),s:n$C(this.s)}}};t$z.setEthereumTransactionDataEip1559FromBytes((e=>e$j.fromBytes(e)));let a$e=class e extends e$k{constructor(e){super(e),this.chainId=e.chainId,this.nonce=e.nonce,this.gasPrice=e.gasPrice,this.gasLimit=e.gasLimit,this.to=e.to,this.value=e.value,this.accessList=e.accessList,this.recId=e.recId,this.r=e.r,this.s=e.s}static fromBytes(t){if(0===t.length)throw new Error("empty bytes");const r=decode$3(t.subarray(1));if(!Array.isArray(r))throw new Error("ethereum data is not a list");if(11!==r.length)throw new Error("invalid ethereum transaction data");return new e({chainId:r$G(r[0]),nonce:r$G(r[1]),gasPrice:r$G(r[2]),gasLimit:r$G(r[3]),to:r$G(r[4]),value:r$G(r[5]),callData:r$G(r[6]),accessList:r[7].map((e=>r$G(e))),recId:r$G(r[8]),r:r$G(r[9]),s:r$G(r[10])})}toBytes(){return r$G("01"+encode$2([this.chainId,this.nonce,this.gasPrice,this.gasLimit,this.to,this.value,this.callData,this.accessList,this.recId,this.r,this.s]).substring(2))}toString(){return JSON.stringify(this.toJSON(),null,2)}toJSON(){return{chainId:n$C(this.chainId),nonce:n$C(this.nonce),gasPrice:n$C(this.gasPrice),gasLimit:n$C(this.gasLimit),to:n$C(this.to),value:n$C(this.value),callData:n$C(this.callData),accessList:this.accessList.map((e=>n$C(e))),recId:n$C(this.recId),r:n$C(this.r),s:n$C(this.s)}}};t$z.setEthereumTransactionDataEip2930FromBytes((e=>a$e.fromBytes(e)));let e$i=class e{constructor(e){this._code=e,Object.freeze(this)}toString(){switch(this){case e.Default:return"DEFAULT";case e.TokenFungibleCommon:return"TOKEN_FUNGIBLE_COMMON";case e.TokenNonFungibleUnique:return"TOKEN_NON_FUNGIBLE_UNIQUE";case e.TokenFungibleCommonWithCustomFees:return"TOKEN_FUNGIBLE_COMMON_WITH_CUSTOM_FEES";case e.TokenNonFungibleUniqueWithCustomFees:return"TOKEN_NON_FUNGIBLE_UNIQUE_WITH_CUSTOM_FEES";case e.ScheduleCreateContractCall:return"SCHEDULE_CREATE_CONTRACT_CALL";case e.TopicCreateWithCustomFees:return"TOPIC_CREATE_WITH_CUSTOM_FEES";default:return`UNKNOWN (${this._code})`}}static _fromCode(t){switch(t){case 0:return e.Default;case 1:return e.TokenFungibleCommon;case 2:return e.TokenNonFungibleUnique;case 3:return e.TokenFungibleCommonWithCustomFees;case 4:return e.TokenNonFungibleUniqueWithCustomFees;case 5:return e.ScheduleCreateContractCall;case 6:return e.TopicCreateWithCustomFees}throw new Error(`(BUG) SubType.fromCode() does not handle code: ${t}`)}valueOf(){return this._code}};e$i.Default=new e$i(0),e$i.TokenFungibleCommon=new e$i(1),e$i.TokenNonFungibleUnique=new e$i(2),e$i.TokenFungibleCommonWithCustomFees=new e$i(3),e$i.TokenNonFungibleUniqueWithCustomFees=new e$i(4),e$i.ScheduleCreateContractCall=new e$i(5),e$i.TopicCreateWithCustomFees=new e$i(6);let e$h=class e{constructor(e){this._code=e,Object.freeze(this)}toString(){switch(this){case e.None:return"NONE";case e.CryptoTransfer:return"CryptoTransfer";case e.CryptoUpdate:return"CryptoUpdate";case e.CryptoDelete:return"CryptoDelete";case e.CryptoAddLiveHash:return"CryptoAddLiveHash";case e.CryptoDeleteLiveHash:return"CryptoDeleteLiveHash";case e.ContractCall:return"ContractCall";case e.ContractCreate:return"ContractCreate";case e.ContractUpdate:return"ContractUpdate";case e.FileCreate:return"FileCreate";case e.FileAppend:return"FileAppend";case e.FileUpdate:return"FileUpdate";case e.FileDelete:return"FileDelete";case e.CryptoGetAccountBalance:return"CryptoGetAccountBalance";case e.CryptoGetAccountRecords:return"CryptoGetAccountRecords";case e.CryptoGetInfo:return"CryptoGetInfo";case e.ContractCallLocal:return"ContractCallLocal";case e.ContractGetInfo:return"ContractGetInfo";case e.ContractGetBytecode:return"ContractGetBytecode";case e.GetBySolidityID:return"GetBySolidityID";case e.GetByKey:return"GetByKey";case e.CryptoGetLiveHash:return"CryptoGetLiveHash";case e.CryptoGetStakers:return"CryptoGetStakers";case e.FileGetContents:return"FileGetContents";case e.FileGetInfo:return"FileGetInfo";case e.TransactionGetRecord:return"TransactionGetRecord";case e.ContractGetRecords:return"ContractGetRecords";case e.CryptoCreate:return"CryptoCreate";case e.SystemDelete:return"SystemDelete";case e.SystemUndelete:return"SystemUndelete";case e.ContractDelete:return"ContractDelete";case e.Freeze:return"Freeze";case e.CreateTransactionRecord:return"CreateTransactionRecord";case e.CryptoAccountAutoRenew:return"CryptoAccountAutoRenew";case e.ContractAutoRenew:return"ContractAutoRenew";case e.GetVersionInfo:return"GetVersionInfo";case e.TransactionGetReceipt:return"TransactionGetReceipt";case e.ConsensusCreateTopic:return"ConsensusCreateTopic";case e.ConsensusUpdateTopic:return"ConsensusUpdateTopic";case e.ConsensusDeleteTopic:return"ConsensusDeleteTopic";case e.ConsensusGetTopicInfo:return"ConsensusGetTopicInfo";case e.ConsensusSubmitMessage:return"ConsensusSubmitMessage";case e.UncheckedSubmit:return"UncheckedSubmit";case e.TokenCreate:return"TokenCreate";case e.TokenGetInfo:return"TokenGetInfo";case e.TokenFreezeAccount:return"TokenFreezeAccount";case e.TokenUnfreezeAccount:return"TokenUnfreezeAccount";case e.TokenGrantKycToAccount:return"TokenGrantKycToAccount";case e.TokenRevokeKycFromAccount:return"TokenRevokeKycFromAccount";case e.TokenDelete:return"TokenDelete";case e.TokenUpdate:return"TokenUpdate";case e.TokenMint:return"TokenMint";case e.TokenBurn:return"TokenBurn";case e.TokenAccountWipe:return"TokenAccountWipe";case e.TokenAssociateToAccount:return"TokenAssociateToAccount";case e.TokenDissociateFromAccount:return"TokenDissociateFromAccount";case e.ScheduleCreate:return"ScheduleCreate";case e.ScheduleDelete:return"ScheduleDelete";case e.ScheduleSign:return"ScheduleSign";case e.ScheduleGetInfo:return"ScheduleGetInfo";case e.TokenGetAccountNftInfos:return"TokenGetAccountNftInfos";case e.TokenGetNftInfo:return"TokenGetNftInfo";case e.TokenGetNftInfos:return"TokenGetNftInfos";case e.TokenFeeScheduleUpdate:return"TokenFeeScheduleUpdate";case e.NetworkGetExecutionTime:return"NetworkGetExecutionTime";case e.TokenPause:return"TokenPause";case e.TokenUnpause:return"TokenUnpause";case e.CryptoApproveAllowance:return"CryptoApproveAllowance";case e.CryptoDeleteAllowance:return"CryptoDeleteAllowance";case e.GetAccountDetails:return"GetAccountDetails";case e.EthereumTransaction:return"EthereumTransaction";case e.NodeStakeUpdate:return"NodeStakeUpdate";case e.Prng:return"UtilPrng";case e.TransactionGetFastRecord:return"TransactionGetFastRecord";case e.TokenUpdateNfts:return"TokenUpdateNfts";case e.NodeCreate:return"NodeCreate";case e.NodeUpdate:return"NodeUpdate";case e.NodeDelete:return"NodeDelete";case e.TokenReject:return"TokenReject";case e.TokenAirdrop:return"TokenAirdrop";case e.TokenCancelAirdrop:return"TokenCancelAirdrop";case e.TokenClaimAirdrop:return"TokenClaimAirdrop";case e.TssMessage:return"TssMessage";case e.TssVote:return"TssVote";case e.TssShareSignature:return"TssShareSignature";case e.TssEncryptionKey:return"TssEncryptionKey";case e.StateSignatureTransaction:return"StateSignatureTransaction";case e.HistoryAssemblySignature:return"HistoryAssemblySignature";case e.HistoryProofKeyPublication:return"HistoryProofKeyPublication";case e.HistoryProofVote:return"HistoryProofVote";case e.HintsKeyPublication:return"HintsKeyPublication";case e.HintsPreprocessingVote:return"HintsPreprocessingVote";case e.HintsPartialSignature:return"HintsPartialSignature";case e.CrsPublication:return"CrsPublication";case e.AtomicBatch:return"AtomicBatch";default:return`UNKNOWN (${this._code})`}}static _fromCode(t){switch(t){case 0:return e.None;case 1:return e.CryptoTransfer;case 2:return e.CryptoUpdate;case 3:return e.CryptoDelete;case 4:return e.CryptoAddLiveHash;case 5:return e.CryptoDeleteLiveHash;case 6:return e.ContractCall;case 7:return e.ContractCreate;case 8:return e.ContractUpdate;case 9:return e.FileCreate;case 10:return e.FileAppend;case 11:return e.FileUpdate;case 12:return e.FileDelete;case 13:return e.CryptoGetAccountBalance;case 14:return e.CryptoGetAccountRecords;case 15:return e.CryptoGetInfo;case 16:return e.ContractCallLocal;case 17:return e.ContractGetInfo;case 18:return e.ContractGetBytecode;case 19:return e.GetBySolidityID;case 20:return e.GetByKey;case 21:return e.CryptoGetLiveHash;case 22:return e.CryptoGetStakers;case 23:return e.FileGetContents;case 24:return e.FileGetInfo;case 25:return e.TransactionGetRecord;case 26:return e.ContractGetRecords;case 27:return e.CryptoCreate;case 28:return e.SystemDelete;case 29:return e.SystemUndelete;case 30:return e.ContractDelete;case 31:return e.Freeze;case 32:return e.CreateTransactionRecord;case 33:return e.CryptoAccountAutoRenew;case 34:return e.ContractAutoRenew;case 35:return e.GetVersionInfo;case 36:return e.TransactionGetReceipt;case 50:return e.ConsensusCreateTopic;case 51:return e.ConsensusUpdateTopic;case 52:return e.ConsensusDeleteTopic;case 53:return e.ConsensusGetTopicInfo;case 54:return e.ConsensusSubmitMessage;case 55:return e.UncheckedSubmit;case 56:return e.TokenCreate;case 58:return e.TokenGetInfo;case 59:return e.TokenFreezeAccount;case 60:return e.TokenUnfreezeAccount;case 61:return e.TokenGrantKycToAccount;case 62:return e.TokenRevokeKycFromAccount;case 63:return e.TokenDelete;case 64:return e.TokenUpdate;case 65:return e.TokenMint;case 66:return e.TokenBurn;case 67:return e.TokenAccountWipe;case 68:return e.TokenAssociateToAccount;case 69:return e.TokenDissociateFromAccount;case 70:return e.ScheduleCreate;case 71:return e.ScheduleDelete;case 72:return e.ScheduleSign;case 73:return e.ScheduleGetInfo;case 74:return e.TokenGetAccountNftInfos;case 75:return e.TokenGetNftInfo;case 76:return e.TokenGetNftInfos;case 77:return e.TokenFeeScheduleUpdate;case 78:return e.NetworkGetExecutionTime;case 79:return e.TokenPause;case 80:return e.TokenUnpause;case 81:return e.CryptoApproveAllowance;case 82:return e.CryptoDeleteAllowance;case 83:return e.GetAccountDetails;case 84:return e.EthereumTransaction;case 85:return e.NodeStakeUpdate;case 86:return e.Prng;case 87:return e.TransactionGetFastRecord;case 88:return e.TokenUpdateNfts;case 89:return e.NodeCreate;case 90:return e.NodeUpdate;case 91:return e.NodeDelete;case 92:return e.TokenReject;case 93:return e.TokenAirdrop;case 94:return e.TokenCancelAirdrop;case 95:return e.TokenClaimAirdrop;case 96:return e.TssMessage;case 97:return e.TssVote;case 98:return e.TssShareSignature;case 99:return e.TssEncryptionKey;case 100:return e.StateSignatureTransaction;case 101:return e.HintsKeyPublication;case 102:return e.HintsPreprocessingVote;case 103:return e.HintsPartialSignature;case 104:return e.HistoryAssemblySignature;case 105:return e.HistoryProofKeyPublication;case 106:return e.HistoryProofVote;case 107:return e.CrsPublication;case 108:return e.AtomicBatch}throw new Error(`(BUG) RequestType.fromCode() does not handle code: ${t}`)}valueOf(){return this._code}};e$h.None=new e$h(0),e$h.CryptoTransfer=new e$h(1),e$h.CryptoUpdate=new e$h(2),e$h.CryptoDelete=new e$h(3),e$h.CryptoAddLiveHash=new e$h(4),e$h.CryptoDeleteLiveHash=new e$h(5),e$h.ContractCall=new e$h(6),e$h.ContractCreate=new e$h(7),e$h.ContractUpdate=new e$h(8),e$h.FileCreate=new e$h(9),e$h.FileAppend=new e$h(10),e$h.FileUpdate=new e$h(11),e$h.FileDelete=new e$h(12),e$h.CryptoGetAccountBalance=new e$h(13),e$h.CryptoGetAccountRecords=new e$h(14),e$h.CryptoGetInfo=new e$h(15),e$h.ContractCallLocal=new e$h(16),e$h.ContractGetInfo=new e$h(17),e$h.ContractGetBytecode=new e$h(18),e$h.GetBySolidityID=new e$h(19),e$h.GetByKey=new e$h(20),e$h.CryptoGetLiveHash=new e$h(21),e$h.CryptoGetStakers=new e$h(22),e$h.FileGetContents=new e$h(23),e$h.FileGetInfo=new e$h(24),e$h.TransactionGetRecord=new e$h(25),e$h.ContractGetRecords=new e$h(26),e$h.CryptoCreate=new e$h(27),e$h.SystemDelete=new e$h(28),e$h.SystemUndelete=new e$h(29),e$h.ContractDelete=new e$h(30),e$h.Freeze=new e$h(31),e$h.CreateTransactionRecord=new e$h(32),e$h.CryptoAccountAutoRenew=new e$h(33),e$h.ContractAutoRenew=new e$h(34),e$h.GetVersionInfo=new e$h(35),e$h.TransactionGetReceipt=new e$h(36),e$h.ConsensusCreateTopic=new e$h(50),e$h.ConsensusUpdateTopic=new e$h(51),e$h.ConsensusDeleteTopic=new e$h(52),e$h.ConsensusGetTopicInfo=new e$h(53),e$h.ConsensusSubmitMessage=new e$h(54),e$h.UncheckedSubmit=new e$h(55),e$h.TokenCreate=new e$h(56),e$h.TokenGetInfo=new e$h(58),e$h.TokenFreezeAccount=new e$h(59),e$h.TokenUnfreezeAccount=new e$h(60),e$h.TokenGrantKycToAccount=new e$h(61),e$h.TokenRevokeKycFromAccount=new e$h(62),e$h.TokenDelete=new e$h(63),e$h.TokenUpdate=new e$h(64),e$h.TokenMint=new e$h(65),e$h.TokenBurn=new e$h(66),e$h.TokenAccountWipe=new e$h(67),e$h.TokenAssociateToAccount=new e$h(68),e$h.TokenDissociateFromAccount=new e$h(69),e$h.ScheduleCreate=new e$h(70),e$h.ScheduleDelete=new e$h(71),e$h.ScheduleSign=new e$h(72),e$h.ScheduleGetInfo=new e$h(73),e$h.TokenGetAccountNftInfos=new e$h(74),e$h.TokenGetNftInfo=new e$h(75),e$h.TokenGetNftInfos=new e$h(76),e$h.TokenFeeScheduleUpdate=new e$h(77),e$h.NetworkGetExecutionTime=new e$h(78),e$h.TokenPause=new e$h(79),e$h.TokenUnpause=new e$h(80),e$h.CryptoApproveAllowance=new e$h(81),e$h.CryptoDeleteAllowance=new e$h(82),e$h.GetAccountDetails=new e$h(83),e$h.EthereumTransaction=new e$h(84),e$h.NodeStakeUpdate=new e$h(85),e$h.Prng=new e$h(86),e$h.TransactionGetFastRecord=new e$h(87),e$h.TokenUpdateNfts=new e$h(88),e$h.NodeCreate=new e$h(89),e$h.NodeUpdate=new e$h(90),e$h.NodeDelete=new e$h(91),e$h.TokenReject=new e$h(92),e$h.TokenAirdrop=new e$h(93),e$h.TokenCancelAirdrop=new e$h(94),e$h.TokenClaimAirdrop=new e$h(95),e$h.TssMessage=new e$h(96),e$h.TssVote=new e$h(97),e$h.TssShareSignature=new e$h(98),e$h.TssEncryptionKey=new e$h(99),e$h.StateSignatureTransaction=new e$h(100),e$h.HintsKeyPublication=new e$h(101),e$h.HintsPreprocessingVote=new e$h(102),e$h.HintsPartialSignature=new e$h(103),e$h.HistoryAssemblySignature=new e$h(104),e$h.HistoryProofKeyPublication=new e$h(105),e$h.HistoryProofVote=new e$h(106),e$h.CrsPublication=new e$h(107),e$h.HistoryAssemblySignature=new e$h(104),e$h.HistoryProofKeyPublication=new e$h(105),e$h.HistoryProofVote=new e$h(106),e$h.AtomicBatch=new e$h(108);let n$o=class e extends h$b{constructor(e={}){super(),this._fileId=null,null!=e.fileId&&this.setFileId(e.fileId)}static _fromProtobuf(t){const r=t.fileGetContents;return new e({fileId:null!=r.fileID?u$j._fromProtobuf(r.fileID):void 0})}_validateChecksums(e){null!=this._fileId&&this._fileId.validateChecksum(e)}_execute(e,t){return e.file.getFileContent(t)}get fileId(){return this._fileId}setFileId(e){return this._fileId="string"==typeof e?u$j.fromString(e):e.clone(),this}_mapResponseHeader(e){return e.fileGetContents.header}_mapResponse(e){const t=e.fileGetContents.fileContents.contents;return Promise.resolve(t)}_onMakeRequest(e){return{fileGetContents:{header:e,fileID:null!=this._fileId?this._fileId._toProtobuf():null}}}_getLogId(){return`FileContentsQuery:${(null!=this._paymentTransactionId&&null!=this._paymentTransactionId.validStart?this._paymentTransactionId.validStart:this._timestamp).toString()}`}};m$7.set("fileGetContents",n$o._fromProtobuf);const{proto:l$d}=e$E;let f$7=class e{constructor(e){this.fileId=e.fileId,this.size=e.size,this.expirationTime=e.expirationTime,this.isDeleted=e.isDeleted,this.keys=e.keys,this.fileMemo=e.fileMemo,this.ledgerId=e.ledgerId,Object.freeze(this)}static _fromProtobuf(t){const r=t.size;return new e({fileId:u$j._fromProtobuf(t.fileID),size:r instanceof Long?r:Long.fromValue(r),expirationTime:s$r._fromProtobuf(t.expirationTime),isDeleted:t.deleted,keys:null!=t.keys?s$q.__fromProtobufKeyList(t.keys):new s$q,fileMemo:null!=t.memo?t.memo:"",ledgerId:null!=t.ledgerId?r$x.fromBytes(t.ledgerId):null})}_toProtobuf(){return{fileID:this.fileId._toProtobuf(),size:this.size,expirationTime:this.expirationTime._toProtobuf(),deleted:this.isDeleted,keys:this.keys._toProtobufKey().keyList,memo:this.fileMemo,ledgerId:null!=this.ledgerId?this.ledgerId.toBytes():null}}static fromBytes(t){return e._fromProtobuf(proto_1.FileGetInfoResponse.FileInfo.decode(t))}toBytes(){return l$d.FileGetInfoResponse.FileInfo.encode(this._toProtobuf()).finish()}},o$l=class e extends h$b{constructor(e={}){super(),this._fileId=null,null!=e.fileId&&this.setFileId(e.fileId)}static _fromProtobuf(t){const r=t.fileGetInfo;return new e({fileId:null!=r.fileID?u$j._fromProtobuf(r.fileID):void 0})}get fileId(){return this._fileId}setFileId(e){return this._fileId="string"==typeof e?u$j.fromString(e):e.clone(),this}async getCost(e){return super.getCost(e)}_validateChecksums(e){null!=this._fileId&&this._fileId.validateChecksum(e)}_execute(e,t){return e.file.getFileInfo(t)}_mapResponseHeader(e){return e.fileGetInfo.header}_mapResponse(e,t,r){const n=e.fileGetInfo;return Promise.resolve(f$7._fromProtobuf(n.fileInfo))}_onMakeRequest(e){return{fileGetInfo:{header:e,fileID:null!=this._fileId?this._fileId._toProtobuf():null}}}_getLogId(){return`FileInfoQuery:${(null!=this._paymentTransactionId&&null!=this._paymentTransactionId.validStart?this._paymentTransactionId.validStart:this._timestamp).toString()}`}};m$7.set("fileGetInfo",o$l._fromProtobuf);let l$c=class e extends P$5{constructor(e={}){super(),this._fileId=null,this._keys=null,this._expirationTime=null,this._contents=null,this._fileMemo=null,null!=e.fileId&&this.setFileId(e.fileId),null!=e.keys&&this.setKeys(e.keys),null!=e.expirationTime&&this.setExpirationTime(e.expirationTime),null!=e.contents&&this.setContents(e.contents),e.fileMemo&&null!=e.fileMemo&&this.setFileMemo(e.fileMemo)}static _fromProtobuf(t,r,n,o,i){const s=i[0].fileUpdate;return P$5._fromProtobufTransactions(new e({fileId:null!=s.fileID?u$j._fromProtobuf(s.fileID):void 0,keys:null!=s.keys&&null!=s.keys.keys?s.keys.keys.map((e=>t$y._fromProtobufKey(e))):void 0,expirationTime:null!=s.expirationTime?s$r._fromProtobuf(s.expirationTime):void 0,contents:null!=s.contents?s.contents:void 0,fileMemo:null!=s.memo&&Object.hasOwn(s.memo,"value")?s.memo.value:void 0}),t,r,n,o,i)}get fileId(){return this._fileId}setFileId(e){return this._requireNotFrozen(),this._fileId="string"==typeof e?u$j.fromString(e):e.clone(),this}get keys(){return this._keys}setKeys(e){if(this._requireNotFrozen(),e instanceof s$q&&null!=e.threshold)throw new Error("Cannot set threshold key as file key");return this._keys=e instanceof s$q?e.toArray():e,this}get expirationTime(){return this._expirationTime}setExpirationTime(e){return this._requireNotFrozen(),this._expirationTime=e instanceof s$r?e:s$r.fromDate(e),this}get contents(){return this._contents}setContents(e){return this._requireNotFrozen(),this._contents=e instanceof Uint8Array?e:n$v(e),this}get fileMemo(){return this._fileMemo}setFileMemo(e){return this._requireNotFrozen(),this._fileMemo=e,this}clearFileMemo(){return this._requireNotFrozen(),this._fileMemo=null,this}_validateChecksums(e){null!=this._fileId&&this._fileId.validateChecksum(e)}_execute(e,t){return e.file.updateFile(t)}_getTransactionDataCase(){return"fileUpdate"}_makeTransactionData(){return{fileID:null!=this._fileId?this._fileId._toProtobuf():null,keys:null!=this._keys?{keys:this._keys.map((e=>e._toProtobufKey()))}:null,expirationTime:null!=this._expirationTime?this._expirationTime._toProtobuf():null,contents:this._contents,memo:null!=this._fileMemo?{value:this._fileMemo}:null}}_getLogId(){return`FileUpdateTransaction:${this._transactionIds.current.validStart.toString()}`}};k$7.set("fileUpdate",l$c._fromProtobuf);let i$e=class e extends P$5{constructor(e={}){super(),this._hash=null,this._keys=null,this._duration=null,this._accountId=null,null!=e.hash&&this.setHash(e.hash),null!=e.keys&&this.setKeys(e.keys),null!=e.duration&&this.setDuration(e.duration),null!=e.accountId&&this.setAccountId(e.accountId)}static _fromProtobuf(t,r,n,o,i){const s=i[0].cryptoAddLiveHash.liveHash;return P$5._fromProtobufTransactions(new e({hash:null!=s.hash?s.hash:void 0,keys:null!=s.keys&&null!=s.keys.keys?s.keys.keys.map((e=>t$y._fromProtobufKey(e))):void 0,duration:null!=s.duration&&null!=s.duration.seconds?s.duration.seconds:void 0,accountId:null!=s.accountId?f$8._fromProtobuf(s.accountId):void 0}),t,r,n,o,i)}get hash(){return this._hash}setHash(e){return this._requireNotFrozen(),this._hash=e,this}get keys(){return this._keys}setKeys(e){return this._requireNotFrozen(),this._keys=e instanceof s$q?e.toArray():e,this}get duration(){return this._duration}setDuration(e){return this._requireNotFrozen(),this._duration=e instanceof s$l?e:new s$l(e),this}get accountId(){return this._accountId}setAccountId(e){return this._requireNotFrozen(),this._accountId="string"==typeof e?f$8.fromString(e):e.clone(),this}_validateChecksums(e){null!=this._accountId&&this._accountId.validateChecksum(e)}_execute(e,t){return e.crypto.addLiveHash(t)}_getTransactionDataCase(){return"cryptoAddLiveHash"}_makeTransactionData(){return{liveHash:{hash:this._hash,keys:null!=this._keys?{keys:this._keys.map((e=>e._toProtobufKey()))}:void 0,duration:null!=this._duration?this._duration._toProtobuf():null,accountId:null!=this._accountId?this._accountId._toProtobuf():null}}}_getLogId(){return`LiveHashAddTransaction:${this._transactionIds.current.validStart.toString()}`}};k$7.set("cryptoAddLiveHash",i$e._fromProtobuf);let a$d=class e extends P$5{constructor(e={}){super(),this._hash=null,this._accountId=null,null!=e.hash&&this.setHash(e.hash),null!=e.accountId&&this.setAccountId(e.accountId)}static _fromProtobuf(t,r,n,o,i){const s=i[0].cryptoDeleteLiveHash;return P$5._fromProtobufTransactions(new e({hash:null!=s.liveHashToDelete?s.liveHashToDelete:void 0,accountId:null!=s.accountOfLiveHash?f$8._fromProtobuf(s.accountOfLiveHash):void 0}),t,r,n,o,i)}get hash(){return this._hash}setHash(e){return this._requireNotFrozen(),this._hash=e,this}get accountId(){return this._accountId}setAccountId(e){return this._requireNotFrozen(),this._accountId="string"==typeof e?f$8.fromString(e):e.clone(),this}_validateChecksums(e){null!=this._accountId&&this._accountId.validateChecksum(e)}_execute(e,t){return e.crypto.deleteLiveHash(t)}_getTransactionDataCase(){return"cryptoDeleteLiveHash"}_makeTransactionData(){return{liveHashToDelete:this._hash,accountOfLiveHash:null!=this._accountId?this._accountId._toProtobuf():null}}_getLogId(){return`LiveHashDeleteTransaction:${this._transactionIds.current.validStart.toString()}`}};k$7.set("cryptoDeleteLiveHash",a$d._fromProtobuf);let o$k=class e extends h$b{constructor(e={}){super(),this._accountId=null,null!=e.accountId&&this.setAccountId(e.accountId),this._hash=null,null!=e.hash&&this.setHash(e.hash)}static _fromProtobuf(t){const r=t.cryptoGetLiveHash;return new e({accountId:null!=r.accountID?f$8._fromProtobuf(r.accountID):void 0,hash:null!=r.hash?r.hash:void 0})}get accountId(){return this._accountId}setAccountId(e){return this._accountId=e instanceof f$8?e:f$8.fromString(e),this}get liveHash(){return this._hash}setHash(e){return this._hash=e,this}_validateChecksums(e){null!=this._accountId&&this._accountId.validateChecksum(e)}_execute(e,t){return e.crypto.getLiveHash(t)}_mapResponseHeader(e){return e.cryptoGetLiveHash.header}_mapResponse(e){const t=e.cryptoGetLiveHash;return Promise.resolve(s$k._fromProtobuf(t.liveHash))}_onMakeRequest(e){return{cryptoGetLiveHash:{header:e,accountID:null!=this._accountId?this._accountId._toProtobuf():null,hash:this._hash}}}_getLogId(){return`LiveHashQuery:${(null!=this._paymentTransactionId&&null!=this._paymentTransactionId.validStart?this._paymentTransactionId.validStart:this._timestamp).toString()}`}};m$7.set("cryptoGetLiveHash",o$k._fromProtobuf);let o$j=class e{constructor(e){this.major=e.major,this.minor=e.minor,this.patch=e.patch,Object.freeze(this)}static _fromProtobuf(t){return new e({major:t.major,minor:t.minor,patch:t.patch})}_toProtobuf(){return{major:this.major,minor:this.minor,patch:this.patch}}static fromBytes(t){return e._fromProtobuf(proto_1.SemanticVersion.decode(t))}toBytes(){return proto_1.SemanticVersion.encode(this._toProtobuf()).finish()}},e$g=class e{constructor(e){this.protobufVersion=e.protobufVersion,this.servicesVersion=e.servicesVersion,Object.freeze(this)}static _fromProtobuf(t){return new e({protobufVersion:o$j._fromProtobuf(t.hapiProtoVersion),servicesVersion:o$j._fromProtobuf(t.hederaServicesVersion)})}_toProtobuf(){return{hapiProtoVersion:this.protobufVersion._toProtobuf(),hederaServicesVersion:this.servicesVersion._toProtobuf()}}static fromBytes(t){return e._fromProtobuf(proto_1.NetworkGetVersionInfoResponse.decode(t))}toBytes(){return proto_1.NetworkGetVersionInfoResponse.encode(this._toProtobuf()).finish()}},o$i=class e extends h$b{constructor(){super()}static _fromProtobuf(t){return new e}_execute(e,t){return e.network.getVersionInfo(t)}_mapResponseHeader(e){return e.networkGetVersionInfo.header}_mapResponse(e){const t=e.networkGetVersionInfo;return Promise.resolve(e$g._fromProtobuf(t))}_onMakeRequest(e){return{networkGetVersionInfo:{header:e}}}_getLogId(){return`NetworkVersionInfoQuery:${(null!=this._paymentTransactionId&&null!=this._paymentTransactionId.validStart?this._paymentTransactionId.validStart:this._timestamp).toString()}`}};m$7.set("networkGetVersionInfo",o$i._fromProtobuf);let e$f=class e extends P$5{constructor(e={}){super(),this._range=null,null!=e.range&&this.setRange(e.range)}setRange(e){return this._range=e,this}get range(){return this._range}_validateChecksums(e){null!=this._range&&s$s(this._range)&&this._validateChecksums(e)}_execute(e,t){return e.util.prng(t)}static _fromProtobuf(t,r,n,o,i){const s=i[0].utilPrng;return P$5._fromProtobufTransactions(new e({range:s.range}),t,r,n,o,i)}_getTransactionDataCase(){return"utilPrng"}_makeTransactionData(){return{range:this.range}}_getLogId(){return`RandomGenerate:${this._transactionIds.current.validStart.toString()}`}};k$7.set("utilPrng",e$f._fromProtobuf);let u$c=class e extends P$5{constructor(e={}){super(),this._adminKey=null,this._scheduledTransaction=null,this._payerAccountId=null,this._scheduleMemo=null,this._scheduledSignerPublicKeys=new Set,this._expirationTime=null,this._waitForExpiry=null,null!=e.adminKey&&this.setAdminKey(e.adminKey),null!=e.payerAccountID&&this.setPayerAccountId(e.payerAccountID),null!=e.scheduleMemo&&this.setScheduleMemo(e.scheduleMemo),this._defaultMaxTransactionFee=new e$A(5)}static _fromProtobuf(t,r,n,o,i){const s=i[0],a=s.scheduleCreate,c=new e({adminKey:null!=a.adminKey?t$y._fromProtobufKey(a.adminKey):void 0,payerAccountID:null!=a.payerAccountID?f$8._fromProtobuf(a.payerAccountID):void 0,scheduleMemo:null!=a.memo?a.memo:void 0,waitForExpiry:null!=a.waitForExpiry?a.waitForExpiry:void 0,expirationTime:null!=a.expirationTime?s$r._fromProtobuf(a.expirationTime):void 0});if(null!=s.scheduleCreate){const e=s.scheduleCreate.scheduledTransactionBody,t=proto_1.TransactionBody.encode(e).finish(),r={signedTransactionBytes:proto_1.SignedTransaction.encode({bodyBytes:t}).finish()},n=proto_1.TransactionList.encode({transactionList:[r]}).finish(),o=P$5.fromBytes(n);c._setScheduledTransaction(o)}return P$5._fromProtobufTransactions(c,t,r,n,o,i)}_setScheduledTransaction(e){return this._scheduledTransaction=e,this}get adminKey(){return this._adminKey}setAdminKey(e){return this._requireNotFrozen(),this._adminKey=e,this}get payerAccountId(){return this._payerAccountId}setPayerAccountId(e){return this._requireNotFrozen(),this._payerAccountId=e,this}setScheduleMemo(e){return this._requireNotFrozen(),this._scheduleMemo=e,this}get getScheduleMemo(){return this._requireNotFrozen(),this._scheduleMemo}setScheduledTransaction(e){return this._requireNotFrozen(),e._requireNotFrozen(),this._scheduledTransaction=e.schedule()._scheduledTransaction,this}_validateChecksums(e){null!=this._payerAccountId&&this._payerAccountId.validateChecksum(e)}_execute(e,t){return e.schedule.createSchedule(t)}_getTransactionDataCase(){return"scheduleCreate"}_makeTransactionData(){return{adminKey:null!=this._adminKey?this._adminKey._toProtobufKey():null,payerAccountID:null!=this._payerAccountId?this._payerAccountId._toProtobuf():null,scheduledTransactionBody:null!=this._scheduledTransaction?this._scheduledTransaction._getScheduledTransactionBody():null,memo:this._scheduleMemo,waitForExpiry:this._waitForExpiry,expirationTime:null!=this._expirationTime?this._expirationTime._toProtobuf():null}}_getLogId(){return`ScheduleCreateTransaction:${this._transactionIds.current.validStart.toString()}`}setExpirationTime(e){return this._expirationTime=e,this}get expirationTime(){return this._requireNotFrozen(),this._expirationTime}setWaitForExpiry(e){return this._waitForExpiry=e,this}get waitForExpiry(){return this._requireNotFrozen(),this._waitForExpiry}};k$7.set("scheduleCreate",u$c._fromProtobuf),F$4.push((()=>new u$c));let u$b=class e extends P$5{constructor(e={}){super(),this._scheduleId=null,null!=e.scheduleId&&this.setScheduleId(e.scheduleId),this._defaultMaxTransactionFee=new e$A(5)}static _fromProtobuf(t,r,n,o,i){const s=i[0].scheduleDelete;return P$5._fromProtobufTransactions(new e({scheduleId:null!=s.scheduleID?o$v._fromProtobuf(s.scheduleID):void 0}),t,r,n,o,i)}get scheduleId(){return this._scheduleId}setScheduleId(e){return this._requireNotFrozen(),this._scheduleId="string"==typeof e?o$v.fromString(e):e.clone(),this}_validateChecksums(e){null!=this._scheduleId&&this._scheduleId.validateChecksum(e)}_execute(e,t){return e.schedule.deleteSchedule(t)}_getTransactionDataCase(){return"scheduleDelete"}_makeTransactionData(){return{scheduleID:null!=this._scheduleId?this._scheduleId._toProtobuf():null}}_getLogId(){return`ScheduleDeleteTransaction:${this._transactionIds.current.validStart.toString()}`}};k$7.set("scheduleDelete",u$b._fromProtobuf);const{proto:a$c}=e$E;let c$a=class e{constructor(e){this.scheduleId=e.scheduleId,this.creatorAccountId=e.creatorAccountID,this.payerAccountId=e.payerAccountID,this.schedulableTransactionBody=e.schedulableTransactionBody,this.signers=e.signers,this.scheduleMemo=e.scheduleMemo,this.adminKey=null!=e.adminKey?e.adminKey:null,this.expirationTime=e.expirationTime,this.executed=e.executed,this.deleted=e.deleted,this.scheduledTransactionId=e.scheduledTransactionId,this.waitForExpiry=e.waitForExpiry,Object.freeze(this)}static _fromProtobuf(t){return new e({scheduleId:o$v._fromProtobuf(t.scheduleID),creatorAccountID:null!=t.creatorAccountID?f$8._fromProtobuf(t.creatorAccountID):null,payerAccountID:null!=t.payerAccountID?f$8._fromProtobuf(t.payerAccountID):null,schedulableTransactionBody:null!=t.scheduledTransactionBody?t.scheduledTransactionBody:null,adminKey:null!=t.adminKey?t$y._fromProtobufKey(t.adminKey):null,signers:null!=t.signers?s$q.__fromProtobufKeyList(t.signers):null,scheduleMemo:null!=t.memo?t.memo:null,expirationTime:null!=t.expirationTime?s$r._fromProtobuf(t.expirationTime):null,executed:null!=t.executionTime?s$r._fromProtobuf(t.executionTime):null,deleted:null!=t.deletionTime?s$r._fromProtobuf(t.deletionTime):null,scheduledTransactionId:null!=t.scheduledTransactionID?i$j._fromProtobuf(t.scheduledTransactionID):null,waitForExpiry:null!=t.waitForExpiry&&t.waitForExpiry})}_toProtobuf(){return{scheduleID:null!=this.scheduleId?this.scheduleId._toProtobuf():null,creatorAccountID:null!=this.creatorAccountId?this.creatorAccountId._toProtobuf():null,payerAccountID:null!=this.payerAccountId?this.payerAccountId._toProtobuf():null,scheduledTransactionBody:null!=this.schedulableTransactionBody?this.schedulableTransactionBody:null,adminKey:null!=this.adminKey?this.adminKey._toProtobufKey():null,signers:null!=this.signers?this.signers._toProtobufKey().keyList:null,memo:null!=this.scheduleMemo?this.scheduleMemo:"",expirationTime:null!=this.expirationTime?this.expirationTime._toProtobuf():null,scheduledTransactionID:null!=this.scheduledTransactionId?this.scheduledTransactionId._toProtobuf():null,waitForExpiry:this.waitForExpiry}}get scheduledTransaction(){if(null==this.schedulableTransactionBody)throw new Error("Scheduled transaction body is empty");const e=new a$c.SchedulableTransactionBody(this.schedulableTransactionBody),t=e.data;return P$5.fromBytes(a$c.TransactionList.encode({transactionList:[{signedTransactionBytes:a$c.SignedTransaction.encode({bodyBytes:a$c.TransactionBody.encode({transactionFee:this.schedulableTransactionBody.transactionFee,memo:this.schedulableTransactionBody.memo,[t]:e[t]}).finish()}).finish()}]}).finish())}},r$t=class e extends h$b{constructor(e={}){super(),this._scheduleId=null,null!=e.scheduleId&&this.setScheduleId(e.scheduleId)}static _fromProtobuf(t){const r=t.scheduleGetInfo;return new e({scheduleId:null!=r.scheduleID?o$v._fromProtobuf(r.scheduleID):void 0})}get scheduleId(){return this._scheduleId}setScheduleId(e){return this._scheduleId="string"==typeof e?o$v.fromString(e):e.clone(),this}async getCost(e){return super.getCost(e)}_validateChecksums(e){null!=this._scheduleId&&this._scheduleId.validateChecksum(e)}_execute(e,t){return e.schedule.getScheduleInfo(t)}_mapResponseHeader(e){return e.scheduleGetInfo.header}_mapResponse(e,t,r){const n=e.scheduleGetInfo;return Promise.resolve(c$a._fromProtobuf(n.scheduleInfo))}_onMakeRequest(e){return{scheduleGetInfo:{header:e,scheduleID:null!=this._scheduleId?this._scheduleId._toProtobuf():null}}}_getLogId(){return`ScheduleInfoQuery:${(null!=this._paymentTransactionId&&null!=this._paymentTransactionId.validStart?this._paymentTransactionId.validStart:this._timestamp).toString()}`}};m$7.set("scheduleGetInfo",r$t._fromProtobuf);let u$a=class e extends P$5{constructor(e={}){super(),this._scheduleId=null,null!=e.scheduleId&&this.setScheduleId(e.scheduleId),this._defaultMaxTransactionFee=new e$A(5)}static _fromProtobuf(t,r,n,o,i){const s=i[0].scheduleSign;return P$5._fromProtobufTransactions(new e({scheduleId:null!=s.scheduleID?o$v._fromProtobuf(s.scheduleID):void 0}),t,r,n,o,i)}get scheduleId(){return this._scheduleId}setScheduleId(e){return this._requireNotFrozen(),this._scheduleId="string"==typeof e?o$v.fromString(e):e.clone(),this}_validateChecksums(e){null!=this._scheduleId&&this._scheduleId.validateChecksum(e)}_execute(e,t){return e.schedule.signSchedule(t)}_getTransactionDataCase(){return"scheduleSign"}_makeTransactionData(){return{scheduleID:null!=this._scheduleId?this._scheduleId._toProtobuf():null}}_getLogId(){return`ScheduleSignTransaction:${this._transactionIds.current.validStart.toString()}`}};k$7.set("scheduleSign",u$a._fromProtobuf);let n$n=class e extends P$5{constructor(e={}){super(),this._fileId=null,this._contractId=null,this._expirationTime=null,null!=e.fileId&&this.setFileId(e.fileId),null!=e.contractId&&this.setContractId(e.contractId),null!=e.expirationTime&&this.setExpirationTime(e.expirationTime)}static _fromProtobuf(t,r,n,o,i){const s=i[0].systemDelete;return P$5._fromProtobufTransactions(new e({fileId:null!=s.fileID?u$j._fromProtobuf(s.fileID):void 0,contractId:null!=s.contractID?v$7._fromProtobuf(s.contractID):void 0,expirationTime:null!=s.expirationTime?s$r._fromProtobuf(s.expirationTime):void 0}),t,r,n,o,i)}get fileId(){return this._fileId}setFileId(e){return this._requireNotFrozen(),this._fileId=e instanceof u$j?e:u$j.fromString(e),this}get contractId(){return this._contractId}setContractId(e){return this._requireNotFrozen(),this._contractId=e instanceof v$7?e:v$7.fromString(e),this}get expirationTime(){return this._expirationTime}setExpirationTime(e){return this._requireNotFrozen(),this._expirationTime=e,this}_execute(e,t){return null!=this._fileId?e.file.systemDelete(t):e.smartContract.systemDelete(t)}_getTransactionDataCase(){return"systemDelete"}_makeTransactionData(){return{fileID:null!=this._fileId?this._fileId._toProtobuf():null,contractID:null!=this._contractId?this._contractId._toProtobuf():null,expirationTime:null!=this._expirationTime?this._expirationTime._toProtobuf():null}}_getLogId(){return`SystemDeleteTransaction:${this._transactionIds.current.validStart.toString()}`}};k$7.set("systemDelete",n$n._fromProtobuf);let o$h=class e extends P$5{constructor(e={}){super(),this._fileId=null,this._contractId=null,null!=e.fileId&&this.setFileId(e.fileId),null!=e.contractId&&this.setContractId(e.contractId)}static _fromProtobuf(t,r,n,o,i){const s=i[0].systemUndelete;return P$5._fromProtobufTransactions(new e({fileId:null!=s.fileID?u$j._fromProtobuf(s.fileID):void 0,contractId:null!=s.contractID?v$7._fromProtobuf(s.contractID):void 0}),t,r,n,o,i)}get fileId(){return this._fileId}setFileId(e){return this._requireNotFrozen(),this._fileId=e instanceof u$j?e:u$j.fromString(e),this}get contractId(){return this._contractId}setContractId(e){return this._requireNotFrozen(),this._contractId=e instanceof v$7?e:v$7.fromString(e),this}_execute(e,t){return null!=this._fileId?e.file.systemUndelete(t):e.smartContract.systemUndelete(t)}_getTransactionDataCase(){return"systemUndelete"}_makeTransactionData(){return{fileID:null!=this._fileId?this._fileId._toProtobuf():null,contractID:null!=this._contractId?this._contractId._toProtobuf():null}}_getLogId(){return`SystemUndeleteTransaction:${this._transactionIds.current.validStart.toString()}`}};k$7.set("systemUndelete",o$h._fromProtobuf);let r$s=class e extends P$5{constructor(e={}){super(),this._tokenIds=null,this._accountId=null,this._defaultMaxTransactionFee=new e$A(5),null!=e.tokenIds&&this.setTokenIds(e.tokenIds),null!=e.accountId&&this.setAccountId(e.accountId)}static _fromProtobuf(t,r,n,o,i){const s=i[0].tokenAssociate;return P$5._fromProtobufTransactions(new e({tokenIds:null!=s.tokens?s.tokens.map((e=>u$i._fromProtobuf(e))):void 0,accountId:null!=s.account?f$8._fromProtobuf(s.account):void 0}),t,r,n,o,i)}get tokenIds(){return this._tokenIds}setTokenIds(e){return this._requireNotFrozen(),this._tokenIds=e.map((e=>"string"==typeof e?u$i.fromString(e):e.clone())),this}get accountId(){return this._accountId}setAccountId(e){return this._requireNotFrozen(),this._accountId="string"==typeof e?f$8.fromString(e):e.clone(),this}_validateChecksums(e){null!=this._accountId&&this._accountId.validateChecksum(e);for(const t of null!=this._tokenIds?this._tokenIds:[])null!=t&&t.validateChecksum(e)}_execute(e,t){return e.token.associateTokens(t)}_getTransactionDataCase(){return"tokenAssociate"}_makeTransactionData(){return{tokens:null!=this._tokenIds?this._tokenIds.map((e=>e._toProtobuf())):null,account:null!=this._accountId?this._accountId._toProtobuf():null}}_getLogId(){return`TokenAssociateTransaction:${this._transactionIds.current.validStart.toString()}`}};k$7.set("tokenAssociate",r$s._fromProtobuf);let r$r=class e extends P$5{constructor(e={}){super(),this._tokenId=null,this._amount=null,this._serials=[],null!=e.tokenId&&this.setTokenId(e.tokenId),null!=e.amount&&this.setAmount(e.amount),null!=e.serials&&this.setSerials(e.serials)}static _fromProtobuf(t,r,n,o,i){const s=i[0].tokenBurn;return P$5._fromProtobufTransactions(new e({tokenId:null!=s.token?u$i._fromProtobuf(s.token):void 0,amount:null!=s.amount?s.amount:void 0,serials:null!=s.serialNumbers?s.serialNumbers:void 0}),t,r,n,o,i)}get tokenId(){return this._tokenId}setTokenId(e){return this._requireNotFrozen(),this._tokenId="string"==typeof e?u$i.fromString(e):e.clone(),this}get amount(){return this._amount}setAmount(e){return this._requireNotFrozen(),this._amount=e instanceof Long?e:Long.fromValue(e),this}_validateChecksums(e){null!=this._tokenId&&this._tokenId.validateChecksum(e)}get serials(){return this._serials}setSerials(e){return this._requireNotFrozen(),this._serials=e.map((e=>e instanceof Long?e:Long.fromValue(e))),this}_execute(e,t){return e.token.burnToken(t)}_getTransactionDataCase(){return"tokenBurn"}_makeTransactionData(){return{amount:this._amount,serialNumbers:this._serials,token:null!=this._tokenId?this._tokenId._toProtobuf():null}}_getLogId(){return`TokenBurnTransaction:${this._transactionIds.current.validStart.toString()}`}};k$7.set("tokenBurn",r$r._fromProtobuf);let t$g=class{constructor(){this.fungibleToken=null,this.nft=null}static _fromProtobuf(e){return{fungibleToken:null!=e.fungibleToken?u$i._fromProtobuf(e.fungibleToken):null,nft:null!=e.nft?e$v._fromProtobuf(e.nft):null}}},o$g=class e extends P$5{constructor(e={}){super(),this._owner=null,null!=e.owner&&this.setOwnerId(e.owner),this._tokenIds=[],this._nftIds=[],null!=e.tokenIds&&this.setTokenIds(e.tokenIds),null!=e.nftIds&&this.setNftIds(e.nftIds)}static _fromProtobuf(t,r,n,o,i){var s;const a=i[0].tokenReject,c=null==(s=a.rejections)?void 0:s.map((e=>t$g._fromProtobuf(e))),u=null==c?void 0:c.filter((e=>e.fungibleToken)).map((({fungibleToken:e})=>{if(null==e)throw new Error("Fungible Token cannot be null");return e})),l=null==c?void 0:c.filter((e=>e.nft)).map((({nft:e})=>{if(null==e)throw new Error("Nft cannot be null");return e}));return P$5._fromProtobufTransactions(new e({owner:null!=a.owner?f$8._fromProtobuf(a.owner):void 0,tokenIds:u,nftIds:l}),t,r,n,o,i)}get tokenIds(){return this._tokenIds}setTokenIds(e){return this._requireNotFrozen(),this._tokenIds=e,this}addTokenId(e){var t;return this._requireNotFrozen(),null==(t=this._tokenIds)||t.push(e),this}get nftIds(){return this._nftIds}setNftIds(e){return this._requireNotFrozen(),this._nftIds=e,this}addNftId(e){var t;return this._requireNotFrozen(),null==(t=this._nftIds)||t.push(e),this}get ownerId(){return this._owner}setOwnerId(e){return this._requireNotFrozen(),this._owner=e,this}_execute(e,t){return e.token.rejectToken(t)}_getTransactionDataCase(){return"tokenReject"}_makeTransactionData(){var e;const t=[];for(const r of this._tokenIds)t.push({fungibleToken:r._toProtobuf()});for(const r of this._nftIds)t.push({nft:r._toProtobuf()});return{owner:(null==(e=this.ownerId)?void 0:e._toProtobuf())??null,rejections:t}}_getLogId(){return`TokenRejectTransaction:${this._transactionIds.current.validStart.toString()}`}};k$7.set("tokenReject",o$g._fromProtobuf);let r$q=class e extends P$5{constructor(e={}){super(),this._tokenIds=null,this._accountId=null,this._defaultMaxTransactionFee=new e$A(5),null!=e.tokenIds&&this.setTokenIds(e.tokenIds),null!=e.accountId&&this.setAccountId(e.accountId)}static _fromProtobuf(t,r,n,o,i){const s=i[0].tokenDissociate;return P$5._fromProtobufTransactions(new e({tokenIds:null!=s.tokens?s.tokens.map((e=>u$i._fromProtobuf(e))):void 0,accountId:null!=s.account?f$8._fromProtobuf(s.account):void 0}),t,r,n,o,i)}get tokenIds(){return this._tokenIds}setTokenIds(e){return this._requireNotFrozen(),this._tokenIds=e.map((e=>"string"==typeof e?u$i.fromString(e):e.clone())),this}get accountId(){return this._accountId}setAccountId(e){return this._requireNotFrozen(),this._accountId="string"==typeof e?f$8.fromString(e):e.clone(),this}_validateChecksums(e){null!=this._accountId&&this._accountId.validateChecksum(e);for(const t of null!=this._tokenIds?this._tokenIds:[])null!=t&&t.validateChecksum(e)}_execute(e,t){return e.token.dissociateTokens(t)}_getTransactionDataCase(){return"tokenDissociate"}_makeTransactionData(){return{tokens:null!=this._tokenIds?this._tokenIds.map((e=>e._toProtobuf())):null,account:null!=this._accountId?this._accountId._toProtobuf():null}}_getLogId(){return`TokenDissociateTransaction:${this._transactionIds.current.validStart.toString()}`}};k$7.set("tokenDissociate",r$q._fromProtobuf);let r$p=class e extends e$u{constructor(e={}){super(e),this._numerator=null,null!=e.numerator&&this.setNumerator(e.numerator),this._denominator=null,null!=e.denominator&&this.setDenominator(e.denominator),this._min=null,null!=e.min&&this.setMin(e.min),this._max,null!=e.max&&this.setMax(e.max),this._assessmentMethod,null!=e.assessmentMethod&&this.setAssessmentMethod(e.assessmentMethod)}get numerator(){return this._numerator}setNumerator(e){return this._numerator="number"==typeof e?Long.fromNumber(e):e,this}get denominator(){return this._denominator}setDenominator(e){return this._denominator="number"==typeof e?Long.fromNumber(e):e,this}get min(){return this._min}setMin(e){return this._min="number"==typeof e?Long.fromNumber(e):e,this}get max(){return this._max}setMax(e){return this._max="number"==typeof e?Long.fromNumber(e):e,this}get assessmentMethod(){return this._assessmentMethod}setAssessmentMethod(e){return this._assessmentMethod=e,this}static _fromProtobuf(t){const r=t.fractionalFee,n=r.fractionalAmount;return new e({feeCollectorAccountId:null!=t.feeCollectorAccountId?f$8._fromProtobuf(t.feeCollectorAccountId):void 0,allCollectorsAreExempt:null!=t.allCollectorsAreExempt?t.allCollectorsAreExempt:void 0,numerator:null!=n.numerator?n.numerator:void 0,denominator:null!=n.denominator?n.denominator:void 0,min:null!=r.minimumAmount?r.minimumAmount:void 0,max:null!=r.maximumAmount?r.maximumAmount:void 0,assessmentMethod:null!=r.netOfTransfers?new e$m(r.netOfTransfers):void 0})}_toProtobuf(){return{feeCollectorAccountId:null!=this.feeCollectorAccountId?this.feeCollectorAccountId._toProtobuf():null,allCollectorsAreExempt:this.allCollectorsAreExempt,fractionalFee:{fractionalAmount:{numerator:this._numerator,denominator:this._denominator},minimumAmount:this._min,maximumAmount:this._max,netOfTransfers:null!=this._assessmentMethod&&this._assessmentMethod.valueOf()}}}},l$b=class e extends e$u{constructor(e={}){super(e),this._fallbackFee=null,null!=e.fallbackFee&&this.setFallbackFee(e.fallbackFee),this._numerator=null,null!=e.numerator&&this.setNumerator(e.numerator),this._denominator=null,null!=e.denominator&&this.setDenominator(e.denominator)}get fallbackFee(){return this._fallbackFee}setFallbackFee(e){return this._fallbackFee=e,this}get numerator(){return this._numerator}setNumerator(e){return this._numerator="number"==typeof e?Long.fromNumber(e):e,this}get denominator(){return this._denominator}setDenominator(e){return this._denominator="number"==typeof e?Long.fromNumber(e):e,this}static _fromProtobuf(t){const r=t.royaltyFee,n=r.exchangeValueFraction;return new e({feeCollectorAccountId:null!=t.feeCollectorAccountId?f$8._fromProtobuf(t.feeCollectorAccountId):void 0,allCollectorsAreExempt:null!=t.allCollectorsAreExempt?t.allCollectorsAreExempt:void 0,fallbackFee:null!=r.fallbackFee?l$i._fromProtobuf({fixedFee:r.fallbackFee}):void 0,numerator:null!=n.numerator?n.numerator:void 0,denominator:null!=n.denominator?n.denominator:void 0})}_toProtobuf(){return{feeCollectorAccountId:null!=this.feeCollectorAccountId?this.feeCollectorAccountId._toProtobuf():null,allCollectorsAreExempt:this.allCollectorsAreExempt,royaltyFee:{exchangeValueFraction:{numerator:this._numerator,denominator:this._denominator},fallbackFee:null!=this._fallbackFee?this._fallbackFee._toProtobuf().fixedFee:null}}}},e$e=class e{constructor(e){this._code=e,Object.freeze(this)}toString(){switch(this){case e.FungibleCommon:return"FUNGIBLE_COMMON";case e.NonFungibleUnique:return"NON_FUNGIBLE_UNIQUE";default:return`UNKNOWN (${this._code})`}}static _fromCode(t){switch(t){case 0:return e.FungibleCommon;case 1:return e.NonFungibleUnique}throw new Error(`(BUG) TokenType.fromCode() does not handle code: ${t}`)}valueOf(){return this._code}};e$e.FungibleCommon=new e$e(0),e$e.NonFungibleUnique=new e$e(1);let e$d=class e{constructor(e){this._code=e,Object.freeze(this)}toString(){switch(this){case e.Infinite:return"INFINITE";case e.Finite:return"FINITE";default:return`UNKNOWN (${this._code})`}}static _fromCode(t){switch(t){case 0:return e.Infinite;case 1:return e.Finite}throw new Error(`(BUG) TokenSupplyType.fromCode() does not handle code: ${t}`)}valueOf(){return this._code}};e$d.Infinite=new e$d(0),e$d.Finite=new e$d(1);let _$9=class e extends P$5{constructor(e={}){super(),this._tokenName=null,this._tokenSymbol=null,this._decimals=null,this._initialSupply=null,this._treasuryAccountId=null,this._adminKey=null,this._kycKey=null,this._freezeKey=null,this._pauseKey=null,this._wipeKey=null,this._supplyKey=null,this._feeScheduleKey=null,this._freezeDefault=null,this._autoRenewAccountId=null,this._expirationTime=new s$r(Math.floor(Date.now()/1e3+I$7.toNumber()),0),this._autoRenewPeriod=new s$l(I$7),this._tokenMemo=null,this._customFees=[],this._tokenType=null,this._supplyType=null,this._maxSupply=null,this._defaultMaxTransactionFee=new e$A(30),this._metadataKey=null,this._metadata=null,null!=e.tokenName&&this.setTokenName(e.tokenName),null!=e.tokenSymbol&&this.setTokenSymbol(e.tokenSymbol),null!=e.decimals&&this.setDecimals(e.decimals),null!=e.initialSupply&&this.setInitialSupply(e.initialSupply),null!=e.treasuryAccountId&&this.setTreasuryAccountId(e.treasuryAccountId),null!=e.adminKey&&this.setAdminKey(e.adminKey),null!=e.kycKey&&this.setKycKey(e.kycKey),null!=e.freezeKey&&this.setFreezeKey(e.freezeKey),null!=e.pauseKey&&this.setPauseKey(e.pauseKey),null!=e.wipeKey&&this.setWipeKey(e.wipeKey),null!=e.supplyKey&&this.setSupplyKey(e.supplyKey),null!=e.feeScheduleKey&&this.setFeeScheduleKey(e.feeScheduleKey),null!=e.freezeDefault&&this.setFreezeDefault(e.freezeDefault),null!=e.autoRenewAccountId&&this.setAutoRenewAccountId(e.autoRenewAccountId),null!=e.expirationTime&&this.setExpirationTime(e.expirationTime),null!=e.autoRenewPeriod&&this.setAutoRenewPeriod(e.autoRenewPeriod),null!=e.tokenMemo&&this.setTokenMemo(e.tokenMemo),null!=e.customFees&&this.setCustomFees(e.customFees),null!=e.tokenType&&this.setTokenType(e.tokenType),null!=e.supplyType&&this.setSupplyType(e.supplyType),null!=e.maxSupply&&this.setMaxSupply(e.maxSupply),null!=e.metadataKey&&this.setMetadataKey(e.metadataKey),null!=e.metadata&&this.setMetadata(e.metadata)}static _fromProtobuf(t,r,n,o,i){const s=i[0].tokenCreation;return P$5._fromProtobufTransactions(new e({tokenName:null!=s.name?s.name:void 0,tokenSymbol:null!=s.symbol?s.symbol:void 0,decimals:null!=s.decimals?s.decimals:void 0,initialSupply:null!=s.initialSupply?s.initialSupply:void 0,treasuryAccountId:null!=s.treasury?f$8._fromProtobuf(s.treasury):void 0,adminKey:null!=s.adminKey?t$y._fromProtobufKey(s.adminKey):void 0,kycKey:null!=s.kycKey?t$y._fromProtobufKey(s.kycKey):void 0,freezeKey:null!=s.freezeKey?t$y._fromProtobufKey(s.freezeKey):void 0,pauseKey:null!=s.pauseKey?t$y._fromProtobufKey(s.pauseKey):void 0,wipeKey:null!=s.wipeKey?t$y._fromProtobufKey(s.wipeKey):void 0,supplyKey:null!=s.supplyKey?t$y._fromProtobufKey(s.supplyKey):void 0,feeScheduleKey:null!=s.feeScheduleKey?t$y._fromProtobufKey(s.feeScheduleKey):void 0,freezeDefault:null!=s.freezeDefault?s.freezeDefault:void 0,autoRenewAccountId:null!=s.autoRenewAccount?f$8._fromProtobuf(s.autoRenewAccount):void 0,expirationTime:null!=s.expiry?s$r._fromProtobuf(s.expiry):void 0,autoRenewPeriod:null!=s.autoRenewPeriod?s$l._fromProtobuf(s.autoRenewPeriod):void 0,tokenMemo:null!=s.memo?s.memo:void 0,customFees:null!=s.customFees?s.customFees.map((e=>null!=e.fixedFee?l$i._fromProtobuf(e):null!=e.fractionalFee?r$p._fromProtobuf(e):l$b._fromProtobuf(e))):void 0,tokenType:null!=s.tokenType?e$e._fromCode(s.tokenType):void 0,supplyType:null!=s.supplyType?e$d._fromCode(s.supplyType):void 0,maxSupply:null!=s.maxSupply?s.maxSupply:void 0,metadataKey:null!=s.metadataKey?t$y._fromProtobufKey(s.metadataKey):void 0,metadata:null!=s.metadata?s.metadata:void 0}),t,r,n,o,i)}get tokenName(){return this._tokenName}setTokenName(e){return this._requireNotFrozen(),this._tokenName=e,this}get tokenSymbol(){return this._tokenSymbol}setTokenSymbol(e){return this._requireNotFrozen(),this._tokenSymbol=e,this}get decimals(){return this._decimals}setDecimals(e){return this._requireNotFrozen(),this._decimals=e instanceof Long?e:Long.fromValue(e),this}get initialSupply(){return this._initialSupply}setInitialSupply(e){return this._requireNotFrozen(),this._initialSupply=Long.fromValue(e),this}get treasuryAccountId(){return this._treasuryAccountId}setTreasuryAccountId(e){return this._requireNotFrozen(),this._treasuryAccountId="string"==typeof e?f$8.fromString(e):e.clone(),this}get adminKey(){return this._adminKey}setAdminKey(e){return this._requireNotFrozen(),this._adminKey=e,this}get kycKey(){return this._kycKey}setKycKey(e){return this._requireNotFrozen(),this._kycKey=e,this}get freezeKey(){return this._freezeKey}freezeWith(e){var t,r;return!this._autoRenewAccountId&&(null==(t=this.transactionId)?void 0:t.accountId)?this.setAutoRenewAccountId(null==(r=this.transactionId)?void 0:r.accountId):!this._autoRenewAccountId&&(null==e?void 0:e.operatorAccountId)&&this.setAutoRenewAccountId(e.operatorAccountId),super.freezeWith(e)}setFreezeKey(e){return this._requireNotFrozen(),this._freezeKey=e,this}get pauseKey(){return this._pauseKey}setPauseKey(e){return this._requireNotFrozen(),this._pauseKey=e,this}get wipeKey(){return this._wipeKey}setWipeKey(e){return this._requireNotFrozen(),this._wipeKey=e,this}get supplyKey(){return this._supplyKey}setSupplyKey(e){return this._requireNotFrozen(),this._supplyKey=e,this}get feeScheduleKey(){return this._feeScheduleKey}setFeeScheduleKey(e){return this._requireNotFrozen(),this._feeScheduleKey=e,this}get freezeDefault(){return this._freezeDefault}setFreezeDefault(e){return this._requireNotFrozen(),this._freezeDefault=e,this}get expirationTime(){return this._expirationTime}setExpirationTime(e){return this._requireNotFrozen(),this._expirationTime=e instanceof s$r?e:s$r.fromDate(e),this._autoRenewPeriod=null,this}get autoRenewAccountId(){return this._autoRenewAccountId}setAutoRenewAccountId(e){return this._requireNotFrozen(),this._autoRenewAccountId=e instanceof f$8?e:f$8.fromString(e),this}get autoRenewPeriod(){return this._autoRenewPeriod}setAutoRenewPeriod(e){return this._requireNotFrozen(),this._autoRenewPeriod=e instanceof s$l?e:new s$l(e),this}get tokenMemo(){return this._tokenMemo}setTokenMemo(e){return this._requireNotFrozen(),this._tokenMemo=e,this}get customFees(){return this._customFees}setCustomFees(e){return this._customFees=e,this}get tokenType(){return this._tokenType}setTokenType(e){return this._tokenType=e,this}get supplyType(){return this._supplyType}setSupplyType(e){return this._supplyType=e,this}get maxSupply(){return this._maxSupply}setMaxSupply(e){return this._maxSupply="number"==typeof e?Long.fromNumber(e):e,this}get metadataKey(){return this._metadataKey}setMetadataKey(e){return this._requireNotFrozen(),this._metadataKey=e,this}get metadata(){return this._metadata}setMetadata(e){return this._requireNotFrozen(),this._metadata=e,this}_validateChecksums(e){null!=this._treasuryAccountId&&this._treasuryAccountId.validateChecksum(e),null!=this._autoRenewAccountId&&this._autoRenewAccountId.validateChecksum(e)}_execute(e,t){return e.token.createToken(t)}_getTransactionDataCase(){return"tokenCreation"}_makeTransactionData(){return{name:this._tokenName,symbol:this._tokenSymbol,decimals:null!=this._decimals?this._decimals.toInt():null,initialSupply:this._initialSupply,treasury:null!=this._treasuryAccountId?this._treasuryAccountId._toProtobuf():null,adminKey:null!=this._adminKey?this._adminKey._toProtobufKey():null,kycKey:null!=this._kycKey?this._kycKey._toProtobufKey():null,freezeKey:null!=this._freezeKey?this._freezeKey._toProtobufKey():null,pauseKey:null!=this._pauseKey?this._pauseKey._toProtobufKey():null,wipeKey:null!=this._wipeKey?this._wipeKey._toProtobufKey():null,supplyKey:null!=this._supplyKey?this._supplyKey._toProtobufKey():null,feeScheduleKey:null!=this._feeScheduleKey?this._feeScheduleKey._toProtobufKey():null,freezeDefault:this._freezeDefault,autoRenewAccount:null!=this._autoRenewAccountId?this._autoRenewAccountId._toProtobuf():null,expiry:null!=this._expirationTime?this._expirationTime._toProtobuf():null,autoRenewPeriod:null!=this._autoRenewPeriod?this._autoRenewPeriod._toProtobuf():null,memo:this._tokenMemo,customFees:this.customFees.map((e=>e._toProtobuf())),tokenType:null!=this._tokenType?this._tokenType._code:null,supplyType:null!=this._supplyType?this._supplyType._code:null,maxSupply:this.maxSupply,metadataKey:null!=this._metadataKey?this._metadataKey._toProtobufKey():null,metadata:null!=this._metadata?this._metadata:void 0}}_getLogId(){return`TokenCreateTransaction:${this._transactionIds.current.validStart.toString()}`}};k$7.set("tokenCreation",_$9._fromProtobuf);let n$m=class e extends P$5{constructor(e={}){super(),this._tokenId=null,null!=e.tokenId&&this.setTokenId(e.tokenId)}static _fromProtobuf(t,r,n,o,i){const s=i[0].tokenDeletion;return P$5._fromProtobufTransactions(new e({tokenId:null!=s.token?u$i._fromProtobuf(s.token):void 0}),t,r,n,o,i)}get tokenId(){return this._tokenId}setTokenId(e){return this._requireNotFrozen(),this._tokenId="string"==typeof e?u$i.fromString(e):e.clone(),this}_validateChecksums(e){null!=this._tokenId&&this._tokenId.validateChecksum(e)}_execute(e,t){return e.token.deleteToken(t)}_getTransactionDataCase(){return"tokenDeletion"}_makeTransactionData(){return{token:null!=this._tokenId?this._tokenId._toProtobuf():null}}_getLogId(){return`TokenDeleteTransaction:${this._transactionIds.current.validStart.toString()}`}};k$7.set("tokenDeletion",n$m._fromProtobuf);let u$9=class e extends P$5{constructor(e={}){super(),this._tokenId=null,this._customFees=[],null!=e.tokenId&&this.setTokenId(e.tokenId),null!=e.customFees&&this.setCustomFees(e.customFees)}static _fromProtobuf(t,r,n,o,i){const s=i[0].tokenFeeScheduleUpdate;return P$5._fromProtobufTransactions(new e({tokenId:null!=s.tokenId?u$i._fromProtobuf(s.tokenId):void 0,customFees:null!=s.customFees?s.customFees.map((e=>null!=e.fixedFee?l$i._fromProtobuf(e):null!=e.fractionalFee?r$p._fromProtobuf(e):l$b._fromProtobuf(e))):void 0}),t,r,n,o,i)}get tokenId(){return this._tokenId}setTokenId(e){return this._requireNotFrozen(),this._tokenId="string"==typeof e?u$i.fromString(e):u$i._fromProtobuf(e._toProtobuf()),this}get customFees(){return this._customFees}setCustomFees(e){return this._requireNotFrozen(),this._customFees=e,this}_execute(e,t){return e.token.updateTokenFeeSchedule(t)}_getTransactionDataCase(){return"tokenFeeScheduleUpdate"}_makeTransactionData(){return{tokenId:null!=this._tokenId?this._tokenId._toProtobuf():null,customFees:this._customFees.map((e=>e._toProtobuf()))}}_getLogId(){return`TokenFeeScheduleUpdateTransaction:${this._transactionIds.current.validStart.toString()}`}};k$7.set("tokenFeeScheduleUpdate",u$9._fromProtobuf);let r$o=class e extends P$5{constructor(e={}){super(),this._tokenId=null,this._accountId=null,null!=e.tokenId&&this.setTokenId(e.tokenId),null!=e.accountId&&this.setAccountId(e.accountId)}static _fromProtobuf(t,r,n,o,i){const s=i[0].tokenFreeze;return P$5._fromProtobufTransactions(new e({tokenId:null!=s.token?u$i._fromProtobuf(s.token):void 0,accountId:null!=s.account?f$8._fromProtobuf(s.account):void 0}),t,r,n,o,i)}get tokenId(){return this._tokenId}setTokenId(e){return this._requireNotFrozen(),this._tokenId="string"==typeof e?u$i.fromString(e):e.clone(),this}get accountId(){return this._accountId}setAccountId(e){return this._requireNotFrozen(),this._accountId="string"==typeof e?f$8.fromString(e):e.clone(),this}_validateChecksums(e){null!=this._tokenId&&this._tokenId.validateChecksum(e),null!=this._accountId&&this._accountId.validateChecksum(e)}_execute(e,t){return e.token.freezeTokenAccount(t)}_getTransactionDataCase(){return"tokenFreeze"}_makeTransactionData(){return{token:null!=this._tokenId?this._tokenId._toProtobuf():null,account:null!=this._accountId?this._accountId._toProtobuf():null}}_getLogId(){return`TokenFreezeTransaction:${this._transactionIds.current.validStart.toString()}`}};k$7.set("tokenFreeze",r$o._fromProtobuf);let r$n=class e extends P$5{constructor(e={}){super(),this._tokenId=null,this._accountId=null,null!=e.tokenId&&this.setTokenId(e.tokenId),null!=e.accountId&&this.setAccountId(e.accountId)}static _fromProtobuf(t,r,n,o,i){const s=i[0].tokenGrantKyc;return P$5._fromProtobufTransactions(new e({tokenId:null!=s.token?u$i._fromProtobuf(s.token):void 0,accountId:null!=s.account?f$8._fromProtobuf(s.account):void 0}),t,r,n,o,i)}get tokenId(){return this._tokenId}setTokenId(e){return this._requireNotFrozen(),this._tokenId="string"==typeof e?u$i.fromString(e):e.clone(),this}get accountId(){return this._accountId}setAccountId(e){return this._requireNotFrozen(),this._accountId="string"==typeof e?f$8.fromString(e):e.clone(),this}_validateChecksums(e){null!=this._tokenId&&this._tokenId.validateChecksum(e),null!=this._accountId&&this._accountId.validateChecksum(e)}_execute(e,t){return e.token.grantKycToTokenAccount(t)}_getTransactionDataCase(){return"tokenGrantKyc"}_makeTransactionData(){return{token:null!=this._tokenId?this._tokenId._toProtobuf():null,account:null!=this._accountId?this._accountId._toProtobuf():null}}_getLogId(){return`TokenGrantKycTransaction:${this._transactionIds.current.validStart.toString()}`}};k$7.set("tokenGrantKyc",r$n._fromProtobuf);let d$9=class e{constructor(e){this.tokenId=e.tokenId,this.name=e.name,this.symbol=e.symbol,this.decimals=e.decimals,this.totalSupply=e.totalSupply,this.treasuryAccountId=e.treasuryAccountId,this.adminKey=e.adminKey,this.kycKey=e.kycKey,this.freezeKey=e.freezeKey,this.pauseKey=e.pauseKey,this.wipeKey=e.wipeKey,this.supplyKey=e.supplyKey,this.feeScheduleKey=e.feeScheduleKey,this.defaultFreezeStatus=e.defaultFreezeStatus,this.defaultKycStatus=e.defaultKycStatus,this.pauseStatus=e.pauseStatus,this.isDeleted=e.isDeleted,this.autoRenewAccountId=e.autoRenewAccountId,this.autoRenewPeriod=e.autoRenewPeriod,this.expirationTime=e.expirationTime,this.tokenMemo=e.tokenMemo,this.customFees=e.customFees,this.tokenType=e.tokenType,this.supplyType=e.supplyType,this.maxSupply=e.maxSupply,this.ledgerId=e.ledgerId,this.metadataKey=e.metadataKey,this.metadata=e.metadata}static _fromProtobuf(t){const r=t.defaultFreezeStatus,n=t.defaultKycStatus,o=t.pauseStatus,i=null!=t.autoRenewAccount?f$8._fromProtobuf(t.autoRenewAccount):new f$8(0);return new e({tokenId:u$i._fromProtobuf(t.tokenId),name:t.name,symbol:t.symbol,decimals:t.decimals,totalSupply:Long.fromValue(t.totalSupply),treasuryAccountId:null!=t.treasury?f$8._fromProtobuf(t.treasury):null,adminKey:null!=t.adminKey?t$y._fromProtobufKey(t.adminKey):null,kycKey:null!=t.kycKey?t$y._fromProtobufKey(t.kycKey):null,freezeKey:null!=t.freezeKey?t$y._fromProtobufKey(t.freezeKey):null,pauseKey:null!=t.pauseKey?t$y._fromProtobufKey(t.pauseKey):null,wipeKey:null!=t.wipeKey?t$y._fromProtobufKey(t.wipeKey):null,supplyKey:null!=t.supplyKey?t$y._fromProtobufKey(t.supplyKey):null,feeScheduleKey:null!=t.feeScheduleKey?t$y._fromProtobufKey(t.feeScheduleKey):null,defaultFreezeStatus:0===r?null:1==r,defaultKycStatus:0===n?null:1==n,pauseStatus:0===o?null:1==o,isDeleted:t.deleted,autoRenewAccountId:0!=i.shard.toInt()||0!=i.realm.toInt()||0!=i.num.toInt()?i:null,autoRenewPeriod:null!=t.autoRenewPeriod?s$l._fromProtobuf(t.autoRenewPeriod):null,expirationTime:null!=t.expiry?s$r._fromProtobuf(t.expiry):null,tokenMemo:null!=t.memo?t.memo:"",customFees:null!=t.customFees?t.customFees.map((e=>null!=e.fixedFee?l$i._fromProtobuf(e):null!=e.fractionalFee?r$p._fromProtobuf(e):l$b._fromProtobuf(e))):[],tokenType:null!=t.tokenType?e$e._fromCode(t.tokenType):null,supplyType:null!=t.supplyType?e$d._fromCode(t.supplyType):null,maxSupply:null!=t.maxSupply?t.maxSupply:null,ledgerId:null!=t.ledgerId?r$x.fromBytes(t.ledgerId):null,metadataKey:null!=t.metadataKey?t$y._fromProtobufKey(t.metadataKey):null,metadata:null!=t.metadata?t.metadata:new Uint8Array})}_toProtobuf(){return{tokenId:this.tokenId._toProtobuf(),name:this.name,symbol:this.symbol,decimals:this.decimals,totalSupply:this.totalSupply,treasury:null!=this.treasuryAccountId?this.treasuryAccountId._toProtobuf():null,adminKey:null!=this.adminKey?this.adminKey._toProtobufKey():null,kycKey:null!=this.kycKey?this.kycKey._toProtobufKey():null,freezeKey:null!=this.freezeKey?this.freezeKey._toProtobufKey():null,pauseKey:null!=this.pauseKey?this.pauseKey._toProtobufKey():null,wipeKey:null!=this.wipeKey?this.wipeKey._toProtobufKey():null,supplyKey:null!=this.supplyKey?this.supplyKey._toProtobufKey():null,feeScheduleKey:null!=this.feeScheduleKey?this.feeScheduleKey._toProtobufKey():null,defaultFreezeStatus:null==this.defaultFreezeStatus?0:this.defaultFreezeStatus?1:2,defaultKycStatus:null==this.defaultKycStatus?0:this.defaultKycStatus?1:2,pauseStatus:null==this.pauseStatus?0:this.pauseStatus?1:2,deleted:this.isDeleted,autoRenewAccount:null!=this.autoRenewAccountId?this.autoRenewAccountId._toProtobuf():void 0,autoRenewPeriod:null!=this.autoRenewPeriod?this.autoRenewPeriod._toProtobuf():null,expiry:null!=this.expirationTime?this.expirationTime._toProtobuf():null,memo:this.tokenMemo,customFees:this.customFees.map((e=>e._toProtobuf())),tokenType:null!=this.tokenType?this.tokenType._code:null,supplyType:null!=this.supplyType?this.supplyType._code:null,maxSupply:this.maxSupply,ledgerId:null!=this.ledgerId?this.ledgerId.toBytes():null,metadataKey:null!=this.metadataKey?this.metadataKey._toProtobufKey():null,metadata:null!=this.metadata?this.metadata:null}}static fromBytes(t){return e._fromProtobuf(proto_1.TokenInfo.decode(t))}toBytes(){return proto_1.TokenInfo.encode(this._toProtobuf()).finish()}},r$m=class e extends h$b{constructor(e={}){super(),this._tokenId=null,null!=e.tokenId&&this.setTokenId(e.tokenId)}static _fromProtobuf(t){const r=t.tokenGetInfo;return new e({tokenId:null!=r.token?u$i._fromProtobuf(r.token):void 0})}get tokenId(){return this._tokenId}setTokenId(e){return this._tokenId="string"==typeof e?u$i.fromString(e):e.clone(),this}async getCost(e){return super.getCost(e)}_validateChecksums(e){null!=this._tokenId&&this._tokenId.validateChecksum(e)}_execute(e,t){return e.token.getTokenInfo(t)}_mapResponseHeader(e){return e.tokenGetInfo.header}_mapResponse(e,t,r){const n=e.tokenGetInfo;return Promise.resolve(d$9._fromProtobuf(n.tokenInfo))}_onMakeRequest(e){return{tokenGetInfo:{header:e,token:null!=this._tokenId?this._tokenId._toProtobuf():null}}}_getLogId(){return`TokenInfoQuery:${(null!=this._paymentTransactionId&&null!=this._paymentTransactionId.validStart?this._paymentTransactionId.validStart:this._timestamp).toString()}`}};m$7.set("tokenGetInfo",r$m._fromProtobuf);let r$l=class e extends P$5{constructor(e={}){super(),this._tokenId=null,this._amount=null,this._metadata=[],null!=e.tokenId&&this.setTokenId(e.tokenId),null!=e.amount&&this.setAmount(e.amount),null!=e.metadata&&this.setMetadata(e.metadata)}static _fromProtobuf(t,r,n,o,i){const s=i[0].tokenMint;return P$5._fromProtobufTransactions(new e({tokenId:null!=s.token?u$i._fromProtobuf(s.token):void 0,amount:null!=s.amount?s.amount:void 0,metadata:null!=s.metadata?s.metadata:void 0}),t,r,n,o,i)}get tokenId(){return this._tokenId}setTokenId(e){return this._requireNotFrozen(),this._tokenId="string"==typeof e?u$i.fromString(e):e.clone(),this}get amount(){return this._amount}setAmount(e){return this._requireNotFrozen(),this._amount=e instanceof Long?e:Long.fromValue(e),this}_validateChecksums(e){null!=this._tokenId&&this._tokenId.validateChecksum(e)}get metadata(){return this._metadata}addMetadata(e){return this._requireNotFrozen(),"string"==typeof e&&console.warn("Passing a `string` for token metadata is considered a bug, and has been removed. Please provide a `Uint8Array` instead."),this._metadata.push("string"==typeof e?r$G(e):e),this}setMetadata(e){this._requireNotFrozen();for(const t of e)if("string"==typeof t){console.warn("Passing a `string` for token metadata is considered a bug, and has been removed. Please provide a `Uint8Array` instead.");break}return this._metadata=e.map((e=>"string"==typeof e?r$G(e):e)),this}_execute(e,t){return e.token.mintToken(t)}_getTransactionDataCase(){return"tokenMint"}_makeTransactionData(){return{amount:this._amount,token:null!=this._tokenId?this._tokenId._toProtobuf():null,metadata:this._metadata}}_getLogId(){return`TokenMintTransaction:${this._transactionIds.current.validStart.toString()}`}};k$7.set("tokenMint",r$l._fromProtobuf);let n$l=class e{constructor(e){this.nftId=e.nftId,this.accountId=e.accountId,this.creationTime=e.creationTime,this.metadata=e.metadata,this.ledgerId=e.ledgerId,this.spenderId=e.spenderId,Object.freeze(this)}static _fromProtobuf(t){return new e({nftId:e$v._fromProtobuf(t.nftID),accountId:f$8._fromProtobuf(t.accountID),creationTime:s$r._fromProtobuf(t.creationTime),metadata:void 0!==t.metadata?t.metadata:null,ledgerId:null!=t.ledgerId?r$x.fromBytes(t.ledgerId):null,spenderId:null!=t.spenderId?f$8._fromProtobuf(t.spenderId):null})}_toProtobuf(){return{nftID:this.nftId._toProtobuf(),accountID:this.accountId._toProtobuf(),creationTime:this.creationTime._toProtobuf(),metadata:this.metadata,ledgerId:null!=this.ledgerId?this.ledgerId.toBytes():null,spenderId:null!=this.spenderId?this.spenderId._toProtobuf():null}}toJson(){return{nftId:this.nftId.toString(),accountId:this.accountId.toString(),creationTime:this.creationTime.toString(),metadata:null!=this.metadata?n$C(this.metadata):null,ledgerId:null!=this.ledgerId?this.ledgerId.toString():null,spenderId:null!=this.spenderId?this.spenderId.toString():null}}toString(){return JSON.stringify(this.toJson())}},u$8=class e extends h$b{constructor(e={}){super(),this._nftId=null,null!=e.nftId&&this.setNftId(e.nftId),this._accountId=null,null!=e.accountId&&this.setAccountId(e.accountId),this._tokenId=null,null!=e.tokenId&&this.setTokenId(e.tokenId),this._start=null,null!=e.start&&this.setStart(e.start),this._end=null,null!=e.end&&this.setEnd(e.end)}static _fromProtobuf(t){if(null!=t.tokenGetNftInfo){const r=t.tokenGetNftInfo;return new e({nftId:null!=r.nftID?e$v._fromProtobuf(r.nftID):void 0})}if(null!=t.tokenGetAccountNftInfos){const r=t.tokenGetAccountNftInfos;return new e({accountId:null!=r.accountID?f$8._fromProtobuf(r.accountID):void 0,start:null!=r.start?r.start:void 0,end:null!=r.end?r.end:void 0})}{const r=t.tokenGetNftInfos;return new e({tokenId:null!=r.tokenID?u$i._fromProtobuf(r.tokenID):void 0,start:null!=r.start?r.start:void 0,end:null!=r.end?r.end:void 0})}}get nftId(){return this._nftId}setNftId(e){return this._nftId="string"==typeof e?e$v.fromString(e):e$v._fromProtobuf(e._toProtobuf()),this}get accountId(){return console.warn("`TokenNftInfoQuery.accountId` is deprecated with no replacement"),this._accountId}setAccountId(e){return console.warn("`TokenNftInfoQuery.setAccountId()` is deprecated with no replacement"),this._accountId="string"==typeof e?f$8.fromString(e):f$8._fromProtobuf(e._toProtobuf()),this}get tokenId(){return console.warn("`TokenNftInfoQuery.tokenId` is deprecated with no replacement"),this._tokenId}setTokenId(e){return console.warn("`TokenNftInfoQuery.setTokenId()` is deprecated with no replacement"),this._tokenId="string"==typeof e?u$i.fromString(e):u$i._fromProtobuf(e._toProtobuf()),this}get start(){return console.warn("`TokenNftInfoQuery.start` is deprecated with no replacement"),this._start}setStart(e){return console.warn("`TokenNftInfoQuery.setStart()` is deprecated with no replacement"),this._start="number"==typeof e?Long.fromNumber(e):e,this}get end(){return console.warn("`TokenNftInfoQuery.end` is deprecated with no replacement"),this._end}setEnd(e){return console.warn("`TokenNftInfoQuery.setEnd()` is deprecated with no replacement"),this._end="number"==typeof e?Long.fromNumber(e):e,this}async getCost(e){return super.getCost(e)}_execute(e,t){return e.token.getTokenNftInfo(t)}_mapResponseHeader(e){return e.tokenGetNftInfo.header}_mapResponse(e,t,r){const n=[e.tokenGetNftInfo.nft];return Promise.resolve(n.map((e=>n$l._fromProtobuf(e))))}_onMakeRequest(e){return{tokenGetNftInfo:{header:e,nftID:null!=this._nftId?this._nftId._toProtobuf():null}}}_getLogId(){return`TokenNftInfoQuery:${(null!=this._paymentTransactionId&&null!=this._paymentTransactionId.validStart?this._paymentTransactionId.validStart:this._timestamp).toString()}`}};m$7.set("tokenGetNftInfo",u$8._fromProtobuf);let n$k=class e extends P$5{constructor(e={}){super(),this._tokenId=null,null!=e.tokenId&&this.setTokenId(e.tokenId)}static _fromProtobuf(t,r,n,o,i){const s=i[0].tokenPause;return P$5._fromProtobufTransactions(new e({tokenId:null!=s.token?u$i._fromProtobuf(s.token):void 0}),t,r,n,o,i)}get tokenId(){return this._tokenId}setTokenId(e){return this._requireNotFrozen(),this._tokenId="string"==typeof e?u$i.fromString(e):e.clone(),this}_validateChecksums(e){null!=this._tokenId&&this._tokenId.validateChecksum(e)}_execute(e,t){return e.token.pauseToken(t)}_getTransactionDataCase(){return"tokenPause"}_makeTransactionData(){return{token:null!=this._tokenId?this._tokenId._toProtobuf():null}}_getLogId(){return`TokenPauseTransaction:${this._transactionIds.current.validStart.toString()}`}};k$7.set("tokenPause",n$k._fromProtobuf);let r$k=class e extends P$5{constructor(e={}){super(),this._tokenId=null,this._accountId=null,null!=e.tokenId&&this.setTokenId(e.tokenId),null!=e.accountId&&this.setAccountId(e.accountId)}static _fromProtobuf(t,r,n,o,i){const s=i[0].tokenRevokeKyc;return P$5._fromProtobufTransactions(new e({tokenId:null!=s.token?u$i._fromProtobuf(s.token):void 0,accountId:null!=s.account?f$8._fromProtobuf(s.account):void 0}),t,r,n,o,i)}get tokenId(){return this._tokenId}setTokenId(e){return this._requireNotFrozen(),this._tokenId="string"==typeof e?u$i.fromString(e):e.clone(),this}get accountId(){return this._accountId}setAccountId(e){return this._requireNotFrozen(),this._accountId="string"==typeof e?f$8.fromString(e):e.clone(),this}_validateChecksums(e){null!=this._tokenId&&this._tokenId.validateChecksum(e),null!=this._accountId&&this._accountId.validateChecksum(e)}_execute(e,t){return e.token.revokeKycFromTokenAccount(t)}_getTransactionDataCase(){return"tokenRevokeKyc"}_makeTransactionData(){return{token:null!=this._tokenId?this._tokenId._toProtobuf():null,account:null!=this._accountId?this._accountId._toProtobuf():null}}_getLogId(){return`TokenRevokeKycTransaction:${this._transactionIds.current.validStart.toString()}`}};k$7.set("tokenRevokeKyc",r$k._fromProtobuf);let r$j=class e extends P$5{constructor(e={}){super(),this._tokenId=null,this._accountId=null,null!=e.tokenId&&this.setTokenId(e.tokenId),null!=e.accountId&&this.setAccountId(e.accountId)}static _fromProtobuf(t,r,n,o,i){const s=i[0].tokenUnfreeze;return P$5._fromProtobufTransactions(new e({tokenId:null!=s.token?u$i._fromProtobuf(s.token):void 0,accountId:null!=s.account?f$8._fromProtobuf(s.account):void 0}),t,r,n,o,i)}get tokenId(){return this._tokenId}setTokenId(e){return this._requireNotFrozen(),this._tokenId="string"==typeof e?u$i.fromString(e):e.clone(),this}get accountId(){return this._accountId}setAccountId(e){return this._requireNotFrozen(),this._accountId="string"==typeof e?f$8.fromString(e):e.clone(),this}_validateChecksums(e){null!=this._tokenId&&this._tokenId.validateChecksum(e),null!=this._accountId&&this._accountId.validateChecksum(e)}_execute(e,t){return e.token.unfreezeTokenAccount(t)}_getTransactionDataCase(){return"tokenUnfreeze"}_makeTransactionData(){return{token:null!=this._tokenId?this._tokenId._toProtobuf():null,account:null!=this._accountId?this._accountId._toProtobuf():null}}_getLogId(){return`TokenUnfreezeTransaction:${this._transactionIds.current.validStart.toString()}`}};k$7.set("tokenUnfreeze",r$j._fromProtobuf);let o$f=class e extends P$5{constructor(e={}){super(),this._tokenId=null,null!=e.tokenId&&this.setTokenId(e.tokenId)}static _fromProtobuf(t,r,n,o,i){const s=i[0].tokenUnpause;return P$5._fromProtobufTransactions(new e({tokenId:null!=s.token?u$i._fromProtobuf(s.token):void 0}),t,r,n,o,i)}get tokenId(){return this._tokenId}setTokenId(e){return this._requireNotFrozen(),this._tokenId="string"==typeof e?u$i.fromString(e):e.clone(),this}_validateChecksums(e){null!=this._tokenId&&this._tokenId.validateChecksum(e)}_execute(e,t){return e.token.unpauseToken(t)}_getTransactionDataCase(){return"tokenUnpause"}_makeTransactionData(){return{token:null!=this._tokenId?this._tokenId._toProtobuf():null}}_getLogId(){return`TokenUnpauseTransaction:${this._transactionIds.current.validStart.toString()}`}};k$7.set("tokenUnpause",o$f._fromProtobuf);let t$f=class e{constructor(e){this._code=e,Object.freeze(this)}toString(){switch(this){case e.FullValidation:return"FULL_VALIDATION";case e.NoValidation:return"NO_VALIDATION";default:return`UNKNOWN (${this._code})`}}static _fromCode(t){switch(t){case 0:return e.FullValidation;case 1:return e.NoValidation}throw new Error(`(BUG) TokenKeyValidation.fromCode() does not handle code: ${t}`)}valueOf(){return this._code}};t$f.FullValidation=new t$f(0),t$f.NoValidation=new t$f(1);let a$b=class e extends P$5{constructor(e={}){super(),this._tokenId=null,this._tokenName=null,this._tokenSymbol=null,this._treasuryAccountId=null,this._adminKey=null,this._kycKey=null,this._freezeKey=null,this._wipeKey=null,this._supplyKey=null,this._autoRenewAccountId=null,this._expirationTime=null,this._autoRenewPeriod=null,this._tokenMemo=null,this._feeScheduleKey=null,this._pauseKey=null,this._metadataKey=null,this._metadata=null,this._keyVerificationMode=t$f.FullValidation,null!=e.tokenId&&this.setTokenId(e.tokenId),null!=e.tokenName&&this.setTokenName(e.tokenName),null!=e.tokenSymbol&&this.setTokenSymbol(e.tokenSymbol),null!=e.treasuryAccountId&&this.setTreasuryAccountId(e.treasuryAccountId),null!=e.adminKey&&this.setAdminKey(e.adminKey),null!=e.kycKey&&this.setKycKey(e.kycKey),null!=e.freezeKey&&this.setFreezeKey(e.freezeKey),null!=e.wipeKey&&this.setWipeKey(e.wipeKey),null!=e.supplyKey&&this.setSupplyKey(e.supplyKey),null!=e.autoRenewAccountId&&this.setAutoRenewAccountId(e.autoRenewAccountId),null!=e.expirationTime&&this.setExpirationTime(e.expirationTime),null!=e.autoRenewPeriod&&this.setAutoRenewPeriod(e.autoRenewPeriod),null!=e.tokenMemo&&this.setTokenMemo(e.tokenMemo),null!=e.feeScheduleKey&&this.setFeeScheduleKey(e.feeScheduleKey),null!=e.pauseKey&&this.setPauseKey(e.pauseKey),null!=e.metadataKey&&this.setMetadataKey(e.metadataKey),null!=e.metadata&&this.setMetadata(e.metadata),null!=e.keyVerificationMode&&this.setKeyVerificationMode(e.keyVerificationMode)}static _fromProtobuf(t,r,n,o,i){const s=i[0].tokenUpdate;return P$5._fromProtobufTransactions(new e({tokenId:null!=s.token?u$i._fromProtobuf(s.token):void 0,tokenName:Object.hasOwn(s,"name")?s.name:void 0,tokenSymbol:Object.hasOwn(s,"symbol")?s.symbol:void 0,treasuryAccountId:null!=s.treasury?f$8._fromProtobuf(s.treasury):void 0,adminKey:null!=s.adminKey?t$y._fromProtobufKey(s.adminKey):void 0,kycKey:null!=s.kycKey?t$y._fromProtobufKey(s.kycKey):void 0,freezeKey:null!=s.freezeKey?t$y._fromProtobufKey(s.freezeKey):void 0,wipeKey:null!=s.wipeKey?t$y._fromProtobufKey(s.wipeKey):void 0,supplyKey:null!=s.supplyKey?t$y._fromProtobufKey(s.supplyKey):void 0,autoRenewAccountId:null!=s.autoRenewAccount?f$8._fromProtobuf(s.autoRenewAccount):void 0,expirationTime:null!=s.expiry?s$r._fromProtobuf(s.expiry):void 0,autoRenewPeriod:null!=s.autoRenewPeriod?s$l._fromProtobuf(s.autoRenewPeriod):void 0,tokenMemo:null!=s.memo&&Object.hasOwn(s.memo,"value")?s.memo.value:void 0,feeScheduleKey:null!=s.feeScheduleKey?t$y._fromProtobufKey(s.feeScheduleKey):void 0,pauseKey:null!=s.pauseKey?t$y._fromProtobufKey(s.pauseKey):void 0,metadataKey:null!=s.metadataKey?t$y._fromProtobufKey(s.metadataKey):void 0,metadata:null!=s.metadata&&Object.hasOwn(s.metadata,"value")?s.metadata.value:void 0,keyVerificationMode:null!=s.keyVerificationMode?t$f._fromCode(s.keyVerificationMode):void 0}),t,r,n,o,i)}get tokenId(){return this._tokenId}setTokenId(e){return this._requireNotFrozen(),this._tokenId="string"==typeof e?u$i.fromString(e):e.clone(),this}get tokenName(){return this._tokenName}setTokenName(e){return this._requireNotFrozen(),this._tokenName=e,this}get tokenSymbol(){return this._tokenSymbol}setTokenSymbol(e){return this._requireNotFrozen(),this._tokenSymbol=e,this}get treasuryAccountId(){return this._treasuryAccountId}setTreasuryAccountId(e){return this._requireNotFrozen(),this._treasuryAccountId="string"==typeof e?f$8.fromString(e):e.clone(),this}get adminKey(){return this._adminKey}setAdminKey(e){return this._requireNotFrozen(),this._adminKey=e,this}get kycKey(){return this._kycKey}setKycKey(e){return this._requireNotFrozen(),this._kycKey=e,this}get freezeKey(){return this._freezeKey}setFreezeKey(e){return this._requireNotFrozen(),this._freezeKey=e,this}get wipeKey(){return this._wipeKey}setWipeKey(e){return this._requireNotFrozen(),this._wipeKey=e,this}get supplyKey(){return this._supplyKey}setSupplyKey(e){return this._requireNotFrozen(),this._supplyKey=e,this}setsupplyKey(e){return this._requireNotFrozen(),this._supplyKey=e,this}get expirationTime(){return this._expirationTime}setExpirationTime(e){return this._requireNotFrozen(),this._expirationTime=e instanceof s$r?e:s$r.fromDate(e),this}get autoRenewAccountId(){return this._autoRenewAccountId}setAutoRenewAccountId(e){return this._requireNotFrozen(),this._autoRenewAccountId=e instanceof f$8?e:f$8.fromString(e),this}get autoRenewPeriod(){return this._autoRenewPeriod}setAutoRenewPeriod(e){return this._requireNotFrozen(),this._autoRenewPeriod=e instanceof s$l?e:new s$l(e),this}get tokenMemo(){return this._tokenMemo}setTokenMemo(e){return this._requireNotFrozen(),this._tokenMemo=e,this}get feeScheduleKey(){return this._feeScheduleKey}setFeeScheduleKey(e){return this._requireNotFrozen(),this._feeScheduleKey=e,this}get pauseKey(){return this._pauseKey}setPauseKey(e){return this._requireNotFrozen(),this._pauseKey=e,this}get metadataKey(){return this._metadataKey}setMetadataKey(e){return this._requireNotFrozen(),this._metadataKey=e,this}get metadata(){return this._metadata}setMetadata(e){return this._requireNotFrozen(),this._metadata=e,this}get keyVerificationMode(){return this._keyVerificationMode}setKeyVerificationMode(e){return this._requireNotFrozen(),this._keyVerificationMode=e,this}clearTokenMemo(){return this._requireNotFrozen(),this._tokenMemo=null,this}_validateChecksums(e){null!=this._tokenId&&this._tokenId.validateChecksum(e),null!=this._treasuryAccountId&&this._treasuryAccountId.validateChecksum(e),null!=this._autoRenewAccountId&&this._autoRenewAccountId.validateChecksum(e)}_execute(e,t){return e.token.updateToken(t)}_getTransactionDataCase(){return"tokenUpdate"}_makeTransactionData(){return{token:null!=this._tokenId?this._tokenId._toProtobuf():null,name:null!=this.tokenName?this.tokenName:null,symbol:this.tokenSymbol,treasury:null!=this._treasuryAccountId?this._treasuryAccountId._toProtobuf():null,adminKey:null!=this._adminKey?this._adminKey._toProtobufKey():null,kycKey:null!=this._kycKey?this._kycKey._toProtobufKey():null,freezeKey:null!=this._freezeKey?this._freezeKey._toProtobufKey():null,pauseKey:null!=this._pauseKey?this._pauseKey._toProtobufKey():null,wipeKey:null!=this._wipeKey?this._wipeKey._toProtobufKey():null,supplyKey:null!=this._supplyKey?this._supplyKey._toProtobufKey():null,autoRenewAccount:null!=this._autoRenewAccountId?this._autoRenewAccountId._toProtobuf():null,expiry:null!=this._expirationTime?this._expirationTime._toProtobuf():null,autoRenewPeriod:null!=this._autoRenewPeriod?this._autoRenewPeriod._toProtobuf():null,memo:null!=this._tokenMemo?{value:this._tokenMemo}:null,feeScheduleKey:null!=this._feeScheduleKey?this._feeScheduleKey._toProtobufKey():null,metadataKey:null!=this._metadataKey?this._metadataKey._toProtobufKey():null,metadata:null!=this._metadata?{value:this._metadata}:null,keyVerificationMode:null!=this._keyVerificationMode?this._keyVerificationMode._code:void 0}}_getLogId(){return`TokenUpdateTransaction:${this._transactionIds.current.validStart.toString()}`}};k$7.set("tokenUpdate",a$b._fromProtobuf);let s$c=class e extends P$5{constructor(e={}){super(),this._tokenId=null,this._accountId=null,this._serials=[],this._amount=null,null!=e.tokenId&&this.setTokenId(e.tokenId),null!=e.accountId&&this.setAccountId(e.accountId),null!=e.amount&&this.setAmount(e.amount),null!=e.serials&&this.setSerials(e.serials)}static _fromProtobuf(t,r,n,o,i){const s=i[0].tokenWipe;return P$5._fromProtobufTransactions(new e({tokenId:null!=s.token?u$i._fromProtobuf(s.token):void 0,accountId:null!=s.account?f$8._fromProtobuf(s.account):void 0,amount:null!=s.amount?s.amount:void 0,serials:null!=s.serialNumbers?s.serialNumbers:void 0}),t,r,n,o,i)}get tokenId(){return this._tokenId}setTokenId(e){return this._requireNotFrozen(),this._tokenId="string"==typeof e?u$i.fromString(e):e.clone(),this}get accountId(){return this._accountId}setAccountId(e){return this._requireNotFrozen(),this._accountId="string"==typeof e?f$8.fromString(e):e.clone(),this}get amount(){return this._amount}setAmount(e){return this._requireNotFrozen(),this._amount=e instanceof Long?e:Long.fromValue(e),this}_validateChecksums(e){null!=this._tokenId&&this._tokenId.validateChecksum(e),null!=this._accountId&&this._accountId.validateChecksum(e)}get serials(){return this._serials}setSerials(e){return this._requireNotFrozen(),this._serials=e.map((e=>"number"==typeof e?Long.fromNumber(e):e)),this}_execute(e,t){return e.token.wipeTokenAccount(t)}_getTransactionDataCase(){return"tokenWipe"}_makeTransactionData(){return{amount:this._amount,token:null!=this._tokenId?this._tokenId._toProtobuf():null,account:null!=this._accountId?this._accountId._toProtobuf():null,serialNumbers:this.serials}}_getLogId(){return`TokenWipeTransaction:${this._transactionIds.current.validStart.toString()}`}};k$7.set("tokenWipe",s$c._fromProtobuf);let c$9=class e extends P$5{constructor(e={}){super(),this._defaultMaxTransactionFee=new e$A(25),this._adminKey=null,this._submitKey=null,this._feeScheduleKey=null,this._feeExemptKeys=[],this._autoRenewAccountId=null,this._autoRenewPeriod=new s$l(I$7),this._customFees=[],this._topicMemo=null,null!=e.adminKey&&this.setAdminKey(e.adminKey),null!=e.submitKey&&this.setSubmitKey(e.submitKey),null!=e.feeScheduleKey&&this.setFeeScheduleKey(e.feeScheduleKey),null!=e.feeExemptKeys&&this.setFeeExemptKeys(e.feeExemptKeys),null!=e.autoRenewAccountId&&this.setAutoRenewAccountId(e.autoRenewAccountId),null!=e.autoRenewPeriod&&this.setAutoRenewPeriod(e.autoRenewPeriod),null!=e.customFees&&this.setCustomFees(e.customFees),null!=e.topicMemo&&this.setTopicMemo(e.topicMemo)}static _fromProtobuf(t,r,n,o,i){const s=i[0].consensusCreateTopic;return P$5._fromProtobufTransactions(new e({adminKey:null!=s.adminKey?t$y._fromProtobufKey(s.adminKey):void 0,submitKey:null!=s.submitKey?t$y._fromProtobufKey(s.submitKey):void 0,feeScheduleKey:null!=s.feeScheduleKey?t$y._fromProtobufKey(s.feeScheduleKey):void 0,feeExemptKeys:null!=s.feeExemptKeyList?s.feeExemptKeyList.map((e=>t$y._fromProtobufKey(e))):void 0,autoRenewAccountId:null!=s.autoRenewAccount?f$8._fromProtobuf(s.autoRenewAccount):void 0,autoRenewPeriod:null!=s.autoRenewPeriod&&null!=s.autoRenewPeriod.seconds?s.autoRenewPeriod.seconds:void 0,customFees:null!=s.customFees?s.customFees.map((e=>l$i._fromProtobuf(e))):void 0,topicMemo:null!=s.memo?s.memo:void 0}),t,r,n,o,i)}get topicMemo(){return this._topicMemo}getTopicMemo(){return this._topicMemo}setTopicMemo(e){return this._requireNotFrozen(),this._topicMemo=e,this}get adminKey(){return this._adminKey}getAdminKey(){return this._adminKey}setAdminKey(e){return this._requireNotFrozen(),this._adminKey=e,this}get submitKey(){return this._submitKey}getSubmitKey(){return this._submitKey}setSubmitKey(e){return this._requireNotFrozen(),this._submitKey=e,this}getFeeScheduleKey(){return this._feeScheduleKey}setFeeScheduleKey(e){return this._requireNotFrozen(),this._feeScheduleKey=e,this}getFeeExemptKeys(){return this._feeExemptKeys}setFeeExemptKeys(e){return this._requireNotFrozen(),this._feeExemptKeys=e,this}addFeeExemptKey(e){return this._requireNotFrozen(),this._feeExemptKeys.push(e),this}clearFeeExemptKeys(){return this._requireNotFrozen(),this._feeExemptKeys=[],this}get autoRenewAccountId(){return this._autoRenewAccountId}getAutoRenewAccountId(){return this._autoRenewAccountId}setAutoRenewAccountId(e){return this._requireNotFrozen(),this._autoRenewAccountId=e instanceof f$8?e:f$8.fromString(e),this}get autoRenewPeriod(){return this._autoRenewPeriod}getAutoRenewPeriod(){return this._autoRenewPeriod}setAutoRenewPeriod(e){return this._requireNotFrozen(),this._autoRenewPeriod=e instanceof s$l?e:new s$l(e),this}getCustomFees(){return this._customFees}setCustomFees(e){return this._requireNotFrozen(),this._customFees=e,this}addCustomFee(e){return this._requireNotFrozen(),this._customFees.push(e),this}clearCustomFees(){return this._requireNotFrozen(),this._customFees=[],this}_validateChecksums(e){null!=this._autoRenewAccountId&&this._autoRenewAccountId.validateChecksum(e)}freezeWith(e){var t,r;return!this._autoRenewAccountId&&(null==(t=this.transactionId)?void 0:t.accountId)?this.setAutoRenewAccountId(null==(r=this.transactionId)?void 0:r.accountId):!this._autoRenewAccountId&&(null==e?void 0:e.operatorAccountId)&&this.setAutoRenewAccountId(e.operatorAccountId),super.freezeWith(e)}_execute(e,t){return e.consensus.createTopic(t)}_getTransactionDataCase(){return"consensusCreateTopic"}_makeTransactionData(){return{adminKey:null!=this._adminKey?this._adminKey._toProtobufKey():null,submitKey:null!=this._submitKey?this._submitKey._toProtobufKey():null,feeScheduleKey:null!=this._feeScheduleKey?this._feeScheduleKey._toProtobufKey():null,feeExemptKeyList:this._feeExemptKeys.map((e=>e._toProtobufKey())),autoRenewAccount:null!=this._autoRenewAccountId?this._autoRenewAccountId._toProtobuf():null,autoRenewPeriod:this._autoRenewPeriod._toProtobuf(),customFees:this._customFees.map((e=>e._toTopicFeeProtobuf())),memo:this._topicMemo}}_getLogId(){return`TopicCreateTransaction:${this._transactionIds.current.validStart.toString()}`}};k$7.set("consensusCreateTopic",c$9._fromProtobuf);let i$d=class e extends P$5{constructor(e={}){super(),this._topicId=null,null!=e.topicId&&this.setTopicId(e.topicId)}static _fromProtobuf(t,r,n,o,i){const s=i[0].consensusDeleteTopic;return P$5._fromProtobufTransactions(new e({topicId:null!=s.topicID?m$6._fromProtobuf(s.topicID):void 0}),t,r,n,o,i)}get topicId(){return this._topicId}setTopicId(e){return this._requireNotFrozen(),this._topicId="string"==typeof e?m$6.fromString(e):e.clone(),this}_validateChecksums(e){null!=this._topicId&&this._topicId.validateChecksum(e)}_execute(e,t){return e.consensus.deleteTopic(t)}_getTransactionDataCase(){return"consensusDeleteTopic"}_makeTransactionData(){return{topicID:null!=this._topicId?this._topicId._toProtobuf():null}}_getLogId(){return`TopicDeleteTransaction:${this._transactionIds.current.validStart.toString()}`}};k$7.set("consensusDeleteTopic",i$d._fromProtobuf);let l$a=class e{constructor(e){this.topicId=e.topicId,this.topicMemo=e.topicMemo,this.runningHash=e.runningHash,this.sequenceNumber=e.sequenceNumber,this.expirationTime=e.expirationTime,this.adminKey=e.adminKey,this.submitKey=e.submitKey,this.feeScheduleKey=e.feeScheduleKey,this.feeExemptKeys=e.feeExemptKeys,this.autoRenewPeriod=e.autoRenewPeriod,this.autoRenewAccountId=e.autoRenewAccountId,this.customFees=e.customFees,this.ledgerId=e.ledgerId,Object.freeze(this)}static _fromProtobuf(t){const r=t.topicInfo;return new e({topicId:m$6._fromProtobuf(t.topicID),topicMemo:null!=r.memo?r.memo:"",runningHash:null!=r.runningHash?r.runningHash:new Uint8Array,sequenceNumber:null!=r.sequenceNumber?r.sequenceNumber instanceof Long?r.sequenceNumber:Long.fromValue(r.sequenceNumber):Long.ZERO,expirationTime:null!=r.expirationTime?s$r._fromProtobuf(r.expirationTime):null,adminKey:null!=r.adminKey?t$y._fromProtobufKey(r.adminKey):null,submitKey:null!=r.submitKey?t$y._fromProtobufKey(r.submitKey):null,feeScheduleKey:null!=r.feeScheduleKey?t$y._fromProtobufKey(r.feeScheduleKey):null,feeExemptKeys:null!=r.feeExemptKeyList?r.feeExemptKeyList.map((e=>t$y._fromProtobufKey(e))):null,autoRenewPeriod:null!=r.autoRenewPeriod?new s$l(r.autoRenewPeriod.seconds):null,autoRenewAccountId:null!=r.autoRenewAccount?f$8._fromProtobuf(r.autoRenewAccount):null,customFees:null!=r.customFees?r.customFees.map((e=>l$i._fromProtobuf(e))):null,ledgerId:null!=r.ledgerId?r$x.fromBytes(r.ledgerId):null})}_toProtobuf(){return{topicID:this.topicId._toProtobuf(),topicInfo:{memo:this.topicMemo,runningHash:this.runningHash,sequenceNumber:this.sequenceNumber,expirationTime:null!=this.expirationTime?this.expirationTime._toProtobuf():null,adminKey:null!=this.adminKey?this.adminKey._toProtobufKey():null,submitKey:null!=this.submitKey?this.submitKey._toProtobufKey():null,feeScheduleKey:null!=this.feeScheduleKey?this.feeScheduleKey._toProtobufKey():null,feeExemptKeyList:null!=this.feeExemptKeys?this.feeExemptKeys.map((e=>e._toProtobufKey())):null,autoRenewPeriod:null!=this.autoRenewPeriod?this.autoRenewPeriod._toProtobuf():null,autoRenewAccount:null!=this.autoRenewAccountId?this.autoRenewAccountId._toProtobuf():null,customFees:null!=this.customFees?this.customFees.map((e=>e._toProtobuf())):null}}}static fromBytes(t){return e._fromProtobuf(proto_1.ConsensusGetTopicInfoResponse.decode(t))}toBytes(){return proto_1.ConsensusGetTopicInfoResponse.encode(this._toProtobuf()).finish()}},n$j=class e extends h$b{constructor(e={}){super(),this._topicId=null,null!=e.topicId&&this.setTopicId(e.topicId)}static _fromProtobuf(t){const r=t.consensusGetTopicInfo;return new e({topicId:null!=r.topicID?m$6._fromProtobuf(r.topicID):void 0})}get topicId(){return this._topicId}setTopicId(e){return this._topicId="string"==typeof e?m$6.fromString(e):e.clone(),this}async getCost(e){return super.getCost(e)}_validateChecksums(e){null!=this._topicId&&this._topicId.validateChecksum(e)}_execute(e,t){return e.consensus.getTopicInfo(t)}_mapResponseHeader(e){return e.consensusGetTopicInfo.header}_mapResponse(e,t,r){return Promise.resolve(l$a._fromProtobuf(e.consensusGetTopicInfo))}_onMakeRequest(e){return{consensusGetTopicInfo:{header:e,topicID:null!=this._topicId?this._topicId._toProtobuf():null}}}_getLogId(){return`TopicInfoQuery:${(null!=this._paymentTransactionId&&null!=this._paymentTransactionId.validStart?this._paymentTransactionId.validStart:this._timestamp).toString()}`}};m$7.set("consensusGetTopicInfo",n$j._fromProtobuf);let u$7=class e extends P$5{constructor(e={}){super(),this._topicId=null,null!=e.topicId&&this.setTopicId(e.topicId),this._message=null,null!=e.message&&this.setMessage(e.message),this._maxChunks=20,this._chunkSize=A$6,null!=e.maxChunks&&this.setMaxChunks(e.maxChunks),null!=e.chunkSize&&this.setChunkSize(e.chunkSize),this._chunkInfo=null}static _fromProtobuf(t,r,n,o,i){const s=i[0].consensusSubmitMessage;return P$5._fromProtobufTransactions(new e({topicId:null!=s.topicID?m$6._fromProtobuf(s.topicID):void 0,message:null!=s.message?s.message:void 0}),t,r,n,o,i)}get topicId(){return this._topicId}setTopicId(e){return this._requireNotFrozen(),this._topicId="string"==typeof e?m$6.fromString(e):e.clone(),this}get message(){return this._message}getMessage(){return this._message}setMessage(e){return this._requireNotFrozen(),e=p$6(e),this._message=e instanceof Uint8Array?e:n$v(e),this}getCustomFeeLimits(){return this._customFeeLimits}setCustomFeeLimits(e){return this._requireNotFrozen(),this._customFeeLimits=e,this}addCustomFeeLimit(e){return this._requireNotFrozen(),this._customFeeLimits.push(e),this}get maxChunks(){return this._maxChunks}getMaxChunks(){return this._maxChunks}setMaxChunks(e){return this._requireNotFrozen(),this._maxChunks=e,this}get chunkSize(){return this._chunkSize}getChunkSize(){return this._chunkSize}setChunkSize(e){return this._chunkSize=e,this}freezeWith(e){if(super.freezeWith(e),null==this._message)return this;const t=Math.floor((this._message.length+(this._chunkSize-1))/this._chunkSize);if(t>this._maxChunks)throw new Error(`Message with size ${this._message.length} too long for ${this._maxChunks} chunks`);const r=this._getTransactionId()._toProtobuf();let n=this._getTransactionId();this._transactionIds.locked=!1,this._transactions.clear(),this._transactionIds.clear(),this._signedTransactions.clear();for(let o=0;othis._chunkSize)throw new Error(`cannot schedule \`TopicMessageSubmitTransaction\` with message over ${this._chunkSize} bytes`);return super.schedule()}async execute(e,t){return(await this.executeAll(e,t))[0]}async executeAll(e,t){super._isFrozen()||this.freezeWith(e);const r=this._getTransactionId(),n=e.operatorAccountId;null!=n&&n.equals(r.accountId)&&await super.signWithOperator(e);const o=[];let i=t;for(let s=0;sthis._message.length&&(t=this._message.length),{topicID:null!=this._topicId?this._topicId._toProtobuf():null,message:this._message.slice(e,t),chunkInfo:this._chunkInfo}}return{topicID:null!=this._topicId?this._topicId._toProtobuf():null,message:this._message}}_getLogId(){return`TopicMessageSubmitTransaction:${this._transactionIds.current.validStart.toString()}`}};k$7.set("consensusSubmitMessage",u$7._fromProtobuf);let l$9=class e extends P$5{constructor(e={}){super(),this._topicId=null,null!=e.topicId&&this.setTopicId(e.topicId),this._topicMemo=null,null!=e.topicMemo&&this.setTopicMemo(e.topicMemo),this._submitKey=null,null!=e.submitKey&&this.setSubmitKey(e.submitKey),this._adminKey=null,null!=e.adminKey&&this.setAdminKey(e.adminKey),this._feeScheduleKey=null,null!=e.feeScheduleKey&&this.setFeeScheduleKey(e.feeScheduleKey),this._feeExemptKeys=null,null!=e.feeExemptKeys&&this.setFeeExemptKeys(e.feeExemptKeys),this._autoRenewAccountId=null,null!=e.autoRenewAccountId&&this.setAutoRenewAccountId(e.autoRenewAccountId),this._autoRenewPeriod=null,null!=e.autoRenewPeriod&&this.setAutoRenewPeriod(e.autoRenewPeriod),this._customFees=null,null!=e.customFees&&this.setCustomFees(e.customFees),this._expirationTime=null,null!=e.expirationTime&&this.setExpirationTime(e.expirationTime)}static _fromProtobuf(t,r,n,o,i){const s=i[0].consensusUpdateTopic;return P$5._fromProtobufTransactions(new e({topicId:null!=s.topicID?m$6._fromProtobuf(s.topicID):void 0,adminKey:null!=s.adminKey?t$y._fromProtobufKey(s.adminKey):void 0,submitKey:null!=s.submitKey?t$y._fromProtobufKey(s.submitKey):void 0,feeScheduleKey:null!=s.feeScheduleKey?t$y._fromProtobufKey(s.feeScheduleKey):void 0,feeExemptKeys:null!=s.feeExemptKeyList&&null!=s.feeExemptKeyList.keys?null==s?void 0:s.feeExemptKeyList.keys.map((e=>t$y._fromProtobufKey(e))):void 0,autoRenewAccountId:null!=s.autoRenewAccount?f$8._fromProtobuf(s.autoRenewAccount):void 0,autoRenewPeriod:null!=s.autoRenewPeriod&&null!=s.autoRenewPeriod.seconds?s.autoRenewPeriod.seconds:void 0,customFees:null!=s.customFees&&null!=s.customFees.fees?s.customFees.fees.map((e=>l$i._fromProtobuf(e))):void 0,topicMemo:null!=s.memo&&Object.hasOwn(s.memo,"value")?s.memo.value:void 0,expirationTime:null!=s.expirationTime?s$r._fromProtobuf(s.expirationTime):void 0}),t,r,n,o,i)}get expirationTime(){return this._expirationTime}setExpirationTime(e){return this._requireNotFrozen(),this._expirationTime=e instanceof Date?s$r.fromDate(e):e,this}get topicId(){return this._topicId}setTopicId(e){return this._requireNotFrozen(),this._topicId="string"==typeof e?m$6.fromString(e):e.clone(),this}clearTopicId(){return this._requireNotFrozen(),this._topicId=null,this}get topicMemo(){return this._topicMemo}setTopicMemo(e){return this._requireNotFrozen(),this._topicMemo=e,this}clearTopicMemo(){return this._requireNotFrozen(),this._topicMemo=null,this}get adminKey(){return this._adminKey}setAdminKey(e){return this._requireNotFrozen(),this._adminKey=e,this}clearAdminKey(){return this._requireNotFrozen(),this._adminKey=null,this}get submitKey(){return this._submitKey}setSubmitKey(e){return this._requireNotFrozen(),this._submitKey=e,this}clearSubmitKey(){return this._requireNotFrozen(),this._submitKey=null,this}getFeeScheduleKey(){return this._feeScheduleKey}setFeeScheduleKey(e){return this._requireNotFrozen(),this._feeScheduleKey=e,this}clearFeeScheduleKey(){return this._requireNotFrozen(),this._feeScheduleKey=null,this}getFeeExemptKeys(){return this._feeExemptKeys}setFeeExemptKeys(e){return this._requireNotFrozen(),this._feeExemptKeys=e,this}addFeeExemptKey(e){return this._requireNotFrozen(),null==this._feeExemptKeys&&(this._feeExemptKeys=[]),this._feeExemptKeys.push(e),this}clearFeeExemptKeys(){return this._requireNotFrozen(),this._feeExemptKeys=null,this}get autoRenewAccountId(){return this._autoRenewAccountId}setAutoRenewAccountId(e){return this._requireNotFrozen(),this._autoRenewAccountId=e instanceof f$8?e:f$8.fromString(e),this}clearAutoRenewAccountId(){return this._requireNotFrozen(),this._autoRenewAccountId=null,this}get autoRenewPeriod(){return this._autoRenewPeriod}setAutoRenewPeriod(e){return this._requireNotFrozen(),this._autoRenewPeriod=e instanceof s$l?e:new s$l(e),this}getCustomFees(){return this._customFees}setCustomFees(e){return this._requireNotFrozen(),this._customFees=e,this}addCustomFee(e){return this._requireNotFrozen(),null==this._customFees&&(this._customFees=[]),this._customFees.push(e),this}clearCustomFees(){return this._requireNotFrozen(),this._customFees=null,this}_validateChecksums(e){null!=this._topicId&&this._topicId.validateChecksum(e),null!=this._autoRenewAccountId&&this._autoRenewAccountId.validateChecksum(e)}_execute(e,t){return e.consensus.updateTopic(t)}_getTransactionDataCase(){return"consensusUpdateTopic"}_makeTransactionData(){return{topicID:null!=this._topicId?this._topicId._toProtobuf():null,adminKey:null!=this._adminKey?this._adminKey._toProtobufKey():null,submitKey:null!=this._submitKey?this._submitKey._toProtobufKey():null,feeScheduleKey:null!=this._feeScheduleKey?this._feeScheduleKey._toProtobufKey():null,feeExemptKeyList:null!=this._feeExemptKeys?{keys:this._feeExemptKeys.map((e=>e._toProtobufKey()))}:null,memo:null!=this._topicMemo?{value:this._topicMemo}:null,autoRenewAccount:null!=this._autoRenewAccountId?this._autoRenewAccountId._toProtobuf():null,autoRenewPeriod:null!=this._autoRenewPeriod?this._autoRenewPeriod._toProtobuf():null,customFees:null!=this._customFees?{fees:this._customFees.map((e=>e._toTopicFeeProtobuf()))}:null,expirationTime:null!=this._expirationTime?this._expirationTime._toProtobuf():null}}_getLogId(){return`TopicUpdateTransaction:${this._transactionIds.current.validStart.toString()}`}};k$7.set("consensusUpdateTopic",l$9._fromProtobuf);let n$i=class e extends t$x{constructor(){super((e=>f$8.fromString(e)))}static _fromProtobuf(t){const r=new e;for(const e of null!=t.accountAmounts?t.accountAmounts:[]){const t=f$8._fromProtobuf(e.accountID);r._set(t,e$A.fromTinybars(e.amount))}return r}},T$6=class e extends u$f{constructor(e={}){super(),this._hbarTransfers=[],this._defaultMaxTransactionFee=new e$A(1);for(const t of null!=e.hbarTransfers?e.hbarTransfers:[])this.addHbarTransfer(t.accountId,t.amount)}static _fromProtobuf(t,r,n,o,i){const s=i[0].cryptoTransfer,a=new e;return a._tokenTransfers=n$s._fromProtobuf(null!=s.tokenTransfers?s.tokenTransfers:[]),a._hbarTransfers=n$w._fromProtobuf(null!=s.transfers&&null!=s.transfers.accountAmounts?s.transfers.accountAmounts:[]),a._nftTransfers=t$m._fromProtobuf(null!=s.tokenTransfers?s.tokenTransfers:[]),P$5._fromProtobufTransactions(a,t,r,n,o,i)}get hbarTransfers(){const e=new n$i;for(const t of this._hbarTransfers)e._set(t.accountId,t.amount);return e}get hbarTransfersList(){return this._hbarTransfers}_addHbarTransfer(e,t,r){this._requireNotFrozen();const n=e instanceof f$8?e.clone():f$8.fromString(e),o=t instanceof e$A?t:new e$A(t);for(const i of this._hbarTransfers)if(0===i.accountId.compare(n))return i.amount=e$A.fromTinybars(i.amount.toTinybars().add(o.toTinybars())),this;return this._hbarTransfers.push(new n$w({accountId:n,amount:o,isApproved:r})),this}addHbarTransfer(e,t){return this._addHbarTransfer(e,t,!1)}addApprovedHbarTransfer(e,t){return this._addHbarTransfer(e,t,!0)}_validateChecksums(e){for(const t of this._hbarTransfers)t.accountId.validateChecksum(e);for(const t of this._tokenTransfers)t.tokenId.validateChecksum(e),t.accountId.validateChecksum(e);for(const t of this._nftTransfers)t.tokenId.validateChecksum(e),t.senderAccountId.validateChecksum(e),t.receiverAccountId.validateChecksum(e)}setHbarTransferApproval(e,t){const r="string"==typeof e?f$8.fromString(e):e;for(const n of this._hbarTransfers)0===n.accountId.compare(r)&&(n.isApproved=t);return this}setTokenTransferApproval(e,t,r){const n="string"==typeof e?u$i.fromString(e):e,o="string"==typeof t?f$8.fromString(t):t;for(const i of this._tokenTransfers)0===i.tokenId.compare(n)&&0===i.accountId.compare(o)&&(i.isApproved=r);return this}setNftTransferApproval(e,t){const r="string"==typeof e?e$v.fromString(e):e;for(const n of this._nftTransfers)0===n.tokenId.compare(r.tokenId)&&0===n.serialNumber.compare(r.serial)&&(n.isApproved=t);return this}_execute(e,t){return e.crypto.cryptoTransfer(t)}_getTransactionDataCase(){return"cryptoTransfer"}_makeTransactionData(){const{tokenTransfers:e}=super._makeTransactionData();return this._hbarTransfers.sort(((e,t)=>e.accountId.compare(t.accountId))),{transfers:{accountAmounts:this._hbarTransfers.map((e=>({accountID:e.accountId._toProtobuf(),amount:e.amount.toTinybars(),isApproval:e.isApproved})))},tokenTransfers:e}}_getLogId(){return`TransferTransaction:${this._transactionIds.current.validStart.toString()}`}};k$7.set("cryptoTransfer",T$6._fromProtobuf);var browser$4={exports:{}};function tryStringify(e){try{return JSON.stringify(e)}catch(t){return'"[Circular]"'}}var quickFormatUnescaped=format$3;function format$3(e,t,r){var n=r&&r.stringify||tryStringify;if("object"==typeof e&&null!==e){var o=t.length+1;if(1===o)return e;var i=new Array(o);i[0]=n(e);for(var s=1;s-1?l:0,e.charCodeAt(h+1)){case 100:case 102:if(u>=a)break;if(null==t[u])break;l=a)break;if(null==t[u])break;l=a)break;if(void 0===t[u])break;l",l=h+2,h++;break}c+=n(t[u]),l=h+2,h++;break;case 115:if(u>=a)break;l{n[e]=r[e]?r[e]:_console$1[e]||_console$1[logFallbackMap[e]||"log"]||noop$2})),e[baseLogFunctionSymbol]=n}function shouldSerialize$1(e,t){if(Array.isArray(e)){return e.filter((function(e){return"!stdSerializers.err"!==e}))}return!0===e&&Object.keys(t)}function pino$1(e){(e=e||{}).browser=e.browser||{};const t=e.browser.transmit;if(t&&"function"!=typeof t.send)throw Error("pino: transmit option must have a send function");const r=e.browser.write||_console$1;e.browser.write&&(e.browser.asObject=!0);const n=e.serializers||{},o=shouldSerialize$1(e.browser.serialize,n);let i=e.browser.serialize;Array.isArray(e.browser.serialize)&&e.browser.serialize.indexOf("!stdSerializers.err")>-1&&(i=!1);const s=Object.keys(e.customLevels||{}),a=["error","fatal","warn","info","debug","trace"].concat(s);"function"==typeof r&&a.forEach((function(e){r[e]=r})),(!1===e.enabled||e.browser.disabled)&&(e.level="silent");const c=e.level||"info",u=Object.create(r);u.log||(u.log=noop$2),setupBaseLogFunctions(u,a,r),appendChildLogger({},u),Object.defineProperty(u,"levelVal",{get:function(){return levelToValue(this.level,this)}}),Object.defineProperty(u,"level",{get:function(){return this._level},set:function(e){if("silent"!==e&&!this.levels.values[e])throw Error("unknown level "+e);this._level=e,set$2(this,l,u,"error"),set$2(this,l,u,"fatal"),set$2(this,l,u,"warn"),set$2(this,l,u,"info"),set$2(this,l,u,"debug"),set$2(this,l,u,"trace"),s.forEach((e=>{set$2(this,l,u,e)}))}});const l={transmit:t,serialize:o,asObject:e.browser.asObject,formatters:e.browser.formatters,levels:a,timestamp:getTimeFunction$1(e),messageKey:e.messageKey||"msg",onChild:e.onChild||noop$2};function d(r,i,s){if(!i)throw new Error("missing bindings for child Pino");s=s||{},o&&i.serializers&&(s.serializers=i.serializers);const a=s.serializers;if(o&&a){var c=Object.assign({},n,a),u=!0===e.browser.serialize?Object.keys(c):o;delete i.serializers,applySerializers$1([i],u,c,this._stdErrSerialize)}function l(e){this._childLevel=1+(0|e._childLevel),this.bindings=i,c&&(this.serializers=c,this._serialize=u),t&&(this._logEvent=createLogEventShape$1([].concat(e._logEvent.bindings,i)))}l.prototype=this;const h=new l(this);return appendChildLogger(this,h),h.child=function(...e){return d.call(this,r,...e)},h.level=s.level||this.level,r.onChild(h),h}return u.levels=getLevels(e),u.level=c,u.setMaxListeners=u.getMaxListeners=u.emit=u.addListener=u.on=u.prependListener=u.once=u.prependOnceListener=u.removeListener=u.removeAllListeners=u.listeners=u.listenerCount=u.eventNames=u.write=u.flush=noop$2,u.serializers=n,u._serialize=o,u._stdErrSerialize=i,u.child=function(...e){return d.call(this,l,...e)},t&&(u._logEvent=createLogEventShape$1()),u}function getLevels(e){const t=e.customLevels||{};return{values:Object.assign({},pino$1.levels.values,t),labels:Object.assign({},pino$1.levels.labels,invertObject(t))}}function invertObject(e){const t={};return Object.keys(e).forEach((function(r){t[e[r]]=r})),t}function getBindingChain(e){const t=[];e.bindings&&t.push(e.bindings);let r=e[hierarchySymbol];for(;r.parent;)r=r.parent,r.logger.bindings&&t.push(r.logger.bindings);return t.reverse()}function set$2(e,t,r,n){if(Object.defineProperty(e,n,{value:levelToValue(e.level,r)>levelToValue(n,r)?noop$2:r[baseLogFunctionSymbol][n],writable:!0,enumerable:!0,configurable:!0}),e[n]===noop$2){if(!t.transmit)return;const o=levelToValue(t.transmit.level||e.level,r);if(levelToValue(n,r)e}=o.formatters||{},a=r.slice();let c=a[0];const u={};if(n&&(u.time=n),i){const r=i(t,e.levels.values[t]);Object.assign(u,r)}else u.level=e.levels.values[t];let l=1+(0|e._childLevel);if(l<1&&(l=1),null!==c&&"object"==typeof c){for(;l--&&"object"==typeof a[0];)Object.assign(u,a.shift());c=a.length?format$2(a.shift(),a):void 0}else"string"==typeof c&&(c=format$2(a.shift(),a));void 0!==c&&(u[o.messageKey]=c);return s(u)}function applySerializers$1(e,t,r,n){for(const o in e)if(n&&e[o]instanceof Error)e[o]=pino$1.stdSerializers.err(e[o]);else if("object"==typeof e[o]&&!Array.isArray(e[o])&&t)for(const n in e[o])t.indexOf(n)>-1&&n in r&&(e[o][n]=r[n](e[o][n]))}function transmit$1(e,t,r,n=!1){const o=t.send,i=t.ts,s=t.methodLevel,a=t.methodValue,c=t.val,u=e._logEvent.bindings;n||applySerializers$1(r,e._serialize||Object.keys(e.serializers),e.serializers,void 0===e._stdErrSerialize||e._stdErrSerialize),e._logEvent.ts=i,e._logEvent.messages=r.filter((function(e){return-1===u.indexOf(e)})),e._logEvent.level.label=s,e._logEvent.level.value=a,o(s,e._logEvent,c),e._logEvent=createLogEventShape$1(u)}function createLogEventShape$1(e){return{ts:0,messages:[],bindings:e||[],level:{label:"",value:0}}}function asErrValue$1(e){const t={type:e.constructor.name,msg:e.message,stack:e.stack};for(const r in e)void 0===t[r]&&(t[r]=e[r]);return t}function getTimeFunction$1(e){return"function"==typeof e.timestamp?e.timestamp:!1===e.timestamp?nullTime$1:epochTime$1}function mock$1(){return{}}function passthrough$1(e){return e}function noop$2(){}function nullTime$1(){return!1}function epochTime$1(){return Date.now()}function unixTime$1(){return Math.round(Date.now()/1e3)}function isoTime$1(){return new Date(Date.now()).toISOString()}function pfGlobalThisOrFallback$1(){function e(e){return void 0!==e&&e}try{return"undefined"!=typeof globalThis||Object.defineProperty(Object.prototype,"globalThis",{get:function(){return delete Object.prototype.globalThis,this.globalThis=this},configurable:!0}),globalThis}catch(t){return e(self)||e(window)||e(this)||{}}}pino$1.levels={values:{fatal:60,error:50,warn:40,info:30,debug:20,trace:10},labels:{10:"trace",20:"debug",30:"info",40:"warn",50:"error",60:"fatal"}},pino$1.stdSerializers=stdSerializers$1,pino$1.stdTimeFunctions=Object.assign({},{nullTime:nullTime$1,epochTime:epochTime$1,unixTime:unixTime$1,isoTime:isoTime$1}),browser$4.exports.default=pino$1,browser$4.exports.pino=pino$1;var browserExports=browser$4.exports;const e$c=getDefaultExportFromCjs$1(browserExports);let e$b=class e{constructor(e){this._name=e,Object.freeze(this)}toString(){switch(this){case e.Silent:return"silent";case e.Trace:return"trace";case e.Debug:return"debug";case e.Info:return"info";case e.Warn:return"warn";case e.Error:return"error";case e.Fatal:return"fatal";default:return`Unknown log level (${this._name})`}}static _fromString(t){switch(t){case"silent":return e.Silent;case"trace":return e.Trace;case"debug":return e.Debug;case"info":return e.Info;case"warn":return e.Warn;case"error":return e.Error;case"fatal":return e.Fatal;default:throw new Error(`Unknown log level: ${t}`)}}};e$b.Silent=new e$b("silent"),e$b.Trace=new e$b("trace"),e$b.Debug=new e$b("debug"),e$b.Info=new e$b("info"),e$b.Warn=new e$b("warn"),e$b.Error=new e$b("error"),e$b.Fatal=new e$b("fatal");let s$b=class e extends P$5{constructor(e={}){super(),this._tokenId=null,this._serialNumbers=[],this._metadata=null,null!=e.tokenId&&this.setTokenId(e.tokenId),null!=e.serialNumbers&&this.setSerialNumbers(e.serialNumbers),null!=e.metadata&&this.setMetadata(e.metadata)}static _fromProtobuf(t,r,n,o,i){const s=i[0].tokenUpdateNfts;return P$5._fromProtobufTransactions(new e({tokenId:null!=s.token?u$i._fromProtobuf(s.token):void 0,serialNumbers:null!=s.serialNumbers?s.serialNumbers:[],metadata:null!=s.metadata&&Object.hasOwn(s.metadata,"value")?s.metadata.value:void 0}),t,r,n,o,i)}setTokenId(e){return this._requireNotFrozen(),this._tokenId="string"==typeof e?u$i.fromString(e):e.clone(),this}setSerialNumbers(e){return this._requireNotFrozen(),this._serialNumbers=e,this}setMetadata(e){return this._requireNotFrozen(),this._metadata=e,this}_validateChecksums(e){null!=this._tokenId&&this._tokenId.validateChecksum(e)}_execute(e,t){return e.token.pauseToken(t)}_getTransactionDataCase(){return"tokenUpdateNfts"}_makeTransactionData(){return{token:null!=this._tokenId?this._tokenId._toProtobuf():null,serialNumbers:null!=this._serialNumbers?this._serialNumbers:[],...null!=this._metadata?{metadata:{value:this._metadata}}:null}}_getLogId(){return`TokenUpdateNftsTransaction:${this._transactionIds.current.validStart.toString()}`}};k$7.set("tokenUpdateNfts",s$b._fromProtobuf);let t$e=class e{constructor(e){this._ipAddressV4=null!=(null==e?void 0:e.ipAddressV4)?e.ipAddressV4:null,this._port=null!=(null==e?void 0:e.port)?e.port:null,this._domainName=null!=(null==e?void 0:e.domainName)?e.domainName:null}setIpAddressV4(e){if(null!=this._domainName)throw new Error("Cannot set IP address when domain name is already set.");return this._ipAddressV4=e,this}get getIpAddressV4(){return this._ipAddressV4}setPort(e){return this._port=e,this}get getPort(){return this._port}setDomainName(e){if(null!=this._ipAddressV4)throw new Error("Cannot set domain name when IP address is already set.");return this._domainName=e,this}get getDomainName(){return this._domainName}static _fromProtobuf(t){return new e({ipAddressV4:null!=t.ipAddressV4?t.ipAddressV4:void 0,port:null!=t.port?t.port:void 0,domainName:null!=t.domainName?t.domainName:void 0})}_toProtobuf(){return{ipAddressV4:this._ipAddressV4,port:this._port,domainName:this._domainName}}},r$i=class e extends P$5{constructor(e){super(),this._accountId=null!=(null==e?void 0:e.accountId)?e.accountId:null,this._description=null!=(null==e?void 0:e.description)?e.description:null,this._gossipEndpoints=null!=(null==e?void 0:e.gossipEndpoints)?e.gossipEndpoints:null,this._serviceEndpoints=null!=(null==e?void 0:e.serviceEndpoints)?e.serviceEndpoints:null,this._gossipCaCertificate=null!=(null==e?void 0:e.gossipCaCertificate)?e.gossipCaCertificate:null,this._grpcCertificateHash=null!=(null==e?void 0:e.grpcCertificateHash)?e.grpcCertificateHash:null,this._adminKey=null!=(null==e?void 0:e.adminKey)?e.adminKey:null,this._declineReward=null!=(null==e?void 0:e.declineReward)?e.declineReward:null}static _fromProtobuf(t,r,n,o,i){const s=i[0].nodeCreate;return P$5._fromProtobufTransactions(new e({accountId:null!=s.accountId?f$8._fromProtobuf(s.accountId):void 0,description:null!=s.description?s.description:void 0,gossipEndpoints:null!=s.gossipEndpoint?s.gossipEndpoint.map((e=>t$e._fromProtobuf(e))):void 0,serviceEndpoints:null!=s.serviceEndpoint?s.serviceEndpoint.map((e=>t$e._fromProtobuf(e))):void 0,gossipCaCertificate:null!=s.gossipCaCertificate?s.gossipCaCertificate:void 0,grpcCertificateHash:null!=s.grpcCertificateHash?s.grpcCertificateHash:void 0,adminKey:null!=s.adminKey?t$y._fromProtobufKey(s.adminKey):void 0,declineReward:null!=s.declineReward?s.declineReward:void 0}),t,r,n,o,i)}setAccountId(e){return this._requireNotFrozen(),this._accountId=e instanceof f$8?e:f$8.fromString(e),this}get accountId(){return this._accountId}setDescription(e){if(this._requireNotFrozen(),e.length>100)throw new Error("Description must be at most 100 characters.");return this._description=e,this}get description(){return this._description}setGossipEndpoints(e){if(this._requireNotFrozen(),0==e.length)throw new Error("GossipEndpoints list must not be empty.");if(e.length>10)throw new Error("GossipEndpoints list must not contain more than 10 entries.");return this._gossipEndpoints=[...e],this}get gossipEndpoints(){return this._gossipEndpoints}addGossipEndpoint(e){return null!=this._gossipEndpoints&&this._gossipEndpoints.push(e),this}setServiceEndpoints(e){if(this._requireNotFrozen(),0==e.length)throw new Error("ServiceEndpoints list must not be empty.");if(e.length>8)throw new Error("ServiceEndpoints list must not contain more than 8 entries.");return this._serviceEndpoints=[...e],this}get serviceEndpoints(){return this._serviceEndpoints}addServiceEndpoint(e){return null!=this._serviceEndpoints&&this._serviceEndpoints.push(e),this}setGossipCaCertificate(e){if(this._requireNotFrozen(),0==e.length)throw new Error("GossipCaCertificate must not be empty.");return this._gossipCaCertificate=e,this}get gossipCaCertificate(){return this._gossipCaCertificate}setCertificateHash(e){return this._requireNotFrozen(),this._grpcCertificateHash=e,this}get certificateHash(){return this._grpcCertificateHash}setAdminKey(e){return this._requireNotFrozen(),this._adminKey=e,this}get adminKey(){return this._adminKey}setDeclineReward(e){return this._requireNotFrozen(),this._declineReward=e,this}get declineReward(){return this._declineReward}_execute(e,t){return e.addressBook.createNode(t)}_getTransactionDataCase(){return"nodeCreate"}_makeTransactionData(){return{accountId:null!=this._accountId?this._accountId._toProtobuf():null,description:null!=this._description?this._description:null,gossipEndpoint:null!=this._gossipEndpoints?this._gossipEndpoints.map((e=>e._toProtobuf())):null,serviceEndpoint:null!=this._serviceEndpoints?this._serviceEndpoints.map((e=>e._toProtobuf())):null,gossipCaCertificate:null!=this._gossipCaCertificate?this._gossipCaCertificate:null,grpcCertificateHash:null!=this._grpcCertificateHash?this._grpcCertificateHash:null,adminKey:null!=this._adminKey?this._adminKey._toProtobufKey():null,declineReward:null!=this._declineReward?this._declineReward:null}}_getLogId(){return`NodeCreateTransaction:${this._transactionIds.current.validStart.toString()}`}};k$7.set("nodeCreate",r$i._fromProtobuf);let n$h=class e extends P$5{constructor(e){super(),this._nodeId=null!=(null==e?void 0:e.nodeId)?e.nodeId:null}static _fromProtobuf(t,r,n,o,i){const s=i[0].nodeDelete;return P$5._fromProtobufTransactions(new e({nodeId:null!=s.nodeId?s.nodeId:void 0}),t,r,n,o,i)}setNodeId(e){return this._nodeId=e,this}get nodeId(){return this._nodeId}_execute(e,t){return e.addressBook.deleteNode(t)}_getTransactionDataCase(){return"nodeDelete"}_makeTransactionData(){return{nodeId:null!=this._nodeId?this._nodeId:null}}_getLogId(){return`NodeDeleteTransaction:${this._transactionIds.current.validStart.toString()}`}};k$7.set("nodeDelete",n$h._fromProtobuf);let r$h=class e extends P$5{constructor(e){super(),this._nodeId=null!=(null==e?void 0:e.nodeId)?e.nodeId:null,this._accountId=null!=(null==e?void 0:e.accountId)?e.accountId:null,this._description=null!=(null==e?void 0:e.description)?e.description:null,this._gossipEndpoints=null!=(null==e?void 0:e.gossipEndpoints)?e.gossipEndpoints:null,this._serviceEndpoints=null!=(null==e?void 0:e.serviceEndpoints)?e.serviceEndpoints:null,this._gossipCaCertificate=null!=(null==e?void 0:e.gossipCaCertificate)?e.gossipCaCertificate:null,this._grpcCertificateHash=null!=(null==e?void 0:e.grpcCertificateHash)?e.grpcCertificateHash:null,this._adminKey=null!=(null==e?void 0:e.adminKey)?e.adminKey:null,this._declineReward=null!=(null==e?void 0:e.declineReward)?e.declineReward:null}static _fromProtobuf(t,r,n,o,i){var s;const a=i[0].nodeUpdate;return P$5._fromProtobufTransactions(new e({nodeId:null!=a.nodeId?a.nodeId:void 0,accountId:null!=a.accountId?f$8._fromProtobuf(a.accountId):void 0,description:null!=a.description&&Object.hasOwn(a.description,"value")?a.description.value:void 0,gossipEndpoints:null!=a.gossipEndpoint?a.gossipEndpoint.map((e=>t$e._fromProtobuf(e))):void 0,serviceEndpoints:null!=a.serviceEndpoint?a.serviceEndpoint.map((e=>t$e._fromProtobuf(e))):void 0,gossipCaCertificate:null!=a.gossipCaCertificate&&Object.hasOwn(a.gossipCaCertificate,"value")?a.gossipCaCertificate.value:void 0,grpcCertificateHash:null!=a.grpcCertificateHash&&Object.hasOwn(a.grpcCertificateHash,"value")?a.grpcCertificateHash.value:void 0,adminKey:null!=a.adminKey?t$y._fromProtobufKey(a.adminKey):void 0,declineReward:null!=(null==(s=a.declineReward)?void 0:s.value)?a.declineReward.value:void 0}),t,r,n,o,i)}setNodeId(e){return this._requireNotFrozen(),this._nodeId=e,this}get nodeId(){return this._nodeId}setAccountId(e){return this._requireNotFrozen(),this._accountId=e instanceof f$8?e:f$8.fromString(e),this}get accountId(){return this._accountId}setDescription(e){if(this._requireNotFrozen(),e.length>100)throw new Error("Description must be at most 100 characters.");return this._description=e,this}clearDescription(){this._description=""}get description(){return this._description}setGossipEndpoints(e){if(this._requireNotFrozen(),0==e.length)throw new Error("GossipEndpoints list must not be empty.");if(e.length>10)throw new Error("GossipEndpoints list must not contain more than 10 entries.");return this._gossipEndpoints=[...e],this}get gossipEndpoints(){return this._gossipEndpoints}addGossipEndpoint(e){return this._requireNotFrozen(),null!=this._gossipEndpoints&&this._gossipEndpoints.push(e),this}setServiceEndpoints(e){if(this._requireNotFrozen(),0==e.length)throw new Error("ServiceEndpoints list must not be empty.");if(e.length>8)throw new Error("ServiceEndpoints list must not contain more than 8 entries.");return this._serviceEndpoints=[...e],this}get serviceEndpoints(){return this._serviceEndpoints}addServiceEndpoint(e){return this._requireNotFrozen(),null!=this._serviceEndpoints&&this._serviceEndpoints.push(e),this}setGossipCaCertificate(e){if(this._requireNotFrozen(),0==e.length)throw new Error("GossipCaCertificate must not be empty.");return this._gossipCaCertificate=e,this}get gossipCaCertificate(){return this._gossipCaCertificate}setCertificateHash(e){return this._requireNotFrozen(),this._grpcCertificateHash=e,this}get certificateHash(){return this._grpcCertificateHash}setAdminKey(e){return this._requireNotFrozen(),this._adminKey=e,this}get adminKey(){return this._adminKey}setDeclineReward(e){return this._requireNotFrozen(),this._declineReward=e,this}get declineReward(){return this._declineReward}_execute(e,t){return e.addressBook.updateNode(t)}_getTransactionDataCase(){return"nodeUpdate"}_makeTransactionData(){return{accountId:null!=this._accountId?this._accountId._toProtobuf():null,description:{value:null!=this._description?this._description:null},gossipEndpoint:null!=this._gossipEndpoints?this._gossipEndpoints.map((e=>e._toProtobuf())):null,serviceEndpoint:null!=this._serviceEndpoints?this._serviceEndpoints.map((e=>e._toProtobuf())):null,gossipCaCertificate:null!=this._gossipCaCertificate?{value:this._gossipCaCertificate}:null,grpcCertificateHash:null!=this._grpcCertificateHash?{value:this._grpcCertificateHash}:null,adminKey:null!=this._adminKey?this._adminKey._toProtobufKey():null,nodeId:null!=this._nodeId?this._nodeId:null,declineReward:null!=this._declineReward?{value:this._declineReward}:null}}_getLogId(){return`NodeUpdateTransaction:${this._transactionIds.current.validStart.toString()}`}};k$7.set("nodeUpdate",r$h._fromProtobuf);const d$8=o$p._fromProtobuf(proto_1.NodeAddressBook.decode(r$G("0ad0070a0e33352e3233312e3230382e31343810a388031a05302e302e3322cc0633303832303161323330306430363039326138363438383666373064303130313031303530303033383230313866303033303832303138613032383230313831303039663166386131323163326664366337366664353038643365343239663063363462636234346338326137303537333535326161646361643037313536396537323139353866356135643039663935383766666166636662653533343161326630313134616361653334366566336339303231336433343336656262323766343335306339393063356338633366386531653336373037626330386434323536303832336533663234653039613033616430393535613530393830313936323964643034623237623235316463653035356633646463623061343164363666303934316230623837636466653334393864343630333861623564663036663632613561646530383539383537336138386338663538363064633134393261366531383634383561396231333235306536643137623830636433396335633831393130396537336361373332646232336566386261613737366563383563653030393162656362326564656662616135656433653564626662643166383835613466613838316166336631343461386135363538353335333364383933393335393230383662326431643336326534356266653166623435363833616261366336343039373961643662343638373731383437323663366562643538623265616538356337636665336662616265663566366363656438353030333462333834373230366332643637386333363138373630323662386433353165303032616635653066666536663562316632393566646332663436396361613264323338316561306234386361393837636332633865363335653862313963653565313732613933373631613864343930613961343531386437323535383830613134643737623762613737343839326239326134306262383133363265333466633664353137386439623330313132393334323035636237376662396132383234323733393435363461383535346561343732383661343766383632333965373563393437383963653938633939383434373832343632393434663631333136376437623530323033303130303031320218033a606666643661646137346133613334613930346265613437363033303836663862656633623662653138616265643434633464343065313266623133306239376264366238353561656335643062393062306238633733353464356633623065340acf070a0d332e3231312e3234382e31373210a388031a05302e302e3322cc0633303832303161323330306430363039326138363438383666373064303130313031303530303033383230313866303033303832303138613032383230313831303039663166386131323163326664366337366664353038643365343239663063363462636234346338326137303537333535326161646361643037313536396537323139353866356135643039663935383766666166636662653533343161326630313134616361653334366566336339303231336433343336656262323766343335306339393063356338633366386531653336373037626330386434323536303832336533663234653039613033616430393535613530393830313936323964643034623237623235316463653035356633646463623061343164363666303934316230623837636466653334393864343630333861623564663036663632613561646530383539383537336138386338663538363064633134393261366531383634383561396231333235306536643137623830636433396335633831393130396537336361373332646232336566386261613737366563383563653030393162656362326564656662616135656433653564626662643166383835613466613838316166336631343461386135363538353335333364383933393335393230383662326431643336326534356266653166623435363833616261366336343039373961643662343638373731383437323663366562643538623265616538356337636665336662616265663566366363656438353030333462333834373230366332643637386333363138373630323662386433353165303032616635653066666536663562316632393566646332663436396361613264323338316561306234386361393837636332633865363335653862313963653565313732613933373631613864343930613961343531386437323535383830613134643737623762613737343839326239326134306262383133363265333466633664353137386439623330313132393334323035636237376662396132383234323733393435363461383535346561343732383661343766383632333965373563393437383963653938633939383434373832343632393434663631333136376437623530323033303130303031320218033a606666643661646137346133613334613930346265613437363033303836663862656633623662653138616265643434633464343065313266623133306239376264366238353561656335643062393062306238633733353464356633623065340ace070a0c34302e3132312e36342e343810a388031a05302e302e3322cc0633303832303161323330306430363039326138363438383666373064303130313031303530303033383230313866303033303832303138613032383230313831303039663166386131323163326664366337366664353038643365343239663063363462636234346338326137303537333535326161646361643037313536396537323139353866356135643039663935383766666166636662653533343161326630313134616361653334366566336339303231336433343336656262323766343335306339393063356338633366386531653336373037626330386434323536303832336533663234653039613033616430393535613530393830313936323964643034623237623235316463653035356633646463623061343164363666303934316230623837636466653334393864343630333861623564663036663632613561646530383539383537336138386338663538363064633134393261366531383634383561396231333235306536643137623830636433396335633831393130396537336361373332646232336566386261613737366563383563653030393162656362326564656662616135656433653564626662643166383835613466613838316166336631343461386135363538353335333364383933393335393230383662326431643336326534356266653166623435363833616261366336343039373961643662343638373731383437323663366562643538623265616538356337636665336662616265663566366363656438353030333462333834373230366332643637386333363138373630323662386433353165303032616635653066666536663562316632393566646332663436396361613264323338316561306234386361393837636332633865363335653862313963653565313732613933373631613864343930613961343531386437323535383830613134643737623762613737343839326239326134306262383133363265333466633664353137386439623330313132393334323035636237376662396132383234323733393435363461383535346561343732383661343766383632333965373563393437383963653938633939383434373832343632393434663631333136376437623530323033303130303031320218033a606666643661646137346133613334613930346265613437363033303836663862656633623662653138616265643434633464343065313266623133306239376264366238353561656335643062393062306238633733353464356633623065340ad1070a0d33352e3139392e31352e31373710a388031a05302e302e3422cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030633535376166353739666138333530316265383939623238393037373635626664666364353261623433326230313935613166316563643836666330306162366335353039623066646439376564643363623563656135366132393566333132616262353530383331646266393633663435303131386234666363366532326366343637363230306365396363386564666262663535386463363966303234323634616437643364616232336265643231333363323734653639333434383931353564623130383766393033373039303563363431383561363231316463373432666239613639303964383231383639343762323737343633646662336666306163643437656666313265616431663639373265663263313230333739336334356537373537356265346661313130633765343066613864623963363138376431313366343730343031343137393037316162663539626537643262306465383264653432313564633235353036623163396332366534393137343031633939373530366533373765366266303362363838373237653739343066616436396335653064613363643563626432626537373733353061656132643064343765393761343438633834626536636531333464363462656530393835633239313632663463316535363763636139336430366133633162653861626365333562353537666237376634666536373161363664656337393037353664306538383138313635663262616361613839316161653761633734333766633731373562366562366465623734373233373837353162623662663962306531343833663936363865396664626435363034633339623134643965326265646565633834366139383064373034643137316537626134623766636431613330643934356361313266343761333235643933393861613138663937303636303534643464313566633839393465326465626537336539323731643534383638336636316561343466623235303731653335313861373865643365623337653731613036393166323637303230333031303030312801320218043a606630643934616363663664666633373238373463396462643864373939326562333137616635303031636134313936616261323635383039636233643230306261393631613534333863336135656430356338336264663963643131356432320ad1070a0d332e3133332e3231332e31343610a388031a05302e302e3422cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030633535376166353739666138333530316265383939623238393037373635626664666364353261623433326230313935613166316563643836666330306162366335353039623066646439376564643363623563656135366132393566333132616262353530383331646266393633663435303131386234666363366532326366343637363230306365396363386564666262663535386463363966303234323634616437643364616232336265643231333363323734653639333434383931353564623130383766393033373039303563363431383561363231316463373432666239613639303964383231383639343762323737343633646662336666306163643437656666313265616431663639373265663263313230333739336334356537373537356265346661313130633765343066613864623963363138376431313366343730343031343137393037316162663539626537643262306465383264653432313564633235353036623163396332366534393137343031633939373530366533373765366266303362363838373237653739343066616436396335653064613363643563626432626537373733353061656132643064343765393761343438633834626536636531333464363462656530393835633239313632663463316535363763636139336430366133633162653861626365333562353537666237376634666536373161363664656337393037353664306538383138313635663262616361613839316161653761633734333766633731373562366562366465623734373233373837353162623662663962306531343833663936363865396664626435363034633339623134643965326265646565633834366139383064373034643137316537626134623766636431613330643934356361313266343761333235643933393861613138663937303636303534643464313566633839393465326465626537336539323731643534383638336636316561343466623235303731653335313861373865643365623337653731613036393166323637303230333031303030312801320218043a606630643934616363663664666633373238373463396462643864373939326562333137616635303031636134313936616261323635383039636233643230306261393631613534333863336135656430356338336264663963643131356432320ad0070a0c34302e37302e31312e32303210a388031a05302e302e3422cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030633535376166353739666138333530316265383939623238393037373635626664666364353261623433326230313935613166316563643836666330306162366335353039623066646439376564643363623563656135366132393566333132616262353530383331646266393633663435303131386234666363366532326366343637363230306365396363386564666262663535386463363966303234323634616437643364616232336265643231333363323734653639333434383931353564623130383766393033373039303563363431383561363231316463373432666239613639303964383231383639343762323737343633646662336666306163643437656666313265616431663639373265663263313230333739336334356537373537356265346661313130633765343066613864623963363138376431313366343730343031343137393037316162663539626537643262306465383264653432313564633235353036623163396332366534393137343031633939373530366533373765366266303362363838373237653739343066616436396335653064613363643563626432626537373733353061656132643064343765393761343438633834626536636531333464363462656530393835633239313632663463316535363763636139336430366133633162653861626365333562353537666237376634666536373161363664656337393037353664306538383138313635663262616361613839316161653761633734333766633731373562366562366465623734373233373837353162623662663962306531343833663936363865396664626435363034633339623134643965326265646565633834366139383064373034643137316537626134623766636431613330643934356361313266343761333235643933393861613138663937303636303534643464313566633839393465326465626537336539323731643534383638336636316561343466623235303731653335313861373865643365623337653731613036393166323637303230333031303030312801320218043a606630643934616363663664666633373238373463396462643864373939326562333137616635303031636134313936616261323635383039636233643230306261393631613534333863336135656430356338336264663963643131356432320ad2070a0e33352e3232352e3230312e31393510a388031a05302e302e3522cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030396261343537623733333035663034613931636334366231623936356334653834313735316162633862313431356130626164666431663332633234383233383661323237323565623765633734646561323165353036313764363438656135616333393337343161623031623865666233323132333962386434666462316466626562396533663339616134363538306464303435643138636134346430303263333764646235323763636534646463333262666337333431393637316634636134343634613366326138346663383563373161636630653561383936323664663639613831343734656431363532396638303161386166613937653433356334653034613936346133353735323732383838343365353866306130356366353135336565343530376232633638623364376662353461653661393561393539633837613132663633306539356337623162336333363935653835383636323431373932366437366331363938336661663631323235303338373435393037653963663133643637633261636435303363613435316338353933336163343131386163633237393830316362393638333439393033313435636564323736323964643038393136333137303933353837613737633232303563666135323534336235336333623665613135623834653364326333306331656437353261343633336333366232356239383933656130326164353632656239623738363862336234663437663461323565333536303634393632616337623235653538323934346630306433303739386132363266393231346438633565373464306138333736636332643662613634653138663565346134306166616336323530363264326361323363643238303037303833323164333833343331346630653538343438353932333236373361333265373061653064373131653331303538316263646231346538373133343639346336653039333066343662333762393664343961363435373339343733333165376535303764396535366465356536313436663266303230333031303030312802320218053a606361363738656263626433646338363438663765643033666235396630653231616636373531336561656535313331386536623534396265356163653930366564633166666132366439336135376163656339626537376634306561656564370ad1070a0d35322e31352e3130352e31333010a388031a05302e302e3522cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030396261343537623733333035663034613931636334366231623936356334653834313735316162633862313431356130626164666431663332633234383233383661323237323565623765633734646561323165353036313764363438656135616333393337343161623031623865666233323132333962386434666462316466626562396533663339616134363538306464303435643138636134346430303263333764646235323763636534646463333262666337333431393637316634636134343634613366326138346663383563373161636630653561383936323664663639613831343734656431363532396638303161386166613937653433356334653034613936346133353735323732383838343365353866306130356366353135336565343530376232633638623364376662353461653661393561393539633837613132663633306539356337623162336333363935653835383636323431373932366437366331363938336661663631323235303338373435393037653963663133643637633261636435303363613435316338353933336163343131386163633237393830316362393638333439393033313435636564323736323964643038393136333137303933353837613737633232303563666135323534336235336333623665613135623834653364326333306331656437353261343633336333366232356239383933656130326164353632656239623738363862336234663437663461323565333536303634393632616337623235653538323934346630306433303739386132363266393231346438633565373464306138333736636332643662613634653138663565346134306166616336323530363264326361323363643238303037303833323164333833343331346630653538343438353932333236373361333265373061653064373131653331303538316263646231346538373133343639346336653039333066343662333762393664343961363435373339343733333165376535303764396535366465356536313436663266303230333031303030312802320218053a606361363738656263626433646338363438663765643033666235396630653231616636373531336561656535313331386536623534396265356163653930366564633166666132366439336135376163656339626537376634306561656564370ad1070a0d3130342e34332e3234382e363310a388031a05302e302e3522cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030396261343537623733333035663034613931636334366231623936356334653834313735316162633862313431356130626164666431663332633234383233383661323237323565623765633734646561323165353036313764363438656135616333393337343161623031623865666233323132333962386434666462316466626562396533663339616134363538306464303435643138636134346430303263333764646235323763636534646463333262666337333431393637316634636134343634613366326138346663383563373161636630653561383936323664663639613831343734656431363532396638303161386166613937653433356334653034613936346133353735323732383838343365353866306130356366353135336565343530376232633638623364376662353461653661393561393539633837613132663633306539356337623162336333363935653835383636323431373932366437366331363938336661663631323235303338373435393037653963663133643637633261636435303363613435316338353933336163343131386163633237393830316362393638333439393033313435636564323736323964643038393136333137303933353837613737633232303563666135323534336235336333623665613135623834653364326333306331656437353261343633336333366232356239383933656130326164353632656239623738363862336234663437663461323565333536303634393632616337623235653538323934346630306433303739386132363266393231346438633565373464306138333736636332643662613634653138663565346134306166616336323530363264326361323363643238303037303833323164333833343331346630653538343438353932333236373361333265373061653064373131653331303538316263646231346538373133343639346336653039333066343662333762393664343961363435373339343733333165376535303764396535366465356536313436663266303230333031303030312802320218053a606361363738656263626433646338363438663765643033666235396630653231616636373531336561656535313331386536623534396265356163653930366564633166666132366439336135376163656339626537376634306561656564370ad2070a0e33352e3234372e3130392e31333510a388031a05302e302e3622cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030633432636361633566626336393166626265626461383766666431653735626463643839323234393463663434666462636365653439373838353231633337386266373764623039333465633064323138336437633531646236366638363463313161623764653161633363346366646331663039336132643666333765326233346362653463383133316639363833616434323837386338336433353534633634356161313637626366623036346138336463343563356231313538343939663964393235383766666637616263643566323231636438313530353438343133303030666136653536353930383962316466643635373636656137386561656466636136623435343535666438616235393834646265333565353739356432633633356561373937346434336538656165346665626666653439326537303762343862316230666336343831616539653039643339313333303039623764323634303265366535326535653931623262333830643838663062653766623462333033653730323139373835303537616139346365393234633439323665393136353639323836653836623362613635316361326130613633646634663639303766656665333438336439336234636531643464303363373134323131313337356232633263353164346562383339653337616635333062326362643666353064346362333665323739333731373064396364646163306163653263633234623830346230613237333531636638333062373635323565323664666239646266343961303536363234613736383632343934653732363364306437306365626165393532393433653535383432663563616431336663663630613265366463663761316435333366336135626235346563323139313863373665353235626132393134363637353833316531376533366336316665383534393838323864303962373632303135343132623265353237383439626165633163666663373764653463323934633535303831316535393866663234646131356133343536396464303230333031303030312803320218063a603234373166336665383134303638316665393139313364326363303633663036356534343930616536326666356435343861356162653133316432616639366362653361633235626265323433363663613466386630653736636639343566330acf070a0b35342e3234312e33382e3110a388031a05302e302e3622cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030633432636361633566626336393166626265626461383766666431653735626463643839323234393463663434666462636365653439373838353231633337386266373764623039333465633064323138336437633531646236366638363463313161623764653161633363346366646331663039336132643666333765326233346362653463383133316639363833616434323837386338336433353534633634356161313637626366623036346138336463343563356231313538343939663964393235383766666637616263643566323231636438313530353438343133303030666136653536353930383962316466643635373636656137386561656466636136623435343535666438616235393834646265333565353739356432633633356561373937346434336538656165346665626666653439326537303762343862316230666336343831616539653039643339313333303039623764323634303265366535326535653931623262333830643838663062653766623462333033653730323139373835303537616139346365393234633439323665393136353639323836653836623362613635316361326130613633646634663639303766656665333438336439336234636531643464303363373134323131313337356232633263353164346562383339653337616635333062326362643666353064346362333665323739333731373064396364646163306163653263633234623830346230613237333531636638333062373635323565323664666239646266343961303536363234613736383632343934653732363364306437306365626165393532393433653535383432663563616431336663663630613265366463663761316435333366336135626235346563323139313863373665353235626132393134363637353833316531376533366336316665383534393838323864303962373632303135343132623265353237383439626165633163666663373764653463323934633535303831316535393866663234646131356133343536396464303230333031303030312803320218063a603234373166336665383134303638316665393139313364326363303633663036356534343930616536326666356435343861356162653133316432616639366362653361633235626265323433363663613466386630653736636639343566330acf070a0b31332e38382e32322e343710a388031a05302e302e3622cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030633432636361633566626336393166626265626461383766666431653735626463643839323234393463663434666462636365653439373838353231633337386266373764623039333465633064323138336437633531646236366638363463313161623764653161633363346366646331663039336132643666333765326233346362653463383133316639363833616434323837386338336433353534633634356161313637626366623036346138336463343563356231313538343939663964393235383766666637616263643566323231636438313530353438343133303030666136653536353930383962316466643635373636656137386561656466636136623435343535666438616235393834646265333565353739356432633633356561373937346434336538656165346665626666653439326537303762343862316230666336343831616539653039643339313333303039623764323634303265366535326535653931623262333830643838663062653766623462333033653730323139373835303537616139346365393234633439323665393136353639323836653836623362613635316361326130613633646634663639303766656665333438336439336234636531643464303363373134323131313337356232633263353164346562383339653337616635333062326362643666353064346362333665323739333731373064396364646163306163653263633234623830346230613237333531636638333062373635323565323664666239646266343961303536363234613736383632343934653732363364306437306365626165393532393433653535383432663563616431336663663630613265366463663761316435333366336135626235346563323139313863373665353235626132393134363637353833316531376533366336316665383534393838323864303962373632303135343132623265353237383439626165633163666663373764653463323934633535303831316535393866663234646131356133343536396464303230333031303030312803320218063a603234373166336665383134303638316665393139313364326363303633663036356534343930616536326666356435343861356162653133316432616639366362653361633235626265323433363663613466386630653736636639343566330ad0070a0c33352e3233352e36352e353110a388031a05302e302e3722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030393032663034393061396237663564326364316330643936633661363939306635373362356630656235626462626133393636316566303233303932343139333434363639393639613638613463373037316433323939393066623137393265393030316362353539386561373163326436363736383234333230656534636162663164643335376165376632616462656463316231623061396439353632333737396234633463376234376334373837613136656537313838633732313731373736323461393236346162333963343166376666306234356138396264613430633461643037633464353936643566303964373035366263623561333566343466393561353963323636653039383932646362653436616435316632643262336539393161386636363538653166326362393463373733656234346334346538393264316535356331303736663136303833313965653635376534306631393239363735343361623432616232323233383664313735383665323533373438646162643032356535306235306165363035303732306532333964363465653666623435303763303631346464346265376166646231333330383930666633613665313736353237633331313661663132396139616335653333366439663630316537313237613664376438323061643266393032646163396232343836363861316261623038643130333432656136396137303937313332666637313230636336346663646537383430633635366261313733326261393565396333363735313137356534656333643834613765306432383834326234316262626264366632386534366333613636333365313832373936356335353832306435306461653262303436356363306434326531393562396431353332653632323565623939386436613439303739613861316364346430313735646533633837663937363134383437623363626231376161333462653832306237623361643938616333666165663939336136373738393734373832633063346165336661626263633433303230333031303030312804320218073a606633353738373364343131346131616566303361646336626136396566616632363930653232376162633136613666633665353034396136336662643936383830303462313465343633633230653338343336613361323464333138326464380ad1070a0d35342e3137372e35312e31323710a388031a05302e302e3722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030393032663034393061396237663564326364316330643936633661363939306635373362356630656235626462626133393636316566303233303932343139333434363639393639613638613463373037316433323939393066623137393265393030316362353539386561373163326436363736383234333230656534636162663164643335376165376632616462656463316231623061396439353632333737396234633463376234376334373837613136656537313838633732313731373736323461393236346162333963343166376666306234356138396264613430633461643037633464353936643566303964373035366263623561333566343466393561353963323636653039383932646362653436616435316632643262336539393161386636363538653166326362393463373733656234346334346538393264316535356331303736663136303833313965653635376534306631393239363735343361623432616232323233383664313735383665323533373438646162643032356535306235306165363035303732306532333964363465653666623435303763303631346464346265376166646231333330383930666633613665313736353237633331313661663132396139616335653333366439663630316537313237613664376438323061643266393032646163396232343836363861316261623038643130333432656136396137303937313332666637313230636336346663646537383430633635366261313733326261393565396333363735313137356534656333643834613765306432383834326234316262626264366632386534366333613636333365313832373936356335353832306435306461653262303436356363306434326531393562396431353332653632323565623939386436613439303739613861316364346430313735646533633837663937363134383437623363626231376161333462653832306237623361643938616333666165663939336136373738393734373832633063346165336661626263633433303230333031303030312804320218073a606633353738373364343131346131616566303361646336626136396566616632363930653232376162633136613666633665353034396136336662643936383830303462313465343633633230653338343336613361323464333138326464380ad0070a0c31332e36342e3137302e343010a388031a05302e302e3722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030393032663034393061396237663564326364316330643936633661363939306635373362356630656235626462626133393636316566303233303932343139333434363639393639613638613463373037316433323939393066623137393265393030316362353539386561373163326436363736383234333230656534636162663164643335376165376632616462656463316231623061396439353632333737396234633463376234376334373837613136656537313838633732313731373736323461393236346162333963343166376666306234356138396264613430633461643037633464353936643566303964373035366263623561333566343466393561353963323636653039383932646362653436616435316632643262336539393161386636363538653166326362393463373733656234346334346538393264316535356331303736663136303833313965653635376534306631393239363735343361623432616232323233383664313735383665323533373438646162643032356535306235306165363035303732306532333964363465653666623435303763303631346464346265376166646231333330383930666633613665313736353237633331313661663132396139616335653333366439663630316537313237613664376438323061643266393032646163396232343836363861316261623038643130333432656136396137303937313332666637313230636336346663646537383430633635366261313733326261393565396333363735313137356534656333643834613765306432383834326234316262626264366632386534366333613636333365313832373936356335353832306435306461653262303436356363306434326531393562396431353332653632323565623939386436613439303739613861316364346430313735646533633837663937363134383437623363626231376161333462653832306237623361643938616333666165663939336136373738393734373832633063346165336661626263633433303230333031303030312804320218073a606633353738373364343131346131616566303361646336626136396566616632363930653232376162633136613666633665353034396136336662643936383830303462313465343633633230653338343336613361323464333138326464380ad1070a0d33342e3130362e3234372e363510a388031a05302e302e3822cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030393164376466666637386634656662653538393034353063356263396533353334626666616461643933666237616662313562633762636636376433643362343133626439393934306464383235363461646130346162326534656466306131633062386662376531613830393265393133386539363062653263633638623562393766353764323831633538373265393761343739666338343833363331363065333836336235376233336534383639623138356163653565333662643433616535666136373863396562363666316634303134373836383236623266386661376530303630663434303563306138663964613732303566663436383361323433666130663331356631616662623461346431343064303232333465343437336662393266636233386633656232386336306366376362666236346530363963313830383665346464363139333839323061653066643763313933653665313034653635623831376564393339386532333232333766646630383332326339636563303964343039393237326137633031356432326234646363393639663665613166353138393032313035646636303039326235356134316234663332623935376235376438346535623232333930356538363938393531373333656139663265323436316563306436353232656538313664353835306661636665623431326366663962393939343361383764633064303436343437636539336239376531366437336239366234323633393632663831666366393435386535373537376337383061366631363135616137613132333236373338653236396262373331663839653839313632326535373765613534343230626630636134366265366663346637316366323638316163303235326161383835653133626536373263643238343539303432376463643133376366333131363235653862656533623038666463616166343635623338376365376362333338313666326331346136623939616337643733343331386366633539623765643933396261666566383739303230333031303030312805320218083a603439333161373832303264353566313062333135373537383563336634333964623638313962643131303033646637626332636539326532396135313762376332313838306465623463303137393537343462353736636434336238343938640ad0070a0c33352e38332e38392e31373110a388031a05302e302e3822cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030393164376466666637386634656662653538393034353063356263396533353334626666616461643933666237616662313562633762636636376433643362343133626439393934306464383235363461646130346162326534656466306131633062386662376531613830393265393133386539363062653263633638623562393766353764323831633538373265393761343739666338343833363331363065333836336235376233336534383639623138356163653565333662643433616535666136373863396562363666316634303134373836383236623266386661376530303630663434303563306138663964613732303566663436383361323433666130663331356631616662623461346431343064303232333465343437336662393266636233386633656232386336306366376362666236346530363963313830383665346464363139333839323061653066643763313933653665313034653635623831376564393339386532333232333766646630383332326339636563303964343039393237326137633031356432326234646363393639663665613166353138393032313035646636303039326235356134316234663332623935376235376438346535623232333930356538363938393531373333656139663265323436316563306436353232656538313664353835306661636665623431326366663962393939343361383764633064303436343437636539336239376531366437336239366234323633393632663831666366393435386535373537376337383061366631363135616137613132333236373338653236396262373331663839653839313632326535373765613534343230626630636134366265366663346637316366323638316163303235326161383835653133626536373263643238343539303432376463643133376366333131363235653862656533623038666463616166343635623338376365376362333338313666326331346136623939616337643733343331386366633539623765643933396261666566383739303230333031303030312805320218083a603439333161373832303264353566313062333135373537383563336634333964623638313962643131303033646637626332636539326532396135313762376332313838306465623463303137393537343462353736636434336238343938640ad1070a0d31332e37382e3233322e31393210a388031a05302e302e3822cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030393164376466666637386634656662653538393034353063356263396533353334626666616461643933666237616662313562633762636636376433643362343133626439393934306464383235363461646130346162326534656466306131633062386662376531613830393265393133386539363062653263633638623562393766353764323831633538373265393761343739666338343833363331363065333836336235376233336534383639623138356163653565333662643433616535666136373863396562363666316634303134373836383236623266386661376530303630663434303563306138663964613732303566663436383361323433666130663331356631616662623461346431343064303232333465343437336662393266636233386633656232386336306366376362666236346530363963313830383665346464363139333839323061653066643763313933653665313034653635623831376564393339386532333232333766646630383332326339636563303964343039393237326137633031356432326234646363393639663665613166353138393032313035646636303039326235356134316234663332623935376235376438346535623232333930356538363938393531373333656139663265323436316563306436353232656538313664353835306661636665623431326366663962393939343361383764633064303436343437636539336239376531366437336239366234323633393632663831666366393435386535373537376337383061366631363135616137613132333236373338653236396262373331663839653839313632326535373765613534343230626630636134366265366663346637316366323638316163303235326161383835653133626536373263643238343539303432376463643133376366333131363235653862656533623038666463616166343635623338376365376362333338313666326331346136623939616337643733343331386366633539623765643933396261666566383739303230333031303030312805320218083a603439333161373832303264353566313062333135373537383563336634333964623638313962643131303033646637626332636539326532396135313762376332313838306465623463303137393537343462353736636434336238343938640ad0070a0c33342e3132352e32332e343910a388031a05302e302e3922cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030633665313863386662663463643465623130343534326362323061616161323532643935663035326631303836643538316334346164373337626636363736633063336637383961663532363562386166623739623530393132646138346530616663663735343763623166666630386430353237303137656236646335636466383362353139363964343433333661363338376364373062393462663463396261663230323938343065356634663836336437303831663066613831653038363361646564623862383961356461633262623535326436653762396662613232326163323863353730373535333866633935373939323934326433343166613238373665366235303765396365376564353732653863666461356465666133363466646638643865323338323961346363626234373866313165656533623332616238356530373239353163356439343230313135666261333237303733343934663433623566366265626638343135326533353665376231366261373634623761336235326362323733343634303136336265313436356536643166613463366536663636363834613633356339613535366161373130306462653634356466386634633432336165343561303863623335623462633138373838366532323939623563303231306135666261336239343439663438336566393465643932326531653938633131336265313636623839633733353832323433313335643434323330366162653561373162373730313866663333356436646437393534323639376231363832333862393637323766643133333962356638326133623661353937643937363033376165323530363435366338623334653966626633626333323431303434316334626663386562613538353937323534656665626661613738383039613563383835343732396135626137386563653139666338343037646438383934613662633738343430333764383738636163653663313532633265383965386136346230363861366332333765303939393362653830363839303230333031303030312806320218093a603634653039383631356266343035663765643561343031333434366238396334383863666364366262323561346136373664633737656561313164333364373032363832663061363961383033306538633537373764306534323230333739390acf070a0b35302e31382e31372e393310a388031a05302e302e3922cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030633665313863386662663463643465623130343534326362323061616161323532643935663035326631303836643538316334346164373337626636363736633063336637383961663532363562386166623739623530393132646138346530616663663735343763623166666630386430353237303137656236646335636466383362353139363964343433333661363338376364373062393462663463396261663230323938343065356634663836336437303831663066613831653038363361646564623862383961356461633262623535326436653762396662613232326163323863353730373535333866633935373939323934326433343166613238373665366235303765396365376564353732653863666461356465666133363466646638643865323338323961346363626234373866313165656533623332616238356530373239353163356439343230313135666261333237303733343934663433623566366265626638343135326533353665376231366261373634623761336235326362323733343634303136336265313436356536643166613463366536663636363834613633356339613535366161373130306462653634356466386634633432336165343561303863623335623462633138373838366532323939623563303231306135666261336239343439663438336566393465643932326531653938633131336265313636623839633733353832323433313335643434323330366162653561373162373730313866663333356436646437393534323639376231363832333862393637323766643133333962356638326133623661353937643937363033376165323530363435366338623334653966626633626333323431303434316334626663386562613538353937323534656665626661613738383039613563383835343732396135626137386563653139666338343037646438383934613662633738343430333764383738636163653663313532633265383965386136346230363861366332333765303939393362653830363839303230333031303030312806320218093a603634653039383631356266343035663765643561343031333434366238396334383863666364366262323561346136373664633737656561313164333364373032363832663061363961383033306538633537373764306534323230333739390ad1070a0d32302e3135302e3133362e383910a388031a05302e302e3922cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030633665313863386662663463643465623130343534326362323061616161323532643935663035326631303836643538316334346164373337626636363736633063336637383961663532363562386166623739623530393132646138346530616663663735343763623166666630386430353237303137656236646335636466383362353139363964343433333661363338376364373062393462663463396261663230323938343065356634663836336437303831663066613831653038363361646564623862383961356461633262623535326436653762396662613232326163323863353730373535333866633935373939323934326433343166613238373665366235303765396365376564353732653863666461356465666133363466646638643865323338323961346363626234373866313165656533623332616238356530373239353163356439343230313135666261333237303733343934663433623566366265626638343135326533353665376231366261373634623761336235326362323733343634303136336265313436356536643166613463366536663636363834613633356339613535366161373130306462653634356466386634633432336165343561303863623335623462633138373838366532323939623563303231306135666261336239343439663438336566393465643932326531653938633131336265313636623839633733353832323433313335643434323330366162653561373162373730313866663333356436646437393534323639376231363832333862393637323766643133333962356638326133623661353937643937363033376165323530363435366338623334653966626633626333323431303434316334626663386562613538353937323534656665626661613738383039613563383835343732396135626137386563653139666338343037646438383934613662633738343430333764383738636163653663313532633265383965386136346230363861366332333765303939393362653830363839303230333031303030312806320218093a60363465303938363135626634303566376564356134303133343436623839633438386366636436626232356134613637366463373765656131316433336437303236383266306136396138303330653863353737376430653432323033373939"))),o$e=o$p._fromProtobuf(proto_1.NodeAddressBook.decode(r$G("0a7f0a0c33342e39342e3130362e363110a388031a05302e302e33320218033a606131373165336261383334373637343761656232653261633464306531313563616161623931383230336230646665316364656162343433343338666332383961626338626138613661666638336462356631623333343034366461383863380a80010a0d35302e31382e3133322e32313110a388031a05302e302e33320218033a606131373165336261383334373637343761656232653261633464306531313563616161623931383230336230646665316364656162343433343338666332383961626338626138613661666638336462356631623333343034366461383863380a81010a0e3133382e39312e3134322e32313910a388031a05302e302e33320218033a606131373165336261383334373637343761656232653261633464306531313563616161623931383230336230646665316364656162343433343338666332383961626338626138613661666638336462356631623333343034366461383863380a82010a0d33352e3233372e3131392e353510a388031a05302e302e342801320218043a603734303964656332653439346236323765653439633639623239346265316365616562636133666463616633363738396538386663376435623065656635353631663532623832643335313931613339633266626564363032373236373136360a7f0a0a332e3231322e362e313310a388031a05302e302e342801320218043a603734303964656332653439346236323765653439633639623239346265316365616562636133666463616633363738396538386663376435623065656635353631663532623832643335313931613339633266626564363032373236373136360a82010a0d35322e3136382e37362e32343110a388031a05302e302e342801320218043a603734303964656332653439346236323765653439633639623239346265316365616562636133666463616633363738396538386663376435623065656635353631663532623832643335313931613339633266626564363032373236373136360a82010a0d33352e3234352e32372e31393310a388031a05302e302e352802320218053a603962313431363538346134613338306262383661366337643732303764386165646462633362363365613330353939383235356263653833353162613462356463613532633932383261353461366265643630646536336365303361616132340a80010a0b35322e32302e31382e383610a388031a05302e302e352802320218053a603962313431363538346134613338306262383661366337643732303764386165646462633362363365613330353939383235356263653833353162613462356463613532633932383261353461366265643630646536336365303361616132340a81010a0c34302e37392e38332e31323410a388031a05302e302e352802320218053a603962313431363538346134613338306262383661366337643732303764386165646462633362363365613330353939383235356263653833353162613462356463613532633932383261353461366265643630646536336365303361616132340a82010a0d33342e38332e3131322e31313610a388031a05302e302e362803320218063a603634383636383562346536653063623936333437326330316665393939333166643965346334343838376261383334323361653766656564323264363438343834636638613362633563636361366133373338376266393664333836373238300a81010a0c35342e37302e3139322e333310a388031a05302e302e362803320218063a603634383636383562346536653063623936333437326330316665393939333166643965346334343838376261383334323361653766656564323264363438343834636638613362633563636361366133373338376266393664333836373238300a81010a0c35322e3138332e34352e363510a388031a05302e302e362803320218063a603634383636383562346536653063623936333437326330316665393939333166643965346334343838376261383334323361653766656564323264363438343834636638613362633563636361366133373338376266393664333836373238300a80010a0b33342e39342e3136302e3410a388031a05302e302e372804320218073a603339653930393931356138353238303330313534613663373730393530633762343737376261343031333537633065363138373635343231356363323061616363646438653566663239653963346439356366343130316661363862653435630a83010a0e35342e3137362e3139392e31303910a388031a05302e302e372804320218073a603339653930393931356138353238303330313534613663373730393530633762343737376261343031333537633065363138373635343231356363323061616363646438653566663239653963346439356366343130316661363862653435630a82010a0d31332e36342e3138312e31333610a388031a05302e302e372804320218073a603339653930393931356138353238303330313534613663373730393530633762343737376261343031333537633065363138373635343231356363323061616363646438653566663239653963346439356366343130316661363862653435630a83010a0e33342e3130362e3130322e32313810a388031a05302e302e382805320218083a606134343837346137616131623337373431613037316164616165373866623135326236393664316335386438646566626531643832333034353332613063303139656539366363313964373536383635373864333961316536633331613165650a82010a0d33352e3135352e34392e31343710a388031a05302e302e382805320218083a606134343837346137616131623337373431613037316164616165373866623135326236393664316335386438646566626531643832333034353332613063303139656539366363313964373536383635373864333961316536633331613165650a81010a0c31332e37382e3233382e333210a388031a05302e302e382805320218083a606134343837346137616131623337373431613037316164616165373866623135326236393664316335386438646566626531643832333034353332613063303139656539366363313964373536383635373864333961316536633331613165650a83010a0e33342e3133332e3139372e32333010a388031a05302e302e392806320218093a603639383332613733613336303265386431666265356164353864316332363337613162363732643731656538376166313064623634386562393161666232323832353362316634376535376433643461343466663534376233333934616132320a82010a0d35322e31342e3235322e32303710a388031a05302e302e392806320218093a603639383332613733613336303265386431666265356164353864316332363337613162363732643731656538376166313064623634386562393161666232323832353362316634376535376433643461343466663534376233333934616132320a82010a0d35322e3136352e31372e32333110a388031a05302e302e392806320218093a60363938333261373361333630326538643166626535616435386431633236333761316236373264373165653837616631306462363438656239316166623232383235336231663437653537643364346134346666353437623333393461613232"))),b$6=o$p._fromProtobuf(proto_1.NodeAddressBook.decode(r$G("0ab70722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030633435363165336332373863643635306538306334313363613434343233633163336331336366313437356636663639373664353937616534333262343961623432303836623739623834313332363035346238623364636635376438666364373962666330353831383363613234636434633163626335373465643131313765326635623762336336336365376230366439623465666366373337353633376234316665366635336338313162396465363134336633613532393537636466393536373735313230623333373033666635373632313430376162393537356263326433356330643434663039383366633165663633613466663532303966303730633932616631303632393536303163393662636564303634656331393031393730313963363831316334633864643830636234663461633731663961643736653761633839343536666266346630313166393061626432643930353336653832333436353166366265663932376533643564386237626634353930353039383362656361336162656632613964393761663334353737326137373430653936393932373562303138656130646632383661646436636539323365663930386662653736326137356632313131363836326462343464336463613164343462346432653864633130363663353030366262356137643935346164323535643462363033323733343735653531316165623438356430363961303637633061623563323435333863393333633036623561366165666139343030356332393135323133653463636461653663393432663632373266396464353238326436623839306631663230656664323339396364363734393234666135373034366163366461333265373339353161373331313365393166633262376666323965343835316238336666333966383362613965633666303863656664626236636262626666616266646661613931643933306637323030646134383133376333393463626431336537303165636463323631366664323162616436383161613466303031303230333031303030312804320218073a603665396138616263646364653665313134396133656265313766643538643839303538333961383664623732623036613365613230616131373666383638623235343838353261653432336437613963366237636666396537313436323961320ab70722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030613163343037373135343330336363373263346662373639326333663934323531626465633132333961316637613839373261626539316133353332336662656361363235613766666165363430366338353564633261663231313039303062306466306536653664623736333634646661316666653835656461353637393336653239383562383536333461333261613532613635393964643663333062653166376136633562386635656563616632363231643861343539363832666364326462616164313536316431316633336663636237663535303061633536386431363564626561616365333238366432383934663634313239643738316436633732666437643539396339653164336166346161343333633233623931306661653463343834313634316636313532366164373837656265613533393837343136376539643361373363633066623135363432396431356563373633613664306630363131356137396239616637383364373762393864383330393661613437343366393734303864396531346263663464646666653435393137363838343762343063623864613763613337353235366432623933356430393566653235326661653831666636653337663834643761393064376535373061346638656633633764373636656564613437326630393230313939303135613839303832353961383733633534353466636262646361643265353238646538353435356234303833633764633461646335613938386530636464666463313539643564373132616264353434616137336563303239303839383134633938613434663236666330363434363539633138336533313834616132373266386431646330626661336530613536303438346362303535626134646262356363333339656338306264313164363432646333613730326538633730336162323139333038346439626436336630646665313261343333633235373665616637383163666164383637656637306264613631373638623262656631346635306336633362386230393666303230333031303030312805320218083a606464336233653763643361323537643832373665343635333533363162303138623730303931663438363635653832303031306538316563303539326236396264346265316662643765636435303964303730313364643034313238343266640ab70722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030623263636163363561643066633736343561383137626661626334383761643765343133313165376133313938623337666238343264383463333935623366363764366264383438663130633666303363323930653866376461613864303031613834343164633335326131393136306133313933653638623832656466313961653637363933613961333364346362383765373839613130373037313535313565613737326361613862383661353639623931633534353038333564396333353466306461636563393766653737303931623435623134373639386237663836303134323264636432323631653932386465346461633963343264636261666466393663303732333362613330323730373666333763393639653865643330623662356438663530333462653764393263353936663862653836316535316663633361323432626639643862653965326139653865306631353565626366663233656666613763643537633130353432383131643830373736633935383535323666646230656161333465653139353564353131313933393066653837336534633034646564643239313635383834623938623436333038373838616537666334643461613461386663396263323637346261333231343933623632343435356164343130633164653731626339356431643931666130663230313431386137393565333039656166323937623639396266323763396661323736336364353963656230323165313662383230306331303630663238313766643833636663373637313833343839343631653335393932393162333830643665393339626161346231393233326136613237326464653635316638303436666463333464623237366137373764366662326265633332353562326363323434623461663536366231303566333063363530366464616530656233646564646366393437626362396336306530303039383466336234613863366334656434626639306263313933326237663934646333616536623336303030386562393032303430663962303230333031303030312802320218053a603561383634313561303861306138323566336232656237353031303135353230326533313234336665343161303333333834653738633138633131653565386632303964343933623062326664343565303662333734663262363964663564370ab70722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030613365333762373663366364356636363232643639323434343464313263363737633339356632623539303266336262393862386138623530353561373037373036636130323863643735303630613264383730326432643862303439343762646366653061386331343161613238343462316530366536363139303031326538623633323661623066613331373937336263376362346432393439663231303861613034633462306339316261613537323866356235363232656337356162663537386131663762343165646532613637656264363963313865353831666466396336303230616330646539636132633331663063363436393030333331316662623563653764623439633738376531613764323761613432356565376238346461376536363933396639633830643065383266636535356530326466633862356337383431386132366161343336353036393837313962616663656366306264343930303061646463666134303537303862646265666262313937343964323264616230303765343464343565613233623130366638383334633135326532353036326434636632346666323533353663376562333732393130353339336662343962616239303461303266306630626234313763643931396433353238393031323865366262666634666163396639306465313138613937346632613664643031653033326137396231373866363066613166636262643032623537303466623436323935633135313930383136333733656464363633356338353639373866316239353033663166373362346230626538616261326564316665656164353939353362663832656664653933613334373161626435356364613362613861363733666262333739393734396662303036643030336630653633663636356333343631643261376232396463386232303462613539613635363638613436616532383738663030643166393439306466396532383066656266343331356561303465616135363861336139666434386336326336336236656364613639303230333031303030312803320218063a606434363430333938303337393230373965636364356134343331316361306463323262353065633839356235366535336431326232396637326463366462613363616665326535623831303466626461303338616635623434376430666231320ab70722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030393361323135636334613761373232636165396331336162643633366466393963636565633661663964623436623639666135313637313665663530636532343930613938316530396162303139636132636234363831316235623631396431626431643565653666343661343263373737636264656536343261313438346563646635646464333732393634326333386336643433613838353838373434373566353832343434333636346330346466656439623839303435666230383565323563336566636234383431373333656666376335323963313339653639333530633263643739623263386431393637396137313265346538636166643332363735343162383332623365313061303132353564656636396466316539643362386438656166303331316465363764356531326232366464303164626264396433653432643335643964653237313330326530663166363964383763626337616361396538383637653964343238643363616230363636656234393064356662616233306266663366373835643033663230373261343362623962356535343635366135393263623631656166643561356566323834633763616563363666376634373332356363306434633164323766363631643861373438636135303731633036656631333464666639366634303836363838333636643436386132343738303031376530623536616261376661623433623362376330623737393036666165353438326633323831316332393265366231343435346531346238393438303161383661303363633437373934646430643734353237613732653432346564336166613034383939656362396136336632613961653732626537666139383961646630643635613332633835316439383031666334313034386466333335363466633762333137303765633866623830313430666537623761316661313230626131636236363033323463656666623462636332643962623764653063663534633831396632646433626365616465633963323566356531396463396231303230333031303030312806320218093a603365303261363732306334343636353965383633303564353562666565383230623335653635306665636163633535333039373435356532633465303332636339646564313662316262343464336235393262626163623663326266663165360ab70722cc063330383230316132333030643036303932613836343838366637306430313031303130353030303338323031386630303330383230313861303238323031383130303930323539663465336439663066333934323536353438653963373330386231306237333430336363393039346439376164313531623737303631373062393737326365623634643636326563656639303161386437643135643331396135396338623731303731616363643839356237633933363130646336393736663637633465313732396261383337336162376535326133663363386632363534393164646536396436653039393934373065373434353938313133316264393663333665363836353230336662326562643564353065616461666237323633393664656331643931373438393862346539626530346337346433303466656164643963626433323334633362376633333036633939636230633333396663323539363962343164353861326237636663313833326532323664383163313936333939336532323535613038376431363938633033643432313062643634353830363434643039356361373661613137393465646434306331633837623566383261386533396636303365393731313662613034353738653765383033343634393564373835643465663763663737313462396562366635663965306239613934663462373338383436313962393237346434613935656631353735346138396439376566356331613838623664363933653061383065626435333766633963663063613931643163363264393135646537656438313862393532653634633230303239336565386532383461343136613732613365313266633764343233623135386639623439363630636263323436366662656430666564326532346531303266646539343265623463666439346265633436643364393066633038633339666563626130336530636132343634616536363462393739353135626132396531663730326333666537303262653739333739366438656462313761613438633039323930623032343534396630363131663561653233656437653136343432646637643164616432323836633262623039643535323264643365643639386332663032303330313030303128093202180c3a606339373462623938326338313931336237333236643561336639646363343836313261313566376161643032663230376230663130636432303137613666626666353830336537636139626662343730396162323862366230396435623133660ab70722cc063330383230316132333030643036303932613836343838366637306430313031303130353030303338323031386630303330383230313861303238323031383130303962646438653834666164616133353332666334636530316138613137643463336232333266353061393739306532363236383465646334383233653831356131626435623230656365613762663536653239663662623762383331666233626636656663643134373566306238656435666662306231333835623936643136366236323966303339366138666566356630366534626361323565653461313334306565323633613464396262303230643866343732333036663364383836313338646537613031396530353962643061666339303263636261316132313361653264616136306338613031333735356665306134386530333466356234303233613264616465616138386335343836383335336163376137613364663132623266623634313837373465396231346265366561623863633237623838303132616436313632646137346530656562313631333539303566343337333734646162383538366437353061323662626433616332346165643837386334643533653635313037326338373165393464376163633537356339363733383137333461353366656166346437626136626364643234316363363435386336303837643836333032616132353163303466366435366239633332643764393636323437353065643035353738356430373733663433646330393962323863393232383131343865366338316632393766663964313636653030306163303462333132343138363737356663656637356635656261306331303332626631333064663663643761343632313164306466336530353834643932656136373334396438343930353038656234656638386635346338633364343836646538373139663130666139366665623835636337393630373663613738313331386565326439656439303363613133333630343063353961643931613464326636393865393130386165306564623962316362393561643333623139376666623138626431626138623536636265653261616539353835656365323038613165313462343835363436333032303330313030303128083202180b3a603937303834333033333130373866353638326337663332343464383263336233653238316139313837393537386465656163646363326132656265353431616631383831313561643265383338363565356635643234376234613138633165650ab50722cc0633303832303161323330306430363039326138363438383666373064303130313031303530303033383230313866303033303832303138613032383230313831303039303938383635646566326632616233373663376630663733386331643837613237616330316166643030383632306333356362366562666362623063333330303331393361333838633334366433303233313732373031323139336262373666643330303462383634333132633638396566353231336362623930313130313530396465616239346632366137333265363337393239646134633463623332353137653361646262333831316435306163346337376331666365386236353136303632313566333437303766336537323635353435653538633839343630396532383337366264623737373566653330343339653065313539326664636230633365653163333035373733643037326136623839353765616663653161313162653936356564616666333834333336366362366134346563323561383930313036653632343735363766373662353530666461343832626165633633303764363938656338383834316664363666323366323130653437623861396463626136626134653166613731366462333363383065333038313934393664636235653536303966623665376336313533373962646465643432376539323331623932353463326261663934333630386138366436393861653961336338363339646638383764366636623561373133383564323433333864393131613231326266373166316532616363386231383662393665633865363963383662366430353832313737373661303963396336383935336564623539313635373862356132363362326634363965336230633037656164613731613434376565613766386663316262383037343235353536376237663062643165366166623033353837313863393862343239653234623232393835393666633736636636616633393663613934333464373932366563376433376434623932616635366434356665666638313936303935323234613931366331666665366236363765323535666333616338636363656639323064633034346232353030333133326238373830363734326630323033303130303031320218033a603333373339306438666561313434616663313265383132353461323864616336656138323839333833366163303732656666643835653061373734383538306566323830393636343863356137663864626234636538313437363831353133370ab70722cc063330383230316132333030643036303932613836343838366637306430313031303130353030303338323031386630303330383230313861303238323031383130306335376564623966663237366530323362323830323163623164383763646631393636623639386366343865346561616137633639323037376365656538636362323339613463393231353937653865383966376363303564336633313331353738393736633465333134343035643461346530336137323431306335633039636135323761643561383562393938363337653732613332653166626330643535343662323436356539653830366332646435303965623035306162356662323730363366643932383135623164643236383965323131316361656236663534396539346139663030663038323164346361366336613631313766356135333363393236336266303734613330643563626566353064316338633233383762636139373265646564613039383362356430613662353764636230303230303036383238623430653430373662343837306232346261643834303536656535326235663432326538383430303238633235303036333832643865396336363132323566346637366561373265333430363037653966633666336332303433333037366131636138636231356564303361633839363664303530376263646536383165346530323331656539663837643131316537623438616338663934643264383432623532646637336635373363633534313439363437393763363236393638666661653734313866336236313039623561306630396533323233663461346435653335303964643235303133386636626331376266366365636531373539343433306466313830613338653930616466326166666266616430633662386331623837663137386130363164636662666638623932633931363664383734633166663561663466626364626665386539643039393337306464663630626537343736333364333665653465623563643531663665336333333965313531653431626462356135636532633863393761306134336233636434636330383138383463383739663964326633373438343238633835373366313763393066336362643032303330313030303128073202180a3a603734306166366266373339653838336338386633333434633961306638623330316533396463393831633531363365306465326133666634326239396534323665643765353662363766343231383530333834356466363266343963396662300ab70722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030393133316161333638663933343532323966393762363235396363636166666561323365303063643565616430326533663639366331653731346565333933396461643836306533386266393561323937346639656234386539333433663861616334303565613935356430353332336531313762336231633934383133613361663432666538303832633364343362616631626434643833363765393364623030616436393665363237613130333661653533346630313165616435653536663337613666666534346236623965303939343031313932616435363061303334366234316138313030393566356632643766643332643665656236353562613735386336623532366331323933383661663731393763376135336165363033643632323833323235343936316631366430656661383037396137363835363138383862653733333439323231373935366262636166616562623631333563356662623234383464356234613566646630333336616330326532366331363532633162643865616633306461653164366433656230306637623466616238643634373866653864393565623931316466393636613064656134653532326462373662383936363537306563633561663039353136343234663061663566386565363665333836643536353037313339393731363961633337353733626635326664303538646539356162326666363865363831313161623233343035656139363462326262383864303263306631636165643731656364643465346534303835393438373666646238353030626335356337626130323036366530356162393864396637653034363664393730326562353765653337323266386663633835613735353035666633323632313730323838623738383732336164623937653464653536323063633930656164313338326663643735373138383966656662313165363737316263336636663366656231396337616335343238373864303361393032373035323663336565643234393465666635346531353363613966363839303230333031303030312801320218043a603765616236393661623935343336363538626331346666366234626534643932356364353162323230646632613164356336656531363061646166323961353165363934646533656531383463653232656164386437646239333231383266330ab70722cc0633303832303161323330306430363039326138363438383666373064303130313031303530303033383230313866303033303832303138613032383230313831303038326465373330363566333466666332393334306435393439643232323062316534333636656435636637633665626436313663663934313661353365613030313766366262313136626664336633646566636331356237613464646630653434643032666536393536383830353365373961373730653230316263663731393333393030333965653866303836643466613734366337653035363931383330316639623565383465333932363238323830383561373962333232626361306235643835666539373232316132366262646532353863363230663064636561303261623165646431366363343961336632616239323838653364643166333764633462366136663731333366663932653534316337316237306432613266363664353537323561623138626638366430303965633364323466356431326530623565363830326431313531333732643462373634656265636234616638326636343934383565633537623561303164633637393538663561303363636161623763626139333534613137333732633133313662613437633935336161663934393031623366386332346536613361666436373538653766336231343363653264643363623037316232613734633932316365653934396134623561366265383739663163373930613662386436336231393264376565323961393439316664643638396139386330613763336436303332306631623461633264363232396466643934653432663361363034386137366265316562393538633861313837336265386433333861656339666335396162376633373632363738393430326331666435393566313930383735373565306265383237666334633061346662336433393361643734613934396363393836626662363463616264646165353339333566366463353630373464623933643737656133623831366264643662653533343439373237323238393835396666333463653531383630616666623632316431303438376463333834336631663836643534303334613633653438613161306430323033303130303031280a3202180d3a606132656363316232616539386264323862633161303864386633373161306434663734356337363864306337373339363235363265333433623235643833343235656565613765663865613134323935333432623865623738643332656333660ab70722cc0633303832303161323330306430363039326138363438383666373064303130313031303530303033383230313866303033303832303138613032383230313831303039383735356134303862353332316532363330353230303064366437643461326333613535346435653133383461396362356562663437346165383832633633623438366264303864313434646466316139346365396137643632353139363330303661666461616334353838343666313736343031393566653235333961363536393330656661383534663231343865363865633161303863316334396432303063336633303435666537313437663036643533346334626432363231303063623164643339373339643736306438316130626432306638336632353564323530376434636362313130366235333631386336613934343039633838376361653236326434636565396338363233323134376365633134303465306335376262613733313731333065653339363433383838616633643539386564643832623863363165363561653831613465316135366263303664333937313433613938643431636138376433656634333365663061656162363830313139316233653338343830393638663636623665383836363261663435613965323132393934663638623238386562393637626562393834373863323433653231333663316131353931663036316635626330346232316666326261343862323966313834333130383838373362646665393966386135326539343038393731383536653830346465613630326133313137383663393835363532393633633361333737303332396234303966373466646663373436623232613566383431383931323037316334636538343663396234623332306665646636653962363465326362653338346639613832623661616164346232303930373433316466316133336636393230376135363536303062653831303730643038333239303039393538353961343439386435623539333135626365626566656538303765623061336139343266316364663333363764643434343466646232393838366566636464306265346162653961313838383033393533383735656461333364623732393839663736336230323033303130303031280b3202180e3a603139366237623132303739376364623361396430303362393833643537646131303331303662313733306531376636376532633762616161646234333738396166313639366461313031316232353362636263383630333333383566303332380ab70722cc0633303832303161323330306430363039326138363438383666373064303130313031303530303033383230313866303033303832303138613032383230313831303061396462376638626161313236383938666162373839313135613362356438393734346631393765323830343161653039386633653838366336393837313732316531316262306164313166336365393132346161393631643661306463383435663439373635633366616231393935383430323637366635363434363262663238316462613535383837383066303365393035373938653138343236396161613630663761313437323333316532666231646561646438373763383463626362363431636139653563386164366534356263313539636230373966636230643434396364636438643932333963316130343765376234343864613063646361323636313061323566323936643936653734363962363736643461343434353136653761353965383532393361383038366638343063303532383534653032613863623230303264616433353832356265346438336235326661393165386337336666303439373436313438383632373837633131313866393234643331636261633162343466656666323264343336623339373965616466396234336134626661373265313562343735356663616232363065303661323739633362623733626337663136613036306434643532326664343930353830333838616135393564383034343733366535323266363432343931356637383033623735383365303935636466373863333235313936393764653831623839666235303035343735336231613137663961616662303634643834633939326639616231316363626338636231303831346463616635323634616134356632316264656661633832636361636161663335386533313337336565316261346537343032666438613730656130633238636135636337346463343235313063393639636432633435396231656333363838613031656133396139393237313063643232393763393861383462363334386135373738303466646332333464336665313930336532633231653137326461323862353961653665346337653865646438623731633439643730323033303130303031280c3202180f3a603538343661353366343437353239666439636462373830346364333136383865643665656265336236336461326635663231316666626337333731393763663366316366626664613631626537643135313066306539323339383131376637340ab70722cc0633303832303161323330306430363039326138363438383666373064303130313031303530303033383230313866303033303832303138613032383230313831303061386365616333363765623166316465356630643965663365616630646639623938343438666532303830383437363536326130363063353163323839373730623463616366653932636236353536393832336539363263326132633966656435336264333663613361313232646531633532356135383266323561346437643632386331613364356264623839333661656365373531306537353534656537303333303235633039326338323865656235373338626530326564393633646138316135393230353633346365393435343537376162383266343066313366316565353565306165373237653233633330323834623166343462393961636534646463356639616337616438386439666132323535393335623234646362613834303036343265313663663235333263306230643638393239303436303837313563343037366634366438346130653066656433366537366363646339363335356537613236313630393435633262353461653236636330306664303832333236333436656565656137646437356639313931316539396462636239396561346163366261303536633333323238643838316438353833316439636338373935393364613137343664643065653935646332623936666539336261666366663263643764393239353864373864663333663230356437313135656439666163346462366634636336306535366135343431646135623562353566613539393939303265393538613662366334346438313064646335363138313234316238376632326630353961363838306538303231373336643031383937646236353434396365383137613233373564303335353163623064653530376336303961306338303330656366346266646562323133633033646161373634613138323162373234333334663731663736386437616563623237373035326137303333373635663037323138303536633738663261383761663138333836643866363161356366636233663262613464643539393135663133643338363334643136393537353730323033303130303031280d320218103a603030306162636435396133306135333838633530306265363832663663613239343034363239356339323735383831633230643334626230643639306564613762333862366262643037613364643166646662366137303434626230396366660ab70722cc0633303832303161323330306430363039326138363438383666373064303130313031303530303033383230313866303033303832303138613032383230313831303061663062393134323537626637613436353563346135306430636164356530613165343538316564363632336630653837333066373936623866323963353831373862636363363933326331666333316633396566343462383264336334336233393837333733373366656362313239353232386130346664353061313466333634366438346665316634363763616562393864343633653239373565393935623864326531653339663362663661646463323561653335643635643032363038653033343535333739363665326162636534396238313462656164336331623735373137346165333063303062306334336539396238303439366237326433633133316631633665346663646130356632383131376566396532386334333033626534643863376530343264353862383363633132313934356132633635653739363263616139313835393338663337353764663763636139356366303262356533313934346133613631396130616333663165333462396230313364346332323463346631653730666439666433363938336566383661646535313833363263633833323263306637623631613961633735666238326537623836643638626330663039396130396131346361633561316438643338663961386137306363333766663563633362626432373432666664313436323535633137316536613137383038333237316463653066646536383165643439326362353962303739366432373031373538333864633539303831303765336136656133663961343036623364313133306363656333623437393165343962626332333136303362343661623264306639336434336265373561623961346437313065613934306532383561376231353362306361376364646565366439646365306164383335306334316439306332313562393538383531356166613061633333363561653037653831663362626233366264626561633462333162636231616134653832353635623937376639646164383564363236656566396161613965663864376533666230323033303130303031280e320218113a603933653238313031303462326231376230303935326235613431303264333365646230343363623136646533616433643364363832363066353562623065353837333765613539343463333338663763386362383863373833336663383630630ab70722cc0633303832303161323330306430363039326138363438383666373064303130313031303530303033383230313866303033303832303138613032383230313831303038633037626533303561643630623930626132646162333962306565373736306531613232663835373532323534306437306230336233663965343837356133613239616230383038386631343466353765623235326534366261353933383564306536643432373031313764613061626331623362383036393463396135303538623836643631646661303665373136373039633838653866656163376333613065316432356663306165626636613866373666636239396638343566653138313436316361623638353862393763336134303237666233373132623134653663303738396465313764343137363435373765353131343137656231363236393265623037616531653733353532333565396262343339303437623663303136313337383265376464366636303464616134363734363631643533393631663436633366616136623765373637363264333733623562353432623739656139363365666266333361633638313938626232623636316366663637363931366566333732616434633236633231366334626334373837633834656333326431383464373763373531383663303963663364396639313433336361393835333131396261623331666136616432366634353365353936643962646563613638613537363962633866656537613533356438306338633666336566623164666232383861623661393739383534623763653833313234656330643130326166663934633362373466396333373839353863323565623933336464353363316538303561313836353464366439313836393930663635373034323966393630663334653862346637666439393732646362666539323430653037346461326433353561356637656639633161663632656635393832613831373435373862396331356334396563353636626461636233306363666365663039636466653730386164343837343234653963316265363533663965653736363065376439343263316566613564613238366531616464616230366139613333663964653934363739356230323033303130303031280f320218123a603934383235313739643163333934303137306233356432363665346366613830643737386335653966356261653764653833666638636334373431663362653336616336336431653761653439373261656466366263316533636632303638390ab70722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030626531376339393634376365633635613434343037623533353835366233633362616566356235346635363561663538623834353662613863376365353335643561633732633631633434633736623363353763386538363438343136333762653130613833636665333963303932343736643064626534643663646364636437323061333062356266656235316130316131386635383263343566366338363939336663663764663138323933356465316438363930363034346463663335313836393335643962643765656137393532333532626562623465663961653066373636316537306134323337616661393839393636383763613438666366633562303064333830376630353462653066613863336266613432353033386265366566323935313634663232663733623765383863393465613962653861613466336132343563383962396431666435313932663761353062393538623265663831303462333666316266386664326366623238633134323138303063316334376534656639386166313530303730636336643639643137653865623932663138613661613161363532363661343935323338643130336638663639356235376563663337333635306130353230303837343537323162656138313536323739363763383037363336356466386334633761376434646438663263333835306331386662613731656236306536653864666264313936653035333766643730623334346563626363353330646663383364613666656466343964353161393034313935303262613964373063643335663163663363303639346532333534663930363466646266353335656232336332376330613433643062373863316638363763363164393836393564386465663762633261313062623636373463323266363661616230613931383133646466323763646238353263353965663739653162396531613037356661366565323761376533373734646266346232363436353432376536643561623931666537663066336137313738346563613138326235303230333031303030312810320218133a603038393039376465663031623037633764393734613537353532353161366161613061666236623332613534353334336432393138653732626164303433323163313131633234643432373538306633626131653236616139643735653632360ab70722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030613561643262373634336130346330353564326638636432353131623135313339666334353537353632313338386534396331313962326633393861636131313066363133393662306338363664653530363335323262623835343032373365313366366439346365316536303433386636616662303061616136343631326637313435653962636538626331613533623934313931336161373663396633613238333366616437636632383563376163326433376639396633633263646234396465346431353165363136373835363466323831663534313432346234316661376335316232613936303232383363376433326565303065623833386461313563333861666339366530363164393763656465323231363566663161613935396631633432373562326430393863343035383661353537396662623363623930303732373034313230613861363661353237306634666366643130383663393233363930613335653766643434356533336163303366313339633638363835353635373063646334616166323231303761366331613434323435366137633663373965653034303930653765356434663636626361363063613166343762366466623534336461633363626631396137373139613866353562366638336234613362386136366436303235366430613436353531666137303234626430353633316238613535383038373732353463326632663236386364633333643264626263666237333365396662653233336262396362353961623331613031343862323365386334323638306666313061663463373961346430383334366662373961393364393632393534386561663162623132343639386661656661346364643732343432633033613034623733333433326637343839303361333235633238336434353661623961653932316165376564333339316535643137383765666463323335343061376238356336393161653837306130376639306231316331336233326365343365616564313562333639363835636534393137376363393835303230333031303030312811320218143a603939666162633461646534653636326336653238323366346139366562323134343034383465356136643064333132623730633036386432326236323936333830376332333361343964626239383361376562623330653737303637373261340ab70722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030386434356332316330633935656636356130323964353263393537666430663835663230313233646130333465363136373164646565353437356630373338326136366336366362346463353035303464646664333735383130383364663864313735373733306564386436663336346466346333366132363531353931393535646132303161323430376661386162396232333133383131323235613064613233306662653338306530393061613536656661346632303265633962343832336636353031643936616336393865626632366161636633656532643166333261373231633934376531303736636633356233373364613164383761333661313532653030653731303131373932323832653832356666313731633538333362383835373062666336646138343439653666393566386231323635616235353531393430333135353364316435373666393363343263306361363061616261633463386464313632643831313466326232313531313538336337323533396665353663343939613932396465336134306130643435633137633538396332643739383863653236656166633932613364333762376561303034326434336530336166613632373162323632353561366363636661653533373138323164383165306230356332353062353966306139303734316130653065383861303965643536633562393738306430393566303930366630623831643531323633393832616165303131333663303732643834346131316436646134623261363163363434653161623137663136666634386565323366656465383435326631653432653264333061303739306332356434323036306531643434613637316132656232336431313466363863373165333366313736646235386136386234333030353462633164323938336132336133326561366666393566613763346438653338306562323936653938623739363865636638343534643831376337333765656135646439323165623836633136633762323933303461346137656362653561336131303230333031303030312812320218153a606537396165396337313933643164326263393433383436346338616135663632323461653835323936366134336239383235383833663766373432633533393562643330393935383761393638363662393233396431656666336165353037610ab70722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030623035616265326162303066646430366339353565383637313062306530366631613932363234613438616431636263386466633666323231323936326230633330666462643238346133376335613337363538623633633336656138313632353631613865346639343663626535373232633032383830316630663238316337306638643838633763303061326632653239663539376237393938363965643833353664663537633437626539393434613261616666363530663962346262613064626335336463383830666462623639656134353139303564323830323230326638653239633034613736643237616632656237633534383438356266336634363934633930633431383130383838383433373932383438383335663738313637303764336538643736663465363766353738306263663038383133633535656336333961396264363234313738663565623134376435303061663335316539656631623165333432343834636132363064623763636261653438366631336366323635623562316162363838303636303038303533623230633364656463653737316339613038613033323061613963653435316562396439383361376234396361613130393666386164633039383331386463333865306537636566306438653564353537613036373536383561316339653235366132626339646261333232623362623331373263663731343037376263333830663861306134333361386266613766626663353966366230393365633862663665393339376330396231386531383034306331623536363836343733376338666137653239373935663361343538386464613763326261623439353636356363346139623833366532656239306336326133666361663539316662356638313830346337363138306536323666613236343461376465333435313164366334363637643938393337653237373333663464316539313338383333353465353466643733353137323165373666376235366333343833333838663461366238376232386165626562303230333031303030312813320218163a603962343038383566313362366163316337353336393262613366313739303061333838333165363934613061663937343934623834333838323039636235656662646339386136646162623265316337313833393166633133356264616163330ab70722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030396463643863306135336539306333353539353734663636323034313137643362353033653530613336643330393766616338343239653663656364333762623534303731383038663265653938323033356638353161306339626532313736333833613232653338633161626131363866333266393035373063623332333363666536323539383736363661663637623531346361656632316662386466366430666364333363663236303662393264646561353533366236303638643836373832653339626435633338343435393931643431396237643165633038353939343132633039343964316332343062333563313464633535323734646261373166666165393336313235613566383139663534313332653234333964346163353539373939366563653835653133646666333336316639313331663536636561633562396635353262343963663666396139616336653564636532646233363934363266393361663830653562353662366538626566613136326130363162346137363839326264633834363437333036633630303835386664643237303332373663326337303434303139386566643766653335343563663261623538306337346366643634343561616637626437663734356363323532656162643236356561626565383632343137313034653639343861353537353666646332323264663061313031353234646531633363303863636630343330313165633766653936346564643834353161313330313437633037333633613335663131666465656638663261326237363137353762343335386666383962373561343864363762646336303930363933653062623836373965636262393366666462336633656439366265633933656634363536653337313661623837636534366361386531323539633866656464653866326631656130663365623263343865393635353164653132333330333435373235663435656436396338353735623531363833616661343732363231383236646232326262326431633466316533363436346139303230333031303030312814320218173a60346630613033333466393737363738313632663830643936376637323139313431333630633062376637663033316233376336396536323137333933336564616434366263626139373636376565373262666435613933346261313532326330"))),s$a={"https://node00.swirldslabs.com:443":new f$8(3),"https://node01-00-grpc.swirlds.com:443":new f$8(4),"https://node02.swirldslabs.com:443":new f$8(5),"https://node03.swirldslabs.com:443":new f$8(6),"https://node04.swirldslabs.com:443":new f$8(7),"https://node05.swirldslabs.com:443":new f$8(8),"https://node06.swirldslabs.com:443":new f$8(9),"https://node07.swirldslabs.com:443":new f$8(10),"https://node09.swirldslabs.com:443":new f$8(12),"https://node10.swirldslabs.com:443":new f$8(13),"https://node11.swirldslabs.com:443":new f$8(14),"https://node12.swirldslabs.com:443":new f$8(15),"https://node14.swirldslabs.com:443":new f$8(17),"https://node15.swirldslabs.com:443":new f$8(18),"https://node16.swirldslabs.com:443":new f$8(19),"https://node17.swirldslabs.com:443":new f$8(20),"https://node18.swirldslabs.com:443":new f$8(21),"https://node19.swirldslabs.com:443":new f$8(22),"https://node20.swirldslabs.com:443":new f$8(23),"https://node21.swirldslabs.com:443":new f$8(24),"https://node22.swirldslabs.com:443":new f$8(25),"https://node24.swirldslabs.com:443":new f$8(27),"https://node25.swirldslabs.com:443":new f$8(28),"https://node26.swirldslabs.com:443":new f$8(29),"https://node27.swirldslabs.com:443":new f$8(30),"https://node28.swirldslabs.com:443":new f$8(31),"https://node29.swirldslabs.com:443":new f$8(32),"https://node30.swirldslabs.com:443":new f$8(33),"https://node31.swirldslabs.com:443":new f$8(34)},t$d={"https://testnet-node00-00-grpc.hedera.com:443":new f$8(3),"https://testnet-node01-00-grpc.hedera.com:443":new f$8(4),"https://testnet-node02-00-grpc.hedera.com:443":new f$8(5),"https://testnet-node03-00-grpc.hedera.com:443":new f$8(6),"https://testnet-node04-00-grpc.hedera.com:443":new f$8(7),"https://testnet-node05-00-grpc.hedera.com:443":new f$8(8),"https://testnet-node06-00-grpc.hedera.com:443":new f$8(9)},n$g={"https://previewnet-node00-00-grpc.hedera.com:443":new f$8(3),"https://previewnet-node01-00-grpc.hedera.com:443":new f$8(4),"https://previewnet-node02-00-grpc.hedera.com:443":new f$8(5),"https://previewnet-node03-00-grpc.hedera.com:443":new f$8(6),"https://previewnet-node04-00-grpc.hedera.com:443":new f$8(7),"https://previewnet-node05-00-grpc.hedera.com:443":new f$8(8),"https://previewnet-node06-00-grpc.hedera.com:443":new f$8(9)};new f$8(3),new f$8(3);const o$d={...s$a,...t$d,...n$g},e$a={Mainnet:"mainnet",Testnet:"testnet",Previewnet:"previewnet"},t$c=/^(\S+):(\d+)$/;let r$g=class e{constructor(e={}){if(null!=e.address){const t=t$c.exec(e.address);if(null==t)throw new Error(`failed to parse address: ${e.address}`);this._address=t[1],this._port=null!=t[2]?parseInt(t[2]):null}else{if(null==e.host||null==e.port)throw new Error(`failed to create a managed node address: ${JSON.stringify(e)}`);this._address=e.host,this._port=e.port}Object.freeze(this)}static fromString(t){return new e({address:t})}toInsecure(){let t=50212===this.port?50211:this.port;return new e({host:this.address,port:t})}toSecure(){let t=50211===this.port?50212:this.port;return new e({host:this.address,port:t})}get address(){return this._address}get port(){return this._port}isTransportSecurity(){return 50212==this._port||443==this._port}toString(){return null==this.port?this.address:`${this.address}:${this.port}`}},t$b=class{constructor(e={}){if(null!=e.newNode)this._address="string"==typeof e.newNode.address?r$g.fromString(e.newNode.address):e.newNode.address,this._cert=void 0,this._channel=null,this._channelInitFunction=e.newNode.channelInitFunction,this._lastUsed=Date.now(),this._readmitTime=Date.now(),this._useCount=0,this._badGrpcStatusCount=0,this._minBackoff=8e3,this._maxBackoff=36e5,this._currentBackoff=this._minBackoff;else{if(null==e.cloneNode)throw new Error(`failed to create ManagedNode: ${JSON.stringify(e)}`);this._address=e.cloneNode.address,this._cert=e.cloneNode.node._cert,this._channel=e.cloneNode.node._channel,this._channelInitFunction=e.cloneNode.node._channelInitFunction,this._currentBackoff=e.cloneNode.node._currentBackoff,this._lastUsed=e.cloneNode.node._lastUsed,this._readmitTime=e.cloneNode.node._readmitTime,this._useCount=e.cloneNode.node._useCount,this._badGrpcStatusCount=e.cloneNode.node._badGrpcStatusCount,this._minBackoff=e.cloneNode.node._minBackoff,this._maxBackoff=e.cloneNode.node._minBackoff}}getKey(){throw new Error("not implemented")}setCert(e){return this}get address(){return this._address}get attempts(){return this._badGrpcStatusCount}get minBackoff(){return this._minBackoff}setMinBackoff(e){return this._currentBackoff<=e&&(this._currentBackoff=e),this._minBackoff=e,this}get maxBackoff(){return this._maxBackoff}setMaxBackoff(e){return this._currentBackoff<=e&&(this._currentBackoff=e),this._maxBackoff=e,this}getChannel(){return this._useCount++,this.__lastUsed=Date.now(),null!=this._channel||(this._channel=this._channelInitFunction(this.address.toString(),this._cert)),this._channel}isHealthy(){return this._readmitTime<=Date.now()}increaseBackoff(){this._currentBackoff=Math.min(2*this._currentBackoff,this._maxBackoff),this._readmitTime=Date.now()+this._currentBackoff}decreaseBackoff(){this._currentBackoff=Math.max(this._currentBackoff/2,this._minBackoff)}getRemainingTime(){return this._readmitTime-this._lastUsed}backoff(){return new Promise((e=>setTimeout(e,this.getRemainingTime())))}compare(e){let t=this.getRemainingTime()-e.getRemainingTime();return 0!=t?t:(t=this._currentBackoff-e._currentBackoff,0!=t?t:(t=this._badGrpcStatusCount-e._badGrpcStatusCount,0!=t?t:(t=this._useCount-e._useCount,0!=t?t:this._lastUsed-e._lastUsed)))}close(){null!=this._channel&&this._channel.close(),this._channel=null}},d$7=class e extends t$b{constructor(e={}){if(super(e),null!=e.newNode)this._accountId=e.newNode.accountId,this._nodeAddress=null;else{if(null==e.cloneNode)throw new Error(`failed to create node: ${JSON.stringify(e)}`);this._accountId=e.cloneNode.node._accountId,this._nodeAddress=e.cloneNode.node._nodeAddress}}getKey(){return this._accountId.toString()}toInsecure(){return new e({cloneNode:{node:this,address:this._address.toInsecure()}})}toSecure(){return new e({cloneNode:{node:this,address:this._address.toSecure()}})}get accountId(){return this._accountId}get nodeAddress(){return this._nodeAddress}setNodeAddress(e){return this._nodeAddress=e,this}},o$c=class{constructor(e){this._network=new Map,this._nodes=[],this._healthyNodes=[],this._createNetworkChannel=e,this._ledgerId=null,this._minBackoff=8e3,this._maxBackoff=36e5,this._maxNodeAttempts=-1,this._nodeMinReadmitPeriod=this._minBackoff,this._nodeMaxReadmitPeriod=this._maxBackoff,this._earliestReadmitTime=Date.now()+this._nodeMinReadmitPeriod}setNetworkName(e){return console.warn("Deprecated: Use `setLedgerId` instead"),this.setLedgerId(e)}get networkName(){return console.warn("Deprecated: Use `ledgerId` instead"),null!=this.ledgerId?this.ledgerId.toString():null}setLedgerId(e){return this._ledgerId="string"==typeof e?r$x.fromString(e):e,this}get ledgerId(){return null!=this._ledgerId?this._ledgerId:null}_createNodeFromNetworkEntry(e){throw new Error("not implemented")}_getNodesToRemove(e){throw new Error("not implemented")}_removeDeadNodes(){if(this._maxNodeAttempts>0)for(let e=this._nodes.length-1;e>=0;e--)this._nodes[e]._badGrpcStatusCounte&&(t=Math.min(this._nodes[n]._readmitTime,t)),this._nodes[n]==this._healthyNodes[o])continue e;r=!1,this._nodes[n]._readmitTime<=e&&this._healthyNodes.push(this._nodes[n])}this._earliestReadmitTime=Math.min(Math.max(t,this._nodeMinReadmitPeriod),this._nodeMaxReadmitPeriod)}}_getNumberOfMostHealthyNodes(e){this._removeDeadNodes(),this._readmitNodes();const t=[];let r=this._healthyNodes.slice();e=Math.min(e,r.length);for(let n=0;nt.getKey()!==e.getKey()))}return t}_closeNode(e){const t=this._nodes[e];t.close(),this._removeNodeFromNetwork(t),this._nodes.splice(e,1)}_removeNodeFromNetwork(e){const t=this._network.get(e.getKey());for(let r=0;r[e,"string"==typeof t?f$8.fromString(t):t]))))}setNetworkFromAddressBook(e){const t={},r=this.isTransportSecurity()?50212:50211;for(const n of e.nodeAddresses)for(const e of n.addresses)e.port===r&&null!=n.accountId&&(t[e.toString()]=n.accountId);return this.setNetwork(t),this}get network(){var e={};for(const t of this._nodes)e[t.address.toString()]=t.accountId;return e}setNetworkName(e){switch(super.setLedgerId(e),e){case"mainnet":this._addressBook=b$6;break;case"testnet":this._addressBook=o$e;break;case"previewnet":this._addressBook=d$8}if(null!=this._addressBook)for(const t of this._nodes)for(const e of this._addressBook.nodeAddresses)null!=e.accountId&&e.accountId.toString()===t.accountId.toString()&&t.setNodeAddress(e);return this}get networkName(){return null!=this._ledgerId?this._ledgerId.toString():null}_createNodeFromNetworkEntry(e){const t="string"==typeof e[1]?f$8.fromString(e[1]):e[1];return new d$7({newNode:{address:e[0],accountId:t,channelInitFunction:this._createNetworkChannel}}).setMinBackoff(this._minBackoff)}_getNodesToRemove(e){const t=[];for(let r=this._nodes.length-1;r>=0;r--){const n=this._nodes[r],o=e.get(n.address.toString());null!=o&&o.toString()===n.accountId.toString()||t.push(r)}return t}_checkNetworkContainsEntry(e){for(const t of this._nodes)if(t.address.toString()===e[0])return!0;return!1}get maxNodesPerTransaction(){return this._maxNodesPerTransaction}setMaxNodesPerTransaction(e){return this._maxNodesPerTransaction=e,this}get maxNodeAttempts(){return this._maxNodeAttempts}setMaxNodeAttempts(e){return this._maxNodeAttempts=e,this}isTransportSecurity(){return this._transportSecurity}setTransportSecurity(e){if(this._transportSecurity==e)return this;this._network.clear();for(let t=0;t0?this._maxNodesPerTransaction:this._nodes.length<=9?this._nodes.length:Math.floor((this._nodes.length+3-1)/3)}getNodeAccountIdsForExecute(){return this._getNumberOfMostHealthyNodes(this.getNumberOfNodesForTransaction()).map((e=>e.accountId))}},t$a=class extends t$b{constructor(e={}){super(e)}getKey(){return this._address.toString()}},r$f=class extends o$c{constructor(e){super(e)}setNetwork(e){this._setNetwork(new Map(e.map((e=>[e,e]))))}get network(){var e=[];for(const t of this._nodes)e.push(t.address.toString());return e}_createNodeFromNetworkEntry(e){return new t$a({newNode:{address:e[1],channelInitFunction:this._createNetworkChannel}}).setMinBackoff(this._minBackoff)}_getNodesToRemove(e){const t=[],r=Object.values(e);for(let n=this._nodes.length-1;n>=0;n--){const e=this._nodes[n];r.includes(e.address.toString())||t.push(n)}return t}getNextMirrorNode(){if(null==this._createNetworkChannel)throw new Error("mirror network not supported on browser");return this._getNumberOfMostHealthyNodes(1)[0]}},m$4=class{constructor(e){this._mirrorNetwork=new r$f(this._createMirrorNetworkChannel()),this._network=new i$c(this._createNetworkChannel()),this._operator=null,this._defaultMaxTransactionFee=null,this._defaultMaxQueryPayment=new e$A(1),null!=e&&null!=e.operator&&this.setOperator(e.operator.accountId,e.operator.privateKey),this._maxAttempts=null,this._signOnDemand=!1,this._autoValidateChecksums=!1,this._minBackoff=250,this._maxBackoff=8e3,this._defaultRegenerateTransactionId=!0,this._requestTimeout=null,this._isUpdatingNetwork=!1,this._networkUpdatePeriod=864e5,this._isShutdown=!1,null!=e&&!1!==e.scheduleNetworkUpdate&&this._scheduleNetworkUpdate(),this._timer,this._logger=null}setNetworkName(e){return console.warn("Deprecated: Use `setLedgerId` instead"),this.setLedgerId(e)}get networkName(){return console.warn("Deprecated: Use `ledgerId` instead"),null!=this.ledgerId?this.ledgerId.toString():null}setLedgerId(e){return this._network.setLedgerId("string"==typeof e?r$x.fromString(e):e),this}get ledgerId(){return null!=this._network._ledgerId?this._network.ledgerId:null}setNetwork(e){throw new Error("not implemented")}setNetworkFromAddressBook(e){return this._network.setNetworkFromAddressBook(e),this}get network(){return this._network.network}setMirrorNetwork(e){throw new Error("not implemented")}get mirrorNetwork(){return this._mirrorNetwork.network}get signOnDemand(){return this._signOnDemand}setSignOnDemand(e){this._signOnDemand=e}isTransportSecurity(){return this._network.isTransportSecurity()}setTransportSecurity(e){return this._network.setTransportSecurity(e),this}setOperator(e,t){const r="string"==typeof t?y$a.fromStringDer(t):t;return this.setOperatorWith(e,r.publicKey,(e=>Promise.resolve(r.sign(e))))}getOperator(){return this._operator}setOperatorWith(e,t,r){const n=e instanceof f$8?e:f$8.fromString(e);return null!=this._network._ledgerId&&n.validateChecksum(this),this._operator={transactionSigner:r,accountId:n,publicKey:t instanceof i$m?t:i$m.fromString(t)},this}setAutoValidateChecksums(e){return this._autoValidateChecksums=e,this}isAutoValidateChecksumsEnabled(){return this._autoValidateChecksums}get operatorAccountId(){return null!=this._operator?this._operator.accountId:null}get operatorPublicKey(){return null!=this._operator?this._operator.publicKey:null}get defaultMaxTransactionFee(){return this._defaultMaxTransactionFee}get maxTransactionFee(){return this.defaultMaxTransactionFee}setDefaultMaxTransactionFee(e){if(e.toTinybars().toInt()<0)throw new Error("defaultMaxTransactionFee must be non-negative");return this._defaultMaxTransactionFee=e,this}setMaxTransactionFee(e){return this.setDefaultMaxTransactionFee(e)}get defaultRegenerateTransactionId(){return this._defaultRegenerateTransactionId}setDefaultRegenerateTransactionId(e){return this._defaultRegenerateTransactionId=e,this}get defaultMaxQueryPayment(){return this._defaultMaxQueryPayment}get maxQueryPayment(){return this.defaultMaxQueryPayment}setDefaultMaxQueryPayment(e){if(d$k(e.toTinybars())<0)throw new Error("defaultMaxQueryPayment must be non-negative");return this._defaultMaxQueryPayment=e,this}setMaxQueryPayment(e){return this.setDefaultMaxQueryPayment(e)}get maxAttempts(){return null!=this._maxAttempts?this._maxAttempts:10}setMaxAttempts(e){return this._maxAttempts=e,this}get maxNodeAttempts(){return this._network.maxNodeAttempts}setMaxNodeAttempts(e){return this._network.setMaxNodeAttempts(e),this}get nodeWaitTime(){return this._network.minBackoff}setNodeWaitTime(e){return this._network.setMinBackoff(e),this}get maxNodesPerTransaction(){return this._network.maxNodesPerTransaction}setMaxNodesPerTransaction(e){return this._network.setMaxNodesPerTransaction(e),this}setMinBackoff(e){if(null==e)throw new Error("minBackoff cannot be null.");if(e>this._maxBackoff)throw new Error("minBackoff cannot be larger than maxBackoff.");return this._minBackoff=e,this}get minBackoff(){return this._minBackoff}setMaxBackoff(e){if(null==e)throw new Error("maxBackoff cannot be null.");if(e{await this.updateNetwork(),this._isShutdown||this._scheduleNetworkUpdate()}),this._networkUpdatePeriod)}get isClientShutDown(){return this._isShutdown}},t$9=class e{constructor(e){this._code=e,Object.freeze(this)}static _fromValue(t){return new e(t)}toString(){return this._code.toString()}valueOf(){return this._code}};const o$b="2.64.5",{proto:r$e}=e$E;let n$f=class{constructor(){this._crypto=null,this._smartContract=null,this._file=null,this._consensus=null,this._freeze=null,this._network=null,this._token=null,this._schedule=null,this._util=null,this._addressBook=null}close(){throw new Error("not implemented")}get crypto(){return null!=this._crypto||(this._crypto=r$e.CryptoService.create(this._createUnaryClient("CryptoService"))),this._crypto}get smartContract(){return null!=this._smartContract||(this._smartContract=r$e.SmartContractService.create(this._createUnaryClient("SmartContractService"))),this._smartContract}get file(){return null!=this._file||(this._file=r$e.FileService.create(this._createUnaryClient("FileService"))),this._file}get consensus(){return null!=this._consensus||(this._consensus=r$e.ConsensusService.create(this._createUnaryClient("ConsensusService"))),this._consensus}get freeze(){return null!=this._freeze||(this._freeze=r$e.FreezeService.create(this._createUnaryClient("FreezeService"))),this._freeze}get network(){return null!=this._network||(this._network=r$e.NetworkService.create(this._createUnaryClient("NetworkService"))),this._network}get token(){return null!=this._token||(this._token=r$e.TokenService.create(this._createUnaryClient("TokenService"))),this._token}get schedule(){return null!=this._schedule||(this._schedule=r$e.ScheduleService.create(this._createUnaryClient("ScheduleService"))),this._schedule}get util(){return null!=this._util||(this._util=r$e.UtilService.create(this._createUnaryClient("UtilService"))),this._util}get addressBook(){return null!=this._addressBook||(this._addressBook=r$e.AddressBookService.create(this._createUnaryClient("AddressBookService"))),this._addressBook}_createUnaryClient(e){throw new Error("not implemented")}};function s$9(e){const t=new ArrayBuffer(e.byteLength+5);return new DataView(t,1,4).setUint32(0,e.length),new Uint8Array(t,5).set(e),t}function i$b(e,t=0,r=e.byteLength){const n=new DataView(e,t,r);let o=0,i=null,s=0;for(;o>7,r=n.getUint32(o+1),a=o+5;if(a+r>n.byteLength)throw new Error("(BUG) unexpected frame length past the boundary");const c=new Uint8Array(e,n.byteOffset+a,r);if(0===t){if(null!=i)throw new Error("(BUG) unexpectedly received more than one data frame");i=c}else{if(1!==t)throw new Error(`(BUG) unexpected frame type: ${t}`);{const e=e$w(c),[t,r]=e.split(":");if("grpc-status"!==t)throw new Error(`(BUG) unhandled trailer, ${e}`);s=parseInt(r)}}o+=r+5}if(0!==s)throw new Error(`(BUG) unhandled grpc-status: ${s}`);if(null==i)throw new Error("(BUG) unexpectedly received no response");return i}let i$a=class extends n$f{constructor(e){super(),this._address=e}close(){}_createUnaryClient(e){return async(t,r,n)=>{try{const o=await fetch(`${this._address}/proto.${e}/${t.name}`,{method:"POST",headers:{"content-type":"application/grpc-web+proto","x-user-agent":o$b,"x-grpc-web":"1"},body:s$9(r)});o.ok||n(new r$B(t$9._fromValue(o.status)),null);const i=o.headers.get("grpc-status"),s=o.headers.get("grpc-message");if(null!=i&&null!=s){const e=new r$C(e$y._fromValue(parseInt(i)),o$d[this._address].toString());e.message=s,n(e,null)}n(null,i$b(await o.arrayBuffer()))}catch(o){n(new r$C(e$y._fromValue(18),o$d[this._address].toString()),null)}}}};const w$7={MAINNET:s$a,TESTNET:t$d,PREVIEWNET:n$g};let i$9=class e extends m$4{constructor(e){if(super(e),null!=e)if("string"==typeof e.network)switch(e.network){case"mainnet":this.setNetwork(w$7.MAINNET),this.setLedgerId(r$x.MAINNET);break;case"testnet":this.setNetwork(w$7.TESTNET),this.setLedgerId(r$x.TESTNET);break;case"previewnet":this.setNetwork(w$7.PREVIEWNET),this.setLedgerId(r$x.PREVIEWNET);break;default:throw new Error(`unknown network: ${e.network}`)}else null!=e.network&&this.setNetwork(e.network)}static fromConfig(t){return new e("string"==typeof t?JSON.parse(t):t)}static forNetwork(t){return new e({network:t,scheduleNetworkUpdate:!1})}static forName(t){return new e({network:t,scheduleNetworkUpdate:!1})}static forMainnet(){return new e({network:"mainnet",scheduleNetworkUpdate:!1})}static forTestnet(){return new e({network:"testnet",scheduleNetworkUpdate:!1})}static forPreviewnet(){return new e({network:"previewnet",scheduleNetworkUpdate:!1})}setNetwork(e){if("string"==typeof e)switch(e){case"previewnet":this._network.setNetwork(w$7.PREVIEWNET);break;case"testnet":this._network.setNetwork(w$7.TESTNET);break;case"mainnet":this._network.setNetwork(w$7.MAINNET)}else this._network.setNetwork(e)}setMirrorNetwork(e){return"string"==typeof e?this._mirrorNetwork.setNetwork([]):this._mirrorNetwork.setNetwork(e),this}_createNetworkChannel(){return e=>new i$a(e)}_createMirrorNetworkChannel(){return()=>{throw new Error("mirror support is not supported in browsers")}}updateNetwork(){return Promise.reject(new Error("Update network is not supported in browsers"))}},u$6=class extends P$5{constructor(e={}){super(),this._hbarAllowances=null!=e.hbarAllowances?e.hbarAllowances:[],this._tokenAllowances=null!=e.tokenAllowances?e.tokenAllowances:[],this._nftAllowances=null!=e.nftAllowances?e.nftAllowances:[]}get hbarAllowances(){return this._hbarAllowances}addHbarAllowance(e,t){const r=t instanceof e$A?t:new e$A(t);return this._adjustHbarAllowance(null,e,y$c(r))}_adjustHbarAllowance(e,t,r){return this._requireNotFrozen(),this._hbarAllowances.push(new o$r({spenderAccountId:"string"==typeof t?f$8.fromString(t):t instanceof v$7?f$8.fromEvmAddress(t.shard,t.realm,t.toSolidityAddress()):t,ownerAccountId:"string"==typeof e?f$8.fromString(e):e instanceof v$7?f$8.fromEvmAddress(e.shard,e.realm,e.toSolidityAddress()):e,amount:r})),this}grantHbarAllowance(e,t,r){const n=r instanceof e$A?r:new e$A(r);return this._adjustHbarAllowance(e,t,y$c(n))}revokeHbarAllowance(e,t,r){const n=r instanceof e$A?r:new e$A(r);return this._adjustHbarAllowance(e,t,y$c(n).negated())}get tokenAllowances(){return this._tokenAllowances}addTokenAllowance(e,t,r){return this._adjustTokenAllowance(e,null,t,y$c(Long.fromValue(r)))}_adjustTokenAllowance(e,t,r,n){return this._requireNotFrozen(),this._tokenAllowances.push(new e$s({tokenId:"string"==typeof e?u$i.fromString(e):e,spenderAccountId:"string"==typeof r?f$8.fromString(r):r instanceof v$7?f$8.fromEvmAddress(r.shard,r.realm,r.toSolidityAddress()):r,ownerAccountId:"string"==typeof t?f$8.fromString(t):t instanceof v$7?f$8.fromEvmAddress(t.shard,t.realm,t.toSolidityAddress()):t,amount:"number"==typeof n?Long.fromNumber(n):n})),this}grantTokenAllowance(e,t,r,n){return this._adjustTokenAllowance(e,t,r,y$c(Long.fromValue(n)))}revokeTokenAllowance(e,t,r,n){return this._adjustTokenAllowance(e,t,r,y$c(Long.fromValue(n)))}addTokenNftAllowance(e,t){const r="string"==typeof e?e$v.fromString(e):e;return this._adjustTokenNftAllowance(r,null,t)}_adjustTokenNftAllowance(e,t,r){this._requireNotFrozen();const n="string"==typeof r?f$8.fromString(r):r instanceof v$7?f$8.fromEvmAddress(r.shard,r.realm,r.toSolidityAddress()):r,o="string"==typeof t?f$8.fromString(t):t instanceof v$7?f$8.fromEvmAddress(t.shard,t.realm,t.toSolidityAddress()):t;let i=!1;for(const s of this._nftAllowances)if(0===s.tokenId.compare(e.tokenId)&&null!=s.spenderAccountId&&0===s.spenderAccountId.compare(n)){null!=s.serialNumbers&&s.serialNumbers.push(e.serial),i=!0;break}return i||this._nftAllowances.push(new o$q({tokenId:e.tokenId,spenderAccountId:n,serialNumbers:[e.serial],ownerAccountId:o,allSerials:!1,delegatingSpender:null})),this}grantTokenNftAllowance(e,t,r){const n="string"==typeof e?e$v.fromString(e):e;return y$c(n.serial),this._adjustTokenNftAllowance(n,t,r)}revokeTokenNftAllowance(e,t,r){const n="string"==typeof e?e$v.fromString(e):e;return y$c(n.serial),this._adjustTokenNftAllowance(new e$v(n.tokenId,n.serial.negate()),t,r)}addAllTokenNftAllowance(e,t){return this._adjustTokenNftAllowanceAllSerials(e,null,t,!0)}grantTokenNftAllowanceAllSerials(e,t,r){return this._adjustTokenNftAllowanceAllSerials(e,t,r,!0)}revokeTokenNftAllowanceAllSerials(e,t,r){return this._adjustTokenNftAllowanceAllSerials(e,t,r,!1)}_adjustTokenNftAllowanceAllSerials(e,t,r,n){return this._requireNotFrozen(),this._nftAllowances.push(new o$q({tokenId:"string"==typeof e?u$i.fromString(e):e,ownerAccountId:null!=t?"string"==typeof t?f$8.fromString(t):t instanceof v$7?f$8.fromEvmAddress(t.shard,t.realm,t.toSolidityAddress()):t:null,spenderAccountId:"string"==typeof r?f$8.fromString(r):r instanceof v$7?f$8.fromEvmAddress(r.shard,r.realm,r.toSolidityAddress()):r,serialNumbers:null,allSerials:n,delegatingSpender:null})),this}_validateChecksums(e){this._hbarAllowances.map((t=>t._validateChecksums(e))),this._tokenAllowances.map((t=>t._validateChecksums(e))),this._nftAllowances.map((t=>t._validateChecksums(e)))}_execute(e,t){return Promise.reject(new Error("This feature has been deprecated for this class."))}_getTransactionDataCase(){throw new Error("This feature has been deprecated for this class.")}_makeTransactionData(){throw new Error("This feature has been deprecated.")}_getLogId(){return`AccountAllowanceAdjustTransaction:${this._transactionIds.current.validStart.toString()}`}},n$e=class{static async verifySignature(e,t,r,n){const o=await(new c$d).setAccountId(t).execute(e);return!(o.key instanceof s$q)&&o.key.verify(r,n)}static async verifyTransaction(e,t,r){const n=await(new c$d).setAccountId(t).execute(e);return!(n.key instanceof s$q)&&n.key.verifyTransaction(r)}static async verifySignatureWithSigner(e,t,r,n){const o=await(new c$d).setAccountId(t).executeWithSigner(e);return!(o.key instanceof s$q)&&o.key.verify(r,n)}static async verifyTransactionWithSigner(e,t,r){const n=await(new c$d).setAccountId(t).executeWithSigner(e);return!(n.key instanceof s$q)&&n.key.verifyTransaction(r)}},c$8=class{constructor(){this._bytecode=null,this._contractCreate=new d$b,this._signerPublicKeys=new Set,this._publicKeys=[],this._transactionSigners=[],this._maxChunks=null}get maxChunks(){return this._maxChunks}setMaxChunks(e){return this._maxChunks=e,this}get bytecode(){return this._bytecode}setBytecode(e){return this._bytecode=e instanceof Uint8Array?e:n$v(e),this}get adminKey(){return this._contractCreate.adminKey}setAdminKey(e){return this._contractCreate.setAdminKey(e),this}get gas(){return this._contractCreate.gas}setGas(e){return this._contractCreate.setGas(e),this}get initialBalance(){return this._contractCreate.initialBalance}setInitialBalance(e){return this._contractCreate.setInitialBalance(e),this}get proxyAccountId(){return this._contractCreate.proxyAccountId}setProxyAccountId(e){return this._contractCreate.setProxyAccountId(e),this}get autoRenewPeriod(){return this._contractCreate.autoRenewPeriod}setAutoRenewPeriod(e){return this._contractCreate.setAutoRenewPeriod(e),this}get constructorParameters(){return this._contractCreate.constructorParameters}setConstructorParameters(e){return this._contractCreate.setConstructorParameters(e),this}get contractMemo(){return this._contractCreate.contractMemo}setContractMemo(e){return this._contractCreate.setContractMemo(e),this}get maxAutomaticTokenAssociation(){return this._contractCreate.maxAutomaticTokenAssociations}setMaxAutomaticTokenAssociations(e){return this._contractCreate.setMaxAutomaticTokenAssociations(e),this}get stakedAccountId(){return this._contractCreate.stakedAccountId}setStakedAccountId(e){return this._contractCreate.setStakedAccountId(e),this}get stakedNodeId(){return this._contractCreate.stakedNodeId}setStakedNodeId(e){return this._contractCreate.setStakedNodeId(e),this}get declineStakingRewards(){return this._contractCreate.declineStakingRewards}setDeclineStakingReward(e){return this._contractCreate.setDeclineStakingReward(e),this}get autoRenewAccountId(){return this._contractCreate.autoRenewAccountId}setAutoRenewAccountId(e){return this._contractCreate.setAutoRenewAccountId(e),this}sign(e){return this.signWith(e.publicKey,(t=>Promise.resolve(e.sign(t))))}signWith(e,t){const r=n$C(e.toBytesRaw());return this._signerPublicKeys.has(r)||(this._publicKeys.push(e),this._transactionSigners.push(t)),this}async execute(e,t){if(null==this._bytecode)throw new Error("cannot create contract with no bytecode");const r=e.operatorPublicKey,n=(new l$e).setKeys(null!=r?[r]:[]).setContents(this._bytecode.subarray(0,Math.min(this._bytecode.length,2048))).freezeWith(e);await o$a(n,this._publicKeys,this._transactionSigners);let o=await n.execute(e,t);const i=(await o.getReceipt(e)).fileId;if(this._bytecode.length>2048){const r=(new c$c).setFileId(i).setContents(this._bytecode.subarray(2048)).freezeWith(e);await o$a(r,this._publicKeys,this._transactionSigners),await r.execute(e,t)}if(this._contractCreate.setBytecodeFileId(i).freezeWith(e),await o$a(this._contractCreate,this._publicKeys,this._transactionSigners),o=await this._contractCreate.execute(e,t),await o.getReceipt(e),null!=r){const r=(new r$v).setFileId(i).freezeWith(e);await o$a(r,this._publicKeys,this._transactionSigners),await(await r.execute(e,t)).getReceipt(e)}return o}async executeWithSigner(e){if(null==this._bytecode)throw new Error("cannot create contract with no bytecode");if(null==e.getAccountKey)throw new Error("`Signer.getAccountKey()` is not implemented, but is required for `ContractCreateFlow`");const t=await e.getAccountKey();let r;if(t instanceof i$m)r=t;else{const e=Object.values(t._key._key._keyData),n=new Uint8Array(e);r=i$m.fromBytes(n)}const n=await(new l$e).setKeys(null!=r?[r]:[]).setContents(this._bytecode.subarray(0,Math.min(this._bytecode.length,2048))).freezeWithSigner(e);await n.signWithSigner(e),await o$a(n,this._publicKeys,this._transactionSigners);let o=await n.executeWithSigner(e);const i=(await o.getReceiptWithSigner(e)).fileId;if(this._bytecode.length>2048){let t=(new c$c).setFileId(i).setContents(this._bytecode.subarray(2048));null!=this._maxChunks&&t.setMaxChunks(this._maxChunks),t=await t.freezeWithSigner(e),await t.signWithSigner(e),await o$a(t,this._publicKeys,this._transactionSigners),await t.executeWithSigner(e)}if(this._contractCreate=await this._contractCreate.setBytecodeFileId(i).freezeWithSigner(e),this._contractCreate=await this._contractCreate.signWithSigner(e),await o$a(this._contractCreate,this._publicKeys,this._transactionSigners),o=await this._contractCreate.executeWithSigner(e),await o.getReceiptWithSigner(e),null!=t){const t=await(new r$v).setFileId(i).freezeWithSigner(e);await t.signWithSigner(e),await o$a(t,this._publicKeys,this._transactionSigners),await(await t.executeWithSigner(e)).getReceiptWithSigner(e)}return o}};async function o$a(e,t,r){for(let n=0;n4096){let e=(new c$c).setFileId(o).setContents(n.substring(4096,n.length));null!=r&&e.setMaxChunks(r),await(await e.execute(t)).getReceipt(t)}return o}(this._ethereumData.callData,e,this._maxChunks);this._ethereumData.callData=new Uint8Array,t.setEthereumData(this._ethereumData.toBytes()).setCallDataFileId(r)}return t.execute(e)}};const{proto:r$c}=e$E;let o$9=class e{constructor(e){this.currentRate=e.currentRate,this.nextRate=e.nextRate,Object.freeze(this)}static _fromProtobuf(t){return new e({currentRate:t$q._fromProtobuf(t.currentRate),nextRate:t$q._fromProtobuf(t.nextRate)})}_toProtobuf(){return{currentRate:this.currentRate._toProtobuf(),nextRate:this.nextRate._toProtobuf()}}static fromBytes(t){return e._fromProtobuf(r$c.ExchangeRateSet.decode(t))}},n$d=class e{constructor(e={}){this.min=e.min,this.max=e.max,this.constant=e.constant,this.transactionBandwidthByte=e.transactionBandwidthByte,this.transactionVerification=e.transactionVerification,this.transactionRamByteHour=e.transactionRamByteHour,this.transactionStorageByteHour=e.transactionStorageByteHour,this.contractTransactionGas=e.contractTransactionGas,this.transferVolumeHbar=e.transferVolumeHbar,this.responseMemoryByte=e.responseMemoryByte,this.responseDiskByte=e.responseDiskByte}static fromBytes(t){return e._fromProtobuf(proto_1.FeeComponents.decode(t))}static _fromProtobuf(t){return new e({min:null!=t.min?t.min:void 0,max:null!=t.max?t.max:void 0,constant:null!=t.constant?t.constant:void 0,transactionBandwidthByte:null!=t.bpt?t.bpt:void 0,transactionVerification:null!=t.vpt?t.vpt:void 0,transactionRamByteHour:null!=t.rbh?t.rbh:void 0,transactionStorageByteHour:null!=t.sbh?t.sbh:void 0,contractTransactionGas:null!=t.gas?t.gas:void 0,transferVolumeHbar:null!=t.tv?t.tv:void 0,responseMemoryByte:null!=t.bpr?t.bpr:void 0,responseDiskByte:null!=t.sbpr?t.sbpr:void 0})}_toProtobuf(){return{min:null!=this.min?this.min:void 0,max:null!=this.max?this.max:void 0,constant:null!=this.constant?this.constant:void 0,bpt:null!=this.transactionBandwidthByte?this.transactionBandwidthByte:void 0,vpt:null!=this.transactionVerification?this.transactionVerification:void 0,rbh:null!=this.transactionRamByteHour?this.transactionRamByteHour:void 0,sbh:null!=this.transactionStorageByteHour?this.transactionStorageByteHour:void 0,gas:null!=this.contractTransactionGas?this.contractTransactionGas:void 0,tv:null!=this.transferVolumeHbar?this.transferVolumeHbar:void 0,bpr:null!=this.responseMemoryByte?this.responseMemoryByte:void 0,sbpr:null!=this.responseDiskByte?this.responseDiskByte:void 0}}toBytes(){return proto_1.FeeComponents.encode(this._toProtobuf()).finish()}},a$a=class e{constructor(e={}){this.nodedata=e.nodedata,this.networkdata=e.networkdata,this.servicedata=e.servicedata,this.feeDataType=e.feeDataType}static fromBytes(t){return e._fromProtobuf(proto_1.FeeData.decode(t))}static _fromProtobuf(t){return new e({nodedata:null!=t.nodedata?n$d._fromProtobuf(t.nodedata):void 0,networkdata:null!=t.networkdata?n$d._fromProtobuf(t.networkdata):void 0,servicedata:null!=t.servicedata?n$d._fromProtobuf(t.servicedata):void 0,feeDataType:null!=t.subType?e$i._fromCode(t.subType):void 0})}_toProtobuf(){return{nodedata:null!=this.nodedata?this.nodedata._toProtobuf():void 0,networkdata:null!=this.networkdata?this.networkdata._toProtobuf():void 0,servicedata:null!=this.servicedata?this.servicedata._toProtobuf():void 0,subType:null!=this.feeDataType?this.feeDataType.valueOf():void 0}}toBytes(){return proto_1.FeeData.encode(this._toProtobuf()).finish()}},a$9=class e{constructor(e={}){this.hederaFunctionality=e.hederaFunctionality,this.feeData=e.feeData,this.fees=e.fees}static fromBytes(t){return e._fromProtobuf(proto_1.TransactionFeeSchedule.decode(t))}static _fromProtobuf(t){return new e({hederaFunctionality:null!=t.hederaFunctionality?e$h._fromCode(t.hederaFunctionality):void 0,feeData:null!=t.feeData?a$a._fromProtobuf(t.feeData):void 0,fees:null!=t.fees?t.fees.map((e=>a$a._fromProtobuf(e))):void 0})}_toProtobuf(){return{hederaFunctionality:null!=this.hederaFunctionality?this.hederaFunctionality.valueOf():void 0,feeData:null!=this.feeData?this.feeData._toProtobuf():void 0,fees:null!=this.fees?this.fees.map((e=>e._toProtobuf())):void 0}}toBytes(){return proto_1.TransactionFeeSchedule.encode(this._toProtobuf()).finish()}},r$b=class e{constructor(e={}){this.transactionFeeSchedule=e.transactionFeeSchedule,this.expirationTime=e.expirationTime}static fromBytes(t){return e._fromProtobuf(proto_1.FeeSchedule.decode(t))}static _fromProtobuf(t){return new e({transactionFeeSchedule:null!=t.transactionFeeSchedule?t.transactionFeeSchedule.map((e=>a$9._fromProtobuf(e))):void 0,expirationTime:null!=t.expiryTime?s$r._fromProtobuf(t.expiryTime):void 0})}_toProtobuf(){return{transactionFeeSchedule:null!=this.transactionFeeSchedule?this.transactionFeeSchedule.map((e=>e._toProtobuf())):void 0,expiryTime:null!=this.expirationTime?this.expirationTime._toProtobuf():void 0}}toBytes(){return proto_1.FeeSchedule.encode(this._toProtobuf()).finish()}},r$a=class e{constructor(e={}){this.current=e.currentFeeSchedule,this.next=e.nextFeeSchedule}static fromBytes(t){return e._fromProtobuf(proto_1.CurrentAndNextFeeSchedule.decode(t))}static _fromProtobuf(t){return new e({currentFeeSchedule:null!=t.currentFeeSchedule?r$b._fromProtobuf(t.currentFeeSchedule):void 0,nextFeeSchedule:null!=t.nextFeeSchedule?r$b._fromProtobuf(t.nextFeeSchedule):void 0})}_toProtobuf(){return{currentFeeSchedule:null!=this.current?this.current._toProtobuf():void 0,nextFeeSchedule:null!=this.next?this.next._toProtobuf():void 0}}toBytes(){return proto_1.CurrentAndNextFeeSchedule.encode(this._toProtobuf()).finish()}},e$9=class{constructor(){this._contractId=null,this._contractEvmAddress=null,this._sender=null,this._senderEvmAddress=null,this._functionName=null,this._functionParameters=null,this._value=null,this._gasLimit=null,this._gasPrice=null,this._blockNumber=null}setContractId(e){return this._contractId=e,this}setSender(e){return this._sender=e,this}setSenderEvmAddress(e){return this._senderEvmAddress=e,this}setFunction(e,t){return this._functionParameters=null!=t?t._build(e):(new _$a)._build(e),this}setValue(e){return this._value=e,this}setGasLimit(e){return this._gasLimit=e,this}setGasPrice(e){return this._gasPrice=e,this}setBlockNumber(e){return this._blockNumber=e,this}get contractId(){return this._contractId}get contractEvmAddress(){var e;const t=null==(e=this._contractId)?void 0:e.toSolidityAddress();if(null==t)throw new Error("Contract ID is not set");return t}get sender(){return this._sender}get senderEvmAddress(){return this._senderEvmAddress}get callData(){return this._functionParameters}get value(){return this._value}get gasLimit(){return this._gasLimit}get gasPrice(){return this._gasPrice}get blockNumber(){return this._blockNumber}async performMirrorNodeRequest(e,t){var r;if(null==this.contractId)throw new Error("Contract ID is not set");this._fillEvmAddress();let n=e.mirrorNetwork[0];const o="/api/v1/contracts/call";if(!e.ledgerId||(null==(r=e.ledgerId)?void 0:r.isLocalNode()))n="http://".concat(e.mirrorNetwork[0].replace("5600","8545")).concat(o);else{let t=e.mirrorNetwork[0].split(":");n="https://".concat(t[0]).concat(o)}const i=await fetch(n,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!i.ok)throw new Error(`HTTP error! status: ${i.status}`);return await i.json()}_fillEvmAddress(){null==this.senderEvmAddress&&null!=this.sender&&(this._senderEvmAddress=this.sender.toSolidityAddress())}get JSONPayload(){throw new Error("JSONPayload getter is not implemented. Please implement this method in the subclass.")}},r$9=class extends e$9{get JSONPayload(){var e,t,r,n;if(null==this.callData)throw new Error("Call data is required.");return{data:Buffer$2.from(this.callData).toString("hex"),from:this.senderEvmAddress,to:this.contractEvmAddress,estimate:!1,gasPrice:null==(e=this.gasPrice)?void 0:e.toString(),gas:null==(t=this.gasLimit)?void 0:t.toString(),blockNumber:null==(r=this.blockNumber)?void 0:r.toString(),value:null==(n=this.value)?void 0:n.toString()}}async execute(e){return(await this.performMirrorNodeRequest(e,this.JSONPayload)).result}},r$8=class extends e$9{get JSONPayload(){var e,t,r,n;if(null==this.callData)throw new Error("Call data is required.");return{data:Buffer$2.from(this.callData).toString("hex"),from:this.senderEvmAddress,to:this.contractEvmAddress,estimate:!0,gasPrice:null==(e=this.gasPrice)?void 0:e.toString(),gas:null==(t=this.gasLimit)?void 0:t.toString(),blockNumber:null==(r=this.blockNumber)?void 0:r.toString(),value:null==(n=this.value)?void 0:n.toString()}}async execute(e){const t=await this.performMirrorNodeRequest(e,this.JSONPayload);return Number(t.result)}},n$c=class e{constructor(e){this.accountId=e.accountId,this.amount=e.amount instanceof e$A?e.amount:new e$A(e.amount),Object.freeze(this)}static _fromProtobuf(t){return new e({accountId:f$8._fromProtobuf(t.accountID),amount:e$A.fromTinybars(null!=t.amount?t.amount:0)})}_toProtobuf(){return{accountID:this.accountId._toProtobuf(),amount:this.amount.toTinybars()}}},t$8=class{constructor(e){this.publicKey=e.publicKey,this.signature=e.signature,this.accountId=e.accountId}},s$8=class{constructor(){this._call=null,this._unsubscribed=!1}_setCall(e){this._call=e}unsubscribe(){null!=this._call&&(this._unsubscribed=!0,this._call())}},i$8=class{constructor(){this._ownerId=null,this._tokenIds=[],this._nftIds=[],this._freezeWithClient=null,this._signPrivateKey=null,this._signPublicKey=null,this._transactionSigner=null}setOwnerId(e){return this.requireNotFrozen(),this._ownerId=e,this}get ownerId(){return this._ownerId}setTokenIds(e){return this.requireNotFrozen(),this._tokenIds=e,this}addTokenId(e){return this.requireNotFrozen(),this._tokenIds.push(e),this}get tokenIds(){return this._tokenIds}setNftIds(e){return this.requireNotFrozen(),this._nftIds=e,this}addNftId(e){return this.requireNotFrozen(),this._nftIds.push(e),this}get nftIds(){return this._nftIds}sign(e){return this._signPrivateKey=e,this._signPublicKey=null,this._transactionSigner=null,this}signWith(e,t){return this._signPublicKey=e,this._transactionSigner=t,this._signPrivateKey=null,this}signWithOperator(e){const t=e.getOperator();if(null==t)throw new Error("Client operator must be set");return this._signPublicKey=t.publicKey,this._transactionSigner=t.transactionSigner,this._signPrivateKey=null,this}fillOutTransaction(e){this._freezeWithClient&&e.freezeWith(this._freezeWithClient),this._signPrivateKey?e.sign(this._signPrivateKey):this._signPublicKey&&this._transactionSigner&&e.signWith(this._signPublicKey,this._transactionSigner)}freezeWith(e){return this._freezeWithClient=e,this}async execute(e){const t=(new o$g).setTokenIds(this.tokenIds).setNftIds(this.nftIds);this.ownerId&&t.setOwnerId(this.ownerId),this.fillOutTransaction(t);const r=this.nftIds.map((e=>e.tokenId)).filter((function(e,t,r){return r.indexOf(e)===t})),n=(new r$q).setTokenIds([...this.tokenIds,...r]);null!=this.ownerId&&n.setAccountId(this.ownerId),this.fillOutTransaction(n);const o=await t.execute(e);await o.getReceipt(e);const i=await n.execute(e);return await i.getReceipt(e),o}requireNotFrozen(){if(null!=this._freezeWithClient)throw new Error("Transaction is already frozen and cannot be modified")}},n$b=class e{constructor(e){this.consensusTimestamp=e.consensusTimestamp,this.contents=e.contents,this.runningHash=e.runningHash,this.sequenceNumber=e.sequenceNumber,Object.freeze(this)}static _fromProtobuf(t){return new e({consensusTimestamp:s$r._fromProtobuf(t.consensusTimestamp),contents:null!=t.message?t.message:new Uint8Array,runningHash:null!=t.runningHash?t.runningHash:new Uint8Array,sequenceNumber:null!=t.sequenceNumber?t.sequenceNumber instanceof Long?t.sequenceNumber:Long.fromValue(t.sequenceNumber):Long.ZERO})}_toProtobuf(){return{consensusTimestamp:this.consensusTimestamp._toProtobuf(),message:this.contents,runningHash:this.runningHash,sequenceNumber:this.sequenceNumber}}},t$7=class e{constructor(e){this.consensusTimestamp=e.consensusTimestamp,this.contents=e.contents,this.runningHash=e.runningHash,this.sequenceNumber=e.sequenceNumber,this.chunks=e.chunks,this.initialTransactionId=e.initialTransactionId,Object.freeze(this)}static _ofSingle(t){return new e({consensusTimestamp:s$r._fromProtobuf(t.consensusTimestamp),contents:null!=t.message?t.message:new Uint8Array,runningHash:null!=t.runningHash?t.runningHash:new Uint8Array,sequenceNumber:null!=t.sequenceNumber?t.sequenceNumber instanceof Long?t.sequenceNumber:Long.fromNumber(t.sequenceNumber):Long.ZERO,initialTransactionId:null!=t.chunkInfo&&null!=t.chunkInfo.initialTransactionID?i$j._fromProtobuf(t.chunkInfo.initialTransactionID):null,chunks:[n$b._fromProtobuf(t)]})}static _ofMany(t){const r=t[t.length-1],n=s$r._fromProtobuf(r.consensusTimestamp),o=r.runningHash,i=null!=r.sequenceNumber?r.sequenceNumber instanceof Long?r.sequenceNumber:Long.fromValue(r.sequenceNumber):Long.ZERO;t.sort(((e,t)=>(null!=e&&null!=e.chunkInfo&&null!=e.chunkInfo.number?e.chunkInfo.number:0)<(null!=t&&null!=t.chunkInfo&&null!=t.chunkInfo.number?t.chunkInfo.number:0)?-1:1));const s=t.map((e=>n$b._fromProtobuf(e))),a=s.map((e=>e.contents.length)).reduce(((e,t)=>e+t),0),c=new Uint8Array(a);let u=0;t.forEach((e=>{c.set(e.message,u),u+=e.message.length}));let l=null;return t.length>0&&null!=t[0].chunkInfo&&null!=t[0].chunkInfo.initialTransactionID&&(l=i$j._fromProtobuf(t[0].chunkInfo.initialTransactionID)),new e({consensusTimestamp:n,contents:c,runningHash:o,sequenceNumber:i,chunks:s,initialTransactionId:l})}},a$8=class{constructor(e={}){this._topicId=null,null!=e.topicId&&this.setTopicId(e.topicId),this._startTime=null,null!=e.startTime&&this.setStartTime(e.startTime),this._endTime=null,null!=e.endTime&&this.setEndTime(e.endTime),this._limit=null,null!=e.limit&&this.setLimit(e.limit),this._errorHandler=(e,t)=>{console.error(`Error attempting to subscribe to topic: ${null!=this._topicId?this._topicId.toString():""}`)},null!=e.errorHandler&&(this._errorHandler=e.errorHandler),this._listener=null,this._completionHandler=()=>{console.log(`Subscription to topic ${null!=this._topicId?this._topicId.toString():""} complete`)},null!=e.completionHandler&&(this._completionHandler=e.completionHandler),this._maxAttempts=20,this._maxBackoff=8e3,this._retryHandler=e=>{if(null!=e){if(e instanceof Error)return!0;switch(e.code){case 13:return a$i.test(e.details.toString());case 5:case 8:case 14:case 17:return!0;default:return!1}}return!1},null!=e.retryHandler&&(this._retryHandler=e.retryHandler),this._attempt=0,this._handle=null,this.setMaxBackoff(8e3)}get topicId(){return this._topicId}setTopicId(e){return this.requireNotSubscribed(),this._topicId="string"==typeof e?m$6.fromString(e):e.clone(),this}get startTime(){return this._startTime}setStartTime(e){return this.requireNotSubscribed(),this._startTime=e instanceof s$r?e:e instanceof Date?s$r.fromDate(e):new s$r(e,0),this}get endTime(){return this._endTime}setEndTime(e){return this.requireNotSubscribed(),this._endTime=e instanceof s$r?e:e instanceof Date?s$r.fromDate(e):new s$r(e,0),this}get limit(){return this._limit}setLimit(e){return this.requireNotSubscribed(),this._limit=e instanceof Long?e:Long.fromValue(e),this}setErrorHandler(e){return this._errorHandler=e,this}setCompletionHandler(e){return this.requireNotSubscribed(),this._completionHandler=e,this}setMaxAttempts(e){return this.requireNotSubscribed(),this._maxAttempts=e,this}setMaxBackoff(e){return this.requireNotSubscribed(),this._maxBackoff=e,this}subscribe(e,t,r){return this._handle=new s$8,this._listener=r,null!=t&&(this._errorHandler=t),this._makeServerStreamRequest(e),this._handle}_makeServerStreamRequest(e){const t=this._buildConsensusRequest(),r=new Map,n=e._mirrorNetwork.getNextMirrorNode().getChannel().makeServerStreamRequest("ConsensusService","subscribeTopic",t,(e=>this._handleMessage(e,r)),(t=>this._handleError(t,e)),this._completionHandler);null!=this._handle&&this._handle._setCall((()=>n()))}requireNotSubscribed(){if(null!=this._handle)throw new Error("Cannot change fields on an already subscribed query")}_passTopicMessage(e){try{if(null==this._listener)throw new Error("(BUG) listener is unexpectedly not set");this._listener(e)}catch(t){this._errorHandler(e,t)}}_buildConsensusRequest(){var e,t,r;return com_1.hedera.mirror.api.proto.ConsensusTopicQuery.encode({topicID:(null==(e=this._topicId)?void 0:e._toProtobuf())??null,consensusStartTime:(null==(t=this._startTime)?void 0:t._toProtobuf())??null,consensusEndTime:(null==(r=this._endTime)?void 0:r._toProtobuf())??null,limit:this._limit}).finish()}_handleMessage(e,t){var r;const n=com_1.hedera.mirror.api.proto.ConsensusTopicResponse.decode(e);(null==(r=this._limit)?void 0:r.gt(0))&&(this._limit=this._limit.sub(1)),this._startTime=s$r._fromProtobuf(n.consensusTimestamp).plusNanos(1),null==n.chunkInfo||null!=n.chunkInfo&&1===n.chunkInfo.total?this._passTopicMessage(t$7._ofSingle(n)):this._handleChunkedMessage(n,t)}_handleChunkedMessage(e,t){const r=e.chunkInfo,n=r.initialTransactionID,o=r.total,i=i$j._fromProtobuf(n).toString();let s=[];const a=t.get(i);if(null==a?t.set(i,s):s=a,s.push(e),s.length===o){const e=t$7._ofMany(s);t.delete(i),this._passTopicMessage(e)}}_handleError(e,t){var r;const n=e instanceof Error?e.message:e.details;(null==(r=this._handle)?void 0:r._unsubscribed)||(this.shouldRetry(e)?this._scheduleRetry(t,n):this._errorHandler(null,new Error(n)))}shouldRetry(e){return this._attemptthis._makeServerStreamRequest(e)),n)}},u$5=class e{constructor(e,t,r){const n="string"==typeof t?y$a.fromStringDer(t):t;this.publicKey=n.publicKey,this.signer=e=>Promise.resolve(n.sign(e)),this.provider=r,this.accountId="string"==typeof e?f$8.fromString(e):e}static createRandomED25519(){const t=y$a.generateED25519(),r=t.publicKey.toAccountId(0,0);return Promise.resolve(new e(r,t))}static createRandomECDSA(){const t=y$a.generateECDSA(),r=t.publicKey.toAccountId(0,0);return Promise.resolve(new e(r,t))}getProvider(){return this.provider}getAccountId(){return this.accountId}getAccountKey(){return this.publicKey}getLedgerId(){return null==this.provider?null:this.provider.getLedgerId()}getNetwork(){return null==this.provider?{}:this.provider.getNetwork()}getMirrorNetwork(){return null==this.provider?[]:this.provider.getMirrorNetwork()}async sign(e){const t=[];for(const r of e)t.push(new t$8({publicKey:this.publicKey,signature:await this.signer(r),accountId:this.accountId}));return t}getAccountBalance(){return this.call((new e$r).setAccountId(this.accountId))}getAccountInfo(){return this.call((new c$d).setAccountId(this.accountId))}getAccountRecords(){return this.call((new e$q).setAccountId(this.accountId))}signTransaction(e){return e.signWith(this.publicKey,this.signer)}checkTransaction(e){const t=e.transactionId;if(null!=t&&null!=t.accountId&&0!=t.accountId.compare(this.accountId))throw new Error("transaction's ID constructed with a different account ID");if(null==this.provider)return Promise.resolve(e);const r=(null!=e.nodeAccountIds?e.nodeAccountIds:[]).map((e=>e.toString())),n=Object.values(this.provider.getNetwork()).map((e=>e.toString()));if(!r.reduce(((e,t)=>e&&n.includes(t)),!0))throw new Error("Transaction already set node account IDs to values not within the current network");return Promise.resolve(e)}populateTransaction(e){if(e._freezeWithAccountId(this.accountId),null==e.transactionId&&e.setTransactionId(i$j.generate(this.accountId)),null!=e.nodeAccountIds&&0!=e.nodeAccountIds.length)return Promise.resolve(e.freeze());if(null==this.provider)return Promise.resolve(e);const t=Object.values(this.provider.getNetwork()).map((e=>"string"==typeof e?f$8.fromString(e):e));return T$7(t),e.setNodeAccountIds(t.slice(0,(t.length+3-1)/3)),Promise.resolve(e.freeze())}call(e){if(null==this.provider)throw new Error("cannot send request with an wallet that doesn't contain a provider");return this.provider.call(e._setOperatorWith(this.accountId,this.publicKey,this.signer))}},r$7=class{constructor(e,t="",r=!0,n=!0,o=!0,i=0){const s=t?e$c.destination({dest:t,sync:r,fsync:n,mkdir:o,minLength:i}):null,a=s?{level:e.toString(),timestamp:e$c.stdTimeFunctions.isoTime,formatters:{bindings:()=>({}),level:e=>({level:e.toUpperCase()})}}:{level:e.toString(),transport:{target:"pino-pretty",options:{translateTime:"SYS:dd-mm-yyyy HH:MM:ss",ignore:"pid,hostname"}}};this._logger=s?e$c(a,s):e$c(a),this._previousLevel=e}setLogger(e){return this._logger=e,this}setLevel(e){return this._previousLevel=e$b._fromString(this._logger.level),this._logger.level=e.toString(),this}get level(){return e$b._fromString(this._logger.level)}get levels(){return this._logger.levels.labels}setSilent(e){return this._logger.level=e?e$b.Silent.toString():this._previousLevel.toString(),this}get silent(){return this._logger.level==e$b.Silent.toString()}trace(e){this._logger.trace(e)}debug(e){this._logger.debug(e)}info(e){this._logger.info(e)}warn(e){this._logger.warn(e)}error(e){this._logger.error(e)}fatal(e){this._logger.fatal(e)}};var a$7={},a$6={};const HashgraphSDK=Object.freeze(Object.defineProperty({__proto__:null,AccountAllowanceAdjustTransaction:u$6,AccountAllowanceApproveTransaction:c$f,AccountAllowanceDeleteTransaction:r$y,AccountBalance:a$h,AccountBalanceQuery:e$r,AccountCreateTransaction:h$8,AccountDeleteTransaction:c$e,AccountId:f$8,AccountInfo:d$e,AccountInfoFlow:n$e,AccountInfoQuery:c$d,AccountRecordsQuery:e$q,AccountUpdateTransaction:s$h,AddressBookQuery:d$d,AssessedCustomFee:n$t,BadKeyError:BadKeyError,BadMnemonicError:BadMnemonicError,BadMnemonicReason:BadMnemonicReason,BatchTransaction:o$o,Cache:t$z,Client:i$9,ContractByteCodeQuery:o$n,ContractCallQuery:l$f,ContractCreateFlow:c$8,ContractCreateTransaction:d$b,ContractDeleteTransaction:c$b,ContractExecuteTransaction:s$d,ContractFunctionParameters:_$a,ContractFunctionResult:l$k,ContractFunctionSelector:i$f,ContractId:v$7,ContractInfo:m$5,ContractInfoQuery:e$n,ContractLogInfo:o$u,ContractNonceInfo:c$g,ContractUpdateTransaction:u$d,CustomFee:e$u,CustomFeeLimit:o$s,CustomFixedFee:l$i,CustomFractionalFee:r$p,CustomRoyaltyFee:l$b,DelegateContractId:e$l,EntityIdHelper:EntityIdHelper,EthereumFlow:r$d,EthereumTransaction:r$u,EthereumTransactionData:e$k,EthereumTransactionDataEip1559:e$j,EthereumTransactionDataEip2930:a$e,EthereumTransactionDataLegacy:a$f,EvmAddress:i$k,ExchangeRate:t$q,ExchangeRates:o$9,Executable:u$k,FeeAssessmentMethod:e$m,FeeComponents:n$d,FeeData:a$a,FeeDataType:e$i,FeeSchedule:r$b,FeeSchedules:r$a,FileAppendTransaction:c$c,FileContentsQuery:n$o,FileCreateTransaction:l$e,FileDeleteTransaction:r$v,FileId:u$j,FileInfo:f$7,FileInfoQuery:o$l,FileUpdateTransaction:l$c,FreezeTransaction:l$h,FreezeType:e$p,HEDERA_PATH:HEDERA_PATH,Hbar:e$A,HbarAllowance:o$r,HbarUnit:e$B,Key:t$y,KeyList:s$q,LedgerId:r$x,LiveHash:s$k,LiveHashAddTransaction:i$e,LiveHashDeleteTransaction:a$d,LiveHashQuery:o$k,LogLevel:e$b,Logger:r$7,Long:Long,MaxAttemptsOrTimeoutError:t$r,MaxQueryPaymentExceeded:e$x,MirrorNodeContractCallQuery:r$9,MirrorNodeContractEstimateQuery:r$8,Mnemonic:a$l,NetworkName:e$a,NetworkVersionInfo:e$g,NetworkVersionInfoQuery:o$i,NftId:e$v,NodeAddressBook:o$p,NodeCreateTransaction:r$i,NodeDeleteTransaction:n$h,NodeUpdateTransaction:r$h,PendingAirdropId:t$p,PrecheckStatusError:n$y,PrivateKey:y$a,PrngTransaction:e$f,Provider:a$7,ProxyStaker:n$c,PublicKey:i$m,Query:h$b,ReceiptStatusError:r$D,RequestType:e$h,SLIP44_ECDSA_ETH_PATH:SLIP44_ECDSA_ETH_PATH,SLIP44_ECDSA_HEDERA_PATH:SLIP44_ECDSA_HEDERA_PATH,ScheduleCreateTransaction:u$c,ScheduleDeleteTransaction:u$b,ScheduleId:o$v,ScheduleInfo:c$a,ScheduleInfoQuery:r$t,ScheduleSignTransaction:u$a,SemanticVersion:o$j,ServiceEndpoint:t$e,SignatureMap:e$C,Signer:a$6,SignerSignature:t$8,Status:e$z,StatusError:t$s,SubscriptionHandle:s$8,SystemDeleteTransaction:n$n,SystemUndeleteTransaction:o$h,Timestamp:s$r,TokenAirdropTransaction:s$m,TokenAllowance:e$s,TokenAssociateTransaction:r$s,TokenBurnTransaction:r$r,TokenCancelAirdropTransaction:e$t,TokenClaimAirdropTransaction:i$h,TokenCreateTransaction:_$9,TokenDeleteTransaction:n$m,TokenDissociateTransaction:r$q,TokenFeeScheduleUpdateTransaction:u$9,TokenFreezeTransaction:r$o,TokenGrantKycTransaction:r$n,TokenId:u$i,TokenInfo:d$9,TokenInfoQuery:r$m,TokenKeyValidation:t$f,TokenMintTransaction:r$l,TokenNftAllowance:o$q,TokenNftInfo:n$l,TokenNftInfoQuery:u$8,TokenPauseTransaction:n$k,TokenRejectFlow:i$8,TokenRejectTransaction:o$g,TokenRevokeKycTransaction:r$k,TokenSupplyType:e$d,TokenType:e$e,TokenUnfreezeTransaction:r$j,TokenUnpauseTransaction:o$f,TokenUpdateNftsTransaction:s$b,TokenUpdateTransaction:a$b,TokenWipeTransaction:s$c,TopicCreateTransaction:c$9,TopicDeleteTransaction:i$d,TopicId:m$6,TopicInfo:l$a,TopicInfoQuery:n$j,TopicMessage:t$7,TopicMessageChunk:n$b,TopicMessageQuery:a$8,TopicMessageSubmitTransaction:u$7,TopicUpdateTransaction:l$9,Transaction:P$5,TransactionFeeSchedule:a$9,TransactionId:i$j,TransactionReceipt:d$h,TransactionReceiptQuery:l$l,TransactionRecord:b$7,TransactionRecordQuery:h$a,TransactionResponse:h$9,Transfer:n$w,TransferTransaction:T$6,Wallet:u$5,WebClient:i$9},Symbol.toStringTag,{value:"Module"}));var HederaChainId,HederaChainId2,HederaSessionEvent,HederaSessionEvent2,HederaJsonRpcMethod,HederaJsonRpcMethod2;function freezeTransaction(e){e.isFrozen()||e.freeze()}function setDefaultNodeAccountIds(e){const t=!e.nodeAccountIds||0===e.nodeAccountIds.length;!e.isFrozen()&&t&&e.setNodeAccountIds([new f$8(3),new f$8(4),new f$8(5)])}function transactionToBase64String(e){setDefaultNodeAccountIds(e),freezeTransaction(e);const t=e.toBytes();return Buffer$1$1.from(t).toString("base64")}function transactionToTransactionBody(e,t){return e._makeTransactionBody(t)}function transactionBodyToBase64String(e){return Uint8ArrayToBase64String(proto_1.TransactionBody.encode(e).finish())}function base64StringToSignatureMap(e){const t=Buffer$1$1.from(e,"base64");return proto_1.SignatureMap.decode(t)}function Uint8ArrayToBase64String(e){return Buffer$1$1.from(e).toString("base64")}function Uint8ArrayToString(e){return Buffer$1$1.from(e).toString("utf-8")}function base64StringToUint8Array(e){const t=Buffer$1$1.from(e,"base64");return new Uint8Array(t)}function queryToBase64String(e){const t=e.toBytes();return Buffer$1$1.from(t).toString("base64")}function prefixMessageToSign(e){return"Hedera Signed Message:\n"+e.length+e}function verifyMessageSignature(e,t,r){const n=base64StringToSignatureMap(t),o=n.sigPair[0].ed25519||n.sigPair[0].ECDSASecp256k1;if(!o)throw new Error("Signature not found in signature map");return r.verify(Buffer$1$1.from(prefixMessageToSign(e)),o)}HederaChainId2=HederaChainId||(HederaChainId={}),HederaChainId2.Mainnet="hedera:mainnet",HederaChainId2.Testnet="hedera:testnet",HederaChainId2.Previewnet="hedera:previewnet",HederaChainId2.Devnet="hedera:devnet",HederaSessionEvent2=HederaSessionEvent||(HederaSessionEvent={}),HederaSessionEvent2.AccountsChanged="accountsChanged",HederaSessionEvent2.ChainChanged="chainChanged",HederaJsonRpcMethod2=HederaJsonRpcMethod||(HederaJsonRpcMethod={}),HederaJsonRpcMethod2.GetNodeAddresses="hedera_getNodeAddresses",HederaJsonRpcMethod2.ExecuteTransaction="hedera_executeTransaction",HederaJsonRpcMethod2.SignMessage="hedera_signMessage",HederaJsonRpcMethod2.SignAndExecuteQuery="hedera_signAndExecuteQuery",HederaJsonRpcMethod2.SignAndExecuteTransaction="hedera_signAndExecuteTransaction",HederaJsonRpcMethod2.SignTransaction="hedera_signTransaction";const LEDGER_ID_MAPPINGS=[[r$x.MAINNET,295,"hedera:mainnet"],[r$x.TESTNET,296,"hedera:testnet"],[r$x.PREVIEWNET,297,"hedera:previewnet"],[r$x.LOCAL_NODE,298,"hedera:devnet"]],DEFAULT_LEDGER_ID=r$x.LOCAL_NODE,DEFAULT_CAIP=LEDGER_ID_MAPPINGS[3][2];function CAIPChainIdToLedgerId(e){for(let t=0;t({hedera:{chains:[ledgerIdToCAIPChainId(e)],methods:t,events:r}}),accountAndLedgerFromSession=e=>{const t=e.namespaces.hedera;if(!t)throw new Error("No hedera namespace found");return t.accounts.map((e=>{const[t,r,n]=e.split(":");return{network:CAIPChainIdToLedgerId(t+":"+r),account:f$8.fromString(n)}}))};var EVENTS,EVENTS2;EVENTS2=EVENTS||(EVENTS={}),EVENTS2.extensionQuery="hedera-extension-query",EVENTS2.extensionConnect="hedera-extension-connect-",EVENTS2.extensionOpen="hedera-extension-open-",EVENTS2.extensionResponse="hedera-extension-response",EVENTS2.iframeQuery="hedera-iframe-query",EVENTS2.iframeQueryResponse="hedera-iframe-response",EVENTS2.iframeConnect="hedera-iframe-connect";const findExtensions=e=>{"undefined"!=typeof window&&(window.addEventListener("message",(t=>{var r,n;(null===(r=null==t?void 0:t.data)||void 0===r?void 0:r.type)==EVENTS.extensionResponse&&t.data.metadata&&e(t.data.metadata,!1),(null===(n=null==t?void 0:t.data)||void 0===n?void 0:n.type)==EVENTS.iframeQueryResponse&&t.data.metadata&&e(t.data.metadata,!0)})),setTimeout((()=>{extensionQuery()}),200))},extensionQuery=()=>{window.postMessage({type:EVENTS.extensionQuery},"*"),window.parent&&window.parent.postMessage({type:EVENTS.iframeQuery},"*")},extensionConnect=(e,t,r)=>{t?window.parent.postMessage({type:EVENTS.iframeConnect,pairingString:r},"*"):window.postMessage({type:EVENTS.extensionConnect+e,pairingString:r},"*")},extensionOpen=e=>{window.postMessage({type:EVENTS.extensionOpen+e},"*")};var cjs$7={},extendStatics=function(e,t){return(extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)}; /*! ***************************************************************************** Copyright (c) Microsoft Corporation. @@ -103,7 +110,7 @@ function utilFromBase(e,t){let r=0;if(1===e.length)return e[0];for(let n=e.lengt LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - ***************************************************************************** */function __extends(e,t){function r(){this.constructor=e}extendStatics(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var __assign=function(){return __assign=Object.assign||function(e){for(var t,r=1,n=arguments.length;r=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a}function __param(e,t){return function(r,n){t(r,n,e)}}function __metadata(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function __awaiter(e,t,r,n){return new(r||(r=Promise))((function(o,i){function a(e){try{c(n.next(e))}catch(e2){i(e2)}}function s(e){try{c(n.throw(e))}catch(e2){i(e2)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,s)}c((n=n.apply(e,t||[])).next())}))}function __generator(e,t){var r,n,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;a;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,n=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function __read(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,i=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=i.next()).done;)a.push(n.value)}catch(s){o={error:s}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return a}function __spread(){for(var e=[],t=0;t1||s(e,t)}))})}function s(e,t){try{(r=o[e](t)).value instanceof __await?Promise.resolve(r.value.v).then(c,u):l(i[0][2],r)}catch(e2){l(i[0][3],e2)}var r}function c(e){s("next",e)}function u(e){s("throw",e)}function l(e,t){e(t),i.shift(),i.length&&s(i[0][0],i[0][1])}}function __asyncDelegator(e){var t,r;return t={},n("next"),n("throw",(function(e){throw e})),n("return"),t[Symbol.iterator]=function(){return this},t;function n(n,o){t[n]=e[n]?function(t){return(r=!r)?{value:__await(e[n](t)),done:"return"===n}:o?o(t):t}:o}}function __asyncValues(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,r=e[Symbol.asyncIterator];return r?r.call(e):(e="function"==typeof __values?__values(e):e[Symbol.iterator](),t={},n("next"),n("throw"),n("return"),t[Symbol.asyncIterator]=function(){return this},t);function n(r){t[r]=e[r]&&function(t){return new Promise((function(n,o){(function(e,t,r,n){Promise.resolve(n).then((function(t){e({value:t,done:r})}),t)})(n,o,(t=e[r](t)).done,t.value)}))}}}function __makeTemplateObject(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}function __importStar(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function __importDefault(e){return e&&e.__esModule?e:{default:e}}function __classPrivateFieldGet(e,t){if(!t.has(e))throw new TypeError("attempted to get private field on non-instance");return t.get(e)}function __classPrivateFieldSet(e,t,r){if(!t.has(e))throw new TypeError("attempted to set private field on non-instance");return t.set(e,r),r}const tslib_es6=Object.freeze(Object.defineProperty({__proto__:null,get __assign(){return __assign},__asyncDelegator:__asyncDelegator,__asyncGenerator:__asyncGenerator,__asyncValues:__asyncValues,__await:__await,__awaiter:__awaiter,__classPrivateFieldGet:__classPrivateFieldGet,__classPrivateFieldSet:__classPrivateFieldSet,__createBinding:__createBinding,__decorate:__decorate,__exportStar:__exportStar,__extends:__extends,__generator:__generator,__importDefault:__importDefault,__importStar:__importStar,__makeTemplateObject:__makeTemplateObject,__metadata:__metadata,__param:__param,__read:__read,__rest:__rest,__spread:__spread,__spreadArrays:__spreadArrays$1,__values:__values},Symbol.toStringTag,{value:"Module"})),require$$0$4=getAugmentedNamespace(tslib_es6);var utils$q={},delay={},hasRequiredDelay;function requireDelay(){if(hasRequiredDelay)return delay;return hasRequiredDelay=1,Object.defineProperty(delay,"__esModule",{value:!0}),delay.delay=void 0,delay.delay=function(e){return new Promise((t=>{setTimeout((()=>{t(!0)}),e)}))},delay}var convert={},constants={},misc={},hasRequiredMisc;function requireMisc(){return hasRequiredMisc||(hasRequiredMisc=1,Object.defineProperty(misc,"__esModule",{value:!0}),misc.ONE_THOUSAND=misc.ONE_HUNDRED=void 0,misc.ONE_HUNDRED=100,misc.ONE_THOUSAND=1e3),misc}var time$1={},hasRequiredTime,hasRequiredConstants,hasRequiredConvert,hasRequiredUtils;function requireTime(){return hasRequiredTime||(hasRequiredTime=1,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ONE_YEAR=e.FOUR_WEEKS=e.THREE_WEEKS=e.TWO_WEEKS=e.ONE_WEEK=e.THIRTY_DAYS=e.SEVEN_DAYS=e.FIVE_DAYS=e.THREE_DAYS=e.ONE_DAY=e.TWENTY_FOUR_HOURS=e.TWELVE_HOURS=e.SIX_HOURS=e.THREE_HOURS=e.ONE_HOUR=e.SIXTY_MINUTES=e.THIRTY_MINUTES=e.TEN_MINUTES=e.FIVE_MINUTES=e.ONE_MINUTE=e.SIXTY_SECONDS=e.THIRTY_SECONDS=e.TEN_SECONDS=e.FIVE_SECONDS=e.ONE_SECOND=void 0,e.ONE_SECOND=1,e.FIVE_SECONDS=5,e.TEN_SECONDS=10,e.THIRTY_SECONDS=30,e.SIXTY_SECONDS=60,e.ONE_MINUTE=e.SIXTY_SECONDS,e.FIVE_MINUTES=5*e.ONE_MINUTE,e.TEN_MINUTES=10*e.ONE_MINUTE,e.THIRTY_MINUTES=30*e.ONE_MINUTE,e.SIXTY_MINUTES=60*e.ONE_MINUTE,e.ONE_HOUR=e.SIXTY_MINUTES,e.THREE_HOURS=3*e.ONE_HOUR,e.SIX_HOURS=6*e.ONE_HOUR,e.TWELVE_HOURS=12*e.ONE_HOUR,e.TWENTY_FOUR_HOURS=24*e.ONE_HOUR,e.ONE_DAY=e.TWENTY_FOUR_HOURS,e.THREE_DAYS=3*e.ONE_DAY,e.FIVE_DAYS=5*e.ONE_DAY,e.SEVEN_DAYS=7*e.ONE_DAY,e.THIRTY_DAYS=30*e.ONE_DAY,e.ONE_WEEK=e.SEVEN_DAYS,e.TWO_WEEKS=2*e.ONE_WEEK,e.THREE_WEEKS=3*e.ONE_WEEK,e.FOUR_WEEKS=4*e.ONE_WEEK,e.ONE_YEAR=365*e.ONE_DAY}(time$1)),time$1}function requireConstants(){return hasRequiredConstants||(hasRequiredConstants=1,function(e){Object.defineProperty(e,"__esModule",{value:!0});const t=require$$0$4;t.__exportStar(requireMisc(),e),t.__exportStar(requireTime(),e)}(constants)),constants}function requireConvert(){if(hasRequiredConvert)return convert;hasRequiredConvert=1,Object.defineProperty(convert,"__esModule",{value:!0}),convert.fromMiliseconds=convert.toMiliseconds=void 0;const e=requireConstants();return convert.toMiliseconds=function(t){return t*e.ONE_THOUSAND},convert.fromMiliseconds=function(t){return Math.floor(t/e.ONE_THOUSAND)},convert}function requireUtils(){return hasRequiredUtils||(hasRequiredUtils=1,function(e){Object.defineProperty(e,"__esModule",{value:!0});const t=require$$0$4;t.__exportStar(requireDelay(),e),t.__exportStar(requireConvert(),e)}(utils$q)),utils$q}var watch$2={},hasRequiredWatch$1;function requireWatch$1(){if(hasRequiredWatch$1)return watch$2;hasRequiredWatch$1=1,Object.defineProperty(watch$2,"__esModule",{value:!0}),watch$2.Watch=void 0;class e{constructor(){this.timestamps=new Map}start(e){if(this.timestamps.has(e))throw new Error(`Watch already started for label: ${e}`);this.timestamps.set(e,{started:Date.now()})}stop(e){const t=this.get(e);if(void 0!==t.elapsed)throw new Error(`Watch already stopped for label: ${e}`);const r=Date.now()-t.started;this.timestamps.set(e,{started:t.started,elapsed:r})}get(e){const t=this.timestamps.get(e);if(void 0===t)throw new Error(`No timestamp found for label: ${e}`);return t}elapsed(e){const t=this.get(e);return t.elapsed||Date.now()-t.started}}return watch$2.Watch=e,watch$2.default=e,watch$2}var types={},watch$1={},hasRequiredWatch,hasRequiredTypes;function requireWatch(){if(hasRequiredWatch)return watch$1;hasRequiredWatch=1,Object.defineProperty(watch$1,"__esModule",{value:!0}),watch$1.IWatch=void 0;return watch$1.IWatch=class{},watch$1}function requireTypes(){return hasRequiredTypes||(hasRequiredTypes=1,function(e){Object.defineProperty(e,"__esModule",{value:!0});require$$0$4.__exportStar(requireWatch(),e)}(types)),types}!function(e){Object.defineProperty(e,"__esModule",{value:!0});const t=require$$0$4;t.__exportStar(requireUtils(),e),t.__exportStar(requireWatch$1(),e),t.__exportStar(requireTypes(),e),t.__exportStar(requireConstants(),e)}(cjs$7);class IEvents{}let n$a=class extends IEvents{constructor(e){super()}};const s$7=cjs$7.FIVE_SECONDS,r$6={pulse:"heartbeat_pulse"};let i$7=class e extends n$a{constructor(e){super(e),this.events=new eventsExports.EventEmitter,this.interval=s$7,this.interval=(null==e?void 0:e.interval)||s$7}static async init(t){const r=new e(t);return await r.init(),r}async init(){await this.initialize()}stop(){clearInterval(this.intervalRef)}on(e,t){this.events.on(e,t)}once(e,t){this.events.once(e,t)}off(e,t){this.events.off(e,t)}removeListener(e,t){this.events.removeListener(e,t)}async initialize(){this.intervalRef=setInterval((()=>this.pulse()),cjs$7.toMiliseconds(this.interval))}pulse(){this.events.emit(r$6.pulse)}};const suspectProtoRx=/"(?:_|\\u0{2}5[Ff]){2}(?:p|\\u0{2}70)(?:r|\\u0{2}72)(?:o|\\u0{2}6[Ff])(?:t|\\u0{2}74)(?:o|\\u0{2}6[Ff])(?:_|\\u0{2}5[Ff]){2}"\s*:/,suspectConstructorRx=/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/,JsonSigRx=/^\s*["[{]|^\s*-?\d{1,16}(\.\d{1,17})?([Ee][+-]?\d+)?\s*$/;function jsonParseTransform(e,t){if(!("__proto__"===e||"constructor"===e&&t&&"object"==typeof t&&"prototype"in t))return t;warnKeyDropped(e)}function warnKeyDropped(e){console.warn(`[destr] Dropping "${e}" key to prevent prototype pollution.`)}function destr(e,t={}){if("string"!=typeof e)return e;const r=e.trim();if('"'===e[0]&&e.endsWith('"')&&!e.includes("\\"))return r.slice(1,-1);if(r.length<=9){const e=r.toLowerCase();if("true"===e)return!0;if("false"===e)return!1;if("undefined"===e)return;if("null"===e)return null;if("nan"===e)return Number.NaN;if("infinity"===e)return Number.POSITIVE_INFINITY;if("-infinity"===e)return Number.NEGATIVE_INFINITY}if(!JsonSigRx.test(e)){if(t.strict)throw new SyntaxError("[destr] Invalid JSON");return e}try{if(suspectProtoRx.test(e)||suspectConstructorRx.test(e)){if(t.strict)throw new Error("[destr] Possible prototype pollution");return JSON.parse(e,jsonParseTransform)}return JSON.parse(e)}catch(n){if(t.strict)throw n;return e}}function wrapToPromise(e){return e&&"function"==typeof e.then?e:Promise.resolve(e)}function asyncCall(e,...t){try{return wrapToPromise(e(...t))}catch(r){return Promise.reject(r)}}function isPrimitive(e){const t=typeof e;return null===e||"object"!==t&&"function"!==t}function isPureObject(e){const t=Object.getPrototypeOf(e);return!t||t.isPrototypeOf(Object)}function stringify(e){if(isPrimitive(e))return String(e);if(isPureObject(e)||Array.isArray(e))return JSON.stringify(e);if("function"==typeof e.toJSON)return stringify(e.toJSON());throw new Error("[unstorage] Cannot stringify value!")}const BASE64_PREFIX="base64:";function serializeRaw(e){return"string"==typeof e?e:BASE64_PREFIX+base64Encode(e)}function deserializeRaw(e){return"string"!=typeof e?e:e.startsWith(BASE64_PREFIX)?base64Decode(e.slice(BASE64_PREFIX.length)):e}function base64Decode(e){return globalThis.Buffer?Buffer$2.from(e,"base64"):Uint8Array.from(globalThis.atob(e),(e=>e.codePointAt(0)))}function base64Encode(e){return globalThis.Buffer?Buffer$2.from(e).toString("base64"):globalThis.btoa(String.fromCodePoint(...e))}function normalizeKey(e){var t;return e&&(null==(t=e.split("?")[0])?void 0:t.replace(/[/\\]/g,":").replace(/:+/g,":").replace(/^:|:$/g,""))||""}function joinKeys(...e){return normalizeKey(e.join(":"))}function normalizeBaseKey(e){return(e=normalizeKey(e))?e+":":""}function defineDriver(e){return e}const DRIVER_NAME="memory",memory=defineDriver((()=>{const e=new Map;return{name:DRIVER_NAME,getInstance:()=>e,hasItem:t=>e.has(t),getItem:t=>e.get(t)??null,getItemRaw:t=>e.get(t)??null,setItem(t,r){e.set(t,r)},setItemRaw(t,r){e.set(t,r)},removeItem(t){e.delete(t)},getKeys:()=>[...e.keys()],clear(){e.clear()},dispose(){e.clear()}}}));function createStorage(e={}){const t={mounts:{"":e.driver||memory()},mountpoints:[""],watching:!1,watchListeners:[],unwatch:{}},r=e=>{for(const r of t.mountpoints)if(e.startsWith(r))return{base:r,relativeKey:e.slice(r.length),driver:t.mounts[r]};return{base:"",relativeKey:e,driver:t.mounts[""]}},n=(e,r)=>t.mountpoints.filter((t=>t.startsWith(e)||r&&e.startsWith(t))).map((r=>({relativeBase:e.length>r.length?e.slice(r.length):void 0,mountpoint:r,driver:t.mounts[r]}))),o=(e,r)=>{if(t.watching){r=normalizeKey(r);for(const n of t.watchListeners)n(e,r)}},i=async()=>{if(t.watching){for(const e in t.unwatch)await t.unwatch[e]();t.unwatch={},t.watching=!1}},a=(e,t,n)=>{const o=new Map,i=e=>{let t=o.get(e.base);return t||(t={driver:e.driver,base:e.base,items:[]},o.set(e.base,t)),t};for(const a of e){const e="string"==typeof a,n=normalizeKey(e?a:a.key),o=e?void 0:a.value,s=e||!a.options?t:{...t,...a.options},c=r(n);i(c).items.push({key:n,value:o,relativeKey:c.relativeKey,options:s})}return Promise.all([...o.values()].map((e=>n(e)))).then((e=>e.flat()))},s={hasItem(e,t={}){e=normalizeKey(e);const{relativeKey:n,driver:o}=r(e);return asyncCall(o.hasItem,n,t)},getItem(e,t={}){e=normalizeKey(e);const{relativeKey:n,driver:o}=r(e);return asyncCall(o.getItem,n,t).then((e=>destr(e)))},getItems:(e,t={})=>a(e,t,(e=>e.driver.getItems?asyncCall(e.driver.getItems,e.items.map((e=>({key:e.relativeKey,options:e.options}))),t).then((t=>t.map((t=>({key:joinKeys(e.base,t.key),value:destr(t.value)}))))):Promise.all(e.items.map((t=>asyncCall(e.driver.getItem,t.relativeKey,t.options).then((e=>({key:t.key,value:destr(e)})))))))),getItemRaw(e,t={}){e=normalizeKey(e);const{relativeKey:n,driver:o}=r(e);return o.getItemRaw?asyncCall(o.getItemRaw,n,t):asyncCall(o.getItem,n,t).then((e=>deserializeRaw(e)))},async setItem(e,t,n={}){if(void 0===t)return s.removeItem(e);e=normalizeKey(e);const{relativeKey:i,driver:a}=r(e);a.setItem&&(await asyncCall(a.setItem,i,stringify(t),n),a.watch||o("update",e))},async setItems(e,t){await a(e,t,(async e=>{if(e.driver.setItems)return asyncCall(e.driver.setItems,e.items.map((e=>({key:e.relativeKey,value:stringify(e.value),options:e.options}))),t);e.driver.setItem&&await Promise.all(e.items.map((t=>asyncCall(e.driver.setItem,t.relativeKey,stringify(t.value),t.options))))}))},async setItemRaw(e,t,n={}){if(void 0===t)return s.removeItem(e,n);e=normalizeKey(e);const{relativeKey:i,driver:a}=r(e);if(a.setItemRaw)await asyncCall(a.setItemRaw,i,t,n);else{if(!a.setItem)return;await asyncCall(a.setItem,i,serializeRaw(t),n)}a.watch||o("update",e)},async removeItem(e,t={}){"boolean"==typeof t&&(t={removeMeta:t}),e=normalizeKey(e);const{relativeKey:n,driver:i}=r(e);i.removeItem&&(await asyncCall(i.removeItem,n,t),(t.removeMeta||t.removeMata)&&await asyncCall(i.removeItem,n+"$",t),i.watch||o("remove",e))},async getMeta(e,t={}){"boolean"==typeof t&&(t={nativeOnly:t}),e=normalizeKey(e);const{relativeKey:n,driver:o}=r(e),i=Object.create(null);if(o.getMeta&&Object.assign(i,await asyncCall(o.getMeta,n,t)),!t.nativeOnly){const e=await asyncCall(o.getItem,n+"$",t).then((e=>destr(e)));e&&"object"==typeof e&&("string"==typeof e.atime&&(e.atime=new Date(e.atime)),"string"==typeof e.mtime&&(e.mtime=new Date(e.mtime)),Object.assign(i,e))}return i},setMeta(e,t,r={}){return this.setItem(e+"$",t,r)},removeMeta(e,t={}){return this.removeItem(e+"$",t)},async getKeys(e,t={}){e=normalizeBaseKey(e);const r=n(e,!0);let o=[];const i=[];for(const n of r){const e=await asyncCall(n.driver.getKeys,n.relativeBase,t);for(const t of e){const e=n.mountpoint+normalizeKey(t);o.some((t=>e.startsWith(t)))||i.push(e)}o=[n.mountpoint,...o.filter((e=>!e.startsWith(n.mountpoint)))]}return e?i.filter((t=>t.startsWith(e)&&"$"!==t[t.length-1])):i.filter((e=>"$"!==e[e.length-1]))},async clear(e,t={}){e=normalizeBaseKey(e),await Promise.all(n(e,!1).map((async e=>{if(e.driver.clear)return asyncCall(e.driver.clear,e.relativeBase,t);if(e.driver.removeItem){const r=await e.driver.getKeys(e.relativeBase||"",t);return Promise.all(r.map((r=>e.driver.removeItem(r,t))))}})))},async dispose(){await Promise.all(Object.values(t.mounts).map((e=>dispose(e))))},watch:async e=>(await(async()=>{if(!t.watching){t.watching=!0;for(const e in t.mounts)t.unwatch[e]=await watch(t.mounts[e],o,e)}})(),t.watchListeners.push(e),async()=>{t.watchListeners=t.watchListeners.filter((t=>t!==e)),0===t.watchListeners.length&&await i()}),async unwatch(){t.watchListeners=[],await i()},mount(e,r){if((e=normalizeBaseKey(e))&&t.mounts[e])throw new Error(`already mounted at ${e}`);return e&&(t.mountpoints.push(e),t.mountpoints.sort(((e,t)=>t.length-e.length))),t.mounts[e]=r,t.watching&&Promise.resolve(watch(r,o,e)).then((r=>{t.unwatch[e]=r})).catch(console.error),s},async unmount(e,r=!0){var n,o;(e=normalizeBaseKey(e))&&t.mounts[e]&&(t.watching&&e in t.unwatch&&(null==(o=(n=t.unwatch)[e])||o.call(n),delete t.unwatch[e]),r&&await dispose(t.mounts[e]),t.mountpoints=t.mountpoints.filter((t=>t!==e)),delete t.mounts[e])},getMount(e=""){e=normalizeKey(e)+":";const t=r(e);return{driver:t.driver,base:t.base}},getMounts(e="",t={}){e=normalizeKey(e);return n(e,t.parents).map((e=>({driver:e.driver,base:e.mountpoint})))},keys:(e,t={})=>s.getKeys(e,t),get:(e,t={})=>s.getItem(e,t),set:(e,t,r={})=>s.setItem(e,t,r),has:(e,t={})=>s.hasItem(e,t),del:(e,t={})=>s.removeItem(e,t),remove:(e,t={})=>s.removeItem(e,t)};return s}function watch(e,t,r){return e.watch?e.watch(((e,n)=>t(e,r+n))):()=>{}}async function dispose(e){"function"==typeof e.dispose&&await asyncCall(e.dispose)}function promisifyRequest(e){return new Promise(((t,r)=>{e.oncomplete=e.onsuccess=()=>t(e.result),e.onabort=e.onerror=()=>r(e.error)}))}function createStore(e,t){const r=indexedDB.open(e);r.onupgradeneeded=()=>r.result.createObjectStore(t);const n=promisifyRequest(r);return(e,r)=>n.then((n=>r(n.transaction(t,e).objectStore(t))))}let defaultGetStoreFunc;function defaultGetStore(){return defaultGetStoreFunc||(defaultGetStoreFunc=createStore("keyval-store","keyval")),defaultGetStoreFunc}function get(e,t=defaultGetStore()){return t("readonly",(t=>promisifyRequest(t.get(e))))}function set$1(e,t,r=defaultGetStore()){return r("readwrite",(r=>(r.put(t,e),promisifyRequest(r.transaction))))}function del(e,t=defaultGetStore()){return t("readwrite",(t=>(t.delete(e),promisifyRequest(t.transaction))))}function clear(e=defaultGetStore()){return e("readwrite",(e=>(e.clear(),promisifyRequest(e.transaction))))}function eachCursor(e,t){return e.openCursor().onsuccess=function(){this.result&&(t(this.result),this.result.continue())},promisifyRequest(e.transaction)}function keys(e=defaultGetStore()){return e("readonly",(e=>{if(e.getAllKeys)return promisifyRequest(e.getAllKeys());const t=[];return eachCursor(e,(e=>t.push(e.key))).then((()=>t))}))}const JSONStringify=e=>JSON.stringify(e,((e,t)=>"bigint"==typeof t?t.toString()+"n":t)),JSONParse=e=>{const t=e.replace(/([\[:])?(\d{17,}|(?:[9](?:[1-9]07199254740991|0[1-9]7199254740991|00[8-9]199254740991|007[2-9]99254740991|007199[3-9]54740991|0071992[6-9]4740991|00719925[5-9]740991|007199254[8-9]40991|0071992547[5-9]0991|00719925474[1-9]991|00719925474099[2-9])))([,\}\]])/g,'$1"$2n"$3');return JSON.parse(t,((e,t)=>"string"==typeof t&&t.match(/^\d+n$/)?BigInt(t.substring(0,t.length-1)):t))};function safeJsonParse$2(e){if("string"!=typeof e)throw new Error("Cannot safe json parse value of type "+typeof e);try{return JSONParse(e)}catch(t){return e}}function safeJsonStringify$2(e){return"string"==typeof e?e:JSONStringify(e)||""}const x$7="idb-keyval";var z$8=(e={})=>{const t=e.base&&e.base.length>0?`${e.base}:`:"",r=e=>t+e;let n;return e.dbName&&e.storeName&&(n=createStore(e.dbName,e.storeName)),{name:x$7,options:e,hasItem:async e=>!(typeof(await get(r(e),n))>"u"),getItem:async e=>await get(r(e),n)??null,setItem:(e,t)=>set$1(r(e),t,n),removeItem:e=>del(r(e),n),getKeys:()=>keys(n),clear:()=>clear(n)}};const D$6="WALLET_CONNECT_V2_INDEXED_DB",E$6="keyvaluestorage";let _$8=class{constructor(){this.indexedDb=createStorage({driver:z$8({dbName:D$6,storeName:E$6})})}async getKeys(){return this.indexedDb.getKeys()}async getEntries(){return(await this.indexedDb.getItems(await this.indexedDb.getKeys())).map((e=>[e.key,e.value]))}async getItem(e){const t=await this.indexedDb.getItem(e);if(null!==t)return t}async setItem(e,t){await this.indexedDb.setItem(e,safeJsonStringify$2(t))}async removeItem(e){await this.indexedDb.removeItem(e)}};var l$8=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global$1<"u"?global$1:typeof self<"u"?self:{},c$7={exports:{}};function k$6(e){var t;return[e[0],safeJsonParse$2(null!=(t=e[1])?t:"")]}!function(){let e;function t(){}e=t,e.prototype.getItem=function(e){return this.hasOwnProperty(e)?String(this[e]):null},e.prototype.setItem=function(e,t){this[e]=String(t)},e.prototype.removeItem=function(e){delete this[e]},e.prototype.clear=function(){const e=this;Object.keys(e).forEach((function(t){e[t]=void 0,delete e[t]}))},e.prototype.key=function(e){return e=e||0,Object.keys(this)[e]},e.prototype.__defineGetter__("length",(function(){return Object.keys(this).length})),typeof l$8<"u"&&l$8.localStorage?c$7.exports=l$8.localStorage:typeof window<"u"&&window.localStorage?c$7.exports=window.localStorage:c$7.exports=new t}();let K$3=class{constructor(){this.localStorage=c$7.exports}async getKeys(){return Object.keys(this.localStorage)}async getEntries(){return Object.entries(this.localStorage).map(k$6)}async getItem(e){const t=this.localStorage.getItem(e);if(null!==t)return safeJsonParse$2(t)}async setItem(e,t){this.localStorage.setItem(e,safeJsonStringify$2(t))}async removeItem(e){this.localStorage.removeItem(e)}};const N$4="wc_storage_version",y$8=1,O$6=async(e,t,r)=>{const n=N$4,o=await t.getItem(n);if(o&&o>=y$8)return void r(t);const i=await e.getKeys();if(!i.length)return void r(t);const a=[];for(;i.length;){const r=i.shift();if(!r)continue;const n=r.toLowerCase();if(n.includes("wc@")||n.includes("walletconnect")||n.includes("wc_")||n.includes("wallet_connect")){const n=await e.getItem(r);await t.setItem(r,n),a.push(r)}}await t.setItem(n,y$8),r(t),j$3(e,a)},j$3=async(e,t)=>{t.length&&t.forEach((async t=>{await e.removeItem(t)}))};let h$7=class{constructor(){this.initialized=!1,this.setInitialized=e=>{this.storage=e,this.initialized=!0};const e=new K$3;this.storage=e;try{const t=new _$8;O$6(e,t,this.setInitialized)}catch{this.initialized=!0}}async getKeys(){return await this.initialize(),this.storage.getKeys()}async getEntries(){return await this.initialize(),this.storage.getEntries()}async getItem(e){return await this.initialize(),this.storage.getItem(e)}async setItem(e,t){return await this.initialize(),this.storage.setItem(e,t)}async removeItem(e){return await this.initialize(),this.storage.removeItem(e)}async initialize(){this.initialized||await new Promise((e=>{const t=setInterval((()=>{this.initialized&&(clearInterval(t),e())}),20)}))}};const format$1=quickFormatUnescaped;var browser$3=pino;const _console=pfGlobalThisOrFallback().console||{},stdSerializers={mapHttpRequest:mock,mapHttpResponse:mock,wrapRequestSerializer:passthrough,wrapResponseSerializer:passthrough,wrapErrorSerializer:passthrough,req:mock,res:mock,err:asErrValue};function shouldSerialize(e,t){if(Array.isArray(e)){return e.filter((function(e){return"!stdSerializers.err"!==e}))}return!0===e&&Object.keys(t)}function pino(e){(e=e||{}).browser=e.browser||{};const t=e.browser.transmit;if(t&&"function"!=typeof t.send)throw Error("pino: transmit option must have a send function");const r=e.browser.write||_console;e.browser.write&&(e.browser.asObject=!0);const n=e.serializers||{},o=shouldSerialize(e.browser.serialize,n);let i=e.browser.serialize;Array.isArray(e.browser.serialize)&&e.browser.serialize.indexOf("!stdSerializers.err")>-1&&(i=!1);"function"==typeof r&&(r.error=r.fatal=r.warn=r.info=r.debug=r.trace=r),!1===e.enabled&&(e.level="silent");const a=e.level||"info",s=Object.create(r);s.log||(s.log=noop$1),Object.defineProperty(s,"levelVal",{get:function(){return"silent"===this.level?1/0:this.levels.values[this.level]}}),Object.defineProperty(s,"level",{get:function(){return this._level},set:function(e){if("silent"!==e&&!this.levels.values[e])throw Error("unknown level "+e);this._level=e,set(c,s,"error","log"),set(c,s,"fatal","error"),set(c,s,"warn","error"),set(c,s,"info","log"),set(c,s,"debug","log"),set(c,s,"trace","log")}});const c={transmit:t,serialize:o,asObject:e.browser.asObject,levels:["error","fatal","warn","info","debug","trace"],timestamp:getTimeFunction(e)};return s.levels=pino.levels,s.level=a,s.setMaxListeners=s.getMaxListeners=s.emit=s.addListener=s.on=s.prependListener=s.once=s.prependOnceListener=s.removeListener=s.removeAllListeners=s.listeners=s.listenerCount=s.eventNames=s.write=s.flush=noop$1,s.serializers=n,s._serialize=o,s._stdErrSerialize=i,s.child=function(r,i){if(!r)throw new Error("missing bindings for child Pino");i=i||{},o&&r.serializers&&(i.serializers=r.serializers);const a=i.serializers;if(o&&a){var s=Object.assign({},n,a),c=!0===e.browser.serialize?Object.keys(s):o;delete r.serializers,applySerializers([r],c,s,this._stdErrSerialize)}function u(e){this._childLevel=1+(0|e._childLevel),this.error=bind(e,r,"error"),this.fatal=bind(e,r,"fatal"),this.warn=bind(e,r,"warn"),this.info=bind(e,r,"info"),this.debug=bind(e,r,"debug"),this.trace=bind(e,r,"trace"),s&&(this.serializers=s,this._serialize=c),t&&(this._logEvent=createLogEventShape([].concat(e._logEvent.bindings,r)))}return u.prototype=this,new u(this)},t&&(s._logEvent=createLogEventShape()),s}function set(e,t,r,n){const o=Object.getPrototypeOf(t);t[r]=t.levelVal>t.levels.values[r]?noop$1:o[r]?o[r]:_console[r]||_console[n]||noop$1,wrap$1(e,t,r)}function wrap$1(e,t,r){(e.transmit||t[r]!==noop$1)&&(t[r]=function(n){return function(){const o=e.timestamp(),i=new Array(arguments.length),a=Object.getPrototypeOf&&Object.getPrototypeOf(this)===_console?_console:this;for(var s=0;s-1&&n in r&&(e[o][n]=r[n](e[o][n]))}function bind(e,t,r){return function(){const n=new Array(1+arguments.length);n[0]=t;for(var o=1;othis.maxSizeInBytes)throw new Error(`[LinkedList] Value too big to insert into list: ${e} with size ${t.size}`);for(;this.size+t.size>this.maxSizeInBytes;)this.shift();this.head?(this.tail&&(this.tail.next=t),this.tail=t):(this.head=t,this.tail=t),this.lengthInNodes++,this.sizeInBytes+=t.size}shift(){if(!this.head)return;const e=this.head;this.head=this.head.next,this.head||(this.tail=null),this.lengthInNodes--,this.sizeInBytes-=e.size}toArray(){const e=[];let t=this.head;for(;null!==t;)e.push(t.value),t=t.next;return e}get length(){return this.lengthInNodes}get size(){return this.sizeInBytes}toOrderedArray(){return Array.from(this)}[Symbol.iterator](){let e=this.head;return{next:()=>{if(!e)return{done:!0,value:null};const t=e.value;return e=e.next,{done:!1,value:t}}}}},L$5=class{constructor(e,t=l$7){this.level=e??"error",this.levelValue=browser$3.levels.values[this.level],this.MAX_LOG_SIZE_IN_BYTES=t,this.logs=new d$6(this.MAX_LOG_SIZE_IN_BYTES)}forwardToConsole(e,t){t===browser$3.levels.values.error?console.error(e):t===browser$3.levels.values.warn?console.warn(e):t===browser$3.levels.values.debug?console.debug(e):t===browser$3.levels.values.trace?console.trace(e):console.log(e)}appendToLogs(e){this.logs.append(safeJsonStringify$2({timestamp:(new Date).toISOString(),log:e}));const t="string"==typeof e?JSON.parse(e).level:e.level;t>=this.levelValue&&this.forwardToConsole(e,t)}getLogs(){return this.logs}clearLogs(){this.logs=new d$6(this.MAX_LOG_SIZE_IN_BYTES)}getLogArray(){return Array.from(this.logs)}logsToBlob(e){const t=this.getLogArray();return t.push(safeJsonStringify$2({extraMetadata:e})),new Blob(t,{type:"application/json"})}},m$3=class{constructor(e,t=l$7){this.baseChunkLogger=new L$5(e,t)}write(e){this.baseChunkLogger.appendToLogs(e)}getLogs(){return this.baseChunkLogger.getLogs()}clearLogs(){this.baseChunkLogger.clearLogs()}getLogArray(){return this.baseChunkLogger.getLogArray()}logsToBlob(e){return this.baseChunkLogger.logsToBlob(e)}downloadLogsBlobInBrowser(e){const t=URL.createObjectURL(this.logsToBlob(e)),r=document.createElement("a");r.href=t,r.download=`walletconnect-logs-${(new Date).toISOString()}.txt`,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(t)}},B$3=class{constructor(e,t=l$7){this.baseChunkLogger=new L$5(e,t)}write(e){this.baseChunkLogger.appendToLogs(e)}getLogs(){return this.baseChunkLogger.getLogs()}clearLogs(){this.baseChunkLogger.clearLogs()}getLogArray(){return this.baseChunkLogger.getLogArray()}logsToBlob(e){return this.baseChunkLogger.logsToBlob(e)}};var x$6=Object.defineProperty,S$8=Object.defineProperties,_$7=Object.getOwnPropertyDescriptors,p$4=Object.getOwnPropertySymbols,T$5=Object.prototype.hasOwnProperty,z$7=Object.prototype.propertyIsEnumerable,f$6=(e,t,r)=>t in e?x$6(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,i$6=(e,t)=>{for(var r in t||(t={}))T$5.call(t,r)&&f$6(e,r,t[r]);if(p$4)for(var r of p$4(t))z$7.call(t,r)&&f$6(e,r,t[r]);return e},g$6=(e,t)=>S$8(e,_$7(t));function k$5(e){return g$6(i$6({},e),{level:(null==e?void 0:e.level)||c$6.level})}function v$6(e,t=n$9){return e[t]||""}function b$5(e,t,r=n$9){return e[r]=t,e}function y$7(e,t=n$9){let r="";return r=typeof e.bindings>"u"?v$6(e,t):e.bindings().context||"",r}function w$6(e,t,r=n$9){const n=y$7(e,r);return n.trim()?`${n}/${t}`:t}function E$5(e,t,r=n$9){const n=w$6(e,t,r);return b$5(e.child({context:n}),n,r)}function C$7(e){var t,r;const n=new m$3(null==(t=e.opts)?void 0:t.level,e.maxSizeInBytes);return{logger:_i(g$6(i$6({},e.opts),{level:"trace",browser:g$6(i$6({},null==(r=e.opts)?void 0:r.browser),{write:e=>n.write(e)})})),chunkLoggerController:n}}function I$6(e){var t;const r=new B$3(null==(t=e.opts)?void 0:t.level,e.maxSizeInBytes);return{logger:_i(g$6(i$6({},e.opts),{level:"trace"}),r),chunkLoggerController:r}}function A$5(e){return typeof e.loggerOverride<"u"&&"string"!=typeof e.loggerOverride?{logger:e.loggerOverride,chunkLoggerController:null}:typeof window<"u"?C$7(e):I$6(e)}var ed25519={},random={},system={},browser$2={};Object.defineProperty(browser$2,"__esModule",{value:!0}),browser$2.BrowserRandomSource=void 0;const QUOTA=65536;class BrowserRandomSource{constructor(){this.isAvailable=!1,this.isInstantiated=!1;const e="undefined"!=typeof self?self.crypto||self.msCrypto:null;e&&void 0!==e.getRandomValues&&(this._crypto=e,this.isAvailable=!0,this.isInstantiated=!0)}randomBytes(e){if(!this.isAvailable||!this._crypto)throw new Error("Browser random byte generator is not available.");const t=new Uint8Array(e);for(let r=0;r>>16&65535)*n+r*(t>>>16&65535)<<16>>>0)|0},e.add=function(e,t){return e+t|0},e.sub=function(e,t){return e-t|0},e.rotl=function(e,t){return e<>>32-t},e.rotr=function(e,t){return e<<32-t|e>>>t},e.isInteger=Number.isInteger||function(e){return"number"==typeof e&&isFinite(e)&&Math.floor(e)===e},e.MAX_SAFE_INTEGER=9007199254740991,e.isSafeInteger=function(t){return e.isInteger(t)&&t>=-e.MAX_SAFE_INTEGER&&t<=e.MAX_SAFE_INTEGER}}(int),Object.defineProperty(binary,"__esModule",{value:!0});var int_1=int;function readInt16BE(e,t){return void 0===t&&(t=0),(e[t+0]<<8|e[t+1])<<16>>16}function readUint16BE(e,t){return void 0===t&&(t=0),(e[t+0]<<8|e[t+1])>>>0}function readInt16LE(e,t){return void 0===t&&(t=0),(e[t+1]<<8|e[t])<<16>>16}function readUint16LE(e,t){return void 0===t&&(t=0),(e[t+1]<<8|e[t])>>>0}function writeUint16BE(e,t,r){return void 0===t&&(t=new Uint8Array(2)),void 0===r&&(r=0),t[r+0]=e>>>8,t[r+1]=e>>>0,t}function writeUint16LE(e,t,r){return void 0===t&&(t=new Uint8Array(2)),void 0===r&&(r=0),t[r+0]=e>>>0,t[r+1]=e>>>8,t}function readInt32BE(e,t){return void 0===t&&(t=0),e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3]}function readUint32BE(e,t){return void 0===t&&(t=0),(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0}function readInt32LE(e,t){return void 0===t&&(t=0),e[t+3]<<24|e[t+2]<<16|e[t+1]<<8|e[t]}function readUint32LE(e,t){return void 0===t&&(t=0),(e[t+3]<<24|e[t+2]<<16|e[t+1]<<8|e[t])>>>0}function writeUint32BE(e,t,r){return void 0===t&&(t=new Uint8Array(4)),void 0===r&&(r=0),t[r+0]=e>>>24,t[r+1]=e>>>16,t[r+2]=e>>>8,t[r+3]=e>>>0,t}function writeUint32LE(e,t,r){return void 0===t&&(t=new Uint8Array(4)),void 0===r&&(r=0),t[r+0]=e>>>0,t[r+1]=e>>>8,t[r+2]=e>>>16,t[r+3]=e>>>24,t}function readInt64BE(e,t){void 0===t&&(t=0);var r=readInt32BE(e,t),n=readInt32BE(e,t+4);return 4294967296*r+n-4294967296*(n>>31)}function readUint64BE(e,t){return void 0===t&&(t=0),4294967296*readUint32BE(e,t)+readUint32BE(e,t+4)}function readInt64LE(e,t){void 0===t&&(t=0);var r=readInt32LE(e,t);return 4294967296*readInt32LE(e,t+4)+r-4294967296*(r>>31)}function readUint64LE(e,t){void 0===t&&(t=0);var r=readUint32LE(e,t);return 4294967296*readUint32LE(e,t+4)+r}function writeUint64BE(e,t,r){return void 0===t&&(t=new Uint8Array(8)),void 0===r&&(r=0),writeUint32BE(e/4294967296>>>0,t,r),writeUint32BE(e>>>0,t,r+4),t}function writeUint64LE(e,t,r){return void 0===t&&(t=new Uint8Array(8)),void 0===r&&(r=0),writeUint32LE(e>>>0,t,r),writeUint32LE(e/4294967296>>>0,t,r+4),t}function readUintBE(e,t,r){if(void 0===r&&(r=0),e%8!=0)throw new Error("readUintBE supports only bitLengths divisible by 8");if(e/8>t.length-r)throw new Error("readUintBE: array is too short for the given bitLength");for(var n=0,o=1,i=e/8+r-1;i>=r;i--)n+=t[i]*o,o*=256;return n}function readUintLE(e,t,r){if(void 0===r&&(r=0),e%8!=0)throw new Error("readUintLE supports only bitLengths divisible by 8");if(e/8>t.length-r)throw new Error("readUintLE: array is too short for the given bitLength");for(var n=0,o=1,i=r;i=n;i--)r[i]=t/o&255,o*=256;return r}function writeUintLE(e,t,r,n){if(void 0===r&&(r=new Uint8Array(e/8)),void 0===n&&(n=0),e%8!=0)throw new Error("writeUintLE supports only bitLengths divisible by 8");if(!int_1.isSafeInteger(t))throw new Error("writeUintLE value must be an integer");for(var o=1,i=n;i256)throw new Error("randomString charset is too long");let s="";const c=r.length,u=256-256%c;for(;t>0;){const e=o(Math.ceil(256*t/u),a);for(let n=0;n0;n++){const o=e[n];o0){for(;this._bufferLength0;)this._buffer[this._bufferLength++]=t[n++],r--;this._bufferLength===this.blockSize&&(i(this._tempHi,this._tempLo,this._stateHi,this._stateLo,this._buffer,0,this.blockSize),this._bufferLength=0)}for(r>=this.blockSize&&(n=i(this._tempHi,this._tempLo,this._stateHi,this._stateLo,t,n,r),r%=this.blockSize);r>0;)this._buffer[this._bufferLength++]=t[n++],r--;return this},n.prototype.finish=function(e){if(!this._finished){var r=this._bytesHashed,n=this._bufferLength,o=r/536870912|0,a=r<<3,s=r%128<112?128:256;this._buffer[n]=128;for(var c=n+1;c0?new Uint8Array(this._buffer):void 0,bufferLength:this._bufferLength,bytesHashed:this._bytesHashed}},n.prototype.restoreState=function(e){return this._stateHi.set(e.stateHi),this._stateLo.set(e.stateLo),this._bufferLength=e.bufferLength,e.buffer&&this._buffer.set(e.buffer),this._bytesHashed=e.bytesHashed,this._finished=!1,this},n.prototype.cleanSavedState=function(e){r.wipe(e.stateHi),r.wipe(e.stateLo),e.buffer&&r.wipe(e.buffer),e.bufferLength=0,e.bytesHashed=0},n}();e.SHA512=n;var o=new Int32Array([1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591]);function i(e,r,n,i,a,s,c){for(var u,l,d,f,h,p,y,m,g=n[0],b=n[1],v=n[2],w=n[3],_=n[4],I=n[5],T=n[6],k=n[7],$=i[0],S=i[1],A=i[2],E=i[3],C=i[4],R=i[5],O=i[6],N=i[7];c>=128;){for(var P=0;P<16;P++){var M=8*P+s;e[P]=t.readUint32BE(a,M),r[P]=t.readUint32BE(a,M+4)}for(P=0;P<80;P++){var B,D,x=g,L=b,U=v,j=w,F=_,q=I,K=T,H=$,G=S,z=A,V=E,W=C,Q=R,Y=O;if(h=65535&(l=N),p=l>>>16,y=65535&(u=k),m=u>>>16,h+=65535&(l=(C>>>14|_<<18)^(C>>>18|_<<14)^(_>>>9|C<<23)),p+=l>>>16,y+=65535&(u=(_>>>14|C<<18)^(_>>>18|C<<14)^(C>>>9|_<<23)),m+=u>>>16,h+=65535&(l=C&R^~C&O),p+=l>>>16,y+=65535&(u=_&I^~_&T),m+=u>>>16,u=o[2*P],h+=65535&(l=o[2*P+1]),p+=l>>>16,y+=65535&u,m+=u>>>16,u=e[P%16],p+=(l=r[P%16])>>>16,y+=65535&u,m+=u>>>16,y+=(p+=(h+=65535&l)>>>16)>>>16,h=65535&(l=f=65535&h|p<<16),p=l>>>16,y=65535&(u=d=65535&y|(m+=y>>>16)<<16),m=u>>>16,h+=65535&(l=($>>>28|g<<4)^(g>>>2|$<<30)^(g>>>7|$<<25)),p+=l>>>16,y+=65535&(u=(g>>>28|$<<4)^($>>>2|g<<30)^($>>>7|g<<25)),m+=u>>>16,p+=(l=$&S^$&A^S&A)>>>16,y+=65535&(u=g&b^g&v^b&v),m+=u>>>16,B=65535&(y+=(p+=(h+=65535&l)>>>16)>>>16)|(m+=y>>>16)<<16,D=65535&h|p<<16,h=65535&(l=V),p=l>>>16,y=65535&(u=j),m=u>>>16,p+=(l=f)>>>16,y+=65535&(u=d),m+=u>>>16,b=x,v=L,w=U,_=j=65535&(y+=(p+=(h+=65535&l)>>>16)>>>16)|(m+=y>>>16)<<16,I=F,T=q,k=K,g=B,S=H,A=G,E=z,C=V=65535&h|p<<16,R=W,O=Q,N=Y,$=D,P%16==15)for(M=0;M<16;M++)u=e[M],h=65535&(l=r[M]),p=l>>>16,y=65535&u,m=u>>>16,u=e[(M+9)%16],h+=65535&(l=r[(M+9)%16]),p+=l>>>16,y+=65535&u,m+=u>>>16,d=e[(M+1)%16],h+=65535&(l=((f=r[(M+1)%16])>>>1|d<<31)^(f>>>8|d<<24)^(f>>>7|d<<25)),p+=l>>>16,y+=65535&(u=(d>>>1|f<<31)^(d>>>8|f<<24)^d>>>7),m+=u>>>16,d=e[(M+14)%16],p+=(l=((f=r[(M+14)%16])>>>19|d<<13)^(d>>>29|f<<3)^(f>>>6|d<<26))>>>16,y+=65535&(u=(d>>>19|f<<13)^(f>>>29|d<<3)^d>>>6),m+=u>>>16,m+=(y+=(p+=(h+=65535&l)>>>16)>>>16)>>>16,e[M]=65535&y|m<<16,r[M]=65535&h|p<<16}h=65535&(l=$),p=l>>>16,y=65535&(u=g),m=u>>>16,u=n[0],p+=(l=i[0])>>>16,y+=65535&u,m+=u>>>16,m+=(y+=(p+=(h+=65535&l)>>>16)>>>16)>>>16,n[0]=g=65535&y|m<<16,i[0]=$=65535&h|p<<16,h=65535&(l=S),p=l>>>16,y=65535&(u=b),m=u>>>16,u=n[1],p+=(l=i[1])>>>16,y+=65535&u,m+=u>>>16,m+=(y+=(p+=(h+=65535&l)>>>16)>>>16)>>>16,n[1]=b=65535&y|m<<16,i[1]=S=65535&h|p<<16,h=65535&(l=A),p=l>>>16,y=65535&(u=v),m=u>>>16,u=n[2],p+=(l=i[2])>>>16,y+=65535&u,m+=u>>>16,m+=(y+=(p+=(h+=65535&l)>>>16)>>>16)>>>16,n[2]=v=65535&y|m<<16,i[2]=A=65535&h|p<<16,h=65535&(l=E),p=l>>>16,y=65535&(u=w),m=u>>>16,u=n[3],p+=(l=i[3])>>>16,y+=65535&u,m+=u>>>16,m+=(y+=(p+=(h+=65535&l)>>>16)>>>16)>>>16,n[3]=w=65535&y|m<<16,i[3]=E=65535&h|p<<16,h=65535&(l=C),p=l>>>16,y=65535&(u=_),m=u>>>16,u=n[4],p+=(l=i[4])>>>16,y+=65535&u,m+=u>>>16,m+=(y+=(p+=(h+=65535&l)>>>16)>>>16)>>>16,n[4]=_=65535&y|m<<16,i[4]=C=65535&h|p<<16,h=65535&(l=R),p=l>>>16,y=65535&(u=I),m=u>>>16,u=n[5],p+=(l=i[5])>>>16,y+=65535&u,m+=u>>>16,m+=(y+=(p+=(h+=65535&l)>>>16)>>>16)>>>16,n[5]=I=65535&y|m<<16,i[5]=R=65535&h|p<<16,h=65535&(l=O),p=l>>>16,y=65535&(u=T),m=u>>>16,u=n[6],p+=(l=i[6])>>>16,y+=65535&u,m+=u>>>16,m+=(y+=(p+=(h+=65535&l)>>>16)>>>16)>>>16,n[6]=T=65535&y|m<<16,i[6]=O=65535&h|p<<16,h=65535&(l=N),p=l>>>16,y=65535&(u=k),m=u>>>16,u=n[7],p+=(l=i[7])>>>16,y+=65535&u,m+=u>>>16,m+=(y+=(p+=(h+=65535&l)>>>16)>>>16)>>>16,n[7]=k=65535&y|m<<16,i[7]=N=65535&h|p<<16,s+=128,c-=128}return s}e.hash=function(e){var t=new n;t.update(e);var r=t.digest();return t.clean(),r}}(sha512),function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.convertSecretKeyToX25519=e.convertPublicKeyToX25519=e.verify=e.sign=e.extractPublicKeyFromSecretKey=e.generateKeyPair=e.generateKeyPairFromSeed=e.SEED_LENGTH=e.SECRET_KEY_LENGTH=e.PUBLIC_KEY_LENGTH=e.SIGNATURE_LENGTH=void 0;const t=random,r=sha512,n=wipe$1;function o(e){const t=new Float64Array(16);if(e)for(let r=0;r>16&1),r[t-1]&=65535;r[15]=n[15]-32767-(r[14]>>16&1);const e=r[15]>>16&1;r[14]&=65535,p(n,r,1-e)}for(let o=0;o<16;o++)e[2*o]=255&n[o],e[2*o+1]=n[o]>>8}function m(e,t){let r=0;for(let n=0;n<32;n++)r|=e[n]^t[n];return(1&r-1>>>8)-1}function g(e,t){const r=new Uint8Array(32),n=new Uint8Array(32);return y(r,e),y(n,t),m(r,n)}function b(e){const t=new Uint8Array(32);return y(t,e),1&t[0]}function v(e,t,r){for(let n=0;n<16;n++)e[n]=t[n]+r[n]}function w(e,t,r){for(let n=0;n<16;n++)e[n]=t[n]-r[n]}function _(e,t,r){let n,o,i=0,a=0,s=0,c=0,u=0,l=0,d=0,f=0,h=0,p=0,y=0,m=0,g=0,b=0,v=0,w=0,_=0,I=0,T=0,k=0,$=0,S=0,A=0,E=0,C=0,R=0,O=0,N=0,P=0,M=0,B=0,D=r[0],x=r[1],L=r[2],U=r[3],j=r[4],F=r[5],q=r[6],K=r[7],H=r[8],G=r[9],z=r[10],V=r[11],W=r[12],Q=r[13],Y=r[14],X=r[15];n=t[0],i+=n*D,a+=n*x,s+=n*L,c+=n*U,u+=n*j,l+=n*F,d+=n*q,f+=n*K,h+=n*H,p+=n*G,y+=n*z,m+=n*V,g+=n*W,b+=n*Q,v+=n*Y,w+=n*X,n=t[1],a+=n*D,s+=n*x,c+=n*L,u+=n*U,l+=n*j,d+=n*F,f+=n*q,h+=n*K,p+=n*H,y+=n*G,m+=n*z,g+=n*V,b+=n*W,v+=n*Q,w+=n*Y,_+=n*X,n=t[2],s+=n*D,c+=n*x,u+=n*L,l+=n*U,d+=n*j,f+=n*F,h+=n*q,p+=n*K,y+=n*H,m+=n*G,g+=n*z,b+=n*V,v+=n*W,w+=n*Q,_+=n*Y,I+=n*X,n=t[3],c+=n*D,u+=n*x,l+=n*L,d+=n*U,f+=n*j,h+=n*F,p+=n*q,y+=n*K,m+=n*H,g+=n*G,b+=n*z,v+=n*V,w+=n*W,_+=n*Q,I+=n*Y,T+=n*X,n=t[4],u+=n*D,l+=n*x,d+=n*L,f+=n*U,h+=n*j,p+=n*F,y+=n*q,m+=n*K,g+=n*H,b+=n*G,v+=n*z,w+=n*V,_+=n*W,I+=n*Q,T+=n*Y,k+=n*X,n=t[5],l+=n*D,d+=n*x,f+=n*L,h+=n*U,p+=n*j,y+=n*F,m+=n*q,g+=n*K,b+=n*H,v+=n*G,w+=n*z,_+=n*V,I+=n*W,T+=n*Q,k+=n*Y,$+=n*X,n=t[6],d+=n*D,f+=n*x,h+=n*L,p+=n*U,y+=n*j,m+=n*F,g+=n*q,b+=n*K,v+=n*H,w+=n*G,_+=n*z,I+=n*V,T+=n*W,k+=n*Q,$+=n*Y,S+=n*X,n=t[7],f+=n*D,h+=n*x,p+=n*L,y+=n*U,m+=n*j,g+=n*F,b+=n*q,v+=n*K,w+=n*H,_+=n*G,I+=n*z,T+=n*V,k+=n*W,$+=n*Q,S+=n*Y,A+=n*X,n=t[8],h+=n*D,p+=n*x,y+=n*L,m+=n*U,g+=n*j,b+=n*F,v+=n*q,w+=n*K,_+=n*H,I+=n*G,T+=n*z,k+=n*V,$+=n*W,S+=n*Q,A+=n*Y,E+=n*X,n=t[9],p+=n*D,y+=n*x,m+=n*L,g+=n*U,b+=n*j,v+=n*F,w+=n*q,_+=n*K,I+=n*H,T+=n*G,k+=n*z,$+=n*V,S+=n*W,A+=n*Q,E+=n*Y,C+=n*X,n=t[10],y+=n*D,m+=n*x,g+=n*L,b+=n*U,v+=n*j,w+=n*F,_+=n*q,I+=n*K,T+=n*H,k+=n*G,$+=n*z,S+=n*V,A+=n*W,E+=n*Q,C+=n*Y,R+=n*X,n=t[11],m+=n*D,g+=n*x,b+=n*L,v+=n*U,w+=n*j,_+=n*F,I+=n*q,T+=n*K,k+=n*H,$+=n*G,S+=n*z,A+=n*V,E+=n*W,C+=n*Q,R+=n*Y,O+=n*X,n=t[12],g+=n*D,b+=n*x,v+=n*L,w+=n*U,_+=n*j,I+=n*F,T+=n*q,k+=n*K,$+=n*H,S+=n*G,A+=n*z,E+=n*V,C+=n*W,R+=n*Q,O+=n*Y,N+=n*X,n=t[13],b+=n*D,v+=n*x,w+=n*L,_+=n*U,I+=n*j,T+=n*F,k+=n*q,$+=n*K,S+=n*H,A+=n*G,E+=n*z,C+=n*V,R+=n*W,O+=n*Q,N+=n*Y,P+=n*X,n=t[14],v+=n*D,w+=n*x,_+=n*L,I+=n*U,T+=n*j,k+=n*F,$+=n*q,S+=n*K,A+=n*H,E+=n*G,C+=n*z,R+=n*V,O+=n*W,N+=n*Q,P+=n*Y,M+=n*X,n=t[15],w+=n*D,_+=n*x,I+=n*L,T+=n*U,k+=n*j,$+=n*F,S+=n*q,A+=n*K,E+=n*H,C+=n*G,R+=n*z,O+=n*V,N+=n*W,P+=n*Q,M+=n*Y,B+=n*X,i+=38*_,a+=38*I,s+=38*T,c+=38*k,u+=38*$,l+=38*S,d+=38*A,f+=38*E,h+=38*C,p+=38*R,y+=38*O,m+=38*N,g+=38*P,b+=38*M,v+=38*B,o=1,n=i+o+65535,o=Math.floor(n/65536),i=n-65536*o,n=a+o+65535,o=Math.floor(n/65536),a=n-65536*o,n=s+o+65535,o=Math.floor(n/65536),s=n-65536*o,n=c+o+65535,o=Math.floor(n/65536),c=n-65536*o,n=u+o+65535,o=Math.floor(n/65536),u=n-65536*o,n=l+o+65535,o=Math.floor(n/65536),l=n-65536*o,n=d+o+65535,o=Math.floor(n/65536),d=n-65536*o,n=f+o+65535,o=Math.floor(n/65536),f=n-65536*o,n=h+o+65535,o=Math.floor(n/65536),h=n-65536*o,n=p+o+65535,o=Math.floor(n/65536),p=n-65536*o,n=y+o+65535,o=Math.floor(n/65536),y=n-65536*o,n=m+o+65535,o=Math.floor(n/65536),m=n-65536*o,n=g+o+65535,o=Math.floor(n/65536),g=n-65536*o,n=b+o+65535,o=Math.floor(n/65536),b=n-65536*o,n=v+o+65535,o=Math.floor(n/65536),v=n-65536*o,n=w+o+65535,o=Math.floor(n/65536),w=n-65536*o,i+=o-1+37*(o-1),o=1,n=i+o+65535,o=Math.floor(n/65536),i=n-65536*o,n=a+o+65535,o=Math.floor(n/65536),a=n-65536*o,n=s+o+65535,o=Math.floor(n/65536),s=n-65536*o,n=c+o+65535,o=Math.floor(n/65536),c=n-65536*o,n=u+o+65535,o=Math.floor(n/65536),u=n-65536*o,n=l+o+65535,o=Math.floor(n/65536),l=n-65536*o,n=d+o+65535,o=Math.floor(n/65536),d=n-65536*o,n=f+o+65535,o=Math.floor(n/65536),f=n-65536*o,n=h+o+65535,o=Math.floor(n/65536),h=n-65536*o,n=p+o+65535,o=Math.floor(n/65536),p=n-65536*o,n=y+o+65535,o=Math.floor(n/65536),y=n-65536*o,n=m+o+65535,o=Math.floor(n/65536),m=n-65536*o,n=g+o+65535,o=Math.floor(n/65536),g=n-65536*o,n=b+o+65535,o=Math.floor(n/65536),b=n-65536*o,n=v+o+65535,o=Math.floor(n/65536),v=n-65536*o,n=w+o+65535,o=Math.floor(n/65536),w=n-65536*o,i+=o-1+37*(o-1),e[0]=i,e[1]=a,e[2]=s,e[3]=c,e[4]=u,e[5]=l,e[6]=d,e[7]=f,e[8]=h,e[9]=p,e[10]=y,e[11]=m,e[12]=g,e[13]=b,e[14]=v,e[15]=w}function I(e,t){_(e,t,t)}function T(e,t){const r=o();let n;for(n=0;n<16;n++)r[n]=t[n];for(n=253;n>=0;n--)I(r,r),2!==n&&4!==n&&_(r,r,t);for(n=0;n<16;n++)e[n]=r[n]}function k(e,t){const r=o(),n=o(),i=o(),a=o(),s=o(),u=o(),l=o(),d=o(),f=o();w(r,e[1],e[0]),w(f,t[1],t[0]),_(r,r,f),v(n,e[0],e[1]),v(f,t[0],t[1]),_(n,n,f),_(i,e[3],t[3]),_(i,i,c),_(a,e[2],t[2]),v(a,a,a),w(s,n,r),w(u,a,i),v(l,a,i),v(d,n,r),_(e[0],s,u),_(e[1],d,l),_(e[2],l,u),_(e[3],s,d)}function $(e,t,r){for(let n=0;n<4;n++)p(e[n],t[n],r)}function S(e,t){const r=o(),n=o(),i=o();T(i,t[2]),_(r,t[0],i),_(n,t[1],i),y(e,n),e[31]^=b(r)<<7}function A(e,t,r){f(e[0],i),f(e[1],a),f(e[2],a),f(e[3],i);for(let n=255;n>=0;--n){const o=r[n/8|0]>>(7&n)&1;$(e,t,o),k(t,e),k(e,e),$(e,t,o)}}function E(e,t){const r=[o(),o(),o(),o()];f(r[0],u),f(r[1],l),f(r[2],a),_(r[3],u,l),A(e,r,t)}function C(t){if(t.length!==e.SEED_LENGTH)throw new Error(`ed25519: seed must be ${e.SEED_LENGTH} bytes`);const n=(0,r.hash)(t);n[0]&=248,n[31]&=127,n[31]|=64;const i=new Uint8Array(32),a=[o(),o(),o(),o()];E(a,n),S(i,a);const s=new Uint8Array(64);return s.set(t),s.set(i,32),{publicKey:i,secretKey:s}}e.generateKeyPairFromSeed=C,e.generateKeyPair=function(e){const r=(0,t.randomBytes)(32,e),o=C(r);return(0,n.wipe)(r),o},e.extractPublicKeyFromSecretKey=function(t){if(t.length!==e.SECRET_KEY_LENGTH)throw new Error(`ed25519: secret key must be ${e.SECRET_KEY_LENGTH} bytes`);return new Uint8Array(t.subarray(32))};const R=new Float64Array([237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16]);function O(e,t){let r,n,o,i;for(n=63;n>=32;--n){for(r=0,o=n-32,i=n-12;o>4)*R[o],r=t[o]>>8,t[o]&=255;for(o=0;o<32;o++)t[o]-=r*R[o];for(n=0;n<32;n++)t[n+1]+=t[n]>>8,e[n]=255&t[n]}function N(e){const t=new Float64Array(64);for(let r=0;r<64;r++)t[r]=e[r];for(let r=0;r<64;r++)e[r]=0;O(e,t)}function P(e,t){const r=o(),n=o(),c=o(),u=o(),l=o(),h=o(),p=o();return f(e[2],a),function(e,t){for(let r=0;r<16;r++)e[r]=t[2*r]+(t[2*r+1]<<8);e[15]&=32767}(e[1],t),I(c,e[1]),_(u,c,s),w(c,c,e[2]),v(u,e[2],u),I(l,u),I(h,l),_(p,h,l),_(r,p,c),_(r,r,u),function(e,t){const r=o();let n;for(n=0;n<16;n++)r[n]=t[n];for(n=250;n>=0;n--)I(r,r),1!==n&&_(r,r,t);for(n=0;n<16;n++)e[n]=r[n]}(r,r),_(r,r,c),_(r,r,u),_(r,r,u),_(e[0],r,u),I(n,e[0]),_(n,n,u),g(n,c)&&_(e[0],e[0],d),I(n,e[0]),_(n,n,u),g(n,c)?-1:(b(e[0])===t[31]>>7&&w(e[0],i,e[0]),_(e[3],e[0],e[1]),0)}e.sign=function(e,t){const n=new Float64Array(64),i=[o(),o(),o(),o()],a=(0,r.hash)(e.subarray(0,32));a[0]&=248,a[31]&=127,a[31]|=64;const s=new Uint8Array(64);s.set(a.subarray(32),32);const c=new r.SHA512;c.update(s.subarray(32)),c.update(t);const u=c.digest();c.clean(),N(u),E(i,u),S(s,i),c.reset(),c.update(s.subarray(0,32)),c.update(e.subarray(32)),c.update(t);const l=c.digest();N(l);for(let r=0;r<32;r++)n[r]=u[r];for(let r=0;r<32;r++)for(let e=0;e<32;e++)n[r+e]+=l[r]*a[e];return O(s.subarray(32),n),s},e.verify=function(t,n,i){const a=new Uint8Array(32),s=[o(),o(),o(),o()],c=[o(),o(),o(),o()];if(i.length!==e.SIGNATURE_LENGTH)throw new Error(`ed25519: signature must be ${e.SIGNATURE_LENGTH} bytes`);if(P(c,t))return!1;const u=new r.SHA512;u.update(i.subarray(0,32)),u.update(t),u.update(n);const l=u.digest();return N(l),A(s,c,l),E(c,i.subarray(32)),k(s,c),S(a,s),!m(i,a)},e.convertPublicKeyToX25519=function(e){let t=[o(),o(),o(),o()];if(P(t,e))throw new Error("Ed25519: invalid public key");let r=o(),n=o(),i=t[1];v(r,a,i),w(n,a,i),T(n,n),_(r,r,n);let s=new Uint8Array(32);return y(s,r),s},e.convertSecretKeyToX25519=function(e){const t=(0,r.hash)(e.subarray(0,32));t[0]&=248,t[31]&=127,t[31]|=64;const o=new Uint8Array(t.subarray(0,32));return(0,n.wipe)(t),o}}(ed25519);const JWT_IRIDIUM_ALG="EdDSA",JWT_IRIDIUM_TYP="JWT",JWT_DELIMITER=".",JWT_ENCODING="base64url",JSON_ENCODING="utf8",DATA_ENCODING="utf8",DID_DELIMITER=":",DID_PREFIX="did",DID_METHOD="key",MULTICODEC_ED25519_ENCODING="base58btc",MULTICODEC_ED25519_BASE="z",MULTICODEC_ED25519_HEADER="K36",KEY_PAIR_SEED_LENGTH=32;function allocUnsafe$1(e=0){return null!=globalThis.Buffer&&null!=globalThis.Buffer.allocUnsafe?globalThis.Buffer.allocUnsafe(e):new Uint8Array(e)}function concat(e,t){t||(t=e.reduce(((e,t)=>e+t.length),0));const r=allocUnsafe$1(t);let n=0;for(const o of e)r.set(o,n),n+=o.length;return r}function base$3(e,t){if(e.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n>>0,a=new Uint8Array(i);e[t];){var l=r[e.charCodeAt(t)];if(255===l)return;for(var d=0,f=i-1;(0!==l||d>>0,a[f]=l%256>>>0,l=l/256>>>0;if(0!==l)throw new Error("Non-zero carry");o=d,t++}if(" "!==e[t]){for(var h=i-o;h!==i&&0===a[h];)h++;for(var p=new Uint8Array(n+(i-h)),y=n;h!==i;)p[y++]=a[h++];return p}}}return{encode:function(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(0===t.length)return"";for(var r=0,n=0,o=0,i=t.length;o!==i&&0===t[o];)o++,r++;for(var a=(i-o)*l+1>>>0,u=new Uint8Array(a);o!==i;){for(var d=t[o],f=0,h=a-1;(0!==d||f>>0,u[h]=d%s>>>0,d=d/s>>>0;if(0!==d)throw new Error("Non-zero carry");n=f,o++}for(var p=a-n;p!==a&&0===u[p];)p++;for(var y=c.repeat(r);p{if(e instanceof Uint8Array&&"Uint8Array"===e.constructor.name)return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw new Error("Unknown type, must be binary type")},fromString$2=e=>(new TextEncoder).encode(e),toString$2=e=>(new TextDecoder).decode(e);class Encoder{constructor(e,t,r){this.name=e,this.prefix=t,this.baseEncode=r}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}}class Decoder{constructor(e,t,r){if(this.name=e,this.prefix=t,void 0===t.codePointAt(0))throw new Error("Invalid prefix character");this.prefixCodePoint=t.codePointAt(0),this.baseDecode=r}decode(e){if("string"==typeof e){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}throw Error("Can only multibase decode strings")}or(e){return or$2(this,e)}}class ComposedDecoder{constructor(e){this.decoders=e}or(e){return or$2(this,e)}decode(e){const t=e[0],r=this.decoders[t];if(r)return r.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}}const or$2=(e,t)=>new ComposedDecoder({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}});class Codec{constructor(e,t,r,n){this.name=e,this.prefix=t,this.baseEncode=r,this.baseDecode=n,this.encoder=new Encoder(e,t,r),this.decoder=new Decoder(e,t,n)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}}const from$1=({name:e,prefix:t,encode:r,decode:n})=>new Codec(e,t,r,n),baseX=({prefix:e,name:t,alphabet:r})=>{const{encode:n,decode:o}=_brrp__multiformats_scope_baseX(r,t);return from$1({prefix:e,name:t,encode:n,decode:e=>coerce(o(e))})},decode$2=(e,t,r,n)=>{const o={};for(let l=0;l=8&&(s-=8,a[u++]=255&c>>s)}if(s>=r||255&c<<8-s)throw new SyntaxError("Unexpected end of data");return a},encode$1=(e,t,r)=>{const n="="===t[t.length-1],o=(1<r;)a-=r,i+=t[o&s>>a];if(a&&(i+=t[o&s<from$1({prefix:t,name:e,encode:e=>encode$1(e,n,r),decode:t=>decode$2(t,n,r,e)}),identity=from$1({prefix:"\0",name:"identity",encode:e=>toString$2(e),decode:e=>fromString$2(e)}),identityBase=Object.freeze(Object.defineProperty({__proto__:null,identity:identity},Symbol.toStringTag,{value:"Module"})),base2=rfc4648({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1}),base2$1=Object.freeze(Object.defineProperty({__proto__:null,base2:base2},Symbol.toStringTag,{value:"Module"})),base8=rfc4648({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3}),base8$1=Object.freeze(Object.defineProperty({__proto__:null,base8:base8},Symbol.toStringTag,{value:"Module"})),base10=baseX({prefix:"9",name:"base10",alphabet:"0123456789"}),base10$1=Object.freeze(Object.defineProperty({__proto__:null,base10:base10},Symbol.toStringTag,{value:"Module"})),base16=rfc4648({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),base16upper=rfc4648({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4}),base16$1=Object.freeze(Object.defineProperty({__proto__:null,base16:base16,base16upper:base16upper},Symbol.toStringTag,{value:"Module"})),base32=rfc4648({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),base32upper=rfc4648({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),base32pad=rfc4648({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),base32padupper=rfc4648({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),base32hex=rfc4648({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),base32hexupper=rfc4648({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),base32hexpad=rfc4648({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),base32hexpadupper=rfc4648({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),base32z=rfc4648({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5}),base32$1=Object.freeze(Object.defineProperty({__proto__:null,base32:base32,base32hex:base32hex,base32hexpad:base32hexpad,base32hexpadupper:base32hexpadupper,base32hexupper:base32hexupper,base32pad:base32pad,base32padupper:base32padupper,base32upper:base32upper,base32z:base32z},Symbol.toStringTag,{value:"Module"})),base36=baseX({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),base36upper=baseX({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"}),base36$1=Object.freeze(Object.defineProperty({__proto__:null,base36:base36,base36upper:base36upper},Symbol.toStringTag,{value:"Module"})),base58btc=baseX({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),base58flickr=baseX({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"}),base58=Object.freeze(Object.defineProperty({__proto__:null,base58btc:base58btc,base58flickr:base58flickr},Symbol.toStringTag,{value:"Module"})),base64=rfc4648({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),base64pad=rfc4648({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),base64url=rfc4648({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),base64urlpad=rfc4648({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6}),base64$1=Object.freeze(Object.defineProperty({__proto__:null,base64:base64,base64pad:base64pad,base64url:base64url,base64urlpad:base64urlpad},Symbol.toStringTag,{value:"Module"})),alphabet=Array.from("🚀🪐☄🛰🌌🌑🌒🌓🌔🌕🌖🌗🌘🌍🌏🌎🐉☀💻🖥💾💿😂❤😍🤣😊🙏💕😭😘👍😅👏😁🔥🥰💔💖💙😢🤔😆🙄💪😉☺👌🤗💜😔😎😇🌹🤦🎉💞✌✨🤷😱😌🌸🙌😋💗💚😏💛🙂💓🤩😄😀🖤😃💯🙈👇🎶😒🤭❣😜💋👀😪😑💥🙋😞😩😡🤪👊🥳😥🤤👉💃😳✋😚😝😴🌟😬🙃🍀🌷😻😓⭐✅🥺🌈😈🤘💦✔😣🏃💐☹🎊💘😠☝😕🌺🎂🌻😐🖕💝🙊😹🗣💫💀👑🎵🤞😛🔴😤🌼😫⚽🤙☕🏆🤫👈😮🙆🍻🍃🐶💁😲🌿🧡🎁⚡🌞🎈❌✊👋😰🤨😶🤝🚶💰🍓💢🤟🙁🚨💨🤬✈🎀🍺🤓😙💟🌱😖👶🥴▶➡❓💎💸⬇😨🌚🦋😷🕺⚠🙅😟😵👎🤲🤠🤧📌🔵💅🧐🐾🍒😗🤑🌊🤯🐷☎💧😯💆👆🎤🙇🍑❄🌴💣🐸💌📍🥀🤢👅💡💩👐📸👻🤐🤮🎼🥵🚩🍎🍊👼💍📣🥂"),alphabetBytesToChars=alphabet.reduce(((e,t,r)=>(e[r]=t,e)),[]),alphabetCharsToBytes=alphabet.reduce(((e,t,r)=>(e[t.codePointAt(0)]=r,e)),[]);function encode(e){return e.reduce(((e,t)=>e+=alphabetBytesToChars[t]),"")}function decode$1(e){const t=[];for(const r of e){const e=alphabetCharsToBytes[r.codePointAt(0)];if(void 0===e)throw new Error(`Non-base256emoji character: ${r}`);t.push(e)}return new Uint8Array(t)}const base256emoji=from$1({prefix:"🚀",name:"base256emoji",encode:encode,decode:decode$1}),base256emoji$1=Object.freeze(Object.defineProperty({__proto__:null,base256emoji:base256emoji},Symbol.toStringTag,{value:"Module"}));new TextEncoder,new TextDecoder;const bases={...identityBase,...base2$1,...base8$1,...base10$1,...base16$1,...base32$1,...base36$1,...base58,...base64$1,...base256emoji$1};function createCodec(e,t,r,n){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:r},decoder:{decode:n}}}const string=createCodec("utf8","u",(e=>"u"+new TextDecoder("utf8").decode(e)),(e=>(new TextEncoder).encode(e.substring(1)))),ascii=createCodec("ascii","a",(e=>{let t="a";for(let r=0;r{const t=allocUnsafe$1((e=e.substring(1)).length);for(let r=0;rn.getAttribute(e))).filter((e=>!!e&&t.includes(e)));if(o.length&&o){const e=n.getAttribute("content");if(e)return e}}return""}const n=function(){let t=r("name","og:site_name","og:title","twitter:title");return t||(t=e.title),t}();return{description:r("description","og:description","twitter:description","keywords"),url:t.origin,icons:function(){const r=e.getElementsByTagName("link"),n=[];for(let e=0;e-1){const e=o.getAttribute("href");if(e)if(-1===e.toLowerCase().indexOf("https:")&&-1===e.toLowerCase().indexOf("http:")&&0!==e.indexOf("//")){let r=t.protocol+"//"+t.host;if(0===e.indexOf("/"))r+=e;else{const n=t.pathname.split("/");n.pop();r+=n.join("/")+"/"+e}n.push(r)}else if(0===e.indexOf("//")){const r=t.protocol+e;n.push(r)}else n.push(e)}}return n}(),name:n}}cjs$5.getWindowMetadata=getWindowMetadata$2;var queryString={},strictUriEncode=e=>encodeURIComponent(e).replace(/[!'()*]/g,(e=>`%${e.charCodeAt(0).toString(16).toUpperCase()}`)),token="%[a-f0-9]{2}",singleMatcher=new RegExp("("+token+")|([^%]+?)","gi"),multiMatcher=new RegExp("("+token+")+","gi");function decodeComponents(e,t){try{return[decodeURIComponent(e.join(""))]}catch(o){}if(1===e.length)return e;t=t||1;var r=e.slice(0,t),n=e.slice(t);return Array.prototype.concat.call([],decodeComponents(r),decodeComponents(n))}function decode(e){try{return decodeURIComponent(e)}catch(n){for(var t=e.match(singleMatcher)||[],r=1;r{if("string"!=typeof e||"string"!=typeof t)throw new TypeError("Expected the arguments to be of type `string`");if(""===t)return[e];const r=e.indexOf(t);return-1===r?[e]:[e.slice(0,r),e.slice(r+t.length)]},filterObj=function(e,t){for(var r={},n=Object.keys(e),o=Array.isArray(t),i=0;iNumber(e)-Number(t))).map((t=>e[t])):e}function l(e){const t=e.indexOf("#");return-1!==t&&(e=e.slice(0,t)),e}function d(e){const t=(e=l(e)).indexOf("?");return-1===t?"":e.slice(t+1)}function f(e,t){return t.parseNumbers&&!Number.isNaN(Number(e))&&"string"==typeof e&&""!==e.trim()?e=Number(e):!t.parseBooleans||null===e||"true"!==e.toLowerCase()&&"false"!==e.toLowerCase()||(e="true"===e.toLowerCase()),e}function h(e,t){a((t=Object.assign({decode:!0,sort:!0,arrayFormat:"none",arrayFormatSeparator:",",parseNumbers:!1,parseBooleans:!1},t)).arrayFormatSeparator);const r=function(e){let t;switch(e.arrayFormat){case"index":return(e,r,n)=>{t=/\[(\d*)\]$/.exec(e),e=e.replace(/\[\d*\]$/,""),t?(void 0===n[e]&&(n[e]={}),n[e][t[1]]=r):n[e]=r};case"bracket":return(e,r,n)=>{t=/(\[\])$/.exec(e),e=e.replace(/\[\]$/,""),t?void 0!==n[e]?n[e]=[].concat(n[e],r):n[e]=[r]:n[e]=r};case"colon-list-separator":return(e,r,n)=>{t=/(:list)$/.exec(e),e=e.replace(/:list$/,""),t?void 0!==n[e]?n[e]=[].concat(n[e],r):n[e]=[r]:n[e]=r};case"comma":case"separator":return(t,r,n)=>{const o="string"==typeof r&&r.includes(e.arrayFormatSeparator),i="string"==typeof r&&!o&&c(r,e).includes(e.arrayFormatSeparator);r=i?c(r,e):r;const a=o||i?r.split(e.arrayFormatSeparator).map((t=>c(t,e))):null===r?r:c(r,e);n[t]=a};case"bracket-separator":return(t,r,n)=>{const o=/(\[\])$/.test(t);if(t=t.replace(/\[\]$/,""),!o)return void(n[t]=r?c(r,e):r);const i=null===r?[]:r.split(e.arrayFormatSeparator).map((t=>c(t,e)));void 0!==n[t]?n[t]=[].concat(n[t],i):n[t]=i};default:return(e,t,r)=>{void 0!==r[e]?r[e]=[].concat(r[e],t):r[e]=t}}}(t),o=Object.create(null);if("string"!=typeof e)return o;if(!(e=e.trim().replace(/^[?#&]/,"")))return o;for(const i of e.split("&")){if(""===i)continue;let[e,a]=n(t.decode?i.replace(/\+/g," "):i,"=");a=void 0===a?null:["comma","separator","bracket-separator"].includes(t.arrayFormat)?a:c(a,t),r(c(e,t),a,o)}for(const n of Object.keys(o)){const e=o[n];if("object"==typeof e&&null!==e)for(const r of Object.keys(e))e[r]=f(e[r],t);else o[n]=f(e,t)}return!1===t.sort?o:(!0===t.sort?Object.keys(o).sort():Object.keys(o).sort(t.sort)).reduce(((e,t)=>{const r=o[t];return Boolean(r)&&"object"==typeof r&&!Array.isArray(r)?e[t]=u(r):e[t]=r,e}),Object.create(null))}e.extract=d,e.parse=h,e.stringify=(e,t)=>{if(!e)return"";a((t=Object.assign({encode:!0,strict:!0,arrayFormat:"none",arrayFormatSeparator:","},t)).arrayFormatSeparator);const r=r=>t.skipNull&&null==e[r]||t.skipEmptyString&&""===e[r],n=function(e){switch(e.arrayFormat){case"index":return t=>(r,n)=>{const o=r.length;return void 0===n||e.skipNull&&null===n||e.skipEmptyString&&""===n?r:null===n?[...r,[s(t,e),"[",o,"]"].join("")]:[...r,[s(t,e),"[",s(o,e),"]=",s(n,e)].join("")]};case"bracket":return t=>(r,n)=>void 0===n||e.skipNull&&null===n||e.skipEmptyString&&""===n?r:null===n?[...r,[s(t,e),"[]"].join("")]:[...r,[s(t,e),"[]=",s(n,e)].join("")];case"colon-list-separator":return t=>(r,n)=>void 0===n||e.skipNull&&null===n||e.skipEmptyString&&""===n?r:null===n?[...r,[s(t,e),":list="].join("")]:[...r,[s(t,e),":list=",s(n,e)].join("")];case"comma":case"separator":case"bracket-separator":{const t="bracket-separator"===e.arrayFormat?"[]=":"=";return r=>(n,o)=>void 0===o||e.skipNull&&null===o||e.skipEmptyString&&""===o?n:(o=null===o?"":o,0===n.length?[[s(r,e),t,s(o,e)].join("")]:[[n,s(o,e)].join(e.arrayFormatSeparator)])}default:return t=>(r,n)=>void 0===n||e.skipNull&&null===n||e.skipEmptyString&&""===n?r:null===n?[...r,s(t,e)]:[...r,[s(t,e),"=",s(n,e)].join("")]}}(t),o={};for(const a of Object.keys(e))r(a)||(o[a]=e[a]);const i=Object.keys(o);return!1!==t.sort&&i.sort(t.sort),i.map((r=>{const o=e[r];return void 0===o?"":null===o?s(r,t):Array.isArray(o)?0===o.length&&"bracket-separator"===t.arrayFormat?s(r,t)+"[]":o.reduce(n(r),[]).join("&"):s(r,t)+"="+s(o,t)})).filter((e=>e.length>0)).join("&")},e.parseUrl=(e,t)=>{t=Object.assign({decode:!0},t);const[r,o]=n(e,"#");return Object.assign({url:r.split("?")[0]||"",query:h(d(e),t)},t&&t.parseFragmentIdentifier&&o?{fragmentIdentifier:c(o,t)}:{})},e.stringifyUrl=(t,r)=>{r=Object.assign({encode:!0,strict:!0,[i]:!0},r);const n=l(t.url).split("?")[0]||"",o=e.extract(t.url),a=e.parse(o,{sort:!1}),c=Object.assign(a,t.query);let u=e.stringify(c,r);u&&(u=`?${u}`);let d=function(e){let t="";const r=e.indexOf("#");return-1!==r&&(t=e.slice(r)),t}(t.url);return t.fragmentIdentifier&&(d=`#${r[i]?s(t.fragmentIdentifier,r):t.fragmentIdentifier}`),`${n}${u}${d}`},e.pick=(t,r,n)=>{n=Object.assign({parseFragmentIdentifier:!0,[i]:!1},n);const{url:a,query:s,fragmentIdentifier:c}=e.parseUrl(t,n);return e.stringifyUrl({url:a,query:o(s,r),fragmentIdentifier:c},n)},e.exclude=(t,r,n)=>{const o=Array.isArray(r)?e=>!r.includes(e):(e,t)=>!r(e,t);return e.pick(t,o,n)}}(queryString);var minimalisticAssert=assert$i;function assert$i(e,t){if(!e)throw new Error(t||"Assertion failed")}assert$i.equal=function(e,t,r){if(e!=t)throw new Error(r||"Assertion failed: "+e+" != "+t)};var utils_1=createCommonjsModule((function(e,t){var r=t;function n(e){return 1===e.length?"0"+e:e}function o(e){for(var t="",r=0;r>8,a=255&o;i?r.push(i,a):r.push(a)}return r},r.zero2=n,r.toHex=o,r.encode=function(e,t){return"hex"===t?o(e):e}})),utils_1$1=createCommonjsModule((function(e,t){var r=t;r.assert=minimalisticAssert,r.toArray=utils_1.toArray,r.zero2=utils_1.zero2,r.toHex=utils_1.toHex,r.encode=utils_1.encode,r.getNAF=function(e,t,r){var n=new Array(Math.max(e.bitLength(),r)+1);n.fill(0);for(var o=1<(o>>1)-1?(o>>1)-c:c,i.isubn(s)):s=0,n[a]=s,i.iushrn(1)}return n},r.getJSF=function(e,t){var r=[[],[]];e=e.clone(),t=t.clone();for(var n,o=0,i=0;e.cmpn(-o)>0||t.cmpn(-i)>0;){var a,s,c=e.andln(3)+o&3,u=t.andln(3)+i&3;3===c&&(c=-1),3===u&&(u=-1),a=1&c?3!==(n=e.andln(7)+o&7)&&5!==n||2!==u?c:-c:0,r[0].push(a),s=1&u?3!==(n=t.andln(7)+i&7)&&5!==n||2!==c?u:-u:0,r[1].push(s),2*o===a+1&&(o=1-o),2*i===s+1&&(i=1-i),e.iushrn(1),t.iushrn(1)}return r},r.cachedProperty=function(e,t,r){var n="_"+t;e.prototype[t]=function(){return void 0!==this[n]?this[n]:this[n]=r.call(this)}},r.parseBytes=function(e){return"string"==typeof e?r.toArray(e,"hex"):e},r.intFromLE=function(e){return new BN$o(e,"hex","le")}})),getNAF$2=utils_1$1.getNAF,getJSF$2=utils_1$1.getJSF,assert$1$1=utils_1$1.assert;function BaseCurve$2(e,t){this.type=e,this.p=new BN$o(t.p,16),this.red=t.prime?BN$o.red(t.prime):BN$o.mont(this.p),this.zero=new BN$o(0).toRed(this.red),this.one=new BN$o(1).toRed(this.red),this.two=new BN$o(2).toRed(this.red),this.n=t.n&&new BN$o(t.n,16),this.g=t.g&&this.pointFromJSON(t.g,t.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var r=this.n&&this.p.div(this.n);!r||r.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}var base$2=BaseCurve$2;function BasePoint$2(e,t){this.curve=e,this.type=t,this.precomputed=null}BaseCurve$2.prototype.point=function(){throw new Error("Not implemented")},BaseCurve$2.prototype.validate=function(){throw new Error("Not implemented")},BaseCurve$2.prototype._fixedNafMul=function(e,t){assert$1$1(e.precomputed);var r=e._getDoubles(),n=getNAF$2(t,1,this._bitLength),o=(1<=i;c--)a=(a<<1)+n[c];s.push(a)}for(var u=this.jpoint(null,null,null),l=this.jpoint(null,null,null),d=o;d>0;d--){for(i=0;i=0;s--){for(var c=0;s>=0&&0===i[s];s--)c++;if(s>=0&&c++,a=a.dblp(c),s<0)break;var u=i[s];assert$1$1(0!==u),a="affine"===e.type?u>0?a.mixedAdd(o[u-1>>1]):a.mixedAdd(o[-u-1>>1].neg()):u>0?a.add(o[u-1>>1]):a.add(o[-u-1>>1].neg())}return"affine"===e.type?a.toP():a},BaseCurve$2.prototype._wnafMulAdd=function(e,t,r,n,o){var i,a,s,c=this._wnafT1,u=this._wnafT2,l=this._wnafT3,d=0;for(i=0;i=1;i-=2){var h=i-1,p=i;if(1===c[h]&&1===c[p]){var y=[t[h],null,null,t[p]];0===t[h].y.cmp(t[p].y)?(y[1]=t[h].add(t[p]),y[2]=t[h].toJ().mixedAdd(t[p].neg())):0===t[h].y.cmp(t[p].y.redNeg())?(y[1]=t[h].toJ().mixedAdd(t[p]),y[2]=t[h].add(t[p].neg())):(y[1]=t[h].toJ().mixedAdd(t[p]),y[2]=t[h].toJ().mixedAdd(t[p].neg()));var m=[-3,-1,-5,-7,0,7,5,1,3],g=getJSF$2(r[h],r[p]);for(d=Math.max(g[0].length,d),l[h]=new Array(d),l[p]=new Array(d),a=0;a=0;i--){for(var I=0;i>=0;){var T=!0;for(a=0;a=0&&I++,w=w.dblp(I),i<0)break;for(a=0;a0?s=u[a][k-1>>1]:k<0&&(s=u[a][-k-1>>1].neg()),w="affine"===s.type?w.mixedAdd(s):w.add(s))}}for(i=0;i=Math.ceil((e.bitLength()+1)/t.step)},BasePoint$2.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var r=[this],n=this,o=0;o=0&&(i=t,a=r),n.negative&&(n=n.neg(),o=o.neg()),i.negative&&(i=i.neg(),a=a.neg()),[{a:n,b:o},{a:i,b:a}]},ShortCurve$2.prototype._endoSplit=function(e){var t=this.endo.basis,r=t[0],n=t[1],o=n.b.mul(e).divRound(this.n),i=r.b.neg().mul(e).divRound(this.n),a=o.mul(r.a),s=i.mul(n.a),c=o.mul(r.b),u=i.mul(n.b);return{k1:e.sub(a).sub(s),k2:c.add(u).neg()}},ShortCurve$2.prototype.pointFromX=function(e,t){(e=new BN$o(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),n=r.redSqrt();if(0!==n.redSqr().redSub(r).cmp(this.zero))throw new Error("invalid point");var o=n.fromRed().isOdd();return(t&&!o||!t&&o)&&(n=n.redNeg()),this.point(e,n)},ShortCurve$2.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,r=e.y,n=this.a.redMul(t),o=t.redSqr().redMul(t).redIAdd(n).redIAdd(this.b);return 0===r.redSqr().redISub(o).cmpn(0)},ShortCurve$2.prototype._endoWnafMulAdd=function(e,t,r){for(var n=this._endoWnafT1,o=this._endoWnafT2,i=0;i":""},Point$6.prototype.isInfinity=function(){return this.inf},Point$6.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var r=t.redSqr().redISub(this.x).redISub(e.x),n=t.redMul(this.x.redSub(r)).redISub(this.y);return this.curve.point(r,n)},Point$6.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,r=this.x.redSqr(),n=e.redInvm(),o=r.redAdd(r).redIAdd(r).redIAdd(t).redMul(n),i=o.redSqr().redISub(this.x.redAdd(this.x)),a=o.redMul(this.x.redSub(i)).redISub(this.y);return this.curve.point(i,a)},Point$6.prototype.getX=function(){return this.x.fromRed()},Point$6.prototype.getY=function(){return this.y.fromRed()},Point$6.prototype.mul=function(e){return e=new BN$o(e,16),this.isInfinity()?this:this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},Point$6.prototype.mulAdd=function(e,t,r){var n=[this,t],o=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,o):this.curve._wnafMulAdd(1,n,o,2)},Point$6.prototype.jmulAdd=function(e,t,r){var n=[this,t],o=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,o,!0):this.curve._wnafMulAdd(1,n,o,2,!0)},Point$6.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},Point$6.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var r=this.precomputed,n=function(e){return e.neg()};t.precomputed={naf:r.naf&&{wnd:r.naf.wnd,points:r.naf.points.map(n)},doubles:r.doubles&&{step:r.doubles.step,points:r.doubles.points.map(n)}}}return t},Point$6.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},inherits_browser(JPoint$2,base$2.BasePoint),ShortCurve$2.prototype.jpoint=function(e,t,r){return new JPoint$2(this,e,t,r)},JPoint$2.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),r=this.x.redMul(t),n=this.y.redMul(t).redMul(e);return this.curve.point(r,n)},JPoint$2.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},JPoint$2.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),r=this.z.redSqr(),n=this.x.redMul(t),o=e.x.redMul(r),i=this.y.redMul(t.redMul(e.z)),a=e.y.redMul(r.redMul(this.z)),s=n.redSub(o),c=i.redSub(a);if(0===s.cmpn(0))return 0!==c.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var u=s.redSqr(),l=u.redMul(s),d=n.redMul(u),f=c.redSqr().redIAdd(l).redISub(d).redISub(d),h=c.redMul(d.redISub(f)).redISub(i.redMul(l)),p=this.z.redMul(e.z).redMul(s);return this.curve.jpoint(f,h,p)},JPoint$2.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),r=this.x,n=e.x.redMul(t),o=this.y,i=e.y.redMul(t).redMul(this.z),a=r.redSub(n),s=o.redSub(i);if(0===a.cmpn(0))return 0!==s.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var c=a.redSqr(),u=c.redMul(a),l=r.redMul(c),d=s.redSqr().redIAdd(u).redISub(l).redISub(l),f=s.redMul(l.redISub(d)).redISub(o.redMul(u)),h=this.z.redMul(a);return this.curve.jpoint(d,f,h)},JPoint$2.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();var t;if(this.curve.zeroA||this.curve.threeA){var r=this;for(t=0;t=0)return!1;if(r.redIAdd(o),0===this.x.cmp(r))return!0}},JPoint$2.prototype.inspect=function(){return this.isInfinity()?"":""},JPoint$2.prototype.isInfinity=function(){return 0===this.z.cmpn(0)};var curve_1=createCommonjsModule((function(e,t){var r=t;r.base=base$2,r.short=short_1,r.mont=null,r.edwards=null})),curves_1=createCommonjsModule((function(e,t){var r,n=t,o=utils_1$1.assert;function i(e){"short"===e.type?this.curve=new curve_1.short(e):"edwards"===e.type?this.curve=new curve_1.edwards(e):this.curve=new curve_1.mont(e),this.g=this.curve.g,this.n=this.curve.n,this.hash=e.hash,o(this.g.validate(),"Invalid curve"),o(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function a(e,t){Object.defineProperty(n,e,{configurable:!0,enumerable:!0,get:function(){var r=new i(t);return Object.defineProperty(n,e,{configurable:!0,enumerable:!0,value:r}),r}})}n.PresetCurve=i,a("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:hash$7.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),a("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:hash$7.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),a("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:hash$7.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),a("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:hash$7.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),a("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:hash$7.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),a("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:hash$7.sha256,gRed:!1,g:["9"]}),a("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:hash$7.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{r=null.crash()}catch(e2){r=void 0}a("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:hash$7.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",r]})}));function HmacDRBG$2(e){if(!(this instanceof HmacDRBG$2))return new HmacDRBG$2(e);this.hash=e.hash,this.predResist=!!e.predResist,this.outLen=this.hash.outSize,this.minEntropy=e.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var t=utils_1.toArray(e.entropy,e.entropyEnc||"hex"),r=utils_1.toArray(e.nonce,e.nonceEnc||"hex"),n=utils_1.toArray(e.pers,e.persEnc||"hex");minimalisticAssert(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,r,n)}var hmacDrbg=HmacDRBG$2;HmacDRBG$2.prototype._init=function(e,t,r){var n=e.concat(t).concat(r);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var o=0;o=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(e.concat(r||[])),this._reseed=1},HmacDRBG$2.prototype.generate=function(e,t,r,n){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof t&&(n=r,r=t,t=null),r&&(r=utils_1.toArray(r,n||"hex"),this._update(r));for(var o=[];o.length"};var assert$4$1=utils_1$1.assert;function Signature$8(e,t){if(e instanceof Signature$8)return e;this._importDER(e,t)||(assert$4$1(e.r&&e.s,"Signature without r or s"),this.r=new BN$o(e.r,16),this.s=new BN$o(e.s,16),void 0===e.recoveryParam?this.recoveryParam=null:this.recoveryParam=e.recoveryParam)}var signature$4=Signature$8;function Position$2(){this.place=0}function getLength$2(e,t){var r=e[t.place++];if(!(128&r))return r;var n=15&r;if(0===n||n>4)return!1;for(var o=0,i=0,a=t.place;i>>=0;return!(o<=127)&&(t.place=a,o)}function rmPadding$2(e){for(var t=0,r=e.length-1;!e[t]&&!(128&e[t+1])&&t>>3);for(e.push(128|r);--r;)e.push(t>>>(r<<3)&255);e.push(t)}}Signature$8.prototype._importDER=function(e,t){e=utils_1$1.toArray(e,t);var r=new Position$2;if(48!==e[r.place++])return!1;var n=getLength$2(e,r);if(!1===n)return!1;if(n+r.place!==e.length)return!1;if(2!==e[r.place++])return!1;var o=getLength$2(e,r);if(!1===o)return!1;var i=e.slice(r.place,o+r.place);if(r.place+=o,2!==e[r.place++])return!1;var a=getLength$2(e,r);if(!1===a)return!1;if(e.length!==a+r.place)return!1;var s=e.slice(r.place,a+r.place);if(0===i[0]){if(!(128&i[1]))return!1;i=i.slice(1)}if(0===s[0]){if(!(128&s[1]))return!1;s=s.slice(1)}return this.r=new BN$o(i),this.s=new BN$o(s),this.recoveryParam=null,!0},Signature$8.prototype.toDER=function(e){var t=this.r.toArray(),r=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&r[0]&&(r=[0].concat(r)),t=rmPadding$2(t),r=rmPadding$2(r);!(r[0]||128&r[1]);)r=r.slice(1);var n=[2];constructLength$2(n,t.length),(n=n.concat(t)).push(2),constructLength$2(n,r.length);var o=n.concat(r),i=[48];return constructLength$2(i,o.length),i=i.concat(o),utils_1$1.encode(i,e)};var rand$2=function(){throw new Error("unsupported")},assert$5$1=utils_1$1.assert;function EC$2(e){if(!(this instanceof EC$2))return new EC$2(e);"string"==typeof e&&(assert$5$1(Object.prototype.hasOwnProperty.call(curves_1,e),"Unknown curve "+e),e=curves_1[e]),e instanceof curves_1.PresetCurve&&(e={curve:e}),this.curve=e.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=e.curve.g,this.g.precompute(e.curve.n.bitLength()+1),this.hash=e.hash||e.curve.hash}var ec$2=EC$2;EC$2.prototype.keyPair=function(e){return new key$4(this,e)},EC$2.prototype.keyFromPrivate=function(e,t){return key$4.fromPrivate(this,e,t)},EC$2.prototype.keyFromPublic=function(e,t){return key$4.fromPublic(this,e,t)},EC$2.prototype.genKeyPair=function(e){e||(e={});for(var t=new hmacDrbg({hash:this.hash,pers:e.pers,persEnc:e.persEnc||"utf8",entropy:e.entropy||rand$2(this.hash.hmacStrength),entropyEnc:e.entropy&&e.entropyEnc||"utf8",nonce:this.n.toArray()}),r=this.n.byteLength(),n=this.n.sub(new BN$o(2));;){var o=new BN$o(t.generate(r));if(!(o.cmp(n)>0))return o.iaddn(1),this.keyFromPrivate(o)}},EC$2.prototype._truncateToN=function(e,t){var r=8*e.byteLength()-this.n.bitLength();return r>0&&(e=e.ushrn(r)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},EC$2.prototype.sign=function(e,t,r,n){"object"==typeof r&&(n=r,r=null),n||(n={}),t=this.keyFromPrivate(t,r),e=this._truncateToN(new BN$o(e,16));for(var o=this.n.byteLength(),i=t.getPrivate().toArray("be",o),a=e.toArray("be",o),s=new hmacDrbg({hash:this.hash,entropy:i,nonce:a,pers:n.pers,persEnc:n.persEnc||"utf8"}),c=this.n.sub(new BN$o(1)),u=0;;u++){var l=n.k?n.k(u):new BN$o(s.generate(this.n.byteLength()));if(!((l=this._truncateToN(l,!0)).cmpn(1)<=0||l.cmp(c)>=0)){var d=this.g.mul(l);if(!d.isInfinity()){var f=d.getX(),h=f.umod(this.n);if(0!==h.cmpn(0)){var p=l.invm(this.n).mul(h.mul(t.getPrivate()).iadd(e));if(0!==(p=p.umod(this.n)).cmpn(0)){var y=(d.getY().isOdd()?1:0)|(0!==f.cmp(h)?2:0);return n.canonical&&p.cmp(this.nh)>0&&(p=this.n.sub(p),y^=1),new signature$4({r:h,s:p,recoveryParam:y})}}}}}},EC$2.prototype.verify=function(e,t,r,n){e=this._truncateToN(new BN$o(e,16)),r=this.keyFromPublic(r,n);var o=(t=new signature$4(t,"hex")).r,i=t.s;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;if(i.cmpn(1)<0||i.cmp(this.n)>=0)return!1;var a,s=i.invm(this.n),c=s.mul(e).umod(this.n),u=s.mul(o).umod(this.n);return this.curve._maxwellTrick?!(a=this.g.jmulAdd(c,r.getPublic(),u)).isInfinity()&&a.eqXToP(o):!(a=this.g.mulAdd(c,r.getPublic(),u)).isInfinity()&&0===a.getX().umod(this.n).cmp(o)},EC$2.prototype.recoverPubKey=function(e,t,r,n){assert$5$1((3&r)===r,"The recovery param is more than two bits"),t=new signature$4(t,n);var o=this.n,i=new BN$o(e),a=t.r,s=t.s,c=1&r,u=r>>1;if(a.cmp(this.curve.p.umod(this.curve.n))>=0&&u)throw new Error("Unable to find sencond key candinate");a=u?this.curve.pointFromX(a.add(this.curve.n),c):this.curve.pointFromX(a,c);var l=t.r.invm(o),d=o.sub(i).mul(l).umod(o),f=s.mul(l).umod(o);return this.g.mulAdd(d,a,f)},EC$2.prototype.getKeyRecoveryParam=function(e,t,r,n){if(null!==(t=new signature$4(t,n)).recoveryParam)return t.recoveryParam;for(var o=0;o<4;o++){var i;try{i=this.recoverPubKey(e,t,o)}catch(a){continue}if(i.eq(r))return o}throw new Error("Unable to find valid recovery factor")};var elliptic_1=createCommonjsModule((function(e,t){var r=t;r.version="6.5.4",r.utils=utils_1$1,r.rand=function(){throw new Error("unsupported")},r.curve=curve_1,r.curves=curves_1,r.ec=ec$2,r.eddsa=null})),EC$1$1=elliptic_1.ec;const version$4="signing-key/5.7.0",logger=new Logger$1(version$4);let _curve=null;function getCurve(){return _curve||(_curve=new EC$1$1("secp256k1")),_curve}class SigningKey{constructor(e){defineReadOnly(this,"curve","secp256k1"),defineReadOnly(this,"privateKey",hexlify(e)),32!==hexDataLength(this.privateKey)&&logger.throwArgumentError("invalid private key","privateKey","[[ REDACTED ]]");const t=getCurve().keyFromPrivate(arrayify(this.privateKey));defineReadOnly(this,"publicKey","0x"+t.getPublic(!1,"hex")),defineReadOnly(this,"compressedPublicKey","0x"+t.getPublic(!0,"hex")),defineReadOnly(this,"_isSigningKey",!0)}_addPoint(e){const t=getCurve().keyFromPublic(arrayify(this.publicKey)),r=getCurve().keyFromPublic(arrayify(e));return"0x"+t.pub.add(r.pub).encodeCompressed("hex")}signDigest(e){const t=getCurve().keyFromPrivate(arrayify(this.privateKey)),r=arrayify(e);32!==r.length&&logger.throwArgumentError("bad digest length","digest",e);const n=t.sign(r,{canonical:!0});return splitSignature({recoveryParam:n.recoveryParam,r:hexZeroPad("0x"+n.r.toString(16),32),s:hexZeroPad("0x"+n.s.toString(16),32)})}computeSharedSecret(e){const t=getCurve().keyFromPrivate(arrayify(this.privateKey)),r=getCurve().keyFromPublic(arrayify(computePublicKey(e)));return hexZeroPad("0x"+t.derive(r.getPublic()).toString(16),32)}static isSigningKey(e){return!(!e||!e._isSigningKey)}}function recoverPublicKey(e,t){const r=splitSignature(t),n={r:arrayify(r.r),s:arrayify(r.s)};return"0x"+getCurve().recoverPubKey(arrayify(e),n,r.recoveryParam).encode("hex",!1)}function computePublicKey(e,t){const r=arrayify(e);if(32===r.length){return new SigningKey(r).publicKey}return 33===r.length?"0x"+getCurve().keyFromPublic(r).getPublic(!1,"hex"):65===r.length?hexlify(r):logger.throwArgumentError("invalid public or private key","key","[REDACTED]")}var TransactionTypes,TransactionTypes2;function computeAddress(e){return getAddress(hexDataSlice(keccak256$1(hexDataSlice(computePublicKey(e),1)),12))}function recoverAddress(e,t){return computeAddress(recoverPublicKey(arrayify(e),t))}TransactionTypes2=TransactionTypes||(TransactionTypes={}),TransactionTypes2[TransactionTypes2.legacy=0]="legacy",TransactionTypes2[TransactionTypes2.eip2930=1]="eip2930",TransactionTypes2[TransactionTypes2.eip1559=2]="eip1559";var chacha20poly1305={},chacha={};Object.defineProperty(chacha,"__esModule",{value:!0});var binary_1=binary,wipe_1$2=wipe$1,ROUNDS=20;function core(e,t,r){for(var n=1634760805,o=857760878,i=2036477234,a=1797285236,s=r[3]<<24|r[2]<<16|r[1]<<8|r[0],c=r[7]<<24|r[6]<<16|r[5]<<8|r[4],u=r[11]<<24|r[10]<<16|r[9]<<8|r[8],l=r[15]<<24|r[14]<<16|r[13]<<8|r[12],d=r[19]<<24|r[18]<<16|r[17]<<8|r[16],f=r[23]<<24|r[22]<<16|r[21]<<8|r[20],h=r[27]<<24|r[26]<<16|r[25]<<8|r[24],p=r[31]<<24|r[30]<<16|r[29]<<8|r[28],y=t[3]<<24|t[2]<<16|t[1]<<8|t[0],m=t[7]<<24|t[6]<<16|t[5]<<8|t[4],g=t[11]<<24|t[10]<<16|t[9]<<8|t[8],b=t[15]<<24|t[14]<<16|t[13]<<8|t[12],v=n,w=o,_=i,I=a,T=s,k=c,$=u,S=l,A=d,E=f,C=h,R=p,O=y,N=m,P=g,M=b,B=0;B>>16|O<<16)|0)>>>20|T<<12,k=(k^=E=E+(N=(N^=w=w+k|0)>>>16|N<<16)|0)>>>20|k<<12,$=($^=C=C+(P=(P^=_=_+$|0)>>>16|P<<16)|0)>>>20|$<<12,S=(S^=R=R+(M=(M^=I=I+S|0)>>>16|M<<16)|0)>>>20|S<<12,$=($^=C=C+(P=(P^=_=_+$|0)>>>24|P<<8)|0)>>>25|$<<7,S=(S^=R=R+(M=(M^=I=I+S|0)>>>24|M<<8)|0)>>>25|S<<7,k=(k^=E=E+(N=(N^=w=w+k|0)>>>24|N<<8)|0)>>>25|k<<7,T=(T^=A=A+(O=(O^=v=v+T|0)>>>24|O<<8)|0)>>>25|T<<7,k=(k^=C=C+(M=(M^=v=v+k|0)>>>16|M<<16)|0)>>>20|k<<12,$=($^=R=R+(O=(O^=w=w+$|0)>>>16|O<<16)|0)>>>20|$<<12,S=(S^=A=A+(N=(N^=_=_+S|0)>>>16|N<<16)|0)>>>20|S<<12,T=(T^=E=E+(P=(P^=I=I+T|0)>>>16|P<<16)|0)>>>20|T<<12,S=(S^=A=A+(N=(N^=_=_+S|0)>>>24|N<<8)|0)>>>25|S<<7,T=(T^=E=E+(P=(P^=I=I+T|0)>>>24|P<<8)|0)>>>25|T<<7,$=($^=R=R+(O=(O^=w=w+$|0)>>>24|O<<8)|0)>>>25|$<<7,k=(k^=C=C+(M=(M^=v=v+k|0)>>>24|M<<8)|0)>>>25|k<<7;binary_1.writeUint32LE(v+n|0,e,0),binary_1.writeUint32LE(w+o|0,e,4),binary_1.writeUint32LE(_+i|0,e,8),binary_1.writeUint32LE(I+a|0,e,12),binary_1.writeUint32LE(T+s|0,e,16),binary_1.writeUint32LE(k+c|0,e,20),binary_1.writeUint32LE($+u|0,e,24),binary_1.writeUint32LE(S+l|0,e,28),binary_1.writeUint32LE(A+d|0,e,32),binary_1.writeUint32LE(E+f|0,e,36),binary_1.writeUint32LE(C+h|0,e,40),binary_1.writeUint32LE(R+p|0,e,44),binary_1.writeUint32LE(O+y|0,e,48),binary_1.writeUint32LE(N+m|0,e,52),binary_1.writeUint32LE(P+g|0,e,56),binary_1.writeUint32LE(M+b|0,e,60)}function streamXOR(e,t,r,n,o){if(void 0===o&&(o=0),32!==e.length)throw new Error("ChaCha: key size must be 32 bytes");if(n.length>>=8,t++;if(n>0)throw new Error("ChaCha: counter overflow")}chacha.streamXOR=streamXOR,chacha.stream=stream;var poly1305={},constantTime={};function select(e,t,r){return~(e-1)&t|e-1&r}function lessOrEqual(e,t){return(0|e)-(0|t)-1>>>31&1}function compare(e,t){if(e.length!==t.length)return 0;for(var r=0,n=0;n>>8}function equal(e,t){return 0!==e.length&&0!==t.length&&0!==compare(e,t)}Object.defineProperty(constantTime,"__esModule",{value:!0}),constantTime.select=select,constantTime.lessOrEqual=lessOrEqual,constantTime.compare=compare,constantTime.equal=equal,function(e){Object.defineProperty(e,"__esModule",{value:!0});var t=constantTime,r=wipe$1;e.DIGEST_LENGTH=16;var n=function(){function t(t){this.digestLength=e.DIGEST_LENGTH,this._buffer=new Uint8Array(16),this._r=new Uint16Array(10),this._h=new Uint16Array(10),this._pad=new Uint16Array(8),this._leftover=0,this._fin=0,this._finished=!1;var r=t[0]|t[1]<<8;this._r[0]=8191&r;var n=t[2]|t[3]<<8;this._r[1]=8191&(r>>>13|n<<3);var o=t[4]|t[5]<<8;this._r[2]=7939&(n>>>10|o<<6);var i=t[6]|t[7]<<8;this._r[3]=8191&(o>>>7|i<<9);var a=t[8]|t[9]<<8;this._r[4]=255&(i>>>4|a<<12),this._r[5]=a>>>1&8190;var s=t[10]|t[11]<<8;this._r[6]=8191&(a>>>14|s<<2);var c=t[12]|t[13]<<8;this._r[7]=8065&(s>>>11|c<<5);var u=t[14]|t[15]<<8;this._r[8]=8191&(c>>>8|u<<8),this._r[9]=u>>>5&127,this._pad[0]=t[16]|t[17]<<8,this._pad[1]=t[18]|t[19]<<8,this._pad[2]=t[20]|t[21]<<8,this._pad[3]=t[22]|t[23]<<8,this._pad[4]=t[24]|t[25]<<8,this._pad[5]=t[26]|t[27]<<8,this._pad[6]=t[28]|t[29]<<8,this._pad[7]=t[30]|t[31]<<8}return t.prototype._blocks=function(e,t,r){for(var n=this._fin?0:2048,o=this._h[0],i=this._h[1],a=this._h[2],s=this._h[3],c=this._h[4],u=this._h[5],l=this._h[6],d=this._h[7],f=this._h[8],h=this._h[9],p=this._r[0],y=this._r[1],m=this._r[2],g=this._r[3],b=this._r[4],v=this._r[5],w=this._r[6],_=this._r[7],I=this._r[8],T=this._r[9];r>=16;){var k=e[t+0]|e[t+1]<<8;o+=8191&k;var $=e[t+2]|e[t+3]<<8;i+=8191&(k>>>13|$<<3);var S=e[t+4]|e[t+5]<<8;a+=8191&($>>>10|S<<6);var A=e[t+6]|e[t+7]<<8;s+=8191&(S>>>7|A<<9);var E=e[t+8]|e[t+9]<<8;c+=8191&(A>>>4|E<<12),u+=E>>>1&8191;var C=e[t+10]|e[t+11]<<8;l+=8191&(E>>>14|C<<2);var R=e[t+12]|e[t+13]<<8;d+=8191&(C>>>11|R<<5);var O=e[t+14]|e[t+15]<<8,N=0,P=N;P+=o*p,P+=i*(5*T),P+=a*(5*I),P+=s*(5*_),N=(P+=c*(5*w))>>>13,P&=8191,P+=u*(5*v),P+=l*(5*b),P+=d*(5*g),P+=(f+=8191&(R>>>8|O<<8))*(5*m);var M=N+=(P+=(h+=O>>>5|n)*(5*y))>>>13;M+=o*y,M+=i*p,M+=a*(5*T),M+=s*(5*I),N=(M+=c*(5*_))>>>13,M&=8191,M+=u*(5*w),M+=l*(5*v),M+=d*(5*b),M+=f*(5*g),N+=(M+=h*(5*m))>>>13,M&=8191;var B=N;B+=o*m,B+=i*y,B+=a*p,B+=s*(5*T),N=(B+=c*(5*I))>>>13,B&=8191,B+=u*(5*_),B+=l*(5*w),B+=d*(5*v),B+=f*(5*b);var D=N+=(B+=h*(5*g))>>>13;D+=o*g,D+=i*m,D+=a*y,D+=s*p,N=(D+=c*(5*T))>>>13,D&=8191,D+=u*(5*I),D+=l*(5*_),D+=d*(5*w),D+=f*(5*v);var x=N+=(D+=h*(5*b))>>>13;x+=o*b,x+=i*g,x+=a*m,x+=s*y,N=(x+=c*p)>>>13,x&=8191,x+=u*(5*T),x+=l*(5*I),x+=d*(5*_),x+=f*(5*w);var L=N+=(x+=h*(5*v))>>>13;L+=o*v,L+=i*b,L+=a*g,L+=s*m,N=(L+=c*y)>>>13,L&=8191,L+=u*p,L+=l*(5*T),L+=d*(5*I),L+=f*(5*_);var U=N+=(L+=h*(5*w))>>>13;U+=o*w,U+=i*v,U+=a*b,U+=s*g,N=(U+=c*m)>>>13,U&=8191,U+=u*y,U+=l*p,U+=d*(5*T),U+=f*(5*I);var j=N+=(U+=h*(5*_))>>>13;j+=o*_,j+=i*w,j+=a*v,j+=s*b,N=(j+=c*g)>>>13,j&=8191,j+=u*m,j+=l*y,j+=d*p,j+=f*(5*T);var F=N+=(j+=h*(5*I))>>>13;F+=o*I,F+=i*_,F+=a*w,F+=s*v,N=(F+=c*b)>>>13,F&=8191,F+=u*g,F+=l*m,F+=d*y,F+=f*p;var q=N+=(F+=h*(5*T))>>>13;q+=o*T,q+=i*I,q+=a*_,q+=s*w,N=(q+=c*v)>>>13,q&=8191,q+=u*b,q+=l*g,q+=d*m,q+=f*y,o=P=8191&(N=(N=((N+=(q+=h*p)>>>13)<<2)+N|0)+(P&=8191)|0),i=M+=N>>>=13,a=B&=8191,s=D&=8191,c=x&=8191,u=L&=8191,l=U&=8191,d=j&=8191,f=F&=8191,h=q&=8191,t+=16,r-=16}this._h[0]=o,this._h[1]=i,this._h[2]=a,this._h[3]=s,this._h[4]=c,this._h[5]=u,this._h[6]=l,this._h[7]=d,this._h[8]=f,this._h[9]=h},t.prototype.finish=function(e,t){void 0===t&&(t=0);var r,n,o,i,a=new Uint16Array(10);if(this._leftover){for(i=this._leftover,this._buffer[i++]=1;i<16;i++)this._buffer[i]=0;this._fin=1,this._blocks(this._buffer,0,16)}for(r=this._h[1]>>>13,this._h[1]&=8191,i=2;i<10;i++)this._h[i]+=r,r=this._h[i]>>>13,this._h[i]&=8191;for(this._h[0]+=5*r,r=this._h[0]>>>13,this._h[0]&=8191,this._h[1]+=r,r=this._h[1]>>>13,this._h[1]&=8191,this._h[2]+=r,a[0]=this._h[0]+5,r=a[0]>>>13,a[0]&=8191,i=1;i<10;i++)a[i]=this._h[i]+r,r=a[i]>>>13,a[i]&=8191;for(a[9]-=8192,n=(1^r)-1,i=0;i<10;i++)a[i]&=n;for(n=~n,i=0;i<10;i++)this._h[i]=this._h[i]&n|a[i];for(this._h[0]=65535&(this._h[0]|this._h[1]<<13),this._h[1]=65535&(this._h[1]>>>3|this._h[2]<<10),this._h[2]=65535&(this._h[2]>>>6|this._h[3]<<7),this._h[3]=65535&(this._h[3]>>>9|this._h[4]<<4),this._h[4]=65535&(this._h[4]>>>12|this._h[5]<<1|this._h[6]<<14),this._h[5]=65535&(this._h[6]>>>2|this._h[7]<<11),this._h[6]=65535&(this._h[7]>>>5|this._h[8]<<8),this._h[7]=65535&(this._h[8]>>>8|this._h[9]<<5),o=this._h[0]+this._pad[0],this._h[0]=65535&o,i=1;i<8;i++)o=(this._h[i]+this._pad[i]|0)+(o>>>16)|0,this._h[i]=65535&o;return e[t+0]=this._h[0]>>>0,e[t+1]=this._h[0]>>>8,e[t+2]=this._h[1]>>>0,e[t+3]=this._h[1]>>>8,e[t+4]=this._h[2]>>>0,e[t+5]=this._h[2]>>>8,e[t+6]=this._h[3]>>>0,e[t+7]=this._h[3]>>>8,e[t+8]=this._h[4]>>>0,e[t+9]=this._h[4]>>>8,e[t+10]=this._h[5]>>>0,e[t+11]=this._h[5]>>>8,e[t+12]=this._h[6]>>>0,e[t+13]=this._h[6]>>>8,e[t+14]=this._h[7]>>>0,e[t+15]=this._h[7]>>>8,this._finished=!0,this},t.prototype.update=function(e){var t,r=0,n=e.length;if(this._leftover){(t=16-this._leftover)>n&&(t=n);for(var o=0;o=16&&(t=n-n%16,this._blocks(e,r,t),r+=t,n-=t),n){for(o=0;o16)throw new Error("ChaCha20Poly1305: incorrect nonce length");var a=new Uint8Array(16);a.set(e,a.length-e.length);var s=new Uint8Array(32);t.stream(this._key,a,s,4);var c,u=r.length+this.tagLength;if(i){if(i.length!==u)throw new Error("ChaCha20Poly1305: incorrect destination length");c=i}else c=new Uint8Array(u);return t.streamXOR(this._key,a,r,c,4),this._authenticate(c.subarray(c.length-this.tagLength,c.length),s,c.subarray(0,c.length-this.tagLength),o),n.wipe(a),c},s.prototype.open=function(e,r,o,a){if(e.length>16)throw new Error("ChaCha20Poly1305: incorrect nonce length");if(r.length0&&c.update(a.subarray(s.length%16))),c.update(i),i.length%16>0&&c.update(a.subarray(i.length%16));var u=new Uint8Array(8);s&&o.writeUint64LE(s.length,u),c.update(u),o.writeUint64LE(i.length,u),c.update(u);for(var l=c.digest(),d=0;dthis.blockSize?this._inner.update(t).finish(r).clean():r.set(t);for(var n=0;n1&&this._hmac.update(this._buffer),this._info&&this._hmac.update(this._info),this._hmac.update(this._counter),this._hmac.finish(this._buffer),this._bufpos=0},e.prototype.expand=function(e){for(var t=new Uint8Array(e),r=0;r0){for(;this._bufferLength0;)this._buffer[this._bufferLength++]=e[r++],t--;this._bufferLength===this.blockSize&&(i(this._temp,this._state,this._buffer,0,this.blockSize),this._bufferLength=0)}for(t>=this.blockSize&&(r=i(this._temp,this._state,e,r,t),t%=this.blockSize);t>0;)this._buffer[this._bufferLength++]=e[r++],t--;return this},n.prototype.finish=function(e){if(!this._finished){var r=this._bytesHashed,n=this._bufferLength,o=r/536870912|0,a=r<<3,s=r%64<56?64:128;this._buffer[n]=128;for(var c=n+1;c0?new Uint8Array(this._buffer):void 0,bufferLength:this._bufferLength,bytesHashed:this._bytesHashed}},n.prototype.restoreState=function(e){return this._state.set(e.state),this._bufferLength=e.bufferLength,e.buffer&&this._buffer.set(e.buffer),this._bytesHashed=e.bytesHashed,this._finished=!1,this},n.prototype.cleanSavedState=function(e){r.wipe(e.state),e.buffer&&r.wipe(e.buffer),e.bufferLength=0,e.bytesHashed=0},n}();e.SHA256=n;var o=new Int32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]);function i(e,r,n,i,a){for(;a>=64;){for(var s=r[0],c=r[1],u=r[2],l=r[3],d=r[4],f=r[5],h=r[6],p=r[7],y=0;y<16;y++){var m=i+4*y;e[y]=t.readUint32BE(n,m)}for(y=16;y<64;y++){var g=e[y-2],b=(g>>>17|g<<15)^(g>>>19|g<<13)^g>>>10,v=((g=e[y-15])>>>7|g<<25)^(g>>>18|g<<14)^g>>>3;e[y]=(b+e[y-7]|0)+(v+e[y-16]|0)}for(y=0;y<64;y++){b=(((d>>>6|d<<26)^(d>>>11|d<<21)^(d>>>25|d<<7))+(d&f^~d&h)|0)+(p+(o[y]+e[y]|0)|0)|0,v=((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+(s&c^s&u^c&u)|0;p=h,h=f,f=d,d=l+b|0,l=u,u=c,c=s,s=b+v|0}r[0]+=s,r[1]+=c,r[2]+=u,r[3]+=l,r[4]+=d,r[5]+=f,r[6]+=h,r[7]+=p,i+=64,a-=64}return i}e.hash=function(e){var t=new n;t.update(e);var r=t.digest();return t.clean(),r}}(sha256);var x25519={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.sharedKey=e.generateKeyPair=e.generateKeyPairFromSeed=e.scalarMultBase=e.scalarMult=e.SHARED_KEY_LENGTH=e.SECRET_KEY_LENGTH=e.PUBLIC_KEY_LENGTH=void 0;const t=random,r=wipe$1;function n(e){const t=new Float64Array(16);if(e)for(let r=0;r=0;--n){const e=r[n>>>3]>>>(7&n)&1;s(f,h,e),s(p,y,e),c(m,f,p),u(f,f,p),c(p,h,y),u(h,h,y),d(y,m),d(g,f),l(f,p,f),l(p,h,m),c(m,f,p),u(f,f,p),d(h,f),u(p,y,g),l(f,p,i),c(f,f,y),l(p,p,f),l(f,y,g),l(y,h,o),d(h,m),s(f,h,e),s(p,y,e)}for(let n=0;n<16;n++)o[n+16]=f[n],o[n+32]=p[n],o[n+48]=h[n],o[n+64]=y[n];const b=o.subarray(32),v=o.subarray(16);!function(e,t){const r=n();for(let n=0;n<16;n++)r[n]=t[n];for(let n=253;n>=0;n--)d(r,r),2!==n&&4!==n&&l(r,r,t);for(let n=0;n<16;n++)e[n]=r[n]}(b,b),l(v,v,b);const w=new Uint8Array(32);return function(e,t){const r=n(),o=n();for(let n=0;n<16;n++)o[n]=t[n];a(o),a(o),a(o);for(let n=0;n<2;n++){r[0]=o[0]-65517;for(let t=1;t<15;t++)r[t]=o[t]-65535-(r[t-1]>>16&1),r[t-1]&=65535;r[15]=o[15]-32767-(r[14]>>16&1);const e=r[15]>>16&1;r[14]&=65535,s(o,r,1-e)}for(let n=0;n<16;n++)e[2*n]=255&o[n],e[2*n+1]=o[n]>>8}(w,v),w}function h(e){return f(e,o)}function p(t){if(t.length!==e.SECRET_KEY_LENGTH)throw new Error(`x25519: seed must be ${e.SECRET_KEY_LENGTH} bytes`);const r=new Uint8Array(t);return{publicKey:h(r),secretKey:r}}e.scalarMult=f,e.scalarMultBase=h,e.generateKeyPairFromSeed=p,e.generateKeyPair=function(e){const n=(0,t.randomBytes)(32,e),o=p(n);return(0,r.wipe)(n),o},e.sharedKey=function(t,r,n=!1){if(t.length!==e.PUBLIC_KEY_LENGTH)throw new Error("X25519: incorrect secret key length");if(r.length!==e.PUBLIC_KEY_LENGTH)throw new Error("X25519: incorrect public key length");const o=f(t,r);if(n){let e=0;for(let t=0;t",license$1="MIT",bugs$1={url:"https://github.com/indutny/elliptic/issues"},homepage$1="https://github.com/indutny/elliptic",devDependencies$1={brfs:"^2.0.2",coveralls:"^3.1.0",eslint:"^7.6.0",grunt:"^1.2.1","grunt-browserify":"^5.3.0","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^5.0.0","grunt-mocha-istanbul":"^5.0.2","grunt-saucelabs":"^9.0.1",istanbul:"^0.4.5",mocha:"^8.0.1"},dependencies$1={"bn.js":"^4.11.9",brorand:"^1.1.0","hash.js":"^1.0.0","hmac-drbg":"^1.0.1",inherits:"^2.0.4","minimalistic-assert":"^1.0.1","minimalistic-crypto-utils":"^1.0.1"},require$$0$3={name:name$1,version:version$3,description:description$1,main:main$1,files:files$1,scripts:scripts$1,repository:repository$1,keywords:keywords$1,author:author$1,license:license$1,bugs:bugs$1,homepage:homepage$1,devDependencies:devDependencies$1,dependencies:dependencies$1};var utils$p={},bn$3={exports:{}};bn$3.exports,function(e){!function(e,t){function r(e,t){if(!e)throw new Error(t||"Assertion failed")}function n(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}function o(e,t,r){if(o.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(r=t,t=10),this._init(e||0,t||10,r||"be"))}var i;"object"==typeof e?e.exports=o:t.BN=o,o.BN=o,o.wordSize=26;try{i="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:require$$2$1.Buffer}catch(e2){}function a(e,t){var r=e.charCodeAt(t);return r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:r-48&15}function s(e,t,r){var n=a(e,r);return r-1>=t&&(n|=a(e,r-1)<<4),n}function c(e,t,r,n){for(var o=0,i=Math.min(e.length,r),a=t;a=49?s-49+10:s>=17?s-17+10:s}return o}o.isBN=function(e){return e instanceof o||null!==e&&"object"==typeof e&&e.constructor.wordSize===o.wordSize&&Array.isArray(e.words)},o.max=function(e,t){return e.cmp(t)>0?e:t},o.min=function(e,t){return e.cmp(t)<0?e:t},o.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),r(t===(0|t)&&t>=2&&t<=36);var o=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(o++,this.negative=1),o=0;o-=3)a=e[o]|e[o-1]<<8|e[o-2]<<16,this.words[i]|=a<>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);else if("le"===n)for(o=0,i=0;o>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);return this.strip()},o.prototype._parseHex=function(e,t,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var n=0;n=t;n-=2)o=s(e,t,n)<=18?(i-=18,a+=1,this.words[a]|=o>>>26):i+=8;else for(n=(e.length-t)%2==0?t+1:t;n=18?(i-=18,a+=1,this.words[a]|=o>>>26):i+=8;this.strip()},o.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var n=0,o=1;o<=67108863;o*=t)n++;n--,o=o/t|0;for(var i=e.length-r,a=i%n,s=Math.min(i,i-a)+r,u=0,l=r;l1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?""};var u=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],l=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],d=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function f(e,t,r){r.negative=t.negative^e.negative;var n=e.length+t.length|0;r.length=n,n=n-1|0;var o=0|e.words[0],i=0|t.words[0],a=o*i,s=67108863&a,c=a/67108864|0;r.words[0]=s;for(var u=1;u>>26,d=67108863&c,f=Math.min(u,t.length-1),h=Math.max(0,u-e.length+1);h<=f;h++){var p=u-h|0;l+=(a=(o=0|e.words[p])*(i=0|t.words[h])+d)/67108864|0,d=67108863&a}r.words[u]=0|d,c=0|l}return 0!==c?r.words[u]=0|c:r.length--,r.strip()}o.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var o=0,i=0,a=0;a>>24-o&16777215,(o+=2)>=26&&(o-=26,a--),n=0!==i||a!==this.length-1?u[6-c.length]+c+n:c+n}for(0!==i&&(n=i.toString(16)+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var f=l[e],h=d[e];n="";var p=this.clone();for(p.negative=0;!p.isZero();){var y=p.modn(h).toString(e);n=(p=p.idivn(h)).isZero()?y+n:u[f-y.length]+y+n}for(this.isZero()&&(n="0"+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(e,t){return r(void 0!==i),this.toArrayLike(i,e,t)},o.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},o.prototype.toArrayLike=function(e,t,n){var o=this.byteLength(),i=n||Math.max(1,o);r(o<=i,"byte array longer than desired length"),r(i>0,"Requested array length <= 0"),this.strip();var a,s,c="le"===t,u=new e(i),l=this.clone();if(c){for(s=0;!l.isZero();s++)a=l.andln(255),l.iushrn(8),u[s]=a;for(;s=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},o.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 8191&t||(r+=13,t>>>=13),127&t||(r+=7,t>>>=7),15&t||(r+=4,t>>>=4),3&t||(r+=2,t>>>=2),1&t||r++,r},o.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},o.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},o.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;re.length?this.clone().iand(e):e.clone().iand(this)},o.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},o.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var n=0;ne.length?this.clone().ixor(e):e.clone().ixor(this)},o.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},o.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var o=0;o0&&(this.words[o]=~this.words[o]&67108863>>26-n),this.strip()},o.prototype.notn=function(e){return this.clone().inotn(e)},o.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var n=e/26|0,o=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<e.length?(r=this,n=e):(r=e,n=this);for(var o=0,i=0;i>>26;for(;0!==o&&i>>26;if(this.length=r.length,0!==o)this.words[this.length]=o,this.length++;else if(r!==this)for(;ie.length?this.clone().iadd(e):e.clone().iadd(this)},o.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,n,o=this.cmp(e);if(0===o)return this.negative=0,this.length=1,this.words[0]=0,this;o>0?(r=this,n=e):(r=e,n=this);for(var i=0,a=0;a>26,this.words[a]=67108863&t;for(;0!==i&&a>26,this.words[a]=67108863&t;if(0===i&&a>>13,h=0|a[1],p=8191&h,y=h>>>13,m=0|a[2],g=8191&m,b=m>>>13,v=0|a[3],w=8191&v,_=v>>>13,I=0|a[4],T=8191&I,k=I>>>13,$=0|a[5],S=8191&$,A=$>>>13,E=0|a[6],C=8191&E,R=E>>>13,O=0|a[7],N=8191&O,P=O>>>13,M=0|a[8],B=8191&M,D=M>>>13,x=0|a[9],L=8191&x,U=x>>>13,j=0|s[0],F=8191&j,q=j>>>13,K=0|s[1],H=8191&K,G=K>>>13,z=0|s[2],V=8191&z,W=z>>>13,Q=0|s[3],Y=8191&Q,X=Q>>>13,J=0|s[4],Z=8191&J,ee=J>>>13,te=0|s[5],re=8191&te,ne=te>>>13,oe=0|s[6],ie=8191&oe,ae=oe>>>13,se=0|s[7],ce=8191&se,ue=se>>>13,le=0|s[8],de=8191&le,fe=le>>>13,he=0|s[9],pe=8191&he,ye=he>>>13;r.negative=e.negative^t.negative,r.length=19;var me=(u+(n=Math.imul(d,F))|0)+((8191&(o=(o=Math.imul(d,q))+Math.imul(f,F)|0))<<13)|0;u=((i=Math.imul(f,q))+(o>>>13)|0)+(me>>>26)|0,me&=67108863,n=Math.imul(p,F),o=(o=Math.imul(p,q))+Math.imul(y,F)|0,i=Math.imul(y,q);var ge=(u+(n=n+Math.imul(d,H)|0)|0)+((8191&(o=(o=o+Math.imul(d,G)|0)+Math.imul(f,H)|0))<<13)|0;u=((i=i+Math.imul(f,G)|0)+(o>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(g,F),o=(o=Math.imul(g,q))+Math.imul(b,F)|0,i=Math.imul(b,q),n=n+Math.imul(p,H)|0,o=(o=o+Math.imul(p,G)|0)+Math.imul(y,H)|0,i=i+Math.imul(y,G)|0;var be=(u+(n=n+Math.imul(d,V)|0)|0)+((8191&(o=(o=o+Math.imul(d,W)|0)+Math.imul(f,V)|0))<<13)|0;u=((i=i+Math.imul(f,W)|0)+(o>>>13)|0)+(be>>>26)|0,be&=67108863,n=Math.imul(w,F),o=(o=Math.imul(w,q))+Math.imul(_,F)|0,i=Math.imul(_,q),n=n+Math.imul(g,H)|0,o=(o=o+Math.imul(g,G)|0)+Math.imul(b,H)|0,i=i+Math.imul(b,G)|0,n=n+Math.imul(p,V)|0,o=(o=o+Math.imul(p,W)|0)+Math.imul(y,V)|0,i=i+Math.imul(y,W)|0;var ve=(u+(n=n+Math.imul(d,Y)|0)|0)+((8191&(o=(o=o+Math.imul(d,X)|0)+Math.imul(f,Y)|0))<<13)|0;u=((i=i+Math.imul(f,X)|0)+(o>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(T,F),o=(o=Math.imul(T,q))+Math.imul(k,F)|0,i=Math.imul(k,q),n=n+Math.imul(w,H)|0,o=(o=o+Math.imul(w,G)|0)+Math.imul(_,H)|0,i=i+Math.imul(_,G)|0,n=n+Math.imul(g,V)|0,o=(o=o+Math.imul(g,W)|0)+Math.imul(b,V)|0,i=i+Math.imul(b,W)|0,n=n+Math.imul(p,Y)|0,o=(o=o+Math.imul(p,X)|0)+Math.imul(y,Y)|0,i=i+Math.imul(y,X)|0;var we=(u+(n=n+Math.imul(d,Z)|0)|0)+((8191&(o=(o=o+Math.imul(d,ee)|0)+Math.imul(f,Z)|0))<<13)|0;u=((i=i+Math.imul(f,ee)|0)+(o>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(S,F),o=(o=Math.imul(S,q))+Math.imul(A,F)|0,i=Math.imul(A,q),n=n+Math.imul(T,H)|0,o=(o=o+Math.imul(T,G)|0)+Math.imul(k,H)|0,i=i+Math.imul(k,G)|0,n=n+Math.imul(w,V)|0,o=(o=o+Math.imul(w,W)|0)+Math.imul(_,V)|0,i=i+Math.imul(_,W)|0,n=n+Math.imul(g,Y)|0,o=(o=o+Math.imul(g,X)|0)+Math.imul(b,Y)|0,i=i+Math.imul(b,X)|0,n=n+Math.imul(p,Z)|0,o=(o=o+Math.imul(p,ee)|0)+Math.imul(y,Z)|0,i=i+Math.imul(y,ee)|0;var _e=(u+(n=n+Math.imul(d,re)|0)|0)+((8191&(o=(o=o+Math.imul(d,ne)|0)+Math.imul(f,re)|0))<<13)|0;u=((i=i+Math.imul(f,ne)|0)+(o>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(C,F),o=(o=Math.imul(C,q))+Math.imul(R,F)|0,i=Math.imul(R,q),n=n+Math.imul(S,H)|0,o=(o=o+Math.imul(S,G)|0)+Math.imul(A,H)|0,i=i+Math.imul(A,G)|0,n=n+Math.imul(T,V)|0,o=(o=o+Math.imul(T,W)|0)+Math.imul(k,V)|0,i=i+Math.imul(k,W)|0,n=n+Math.imul(w,Y)|0,o=(o=o+Math.imul(w,X)|0)+Math.imul(_,Y)|0,i=i+Math.imul(_,X)|0,n=n+Math.imul(g,Z)|0,o=(o=o+Math.imul(g,ee)|0)+Math.imul(b,Z)|0,i=i+Math.imul(b,ee)|0,n=n+Math.imul(p,re)|0,o=(o=o+Math.imul(p,ne)|0)+Math.imul(y,re)|0,i=i+Math.imul(y,ne)|0;var Ie=(u+(n=n+Math.imul(d,ie)|0)|0)+((8191&(o=(o=o+Math.imul(d,ae)|0)+Math.imul(f,ie)|0))<<13)|0;u=((i=i+Math.imul(f,ae)|0)+(o>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,n=Math.imul(N,F),o=(o=Math.imul(N,q))+Math.imul(P,F)|0,i=Math.imul(P,q),n=n+Math.imul(C,H)|0,o=(o=o+Math.imul(C,G)|0)+Math.imul(R,H)|0,i=i+Math.imul(R,G)|0,n=n+Math.imul(S,V)|0,o=(o=o+Math.imul(S,W)|0)+Math.imul(A,V)|0,i=i+Math.imul(A,W)|0,n=n+Math.imul(T,Y)|0,o=(o=o+Math.imul(T,X)|0)+Math.imul(k,Y)|0,i=i+Math.imul(k,X)|0,n=n+Math.imul(w,Z)|0,o=(o=o+Math.imul(w,ee)|0)+Math.imul(_,Z)|0,i=i+Math.imul(_,ee)|0,n=n+Math.imul(g,re)|0,o=(o=o+Math.imul(g,ne)|0)+Math.imul(b,re)|0,i=i+Math.imul(b,ne)|0,n=n+Math.imul(p,ie)|0,o=(o=o+Math.imul(p,ae)|0)+Math.imul(y,ie)|0,i=i+Math.imul(y,ae)|0;var Te=(u+(n=n+Math.imul(d,ce)|0)|0)+((8191&(o=(o=o+Math.imul(d,ue)|0)+Math.imul(f,ce)|0))<<13)|0;u=((i=i+Math.imul(f,ue)|0)+(o>>>13)|0)+(Te>>>26)|0,Te&=67108863,n=Math.imul(B,F),o=(o=Math.imul(B,q))+Math.imul(D,F)|0,i=Math.imul(D,q),n=n+Math.imul(N,H)|0,o=(o=o+Math.imul(N,G)|0)+Math.imul(P,H)|0,i=i+Math.imul(P,G)|0,n=n+Math.imul(C,V)|0,o=(o=o+Math.imul(C,W)|0)+Math.imul(R,V)|0,i=i+Math.imul(R,W)|0,n=n+Math.imul(S,Y)|0,o=(o=o+Math.imul(S,X)|0)+Math.imul(A,Y)|0,i=i+Math.imul(A,X)|0,n=n+Math.imul(T,Z)|0,o=(o=o+Math.imul(T,ee)|0)+Math.imul(k,Z)|0,i=i+Math.imul(k,ee)|0,n=n+Math.imul(w,re)|0,o=(o=o+Math.imul(w,ne)|0)+Math.imul(_,re)|0,i=i+Math.imul(_,ne)|0,n=n+Math.imul(g,ie)|0,o=(o=o+Math.imul(g,ae)|0)+Math.imul(b,ie)|0,i=i+Math.imul(b,ae)|0,n=n+Math.imul(p,ce)|0,o=(o=o+Math.imul(p,ue)|0)+Math.imul(y,ce)|0,i=i+Math.imul(y,ue)|0;var ke=(u+(n=n+Math.imul(d,de)|0)|0)+((8191&(o=(o=o+Math.imul(d,fe)|0)+Math.imul(f,de)|0))<<13)|0;u=((i=i+Math.imul(f,fe)|0)+(o>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(L,F),o=(o=Math.imul(L,q))+Math.imul(U,F)|0,i=Math.imul(U,q),n=n+Math.imul(B,H)|0,o=(o=o+Math.imul(B,G)|0)+Math.imul(D,H)|0,i=i+Math.imul(D,G)|0,n=n+Math.imul(N,V)|0,o=(o=o+Math.imul(N,W)|0)+Math.imul(P,V)|0,i=i+Math.imul(P,W)|0,n=n+Math.imul(C,Y)|0,o=(o=o+Math.imul(C,X)|0)+Math.imul(R,Y)|0,i=i+Math.imul(R,X)|0,n=n+Math.imul(S,Z)|0,o=(o=o+Math.imul(S,ee)|0)+Math.imul(A,Z)|0,i=i+Math.imul(A,ee)|0,n=n+Math.imul(T,re)|0,o=(o=o+Math.imul(T,ne)|0)+Math.imul(k,re)|0,i=i+Math.imul(k,ne)|0,n=n+Math.imul(w,ie)|0,o=(o=o+Math.imul(w,ae)|0)+Math.imul(_,ie)|0,i=i+Math.imul(_,ae)|0,n=n+Math.imul(g,ce)|0,o=(o=o+Math.imul(g,ue)|0)+Math.imul(b,ce)|0,i=i+Math.imul(b,ue)|0,n=n+Math.imul(p,de)|0,o=(o=o+Math.imul(p,fe)|0)+Math.imul(y,de)|0,i=i+Math.imul(y,fe)|0;var $e=(u+(n=n+Math.imul(d,pe)|0)|0)+((8191&(o=(o=o+Math.imul(d,ye)|0)+Math.imul(f,pe)|0))<<13)|0;u=((i=i+Math.imul(f,ye)|0)+(o>>>13)|0)+($e>>>26)|0,$e&=67108863,n=Math.imul(L,H),o=(o=Math.imul(L,G))+Math.imul(U,H)|0,i=Math.imul(U,G),n=n+Math.imul(B,V)|0,o=(o=o+Math.imul(B,W)|0)+Math.imul(D,V)|0,i=i+Math.imul(D,W)|0,n=n+Math.imul(N,Y)|0,o=(o=o+Math.imul(N,X)|0)+Math.imul(P,Y)|0,i=i+Math.imul(P,X)|0,n=n+Math.imul(C,Z)|0,o=(o=o+Math.imul(C,ee)|0)+Math.imul(R,Z)|0,i=i+Math.imul(R,ee)|0,n=n+Math.imul(S,re)|0,o=(o=o+Math.imul(S,ne)|0)+Math.imul(A,re)|0,i=i+Math.imul(A,ne)|0,n=n+Math.imul(T,ie)|0,o=(o=o+Math.imul(T,ae)|0)+Math.imul(k,ie)|0,i=i+Math.imul(k,ae)|0,n=n+Math.imul(w,ce)|0,o=(o=o+Math.imul(w,ue)|0)+Math.imul(_,ce)|0,i=i+Math.imul(_,ue)|0,n=n+Math.imul(g,de)|0,o=(o=o+Math.imul(g,fe)|0)+Math.imul(b,de)|0,i=i+Math.imul(b,fe)|0;var Se=(u+(n=n+Math.imul(p,pe)|0)|0)+((8191&(o=(o=o+Math.imul(p,ye)|0)+Math.imul(y,pe)|0))<<13)|0;u=((i=i+Math.imul(y,ye)|0)+(o>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(L,V),o=(o=Math.imul(L,W))+Math.imul(U,V)|0,i=Math.imul(U,W),n=n+Math.imul(B,Y)|0,o=(o=o+Math.imul(B,X)|0)+Math.imul(D,Y)|0,i=i+Math.imul(D,X)|0,n=n+Math.imul(N,Z)|0,o=(o=o+Math.imul(N,ee)|0)+Math.imul(P,Z)|0,i=i+Math.imul(P,ee)|0,n=n+Math.imul(C,re)|0,o=(o=o+Math.imul(C,ne)|0)+Math.imul(R,re)|0,i=i+Math.imul(R,ne)|0,n=n+Math.imul(S,ie)|0,o=(o=o+Math.imul(S,ae)|0)+Math.imul(A,ie)|0,i=i+Math.imul(A,ae)|0,n=n+Math.imul(T,ce)|0,o=(o=o+Math.imul(T,ue)|0)+Math.imul(k,ce)|0,i=i+Math.imul(k,ue)|0,n=n+Math.imul(w,de)|0,o=(o=o+Math.imul(w,fe)|0)+Math.imul(_,de)|0,i=i+Math.imul(_,fe)|0;var Ae=(u+(n=n+Math.imul(g,pe)|0)|0)+((8191&(o=(o=o+Math.imul(g,ye)|0)+Math.imul(b,pe)|0))<<13)|0;u=((i=i+Math.imul(b,ye)|0)+(o>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(L,Y),o=(o=Math.imul(L,X))+Math.imul(U,Y)|0,i=Math.imul(U,X),n=n+Math.imul(B,Z)|0,o=(o=o+Math.imul(B,ee)|0)+Math.imul(D,Z)|0,i=i+Math.imul(D,ee)|0,n=n+Math.imul(N,re)|0,o=(o=o+Math.imul(N,ne)|0)+Math.imul(P,re)|0,i=i+Math.imul(P,ne)|0,n=n+Math.imul(C,ie)|0,o=(o=o+Math.imul(C,ae)|0)+Math.imul(R,ie)|0,i=i+Math.imul(R,ae)|0,n=n+Math.imul(S,ce)|0,o=(o=o+Math.imul(S,ue)|0)+Math.imul(A,ce)|0,i=i+Math.imul(A,ue)|0,n=n+Math.imul(T,de)|0,o=(o=o+Math.imul(T,fe)|0)+Math.imul(k,de)|0,i=i+Math.imul(k,fe)|0;var Ee=(u+(n=n+Math.imul(w,pe)|0)|0)+((8191&(o=(o=o+Math.imul(w,ye)|0)+Math.imul(_,pe)|0))<<13)|0;u=((i=i+Math.imul(_,ye)|0)+(o>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(L,Z),o=(o=Math.imul(L,ee))+Math.imul(U,Z)|0,i=Math.imul(U,ee),n=n+Math.imul(B,re)|0,o=(o=o+Math.imul(B,ne)|0)+Math.imul(D,re)|0,i=i+Math.imul(D,ne)|0,n=n+Math.imul(N,ie)|0,o=(o=o+Math.imul(N,ae)|0)+Math.imul(P,ie)|0,i=i+Math.imul(P,ae)|0,n=n+Math.imul(C,ce)|0,o=(o=o+Math.imul(C,ue)|0)+Math.imul(R,ce)|0,i=i+Math.imul(R,ue)|0,n=n+Math.imul(S,de)|0,o=(o=o+Math.imul(S,fe)|0)+Math.imul(A,de)|0,i=i+Math.imul(A,fe)|0;var Ce=(u+(n=n+Math.imul(T,pe)|0)|0)+((8191&(o=(o=o+Math.imul(T,ye)|0)+Math.imul(k,pe)|0))<<13)|0;u=((i=i+Math.imul(k,ye)|0)+(o>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,n=Math.imul(L,re),o=(o=Math.imul(L,ne))+Math.imul(U,re)|0,i=Math.imul(U,ne),n=n+Math.imul(B,ie)|0,o=(o=o+Math.imul(B,ae)|0)+Math.imul(D,ie)|0,i=i+Math.imul(D,ae)|0,n=n+Math.imul(N,ce)|0,o=(o=o+Math.imul(N,ue)|0)+Math.imul(P,ce)|0,i=i+Math.imul(P,ue)|0,n=n+Math.imul(C,de)|0,o=(o=o+Math.imul(C,fe)|0)+Math.imul(R,de)|0,i=i+Math.imul(R,fe)|0;var Re=(u+(n=n+Math.imul(S,pe)|0)|0)+((8191&(o=(o=o+Math.imul(S,ye)|0)+Math.imul(A,pe)|0))<<13)|0;u=((i=i+Math.imul(A,ye)|0)+(o>>>13)|0)+(Re>>>26)|0,Re&=67108863,n=Math.imul(L,ie),o=(o=Math.imul(L,ae))+Math.imul(U,ie)|0,i=Math.imul(U,ae),n=n+Math.imul(B,ce)|0,o=(o=o+Math.imul(B,ue)|0)+Math.imul(D,ce)|0,i=i+Math.imul(D,ue)|0,n=n+Math.imul(N,de)|0,o=(o=o+Math.imul(N,fe)|0)+Math.imul(P,de)|0,i=i+Math.imul(P,fe)|0;var Oe=(u+(n=n+Math.imul(C,pe)|0)|0)+((8191&(o=(o=o+Math.imul(C,ye)|0)+Math.imul(R,pe)|0))<<13)|0;u=((i=i+Math.imul(R,ye)|0)+(o>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,n=Math.imul(L,ce),o=(o=Math.imul(L,ue))+Math.imul(U,ce)|0,i=Math.imul(U,ue),n=n+Math.imul(B,de)|0,o=(o=o+Math.imul(B,fe)|0)+Math.imul(D,de)|0,i=i+Math.imul(D,fe)|0;var Ne=(u+(n=n+Math.imul(N,pe)|0)|0)+((8191&(o=(o=o+Math.imul(N,ye)|0)+Math.imul(P,pe)|0))<<13)|0;u=((i=i+Math.imul(P,ye)|0)+(o>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,n=Math.imul(L,de),o=(o=Math.imul(L,fe))+Math.imul(U,de)|0,i=Math.imul(U,fe);var Pe=(u+(n=n+Math.imul(B,pe)|0)|0)+((8191&(o=(o=o+Math.imul(B,ye)|0)+Math.imul(D,pe)|0))<<13)|0;u=((i=i+Math.imul(D,ye)|0)+(o>>>13)|0)+(Pe>>>26)|0,Pe&=67108863;var Me=(u+(n=Math.imul(L,pe))|0)+((8191&(o=(o=Math.imul(L,ye))+Math.imul(U,pe)|0))<<13)|0;return u=((i=Math.imul(U,ye))+(o>>>13)|0)+(Me>>>26)|0,Me&=67108863,c[0]=me,c[1]=ge,c[2]=be,c[3]=ve,c[4]=we,c[5]=_e,c[6]=Ie,c[7]=Te,c[8]=ke,c[9]=$e,c[10]=Se,c[11]=Ae,c[12]=Ee,c[13]=Ce,c[14]=Re,c[15]=Oe,c[16]=Ne,c[17]=Pe,c[18]=Me,0!==u&&(c[19]=u,r.length++),r};function p(e,t,r){return(new y).mulp(e,t,r)}function y(e,t){this.x=e,this.y=t}Math.imul||(h=f),o.prototype.mulTo=function(e,t){var r,n=this.length+e.length;return r=10===this.length&&10===e.length?h(this,e,t):n<63?f(this,e,t):n<1024?function(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var n=0,o=0,i=0;i>>26)|0)>>>26,a&=67108863}r.words[i]=s,n=a,a=o}return 0!==n?r.words[i]=n:r.length--,r.strip()}(this,e,t):p(this,e,t),r},y.prototype.makeRBT=function(e){for(var t=new Array(e),r=o.prototype._countBits(e)-1,n=0;n>=1;return n},y.prototype.permute=function(e,t,r,n,o,i){for(var a=0;a>>=1)o++;return 1<>>=13,n[2*a+1]=8191&i,i>>>=13;for(a=2*t;a>=26,t+=o/67108864|0,t+=i>>>26,this.words[n]=67108863&i}return 0!==t&&(this.words[n]=t,this.length++),this},o.prototype.muln=function(e){return this.clone().imuln(e)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r>>o}return t}(e);if(0===t.length)return new o(1);for(var r=this,n=0;n=0);var t,n=e%26,o=(e-n)/26,i=67108863>>>26-n<<26-n;if(0!==n){var a=0;for(t=0;t>>26-n}a&&(this.words[t]=a,this.length++)}if(0!==o){for(t=this.length-1;t>=0;t--)this.words[t+o]=this.words[t];for(t=0;t=0),o=t?(t-t%26)/26:0;var i=e%26,a=Math.min((e-i)/26,this.length),s=67108863^67108863>>>i<a)for(this.length-=a,u=0;u=0&&(0!==l||u>=o);u--){var d=0|this.words[u];this.words[u]=l<<26-i|d>>>i,l=d&s}return c&&0!==l&&(c.words[c.length++]=l),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(e,t,n){return r(0===this.negative),this.iushrn(e,t,n)},o.prototype.shln=function(e){return this.clone().ishln(e)},o.prototype.ushln=function(e){return this.clone().iushln(e)},o.prototype.shrn=function(e){return this.clone().ishrn(e)},o.prototype.ushrn=function(e){return this.clone().iushrn(e)},o.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26,o=1<=0);var t=e%26,n=(e-t)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==t&&n++,this.length=Math.min(n,this.length),0!==t){var o=67108863^67108863>>>t<=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},o.prototype.isubn=function(e){if(r("number"==typeof e),r(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t>26)-(c/67108864|0),this.words[o+n]=67108863&i}for(;o>26,this.words[o+n]=67108863&i;if(0===s)return this.strip();for(r(-1===s),s=0,o=0;o>26,this.words[o]=67108863&i;return this.negative=1,this.strip()},o.prototype._wordDiv=function(e,t){var r=(this.length,e.length),n=this.clone(),i=e,a=0|i.words[i.length-1];0!==(r=26-this._countBits(a))&&(i=i.ushln(r),n.iushln(r),a=0|i.words[i.length-1]);var s,c=n.length-i.length;if("mod"!==t){(s=new o(null)).length=c+1,s.words=new Array(s.length);for(var u=0;u=0;d--){var f=67108864*(0|n.words[i.length+d])+(0|n.words[i.length+d-1]);for(f=Math.min(f/a|0,67108863),n._ishlnsubmul(i,f,d);0!==n.negative;)f--,n.negative=0,n._ishlnsubmul(i,1,d),n.isZero()||(n.negative^=1);s&&(s.words[d]=f)}return s&&s.strip(),n.strip(),"div"!==t&&0!==r&&n.iushrn(r),{div:s||null,mod:n}},o.prototype.divmod=function(e,t,n){return r(!e.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===e.negative?(s=this.neg().divmod(e,t),"mod"!==t&&(i=s.div.neg()),"div"!==t&&(a=s.mod.neg(),n&&0!==a.negative&&a.iadd(e)),{div:i,mod:a}):0===this.negative&&0!==e.negative?(s=this.divmod(e.neg(),t),"mod"!==t&&(i=s.div.neg()),{div:i,mod:s.mod}):this.negative&e.negative?(s=this.neg().divmod(e.neg(),t),"div"!==t&&(a=s.mod.neg(),n&&0!==a.negative&&a.isub(e)),{div:s.div,mod:a}):e.length>this.length||this.cmp(e)<0?{div:new o(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new o(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new o(this.modn(e.words[0]))}:this._wordDiv(e,t);var i,a,s},o.prototype.div=function(e){return this.divmod(e,"div",!1).div},o.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},o.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},o.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,n=e.ushrn(1),o=e.andln(1),i=r.cmp(n);return i<0||1===o&&0===i?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},o.prototype.modn=function(e){r(e<=67108863);for(var t=(1<<26)%e,n=0,o=this.length-1;o>=0;o--)n=(t*n+(0|this.words[o]))%e;return n},o.prototype.idivn=function(e){r(e<=67108863);for(var t=0,n=this.length-1;n>=0;n--){var o=(0|this.words[n])+67108864*t;this.words[n]=o/e|0,t=o%e}return this.strip()},o.prototype.divn=function(e){return this.clone().idivn(e)},o.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i=new o(1),a=new o(0),s=new o(0),c=new o(1),u=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++u;for(var l=n.clone(),d=t.clone();!t.isZero();){for(var f=0,h=1;!(t.words[0]&h)&&f<26;++f,h<<=1);if(f>0)for(t.iushrn(f);f-- >0;)(i.isOdd()||a.isOdd())&&(i.iadd(l),a.isub(d)),i.iushrn(1),a.iushrn(1);for(var p=0,y=1;!(n.words[0]&y)&&p<26;++p,y<<=1);if(p>0)for(n.iushrn(p);p-- >0;)(s.isOdd()||c.isOdd())&&(s.iadd(l),c.isub(d)),s.iushrn(1),c.iushrn(1);t.cmp(n)>=0?(t.isub(n),i.isub(s),a.isub(c)):(n.isub(t),s.isub(i),c.isub(a))}return{a:s,b:c,gcd:n.iushln(u)}},o.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i,a=new o(1),s=new o(0),c=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var u=0,l=1;!(t.words[0]&l)&&u<26;++u,l<<=1);if(u>0)for(t.iushrn(u);u-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);for(var d=0,f=1;!(n.words[0]&f)&&d<26;++d,f<<=1);if(d>0)for(n.iushrn(d);d-- >0;)s.isOdd()&&s.iadd(c),s.iushrn(1);t.cmp(n)>=0?(t.isub(n),a.isub(s)):(n.isub(t),s.isub(a))}return(i=0===t.cmpn(1)?a:s).cmpn(0)<0&&i.iadd(e),i},o.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var n=0;t.isEven()&&r.isEven();n++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var o=t.cmp(r);if(o<0){var i=t;t=r,r=i}else if(0===o||0===r.cmpn(1))break;t.isub(r)}return r.iushln(n)},o.prototype.invm=function(e){return this.egcd(e).a.umod(e)},o.prototype.isEven=function(){return!(1&this.words[0])},o.prototype.isOdd=function(){return!(1&~this.words[0])},o.prototype.andln=function(e){return this.words[0]&e},o.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,n=(e-t)/26,o=1<>>26,s&=67108863,this.words[a]=s}return 0!==i&&(this.words[a]=i,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this.strip(),this.length>1)t=1;else{n&&(e=-e),r(e<=67108863,"Number is too big");var o=0|this.words[0];t=o===e?0:oe.length)return 1;if(this.length=0;r--){var n=0|this.words[r],o=0|e.words[r];if(n!==o){no&&(t=1);break}}return t},o.prototype.gtn=function(e){return 1===this.cmpn(e)},o.prototype.gt=function(e){return 1===this.cmp(e)},o.prototype.gten=function(e){return this.cmpn(e)>=0},o.prototype.gte=function(e){return this.cmp(e)>=0},o.prototype.ltn=function(e){return-1===this.cmpn(e)},o.prototype.lt=function(e){return-1===this.cmp(e)},o.prototype.lten=function(e){return this.cmpn(e)<=0},o.prototype.lte=function(e){return this.cmp(e)<=0},o.prototype.eqn=function(e){return 0===this.cmpn(e)},o.prototype.eq=function(e){return 0===this.cmp(e)},o.red=function(e){return new I(e)},o.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},o.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(e){return this.red=e,this},o.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},o.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},o.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},o.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},o.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},o.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},o.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},o.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},o.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var m={k256:null,p224:null,p192:null,p25519:null};function g(e,t){this.name=e,this.p=new o(t,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function b(){g.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function v(){g.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function w(){g.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function _(){g.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function I(e){if("string"==typeof e){var t=o._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function T(e){I.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}g.prototype._tmp=function(){var e=new o(null);return e.words=new Array(Math.ceil(this.n/13)),e},g.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var n=t0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},g.prototype.split=function(e,t){e.iushrn(this.n,0,t)},g.prototype.imulK=function(e){return e.imul(this.k)},n(b,g),b.prototype.split=function(e,t){for(var r=4194303,n=Math.min(e.length,9),o=0;o>>22,i=a}i>>>=22,e.words[o-10]=i,0===i&&e.length>10?e.length-=10:e.length-=9},b.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r>>=26,e.words[r]=o,t=n}return 0!==t&&(e.words[e.length++]=t),e},o._prime=function(e){if(m[e])return m[e];var t;if("k256"===e)t=new b;else if("p224"===e)t=new v;else if("p192"===e)t=new w;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new _}return m[e]=t,t},I.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},I.prototype._verify2=function(e,t){r(!(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},I.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},I.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},I.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},I.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},I.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},I.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},I.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},I.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},I.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},I.prototype.isqr=function(e){return this.imul(e,e.clone())},I.prototype.sqr=function(e){return this.mul(e,e)},I.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var n=this.m.add(new o(1)).iushrn(2);return this.pow(e,n)}for(var i=this.m.subn(1),a=0;!i.isZero()&&0===i.andln(1);)a++,i.iushrn(1);r(!i.isZero());var s=new o(1).toRed(this),c=s.redNeg(),u=this.m.subn(1).iushrn(1),l=this.m.bitLength();for(l=new o(2*l*l).toRed(this);0!==this.pow(l,u).cmp(c);)l.redIAdd(c);for(var d=this.pow(l,i),f=this.pow(e,i.addn(1).iushrn(1)),h=this.pow(e,i),p=a;0!==h.cmp(s);){for(var y=h,m=0;0!==y.cmp(s);m++)y=y.redSqr();r(m=0;n--){for(var u=t.words[n],l=c-1;l>=0;l--){var d=u>>l&1;i!==r[0]&&(i=this.sqr(i)),0!==d||0!==a?(a<<=1,a|=d,(4===++s||0===n&&0===l)&&(i=this.mul(i,r[a]),s=0,a=0)):s=0}c=26}return i},I.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},I.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},o.mont=function(e){return new T(e)},n(T,I),T.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},T.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},T.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=r.isub(n).iushrn(this.shift),i=o;return o.cmp(this.m)>=0?i=o.isub(this.m):o.cmpn(0)<0&&(i=o.iadd(this.m)),i._forceRed(this)},T.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new o(0)._forceRed(this);var r=e.mul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},T.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e,commonjsGlobal)}(bn$3);var bnExports$1=bn$3.exports;!function(e){var t=e,r=bnExports$1,n=minimalisticAssert$1,o=utils$O;t.assert=n,t.toArray=o.toArray,t.zero2=o.zero2,t.toHex=o.toHex,t.encode=o.encode,t.getNAF=function(e,t,r){var n,o=new Array(Math.max(e.bitLength(),r)+1);for(n=0;n(i>>1)-1?(i>>1)-c:c,a.isubn(s)):s=0,o[n]=s,a.iushrn(1)}return o},t.getJSF=function(e,t){var r=[[],[]];e=e.clone(),t=t.clone();for(var n,o=0,i=0;e.cmpn(-o)>0||t.cmpn(-i)>0;){var a,s,c=e.andln(3)+o&3,u=t.andln(3)+i&3;3===c&&(c=-1),3===u&&(u=-1),a=1&c?3!==(n=e.andln(7)+o&7)&&5!==n||2!==u?c:-c:0,r[0].push(a),s=1&u?3!==(n=t.andln(7)+i&7)&&5!==n||2!==c?u:-u:0,r[1].push(s),2*o===a+1&&(o=1-o),2*i===s+1&&(i=1-i),e.iushrn(1),t.iushrn(1)}return r},t.cachedProperty=function(e,t,r){var n="_"+t;e.prototype[t]=function(){return void 0!==this[n]?this[n]:this[n]=r.call(this)}},t.parseBytes=function(e){return"string"==typeof e?t.toArray(e,"hex"):e},t.intFromLE=function(e){return new r(e,"hex","le")}}(utils$p);var curve$1={},BN$f=bnExports$1,utils$o=utils$p,getNAF$1=utils$o.getNAF,getJSF$1=utils$o.getJSF,assert$h=utils$o.assert;function BaseCurve$1(e,t){this.type=e,this.p=new BN$f(t.p,16),this.red=t.prime?BN$f.red(t.prime):BN$f.mont(this.p),this.zero=new BN$f(0).toRed(this.red),this.one=new BN$f(1).toRed(this.red),this.two=new BN$f(2).toRed(this.red),this.n=t.n&&new BN$f(t.n,16),this.g=t.g&&this.pointFromJSON(t.g,t.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var r=this.n&&this.p.div(this.n);!r||r.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}var base$1=BaseCurve$1;function BasePoint$1(e,t){this.curve=e,this.type=t,this.precomputed=null}BaseCurve$1.prototype.point=function(){throw new Error("Not implemented")},BaseCurve$1.prototype.validate=function(){throw new Error("Not implemented")},BaseCurve$1.prototype._fixedNafMul=function(e,t){assert$h(e.precomputed);var r=e._getDoubles(),n=getNAF$1(t,1,this._bitLength),o=(1<=i;c--)a=(a<<1)+n[c];s.push(a)}for(var u=this.jpoint(null,null,null),l=this.jpoint(null,null,null),d=o;d>0;d--){for(i=0;i=0;s--){for(var c=0;s>=0&&0===i[s];s--)c++;if(s>=0&&c++,a=a.dblp(c),s<0)break;var u=i[s];assert$h(0!==u),a="affine"===e.type?u>0?a.mixedAdd(o[u-1>>1]):a.mixedAdd(o[-u-1>>1].neg()):u>0?a.add(o[u-1>>1]):a.add(o[-u-1>>1].neg())}return"affine"===e.type?a.toP():a},BaseCurve$1.prototype._wnafMulAdd=function(e,t,r,n,o){var i,a,s,c=this._wnafT1,u=this._wnafT2,l=this._wnafT3,d=0;for(i=0;i=1;i-=2){var h=i-1,p=i;if(1===c[h]&&1===c[p]){var y=[t[h],null,null,t[p]];0===t[h].y.cmp(t[p].y)?(y[1]=t[h].add(t[p]),y[2]=t[h].toJ().mixedAdd(t[p].neg())):0===t[h].y.cmp(t[p].y.redNeg())?(y[1]=t[h].toJ().mixedAdd(t[p]),y[2]=t[h].add(t[p].neg())):(y[1]=t[h].toJ().mixedAdd(t[p]),y[2]=t[h].toJ().mixedAdd(t[p].neg()));var m=[-3,-1,-5,-7,0,7,5,1,3],g=getJSF$1(r[h],r[p]);for(d=Math.max(g[0].length,d),l[h]=new Array(d),l[p]=new Array(d),a=0;a=0;i--){for(var I=0;i>=0;){var T=!0;for(a=0;a=0&&I++,w=w.dblp(I),i<0)break;for(a=0;a0?s=u[a][k-1>>1]:k<0&&(s=u[a][-k-1>>1].neg()),w="affine"===s.type?w.mixedAdd(s):w.add(s))}}for(i=0;i=Math.ceil((e.bitLength()+1)/t.step)},BasePoint$1.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var r=[this],n=this,o=0;o=0&&(i=t,a=r),n.negative&&(n=n.neg(),o=o.neg()),i.negative&&(i=i.neg(),a=a.neg()),[{a:n,b:o},{a:i,b:a}]},ShortCurve$1.prototype._endoSplit=function(e){var t=this.endo.basis,r=t[0],n=t[1],o=n.b.mul(e).divRound(this.n),i=r.b.neg().mul(e).divRound(this.n),a=o.mul(r.a),s=i.mul(n.a),c=o.mul(r.b),u=i.mul(n.b);return{k1:e.sub(a).sub(s),k2:c.add(u).neg()}},ShortCurve$1.prototype.pointFromX=function(e,t){(e=new BN$e(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),n=r.redSqrt();if(0!==n.redSqr().redSub(r).cmp(this.zero))throw new Error("invalid point");var o=n.fromRed().isOdd();return(t&&!o||!t&&o)&&(n=n.redNeg()),this.point(e,n)},ShortCurve$1.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,r=e.y,n=this.a.redMul(t),o=t.redSqr().redMul(t).redIAdd(n).redIAdd(this.b);return 0===r.redSqr().redISub(o).cmpn(0)},ShortCurve$1.prototype._endoWnafMulAdd=function(e,t,r){for(var n=this._endoWnafT1,o=this._endoWnafT2,i=0;i":""},Point$5.prototype.isInfinity=function(){return this.inf},Point$5.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var r=t.redSqr().redISub(this.x).redISub(e.x),n=t.redMul(this.x.redSub(r)).redISub(this.y);return this.curve.point(r,n)},Point$5.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,r=this.x.redSqr(),n=e.redInvm(),o=r.redAdd(r).redIAdd(r).redIAdd(t).redMul(n),i=o.redSqr().redISub(this.x.redAdd(this.x)),a=o.redMul(this.x.redSub(i)).redISub(this.y);return this.curve.point(i,a)},Point$5.prototype.getX=function(){return this.x.fromRed()},Point$5.prototype.getY=function(){return this.y.fromRed()},Point$5.prototype.mul=function(e){return e=new BN$e(e,16),this.isInfinity()?this:this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},Point$5.prototype.mulAdd=function(e,t,r){var n=[this,t],o=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,o):this.curve._wnafMulAdd(1,n,o,2)},Point$5.prototype.jmulAdd=function(e,t,r){var n=[this,t],o=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,o,!0):this.curve._wnafMulAdd(1,n,o,2,!0)},Point$5.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},Point$5.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var r=this.precomputed,n=function(e){return e.neg()};t.precomputed={naf:r.naf&&{wnd:r.naf.wnd,points:r.naf.points.map(n)},doubles:r.doubles&&{step:r.doubles.step,points:r.doubles.points.map(n)}}}return t},Point$5.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},inherits$5(JPoint$1,Base$5.BasePoint),ShortCurve$1.prototype.jpoint=function(e,t,r){return new JPoint$1(this,e,t,r)},JPoint$1.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),r=this.x.redMul(t),n=this.y.redMul(t).redMul(e);return this.curve.point(r,n)},JPoint$1.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},JPoint$1.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),r=this.z.redSqr(),n=this.x.redMul(t),o=e.x.redMul(r),i=this.y.redMul(t.redMul(e.z)),a=e.y.redMul(r.redMul(this.z)),s=n.redSub(o),c=i.redSub(a);if(0===s.cmpn(0))return 0!==c.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var u=s.redSqr(),l=u.redMul(s),d=n.redMul(u),f=c.redSqr().redIAdd(l).redISub(d).redISub(d),h=c.redMul(d.redISub(f)).redISub(i.redMul(l)),p=this.z.redMul(e.z).redMul(s);return this.curve.jpoint(f,h,p)},JPoint$1.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),r=this.x,n=e.x.redMul(t),o=this.y,i=e.y.redMul(t).redMul(this.z),a=r.redSub(n),s=o.redSub(i);if(0===a.cmpn(0))return 0!==s.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var c=a.redSqr(),u=c.redMul(a),l=r.redMul(c),d=s.redSqr().redIAdd(u).redISub(l).redISub(l),f=s.redMul(l.redISub(d)).redISub(o.redMul(u)),h=this.z.redMul(a);return this.curve.jpoint(d,f,h)},JPoint$1.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();var t;if(this.curve.zeroA||this.curve.threeA){var r=this;for(t=0;t=0)return!1;if(r.redIAdd(o),0===this.x.cmp(r))return!0}},JPoint$1.prototype.inspect=function(){return this.isInfinity()?"":""},JPoint$1.prototype.isInfinity=function(){return 0===this.z.cmpn(0)};var BN$d=bnExports$1,inherits$4=inherits_browserExports,Base$4=base$1,utils$m=utils$p;function MontCurve$1(e){Base$4.call(this,"mont",e),this.a=new BN$d(e.a,16).toRed(this.red),this.b=new BN$d(e.b,16).toRed(this.red),this.i4=new BN$d(4).toRed(this.red).redInvm(),this.two=new BN$d(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}inherits$4(MontCurve$1,Base$4);var mont$1=MontCurve$1;function Point$4(e,t,r){Base$4.BasePoint.call(this,e,"projective"),null===t&&null===r?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new BN$d(t,16),this.z=new BN$d(r,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}MontCurve$1.prototype.validate=function(e){var t=e.normalize().x,r=t.redSqr(),n=r.redMul(t).redAdd(r.redMul(this.a)).redAdd(t);return 0===n.redSqrt().redSqr().cmp(n)},inherits$4(Point$4,Base$4.BasePoint),MontCurve$1.prototype.decodePoint=function(e,t){return this.point(utils$m.toArray(e,t),1)},MontCurve$1.prototype.point=function(e,t){return new Point$4(this,e,t)},MontCurve$1.prototype.pointFromJSON=function(e){return Point$4.fromJSON(this,e)},Point$4.prototype.precompute=function(){},Point$4.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},Point$4.fromJSON=function(e,t){return new Point$4(e,t[0],t[1]||e.one)},Point$4.prototype.inspect=function(){return this.isInfinity()?"":""},Point$4.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},Point$4.prototype.dbl=function(){var e=this.x.redAdd(this.z).redSqr(),t=this.x.redSub(this.z).redSqr(),r=e.redSub(t),n=e.redMul(t),o=r.redMul(t.redAdd(this.curve.a24.redMul(r)));return this.curve.point(n,o)},Point$4.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},Point$4.prototype.diffAdd=function(e,t){var r=this.x.redAdd(this.z),n=this.x.redSub(this.z),o=e.x.redAdd(e.z),i=e.x.redSub(e.z).redMul(r),a=o.redMul(n),s=t.z.redMul(i.redAdd(a).redSqr()),c=t.x.redMul(i.redISub(a).redSqr());return this.curve.point(s,c)},Point$4.prototype.mul=function(e){for(var t=e.clone(),r=this,n=this.curve.point(null,null),o=[];0!==t.cmpn(0);t.iushrn(1))o.push(t.andln(1));for(var i=o.length-1;i>=0;i--)0===o[i]?(r=r.diffAdd(n,this),n=n.dbl()):(n=r.diffAdd(n,this),r=r.dbl());return n},Point$4.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},Point$4.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},Point$4.prototype.eq=function(e){return 0===this.getX().cmp(e.getX())},Point$4.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},Point$4.prototype.getX=function(){return this.normalize(),this.x.fromRed()};var utils$l=utils$p,BN$c=bnExports$1,inherits$3=inherits_browserExports,Base$3=base$1,assert$f=utils$l.assert;function EdwardsCurve$1(e){this.twisted=1!=(0|e.a),this.mOneA=this.twisted&&-1==(0|e.a),this.extended=this.mOneA,Base$3.call(this,"edwards",e),this.a=new BN$c(e.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new BN$c(e.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new BN$c(e.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),assert$f(!this.twisted||0===this.c.fromRed().cmpn(1)),this.oneC=1==(0|e.c)}inherits$3(EdwardsCurve$1,Base$3);var edwards$1=EdwardsCurve$1;function Point$3(e,t,r,n,o){Base$3.BasePoint.call(this,e,"projective"),null===t&&null===r&&null===n?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new BN$c(t,16),this.y=new BN$c(r,16),this.z=n?new BN$c(n,16):this.curve.one,this.t=o&&new BN$c(o,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}EdwardsCurve$1.prototype._mulA=function(e){return this.mOneA?e.redNeg():this.a.redMul(e)},EdwardsCurve$1.prototype._mulC=function(e){return this.oneC?e:this.c.redMul(e)},EdwardsCurve$1.prototype.jpoint=function(e,t,r,n){return this.point(e,t,r,n)},EdwardsCurve$1.prototype.pointFromX=function(e,t){(e=new BN$c(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr(),n=this.c2.redSub(this.a.redMul(r)),o=this.one.redSub(this.c2.redMul(this.d).redMul(r)),i=n.redMul(o.redInvm()),a=i.redSqrt();if(0!==a.redSqr().redSub(i).cmp(this.zero))throw new Error("invalid point");var s=a.fromRed().isOdd();return(t&&!s||!t&&s)&&(a=a.redNeg()),this.point(e,a)},EdwardsCurve$1.prototype.pointFromY=function(e,t){(e=new BN$c(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr(),n=r.redSub(this.c2),o=r.redMul(this.d).redMul(this.c2).redSub(this.a),i=n.redMul(o.redInvm());if(0===i.cmp(this.zero)){if(t)throw new Error("invalid point");return this.point(this.zero,e)}var a=i.redSqrt();if(0!==a.redSqr().redSub(i).cmp(this.zero))throw new Error("invalid point");return a.fromRed().isOdd()!==t&&(a=a.redNeg()),this.point(a,e)},EdwardsCurve$1.prototype.validate=function(e){if(e.isInfinity())return!0;e.normalize();var t=e.x.redSqr(),r=e.y.redSqr(),n=t.redMul(this.a).redAdd(r),o=this.c2.redMul(this.one.redAdd(this.d.redMul(t).redMul(r)));return 0===n.cmp(o)},inherits$3(Point$3,Base$3.BasePoint),EdwardsCurve$1.prototype.pointFromJSON=function(e){return Point$3.fromJSON(this,e)},EdwardsCurve$1.prototype.point=function(e,t,r,n){return new Point$3(this,e,t,r,n)},Point$3.fromJSON=function(e,t){return new Point$3(e,t[0],t[1],t[2])},Point$3.prototype.inspect=function(){return this.isInfinity()?"":""},Point$3.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},Point$3.prototype._extDbl=function(){var e=this.x.redSqr(),t=this.y.redSqr(),r=this.z.redSqr();r=r.redIAdd(r);var n=this.curve._mulA(e),o=this.x.redAdd(this.y).redSqr().redISub(e).redISub(t),i=n.redAdd(t),a=i.redSub(r),s=n.redSub(t),c=o.redMul(a),u=i.redMul(s),l=o.redMul(s),d=a.redMul(i);return this.curve.point(c,u,d,l)},Point$3.prototype._projDbl=function(){var e,t,r,n,o,i,a=this.x.redAdd(this.y).redSqr(),s=this.x.redSqr(),c=this.y.redSqr();if(this.curve.twisted){var u=(n=this.curve._mulA(s)).redAdd(c);this.zOne?(e=a.redSub(s).redSub(c).redMul(u.redSub(this.curve.two)),t=u.redMul(n.redSub(c)),r=u.redSqr().redSub(u).redSub(u)):(o=this.z.redSqr(),i=u.redSub(o).redISub(o),e=a.redSub(s).redISub(c).redMul(i),t=u.redMul(n.redSub(c)),r=u.redMul(i))}else n=s.redAdd(c),o=this.curve._mulC(this.z).redSqr(),i=n.redSub(o).redSub(o),e=this.curve._mulC(a.redISub(n)).redMul(i),t=this.curve._mulC(n).redMul(s.redISub(c)),r=n.redMul(i);return this.curve.point(e,t,r)},Point$3.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},Point$3.prototype._extAdd=function(e){var t=this.y.redSub(this.x).redMul(e.y.redSub(e.x)),r=this.y.redAdd(this.x).redMul(e.y.redAdd(e.x)),n=this.t.redMul(this.curve.dd).redMul(e.t),o=this.z.redMul(e.z.redAdd(e.z)),i=r.redSub(t),a=o.redSub(n),s=o.redAdd(n),c=r.redAdd(t),u=i.redMul(a),l=s.redMul(c),d=i.redMul(c),f=a.redMul(s);return this.curve.point(u,l,f,d)},Point$3.prototype._projAdd=function(e){var t,r,n=this.z.redMul(e.z),o=n.redSqr(),i=this.x.redMul(e.x),a=this.y.redMul(e.y),s=this.curve.d.redMul(i).redMul(a),c=o.redSub(s),u=o.redAdd(s),l=this.x.redAdd(this.y).redMul(e.x.redAdd(e.y)).redISub(i).redISub(a),d=n.redMul(c).redMul(l);return this.curve.twisted?(t=n.redMul(u).redMul(a.redSub(this.curve._mulA(i))),r=c.redMul(u)):(t=n.redMul(u).redMul(a.redSub(i)),r=this.curve._mulC(c).redMul(u)),this.curve.point(d,t,r)},Point$3.prototype.add=function(e){return this.isInfinity()?e:e.isInfinity()?this:this.curve.extended?this._extAdd(e):this._projAdd(e)},Point$3.prototype.mul=function(e){return this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve._wnafMul(this,e)},Point$3.prototype.mulAdd=function(e,t,r){return this.curve._wnafMulAdd(1,[this,t],[e,r],2,!1)},Point$3.prototype.jmulAdd=function(e,t,r){return this.curve._wnafMulAdd(1,[this,t],[e,r],2,!0)},Point$3.prototype.normalize=function(){if(this.zOne)return this;var e=this.z.redInvm();return this.x=this.x.redMul(e),this.y=this.y.redMul(e),this.t&&(this.t=this.t.redMul(e)),this.z=this.curve.one,this.zOne=!0,this},Point$3.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},Point$3.prototype.getX=function(){return this.normalize(),this.x.fromRed()},Point$3.prototype.getY=function(){return this.normalize(),this.y.fromRed()},Point$3.prototype.eq=function(e){return this===e||0===this.getX().cmp(e.getX())&&0===this.getY().cmp(e.getY())},Point$3.prototype.eqXToP=function(e){var t=e.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(t))return!0;for(var r=e.clone(),n=this.curve.redN.redMul(this.z);;){if(r.iadd(this.curve.n),r.cmp(this.curve.p)>=0)return!1;if(t.redIAdd(n),0===this.x.cmp(t))return!0}},Point$3.prototype.toP=Point$3.prototype.normalize,Point$3.prototype.mixedAdd=Point$3.prototype.add,function(e){var t=e;t.base=base$1,t.short=short$1,t.mont=mont$1,t.edwards=edwards$1}(curve$1);var curves$5={},secp256k1$1,hasRequiredSecp256k1$1;function requireSecp256k1$1(){return hasRequiredSecp256k1$1?secp256k1$1:(hasRequiredSecp256k1$1=1,secp256k1$1={doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}})}!function(e){var t,r=e,n=hash$8,o=curve$1,i=utils$p.assert;function a(e){"short"===e.type?this.curve=new o.short(e):"edwards"===e.type?this.curve=new o.edwards(e):this.curve=new o.mont(e),this.g=this.curve.g,this.n=this.curve.n,this.hash=e.hash,i(this.g.validate(),"Invalid curve"),i(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function s(e,t){Object.defineProperty(r,e,{configurable:!0,enumerable:!0,get:function(){var n=new a(t);return Object.defineProperty(r,e,{configurable:!0,enumerable:!0,value:n}),n}})}r.PresetCurve=a,s("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:n.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),s("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:n.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),s("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:n.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),s("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:n.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),s("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:n.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),s("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:n.sha256,gRed:!1,g:["9"]}),s("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:n.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{t=requireSecp256k1$1()}catch(e2){t=void 0}s("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:n.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",t]})}(curves$5);var BN$b=bnExports$1,utils$k=utils$p,assert$e=utils$k.assert;function KeyPair$7(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}var key$3=KeyPair$7;KeyPair$7.fromPublic=function(e,t,r){return t instanceof KeyPair$7?t:new KeyPair$7(e,{pub:t,pubEnc:r})},KeyPair$7.fromPrivate=function(e,t,r){return t instanceof KeyPair$7?t:new KeyPair$7(e,{priv:t,privEnc:r})},KeyPair$7.prototype.validate=function(){var e=this.getPublic();return e.isInfinity()?{result:!1,reason:"Invalid public key"}:e.validate()?e.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},KeyPair$7.prototype.getPublic=function(e,t){return"string"==typeof e&&(t=e,e=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),t?this.pub.encode(t,e):this.pub},KeyPair$7.prototype.getPrivate=function(e){return"hex"===e?this.priv.toString(16,2):this.priv},KeyPair$7.prototype._importPrivate=function(e,t){this.priv=new BN$b(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},KeyPair$7.prototype._importPublic=function(e,t){if(e.x||e.y)return"mont"===this.ec.curve.type?assert$e(e.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||assert$e(e.x&&e.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(e.x,e.y));this.pub=this.ec.curve.decodePoint(e,t)},KeyPair$7.prototype.derive=function(e){return e.validate()||assert$e(e.validate(),"public point not validated"),e.mul(this.priv).getX()},KeyPair$7.prototype.sign=function(e,t,r){return this.ec.sign(e,this,t,r)},KeyPair$7.prototype.verify=function(e,t,r){return this.ec.verify(e,t,this,void 0,r)},KeyPair$7.prototype.inspect=function(){return""};var BN$a=bnExports$1,utils$j=utils$p,assert$d=utils$j.assert;function Signature$7(e,t){if(e instanceof Signature$7)return e;this._importDER(e,t)||(assert$d(e.r&&e.s,"Signature without r or s"),this.r=new BN$a(e.r,16),this.s=new BN$a(e.s,16),void 0===e.recoveryParam?this.recoveryParam=null:this.recoveryParam=e.recoveryParam)}var signature$3=Signature$7;function Position$1(){this.place=0}function getLength$1(e,t){var r=e[t.place++];if(!(128&r))return r;var n=15&r;if(0===n||n>4)return!1;if(0===e[t.place])return!1;for(var o=0,i=0,a=t.place;i>>=0;return!(o<=127)&&(t.place=a,o)}function rmPadding$1(e){for(var t=0,r=e.length-1;!e[t]&&!(128&e[t+1])&&t>>3);for(e.push(128|r);--r;)e.push(t>>>(r<<3)&255);e.push(t)}}Signature$7.prototype._importDER=function(e,t){e=utils$j.toArray(e,t);var r=new Position$1;if(48!==e[r.place++])return!1;var n=getLength$1(e,r);if(!1===n)return!1;if(n+r.place!==e.length)return!1;if(2!==e[r.place++])return!1;var o=getLength$1(e,r);if(!1===o)return!1;if(128&e[r.place])return!1;var i=e.slice(r.place,o+r.place);if(r.place+=o,2!==e[r.place++])return!1;var a=getLength$1(e,r);if(!1===a)return!1;if(e.length!==a+r.place)return!1;if(128&e[r.place])return!1;var s=e.slice(r.place,a+r.place);if(0===i[0]){if(!(128&i[1]))return!1;i=i.slice(1)}if(0===s[0]){if(!(128&s[1]))return!1;s=s.slice(1)}return this.r=new BN$a(i),this.s=new BN$a(s),this.recoveryParam=null,!0},Signature$7.prototype.toDER=function(e){var t=this.r.toArray(),r=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&r[0]&&(r=[0].concat(r)),t=rmPadding$1(t),r=rmPadding$1(r);!(r[0]||128&r[1]);)r=r.slice(1);var n=[2];constructLength$1(n,t.length),(n=n.concat(t)).push(2),constructLength$1(n,r.length);var o=n.concat(r),i=[48];return constructLength$1(i,o.length),i=i.concat(o),utils$j.encode(i,e)};var BN$9=bnExports$1,HmacDRBG$1=hmacDrbg$1,utils$i=utils$p,curves$4=curves$5,rand$1=requireBrorand(),assert$c=utils$i.assert,KeyPair$6=key$3,Signature$6=signature$3;function EC$1(e){if(!(this instanceof EC$1))return new EC$1(e);"string"==typeof e&&(assert$c(Object.prototype.hasOwnProperty.call(curves$4,e),"Unknown curve "+e),e=curves$4[e]),e instanceof curves$4.PresetCurve&&(e={curve:e}),this.curve=e.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=e.curve.g,this.g.precompute(e.curve.n.bitLength()+1),this.hash=e.hash||e.curve.hash}var ec$1=EC$1;EC$1.prototype.keyPair=function(e){return new KeyPair$6(this,e)},EC$1.prototype.keyFromPrivate=function(e,t){return KeyPair$6.fromPrivate(this,e,t)},EC$1.prototype.keyFromPublic=function(e,t){return KeyPair$6.fromPublic(this,e,t)},EC$1.prototype.genKeyPair=function(e){e||(e={});for(var t=new HmacDRBG$1({hash:this.hash,pers:e.pers,persEnc:e.persEnc||"utf8",entropy:e.entropy||rand$1(this.hash.hmacStrength),entropyEnc:e.entropy&&e.entropyEnc||"utf8",nonce:this.n.toArray()}),r=this.n.byteLength(),n=this.n.sub(new BN$9(2));;){var o=new BN$9(t.generate(r));if(!(o.cmp(n)>0))return o.iaddn(1),this.keyFromPrivate(o)}},EC$1.prototype._truncateToN=function(e,t,r){var n;if(BN$9.isBN(e)||"number"==typeof e)n=(e=new BN$9(e,16)).byteLength();else if("object"==typeof e)n=e.length,e=new BN$9(e,16);else{var o=e.toString();n=o.length+1>>>1,e=new BN$9(o,16)}"number"!=typeof r&&(r=8*n);var i=r-this.n.bitLength();return i>0&&(e=e.ushrn(i)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},EC$1.prototype.sign=function(e,t,r,n){if("object"==typeof r&&(n=r,r=null),n||(n={}),"string"!=typeof e&&"number"!=typeof e&&!BN$9.isBN(e)){assert$c("object"==typeof e&&e&&"number"==typeof e.length,"Expected message to be an array-like, a hex string, or a BN instance"),assert$c(e.length>>>0===e.length);for(var o=0;o=0)){var f=this.g.mul(d);if(!f.isInfinity()){var h=f.getX(),p=h.umod(this.n);if(0!==p.cmpn(0)){var y=d.invm(this.n).mul(p.mul(t.getPrivate()).iadd(e));if(0!==(y=y.umod(this.n)).cmpn(0)){var m=(f.getY().isOdd()?1:0)|(0!==h.cmp(p)?2:0);return n.canonical&&y.cmp(this.nh)>0&&(y=this.n.sub(y),m^=1),new Signature$6({r:p,s:y,recoveryParam:m})}}}}}},EC$1.prototype.verify=function(e,t,r,n,o){o||(o={}),e=this._truncateToN(e,!1,o.msgBitLength),r=this.keyFromPublic(r,n);var i=(t=new Signature$6(t,"hex")).r,a=t.s;if(i.cmpn(1)<0||i.cmp(this.n)>=0)return!1;if(a.cmpn(1)<0||a.cmp(this.n)>=0)return!1;var s,c=a.invm(this.n),u=c.mul(e).umod(this.n),l=c.mul(i).umod(this.n);return this.curve._maxwellTrick?!(s=this.g.jmulAdd(u,r.getPublic(),l)).isInfinity()&&s.eqXToP(i):!(s=this.g.mulAdd(u,r.getPublic(),l)).isInfinity()&&0===s.getX().umod(this.n).cmp(i)},EC$1.prototype.recoverPubKey=function(e,t,r,n){assert$c((3&r)===r,"The recovery param is more than two bits"),t=new Signature$6(t,n);var o=this.n,i=new BN$9(e),a=t.r,s=t.s,c=1&r,u=r>>1;if(a.cmp(this.curve.p.umod(this.curve.n))>=0&&u)throw new Error("Unable to find sencond key candinate");a=u?this.curve.pointFromX(a.add(this.curve.n),c):this.curve.pointFromX(a,c);var l=t.r.invm(o),d=o.sub(i).mul(l).umod(o),f=s.mul(l).umod(o);return this.g.mulAdd(d,a,f)},EC$1.prototype.getKeyRecoveryParam=function(e,t,r,n){if(null!==(t=new Signature$6(t,n)).recoveryParam)return t.recoveryParam;for(var o=0;o<4;o++){var i;try{i=this.recoverPubKey(e,t,o)}catch(a){continue}if(i.eq(r))return o}throw new Error("Unable to find valid recovery factor")};var utils$h=utils$p,assert$b=utils$h.assert,parseBytes$5=utils$h.parseBytes,cachedProperty$3=utils$h.cachedProperty;function KeyPair$5(e,t){this.eddsa=e,this._secret=parseBytes$5(t.secret),e.isPoint(t.pub)?this._pub=t.pub:this._pubBytes=parseBytes$5(t.pub)}KeyPair$5.fromPublic=function(e,t){return t instanceof KeyPair$5?t:new KeyPair$5(e,{pub:t})},KeyPair$5.fromSecret=function(e,t){return t instanceof KeyPair$5?t:new KeyPair$5(e,{secret:t})},KeyPair$5.prototype.secret=function(){return this._secret},cachedProperty$3(KeyPair$5,"pubBytes",(function(){return this.eddsa.encodePoint(this.pub())})),cachedProperty$3(KeyPair$5,"pub",(function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())})),cachedProperty$3(KeyPair$5,"privBytes",(function(){var e=this.eddsa,t=this.hash(),r=e.encodingLength-1,n=t.slice(0,e.encodingLength);return n[0]&=248,n[r]&=127,n[r]|=64,n})),cachedProperty$3(KeyPair$5,"priv",(function(){return this.eddsa.decodeInt(this.privBytes())})),cachedProperty$3(KeyPair$5,"hash",(function(){return this.eddsa.hash().update(this.secret()).digest()})),cachedProperty$3(KeyPair$5,"messagePrefix",(function(){return this.hash().slice(this.eddsa.encodingLength)})),KeyPair$5.prototype.sign=function(e){return assert$b(this._secret,"KeyPair can only verify"),this.eddsa.sign(e,this)},KeyPair$5.prototype.verify=function(e,t){return this.eddsa.verify(e,t,this)},KeyPair$5.prototype.getSecret=function(e){return assert$b(this._secret,"KeyPair is public only"),utils$h.encode(this.secret(),e)},KeyPair$5.prototype.getPublic=function(e){return utils$h.encode(this.pubBytes(),e)};var key$2=KeyPair$5,BN$8=bnExports$1,utils$g=utils$p,assert$a=utils$g.assert,cachedProperty$2=utils$g.cachedProperty,parseBytes$4=utils$g.parseBytes;function Signature$5(e,t){this.eddsa=e,"object"!=typeof t&&(t=parseBytes$4(t)),Array.isArray(t)&&(assert$a(t.length===2*e.encodingLength,"Signature has invalid size"),t={R:t.slice(0,e.encodingLength),S:t.slice(e.encodingLength)}),assert$a(t.R&&t.S,"Signature without R or S"),e.isPoint(t.R)&&(this._R=t.R),t.S instanceof BN$8&&(this._S=t.S),this._Rencoded=Array.isArray(t.R)?t.R:t.Rencoded,this._Sencoded=Array.isArray(t.S)?t.S:t.Sencoded}cachedProperty$2(Signature$5,"S",(function(){return this.eddsa.decodeInt(this.Sencoded())})),cachedProperty$2(Signature$5,"R",(function(){return this.eddsa.decodePoint(this.Rencoded())})),cachedProperty$2(Signature$5,"Rencoded",(function(){return this.eddsa.encodePoint(this.R())})),cachedProperty$2(Signature$5,"Sencoded",(function(){return this.eddsa.encodeInt(this.S())})),Signature$5.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())},Signature$5.prototype.toHex=function(){return utils$g.encode(this.toBytes(),"hex").toUpperCase()};var signature$2=Signature$5,hash$1=hash$8,curves$3=curves$5,utils$f=utils$p,assert$9=utils$f.assert,parseBytes$3=utils$f.parseBytes,KeyPair$4=key$2,Signature$4=signature$2;function EDDSA$1(e){if(assert$9("ed25519"===e,"only tested with ed25519 so far"),!(this instanceof EDDSA$1))return new EDDSA$1(e);e=curves$3[e].curve,this.curve=e,this.g=e.g,this.g.precompute(e.n.bitLength()+1),this.pointClass=e.point().constructor,this.encodingLength=Math.ceil(e.n.bitLength()/8),this.hash=hash$1.sha512}var eddsa$1=EDDSA$1;EDDSA$1.prototype.sign=function(e,t){e=parseBytes$3(e);var r=this.keyFromSecret(t),n=this.hashInt(r.messagePrefix(),e),o=this.g.mul(n),i=this.encodePoint(o),a=this.hashInt(i,r.pubBytes(),e).mul(r.priv()),s=n.add(a).umod(this.curve.n);return this.makeSignature({R:o,S:s,Rencoded:i})},EDDSA$1.prototype.verify=function(e,t,r){if(e=parseBytes$3(e),(t=this.makeSignature(t)).S().gte(t.eddsa.curve.n)||t.S().isNeg())return!1;var n=this.keyFromPublic(r),o=this.hashInt(t.Rencoded(),n.pubBytes(),e),i=this.g.mul(t.S());return t.R().add(n.pub().mul(o)).eq(i)},EDDSA$1.prototype.hashInt=function(){for(var e=this.hash(),t=0;tt.code===e));return t||STANDARD_ERROR_MAP[DEFAULT_ERROR]}function parseConnectionError(e,t,r){return e.message.includes("getaddrinfo ENOTFOUND")||e.message.includes("connect ECONNREFUSED")?new Error(`Unavailable ${r} RPC url at ${t}`):e}var cjs$4={},crypto$1={},hasRequiredCrypto;function requireCrypto(){if(hasRequiredCrypto)return crypto$1;function e(){return(null==commonjsGlobal?void 0:commonjsGlobal.crypto)||(null==commonjsGlobal?void 0:commonjsGlobal.msCrypto)||{}}function t(){const t=e();return t.subtle||t.webkitSubtle}return hasRequiredCrypto=1,Object.defineProperty(crypto$1,"__esModule",{value:!0}),crypto$1.isBrowserCryptoAvailable=crypto$1.getSubtleCrypto=crypto$1.getBrowerCrypto=void 0,crypto$1.getBrowerCrypto=e,crypto$1.getSubtleCrypto=t,crypto$1.isBrowserCryptoAvailable=function(){return!!e()&&!!t()},crypto$1}var env={},hasRequiredEnv;function requireEnv(){if(hasRequiredEnv)return env;function e(){return"undefined"==typeof document&&"undefined"!=typeof navigator&&"ReactNative"===navigator.product}function t(){return void 0!==process$1&&void 0!==process$1.versions&&void 0!==process$1.versions.node}return hasRequiredEnv=1,Object.defineProperty(env,"__esModule",{value:!0}),env.isBrowser=env.isNode=env.isReactNative=void 0,env.isReactNative=e,env.isNode=t,env.isBrowser=function(){return!e()&&!t()},env}function payloadId(e=3){return Date.now()*Math.pow(10,e)+Math.floor(Math.random()*Math.pow(10,e))}function getBigIntRpcId(e=6){return BigInt(payloadId(e))}function formatJsonRpcRequest(e,t,r){return{id:r||payloadId(),jsonrpc:"2.0",method:e,params:t}}function formatJsonRpcResult(e,t){return{id:e,jsonrpc:"2.0",result:t}}function formatJsonRpcError(e,t,r){return{id:e,jsonrpc:"2.0",error:formatErrorMessage(t)}}function formatErrorMessage(e,t){return void 0===e?getError(INTERNAL_ERROR):("string"==typeof e&&(e=Object.assign(Object.assign({},getError(SERVER_ERROR)),{message:e})),isReservedErrorCode(e.code)&&(e=getErrorByCode(e.code)),e)}!function(e){Object.defineProperty(e,"__esModule",{value:!0});const t=require$$0$4;t.__exportStar(requireCrypto(),e),t.__exportStar(requireEnv(),e)}(cjs$4);let e$8=class{},n$8=class extends e$8{constructor(){super()}},r$5=class extends n$8{constructor(e){super()}};const WS_REGEX="^wss?:";function getUrlProtocol(e){const t=e.match(new RegExp(/^\w+:/,"gi"));if(t&&t.length)return t[0]}function matchRegexProtocol(e,t){const r=getUrlProtocol(e);return void 0!==r&&new RegExp(t).test(r)}function isWsUrl(e){return matchRegexProtocol(e,WS_REGEX)}function isLocalhostUrl(e){return new RegExp("wss?://localhost(:d{2,5})?").test(e)}function isJsonRpcPayload(e){return"object"==typeof e&&"id"in e&&"jsonrpc"in e&&"2.0"===e.jsonrpc}function isJsonRpcRequest(e){return isJsonRpcPayload(e)&&"method"in e}function isJsonRpcResponse(e){return isJsonRpcPayload(e)&&(isJsonRpcResult(e)||isJsonRpcError(e))}function isJsonRpcResult(e){return"result"in e}function isJsonRpcError(e){return"error"in e}let o$8=class extends r$5{constructor(e){super(e),this.events=new eventsExports.EventEmitter,this.hasRegisteredEventListeners=!1,this.connection=this.setConnection(e),this.connection.connected&&this.registerEventListeners()}async connect(e=this.connection){await this.open(e)}async disconnect(){await this.close()}on(e,t){this.events.on(e,t)}once(e,t){this.events.once(e,t)}off(e,t){this.events.off(e,t)}removeListener(e,t){this.events.removeListener(e,t)}async request(e,t){return this.requestStrict(formatJsonRpcRequest(e.method,e.params||[],e.id||getBigIntRpcId().toString()),t)}async requestStrict(e,t){return new Promise((async(r,n)=>{if(!this.connection.connected)try{await this.open()}catch(o){n(o)}this.events.on(`${e.id}`,(e=>{isJsonRpcError(e)?n(e.error):r(e.result)}));try{await this.connection.send(e,t)}catch(o){n(o)}}))}setConnection(e=this.connection){return e}onPayload(e){this.events.emit("payload",e),isJsonRpcResponse(e)?this.events.emit(`${e.id}`,e):this.events.emit("message",{type:e.method,data:e.params})}onClose(e){e&&3e3===e.code&&this.events.emit("error",new Error(`WebSocket connection closed abnormally with code: ${e.code} ${e.reason?`(${e.reason})`:""}`)),this.events.emit("disconnect")}async open(e=this.connection){this.connection===e&&this.connection.connected||(this.connection.connected&&this.close(),"string"==typeof e&&(await this.connection.open(e),e=this.connection),this.connection=this.setConnection(e),await this.connection.open(),this.registerEventListeners(),this.events.emit("connect"))}async close(){await this.connection.close()}registerEventListeners(){this.hasRegisteredEventListeners||(this.connection.on("payload",(e=>this.onPayload(e))),this.connection.on("close",(e=>this.onClose(e))),this.connection.on("error",(e=>this.events.emit("error",e))),this.connection.on("register_error",(e=>this.onClose())),this.hasRegisteredEventListeners=!0)}};var lodash_isequal={exports:{}};lodash_isequal.exports,function(e,t){var r="__lodash_hash_undefined__",n=9007199254740991,o="[object Arguments]",i="[object Array]",a="[object Boolean]",s="[object Date]",c="[object Error]",u="[object Function]",l="[object Map]",d="[object Number]",f="[object Object]",h="[object Promise]",p="[object RegExp]",y="[object Set]",m="[object String]",g="[object Symbol]",b="[object WeakMap]",v="[object ArrayBuffer]",w="[object DataView]",_=/^\[object .+?Constructor\]$/,I=/^(?:0|[1-9]\d*)$/,T={};T["[object Float32Array]"]=T["[object Float64Array]"]=T["[object Int8Array]"]=T["[object Int16Array]"]=T["[object Int32Array]"]=T["[object Uint8Array]"]=T["[object Uint8ClampedArray]"]=T["[object Uint16Array]"]=T["[object Uint32Array]"]=!0,T[o]=T[i]=T[v]=T[a]=T[w]=T[s]=T[c]=T[u]=T[l]=T[d]=T[f]=T[p]=T[y]=T[m]=T[b]=!1;var k="object"==typeof commonjsGlobal&&commonjsGlobal&&commonjsGlobal.Object===Object&&commonjsGlobal,$="object"==typeof self&&self&&self.Object===Object&&self,S=k||$||Function("return this")(),A=t&&!t.nodeType&&t,E=A&&e&&!e.nodeType&&e,C=E&&E.exports===A,R=C&&k.process,O=function(){try{return R&&R.binding&&R.binding("util")}catch(e2){}}(),N=O&&O.isTypedArray;function P(e,t){for(var r=-1,n=null==e?0:e.length;++rs))return!1;var u=i.get(e);if(u&&i.get(t))return u==t;var l=-1,d=!0,f=2&r?new ve:void 0;for(i.set(e,t),i.set(t,e);++l-1},ge.prototype.set=function(e,t){var r=this.__data__,n=Ie(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this},be.prototype.clear=function(){this.size=0,this.__data__={hash:new me,map:new(oe||ge),string:new me}},be.prototype.delete=function(e){var t=Re(this,e).delete(e);return this.size-=t?1:0,t},be.prototype.get=function(e){return Re(this,e).get(e)},be.prototype.has=function(e){return Re(this,e).has(e)},be.prototype.set=function(e,t){var r=Re(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this},ve.prototype.add=ve.prototype.push=function(e){return this.__data__.set(e,r),this},ve.prototype.has=function(e){return this.__data__.has(e)},we.prototype.clear=function(){this.__data__=new ge,this.size=0},we.prototype.delete=function(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r},we.prototype.get=function(e){return this.__data__.get(e)},we.prototype.has=function(e){return this.__data__.has(e)},we.prototype.set=function(e,t){var r=this.__data__;if(r instanceof ge){var n=r.__data__;if(!oe||n.length<199)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new be(n)}return r.set(e,t),this.size=r.size,this};var Ne=ee?function(e){return null==e?[]:(e=Object(e),function(e,t){for(var r=-1,n=null==e?0:e.length,o=0,i=[];++r-1&&e%1==0&&e-1&&e%1==0&&e<=n}function qe(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function Ke(e){return null!=e&&"object"==typeof e}var He=N?function(e){return function(t){return e(t)}}(N):function(e){return Ke(e)&&Fe(e.length)&&!!T[Te(e)]};function Ge(e){return null!=(t=e)&&Fe(t.length)&&!je(t)?_e(e):Ae(e);var t}e.exports=function(e,t){return $e(e,t)}}(lodash_isequal,lodash_isequal.exports);var lodash_isequalExports=lodash_isequal.exports;const ys$1=getDefaultExportFromCjs$1(lodash_isequalExports);function unfetch_module(e,t){return t=t||{},new Promise((function(r,n){var o=new XMLHttpRequest,i=[],a=[],s={},c=function(){return{ok:2==(o.status/100|0),statusText:o.statusText,status:o.status,url:o.responseURL,text:function(){return Promise.resolve(o.responseText)},json:function(){return Promise.resolve(o.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([o.response]))},clone:c,headers:{keys:function(){return i},entries:function(){return a},get:function(e){return s[e.toLowerCase()]},has:function(e){return e.toLowerCase()in s}}}};for(var u in o.open(t.method||"get",e,!0),o.onload=function(){o.getAllResponseHeaders().replace(/^(.*?):[^\S\n]*([\s\S]*?)$/gm,(function(e,t,r){i.push(t=t.toLowerCase()),a.push([t,r]),s[t]=s[t]?s[t]+","+r:r})),r(c())},o.onerror=n,o.withCredentials="include"==t.credentials,t.headers)o.setRequestHeader(u,t.headers[u]);o.send(t.body||null)}))}const unfetch_module$1=Object.freeze(Object.defineProperty({__proto__:null,default:unfetch_module},Symbol.toStringTag,{value:"Module"})),require$$0$2=getAugmentedNamespace(unfetch_module$1);function ut$2(e,t){if(e.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n>>0,a=new Uint8Array(i);e[t];){var l=r[e.charCodeAt(t)];if(255===l)return;for(var d=0,f=i-1;(0!==l||d>>0,a[f]=l%256>>>0,l=l/256>>>0;if(0!==l)throw new Error("Non-zero carry");o=d,t++}if(" "!==e[t]){for(var h=i-o;h!==i&&0===a[h];)h++;for(var p=new Uint8Array(n+(i-h)),y=n;h!==i;)p[y++]=a[h++];return p}}}return{encode:function(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(0===t.length)return"";for(var r=0,n=0,o=0,i=t.length;o!==i&&0===t[o];)o++,r++;for(var a=(i-o)*l+1>>>0,u=new Uint8Array(a);o!==i;){for(var d=t[o],f=0,h=a-1;(0!==d||f>>0,u[h]=d%s>>>0,d=d/s>>>0;if(0!==d)throw new Error("Non-zero carry");n=f,o++}for(var p=a-n;p!==a&&0===u[p];)p++;for(var y=c.repeat(r);p{if(e instanceof Uint8Array&&"Uint8Array"===e.constructor.name)return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw new Error("Unknown type, must be binary type")},ct$2=e=>(new TextEncoder).encode(e),ht$2=e=>(new TextDecoder).decode(e);let lt$2=class{constructor(e,t,r){this.name=e,this.prefix=t,this.baseEncode=r}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}},dt$2=class{constructor(e,t,r){if(this.name=e,this.prefix=t,void 0===t.codePointAt(0))throw new Error("Invalid prefix character");this.prefixCodePoint=t.codePointAt(0),this.baseDecode=r}decode(e){if("string"==typeof e){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}throw Error("Can only multibase decode strings")}or(e){return ie$1(this,e)}},pt$3=class{constructor(e){this.decoders=e}or(e){return ie$1(this,e)}decode(e){const t=e[0],r=this.decoders[t];if(r)return r.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}};const ie$1=(e,t)=>new pt$3({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}});let ft$1=class{constructor(e,t,r,n){this.name=e,this.prefix=t,this.baseEncode=r,this.baseDecode=n,this.encoder=new lt$2(e,t,r),this.decoder=new dt$2(e,t,n)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}};const O$4=({name:e,prefix:t,encode:r,decode:n})=>new ft$1(e,t,r,n),T$4=({prefix:e,name:t,alphabet:r})=>{const{encode:n,decode:o}=Dt$2(r,t);return O$4({prefix:e,name:t,encode:n,decode:e=>re$2(o(e))})},gt$3=(e,t,r,n)=>{const o={};for(let l=0;l=8&&(s-=8,a[u++]=255&c>>s)}if(s>=r||255&c<<8-s)throw new SyntaxError("Unexpected end of data");return a},Et$1=(e,t,r)=>{const n="="===t[t.length-1],o=(1<r;)a-=r,i+=t[o&s>>a];if(a&&(i+=t[o&s<O$4({prefix:t,name:e,encode:e=>Et$1(e,n,r),decode:t=>gt$3(t,n,r,e)}),bt$2=O$4({prefix:"\0",name:"identity",encode:e=>ht$2(e),decode:e=>ct$2(e)});var yt$2=Object.freeze({__proto__:null,identity:bt$2});const wt$1=d$5({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Ct$1=Object.freeze({__proto__:null,base2:wt$1});const mt$1=d$5({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var vt$2=Object.freeze({__proto__:null,base8:mt$1});const At$1=T$4({prefix:"9",name:"base10",alphabet:"0123456789"});var _t$2=Object.freeze({__proto__:null,base10:At$1});const xt$2=d$5({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),Rt$1=d$5({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Ft$2=Object.freeze({__proto__:null,base16:xt$2,base16upper:Rt$1});const Tt$2=d$5({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),It$1=d$5({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),qt$2=d$5({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Ut$1=d$5({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),Ot$2=d$5({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),St$1=d$5({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Pt$2=d$5({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),Nt$2=d$5({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),$t$2=d$5({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Bt$2=Object.freeze({__proto__:null,base32:Tt$2,base32upper:It$1,base32pad:qt$2,base32padupper:Ut$1,base32hex:Ot$2,base32hexupper:St$1,base32hexpad:Pt$2,base32hexpadupper:Nt$2,base32z:$t$2});const zt$2=T$4({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),jt$1=T$4({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var Mt$2=Object.freeze({__proto__:null,base36:zt$2,base36upper:jt$1});const Lt$2=T$4({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),Kt$2=T$4({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Vt$2=Object.freeze({__proto__:null,base58btc:Lt$2,base58flickr:Kt$2});const kt$2=d$5({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),Jt$2=d$5({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Xt$2=d$5({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Gt$2=d$5({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var Ht$2=Object.freeze({__proto__:null,base64:kt$2,base64pad:Jt$2,base64url:Xt$2,base64urlpad:Gt$2});const ne$1=Array.from("🚀🪐☄🛰🌌🌑🌒🌓🌔🌕🌖🌗🌘🌍🌏🌎🐉☀💻🖥💾💿😂❤😍🤣😊🙏💕😭😘👍😅👏😁🔥🥰💔💖💙😢🤔😆🙄💪😉☺👌🤗💜😔😎😇🌹🤦🎉💞✌✨🤷😱😌🌸🙌😋💗💚😏💛🙂💓🤩😄😀🖤😃💯🙈👇🎶😒🤭❣😜💋👀😪😑💥🙋😞😩😡🤪👊🥳😥🤤👉💃😳✋😚😝😴🌟😬🙃🍀🌷😻😓⭐✅🥺🌈😈🤘💦✔😣🏃💐☹🎊💘😠☝😕🌺🎂🌻😐🖕💝🙊😹🗣💫💀👑🎵🤞😛🔴😤🌼😫⚽🤙☕🏆🤫👈😮🙆🍻🍃🐶💁😲🌿🧡🎁⚡🌞🎈❌✊👋😰🤨😶🤝🚶💰🍓💢🤟🙁🚨💨🤬✈🎀🍺🤓😙💟🌱😖👶🥴▶➡❓💎💸⬇😨🌚🦋😷🕺⚠🙅😟😵👎🤲🤠🤧📌🔵💅🧐🐾🍒😗🤑🌊🤯🐷☎💧😯💆👆🎤🙇🍑❄🌴💣🐸💌📍🥀🤢👅💡💩👐📸👻🤐🤮🎼🥵🚩🍎🍊👼💍📣🥂"),Yt$2=ne$1.reduce(((e,t,r)=>(e[r]=t,e)),[]),Qt$2=ne$1.reduce(((e,t,r)=>(e[t.codePointAt(0)]=r,e)),[]);function Zt$2(e){return e.reduce(((e,t)=>e+=Yt$2[t]),"")}function Wt$2(e){const t=[];for(const r of e){const e=Qt$2[r.codePointAt(0)];if(void 0===e)throw new Error(`Non-base256emoji character: ${r}`);t.push(e)}return new Uint8Array(t)}const er$2=O$4({prefix:"🚀",name:"base256emoji",encode:Zt$2,decode:Wt$2});var tr$1=Object.freeze({__proto__:null,base256emoji:er$2}),rr$1=oe$1,se$1=128,ir$2=127,nr$2=~ir$2,sr$1=Math.pow(2,31);function oe$1(e,t,r){t=t||[];for(var n=r=r||0;e>=sr$1;)t[r++]=255&e|se$1,e/=128;for(;e&nr$2;)t[r++]=255&e|se$1,e>>>=7;return t[r]=0|e,oe$1.bytes=r-n+1,t}var or$1=j$2,ur$2=128,ue=127;function j$2(e,t){var r,n=0,o=0,i=t=t||0,a=e.length;do{if(i>=a)throw j$2.bytes=0,new RangeError("Could not decode varint");r=e[i++],n+=o<28?(r&ue)<=ur$2);return j$2.bytes=i-t,n}var ar$2=Math.pow(2,7),Dr$2=Math.pow(2,14),cr$2=Math.pow(2,21),hr$2=Math.pow(2,28),lr$2=Math.pow(2,35),dr$2=Math.pow(2,42),pr$2=Math.pow(2,49),fr$3=Math.pow(2,56),gr$2=Math.pow(2,63),Er$2=function(e){return e(ae$2.encode(e,t,r),t),ce$1=e=>ae$2.encodingLength(e),M$6=(e,t)=>{const r=t.byteLength,n=ce$1(e),o=n+ce$1(r),i=new Uint8Array(o+r);return De$1(e,i,0),De$1(r,i,n),i.set(t,o),new yr$2(e,r,t,i)};let yr$2=class{constructor(e,t,r,n){this.code=e,this.size=t,this.digest=r,this.bytes=n}};const he$1=({name:e,code:t,encode:r})=>new wr$2(e,t,r);let wr$2=class{constructor(e,t,r){this.name=e,this.code=t,this.encode=r}digest(e){if(e instanceof Uint8Array){const t=this.encode(e);return t instanceof Uint8Array?M$6(this.code,t):t.then((e=>M$6(this.code,e)))}throw Error("Unknown type, must be binary type")}};const le$1=e=>async t=>new Uint8Array(await crypto.subtle.digest(e,t)),Cr$2=he$1({name:"sha2-256",code:18,encode:le$1("SHA-256")}),mr$2=he$1({name:"sha2-512",code:19,encode:le$1("SHA-512")});var vr$2=Object.freeze({__proto__:null,sha256:Cr$2,sha512:mr$2});const de$2=0,Ar$2="identity",pe$1=re$2,_r$2=e=>M$6(de$2,pe$1(e)),xr$2={code:de$2,name:Ar$2,encode:pe$1,digest:_r$2};var Rr$2=Object.freeze({__proto__:null,identity:xr$2});new TextEncoder,new TextDecoder;let n$7=class extends IEvents{constructor(e){super(),this.opts=e,this.protocol="wc",this.version=2}},h$6=class extends IEvents{constructor(e,t){super(),this.core=e,this.logger=t,this.records=new Map}},a$5=class{constructor(e,t){this.logger=e,this.core=t}},g$5=class extends IEvents{constructor(e,t){super(),this.relayer=e,this.logger=t}},u$4=class extends IEvents{constructor(e){super()}},p$3=class{constructor(e,t,r,n){this.core=e,this.logger=t,this.name=r}},d$4=class extends IEvents{constructor(e,t){super(),this.relayer=e,this.logger=t}},x$5=class extends IEvents{constructor(e,t){super(),this.core=e,this.logger=t}},y$6=class{constructor(e,t,r){this.core=e,this.logger=t,this.store=r}},v$5=class{constructor(e,t){this.projectId=e,this.logger=t}},C$5=class{constructor(e,t,r){this.core=e,this.logger=t,this.telemetryEnabled=r}},S$7=class{constructor(e){this.opts=e,this.protocol="wc",this.version=2}},M$5=class{constructor(e){this.client=e}};var __spreadArray=function(e,t,r){if(r||2===arguments.length)for(var n,o=0,i=t.length;on.getAttribute(e))).filter((e=>!!e&&t.includes(e)));if(o.length&&o){const e=n.getAttribute("content");if(e)return e}}return""}const n=function(){let t=r("name","og:site_name","og:title","twitter:title");return t||(t=e.title),t}();return{description:r("description","og:description","twitter:description","keywords"),url:t.origin,icons:function(){const r=e.getElementsByTagName("link"),n=[];for(let e=0;e-1){const e=o.getAttribute("href");if(e)if(-1===e.toLowerCase().indexOf("https:")&&-1===e.toLowerCase().indexOf("http:")&&0!==e.indexOf("//")){let r=t.protocol+"//"+t.host;if(0===e.indexOf("/"))r+=e;else{const n=t.pathname.split("/");n.pop();r+=n.join("/")+"/"+e}n.push(r)}else if(0===e.indexOf("//")){const r=t.protocol+e;n.push(r)}else n.push(e)}}return n}(),name:n}}getWindowMetadata_1$1=cjs$3.getWindowMetadata=getWindowMetadata$1;var elliptic={};const name="elliptic",version$2="6.5.7",description="EC cryptography",main="lib/elliptic.js",files=["lib"],scripts={lint:"eslint lib test","lint:fix":"npm run lint -- --fix",unit:"istanbul test _mocha --reporter=spec test/index.js",test:"npm run lint && npm run unit",version:"grunt dist && git add dist/"},repository={type:"git",url:"git@github.com:indutny/elliptic"},keywords=["EC","Elliptic","curve","Cryptography"],author="Fedor Indutny ",license="MIT",bugs={url:"https://github.com/indutny/elliptic/issues"},homepage="https://github.com/indutny/elliptic",devDependencies={brfs:"^2.0.2",coveralls:"^3.1.0",eslint:"^7.6.0",grunt:"^1.2.1","grunt-browserify":"^5.3.0","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^5.0.0","grunt-mocha-istanbul":"^5.0.2","grunt-saucelabs":"^9.0.1",istanbul:"^0.4.5",mocha:"^8.0.1"},dependencies={"bn.js":"^4.11.9",brorand:"^1.1.0","hash.js":"^1.0.0","hmac-drbg":"^1.0.1",inherits:"^2.0.4","minimalistic-assert":"^1.0.1","minimalistic-crypto-utils":"^1.0.1"},require$$0$1={name:name,version:version$2,description:description,main:main,files:files,scripts:scripts,repository:repository,keywords:keywords,author:author,license:license,bugs:bugs,homepage:homepage,devDependencies:devDependencies,dependencies:dependencies};var utils$e={},bn$2={exports:{}};bn$2.exports,function(e){!function(e,t){function r(e,t){if(!e)throw new Error(t||"Assertion failed")}function n(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}function o(e,t,r){if(o.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(r=t,t=10),this._init(e||0,t||10,r||"be"))}var i;"object"==typeof e?e.exports=o:t.BN=o,o.BN=o,o.wordSize=26;try{i="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:require$$2$1.Buffer}catch(e2){}function a(e,t){var r=e.charCodeAt(t);return r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:r-48&15}function s(e,t,r){var n=a(e,r);return r-1>=t&&(n|=a(e,r-1)<<4),n}function c(e,t,r,n){for(var o=0,i=Math.min(e.length,r),a=t;a=49?s-49+10:s>=17?s-17+10:s}return o}o.isBN=function(e){return e instanceof o||null!==e&&"object"==typeof e&&e.constructor.wordSize===o.wordSize&&Array.isArray(e.words)},o.max=function(e,t){return e.cmp(t)>0?e:t},o.min=function(e,t){return e.cmp(t)<0?e:t},o.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),r(t===(0|t)&&t>=2&&t<=36);var o=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(o++,this.negative=1),o=0;o-=3)a=e[o]|e[o-1]<<8|e[o-2]<<16,this.words[i]|=a<>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);else if("le"===n)for(o=0,i=0;o>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);return this.strip()},o.prototype._parseHex=function(e,t,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var n=0;n=t;n-=2)o=s(e,t,n)<=18?(i-=18,a+=1,this.words[a]|=o>>>26):i+=8;else for(n=(e.length-t)%2==0?t+1:t;n=18?(i-=18,a+=1,this.words[a]|=o>>>26):i+=8;this.strip()},o.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var n=0,o=1;o<=67108863;o*=t)n++;n--,o=o/t|0;for(var i=e.length-r,a=i%n,s=Math.min(i,i-a)+r,u=0,l=r;l1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?""};var u=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],l=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],d=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function f(e,t,r){r.negative=t.negative^e.negative;var n=e.length+t.length|0;r.length=n,n=n-1|0;var o=0|e.words[0],i=0|t.words[0],a=o*i,s=67108863&a,c=a/67108864|0;r.words[0]=s;for(var u=1;u>>26,d=67108863&c,f=Math.min(u,t.length-1),h=Math.max(0,u-e.length+1);h<=f;h++){var p=u-h|0;l+=(a=(o=0|e.words[p])*(i=0|t.words[h])+d)/67108864|0,d=67108863&a}r.words[u]=0|d,c=0|l}return 0!==c?r.words[u]=0|c:r.length--,r.strip()}o.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var o=0,i=0,a=0;a>>24-o&16777215,(o+=2)>=26&&(o-=26,a--),n=0!==i||a!==this.length-1?u[6-c.length]+c+n:c+n}for(0!==i&&(n=i.toString(16)+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var f=l[e],h=d[e];n="";var p=this.clone();for(p.negative=0;!p.isZero();){var y=p.modn(h).toString(e);n=(p=p.idivn(h)).isZero()?y+n:u[f-y.length]+y+n}for(this.isZero()&&(n="0"+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(e,t){return r(void 0!==i),this.toArrayLike(i,e,t)},o.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},o.prototype.toArrayLike=function(e,t,n){var o=this.byteLength(),i=n||Math.max(1,o);r(o<=i,"byte array longer than desired length"),r(i>0,"Requested array length <= 0"),this.strip();var a,s,c="le"===t,u=new e(i),l=this.clone();if(c){for(s=0;!l.isZero();s++)a=l.andln(255),l.iushrn(8),u[s]=a;for(;s=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},o.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 8191&t||(r+=13,t>>>=13),127&t||(r+=7,t>>>=7),15&t||(r+=4,t>>>=4),3&t||(r+=2,t>>>=2),1&t||r++,r},o.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},o.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},o.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;re.length?this.clone().iand(e):e.clone().iand(this)},o.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},o.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var n=0;ne.length?this.clone().ixor(e):e.clone().ixor(this)},o.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},o.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var o=0;o0&&(this.words[o]=~this.words[o]&67108863>>26-n),this.strip()},o.prototype.notn=function(e){return this.clone().inotn(e)},o.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var n=e/26|0,o=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<e.length?(r=this,n=e):(r=e,n=this);for(var o=0,i=0;i>>26;for(;0!==o&&i>>26;if(this.length=r.length,0!==o)this.words[this.length]=o,this.length++;else if(r!==this)for(;ie.length?this.clone().iadd(e):e.clone().iadd(this)},o.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,n,o=this.cmp(e);if(0===o)return this.negative=0,this.length=1,this.words[0]=0,this;o>0?(r=this,n=e):(r=e,n=this);for(var i=0,a=0;a>26,this.words[a]=67108863&t;for(;0!==i&&a>26,this.words[a]=67108863&t;if(0===i&&a>>13,h=0|a[1],p=8191&h,y=h>>>13,m=0|a[2],g=8191&m,b=m>>>13,v=0|a[3],w=8191&v,_=v>>>13,I=0|a[4],T=8191&I,k=I>>>13,$=0|a[5],S=8191&$,A=$>>>13,E=0|a[6],C=8191&E,R=E>>>13,O=0|a[7],N=8191&O,P=O>>>13,M=0|a[8],B=8191&M,D=M>>>13,x=0|a[9],L=8191&x,U=x>>>13,j=0|s[0],F=8191&j,q=j>>>13,K=0|s[1],H=8191&K,G=K>>>13,z=0|s[2],V=8191&z,W=z>>>13,Q=0|s[3],Y=8191&Q,X=Q>>>13,J=0|s[4],Z=8191&J,ee=J>>>13,te=0|s[5],re=8191&te,ne=te>>>13,oe=0|s[6],ie=8191&oe,ae=oe>>>13,se=0|s[7],ce=8191&se,ue=se>>>13,le=0|s[8],de=8191&le,fe=le>>>13,he=0|s[9],pe=8191&he,ye=he>>>13;r.negative=e.negative^t.negative,r.length=19;var me=(u+(n=Math.imul(d,F))|0)+((8191&(o=(o=Math.imul(d,q))+Math.imul(f,F)|0))<<13)|0;u=((i=Math.imul(f,q))+(o>>>13)|0)+(me>>>26)|0,me&=67108863,n=Math.imul(p,F),o=(o=Math.imul(p,q))+Math.imul(y,F)|0,i=Math.imul(y,q);var ge=(u+(n=n+Math.imul(d,H)|0)|0)+((8191&(o=(o=o+Math.imul(d,G)|0)+Math.imul(f,H)|0))<<13)|0;u=((i=i+Math.imul(f,G)|0)+(o>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(g,F),o=(o=Math.imul(g,q))+Math.imul(b,F)|0,i=Math.imul(b,q),n=n+Math.imul(p,H)|0,o=(o=o+Math.imul(p,G)|0)+Math.imul(y,H)|0,i=i+Math.imul(y,G)|0;var be=(u+(n=n+Math.imul(d,V)|0)|0)+((8191&(o=(o=o+Math.imul(d,W)|0)+Math.imul(f,V)|0))<<13)|0;u=((i=i+Math.imul(f,W)|0)+(o>>>13)|0)+(be>>>26)|0,be&=67108863,n=Math.imul(w,F),o=(o=Math.imul(w,q))+Math.imul(_,F)|0,i=Math.imul(_,q),n=n+Math.imul(g,H)|0,o=(o=o+Math.imul(g,G)|0)+Math.imul(b,H)|0,i=i+Math.imul(b,G)|0,n=n+Math.imul(p,V)|0,o=(o=o+Math.imul(p,W)|0)+Math.imul(y,V)|0,i=i+Math.imul(y,W)|0;var ve=(u+(n=n+Math.imul(d,Y)|0)|0)+((8191&(o=(o=o+Math.imul(d,X)|0)+Math.imul(f,Y)|0))<<13)|0;u=((i=i+Math.imul(f,X)|0)+(o>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(T,F),o=(o=Math.imul(T,q))+Math.imul(k,F)|0,i=Math.imul(k,q),n=n+Math.imul(w,H)|0,o=(o=o+Math.imul(w,G)|0)+Math.imul(_,H)|0,i=i+Math.imul(_,G)|0,n=n+Math.imul(g,V)|0,o=(o=o+Math.imul(g,W)|0)+Math.imul(b,V)|0,i=i+Math.imul(b,W)|0,n=n+Math.imul(p,Y)|0,o=(o=o+Math.imul(p,X)|0)+Math.imul(y,Y)|0,i=i+Math.imul(y,X)|0;var we=(u+(n=n+Math.imul(d,Z)|0)|0)+((8191&(o=(o=o+Math.imul(d,ee)|0)+Math.imul(f,Z)|0))<<13)|0;u=((i=i+Math.imul(f,ee)|0)+(o>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(S,F),o=(o=Math.imul(S,q))+Math.imul(A,F)|0,i=Math.imul(A,q),n=n+Math.imul(T,H)|0,o=(o=o+Math.imul(T,G)|0)+Math.imul(k,H)|0,i=i+Math.imul(k,G)|0,n=n+Math.imul(w,V)|0,o=(o=o+Math.imul(w,W)|0)+Math.imul(_,V)|0,i=i+Math.imul(_,W)|0,n=n+Math.imul(g,Y)|0,o=(o=o+Math.imul(g,X)|0)+Math.imul(b,Y)|0,i=i+Math.imul(b,X)|0,n=n+Math.imul(p,Z)|0,o=(o=o+Math.imul(p,ee)|0)+Math.imul(y,Z)|0,i=i+Math.imul(y,ee)|0;var _e=(u+(n=n+Math.imul(d,re)|0)|0)+((8191&(o=(o=o+Math.imul(d,ne)|0)+Math.imul(f,re)|0))<<13)|0;u=((i=i+Math.imul(f,ne)|0)+(o>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(C,F),o=(o=Math.imul(C,q))+Math.imul(R,F)|0,i=Math.imul(R,q),n=n+Math.imul(S,H)|0,o=(o=o+Math.imul(S,G)|0)+Math.imul(A,H)|0,i=i+Math.imul(A,G)|0,n=n+Math.imul(T,V)|0,o=(o=o+Math.imul(T,W)|0)+Math.imul(k,V)|0,i=i+Math.imul(k,W)|0,n=n+Math.imul(w,Y)|0,o=(o=o+Math.imul(w,X)|0)+Math.imul(_,Y)|0,i=i+Math.imul(_,X)|0,n=n+Math.imul(g,Z)|0,o=(o=o+Math.imul(g,ee)|0)+Math.imul(b,Z)|0,i=i+Math.imul(b,ee)|0,n=n+Math.imul(p,re)|0,o=(o=o+Math.imul(p,ne)|0)+Math.imul(y,re)|0,i=i+Math.imul(y,ne)|0;var Ie=(u+(n=n+Math.imul(d,ie)|0)|0)+((8191&(o=(o=o+Math.imul(d,ae)|0)+Math.imul(f,ie)|0))<<13)|0;u=((i=i+Math.imul(f,ae)|0)+(o>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,n=Math.imul(N,F),o=(o=Math.imul(N,q))+Math.imul(P,F)|0,i=Math.imul(P,q),n=n+Math.imul(C,H)|0,o=(o=o+Math.imul(C,G)|0)+Math.imul(R,H)|0,i=i+Math.imul(R,G)|0,n=n+Math.imul(S,V)|0,o=(o=o+Math.imul(S,W)|0)+Math.imul(A,V)|0,i=i+Math.imul(A,W)|0,n=n+Math.imul(T,Y)|0,o=(o=o+Math.imul(T,X)|0)+Math.imul(k,Y)|0,i=i+Math.imul(k,X)|0,n=n+Math.imul(w,Z)|0,o=(o=o+Math.imul(w,ee)|0)+Math.imul(_,Z)|0,i=i+Math.imul(_,ee)|0,n=n+Math.imul(g,re)|0,o=(o=o+Math.imul(g,ne)|0)+Math.imul(b,re)|0,i=i+Math.imul(b,ne)|0,n=n+Math.imul(p,ie)|0,o=(o=o+Math.imul(p,ae)|0)+Math.imul(y,ie)|0,i=i+Math.imul(y,ae)|0;var Te=(u+(n=n+Math.imul(d,ce)|0)|0)+((8191&(o=(o=o+Math.imul(d,ue)|0)+Math.imul(f,ce)|0))<<13)|0;u=((i=i+Math.imul(f,ue)|0)+(o>>>13)|0)+(Te>>>26)|0,Te&=67108863,n=Math.imul(B,F),o=(o=Math.imul(B,q))+Math.imul(D,F)|0,i=Math.imul(D,q),n=n+Math.imul(N,H)|0,o=(o=o+Math.imul(N,G)|0)+Math.imul(P,H)|0,i=i+Math.imul(P,G)|0,n=n+Math.imul(C,V)|0,o=(o=o+Math.imul(C,W)|0)+Math.imul(R,V)|0,i=i+Math.imul(R,W)|0,n=n+Math.imul(S,Y)|0,o=(o=o+Math.imul(S,X)|0)+Math.imul(A,Y)|0,i=i+Math.imul(A,X)|0,n=n+Math.imul(T,Z)|0,o=(o=o+Math.imul(T,ee)|0)+Math.imul(k,Z)|0,i=i+Math.imul(k,ee)|0,n=n+Math.imul(w,re)|0,o=(o=o+Math.imul(w,ne)|0)+Math.imul(_,re)|0,i=i+Math.imul(_,ne)|0,n=n+Math.imul(g,ie)|0,o=(o=o+Math.imul(g,ae)|0)+Math.imul(b,ie)|0,i=i+Math.imul(b,ae)|0,n=n+Math.imul(p,ce)|0,o=(o=o+Math.imul(p,ue)|0)+Math.imul(y,ce)|0,i=i+Math.imul(y,ue)|0;var ke=(u+(n=n+Math.imul(d,de)|0)|0)+((8191&(o=(o=o+Math.imul(d,fe)|0)+Math.imul(f,de)|0))<<13)|0;u=((i=i+Math.imul(f,fe)|0)+(o>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(L,F),o=(o=Math.imul(L,q))+Math.imul(U,F)|0,i=Math.imul(U,q),n=n+Math.imul(B,H)|0,o=(o=o+Math.imul(B,G)|0)+Math.imul(D,H)|0,i=i+Math.imul(D,G)|0,n=n+Math.imul(N,V)|0,o=(o=o+Math.imul(N,W)|0)+Math.imul(P,V)|0,i=i+Math.imul(P,W)|0,n=n+Math.imul(C,Y)|0,o=(o=o+Math.imul(C,X)|0)+Math.imul(R,Y)|0,i=i+Math.imul(R,X)|0,n=n+Math.imul(S,Z)|0,o=(o=o+Math.imul(S,ee)|0)+Math.imul(A,Z)|0,i=i+Math.imul(A,ee)|0,n=n+Math.imul(T,re)|0,o=(o=o+Math.imul(T,ne)|0)+Math.imul(k,re)|0,i=i+Math.imul(k,ne)|0,n=n+Math.imul(w,ie)|0,o=(o=o+Math.imul(w,ae)|0)+Math.imul(_,ie)|0,i=i+Math.imul(_,ae)|0,n=n+Math.imul(g,ce)|0,o=(o=o+Math.imul(g,ue)|0)+Math.imul(b,ce)|0,i=i+Math.imul(b,ue)|0,n=n+Math.imul(p,de)|0,o=(o=o+Math.imul(p,fe)|0)+Math.imul(y,de)|0,i=i+Math.imul(y,fe)|0;var $e=(u+(n=n+Math.imul(d,pe)|0)|0)+((8191&(o=(o=o+Math.imul(d,ye)|0)+Math.imul(f,pe)|0))<<13)|0;u=((i=i+Math.imul(f,ye)|0)+(o>>>13)|0)+($e>>>26)|0,$e&=67108863,n=Math.imul(L,H),o=(o=Math.imul(L,G))+Math.imul(U,H)|0,i=Math.imul(U,G),n=n+Math.imul(B,V)|0,o=(o=o+Math.imul(B,W)|0)+Math.imul(D,V)|0,i=i+Math.imul(D,W)|0,n=n+Math.imul(N,Y)|0,o=(o=o+Math.imul(N,X)|0)+Math.imul(P,Y)|0,i=i+Math.imul(P,X)|0,n=n+Math.imul(C,Z)|0,o=(o=o+Math.imul(C,ee)|0)+Math.imul(R,Z)|0,i=i+Math.imul(R,ee)|0,n=n+Math.imul(S,re)|0,o=(o=o+Math.imul(S,ne)|0)+Math.imul(A,re)|0,i=i+Math.imul(A,ne)|0,n=n+Math.imul(T,ie)|0,o=(o=o+Math.imul(T,ae)|0)+Math.imul(k,ie)|0,i=i+Math.imul(k,ae)|0,n=n+Math.imul(w,ce)|0,o=(o=o+Math.imul(w,ue)|0)+Math.imul(_,ce)|0,i=i+Math.imul(_,ue)|0,n=n+Math.imul(g,de)|0,o=(o=o+Math.imul(g,fe)|0)+Math.imul(b,de)|0,i=i+Math.imul(b,fe)|0;var Se=(u+(n=n+Math.imul(p,pe)|0)|0)+((8191&(o=(o=o+Math.imul(p,ye)|0)+Math.imul(y,pe)|0))<<13)|0;u=((i=i+Math.imul(y,ye)|0)+(o>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(L,V),o=(o=Math.imul(L,W))+Math.imul(U,V)|0,i=Math.imul(U,W),n=n+Math.imul(B,Y)|0,o=(o=o+Math.imul(B,X)|0)+Math.imul(D,Y)|0,i=i+Math.imul(D,X)|0,n=n+Math.imul(N,Z)|0,o=(o=o+Math.imul(N,ee)|0)+Math.imul(P,Z)|0,i=i+Math.imul(P,ee)|0,n=n+Math.imul(C,re)|0,o=(o=o+Math.imul(C,ne)|0)+Math.imul(R,re)|0,i=i+Math.imul(R,ne)|0,n=n+Math.imul(S,ie)|0,o=(o=o+Math.imul(S,ae)|0)+Math.imul(A,ie)|0,i=i+Math.imul(A,ae)|0,n=n+Math.imul(T,ce)|0,o=(o=o+Math.imul(T,ue)|0)+Math.imul(k,ce)|0,i=i+Math.imul(k,ue)|0,n=n+Math.imul(w,de)|0,o=(o=o+Math.imul(w,fe)|0)+Math.imul(_,de)|0,i=i+Math.imul(_,fe)|0;var Ae=(u+(n=n+Math.imul(g,pe)|0)|0)+((8191&(o=(o=o+Math.imul(g,ye)|0)+Math.imul(b,pe)|0))<<13)|0;u=((i=i+Math.imul(b,ye)|0)+(o>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(L,Y),o=(o=Math.imul(L,X))+Math.imul(U,Y)|0,i=Math.imul(U,X),n=n+Math.imul(B,Z)|0,o=(o=o+Math.imul(B,ee)|0)+Math.imul(D,Z)|0,i=i+Math.imul(D,ee)|0,n=n+Math.imul(N,re)|0,o=(o=o+Math.imul(N,ne)|0)+Math.imul(P,re)|0,i=i+Math.imul(P,ne)|0,n=n+Math.imul(C,ie)|0,o=(o=o+Math.imul(C,ae)|0)+Math.imul(R,ie)|0,i=i+Math.imul(R,ae)|0,n=n+Math.imul(S,ce)|0,o=(o=o+Math.imul(S,ue)|0)+Math.imul(A,ce)|0,i=i+Math.imul(A,ue)|0,n=n+Math.imul(T,de)|0,o=(o=o+Math.imul(T,fe)|0)+Math.imul(k,de)|0,i=i+Math.imul(k,fe)|0;var Ee=(u+(n=n+Math.imul(w,pe)|0)|0)+((8191&(o=(o=o+Math.imul(w,ye)|0)+Math.imul(_,pe)|0))<<13)|0;u=((i=i+Math.imul(_,ye)|0)+(o>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(L,Z),o=(o=Math.imul(L,ee))+Math.imul(U,Z)|0,i=Math.imul(U,ee),n=n+Math.imul(B,re)|0,o=(o=o+Math.imul(B,ne)|0)+Math.imul(D,re)|0,i=i+Math.imul(D,ne)|0,n=n+Math.imul(N,ie)|0,o=(o=o+Math.imul(N,ae)|0)+Math.imul(P,ie)|0,i=i+Math.imul(P,ae)|0,n=n+Math.imul(C,ce)|0,o=(o=o+Math.imul(C,ue)|0)+Math.imul(R,ce)|0,i=i+Math.imul(R,ue)|0,n=n+Math.imul(S,de)|0,o=(o=o+Math.imul(S,fe)|0)+Math.imul(A,de)|0,i=i+Math.imul(A,fe)|0;var Ce=(u+(n=n+Math.imul(T,pe)|0)|0)+((8191&(o=(o=o+Math.imul(T,ye)|0)+Math.imul(k,pe)|0))<<13)|0;u=((i=i+Math.imul(k,ye)|0)+(o>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,n=Math.imul(L,re),o=(o=Math.imul(L,ne))+Math.imul(U,re)|0,i=Math.imul(U,ne),n=n+Math.imul(B,ie)|0,o=(o=o+Math.imul(B,ae)|0)+Math.imul(D,ie)|0,i=i+Math.imul(D,ae)|0,n=n+Math.imul(N,ce)|0,o=(o=o+Math.imul(N,ue)|0)+Math.imul(P,ce)|0,i=i+Math.imul(P,ue)|0,n=n+Math.imul(C,de)|0,o=(o=o+Math.imul(C,fe)|0)+Math.imul(R,de)|0,i=i+Math.imul(R,fe)|0;var Re=(u+(n=n+Math.imul(S,pe)|0)|0)+((8191&(o=(o=o+Math.imul(S,ye)|0)+Math.imul(A,pe)|0))<<13)|0;u=((i=i+Math.imul(A,ye)|0)+(o>>>13)|0)+(Re>>>26)|0,Re&=67108863,n=Math.imul(L,ie),o=(o=Math.imul(L,ae))+Math.imul(U,ie)|0,i=Math.imul(U,ae),n=n+Math.imul(B,ce)|0,o=(o=o+Math.imul(B,ue)|0)+Math.imul(D,ce)|0,i=i+Math.imul(D,ue)|0,n=n+Math.imul(N,de)|0,o=(o=o+Math.imul(N,fe)|0)+Math.imul(P,de)|0,i=i+Math.imul(P,fe)|0;var Oe=(u+(n=n+Math.imul(C,pe)|0)|0)+((8191&(o=(o=o+Math.imul(C,ye)|0)+Math.imul(R,pe)|0))<<13)|0;u=((i=i+Math.imul(R,ye)|0)+(o>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,n=Math.imul(L,ce),o=(o=Math.imul(L,ue))+Math.imul(U,ce)|0,i=Math.imul(U,ue),n=n+Math.imul(B,de)|0,o=(o=o+Math.imul(B,fe)|0)+Math.imul(D,de)|0,i=i+Math.imul(D,fe)|0;var Ne=(u+(n=n+Math.imul(N,pe)|0)|0)+((8191&(o=(o=o+Math.imul(N,ye)|0)+Math.imul(P,pe)|0))<<13)|0;u=((i=i+Math.imul(P,ye)|0)+(o>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,n=Math.imul(L,de),o=(o=Math.imul(L,fe))+Math.imul(U,de)|0,i=Math.imul(U,fe);var Pe=(u+(n=n+Math.imul(B,pe)|0)|0)+((8191&(o=(o=o+Math.imul(B,ye)|0)+Math.imul(D,pe)|0))<<13)|0;u=((i=i+Math.imul(D,ye)|0)+(o>>>13)|0)+(Pe>>>26)|0,Pe&=67108863;var Me=(u+(n=Math.imul(L,pe))|0)+((8191&(o=(o=Math.imul(L,ye))+Math.imul(U,pe)|0))<<13)|0;return u=((i=Math.imul(U,ye))+(o>>>13)|0)+(Me>>>26)|0,Me&=67108863,c[0]=me,c[1]=ge,c[2]=be,c[3]=ve,c[4]=we,c[5]=_e,c[6]=Ie,c[7]=Te,c[8]=ke,c[9]=$e,c[10]=Se,c[11]=Ae,c[12]=Ee,c[13]=Ce,c[14]=Re,c[15]=Oe,c[16]=Ne,c[17]=Pe,c[18]=Me,0!==u&&(c[19]=u,r.length++),r};function p(e,t,r){return(new y).mulp(e,t,r)}function y(e,t){this.x=e,this.y=t}Math.imul||(h=f),o.prototype.mulTo=function(e,t){var r,n=this.length+e.length;return r=10===this.length&&10===e.length?h(this,e,t):n<63?f(this,e,t):n<1024?function(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var n=0,o=0,i=0;i>>26)|0)>>>26,a&=67108863}r.words[i]=s,n=a,a=o}return 0!==n?r.words[i]=n:r.length--,r.strip()}(this,e,t):p(this,e,t),r},y.prototype.makeRBT=function(e){for(var t=new Array(e),r=o.prototype._countBits(e)-1,n=0;n>=1;return n},y.prototype.permute=function(e,t,r,n,o,i){for(var a=0;a>>=1)o++;return 1<>>=13,n[2*a+1]=8191&i,i>>>=13;for(a=2*t;a>=26,t+=o/67108864|0,t+=i>>>26,this.words[n]=67108863&i}return 0!==t&&(this.words[n]=t,this.length++),this},o.prototype.muln=function(e){return this.clone().imuln(e)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r>>o}return t}(e);if(0===t.length)return new o(1);for(var r=this,n=0;n=0);var t,n=e%26,o=(e-n)/26,i=67108863>>>26-n<<26-n;if(0!==n){var a=0;for(t=0;t>>26-n}a&&(this.words[t]=a,this.length++)}if(0!==o){for(t=this.length-1;t>=0;t--)this.words[t+o]=this.words[t];for(t=0;t=0),o=t?(t-t%26)/26:0;var i=e%26,a=Math.min((e-i)/26,this.length),s=67108863^67108863>>>i<a)for(this.length-=a,u=0;u=0&&(0!==l||u>=o);u--){var d=0|this.words[u];this.words[u]=l<<26-i|d>>>i,l=d&s}return c&&0!==l&&(c.words[c.length++]=l),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(e,t,n){return r(0===this.negative),this.iushrn(e,t,n)},o.prototype.shln=function(e){return this.clone().ishln(e)},o.prototype.ushln=function(e){return this.clone().iushln(e)},o.prototype.shrn=function(e){return this.clone().ishrn(e)},o.prototype.ushrn=function(e){return this.clone().iushrn(e)},o.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26,o=1<=0);var t=e%26,n=(e-t)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==t&&n++,this.length=Math.min(n,this.length),0!==t){var o=67108863^67108863>>>t<=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},o.prototype.isubn=function(e){if(r("number"==typeof e),r(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t>26)-(c/67108864|0),this.words[o+n]=67108863&i}for(;o>26,this.words[o+n]=67108863&i;if(0===s)return this.strip();for(r(-1===s),s=0,o=0;o>26,this.words[o]=67108863&i;return this.negative=1,this.strip()},o.prototype._wordDiv=function(e,t){var r=(this.length,e.length),n=this.clone(),i=e,a=0|i.words[i.length-1];0!==(r=26-this._countBits(a))&&(i=i.ushln(r),n.iushln(r),a=0|i.words[i.length-1]);var s,c=n.length-i.length;if("mod"!==t){(s=new o(null)).length=c+1,s.words=new Array(s.length);for(var u=0;u=0;d--){var f=67108864*(0|n.words[i.length+d])+(0|n.words[i.length+d-1]);for(f=Math.min(f/a|0,67108863),n._ishlnsubmul(i,f,d);0!==n.negative;)f--,n.negative=0,n._ishlnsubmul(i,1,d),n.isZero()||(n.negative^=1);s&&(s.words[d]=f)}return s&&s.strip(),n.strip(),"div"!==t&&0!==r&&n.iushrn(r),{div:s||null,mod:n}},o.prototype.divmod=function(e,t,n){return r(!e.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===e.negative?(s=this.neg().divmod(e,t),"mod"!==t&&(i=s.div.neg()),"div"!==t&&(a=s.mod.neg(),n&&0!==a.negative&&a.iadd(e)),{div:i,mod:a}):0===this.negative&&0!==e.negative?(s=this.divmod(e.neg(),t),"mod"!==t&&(i=s.div.neg()),{div:i,mod:s.mod}):this.negative&e.negative?(s=this.neg().divmod(e.neg(),t),"div"!==t&&(a=s.mod.neg(),n&&0!==a.negative&&a.isub(e)),{div:s.div,mod:a}):e.length>this.length||this.cmp(e)<0?{div:new o(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new o(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new o(this.modn(e.words[0]))}:this._wordDiv(e,t);var i,a,s},o.prototype.div=function(e){return this.divmod(e,"div",!1).div},o.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},o.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},o.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,n=e.ushrn(1),o=e.andln(1),i=r.cmp(n);return i<0||1===o&&0===i?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},o.prototype.modn=function(e){r(e<=67108863);for(var t=(1<<26)%e,n=0,o=this.length-1;o>=0;o--)n=(t*n+(0|this.words[o]))%e;return n},o.prototype.idivn=function(e){r(e<=67108863);for(var t=0,n=this.length-1;n>=0;n--){var o=(0|this.words[n])+67108864*t;this.words[n]=o/e|0,t=o%e}return this.strip()},o.prototype.divn=function(e){return this.clone().idivn(e)},o.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i=new o(1),a=new o(0),s=new o(0),c=new o(1),u=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++u;for(var l=n.clone(),d=t.clone();!t.isZero();){for(var f=0,h=1;!(t.words[0]&h)&&f<26;++f,h<<=1);if(f>0)for(t.iushrn(f);f-- >0;)(i.isOdd()||a.isOdd())&&(i.iadd(l),a.isub(d)),i.iushrn(1),a.iushrn(1);for(var p=0,y=1;!(n.words[0]&y)&&p<26;++p,y<<=1);if(p>0)for(n.iushrn(p);p-- >0;)(s.isOdd()||c.isOdd())&&(s.iadd(l),c.isub(d)),s.iushrn(1),c.iushrn(1);t.cmp(n)>=0?(t.isub(n),i.isub(s),a.isub(c)):(n.isub(t),s.isub(i),c.isub(a))}return{a:s,b:c,gcd:n.iushln(u)}},o.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i,a=new o(1),s=new o(0),c=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var u=0,l=1;!(t.words[0]&l)&&u<26;++u,l<<=1);if(u>0)for(t.iushrn(u);u-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);for(var d=0,f=1;!(n.words[0]&f)&&d<26;++d,f<<=1);if(d>0)for(n.iushrn(d);d-- >0;)s.isOdd()&&s.iadd(c),s.iushrn(1);t.cmp(n)>=0?(t.isub(n),a.isub(s)):(n.isub(t),s.isub(a))}return(i=0===t.cmpn(1)?a:s).cmpn(0)<0&&i.iadd(e),i},o.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var n=0;t.isEven()&&r.isEven();n++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var o=t.cmp(r);if(o<0){var i=t;t=r,r=i}else if(0===o||0===r.cmpn(1))break;t.isub(r)}return r.iushln(n)},o.prototype.invm=function(e){return this.egcd(e).a.umod(e)},o.prototype.isEven=function(){return!(1&this.words[0])},o.prototype.isOdd=function(){return!(1&~this.words[0])},o.prototype.andln=function(e){return this.words[0]&e},o.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,n=(e-t)/26,o=1<>>26,s&=67108863,this.words[a]=s}return 0!==i&&(this.words[a]=i,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this.strip(),this.length>1)t=1;else{n&&(e=-e),r(e<=67108863,"Number is too big");var o=0|this.words[0];t=o===e?0:oe.length)return 1;if(this.length=0;r--){var n=0|this.words[r],o=0|e.words[r];if(n!==o){no&&(t=1);break}}return t},o.prototype.gtn=function(e){return 1===this.cmpn(e)},o.prototype.gt=function(e){return 1===this.cmp(e)},o.prototype.gten=function(e){return this.cmpn(e)>=0},o.prototype.gte=function(e){return this.cmp(e)>=0},o.prototype.ltn=function(e){return-1===this.cmpn(e)},o.prototype.lt=function(e){return-1===this.cmp(e)},o.prototype.lten=function(e){return this.cmpn(e)<=0},o.prototype.lte=function(e){return this.cmp(e)<=0},o.prototype.eqn=function(e){return 0===this.cmpn(e)},o.prototype.eq=function(e){return 0===this.cmp(e)},o.red=function(e){return new I(e)},o.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},o.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(e){return this.red=e,this},o.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},o.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},o.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},o.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},o.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},o.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},o.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},o.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},o.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var m={k256:null,p224:null,p192:null,p25519:null};function g(e,t){this.name=e,this.p=new o(t,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function b(){g.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function v(){g.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function w(){g.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function _(){g.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function I(e){if("string"==typeof e){var t=o._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function T(e){I.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}g.prototype._tmp=function(){var e=new o(null);return e.words=new Array(Math.ceil(this.n/13)),e},g.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var n=t0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},g.prototype.split=function(e,t){e.iushrn(this.n,0,t)},g.prototype.imulK=function(e){return e.imul(this.k)},n(b,g),b.prototype.split=function(e,t){for(var r=4194303,n=Math.min(e.length,9),o=0;o>>22,i=a}i>>>=22,e.words[o-10]=i,0===i&&e.length>10?e.length-=10:e.length-=9},b.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r>>=26,e.words[r]=o,t=n}return 0!==t&&(e.words[e.length++]=t),e},o._prime=function(e){if(m[e])return m[e];var t;if("k256"===e)t=new b;else if("p224"===e)t=new v;else if("p192"===e)t=new w;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new _}return m[e]=t,t},I.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},I.prototype._verify2=function(e,t){r(!(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},I.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},I.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},I.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},I.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},I.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},I.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},I.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},I.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},I.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},I.prototype.isqr=function(e){return this.imul(e,e.clone())},I.prototype.sqr=function(e){return this.mul(e,e)},I.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var n=this.m.add(new o(1)).iushrn(2);return this.pow(e,n)}for(var i=this.m.subn(1),a=0;!i.isZero()&&0===i.andln(1);)a++,i.iushrn(1);r(!i.isZero());var s=new o(1).toRed(this),c=s.redNeg(),u=this.m.subn(1).iushrn(1),l=this.m.bitLength();for(l=new o(2*l*l).toRed(this);0!==this.pow(l,u).cmp(c);)l.redIAdd(c);for(var d=this.pow(l,i),f=this.pow(e,i.addn(1).iushrn(1)),h=this.pow(e,i),p=a;0!==h.cmp(s);){for(var y=h,m=0;0!==y.cmp(s);m++)y=y.redSqr();r(m=0;n--){for(var u=t.words[n],l=c-1;l>=0;l--){var d=u>>l&1;i!==r[0]&&(i=this.sqr(i)),0!==d||0!==a?(a<<=1,a|=d,(4===++s||0===n&&0===l)&&(i=this.mul(i,r[a]),s=0,a=0)):s=0}c=26}return i},I.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},I.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},o.mont=function(e){return new T(e)},n(T,I),T.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},T.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},T.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=r.isub(n).iushrn(this.shift),i=o;return o.cmp(this.m)>=0?i=o.isub(this.m):o.cmpn(0)<0&&(i=o.iadd(this.m)),i._forceRed(this)},T.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new o(0)._forceRed(this);var r=e.mul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},T.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e,commonjsGlobal)}(bn$2);var bnExports=bn$2.exports;!function(e){var t=e,r=bnExports,n=minimalisticAssert$1,o=utils$O;t.assert=n,t.toArray=o.toArray,t.zero2=o.zero2,t.toHex=o.toHex,t.encode=o.encode,t.getNAF=function(e,t,r){var n,o=new Array(Math.max(e.bitLength(),r)+1);for(n=0;n(i>>1)-1?(i>>1)-c:c,a.isubn(s)):s=0,o[n]=s,a.iushrn(1)}return o},t.getJSF=function(e,t){var r=[[],[]];e=e.clone(),t=t.clone();for(var n,o=0,i=0;e.cmpn(-o)>0||t.cmpn(-i)>0;){var a,s,c=e.andln(3)+o&3,u=t.andln(3)+i&3;3===c&&(c=-1),3===u&&(u=-1),a=1&c?3!==(n=e.andln(7)+o&7)&&5!==n||2!==u?c:-c:0,r[0].push(a),s=1&u?3!==(n=t.andln(7)+i&7)&&5!==n||2!==c?u:-u:0,r[1].push(s),2*o===a+1&&(o=1-o),2*i===s+1&&(i=1-i),e.iushrn(1),t.iushrn(1)}return r},t.cachedProperty=function(e,t,r){var n="_"+t;e.prototype[t]=function(){return void 0!==this[n]?this[n]:this[n]=r.call(this)}},t.parseBytes=function(e){return"string"==typeof e?t.toArray(e,"hex"):e},t.intFromLE=function(e){return new r(e,"hex","le")}}(utils$e);var curve={},BN$7=bnExports,utils$d=utils$e,getNAF=utils$d.getNAF,getJSF=utils$d.getJSF,assert$8=utils$d.assert;function BaseCurve(e,t){this.type=e,this.p=new BN$7(t.p,16),this.red=t.prime?BN$7.red(t.prime):BN$7.mont(this.p),this.zero=new BN$7(0).toRed(this.red),this.one=new BN$7(1).toRed(this.red),this.two=new BN$7(2).toRed(this.red),this.n=t.n&&new BN$7(t.n,16),this.g=t.g&&this.pointFromJSON(t.g,t.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var r=this.n&&this.p.div(this.n);!r||r.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}var base=BaseCurve;function BasePoint(e,t){this.curve=e,this.type=t,this.precomputed=null}BaseCurve.prototype.point=function(){throw new Error("Not implemented")},BaseCurve.prototype.validate=function(){throw new Error("Not implemented")},BaseCurve.prototype._fixedNafMul=function(e,t){assert$8(e.precomputed);var r=e._getDoubles(),n=getNAF(t,1,this._bitLength),o=(1<=i;c--)a=(a<<1)+n[c];s.push(a)}for(var u=this.jpoint(null,null,null),l=this.jpoint(null,null,null),d=o;d>0;d--){for(i=0;i=0;s--){for(var c=0;s>=0&&0===i[s];s--)c++;if(s>=0&&c++,a=a.dblp(c),s<0)break;var u=i[s];assert$8(0!==u),a="affine"===e.type?u>0?a.mixedAdd(o[u-1>>1]):a.mixedAdd(o[-u-1>>1].neg()):u>0?a.add(o[u-1>>1]):a.add(o[-u-1>>1].neg())}return"affine"===e.type?a.toP():a},BaseCurve.prototype._wnafMulAdd=function(e,t,r,n,o){var i,a,s,c=this._wnafT1,u=this._wnafT2,l=this._wnafT3,d=0;for(i=0;i=1;i-=2){var h=i-1,p=i;if(1===c[h]&&1===c[p]){var y=[t[h],null,null,t[p]];0===t[h].y.cmp(t[p].y)?(y[1]=t[h].add(t[p]),y[2]=t[h].toJ().mixedAdd(t[p].neg())):0===t[h].y.cmp(t[p].y.redNeg())?(y[1]=t[h].toJ().mixedAdd(t[p]),y[2]=t[h].add(t[p].neg())):(y[1]=t[h].toJ().mixedAdd(t[p]),y[2]=t[h].toJ().mixedAdd(t[p].neg()));var m=[-3,-1,-5,-7,0,7,5,1,3],g=getJSF(r[h],r[p]);for(d=Math.max(g[0].length,d),l[h]=new Array(d),l[p]=new Array(d),a=0;a=0;i--){for(var I=0;i>=0;){var T=!0;for(a=0;a=0&&I++,w=w.dblp(I),i<0)break;for(a=0;a0?s=u[a][k-1>>1]:k<0&&(s=u[a][-k-1>>1].neg()),w="affine"===s.type?w.mixedAdd(s):w.add(s))}}for(i=0;i=Math.ceil((e.bitLength()+1)/t.step)},BasePoint.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var r=[this],n=this,o=0;o=0&&(i=t,a=r),n.negative&&(n=n.neg(),o=o.neg()),i.negative&&(i=i.neg(),a=a.neg()),[{a:n,b:o},{a:i,b:a}]},ShortCurve.prototype._endoSplit=function(e){var t=this.endo.basis,r=t[0],n=t[1],o=n.b.mul(e).divRound(this.n),i=r.b.neg().mul(e).divRound(this.n),a=o.mul(r.a),s=i.mul(n.a),c=o.mul(r.b),u=i.mul(n.b);return{k1:e.sub(a).sub(s),k2:c.add(u).neg()}},ShortCurve.prototype.pointFromX=function(e,t){(e=new BN$6(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),n=r.redSqrt();if(0!==n.redSqr().redSub(r).cmp(this.zero))throw new Error("invalid point");var o=n.fromRed().isOdd();return(t&&!o||!t&&o)&&(n=n.redNeg()),this.point(e,n)},ShortCurve.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,r=e.y,n=this.a.redMul(t),o=t.redSqr().redMul(t).redIAdd(n).redIAdd(this.b);return 0===r.redSqr().redISub(o).cmpn(0)},ShortCurve.prototype._endoWnafMulAdd=function(e,t,r){for(var n=this._endoWnafT1,o=this._endoWnafT2,i=0;i":""},Point$2.prototype.isInfinity=function(){return this.inf},Point$2.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var r=t.redSqr().redISub(this.x).redISub(e.x),n=t.redMul(this.x.redSub(r)).redISub(this.y);return this.curve.point(r,n)},Point$2.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,r=this.x.redSqr(),n=e.redInvm(),o=r.redAdd(r).redIAdd(r).redIAdd(t).redMul(n),i=o.redSqr().redISub(this.x.redAdd(this.x)),a=o.redMul(this.x.redSub(i)).redISub(this.y);return this.curve.point(i,a)},Point$2.prototype.getX=function(){return this.x.fromRed()},Point$2.prototype.getY=function(){return this.y.fromRed()},Point$2.prototype.mul=function(e){return e=new BN$6(e,16),this.isInfinity()?this:this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},Point$2.prototype.mulAdd=function(e,t,r){var n=[this,t],o=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,o):this.curve._wnafMulAdd(1,n,o,2)},Point$2.prototype.jmulAdd=function(e,t,r){var n=[this,t],o=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,o,!0):this.curve._wnafMulAdd(1,n,o,2,!0)},Point$2.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},Point$2.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var r=this.precomputed,n=function(e){return e.neg()};t.precomputed={naf:r.naf&&{wnd:r.naf.wnd,points:r.naf.points.map(n)},doubles:r.doubles&&{step:r.doubles.step,points:r.doubles.points.map(n)}}}return t},Point$2.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},inherits$2(JPoint,Base$2.BasePoint),ShortCurve.prototype.jpoint=function(e,t,r){return new JPoint(this,e,t,r)},JPoint.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),r=this.x.redMul(t),n=this.y.redMul(t).redMul(e);return this.curve.point(r,n)},JPoint.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},JPoint.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),r=this.z.redSqr(),n=this.x.redMul(t),o=e.x.redMul(r),i=this.y.redMul(t.redMul(e.z)),a=e.y.redMul(r.redMul(this.z)),s=n.redSub(o),c=i.redSub(a);if(0===s.cmpn(0))return 0!==c.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var u=s.redSqr(),l=u.redMul(s),d=n.redMul(u),f=c.redSqr().redIAdd(l).redISub(d).redISub(d),h=c.redMul(d.redISub(f)).redISub(i.redMul(l)),p=this.z.redMul(e.z).redMul(s);return this.curve.jpoint(f,h,p)},JPoint.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),r=this.x,n=e.x.redMul(t),o=this.y,i=e.y.redMul(t).redMul(this.z),a=r.redSub(n),s=o.redSub(i);if(0===a.cmpn(0))return 0!==s.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var c=a.redSqr(),u=c.redMul(a),l=r.redMul(c),d=s.redSqr().redIAdd(u).redISub(l).redISub(l),f=s.redMul(l.redISub(d)).redISub(o.redMul(u)),h=this.z.redMul(a);return this.curve.jpoint(d,f,h)},JPoint.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();var t;if(this.curve.zeroA||this.curve.threeA){var r=this;for(t=0;t=0)return!1;if(r.redIAdd(o),0===this.x.cmp(r))return!0}},JPoint.prototype.inspect=function(){return this.isInfinity()?"":""},JPoint.prototype.isInfinity=function(){return 0===this.z.cmpn(0)};var BN$5=bnExports,inherits$1=inherits_browserExports,Base$1=base,utils$b=utils$e;function MontCurve(e){Base$1.call(this,"mont",e),this.a=new BN$5(e.a,16).toRed(this.red),this.b=new BN$5(e.b,16).toRed(this.red),this.i4=new BN$5(4).toRed(this.red).redInvm(),this.two=new BN$5(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}inherits$1(MontCurve,Base$1);var mont=MontCurve;function Point$1(e,t,r){Base$1.BasePoint.call(this,e,"projective"),null===t&&null===r?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new BN$5(t,16),this.z=new BN$5(r,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}MontCurve.prototype.validate=function(e){var t=e.normalize().x,r=t.redSqr(),n=r.redMul(t).redAdd(r.redMul(this.a)).redAdd(t);return 0===n.redSqrt().redSqr().cmp(n)},inherits$1(Point$1,Base$1.BasePoint),MontCurve.prototype.decodePoint=function(e,t){return this.point(utils$b.toArray(e,t),1)},MontCurve.prototype.point=function(e,t){return new Point$1(this,e,t)},MontCurve.prototype.pointFromJSON=function(e){return Point$1.fromJSON(this,e)},Point$1.prototype.precompute=function(){},Point$1.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},Point$1.fromJSON=function(e,t){return new Point$1(e,t[0],t[1]||e.one)},Point$1.prototype.inspect=function(){return this.isInfinity()?"":""},Point$1.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},Point$1.prototype.dbl=function(){var e=this.x.redAdd(this.z).redSqr(),t=this.x.redSub(this.z).redSqr(),r=e.redSub(t),n=e.redMul(t),o=r.redMul(t.redAdd(this.curve.a24.redMul(r)));return this.curve.point(n,o)},Point$1.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},Point$1.prototype.diffAdd=function(e,t){var r=this.x.redAdd(this.z),n=this.x.redSub(this.z),o=e.x.redAdd(e.z),i=e.x.redSub(e.z).redMul(r),a=o.redMul(n),s=t.z.redMul(i.redAdd(a).redSqr()),c=t.x.redMul(i.redISub(a).redSqr());return this.curve.point(s,c)},Point$1.prototype.mul=function(e){for(var t=e.clone(),r=this,n=this.curve.point(null,null),o=[];0!==t.cmpn(0);t.iushrn(1))o.push(t.andln(1));for(var i=o.length-1;i>=0;i--)0===o[i]?(r=r.diffAdd(n,this),n=n.dbl()):(n=r.diffAdd(n,this),r=r.dbl());return n},Point$1.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},Point$1.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},Point$1.prototype.eq=function(e){return 0===this.getX().cmp(e.getX())},Point$1.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},Point$1.prototype.getX=function(){return this.normalize(),this.x.fromRed()};var utils$a=utils$e,BN$4=bnExports,inherits=inherits_browserExports,Base=base,assert$6=utils$a.assert;function EdwardsCurve(e){this.twisted=1!=(0|e.a),this.mOneA=this.twisted&&-1==(0|e.a),this.extended=this.mOneA,Base.call(this,"edwards",e),this.a=new BN$4(e.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new BN$4(e.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new BN$4(e.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),assert$6(!this.twisted||0===this.c.fromRed().cmpn(1)),this.oneC=1==(0|e.c)}inherits(EdwardsCurve,Base);var edwards=EdwardsCurve;function Point(e,t,r,n,o){Base.BasePoint.call(this,e,"projective"),null===t&&null===r&&null===n?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new BN$4(t,16),this.y=new BN$4(r,16),this.z=n?new BN$4(n,16):this.curve.one,this.t=o&&new BN$4(o,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}EdwardsCurve.prototype._mulA=function(e){return this.mOneA?e.redNeg():this.a.redMul(e)},EdwardsCurve.prototype._mulC=function(e){return this.oneC?e:this.c.redMul(e)},EdwardsCurve.prototype.jpoint=function(e,t,r,n){return this.point(e,t,r,n)},EdwardsCurve.prototype.pointFromX=function(e,t){(e=new BN$4(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr(),n=this.c2.redSub(this.a.redMul(r)),o=this.one.redSub(this.c2.redMul(this.d).redMul(r)),i=n.redMul(o.redInvm()),a=i.redSqrt();if(0!==a.redSqr().redSub(i).cmp(this.zero))throw new Error("invalid point");var s=a.fromRed().isOdd();return(t&&!s||!t&&s)&&(a=a.redNeg()),this.point(e,a)},EdwardsCurve.prototype.pointFromY=function(e,t){(e=new BN$4(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr(),n=r.redSub(this.c2),o=r.redMul(this.d).redMul(this.c2).redSub(this.a),i=n.redMul(o.redInvm());if(0===i.cmp(this.zero)){if(t)throw new Error("invalid point");return this.point(this.zero,e)}var a=i.redSqrt();if(0!==a.redSqr().redSub(i).cmp(this.zero))throw new Error("invalid point");return a.fromRed().isOdd()!==t&&(a=a.redNeg()),this.point(a,e)},EdwardsCurve.prototype.validate=function(e){if(e.isInfinity())return!0;e.normalize();var t=e.x.redSqr(),r=e.y.redSqr(),n=t.redMul(this.a).redAdd(r),o=this.c2.redMul(this.one.redAdd(this.d.redMul(t).redMul(r)));return 0===n.cmp(o)},inherits(Point,Base.BasePoint),EdwardsCurve.prototype.pointFromJSON=function(e){return Point.fromJSON(this,e)},EdwardsCurve.prototype.point=function(e,t,r,n){return new Point(this,e,t,r,n)},Point.fromJSON=function(e,t){return new Point(e,t[0],t[1],t[2])},Point.prototype.inspect=function(){return this.isInfinity()?"":""},Point.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},Point.prototype._extDbl=function(){var e=this.x.redSqr(),t=this.y.redSqr(),r=this.z.redSqr();r=r.redIAdd(r);var n=this.curve._mulA(e),o=this.x.redAdd(this.y).redSqr().redISub(e).redISub(t),i=n.redAdd(t),a=i.redSub(r),s=n.redSub(t),c=o.redMul(a),u=i.redMul(s),l=o.redMul(s),d=a.redMul(i);return this.curve.point(c,u,d,l)},Point.prototype._projDbl=function(){var e,t,r,n,o,i,a=this.x.redAdd(this.y).redSqr(),s=this.x.redSqr(),c=this.y.redSqr();if(this.curve.twisted){var u=(n=this.curve._mulA(s)).redAdd(c);this.zOne?(e=a.redSub(s).redSub(c).redMul(u.redSub(this.curve.two)),t=u.redMul(n.redSub(c)),r=u.redSqr().redSub(u).redSub(u)):(o=this.z.redSqr(),i=u.redSub(o).redISub(o),e=a.redSub(s).redISub(c).redMul(i),t=u.redMul(n.redSub(c)),r=u.redMul(i))}else n=s.redAdd(c),o=this.curve._mulC(this.z).redSqr(),i=n.redSub(o).redSub(o),e=this.curve._mulC(a.redISub(n)).redMul(i),t=this.curve._mulC(n).redMul(s.redISub(c)),r=n.redMul(i);return this.curve.point(e,t,r)},Point.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},Point.prototype._extAdd=function(e){var t=this.y.redSub(this.x).redMul(e.y.redSub(e.x)),r=this.y.redAdd(this.x).redMul(e.y.redAdd(e.x)),n=this.t.redMul(this.curve.dd).redMul(e.t),o=this.z.redMul(e.z.redAdd(e.z)),i=r.redSub(t),a=o.redSub(n),s=o.redAdd(n),c=r.redAdd(t),u=i.redMul(a),l=s.redMul(c),d=i.redMul(c),f=a.redMul(s);return this.curve.point(u,l,f,d)},Point.prototype._projAdd=function(e){var t,r,n=this.z.redMul(e.z),o=n.redSqr(),i=this.x.redMul(e.x),a=this.y.redMul(e.y),s=this.curve.d.redMul(i).redMul(a),c=o.redSub(s),u=o.redAdd(s),l=this.x.redAdd(this.y).redMul(e.x.redAdd(e.y)).redISub(i).redISub(a),d=n.redMul(c).redMul(l);return this.curve.twisted?(t=n.redMul(u).redMul(a.redSub(this.curve._mulA(i))),r=c.redMul(u)):(t=n.redMul(u).redMul(a.redSub(i)),r=this.curve._mulC(c).redMul(u)),this.curve.point(d,t,r)},Point.prototype.add=function(e){return this.isInfinity()?e:e.isInfinity()?this:this.curve.extended?this._extAdd(e):this._projAdd(e)},Point.prototype.mul=function(e){return this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve._wnafMul(this,e)},Point.prototype.mulAdd=function(e,t,r){return this.curve._wnafMulAdd(1,[this,t],[e,r],2,!1)},Point.prototype.jmulAdd=function(e,t,r){return this.curve._wnafMulAdd(1,[this,t],[e,r],2,!0)},Point.prototype.normalize=function(){if(this.zOne)return this;var e=this.z.redInvm();return this.x=this.x.redMul(e),this.y=this.y.redMul(e),this.t&&(this.t=this.t.redMul(e)),this.z=this.curve.one,this.zOne=!0,this},Point.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},Point.prototype.getX=function(){return this.normalize(),this.x.fromRed()},Point.prototype.getY=function(){return this.normalize(),this.y.fromRed()},Point.prototype.eq=function(e){return this===e||0===this.getX().cmp(e.getX())&&0===this.getY().cmp(e.getY())},Point.prototype.eqXToP=function(e){var t=e.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(t))return!0;for(var r=e.clone(),n=this.curve.redN.redMul(this.z);;){if(r.iadd(this.curve.n),r.cmp(this.curve.p)>=0)return!1;if(t.redIAdd(n),0===this.x.cmp(t))return!0}},Point.prototype.toP=Point.prototype.normalize,Point.prototype.mixedAdd=Point.prototype.add,function(e){var t=e;t.base=base,t.short=short,t.mont=mont,t.edwards=edwards}(curve);var curves$2={},secp256k1,hasRequiredSecp256k1;function requireSecp256k1(){return hasRequiredSecp256k1?secp256k1:(hasRequiredSecp256k1=1,secp256k1={doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}})}!function(e){var t,r=e,n=hash$8,o=curve,i=utils$e.assert;function a(e){"short"===e.type?this.curve=new o.short(e):"edwards"===e.type?this.curve=new o.edwards(e):this.curve=new o.mont(e),this.g=this.curve.g,this.n=this.curve.n,this.hash=e.hash,i(this.g.validate(),"Invalid curve"),i(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function s(e,t){Object.defineProperty(r,e,{configurable:!0,enumerable:!0,get:function(){var n=new a(t);return Object.defineProperty(r,e,{configurable:!0,enumerable:!0,value:n}),n}})}r.PresetCurve=a,s("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:n.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),s("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:n.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),s("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:n.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),s("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:n.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),s("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:n.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),s("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:n.sha256,gRed:!1,g:["9"]}),s("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:n.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{t=requireSecp256k1()}catch(e2){t=void 0}s("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:n.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",t]})}(curves$2);var BN$3=bnExports,utils$9=utils$e,assert$5=utils$9.assert;function KeyPair$3(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}var key$1=KeyPair$3;KeyPair$3.fromPublic=function(e,t,r){return t instanceof KeyPair$3?t:new KeyPair$3(e,{pub:t,pubEnc:r})},KeyPair$3.fromPrivate=function(e,t,r){return t instanceof KeyPair$3?t:new KeyPair$3(e,{priv:t,privEnc:r})},KeyPair$3.prototype.validate=function(){var e=this.getPublic();return e.isInfinity()?{result:!1,reason:"Invalid public key"}:e.validate()?e.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},KeyPair$3.prototype.getPublic=function(e,t){return"string"==typeof e&&(t=e,e=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),t?this.pub.encode(t,e):this.pub},KeyPair$3.prototype.getPrivate=function(e){return"hex"===e?this.priv.toString(16,2):this.priv},KeyPair$3.prototype._importPrivate=function(e,t){this.priv=new BN$3(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},KeyPair$3.prototype._importPublic=function(e,t){if(e.x||e.y)return"mont"===this.ec.curve.type?assert$5(e.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||assert$5(e.x&&e.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(e.x,e.y));this.pub=this.ec.curve.decodePoint(e,t)},KeyPair$3.prototype.derive=function(e){return e.validate()||assert$5(e.validate(),"public point not validated"),e.mul(this.priv).getX()},KeyPair$3.prototype.sign=function(e,t,r){return this.ec.sign(e,this,t,r)},KeyPair$3.prototype.verify=function(e,t){return this.ec.verify(e,t,this)},KeyPair$3.prototype.inspect=function(){return""};var BN$2=bnExports,utils$8=utils$e,assert$4=utils$8.assert;function Signature$3(e,t){if(e instanceof Signature$3)return e;this._importDER(e,t)||(assert$4(e.r&&e.s,"Signature without r or s"),this.r=new BN$2(e.r,16),this.s=new BN$2(e.s,16),void 0===e.recoveryParam?this.recoveryParam=null:this.recoveryParam=e.recoveryParam)}var signature$1=Signature$3;function Position(){this.place=0}function getLength(e,t){var r=e[t.place++];if(!(128&r))return r;var n=15&r;if(0===n||n>4)return!1;if(0===e[t.place])return!1;for(var o=0,i=0,a=t.place;i>>=0;return!(o<=127)&&(t.place=a,o)}function rmPadding(e){for(var t=0,r=e.length-1;!e[t]&&!(128&e[t+1])&&t>>3);for(e.push(128|r);--r;)e.push(t>>>(r<<3)&255);e.push(t)}}Signature$3.prototype._importDER=function(e,t){e=utils$8.toArray(e,t);var r=new Position;if(48!==e[r.place++])return!1;var n=getLength(e,r);if(!1===n)return!1;if(n+r.place!==e.length)return!1;if(2!==e[r.place++])return!1;var o=getLength(e,r);if(!1===o)return!1;if(128&e[r.place])return!1;var i=e.slice(r.place,o+r.place);if(r.place+=o,2!==e[r.place++])return!1;var a=getLength(e,r);if(!1===a)return!1;if(e.length!==a+r.place)return!1;if(128&e[r.place])return!1;var s=e.slice(r.place,a+r.place);if(0===i[0]){if(!(128&i[1]))return!1;i=i.slice(1)}if(0===s[0]){if(!(128&s[1]))return!1;s=s.slice(1)}return this.r=new BN$2(i),this.s=new BN$2(s),this.recoveryParam=null,!0},Signature$3.prototype.toDER=function(e){var t=this.r.toArray(),r=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&r[0]&&(r=[0].concat(r)),t=rmPadding(t),r=rmPadding(r);!(r[0]||128&r[1]);)r=r.slice(1);var n=[2];constructLength(n,t.length),(n=n.concat(t)).push(2),constructLength(n,r.length);var o=n.concat(r),i=[48];return constructLength(i,o.length),i=i.concat(o),utils$8.encode(i,e)};var BN$1=bnExports,HmacDRBG=hmacDrbg$1,utils$7=utils$e,curves$1=curves$2,rand=requireBrorand(),assert$3=utils$7.assert,KeyPair$2=key$1,Signature$2=signature$1;function EC(e){if(!(this instanceof EC))return new EC(e);"string"==typeof e&&(assert$3(Object.prototype.hasOwnProperty.call(curves$1,e),"Unknown curve "+e),e=curves$1[e]),e instanceof curves$1.PresetCurve&&(e={curve:e}),this.curve=e.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=e.curve.g,this.g.precompute(e.curve.n.bitLength()+1),this.hash=e.hash||e.curve.hash}var ec=EC;EC.prototype.keyPair=function(e){return new KeyPair$2(this,e)},EC.prototype.keyFromPrivate=function(e,t){return KeyPair$2.fromPrivate(this,e,t)},EC.prototype.keyFromPublic=function(e,t){return KeyPair$2.fromPublic(this,e,t)},EC.prototype.genKeyPair=function(e){e||(e={});for(var t=new HmacDRBG({hash:this.hash,pers:e.pers,persEnc:e.persEnc||"utf8",entropy:e.entropy||rand(this.hash.hmacStrength),entropyEnc:e.entropy&&e.entropyEnc||"utf8",nonce:this.n.toArray()}),r=this.n.byteLength(),n=this.n.sub(new BN$1(2));;){var o=new BN$1(t.generate(r));if(!(o.cmp(n)>0))return o.iaddn(1),this.keyFromPrivate(o)}},EC.prototype._truncateToN=function(e,t){var r=8*e.byteLength()-this.n.bitLength();return r>0&&(e=e.ushrn(r)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},EC.prototype.sign=function(e,t,r,n){"object"==typeof r&&(n=r,r=null),n||(n={}),t=this.keyFromPrivate(t,r),e=this._truncateToN(new BN$1(e,16));for(var o=this.n.byteLength(),i=t.getPrivate().toArray("be",o),a=e.toArray("be",o),s=new HmacDRBG({hash:this.hash,entropy:i,nonce:a,pers:n.pers,persEnc:n.persEnc||"utf8"}),c=this.n.sub(new BN$1(1)),u=0;;u++){var l=n.k?n.k(u):new BN$1(s.generate(this.n.byteLength()));if(!((l=this._truncateToN(l,!0)).cmpn(1)<=0||l.cmp(c)>=0)){var d=this.g.mul(l);if(!d.isInfinity()){var f=d.getX(),h=f.umod(this.n);if(0!==h.cmpn(0)){var p=l.invm(this.n).mul(h.mul(t.getPrivate()).iadd(e));if(0!==(p=p.umod(this.n)).cmpn(0)){var y=(d.getY().isOdd()?1:0)|(0!==f.cmp(h)?2:0);return n.canonical&&p.cmp(this.nh)>0&&(p=this.n.sub(p),y^=1),new Signature$2({r:h,s:p,recoveryParam:y})}}}}}},EC.prototype.verify=function(e,t,r,n){e=this._truncateToN(new BN$1(e,16)),r=this.keyFromPublic(r,n);var o=(t=new Signature$2(t,"hex")).r,i=t.s;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;if(i.cmpn(1)<0||i.cmp(this.n)>=0)return!1;var a,s=i.invm(this.n),c=s.mul(e).umod(this.n),u=s.mul(o).umod(this.n);return this.curve._maxwellTrick?!(a=this.g.jmulAdd(c,r.getPublic(),u)).isInfinity()&&a.eqXToP(o):!(a=this.g.mulAdd(c,r.getPublic(),u)).isInfinity()&&0===a.getX().umod(this.n).cmp(o)},EC.prototype.recoverPubKey=function(e,t,r,n){assert$3((3&r)===r,"The recovery param is more than two bits"),t=new Signature$2(t,n);var o=this.n,i=new BN$1(e),a=t.r,s=t.s,c=1&r,u=r>>1;if(a.cmp(this.curve.p.umod(this.curve.n))>=0&&u)throw new Error("Unable to find sencond key candinate");a=u?this.curve.pointFromX(a.add(this.curve.n),c):this.curve.pointFromX(a,c);var l=t.r.invm(o),d=o.sub(i).mul(l).umod(o),f=s.mul(l).umod(o);return this.g.mulAdd(d,a,f)},EC.prototype.getKeyRecoveryParam=function(e,t,r,n){if(null!==(t=new Signature$2(t,n)).recoveryParam)return t.recoveryParam;for(var o=0;o<4;o++){var i;try{i=this.recoverPubKey(e,t,o)}catch(a){continue}if(i.eq(r))return o}throw new Error("Unable to find valid recovery factor")};var utils$6=utils$e,assert$2=utils$6.assert,parseBytes$2=utils$6.parseBytes,cachedProperty$1=utils$6.cachedProperty;function KeyPair$1(e,t){this.eddsa=e,this._secret=parseBytes$2(t.secret),e.isPoint(t.pub)?this._pub=t.pub:this._pubBytes=parseBytes$2(t.pub)}KeyPair$1.fromPublic=function(e,t){return t instanceof KeyPair$1?t:new KeyPair$1(e,{pub:t})},KeyPair$1.fromSecret=function(e,t){return t instanceof KeyPair$1?t:new KeyPair$1(e,{secret:t})},KeyPair$1.prototype.secret=function(){return this._secret},cachedProperty$1(KeyPair$1,"pubBytes",(function(){return this.eddsa.encodePoint(this.pub())})),cachedProperty$1(KeyPair$1,"pub",(function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())})),cachedProperty$1(KeyPair$1,"privBytes",(function(){var e=this.eddsa,t=this.hash(),r=e.encodingLength-1,n=t.slice(0,e.encodingLength);return n[0]&=248,n[r]&=127,n[r]|=64,n})),cachedProperty$1(KeyPair$1,"priv",(function(){return this.eddsa.decodeInt(this.privBytes())})),cachedProperty$1(KeyPair$1,"hash",(function(){return this.eddsa.hash().update(this.secret()).digest()})),cachedProperty$1(KeyPair$1,"messagePrefix",(function(){return this.hash().slice(this.eddsa.encodingLength)})),KeyPair$1.prototype.sign=function(e){return assert$2(this._secret,"KeyPair can only verify"),this.eddsa.sign(e,this)},KeyPair$1.prototype.verify=function(e,t){return this.eddsa.verify(e,t,this)},KeyPair$1.prototype.getSecret=function(e){return assert$2(this._secret,"KeyPair is public only"),utils$6.encode(this.secret(),e)},KeyPair$1.prototype.getPublic=function(e){return utils$6.encode(this.pubBytes(),e)};var key=KeyPair$1,BN=bnExports,utils$5=utils$e,assert$1=utils$5.assert,cachedProperty=utils$5.cachedProperty,parseBytes$1=utils$5.parseBytes;function Signature$1(e,t){this.eddsa=e,"object"!=typeof t&&(t=parseBytes$1(t)),Array.isArray(t)&&(assert$1(t.length===2*e.encodingLength,"Signature has invalid size"),t={R:t.slice(0,e.encodingLength),S:t.slice(e.encodingLength)}),assert$1(t.R&&t.S,"Signature without R or S"),e.isPoint(t.R)&&(this._R=t.R),t.S instanceof BN&&(this._S=t.S),this._Rencoded=Array.isArray(t.R)?t.R:t.Rencoded,this._Sencoded=Array.isArray(t.S)?t.S:t.Sencoded}cachedProperty(Signature$1,"S",(function(){return this.eddsa.decodeInt(this.Sencoded())})),cachedProperty(Signature$1,"R",(function(){return this.eddsa.decodePoint(this.Rencoded())})),cachedProperty(Signature$1,"Rencoded",(function(){return this.eddsa.encodePoint(this.R())})),cachedProperty(Signature$1,"Sencoded",(function(){return this.eddsa.encodeInt(this.S())})),Signature$1.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())},Signature$1.prototype.toHex=function(){return utils$5.encode(this.toBytes(),"hex").toUpperCase()};var signature=Signature$1,hash=hash$8,curves=curves$2,utils$4=utils$e,assert=utils$4.assert,parseBytes=utils$4.parseBytes,KeyPair=key,Signature=signature;function EDDSA(e){if(assert("ed25519"===e,"only tested with ed25519 so far"),!(this instanceof EDDSA))return new EDDSA(e);e=curves[e].curve,this.curve=e,this.g=e.g,this.g.precompute(e.n.bitLength()+1),this.pointClass=e.point().constructor,this.encodingLength=Math.ceil(e.n.bitLength()/8),this.hash=hash.sha512}var eddsa=EDDSA;EDDSA.prototype.sign=function(e,t){e=parseBytes(e);var r=this.keyFromSecret(t),n=this.hashInt(r.messagePrefix(),e),o=this.g.mul(n),i=this.encodePoint(o),a=this.hashInt(i,r.pubBytes(),e).mul(r.priv()),s=n.add(a).umod(this.curve.n);return this.makeSignature({R:o,S:s,Rencoded:i})},EDDSA.prototype.verify=function(e,t,r){if(e=parseBytes(e),(t=this.makeSignature(t)).S().gte(t.eddsa.curve.n)||t.S().isNeg())return!1;var n=this.keyFromPublic(r),o=this.hashInt(t.Rencoded(),n.pubBytes(),e),i=this.g.mul(t.S());return t.R().add(n.pub().mul(o)).eq(i)},EDDSA.prototype.hashInt=function(){for(var e=this.hash(),t=0;tt in e?gt$2(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Fe=(e,t)=>{for(var r in t||(t={}))vt$1.call(t,r)&&Le$1(e,r,t[r]);if(Ke)for(var r of Ke(t))bt$1.call(t,r)&&Le$1(e,r,t[r]);return e};const qe="ReactNative",y$5={reactNative:"react-native",node:"node",browser:"browser",unknown:"unknown"},He="js";function ce(){return typeof process$1<"u"&&typeof process$1.versions<"u"&&typeof process$1.versions.node<"u"}function _$5(){return!getDocument_1$1()&&!!getNavigator_1$1()&&navigator.product===qe}function V$3(){return!ce()&&!!getNavigator_1$1()&&!!getDocument_1$1()}function P$4(){return _$5()?y$5.reactNative:ce()?y$5.node:V$3()?y$5.browser:y$5.unknown}function Ot$1(){var e;try{return _$5()&&typeof global$1<"u"&&typeof(null==global$1?void 0:global$1.Application)<"u"?null==(e=global$1.Application)?void 0:e.applicationId:void 0}catch{return}}function We$1(e,t){let r=queryString.parse(e);return r=Fe(Fe({},r),t),e=queryString.stringify(r)}function Nt$1(){return getWindowMetadata_1$1()||{name:"",description:"",url:"",icons:[""]}}function Je$1(){if(P$4()===y$5.reactNative&&typeof global$1<"u"&&typeof(null==global$1?void 0:global$1.Platform)<"u"){const{OS:e,Version:t}=global$1.Platform;return[e,t].join("-")}const e=detect$1();if(null===e)return"unknown";const t=e.os?e.os.replace(" ","").toLowerCase():"unknown";return"browser"===e.type?[t,e.name,e.version].join("-"):[t,e.version].join("-")}function ze(){var e;const t=P$4();return t===y$5.browser?[t,(null==(e=getLocation_1$1())?void 0:e.host)||"unknown"].join(":"):t}function Ge(e,t,r){const n=Je$1(),o=ze();return[[e,t].join("-"),[He,r].join("-"),n,o].join("/")}function $t$1({protocol:e,version:t,relayUrl:r,sdkVersion:n,auth:o,projectId:i,useOnCloseEvent:a,bundleId:s}){const c=r.split("?"),u={auth:o,ua:Ge(e,t,n),projectId:i,useOnCloseEvent:a||void 0,origin:s||void 0},l=We$1(c[1]||"",u);return c[0]+"?"+l}function $$4(e,t){return e.filter((e=>t.includes(e))).length===e.length}function Tt$1(e){return Object.fromEntries(e.entries())}function Pt$1(e){return new Map(Object.entries(e))}function _t$1(e=cjs$7.FIVE_MINUTES,t){const r=cjs$7.toMiliseconds(e||cjs$7.FIVE_MINUTES);let n,o,i;return{resolve:e=>{i&&n&&(clearTimeout(i),n(e))},reject:e=>{i&&o&&(clearTimeout(i),o(e))},done:()=>new Promise(((e,a)=>{i=setTimeout((()=>{a(new Error(t))}),r),n=e,o=a}))}}function kt$1(e,t,r){return new Promise((async(n,o)=>{const i=setTimeout((()=>o(new Error(r))),t);try{n(await e)}catch(a){o(a)}clearTimeout(i)}))}function ae$1(e,t){if("string"==typeof t&&t.startsWith(`${e}:`))return t;if("topic"===e.toLowerCase()){if("string"!=typeof t)throw new Error('Value must be "string" for expirer target type: topic');return`topic:${t}`}if("id"===e.toLowerCase()){if("number"!=typeof t)throw new Error('Value must be "number" for expirer target type: id');return`id:${t}`}throw new Error(`Unknown expirer target type: ${e}`)}function Dt$1(e){return ae$1("topic",e)}function xt$1(e){return ae$1("id",e)}function Vt$1(e){const[t,r]=e.split(":"),n={id:void 0,topic:void 0};if("topic"===t&&"string"==typeof r)n.topic=r;else{if("id"!==t||!Number.isInteger(Number(r)))throw new Error(`Invalid target, expected id:number or topic:string, got ${t}:${r}`);n.id=Number(r)}return n}function Mt$1(e,t){return cjs$7.fromMiliseconds(Date.now()+cjs$7.toMiliseconds(e))}function Kt$1(e){return Date.now()>=cjs$7.toMiliseconds(e)}function Lt$1(e,t){return`${e}${t?`:${t}`:""}`}function N$3(e=[],t=[]){return[...new Set([...e,...t])]}async function Ft$1({id:e,topic:t,wcDeepLink:r}){var n;try{if(!r)return;const o="string"==typeof r?JSON.parse(r):r,i=null==o?void 0:o.href;if("string"!=typeof i)return;const a=Xe$1(i,e,t),s=P$4();if(s===y$5.browser){if(null==(n=getDocument_1$1())||!n.hasFocus())return void console.warn("Document does not have focus, skipping deeplink.");a.startsWith("https://")||a.startsWith("http://")?window.open(a,"_blank","noreferrer noopener"):window.open(a,en$2()?"_blank":"_self","noreferrer noopener")}else s===y$5.reactNative&&typeof(null==global$1?void 0:global$1.Linking)<"u"&&await global$1.Linking.openURL(a)}catch(o){console.error(o)}}function Xe$1(e,t,r){const n=`requestId=${t}&sessionTopic=${r}`;e.endsWith("/")&&(e=e.slice(0,-1));let o=`${e}`;if(e.startsWith("https://t.me")){o=`${o}${e.includes("?")?"&startapp=":"?startapp="}${nn$1(n,!0)}`}else o=`${o}/wc?${n}`;return o}async function qt$1(e,t){let r="";try{if(V$3()&&(r=localStorage.getItem(t),r))return r;r=await e.getItem(t)}catch(n){console.error(n)}return r}function Bt$1(e,t){if(!e.includes(t))return null;const r=e.split(/([&,?,=])/),n=r.indexOf(t);return r[n+2]}function Ht$1(){return typeof crypto<"u"&&null!=crypto&&crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/gu,(e=>{const t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}))}function Wt$1(){return typeof process$1<"u"&&"true"===process$1.env.IS_VITEST}function en$2(){return typeof window<"u"&&(!!window.TelegramWebviewProxy||!!window.Telegram||!!window.TelegramWebviewProxyProto)}function nn$1(e,t=!1){const r=Buffer$2.from(e).toString("base64");return t?r.replace(/[=]/g,""):r}function le(e){return Buffer$2.from(e,"base64").toString("utf-8")}const Jt$1="https://rpc.walletconnect.org/v1";async function tn$1(e,t,r,n,o,i){switch(r.t){case"eip191":return rn$1(e,t,r.s);case"eip1271":return await on$1(e,t,r.s,n,o,i);default:throw new Error(`verifySignature failed: Attempted to verify CacaoSignature with unknown type: ${r.t}`)}}function rn$1(e,t,r){return recoverAddress(hashMessage(t),r).toLowerCase()===e.toLowerCase()}async function on$1(e,t,r,n,o,i){const a=re$1(n);if(!a.namespace||!a.reference)throw new Error(`isValidEip1271Signature failed: chainId must be in CAIP-2 format, received: ${n}`);try{const a="0x1626ba7e",s="0000000000000000000000000000000000000000000000000000000000000040",c="0000000000000000000000000000000000000000000000000000000000000041",u=r.substring(2),l=a+hashMessage(t).substring(2)+s+c+u,d=await fetch(`${i||Jt$1}/?chainId=${n}&projectId=${o}`,{method:"POST",body:JSON.stringify({id:zt$1(),jsonrpc:"2.0",method:"eth_call",params:[{to:e,data:l},"latest"]})}),{result:f}=await d.json();return!!f&&f.slice(0,a.length).toLowerCase()===a.toLowerCase()}catch(s){return console.error("isValidEip1271Signature: ",s),!1}}function zt$1(){return Date.now()+Math.floor(1e3*Math.random())}var Gt$1=Object.defineProperty,Yt$1=Object.defineProperties,Qt$1=Object.getOwnPropertyDescriptors,sn$1=Object.getOwnPropertySymbols,Zt$1=Object.prototype.hasOwnProperty,Xt$1=Object.prototype.propertyIsEnumerable,cn$1=(e,t,r)=>t in e?Gt$1(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,de$1=(e,t)=>{for(var r in t||(t={}))Zt$1.call(t,r)&&cn$1(e,r,t[r]);if(sn$1)for(var r of sn$1(t))Xt$1.call(t,r)&&cn$1(e,r,t[r]);return e},an$1=(e,t)=>Yt$1(e,Qt$1(t));const er$1="did:pkh:",z$6=e=>null==e?void 0:e.split(":"),un$1=e=>{const t=e&&z$6(e);if(t)return e.includes(er$1)?t[3]:t[1]},ln$1=e=>{const t=e&&z$6(e);if(t)return t[2]+":"+t[3]},fe$1=e=>{const t=e&&z$6(e);if(t)return t.pop()};async function nr$1(e){const{cacao:t,projectId:r}=e,{s:n,p:o}=t,i=dn$1(o,o.iss),a=fe$1(o.iss);return await tn$1(a,i,n,ln$1(o.iss),r)}const dn$1=(e,t)=>{const r=`${e.domain} wants you to sign in with your Ethereum account:`,n=fe$1(t);if(!e.aud&&!e.uri)throw new Error("Either `aud` or `uri` is required to construct the message");let o=e.statement||void 0;const i=`URI: ${e.aud||e.uri}`,a=`Version: ${e.version}`,s=`Chain ID: ${un$1(t)}`,c=`Nonce: ${e.nonce}`,u=`Issued At: ${e.iat}`,l=e.exp?`Expiration Time: ${e.exp}`:void 0,d=e.nbf?`Not Before: ${e.nbf}`:void 0,f=e.requestId?`Request ID: ${e.requestId}`:void 0,h=e.resources?`Resources:${e.resources.map((e=>`\n- ${e}`)).join("")}`:void 0,p=Y$1(e.resources);if(p){o=he(o,R$3(p))}return[r,n,"",o,"",i,a,s,c,u,l,d,f,h].filter((e=>null!=e)).join("\n")};function hn$1(e){return Buffer$2.from(JSON.stringify(e)).toString("base64")}function yn$1(e){return JSON.parse(Buffer$2.from(e,"base64").toString("utf-8"))}function O$3(e){if(!e)throw new Error("No recap provided, value is undefined");if(!e.att)throw new Error("No `att` property found");const t=Object.keys(e.att);if(null==t||!t.length)throw new Error("No resources found in `att` property");t.forEach((t=>{const r=e.att[t];if(Array.isArray(r))throw new Error(`Resource must be an object: ${t}`);if("object"!=typeof r)throw new Error(`Resource must be an object: ${t}`);if(!Object.keys(r).length)throw new Error(`Resource object is empty: ${t}`);Object.keys(r).forEach((e=>{const t=r[e];if(!Array.isArray(t))throw new Error(`Ability limits ${e} must be an array of objects, found: ${t}`);if(!t.length)throw new Error(`Value of ${e} is empty array, must be an array with objects`);t.forEach((t=>{if("object"!=typeof t)throw new Error(`Ability limits (${e}) must be an array of objects, found: ${t}`)}))}))}))}function gn$1(e,t,r,n={}){return null==r||r.sort(((e,t)=>e.localeCompare(t))),{att:{[e]:pe(t,r,n)}}}function pe(e,t,r={}){const n=(t=null==t?void 0:t.sort(((e,t)=>e.localeCompare(t)))).map((t=>({[`${e}/${t}`]:[r]})));return Object.assign({},...n)}function G$1(e){return O$3(e),`urn:recap:${hn$1(e).replace(/=/g,"")}`}function R$3(e){const t=yn$1(e.replace("urn:recap:",""));return O$3(t),t}function ir$1(e,t,r){return G$1(gn$1(e,t,r))}function me$2(e){return e&&e.includes("urn:recap:")}function cr$1(e,t){return G$1(bn$1(R$3(e),R$3(t)))}function bn$1(e,t){O$3(e),O$3(t);const r=Object.keys(e.att).concat(Object.keys(t.att)).sort(((e,t)=>e.localeCompare(t))),n={att:{}};return r.forEach((r=>{var o,i;Object.keys((null==(o=e.att)?void 0:o[r])||{}).concat(Object.keys((null==(i=t.att)?void 0:i[r])||{})).sort(((e,t)=>e.localeCompare(t))).forEach((o=>{var i,a;n.att[r]=an$1(de$1({},n.att[r]),{[o]:(null==(i=e.att[r])?void 0:i[o])||(null==(a=t.att[r])?void 0:a[o])})}))})),n}function he(e="",t){O$3(t);const r="I further authorize the stated URI to perform the following actions on my behalf: ";if(e.includes(r))return e;const n=[];let o=0;Object.keys(t.att).forEach((e=>{const r=Object.keys(t.att[e]).map((e=>({ability:e.split("/")[0],action:e.split("/")[1]})));r.sort(((e,t)=>e.action.localeCompare(t.action)));const i={};r.forEach((e=>{i[e.ability]||(i[e.ability]=[]),i[e.ability].push(e.action)}));const a=Object.keys(i).map((t=>(o++,`(${o}) '${t}': '${i[t].join("', '")}' for '${e}'.`)));n.push(a.join(", ").replace(".,","."))}));return`${e?e+" ":""}${`${r}${n.join(" ")}`}`}function ar$1(e){var t;const r=R$3(e);O$3(r);const n=null==(t=r.att)?void 0:t.eip155;return n?Object.keys(n).map((e=>e.split("/")[1])):[]}function ur$1(e){const t=R$3(e);O$3(t);const r=[];return Object.values(t.att).forEach((e=>{Object.values(e).forEach((e=>{var t;null!=(t=null==e?void 0:e[0])&&t.chains&&r.push(e[0].chains)}))})),[...new Set(r.flat())]}function Y$1(e){if(!e)return;const t=null==e?void 0:e[e.length-1];return me$2(t)?t:void 0}const ye$2="base10",g$4="base16",ge="base64pad",lr$1="base64url",k$4="utf8",ve$1=0,D$5=1,M$4=2,dr$1=0,wn=1,K$2=12,be$2=32;function fr$2(){const e=x25519.generateKeyPair();return{privateKey:toString$1(e.secretKey,g$4),publicKey:toString$1(e.publicKey,g$4)}}function pr$1(){return toString$1(random.randomBytes(be$2),g$4)}function mr$1(e,t){const r=x25519.sharedKey(fromString$1(e,g$4),fromString$1(t,g$4),!0);return toString$1(new HKDF_1(sha256.SHA256,r).expand(be$2),g$4)}function hr$1(e){return toString$1(sha256.hash(fromString$1(e,g$4)),g$4)}function yr$1(e){return toString$1(sha256.hash(fromString$1(e,k$4)),g$4)}function Ee$1(e){return fromString$1(`${e}`,ye$2)}function A$4(e){return Number(toString$1(e,ye$2))}function gr$1(e){const t=Ee$1(typeof e.type<"u"?e.type:ve$1);if(A$4(t)===D$5&&typeof e.senderPublicKey>"u")throw new Error("Missing sender public key for type 1 envelope");const r=typeof e.senderPublicKey<"u"?fromString$1(e.senderPublicKey,g$4):void 0,n=typeof e.iv<"u"?fromString$1(e.iv,g$4):random.randomBytes(K$2);return we$2({type:t,sealed:new chacha20poly1305.ChaCha20Poly1305(fromString$1(e.symKey,g$4)).seal(n,fromString$1(e.message,k$4)),iv:n,senderPublicKey:r,encoding:e.encoding})}function vr$1(e,t){const r=Ee$1(M$4),n=random.randomBytes(K$2);return we$2({type:r,sealed:fromString$1(e,k$4),iv:n,encoding:t})}function br$1(e){const t=new chacha20poly1305.ChaCha20Poly1305(fromString$1(e.symKey,g$4)),{sealed:r,iv:n}=Q$1({encoded:e.encoded,encoding:null==e?void 0:e.encoding}),o=t.open(n,r);if(null===o)throw new Error("Failed to decrypt");return toString$1(o,k$4)}function Er$1(e,t){const{sealed:r}=Q$1({encoded:e,encoding:t});return toString$1(r,k$4)}function we$2(e){const{encoding:t=ge}=e;if(A$4(e.type)===M$4)return toString$1(concat([e.type,e.sealed]),t);if(A$4(e.type)===D$5){if(typeof e.senderPublicKey>"u")throw new Error("Missing sender public key for type 1 envelope");return toString$1(concat([e.type,e.senderPublicKey,e.iv,e.sealed]),t)}return toString$1(concat([e.type,e.iv,e.sealed]),t)}function Q$1(e){const{encoded:t,encoding:r=ge}=e,n=fromString$1(t,r),o=n.slice(dr$1,wn),i=wn;if(A$4(o)===D$5){const e=i+be$2,t=e+K$2,r=n.slice(i,e),a=n.slice(e,t);return{type:o,sealed:n.slice(t),iv:a,senderPublicKey:r}}if(A$4(o)===M$4){return{type:o,sealed:n.slice(i),iv:random.randomBytes(K$2)}}const a=i+K$2,s=n.slice(i,a);return{type:o,sealed:n.slice(a),iv:s}}function wr$1(e,t){const r=Q$1({encoded:e,encoding:null==t?void 0:t.encoding});return On({type:A$4(r.type),senderPublicKey:typeof r.senderPublicKey<"u"?toString$1(r.senderPublicKey,g$4):void 0,receiverPublicKey:null==t?void 0:t.receiverPublicKey})}function On(e){const t=(null==e?void 0:e.type)||ve$1;if(t===D$5){if(typeof(null==e?void 0:e.senderPublicKey)>"u")throw new Error("missing sender public key");if(typeof(null==e?void 0:e.receiverPublicKey)>"u")throw new Error("missing receiver public key")}return{type:t,senderPublicKey:null==e?void 0:e.senderPublicKey,receiverPublicKey:null==e?void 0:e.receiverPublicKey}}function Or$1(e){return e.type===D$5&&"string"==typeof e.senderPublicKey&&"string"==typeof e.receiverPublicKey}function Nr$1(e){return e.type===M$4}function Nn(e){return new elliptic.ec("p256").keyFromPublic({x:Buffer$2.from(e.x,"base64").toString("hex"),y:Buffer$2.from(e.y,"base64").toString("hex")},"hex")}function Sr$1(e){let t=e.replace(/-/g,"+").replace(/_/g,"/");const r=t.length%4;return r>0&&(t+="=".repeat(4-r)),t}function $r$1(e){return Buffer$2.from(Sr$1(e),"base64")}function Rr$1(e,t){const[r,n,o]=e.split("."),i=$r$1(o);if(64!==i.length)throw new Error("Invalid signature length");const a=i.slice(0,32).toString("hex"),s=i.slice(32,64).toString("hex"),c=`${r}.${n}`,u=(new sha256.SHA256).update(Buffer$2.from(c)).digest(),l=Nn(t),d=Buffer$2.from(u).toString("hex");if(!l.verify(d,{r:a,s:s}))throw new Error("Invalid signature");return decodeJWT(e).payload}const Sn="irn";function Ir$1(e){return(null==e?void 0:e.relay)||{protocol:Sn}}function jr$1(e){const t=C$6[e];if(typeof t>"u")throw new Error(`Relay Protocol not supported: ${e}`);return t}var Tr$1=Object.defineProperty,Pr$1=Object.defineProperties,Ar$1=Object.getOwnPropertyDescriptors,$n=Object.getOwnPropertySymbols,Cr$1=Object.prototype.hasOwnProperty,Ur$1=Object.prototype.propertyIsEnumerable,Rn=(e,t,r)=>t in e?Tr$1(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,In=(e,t)=>{for(var r in t||(t={}))Cr$1.call(t,r)&&Rn(e,r,t[r]);if($n)for(var r of $n(t))Ur$1.call(t,r)&&Rn(e,r,t[r]);return e},_r$1=(e,t)=>Pr$1(e,Ar$1(t));function jn(e,t="-"){const r={},n="relay"+t;return Object.keys(e).forEach((t=>{if(t.startsWith(n)){const o=t.replace(n,""),i=e[t];r[o]=i}})),r}function kr$1(e){if(!e.includes("wc:")){const t=le(e);null!=t&&t.includes("wc:")&&(e=t)}const t=(e=(e=e.includes("wc://")?e.replace("wc://",""):e).includes("wc:")?e.replace("wc:",""):e).indexOf(":"),r=-1!==e.indexOf("?")?e.indexOf("?"):void 0,n=e.substring(0,t),o=e.substring(t+1,r).split("@"),i=typeof r<"u"?e.substring(r):"",a=queryString.parse(i),s="string"==typeof a.methods?a.methods.split(","):void 0;return{protocol:n,topic:Tn(o[0]),version:parseInt(o[1],10),symKey:a.symKey,relay:jn(a),methods:s,expiryTimestamp:a.expiryTimestamp?parseInt(a.expiryTimestamp,10):void 0}}function Tn(e){return e.startsWith("//")?e.substring(2):e}function Pn(e,t="-"){const r={};return Object.keys(e).forEach((n=>{const o="relay"+t+n;e[n]&&(r[o]=e[n])})),r}function Dr$1(e){return`${e.protocol}:${e.topic}@${e.version}?`+queryString.stringify(In(_r$1(In({symKey:e.symKey},Pn(e.relay)),{expiryTimestamp:e.expiryTimestamp}),e.methods?{methods:e.methods.join(",")}:{}))}function xr$1(e,t,r){return`${e}?wc_ev=${r}&topic=${t}`}function C$4(e){const t=[];return e.forEach((e=>{const[r,n]=e.split(":");t.push(`${r}:${n}`)})),t}function Un(e){const t=[];return Object.values(e).forEach((e=>{t.push(...C$4(e.accounts))})),t}function _n(e,t){const r=[];return Object.values(e).forEach((e=>{C$4(e.accounts).includes(t)&&r.push(...e.methods)})),r}function kn(e,t){const r=[];return Object.values(e).forEach((e=>{C$4(e.accounts).includes(t)&&r.push(...e.events)})),r}function xn(e){const t={};return null==e||e.forEach((e=>{const[r,n]=e.split(":");t[r]||(t[r]={accounts:[],chains:[],events:[]}),t[r].accounts.push(e),t[r].chains.push(`${r}:${n}`)})),t}function Jr$1(e,t){const r=xn(t=t.map((e=>e.replace("did:pkh:",""))));for(const[n,o]of Object.entries(r))o.methods?o.methods=N$3(o.methods,e):o.methods=e,o.events=["chainChanged","accountsChanged"];return r}const Vn={INVALID_METHOD:{message:"Invalid method.",code:1001},INVALID_EVENT:{message:"Invalid event.",code:1002},INVALID_UPDATE_REQUEST:{message:"Invalid update request.",code:1003},INVALID_EXTEND_REQUEST:{message:"Invalid extend request.",code:1004},INVALID_SESSION_SETTLE_REQUEST:{message:"Invalid session settle request.",code:1005},UNAUTHORIZED_METHOD:{message:"Unauthorized method.",code:3001},UNAUTHORIZED_EVENT:{message:"Unauthorized event.",code:3002},UNAUTHORIZED_UPDATE_REQUEST:{message:"Unauthorized update request.",code:3003},UNAUTHORIZED_EXTEND_REQUEST:{message:"Unauthorized extend request.",code:3004},USER_REJECTED:{message:"User rejected.",code:5e3},USER_REJECTED_CHAINS:{message:"User rejected chains.",code:5001},USER_REJECTED_METHODS:{message:"User rejected methods.",code:5002},USER_REJECTED_EVENTS:{message:"User rejected events.",code:5003},UNSUPPORTED_CHAINS:{message:"Unsupported chains.",code:5100},UNSUPPORTED_METHODS:{message:"Unsupported methods.",code:5101},UNSUPPORTED_EVENTS:{message:"Unsupported events.",code:5102},UNSUPPORTED_ACCOUNTS:{message:"Unsupported accounts.",code:5103},UNSUPPORTED_NAMESPACE_KEY:{message:"Unsupported namespace key.",code:5104},USER_DISCONNECTED:{message:"User disconnected.",code:6e3},SESSION_SETTLEMENT_FAILED:{message:"Session settlement failed.",code:7e3},WC_METHOD_UNSUPPORTED:{message:"Unsupported wc_ method.",code:10001}},Mn={NOT_INITIALIZED:{message:"Not initialized.",code:1},NO_MATCHING_KEY:{message:"No matching key.",code:2},RESTORE_WILL_OVERRIDE:{message:"Restore will override.",code:3},RESUBSCRIBED:{message:"Resubscribed.",code:4},MISSING_OR_INVALID:{message:"Missing or invalid.",code:5},EXPIRED:{message:"Expired.",code:6},UNKNOWN_TYPE:{message:"Unknown type.",code:7},MISMATCHED_TOPIC:{message:"Mismatched topic.",code:8},NON_CONFORMING_NAMESPACES:{message:"Non conforming namespaces.",code:9}};function S$6(e,t){const{message:r,code:n}=Mn[e];return{message:t?`${r} ${t}`:r,code:n}}function U$2(e,t){const{message:r,code:n}=Vn[e];return{message:t?`${r} ${t}`:r,code:n}}function L$4(e,t){return!!Array.isArray(e)}function Z$3(e){return Object.getPrototypeOf(e)===Object.prototype&&Object.keys(e).length}function I$5(e){return typeof e>"u"}function b$4(e,t){return!(!t||!I$5(e))||"string"==typeof e&&!!e.trim().length}function X$2(e,t){return!(!t||!I$5(e))||"number"==typeof e&&!isNaN(e)}function zr$1(e,t){const{requiredNamespaces:r}=t,n=Object.keys(e.namespaces),o=Object.keys(r);let i=!0;return!!$$4(o,n)&&(n.forEach((t=>{const{accounts:n,methods:o,events:a}=e.namespaces[t],s=C$4(n),c=r[t];$$4(W$2(t,c),s)&&$$4(c.methods,o)&&$$4(c.events,a)||(i=!1)})),i)}function F$3(e){return!(!b$4(e,!1)||!e.includes(":"))&&2===e.split(":").length}function Kn(e){if(b$4(e,!1)&&e.includes(":")){const t=e.split(":");if(3===t.length){const e=t[0]+":"+t[1];return!!t[2]&&F$3(e)}}return!1}function Gr$1(e){function t(e){try{return typeof new URL(e)<"u"}catch{return!1}}try{if(b$4(e,!1)){if(t(e))return!0;return t(le(e))}}catch{}return!1}function Yr$1(e){var t;return null==(t=null==e?void 0:e.proposer)?void 0:t.publicKey}function Qr$1(e){return null==e?void 0:e.topic}function Zr$1(e,t){let r=null;return b$4(null==e?void 0:e.publicKey,!1)||(r=S$6("MISSING_OR_INVALID",`${t} controller public key should be a string`)),r}function Se(e){let t=!0;return L$4(e)?e.length&&(t=e.every((e=>b$4(e,!1)))):t=!1,t}function Ln(e,t,r){let n=null;return L$4(t)&&t.length?t.forEach((e=>{n||F$3(e)||(n=U$2("UNSUPPORTED_CHAINS",`${r}, chain ${e} should be a string and conform to "namespace:chainId" format`))})):F$3(e)||(n=U$2("UNSUPPORTED_CHAINS",`${r}, chains must be defined as "namespace:chainId" e.g. "eip155:1": {...} in the namespace key OR as an array of CAIP-2 chainIds e.g. eip155: { chains: ["eip155:1", "eip155:5"] }`)),n}function Fn(e,t,r){let n=null;return Object.entries(e).forEach((([e,o])=>{if(n)return;const i=Ln(e,W$2(e,o),`${t} ${r}`);i&&(n=i)})),n}function qn(e,t){let r=null;return L$4(e)?e.forEach((e=>{r||Kn(e)||(r=U$2("UNSUPPORTED_ACCOUNTS",`${t}, account ${e} should be a string and conform to "namespace:chainId:address" format`))})):r=U$2("UNSUPPORTED_ACCOUNTS",`${t}, accounts should be an array of strings conforming to "namespace:chainId:address" format`),r}function Bn(e,t){let r=null;return Object.values(e).forEach((e=>{if(r)return;const n=qn(null==e?void 0:e.accounts,`${t} namespace`);n&&(r=n)})),r}function Hn(e,t){let r=null;return Se(null==e?void 0:e.methods)?Se(null==e?void 0:e.events)||(r=U$2("UNSUPPORTED_EVENTS",`${t}, events should be an array of strings or empty array for no events`)):r=U$2("UNSUPPORTED_METHODS",`${t}, methods should be an array of strings or empty array for no methods`),r}function $e(e,t){let r=null;return Object.values(e).forEach((e=>{if(r)return;const n=Hn(e,`${t}, namespace`);n&&(r=n)})),r}function Xr$1(e,t,r){let n=null;if(e&&Z$3(e)){const o=$e(e,t);o&&(n=o);const i=Fn(e,t,r);i&&(n=i)}else n=S$6("MISSING_OR_INVALID",`${t}, ${r} should be an object with data`);return n}function Wn(e,t){let r=null;if(e&&Z$3(e)){const n=$e(e,t);n&&(r=n);const o=Bn(e,t);o&&(r=o)}else r=S$6("MISSING_OR_INVALID",`${t}, namespaces should be an object with data`);return r}function Jn(e){return b$4(e.protocol,!0)}function eo(e,t){let r=!1;return e?e&&L$4(e)&&e.length&&e.forEach((e=>{r=Jn(e)})):r=!0,r}function no(e){return"number"==typeof e}function to(e){return typeof e<"u"&&null!==typeof e}function ro(e){return!!(e&&"object"==typeof e&&e.code&&X$2(e.code,!1)&&e.message&&b$4(e.message,!1))}function oo(e){return!(I$5(e)||!b$4(e.method,!1))}function so(e){return!(I$5(e)||I$5(e.result)&&I$5(e.error)||!X$2(e.id,!1)||!b$4(e.jsonrpc,!1))}function io(e){return!(I$5(e)||!b$4(e.name,!1))}function co(e,t){return!(!F$3(t)||!Un(e).includes(t))}function ao(e,t,r){return!!b$4(r,!1)&&_n(e,t).includes(r)}function uo(e,t,r){return!!b$4(r,!1)&&kn(e,t).includes(r)}function zn(e,t,r){let n=null;const o=lo(e),i=fo(t),a=Object.keys(o),s=Object.keys(i),c=Gn(Object.keys(e)),u=Gn(Object.keys(t)),l=c.filter((e=>!u.includes(e)));return l.length&&(n=S$6("NON_CONFORMING_NAMESPACES",`${r} namespaces keys don't satisfy requiredNamespaces.\n Required: ${l.toString()}\n Received: ${Object.keys(t).toString()}`)),$$4(a,s)||(n=S$6("NON_CONFORMING_NAMESPACES",`${r} namespaces chains don't satisfy required namespaces.\n Required: ${a.toString()}\n Approved: ${s.toString()}`)),Object.keys(t).forEach((e=>{if(!e.includes(":")||n)return;const o=C$4(t[e].accounts);o.includes(e)||(n=S$6("NON_CONFORMING_NAMESPACES",`${r} namespaces accounts don't satisfy namespace accounts for ${e}\n Required: ${e}\n Approved: ${o.toString()}`))})),a.forEach((e=>{n||($$4(o[e].methods,i[e].methods)?$$4(o[e].events,i[e].events)||(n=S$6("NON_CONFORMING_NAMESPACES",`${r} namespaces events don't satisfy namespace events for ${e}`)):n=S$6("NON_CONFORMING_NAMESPACES",`${r} namespaces methods don't satisfy namespace methods for ${e}`))})),n}function lo(e){const t={};return Object.keys(e).forEach((r=>{var n;r.includes(":")?t[r]=e[r]:null==(n=e[r].chains)||n.forEach((n=>{t[n]={methods:e[r].methods,events:e[r].events}}))})),t}function Gn(e){return[...new Set(e.map((e=>e.includes(":")?e.split(":")[0]:e)))]}function fo(e){const t={};return Object.keys(e).forEach((r=>{if(r.includes(":"))t[r]=e[r];else{const n=C$4(e[r].accounts);null==n||n.forEach((n=>{t[n]={accounts:e[r].accounts.filter((e=>e.includes(`${n}:`))),methods:e[r].methods,events:e[r].events}}))}})),t}function po(e,t){return X$2(e,!1)&&e<=t.max&&e>=t.min}function mo(){const e=P$4();return new Promise((t=>{switch(e){case y$5.browser:t(Yn());break;case y$5.reactNative:t(Qn());break;case y$5.node:t(Zn());break;default:t(!0)}}))}function Yn(){return V$3()&&(null==navigator?void 0:navigator.onLine)}async function Qn(){if(_$5()&&typeof global$1<"u"&&null!=global$1&&global$1.NetInfo){const e=await(null==global$1?void 0:global$1.NetInfo.fetch());return null==e?void 0:e.isConnected}return!0}function Zn(){return!0}function ho(e){switch(P$4()){case y$5.browser:Xn(e);break;case y$5.reactNative:et$1(e)}}function Xn(e){!_$5()&&V$3()&&(window.addEventListener("online",(()=>e(!0))),window.addEventListener("offline",(()=>e(!1))))}function et$1(e){_$5()&&typeof global$1<"u"&&null!=global$1&&global$1.NetInfo&&(null==global$1||global$1.NetInfo.addEventListener((t=>e(null==t?void 0:t.isConnected))))}const Re={};class yo{static get(e){return Re[e]}static set(e,t){Re[e]=t}static delete(e){delete Re[e]}}const w$5=()=>typeof WebSocket<"u"?WebSocket:typeof global$1<"u"&&typeof global$1.WebSocket<"u"?global$1.WebSocket:typeof window<"u"&&typeof window.WebSocket<"u"?window.WebSocket:typeof self<"u"&&typeof self.WebSocket<"u"?self.WebSocket:require("ws"),b$3=()=>typeof WebSocket<"u"||typeof global$1<"u"&&typeof global$1.WebSocket<"u"||typeof window<"u"&&typeof window.WebSocket<"u"||typeof self<"u"&&typeof self.WebSocket<"u",a$4=e=>e.split("?")[0],h$5=10,S$5=w$5();let f$5=class{constructor(e){if(this.url=e,this.events=new eventsExports.EventEmitter,this.registering=!1,!isWsUrl(e))throw new Error(`Provided URL is not compatible with WebSocket connection: ${e}`);this.url=e}get connected(){return typeof this.socket<"u"}get connecting(){return this.registering}on(e,t){this.events.on(e,t)}once(e,t){this.events.once(e,t)}off(e,t){this.events.off(e,t)}removeListener(e,t){this.events.removeListener(e,t)}async open(e=this.url){await this.register(e)}async close(){return new Promise(((e,t)=>{typeof this.socket>"u"?t(new Error("Connection already closed")):(this.socket.onclose=t=>{this.onClose(t),e()},this.socket.close())}))}async send(e){typeof this.socket>"u"&&(this.socket=await this.register());try{this.socket.send(safeJsonStringify$2(e))}catch(t){this.onError(e.id,t)}}register(e=this.url){if(!isWsUrl(e))throw new Error(`Provided URL is not compatible with WebSocket connection: ${e}`);if(this.registering){const e=this.events.getMaxListeners();return(this.events.listenerCount("register_error")>=e||this.events.listenerCount("open")>=e)&&this.events.setMaxListeners(e+1),new Promise(((e,t)=>{this.events.once("register_error",(e=>{this.resetMaxListeners(),t(e)})),this.events.once("open",(()=>{if(this.resetMaxListeners(),typeof this.socket>"u")return t(new Error("WebSocket connection is missing or invalid"));e(this.socket)}))}))}return this.url=e,this.registering=!0,new Promise(((t,r)=>{const n=new URLSearchParams(e).get("origin"),o=cjs$4.isReactNative()?{headers:{origin:n}}:{rejectUnauthorized:!isLocalhostUrl(e)},i=new S$5(e,[],o);b$3()?i.onerror=e=>{const t=e;r(this.emitError(t.error))}:i.on("error",(e=>{r(this.emitError(e))})),i.onopen=()=>{this.onOpen(i),t(i)}}))}onOpen(e){e.onmessage=e=>this.onPayload(e),e.onclose=e=>this.onClose(e),this.socket=e,this.registering=!1,this.events.emit("open")}onClose(e){this.socket=void 0,this.registering=!1,this.events.emit("close",e)}onPayload(e){if(typeof e.data>"u")return;const t="string"==typeof e.data?safeJsonParse$2(e.data):e.data;this.events.emit("payload",t)}onError(e,t){const r=this.parseError(t),n=formatJsonRpcError(e,r.message||r.toString());this.events.emit("payload",n)}parseError(e,t=this.url){return parseConnectionError(e,a$4(t),"WS")}resetMaxListeners(){this.events.getMaxListeners()>h$5&&this.events.setMaxListeners(h$5)}emitError(e){const t=this.parseError(new Error((null==e?void 0:e.message)||`WebSocket connection failed for host: ${a$4(this.url)}`));return this.events.emit("register_error",t),t}};const ye$1="wc",De=2,ie="core",x$4=`${ye$1}@2:${ie}:`,Ye={name:ie,logger:"error"},Je={database:":memory:"},Xe="crypto",me$1="client_ed25519_seed",We=cjs$7.ONE_DAY,Ze="keychain",Qe="0.3",et="messages",tt="0.3",it$1=cjs$7.SIX_HOURS,st$1="publisher",rt$1="irn",nt$1="error",be$1="wss://relay.walletconnect.org",ot$1="relayer",v$4={message:"relayer_message",message_ack:"relayer_message_ack",connect:"relayer_connect",disconnect:"relayer_disconnect",error:"relayer_error",connection_stalled:"relayer_connection_stalled",transport_closed:"relayer_transport_closed",publish:"relayer_publish"},at$1="_subscription",I$4={payload:"payload",connect:"connect",disconnect:"disconnect",error:"error"},ht$1=.1,se="2.17.1",M$3={link_mode:"link_mode",relay:"relay"},ct$1="0.3",lt$1="WALLETCONNECT_CLIENT_ID",fe="WALLETCONNECT_LINK_MODE_APPS",O$2={created:"subscription_created",deleted:"subscription_deleted",expired:"subscription_expired",disabled:"subscription_disabled",sync:"subscription_sync",resubscribed:"subscription_resubscribed"},ut$1="subscription",dt$1="0.3",pt$2=1e3*cjs$7.FIVE_SECONDS,gt$1="pairing",yt$1="0.3",B$2={wc_pairingDelete:{req:{ttl:cjs$7.ONE_DAY,prompt:!1,tag:1e3},res:{ttl:cjs$7.ONE_DAY,prompt:!1,tag:1001}},wc_pairingPing:{req:{ttl:cjs$7.THIRTY_SECONDS,prompt:!1,tag:1002},res:{ttl:cjs$7.THIRTY_SECONDS,prompt:!1,tag:1003}},unregistered_method:{req:{ttl:cjs$7.ONE_DAY,prompt:!1,tag:0},res:{ttl:cjs$7.ONE_DAY,prompt:!1,tag:0}}},V$2={create:"pairing_create",expire:"pairing_expire",delete:"pairing_delete",ping:"pairing_ping"},P$3={created:"history_created",updated:"history_updated",deleted:"history_deleted",sync:"history_sync"},Dt="history",mt="0.3",bt="expirer",S$4={created:"expirer_created",deleted:"expirer_deleted",expired:"expirer_expired",sync:"expirer_sync"},ft="0.3",_t="verify-api",vs$1="https://verify.walletconnect.com",Et="https://verify.walletconnect.org",J$1=Et,vt=`${J$1}/v3`,wt=[vs$1,Et],It="echo",Tt="https://echo.walletconnect.com",z$5={pairing_started:"pairing_started",pairing_uri_validation_success:"pairing_uri_validation_success",pairing_uri_not_expired:"pairing_uri_not_expired",store_new_pairing:"store_new_pairing",subscribing_pairing_topic:"subscribing_pairing_topic",subscribe_pairing_topic_success:"subscribe_pairing_topic_success",existing_pairing:"existing_pairing",pairing_not_expired:"pairing_not_expired",emit_inactive_pairing:"emit_inactive_pairing",emit_session_proposal:"emit_session_proposal",subscribing_to_pairing_topic:"subscribing_to_pairing_topic"},$$3={no_wss_connection:"no_wss_connection",no_internet_connection:"no_internet_connection",malformed_pairing_uri:"malformed_pairing_uri",active_pairing_already_exists:"active_pairing_already_exists",subscribe_pairing_topic_failure:"subscribe_pairing_topic_failure",pairing_expired:"pairing_expired",proposal_expired:"proposal_expired",proposal_listener_not_found:"proposal_listener_not_found"},Is$1={session_approve_started:"session_approve_started",proposal_not_expired:"proposal_not_expired",session_namespaces_validation_success:"session_namespaces_validation_success",create_session_topic:"create_session_topic",subscribing_session_topic:"subscribing_session_topic",subscribe_session_topic_success:"subscribe_session_topic_success",publishing_session_approve:"publishing_session_approve",session_approve_publish_success:"session_approve_publish_success",store_session:"store_session",publishing_session_settle:"publishing_session_settle",session_settle_publish_success:"session_settle_publish_success"},Ts$1={no_internet_connection:"no_internet_connection",no_wss_connection:"no_wss_connection",proposal_expired:"proposal_expired",subscribe_session_topic_failure:"subscribe_session_topic_failure",session_approve_publish_failure:"session_approve_publish_failure",session_settle_publish_failure:"session_settle_publish_failure",session_approve_namespace_validation_failure:"session_approve_namespace_validation_failure",proposal_not_found:"proposal_not_found"},Cs={authenticated_session_approve_started:"authenticated_session_approve_started",authenticated_session_not_expired:"authenticated_session_not_expired",chains_caip2_compliant:"chains_caip2_compliant",chains_evm_compliant:"chains_evm_compliant",create_authenticated_session_topic:"create_authenticated_session_topic",cacaos_verified:"cacaos_verified",store_authenticated_session:"store_authenticated_session",subscribing_authenticated_session_topic:"subscribing_authenticated_session_topic",subscribe_authenticated_session_topic_success:"subscribe_authenticated_session_topic_success",publishing_authenticated_session_approve:"publishing_authenticated_session_approve",authenticated_session_approve_publish_success:"authenticated_session_approve_publish_success"},Ps={no_internet_connection:"no_internet_connection",no_wss_connection:"no_wss_connection",missing_session_authenticate_request:"missing_session_authenticate_request",session_authenticate_request_expired:"session_authenticate_request_expired",chains_caip2_compliant_failure:"chains_caip2_compliant_failure",chains_evm_compliant_failure:"chains_evm_compliant_failure",invalid_cacao:"invalid_cacao",subscribe_authenticated_session_topic_failure:"subscribe_authenticated_session_topic_failure",authenticated_session_approve_publish_failure:"authenticated_session_approve_publish_failure",authenticated_session_pending_request_not_found:"authenticated_session_pending_request_not_found"},Ct=.1,Pt="event-client",St=86400,Rt="https://pulse.walletconnect.org/batch";function Ss$1(e,t){if(e.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n>>0,a=new Uint8Array(i);e[t];){var l=r[e.charCodeAt(t)];if(255===l)return;for(var d=0,f=i-1;(0!==l||d>>0,a[f]=l%256>>>0,l=l/256>>>0;if(0!==l)throw new Error("Non-zero carry");o=d,t++}if(" "!==e[t]){for(var h=i-o;h!==i&&0===a[h];)h++;for(var p=new Uint8Array(n+(i-h)),y=n;h!==i;)p[y++]=a[h++];return p}}}return{encode:function(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(0===t.length)return"";for(var r=0,n=0,o=0,i=t.length;o!==i&&0===t[o];)o++,r++;for(var a=(i-o)*l+1>>>0,u=new Uint8Array(a);o!==i;){for(var d=t[o],f=0,h=a-1;(0!==d||f>>0,u[h]=d%s>>>0,d=d/s>>>0;if(0!==d)throw new Error("Non-zero carry");n=f,o++}for(var p=a-n;p!==a&&0===u[p];)p++;for(var y=c.repeat(r);p{if(e instanceof Uint8Array&&"Uint8Array"===e.constructor.name)return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw new Error("Unknown type, must be binary type")},Os=e=>(new TextEncoder).encode(e),As=e=>(new TextDecoder).decode(e);class Ns{constructor(e,t,r){this.name=e,this.prefix=t,this.baseEncode=r}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}}class zs{constructor(e,t,r){if(this.name=e,this.prefix=t,void 0===t.codePointAt(0))throw new Error("Invalid prefix character");this.prefixCodePoint=t.codePointAt(0),this.baseDecode=r}decode(e){if("string"==typeof e){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}throw Error("Can only multibase decode strings")}or(e){return Ot(this,e)}}class Ls{constructor(e){this.decoders=e}or(e){return Ot(this,e)}decode(e){const t=e[0],r=this.decoders[t];if(r)return r.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}}const Ot=(e,t)=>new Ls({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}});class $s{constructor(e,t,r,n){this.name=e,this.prefix=t,this.baseEncode=r,this.baseDecode=n,this.encoder=new Ns(e,t,r),this.decoder=new zs(e,t,n)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}}const re=({name:e,prefix:t,encode:r,decode:n})=>new $s(e,t,r,n),X$1=({prefix:e,name:t,alphabet:r})=>{const{encode:n,decode:o}=xs(r,t);return re({prefix:e,name:t,encode:n,decode:e=>xt(o(e))})},ks=(e,t,r,n)=>{const o={};for(let l=0;l=8&&(s-=8,a[u++]=255&c>>s)}if(s>=r||255&c<<8-s)throw new SyntaxError("Unexpected end of data");return a},Ms=(e,t,r)=>{const n="="===t[t.length-1],o=(1<r;)a-=r,i+=t[o&s>>a];if(a&&(i+=t[o&s<re({prefix:t,name:e,encode:e=>Ms(e,n,r),decode:t=>ks(t,n,r,e)}),Us=re({prefix:"\0",name:"identity",encode:e=>As(e),decode:e=>Os(e)});var Fs=Object.freeze({__proto__:null,identity:Us});const Ks=f$4({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Bs=Object.freeze({__proto__:null,base2:Ks});const Vs=f$4({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var js=Object.freeze({__proto__:null,base8:Vs});const qs$1=X$1({prefix:"9",name:"base10",alphabet:"0123456789"});var Gs=Object.freeze({__proto__:null,base10:qs$1});const Hs=f$4({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),Ys=f$4({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Js=Object.freeze({__proto__:null,base16:Hs,base16upper:Ys});const Xs=f$4({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Ws=f$4({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Zs=f$4({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Qs=f$4({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),er=f$4({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),tr=f$4({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),ir=f$4({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),sr=f$4({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),rr=f$4({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var nr=Object.freeze({__proto__:null,base32:Xs,base32upper:Ws,base32pad:Zs,base32padupper:Qs,base32hex:er,base32hexupper:tr,base32hexpad:ir,base32hexpadupper:sr,base32z:rr});const or=X$1({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),ar=X$1({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var hr=Object.freeze({__proto__:null,base36:or,base36upper:ar});const cr=X$1({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),lr=X$1({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var ur=Object.freeze({__proto__:null,base58btc:cr,base58flickr:lr});const dr=f$4({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),pr=f$4({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),gr=f$4({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),yr=f$4({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var Dr=Object.freeze({__proto__:null,base64:dr,base64pad:pr,base64url:gr,base64urlpad:yr});const At=Array.from("🚀🪐☄🛰🌌🌑🌒🌓🌔🌕🌖🌗🌘🌍🌏🌎🐉☀💻🖥💾💿😂❤😍🤣😊🙏💕😭😘👍😅👏😁🔥🥰💔💖💙😢🤔😆🙄💪😉☺👌🤗💜😔😎😇🌹🤦🎉💞✌✨🤷😱😌🌸🙌😋💗💚😏💛🙂💓🤩😄😀🖤😃💯🙈👇🎶😒🤭❣😜💋👀😪😑💥🙋😞😩😡🤪👊🥳😥🤤👉💃😳✋😚😝😴🌟😬🙃🍀🌷😻😓⭐✅🥺🌈😈🤘💦✔😣🏃💐☹🎊💘😠☝😕🌺🎂🌻😐🖕💝🙊😹🗣💫💀👑🎵🤞😛🔴😤🌼😫⚽🤙☕🏆🤫👈😮🙆🍻🍃🐶💁😲🌿🧡🎁⚡🌞🎈❌✊👋😰🤨😶🤝🚶💰🍓💢🤟🙁🚨💨🤬✈🎀🍺🤓😙💟🌱😖👶🥴▶➡❓💎💸⬇😨🌚🦋😷🕺⚠🙅😟😵👎🤲🤠🤧📌🔵💅🧐🐾🍒😗🤑🌊🤯🐷☎💧😯💆👆🎤🙇🍑❄🌴💣🐸💌📍🥀🤢👅💡💩👐📸👻🤐🤮🎼🥵🚩🍎🍊👼💍📣🥂"),mr=At.reduce(((e,t,r)=>(e[r]=t,e)),[]),br=At.reduce(((e,t,r)=>(e[t.codePointAt(0)]=r,e)),[]);function fr$1(e){return e.reduce(((e,t)=>e+=mr[t]),"")}function _r(e){const t=[];for(const r of e){const e=br[r.codePointAt(0)];if(void 0===e)throw new Error(`Non-base256emoji character: ${r}`);t.push(e)}return new Uint8Array(t)}const Er=re({prefix:"🚀",name:"base256emoji",encode:fr$1,decode:_r});var vr=Object.freeze({__proto__:null,base256emoji:Er}),wr=zt,Nt=128,Ir=127,Tr=~Ir,Cr=Math.pow(2,31);function zt(e,t,r){t=t||[];for(var n=r=r||0;e>=Cr;)t[r++]=255&e|Nt,e/=128;for(;e&Tr;)t[r++]=255&e|Nt,e>>>=7;return t[r]=0|e,zt.bytes=r-n+1,t}var Pr=_e$1,Sr=128,Lt=127;function _e$1(e,t){var r,n=0,o=0,i=t=t||0,a=e.length;do{if(i>=a)throw _e$1.bytes=0,new RangeError("Could not decode varint");r=e[i++],n+=o<28?(r&Lt)<=Sr);return _e$1.bytes=i-t,n}var Rr=Math.pow(2,7),xr=Math.pow(2,14),Or=Math.pow(2,21),Ar=Math.pow(2,28),Nr=Math.pow(2,35),zr=Math.pow(2,42),Lr=Math.pow(2,49),$r=Math.pow(2,56),kr=Math.pow(2,63),Mr=function(e){return e($t.encode(e,t,r),t),Mt=e=>$t.encodingLength(e),Ee=(e,t)=>{const r=t.byteLength,n=Mt(e),o=n+Mt(r),i=new Uint8Array(o+r);return kt(e,i,0),kt(r,i,n),i.set(t,o),new Fr(e,r,t,i)};class Fr{constructor(e,t,r,n){this.code=e,this.size=t,this.digest=r,this.bytes=n}}const Ut=({name:e,code:t,encode:r})=>new Kr(e,t,r);class Kr{constructor(e,t,r){this.name=e,this.code=t,this.encode=r}digest(e){if(e instanceof Uint8Array){const t=this.encode(e);return t instanceof Uint8Array?Ee(this.code,t):t.then((e=>Ee(this.code,e)))}throw Error("Unknown type, must be binary type")}}const Ft=e=>async t=>new Uint8Array(await crypto.subtle.digest(e,t)),Br=Ut({name:"sha2-256",code:18,encode:Ft("SHA-256")}),Vr=Ut({name:"sha2-512",code:19,encode:Ft("SHA-512")});var jr=Object.freeze({__proto__:null,sha256:Br,sha512:Vr});const Kt=0,qr="identity",Bt=xt,Gr=e=>Ee(Kt,Bt(e)),Hr={code:Kt,name:qr,encode:Bt,digest:Gr};var Yr=Object.freeze({__proto__:null,identity:Hr});new TextEncoder,new TextDecoder;const Vt={...Fs,...Bs,...js,...Gs,...Js,...nr,...hr,...ur,...Dr,...vr};function Jr(e=0){return null!=globalThis.Buffer&&null!=globalThis.Buffer.allocUnsafe?globalThis.Buffer.allocUnsafe(e):new Uint8Array(e)}function jt(e,t,r,n){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:r},decoder:{decode:n}}}const qt=jt("utf8","u",(e=>"u"+new TextDecoder("utf8").decode(e)),(e=>(new TextEncoder).encode(e.substring(1)))),ve=jt("ascii","a",(e=>{let t="a";for(let r=0;r{const t=Jr((e=e.substring(1)).length);for(let r=0;r{if(!this.initialized){const e=await this.getKeyChain();typeof e<"u"&&(this.keychain=e),this.initialized=!0}},this.has=e=>(this.isInitialized(),this.keychain.has(e)),this.set=async(e,t)=>{this.isInitialized(),this.keychain.set(e,t),await this.persist()},this.get=e=>{this.isInitialized();const t=this.keychain.get(e);if(typeof t>"u"){const{message:t}=S$6("NO_MATCHING_KEY",`${this.name}: ${e}`);throw new Error(t)}return t},this.del=async e=>{this.isInitialized(),this.keychain.delete(e),await this.persist()},this.core=e,this.logger=E$5(t,this.name)}get context(){return y$7(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//"+this.name}async setKeyChain(e){await this.core.storage.setItem(this.storageKey,Tt$1(e))}async getKeyChain(){const e=await this.core.storage.getItem(this.storageKey);return typeof e<"u"?Pt$1(e):void 0}async persist(){await this.setKeyChain(this.keychain)}isInitialized(){if(!this.initialized){const{message:e}=S$6("NOT_INITIALIZED",this.name);throw new Error(e)}}}class Ht{constructor(e,t,r){this.core=e,this.logger=t,this.name=Xe,this.randomSessionIdentifier=pr$1(),this.initialized=!1,this.init=async()=>{this.initialized||(await this.keychain.init(),this.initialized=!0)},this.hasKeys=e=>(this.isInitialized(),this.keychain.has(e)),this.getClientId=async()=>{this.isInitialized();return encodeIss(generateKeyPair(await this.getClientSeed()).publicKey)},this.generateKeyPair=()=>{this.isInitialized();const e=fr$2();return this.setPrivateKey(e.publicKey,e.privateKey)},this.signJWT=async e=>{this.isInitialized();const t=generateKeyPair(await this.getClientSeed()),r=this.randomSessionIdentifier,n=We;return await signJWT(r,e,n,t)},this.generateSharedKey=(e,t,r)=>{this.isInitialized();const n=mr$1(this.getPrivateKey(e),t);return this.setSymKey(n,r)},this.setSymKey=async(e,t)=>{this.isInitialized();const r=t||hr$1(e);return await this.keychain.set(r,e),r},this.deleteKeyPair=async e=>{this.isInitialized(),await this.keychain.del(e)},this.deleteSymKey=async e=>{this.isInitialized(),await this.keychain.del(e)},this.encode=async(e,t,r)=>{this.isInitialized();const n=On(r),o=safeJsonStringify$2(t);if(Nr$1(n))return vr$1(o,null==r?void 0:r.encoding);if(Or$1(n)){const t=n.senderPublicKey,r=n.receiverPublicKey;e=await this.generateSharedKey(t,r)}const i=this.getSymKey(e),{type:a,senderPublicKey:s}=n;return gr$1({type:a,symKey:i,message:o,senderPublicKey:s,encoding:null==r?void 0:r.encoding})},this.decode=async(e,t,r)=>{this.isInitialized();const n=wr$1(t,r);if(Nr$1(n)){return safeJsonParse$2(Er$1(t,null==r?void 0:r.encoding))}if(Or$1(n)){const t=n.receiverPublicKey,r=n.senderPublicKey;e=await this.generateSharedKey(t,r)}try{const n=this.getSymKey(e);return safeJsonParse$2(br$1({symKey:n,encoded:t,encoding:null==r?void 0:r.encoding}))}catch(o){this.logger.error(`Failed to decode message from topic: '${e}', clientId: '${await this.getClientId()}'`),this.logger.error(o)}},this.getPayloadType=(e,t=ge)=>A$4(Q$1({encoded:e,encoding:t}).type),this.getPayloadSenderPublicKey=(e,t=ge)=>{const r=Q$1({encoded:e,encoding:t});return r.senderPublicKey?toString$1(r.senderPublicKey,g$4):void 0},this.core=e,this.logger=E$5(t,this.name),this.keychain=r||new Gt(this.core,this.logger)}get context(){return y$7(this.logger)}async setPrivateKey(e,t){return await this.keychain.set(e,t),e}getPrivateKey(e){return this.keychain.get(e)}async getClientSeed(){let e="";try{e=this.keychain.get(me$1)}catch{e=pr$1(),await this.keychain.set(me$1,e)}return Wr(e,"base16")}getSymKey(e){return this.keychain.get(e)}isInitialized(){if(!this.initialized){const{message:e}=S$6("NOT_INITIALIZED",this.name);throw new Error(e)}}}class Yt extends a$5{constructor(e,t){super(e,t),this.logger=e,this.core=t,this.messages=new Map,this.name=et,this.version=tt,this.initialized=!1,this.storagePrefix=x$4,this.init=async()=>{if(!this.initialized){this.logger.trace("Initialized");try{const e=await this.getRelayerMessages();typeof e<"u"&&(this.messages=e),this.logger.debug(`Successfully Restored records for ${this.name}`),this.logger.trace({type:"method",method:"restore",size:this.messages.size})}catch(e){this.logger.debug(`Failed to Restore records for ${this.name}`),this.logger.error(e)}finally{this.initialized=!0}}},this.set=async(e,t)=>{this.isInitialized();const r=yr$1(t);let n=this.messages.get(e);return typeof n>"u"&&(n={}),typeof n[r]<"u"||(n[r]=t,this.messages.set(e,n),await this.persist()),r},this.get=e=>{this.isInitialized();let t=this.messages.get(e);return typeof t>"u"&&(t={}),t},this.has=(e,t)=>{this.isInitialized();return typeof this.get(e)[yr$1(t)]<"u"},this.del=async e=>{this.isInitialized(),this.messages.delete(e),await this.persist()},this.logger=E$5(e,this.name),this.core=t}get context(){return y$7(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//"+this.name}async setRelayerMessages(e){await this.core.storage.setItem(this.storageKey,Tt$1(e))}async getRelayerMessages(){const e=await this.core.storage.getItem(this.storageKey);return typeof e<"u"?Pt$1(e):void 0}async persist(){await this.setRelayerMessages(this.messages)}isInitialized(){if(!this.initialized){const{message:e}=S$6("NOT_INITIALIZED",this.name);throw new Error(e)}}}class Zr extends g$5{constructor(e,t){super(e,t),this.relayer=e,this.logger=t,this.events=new eventsExports.EventEmitter,this.name=st$1,this.queue=new Map,this.publishTimeout=cjs$7.toMiliseconds(cjs$7.ONE_MINUTE),this.failedPublishTimeout=cjs$7.toMiliseconds(cjs$7.ONE_SECOND),this.needsTransportRestart=!1,this.publish=async(e,t,r)=>{var n;this.logger.debug("Publishing Payload"),this.logger.trace({type:"method",method:"publish",params:{topic:e,message:t,opts:r}});const o=(null==r?void 0:r.ttl)||it$1,i=Ir$1(r),a=(null==r?void 0:r.prompt)||!1,s=(null==r?void 0:r.tag)||0,c=(null==r?void 0:r.id)||getBigIntRpcId().toString(),u={topic:e,message:t,opts:{ttl:o,relay:i,prompt:a,tag:s,id:c,attestation:null==r?void 0:r.attestation}},l=`Failed to publish payload, please try again. id:${c} tag:${s}`,d=Date.now();let f,h=1;try{for(;void 0===f;){if(Date.now()-d>this.publishTimeout)throw new Error(l);this.logger.trace({id:c,attempts:h},`publisher.publish - attempt ${h}`),f=await await kt$1(this.rpcPublish(e,t,o,i,a,s,c,null==r?void 0:r.attestation).catch((e=>this.logger.warn(e))),this.publishTimeout,l),h++,f||await new Promise((e=>setTimeout(e,this.failedPublishTimeout)))}this.relayer.events.emit(v$4.publish,u),this.logger.debug("Successfully Published Payload"),this.logger.trace({type:"method",method:"publish",params:{id:c,topic:e,message:t,opts:r}})}catch(p){if(this.logger.debug("Failed to Publish Payload"),this.logger.error(p),null!=(n=null==r?void 0:r.internal)&&n.throwOnFailedPublish)throw p;this.queue.set(c,u)}},this.on=(e,t)=>{this.events.on(e,t)},this.once=(e,t)=>{this.events.once(e,t)},this.off=(e,t)=>{this.events.off(e,t)},this.removeListener=(e,t)=>{this.events.removeListener(e,t)},this.relayer=e,this.logger=E$5(t,this.name),this.registerEventListeners()}get context(){return y$7(this.logger)}rpcPublish(e,t,r,n,o,i,a,s){var c,u,l,d;const f={method:jr$1(n.protocol).publish,params:{topic:e,message:t,ttl:r,prompt:o,tag:i,attestation:s},id:a};return I$5(null==(c=f.params)?void 0:c.prompt)&&(null==(u=f.params)||delete u.prompt),I$5(null==(l=f.params)?void 0:l.tag)&&(null==(d=f.params)||delete d.tag),this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"message",direction:"outgoing",request:f}),this.relayer.request(f)}removeRequestFromQueue(e){this.queue.delete(e)}checkQueue(){this.queue.forEach((async e=>{const{topic:t,message:r,opts:n}=e;await this.publish(t,r,n)}))}registerEventListeners(){this.relayer.core.heartbeat.on(r$6.pulse,(()=>{if(this.needsTransportRestart)return this.needsTransportRestart=!1,void this.relayer.events.emit(v$4.connection_stalled);this.checkQueue()})),this.relayer.on(v$4.message_ack,(e=>{this.removeRequestFromQueue(e.id.toString())}))}}class Qr{constructor(){this.map=new Map,this.set=(e,t)=>{const r=this.get(e);this.exists(e,t)||this.map.set(e,[...r,t])},this.get=e=>this.map.get(e)||[],this.exists=(e,t)=>this.get(e).includes(t),this.delete=(e,t)=>{if(typeof t>"u")return void this.map.delete(e);if(!this.map.has(e))return;const r=this.get(e);if(!this.exists(e,t))return;const n=r.filter((e=>e!==t));n.length?this.map.set(e,n):this.map.delete(e)},this.clear=()=>{this.map.clear()}}get topics(){return Array.from(this.map.keys())}}var en$1=Object.defineProperty,tn=Object.defineProperties,sn=Object.getOwnPropertyDescriptors,Jt=Object.getOwnPropertySymbols,rn=Object.prototype.hasOwnProperty,nn=Object.prototype.propertyIsEnumerable,Xt=(e,t,r)=>t in e?en$1(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,W$1=(e,t)=>{for(var r in t||(t={}))rn.call(t,r)&&Xt(e,r,t[r]);if(Jt)for(var r of Jt(t))nn.call(t,r)&&Xt(e,r,t[r]);return e},we$1=(e,t)=>tn(e,sn(t));class Wt extends d$4{constructor(e,t){super(e,t),this.relayer=e,this.logger=t,this.subscriptions=new Map,this.topicMap=new Qr,this.events=new eventsExports.EventEmitter,this.name=ut$1,this.version=dt$1,this.pending=new Map,this.cached=[],this.initialized=!1,this.pendingSubscriptionWatchLabel="pending_sub_watch_label",this.pollingInterval=20,this.storagePrefix=x$4,this.subscribeTimeout=cjs$7.toMiliseconds(cjs$7.ONE_MINUTE),this.restartInProgress=!1,this.batchSubscribeTopicsLimit=500,this.pendingBatchMessages=[],this.init=async()=>{this.initialized||(this.logger.trace("Initialized"),this.registerEventListeners(),this.clientId=await this.relayer.core.crypto.getClientId(),await this.restore()),this.initialized=!0},this.subscribe=async(e,t)=>{this.isInitialized(),this.logger.debug("Subscribing Topic"),this.logger.trace({type:"method",method:"subscribe",params:{topic:e,opts:t}});try{const r=Ir$1(t),n={topic:e,relay:r,transportType:null==t?void 0:t.transportType};this.pending.set(e,n);const o=await this.rpcSubscribe(e,r,t);return"string"==typeof o&&(this.onSubscribe(o,n),this.logger.debug("Successfully Subscribed Topic"),this.logger.trace({type:"method",method:"subscribe",params:{topic:e,opts:t}})),o}catch(r){throw this.logger.debug("Failed to Subscribe Topic"),this.logger.error(r),r}},this.unsubscribe=async(e,t)=>{await this.restartToComplete(),this.isInitialized(),typeof(null==t?void 0:t.id)<"u"?await this.unsubscribeById(e,t.id,t):await this.unsubscribeByTopic(e,t)},this.isSubscribed=async e=>{if(this.topics.includes(e))return!0;const t=`${this.pendingSubscriptionWatchLabel}_${e}`;return await new Promise(((r,n)=>{const o=new cjs$7.Watch;o.start(t);const i=setInterval((()=>{!this.pending.has(e)&&this.topics.includes(e)&&(clearInterval(i),o.stop(t),r(!0)),o.elapsed(t)>=pt$2&&(clearInterval(i),o.stop(t),n(new Error("Subscription resolution timeout")))}),this.pollingInterval)})).catch((()=>!1))},this.on=(e,t)=>{this.events.on(e,t)},this.once=(e,t)=>{this.events.once(e,t)},this.off=(e,t)=>{this.events.off(e,t)},this.removeListener=(e,t)=>{this.events.removeListener(e,t)},this.start=async()=>{await this.onConnect()},this.stop=async()=>{await this.onDisconnect()},this.restart=async()=>{this.restartInProgress=!0,await this.restore(),await this.reset(),this.restartInProgress=!1},this.relayer=e,this.logger=E$5(t,this.name),this.clientId=""}get context(){return y$7(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.relayer.core.customStoragePrefix+"//"+this.name}get length(){return this.subscriptions.size}get ids(){return Array.from(this.subscriptions.keys())}get values(){return Array.from(this.subscriptions.values())}get topics(){return this.topicMap.topics}hasSubscription(e,t){let r=!1;try{r=this.getSubscription(e).topic===t}catch{}return r}onEnable(){this.cached=[],this.initialized=!0}onDisable(){this.cached=this.values,this.subscriptions.clear(),this.topicMap.clear()}async unsubscribeByTopic(e,t){const r=this.topicMap.get(e);await Promise.all(r.map((async r=>await this.unsubscribeById(e,r,t))))}async unsubscribeById(e,t,r){this.logger.debug("Unsubscribing Topic"),this.logger.trace({type:"method",method:"unsubscribe",params:{topic:e,id:t,opts:r}});try{const n=Ir$1(r);await this.rpcUnsubscribe(e,t,n);const o=U$2("USER_DISCONNECTED",`${this.name}, ${e}`);await this.onUnsubscribe(e,t,o),this.logger.debug("Successfully Unsubscribed Topic"),this.logger.trace({type:"method",method:"unsubscribe",params:{topic:e,id:t,opts:r}})}catch(n){throw this.logger.debug("Failed to Unsubscribe Topic"),this.logger.error(n),n}}async rpcSubscribe(e,t,r){var n;(null==r?void 0:r.transportType)===M$3.relay&&await this.restartToComplete();const o={method:jr$1(t.protocol).subscribe,params:{topic:e}};this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"payload",direction:"outgoing",request:o});const i=null==(n=null==r?void 0:r.internal)?void 0:n.throwOnFailedPublish;try{const t=yr$1(e+this.clientId);if((null==r?void 0:r.transportType)===M$3.link_mode)return setTimeout((()=>{(this.relayer.connected||this.relayer.connecting)&&this.relayer.request(o).catch((e=>this.logger.warn(e)))}),cjs$7.toMiliseconds(cjs$7.ONE_SECOND)),t;const n=await kt$1(this.relayer.request(o).catch((e=>this.logger.warn(e))),this.subscribeTimeout,`Subscribing to ${e} failed, please try again`);if(!n&&i)throw new Error(`Subscribing to ${e} failed, please try again`);return n?t:null}catch(a){if(this.logger.debug("Outgoing Relay Subscribe Payload stalled"),this.relayer.events.emit(v$4.connection_stalled),i)throw a}return null}async rpcBatchSubscribe(e){if(!e.length)return;const t={method:jr$1(e[0].relay.protocol).batchSubscribe,params:{topics:e.map((e=>e.topic))}};this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"payload",direction:"outgoing",request:t});try{return await await kt$1(this.relayer.request(t).catch((e=>this.logger.warn(e))),this.subscribeTimeout)}catch{this.relayer.events.emit(v$4.connection_stalled)}}async rpcBatchFetchMessages(e){if(!e.length)return;const t={method:jr$1(e[0].relay.protocol).batchFetchMessages,params:{topics:e.map((e=>e.topic))}};let r;this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"payload",direction:"outgoing",request:t});try{r=await await kt$1(this.relayer.request(t).catch((e=>this.logger.warn(e))),this.subscribeTimeout)}catch{this.relayer.events.emit(v$4.connection_stalled)}return r}rpcUnsubscribe(e,t,r){const n={method:jr$1(r.protocol).unsubscribe,params:{topic:e,id:t}};return this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"payload",direction:"outgoing",request:n}),this.relayer.request(n)}onSubscribe(e,t){this.setSubscription(e,we$1(W$1({},t),{id:e})),this.pending.delete(t.topic)}onBatchSubscribe(e){e.length&&e.forEach((e=>{this.setSubscription(e.id,W$1({},e)),this.pending.delete(e.topic)}))}async onUnsubscribe(e,t,r){this.events.removeAllListeners(t),this.hasSubscription(t,e)&&this.deleteSubscription(t,r),await this.relayer.messages.del(e)}async setRelayerSubscriptions(e){await this.relayer.core.storage.setItem(this.storageKey,e)}async getRelayerSubscriptions(){return await this.relayer.core.storage.getItem(this.storageKey)}setSubscription(e,t){this.logger.debug("Setting subscription"),this.logger.trace({type:"method",method:"setSubscription",id:e,subscription:t}),this.addSubscription(e,t)}addSubscription(e,t){this.subscriptions.set(e,W$1({},t)),this.topicMap.set(t.topic,e),this.events.emit(O$2.created,t)}getSubscription(e){this.logger.debug("Getting subscription"),this.logger.trace({type:"method",method:"getSubscription",id:e});const t=this.subscriptions.get(e);if(!t){const{message:t}=S$6("NO_MATCHING_KEY",`${this.name}: ${e}`);throw new Error(t)}return t}deleteSubscription(e,t){this.logger.debug("Deleting subscription"),this.logger.trace({type:"method",method:"deleteSubscription",id:e,reason:t});const r=this.getSubscription(e);this.subscriptions.delete(e),this.topicMap.delete(r.topic,e),this.events.emit(O$2.deleted,we$1(W$1({},r),{reason:t}))}async persist(){await this.setRelayerSubscriptions(this.values),this.events.emit(O$2.sync)}async reset(){if(this.cached.length){const e=Math.ceil(this.cached.length/this.batchSubscribeTopicsLimit);for(let t=0;t"u"||!e.length)return;if(this.subscriptions.size){const{message:e}=S$6("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(e),this.logger.error(`${this.name}: ${JSON.stringify(this.values)}`),new Error(e)}this.cached=e,this.logger.debug(`Successfully Restored subscriptions for ${this.name}`),this.logger.trace({type:"method",method:"restore",subscriptions:this.values})}catch(e2){this.logger.debug(`Failed to Restore subscriptions for ${this.name}`),this.logger.error(e2)}}async batchSubscribe(e){if(!e.length)return;const t=await this.rpcBatchSubscribe(e);L$4(t)&&this.onBatchSubscribe(t.map(((t,r)=>we$1(W$1({},e[r]),{id:t}))))}async batchFetchMessages(e){if(!e.length)return;this.logger.trace(`Fetching batch messages for ${e.length} subscriptions`);const t=await this.rpcBatchFetchMessages(e);t&&t.messages&&(this.pendingBatchMessages=this.pendingBatchMessages.concat(t.messages))}async onConnect(){await this.restart(),this.onEnable()}onDisconnect(){this.onDisable()}async checkPending(){if(!this.initialized||!this.relayer.connected)return;const e=[];this.pending.forEach((t=>{e.push(t)})),await this.batchSubscribe(e),this.pendingBatchMessages.length&&(await this.relayer.handleBatchMessageEvents(this.pendingBatchMessages),this.pendingBatchMessages=[])}registerEventListeners(){this.relayer.core.heartbeat.on(r$6.pulse,(async()=>{await this.checkPending()})),this.events.on(O$2.created,(async e=>{const t=O$2.created;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,data:e}),await this.persist()})),this.events.on(O$2.deleted,(async e=>{const t=O$2.deleted;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,data:e}),await this.persist()}))}isInitialized(){if(!this.initialized){const{message:e}=S$6("NOT_INITIALIZED",this.name);throw new Error(e)}}async restartToComplete(){!this.relayer.connected&&!this.relayer.connecting&&await this.relayer.transportOpen(),this.restartInProgress&&await new Promise((e=>{const t=setInterval((()=>{this.restartInProgress||(clearInterval(t),e())}),this.pollingInterval)}))}}var on=Object.defineProperty,Zt=Object.getOwnPropertySymbols,an=Object.prototype.hasOwnProperty,hn=Object.prototype.propertyIsEnumerable,Qt=(e,t,r)=>t in e?on(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,ei=(e,t)=>{for(var r in t||(t={}))an.call(t,r)&&Qt(e,r,t[r]);if(Zt)for(var r of Zt(t))hn.call(t,r)&&Qt(e,r,t[r]);return e};class ti extends u$4{constructor(e){super(e),this.protocol="wc",this.version=2,this.events=new eventsExports.EventEmitter,this.name=ot$1,this.transportExplicitlyClosed=!1,this.initialized=!1,this.connectionAttemptInProgress=!1,this.connectionStatusPollingInterval=20,this.staleConnectionErrors=["socket hang up","stalled","interrupted"],this.hasExperiencedNetworkDisruption=!1,this.requestsInFlight=new Map,this.heartBeatTimeout=cjs$7.toMiliseconds(cjs$7.THIRTY_SECONDS+cjs$7.ONE_SECOND),this.request=async e=>{var t,r;this.logger.debug("Publishing Request Payload");const n=e.id||getBigIntRpcId().toString();await this.toEstablishConnection();try{const o=this.provider.request(e);this.requestsInFlight.set(n,{promise:o,request:e}),this.logger.trace({id:n,method:e.method,topic:null==(t=e.params)?void 0:t.topic},"relayer.request - attempt to publish...");const i=await new Promise((async(e,t)=>{const r=()=>{t(new Error(`relayer.request - publish interrupted, id: ${n}`))};this.provider.on(I$4.disconnect,r);const i=await o;this.provider.off(I$4.disconnect,r),e(i)}));return this.logger.trace({id:n,method:e.method,topic:null==(r=e.params)?void 0:r.topic},"relayer.request - published"),i}catch(o){throw this.logger.debug(`Failed to Publish Request: ${n}`),o}finally{this.requestsInFlight.delete(n)}},this.resetPingTimeout=()=>{if(ce())try{clearTimeout(this.pingTimeout),this.pingTimeout=setTimeout((()=>{var e,t,r;null==(r=null==(t=null==(e=this.provider)?void 0:e.connection)?void 0:t.socket)||r.terminate()}),this.heartBeatTimeout)}catch(e){this.logger.warn(e)}},this.onPayloadHandler=e=>{this.onProviderPayload(e),this.resetPingTimeout()},this.onConnectHandler=()=>{this.logger.trace("relayer connected"),this.startPingTimeout(),this.events.emit(v$4.connect)},this.onDisconnectHandler=()=>{this.logger.trace("relayer disconnected"),this.onProviderDisconnect()},this.onProviderErrorHandler=e=>{this.logger.error(e),this.events.emit(v$4.error,e),this.logger.info("Fatal socket error received, closing transport"),this.transportClose()},this.registerProviderListeners=()=>{this.provider.on(I$4.payload,this.onPayloadHandler),this.provider.on(I$4.connect,this.onConnectHandler),this.provider.on(I$4.disconnect,this.onDisconnectHandler),this.provider.on(I$4.error,this.onProviderErrorHandler)},this.core=e.core,this.logger=typeof e.logger<"u"&&"string"!=typeof e.logger?E$5(e.logger,this.name):_i(k$5({level:e.logger||nt$1})),this.messages=new Yt(this.logger,e.core),this.subscriber=new Wt(this,this.logger),this.publisher=new Zr(this,this.logger),this.relayUrl=(null==e?void 0:e.relayUrl)||be$1,this.projectId=e.projectId,this.bundleId=Ot$1(),this.provider={}}async init(){if(this.logger.trace("Initialized"),this.registerEventListeners(),await Promise.all([this.messages.init(),this.subscriber.init()]),this.initialized=!0,this.subscriber.cached.length>0)try{await this.transportOpen()}catch(e2){this.logger.warn(e2)}}get context(){return y$7(this.logger)}get connected(){var e,t,r;return 1===(null==(r=null==(t=null==(e=this.provider)?void 0:e.connection)?void 0:t.socket)?void 0:r.readyState)}get connecting(){var e,t,r;return 0===(null==(r=null==(t=null==(e=this.provider)?void 0:e.connection)?void 0:t.socket)?void 0:r.readyState)}async publish(e,t,r){this.isInitialized(),await this.publisher.publish(e,t,r),await this.recordMessageEvent({topic:e,message:t,publishedAt:Date.now(),transportType:M$3.relay})}async subscribe(e,t){var r,n,o;this.isInitialized(),"relay"===(null==t?void 0:t.transportType)&&await this.toEstablishConnection();const i=typeof(null==(r=null==t?void 0:t.internal)?void 0:r.throwOnFailedPublish)>"u"||(null==(n=null==t?void 0:t.internal)?void 0:n.throwOnFailedPublish);let a,s=(null==(o=this.subscriber.topicMap.get(e))?void 0:o[0])||"";const c=t=>{t.topic===e&&(this.subscriber.off(O$2.created,c),a())};return await Promise.all([new Promise((e=>{a=e,this.subscriber.on(O$2.created,c)})),new Promise((async(r,n)=>{s=await this.subscriber.subscribe(e,ei({internal:{throwOnFailedPublish:i}},t)).catch((e=>{i&&n(e)}))||s,r()}))]),s}async unsubscribe(e,t){this.isInitialized(),await this.subscriber.unsubscribe(e,t)}on(e,t){this.events.on(e,t)}once(e,t){this.events.once(e,t)}off(e,t){this.events.off(e,t)}removeListener(e,t){this.events.removeListener(e,t)}async transportDisconnect(){if(!this.hasExperiencedNetworkDisruption&&this.connected&&this.requestsInFlight.size>0)try{await Promise.all(Array.from(this.requestsInFlight.values()).map((e=>e.promise)))}catch(e2){this.logger.warn(e2)}this.hasExperiencedNetworkDisruption||this.connected?await kt$1(this.provider.disconnect(),2e3,"provider.disconnect()").catch((()=>this.onProviderDisconnect())):this.onProviderDisconnect()}async transportClose(){this.transportExplicitlyClosed=!0,await this.transportDisconnect()}async transportOpen(e){await this.confirmOnlineStateOrThrow(),e&&e!==this.relayUrl&&(this.relayUrl=e,await this.transportDisconnect()),await this.createProvider(),this.connectionAttemptInProgress=!0,this.transportExplicitlyClosed=!1;try{await new Promise((async(e,t)=>{const r=()=>{this.provider.off(I$4.disconnect,r),t(new Error("Connection interrupted while trying to subscribe"))};this.provider.on(I$4.disconnect,r),await kt$1(this.provider.connect(),cjs$7.toMiliseconds(cjs$7.ONE_MINUTE),`Socket stalled when trying to connect to ${this.relayUrl}`).catch((e=>{t(e)})).finally((()=>{clearTimeout(this.reconnectTimeout),this.reconnectTimeout=void 0})),this.subscriber.start().catch((e=>{this.logger.error(e),this.onDisconnectHandler()})),this.hasExperiencedNetworkDisruption=!1,e()}))}catch(t){this.logger.error(t);const e=t;if(this.hasExperiencedNetworkDisruption=!0,!this.isConnectionStalled(e.message))throw t}finally{this.connectionAttemptInProgress=!1}}async restartTransport(e){this.connectionAttemptInProgress||(this.relayUrl=e||this.relayUrl,await this.confirmOnlineStateOrThrow(),await this.transportClose(),await this.transportOpen())}async confirmOnlineStateOrThrow(){if(!(await mo()))throw new Error("No internet connection detected. Please restart your network and try again.")}async handleBatchMessageEvents(e){if(0===(null==e?void 0:e.length))return void this.logger.trace("Batch message events is empty. Ignoring...");const t=e.sort(((e,t)=>e.publishedAt-t.publishedAt));this.logger.trace(`Batch of ${t.length} message events sorted`);for(const n of t)try{await this.onMessageEvent(n)}catch(r){this.logger.warn(r)}this.logger.trace(`Batch of ${t.length} message events processed`)}async onLinkMessageEvent(e,t){const{topic:r}=e;if(!t.sessionExists){const e={topic:r,expiry:Mt$1(cjs$7.FIVE_MINUTES),relay:{protocol:"irn"},active:!1};await this.core.pairing.pairings.set(r,e)}this.events.emit(v$4.message,e),await this.recordMessageEvent(e)}startPingTimeout(){var e,t,r,n,o;if(ce())try{null!=(t=null==(e=this.provider)?void 0:e.connection)&&t.socket&&(null==(o=null==(n=null==(r=this.provider)?void 0:r.connection)?void 0:n.socket)||o.once("ping",(()=>{this.resetPingTimeout()}))),this.resetPingTimeout()}catch(i){this.logger.warn(i)}}isConnectionStalled(e){return this.staleConnectionErrors.some((t=>e.includes(t)))}async createProvider(){this.provider.connection&&this.unregisterProviderListeners();const e=await this.core.crypto.signJWT(this.relayUrl);this.provider=new o$8(new f$5($t$1({sdkVersion:se,protocol:this.protocol,version:this.version,relayUrl:this.relayUrl,projectId:this.projectId,auth:e,useOnCloseEvent:!0,bundleId:this.bundleId}))),this.registerProviderListeners()}async recordMessageEvent(e){const{topic:t,message:r}=e;await this.messages.set(t,r)}async shouldIgnoreMessageEvent(e){const{topic:t,message:r}=e;if(!r||0===r.length)return this.logger.debug(`Ignoring invalid/empty message: ${r}`),!0;if(!(await this.subscriber.isSubscribed(t)))return this.logger.debug(`Ignoring message for non-subscribed topic ${t}`),!0;const n=this.messages.has(t,r);return n&&this.logger.debug(`Ignoring duplicate message: ${r}`),n}async onProviderPayload(e){if(this.logger.debug("Incoming Relay Payload"),this.logger.trace({type:"payload",direction:"incoming",payload:e}),isJsonRpcRequest(e)){if(!e.method.endsWith(at$1))return;const t=e.params,{topic:r,message:n,publishedAt:o,attestation:i}=t.data,a={topic:r,message:n,publishedAt:o,transportType:M$3.relay,attestation:i};this.logger.debug("Emitting Relayer Payload"),this.logger.trace(ei({type:"event",event:t.id},a)),this.events.emit(t.id,a),await this.acknowledgePayload(e),await this.onMessageEvent(a)}else isJsonRpcResponse(e)&&this.events.emit(v$4.message_ack,e)}async onMessageEvent(e){await this.shouldIgnoreMessageEvent(e)||(this.events.emit(v$4.message,e),await this.recordMessageEvent(e))}async acknowledgePayload(e){const t=formatJsonRpcResult(e.id,!0);await this.provider.connection.send(t)}unregisterProviderListeners(){this.provider.off(I$4.payload,this.onPayloadHandler),this.provider.off(I$4.connect,this.onConnectHandler),this.provider.off(I$4.disconnect,this.onDisconnectHandler),this.provider.off(I$4.error,this.onProviderErrorHandler),clearTimeout(this.pingTimeout)}async registerEventListeners(){let e=await mo();ho((async t=>{e!==t&&(e=t,t?await this.restartTransport().catch((e=>this.logger.error(e))):(this.hasExperiencedNetworkDisruption=!0,await this.transportDisconnect(),this.transportExplicitlyClosed=!1))}))}async onProviderDisconnect(){await this.subscriber.stop(),this.requestsInFlight.clear(),clearTimeout(this.pingTimeout),this.events.emit(v$4.disconnect),this.connectionAttemptInProgress=!1,!this.transportExplicitlyClosed&&(this.reconnectTimeout||(this.reconnectTimeout=setTimeout((async()=>{await this.transportOpen().catch((e=>this.logger.error(e)))}),cjs$7.toMiliseconds(ht$1))))}isInitialized(){if(!this.initialized){const{message:e}=S$6("NOT_INITIALIZED",this.name);throw new Error(e)}}async toEstablishConnection(){await this.confirmOnlineStateOrThrow(),!this.connected&&(this.connectionAttemptInProgress&&await new Promise((e=>{const t=setInterval((()=>{this.connected&&(clearInterval(t),e())}),this.connectionStatusPollingInterval)})),await this.transportOpen())}}var cn=Object.defineProperty,ii=Object.getOwnPropertySymbols,ln=Object.prototype.hasOwnProperty,un=Object.prototype.propertyIsEnumerable,si=(e,t,r)=>t in e?cn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,ri=(e,t)=>{for(var r in t||(t={}))ln.call(t,r)&&si(e,r,t[r]);if(ii)for(var r of ii(t))un.call(t,r)&&si(e,r,t[r]);return e};class ni extends p$3{constructor(e,t,r,n=x$4,o=void 0){super(e,t,r,n),this.core=e,this.logger=t,this.name=r,this.map=new Map,this.version=ct$1,this.cached=[],this.initialized=!1,this.storagePrefix=x$4,this.recentlyDeleted=[],this.recentlyDeletedLimit=200,this.init=async()=>{this.initialized||(this.logger.trace("Initialized"),await this.restore(),this.cached.forEach((e=>{this.getKey&&null!==e&&!I$5(e)?this.map.set(this.getKey(e),e):Yr$1(e)?this.map.set(e.id,e):Qr$1(e)&&this.map.set(e.topic,e)})),this.cached=[],this.initialized=!0)},this.set=async(e,t)=>{this.isInitialized(),this.map.has(e)?await this.update(e,t):(this.logger.debug("Setting value"),this.logger.trace({type:"method",method:"set",key:e,value:t}),this.map.set(e,t),await this.persist())},this.get=e=>(this.isInitialized(),this.logger.debug("Getting value"),this.logger.trace({type:"method",method:"get",key:e}),this.getData(e)),this.getAll=e=>(this.isInitialized(),e?this.values.filter((t=>Object.keys(e).every((r=>ys$1(t[r],e[r]))))):this.values),this.update=async(e,t)=>{this.isInitialized(),this.logger.debug("Updating value"),this.logger.trace({type:"method",method:"update",key:e,update:t});const r=ri(ri({},this.getData(e)),t);this.map.set(e,r),await this.persist()},this.delete=async(e,t)=>{this.isInitialized(),this.map.has(e)&&(this.logger.debug("Deleting value"),this.logger.trace({type:"method",method:"delete",key:e,reason:t}),this.map.delete(e),this.addToRecentlyDeleted(e),await this.persist())},this.logger=E$5(t,this.name),this.storagePrefix=n,this.getKey=o}get context(){return y$7(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//"+this.name}get length(){return this.map.size}get keys(){return Array.from(this.map.keys())}get values(){return Array.from(this.map.values())}addToRecentlyDeleted(e){this.recentlyDeleted.push(e),this.recentlyDeleted.length>=this.recentlyDeletedLimit&&this.recentlyDeleted.splice(0,this.recentlyDeletedLimit/2)}async setDataStore(e){await this.core.storage.setItem(this.storageKey,e)}async getDataStore(){return await this.core.storage.getItem(this.storageKey)}getData(e){const t=this.map.get(e);if(!t){if(this.recentlyDeleted.includes(e)){const{message:t}=S$6("MISSING_OR_INVALID",`Record was recently deleted - ${this.name}: ${e}`);throw this.logger.error(t),new Error(t)}const{message:t}=S$6("NO_MATCHING_KEY",`${this.name}: ${e}`);throw this.logger.error(t),new Error(t)}return t}async persist(){await this.setDataStore(this.values)}async restore(){try{const e=await this.getDataStore();if(typeof e>"u"||!e.length)return;if(this.map.size){const{message:e}=S$6("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(e),new Error(e)}this.cached=e,this.logger.debug(`Successfully Restored value for ${this.name}`),this.logger.trace({type:"method",method:"restore",value:this.values})}catch(e2){this.logger.debug(`Failed to Restore value for ${this.name}`),this.logger.error(e2)}}isInitialized(){if(!this.initialized){const{message:e}=S$6("NOT_INITIALIZED",this.name);throw new Error(e)}}}class oi{constructor(e,t){this.core=e,this.logger=t,this.name=gt$1,this.version=yt$1,this.events=new mi,this.initialized=!1,this.storagePrefix=x$4,this.ignoredPayloadTypes=[D$5],this.registeredMethods=[],this.init=async()=>{this.initialized||(await this.pairings.init(),await this.cleanup(),this.registerRelayerEvents(),this.registerExpirerEvents(),this.initialized=!0,this.logger.trace("Initialized"))},this.register=({methods:e})=>{this.isInitialized(),this.registeredMethods=[...new Set([...this.registeredMethods,...e])]},this.create=async e=>{this.isInitialized();const t=pr$1(),r=await this.core.crypto.setSymKey(t),n=Mt$1(cjs$7.FIVE_MINUTES),o={protocol:rt$1},i={topic:r,expiry:n,relay:o,active:!1,methods:null==e?void 0:e.methods},a=Dr$1({protocol:this.core.protocol,version:this.core.version,topic:r,symKey:t,relay:o,expiryTimestamp:n,methods:null==e?void 0:e.methods});return this.events.emit(V$2.create,i),this.core.expirer.set(r,n),await this.pairings.set(r,i),await this.core.relayer.subscribe(r,{transportType:null==e?void 0:e.transportType}),{topic:r,uri:a}},this.pair=async e=>{this.isInitialized();const t=this.core.eventClient.createEvent({properties:{topic:null==e?void 0:e.uri,trace:[z$5.pairing_started]}});this.isValidPair(e,t);const{topic:r,symKey:n,relay:o,expiryTimestamp:i,methods:a}=kr$1(e.uri);let s;if(t.props.properties.topic=r,t.addTrace(z$5.pairing_uri_validation_success),t.addTrace(z$5.pairing_uri_not_expired),this.pairings.keys.includes(r)){if(s=this.pairings.get(r),t.addTrace(z$5.existing_pairing),s.active)throw t.setError($$3.active_pairing_already_exists),new Error(`Pairing already exists: ${r}. Please try again with a new connection URI.`);t.addTrace(z$5.pairing_not_expired)}const c=i||Mt$1(cjs$7.FIVE_MINUTES),u={topic:r,relay:o,expiry:c,active:!1,methods:a};this.core.expirer.set(r,c),await this.pairings.set(r,u),t.addTrace(z$5.store_new_pairing),e.activatePairing&&await this.activate({topic:r}),this.events.emit(V$2.create,u),t.addTrace(z$5.emit_inactive_pairing),this.core.crypto.keychain.has(r)||await this.core.crypto.setSymKey(n,r),t.addTrace(z$5.subscribing_pairing_topic);try{await this.core.relayer.confirmOnlineStateOrThrow()}catch{t.setError($$3.no_internet_connection)}try{await this.core.relayer.subscribe(r,{relay:o})}catch(l){throw t.setError($$3.subscribe_pairing_topic_failure),l}return t.addTrace(z$5.subscribe_pairing_topic_success),u},this.activate=async({topic:e})=>{this.isInitialized();const t=Mt$1(cjs$7.THIRTY_DAYS);this.core.expirer.set(e,t),await this.pairings.update(e,{active:!0,expiry:t})},this.ping=async e=>{this.isInitialized(),await this.isValidPing(e);const{topic:t}=e;if(this.pairings.keys.includes(t)){const e=await this.sendRequest(t,"wc_pairingPing",{}),{done:r,resolve:n,reject:o}=_t$1();this.events.once(Lt$1("pairing_ping",e),(({error:e})=>{e?o(e):n()})),await r()}},this.updateExpiry=async({topic:e,expiry:t})=>{this.isInitialized(),await this.pairings.update(e,{expiry:t})},this.updateMetadata=async({topic:e,metadata:t})=>{this.isInitialized(),await this.pairings.update(e,{peerMetadata:t})},this.getPairings=()=>(this.isInitialized(),this.pairings.values),this.disconnect=async e=>{this.isInitialized(),await this.isValidDisconnect(e);const{topic:t}=e;this.pairings.keys.includes(t)&&(await this.sendRequest(t,"wc_pairingDelete",U$2("USER_DISCONNECTED")),await this.deletePairing(t))},this.formatUriFromPairing=e=>{this.isInitialized();const{topic:t,relay:r,expiry:n,methods:o}=e,i=this.core.crypto.keychain.get(t);return Dr$1({protocol:this.core.protocol,version:this.core.version,topic:t,symKey:i,relay:r,expiryTimestamp:n,methods:o})},this.sendRequest=async(e,t,r)=>{const n=formatJsonRpcRequest(t,r),o=await this.core.crypto.encode(e,n),i=B$2[t].req;return this.core.history.set(e,n),this.core.relayer.publish(e,o,i),n.id},this.sendResult=async(e,t,r)=>{const n=formatJsonRpcResult(e,r),o=await this.core.crypto.encode(t,n),i=await this.core.history.get(t,e),a=B$2[i.request.method].res;await this.core.relayer.publish(t,o,a),await this.core.history.resolve(n)},this.sendError=async(e,t,r)=>{const n=formatJsonRpcError(e,r),o=await this.core.crypto.encode(t,n),i=await this.core.history.get(t,e),a=B$2[i.request.method]?B$2[i.request.method].res:B$2.unregistered_method.res;await this.core.relayer.publish(t,o,a),await this.core.history.resolve(n)},this.deletePairing=async(e,t)=>{await this.core.relayer.unsubscribe(e),await Promise.all([this.pairings.delete(e,U$2("USER_DISCONNECTED")),this.core.crypto.deleteSymKey(e),t?Promise.resolve():this.core.expirer.del(e)])},this.cleanup=async()=>{const e=this.pairings.getAll().filter((e=>Kt$1(e.expiry)));await Promise.all(e.map((e=>this.deletePairing(e.topic))))},this.onRelayEventRequest=e=>{const{topic:t,payload:r}=e;switch(r.method){case"wc_pairingPing":return this.onPairingPingRequest(t,r);case"wc_pairingDelete":return this.onPairingDeleteRequest(t,r);default:return this.onUnknownRpcMethodRequest(t,r)}},this.onRelayEventResponse=async e=>{const{topic:t,payload:r}=e,n=(await this.core.history.get(t,r.id)).request.method;return"wc_pairingPing"===n?this.onPairingPingResponse(t,r):this.onUnknownRpcMethodResponse(n)},this.onPairingPingRequest=async(e,t)=>{const{id:r}=t;try{this.isValidPing({topic:e}),await this.sendResult(r,e,!0),this.events.emit(V$2.ping,{id:r,topic:e})}catch(n){await this.sendError(r,e,n),this.logger.error(n)}},this.onPairingPingResponse=(e,t)=>{const{id:r}=t;setTimeout((()=>{isJsonRpcResult(t)?this.events.emit(Lt$1("pairing_ping",r),{}):isJsonRpcError(t)&&this.events.emit(Lt$1("pairing_ping",r),{error:t.error})}),500)},this.onPairingDeleteRequest=async(e,t)=>{const{id:r}=t;try{this.isValidDisconnect({topic:e}),await this.deletePairing(e),this.events.emit(V$2.delete,{id:r,topic:e})}catch(n){await this.sendError(r,e,n),this.logger.error(n)}},this.onUnknownRpcMethodRequest=async(e,t)=>{const{id:r,method:n}=t;try{if(this.registeredMethods.includes(n))return;const t=U$2("WC_METHOD_UNSUPPORTED",n);await this.sendError(r,e,t),this.logger.error(t)}catch(o){await this.sendError(r,e,o),this.logger.error(o)}},this.onUnknownRpcMethodResponse=e=>{this.registeredMethods.includes(e)||this.logger.error(U$2("WC_METHOD_UNSUPPORTED",e))},this.isValidPair=(e,t)=>{var r;if(!to(e)){const{message:r}=S$6("MISSING_OR_INVALID",`pair() params: ${e}`);throw t.setError($$3.malformed_pairing_uri),new Error(r)}if(!Gr$1(e.uri)){const{message:r}=S$6("MISSING_OR_INVALID",`pair() uri: ${e.uri}`);throw t.setError($$3.malformed_pairing_uri),new Error(r)}const n=kr$1(null==e?void 0:e.uri);if(null==(r=null==n?void 0:n.relay)||!r.protocol){const{message:e}=S$6("MISSING_OR_INVALID","pair() uri#relay-protocol");throw t.setError($$3.malformed_pairing_uri),new Error(e)}if(null==n||!n.symKey){const{message:e}=S$6("MISSING_OR_INVALID","pair() uri#symKey");throw t.setError($$3.malformed_pairing_uri),new Error(e)}if(null!=n&&n.expiryTimestamp&&cjs$7.toMiliseconds(null==n?void 0:n.expiryTimestamp){if(!to(e)){const{message:t}=S$6("MISSING_OR_INVALID",`ping() params: ${e}`);throw new Error(t)}const{topic:t}=e;await this.isValidPairingTopic(t)},this.isValidDisconnect=async e=>{if(!to(e)){const{message:t}=S$6("MISSING_OR_INVALID",`disconnect() params: ${e}`);throw new Error(t)}const{topic:t}=e;await this.isValidPairingTopic(t)},this.isValidPairingTopic=async e=>{if(!b$4(e,!1)){const{message:t}=S$6("MISSING_OR_INVALID",`pairing topic should be a string: ${e}`);throw new Error(t)}if(!this.pairings.keys.includes(e)){const{message:t}=S$6("NO_MATCHING_KEY",`pairing topic doesn't exist: ${e}`);throw new Error(t)}if(Kt$1(this.pairings.get(e).expiry)){await this.deletePairing(e);const{message:t}=S$6("EXPIRED",`pairing topic: ${e}`);throw new Error(t)}},this.core=e,this.logger=E$5(t,this.name),this.pairings=new ni(this.core,this.logger,this.name,this.storagePrefix)}get context(){return y$7(this.logger)}isInitialized(){if(!this.initialized){const{message:e}=S$6("NOT_INITIALIZED",this.name);throw new Error(e)}}registerRelayerEvents(){this.core.relayer.on(v$4.message,(async e=>{const{topic:t,message:r,transportType:n}=e;if(!this.pairings.keys.includes(t)||n===M$3.link_mode||this.ignoredPayloadTypes.includes(this.core.crypto.getPayloadType(r)))return;const o=await this.core.crypto.decode(t,r);try{isJsonRpcRequest(o)?(this.core.history.set(t,o),this.onRelayEventRequest({topic:t,payload:o})):isJsonRpcResponse(o)&&(await this.core.history.resolve(o),await this.onRelayEventResponse({topic:t,payload:o}),this.core.history.delete(t,o.id))}catch(i){this.logger.error(i)}}))}registerExpirerEvents(){this.core.expirer.on(S$4.expired,(async e=>{const{topic:t}=Vt$1(e.target);t&&this.pairings.keys.includes(t)&&(await this.deletePairing(t,!0),this.events.emit(V$2.expire,{topic:t}))}))}}class ai extends h$6{constructor(e,t){super(e,t),this.core=e,this.logger=t,this.records=new Map,this.events=new eventsExports.EventEmitter,this.name=Dt,this.version=mt,this.cached=[],this.initialized=!1,this.storagePrefix=x$4,this.init=async()=>{this.initialized||(this.logger.trace("Initialized"),await this.restore(),this.cached.forEach((e=>this.records.set(e.id,e))),this.cached=[],this.registerEventListeners(),this.initialized=!0)},this.set=(e,t,r)=>{if(this.isInitialized(),this.logger.debug("Setting JSON-RPC request history record"),this.logger.trace({type:"method",method:"set",topic:e,request:t,chainId:r}),this.records.has(t.id))return;const n={id:t.id,topic:e,request:{method:t.method,params:t.params||null},chainId:r,expiry:Mt$1(cjs$7.THIRTY_DAYS)};this.records.set(n.id,n),this.persist(),this.events.emit(P$3.created,n)},this.resolve=async e=>{if(this.isInitialized(),this.logger.debug("Updating JSON-RPC response history record"),this.logger.trace({type:"method",method:"update",response:e}),!this.records.has(e.id))return;const t=await this.getRecord(e.id);typeof t.response>"u"&&(t.response=isJsonRpcError(e)?{error:e.error}:{result:e.result},this.records.set(t.id,t),this.persist(),this.events.emit(P$3.updated,t))},this.get=async(e,t)=>(this.isInitialized(),this.logger.debug("Getting record"),this.logger.trace({type:"method",method:"get",topic:e,id:t}),await this.getRecord(t)),this.delete=(e,t)=>{this.isInitialized(),this.logger.debug("Deleting record"),this.logger.trace({type:"method",method:"delete",id:t}),this.values.forEach((r=>{if(r.topic===e){if(typeof t<"u"&&r.id!==t)return;this.records.delete(r.id),this.events.emit(P$3.deleted,r)}})),this.persist()},this.exists=async(e,t)=>(this.isInitialized(),!!this.records.has(t)&&(await this.getRecord(t)).topic===e),this.on=(e,t)=>{this.events.on(e,t)},this.once=(e,t)=>{this.events.once(e,t)},this.off=(e,t)=>{this.events.off(e,t)},this.removeListener=(e,t)=>{this.events.removeListener(e,t)},this.logger=E$5(t,this.name)}get context(){return y$7(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//"+this.name}get size(){return this.records.size}get keys(){return Array.from(this.records.keys())}get values(){return Array.from(this.records.values())}get pending(){const e=[];return this.values.forEach((t=>{if(typeof t.response<"u")return;const r={topic:t.topic,request:formatJsonRpcRequest(t.request.method,t.request.params,t.id),chainId:t.chainId};return e.push(r)})),e}async setJsonRpcRecords(e){await this.core.storage.setItem(this.storageKey,e)}async getJsonRpcRecords(){return await this.core.storage.getItem(this.storageKey)}getRecord(e){this.isInitialized();const t=this.records.get(e);if(!t){const{message:t}=S$6("NO_MATCHING_KEY",`${this.name}: ${e}`);throw new Error(t)}return t}async persist(){await this.setJsonRpcRecords(this.values),this.events.emit(P$3.sync)}async restore(){try{const e=await this.getJsonRpcRecords();if(typeof e>"u"||!e.length)return;if(this.records.size){const{message:e}=S$6("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(e),new Error(e)}this.cached=e,this.logger.debug(`Successfully Restored records for ${this.name}`),this.logger.trace({type:"method",method:"restore",records:this.values})}catch(e2){this.logger.debug(`Failed to Restore records for ${this.name}`),this.logger.error(e2)}}registerEventListeners(){this.events.on(P$3.created,(e=>{const t=P$3.created;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,record:e})})),this.events.on(P$3.updated,(e=>{const t=P$3.updated;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,record:e})})),this.events.on(P$3.deleted,(e=>{const t=P$3.deleted;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,record:e})})),this.core.heartbeat.on(r$6.pulse,(()=>{this.cleanup()}))}cleanup(){try{this.isInitialized();let e=!1;this.records.forEach((t=>{cjs$7.toMiliseconds(t.expiry||0)-Date.now()<=0&&(this.logger.info(`Deleting expired history log: ${t.id}`),this.records.delete(t.id),this.events.emit(P$3.deleted,t,!1),e=!0)})),e&&this.persist()}catch(e2){this.logger.warn(e2)}}isInitialized(){if(!this.initialized){const{message:e}=S$6("NOT_INITIALIZED",this.name);throw new Error(e)}}}class hi extends x$5{constructor(e,t){super(e,t),this.core=e,this.logger=t,this.expirations=new Map,this.events=new eventsExports.EventEmitter,this.name=bt,this.version=ft,this.cached=[],this.initialized=!1,this.storagePrefix=x$4,this.init=async()=>{this.initialized||(this.logger.trace("Initialized"),await this.restore(),this.cached.forEach((e=>this.expirations.set(e.target,e))),this.cached=[],this.registerEventListeners(),this.initialized=!0)},this.has=e=>{try{const t=this.formatTarget(e);return typeof this.getExpiration(t)<"u"}catch{return!1}},this.set=(e,t)=>{this.isInitialized();const r=this.formatTarget(e),n={target:r,expiry:t};this.expirations.set(r,n),this.checkExpiry(r,n),this.events.emit(S$4.created,{target:r,expiration:n})},this.get=e=>{this.isInitialized();const t=this.formatTarget(e);return this.getExpiration(t)},this.del=e=>{if(this.isInitialized(),this.has(e)){const t=this.formatTarget(e),r=this.getExpiration(t);this.expirations.delete(t),this.events.emit(S$4.deleted,{target:t,expiration:r})}},this.on=(e,t)=>{this.events.on(e,t)},this.once=(e,t)=>{this.events.once(e,t)},this.off=(e,t)=>{this.events.off(e,t)},this.removeListener=(e,t)=>{this.events.removeListener(e,t)},this.logger=E$5(t,this.name)}get context(){return y$7(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//"+this.name}get length(){return this.expirations.size}get keys(){return Array.from(this.expirations.keys())}get values(){return Array.from(this.expirations.values())}formatTarget(e){if("string"==typeof e)return Dt$1(e);if("number"==typeof e)return xt$1(e);const{message:t}=S$6("UNKNOWN_TYPE","Target type: "+typeof e);throw new Error(t)}async setExpirations(e){await this.core.storage.setItem(this.storageKey,e)}async getExpirations(){return await this.core.storage.getItem(this.storageKey)}async persist(){await this.setExpirations(this.values),this.events.emit(S$4.sync)}async restore(){try{const e=await this.getExpirations();if(typeof e>"u"||!e.length)return;if(this.expirations.size){const{message:e}=S$6("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(e),new Error(e)}this.cached=e,this.logger.debug(`Successfully Restored expirations for ${this.name}`),this.logger.trace({type:"method",method:"restore",expirations:this.values})}catch(e2){this.logger.debug(`Failed to Restore expirations for ${this.name}`),this.logger.error(e2)}}getExpiration(e){const t=this.expirations.get(e);if(!t){const{message:t}=S$6("NO_MATCHING_KEY",`${this.name}: ${e}`);throw this.logger.warn(t),new Error(t)}return t}checkExpiry(e,t){const{expiry:r}=t;cjs$7.toMiliseconds(r)-Date.now()<=0&&this.expire(e,t)}expire(e,t){this.expirations.delete(e),this.events.emit(S$4.expired,{target:e,expiration:t})}checkExpirations(){this.core.relayer.connected&&this.expirations.forEach(((e,t)=>this.checkExpiry(t,e)))}registerEventListeners(){this.core.heartbeat.on(r$6.pulse,(()=>this.checkExpirations())),this.events.on(S$4.created,(e=>{const t=S$4.created;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,data:e}),this.persist()})),this.events.on(S$4.expired,(e=>{const t=S$4.expired;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,data:e}),this.persist()})),this.events.on(S$4.deleted,(e=>{const t=S$4.deleted;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,data:e}),this.persist()}))}isInitialized(){if(!this.initialized){const{message:e}=S$6("NOT_INITIALIZED",this.name);throw new Error(e)}}}class ci extends y$6{constructor(e,t,r){super(e,t,r),this.core=e,this.logger=t,this.store=r,this.name=_t,this.verifyUrlV3=vt,this.storagePrefix=x$4,this.version=De,this.init=async()=>{var e;this.isDevEnv||(this.publicKey=await this.store.getItem(this.storeKey),this.publicKey&&cjs$7.toMiliseconds(null==(e=this.publicKey)?void 0:e.expiresAt){if(!V$3()||this.isDevEnv)return;const t=window.location.origin,{id:r,decryptedId:n}=e,o=`${this.verifyUrlV3}/attestation?projectId=${this.core.projectId}&origin=${t}&id=${r}&decryptedId=${n}`;try{const e=getDocument_1$1(),t=this.startAbortTimer(5*cjs$7.ONE_SECOND),n=await new Promise(((n,i)=>{const a=()=>{window.removeEventListener("message",c),e.body.removeChild(s),i("attestation aborted")};this.abortController.signal.addEventListener("abort",a);const s=e.createElement("iframe");s.src=o,s.style.display="none",s.addEventListener("error",a,{signal:this.abortController.signal});const c=o=>{if(o.data&&"string"==typeof o.data)try{const i=JSON.parse(o.data);if("verify_attestation"===i.type){if(decodeJWT(i.attestation).payload.id!==r)return;clearInterval(t),e.body.removeChild(s),this.abortController.signal.removeEventListener("abort",a),window.removeEventListener("message",c),n(null===i.attestation?"":i.attestation)}}catch(i){this.logger.warn(i)}};e.body.appendChild(s),window.addEventListener("message",c,{signal:this.abortController.signal})}));return this.logger.debug("jwt attestation",n),n}catch(i){this.logger.warn(i)}return""},this.resolve=async e=>{if(this.isDevEnv)return"";const{attestationId:t,hash:r,encryptedId:n}=e;if(""===t)return void this.logger.debug("resolve: attestationId is empty, skipping");if(t){if(decodeJWT(t).payload.id!==n)return;const e=await this.isValidJwtAttestation(t);if(e)return e.isVerified?e:void this.logger.warn("resolve: jwt attestation: origin url not verified")}if(!r)return;const o=this.getVerifyUrl(null==e?void 0:e.verifyUrl);return this.fetchAttestation(r,o)},this.fetchAttestation=async(e,t)=>{this.logger.debug(`resolving attestation: ${e} from url: ${t}`);const r=this.startAbortTimer(5*cjs$7.ONE_SECOND),n=await fetch(`${t}/attestation/${e}?v2Supported=true`,{signal:this.abortController.signal});return clearTimeout(r),200===n.status?await n.json():void 0},this.getVerifyUrl=e=>{let t=e||J$1;return wt.includes(t)||(this.logger.info(`verify url: ${t}, not included in trusted list, assigning default: ${J$1}`),t=J$1),t},this.fetchPublicKey=async()=>{try{this.logger.debug(`fetching public key from: ${this.verifyUrlV3}`);const e=this.startAbortTimer(cjs$7.FIVE_SECONDS),t=await fetch(`${this.verifyUrlV3}/public-key`,{signal:this.abortController.signal});return clearTimeout(e),await t.json()}catch(e){this.logger.warn(e)}},this.persistPublicKey=async e=>{this.logger.debug("persisting public key to local storage",e),await this.store.setItem(this.storeKey,e),this.publicKey=e},this.removePublicKey=async()=>{this.logger.debug("removing verify v2 public key from storage"),await this.store.removeItem(this.storeKey),this.publicKey=void 0},this.isValidJwtAttestation=async e=>{const t=await this.getPublicKey();try{if(t)return this.validateAttestation(e,t)}catch(n){this.logger.error(n),this.logger.warn("error validating attestation")}const r=await this.fetchAndPersistPublicKey();try{if(r)return this.validateAttestation(e,r)}catch(n){this.logger.error(n),this.logger.warn("error validating attestation")}},this.getPublicKey=async()=>this.publicKey?this.publicKey:await this.fetchAndPersistPublicKey(),this.fetchAndPersistPublicKey=async()=>{if(this.fetchPromise)return await this.fetchPromise,this.publicKey;this.fetchPromise=new Promise((async e=>{const t=await this.fetchPublicKey();t&&(await this.persistPublicKey(t),e(t))}));const e=await this.fetchPromise;return this.fetchPromise=void 0,e},this.validateAttestation=(e,t)=>{const r=Rr$1(e,t.publicKey),n={hasExpired:cjs$7.toMiliseconds(r.exp)this.abortController.abort()),cjs$7.toMiliseconds(e))}}class li extends v$5{constructor(e,t){super(e,t),this.projectId=e,this.logger=t,this.context=It,this.registerDeviceToken=async e=>{const{clientId:t,token:r,notificationType:n,enableEncrypted:o=!1}=e,i=`${Tt}/${this.projectId}/clients`;await fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({client_id:t,type:n,token:r,always_raw:o})})},this.logger=E$5(t,this.context)}}var dn=Object.defineProperty,ui=Object.getOwnPropertySymbols,pn=Object.prototype.hasOwnProperty,gn=Object.prototype.propertyIsEnumerable,di=(e,t,r)=>t in e?dn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Z$2=(e,t)=>{for(var r in t||(t={}))pn.call(t,r)&&di(e,r,t[r]);if(ui)for(var r of ui(t))gn.call(t,r)&&di(e,r,t[r]);return e};class pi extends C$5{constructor(e,t,r=!0){super(e,t,r),this.core=e,this.logger=t,this.context=Pt,this.storagePrefix=x$4,this.storageVersion=Ct,this.events=new Map,this.shouldPersist=!1,this.init=async()=>{if(!Wt$1())try{const e={eventId:Ht$1(),timestamp:Date.now(),domain:this.getAppDomain(),props:{event:"INIT",type:"",properties:{client_id:await this.core.crypto.getClientId(),user_agent:Ge(this.core.relayer.protocol,this.core.relayer.version,se)}}};await this.sendEvent([e])}catch(e){this.logger.warn(e)}},this.createEvent=e=>{const{event:t="ERROR",type:r="",properties:{topic:n,trace:o}}=e,i=Ht$1(),a=this.core.projectId||"",s=Date.now(),c=Z$2({eventId:i,timestamp:s,props:{event:t,type:r,properties:{topic:n,trace:o}},bundleId:a,domain:this.getAppDomain()},this.setMethods(i));return this.telemetryEnabled&&(this.events.set(i,c),this.shouldPersist=!0),c},this.getEvent=e=>{const{eventId:t,topic:r}=e;if(t)return this.events.get(t);const n=Array.from(this.events.values()).find((e=>e.props.properties.topic===r));return n?Z$2(Z$2({},n),this.setMethods(n.eventId)):void 0},this.deleteEvent=e=>{const{eventId:t}=e;this.events.delete(t),this.shouldPersist=!0},this.setEventListeners=()=>{this.core.heartbeat.on(r$6.pulse,(async()=>{this.shouldPersist&&await this.persist(),this.events.forEach((e=>{cjs$7.fromMiliseconds(Date.now())-cjs$7.fromMiliseconds(e.timestamp)>St&&(this.events.delete(e.eventId),this.shouldPersist=!0)}))}))},this.setMethods=e=>({addTrace:t=>this.addTrace(e,t),setError:t=>this.setError(e,t)}),this.addTrace=(e,t)=>{const r=this.events.get(e);r&&(r.props.properties.trace.push(t),this.events.set(e,r),this.shouldPersist=!0)},this.setError=(e,t)=>{const r=this.events.get(e);r&&(r.props.type=t,r.timestamp=Date.now(),this.events.set(e,r),this.shouldPersist=!0)},this.persist=async()=>{await this.core.storage.setItem(this.storageKey,Array.from(this.events.values())),this.shouldPersist=!1},this.restore=async()=>{try{const e=await this.core.storage.getItem(this.storageKey)||[];if(!e.length)return;e.forEach((e=>{this.events.set(e.eventId,Z$2(Z$2({},e),this.setMethods(e.eventId)))}))}catch(e){this.logger.warn(e)}},this.submit=async()=>{if(!this.telemetryEnabled||0===this.events.size)return;const e=[];for(const[r,n]of this.events)n.props.type&&e.push(n);if(0!==e.length)try{if((await this.sendEvent(e)).ok)for(const t of e)this.events.delete(t.eventId),this.shouldPersist=!0}catch(t){this.logger.warn(t)}},this.sendEvent=async e=>{const t=this.getAppDomain()?"":"&sp=desktop";return await fetch(`${Rt}?projectId=${this.core.projectId}&st=events_sdk&sv=js-${se}${t}`,{method:"POST",body:JSON.stringify(e)})},this.getAppDomain=()=>Nt$1().url,this.logger=E$5(t,this.context),this.telemetryEnabled=r,r?this.restore().then((async()=>{await this.submit(),this.setEventListeners()})):this.persist()}get storageKey(){return this.storagePrefix+this.storageVersion+this.core.customStoragePrefix+"//"+this.context}}var yn=Object.defineProperty,gi=Object.getOwnPropertySymbols,Dn=Object.prototype.hasOwnProperty,mn=Object.prototype.propertyIsEnumerable,yi=(e,t,r)=>t in e?yn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Di=(e,t)=>{for(var r in t||(t={}))Dn.call(t,r)&&yi(e,r,t[r]);if(gi)for(var r of gi(t))mn.call(t,r)&&yi(e,r,t[r]);return e};class ne extends n$7{constructor(e){var t;super(e),this.protocol=ye$1,this.version=De,this.name=ie,this.events=new eventsExports.EventEmitter,this.initialized=!1,this.on=(e,t)=>this.events.on(e,t),this.once=(e,t)=>this.events.once(e,t),this.off=(e,t)=>this.events.off(e,t),this.removeListener=(e,t)=>this.events.removeListener(e,t),this.dispatchEnvelope=({topic:e,message:t,sessionExists:r})=>{if(!e||!t)return;const n={topic:e,message:t,publishedAt:Date.now(),transportType:M$3.link_mode};this.relayer.onLinkMessageEvent(n,{sessionExists:r})},this.projectId=null==e?void 0:e.projectId,this.relayUrl=(null==e?void 0:e.relayUrl)||be$1,this.customStoragePrefix=null!=e&&e.customStoragePrefix?`:${e.customStoragePrefix}`:"";const r=k$5({level:"string"==typeof(null==e?void 0:e.logger)&&e.logger?e.logger:Ye.logger}),{logger:n,chunkLoggerController:o}=A$5({opts:r,maxSizeInBytes:null==e?void 0:e.maxLogBlobSizeInBytes,loggerOverride:null==e?void 0:e.logger});this.logChunkController=o,null!=(t=this.logChunkController)&&t.downloadLogsBlobInBrowser&&(window.downloadLogsBlobInBrowser=async()=>{var e,t;null!=(e=this.logChunkController)&&e.downloadLogsBlobInBrowser&&(null==(t=this.logChunkController)||t.downloadLogsBlobInBrowser({clientId:await this.crypto.getClientId()}))}),this.logger=E$5(n,this.name),this.heartbeat=new i$7,this.crypto=new Ht(this,this.logger,null==e?void 0:e.keychain),this.history=new ai(this,this.logger),this.expirer=new hi(this,this.logger),this.storage=null!=e&&e.storage?e.storage:new h$7(Di(Di({},Je),null==e?void 0:e.storageOptions)),this.relayer=new ti({core:this,logger:this.logger,relayUrl:this.relayUrl,projectId:this.projectId}),this.pairing=new oi(this,this.logger),this.verify=new ci(this,this.logger,this.storage),this.echoClient=new li(this.projectId||"",this.logger),this.linkModeSupportedApps=[],this.eventClient=new pi(this,this.logger,null==e?void 0:e.telemetryEnabled)}static async init(e){const t=new ne(e);await t.initialize();const r=await t.crypto.getClientId();return await t.storage.setItem(lt$1,r),t}get context(){return y$7(this.logger)}async start(){this.initialized||await this.initialize()}async getLogsBlob(){var e;return null==(e=this.logChunkController)?void 0:e.logsToBlob({clientId:await this.crypto.getClientId()})}async addLinkModeSupportedApp(e){this.linkModeSupportedApps.includes(e)||(this.linkModeSupportedApps.push(e),await this.storage.setItem(fe,this.linkModeSupportedApps))}async initialize(){this.logger.trace("Initialized");try{await this.crypto.init(),await this.history.init(),await this.expirer.init(),await this.relayer.init(),await this.heartbeat.init(),await this.pairing.init(),this.eventClient.init(),this.linkModeSupportedApps=await this.storage.getItem(fe)||[],this.initialized=!0,this.logger.info("Core Initialization Success")}catch(e2){throw this.logger.warn(`Core Initialization Failure at epoch ${Date.now()}`,e2),this.logger.error(e2.message),e2}}}const bn=ne,be="wc",Ce=2,Le="client",ye=`${be}@${Ce}:${Le}:`,we={name:Le,logger:"error",controller:!1,relayUrl:"wss://relay.walletconnect.org"},xe="WALLETCONNECT_DEEPLINK_CHOICE",st="proposal",it="Proposal expired",rt="session",z$4=cjs$7.SEVEN_DAYS,nt="engine",v$3={wc_sessionPropose:{req:{ttl:cjs$7.FIVE_MINUTES,prompt:!0,tag:1100},res:{ttl:cjs$7.FIVE_MINUTES,prompt:!1,tag:1101},reject:{ttl:cjs$7.FIVE_MINUTES,prompt:!1,tag:1120},autoReject:{ttl:cjs$7.FIVE_MINUTES,prompt:!1,tag:1121}},wc_sessionSettle:{req:{ttl:cjs$7.FIVE_MINUTES,prompt:!1,tag:1102},res:{ttl:cjs$7.FIVE_MINUTES,prompt:!1,tag:1103}},wc_sessionUpdate:{req:{ttl:cjs$7.ONE_DAY,prompt:!1,tag:1104},res:{ttl:cjs$7.ONE_DAY,prompt:!1,tag:1105}},wc_sessionExtend:{req:{ttl:cjs$7.ONE_DAY,prompt:!1,tag:1106},res:{ttl:cjs$7.ONE_DAY,prompt:!1,tag:1107}},wc_sessionRequest:{req:{ttl:cjs$7.FIVE_MINUTES,prompt:!0,tag:1108},res:{ttl:cjs$7.FIVE_MINUTES,prompt:!1,tag:1109}},wc_sessionEvent:{req:{ttl:cjs$7.FIVE_MINUTES,prompt:!0,tag:1110},res:{ttl:cjs$7.FIVE_MINUTES,prompt:!1,tag:1111}},wc_sessionDelete:{req:{ttl:cjs$7.ONE_DAY,prompt:!1,tag:1112},res:{ttl:cjs$7.ONE_DAY,prompt:!1,tag:1113}},wc_sessionPing:{req:{ttl:cjs$7.ONE_DAY,prompt:!1,tag:1114},res:{ttl:cjs$7.ONE_DAY,prompt:!1,tag:1115}},wc_sessionAuthenticate:{req:{ttl:cjs$7.ONE_HOUR,prompt:!0,tag:1116},res:{ttl:cjs$7.ONE_HOUR,prompt:!1,tag:1117},reject:{ttl:cjs$7.FIVE_MINUTES,prompt:!1,tag:1118},autoReject:{ttl:cjs$7.FIVE_MINUTES,prompt:!1,tag:1119}}},me={min:cjs$7.FIVE_MINUTES,max:cjs$7.SEVEN_DAYS},x$3={idle:"IDLE",active:"ACTIVE"},ot="request",at=["wc_sessionPropose","wc_sessionRequest","wc_authRequest","wc_sessionAuthenticate"],ct="wc",lt="auth",pt$1="authKeys",ht="pairingTopics",dt="requests",oe=`${ct}@1.5:${lt}:`,ae=`${oe}:PUB_KEY`;var ys=Object.defineProperty,ws=Object.defineProperties,ms=Object.getOwnPropertyDescriptors,ut=Object.getOwnPropertySymbols,_s=Object.prototype.hasOwnProperty,Es=Object.prototype.propertyIsEnumerable,gt=(e,t,r)=>t in e?ys(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,I$3=(e,t)=>{for(var r in t||(t={}))_s.call(t,r)&>(e,r,t[r]);if(ut)for(var r of ut(t))Es.call(t,r)&>(e,r,t[r]);return e},D$4=(e,t)=>ws(e,ms(t));class Rs extends M$5{constructor(e){super(e),this.name=nt,this.events=new mi,this.initialized=!1,this.requestQueue={state:x$3.idle,queue:[]},this.sessionRequestQueue={state:x$3.idle,queue:[]},this.requestQueueDelay=cjs$7.ONE_SECOND,this.expectedPairingMethodMap=new Map,this.recentlyDeletedMap=new Map,this.recentlyDeletedLimit=200,this.relayMessageCache=[],this.init=async()=>{this.initialized||(await this.cleanup(),this.registerRelayerEvents(),this.registerExpirerEvents(),this.registerPairingEvents(),await this.registerLinkModeListeners(),this.client.core.pairing.register({methods:Object.keys(v$3)}),this.initialized=!0,setTimeout((()=>{this.sessionRequestQueue.queue=this.getPendingSessionRequests(),this.processSessionRequestQueue()}),cjs$7.toMiliseconds(this.requestQueueDelay)))},this.connect=async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();const t=D$4(I$3({},e),{requiredNamespaces:e.requiredNamespaces||{},optionalNamespaces:e.optionalNamespaces||{}});await this.isValidConnect(t);const{pairingTopic:r,requiredNamespaces:n,optionalNamespaces:o,sessionProperties:i,relays:a}=t;let s,c=r,u=!1;try{c&&(u=this.client.core.pairing.pairings.get(c).active)}catch(b){throw this.client.logger.error(`connect() -> pairing.get(${c}) failed`),b}if(!c||!u){const{topic:e,uri:t}=await this.client.core.pairing.create();c=e,s=t}if(!c){const{message:e}=S$6("NO_MATCHING_KEY",`connect() pairing topic: ${c}`);throw new Error(e)}const l=await this.client.core.crypto.generateKeyPair(),d=v$3.wc_sessionPropose.req.ttl||cjs$7.FIVE_MINUTES,f=Mt$1(d),h=I$3({requiredNamespaces:n,optionalNamespaces:o,relays:a??[{protocol:rt$1}],proposer:{publicKey:l,metadata:this.client.metadata},expiryTimestamp:f,pairingTopic:c},i&&{sessionProperties:i}),{reject:p,resolve:y,done:m}=_t$1(d,it);this.events.once(Lt$1("session_connect"),(async({error:e,session:t})=>{if(e)p(e);else if(t){t.self.publicKey=l;const e=D$4(I$3({},t),{pairingTopic:h.pairingTopic,requiredNamespaces:h.requiredNamespaces,optionalNamespaces:h.optionalNamespaces,transportType:M$3.relay});await this.client.session.set(t.topic,e),await this.setExpiry(t.topic,t.expiry),c&&await this.client.core.pairing.updateMetadata({topic:c,metadata:t.peer.metadata}),this.cleanupDuplicatePairings(e),y(e)}}));const g=await this.sendRequest({topic:c,method:"wc_sessionPropose",params:h,throwOnFailedPublish:!0});return await this.setProposal(g,I$3({id:g},h)),{uri:s,approval:m}},this.pair=async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{return await this.client.core.pairing.pair(e)}catch(t){throw this.client.logger.error("pair() failed"),t}},this.approve=async e=>{var t,r,n;const o=this.client.core.eventClient.createEvent({properties:{topic:null==(t=null==e?void 0:e.id)?void 0:t.toString(),trace:[Is$1.session_approve_started]}});try{this.isInitialized(),await this.confirmOnlineStateOrThrow()}catch(I){throw o.setError(Ts$1.no_internet_connection),I}try{await this.isValidProposalId(null==e?void 0:e.id)}catch(I){throw this.client.logger.error(`approve() -> proposal.get(${null==e?void 0:e.id}) failed`),o.setError(Ts$1.proposal_not_found),I}try{await this.isValidApprove(e)}catch(I){throw this.client.logger.error("approve() -> isValidApprove() failed"),o.setError(Ts$1.session_approve_namespace_validation_failure),I}const{id:i,relayProtocol:a,namespaces:s,sessionProperties:c,sessionConfig:u}=e,l=this.client.proposal.get(i);this.client.core.eventClient.deleteEvent({eventId:o.eventId});const{pairingTopic:d,proposer:f,requiredNamespaces:h,optionalNamespaces:p}=l;let y=null==(r=this.client.core.eventClient)?void 0:r.getEvent({topic:d});y||(y=null==(n=this.client.core.eventClient)?void 0:n.createEvent({type:Is$1.session_approve_started,properties:{topic:d,trace:[Is$1.session_approve_started,Is$1.session_namespaces_validation_success]}}));const m=await this.client.core.crypto.generateKeyPair(),g=f.publicKey,b=await this.client.core.crypto.generateSharedKey(m,g),v=I$3(I$3({relay:{protocol:a??"irn"},namespaces:s,controller:{publicKey:m,metadata:this.client.metadata},expiry:Mt$1(z$4)},c&&{sessionProperties:c}),u&&{sessionConfig:u}),w=M$3.relay;y.addTrace(Is$1.subscribing_session_topic);try{await this.client.core.relayer.subscribe(b,{transportType:w})}catch(I){throw y.setError(Ts$1.subscribe_session_topic_failure),I}y.addTrace(Is$1.subscribe_session_topic_success);const _=D$4(I$3({},v),{topic:b,requiredNamespaces:h,optionalNamespaces:p,pairingTopic:d,acknowledged:!1,self:v.controller,peer:{publicKey:f.publicKey,metadata:f.metadata},controller:m,transportType:M$3.relay});await this.client.session.set(b,_),y.addTrace(Is$1.store_session);try{y.addTrace(Is$1.publishing_session_settle),await this.sendRequest({topic:b,method:"wc_sessionSettle",params:v,throwOnFailedPublish:!0}).catch((e=>{throw null==y||y.setError(Ts$1.session_settle_publish_failure),e})),y.addTrace(Is$1.session_settle_publish_success),y.addTrace(Is$1.publishing_session_approve),await this.sendResult({id:i,topic:d,result:{relay:{protocol:a??"irn"},responderPublicKey:m},throwOnFailedPublish:!0}).catch((e=>{throw null==y||y.setError(Ts$1.session_approve_publish_failure),e})),y.addTrace(Is$1.session_approve_publish_success)}catch(I){throw this.client.logger.error(I),this.client.session.delete(b,U$2("USER_DISCONNECTED")),await this.client.core.relayer.unsubscribe(b),I}return this.client.core.eventClient.deleteEvent({eventId:y.eventId}),await this.client.core.pairing.updateMetadata({topic:d,metadata:f.metadata}),await this.client.proposal.delete(i,U$2("USER_DISCONNECTED")),await this.client.core.pairing.activate({topic:d}),await this.setExpiry(b,Mt$1(z$4)),{topic:b,acknowledged:()=>Promise.resolve(this.client.session.get(b))}},this.reject=async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidReject(e)}catch(o){throw this.client.logger.error("reject() -> isValidReject() failed"),o}const{id:t,reason:r}=e;let n;try{n=this.client.proposal.get(t).pairingTopic}catch(o){throw this.client.logger.error(`reject() -> proposal.get(${t}) failed`),o}n&&(await this.sendError({id:t,topic:n,error:r,rpcOpts:v$3.wc_sessionPropose.reject}),await this.client.proposal.delete(t,U$2("USER_DISCONNECTED")))},this.update=async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidUpdate(e)}catch(u){throw this.client.logger.error("update() -> isValidUpdate() failed"),u}const{topic:t,namespaces:r}=e,{done:n,resolve:o,reject:i}=_t$1(),a=payloadId(),s=getBigIntRpcId().toString(),c=this.client.session.get(t).namespaces;return this.events.once(Lt$1("session_update",a),(({error:e})=>{e?i(e):o()})),await this.client.session.update(t,{namespaces:r}),await this.sendRequest({topic:t,method:"wc_sessionUpdate",params:{namespaces:r},throwOnFailedPublish:!0,clientRpcId:a,relayRpcId:s}).catch((e=>{this.client.logger.error(e),this.client.session.update(t,{namespaces:c}),i(e)})),{acknowledged:n}},this.extend=async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidExtend(e)}catch(a){throw this.client.logger.error("extend() -> isValidExtend() failed"),a}const{topic:t}=e,r=payloadId(),{done:n,resolve:o,reject:i}=_t$1();return this.events.once(Lt$1("session_extend",r),(({error:e})=>{e?i(e):o()})),await this.setExpiry(t,Mt$1(z$4)),this.sendRequest({topic:t,method:"wc_sessionExtend",params:{},clientRpcId:r,throwOnFailedPublish:!0}).catch((e=>{i(e)})),{acknowledged:n}},this.request=async e=>{this.isInitialized();try{await this.isValidRequest(e)}catch(f){throw this.client.logger.error("request() -> isValidRequest() failed"),f}const{chainId:t,request:r,topic:n,expiry:o=v$3.wc_sessionRequest.req.ttl}=e,i=this.client.session.get(n);(null==i?void 0:i.transportType)===M$3.relay&&await this.confirmOnlineStateOrThrow();const a=payloadId(),s=getBigIntRpcId().toString(),{done:c,resolve:u,reject:l}=_t$1(o,"Request expired. Please try again.");this.events.once(Lt$1("session_request",a),(({error:e,result:t})=>{e?l(e):u(t)}));const d=this.getAppLinkIfEnabled(i.peer.metadata,i.transportType);return d?(await this.sendRequest({clientRpcId:a,relayRpcId:s,topic:n,method:"wc_sessionRequest",params:{request:D$4(I$3({},r),{expiryTimestamp:Mt$1(o)}),chainId:t},expiry:o,throwOnFailedPublish:!0,appLink:d}).catch((e=>l(e))),this.client.events.emit("session_request_sent",{topic:n,request:r,chainId:t,id:a}),await c()):await Promise.all([new Promise((async e=>{await this.sendRequest({clientRpcId:a,relayRpcId:s,topic:n,method:"wc_sessionRequest",params:{request:D$4(I$3({},r),{expiryTimestamp:Mt$1(o)}),chainId:t},expiry:o,throwOnFailedPublish:!0}).catch((e=>l(e))),this.client.events.emit("session_request_sent",{topic:n,request:r,chainId:t,id:a}),e()})),new Promise((async e=>{var t;if(null==(t=i.sessionConfig)||!t.disableDeepLink){const e=await qt$1(this.client.core.storage,xe);await Ft$1({id:a,topic:n,wcDeepLink:e})}e()})),c()]).then((e=>e[2]))},this.respond=async e=>{this.isInitialized(),await this.isValidRespond(e);const{topic:t,response:r}=e,{id:n}=r,o=this.client.session.get(t);o.transportType===M$3.relay&&await this.confirmOnlineStateOrThrow();const i=this.getAppLinkIfEnabled(o.peer.metadata,o.transportType);isJsonRpcResult(r)?await this.sendResult({id:n,topic:t,result:r.result,throwOnFailedPublish:!0,appLink:i}):isJsonRpcError(r)&&await this.sendError({id:n,topic:t,error:r.error,appLink:i}),this.cleanupAfterResponse(e)},this.ping=async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidPing(e)}catch(r){throw this.client.logger.error("ping() -> isValidPing() failed"),r}const{topic:t}=e;if(this.client.session.keys.includes(t)){const e=payloadId(),r=getBigIntRpcId().toString(),{done:n,resolve:o,reject:i}=_t$1();this.events.once(Lt$1("session_ping",e),(({error:e})=>{e?i(e):o()})),await Promise.all([this.sendRequest({topic:t,method:"wc_sessionPing",params:{},throwOnFailedPublish:!0,clientRpcId:e,relayRpcId:r}),n()])}else this.client.core.pairing.pairings.keys.includes(t)&&await this.client.core.pairing.ping({topic:t})},this.emit=async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow(),await this.isValidEmit(e);const{topic:t,event:r,chainId:n}=e,o=getBigIntRpcId().toString();await this.sendRequest({topic:t,method:"wc_sessionEvent",params:{event:r,chainId:n},throwOnFailedPublish:!0,relayRpcId:o})},this.disconnect=async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow(),await this.isValidDisconnect(e);const{topic:t}=e;if(this.client.session.keys.includes(t))await this.sendRequest({topic:t,method:"wc_sessionDelete",params:U$2("USER_DISCONNECTED"),throwOnFailedPublish:!0}),await this.deleteSession({topic:t,emitEvent:!1});else{if(!this.client.core.pairing.pairings.keys.includes(t)){const{message:e}=S$6("MISMATCHED_TOPIC",`Session or pairing topic not found: ${t}`);throw new Error(e)}await this.client.core.pairing.disconnect({topic:t})}},this.find=e=>(this.isInitialized(),this.client.session.getAll().filter((t=>zr$1(t,e)))),this.getPendingSessionRequests=()=>this.client.pendingRequest.getAll(),this.authenticate=async(e,t)=>{var r;this.isInitialized(),this.isValidAuthenticate(e);const n=t&&this.client.core.linkModeSupportedApps.includes(t)&&(null==(r=this.client.metadata.redirect)?void 0:r.linkMode),o=n?M$3.link_mode:M$3.relay;o===M$3.relay&&await this.confirmOnlineStateOrThrow();const{chains:i,statement:a="",uri:s,domain:c,nonce:u,type:l,exp:d,nbf:f,methods:h=[],expiry:p}=e,y=[...e.resources||[]],{topic:m,uri:g}=await this.client.core.pairing.create({methods:["wc_sessionAuthenticate"],transportType:o});this.client.logger.info({message:"Generated new pairing",pairing:{topic:m,uri:g}});const b=await this.client.core.crypto.generateKeyPair(),v=hr$1(b);if(await Promise.all([this.client.auth.authKeys.set(ae,{responseTopic:v,publicKey:b}),this.client.auth.pairingTopics.set(v,{topic:v,pairingTopic:m})]),await this.client.core.relayer.subscribe(v,{transportType:o}),this.client.logger.info(`sending request to new pairing topic: ${m}`),h.length>0){const{namespace:e}=re$1(i[0]);let t=ir$1(e,"request",h);Y$1(y)&&(t=cr$1(t,y.pop())),y.push(t)}const w=p&&p>v$3.wc_sessionAuthenticate.req.ttl?p:v$3.wc_sessionAuthenticate.req.ttl,_={authPayload:{type:l??"caip122",chains:i,statement:a,aud:s,domain:c,version:"1",nonce:u,iat:(new Date).toISOString(),exp:d,nbf:f,resources:y},requester:{publicKey:b,metadata:this.client.metadata},expiryTimestamp:Mt$1(w)},I={requiredNamespaces:{},optionalNamespaces:{eip155:{chains:i,methods:[...new Set(["personal_sign",...h])],events:["chainChanged","accountsChanged"]}},relays:[{protocol:"irn"}],pairingTopic:m,proposer:{publicKey:b,metadata:this.client.metadata},expiryTimestamp:Mt$1(v$3.wc_sessionPropose.req.ttl)},{done:T,resolve:k,reject:$}=_t$1(w,"Request expired"),S=async({error:e,session:t})=>{if(this.events.off(Lt$1("session_request",E),A),e)$(e);else if(t){t.self.publicKey=b,await this.client.session.set(t.topic,t),await this.setExpiry(t.topic,t.expiry),m&&await this.client.core.pairing.updateMetadata({topic:m,metadata:t.peer.metadata});const e=this.client.session.get(t.topic);await this.deleteProposal(C),k({session:e})}},A=async e=>{var r,n,i;if(await this.deletePendingAuthRequest(E,{message:"fulfilled",code:0}),e.error){const t=U$2("WC_METHOD_UNSUPPORTED","wc_sessionAuthenticate");return e.error.code===t.code?void 0:(this.events.off(Lt$1("session_connect"),S),$(e.error.message))}await this.deleteProposal(C),this.events.off(Lt$1("session_connect"),S);const{cacaos:a,responder:s}=e.result,c=[],u=[];for(const t of a){await nr$1({cacao:t,projectId:this.client.core.projectId})||(this.client.logger.error(t,"Signature verification failed"),$(U$2("SESSION_SETTLEMENT_FAILED","Signature verification failed")));const{p:e}=t,r=Y$1(e.resources),n=[ln$1(e.iss)],o=fe$1(e.iss);if(r){const e=ar$1(r),t=ur$1(r);c.push(...e),n.push(...t)}for(const t of n)u.push(`${t}:${o}`)}const l=await this.client.core.crypto.generateSharedKey(b,s.publicKey);let d;c.length>0&&(d={topic:l,acknowledged:!0,self:{publicKey:b,metadata:this.client.metadata},peer:s,controller:s.publicKey,expiry:Mt$1(z$4),requiredNamespaces:{},optionalNamespaces:{},relay:{protocol:"irn"},pairingTopic:m,namespaces:Jr$1([...new Set(c)],[...new Set(u)]),transportType:o},await this.client.core.relayer.subscribe(l,{transportType:o}),await this.client.session.set(l,d),m&&await this.client.core.pairing.updateMetadata({topic:m,metadata:s.metadata}),d=this.client.session.get(l)),null!=(r=this.client.metadata.redirect)&&r.linkMode&&null!=(n=s.metadata.redirect)&&n.linkMode&&null!=(i=s.metadata.redirect)&&i.universal&&t&&(this.client.core.addLinkModeSupportedApp(s.metadata.redirect.universal),this.client.session.update(l,{transportType:M$3.link_mode})),k({auths:a,session:d})},E=payloadId(),C=payloadId();let R;this.events.once(Lt$1("session_connect"),S),this.events.once(Lt$1("session_request",E),A);try{if(n){const e=formatJsonRpcRequest("wc_sessionAuthenticate",_,E);this.client.core.history.set(m,e);const r=await this.client.core.crypto.encode("",e,{type:M$4,encoding:lr$1});R=xr$1(t,m,r)}else await Promise.all([this.sendRequest({topic:m,method:"wc_sessionAuthenticate",params:_,expiry:e.expiry,throwOnFailedPublish:!0,clientRpcId:E}),this.sendRequest({topic:m,method:"wc_sessionPropose",params:I,expiry:v$3.wc_sessionPropose.req.ttl,throwOnFailedPublish:!0,clientRpcId:C})])}catch(O){throw this.events.off(Lt$1("session_connect"),S),this.events.off(Lt$1("session_request",E),A),O}return await this.setProposal(C,I$3({id:C},I)),await this.setAuthRequest(E,{request:D$4(I$3({},_),{verifyContext:{}}),pairingTopic:m,transportType:o}),{uri:R??g,response:T}},this.approveSessionAuthenticate=async e=>{const{id:t,auths:r}=e,n=this.client.core.eventClient.createEvent({properties:{topic:t.toString(),trace:[Cs.authenticated_session_approve_started]}});try{this.isInitialized()}catch(p){throw n.setError(Ps.no_internet_connection),p}const o=this.getPendingAuthRequest(t);if(!o)throw n.setError(Ps.authenticated_session_pending_request_not_found),new Error(`Could not find pending auth request with id ${t}`);const i=o.transportType||M$3.relay;i===M$3.relay&&await this.confirmOnlineStateOrThrow();const a=o.requester.publicKey,s=await this.client.core.crypto.generateKeyPair(),c=hr$1(a),u={type:D$5,receiverPublicKey:a,senderPublicKey:s},l=[],d=[];for(const y of r){if(!(await nr$1({cacao:y,projectId:this.client.core.projectId}))){n.setError(Ps.invalid_cacao);const e=U$2("SESSION_SETTLEMENT_FAILED","Signature verification failed");throw await this.sendError({id:t,topic:c,error:e,encodeOpts:u}),new Error(e.message)}n.addTrace(Cs.cacaos_verified);const{p:e}=y,r=Y$1(e.resources),o=[ln$1(e.iss)],i=fe$1(e.iss);if(r){const e=ar$1(r),t=ur$1(r);l.push(...e),o.push(...t)}for(const t of o)d.push(`${t}:${i}`)}const f=await this.client.core.crypto.generateSharedKey(s,a);let h;if(n.addTrace(Cs.create_authenticated_session_topic),(null==l?void 0:l.length)>0){h={topic:f,acknowledged:!0,self:{publicKey:s,metadata:this.client.metadata},peer:{publicKey:a,metadata:o.requester.metadata},controller:a,expiry:Mt$1(z$4),authentication:r,requiredNamespaces:{},optionalNamespaces:{},relay:{protocol:"irn"},pairingTopic:o.pairingTopic,namespaces:Jr$1([...new Set(l)],[...new Set(d)]),transportType:i},n.addTrace(Cs.subscribing_authenticated_session_topic);try{await this.client.core.relayer.subscribe(f,{transportType:i})}catch(p){throw n.setError(Ps.subscribe_authenticated_session_topic_failure),p}n.addTrace(Cs.subscribe_authenticated_session_topic_success),await this.client.session.set(f,h),n.addTrace(Cs.store_authenticated_session),await this.client.core.pairing.updateMetadata({topic:o.pairingTopic,metadata:o.requester.metadata})}n.addTrace(Cs.publishing_authenticated_session_approve);try{await this.sendResult({topic:c,id:t,result:{cacaos:r,responder:{publicKey:s,metadata:this.client.metadata}},encodeOpts:u,throwOnFailedPublish:!0,appLink:this.getAppLinkIfEnabled(o.requester.metadata,i)})}catch(p){throw n.setError(Ps.authenticated_session_approve_publish_failure),p}return await this.client.auth.requests.delete(t,{message:"fulfilled",code:0}),await this.client.core.pairing.activate({topic:o.pairingTopic}),this.client.core.eventClient.deleteEvent({eventId:n.eventId}),{session:h}},this.rejectSessionAuthenticate=async e=>{this.isInitialized();const{id:t,reason:r}=e,n=this.getPendingAuthRequest(t);if(!n)throw new Error(`Could not find pending auth request with id ${t}`);n.transportType===M$3.relay&&await this.confirmOnlineStateOrThrow();const o=n.requester.publicKey,i=await this.client.core.crypto.generateKeyPair(),a=hr$1(o),s={type:D$5,receiverPublicKey:o,senderPublicKey:i};await this.sendError({id:t,topic:a,error:r,encodeOpts:s,rpcOpts:v$3.wc_sessionAuthenticate.reject,appLink:this.getAppLinkIfEnabled(n.requester.metadata,n.transportType)}),await this.client.auth.requests.delete(t,{message:"rejected",code:0}),await this.client.proposal.delete(t,U$2("USER_DISCONNECTED"))},this.formatAuthMessage=e=>{this.isInitialized();const{request:t,iss:r}=e;return dn$1(t,r)},this.processRelayMessageCache=()=>{setTimeout((async()=>{if(0!==this.relayMessageCache.length)for(;this.relayMessageCache.length>0;)try{const e=this.relayMessageCache.shift();e&&await this.onRelayMessage(e)}catch(e2){this.client.logger.error(e2)}}),50)},this.cleanupDuplicatePairings=async e=>{if(e.pairingTopic)try{const t=this.client.core.pairing.pairings.get(e.pairingTopic),r=this.client.core.pairing.pairings.getAll().filter((r=>{var n,o;return(null==(n=r.peerMetadata)?void 0:n.url)&&(null==(o=r.peerMetadata)?void 0:o.url)===e.peer.metadata.url&&r.topic&&r.topic!==t.topic}));if(0===r.length)return;this.client.logger.info(`Cleaning up ${r.length} duplicate pairing(s)`),await Promise.all(r.map((e=>this.client.core.pairing.disconnect({topic:e.topic})))),this.client.logger.info("Duplicate pairings clean up finished")}catch(t){this.client.logger.error(t)}},this.deleteSession=async e=>{var t;const{topic:r,expirerHasDeleted:n=!1,emitEvent:o=!0,id:i=0}=e,{self:a}=this.client.session.get(r);await this.client.core.relayer.unsubscribe(r),await this.client.session.delete(r,U$2("USER_DISCONNECTED")),this.addToRecentlyDeleted(r,"session"),this.client.core.crypto.keychain.has(a.publicKey)&&await this.client.core.crypto.deleteKeyPair(a.publicKey),this.client.core.crypto.keychain.has(r)&&await this.client.core.crypto.deleteSymKey(r),n||this.client.core.expirer.del(r),this.client.core.storage.removeItem(xe).catch((e=>this.client.logger.warn(e))),this.getPendingSessionRequests().forEach((e=>{e.topic===r&&this.deletePendingSessionRequest(e.id,U$2("USER_DISCONNECTED"))})),r===(null==(t=this.sessionRequestQueue.queue[0])?void 0:t.topic)&&(this.sessionRequestQueue.state=x$3.idle),o&&this.client.events.emit("session_delete",{id:i,topic:r})},this.deleteProposal=async(e,t)=>{if(t)try{const t=this.client.proposal.get(e),r=this.client.core.eventClient.getEvent({topic:t.pairingTopic});null==r||r.setError(Ts$1.proposal_expired)}catch{}await Promise.all([this.client.proposal.delete(e,U$2("USER_DISCONNECTED")),t?Promise.resolve():this.client.core.expirer.del(e)]),this.addToRecentlyDeleted(e,"proposal")},this.deletePendingSessionRequest=async(e,t,r=!1)=>{await Promise.all([this.client.pendingRequest.delete(e,t),r?Promise.resolve():this.client.core.expirer.del(e)]),this.addToRecentlyDeleted(e,"request"),this.sessionRequestQueue.queue=this.sessionRequestQueue.queue.filter((t=>t.id!==e)),r&&(this.sessionRequestQueue.state=x$3.idle,this.client.events.emit("session_request_expire",{id:e}))},this.deletePendingAuthRequest=async(e,t,r=!1)=>{await Promise.all([this.client.auth.requests.delete(e,t),r?Promise.resolve():this.client.core.expirer.del(e)])},this.setExpiry=async(e,t)=>{this.client.session.keys.includes(e)&&(this.client.core.expirer.set(e,t),await this.client.session.update(e,{expiry:t}))},this.setProposal=async(e,t)=>{this.client.core.expirer.set(e,Mt$1(v$3.wc_sessionPropose.req.ttl)),await this.client.proposal.set(e,t)},this.setAuthRequest=async(e,t)=>{const{request:r,pairingTopic:n,transportType:o=M$3.relay}=t;this.client.core.expirer.set(e,r.expiryTimestamp),await this.client.auth.requests.set(e,{authPayload:r.authPayload,requester:r.requester,expiryTimestamp:r.expiryTimestamp,id:e,pairingTopic:n,verifyContext:r.verifyContext,transportType:o})},this.setPendingSessionRequest=async e=>{const{id:t,topic:r,params:n,verifyContext:o}=e,i=n.request.expiryTimestamp||Mt$1(v$3.wc_sessionRequest.req.ttl);this.client.core.expirer.set(t,i),await this.client.pendingRequest.set(t,{id:t,topic:r,params:n,verifyContext:o})},this.sendRequest=async e=>{const{topic:t,method:r,params:n,expiry:o,relayRpcId:i,clientRpcId:a,throwOnFailedPublish:s,appLink:c}=e,u=formatJsonRpcRequest(r,n,a);let l;const d=!!c;try{const e=d?lr$1:ge;l=await this.client.core.crypto.encode(t,u,{encoding:e})}catch(p){throw await this.cleanup(),this.client.logger.error(`sendRequest() -> core.crypto.encode() for topic ${t} failed`),p}let f;if(at.includes(r)){const e=yr$1(JSON.stringify(u)),t=yr$1(l);f=await this.client.core.verify.register({id:t,decryptedId:e})}const h=v$3[r].req;if(h.attestation=f,o&&(h.ttl=o),i&&(h.id=i),this.client.core.history.set(t,u),d){const e=xr$1(c,t,l);await global$1.Linking.openURL(e,this.client.name)}else{const e=v$3[r].req;o&&(e.ttl=o),i&&(e.id=i),s?(e.internal=D$4(I$3({},e.internal),{throwOnFailedPublish:!0}),await this.client.core.relayer.publish(t,l,e)):this.client.core.relayer.publish(t,l,e).catch((e=>this.client.logger.error(e)))}return u.id},this.sendResult=async e=>{const{id:t,topic:r,result:n,throwOnFailedPublish:o,encodeOpts:i,appLink:a}=e,s=formatJsonRpcResult(t,n);let c;const u=a&&typeof(null==global$1?void 0:global$1.Linking)<"u";try{const e=u?lr$1:ge;c=await this.client.core.crypto.encode(r,s,D$4(I$3({},i||{}),{encoding:e}))}catch(d){throw await this.cleanup(),this.client.logger.error(`sendResult() -> core.crypto.encode() for topic ${r} failed`),d}let l;try{l=await this.client.core.history.get(r,t)}catch(d){throw this.client.logger.error(`sendResult() -> history.get(${r}, ${t}) failed`),d}if(u){const e=xr$1(a,r,c);await global$1.Linking.openURL(e,this.client.name)}else{const e=v$3[l.request.method].res;o?(e.internal=D$4(I$3({},e.internal),{throwOnFailedPublish:!0}),await this.client.core.relayer.publish(r,c,e)):this.client.core.relayer.publish(r,c,e).catch((e=>this.client.logger.error(e)))}await this.client.core.history.resolve(s)},this.sendError=async e=>{const{id:t,topic:r,error:n,encodeOpts:o,rpcOpts:i,appLink:a}=e,s=formatJsonRpcError(t,n);let c;const u=a&&typeof(null==global$1?void 0:global$1.Linking)<"u";try{const e=u?lr$1:ge;c=await this.client.core.crypto.encode(r,s,D$4(I$3({},o||{}),{encoding:e}))}catch(d){throw await this.cleanup(),this.client.logger.error(`sendError() -> core.crypto.encode() for topic ${r} failed`),d}let l;try{l=await this.client.core.history.get(r,t)}catch(d){throw this.client.logger.error(`sendError() -> history.get(${r}, ${t}) failed`),d}if(u){const e=xr$1(a,r,c);await global$1.Linking.openURL(e,this.client.name)}else{const e=i||v$3[l.request.method].res;this.client.core.relayer.publish(r,c,e)}await this.client.core.history.resolve(s)},this.cleanup=async()=>{const e=[],t=[];this.client.session.getAll().forEach((t=>{let r=!1;Kt$1(t.expiry)&&(r=!0),this.client.core.crypto.keychain.has(t.topic)||(r=!0),r&&e.push(t.topic)})),this.client.proposal.getAll().forEach((e=>{Kt$1(e.expiryTimestamp)&&t.push(e.id)})),await Promise.all([...e.map((e=>this.deleteSession({topic:e}))),...t.map((e=>this.deleteProposal(e)))])},this.onRelayEventRequest=async e=>{this.requestQueue.queue.push(e),await this.processRequestsQueue()},this.processRequestsQueue=async()=>{if(this.requestQueue.state!==x$3.active){for(this.client.logger.info(`Request queue starting with ${this.requestQueue.queue.length} requests`);this.requestQueue.queue.length>0;){this.requestQueue.state=x$3.active;const t=this.requestQueue.queue.shift();if(t)try{await this.processRequest(t)}catch(e){this.client.logger.warn(e)}}this.requestQueue.state=x$3.idle}else this.client.logger.info("Request queue already active, skipping...")},this.processRequest=async e=>{const{topic:t,payload:r,attestation:n,transportType:o,encryptedId:i}=e,a=r.method;if(!this.shouldIgnorePairingRequest({topic:t,requestMethod:a}))switch(a){case"wc_sessionPropose":return await this.onSessionProposeRequest({topic:t,payload:r,attestation:n,encryptedId:i});case"wc_sessionSettle":return await this.onSessionSettleRequest(t,r);case"wc_sessionUpdate":return await this.onSessionUpdateRequest(t,r);case"wc_sessionExtend":return await this.onSessionExtendRequest(t,r);case"wc_sessionPing":return await this.onSessionPingRequest(t,r);case"wc_sessionDelete":return await this.onSessionDeleteRequest(t,r);case"wc_sessionRequest":return await this.onSessionRequest({topic:t,payload:r,attestation:n,encryptedId:i,transportType:o});case"wc_sessionEvent":return await this.onSessionEventRequest(t,r);case"wc_sessionAuthenticate":return await this.onSessionAuthenticateRequest({topic:t,payload:r,attestation:n,encryptedId:i,transportType:o});default:return this.client.logger.info(`Unsupported request method ${a}`)}},this.onRelayEventResponse=async e=>{const{topic:t,payload:r,transportType:n}=e,o=(await this.client.core.history.get(t,r.id)).request.method;switch(o){case"wc_sessionPropose":return this.onSessionProposeResponse(t,r,n);case"wc_sessionSettle":return this.onSessionSettleResponse(t,r);case"wc_sessionUpdate":return this.onSessionUpdateResponse(t,r);case"wc_sessionExtend":return this.onSessionExtendResponse(t,r);case"wc_sessionPing":return this.onSessionPingResponse(t,r);case"wc_sessionRequest":return this.onSessionRequestResponse(t,r);case"wc_sessionAuthenticate":return this.onSessionAuthenticateResponse(t,r);default:return this.client.logger.info(`Unsupported response method ${o}`)}},this.onRelayEventUnknownPayload=e=>{const{topic:t}=e,{message:r}=S$6("MISSING_OR_INVALID",`Decoded payload on topic ${t} is not identifiable as a JSON-RPC request or a response.`);throw new Error(r)},this.shouldIgnorePairingRequest=e=>{const{topic:t,requestMethod:r}=e,n=this.expectedPairingMethodMap.get(t);return!(!n||n.includes(r))&&!!(n.includes("wc_sessionAuthenticate")&&this.client.events.listenerCount("session_authenticate")>0)},this.onSessionProposeRequest=async e=>{const{topic:t,payload:r,attestation:n,encryptedId:o}=e,{params:i,id:a}=r;try{const e=this.client.core.eventClient.getEvent({topic:t});this.isValidConnect(I$3({},r.params));const s=i.expiryTimestamp||Mt$1(v$3.wc_sessionPropose.req.ttl),c=I$3({id:a,pairingTopic:t,expiryTimestamp:s},i);await this.setProposal(a,c);const u=await this.getVerifyContext({attestationId:n,hash:yr$1(JSON.stringify(r)),encryptedId:o,metadata:c.proposer.metadata});0===this.client.events.listenerCount("session_proposal")&&(console.warn("No listener for session_proposal event"),null==e||e.setError($$3.proposal_listener_not_found)),null==e||e.addTrace(z$5.emit_session_proposal),this.client.events.emit("session_proposal",{id:a,params:c,verifyContext:u})}catch(s){await this.sendError({id:a,topic:t,error:s,rpcOpts:v$3.wc_sessionPropose.autoReject}),this.client.logger.error(s)}},this.onSessionProposeResponse=async(e,t,r)=>{const{id:n}=t;if(isJsonRpcResult(t)){const{result:o}=t;this.client.logger.trace({type:"method",method:"onSessionProposeResponse",result:o});const i=this.client.proposal.get(n);this.client.logger.trace({type:"method",method:"onSessionProposeResponse",proposal:i});const a=i.proposer.publicKey;this.client.logger.trace({type:"method",method:"onSessionProposeResponse",selfPublicKey:a});const s=o.responderPublicKey;this.client.logger.trace({type:"method",method:"onSessionProposeResponse",peerPublicKey:s});const c=await this.client.core.crypto.generateSharedKey(a,s);this.client.logger.trace({type:"method",method:"onSessionProposeResponse",sessionTopic:c});const u=await this.client.core.relayer.subscribe(c,{transportType:r});this.client.logger.trace({type:"method",method:"onSessionProposeResponse",subscriptionId:u}),await this.client.core.pairing.activate({topic:e})}else if(isJsonRpcError(t)){await this.client.proposal.delete(n,U$2("USER_DISCONNECTED"));const e=Lt$1("session_connect");if(0===this.events.listenerCount(e))throw new Error(`emitting ${e} without any listeners, 954`);this.events.emit(Lt$1("session_connect"),{error:t.error})}},this.onSessionSettleRequest=async(e,t)=>{const{id:r,params:n}=t;try{this.isValidSessionSettleRequest(n);const{relay:r,controller:o,expiry:i,namespaces:a,sessionProperties:s,sessionConfig:c}=t.params,u=D$4(I$3(I$3({topic:e,relay:r,expiry:i,namespaces:a,acknowledged:!0,pairingTopic:"",requiredNamespaces:{},optionalNamespaces:{},controller:o.publicKey,self:{publicKey:"",metadata:this.client.metadata},peer:{publicKey:o.publicKey,metadata:o.metadata}},s&&{sessionProperties:s}),c&&{sessionConfig:c}),{transportType:M$3.relay}),l=Lt$1("session_connect");if(0===this.events.listenerCount(l))throw new Error(`emitting ${l} without any listeners 997`);this.events.emit(Lt$1("session_connect"),{session:u}),await this.sendResult({id:t.id,topic:e,result:!0,throwOnFailedPublish:!0})}catch(o){await this.sendError({id:r,topic:e,error:o}),this.client.logger.error(o)}},this.onSessionSettleResponse=async(e,t)=>{const{id:r}=t;isJsonRpcResult(t)?(await this.client.session.update(e,{acknowledged:!0}),this.events.emit(Lt$1("session_approve",r),{})):isJsonRpcError(t)&&(await this.client.session.delete(e,U$2("USER_DISCONNECTED")),this.events.emit(Lt$1("session_approve",r),{error:t.error}))},this.onSessionUpdateRequest=async(e,t)=>{const{params:r,id:n}=t;try{const t=`${e}_session_update`,i=yo.get(t);if(i&&this.isRequestOutOfSync(i,n))return this.client.logger.info(`Discarding out of sync request - ${n}`),void this.sendError({id:n,topic:e,error:U$2("INVALID_UPDATE_REQUEST")});this.isValidUpdate(I$3({topic:e},r));try{yo.set(t,n),await this.client.session.update(e,{namespaces:r.namespaces}),await this.sendResult({id:n,topic:e,result:!0,throwOnFailedPublish:!0})}catch(o){throw yo.delete(t),o}this.client.events.emit("session_update",{id:n,topic:e,params:r})}catch(i){await this.sendError({id:n,topic:e,error:i}),this.client.logger.error(i)}},this.isRequestOutOfSync=(e,t)=>parseInt(t.toString().slice(0,-3))<=parseInt(e.toString().slice(0,-3)),this.onSessionUpdateResponse=(e,t)=>{const{id:r}=t,n=Lt$1("session_update",r);if(0===this.events.listenerCount(n))throw new Error(`emitting ${n} without any listeners`);isJsonRpcResult(t)?this.events.emit(Lt$1("session_update",r),{}):isJsonRpcError(t)&&this.events.emit(Lt$1("session_update",r),{error:t.error})},this.onSessionExtendRequest=async(e,t)=>{const{id:r}=t;try{this.isValidExtend({topic:e}),await this.setExpiry(e,Mt$1(z$4)),await this.sendResult({id:r,topic:e,result:!0,throwOnFailedPublish:!0}),this.client.events.emit("session_extend",{id:r,topic:e})}catch(n){await this.sendError({id:r,topic:e,error:n}),this.client.logger.error(n)}},this.onSessionExtendResponse=(e,t)=>{const{id:r}=t,n=Lt$1("session_extend",r);if(0===this.events.listenerCount(n))throw new Error(`emitting ${n} without any listeners`);isJsonRpcResult(t)?this.events.emit(Lt$1("session_extend",r),{}):isJsonRpcError(t)&&this.events.emit(Lt$1("session_extend",r),{error:t.error})},this.onSessionPingRequest=async(e,t)=>{const{id:r}=t;try{this.isValidPing({topic:e}),await this.sendResult({id:r,topic:e,result:!0,throwOnFailedPublish:!0}),this.client.events.emit("session_ping",{id:r,topic:e})}catch(n){await this.sendError({id:r,topic:e,error:n}),this.client.logger.error(n)}},this.onSessionPingResponse=(e,t)=>{const{id:r}=t,n=Lt$1("session_ping",r);if(0===this.events.listenerCount(n))throw new Error(`emitting ${n} without any listeners`);setTimeout((()=>{isJsonRpcResult(t)?this.events.emit(Lt$1("session_ping",r),{}):isJsonRpcError(t)&&this.events.emit(Lt$1("session_ping",r),{error:t.error})}),500)},this.onSessionDeleteRequest=async(e,t)=>{const{id:r}=t;try{this.isValidDisconnect({topic:e,reason:t.params}),Promise.all([new Promise((t=>{this.client.core.relayer.once(v$4.publish,(async()=>{t(await this.deleteSession({topic:e,id:r}))}))})),this.sendResult({id:r,topic:e,result:!0,throwOnFailedPublish:!0}),this.cleanupPendingSentRequestsForTopic({topic:e,error:U$2("USER_DISCONNECTED")})]).catch((e=>this.client.logger.error(e)))}catch(n){this.client.logger.error(n)}},this.onSessionRequest=async e=>{var t,r,n;const{topic:o,payload:i,attestation:a,encryptedId:s,transportType:c}=e,{id:u,params:l}=i;try{await this.isValidRequest(I$3({topic:o},l));const e=this.client.session.get(o),i={id:u,topic:o,params:l,verifyContext:await this.getVerifyContext({attestationId:a,hash:yr$1(JSON.stringify(formatJsonRpcRequest("wc_sessionRequest",l,u))),encryptedId:s,metadata:e.peer.metadata,transportType:c})};await this.setPendingSessionRequest(i),c===M$3.link_mode&&null!=(t=e.peer.metadata.redirect)&&t.universal&&this.client.core.addLinkModeSupportedApp(null==(r=e.peer.metadata.redirect)?void 0:r.universal),null!=(n=this.client.signConfig)&&n.disableRequestQueue?this.emitSessionRequest(i):(this.addSessionRequestToSessionRequestQueue(i),this.processSessionRequestQueue())}catch(d){await this.sendError({id:u,topic:o,error:d}),this.client.logger.error(d)}},this.onSessionRequestResponse=(e,t)=>{const{id:r}=t,n=Lt$1("session_request",r);if(0===this.events.listenerCount(n))throw new Error(`emitting ${n} without any listeners`);isJsonRpcResult(t)?this.events.emit(Lt$1("session_request",r),{result:t.result}):isJsonRpcError(t)&&this.events.emit(Lt$1("session_request",r),{error:t.error})},this.onSessionEventRequest=async(e,t)=>{const{id:r,params:n}=t;try{const t=`${e}_session_event_${n.event.name}`,o=yo.get(t);if(o&&this.isRequestOutOfSync(o,r))return void this.client.logger.info(`Discarding out of sync request - ${r}`);this.isValidEmit(I$3({topic:e},n)),this.client.events.emit("session_event",{id:r,topic:e,params:n}),yo.set(t,r)}catch(o){await this.sendError({id:r,topic:e,error:o}),this.client.logger.error(o)}},this.onSessionAuthenticateResponse=(e,t)=>{const{id:r}=t;this.client.logger.trace({type:"method",method:"onSessionAuthenticateResponse",topic:e,payload:t}),isJsonRpcResult(t)?this.events.emit(Lt$1("session_request",r),{result:t.result}):isJsonRpcError(t)&&this.events.emit(Lt$1("session_request",r),{error:t.error})},this.onSessionAuthenticateRequest=async e=>{var t;const{topic:r,payload:n,attestation:o,encryptedId:i,transportType:a}=e;try{const{requester:e,authPayload:s,expiryTimestamp:c}=n.params,u=await this.getVerifyContext({attestationId:o,hash:yr$1(JSON.stringify(n)),encryptedId:i,metadata:e.metadata,transportType:a}),l={requester:e,pairingTopic:r,id:n.id,authPayload:s,verifyContext:u,expiryTimestamp:c};await this.setAuthRequest(n.id,{request:l,pairingTopic:r,transportType:a}),a===M$3.link_mode&&null!=(t=e.metadata.redirect)&&t.universal&&this.client.core.addLinkModeSupportedApp(e.metadata.redirect.universal),this.client.events.emit("session_authenticate",{topic:r,params:n.params,id:n.id,verifyContext:u})}catch(s){this.client.logger.error(s);const e=n.params.requester.publicKey,t=await this.client.core.crypto.generateKeyPair(),o=this.getAppLinkIfEnabled(n.params.requester.metadata,a),i={type:D$5,receiverPublicKey:e,senderPublicKey:t};await this.sendError({id:n.id,topic:r,error:s,encodeOpts:i,rpcOpts:v$3.wc_sessionAuthenticate.autoReject,appLink:o})}},this.addSessionRequestToSessionRequestQueue=e=>{this.sessionRequestQueue.queue.push(e)},this.cleanupAfterResponse=e=>{this.deletePendingSessionRequest(e.response.id,{message:"fulfilled",code:0}),setTimeout((()=>{this.sessionRequestQueue.state=x$3.idle,this.processSessionRequestQueue()}),cjs$7.toMiliseconds(this.requestQueueDelay))},this.cleanupPendingSentRequestsForTopic=({topic:e,error:t})=>{const r=this.client.core.history.pending;r.length>0&&r.filter((t=>t.topic===e&&"wc_sessionRequest"===t.request.method)).forEach((e=>{const r=Lt$1("session_request",e.request.id);if(0===this.events.listenerCount(r))throw new Error(`emitting ${r} without any listeners`);this.events.emit(Lt$1("session_request",e.request.id),{error:t})}))},this.processSessionRequestQueue=()=>{if(this.sessionRequestQueue.state===x$3.active)return void this.client.logger.info("session request queue is already active.");const e=this.sessionRequestQueue.queue[0];if(e)try{this.sessionRequestQueue.state=x$3.active,this.emitSessionRequest(e)}catch(t){this.client.logger.error(t)}else this.client.logger.info("session request queue is empty.")},this.emitSessionRequest=e=>{this.client.events.emit("session_request",e)},this.onPairingCreated=e=>{if(e.methods&&this.expectedPairingMethodMap.set(e.topic,e.methods),e.active)return;const t=this.client.proposal.getAll().find((t=>t.pairingTopic===e.topic));t&&this.onSessionProposeRequest({topic:e.topic,payload:formatJsonRpcRequest("wc_sessionPropose",{requiredNamespaces:t.requiredNamespaces,optionalNamespaces:t.optionalNamespaces,relays:t.relays,proposer:t.proposer,sessionProperties:t.sessionProperties},t.id)})},this.isValidConnect=async e=>{if(!to(e)){const{message:t}=S$6("MISSING_OR_INVALID",`connect() params: ${JSON.stringify(e)}`);throw new Error(t)}const{pairingTopic:t,requiredNamespaces:r,optionalNamespaces:n,sessionProperties:o,relays:i}=e;if(I$5(t)||await this.isValidPairingTopic(t),!eo(i)){const{message:e}=S$6("MISSING_OR_INVALID",`connect() relays: ${i}`);throw new Error(e)}!I$5(r)&&0!==Z$3(r)&&this.validateNamespaces(r,"requiredNamespaces"),!I$5(n)&&0!==Z$3(n)&&this.validateNamespaces(n,"optionalNamespaces"),I$5(o)||this.validateSessionProps(o,"sessionProperties")},this.validateNamespaces=(e,t)=>{const r=Xr$1(e,"connect()",t);if(r)throw new Error(r.message)},this.isValidApprove=async e=>{if(!to(e))throw new Error(S$6("MISSING_OR_INVALID",`approve() params: ${e}`).message);const{id:t,namespaces:r,relayProtocol:n,sessionProperties:o}=e;this.checkRecentlyDeleted(t),await this.isValidProposalId(t);const i=this.client.proposal.get(t),a=Wn(r,"approve()");if(a)throw new Error(a.message);const s=zn(i.requiredNamespaces,r,"approve()");if(s)throw new Error(s.message);if(!b$4(n,!0)){const{message:e}=S$6("MISSING_OR_INVALID",`approve() relayProtocol: ${n}`);throw new Error(e)}I$5(o)||this.validateSessionProps(o,"sessionProperties")},this.isValidReject=async e=>{if(!to(e)){const{message:t}=S$6("MISSING_OR_INVALID",`reject() params: ${e}`);throw new Error(t)}const{id:t,reason:r}=e;if(this.checkRecentlyDeleted(t),await this.isValidProposalId(t),!ro(r)){const{message:e}=S$6("MISSING_OR_INVALID",`reject() reason: ${JSON.stringify(r)}`);throw new Error(e)}},this.isValidSessionSettleRequest=e=>{if(!to(e)){const{message:t}=S$6("MISSING_OR_INVALID",`onSessionSettleRequest() params: ${e}`);throw new Error(t)}const{relay:t,controller:r,namespaces:n,expiry:o}=e;if(!Jn(t)){const{message:e}=S$6("MISSING_OR_INVALID","onSessionSettleRequest() relay protocol should be a string");throw new Error(e)}const i=Zr$1(r,"onSessionSettleRequest()");if(i)throw new Error(i.message);const a=Wn(n,"onSessionSettleRequest()");if(a)throw new Error(a.message);if(Kt$1(o)){const{message:e}=S$6("EXPIRED","onSessionSettleRequest()");throw new Error(e)}},this.isValidUpdate=async e=>{if(!to(e)){const{message:t}=S$6("MISSING_OR_INVALID",`update() params: ${e}`);throw new Error(t)}const{topic:t,namespaces:r}=e;this.checkRecentlyDeleted(t),await this.isValidSessionTopic(t);const n=this.client.session.get(t),o=Wn(r,"update()");if(o)throw new Error(o.message);const i=zn(n.requiredNamespaces,r,"update()");if(i)throw new Error(i.message)},this.isValidExtend=async e=>{if(!to(e)){const{message:t}=S$6("MISSING_OR_INVALID",`extend() params: ${e}`);throw new Error(t)}const{topic:t}=e;this.checkRecentlyDeleted(t),await this.isValidSessionTopic(t)},this.isValidRequest=async e=>{if(!to(e)){const{message:t}=S$6("MISSING_OR_INVALID",`request() params: ${e}`);throw new Error(t)}const{topic:t,request:r,chainId:n,expiry:o}=e;this.checkRecentlyDeleted(t),await this.isValidSessionTopic(t);const{namespaces:i}=this.client.session.get(t);if(!co(i,n)){const{message:e}=S$6("MISSING_OR_INVALID",`request() chainId: ${n}`);throw new Error(e)}if(!oo(r)){const{message:e}=S$6("MISSING_OR_INVALID",`request() ${JSON.stringify(r)}`);throw new Error(e)}if(!ao(i,n,r.method)){const{message:e}=S$6("MISSING_OR_INVALID",`request() method: ${r.method}`);throw new Error(e)}if(o&&!po(o,me)){const{message:e}=S$6("MISSING_OR_INVALID",`request() expiry: ${o}. Expiry must be a number (in seconds) between ${me.min} and ${me.max}`);throw new Error(e)}},this.isValidRespond=async e=>{var t;if(!to(e)){const{message:t}=S$6("MISSING_OR_INVALID",`respond() params: ${e}`);throw new Error(t)}const{topic:r,response:n}=e;try{await this.isValidSessionTopic(r)}catch(o){throw null!=(t=null==e?void 0:e.response)&&t.id&&this.cleanupAfterResponse(e),o}if(!so(n)){const{message:e}=S$6("MISSING_OR_INVALID",`respond() response: ${JSON.stringify(n)}`);throw new Error(e)}},this.isValidPing=async e=>{if(!to(e)){const{message:t}=S$6("MISSING_OR_INVALID",`ping() params: ${e}`);throw new Error(t)}const{topic:t}=e;await this.isValidSessionOrPairingTopic(t)},this.isValidEmit=async e=>{if(!to(e)){const{message:t}=S$6("MISSING_OR_INVALID",`emit() params: ${e}`);throw new Error(t)}const{topic:t,event:r,chainId:n}=e;await this.isValidSessionTopic(t);const{namespaces:o}=this.client.session.get(t);if(!co(o,n)){const{message:e}=S$6("MISSING_OR_INVALID",`emit() chainId: ${n}`);throw new Error(e)}if(!io(r)){const{message:e}=S$6("MISSING_OR_INVALID",`emit() event: ${JSON.stringify(r)}`);throw new Error(e)}if(!uo(o,n,r.name)){const{message:e}=S$6("MISSING_OR_INVALID",`emit() event: ${JSON.stringify(r)}`);throw new Error(e)}},this.isValidDisconnect=async e=>{if(!to(e)){const{message:t}=S$6("MISSING_OR_INVALID",`disconnect() params: ${e}`);throw new Error(t)}const{topic:t}=e;await this.isValidSessionOrPairingTopic(t)},this.isValidAuthenticate=e=>{const{chains:t,uri:r,domain:n,nonce:o}=e;if(!Array.isArray(t)||0===t.length)throw new Error("chains is required and must be a non-empty array");if(!b$4(r,!1))throw new Error("uri is required parameter");if(!b$4(n,!1))throw new Error("domain is required parameter");if(!b$4(o,!1))throw new Error("nonce is required parameter");if([...new Set(t.map((e=>re$1(e).namespace)))].length>1)throw new Error("Multi-namespace requests are not supported. Please request single namespace only.");const{namespace:i}=re$1(t[0]);if("eip155"!==i)throw new Error("Only eip155 namespace is supported for authenticated sessions. Please use .connect() for non-eip155 chains.")},this.getVerifyContext=async e=>{const{attestationId:t,hash:r,encryptedId:n,metadata:o,transportType:i}=e,a={verified:{verifyUrl:o.verifyUrl||J$1,validation:"UNKNOWN",origin:o.url||""}};try{if(i===M$3.link_mode){const e=this.getAppLinkIfEnabled(o,i);return a.verified.validation=e&&new URL(e).origin===new URL(o.url).origin?"VALID":"INVALID",a}const e=await this.client.core.verify.resolve({attestationId:t,hash:r,encryptedId:n,verifyUrl:o.verifyUrl});e&&(a.verified.origin=e.origin,a.verified.isScam=e.isScam,a.verified.validation=e.origin===new URL(o.url).origin?"VALID":"INVALID")}catch(s){this.client.logger.warn(s)}return this.client.logger.debug(`Verify context: ${JSON.stringify(a)}`),a},this.validateSessionProps=(e,t)=>{Object.values(e).forEach((e=>{if(!b$4(e,!1)){const{message:r}=S$6("MISSING_OR_INVALID",`${t} must be in Record format. Received: ${JSON.stringify(e)}`);throw new Error(r)}}))},this.getPendingAuthRequest=e=>{const t=this.client.auth.requests.get(e);return"object"==typeof t?t:void 0},this.addToRecentlyDeleted=(e,t)=>{if(this.recentlyDeletedMap.set(e,t),this.recentlyDeletedMap.size>=this.recentlyDeletedLimit){let e=0;const t=this.recentlyDeletedLimit/2;for(const r of this.recentlyDeletedMap.keys()){if(e++>=t)break;this.recentlyDeletedMap.delete(r)}}},this.checkRecentlyDeleted=e=>{const t=this.recentlyDeletedMap.get(e);if(t){const{message:r}=S$6("MISSING_OR_INVALID",`Record was recently deleted - ${t}: ${e}`);throw new Error(r)}},this.isLinkModeEnabled=(e,t)=>{var r,n,o,i,a,s,c,u,l;return!(!e||t!==M$3.link_mode)&&(!0===(null==(n=null==(r=this.client.metadata)?void 0:r.redirect)?void 0:n.linkMode)&&void 0!==(null==(i=null==(o=this.client.metadata)?void 0:o.redirect)?void 0:i.universal)&&""!==(null==(s=null==(a=this.client.metadata)?void 0:a.redirect)?void 0:s.universal)&&void 0!==(null==(c=null==e?void 0:e.redirect)?void 0:c.universal)&&""!==(null==(u=null==e?void 0:e.redirect)?void 0:u.universal)&&!0===(null==(l=null==e?void 0:e.redirect)?void 0:l.linkMode)&&this.client.core.linkModeSupportedApps.includes(e.redirect.universal)&&typeof(null==global$1?void 0:global$1.Linking)<"u")},this.getAppLinkIfEnabled=(e,t)=>{var r;return this.isLinkModeEnabled(e,t)?null==(r=null==e?void 0:e.redirect)?void 0:r.universal:void 0},this.handleLinkModeMessage=({url:e})=>{if(!e||!e.includes("wc_ev")||!e.includes("topic"))return;const t=Bt$1(e,"topic")||"",r=decodeURIComponent(Bt$1(e,"wc_ev")||""),n=this.client.session.keys.includes(t);n&&this.client.session.update(t,{transportType:M$3.link_mode}),this.client.core.dispatchEnvelope({topic:t,message:r,sessionExists:n})},this.registerLinkModeListeners=async()=>{var e;if(Wt$1()||_$5()&&null!=(e=this.client.metadata.redirect)&&e.linkMode){const e=null==global$1?void 0:global$1.Linking;if(typeof e<"u"){e.addEventListener("url",this.handleLinkModeMessage,this.client.name);const t=await e.getInitialURL();t&&setTimeout((()=>{this.handleLinkModeMessage({url:t})}),50)}}}}isInitialized(){if(!this.initialized){const{message:e}=S$6("NOT_INITIALIZED",this.name);throw new Error(e)}}async confirmOnlineStateOrThrow(){await this.client.core.relayer.confirmOnlineStateOrThrow()}registerRelayerEvents(){this.client.core.relayer.on(v$4.message,(e=>{!this.initialized||this.relayMessageCache.length>0?this.relayMessageCache.push(e):this.onRelayMessage(e)}))}async onRelayMessage(e){const{topic:t,message:r,attestation:n,transportType:o}=e,{publicKey:i}=this.client.auth.authKeys.keys.includes(ae)?this.client.auth.authKeys.get(ae):{responseTopic:void 0,publicKey:void 0},a=await this.client.core.crypto.decode(t,r,{receiverPublicKey:i,encoding:o===M$3.link_mode?lr$1:ge});try{isJsonRpcRequest(a)?(this.client.core.history.set(t,a),this.onRelayEventRequest({topic:t,payload:a,attestation:n,transportType:o,encryptedId:yr$1(r)})):isJsonRpcResponse(a)?(await this.client.core.history.resolve(a),await this.onRelayEventResponse({topic:t,payload:a,transportType:o}),this.client.core.history.delete(t,a.id)):this.onRelayEventUnknownPayload({topic:t,payload:a,transportType:o})}catch(s){this.client.logger.error(s)}}registerExpirerEvents(){this.client.core.expirer.on(S$4.expired,(async e=>{const{topic:t,id:r}=Vt$1(e.target);return r&&this.client.pendingRequest.keys.includes(r)?await this.deletePendingSessionRequest(r,S$6("EXPIRED"),!0):r&&this.client.auth.requests.keys.includes(r)?await this.deletePendingAuthRequest(r,S$6("EXPIRED"),!0):void(t?this.client.session.keys.includes(t)&&(await this.deleteSession({topic:t,expirerHasDeleted:!0}),this.client.events.emit("session_expire",{topic:t})):r&&(await this.deleteProposal(r,!0),this.client.events.emit("proposal_expire",{id:r})))}))}registerPairingEvents(){this.client.core.pairing.events.on(V$2.create,(e=>this.onPairingCreated(e))),this.client.core.pairing.events.on(V$2.delete,(e=>{this.addToRecentlyDeleted(e.topic,"pairing")}))}isValidPairingTopic(e){if(!b$4(e,!1)){const{message:t}=S$6("MISSING_OR_INVALID",`pairing topic should be a string: ${e}`);throw new Error(t)}if(!this.client.core.pairing.pairings.keys.includes(e)){const{message:t}=S$6("NO_MATCHING_KEY",`pairing topic doesn't exist: ${e}`);throw new Error(t)}if(Kt$1(this.client.core.pairing.pairings.get(e).expiry)){const{message:t}=S$6("EXPIRED",`pairing topic: ${e}`);throw new Error(t)}}async isValidSessionTopic(e){if(!b$4(e,!1)){const{message:t}=S$6("MISSING_OR_INVALID",`session topic should be a string: ${e}`);throw new Error(t)}if(this.checkRecentlyDeleted(e),!this.client.session.keys.includes(e)){const{message:t}=S$6("NO_MATCHING_KEY",`session topic doesn't exist: ${e}`);throw new Error(t)}if(Kt$1(this.client.session.get(e).expiry)){await this.deleteSession({topic:e});const{message:t}=S$6("EXPIRED",`session topic: ${e}`);throw new Error(t)}if(!this.client.core.crypto.keychain.has(e)){const{message:t}=S$6("MISSING_OR_INVALID",`session topic does not exist in keychain: ${e}`);throw await this.deleteSession({topic:e}),new Error(t)}}async isValidSessionOrPairingTopic(e){if(this.checkRecentlyDeleted(e),this.client.session.keys.includes(e))await this.isValidSessionTopic(e);else{if(!this.client.core.pairing.pairings.keys.includes(e)){if(b$4(e,!1)){const{message:t}=S$6("NO_MATCHING_KEY",`session or pairing topic doesn't exist: ${e}`);throw new Error(t)}{const{message:t}=S$6("MISSING_OR_INVALID",`session or pairing topic should be a string: ${e}`);throw new Error(t)}}this.isValidPairingTopic(e)}}async isValidProposalId(e){if(!no(e)){const{message:t}=S$6("MISSING_OR_INVALID",`proposal id should be a number: ${e}`);throw new Error(t)}if(!this.client.proposal.keys.includes(e)){const{message:t}=S$6("NO_MATCHING_KEY",`proposal id doesn't exist: ${e}`);throw new Error(t)}if(Kt$1(this.client.proposal.get(e).expiryTimestamp)){await this.deleteProposal(e);const{message:t}=S$6("EXPIRED",`proposal id: ${e}`);throw new Error(t)}}}class Ss extends ni{constructor(e,t){super(e,t,st,ye),this.core=e,this.logger=t}}class yt extends ni{constructor(e,t){super(e,t,rt,ye),this.core=e,this.logger=t}}class Is extends ni{constructor(e,t){super(e,t,ot,ye,(e=>e.id)),this.core=e,this.logger=t}}class fs extends ni{constructor(e,t){super(e,t,pt$1,oe,(()=>ae)),this.core=e,this.logger=t}}class vs extends ni{constructor(e,t){super(e,t,ht,oe),this.core=e,this.logger=t}}class qs extends ni{constructor(e,t){super(e,t,dt,oe,(e=>e.id)),this.core=e,this.logger=t}}class Ts{constructor(e,t){this.core=e,this.logger=t,this.authKeys=new fs(this.core,this.logger),this.pairingTopics=new vs(this.core,this.logger),this.requests=new qs(this.core,this.logger)}async init(){await this.authKeys.init(),await this.pairingTopics.init(),await this.requests.init()}}class _e extends S$7{constructor(e){super(e),this.protocol=be,this.version=Ce,this.name=we.name,this.events=new eventsExports.EventEmitter,this.on=(e,t)=>this.events.on(e,t),this.once=(e,t)=>this.events.once(e,t),this.off=(e,t)=>this.events.off(e,t),this.removeListener=(e,t)=>this.events.removeListener(e,t),this.removeAllListeners=e=>this.events.removeAllListeners(e),this.connect=async e=>{try{return await this.engine.connect(e)}catch(t){throw this.logger.error(t.message),t}},this.pair=async e=>{try{return await this.engine.pair(e)}catch(t){throw this.logger.error(t.message),t}},this.approve=async e=>{try{return await this.engine.approve(e)}catch(t){throw this.logger.error(t.message),t}},this.reject=async e=>{try{return await this.engine.reject(e)}catch(t){throw this.logger.error(t.message),t}},this.update=async e=>{try{return await this.engine.update(e)}catch(t){throw this.logger.error(t.message),t}},this.extend=async e=>{try{return await this.engine.extend(e)}catch(t){throw this.logger.error(t.message),t}},this.request=async e=>{try{return await this.engine.request(e)}catch(t){throw this.logger.error(t.message),t}},this.respond=async e=>{try{return await this.engine.respond(e)}catch(t){throw this.logger.error(t.message),t}},this.ping=async e=>{try{return await this.engine.ping(e)}catch(t){throw this.logger.error(t.message),t}},this.emit=async e=>{try{return await this.engine.emit(e)}catch(t){throw this.logger.error(t.message),t}},this.disconnect=async e=>{try{return await this.engine.disconnect(e)}catch(t){throw this.logger.error(t.message),t}},this.find=e=>{try{return this.engine.find(e)}catch(t){throw this.logger.error(t.message),t}},this.getPendingSessionRequests=()=>{try{return this.engine.getPendingSessionRequests()}catch(e){throw this.logger.error(e.message),e}},this.authenticate=async(e,t)=>{try{return await this.engine.authenticate(e,t)}catch(r){throw this.logger.error(r.message),r}},this.formatAuthMessage=e=>{try{return this.engine.formatAuthMessage(e)}catch(t){throw this.logger.error(t.message),t}},this.approveSessionAuthenticate=async e=>{try{return await this.engine.approveSessionAuthenticate(e)}catch(t){throw this.logger.error(t.message),t}},this.rejectSessionAuthenticate=async e=>{try{return await this.engine.rejectSessionAuthenticate(e)}catch(t){throw this.logger.error(t.message),t}},this.name=(null==e?void 0:e.name)||we.name,this.metadata=(null==e?void 0:e.metadata)||Nt$1(),this.signConfig=null==e?void 0:e.signConfig;const t=typeof(null==e?void 0:e.logger)<"u"&&"string"!=typeof(null==e?void 0:e.logger)?e.logger:_i(k$5({level:(null==e?void 0:e.logger)||we.logger}));this.core=(null==e?void 0:e.core)||new bn(e),this.logger=E$5(t,this.name),this.session=new yt(this.core,this.logger),this.proposal=new Ss(this.core,this.logger),this.pendingRequest=new Is(this.core,this.logger),this.engine=new Rs(this),this.auth=new Ts(this.core,this.logger)}static async init(e){const t=new _e(e);return await t.initialize(),t}get context(){return y$7(this.logger)}get pairing(){return this.core.pairing.pairings}async initialize(){this.logger.trace("Initialized");try{await this.core.start(),await this.session.init(),await this.proposal.init(),await this.pendingRequest.init(),await this.auth.init(),await this.engine.init(),this.logger.info("SignClient Initialization Success"),this.engine.processRelayMessageCache()}catch(e){throw this.logger.info("SignClient Initialization Failure"),this.logger.error(e.message),e}}}var l$6={exports:{}},c$5="object"==typeof Reflect?Reflect:null,y$4=c$5&&"function"==typeof c$5.apply?c$5.apply:function(e,t,r){return Function.prototype.apply.call(e,t,r)},f$3;function k$3(e){console&&console.warn&&console.warn(e)}f$3=c$5&&"function"==typeof c$5.ownKeys?c$5.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var w$4=Number.isNaN||function(e){return e!=e};function o$7(){o$7.init.call(this)}l$6.exports=o$7,l$6.exports.once=K$1,o$7.EventEmitter=o$7,o$7.prototype._events=void 0,o$7.prototype._eventsCount=0,o$7.prototype._maxListeners=void 0;var L$3=10;function g$3(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function _$4(e){return void 0===e._maxListeners?o$7.defaultMaxListeners:e._maxListeners}function S$3(e,t,r,n){var o,i,a;if(g$3(r),void 0===(i=e._events)?(i=e._events=Object.create(null),e._eventsCount=0):(void 0!==i.newListener&&(e.emit("newListener",t,r.listener?r.listener:r),i=e._events),a=i[t]),void 0===a)a=i[t]=r,++e._eventsCount;else if("function"==typeof a?a=i[t]=n?[r,a]:[a,r]:n?a.unshift(r):a.push(r),(o=_$4(e))>0&&a.length>o&&!a.warned){a.warned=!0;var s=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");s.name="MaxListenersExceededWarning",s.emitter=e,s.type=t,s.count=a.length,k$3(s)}return e}function D$3(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function C$3(e,t,r){var n={fired:!1,wrapFn:void 0,target:e,type:t,listener:r},o=D$3.bind(n);return o.listener=r,n.wrapFn=o,o}function b$2(e,t,r){var n=e._events;if(void 0===n)return[];var o=n[t];return void 0===o?[]:"function"==typeof o?r?[o.listener||o]:[o]:r?z$3(o):O$1(o,o.length)}function E$4(e){var t=this._events;if(void 0!==t){var r=t[e];if("function"==typeof r)return 1;if(void 0!==r)return r.length}return 0}function O$1(e,t){for(var r=new Array(t),n=0;n0&&(i=t[0]),i instanceof Error)throw i;var a=new Error("Unhandled error."+(i?" ("+i.message+")":""));throw a.context=i,a}var s=o[e];if(void 0===s)return!1;if("function"==typeof s)y$4(s,this,t);else{var c=s.length,u=O$1(s,c);for(r=0;r=0;i--)if(r[i]===t||r[i].listener===t){a=r[i].listener,o=i;break}if(o<0)return this;0===o?r.shift():F$2(r,o),1===r.length&&(n[e]=r[0]),void 0!==n.removeListener&&this.emit("removeListener",e,a||t)}return this},o$7.prototype.off=o$7.prototype.removeListener,o$7.prototype.removeAllListeners=function(e){var t,r,n;if(void 0===(r=this._events))return this;if(void 0===r.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==r[e]&&(0==--this._eventsCount?this._events=Object.create(null):delete r[e]),this;if(0===arguments.length){var o,i=Object.keys(r);for(n=0;n=0;n--)this.removeListener(e,t[n]);return this},o$7.prototype.listeners=function(e){return b$2(this,e,!0)},o$7.prototype.rawListeners=function(e){return b$2(this,e,!1)},o$7.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):E$4.call(e,t)},o$7.prototype.listenerCount=E$4,o$7.prototype.eventNames=function(){return this._eventsCount>0?f$3(this._events):[]};var cjs$2={};Object.defineProperty(cjs$2,"__esModule",{value:!0});var getWindowMetadata_1=cjs$2.getWindowMetadata=void 0;const window_getters_1=cjs$6;function getWindowMetadata(){let e,t;try{e=window_getters_1.getDocumentOrThrow(),t=window_getters_1.getLocationOrThrow()}catch(e2){return null}function r(...t){const r=e.getElementsByTagName("meta");for(let e=0;en.getAttribute(e))).filter((e=>!!e&&t.includes(e)));if(o.length&&o){const e=n.getAttribute("content");if(e)return e}}return""}const n=function(){let t=r("name","og:site_name","og:title","twitter:title");return t||(t=e.title),t}();return{description:r("description","og:description","twitter:description","keywords"),url:t.origin,icons:function(){const r=e.getElementsByTagName("link"),n=[];for(let e=0;e-1){const e=o.getAttribute("href");if(e)if(-1===e.toLowerCase().indexOf("https:")&&-1===e.toLowerCase().indexOf("http:")&&0!==e.indexOf("//")){let r=t.protocol+"//"+t.host;if(0===e.indexOf("/"))r+=e;else{const n=t.pathname.split("/");n.pop();r+=n.join("/")+"/"+e}n.push(r)}else if(0===e.indexOf("//")){const r=t.protocol+e;n.push(r)}else n.push(e)}}return n}(),name:n}}getWindowMetadata_1=cjs$2.getWindowMetadata=getWindowMetadata;var cjs$1={};Object.defineProperty(cjs$1,"__esModule",{value:!0});var getLocalStorage_1=cjs$1.getLocalStorage=getLocalStorageOrThrow_1=cjs$1.getLocalStorageOrThrow=getCrypto_1=cjs$1.getCrypto=getCryptoOrThrow_1=cjs$1.getCryptoOrThrow=getLocation_1=cjs$1.getLocation=getLocationOrThrow_1=cjs$1.getLocationOrThrow=getNavigator_1=cjs$1.getNavigator=getNavigatorOrThrow_1=cjs$1.getNavigatorOrThrow=getDocument_1=cjs$1.getDocument=getDocumentOrThrow_1=cjs$1.getDocumentOrThrow=getFromWindowOrThrow_1=cjs$1.getFromWindowOrThrow=getFromWindow_1=cjs$1.getFromWindow=void 0;function getFromWindow$1(e){let t;return"undefined"!=typeof window&&void 0!==window[e]&&(t=window[e]),t}var getFromWindow_1=cjs$1.getFromWindow=getFromWindow$1;function getFromWindowOrThrow$1(e){const t=getFromWindow$1(e);if(!t)throw new Error(`${e} is not defined in Window`);return t}var getFromWindowOrThrow_1=cjs$1.getFromWindowOrThrow=getFromWindowOrThrow$1;function getDocumentOrThrow$1(){return getFromWindowOrThrow$1("document")}var getDocumentOrThrow_1=cjs$1.getDocumentOrThrow=getDocumentOrThrow$1;function getDocument$1(){return getFromWindow$1("document")}var getDocument_1=cjs$1.getDocument=getDocument$1;function getNavigatorOrThrow$1(){return getFromWindowOrThrow$1("navigator")}var getNavigatorOrThrow_1=cjs$1.getNavigatorOrThrow=getNavigatorOrThrow$1;function getNavigator$1(){return getFromWindow$1("navigator")}var getNavigator_1=cjs$1.getNavigator=getNavigator$1;function getLocationOrThrow$1(){return getFromWindowOrThrow$1("location")}var getLocationOrThrow_1=cjs$1.getLocationOrThrow=getLocationOrThrow$1;function getLocation$1(){return getFromWindow$1("location")}var getLocation_1=cjs$1.getLocation=getLocation$1;function getCryptoOrThrow$1(){return getFromWindowOrThrow$1("crypto")}var getCryptoOrThrow_1=cjs$1.getCryptoOrThrow=getCryptoOrThrow$1;function getCrypto$1(){return getFromWindow$1("crypto")}var getCrypto_1=cjs$1.getCrypto=getCrypto$1;function getLocalStorageOrThrow$1(){return getFromWindowOrThrow$1("localStorage")}var getLocalStorageOrThrow_1=cjs$1.getLocalStorageOrThrow=getLocalStorageOrThrow$1;function getLocalStorage$1(){return getFromWindow$1("localStorage")}getLocalStorage_1=cjs$1.getLocalStorage=getLocalStorage$1;var __spreadArrays=function(){for(var e=0,t=0,r=arguments.length;t1)}function isMobile$1(){return!!detectOS()&&(isAndroid()||isIOS())}function isNode$1(){const e=detectEnv();return!(!e||!e.name)&&"node"===e.name.toLowerCase()}function isBrowser(){return!isNode$1()&&!!getNavigator()}const getFromWindow=getFromWindow_1,getFromWindowOrThrow=getFromWindowOrThrow_1,getDocumentOrThrow=getDocumentOrThrow_1,getDocument=getDocument_1,getNavigatorOrThrow=getNavigatorOrThrow_1,getNavigator=getNavigator_1,getLocationOrThrow=getLocationOrThrow_1,getLocation=getLocation_1,getCryptoOrThrow=getCryptoOrThrow_1,getCrypto=getCrypto_1,getLocalStorageOrThrow=getLocalStorageOrThrow_1,getLocalStorage=getLocalStorage_1;function getClientMeta(){return getWindowMetadata_1()}function safeJsonParse$1(e){if("string"!=typeof e)throw new Error("Cannot safe json parse value of type "+typeof e);try{return JSON.parse(e)}catch(t){return e}}function safeJsonStringify$1(e){return"string"==typeof e?e:JSON.stringify(e)}const safeJsonParse=safeJsonParse$1,safeJsonStringify=safeJsonStringify$1;function setLocal(e,t){const r=safeJsonStringify(t),n=getLocalStorage();n&&n.setItem(e,r)}function getLocal(e){let t=null,r=null;const n=getLocalStorage();return n&&(r=n.getItem(e)),t=r?safeJsonParse(r):r,t}function removeLocal(e){const t=getLocalStorage();t&&t.removeItem(e)}const mobileLinkChoiceKey="WALLETCONNECT_DEEPLINK_CHOICE";function formatIOSMobile(e,t){const r=encodeURIComponent(e);return t.universalLink?`${t.universalLink}/wc?uri=${r}`:t.deepLink?`${t.deepLink}${t.deepLink.endsWith(":")?"//":"/"}wc?uri=${r}`:""}function saveMobileLinkInfo(e){const t=e.href.split("?")[0];setLocal(mobileLinkChoiceKey,Object.assign(Object.assign({},e),{href:t}))}function getMobileRegistryEntry(e,t){return e.filter((e=>e.name.toLowerCase().includes(t.toLowerCase())))[0]}function getMobileLinkRegistry(e,t){let r=e;return t&&(r=t.map((t=>getMobileRegistryEntry(e,t))).filter(Boolean)),r}const API_URL="https://registry.walletconnect.com";function getWalletRegistryUrl(){return API_URL+"/api/v2/wallets"}function getDappRegistryUrl(){return API_URL+"/api/v2/dapps"}function formatMobileRegistryEntry(e,t="mobile"){var r;return{name:e.name||"",shortName:e.metadata.shortName||"",color:e.metadata.colors.primary||"",logo:null!==(r=e.image_url.sm)&&void 0!==r?r:"",universalLink:e[t].universal||"",deepLink:e[t].native||""}}function formatMobileRegistry(e,t="mobile"){return Object.values(e).filter((e=>!!e[t].universal||!!e[t].native)).map((e=>formatMobileRegistryEntry(e,t)))}const esm=Object.freeze(Object.defineProperty({__proto__:null,detectEnv:detectEnv,detectOS:detectOS,formatIOSMobile:formatIOSMobile,formatMobileRegistry:formatMobileRegistry,formatMobileRegistryEntry:formatMobileRegistryEntry,getClientMeta:getClientMeta,getCrypto:getCrypto,getCryptoOrThrow:getCryptoOrThrow,getDappRegistryUrl:getDappRegistryUrl,getDocument:getDocument,getDocumentOrThrow:getDocumentOrThrow,getFromWindow:getFromWindow,getFromWindowOrThrow:getFromWindowOrThrow,getLocal:getLocal,getLocalStorage:getLocalStorage,getLocalStorageOrThrow:getLocalStorageOrThrow,getLocation:getLocation,getLocationOrThrow:getLocationOrThrow,getMobileLinkRegistry:getMobileLinkRegistry,getMobileRegistryEntry:getMobileRegistryEntry,getNavigator:getNavigator,getNavigatorOrThrow:getNavigatorOrThrow,getWalletRegistryUrl:getWalletRegistryUrl,isAndroid:isAndroid,isBrowser:isBrowser,isIOS:isIOS,isMobile:isMobile$1,isNode:isNode$1,mobileLinkChoiceKey:mobileLinkChoiceKey,removeLocal:removeLocal,safeJsonParse:safeJsonParse,safeJsonStringify:safeJsonStringify,saveMobileLinkInfo:saveMobileLinkInfo,setLocal:setLocal},Symbol.toStringTag,{value:"Module"})),require$$0=getAugmentedNamespace(esm);var browser$1={},canPromise$3=function(){return"function"==typeof Promise&&Promise.prototype&&Promise.prototype.then},qrcode$1={},typedarrayBuffer={},toString={}.toString,isarray=Array.isArray||function(e){return"[object Array]"==toString.call(e)},isArray$1=isarray;function typedArraySupport(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()}catch(e2){return!1}}Buffer$1.TYPED_ARRAY_SUPPORT=typedArraySupport();var K_MAX_LENGTH=Buffer$1.TYPED_ARRAY_SUPPORT?2147483647:1073741823;function Buffer$1(e,t,r){return Buffer$1.TYPED_ARRAY_SUPPORT||this instanceof Buffer$1?"number"==typeof e?allocUnsafe(this,e):from(this,e,t,r):new Buffer$1(e,t,r)}function checked(e){if(e>=K_MAX_LENGTH)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+K_MAX_LENGTH.toString(16)+" bytes");return 0|e}function isnan(e){return e!=e}function createBuffer(e,t){var r;return Buffer$1.TYPED_ARRAY_SUPPORT?(r=new Uint8Array(t)).__proto__=Buffer$1.prototype:(null===(r=e)&&(r=new Buffer$1(t)),r.length=t),r}function allocUnsafe(e,t){var r=createBuffer(e,t<0?0:0|checked(t));if(!Buffer$1.TYPED_ARRAY_SUPPORT)for(var n=0;n55295&&r<57344){if(!o){if(r>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(a+1===n){(t-=3)>-1&&i.push(239,191,189);continue}o=r;continue}if(r<56320){(t-=3)>-1&&i.push(239,191,189),o=r;continue}r=65536+(o-55296<<10|r-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,r<128){if((t-=1)<0)break;i.push(r)}else if(r<2048){if((t-=2)<0)break;i.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;i.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return i}function byteLength(e){return Buffer$1.isBuffer(e)?e.length:"undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer)?e.byteLength:("string"!=typeof e&&(e=""+e),0===e.length?0:utf8ToBytes(e).length)}function blitBuffer(e,t,r,n){for(var o=0;o=t.length||o>=e.length);++o)t[o+r]=e[o];return o}function utf8Write(e,t,r,n){return blitBuffer(utf8ToBytes(t,e.length-r),e,r,n)}function from(e,t,r,n){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?fromArrayBuffer(e,t,r,n):"string"==typeof t?fromString(e,t):fromObject(e,t)}Buffer$1.TYPED_ARRAY_SUPPORT&&(Buffer$1.prototype.__proto__=Uint8Array.prototype,Buffer$1.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&Buffer$1[Symbol.species]===Buffer$1&&Object.defineProperty(Buffer$1,Symbol.species,{value:null,configurable:!0,enumerable:!1,writable:!1})),Buffer$1.prototype.write=function(e,t,r){void 0===t||void 0===r&&"string"==typeof t?(r=this.length,t=0):isFinite(t)&&(t|=0,isFinite(r)?r|=0:r=void 0);var n=this.length-t;if((void 0===r||r>n)&&(r=n),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");return utf8Write(this,e,t,r)},Buffer$1.prototype.slice=function(e,t){var r,n=this.length;if((e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t=0;--o)e[o+t]=this[o+r];else if(i<1e3||!Buffer$1.TYPED_ARRAY_SUPPORT)for(o=0;o>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(o=t;o40)throw new Error('"version" should be in range from 1 to 40');return 4*e+17},utils$3.getSymbolTotalCodewords=function(e){return CODEWORDS_COUNT$1[e]},utils$3.getBCHDigit=function(e){for(var t=0;0!==e;)t++,e>>>=1;return t},utils$3.setToSJISFunction=function(e){if("function"!=typeof e)throw new Error('"toSJISFunc" is not a valid function.');toSJISFunction$1=e},utils$3.isKanjiModeEnabled=function(){return void 0!==toSJISFunction$1},utils$3.toSJIS=function(e){return toSJISFunction$1(e)};var errorCorrectionLevel$1={};function BitBuffer$3(){this.buffer=[],this.length=0}!function(e){e.L={bit:1},e.M={bit:0},e.Q={bit:3},e.H={bit:2},e.isValid=function(e){return e&&void 0!==e.bit&&e.bit>=0&&e.bit<4},e.from=function(t,r){if(e.isValid(t))return t;try{return function(t){if("string"!=typeof t)throw new Error("Param is not a string");switch(t.toLowerCase()){case"l":case"low":return e.L;case"m":case"medium":return e.M;case"q":case"quartile":return e.Q;case"h":case"high":return e.H;default:throw new Error("Unknown EC Level: "+t)}}(t)}catch(e2){return r}}}(errorCorrectionLevel$1),BitBuffer$3.prototype={get:function(e){var t=Math.floor(e/8);return 1==(this.buffer[t]>>>7-e%8&1)},put:function(e,t){for(var r=0;r>>t-r-1&1))},getLengthInBits:function(){return this.length},putBit:function(e){var t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),e&&(this.buffer[t]|=128>>>this.length%8),this.length++}};var bitBuffer$1=BitBuffer$3,BufferUtil$4=typedarrayBuffer;function BitMatrix$3(e){if(!e||e<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=e,this.data=BufferUtil$4.alloc(e*e),this.reservedBit=BufferUtil$4.alloc(e*e)}BitMatrix$3.prototype.set=function(e,t,r,n){var o=e*this.size+t;this.data[o]=r,n&&(this.reservedBit[o]=!0)},BitMatrix$3.prototype.get=function(e,t){return this.data[e*this.size+t]},BitMatrix$3.prototype.xor=function(e,t,r){this.data[e*this.size+t]^=r},BitMatrix$3.prototype.isReserved=function(e,t){return this.reservedBit[e*this.size+t]};var bitMatrix$1=BitMatrix$3,alignmentPattern$1={};!function(e){var t=utils$3.getSymbolSize;e.getRowColCoords=function(e){if(1===e)return[];for(var r=Math.floor(e/7)+2,n=t(e),o=145===n?26:2*Math.ceil((n-13)/(2*r-2)),i=[n-7],a=1;a=0&&e<=7},e.from=function(t){return e.isValid(t)?parseInt(t,10):void 0},e.getPenaltyN1=function(e){for(var r=e.size,n=0,o=0,i=0,a=null,s=null,c=0;c=5&&(n+=t+(o-5)),a=l,o=1),(l=e.get(u,c))===s?i++:(i>=5&&(n+=t+(i-5)),s=l,i=1)}o>=5&&(n+=t+(o-5)),i>=5&&(n+=t+(i-5))}return n},e.getPenaltyN2=function(e){for(var t=e.size,n=0,o=0;o=10&&(1488===o||93===o)&&r++,i=i<<1&2047|e.get(s,a),s>=10&&(1488===i||93===i)&&r++}return r*n},e.getPenaltyN4=function(e){for(var t=0,r=e.data.length,n=0;n=0;){for(var i=o[0],a=0;a0){var i=BufferUtil$2.alloc(this.degree);return n.copy(i,o),i}return n};var reedSolomonEncoder$1=ReedSolomonEncoder$3,version$1={},mode$1={},versionCheck$1={isValid:function(e){return!isNaN(e)&&e>=1&&e<=40}},regex$1={},numeric$1="[0-9]+",alphanumeric$1="[A-Z $%*+\\-./:]+",kanji$1="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+";kanji$1=kanji$1.replace(/u/g,"\\u");var byte$1="(?:(?![A-Z0-9 $%*+\\-./:]|"+kanji$1+")(?:.|[\r\n]))+";regex$1.KANJI=new RegExp(kanji$1,"g"),regex$1.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g"),regex$1.BYTE=new RegExp(byte$1,"g"),regex$1.NUMERIC=new RegExp(numeric$1,"g"),regex$1.ALPHANUMERIC=new RegExp(alphanumeric$1,"g");var TEST_KANJI$1=new RegExp("^"+kanji$1+"$"),TEST_NUMERIC$1=new RegExp("^"+numeric$1+"$"),TEST_ALPHANUMERIC$1=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");regex$1.testKanji=function(e){return TEST_KANJI$1.test(e)},regex$1.testNumeric=function(e){return TEST_NUMERIC$1.test(e)},regex$1.testAlphanumeric=function(e){return TEST_ALPHANUMERIC$1.test(e)},function(e){var t=versionCheck$1,r=regex$1;e.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},e.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},e.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},e.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},e.MIXED={bit:-1},e.getCharCountIndicator=function(e,r){if(!e.ccBits)throw new Error("Invalid mode: "+e);if(!t.isValid(r))throw new Error("Invalid version: "+r);return r>=1&&r<10?e.ccBits[0]:r<27?e.ccBits[1]:e.ccBits[2]},e.getBestModeForData=function(t){return r.testNumeric(t)?e.NUMERIC:r.testAlphanumeric(t)?e.ALPHANUMERIC:r.testKanji(t)?e.KANJI:e.BYTE},e.toString=function(e){if(e&&e.id)return e.id;throw new Error("Invalid mode")},e.isValid=function(e){return e&&e.bit&&e.ccBits},e.from=function(t,r){if(e.isValid(t))return t;try{return function(t){if("string"!=typeof t)throw new Error("Param is not a string");switch(t.toLowerCase()){case"numeric":return e.NUMERIC;case"alphanumeric":return e.ALPHANUMERIC;case"kanji":return e.KANJI;case"byte":return e.BYTE;default:throw new Error("Unknown mode: "+t)}}(t)}catch(e2){return r}}}(mode$1),function(e){var t=utils$3,r=errorCorrectionCode$1,n=errorCorrectionLevel$1,o=mode$1,i=versionCheck$1,a=isarray,s=t.getBCHDigit(7973);function c(e,t){return o.getCharCountIndicator(e,t)+4}function u(e,t){var r=0;return e.forEach((function(e){var n=c(e.mode,t);r+=n+e.getBitsLength()})),r}e.from=function(e,t){return i.isValid(e)?parseInt(e,10):t},e.getCapacity=function(e,n,a){if(!i.isValid(e))throw new Error("Invalid QR Code version");void 0===a&&(a=o.BYTE);var s=8*(t.getSymbolTotalCodewords(e)-r.getTotalCodewordsCount(e,n));if(a===o.MIXED)return s;var u=s-c(a,e);switch(a){case o.NUMERIC:return Math.floor(u/10*3);case o.ALPHANUMERIC:return Math.floor(u/11*2);case o.KANJI:return Math.floor(u/13);case o.BYTE:default:return Math.floor(u/8)}},e.getBestVersionForData=function(t,r){var i,s=n.from(r,n.M);if(a(t)){if(t.length>1)return function(t,r){for(var n=1;n<=40;n++)if(u(t,n)<=e.getCapacity(n,r,o.MIXED))return n}(t,s);if(0===t.length)return 1;i=t[0]}else i=t;return function(t,r,n){for(var o=1;o<=40;o++)if(r<=e.getCapacity(o,n,t))return o}(i.mode,i.getLength(),s)},e.getEncodedBits=function(e){if(!i.isValid(e)||e<7)throw new Error("Invalid QR Code version");for(var r=e<<12;t.getBCHDigit(r)-s>=0;)r^=7973<=0;)n^=G15$1<0&&(r=this.data.substr(t),n=parseInt(r,10),e.put(n,3*o+1))};var numericData$1=NumericData$1,Mode$8=mode$1,ALPHA_NUM_CHARS$1=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function AlphanumericData$1(e){this.mode=Mode$8.ALPHANUMERIC,this.data=e}AlphanumericData$1.getBitsLength=function(e){return 11*Math.floor(e/2)+e%2*6},AlphanumericData$1.prototype.getLength=function(){return this.data.length},AlphanumericData$1.prototype.getBitsLength=function(){return AlphanumericData$1.getBitsLength(this.data.length)},AlphanumericData$1.prototype.write=function(e){var t;for(t=0;t+2<=this.data.length;t+=2){var r=45*ALPHA_NUM_CHARS$1.indexOf(this.data[t]);r+=ALPHA_NUM_CHARS$1.indexOf(this.data[t+1]),e.put(r,11)}this.data.length%2&&e.put(ALPHA_NUM_CHARS$1.indexOf(this.data[t]),6)};var alphanumericData$1=AlphanumericData$1,BufferUtil$1=typedarrayBuffer,Mode$7=mode$1;function ByteData$1(e){this.mode=Mode$7.BYTE,this.data=BufferUtil$1.from(e)}ByteData$1.getBitsLength=function(e){return 8*e},ByteData$1.prototype.getLength=function(){return this.data.length},ByteData$1.prototype.getBitsLength=function(){return ByteData$1.getBitsLength(this.data.length)},ByteData$1.prototype.write=function(e){for(var t=0,r=this.data.length;t=33088&&r<=40956)r-=33088;else{if(!(r>=57408&&r<=60351))throw new Error("Invalid SJIS character: "+this.data[t]+"\nMake sure your charset is UTF-8");r-=49472}r=192*(r>>>8&255)+(255&r),e.put(r,13)}};var kanjiData$1=KanjiData$1,dijkstra={exports:{}};!function(e){var t={single_source_shortest_paths:function(e,r,n){var o={},i={};i[r]=0;var a,s,c,u,l,d,f,h=t.PriorityQueue.make();for(h.push(r,0);!h.empty();)for(c in s=(a=h.pop()).value,u=a.cost,l=e[s]||{})l.hasOwnProperty(c)&&(d=u+l[c],f=i[c],(void 0===i[c]||f>d)&&(i[c]=d,h.push(c,d),o[c]=s));if(void 0!==n&&void 0===i[n]){var p=["Could not find a path from ",r," to ",n,"."].join("");throw new Error(p)}return o},extract_shortest_path_from_predecessor_list:function(e,t){for(var r=[],n=t;n;)r.push(n),e[n],n=e[n];return r.reverse(),r},find_path:function(e,r,n){var o=t.single_source_shortest_paths(e,r,n);return t.extract_shortest_path_from_predecessor_list(o,n)},PriorityQueue:{make:function(e){var r,n=t.PriorityQueue,o={};for(r in e=e||{},n)n.hasOwnProperty(r)&&(o[r]=n[r]);return o.queue=[],o.sorter=e.sorter||n.default_sorter,o},default_sorter:function(e,t){return e.cost-t.cost},push:function(e,t){var r={value:e,cost:t};this.queue.push(r),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return 0===this.queue.length}}};e.exports=t}(dijkstra);var dijkstraExports=dijkstra.exports;!function(e){var t=mode$1,r=numericData$1,n=alphanumericData$1,o=byteData$1,i=kanjiData$1,a=regex$1,s=utils$3,c=dijkstraExports;function u(e){return unescape(encodeURIComponent(e)).length}function l(e,t,r){for(var n,o=[];null!==(n=e.exec(r));)o.push({data:n[0],index:n.index,mode:t,length:n[0].length});return o}function d(e){var r,n,o=l(a.NUMERIC,t.NUMERIC,e),i=l(a.ALPHANUMERIC,t.ALPHANUMERIC,e);return s.isKanjiModeEnabled()?(r=l(a.BYTE,t.BYTE,e),n=l(a.KANJI,t.KANJI,e)):(r=l(a.BYTE_KANJI,t.BYTE,e),n=[]),o.concat(i,r,n).sort((function(e,t){return e.index-t.index})).map((function(e){return{data:e.data,mode:e.mode,length:e.length}}))}function f(e,a){switch(a){case t.NUMERIC:return r.getBitsLength(e);case t.ALPHANUMERIC:return n.getBitsLength(e);case t.KANJI:return i.getBitsLength(e);case t.BYTE:return o.getBitsLength(e)}}function h(e,a){var c,u=t.getBestModeForData(e);if((c=t.from(a,u))!==t.BYTE&&c.bit=0?e[e.length-1]:null;return r&&r.mode===t.mode?(e[e.length-1].data+=t.data,e):(e.push(t),e)}),[])}(l))},e.rawSplit=function(t){return e.fromArray(d(t,s.isKanjiModeEnabled()))}}(segments$1);var BufferUtil=typedarrayBuffer,Utils$5=utils$3,ECLevel$2=errorCorrectionLevel$1,BitBuffer$2=bitBuffer$1,BitMatrix$2=bitMatrix$1,AlignmentPattern$1=alignmentPattern$1,FinderPattern$1=finderPattern$1,MaskPattern$1=maskPattern$1,ECCode$1=errorCorrectionCode$1,ReedSolomonEncoder$2=reedSolomonEncoder$1,Version$1=version$1,FormatInfo$1=formatInfo$1,Mode$5=mode$1,Segments$1=segments$1,isArray=isarray;function setupFinderPattern$1(e,t){for(var r=e.size,n=FinderPattern$1.getPositions(t),o=0;o=0&&s<=6&&(0===c||6===c)||c>=0&&c<=6&&(0===s||6===s)||s>=2&&s<=4&&c>=2&&c<=4?e.set(i+s,a+c,!0,!0):e.set(i+s,a+c,!1,!0))}function setupTimingPattern$1(e){for(var t=e.size,r=8;r>s&1),e.set(r,n,o,!0),e.set(n,r,o,!0)}function setupFormatInfo$1(e,t,r){var n,o,i=e.size,a=FormatInfo$1.getEncodedBits(t,r);for(n=0;n<15;n++)o=1==(a>>n&1),n<6?e.set(n,8,o,!0):n<8?e.set(n+1,8,o,!0):e.set(i-15+n,8,o,!0),n<8?e.set(8,i-n-1,o,!0):n<9?e.set(8,15-n-1+1,o,!0):e.set(8,15-n-1,o,!0);e.set(i-8,8,1,!0)}function setupData$1(e,t){for(var r=e.size,n=-1,o=r-1,i=7,a=0,s=r-1;s>0;s-=2)for(6===s&&s--;;){for(var c=0;c<2;c++)if(!e.isReserved(o,s-c)){var u=!1;a>>i&1)),e.set(o,s-c,u),-1===--i&&(a++,i=7)}if((o+=n)<0||r<=o){o-=n,n=-n;break}}}function createData$1(e,t,r){var n=new BitBuffer$2;r.forEach((function(t){n.put(t.mode.bit,4),n.put(t.getLength(),Mode$5.getCharCountIndicator(t.mode,e)),t.write(n)}));var o=8*(Utils$5.getSymbolTotalCodewords(e)-ECCode$1.getTotalCodewordsCount(e,t));for(n.getLengthInBits()+4<=o&&n.put(0,4);n.getLengthInBits()%8!=0;)n.putBit(0);for(var i=(o-n.getLengthInBits())/8,a=0;a=7&&setupVersionInfo$1(l,t),setupData$1(l,c),isNaN(n)&&(n=MaskPattern$1.getBestMask(l,setupFormatInfo$1.bind(null,l,r))),MaskPattern$1.applyMask(n,l),setupFormatInfo$1(l,r,n),{modules:l,version:t,errorCorrectionLevel:r,maskPattern:n,segments:o}}qrcode$1.create=function(e,t){if(void 0===e||""===e)throw new Error("No input text");var r,n,o=ECLevel$2.M;return void 0!==t&&(o=ECLevel$2.from(t.errorCorrectionLevel,ECLevel$2.M),r=Version$1.from(t.version),n=MaskPattern$1.from(t.maskPattern),t.toSJISFunc&&Utils$5.setToSJISFunction(t.toSJISFunc)),createSymbol$1(e,r,o,n)};var canvas$1={},utils$2={};!function(e){function t(e){if("number"==typeof e&&(e=e.toString()),"string"!=typeof e)throw new Error("Color should be defined as hex string");var t=e.slice().replace("#","").split("");if(t.length<3||5===t.length||t.length>8)throw new Error("Invalid hex color: "+e);3!==t.length&&4!==t.length||(t=Array.prototype.concat.apply([],t.map((function(e){return[e,e]})))),6===t.length&&t.push("F","F");var r=parseInt(t.join(""),16);return{r:r>>24&255,g:r>>16&255,b:r>>8&255,a:255&r,hex:"#"+t.slice(0,6).join("")}}e.getOptions=function(e){e||(e={}),e.color||(e.color={});var r=void 0===e.margin||null===e.margin||e.margin<0?4:e.margin,n=e.width&&e.width>=21?e.width:void 0,o=e.scale||4;return{width:n,scale:n?4:o,margin:r,color:{dark:t(e.color.dark||"#000000ff"),light:t(e.color.light||"#ffffffff")},type:e.type,rendererOpts:e.rendererOpts||{}}},e.getScale=function(e,t){return t.width&&t.width>=e+2*t.margin?t.width/(e+2*t.margin):t.scale},e.getImageWidth=function(t,r){var n=e.getScale(t,r);return Math.floor((t+2*r.margin)*n)},e.qrToImageData=function(t,r,n){for(var o=r.modules.size,i=r.modules.data,a=e.getScale(o,n),s=Math.floor((o+2*n.margin)*a),c=n.margin*a,u=[n.color.light,n.color.dark],l=0;l=c&&d>=c&&l0&&c>0&&e[s-1]||(n+=i?svgCmd$1("M",c+r,.5+u+r):svgCmd$1("m",o,0),o=0,i=!1),c+1':"",c="',u='viewBox="0 0 '+a+" "+a+'"',l=''+s+c+"\n";return"function"==typeof r&&r(null,l),l};var canPromise$2=canPromise$3,QRCode$2=qrcode$1,CanvasRenderer$1=canvas$1,SvgRenderer$1=svgTag$1;function renderCanvas$1(e,t,r,n,o){var i=[].slice.call(arguments,1),a=i.length,s="function"==typeof i[a-1];if(!s&&!canPromise$2())throw new Error("Callback required as last argument");if(!s){if(a<1)throw new Error("Too few arguments provided");return 1===a?(r=t,t=n=void 0):2!==a||t.getContext||(n=r,r=t,t=void 0),new Promise((function(o,i){try{var a=QRCode$2.create(r,n);o(e(a,t,n))}catch(e2){i(e2)}}))}if(a<2)throw new Error("Too few arguments provided");2===a?(o=r,r=t,t=n=void 0):3===a&&(t.getContext&&void 0===o?(o=n,n=void 0):(o=n,n=r,r=t,t=void 0));try{var c=QRCode$2.create(r,n);o(null,e(c,t,n))}catch(e2){o(e2)}}browser$1.create=QRCode$2.create,browser$1.toCanvas=renderCanvas$1.bind(null,CanvasRenderer$1.render),browser$1.toDataURL=renderCanvas$1.bind(null,CanvasRenderer$1.renderToDataURL),browser$1.toString=renderCanvas$1.bind(null,(function(e,t,r){return SvgRenderer$1.render(e,r)}));var toggleSelection=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,r=[],n=0;n3)for(r=[r],n=3;n2&&(t.children=c$4.slice.call(arguments,2)),r={},t)"key"!==n&&"ref"!==n&&(r[n]=t[n]);return p$2(e.type,r,t.key||e.key,t.ref||e.ref,null)}function M$2(e){var t={},r={__c:"__cC"+f$2++,__:e,Consumer:function(e,t){return e.children(t)},Provider:function(e){var n,o=this;return this.getChildContext||(n=[],this.getChildContext=function(){return t[r.__c]=o,t},this.shouldComponentUpdate=function(e){o.props.value!==e.value&&n.some((function(t){t.context=e.value,g$2(t)}))},this.sub=function(e){n.push(e);var t=e.componentWillUnmount;e.componentWillUnmount=function(){n.splice(n.indexOf(e),1),t&&t.call(e)}}),e.children}};return r.Consumer.contextType=r,r.Provider.__=r,r}n$6={__e:function(e,t){for(var r,n;t=t.__;)if((r=t.__c)&&!r.__)try{if(r.constructor&&null!=r.constructor.getDerivedStateFromError&&(n=!0,r.setState(r.constructor.getDerivedStateFromError(e))),null!=r.componentDidCatch&&(n=!0,r.componentDidCatch(e)),n)return g$2(r.__E=r)}catch(o){e=o}throw e}},m$2.prototype.setState=function(e,t){var r;r=this.__s!==this.state?this.__s:this.__s=a$3({},this.state),"function"==typeof e&&(e=e(r,this.props)),e&&a$3(r,e),null!=e&&this.__v&&(t&&this.__h.push(t),g$2(this))},m$2.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),g$2(this))},m$2.prototype.render=d$3,u$3=[],i$5=0,t$6="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,o$6=e$7,f$2=0;var t$5,u$2,r$3,i$4=0,o$5=[],c$3=n$6.__r,f$1=n$6.diffed,e$6=n$6.__c,a$2=n$6.unmount;function v$1(e,t){n$6.__h&&n$6.__h(u$2,e,i$4||t),i$4=0;var r=u$2.__H||(u$2.__H={__:[],__h:[]});return e>=r.__.length&&r.__.push({}),r.__[e]}function m$1(e){return i$4=1,p$1(E$2,e)}function p$1(e,t,r){var n=v$1(t$5++,2);return n.__c||(n.__c=u$2,n.__=[r?r(t):E$2(void 0,t),function(t){var r=e(n.__[0],t);n.__[0]!==r&&(n.__[0]=r,n.__c.setState({}))}]),n.__}function l$5(e,t){var r=v$1(t$5++,3);!n$6.__s&&x$1(r.__H,t)&&(r.__=e,r.__H=t,u$2.__H.__h.push(r))}function y$2(e,t){var r=v$1(t$5++,4);!n$6.__s&&x$1(r.__H,t)&&(r.__=e,r.__H=t,u$2.__h.push(r))}function d$2(e){return i$4=5,h$3((function(){return{current:e}}),[])}function s$5(e,t,r){i$4=6,y$2((function(){"function"==typeof e?e(t()):e&&(e.current=t())}),null==r?r:r.concat(e))}function h$3(e,t){var r=v$1(t$5++,7);return x$1(r.__H,t)?(r.__H=t,r.__h=e,r.__=e()):r.__}function T$2(e,t){return i$4=8,h$3((function(){return e}),t)}function w$2(e){var t=u$2.context[e.__c],r=v$1(t$5++,9);return r.__c=e,t?(null==r.__&&(r.__=!0,t.sub(u$2)),t.props.value):e.__}function A$2(e,t){n$6.useDebugValue&&n$6.useDebugValue(t?t(e):e)}function F$1(e){var t=v$1(t$5++,10),r=m$1();return t.__=e,u$2.componentDidCatch||(u$2.componentDidCatch=function(e){t.__&&t.__(e),r[1](e)}),[r[0],function(){r[1](void 0)}]}function _$2(){o$5.some((function(e){if(e.__P)try{e.__H.__h.forEach(g$1),e.__H.__h.forEach(q$1),e.__H.__h=[]}catch(t){return e.__H.__h=[],n$6.__e(t,e.__v),!0}})),o$5=[]}function g$1(e){e.t&&e.t()}function q$1(e){var t=e.__();"function"==typeof t&&(e.t=t)}function x$1(e,t){return!e||t.some((function(t,r){return t!==e[r]}))}function E$2(e,t){return"function"==typeof t?t(e):t}function E$1(e,t){for(var r in t)e[r]=t[r];return e}function w$1(e,t){for(var r in e)if("__source"!==r&&!(r in t))return!0;for(var n in t)if("__source"!==n&&e[n]!==t[n])return!0;return!1}n$6.__r=function(e){c$3&&c$3(e),t$5=0,(u$2=e.__c).__H&&(u$2.__H.__h.forEach(g$1),u$2.__H.__h.forEach(q$1),u$2.__H.__h=[])},n$6.diffed=function(e){f$1&&f$1(e);var t=e.__c;if(t){var r=t.__H;r&&r.__h.length&&(1!==o$5.push(t)&&r$3===n$6.requestAnimationFrame||((r$3=n$6.requestAnimationFrame)||function(e){var t,r=function(){clearTimeout(n),cancelAnimationFrame(t),setTimeout(e)},n=setTimeout(r,100);"undefined"!=typeof window&&(t=requestAnimationFrame(r))})(_$2))}},n$6.__c=function(e,t){t.some((function(e){try{e.__h.forEach(g$1),e.__h=e.__h.filter((function(e){return!e.__||q$1(e)}))}catch(r){t.some((function(e){e.__h&&(e.__h=[])})),t=[],n$6.__e(r,e.__v)}})),e$6&&e$6(e,t)},n$6.unmount=function(e){a$2&&a$2(e);var t=e.__c;if(t){var r=t.__H;if(r)try{r.__.forEach((function(e){return e.t&&e.t()}))}catch(n){n$6.__e(n,t.__v)}}};var C$1=function(e){var t,r;function n(t){var r;return(r=e.call(this,t)||this).isPureReactComponent=!0,r}return r=e,(t=n).prototype=Object.create(r.prototype),t.prototype.constructor=t,t.__proto__=r,n.prototype.shouldComponentUpdate=function(e,t){return w$1(this.props,e)||w$1(this.state,t)},n}(m$2);function _$1(e,t){function r(e){var r=this.props.ref,n=r==e.ref;return!n&&r&&(r.call?r(null):r.current=null),t?!t(this.props,e)||!n:w$1(this.props,e)}function n(t){return this.shouldComponentUpdate=r,h$4(e,E$1({},t))}return n.prototype.isReactComponent=!0,n.displayName="Memo("+(e.displayName||e.name)+")",n.t=!0,n}var A$1=n$6.__b;function S$2(e){function t(t){var r=E$1({},t);return delete r.ref,e(r,t.ref)}return t.prototype.isReactComponent=t.t=!0,t.displayName="ForwardRef("+(e.displayName||e.name)+")",t}n$6.__b=function(e){e.type&&e.type.t&&e.ref&&(e.props.ref=e.ref,e.ref=null),A$1&&A$1(e)};var k$1=function(e,t){return e?x$2(e).reduce((function(e,r,n){return e.concat(t(r,n))}),[]):null},R$1={map:k$1,forEach:k$1,count:function(e){return e?x$2(e).length:0},only:function(e){if(1!==(e=x$2(e)).length)throw new Error("Children.only() expects only one child.");return e[0]},toArray:x$2},F=n$6.__e;function N$1(e){return e&&((e=E$1({},e)).__c=null,e.__k=e.__k&&e.__k.map(N$1)),e}function U(){this.__u=0,this.o=null,this.__b=null}function M$1(e){var t=e.__.__c;return t&&t.u&&t.u(e)}function L$1(e){var t,r,n;function o(o){if(t||(t=e()).then((function(e){r=e.default||e}),(function(e){n=e})),n)throw n;if(!r)throw t;return h$4(r,o)}return o.displayName="Lazy",o.t=!0,o}function O(){this.i=null,this.l=null}n$6.__e=function(e,t,r){if(e.then)for(var n,o=t;o=o.__;)if((n=o.__c)&&n.__c)return n.__c(e,t.__c);F(e,t,r)},(U.prototype=new m$2).__c=function(e,t){var r=this;null==r.o&&(r.o=[]),r.o.push(t);var n=M$1(r.__v),o=!1,i=function(){o||(o=!0,n?n(a):a())};t.__c=t.componentWillUnmount,t.componentWillUnmount=function(){i(),t.__c&&t.__c()};var a=function(){var e;if(! --r.__u)for(r.__v.__k[0]=r.state.u,r.setState({u:r.__b=null});e=r.o.pop();)e.forceUpdate()};r.__u++||r.setState({u:r.__b=r.__v.__k[0]}),e.then(i,i)},U.prototype.render=function(e,t){return this.__b&&(this.__v.__k[0]=N$1(this.__b),this.__b=null),[h$4(m$2,null,t.u?null:e.children),t.u&&e.fallback]};var P$1=function(e,t,r){if(++r[1]===r[0]&&e.l.delete(t),e.props.revealOrder&&("t"!==e.props.revealOrder[0]||!e.l.size))for(r=e.i;r;){for(;r.length>3;)r.pop()();if(r[1]8?2.5:2.7)+"vw":"inherit";return React.createElement("a",{className:"walletconnect-connect__button__icon_anchor",href:r,onClick:i,rel:"noopener noreferrer",target:"_blank"},React.createElement("div",{className:"walletconnect-connect__button__icon",style:{background:"url('"+o+"') "+t,backgroundSize:"100%"}}),React.createElement("div",{style:{fontSize:a},className:"walletconnect-connect__button__text"},n))}var GRID_MIN_COUNT=5,LINKS_PER_PAGE=12;function LinkDisplay(e){var t=browserUtils.isAndroid(),r=React.useState(""),n=r[0],o=r[1],i=React.useState(""),a=i[0],s=i[1],c=React.useState(1),u=c[0],l=c[1],d=a?e.links.filter((function(e){return e.name.toLowerCase().includes(a.toLowerCase())})):e.links,f=e.errorMessage,h=a||d.length>GRID_MIN_COUNT,p=Math.ceil(d.length/LINKS_PER_PAGE),y=[(u-1)*LINKS_PER_PAGE+1,u*LINKS_PER_PAGE],m=d.length?d.filter((function(e,t){return t+1>=y[0]&&t+1<=y[1]})):[],g=!(t||!(p>1)),b=void 0;return React.createElement("div",null,React.createElement("p",{id:WALLETCONNECT_CTA_TEXT_ID,className:"walletconnect-qrcode__text"},t?e.text.connect_mobile_wallet:e.text.choose_preferred_wallet),!t&&React.createElement("input",{className:"walletconnect-search__input",placeholder:"Search",value:n,onChange:function(e){o(e.target.value),clearTimeout(b),e.target.value?b=setTimeout((function(){s(e.target.value),l(1)}),1e3):(o(""),s(""),l(1))}}),React.createElement("div",{className:"walletconnect-connect__buttons__wrapper"+(t?"__android":h&&d.length?"__wrap":"")},t?React.createElement(ConnectButton,{name:e.text.connect,color:DEFAULT_BUTTON_COLOR,href:e.uri,onClick:React.useCallback((function(){browserUtils.saveMobileLinkInfo({name:"Unknown",href:e.uri})}),[])}):m.length?m.map((function(t){var r=t.color,n=t.name,o=t.shortName,i=t.logo,a=browserUtils.formatIOSMobile(e.uri,t),s=React.useCallback((function(){browserUtils.saveMobileLinkInfo({name:n,href:a})}),[m]);return h?React.createElement(WalletIcon,{color:r,href:a,name:o||n,logo:i,onClick:s}):React.createElement(WalletButton,{color:r,href:a,name:n,logo:i,onClick:s})})):React.createElement(React.Fragment,null,React.createElement("p",null,f.length?e.errorMessage:e.links.length&&!d.length?e.text.no_wallets_found:e.text.loading))),g&&React.createElement("div",{className:"walletconnect-modal__footer"},Array(p).fill(0).map((function(e,t){var r=t+1,n=u===r;return React.createElement("a",{style:{margin:"auto 10px",fontWeight:n?"bold":"normal"},onClick:function(){return l(r)}},r)}))))}function Notification(e){var t=!!e.message.trim();return React.createElement("div",{className:"walletconnect-qrcode__notification"+(t?" notification__show":"")},e.message)}var formatQRCodeImage=function(e){try{var t="";return Promise.resolve(QRCode$1.toString(e,{margin:0,type:"svg"})).then((function(e){return"string"==typeof e&&(t=e.replace("0||React.useEffect((function(){!function(){try{if(t)return Promise.resolve();a(!0);var o=_catch((function(){var t=e.qrcodeModalOptions&&e.qrcodeModalOptions.registryUrl?e.qrcodeModalOptions.registryUrl:browserUtils.getWalletRegistryUrl();return Promise.resolve(fetch(t)).then((function(t){return Promise.resolve(t.json()).then((function(t){var o=t.listings,i=r?"mobile":"desktop",s=browserUtils.getMobileLinkRegistry(browserUtils.formatMobileRegistry(o,i),n);a(!1),u(!0),$(s.length?"":e.text.no_supported_wallets),I(s);var c=1===s.length;c&&(m(browserUtils.formatIOSMobile(e.uri,s[0])),f(!0)),v(c)}))}))}),(function(t){a(!1),u(!0),$(e.text.something_went_wrong),console.error(t)}));return Promise.resolve(o&&o.then?o.then((function(){})):void 0)}catch(e2){return Promise.reject(e2)}}()}))};S();var A=r?d:!d;return React.createElement("div",{id:WALLETCONNECT_MODAL_ID,className:"walletconnect-qrcode__base animated fadeIn"},React.createElement("div",{className:"walletconnect-modal__base"},React.createElement(Header,{onClose:e.onClose}),b&&d?React.createElement("div",{className:"walletconnect-modal__single_wallet"},React.createElement("a",{onClick:function(){return browserUtils.saveMobileLinkInfo({name:_[0].name,href:y})},href:y,rel:"noopener noreferrer",target:"_blank"},e.text.connect_with+" "+(b?_[0].name:"")+" ›")):t||i||!i&&_.length?React.createElement("div",{className:"walletconnect-modal__mobile__toggle"+(A?" right__selected":"")},React.createElement("div",{className:"walletconnect-modal__mobile__toggle_selector"}),r?React.createElement(React.Fragment,null,React.createElement("a",{onClick:function(){return f(!1),S()}},e.text.mobile),React.createElement("a",{onClick:function(){return f(!0)}},e.text.qrcode)):React.createElement(React.Fragment,null,React.createElement("a",{onClick:function(){return f(!0)}},e.text.qrcode),React.createElement("a",{onClick:function(){return f(!1),S()}},e.text.desktop))):null,React.createElement("div",null,d||!t&&!i&&!_.length?React.createElement(QRCodeDisplay,Object.assign({},h)):React.createElement(LinkDisplay,Object.assign({},h,{links:_,errorMessage:k})))))}var de={choose_preferred_wallet:"Wähle bevorzugte Wallet",connect_mobile_wallet:"Verbinde mit Mobile Wallet",scan_qrcode_with_wallet:"Scanne den QR-code mit einer WalletConnect kompatiblen Wallet",connect:"Verbinden",qrcode:"QR-Code",mobile:"Mobile",desktop:"Desktop",copy_to_clipboard:"In die Zwischenablage kopieren",copied_to_clipboard:"In die Zwischenablage kopiert!",connect_with:"Verbinden mit Hilfe von",loading:"Laden...",something_went_wrong:"Etwas ist schief gelaufen",no_supported_wallets:"Es gibt noch keine unterstützten Wallet",no_wallets_found:"keine Wallet gefunden"},en={choose_preferred_wallet:"Choose your preferred wallet",connect_mobile_wallet:"Connect to Mobile Wallet",scan_qrcode_with_wallet:"Scan QR code with a WalletConnect-compatible wallet",connect:"Connect",qrcode:"QR Code",mobile:"Mobile",desktop:"Desktop",copy_to_clipboard:"Copy to clipboard",copied_to_clipboard:"Copied to clipboard!",connect_with:"Connect with",loading:"Loading...",something_went_wrong:"Something went wrong",no_supported_wallets:"There are no supported wallets yet",no_wallets_found:"No wallets found"},es={choose_preferred_wallet:"Elige tu billetera preferida",connect_mobile_wallet:"Conectar a billetera móvil",scan_qrcode_with_wallet:"Escanea el código QR con una billetera compatible con WalletConnect",connect:"Conectar",qrcode:"Código QR",mobile:"Móvil",desktop:"Desktop",copy_to_clipboard:"Copiar",copied_to_clipboard:"Copiado!",connect_with:"Conectar mediante",loading:"Cargando...",something_went_wrong:"Algo salió mal",no_supported_wallets:"Todavía no hay billeteras compatibles",no_wallets_found:"No se encontraron billeteras"},fr={choose_preferred_wallet:"Choisissez votre portefeuille préféré",connect_mobile_wallet:"Se connecter au portefeuille mobile",scan_qrcode_with_wallet:"Scannez le QR code avec un portefeuille compatible WalletConnect",connect:"Se connecter",qrcode:"QR Code",mobile:"Mobile",desktop:"Desktop",copy_to_clipboard:"Copier",copied_to_clipboard:"Copié!",connect_with:"Connectez-vous à l'aide de",loading:"Chargement...",something_went_wrong:"Quelque chose a mal tourné",no_supported_wallets:"Il n'y a pas encore de portefeuilles pris en charge",no_wallets_found:"Aucun portefeuille trouvé"},ko={choose_preferred_wallet:"원하는 지갑을 선택하세요",connect_mobile_wallet:"모바일 지갑과 연결",scan_qrcode_with_wallet:"WalletConnect 지원 지갑에서 QR코드를 스캔하세요",connect:"연결",qrcode:"QR 코드",mobile:"모바일",desktop:"데스크탑",copy_to_clipboard:"클립보드에 복사",copied_to_clipboard:"클립보드에 복사되었습니다!",connect_with:"와 연결하다",loading:"로드 중...",something_went_wrong:"문제가 발생했습니다.",no_supported_wallets:"아직 지원되는 지갑이 없습니다",no_wallets_found:"지갑을 찾을 수 없습니다"},pt={choose_preferred_wallet:"Escolha sua carteira preferida",connect_mobile_wallet:"Conectar-se à carteira móvel",scan_qrcode_with_wallet:"Ler o código QR com uma carteira compatível com WalletConnect",connect:"Conectar",qrcode:"Código QR",mobile:"Móvel",desktop:"Desktop",copy_to_clipboard:"Copiar",copied_to_clipboard:"Copiado!",connect_with:"Ligar por meio de",loading:"Carregamento...",something_went_wrong:"Algo correu mal",no_supported_wallets:"Ainda não há carteiras suportadas",no_wallets_found:"Nenhuma carteira encontrada"},zh={choose_preferred_wallet:"选择你的钱包",connect_mobile_wallet:"连接至移动端钱包",scan_qrcode_with_wallet:"使用兼容 WalletConnect 的钱包扫描二维码",connect:"连接",qrcode:"二维码",mobile:"移动",desktop:"桌面",copy_to_clipboard:"复制到剪贴板",copied_to_clipboard:"复制到剪贴板成功!",connect_with:"通过以下方式连接",loading:"正在加载...",something_went_wrong:"出了问题",no_supported_wallets:"目前还没有支持的钱包",no_wallets_found:"没有找到钱包"},fa={choose_preferred_wallet:"کیف پول مورد نظر خود را انتخاب کنید",connect_mobile_wallet:"به کیف پول موبایل وصل شوید",scan_qrcode_with_wallet:"کد QR را با یک کیف پول سازگار با WalletConnect اسکن کنید",connect:"اتصال",qrcode:"کد QR",mobile:"سیار",desktop:"دسکتاپ",copy_to_clipboard:"کپی به کلیپ بورد",copied_to_clipboard:"در کلیپ بورد کپی شد!",connect_with:"ارتباط با",loading:"...بارگذاری",something_went_wrong:"مشکلی پیش آمد",no_supported_wallets:"هنوز هیچ کیف پول پشتیبانی شده ای وجود ندارد",no_wallets_found:"هیچ کیف پولی پیدا نشد"},languages={de:de,en:en,es:es,fr:fr,ko:ko,pt:pt,zh:zh,fa:fa};function injectStyleSheet(){var e=browserUtils.getDocumentOrThrow(),t=e.getElementById(WALLETCONNECT_STYLE_ID);t&&e.head.removeChild(t);var r=e.createElement("style");r.setAttribute("id",WALLETCONNECT_STYLE_ID),r.innerText=WALLETCONNECT_STYLE_SHEET,e.head.appendChild(r)}function renderWrapper(){var e=browserUtils.getDocumentOrThrow(),t=e.createElement("div");return t.setAttribute("id",WALLETCONNECT_WRAPPER_ID),e.body.appendChild(t),t}function triggerCloseAnimation(){var e=browserUtils.getDocumentOrThrow(),t=e.getElementById(WALLETCONNECT_MODAL_ID);t&&(t.className=t.className.replace("fadeIn","fadeOut"),setTimeout((function(){var t=e.getElementById(WALLETCONNECT_WRAPPER_ID);t&&e.body.removeChild(t)}),ANIMATION_DURATION))}function getWrappedCallback(e){return function(){triggerCloseAnimation(),e&&e()}}function getText(){var e=browserUtils.getNavigatorOrThrow().language.split("-")[0]||"en";return languages[e]||languages.en}function open$1(e,t,r){injectStyleSheet();var n=renderWrapper();React.render(React.createElement(Modal,{text:getText(),uri:e,onClose:getWrappedCallback(t),qrcodeModalOptions:r}),n)}function close$1(){triggerCloseAnimation()}var isNode=function(){return void 0!==process$1&&void 0!==process$1.versions&&void 0!==process$1.versions.node};function open$2(e,t,r){console.log(e),isNode()?open(e):open$1(e,t,r)}function close$2(){isNode()||close$1()}var index$1={open:open$2,close:close$2},cjs=index$1;const QRCodeModal=getDefaultExportFromCjs$1(cjs),t$4=Symbol(),s$4=Object.getPrototypeOf,c$2=new WeakMap,l$4=e=>e&&(c$2.has(e)?c$2.get(e):s$4(e)===Object.prototype||s$4(e)===Array.prototype),y$1=e=>l$4(e)&&e[t$4]||null,h$2=(e,t=!0)=>{c$2.set(e,t)},isObject=e=>"object"==typeof e&&null!==e,proxyStateMap=new WeakMap,refSet=new WeakSet,buildProxyFunction=(e=Object.is,t=(e,t)=>new Proxy(e,t),r=e=>isObject(e)&&!refSet.has(e)&&(Array.isArray(e)||!(Symbol.iterator in e))&&!(e instanceof WeakMap)&&!(e instanceof WeakSet)&&!(e instanceof Error)&&!(e instanceof Number)&&!(e instanceof Date)&&!(e instanceof String)&&!(e instanceof RegExp)&&!(e instanceof ArrayBuffer),n=e=>{switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:throw e}},o=new WeakMap,i=(e,t,r=n)=>{const a=o.get(e);if((null==a?void 0:a[0])===t)return a[1];const s=Array.isArray(e)?[]:Object.create(Object.getPrototypeOf(e));return h$2(s,!0),o.set(e,[t,s]),Reflect.ownKeys(e).forEach((t=>{if(Object.getOwnPropertyDescriptor(s,t))return;const n=Reflect.get(e,t),o={value:n,enumerable:!0,configurable:!0};if(refSet.has(n))h$2(n,!1);else if(n instanceof Promise)delete o.value,o.get=()=>r(n);else if(proxyStateMap.has(n)){const[e,t]=proxyStateMap.get(n);o.value=i(e,t(),r)}Object.defineProperty(s,t,o)})),Object.preventExtensions(s)},a=new WeakMap,s=[1,1],c=n=>{if(!isObject(n))throw new Error("object required");const o=a.get(n);if(o)return o;let u=s[0];const l=new Set,d=(e,t=++s[0])=>{u!==t&&(u=t,l.forEach((r=>r(e,t))))};let f=s[1];const h=e=>(t,r)=>{const n=[...t];n[1]=[e,...n[1]],d(n,r)},p=new Map,y=e=>{var t;const r=p.get(e);r&&(p.delete(e),null==(t=r[1])||t.call(r))},m=Array.isArray(n)?[]:Object.create(Object.getPrototypeOf(n)),g=t(m,{deleteProperty(e,t){const r=Reflect.get(e,t);y(t);const n=Reflect.deleteProperty(e,t);return n&&d(["delete",[t],r]),n},set(t,n,o,i){const s=Reflect.has(t,n),u=Reflect.get(t,n,i);if(s&&(e(u,o)||a.has(o)&&e(u,a.get(o))))return!0;y(n),isObject(o)&&(o=y$1(o)||o);let f=o;if(o instanceof Promise)o.then((e=>{o.status="fulfilled",o.value=e,d(["resolve",[n],e])})).catch((e=>{o.status="rejected",o.reason=e,d(["reject",[n],e])}));else{!proxyStateMap.has(o)&&r(o)&&(f=c(o));const e=!refSet.has(f)&&proxyStateMap.get(f);e&&((e,t)=>{if(l.size){const r=t[3](h(e));p.set(e,[t,r])}else p.set(e,[t])})(n,e)}return Reflect.set(t,n,f,i),d(["set",[n],o,u]),!0}});a.set(n,g);const b=[m,(e=++s[1])=>(f===e||l.size||(f=e,p.forEach((([t])=>{const r=t[1](e);r>u&&(u=r)}))),u),i,e=>{l.add(e),1===l.size&&p.forEach((([e,t],r)=>{const n=e[3](h(r));p.set(r,[e,n])}));return()=>{l.delete(e),0===l.size&&p.forEach((([e,t],r)=>{t&&(t(),p.set(r,[e]))}))}}];return proxyStateMap.set(g,b),Reflect.ownKeys(n).forEach((e=>{const t=Object.getOwnPropertyDescriptor(n,e);"value"in t&&(g[e]=n[e],delete t.value,delete t.writable),Object.defineProperty(m,e,t)})),g})=>[c,proxyStateMap,refSet,e,t,r,n,o,i,a,s],[defaultProxyFunction]=buildProxyFunction();function proxy(e={}){return defaultProxyFunction(e)}function subscribe(e,t,r){const n=proxyStateMap.get(e);let o;const i=[],a=n[3];let s=!1;const c=a((e=>{i.push(e),o||(o=Promise.resolve().then((()=>{o=void 0,s&&t(i.splice(0))})))}));return s=!0,()=>{s=!1,c()}}function snapshot(e,t){const r=proxyStateMap.get(e),[n,o,i]=r;return i(n,o(),t)}const state$7=proxy({history:["ConnectWallet"],view:"ConnectWallet",data:void 0}),RouterCtrl={state:state$7,subscribe:e=>subscribe(state$7,(()=>e(state$7))),push(e,t){e!==state$7.view&&(state$7.view=e,t&&(state$7.data=t),state$7.history.push(e))},reset(e){state$7.view=e,state$7.history=[e]},replace(e){state$7.history.length>1&&(state$7.history[state$7.history.length-1]=e,state$7.view=e)},goBack(){if(state$7.history.length>1){state$7.history.pop();const[e]=state$7.history.slice(-1);state$7.view=e}},setData(e){state$7.data=e}},CoreUtil={WALLETCONNECT_DEEPLINK_CHOICE:"WALLETCONNECT_DEEPLINK_CHOICE",WCM_VERSION:"WCM_VERSION",RECOMMENDED_WALLET_AMOUNT:9,isMobile:()=>"undefined"!=typeof window&&Boolean(window.matchMedia("(pointer:coarse)").matches||/Android|webOS|iPhone|iPad|iPod|BlackBerry|Opera Mini/u.test(navigator.userAgent)),isAndroid:()=>CoreUtil.isMobile()&&navigator.userAgent.toLowerCase().includes("android"),isIos(){const e=navigator.userAgent.toLowerCase();return CoreUtil.isMobile()&&(e.includes("iphone")||e.includes("ipad"))},isHttpUrl:e=>e.startsWith("http://")||e.startsWith("https://"),isArray:e=>Array.isArray(e)&&e.length>0,isTelegram:()=>"undefined"!=typeof window&&(Boolean(window.TelegramWebviewProxy)||Boolean(window.Telegram)||Boolean(window.TelegramWebviewProxyProto)),formatNativeUrl(e,t,r){if(CoreUtil.isHttpUrl(e))return this.formatUniversalUrl(e,t,r);let n=e;n.includes("://")||(n=e.replaceAll("/","").replaceAll(":",""),n=`${n}://`),n.endsWith("/")||(n=`${n}/`),this.setWalletConnectDeepLink(n,r);return`${n}wc?uri=${encodeURIComponent(t)}`},formatUniversalUrl(e,t,r){if(!CoreUtil.isHttpUrl(e))return this.formatNativeUrl(e,t,r);let n=e;if(n.startsWith("https://t.me")){const e=Buffer$2.from(t).toString("base64").replace(/[=]/g,"");n.endsWith("/")&&(n=n.slice(0,-1)),this.setWalletConnectDeepLink(n,r);const o=new URL(n);o.searchParams.set("startapp",e);return o.toString()}n.endsWith("/")||(n=`${n}/`),this.setWalletConnectDeepLink(n,r);return`${n}wc?uri=${encodeURIComponent(t)}`},wait:async e=>new Promise((t=>{setTimeout(t,e)})),openHref(e,t){const r=this.isTelegram()?"_blank":t;window.open(e,r,"noreferrer noopener")},setWalletConnectDeepLink(e,t){try{localStorage.setItem(CoreUtil.WALLETCONNECT_DEEPLINK_CHOICE,JSON.stringify({href:e,name:t}))}catch(e2){console.info("Unable to set WalletConnect deep link")}},setWalletConnectAndroidDeepLink(e){try{const[t]=e.split("?");localStorage.setItem(CoreUtil.WALLETCONNECT_DEEPLINK_CHOICE,JSON.stringify({href:t,name:"Android"}))}catch(e2){console.info("Unable to set WalletConnect android deep link")}},removeWalletConnectDeepLink(){try{localStorage.removeItem(CoreUtil.WALLETCONNECT_DEEPLINK_CHOICE)}catch(e2){console.info("Unable to remove WalletConnect deep link")}},setModalVersionInStorage(){try{"undefined"!=typeof localStorage&&localStorage.setItem(CoreUtil.WCM_VERSION,"2.7.0")}catch(e2){console.info("Unable to set Web3Modal version in storage")}},getWalletRouterData(){var e;const t=null==(e=RouterCtrl.state.data)?void 0:e.Wallet;if(!t)throw new Error('Missing "Wallet" view data');return t}},isEnabled="undefined"!=typeof location&&(location.hostname.includes("localhost")||location.protocol.includes("https")),state$6=proxy({enabled:isEnabled,userSessionId:"",events:[],connectedWalletId:void 0}),EventsCtrl={state:state$6,subscribe:e=>subscribe(state$6.events,(()=>e(snapshot(state$6.events[state$6.events.length-1])))),initialize(){state$6.enabled&&void 0!==(null==crypto?void 0:crypto.randomUUID)&&(state$6.userSessionId=crypto.randomUUID())},setConnectedWalletId(e){state$6.connectedWalletId=e},click(e){if(state$6.enabled){const t={type:"CLICK",name:e.name,userSessionId:state$6.userSessionId,timestamp:Date.now(),data:e};state$6.events.push(t)}},track(e){if(state$6.enabled){const t={type:"TRACK",name:e.name,userSessionId:state$6.userSessionId,timestamp:Date.now(),data:e};state$6.events.push(t)}},view(e){if(state$6.enabled){const t={type:"VIEW",name:e.name,userSessionId:state$6.userSessionId,timestamp:Date.now(),data:e};state$6.events.push(t)}}},state$5=proxy({chains:void 0,walletConnectUri:void 0,isAuth:!1,isCustomDesktop:!1,isCustomMobile:!1,isDataLoaded:!1,isUiLoaded:!1}),OptionsCtrl={state:state$5,subscribe:e=>subscribe(state$5,(()=>e(state$5))),setChains(e){state$5.chains=e},setWalletConnectUri(e){state$5.walletConnectUri=e},setIsCustomDesktop(e){state$5.isCustomDesktop=e},setIsCustomMobile(e){state$5.isCustomMobile=e},setIsDataLoaded(e){state$5.isDataLoaded=e},setIsUiLoaded(e){state$5.isUiLoaded=e},setIsAuth(e){state$5.isAuth=e}},state$4=proxy({projectId:"",mobileWallets:void 0,desktopWallets:void 0,walletImages:void 0,chains:void 0,enableAuthMode:!1,enableExplorer:!0,explorerExcludedWalletIds:void 0,explorerRecommendedWalletIds:void 0,termsOfServiceUrl:void 0,privacyPolicyUrl:void 0}),ConfigCtrl={state:state$4,subscribe:e=>subscribe(state$4,(()=>e(state$4))),setConfig(e){var t,r;EventsCtrl.initialize(),OptionsCtrl.setChains(e.chains),OptionsCtrl.setIsAuth(Boolean(e.enableAuthMode)),OptionsCtrl.setIsCustomMobile(Boolean(null==(t=e.mobileWallets)?void 0:t.length)),OptionsCtrl.setIsCustomDesktop(Boolean(null==(r=e.desktopWallets)?void 0:r.length)),CoreUtil.setModalVersionInStorage(),Object.assign(state$4,e)}};var __defProp$2$1=Object.defineProperty,__getOwnPropSymbols$2=Object.getOwnPropertySymbols,__hasOwnProp$2=Object.prototype.hasOwnProperty,__propIsEnum$2=Object.prototype.propertyIsEnumerable,__defNormalProp$2=(e,t,r)=>t in e?__defProp$2$1(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,__spreadValues$2=(e,t)=>{for(var r in t||(t={}))__hasOwnProp$2.call(t,r)&&__defNormalProp$2(e,r,t[r]);if(__getOwnPropSymbols$2)for(var r of __getOwnPropSymbols$2(t))__propIsEnum$2.call(t,r)&&__defNormalProp$2(e,r,t[r]);return e};const W3M_API="https://explorer-api.walletconnect.com",SDK_TYPE="wcm",SDK_VERSION="js-2.7.0";async function fetchListings(e,t){const r=__spreadValues$2({sdkType:SDK_TYPE,sdkVersion:SDK_VERSION},t),n=new URL(e,W3M_API);n.searchParams.append("projectId",ConfigCtrl.state.projectId),Object.entries(r).forEach((([e,t])=>{t&&n.searchParams.append(e,String(t))}));return(await fetch(n)).json()}const ExplorerUtil={getDesktopListings:async e=>fetchListings("/w3m/v1/getDesktopListings",e),getMobileListings:async e=>fetchListings("/w3m/v1/getMobileListings",e),getInjectedListings:async e=>fetchListings("/w3m/v1/getInjectedListings",e),getAllListings:async e=>fetchListings("/w3m/v1/getAllListings",e),getWalletImageUrl:e=>`${W3M_API}/w3m/v1/getWalletImage/${e}?projectId=${ConfigCtrl.state.projectId}&sdkType=${SDK_TYPE}&sdkVersion=${SDK_VERSION}`,getAssetImageUrl:e=>`${W3M_API}/w3m/v1/getAssetImage/${e}?projectId=${ConfigCtrl.state.projectId}&sdkType=${SDK_TYPE}&sdkVersion=${SDK_VERSION}`};var __defProp$1$1=Object.defineProperty,__getOwnPropSymbols$1=Object.getOwnPropertySymbols,__hasOwnProp$1=Object.prototype.hasOwnProperty,__propIsEnum$1=Object.prototype.propertyIsEnumerable,__defNormalProp$1=(e,t,r)=>t in e?__defProp$1$1(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,__spreadValues$1=(e,t)=>{for(var r in t||(t={}))__hasOwnProp$1.call(t,r)&&__defNormalProp$1(e,r,t[r]);if(__getOwnPropSymbols$1)for(var r of __getOwnPropSymbols$1(t))__propIsEnum$1.call(t,r)&&__defNormalProp$1(e,r,t[r]);return e};const isMobile=CoreUtil.isMobile(),state$3=proxy({wallets:{listings:[],total:0,page:1},search:{listings:[],total:0,page:1},recomendedWallets:[]}),ExplorerCtrl={state:state$3,async getRecomendedWallets(){const{explorerRecommendedWalletIds:e,explorerExcludedWalletIds:t}=ConfigCtrl.state;if("NONE"===e||"ALL"===t&&!e)return state$3.recomendedWallets;if(CoreUtil.isArray(e)){const t={recommendedIds:e.join(",")},{listings:r}=await ExplorerUtil.getAllListings(t),n=Object.values(r);n.sort(((t,r)=>e.indexOf(t.id)-e.indexOf(r.id))),state$3.recomendedWallets=n}else{const{chains:e,isAuth:r}=OptionsCtrl.state,n=null==e?void 0:e.join(","),o=CoreUtil.isArray(t),i={page:1,sdks:r?"auth_v1":void 0,entries:CoreUtil.RECOMMENDED_WALLET_AMOUNT,chains:n,version:2,excludedIds:o?t.join(","):void 0},{listings:a}=isMobile?await ExplorerUtil.getMobileListings(i):await ExplorerUtil.getDesktopListings(i);state$3.recomendedWallets=Object.values(a)}return state$3.recomendedWallets},async getWallets(e){const t=__spreadValues$1({},e),{explorerRecommendedWalletIds:r,explorerExcludedWalletIds:n}=ConfigCtrl.state,{recomendedWallets:o}=state$3;if("ALL"===n)return state$3.wallets;o.length?t.excludedIds=o.map((e=>e.id)).join(","):CoreUtil.isArray(r)&&(t.excludedIds=r.join(",")),CoreUtil.isArray(n)&&(t.excludedIds=[t.excludedIds,n].filter(Boolean).join(",")),OptionsCtrl.state.isAuth&&(t.sdks="auth_v1");const{page:i,search:a}=e,{listings:s,total:c}=isMobile?await ExplorerUtil.getMobileListings(t):await ExplorerUtil.getDesktopListings(t),u=Object.values(s),l=a?"search":"wallets";return state$3[l]={listings:[...state$3[l].listings,...u],total:c,page:null!=i?i:1},{listings:u,total:c}},getWalletImageUrl:e=>ExplorerUtil.getWalletImageUrl(e),getAssetImageUrl:e=>ExplorerUtil.getAssetImageUrl(e),resetSearch(){state$3.search={listings:[],total:0,page:1}}},state$2=proxy({open:!1}),ModalCtrl={state:state$2,subscribe:e=>subscribe(state$2,(()=>e(state$2))),open:async e=>new Promise((t=>{const{isUiLoaded:r,isDataLoaded:n}=OptionsCtrl.state;if(CoreUtil.removeWalletConnectDeepLink(),OptionsCtrl.setWalletConnectUri(null==e?void 0:e.uri),OptionsCtrl.setChains(null==e?void 0:e.chains),RouterCtrl.reset("ConnectWallet"),r&&n)state$2.open=!0,t();else{const e=setInterval((()=>{const r=OptionsCtrl.state;r.isUiLoaded&&r.isDataLoaded&&(clearInterval(e),state$2.open=!0,t())}),200)}})),close(){state$2.open=!1}};var __defProp$z=Object.defineProperty,__getOwnPropSymbols$3=Object.getOwnPropertySymbols,__hasOwnProp$3=Object.prototype.hasOwnProperty,__propIsEnum$3=Object.prototype.propertyIsEnumerable,__defNormalProp$3=(e,t,r)=>t in e?__defProp$z(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,__spreadValues$3=(e,t)=>{for(var r in t||(t={}))__hasOwnProp$3.call(t,r)&&__defNormalProp$3(e,r,t[r]);if(__getOwnPropSymbols$3)for(var r of __getOwnPropSymbols$3(t))__propIsEnum$3.call(t,r)&&__defNormalProp$3(e,r,t[r]);return e};function isDarkMode(){return"undefined"!=typeof matchMedia&&matchMedia("(prefers-color-scheme: dark)").matches}const state$1=proxy({themeMode:isDarkMode()?"dark":"light"}),ThemeCtrl={state:state$1,subscribe:e=>subscribe(state$1,(()=>e(state$1))),setThemeConfig(e){const{themeMode:t,themeVariables:r}=e;t&&(state$1.themeMode=t),r&&(state$1.themeVariables=__spreadValues$3({},r))}},state=proxy({open:!1,message:"",variant:"success"}),ToastCtrl={state:state,subscribe:e=>subscribe(state,(()=>e(state))),openToast(e,t){state.open=!0,state.message=e,state.variant=t},closeToast(){state.open=!1}};class WalletConnectModal{constructor(e){this.openModal=ModalCtrl.open,this.closeModal=ModalCtrl.close,this.subscribeModal=ModalCtrl.subscribe,this.setTheme=ThemeCtrl.setThemeConfig,ThemeCtrl.setThemeConfig(e),ConfigCtrl.setConfig(e),this.initUi()}async initUi(){if("undefined"!=typeof window){await Promise.resolve().then((()=>index));const e=document.createElement("wcm-modal");document.body.insertAdjacentElement("beforeend",e),OptionsCtrl.setIsUiLoaded(!0)}}}let DefaultLogger$1=class{constructor(e="info"){this.logLevel="info",this.logLevel=e}setLogLevel(e){this.logLevel=e}getLogLevel(){return this.logLevel}error(e,...t){["error","warn","info","debug"].includes(this.logLevel)&&console.error(`[ERROR] ${e}`,...t)}warn(e,...t){["warn","info","debug"].includes(this.logLevel)&&console.warn(`[WARN] ${e}`,...t)}info(e,...t){["info","debug"].includes(this.logLevel)&&console.info(`[INFO] ${e}`,...t)}debug(e,...t){"debug"===this.logLevel&&console.debug(`[DEBUG] ${e}`,...t)}};class SessionNotFoundError extends Error{constructor(e){super(e),this.name="SessionNotFoundError"}}const clients={};class DAppSigner{constructor(e,t,r,n=LedgerId.MAINNET,o,i="debug"){this.accountId=e,this.signClient=t,this.topic=r,this.ledgerId=n,this.extensionId=o,this.logger=new DefaultLogger$1(i)}setLogLevel(e){this.logger instanceof DefaultLogger$1&&this.logger.setLogLevel(e)}_getHederaClient(){const e=this.ledgerId.toString();return clients[e]||(clients[e]=WebClient.forName(e)),clients[e]}get _signerAccountId(){return`${ledgerIdToCAIPChainId(this.ledgerId)}:${this.accountId.toString()}`}_getRandomNodes(e){const t=Object.values(this._getHederaClient().network).map((e=>"string"==typeof e?AccountId.fromString(e):e));for(let r=t.length-1;r>0;r--){const e=Math.floor(Math.random()*(r+1));[t[r],t[e]]=[t[e],t[r]]}return t.slice(0,e)}request(e){var t,r;if(!(null===(r=null===(t=null==this?void 0:this.signClient)||void 0===t?void 0:t.session)||void 0===r?void 0:r.get(this.topic)))throw this.logger.error("Session no longer exists, signer will be removed. Please reconnect to the wallet."),this.signClient.emit({topic:this.topic,event:{name:"session_delete",data:{topic:this.topic}},chainId:ledgerIdToCAIPChainId(this.ledgerId)}),new SessionNotFoundError("Session no longer exists. Please reconnect to the wallet.");return this.extensionId&&extensionOpen(this.extensionId),this.signClient.request({topic:this.topic,request:e,chainId:ledgerIdToCAIPChainId(this.ledgerId)})}getAccountId(){return this.accountId}getAccountKey(){throw new Error("Method not implemented.")}getLedgerId(){return this.ledgerId}getNetwork(){return this._getHederaClient().network}getMirrorNetwork(){return this._getHederaClient().mirrorNetwork}getAccountBalance(){return this.call((new AccountBalanceQuery).setAccountId(this.accountId))}getAccountInfo(){return this.call((new AccountInfoQuery).setAccountId(this.accountId))}getAccountRecords(){return this.call((new AccountRecordsQuery).setAccountId(this.accountId))}getMetadata(){return this.signClient.metadata}async sign(e,t={encoding:"utf-8"}){try{const r="base64"===t.encoding?Uint8ArrayToBase64String(e[0]):Uint8ArrayToString(e[0]),{signatureMap:n}=await this.request({method:HederaJsonRpcMethod.SignMessage,params:{signerAccountId:this._signerAccountId,message:r}}),o=base64StringToSignatureMap(n),i=new SignerSignature({accountId:this.getAccountId(),publicKey:PublicKey.fromBytes(o.sigPair[0].pubKeyPrefix),signature:o.sigPair[0].ed25519||o.sigPair[0].ECDSASecp256k1});return this.logger.debug("Data signed successfully"),[i]}catch(r){throw this.logger.error("Error signing data:",r),r}}async checkTransaction(e){throw new Error("Method not implemented.")}async populateTransaction(e){return e.setNodeAccountIds(this._getRandomNodes(10)).setTransactionId(TransactionId.generate(this.getAccountId()))}async signTransaction(e){let t;t=e.nodeAccountIds&&0!==e.nodeAccountIds.length?e.nodeAccountIds[0]:this._getRandomNodes(1)[0];const r=transactionToTransactionBody(e,t);if(!r)throw new Error("Failed to serialize transaction body");const n=transactionBodyToBase64String(r),{signatureMap:o}=await this.request({method:HederaJsonRpcMethod.SignTransaction,params:{signerAccountId:this._signerAccountId,transactionBody:n}}),i=base64StringToSignatureMap(o),a=base64StringToUint8Array(n),s=lib.proto.Transaction.encode({bodyBytes:a,sigMap:i}).finish();return Transaction.fromBytes(s)}async _tryExecuteTransactionRequest(e){try{const t=e.toBytes();this.logger.debug("Creating transaction from bytes",t,e);const r=Transaction.fromBytes(t);this.logger.debug("Executing transaction request",r);const n=await this.request({method:HederaJsonRpcMethod.SignAndExecuteTransaction,params:{signerAccountId:this._signerAccountId,transactionList:transactionToBase64String(r)}});return this.logger.debug("Transaction request completed successfully"),{result:TransactionResponse.fromJSON(n)}}catch(t){return this.logger.error("Error executing transaction request:",t),{error:t}}}async _parseQueryResponse(e,t){if(e instanceof AccountRecordsQuery){return t.split(",").map((e=>base64StringToUint8Array(e))).map((e=>TransactionRecord.fromBytes(e)))}const r=base64StringToUint8Array(t);if(e instanceof AccountBalanceQuery)return AccountBalance.fromBytes(r);if(e instanceof AccountInfoQuery)return AccountInfo.fromBytes(r);if(e instanceof TransactionReceiptQuery)return TransactionReceipt.fromBytes(r);if(e instanceof TransactionRecordQuery)return TransactionRecord.fromBytes(r);throw new Error("Unsupported query type")}async executeReceiptQueryFromRequest(e){try{const t=this.ledgerId===LedgerId.MAINNET?WebClient.forMainnet():WebClient.forTestnet(),r=TransactionReceiptQuery.fromBytes(e.toBytes());return{result:await r.execute(t)}}catch(t){return{error:t}}}async _tryExecuteQueryRequest(e){try{const t=e instanceof TransactionReceiptQuery;if(t){this.logger.debug("Attempting to execute free receipt query",e);const t=await this.executeReceiptQueryFromRequest(e);if(!(null==t?void 0:t.error))return{result:t.result};this.logger.error("Error executing free receipt query. Sending to wallet.",t.error)}const r=t?TransactionReceiptQuery.fromBytes(e.toBytes()):Query.fromBytes(e.toBytes());this.logger.debug("Executing query request",r,queryToBase64String(r),t);const n=await this.request({method:HederaJsonRpcMethod.SignAndExecuteQuery,params:{signerAccountId:this._signerAccountId,query:queryToBase64String(r)}});return this.logger.debug("Query request completed successfully",n),{result:this._parseQueryResponse(r,n.response)}}catch(t){return this.logger.error("Error executing query request:",t),{error:t}}}async call(e){var t,r,n,o,i,a,s,c,u;const l=e instanceof TransactionReceiptQuery;let d;if(!l&&(d=await this._tryExecuteTransactionRequest(e),d.result))return d.result;const f=await this._tryExecuteQueryRequest(e);if(f.result)return f.result;if(l)throw new Error("Error executing receipt query: \n"+JSON.stringify({queryError:{name:null===(t=f.error)||void 0===t?void 0:t.name,message:null===(r=f.error)||void 0===r?void 0:r.message,stack:null===(n=f.error)||void 0===n?void 0:n.stack}}));throw new Error("Error executing transaction or query: \n"+JSON.stringify({txError:{name:null===(o=null==d?void 0:d.error)||void 0===o?void 0:o.name,message:null===(i=null==d?void 0:d.error)||void 0===i?void 0:i.message,stack:null===(a=null==d?void 0:d.error)||void 0===a?void 0:a.stack},queryError:{name:null===(s=f.error)||void 0===s?void 0:s.name,message:null===(c=f.error)||void 0===c?void 0:c.message,stack:null===(u=f.error)||void 0===u?void 0:u.stack}},null,2))}}class DAppConnector{constructor(e,t,r,n,o,i,a="debug"){this.network=LedgerId.TESTNET,this.supportedMethods=[],this.supportedEvents=[],this.supportedChains=[],this.extensions=[],this.onSessionIframeCreated=null,this.signers=[],this.isInitializing=!1,this.abortableConnect=async e=>new Promise((async(t,r)=>{const n=48e4,o=setTimeout((()=>{QRCodeModal.close(),r(new Error("Connect timed out after 480000(ms)"))}),n);try{return t(await e())}catch(i){r(i)}finally{clearTimeout(o)}})),this.logger=new DefaultLogger$1(a),this.dAppMetadata=e,this.network=t,this.projectId=r,this.supportedMethods=null!=n?n:Object.values(HederaJsonRpcMethod),this.supportedEvents=null!=o?o:[],this.supportedChains=null!=i?i:[],this.extensions=[],this.walletConnectModal=new WalletConnectModal({projectId:r,chains:i}),findExtensions(((e,t)=>{this.extensions.push(Object.assign(Object.assign({},e),{available:!0,availableInIframe:t}))}))}setLogLevel(e){this.logger instanceof DefaultLogger$1&&this.logger.setLogLevel(e)}async init({logger:e}={}){try{if(this.isInitializing=!0,!this.projectId)throw new Error("Project ID is not defined");this.walletConnectClient=await _e.init({logger:e,relayUrl:"wss://relay.walletconnect.com",projectId:this.projectId,metadata:this.dAppMetadata});const t=this.walletConnectClient.session.getAll();t.length>0?this.signers=t.flatMap((e=>this.createSigners(e))):this.checkIframeConnect(),this.walletConnectClient.on("session_event",this.handleSessionEvent.bind(this)),this.walletConnectClient.on("session_update",this.handleSessionUpdate.bind(this)),this.walletConnectClient.on("session_delete",this.handleSessionDelete.bind(this)),this.walletConnectClient.core.events.on("session_delete",this.handleSessionDelete.bind(this)),this.walletConnectClient.core.pairing.events.on("pairing_delete",this.handlePairingDelete.bind(this))}catch(e2){this.logger.error("Error initializing DAppConnector:",e2)}finally{this.isInitializing=!1}}getSigner(e){if(this.isInitializing)throw new Error("DAppConnector is not initialized yet. Try again later.");const t=this.signers.find((t=>t.getAccountId().equals(e)));if(!t)throw new Error("Signer is not found for this accountId");return t}async connectQR(e){return this.abortableConnect((async()=>{try{const{uri:t,approval:r}=await this.connectURI(e);if(!t)throw new Error("URI is not defined");QRCodeModal.open(t,(()=>{throw new Error("User rejected pairing")})),await this.onSessionConnected(await r())}finally{QRCodeModal.close()}}))}async openModal(e){try{const{uri:t,approval:r}=await this.connectURI(e);this.walletConnectModal.openModal({uri:t});const n=await r();return await this.onSessionConnected(n),n}finally{this.walletConnectModal.closeModal()}}async connect(e,t,r){return this.abortableConnect((async()=>{var n;const{uri:o,approval:i}=await this.connectURI(t);if(!o)throw new Error("URI is not defined");e(o);const a=await i();if(r){const e=Object.assign(Object.assign({},a.sessionProperties),{extensionId:r});a.sessionProperties=e,await(null===(n=this.walletConnectClient)||void 0===n?void 0:n.session.update(a.topic,{sessionProperties:e}))}return await this.onSessionConnected(a),a}))}async connectExtension(e,t){const r=this.extensions.find((t=>t.id===e));if(!r||!r.available)throw new Error("Extension is not available");return this.connect((e=>{extensionConnect(r.id,r.availableInIframe,e)}),t,r.availableInIframe?void 0:e)}validateSession(e){try{if(!this.walletConnectClient)return!1;const t=this.walletConnectClient.session.get(e),r=this.signers.some((t=>t.topic===e));return t?!!r||(this.logger.warn(`Session exists but no signer found for topic: ${e}`),!1):(r&&(this.logger.warn(`Signer exists but no session found for topic: ${e}`),this.handleSessionDelete({topic:e})),!1)}catch(e2){return this.logger.error("Error validating session:",e2),!1}}validateAndRefreshSigners(){this.signers=this.signers.filter((e=>this.validateSession(e.topic)))}async checkIframeConnect(){const e=this.extensions.find((e=>e.availableInIframe));if(e){const t=await this.connectExtension(e.id);this.onSessionIframeCreated&&this.onSessionIframeCreated(t)}}async disconnect(e){try{if(!this.walletConnectClient)throw new Error("WalletConnect is not initialized");return await this.walletConnectClient.disconnect({topic:e,reason:_$6("USER_DISCONNECTED")}),!0}catch(e2){return this.logger.error("Either the session was already disconnected or the topic is invalid",e2),!1}}async disconnectAll(){if(!this.walletConnectClient)throw new Error("WalletConnect is not initialized");const e=this.walletConnectClient.session.getAll(),t=this.walletConnectClient.core.pairing.getPairings();if(!(null==e?void 0:e.length)&&!(null==t?void 0:t.length))throw new Error("There is no active session/pairing. Connect to the wallet at first.");const r=[];for(const n of this.walletConnectClient.session.getAll()){this.logger.info(`Disconnecting from session: ${n}`);const e=this.disconnect(n.topic);r.push(e)}for(const n of t){const e=this.disconnect(n.topic);r.push(e)}await Promise.all(r),this.signers=[]}createSigners(e){return accountAndLedgerFromSession(e).map((({account:t,network:r})=>{var n;return new DAppSigner(t,this.walletConnectClient,e.topic,r,null===(n=e.sessionProperties)||void 0===n?void 0:n.extensionId,this.logger instanceof DefaultLogger$1?this.logger.getLogLevel():"debug")}))}async onSessionConnected(e){const t=this.createSigners(e);for(const r of t){const e=this.signers.filter((e=>{var t,n;const o=(null===(t=null==e?void 0:e.getAccountId())||void 0===t?void 0:t.toString())===(null===(n=null==r?void 0:r.getAccountId())||void 0===n?void 0:n.toString()),i=r.extensionId===e.extensionId,a=r.getMetadata(),s=e.getMetadata(),c=(null==a?void 0:a.name)===(null==s?void 0:s.name);return e.topic===r.topic&&this.logger.error("The topic was already connected. This is a weird error. Please report it.",r.getAccountId().toString()),o&&i&&c}));for(const t of e)this.logger.debug(`Disconnecting duplicate signer for account ${t.getAccountId().toString()}`),await this.disconnect(t.topic),this.signers=this.signers.filter((e=>e.topic!==t.topic))}this.signers.push(...t),this.logger.debug(`Current signers after connection: ${this.signers.map((e=>`${e.getAccountId().toString()}:${e.topic}`)).join(", ")}`)}async connectURI(e){if(!this.walletConnectClient)throw new Error("WalletConnect is not initialized");return this.walletConnectClient.connect({pairingTopic:e,requiredNamespaces:networkNamespaces(this.network,this.supportedMethods,this.supportedEvents)})}async request({method:e,params:t}){var r,n,o;let i;if(this.logger.debug(`Requesting method: ${e} with params: ${JSON.stringify(t)}`),null==t?void 0:t.signerAccountId){const e=null===(n=null===(r=null==t?void 0:t.signerAccountId)||void 0===r?void 0:r.split(":"))||void 0===n?void 0:n.pop();if(i=this.signers.find((t=>{var r;return(null===(r=null==t?void 0:t.getAccountId())||void 0===r?void 0:r.toString())===e})),this.logger.debug(`Found signer: ${null===(o=null==i?void 0:i.getAccountId())||void 0===o?void 0:o.toString()}`),!i)throw new Error(`Signer not found for account ID: ${null==t?void 0:t.signerAccountId}. Did you use the correct format? e.g hedera::
`)}else i=this.signers[this.signers.length-1];if(!i)throw new Error("There is no active session. Connect to the wallet at first.");return this.logger.debug(`Using signer: ${i.getAccountId().toString()}: ${i.topic} - about to request.`),await i.request({method:e,params:t})}async getNodeAddresses(){return await this.request({method:HederaJsonRpcMethod.GetNodeAddresses,params:void 0})}async executeTransaction(e){return await this.request({method:HederaJsonRpcMethod.ExecuteTransaction,params:e})}async signMessage(e){return await this.request({method:HederaJsonRpcMethod.SignMessage,params:e})}async signAndExecuteQuery(e){return await this.request({method:HederaJsonRpcMethod.SignAndExecuteQuery,params:e})}async signAndExecuteTransaction(e){return await this.request({method:HederaJsonRpcMethod.SignAndExecuteTransaction,params:e})}async signTransaction(e){var t,r;if("string"==typeof(null==e?void 0:e.transactionBody))return this.logger.warn("Transaction body is a string. This is not recommended, please migrate to passing a transaction object directly."),await this.request({method:HederaJsonRpcMethod.SignTransaction,params:e});if((null==e?void 0:e.transactionBody)instanceof Transaction){const n=null===(r=null===(t=null==e?void 0:e.signerAccountId)||void 0===t?void 0:t.split(":"))||void 0===r?void 0:r.pop(),o=this.signers.find((e=>{var t;return(null===(t=null==e?void 0:e.getAccountId())||void 0===t?void 0:t.toString())===n}));if(!o)throw new Error(`No signer found for account ${n}`);if(!(null==e?void 0:e.transactionBody))throw new Error("No transaction provided");return await o.signTransaction(e.transactionBody)}throw new Error("Transaction sent in incorrect format. Ensure transaction body is either a base64 transaction body or Transaction object.")}handleSessionEvent(e){this.logger.debug("Session event received:",e),this.validateAndRefreshSigners()}handleSessionUpdate({topic:e,params:t}){const{namespaces:r}=t,n=this.walletConnectClient.session.get(e),o=Object.assign(Object.assign({},n),{namespaces:r});this.logger.info("Session updated:",o),this.signers=this.signers.filter((t=>t.topic!==e)),this.signers.push(...this.createSigners(o))}handleSessionDelete(e){this.logger.info("Session deleted:",e);let t=!1;if(this.signers=this.signers.filter((r=>r.topic!==e.topic||(t=!0,!1))),t){try{this.disconnect(e.topic)}catch(e2){this.logger.error("Error disconnecting session:",e2)}this.logger.info("Session deleted and signer removed")}}handlePairingDelete(e){this.logger.info("Pairing deleted:",e),this.signers=this.signers.filter((t=>t.topic!==e.topic));try{this.disconnect(e.topic)}catch(e2){this.logger.error("Error disconnecting pairing:",e2)}this.logger.info("Pairing deleted by wallet")}}class DefaultLogger{constructor(){this.logLevel="info"}setLogLevel(e){this.logLevel=e}error(e,...t){["error","warn","info","debug"].includes(this.logLevel)&&console.error(`[ERROR] ${e}`,...t)}warn(e,...t){["warn","info","debug"].includes(this.logLevel)&&console.warn(`[WARN] ${e}`,...t)}info(e,...t){["info","debug"].includes(this.logLevel)&&console.info(`[INFO] ${e}`,...t)}debug(e,...t){"debug"===this.logLevel&&console.debug(`[DEBUG] ${e}`,...t)}}var fetchRetry_umd={exports:{}};!function(e,t){e.exports=function(){function e(e){return Number.isInteger(e)&&e>=0}function t(e){this.name="ArgumentError",this.message=e}return function(r,n){if(n=n||{},"function"!=typeof r)throw new t("fetch must be a function");if("object"!=typeof n)throw new t("defaults must be an object");if(void 0!==n.retries&&!e(n.retries))throw new t("retries must be a positive integer");if(void 0!==n.retryDelay&&!e(n.retryDelay)&&"function"!=typeof n.retryDelay)throw new t("retryDelay must be a positive integer or a function returning a positive integer");if(void 0!==n.retryOn&&!Array.isArray(n.retryOn)&&"function"!=typeof n.retryOn)throw new t("retryOn property expects an array or function");var o={retries:3,retryDelay:1e3,retryOn:[]};return n=Object.assign(o,n),function(o,i){var a=n.retries,s=n.retryDelay,c=n.retryOn;if(i&&void 0!==i.retries){if(!e(i.retries))throw new t("retries must be a positive integer");a=i.retries}if(i&&void 0!==i.retryDelay){if(!e(i.retryDelay)&&"function"!=typeof i.retryDelay)throw new t("retryDelay must be a positive integer or a function returning a positive integer");s=i.retryDelay}if(i&&i.retryOn){if(!Array.isArray(i.retryOn)&&"function"!=typeof i.retryOn)throw new t("retryOn property expects an array or function");c=i.retryOn}return new Promise((function(e,t){var n=function(n){var s="undefined"!=typeof Request&&o instanceof Request?o.clone():o;r(s,i).then((function(r){if(Array.isArray(c)&&-1===c.indexOf(r.status))e(r);else if("function"==typeof c)try{return Promise.resolve(c(n,null,r)).then((function(t){t?u(n,null,r):e(r)})).catch(t)}catch(o){t(o)}else nretryFetch(fetch,{retries:3});var Name=(e=>(e.Contractcall="CONTRACTCALL",e.Cryptotransfer="CRYPTOTRANSFER",e))(Name||{}),Result=(e=>(e.Success="SUCCESS",e))(Result||{});class HashinalsWalletConnectSDK{constructor(e,t){this.extensionCheckInterval=null,this.hasCalledExtensionCallback=!1,this.logger=e||new DefaultLogger,this.network=t||LedgerId.MAINNET}get dAppConnector(){return HashinalsWalletConnectSDK.dAppConnectorInstance}static getInstance(e,t){let r=null==HashinalsWalletConnectSDK?void 0:HashinalsWalletConnectSDK.instance;return r||(HashinalsWalletConnectSDK.instance=new HashinalsWalletConnectSDK(e,t),r=HashinalsWalletConnectSDK.instance),t&&r.setNetwork(t),r}setLogger(e){this.logger=e}setNetwork(e){this.network=e}getNetwork(){return this.network}setLogLevel(e){this.logger instanceof DefaultLogger?this.logger.setLogLevel(e):this.logger.warn("setLogLevel is only available for the default logger")}async init(e,t,r,n){const o=r||this.network,i="mainnet"===o.toString();return HashinalsWalletConnectSDK.dAppConnectorInstance||(HashinalsWalletConnectSDK.dAppConnectorInstance=new DAppConnector(t,o,e,Object.values(HederaJsonRpcMethod),[HederaSessionEvent.ChainChanged,HederaSessionEvent.AccountsChanged],[i?HederaChainId.Mainnet:HederaChainId.Testnet],"debug"),await HashinalsWalletConnectSDK.dAppConnectorInstance.init({logger:"error"}),HashinalsWalletConnectSDK.dAppConnectorInstance.onSessionIframeCreated=e=>{this.logger.info("new session from from iframe",e),this.handleNewSession(e),n&&n(e)},this.logger.info(`Hedera Wallet Connect SDK initialized on ${o}`)),HashinalsWalletConnectSDK.dAppConnectorInstance}async connect(){this.ensureInitialized();const e=await this.dAppConnector.openModal();return this.handleNewSession(e),e}async disconnect(){var e,t;try{this.ensureInitialized();const r=this.getAccountInfo(),n=null==r?void 0:r.accountId,o=null==r?void 0:r.network,i=null==(e=null==this?void 0:this.dAppConnector)?void 0:e.signers.find((e=>e.getAccountId().toString()===n));return await(null==(t=this.dAppConnector)?void 0:t.disconnect(null==i?void 0:i.topic)),this.logger.info(`Disconnected from ${n} on ${o}`),!0}catch(e2){return this.logger.error("Failed to disconnect",e2),!1}}async disconnectAll(){var e;try{return this.ensureInitialized(),await(null==(e=this.dAppConnector)?void 0:e.disconnectAll()),this.logger.info("Disconnected from all wallets"),!0}catch(e2){return this.logger.error("Failed to disconnect",e2),!1}}async executeTransaction(e,t=!1){this.ensureInitialized();const r=this.getAccountInfo(),n=null==r?void 0:r.accountId,o=this.dAppConnector.signers.find((e=>e.getAccountId().toString()===n));if(t){const t=await e.executeWithSigner(o);return await t.getReceiptWithSigner(o)}{const t=await e.freezeWithSigner(o),r=await t.executeWithSigner(o);return await r.getReceiptWithSigner(o)}}async executeTransactionWithErrorHandling(e,t){var r;try{return{result:await this.executeTransaction(e,t),error:void 0}}catch(e2){const t=null==(r=e2.message)?void 0:r.toLowerCase();if(this.logger.error("Failed to execute transaction",e2),this.logger.error("Failure reason for transaction is",t),t.includes("insufficient payer balance"))return{result:void 0,error:"Insufficient balance to complete the transaction."};if(t.includes("reject"))return{result:void 0,error:"You rejected the transaction"};if(t.includes("invalid signature"))return{result:void 0,error:"Invalid signature. Please check your account and try again."};if(t.includes("transaction expired"))return{result:void 0,error:"Transaction expired. Please try again."};if(t.includes("account not found"))return{result:void 0,error:"Account not found. Please check the account ID and try again."};if(t.includes("unauthorized"))return{result:void 0,error:"Unauthorized. You may not have the necessary permissions for this action."};if(t.includes("busy"))return{result:void 0,error:"The network is busy. Please try again later."};if(t.includes("invalid transaction"))return{result:void 0,error:"Invalid transaction. Please check your inputs and try again."}}}async submitMessageToTopic(e,t,r){this.ensureInitialized();let n=(new TopicMessageSubmitTransaction).setTopicId(TopicId.fromString(e)).setMessage(t);return r&&(n=await n.sign(r)),this.executeTransaction(n)}async transferHbar(e,t,r){this.ensureInitialized();const n=(new TransferTransaction).setTransactionId(TransactionId.generate(e)).addHbarTransfer(AccountId.fromString(e),new Hbar(-r)).addHbarTransfer(AccountId.fromString(t),new Hbar(r));return this.executeTransaction(n)}async executeSmartContract(e,t,r,n=1e5){this.ensureInitialized();const o=(new ContractExecuteTransaction).setContractId(ContractId.fromString(e)).setGas(n).setFunction(t,r);return this.executeTransaction(o)}handleNewSession(e){var t,r,n;const o=null==(n=null==(r=null==(t=e.namespaces)?void 0:t.hedera)?void 0:r.accounts)?void 0:n[0],i=null==o?void 0:o.split(":"),a=i.pop(),s=i.pop();this.logger.info("sessionAccount is",a,s),a?this.saveConnectionInfo(a,s):this.logger.error("No account id found in the session")}getNetworkPrefix(){const e=this.getAccountInfo(),t=null==e?void 0:e.network;if(!t){this.logger.warn("Network is not set on SDK, defaulting.");const e=localStorage.getItem("connectedNetwork");return e||"mainnet-public"}return t!==this.network&&(this.logger.warn("Detected network mismatch, reverting to signer network",t),this.network=t),t.isMainnet()?"mainnet-public":"testnet"}async requestAccount(e){try{const t=`https://${this.getNetworkPrefix()}.mirrornode.hedera.com/api/v1/accounts/${e}`,r=await fetchWithRetry()(t);if(!r.ok)throw new Error(`Failed to make request to mirror node for account: ${r.status}`);return await r.json()}catch(e2){throw this.logger.error("Failed to fetch account",e2),e2}}async getAccountBalance(){this.ensureInitialized();const e=this.getAccountInfo(),t=null==e?void 0:e.accountId;if(!t)return null;const r=await this.requestAccount(t);if(!r)throw new Error("Failed to fetch account. Try again or check if the Account ID is valid.");const n=r.balance.balance/10**8;return Number(n).toLocaleString("en-US")}getAccountInfo(){var e,t;const{accountId:r}=this.loadConnectionInfo();if(!r)return null;const n=null==(e=null==this?void 0:this.dAppConnector)?void 0:e.signers;if(!(null==n?void 0:n.length))return null;const o=this.dAppConnector.signers.find((e=>e.getAccountId().toString()===r));if(!o)return null;const i=null==(t=null==o?void 0:o.getAccountId())?void 0:t.toString();if(!i)return null;return{accountId:i,network:o.getLedgerId()}}async createTopic(e,t,r){this.ensureInitialized();let n=(new TopicCreateTransaction).setTopicMemo(e||"");if(t){const e=PrivateKey.fromString(t);n.setAdminKey(e.publicKey),n=await n.sign(e)}r&&n.setSubmitKey(PrivateKey.fromString(r).publicKey);return(await this.executeTransaction(n)).topicId.toString()}async createToken(e,t,r,n,o,i,a){this.ensureInitialized();let s=(new TokenCreateTransaction).setTokenName(e).setTokenSymbol(t).setDecimals(n).setInitialSupply(r).setTreasuryAccountId(AccountId.fromString(o)).setTokenType(TokenType.NonFungibleUnique).setSupplyType(TokenSupplyType.Finite);a&&(s=s.setSupplyKey(PrivateKey.fromString(a))),i&&(s=s.setAdminKey(PrivateKey.fromString(i)),s=await s.sign(PrivateKey.fromString(i)));return(await this.executeTransaction(s)).tokenId.toString()}async mintNFT(e,t,r){this.ensureInitialized();let n=await(new TokenMintTransaction).setTokenId(e).setMetadata([Buffer$1$1.from(t,"utf-8")]).sign(r);return this.executeTransaction(n)}async getMessages(e,t,r=!1,n){var o,i;const a=`${`https://${n||this.getNetworkPrefix()}.mirrornode.hedera.com`}/api/v1/topics/${e}/messages?limit=200${Number(t)>0&&!r?`×tamp=gt:${t}`:""}`;try{const t=await fetchWithRetry()(a);if(!t.ok)throw new Error(`Failed to make request to mirror node: ${t.status}`);const n=await t.json(),s=(null==n?void 0:n.messages)||[],c=null==(o=null==n?void 0:n.links)?void 0:o.next,u=s.map((e=>({...JSON.parse(atob(e.message)),payer:e.payer_account_id,created:new Date(1e3*Number(e.consensus_timestamp)),consensus_timestamp:e.consensus_timestamp,sequence_number:e.sequence_number})));if(c){const t=await this.getMessages(e,Number(null==(i=u[u.length-1])?void 0:i.consensus_timestamp),r);u.push(...t.messages)}return{messages:u.sort(((e,t)=>e.sequence_number-t.sequence_number)),error:""}}catch(s){return this.logger.error("Error fetching topic data:",s),{messages:[],error:s.toString()}}}async signMessage(e){const t=this.dAppConnector;if(!t)throw new Error("No active connection or signer");const r=this.getAccountInfo(),n=null==r?void 0:r.accountId,o={signerAccountId:`hedera:${this.network}:${n}`,message:e};return{userSignature:(await t.signMessage(o)).signatureMap}}saveConnectionInfo(e,t){if(e){const r=null==t?void 0:t.replace(/['"]+/g,"");localStorage.setItem("connectedNetwork",r),localStorage.setItem("connectedAccountId",e)}else localStorage.removeItem("connectedAccountId"),localStorage.removeItem("connectedNetwork")}loadConnectionInfo(){return{accountId:localStorage.getItem("connectedAccountId"),network:localStorage.getItem("connectedNetwork")}}async connectWallet(e,t,r){try{await this.init(e,t,r);const n=await this.connect(),o=this.getAccountInfo(),i=null==o?void 0:o.accountId,a=await this.getAccountBalance(),s=this.getNetworkPrefix();return this.saveConnectionInfo(i,s),{accountId:i,balance:a,session:n}}catch(n){throw this.logger.error("Failed to connect wallet:",n),n}}async disconnectWallet(e=!0){try{const t=await this.disconnect();return t&&e&&localStorage.clear(),this.saveConnectionInfo(void 0),t}catch(t){return this.logger.error("Failed to disconnect wallet:",t),!1}}async initAccount(e,t,r,n=()=>{}){const{accountId:o,network:i}=this.loadConnectionInfo();if(o&&i)try{const a="mainnet"===i?LedgerId.MAINNET:LedgerId.TESTNET,s=r||a;await this.init(e,t,s,n);return{accountId:o,balance:await this.getAccountBalance()}}catch(a){return this.logger.error("Failed to reconnect:",a),this.saveConnectionInfo(void 0,void 0),null}else if(r)try{this.logger.info("initializing normally through override.",r),await this.init(e,t,r,n),this.logger.info("initialized",r),await this.connectViaDappBrowser(),this.logger.info("connected via dapp browser")}catch(a){return this.logger.error("Failed to fallback connect:",a),this.saveConnectionInfo(void 0,void 0),null}return null}subscribeToExtensions(e){return this.extensionCheckInterval&&clearInterval(this.extensionCheckInterval),this.hasCalledExtensionCallback=!1,this.extensionCheckInterval=setInterval((()=>{var t;const r=((null==(t=this.dAppConnector)?void 0:t.extensions)||[]).find((e=>e.availableInIframe));r&&!this.hasCalledExtensionCallback&&(this.hasCalledExtensionCallback=!0,e(r),this.extensionCheckInterval&&(clearInterval(this.extensionCheckInterval),this.extensionCheckInterval=null))}),1e3),()=>{this.extensionCheckInterval&&(clearInterval(this.extensionCheckInterval),this.extensionCheckInterval=null),this.hasCalledExtensionCallback=!1}}async connectViaDappBrowser(){const e=this.dAppConnector.extensions||[],t=e.find((e=>(this.logger.info("Checking extension",e),e.availableInIframe)));this.logger.info("extensions are",e,t),t?await this.connectToExtension(t):this.subscribeToExtensions((async e=>{await this.connectToExtension(e)}))}async connectToExtension(e){this.logger.info("found extension, connecting to iframe.",e);const t=await this.dAppConnector.connectExtension(e.id),r=this.dAppConnector.onSessionIframeCreated;r&&r(t)}ensureInitialized(){if(!this.dAppConnector)throw new Error("SDK not initialized. Call init() first.")}static run(){try{"undefined"!=typeof window&&(window.HashinalsWalletConnectSDK=HashinalsWalletConnectSDK.getInstance(),window.HashgraphSDK=HashgraphSDK)}catch(e2){console.error("[ERROR]: failed setting sdk on window")}}async transferToken(e,t,r,n){this.ensureInitialized();const o=(new TransferTransaction).setTransactionId(TransactionId.generate(t)).addTokenTransfer(TokenId.fromString(e),AccountId.fromString(t),-n).addTokenTransfer(TokenId.fromString(e),AccountId.fromString(r),n);return this.executeTransaction(o)}async createAccount(e){this.ensureInitialized();const t=(new AccountCreateTransaction).setInitialBalance(new Hbar(e));return this.executeTransaction(t)}async associateTokenToAccount(e,t){this.ensureInitialized();const r=(new TokenAssociateTransaction).setAccountId(AccountId.fromString(e)).setTokenIds([TokenId.fromString(t)]);return this.executeTransaction(r)}async dissociateTokenFromAccount(e,t){this.ensureInitialized();const r=(new TokenDissociateTransaction).setAccountId(AccountId.fromString(e)).setTokenIds([TokenId.fromString(t)]);return this.executeTransaction(r)}async updateAccount(e,t){this.ensureInitialized();const r=(new AccountUpdateTransaction).setAccountId(AccountId.fromString(e)).setMaxAutomaticTokenAssociations(t);return this.executeTransaction(r)}async approveAllowance(e,t,r,n){this.ensureInitialized();const o=(new AccountAllowanceApproveTransaction).approveTokenAllowance(TokenId.fromString(t),AccountId.fromString(n),AccountId.fromString(e),r);return this.executeTransaction(o)}async getAccountTokens(e){var t,r;this.ensureInitialized();const n=`https://${this.getNetworkPrefix()}.mirrornode.hedera.com`,o=`${n}/api/v1/accounts/${e}/tokens?limit=200`;try{const e=await fetchWithRetry()(o);if(!e.ok)throw new Error(`Failed to make request to mirror node for account tokens: ${e.status}`);const i=await e.json(),a=[];for(const t of i.tokens)t.token_id&&a.push({tokenId:t.token_id,balance:t.balance,decimals:t.decimals,formatted_balance:(t.balance/10**t.decimals).toLocaleString("en-US"),created_timestamp:new Date(1e3*Number(t.created_timestamp))});let s=null==(t=i.links)?void 0:t.next;for(;s;){const e=`${n}${s}`,t=await fetchWithRetry()(e);if(!t.ok)throw new Error(`Failed to make request to mirror node for account tokens: ${t.status}, page: ${e}`);const o=await t.json();for(const r of o.tokens)r.token_id&&a.push({tokenId:r.token_id,balance:r.balance,decimals:r.decimals,formatted_balance:(r.balance/10**r.decimals).toLocaleString("en-US"),created_timestamp:new Date(1e3*Number(r.created_timestamp))});s=null==(r=o.links)?void 0:r.next}return{tokens:a}}catch(i){throw this.logger.error("Error fetching account tokens:",i),i}}async getTransaction(e){try{const t=`https://${this.getNetworkPrefix()}.mirrornode.hedera.com/api/v1/transactions/${e}`;this.logger.debug("Fetching transaction",t);const r=await fetchWithRetry()(t);if(!r.ok)throw new Error(`Failed to fetch transaction: ${r.status}`);return await r.json()}catch(e2){return this.logger.error("Failed to get transaction",e2),null}}async getTransactionByTimestamp(e){var t;try{const r=`https://${this.getNetworkPrefix()}.mirrornode.hedera.com/api/v1/transactions?timestamp=${e}`;this.logger.debug("Fetching transaction by timestamp",r);const n=await fetchWithRetry()(r);if(!n.ok)throw new Error(`Failed to fetch transaction by timestamp: ${n.status}`);const o=await n.json(),i=null==(t=null==o?void 0:o.transactions)?void 0:t[0];return i?await this.getTransaction(i.transaction_id):null}catch(e2){return this.logger.error("Failed to get transaction by timestamp",e2),null}}async getAccountNFTs(e,t){var r,n,o;try{const i=this.getNetworkPrefix(),a=`https://${i}.mirrornode.hedera.com/api/v1/accounts/${e}/nfts?limit=200${t?`&token.id=${t}`:""}`,s=await fetchWithRetry()(a);if(!s.ok)throw new Error(`Failed to fetch NFTs for account: ${s.status}`);const c=await s.json();let u=(null==(r=null==c?void 0:c.links)?void 0:r.next)||null,l=c.nfts;for(;u;)try{const e=await fetchWithRetry()(`https://${i}.mirrornode.hedera.com${u}`);if(!e.ok)throw new Error(`Failed to fetch next page of NFTs: ${e.status}`);const t=await e.json();l=[...l,...(null==t?void 0:t.nfts)||[]],u=(null==(n=null==t?void 0:t.links)?void 0:n.next)&&u!==(null==(o=null==t?void 0:t.links)?void 0:o.next)?t.links.next:null}catch(e2){this.logger.error("Failed to fetch next page of NFTs",e2);break}return l.map((e=>{try{e.token_uri=Buffer$1$1.from(e.metadata,"base64").toString("ascii")}catch(e2){this.logger.error("Failed to decode NFT metadata",e2)}return e}))}catch(e2){return this.logger.error("Failed to get account NFTs",e2),[]}}async validateNFTOwnership(e,t,r){return(await this.getAccountNFTs(t,r)).find((t=>t.token_id===r&&t.serial_number.toString()===e))||null}async readSmartContract(e,t,r,n=!0,o=0){try{const i=this.getNetworkPrefix(),a={block:"latest",data:e,estimate:n,from:t.toSolidityAddress(),to:r.toSolidityAddress(),value:o};n||(a.gas=3e5,a.gasPrice=1e8);const s=`https://${i}.mirrornode.hedera.com/api/v1/contracts/call`,c=await fetchWithRetry()(s,{method:"POST",body:JSON.stringify(a),headers:{"Content-Type":"application/json"}});if(!c.ok)throw new Error(`Failed to make contract call: ${c.status}`);return await c.json()}catch(e2){return this.logger.error("Failed to make contract call",e2),null}}}HashinalsWalletConnectSDK.run(); + ***************************************************************************** */function __extends(e,t){function r(){this.constructor=e}extendStatics(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var __assign=function(){return __assign=Object.assign||function(e){for(var t,r=1,n=arguments.length;r=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,r,s):o(t,r))||s);return i>3&&s&&Object.defineProperty(t,r,s),s}function __param(e,t){return function(r,n){t(r,n,e)}}function __metadata(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function __awaiter(e,t,r,n){return new(r||(r=Promise))((function(o,i){function s(e){try{c(n.next(e))}catch(t){i(t)}}function a(e){try{c(n.throw(e))}catch(t){i(t)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}c((n=n.apply(e,t||[])).next())}))}function __generator(e,t){var r,n,o,i,s={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(i){return function(a){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;s;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return s.label++,{value:i[1],done:!1};case 5:s.label++,n=i[1],i=[0];continue;case 7:i=s.ops.pop(),s.trys.pop();continue;default:if(!(o=s.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){s=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function __read(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,i=r.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(n=i.next()).done;)s.push(n.value)}catch(a){o={error:a}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return s}function __spread(){for(var e=[],t=0;t1||a(e,t)}))})}function a(e,t){try{(r=o[e](t)).value instanceof __await?Promise.resolve(r.value.v).then(c,u):l(i[0][2],r)}catch(n){l(i[0][3],n)}var r}function c(e){a("next",e)}function u(e){a("throw",e)}function l(e,t){e(t),i.shift(),i.length&&a(i[0][0],i[0][1])}}function __asyncDelegator(e){var t,r;return t={},n("next"),n("throw",(function(e){throw e})),n("return"),t[Symbol.iterator]=function(){return this},t;function n(n,o){t[n]=e[n]?function(t){return(r=!r)?{value:__await(e[n](t)),done:"return"===n}:o?o(t):t}:o}}function __asyncValues(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,r=e[Symbol.asyncIterator];return r?r.call(e):(e="function"==typeof __values?__values(e):e[Symbol.iterator](),t={},n("next"),n("throw"),n("return"),t[Symbol.asyncIterator]=function(){return this},t);function n(r){t[r]=e[r]&&function(t){return new Promise((function(n,o){(function(e,t,r,n){Promise.resolve(n).then((function(t){e({value:t,done:r})}),t)})(n,o,(t=e[r](t)).done,t.value)}))}}}function __makeTemplateObject(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}function __importStar(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function __importDefault(e){return e&&e.__esModule?e:{default:e}}function __classPrivateFieldGet(e,t){if(!t.has(e))throw new TypeError("attempted to get private field on non-instance");return t.get(e)}function __classPrivateFieldSet(e,t,r){if(!t.has(e))throw new TypeError("attempted to set private field on non-instance");return t.set(e,r),r}const tslib_es6=Object.freeze(Object.defineProperty({__proto__:null,get __assign(){return __assign},__asyncDelegator:__asyncDelegator,__asyncGenerator:__asyncGenerator,__asyncValues:__asyncValues,__await:__await,__awaiter:__awaiter,__classPrivateFieldGet:__classPrivateFieldGet,__classPrivateFieldSet:__classPrivateFieldSet,__createBinding:__createBinding,__decorate:__decorate,__exportStar:__exportStar,__extends:__extends,__generator:__generator,__importDefault:__importDefault,__importStar:__importStar,__makeTemplateObject:__makeTemplateObject,__metadata:__metadata,__param:__param,__read:__read,__rest:__rest,__spread:__spread,__spreadArrays:__spreadArrays$1,__values:__values},Symbol.toStringTag,{value:"Module"})),require$$0$3=getAugmentedNamespace(tslib_es6);var utils$f={},delay={},hasRequiredDelay;function requireDelay(){if(hasRequiredDelay)return delay;return hasRequiredDelay=1,Object.defineProperty(delay,"__esModule",{value:!0}),delay.delay=void 0,delay.delay=function(e){return new Promise((t=>{setTimeout((()=>{t(!0)}),e)}))},delay}var convert={},constants={},misc={},hasRequiredMisc;function requireMisc(){return hasRequiredMisc||(hasRequiredMisc=1,Object.defineProperty(misc,"__esModule",{value:!0}),misc.ONE_THOUSAND=misc.ONE_HUNDRED=void 0,misc.ONE_HUNDRED=100,misc.ONE_THOUSAND=1e3),misc}var time$1={},hasRequiredTime,hasRequiredConstants,hasRequiredConvert,hasRequiredUtils;function requireTime(){return hasRequiredTime||(hasRequiredTime=1,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ONE_YEAR=e.FOUR_WEEKS=e.THREE_WEEKS=e.TWO_WEEKS=e.ONE_WEEK=e.THIRTY_DAYS=e.SEVEN_DAYS=e.FIVE_DAYS=e.THREE_DAYS=e.ONE_DAY=e.TWENTY_FOUR_HOURS=e.TWELVE_HOURS=e.SIX_HOURS=e.THREE_HOURS=e.ONE_HOUR=e.SIXTY_MINUTES=e.THIRTY_MINUTES=e.TEN_MINUTES=e.FIVE_MINUTES=e.ONE_MINUTE=e.SIXTY_SECONDS=e.THIRTY_SECONDS=e.TEN_SECONDS=e.FIVE_SECONDS=e.ONE_SECOND=void 0,e.ONE_SECOND=1,e.FIVE_SECONDS=5,e.TEN_SECONDS=10,e.THIRTY_SECONDS=30,e.SIXTY_SECONDS=60,e.ONE_MINUTE=e.SIXTY_SECONDS,e.FIVE_MINUTES=5*e.ONE_MINUTE,e.TEN_MINUTES=10*e.ONE_MINUTE,e.THIRTY_MINUTES=30*e.ONE_MINUTE,e.SIXTY_MINUTES=60*e.ONE_MINUTE,e.ONE_HOUR=e.SIXTY_MINUTES,e.THREE_HOURS=3*e.ONE_HOUR,e.SIX_HOURS=6*e.ONE_HOUR,e.TWELVE_HOURS=12*e.ONE_HOUR,e.TWENTY_FOUR_HOURS=24*e.ONE_HOUR,e.ONE_DAY=e.TWENTY_FOUR_HOURS,e.THREE_DAYS=3*e.ONE_DAY,e.FIVE_DAYS=5*e.ONE_DAY,e.SEVEN_DAYS=7*e.ONE_DAY,e.THIRTY_DAYS=30*e.ONE_DAY,e.ONE_WEEK=e.SEVEN_DAYS,e.TWO_WEEKS=2*e.ONE_WEEK,e.THREE_WEEKS=3*e.ONE_WEEK,e.FOUR_WEEKS=4*e.ONE_WEEK,e.ONE_YEAR=365*e.ONE_DAY}(time$1)),time$1}function requireConstants(){return hasRequiredConstants||(hasRequiredConstants=1,function(e){Object.defineProperty(e,"__esModule",{value:!0});const t=require$$0$3;t.__exportStar(requireMisc(),e),t.__exportStar(requireTime(),e)}(constants)),constants}function requireConvert(){if(hasRequiredConvert)return convert;hasRequiredConvert=1,Object.defineProperty(convert,"__esModule",{value:!0}),convert.fromMiliseconds=convert.toMiliseconds=void 0;const e=requireConstants();return convert.toMiliseconds=function(t){return t*e.ONE_THOUSAND},convert.fromMiliseconds=function(t){return Math.floor(t/e.ONE_THOUSAND)},convert}function requireUtils(){return hasRequiredUtils||(hasRequiredUtils=1,function(e){Object.defineProperty(e,"__esModule",{value:!0});const t=require$$0$3;t.__exportStar(requireDelay(),e),t.__exportStar(requireConvert(),e)}(utils$f)),utils$f}var watch$2={},hasRequiredWatch$1;function requireWatch$1(){if(hasRequiredWatch$1)return watch$2;hasRequiredWatch$1=1,Object.defineProperty(watch$2,"__esModule",{value:!0}),watch$2.Watch=void 0;class e{constructor(){this.timestamps=new Map}start(e){if(this.timestamps.has(e))throw new Error(`Watch already started for label: ${e}`);this.timestamps.set(e,{started:Date.now()})}stop(e){const t=this.get(e);if(void 0!==t.elapsed)throw new Error(`Watch already stopped for label: ${e}`);const r=Date.now()-t.started;this.timestamps.set(e,{started:t.started,elapsed:r})}get(e){const t=this.timestamps.get(e);if(void 0===t)throw new Error(`No timestamp found for label: ${e}`);return t}elapsed(e){const t=this.get(e);return t.elapsed||Date.now()-t.started}}return watch$2.Watch=e,watch$2.default=e,watch$2}var types={},watch$1={},hasRequiredWatch,hasRequiredTypes;function requireWatch(){if(hasRequiredWatch)return watch$1;hasRequiredWatch=1,Object.defineProperty(watch$1,"__esModule",{value:!0}),watch$1.IWatch=void 0;return watch$1.IWatch=class{},watch$1}function requireTypes(){return hasRequiredTypes||(hasRequiredTypes=1,function(e){Object.defineProperty(e,"__esModule",{value:!0});require$$0$3.__exportStar(requireWatch(),e)}(types)),types}!function(e){Object.defineProperty(e,"__esModule",{value:!0});const t=require$$0$3;t.__exportStar(requireUtils(),e),t.__exportStar(requireWatch$1(),e),t.__exportStar(requireTypes(),e),t.__exportStar(requireConstants(),e)}(cjs$7);class IEvents{}let n$a=class extends IEvents{constructor(e){super()}};const s$7=cjs$7.FIVE_SECONDS,r$6={pulse:"heartbeat_pulse"};let i$7=class e extends n$a{constructor(e){super(e),this.events=new eventsExports.EventEmitter,this.interval=s$7,this.interval=(null==e?void 0:e.interval)||s$7}static async init(t){const r=new e(t);return await r.init(),r}async init(){await this.initialize()}stop(){clearInterval(this.intervalRef)}on(e,t){this.events.on(e,t)}once(e,t){this.events.once(e,t)}off(e,t){this.events.off(e,t)}removeListener(e,t){this.events.removeListener(e,t)}async initialize(){this.intervalRef=setInterval((()=>this.pulse()),cjs$7.toMiliseconds(this.interval))}pulse(){this.events.emit(r$6.pulse)}};const global$1=globalThis||self,suspectProtoRx=/"(?:_|\\u0{2}5[Ff]){2}(?:p|\\u0{2}70)(?:r|\\u0{2}72)(?:o|\\u0{2}6[Ff])(?:t|\\u0{2}74)(?:o|\\u0{2}6[Ff])(?:_|\\u0{2}5[Ff]){2}"\s*:/,suspectConstructorRx=/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/,JsonSigRx=/^\s*["[{]|^\s*-?\d{1,16}(\.\d{1,17})?([Ee][+-]?\d+)?\s*$/;function jsonParseTransform(e,t){if(!("__proto__"===e||"constructor"===e&&t&&"object"==typeof t&&"prototype"in t))return t;warnKeyDropped(e)}function warnKeyDropped(e){console.warn(`[destr] Dropping "${e}" key to prevent prototype pollution.`)}function destr(e,t={}){if("string"!=typeof e)return e;const r=e.trim();if('"'===e[0]&&e.endsWith('"')&&!e.includes("\\"))return r.slice(1,-1);if(r.length<=9){const e=r.toLowerCase();if("true"===e)return!0;if("false"===e)return!1;if("undefined"===e)return;if("null"===e)return null;if("nan"===e)return Number.NaN;if("infinity"===e)return Number.POSITIVE_INFINITY;if("-infinity"===e)return Number.NEGATIVE_INFINITY}if(!JsonSigRx.test(e)){if(t.strict)throw new SyntaxError("[destr] Invalid JSON");return e}try{if(suspectProtoRx.test(e)||suspectConstructorRx.test(e)){if(t.strict)throw new Error("[destr] Possible prototype pollution");return JSON.parse(e,jsonParseTransform)}return JSON.parse(e)}catch(n){if(t.strict)throw n;return e}}function wrapToPromise(e){return e&&"function"==typeof e.then?e:Promise.resolve(e)}function asyncCall(e,...t){try{return wrapToPromise(e(...t))}catch(r){return Promise.reject(r)}}function isPrimitive(e){const t=typeof e;return null===e||"object"!==t&&"function"!==t}function isPureObject(e){const t=Object.getPrototypeOf(e);return!t||t.isPrototypeOf(Object)}function stringify(e){if(isPrimitive(e))return String(e);if(isPureObject(e)||Array.isArray(e))return JSON.stringify(e);if("function"==typeof e.toJSON)return stringify(e.toJSON());throw new Error("[unstorage] Cannot stringify value!")}const BASE64_PREFIX="base64:";function serializeRaw(e){return"string"==typeof e?e:BASE64_PREFIX+base64Encode(e)}function deserializeRaw(e){return"string"!=typeof e?e:e.startsWith(BASE64_PREFIX)?base64Decode(e.slice(BASE64_PREFIX.length)):e}function base64Decode(e){return globalThis.Buffer?Buffer$2.from(e,"base64"):Uint8Array.from(globalThis.atob(e),(e=>e.codePointAt(0)))}function base64Encode(e){return globalThis.Buffer?Buffer$2.from(e).toString("base64"):globalThis.btoa(String.fromCodePoint(...e))}function normalizeKey(e){var t;return e&&(null==(t=e.split("?")[0])?void 0:t.replace(/[/\\]/g,":").replace(/:+/g,":").replace(/^:|:$/g,""))||""}function joinKeys(...e){return normalizeKey(e.join(":"))}function normalizeBaseKey(e){return(e=normalizeKey(e))?e+":":""}function defineDriver(e){return e}const DRIVER_NAME="memory",memory=defineDriver((()=>{const e=new Map;return{name:DRIVER_NAME,getInstance:()=>e,hasItem:t=>e.has(t),getItem:t=>e.get(t)??null,getItemRaw:t=>e.get(t)??null,setItem(t,r){e.set(t,r)},setItemRaw(t,r){e.set(t,r)},removeItem(t){e.delete(t)},getKeys:()=>[...e.keys()],clear(){e.clear()},dispose(){e.clear()}}}));function createStorage(e={}){const t={mounts:{"":e.driver||memory()},mountpoints:[""],watching:!1,watchListeners:[],unwatch:{}},r=e=>{for(const r of t.mountpoints)if(e.startsWith(r))return{base:r,relativeKey:e.slice(r.length),driver:t.mounts[r]};return{base:"",relativeKey:e,driver:t.mounts[""]}},n=(e,r)=>t.mountpoints.filter((t=>t.startsWith(e)||r&&e.startsWith(t))).map((r=>({relativeBase:e.length>r.length?e.slice(r.length):void 0,mountpoint:r,driver:t.mounts[r]}))),o=(e,r)=>{if(t.watching){r=normalizeKey(r);for(const n of t.watchListeners)n(e,r)}},i=async()=>{if(t.watching){for(const e in t.unwatch)await t.unwatch[e]();t.unwatch={},t.watching=!1}},s=(e,t,n)=>{const o=new Map,i=e=>{let t=o.get(e.base);return t||(t={driver:e.driver,base:e.base,items:[]},o.set(e.base,t)),t};for(const s of e){const e="string"==typeof s,n=normalizeKey(e?s:s.key),o=e?void 0:s.value,a=e||!s.options?t:{...t,...s.options},c=r(n);i(c).items.push({key:n,value:o,relativeKey:c.relativeKey,options:a})}return Promise.all([...o.values()].map((e=>n(e)))).then((e=>e.flat()))},a={hasItem(e,t={}){e=normalizeKey(e);const{relativeKey:n,driver:o}=r(e);return asyncCall(o.hasItem,n,t)},getItem(e,t={}){e=normalizeKey(e);const{relativeKey:n,driver:o}=r(e);return asyncCall(o.getItem,n,t).then((e=>destr(e)))},getItems:(e,t={})=>s(e,t,(e=>e.driver.getItems?asyncCall(e.driver.getItems,e.items.map((e=>({key:e.relativeKey,options:e.options}))),t).then((t=>t.map((t=>({key:joinKeys(e.base,t.key),value:destr(t.value)}))))):Promise.all(e.items.map((t=>asyncCall(e.driver.getItem,t.relativeKey,t.options).then((e=>({key:t.key,value:destr(e)})))))))),getItemRaw(e,t={}){e=normalizeKey(e);const{relativeKey:n,driver:o}=r(e);return o.getItemRaw?asyncCall(o.getItemRaw,n,t):asyncCall(o.getItem,n,t).then((e=>deserializeRaw(e)))},async setItem(e,t,n={}){if(void 0===t)return a.removeItem(e);e=normalizeKey(e);const{relativeKey:i,driver:s}=r(e);s.setItem&&(await asyncCall(s.setItem,i,stringify(t),n),s.watch||o("update",e))},async setItems(e,t){await s(e,t,(async e=>{if(e.driver.setItems)return asyncCall(e.driver.setItems,e.items.map((e=>({key:e.relativeKey,value:stringify(e.value),options:e.options}))),t);e.driver.setItem&&await Promise.all(e.items.map((t=>asyncCall(e.driver.setItem,t.relativeKey,stringify(t.value),t.options))))}))},async setItemRaw(e,t,n={}){if(void 0===t)return a.removeItem(e,n);e=normalizeKey(e);const{relativeKey:i,driver:s}=r(e);if(s.setItemRaw)await asyncCall(s.setItemRaw,i,t,n);else{if(!s.setItem)return;await asyncCall(s.setItem,i,serializeRaw(t),n)}s.watch||o("update",e)},async removeItem(e,t={}){"boolean"==typeof t&&(t={removeMeta:t}),e=normalizeKey(e);const{relativeKey:n,driver:i}=r(e);i.removeItem&&(await asyncCall(i.removeItem,n,t),(t.removeMeta||t.removeMata)&&await asyncCall(i.removeItem,n+"$",t),i.watch||o("remove",e))},async getMeta(e,t={}){"boolean"==typeof t&&(t={nativeOnly:t}),e=normalizeKey(e);const{relativeKey:n,driver:o}=r(e),i=Object.create(null);if(o.getMeta&&Object.assign(i,await asyncCall(o.getMeta,n,t)),!t.nativeOnly){const e=await asyncCall(o.getItem,n+"$",t).then((e=>destr(e)));e&&"object"==typeof e&&("string"==typeof e.atime&&(e.atime=new Date(e.atime)),"string"==typeof e.mtime&&(e.mtime=new Date(e.mtime)),Object.assign(i,e))}return i},setMeta(e,t,r={}){return this.setItem(e+"$",t,r)},removeMeta(e,t={}){return this.removeItem(e+"$",t)},async getKeys(e,t={}){e=normalizeBaseKey(e);const r=n(e,!0);let o=[];const i=[];for(const n of r){const e=await asyncCall(n.driver.getKeys,n.relativeBase,t);for(const t of e){const e=n.mountpoint+normalizeKey(t);o.some((t=>e.startsWith(t)))||i.push(e)}o=[n.mountpoint,...o.filter((e=>!e.startsWith(n.mountpoint)))]}return e?i.filter((t=>t.startsWith(e)&&"$"!==t[t.length-1])):i.filter((e=>"$"!==e[e.length-1]))},async clear(e,t={}){e=normalizeBaseKey(e),await Promise.all(n(e,!1).map((async e=>{if(e.driver.clear)return asyncCall(e.driver.clear,e.relativeBase,t);if(e.driver.removeItem){const r=await e.driver.getKeys(e.relativeBase||"",t);return Promise.all(r.map((r=>e.driver.removeItem(r,t))))}})))},async dispose(){await Promise.all(Object.values(t.mounts).map((e=>dispose(e))))},watch:async e=>(await(async()=>{if(!t.watching){t.watching=!0;for(const e in t.mounts)t.unwatch[e]=await watch(t.mounts[e],o,e)}})(),t.watchListeners.push(e),async()=>{t.watchListeners=t.watchListeners.filter((t=>t!==e)),0===t.watchListeners.length&&await i()}),async unwatch(){t.watchListeners=[],await i()},mount(e,r){if((e=normalizeBaseKey(e))&&t.mounts[e])throw new Error(`already mounted at ${e}`);return e&&(t.mountpoints.push(e),t.mountpoints.sort(((e,t)=>t.length-e.length))),t.mounts[e]=r,t.watching&&Promise.resolve(watch(r,o,e)).then((r=>{t.unwatch[e]=r})).catch(console.error),a},async unmount(e,r=!0){var n,o;(e=normalizeBaseKey(e))&&t.mounts[e]&&(t.watching&&e in t.unwatch&&(null==(o=(n=t.unwatch)[e])||o.call(n),delete t.unwatch[e]),r&&await dispose(t.mounts[e]),t.mountpoints=t.mountpoints.filter((t=>t!==e)),delete t.mounts[e])},getMount(e=""){e=normalizeKey(e)+":";const t=r(e);return{driver:t.driver,base:t.base}},getMounts(e="",t={}){e=normalizeKey(e);return n(e,t.parents).map((e=>({driver:e.driver,base:e.mountpoint})))},keys:(e,t={})=>a.getKeys(e,t),get:(e,t={})=>a.getItem(e,t),set:(e,t,r={})=>a.setItem(e,t,r),has:(e,t={})=>a.hasItem(e,t),del:(e,t={})=>a.removeItem(e,t),remove:(e,t={})=>a.removeItem(e,t)};return a}function watch(e,t,r){return e.watch?e.watch(((e,n)=>t(e,r+n))):()=>{}}async function dispose(e){"function"==typeof e.dispose&&await asyncCall(e.dispose)}function promisifyRequest(e){return new Promise(((t,r)=>{e.oncomplete=e.onsuccess=()=>t(e.result),e.onabort=e.onerror=()=>r(e.error)}))}function createStore(e,t){const r=indexedDB.open(e);r.onupgradeneeded=()=>r.result.createObjectStore(t);const n=promisifyRequest(r);return(e,r)=>n.then((n=>r(n.transaction(t,e).objectStore(t))))}let defaultGetStoreFunc;function defaultGetStore(){return defaultGetStoreFunc||(defaultGetStoreFunc=createStore("keyval-store","keyval")),defaultGetStoreFunc}function get(e,t=defaultGetStore()){return t("readonly",(t=>promisifyRequest(t.get(e))))}function set$1(e,t,r=defaultGetStore()){return r("readwrite",(r=>(r.put(t,e),promisifyRequest(r.transaction))))}function del(e,t=defaultGetStore()){return t("readwrite",(t=>(t.delete(e),promisifyRequest(t.transaction))))}function clear(e=defaultGetStore()){return e("readwrite",(e=>(e.clear(),promisifyRequest(e.transaction))))}function eachCursor(e,t){return e.openCursor().onsuccess=function(){this.result&&(t(this.result),this.result.continue())},promisifyRequest(e.transaction)}function keys(e=defaultGetStore()){return e("readonly",(e=>{if(e.getAllKeys)return promisifyRequest(e.getAllKeys());const t=[];return eachCursor(e,(e=>t.push(e.key))).then((()=>t))}))}const JSONStringify=e=>JSON.stringify(e,((e,t)=>"bigint"==typeof t?t.toString()+"n":t)),JSONParse=e=>{const t=e.replace(/([\[:])?(\d{17,}|(?:[9](?:[1-9]07199254740991|0[1-9]7199254740991|00[8-9]199254740991|007[2-9]99254740991|007199[3-9]54740991|0071992[6-9]4740991|00719925[5-9]740991|007199254[8-9]40991|0071992547[5-9]0991|00719925474[1-9]991|00719925474099[2-9])))([,\}\]])/g,'$1"$2n"$3');return JSON.parse(t,((e,t)=>"string"==typeof t&&t.match(/^\d+n$/)?BigInt(t.substring(0,t.length-1)):t))};function safeJsonParse$2(e){if("string"!=typeof e)throw new Error("Cannot safe json parse value of type "+typeof e);try{return JSONParse(e)}catch(t){return e}}function safeJsonStringify$2(e){return"string"==typeof e?e:JSONStringify(e)||""}const x$7="idb-keyval";var z$8=(e={})=>{const t=e.base&&e.base.length>0?`${e.base}:`:"",r=e=>t+e;let n;return e.dbName&&e.storeName&&(n=createStore(e.dbName,e.storeName)),{name:x$7,options:e,hasItem:async e=>!(typeof(await get(r(e),n))>"u"),getItem:async e=>await get(r(e),n)??null,setItem:(e,t)=>set$1(r(e),t,n),removeItem:e=>del(r(e),n),getKeys:()=>keys(n),clear:()=>clear(n)}};const D$6="WALLET_CONNECT_V2_INDEXED_DB",E$6="keyvaluestorage";let _$8=class{constructor(){this.indexedDb=createStorage({driver:z$8({dbName:D$6,storeName:E$6})})}async getKeys(){return this.indexedDb.getKeys()}async getEntries(){return(await this.indexedDb.getItems(await this.indexedDb.getKeys())).map((e=>[e.key,e.value]))}async getItem(e){const t=await this.indexedDb.getItem(e);if(null!==t)return t}async setItem(e,t){await this.indexedDb.setItem(e,safeJsonStringify$2(t))}async removeItem(e){await this.indexedDb.removeItem(e)}};var l$8=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global$1<"u"?global$1:typeof self<"u"?self:{},c$7={exports:{}};function k$6(e){var t;return[e[0],safeJsonParse$2(null!=(t=e[1])?t:"")]}!function(){let e;function t(){}e=t,e.prototype.getItem=function(e){return this.hasOwnProperty(e)?String(this[e]):null},e.prototype.setItem=function(e,t){this[e]=String(t)},e.prototype.removeItem=function(e){delete this[e]},e.prototype.clear=function(){const e=this;Object.keys(e).forEach((function(t){e[t]=void 0,delete e[t]}))},e.prototype.key=function(e){return e=e||0,Object.keys(this)[e]},e.prototype.__defineGetter__("length",(function(){return Object.keys(this).length})),typeof l$8<"u"&&l$8.localStorage?c$7.exports=l$8.localStorage:typeof window<"u"&&window.localStorage?c$7.exports=window.localStorage:c$7.exports=new t}();let K$3=class{constructor(){this.localStorage=c$7.exports}async getKeys(){return Object.keys(this.localStorage)}async getEntries(){return Object.entries(this.localStorage).map(k$6)}async getItem(e){const t=this.localStorage.getItem(e);if(null!==t)return safeJsonParse$2(t)}async setItem(e,t){this.localStorage.setItem(e,safeJsonStringify$2(t))}async removeItem(e){this.localStorage.removeItem(e)}};const N$4="wc_storage_version",y$8=1,O$6=async(e,t,r)=>{const n=N$4,o=await t.getItem(n);if(o&&o>=y$8)return void r(t);const i=await e.getKeys();if(!i.length)return void r(t);const s=[];for(;i.length;){const r=i.shift();if(!r)continue;const n=r.toLowerCase();if(n.includes("wc@")||n.includes("walletconnect")||n.includes("wc_")||n.includes("wallet_connect")){const n=await e.getItem(r);await t.setItem(r,n),s.push(r)}}await t.setItem(n,y$8),r(t),j$3(e,s)},j$3=async(e,t)=>{t.length&&t.forEach((async t=>{await e.removeItem(t)}))};let h$7=class{constructor(){this.initialized=!1,this.setInitialized=e=>{this.storage=e,this.initialized=!0};const e=new K$3;this.storage=e;try{const t=new _$8;O$6(e,t,this.setInitialized)}catch{this.initialized=!0}}async getKeys(){return await this.initialize(),this.storage.getKeys()}async getEntries(){return await this.initialize(),this.storage.getEntries()}async getItem(e){return await this.initialize(),this.storage.getItem(e)}async setItem(e,t){return await this.initialize(),this.storage.setItem(e,t)}async removeItem(e){return await this.initialize(),this.storage.removeItem(e)}async initialize(){this.initialized||await new Promise((e=>{const t=setInterval((()=>{this.initialized&&(clearInterval(t),e())}),20)}))}};const format$1=quickFormatUnescaped;var browser$3=pino;const _console=pfGlobalThisOrFallback().console||{},stdSerializers={mapHttpRequest:mock,mapHttpResponse:mock,wrapRequestSerializer:passthrough,wrapResponseSerializer:passthrough,wrapErrorSerializer:passthrough,req:mock,res:mock,err:asErrValue};function shouldSerialize(e,t){if(Array.isArray(e)){return e.filter((function(e){return"!stdSerializers.err"!==e}))}return!0===e&&Object.keys(t)}function pino(e){(e=e||{}).browser=e.browser||{};const t=e.browser.transmit;if(t&&"function"!=typeof t.send)throw Error("pino: transmit option must have a send function");const r=e.browser.write||_console;e.browser.write&&(e.browser.asObject=!0);const n=e.serializers||{},o=shouldSerialize(e.browser.serialize,n);let i=e.browser.serialize;Array.isArray(e.browser.serialize)&&e.browser.serialize.indexOf("!stdSerializers.err")>-1&&(i=!1);"function"==typeof r&&(r.error=r.fatal=r.warn=r.info=r.debug=r.trace=r),!1===e.enabled&&(e.level="silent");const s=e.level||"info",a=Object.create(r);a.log||(a.log=noop$1),Object.defineProperty(a,"levelVal",{get:function(){return"silent"===this.level?1/0:this.levels.values[this.level]}}),Object.defineProperty(a,"level",{get:function(){return this._level},set:function(e){if("silent"!==e&&!this.levels.values[e])throw Error("unknown level "+e);this._level=e,set(c,a,"error","log"),set(c,a,"fatal","error"),set(c,a,"warn","error"),set(c,a,"info","log"),set(c,a,"debug","log"),set(c,a,"trace","log")}});const c={transmit:t,serialize:o,asObject:e.browser.asObject,levels:["error","fatal","warn","info","debug","trace"],timestamp:getTimeFunction(e)};return a.levels=pino.levels,a.level=s,a.setMaxListeners=a.getMaxListeners=a.emit=a.addListener=a.on=a.prependListener=a.once=a.prependOnceListener=a.removeListener=a.removeAllListeners=a.listeners=a.listenerCount=a.eventNames=a.write=a.flush=noop$1,a.serializers=n,a._serialize=o,a._stdErrSerialize=i,a.child=function(r,i){if(!r)throw new Error("missing bindings for child Pino");i=i||{},o&&r.serializers&&(i.serializers=r.serializers);const s=i.serializers;if(o&&s){var a=Object.assign({},n,s),c=!0===e.browser.serialize?Object.keys(a):o;delete r.serializers,applySerializers([r],c,a,this._stdErrSerialize)}function u(e){this._childLevel=1+(0|e._childLevel),this.error=bind(e,r,"error"),this.fatal=bind(e,r,"fatal"),this.warn=bind(e,r,"warn"),this.info=bind(e,r,"info"),this.debug=bind(e,r,"debug"),this.trace=bind(e,r,"trace"),a&&(this.serializers=a,this._serialize=c),t&&(this._logEvent=createLogEventShape([].concat(e._logEvent.bindings,r)))}return u.prototype=this,new u(this)},t&&(a._logEvent=createLogEventShape()),a}function set(e,t,r,n){const o=Object.getPrototypeOf(t);t[r]=t.levelVal>t.levels.values[r]?noop$1:o[r]?o[r]:_console[r]||_console[n]||noop$1,wrap$1(e,t,r)}function wrap$1(e,t,r){(e.transmit||t[r]!==noop$1)&&(t[r]=function(n){return function(){const o=e.timestamp(),i=new Array(arguments.length),s=Object.getPrototypeOf&&Object.getPrototypeOf(this)===_console?_console:this;for(var a=0;a-1&&n in r&&(e[o][n]=r[n](e[o][n]))}function bind(e,t,r){return function(){const n=new Array(1+arguments.length);n[0]=t;for(var o=1;othis.maxSizeInBytes)throw new Error(`[LinkedList] Value too big to insert into list: ${e} with size ${t.size}`);for(;this.size+t.size>this.maxSizeInBytes;)this.shift();this.head?(this.tail&&(this.tail.next=t),this.tail=t):(this.head=t,this.tail=t),this.lengthInNodes++,this.sizeInBytes+=t.size}shift(){if(!this.head)return;const e=this.head;this.head=this.head.next,this.head||(this.tail=null),this.lengthInNodes--,this.sizeInBytes-=e.size}toArray(){const e=[];let t=this.head;for(;null!==t;)e.push(t.value),t=t.next;return e}get length(){return this.lengthInNodes}get size(){return this.sizeInBytes}toOrderedArray(){return Array.from(this)}[Symbol.iterator](){let e=this.head;return{next:()=>{if(!e)return{done:!0,value:null};const t=e.value;return e=e.next,{done:!1,value:t}}}}},L$5=class{constructor(e,t=l$7){this.level=e??"error",this.levelValue=browser$3.levels.values[this.level],this.MAX_LOG_SIZE_IN_BYTES=t,this.logs=new d$6(this.MAX_LOG_SIZE_IN_BYTES)}forwardToConsole(e,t){t===browser$3.levels.values.error?console.error(e):t===browser$3.levels.values.warn?console.warn(e):t===browser$3.levels.values.debug?console.debug(e):t===browser$3.levels.values.trace?console.trace(e):console.log(e)}appendToLogs(e){this.logs.append(safeJsonStringify$2({timestamp:(new Date).toISOString(),log:e}));const t="string"==typeof e?JSON.parse(e).level:e.level;t>=this.levelValue&&this.forwardToConsole(e,t)}getLogs(){return this.logs}clearLogs(){this.logs=new d$6(this.MAX_LOG_SIZE_IN_BYTES)}getLogArray(){return Array.from(this.logs)}logsToBlob(e){const t=this.getLogArray();return t.push(safeJsonStringify$2({extraMetadata:e})),new Blob(t,{type:"application/json"})}},m$3=class{constructor(e,t=l$7){this.baseChunkLogger=new L$5(e,t)}write(e){this.baseChunkLogger.appendToLogs(e)}getLogs(){return this.baseChunkLogger.getLogs()}clearLogs(){this.baseChunkLogger.clearLogs()}getLogArray(){return this.baseChunkLogger.getLogArray()}logsToBlob(e){return this.baseChunkLogger.logsToBlob(e)}downloadLogsBlobInBrowser(e){const t=URL.createObjectURL(this.logsToBlob(e)),r=document.createElement("a");r.href=t,r.download=`walletconnect-logs-${(new Date).toISOString()}.txt`,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(t)}},B$3=class{constructor(e,t=l$7){this.baseChunkLogger=new L$5(e,t)}write(e){this.baseChunkLogger.appendToLogs(e)}getLogs(){return this.baseChunkLogger.getLogs()}clearLogs(){this.baseChunkLogger.clearLogs()}getLogArray(){return this.baseChunkLogger.getLogArray()}logsToBlob(e){return this.baseChunkLogger.logsToBlob(e)}};var x$6=Object.defineProperty,S$8=Object.defineProperties,_$7=Object.getOwnPropertyDescriptors,p$4=Object.getOwnPropertySymbols,T$5=Object.prototype.hasOwnProperty,z$7=Object.prototype.propertyIsEnumerable,f$6=(e,t,r)=>t in e?x$6(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,i$6=(e,t)=>{for(var r in t||(t={}))T$5.call(t,r)&&f$6(e,r,t[r]);if(p$4)for(var r of p$4(t))z$7.call(t,r)&&f$6(e,r,t[r]);return e},g$6=(e,t)=>S$8(e,_$7(t));function k$5(e){return g$6(i$6({},e),{level:(null==e?void 0:e.level)||c$6.level})}function v$6(e,t=n$9){return e[t]||""}function b$5(e,t,r=n$9){return e[r]=t,e}function y$7(e,t=n$9){let r="";return r=typeof e.bindings>"u"?v$6(e,t):e.bindings().context||"",r}function w$6(e,t,r=n$9){const n=y$7(e,r);return n.trim()?`${n}/${t}`:t}function E$5(e,t,r=n$9){const n=w$6(e,t,r);return b$5(e.child({context:n}),n,r)}function C$7(e){var t,r;const n=new m$3(null==(t=e.opts)?void 0:t.level,e.maxSizeInBytes);return{logger:_i(g$6(i$6({},e.opts),{level:"trace",browser:g$6(i$6({},null==(r=e.opts)?void 0:r.browser),{write:e=>n.write(e)})})),chunkLoggerController:n}}function I$6(e){var t;const r=new B$3(null==(t=e.opts)?void 0:t.level,e.maxSizeInBytes);return{logger:_i(g$6(i$6({},e.opts),{level:"trace"}),r),chunkLoggerController:r}}function A$5(e){return typeof e.loggerOverride<"u"&&"string"!=typeof e.loggerOverride?{logger:e.loggerOverride,chunkLoggerController:null}:typeof window<"u"?C$7(e):I$6(e)}var ed25519={},random={},system={},browser$2={};Object.defineProperty(browser$2,"__esModule",{value:!0}),browser$2.BrowserRandomSource=void 0;const QUOTA=65536;class BrowserRandomSource{constructor(){this.isAvailable=!1,this.isInstantiated=!1;const e="undefined"!=typeof self?self.crypto||self.msCrypto:null;e&&void 0!==e.getRandomValues&&(this._crypto=e,this.isAvailable=!0,this.isInstantiated=!0)}randomBytes(e){if(!this.isAvailable||!this._crypto)throw new Error("Browser random byte generator is not available.");const t=new Uint8Array(e);for(let r=0;r>>16&65535)*n+r*(t>>>16&65535)<<16>>>0)|0},e.add=function(e,t){return e+t|0},e.sub=function(e,t){return e-t|0},e.rotl=function(e,t){return e<>>32-t},e.rotr=function(e,t){return e<<32-t|e>>>t},e.isInteger=Number.isInteger||function(e){return"number"==typeof e&&isFinite(e)&&Math.floor(e)===e},e.MAX_SAFE_INTEGER=9007199254740991,e.isSafeInteger=function(t){return e.isInteger(t)&&t>=-e.MAX_SAFE_INTEGER&&t<=e.MAX_SAFE_INTEGER}}(int),Object.defineProperty(binary,"__esModule",{value:!0});var int_1=int;function readInt16BE(e,t){return void 0===t&&(t=0),(e[t+0]<<8|e[t+1])<<16>>16}function readUint16BE(e,t){return void 0===t&&(t=0),(e[t+0]<<8|e[t+1])>>>0}function readInt16LE(e,t){return void 0===t&&(t=0),(e[t+1]<<8|e[t])<<16>>16}function readUint16LE(e,t){return void 0===t&&(t=0),(e[t+1]<<8|e[t])>>>0}function writeUint16BE(e,t,r){return void 0===t&&(t=new Uint8Array(2)),void 0===r&&(r=0),t[r+0]=e>>>8,t[r+1]=e>>>0,t}function writeUint16LE(e,t,r){return void 0===t&&(t=new Uint8Array(2)),void 0===r&&(r=0),t[r+0]=e>>>0,t[r+1]=e>>>8,t}function readInt32BE(e,t){return void 0===t&&(t=0),e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3]}function readUint32BE(e,t){return void 0===t&&(t=0),(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0}function readInt32LE(e,t){return void 0===t&&(t=0),e[t+3]<<24|e[t+2]<<16|e[t+1]<<8|e[t]}function readUint32LE(e,t){return void 0===t&&(t=0),(e[t+3]<<24|e[t+2]<<16|e[t+1]<<8|e[t])>>>0}function writeUint32BE(e,t,r){return void 0===t&&(t=new Uint8Array(4)),void 0===r&&(r=0),t[r+0]=e>>>24,t[r+1]=e>>>16,t[r+2]=e>>>8,t[r+3]=e>>>0,t}function writeUint32LE(e,t,r){return void 0===t&&(t=new Uint8Array(4)),void 0===r&&(r=0),t[r+0]=e>>>0,t[r+1]=e>>>8,t[r+2]=e>>>16,t[r+3]=e>>>24,t}function readInt64BE(e,t){void 0===t&&(t=0);var r=readInt32BE(e,t),n=readInt32BE(e,t+4);return 4294967296*r+n-4294967296*(n>>31)}function readUint64BE(e,t){return void 0===t&&(t=0),4294967296*readUint32BE(e,t)+readUint32BE(e,t+4)}function readInt64LE(e,t){void 0===t&&(t=0);var r=readInt32LE(e,t);return 4294967296*readInt32LE(e,t+4)+r-4294967296*(r>>31)}function readUint64LE(e,t){void 0===t&&(t=0);var r=readUint32LE(e,t);return 4294967296*readUint32LE(e,t+4)+r}function writeUint64BE(e,t,r){return void 0===t&&(t=new Uint8Array(8)),void 0===r&&(r=0),writeUint32BE(e/4294967296>>>0,t,r),writeUint32BE(e>>>0,t,r+4),t}function writeUint64LE(e,t,r){return void 0===t&&(t=new Uint8Array(8)),void 0===r&&(r=0),writeUint32LE(e>>>0,t,r),writeUint32LE(e/4294967296>>>0,t,r+4),t}function readUintBE(e,t,r){if(void 0===r&&(r=0),e%8!=0)throw new Error("readUintBE supports only bitLengths divisible by 8");if(e/8>t.length-r)throw new Error("readUintBE: array is too short for the given bitLength");for(var n=0,o=1,i=e/8+r-1;i>=r;i--)n+=t[i]*o,o*=256;return n}function readUintLE(e,t,r){if(void 0===r&&(r=0),e%8!=0)throw new Error("readUintLE supports only bitLengths divisible by 8");if(e/8>t.length-r)throw new Error("readUintLE: array is too short for the given bitLength");for(var n=0,o=1,i=r;i=n;i--)r[i]=t/o&255,o*=256;return r}function writeUintLE(e,t,r,n){if(void 0===r&&(r=new Uint8Array(e/8)),void 0===n&&(n=0),e%8!=0)throw new Error("writeUintLE supports only bitLengths divisible by 8");if(!int_1.isSafeInteger(t))throw new Error("writeUintLE value must be an integer");for(var o=1,i=n;i256)throw new Error("randomString charset is too long");let a="";const c=r.length,u=256-256%c;for(;t>0;){const e=o(Math.ceil(256*t/u),s);for(let n=0;n0;n++){const o=e[n];o0){for(;this._bufferLength0;)this._buffer[this._bufferLength++]=t[n++],r--;this._bufferLength===this.blockSize&&(i(this._tempHi,this._tempLo,this._stateHi,this._stateLo,this._buffer,0,this.blockSize),this._bufferLength=0)}for(r>=this.blockSize&&(n=i(this._tempHi,this._tempLo,this._stateHi,this._stateLo,t,n,r),r%=this.blockSize);r>0;)this._buffer[this._bufferLength++]=t[n++],r--;return this},n.prototype.finish=function(e){if(!this._finished){var r=this._bytesHashed,n=this._bufferLength,o=r/536870912|0,s=r<<3,a=r%128<112?128:256;this._buffer[n]=128;for(var c=n+1;c0?new Uint8Array(this._buffer):void 0,bufferLength:this._bufferLength,bytesHashed:this._bytesHashed}},n.prototype.restoreState=function(e){return this._stateHi.set(e.stateHi),this._stateLo.set(e.stateLo),this._bufferLength=e.bufferLength,e.buffer&&this._buffer.set(e.buffer),this._bytesHashed=e.bytesHashed,this._finished=!1,this},n.prototype.cleanSavedState=function(e){r.wipe(e.stateHi),r.wipe(e.stateLo),e.buffer&&r.wipe(e.buffer),e.bufferLength=0,e.bytesHashed=0},n}();e.SHA512=n;var o=new Int32Array([1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591]);function i(e,r,n,i,s,a,c){for(var u,l,d,h,f,p,m,y,g=n[0],b=n[1],w=n[2],_=n[3],v=n[4],$=n[5],I=n[6],k=n[7],A=i[0],S=i[1],E=i[2],T=i[3],P=i[4],R=i[5],C=i[6],O=i[7];c>=128;){for(var M=0;M<16;M++){var N=8*M+a;e[M]=t.readUint32BE(s,N),r[M]=t.readUint32BE(s,N+4)}for(M=0;M<80;M++){var B,x,D=g,L=b,U=w,F=_,j=v,q=$,K=I,z=A,H=S,G=E,W=T,V=P,Y=R,J=C;if(f=65535&(l=O),p=l>>>16,m=65535&(u=k),y=u>>>16,f+=65535&(l=(P>>>14|v<<18)^(P>>>18|v<<14)^(v>>>9|P<<23)),p+=l>>>16,m+=65535&(u=(v>>>14|P<<18)^(v>>>18|P<<14)^(P>>>9|v<<23)),y+=u>>>16,f+=65535&(l=P&R^~P&C),p+=l>>>16,m+=65535&(u=v&$^~v&I),y+=u>>>16,u=o[2*M],f+=65535&(l=o[2*M+1]),p+=l>>>16,m+=65535&u,y+=u>>>16,u=e[M%16],p+=(l=r[M%16])>>>16,m+=65535&u,y+=u>>>16,m+=(p+=(f+=65535&l)>>>16)>>>16,f=65535&(l=h=65535&f|p<<16),p=l>>>16,m=65535&(u=d=65535&m|(y+=m>>>16)<<16),y=u>>>16,f+=65535&(l=(A>>>28|g<<4)^(g>>>2|A<<30)^(g>>>7|A<<25)),p+=l>>>16,m+=65535&(u=(g>>>28|A<<4)^(A>>>2|g<<30)^(A>>>7|g<<25)),y+=u>>>16,p+=(l=A&S^A&E^S&E)>>>16,m+=65535&(u=g&b^g&w^b&w),y+=u>>>16,B=65535&(m+=(p+=(f+=65535&l)>>>16)>>>16)|(y+=m>>>16)<<16,x=65535&f|p<<16,f=65535&(l=W),p=l>>>16,m=65535&(u=F),y=u>>>16,p+=(l=h)>>>16,m+=65535&(u=d),y+=u>>>16,b=D,w=L,_=U,v=F=65535&(m+=(p+=(f+=65535&l)>>>16)>>>16)|(y+=m>>>16)<<16,$=j,I=q,k=K,g=B,S=z,E=H,T=G,P=W=65535&f|p<<16,R=V,C=Y,O=J,A=x,M%16==15)for(N=0;N<16;N++)u=e[N],f=65535&(l=r[N]),p=l>>>16,m=65535&u,y=u>>>16,u=e[(N+9)%16],f+=65535&(l=r[(N+9)%16]),p+=l>>>16,m+=65535&u,y+=u>>>16,d=e[(N+1)%16],f+=65535&(l=((h=r[(N+1)%16])>>>1|d<<31)^(h>>>8|d<<24)^(h>>>7|d<<25)),p+=l>>>16,m+=65535&(u=(d>>>1|h<<31)^(d>>>8|h<<24)^d>>>7),y+=u>>>16,d=e[(N+14)%16],p+=(l=((h=r[(N+14)%16])>>>19|d<<13)^(d>>>29|h<<3)^(h>>>6|d<<26))>>>16,m+=65535&(u=(d>>>19|h<<13)^(h>>>29|d<<3)^d>>>6),y+=u>>>16,y+=(m+=(p+=(f+=65535&l)>>>16)>>>16)>>>16,e[N]=65535&m|y<<16,r[N]=65535&f|p<<16}f=65535&(l=A),p=l>>>16,m=65535&(u=g),y=u>>>16,u=n[0],p+=(l=i[0])>>>16,m+=65535&u,y+=u>>>16,y+=(m+=(p+=(f+=65535&l)>>>16)>>>16)>>>16,n[0]=g=65535&m|y<<16,i[0]=A=65535&f|p<<16,f=65535&(l=S),p=l>>>16,m=65535&(u=b),y=u>>>16,u=n[1],p+=(l=i[1])>>>16,m+=65535&u,y+=u>>>16,y+=(m+=(p+=(f+=65535&l)>>>16)>>>16)>>>16,n[1]=b=65535&m|y<<16,i[1]=S=65535&f|p<<16,f=65535&(l=E),p=l>>>16,m=65535&(u=w),y=u>>>16,u=n[2],p+=(l=i[2])>>>16,m+=65535&u,y+=u>>>16,y+=(m+=(p+=(f+=65535&l)>>>16)>>>16)>>>16,n[2]=w=65535&m|y<<16,i[2]=E=65535&f|p<<16,f=65535&(l=T),p=l>>>16,m=65535&(u=_),y=u>>>16,u=n[3],p+=(l=i[3])>>>16,m+=65535&u,y+=u>>>16,y+=(m+=(p+=(f+=65535&l)>>>16)>>>16)>>>16,n[3]=_=65535&m|y<<16,i[3]=T=65535&f|p<<16,f=65535&(l=P),p=l>>>16,m=65535&(u=v),y=u>>>16,u=n[4],p+=(l=i[4])>>>16,m+=65535&u,y+=u>>>16,y+=(m+=(p+=(f+=65535&l)>>>16)>>>16)>>>16,n[4]=v=65535&m|y<<16,i[4]=P=65535&f|p<<16,f=65535&(l=R),p=l>>>16,m=65535&(u=$),y=u>>>16,u=n[5],p+=(l=i[5])>>>16,m+=65535&u,y+=u>>>16,y+=(m+=(p+=(f+=65535&l)>>>16)>>>16)>>>16,n[5]=$=65535&m|y<<16,i[5]=R=65535&f|p<<16,f=65535&(l=C),p=l>>>16,m=65535&(u=I),y=u>>>16,u=n[6],p+=(l=i[6])>>>16,m+=65535&u,y+=u>>>16,y+=(m+=(p+=(f+=65535&l)>>>16)>>>16)>>>16,n[6]=I=65535&m|y<<16,i[6]=C=65535&f|p<<16,f=65535&(l=O),p=l>>>16,m=65535&(u=k),y=u>>>16,u=n[7],p+=(l=i[7])>>>16,m+=65535&u,y+=u>>>16,y+=(m+=(p+=(f+=65535&l)>>>16)>>>16)>>>16,n[7]=k=65535&m|y<<16,i[7]=O=65535&f|p<<16,a+=128,c-=128}return a}e.hash=function(e){var t=new n;t.update(e);var r=t.digest();return t.clean(),r}}(sha512),function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.convertSecretKeyToX25519=e.convertPublicKeyToX25519=e.verify=e.sign=e.extractPublicKeyFromSecretKey=e.generateKeyPair=e.generateKeyPairFromSeed=e.SEED_LENGTH=e.SECRET_KEY_LENGTH=e.PUBLIC_KEY_LENGTH=e.SIGNATURE_LENGTH=void 0;const t=random,r=sha512,n=wipe$1;function o(e){const t=new Float64Array(16);if(e)for(let r=0;r>16&1),r[t-1]&=65535;r[15]=n[15]-32767-(r[14]>>16&1);const e=r[15]>>16&1;r[14]&=65535,p(n,r,1-e)}for(let o=0;o<16;o++)e[2*o]=255&n[o],e[2*o+1]=n[o]>>8}function y(e,t){let r=0;for(let n=0;n<32;n++)r|=e[n]^t[n];return(1&r-1>>>8)-1}function g(e,t){const r=new Uint8Array(32),n=new Uint8Array(32);return m(r,e),m(n,t),y(r,n)}function b(e){const t=new Uint8Array(32);return m(t,e),1&t[0]}function w(e,t,r){for(let n=0;n<16;n++)e[n]=t[n]+r[n]}function _(e,t,r){for(let n=0;n<16;n++)e[n]=t[n]-r[n]}function v(e,t,r){let n,o,i=0,s=0,a=0,c=0,u=0,l=0,d=0,h=0,f=0,p=0,m=0,y=0,g=0,b=0,w=0,_=0,v=0,$=0,I=0,k=0,A=0,S=0,E=0,T=0,P=0,R=0,C=0,O=0,M=0,N=0,B=0,x=r[0],D=r[1],L=r[2],U=r[3],F=r[4],j=r[5],q=r[6],K=r[7],z=r[8],H=r[9],G=r[10],W=r[11],V=r[12],Y=r[13],J=r[14],Q=r[15];n=t[0],i+=n*x,s+=n*D,a+=n*L,c+=n*U,u+=n*F,l+=n*j,d+=n*q,h+=n*K,f+=n*z,p+=n*H,m+=n*G,y+=n*W,g+=n*V,b+=n*Y,w+=n*J,_+=n*Q,n=t[1],s+=n*x,a+=n*D,c+=n*L,u+=n*U,l+=n*F,d+=n*j,h+=n*q,f+=n*K,p+=n*z,m+=n*H,y+=n*G,g+=n*W,b+=n*V,w+=n*Y,_+=n*J,v+=n*Q,n=t[2],a+=n*x,c+=n*D,u+=n*L,l+=n*U,d+=n*F,h+=n*j,f+=n*q,p+=n*K,m+=n*z,y+=n*H,g+=n*G,b+=n*W,w+=n*V,_+=n*Y,v+=n*J,$+=n*Q,n=t[3],c+=n*x,u+=n*D,l+=n*L,d+=n*U,h+=n*F,f+=n*j,p+=n*q,m+=n*K,y+=n*z,g+=n*H,b+=n*G,w+=n*W,_+=n*V,v+=n*Y,$+=n*J,I+=n*Q,n=t[4],u+=n*x,l+=n*D,d+=n*L,h+=n*U,f+=n*F,p+=n*j,m+=n*q,y+=n*K,g+=n*z,b+=n*H,w+=n*G,_+=n*W,v+=n*V,$+=n*Y,I+=n*J,k+=n*Q,n=t[5],l+=n*x,d+=n*D,h+=n*L,f+=n*U,p+=n*F,m+=n*j,y+=n*q,g+=n*K,b+=n*z,w+=n*H,_+=n*G,v+=n*W,$+=n*V,I+=n*Y,k+=n*J,A+=n*Q,n=t[6],d+=n*x,h+=n*D,f+=n*L,p+=n*U,m+=n*F,y+=n*j,g+=n*q,b+=n*K,w+=n*z,_+=n*H,v+=n*G,$+=n*W,I+=n*V,k+=n*Y,A+=n*J,S+=n*Q,n=t[7],h+=n*x,f+=n*D,p+=n*L,m+=n*U,y+=n*F,g+=n*j,b+=n*q,w+=n*K,_+=n*z,v+=n*H,$+=n*G,I+=n*W,k+=n*V,A+=n*Y,S+=n*J,E+=n*Q,n=t[8],f+=n*x,p+=n*D,m+=n*L,y+=n*U,g+=n*F,b+=n*j,w+=n*q,_+=n*K,v+=n*z,$+=n*H,I+=n*G,k+=n*W,A+=n*V,S+=n*Y,E+=n*J,T+=n*Q,n=t[9],p+=n*x,m+=n*D,y+=n*L,g+=n*U,b+=n*F,w+=n*j,_+=n*q,v+=n*K,$+=n*z,I+=n*H,k+=n*G,A+=n*W,S+=n*V,E+=n*Y,T+=n*J,P+=n*Q,n=t[10],m+=n*x,y+=n*D,g+=n*L,b+=n*U,w+=n*F,_+=n*j,v+=n*q,$+=n*K,I+=n*z,k+=n*H,A+=n*G,S+=n*W,E+=n*V,T+=n*Y,P+=n*J,R+=n*Q,n=t[11],y+=n*x,g+=n*D,b+=n*L,w+=n*U,_+=n*F,v+=n*j,$+=n*q,I+=n*K,k+=n*z,A+=n*H,S+=n*G,E+=n*W,T+=n*V,P+=n*Y,R+=n*J,C+=n*Q,n=t[12],g+=n*x,b+=n*D,w+=n*L,_+=n*U,v+=n*F,$+=n*j,I+=n*q,k+=n*K,A+=n*z,S+=n*H,E+=n*G,T+=n*W,P+=n*V,R+=n*Y,C+=n*J,O+=n*Q,n=t[13],b+=n*x,w+=n*D,_+=n*L,v+=n*U,$+=n*F,I+=n*j,k+=n*q,A+=n*K,S+=n*z,E+=n*H,T+=n*G,P+=n*W,R+=n*V,C+=n*Y,O+=n*J,M+=n*Q,n=t[14],w+=n*x,_+=n*D,v+=n*L,$+=n*U,I+=n*F,k+=n*j,A+=n*q,S+=n*K,E+=n*z,T+=n*H,P+=n*G,R+=n*W,C+=n*V,O+=n*Y,M+=n*J,N+=n*Q,n=t[15],_+=n*x,v+=n*D,$+=n*L,I+=n*U,k+=n*F,A+=n*j,S+=n*q,E+=n*K,T+=n*z,P+=n*H,R+=n*G,C+=n*W,O+=n*V,M+=n*Y,N+=n*J,B+=n*Q,i+=38*v,s+=38*$,a+=38*I,c+=38*k,u+=38*A,l+=38*S,d+=38*E,h+=38*T,f+=38*P,p+=38*R,m+=38*C,y+=38*O,g+=38*M,b+=38*N,w+=38*B,o=1,n=i+o+65535,o=Math.floor(n/65536),i=n-65536*o,n=s+o+65535,o=Math.floor(n/65536),s=n-65536*o,n=a+o+65535,o=Math.floor(n/65536),a=n-65536*o,n=c+o+65535,o=Math.floor(n/65536),c=n-65536*o,n=u+o+65535,o=Math.floor(n/65536),u=n-65536*o,n=l+o+65535,o=Math.floor(n/65536),l=n-65536*o,n=d+o+65535,o=Math.floor(n/65536),d=n-65536*o,n=h+o+65535,o=Math.floor(n/65536),h=n-65536*o,n=f+o+65535,o=Math.floor(n/65536),f=n-65536*o,n=p+o+65535,o=Math.floor(n/65536),p=n-65536*o,n=m+o+65535,o=Math.floor(n/65536),m=n-65536*o,n=y+o+65535,o=Math.floor(n/65536),y=n-65536*o,n=g+o+65535,o=Math.floor(n/65536),g=n-65536*o,n=b+o+65535,o=Math.floor(n/65536),b=n-65536*o,n=w+o+65535,o=Math.floor(n/65536),w=n-65536*o,n=_+o+65535,o=Math.floor(n/65536),_=n-65536*o,i+=o-1+37*(o-1),o=1,n=i+o+65535,o=Math.floor(n/65536),i=n-65536*o,n=s+o+65535,o=Math.floor(n/65536),s=n-65536*o,n=a+o+65535,o=Math.floor(n/65536),a=n-65536*o,n=c+o+65535,o=Math.floor(n/65536),c=n-65536*o,n=u+o+65535,o=Math.floor(n/65536),u=n-65536*o,n=l+o+65535,o=Math.floor(n/65536),l=n-65536*o,n=d+o+65535,o=Math.floor(n/65536),d=n-65536*o,n=h+o+65535,o=Math.floor(n/65536),h=n-65536*o,n=f+o+65535,o=Math.floor(n/65536),f=n-65536*o,n=p+o+65535,o=Math.floor(n/65536),p=n-65536*o,n=m+o+65535,o=Math.floor(n/65536),m=n-65536*o,n=y+o+65535,o=Math.floor(n/65536),y=n-65536*o,n=g+o+65535,o=Math.floor(n/65536),g=n-65536*o,n=b+o+65535,o=Math.floor(n/65536),b=n-65536*o,n=w+o+65535,o=Math.floor(n/65536),w=n-65536*o,n=_+o+65535,o=Math.floor(n/65536),_=n-65536*o,i+=o-1+37*(o-1),e[0]=i,e[1]=s,e[2]=a,e[3]=c,e[4]=u,e[5]=l,e[6]=d,e[7]=h,e[8]=f,e[9]=p,e[10]=m,e[11]=y,e[12]=g,e[13]=b,e[14]=w,e[15]=_}function $(e,t){v(e,t,t)}function I(e,t){const r=o();let n;for(n=0;n<16;n++)r[n]=t[n];for(n=253;n>=0;n--)$(r,r),2!==n&&4!==n&&v(r,r,t);for(n=0;n<16;n++)e[n]=r[n]}function k(e,t){const r=o(),n=o(),i=o(),s=o(),a=o(),u=o(),l=o(),d=o(),h=o();_(r,e[1],e[0]),_(h,t[1],t[0]),v(r,r,h),w(n,e[0],e[1]),w(h,t[0],t[1]),v(n,n,h),v(i,e[3],t[3]),v(i,i,c),v(s,e[2],t[2]),w(s,s,s),_(a,n,r),_(u,s,i),w(l,s,i),w(d,n,r),v(e[0],a,u),v(e[1],d,l),v(e[2],l,u),v(e[3],a,d)}function A(e,t,r){for(let n=0;n<4;n++)p(e[n],t[n],r)}function S(e,t){const r=o(),n=o(),i=o();I(i,t[2]),v(r,t[0],i),v(n,t[1],i),m(e,n),e[31]^=b(r)<<7}function E(e,t,r){h(e[0],i),h(e[1],s),h(e[2],s),h(e[3],i);for(let n=255;n>=0;--n){const o=r[n/8|0]>>(7&n)&1;A(e,t,o),k(t,e),k(e,e),A(e,t,o)}}function T(e,t){const r=[o(),o(),o(),o()];h(r[0],u),h(r[1],l),h(r[2],s),v(r[3],u,l),E(e,r,t)}function P(t){if(t.length!==e.SEED_LENGTH)throw new Error(`ed25519: seed must be ${e.SEED_LENGTH} bytes`);const n=(0,r.hash)(t);n[0]&=248,n[31]&=127,n[31]|=64;const i=new Uint8Array(32),s=[o(),o(),o(),o()];T(s,n),S(i,s);const a=new Uint8Array(64);return a.set(t),a.set(i,32),{publicKey:i,secretKey:a}}e.generateKeyPairFromSeed=P,e.generateKeyPair=function(e){const r=(0,t.randomBytes)(32,e),o=P(r);return(0,n.wipe)(r),o},e.extractPublicKeyFromSecretKey=function(t){if(t.length!==e.SECRET_KEY_LENGTH)throw new Error(`ed25519: secret key must be ${e.SECRET_KEY_LENGTH} bytes`);return new Uint8Array(t.subarray(32))};const R=new Float64Array([237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16]);function C(e,t){let r,n,o,i;for(n=63;n>=32;--n){for(r=0,o=n-32,i=n-12;o>4)*R[o],r=t[o]>>8,t[o]&=255;for(o=0;o<32;o++)t[o]-=r*R[o];for(n=0;n<32;n++)t[n+1]+=t[n]>>8,e[n]=255&t[n]}function O(e){const t=new Float64Array(64);for(let r=0;r<64;r++)t[r]=e[r];for(let r=0;r<64;r++)e[r]=0;C(e,t)}function M(e,t){const r=o(),n=o(),c=o(),u=o(),l=o(),f=o(),p=o();return h(e[2],s),function(e,t){for(let r=0;r<16;r++)e[r]=t[2*r]+(t[2*r+1]<<8);e[15]&=32767}(e[1],t),$(c,e[1]),v(u,c,a),_(c,c,e[2]),w(u,e[2],u),$(l,u),$(f,l),v(p,f,l),v(r,p,c),v(r,r,u),function(e,t){const r=o();let n;for(n=0;n<16;n++)r[n]=t[n];for(n=250;n>=0;n--)$(r,r),1!==n&&v(r,r,t);for(n=0;n<16;n++)e[n]=r[n]}(r,r),v(r,r,c),v(r,r,u),v(r,r,u),v(e[0],r,u),$(n,e[0]),v(n,n,u),g(n,c)&&v(e[0],e[0],d),$(n,e[0]),v(n,n,u),g(n,c)?-1:(b(e[0])===t[31]>>7&&_(e[0],i,e[0]),v(e[3],e[0],e[1]),0)}e.sign=function(e,t){const n=new Float64Array(64),i=[o(),o(),o(),o()],s=(0,r.hash)(e.subarray(0,32));s[0]&=248,s[31]&=127,s[31]|=64;const a=new Uint8Array(64);a.set(s.subarray(32),32);const c=new r.SHA512;c.update(a.subarray(32)),c.update(t);const u=c.digest();c.clean(),O(u),T(i,u),S(a,i),c.reset(),c.update(a.subarray(0,32)),c.update(e.subarray(32)),c.update(t);const l=c.digest();O(l);for(let r=0;r<32;r++)n[r]=u[r];for(let r=0;r<32;r++)for(let e=0;e<32;e++)n[r+e]+=l[r]*s[e];return C(a.subarray(32),n),a},e.verify=function(t,n,i){const s=new Uint8Array(32),a=[o(),o(),o(),o()],c=[o(),o(),o(),o()];if(i.length!==e.SIGNATURE_LENGTH)throw new Error(`ed25519: signature must be ${e.SIGNATURE_LENGTH} bytes`);if(M(c,t))return!1;const u=new r.SHA512;u.update(i.subarray(0,32)),u.update(t),u.update(n);const l=u.digest();return O(l),E(a,c,l),T(c,i.subarray(32)),k(a,c),S(s,a),!y(i,s)},e.convertPublicKeyToX25519=function(e){let t=[o(),o(),o(),o()];if(M(t,e))throw new Error("Ed25519: invalid public key");let r=o(),n=o(),i=t[1];w(r,s,i),_(n,s,i),I(n,n),v(r,r,n);let a=new Uint8Array(32);return m(a,r),a},e.convertSecretKeyToX25519=function(e){const t=(0,r.hash)(e.subarray(0,32));t[0]&=248,t[31]&=127,t[31]|=64;const o=new Uint8Array(t.subarray(0,32));return(0,n.wipe)(t),o}}(ed25519);const JWT_IRIDIUM_ALG="EdDSA",JWT_IRIDIUM_TYP="JWT",JWT_DELIMITER=".",JWT_ENCODING="base64url",JSON_ENCODING="utf8",DATA_ENCODING="utf8",DID_DELIMITER=":",DID_PREFIX="did",DID_METHOD="key",MULTICODEC_ED25519_ENCODING="base58btc",MULTICODEC_ED25519_BASE="z",MULTICODEC_ED25519_HEADER="K36",KEY_PAIR_SEED_LENGTH=32;function allocUnsafe$1(e=0){return null!=globalThis.Buffer&&null!=globalThis.Buffer.allocUnsafe?globalThis.Buffer.allocUnsafe(e):new Uint8Array(e)}function concat(e,t){t||(t=e.reduce(((e,t)=>e+t.length),0));const r=allocUnsafe$1(t);let n=0;for(const o of e)r.set(o,n),n+=o.length;return r}function base$2(e,t){if(e.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n>>0,s=new Uint8Array(i);e[t];){var l=r[e.charCodeAt(t)];if(255===l)return;for(var d=0,h=i-1;(0!==l||d>>0,s[h]=l%256>>>0,l=l/256>>>0;if(0!==l)throw new Error("Non-zero carry");o=d,t++}if(" "!==e[t]){for(var f=i-o;f!==i&&0===s[f];)f++;for(var p=new Uint8Array(n+(i-f)),m=n;f!==i;)p[m++]=s[f++];return p}}}return{encode:function(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(0===t.length)return"";for(var r=0,n=0,o=0,i=t.length;o!==i&&0===t[o];)o++,r++;for(var s=(i-o)*l+1>>>0,u=new Uint8Array(s);o!==i;){for(var d=t[o],h=0,f=s-1;(0!==d||h>>0,u[f]=d%a>>>0,d=d/a>>>0;if(0!==d)throw new Error("Non-zero carry");n=h,o++}for(var p=s-n;p!==s&&0===u[p];)p++;for(var m=c.repeat(r);p{if(e instanceof Uint8Array&&"Uint8Array"===e.constructor.name)return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw new Error("Unknown type, must be binary type")},fromString$2=e=>(new TextEncoder).encode(e),toString$2=e=>(new TextDecoder).decode(e);class Encoder{constructor(e,t,r){this.name=e,this.prefix=t,this.baseEncode=r}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}}class Decoder{constructor(e,t,r){if(this.name=e,this.prefix=t,void 0===t.codePointAt(0))throw new Error("Invalid prefix character");this.prefixCodePoint=t.codePointAt(0),this.baseDecode=r}decode(e){if("string"==typeof e){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}throw Error("Can only multibase decode strings")}or(e){return or$2(this,e)}}class ComposedDecoder{constructor(e){this.decoders=e}or(e){return or$2(this,e)}decode(e){const t=e[0],r=this.decoders[t];if(r)return r.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}}const or$2=(e,t)=>new ComposedDecoder({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}});class Codec{constructor(e,t,r,n){this.name=e,this.prefix=t,this.baseEncode=r,this.baseDecode=n,this.encoder=new Encoder(e,t,r),this.decoder=new Decoder(e,t,n)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}}const from$1=({name:e,prefix:t,encode:r,decode:n})=>new Codec(e,t,r,n),baseX=({prefix:e,name:t,alphabet:r})=>{const{encode:n,decode:o}=_brrp__multiformats_scope_baseX(r,t);return from$1({prefix:e,name:t,encode:n,decode:e=>coerce(o(e))})},decode$2=(e,t,r,n)=>{const o={};for(let l=0;l=8&&(a-=8,s[u++]=255&c>>a)}if(a>=r||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return s},encode$1=(e,t,r)=>{const n="="===t[t.length-1],o=(1<r;)s-=r,i+=t[o&a>>s];if(s&&(i+=t[o&a<from$1({prefix:t,name:e,encode:e=>encode$1(e,n,r),decode:t=>decode$2(t,n,r,e)}),identity=from$1({prefix:"\0",name:"identity",encode:e=>toString$2(e),decode:e=>fromString$2(e)}),identityBase=Object.freeze(Object.defineProperty({__proto__:null,identity:identity},Symbol.toStringTag,{value:"Module"})),base2=rfc4648({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1}),base2$1=Object.freeze(Object.defineProperty({__proto__:null,base2:base2},Symbol.toStringTag,{value:"Module"})),base8=rfc4648({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3}),base8$1=Object.freeze(Object.defineProperty({__proto__:null,base8:base8},Symbol.toStringTag,{value:"Module"})),base10=baseX({prefix:"9",name:"base10",alphabet:"0123456789"}),base10$1=Object.freeze(Object.defineProperty({__proto__:null,base10:base10},Symbol.toStringTag,{value:"Module"})),base16=rfc4648({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),base16upper=rfc4648({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4}),base16$1=Object.freeze(Object.defineProperty({__proto__:null,base16:base16,base16upper:base16upper},Symbol.toStringTag,{value:"Module"})),base32=rfc4648({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),base32upper=rfc4648({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),base32pad=rfc4648({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),base32padupper=rfc4648({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),base32hex=rfc4648({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),base32hexupper=rfc4648({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),base32hexpad=rfc4648({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),base32hexpadupper=rfc4648({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),base32z=rfc4648({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5}),base32$1=Object.freeze(Object.defineProperty({__proto__:null,base32:base32,base32hex:base32hex,base32hexpad:base32hexpad,base32hexpadupper:base32hexpadupper,base32hexupper:base32hexupper,base32pad:base32pad,base32padupper:base32padupper,base32upper:base32upper,base32z:base32z},Symbol.toStringTag,{value:"Module"})),base36=baseX({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),base36upper=baseX({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"}),base36$1=Object.freeze(Object.defineProperty({__proto__:null,base36:base36,base36upper:base36upper},Symbol.toStringTag,{value:"Module"})),base58btc=baseX({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),base58flickr=baseX({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"}),base58=Object.freeze(Object.defineProperty({__proto__:null,base58btc:base58btc,base58flickr:base58flickr},Symbol.toStringTag,{value:"Module"})),base64=rfc4648({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),base64pad=rfc4648({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),base64url=rfc4648({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),base64urlpad=rfc4648({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6}),base64$1=Object.freeze(Object.defineProperty({__proto__:null,base64:base64,base64pad:base64pad,base64url:base64url,base64urlpad:base64urlpad},Symbol.toStringTag,{value:"Module"})),alphabet=Array.from("🚀🪐☄🛰🌌🌑🌒🌓🌔🌕🌖🌗🌘🌍🌏🌎🐉☀💻🖥💾💿😂❤😍🤣😊🙏💕😭😘👍😅👏😁🔥🥰💔💖💙😢🤔😆🙄💪😉☺👌🤗💜😔😎😇🌹🤦🎉💞✌✨🤷😱😌🌸🙌😋💗💚😏💛🙂💓🤩😄😀🖤😃💯🙈👇🎶😒🤭❣😜💋👀😪😑💥🙋😞😩😡🤪👊🥳😥🤤👉💃😳✋😚😝😴🌟😬🙃🍀🌷😻😓⭐✅🥺🌈😈🤘💦✔😣🏃💐☹🎊💘😠☝😕🌺🎂🌻😐🖕💝🙊😹🗣💫💀👑🎵🤞😛🔴😤🌼😫⚽🤙☕🏆🤫👈😮🙆🍻🍃🐶💁😲🌿🧡🎁⚡🌞🎈❌✊👋😰🤨😶🤝🚶💰🍓💢🤟🙁🚨💨🤬✈🎀🍺🤓😙💟🌱😖👶🥴▶➡❓💎💸⬇😨🌚🦋😷🕺⚠🙅😟😵👎🤲🤠🤧📌🔵💅🧐🐾🍒😗🤑🌊🤯🐷☎💧😯💆👆🎤🙇🍑❄🌴💣🐸💌📍🥀🤢👅💡💩👐📸👻🤐🤮🎼🥵🚩🍎🍊👼💍📣🥂"),alphabetBytesToChars=alphabet.reduce(((e,t,r)=>(e[r]=t,e)),[]),alphabetCharsToBytes=alphabet.reduce(((e,t,r)=>(e[t.codePointAt(0)]=r,e)),[]);function encode(e){return e.reduce(((e,t)=>e+=alphabetBytesToChars[t]),"")}function decode$1(e){const t=[];for(const r of e){const e=alphabetCharsToBytes[r.codePointAt(0)];if(void 0===e)throw new Error(`Non-base256emoji character: ${r}`);t.push(e)}return new Uint8Array(t)}const base256emoji=from$1({prefix:"🚀",name:"base256emoji",encode:encode,decode:decode$1}),base256emoji$1=Object.freeze(Object.defineProperty({__proto__:null,base256emoji:base256emoji},Symbol.toStringTag,{value:"Module"}));new TextEncoder,new TextDecoder;const bases={...identityBase,...base2$1,...base8$1,...base10$1,...base16$1,...base32$1,...base36$1,...base58,...base64$1,...base256emoji$1};function createCodec(e,t,r,n){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:r},decoder:{decode:n}}}const string=createCodec("utf8","u",(e=>"u"+new TextDecoder("utf8").decode(e)),(e=>(new TextEncoder).encode(e.substring(1)))),ascii=createCodec("ascii","a",(e=>{let t="a";for(let r=0;r{const t=allocUnsafe$1((e=e.substring(1)).length);for(let r=0;rn.getAttribute(e))).filter((e=>!!e&&t.includes(e)));if(o.length&&o){const e=n.getAttribute("content");if(e)return e}}return""}const n=function(){let t=r("name","og:site_name","og:title","twitter:title");return t||(t=e.title),t}();return{description:r("description","og:description","twitter:description","keywords"),url:t.origin,icons:function(){const r=e.getElementsByTagName("link"),n=[];for(let e=0;e-1){const e=o.getAttribute("href");if(e)if(-1===e.toLowerCase().indexOf("https:")&&-1===e.toLowerCase().indexOf("http:")&&0!==e.indexOf("//")){let r=t.protocol+"//"+t.host;if(0===e.indexOf("/"))r+=e;else{const n=t.pathname.split("/");n.pop();r+=n.join("/")+"/"+e}n.push(r)}else if(0===e.indexOf("//")){const r=t.protocol+e;n.push(r)}else n.push(e)}}return n}(),name:n}}cjs$5.getWindowMetadata=getWindowMetadata$2;var queryString={},strictUriEncode=e=>encodeURIComponent(e).replace(/[!'()*]/g,(e=>`%${e.charCodeAt(0).toString(16).toUpperCase()}`)),token="%[a-f0-9]{2}",singleMatcher=new RegExp("("+token+")|([^%]+?)","gi"),multiMatcher=new RegExp("("+token+")+","gi");function decodeComponents(e,t){try{return[decodeURIComponent(e.join(""))]}catch(o){}if(1===e.length)return e;t=t||1;var r=e.slice(0,t),n=e.slice(t);return Array.prototype.concat.call([],decodeComponents(r),decodeComponents(n))}function decode(e){try{return decodeURIComponent(e)}catch(n){for(var t=e.match(singleMatcher)||[],r=1;r{if("string"!=typeof e||"string"!=typeof t)throw new TypeError("Expected the arguments to be of type `string`");if(""===t)return[e];const r=e.indexOf(t);return-1===r?[e]:[e.slice(0,r),e.slice(r+t.length)]},filterObj=function(e,t){for(var r={},n=Object.keys(e),o=Array.isArray(t),i=0;iNumber(e)-Number(t))).map((t=>e[t])):e}function l(e){const t=e.indexOf("#");return-1!==t&&(e=e.slice(0,t)),e}function d(e){const t=(e=l(e)).indexOf("?");return-1===t?"":e.slice(t+1)}function h(e,t){return t.parseNumbers&&!Number.isNaN(Number(e))&&"string"==typeof e&&""!==e.trim()?e=Number(e):!t.parseBooleans||null===e||"true"!==e.toLowerCase()&&"false"!==e.toLowerCase()||(e="true"===e.toLowerCase()),e}function f(e,t){s((t=Object.assign({decode:!0,sort:!0,arrayFormat:"none",arrayFormatSeparator:",",parseNumbers:!1,parseBooleans:!1},t)).arrayFormatSeparator);const r=function(e){let t;switch(e.arrayFormat){case"index":return(e,r,n)=>{t=/\[(\d*)\]$/.exec(e),e=e.replace(/\[\d*\]$/,""),t?(void 0===n[e]&&(n[e]={}),n[e][t[1]]=r):n[e]=r};case"bracket":return(e,r,n)=>{t=/(\[\])$/.exec(e),e=e.replace(/\[\]$/,""),t?void 0!==n[e]?n[e]=[].concat(n[e],r):n[e]=[r]:n[e]=r};case"colon-list-separator":return(e,r,n)=>{t=/(:list)$/.exec(e),e=e.replace(/:list$/,""),t?void 0!==n[e]?n[e]=[].concat(n[e],r):n[e]=[r]:n[e]=r};case"comma":case"separator":return(t,r,n)=>{const o="string"==typeof r&&r.includes(e.arrayFormatSeparator),i="string"==typeof r&&!o&&c(r,e).includes(e.arrayFormatSeparator);r=i?c(r,e):r;const s=o||i?r.split(e.arrayFormatSeparator).map((t=>c(t,e))):null===r?r:c(r,e);n[t]=s};case"bracket-separator":return(t,r,n)=>{const o=/(\[\])$/.test(t);if(t=t.replace(/\[\]$/,""),!o)return void(n[t]=r?c(r,e):r);const i=null===r?[]:r.split(e.arrayFormatSeparator).map((t=>c(t,e)));void 0!==n[t]?n[t]=[].concat(n[t],i):n[t]=i};default:return(e,t,r)=>{void 0!==r[e]?r[e]=[].concat(r[e],t):r[e]=t}}}(t),o=Object.create(null);if("string"!=typeof e)return o;if(!(e=e.trim().replace(/^[?#&]/,"")))return o;for(const i of e.split("&")){if(""===i)continue;let[e,s]=n(t.decode?i.replace(/\+/g," "):i,"=");s=void 0===s?null:["comma","separator","bracket-separator"].includes(t.arrayFormat)?s:c(s,t),r(c(e,t),s,o)}for(const n of Object.keys(o)){const e=o[n];if("object"==typeof e&&null!==e)for(const r of Object.keys(e))e[r]=h(e[r],t);else o[n]=h(e,t)}return!1===t.sort?o:(!0===t.sort?Object.keys(o).sort():Object.keys(o).sort(t.sort)).reduce(((e,t)=>{const r=o[t];return Boolean(r)&&"object"==typeof r&&!Array.isArray(r)?e[t]=u(r):e[t]=r,e}),Object.create(null))}e.extract=d,e.parse=f,e.stringify=(e,t)=>{if(!e)return"";s((t=Object.assign({encode:!0,strict:!0,arrayFormat:"none",arrayFormatSeparator:","},t)).arrayFormatSeparator);const r=r=>t.skipNull&&null==e[r]||t.skipEmptyString&&""===e[r],n=function(e){switch(e.arrayFormat){case"index":return t=>(r,n)=>{const o=r.length;return void 0===n||e.skipNull&&null===n||e.skipEmptyString&&""===n?r:null===n?[...r,[a(t,e),"[",o,"]"].join("")]:[...r,[a(t,e),"[",a(o,e),"]=",a(n,e)].join("")]};case"bracket":return t=>(r,n)=>void 0===n||e.skipNull&&null===n||e.skipEmptyString&&""===n?r:null===n?[...r,[a(t,e),"[]"].join("")]:[...r,[a(t,e),"[]=",a(n,e)].join("")];case"colon-list-separator":return t=>(r,n)=>void 0===n||e.skipNull&&null===n||e.skipEmptyString&&""===n?r:null===n?[...r,[a(t,e),":list="].join("")]:[...r,[a(t,e),":list=",a(n,e)].join("")];case"comma":case"separator":case"bracket-separator":{const t="bracket-separator"===e.arrayFormat?"[]=":"=";return r=>(n,o)=>void 0===o||e.skipNull&&null===o||e.skipEmptyString&&""===o?n:(o=null===o?"":o,0===n.length?[[a(r,e),t,a(o,e)].join("")]:[[n,a(o,e)].join(e.arrayFormatSeparator)])}default:return t=>(r,n)=>void 0===n||e.skipNull&&null===n||e.skipEmptyString&&""===n?r:null===n?[...r,a(t,e)]:[...r,[a(t,e),"=",a(n,e)].join("")]}}(t),o={};for(const s of Object.keys(e))r(s)||(o[s]=e[s]);const i=Object.keys(o);return!1!==t.sort&&i.sort(t.sort),i.map((r=>{const o=e[r];return void 0===o?"":null===o?a(r,t):Array.isArray(o)?0===o.length&&"bracket-separator"===t.arrayFormat?a(r,t)+"[]":o.reduce(n(r),[]).join("&"):a(r,t)+"="+a(o,t)})).filter((e=>e.length>0)).join("&")},e.parseUrl=(e,t)=>{t=Object.assign({decode:!0},t);const[r,o]=n(e,"#");return Object.assign({url:r.split("?")[0]||"",query:f(d(e),t)},t&&t.parseFragmentIdentifier&&o?{fragmentIdentifier:c(o,t)}:{})},e.stringifyUrl=(t,r)=>{r=Object.assign({encode:!0,strict:!0,[i]:!0},r);const n=l(t.url).split("?")[0]||"",o=e.extract(t.url),s=e.parse(o,{sort:!1}),c=Object.assign(s,t.query);let u=e.stringify(c,r);u&&(u=`?${u}`);let d=function(e){let t="";const r=e.indexOf("#");return-1!==r&&(t=e.slice(r)),t}(t.url);return t.fragmentIdentifier&&(d=`#${r[i]?a(t.fragmentIdentifier,r):t.fragmentIdentifier}`),`${n}${u}${d}`},e.pick=(t,r,n)=>{n=Object.assign({parseFragmentIdentifier:!0,[i]:!1},n);const{url:s,query:a,fragmentIdentifier:c}=e.parseUrl(t,n);return e.stringifyUrl({url:s,query:o(a,r),fragmentIdentifier:c},n)},e.exclude=(t,r,n)=>{const o=Array.isArray(r)?e=>!r.includes(e):(e,t)=>!r(e,t);return e.pick(t,o,n)}}(queryString);const messagePrefix="Ethereum Signed Message:\n";function hashMessage(e){return"string"==typeof e&&(e=toUtf8Bytes(e)),keccak256(concat$1([toUtf8Bytes(messagePrefix),toUtf8Bytes(String(e.length)),e]))}function createCommonjsModule(e,t,r){return e(r={path:t,exports:{},require:function(e,t){return commonjsRequire(e,null==t?r.path:t)}},r.exports),r.exports}function commonjsRequire(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}var minimalisticAssert=assert$9;function assert$9(e,t){if(!e)throw new Error(t||"Assertion failed")}assert$9.equal=function(e,t,r){if(e!=t)throw new Error(r||"Assertion failed: "+e+" != "+t)};var utils_1=createCommonjsModule((function(e,t){var r=t;function n(e){return 1===e.length?"0"+e:e}function o(e){for(var t="",r=0;r>8,s=255&o;i?r.push(i,s):r.push(s)}return r},r.zero2=n,r.toHex=o,r.encode=function(e,t){return"hex"===t?o(e):e}})),utils_1$1=createCommonjsModule((function(e,t){var r=t;r.assert=minimalisticAssert,r.toArray=utils_1.toArray,r.zero2=utils_1.zero2,r.toHex=utils_1.toHex,r.encode=utils_1.encode,r.getNAF=function(e,t,r){var n,o=new Array(Math.max(e.bitLength(),r)+1);for(n=0;n(i>>1)-1?(i>>1)-c:c,s.isubn(a)):a=0,o[n]=a,s.iushrn(1)}return o},r.getJSF=function(e,t){var r=[[],[]];e=e.clone(),t=t.clone();for(var n,o=0,i=0;e.cmpn(-o)>0||t.cmpn(-i)>0;){var s,a,c=e.andln(3)+o&3,u=t.andln(3)+i&3;3===c&&(c=-1),3===u&&(u=-1),s=1&c?3!==(n=e.andln(7)+o&7)&&5!==n||2!==u?c:-c:0,r[0].push(s),a=1&u?3!==(n=t.andln(7)+i&7)&&5!==n||2!==c?u:-u:0,r[1].push(a),2*o===s+1&&(o=1-o),2*i===a+1&&(i=1-i),e.iushrn(1),t.iushrn(1)}return r},r.cachedProperty=function(e,t,r){var n="_"+t;e.prototype[t]=function(){return void 0!==this[n]?this[n]:this[n]=r.call(this)}},r.parseBytes=function(e){return"string"==typeof e?r.toArray(e,"hex"):e},r.intFromLE=function(e){return new BN$g(e,"hex","le")}})),getNAF$1=utils_1$1.getNAF,getJSF$1=utils_1$1.getJSF,assert$1$1=utils_1$1.assert;function BaseCurve$1(e,t){this.type=e,this.p=new BN$g(t.p,16),this.red=t.prime?BN$g.red(t.prime):BN$g.mont(this.p),this.zero=new BN$g(0).toRed(this.red),this.one=new BN$g(1).toRed(this.red),this.two=new BN$g(2).toRed(this.red),this.n=t.n&&new BN$g(t.n,16),this.g=t.g&&this.pointFromJSON(t.g,t.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var r=this.n&&this.p.div(this.n);!r||r.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}var base$1=BaseCurve$1;function BasePoint$1(e,t){this.curve=e,this.type=t,this.precomputed=null}BaseCurve$1.prototype.point=function(){throw new Error("Not implemented")},BaseCurve$1.prototype.validate=function(){throw new Error("Not implemented")},BaseCurve$1.prototype._fixedNafMul=function(e,t){assert$1$1(e.precomputed);var r=e._getDoubles(),n=getNAF$1(t,1,this._bitLength),o=(1<=i;c--)s=(s<<1)+n[c];a.push(s)}for(var u=this.jpoint(null,null,null),l=this.jpoint(null,null,null),d=o;d>0;d--){for(i=0;i=0;a--){for(var c=0;a>=0&&0===i[a];a--)c++;if(a>=0&&c++,s=s.dblp(c),a<0)break;var u=i[a];assert$1$1(0!==u),s="affine"===e.type?u>0?s.mixedAdd(o[u-1>>1]):s.mixedAdd(o[-u-1>>1].neg()):u>0?s.add(o[u-1>>1]):s.add(o[-u-1>>1].neg())}return"affine"===e.type?s.toP():s},BaseCurve$1.prototype._wnafMulAdd=function(e,t,r,n,o){var i,s,a,c=this._wnafT1,u=this._wnafT2,l=this._wnafT3,d=0;for(i=0;i=1;i-=2){var f=i-1,p=i;if(1===c[f]&&1===c[p]){var m=[t[f],null,null,t[p]];0===t[f].y.cmp(t[p].y)?(m[1]=t[f].add(t[p]),m[2]=t[f].toJ().mixedAdd(t[p].neg())):0===t[f].y.cmp(t[p].y.redNeg())?(m[1]=t[f].toJ().mixedAdd(t[p]),m[2]=t[f].add(t[p].neg())):(m[1]=t[f].toJ().mixedAdd(t[p]),m[2]=t[f].toJ().mixedAdd(t[p].neg()));var y=[-3,-1,-5,-7,0,7,5,1,3],g=getJSF$1(r[f],r[p]);for(d=Math.max(g[0].length,d),l[f]=new Array(d),l[p]=new Array(d),s=0;s=0;i--){for(var $=0;i>=0;){var I=!0;for(s=0;s=0&&$++,_=_.dblp($),i<0)break;for(s=0;s0?a=u[s][k-1>>1]:k<0&&(a=u[s][-k-1>>1].neg()),_="affine"===a.type?_.mixedAdd(a):_.add(a))}}for(i=0;i=Math.ceil((e.bitLength()+1)/t.step)},BasePoint$1.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var r=[this],n=this,o=0;o=0&&(i=t,s=r),n.negative&&(n=n.neg(),o=o.neg()),i.negative&&(i=i.neg(),s=s.neg()),[{a:n,b:o},{a:i,b:s}]},ShortCurve$1.prototype._endoSplit=function(e){var t=this.endo.basis,r=t[0],n=t[1],o=n.b.mul(e).divRound(this.n),i=r.b.neg().mul(e).divRound(this.n),s=o.mul(r.a),a=i.mul(n.a),c=o.mul(r.b),u=i.mul(n.b);return{k1:e.sub(s).sub(a),k2:c.add(u).neg()}},ShortCurve$1.prototype.pointFromX=function(e,t){(e=new BN$g(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),n=r.redSqrt();if(0!==n.redSqr().redSub(r).cmp(this.zero))throw new Error("invalid point");var o=n.fromRed().isOdd();return(t&&!o||!t&&o)&&(n=n.redNeg()),this.point(e,n)},ShortCurve$1.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,r=e.y,n=this.a.redMul(t),o=t.redSqr().redMul(t).redIAdd(n).redIAdd(this.b);return 0===r.redSqr().redISub(o).cmpn(0)},ShortCurve$1.prototype._endoWnafMulAdd=function(e,t,r){for(var n=this._endoWnafT1,o=this._endoWnafT2,i=0;i":""},Point$3.prototype.isInfinity=function(){return this.inf},Point$3.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var r=t.redSqr().redISub(this.x).redISub(e.x),n=t.redMul(this.x.redSub(r)).redISub(this.y);return this.curve.point(r,n)},Point$3.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,r=this.x.redSqr(),n=e.redInvm(),o=r.redAdd(r).redIAdd(r).redIAdd(t).redMul(n),i=o.redSqr().redISub(this.x.redAdd(this.x)),s=o.redMul(this.x.redSub(i)).redISub(this.y);return this.curve.point(i,s)},Point$3.prototype.getX=function(){return this.x.fromRed()},Point$3.prototype.getY=function(){return this.y.fromRed()},Point$3.prototype.mul=function(e){return e=new BN$g(e,16),this.isInfinity()?this:this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},Point$3.prototype.mulAdd=function(e,t,r){var n=[this,t],o=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,o):this.curve._wnafMulAdd(1,n,o,2)},Point$3.prototype.jmulAdd=function(e,t,r){var n=[this,t],o=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,o,!0):this.curve._wnafMulAdd(1,n,o,2,!0)},Point$3.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},Point$3.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var r=this.precomputed,n=function(e){return e.neg()};t.precomputed={naf:r.naf&&{wnd:r.naf.wnd,points:r.naf.points.map(n)},doubles:r.doubles&&{step:r.doubles.step,points:r.doubles.points.map(n)}}}return t},Point$3.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},inherits_browser(JPoint$1,base$1.BasePoint),ShortCurve$1.prototype.jpoint=function(e,t,r){return new JPoint$1(this,e,t,r)},JPoint$1.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),r=this.x.redMul(t),n=this.y.redMul(t).redMul(e);return this.curve.point(r,n)},JPoint$1.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},JPoint$1.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),r=this.z.redSqr(),n=this.x.redMul(t),o=e.x.redMul(r),i=this.y.redMul(t.redMul(e.z)),s=e.y.redMul(r.redMul(this.z)),a=n.redSub(o),c=i.redSub(s);if(0===a.cmpn(0))return 0!==c.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var u=a.redSqr(),l=u.redMul(a),d=n.redMul(u),h=c.redSqr().redIAdd(l).redISub(d).redISub(d),f=c.redMul(d.redISub(h)).redISub(i.redMul(l)),p=this.z.redMul(e.z).redMul(a);return this.curve.jpoint(h,f,p)},JPoint$1.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),r=this.x,n=e.x.redMul(t),o=this.y,i=e.y.redMul(t).redMul(this.z),s=r.redSub(n),a=o.redSub(i);if(0===s.cmpn(0))return 0!==a.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var c=s.redSqr(),u=c.redMul(s),l=r.redMul(c),d=a.redSqr().redIAdd(u).redISub(l).redISub(l),h=a.redMul(l.redISub(d)).redISub(o.redMul(u)),f=this.z.redMul(s);return this.curve.jpoint(d,h,f)},JPoint$1.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();var t;if(this.curve.zeroA||this.curve.threeA){var r=this;for(t=0;t=0)return!1;if(r.redIAdd(o),0===this.x.cmp(r))return!0}},JPoint$1.prototype.inspect=function(){return this.isInfinity()?"":""},JPoint$1.prototype.isInfinity=function(){return 0===this.z.cmpn(0)};var curve_1=createCommonjsModule((function(e,t){var r=t;r.base=base$1,r.short=short_1,r.mont=null,r.edwards=null})),curves_1=createCommonjsModule((function(e,t){var r,n=t,o=utils_1$1.assert;function i(e){"short"===e.type?this.curve=new curve_1.short(e):"edwards"===e.type?this.curve=new curve_1.edwards(e):this.curve=new curve_1.mont(e),this.g=this.curve.g,this.n=this.curve.n,this.hash=e.hash,o(this.g.validate(),"Invalid curve"),o(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function s(e,t){Object.defineProperty(n,e,{configurable:!0,enumerable:!0,get:function(){var r=new i(t);return Object.defineProperty(n,e,{configurable:!0,enumerable:!0,value:r}),r}})}n.PresetCurve=i,s("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:hash$5.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),s("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:hash$5.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),s("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:hash$5.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),s("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:hash$5.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),s("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:hash$5.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),s("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:hash$5.sha256,gRed:!1,g:["9"]}),s("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:hash$5.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{r=null.crash()}catch(a){r=void 0}s("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:hash$5.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",r]})}));function HmacDRBG$1(e){if(!(this instanceof HmacDRBG$1))return new HmacDRBG$1(e);this.hash=e.hash,this.predResist=!!e.predResist,this.outLen=this.hash.outSize,this.minEntropy=e.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var t=utils_1.toArray(e.entropy,e.entropyEnc||"hex"),r=utils_1.toArray(e.nonce,e.nonceEnc||"hex"),n=utils_1.toArray(e.pers,e.persEnc||"hex");minimalisticAssert(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,r,n)}var hmacDrbg=HmacDRBG$1;HmacDRBG$1.prototype._init=function(e,t,r){var n=e.concat(t).concat(r);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var o=0;o=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(e.concat(r||[])),this._reseed=1},HmacDRBG$1.prototype.generate=function(e,t,r,n){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof t&&(n=r,r=t,t=null),r&&(r=utils_1.toArray(r,n||"hex"),this._update(r));for(var o=[];o.length"};var assert$4$1=utils_1$1.assert;function Signature$4(e,t){if(e instanceof Signature$4)return e;this._importDER(e,t)||(assert$4$1(e.r&&e.s,"Signature without r or s"),this.r=new BN$g(e.r,16),this.s=new BN$g(e.s,16),void 0===e.recoveryParam?this.recoveryParam=null:this.recoveryParam=e.recoveryParam)}var signature$2=Signature$4;function Position$1(){this.place=0}function getLength$1(e,t){var r=e[t.place++];if(!(128&r))return r;var n=15&r;if(0===n||n>4)return!1;if(0===e[t.place])return!1;for(var o=0,i=0,s=t.place;i>>=0;return!(o<=127)&&(t.place=s,o)}function rmPadding$1(e){for(var t=0,r=e.length-1;!e[t]&&!(128&e[t+1])&&t>>3);for(e.push(128|r);--r;)e.push(t>>>(r<<3)&255);e.push(t)}}Signature$4.prototype._importDER=function(e,t){e=utils_1$1.toArray(e,t);var r=new Position$1;if(48!==e[r.place++])return!1;var n=getLength$1(e,r);if(!1===n)return!1;if(n+r.place!==e.length)return!1;if(2!==e[r.place++])return!1;var o=getLength$1(e,r);if(!1===o)return!1;if(128&e[r.place])return!1;var i=e.slice(r.place,o+r.place);if(r.place+=o,2!==e[r.place++])return!1;var s=getLength$1(e,r);if(!1===s)return!1;if(e.length!==s+r.place)return!1;if(128&e[r.place])return!1;var a=e.slice(r.place,s+r.place);if(0===i[0]){if(!(128&i[1]))return!1;i=i.slice(1)}if(0===a[0]){if(!(128&a[1]))return!1;a=a.slice(1)}return this.r=new BN$g(i),this.s=new BN$g(a),this.recoveryParam=null,!0},Signature$4.prototype.toDER=function(e){var t=this.r.toArray(),r=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&r[0]&&(r=[0].concat(r)),t=rmPadding$1(t),r=rmPadding$1(r);!(r[0]||128&r[1]);)r=r.slice(1);var n=[2];constructLength$1(n,t.length),(n=n.concat(t)).push(2),constructLength$1(n,r.length);var o=n.concat(r),i=[48];return constructLength$1(i,o.length),i=i.concat(o),utils_1$1.encode(i,e)};var rand$1=function(){throw new Error("unsupported")},assert$5$1=utils_1$1.assert;function EC$1(e){if(!(this instanceof EC$1))return new EC$1(e);"string"==typeof e&&(assert$5$1(Object.prototype.hasOwnProperty.call(curves_1,e),"Unknown curve "+e),e=curves_1[e]),e instanceof curves_1.PresetCurve&&(e={curve:e}),this.curve=e.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=e.curve.g,this.g.precompute(e.curve.n.bitLength()+1),this.hash=e.hash||e.curve.hash}var ec$1=EC$1;EC$1.prototype.keyPair=function(e){return new key$2(this,e)},EC$1.prototype.keyFromPrivate=function(e,t){return key$2.fromPrivate(this,e,t)},EC$1.prototype.keyFromPublic=function(e,t){return key$2.fromPublic(this,e,t)},EC$1.prototype.genKeyPair=function(e){e||(e={});for(var t=new hmacDrbg({hash:this.hash,pers:e.pers,persEnc:e.persEnc||"utf8",entropy:e.entropy||rand$1(this.hash.hmacStrength),entropyEnc:e.entropy&&e.entropyEnc||"utf8",nonce:this.n.toArray()}),r=this.n.byteLength(),n=this.n.sub(new BN$g(2));;){var o=new BN$g(t.generate(r));if(!(o.cmp(n)>0))return o.iaddn(1),this.keyFromPrivate(o)}},EC$1.prototype._truncateToN=function(e,t,r){var n;if(BN$g.isBN(e)||"number"==typeof e)n=(e=new BN$g(e,16)).byteLength();else if("object"==typeof e)n=e.length,e=new BN$g(e,16);else{var o=e.toString();n=o.length+1>>>1,e=new BN$g(o,16)}"number"!=typeof r&&(r=8*n);var i=r-this.n.bitLength();return i>0&&(e=e.ushrn(i)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},EC$1.prototype.sign=function(e,t,r,n){if("object"==typeof r&&(n=r,r=null),n||(n={}),"string"!=typeof e&&"number"!=typeof e&&!BN$g.isBN(e)){assert$5$1("object"==typeof e&&e&&"number"==typeof e.length,"Expected message to be an array-like, a hex string, or a BN instance"),assert$5$1(e.length>>>0===e.length);for(var o=0;o=0)){var h=this.g.mul(d);if(!h.isInfinity()){var f=h.getX(),p=f.umod(this.n);if(0!==p.cmpn(0)){var m=d.invm(this.n).mul(p.mul(t.getPrivate()).iadd(e));if(0!==(m=m.umod(this.n)).cmpn(0)){var y=(h.getY().isOdd()?1:0)|(0!==f.cmp(p)?2:0);return n.canonical&&m.cmp(this.nh)>0&&(m=this.n.sub(m),y^=1),new signature$2({r:p,s:m,recoveryParam:y})}}}}}},EC$1.prototype.verify=function(e,t,r,n,o){o||(o={}),e=this._truncateToN(e,!1,o.msgBitLength),r=this.keyFromPublic(r,n);var i=(t=new signature$2(t,"hex")).r,s=t.s;if(i.cmpn(1)<0||i.cmp(this.n)>=0)return!1;if(s.cmpn(1)<0||s.cmp(this.n)>=0)return!1;var a,c=s.invm(this.n),u=c.mul(e).umod(this.n),l=c.mul(i).umod(this.n);return this.curve._maxwellTrick?!(a=this.g.jmulAdd(u,r.getPublic(),l)).isInfinity()&&a.eqXToP(i):!(a=this.g.mulAdd(u,r.getPublic(),l)).isInfinity()&&0===a.getX().umod(this.n).cmp(i)},EC$1.prototype.recoverPubKey=function(e,t,r,n){assert$5$1((3&r)===r,"The recovery param is more than two bits"),t=new signature$2(t,n);var o=this.n,i=new BN$g(e),s=t.r,a=t.s,c=1&r,u=r>>1;if(s.cmp(this.curve.p.umod(this.curve.n))>=0&&u)throw new Error("Unable to find sencond key candinate");s=u?this.curve.pointFromX(s.add(this.curve.n),c):this.curve.pointFromX(s,c);var l=t.r.invm(o),d=o.sub(i).mul(l).umod(o),h=a.mul(l).umod(o);return this.g.mulAdd(d,s,h)},EC$1.prototype.getKeyRecoveryParam=function(e,t,r,n){if(null!==(t=new signature$2(t,n)).recoveryParam)return t.recoveryParam;for(var o=0;o<4;o++){var i;try{i=this.recoverPubKey(e,t,o)}catch(s){continue}if(i.eq(r))return o}throw new Error("Unable to find valid recovery factor")};var elliptic_1=createCommonjsModule((function(e,t){var r=t;r.version="6.6.1",r.utils=utils_1$1,r.rand=function(){throw new Error("unsupported")},r.curve=curve_1,r.curves=curves_1,r.ec=ec$1,r.eddsa=null})),EC$1$1=elliptic_1.ec;const version$3="signing-key/5.8.0",logger=new Logger(version$3);let _curve=null;function getCurve(){return _curve||(_curve=new EC$1$1("secp256k1")),_curve}class SigningKey{constructor(e){defineReadOnly(this,"curve","secp256k1"),defineReadOnly(this,"privateKey",hexlify(e)),32!==hexDataLength(this.privateKey)&&logger.throwArgumentError("invalid private key","privateKey","[[ REDACTED ]]");const t=getCurve().keyFromPrivate(arrayify(this.privateKey));defineReadOnly(this,"publicKey","0x"+t.getPublic(!1,"hex")),defineReadOnly(this,"compressedPublicKey","0x"+t.getPublic(!0,"hex")),defineReadOnly(this,"_isSigningKey",!0)}_addPoint(e){const t=getCurve().keyFromPublic(arrayify(this.publicKey)),r=getCurve().keyFromPublic(arrayify(e));return"0x"+t.pub.add(r.pub).encodeCompressed("hex")}signDigest(e){const t=getCurve().keyFromPrivate(arrayify(this.privateKey)),r=arrayify(e);32!==r.length&&logger.throwArgumentError("bad digest length","digest",e);const n=t.sign(r,{canonical:!0});return splitSignature({recoveryParam:n.recoveryParam,r:hexZeroPad("0x"+n.r.toString(16),32),s:hexZeroPad("0x"+n.s.toString(16),32)})}computeSharedSecret(e){const t=getCurve().keyFromPrivate(arrayify(this.privateKey)),r=getCurve().keyFromPublic(arrayify(computePublicKey(e)));return hexZeroPad("0x"+t.derive(r.getPublic()).toString(16),32)}static isSigningKey(e){return!(!e||!e._isSigningKey)}}function recoverPublicKey(e,t){const r=splitSignature(t),n={r:arrayify(r.r),s:arrayify(r.s)};return"0x"+getCurve().recoverPubKey(arrayify(e),n,r.recoveryParam).encode("hex",!1)}function computePublicKey(e,t){const r=arrayify(e);if(32===r.length){return new SigningKey(r).publicKey}return 33===r.length?"0x"+getCurve().keyFromPublic(r).getPublic(!1,"hex"):65===r.length?hexlify(r):logger.throwArgumentError("invalid public or private key","key","[REDACTED]")}var TransactionTypes,TransactionTypes2;function computeAddress(e){return getAddress(hexDataSlice(keccak256(hexDataSlice(computePublicKey(e),1)),12))}function recoverAddress(e,t){return computeAddress(recoverPublicKey(arrayify(e),t))}TransactionTypes2=TransactionTypes||(TransactionTypes={}),TransactionTypes2[TransactionTypes2.legacy=0]="legacy",TransactionTypes2[TransactionTypes2.eip2930=1]="eip2930",TransactionTypes2[TransactionTypes2.eip1559=2]="eip1559";var chacha20poly1305={},chacha={};Object.defineProperty(chacha,"__esModule",{value:!0});var binary_1=binary,wipe_1$2=wipe$1,ROUNDS=20;function core(e,t,r){for(var n=1634760805,o=857760878,i=2036477234,s=1797285236,a=r[3]<<24|r[2]<<16|r[1]<<8|r[0],c=r[7]<<24|r[6]<<16|r[5]<<8|r[4],u=r[11]<<24|r[10]<<16|r[9]<<8|r[8],l=r[15]<<24|r[14]<<16|r[13]<<8|r[12],d=r[19]<<24|r[18]<<16|r[17]<<8|r[16],h=r[23]<<24|r[22]<<16|r[21]<<8|r[20],f=r[27]<<24|r[26]<<16|r[25]<<8|r[24],p=r[31]<<24|r[30]<<16|r[29]<<8|r[28],m=t[3]<<24|t[2]<<16|t[1]<<8|t[0],y=t[7]<<24|t[6]<<16|t[5]<<8|t[4],g=t[11]<<24|t[10]<<16|t[9]<<8|t[8],b=t[15]<<24|t[14]<<16|t[13]<<8|t[12],w=n,_=o,v=i,$=s,I=a,k=c,A=u,S=l,E=d,T=h,P=f,R=p,C=m,O=y,M=g,N=b,B=0;B>>16|C<<16)|0)>>>20|I<<12,k=(k^=T=T+(O=(O^=_=_+k|0)>>>16|O<<16)|0)>>>20|k<<12,A=(A^=P=P+(M=(M^=v=v+A|0)>>>16|M<<16)|0)>>>20|A<<12,S=(S^=R=R+(N=(N^=$=$+S|0)>>>16|N<<16)|0)>>>20|S<<12,A=(A^=P=P+(M=(M^=v=v+A|0)>>>24|M<<8)|0)>>>25|A<<7,S=(S^=R=R+(N=(N^=$=$+S|0)>>>24|N<<8)|0)>>>25|S<<7,k=(k^=T=T+(O=(O^=_=_+k|0)>>>24|O<<8)|0)>>>25|k<<7,I=(I^=E=E+(C=(C^=w=w+I|0)>>>24|C<<8)|0)>>>25|I<<7,k=(k^=P=P+(N=(N^=w=w+k|0)>>>16|N<<16)|0)>>>20|k<<12,A=(A^=R=R+(C=(C^=_=_+A|0)>>>16|C<<16)|0)>>>20|A<<12,S=(S^=E=E+(O=(O^=v=v+S|0)>>>16|O<<16)|0)>>>20|S<<12,I=(I^=T=T+(M=(M^=$=$+I|0)>>>16|M<<16)|0)>>>20|I<<12,S=(S^=E=E+(O=(O^=v=v+S|0)>>>24|O<<8)|0)>>>25|S<<7,I=(I^=T=T+(M=(M^=$=$+I|0)>>>24|M<<8)|0)>>>25|I<<7,A=(A^=R=R+(C=(C^=_=_+A|0)>>>24|C<<8)|0)>>>25|A<<7,k=(k^=P=P+(N=(N^=w=w+k|0)>>>24|N<<8)|0)>>>25|k<<7;binary_1.writeUint32LE(w+n|0,e,0),binary_1.writeUint32LE(_+o|0,e,4),binary_1.writeUint32LE(v+i|0,e,8),binary_1.writeUint32LE($+s|0,e,12),binary_1.writeUint32LE(I+a|0,e,16),binary_1.writeUint32LE(k+c|0,e,20),binary_1.writeUint32LE(A+u|0,e,24),binary_1.writeUint32LE(S+l|0,e,28),binary_1.writeUint32LE(E+d|0,e,32),binary_1.writeUint32LE(T+h|0,e,36),binary_1.writeUint32LE(P+f|0,e,40),binary_1.writeUint32LE(R+p|0,e,44),binary_1.writeUint32LE(C+m|0,e,48),binary_1.writeUint32LE(O+y|0,e,52),binary_1.writeUint32LE(M+g|0,e,56),binary_1.writeUint32LE(N+b|0,e,60)}function streamXOR(e,t,r,n,o){if(void 0===o&&(o=0),32!==e.length)throw new Error("ChaCha: key size must be 32 bytes");if(n.length>>=8,t++;if(n>0)throw new Error("ChaCha: counter overflow")}chacha.streamXOR=streamXOR,chacha.stream=stream;var poly1305={},constantTime={};function select(e,t,r){return~(e-1)&t|e-1&r}function lessOrEqual(e,t){return(0|e)-(0|t)-1>>>31&1}function compare(e,t){if(e.length!==t.length)return 0;for(var r=0,n=0;n>>8}function equal(e,t){return 0!==e.length&&0!==t.length&&0!==compare(e,t)}Object.defineProperty(constantTime,"__esModule",{value:!0}),constantTime.select=select,constantTime.lessOrEqual=lessOrEqual,constantTime.compare=compare,constantTime.equal=equal,function(e){Object.defineProperty(e,"__esModule",{value:!0});var t=constantTime,r=wipe$1;e.DIGEST_LENGTH=16;var n=function(){function t(t){this.digestLength=e.DIGEST_LENGTH,this._buffer=new Uint8Array(16),this._r=new Uint16Array(10),this._h=new Uint16Array(10),this._pad=new Uint16Array(8),this._leftover=0,this._fin=0,this._finished=!1;var r=t[0]|t[1]<<8;this._r[0]=8191&r;var n=t[2]|t[3]<<8;this._r[1]=8191&(r>>>13|n<<3);var o=t[4]|t[5]<<8;this._r[2]=7939&(n>>>10|o<<6);var i=t[6]|t[7]<<8;this._r[3]=8191&(o>>>7|i<<9);var s=t[8]|t[9]<<8;this._r[4]=255&(i>>>4|s<<12),this._r[5]=s>>>1&8190;var a=t[10]|t[11]<<8;this._r[6]=8191&(s>>>14|a<<2);var c=t[12]|t[13]<<8;this._r[7]=8065&(a>>>11|c<<5);var u=t[14]|t[15]<<8;this._r[8]=8191&(c>>>8|u<<8),this._r[9]=u>>>5&127,this._pad[0]=t[16]|t[17]<<8,this._pad[1]=t[18]|t[19]<<8,this._pad[2]=t[20]|t[21]<<8,this._pad[3]=t[22]|t[23]<<8,this._pad[4]=t[24]|t[25]<<8,this._pad[5]=t[26]|t[27]<<8,this._pad[6]=t[28]|t[29]<<8,this._pad[7]=t[30]|t[31]<<8}return t.prototype._blocks=function(e,t,r){for(var n=this._fin?0:2048,o=this._h[0],i=this._h[1],s=this._h[2],a=this._h[3],c=this._h[4],u=this._h[5],l=this._h[6],d=this._h[7],h=this._h[8],f=this._h[9],p=this._r[0],m=this._r[1],y=this._r[2],g=this._r[3],b=this._r[4],w=this._r[5],_=this._r[6],v=this._r[7],$=this._r[8],I=this._r[9];r>=16;){var k=e[t+0]|e[t+1]<<8;o+=8191&k;var A=e[t+2]|e[t+3]<<8;i+=8191&(k>>>13|A<<3);var S=e[t+4]|e[t+5]<<8;s+=8191&(A>>>10|S<<6);var E=e[t+6]|e[t+7]<<8;a+=8191&(S>>>7|E<<9);var T=e[t+8]|e[t+9]<<8;c+=8191&(E>>>4|T<<12),u+=T>>>1&8191;var P=e[t+10]|e[t+11]<<8;l+=8191&(T>>>14|P<<2);var R=e[t+12]|e[t+13]<<8;d+=8191&(P>>>11|R<<5);var C=e[t+14]|e[t+15]<<8,O=0,M=O;M+=o*p,M+=i*(5*I),M+=s*(5*$),M+=a*(5*v),O=(M+=c*(5*_))>>>13,M&=8191,M+=u*(5*w),M+=l*(5*b),M+=d*(5*g),M+=(h+=8191&(R>>>8|C<<8))*(5*y);var N=O+=(M+=(f+=C>>>5|n)*(5*m))>>>13;N+=o*m,N+=i*p,N+=s*(5*I),N+=a*(5*$),O=(N+=c*(5*v))>>>13,N&=8191,N+=u*(5*_),N+=l*(5*w),N+=d*(5*b),N+=h*(5*g),O+=(N+=f*(5*y))>>>13,N&=8191;var B=O;B+=o*y,B+=i*m,B+=s*p,B+=a*(5*I),O=(B+=c*(5*$))>>>13,B&=8191,B+=u*(5*v),B+=l*(5*_),B+=d*(5*w),B+=h*(5*b);var x=O+=(B+=f*(5*g))>>>13;x+=o*g,x+=i*y,x+=s*m,x+=a*p,O=(x+=c*(5*I))>>>13,x&=8191,x+=u*(5*$),x+=l*(5*v),x+=d*(5*_),x+=h*(5*w);var D=O+=(x+=f*(5*b))>>>13;D+=o*b,D+=i*g,D+=s*y,D+=a*m,O=(D+=c*p)>>>13,D&=8191,D+=u*(5*I),D+=l*(5*$),D+=d*(5*v),D+=h*(5*_);var L=O+=(D+=f*(5*w))>>>13;L+=o*w,L+=i*b,L+=s*g,L+=a*y,O=(L+=c*m)>>>13,L&=8191,L+=u*p,L+=l*(5*I),L+=d*(5*$),L+=h*(5*v);var U=O+=(L+=f*(5*_))>>>13;U+=o*_,U+=i*w,U+=s*b,U+=a*g,O=(U+=c*y)>>>13,U&=8191,U+=u*m,U+=l*p,U+=d*(5*I),U+=h*(5*$);var F=O+=(U+=f*(5*v))>>>13;F+=o*v,F+=i*_,F+=s*w,F+=a*b,O=(F+=c*g)>>>13,F&=8191,F+=u*y,F+=l*m,F+=d*p,F+=h*(5*I);var j=O+=(F+=f*(5*$))>>>13;j+=o*$,j+=i*v,j+=s*_,j+=a*w,O=(j+=c*b)>>>13,j&=8191,j+=u*g,j+=l*y,j+=d*m,j+=h*p;var q=O+=(j+=f*(5*I))>>>13;q+=o*I,q+=i*$,q+=s*v,q+=a*_,O=(q+=c*w)>>>13,q&=8191,q+=u*b,q+=l*g,q+=d*y,q+=h*m,o=M=8191&(O=(O=((O+=(q+=f*p)>>>13)<<2)+O|0)+(M&=8191)|0),i=N+=O>>>=13,s=B&=8191,a=x&=8191,c=D&=8191,u=L&=8191,l=U&=8191,d=F&=8191,h=j&=8191,f=q&=8191,t+=16,r-=16}this._h[0]=o,this._h[1]=i,this._h[2]=s,this._h[3]=a,this._h[4]=c,this._h[5]=u,this._h[6]=l,this._h[7]=d,this._h[8]=h,this._h[9]=f},t.prototype.finish=function(e,t){void 0===t&&(t=0);var r,n,o,i,s=new Uint16Array(10);if(this._leftover){for(i=this._leftover,this._buffer[i++]=1;i<16;i++)this._buffer[i]=0;this._fin=1,this._blocks(this._buffer,0,16)}for(r=this._h[1]>>>13,this._h[1]&=8191,i=2;i<10;i++)this._h[i]+=r,r=this._h[i]>>>13,this._h[i]&=8191;for(this._h[0]+=5*r,r=this._h[0]>>>13,this._h[0]&=8191,this._h[1]+=r,r=this._h[1]>>>13,this._h[1]&=8191,this._h[2]+=r,s[0]=this._h[0]+5,r=s[0]>>>13,s[0]&=8191,i=1;i<10;i++)s[i]=this._h[i]+r,r=s[i]>>>13,s[i]&=8191;for(s[9]-=8192,n=(1^r)-1,i=0;i<10;i++)s[i]&=n;for(n=~n,i=0;i<10;i++)this._h[i]=this._h[i]&n|s[i];for(this._h[0]=65535&(this._h[0]|this._h[1]<<13),this._h[1]=65535&(this._h[1]>>>3|this._h[2]<<10),this._h[2]=65535&(this._h[2]>>>6|this._h[3]<<7),this._h[3]=65535&(this._h[3]>>>9|this._h[4]<<4),this._h[4]=65535&(this._h[4]>>>12|this._h[5]<<1|this._h[6]<<14),this._h[5]=65535&(this._h[6]>>>2|this._h[7]<<11),this._h[6]=65535&(this._h[7]>>>5|this._h[8]<<8),this._h[7]=65535&(this._h[8]>>>8|this._h[9]<<5),o=this._h[0]+this._pad[0],this._h[0]=65535&o,i=1;i<8;i++)o=(this._h[i]+this._pad[i]|0)+(o>>>16)|0,this._h[i]=65535&o;return e[t+0]=this._h[0]>>>0,e[t+1]=this._h[0]>>>8,e[t+2]=this._h[1]>>>0,e[t+3]=this._h[1]>>>8,e[t+4]=this._h[2]>>>0,e[t+5]=this._h[2]>>>8,e[t+6]=this._h[3]>>>0,e[t+7]=this._h[3]>>>8,e[t+8]=this._h[4]>>>0,e[t+9]=this._h[4]>>>8,e[t+10]=this._h[5]>>>0,e[t+11]=this._h[5]>>>8,e[t+12]=this._h[6]>>>0,e[t+13]=this._h[6]>>>8,e[t+14]=this._h[7]>>>0,e[t+15]=this._h[7]>>>8,this._finished=!0,this},t.prototype.update=function(e){var t,r=0,n=e.length;if(this._leftover){(t=16-this._leftover)>n&&(t=n);for(var o=0;o=16&&(t=n-n%16,this._blocks(e,r,t),r+=t,n-=t),n){for(o=0;o16)throw new Error("ChaCha20Poly1305: incorrect nonce length");var s=new Uint8Array(16);s.set(e,s.length-e.length);var a=new Uint8Array(32);t.stream(this._key,s,a,4);var c,u=r.length+this.tagLength;if(i){if(i.length!==u)throw new Error("ChaCha20Poly1305: incorrect destination length");c=i}else c=new Uint8Array(u);return t.streamXOR(this._key,s,r,c,4),this._authenticate(c.subarray(c.length-this.tagLength,c.length),a,c.subarray(0,c.length-this.tagLength),o),n.wipe(s),c},a.prototype.open=function(e,r,o,s){if(e.length>16)throw new Error("ChaCha20Poly1305: incorrect nonce length");if(r.length0&&c.update(s.subarray(a.length%16))),c.update(i),i.length%16>0&&c.update(s.subarray(i.length%16));var u=new Uint8Array(8);a&&o.writeUint64LE(a.length,u),c.update(u),o.writeUint64LE(i.length,u),c.update(u);for(var l=c.digest(),d=0;dthis.blockSize?this._inner.update(t).finish(r).clean():r.set(t);for(var n=0;n1&&this._hmac.update(this._buffer),this._info&&this._hmac.update(this._info),this._hmac.update(this._counter),this._hmac.finish(this._buffer),this._bufpos=0},e.prototype.expand=function(e){for(var t=new Uint8Array(e),r=0;r0){for(;this._bufferLength0;)this._buffer[this._bufferLength++]=e[r++],t--;this._bufferLength===this.blockSize&&(i(this._temp,this._state,this._buffer,0,this.blockSize),this._bufferLength=0)}for(t>=this.blockSize&&(r=i(this._temp,this._state,e,r,t),t%=this.blockSize);t>0;)this._buffer[this._bufferLength++]=e[r++],t--;return this},n.prototype.finish=function(e){if(!this._finished){var r=this._bytesHashed,n=this._bufferLength,o=r/536870912|0,s=r<<3,a=r%64<56?64:128;this._buffer[n]=128;for(var c=n+1;c0?new Uint8Array(this._buffer):void 0,bufferLength:this._bufferLength,bytesHashed:this._bytesHashed}},n.prototype.restoreState=function(e){return this._state.set(e.state),this._bufferLength=e.bufferLength,e.buffer&&this._buffer.set(e.buffer),this._bytesHashed=e.bytesHashed,this._finished=!1,this},n.prototype.cleanSavedState=function(e){r.wipe(e.state),e.buffer&&r.wipe(e.buffer),e.bufferLength=0,e.bytesHashed=0},n}();e.SHA256=n;var o=new Int32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]);function i(e,r,n,i,s){for(;s>=64;){for(var a=r[0],c=r[1],u=r[2],l=r[3],d=r[4],h=r[5],f=r[6],p=r[7],m=0;m<16;m++){var y=i+4*m;e[m]=t.readUint32BE(n,y)}for(m=16;m<64;m++){var g=e[m-2],b=(g>>>17|g<<15)^(g>>>19|g<<13)^g>>>10,w=((g=e[m-15])>>>7|g<<25)^(g>>>18|g<<14)^g>>>3;e[m]=(b+e[m-7]|0)+(w+e[m-16]|0)}for(m=0;m<64;m++){b=(((d>>>6|d<<26)^(d>>>11|d<<21)^(d>>>25|d<<7))+(d&h^~d&f)|0)+(p+(o[m]+e[m]|0)|0)|0,w=((a>>>2|a<<30)^(a>>>13|a<<19)^(a>>>22|a<<10))+(a&c^a&u^c&u)|0;p=f,f=h,h=d,d=l+b|0,l=u,u=c,c=a,a=b+w|0}r[0]+=a,r[1]+=c,r[2]+=u,r[3]+=l,r[4]+=d,r[5]+=h,r[6]+=f,r[7]+=p,i+=64,s-=64}return i}e.hash=function(e){var t=new n;t.update(e);var r=t.digest();return t.clean(),r}}(sha256);var x25519={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.sharedKey=e.generateKeyPair=e.generateKeyPairFromSeed=e.scalarMultBase=e.scalarMult=e.SHARED_KEY_LENGTH=e.SECRET_KEY_LENGTH=e.PUBLIC_KEY_LENGTH=void 0;const t=random,r=wipe$1;function n(e){const t=new Float64Array(16);if(e)for(let r=0;r=0;--n){const e=r[n>>>3]>>>(7&n)&1;a(h,f,e),a(p,m,e),c(y,h,p),u(h,h,p),c(p,f,m),u(f,f,m),d(m,y),d(g,h),l(h,p,h),l(p,f,y),c(y,h,p),u(h,h,p),d(f,h),u(p,m,g),l(h,p,i),c(h,h,m),l(p,p,h),l(h,m,g),l(m,f,o),d(f,y),a(h,f,e),a(p,m,e)}for(let n=0;n<16;n++)o[n+16]=h[n],o[n+32]=p[n],o[n+48]=f[n],o[n+64]=m[n];const b=o.subarray(32),w=o.subarray(16);!function(e,t){const r=n();for(let n=0;n<16;n++)r[n]=t[n];for(let n=253;n>=0;n--)d(r,r),2!==n&&4!==n&&l(r,r,t);for(let n=0;n<16;n++)e[n]=r[n]}(b,b),l(w,w,b);const _=new Uint8Array(32);return function(e,t){const r=n(),o=n();for(let n=0;n<16;n++)o[n]=t[n];s(o),s(o),s(o);for(let n=0;n<2;n++){r[0]=o[0]-65517;for(let t=1;t<15;t++)r[t]=o[t]-65535-(r[t-1]>>16&1),r[t-1]&=65535;r[15]=o[15]-32767-(r[14]>>16&1);const e=r[15]>>16&1;r[14]&=65535,a(o,r,1-e)}for(let n=0;n<16;n++)e[2*n]=255&o[n],e[2*n+1]=o[n]>>8}(_,w),_}function f(e){return h(e,o)}function p(t){if(t.length!==e.SECRET_KEY_LENGTH)throw new Error(`x25519: seed must be ${e.SECRET_KEY_LENGTH} bytes`);const r=new Uint8Array(t);return{publicKey:f(r),secretKey:r}}e.scalarMult=h,e.scalarMultBase=f,e.generateKeyPairFromSeed=p,e.generateKeyPair=function(e){const n=(0,t.randomBytes)(32,e),o=p(n);return(0,r.wipe)(n),o},e.sharedKey=function(t,r,n=!1){if(t.length!==e.PUBLIC_KEY_LENGTH)throw new Error("X25519: incorrect secret key length");if(r.length!==e.PUBLIC_KEY_LENGTH)throw new Error("X25519: incorrect public key length");const o=h(t,r);if(n){let e=0;for(let t=0;tt.code===e));return t||STANDARD_ERROR_MAP[DEFAULT_ERROR]}function parseConnectionError(e,t,r){return e.message.includes("getaddrinfo ENOTFOUND")||e.message.includes("connect ECONNREFUSED")?new Error(`Unavailable ${r} RPC url at ${t}`):e}var cjs$4={},crypto$1={},hasRequiredCrypto;function requireCrypto(){if(hasRequiredCrypto)return crypto$1;function e(){return(null==commonjsGlobal?void 0:commonjsGlobal.crypto)||(null==commonjsGlobal?void 0:commonjsGlobal.msCrypto)||{}}function t(){const t=e();return t.subtle||t.webkitSubtle}return hasRequiredCrypto=1,Object.defineProperty(crypto$1,"__esModule",{value:!0}),crypto$1.isBrowserCryptoAvailable=crypto$1.getSubtleCrypto=crypto$1.getBrowerCrypto=void 0,crypto$1.getBrowerCrypto=e,crypto$1.getSubtleCrypto=t,crypto$1.isBrowserCryptoAvailable=function(){return!!e()&&!!t()},crypto$1}var env={},hasRequiredEnv;function requireEnv(){if(hasRequiredEnv)return env;function e(){return"undefined"==typeof document&&"undefined"!=typeof navigator&&"ReactNative"===navigator.product}function t(){return void 0!==process$1&&void 0!==process$1.versions&&void 0!==process$1.versions.node}return hasRequiredEnv=1,Object.defineProperty(env,"__esModule",{value:!0}),env.isBrowser=env.isNode=env.isReactNative=void 0,env.isReactNative=e,env.isNode=t,env.isBrowser=function(){return!e()&&!t()},env}function payloadId(e=3){return Date.now()*Math.pow(10,e)+Math.floor(Math.random()*Math.pow(10,e))}function getBigIntRpcId(e=6){return BigInt(payloadId(e))}function formatJsonRpcRequest(e,t,r){return{id:r||payloadId(),jsonrpc:"2.0",method:e,params:t}}function formatJsonRpcResult(e,t){return{id:e,jsonrpc:"2.0",result:t}}function formatJsonRpcError(e,t,r){return{id:e,jsonrpc:"2.0",error:formatErrorMessage(t)}}function formatErrorMessage(e,t){return void 0===e?getError(INTERNAL_ERROR):("string"==typeof e&&(e=Object.assign(Object.assign({},getError(SERVER_ERROR)),{message:e})),isReservedErrorCode(e.code)&&(e=getErrorByCode(e.code)),e)}!function(e){Object.defineProperty(e,"__esModule",{value:!0});const t=require$$0$3;t.__exportStar(requireCrypto(),e),t.__exportStar(requireEnv(),e)}(cjs$4);let e$8=class{},n$8=class extends e$8{constructor(){super()}},r$5=class extends n$8{constructor(e){super()}};const WS_REGEX="^wss?:";function getUrlProtocol(e){const t=e.match(new RegExp(/^\w+:/,"gi"));if(t&&t.length)return t[0]}function matchRegexProtocol(e,t){const r=getUrlProtocol(e);return void 0!==r&&new RegExp(t).test(r)}function isWsUrl(e){return matchRegexProtocol(e,WS_REGEX)}function isLocalhostUrl(e){return new RegExp("wss?://localhost(:d{2,5})?").test(e)}function isJsonRpcPayload(e){return"object"==typeof e&&"id"in e&&"jsonrpc"in e&&"2.0"===e.jsonrpc}function isJsonRpcRequest(e){return isJsonRpcPayload(e)&&"method"in e}function isJsonRpcResponse(e){return isJsonRpcPayload(e)&&(isJsonRpcResult(e)||isJsonRpcError(e))}function isJsonRpcResult(e){return"result"in e}function isJsonRpcError(e){return"error"in e}let o$8=class extends r$5{constructor(e){super(e),this.events=new eventsExports.EventEmitter,this.hasRegisteredEventListeners=!1,this.connection=this.setConnection(e),this.connection.connected&&this.registerEventListeners()}async connect(e=this.connection){await this.open(e)}async disconnect(){await this.close()}on(e,t){this.events.on(e,t)}once(e,t){this.events.once(e,t)}off(e,t){this.events.off(e,t)}removeListener(e,t){this.events.removeListener(e,t)}async request(e,t){return this.requestStrict(formatJsonRpcRequest(e.method,e.params||[],e.id||getBigIntRpcId().toString()),t)}async requestStrict(e,t){return new Promise((async(r,n)=>{if(!this.connection.connected)try{await this.open()}catch(o){n(o)}this.events.on(`${e.id}`,(e=>{isJsonRpcError(e)?n(e.error):r(e.result)}));try{await this.connection.send(e,t)}catch(o){n(o)}}))}setConnection(e=this.connection){return e}onPayload(e){this.events.emit("payload",e),isJsonRpcResponse(e)?this.events.emit(`${e.id}`,e):this.events.emit("message",{type:e.method,data:e.params})}onClose(e){e&&3e3===e.code&&this.events.emit("error",new Error(`WebSocket connection closed abnormally with code: ${e.code} ${e.reason?`(${e.reason})`:""}`)),this.events.emit("disconnect")}async open(e=this.connection){this.connection===e&&this.connection.connected||(this.connection.connected&&this.close(),"string"==typeof e&&(await this.connection.open(e),e=this.connection),this.connection=this.setConnection(e),await this.connection.open(),this.registerEventListeners(),this.events.emit("connect"))}async close(){await this.connection.close()}registerEventListeners(){this.hasRegisteredEventListeners||(this.connection.on("payload",(e=>this.onPayload(e))),this.connection.on("close",(e=>this.onClose(e))),this.connection.on("error",(e=>this.events.emit("error",e))),this.connection.on("register_error",(e=>this.onClose())),this.hasRegisteredEventListeners=!0)}};var lodash_isequal={exports:{}};lodash_isequal.exports,function(e,t){var r="__lodash_hash_undefined__",n=9007199254740991,o="[object Arguments]",i="[object Array]",s="[object Boolean]",a="[object Date]",c="[object Error]",u="[object Function]",l="[object Map]",d="[object Number]",h="[object Object]",f="[object Promise]",p="[object RegExp]",m="[object Set]",y="[object String]",g="[object Symbol]",b="[object WeakMap]",w="[object ArrayBuffer]",_="[object DataView]",v=/^\[object .+?Constructor\]$/,$=/^(?:0|[1-9]\d*)$/,I={};I["[object Float32Array]"]=I["[object Float64Array]"]=I["[object Int8Array]"]=I["[object Int16Array]"]=I["[object Int32Array]"]=I["[object Uint8Array]"]=I["[object Uint8ClampedArray]"]=I["[object Uint16Array]"]=I["[object Uint32Array]"]=!0,I[o]=I[i]=I[w]=I[s]=I[_]=I[a]=I[c]=I[u]=I[l]=I[d]=I[h]=I[p]=I[m]=I[y]=I[b]=!1;var k="object"==typeof commonjsGlobal&&commonjsGlobal&&commonjsGlobal.Object===Object&&commonjsGlobal,A="object"==typeof self&&self&&self.Object===Object&&self,S=k||A||Function("return this")(),E=t&&!t.nodeType&&t,T=E&&e&&!e.nodeType&&e,P=T&&T.exports===E,R=P&&k.process,C=function(){try{return R&&R.binding&&R.binding("util")}catch(e){}}(),O=C&&C.isTypedArray;function M(e,t){for(var r=-1,n=null==e?0:e.length;++ra))return!1;var u=i.get(e);if(u&&i.get(t))return u==t;var l=-1,d=!0,h=2&r?new we:void 0;for(i.set(e,t),i.set(t,e);++l-1},ge.prototype.set=function(e,t){var r=this.__data__,n=$e(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this},be.prototype.clear=function(){this.size=0,this.__data__={hash:new ye,map:new(oe||ge),string:new ye}},be.prototype.delete=function(e){var t=Re(this,e).delete(e);return this.size-=t?1:0,t},be.prototype.get=function(e){return Re(this,e).get(e)},be.prototype.has=function(e){return Re(this,e).has(e)},be.prototype.set=function(e,t){var r=Re(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this},we.prototype.add=we.prototype.push=function(e){return this.__data__.set(e,r),this},we.prototype.has=function(e){return this.__data__.has(e)},_e.prototype.clear=function(){this.__data__=new ge,this.size=0},_e.prototype.delete=function(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r},_e.prototype.get=function(e){return this.__data__.get(e)},_e.prototype.has=function(e){return this.__data__.has(e)},_e.prototype.set=function(e,t){var r=this.__data__;if(r instanceof ge){var n=r.__data__;if(!oe||n.length<199)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new be(n)}return r.set(e,t),this.size=r.size,this};var Oe=ee?function(e){return null==e?[]:(e=Object(e),function(e,t){for(var r=-1,n=null==e?0:e.length,o=0,i=[];++r-1&&e%1==0&&e-1&&e%1==0&&e<=n}function qe(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function Ke(e){return null!=e&&"object"==typeof e}var ze=O?function(e){return function(t){return e(t)}}(O):function(e){return Ke(e)&&je(e.length)&&!!I[Ie(e)]};function He(e){return null!=(t=e)&&je(t.length)&&!Fe(t)?ve(e):Ee(e);var t}e.exports=function(e,t){return Ae(e,t)}}(lodash_isequal,lodash_isequal.exports);var lodash_isequalExports=lodash_isequal.exports;const ys$1=getDefaultExportFromCjs$1(lodash_isequalExports);function unfetch_module(e,t){return t=t||{},new Promise((function(r,n){var o=new XMLHttpRequest,i=[],s=[],a={},c=function(){return{ok:2==(o.status/100|0),statusText:o.statusText,status:o.status,url:o.responseURL,text:function(){return Promise.resolve(o.responseText)},json:function(){return Promise.resolve(o.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([o.response]))},clone:c,headers:{keys:function(){return i},entries:function(){return s},get:function(e){return a[e.toLowerCase()]},has:function(e){return e.toLowerCase()in a}}}};for(var u in o.open(t.method||"get",e,!0),o.onload=function(){o.getAllResponseHeaders().replace(/^(.*?):[^\S\n]*([\s\S]*?)$/gm,(function(e,t,r){i.push(t=t.toLowerCase()),s.push([t,r]),a[t]=a[t]?a[t]+","+r:r})),r(c())},o.onerror=n,o.withCredentials="include"==t.credentials,t.headers)o.setRequestHeader(u,t.headers[u]);o.send(t.body||null)}))}const unfetch_module$1=Object.freeze(Object.defineProperty({__proto__:null,default:unfetch_module},Symbol.toStringTag,{value:"Module"})),require$$0$2=getAugmentedNamespace(unfetch_module$1);function ut$2(e,t){if(e.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n>>0,s=new Uint8Array(i);e[t];){var l=r[e.charCodeAt(t)];if(255===l)return;for(var d=0,h=i-1;(0!==l||d>>0,s[h]=l%256>>>0,l=l/256>>>0;if(0!==l)throw new Error("Non-zero carry");o=d,t++}if(" "!==e[t]){for(var f=i-o;f!==i&&0===s[f];)f++;for(var p=new Uint8Array(n+(i-f)),m=n;f!==i;)p[m++]=s[f++];return p}}}return{encode:function(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(0===t.length)return"";for(var r=0,n=0,o=0,i=t.length;o!==i&&0===t[o];)o++,r++;for(var s=(i-o)*l+1>>>0,u=new Uint8Array(s);o!==i;){for(var d=t[o],h=0,f=s-1;(0!==d||h>>0,u[f]=d%a>>>0,d=d/a>>>0;if(0!==d)throw new Error("Non-zero carry");n=h,o++}for(var p=s-n;p!==s&&0===u[p];)p++;for(var m=c.repeat(r);p{if(e instanceof Uint8Array&&"Uint8Array"===e.constructor.name)return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw new Error("Unknown type, must be binary type")},ct$2=e=>(new TextEncoder).encode(e),ht$2=e=>(new TextDecoder).decode(e);let lt$2=class{constructor(e,t,r){this.name=e,this.prefix=t,this.baseEncode=r}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}},dt$2=class{constructor(e,t,r){if(this.name=e,this.prefix=t,void 0===t.codePointAt(0))throw new Error("Invalid prefix character");this.prefixCodePoint=t.codePointAt(0),this.baseDecode=r}decode(e){if("string"==typeof e){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}throw Error("Can only multibase decode strings")}or(e){return ie$1(this,e)}},pt$3=class{constructor(e){this.decoders=e}or(e){return ie$1(this,e)}decode(e){const t=e[0],r=this.decoders[t];if(r)return r.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}};const ie$1=(e,t)=>new pt$3({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}});let ft$1=class{constructor(e,t,r,n){this.name=e,this.prefix=t,this.baseEncode=r,this.baseDecode=n,this.encoder=new lt$2(e,t,r),this.decoder=new dt$2(e,t,n)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}};const O$4=({name:e,prefix:t,encode:r,decode:n})=>new ft$1(e,t,r,n),T$4=({prefix:e,name:t,alphabet:r})=>{const{encode:n,decode:o}=Dt$2(r,t);return O$4({prefix:e,name:t,encode:n,decode:e=>re$2(o(e))})},gt$3=(e,t,r,n)=>{const o={};for(let l=0;l=8&&(a-=8,s[u++]=255&c>>a)}if(a>=r||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return s},Et$1=(e,t,r)=>{const n="="===t[t.length-1],o=(1<r;)s-=r,i+=t[o&a>>s];if(s&&(i+=t[o&a<O$4({prefix:t,name:e,encode:e=>Et$1(e,n,r),decode:t=>gt$3(t,n,r,e)}),bt$2=O$4({prefix:"\0",name:"identity",encode:e=>ht$2(e),decode:e=>ct$2(e)});var yt$2=Object.freeze({__proto__:null,identity:bt$2});const wt$1=d$5({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Ct$1=Object.freeze({__proto__:null,base2:wt$1});const mt$1=d$5({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var vt$2=Object.freeze({__proto__:null,base8:mt$1});const At$1=T$4({prefix:"9",name:"base10",alphabet:"0123456789"});var _t$2=Object.freeze({__proto__:null,base10:At$1});const xt$2=d$5({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),Rt$1=d$5({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Ft$2=Object.freeze({__proto__:null,base16:xt$2,base16upper:Rt$1});const Tt$2=d$5({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),It$1=d$5({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),qt$2=d$5({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Ut$1=d$5({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),Ot$2=d$5({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),St$1=d$5({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Pt$2=d$5({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),Nt$2=d$5({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),$t$2=d$5({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Bt$2=Object.freeze({__proto__:null,base32:Tt$2,base32upper:It$1,base32pad:qt$2,base32padupper:Ut$1,base32hex:Ot$2,base32hexupper:St$1,base32hexpad:Pt$2,base32hexpadupper:Nt$2,base32z:$t$2});const zt$2=T$4({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),jt$1=T$4({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var Mt$2=Object.freeze({__proto__:null,base36:zt$2,base36upper:jt$1});const Lt$2=T$4({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),Kt$2=T$4({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Vt$2=Object.freeze({__proto__:null,base58btc:Lt$2,base58flickr:Kt$2});const kt$2=d$5({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),Jt$2=d$5({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Xt$2=d$5({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Gt$2=d$5({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var Ht$2=Object.freeze({__proto__:null,base64:kt$2,base64pad:Jt$2,base64url:Xt$2,base64urlpad:Gt$2});const ne$1=Array.from("🚀🪐☄🛰🌌🌑🌒🌓🌔🌕🌖🌗🌘🌍🌏🌎🐉☀💻🖥💾💿😂❤😍🤣😊🙏💕😭😘👍😅👏😁🔥🥰💔💖💙😢🤔😆🙄💪😉☺👌🤗💜😔😎😇🌹🤦🎉💞✌✨🤷😱😌🌸🙌😋💗💚😏💛🙂💓🤩😄😀🖤😃💯🙈👇🎶😒🤭❣😜💋👀😪😑💥🙋😞😩😡🤪👊🥳😥🤤👉💃😳✋😚😝😴🌟😬🙃🍀🌷😻😓⭐✅🥺🌈😈🤘💦✔😣🏃💐☹🎊💘😠☝😕🌺🎂🌻😐🖕💝🙊😹🗣💫💀👑🎵🤞😛🔴😤🌼😫⚽🤙☕🏆🤫👈😮🙆🍻🍃🐶💁😲🌿🧡🎁⚡🌞🎈❌✊👋😰🤨😶🤝🚶💰🍓💢🤟🙁🚨💨🤬✈🎀🍺🤓😙💟🌱😖👶🥴▶➡❓💎💸⬇😨🌚🦋😷🕺⚠🙅😟😵👎🤲🤠🤧📌🔵💅🧐🐾🍒😗🤑🌊🤯🐷☎💧😯💆👆🎤🙇🍑❄🌴💣🐸💌📍🥀🤢👅💡💩👐📸👻🤐🤮🎼🥵🚩🍎🍊👼💍📣🥂"),Yt$2=ne$1.reduce(((e,t,r)=>(e[r]=t,e)),[]),Qt$2=ne$1.reduce(((e,t,r)=>(e[t.codePointAt(0)]=r,e)),[]);function Zt$2(e){return e.reduce(((e,t)=>e+=Yt$2[t]),"")}function Wt$2(e){const t=[];for(const r of e){const e=Qt$2[r.codePointAt(0)];if(void 0===e)throw new Error(`Non-base256emoji character: ${r}`);t.push(e)}return new Uint8Array(t)}const er$2=O$4({prefix:"🚀",name:"base256emoji",encode:Zt$2,decode:Wt$2});var tr$1=Object.freeze({__proto__:null,base256emoji:er$2}),rr$1=oe$1,se$1=128,ir$2=127,nr$2=~ir$2,sr$1=Math.pow(2,31);function oe$1(e,t,r){t=t||[];for(var n=r=r||0;e>=sr$1;)t[r++]=255&e|se$1,e/=128;for(;e&nr$2;)t[r++]=255&e|se$1,e>>>=7;return t[r]=0|e,oe$1.bytes=r-n+1,t}var or$1=j$2,ur$2=128,ue=127;function j$2(e,t){var r,n=0,o=0,i=t=t||0,s=e.length;do{if(i>=s)throw j$2.bytes=0,new RangeError("Could not decode varint");r=e[i++],n+=o<28?(r&ue)<=ur$2);return j$2.bytes=i-t,n}var ar$2=Math.pow(2,7),Dr$2=Math.pow(2,14),cr$2=Math.pow(2,21),hr$2=Math.pow(2,28),lr$2=Math.pow(2,35),dr$2=Math.pow(2,42),pr$2=Math.pow(2,49),fr$3=Math.pow(2,56),gr$2=Math.pow(2,63),Er$2=function(e){return e(ae$2.encode(e,t,r),t),ce$1=e=>ae$2.encodingLength(e),M$6=(e,t)=>{const r=t.byteLength,n=ce$1(e),o=n+ce$1(r),i=new Uint8Array(o+r);return De$1(e,i,0),De$1(r,i,n),i.set(t,o),new yr$2(e,r,t,i)};let yr$2=class{constructor(e,t,r,n){this.code=e,this.size=t,this.digest=r,this.bytes=n}};const he$1=({name:e,code:t,encode:r})=>new wr$2(e,t,r);let wr$2=class{constructor(e,t,r){this.name=e,this.code=t,this.encode=r}digest(e){if(e instanceof Uint8Array){const t=this.encode(e);return t instanceof Uint8Array?M$6(this.code,t):t.then((e=>M$6(this.code,e)))}throw Error("Unknown type, must be binary type")}};const le$1=e=>async t=>new Uint8Array(await crypto.subtle.digest(e,t)),Cr$2=he$1({name:"sha2-256",code:18,encode:le$1("SHA-256")}),mr$2=he$1({name:"sha2-512",code:19,encode:le$1("SHA-512")});var vr$2=Object.freeze({__proto__:null,sha256:Cr$2,sha512:mr$2});const de$2=0,Ar$2="identity",pe$1=re$2,_r$2=e=>M$6(de$2,pe$1(e)),xr$2={code:de$2,name:Ar$2,encode:pe$1,digest:_r$2};var Rr$2=Object.freeze({__proto__:null,identity:xr$2});new TextEncoder,new TextDecoder;let n$7=class extends IEvents{constructor(e){super(),this.opts=e,this.protocol="wc",this.version=2}},h$6=class extends IEvents{constructor(e,t){super(),this.core=e,this.logger=t,this.records=new Map}},a$5=class{constructor(e,t){this.logger=e,this.core=t}},g$5=class extends IEvents{constructor(e,t){super(),this.relayer=e,this.logger=t}},u$4=class extends IEvents{constructor(e){super()}},p$3=class{constructor(e,t,r,n){this.core=e,this.logger=t,this.name=r}},d$4=class extends IEvents{constructor(e,t){super(),this.relayer=e,this.logger=t}},x$5=class extends IEvents{constructor(e,t){super(),this.core=e,this.logger=t}},y$6=class{constructor(e,t,r){this.core=e,this.logger=t,this.store=r}},v$5=class{constructor(e,t){this.projectId=e,this.logger=t}},C$5=class{constructor(e,t,r){this.core=e,this.logger=t,this.telemetryEnabled=r}},S$7=class{constructor(e){this.opts=e,this.protocol="wc",this.version=2}},M$5=class{constructor(e){this.client=e}};var __spreadArray=function(e,t,r){if(r||2===arguments.length)for(var n,o=0,i=t.length;on.getAttribute(e))).filter((e=>!!e&&t.includes(e)));if(o.length&&o){const e=n.getAttribute("content");if(e)return e}}return""}const n=function(){let t=r("name","og:site_name","og:title","twitter:title");return t||(t=e.title),t}();return{description:r("description","og:description","twitter:description","keywords"),url:t.origin,icons:function(){const r=e.getElementsByTagName("link"),n=[];for(let e=0;e-1){const e=o.getAttribute("href");if(e)if(-1===e.toLowerCase().indexOf("https:")&&-1===e.toLowerCase().indexOf("http:")&&0!==e.indexOf("//")){let r=t.protocol+"//"+t.host;if(0===e.indexOf("/"))r+=e;else{const n=t.pathname.split("/");n.pop();r+=n.join("/")+"/"+e}n.push(r)}else if(0===e.indexOf("//")){const r=t.protocol+e;n.push(r)}else n.push(e)}}return n}(),name:n}}getWindowMetadata_1$1=cjs$3.getWindowMetadata=getWindowMetadata$1;var elliptic={};const name="elliptic",version$2="6.5.7",description="EC cryptography",main="lib/elliptic.js",files=["lib"],scripts={lint:"eslint lib test","lint:fix":"npm run lint -- --fix",unit:"istanbul test _mocha --reporter=spec test/index.js",test:"npm run lint && npm run unit",version:"grunt dist && git add dist/"},repository={type:"git",url:"git@github.com:indutny/elliptic"},keywords=["EC","Elliptic","curve","Cryptography"],author="Fedor Indutny ",license="MIT",bugs={url:"https://github.com/indutny/elliptic/issues"},homepage="https://github.com/indutny/elliptic",devDependencies={brfs:"^2.0.2",coveralls:"^3.1.0",eslint:"^7.6.0",grunt:"^1.2.1","grunt-browserify":"^5.3.0","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^5.0.0","grunt-mocha-istanbul":"^5.0.2","grunt-saucelabs":"^9.0.1",istanbul:"^0.4.5",mocha:"^8.0.1"},dependencies={"bn.js":"^4.11.9",brorand:"^1.1.0","hash.js":"^1.0.0","hmac-drbg":"^1.0.1",inherits:"^2.0.4","minimalistic-assert":"^1.0.1","minimalistic-crypto-utils":"^1.0.1"},require$$0$1={name:name,version:version$2,description:description,main:main,files:files,scripts:scripts,repository:repository,keywords:keywords,author:author,license:license,bugs:bugs,homepage:homepage,devDependencies:devDependencies,dependencies:dependencies};var utils$e={},bn$2={exports:{}};bn$2.exports,function(e){!function(e,t){function r(e,t){if(!e)throw new Error(t||"Assertion failed")}function n(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}function o(e,t,r){if(o.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(r=t,t=10),this._init(e||0,t||10,r||"be"))}var i;"object"==typeof e?e.exports=o:t.BN=o,o.BN=o,o.wordSize=26;try{i="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:require$$2$1.Buffer}catch(k){}function s(e,t){var r=e.charCodeAt(t);return r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:r-48&15}function a(e,t,r){var n=s(e,r);return r-1>=t&&(n|=s(e,r-1)<<4),n}function c(e,t,r,n){for(var o=0,i=Math.min(e.length,r),s=t;s=49?a-49+10:a>=17?a-17+10:a}return o}o.isBN=function(e){return e instanceof o||null!==e&&"object"==typeof e&&e.constructor.wordSize===o.wordSize&&Array.isArray(e.words)},o.max=function(e,t){return e.cmp(t)>0?e:t},o.min=function(e,t){return e.cmp(t)<0?e:t},o.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),r(t===(0|t)&&t>=2&&t<=36);var o=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(o++,this.negative=1),o=0;o-=3)s=e[o]|e[o-1]<<8|e[o-2]<<16,this.words[i]|=s<>>26-a&67108863,(a+=24)>=26&&(a-=26,i++);else if("le"===n)for(o=0,i=0;o>>26-a&67108863,(a+=24)>=26&&(a-=26,i++);return this.strip()},o.prototype._parseHex=function(e,t,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var n=0;n=t;n-=2)o=a(e,t,n)<=18?(i-=18,s+=1,this.words[s]|=o>>>26):i+=8;else for(n=(e.length-t)%2==0?t+1:t;n=18?(i-=18,s+=1,this.words[s]|=o>>>26):i+=8;this.strip()},o.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var n=0,o=1;o<=67108863;o*=t)n++;n--,o=o/t|0;for(var i=e.length-r,s=i%n,a=Math.min(i,i-s)+r,u=0,l=r;l1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?""};var u=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],l=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],d=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function h(e,t,r){r.negative=t.negative^e.negative;var n=e.length+t.length|0;r.length=n,n=n-1|0;var o=0|e.words[0],i=0|t.words[0],s=o*i,a=67108863&s,c=s/67108864|0;r.words[0]=a;for(var u=1;u>>26,d=67108863&c,h=Math.min(u,t.length-1),f=Math.max(0,u-e.length+1);f<=h;f++){var p=u-f|0;l+=(s=(o=0|e.words[p])*(i=0|t.words[f])+d)/67108864|0,d=67108863&s}r.words[u]=0|d,c=0|l}return 0!==c?r.words[u]=0|c:r.length--,r.strip()}o.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var o=0,i=0,s=0;s>>24-o&16777215,(o+=2)>=26&&(o-=26,s--),n=0!==i||s!==this.length-1?u[6-c.length]+c+n:c+n}for(0!==i&&(n=i.toString(16)+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var h=l[e],f=d[e];n="";var p=this.clone();for(p.negative=0;!p.isZero();){var m=p.modn(f).toString(e);n=(p=p.idivn(f)).isZero()?m+n:u[h-m.length]+m+n}for(this.isZero()&&(n="0"+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(e,t){return r(void 0!==i),this.toArrayLike(i,e,t)},o.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},o.prototype.toArrayLike=function(e,t,n){var o=this.byteLength(),i=n||Math.max(1,o);r(o<=i,"byte array longer than desired length"),r(i>0,"Requested array length <= 0"),this.strip();var s,a,c="le"===t,u=new e(i),l=this.clone();if(c){for(a=0;!l.isZero();a++)s=l.andln(255),l.iushrn(8),u[a]=s;for(;a=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},o.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 8191&t||(r+=13,t>>>=13),127&t||(r+=7,t>>>=7),15&t||(r+=4,t>>>=4),3&t||(r+=2,t>>>=2),1&t||r++,r},o.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},o.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},o.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;re.length?this.clone().iand(e):e.clone().iand(this)},o.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},o.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var n=0;ne.length?this.clone().ixor(e):e.clone().ixor(this)},o.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},o.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var o=0;o0&&(this.words[o]=~this.words[o]&67108863>>26-n),this.strip()},o.prototype.notn=function(e){return this.clone().inotn(e)},o.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var n=e/26|0,o=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<e.length?(r=this,n=e):(r=e,n=this);for(var o=0,i=0;i>>26;for(;0!==o&&i>>26;if(this.length=r.length,0!==o)this.words[this.length]=o,this.length++;else if(r!==this)for(;ie.length?this.clone().iadd(e):e.clone().iadd(this)},o.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,n,o=this.cmp(e);if(0===o)return this.negative=0,this.length=1,this.words[0]=0,this;o>0?(r=this,n=e):(r=e,n=this);for(var i=0,s=0;s>26,this.words[s]=67108863&t;for(;0!==i&&s>26,this.words[s]=67108863&t;if(0===i&&s>>13,f=0|s[1],p=8191&f,m=f>>>13,y=0|s[2],g=8191&y,b=y>>>13,w=0|s[3],_=8191&w,v=w>>>13,$=0|s[4],I=8191&$,k=$>>>13,A=0|s[5],S=8191&A,E=A>>>13,T=0|s[6],P=8191&T,R=T>>>13,C=0|s[7],O=8191&C,M=C>>>13,N=0|s[8],B=8191&N,x=N>>>13,D=0|s[9],L=8191&D,U=D>>>13,F=0|a[0],j=8191&F,q=F>>>13,K=0|a[1],z=8191&K,H=K>>>13,G=0|a[2],W=8191&G,V=G>>>13,Y=0|a[3],J=8191&Y,Q=Y>>>13,Z=0|a[4],X=8191&Z,ee=Z>>>13,te=0|a[5],re=8191&te,ne=te>>>13,oe=0|a[6],ie=8191&oe,se=oe>>>13,ae=0|a[7],ce=8191&ae,ue=ae>>>13,le=0|a[8],de=8191&le,he=le>>>13,fe=0|a[9],pe=8191&fe,me=fe>>>13;r.negative=e.negative^t.negative,r.length=19;var ye=(u+(n=Math.imul(d,j))|0)+((8191&(o=(o=Math.imul(d,q))+Math.imul(h,j)|0))<<13)|0;u=((i=Math.imul(h,q))+(o>>>13)|0)+(ye>>>26)|0,ye&=67108863,n=Math.imul(p,j),o=(o=Math.imul(p,q))+Math.imul(m,j)|0,i=Math.imul(m,q);var ge=(u+(n=n+Math.imul(d,z)|0)|0)+((8191&(o=(o=o+Math.imul(d,H)|0)+Math.imul(h,z)|0))<<13)|0;u=((i=i+Math.imul(h,H)|0)+(o>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(g,j),o=(o=Math.imul(g,q))+Math.imul(b,j)|0,i=Math.imul(b,q),n=n+Math.imul(p,z)|0,o=(o=o+Math.imul(p,H)|0)+Math.imul(m,z)|0,i=i+Math.imul(m,H)|0;var be=(u+(n=n+Math.imul(d,W)|0)|0)+((8191&(o=(o=o+Math.imul(d,V)|0)+Math.imul(h,W)|0))<<13)|0;u=((i=i+Math.imul(h,V)|0)+(o>>>13)|0)+(be>>>26)|0,be&=67108863,n=Math.imul(_,j),o=(o=Math.imul(_,q))+Math.imul(v,j)|0,i=Math.imul(v,q),n=n+Math.imul(g,z)|0,o=(o=o+Math.imul(g,H)|0)+Math.imul(b,z)|0,i=i+Math.imul(b,H)|0,n=n+Math.imul(p,W)|0,o=(o=o+Math.imul(p,V)|0)+Math.imul(m,W)|0,i=i+Math.imul(m,V)|0;var we=(u+(n=n+Math.imul(d,J)|0)|0)+((8191&(o=(o=o+Math.imul(d,Q)|0)+Math.imul(h,J)|0))<<13)|0;u=((i=i+Math.imul(h,Q)|0)+(o>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(I,j),o=(o=Math.imul(I,q))+Math.imul(k,j)|0,i=Math.imul(k,q),n=n+Math.imul(_,z)|0,o=(o=o+Math.imul(_,H)|0)+Math.imul(v,z)|0,i=i+Math.imul(v,H)|0,n=n+Math.imul(g,W)|0,o=(o=o+Math.imul(g,V)|0)+Math.imul(b,W)|0,i=i+Math.imul(b,V)|0,n=n+Math.imul(p,J)|0,o=(o=o+Math.imul(p,Q)|0)+Math.imul(m,J)|0,i=i+Math.imul(m,Q)|0;var _e=(u+(n=n+Math.imul(d,X)|0)|0)+((8191&(o=(o=o+Math.imul(d,ee)|0)+Math.imul(h,X)|0))<<13)|0;u=((i=i+Math.imul(h,ee)|0)+(o>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(S,j),o=(o=Math.imul(S,q))+Math.imul(E,j)|0,i=Math.imul(E,q),n=n+Math.imul(I,z)|0,o=(o=o+Math.imul(I,H)|0)+Math.imul(k,z)|0,i=i+Math.imul(k,H)|0,n=n+Math.imul(_,W)|0,o=(o=o+Math.imul(_,V)|0)+Math.imul(v,W)|0,i=i+Math.imul(v,V)|0,n=n+Math.imul(g,J)|0,o=(o=o+Math.imul(g,Q)|0)+Math.imul(b,J)|0,i=i+Math.imul(b,Q)|0,n=n+Math.imul(p,X)|0,o=(o=o+Math.imul(p,ee)|0)+Math.imul(m,X)|0,i=i+Math.imul(m,ee)|0;var ve=(u+(n=n+Math.imul(d,re)|0)|0)+((8191&(o=(o=o+Math.imul(d,ne)|0)+Math.imul(h,re)|0))<<13)|0;u=((i=i+Math.imul(h,ne)|0)+(o>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(P,j),o=(o=Math.imul(P,q))+Math.imul(R,j)|0,i=Math.imul(R,q),n=n+Math.imul(S,z)|0,o=(o=o+Math.imul(S,H)|0)+Math.imul(E,z)|0,i=i+Math.imul(E,H)|0,n=n+Math.imul(I,W)|0,o=(o=o+Math.imul(I,V)|0)+Math.imul(k,W)|0,i=i+Math.imul(k,V)|0,n=n+Math.imul(_,J)|0,o=(o=o+Math.imul(_,Q)|0)+Math.imul(v,J)|0,i=i+Math.imul(v,Q)|0,n=n+Math.imul(g,X)|0,o=(o=o+Math.imul(g,ee)|0)+Math.imul(b,X)|0,i=i+Math.imul(b,ee)|0,n=n+Math.imul(p,re)|0,o=(o=o+Math.imul(p,ne)|0)+Math.imul(m,re)|0,i=i+Math.imul(m,ne)|0;var $e=(u+(n=n+Math.imul(d,ie)|0)|0)+((8191&(o=(o=o+Math.imul(d,se)|0)+Math.imul(h,ie)|0))<<13)|0;u=((i=i+Math.imul(h,se)|0)+(o>>>13)|0)+($e>>>26)|0,$e&=67108863,n=Math.imul(O,j),o=(o=Math.imul(O,q))+Math.imul(M,j)|0,i=Math.imul(M,q),n=n+Math.imul(P,z)|0,o=(o=o+Math.imul(P,H)|0)+Math.imul(R,z)|0,i=i+Math.imul(R,H)|0,n=n+Math.imul(S,W)|0,o=(o=o+Math.imul(S,V)|0)+Math.imul(E,W)|0,i=i+Math.imul(E,V)|0,n=n+Math.imul(I,J)|0,o=(o=o+Math.imul(I,Q)|0)+Math.imul(k,J)|0,i=i+Math.imul(k,Q)|0,n=n+Math.imul(_,X)|0,o=(o=o+Math.imul(_,ee)|0)+Math.imul(v,X)|0,i=i+Math.imul(v,ee)|0,n=n+Math.imul(g,re)|0,o=(o=o+Math.imul(g,ne)|0)+Math.imul(b,re)|0,i=i+Math.imul(b,ne)|0,n=n+Math.imul(p,ie)|0,o=(o=o+Math.imul(p,se)|0)+Math.imul(m,ie)|0,i=i+Math.imul(m,se)|0;var Ie=(u+(n=n+Math.imul(d,ce)|0)|0)+((8191&(o=(o=o+Math.imul(d,ue)|0)+Math.imul(h,ce)|0))<<13)|0;u=((i=i+Math.imul(h,ue)|0)+(o>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,n=Math.imul(B,j),o=(o=Math.imul(B,q))+Math.imul(x,j)|0,i=Math.imul(x,q),n=n+Math.imul(O,z)|0,o=(o=o+Math.imul(O,H)|0)+Math.imul(M,z)|0,i=i+Math.imul(M,H)|0,n=n+Math.imul(P,W)|0,o=(o=o+Math.imul(P,V)|0)+Math.imul(R,W)|0,i=i+Math.imul(R,V)|0,n=n+Math.imul(S,J)|0,o=(o=o+Math.imul(S,Q)|0)+Math.imul(E,J)|0,i=i+Math.imul(E,Q)|0,n=n+Math.imul(I,X)|0,o=(o=o+Math.imul(I,ee)|0)+Math.imul(k,X)|0,i=i+Math.imul(k,ee)|0,n=n+Math.imul(_,re)|0,o=(o=o+Math.imul(_,ne)|0)+Math.imul(v,re)|0,i=i+Math.imul(v,ne)|0,n=n+Math.imul(g,ie)|0,o=(o=o+Math.imul(g,se)|0)+Math.imul(b,ie)|0,i=i+Math.imul(b,se)|0,n=n+Math.imul(p,ce)|0,o=(o=o+Math.imul(p,ue)|0)+Math.imul(m,ce)|0,i=i+Math.imul(m,ue)|0;var ke=(u+(n=n+Math.imul(d,de)|0)|0)+((8191&(o=(o=o+Math.imul(d,he)|0)+Math.imul(h,de)|0))<<13)|0;u=((i=i+Math.imul(h,he)|0)+(o>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(L,j),o=(o=Math.imul(L,q))+Math.imul(U,j)|0,i=Math.imul(U,q),n=n+Math.imul(B,z)|0,o=(o=o+Math.imul(B,H)|0)+Math.imul(x,z)|0,i=i+Math.imul(x,H)|0,n=n+Math.imul(O,W)|0,o=(o=o+Math.imul(O,V)|0)+Math.imul(M,W)|0,i=i+Math.imul(M,V)|0,n=n+Math.imul(P,J)|0,o=(o=o+Math.imul(P,Q)|0)+Math.imul(R,J)|0,i=i+Math.imul(R,Q)|0,n=n+Math.imul(S,X)|0,o=(o=o+Math.imul(S,ee)|0)+Math.imul(E,X)|0,i=i+Math.imul(E,ee)|0,n=n+Math.imul(I,re)|0,o=(o=o+Math.imul(I,ne)|0)+Math.imul(k,re)|0,i=i+Math.imul(k,ne)|0,n=n+Math.imul(_,ie)|0,o=(o=o+Math.imul(_,se)|0)+Math.imul(v,ie)|0,i=i+Math.imul(v,se)|0,n=n+Math.imul(g,ce)|0,o=(o=o+Math.imul(g,ue)|0)+Math.imul(b,ce)|0,i=i+Math.imul(b,ue)|0,n=n+Math.imul(p,de)|0,o=(o=o+Math.imul(p,he)|0)+Math.imul(m,de)|0,i=i+Math.imul(m,he)|0;var Ae=(u+(n=n+Math.imul(d,pe)|0)|0)+((8191&(o=(o=o+Math.imul(d,me)|0)+Math.imul(h,pe)|0))<<13)|0;u=((i=i+Math.imul(h,me)|0)+(o>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(L,z),o=(o=Math.imul(L,H))+Math.imul(U,z)|0,i=Math.imul(U,H),n=n+Math.imul(B,W)|0,o=(o=o+Math.imul(B,V)|0)+Math.imul(x,W)|0,i=i+Math.imul(x,V)|0,n=n+Math.imul(O,J)|0,o=(o=o+Math.imul(O,Q)|0)+Math.imul(M,J)|0,i=i+Math.imul(M,Q)|0,n=n+Math.imul(P,X)|0,o=(o=o+Math.imul(P,ee)|0)+Math.imul(R,X)|0,i=i+Math.imul(R,ee)|0,n=n+Math.imul(S,re)|0,o=(o=o+Math.imul(S,ne)|0)+Math.imul(E,re)|0,i=i+Math.imul(E,ne)|0,n=n+Math.imul(I,ie)|0,o=(o=o+Math.imul(I,se)|0)+Math.imul(k,ie)|0,i=i+Math.imul(k,se)|0,n=n+Math.imul(_,ce)|0,o=(o=o+Math.imul(_,ue)|0)+Math.imul(v,ce)|0,i=i+Math.imul(v,ue)|0,n=n+Math.imul(g,de)|0,o=(o=o+Math.imul(g,he)|0)+Math.imul(b,de)|0,i=i+Math.imul(b,he)|0;var Se=(u+(n=n+Math.imul(p,pe)|0)|0)+((8191&(o=(o=o+Math.imul(p,me)|0)+Math.imul(m,pe)|0))<<13)|0;u=((i=i+Math.imul(m,me)|0)+(o>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(L,W),o=(o=Math.imul(L,V))+Math.imul(U,W)|0,i=Math.imul(U,V),n=n+Math.imul(B,J)|0,o=(o=o+Math.imul(B,Q)|0)+Math.imul(x,J)|0,i=i+Math.imul(x,Q)|0,n=n+Math.imul(O,X)|0,o=(o=o+Math.imul(O,ee)|0)+Math.imul(M,X)|0,i=i+Math.imul(M,ee)|0,n=n+Math.imul(P,re)|0,o=(o=o+Math.imul(P,ne)|0)+Math.imul(R,re)|0,i=i+Math.imul(R,ne)|0,n=n+Math.imul(S,ie)|0,o=(o=o+Math.imul(S,se)|0)+Math.imul(E,ie)|0,i=i+Math.imul(E,se)|0,n=n+Math.imul(I,ce)|0,o=(o=o+Math.imul(I,ue)|0)+Math.imul(k,ce)|0,i=i+Math.imul(k,ue)|0,n=n+Math.imul(_,de)|0,o=(o=o+Math.imul(_,he)|0)+Math.imul(v,de)|0,i=i+Math.imul(v,he)|0;var Ee=(u+(n=n+Math.imul(g,pe)|0)|0)+((8191&(o=(o=o+Math.imul(g,me)|0)+Math.imul(b,pe)|0))<<13)|0;u=((i=i+Math.imul(b,me)|0)+(o>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(L,J),o=(o=Math.imul(L,Q))+Math.imul(U,J)|0,i=Math.imul(U,Q),n=n+Math.imul(B,X)|0,o=(o=o+Math.imul(B,ee)|0)+Math.imul(x,X)|0,i=i+Math.imul(x,ee)|0,n=n+Math.imul(O,re)|0,o=(o=o+Math.imul(O,ne)|0)+Math.imul(M,re)|0,i=i+Math.imul(M,ne)|0,n=n+Math.imul(P,ie)|0,o=(o=o+Math.imul(P,se)|0)+Math.imul(R,ie)|0,i=i+Math.imul(R,se)|0,n=n+Math.imul(S,ce)|0,o=(o=o+Math.imul(S,ue)|0)+Math.imul(E,ce)|0,i=i+Math.imul(E,ue)|0,n=n+Math.imul(I,de)|0,o=(o=o+Math.imul(I,he)|0)+Math.imul(k,de)|0,i=i+Math.imul(k,he)|0;var Te=(u+(n=n+Math.imul(_,pe)|0)|0)+((8191&(o=(o=o+Math.imul(_,me)|0)+Math.imul(v,pe)|0))<<13)|0;u=((i=i+Math.imul(v,me)|0)+(o>>>13)|0)+(Te>>>26)|0,Te&=67108863,n=Math.imul(L,X),o=(o=Math.imul(L,ee))+Math.imul(U,X)|0,i=Math.imul(U,ee),n=n+Math.imul(B,re)|0,o=(o=o+Math.imul(B,ne)|0)+Math.imul(x,re)|0,i=i+Math.imul(x,ne)|0,n=n+Math.imul(O,ie)|0,o=(o=o+Math.imul(O,se)|0)+Math.imul(M,ie)|0,i=i+Math.imul(M,se)|0,n=n+Math.imul(P,ce)|0,o=(o=o+Math.imul(P,ue)|0)+Math.imul(R,ce)|0,i=i+Math.imul(R,ue)|0,n=n+Math.imul(S,de)|0,o=(o=o+Math.imul(S,he)|0)+Math.imul(E,de)|0,i=i+Math.imul(E,he)|0;var Pe=(u+(n=n+Math.imul(I,pe)|0)|0)+((8191&(o=(o=o+Math.imul(I,me)|0)+Math.imul(k,pe)|0))<<13)|0;u=((i=i+Math.imul(k,me)|0)+(o>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,n=Math.imul(L,re),o=(o=Math.imul(L,ne))+Math.imul(U,re)|0,i=Math.imul(U,ne),n=n+Math.imul(B,ie)|0,o=(o=o+Math.imul(B,se)|0)+Math.imul(x,ie)|0,i=i+Math.imul(x,se)|0,n=n+Math.imul(O,ce)|0,o=(o=o+Math.imul(O,ue)|0)+Math.imul(M,ce)|0,i=i+Math.imul(M,ue)|0,n=n+Math.imul(P,de)|0,o=(o=o+Math.imul(P,he)|0)+Math.imul(R,de)|0,i=i+Math.imul(R,he)|0;var Re=(u+(n=n+Math.imul(S,pe)|0)|0)+((8191&(o=(o=o+Math.imul(S,me)|0)+Math.imul(E,pe)|0))<<13)|0;u=((i=i+Math.imul(E,me)|0)+(o>>>13)|0)+(Re>>>26)|0,Re&=67108863,n=Math.imul(L,ie),o=(o=Math.imul(L,se))+Math.imul(U,ie)|0,i=Math.imul(U,se),n=n+Math.imul(B,ce)|0,o=(o=o+Math.imul(B,ue)|0)+Math.imul(x,ce)|0,i=i+Math.imul(x,ue)|0,n=n+Math.imul(O,de)|0,o=(o=o+Math.imul(O,he)|0)+Math.imul(M,de)|0,i=i+Math.imul(M,he)|0;var Ce=(u+(n=n+Math.imul(P,pe)|0)|0)+((8191&(o=(o=o+Math.imul(P,me)|0)+Math.imul(R,pe)|0))<<13)|0;u=((i=i+Math.imul(R,me)|0)+(o>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,n=Math.imul(L,ce),o=(o=Math.imul(L,ue))+Math.imul(U,ce)|0,i=Math.imul(U,ue),n=n+Math.imul(B,de)|0,o=(o=o+Math.imul(B,he)|0)+Math.imul(x,de)|0,i=i+Math.imul(x,he)|0;var Oe=(u+(n=n+Math.imul(O,pe)|0)|0)+((8191&(o=(o=o+Math.imul(O,me)|0)+Math.imul(M,pe)|0))<<13)|0;u=((i=i+Math.imul(M,me)|0)+(o>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,n=Math.imul(L,de),o=(o=Math.imul(L,he))+Math.imul(U,de)|0,i=Math.imul(U,he);var Me=(u+(n=n+Math.imul(B,pe)|0)|0)+((8191&(o=(o=o+Math.imul(B,me)|0)+Math.imul(x,pe)|0))<<13)|0;u=((i=i+Math.imul(x,me)|0)+(o>>>13)|0)+(Me>>>26)|0,Me&=67108863;var Ne=(u+(n=Math.imul(L,pe))|0)+((8191&(o=(o=Math.imul(L,me))+Math.imul(U,pe)|0))<<13)|0;return u=((i=Math.imul(U,me))+(o>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,c[0]=ye,c[1]=ge,c[2]=be,c[3]=we,c[4]=_e,c[5]=ve,c[6]=$e,c[7]=Ie,c[8]=ke,c[9]=Ae,c[10]=Se,c[11]=Ee,c[12]=Te,c[13]=Pe,c[14]=Re,c[15]=Ce,c[16]=Oe,c[17]=Me,c[18]=Ne,0!==u&&(c[19]=u,r.length++),r};function p(e,t,r){return(new m).mulp(e,t,r)}function m(e,t){this.x=e,this.y=t}Math.imul||(f=h),o.prototype.mulTo=function(e,t){var r,n=this.length+e.length;return r=10===this.length&&10===e.length?f(this,e,t):n<63?h(this,e,t):n<1024?function(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var n=0,o=0,i=0;i>>26)|0)>>>26,s&=67108863}r.words[i]=a,n=s,s=o}return 0!==n?r.words[i]=n:r.length--,r.strip()}(this,e,t):p(this,e,t),r},m.prototype.makeRBT=function(e){for(var t=new Array(e),r=o.prototype._countBits(e)-1,n=0;n>=1;return n},m.prototype.permute=function(e,t,r,n,o,i){for(var s=0;s>>=1)o++;return 1<>>=13,n[2*s+1]=8191&i,i>>>=13;for(s=2*t;s>=26,t+=o/67108864|0,t+=i>>>26,this.words[n]=67108863&i}return 0!==t&&(this.words[n]=t,this.length++),this},o.prototype.muln=function(e){return this.clone().imuln(e)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r>>o}return t}(e);if(0===t.length)return new o(1);for(var r=this,n=0;n=0);var t,n=e%26,o=(e-n)/26,i=67108863>>>26-n<<26-n;if(0!==n){var s=0;for(t=0;t>>26-n}s&&(this.words[t]=s,this.length++)}if(0!==o){for(t=this.length-1;t>=0;t--)this.words[t+o]=this.words[t];for(t=0;t=0),o=t?(t-t%26)/26:0;var i=e%26,s=Math.min((e-i)/26,this.length),a=67108863^67108863>>>i<s)for(this.length-=s,u=0;u=0&&(0!==l||u>=o);u--){var d=0|this.words[u];this.words[u]=l<<26-i|d>>>i,l=d&a}return c&&0!==l&&(c.words[c.length++]=l),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(e,t,n){return r(0===this.negative),this.iushrn(e,t,n)},o.prototype.shln=function(e){return this.clone().ishln(e)},o.prototype.ushln=function(e){return this.clone().iushln(e)},o.prototype.shrn=function(e){return this.clone().ishrn(e)},o.prototype.ushrn=function(e){return this.clone().iushrn(e)},o.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26,o=1<=0);var t=e%26,n=(e-t)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==t&&n++,this.length=Math.min(n,this.length),0!==t){var o=67108863^67108863>>>t<=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},o.prototype.isubn=function(e){if(r("number"==typeof e),r(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t>26)-(c/67108864|0),this.words[o+n]=67108863&i}for(;o>26,this.words[o+n]=67108863&i;if(0===a)return this.strip();for(r(-1===a),a=0,o=0;o>26,this.words[o]=67108863&i;return this.negative=1,this.strip()},o.prototype._wordDiv=function(e,t){var r=(this.length,e.length),n=this.clone(),i=e,s=0|i.words[i.length-1];0!==(r=26-this._countBits(s))&&(i=i.ushln(r),n.iushln(r),s=0|i.words[i.length-1]);var a,c=n.length-i.length;if("mod"!==t){(a=new o(null)).length=c+1,a.words=new Array(a.length);for(var u=0;u=0;d--){var h=67108864*(0|n.words[i.length+d])+(0|n.words[i.length+d-1]);for(h=Math.min(h/s|0,67108863),n._ishlnsubmul(i,h,d);0!==n.negative;)h--,n.negative=0,n._ishlnsubmul(i,1,d),n.isZero()||(n.negative^=1);a&&(a.words[d]=h)}return a&&a.strip(),n.strip(),"div"!==t&&0!==r&&n.iushrn(r),{div:a||null,mod:n}},o.prototype.divmod=function(e,t,n){return r(!e.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===e.negative?(a=this.neg().divmod(e,t),"mod"!==t&&(i=a.div.neg()),"div"!==t&&(s=a.mod.neg(),n&&0!==s.negative&&s.iadd(e)),{div:i,mod:s}):0===this.negative&&0!==e.negative?(a=this.divmod(e.neg(),t),"mod"!==t&&(i=a.div.neg()),{div:i,mod:a.mod}):this.negative&e.negative?(a=this.neg().divmod(e.neg(),t),"div"!==t&&(s=a.mod.neg(),n&&0!==s.negative&&s.isub(e)),{div:a.div,mod:s}):e.length>this.length||this.cmp(e)<0?{div:new o(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new o(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new o(this.modn(e.words[0]))}:this._wordDiv(e,t);var i,s,a},o.prototype.div=function(e){return this.divmod(e,"div",!1).div},o.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},o.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},o.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,n=e.ushrn(1),o=e.andln(1),i=r.cmp(n);return i<0||1===o&&0===i?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},o.prototype.modn=function(e){r(e<=67108863);for(var t=(1<<26)%e,n=0,o=this.length-1;o>=0;o--)n=(t*n+(0|this.words[o]))%e;return n},o.prototype.idivn=function(e){r(e<=67108863);for(var t=0,n=this.length-1;n>=0;n--){var o=(0|this.words[n])+67108864*t;this.words[n]=o/e|0,t=o%e}return this.strip()},o.prototype.divn=function(e){return this.clone().idivn(e)},o.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i=new o(1),s=new o(0),a=new o(0),c=new o(1),u=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++u;for(var l=n.clone(),d=t.clone();!t.isZero();){for(var h=0,f=1;!(t.words[0]&f)&&h<26;++h,f<<=1);if(h>0)for(t.iushrn(h);h-- >0;)(i.isOdd()||s.isOdd())&&(i.iadd(l),s.isub(d)),i.iushrn(1),s.iushrn(1);for(var p=0,m=1;!(n.words[0]&m)&&p<26;++p,m<<=1);if(p>0)for(n.iushrn(p);p-- >0;)(a.isOdd()||c.isOdd())&&(a.iadd(l),c.isub(d)),a.iushrn(1),c.iushrn(1);t.cmp(n)>=0?(t.isub(n),i.isub(a),s.isub(c)):(n.isub(t),a.isub(i),c.isub(s))}return{a:a,b:c,gcd:n.iushln(u)}},o.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i,s=new o(1),a=new o(0),c=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var u=0,l=1;!(t.words[0]&l)&&u<26;++u,l<<=1);if(u>0)for(t.iushrn(u);u-- >0;)s.isOdd()&&s.iadd(c),s.iushrn(1);for(var d=0,h=1;!(n.words[0]&h)&&d<26;++d,h<<=1);if(d>0)for(n.iushrn(d);d-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);t.cmp(n)>=0?(t.isub(n),s.isub(a)):(n.isub(t),a.isub(s))}return(i=0===t.cmpn(1)?s:a).cmpn(0)<0&&i.iadd(e),i},o.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var n=0;t.isEven()&&r.isEven();n++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var o=t.cmp(r);if(o<0){var i=t;t=r,r=i}else if(0===o||0===r.cmpn(1))break;t.isub(r)}return r.iushln(n)},o.prototype.invm=function(e){return this.egcd(e).a.umod(e)},o.prototype.isEven=function(){return!(1&this.words[0])},o.prototype.isOdd=function(){return!(1&~this.words[0])},o.prototype.andln=function(e){return this.words[0]&e},o.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,n=(e-t)/26,o=1<>>26,a&=67108863,this.words[s]=a}return 0!==i&&(this.words[s]=i,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this.strip(),this.length>1)t=1;else{n&&(e=-e),r(e<=67108863,"Number is too big");var o=0|this.words[0];t=o===e?0:oe.length)return 1;if(this.length=0;r--){var n=0|this.words[r],o=0|e.words[r];if(n!==o){no&&(t=1);break}}return t},o.prototype.gtn=function(e){return 1===this.cmpn(e)},o.prototype.gt=function(e){return 1===this.cmp(e)},o.prototype.gten=function(e){return this.cmpn(e)>=0},o.prototype.gte=function(e){return this.cmp(e)>=0},o.prototype.ltn=function(e){return-1===this.cmpn(e)},o.prototype.lt=function(e){return-1===this.cmp(e)},o.prototype.lten=function(e){return this.cmpn(e)<=0},o.prototype.lte=function(e){return this.cmp(e)<=0},o.prototype.eqn=function(e){return 0===this.cmpn(e)},o.prototype.eq=function(e){return 0===this.cmp(e)},o.red=function(e){return new $(e)},o.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},o.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(e){return this.red=e,this},o.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},o.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},o.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},o.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},o.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},o.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},o.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},o.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},o.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var y={k256:null,p224:null,p192:null,p25519:null};function g(e,t){this.name=e,this.p=new o(t,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function b(){g.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function w(){g.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){g.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function v(){g.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function $(e){if("string"==typeof e){var t=o._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function I(e){$.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}g.prototype._tmp=function(){var e=new o(null);return e.words=new Array(Math.ceil(this.n/13)),e},g.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var n=t0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},g.prototype.split=function(e,t){e.iushrn(this.n,0,t)},g.prototype.imulK=function(e){return e.imul(this.k)},n(b,g),b.prototype.split=function(e,t){for(var r=4194303,n=Math.min(e.length,9),o=0;o>>22,i=s}i>>>=22,e.words[o-10]=i,0===i&&e.length>10?e.length-=10:e.length-=9},b.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r>>=26,e.words[r]=o,t=n}return 0!==t&&(e.words[e.length++]=t),e},o._prime=function(e){if(y[e])return y[e];var t;if("k256"===e)t=new b;else if("p224"===e)t=new w;else if("p192"===e)t=new _;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new v}return y[e]=t,t},$.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},$.prototype._verify2=function(e,t){r(!(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},$.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},$.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},$.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},$.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},$.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},$.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},$.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},$.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},$.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},$.prototype.isqr=function(e){return this.imul(e,e.clone())},$.prototype.sqr=function(e){return this.mul(e,e)},$.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var n=this.m.add(new o(1)).iushrn(2);return this.pow(e,n)}for(var i=this.m.subn(1),s=0;!i.isZero()&&0===i.andln(1);)s++,i.iushrn(1);r(!i.isZero());var a=new o(1).toRed(this),c=a.redNeg(),u=this.m.subn(1).iushrn(1),l=this.m.bitLength();for(l=new o(2*l*l).toRed(this);0!==this.pow(l,u).cmp(c);)l.redIAdd(c);for(var d=this.pow(l,i),h=this.pow(e,i.addn(1).iushrn(1)),f=this.pow(e,i),p=s;0!==f.cmp(a);){for(var m=f,y=0;0!==m.cmp(a);y++)m=m.redSqr();r(y=0;n--){for(var u=t.words[n],l=c-1;l>=0;l--){var d=u>>l&1;i!==r[0]&&(i=this.sqr(i)),0!==d||0!==s?(s<<=1,s|=d,(4===++a||0===n&&0===l)&&(i=this.mul(i,r[s]),a=0,s=0)):a=0}c=26}return i},$.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},$.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},o.mont=function(e){return new I(e)},n(I,$),I.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},I.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},I.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),o=r.isub(n).iushrn(this.shift),i=o;return o.cmp(this.m)>=0?i=o.isub(this.m):o.cmpn(0)<0&&(i=o.iadd(this.m)),i._forceRed(this)},I.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new o(0)._forceRed(this);var r=e.mul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),s=i;return i.cmp(this.m)>=0?s=i.isub(this.m):i.cmpn(0)<0&&(s=i.iadd(this.m)),s._forceRed(this)},I.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e,commonjsGlobal)}(bn$2);var bnExports=bn$2.exports;!function(e){var t=e,r=bnExports,n=minimalisticAssert$1,o=utils$A;t.assert=n,t.toArray=o.toArray,t.zero2=o.zero2,t.toHex=o.toHex,t.encode=o.encode,t.getNAF=function(e,t,r){var n,o=new Array(Math.max(e.bitLength(),r)+1);for(n=0;n(i>>1)-1?(i>>1)-c:c,s.isubn(a)):a=0,o[n]=a,s.iushrn(1)}return o},t.getJSF=function(e,t){var r=[[],[]];e=e.clone(),t=t.clone();for(var n,o=0,i=0;e.cmpn(-o)>0||t.cmpn(-i)>0;){var s,a,c=e.andln(3)+o&3,u=t.andln(3)+i&3;3===c&&(c=-1),3===u&&(u=-1),s=1&c?3!==(n=e.andln(7)+o&7)&&5!==n||2!==u?c:-c:0,r[0].push(s),a=1&u?3!==(n=t.andln(7)+i&7)&&5!==n||2!==c?u:-u:0,r[1].push(a),2*o===s+1&&(o=1-o),2*i===a+1&&(i=1-i),e.iushrn(1),t.iushrn(1)}return r},t.cachedProperty=function(e,t,r){var n="_"+t;e.prototype[t]=function(){return void 0!==this[n]?this[n]:this[n]=r.call(this)}},t.parseBytes=function(e){return"string"==typeof e?t.toArray(e,"hex"):e},t.intFromLE=function(e){return new r(e,"hex","le")}}(utils$e);var curve={},BN$7=bnExports,utils$d=utils$e,getNAF=utils$d.getNAF,getJSF=utils$d.getJSF,assert$8=utils$d.assert;function BaseCurve(e,t){this.type=e,this.p=new BN$7(t.p,16),this.red=t.prime?BN$7.red(t.prime):BN$7.mont(this.p),this.zero=new BN$7(0).toRed(this.red),this.one=new BN$7(1).toRed(this.red),this.two=new BN$7(2).toRed(this.red),this.n=t.n&&new BN$7(t.n,16),this.g=t.g&&this.pointFromJSON(t.g,t.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var r=this.n&&this.p.div(this.n);!r||r.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}var base=BaseCurve;function BasePoint(e,t){this.curve=e,this.type=t,this.precomputed=null}BaseCurve.prototype.point=function(){throw new Error("Not implemented")},BaseCurve.prototype.validate=function(){throw new Error("Not implemented")},BaseCurve.prototype._fixedNafMul=function(e,t){assert$8(e.precomputed);var r=e._getDoubles(),n=getNAF(t,1,this._bitLength),o=(1<=i;c--)s=(s<<1)+n[c];a.push(s)}for(var u=this.jpoint(null,null,null),l=this.jpoint(null,null,null),d=o;d>0;d--){for(i=0;i=0;a--){for(var c=0;a>=0&&0===i[a];a--)c++;if(a>=0&&c++,s=s.dblp(c),a<0)break;var u=i[a];assert$8(0!==u),s="affine"===e.type?u>0?s.mixedAdd(o[u-1>>1]):s.mixedAdd(o[-u-1>>1].neg()):u>0?s.add(o[u-1>>1]):s.add(o[-u-1>>1].neg())}return"affine"===e.type?s.toP():s},BaseCurve.prototype._wnafMulAdd=function(e,t,r,n,o){var i,s,a,c=this._wnafT1,u=this._wnafT2,l=this._wnafT3,d=0;for(i=0;i=1;i-=2){var f=i-1,p=i;if(1===c[f]&&1===c[p]){var m=[t[f],null,null,t[p]];0===t[f].y.cmp(t[p].y)?(m[1]=t[f].add(t[p]),m[2]=t[f].toJ().mixedAdd(t[p].neg())):0===t[f].y.cmp(t[p].y.redNeg())?(m[1]=t[f].toJ().mixedAdd(t[p]),m[2]=t[f].add(t[p].neg())):(m[1]=t[f].toJ().mixedAdd(t[p]),m[2]=t[f].toJ().mixedAdd(t[p].neg()));var y=[-3,-1,-5,-7,0,7,5,1,3],g=getJSF(r[f],r[p]);for(d=Math.max(g[0].length,d),l[f]=new Array(d),l[p]=new Array(d),s=0;s=0;i--){for(var $=0;i>=0;){var I=!0;for(s=0;s=0&&$++,_=_.dblp($),i<0)break;for(s=0;s0?a=u[s][k-1>>1]:k<0&&(a=u[s][-k-1>>1].neg()),_="affine"===a.type?_.mixedAdd(a):_.add(a))}}for(i=0;i=Math.ceil((e.bitLength()+1)/t.step)},BasePoint.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var r=[this],n=this,o=0;o=0&&(i=t,s=r),n.negative&&(n=n.neg(),o=o.neg()),i.negative&&(i=i.neg(),s=s.neg()),[{a:n,b:o},{a:i,b:s}]},ShortCurve.prototype._endoSplit=function(e){var t=this.endo.basis,r=t[0],n=t[1],o=n.b.mul(e).divRound(this.n),i=r.b.neg().mul(e).divRound(this.n),s=o.mul(r.a),a=i.mul(n.a),c=o.mul(r.b),u=i.mul(n.b);return{k1:e.sub(s).sub(a),k2:c.add(u).neg()}},ShortCurve.prototype.pointFromX=function(e,t){(e=new BN$6(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),n=r.redSqrt();if(0!==n.redSqr().redSub(r).cmp(this.zero))throw new Error("invalid point");var o=n.fromRed().isOdd();return(t&&!o||!t&&o)&&(n=n.redNeg()),this.point(e,n)},ShortCurve.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,r=e.y,n=this.a.redMul(t),o=t.redSqr().redMul(t).redIAdd(n).redIAdd(this.b);return 0===r.redSqr().redISub(o).cmpn(0)},ShortCurve.prototype._endoWnafMulAdd=function(e,t,r){for(var n=this._endoWnafT1,o=this._endoWnafT2,i=0;i":""},Point$2.prototype.isInfinity=function(){return this.inf},Point$2.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var r=t.redSqr().redISub(this.x).redISub(e.x),n=t.redMul(this.x.redSub(r)).redISub(this.y);return this.curve.point(r,n)},Point$2.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,r=this.x.redSqr(),n=e.redInvm(),o=r.redAdd(r).redIAdd(r).redIAdd(t).redMul(n),i=o.redSqr().redISub(this.x.redAdd(this.x)),s=o.redMul(this.x.redSub(i)).redISub(this.y);return this.curve.point(i,s)},Point$2.prototype.getX=function(){return this.x.fromRed()},Point$2.prototype.getY=function(){return this.y.fromRed()},Point$2.prototype.mul=function(e){return e=new BN$6(e,16),this.isInfinity()?this:this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},Point$2.prototype.mulAdd=function(e,t,r){var n=[this,t],o=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,o):this.curve._wnafMulAdd(1,n,o,2)},Point$2.prototype.jmulAdd=function(e,t,r){var n=[this,t],o=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,o,!0):this.curve._wnafMulAdd(1,n,o,2,!0)},Point$2.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},Point$2.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var r=this.precomputed,n=function(e){return e.neg()};t.precomputed={naf:r.naf&&{wnd:r.naf.wnd,points:r.naf.points.map(n)},doubles:r.doubles&&{step:r.doubles.step,points:r.doubles.points.map(n)}}}return t},Point$2.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},inherits$2(JPoint,Base$2.BasePoint),ShortCurve.prototype.jpoint=function(e,t,r){return new JPoint(this,e,t,r)},JPoint.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),r=this.x.redMul(t),n=this.y.redMul(t).redMul(e);return this.curve.point(r,n)},JPoint.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},JPoint.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),r=this.z.redSqr(),n=this.x.redMul(t),o=e.x.redMul(r),i=this.y.redMul(t.redMul(e.z)),s=e.y.redMul(r.redMul(this.z)),a=n.redSub(o),c=i.redSub(s);if(0===a.cmpn(0))return 0!==c.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var u=a.redSqr(),l=u.redMul(a),d=n.redMul(u),h=c.redSqr().redIAdd(l).redISub(d).redISub(d),f=c.redMul(d.redISub(h)).redISub(i.redMul(l)),p=this.z.redMul(e.z).redMul(a);return this.curve.jpoint(h,f,p)},JPoint.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),r=this.x,n=e.x.redMul(t),o=this.y,i=e.y.redMul(t).redMul(this.z),s=r.redSub(n),a=o.redSub(i);if(0===s.cmpn(0))return 0!==a.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var c=s.redSqr(),u=c.redMul(s),l=r.redMul(c),d=a.redSqr().redIAdd(u).redISub(l).redISub(l),h=a.redMul(l.redISub(d)).redISub(o.redMul(u)),f=this.z.redMul(s);return this.curve.jpoint(d,h,f)},JPoint.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();var t;if(this.curve.zeroA||this.curve.threeA){var r=this;for(t=0;t=0)return!1;if(r.redIAdd(o),0===this.x.cmp(r))return!0}},JPoint.prototype.inspect=function(){return this.isInfinity()?"":""},JPoint.prototype.isInfinity=function(){return 0===this.z.cmpn(0)};var BN$5=bnExports,inherits$1=requireInherits_browser(),Base$1=base,utils$b=utils$e;function MontCurve(e){Base$1.call(this,"mont",e),this.a=new BN$5(e.a,16).toRed(this.red),this.b=new BN$5(e.b,16).toRed(this.red),this.i4=new BN$5(4).toRed(this.red).redInvm(),this.two=new BN$5(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}inherits$1(MontCurve,Base$1);var mont=MontCurve;function Point$1(e,t,r){Base$1.BasePoint.call(this,e,"projective"),null===t&&null===r?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new BN$5(t,16),this.z=new BN$5(r,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}MontCurve.prototype.validate=function(e){var t=e.normalize().x,r=t.redSqr(),n=r.redMul(t).redAdd(r.redMul(this.a)).redAdd(t);return 0===n.redSqrt().redSqr().cmp(n)},inherits$1(Point$1,Base$1.BasePoint),MontCurve.prototype.decodePoint=function(e,t){return this.point(utils$b.toArray(e,t),1)},MontCurve.prototype.point=function(e,t){return new Point$1(this,e,t)},MontCurve.prototype.pointFromJSON=function(e){return Point$1.fromJSON(this,e)},Point$1.prototype.precompute=function(){},Point$1.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},Point$1.fromJSON=function(e,t){return new Point$1(e,t[0],t[1]||e.one)},Point$1.prototype.inspect=function(){return this.isInfinity()?"":""},Point$1.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},Point$1.prototype.dbl=function(){var e=this.x.redAdd(this.z).redSqr(),t=this.x.redSub(this.z).redSqr(),r=e.redSub(t),n=e.redMul(t),o=r.redMul(t.redAdd(this.curve.a24.redMul(r)));return this.curve.point(n,o)},Point$1.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},Point$1.prototype.diffAdd=function(e,t){var r=this.x.redAdd(this.z),n=this.x.redSub(this.z),o=e.x.redAdd(e.z),i=e.x.redSub(e.z).redMul(r),s=o.redMul(n),a=t.z.redMul(i.redAdd(s).redSqr()),c=t.x.redMul(i.redISub(s).redSqr());return this.curve.point(a,c)},Point$1.prototype.mul=function(e){for(var t=e.clone(),r=this,n=this.curve.point(null,null),o=[];0!==t.cmpn(0);t.iushrn(1))o.push(t.andln(1));for(var i=o.length-1;i>=0;i--)0===o[i]?(r=r.diffAdd(n,this),n=n.dbl()):(n=r.diffAdd(n,this),r=r.dbl());return n},Point$1.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},Point$1.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},Point$1.prototype.eq=function(e){return 0===this.getX().cmp(e.getX())},Point$1.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},Point$1.prototype.getX=function(){return this.normalize(),this.x.fromRed()};var utils$a=utils$e,BN$4=bnExports,inherits=requireInherits_browser(),Base=base,assert$6=utils$a.assert;function EdwardsCurve(e){this.twisted=1!=(0|e.a),this.mOneA=this.twisted&&-1==(0|e.a),this.extended=this.mOneA,Base.call(this,"edwards",e),this.a=new BN$4(e.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new BN$4(e.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new BN$4(e.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),assert$6(!this.twisted||0===this.c.fromRed().cmpn(1)),this.oneC=1==(0|e.c)}inherits(EdwardsCurve,Base);var edwards=EdwardsCurve;function Point(e,t,r,n,o){Base.BasePoint.call(this,e,"projective"),null===t&&null===r&&null===n?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new BN$4(t,16),this.y=new BN$4(r,16),this.z=n?new BN$4(n,16):this.curve.one,this.t=o&&new BN$4(o,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}EdwardsCurve.prototype._mulA=function(e){return this.mOneA?e.redNeg():this.a.redMul(e)},EdwardsCurve.prototype._mulC=function(e){return this.oneC?e:this.c.redMul(e)},EdwardsCurve.prototype.jpoint=function(e,t,r,n){return this.point(e,t,r,n)},EdwardsCurve.prototype.pointFromX=function(e,t){(e=new BN$4(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr(),n=this.c2.redSub(this.a.redMul(r)),o=this.one.redSub(this.c2.redMul(this.d).redMul(r)),i=n.redMul(o.redInvm()),s=i.redSqrt();if(0!==s.redSqr().redSub(i).cmp(this.zero))throw new Error("invalid point");var a=s.fromRed().isOdd();return(t&&!a||!t&&a)&&(s=s.redNeg()),this.point(e,s)},EdwardsCurve.prototype.pointFromY=function(e,t){(e=new BN$4(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr(),n=r.redSub(this.c2),o=r.redMul(this.d).redMul(this.c2).redSub(this.a),i=n.redMul(o.redInvm());if(0===i.cmp(this.zero)){if(t)throw new Error("invalid point");return this.point(this.zero,e)}var s=i.redSqrt();if(0!==s.redSqr().redSub(i).cmp(this.zero))throw new Error("invalid point");return s.fromRed().isOdd()!==t&&(s=s.redNeg()),this.point(s,e)},EdwardsCurve.prototype.validate=function(e){if(e.isInfinity())return!0;e.normalize();var t=e.x.redSqr(),r=e.y.redSqr(),n=t.redMul(this.a).redAdd(r),o=this.c2.redMul(this.one.redAdd(this.d.redMul(t).redMul(r)));return 0===n.cmp(o)},inherits(Point,Base.BasePoint),EdwardsCurve.prototype.pointFromJSON=function(e){return Point.fromJSON(this,e)},EdwardsCurve.prototype.point=function(e,t,r,n){return new Point(this,e,t,r,n)},Point.fromJSON=function(e,t){return new Point(e,t[0],t[1],t[2])},Point.prototype.inspect=function(){return this.isInfinity()?"":""},Point.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},Point.prototype._extDbl=function(){var e=this.x.redSqr(),t=this.y.redSqr(),r=this.z.redSqr();r=r.redIAdd(r);var n=this.curve._mulA(e),o=this.x.redAdd(this.y).redSqr().redISub(e).redISub(t),i=n.redAdd(t),s=i.redSub(r),a=n.redSub(t),c=o.redMul(s),u=i.redMul(a),l=o.redMul(a),d=s.redMul(i);return this.curve.point(c,u,d,l)},Point.prototype._projDbl=function(){var e,t,r,n,o,i,s=this.x.redAdd(this.y).redSqr(),a=this.x.redSqr(),c=this.y.redSqr();if(this.curve.twisted){var u=(n=this.curve._mulA(a)).redAdd(c);this.zOne?(e=s.redSub(a).redSub(c).redMul(u.redSub(this.curve.two)),t=u.redMul(n.redSub(c)),r=u.redSqr().redSub(u).redSub(u)):(o=this.z.redSqr(),i=u.redSub(o).redISub(o),e=s.redSub(a).redISub(c).redMul(i),t=u.redMul(n.redSub(c)),r=u.redMul(i))}else n=a.redAdd(c),o=this.curve._mulC(this.z).redSqr(),i=n.redSub(o).redSub(o),e=this.curve._mulC(s.redISub(n)).redMul(i),t=this.curve._mulC(n).redMul(a.redISub(c)),r=n.redMul(i);return this.curve.point(e,t,r)},Point.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},Point.prototype._extAdd=function(e){var t=this.y.redSub(this.x).redMul(e.y.redSub(e.x)),r=this.y.redAdd(this.x).redMul(e.y.redAdd(e.x)),n=this.t.redMul(this.curve.dd).redMul(e.t),o=this.z.redMul(e.z.redAdd(e.z)),i=r.redSub(t),s=o.redSub(n),a=o.redAdd(n),c=r.redAdd(t),u=i.redMul(s),l=a.redMul(c),d=i.redMul(c),h=s.redMul(a);return this.curve.point(u,l,h,d)},Point.prototype._projAdd=function(e){var t,r,n=this.z.redMul(e.z),o=n.redSqr(),i=this.x.redMul(e.x),s=this.y.redMul(e.y),a=this.curve.d.redMul(i).redMul(s),c=o.redSub(a),u=o.redAdd(a),l=this.x.redAdd(this.y).redMul(e.x.redAdd(e.y)).redISub(i).redISub(s),d=n.redMul(c).redMul(l);return this.curve.twisted?(t=n.redMul(u).redMul(s.redSub(this.curve._mulA(i))),r=c.redMul(u)):(t=n.redMul(u).redMul(s.redSub(i)),r=this.curve._mulC(c).redMul(u)),this.curve.point(d,t,r)},Point.prototype.add=function(e){return this.isInfinity()?e:e.isInfinity()?this:this.curve.extended?this._extAdd(e):this._projAdd(e)},Point.prototype.mul=function(e){return this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve._wnafMul(this,e)},Point.prototype.mulAdd=function(e,t,r){return this.curve._wnafMulAdd(1,[this,t],[e,r],2,!1)},Point.prototype.jmulAdd=function(e,t,r){return this.curve._wnafMulAdd(1,[this,t],[e,r],2,!0)},Point.prototype.normalize=function(){if(this.zOne)return this;var e=this.z.redInvm();return this.x=this.x.redMul(e),this.y=this.y.redMul(e),this.t&&(this.t=this.t.redMul(e)),this.z=this.curve.one,this.zOne=!0,this},Point.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},Point.prototype.getX=function(){return this.normalize(),this.x.fromRed()},Point.prototype.getY=function(){return this.normalize(),this.y.fromRed()},Point.prototype.eq=function(e){return this===e||0===this.getX().cmp(e.getX())&&0===this.getY().cmp(e.getY())},Point.prototype.eqXToP=function(e){var t=e.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(t))return!0;for(var r=e.clone(),n=this.curve.redN.redMul(this.z);;){if(r.iadd(this.curve.n),r.cmp(this.curve.p)>=0)return!1;if(t.redIAdd(n),0===this.x.cmp(t))return!0}},Point.prototype.toP=Point.prototype.normalize,Point.prototype.mixedAdd=Point.prototype.add,function(e){var t=e;t.base=base,t.short=short,t.mont=mont,t.edwards=edwards}(curve);var curves$2={},secp256k1,hasRequiredSecp256k1;function requireSecp256k1(){return hasRequiredSecp256k1?secp256k1:(hasRequiredSecp256k1=1,secp256k1={doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}})}!function(e){var t,r=e,n=hash$6,o=curve,i=utils$e.assert;function s(e){"short"===e.type?this.curve=new o.short(e):"edwards"===e.type?this.curve=new o.edwards(e):this.curve=new o.mont(e),this.g=this.curve.g,this.n=this.curve.n,this.hash=e.hash,i(this.g.validate(),"Invalid curve"),i(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function a(e,t){Object.defineProperty(r,e,{configurable:!0,enumerable:!0,get:function(){var n=new s(t);return Object.defineProperty(r,e,{configurable:!0,enumerable:!0,value:n}),n}})}r.PresetCurve=s,a("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:n.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),a("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:n.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),a("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:n.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),a("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:n.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),a("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:n.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),a("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:n.sha256,gRed:!1,g:["9"]}),a("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:n.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{t=requireSecp256k1()}catch(c){t=void 0}a("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:n.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",t]})}(curves$2);var BN$3=bnExports,utils$9=utils$e,assert$5=utils$9.assert;function KeyPair$3(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}var key$1=KeyPair$3;KeyPair$3.fromPublic=function(e,t,r){return t instanceof KeyPair$3?t:new KeyPair$3(e,{pub:t,pubEnc:r})},KeyPair$3.fromPrivate=function(e,t,r){return t instanceof KeyPair$3?t:new KeyPair$3(e,{priv:t,privEnc:r})},KeyPair$3.prototype.validate=function(){var e=this.getPublic();return e.isInfinity()?{result:!1,reason:"Invalid public key"}:e.validate()?e.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},KeyPair$3.prototype.getPublic=function(e,t){return"string"==typeof e&&(t=e,e=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),t?this.pub.encode(t,e):this.pub},KeyPair$3.prototype.getPrivate=function(e){return"hex"===e?this.priv.toString(16,2):this.priv},KeyPair$3.prototype._importPrivate=function(e,t){this.priv=new BN$3(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},KeyPair$3.prototype._importPublic=function(e,t){if(e.x||e.y)return"mont"===this.ec.curve.type?assert$5(e.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||assert$5(e.x&&e.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(e.x,e.y));this.pub=this.ec.curve.decodePoint(e,t)},KeyPair$3.prototype.derive=function(e){return e.validate()||assert$5(e.validate(),"public point not validated"),e.mul(this.priv).getX()},KeyPair$3.prototype.sign=function(e,t,r){return this.ec.sign(e,this,t,r)},KeyPair$3.prototype.verify=function(e,t){return this.ec.verify(e,t,this)},KeyPair$3.prototype.inspect=function(){return""};var BN$2=bnExports,utils$8=utils$e,assert$4=utils$8.assert;function Signature$3(e,t){if(e instanceof Signature$3)return e;this._importDER(e,t)||(assert$4(e.r&&e.s,"Signature without r or s"),this.r=new BN$2(e.r,16),this.s=new BN$2(e.s,16),void 0===e.recoveryParam?this.recoveryParam=null:this.recoveryParam=e.recoveryParam)}var signature$1=Signature$3;function Position(){this.place=0}function getLength(e,t){var r=e[t.place++];if(!(128&r))return r;var n=15&r;if(0===n||n>4)return!1;if(0===e[t.place])return!1;for(var o=0,i=0,s=t.place;i>>=0;return!(o<=127)&&(t.place=s,o)}function rmPadding(e){for(var t=0,r=e.length-1;!e[t]&&!(128&e[t+1])&&t>>3);for(e.push(128|r);--r;)e.push(t>>>(r<<3)&255);e.push(t)}}Signature$3.prototype._importDER=function(e,t){e=utils$8.toArray(e,t);var r=new Position;if(48!==e[r.place++])return!1;var n=getLength(e,r);if(!1===n)return!1;if(n+r.place!==e.length)return!1;if(2!==e[r.place++])return!1;var o=getLength(e,r);if(!1===o)return!1;if(128&e[r.place])return!1;var i=e.slice(r.place,o+r.place);if(r.place+=o,2!==e[r.place++])return!1;var s=getLength(e,r);if(!1===s)return!1;if(e.length!==s+r.place)return!1;if(128&e[r.place])return!1;var a=e.slice(r.place,s+r.place);if(0===i[0]){if(!(128&i[1]))return!1;i=i.slice(1)}if(0===a[0]){if(!(128&a[1]))return!1;a=a.slice(1)}return this.r=new BN$2(i),this.s=new BN$2(a),this.recoveryParam=null,!0},Signature$3.prototype.toDER=function(e){var t=this.r.toArray(),r=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&r[0]&&(r=[0].concat(r)),t=rmPadding(t),r=rmPadding(r);!(r[0]||128&r[1]);)r=r.slice(1);var n=[2];constructLength(n,t.length),(n=n.concat(t)).push(2),constructLength(n,r.length);var o=n.concat(r),i=[48];return constructLength(i,o.length),i=i.concat(o),utils$8.encode(i,e)};var BN$1=bnExports,HmacDRBG=hmacDrbg$1,utils$7=utils$e,curves$1=curves$2,rand=requireBrorand(),assert$3=utils$7.assert,KeyPair$2=key$1,Signature$2=signature$1;function EC(e){if(!(this instanceof EC))return new EC(e);"string"==typeof e&&(assert$3(Object.prototype.hasOwnProperty.call(curves$1,e),"Unknown curve "+e),e=curves$1[e]),e instanceof curves$1.PresetCurve&&(e={curve:e}),this.curve=e.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=e.curve.g,this.g.precompute(e.curve.n.bitLength()+1),this.hash=e.hash||e.curve.hash}var ec=EC;EC.prototype.keyPair=function(e){return new KeyPair$2(this,e)},EC.prototype.keyFromPrivate=function(e,t){return KeyPair$2.fromPrivate(this,e,t)},EC.prototype.keyFromPublic=function(e,t){return KeyPair$2.fromPublic(this,e,t)},EC.prototype.genKeyPair=function(e){e||(e={});for(var t=new HmacDRBG({hash:this.hash,pers:e.pers,persEnc:e.persEnc||"utf8",entropy:e.entropy||rand(this.hash.hmacStrength),entropyEnc:e.entropy&&e.entropyEnc||"utf8",nonce:this.n.toArray()}),r=this.n.byteLength(),n=this.n.sub(new BN$1(2));;){var o=new BN$1(t.generate(r));if(!(o.cmp(n)>0))return o.iaddn(1),this.keyFromPrivate(o)}},EC.prototype._truncateToN=function(e,t){var r=8*e.byteLength()-this.n.bitLength();return r>0&&(e=e.ushrn(r)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},EC.prototype.sign=function(e,t,r,n){"object"==typeof r&&(n=r,r=null),n||(n={}),t=this.keyFromPrivate(t,r),e=this._truncateToN(new BN$1(e,16));for(var o=this.n.byteLength(),i=t.getPrivate().toArray("be",o),s=e.toArray("be",o),a=new HmacDRBG({hash:this.hash,entropy:i,nonce:s,pers:n.pers,persEnc:n.persEnc||"utf8"}),c=this.n.sub(new BN$1(1)),u=0;;u++){var l=n.k?n.k(u):new BN$1(a.generate(this.n.byteLength()));if(!((l=this._truncateToN(l,!0)).cmpn(1)<=0||l.cmp(c)>=0)){var d=this.g.mul(l);if(!d.isInfinity()){var h=d.getX(),f=h.umod(this.n);if(0!==f.cmpn(0)){var p=l.invm(this.n).mul(f.mul(t.getPrivate()).iadd(e));if(0!==(p=p.umod(this.n)).cmpn(0)){var m=(d.getY().isOdd()?1:0)|(0!==h.cmp(f)?2:0);return n.canonical&&p.cmp(this.nh)>0&&(p=this.n.sub(p),m^=1),new Signature$2({r:f,s:p,recoveryParam:m})}}}}}},EC.prototype.verify=function(e,t,r,n){e=this._truncateToN(new BN$1(e,16)),r=this.keyFromPublic(r,n);var o=(t=new Signature$2(t,"hex")).r,i=t.s;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;if(i.cmpn(1)<0||i.cmp(this.n)>=0)return!1;var s,a=i.invm(this.n),c=a.mul(e).umod(this.n),u=a.mul(o).umod(this.n);return this.curve._maxwellTrick?!(s=this.g.jmulAdd(c,r.getPublic(),u)).isInfinity()&&s.eqXToP(o):!(s=this.g.mulAdd(c,r.getPublic(),u)).isInfinity()&&0===s.getX().umod(this.n).cmp(o)},EC.prototype.recoverPubKey=function(e,t,r,n){assert$3((3&r)===r,"The recovery param is more than two bits"),t=new Signature$2(t,n);var o=this.n,i=new BN$1(e),s=t.r,a=t.s,c=1&r,u=r>>1;if(s.cmp(this.curve.p.umod(this.curve.n))>=0&&u)throw new Error("Unable to find sencond key candinate");s=u?this.curve.pointFromX(s.add(this.curve.n),c):this.curve.pointFromX(s,c);var l=t.r.invm(o),d=o.sub(i).mul(l).umod(o),h=a.mul(l).umod(o);return this.g.mulAdd(d,s,h)},EC.prototype.getKeyRecoveryParam=function(e,t,r,n){if(null!==(t=new Signature$2(t,n)).recoveryParam)return t.recoveryParam;for(var o=0;o<4;o++){var i;try{i=this.recoverPubKey(e,t,o)}catch(s){continue}if(i.eq(r))return o}throw new Error("Unable to find valid recovery factor")};var utils$6=utils$e,assert$2=utils$6.assert,parseBytes$2=utils$6.parseBytes,cachedProperty$1=utils$6.cachedProperty;function KeyPair$1(e,t){this.eddsa=e,this._secret=parseBytes$2(t.secret),e.isPoint(t.pub)?this._pub=t.pub:this._pubBytes=parseBytes$2(t.pub)}KeyPair$1.fromPublic=function(e,t){return t instanceof KeyPair$1?t:new KeyPair$1(e,{pub:t})},KeyPair$1.fromSecret=function(e,t){return t instanceof KeyPair$1?t:new KeyPair$1(e,{secret:t})},KeyPair$1.prototype.secret=function(){return this._secret},cachedProperty$1(KeyPair$1,"pubBytes",(function(){return this.eddsa.encodePoint(this.pub())})),cachedProperty$1(KeyPair$1,"pub",(function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())})),cachedProperty$1(KeyPair$1,"privBytes",(function(){var e=this.eddsa,t=this.hash(),r=e.encodingLength-1,n=t.slice(0,e.encodingLength);return n[0]&=248,n[r]&=127,n[r]|=64,n})),cachedProperty$1(KeyPair$1,"priv",(function(){return this.eddsa.decodeInt(this.privBytes())})),cachedProperty$1(KeyPair$1,"hash",(function(){return this.eddsa.hash().update(this.secret()).digest()})),cachedProperty$1(KeyPair$1,"messagePrefix",(function(){return this.hash().slice(this.eddsa.encodingLength)})),KeyPair$1.prototype.sign=function(e){return assert$2(this._secret,"KeyPair can only verify"),this.eddsa.sign(e,this)},KeyPair$1.prototype.verify=function(e,t){return this.eddsa.verify(e,t,this)},KeyPair$1.prototype.getSecret=function(e){return assert$2(this._secret,"KeyPair is public only"),utils$6.encode(this.secret(),e)},KeyPair$1.prototype.getPublic=function(e){return utils$6.encode(this.pubBytes(),e)};var key=KeyPair$1,BN=bnExports,utils$5=utils$e,assert$1=utils$5.assert,cachedProperty=utils$5.cachedProperty,parseBytes$1=utils$5.parseBytes;function Signature$1(e,t){this.eddsa=e,"object"!=typeof t&&(t=parseBytes$1(t)),Array.isArray(t)&&(assert$1(t.length===2*e.encodingLength,"Signature has invalid size"),t={R:t.slice(0,e.encodingLength),S:t.slice(e.encodingLength)}),assert$1(t.R&&t.S,"Signature without R or S"),e.isPoint(t.R)&&(this._R=t.R),t.S instanceof BN&&(this._S=t.S),this._Rencoded=Array.isArray(t.R)?t.R:t.Rencoded,this._Sencoded=Array.isArray(t.S)?t.S:t.Sencoded}cachedProperty(Signature$1,"S",(function(){return this.eddsa.decodeInt(this.Sencoded())})),cachedProperty(Signature$1,"R",(function(){return this.eddsa.decodePoint(this.Rencoded())})),cachedProperty(Signature$1,"Rencoded",(function(){return this.eddsa.encodePoint(this.R())})),cachedProperty(Signature$1,"Sencoded",(function(){return this.eddsa.encodeInt(this.S())})),Signature$1.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())},Signature$1.prototype.toHex=function(){return utils$5.encode(this.toBytes(),"hex").toUpperCase()};var signature=Signature$1,hash=hash$6,curves=curves$2,utils$4=utils$e,assert=utils$4.assert,parseBytes=utils$4.parseBytes,KeyPair=key,Signature=signature;function EDDSA(e){if(assert("ed25519"===e,"only tested with ed25519 so far"),!(this instanceof EDDSA))return new EDDSA(e);e=curves[e].curve,this.curve=e,this.g=e.g,this.g.precompute(e.n.bitLength()+1),this.pointClass=e.point().constructor,this.encodingLength=Math.ceil(e.n.bitLength()/8),this.hash=hash.sha512}var eddsa=EDDSA;EDDSA.prototype.sign=function(e,t){e=parseBytes(e);var r=this.keyFromSecret(t),n=this.hashInt(r.messagePrefix(),e),o=this.g.mul(n),i=this.encodePoint(o),s=this.hashInt(i,r.pubBytes(),e).mul(r.priv()),a=n.add(s).umod(this.curve.n);return this.makeSignature({R:o,S:a,Rencoded:i})},EDDSA.prototype.verify=function(e,t,r){if(e=parseBytes(e),(t=this.makeSignature(t)).S().gte(t.eddsa.curve.n)||t.S().isNeg())return!1;var n=this.keyFromPublic(r),o=this.hashInt(t.Rencoded(),n.pubBytes(),e),i=this.g.mul(t.S());return t.R().add(n.pub().mul(o)).eq(i)},EDDSA.prototype.hashInt=function(){for(var e=this.hash(),t=0;tt in e?gt$2(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Fe=(e,t)=>{for(var r in t||(t={}))vt$1.call(t,r)&&Le$1(e,r,t[r]);if(Ke)for(var r of Ke(t))bt$1.call(t,r)&&Le$1(e,r,t[r]);return e};const qe="ReactNative",y$5={reactNative:"react-native",node:"node",browser:"browser",unknown:"unknown"},He="js";function ce(){return typeof process$1<"u"&&typeof process$1.versions<"u"&&typeof process$1.versions.node<"u"}function _$5(){return!getDocument_1$1()&&!!getNavigator_1$1()&&navigator.product===qe}function V$3(){return!ce()&&!!getNavigator_1$1()&&!!getDocument_1$1()}function P$4(){return _$5()?y$5.reactNative:ce()?y$5.node:V$3()?y$5.browser:y$5.unknown}function Ot$1(){var e;try{return _$5()&&typeof global$1<"u"&&typeof(null==global$1?void 0:global$1.Application)<"u"?null==(e=global$1.Application)?void 0:e.applicationId:void 0}catch{return}}function We$1(e,t){let r=queryString.parse(e);return r=Fe(Fe({},r),t),e=queryString.stringify(r)}function Nt$1(){return getWindowMetadata_1$1()||{name:"",description:"",url:"",icons:[""]}}function Je$1(){if(P$4()===y$5.reactNative&&typeof global$1<"u"&&typeof(null==global$1?void 0:global$1.Platform)<"u"){const{OS:e,Version:t}=global$1.Platform;return[e,t].join("-")}const e=detect$1();if(null===e)return"unknown";const t=e.os?e.os.replace(" ","").toLowerCase():"unknown";return"browser"===e.type?[t,e.name,e.version].join("-"):[t,e.version].join("-")}function ze(){var e;const t=P$4();return t===y$5.browser?[t,(null==(e=getLocation_1$1())?void 0:e.host)||"unknown"].join(":"):t}function Ge(e,t,r){const n=Je$1(),o=ze();return[[e,t].join("-"),[He,r].join("-"),n,o].join("/")}function $t$1({protocol:e,version:t,relayUrl:r,sdkVersion:n,auth:o,projectId:i,useOnCloseEvent:s,bundleId:a}){const c=r.split("?"),u={auth:o,ua:Ge(e,t,n),projectId:i,useOnCloseEvent:s||void 0,origin:a||void 0},l=We$1(c[1]||"",u);return c[0]+"?"+l}function $$4(e,t){return e.filter((e=>t.includes(e))).length===e.length}function Tt$1(e){return Object.fromEntries(e.entries())}function Pt$1(e){return new Map(Object.entries(e))}function _t$1(e=cjs$7.FIVE_MINUTES,t){const r=cjs$7.toMiliseconds(e||cjs$7.FIVE_MINUTES);let n,o,i;return{resolve:e=>{i&&n&&(clearTimeout(i),n(e))},reject:e=>{i&&o&&(clearTimeout(i),o(e))},done:()=>new Promise(((e,s)=>{i=setTimeout((()=>{s(new Error(t))}),r),n=e,o=s}))}}function kt$1(e,t,r){return new Promise((async(n,o)=>{const i=setTimeout((()=>o(new Error(r))),t);try{n(await e)}catch(s){o(s)}clearTimeout(i)}))}function ae$1(e,t){if("string"==typeof t&&t.startsWith(`${e}:`))return t;if("topic"===e.toLowerCase()){if("string"!=typeof t)throw new Error('Value must be "string" for expirer target type: topic');return`topic:${t}`}if("id"===e.toLowerCase()){if("number"!=typeof t)throw new Error('Value must be "number" for expirer target type: id');return`id:${t}`}throw new Error(`Unknown expirer target type: ${e}`)}function Dt$1(e){return ae$1("topic",e)}function xt$1(e){return ae$1("id",e)}function Vt$1(e){const[t,r]=e.split(":"),n={id:void 0,topic:void 0};if("topic"===t&&"string"==typeof r)n.topic=r;else{if("id"!==t||!Number.isInteger(Number(r)))throw new Error(`Invalid target, expected id:number or topic:string, got ${t}:${r}`);n.id=Number(r)}return n}function Mt$1(e,t){return cjs$7.fromMiliseconds(Date.now()+cjs$7.toMiliseconds(e))}function Kt$1(e){return Date.now()>=cjs$7.toMiliseconds(e)}function Lt$1(e,t){return`${e}${t?`:${t}`:""}`}function N$3(e=[],t=[]){return[...new Set([...e,...t])]}async function Ft$1({id:e,topic:t,wcDeepLink:r}){var n;try{if(!r)return;const o="string"==typeof r?JSON.parse(r):r,i=null==o?void 0:o.href;if("string"!=typeof i)return;const s=Xe$1(i,e,t),a=P$4();if(a===y$5.browser){if(null==(n=getDocument_1$1())||!n.hasFocus())return void console.warn("Document does not have focus, skipping deeplink.");s.startsWith("https://")||s.startsWith("http://")?window.open(s,"_blank","noreferrer noopener"):window.open(s,en$2()?"_blank":"_self","noreferrer noopener")}else a===y$5.reactNative&&typeof(null==global$1?void 0:global$1.Linking)<"u"&&await global$1.Linking.openURL(s)}catch(o){console.error(o)}}function Xe$1(e,t,r){const n=`requestId=${t}&sessionTopic=${r}`;e.endsWith("/")&&(e=e.slice(0,-1));let o=`${e}`;if(e.startsWith("https://t.me")){o=`${o}${e.includes("?")?"&startapp=":"?startapp="}${nn$1(n,!0)}`}else o=`${o}/wc?${n}`;return o}async function qt$1(e,t){let r="";try{if(V$3()&&(r=localStorage.getItem(t),r))return r;r=await e.getItem(t)}catch(n){console.error(n)}return r}function Bt$1(e,t){if(!e.includes(t))return null;const r=e.split(/([&,?,=])/),n=r.indexOf(t);return r[n+2]}function Ht$1(){return typeof crypto<"u"&&null!=crypto&&crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/gu,(e=>{const t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}))}function Wt$1(){return typeof process$1<"u"&&"true"===process$1.env.IS_VITEST}function en$2(){return typeof window<"u"&&(!!window.TelegramWebviewProxy||!!window.Telegram||!!window.TelegramWebviewProxyProto)}function nn$1(e,t=!1){const r=Buffer$2.from(e).toString("base64");return t?r.replace(/[=]/g,""):r}function le(e){return Buffer$2.from(e,"base64").toString("utf-8")}const Jt$1="https://rpc.walletconnect.org/v1";async function tn$1(e,t,r,n,o,i){switch(r.t){case"eip191":return rn$1(e,t,r.s);case"eip1271":return await on$1(e,t,r.s,n,o,i);default:throw new Error(`verifySignature failed: Attempted to verify CacaoSignature with unknown type: ${r.t}`)}}function rn$1(e,t,r){return recoverAddress(hashMessage(t),r).toLowerCase()===e.toLowerCase()}async function on$1(e,t,r,n,o,i){const s=re$1(n);if(!s.namespace||!s.reference)throw new Error(`isValidEip1271Signature failed: chainId must be in CAIP-2 format, received: ${n}`);try{const s="0x1626ba7e",a="0000000000000000000000000000000000000000000000000000000000000040",c="0000000000000000000000000000000000000000000000000000000000000041",u=r.substring(2),l=s+hashMessage(t).substring(2)+a+c+u,d=await fetch(`${i||Jt$1}/?chainId=${n}&projectId=${o}`,{method:"POST",body:JSON.stringify({id:zt$1(),jsonrpc:"2.0",method:"eth_call",params:[{to:e,data:l},"latest"]})}),{result:h}=await d.json();return!!h&&h.slice(0,s.length).toLowerCase()===s.toLowerCase()}catch(a){return console.error("isValidEip1271Signature: ",a),!1}}function zt$1(){return Date.now()+Math.floor(1e3*Math.random())}var Gt$1=Object.defineProperty,Yt$1=Object.defineProperties,Qt$1=Object.getOwnPropertyDescriptors,sn$1=Object.getOwnPropertySymbols,Zt$1=Object.prototype.hasOwnProperty,Xt$1=Object.prototype.propertyIsEnumerable,cn$1=(e,t,r)=>t in e?Gt$1(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,de$1=(e,t)=>{for(var r in t||(t={}))Zt$1.call(t,r)&&cn$1(e,r,t[r]);if(sn$1)for(var r of sn$1(t))Xt$1.call(t,r)&&cn$1(e,r,t[r]);return e},an$1=(e,t)=>Yt$1(e,Qt$1(t));const er$1="did:pkh:",z$6=e=>null==e?void 0:e.split(":"),un$1=e=>{const t=e&&z$6(e);if(t)return e.includes(er$1)?t[3]:t[1]},ln$1=e=>{const t=e&&z$6(e);if(t)return t[2]+":"+t[3]},fe$1=e=>{const t=e&&z$6(e);if(t)return t.pop()};async function nr$1(e){const{cacao:t,projectId:r}=e,{s:n,p:o}=t,i=dn$1(o,o.iss),s=fe$1(o.iss);return await tn$1(s,i,n,ln$1(o.iss),r)}const dn$1=(e,t)=>{const r=`${e.domain} wants you to sign in with your Ethereum account:`,n=fe$1(t);if(!e.aud&&!e.uri)throw new Error("Either `aud` or `uri` is required to construct the message");let o=e.statement||void 0;const i=`URI: ${e.aud||e.uri}`,s=`Version: ${e.version}`,a=`Chain ID: ${un$1(t)}`,c=`Nonce: ${e.nonce}`,u=`Issued At: ${e.iat}`,l=e.exp?`Expiration Time: ${e.exp}`:void 0,d=e.nbf?`Not Before: ${e.nbf}`:void 0,h=e.requestId?`Request ID: ${e.requestId}`:void 0,f=e.resources?`Resources:${e.resources.map((e=>`\n- ${e}`)).join("")}`:void 0,p=Y$1(e.resources);if(p){o=he(o,R$3(p))}return[r,n,"",o,"",i,s,a,c,u,l,d,h,f].filter((e=>null!=e)).join("\n")};function hn$1(e){return Buffer$2.from(JSON.stringify(e)).toString("base64")}function yn$1(e){return JSON.parse(Buffer$2.from(e,"base64").toString("utf-8"))}function O$3(e){if(!e)throw new Error("No recap provided, value is undefined");if(!e.att)throw new Error("No `att` property found");const t=Object.keys(e.att);if(null==t||!t.length)throw new Error("No resources found in `att` property");t.forEach((t=>{const r=e.att[t];if(Array.isArray(r))throw new Error(`Resource must be an object: ${t}`);if("object"!=typeof r)throw new Error(`Resource must be an object: ${t}`);if(!Object.keys(r).length)throw new Error(`Resource object is empty: ${t}`);Object.keys(r).forEach((e=>{const t=r[e];if(!Array.isArray(t))throw new Error(`Ability limits ${e} must be an array of objects, found: ${t}`);if(!t.length)throw new Error(`Value of ${e} is empty array, must be an array with objects`);t.forEach((t=>{if("object"!=typeof t)throw new Error(`Ability limits (${e}) must be an array of objects, found: ${t}`)}))}))}))}function gn$1(e,t,r,n={}){return null==r||r.sort(((e,t)=>e.localeCompare(t))),{att:{[e]:pe(t,r,n)}}}function pe(e,t,r={}){const n=(t=null==t?void 0:t.sort(((e,t)=>e.localeCompare(t)))).map((t=>({[`${e}/${t}`]:[r]})));return Object.assign({},...n)}function G$1(e){return O$3(e),`urn:recap:${hn$1(e).replace(/=/g,"")}`}function R$3(e){const t=yn$1(e.replace("urn:recap:",""));return O$3(t),t}function ir$1(e,t,r){return G$1(gn$1(e,t,r))}function me$2(e){return e&&e.includes("urn:recap:")}function cr$1(e,t){return G$1(bn$1(R$3(e),R$3(t)))}function bn$1(e,t){O$3(e),O$3(t);const r=Object.keys(e.att).concat(Object.keys(t.att)).sort(((e,t)=>e.localeCompare(t))),n={att:{}};return r.forEach((r=>{var o,i;Object.keys((null==(o=e.att)?void 0:o[r])||{}).concat(Object.keys((null==(i=t.att)?void 0:i[r])||{})).sort(((e,t)=>e.localeCompare(t))).forEach((o=>{var i,s;n.att[r]=an$1(de$1({},n.att[r]),{[o]:(null==(i=e.att[r])?void 0:i[o])||(null==(s=t.att[r])?void 0:s[o])})}))})),n}function he(e="",t){O$3(t);const r="I further authorize the stated URI to perform the following actions on my behalf: ";if(e.includes(r))return e;const n=[];let o=0;Object.keys(t.att).forEach((e=>{const r=Object.keys(t.att[e]).map((e=>({ability:e.split("/")[0],action:e.split("/")[1]})));r.sort(((e,t)=>e.action.localeCompare(t.action)));const i={};r.forEach((e=>{i[e.ability]||(i[e.ability]=[]),i[e.ability].push(e.action)}));const s=Object.keys(i).map((t=>(o++,`(${o}) '${t}': '${i[t].join("', '")}' for '${e}'.`)));n.push(s.join(", ").replace(".,","."))}));return`${e?e+" ":""}${`${r}${n.join(" ")}`}`}function ar$1(e){var t;const r=R$3(e);O$3(r);const n=null==(t=r.att)?void 0:t.eip155;return n?Object.keys(n).map((e=>e.split("/")[1])):[]}function ur$1(e){const t=R$3(e);O$3(t);const r=[];return Object.values(t.att).forEach((e=>{Object.values(e).forEach((e=>{var t;null!=(t=null==e?void 0:e[0])&&t.chains&&r.push(e[0].chains)}))})),[...new Set(r.flat())]}function Y$1(e){if(!e)return;const t=null==e?void 0:e[e.length-1];return me$2(t)?t:void 0}const ye$2="base10",g$4="base16",ge="base64pad",lr$1="base64url",k$4="utf8",ve$1=0,D$5=1,M$4=2,dr$1=0,wn=1,K$2=12,be$2=32;function fr$2(){const e=x25519.generateKeyPair();return{privateKey:toString$1(e.secretKey,g$4),publicKey:toString$1(e.publicKey,g$4)}}function pr$1(){return toString$1(random.randomBytes(be$2),g$4)}function mr$1(e,t){const r=x25519.sharedKey(fromString$1(e,g$4),fromString$1(t,g$4),!0);return toString$1(new HKDF_1(sha256.SHA256,r).expand(be$2),g$4)}function hr$1(e){return toString$1(sha256.hash(fromString$1(e,g$4)),g$4)}function yr$1(e){return toString$1(sha256.hash(fromString$1(e,k$4)),g$4)}function Ee$1(e){return fromString$1(`${e}`,ye$2)}function A$4(e){return Number(toString$1(e,ye$2))}function gr$1(e){const t=Ee$1(typeof e.type<"u"?e.type:ve$1);if(A$4(t)===D$5&&typeof e.senderPublicKey>"u")throw new Error("Missing sender public key for type 1 envelope");const r=typeof e.senderPublicKey<"u"?fromString$1(e.senderPublicKey,g$4):void 0,n=typeof e.iv<"u"?fromString$1(e.iv,g$4):random.randomBytes(K$2);return we$2({type:t,sealed:new chacha20poly1305.ChaCha20Poly1305(fromString$1(e.symKey,g$4)).seal(n,fromString$1(e.message,k$4)),iv:n,senderPublicKey:r,encoding:e.encoding})}function vr$1(e,t){const r=Ee$1(M$4),n=random.randomBytes(K$2);return we$2({type:r,sealed:fromString$1(e,k$4),iv:n,encoding:t})}function br$1(e){const t=new chacha20poly1305.ChaCha20Poly1305(fromString$1(e.symKey,g$4)),{sealed:r,iv:n}=Q$1({encoded:e.encoded,encoding:null==e?void 0:e.encoding}),o=t.open(n,r);if(null===o)throw new Error("Failed to decrypt");return toString$1(o,k$4)}function Er$1(e,t){const{sealed:r}=Q$1({encoded:e,encoding:t});return toString$1(r,k$4)}function we$2(e){const{encoding:t=ge}=e;if(A$4(e.type)===M$4)return toString$1(concat([e.type,e.sealed]),t);if(A$4(e.type)===D$5){if(typeof e.senderPublicKey>"u")throw new Error("Missing sender public key for type 1 envelope");return toString$1(concat([e.type,e.senderPublicKey,e.iv,e.sealed]),t)}return toString$1(concat([e.type,e.iv,e.sealed]),t)}function Q$1(e){const{encoded:t,encoding:r=ge}=e,n=fromString$1(t,r),o=n.slice(dr$1,wn),i=wn;if(A$4(o)===D$5){const e=i+be$2,t=e+K$2,r=n.slice(i,e),s=n.slice(e,t);return{type:o,sealed:n.slice(t),iv:s,senderPublicKey:r}}if(A$4(o)===M$4){return{type:o,sealed:n.slice(i),iv:random.randomBytes(K$2)}}const s=i+K$2,a=n.slice(i,s);return{type:o,sealed:n.slice(s),iv:a}}function wr$1(e,t){const r=Q$1({encoded:e,encoding:null==t?void 0:t.encoding});return On({type:A$4(r.type),senderPublicKey:typeof r.senderPublicKey<"u"?toString$1(r.senderPublicKey,g$4):void 0,receiverPublicKey:null==t?void 0:t.receiverPublicKey})}function On(e){const t=(null==e?void 0:e.type)||ve$1;if(t===D$5){if(typeof(null==e?void 0:e.senderPublicKey)>"u")throw new Error("missing sender public key");if(typeof(null==e?void 0:e.receiverPublicKey)>"u")throw new Error("missing receiver public key")}return{type:t,senderPublicKey:null==e?void 0:e.senderPublicKey,receiverPublicKey:null==e?void 0:e.receiverPublicKey}}function Or$1(e){return e.type===D$5&&"string"==typeof e.senderPublicKey&&"string"==typeof e.receiverPublicKey}function Nr$1(e){return e.type===M$4}function Nn(e){return new elliptic.ec("p256").keyFromPublic({x:Buffer$2.from(e.x,"base64").toString("hex"),y:Buffer$2.from(e.y,"base64").toString("hex")},"hex")}function Sr$1(e){let t=e.replace(/-/g,"+").replace(/_/g,"/");const r=t.length%4;return r>0&&(t+="=".repeat(4-r)),t}function $r$1(e){return Buffer$2.from(Sr$1(e),"base64")}function Rr$1(e,t){const[r,n,o]=e.split("."),i=$r$1(o);if(64!==i.length)throw new Error("Invalid signature length");const s=i.slice(0,32).toString("hex"),a=i.slice(32,64).toString("hex"),c=`${r}.${n}`,u=(new sha256.SHA256).update(Buffer$2.from(c)).digest(),l=Nn(t),d=Buffer$2.from(u).toString("hex");if(!l.verify(d,{r:s,s:a}))throw new Error("Invalid signature");return decodeJWT(e).payload}const Sn="irn";function Ir$1(e){return(null==e?void 0:e.relay)||{protocol:Sn}}function jr$1(e){const t=C$6[e];if(typeof t>"u")throw new Error(`Relay Protocol not supported: ${e}`);return t}var Tr$1=Object.defineProperty,Pr$1=Object.defineProperties,Ar$1=Object.getOwnPropertyDescriptors,$n=Object.getOwnPropertySymbols,Cr$1=Object.prototype.hasOwnProperty,Ur$1=Object.prototype.propertyIsEnumerable,Rn=(e,t,r)=>t in e?Tr$1(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,In=(e,t)=>{for(var r in t||(t={}))Cr$1.call(t,r)&&Rn(e,r,t[r]);if($n)for(var r of $n(t))Ur$1.call(t,r)&&Rn(e,r,t[r]);return e},_r$1=(e,t)=>Pr$1(e,Ar$1(t));function jn(e,t="-"){const r={},n="relay"+t;return Object.keys(e).forEach((t=>{if(t.startsWith(n)){const o=t.replace(n,""),i=e[t];r[o]=i}})),r}function kr$1(e){if(!e.includes("wc:")){const t=le(e);null!=t&&t.includes("wc:")&&(e=t)}const t=(e=(e=e.includes("wc://")?e.replace("wc://",""):e).includes("wc:")?e.replace("wc:",""):e).indexOf(":"),r=-1!==e.indexOf("?")?e.indexOf("?"):void 0,n=e.substring(0,t),o=e.substring(t+1,r).split("@"),i=typeof r<"u"?e.substring(r):"",s=queryString.parse(i),a="string"==typeof s.methods?s.methods.split(","):void 0;return{protocol:n,topic:Tn(o[0]),version:parseInt(o[1],10),symKey:s.symKey,relay:jn(s),methods:a,expiryTimestamp:s.expiryTimestamp?parseInt(s.expiryTimestamp,10):void 0}}function Tn(e){return e.startsWith("//")?e.substring(2):e}function Pn(e,t="-"){const r={};return Object.keys(e).forEach((n=>{const o="relay"+t+n;e[n]&&(r[o]=e[n])})),r}function Dr$1(e){return`${e.protocol}:${e.topic}@${e.version}?`+queryString.stringify(In(_r$1(In({symKey:e.symKey},Pn(e.relay)),{expiryTimestamp:e.expiryTimestamp}),e.methods?{methods:e.methods.join(",")}:{}))}function xr$1(e,t,r){return`${e}?wc_ev=${r}&topic=${t}`}function C$4(e){const t=[];return e.forEach((e=>{const[r,n]=e.split(":");t.push(`${r}:${n}`)})),t}function Un(e){const t=[];return Object.values(e).forEach((e=>{t.push(...C$4(e.accounts))})),t}function _n(e,t){const r=[];return Object.values(e).forEach((e=>{C$4(e.accounts).includes(t)&&r.push(...e.methods)})),r}function kn(e,t){const r=[];return Object.values(e).forEach((e=>{C$4(e.accounts).includes(t)&&r.push(...e.events)})),r}function xn(e){const t={};return null==e||e.forEach((e=>{const[r,n]=e.split(":");t[r]||(t[r]={accounts:[],chains:[],events:[]}),t[r].accounts.push(e),t[r].chains.push(`${r}:${n}`)})),t}function Jr$1(e,t){const r=xn(t=t.map((e=>e.replace("did:pkh:",""))));for(const[n,o]of Object.entries(r))o.methods?o.methods=N$3(o.methods,e):o.methods=e,o.events=["chainChanged","accountsChanged"];return r}const Vn={INVALID_METHOD:{message:"Invalid method.",code:1001},INVALID_EVENT:{message:"Invalid event.",code:1002},INVALID_UPDATE_REQUEST:{message:"Invalid update request.",code:1003},INVALID_EXTEND_REQUEST:{message:"Invalid extend request.",code:1004},INVALID_SESSION_SETTLE_REQUEST:{message:"Invalid session settle request.",code:1005},UNAUTHORIZED_METHOD:{message:"Unauthorized method.",code:3001},UNAUTHORIZED_EVENT:{message:"Unauthorized event.",code:3002},UNAUTHORIZED_UPDATE_REQUEST:{message:"Unauthorized update request.",code:3003},UNAUTHORIZED_EXTEND_REQUEST:{message:"Unauthorized extend request.",code:3004},USER_REJECTED:{message:"User rejected.",code:5e3},USER_REJECTED_CHAINS:{message:"User rejected chains.",code:5001},USER_REJECTED_METHODS:{message:"User rejected methods.",code:5002},USER_REJECTED_EVENTS:{message:"User rejected events.",code:5003},UNSUPPORTED_CHAINS:{message:"Unsupported chains.",code:5100},UNSUPPORTED_METHODS:{message:"Unsupported methods.",code:5101},UNSUPPORTED_EVENTS:{message:"Unsupported events.",code:5102},UNSUPPORTED_ACCOUNTS:{message:"Unsupported accounts.",code:5103},UNSUPPORTED_NAMESPACE_KEY:{message:"Unsupported namespace key.",code:5104},USER_DISCONNECTED:{message:"User disconnected.",code:6e3},SESSION_SETTLEMENT_FAILED:{message:"Session settlement failed.",code:7e3},WC_METHOD_UNSUPPORTED:{message:"Unsupported wc_ method.",code:10001}},Mn={NOT_INITIALIZED:{message:"Not initialized.",code:1},NO_MATCHING_KEY:{message:"No matching key.",code:2},RESTORE_WILL_OVERRIDE:{message:"Restore will override.",code:3},RESUBSCRIBED:{message:"Resubscribed.",code:4},MISSING_OR_INVALID:{message:"Missing or invalid.",code:5},EXPIRED:{message:"Expired.",code:6},UNKNOWN_TYPE:{message:"Unknown type.",code:7},MISMATCHED_TOPIC:{message:"Mismatched topic.",code:8},NON_CONFORMING_NAMESPACES:{message:"Non conforming namespaces.",code:9}};function S$6(e,t){const{message:r,code:n}=Mn[e];return{message:t?`${r} ${t}`:r,code:n}}function U$2(e,t){const{message:r,code:n}=Vn[e];return{message:t?`${r} ${t}`:r,code:n}}function L$4(e,t){return!!Array.isArray(e)}function Z$3(e){return Object.getPrototypeOf(e)===Object.prototype&&Object.keys(e).length}function I$5(e){return typeof e>"u"}function b$4(e,t){return!(!t||!I$5(e))||"string"==typeof e&&!!e.trim().length}function X$2(e,t){return!(!t||!I$5(e))||"number"==typeof e&&!isNaN(e)}function zr$1(e,t){const{requiredNamespaces:r}=t,n=Object.keys(e.namespaces),o=Object.keys(r);let i=!0;return!!$$4(o,n)&&(n.forEach((t=>{const{accounts:n,methods:o,events:s}=e.namespaces[t],a=C$4(n),c=r[t];$$4(W$2(t,c),a)&&$$4(c.methods,o)&&$$4(c.events,s)||(i=!1)})),i)}function F$3(e){return!(!b$4(e,!1)||!e.includes(":"))&&2===e.split(":").length}function Kn(e){if(b$4(e,!1)&&e.includes(":")){const t=e.split(":");if(3===t.length){const e=t[0]+":"+t[1];return!!t[2]&&F$3(e)}}return!1}function Gr$1(e){function t(e){try{return typeof new URL(e)<"u"}catch{return!1}}try{if(b$4(e,!1)){if(t(e))return!0;return t(le(e))}}catch{}return!1}function Yr$1(e){var t;return null==(t=null==e?void 0:e.proposer)?void 0:t.publicKey}function Qr$1(e){return null==e?void 0:e.topic}function Zr$1(e,t){let r=null;return b$4(null==e?void 0:e.publicKey,!1)||(r=S$6("MISSING_OR_INVALID",`${t} controller public key should be a string`)),r}function Se(e){let t=!0;return L$4(e)?e.length&&(t=e.every((e=>b$4(e,!1)))):t=!1,t}function Ln(e,t,r){let n=null;return L$4(t)&&t.length?t.forEach((e=>{n||F$3(e)||(n=U$2("UNSUPPORTED_CHAINS",`${r}, chain ${e} should be a string and conform to "namespace:chainId" format`))})):F$3(e)||(n=U$2("UNSUPPORTED_CHAINS",`${r}, chains must be defined as "namespace:chainId" e.g. "eip155:1": {...} in the namespace key OR as an array of CAIP-2 chainIds e.g. eip155: { chains: ["eip155:1", "eip155:5"] }`)),n}function Fn(e,t,r){let n=null;return Object.entries(e).forEach((([e,o])=>{if(n)return;const i=Ln(e,W$2(e,o),`${t} ${r}`);i&&(n=i)})),n}function qn(e,t){let r=null;return L$4(e)?e.forEach((e=>{r||Kn(e)||(r=U$2("UNSUPPORTED_ACCOUNTS",`${t}, account ${e} should be a string and conform to "namespace:chainId:address" format`))})):r=U$2("UNSUPPORTED_ACCOUNTS",`${t}, accounts should be an array of strings conforming to "namespace:chainId:address" format`),r}function Bn(e,t){let r=null;return Object.values(e).forEach((e=>{if(r)return;const n=qn(null==e?void 0:e.accounts,`${t} namespace`);n&&(r=n)})),r}function Hn(e,t){let r=null;return Se(null==e?void 0:e.methods)?Se(null==e?void 0:e.events)||(r=U$2("UNSUPPORTED_EVENTS",`${t}, events should be an array of strings or empty array for no events`)):r=U$2("UNSUPPORTED_METHODS",`${t}, methods should be an array of strings or empty array for no methods`),r}function $e(e,t){let r=null;return Object.values(e).forEach((e=>{if(r)return;const n=Hn(e,`${t}, namespace`);n&&(r=n)})),r}function Xr$1(e,t,r){let n=null;if(e&&Z$3(e)){const o=$e(e,t);o&&(n=o);const i=Fn(e,t,r);i&&(n=i)}else n=S$6("MISSING_OR_INVALID",`${t}, ${r} should be an object with data`);return n}function Wn(e,t){let r=null;if(e&&Z$3(e)){const n=$e(e,t);n&&(r=n);const o=Bn(e,t);o&&(r=o)}else r=S$6("MISSING_OR_INVALID",`${t}, namespaces should be an object with data`);return r}function Jn(e){return b$4(e.protocol,!0)}function eo(e,t){let r=!1;return e?e&&L$4(e)&&e.length&&e.forEach((e=>{r=Jn(e)})):r=!0,r}function no(e){return"number"==typeof e}function to(e){return typeof e<"u"&&null!==typeof e}function ro(e){return!!(e&&"object"==typeof e&&e.code&&X$2(e.code,!1)&&e.message&&b$4(e.message,!1))}function oo(e){return!(I$5(e)||!b$4(e.method,!1))}function so(e){return!(I$5(e)||I$5(e.result)&&I$5(e.error)||!X$2(e.id,!1)||!b$4(e.jsonrpc,!1))}function io(e){return!(I$5(e)||!b$4(e.name,!1))}function co(e,t){return!(!F$3(t)||!Un(e).includes(t))}function ao(e,t,r){return!!b$4(r,!1)&&_n(e,t).includes(r)}function uo(e,t,r){return!!b$4(r,!1)&&kn(e,t).includes(r)}function zn(e,t,r){let n=null;const o=lo(e),i=fo(t),s=Object.keys(o),a=Object.keys(i),c=Gn(Object.keys(e)),u=Gn(Object.keys(t)),l=c.filter((e=>!u.includes(e)));return l.length&&(n=S$6("NON_CONFORMING_NAMESPACES",`${r} namespaces keys don't satisfy requiredNamespaces.\n Required: ${l.toString()}\n Received: ${Object.keys(t).toString()}`)),$$4(s,a)||(n=S$6("NON_CONFORMING_NAMESPACES",`${r} namespaces chains don't satisfy required namespaces.\n Required: ${s.toString()}\n Approved: ${a.toString()}`)),Object.keys(t).forEach((e=>{if(!e.includes(":")||n)return;const o=C$4(t[e].accounts);o.includes(e)||(n=S$6("NON_CONFORMING_NAMESPACES",`${r} namespaces accounts don't satisfy namespace accounts for ${e}\n Required: ${e}\n Approved: ${o.toString()}`))})),s.forEach((e=>{n||($$4(o[e].methods,i[e].methods)?$$4(o[e].events,i[e].events)||(n=S$6("NON_CONFORMING_NAMESPACES",`${r} namespaces events don't satisfy namespace events for ${e}`)):n=S$6("NON_CONFORMING_NAMESPACES",`${r} namespaces methods don't satisfy namespace methods for ${e}`))})),n}function lo(e){const t={};return Object.keys(e).forEach((r=>{var n;r.includes(":")?t[r]=e[r]:null==(n=e[r].chains)||n.forEach((n=>{t[n]={methods:e[r].methods,events:e[r].events}}))})),t}function Gn(e){return[...new Set(e.map((e=>e.includes(":")?e.split(":")[0]:e)))]}function fo(e){const t={};return Object.keys(e).forEach((r=>{if(r.includes(":"))t[r]=e[r];else{const n=C$4(e[r].accounts);null==n||n.forEach((n=>{t[n]={accounts:e[r].accounts.filter((e=>e.includes(`${n}:`))),methods:e[r].methods,events:e[r].events}}))}})),t}function po(e,t){return X$2(e,!1)&&e<=t.max&&e>=t.min}function mo(){const e=P$4();return new Promise((t=>{switch(e){case y$5.browser:t(Yn());break;case y$5.reactNative:t(Qn());break;case y$5.node:t(Zn());break;default:t(!0)}}))}function Yn(){return V$3()&&(null==navigator?void 0:navigator.onLine)}async function Qn(){if(_$5()&&typeof global$1<"u"&&null!=global$1&&global$1.NetInfo){const e=await(null==global$1?void 0:global$1.NetInfo.fetch());return null==e?void 0:e.isConnected}return!0}function Zn(){return!0}function ho(e){switch(P$4()){case y$5.browser:Xn(e);break;case y$5.reactNative:et$1(e)}}function Xn(e){!_$5()&&V$3()&&(window.addEventListener("online",(()=>e(!0))),window.addEventListener("offline",(()=>e(!1))))}function et$1(e){_$5()&&typeof global$1<"u"&&null!=global$1&&global$1.NetInfo&&(null==global$1||global$1.NetInfo.addEventListener((t=>e(null==t?void 0:t.isConnected))))}const Re={};class yo{static get(e){return Re[e]}static set(e,t){Re[e]=t}static delete(e){delete Re[e]}}const w$5=()=>typeof WebSocket<"u"?WebSocket:typeof global$1<"u"&&typeof global$1.WebSocket<"u"?global$1.WebSocket:typeof window<"u"&&typeof window.WebSocket<"u"?window.WebSocket:typeof self<"u"&&typeof self.WebSocket<"u"?self.WebSocket:require("ws"),b$3=()=>typeof WebSocket<"u"||typeof global$1<"u"&&typeof global$1.WebSocket<"u"||typeof window<"u"&&typeof window.WebSocket<"u"||typeof self<"u"&&typeof self.WebSocket<"u",a$4=e=>e.split("?")[0],h$5=10,S$5=w$5();let f$5=class{constructor(e){if(this.url=e,this.events=new eventsExports.EventEmitter,this.registering=!1,!isWsUrl(e))throw new Error(`Provided URL is not compatible with WebSocket connection: ${e}`);this.url=e}get connected(){return typeof this.socket<"u"}get connecting(){return this.registering}on(e,t){this.events.on(e,t)}once(e,t){this.events.once(e,t)}off(e,t){this.events.off(e,t)}removeListener(e,t){this.events.removeListener(e,t)}async open(e=this.url){await this.register(e)}async close(){return new Promise(((e,t)=>{typeof this.socket>"u"?t(new Error("Connection already closed")):(this.socket.onclose=t=>{this.onClose(t),e()},this.socket.close())}))}async send(e){typeof this.socket>"u"&&(this.socket=await this.register());try{this.socket.send(safeJsonStringify$2(e))}catch(t){this.onError(e.id,t)}}register(e=this.url){if(!isWsUrl(e))throw new Error(`Provided URL is not compatible with WebSocket connection: ${e}`);if(this.registering){const e=this.events.getMaxListeners();return(this.events.listenerCount("register_error")>=e||this.events.listenerCount("open")>=e)&&this.events.setMaxListeners(e+1),new Promise(((e,t)=>{this.events.once("register_error",(e=>{this.resetMaxListeners(),t(e)})),this.events.once("open",(()=>{if(this.resetMaxListeners(),typeof this.socket>"u")return t(new Error("WebSocket connection is missing or invalid"));e(this.socket)}))}))}return this.url=e,this.registering=!0,new Promise(((t,r)=>{const n=new URLSearchParams(e).get("origin"),o=cjs$4.isReactNative()?{headers:{origin:n}}:{rejectUnauthorized:!isLocalhostUrl(e)},i=new S$5(e,[],o);b$3()?i.onerror=e=>{const t=e;r(this.emitError(t.error))}:i.on("error",(e=>{r(this.emitError(e))})),i.onopen=()=>{this.onOpen(i),t(i)}}))}onOpen(e){e.onmessage=e=>this.onPayload(e),e.onclose=e=>this.onClose(e),this.socket=e,this.registering=!1,this.events.emit("open")}onClose(e){this.socket=void 0,this.registering=!1,this.events.emit("close",e)}onPayload(e){if(typeof e.data>"u")return;const t="string"==typeof e.data?safeJsonParse$2(e.data):e.data;this.events.emit("payload",t)}onError(e,t){const r=this.parseError(t),n=formatJsonRpcError(e,r.message||r.toString());this.events.emit("payload",n)}parseError(e,t=this.url){return parseConnectionError(e,a$4(t),"WS")}resetMaxListeners(){this.events.getMaxListeners()>h$5&&this.events.setMaxListeners(h$5)}emitError(e){const t=this.parseError(new Error((null==e?void 0:e.message)||`WebSocket connection failed for host: ${a$4(this.url)}`));return this.events.emit("register_error",t),t}};const ye$1="wc",De=2,ie="core",x$4=`${ye$1}@2:${ie}:`,Ye={name:ie,logger:"error"},Je={database:":memory:"},Xe="crypto",me$1="client_ed25519_seed",We=cjs$7.ONE_DAY,Ze="keychain",Qe="0.3",et="messages",tt="0.3",it$1=cjs$7.SIX_HOURS,st$1="publisher",rt$1="irn",nt$1="error",be$1="wss://relay.walletconnect.org",ot$1="relayer",v$4={message:"relayer_message",message_ack:"relayer_message_ack",connect:"relayer_connect",disconnect:"relayer_disconnect",error:"relayer_error",connection_stalled:"relayer_connection_stalled",transport_closed:"relayer_transport_closed",publish:"relayer_publish"},at$1="_subscription",I$4={payload:"payload",connect:"connect",disconnect:"disconnect",error:"error"},ht$1=.1,se="2.17.1",M$3={link_mode:"link_mode",relay:"relay"},ct$1="0.3",lt$1="WALLETCONNECT_CLIENT_ID",fe="WALLETCONNECT_LINK_MODE_APPS",O$2={created:"subscription_created",deleted:"subscription_deleted",expired:"subscription_expired",disabled:"subscription_disabled",sync:"subscription_sync",resubscribed:"subscription_resubscribed"},ut$1="subscription",dt$1="0.3",pt$2=1e3*cjs$7.FIVE_SECONDS,gt$1="pairing",yt$1="0.3",B$2={wc_pairingDelete:{req:{ttl:cjs$7.ONE_DAY,prompt:!1,tag:1e3},res:{ttl:cjs$7.ONE_DAY,prompt:!1,tag:1001}},wc_pairingPing:{req:{ttl:cjs$7.THIRTY_SECONDS,prompt:!1,tag:1002},res:{ttl:cjs$7.THIRTY_SECONDS,prompt:!1,tag:1003}},unregistered_method:{req:{ttl:cjs$7.ONE_DAY,prompt:!1,tag:0},res:{ttl:cjs$7.ONE_DAY,prompt:!1,tag:0}}},V$2={create:"pairing_create",expire:"pairing_expire",delete:"pairing_delete",ping:"pairing_ping"},P$3={created:"history_created",updated:"history_updated",deleted:"history_deleted",sync:"history_sync"},Dt="history",mt="0.3",bt="expirer",S$4={created:"expirer_created",deleted:"expirer_deleted",expired:"expirer_expired",sync:"expirer_sync"},ft="0.3",_t="verify-api",vs$1="https://verify.walletconnect.com",Et="https://verify.walletconnect.org",J$1=Et,vt=`${J$1}/v3`,wt=[vs$1,Et],It="echo",Tt="https://echo.walletconnect.com",z$5={pairing_started:"pairing_started",pairing_uri_validation_success:"pairing_uri_validation_success",pairing_uri_not_expired:"pairing_uri_not_expired",store_new_pairing:"store_new_pairing",subscribing_pairing_topic:"subscribing_pairing_topic",subscribe_pairing_topic_success:"subscribe_pairing_topic_success",existing_pairing:"existing_pairing",pairing_not_expired:"pairing_not_expired",emit_inactive_pairing:"emit_inactive_pairing",emit_session_proposal:"emit_session_proposal",subscribing_to_pairing_topic:"subscribing_to_pairing_topic"},$$3={no_wss_connection:"no_wss_connection",no_internet_connection:"no_internet_connection",malformed_pairing_uri:"malformed_pairing_uri",active_pairing_already_exists:"active_pairing_already_exists",subscribe_pairing_topic_failure:"subscribe_pairing_topic_failure",pairing_expired:"pairing_expired",proposal_expired:"proposal_expired",proposal_listener_not_found:"proposal_listener_not_found"},Is$1={session_approve_started:"session_approve_started",proposal_not_expired:"proposal_not_expired",session_namespaces_validation_success:"session_namespaces_validation_success",create_session_topic:"create_session_topic",subscribing_session_topic:"subscribing_session_topic",subscribe_session_topic_success:"subscribe_session_topic_success",publishing_session_approve:"publishing_session_approve",session_approve_publish_success:"session_approve_publish_success",store_session:"store_session",publishing_session_settle:"publishing_session_settle",session_settle_publish_success:"session_settle_publish_success"},Ts$1={no_internet_connection:"no_internet_connection",no_wss_connection:"no_wss_connection",proposal_expired:"proposal_expired",subscribe_session_topic_failure:"subscribe_session_topic_failure",session_approve_publish_failure:"session_approve_publish_failure",session_settle_publish_failure:"session_settle_publish_failure",session_approve_namespace_validation_failure:"session_approve_namespace_validation_failure",proposal_not_found:"proposal_not_found"},Cs={authenticated_session_approve_started:"authenticated_session_approve_started",authenticated_session_not_expired:"authenticated_session_not_expired",chains_caip2_compliant:"chains_caip2_compliant",chains_evm_compliant:"chains_evm_compliant",create_authenticated_session_topic:"create_authenticated_session_topic",cacaos_verified:"cacaos_verified",store_authenticated_session:"store_authenticated_session",subscribing_authenticated_session_topic:"subscribing_authenticated_session_topic",subscribe_authenticated_session_topic_success:"subscribe_authenticated_session_topic_success",publishing_authenticated_session_approve:"publishing_authenticated_session_approve",authenticated_session_approve_publish_success:"authenticated_session_approve_publish_success"},Ps={no_internet_connection:"no_internet_connection",no_wss_connection:"no_wss_connection",missing_session_authenticate_request:"missing_session_authenticate_request",session_authenticate_request_expired:"session_authenticate_request_expired",chains_caip2_compliant_failure:"chains_caip2_compliant_failure",chains_evm_compliant_failure:"chains_evm_compliant_failure",invalid_cacao:"invalid_cacao",subscribe_authenticated_session_topic_failure:"subscribe_authenticated_session_topic_failure",authenticated_session_approve_publish_failure:"authenticated_session_approve_publish_failure",authenticated_session_pending_request_not_found:"authenticated_session_pending_request_not_found"},Ct=.1,Pt="event-client",St=86400,Rt="https://pulse.walletconnect.org/batch";function Ss$1(e,t){if(e.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n>>0,s=new Uint8Array(i);e[t];){var l=r[e.charCodeAt(t)];if(255===l)return;for(var d=0,h=i-1;(0!==l||d>>0,s[h]=l%256>>>0,l=l/256>>>0;if(0!==l)throw new Error("Non-zero carry");o=d,t++}if(" "!==e[t]){for(var f=i-o;f!==i&&0===s[f];)f++;for(var p=new Uint8Array(n+(i-f)),m=n;f!==i;)p[m++]=s[f++];return p}}}return{encode:function(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(0===t.length)return"";for(var r=0,n=0,o=0,i=t.length;o!==i&&0===t[o];)o++,r++;for(var s=(i-o)*l+1>>>0,u=new Uint8Array(s);o!==i;){for(var d=t[o],h=0,f=s-1;(0!==d||h>>0,u[f]=d%a>>>0,d=d/a>>>0;if(0!==d)throw new Error("Non-zero carry");n=h,o++}for(var p=s-n;p!==s&&0===u[p];)p++;for(var m=c.repeat(r);p{if(e instanceof Uint8Array&&"Uint8Array"===e.constructor.name)return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw new Error("Unknown type, must be binary type")},Os=e=>(new TextEncoder).encode(e),As=e=>(new TextDecoder).decode(e);class Ns{constructor(e,t,r){this.name=e,this.prefix=t,this.baseEncode=r}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}}class zs{constructor(e,t,r){if(this.name=e,this.prefix=t,void 0===t.codePointAt(0))throw new Error("Invalid prefix character");this.prefixCodePoint=t.codePointAt(0),this.baseDecode=r}decode(e){if("string"==typeof e){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}throw Error("Can only multibase decode strings")}or(e){return Ot(this,e)}}class Ls{constructor(e){this.decoders=e}or(e){return Ot(this,e)}decode(e){const t=e[0],r=this.decoders[t];if(r)return r.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}}const Ot=(e,t)=>new Ls({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}});class $s{constructor(e,t,r,n){this.name=e,this.prefix=t,this.baseEncode=r,this.baseDecode=n,this.encoder=new Ns(e,t,r),this.decoder=new zs(e,t,n)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}}const re=({name:e,prefix:t,encode:r,decode:n})=>new $s(e,t,r,n),X$1=({prefix:e,name:t,alphabet:r})=>{const{encode:n,decode:o}=xs(r,t);return re({prefix:e,name:t,encode:n,decode:e=>xt(o(e))})},ks=(e,t,r,n)=>{const o={};for(let l=0;l=8&&(a-=8,s[u++]=255&c>>a)}if(a>=r||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return s},Ms=(e,t,r)=>{const n="="===t[t.length-1],o=(1<r;)s-=r,i+=t[o&a>>s];if(s&&(i+=t[o&a<re({prefix:t,name:e,encode:e=>Ms(e,n,r),decode:t=>ks(t,n,r,e)}),Us=re({prefix:"\0",name:"identity",encode:e=>As(e),decode:e=>Os(e)});var Fs=Object.freeze({__proto__:null,identity:Us});const Ks=f$4({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Bs=Object.freeze({__proto__:null,base2:Ks});const Vs=f$4({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var js=Object.freeze({__proto__:null,base8:Vs});const qs$1=X$1({prefix:"9",name:"base10",alphabet:"0123456789"});var Gs=Object.freeze({__proto__:null,base10:qs$1});const Hs=f$4({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),Ys=f$4({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Js=Object.freeze({__proto__:null,base16:Hs,base16upper:Ys});const Xs=f$4({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Ws=f$4({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Zs=f$4({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Qs=f$4({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),er=f$4({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),tr=f$4({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),ir=f$4({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),sr=f$4({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),rr=f$4({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var nr=Object.freeze({__proto__:null,base32:Xs,base32upper:Ws,base32pad:Zs,base32padupper:Qs,base32hex:er,base32hexupper:tr,base32hexpad:ir,base32hexpadupper:sr,base32z:rr});const or=X$1({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),ar=X$1({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var hr=Object.freeze({__proto__:null,base36:or,base36upper:ar});const cr=X$1({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),lr=X$1({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var ur=Object.freeze({__proto__:null,base58btc:cr,base58flickr:lr});const dr=f$4({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),pr=f$4({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),gr=f$4({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),yr=f$4({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var Dr=Object.freeze({__proto__:null,base64:dr,base64pad:pr,base64url:gr,base64urlpad:yr});const At=Array.from("🚀🪐☄🛰🌌🌑🌒🌓🌔🌕🌖🌗🌘🌍🌏🌎🐉☀💻🖥💾💿😂❤😍🤣😊🙏💕😭😘👍😅👏😁🔥🥰💔💖💙😢🤔😆🙄💪😉☺👌🤗💜😔😎😇🌹🤦🎉💞✌✨🤷😱😌🌸🙌😋💗💚😏💛🙂💓🤩😄😀🖤😃💯🙈👇🎶😒🤭❣😜💋👀😪😑💥🙋😞😩😡🤪👊🥳😥🤤👉💃😳✋😚😝😴🌟😬🙃🍀🌷😻😓⭐✅🥺🌈😈🤘💦✔😣🏃💐☹🎊💘😠☝😕🌺🎂🌻😐🖕💝🙊😹🗣💫💀👑🎵🤞😛🔴😤🌼😫⚽🤙☕🏆🤫👈😮🙆🍻🍃🐶💁😲🌿🧡🎁⚡🌞🎈❌✊👋😰🤨😶🤝🚶💰🍓💢🤟🙁🚨💨🤬✈🎀🍺🤓😙💟🌱😖👶🥴▶➡❓💎💸⬇😨🌚🦋😷🕺⚠🙅😟😵👎🤲🤠🤧📌🔵💅🧐🐾🍒😗🤑🌊🤯🐷☎💧😯💆👆🎤🙇🍑❄🌴💣🐸💌📍🥀🤢👅💡💩👐📸👻🤐🤮🎼🥵🚩🍎🍊👼💍📣🥂"),mr=At.reduce(((e,t,r)=>(e[r]=t,e)),[]),br=At.reduce(((e,t,r)=>(e[t.codePointAt(0)]=r,e)),[]);function fr$1(e){return e.reduce(((e,t)=>e+=mr[t]),"")}function _r(e){const t=[];for(const r of e){const e=br[r.codePointAt(0)];if(void 0===e)throw new Error(`Non-base256emoji character: ${r}`);t.push(e)}return new Uint8Array(t)}const Er=re({prefix:"🚀",name:"base256emoji",encode:fr$1,decode:_r});var vr=Object.freeze({__proto__:null,base256emoji:Er}),wr=zt,Nt=128,Ir=127,Tr=~Ir,Cr=Math.pow(2,31);function zt(e,t,r){t=t||[];for(var n=r=r||0;e>=Cr;)t[r++]=255&e|Nt,e/=128;for(;e&Tr;)t[r++]=255&e|Nt,e>>>=7;return t[r]=0|e,zt.bytes=r-n+1,t}var Pr=_e$1,Sr=128,Lt=127;function _e$1(e,t){var r,n=0,o=0,i=t=t||0,s=e.length;do{if(i>=s)throw _e$1.bytes=0,new RangeError("Could not decode varint");r=e[i++],n+=o<28?(r&Lt)<=Sr);return _e$1.bytes=i-t,n}var Rr=Math.pow(2,7),xr=Math.pow(2,14),Or=Math.pow(2,21),Ar=Math.pow(2,28),Nr=Math.pow(2,35),zr=Math.pow(2,42),Lr=Math.pow(2,49),$r=Math.pow(2,56),kr=Math.pow(2,63),Mr=function(e){return e($t.encode(e,t,r),t),Mt=e=>$t.encodingLength(e),Ee=(e,t)=>{const r=t.byteLength,n=Mt(e),o=n+Mt(r),i=new Uint8Array(o+r);return kt(e,i,0),kt(r,i,n),i.set(t,o),new Fr(e,r,t,i)};class Fr{constructor(e,t,r,n){this.code=e,this.size=t,this.digest=r,this.bytes=n}}const Ut=({name:e,code:t,encode:r})=>new Kr(e,t,r);class Kr{constructor(e,t,r){this.name=e,this.code=t,this.encode=r}digest(e){if(e instanceof Uint8Array){const t=this.encode(e);return t instanceof Uint8Array?Ee(this.code,t):t.then((e=>Ee(this.code,e)))}throw Error("Unknown type, must be binary type")}}const Ft=e=>async t=>new Uint8Array(await crypto.subtle.digest(e,t)),Br=Ut({name:"sha2-256",code:18,encode:Ft("SHA-256")}),Vr=Ut({name:"sha2-512",code:19,encode:Ft("SHA-512")});var jr=Object.freeze({__proto__:null,sha256:Br,sha512:Vr});const Kt=0,qr="identity",Bt=xt,Gr=e=>Ee(Kt,Bt(e)),Hr={code:Kt,name:qr,encode:Bt,digest:Gr};var Yr=Object.freeze({__proto__:null,identity:Hr});new TextEncoder,new TextDecoder;const Vt={...Fs,...Bs,...js,...Gs,...Js,...nr,...hr,...ur,...Dr,...vr};function Jr(e=0){return null!=globalThis.Buffer&&null!=globalThis.Buffer.allocUnsafe?globalThis.Buffer.allocUnsafe(e):new Uint8Array(e)}function jt(e,t,r,n){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:r},decoder:{decode:n}}}const qt=jt("utf8","u",(e=>"u"+new TextDecoder("utf8").decode(e)),(e=>(new TextEncoder).encode(e.substring(1)))),ve=jt("ascii","a",(e=>{let t="a";for(let r=0;r{const t=Jr((e=e.substring(1)).length);for(let r=0;r{if(!this.initialized){const e=await this.getKeyChain();typeof e<"u"&&(this.keychain=e),this.initialized=!0}},this.has=e=>(this.isInitialized(),this.keychain.has(e)),this.set=async(e,t)=>{this.isInitialized(),this.keychain.set(e,t),await this.persist()},this.get=e=>{this.isInitialized();const t=this.keychain.get(e);if(typeof t>"u"){const{message:t}=S$6("NO_MATCHING_KEY",`${this.name}: ${e}`);throw new Error(t)}return t},this.del=async e=>{this.isInitialized(),this.keychain.delete(e),await this.persist()},this.core=e,this.logger=E$5(t,this.name)}get context(){return y$7(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//"+this.name}async setKeyChain(e){await this.core.storage.setItem(this.storageKey,Tt$1(e))}async getKeyChain(){const e=await this.core.storage.getItem(this.storageKey);return typeof e<"u"?Pt$1(e):void 0}async persist(){await this.setKeyChain(this.keychain)}isInitialized(){if(!this.initialized){const{message:e}=S$6("NOT_INITIALIZED",this.name);throw new Error(e)}}}class Ht{constructor(e,t,r){this.core=e,this.logger=t,this.name=Xe,this.randomSessionIdentifier=pr$1(),this.initialized=!1,this.init=async()=>{this.initialized||(await this.keychain.init(),this.initialized=!0)},this.hasKeys=e=>(this.isInitialized(),this.keychain.has(e)),this.getClientId=async()=>{this.isInitialized();return encodeIss(generateKeyPair(await this.getClientSeed()).publicKey)},this.generateKeyPair=()=>{this.isInitialized();const e=fr$2();return this.setPrivateKey(e.publicKey,e.privateKey)},this.signJWT=async e=>{this.isInitialized();const t=generateKeyPair(await this.getClientSeed()),r=this.randomSessionIdentifier,n=We;return await signJWT(r,e,n,t)},this.generateSharedKey=(e,t,r)=>{this.isInitialized();const n=mr$1(this.getPrivateKey(e),t);return this.setSymKey(n,r)},this.setSymKey=async(e,t)=>{this.isInitialized();const r=t||hr$1(e);return await this.keychain.set(r,e),r},this.deleteKeyPair=async e=>{this.isInitialized(),await this.keychain.del(e)},this.deleteSymKey=async e=>{this.isInitialized(),await this.keychain.del(e)},this.encode=async(e,t,r)=>{this.isInitialized();const n=On(r),o=safeJsonStringify$2(t);if(Nr$1(n))return vr$1(o,null==r?void 0:r.encoding);if(Or$1(n)){const t=n.senderPublicKey,r=n.receiverPublicKey;e=await this.generateSharedKey(t,r)}const i=this.getSymKey(e),{type:s,senderPublicKey:a}=n;return gr$1({type:s,symKey:i,message:o,senderPublicKey:a,encoding:null==r?void 0:r.encoding})},this.decode=async(e,t,r)=>{this.isInitialized();const n=wr$1(t,r);if(Nr$1(n)){return safeJsonParse$2(Er$1(t,null==r?void 0:r.encoding))}if(Or$1(n)){const t=n.receiverPublicKey,r=n.senderPublicKey;e=await this.generateSharedKey(t,r)}try{const n=this.getSymKey(e);return safeJsonParse$2(br$1({symKey:n,encoded:t,encoding:null==r?void 0:r.encoding}))}catch(o){this.logger.error(`Failed to decode message from topic: '${e}', clientId: '${await this.getClientId()}'`),this.logger.error(o)}},this.getPayloadType=(e,t=ge)=>A$4(Q$1({encoded:e,encoding:t}).type),this.getPayloadSenderPublicKey=(e,t=ge)=>{const r=Q$1({encoded:e,encoding:t});return r.senderPublicKey?toString$1(r.senderPublicKey,g$4):void 0},this.core=e,this.logger=E$5(t,this.name),this.keychain=r||new Gt(this.core,this.logger)}get context(){return y$7(this.logger)}async setPrivateKey(e,t){return await this.keychain.set(e,t),e}getPrivateKey(e){return this.keychain.get(e)}async getClientSeed(){let e="";try{e=this.keychain.get(me$1)}catch{e=pr$1(),await this.keychain.set(me$1,e)}return Wr(e,"base16")}getSymKey(e){return this.keychain.get(e)}isInitialized(){if(!this.initialized){const{message:e}=S$6("NOT_INITIALIZED",this.name);throw new Error(e)}}}class Yt extends a$5{constructor(e,t){super(e,t),this.logger=e,this.core=t,this.messages=new Map,this.name=et,this.version=tt,this.initialized=!1,this.storagePrefix=x$4,this.init=async()=>{if(!this.initialized){this.logger.trace("Initialized");try{const e=await this.getRelayerMessages();typeof e<"u"&&(this.messages=e),this.logger.debug(`Successfully Restored records for ${this.name}`),this.logger.trace({type:"method",method:"restore",size:this.messages.size})}catch(e){this.logger.debug(`Failed to Restore records for ${this.name}`),this.logger.error(e)}finally{this.initialized=!0}}},this.set=async(e,t)=>{this.isInitialized();const r=yr$1(t);let n=this.messages.get(e);return typeof n>"u"&&(n={}),typeof n[r]<"u"||(n[r]=t,this.messages.set(e,n),await this.persist()),r},this.get=e=>{this.isInitialized();let t=this.messages.get(e);return typeof t>"u"&&(t={}),t},this.has=(e,t)=>{this.isInitialized();return typeof this.get(e)[yr$1(t)]<"u"},this.del=async e=>{this.isInitialized(),this.messages.delete(e),await this.persist()},this.logger=E$5(e,this.name),this.core=t}get context(){return y$7(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//"+this.name}async setRelayerMessages(e){await this.core.storage.setItem(this.storageKey,Tt$1(e))}async getRelayerMessages(){const e=await this.core.storage.getItem(this.storageKey);return typeof e<"u"?Pt$1(e):void 0}async persist(){await this.setRelayerMessages(this.messages)}isInitialized(){if(!this.initialized){const{message:e}=S$6("NOT_INITIALIZED",this.name);throw new Error(e)}}}class Zr extends g$5{constructor(e,t){super(e,t),this.relayer=e,this.logger=t,this.events=new eventsExports.EventEmitter,this.name=st$1,this.queue=new Map,this.publishTimeout=cjs$7.toMiliseconds(cjs$7.ONE_MINUTE),this.failedPublishTimeout=cjs$7.toMiliseconds(cjs$7.ONE_SECOND),this.needsTransportRestart=!1,this.publish=async(e,t,r)=>{var n;this.logger.debug("Publishing Payload"),this.logger.trace({type:"method",method:"publish",params:{topic:e,message:t,opts:r}});const o=(null==r?void 0:r.ttl)||it$1,i=Ir$1(r),s=(null==r?void 0:r.prompt)||!1,a=(null==r?void 0:r.tag)||0,c=(null==r?void 0:r.id)||getBigIntRpcId().toString(),u={topic:e,message:t,opts:{ttl:o,relay:i,prompt:s,tag:a,id:c,attestation:null==r?void 0:r.attestation}},l=`Failed to publish payload, please try again. id:${c} tag:${a}`,d=Date.now();let h,f=1;try{for(;void 0===h;){if(Date.now()-d>this.publishTimeout)throw new Error(l);this.logger.trace({id:c,attempts:f},`publisher.publish - attempt ${f}`),h=await await kt$1(this.rpcPublish(e,t,o,i,s,a,c,null==r?void 0:r.attestation).catch((e=>this.logger.warn(e))),this.publishTimeout,l),f++,h||await new Promise((e=>setTimeout(e,this.failedPublishTimeout)))}this.relayer.events.emit(v$4.publish,u),this.logger.debug("Successfully Published Payload"),this.logger.trace({type:"method",method:"publish",params:{id:c,topic:e,message:t,opts:r}})}catch(p){if(this.logger.debug("Failed to Publish Payload"),this.logger.error(p),null!=(n=null==r?void 0:r.internal)&&n.throwOnFailedPublish)throw p;this.queue.set(c,u)}},this.on=(e,t)=>{this.events.on(e,t)},this.once=(e,t)=>{this.events.once(e,t)},this.off=(e,t)=>{this.events.off(e,t)},this.removeListener=(e,t)=>{this.events.removeListener(e,t)},this.relayer=e,this.logger=E$5(t,this.name),this.registerEventListeners()}get context(){return y$7(this.logger)}rpcPublish(e,t,r,n,o,i,s,a){var c,u,l,d;const h={method:jr$1(n.protocol).publish,params:{topic:e,message:t,ttl:r,prompt:o,tag:i,attestation:a},id:s};return I$5(null==(c=h.params)?void 0:c.prompt)&&(null==(u=h.params)||delete u.prompt),I$5(null==(l=h.params)?void 0:l.tag)&&(null==(d=h.params)||delete d.tag),this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"message",direction:"outgoing",request:h}),this.relayer.request(h)}removeRequestFromQueue(e){this.queue.delete(e)}checkQueue(){this.queue.forEach((async e=>{const{topic:t,message:r,opts:n}=e;await this.publish(t,r,n)}))}registerEventListeners(){this.relayer.core.heartbeat.on(r$6.pulse,(()=>{if(this.needsTransportRestart)return this.needsTransportRestart=!1,void this.relayer.events.emit(v$4.connection_stalled);this.checkQueue()})),this.relayer.on(v$4.message_ack,(e=>{this.removeRequestFromQueue(e.id.toString())}))}}class Qr{constructor(){this.map=new Map,this.set=(e,t)=>{const r=this.get(e);this.exists(e,t)||this.map.set(e,[...r,t])},this.get=e=>this.map.get(e)||[],this.exists=(e,t)=>this.get(e).includes(t),this.delete=(e,t)=>{if(typeof t>"u")return void this.map.delete(e);if(!this.map.has(e))return;const r=this.get(e);if(!this.exists(e,t))return;const n=r.filter((e=>e!==t));n.length?this.map.set(e,n):this.map.delete(e)},this.clear=()=>{this.map.clear()}}get topics(){return Array.from(this.map.keys())}}var en$1=Object.defineProperty,tn=Object.defineProperties,sn=Object.getOwnPropertyDescriptors,Jt=Object.getOwnPropertySymbols,rn=Object.prototype.hasOwnProperty,nn=Object.prototype.propertyIsEnumerable,Xt=(e,t,r)=>t in e?en$1(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,W$1=(e,t)=>{for(var r in t||(t={}))rn.call(t,r)&&Xt(e,r,t[r]);if(Jt)for(var r of Jt(t))nn.call(t,r)&&Xt(e,r,t[r]);return e},we$1=(e,t)=>tn(e,sn(t));class Wt extends d$4{constructor(e,t){super(e,t),this.relayer=e,this.logger=t,this.subscriptions=new Map,this.topicMap=new Qr,this.events=new eventsExports.EventEmitter,this.name=ut$1,this.version=dt$1,this.pending=new Map,this.cached=[],this.initialized=!1,this.pendingSubscriptionWatchLabel="pending_sub_watch_label",this.pollingInterval=20,this.storagePrefix=x$4,this.subscribeTimeout=cjs$7.toMiliseconds(cjs$7.ONE_MINUTE),this.restartInProgress=!1,this.batchSubscribeTopicsLimit=500,this.pendingBatchMessages=[],this.init=async()=>{this.initialized||(this.logger.trace("Initialized"),this.registerEventListeners(),this.clientId=await this.relayer.core.crypto.getClientId(),await this.restore()),this.initialized=!0},this.subscribe=async(e,t)=>{this.isInitialized(),this.logger.debug("Subscribing Topic"),this.logger.trace({type:"method",method:"subscribe",params:{topic:e,opts:t}});try{const r=Ir$1(t),n={topic:e,relay:r,transportType:null==t?void 0:t.transportType};this.pending.set(e,n);const o=await this.rpcSubscribe(e,r,t);return"string"==typeof o&&(this.onSubscribe(o,n),this.logger.debug("Successfully Subscribed Topic"),this.logger.trace({type:"method",method:"subscribe",params:{topic:e,opts:t}})),o}catch(r){throw this.logger.debug("Failed to Subscribe Topic"),this.logger.error(r),r}},this.unsubscribe=async(e,t)=>{await this.restartToComplete(),this.isInitialized(),typeof(null==t?void 0:t.id)<"u"?await this.unsubscribeById(e,t.id,t):await this.unsubscribeByTopic(e,t)},this.isSubscribed=async e=>{if(this.topics.includes(e))return!0;const t=`${this.pendingSubscriptionWatchLabel}_${e}`;return await new Promise(((r,n)=>{const o=new cjs$7.Watch;o.start(t);const i=setInterval((()=>{!this.pending.has(e)&&this.topics.includes(e)&&(clearInterval(i),o.stop(t),r(!0)),o.elapsed(t)>=pt$2&&(clearInterval(i),o.stop(t),n(new Error("Subscription resolution timeout")))}),this.pollingInterval)})).catch((()=>!1))},this.on=(e,t)=>{this.events.on(e,t)},this.once=(e,t)=>{this.events.once(e,t)},this.off=(e,t)=>{this.events.off(e,t)},this.removeListener=(e,t)=>{this.events.removeListener(e,t)},this.start=async()=>{await this.onConnect()},this.stop=async()=>{await this.onDisconnect()},this.restart=async()=>{this.restartInProgress=!0,await this.restore(),await this.reset(),this.restartInProgress=!1},this.relayer=e,this.logger=E$5(t,this.name),this.clientId=""}get context(){return y$7(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.relayer.core.customStoragePrefix+"//"+this.name}get length(){return this.subscriptions.size}get ids(){return Array.from(this.subscriptions.keys())}get values(){return Array.from(this.subscriptions.values())}get topics(){return this.topicMap.topics}hasSubscription(e,t){let r=!1;try{r=this.getSubscription(e).topic===t}catch{}return r}onEnable(){this.cached=[],this.initialized=!0}onDisable(){this.cached=this.values,this.subscriptions.clear(),this.topicMap.clear()}async unsubscribeByTopic(e,t){const r=this.topicMap.get(e);await Promise.all(r.map((async r=>await this.unsubscribeById(e,r,t))))}async unsubscribeById(e,t,r){this.logger.debug("Unsubscribing Topic"),this.logger.trace({type:"method",method:"unsubscribe",params:{topic:e,id:t,opts:r}});try{const n=Ir$1(r);await this.rpcUnsubscribe(e,t,n);const o=U$2("USER_DISCONNECTED",`${this.name}, ${e}`);await this.onUnsubscribe(e,t,o),this.logger.debug("Successfully Unsubscribed Topic"),this.logger.trace({type:"method",method:"unsubscribe",params:{topic:e,id:t,opts:r}})}catch(n){throw this.logger.debug("Failed to Unsubscribe Topic"),this.logger.error(n),n}}async rpcSubscribe(e,t,r){var n;(null==r?void 0:r.transportType)===M$3.relay&&await this.restartToComplete();const o={method:jr$1(t.protocol).subscribe,params:{topic:e}};this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"payload",direction:"outgoing",request:o});const i=null==(n=null==r?void 0:r.internal)?void 0:n.throwOnFailedPublish;try{const t=yr$1(e+this.clientId);if((null==r?void 0:r.transportType)===M$3.link_mode)return setTimeout((()=>{(this.relayer.connected||this.relayer.connecting)&&this.relayer.request(o).catch((e=>this.logger.warn(e)))}),cjs$7.toMiliseconds(cjs$7.ONE_SECOND)),t;const n=await kt$1(this.relayer.request(o).catch((e=>this.logger.warn(e))),this.subscribeTimeout,`Subscribing to ${e} failed, please try again`);if(!n&&i)throw new Error(`Subscribing to ${e} failed, please try again`);return n?t:null}catch(s){if(this.logger.debug("Outgoing Relay Subscribe Payload stalled"),this.relayer.events.emit(v$4.connection_stalled),i)throw s}return null}async rpcBatchSubscribe(e){if(!e.length)return;const t={method:jr$1(e[0].relay.protocol).batchSubscribe,params:{topics:e.map((e=>e.topic))}};this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"payload",direction:"outgoing",request:t});try{return await await kt$1(this.relayer.request(t).catch((e=>this.logger.warn(e))),this.subscribeTimeout)}catch{this.relayer.events.emit(v$4.connection_stalled)}}async rpcBatchFetchMessages(e){if(!e.length)return;const t={method:jr$1(e[0].relay.protocol).batchFetchMessages,params:{topics:e.map((e=>e.topic))}};let r;this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"payload",direction:"outgoing",request:t});try{r=await await kt$1(this.relayer.request(t).catch((e=>this.logger.warn(e))),this.subscribeTimeout)}catch{this.relayer.events.emit(v$4.connection_stalled)}return r}rpcUnsubscribe(e,t,r){const n={method:jr$1(r.protocol).unsubscribe,params:{topic:e,id:t}};return this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"payload",direction:"outgoing",request:n}),this.relayer.request(n)}onSubscribe(e,t){this.setSubscription(e,we$1(W$1({},t),{id:e})),this.pending.delete(t.topic)}onBatchSubscribe(e){e.length&&e.forEach((e=>{this.setSubscription(e.id,W$1({},e)),this.pending.delete(e.topic)}))}async onUnsubscribe(e,t,r){this.events.removeAllListeners(t),this.hasSubscription(t,e)&&this.deleteSubscription(t,r),await this.relayer.messages.del(e)}async setRelayerSubscriptions(e){await this.relayer.core.storage.setItem(this.storageKey,e)}async getRelayerSubscriptions(){return await this.relayer.core.storage.getItem(this.storageKey)}setSubscription(e,t){this.logger.debug("Setting subscription"),this.logger.trace({type:"method",method:"setSubscription",id:e,subscription:t}),this.addSubscription(e,t)}addSubscription(e,t){this.subscriptions.set(e,W$1({},t)),this.topicMap.set(t.topic,e),this.events.emit(O$2.created,t)}getSubscription(e){this.logger.debug("Getting subscription"),this.logger.trace({type:"method",method:"getSubscription",id:e});const t=this.subscriptions.get(e);if(!t){const{message:t}=S$6("NO_MATCHING_KEY",`${this.name}: ${e}`);throw new Error(t)}return t}deleteSubscription(e,t){this.logger.debug("Deleting subscription"),this.logger.trace({type:"method",method:"deleteSubscription",id:e,reason:t});const r=this.getSubscription(e);this.subscriptions.delete(e),this.topicMap.delete(r.topic,e),this.events.emit(O$2.deleted,we$1(W$1({},r),{reason:t}))}async persist(){await this.setRelayerSubscriptions(this.values),this.events.emit(O$2.sync)}async reset(){if(this.cached.length){const e=Math.ceil(this.cached.length/this.batchSubscribeTopicsLimit);for(let t=0;t"u"||!e.length)return;if(this.subscriptions.size){const{message:e}=S$6("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(e),this.logger.error(`${this.name}: ${JSON.stringify(this.values)}`),new Error(e)}this.cached=e,this.logger.debug(`Successfully Restored subscriptions for ${this.name}`),this.logger.trace({type:"method",method:"restore",subscriptions:this.values})}catch(e){this.logger.debug(`Failed to Restore subscriptions for ${this.name}`),this.logger.error(e)}}async batchSubscribe(e){if(!e.length)return;const t=await this.rpcBatchSubscribe(e);L$4(t)&&this.onBatchSubscribe(t.map(((t,r)=>we$1(W$1({},e[r]),{id:t}))))}async batchFetchMessages(e){if(!e.length)return;this.logger.trace(`Fetching batch messages for ${e.length} subscriptions`);const t=await this.rpcBatchFetchMessages(e);t&&t.messages&&(this.pendingBatchMessages=this.pendingBatchMessages.concat(t.messages))}async onConnect(){await this.restart(),this.onEnable()}onDisconnect(){this.onDisable()}async checkPending(){if(!this.initialized||!this.relayer.connected)return;const e=[];this.pending.forEach((t=>{e.push(t)})),await this.batchSubscribe(e),this.pendingBatchMessages.length&&(await this.relayer.handleBatchMessageEvents(this.pendingBatchMessages),this.pendingBatchMessages=[])}registerEventListeners(){this.relayer.core.heartbeat.on(r$6.pulse,(async()=>{await this.checkPending()})),this.events.on(O$2.created,(async e=>{const t=O$2.created;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,data:e}),await this.persist()})),this.events.on(O$2.deleted,(async e=>{const t=O$2.deleted;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,data:e}),await this.persist()}))}isInitialized(){if(!this.initialized){const{message:e}=S$6("NOT_INITIALIZED",this.name);throw new Error(e)}}async restartToComplete(){!this.relayer.connected&&!this.relayer.connecting&&await this.relayer.transportOpen(),this.restartInProgress&&await new Promise((e=>{const t=setInterval((()=>{this.restartInProgress||(clearInterval(t),e())}),this.pollingInterval)}))}}var on=Object.defineProperty,Zt=Object.getOwnPropertySymbols,an=Object.prototype.hasOwnProperty,hn=Object.prototype.propertyIsEnumerable,Qt=(e,t,r)=>t in e?on(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,ei=(e,t)=>{for(var r in t||(t={}))an.call(t,r)&&Qt(e,r,t[r]);if(Zt)for(var r of Zt(t))hn.call(t,r)&&Qt(e,r,t[r]);return e};class ti extends u$4{constructor(e){super(e),this.protocol="wc",this.version=2,this.events=new eventsExports.EventEmitter,this.name=ot$1,this.transportExplicitlyClosed=!1,this.initialized=!1,this.connectionAttemptInProgress=!1,this.connectionStatusPollingInterval=20,this.staleConnectionErrors=["socket hang up","stalled","interrupted"],this.hasExperiencedNetworkDisruption=!1,this.requestsInFlight=new Map,this.heartBeatTimeout=cjs$7.toMiliseconds(cjs$7.THIRTY_SECONDS+cjs$7.ONE_SECOND),this.request=async e=>{var t,r;this.logger.debug("Publishing Request Payload");const n=e.id||getBigIntRpcId().toString();await this.toEstablishConnection();try{const o=this.provider.request(e);this.requestsInFlight.set(n,{promise:o,request:e}),this.logger.trace({id:n,method:e.method,topic:null==(t=e.params)?void 0:t.topic},"relayer.request - attempt to publish...");const i=await new Promise((async(e,t)=>{const r=()=>{t(new Error(`relayer.request - publish interrupted, id: ${n}`))};this.provider.on(I$4.disconnect,r);const i=await o;this.provider.off(I$4.disconnect,r),e(i)}));return this.logger.trace({id:n,method:e.method,topic:null==(r=e.params)?void 0:r.topic},"relayer.request - published"),i}catch(o){throw this.logger.debug(`Failed to Publish Request: ${n}`),o}finally{this.requestsInFlight.delete(n)}},this.resetPingTimeout=()=>{if(ce())try{clearTimeout(this.pingTimeout),this.pingTimeout=setTimeout((()=>{var e,t,r;null==(r=null==(t=null==(e=this.provider)?void 0:e.connection)?void 0:t.socket)||r.terminate()}),this.heartBeatTimeout)}catch(e){this.logger.warn(e)}},this.onPayloadHandler=e=>{this.onProviderPayload(e),this.resetPingTimeout()},this.onConnectHandler=()=>{this.logger.trace("relayer connected"),this.startPingTimeout(),this.events.emit(v$4.connect)},this.onDisconnectHandler=()=>{this.logger.trace("relayer disconnected"),this.onProviderDisconnect()},this.onProviderErrorHandler=e=>{this.logger.error(e),this.events.emit(v$4.error,e),this.logger.info("Fatal socket error received, closing transport"),this.transportClose()},this.registerProviderListeners=()=>{this.provider.on(I$4.payload,this.onPayloadHandler),this.provider.on(I$4.connect,this.onConnectHandler),this.provider.on(I$4.disconnect,this.onDisconnectHandler),this.provider.on(I$4.error,this.onProviderErrorHandler)},this.core=e.core,this.logger=typeof e.logger<"u"&&"string"!=typeof e.logger?E$5(e.logger,this.name):_i(k$5({level:e.logger||nt$1})),this.messages=new Yt(this.logger,e.core),this.subscriber=new Wt(this,this.logger),this.publisher=new Zr(this,this.logger),this.relayUrl=(null==e?void 0:e.relayUrl)||be$1,this.projectId=e.projectId,this.bundleId=Ot$1(),this.provider={}}async init(){if(this.logger.trace("Initialized"),this.registerEventListeners(),await Promise.all([this.messages.init(),this.subscriber.init()]),this.initialized=!0,this.subscriber.cached.length>0)try{await this.transportOpen()}catch(e){this.logger.warn(e)}}get context(){return y$7(this.logger)}get connected(){var e,t,r;return 1===(null==(r=null==(t=null==(e=this.provider)?void 0:e.connection)?void 0:t.socket)?void 0:r.readyState)}get connecting(){var e,t,r;return 0===(null==(r=null==(t=null==(e=this.provider)?void 0:e.connection)?void 0:t.socket)?void 0:r.readyState)}async publish(e,t,r){this.isInitialized(),await this.publisher.publish(e,t,r),await this.recordMessageEvent({topic:e,message:t,publishedAt:Date.now(),transportType:M$3.relay})}async subscribe(e,t){var r,n,o;this.isInitialized(),"relay"===(null==t?void 0:t.transportType)&&await this.toEstablishConnection();const i=typeof(null==(r=null==t?void 0:t.internal)?void 0:r.throwOnFailedPublish)>"u"||(null==(n=null==t?void 0:t.internal)?void 0:n.throwOnFailedPublish);let s,a=(null==(o=this.subscriber.topicMap.get(e))?void 0:o[0])||"";const c=t=>{t.topic===e&&(this.subscriber.off(O$2.created,c),s())};return await Promise.all([new Promise((e=>{s=e,this.subscriber.on(O$2.created,c)})),new Promise((async(r,n)=>{a=await this.subscriber.subscribe(e,ei({internal:{throwOnFailedPublish:i}},t)).catch((e=>{i&&n(e)}))||a,r()}))]),a}async unsubscribe(e,t){this.isInitialized(),await this.subscriber.unsubscribe(e,t)}on(e,t){this.events.on(e,t)}once(e,t){this.events.once(e,t)}off(e,t){this.events.off(e,t)}removeListener(e,t){this.events.removeListener(e,t)}async transportDisconnect(){if(!this.hasExperiencedNetworkDisruption&&this.connected&&this.requestsInFlight.size>0)try{await Promise.all(Array.from(this.requestsInFlight.values()).map((e=>e.promise)))}catch(e){this.logger.warn(e)}this.hasExperiencedNetworkDisruption||this.connected?await kt$1(this.provider.disconnect(),2e3,"provider.disconnect()").catch((()=>this.onProviderDisconnect())):this.onProviderDisconnect()}async transportClose(){this.transportExplicitlyClosed=!0,await this.transportDisconnect()}async transportOpen(e){await this.confirmOnlineStateOrThrow(),e&&e!==this.relayUrl&&(this.relayUrl=e,await this.transportDisconnect()),await this.createProvider(),this.connectionAttemptInProgress=!0,this.transportExplicitlyClosed=!1;try{await new Promise((async(e,t)=>{const r=()=>{this.provider.off(I$4.disconnect,r),t(new Error("Connection interrupted while trying to subscribe"))};this.provider.on(I$4.disconnect,r),await kt$1(this.provider.connect(),cjs$7.toMiliseconds(cjs$7.ONE_MINUTE),`Socket stalled when trying to connect to ${this.relayUrl}`).catch((e=>{t(e)})).finally((()=>{clearTimeout(this.reconnectTimeout),this.reconnectTimeout=void 0})),this.subscriber.start().catch((e=>{this.logger.error(e),this.onDisconnectHandler()})),this.hasExperiencedNetworkDisruption=!1,e()}))}catch(t){this.logger.error(t);const e=t;if(this.hasExperiencedNetworkDisruption=!0,!this.isConnectionStalled(e.message))throw t}finally{this.connectionAttemptInProgress=!1}}async restartTransport(e){this.connectionAttemptInProgress||(this.relayUrl=e||this.relayUrl,await this.confirmOnlineStateOrThrow(),await this.transportClose(),await this.transportOpen())}async confirmOnlineStateOrThrow(){if(!(await mo()))throw new Error("No internet connection detected. Please restart your network and try again.")}async handleBatchMessageEvents(e){if(0===(null==e?void 0:e.length))return void this.logger.trace("Batch message events is empty. Ignoring...");const t=e.sort(((e,t)=>e.publishedAt-t.publishedAt));this.logger.trace(`Batch of ${t.length} message events sorted`);for(const n of t)try{await this.onMessageEvent(n)}catch(r){this.logger.warn(r)}this.logger.trace(`Batch of ${t.length} message events processed`)}async onLinkMessageEvent(e,t){const{topic:r}=e;if(!t.sessionExists){const e={topic:r,expiry:Mt$1(cjs$7.FIVE_MINUTES),relay:{protocol:"irn"},active:!1};await this.core.pairing.pairings.set(r,e)}this.events.emit(v$4.message,e),await this.recordMessageEvent(e)}startPingTimeout(){var e,t,r,n,o;if(ce())try{null!=(t=null==(e=this.provider)?void 0:e.connection)&&t.socket&&(null==(o=null==(n=null==(r=this.provider)?void 0:r.connection)?void 0:n.socket)||o.once("ping",(()=>{this.resetPingTimeout()}))),this.resetPingTimeout()}catch(i){this.logger.warn(i)}}isConnectionStalled(e){return this.staleConnectionErrors.some((t=>e.includes(t)))}async createProvider(){this.provider.connection&&this.unregisterProviderListeners();const e=await this.core.crypto.signJWT(this.relayUrl);this.provider=new o$8(new f$5($t$1({sdkVersion:se,protocol:this.protocol,version:this.version,relayUrl:this.relayUrl,projectId:this.projectId,auth:e,useOnCloseEvent:!0,bundleId:this.bundleId}))),this.registerProviderListeners()}async recordMessageEvent(e){const{topic:t,message:r}=e;await this.messages.set(t,r)}async shouldIgnoreMessageEvent(e){const{topic:t,message:r}=e;if(!r||0===r.length)return this.logger.debug(`Ignoring invalid/empty message: ${r}`),!0;if(!(await this.subscriber.isSubscribed(t)))return this.logger.debug(`Ignoring message for non-subscribed topic ${t}`),!0;const n=this.messages.has(t,r);return n&&this.logger.debug(`Ignoring duplicate message: ${r}`),n}async onProviderPayload(e){if(this.logger.debug("Incoming Relay Payload"),this.logger.trace({type:"payload",direction:"incoming",payload:e}),isJsonRpcRequest(e)){if(!e.method.endsWith(at$1))return;const t=e.params,{topic:r,message:n,publishedAt:o,attestation:i}=t.data,s={topic:r,message:n,publishedAt:o,transportType:M$3.relay,attestation:i};this.logger.debug("Emitting Relayer Payload"),this.logger.trace(ei({type:"event",event:t.id},s)),this.events.emit(t.id,s),await this.acknowledgePayload(e),await this.onMessageEvent(s)}else isJsonRpcResponse(e)&&this.events.emit(v$4.message_ack,e)}async onMessageEvent(e){await this.shouldIgnoreMessageEvent(e)||(this.events.emit(v$4.message,e),await this.recordMessageEvent(e))}async acknowledgePayload(e){const t=formatJsonRpcResult(e.id,!0);await this.provider.connection.send(t)}unregisterProviderListeners(){this.provider.off(I$4.payload,this.onPayloadHandler),this.provider.off(I$4.connect,this.onConnectHandler),this.provider.off(I$4.disconnect,this.onDisconnectHandler),this.provider.off(I$4.error,this.onProviderErrorHandler),clearTimeout(this.pingTimeout)}async registerEventListeners(){let e=await mo();ho((async t=>{e!==t&&(e=t,t?await this.restartTransport().catch((e=>this.logger.error(e))):(this.hasExperiencedNetworkDisruption=!0,await this.transportDisconnect(),this.transportExplicitlyClosed=!1))}))}async onProviderDisconnect(){await this.subscriber.stop(),this.requestsInFlight.clear(),clearTimeout(this.pingTimeout),this.events.emit(v$4.disconnect),this.connectionAttemptInProgress=!1,!this.transportExplicitlyClosed&&(this.reconnectTimeout||(this.reconnectTimeout=setTimeout((async()=>{await this.transportOpen().catch((e=>this.logger.error(e)))}),cjs$7.toMiliseconds(ht$1))))}isInitialized(){if(!this.initialized){const{message:e}=S$6("NOT_INITIALIZED",this.name);throw new Error(e)}}async toEstablishConnection(){await this.confirmOnlineStateOrThrow(),!this.connected&&(this.connectionAttemptInProgress&&await new Promise((e=>{const t=setInterval((()=>{this.connected&&(clearInterval(t),e())}),this.connectionStatusPollingInterval)})),await this.transportOpen())}}var cn=Object.defineProperty,ii=Object.getOwnPropertySymbols,ln=Object.prototype.hasOwnProperty,un=Object.prototype.propertyIsEnumerable,si=(e,t,r)=>t in e?cn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,ri=(e,t)=>{for(var r in t||(t={}))ln.call(t,r)&&si(e,r,t[r]);if(ii)for(var r of ii(t))un.call(t,r)&&si(e,r,t[r]);return e};class ni extends p$3{constructor(e,t,r,n=x$4,o=void 0){super(e,t,r,n),this.core=e,this.logger=t,this.name=r,this.map=new Map,this.version=ct$1,this.cached=[],this.initialized=!1,this.storagePrefix=x$4,this.recentlyDeleted=[],this.recentlyDeletedLimit=200,this.init=async()=>{this.initialized||(this.logger.trace("Initialized"),await this.restore(),this.cached.forEach((e=>{this.getKey&&null!==e&&!I$5(e)?this.map.set(this.getKey(e),e):Yr$1(e)?this.map.set(e.id,e):Qr$1(e)&&this.map.set(e.topic,e)})),this.cached=[],this.initialized=!0)},this.set=async(e,t)=>{this.isInitialized(),this.map.has(e)?await this.update(e,t):(this.logger.debug("Setting value"),this.logger.trace({type:"method",method:"set",key:e,value:t}),this.map.set(e,t),await this.persist())},this.get=e=>(this.isInitialized(),this.logger.debug("Getting value"),this.logger.trace({type:"method",method:"get",key:e}),this.getData(e)),this.getAll=e=>(this.isInitialized(),e?this.values.filter((t=>Object.keys(e).every((r=>ys$1(t[r],e[r]))))):this.values),this.update=async(e,t)=>{this.isInitialized(),this.logger.debug("Updating value"),this.logger.trace({type:"method",method:"update",key:e,update:t});const r=ri(ri({},this.getData(e)),t);this.map.set(e,r),await this.persist()},this.delete=async(e,t)=>{this.isInitialized(),this.map.has(e)&&(this.logger.debug("Deleting value"),this.logger.trace({type:"method",method:"delete",key:e,reason:t}),this.map.delete(e),this.addToRecentlyDeleted(e),await this.persist())},this.logger=E$5(t,this.name),this.storagePrefix=n,this.getKey=o}get context(){return y$7(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//"+this.name}get length(){return this.map.size}get keys(){return Array.from(this.map.keys())}get values(){return Array.from(this.map.values())}addToRecentlyDeleted(e){this.recentlyDeleted.push(e),this.recentlyDeleted.length>=this.recentlyDeletedLimit&&this.recentlyDeleted.splice(0,this.recentlyDeletedLimit/2)}async setDataStore(e){await this.core.storage.setItem(this.storageKey,e)}async getDataStore(){return await this.core.storage.getItem(this.storageKey)}getData(e){const t=this.map.get(e);if(!t){if(this.recentlyDeleted.includes(e)){const{message:t}=S$6("MISSING_OR_INVALID",`Record was recently deleted - ${this.name}: ${e}`);throw this.logger.error(t),new Error(t)}const{message:t}=S$6("NO_MATCHING_KEY",`${this.name}: ${e}`);throw this.logger.error(t),new Error(t)}return t}async persist(){await this.setDataStore(this.values)}async restore(){try{const e=await this.getDataStore();if(typeof e>"u"||!e.length)return;if(this.map.size){const{message:e}=S$6("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(e),new Error(e)}this.cached=e,this.logger.debug(`Successfully Restored value for ${this.name}`),this.logger.trace({type:"method",method:"restore",value:this.values})}catch(e){this.logger.debug(`Failed to Restore value for ${this.name}`),this.logger.error(e)}}isInitialized(){if(!this.initialized){const{message:e}=S$6("NOT_INITIALIZED",this.name);throw new Error(e)}}}class oi{constructor(e,t){this.core=e,this.logger=t,this.name=gt$1,this.version=yt$1,this.events=new mi,this.initialized=!1,this.storagePrefix=x$4,this.ignoredPayloadTypes=[D$5],this.registeredMethods=[],this.init=async()=>{this.initialized||(await this.pairings.init(),await this.cleanup(),this.registerRelayerEvents(),this.registerExpirerEvents(),this.initialized=!0,this.logger.trace("Initialized"))},this.register=({methods:e})=>{this.isInitialized(),this.registeredMethods=[...new Set([...this.registeredMethods,...e])]},this.create=async e=>{this.isInitialized();const t=pr$1(),r=await this.core.crypto.setSymKey(t),n=Mt$1(cjs$7.FIVE_MINUTES),o={protocol:rt$1},i={topic:r,expiry:n,relay:o,active:!1,methods:null==e?void 0:e.methods},s=Dr$1({protocol:this.core.protocol,version:this.core.version,topic:r,symKey:t,relay:o,expiryTimestamp:n,methods:null==e?void 0:e.methods});return this.events.emit(V$2.create,i),this.core.expirer.set(r,n),await this.pairings.set(r,i),await this.core.relayer.subscribe(r,{transportType:null==e?void 0:e.transportType}),{topic:r,uri:s}},this.pair=async e=>{this.isInitialized();const t=this.core.eventClient.createEvent({properties:{topic:null==e?void 0:e.uri,trace:[z$5.pairing_started]}});this.isValidPair(e,t);const{topic:r,symKey:n,relay:o,expiryTimestamp:i,methods:s}=kr$1(e.uri);let a;if(t.props.properties.topic=r,t.addTrace(z$5.pairing_uri_validation_success),t.addTrace(z$5.pairing_uri_not_expired),this.pairings.keys.includes(r)){if(a=this.pairings.get(r),t.addTrace(z$5.existing_pairing),a.active)throw t.setError($$3.active_pairing_already_exists),new Error(`Pairing already exists: ${r}. Please try again with a new connection URI.`);t.addTrace(z$5.pairing_not_expired)}const c=i||Mt$1(cjs$7.FIVE_MINUTES),u={topic:r,relay:o,expiry:c,active:!1,methods:s};this.core.expirer.set(r,c),await this.pairings.set(r,u),t.addTrace(z$5.store_new_pairing),e.activatePairing&&await this.activate({topic:r}),this.events.emit(V$2.create,u),t.addTrace(z$5.emit_inactive_pairing),this.core.crypto.keychain.has(r)||await this.core.crypto.setSymKey(n,r),t.addTrace(z$5.subscribing_pairing_topic);try{await this.core.relayer.confirmOnlineStateOrThrow()}catch{t.setError($$3.no_internet_connection)}try{await this.core.relayer.subscribe(r,{relay:o})}catch(l){throw t.setError($$3.subscribe_pairing_topic_failure),l}return t.addTrace(z$5.subscribe_pairing_topic_success),u},this.activate=async({topic:e})=>{this.isInitialized();const t=Mt$1(cjs$7.THIRTY_DAYS);this.core.expirer.set(e,t),await this.pairings.update(e,{active:!0,expiry:t})},this.ping=async e=>{this.isInitialized(),await this.isValidPing(e);const{topic:t}=e;if(this.pairings.keys.includes(t)){const e=await this.sendRequest(t,"wc_pairingPing",{}),{done:r,resolve:n,reject:o}=_t$1();this.events.once(Lt$1("pairing_ping",e),(({error:e})=>{e?o(e):n()})),await r()}},this.updateExpiry=async({topic:e,expiry:t})=>{this.isInitialized(),await this.pairings.update(e,{expiry:t})},this.updateMetadata=async({topic:e,metadata:t})=>{this.isInitialized(),await this.pairings.update(e,{peerMetadata:t})},this.getPairings=()=>(this.isInitialized(),this.pairings.values),this.disconnect=async e=>{this.isInitialized(),await this.isValidDisconnect(e);const{topic:t}=e;this.pairings.keys.includes(t)&&(await this.sendRequest(t,"wc_pairingDelete",U$2("USER_DISCONNECTED")),await this.deletePairing(t))},this.formatUriFromPairing=e=>{this.isInitialized();const{topic:t,relay:r,expiry:n,methods:o}=e,i=this.core.crypto.keychain.get(t);return Dr$1({protocol:this.core.protocol,version:this.core.version,topic:t,symKey:i,relay:r,expiryTimestamp:n,methods:o})},this.sendRequest=async(e,t,r)=>{const n=formatJsonRpcRequest(t,r),o=await this.core.crypto.encode(e,n),i=B$2[t].req;return this.core.history.set(e,n),this.core.relayer.publish(e,o,i),n.id},this.sendResult=async(e,t,r)=>{const n=formatJsonRpcResult(e,r),o=await this.core.crypto.encode(t,n),i=await this.core.history.get(t,e),s=B$2[i.request.method].res;await this.core.relayer.publish(t,o,s),await this.core.history.resolve(n)},this.sendError=async(e,t,r)=>{const n=formatJsonRpcError(e,r),o=await this.core.crypto.encode(t,n),i=await this.core.history.get(t,e),s=B$2[i.request.method]?B$2[i.request.method].res:B$2.unregistered_method.res;await this.core.relayer.publish(t,o,s),await this.core.history.resolve(n)},this.deletePairing=async(e,t)=>{await this.core.relayer.unsubscribe(e),await Promise.all([this.pairings.delete(e,U$2("USER_DISCONNECTED")),this.core.crypto.deleteSymKey(e),t?Promise.resolve():this.core.expirer.del(e)])},this.cleanup=async()=>{const e=this.pairings.getAll().filter((e=>Kt$1(e.expiry)));await Promise.all(e.map((e=>this.deletePairing(e.topic))))},this.onRelayEventRequest=e=>{const{topic:t,payload:r}=e;switch(r.method){case"wc_pairingPing":return this.onPairingPingRequest(t,r);case"wc_pairingDelete":return this.onPairingDeleteRequest(t,r);default:return this.onUnknownRpcMethodRequest(t,r)}},this.onRelayEventResponse=async e=>{const{topic:t,payload:r}=e,n=(await this.core.history.get(t,r.id)).request.method;return"wc_pairingPing"===n?this.onPairingPingResponse(t,r):this.onUnknownRpcMethodResponse(n)},this.onPairingPingRequest=async(e,t)=>{const{id:r}=t;try{this.isValidPing({topic:e}),await this.sendResult(r,e,!0),this.events.emit(V$2.ping,{id:r,topic:e})}catch(n){await this.sendError(r,e,n),this.logger.error(n)}},this.onPairingPingResponse=(e,t)=>{const{id:r}=t;setTimeout((()=>{isJsonRpcResult(t)?this.events.emit(Lt$1("pairing_ping",r),{}):isJsonRpcError(t)&&this.events.emit(Lt$1("pairing_ping",r),{error:t.error})}),500)},this.onPairingDeleteRequest=async(e,t)=>{const{id:r}=t;try{this.isValidDisconnect({topic:e}),await this.deletePairing(e),this.events.emit(V$2.delete,{id:r,topic:e})}catch(n){await this.sendError(r,e,n),this.logger.error(n)}},this.onUnknownRpcMethodRequest=async(e,t)=>{const{id:r,method:n}=t;try{if(this.registeredMethods.includes(n))return;const t=U$2("WC_METHOD_UNSUPPORTED",n);await this.sendError(r,e,t),this.logger.error(t)}catch(o){await this.sendError(r,e,o),this.logger.error(o)}},this.onUnknownRpcMethodResponse=e=>{this.registeredMethods.includes(e)||this.logger.error(U$2("WC_METHOD_UNSUPPORTED",e))},this.isValidPair=(e,t)=>{var r;if(!to(e)){const{message:r}=S$6("MISSING_OR_INVALID",`pair() params: ${e}`);throw t.setError($$3.malformed_pairing_uri),new Error(r)}if(!Gr$1(e.uri)){const{message:r}=S$6("MISSING_OR_INVALID",`pair() uri: ${e.uri}`);throw t.setError($$3.malformed_pairing_uri),new Error(r)}const n=kr$1(null==e?void 0:e.uri);if(null==(r=null==n?void 0:n.relay)||!r.protocol){const{message:e}=S$6("MISSING_OR_INVALID","pair() uri#relay-protocol");throw t.setError($$3.malformed_pairing_uri),new Error(e)}if(null==n||!n.symKey){const{message:e}=S$6("MISSING_OR_INVALID","pair() uri#symKey");throw t.setError($$3.malformed_pairing_uri),new Error(e)}if(null!=n&&n.expiryTimestamp&&cjs$7.toMiliseconds(null==n?void 0:n.expiryTimestamp){if(!to(e)){const{message:t}=S$6("MISSING_OR_INVALID",`ping() params: ${e}`);throw new Error(t)}const{topic:t}=e;await this.isValidPairingTopic(t)},this.isValidDisconnect=async e=>{if(!to(e)){const{message:t}=S$6("MISSING_OR_INVALID",`disconnect() params: ${e}`);throw new Error(t)}const{topic:t}=e;await this.isValidPairingTopic(t)},this.isValidPairingTopic=async e=>{if(!b$4(e,!1)){const{message:t}=S$6("MISSING_OR_INVALID",`pairing topic should be a string: ${e}`);throw new Error(t)}if(!this.pairings.keys.includes(e)){const{message:t}=S$6("NO_MATCHING_KEY",`pairing topic doesn't exist: ${e}`);throw new Error(t)}if(Kt$1(this.pairings.get(e).expiry)){await this.deletePairing(e);const{message:t}=S$6("EXPIRED",`pairing topic: ${e}`);throw new Error(t)}},this.core=e,this.logger=E$5(t,this.name),this.pairings=new ni(this.core,this.logger,this.name,this.storagePrefix)}get context(){return y$7(this.logger)}isInitialized(){if(!this.initialized){const{message:e}=S$6("NOT_INITIALIZED",this.name);throw new Error(e)}}registerRelayerEvents(){this.core.relayer.on(v$4.message,(async e=>{const{topic:t,message:r,transportType:n}=e;if(!this.pairings.keys.includes(t)||n===M$3.link_mode||this.ignoredPayloadTypes.includes(this.core.crypto.getPayloadType(r)))return;const o=await this.core.crypto.decode(t,r);try{isJsonRpcRequest(o)?(this.core.history.set(t,o),this.onRelayEventRequest({topic:t,payload:o})):isJsonRpcResponse(o)&&(await this.core.history.resolve(o),await this.onRelayEventResponse({topic:t,payload:o}),this.core.history.delete(t,o.id))}catch(i){this.logger.error(i)}}))}registerExpirerEvents(){this.core.expirer.on(S$4.expired,(async e=>{const{topic:t}=Vt$1(e.target);t&&this.pairings.keys.includes(t)&&(await this.deletePairing(t,!0),this.events.emit(V$2.expire,{topic:t}))}))}}class ai extends h$6{constructor(e,t){super(e,t),this.core=e,this.logger=t,this.records=new Map,this.events=new eventsExports.EventEmitter,this.name=Dt,this.version=mt,this.cached=[],this.initialized=!1,this.storagePrefix=x$4,this.init=async()=>{this.initialized||(this.logger.trace("Initialized"),await this.restore(),this.cached.forEach((e=>this.records.set(e.id,e))),this.cached=[],this.registerEventListeners(),this.initialized=!0)},this.set=(e,t,r)=>{if(this.isInitialized(),this.logger.debug("Setting JSON-RPC request history record"),this.logger.trace({type:"method",method:"set",topic:e,request:t,chainId:r}),this.records.has(t.id))return;const n={id:t.id,topic:e,request:{method:t.method,params:t.params||null},chainId:r,expiry:Mt$1(cjs$7.THIRTY_DAYS)};this.records.set(n.id,n),this.persist(),this.events.emit(P$3.created,n)},this.resolve=async e=>{if(this.isInitialized(),this.logger.debug("Updating JSON-RPC response history record"),this.logger.trace({type:"method",method:"update",response:e}),!this.records.has(e.id))return;const t=await this.getRecord(e.id);typeof t.response>"u"&&(t.response=isJsonRpcError(e)?{error:e.error}:{result:e.result},this.records.set(t.id,t),this.persist(),this.events.emit(P$3.updated,t))},this.get=async(e,t)=>(this.isInitialized(),this.logger.debug("Getting record"),this.logger.trace({type:"method",method:"get",topic:e,id:t}),await this.getRecord(t)),this.delete=(e,t)=>{this.isInitialized(),this.logger.debug("Deleting record"),this.logger.trace({type:"method",method:"delete",id:t}),this.values.forEach((r=>{if(r.topic===e){if(typeof t<"u"&&r.id!==t)return;this.records.delete(r.id),this.events.emit(P$3.deleted,r)}})),this.persist()},this.exists=async(e,t)=>(this.isInitialized(),!!this.records.has(t)&&(await this.getRecord(t)).topic===e),this.on=(e,t)=>{this.events.on(e,t)},this.once=(e,t)=>{this.events.once(e,t)},this.off=(e,t)=>{this.events.off(e,t)},this.removeListener=(e,t)=>{this.events.removeListener(e,t)},this.logger=E$5(t,this.name)}get context(){return y$7(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//"+this.name}get size(){return this.records.size}get keys(){return Array.from(this.records.keys())}get values(){return Array.from(this.records.values())}get pending(){const e=[];return this.values.forEach((t=>{if(typeof t.response<"u")return;const r={topic:t.topic,request:formatJsonRpcRequest(t.request.method,t.request.params,t.id),chainId:t.chainId};return e.push(r)})),e}async setJsonRpcRecords(e){await this.core.storage.setItem(this.storageKey,e)}async getJsonRpcRecords(){return await this.core.storage.getItem(this.storageKey)}getRecord(e){this.isInitialized();const t=this.records.get(e);if(!t){const{message:t}=S$6("NO_MATCHING_KEY",`${this.name}: ${e}`);throw new Error(t)}return t}async persist(){await this.setJsonRpcRecords(this.values),this.events.emit(P$3.sync)}async restore(){try{const e=await this.getJsonRpcRecords();if(typeof e>"u"||!e.length)return;if(this.records.size){const{message:e}=S$6("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(e),new Error(e)}this.cached=e,this.logger.debug(`Successfully Restored records for ${this.name}`),this.logger.trace({type:"method",method:"restore",records:this.values})}catch(e){this.logger.debug(`Failed to Restore records for ${this.name}`),this.logger.error(e)}}registerEventListeners(){this.events.on(P$3.created,(e=>{const t=P$3.created;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,record:e})})),this.events.on(P$3.updated,(e=>{const t=P$3.updated;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,record:e})})),this.events.on(P$3.deleted,(e=>{const t=P$3.deleted;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,record:e})})),this.core.heartbeat.on(r$6.pulse,(()=>{this.cleanup()}))}cleanup(){try{this.isInitialized();let e=!1;this.records.forEach((t=>{cjs$7.toMiliseconds(t.expiry||0)-Date.now()<=0&&(this.logger.info(`Deleting expired history log: ${t.id}`),this.records.delete(t.id),this.events.emit(P$3.deleted,t,!1),e=!0)})),e&&this.persist()}catch(e){this.logger.warn(e)}}isInitialized(){if(!this.initialized){const{message:e}=S$6("NOT_INITIALIZED",this.name);throw new Error(e)}}}class hi extends x$5{constructor(e,t){super(e,t),this.core=e,this.logger=t,this.expirations=new Map,this.events=new eventsExports.EventEmitter,this.name=bt,this.version=ft,this.cached=[],this.initialized=!1,this.storagePrefix=x$4,this.init=async()=>{this.initialized||(this.logger.trace("Initialized"),await this.restore(),this.cached.forEach((e=>this.expirations.set(e.target,e))),this.cached=[],this.registerEventListeners(),this.initialized=!0)},this.has=e=>{try{const t=this.formatTarget(e);return typeof this.getExpiration(t)<"u"}catch{return!1}},this.set=(e,t)=>{this.isInitialized();const r=this.formatTarget(e),n={target:r,expiry:t};this.expirations.set(r,n),this.checkExpiry(r,n),this.events.emit(S$4.created,{target:r,expiration:n})},this.get=e=>{this.isInitialized();const t=this.formatTarget(e);return this.getExpiration(t)},this.del=e=>{if(this.isInitialized(),this.has(e)){const t=this.formatTarget(e),r=this.getExpiration(t);this.expirations.delete(t),this.events.emit(S$4.deleted,{target:t,expiration:r})}},this.on=(e,t)=>{this.events.on(e,t)},this.once=(e,t)=>{this.events.once(e,t)},this.off=(e,t)=>{this.events.off(e,t)},this.removeListener=(e,t)=>{this.events.removeListener(e,t)},this.logger=E$5(t,this.name)}get context(){return y$7(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//"+this.name}get length(){return this.expirations.size}get keys(){return Array.from(this.expirations.keys())}get values(){return Array.from(this.expirations.values())}formatTarget(e){if("string"==typeof e)return Dt$1(e);if("number"==typeof e)return xt$1(e);const{message:t}=S$6("UNKNOWN_TYPE","Target type: "+typeof e);throw new Error(t)}async setExpirations(e){await this.core.storage.setItem(this.storageKey,e)}async getExpirations(){return await this.core.storage.getItem(this.storageKey)}async persist(){await this.setExpirations(this.values),this.events.emit(S$4.sync)}async restore(){try{const e=await this.getExpirations();if(typeof e>"u"||!e.length)return;if(this.expirations.size){const{message:e}=S$6("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(e),new Error(e)}this.cached=e,this.logger.debug(`Successfully Restored expirations for ${this.name}`),this.logger.trace({type:"method",method:"restore",expirations:this.values})}catch(e){this.logger.debug(`Failed to Restore expirations for ${this.name}`),this.logger.error(e)}}getExpiration(e){const t=this.expirations.get(e);if(!t){const{message:t}=S$6("NO_MATCHING_KEY",`${this.name}: ${e}`);throw this.logger.warn(t),new Error(t)}return t}checkExpiry(e,t){const{expiry:r}=t;cjs$7.toMiliseconds(r)-Date.now()<=0&&this.expire(e,t)}expire(e,t){this.expirations.delete(e),this.events.emit(S$4.expired,{target:e,expiration:t})}checkExpirations(){this.core.relayer.connected&&this.expirations.forEach(((e,t)=>this.checkExpiry(t,e)))}registerEventListeners(){this.core.heartbeat.on(r$6.pulse,(()=>this.checkExpirations())),this.events.on(S$4.created,(e=>{const t=S$4.created;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,data:e}),this.persist()})),this.events.on(S$4.expired,(e=>{const t=S$4.expired;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,data:e}),this.persist()})),this.events.on(S$4.deleted,(e=>{const t=S$4.deleted;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,data:e}),this.persist()}))}isInitialized(){if(!this.initialized){const{message:e}=S$6("NOT_INITIALIZED",this.name);throw new Error(e)}}}class ci extends y$6{constructor(e,t,r){super(e,t,r),this.core=e,this.logger=t,this.store=r,this.name=_t,this.verifyUrlV3=vt,this.storagePrefix=x$4,this.version=De,this.init=async()=>{var e;this.isDevEnv||(this.publicKey=await this.store.getItem(this.storeKey),this.publicKey&&cjs$7.toMiliseconds(null==(e=this.publicKey)?void 0:e.expiresAt){if(!V$3()||this.isDevEnv)return;const t=window.location.origin,{id:r,decryptedId:n}=e,o=`${this.verifyUrlV3}/attestation?projectId=${this.core.projectId}&origin=${t}&id=${r}&decryptedId=${n}`;try{const e=getDocument_1$1(),t=this.startAbortTimer(5*cjs$7.ONE_SECOND),n=await new Promise(((n,i)=>{const s=()=>{window.removeEventListener("message",c),e.body.removeChild(a),i("attestation aborted")};this.abortController.signal.addEventListener("abort",s);const a=e.createElement("iframe");a.src=o,a.style.display="none",a.addEventListener("error",s,{signal:this.abortController.signal});const c=o=>{if(o.data&&"string"==typeof o.data)try{const i=JSON.parse(o.data);if("verify_attestation"===i.type){if(decodeJWT(i.attestation).payload.id!==r)return;clearInterval(t),e.body.removeChild(a),this.abortController.signal.removeEventListener("abort",s),window.removeEventListener("message",c),n(null===i.attestation?"":i.attestation)}}catch(i){this.logger.warn(i)}};e.body.appendChild(a),window.addEventListener("message",c,{signal:this.abortController.signal})}));return this.logger.debug("jwt attestation",n),n}catch(i){this.logger.warn(i)}return""},this.resolve=async e=>{if(this.isDevEnv)return"";const{attestationId:t,hash:r,encryptedId:n}=e;if(""===t)return void this.logger.debug("resolve: attestationId is empty, skipping");if(t){if(decodeJWT(t).payload.id!==n)return;const e=await this.isValidJwtAttestation(t);if(e)return e.isVerified?e:void this.logger.warn("resolve: jwt attestation: origin url not verified")}if(!r)return;const o=this.getVerifyUrl(null==e?void 0:e.verifyUrl);return this.fetchAttestation(r,o)},this.fetchAttestation=async(e,t)=>{this.logger.debug(`resolving attestation: ${e} from url: ${t}`);const r=this.startAbortTimer(5*cjs$7.ONE_SECOND),n=await fetch(`${t}/attestation/${e}?v2Supported=true`,{signal:this.abortController.signal});return clearTimeout(r),200===n.status?await n.json():void 0},this.getVerifyUrl=e=>{let t=e||J$1;return wt.includes(t)||(this.logger.info(`verify url: ${t}, not included in trusted list, assigning default: ${J$1}`),t=J$1),t},this.fetchPublicKey=async()=>{try{this.logger.debug(`fetching public key from: ${this.verifyUrlV3}`);const e=this.startAbortTimer(cjs$7.FIVE_SECONDS),t=await fetch(`${this.verifyUrlV3}/public-key`,{signal:this.abortController.signal});return clearTimeout(e),await t.json()}catch(e){this.logger.warn(e)}},this.persistPublicKey=async e=>{this.logger.debug("persisting public key to local storage",e),await this.store.setItem(this.storeKey,e),this.publicKey=e},this.removePublicKey=async()=>{this.logger.debug("removing verify v2 public key from storage"),await this.store.removeItem(this.storeKey),this.publicKey=void 0},this.isValidJwtAttestation=async e=>{const t=await this.getPublicKey();try{if(t)return this.validateAttestation(e,t)}catch(n){this.logger.error(n),this.logger.warn("error validating attestation")}const r=await this.fetchAndPersistPublicKey();try{if(r)return this.validateAttestation(e,r)}catch(n){this.logger.error(n),this.logger.warn("error validating attestation")}},this.getPublicKey=async()=>this.publicKey?this.publicKey:await this.fetchAndPersistPublicKey(),this.fetchAndPersistPublicKey=async()=>{if(this.fetchPromise)return await this.fetchPromise,this.publicKey;this.fetchPromise=new Promise((async e=>{const t=await this.fetchPublicKey();t&&(await this.persistPublicKey(t),e(t))}));const e=await this.fetchPromise;return this.fetchPromise=void 0,e},this.validateAttestation=(e,t)=>{const r=Rr$1(e,t.publicKey),n={hasExpired:cjs$7.toMiliseconds(r.exp)this.abortController.abort()),cjs$7.toMiliseconds(e))}}class li extends v$5{constructor(e,t){super(e,t),this.projectId=e,this.logger=t,this.context=It,this.registerDeviceToken=async e=>{const{clientId:t,token:r,notificationType:n,enableEncrypted:o=!1}=e,i=`${Tt}/${this.projectId}/clients`;await fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({client_id:t,type:n,token:r,always_raw:o})})},this.logger=E$5(t,this.context)}}var dn=Object.defineProperty,ui=Object.getOwnPropertySymbols,pn=Object.prototype.hasOwnProperty,gn=Object.prototype.propertyIsEnumerable,di=(e,t,r)=>t in e?dn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Z$2=(e,t)=>{for(var r in t||(t={}))pn.call(t,r)&&di(e,r,t[r]);if(ui)for(var r of ui(t))gn.call(t,r)&&di(e,r,t[r]);return e};class pi extends C$5{constructor(e,t,r=!0){super(e,t,r),this.core=e,this.logger=t,this.context=Pt,this.storagePrefix=x$4,this.storageVersion=Ct,this.events=new Map,this.shouldPersist=!1,this.init=async()=>{if(!Wt$1())try{const e={eventId:Ht$1(),timestamp:Date.now(),domain:this.getAppDomain(),props:{event:"INIT",type:"",properties:{client_id:await this.core.crypto.getClientId(),user_agent:Ge(this.core.relayer.protocol,this.core.relayer.version,se)}}};await this.sendEvent([e])}catch(e){this.logger.warn(e)}},this.createEvent=e=>{const{event:t="ERROR",type:r="",properties:{topic:n,trace:o}}=e,i=Ht$1(),s=this.core.projectId||"",a=Date.now(),c=Z$2({eventId:i,timestamp:a,props:{event:t,type:r,properties:{topic:n,trace:o}},bundleId:s,domain:this.getAppDomain()},this.setMethods(i));return this.telemetryEnabled&&(this.events.set(i,c),this.shouldPersist=!0),c},this.getEvent=e=>{const{eventId:t,topic:r}=e;if(t)return this.events.get(t);const n=Array.from(this.events.values()).find((e=>e.props.properties.topic===r));return n?Z$2(Z$2({},n),this.setMethods(n.eventId)):void 0},this.deleteEvent=e=>{const{eventId:t}=e;this.events.delete(t),this.shouldPersist=!0},this.setEventListeners=()=>{this.core.heartbeat.on(r$6.pulse,(async()=>{this.shouldPersist&&await this.persist(),this.events.forEach((e=>{cjs$7.fromMiliseconds(Date.now())-cjs$7.fromMiliseconds(e.timestamp)>St&&(this.events.delete(e.eventId),this.shouldPersist=!0)}))}))},this.setMethods=e=>({addTrace:t=>this.addTrace(e,t),setError:t=>this.setError(e,t)}),this.addTrace=(e,t)=>{const r=this.events.get(e);r&&(r.props.properties.trace.push(t),this.events.set(e,r),this.shouldPersist=!0)},this.setError=(e,t)=>{const r=this.events.get(e);r&&(r.props.type=t,r.timestamp=Date.now(),this.events.set(e,r),this.shouldPersist=!0)},this.persist=async()=>{await this.core.storage.setItem(this.storageKey,Array.from(this.events.values())),this.shouldPersist=!1},this.restore=async()=>{try{const e=await this.core.storage.getItem(this.storageKey)||[];if(!e.length)return;e.forEach((e=>{this.events.set(e.eventId,Z$2(Z$2({},e),this.setMethods(e.eventId)))}))}catch(e){this.logger.warn(e)}},this.submit=async()=>{if(!this.telemetryEnabled||0===this.events.size)return;const e=[];for(const[r,n]of this.events)n.props.type&&e.push(n);if(0!==e.length)try{if((await this.sendEvent(e)).ok)for(const t of e)this.events.delete(t.eventId),this.shouldPersist=!0}catch(t){this.logger.warn(t)}},this.sendEvent=async e=>{const t=this.getAppDomain()?"":"&sp=desktop";return await fetch(`${Rt}?projectId=${this.core.projectId}&st=events_sdk&sv=js-${se}${t}`,{method:"POST",body:JSON.stringify(e)})},this.getAppDomain=()=>Nt$1().url,this.logger=E$5(t,this.context),this.telemetryEnabled=r,r?this.restore().then((async()=>{await this.submit(),this.setEventListeners()})):this.persist()}get storageKey(){return this.storagePrefix+this.storageVersion+this.core.customStoragePrefix+"//"+this.context}}var yn=Object.defineProperty,gi=Object.getOwnPropertySymbols,Dn=Object.prototype.hasOwnProperty,mn=Object.prototype.propertyIsEnumerable,yi=(e,t,r)=>t in e?yn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Di=(e,t)=>{for(var r in t||(t={}))Dn.call(t,r)&&yi(e,r,t[r]);if(gi)for(var r of gi(t))mn.call(t,r)&&yi(e,r,t[r]);return e};class ne extends n$7{constructor(e){var t;super(e),this.protocol=ye$1,this.version=De,this.name=ie,this.events=new eventsExports.EventEmitter,this.initialized=!1,this.on=(e,t)=>this.events.on(e,t),this.once=(e,t)=>this.events.once(e,t),this.off=(e,t)=>this.events.off(e,t),this.removeListener=(e,t)=>this.events.removeListener(e,t),this.dispatchEnvelope=({topic:e,message:t,sessionExists:r})=>{if(!e||!t)return;const n={topic:e,message:t,publishedAt:Date.now(),transportType:M$3.link_mode};this.relayer.onLinkMessageEvent(n,{sessionExists:r})},this.projectId=null==e?void 0:e.projectId,this.relayUrl=(null==e?void 0:e.relayUrl)||be$1,this.customStoragePrefix=null!=e&&e.customStoragePrefix?`:${e.customStoragePrefix}`:"";const r=k$5({level:"string"==typeof(null==e?void 0:e.logger)&&e.logger?e.logger:Ye.logger}),{logger:n,chunkLoggerController:o}=A$5({opts:r,maxSizeInBytes:null==e?void 0:e.maxLogBlobSizeInBytes,loggerOverride:null==e?void 0:e.logger});this.logChunkController=o,null!=(t=this.logChunkController)&&t.downloadLogsBlobInBrowser&&(window.downloadLogsBlobInBrowser=async()=>{var e,t;null!=(e=this.logChunkController)&&e.downloadLogsBlobInBrowser&&(null==(t=this.logChunkController)||t.downloadLogsBlobInBrowser({clientId:await this.crypto.getClientId()}))}),this.logger=E$5(n,this.name),this.heartbeat=new i$7,this.crypto=new Ht(this,this.logger,null==e?void 0:e.keychain),this.history=new ai(this,this.logger),this.expirer=new hi(this,this.logger),this.storage=null!=e&&e.storage?e.storage:new h$7(Di(Di({},Je),null==e?void 0:e.storageOptions)),this.relayer=new ti({core:this,logger:this.logger,relayUrl:this.relayUrl,projectId:this.projectId}),this.pairing=new oi(this,this.logger),this.verify=new ci(this,this.logger,this.storage),this.echoClient=new li(this.projectId||"",this.logger),this.linkModeSupportedApps=[],this.eventClient=new pi(this,this.logger,null==e?void 0:e.telemetryEnabled)}static async init(e){const t=new ne(e);await t.initialize();const r=await t.crypto.getClientId();return await t.storage.setItem(lt$1,r),t}get context(){return y$7(this.logger)}async start(){this.initialized||await this.initialize()}async getLogsBlob(){var e;return null==(e=this.logChunkController)?void 0:e.logsToBlob({clientId:await this.crypto.getClientId()})}async addLinkModeSupportedApp(e){this.linkModeSupportedApps.includes(e)||(this.linkModeSupportedApps.push(e),await this.storage.setItem(fe,this.linkModeSupportedApps))}async initialize(){this.logger.trace("Initialized");try{await this.crypto.init(),await this.history.init(),await this.expirer.init(),await this.relayer.init(),await this.heartbeat.init(),await this.pairing.init(),this.eventClient.init(),this.linkModeSupportedApps=await this.storage.getItem(fe)||[],this.initialized=!0,this.logger.info("Core Initialization Success")}catch(e){throw this.logger.warn(`Core Initialization Failure at epoch ${Date.now()}`,e),this.logger.error(e.message),e}}}const bn=ne,be="wc",Ce=2,Le="client",ye=`${be}@${Ce}:${Le}:`,we={name:Le,logger:"error",controller:!1,relayUrl:"wss://relay.walletconnect.org"},xe="WALLETCONNECT_DEEPLINK_CHOICE",st="proposal",it="Proposal expired",rt="session",z$4=cjs$7.SEVEN_DAYS,nt="engine",v$3={wc_sessionPropose:{req:{ttl:cjs$7.FIVE_MINUTES,prompt:!0,tag:1100},res:{ttl:cjs$7.FIVE_MINUTES,prompt:!1,tag:1101},reject:{ttl:cjs$7.FIVE_MINUTES,prompt:!1,tag:1120},autoReject:{ttl:cjs$7.FIVE_MINUTES,prompt:!1,tag:1121}},wc_sessionSettle:{req:{ttl:cjs$7.FIVE_MINUTES,prompt:!1,tag:1102},res:{ttl:cjs$7.FIVE_MINUTES,prompt:!1,tag:1103}},wc_sessionUpdate:{req:{ttl:cjs$7.ONE_DAY,prompt:!1,tag:1104},res:{ttl:cjs$7.ONE_DAY,prompt:!1,tag:1105}},wc_sessionExtend:{req:{ttl:cjs$7.ONE_DAY,prompt:!1,tag:1106},res:{ttl:cjs$7.ONE_DAY,prompt:!1,tag:1107}},wc_sessionRequest:{req:{ttl:cjs$7.FIVE_MINUTES,prompt:!0,tag:1108},res:{ttl:cjs$7.FIVE_MINUTES,prompt:!1,tag:1109}},wc_sessionEvent:{req:{ttl:cjs$7.FIVE_MINUTES,prompt:!0,tag:1110},res:{ttl:cjs$7.FIVE_MINUTES,prompt:!1,tag:1111}},wc_sessionDelete:{req:{ttl:cjs$7.ONE_DAY,prompt:!1,tag:1112},res:{ttl:cjs$7.ONE_DAY,prompt:!1,tag:1113}},wc_sessionPing:{req:{ttl:cjs$7.ONE_DAY,prompt:!1,tag:1114},res:{ttl:cjs$7.ONE_DAY,prompt:!1,tag:1115}},wc_sessionAuthenticate:{req:{ttl:cjs$7.ONE_HOUR,prompt:!0,tag:1116},res:{ttl:cjs$7.ONE_HOUR,prompt:!1,tag:1117},reject:{ttl:cjs$7.FIVE_MINUTES,prompt:!1,tag:1118},autoReject:{ttl:cjs$7.FIVE_MINUTES,prompt:!1,tag:1119}}},me={min:cjs$7.FIVE_MINUTES,max:cjs$7.SEVEN_DAYS},x$3={idle:"IDLE",active:"ACTIVE"},ot="request",at=["wc_sessionPropose","wc_sessionRequest","wc_authRequest","wc_sessionAuthenticate"],ct="wc",lt="auth",pt$1="authKeys",ht="pairingTopics",dt="requests",oe=`${ct}@1.5:${lt}:`,ae=`${oe}:PUB_KEY`;var ys=Object.defineProperty,ws=Object.defineProperties,ms=Object.getOwnPropertyDescriptors,ut=Object.getOwnPropertySymbols,_s=Object.prototype.hasOwnProperty,Es=Object.prototype.propertyIsEnumerable,gt=(e,t,r)=>t in e?ys(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,I$3=(e,t)=>{for(var r in t||(t={}))_s.call(t,r)&>(e,r,t[r]);if(ut)for(var r of ut(t))Es.call(t,r)&>(e,r,t[r]);return e},D$4=(e,t)=>ws(e,ms(t));class Rs extends M$5{constructor(e){super(e),this.name=nt,this.events=new mi,this.initialized=!1,this.requestQueue={state:x$3.idle,queue:[]},this.sessionRequestQueue={state:x$3.idle,queue:[]},this.requestQueueDelay=cjs$7.ONE_SECOND,this.expectedPairingMethodMap=new Map,this.recentlyDeletedMap=new Map,this.recentlyDeletedLimit=200,this.relayMessageCache=[],this.init=async()=>{this.initialized||(await this.cleanup(),this.registerRelayerEvents(),this.registerExpirerEvents(),this.registerPairingEvents(),await this.registerLinkModeListeners(),this.client.core.pairing.register({methods:Object.keys(v$3)}),this.initialized=!0,setTimeout((()=>{this.sessionRequestQueue.queue=this.getPendingSessionRequests(),this.processSessionRequestQueue()}),cjs$7.toMiliseconds(this.requestQueueDelay)))},this.connect=async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();const t=D$4(I$3({},e),{requiredNamespaces:e.requiredNamespaces||{},optionalNamespaces:e.optionalNamespaces||{}});await this.isValidConnect(t);const{pairingTopic:r,requiredNamespaces:n,optionalNamespaces:o,sessionProperties:i,relays:s}=t;let a,c=r,u=!1;try{c&&(u=this.client.core.pairing.pairings.get(c).active)}catch(b){throw this.client.logger.error(`connect() -> pairing.get(${c}) failed`),b}if(!c||!u){const{topic:e,uri:t}=await this.client.core.pairing.create();c=e,a=t}if(!c){const{message:e}=S$6("NO_MATCHING_KEY",`connect() pairing topic: ${c}`);throw new Error(e)}const l=await this.client.core.crypto.generateKeyPair(),d=v$3.wc_sessionPropose.req.ttl||cjs$7.FIVE_MINUTES,h=Mt$1(d),f=I$3({requiredNamespaces:n,optionalNamespaces:o,relays:s??[{protocol:rt$1}],proposer:{publicKey:l,metadata:this.client.metadata},expiryTimestamp:h,pairingTopic:c},i&&{sessionProperties:i}),{reject:p,resolve:m,done:y}=_t$1(d,it);this.events.once(Lt$1("session_connect"),(async({error:e,session:t})=>{if(e)p(e);else if(t){t.self.publicKey=l;const e=D$4(I$3({},t),{pairingTopic:f.pairingTopic,requiredNamespaces:f.requiredNamespaces,optionalNamespaces:f.optionalNamespaces,transportType:M$3.relay});await this.client.session.set(t.topic,e),await this.setExpiry(t.topic,t.expiry),c&&await this.client.core.pairing.updateMetadata({topic:c,metadata:t.peer.metadata}),this.cleanupDuplicatePairings(e),m(e)}}));const g=await this.sendRequest({topic:c,method:"wc_sessionPropose",params:f,throwOnFailedPublish:!0});return await this.setProposal(g,I$3({id:g},f)),{uri:a,approval:y}},this.pair=async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{return await this.client.core.pairing.pair(e)}catch(t){throw this.client.logger.error("pair() failed"),t}},this.approve=async e=>{var t,r,n;const o=this.client.core.eventClient.createEvent({properties:{topic:null==(t=null==e?void 0:e.id)?void 0:t.toString(),trace:[Is$1.session_approve_started]}});try{this.isInitialized(),await this.confirmOnlineStateOrThrow()}catch($){throw o.setError(Ts$1.no_internet_connection),$}try{await this.isValidProposalId(null==e?void 0:e.id)}catch($){throw this.client.logger.error(`approve() -> proposal.get(${null==e?void 0:e.id}) failed`),o.setError(Ts$1.proposal_not_found),$}try{await this.isValidApprove(e)}catch($){throw this.client.logger.error("approve() -> isValidApprove() failed"),o.setError(Ts$1.session_approve_namespace_validation_failure),$}const{id:i,relayProtocol:s,namespaces:a,sessionProperties:c,sessionConfig:u}=e,l=this.client.proposal.get(i);this.client.core.eventClient.deleteEvent({eventId:o.eventId});const{pairingTopic:d,proposer:h,requiredNamespaces:f,optionalNamespaces:p}=l;let m=null==(r=this.client.core.eventClient)?void 0:r.getEvent({topic:d});m||(m=null==(n=this.client.core.eventClient)?void 0:n.createEvent({type:Is$1.session_approve_started,properties:{topic:d,trace:[Is$1.session_approve_started,Is$1.session_namespaces_validation_success]}}));const y=await this.client.core.crypto.generateKeyPair(),g=h.publicKey,b=await this.client.core.crypto.generateSharedKey(y,g),w=I$3(I$3({relay:{protocol:s??"irn"},namespaces:a,controller:{publicKey:y,metadata:this.client.metadata},expiry:Mt$1(z$4)},c&&{sessionProperties:c}),u&&{sessionConfig:u}),_=M$3.relay;m.addTrace(Is$1.subscribing_session_topic);try{await this.client.core.relayer.subscribe(b,{transportType:_})}catch($){throw m.setError(Ts$1.subscribe_session_topic_failure),$}m.addTrace(Is$1.subscribe_session_topic_success);const v=D$4(I$3({},w),{topic:b,requiredNamespaces:f,optionalNamespaces:p,pairingTopic:d,acknowledged:!1,self:w.controller,peer:{publicKey:h.publicKey,metadata:h.metadata},controller:y,transportType:M$3.relay});await this.client.session.set(b,v),m.addTrace(Is$1.store_session);try{m.addTrace(Is$1.publishing_session_settle),await this.sendRequest({topic:b,method:"wc_sessionSettle",params:w,throwOnFailedPublish:!0}).catch((e=>{throw null==m||m.setError(Ts$1.session_settle_publish_failure),e})),m.addTrace(Is$1.session_settle_publish_success),m.addTrace(Is$1.publishing_session_approve),await this.sendResult({id:i,topic:d,result:{relay:{protocol:s??"irn"},responderPublicKey:y},throwOnFailedPublish:!0}).catch((e=>{throw null==m||m.setError(Ts$1.session_approve_publish_failure),e})),m.addTrace(Is$1.session_approve_publish_success)}catch($){throw this.client.logger.error($),this.client.session.delete(b,U$2("USER_DISCONNECTED")),await this.client.core.relayer.unsubscribe(b),$}return this.client.core.eventClient.deleteEvent({eventId:m.eventId}),await this.client.core.pairing.updateMetadata({topic:d,metadata:h.metadata}),await this.client.proposal.delete(i,U$2("USER_DISCONNECTED")),await this.client.core.pairing.activate({topic:d}),await this.setExpiry(b,Mt$1(z$4)),{topic:b,acknowledged:()=>Promise.resolve(this.client.session.get(b))}},this.reject=async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidReject(e)}catch(o){throw this.client.logger.error("reject() -> isValidReject() failed"),o}const{id:t,reason:r}=e;let n;try{n=this.client.proposal.get(t).pairingTopic}catch(o){throw this.client.logger.error(`reject() -> proposal.get(${t}) failed`),o}n&&(await this.sendError({id:t,topic:n,error:r,rpcOpts:v$3.wc_sessionPropose.reject}),await this.client.proposal.delete(t,U$2("USER_DISCONNECTED")))},this.update=async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidUpdate(e)}catch(u){throw this.client.logger.error("update() -> isValidUpdate() failed"),u}const{topic:t,namespaces:r}=e,{done:n,resolve:o,reject:i}=_t$1(),s=payloadId(),a=getBigIntRpcId().toString(),c=this.client.session.get(t).namespaces;return this.events.once(Lt$1("session_update",s),(({error:e})=>{e?i(e):o()})),await this.client.session.update(t,{namespaces:r}),await this.sendRequest({topic:t,method:"wc_sessionUpdate",params:{namespaces:r},throwOnFailedPublish:!0,clientRpcId:s,relayRpcId:a}).catch((e=>{this.client.logger.error(e),this.client.session.update(t,{namespaces:c}),i(e)})),{acknowledged:n}},this.extend=async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidExtend(e)}catch(s){throw this.client.logger.error("extend() -> isValidExtend() failed"),s}const{topic:t}=e,r=payloadId(),{done:n,resolve:o,reject:i}=_t$1();return this.events.once(Lt$1("session_extend",r),(({error:e})=>{e?i(e):o()})),await this.setExpiry(t,Mt$1(z$4)),this.sendRequest({topic:t,method:"wc_sessionExtend",params:{},clientRpcId:r,throwOnFailedPublish:!0}).catch((e=>{i(e)})),{acknowledged:n}},this.request=async e=>{this.isInitialized();try{await this.isValidRequest(e)}catch(h){throw this.client.logger.error("request() -> isValidRequest() failed"),h}const{chainId:t,request:r,topic:n,expiry:o=v$3.wc_sessionRequest.req.ttl}=e,i=this.client.session.get(n);(null==i?void 0:i.transportType)===M$3.relay&&await this.confirmOnlineStateOrThrow();const s=payloadId(),a=getBigIntRpcId().toString(),{done:c,resolve:u,reject:l}=_t$1(o,"Request expired. Please try again.");this.events.once(Lt$1("session_request",s),(({error:e,result:t})=>{e?l(e):u(t)}));const d=this.getAppLinkIfEnabled(i.peer.metadata,i.transportType);return d?(await this.sendRequest({clientRpcId:s,relayRpcId:a,topic:n,method:"wc_sessionRequest",params:{request:D$4(I$3({},r),{expiryTimestamp:Mt$1(o)}),chainId:t},expiry:o,throwOnFailedPublish:!0,appLink:d}).catch((e=>l(e))),this.client.events.emit("session_request_sent",{topic:n,request:r,chainId:t,id:s}),await c()):await Promise.all([new Promise((async e=>{await this.sendRequest({clientRpcId:s,relayRpcId:a,topic:n,method:"wc_sessionRequest",params:{request:D$4(I$3({},r),{expiryTimestamp:Mt$1(o)}),chainId:t},expiry:o,throwOnFailedPublish:!0}).catch((e=>l(e))),this.client.events.emit("session_request_sent",{topic:n,request:r,chainId:t,id:s}),e()})),new Promise((async e=>{var t;if(null==(t=i.sessionConfig)||!t.disableDeepLink){const e=await qt$1(this.client.core.storage,xe);await Ft$1({id:s,topic:n,wcDeepLink:e})}e()})),c()]).then((e=>e[2]))},this.respond=async e=>{this.isInitialized(),await this.isValidRespond(e);const{topic:t,response:r}=e,{id:n}=r,o=this.client.session.get(t);o.transportType===M$3.relay&&await this.confirmOnlineStateOrThrow();const i=this.getAppLinkIfEnabled(o.peer.metadata,o.transportType);isJsonRpcResult(r)?await this.sendResult({id:n,topic:t,result:r.result,throwOnFailedPublish:!0,appLink:i}):isJsonRpcError(r)&&await this.sendError({id:n,topic:t,error:r.error,appLink:i}),this.cleanupAfterResponse(e)},this.ping=async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidPing(e)}catch(r){throw this.client.logger.error("ping() -> isValidPing() failed"),r}const{topic:t}=e;if(this.client.session.keys.includes(t)){const e=payloadId(),r=getBigIntRpcId().toString(),{done:n,resolve:o,reject:i}=_t$1();this.events.once(Lt$1("session_ping",e),(({error:e})=>{e?i(e):o()})),await Promise.all([this.sendRequest({topic:t,method:"wc_sessionPing",params:{},throwOnFailedPublish:!0,clientRpcId:e,relayRpcId:r}),n()])}else this.client.core.pairing.pairings.keys.includes(t)&&await this.client.core.pairing.ping({topic:t})},this.emit=async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow(),await this.isValidEmit(e);const{topic:t,event:r,chainId:n}=e,o=getBigIntRpcId().toString();await this.sendRequest({topic:t,method:"wc_sessionEvent",params:{event:r,chainId:n},throwOnFailedPublish:!0,relayRpcId:o})},this.disconnect=async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow(),await this.isValidDisconnect(e);const{topic:t}=e;if(this.client.session.keys.includes(t))await this.sendRequest({topic:t,method:"wc_sessionDelete",params:U$2("USER_DISCONNECTED"),throwOnFailedPublish:!0}),await this.deleteSession({topic:t,emitEvent:!1});else{if(!this.client.core.pairing.pairings.keys.includes(t)){const{message:e}=S$6("MISMATCHED_TOPIC",`Session or pairing topic not found: ${t}`);throw new Error(e)}await this.client.core.pairing.disconnect({topic:t})}},this.find=e=>(this.isInitialized(),this.client.session.getAll().filter((t=>zr$1(t,e)))),this.getPendingSessionRequests=()=>this.client.pendingRequest.getAll(),this.authenticate=async(e,t)=>{var r;this.isInitialized(),this.isValidAuthenticate(e);const n=t&&this.client.core.linkModeSupportedApps.includes(t)&&(null==(r=this.client.metadata.redirect)?void 0:r.linkMode),o=n?M$3.link_mode:M$3.relay;o===M$3.relay&&await this.confirmOnlineStateOrThrow();const{chains:i,statement:s="",uri:a,domain:c,nonce:u,type:l,exp:d,nbf:h,methods:f=[],expiry:p}=e,m=[...e.resources||[]],{topic:y,uri:g}=await this.client.core.pairing.create({methods:["wc_sessionAuthenticate"],transportType:o});this.client.logger.info({message:"Generated new pairing",pairing:{topic:y,uri:g}});const b=await this.client.core.crypto.generateKeyPair(),w=hr$1(b);if(await Promise.all([this.client.auth.authKeys.set(ae,{responseTopic:w,publicKey:b}),this.client.auth.pairingTopics.set(w,{topic:w,pairingTopic:y})]),await this.client.core.relayer.subscribe(w,{transportType:o}),this.client.logger.info(`sending request to new pairing topic: ${y}`),f.length>0){const{namespace:e}=re$1(i[0]);let t=ir$1(e,"request",f);Y$1(m)&&(t=cr$1(t,m.pop())),m.push(t)}const _=p&&p>v$3.wc_sessionAuthenticate.req.ttl?p:v$3.wc_sessionAuthenticate.req.ttl,v={authPayload:{type:l??"caip122",chains:i,statement:s,aud:a,domain:c,version:"1",nonce:u,iat:(new Date).toISOString(),exp:d,nbf:h,resources:m},requester:{publicKey:b,metadata:this.client.metadata},expiryTimestamp:Mt$1(_)},$={requiredNamespaces:{},optionalNamespaces:{eip155:{chains:i,methods:[...new Set(["personal_sign",...f])],events:["chainChanged","accountsChanged"]}},relays:[{protocol:"irn"}],pairingTopic:y,proposer:{publicKey:b,metadata:this.client.metadata},expiryTimestamp:Mt$1(v$3.wc_sessionPropose.req.ttl)},{done:I,resolve:k,reject:A}=_t$1(_,"Request expired"),S=async({error:e,session:t})=>{if(this.events.off(Lt$1("session_request",T),E),e)A(e);else if(t){t.self.publicKey=b,await this.client.session.set(t.topic,t),await this.setExpiry(t.topic,t.expiry),y&&await this.client.core.pairing.updateMetadata({topic:y,metadata:t.peer.metadata});const e=this.client.session.get(t.topic);await this.deleteProposal(P),k({session:e})}},E=async e=>{var r,n,i;if(await this.deletePendingAuthRequest(T,{message:"fulfilled",code:0}),e.error){const t=U$2("WC_METHOD_UNSUPPORTED","wc_sessionAuthenticate");return e.error.code===t.code?void 0:(this.events.off(Lt$1("session_connect"),S),A(e.error.message))}await this.deleteProposal(P),this.events.off(Lt$1("session_connect"),S);const{cacaos:s,responder:a}=e.result,c=[],u=[];for(const t of s){await nr$1({cacao:t,projectId:this.client.core.projectId})||(this.client.logger.error(t,"Signature verification failed"),A(U$2("SESSION_SETTLEMENT_FAILED","Signature verification failed")));const{p:e}=t,r=Y$1(e.resources),n=[ln$1(e.iss)],o=fe$1(e.iss);if(r){const e=ar$1(r),t=ur$1(r);c.push(...e),n.push(...t)}for(const t of n)u.push(`${t}:${o}`)}const l=await this.client.core.crypto.generateSharedKey(b,a.publicKey);let d;c.length>0&&(d={topic:l,acknowledged:!0,self:{publicKey:b,metadata:this.client.metadata},peer:a,controller:a.publicKey,expiry:Mt$1(z$4),requiredNamespaces:{},optionalNamespaces:{},relay:{protocol:"irn"},pairingTopic:y,namespaces:Jr$1([...new Set(c)],[...new Set(u)]),transportType:o},await this.client.core.relayer.subscribe(l,{transportType:o}),await this.client.session.set(l,d),y&&await this.client.core.pairing.updateMetadata({topic:y,metadata:a.metadata}),d=this.client.session.get(l)),null!=(r=this.client.metadata.redirect)&&r.linkMode&&null!=(n=a.metadata.redirect)&&n.linkMode&&null!=(i=a.metadata.redirect)&&i.universal&&t&&(this.client.core.addLinkModeSupportedApp(a.metadata.redirect.universal),this.client.session.update(l,{transportType:M$3.link_mode})),k({auths:s,session:d})},T=payloadId(),P=payloadId();let R;this.events.once(Lt$1("session_connect"),S),this.events.once(Lt$1("session_request",T),E);try{if(n){const e=formatJsonRpcRequest("wc_sessionAuthenticate",v,T);this.client.core.history.set(y,e);const r=await this.client.core.crypto.encode("",e,{type:M$4,encoding:lr$1});R=xr$1(t,y,r)}else await Promise.all([this.sendRequest({topic:y,method:"wc_sessionAuthenticate",params:v,expiry:e.expiry,throwOnFailedPublish:!0,clientRpcId:T}),this.sendRequest({topic:y,method:"wc_sessionPropose",params:$,expiry:v$3.wc_sessionPropose.req.ttl,throwOnFailedPublish:!0,clientRpcId:P})])}catch(C){throw this.events.off(Lt$1("session_connect"),S),this.events.off(Lt$1("session_request",T),E),C}return await this.setProposal(P,I$3({id:P},$)),await this.setAuthRequest(T,{request:D$4(I$3({},v),{verifyContext:{}}),pairingTopic:y,transportType:o}),{uri:R??g,response:I}},this.approveSessionAuthenticate=async e=>{const{id:t,auths:r}=e,n=this.client.core.eventClient.createEvent({properties:{topic:t.toString(),trace:[Cs.authenticated_session_approve_started]}});try{this.isInitialized()}catch(p){throw n.setError(Ps.no_internet_connection),p}const o=this.getPendingAuthRequest(t);if(!o)throw n.setError(Ps.authenticated_session_pending_request_not_found),new Error(`Could not find pending auth request with id ${t}`);const i=o.transportType||M$3.relay;i===M$3.relay&&await this.confirmOnlineStateOrThrow();const s=o.requester.publicKey,a=await this.client.core.crypto.generateKeyPair(),c=hr$1(s),u={type:D$5,receiverPublicKey:s,senderPublicKey:a},l=[],d=[];for(const m of r){if(!(await nr$1({cacao:m,projectId:this.client.core.projectId}))){n.setError(Ps.invalid_cacao);const e=U$2("SESSION_SETTLEMENT_FAILED","Signature verification failed");throw await this.sendError({id:t,topic:c,error:e,encodeOpts:u}),new Error(e.message)}n.addTrace(Cs.cacaos_verified);const{p:e}=m,r=Y$1(e.resources),o=[ln$1(e.iss)],i=fe$1(e.iss);if(r){const e=ar$1(r),t=ur$1(r);l.push(...e),o.push(...t)}for(const t of o)d.push(`${t}:${i}`)}const h=await this.client.core.crypto.generateSharedKey(a,s);let f;if(n.addTrace(Cs.create_authenticated_session_topic),(null==l?void 0:l.length)>0){f={topic:h,acknowledged:!0,self:{publicKey:a,metadata:this.client.metadata},peer:{publicKey:s,metadata:o.requester.metadata},controller:s,expiry:Mt$1(z$4),authentication:r,requiredNamespaces:{},optionalNamespaces:{},relay:{protocol:"irn"},pairingTopic:o.pairingTopic,namespaces:Jr$1([...new Set(l)],[...new Set(d)]),transportType:i},n.addTrace(Cs.subscribing_authenticated_session_topic);try{await this.client.core.relayer.subscribe(h,{transportType:i})}catch(p){throw n.setError(Ps.subscribe_authenticated_session_topic_failure),p}n.addTrace(Cs.subscribe_authenticated_session_topic_success),await this.client.session.set(h,f),n.addTrace(Cs.store_authenticated_session),await this.client.core.pairing.updateMetadata({topic:o.pairingTopic,metadata:o.requester.metadata})}n.addTrace(Cs.publishing_authenticated_session_approve);try{await this.sendResult({topic:c,id:t,result:{cacaos:r,responder:{publicKey:a,metadata:this.client.metadata}},encodeOpts:u,throwOnFailedPublish:!0,appLink:this.getAppLinkIfEnabled(o.requester.metadata,i)})}catch(p){throw n.setError(Ps.authenticated_session_approve_publish_failure),p}return await this.client.auth.requests.delete(t,{message:"fulfilled",code:0}),await this.client.core.pairing.activate({topic:o.pairingTopic}),this.client.core.eventClient.deleteEvent({eventId:n.eventId}),{session:f}},this.rejectSessionAuthenticate=async e=>{this.isInitialized();const{id:t,reason:r}=e,n=this.getPendingAuthRequest(t);if(!n)throw new Error(`Could not find pending auth request with id ${t}`);n.transportType===M$3.relay&&await this.confirmOnlineStateOrThrow();const o=n.requester.publicKey,i=await this.client.core.crypto.generateKeyPair(),s=hr$1(o),a={type:D$5,receiverPublicKey:o,senderPublicKey:i};await this.sendError({id:t,topic:s,error:r,encodeOpts:a,rpcOpts:v$3.wc_sessionAuthenticate.reject,appLink:this.getAppLinkIfEnabled(n.requester.metadata,n.transportType)}),await this.client.auth.requests.delete(t,{message:"rejected",code:0}),await this.client.proposal.delete(t,U$2("USER_DISCONNECTED"))},this.formatAuthMessage=e=>{this.isInitialized();const{request:t,iss:r}=e;return dn$1(t,r)},this.processRelayMessageCache=()=>{setTimeout((async()=>{if(0!==this.relayMessageCache.length)for(;this.relayMessageCache.length>0;)try{const e=this.relayMessageCache.shift();e&&await this.onRelayMessage(e)}catch(e){this.client.logger.error(e)}}),50)},this.cleanupDuplicatePairings=async e=>{if(e.pairingTopic)try{const t=this.client.core.pairing.pairings.get(e.pairingTopic),r=this.client.core.pairing.pairings.getAll().filter((r=>{var n,o;return(null==(n=r.peerMetadata)?void 0:n.url)&&(null==(o=r.peerMetadata)?void 0:o.url)===e.peer.metadata.url&&r.topic&&r.topic!==t.topic}));if(0===r.length)return;this.client.logger.info(`Cleaning up ${r.length} duplicate pairing(s)`),await Promise.all(r.map((e=>this.client.core.pairing.disconnect({topic:e.topic})))),this.client.logger.info("Duplicate pairings clean up finished")}catch(t){this.client.logger.error(t)}},this.deleteSession=async e=>{var t;const{topic:r,expirerHasDeleted:n=!1,emitEvent:o=!0,id:i=0}=e,{self:s}=this.client.session.get(r);await this.client.core.relayer.unsubscribe(r),await this.client.session.delete(r,U$2("USER_DISCONNECTED")),this.addToRecentlyDeleted(r,"session"),this.client.core.crypto.keychain.has(s.publicKey)&&await this.client.core.crypto.deleteKeyPair(s.publicKey),this.client.core.crypto.keychain.has(r)&&await this.client.core.crypto.deleteSymKey(r),n||this.client.core.expirer.del(r),this.client.core.storage.removeItem(xe).catch((e=>this.client.logger.warn(e))),this.getPendingSessionRequests().forEach((e=>{e.topic===r&&this.deletePendingSessionRequest(e.id,U$2("USER_DISCONNECTED"))})),r===(null==(t=this.sessionRequestQueue.queue[0])?void 0:t.topic)&&(this.sessionRequestQueue.state=x$3.idle),o&&this.client.events.emit("session_delete",{id:i,topic:r})},this.deleteProposal=async(e,t)=>{if(t)try{const t=this.client.proposal.get(e),r=this.client.core.eventClient.getEvent({topic:t.pairingTopic});null==r||r.setError(Ts$1.proposal_expired)}catch{}await Promise.all([this.client.proposal.delete(e,U$2("USER_DISCONNECTED")),t?Promise.resolve():this.client.core.expirer.del(e)]),this.addToRecentlyDeleted(e,"proposal")},this.deletePendingSessionRequest=async(e,t,r=!1)=>{await Promise.all([this.client.pendingRequest.delete(e,t),r?Promise.resolve():this.client.core.expirer.del(e)]),this.addToRecentlyDeleted(e,"request"),this.sessionRequestQueue.queue=this.sessionRequestQueue.queue.filter((t=>t.id!==e)),r&&(this.sessionRequestQueue.state=x$3.idle,this.client.events.emit("session_request_expire",{id:e}))},this.deletePendingAuthRequest=async(e,t,r=!1)=>{await Promise.all([this.client.auth.requests.delete(e,t),r?Promise.resolve():this.client.core.expirer.del(e)])},this.setExpiry=async(e,t)=>{this.client.session.keys.includes(e)&&(this.client.core.expirer.set(e,t),await this.client.session.update(e,{expiry:t}))},this.setProposal=async(e,t)=>{this.client.core.expirer.set(e,Mt$1(v$3.wc_sessionPropose.req.ttl)),await this.client.proposal.set(e,t)},this.setAuthRequest=async(e,t)=>{const{request:r,pairingTopic:n,transportType:o=M$3.relay}=t;this.client.core.expirer.set(e,r.expiryTimestamp),await this.client.auth.requests.set(e,{authPayload:r.authPayload,requester:r.requester,expiryTimestamp:r.expiryTimestamp,id:e,pairingTopic:n,verifyContext:r.verifyContext,transportType:o})},this.setPendingSessionRequest=async e=>{const{id:t,topic:r,params:n,verifyContext:o}=e,i=n.request.expiryTimestamp||Mt$1(v$3.wc_sessionRequest.req.ttl);this.client.core.expirer.set(t,i),await this.client.pendingRequest.set(t,{id:t,topic:r,params:n,verifyContext:o})},this.sendRequest=async e=>{const{topic:t,method:r,params:n,expiry:o,relayRpcId:i,clientRpcId:s,throwOnFailedPublish:a,appLink:c}=e,u=formatJsonRpcRequest(r,n,s);let l;const d=!!c;try{const e=d?lr$1:ge;l=await this.client.core.crypto.encode(t,u,{encoding:e})}catch(p){throw await this.cleanup(),this.client.logger.error(`sendRequest() -> core.crypto.encode() for topic ${t} failed`),p}let h;if(at.includes(r)){const e=yr$1(JSON.stringify(u)),t=yr$1(l);h=await this.client.core.verify.register({id:t,decryptedId:e})}const f=v$3[r].req;if(f.attestation=h,o&&(f.ttl=o),i&&(f.id=i),this.client.core.history.set(t,u),d){const e=xr$1(c,t,l);await global$1.Linking.openURL(e,this.client.name)}else{const e=v$3[r].req;o&&(e.ttl=o),i&&(e.id=i),a?(e.internal=D$4(I$3({},e.internal),{throwOnFailedPublish:!0}),await this.client.core.relayer.publish(t,l,e)):this.client.core.relayer.publish(t,l,e).catch((e=>this.client.logger.error(e)))}return u.id},this.sendResult=async e=>{const{id:t,topic:r,result:n,throwOnFailedPublish:o,encodeOpts:i,appLink:s}=e,a=formatJsonRpcResult(t,n);let c;const u=s&&typeof(null==global$1?void 0:global$1.Linking)<"u";try{const e=u?lr$1:ge;c=await this.client.core.crypto.encode(r,a,D$4(I$3({},i||{}),{encoding:e}))}catch(d){throw await this.cleanup(),this.client.logger.error(`sendResult() -> core.crypto.encode() for topic ${r} failed`),d}let l;try{l=await this.client.core.history.get(r,t)}catch(d){throw this.client.logger.error(`sendResult() -> history.get(${r}, ${t}) failed`),d}if(u){const e=xr$1(s,r,c);await global$1.Linking.openURL(e,this.client.name)}else{const e=v$3[l.request.method].res;o?(e.internal=D$4(I$3({},e.internal),{throwOnFailedPublish:!0}),await this.client.core.relayer.publish(r,c,e)):this.client.core.relayer.publish(r,c,e).catch((e=>this.client.logger.error(e)))}await this.client.core.history.resolve(a)},this.sendError=async e=>{const{id:t,topic:r,error:n,encodeOpts:o,rpcOpts:i,appLink:s}=e,a=formatJsonRpcError(t,n);let c;const u=s&&typeof(null==global$1?void 0:global$1.Linking)<"u";try{const e=u?lr$1:ge;c=await this.client.core.crypto.encode(r,a,D$4(I$3({},o||{}),{encoding:e}))}catch(d){throw await this.cleanup(),this.client.logger.error(`sendError() -> core.crypto.encode() for topic ${r} failed`),d}let l;try{l=await this.client.core.history.get(r,t)}catch(d){throw this.client.logger.error(`sendError() -> history.get(${r}, ${t}) failed`),d}if(u){const e=xr$1(s,r,c);await global$1.Linking.openURL(e,this.client.name)}else{const e=i||v$3[l.request.method].res;this.client.core.relayer.publish(r,c,e)}await this.client.core.history.resolve(a)},this.cleanup=async()=>{const e=[],t=[];this.client.session.getAll().forEach((t=>{let r=!1;Kt$1(t.expiry)&&(r=!0),this.client.core.crypto.keychain.has(t.topic)||(r=!0),r&&e.push(t.topic)})),this.client.proposal.getAll().forEach((e=>{Kt$1(e.expiryTimestamp)&&t.push(e.id)})),await Promise.all([...e.map((e=>this.deleteSession({topic:e}))),...t.map((e=>this.deleteProposal(e)))])},this.onRelayEventRequest=async e=>{this.requestQueue.queue.push(e),await this.processRequestsQueue()},this.processRequestsQueue=async()=>{if(this.requestQueue.state!==x$3.active){for(this.client.logger.info(`Request queue starting with ${this.requestQueue.queue.length} requests`);this.requestQueue.queue.length>0;){this.requestQueue.state=x$3.active;const t=this.requestQueue.queue.shift();if(t)try{await this.processRequest(t)}catch(e){this.client.logger.warn(e)}}this.requestQueue.state=x$3.idle}else this.client.logger.info("Request queue already active, skipping...")},this.processRequest=async e=>{const{topic:t,payload:r,attestation:n,transportType:o,encryptedId:i}=e,s=r.method;if(!this.shouldIgnorePairingRequest({topic:t,requestMethod:s}))switch(s){case"wc_sessionPropose":return await this.onSessionProposeRequest({topic:t,payload:r,attestation:n,encryptedId:i});case"wc_sessionSettle":return await this.onSessionSettleRequest(t,r);case"wc_sessionUpdate":return await this.onSessionUpdateRequest(t,r);case"wc_sessionExtend":return await this.onSessionExtendRequest(t,r);case"wc_sessionPing":return await this.onSessionPingRequest(t,r);case"wc_sessionDelete":return await this.onSessionDeleteRequest(t,r);case"wc_sessionRequest":return await this.onSessionRequest({topic:t,payload:r,attestation:n,encryptedId:i,transportType:o});case"wc_sessionEvent":return await this.onSessionEventRequest(t,r);case"wc_sessionAuthenticate":return await this.onSessionAuthenticateRequest({topic:t,payload:r,attestation:n,encryptedId:i,transportType:o});default:return this.client.logger.info(`Unsupported request method ${s}`)}},this.onRelayEventResponse=async e=>{const{topic:t,payload:r,transportType:n}=e,o=(await this.client.core.history.get(t,r.id)).request.method;switch(o){case"wc_sessionPropose":return this.onSessionProposeResponse(t,r,n);case"wc_sessionSettle":return this.onSessionSettleResponse(t,r);case"wc_sessionUpdate":return this.onSessionUpdateResponse(t,r);case"wc_sessionExtend":return this.onSessionExtendResponse(t,r);case"wc_sessionPing":return this.onSessionPingResponse(t,r);case"wc_sessionRequest":return this.onSessionRequestResponse(t,r);case"wc_sessionAuthenticate":return this.onSessionAuthenticateResponse(t,r);default:return this.client.logger.info(`Unsupported response method ${o}`)}},this.onRelayEventUnknownPayload=e=>{const{topic:t}=e,{message:r}=S$6("MISSING_OR_INVALID",`Decoded payload on topic ${t} is not identifiable as a JSON-RPC request or a response.`);throw new Error(r)},this.shouldIgnorePairingRequest=e=>{const{topic:t,requestMethod:r}=e,n=this.expectedPairingMethodMap.get(t);return!(!n||n.includes(r))&&!!(n.includes("wc_sessionAuthenticate")&&this.client.events.listenerCount("session_authenticate")>0)},this.onSessionProposeRequest=async e=>{const{topic:t,payload:r,attestation:n,encryptedId:o}=e,{params:i,id:s}=r;try{const e=this.client.core.eventClient.getEvent({topic:t});this.isValidConnect(I$3({},r.params));const a=i.expiryTimestamp||Mt$1(v$3.wc_sessionPropose.req.ttl),c=I$3({id:s,pairingTopic:t,expiryTimestamp:a},i);await this.setProposal(s,c);const u=await this.getVerifyContext({attestationId:n,hash:yr$1(JSON.stringify(r)),encryptedId:o,metadata:c.proposer.metadata});0===this.client.events.listenerCount("session_proposal")&&(console.warn("No listener for session_proposal event"),null==e||e.setError($$3.proposal_listener_not_found)),null==e||e.addTrace(z$5.emit_session_proposal),this.client.events.emit("session_proposal",{id:s,params:c,verifyContext:u})}catch(a){await this.sendError({id:s,topic:t,error:a,rpcOpts:v$3.wc_sessionPropose.autoReject}),this.client.logger.error(a)}},this.onSessionProposeResponse=async(e,t,r)=>{const{id:n}=t;if(isJsonRpcResult(t)){const{result:o}=t;this.client.logger.trace({type:"method",method:"onSessionProposeResponse",result:o});const i=this.client.proposal.get(n);this.client.logger.trace({type:"method",method:"onSessionProposeResponse",proposal:i});const s=i.proposer.publicKey;this.client.logger.trace({type:"method",method:"onSessionProposeResponse",selfPublicKey:s});const a=o.responderPublicKey;this.client.logger.trace({type:"method",method:"onSessionProposeResponse",peerPublicKey:a});const c=await this.client.core.crypto.generateSharedKey(s,a);this.client.logger.trace({type:"method",method:"onSessionProposeResponse",sessionTopic:c});const u=await this.client.core.relayer.subscribe(c,{transportType:r});this.client.logger.trace({type:"method",method:"onSessionProposeResponse",subscriptionId:u}),await this.client.core.pairing.activate({topic:e})}else if(isJsonRpcError(t)){await this.client.proposal.delete(n,U$2("USER_DISCONNECTED"));const e=Lt$1("session_connect");if(0===this.events.listenerCount(e))throw new Error(`emitting ${e} without any listeners, 954`);this.events.emit(Lt$1("session_connect"),{error:t.error})}},this.onSessionSettleRequest=async(e,t)=>{const{id:r,params:n}=t;try{this.isValidSessionSettleRequest(n);const{relay:r,controller:o,expiry:i,namespaces:s,sessionProperties:a,sessionConfig:c}=t.params,u=D$4(I$3(I$3({topic:e,relay:r,expiry:i,namespaces:s,acknowledged:!0,pairingTopic:"",requiredNamespaces:{},optionalNamespaces:{},controller:o.publicKey,self:{publicKey:"",metadata:this.client.metadata},peer:{publicKey:o.publicKey,metadata:o.metadata}},a&&{sessionProperties:a}),c&&{sessionConfig:c}),{transportType:M$3.relay}),l=Lt$1("session_connect");if(0===this.events.listenerCount(l))throw new Error(`emitting ${l} without any listeners 997`);this.events.emit(Lt$1("session_connect"),{session:u}),await this.sendResult({id:t.id,topic:e,result:!0,throwOnFailedPublish:!0})}catch(o){await this.sendError({id:r,topic:e,error:o}),this.client.logger.error(o)}},this.onSessionSettleResponse=async(e,t)=>{const{id:r}=t;isJsonRpcResult(t)?(await this.client.session.update(e,{acknowledged:!0}),this.events.emit(Lt$1("session_approve",r),{})):isJsonRpcError(t)&&(await this.client.session.delete(e,U$2("USER_DISCONNECTED")),this.events.emit(Lt$1("session_approve",r),{error:t.error}))},this.onSessionUpdateRequest=async(e,t)=>{const{params:r,id:n}=t;try{const t=`${e}_session_update`,i=yo.get(t);if(i&&this.isRequestOutOfSync(i,n))return this.client.logger.info(`Discarding out of sync request - ${n}`),void this.sendError({id:n,topic:e,error:U$2("INVALID_UPDATE_REQUEST")});this.isValidUpdate(I$3({topic:e},r));try{yo.set(t,n),await this.client.session.update(e,{namespaces:r.namespaces}),await this.sendResult({id:n,topic:e,result:!0,throwOnFailedPublish:!0})}catch(o){throw yo.delete(t),o}this.client.events.emit("session_update",{id:n,topic:e,params:r})}catch(i){await this.sendError({id:n,topic:e,error:i}),this.client.logger.error(i)}},this.isRequestOutOfSync=(e,t)=>parseInt(t.toString().slice(0,-3))<=parseInt(e.toString().slice(0,-3)),this.onSessionUpdateResponse=(e,t)=>{const{id:r}=t,n=Lt$1("session_update",r);if(0===this.events.listenerCount(n))throw new Error(`emitting ${n} without any listeners`);isJsonRpcResult(t)?this.events.emit(Lt$1("session_update",r),{}):isJsonRpcError(t)&&this.events.emit(Lt$1("session_update",r),{error:t.error})},this.onSessionExtendRequest=async(e,t)=>{const{id:r}=t;try{this.isValidExtend({topic:e}),await this.setExpiry(e,Mt$1(z$4)),await this.sendResult({id:r,topic:e,result:!0,throwOnFailedPublish:!0}),this.client.events.emit("session_extend",{id:r,topic:e})}catch(n){await this.sendError({id:r,topic:e,error:n}),this.client.logger.error(n)}},this.onSessionExtendResponse=(e,t)=>{const{id:r}=t,n=Lt$1("session_extend",r);if(0===this.events.listenerCount(n))throw new Error(`emitting ${n} without any listeners`);isJsonRpcResult(t)?this.events.emit(Lt$1("session_extend",r),{}):isJsonRpcError(t)&&this.events.emit(Lt$1("session_extend",r),{error:t.error})},this.onSessionPingRequest=async(e,t)=>{const{id:r}=t;try{this.isValidPing({topic:e}),await this.sendResult({id:r,topic:e,result:!0,throwOnFailedPublish:!0}),this.client.events.emit("session_ping",{id:r,topic:e})}catch(n){await this.sendError({id:r,topic:e,error:n}),this.client.logger.error(n)}},this.onSessionPingResponse=(e,t)=>{const{id:r}=t,n=Lt$1("session_ping",r);if(0===this.events.listenerCount(n))throw new Error(`emitting ${n} without any listeners`);setTimeout((()=>{isJsonRpcResult(t)?this.events.emit(Lt$1("session_ping",r),{}):isJsonRpcError(t)&&this.events.emit(Lt$1("session_ping",r),{error:t.error})}),500)},this.onSessionDeleteRequest=async(e,t)=>{const{id:r}=t;try{this.isValidDisconnect({topic:e,reason:t.params}),Promise.all([new Promise((t=>{this.client.core.relayer.once(v$4.publish,(async()=>{t(await this.deleteSession({topic:e,id:r}))}))})),this.sendResult({id:r,topic:e,result:!0,throwOnFailedPublish:!0}),this.cleanupPendingSentRequestsForTopic({topic:e,error:U$2("USER_DISCONNECTED")})]).catch((e=>this.client.logger.error(e)))}catch(n){this.client.logger.error(n)}},this.onSessionRequest=async e=>{var t,r,n;const{topic:o,payload:i,attestation:s,encryptedId:a,transportType:c}=e,{id:u,params:l}=i;try{await this.isValidRequest(I$3({topic:o},l));const e=this.client.session.get(o),i={id:u,topic:o,params:l,verifyContext:await this.getVerifyContext({attestationId:s,hash:yr$1(JSON.stringify(formatJsonRpcRequest("wc_sessionRequest",l,u))),encryptedId:a,metadata:e.peer.metadata,transportType:c})};await this.setPendingSessionRequest(i),c===M$3.link_mode&&null!=(t=e.peer.metadata.redirect)&&t.universal&&this.client.core.addLinkModeSupportedApp(null==(r=e.peer.metadata.redirect)?void 0:r.universal),null!=(n=this.client.signConfig)&&n.disableRequestQueue?this.emitSessionRequest(i):(this.addSessionRequestToSessionRequestQueue(i),this.processSessionRequestQueue())}catch(d){await this.sendError({id:u,topic:o,error:d}),this.client.logger.error(d)}},this.onSessionRequestResponse=(e,t)=>{const{id:r}=t,n=Lt$1("session_request",r);if(0===this.events.listenerCount(n))throw new Error(`emitting ${n} without any listeners`);isJsonRpcResult(t)?this.events.emit(Lt$1("session_request",r),{result:t.result}):isJsonRpcError(t)&&this.events.emit(Lt$1("session_request",r),{error:t.error})},this.onSessionEventRequest=async(e,t)=>{const{id:r,params:n}=t;try{const t=`${e}_session_event_${n.event.name}`,o=yo.get(t);if(o&&this.isRequestOutOfSync(o,r))return void this.client.logger.info(`Discarding out of sync request - ${r}`);this.isValidEmit(I$3({topic:e},n)),this.client.events.emit("session_event",{id:r,topic:e,params:n}),yo.set(t,r)}catch(o){await this.sendError({id:r,topic:e,error:o}),this.client.logger.error(o)}},this.onSessionAuthenticateResponse=(e,t)=>{const{id:r}=t;this.client.logger.trace({type:"method",method:"onSessionAuthenticateResponse",topic:e,payload:t}),isJsonRpcResult(t)?this.events.emit(Lt$1("session_request",r),{result:t.result}):isJsonRpcError(t)&&this.events.emit(Lt$1("session_request",r),{error:t.error})},this.onSessionAuthenticateRequest=async e=>{var t;const{topic:r,payload:n,attestation:o,encryptedId:i,transportType:s}=e;try{const{requester:e,authPayload:a,expiryTimestamp:c}=n.params,u=await this.getVerifyContext({attestationId:o,hash:yr$1(JSON.stringify(n)),encryptedId:i,metadata:e.metadata,transportType:s}),l={requester:e,pairingTopic:r,id:n.id,authPayload:a,verifyContext:u,expiryTimestamp:c};await this.setAuthRequest(n.id,{request:l,pairingTopic:r,transportType:s}),s===M$3.link_mode&&null!=(t=e.metadata.redirect)&&t.universal&&this.client.core.addLinkModeSupportedApp(e.metadata.redirect.universal),this.client.events.emit("session_authenticate",{topic:r,params:n.params,id:n.id,verifyContext:u})}catch(a){this.client.logger.error(a);const e=n.params.requester.publicKey,t=await this.client.core.crypto.generateKeyPair(),o=this.getAppLinkIfEnabled(n.params.requester.metadata,s),i={type:D$5,receiverPublicKey:e,senderPublicKey:t};await this.sendError({id:n.id,topic:r,error:a,encodeOpts:i,rpcOpts:v$3.wc_sessionAuthenticate.autoReject,appLink:o})}},this.addSessionRequestToSessionRequestQueue=e=>{this.sessionRequestQueue.queue.push(e)},this.cleanupAfterResponse=e=>{this.deletePendingSessionRequest(e.response.id,{message:"fulfilled",code:0}),setTimeout((()=>{this.sessionRequestQueue.state=x$3.idle,this.processSessionRequestQueue()}),cjs$7.toMiliseconds(this.requestQueueDelay))},this.cleanupPendingSentRequestsForTopic=({topic:e,error:t})=>{const r=this.client.core.history.pending;r.length>0&&r.filter((t=>t.topic===e&&"wc_sessionRequest"===t.request.method)).forEach((e=>{const r=Lt$1("session_request",e.request.id);if(0===this.events.listenerCount(r))throw new Error(`emitting ${r} without any listeners`);this.events.emit(Lt$1("session_request",e.request.id),{error:t})}))},this.processSessionRequestQueue=()=>{if(this.sessionRequestQueue.state===x$3.active)return void this.client.logger.info("session request queue is already active.");const e=this.sessionRequestQueue.queue[0];if(e)try{this.sessionRequestQueue.state=x$3.active,this.emitSessionRequest(e)}catch(t){this.client.logger.error(t)}else this.client.logger.info("session request queue is empty.")},this.emitSessionRequest=e=>{this.client.events.emit("session_request",e)},this.onPairingCreated=e=>{if(e.methods&&this.expectedPairingMethodMap.set(e.topic,e.methods),e.active)return;const t=this.client.proposal.getAll().find((t=>t.pairingTopic===e.topic));t&&this.onSessionProposeRequest({topic:e.topic,payload:formatJsonRpcRequest("wc_sessionPropose",{requiredNamespaces:t.requiredNamespaces,optionalNamespaces:t.optionalNamespaces,relays:t.relays,proposer:t.proposer,sessionProperties:t.sessionProperties},t.id)})},this.isValidConnect=async e=>{if(!to(e)){const{message:t}=S$6("MISSING_OR_INVALID",`connect() params: ${JSON.stringify(e)}`);throw new Error(t)}const{pairingTopic:t,requiredNamespaces:r,optionalNamespaces:n,sessionProperties:o,relays:i}=e;if(I$5(t)||await this.isValidPairingTopic(t),!eo(i)){const{message:e}=S$6("MISSING_OR_INVALID",`connect() relays: ${i}`);throw new Error(e)}!I$5(r)&&0!==Z$3(r)&&this.validateNamespaces(r,"requiredNamespaces"),!I$5(n)&&0!==Z$3(n)&&this.validateNamespaces(n,"optionalNamespaces"),I$5(o)||this.validateSessionProps(o,"sessionProperties")},this.validateNamespaces=(e,t)=>{const r=Xr$1(e,"connect()",t);if(r)throw new Error(r.message)},this.isValidApprove=async e=>{if(!to(e))throw new Error(S$6("MISSING_OR_INVALID",`approve() params: ${e}`).message);const{id:t,namespaces:r,relayProtocol:n,sessionProperties:o}=e;this.checkRecentlyDeleted(t),await this.isValidProposalId(t);const i=this.client.proposal.get(t),s=Wn(r,"approve()");if(s)throw new Error(s.message);const a=zn(i.requiredNamespaces,r,"approve()");if(a)throw new Error(a.message);if(!b$4(n,!0)){const{message:e}=S$6("MISSING_OR_INVALID",`approve() relayProtocol: ${n}`);throw new Error(e)}I$5(o)||this.validateSessionProps(o,"sessionProperties")},this.isValidReject=async e=>{if(!to(e)){const{message:t}=S$6("MISSING_OR_INVALID",`reject() params: ${e}`);throw new Error(t)}const{id:t,reason:r}=e;if(this.checkRecentlyDeleted(t),await this.isValidProposalId(t),!ro(r)){const{message:e}=S$6("MISSING_OR_INVALID",`reject() reason: ${JSON.stringify(r)}`);throw new Error(e)}},this.isValidSessionSettleRequest=e=>{if(!to(e)){const{message:t}=S$6("MISSING_OR_INVALID",`onSessionSettleRequest() params: ${e}`);throw new Error(t)}const{relay:t,controller:r,namespaces:n,expiry:o}=e;if(!Jn(t)){const{message:e}=S$6("MISSING_OR_INVALID","onSessionSettleRequest() relay protocol should be a string");throw new Error(e)}const i=Zr$1(r,"onSessionSettleRequest()");if(i)throw new Error(i.message);const s=Wn(n,"onSessionSettleRequest()");if(s)throw new Error(s.message);if(Kt$1(o)){const{message:e}=S$6("EXPIRED","onSessionSettleRequest()");throw new Error(e)}},this.isValidUpdate=async e=>{if(!to(e)){const{message:t}=S$6("MISSING_OR_INVALID",`update() params: ${e}`);throw new Error(t)}const{topic:t,namespaces:r}=e;this.checkRecentlyDeleted(t),await this.isValidSessionTopic(t);const n=this.client.session.get(t),o=Wn(r,"update()");if(o)throw new Error(o.message);const i=zn(n.requiredNamespaces,r,"update()");if(i)throw new Error(i.message)},this.isValidExtend=async e=>{if(!to(e)){const{message:t}=S$6("MISSING_OR_INVALID",`extend() params: ${e}`);throw new Error(t)}const{topic:t}=e;this.checkRecentlyDeleted(t),await this.isValidSessionTopic(t)},this.isValidRequest=async e=>{if(!to(e)){const{message:t}=S$6("MISSING_OR_INVALID",`request() params: ${e}`);throw new Error(t)}const{topic:t,request:r,chainId:n,expiry:o}=e;this.checkRecentlyDeleted(t),await this.isValidSessionTopic(t);const{namespaces:i}=this.client.session.get(t);if(!co(i,n)){const{message:e}=S$6("MISSING_OR_INVALID",`request() chainId: ${n}`);throw new Error(e)}if(!oo(r)){const{message:e}=S$6("MISSING_OR_INVALID",`request() ${JSON.stringify(r)}`);throw new Error(e)}if(!ao(i,n,r.method)){const{message:e}=S$6("MISSING_OR_INVALID",`request() method: ${r.method}`);throw new Error(e)}if(o&&!po(o,me)){const{message:e}=S$6("MISSING_OR_INVALID",`request() expiry: ${o}. Expiry must be a number (in seconds) between ${me.min} and ${me.max}`);throw new Error(e)}},this.isValidRespond=async e=>{var t;if(!to(e)){const{message:t}=S$6("MISSING_OR_INVALID",`respond() params: ${e}`);throw new Error(t)}const{topic:r,response:n}=e;try{await this.isValidSessionTopic(r)}catch(o){throw null!=(t=null==e?void 0:e.response)&&t.id&&this.cleanupAfterResponse(e),o}if(!so(n)){const{message:e}=S$6("MISSING_OR_INVALID",`respond() response: ${JSON.stringify(n)}`);throw new Error(e)}},this.isValidPing=async e=>{if(!to(e)){const{message:t}=S$6("MISSING_OR_INVALID",`ping() params: ${e}`);throw new Error(t)}const{topic:t}=e;await this.isValidSessionOrPairingTopic(t)},this.isValidEmit=async e=>{if(!to(e)){const{message:t}=S$6("MISSING_OR_INVALID",`emit() params: ${e}`);throw new Error(t)}const{topic:t,event:r,chainId:n}=e;await this.isValidSessionTopic(t);const{namespaces:o}=this.client.session.get(t);if(!co(o,n)){const{message:e}=S$6("MISSING_OR_INVALID",`emit() chainId: ${n}`);throw new Error(e)}if(!io(r)){const{message:e}=S$6("MISSING_OR_INVALID",`emit() event: ${JSON.stringify(r)}`);throw new Error(e)}if(!uo(o,n,r.name)){const{message:e}=S$6("MISSING_OR_INVALID",`emit() event: ${JSON.stringify(r)}`);throw new Error(e)}},this.isValidDisconnect=async e=>{if(!to(e)){const{message:t}=S$6("MISSING_OR_INVALID",`disconnect() params: ${e}`);throw new Error(t)}const{topic:t}=e;await this.isValidSessionOrPairingTopic(t)},this.isValidAuthenticate=e=>{const{chains:t,uri:r,domain:n,nonce:o}=e;if(!Array.isArray(t)||0===t.length)throw new Error("chains is required and must be a non-empty array");if(!b$4(r,!1))throw new Error("uri is required parameter");if(!b$4(n,!1))throw new Error("domain is required parameter");if(!b$4(o,!1))throw new Error("nonce is required parameter");if([...new Set(t.map((e=>re$1(e).namespace)))].length>1)throw new Error("Multi-namespace requests are not supported. Please request single namespace only.");const{namespace:i}=re$1(t[0]);if("eip155"!==i)throw new Error("Only eip155 namespace is supported for authenticated sessions. Please use .connect() for non-eip155 chains.")},this.getVerifyContext=async e=>{const{attestationId:t,hash:r,encryptedId:n,metadata:o,transportType:i}=e,s={verified:{verifyUrl:o.verifyUrl||J$1,validation:"UNKNOWN",origin:o.url||""}};try{if(i===M$3.link_mode){const e=this.getAppLinkIfEnabled(o,i);return s.verified.validation=e&&new URL(e).origin===new URL(o.url).origin?"VALID":"INVALID",s}const e=await this.client.core.verify.resolve({attestationId:t,hash:r,encryptedId:n,verifyUrl:o.verifyUrl});e&&(s.verified.origin=e.origin,s.verified.isScam=e.isScam,s.verified.validation=e.origin===new URL(o.url).origin?"VALID":"INVALID")}catch(a){this.client.logger.warn(a)}return this.client.logger.debug(`Verify context: ${JSON.stringify(s)}`),s},this.validateSessionProps=(e,t)=>{Object.values(e).forEach((e=>{if(!b$4(e,!1)){const{message:r}=S$6("MISSING_OR_INVALID",`${t} must be in Record format. Received: ${JSON.stringify(e)}`);throw new Error(r)}}))},this.getPendingAuthRequest=e=>{const t=this.client.auth.requests.get(e);return"object"==typeof t?t:void 0},this.addToRecentlyDeleted=(e,t)=>{if(this.recentlyDeletedMap.set(e,t),this.recentlyDeletedMap.size>=this.recentlyDeletedLimit){let e=0;const t=this.recentlyDeletedLimit/2;for(const r of this.recentlyDeletedMap.keys()){if(e++>=t)break;this.recentlyDeletedMap.delete(r)}}},this.checkRecentlyDeleted=e=>{const t=this.recentlyDeletedMap.get(e);if(t){const{message:r}=S$6("MISSING_OR_INVALID",`Record was recently deleted - ${t}: ${e}`);throw new Error(r)}},this.isLinkModeEnabled=(e,t)=>{var r,n,o,i,s,a,c,u,l;return!(!e||t!==M$3.link_mode)&&(!0===(null==(n=null==(r=this.client.metadata)?void 0:r.redirect)?void 0:n.linkMode)&&void 0!==(null==(i=null==(o=this.client.metadata)?void 0:o.redirect)?void 0:i.universal)&&""!==(null==(a=null==(s=this.client.metadata)?void 0:s.redirect)?void 0:a.universal)&&void 0!==(null==(c=null==e?void 0:e.redirect)?void 0:c.universal)&&""!==(null==(u=null==e?void 0:e.redirect)?void 0:u.universal)&&!0===(null==(l=null==e?void 0:e.redirect)?void 0:l.linkMode)&&this.client.core.linkModeSupportedApps.includes(e.redirect.universal)&&typeof(null==global$1?void 0:global$1.Linking)<"u")},this.getAppLinkIfEnabled=(e,t)=>{var r;return this.isLinkModeEnabled(e,t)?null==(r=null==e?void 0:e.redirect)?void 0:r.universal:void 0},this.handleLinkModeMessage=({url:e})=>{if(!e||!e.includes("wc_ev")||!e.includes("topic"))return;const t=Bt$1(e,"topic")||"",r=decodeURIComponent(Bt$1(e,"wc_ev")||""),n=this.client.session.keys.includes(t);n&&this.client.session.update(t,{transportType:M$3.link_mode}),this.client.core.dispatchEnvelope({topic:t,message:r,sessionExists:n})},this.registerLinkModeListeners=async()=>{var e;if(Wt$1()||_$5()&&null!=(e=this.client.metadata.redirect)&&e.linkMode){const e=null==global$1?void 0:global$1.Linking;if(typeof e<"u"){e.addEventListener("url",this.handleLinkModeMessage,this.client.name);const t=await e.getInitialURL();t&&setTimeout((()=>{this.handleLinkModeMessage({url:t})}),50)}}}}isInitialized(){if(!this.initialized){const{message:e}=S$6("NOT_INITIALIZED",this.name);throw new Error(e)}}async confirmOnlineStateOrThrow(){await this.client.core.relayer.confirmOnlineStateOrThrow()}registerRelayerEvents(){this.client.core.relayer.on(v$4.message,(e=>{!this.initialized||this.relayMessageCache.length>0?this.relayMessageCache.push(e):this.onRelayMessage(e)}))}async onRelayMessage(e){const{topic:t,message:r,attestation:n,transportType:o}=e,{publicKey:i}=this.client.auth.authKeys.keys.includes(ae)?this.client.auth.authKeys.get(ae):{responseTopic:void 0,publicKey:void 0},s=await this.client.core.crypto.decode(t,r,{receiverPublicKey:i,encoding:o===M$3.link_mode?lr$1:ge});try{isJsonRpcRequest(s)?(this.client.core.history.set(t,s),this.onRelayEventRequest({topic:t,payload:s,attestation:n,transportType:o,encryptedId:yr$1(r)})):isJsonRpcResponse(s)?(await this.client.core.history.resolve(s),await this.onRelayEventResponse({topic:t,payload:s,transportType:o}),this.client.core.history.delete(t,s.id)):this.onRelayEventUnknownPayload({topic:t,payload:s,transportType:o})}catch(a){this.client.logger.error(a)}}registerExpirerEvents(){this.client.core.expirer.on(S$4.expired,(async e=>{const{topic:t,id:r}=Vt$1(e.target);return r&&this.client.pendingRequest.keys.includes(r)?await this.deletePendingSessionRequest(r,S$6("EXPIRED"),!0):r&&this.client.auth.requests.keys.includes(r)?await this.deletePendingAuthRequest(r,S$6("EXPIRED"),!0):void(t?this.client.session.keys.includes(t)&&(await this.deleteSession({topic:t,expirerHasDeleted:!0}),this.client.events.emit("session_expire",{topic:t})):r&&(await this.deleteProposal(r,!0),this.client.events.emit("proposal_expire",{id:r})))}))}registerPairingEvents(){this.client.core.pairing.events.on(V$2.create,(e=>this.onPairingCreated(e))),this.client.core.pairing.events.on(V$2.delete,(e=>{this.addToRecentlyDeleted(e.topic,"pairing")}))}isValidPairingTopic(e){if(!b$4(e,!1)){const{message:t}=S$6("MISSING_OR_INVALID",`pairing topic should be a string: ${e}`);throw new Error(t)}if(!this.client.core.pairing.pairings.keys.includes(e)){const{message:t}=S$6("NO_MATCHING_KEY",`pairing topic doesn't exist: ${e}`);throw new Error(t)}if(Kt$1(this.client.core.pairing.pairings.get(e).expiry)){const{message:t}=S$6("EXPIRED",`pairing topic: ${e}`);throw new Error(t)}}async isValidSessionTopic(e){if(!b$4(e,!1)){const{message:t}=S$6("MISSING_OR_INVALID",`session topic should be a string: ${e}`);throw new Error(t)}if(this.checkRecentlyDeleted(e),!this.client.session.keys.includes(e)){const{message:t}=S$6("NO_MATCHING_KEY",`session topic doesn't exist: ${e}`);throw new Error(t)}if(Kt$1(this.client.session.get(e).expiry)){await this.deleteSession({topic:e});const{message:t}=S$6("EXPIRED",`session topic: ${e}`);throw new Error(t)}if(!this.client.core.crypto.keychain.has(e)){const{message:t}=S$6("MISSING_OR_INVALID",`session topic does not exist in keychain: ${e}`);throw await this.deleteSession({topic:e}),new Error(t)}}async isValidSessionOrPairingTopic(e){if(this.checkRecentlyDeleted(e),this.client.session.keys.includes(e))await this.isValidSessionTopic(e);else{if(!this.client.core.pairing.pairings.keys.includes(e)){if(b$4(e,!1)){const{message:t}=S$6("NO_MATCHING_KEY",`session or pairing topic doesn't exist: ${e}`);throw new Error(t)}{const{message:t}=S$6("MISSING_OR_INVALID",`session or pairing topic should be a string: ${e}`);throw new Error(t)}}this.isValidPairingTopic(e)}}async isValidProposalId(e){if(!no(e)){const{message:t}=S$6("MISSING_OR_INVALID",`proposal id should be a number: ${e}`);throw new Error(t)}if(!this.client.proposal.keys.includes(e)){const{message:t}=S$6("NO_MATCHING_KEY",`proposal id doesn't exist: ${e}`);throw new Error(t)}if(Kt$1(this.client.proposal.get(e).expiryTimestamp)){await this.deleteProposal(e);const{message:t}=S$6("EXPIRED",`proposal id: ${e}`);throw new Error(t)}}}class Ss extends ni{constructor(e,t){super(e,t,st,ye),this.core=e,this.logger=t}}class yt extends ni{constructor(e,t){super(e,t,rt,ye),this.core=e,this.logger=t}}class Is extends ni{constructor(e,t){super(e,t,ot,ye,(e=>e.id)),this.core=e,this.logger=t}}class fs extends ni{constructor(e,t){super(e,t,pt$1,oe,(()=>ae)),this.core=e,this.logger=t}}class vs extends ni{constructor(e,t){super(e,t,ht,oe),this.core=e,this.logger=t}}class qs extends ni{constructor(e,t){super(e,t,dt,oe,(e=>e.id)),this.core=e,this.logger=t}}class Ts{constructor(e,t){this.core=e,this.logger=t,this.authKeys=new fs(this.core,this.logger),this.pairingTopics=new vs(this.core,this.logger),this.requests=new qs(this.core,this.logger)}async init(){await this.authKeys.init(),await this.pairingTopics.init(),await this.requests.init()}}class _e extends S$7{constructor(e){super(e),this.protocol=be,this.version=Ce,this.name=we.name,this.events=new eventsExports.EventEmitter,this.on=(e,t)=>this.events.on(e,t),this.once=(e,t)=>this.events.once(e,t),this.off=(e,t)=>this.events.off(e,t),this.removeListener=(e,t)=>this.events.removeListener(e,t),this.removeAllListeners=e=>this.events.removeAllListeners(e),this.connect=async e=>{try{return await this.engine.connect(e)}catch(t){throw this.logger.error(t.message),t}},this.pair=async e=>{try{return await this.engine.pair(e)}catch(t){throw this.logger.error(t.message),t}},this.approve=async e=>{try{return await this.engine.approve(e)}catch(t){throw this.logger.error(t.message),t}},this.reject=async e=>{try{return await this.engine.reject(e)}catch(t){throw this.logger.error(t.message),t}},this.update=async e=>{try{return await this.engine.update(e)}catch(t){throw this.logger.error(t.message),t}},this.extend=async e=>{try{return await this.engine.extend(e)}catch(t){throw this.logger.error(t.message),t}},this.request=async e=>{try{return await this.engine.request(e)}catch(t){throw this.logger.error(t.message),t}},this.respond=async e=>{try{return await this.engine.respond(e)}catch(t){throw this.logger.error(t.message),t}},this.ping=async e=>{try{return await this.engine.ping(e)}catch(t){throw this.logger.error(t.message),t}},this.emit=async e=>{try{return await this.engine.emit(e)}catch(t){throw this.logger.error(t.message),t}},this.disconnect=async e=>{try{return await this.engine.disconnect(e)}catch(t){throw this.logger.error(t.message),t}},this.find=e=>{try{return this.engine.find(e)}catch(t){throw this.logger.error(t.message),t}},this.getPendingSessionRequests=()=>{try{return this.engine.getPendingSessionRequests()}catch(e){throw this.logger.error(e.message),e}},this.authenticate=async(e,t)=>{try{return await this.engine.authenticate(e,t)}catch(r){throw this.logger.error(r.message),r}},this.formatAuthMessage=e=>{try{return this.engine.formatAuthMessage(e)}catch(t){throw this.logger.error(t.message),t}},this.approveSessionAuthenticate=async e=>{try{return await this.engine.approveSessionAuthenticate(e)}catch(t){throw this.logger.error(t.message),t}},this.rejectSessionAuthenticate=async e=>{try{return await this.engine.rejectSessionAuthenticate(e)}catch(t){throw this.logger.error(t.message),t}},this.name=(null==e?void 0:e.name)||we.name,this.metadata=(null==e?void 0:e.metadata)||Nt$1(),this.signConfig=null==e?void 0:e.signConfig;const t=typeof(null==e?void 0:e.logger)<"u"&&"string"!=typeof(null==e?void 0:e.logger)?e.logger:_i(k$5({level:(null==e?void 0:e.logger)||we.logger}));this.core=(null==e?void 0:e.core)||new bn(e),this.logger=E$5(t,this.name),this.session=new yt(this.core,this.logger),this.proposal=new Ss(this.core,this.logger),this.pendingRequest=new Is(this.core,this.logger),this.engine=new Rs(this),this.auth=new Ts(this.core,this.logger)}static async init(e){const t=new _e(e);return await t.initialize(),t}get context(){return y$7(this.logger)}get pairing(){return this.core.pairing.pairings}async initialize(){this.logger.trace("Initialized");try{await this.core.start(),await this.session.init(),await this.proposal.init(),await this.pendingRequest.init(),await this.auth.init(),await this.engine.init(),this.logger.info("SignClient Initialization Success"),this.engine.processRelayMessageCache()}catch(e){throw this.logger.info("SignClient Initialization Failure"),this.logger.error(e.message),e}}}var l$6={exports:{}},c$5="object"==typeof Reflect?Reflect:null,y$4=c$5&&"function"==typeof c$5.apply?c$5.apply:function(e,t,r){return Function.prototype.apply.call(e,t,r)},f$3;function k$3(e){console&&console.warn&&console.warn(e)}f$3=c$5&&"function"==typeof c$5.ownKeys?c$5.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var w$4=Number.isNaN||function(e){return e!=e};function o$7(){o$7.init.call(this)}l$6.exports=o$7,l$6.exports.once=K$1,o$7.EventEmitter=o$7,o$7.prototype._events=void 0,o$7.prototype._eventsCount=0,o$7.prototype._maxListeners=void 0;var L$3=10;function g$3(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function _$4(e){return void 0===e._maxListeners?o$7.defaultMaxListeners:e._maxListeners}function S$3(e,t,r,n){var o,i,s;if(g$3(r),void 0===(i=e._events)?(i=e._events=Object.create(null),e._eventsCount=0):(void 0!==i.newListener&&(e.emit("newListener",t,r.listener?r.listener:r),i=e._events),s=i[t]),void 0===s)s=i[t]=r,++e._eventsCount;else if("function"==typeof s?s=i[t]=n?[r,s]:[s,r]:n?s.unshift(r):s.push(r),(o=_$4(e))>0&&s.length>o&&!s.warned){s.warned=!0;var a=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");a.name="MaxListenersExceededWarning",a.emitter=e,a.type=t,a.count=s.length,k$3(a)}return e}function D$3(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function C$3(e,t,r){var n={fired:!1,wrapFn:void 0,target:e,type:t,listener:r},o=D$3.bind(n);return o.listener=r,n.wrapFn=o,o}function b$2(e,t,r){var n=e._events;if(void 0===n)return[];var o=n[t];return void 0===o?[]:"function"==typeof o?r?[o.listener||o]:[o]:r?z$3(o):O$1(o,o.length)}function E$4(e){var t=this._events;if(void 0!==t){var r=t[e];if("function"==typeof r)return 1;if(void 0!==r)return r.length}return 0}function O$1(e,t){for(var r=new Array(t),n=0;n0&&(i=t[0]),i instanceof Error)throw i;var s=new Error("Unhandled error."+(i?" ("+i.message+")":""));throw s.context=i,s}var a=o[e];if(void 0===a)return!1;if("function"==typeof a)y$4(a,this,t);else{var c=a.length,u=O$1(a,c);for(r=0;r=0;i--)if(r[i]===t||r[i].listener===t){s=r[i].listener,o=i;break}if(o<0)return this;0===o?r.shift():F$2(r,o),1===r.length&&(n[e]=r[0]),void 0!==n.removeListener&&this.emit("removeListener",e,s||t)}return this},o$7.prototype.off=o$7.prototype.removeListener,o$7.prototype.removeAllListeners=function(e){var t,r,n;if(void 0===(r=this._events))return this;if(void 0===r.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==r[e]&&(0==--this._eventsCount?this._events=Object.create(null):delete r[e]),this;if(0===arguments.length){var o,i=Object.keys(r);for(n=0;n=0;n--)this.removeListener(e,t[n]);return this},o$7.prototype.listeners=function(e){return b$2(this,e,!0)},o$7.prototype.rawListeners=function(e){return b$2(this,e,!1)},o$7.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):E$4.call(e,t)},o$7.prototype.listenerCount=E$4,o$7.prototype.eventNames=function(){return this._eventsCount>0?f$3(this._events):[]};var cjs$2={};Object.defineProperty(cjs$2,"__esModule",{value:!0});var getWindowMetadata_1=cjs$2.getWindowMetadata=void 0;const window_getters_1=cjs$6;function getWindowMetadata(){let e,t;try{e=window_getters_1.getDocumentOrThrow(),t=window_getters_1.getLocationOrThrow()}catch(o){return null}function r(...t){const r=e.getElementsByTagName("meta");for(let e=0;en.getAttribute(e))).filter((e=>!!e&&t.includes(e)));if(o.length&&o){const e=n.getAttribute("content");if(e)return e}}return""}const n=function(){let t=r("name","og:site_name","og:title","twitter:title");return t||(t=e.title),t}();return{description:r("description","og:description","twitter:description","keywords"),url:t.origin,icons:function(){const r=e.getElementsByTagName("link"),n=[];for(let e=0;e-1){const e=o.getAttribute("href");if(e)if(-1===e.toLowerCase().indexOf("https:")&&-1===e.toLowerCase().indexOf("http:")&&0!==e.indexOf("//")){let r=t.protocol+"//"+t.host;if(0===e.indexOf("/"))r+=e;else{const n=t.pathname.split("/");n.pop();r+=n.join("/")+"/"+e}n.push(r)}else if(0===e.indexOf("//")){const r=t.protocol+e;n.push(r)}else n.push(e)}}return n}(),name:n}}getWindowMetadata_1=cjs$2.getWindowMetadata=getWindowMetadata;var cjs$1={};Object.defineProperty(cjs$1,"__esModule",{value:!0});var getLocalStorage_1=cjs$1.getLocalStorage=getLocalStorageOrThrow_1=cjs$1.getLocalStorageOrThrow=getCrypto_1=cjs$1.getCrypto=getCryptoOrThrow_1=cjs$1.getCryptoOrThrow=getLocation_1=cjs$1.getLocation=getLocationOrThrow_1=cjs$1.getLocationOrThrow=getNavigator_1=cjs$1.getNavigator=getNavigatorOrThrow_1=cjs$1.getNavigatorOrThrow=getDocument_1=cjs$1.getDocument=getDocumentOrThrow_1=cjs$1.getDocumentOrThrow=getFromWindowOrThrow_1=cjs$1.getFromWindowOrThrow=getFromWindow_1=cjs$1.getFromWindow=void 0;function getFromWindow$1(e){let t;return"undefined"!=typeof window&&void 0!==window[e]&&(t=window[e]),t}var getFromWindow_1=cjs$1.getFromWindow=getFromWindow$1;function getFromWindowOrThrow$1(e){const t=getFromWindow$1(e);if(!t)throw new Error(`${e} is not defined in Window`);return t}var getFromWindowOrThrow_1=cjs$1.getFromWindowOrThrow=getFromWindowOrThrow$1;function getDocumentOrThrow$1(){return getFromWindowOrThrow$1("document")}var getDocumentOrThrow_1=cjs$1.getDocumentOrThrow=getDocumentOrThrow$1;function getDocument$1(){return getFromWindow$1("document")}var getDocument_1=cjs$1.getDocument=getDocument$1;function getNavigatorOrThrow$1(){return getFromWindowOrThrow$1("navigator")}var getNavigatorOrThrow_1=cjs$1.getNavigatorOrThrow=getNavigatorOrThrow$1;function getNavigator$1(){return getFromWindow$1("navigator")}var getNavigator_1=cjs$1.getNavigator=getNavigator$1;function getLocationOrThrow$1(){return getFromWindowOrThrow$1("location")}var getLocationOrThrow_1=cjs$1.getLocationOrThrow=getLocationOrThrow$1;function getLocation$1(){return getFromWindow$1("location")}var getLocation_1=cjs$1.getLocation=getLocation$1;function getCryptoOrThrow$1(){return getFromWindowOrThrow$1("crypto")}var getCryptoOrThrow_1=cjs$1.getCryptoOrThrow=getCryptoOrThrow$1;function getCrypto$1(){return getFromWindow$1("crypto")}var getCrypto_1=cjs$1.getCrypto=getCrypto$1;function getLocalStorageOrThrow$1(){return getFromWindowOrThrow$1("localStorage")}var getLocalStorageOrThrow_1=cjs$1.getLocalStorageOrThrow=getLocalStorageOrThrow$1;function getLocalStorage$1(){return getFromWindow$1("localStorage")}getLocalStorage_1=cjs$1.getLocalStorage=getLocalStorage$1;var __spreadArrays=function(){for(var e=0,t=0,r=arguments.length;t1)}function isMobile$1(){return!!detectOS()&&(isAndroid()||isIOS())}function isNode$1(){const e=detectEnv();return!(!e||!e.name)&&"node"===e.name.toLowerCase()}function isBrowser(){return!isNode$1()&&!!getNavigator()}const getFromWindow=getFromWindow_1,getFromWindowOrThrow=getFromWindowOrThrow_1,getDocumentOrThrow=getDocumentOrThrow_1,getDocument=getDocument_1,getNavigatorOrThrow=getNavigatorOrThrow_1,getNavigator=getNavigator_1,getLocationOrThrow=getLocationOrThrow_1,getLocation=getLocation_1,getCryptoOrThrow=getCryptoOrThrow_1,getCrypto=getCrypto_1,getLocalStorageOrThrow=getLocalStorageOrThrow_1,getLocalStorage=getLocalStorage_1;function getClientMeta(){return getWindowMetadata_1()}function safeJsonParse$1(e){if("string"!=typeof e)throw new Error("Cannot safe json parse value of type "+typeof e);try{return JSON.parse(e)}catch(t){return e}}function safeJsonStringify$1(e){return"string"==typeof e?e:JSON.stringify(e)}const safeJsonParse=safeJsonParse$1,safeJsonStringify=safeJsonStringify$1;function setLocal(e,t){const r=safeJsonStringify(t),n=getLocalStorage();n&&n.setItem(e,r)}function getLocal(e){let t=null,r=null;const n=getLocalStorage();return n&&(r=n.getItem(e)),t=r?safeJsonParse(r):r,t}function removeLocal(e){const t=getLocalStorage();t&&t.removeItem(e)}const mobileLinkChoiceKey="WALLETCONNECT_DEEPLINK_CHOICE";function formatIOSMobile(e,t){const r=encodeURIComponent(e);return t.universalLink?`${t.universalLink}/wc?uri=${r}`:t.deepLink?`${t.deepLink}${t.deepLink.endsWith(":")?"//":"/"}wc?uri=${r}`:""}function saveMobileLinkInfo(e){const t=e.href.split("?")[0];setLocal(mobileLinkChoiceKey,Object.assign(Object.assign({},e),{href:t}))}function getMobileRegistryEntry(e,t){return e.filter((e=>e.name.toLowerCase().includes(t.toLowerCase())))[0]}function getMobileLinkRegistry(e,t){let r=e;return t&&(r=t.map((t=>getMobileRegistryEntry(e,t))).filter(Boolean)),r}const API_URL="https://registry.walletconnect.com";function getWalletRegistryUrl(){return API_URL+"/api/v2/wallets"}function getDappRegistryUrl(){return API_URL+"/api/v2/dapps"}function formatMobileRegistryEntry(e,t="mobile"){var r;return{name:e.name||"",shortName:e.metadata.shortName||"",color:e.metadata.colors.primary||"",logo:null!==(r=e.image_url.sm)&&void 0!==r?r:"",universalLink:e[t].universal||"",deepLink:e[t].native||""}}function formatMobileRegistry(e,t="mobile"){return Object.values(e).filter((e=>!!e[t].universal||!!e[t].native)).map((e=>formatMobileRegistryEntry(e,t)))}const esm=Object.freeze(Object.defineProperty({__proto__:null,detectEnv:detectEnv,detectOS:detectOS,formatIOSMobile:formatIOSMobile,formatMobileRegistry:formatMobileRegistry,formatMobileRegistryEntry:formatMobileRegistryEntry,getClientMeta:getClientMeta,getCrypto:getCrypto,getCryptoOrThrow:getCryptoOrThrow,getDappRegistryUrl:getDappRegistryUrl,getDocument:getDocument,getDocumentOrThrow:getDocumentOrThrow,getFromWindow:getFromWindow,getFromWindowOrThrow:getFromWindowOrThrow,getLocal:getLocal,getLocalStorage:getLocalStorage,getLocalStorageOrThrow:getLocalStorageOrThrow,getLocation:getLocation,getLocationOrThrow:getLocationOrThrow,getMobileLinkRegistry:getMobileLinkRegistry,getMobileRegistryEntry:getMobileRegistryEntry,getNavigator:getNavigator,getNavigatorOrThrow:getNavigatorOrThrow,getWalletRegistryUrl:getWalletRegistryUrl,isAndroid:isAndroid,isBrowser:isBrowser,isIOS:isIOS,isMobile:isMobile$1,isNode:isNode$1,mobileLinkChoiceKey:mobileLinkChoiceKey,removeLocal:removeLocal,safeJsonParse:safeJsonParse,safeJsonStringify:safeJsonStringify,saveMobileLinkInfo:saveMobileLinkInfo,setLocal:setLocal},Symbol.toStringTag,{value:"Module"})),require$$0=getAugmentedNamespace(esm);var browser$1={},canPromise$3=function(){return"function"==typeof Promise&&Promise.prototype&&Promise.prototype.then},qrcode$1={},typedarrayBuffer={},toString={}.toString,isarray=Array.isArray||function(e){return"[object Array]"==toString.call(e)},isArray$1=isarray;function typedArraySupport(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()}catch(t){return!1}}Buffer$1.TYPED_ARRAY_SUPPORT=typedArraySupport();var K_MAX_LENGTH=Buffer$1.TYPED_ARRAY_SUPPORT?2147483647:1073741823;function Buffer$1(e,t,r){return Buffer$1.TYPED_ARRAY_SUPPORT||this instanceof Buffer$1?"number"==typeof e?allocUnsafe(this,e):from(this,e,t,r):new Buffer$1(e,t,r)}function checked(e){if(e>=K_MAX_LENGTH)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+K_MAX_LENGTH.toString(16)+" bytes");return 0|e}function isnan(e){return e!=e}function createBuffer(e,t){var r;return Buffer$1.TYPED_ARRAY_SUPPORT?(r=new Uint8Array(t)).__proto__=Buffer$1.prototype:(null===(r=e)&&(r=new Buffer$1(t)),r.length=t),r}function allocUnsafe(e,t){var r=createBuffer(e,t<0?0:0|checked(t));if(!Buffer$1.TYPED_ARRAY_SUPPORT)for(var n=0;n55295&&r<57344){if(!o){if(r>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(s+1===n){(t-=3)>-1&&i.push(239,191,189);continue}o=r;continue}if(r<56320){(t-=3)>-1&&i.push(239,191,189),o=r;continue}r=65536+(o-55296<<10|r-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,r<128){if((t-=1)<0)break;i.push(r)}else if(r<2048){if((t-=2)<0)break;i.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;i.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return i}function byteLength(e){return Buffer$1.isBuffer(e)?e.length:"undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer)?e.byteLength:("string"!=typeof e&&(e=""+e),0===e.length?0:utf8ToBytes(e).length)}function blitBuffer(e,t,r,n){for(var o=0;o=t.length||o>=e.length);++o)t[o+r]=e[o];return o}function utf8Write(e,t,r,n){return blitBuffer(utf8ToBytes(t,e.length-r),e,r,n)}function from(e,t,r,n){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?fromArrayBuffer(e,t,r,n):"string"==typeof t?fromString(e,t):fromObject(e,t)}Buffer$1.TYPED_ARRAY_SUPPORT&&(Buffer$1.prototype.__proto__=Uint8Array.prototype,Buffer$1.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&Buffer$1[Symbol.species]===Buffer$1&&Object.defineProperty(Buffer$1,Symbol.species,{value:null,configurable:!0,enumerable:!1,writable:!1})),Buffer$1.prototype.write=function(e,t,r){void 0===t||void 0===r&&"string"==typeof t?(r=this.length,t=0):isFinite(t)&&(t|=0,isFinite(r)?r|=0:r=void 0);var n=this.length-t;if((void 0===r||r>n)&&(r=n),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");return utf8Write(this,e,t,r)},Buffer$1.prototype.slice=function(e,t){var r,n=this.length;if((e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t=0;--o)e[o+t]=this[o+r];else if(i<1e3||!Buffer$1.TYPED_ARRAY_SUPPORT)for(o=0;o>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(o=t;o40)throw new Error('"version" should be in range from 1 to 40');return 4*e+17},utils$3.getSymbolTotalCodewords=function(e){return CODEWORDS_COUNT$1[e]},utils$3.getBCHDigit=function(e){for(var t=0;0!==e;)t++,e>>>=1;return t},utils$3.setToSJISFunction=function(e){if("function"!=typeof e)throw new Error('"toSJISFunc" is not a valid function.');toSJISFunction$1=e},utils$3.isKanjiModeEnabled=function(){return void 0!==toSJISFunction$1},utils$3.toSJIS=function(e){return toSJISFunction$1(e)};var errorCorrectionLevel$1={};function BitBuffer$3(){this.buffer=[],this.length=0}!function(e){e.L={bit:1},e.M={bit:0},e.Q={bit:3},e.H={bit:2},e.isValid=function(e){return e&&void 0!==e.bit&&e.bit>=0&&e.bit<4},e.from=function(t,r){if(e.isValid(t))return t;try{return function(t){if("string"!=typeof t)throw new Error("Param is not a string");switch(t.toLowerCase()){case"l":case"low":return e.L;case"m":case"medium":return e.M;case"q":case"quartile":return e.Q;case"h":case"high":return e.H;default:throw new Error("Unknown EC Level: "+t)}}(t)}catch(n){return r}}}(errorCorrectionLevel$1),BitBuffer$3.prototype={get:function(e){var t=Math.floor(e/8);return 1==(this.buffer[t]>>>7-e%8&1)},put:function(e,t){for(var r=0;r>>t-r-1&1))},getLengthInBits:function(){return this.length},putBit:function(e){var t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),e&&(this.buffer[t]|=128>>>this.length%8),this.length++}};var bitBuffer$1=BitBuffer$3,BufferUtil$4=typedarrayBuffer;function BitMatrix$3(e){if(!e||e<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=e,this.data=BufferUtil$4.alloc(e*e),this.reservedBit=BufferUtil$4.alloc(e*e)}BitMatrix$3.prototype.set=function(e,t,r,n){var o=e*this.size+t;this.data[o]=r,n&&(this.reservedBit[o]=!0)},BitMatrix$3.prototype.get=function(e,t){return this.data[e*this.size+t]},BitMatrix$3.prototype.xor=function(e,t,r){this.data[e*this.size+t]^=r},BitMatrix$3.prototype.isReserved=function(e,t){return this.reservedBit[e*this.size+t]};var bitMatrix$1=BitMatrix$3,alignmentPattern$1={};!function(e){var t=utils$3.getSymbolSize;e.getRowColCoords=function(e){if(1===e)return[];for(var r=Math.floor(e/7)+2,n=t(e),o=145===n?26:2*Math.ceil((n-13)/(2*r-2)),i=[n-7],s=1;s=0&&e<=7},e.from=function(t){return e.isValid(t)?parseInt(t,10):void 0},e.getPenaltyN1=function(e){for(var r=e.size,n=0,o=0,i=0,s=null,a=null,c=0;c=5&&(n+=t+(o-5)),s=l,o=1),(l=e.get(u,c))===a?i++:(i>=5&&(n+=t+(i-5)),a=l,i=1)}o>=5&&(n+=t+(o-5)),i>=5&&(n+=t+(i-5))}return n},e.getPenaltyN2=function(e){for(var t=e.size,n=0,o=0;o=10&&(1488===o||93===o)&&r++,i=i<<1&2047|e.get(a,s),a>=10&&(1488===i||93===i)&&r++}return r*n},e.getPenaltyN4=function(e){for(var t=0,r=e.data.length,n=0;n=0;){for(var i=o[0],s=0;s0){var i=BufferUtil$2.alloc(this.degree);return n.copy(i,o),i}return n};var reedSolomonEncoder$1=ReedSolomonEncoder$3,version$1={},mode$1={},versionCheck$1={isValid:function(e){return!isNaN(e)&&e>=1&&e<=40}},regex$1={},numeric$1="[0-9]+",alphanumeric$1="[A-Z $%*+\\-./:]+",kanji$1="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+";kanji$1=kanji$1.replace(/u/g,"\\u");var byte$1="(?:(?![A-Z0-9 $%*+\\-./:]|"+kanji$1+")(?:.|[\r\n]))+";regex$1.KANJI=new RegExp(kanji$1,"g"),regex$1.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g"),regex$1.BYTE=new RegExp(byte$1,"g"),regex$1.NUMERIC=new RegExp(numeric$1,"g"),regex$1.ALPHANUMERIC=new RegExp(alphanumeric$1,"g");var TEST_KANJI$1=new RegExp("^"+kanji$1+"$"),TEST_NUMERIC$1=new RegExp("^"+numeric$1+"$"),TEST_ALPHANUMERIC$1=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");regex$1.testKanji=function(e){return TEST_KANJI$1.test(e)},regex$1.testNumeric=function(e){return TEST_NUMERIC$1.test(e)},regex$1.testAlphanumeric=function(e){return TEST_ALPHANUMERIC$1.test(e)},function(e){var t=versionCheck$1,r=regex$1;e.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},e.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},e.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},e.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},e.MIXED={bit:-1},e.getCharCountIndicator=function(e,r){if(!e.ccBits)throw new Error("Invalid mode: "+e);if(!t.isValid(r))throw new Error("Invalid version: "+r);return r>=1&&r<10?e.ccBits[0]:r<27?e.ccBits[1]:e.ccBits[2]},e.getBestModeForData=function(t){return r.testNumeric(t)?e.NUMERIC:r.testAlphanumeric(t)?e.ALPHANUMERIC:r.testKanji(t)?e.KANJI:e.BYTE},e.toString=function(e){if(e&&e.id)return e.id;throw new Error("Invalid mode")},e.isValid=function(e){return e&&e.bit&&e.ccBits},e.from=function(t,r){if(e.isValid(t))return t;try{return function(t){if("string"!=typeof t)throw new Error("Param is not a string");switch(t.toLowerCase()){case"numeric":return e.NUMERIC;case"alphanumeric":return e.ALPHANUMERIC;case"kanji":return e.KANJI;case"byte":return e.BYTE;default:throw new Error("Unknown mode: "+t)}}(t)}catch(n){return r}}}(mode$1),function(e){var t=utils$3,r=errorCorrectionCode$1,n=errorCorrectionLevel$1,o=mode$1,i=versionCheck$1,s=isarray,a=t.getBCHDigit(7973);function c(e,t){return o.getCharCountIndicator(e,t)+4}function u(e,t){var r=0;return e.forEach((function(e){var n=c(e.mode,t);r+=n+e.getBitsLength()})),r}e.from=function(e,t){return i.isValid(e)?parseInt(e,10):t},e.getCapacity=function(e,n,s){if(!i.isValid(e))throw new Error("Invalid QR Code version");void 0===s&&(s=o.BYTE);var a=8*(t.getSymbolTotalCodewords(e)-r.getTotalCodewordsCount(e,n));if(s===o.MIXED)return a;var u=a-c(s,e);switch(s){case o.NUMERIC:return Math.floor(u/10*3);case o.ALPHANUMERIC:return Math.floor(u/11*2);case o.KANJI:return Math.floor(u/13);case o.BYTE:default:return Math.floor(u/8)}},e.getBestVersionForData=function(t,r){var i,a=n.from(r,n.M);if(s(t)){if(t.length>1)return function(t,r){for(var n=1;n<=40;n++)if(u(t,n)<=e.getCapacity(n,r,o.MIXED))return n}(t,a);if(0===t.length)return 1;i=t[0]}else i=t;return function(t,r,n){for(var o=1;o<=40;o++)if(r<=e.getCapacity(o,n,t))return o}(i.mode,i.getLength(),a)},e.getEncodedBits=function(e){if(!i.isValid(e)||e<7)throw new Error("Invalid QR Code version");for(var r=e<<12;t.getBCHDigit(r)-a>=0;)r^=7973<=0;)n^=G15$1<0&&(r=this.data.substr(t),n=parseInt(r,10),e.put(n,3*o+1))};var numericData$1=NumericData$1,Mode$8=mode$1,ALPHA_NUM_CHARS$1=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function AlphanumericData$1(e){this.mode=Mode$8.ALPHANUMERIC,this.data=e}AlphanumericData$1.getBitsLength=function(e){return 11*Math.floor(e/2)+e%2*6},AlphanumericData$1.prototype.getLength=function(){return this.data.length},AlphanumericData$1.prototype.getBitsLength=function(){return AlphanumericData$1.getBitsLength(this.data.length)},AlphanumericData$1.prototype.write=function(e){var t;for(t=0;t+2<=this.data.length;t+=2){var r=45*ALPHA_NUM_CHARS$1.indexOf(this.data[t]);r+=ALPHA_NUM_CHARS$1.indexOf(this.data[t+1]),e.put(r,11)}this.data.length%2&&e.put(ALPHA_NUM_CHARS$1.indexOf(this.data[t]),6)};var alphanumericData$1=AlphanumericData$1,BufferUtil$1=typedarrayBuffer,Mode$7=mode$1;function ByteData$1(e){this.mode=Mode$7.BYTE,this.data=BufferUtil$1.from(e)}ByteData$1.getBitsLength=function(e){return 8*e},ByteData$1.prototype.getLength=function(){return this.data.length},ByteData$1.prototype.getBitsLength=function(){return ByteData$1.getBitsLength(this.data.length)},ByteData$1.prototype.write=function(e){for(var t=0,r=this.data.length;t=33088&&r<=40956)r-=33088;else{if(!(r>=57408&&r<=60351))throw new Error("Invalid SJIS character: "+this.data[t]+"\nMake sure your charset is UTF-8");r-=49472}r=192*(r>>>8&255)+(255&r),e.put(r,13)}};var kanjiData$1=KanjiData$1,dijkstra={exports:{}};!function(e){var t={single_source_shortest_paths:function(e,r,n){var o={},i={};i[r]=0;var s,a,c,u,l,d,h,f=t.PriorityQueue.make();for(f.push(r,0);!f.empty();)for(c in a=(s=f.pop()).value,u=s.cost,l=e[a]||{})l.hasOwnProperty(c)&&(d=u+l[c],h=i[c],(void 0===i[c]||h>d)&&(i[c]=d,f.push(c,d),o[c]=a));if(void 0!==n&&void 0===i[n]){var p=["Could not find a path from ",r," to ",n,"."].join("");throw new Error(p)}return o},extract_shortest_path_from_predecessor_list:function(e,t){for(var r=[],n=t;n;)r.push(n),e[n],n=e[n];return r.reverse(),r},find_path:function(e,r,n){var o=t.single_source_shortest_paths(e,r,n);return t.extract_shortest_path_from_predecessor_list(o,n)},PriorityQueue:{make:function(e){var r,n=t.PriorityQueue,o={};for(r in e=e||{},n)n.hasOwnProperty(r)&&(o[r]=n[r]);return o.queue=[],o.sorter=e.sorter||n.default_sorter,o},default_sorter:function(e,t){return e.cost-t.cost},push:function(e,t){var r={value:e,cost:t};this.queue.push(r),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return 0===this.queue.length}}};e.exports=t}(dijkstra);var dijkstraExports=dijkstra.exports;!function(e){var t=mode$1,r=numericData$1,n=alphanumericData$1,o=byteData$1,i=kanjiData$1,s=regex$1,a=utils$3,c=dijkstraExports;function u(e){return unescape(encodeURIComponent(e)).length}function l(e,t,r){for(var n,o=[];null!==(n=e.exec(r));)o.push({data:n[0],index:n.index,mode:t,length:n[0].length});return o}function d(e){var r,n,o=l(s.NUMERIC,t.NUMERIC,e),i=l(s.ALPHANUMERIC,t.ALPHANUMERIC,e);return a.isKanjiModeEnabled()?(r=l(s.BYTE,t.BYTE,e),n=l(s.KANJI,t.KANJI,e)):(r=l(s.BYTE_KANJI,t.BYTE,e),n=[]),o.concat(i,r,n).sort((function(e,t){return e.index-t.index})).map((function(e){return{data:e.data,mode:e.mode,length:e.length}}))}function h(e,s){switch(s){case t.NUMERIC:return r.getBitsLength(e);case t.ALPHANUMERIC:return n.getBitsLength(e);case t.KANJI:return i.getBitsLength(e);case t.BYTE:return o.getBitsLength(e)}}function f(e,s){var c,u=t.getBestModeForData(e);if((c=t.from(s,u))!==t.BYTE&&c.bit=0?e[e.length-1]:null;return r&&r.mode===t.mode?(e[e.length-1].data+=t.data,e):(e.push(t),e)}),[])}(l))},e.rawSplit=function(t){return e.fromArray(d(t,a.isKanjiModeEnabled()))}}(segments$1);var BufferUtil=typedarrayBuffer,Utils$5=utils$3,ECLevel$2=errorCorrectionLevel$1,BitBuffer$2=bitBuffer$1,BitMatrix$2=bitMatrix$1,AlignmentPattern$1=alignmentPattern$1,FinderPattern$1=finderPattern$1,MaskPattern$1=maskPattern$1,ECCode$1=errorCorrectionCode$1,ReedSolomonEncoder$2=reedSolomonEncoder$1,Version$1=version$1,FormatInfo$1=formatInfo$1,Mode$5=mode$1,Segments$1=segments$1,isArray=isarray;function setupFinderPattern$1(e,t){for(var r=e.size,n=FinderPattern$1.getPositions(t),o=0;o=0&&a<=6&&(0===c||6===c)||c>=0&&c<=6&&(0===a||6===a)||a>=2&&a<=4&&c>=2&&c<=4?e.set(i+a,s+c,!0,!0):e.set(i+a,s+c,!1,!0))}function setupTimingPattern$1(e){for(var t=e.size,r=8;r>a&1),e.set(r,n,o,!0),e.set(n,r,o,!0)}function setupFormatInfo$1(e,t,r){var n,o,i=e.size,s=FormatInfo$1.getEncodedBits(t,r);for(n=0;n<15;n++)o=1==(s>>n&1),n<6?e.set(n,8,o,!0):n<8?e.set(n+1,8,o,!0):e.set(i-15+n,8,o,!0),n<8?e.set(8,i-n-1,o,!0):n<9?e.set(8,15-n-1+1,o,!0):e.set(8,15-n-1,o,!0);e.set(i-8,8,1,!0)}function setupData$1(e,t){for(var r=e.size,n=-1,o=r-1,i=7,s=0,a=r-1;a>0;a-=2)for(6===a&&a--;;){for(var c=0;c<2;c++)if(!e.isReserved(o,a-c)){var u=!1;s>>i&1)),e.set(o,a-c,u),-1===--i&&(s++,i=7)}if((o+=n)<0||r<=o){o-=n,n=-n;break}}}function createData$1(e,t,r){var n=new BitBuffer$2;r.forEach((function(t){n.put(t.mode.bit,4),n.put(t.getLength(),Mode$5.getCharCountIndicator(t.mode,e)),t.write(n)}));var o=8*(Utils$5.getSymbolTotalCodewords(e)-ECCode$1.getTotalCodewordsCount(e,t));for(n.getLengthInBits()+4<=o&&n.put(0,4);n.getLengthInBits()%8!=0;)n.putBit(0);for(var i=(o-n.getLengthInBits())/8,s=0;s=7&&setupVersionInfo$1(l,t),setupData$1(l,c),isNaN(n)&&(n=MaskPattern$1.getBestMask(l,setupFormatInfo$1.bind(null,l,r))),MaskPattern$1.applyMask(n,l),setupFormatInfo$1(l,r,n),{modules:l,version:t,errorCorrectionLevel:r,maskPattern:n,segments:o}}qrcode$1.create=function(e,t){if(void 0===e||""===e)throw new Error("No input text");var r,n,o=ECLevel$2.M;return void 0!==t&&(o=ECLevel$2.from(t.errorCorrectionLevel,ECLevel$2.M),r=Version$1.from(t.version),n=MaskPattern$1.from(t.maskPattern),t.toSJISFunc&&Utils$5.setToSJISFunction(t.toSJISFunc)),createSymbol$1(e,r,o,n)};var canvas$1={},utils$2={};!function(e){function t(e){if("number"==typeof e&&(e=e.toString()),"string"!=typeof e)throw new Error("Color should be defined as hex string");var t=e.slice().replace("#","").split("");if(t.length<3||5===t.length||t.length>8)throw new Error("Invalid hex color: "+e);3!==t.length&&4!==t.length||(t=Array.prototype.concat.apply([],t.map((function(e){return[e,e]})))),6===t.length&&t.push("F","F");var r=parseInt(t.join(""),16);return{r:r>>24&255,g:r>>16&255,b:r>>8&255,a:255&r,hex:"#"+t.slice(0,6).join("")}}e.getOptions=function(e){e||(e={}),e.color||(e.color={});var r=void 0===e.margin||null===e.margin||e.margin<0?4:e.margin,n=e.width&&e.width>=21?e.width:void 0,o=e.scale||4;return{width:n,scale:n?4:o,margin:r,color:{dark:t(e.color.dark||"#000000ff"),light:t(e.color.light||"#ffffffff")},type:e.type,rendererOpts:e.rendererOpts||{}}},e.getScale=function(e,t){return t.width&&t.width>=e+2*t.margin?t.width/(e+2*t.margin):t.scale},e.getImageWidth=function(t,r){var n=e.getScale(t,r);return Math.floor((t+2*r.margin)*n)},e.qrToImageData=function(t,r,n){for(var o=r.modules.size,i=r.modules.data,s=e.getScale(o,n),a=Math.floor((o+2*n.margin)*s),c=n.margin*s,u=[n.color.light,n.color.dark],l=0;l=c&&d>=c&&l0&&c>0&&e[a-1]||(n+=i?svgCmd$1("M",c+r,.5+u+r):svgCmd$1("m",o,0),o=0,i=!1),c+1':"",c="',u='viewBox="0 0 '+s+" "+s+'"',l=''+a+c+"\n";return"function"==typeof r&&r(null,l),l};var canPromise$2=canPromise$3,QRCode$2=qrcode$1,CanvasRenderer$1=canvas$1,SvgRenderer$1=svgTag$1;function renderCanvas$1(e,t,r,n,o){var i=[].slice.call(arguments,1),s=i.length,a="function"==typeof i[s-1];if(!a&&!canPromise$2())throw new Error("Callback required as last argument");if(!a){if(s<1)throw new Error("Too few arguments provided");return 1===s?(r=t,t=n=void 0):2!==s||t.getContext||(n=r,r=t,t=void 0),new Promise((function(o,i){try{var s=QRCode$2.create(r,n);o(e(s,t,n))}catch(a){i(a)}}))}if(s<2)throw new Error("Too few arguments provided");2===s?(o=r,r=t,t=n=void 0):3===s&&(t.getContext&&void 0===o?(o=n,n=void 0):(o=n,n=r,r=t,t=void 0));try{var c=QRCode$2.create(r,n);o(null,e(c,t,n))}catch(u){o(u)}}browser$1.create=QRCode$2.create,browser$1.toCanvas=renderCanvas$1.bind(null,CanvasRenderer$1.render),browser$1.toDataURL=renderCanvas$1.bind(null,CanvasRenderer$1.renderToDataURL),browser$1.toString=renderCanvas$1.bind(null,(function(e,t,r){return SvgRenderer$1.render(e,r)}));var toggleSelection=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,r=[],n=0;n3)for(r=[r],n=3;n2&&(t.children=c$4.slice.call(arguments,2)),r={},t)"key"!==n&&"ref"!==n&&(r[n]=t[n]);return p$2(e.type,r,t.key||e.key,t.ref||e.ref,null)}function M$2(e){var t={},r={__c:"__cC"+f$2++,__:e,Consumer:function(e,t){return e.children(t)},Provider:function(e){var n,o=this;return this.getChildContext||(n=[],this.getChildContext=function(){return t[r.__c]=o,t},this.shouldComponentUpdate=function(e){o.props.value!==e.value&&n.some((function(t){t.context=e.value,g$2(t)}))},this.sub=function(e){n.push(e);var t=e.componentWillUnmount;e.componentWillUnmount=function(){n.splice(n.indexOf(e),1),t&&t.call(e)}}),e.children}};return r.Consumer.contextType=r,r.Provider.__=r,r}n$6={__e:function(e,t){for(var r,n;t=t.__;)if((r=t.__c)&&!r.__)try{if(r.constructor&&null!=r.constructor.getDerivedStateFromError&&(n=!0,r.setState(r.constructor.getDerivedStateFromError(e))),null!=r.componentDidCatch&&(n=!0,r.componentDidCatch(e)),n)return g$2(r.__E=r)}catch(o){e=o}throw e}},m$2.prototype.setState=function(e,t){var r;r=this.__s!==this.state?this.__s:this.__s=a$3({},this.state),"function"==typeof e&&(e=e(r,this.props)),e&&a$3(r,e),null!=e&&this.__v&&(t&&this.__h.push(t),g$2(this))},m$2.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),g$2(this))},m$2.prototype.render=d$3,u$3=[],i$5=0,t$6="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,o$6=e$7,f$2=0;var t$5,u$2,r$3,i$4=0,o$5=[],c$3=n$6.__r,f$1=n$6.diffed,e$6=n$6.__c,a$2=n$6.unmount;function v$1(e,t){n$6.__h&&n$6.__h(u$2,e,i$4||t),i$4=0;var r=u$2.__H||(u$2.__H={__:[],__h:[]});return e>=r.__.length&&r.__.push({}),r.__[e]}function m$1(e){return i$4=1,p$1(E$2,e)}function p$1(e,t,r){var n=v$1(t$5++,2);return n.__c||(n.__c=u$2,n.__=[r?r(t):E$2(void 0,t),function(t){var r=e(n.__[0],t);n.__[0]!==r&&(n.__[0]=r,n.__c.setState({}))}]),n.__}function l$5(e,t){var r=v$1(t$5++,3);!n$6.__s&&x$1(r.__H,t)&&(r.__=e,r.__H=t,u$2.__H.__h.push(r))}function y$2(e,t){var r=v$1(t$5++,4);!n$6.__s&&x$1(r.__H,t)&&(r.__=e,r.__H=t,u$2.__h.push(r))}function d$2(e){return i$4=5,h$3((function(){return{current:e}}),[])}function s$5(e,t,r){i$4=6,y$2((function(){"function"==typeof e?e(t()):e&&(e.current=t())}),null==r?r:r.concat(e))}function h$3(e,t){var r=v$1(t$5++,7);return x$1(r.__H,t)?(r.__H=t,r.__h=e,r.__=e()):r.__}function T$2(e,t){return i$4=8,h$3((function(){return e}),t)}function w$2(e){var t=u$2.context[e.__c],r=v$1(t$5++,9);return r.__c=e,t?(null==r.__&&(r.__=!0,t.sub(u$2)),t.props.value):e.__}function A$2(e,t){n$6.useDebugValue&&n$6.useDebugValue(t?t(e):e)}function F$1(e){var t=v$1(t$5++,10),r=m$1();return t.__=e,u$2.componentDidCatch||(u$2.componentDidCatch=function(e){t.__&&t.__(e),r[1](e)}),[r[0],function(){r[1](void 0)}]}function _$2(){o$5.some((function(e){if(e.__P)try{e.__H.__h.forEach(g$1),e.__H.__h.forEach(q$1),e.__H.__h=[]}catch(t){return e.__H.__h=[],n$6.__e(t,e.__v),!0}})),o$5=[]}function g$1(e){e.t&&e.t()}function q$1(e){var t=e.__();"function"==typeof t&&(e.t=t)}function x$1(e,t){return!e||t.some((function(t,r){return t!==e[r]}))}function E$2(e,t){return"function"==typeof t?t(e):t}function E$1(e,t){for(var r in t)e[r]=t[r];return e}function w$1(e,t){for(var r in e)if("__source"!==r&&!(r in t))return!0;for(var n in t)if("__source"!==n&&e[n]!==t[n])return!0;return!1}n$6.__r=function(e){c$3&&c$3(e),t$5=0,(u$2=e.__c).__H&&(u$2.__H.__h.forEach(g$1),u$2.__H.__h.forEach(q$1),u$2.__H.__h=[])},n$6.diffed=function(e){f$1&&f$1(e);var t=e.__c;if(t){var r=t.__H;r&&r.__h.length&&(1!==o$5.push(t)&&r$3===n$6.requestAnimationFrame||((r$3=n$6.requestAnimationFrame)||function(e){var t,r=function(){clearTimeout(n),cancelAnimationFrame(t),setTimeout(e)},n=setTimeout(r,100);"undefined"!=typeof window&&(t=requestAnimationFrame(r))})(_$2))}},n$6.__c=function(e,t){t.some((function(e){try{e.__h.forEach(g$1),e.__h=e.__h.filter((function(e){return!e.__||q$1(e)}))}catch(r){t.some((function(e){e.__h&&(e.__h=[])})),t=[],n$6.__e(r,e.__v)}})),e$6&&e$6(e,t)},n$6.unmount=function(e){a$2&&a$2(e);var t=e.__c;if(t){var r=t.__H;if(r)try{r.__.forEach((function(e){return e.t&&e.t()}))}catch(n){n$6.__e(n,t.__v)}}};var C$1=function(e){var t,r;function n(t){var r;return(r=e.call(this,t)||this).isPureReactComponent=!0,r}return r=e,(t=n).prototype=Object.create(r.prototype),t.prototype.constructor=t,t.__proto__=r,n.prototype.shouldComponentUpdate=function(e,t){return w$1(this.props,e)||w$1(this.state,t)},n}(m$2);function _$1(e,t){function r(e){var r=this.props.ref,n=r==e.ref;return!n&&r&&(r.call?r(null):r.current=null),t?!t(this.props,e)||!n:w$1(this.props,e)}function n(t){return this.shouldComponentUpdate=r,h$4(e,E$1({},t))}return n.prototype.isReactComponent=!0,n.displayName="Memo("+(e.displayName||e.name)+")",n.t=!0,n}var A$1=n$6.__b;function S$2(e){function t(t){var r=E$1({},t);return delete r.ref,e(r,t.ref)}return t.prototype.isReactComponent=t.t=!0,t.displayName="ForwardRef("+(e.displayName||e.name)+")",t}n$6.__b=function(e){e.type&&e.type.t&&e.ref&&(e.props.ref=e.ref,e.ref=null),A$1&&A$1(e)};var k$1=function(e,t){return e?x$2(e).reduce((function(e,r,n){return e.concat(t(r,n))}),[]):null},R$1={map:k$1,forEach:k$1,count:function(e){return e?x$2(e).length:0},only:function(e){if(1!==(e=x$2(e)).length)throw new Error("Children.only() expects only one child.");return e[0]},toArray:x$2},F=n$6.__e;function N$1(e){return e&&((e=E$1({},e)).__c=null,e.__k=e.__k&&e.__k.map(N$1)),e}function U(){this.__u=0,this.o=null,this.__b=null}function M$1(e){var t=e.__.__c;return t&&t.u&&t.u(e)}function L$1(e){var t,r,n;function o(o){if(t||(t=e()).then((function(e){r=e.default||e}),(function(e){n=e})),n)throw n;if(!r)throw t;return h$4(r,o)}return o.displayName="Lazy",o.t=!0,o}function O(){this.i=null,this.l=null}n$6.__e=function(e,t,r){if(e.then)for(var n,o=t;o=o.__;)if((n=o.__c)&&n.__c)return n.__c(e,t.__c);F(e,t,r)},(U.prototype=new m$2).__c=function(e,t){var r=this;null==r.o&&(r.o=[]),r.o.push(t);var n=M$1(r.__v),o=!1,i=function(){o||(o=!0,n?n(s):s())};t.__c=t.componentWillUnmount,t.componentWillUnmount=function(){i(),t.__c&&t.__c()};var s=function(){var e;if(! --r.__u)for(r.__v.__k[0]=r.state.u,r.setState({u:r.__b=null});e=r.o.pop();)e.forceUpdate()};r.__u++||r.setState({u:r.__b=r.__v.__k[0]}),e.then(i,i)},U.prototype.render=function(e,t){return this.__b&&(this.__v.__k[0]=N$1(this.__b),this.__b=null),[h$4(m$2,null,t.u?null:e.children),t.u&&e.fallback]};var P$1=function(e,t,r){if(++r[1]===r[0]&&e.l.delete(t),e.props.revealOrder&&("t"!==e.props.revealOrder[0]||!e.l.size))for(r=e.i;r;){for(;r.length>3;)r.pop()();if(r[1]8?2.5:2.7)+"vw":"inherit";return React.createElement("a",{className:"walletconnect-connect__button__icon_anchor",href:r,onClick:i,rel:"noopener noreferrer",target:"_blank"},React.createElement("div",{className:"walletconnect-connect__button__icon",style:{background:"url('"+o+"') "+t,backgroundSize:"100%"}}),React.createElement("div",{style:{fontSize:s},className:"walletconnect-connect__button__text"},n))}var GRID_MIN_COUNT=5,LINKS_PER_PAGE=12;function LinkDisplay(e){var t=browserUtils.isAndroid(),r=React.useState(""),n=r[0],o=r[1],i=React.useState(""),s=i[0],a=i[1],c=React.useState(1),u=c[0],l=c[1],d=s?e.links.filter((function(e){return e.name.toLowerCase().includes(s.toLowerCase())})):e.links,h=e.errorMessage,f=s||d.length>GRID_MIN_COUNT,p=Math.ceil(d.length/LINKS_PER_PAGE),m=[(u-1)*LINKS_PER_PAGE+1,u*LINKS_PER_PAGE],y=d.length?d.filter((function(e,t){return t+1>=m[0]&&t+1<=m[1]})):[],g=!(t||!(p>1)),b=void 0;return React.createElement("div",null,React.createElement("p",{id:WALLETCONNECT_CTA_TEXT_ID,className:"walletconnect-qrcode__text"},t?e.text.connect_mobile_wallet:e.text.choose_preferred_wallet),!t&&React.createElement("input",{className:"walletconnect-search__input",placeholder:"Search",value:n,onChange:function(e){o(e.target.value),clearTimeout(b),e.target.value?b=setTimeout((function(){a(e.target.value),l(1)}),1e3):(o(""),a(""),l(1))}}),React.createElement("div",{className:"walletconnect-connect__buttons__wrapper"+(t?"__android":f&&d.length?"__wrap":"")},t?React.createElement(ConnectButton,{name:e.text.connect,color:DEFAULT_BUTTON_COLOR,href:e.uri,onClick:React.useCallback((function(){browserUtils.saveMobileLinkInfo({name:"Unknown",href:e.uri})}),[])}):y.length?y.map((function(t){var r=t.color,n=t.name,o=t.shortName,i=t.logo,s=browserUtils.formatIOSMobile(e.uri,t),a=React.useCallback((function(){browserUtils.saveMobileLinkInfo({name:n,href:s})}),[y]);return f?React.createElement(WalletIcon,{color:r,href:s,name:o||n,logo:i,onClick:a}):React.createElement(WalletButton,{color:r,href:s,name:n,logo:i,onClick:a})})):React.createElement(React.Fragment,null,React.createElement("p",null,h.length?e.errorMessage:e.links.length&&!d.length?e.text.no_wallets_found:e.text.loading))),g&&React.createElement("div",{className:"walletconnect-modal__footer"},Array(p).fill(0).map((function(e,t){var r=t+1,n=u===r;return React.createElement("a",{style:{margin:"auto 10px",fontWeight:n?"bold":"normal"},onClick:function(){return l(r)}},r)}))))}function Notification(e){var t=!!e.message.trim();return React.createElement("div",{className:"walletconnect-qrcode__notification"+(t?" notification__show":"")},e.message)}var formatQRCodeImage=function(e){try{var t="";return Promise.resolve(QRCode$1.toString(e,{margin:0,type:"svg"})).then((function(e){return"string"==typeof e&&(t=e.replace("0||React.useEffect((function(){!function(){try{if(t)return Promise.resolve();s(!0);var o=_catch((function(){var t=e.qrcodeModalOptions&&e.qrcodeModalOptions.registryUrl?e.qrcodeModalOptions.registryUrl:browserUtils.getWalletRegistryUrl();return Promise.resolve(fetch(t)).then((function(t){return Promise.resolve(t.json()).then((function(t){var o=t.listings,i=r?"mobile":"desktop",a=browserUtils.getMobileLinkRegistry(browserUtils.formatMobileRegistry(o,i),n);s(!1),u(!0),A(a.length?"":e.text.no_supported_wallets),$(a);var c=1===a.length;c&&(y(browserUtils.formatIOSMobile(e.uri,a[0])),h(!0)),w(c)}))}))}),(function(t){s(!1),u(!0),A(e.text.something_went_wrong),console.error(t)}));return Promise.resolve(o&&o.then?o.then((function(){})):void 0)}catch(i){return Promise.reject(i)}}()}))};S();var E=r?d:!d;return React.createElement("div",{id:WALLETCONNECT_MODAL_ID,className:"walletconnect-qrcode__base animated fadeIn"},React.createElement("div",{className:"walletconnect-modal__base"},React.createElement(Header,{onClose:e.onClose}),b&&d?React.createElement("div",{className:"walletconnect-modal__single_wallet"},React.createElement("a",{onClick:function(){return browserUtils.saveMobileLinkInfo({name:v[0].name,href:m})},href:m,rel:"noopener noreferrer",target:"_blank"},e.text.connect_with+" "+(b?v[0].name:"")+" ›")):t||i||!i&&v.length?React.createElement("div",{className:"walletconnect-modal__mobile__toggle"+(E?" right__selected":"")},React.createElement("div",{className:"walletconnect-modal__mobile__toggle_selector"}),r?React.createElement(React.Fragment,null,React.createElement("a",{onClick:function(){return h(!1),S()}},e.text.mobile),React.createElement("a",{onClick:function(){return h(!0)}},e.text.qrcode)):React.createElement(React.Fragment,null,React.createElement("a",{onClick:function(){return h(!0)}},e.text.qrcode),React.createElement("a",{onClick:function(){return h(!1),S()}},e.text.desktop))):null,React.createElement("div",null,d||!t&&!i&&!v.length?React.createElement(QRCodeDisplay,Object.assign({},f)):React.createElement(LinkDisplay,Object.assign({},f,{links:v,errorMessage:k})))))}var de={choose_preferred_wallet:"Wähle bevorzugte Wallet",connect_mobile_wallet:"Verbinde mit Mobile Wallet",scan_qrcode_with_wallet:"Scanne den QR-code mit einer WalletConnect kompatiblen Wallet",connect:"Verbinden",qrcode:"QR-Code",mobile:"Mobile",desktop:"Desktop",copy_to_clipboard:"In die Zwischenablage kopieren",copied_to_clipboard:"In die Zwischenablage kopiert!",connect_with:"Verbinden mit Hilfe von",loading:"Laden...",something_went_wrong:"Etwas ist schief gelaufen",no_supported_wallets:"Es gibt noch keine unterstützten Wallet",no_wallets_found:"keine Wallet gefunden"},en={choose_preferred_wallet:"Choose your preferred wallet",connect_mobile_wallet:"Connect to Mobile Wallet",scan_qrcode_with_wallet:"Scan QR code with a WalletConnect-compatible wallet",connect:"Connect",qrcode:"QR Code",mobile:"Mobile",desktop:"Desktop",copy_to_clipboard:"Copy to clipboard",copied_to_clipboard:"Copied to clipboard!",connect_with:"Connect with",loading:"Loading...",something_went_wrong:"Something went wrong",no_supported_wallets:"There are no supported wallets yet",no_wallets_found:"No wallets found"},es={choose_preferred_wallet:"Elige tu billetera preferida",connect_mobile_wallet:"Conectar a billetera móvil",scan_qrcode_with_wallet:"Escanea el código QR con una billetera compatible con WalletConnect",connect:"Conectar",qrcode:"Código QR",mobile:"Móvil",desktop:"Desktop",copy_to_clipboard:"Copiar",copied_to_clipboard:"Copiado!",connect_with:"Conectar mediante",loading:"Cargando...",something_went_wrong:"Algo salió mal",no_supported_wallets:"Todavía no hay billeteras compatibles",no_wallets_found:"No se encontraron billeteras"},fr={choose_preferred_wallet:"Choisissez votre portefeuille préféré",connect_mobile_wallet:"Se connecter au portefeuille mobile",scan_qrcode_with_wallet:"Scannez le QR code avec un portefeuille compatible WalletConnect",connect:"Se connecter",qrcode:"QR Code",mobile:"Mobile",desktop:"Desktop",copy_to_clipboard:"Copier",copied_to_clipboard:"Copié!",connect_with:"Connectez-vous à l'aide de",loading:"Chargement...",something_went_wrong:"Quelque chose a mal tourné",no_supported_wallets:"Il n'y a pas encore de portefeuilles pris en charge",no_wallets_found:"Aucun portefeuille trouvé"},ko={choose_preferred_wallet:"원하는 지갑을 선택하세요",connect_mobile_wallet:"모바일 지갑과 연결",scan_qrcode_with_wallet:"WalletConnect 지원 지갑에서 QR코드를 스캔하세요",connect:"연결",qrcode:"QR 코드",mobile:"모바일",desktop:"데스크탑",copy_to_clipboard:"클립보드에 복사",copied_to_clipboard:"클립보드에 복사되었습니다!",connect_with:"와 연결하다",loading:"로드 중...",something_went_wrong:"문제가 발생했습니다.",no_supported_wallets:"아직 지원되는 지갑이 없습니다",no_wallets_found:"지갑을 찾을 수 없습니다"},pt={choose_preferred_wallet:"Escolha sua carteira preferida",connect_mobile_wallet:"Conectar-se à carteira móvel",scan_qrcode_with_wallet:"Ler o código QR com uma carteira compatível com WalletConnect",connect:"Conectar",qrcode:"Código QR",mobile:"Móvel",desktop:"Desktop",copy_to_clipboard:"Copiar",copied_to_clipboard:"Copiado!",connect_with:"Ligar por meio de",loading:"Carregamento...",something_went_wrong:"Algo correu mal",no_supported_wallets:"Ainda não há carteiras suportadas",no_wallets_found:"Nenhuma carteira encontrada"},zh={choose_preferred_wallet:"选择你的钱包",connect_mobile_wallet:"连接至移动端钱包",scan_qrcode_with_wallet:"使用兼容 WalletConnect 的钱包扫描二维码",connect:"连接",qrcode:"二维码",mobile:"移动",desktop:"桌面",copy_to_clipboard:"复制到剪贴板",copied_to_clipboard:"复制到剪贴板成功!",connect_with:"通过以下方式连接",loading:"正在加载...",something_went_wrong:"出了问题",no_supported_wallets:"目前还没有支持的钱包",no_wallets_found:"没有找到钱包"},fa={choose_preferred_wallet:"کیف پول مورد نظر خود را انتخاب کنید",connect_mobile_wallet:"به کیف پول موبایل وصل شوید",scan_qrcode_with_wallet:"کد QR را با یک کیف پول سازگار با WalletConnect اسکن کنید",connect:"اتصال",qrcode:"کد QR",mobile:"سیار",desktop:"دسکتاپ",copy_to_clipboard:"کپی به کلیپ بورد",copied_to_clipboard:"در کلیپ بورد کپی شد!",connect_with:"ارتباط با",loading:"...بارگذاری",something_went_wrong:"مشکلی پیش آمد",no_supported_wallets:"هنوز هیچ کیف پول پشتیبانی شده ای وجود ندارد",no_wallets_found:"هیچ کیف پولی پیدا نشد"},languages={de:de,en:en,es:es,fr:fr,ko:ko,pt:pt,zh:zh,fa:fa};function injectStyleSheet(){var e=browserUtils.getDocumentOrThrow(),t=e.getElementById(WALLETCONNECT_STYLE_ID);t&&e.head.removeChild(t);var r=e.createElement("style");r.setAttribute("id",WALLETCONNECT_STYLE_ID),r.innerText=WALLETCONNECT_STYLE_SHEET,e.head.appendChild(r)}function renderWrapper(){var e=browserUtils.getDocumentOrThrow(),t=e.createElement("div");return t.setAttribute("id",WALLETCONNECT_WRAPPER_ID),e.body.appendChild(t),t}function triggerCloseAnimation(){var e=browserUtils.getDocumentOrThrow(),t=e.getElementById(WALLETCONNECT_MODAL_ID);t&&(t.className=t.className.replace("fadeIn","fadeOut"),setTimeout((function(){var t=e.getElementById(WALLETCONNECT_WRAPPER_ID);t&&e.body.removeChild(t)}),ANIMATION_DURATION))}function getWrappedCallback(e){return function(){triggerCloseAnimation(),e&&e()}}function getText(){var e=browserUtils.getNavigatorOrThrow().language.split("-")[0]||"en";return languages[e]||languages.en}function open$1(e,t,r){injectStyleSheet();var n=renderWrapper();React.render(React.createElement(Modal,{text:getText(),uri:e,onClose:getWrappedCallback(t),qrcodeModalOptions:r}),n)}function close$1(){triggerCloseAnimation()}var isNode=function(){return void 0!==process$1&&void 0!==process$1.versions&&void 0!==process$1.versions.node};function open$2(e,t,r){console.log(e),isNode()?open(e):open$1(e,t,r)}function close$2(){isNode()||close$1()}var index$1={open:open$2,close:close$2},cjs=index$1;const QRCodeModal=getDefaultExportFromCjs$1(cjs),t$4=Symbol(),s$4=Object.getPrototypeOf,c$2=new WeakMap,l$4=e=>e&&(c$2.has(e)?c$2.get(e):s$4(e)===Object.prototype||s$4(e)===Array.prototype),y$1=e=>l$4(e)&&e[t$4]||null,h$2=(e,t=!0)=>{c$2.set(e,t)},isObject=e=>"object"==typeof e&&null!==e,proxyStateMap=new WeakMap,refSet=new WeakSet,buildProxyFunction=(e=Object.is,t=(e,t)=>new Proxy(e,t),r=e=>isObject(e)&&!refSet.has(e)&&(Array.isArray(e)||!(Symbol.iterator in e))&&!(e instanceof WeakMap)&&!(e instanceof WeakSet)&&!(e instanceof Error)&&!(e instanceof Number)&&!(e instanceof Date)&&!(e instanceof String)&&!(e instanceof RegExp)&&!(e instanceof ArrayBuffer),n=e=>{switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:throw e}},o=new WeakMap,i=(e,t,r=n)=>{const s=o.get(e);if((null==s?void 0:s[0])===t)return s[1];const a=Array.isArray(e)?[]:Object.create(Object.getPrototypeOf(e));return h$2(a,!0),o.set(e,[t,a]),Reflect.ownKeys(e).forEach((t=>{if(Object.getOwnPropertyDescriptor(a,t))return;const n=Reflect.get(e,t),o={value:n,enumerable:!0,configurable:!0};if(refSet.has(n))h$2(n,!1);else if(n instanceof Promise)delete o.value,o.get=()=>r(n);else if(proxyStateMap.has(n)){const[e,t]=proxyStateMap.get(n);o.value=i(e,t(),r)}Object.defineProperty(a,t,o)})),Object.preventExtensions(a)},s=new WeakMap,a=[1,1],c=n=>{if(!isObject(n))throw new Error("object required");const o=s.get(n);if(o)return o;let u=a[0];const l=new Set,d=(e,t=++a[0])=>{u!==t&&(u=t,l.forEach((r=>r(e,t))))};let h=a[1];const f=e=>(t,r)=>{const n=[...t];n[1]=[e,...n[1]],d(n,r)},p=new Map,m=e=>{var t;const r=p.get(e);r&&(p.delete(e),null==(t=r[1])||t.call(r))},y=Array.isArray(n)?[]:Object.create(Object.getPrototypeOf(n)),g=t(y,{deleteProperty(e,t){const r=Reflect.get(e,t);m(t);const n=Reflect.deleteProperty(e,t);return n&&d(["delete",[t],r]),n},set(t,n,o,i){const a=Reflect.has(t,n),u=Reflect.get(t,n,i);if(a&&(e(u,o)||s.has(o)&&e(u,s.get(o))))return!0;m(n),isObject(o)&&(o=y$1(o)||o);let h=o;if(o instanceof Promise)o.then((e=>{o.status="fulfilled",o.value=e,d(["resolve",[n],e])})).catch((e=>{o.status="rejected",o.reason=e,d(["reject",[n],e])}));else{!proxyStateMap.has(o)&&r(o)&&(h=c(o));const e=!refSet.has(h)&&proxyStateMap.get(h);e&&((e,t)=>{if(l.size){const r=t[3](f(e));p.set(e,[t,r])}else p.set(e,[t])})(n,e)}return Reflect.set(t,n,h,i),d(["set",[n],o,u]),!0}});s.set(n,g);const b=[y,(e=++a[1])=>(h===e||l.size||(h=e,p.forEach((([t])=>{const r=t[1](e);r>u&&(u=r)}))),u),i,e=>{l.add(e),1===l.size&&p.forEach((([e,t],r)=>{const n=e[3](f(r));p.set(r,[e,n])}));return()=>{l.delete(e),0===l.size&&p.forEach((([e,t],r)=>{t&&(t(),p.set(r,[e]))}))}}];return proxyStateMap.set(g,b),Reflect.ownKeys(n).forEach((e=>{const t=Object.getOwnPropertyDescriptor(n,e);"value"in t&&(g[e]=n[e],delete t.value,delete t.writable),Object.defineProperty(y,e,t)})),g})=>[c,proxyStateMap,refSet,e,t,r,n,o,i,s,a],[defaultProxyFunction]=buildProxyFunction();function proxy(e={}){return defaultProxyFunction(e)}function subscribe(e,t,r){const n=proxyStateMap.get(e);let o;const i=[],s=n[3];let a=!1;const c=s((e=>{i.push(e),o||(o=Promise.resolve().then((()=>{o=void 0,a&&t(i.splice(0))})))}));return a=!0,()=>{a=!1,c()}}function snapshot(e,t){const r=proxyStateMap.get(e),[n,o,i]=r;return i(n,o(),t)}const state$7=proxy({history:["ConnectWallet"],view:"ConnectWallet",data:void 0}),RouterCtrl={state:state$7,subscribe:e=>subscribe(state$7,(()=>e(state$7))),push(e,t){e!==state$7.view&&(state$7.view=e,t&&(state$7.data=t),state$7.history.push(e))},reset(e){state$7.view=e,state$7.history=[e]},replace(e){state$7.history.length>1&&(state$7.history[state$7.history.length-1]=e,state$7.view=e)},goBack(){if(state$7.history.length>1){state$7.history.pop();const[e]=state$7.history.slice(-1);state$7.view=e}},setData(e){state$7.data=e}},CoreUtil={WALLETCONNECT_DEEPLINK_CHOICE:"WALLETCONNECT_DEEPLINK_CHOICE",WCM_VERSION:"WCM_VERSION",RECOMMENDED_WALLET_AMOUNT:9,isMobile:()=>"undefined"!=typeof window&&Boolean(window.matchMedia("(pointer:coarse)").matches||/Android|webOS|iPhone|iPad|iPod|BlackBerry|Opera Mini/u.test(navigator.userAgent)),isAndroid:()=>CoreUtil.isMobile()&&navigator.userAgent.toLowerCase().includes("android"),isIos(){const e=navigator.userAgent.toLowerCase();return CoreUtil.isMobile()&&(e.includes("iphone")||e.includes("ipad"))},isHttpUrl:e=>e.startsWith("http://")||e.startsWith("https://"),isArray:e=>Array.isArray(e)&&e.length>0,isTelegram:()=>"undefined"!=typeof window&&(Boolean(window.TelegramWebviewProxy)||Boolean(window.Telegram)||Boolean(window.TelegramWebviewProxyProto)),formatNativeUrl(e,t,r){if(CoreUtil.isHttpUrl(e))return this.formatUniversalUrl(e,t,r);let n=e;n.includes("://")||(n=e.replaceAll("/","").replaceAll(":",""),n=`${n}://`),n.endsWith("/")||(n=`${n}/`),this.setWalletConnectDeepLink(n,r);return`${n}wc?uri=${encodeURIComponent(t)}`},formatUniversalUrl(e,t,r){if(!CoreUtil.isHttpUrl(e))return this.formatNativeUrl(e,t,r);let n=e;if(n.startsWith("https://t.me")){const e=Buffer$2.from(t).toString("base64").replace(/[=]/g,"");n.endsWith("/")&&(n=n.slice(0,-1)),this.setWalletConnectDeepLink(n,r);const o=new URL(n);o.searchParams.set("startapp",e);return o.toString()}n.endsWith("/")||(n=`${n}/`),this.setWalletConnectDeepLink(n,r);return`${n}wc?uri=${encodeURIComponent(t)}`},wait:async e=>new Promise((t=>{setTimeout(t,e)})),openHref(e,t){const r=this.isTelegram()?"_blank":t;window.open(e,r,"noreferrer noopener")},setWalletConnectDeepLink(e,t){try{localStorage.setItem(CoreUtil.WALLETCONNECT_DEEPLINK_CHOICE,JSON.stringify({href:e,name:t}))}catch(r){console.info("Unable to set WalletConnect deep link")}},setWalletConnectAndroidDeepLink(e){try{const[t]=e.split("?");localStorage.setItem(CoreUtil.WALLETCONNECT_DEEPLINK_CHOICE,JSON.stringify({href:t,name:"Android"}))}catch(t){console.info("Unable to set WalletConnect android deep link")}},removeWalletConnectDeepLink(){try{localStorage.removeItem(CoreUtil.WALLETCONNECT_DEEPLINK_CHOICE)}catch(e){console.info("Unable to remove WalletConnect deep link")}},setModalVersionInStorage(){try{"undefined"!=typeof localStorage&&localStorage.setItem(CoreUtil.WCM_VERSION,"2.7.0")}catch(e){console.info("Unable to set Web3Modal version in storage")}},getWalletRouterData(){var e;const t=null==(e=RouterCtrl.state.data)?void 0:e.Wallet;if(!t)throw new Error('Missing "Wallet" view data');return t}},isEnabled="undefined"!=typeof location&&(location.hostname.includes("localhost")||location.protocol.includes("https")),state$6=proxy({enabled:isEnabled,userSessionId:"",events:[],connectedWalletId:void 0}),EventsCtrl={state:state$6,subscribe:e=>subscribe(state$6.events,(()=>e(snapshot(state$6.events[state$6.events.length-1])))),initialize(){state$6.enabled&&void 0!==(null==crypto?void 0:crypto.randomUUID)&&(state$6.userSessionId=crypto.randomUUID())},setConnectedWalletId(e){state$6.connectedWalletId=e},click(e){if(state$6.enabled){const t={type:"CLICK",name:e.name,userSessionId:state$6.userSessionId,timestamp:Date.now(),data:e};state$6.events.push(t)}},track(e){if(state$6.enabled){const t={type:"TRACK",name:e.name,userSessionId:state$6.userSessionId,timestamp:Date.now(),data:e};state$6.events.push(t)}},view(e){if(state$6.enabled){const t={type:"VIEW",name:e.name,userSessionId:state$6.userSessionId,timestamp:Date.now(),data:e};state$6.events.push(t)}}},state$5=proxy({chains:void 0,walletConnectUri:void 0,isAuth:!1,isCustomDesktop:!1,isCustomMobile:!1,isDataLoaded:!1,isUiLoaded:!1}),OptionsCtrl={state:state$5,subscribe:e=>subscribe(state$5,(()=>e(state$5))),setChains(e){state$5.chains=e},setWalletConnectUri(e){state$5.walletConnectUri=e},setIsCustomDesktop(e){state$5.isCustomDesktop=e},setIsCustomMobile(e){state$5.isCustomMobile=e},setIsDataLoaded(e){state$5.isDataLoaded=e},setIsUiLoaded(e){state$5.isUiLoaded=e},setIsAuth(e){state$5.isAuth=e}},state$4=proxy({projectId:"",mobileWallets:void 0,desktopWallets:void 0,walletImages:void 0,chains:void 0,enableAuthMode:!1,enableExplorer:!0,explorerExcludedWalletIds:void 0,explorerRecommendedWalletIds:void 0,termsOfServiceUrl:void 0,privacyPolicyUrl:void 0}),ConfigCtrl={state:state$4,subscribe:e=>subscribe(state$4,(()=>e(state$4))),setConfig(e){var t,r;EventsCtrl.initialize(),OptionsCtrl.setChains(e.chains),OptionsCtrl.setIsAuth(Boolean(e.enableAuthMode)),OptionsCtrl.setIsCustomMobile(Boolean(null==(t=e.mobileWallets)?void 0:t.length)),OptionsCtrl.setIsCustomDesktop(Boolean(null==(r=e.desktopWallets)?void 0:r.length)),CoreUtil.setModalVersionInStorage(),Object.assign(state$4,e)}};var __defProp$2$1=Object.defineProperty,__getOwnPropSymbols$2=Object.getOwnPropertySymbols,__hasOwnProp$2=Object.prototype.hasOwnProperty,__propIsEnum$2=Object.prototype.propertyIsEnumerable,__defNormalProp$2=(e,t,r)=>t in e?__defProp$2$1(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,__spreadValues$2=(e,t)=>{for(var r in t||(t={}))__hasOwnProp$2.call(t,r)&&__defNormalProp$2(e,r,t[r]);if(__getOwnPropSymbols$2)for(var r of __getOwnPropSymbols$2(t))__propIsEnum$2.call(t,r)&&__defNormalProp$2(e,r,t[r]);return e};const W3M_API="https://explorer-api.walletconnect.com",SDK_TYPE="wcm",SDK_VERSION="js-2.7.0";async function fetchListings(e,t){const r=__spreadValues$2({sdkType:SDK_TYPE,sdkVersion:SDK_VERSION},t),n=new URL(e,W3M_API);n.searchParams.append("projectId",ConfigCtrl.state.projectId),Object.entries(r).forEach((([e,t])=>{t&&n.searchParams.append(e,String(t))}));return(await fetch(n)).json()}const ExplorerUtil={getDesktopListings:async e=>fetchListings("/w3m/v1/getDesktopListings",e),getMobileListings:async e=>fetchListings("/w3m/v1/getMobileListings",e),getInjectedListings:async e=>fetchListings("/w3m/v1/getInjectedListings",e),getAllListings:async e=>fetchListings("/w3m/v1/getAllListings",e),getWalletImageUrl:e=>`${W3M_API}/w3m/v1/getWalletImage/${e}?projectId=${ConfigCtrl.state.projectId}&sdkType=${SDK_TYPE}&sdkVersion=${SDK_VERSION}`,getAssetImageUrl:e=>`${W3M_API}/w3m/v1/getAssetImage/${e}?projectId=${ConfigCtrl.state.projectId}&sdkType=${SDK_TYPE}&sdkVersion=${SDK_VERSION}`};var __defProp$1$1=Object.defineProperty,__getOwnPropSymbols$1=Object.getOwnPropertySymbols,__hasOwnProp$1=Object.prototype.hasOwnProperty,__propIsEnum$1=Object.prototype.propertyIsEnumerable,__defNormalProp$1=(e,t,r)=>t in e?__defProp$1$1(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,__spreadValues$1=(e,t)=>{for(var r in t||(t={}))__hasOwnProp$1.call(t,r)&&__defNormalProp$1(e,r,t[r]);if(__getOwnPropSymbols$1)for(var r of __getOwnPropSymbols$1(t))__propIsEnum$1.call(t,r)&&__defNormalProp$1(e,r,t[r]);return e};const isMobile=CoreUtil.isMobile(),state$3=proxy({wallets:{listings:[],total:0,page:1},search:{listings:[],total:0,page:1},recomendedWallets:[]}),ExplorerCtrl={state:state$3,async getRecomendedWallets(){const{explorerRecommendedWalletIds:e,explorerExcludedWalletIds:t}=ConfigCtrl.state;if("NONE"===e||"ALL"===t&&!e)return state$3.recomendedWallets;if(CoreUtil.isArray(e)){const t={recommendedIds:e.join(",")},{listings:r}=await ExplorerUtil.getAllListings(t),n=Object.values(r);n.sort(((t,r)=>e.indexOf(t.id)-e.indexOf(r.id))),state$3.recomendedWallets=n}else{const{chains:e,isAuth:r}=OptionsCtrl.state,n=null==e?void 0:e.join(","),o=CoreUtil.isArray(t),i={page:1,sdks:r?"auth_v1":void 0,entries:CoreUtil.RECOMMENDED_WALLET_AMOUNT,chains:n,version:2,excludedIds:o?t.join(","):void 0},{listings:s}=isMobile?await ExplorerUtil.getMobileListings(i):await ExplorerUtil.getDesktopListings(i);state$3.recomendedWallets=Object.values(s)}return state$3.recomendedWallets},async getWallets(e){const t=__spreadValues$1({},e),{explorerRecommendedWalletIds:r,explorerExcludedWalletIds:n}=ConfigCtrl.state,{recomendedWallets:o}=state$3;if("ALL"===n)return state$3.wallets;o.length?t.excludedIds=o.map((e=>e.id)).join(","):CoreUtil.isArray(r)&&(t.excludedIds=r.join(",")),CoreUtil.isArray(n)&&(t.excludedIds=[t.excludedIds,n].filter(Boolean).join(",")),OptionsCtrl.state.isAuth&&(t.sdks="auth_v1");const{page:i,search:s}=e,{listings:a,total:c}=isMobile?await ExplorerUtil.getMobileListings(t):await ExplorerUtil.getDesktopListings(t),u=Object.values(a),l=s?"search":"wallets";return state$3[l]={listings:[...state$3[l].listings,...u],total:c,page:null!=i?i:1},{listings:u,total:c}},getWalletImageUrl:e=>ExplorerUtil.getWalletImageUrl(e),getAssetImageUrl:e=>ExplorerUtil.getAssetImageUrl(e),resetSearch(){state$3.search={listings:[],total:0,page:1}}},state$2=proxy({open:!1}),ModalCtrl={state:state$2,subscribe:e=>subscribe(state$2,(()=>e(state$2))),open:async e=>new Promise((t=>{const{isUiLoaded:r,isDataLoaded:n}=OptionsCtrl.state;if(CoreUtil.removeWalletConnectDeepLink(),OptionsCtrl.setWalletConnectUri(null==e?void 0:e.uri),OptionsCtrl.setChains(null==e?void 0:e.chains),RouterCtrl.reset("ConnectWallet"),r&&n)state$2.open=!0,t();else{const e=setInterval((()=>{const r=OptionsCtrl.state;r.isUiLoaded&&r.isDataLoaded&&(clearInterval(e),state$2.open=!0,t())}),200)}})),close(){state$2.open=!1}};var __defProp$z=Object.defineProperty,__getOwnPropSymbols$3=Object.getOwnPropertySymbols,__hasOwnProp$3=Object.prototype.hasOwnProperty,__propIsEnum$3=Object.prototype.propertyIsEnumerable,__defNormalProp$3=(e,t,r)=>t in e?__defProp$z(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,__spreadValues$3=(e,t)=>{for(var r in t||(t={}))__hasOwnProp$3.call(t,r)&&__defNormalProp$3(e,r,t[r]);if(__getOwnPropSymbols$3)for(var r of __getOwnPropSymbols$3(t))__propIsEnum$3.call(t,r)&&__defNormalProp$3(e,r,t[r]);return e};function isDarkMode(){return"undefined"!=typeof matchMedia&&matchMedia("(prefers-color-scheme: dark)").matches}const state$1=proxy({themeMode:isDarkMode()?"dark":"light"}),ThemeCtrl={state:state$1,subscribe:e=>subscribe(state$1,(()=>e(state$1))),setThemeConfig(e){const{themeMode:t,themeVariables:r}=e;t&&(state$1.themeMode=t),r&&(state$1.themeVariables=__spreadValues$3({},r))}},state=proxy({open:!1,message:"",variant:"success"}),ToastCtrl={state:state,subscribe:e=>subscribe(state,(()=>e(state))),openToast(e,t){state.open=!0,state.message=e,state.variant=t},closeToast(){state.open=!1}};class WalletConnectModal{constructor(e){this.openModal=ModalCtrl.open,this.closeModal=ModalCtrl.close,this.subscribeModal=ModalCtrl.subscribe,this.setTheme=ThemeCtrl.setThemeConfig,ThemeCtrl.setThemeConfig(e),ConfigCtrl.setConfig(e),this.initUi()}async initUi(){if("undefined"!=typeof window){await Promise.resolve().then((()=>index));const e=document.createElement("wcm-modal");document.body.insertAdjacentElement("beforeend",e),OptionsCtrl.setIsUiLoaded(!0)}}}let DefaultLogger$1=class{constructor(e="info"){this.logLevel="info",this.logLevel=e}setLogLevel(e){this.logLevel=e}getLogLevel(){return this.logLevel}error(e,...t){["error","warn","info","debug"].includes(this.logLevel)&&console.error(`[ERROR] ${e}`,...t)}warn(e,...t){["warn","info","debug"].includes(this.logLevel)&&console.warn(`[WARN] ${e}`,...t)}info(e,...t){["info","debug"].includes(this.logLevel)&&console.info(`[INFO] ${e}`,...t)}debug(e,...t){"debug"===this.logLevel&&console.debug(`[DEBUG] ${e}`,...t)}};class SessionNotFoundError extends Error{constructor(e){super(e),this.name="SessionNotFoundError"}}const clients={};class DAppSigner{constructor(e,t,r,n=r$x.MAINNET,o,i="debug"){this.accountId=e,this.signClient=t,this.topic=r,this.ledgerId=n,this.extensionId=o,this.logger=new DefaultLogger$1(i)}setLogLevel(e){this.logger instanceof DefaultLogger$1&&this.logger.setLogLevel(e)}_getHederaClient(){const e=this.ledgerId.toString();return clients[e]||(clients[e]=i$9.forName(e)),clients[e]}get _signerAccountId(){return`${ledgerIdToCAIPChainId(this.ledgerId)}:${this.accountId.toString()}`}_getRandomNodes(e){const t=Object.values(this._getHederaClient().network).map((e=>"string"==typeof e?f$8.fromString(e):e));for(let r=t.length-1;r>0;r--){const e=Math.floor(Math.random()*(r+1));[t[r],t[e]]=[t[e],t[r]]}return t.slice(0,e)}request(e){var t,r;if(!(null===(r=null===(t=null==this?void 0:this.signClient)||void 0===t?void 0:t.session)||void 0===r?void 0:r.get(this.topic)))throw this.logger.error("Session no longer exists, signer will be removed. Please reconnect to the wallet."),this.signClient.emit({topic:this.topic,event:{name:"session_delete",data:{topic:this.topic}},chainId:ledgerIdToCAIPChainId(this.ledgerId)}),new SessionNotFoundError("Session no longer exists. Please reconnect to the wallet.");return this.extensionId&&extensionOpen(this.extensionId),this.signClient.request({topic:this.topic,request:e,chainId:ledgerIdToCAIPChainId(this.ledgerId)})}getAccountId(){return this.accountId}getAccountKey(){throw new Error("Method not implemented.")}getLedgerId(){return this.ledgerId}getNetwork(){return this._getHederaClient().network}getMirrorNetwork(){return this._getHederaClient().mirrorNetwork}getAccountBalance(){return this.call((new e$r).setAccountId(this.accountId))}getAccountInfo(){return this.call((new c$d).setAccountId(this.accountId))}getAccountRecords(){return this.call((new e$q).setAccountId(this.accountId))}getMetadata(){return this.signClient.metadata}async sign(e,t={encoding:"utf-8"}){try{const r="base64"===t.encoding?Uint8ArrayToBase64String(e[0]):Uint8ArrayToString(e[0]),{signatureMap:n}=await this.request({method:HederaJsonRpcMethod.SignMessage,params:{signerAccountId:this._signerAccountId,message:r}}),o=base64StringToSignatureMap(n),i=new t$8({accountId:this.getAccountId(),publicKey:i$m.fromBytes(o.sigPair[0].pubKeyPrefix),signature:o.sigPair[0].ed25519||o.sigPair[0].ECDSASecp256k1});return this.logger.debug("Data signed successfully"),[i]}catch(r){throw this.logger.error("Error signing data:",r),r}}async checkTransaction(e){throw new Error("Method not implemented.")}async populateTransaction(e){return e.setNodeAccountIds(this._getRandomNodes(10)).setTransactionId(i$j.generate(this.getAccountId()))}async signTransaction(e){let t;t=e.nodeAccountIds&&0!==e.nodeAccountIds.length?e.nodeAccountIds[0]:this._getRandomNodes(1)[0];const r=transactionToTransactionBody(e,t);if(!r)throw new Error("Failed to serialize transaction body");const n=transactionBodyToBase64String(r),{signatureMap:o}=await this.request({method:HederaJsonRpcMethod.SignTransaction,params:{signerAccountId:this._signerAccountId,transactionBody:n}}),i=base64StringToSignatureMap(o),s=base64StringToUint8Array(n),a=proto_1.Transaction.encode({bodyBytes:s,sigMap:i}).finish();return P$5.fromBytes(a)}async _tryExecuteTransactionRequest(e){try{const t=e.toBytes();this.logger.debug("Creating transaction from bytes",t,e);const r=P$5.fromBytes(t);this.logger.debug("Executing transaction request",r);const n=await this.request({method:HederaJsonRpcMethod.SignAndExecuteTransaction,params:{signerAccountId:this._signerAccountId,transactionList:transactionToBase64String(r)}});return this.logger.debug("Transaction request completed successfully"),{result:h$9.fromJSON(n)}}catch(t){return this.logger.error("Error executing transaction request:",t),{error:t}}}async _parseQueryResponse(e,t){if(e instanceof e$q){return t.split(",").map((e=>base64StringToUint8Array(e))).map((e=>b$7.fromBytes(e)))}const r=base64StringToUint8Array(t);if(e instanceof e$r)return a$h.fromBytes(r);if(e instanceof c$d)return d$e.fromBytes(r);if(e instanceof l$l)return d$h.fromBytes(r);if(e instanceof h$a)return b$7.fromBytes(r);throw new Error("Unsupported query type")}async executeReceiptQueryFromRequest(e){try{const t=this.ledgerId===r$x.MAINNET?i$9.forMainnet():i$9.forTestnet(),r=l$l.fromBytes(e.toBytes());return{result:await r.execute(t)}}catch(t){return{error:t}}}async _tryExecuteQueryRequest(e){try{const t=e instanceof l$l;if(t){this.logger.debug("Attempting to execute free receipt query",e);const t=await this.executeReceiptQueryFromRequest(e);if(!(null==t?void 0:t.error))return{result:t.result};this.logger.error("Error executing free receipt query. Sending to wallet.",t.error)}const r=t?l$l.fromBytes(e.toBytes()):h$b.fromBytes(e.toBytes());this.logger.debug("Executing query request",r,queryToBase64String(r),t);const n=await this.request({method:HederaJsonRpcMethod.SignAndExecuteQuery,params:{signerAccountId:this._signerAccountId,query:queryToBase64String(r)}});return this.logger.debug("Query request completed successfully",n),{result:this._parseQueryResponse(r,n.response)}}catch(t){return this.logger.error("Error executing query request:",t),{error:t}}}async call(e){var t,r,n,o,i,s,a,c,u;const l=e instanceof l$l;let d;if(!l&&(d=await this._tryExecuteTransactionRequest(e),d.result))return d.result;const h=await this._tryExecuteQueryRequest(e);if(h.result)return h.result;if(l)throw new Error("Error executing receipt query: \n"+JSON.stringify({queryError:{name:null===(t=h.error)||void 0===t?void 0:t.name,message:null===(r=h.error)||void 0===r?void 0:r.message,stack:null===(n=h.error)||void 0===n?void 0:n.stack}}));throw new Error("Error executing transaction or query: \n"+JSON.stringify({txError:{name:null===(o=null==d?void 0:d.error)||void 0===o?void 0:o.name,message:null===(i=null==d?void 0:d.error)||void 0===i?void 0:i.message,stack:null===(s=null==d?void 0:d.error)||void 0===s?void 0:s.stack},queryError:{name:null===(a=h.error)||void 0===a?void 0:a.name,message:null===(c=h.error)||void 0===c?void 0:c.message,stack:null===(u=h.error)||void 0===u?void 0:u.stack}},null,2))}}class DAppConnector{constructor(e,t,r,n,o,i,s="debug"){this.network=r$x.TESTNET,this.supportedMethods=[],this.supportedEvents=[],this.supportedChains=[],this.extensions=[],this.onSessionIframeCreated=null,this.signers=[],this.isInitializing=!1,this.abortableConnect=async e=>new Promise((async(t,r)=>{const n=48e4,o=setTimeout((()=>{QRCodeModal.close(),r(new Error("Connect timed out after 480000(ms)"))}),n);try{return t(await e())}catch(i){r(i)}finally{clearTimeout(o)}})),this.logger=new DefaultLogger$1(s),this.dAppMetadata=e,this.network=t,this.projectId=r,this.supportedMethods=null!=n?n:Object.values(HederaJsonRpcMethod),this.supportedEvents=null!=o?o:[],this.supportedChains=null!=i?i:[],this.extensions=[],this.walletConnectModal=new WalletConnectModal({projectId:r,chains:i}),findExtensions(((e,t)=>{this.extensions.push(Object.assign(Object.assign({},e),{available:!0,availableInIframe:t}))}))}setLogLevel(e){this.logger instanceof DefaultLogger$1&&this.logger.setLogLevel(e)}async init({logger:e}={}){try{if(this.isInitializing=!0,!this.projectId)throw new Error("Project ID is not defined");this.walletConnectClient=await _e.init({logger:e,relayUrl:"wss://relay.walletconnect.com",projectId:this.projectId,metadata:this.dAppMetadata});const t=this.walletConnectClient.session.getAll();t.length>0?this.signers=t.flatMap((e=>this.createSigners(e))):this.checkIframeConnect(),this.walletConnectClient.on("session_event",this.handleSessionEvent.bind(this)),this.walletConnectClient.on("session_update",this.handleSessionUpdate.bind(this)),this.walletConnectClient.on("session_delete",this.handleSessionDelete.bind(this)),this.walletConnectClient.core.events.on("session_delete",this.handleSessionDelete.bind(this)),this.walletConnectClient.core.pairing.events.on("pairing_delete",this.handlePairingDelete.bind(this))}catch(t){this.logger.error("Error initializing DAppConnector:",t)}finally{this.isInitializing=!1}}getSigner(e){if(this.isInitializing)throw new Error("DAppConnector is not initialized yet. Try again later.");const t=this.signers.find((t=>t.getAccountId().equals(e)));if(!t)throw new Error("Signer is not found for this accountId");return t}async connectQR(e){return this.abortableConnect((async()=>{try{const{uri:t,approval:r}=await this.connectURI(e);if(!t)throw new Error("URI is not defined");QRCodeModal.open(t,(()=>{throw new Error("User rejected pairing")})),await this.onSessionConnected(await r())}finally{QRCodeModal.close()}}))}async openModal(e){try{const{uri:t,approval:r}=await this.connectURI(e);this.walletConnectModal.openModal({uri:t});const n=await r();return await this.onSessionConnected(n),n}finally{this.walletConnectModal.closeModal()}}async connect(e,t,r){return this.abortableConnect((async()=>{var n;const{uri:o,approval:i}=await this.connectURI(t);if(!o)throw new Error("URI is not defined");e(o);const s=await i();if(r){const e=Object.assign(Object.assign({},s.sessionProperties),{extensionId:r});s.sessionProperties=e,await(null===(n=this.walletConnectClient)||void 0===n?void 0:n.session.update(s.topic,{sessionProperties:e}))}return await this.onSessionConnected(s),s}))}async connectExtension(e,t){const r=this.extensions.find((t=>t.id===e));if(!r||!r.available)throw new Error("Extension is not available");return this.connect((e=>{extensionConnect(r.id,r.availableInIframe,e)}),t,r.availableInIframe?void 0:e)}validateSession(e){try{if(!this.walletConnectClient)return!1;const t=this.walletConnectClient.session.get(e),r=this.signers.some((t=>t.topic===e));return t?!!r||(this.logger.warn(`Session exists but no signer found for topic: ${e}`),!1):(r&&(this.logger.warn(`Signer exists but no session found for topic: ${e}`),this.handleSessionDelete({topic:e})),!1)}catch(t){return this.logger.error("Error validating session:",t),!1}}validateAndRefreshSigners(){this.signers=this.signers.filter((e=>this.validateSession(e.topic)))}async checkIframeConnect(){const e=this.extensions.find((e=>e.availableInIframe));if(e){const t=await this.connectExtension(e.id);this.onSessionIframeCreated&&this.onSessionIframeCreated(t)}}async disconnect(e){try{if(!this.walletConnectClient)throw new Error("WalletConnect is not initialized");return await this.walletConnectClient.disconnect({topic:e,reason:_$6("USER_DISCONNECTED")}),!0}catch(t){return this.logger.error("Either the session was already disconnected or the topic is invalid",t),!1}}async disconnectAll(){if(!this.walletConnectClient)throw new Error("WalletConnect is not initialized");const e=this.walletConnectClient.session.getAll(),t=this.walletConnectClient.core.pairing.getPairings();if(!(null==e?void 0:e.length)&&!(null==t?void 0:t.length))throw new Error("There is no active session/pairing. Connect to the wallet at first.");const r=[];for(const n of this.walletConnectClient.session.getAll()){this.logger.info(`Disconnecting from session: ${n}`);const e=this.disconnect(n.topic);r.push(e)}for(const n of t){const e=this.disconnect(n.topic);r.push(e)}await Promise.all(r),this.signers=[]}createSigners(e){return accountAndLedgerFromSession(e).map((({account:t,network:r})=>{var n;return new DAppSigner(t,this.walletConnectClient,e.topic,r,null===(n=e.sessionProperties)||void 0===n?void 0:n.extensionId,this.logger instanceof DefaultLogger$1?this.logger.getLogLevel():"debug")}))}async onSessionConnected(e){const t=this.createSigners(e);for(const r of t){const e=this.signers.filter((e=>{var t,n;const o=(null===(t=null==e?void 0:e.getAccountId())||void 0===t?void 0:t.toString())===(null===(n=null==r?void 0:r.getAccountId())||void 0===n?void 0:n.toString()),i=r.extensionId===e.extensionId,s=r.getMetadata(),a=e.getMetadata(),c=(null==s?void 0:s.name)===(null==a?void 0:a.name);return e.topic===r.topic&&this.logger.error("The topic was already connected. This is a weird error. Please report it.",r.getAccountId().toString()),o&&i&&c}));for(const t of e)this.logger.debug(`Disconnecting duplicate signer for account ${t.getAccountId().toString()}`),await this.disconnect(t.topic),this.signers=this.signers.filter((e=>e.topic!==t.topic))}this.signers.push(...t),this.logger.debug(`Current signers after connection: ${this.signers.map((e=>`${e.getAccountId().toString()}:${e.topic}`)).join(", ")}`)}async connectURI(e){if(!this.walletConnectClient)throw new Error("WalletConnect is not initialized");return this.walletConnectClient.connect({pairingTopic:e,requiredNamespaces:networkNamespaces(this.network,this.supportedMethods,this.supportedEvents)})}async request({method:e,params:t}){var r,n,o;let i;if(this.logger.debug(`Requesting method: ${e} with params: ${JSON.stringify(t)}`),null==t?void 0:t.signerAccountId){const e=null===(n=null===(r=null==t?void 0:t.signerAccountId)||void 0===r?void 0:r.split(":"))||void 0===n?void 0:n.pop();if(i=this.signers.find((t=>{var r;return(null===(r=null==t?void 0:t.getAccountId())||void 0===r?void 0:r.toString())===e})),this.logger.debug(`Found signer: ${null===(o=null==i?void 0:i.getAccountId())||void 0===o?void 0:o.toString()}`),!i)throw new Error(`Signer not found for account ID: ${null==t?void 0:t.signerAccountId}. Did you use the correct format? e.g hedera::
`)}else i=this.signers[this.signers.length-1];if(!i)throw new Error("There is no active session. Connect to the wallet at first.");return this.logger.debug(`Using signer: ${i.getAccountId().toString()}: ${i.topic} - about to request.`),await i.request({method:e,params:t})}async getNodeAddresses(){return await this.request({method:HederaJsonRpcMethod.GetNodeAddresses,params:void 0})}async executeTransaction(e){return await this.request({method:HederaJsonRpcMethod.ExecuteTransaction,params:e})}async signMessage(e){return await this.request({method:HederaJsonRpcMethod.SignMessage,params:e})}async signAndExecuteQuery(e){return await this.request({method:HederaJsonRpcMethod.SignAndExecuteQuery,params:e})}async signAndExecuteTransaction(e){return await this.request({method:HederaJsonRpcMethod.SignAndExecuteTransaction,params:e})}async signTransaction(e){var t,r;if("string"==typeof(null==e?void 0:e.transactionBody))return this.logger.warn("Transaction body is a string. This is not recommended, please migrate to passing a transaction object directly."),await this.request({method:HederaJsonRpcMethod.SignTransaction,params:e});if((null==e?void 0:e.transactionBody)instanceof P$5){const n=null===(r=null===(t=null==e?void 0:e.signerAccountId)||void 0===t?void 0:t.split(":"))||void 0===r?void 0:r.pop(),o=this.signers.find((e=>{var t;return(null===(t=null==e?void 0:e.getAccountId())||void 0===t?void 0:t.toString())===n}));if(!o)throw new Error(`No signer found for account ${n}`);if(!(null==e?void 0:e.transactionBody))throw new Error("No transaction provided");return await o.signTransaction(e.transactionBody)}throw new Error("Transaction sent in incorrect format. Ensure transaction body is either a base64 transaction body or Transaction object.")}handleSessionEvent(e){this.logger.debug("Session event received:",e),this.validateAndRefreshSigners()}handleSessionUpdate({topic:e,params:t}){const{namespaces:r}=t,n=this.walletConnectClient.session.get(e),o=Object.assign(Object.assign({},n),{namespaces:r});this.logger.info("Session updated:",o),this.signers=this.signers.filter((t=>t.topic!==e)),this.signers.push(...this.createSigners(o))}handleSessionDelete(e){this.logger.info("Session deleted:",e);let t=!1;if(this.signers=this.signers.filter((r=>r.topic!==e.topic||(t=!0,!1))),t){try{this.disconnect(e.topic)}catch(r){this.logger.error("Error disconnecting session:",r)}this.logger.info("Session deleted and signer removed")}}handlePairingDelete(e){this.logger.info("Pairing deleted:",e),this.signers=this.signers.filter((t=>t.topic!==e.topic));try{this.disconnect(e.topic)}catch(t){this.logger.error("Error disconnecting pairing:",t)}this.logger.info("Pairing deleted by wallet")}}class DefaultLogger{constructor(){this.logLevel="info"}setLogLevel(e){this.logLevel=e}error(e,...t){["error","warn","info","debug"].includes(this.logLevel)&&console.error(`[ERROR] ${e}`,...t)}warn(e,...t){["warn","info","debug"].includes(this.logLevel)&&console.warn(`[WARN] ${e}`,...t)}info(e,...t){["info","debug"].includes(this.logLevel)&&console.info(`[INFO] ${e}`,...t)}debug(e,...t){"debug"===this.logLevel&&console.debug(`[DEBUG] ${e}`,...t)}}var fetchRetry_umd={exports:{}};!function(e,t){e.exports=function(){function e(e){return Number.isInteger(e)&&e>=0}function t(e){this.name="ArgumentError",this.message=e}return function(r,n){if(n=n||{},"function"!=typeof r)throw new t("fetch must be a function");if("object"!=typeof n)throw new t("defaults must be an object");if(void 0!==n.retries&&!e(n.retries))throw new t("retries must be a positive integer");if(void 0!==n.retryDelay&&!e(n.retryDelay)&&"function"!=typeof n.retryDelay)throw new t("retryDelay must be a positive integer or a function returning a positive integer");if(void 0!==n.retryOn&&!Array.isArray(n.retryOn)&&"function"!=typeof n.retryOn)throw new t("retryOn property expects an array or function");var o={retries:3,retryDelay:1e3,retryOn:[]};return n=Object.assign(o,n),function(o,i){var s=n.retries,a=n.retryDelay,c=n.retryOn;if(i&&void 0!==i.retries){if(!e(i.retries))throw new t("retries must be a positive integer");s=i.retries}if(i&&void 0!==i.retryDelay){if(!e(i.retryDelay)&&"function"!=typeof i.retryDelay)throw new t("retryDelay must be a positive integer or a function returning a positive integer");a=i.retryDelay}if(i&&i.retryOn){if(!Array.isArray(i.retryOn)&&"function"!=typeof i.retryOn)throw new t("retryOn property expects an array or function");c=i.retryOn}return new Promise((function(e,t){var n=function(n){var a="undefined"!=typeof Request&&o instanceof Request?o.clone():o;r(a,i).then((function(r){if(Array.isArray(c)&&-1===c.indexOf(r.status))e(r);else if("function"==typeof c)try{return Promise.resolve(c(n,null,r)).then((function(t){t?u(n,null,r):e(r)})).catch(t)}catch(o){t(o)}else nretryFetch(fetch,{retries:3});var Name=(e=>(e.Contractcall="CONTRACTCALL",e.Cryptotransfer="CRYPTOTRANSFER",e))(Name||{}),Result=(e=>(e.Success="SUCCESS",e))(Result||{});class HashinalsWalletConnectSDK{constructor(e,t){this.extensionCheckInterval=null,this.hasCalledExtensionCallback=!1,this.logger=e||new DefaultLogger,this.network=t||r$x.MAINNET}get dAppConnector(){return HashinalsWalletConnectSDK.dAppConnectorInstance}static getInstance(e,t){let r=null==HashinalsWalletConnectSDK?void 0:HashinalsWalletConnectSDK.instance;return r||(HashinalsWalletConnectSDK.instance=new HashinalsWalletConnectSDK(e,t),r=HashinalsWalletConnectSDK.instance),t&&r.setNetwork(t),r}setLogger(e){this.logger=e}setNetwork(e){this.network=e}getNetwork(){return this.network}setLogLevel(e){this.logger instanceof DefaultLogger?this.logger.setLogLevel(e):this.logger.warn("setLogLevel is only available for the default logger")}async init(e,t,r,n){const o=r||this.network,i="mainnet"===o.toString();return HashinalsWalletConnectSDK.dAppConnectorInstance||(HashinalsWalletConnectSDK.dAppConnectorInstance=new DAppConnector(t,o,e,Object.values(HederaJsonRpcMethod),[HederaSessionEvent.ChainChanged,HederaSessionEvent.AccountsChanged],[i?HederaChainId.Mainnet:HederaChainId.Testnet],"debug"),await HashinalsWalletConnectSDK.dAppConnectorInstance.init({logger:"error"}),HashinalsWalletConnectSDK.dAppConnectorInstance.onSessionIframeCreated=e=>{this.logger.info("new session from from iframe",e),this.handleNewSession(e),n&&n(e)},this.logger.info(`Hedera Wallet Connect SDK initialized on ${o}`)),HashinalsWalletConnectSDK.dAppConnectorInstance}async connect(){this.ensureInitialized();const e=await this.dAppConnector.openModal();return this.handleNewSession(e),e}async disconnect(){var e,t;try{this.ensureInitialized();const r=this.getAccountInfo(),n=null==r?void 0:r.accountId,o=null==r?void 0:r.network,i=null==(e=null==this?void 0:this.dAppConnector)?void 0:e.signers.find((e=>e.getAccountId().toString()===n));return await(null==(t=this.dAppConnector)?void 0:t.disconnect(null==i?void 0:i.topic)),this.logger.info(`Disconnected from ${n} on ${o}`),!0}catch(r){return this.logger.error("Failed to disconnect",r),!1}}async disconnectAll(){var e;try{return this.ensureInitialized(),await(null==(e=this.dAppConnector)?void 0:e.disconnectAll()),this.logger.info("Disconnected from all wallets"),!0}catch(t){return this.logger.error("Failed to disconnect",t),!1}}async executeTransaction(e,t=!1){this.ensureInitialized();const r=this.getAccountInfo(),n=null==r?void 0:r.accountId,o=this.dAppConnector.signers.find((e=>e.getAccountId().toString()===n));if(t){const t=await e.executeWithSigner(o);return await t.getReceiptWithSigner(o)}{const t=await e.freezeWithSigner(o),r=await t.executeWithSigner(o);return await r.getReceiptWithSigner(o)}}async executeTransactionWithErrorHandling(e,t){var r;try{return{result:await this.executeTransaction(e,t),error:void 0}}catch(n){const e=null==(r=n.message)?void 0:r.toLowerCase();if(this.logger.error("Failed to execute transaction",n),this.logger.error("Failure reason for transaction is",e),e.includes("insufficient payer balance"))return{result:void 0,error:"Insufficient balance to complete the transaction."};if(e.includes("reject"))return{result:void 0,error:"You rejected the transaction"};if(e.includes("invalid signature"))return{result:void 0,error:"Invalid signature. Please check your account and try again."};if(e.includes("transaction expired"))return{result:void 0,error:"Transaction expired. Please try again."};if(e.includes("account not found"))return{result:void 0,error:"Account not found. Please check the account ID and try again."};if(e.includes("unauthorized"))return{result:void 0,error:"Unauthorized. You may not have the necessary permissions for this action."};if(e.includes("busy"))return{result:void 0,error:"The network is busy. Please try again later."};if(e.includes("invalid transaction"))return{result:void 0,error:"Invalid transaction. Please check your inputs and try again."}}}async submitMessageToTopic(e,t,r){this.ensureInitialized();let n=(new u$7).setTopicId(m$6.fromString(e)).setMessage(t);return r&&(n=await n.sign(r)),this.executeTransaction(n)}async transferHbar(e,t,r){this.ensureInitialized();const n=(new T$6).setTransactionId(i$j.generate(e)).addHbarTransfer(f$8.fromString(e),new e$A(-r)).addHbarTransfer(f$8.fromString(t),new e$A(r));return this.executeTransaction(n)}async executeSmartContract(e,t,r,n=1e5){this.ensureInitialized();const o=(new s$d).setContractId(v$7.fromString(e)).setGas(n).setFunction(t,r);return this.executeTransaction(o)}handleNewSession(e){var t,r,n;const o=null==(n=null==(r=null==(t=e.namespaces)?void 0:t.hedera)?void 0:r.accounts)?void 0:n[0],i=null==o?void 0:o.split(":"),s=i.pop(),a=i.pop();this.logger.info("sessionAccount is",s,a),s?this.saveConnectionInfo(s,a):this.logger.error("No account id found in the session")}getNetworkPrefix(){const e=this.getAccountInfo(),t=null==e?void 0:e.network;if(!t){this.logger.warn("Network is not set on SDK, defaulting.");const e=localStorage.getItem("connectedNetwork");return e||"mainnet-public"}return t!==this.network&&(this.logger.warn("Detected network mismatch, reverting to signer network",t),this.network=t),t.isMainnet()?"mainnet-public":"testnet"}async requestAccount(e){try{const t=`https://${this.getNetworkPrefix()}.mirrornode.hedera.com/api/v1/accounts/${e}`,r=await fetchWithRetry()(t);if(!r.ok)throw new Error(`Failed to make request to mirror node for account: ${r.status}`);return await r.json()}catch(t){throw this.logger.error("Failed to fetch account",t),t}}async getAccountBalance(){this.ensureInitialized();const e=this.getAccountInfo(),t=null==e?void 0:e.accountId;if(!t)return null;const r=await this.requestAccount(t);if(!r)throw new Error("Failed to fetch account. Try again or check if the Account ID is valid.");const n=r.balance.balance/10**8;return Number(n).toLocaleString("en-US")}getAccountInfo(){var e,t;const{accountId:r}=this.loadConnectionInfo();if(!r)return null;const n=null==(e=null==this?void 0:this.dAppConnector)?void 0:e.signers;if(!(null==n?void 0:n.length))return null;const o=this.dAppConnector.signers.find((e=>e.getAccountId().toString()===r));if(!o)return null;const i=null==(t=null==o?void 0:o.getAccountId())?void 0:t.toString();if(!i)return null;return{accountId:i,network:o.getLedgerId()}}async getAllMessages(e){if(this.ensureInitialized(),!e)throw new Error("Topic ID is required");const t=this.getAccountInfo();if(!(null==t?void 0:t.accountId))throw new Error("No connected account found");const r=this.dAppConnector.signers.find((e=>e.getAccountId().toString()===t.accountId));if(!r)throw new Error("No signer found");if(r.getLedgerId().toString()!==this.network.toString())throw new Error("Network mismatch");const n=[];return await new Promise(((t,o)=>{(new a$8).setTopicId(m$6.fromString(e)).setStartTime(0).subscribe(r,(e=>{const r=new TextDecoder("utf-8").decode(e.contents);n.push(r),t()}),(e=>o(new Error(`Failed to retrieve messages: ${e.message}`)))),setTimeout((()=>t()),5e3)})),n}async generatePrivateAndPublicKey(){this.ensureInitialized();const e=await y$a.generateED25519Async(),t=e.publicKey;return{privateKey:e.toString(),publicKey:t.toString()}}async updateTopic(e,t,r,n,o){if(this.ensureInitialized(),!e)throw new Error("Topic ID is required");if(!r)throw new Error("Admin key is required for topic update");const i=this.getAccountInfo();if(!(null==i?void 0:i.accountId))throw new Error("No connected account found");const s=this.dAppConnector.signers.find((e=>e.getAccountId().toString()===i.accountId));if(!s)throw new Error("No signer found for the connected account");if(s.getLedgerId().toString()!==this.network.toString())throw new Error("Network mismatch between signer and SDK configuration");let a=(new l$9).setTopicId(m$6.fromString(e)).setTopicMemo(t||""),c=null;try{c=y$a.fromString(r),a.setAdminKey(c.publicKey),this.logger.debug("Admin key set with private key:",c.publicKey.toString())}catch(d){throw this.logger.error("Invalid admin key provided:",d),new Error("Invalid admin key format: Admin key must be a valid private key for topic update")}if(n&&n.length>0){const e=n.map((e=>{if(!e.denominatingTokenId||!e.amount||!e.collectorAccountId)throw new Error("Invalid custom fee: denominatingTokenId, amount, and collectorAccountId are required");const t=parseFloat(e.amount);if(isNaN(t)||t<=0)throw new Error("Invalid amount: must be a positive number");return(new l$i).setAmount(t).setFeeCollectorAccountId(e.collectorAccountId).setDenominatingTokenId(e.denominatingTokenId)}));a.setCustomFees(e),this.logger.debug("Custom fixed fees set:",e)}if(a=await a.freezeWithSigner(s),this.logger.debug("Transaction frozen with signer:",s.getAccountId().toString()),c&&(a=await a.sign(c),this.logger.debug("Transaction signed with admin private key")),n&&n.length>0&&o){let e;try{e=y$a.fromString(o),a=await a.sign(e),this.logger.debug("Transaction signed with fee schedule private key")}catch(d){throw this.logger.error("Invalid fee schedule key provided:",d),new Error("Invalid fee schedule key format: Fee schedule key must be a valid private key")}}const{result:u,error:l}=await this.executeTransactionWithErrorHandling(a,!0);if(l)throw new Error(`Failed to update topic: ${l}`);return this.logger.debug("Topic updated successfully with ID:",u.topicId.toString()),u.topicId.toString()}async createTopic(e,t,r){this.ensureInitialized();const n=this.getAccountInfo();if(!(null==n?void 0:n.accountId))throw new Error("No connected account found");const o=this.dAppConnector.signers.find((e=>e.getAccountId().toString()===n.accountId));if(!o)throw new Error("No signer found for the connected account");if(o.getLedgerId().toString()!==this.network.toString())throw new Error("Network mismatch between signer and SDK configuration");let i=(new c$9).setTopicMemo(e||"");const s=(e,t)=>{try{const r=y$a.fromString(e);return this.logger.debug(`Parsed ${t} key as private key:`,r.toString()),r.publicKey}catch(r){this.logger.debug(`Failed to parse ${t} key as private key:`,r);try{const r=i$m.fromString(e);return this.logger.debug(`Parsed ${t} key as public key:`,r.toString()),r}catch(n){throw this.logger.error(`Invalid ${t} key format:`,n),new Error(`Invalid ${t} key format: ${n.message}`)}}};let a=null;if(t)try{a=y$a.fromString(t),i.setAdminKey(a.publicKey),i.setFeeScheduleKey(a.publicKey),this.logger.debug("Admin key and feeScheduleKey set with private key:",a.publicKey.toString())}catch{const e=s(t,"admin");i.setAdminKey(e),i.setFeeScheduleKey(e),this.logger.debug("Admin key and feeScheduleKey set with public key:",e.toString())}if(r&&r.length>0){const e=r.map((e=>{if(!e.denominatingTokenId||!e.amount||!e.collectorAccountId)throw new Error("Invalid custom fee: denominatingTokenId, amount, and collectorAccountId are required");const t=parseFloat(e.amount);if(isNaN(t)||t<=0)throw new Error("Invalid amount: must be a positive number");return(new l$i).setAmount(t).setFeeCollectorAccountId(e.collectorAccountId).setDenominatingTokenId(e.denominatingTokenId)}));i.setCustomFees(e),this.logger.debug("Custom fixed fees set:",e)}i=await i.freezeWithSigner(o),this.logger.debug("Transaction frozen with signer:",o.getAccountId().toString()),a&&(i=await i.sign(a),this.logger.debug("Transaction signed with admin private key"));const c=await this.executeTransaction(i,!0);if(!c.topicId)throw new Error("Failed to create topic: No topic ID in receipt");return this.logger.debug("Topic created successfully with ID:",c.topicId.toString()),c.topicId.toString()}async createToken(e,t,r,n,o,i,s){this.ensureInitialized();let a=(new _$9).setTokenName(e).setTokenSymbol(t).setDecimals(n).setInitialSupply(r).setTreasuryAccountId(f$8.fromString(o)).setTokenType(e$e.NonFungibleUnique).setSupplyType(e$d.Finite);s&&(a=a.setSupplyKey(y$a.fromString(s))),i&&(a=a.setAdminKey(y$a.fromString(i)),a=await a.sign(y$a.fromString(i)));return(await this.executeTransaction(a)).tokenId.toString()}async mintNFT(e,t,r){this.ensureInitialized();let n=await(new r$l).setTokenId(e).setMetadata([Buffer$1$1.from(t,"utf-8")]).sign(r);return this.executeTransaction(n)}async getTopicInfo(e,t){this.ensureInitialized();try{if(!e)throw new Error("Topic ID is required");const r=t||this.getNetworkPrefix(),n=`${`https://${r}.mirrornode.hedera.com`}/api/v1/topics/${e}`,o=await fetchWithRetry()(n);if(!o.ok)throw new Error(`Failed to make request to mirror node for topic info: ${o.status}`);const i=await o.json();return this.logger.info("Topic info retrieved:",i),i}catch(r){throw this.logger.error("Error fetching topic info:",r),new Error(`Failed to retrieve topic info: ${r.message}`)}}async getMessages(e,t,r=!1,n){var o,i;const s=`${`https://${n||this.getNetworkPrefix()}.mirrornode.hedera.com`}/api/v1/topics/${e}/messages?limit=200${Number(t)>0&&!r?`×tamp=gt:${t}`:""}`;try{const t=await fetchWithRetry()(s);if(!t.ok)throw new Error(`Failed to make request to mirror node: ${t.status}`);const n=await t.json(),a=(null==n?void 0:n.messages)||[],c=null==(o=null==n?void 0:n.links)?void 0:o.next,u=a.map((e=>({...JSON.parse(atob(e.message)),payer:e.payer_account_id,created:new Date(1e3*Number(e.consensus_timestamp)),consensus_timestamp:e.consensus_timestamp,sequence_number:e.sequence_number})));if(c){const t=await this.getMessages(e,Number(null==(i=u[u.length-1])?void 0:i.consensus_timestamp),r);u.push(...t.messages)}return{messages:u.sort(((e,t)=>e.sequence_number-t.sequence_number)),error:""}}catch(a){return this.logger.error("Error fetching topic data:",a),{messages:[],error:a.toString()}}}async signMessage(e){const t=this.dAppConnector;if(!t)throw new Error("No active connection or signer");const r=this.getAccountInfo(),n=null==r?void 0:r.accountId,o={signerAccountId:`hedera:${this.network}:${n}`,message:e};return{userSignature:(await t.signMessage(o)).signatureMap}}saveConnectionInfo(e,t){if(e){const r=null==t?void 0:t.replace(/['"]+/g,"");localStorage.setItem("connectedNetwork",r),localStorage.setItem("connectedAccountId",e)}else localStorage.removeItem("connectedAccountId"),localStorage.removeItem("connectedNetwork")}loadConnectionInfo(){return{accountId:localStorage.getItem("connectedAccountId"),network:localStorage.getItem("connectedNetwork")}}async connectWallet(e,t,r){try{await this.init(e,t,r);const n=await this.connect(),o=this.getAccountInfo(),i=null==o?void 0:o.accountId,s=await this.getAccountBalance(),a=this.getNetworkPrefix();return this.saveConnectionInfo(i,a),{accountId:i,balance:s,session:n}}catch(n){throw this.logger.error("Failed to connect wallet:",n),n}}async disconnectWallet(e=!0){try{const t=await this.disconnect();return t&&e&&localStorage.clear(),this.saveConnectionInfo(void 0),t}catch(t){return this.logger.error("Failed to disconnect wallet:",t),!1}}async initAccount(e,t,r,n=()=>{}){const{accountId:o,network:i}=this.loadConnectionInfo();if(o&&i)try{const s="mainnet"===i?r$x.MAINNET:r$x.TESTNET,a=r||s;await this.init(e,t,a,n);return{accountId:o,balance:await this.getAccountBalance()}}catch(s){return this.logger.error("Failed to reconnect:",s),this.saveConnectionInfo(void 0,void 0),null}else if(r)try{this.logger.info("initializing normally through override.",r),await this.init(e,t,r,n),this.logger.info("initialized",r),await this.connectViaDappBrowser(),this.logger.info("connected via dapp browser")}catch(s){return this.logger.error("Failed to fallback connect:",s),this.saveConnectionInfo(void 0,void 0),null}return null}subscribeToExtensions(e){return this.extensionCheckInterval&&clearInterval(this.extensionCheckInterval),this.hasCalledExtensionCallback=!1,this.extensionCheckInterval=setInterval((()=>{var t;const r=((null==(t=this.dAppConnector)?void 0:t.extensions)||[]).find((e=>e.availableInIframe));r&&!this.hasCalledExtensionCallback&&(this.hasCalledExtensionCallback=!0,e(r),this.extensionCheckInterval&&(clearInterval(this.extensionCheckInterval),this.extensionCheckInterval=null))}),1e3),()=>{this.extensionCheckInterval&&(clearInterval(this.extensionCheckInterval),this.extensionCheckInterval=null),this.hasCalledExtensionCallback=!1}}async connectViaDappBrowser(){const e=this.dAppConnector.extensions||[],t=e.find((e=>(this.logger.info("Checking extension",e),e.availableInIframe)));this.logger.info("extensions are",e,t),t?await this.connectToExtension(t):this.subscribeToExtensions((async e=>{await this.connectToExtension(e)}))}async connectToExtension(e){this.logger.info("found extension, connecting to iframe.",e);const t=await this.dAppConnector.connectExtension(e.id),r=this.dAppConnector.onSessionIframeCreated;r&&r(t)}ensureInitialized(){if(!this.dAppConnector)throw new Error("SDK not initialized. Call init() first.")}static run(){try{"undefined"!=typeof window&&(window.HashinalsWalletConnectSDK=HashinalsWalletConnectSDK.getInstance(),window.HashgraphSDK=HashgraphSDK)}catch(e){console.error("[ERROR]: failed setting sdk on window")}}async transferToken(e,t,r,n){this.ensureInitialized();const o=(new T$6).setTransactionId(i$j.generate(t)).addTokenTransfer(u$i.fromString(e),f$8.fromString(t),-n).addTokenTransfer(u$i.fromString(e),f$8.fromString(r),n);return this.executeTransaction(o)}async createAccount(e){this.ensureInitialized();const t=(new h$8).setInitialBalance(new e$A(e));return this.executeTransaction(t)}async associateTokenToAccount(e,t){this.ensureInitialized();const r=(new r$s).setAccountId(f$8.fromString(e)).setTokenIds([u$i.fromString(t)]);return this.executeTransaction(r)}async dissociateTokenFromAccount(e,t){this.ensureInitialized();const r=(new r$q).setAccountId(f$8.fromString(e)).setTokenIds([u$i.fromString(t)]);return this.executeTransaction(r)}async updateAccount(e,t){this.ensureInitialized();const r=(new s$h).setAccountId(f$8.fromString(e)).setMaxAutomaticTokenAssociations(t);return this.executeTransaction(r)}async approveAllowance(e,t,r,n){this.ensureInitialized();const o=(new c$f).approveTokenAllowance(u$i.fromString(t),f$8.fromString(n),f$8.fromString(e),r);return this.executeTransaction(o)}async getAccountTokens(e){var t,r;this.ensureInitialized();const n=`https://${this.getNetworkPrefix()}.mirrornode.hedera.com`,o=`${n}/api/v1/accounts/${e}/tokens?limit=200`;try{const e=await fetchWithRetry()(o);if(!e.ok)throw new Error(`Failed to make request to mirror node for account tokens: ${e.status}`);const i=await e.json(),s=[];for(const t of i.tokens)t.token_id&&s.push({tokenId:t.token_id,balance:t.balance,decimals:t.decimals,formatted_balance:(t.balance/10**t.decimals).toLocaleString("en-US"),created_timestamp:new Date(1e3*Number(t.created_timestamp))});let a=null==(t=i.links)?void 0:t.next;for(;a;){const e=`${n}${a}`,t=await fetchWithRetry()(e);if(!t.ok)throw new Error(`Failed to make request to mirror node for account tokens: ${t.status}, page: ${e}`);const o=await t.json();for(const r of o.tokens)r.token_id&&s.push({tokenId:r.token_id,balance:r.balance,decimals:r.decimals,formatted_balance:(r.balance/10**r.decimals).toLocaleString("en-US"),created_timestamp:new Date(1e3*Number(r.created_timestamp))});a=null==(r=o.links)?void 0:r.next}return{tokens:s}}catch(i){throw this.logger.error("Error fetching account tokens:",i),i}}async getTransaction(e){try{const t=`https://${this.getNetworkPrefix()}.mirrornode.hedera.com/api/v1/transactions/${e}`;this.logger.debug("Fetching transaction",t);const r=await fetchWithRetry()(t);if(!r.ok)throw new Error(`Failed to fetch transaction: ${r.status}`);return await r.json()}catch(t){return this.logger.error("Failed to get transaction",t),null}}async getTransactionByTimestamp(e){var t;try{const r=`https://${this.getNetworkPrefix()}.mirrornode.hedera.com/api/v1/transactions?timestamp=${e}`;this.logger.debug("Fetching transaction by timestamp",r);const n=await fetchWithRetry()(r);if(!n.ok)throw new Error(`Failed to fetch transaction by timestamp: ${n.status}`);const o=await n.json(),i=null==(t=null==o?void 0:o.transactions)?void 0:t[0];return i?await this.getTransaction(i.transaction_id):null}catch(r){return this.logger.error("Failed to get transaction by timestamp",r),null}}async getAccountNFTs(e,t){var r,n,o;try{const s=this.getNetworkPrefix(),a=`https://${s}.mirrornode.hedera.com/api/v1/accounts/${e}/nfts?limit=200${t?`&token.id=${t}`:""}`,c=await fetchWithRetry()(a);if(!c.ok)throw new Error(`Failed to fetch NFTs for account: ${c.status}`);const u=await c.json();let l=(null==(r=null==u?void 0:u.links)?void 0:r.next)||null,d=u.nfts;for(;l;)try{const e=await fetchWithRetry()(`https://${s}.mirrornode.hedera.com${l}`);if(!e.ok)throw new Error(`Failed to fetch next page of NFTs: ${e.status}`);const t=await e.json();d=[...d,...(null==t?void 0:t.nfts)||[]],l=(null==(n=null==t?void 0:t.links)?void 0:n.next)&&l!==(null==(o=null==t?void 0:t.links)?void 0:o.next)?t.links.next:null}catch(i){this.logger.error("Failed to fetch next page of NFTs",i);break}return d.map((e=>{try{e.token_uri=Buffer$1$1.from(e.metadata,"base64").toString("ascii")}catch(i){this.logger.error("Failed to decode NFT metadata",i)}return e}))}catch(i){return this.logger.error("Failed to get account NFTs",i),[]}}async validateNFTOwnership(e,t,r){return(await this.getAccountNFTs(t,r)).find((t=>t.token_id===r&&t.serial_number.toString()===e))||null}async readSmartContract(e,t,r,n=!0,o=0){try{const i=this.getNetworkPrefix(),s={block:"latest",data:e,estimate:n,from:t.toSolidityAddress(),to:r.toSolidityAddress(),value:o};n||(s.gas=3e5,s.gasPrice=1e8);const a=`https://${i}.mirrornode.hedera.com/api/v1/contracts/call`,c=await fetchWithRetry()(a,{method:"POST",body:JSON.stringify(s),headers:{"Content-Type":"application/json"}});if(!c.ok)throw new Error(`Failed to make contract call: ${c.status}`);return await c.json()}catch(i){return this.logger.error("Failed to make contract call",i),null}}}HashinalsWalletConnectSDK.run(); /** * @license * Copyright 2019 Google LLC @@ -120,7 +127,7 @@ const t$3=window,e$5=t$3.ShadowRoot&&(void 0===t$3.ShadyCSS||t$3.ShadyCSS.native * Copyright 2017 Google LLC * SPDX-License-Identifier: BSD-3-Clause */ -var t$2;u$1[d$1]=!0,u$1.elementProperties=new Map,u$1.elementStyles=[],u$1.shadowRootOptions={mode:"open"},null==o$3||o$3({ReactiveElement:u$1}),(null!==(s$2=e$4.reactiveElementVersions)&&void 0!==s$2?s$2:e$4.reactiveElementVersions=[]).push("1.6.3");const i$2=window,s$1=i$2.trustedTypes,e$3=s$1?s$1.createPolicy("lit-html",{createHTML:e=>e}):void 0,o$2="$lit$",n$3=`lit$${(Math.random()+"").slice(9)}$`,l$2="?"+n$3,h=`<${l$2}>`,r=document,u=()=>r.createComment(""),d=e=>null===e||"object"!=typeof e&&"function"!=typeof e,c=Array.isArray,v=e=>c(e)||"function"==typeof(null==e?void 0:e[Symbol.iterator]),a="[ \t\n\f\r]",f=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,_=/-->/g,m=/>/g,p=RegExp(`>|${a}(?:([^\\s"'>=/]+)(${a}*=${a}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),g=/'/g,$=/"/g,y=/^(?:script|style|textarea|title)$/i,w=e=>(t,...r)=>({_$litType$:e,strings:t,values:r}),x=w(1),b=w(2),T=Symbol.for("lit-noChange"),A=Symbol.for("lit-nothing"),E=new WeakMap,C=r.createTreeWalker(r,129,null,!1);function P(e,t){if(!Array.isArray(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==e$3?e$3.createHTML(t):t}const V=(e,t)=>{const r=e.length-1,n=[];let o,i=2===t?"":"",a=f;for(let s=0;s"===c[0]?(a=null!=o?o:f,u=-1):void 0===c[1]?u=-2:(u=a.lastIndex-c[2].length,r=c[1],a=void 0===c[3]?p:'"'===c[3]?$:g):a===$||a===g?a=p:a===_||a===m?a=f:(a=p,o=void 0);const d=a===p&&e[s+1].startsWith("/>")?" ":"";i+=a===f?t+h:u>=0?(n.push(r),t.slice(0,u)+o$2+t.slice(u)+n$3+d):t+n$3+(-2===u?(n.push(void 0),s):d)}return[P(e,i+(e[r]||"")+(2===t?"":"")),n]};class N{constructor({strings:e,_$litType$:t},r){let n;this.parts=[];let o=0,i=0;const a=e.length-1,s=this.parts,[c,l]=V(e,t);if(this.el=N.createElement(c,r),C.currentNode=this.el.content,2===t){const e=this.el.content,t=e.firstChild;t.remove(),e.append(...t.childNodes)}for(;null!==(n=C.nextNode())&&s.length0){n.textContent=s$1?s$1.emptyScript:"";for(let r=0;r2||""!==r[0]||""!==r[1]?(this._$AH=Array(r.length-1).fill(new String),this.strings=r):this._$AH=A}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(e,t=this,r,n){const o=this.strings;let i=!1;if(void 0===o)e=S(this,e,t,0),i=!d(e)||e!==this._$AH&&e!==T,i&&(this._$AH=e);else{const n=e;let a,s;for(e=o[0],a=0;a{var n,o;const i=null!==(n=null==r?void 0:r.renderBefore)&&void 0!==n?n:t;let a=i._$litPart$;if(void 0===a){const e=null!==(o=null==r?void 0:r.renderBefore)&&void 0!==o?o:null;i._$litPart$=a=new R(t.insertBefore(u(),e),e,void 0,null!=r?r:{})}return a._$AI(e),a}; +var t$2;u$1[d$1]=!0,u$1.elementProperties=new Map,u$1.elementStyles=[],u$1.shadowRootOptions={mode:"open"},null==o$3||o$3({ReactiveElement:u$1}),(null!==(s$2=e$4.reactiveElementVersions)&&void 0!==s$2?s$2:e$4.reactiveElementVersions=[]).push("1.6.3");const i$2=window,s$1=i$2.trustedTypes,e$3=s$1?s$1.createPolicy("lit-html",{createHTML:e=>e}):void 0,o$2="$lit$",n$3=`lit$${(Math.random()+"").slice(9)}$`,l$2="?"+n$3,h=`<${l$2}>`,r=document,u=()=>r.createComment(""),d=e=>null===e||"object"!=typeof e&&"function"!=typeof e,c=Array.isArray,v=e=>c(e)||"function"==typeof(null==e?void 0:e[Symbol.iterator]),a="[ \t\n\f\r]",f=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,_=/-->/g,m=/>/g,p=RegExp(`>|${a}(?:([^\\s"'>=/]+)(${a}*=${a}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),g=/'/g,$=/"/g,y=/^(?:script|style|textarea|title)$/i,w=e=>(t,...r)=>({_$litType$:e,strings:t,values:r}),x=w(1),b=w(2),T=Symbol.for("lit-noChange"),A=Symbol.for("lit-nothing"),E=new WeakMap,C=r.createTreeWalker(r,129,null,!1);function P(e,t){if(!Array.isArray(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==e$3?e$3.createHTML(t):t}const V=(e,t)=>{const r=e.length-1,n=[];let o,i=2===t?"":"",s=f;for(let a=0;a"===c[0]?(s=null!=o?o:f,u=-1):void 0===c[1]?u=-2:(u=s.lastIndex-c[2].length,r=c[1],s=void 0===c[3]?p:'"'===c[3]?$:g):s===$||s===g?s=p:s===_||s===m?s=f:(s=p,o=void 0);const d=s===p&&e[a+1].startsWith("/>")?" ":"";i+=s===f?t+h:u>=0?(n.push(r),t.slice(0,u)+o$2+t.slice(u)+n$3+d):t+n$3+(-2===u?(n.push(void 0),a):d)}return[P(e,i+(e[r]||"")+(2===t?"":"")),n]};class N{constructor({strings:e,_$litType$:t},r){let n;this.parts=[];let o=0,i=0;const s=e.length-1,a=this.parts,[c,l]=V(e,t);if(this.el=N.createElement(c,r),C.currentNode=this.el.content,2===t){const e=this.el.content,t=e.firstChild;t.remove(),e.append(...t.childNodes)}for(;null!==(n=C.nextNode())&&a.length0){n.textContent=s$1?s$1.emptyScript:"";for(let r=0;r2||""!==r[0]||""!==r[1]?(this._$AH=Array(r.length-1).fill(new String),this.strings=r):this._$AH=A}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(e,t=this,r,n){const o=this.strings;let i=!1;if(void 0===o)e=S(this,e,t,0),i=!d(e)||e!==this._$AH&&e!==T,i&&(this._$AH=e);else{const n=e;let s,a;for(e=o[0],s=0;s{var n,o;const i=null!==(n=null==r?void 0:r.renderBefore)&&void 0!==n?n:t;let s=i._$litPart$;if(void 0===s){const e=null!==(o=null==r?void 0:r.renderBefore)&&void 0!==o?o:null;i._$litPart$=s=new R(t.insertBefore(u(),e),e,void 0,null!=r?r:{})}return s._$AI(e),s}; /** * @license * Copyright 2017 Google LLC @@ -157,10 +164,10 @@ const t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e * @license * Copyright 2018 Google LLC * SPDX-License-Identifier: BSD-3-Clause - */const o=e(class extends i{constructor(e){var r;if(super(e),e.type!==t.ATTRIBUTE||"class"!==e.name||(null===(r=e.strings)||void 0===r?void 0:r.length)>2)throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.")}render(e){return" "+Object.keys(e).filter((t=>e[t])).join(" ")+" "}update(e,[t]){var r,n;if(void 0===this.it){this.it=new Set,void 0!==e.strings&&(this.nt=new Set(e.strings.join(" ").split(/\s/).filter((e=>""!==e))));for(const e in t)t[e]&&!(null===(r=this.nt)||void 0===r?void 0:r.has(e))&&this.it.add(e);return this.render(t)}const o=e.element.classList;this.it.forEach((e=>{e in t||(o.remove(e),this.it.delete(e))}));for(const i in t){const e=!!t[i];e===this.it.has(i)||(null===(n=this.nt)||void 0===n?void 0:n.has(i))||(e?(o.add(i),this.it.add(i)):(o.remove(i),this.it.delete(i)))}return T}});function addUniqueItem(e,t){-1===e.indexOf(t)&&e.push(t)}const clamp=(e,t,r)=>Math.min(Math.max(r,e),t),defaults={duration:.3,delay:0,endDelay:0,repeat:0,easing:"ease"},isNumber=e=>"number"==typeof e,isEasingList=e=>Array.isArray(e)&&!isNumber(e[0]),wrap=(e,t,r)=>{const n=t-e;return((r-e)%n+n)%n+e};function getEasingForSegment(e,t){return isEasingList(e)?e[wrap(0,e.length,t)]:e}const mix=(e,t,r)=>-r*e+r*t+e,noop=()=>{},noopReturn=e=>e,progress=(e,t,r)=>t-e==0?1:(r-e)/(t-e);function fillOffset(e,t){const r=e[e.length-1];for(let n=1;n<=t;n++){const o=progress(0,t,n);e.push(mix(r,1,o))}}function defaultOffset(e){const t=[0];return fillOffset(t,e-1),t}function interpolate(e,t=defaultOffset(e.length),r=noopReturn){const n=e.length,o=n-t.length;return o>0&&fillOffset(t,o),o=>{let i=0;for(;iArray.isArray(e)&&isNumber(e[0]),isEasingGenerator=e=>"object"==typeof e&&Boolean(e.createAnimation),isFunction=e=>"function"==typeof e,isString=e=>"string"==typeof e,time={ms:e=>1e3*e,s:e=>e/1e3},calcBezier=(e,t,r)=>(((1-3*r+3*t)*e+(3*r-6*t))*e+3*t)*e,subdivisionPrecision=1e-7,subdivisionMaxIterations=12;function binarySubdivide(e,t,r,n,o){let i,a,s=0;do{a=t+(r-t)/2,i=calcBezier(a,n,o)-e,i>0?r=a:t=a}while(Math.abs(i)>subdivisionPrecision&&++s0===o||1===o?o:calcBezier(binarySubdivide(o,0,1,e,r),t,n)}const steps=(e,t="end")=>r=>{const n=(r="end"===t?Math.min(r,.999):Math.max(r,.001))*e,o="end"===t?Math.floor(n):Math.ceil(n);return clamp(0,1,o/e)},namedEasings={ease:cubicBezier(.25,.1,.25,1),"ease-in":cubicBezier(.42,0,1,1),"ease-in-out":cubicBezier(.42,0,.58,1),"ease-out":cubicBezier(0,0,.58,1)},functionArgsRegex=/\((.*?)\)/;function getEasingFunction(e){if(isFunction(e))return e;if(isCubicBezier(e))return cubicBezier(...e);const t=namedEasings[e];if(t)return t;if(e.startsWith("steps")){const t=functionArgsRegex.exec(e);if(t){const e=t[1].split(",");return steps(parseFloat(e[0]),e[1].trim())}}return noopReturn}class Animation{constructor(e,t=[0,1],{easing:r,duration:n=defaults.duration,delay:o=defaults.delay,endDelay:i=defaults.endDelay,repeat:a=defaults.repeat,offset:s,direction:c="normal",autoplay:u=!0}={}){if(this.startTime=null,this.rate=1,this.t=0,this.cancelTimestamp=null,this.easing=noopReturn,this.duration=0,this.totalDuration=0,this.repeat=0,this.playState="idle",this.finished=new Promise(((e,t)=>{this.resolve=e,this.reject=t})),r=r||defaults.easing,isEasingGenerator(r)){const e=r.createAnimation(t);r=e.easing,t=e.keyframes||t,n=e.duration||n}this.repeat=a,this.easing=isEasingList(r)?noopReturn:getEasingFunction(r),this.updateDuration(n);const l=interpolate(t,s,isEasingList(r)?r.map(getEasingFunction):noopReturn);this.tick=t=>{var r;let n=0;n=void 0!==this.pauseTime?this.pauseTime:(t-this.startTime)*this.rate,this.t=n,n/=1e3,n=Math.max(n-o,0),"finished"===this.playState&&void 0===this.pauseTime&&(n=this.totalDuration);const a=n/this.duration;let s=Math.floor(a),u=a%1;!u&&a>=1&&(u=1),1===u&&s--;const d=s%2;("reverse"===c||"alternate"===c&&d||"alternate-reverse"===c&&!d)&&(u=1-u);const f=n>=this.totalDuration?1:Math.min(u,1),h=l(this.easing(f));e(h);void 0===this.pauseTime&&("finished"===this.playState||n>=this.totalDuration+i)?(this.playState="finished",null===(r=this.resolve)||void 0===r||r.call(this,h)):"idle"!==this.playState&&(this.frameRequestId=requestAnimationFrame(this.tick))},u&&this.play()}play(){const e=performance.now();this.playState="running",void 0!==this.pauseTime?this.startTime=e-this.pauseTime:this.startTime||(this.startTime=e),this.cancelTimestamp=this.startTime,this.pauseTime=void 0,this.frameRequestId=requestAnimationFrame(this.tick)}pause(){this.playState="paused",this.pauseTime=this.t}finish(){this.playState="finished",this.tick(0)}stop(){var e;this.playState="idle",void 0!==this.frameRequestId&&cancelAnimationFrame(this.frameRequestId),null===(e=this.reject)||void 0===e||e.call(this,!1)}cancel(){this.stop(),this.tick(this.cancelTimestamp)}reverse(){this.rate*=-1}commitStyles(){}updateDuration(e){this.duration=e,this.totalDuration=e*(this.repeat+1)}get currentTime(){return this.t}set currentTime(e){void 0!==this.pauseTime||0===this.rate?this.pauseTime=e:this.startTime=performance.now()-e/this.rate}get playbackRate(){return this.rate}set playbackRate(e){this.rate=e}}var invariant=function(){};"production"!==process$1.env.NODE_ENV&&(invariant=function(e,t){if(!e)throw new Error(t)});class MotionValue{setAnimation(e){this.animation=e,null==e||e.finished.then((()=>this.clearAnimation())).catch((()=>{}))}clearAnimation(){this.animation=this.generator=void 0}}const data=new WeakMap;function getAnimationData(e){return data.has(e)||data.set(e,{transforms:[],values:new Map}),data.get(e)}function getMotionValue(e,t){return e.has(t)||e.set(t,new MotionValue),e.get(t)}const axes=["","X","Y","Z"],order=["translate","scale","rotate","skew"],transformAlias={x:"translateX",y:"translateY",z:"translateZ"},rotation={syntax:"",initialValue:"0deg",toDefaultUnit:e=>e+"deg"},baseTransformProperties={translate:{syntax:"",initialValue:"0px",toDefaultUnit:e=>e+"px"},rotate:rotation,scale:{syntax:"",initialValue:1,toDefaultUnit:noopReturn},skew:rotation},transformDefinitions=new Map,asTransformCssVar=e=>`--motion-${e}`,transforms=["x","y","z"];order.forEach((e=>{axes.forEach((t=>{transforms.push(e+t),transformDefinitions.set(asTransformCssVar(e+t),baseTransformProperties[e])}))}));const compareTransformOrder=(e,t)=>transforms.indexOf(e)-transforms.indexOf(t),transformLookup=new Set(transforms),isTransform=e=>transformLookup.has(e),addTransformToElement=(e,t)=>{transformAlias[t]&&(t=transformAlias[t]);const{transforms:r}=getAnimationData(e);addUniqueItem(r,t),e.style.transform=buildTransformTemplate(r)},buildTransformTemplate=e=>e.sort(compareTransformOrder).reduce(transformListToString,"").trim(),transformListToString=(e,t)=>`${e} ${t}(var(${asTransformCssVar(t)}))`,isCssVar=e=>e.startsWith("--"),registeredProperties=new Set;function registerCssVariable(e){if(!registeredProperties.has(e)){registeredProperties.add(e);try{const{syntax:t,initialValue:r}=transformDefinitions.has(e)?transformDefinitions.get(e):{};CSS.registerProperty({name:e,inherits:!1,syntax:t,initialValue:r})}catch(e2){}}}const testAnimation=(e,t)=>document.createElement("div").animate(e,t),featureTests={cssRegisterProperty:()=>"undefined"!=typeof CSS&&Object.hasOwnProperty.call(CSS,"registerProperty"),waapi:()=>Object.hasOwnProperty.call(Element.prototype,"animate"),partialKeyframes:()=>{try{testAnimation({opacity:[1]})}catch(e2){return!1}return!0},finished:()=>Boolean(testAnimation({opacity:[0,1]},{duration:.001}).finished),linearEasing:()=>{try{testAnimation({opacity:0},{easing:"linear(0, 1)"})}catch(e2){return!1}return!0}},results={},supports={};for(const ee in featureTests)supports[ee]=()=>(void 0===results[ee]&&(results[ee]=featureTests[ee]()),results[ee]);const resolution=.015,generateLinearEasingPoints=(e,t)=>{let r="";const n=Math.round(t/resolution);for(let o=0;oisFunction(e)?supports.linearEasing()?`linear(${generateLinearEasingPoints(e,t)})`:defaults.easing:isCubicBezier(e)?cubicBezierAsString(e):e,cubicBezierAsString=([e,t,r,n])=>`cubic-bezier(${e}, ${t}, ${r}, ${n})`;function hydrateKeyframes(e,t){for(let r=0;rArray.isArray(e)?e:[e];function getStyleName(e){return transformAlias[e]&&(e=transformAlias[e]),isTransform(e)?asTransformCssVar(e):e}const style={get:(e,t)=>{t=getStyleName(t);let r=isCssVar(t)?e.style.getPropertyValue(t):getComputedStyle(e)[t];if(!r&&0!==r){const e=transformDefinitions.get(t);e&&(r=e.initialValue)}return r},set:(e,t,r)=>{t=getStyleName(t),isCssVar(t)?e.style.setProperty(t,r):e.style[t]=r}};function stopAnimation(e,t=!0){if(e&&"finished"!==e.playState)try{e.stop?e.stop():(t&&e.commitStyles(),e.cancel())}catch(e2){}}function getUnitConverter(e,t){var r;let n=(null==t?void 0:t.toDefaultUnit)||noopReturn;const o=e[e.length-1];if(isString(o)){const e=(null===(r=o.match(/(-?[\d.]+)([a-z%]*)/))||void 0===r?void 0:r[2])||"";e&&(n=t=>t+e)}return n}function getDevToolsRecord(){return window.__MOTION_DEV_TOOLS_RECORD}function animateStyle(e,t,r,n={},o){const i=getDevToolsRecord(),a=!1!==n.record&&i;let s,{duration:c=defaults.duration,delay:u=defaults.delay,endDelay:l=defaults.endDelay,repeat:d=defaults.repeat,easing:f=defaults.easing,persist:h=!1,direction:p,offset:y,allowWebkitAcceleration:m=!1,autoplay:g=!0}=n;const b=getAnimationData(e),v=isTransform(t);let w=supports.waapi();v&&addTransformToElement(e,t);const _=getStyleName(t),I=getMotionValue(b.values,_),T=transformDefinitions.get(_);return stopAnimation(I.animation,!(isEasingGenerator(f)&&I.generator)&&!1!==n.record),()=>{const b=()=>{var t,r;return null!==(r=null!==(t=style.get(e,_))&&void 0!==t?t:null==T?void 0:T.initialValue)&&void 0!==r?r:0};let k=hydrateKeyframes(keyframesList(r),b);const $=getUnitConverter(k,T);if(isEasingGenerator(f)){const e=f.createAnimation(k,"opacity"!==t,b,_,I);f=e.easing,k=e.keyframes||k,c=e.duration||c}if(isCssVar(_)&&(supports.cssRegisterProperty()?registerCssVariable(_):w=!1),v&&!supports.linearEasing()&&(isFunction(f)||isEasingList(f)&&f.some(isFunction))&&(w=!1),w){T&&(k=k.map((e=>isNumber(e)?T.toDefaultUnit(e):e))),1!==k.length||supports.partialKeyframes()&&!a||k.unshift(b());const t={delay:time.ms(u),duration:time.ms(c),endDelay:time.ms(l),easing:isEasingList(f)?void 0:convertEasing(f,c),direction:p,iterations:d+1,fill:"both"};s=e.animate({[_]:k,offset:y,easing:isEasingList(f)?f.map((e=>convertEasing(e,c))):void 0},t),s.finished||(s.finished=new Promise(((e,t)=>{s.onfinish=e,s.oncancel=t})));const r=k[k.length-1];s.finished.then((()=>{h||(style.set(e,_,r),s.cancel())})).catch(noop),m||(s.playbackRate=1.000001)}else if(v)k=k.map((e=>"string"==typeof e?parseFloat(e):e)),1===k.length&&k.unshift(parseFloat(b())),s=new o((t=>{style.set(e,_,$?$(t):t)}),k,Object.assign(Object.assign({},n),{duration:c,easing:f}));else{const t=k[k.length-1];style.set(e,_,T&&isNumber(t)?T.toDefaultUnit(t):t)}return a&&i(e,t,k,{duration:c,delay:u,easing:f,repeat:d,offset:y},"motion-one"),I.setAnimation(s),s&&!g&&s.pause(),s}}const getOptions=(e,t)=>e[t]?Object.assign(Object.assign({},e),e[t]):Object.assign({},e);function resolveElements(e,t){return"string"==typeof e?e=document.querySelectorAll(e):e instanceof Element&&(e=[e]),Array.from(e||[])}const createAnimation=e=>e(),withControls=(e,t,r=defaults.duration)=>new Proxy({animations:e.map(createAnimation).filter(Boolean),duration:r,options:t},controls),getActiveAnimation=e=>e.animations[0],controls={get:(e,t)=>{const r=getActiveAnimation(e);switch(t){case"duration":return e.duration;case"currentTime":return time.s((null==r?void 0:r[t])||0);case"playbackRate":case"playState":return null==r?void 0:r[t];case"finished":return e.finished||(e.finished=Promise.all(e.animations.map(selectFinished)).catch(noop)),e.finished;case"stop":return()=>{e.animations.forEach((e=>stopAnimation(e)))};case"forEachNative":return t=>{e.animations.forEach((r=>t(r,e)))};default:return void 0===(null==r?void 0:r[t])?void 0:()=>e.animations.forEach((e=>e[t]()))}},set:(e,t,r)=>{switch(t){case"currentTime":r=time.ms(r);case"playbackRate":for(let n=0;ne.finished;function resolveOption(e,t,r){return isFunction(e)?e(t,r):e}function createAnimate(e){return function(t,r,n={}){const o=(t=resolveElements(t)).length;invariant(Boolean(o),"No valid element provided."),invariant(Boolean(r),"No keyframes defined.");const i=[];for(let a=0;a{const r=new Animation(e,[0,1],t);return r.finished.catch((()=>{})),r}],t,t.duration)}function animate(e,t,r){return(isFunction(e)?animateProgress:animate$1)(e,t,r)} + */const o=e(class extends i{constructor(e){var r;if(super(e),e.type!==t.ATTRIBUTE||"class"!==e.name||(null===(r=e.strings)||void 0===r?void 0:r.length)>2)throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.")}render(e){return" "+Object.keys(e).filter((t=>e[t])).join(" ")+" "}update(e,[t]){var r,n;if(void 0===this.it){this.it=new Set,void 0!==e.strings&&(this.nt=new Set(e.strings.join(" ").split(/\s/).filter((e=>""!==e))));for(const e in t)t[e]&&!(null===(r=this.nt)||void 0===r?void 0:r.has(e))&&this.it.add(e);return this.render(t)}const o=e.element.classList;this.it.forEach((e=>{e in t||(o.remove(e),this.it.delete(e))}));for(const i in t){const e=!!t[i];e===this.it.has(i)||(null===(n=this.nt)||void 0===n?void 0:n.has(i))||(e?(o.add(i),this.it.add(i)):(o.remove(i),this.it.delete(i)))}return T}});function addUniqueItem(e,t){-1===e.indexOf(t)&&e.push(t)}const clamp=(e,t,r)=>Math.min(Math.max(r,e),t),defaults={duration:.3,delay:0,endDelay:0,repeat:0,easing:"ease"},isNumber=e=>"number"==typeof e,isEasingList=e=>Array.isArray(e)&&!isNumber(e[0]),wrap=(e,t,r)=>{const n=t-e;return((r-e)%n+n)%n+e};function getEasingForSegment(e,t){return isEasingList(e)?e[wrap(0,e.length,t)]:e}const mix=(e,t,r)=>-r*e+r*t+e,noop=()=>{},noopReturn=e=>e,progress=(e,t,r)=>t-e==0?1:(r-e)/(t-e);function fillOffset(e,t){const r=e[e.length-1];for(let n=1;n<=t;n++){const o=progress(0,t,n);e.push(mix(r,1,o))}}function defaultOffset(e){const t=[0];return fillOffset(t,e-1),t}function interpolate(e,t=defaultOffset(e.length),r=noopReturn){const n=e.length,o=n-t.length;return o>0&&fillOffset(t,o),o=>{let i=0;for(;iArray.isArray(e)&&isNumber(e[0]),isEasingGenerator=e=>"object"==typeof e&&Boolean(e.createAnimation),isFunction=e=>"function"==typeof e,isString=e=>"string"==typeof e,time={ms:e=>1e3*e,s:e=>e/1e3},calcBezier=(e,t,r)=>(((1-3*r+3*t)*e+(3*r-6*t))*e+3*t)*e,subdivisionPrecision=1e-7,subdivisionMaxIterations=12;function binarySubdivide(e,t,r,n,o){let i,s,a=0;do{s=t+(r-t)/2,i=calcBezier(s,n,o)-e,i>0?r=s:t=s}while(Math.abs(i)>subdivisionPrecision&&++a0===o||1===o?o:calcBezier(binarySubdivide(o,0,1,e,r),t,n)}const steps=(e,t="end")=>r=>{const n=(r="end"===t?Math.min(r,.999):Math.max(r,.001))*e,o="end"===t?Math.floor(n):Math.ceil(n);return clamp(0,1,o/e)},namedEasings={ease:cubicBezier(.25,.1,.25,1),"ease-in":cubicBezier(.42,0,1,1),"ease-in-out":cubicBezier(.42,0,.58,1),"ease-out":cubicBezier(0,0,.58,1)},functionArgsRegex=/\((.*?)\)/;function getEasingFunction(e){if(isFunction(e))return e;if(isCubicBezier(e))return cubicBezier(...e);const t=namedEasings[e];if(t)return t;if(e.startsWith("steps")){const t=functionArgsRegex.exec(e);if(t){const e=t[1].split(",");return steps(parseFloat(e[0]),e[1].trim())}}return noopReturn}class Animation{constructor(e,t=[0,1],{easing:r,duration:n=defaults.duration,delay:o=defaults.delay,endDelay:i=defaults.endDelay,repeat:s=defaults.repeat,offset:a,direction:c="normal",autoplay:u=!0}={}){if(this.startTime=null,this.rate=1,this.t=0,this.cancelTimestamp=null,this.easing=noopReturn,this.duration=0,this.totalDuration=0,this.repeat=0,this.playState="idle",this.finished=new Promise(((e,t)=>{this.resolve=e,this.reject=t})),r=r||defaults.easing,isEasingGenerator(r)){const e=r.createAnimation(t);r=e.easing,t=e.keyframes||t,n=e.duration||n}this.repeat=s,this.easing=isEasingList(r)?noopReturn:getEasingFunction(r),this.updateDuration(n);const l=interpolate(t,a,isEasingList(r)?r.map(getEasingFunction):noopReturn);this.tick=t=>{var r;let n=0;n=void 0!==this.pauseTime?this.pauseTime:(t-this.startTime)*this.rate,this.t=n,n/=1e3,n=Math.max(n-o,0),"finished"===this.playState&&void 0===this.pauseTime&&(n=this.totalDuration);const s=n/this.duration;let a=Math.floor(s),u=s%1;!u&&s>=1&&(u=1),1===u&&a--;const d=a%2;("reverse"===c||"alternate"===c&&d||"alternate-reverse"===c&&!d)&&(u=1-u);const h=n>=this.totalDuration?1:Math.min(u,1),f=l(this.easing(h));e(f);void 0===this.pauseTime&&("finished"===this.playState||n>=this.totalDuration+i)?(this.playState="finished",null===(r=this.resolve)||void 0===r||r.call(this,f)):"idle"!==this.playState&&(this.frameRequestId=requestAnimationFrame(this.tick))},u&&this.play()}play(){const e=performance.now();this.playState="running",void 0!==this.pauseTime?this.startTime=e-this.pauseTime:this.startTime||(this.startTime=e),this.cancelTimestamp=this.startTime,this.pauseTime=void 0,this.frameRequestId=requestAnimationFrame(this.tick)}pause(){this.playState="paused",this.pauseTime=this.t}finish(){this.playState="finished",this.tick(0)}stop(){var e;this.playState="idle",void 0!==this.frameRequestId&&cancelAnimationFrame(this.frameRequestId),null===(e=this.reject)||void 0===e||e.call(this,!1)}cancel(){this.stop(),this.tick(this.cancelTimestamp)}reverse(){this.rate*=-1}commitStyles(){}updateDuration(e){this.duration=e,this.totalDuration=e*(this.repeat+1)}get currentTime(){return this.t}set currentTime(e){void 0!==this.pauseTime||0===this.rate?this.pauseTime=e:this.startTime=performance.now()-e/this.rate}get playbackRate(){return this.rate}set playbackRate(e){this.rate=e}}var invariant=function(){};"production"!==process$1.env.NODE_ENV&&(invariant=function(e,t){if(!e)throw new Error(t)});class MotionValue{setAnimation(e){this.animation=e,null==e||e.finished.then((()=>this.clearAnimation())).catch((()=>{}))}clearAnimation(){this.animation=this.generator=void 0}}const data=new WeakMap;function getAnimationData(e){return data.has(e)||data.set(e,{transforms:[],values:new Map}),data.get(e)}function getMotionValue(e,t){return e.has(t)||e.set(t,new MotionValue),e.get(t)}const axes=["","X","Y","Z"],order=["translate","scale","rotate","skew"],transformAlias={x:"translateX",y:"translateY",z:"translateZ"},rotation={syntax:"",initialValue:"0deg",toDefaultUnit:e=>e+"deg"},baseTransformProperties={translate:{syntax:"",initialValue:"0px",toDefaultUnit:e=>e+"px"},rotate:rotation,scale:{syntax:"",initialValue:1,toDefaultUnit:noopReturn},skew:rotation},transformDefinitions=new Map,asTransformCssVar=e=>`--motion-${e}`,transforms=["x","y","z"];order.forEach((e=>{axes.forEach((t=>{transforms.push(e+t),transformDefinitions.set(asTransformCssVar(e+t),baseTransformProperties[e])}))}));const compareTransformOrder=(e,t)=>transforms.indexOf(e)-transforms.indexOf(t),transformLookup=new Set(transforms),isTransform=e=>transformLookup.has(e),addTransformToElement=(e,t)=>{transformAlias[t]&&(t=transformAlias[t]);const{transforms:r}=getAnimationData(e);addUniqueItem(r,t),e.style.transform=buildTransformTemplate(r)},buildTransformTemplate=e=>e.sort(compareTransformOrder).reduce(transformListToString,"").trim(),transformListToString=(e,t)=>`${e} ${t}(var(${asTransformCssVar(t)}))`,isCssVar=e=>e.startsWith("--"),registeredProperties=new Set;function registerCssVariable(e){if(!registeredProperties.has(e)){registeredProperties.add(e);try{const{syntax:t,initialValue:r}=transformDefinitions.has(e)?transformDefinitions.get(e):{};CSS.registerProperty({name:e,inherits:!1,syntax:t,initialValue:r})}catch(t){}}}const testAnimation=(e,t)=>document.createElement("div").animate(e,t),featureTests={cssRegisterProperty:()=>"undefined"!=typeof CSS&&Object.hasOwnProperty.call(CSS,"registerProperty"),waapi:()=>Object.hasOwnProperty.call(Element.prototype,"animate"),partialKeyframes:()=>{try{testAnimation({opacity:[1]})}catch(e){return!1}return!0},finished:()=>Boolean(testAnimation({opacity:[0,1]},{duration:.001}).finished),linearEasing:()=>{try{testAnimation({opacity:0},{easing:"linear(0, 1)"})}catch(e){return!1}return!0}},results={},supports={};for(const ee in featureTests)supports[ee]=()=>(void 0===results[ee]&&(results[ee]=featureTests[ee]()),results[ee]);const resolution=.015,generateLinearEasingPoints=(e,t)=>{let r="";const n=Math.round(t/resolution);for(let o=0;oisFunction(e)?supports.linearEasing()?`linear(${generateLinearEasingPoints(e,t)})`:defaults.easing:isCubicBezier(e)?cubicBezierAsString(e):e,cubicBezierAsString=([e,t,r,n])=>`cubic-bezier(${e}, ${t}, ${r}, ${n})`;function hydrateKeyframes(e,t){for(let r=0;rArray.isArray(e)?e:[e];function getStyleName(e){return transformAlias[e]&&(e=transformAlias[e]),isTransform(e)?asTransformCssVar(e):e}const style={get:(e,t)=>{t=getStyleName(t);let r=isCssVar(t)?e.style.getPropertyValue(t):getComputedStyle(e)[t];if(!r&&0!==r){const e=transformDefinitions.get(t);e&&(r=e.initialValue)}return r},set:(e,t,r)=>{t=getStyleName(t),isCssVar(t)?e.style.setProperty(t,r):e.style[t]=r}};function stopAnimation(e,t=!0){if(e&&"finished"!==e.playState)try{e.stop?e.stop():(t&&e.commitStyles(),e.cancel())}catch(r){}}function getUnitConverter(e,t){var r;let n=(null==t?void 0:t.toDefaultUnit)||noopReturn;const o=e[e.length-1];if(isString(o)){const e=(null===(r=o.match(/(-?[\d.]+)([a-z%]*)/))||void 0===r?void 0:r[2])||"";e&&(n=t=>t+e)}return n}function getDevToolsRecord(){return window.__MOTION_DEV_TOOLS_RECORD}function animateStyle(e,t,r,n={},o){const i=getDevToolsRecord(),s=!1!==n.record&&i;let a,{duration:c=defaults.duration,delay:u=defaults.delay,endDelay:l=defaults.endDelay,repeat:d=defaults.repeat,easing:h=defaults.easing,persist:f=!1,direction:p,offset:m,allowWebkitAcceleration:y=!1,autoplay:g=!0}=n;const b=getAnimationData(e),w=isTransform(t);let _=supports.waapi();w&&addTransformToElement(e,t);const v=getStyleName(t),$=getMotionValue(b.values,v),I=transformDefinitions.get(v);return stopAnimation($.animation,!(isEasingGenerator(h)&&$.generator)&&!1!==n.record),()=>{const b=()=>{var t,r;return null!==(r=null!==(t=style.get(e,v))&&void 0!==t?t:null==I?void 0:I.initialValue)&&void 0!==r?r:0};let k=hydrateKeyframes(keyframesList(r),b);const A=getUnitConverter(k,I);if(isEasingGenerator(h)){const e=h.createAnimation(k,"opacity"!==t,b,v,$);h=e.easing,k=e.keyframes||k,c=e.duration||c}if(isCssVar(v)&&(supports.cssRegisterProperty()?registerCssVariable(v):_=!1),w&&!supports.linearEasing()&&(isFunction(h)||isEasingList(h)&&h.some(isFunction))&&(_=!1),_){I&&(k=k.map((e=>isNumber(e)?I.toDefaultUnit(e):e))),1!==k.length||supports.partialKeyframes()&&!s||k.unshift(b());const t={delay:time.ms(u),duration:time.ms(c),endDelay:time.ms(l),easing:isEasingList(h)?void 0:convertEasing(h,c),direction:p,iterations:d+1,fill:"both"};a=e.animate({[v]:k,offset:m,easing:isEasingList(h)?h.map((e=>convertEasing(e,c))):void 0},t),a.finished||(a.finished=new Promise(((e,t)=>{a.onfinish=e,a.oncancel=t})));const r=k[k.length-1];a.finished.then((()=>{f||(style.set(e,v,r),a.cancel())})).catch(noop),y||(a.playbackRate=1.000001)}else if(w)k=k.map((e=>"string"==typeof e?parseFloat(e):e)),1===k.length&&k.unshift(parseFloat(b())),a=new o((t=>{style.set(e,v,A?A(t):t)}),k,Object.assign(Object.assign({},n),{duration:c,easing:h}));else{const t=k[k.length-1];style.set(e,v,I&&isNumber(t)?I.toDefaultUnit(t):t)}return s&&i(e,t,k,{duration:c,delay:u,easing:h,repeat:d,offset:m},"motion-one"),$.setAnimation(a),a&&!g&&a.pause(),a}}const getOptions=(e,t)=>e[t]?Object.assign(Object.assign({},e),e[t]):Object.assign({},e);function resolveElements(e,t){return"string"==typeof e?e=document.querySelectorAll(e):e instanceof Element&&(e=[e]),Array.from(e||[])}const createAnimation=e=>e(),withControls=(e,t,r=defaults.duration)=>new Proxy({animations:e.map(createAnimation).filter(Boolean),duration:r,options:t},controls),getActiveAnimation=e=>e.animations[0],controls={get:(e,t)=>{const r=getActiveAnimation(e);switch(t){case"duration":return e.duration;case"currentTime":return time.s((null==r?void 0:r[t])||0);case"playbackRate":case"playState":return null==r?void 0:r[t];case"finished":return e.finished||(e.finished=Promise.all(e.animations.map(selectFinished)).catch(noop)),e.finished;case"stop":return()=>{e.animations.forEach((e=>stopAnimation(e)))};case"forEachNative":return t=>{e.animations.forEach((r=>t(r,e)))};default:return void 0===(null==r?void 0:r[t])?void 0:()=>e.animations.forEach((e=>e[t]()))}},set:(e,t,r)=>{switch(t){case"currentTime":r=time.ms(r);case"playbackRate":for(let n=0;ne.finished;function resolveOption(e,t,r){return isFunction(e)?e(t,r):e}function createAnimate(e){return function(t,r,n={}){const o=(t=resolveElements(t)).length;invariant(Boolean(o),"No valid element provided."),invariant(Boolean(r),"No keyframes defined.");const i=[];for(let s=0;s{const r=new Animation(e,[0,1],t);return r.finished.catch((()=>{})),r}],t,t.duration)}function animate(e,t,r){return(isFunction(e)?animateProgress:animate$1)(e,t,r)} /** * @license * Copyright 2018 Google LLC * SPDX-License-Identifier: BSD-3-Clause - */const l=e=>null!=e?e:A;var browser={},canPromise$1=function(){return"function"==typeof Promise&&Promise.prototype&&Promise.prototype.then},qrcode={},utils$1={};let toSJISFunction;const CODEWORDS_COUNT=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];utils$1.getSymbolSize=function(e){if(!e)throw new Error('"version" cannot be null or undefined');if(e<1||e>40)throw new Error('"version" should be in range from 1 to 40');return 4*e+17},utils$1.getSymbolTotalCodewords=function(e){return CODEWORDS_COUNT[e]},utils$1.getBCHDigit=function(e){let t=0;for(;0!==e;)t++,e>>>=1;return t},utils$1.setToSJISFunction=function(e){if("function"!=typeof e)throw new Error('"toSJISFunc" is not a valid function.');toSJISFunction=e},utils$1.isKanjiModeEnabled=function(){return void 0!==toSJISFunction},utils$1.toSJIS=function(e){return toSJISFunction(e)};var errorCorrectionLevel={};function BitBuffer$1(){this.buffer=[],this.length=0}!function(e){e.L={bit:1},e.M={bit:0},e.Q={bit:3},e.H={bit:2},e.isValid=function(e){return e&&void 0!==e.bit&&e.bit>=0&&e.bit<4},e.from=function(t,r){if(e.isValid(t))return t;try{return function(t){if("string"!=typeof t)throw new Error("Param is not a string");switch(t.toLowerCase()){case"l":case"low":return e.L;case"m":case"medium":return e.M;case"q":case"quartile":return e.Q;case"h":case"high":return e.H;default:throw new Error("Unknown EC Level: "+t)}}(t)}catch(e2){return r}}}(errorCorrectionLevel),BitBuffer$1.prototype={get:function(e){const t=Math.floor(e/8);return 1==(this.buffer[t]>>>7-e%8&1)},put:function(e,t){for(let r=0;r>>t-r-1&1))},getLengthInBits:function(){return this.length},putBit:function(e){const t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),e&&(this.buffer[t]|=128>>>this.length%8),this.length++}};var bitBuffer=BitBuffer$1;function BitMatrix$1(e){if(!e||e<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=e,this.data=new Uint8Array(e*e),this.reservedBit=new Uint8Array(e*e)}BitMatrix$1.prototype.set=function(e,t,r,n){const o=e*this.size+t;this.data[o]=r,n&&(this.reservedBit[o]=!0)},BitMatrix$1.prototype.get=function(e,t){return this.data[e*this.size+t]},BitMatrix$1.prototype.xor=function(e,t,r){this.data[e*this.size+t]^=r},BitMatrix$1.prototype.isReserved=function(e,t){return this.reservedBit[e*this.size+t]};var bitMatrix=BitMatrix$1,alignmentPattern={};!function(e){const t=utils$1.getSymbolSize;e.getRowColCoords=function(e){if(1===e)return[];const r=Math.floor(e/7)+2,n=t(e),o=145===n?26:2*Math.ceil((n-13)/(2*r-2)),i=[n-7];for(let t=1;t=0&&e<=7},e.from=function(t){return e.isValid(t)?parseInt(t,10):void 0},e.getPenaltyN1=function(e){const r=e.size;let n=0,o=0,i=0,a=null,s=null;for(let c=0;c=5&&(n+=t+(o-5)),a=r,o=1),r=e.get(u,c),r===s?i++:(i>=5&&(n+=t+(i-5)),s=r,i=1)}o>=5&&(n+=t+(o-5)),i>=5&&(n+=t+(i-5))}return n},e.getPenaltyN2=function(e){const t=e.size;let n=0;for(let r=0;r=10&&(1488===o||93===o)&&r++,i=i<<1&2047|e.get(a,n),a>=10&&(1488===i||93===i)&&r++}return r*n},e.getPenaltyN4=function(e){let t=0;const r=e.data.length;for(let n=0;n=0;){const e=n[0];for(let i=0;i0){const e=new Uint8Array(this.degree);return e.set(r,n),e}return r};var reedSolomonEncoder=ReedSolomonEncoder$1,version={},mode={},versionCheck={isValid:function(e){return!isNaN(e)&&e>=1&&e<=40}},regex={};const numeric="[0-9]+",alphanumeric="[A-Z $%*+\\-./:]+";let kanji="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+";kanji=kanji.replace(/u/g,"\\u");const byte="(?:(?![A-Z0-9 $%*+\\-./:]|"+kanji+")(?:.|[\r\n]))+";regex.KANJI=new RegExp(kanji,"g"),regex.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g"),regex.BYTE=new RegExp(byte,"g"),regex.NUMERIC=new RegExp(numeric,"g"),regex.ALPHANUMERIC=new RegExp(alphanumeric,"g");const TEST_KANJI=new RegExp("^"+kanji+"$"),TEST_NUMERIC=new RegExp("^"+numeric+"$"),TEST_ALPHANUMERIC=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");regex.testKanji=function(e){return TEST_KANJI.test(e)},regex.testNumeric=function(e){return TEST_NUMERIC.test(e)},regex.testAlphanumeric=function(e){return TEST_ALPHANUMERIC.test(e)},function(e){const t=versionCheck,r=regex;e.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},e.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},e.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},e.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},e.MIXED={bit:-1},e.getCharCountIndicator=function(e,r){if(!e.ccBits)throw new Error("Invalid mode: "+e);if(!t.isValid(r))throw new Error("Invalid version: "+r);return r>=1&&r<10?e.ccBits[0]:r<27?e.ccBits[1]:e.ccBits[2]},e.getBestModeForData=function(t){return r.testNumeric(t)?e.NUMERIC:r.testAlphanumeric(t)?e.ALPHANUMERIC:r.testKanji(t)?e.KANJI:e.BYTE},e.toString=function(e){if(e&&e.id)return e.id;throw new Error("Invalid mode")},e.isValid=function(e){return e&&e.bit&&e.ccBits},e.from=function(t,r){if(e.isValid(t))return t;try{return function(t){if("string"!=typeof t)throw new Error("Param is not a string");switch(t.toLowerCase()){case"numeric":return e.NUMERIC;case"alphanumeric":return e.ALPHANUMERIC;case"kanji":return e.KANJI;case"byte":return e.BYTE;default:throw new Error("Unknown mode: "+t)}}(t)}catch(e2){return r}}}(mode),function(e){const t=utils$1,r=errorCorrectionCode,n=errorCorrectionLevel,o=mode,i=versionCheck,a=t.getBCHDigit(7973);function s(e,t){return o.getCharCountIndicator(e,t)+4}function c(e,t){let r=0;return e.forEach((function(e){const n=s(e.mode,t);r+=n+e.getBitsLength()})),r}e.from=function(e,t){return i.isValid(e)?parseInt(e,10):t},e.getCapacity=function(e,n,a){if(!i.isValid(e))throw new Error("Invalid QR Code version");void 0===a&&(a=o.BYTE);const c=8*(t.getSymbolTotalCodewords(e)-r.getTotalCodewordsCount(e,n));if(a===o.MIXED)return c;const u=c-s(a,e);switch(a){case o.NUMERIC:return Math.floor(u/10*3);case o.ALPHANUMERIC:return Math.floor(u/11*2);case o.KANJI:return Math.floor(u/13);case o.BYTE:default:return Math.floor(u/8)}},e.getBestVersionForData=function(t,r){let i;const a=n.from(r,n.M);if(Array.isArray(t)){if(t.length>1)return function(t,r){for(let n=1;n<=40;n++)if(c(t,n)<=e.getCapacity(n,r,o.MIXED))return n}(t,a);if(0===t.length)return 1;i=t[0]}else i=t;return function(t,r,n){for(let o=1;o<=40;o++)if(r<=e.getCapacity(o,n,t))return o}(i.mode,i.getLength(),a)},e.getEncodedBits=function(e){if(!i.isValid(e)||e<7)throw new Error("Invalid QR Code version");let r=e<<12;for(;t.getBCHDigit(r)-a>=0;)r^=7973<=0;)n^=G15<0&&(r=this.data.substr(t),n=parseInt(r,10),e.put(n,3*o+1))};var numericData=NumericData;const Mode$3=mode,ALPHA_NUM_CHARS=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function AlphanumericData(e){this.mode=Mode$3.ALPHANUMERIC,this.data=e}AlphanumericData.getBitsLength=function(e){return 11*Math.floor(e/2)+e%2*6},AlphanumericData.prototype.getLength=function(){return this.data.length},AlphanumericData.prototype.getBitsLength=function(){return AlphanumericData.getBitsLength(this.data.length)},AlphanumericData.prototype.write=function(e){let t;for(t=0;t+2<=this.data.length;t+=2){let r=45*ALPHA_NUM_CHARS.indexOf(this.data[t]);r+=ALPHA_NUM_CHARS.indexOf(this.data[t+1]),e.put(r,11)}this.data.length%2&&e.put(ALPHA_NUM_CHARS.indexOf(this.data[t]),6)};var alphanumericData=AlphanumericData,encodeUtf8$1=function(e){for(var t=[],r=e.length,n=0;n=55296&&o<=56319&&r>n+1){var i=e.charCodeAt(n+1);i>=56320&&i<=57343&&(o=1024*(o-55296)+i-56320+65536,n+=1)}o<128?t.push(o):o<2048?(t.push(o>>6|192),t.push(63&o|128)):o<55296||o>=57344&&o<65536?(t.push(o>>12|224),t.push(o>>6&63|128),t.push(63&o|128)):o>=65536&&o<=1114111?(t.push(o>>18|240),t.push(o>>12&63|128),t.push(o>>6&63|128),t.push(63&o|128)):t.push(239,191,189)}return new Uint8Array(t).buffer};const encodeUtf8=encodeUtf8$1,Mode$2=mode;function ByteData(e){this.mode=Mode$2.BYTE,"string"==typeof e&&(e=encodeUtf8(e)),this.data=new Uint8Array(e)}ByteData.getBitsLength=function(e){return 8*e},ByteData.prototype.getLength=function(){return this.data.length},ByteData.prototype.getBitsLength=function(){return ByteData.getBitsLength(this.data.length)},ByteData.prototype.write=function(e){for(let t=0,r=this.data.length;t=33088&&r<=40956)r-=33088;else{if(!(r>=57408&&r<=60351))throw new Error("Invalid SJIS character: "+this.data[t]+"\nMake sure your charset is UTF-8");r-=49472}r=192*(r>>>8&255)+(255&r),e.put(r,13)}};var kanjiData=KanjiData;!function(e){const t=mode,r=numericData,n=alphanumericData,o=byteData,i=kanjiData,a=regex,s=utils$1,c=dijkstraExports;function u(e){return unescape(encodeURIComponent(e)).length}function l(e,t,r){const n=[];let o;for(;null!==(o=e.exec(r));)n.push({data:o[0],index:o.index,mode:t,length:o[0].length});return n}function d(e){const r=l(a.NUMERIC,t.NUMERIC,e),n=l(a.ALPHANUMERIC,t.ALPHANUMERIC,e);let o,i;s.isKanjiModeEnabled()?(o=l(a.BYTE,t.BYTE,e),i=l(a.KANJI,t.KANJI,e)):(o=l(a.BYTE_KANJI,t.BYTE,e),i=[]);return r.concat(n,o,i).sort((function(e,t){return e.index-t.index})).map((function(e){return{data:e.data,mode:e.mode,length:e.length}}))}function f(e,a){switch(a){case t.NUMERIC:return r.getBitsLength(e);case t.ALPHANUMERIC:return n.getBitsLength(e);case t.KANJI:return i.getBitsLength(e);case t.BYTE:return o.getBitsLength(e)}}function h(e,a){let c;const u=t.getBestModeForData(e);if(c=t.from(a,u),c!==t.BYTE&&c.bit=0?e[e.length-1]:null;return r&&r.mode===t.mode?(e[e.length-1].data+=t.data,e):(e.push(t),e)}),[])}(l))},e.rawSplit=function(t){return e.fromArray(d(t,s.isKanjiModeEnabled()))}}(segments);const Utils$1=utils$1,ECLevel=errorCorrectionLevel,BitBuffer=bitBuffer,BitMatrix=bitMatrix,AlignmentPattern=alignmentPattern,FinderPattern=finderPattern,MaskPattern=maskPattern,ECCode=errorCorrectionCode,ReedSolomonEncoder=reedSolomonEncoder,Version=version,FormatInfo=formatInfo,Mode=mode,Segments=segments;function setupFinderPattern(e,t){const r=e.size,n=FinderPattern.getPositions(t);for(let o=0;o=0&&n<=6&&(0===o||6===o)||o>=0&&o<=6&&(0===n||6===n)||n>=2&&n<=4&&o>=2&&o<=4?e.set(t+n,i+o,!0,!0):e.set(t+n,i+o,!1,!0))}}function setupTimingPattern(e){const t=e.size;for(let r=8;r>s&1),e.set(o,i,a,!0),e.set(i,o,a,!0)}function setupFormatInfo(e,t,r){const n=e.size,o=FormatInfo.getEncodedBits(t,r);let i,a;for(i=0;i<15;i++)a=1==(o>>i&1),i<6?e.set(i,8,a,!0):i<8?e.set(i+1,8,a,!0):e.set(n-15+i,8,a,!0),i<8?e.set(8,n-i-1,a,!0):i<9?e.set(8,15-i-1+1,a,!0):e.set(8,15-i-1,a,!0);e.set(n-8,8,1,!0)}function setupData(e,t){const r=e.size;let n=-1,o=r-1,i=7,a=0;for(let s=r-1;s>0;s-=2)for(6===s&&s--;;){for(let r=0;r<2;r++)if(!e.isReserved(o,s-r)){let n=!1;a>>i&1)),e.set(o,s-r,n),i--,-1===i&&(a++,i=7)}if(o+=n,o<0||r<=o){o-=n,n=-n;break}}}function createData(e,t,r){const n=new BitBuffer;r.forEach((function(t){n.put(t.mode.bit,4),n.put(t.getLength(),Mode.getCharCountIndicator(t.mode,e)),t.write(n)}));const o=8*(Utils$1.getSymbolTotalCodewords(e)-ECCode.getTotalCodewordsCount(e,t));for(n.getLengthInBits()+4<=o&&n.put(0,4);n.getLengthInBits()%8!=0;)n.putBit(0);const i=(o-n.getLengthInBits())/8;for(let a=0;a=7&&setupVersionInfo(c,t),setupData(c,a),isNaN(n)&&(n=MaskPattern.getBestMask(c,setupFormatInfo.bind(null,c,r))),MaskPattern.applyMask(n,c),setupFormatInfo(c,r,n),{modules:c,version:t,errorCorrectionLevel:r,maskPattern:n,segments:o}}qrcode.create=function(e,t){if(void 0===e||""===e)throw new Error("No input text");let r,n,o=ECLevel.M;return void 0!==t&&(o=ECLevel.from(t.errorCorrectionLevel,ECLevel.M),r=Version.from(t.version),n=MaskPattern.from(t.maskPattern),t.toSJISFunc&&Utils$1.setToSJISFunction(t.toSJISFunc)),createSymbol(e,r,o,n)};var canvas={},utils={};!function(e){function t(e){if("number"==typeof e&&(e=e.toString()),"string"!=typeof e)throw new Error("Color should be defined as hex string");let t=e.slice().replace("#","").split("");if(t.length<3||5===t.length||t.length>8)throw new Error("Invalid hex color: "+e);3!==t.length&&4!==t.length||(t=Array.prototype.concat.apply([],t.map((function(e){return[e,e]})))),6===t.length&&t.push("F","F");const r=parseInt(t.join(""),16);return{r:r>>24&255,g:r>>16&255,b:r>>8&255,a:255&r,hex:"#"+t.slice(0,6).join("")}}e.getOptions=function(e){e||(e={}),e.color||(e.color={});const r=void 0===e.margin||null===e.margin||e.margin<0?4:e.margin,n=e.width&&e.width>=21?e.width:void 0,o=e.scale||4;return{width:n,scale:n?4:o,margin:r,color:{dark:t(e.color.dark||"#000000ff"),light:t(e.color.light||"#ffffffff")},type:e.type,rendererOpts:e.rendererOpts||{}}},e.getScale=function(e,t){return t.width&&t.width>=e+2*t.margin?t.width/(e+2*t.margin):t.scale},e.getImageWidth=function(t,r){const n=e.getScale(t,r);return Math.floor((t+2*r.margin)*n)},e.qrToImageData=function(t,r,n){const o=r.modules.size,i=r.modules.data,a=e.getScale(o,n),s=Math.floor((o+2*n.margin)*a),c=n.margin*a,u=[n.color.light,n.color.dark];for(let e=0;e=c&&r>=c&&e0&&c>0&&e[s-1]||(n+=i?svgCmd("M",c+r,.5+u+r):svgCmd("m",o,0),o=0,i=!1),c+1':"",c="',u='viewBox="0 0 '+a+" "+a+'"',l=''+s+c+"\n";return"function"==typeof r&&r(null,l),l};const canPromise=canPromise$1,QRCode=qrcode,CanvasRenderer=canvas,SvgRenderer=svgTag;function renderCanvas(e,t,r,n,o){const i=[].slice.call(arguments,1),a=i.length,s="function"==typeof i[a-1];if(!s&&!canPromise())throw new Error("Callback required as last argument");if(!s){if(a<1)throw new Error("Too few arguments provided");return 1===a?(r=t,t=n=void 0):2!==a||t.getContext||(n=r,r=t,t=void 0),new Promise((function(o,i){try{const i=QRCode.create(r,n);o(e(i,t,n))}catch(e2){i(e2)}}))}if(a<2)throw new Error("Too few arguments provided");2===a?(o=r,r=t,t=n=void 0):3===a&&(t.getContext&&void 0===o?(o=n,n=void 0):(o=n,n=r,r=t,t=void 0));try{const i=QRCode.create(r,n);o(null,e(i,t,n))}catch(e2){o(e2)}}browser.create=QRCode.create,browser.toCanvas=renderCanvas.bind(null,CanvasRenderer.render),browser.toDataURL=renderCanvas.bind(null,CanvasRenderer.renderToDataURL),browser.toString=renderCanvas.bind(null,(function(e,t,r){return SvgRenderer.render(e,r)}));var __defProp$y=Object.defineProperty,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,t,r)=>t in e?__defProp$y(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,__spreadValues=(e,t)=>{for(var r in t||(t={}))__hasOwnProp.call(t,r)&&__defNormalProp(e,r,t[r]);if(__getOwnPropSymbols)for(var r of __getOwnPropSymbols(t))__propIsEnum.call(t,r)&&__defNormalProp(e,r,t[r]);return e};function themeModeVariables(){var e;const t={light:{foreground:{1:"rgb(20,20,20)",2:"rgb(121,134,134)",3:"rgb(158,169,169)"},background:{1:"rgb(255,255,255)",2:"rgb(241,243,243)",3:"rgb(228,231,231)"},overlay:"rgba(0,0,0,0.1)"},dark:{foreground:{1:"rgb(228,231,231)",2:"rgb(148,158,158)",3:"rgb(110,119,119)"},background:{1:"rgb(20,20,20)",2:"rgb(39,42,42)",3:"rgb(59,64,64)"},overlay:"rgba(255,255,255,0.1)"}}[null!=(e=ThemeCtrl.state.themeMode)?e:"dark"];return{"--wcm-color-fg-1":t.foreground[1],"--wcm-color-fg-2":t.foreground[2],"--wcm-color-fg-3":t.foreground[3],"--wcm-color-bg-1":t.background[1],"--wcm-color-bg-2":t.background[2],"--wcm-color-bg-3":t.background[3],"--wcm-color-overlay":t.overlay}}function themeVariablesPresets(){return{"--wcm-accent-color":"#3396FF","--wcm-accent-fill-color":"#FFFFFF","--wcm-z-index":"89","--wcm-background-color":"#3396FF","--wcm-background-border-radius":"8px","--wcm-container-border-radius":"30px","--wcm-wallet-icon-border-radius":"15px","--wcm-wallet-icon-large-border-radius":"30px","--wcm-wallet-icon-small-border-radius":"7px","--wcm-input-border-radius":"28px","--wcm-button-border-radius":"10px","--wcm-notification-border-radius":"36px","--wcm-secondary-button-border-radius":"28px","--wcm-icon-button-border-radius":"50%","--wcm-button-hover-highlight-border-radius":"10px","--wcm-text-big-bold-size":"20px","--wcm-text-big-bold-weight":"600","--wcm-text-big-bold-line-height":"24px","--wcm-text-big-bold-letter-spacing":"-0.03em","--wcm-text-big-bold-text-transform":"none","--wcm-text-xsmall-bold-size":"10px","--wcm-text-xsmall-bold-weight":"700","--wcm-text-xsmall-bold-line-height":"12px","--wcm-text-xsmall-bold-letter-spacing":"0.02em","--wcm-text-xsmall-bold-text-transform":"uppercase","--wcm-text-xsmall-regular-size":"12px","--wcm-text-xsmall-regular-weight":"600","--wcm-text-xsmall-regular-line-height":"14px","--wcm-text-xsmall-regular-letter-spacing":"-0.03em","--wcm-text-xsmall-regular-text-transform":"none","--wcm-text-small-thin-size":"14px","--wcm-text-small-thin-weight":"500","--wcm-text-small-thin-line-height":"16px","--wcm-text-small-thin-letter-spacing":"-0.03em","--wcm-text-small-thin-text-transform":"none","--wcm-text-small-regular-size":"14px","--wcm-text-small-regular-weight":"600","--wcm-text-small-regular-line-height":"16px","--wcm-text-small-regular-letter-spacing":"-0.03em","--wcm-text-small-regular-text-transform":"none","--wcm-text-medium-regular-size":"16px","--wcm-text-medium-regular-weight":"600","--wcm-text-medium-regular-line-height":"20px","--wcm-text-medium-regular-letter-spacing":"-0.03em","--wcm-text-medium-regular-text-transform":"none","--wcm-font-family":"-apple-system, system-ui, BlinkMacSystemFont, 'Segoe UI', Roboto, Ubuntu, 'Helvetica Neue', sans-serif","--wcm-font-feature-settings":"'tnum' on, 'lnum' on, 'case' on","--wcm-success-color":"rgb(38,181,98)","--wcm-error-color":"rgb(242, 90, 103)","--wcm-overlay-background-color":"rgba(0, 0, 0, 0.3)","--wcm-overlay-backdrop-filter":"none"}}const ThemeUtil={getPreset:e=>themeVariablesPresets()[e],setTheme(){const e=document.querySelector(":root"),{themeVariables:t}=ThemeCtrl.state;if(e){const r=__spreadValues(__spreadValues(__spreadValues({},themeModeVariables()),themeVariablesPresets()),t);Object.entries(r).forEach((([t,r])=>e.style.setProperty(t,r)))}},globalCss:i$3`*,::after,::before{margin:0;padding:0;box-sizing:border-box;font-style:normal;text-rendering:optimizeSpeed;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;backface-visibility:hidden}button{cursor:pointer;display:flex;justify-content:center;align-items:center;position:relative;border:none;background-color:transparent;transition:all .2s ease}@media (hover:hover) and (pointer:fine){button:active{transition:all .1s ease;transform:scale(.93)}}button::after{content:'';position:absolute;top:0;bottom:0;left:0;right:0;transition:background-color,.2s ease}button:disabled{cursor:not-allowed}button svg,button wcm-text{position:relative;z-index:1}input{border:none;outline:0;appearance:none}img{display:block}::selection{color:var(--wcm-accent-fill-color);background:var(--wcm-accent-color)}`},styles$t=i$3`button{border-radius:var(--wcm-secondary-button-border-radius);height:28px;padding:0 10px;background-color:var(--wcm-accent-color)}button path{fill:var(--wcm-accent-fill-color)}button::after{border-radius:inherit;border:1px solid var(--wcm-color-overlay)}button:disabled::after{background-color:transparent}.wcm-icon-left svg{margin-right:5px}.wcm-icon-right svg{margin-left:5px}button:active::after{background-color:var(--wcm-color-overlay)}.wcm-ghost,.wcm-ghost:active::after,.wcm-outline{background-color:transparent}.wcm-ghost:active{opacity:.5}@media(hover:hover){button:hover::after{background-color:var(--wcm-color-overlay)}.wcm-ghost:hover::after{background-color:transparent}.wcm-ghost:hover{opacity:.5}}button:disabled{background-color:var(--wcm-color-bg-3);pointer-events:none}.wcm-ghost::after{border-color:transparent}.wcm-ghost path{fill:var(--wcm-color-fg-2)}.wcm-outline path{fill:var(--wcm-accent-color)}.wcm-outline:disabled{background-color:transparent;opacity:.5}`;var __defProp$x=Object.defineProperty,__getOwnPropDesc$x=Object.getOwnPropertyDescriptor,__decorateClass$x=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$x(t,r):t,a=e.length-1;a>=0;a--)(o=e[a])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$x(t,r,i),i};let WcmButton=class extends s{constructor(){super(...arguments),this.disabled=!1,this.iconLeft=void 0,this.iconRight=void 0,this.onClick=()=>null,this.variant="default"}render(){const e={"wcm-icon-left":void 0!==this.iconLeft,"wcm-icon-right":void 0!==this.iconRight,"wcm-ghost":"ghost"===this.variant,"wcm-outline":"outline"===this.variant};let t="inverse";return"ghost"===this.variant&&(t="secondary"),"outline"===this.variant&&(t="accent"),x``}};WcmButton.styles=[ThemeUtil.globalCss,styles$t],__decorateClass$x([n$1({type:Boolean})],WcmButton.prototype,"disabled",2),__decorateClass$x([n$1()],WcmButton.prototype,"iconLeft",2),__decorateClass$x([n$1()],WcmButton.prototype,"iconRight",2),__decorateClass$x([n$1()],WcmButton.prototype,"onClick",2),__decorateClass$x([n$1()],WcmButton.prototype,"variant",2),WcmButton=__decorateClass$x([e$2("wcm-button")],WcmButton);const styles$s=i$3`:host{display:inline-block}button{padding:0 15px 1px;height:40px;border-radius:var(--wcm-button-border-radius);color:var(--wcm-accent-fill-color);background-color:var(--wcm-accent-color)}button::after{content:'';top:0;bottom:0;left:0;right:0;position:absolute;background-color:transparent;border-radius:inherit;transition:background-color .2s ease;border:1px solid var(--wcm-color-overlay)}button:active::after{background-color:var(--wcm-color-overlay)}button:disabled{padding-bottom:0;background-color:var(--wcm-color-bg-3);color:var(--wcm-color-fg-3)}.wcm-secondary{color:var(--wcm-accent-color);background-color:transparent}.wcm-secondary::after{display:none}@media(hover:hover){button:hover::after{background-color:var(--wcm-color-overlay)}}`;var __defProp$w=Object.defineProperty,__getOwnPropDesc$w=Object.getOwnPropertyDescriptor,__decorateClass$w=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$w(t,r):t,a=e.length-1;a>=0;a--)(o=e[a])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$w(t,r,i),i};let WcmButtonBig=class extends s{constructor(){super(...arguments),this.disabled=!1,this.variant="primary"}render(){const e={"wcm-secondary":"secondary"===this.variant};return x``}};WcmButtonBig.styles=[ThemeUtil.globalCss,styles$s],__decorateClass$w([n$1({type:Boolean})],WcmButtonBig.prototype,"disabled",2),__decorateClass$w([n$1()],WcmButtonBig.prototype,"variant",2),WcmButtonBig=__decorateClass$w([e$2("wcm-button-big")],WcmButtonBig);const styles$r=i$3`:host{background-color:var(--wcm-color-bg-2);border-top:1px solid var(--wcm-color-bg-3)}div{padding:10px 20px;display:inherit;flex-direction:inherit;align-items:inherit;width:inherit;justify-content:inherit}`;var __defProp$v=Object.defineProperty,__getOwnPropDesc$v=Object.getOwnPropertyDescriptor,__decorateClass$v=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$v(t,r):t,a=e.length-1;a>=0;a--)(o=e[a])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$v(t,r,i),i};let WcmInfoFooter=class extends s{render(){return x`
`}};WcmInfoFooter.styles=[ThemeUtil.globalCss,styles$r],WcmInfoFooter=__decorateClass$v([e$2("wcm-info-footer")],WcmInfoFooter);const SvgUtil={CROSS_ICON:b``,WALLET_CONNECT_LOGO:b``,WALLET_CONNECT_ICON:b``,WALLET_CONNECT_ICON_COLORED:b``,BACK_ICON:b``,COPY_ICON:b``,RETRY_ICON:b``,DESKTOP_ICON:b``,MOBILE_ICON:b``,ARROW_DOWN_ICON:b``,ARROW_UP_RIGHT_ICON:b``,ARROW_RIGHT_ICON:b``,QRCODE_ICON:b``,SCAN_ICON:b``,CHECKMARK_ICON:b``,SEARCH_ICON:b``,WALLET_PLACEHOLDER:b``,GLOBE_ICON:b``},styles$q=i$3`.wcm-toolbar-placeholder{top:0;bottom:0;left:0;right:0;width:100%;position:absolute;display:block;pointer-events:none;height:100px;border-radius:calc(var(--wcm-background-border-radius) * .9);background-color:var(--wcm-background-color);background-position:center;background-size:cover}.wcm-toolbar{height:38px;display:flex;position:relative;margin:5px 15px 5px 5px;justify-content:space-between;align-items:center}.wcm-toolbar img,.wcm-toolbar svg{height:28px;object-position:left center;object-fit:contain}#wcm-wc-logo path{fill:var(--wcm-accent-fill-color)}button{width:28px;height:28px;border-radius:var(--wcm-icon-button-border-radius);border:0;display:flex;justify-content:center;align-items:center;cursor:pointer;background-color:var(--wcm-color-bg-1);box-shadow:0 0 0 1px var(--wcm-color-overlay)}button:active{background-color:var(--wcm-color-bg-2)}button svg{display:block;object-position:center}button path{fill:var(--wcm-color-fg-1)}.wcm-toolbar div{display:flex}@media(hover:hover){button:hover{background-color:var(--wcm-color-bg-2)}}`;var __defProp$u=Object.defineProperty,__getOwnPropDesc$u=Object.getOwnPropertyDescriptor,__decorateClass$u=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$u(t,r):t,a=e.length-1;a>=0;a--)(o=e[a])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$u(t,r,i),i};let WcmModalBackcard=class extends s{render(){return x`
${SvgUtil.WALLET_CONNECT_LOGO}
`}};WcmModalBackcard.styles=[ThemeUtil.globalCss,styles$q],WcmModalBackcard=__decorateClass$u([e$2("wcm-modal-backcard")],WcmModalBackcard);const styles$p=i$3`main{padding:20px;padding-top:0;width:100%}`;var __defProp$t=Object.defineProperty,__getOwnPropDesc$t=Object.getOwnPropertyDescriptor,__decorateClass$t=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$t(t,r):t,a=e.length-1;a>=0;a--)(o=e[a])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$t(t,r,i),i};let WcmModalContent=class extends s{render(){return x`
`}};WcmModalContent.styles=[ThemeUtil.globalCss,styles$p],WcmModalContent=__decorateClass$t([e$2("wcm-modal-content")],WcmModalContent);const styles$o=i$3`footer{padding:10px;display:flex;flex-direction:column;align-items:inherit;justify-content:inherit;border-top:1px solid var(--wcm-color-bg-2)}`;var __defProp$s=Object.defineProperty,__getOwnPropDesc$s=Object.getOwnPropertyDescriptor,__decorateClass$s=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$s(t,r):t,a=e.length-1;a>=0;a--)(o=e[a])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$s(t,r,i),i};let WcmModalFooter=class extends s{render(){return x`
`}};WcmModalFooter.styles=[ThemeUtil.globalCss,styles$o],WcmModalFooter=__decorateClass$s([e$2("wcm-modal-footer")],WcmModalFooter);const styles$n=i$3`header{display:flex;justify-content:center;align-items:center;padding:20px;position:relative}.wcm-border{border-bottom:1px solid var(--wcm-color-bg-2);margin-bottom:20px}header button{padding:15px 20px}header button:active{opacity:.5}@media(hover:hover){header button:hover{opacity:.5}}.wcm-back-btn{position:absolute;left:0}.wcm-action-btn{position:absolute;right:0}path{fill:var(--wcm-accent-color)}`;var __defProp$r=Object.defineProperty,__getOwnPropDesc$r=Object.getOwnPropertyDescriptor,__decorateClass$r=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$r(t,r):t,a=e.length-1;a>=0;a--)(o=e[a])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$r(t,r,i),i};let WcmModalHeader=class extends s{constructor(){super(...arguments),this.title="",this.onAction=void 0,this.actionIcon=void 0,this.border=!1}backBtnTemplate(){return x``}actionBtnTemplate(){return x``}render(){const e={"wcm-border":this.border},t=RouterCtrl.state.history.length>1,r=this.title?x`${this.title}`:x``;return x`
${t?this.backBtnTemplate():null} ${r} ${this.onAction?this.actionBtnTemplate():null}
`}};WcmModalHeader.styles=[ThemeUtil.globalCss,styles$n],__decorateClass$r([n$1()],WcmModalHeader.prototype,"title",2),__decorateClass$r([n$1()],WcmModalHeader.prototype,"onAction",2),__decorateClass$r([n$1()],WcmModalHeader.prototype,"actionIcon",2),__decorateClass$r([n$1({type:Boolean})],WcmModalHeader.prototype,"border",2),WcmModalHeader=__decorateClass$r([e$2("wcm-modal-header")],WcmModalHeader);const UiUtil={MOBILE_BREAKPOINT:600,WCM_RECENT_WALLET_DATA:"WCM_RECENT_WALLET_DATA",EXPLORER_WALLET_URL:"https://explorer.walletconnect.com/?type=wallet",getShadowRootElement(e,t){const r=e.renderRoot.querySelector(t);if(!r)throw new Error(`${t} not found`);return r},getWalletIcon({id:e,image_id:t}){const{walletImages:r}=ConfigCtrl.state;return(null==r?void 0:r[e])?r[e]:t?ExplorerCtrl.getWalletImageUrl(t):""},getWalletName:(e,t=!1)=>t&&e.length>8?`${e.substring(0,8)}..`:e,isMobileAnimation:()=>window.innerWidth<=UiUtil.MOBILE_BREAKPOINT,async preloadImage(e){const t=new Promise(((t,r)=>{const n=new Image;n.onload=t,n.onerror=r,n.crossOrigin="anonymous",n.src=e}));return Promise.race([t,CoreUtil.wait(3e3)])},getErrorMessage:e=>e instanceof Error?e.message:"Unknown Error",debounce(e,t=500){let r;return(...n)=>{r&&clearTimeout(r),r=setTimeout((function(){e(...n)}),t)}},handleMobileLinking(e,t="_self"){const{walletConnectUri:r}=OptionsCtrl.state,{mobile:n,name:o}=e,i=null==n?void 0:n.native,a=null==n?void 0:n.universal;UiUtil.setRecentWallet(e),r&&function(e){if(i){const r=CoreUtil.formatNativeUrl(i,e,o);CoreUtil.openHref(r,t)}else if(a){const r=CoreUtil.formatUniversalUrl(a,e,o);CoreUtil.openHref(r,t)}}(r)},handleAndroidLinking(){const{walletConnectUri:e}=OptionsCtrl.state;e&&(CoreUtil.setWalletConnectAndroidDeepLink(e),CoreUtil.openHref(e,CoreUtil.isTelegram()?"_blank":"_self"))},async handleUriCopy(){const{walletConnectUri:e}=OptionsCtrl.state;if(e)try{await navigator.clipboard.writeText(e),ToastCtrl.openToast("Link copied","success")}catch(e2){ToastCtrl.openToast("Failed to copy","error")}},getCustomImageUrls(){const{walletImages:e}=ConfigCtrl.state,t=Object.values(null!=e?e:{});return Object.values(t)},truncate:(e,t=8)=>e.length<=t?e:`${e.substring(0,4)}...${e.substring(e.length-4)}`,setRecentWallet(e){try{localStorage.setItem(UiUtil.WCM_RECENT_WALLET_DATA,JSON.stringify(e))}catch(e2){console.info("Unable to set recent wallet")}},getRecentWallet(){try{const e=localStorage.getItem(UiUtil.WCM_RECENT_WALLET_DATA);if(e){return JSON.parse(e)}return}catch(e2){console.info("Unable to get recent wallet")}},caseSafeIncludes:(e,t)=>e.toUpperCase().includes(t.toUpperCase()),openWalletExplorerUrl(){CoreUtil.openHref(UiUtil.EXPLORER_WALLET_URL,"_blank")},getCachedRouterWalletPlatforms(){const{desktop:e,mobile:t}=CoreUtil.getWalletRouterData(),r=Boolean(null==e?void 0:e.native),n=Boolean(null==e?void 0:e.universal);return{isDesktop:r,isMobile:Boolean(null==t?void 0:t.native)||Boolean(null==t?void 0:t.universal),isWeb:n}},goToConnectingView(e){RouterCtrl.setData({Wallet:e});const t=CoreUtil.isMobile(),{isDesktop:r,isWeb:n,isMobile:o}=UiUtil.getCachedRouterWalletPlatforms();t?o?(RouterCtrl.push("MobileConnecting"),!CoreUtil.isAndroid()&&CoreUtil.isTelegram()&&this.handleMobileLinking(e,"_blank")):n?RouterCtrl.push("WebConnecting"):RouterCtrl.push("InstallWallet"):r?RouterCtrl.push("DesktopConnecting"):n?RouterCtrl.push("WebConnecting"):o?RouterCtrl.push("MobileQrcodeConnecting"):RouterCtrl.push("InstallWallet")}},styles$m=i$3`.wcm-router{overflow:hidden;will-change:transform}.wcm-content{display:flex;flex-direction:column}`;var __defProp$q=Object.defineProperty,__getOwnPropDesc$q=Object.getOwnPropertyDescriptor,__decorateClass$q=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$q(t,r):t,a=e.length-1;a>=0;a--)(o=e[a])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$q(t,r,i),i};let WcmModalRouter=class extends s{constructor(){super(),this.view=RouterCtrl.state.view,this.prevView=RouterCtrl.state.view,this.unsubscribe=void 0,this.oldHeight="0px",this.resizeObserver=void 0,this.unsubscribe=RouterCtrl.subscribe((e=>{this.view!==e.view&&this.onChangeRoute()}))}firstUpdated(){this.resizeObserver=new ResizeObserver((([e])=>{const t=`${e.contentRect.height}px`;"0px"!==this.oldHeight&&animate(this.routerEl,{height:[this.oldHeight,t]},{duration:.2}),this.oldHeight=t})),this.resizeObserver.observe(this.contentEl)}disconnectedCallback(){var e,t;null==(e=this.unsubscribe)||e.call(this),null==(t=this.resizeObserver)||t.disconnect()}get routerEl(){return UiUtil.getShadowRootElement(this,".wcm-router")}get contentEl(){return UiUtil.getShadowRootElement(this,".wcm-content")}viewTemplate(){switch(this.view){case"ConnectWallet":return x``;case"DesktopConnecting":return x``;case"MobileConnecting":return x``;case"WebConnecting":return x``;case"MobileQrcodeConnecting":return x``;case"WalletExplorer":return x``;case"Qrcode":return x``;case"InstallWallet":return x``;default:return x`
Not Found
`}}async onChangeRoute(){await animate(this.routerEl,{opacity:[1,0],scale:[1,1.02]},{duration:.15,delay:.1}).finished,this.view=RouterCtrl.state.view,animate(this.routerEl,{opacity:[0,1],scale:[.99,1]},{duration:.37,delay:.05})}render(){return x`
${this.viewTemplate()}
`}};WcmModalRouter.styles=[ThemeUtil.globalCss,styles$m],__decorateClass$q([t$1()],WcmModalRouter.prototype,"view",2),__decorateClass$q([t$1()],WcmModalRouter.prototype,"prevView",2),WcmModalRouter=__decorateClass$q([e$2("wcm-modal-router")],WcmModalRouter);const styles$l=i$3`div{height:36px;width:max-content;display:flex;justify-content:center;align-items:center;padding:9px 15px 11px;position:absolute;top:12px;box-shadow:0 6px 14px -6px rgba(10,16,31,.3),0 10px 32px -4px rgba(10,16,31,.15);z-index:2;left:50%;transform:translateX(-50%);pointer-events:none;backdrop-filter:blur(20px) saturate(1.8);-webkit-backdrop-filter:blur(20px) saturate(1.8);border-radius:var(--wcm-notification-border-radius);border:1px solid var(--wcm-color-overlay);background-color:var(--wcm-color-overlay)}svg{margin-right:5px}@-moz-document url-prefix(){div{background-color:var(--wcm-color-bg-3)}}.wcm-success path{fill:var(--wcm-accent-color)}.wcm-error path{fill:var(--wcm-error-color)}`;var __defProp$p=Object.defineProperty,__getOwnPropDesc$p=Object.getOwnPropertyDescriptor,__decorateClass$p=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$p(t,r):t,a=e.length-1;a>=0;a--)(o=e[a])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$p(t,r,i),i};let WcmModalToast=class extends s{constructor(){super(),this.open=!1,this.unsubscribe=void 0,this.timeout=void 0,this.unsubscribe=ToastCtrl.subscribe((e=>{e.open?(this.open=!0,this.timeout=setTimeout((()=>ToastCtrl.closeToast()),2200)):(this.open=!1,clearTimeout(this.timeout))}))}disconnectedCallback(){var e;null==(e=this.unsubscribe)||e.call(this),clearTimeout(this.timeout),ToastCtrl.closeToast()}render(){const{message:e,variant:t}=ToastCtrl.state,r={"wcm-success":"success"===t,"wcm-error":"error"===t};return this.open?x`
${"success"===t?SvgUtil.CHECKMARK_ICON:null} ${"error"===t?SvgUtil.CROSS_ICON:null}${e}
`:null}};WcmModalToast.styles=[ThemeUtil.globalCss,styles$l],__decorateClass$p([t$1()],WcmModalToast.prototype,"open",2),WcmModalToast=__decorateClass$p([e$2("wcm-modal-toast")],WcmModalToast);const CONNECTING_ERROR_MARGIN=.1,CIRCLE_SIZE_MODIFIER=2.5,QRCODE_MATRIX_MARGIN=7;function isAdjecentDots(e,t,r){if(e===t)return!1;return(e-t<0?t-e:e-t)<=r+CONNECTING_ERROR_MARGIN}function getMatrix(e,t){const r=Array.prototype.slice.call(browser.create(e,{errorCorrectionLevel:t}).modules.data,0),n=Math.sqrt(r.length);return r.reduce(((e,t,r)=>(r%n==0?e.push([t]):e[e.length-1].push(t))&&e),[])}const QrCodeUtil={generate(e,t,r){const n="#141414",o=[],i=getMatrix(e,"Q"),a=t/i.length,s=[{x:0,y:0},{x:1,y:0},{x:0,y:1}];s.forEach((({x:e,y:t})=>{const r=(i.length-QRCODE_MATRIX_MARGIN)*a*e,c=(i.length-QRCODE_MATRIX_MARGIN)*a*t;for(let i=0;i`)}}));const c=Math.floor((r+25)/a),u=i.length/2-c/2,l=i.length/2+c/2-1,d=[];i.forEach(((e,t)=>{e.forEach(((e,r)=>{if(i[t][r]&&!(ti.length-(QRCODE_MATRIX_MARGIN+1)&&ri.length-(QRCODE_MATRIX_MARGIN+1)||t>u&&tu&&r{f[e]?f[e].push(t):f[e]=[t]})),Object.entries(f).map((([e,t])=>{const r=t.filter((e=>t.every((t=>!isAdjecentDots(e,t,a)))));return[Number(e),r]})).forEach((([e,t])=>{t.forEach((t=>{o.push(b``)}))})),Object.entries(f).filter((([e,t])=>t.length>1)).map((([e,t])=>{const r=t.filter((e=>t.some((t=>isAdjecentDots(e,t,a)))));return[Number(e),r]})).map((([e,t])=>{t.sort(((e,t)=>ee.some((e=>isAdjecentDots(n,e,a)))));e?e.push(n):r.push([n])}return[e,r.map((e=>[e[0],e[e.length-1]]))]})).forEach((([e,t])=>{t.forEach((([t,r])=>{o.push(b``)}))})),o}},styles$k=i$3`@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}div{position:relative;user-select:none;display:block;overflow:hidden;aspect-ratio:1/1;animation:fadeIn ease .2s}.wcm-dark{background-color:#fff;border-radius:var(--wcm-container-border-radius);padding:18px;box-shadow:0 2px 5px #000}svg:first-child,wcm-wallet-image{position:absolute;top:50%;left:50%;transform:translateY(-50%) translateX(-50%)}wcm-wallet-image{transform:translateY(-50%) translateX(-50%)}wcm-wallet-image{width:25%;height:25%;border-radius:var(--wcm-wallet-icon-border-radius)}svg:first-child{transform:translateY(-50%) translateX(-50%) scale(.9)}svg:first-child path:first-child{fill:var(--wcm-accent-color)}svg:first-child path:last-child{stroke:var(--wcm-color-overlay)}`;var __defProp$o=Object.defineProperty,__getOwnPropDesc$o=Object.getOwnPropertyDescriptor,__decorateClass$o=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$o(t,r):t,a=e.length-1;a>=0;a--)(o=e[a])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$o(t,r,i),i};let WcmQrCode=class extends s{constructor(){super(...arguments),this.uri="",this.size=0,this.imageId=void 0,this.walletId=void 0,this.imageUrl=void 0}svgTemplate(){const e="light"===ThemeCtrl.state.themeMode?this.size:this.size-36;return b`${QrCodeUtil.generate(this.uri,e,e/4)}`}render(){const e={"wcm-dark":"dark"===ThemeCtrl.state.themeMode};return x`
${this.walletId||this.imageUrl?x``:SvgUtil.WALLET_CONNECT_ICON_COLORED} ${this.svgTemplate()}
`}};WcmQrCode.styles=[ThemeUtil.globalCss,styles$k],__decorateClass$o([n$1()],WcmQrCode.prototype,"uri",2),__decorateClass$o([n$1({type:Number})],WcmQrCode.prototype,"size",2),__decorateClass$o([n$1()],WcmQrCode.prototype,"imageId",2),__decorateClass$o([n$1()],WcmQrCode.prototype,"walletId",2),__decorateClass$o([n$1()],WcmQrCode.prototype,"imageUrl",2),WcmQrCode=__decorateClass$o([e$2("wcm-qrcode")],WcmQrCode);const styles$j=i$3`:host{position:relative;height:28px;width:80%}input{width:100%;height:100%;line-height:28px!important;border-radius:var(--wcm-input-border-radius);font-style:normal;font-family:-apple-system,system-ui,BlinkMacSystemFont,'Segoe UI',Roboto,Ubuntu,'Helvetica Neue',sans-serif;font-feature-settings:'case' on;font-weight:500;font-size:16px;letter-spacing:-.03em;padding:0 10px 0 34px;transition:.2s all ease;color:var(--wcm-color-fg-1);background-color:var(--wcm-color-bg-3);box-shadow:inset 0 0 0 1px var(--wcm-color-overlay);caret-color:var(--wcm-accent-color)}input::placeholder{color:var(--wcm-color-fg-2)}svg{left:10px;top:4px;pointer-events:none;position:absolute;width:20px;height:20px}input:focus-within{box-shadow:inset 0 0 0 1px var(--wcm-accent-color)}path{fill:var(--wcm-color-fg-2)}`;var __defProp$n=Object.defineProperty,__getOwnPropDesc$n=Object.getOwnPropertyDescriptor,__decorateClass$n=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$n(t,r):t,a=e.length-1;a>=0;a--)(o=e[a])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$n(t,r,i),i};let WcmSearchInput=class extends s{constructor(){super(...arguments),this.onChange=()=>null}render(){return x` ${SvgUtil.SEARCH_ICON}`}};WcmSearchInput.styles=[ThemeUtil.globalCss,styles$j],__decorateClass$n([n$1()],WcmSearchInput.prototype,"onChange",2),WcmSearchInput=__decorateClass$n([e$2("wcm-search-input")],WcmSearchInput);const styles$i=i$3`@keyframes rotate{100%{transform:rotate(360deg)}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}100%{stroke-dasharray:90,150;stroke-dashoffset:-124}}svg{animation:rotate 2s linear infinite;display:flex;justify-content:center;align-items:center}svg circle{stroke-linecap:round;animation:dash 1.5s ease infinite;stroke:var(--wcm-accent-color)}`;var __defProp$m=Object.defineProperty,__getOwnPropDesc$m=Object.getOwnPropertyDescriptor,__decorateClass$m=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$m(t,r):t,a=e.length-1;a>=0;a--)(o=e[a])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$m(t,r,i),i};let WcmSpinner=class extends s{render(){return x``}};WcmSpinner.styles=[ThemeUtil.globalCss,styles$i],WcmSpinner=__decorateClass$m([e$2("wcm-spinner")],WcmSpinner);const styles$h=i$3`span{font-style:normal;font-family:var(--wcm-font-family);font-feature-settings:var(--wcm-font-feature-settings)}.wcm-xsmall-bold{font-family:var(--wcm-text-xsmall-bold-font-family);font-weight:var(--wcm-text-xsmall-bold-weight);font-size:var(--wcm-text-xsmall-bold-size);line-height:var(--wcm-text-xsmall-bold-line-height);letter-spacing:var(--wcm-text-xsmall-bold-letter-spacing);text-transform:var(--wcm-text-xsmall-bold-text-transform)}.wcm-xsmall-regular{font-family:var(--wcm-text-xsmall-regular-font-family);font-weight:var(--wcm-text-xsmall-regular-weight);font-size:var(--wcm-text-xsmall-regular-size);line-height:var(--wcm-text-xsmall-regular-line-height);letter-spacing:var(--wcm-text-xsmall-regular-letter-spacing);text-transform:var(--wcm-text-xsmall-regular-text-transform)}.wcm-small-thin{font-family:var(--wcm-text-small-thin-font-family);font-weight:var(--wcm-text-small-thin-weight);font-size:var(--wcm-text-small-thin-size);line-height:var(--wcm-text-small-thin-line-height);letter-spacing:var(--wcm-text-small-thin-letter-spacing);text-transform:var(--wcm-text-small-thin-text-transform)}.wcm-small-regular{font-family:var(--wcm-text-small-regular-font-family);font-weight:var(--wcm-text-small-regular-weight);font-size:var(--wcm-text-small-regular-size);line-height:var(--wcm-text-small-regular-line-height);letter-spacing:var(--wcm-text-small-regular-letter-spacing);text-transform:var(--wcm-text-small-regular-text-transform)}.wcm-medium-regular{font-family:var(--wcm-text-medium-regular-font-family);font-weight:var(--wcm-text-medium-regular-weight);font-size:var(--wcm-text-medium-regular-size);line-height:var(--wcm-text-medium-regular-line-height);letter-spacing:var(--wcm-text-medium-regular-letter-spacing);text-transform:var(--wcm-text-medium-regular-text-transform)}.wcm-big-bold{font-family:var(--wcm-text-big-bold-font-family);font-weight:var(--wcm-text-big-bold-weight);font-size:var(--wcm-text-big-bold-size);line-height:var(--wcm-text-big-bold-line-height);letter-spacing:var(--wcm-text-big-bold-letter-spacing);text-transform:var(--wcm-text-big-bold-text-transform)}:host(*){color:var(--wcm-color-fg-1)}.wcm-color-primary{color:var(--wcm-color-fg-1)}.wcm-color-secondary{color:var(--wcm-color-fg-2)}.wcm-color-tertiary{color:var(--wcm-color-fg-3)}.wcm-color-inverse{color:var(--wcm-accent-fill-color)}.wcm-color-accnt{color:var(--wcm-accent-color)}.wcm-color-error{color:var(--wcm-error-color)}`;var __defProp$l=Object.defineProperty,__getOwnPropDesc$l=Object.getOwnPropertyDescriptor,__decorateClass$l=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$l(t,r):t,a=e.length-1;a>=0;a--)(o=e[a])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$l(t,r,i),i};let WcmText=class extends s{constructor(){super(...arguments),this.variant="medium-regular",this.color="primary"}render(){const e={"wcm-big-bold":"big-bold"===this.variant,"wcm-medium-regular":"medium-regular"===this.variant,"wcm-small-regular":"small-regular"===this.variant,"wcm-small-thin":"small-thin"===this.variant,"wcm-xsmall-regular":"xsmall-regular"===this.variant,"wcm-xsmall-bold":"xsmall-bold"===this.variant,"wcm-color-primary":"primary"===this.color,"wcm-color-secondary":"secondary"===this.color,"wcm-color-tertiary":"tertiary"===this.color,"wcm-color-inverse":"inverse"===this.color,"wcm-color-accnt":"accent"===this.color,"wcm-color-error":"error"===this.color};return x``}};WcmText.styles=[ThemeUtil.globalCss,styles$h],__decorateClass$l([n$1()],WcmText.prototype,"variant",2),__decorateClass$l([n$1()],WcmText.prototype,"color",2),WcmText=__decorateClass$l([e$2("wcm-text")],WcmText);const styles$g=i$3`button{width:100%;height:100%;border-radius:var(--wcm-button-hover-highlight-border-radius);display:flex;align-items:flex-start}button:active{background-color:var(--wcm-color-overlay)}@media(hover:hover){button:hover{background-color:var(--wcm-color-overlay)}}button>div{width:80px;padding:5px 0;display:flex;flex-direction:column;align-items:center}wcm-text{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center}wcm-wallet-image{height:60px;width:60px;transition:all .2s ease;border-radius:var(--wcm-wallet-icon-border-radius);margin-bottom:5px}.wcm-sublabel{margin-top:2px}`;var __defProp$k=Object.defineProperty,__getOwnPropDesc$k=Object.getOwnPropertyDescriptor,__decorateClass$k=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$k(t,r):t,a=e.length-1;a>=0;a--)(o=e[a])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$k(t,r,i),i};let WcmWalletButton=class extends s{constructor(){super(...arguments),this.onClick=()=>null,this.name="",this.walletId="",this.label=void 0,this.imageId=void 0,this.installed=!1,this.recent=!1}sublabelTemplate(){return this.recent?x`RECENT`:this.installed?x`INSTALLED`:null}handleClick(){EventsCtrl.click({name:"WALLET_BUTTON",walletId:this.walletId}),this.onClick()}render(){var e;return x``}};WcmWalletButton.styles=[ThemeUtil.globalCss,styles$g],__decorateClass$k([n$1()],WcmWalletButton.prototype,"onClick",2),__decorateClass$k([n$1()],WcmWalletButton.prototype,"name",2),__decorateClass$k([n$1()],WcmWalletButton.prototype,"walletId",2),__decorateClass$k([n$1()],WcmWalletButton.prototype,"label",2),__decorateClass$k([n$1()],WcmWalletButton.prototype,"imageId",2),__decorateClass$k([n$1({type:Boolean})],WcmWalletButton.prototype,"installed",2),__decorateClass$k([n$1({type:Boolean})],WcmWalletButton.prototype,"recent",2),WcmWalletButton=__decorateClass$k([e$2("wcm-wallet-button")],WcmWalletButton);const styles$f=i$3`:host{display:block}div{overflow:hidden;position:relative;border-radius:inherit;width:100%;height:100%;background-color:var(--wcm-color-overlay)}svg{position:relative;width:100%;height:100%}div::after{content:'';position:absolute;top:0;bottom:0;left:0;right:0;border-radius:inherit;border:1px solid var(--wcm-color-overlay)}div img{width:100%;height:100%;object-fit:cover;object-position:center}#wallet-placeholder-fill{fill:var(--wcm-color-bg-3)}#wallet-placeholder-dash{stroke:var(--wcm-color-overlay)}`;var __defProp$j=Object.defineProperty,__getOwnPropDesc$j=Object.getOwnPropertyDescriptor,__decorateClass$j=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$j(t,r):t,a=e.length-1;a>=0;a--)(o=e[a])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$j(t,r,i),i};let WcmWalletImage=class extends s{constructor(){super(...arguments),this.walletId="",this.imageId=void 0,this.imageUrl=void 0}render(){var e;const t=(null==(e=this.imageUrl)?void 0:e.length)?this.imageUrl:UiUtil.getWalletIcon({id:this.walletId,image_id:this.imageId});return x`${t.length?x`
${this.id}
`:SvgUtil.WALLET_PLACEHOLDER}`}};WcmWalletImage.styles=[ThemeUtil.globalCss,styles$f],__decorateClass$j([n$1()],WcmWalletImage.prototype,"walletId",2),__decorateClass$j([n$1()],WcmWalletImage.prototype,"imageId",2),__decorateClass$j([n$1()],WcmWalletImage.prototype,"imageUrl",2),WcmWalletImage=__decorateClass$j([e$2("wcm-wallet-image")],WcmWalletImage);var __defProp$i=Object.defineProperty,__getOwnPropDesc$i=Object.getOwnPropertyDescriptor,__decorateClass$i=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$i(t,r):t,a=e.length-1;a>=0;a--)(o=e[a])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$i(t,r,i),i};let WcmExplorerContext=class extends s{constructor(){super(),this.preload=!0,this.preloadData()}async loadImages(e){try{(null==e?void 0:e.length)&&await Promise.all(e.map((async e=>UiUtil.preloadImage(e))))}catch(e2){console.info("Unsuccessful attempt at preloading some images",e)}}async preloadListings(){if(ConfigCtrl.state.enableExplorer){await ExplorerCtrl.getRecomendedWallets(),OptionsCtrl.setIsDataLoaded(!0);const{recomendedWallets:e}=ExplorerCtrl.state,t=e.map((e=>UiUtil.getWalletIcon(e)));await this.loadImages(t)}else OptionsCtrl.setIsDataLoaded(!0)}async preloadCustomImages(){const e=UiUtil.getCustomImageUrls();await this.loadImages(e)}async preloadData(){try{this.preload&&(this.preload=!1,await Promise.all([this.preloadListings(),this.preloadCustomImages()]))}catch(e){console.error(e),ToastCtrl.openToast("Failed preloading","error")}}};__decorateClass$i([t$1()],WcmExplorerContext.prototype,"preload",2),WcmExplorerContext=__decorateClass$i([e$2("wcm-explorer-context")],WcmExplorerContext);var __defProp$h=Object.defineProperty,__getOwnPropDesc$h=Object.getOwnPropertyDescriptor,__decorateClass$h=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$h(t,r):t,a=e.length-1;a>=0;a--)(o=e[a])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$h(t,r,i),i};let WcmThemeContext=class extends s{constructor(){super(),this.unsubscribeTheme=void 0,ThemeUtil.setTheme(),this.unsubscribeTheme=ThemeCtrl.subscribe(ThemeUtil.setTheme)}disconnectedCallback(){var e;null==(e=this.unsubscribeTheme)||e.call(this)}};WcmThemeContext=__decorateClass$h([e$2("wcm-theme-context")],WcmThemeContext);const styles$e=i$3`@keyframes scroll{0%{transform:translate3d(0,0,0)}100%{transform:translate3d(calc(-70px * 9),0,0)}}.wcm-slider{position:relative;overflow-x:hidden;padding:10px 0;margin:0 -20px;width:calc(100% + 40px)}.wcm-track{display:flex;width:calc(70px * 18);animation:scroll 20s linear infinite;opacity:.7}.wcm-track svg{margin:0 5px}wcm-wallet-image{width:60px;height:60px;margin:0 5px;border-radius:var(--wcm-wallet-icon-border-radius)}.wcm-grid{display:grid;grid-template-columns:repeat(4,80px);justify-content:space-between}.wcm-title{display:flex;align-items:center;margin-bottom:10px}.wcm-title svg{margin-right:6px}.wcm-title path{fill:var(--wcm-accent-color)}wcm-modal-footer .wcm-title{padding:0 10px}wcm-button-big{position:absolute;top:50%;left:50%;transform:translateY(-50%) translateX(-50%);filter:drop-shadow(0 0 17px var(--wcm-color-bg-1))}wcm-info-footer{flex-direction:column;align-items:center;display:flex;width:100%;padding:5px 0}wcm-info-footer wcm-text{text-align:center;margin-bottom:15px}#wallet-placeholder-fill{fill:var(--wcm-color-bg-3)}#wallet-placeholder-dash{stroke:var(--wcm-color-overlay)}`;var __defProp$g=Object.defineProperty,__getOwnPropDesc$g=Object.getOwnPropertyDescriptor,__decorateClass$g=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$g(t,r):t,a=e.length-1;a>=0;a--)(o=e[a])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$g(t,r,i),i};let WcmAndroidWalletSelection=class extends s{onGoToQrcode(){RouterCtrl.push("Qrcode")}render(){const{recomendedWallets:e}=ExplorerCtrl.state,t=[...e,...e],r=2*CoreUtil.RECOMMENDED_WALLET_AMOUNT;return x`
${SvgUtil.MOBILE_ICON}WalletConnect
${[...Array(r)].map(((e,r)=>{const n=t[r%t.length];return n?x``:SvgUtil.WALLET_PLACEHOLDER}))}
Select Wallet
Choose WalletConnect to see supported apps on your device`}};WcmAndroidWalletSelection.styles=[ThemeUtil.globalCss,styles$e],WcmAndroidWalletSelection=__decorateClass$g([e$2("wcm-android-wallet-selection")],WcmAndroidWalletSelection);const styles$d=i$3`@keyframes loading{to{stroke-dashoffset:0}}@keyframes shake{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(1px,0,0)}30%,50%,70%{transform:translate3d(-2px,0,0)}40%,60%{transform:translate3d(2px,0,0)}}:host{display:flex;flex-direction:column;align-items:center}div{position:relative;width:110px;height:110px;display:flex;justify-content:center;align-items:center;margin:40px 0 20px 0;transform:translate3d(0,0,0)}svg{position:absolute;width:110px;height:110px;fill:none;stroke:transparent;stroke-linecap:round;stroke-width:2px;top:0;left:0}use{stroke:var(--wcm-accent-color);animation:loading 1s linear infinite}wcm-wallet-image{border-radius:var(--wcm-wallet-icon-large-border-radius);width:90px;height:90px}wcm-text{margin-bottom:40px}.wcm-error svg{stroke:var(--wcm-error-color)}.wcm-error use{display:none}.wcm-error{animation:shake .4s cubic-bezier(.36,.07,.19,.97) both}.wcm-stale svg,.wcm-stale use{display:none}`;var __defProp$f=Object.defineProperty,__getOwnPropDesc$f=Object.getOwnPropertyDescriptor,__decorateClass$f=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$f(t,r):t,a=e.length-1;a>=0;a--)(o=e[a])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$f(t,r,i),i};let WcmConnectorWaiting=class extends s{constructor(){super(...arguments),this.walletId=void 0,this.imageId=void 0,this.isError=!1,this.isStale=!1,this.label=""}svgLoaderTemplate(){var e,t;const r=null!=(t=null==(e=ThemeCtrl.state.themeVariables)?void 0:e["--wcm-wallet-icon-large-border-radius"])?t:ThemeUtil.getPreset("--wcm-wallet-icon-large-border-radius");let n=0;n=r.includes("%")?.88*parseInt(r,10):parseInt(r,10),n*=1.17;return x``}render(){const e={"wcm-error":this.isError,"wcm-stale":this.isStale};return x`
${this.svgLoaderTemplate()}
${this.isError?"Connection declined":this.label}`}};WcmConnectorWaiting.styles=[ThemeUtil.globalCss,styles$d],__decorateClass$f([n$1()],WcmConnectorWaiting.prototype,"walletId",2),__decorateClass$f([n$1()],WcmConnectorWaiting.prototype,"imageId",2),__decorateClass$f([n$1({type:Boolean})],WcmConnectorWaiting.prototype,"isError",2),__decorateClass$f([n$1({type:Boolean})],WcmConnectorWaiting.prototype,"isStale",2),__decorateClass$f([n$1()],WcmConnectorWaiting.prototype,"label",2),WcmConnectorWaiting=__decorateClass$f([e$2("wcm-connector-waiting")],WcmConnectorWaiting);const DataUtil={manualWallets(){var e,t;const{mobileWallets:r,desktopWallets:n}=ConfigCtrl.state,o=null==(e=DataUtil.recentWallet())?void 0:e.id,i=CoreUtil.isMobile()?r:n,a=null==i?void 0:i.filter((e=>o!==e.id));return null!=(t=CoreUtil.isMobile()?null==a?void 0:a.map((({id:e,name:t,links:r})=>({id:e,name:t,mobile:r,links:r}))):null==a?void 0:a.map((({id:e,name:t,links:r})=>({id:e,name:t,desktop:r,links:r}))))?t:[]},recentWallet:()=>UiUtil.getRecentWallet(),recomendedWallets(e=!1){var t;const r=e||null==(t=DataUtil.recentWallet())?void 0:t.id,{recomendedWallets:n}=ExplorerCtrl.state;return n.filter((e=>r!==e.id))}},TemplateUtil={onConnecting(e){UiUtil.goToConnectingView(e)},manualWalletsTemplate(){return DataUtil.manualWallets().map((e=>x``))},recomendedWalletsTemplate(e=!1){return DataUtil.recomendedWallets(e).map((e=>x``))},recentWalletTemplate(){const e=DataUtil.recentWallet();if(e)return x``}},styles$c=i$3`.wcm-grid{display:grid;grid-template-columns:repeat(4,80px);justify-content:space-between}.wcm-desktop-title,.wcm-mobile-title{display:flex;align-items:center}.wcm-mobile-title{justify-content:space-between;margin-bottom:20px;margin-top:-10px}.wcm-desktop-title{margin-bottom:10px;padding:0 10px}.wcm-subtitle{display:flex;align-items:center}.wcm-subtitle:last-child path{fill:var(--wcm-color-fg-3)}.wcm-desktop-title svg,.wcm-mobile-title svg{margin-right:6px}.wcm-desktop-title path,.wcm-mobile-title path{fill:var(--wcm-accent-color)}`;var __defProp$e=Object.defineProperty,__getOwnPropDesc$e=Object.getOwnPropertyDescriptor,__decorateClass$e=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$e(t,r):t,a=e.length-1;a>=0;a--)(o=e[a])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$e(t,r,i),i};let WcmDesktopWalletSelection=class extends s{render(){const{explorerExcludedWalletIds:e,enableExplorer:t}=ConfigCtrl.state,r="ALL"!==e&&t,n=TemplateUtil.manualWalletsTemplate(),o=TemplateUtil.recomendedWalletsTemplate();let i=[TemplateUtil.recentWalletTemplate(),...n,...o];i=i.filter(Boolean);const a=i.length>4||r;let s=[];s=a?i.slice(0,3):i;const c=Boolean(s.length);return x`
${SvgUtil.MOBILE_ICON}Mobile
${SvgUtil.SCAN_ICON}Scan with your wallet
${c?x`
${SvgUtil.DESKTOP_ICON}Desktop
${s} ${a?x``:null}
`:null}`}};WcmDesktopWalletSelection.styles=[ThemeUtil.globalCss,styles$c],WcmDesktopWalletSelection=__decorateClass$e([e$2("wcm-desktop-wallet-selection")],WcmDesktopWalletSelection);const styles$b=i$3`div{background-color:var(--wcm-color-bg-2);padding:10px 20px 15px 20px;border-top:1px solid var(--wcm-color-bg-3);text-align:center}a{color:var(--wcm-accent-color);text-decoration:none;transition:opacity .2s ease-in-out;display:inline}a:active{opacity:.8}@media(hover:hover){a:hover{opacity:.8}}`;var __defProp$d=Object.defineProperty,__getOwnPropDesc$d=Object.getOwnPropertyDescriptor,__decorateClass$d=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$d(t,r):t,a=e.length-1;a>=0;a--)(o=e[a])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$d(t,r,i),i};let WcmLegalNotice=class extends s{render(){const{termsOfServiceUrl:e,privacyPolicyUrl:t}=ConfigCtrl.state;return(null!=e?e:t)?x`
By connecting your wallet to this app, you agree to the app's ${e?x`Terms of Service`:null} ${e&&t?"and":null} ${t?x`Privacy Policy`:null}
`:null}};WcmLegalNotice.styles=[ThemeUtil.globalCss,styles$b],WcmLegalNotice=__decorateClass$d([e$2("wcm-legal-notice")],WcmLegalNotice);const styles$a=i$3`div{display:grid;grid-template-columns:repeat(4,80px);margin:0 -10px;justify-content:space-between;row-gap:10px}`;var __defProp$c=Object.defineProperty,__getOwnPropDesc$c=Object.getOwnPropertyDescriptor,__decorateClass$c=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$c(t,r):t,a=e.length-1;a>=0;a--)(o=e[a])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$c(t,r,i),i};let WcmMobileWalletSelection=class extends s{onQrcode(){RouterCtrl.push("Qrcode")}render(){const{explorerExcludedWalletIds:e,enableExplorer:t}=ConfigCtrl.state,r="ALL"!==e&&t,n=TemplateUtil.manualWalletsTemplate(),o=TemplateUtil.recomendedWalletsTemplate();let i=[TemplateUtil.recentWalletTemplate(),...n,...o];i=i.filter(Boolean);const a=i.length>8||r;let s=[];s=a?i.slice(0,7):i;const c=Boolean(s.length);return x`${c?x`
${s} ${a?x``:null}
`:null}`}};WcmMobileWalletSelection.styles=[ThemeUtil.globalCss,styles$a],WcmMobileWalletSelection=__decorateClass$c([e$2("wcm-mobile-wallet-selection")],WcmMobileWalletSelection);const styles$9=i$3`:host{all:initial}.wcm-overlay{top:0;bottom:0;left:0;right:0;position:fixed;z-index:var(--wcm-z-index);overflow:hidden;display:flex;justify-content:center;align-items:center;opacity:0;pointer-events:none;background-color:var(--wcm-overlay-background-color);backdrop-filter:var(--wcm-overlay-backdrop-filter)}@media(max-height:720px) and (orientation:landscape){.wcm-overlay{overflow:scroll;align-items:flex-start;padding:20px 0}}.wcm-active{pointer-events:auto}.wcm-container{position:relative;max-width:360px;width:100%;outline:0;border-radius:var(--wcm-background-border-radius) var(--wcm-background-border-radius) var(--wcm-container-border-radius) var(--wcm-container-border-radius);border:1px solid var(--wcm-color-overlay);overflow:hidden}.wcm-card{width:100%;position:relative;border-radius:var(--wcm-container-border-radius);overflow:hidden;box-shadow:0 6px 14px -6px rgba(10,16,31,.12),0 10px 32px -4px rgba(10,16,31,.1),0 0 0 1px var(--wcm-color-overlay);background-color:var(--wcm-color-bg-1);color:var(--wcm-color-fg-1)}@media(max-width:600px){.wcm-container{max-width:440px;border-radius:var(--wcm-background-border-radius) var(--wcm-background-border-radius) 0 0}.wcm-card{border-radius:var(--wcm-container-border-radius) var(--wcm-container-border-radius) 0 0}.wcm-overlay{align-items:flex-end}}@media(max-width:440px){.wcm-container{border:0}}`;var __defProp$b=Object.defineProperty,__getOwnPropDesc$b=Object.getOwnPropertyDescriptor,__decorateClass$b=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$b(t,r):t,a=e.length-1;a>=0;a--)(o=e[a])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$b(t,r,i),i};let WcmModal=class extends s{constructor(){super(),this.open=!1,this.active=!1,this.unsubscribeModal=void 0,this.abortController=void 0,this.unsubscribeModal=ModalCtrl.subscribe((e=>{e.open?this.onOpenModalEvent():this.onCloseModalEvent()}))}disconnectedCallback(){var e;null==(e=this.unsubscribeModal)||e.call(this)}get overlayEl(){return UiUtil.getShadowRootElement(this,".wcm-overlay")}get containerEl(){return UiUtil.getShadowRootElement(this,".wcm-container")}toggleBodyScroll(e){if(document.querySelector("body"))if(e){const e=document.getElementById("wcm-styles");null==e||e.remove()}else document.head.insertAdjacentHTML("beforeend",'')}onCloseModal(e){e.target===e.currentTarget&&ModalCtrl.close()}onOpenModalEvent(){this.toggleBodyScroll(!1),this.addKeyboardEvents(),this.open=!0,setTimeout((async()=>{const e=UiUtil.isMobileAnimation()?{y:["50vh","0vh"]}:{scale:[.98,1]};await Promise.all([animate(this.overlayEl,{opacity:[0,1]},{delay:.1,duration:.2}).finished,animate(this.containerEl,e,{delay:.1,duration:.2}).finished]),this.active=!0}),0)}async onCloseModalEvent(){this.toggleBodyScroll(!0),this.removeKeyboardEvents();const e=UiUtil.isMobileAnimation()?{y:["0vh","50vh"]}:{scale:[1,.98]};await Promise.all([animate(this.overlayEl,{opacity:[1,0]},{duration:.2}).finished,animate(this.containerEl,e,{duration:.2}).finished]),this.containerEl.removeAttribute("style"),this.active=!1,this.open=!1}addKeyboardEvents(){this.abortController=new AbortController,window.addEventListener("keydown",(e=>{var t;"Escape"===e.key?ModalCtrl.close():"Tab"===e.key&&((null==(t=e.target)?void 0:t.tagName.includes("wcm-"))||this.containerEl.focus())}),this.abortController),this.containerEl.focus()}removeKeyboardEvents(){var e;null==(e=this.abortController)||e.abort(),this.abortController=void 0}render(){const e={"wcm-overlay":!0,"wcm-active":this.active};return x`
${this.open?x`
`:null}
`}};WcmModal.styles=[ThemeUtil.globalCss,styles$9],__decorateClass$b([t$1()],WcmModal.prototype,"open",2),__decorateClass$b([t$1()],WcmModal.prototype,"active",2),WcmModal=__decorateClass$b([e$2("wcm-modal")],WcmModal);const styles$8=i$3`div{display:flex;margin-top:15px}slot{display:inline-block;margin:0 5px}wcm-button{margin:0 5px}`;var __defProp$a=Object.defineProperty,__getOwnPropDesc$a=Object.getOwnPropertyDescriptor,__decorateClass$a=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$a(t,r):t,a=e.length-1;a>=0;a--)(o=e[a])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$a(t,r,i),i};let WcmPlatformSelection=class extends s{constructor(){super(...arguments),this.isMobile=!1,this.isDesktop=!1,this.isWeb=!1,this.isRetry=!1}onMobile(){CoreUtil.isMobile()?RouterCtrl.replace("MobileConnecting"):RouterCtrl.replace("MobileQrcodeConnecting")}onDesktop(){RouterCtrl.replace("DesktopConnecting")}onWeb(){RouterCtrl.replace("WebConnecting")}render(){return x`
${this.isRetry?x``:null} ${this.isMobile?x`Mobile`:null} ${this.isDesktop?x`Desktop`:null} ${this.isWeb?x`Web`:null}
`}};WcmPlatformSelection.styles=[ThemeUtil.globalCss,styles$8],__decorateClass$a([n$1({type:Boolean})],WcmPlatformSelection.prototype,"isMobile",2),__decorateClass$a([n$1({type:Boolean})],WcmPlatformSelection.prototype,"isDesktop",2),__decorateClass$a([n$1({type:Boolean})],WcmPlatformSelection.prototype,"isWeb",2),__decorateClass$a([n$1({type:Boolean})],WcmPlatformSelection.prototype,"isRetry",2),WcmPlatformSelection=__decorateClass$a([e$2("wcm-platform-selection")],WcmPlatformSelection);const styles$7=i$3`button{display:flex;flex-direction:column;padding:5px 10px;border-radius:var(--wcm-button-hover-highlight-border-radius);height:100%;justify-content:flex-start}.wcm-icons{width:60px;height:60px;display:flex;flex-wrap:wrap;padding:7px;border-radius:var(--wcm-wallet-icon-border-radius);justify-content:space-between;align-items:center;margin-bottom:5px;background-color:var(--wcm-color-bg-2);box-shadow:inset 0 0 0 1px var(--wcm-color-overlay)}button:active{background-color:var(--wcm-color-overlay)}@media(hover:hover){button:hover{background-color:var(--wcm-color-overlay)}}.wcm-icons img{width:21px;height:21px;object-fit:cover;object-position:center;border-radius:calc(var(--wcm-wallet-icon-border-radius)/ 2);border:1px solid var(--wcm-color-overlay)}.wcm-icons svg{width:21px;height:21px}.wcm-icons img:nth-child(1),.wcm-icons img:nth-child(2),.wcm-icons svg:nth-child(1),.wcm-icons svg:nth-child(2){margin-bottom:4px}wcm-text{width:100%;text-align:center}#wallet-placeholder-fill{fill:var(--wcm-color-bg-3)}#wallet-placeholder-dash{stroke:var(--wcm-color-overlay)}`;var __defProp$9=Object.defineProperty,__getOwnPropDesc$9=Object.getOwnPropertyDescriptor,__decorateClass$9=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$9(t,r):t,a=e.length-1;a>=0;a--)(o=e[a])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$9(t,r,i),i};let WcmViewAllWalletsButton=class extends s{onClick(){RouterCtrl.push("WalletExplorer")}render(){const{recomendedWallets:e}=ExplorerCtrl.state,t=[...e,...DataUtil.manualWallets()].reverse().slice(0,4);return x``}};WcmViewAllWalletsButton.styles=[ThemeUtil.globalCss,styles$7],WcmViewAllWalletsButton=__decorateClass$9([e$2("wcm-view-all-wallets-button")],WcmViewAllWalletsButton);const styles$6=i$3`.wcm-qr-container{width:100%;display:flex;justify-content:center;align-items:center;aspect-ratio:1/1}`;var __defProp$8=Object.defineProperty,__getOwnPropDesc$8=Object.getOwnPropertyDescriptor,__decorateClass$8=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$8(t,r):t,a=e.length-1;a>=0;a--)(o=e[a])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$8(t,r,i),i};let WcmWalletConnectQr=class extends s{constructor(){super(),this.walletId="",this.imageId="",this.uri="",setTimeout((()=>{const{walletConnectUri:e}=OptionsCtrl.state;this.uri=e}),0)}get overlayEl(){return UiUtil.getShadowRootElement(this,".wcm-qr-container")}render(){return x`
${this.uri?x``:x``}
`}};WcmWalletConnectQr.styles=[ThemeUtil.globalCss,styles$6],__decorateClass$8([n$1()],WcmWalletConnectQr.prototype,"walletId",2),__decorateClass$8([n$1()],WcmWalletConnectQr.prototype,"imageId",2),__decorateClass$8([t$1()],WcmWalletConnectQr.prototype,"uri",2),WcmWalletConnectQr=__decorateClass$8([e$2("wcm-walletconnect-qr")],WcmWalletConnectQr);var __defProp$7=Object.defineProperty,__getOwnPropDesc$7=Object.getOwnPropertyDescriptor,__decorateClass$7=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$7(t,r):t,a=e.length-1;a>=0;a--)(o=e[a])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$7(t,r,i),i};let WcmConnectWalletView=class extends s{viewTemplate(){return CoreUtil.isAndroid()&&!CoreUtil.isTelegram()?x``:CoreUtil.isMobile()?x``:x``}render(){return x`${this.viewTemplate()}`}};WcmConnectWalletView.styles=[ThemeUtil.globalCss],WcmConnectWalletView=__decorateClass$7([e$2("wcm-connect-wallet-view")],WcmConnectWalletView);const styles$5=i$3`wcm-info-footer{flex-direction:column;align-items:center;display:flex;width:100%;padding:5px 0}wcm-text{text-align:center}`;var __defProp$6=Object.defineProperty,__getOwnPropDesc$6=Object.getOwnPropertyDescriptor,__decorateClass$6=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$6(t,r):t,a=e.length-1;a>=0;a--)(o=e[a])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$6(t,r,i),i};let WcmDesktopConnectingView=class extends s{constructor(){super(),this.isError=!1,this.openDesktopApp()}onFormatAndRedirect(e){const{desktop:t,name:r}=CoreUtil.getWalletRouterData(),n=null==t?void 0:t.native,o=null==t?void 0:t.universal;if(n){const t=CoreUtil.formatNativeUrl(n,e,r);CoreUtil.openHref(t,"_self")}else if(o){const t=CoreUtil.formatUniversalUrl(o,e,r);CoreUtil.openHref(t,"_blank")}}openDesktopApp(){const{walletConnectUri:e}=OptionsCtrl.state,t=CoreUtil.getWalletRouterData();UiUtil.setRecentWallet(t),e&&this.onFormatAndRedirect(e)}render(){const{name:e,id:t,image_id:r}=CoreUtil.getWalletRouterData(),{isMobile:n,isWeb:o}=UiUtil.getCachedRouterWalletPlatforms();return x`${`Connection can continue loading if ${e} is not installed on your device`}Retry`}};WcmDesktopConnectingView.styles=[ThemeUtil.globalCss,styles$5],__decorateClass$6([t$1()],WcmDesktopConnectingView.prototype,"isError",2),WcmDesktopConnectingView=__decorateClass$6([e$2("wcm-desktop-connecting-view")],WcmDesktopConnectingView);const styles$4=i$3`wcm-info-footer{flex-direction:column;align-items:center;display:flex;width:100%;padding:5px 0}wcm-text{text-align:center}wcm-button{margin-top:15px}`;var __defProp$5=Object.defineProperty,__getOwnPropDesc$5=Object.getOwnPropertyDescriptor,__decorateClass$5=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$5(t,r):t,a=e.length-1;a>=0;a--)(o=e[a])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$5(t,r,i),i};let WcmInstallWalletView=class extends s{onInstall(e){e&&CoreUtil.openHref(e,"_blank")}render(){const{name:e,id:t,image_id:r,homepage:n}=CoreUtil.getWalletRouterData();return x`${`Download ${e} to continue. If multiple browser extensions are installed, disable non ${e} ones and try again`}Download`}};WcmInstallWalletView.styles=[ThemeUtil.globalCss,styles$4],WcmInstallWalletView=__decorateClass$5([e$2("wcm-install-wallet-view")],WcmInstallWalletView);const styles$3=i$3`wcm-wallet-image{border-radius:var(--wcm-wallet-icon-large-border-radius);width:96px;height:96px;margin-bottom:20px}wcm-info-footer{display:flex;width:100%}.wcm-app-store{justify-content:space-between}.wcm-app-store wcm-wallet-image{margin-right:10px;margin-bottom:0;width:28px;height:28px;border-radius:var(--wcm-wallet-icon-small-border-radius)}.wcm-app-store div{display:flex;align-items:center}.wcm-app-store wcm-button{margin-right:-10px}.wcm-note{flex-direction:column;align-items:center;padding:5px 0}.wcm-note wcm-text{text-align:center}wcm-platform-selection{margin-top:-15px}.wcm-note wcm-text{margin-top:15px}.wcm-note wcm-text span{color:var(--wcm-accent-color)}`;var __defProp$4=Object.defineProperty,__getOwnPropDesc$4=Object.getOwnPropertyDescriptor,__decorateClass$4=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$4(t,r):t,a=e.length-1;a>=0;a--)(o=e[a])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$4(t,r,i),i};let WcmMobileConnectingView=class extends s{constructor(){super(),this.isError=!1,this.openMobileApp()}onFormatAndRedirect(e,t=!1){const{mobile:r,name:n}=CoreUtil.getWalletRouterData(),o=null==r?void 0:r.native,i=null==r?void 0:r.universal,a=CoreUtil.isTelegram()?"_blank":"_self";if(e=CoreUtil.isTelegram()&&CoreUtil.isAndroid()?encodeURIComponent(e):e,o&&!t){const t=CoreUtil.formatNativeUrl(o,e,n);CoreUtil.openHref(t,a)}else if(i){const t=CoreUtil.formatUniversalUrl(i,e,n);CoreUtil.openHref(t,a)}}openMobileApp(e=!1){const{walletConnectUri:t}=OptionsCtrl.state,r=CoreUtil.getWalletRouterData();t&&this.onFormatAndRedirect(t,e),UiUtil.setRecentWallet(r)}onGoToAppStore(e){e&&CoreUtil.openHref(e,"_blank")}render(){const{name:e,id:t,image_id:r,app:n,mobile:o}=CoreUtil.getWalletRouterData(),{isWeb:i}=UiUtil.getCachedRouterWalletPlatforms(),a=null==n?void 0:n.ios,s=null==o?void 0:o.universal;return x`Retry${s?x`Still doesn't work? Try this alternate link`:null}
${`Get ${e}`}
App Store
`}};WcmMobileConnectingView.styles=[ThemeUtil.globalCss,styles$3],__decorateClass$4([t$1()],WcmMobileConnectingView.prototype,"isError",2),WcmMobileConnectingView=__decorateClass$4([e$2("wcm-mobile-connecting-view")],WcmMobileConnectingView);const styles$2=i$3`wcm-info-footer{flex-direction:column;align-items:center;display:flex;width:100%;padding:5px 0}wcm-text{text-align:center}`;var __defProp$3=Object.defineProperty,__getOwnPropDesc$3=Object.getOwnPropertyDescriptor,__decorateClass$3=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$3(t,r):t,a=e.length-1;a>=0;a--)(o=e[a])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$3(t,r,i),i};let WcmMobileQrConnectingView=class extends s{render(){const{name:e,id:t,image_id:r}=CoreUtil.getWalletRouterData(),{isDesktop:n,isWeb:o}=UiUtil.getCachedRouterWalletPlatforms();return x`${`Scan this QR Code with your phone's camera or inside ${e} app`}`}};WcmMobileQrConnectingView.styles=[ThemeUtil.globalCss,styles$2],WcmMobileQrConnectingView=__decorateClass$3([e$2("wcm-mobile-qr-connecting-view")],WcmMobileQrConnectingView);var __defProp$2=Object.defineProperty,__getOwnPropDesc$2=Object.getOwnPropertyDescriptor,__decorateClass$2=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$2(t,r):t,a=e.length-1;a>=0;a--)(o=e[a])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$2(t,r,i),i};let WcmQrcodeView=class extends s{render(){return x``}};WcmQrcodeView.styles=[ThemeUtil.globalCss],WcmQrcodeView=__decorateClass$2([e$2("wcm-qrcode-view")],WcmQrcodeView);const styles$1=i$3`wcm-modal-content{height:clamp(200px,60vh,600px);display:block;overflow:scroll;scrollbar-width:none;position:relative;margin-top:1px}.wcm-grid{display:grid;grid-template-columns:repeat(4,80px);justify-content:space-between;margin:-15px -10px;padding-top:20px}wcm-modal-content::after,wcm-modal-content::before{content:'';position:fixed;pointer-events:none;z-index:1;width:100%;height:20px;opacity:1}wcm-modal-content::before{box-shadow:0 -1px 0 0 var(--wcm-color-bg-1);background:linear-gradient(var(--wcm-color-bg-1),rgba(255,255,255,0))}wcm-modal-content::after{box-shadow:0 1px 0 0 var(--wcm-color-bg-1);background:linear-gradient(rgba(255,255,255,0),var(--wcm-color-bg-1));top:calc(100% - 20px)}wcm-modal-content::-webkit-scrollbar{display:none}.wcm-placeholder-block{display:flex;justify-content:center;align-items:center;height:100px;overflow:hidden}.wcm-empty,.wcm-loading{display:flex}.wcm-loading .wcm-placeholder-block{height:100%}.wcm-end-reached .wcm-placeholder-block{height:0;opacity:0}.wcm-empty .wcm-placeholder-block{opacity:1;height:100%}wcm-wallet-button{margin:calc((100% - 60px)/ 3) 0}`;var __defProp$1=Object.defineProperty,__getOwnPropDesc$1=Object.getOwnPropertyDescriptor,__decorateClass$1=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$1(t,r):t,a=e.length-1;a>=0;a--)(o=e[a])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$1(t,r,i),i};const PAGE_ENTRIES=40;let WcmWalletExplorerView=class extends s{constructor(){super(...arguments),this.loading=!ExplorerCtrl.state.wallets.listings.length,this.firstFetch=!ExplorerCtrl.state.wallets.listings.length,this.search="",this.endReached=!1,this.intersectionObserver=void 0,this.searchDebounce=UiUtil.debounce((e=>{e.length>=1?(this.firstFetch=!0,this.endReached=!1,this.search=e,ExplorerCtrl.resetSearch(),this.fetchWallets()):this.search&&(this.search="",this.endReached=this.isLastPage(),ExplorerCtrl.resetSearch())}))}firstUpdated(){this.createPaginationObserver()}disconnectedCallback(){var e;null==(e=this.intersectionObserver)||e.disconnect()}get placeholderEl(){return UiUtil.getShadowRootElement(this,".wcm-placeholder-block")}createPaginationObserver(){this.intersectionObserver=new IntersectionObserver((([e])=>{!e.isIntersecting||this.search&&this.firstFetch||this.fetchWallets()})),this.intersectionObserver.observe(this.placeholderEl)}isLastPage(){const{wallets:e,search:t}=ExplorerCtrl.state,{listings:r,total:n}=this.search?t:e;return n<=PAGE_ENTRIES||r.length>=n}async fetchWallets(){var e;const{wallets:t,search:r}=ExplorerCtrl.state,{listings:n,total:o,page:i}=this.search?r:t;if(!this.endReached&&(this.firstFetch||o>PAGE_ENTRIES&&n.lengthUiUtil.getWalletIcon(e)));await Promise.all([...n.map((async e=>UiUtil.preloadImage(e))),CoreUtil.wait(300)]),this.endReached=this.isLastPage()}catch(a){console.error(a),ToastCtrl.openToast(UiUtil.getErrorMessage(a),"error")}finally{this.loading=!1,this.firstFetch=!1}}onConnect(e){CoreUtil.isAndroid()?UiUtil.handleMobileLinking(e):UiUtil.goToConnectingView(e)}onSearchChange(e){const{value:t}=e.target;this.searchDebounce(t)}render(){const{wallets:e,search:t}=ExplorerCtrl.state,{listings:r}=this.search?t:e,n=this.loading&&!r.length,i=this.search.length>=3;let a=TemplateUtil.manualWalletsTemplate(),s=TemplateUtil.recomendedWalletsTemplate(!0);i&&(a=a.filter((({values:e})=>UiUtil.caseSafeIncludes(e[0],this.search))),s=s.filter((({values:e})=>UiUtil.caseSafeIncludes(e[0],this.search))));const c=!this.loading&&!r.length&&!s.length,u={"wcm-loading":n,"wcm-end-reached":this.endReached||!this.loading,"wcm-empty":c};return x`
${n?null:a} ${n?null:s} ${n?null:r.map((e=>x`${e?x``:null}`))}
${c?x`No results found`:null} ${!c&&this.loading?x``:null}
`}};WcmWalletExplorerView.styles=[ThemeUtil.globalCss,styles$1],__decorateClass$1([t$1()],WcmWalletExplorerView.prototype,"loading",2),__decorateClass$1([t$1()],WcmWalletExplorerView.prototype,"firstFetch",2),__decorateClass$1([t$1()],WcmWalletExplorerView.prototype,"search",2),__decorateClass$1([t$1()],WcmWalletExplorerView.prototype,"endReached",2),WcmWalletExplorerView=__decorateClass$1([e$2("wcm-wallet-explorer-view")],WcmWalletExplorerView);const styles=i$3`wcm-info-footer{flex-direction:column;align-items:center;display:flex;width:100%;padding:5px 0}wcm-text{text-align:center}`;var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__decorateClass=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc(t,r):t,a=e.length-1;a>=0;a--)(o=e[a])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp(t,r,i),i};let WcmWebConnectingView=class extends s{constructor(){super(),this.isError=!1,this.openWebWallet()}onFormatAndRedirect(e){const{desktop:t,name:r}=CoreUtil.getWalletRouterData(),n=null==t?void 0:t.universal;if(n){const t=CoreUtil.formatUniversalUrl(n,e,r);CoreUtil.openHref(t,"_blank")}}openWebWallet(){const{walletConnectUri:e}=OptionsCtrl.state,t=CoreUtil.getWalletRouterData();UiUtil.setRecentWallet(t),e&&this.onFormatAndRedirect(e)}render(){const{name:e,id:t,image_id:r}=CoreUtil.getWalletRouterData(),{isMobile:n,isDesktop:o}=UiUtil.getCachedRouterWalletPlatforms(),i=CoreUtil.isMobile();return x`${`${e} web app has opened in a new tab. Go there, accept the connection, and come back`}Retry`}};WcmWebConnectingView.styles=[ThemeUtil.globalCss,styles],__decorateClass([t$1()],WcmWebConnectingView.prototype,"isError",2),WcmWebConnectingView=__decorateClass([e$2("wcm-web-connecting-view")],WcmWebConnectingView);const index=Object.freeze(Object.defineProperty({__proto__:null,get WcmModal(){return WcmModal},get WcmQrCode(){return WcmQrCode}},Symbol.toStringTag,{value:"Module"}));exports.HashgraphSDK=HashgraphSDK,exports.HashinalsWalletConnectSDK=HashinalsWalletConnectSDK,exports.Name=Name,exports.Result=Result,exports.base64StringToSignatureMap=base64StringToSignatureMap,exports.prefixMessageToSign=prefixMessageToSign,exports.verifyMessageSignature=verifyMessageSignature,Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"})})); + */const l=e=>null!=e?e:A;var browser={},canPromise$1=function(){return"function"==typeof Promise&&Promise.prototype&&Promise.prototype.then},qrcode={},utils$1={};let toSJISFunction;const CODEWORDS_COUNT=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];utils$1.getSymbolSize=function(e){if(!e)throw new Error('"version" cannot be null or undefined');if(e<1||e>40)throw new Error('"version" should be in range from 1 to 40');return 4*e+17},utils$1.getSymbolTotalCodewords=function(e){return CODEWORDS_COUNT[e]},utils$1.getBCHDigit=function(e){let t=0;for(;0!==e;)t++,e>>>=1;return t},utils$1.setToSJISFunction=function(e){if("function"!=typeof e)throw new Error('"toSJISFunc" is not a valid function.');toSJISFunction=e},utils$1.isKanjiModeEnabled=function(){return void 0!==toSJISFunction},utils$1.toSJIS=function(e){return toSJISFunction(e)};var errorCorrectionLevel={};function BitBuffer$1(){this.buffer=[],this.length=0}!function(e){e.L={bit:1},e.M={bit:0},e.Q={bit:3},e.H={bit:2},e.isValid=function(e){return e&&void 0!==e.bit&&e.bit>=0&&e.bit<4},e.from=function(t,r){if(e.isValid(t))return t;try{return function(t){if("string"!=typeof t)throw new Error("Param is not a string");switch(t.toLowerCase()){case"l":case"low":return e.L;case"m":case"medium":return e.M;case"q":case"quartile":return e.Q;case"h":case"high":return e.H;default:throw new Error("Unknown EC Level: "+t)}}(t)}catch(n){return r}}}(errorCorrectionLevel),BitBuffer$1.prototype={get:function(e){const t=Math.floor(e/8);return 1==(this.buffer[t]>>>7-e%8&1)},put:function(e,t){for(let r=0;r>>t-r-1&1))},getLengthInBits:function(){return this.length},putBit:function(e){const t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),e&&(this.buffer[t]|=128>>>this.length%8),this.length++}};var bitBuffer=BitBuffer$1;function BitMatrix$1(e){if(!e||e<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=e,this.data=new Uint8Array(e*e),this.reservedBit=new Uint8Array(e*e)}BitMatrix$1.prototype.set=function(e,t,r,n){const o=e*this.size+t;this.data[o]=r,n&&(this.reservedBit[o]=!0)},BitMatrix$1.prototype.get=function(e,t){return this.data[e*this.size+t]},BitMatrix$1.prototype.xor=function(e,t,r){this.data[e*this.size+t]^=r},BitMatrix$1.prototype.isReserved=function(e,t){return this.reservedBit[e*this.size+t]};var bitMatrix=BitMatrix$1,alignmentPattern={};!function(e){const t=utils$1.getSymbolSize;e.getRowColCoords=function(e){if(1===e)return[];const r=Math.floor(e/7)+2,n=t(e),o=145===n?26:2*Math.ceil((n-13)/(2*r-2)),i=[n-7];for(let t=1;t=0&&e<=7},e.from=function(t){return e.isValid(t)?parseInt(t,10):void 0},e.getPenaltyN1=function(e){const r=e.size;let n=0,o=0,i=0,s=null,a=null;for(let c=0;c=5&&(n+=t+(o-5)),s=r,o=1),r=e.get(u,c),r===a?i++:(i>=5&&(n+=t+(i-5)),a=r,i=1)}o>=5&&(n+=t+(o-5)),i>=5&&(n+=t+(i-5))}return n},e.getPenaltyN2=function(e){const t=e.size;let n=0;for(let r=0;r=10&&(1488===o||93===o)&&r++,i=i<<1&2047|e.get(s,n),s>=10&&(1488===i||93===i)&&r++}return r*n},e.getPenaltyN4=function(e){let t=0;const r=e.data.length;for(let n=0;n=0;){const e=n[0];for(let i=0;i0){const e=new Uint8Array(this.degree);return e.set(r,n),e}return r};var reedSolomonEncoder=ReedSolomonEncoder$1,version={},mode={},versionCheck={isValid:function(e){return!isNaN(e)&&e>=1&&e<=40}},regex={};const numeric="[0-9]+",alphanumeric="[A-Z $%*+\\-./:]+";let kanji="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+";kanji=kanji.replace(/u/g,"\\u");const byte="(?:(?![A-Z0-9 $%*+\\-./:]|"+kanji+")(?:.|[\r\n]))+";regex.KANJI=new RegExp(kanji,"g"),regex.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g"),regex.BYTE=new RegExp(byte,"g"),regex.NUMERIC=new RegExp(numeric,"g"),regex.ALPHANUMERIC=new RegExp(alphanumeric,"g");const TEST_KANJI=new RegExp("^"+kanji+"$"),TEST_NUMERIC=new RegExp("^"+numeric+"$"),TEST_ALPHANUMERIC=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");regex.testKanji=function(e){return TEST_KANJI.test(e)},regex.testNumeric=function(e){return TEST_NUMERIC.test(e)},regex.testAlphanumeric=function(e){return TEST_ALPHANUMERIC.test(e)},function(e){const t=versionCheck,r=regex;e.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},e.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},e.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},e.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},e.MIXED={bit:-1},e.getCharCountIndicator=function(e,r){if(!e.ccBits)throw new Error("Invalid mode: "+e);if(!t.isValid(r))throw new Error("Invalid version: "+r);return r>=1&&r<10?e.ccBits[0]:r<27?e.ccBits[1]:e.ccBits[2]},e.getBestModeForData=function(t){return r.testNumeric(t)?e.NUMERIC:r.testAlphanumeric(t)?e.ALPHANUMERIC:r.testKanji(t)?e.KANJI:e.BYTE},e.toString=function(e){if(e&&e.id)return e.id;throw new Error("Invalid mode")},e.isValid=function(e){return e&&e.bit&&e.ccBits},e.from=function(t,r){if(e.isValid(t))return t;try{return function(t){if("string"!=typeof t)throw new Error("Param is not a string");switch(t.toLowerCase()){case"numeric":return e.NUMERIC;case"alphanumeric":return e.ALPHANUMERIC;case"kanji":return e.KANJI;case"byte":return e.BYTE;default:throw new Error("Unknown mode: "+t)}}(t)}catch(n){return r}}}(mode),function(e){const t=utils$1,r=errorCorrectionCode,n=errorCorrectionLevel,o=mode,i=versionCheck,s=t.getBCHDigit(7973);function a(e,t){return o.getCharCountIndicator(e,t)+4}function c(e,t){let r=0;return e.forEach((function(e){const n=a(e.mode,t);r+=n+e.getBitsLength()})),r}e.from=function(e,t){return i.isValid(e)?parseInt(e,10):t},e.getCapacity=function(e,n,s){if(!i.isValid(e))throw new Error("Invalid QR Code version");void 0===s&&(s=o.BYTE);const c=8*(t.getSymbolTotalCodewords(e)-r.getTotalCodewordsCount(e,n));if(s===o.MIXED)return c;const u=c-a(s,e);switch(s){case o.NUMERIC:return Math.floor(u/10*3);case o.ALPHANUMERIC:return Math.floor(u/11*2);case o.KANJI:return Math.floor(u/13);case o.BYTE:default:return Math.floor(u/8)}},e.getBestVersionForData=function(t,r){let i;const s=n.from(r,n.M);if(Array.isArray(t)){if(t.length>1)return function(t,r){for(let n=1;n<=40;n++)if(c(t,n)<=e.getCapacity(n,r,o.MIXED))return n}(t,s);if(0===t.length)return 1;i=t[0]}else i=t;return function(t,r,n){for(let o=1;o<=40;o++)if(r<=e.getCapacity(o,n,t))return o}(i.mode,i.getLength(),s)},e.getEncodedBits=function(e){if(!i.isValid(e)||e<7)throw new Error("Invalid QR Code version");let r=e<<12;for(;t.getBCHDigit(r)-s>=0;)r^=7973<=0;)n^=G15<0&&(r=this.data.substr(t),n=parseInt(r,10),e.put(n,3*o+1))};var numericData=NumericData;const Mode$3=mode,ALPHA_NUM_CHARS=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function AlphanumericData(e){this.mode=Mode$3.ALPHANUMERIC,this.data=e}AlphanumericData.getBitsLength=function(e){return 11*Math.floor(e/2)+e%2*6},AlphanumericData.prototype.getLength=function(){return this.data.length},AlphanumericData.prototype.getBitsLength=function(){return AlphanumericData.getBitsLength(this.data.length)},AlphanumericData.prototype.write=function(e){let t;for(t=0;t+2<=this.data.length;t+=2){let r=45*ALPHA_NUM_CHARS.indexOf(this.data[t]);r+=ALPHA_NUM_CHARS.indexOf(this.data[t+1]),e.put(r,11)}this.data.length%2&&e.put(ALPHA_NUM_CHARS.indexOf(this.data[t]),6)};var alphanumericData=AlphanumericData,encodeUtf8$1=function(e){for(var t=[],r=e.length,n=0;n=55296&&o<=56319&&r>n+1){var i=e.charCodeAt(n+1);i>=56320&&i<=57343&&(o=1024*(o-55296)+i-56320+65536,n+=1)}o<128?t.push(o):o<2048?(t.push(o>>6|192),t.push(63&o|128)):o<55296||o>=57344&&o<65536?(t.push(o>>12|224),t.push(o>>6&63|128),t.push(63&o|128)):o>=65536&&o<=1114111?(t.push(o>>18|240),t.push(o>>12&63|128),t.push(o>>6&63|128),t.push(63&o|128)):t.push(239,191,189)}return new Uint8Array(t).buffer};const encodeUtf8=encodeUtf8$1,Mode$2=mode;function ByteData(e){this.mode=Mode$2.BYTE,"string"==typeof e&&(e=encodeUtf8(e)),this.data=new Uint8Array(e)}ByteData.getBitsLength=function(e){return 8*e},ByteData.prototype.getLength=function(){return this.data.length},ByteData.prototype.getBitsLength=function(){return ByteData.getBitsLength(this.data.length)},ByteData.prototype.write=function(e){for(let t=0,r=this.data.length;t=33088&&r<=40956)r-=33088;else{if(!(r>=57408&&r<=60351))throw new Error("Invalid SJIS character: "+this.data[t]+"\nMake sure your charset is UTF-8");r-=49472}r=192*(r>>>8&255)+(255&r),e.put(r,13)}};var kanjiData=KanjiData;!function(e){const t=mode,r=numericData,n=alphanumericData,o=byteData,i=kanjiData,s=regex,a=utils$1,c=dijkstraExports;function u(e){return unescape(encodeURIComponent(e)).length}function l(e,t,r){const n=[];let o;for(;null!==(o=e.exec(r));)n.push({data:o[0],index:o.index,mode:t,length:o[0].length});return n}function d(e){const r=l(s.NUMERIC,t.NUMERIC,e),n=l(s.ALPHANUMERIC,t.ALPHANUMERIC,e);let o,i;a.isKanjiModeEnabled()?(o=l(s.BYTE,t.BYTE,e),i=l(s.KANJI,t.KANJI,e)):(o=l(s.BYTE_KANJI,t.BYTE,e),i=[]);return r.concat(n,o,i).sort((function(e,t){return e.index-t.index})).map((function(e){return{data:e.data,mode:e.mode,length:e.length}}))}function h(e,s){switch(s){case t.NUMERIC:return r.getBitsLength(e);case t.ALPHANUMERIC:return n.getBitsLength(e);case t.KANJI:return i.getBitsLength(e);case t.BYTE:return o.getBitsLength(e)}}function f(e,s){let c;const u=t.getBestModeForData(e);if(c=t.from(s,u),c!==t.BYTE&&c.bit=0?e[e.length-1]:null;return r&&r.mode===t.mode?(e[e.length-1].data+=t.data,e):(e.push(t),e)}),[])}(l))},e.rawSplit=function(t){return e.fromArray(d(t,a.isKanjiModeEnabled()))}}(segments);const Utils$1=utils$1,ECLevel=errorCorrectionLevel,BitBuffer=bitBuffer,BitMatrix=bitMatrix,AlignmentPattern=alignmentPattern,FinderPattern=finderPattern,MaskPattern=maskPattern,ECCode=errorCorrectionCode,ReedSolomonEncoder=reedSolomonEncoder,Version=version,FormatInfo=formatInfo,Mode=mode,Segments=segments;function setupFinderPattern(e,t){const r=e.size,n=FinderPattern.getPositions(t);for(let o=0;o=0&&n<=6&&(0===o||6===o)||o>=0&&o<=6&&(0===n||6===n)||n>=2&&n<=4&&o>=2&&o<=4?e.set(t+n,i+o,!0,!0):e.set(t+n,i+o,!1,!0))}}function setupTimingPattern(e){const t=e.size;for(let r=8;r>a&1),e.set(o,i,s,!0),e.set(i,o,s,!0)}function setupFormatInfo(e,t,r){const n=e.size,o=FormatInfo.getEncodedBits(t,r);let i,s;for(i=0;i<15;i++)s=1==(o>>i&1),i<6?e.set(i,8,s,!0):i<8?e.set(i+1,8,s,!0):e.set(n-15+i,8,s,!0),i<8?e.set(8,n-i-1,s,!0):i<9?e.set(8,15-i-1+1,s,!0):e.set(8,15-i-1,s,!0);e.set(n-8,8,1,!0)}function setupData(e,t){const r=e.size;let n=-1,o=r-1,i=7,s=0;for(let a=r-1;a>0;a-=2)for(6===a&&a--;;){for(let r=0;r<2;r++)if(!e.isReserved(o,a-r)){let n=!1;s>>i&1)),e.set(o,a-r,n),i--,-1===i&&(s++,i=7)}if(o+=n,o<0||r<=o){o-=n,n=-n;break}}}function createData(e,t,r){const n=new BitBuffer;r.forEach((function(t){n.put(t.mode.bit,4),n.put(t.getLength(),Mode.getCharCountIndicator(t.mode,e)),t.write(n)}));const o=8*(Utils$1.getSymbolTotalCodewords(e)-ECCode.getTotalCodewordsCount(e,t));for(n.getLengthInBits()+4<=o&&n.put(0,4);n.getLengthInBits()%8!=0;)n.putBit(0);const i=(o-n.getLengthInBits())/8;for(let s=0;s=7&&setupVersionInfo(c,t),setupData(c,s),isNaN(n)&&(n=MaskPattern.getBestMask(c,setupFormatInfo.bind(null,c,r))),MaskPattern.applyMask(n,c),setupFormatInfo(c,r,n),{modules:c,version:t,errorCorrectionLevel:r,maskPattern:n,segments:o}}qrcode.create=function(e,t){if(void 0===e||""===e)throw new Error("No input text");let r,n,o=ECLevel.M;return void 0!==t&&(o=ECLevel.from(t.errorCorrectionLevel,ECLevel.M),r=Version.from(t.version),n=MaskPattern.from(t.maskPattern),t.toSJISFunc&&Utils$1.setToSJISFunction(t.toSJISFunc)),createSymbol(e,r,o,n)};var canvas={},utils={};!function(e){function t(e){if("number"==typeof e&&(e=e.toString()),"string"!=typeof e)throw new Error("Color should be defined as hex string");let t=e.slice().replace("#","").split("");if(t.length<3||5===t.length||t.length>8)throw new Error("Invalid hex color: "+e);3!==t.length&&4!==t.length||(t=Array.prototype.concat.apply([],t.map((function(e){return[e,e]})))),6===t.length&&t.push("F","F");const r=parseInt(t.join(""),16);return{r:r>>24&255,g:r>>16&255,b:r>>8&255,a:255&r,hex:"#"+t.slice(0,6).join("")}}e.getOptions=function(e){e||(e={}),e.color||(e.color={});const r=void 0===e.margin||null===e.margin||e.margin<0?4:e.margin,n=e.width&&e.width>=21?e.width:void 0,o=e.scale||4;return{width:n,scale:n?4:o,margin:r,color:{dark:t(e.color.dark||"#000000ff"),light:t(e.color.light||"#ffffffff")},type:e.type,rendererOpts:e.rendererOpts||{}}},e.getScale=function(e,t){return t.width&&t.width>=e+2*t.margin?t.width/(e+2*t.margin):t.scale},e.getImageWidth=function(t,r){const n=e.getScale(t,r);return Math.floor((t+2*r.margin)*n)},e.qrToImageData=function(t,r,n){const o=r.modules.size,i=r.modules.data,s=e.getScale(o,n),a=Math.floor((o+2*n.margin)*s),c=n.margin*s,u=[n.color.light,n.color.dark];for(let e=0;e=c&&r>=c&&e0&&c>0&&e[a-1]||(n+=i?svgCmd("M",c+r,.5+u+r):svgCmd("m",o,0),o=0,i=!1),c+1':"",c="',u='viewBox="0 0 '+s+" "+s+'"',l=''+a+c+"\n";return"function"==typeof r&&r(null,l),l};const canPromise=canPromise$1,QRCode=qrcode,CanvasRenderer=canvas,SvgRenderer=svgTag;function renderCanvas(e,t,r,n,o){const i=[].slice.call(arguments,1),s=i.length,a="function"==typeof i[s-1];if(!a&&!canPromise())throw new Error("Callback required as last argument");if(!a){if(s<1)throw new Error("Too few arguments provided");return 1===s?(r=t,t=n=void 0):2!==s||t.getContext||(n=r,r=t,t=void 0),new Promise((function(o,i){try{const i=QRCode.create(r,n);o(e(i,t,n))}catch(s){i(s)}}))}if(s<2)throw new Error("Too few arguments provided");2===s?(o=r,r=t,t=n=void 0):3===s&&(t.getContext&&void 0===o?(o=n,n=void 0):(o=n,n=r,r=t,t=void 0));try{const i=QRCode.create(r,n);o(null,e(i,t,n))}catch(c){o(c)}}browser.create=QRCode.create,browser.toCanvas=renderCanvas.bind(null,CanvasRenderer.render),browser.toDataURL=renderCanvas.bind(null,CanvasRenderer.renderToDataURL),browser.toString=renderCanvas.bind(null,(function(e,t,r){return SvgRenderer.render(e,r)}));var __defProp$y=Object.defineProperty,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,t,r)=>t in e?__defProp$y(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,__spreadValues=(e,t)=>{for(var r in t||(t={}))__hasOwnProp.call(t,r)&&__defNormalProp(e,r,t[r]);if(__getOwnPropSymbols)for(var r of __getOwnPropSymbols(t))__propIsEnum.call(t,r)&&__defNormalProp(e,r,t[r]);return e};function themeModeVariables(){var e;const t={light:{foreground:{1:"rgb(20,20,20)",2:"rgb(121,134,134)",3:"rgb(158,169,169)"},background:{1:"rgb(255,255,255)",2:"rgb(241,243,243)",3:"rgb(228,231,231)"},overlay:"rgba(0,0,0,0.1)"},dark:{foreground:{1:"rgb(228,231,231)",2:"rgb(148,158,158)",3:"rgb(110,119,119)"},background:{1:"rgb(20,20,20)",2:"rgb(39,42,42)",3:"rgb(59,64,64)"},overlay:"rgba(255,255,255,0.1)"}}[null!=(e=ThemeCtrl.state.themeMode)?e:"dark"];return{"--wcm-color-fg-1":t.foreground[1],"--wcm-color-fg-2":t.foreground[2],"--wcm-color-fg-3":t.foreground[3],"--wcm-color-bg-1":t.background[1],"--wcm-color-bg-2":t.background[2],"--wcm-color-bg-3":t.background[3],"--wcm-color-overlay":t.overlay}}function themeVariablesPresets(){return{"--wcm-accent-color":"#3396FF","--wcm-accent-fill-color":"#FFFFFF","--wcm-z-index":"89","--wcm-background-color":"#3396FF","--wcm-background-border-radius":"8px","--wcm-container-border-radius":"30px","--wcm-wallet-icon-border-radius":"15px","--wcm-wallet-icon-large-border-radius":"30px","--wcm-wallet-icon-small-border-radius":"7px","--wcm-input-border-radius":"28px","--wcm-button-border-radius":"10px","--wcm-notification-border-radius":"36px","--wcm-secondary-button-border-radius":"28px","--wcm-icon-button-border-radius":"50%","--wcm-button-hover-highlight-border-radius":"10px","--wcm-text-big-bold-size":"20px","--wcm-text-big-bold-weight":"600","--wcm-text-big-bold-line-height":"24px","--wcm-text-big-bold-letter-spacing":"-0.03em","--wcm-text-big-bold-text-transform":"none","--wcm-text-xsmall-bold-size":"10px","--wcm-text-xsmall-bold-weight":"700","--wcm-text-xsmall-bold-line-height":"12px","--wcm-text-xsmall-bold-letter-spacing":"0.02em","--wcm-text-xsmall-bold-text-transform":"uppercase","--wcm-text-xsmall-regular-size":"12px","--wcm-text-xsmall-regular-weight":"600","--wcm-text-xsmall-regular-line-height":"14px","--wcm-text-xsmall-regular-letter-spacing":"-0.03em","--wcm-text-xsmall-regular-text-transform":"none","--wcm-text-small-thin-size":"14px","--wcm-text-small-thin-weight":"500","--wcm-text-small-thin-line-height":"16px","--wcm-text-small-thin-letter-spacing":"-0.03em","--wcm-text-small-thin-text-transform":"none","--wcm-text-small-regular-size":"14px","--wcm-text-small-regular-weight":"600","--wcm-text-small-regular-line-height":"16px","--wcm-text-small-regular-letter-spacing":"-0.03em","--wcm-text-small-regular-text-transform":"none","--wcm-text-medium-regular-size":"16px","--wcm-text-medium-regular-weight":"600","--wcm-text-medium-regular-line-height":"20px","--wcm-text-medium-regular-letter-spacing":"-0.03em","--wcm-text-medium-regular-text-transform":"none","--wcm-font-family":"-apple-system, system-ui, BlinkMacSystemFont, 'Segoe UI', Roboto, Ubuntu, 'Helvetica Neue', sans-serif","--wcm-font-feature-settings":"'tnum' on, 'lnum' on, 'case' on","--wcm-success-color":"rgb(38,181,98)","--wcm-error-color":"rgb(242, 90, 103)","--wcm-overlay-background-color":"rgba(0, 0, 0, 0.3)","--wcm-overlay-backdrop-filter":"none"}}const ThemeUtil={getPreset:e=>themeVariablesPresets()[e],setTheme(){const e=document.querySelector(":root"),{themeVariables:t}=ThemeCtrl.state;if(e){const r=__spreadValues(__spreadValues(__spreadValues({},themeModeVariables()),themeVariablesPresets()),t);Object.entries(r).forEach((([t,r])=>e.style.setProperty(t,r)))}},globalCss:i$3`*,::after,::before{margin:0;padding:0;box-sizing:border-box;font-style:normal;text-rendering:optimizeSpeed;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;backface-visibility:hidden}button{cursor:pointer;display:flex;justify-content:center;align-items:center;position:relative;border:none;background-color:transparent;transition:all .2s ease}@media (hover:hover) and (pointer:fine){button:active{transition:all .1s ease;transform:scale(.93)}}button::after{content:'';position:absolute;top:0;bottom:0;left:0;right:0;transition:background-color,.2s ease}button:disabled{cursor:not-allowed}button svg,button wcm-text{position:relative;z-index:1}input{border:none;outline:0;appearance:none}img{display:block}::selection{color:var(--wcm-accent-fill-color);background:var(--wcm-accent-color)}`},styles$t=i$3`button{border-radius:var(--wcm-secondary-button-border-radius);height:28px;padding:0 10px;background-color:var(--wcm-accent-color)}button path{fill:var(--wcm-accent-fill-color)}button::after{border-radius:inherit;border:1px solid var(--wcm-color-overlay)}button:disabled::after{background-color:transparent}.wcm-icon-left svg{margin-right:5px}.wcm-icon-right svg{margin-left:5px}button:active::after{background-color:var(--wcm-color-overlay)}.wcm-ghost,.wcm-ghost:active::after,.wcm-outline{background-color:transparent}.wcm-ghost:active{opacity:.5}@media(hover:hover){button:hover::after{background-color:var(--wcm-color-overlay)}.wcm-ghost:hover::after{background-color:transparent}.wcm-ghost:hover{opacity:.5}}button:disabled{background-color:var(--wcm-color-bg-3);pointer-events:none}.wcm-ghost::after{border-color:transparent}.wcm-ghost path{fill:var(--wcm-color-fg-2)}.wcm-outline path{fill:var(--wcm-accent-color)}.wcm-outline:disabled{background-color:transparent;opacity:.5}`;var __defProp$x=Object.defineProperty,__getOwnPropDesc$x=Object.getOwnPropertyDescriptor,__decorateClass$x=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$x(t,r):t,s=e.length-1;s>=0;s--)(o=e[s])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$x(t,r,i),i};let WcmButton=class extends s{constructor(){super(...arguments),this.disabled=!1,this.iconLeft=void 0,this.iconRight=void 0,this.onClick=()=>null,this.variant="default"}render(){const e={"wcm-icon-left":void 0!==this.iconLeft,"wcm-icon-right":void 0!==this.iconRight,"wcm-ghost":"ghost"===this.variant,"wcm-outline":"outline"===this.variant};let t="inverse";return"ghost"===this.variant&&(t="secondary"),"outline"===this.variant&&(t="accent"),x``}};WcmButton.styles=[ThemeUtil.globalCss,styles$t],__decorateClass$x([n$1({type:Boolean})],WcmButton.prototype,"disabled",2),__decorateClass$x([n$1()],WcmButton.prototype,"iconLeft",2),__decorateClass$x([n$1()],WcmButton.prototype,"iconRight",2),__decorateClass$x([n$1()],WcmButton.prototype,"onClick",2),__decorateClass$x([n$1()],WcmButton.prototype,"variant",2),WcmButton=__decorateClass$x([e$2("wcm-button")],WcmButton);const styles$s=i$3`:host{display:inline-block}button{padding:0 15px 1px;height:40px;border-radius:var(--wcm-button-border-radius);color:var(--wcm-accent-fill-color);background-color:var(--wcm-accent-color)}button::after{content:'';top:0;bottom:0;left:0;right:0;position:absolute;background-color:transparent;border-radius:inherit;transition:background-color .2s ease;border:1px solid var(--wcm-color-overlay)}button:active::after{background-color:var(--wcm-color-overlay)}button:disabled{padding-bottom:0;background-color:var(--wcm-color-bg-3);color:var(--wcm-color-fg-3)}.wcm-secondary{color:var(--wcm-accent-color);background-color:transparent}.wcm-secondary::after{display:none}@media(hover:hover){button:hover::after{background-color:var(--wcm-color-overlay)}}`;var __defProp$w=Object.defineProperty,__getOwnPropDesc$w=Object.getOwnPropertyDescriptor,__decorateClass$w=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$w(t,r):t,s=e.length-1;s>=0;s--)(o=e[s])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$w(t,r,i),i};let WcmButtonBig=class extends s{constructor(){super(...arguments),this.disabled=!1,this.variant="primary"}render(){const e={"wcm-secondary":"secondary"===this.variant};return x``}};WcmButtonBig.styles=[ThemeUtil.globalCss,styles$s],__decorateClass$w([n$1({type:Boolean})],WcmButtonBig.prototype,"disabled",2),__decorateClass$w([n$1()],WcmButtonBig.prototype,"variant",2),WcmButtonBig=__decorateClass$w([e$2("wcm-button-big")],WcmButtonBig);const styles$r=i$3`:host{background-color:var(--wcm-color-bg-2);border-top:1px solid var(--wcm-color-bg-3)}div{padding:10px 20px;display:inherit;flex-direction:inherit;align-items:inherit;width:inherit;justify-content:inherit}`;var __defProp$v=Object.defineProperty,__getOwnPropDesc$v=Object.getOwnPropertyDescriptor,__decorateClass$v=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$v(t,r):t,s=e.length-1;s>=0;s--)(o=e[s])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$v(t,r,i),i};let WcmInfoFooter=class extends s{render(){return x`
`}};WcmInfoFooter.styles=[ThemeUtil.globalCss,styles$r],WcmInfoFooter=__decorateClass$v([e$2("wcm-info-footer")],WcmInfoFooter);const SvgUtil={CROSS_ICON:b``,WALLET_CONNECT_LOGO:b``,WALLET_CONNECT_ICON:b``,WALLET_CONNECT_ICON_COLORED:b``,BACK_ICON:b``,COPY_ICON:b``,RETRY_ICON:b``,DESKTOP_ICON:b``,MOBILE_ICON:b``,ARROW_DOWN_ICON:b``,ARROW_UP_RIGHT_ICON:b``,ARROW_RIGHT_ICON:b``,QRCODE_ICON:b``,SCAN_ICON:b``,CHECKMARK_ICON:b``,SEARCH_ICON:b``,WALLET_PLACEHOLDER:b``,GLOBE_ICON:b``},styles$q=i$3`.wcm-toolbar-placeholder{top:0;bottom:0;left:0;right:0;width:100%;position:absolute;display:block;pointer-events:none;height:100px;border-radius:calc(var(--wcm-background-border-radius) * .9);background-color:var(--wcm-background-color);background-position:center;background-size:cover}.wcm-toolbar{height:38px;display:flex;position:relative;margin:5px 15px 5px 5px;justify-content:space-between;align-items:center}.wcm-toolbar img,.wcm-toolbar svg{height:28px;object-position:left center;object-fit:contain}#wcm-wc-logo path{fill:var(--wcm-accent-fill-color)}button{width:28px;height:28px;border-radius:var(--wcm-icon-button-border-radius);border:0;display:flex;justify-content:center;align-items:center;cursor:pointer;background-color:var(--wcm-color-bg-1);box-shadow:0 0 0 1px var(--wcm-color-overlay)}button:active{background-color:var(--wcm-color-bg-2)}button svg{display:block;object-position:center}button path{fill:var(--wcm-color-fg-1)}.wcm-toolbar div{display:flex}@media(hover:hover){button:hover{background-color:var(--wcm-color-bg-2)}}`;var __defProp$u=Object.defineProperty,__getOwnPropDesc$u=Object.getOwnPropertyDescriptor,__decorateClass$u=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$u(t,r):t,s=e.length-1;s>=0;s--)(o=e[s])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$u(t,r,i),i};let WcmModalBackcard=class extends s{render(){return x`
${SvgUtil.WALLET_CONNECT_LOGO}
`}};WcmModalBackcard.styles=[ThemeUtil.globalCss,styles$q],WcmModalBackcard=__decorateClass$u([e$2("wcm-modal-backcard")],WcmModalBackcard);const styles$p=i$3`main{padding:20px;padding-top:0;width:100%}`;var __defProp$t=Object.defineProperty,__getOwnPropDesc$t=Object.getOwnPropertyDescriptor,__decorateClass$t=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$t(t,r):t,s=e.length-1;s>=0;s--)(o=e[s])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$t(t,r,i),i};let WcmModalContent=class extends s{render(){return x`
`}};WcmModalContent.styles=[ThemeUtil.globalCss,styles$p],WcmModalContent=__decorateClass$t([e$2("wcm-modal-content")],WcmModalContent);const styles$o=i$3`footer{padding:10px;display:flex;flex-direction:column;align-items:inherit;justify-content:inherit;border-top:1px solid var(--wcm-color-bg-2)}`;var __defProp$s=Object.defineProperty,__getOwnPropDesc$s=Object.getOwnPropertyDescriptor,__decorateClass$s=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$s(t,r):t,s=e.length-1;s>=0;s--)(o=e[s])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$s(t,r,i),i};let WcmModalFooter=class extends s{render(){return x`
`}};WcmModalFooter.styles=[ThemeUtil.globalCss,styles$o],WcmModalFooter=__decorateClass$s([e$2("wcm-modal-footer")],WcmModalFooter);const styles$n=i$3`header{display:flex;justify-content:center;align-items:center;padding:20px;position:relative}.wcm-border{border-bottom:1px solid var(--wcm-color-bg-2);margin-bottom:20px}header button{padding:15px 20px}header button:active{opacity:.5}@media(hover:hover){header button:hover{opacity:.5}}.wcm-back-btn{position:absolute;left:0}.wcm-action-btn{position:absolute;right:0}path{fill:var(--wcm-accent-color)}`;var __defProp$r=Object.defineProperty,__getOwnPropDesc$r=Object.getOwnPropertyDescriptor,__decorateClass$r=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$r(t,r):t,s=e.length-1;s>=0;s--)(o=e[s])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$r(t,r,i),i};let WcmModalHeader=class extends s{constructor(){super(...arguments),this.title="",this.onAction=void 0,this.actionIcon=void 0,this.border=!1}backBtnTemplate(){return x``}actionBtnTemplate(){return x``}render(){const e={"wcm-border":this.border},t=RouterCtrl.state.history.length>1,r=this.title?x`${this.title}`:x``;return x`
${t?this.backBtnTemplate():null} ${r} ${this.onAction?this.actionBtnTemplate():null}
`}};WcmModalHeader.styles=[ThemeUtil.globalCss,styles$n],__decorateClass$r([n$1()],WcmModalHeader.prototype,"title",2),__decorateClass$r([n$1()],WcmModalHeader.prototype,"onAction",2),__decorateClass$r([n$1()],WcmModalHeader.prototype,"actionIcon",2),__decorateClass$r([n$1({type:Boolean})],WcmModalHeader.prototype,"border",2),WcmModalHeader=__decorateClass$r([e$2("wcm-modal-header")],WcmModalHeader);const UiUtil={MOBILE_BREAKPOINT:600,WCM_RECENT_WALLET_DATA:"WCM_RECENT_WALLET_DATA",EXPLORER_WALLET_URL:"https://explorer.walletconnect.com/?type=wallet",getShadowRootElement(e,t){const r=e.renderRoot.querySelector(t);if(!r)throw new Error(`${t} not found`);return r},getWalletIcon({id:e,image_id:t}){const{walletImages:r}=ConfigCtrl.state;return(null==r?void 0:r[e])?r[e]:t?ExplorerCtrl.getWalletImageUrl(t):""},getWalletName:(e,t=!1)=>t&&e.length>8?`${e.substring(0,8)}..`:e,isMobileAnimation:()=>window.innerWidth<=UiUtil.MOBILE_BREAKPOINT,async preloadImage(e){const t=new Promise(((t,r)=>{const n=new Image;n.onload=t,n.onerror=r,n.crossOrigin="anonymous",n.src=e}));return Promise.race([t,CoreUtil.wait(3e3)])},getErrorMessage:e=>e instanceof Error?e.message:"Unknown Error",debounce(e,t=500){let r;return(...n)=>{r&&clearTimeout(r),r=setTimeout((function(){e(...n)}),t)}},handleMobileLinking(e,t="_self"){const{walletConnectUri:r}=OptionsCtrl.state,{mobile:n,name:o}=e,i=null==n?void 0:n.native,s=null==n?void 0:n.universal;UiUtil.setRecentWallet(e),r&&function(e){if(i){const r=CoreUtil.formatNativeUrl(i,e,o);CoreUtil.openHref(r,t)}else if(s){const r=CoreUtil.formatUniversalUrl(s,e,o);CoreUtil.openHref(r,t)}}(r)},handleAndroidLinking(){const{walletConnectUri:e}=OptionsCtrl.state;e&&(CoreUtil.setWalletConnectAndroidDeepLink(e),CoreUtil.openHref(e,CoreUtil.isTelegram()?"_blank":"_self"))},async handleUriCopy(){const{walletConnectUri:e}=OptionsCtrl.state;if(e)try{await navigator.clipboard.writeText(e),ToastCtrl.openToast("Link copied","success")}catch(t){ToastCtrl.openToast("Failed to copy","error")}},getCustomImageUrls(){const{walletImages:e}=ConfigCtrl.state,t=Object.values(null!=e?e:{});return Object.values(t)},truncate:(e,t=8)=>e.length<=t?e:`${e.substring(0,4)}...${e.substring(e.length-4)}`,setRecentWallet(e){try{localStorage.setItem(UiUtil.WCM_RECENT_WALLET_DATA,JSON.stringify(e))}catch(t){console.info("Unable to set recent wallet")}},getRecentWallet(){try{const e=localStorage.getItem(UiUtil.WCM_RECENT_WALLET_DATA);if(e){return JSON.parse(e)}return}catch(e){console.info("Unable to get recent wallet")}},caseSafeIncludes:(e,t)=>e.toUpperCase().includes(t.toUpperCase()),openWalletExplorerUrl(){CoreUtil.openHref(UiUtil.EXPLORER_WALLET_URL,"_blank")},getCachedRouterWalletPlatforms(){const{desktop:e,mobile:t}=CoreUtil.getWalletRouterData(),r=Boolean(null==e?void 0:e.native),n=Boolean(null==e?void 0:e.universal);return{isDesktop:r,isMobile:Boolean(null==t?void 0:t.native)||Boolean(null==t?void 0:t.universal),isWeb:n}},goToConnectingView(e){RouterCtrl.setData({Wallet:e});const t=CoreUtil.isMobile(),{isDesktop:r,isWeb:n,isMobile:o}=UiUtil.getCachedRouterWalletPlatforms();t?o?(RouterCtrl.push("MobileConnecting"),!CoreUtil.isAndroid()&&CoreUtil.isTelegram()&&this.handleMobileLinking(e,"_blank")):n?RouterCtrl.push("WebConnecting"):RouterCtrl.push("InstallWallet"):r?RouterCtrl.push("DesktopConnecting"):n?RouterCtrl.push("WebConnecting"):o?RouterCtrl.push("MobileQrcodeConnecting"):RouterCtrl.push("InstallWallet")}},styles$m=i$3`.wcm-router{overflow:hidden;will-change:transform}.wcm-content{display:flex;flex-direction:column}`;var __defProp$q=Object.defineProperty,__getOwnPropDesc$q=Object.getOwnPropertyDescriptor,__decorateClass$q=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$q(t,r):t,s=e.length-1;s>=0;s--)(o=e[s])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$q(t,r,i),i};let WcmModalRouter=class extends s{constructor(){super(),this.view=RouterCtrl.state.view,this.prevView=RouterCtrl.state.view,this.unsubscribe=void 0,this.oldHeight="0px",this.resizeObserver=void 0,this.unsubscribe=RouterCtrl.subscribe((e=>{this.view!==e.view&&this.onChangeRoute()}))}firstUpdated(){this.resizeObserver=new ResizeObserver((([e])=>{const t=`${e.contentRect.height}px`;"0px"!==this.oldHeight&&animate(this.routerEl,{height:[this.oldHeight,t]},{duration:.2}),this.oldHeight=t})),this.resizeObserver.observe(this.contentEl)}disconnectedCallback(){var e,t;null==(e=this.unsubscribe)||e.call(this),null==(t=this.resizeObserver)||t.disconnect()}get routerEl(){return UiUtil.getShadowRootElement(this,".wcm-router")}get contentEl(){return UiUtil.getShadowRootElement(this,".wcm-content")}viewTemplate(){switch(this.view){case"ConnectWallet":return x``;case"DesktopConnecting":return x``;case"MobileConnecting":return x``;case"WebConnecting":return x``;case"MobileQrcodeConnecting":return x``;case"WalletExplorer":return x``;case"Qrcode":return x``;case"InstallWallet":return x``;default:return x`
Not Found
`}}async onChangeRoute(){await animate(this.routerEl,{opacity:[1,0],scale:[1,1.02]},{duration:.15,delay:.1}).finished,this.view=RouterCtrl.state.view,animate(this.routerEl,{opacity:[0,1],scale:[.99,1]},{duration:.37,delay:.05})}render(){return x`
${this.viewTemplate()}
`}};WcmModalRouter.styles=[ThemeUtil.globalCss,styles$m],__decorateClass$q([t$1()],WcmModalRouter.prototype,"view",2),__decorateClass$q([t$1()],WcmModalRouter.prototype,"prevView",2),WcmModalRouter=__decorateClass$q([e$2("wcm-modal-router")],WcmModalRouter);const styles$l=i$3`div{height:36px;width:max-content;display:flex;justify-content:center;align-items:center;padding:9px 15px 11px;position:absolute;top:12px;box-shadow:0 6px 14px -6px rgba(10,16,31,.3),0 10px 32px -4px rgba(10,16,31,.15);z-index:2;left:50%;transform:translateX(-50%);pointer-events:none;backdrop-filter:blur(20px) saturate(1.8);-webkit-backdrop-filter:blur(20px) saturate(1.8);border-radius:var(--wcm-notification-border-radius);border:1px solid var(--wcm-color-overlay);background-color:var(--wcm-color-overlay)}svg{margin-right:5px}@-moz-document url-prefix(){div{background-color:var(--wcm-color-bg-3)}}.wcm-success path{fill:var(--wcm-accent-color)}.wcm-error path{fill:var(--wcm-error-color)}`;var __defProp$p=Object.defineProperty,__getOwnPropDesc$p=Object.getOwnPropertyDescriptor,__decorateClass$p=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$p(t,r):t,s=e.length-1;s>=0;s--)(o=e[s])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$p(t,r,i),i};let WcmModalToast=class extends s{constructor(){super(),this.open=!1,this.unsubscribe=void 0,this.timeout=void 0,this.unsubscribe=ToastCtrl.subscribe((e=>{e.open?(this.open=!0,this.timeout=setTimeout((()=>ToastCtrl.closeToast()),2200)):(this.open=!1,clearTimeout(this.timeout))}))}disconnectedCallback(){var e;null==(e=this.unsubscribe)||e.call(this),clearTimeout(this.timeout),ToastCtrl.closeToast()}render(){const{message:e,variant:t}=ToastCtrl.state,r={"wcm-success":"success"===t,"wcm-error":"error"===t};return this.open?x`
${"success"===t?SvgUtil.CHECKMARK_ICON:null} ${"error"===t?SvgUtil.CROSS_ICON:null}${e}
`:null}};WcmModalToast.styles=[ThemeUtil.globalCss,styles$l],__decorateClass$p([t$1()],WcmModalToast.prototype,"open",2),WcmModalToast=__decorateClass$p([e$2("wcm-modal-toast")],WcmModalToast);const CONNECTING_ERROR_MARGIN=.1,CIRCLE_SIZE_MODIFIER=2.5,QRCODE_MATRIX_MARGIN=7;function isAdjecentDots(e,t,r){if(e===t)return!1;return(e-t<0?t-e:e-t)<=r+CONNECTING_ERROR_MARGIN}function getMatrix(e,t){const r=Array.prototype.slice.call(browser.create(e,{errorCorrectionLevel:t}).modules.data,0),n=Math.sqrt(r.length);return r.reduce(((e,t,r)=>(r%n==0?e.push([t]):e[e.length-1].push(t))&&e),[])}const QrCodeUtil={generate(e,t,r){const n="#141414",o=[],i=getMatrix(e,"Q"),s=t/i.length,a=[{x:0,y:0},{x:1,y:0},{x:0,y:1}];a.forEach((({x:e,y:t})=>{const r=(i.length-QRCODE_MATRIX_MARGIN)*s*e,c=(i.length-QRCODE_MATRIX_MARGIN)*s*t;for(let i=0;i`)}}));const c=Math.floor((r+25)/s),u=i.length/2-c/2,l=i.length/2+c/2-1,d=[];i.forEach(((e,t)=>{e.forEach(((e,r)=>{if(i[t][r]&&!(ti.length-(QRCODE_MATRIX_MARGIN+1)&&ri.length-(QRCODE_MATRIX_MARGIN+1)||t>u&&tu&&r{h[e]?h[e].push(t):h[e]=[t]})),Object.entries(h).map((([e,t])=>{const r=t.filter((e=>t.every((t=>!isAdjecentDots(e,t,s)))));return[Number(e),r]})).forEach((([e,t])=>{t.forEach((t=>{o.push(b``)}))})),Object.entries(h).filter((([e,t])=>t.length>1)).map((([e,t])=>{const r=t.filter((e=>t.some((t=>isAdjecentDots(e,t,s)))));return[Number(e),r]})).map((([e,t])=>{t.sort(((e,t)=>ee.some((e=>isAdjecentDots(n,e,s)))));e?e.push(n):r.push([n])}return[e,r.map((e=>[e[0],e[e.length-1]]))]})).forEach((([e,t])=>{t.forEach((([t,r])=>{o.push(b``)}))})),o}},styles$k=i$3`@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}div{position:relative;user-select:none;display:block;overflow:hidden;aspect-ratio:1/1;animation:fadeIn ease .2s}.wcm-dark{background-color:#fff;border-radius:var(--wcm-container-border-radius);padding:18px;box-shadow:0 2px 5px #000}svg:first-child,wcm-wallet-image{position:absolute;top:50%;left:50%;transform:translateY(-50%) translateX(-50%)}wcm-wallet-image{transform:translateY(-50%) translateX(-50%)}wcm-wallet-image{width:25%;height:25%;border-radius:var(--wcm-wallet-icon-border-radius)}svg:first-child{transform:translateY(-50%) translateX(-50%) scale(.9)}svg:first-child path:first-child{fill:var(--wcm-accent-color)}svg:first-child path:last-child{stroke:var(--wcm-color-overlay)}`;var __defProp$o=Object.defineProperty,__getOwnPropDesc$o=Object.getOwnPropertyDescriptor,__decorateClass$o=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$o(t,r):t,s=e.length-1;s>=0;s--)(o=e[s])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$o(t,r,i),i};let WcmQrCode=class extends s{constructor(){super(...arguments),this.uri="",this.size=0,this.imageId=void 0,this.walletId=void 0,this.imageUrl=void 0}svgTemplate(){const e="light"===ThemeCtrl.state.themeMode?this.size:this.size-36;return b`${QrCodeUtil.generate(this.uri,e,e/4)}`}render(){const e={"wcm-dark":"dark"===ThemeCtrl.state.themeMode};return x`
${this.walletId||this.imageUrl?x``:SvgUtil.WALLET_CONNECT_ICON_COLORED} ${this.svgTemplate()}
`}};WcmQrCode.styles=[ThemeUtil.globalCss,styles$k],__decorateClass$o([n$1()],WcmQrCode.prototype,"uri",2),__decorateClass$o([n$1({type:Number})],WcmQrCode.prototype,"size",2),__decorateClass$o([n$1()],WcmQrCode.prototype,"imageId",2),__decorateClass$o([n$1()],WcmQrCode.prototype,"walletId",2),__decorateClass$o([n$1()],WcmQrCode.prototype,"imageUrl",2),WcmQrCode=__decorateClass$o([e$2("wcm-qrcode")],WcmQrCode);const styles$j=i$3`:host{position:relative;height:28px;width:80%}input{width:100%;height:100%;line-height:28px!important;border-radius:var(--wcm-input-border-radius);font-style:normal;font-family:-apple-system,system-ui,BlinkMacSystemFont,'Segoe UI',Roboto,Ubuntu,'Helvetica Neue',sans-serif;font-feature-settings:'case' on;font-weight:500;font-size:16px;letter-spacing:-.03em;padding:0 10px 0 34px;transition:.2s all ease;color:var(--wcm-color-fg-1);background-color:var(--wcm-color-bg-3);box-shadow:inset 0 0 0 1px var(--wcm-color-overlay);caret-color:var(--wcm-accent-color)}input::placeholder{color:var(--wcm-color-fg-2)}svg{left:10px;top:4px;pointer-events:none;position:absolute;width:20px;height:20px}input:focus-within{box-shadow:inset 0 0 0 1px var(--wcm-accent-color)}path{fill:var(--wcm-color-fg-2)}`;var __defProp$n=Object.defineProperty,__getOwnPropDesc$n=Object.getOwnPropertyDescriptor,__decorateClass$n=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$n(t,r):t,s=e.length-1;s>=0;s--)(o=e[s])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$n(t,r,i),i};let WcmSearchInput=class extends s{constructor(){super(...arguments),this.onChange=()=>null}render(){return x` ${SvgUtil.SEARCH_ICON}`}};WcmSearchInput.styles=[ThemeUtil.globalCss,styles$j],__decorateClass$n([n$1()],WcmSearchInput.prototype,"onChange",2),WcmSearchInput=__decorateClass$n([e$2("wcm-search-input")],WcmSearchInput);const styles$i=i$3`@keyframes rotate{100%{transform:rotate(360deg)}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}100%{stroke-dasharray:90,150;stroke-dashoffset:-124}}svg{animation:rotate 2s linear infinite;display:flex;justify-content:center;align-items:center}svg circle{stroke-linecap:round;animation:dash 1.5s ease infinite;stroke:var(--wcm-accent-color)}`;var __defProp$m=Object.defineProperty,__getOwnPropDesc$m=Object.getOwnPropertyDescriptor,__decorateClass$m=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$m(t,r):t,s=e.length-1;s>=0;s--)(o=e[s])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$m(t,r,i),i};let WcmSpinner=class extends s{render(){return x``}};WcmSpinner.styles=[ThemeUtil.globalCss,styles$i],WcmSpinner=__decorateClass$m([e$2("wcm-spinner")],WcmSpinner);const styles$h=i$3`span{font-style:normal;font-family:var(--wcm-font-family);font-feature-settings:var(--wcm-font-feature-settings)}.wcm-xsmall-bold{font-family:var(--wcm-text-xsmall-bold-font-family);font-weight:var(--wcm-text-xsmall-bold-weight);font-size:var(--wcm-text-xsmall-bold-size);line-height:var(--wcm-text-xsmall-bold-line-height);letter-spacing:var(--wcm-text-xsmall-bold-letter-spacing);text-transform:var(--wcm-text-xsmall-bold-text-transform)}.wcm-xsmall-regular{font-family:var(--wcm-text-xsmall-regular-font-family);font-weight:var(--wcm-text-xsmall-regular-weight);font-size:var(--wcm-text-xsmall-regular-size);line-height:var(--wcm-text-xsmall-regular-line-height);letter-spacing:var(--wcm-text-xsmall-regular-letter-spacing);text-transform:var(--wcm-text-xsmall-regular-text-transform)}.wcm-small-thin{font-family:var(--wcm-text-small-thin-font-family);font-weight:var(--wcm-text-small-thin-weight);font-size:var(--wcm-text-small-thin-size);line-height:var(--wcm-text-small-thin-line-height);letter-spacing:var(--wcm-text-small-thin-letter-spacing);text-transform:var(--wcm-text-small-thin-text-transform)}.wcm-small-regular{font-family:var(--wcm-text-small-regular-font-family);font-weight:var(--wcm-text-small-regular-weight);font-size:var(--wcm-text-small-regular-size);line-height:var(--wcm-text-small-regular-line-height);letter-spacing:var(--wcm-text-small-regular-letter-spacing);text-transform:var(--wcm-text-small-regular-text-transform)}.wcm-medium-regular{font-family:var(--wcm-text-medium-regular-font-family);font-weight:var(--wcm-text-medium-regular-weight);font-size:var(--wcm-text-medium-regular-size);line-height:var(--wcm-text-medium-regular-line-height);letter-spacing:var(--wcm-text-medium-regular-letter-spacing);text-transform:var(--wcm-text-medium-regular-text-transform)}.wcm-big-bold{font-family:var(--wcm-text-big-bold-font-family);font-weight:var(--wcm-text-big-bold-weight);font-size:var(--wcm-text-big-bold-size);line-height:var(--wcm-text-big-bold-line-height);letter-spacing:var(--wcm-text-big-bold-letter-spacing);text-transform:var(--wcm-text-big-bold-text-transform)}:host(*){color:var(--wcm-color-fg-1)}.wcm-color-primary{color:var(--wcm-color-fg-1)}.wcm-color-secondary{color:var(--wcm-color-fg-2)}.wcm-color-tertiary{color:var(--wcm-color-fg-3)}.wcm-color-inverse{color:var(--wcm-accent-fill-color)}.wcm-color-accnt{color:var(--wcm-accent-color)}.wcm-color-error{color:var(--wcm-error-color)}`;var __defProp$l=Object.defineProperty,__getOwnPropDesc$l=Object.getOwnPropertyDescriptor,__decorateClass$l=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$l(t,r):t,s=e.length-1;s>=0;s--)(o=e[s])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$l(t,r,i),i};let WcmText=class extends s{constructor(){super(...arguments),this.variant="medium-regular",this.color="primary"}render(){const e={"wcm-big-bold":"big-bold"===this.variant,"wcm-medium-regular":"medium-regular"===this.variant,"wcm-small-regular":"small-regular"===this.variant,"wcm-small-thin":"small-thin"===this.variant,"wcm-xsmall-regular":"xsmall-regular"===this.variant,"wcm-xsmall-bold":"xsmall-bold"===this.variant,"wcm-color-primary":"primary"===this.color,"wcm-color-secondary":"secondary"===this.color,"wcm-color-tertiary":"tertiary"===this.color,"wcm-color-inverse":"inverse"===this.color,"wcm-color-accnt":"accent"===this.color,"wcm-color-error":"error"===this.color};return x``}};WcmText.styles=[ThemeUtil.globalCss,styles$h],__decorateClass$l([n$1()],WcmText.prototype,"variant",2),__decorateClass$l([n$1()],WcmText.prototype,"color",2),WcmText=__decorateClass$l([e$2("wcm-text")],WcmText);const styles$g=i$3`button{width:100%;height:100%;border-radius:var(--wcm-button-hover-highlight-border-radius);display:flex;align-items:flex-start}button:active{background-color:var(--wcm-color-overlay)}@media(hover:hover){button:hover{background-color:var(--wcm-color-overlay)}}button>div{width:80px;padding:5px 0;display:flex;flex-direction:column;align-items:center}wcm-text{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center}wcm-wallet-image{height:60px;width:60px;transition:all .2s ease;border-radius:var(--wcm-wallet-icon-border-radius);margin-bottom:5px}.wcm-sublabel{margin-top:2px}`;var __defProp$k=Object.defineProperty,__getOwnPropDesc$k=Object.getOwnPropertyDescriptor,__decorateClass$k=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$k(t,r):t,s=e.length-1;s>=0;s--)(o=e[s])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$k(t,r,i),i};let WcmWalletButton=class extends s{constructor(){super(...arguments),this.onClick=()=>null,this.name="",this.walletId="",this.label=void 0,this.imageId=void 0,this.installed=!1,this.recent=!1}sublabelTemplate(){return this.recent?x`RECENT`:this.installed?x`INSTALLED`:null}handleClick(){EventsCtrl.click({name:"WALLET_BUTTON",walletId:this.walletId}),this.onClick()}render(){var e;return x``}};WcmWalletButton.styles=[ThemeUtil.globalCss,styles$g],__decorateClass$k([n$1()],WcmWalletButton.prototype,"onClick",2),__decorateClass$k([n$1()],WcmWalletButton.prototype,"name",2),__decorateClass$k([n$1()],WcmWalletButton.prototype,"walletId",2),__decorateClass$k([n$1()],WcmWalletButton.prototype,"label",2),__decorateClass$k([n$1()],WcmWalletButton.prototype,"imageId",2),__decorateClass$k([n$1({type:Boolean})],WcmWalletButton.prototype,"installed",2),__decorateClass$k([n$1({type:Boolean})],WcmWalletButton.prototype,"recent",2),WcmWalletButton=__decorateClass$k([e$2("wcm-wallet-button")],WcmWalletButton);const styles$f=i$3`:host{display:block}div{overflow:hidden;position:relative;border-radius:inherit;width:100%;height:100%;background-color:var(--wcm-color-overlay)}svg{position:relative;width:100%;height:100%}div::after{content:'';position:absolute;top:0;bottom:0;left:0;right:0;border-radius:inherit;border:1px solid var(--wcm-color-overlay)}div img{width:100%;height:100%;object-fit:cover;object-position:center}#wallet-placeholder-fill{fill:var(--wcm-color-bg-3)}#wallet-placeholder-dash{stroke:var(--wcm-color-overlay)}`;var __defProp$j=Object.defineProperty,__getOwnPropDesc$j=Object.getOwnPropertyDescriptor,__decorateClass$j=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$j(t,r):t,s=e.length-1;s>=0;s--)(o=e[s])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$j(t,r,i),i};let WcmWalletImage=class extends s{constructor(){super(...arguments),this.walletId="",this.imageId=void 0,this.imageUrl=void 0}render(){var e;const t=(null==(e=this.imageUrl)?void 0:e.length)?this.imageUrl:UiUtil.getWalletIcon({id:this.walletId,image_id:this.imageId});return x`${t.length?x`
${this.id}
`:SvgUtil.WALLET_PLACEHOLDER}`}};WcmWalletImage.styles=[ThemeUtil.globalCss,styles$f],__decorateClass$j([n$1()],WcmWalletImage.prototype,"walletId",2),__decorateClass$j([n$1()],WcmWalletImage.prototype,"imageId",2),__decorateClass$j([n$1()],WcmWalletImage.prototype,"imageUrl",2),WcmWalletImage=__decorateClass$j([e$2("wcm-wallet-image")],WcmWalletImage);var __defProp$i=Object.defineProperty,__getOwnPropDesc$i=Object.getOwnPropertyDescriptor,__decorateClass$i=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$i(t,r):t,s=e.length-1;s>=0;s--)(o=e[s])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$i(t,r,i),i};let WcmExplorerContext=class extends s{constructor(){super(),this.preload=!0,this.preloadData()}async loadImages(e){try{(null==e?void 0:e.length)&&await Promise.all(e.map((async e=>UiUtil.preloadImage(e))))}catch(t){console.info("Unsuccessful attempt at preloading some images",e)}}async preloadListings(){if(ConfigCtrl.state.enableExplorer){await ExplorerCtrl.getRecomendedWallets(),OptionsCtrl.setIsDataLoaded(!0);const{recomendedWallets:e}=ExplorerCtrl.state,t=e.map((e=>UiUtil.getWalletIcon(e)));await this.loadImages(t)}else OptionsCtrl.setIsDataLoaded(!0)}async preloadCustomImages(){const e=UiUtil.getCustomImageUrls();await this.loadImages(e)}async preloadData(){try{this.preload&&(this.preload=!1,await Promise.all([this.preloadListings(),this.preloadCustomImages()]))}catch(e){console.error(e),ToastCtrl.openToast("Failed preloading","error")}}};__decorateClass$i([t$1()],WcmExplorerContext.prototype,"preload",2),WcmExplorerContext=__decorateClass$i([e$2("wcm-explorer-context")],WcmExplorerContext);var __defProp$h=Object.defineProperty,__getOwnPropDesc$h=Object.getOwnPropertyDescriptor,__decorateClass$h=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$h(t,r):t,s=e.length-1;s>=0;s--)(o=e[s])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$h(t,r,i),i};let WcmThemeContext=class extends s{constructor(){super(),this.unsubscribeTheme=void 0,ThemeUtil.setTheme(),this.unsubscribeTheme=ThemeCtrl.subscribe(ThemeUtil.setTheme)}disconnectedCallback(){var e;null==(e=this.unsubscribeTheme)||e.call(this)}};WcmThemeContext=__decorateClass$h([e$2("wcm-theme-context")],WcmThemeContext);const styles$e=i$3`@keyframes scroll{0%{transform:translate3d(0,0,0)}100%{transform:translate3d(calc(-70px * 9),0,0)}}.wcm-slider{position:relative;overflow-x:hidden;padding:10px 0;margin:0 -20px;width:calc(100% + 40px)}.wcm-track{display:flex;width:calc(70px * 18);animation:scroll 20s linear infinite;opacity:.7}.wcm-track svg{margin:0 5px}wcm-wallet-image{width:60px;height:60px;margin:0 5px;border-radius:var(--wcm-wallet-icon-border-radius)}.wcm-grid{display:grid;grid-template-columns:repeat(4,80px);justify-content:space-between}.wcm-title{display:flex;align-items:center;margin-bottom:10px}.wcm-title svg{margin-right:6px}.wcm-title path{fill:var(--wcm-accent-color)}wcm-modal-footer .wcm-title{padding:0 10px}wcm-button-big{position:absolute;top:50%;left:50%;transform:translateY(-50%) translateX(-50%);filter:drop-shadow(0 0 17px var(--wcm-color-bg-1))}wcm-info-footer{flex-direction:column;align-items:center;display:flex;width:100%;padding:5px 0}wcm-info-footer wcm-text{text-align:center;margin-bottom:15px}#wallet-placeholder-fill{fill:var(--wcm-color-bg-3)}#wallet-placeholder-dash{stroke:var(--wcm-color-overlay)}`;var __defProp$g=Object.defineProperty,__getOwnPropDesc$g=Object.getOwnPropertyDescriptor,__decorateClass$g=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$g(t,r):t,s=e.length-1;s>=0;s--)(o=e[s])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$g(t,r,i),i};let WcmAndroidWalletSelection=class extends s{onGoToQrcode(){RouterCtrl.push("Qrcode")}render(){const{recomendedWallets:e}=ExplorerCtrl.state,t=[...e,...e],r=2*CoreUtil.RECOMMENDED_WALLET_AMOUNT;return x`
${SvgUtil.MOBILE_ICON}WalletConnect
${[...Array(r)].map(((e,r)=>{const n=t[r%t.length];return n?x``:SvgUtil.WALLET_PLACEHOLDER}))}
Select Wallet
Choose WalletConnect to see supported apps on your device`}};WcmAndroidWalletSelection.styles=[ThemeUtil.globalCss,styles$e],WcmAndroidWalletSelection=__decorateClass$g([e$2("wcm-android-wallet-selection")],WcmAndroidWalletSelection);const styles$d=i$3`@keyframes loading{to{stroke-dashoffset:0}}@keyframes shake{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(1px,0,0)}30%,50%,70%{transform:translate3d(-2px,0,0)}40%,60%{transform:translate3d(2px,0,0)}}:host{display:flex;flex-direction:column;align-items:center}div{position:relative;width:110px;height:110px;display:flex;justify-content:center;align-items:center;margin:40px 0 20px 0;transform:translate3d(0,0,0)}svg{position:absolute;width:110px;height:110px;fill:none;stroke:transparent;stroke-linecap:round;stroke-width:2px;top:0;left:0}use{stroke:var(--wcm-accent-color);animation:loading 1s linear infinite}wcm-wallet-image{border-radius:var(--wcm-wallet-icon-large-border-radius);width:90px;height:90px}wcm-text{margin-bottom:40px}.wcm-error svg{stroke:var(--wcm-error-color)}.wcm-error use{display:none}.wcm-error{animation:shake .4s cubic-bezier(.36,.07,.19,.97) both}.wcm-stale svg,.wcm-stale use{display:none}`;var __defProp$f=Object.defineProperty,__getOwnPropDesc$f=Object.getOwnPropertyDescriptor,__decorateClass$f=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$f(t,r):t,s=e.length-1;s>=0;s--)(o=e[s])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$f(t,r,i),i};let WcmConnectorWaiting=class extends s{constructor(){super(...arguments),this.walletId=void 0,this.imageId=void 0,this.isError=!1,this.isStale=!1,this.label=""}svgLoaderTemplate(){var e,t;const r=null!=(t=null==(e=ThemeCtrl.state.themeVariables)?void 0:e["--wcm-wallet-icon-large-border-radius"])?t:ThemeUtil.getPreset("--wcm-wallet-icon-large-border-radius");let n=0;n=r.includes("%")?.88*parseInt(r,10):parseInt(r,10),n*=1.17;return x``}render(){const e={"wcm-error":this.isError,"wcm-stale":this.isStale};return x`
${this.svgLoaderTemplate()}
${this.isError?"Connection declined":this.label}`}};WcmConnectorWaiting.styles=[ThemeUtil.globalCss,styles$d],__decorateClass$f([n$1()],WcmConnectorWaiting.prototype,"walletId",2),__decorateClass$f([n$1()],WcmConnectorWaiting.prototype,"imageId",2),__decorateClass$f([n$1({type:Boolean})],WcmConnectorWaiting.prototype,"isError",2),__decorateClass$f([n$1({type:Boolean})],WcmConnectorWaiting.prototype,"isStale",2),__decorateClass$f([n$1()],WcmConnectorWaiting.prototype,"label",2),WcmConnectorWaiting=__decorateClass$f([e$2("wcm-connector-waiting")],WcmConnectorWaiting);const DataUtil={manualWallets(){var e,t;const{mobileWallets:r,desktopWallets:n}=ConfigCtrl.state,o=null==(e=DataUtil.recentWallet())?void 0:e.id,i=CoreUtil.isMobile()?r:n,s=null==i?void 0:i.filter((e=>o!==e.id));return null!=(t=CoreUtil.isMobile()?null==s?void 0:s.map((({id:e,name:t,links:r})=>({id:e,name:t,mobile:r,links:r}))):null==s?void 0:s.map((({id:e,name:t,links:r})=>({id:e,name:t,desktop:r,links:r}))))?t:[]},recentWallet:()=>UiUtil.getRecentWallet(),recomendedWallets(e=!1){var t;const r=e||null==(t=DataUtil.recentWallet())?void 0:t.id,{recomendedWallets:n}=ExplorerCtrl.state;return n.filter((e=>r!==e.id))}},TemplateUtil={onConnecting(e){UiUtil.goToConnectingView(e)},manualWalletsTemplate(){return DataUtil.manualWallets().map((e=>x``))},recomendedWalletsTemplate(e=!1){return DataUtil.recomendedWallets(e).map((e=>x``))},recentWalletTemplate(){const e=DataUtil.recentWallet();if(e)return x``}},styles$c=i$3`.wcm-grid{display:grid;grid-template-columns:repeat(4,80px);justify-content:space-between}.wcm-desktop-title,.wcm-mobile-title{display:flex;align-items:center}.wcm-mobile-title{justify-content:space-between;margin-bottom:20px;margin-top:-10px}.wcm-desktop-title{margin-bottom:10px;padding:0 10px}.wcm-subtitle{display:flex;align-items:center}.wcm-subtitle:last-child path{fill:var(--wcm-color-fg-3)}.wcm-desktop-title svg,.wcm-mobile-title svg{margin-right:6px}.wcm-desktop-title path,.wcm-mobile-title path{fill:var(--wcm-accent-color)}`;var __defProp$e=Object.defineProperty,__getOwnPropDesc$e=Object.getOwnPropertyDescriptor,__decorateClass$e=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$e(t,r):t,s=e.length-1;s>=0;s--)(o=e[s])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$e(t,r,i),i};let WcmDesktopWalletSelection=class extends s{render(){const{explorerExcludedWalletIds:e,enableExplorer:t}=ConfigCtrl.state,r="ALL"!==e&&t,n=TemplateUtil.manualWalletsTemplate(),o=TemplateUtil.recomendedWalletsTemplate();let i=[TemplateUtil.recentWalletTemplate(),...n,...o];i=i.filter(Boolean);const s=i.length>4||r;let a=[];a=s?i.slice(0,3):i;const c=Boolean(a.length);return x`
${SvgUtil.MOBILE_ICON}Mobile
${SvgUtil.SCAN_ICON}Scan with your wallet
${c?x`
${SvgUtil.DESKTOP_ICON}Desktop
${a} ${s?x``:null}
`:null}`}};WcmDesktopWalletSelection.styles=[ThemeUtil.globalCss,styles$c],WcmDesktopWalletSelection=__decorateClass$e([e$2("wcm-desktop-wallet-selection")],WcmDesktopWalletSelection);const styles$b=i$3`div{background-color:var(--wcm-color-bg-2);padding:10px 20px 15px 20px;border-top:1px solid var(--wcm-color-bg-3);text-align:center}a{color:var(--wcm-accent-color);text-decoration:none;transition:opacity .2s ease-in-out;display:inline}a:active{opacity:.8}@media(hover:hover){a:hover{opacity:.8}}`;var __defProp$d=Object.defineProperty,__getOwnPropDesc$d=Object.getOwnPropertyDescriptor,__decorateClass$d=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$d(t,r):t,s=e.length-1;s>=0;s--)(o=e[s])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$d(t,r,i),i};let WcmLegalNotice=class extends s{render(){const{termsOfServiceUrl:e,privacyPolicyUrl:t}=ConfigCtrl.state;return(null!=e?e:t)?x`
By connecting your wallet to this app, you agree to the app's ${e?x`Terms of Service`:null} ${e&&t?"and":null} ${t?x`Privacy Policy`:null}
`:null}};WcmLegalNotice.styles=[ThemeUtil.globalCss,styles$b],WcmLegalNotice=__decorateClass$d([e$2("wcm-legal-notice")],WcmLegalNotice);const styles$a=i$3`div{display:grid;grid-template-columns:repeat(4,80px);margin:0 -10px;justify-content:space-between;row-gap:10px}`;var __defProp$c=Object.defineProperty,__getOwnPropDesc$c=Object.getOwnPropertyDescriptor,__decorateClass$c=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$c(t,r):t,s=e.length-1;s>=0;s--)(o=e[s])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$c(t,r,i),i};let WcmMobileWalletSelection=class extends s{onQrcode(){RouterCtrl.push("Qrcode")}render(){const{explorerExcludedWalletIds:e,enableExplorer:t}=ConfigCtrl.state,r="ALL"!==e&&t,n=TemplateUtil.manualWalletsTemplate(),o=TemplateUtil.recomendedWalletsTemplate();let i=[TemplateUtil.recentWalletTemplate(),...n,...o];i=i.filter(Boolean);const s=i.length>8||r;let a=[];a=s?i.slice(0,7):i;const c=Boolean(a.length);return x`${c?x`
${a} ${s?x``:null}
`:null}`}};WcmMobileWalletSelection.styles=[ThemeUtil.globalCss,styles$a],WcmMobileWalletSelection=__decorateClass$c([e$2("wcm-mobile-wallet-selection")],WcmMobileWalletSelection);const styles$9=i$3`:host{all:initial}.wcm-overlay{top:0;bottom:0;left:0;right:0;position:fixed;z-index:var(--wcm-z-index);overflow:hidden;display:flex;justify-content:center;align-items:center;opacity:0;pointer-events:none;background-color:var(--wcm-overlay-background-color);backdrop-filter:var(--wcm-overlay-backdrop-filter)}@media(max-height:720px) and (orientation:landscape){.wcm-overlay{overflow:scroll;align-items:flex-start;padding:20px 0}}.wcm-active{pointer-events:auto}.wcm-container{position:relative;max-width:360px;width:100%;outline:0;border-radius:var(--wcm-background-border-radius) var(--wcm-background-border-radius) var(--wcm-container-border-radius) var(--wcm-container-border-radius);border:1px solid var(--wcm-color-overlay);overflow:hidden}.wcm-card{width:100%;position:relative;border-radius:var(--wcm-container-border-radius);overflow:hidden;box-shadow:0 6px 14px -6px rgba(10,16,31,.12),0 10px 32px -4px rgba(10,16,31,.1),0 0 0 1px var(--wcm-color-overlay);background-color:var(--wcm-color-bg-1);color:var(--wcm-color-fg-1)}@media(max-width:600px){.wcm-container{max-width:440px;border-radius:var(--wcm-background-border-radius) var(--wcm-background-border-radius) 0 0}.wcm-card{border-radius:var(--wcm-container-border-radius) var(--wcm-container-border-radius) 0 0}.wcm-overlay{align-items:flex-end}}@media(max-width:440px){.wcm-container{border:0}}`;var __defProp$b=Object.defineProperty,__getOwnPropDesc$b=Object.getOwnPropertyDescriptor,__decorateClass$b=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$b(t,r):t,s=e.length-1;s>=0;s--)(o=e[s])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$b(t,r,i),i};let WcmModal=class extends s{constructor(){super(),this.open=!1,this.active=!1,this.unsubscribeModal=void 0,this.abortController=void 0,this.unsubscribeModal=ModalCtrl.subscribe((e=>{e.open?this.onOpenModalEvent():this.onCloseModalEvent()}))}disconnectedCallback(){var e;null==(e=this.unsubscribeModal)||e.call(this)}get overlayEl(){return UiUtil.getShadowRootElement(this,".wcm-overlay")}get containerEl(){return UiUtil.getShadowRootElement(this,".wcm-container")}toggleBodyScroll(e){if(document.querySelector("body"))if(e){const e=document.getElementById("wcm-styles");null==e||e.remove()}else document.head.insertAdjacentHTML("beforeend",'')}onCloseModal(e){e.target===e.currentTarget&&ModalCtrl.close()}onOpenModalEvent(){this.toggleBodyScroll(!1),this.addKeyboardEvents(),this.open=!0,setTimeout((async()=>{const e=UiUtil.isMobileAnimation()?{y:["50vh","0vh"]}:{scale:[.98,1]};await Promise.all([animate(this.overlayEl,{opacity:[0,1]},{delay:.1,duration:.2}).finished,animate(this.containerEl,e,{delay:.1,duration:.2}).finished]),this.active=!0}),0)}async onCloseModalEvent(){this.toggleBodyScroll(!0),this.removeKeyboardEvents();const e=UiUtil.isMobileAnimation()?{y:["0vh","50vh"]}:{scale:[1,.98]};await Promise.all([animate(this.overlayEl,{opacity:[1,0]},{duration:.2}).finished,animate(this.containerEl,e,{duration:.2}).finished]),this.containerEl.removeAttribute("style"),this.active=!1,this.open=!1}addKeyboardEvents(){this.abortController=new AbortController,window.addEventListener("keydown",(e=>{var t;"Escape"===e.key?ModalCtrl.close():"Tab"===e.key&&((null==(t=e.target)?void 0:t.tagName.includes("wcm-"))||this.containerEl.focus())}),this.abortController),this.containerEl.focus()}removeKeyboardEvents(){var e;null==(e=this.abortController)||e.abort(),this.abortController=void 0}render(){const e={"wcm-overlay":!0,"wcm-active":this.active};return x`
${this.open?x`
`:null}
`}};WcmModal.styles=[ThemeUtil.globalCss,styles$9],__decorateClass$b([t$1()],WcmModal.prototype,"open",2),__decorateClass$b([t$1()],WcmModal.prototype,"active",2),WcmModal=__decorateClass$b([e$2("wcm-modal")],WcmModal);const styles$8=i$3`div{display:flex;margin-top:15px}slot{display:inline-block;margin:0 5px}wcm-button{margin:0 5px}`;var __defProp$a=Object.defineProperty,__getOwnPropDesc$a=Object.getOwnPropertyDescriptor,__decorateClass$a=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$a(t,r):t,s=e.length-1;s>=0;s--)(o=e[s])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$a(t,r,i),i};let WcmPlatformSelection=class extends s{constructor(){super(...arguments),this.isMobile=!1,this.isDesktop=!1,this.isWeb=!1,this.isRetry=!1}onMobile(){CoreUtil.isMobile()?RouterCtrl.replace("MobileConnecting"):RouterCtrl.replace("MobileQrcodeConnecting")}onDesktop(){RouterCtrl.replace("DesktopConnecting")}onWeb(){RouterCtrl.replace("WebConnecting")}render(){return x`
${this.isRetry?x``:null} ${this.isMobile?x`Mobile`:null} ${this.isDesktop?x`Desktop`:null} ${this.isWeb?x`Web`:null}
`}};WcmPlatformSelection.styles=[ThemeUtil.globalCss,styles$8],__decorateClass$a([n$1({type:Boolean})],WcmPlatformSelection.prototype,"isMobile",2),__decorateClass$a([n$1({type:Boolean})],WcmPlatformSelection.prototype,"isDesktop",2),__decorateClass$a([n$1({type:Boolean})],WcmPlatformSelection.prototype,"isWeb",2),__decorateClass$a([n$1({type:Boolean})],WcmPlatformSelection.prototype,"isRetry",2),WcmPlatformSelection=__decorateClass$a([e$2("wcm-platform-selection")],WcmPlatformSelection);const styles$7=i$3`button{display:flex;flex-direction:column;padding:5px 10px;border-radius:var(--wcm-button-hover-highlight-border-radius);height:100%;justify-content:flex-start}.wcm-icons{width:60px;height:60px;display:flex;flex-wrap:wrap;padding:7px;border-radius:var(--wcm-wallet-icon-border-radius);justify-content:space-between;align-items:center;margin-bottom:5px;background-color:var(--wcm-color-bg-2);box-shadow:inset 0 0 0 1px var(--wcm-color-overlay)}button:active{background-color:var(--wcm-color-overlay)}@media(hover:hover){button:hover{background-color:var(--wcm-color-overlay)}}.wcm-icons img{width:21px;height:21px;object-fit:cover;object-position:center;border-radius:calc(var(--wcm-wallet-icon-border-radius)/ 2);border:1px solid var(--wcm-color-overlay)}.wcm-icons svg{width:21px;height:21px}.wcm-icons img:nth-child(1),.wcm-icons img:nth-child(2),.wcm-icons svg:nth-child(1),.wcm-icons svg:nth-child(2){margin-bottom:4px}wcm-text{width:100%;text-align:center}#wallet-placeholder-fill{fill:var(--wcm-color-bg-3)}#wallet-placeholder-dash{stroke:var(--wcm-color-overlay)}`;var __defProp$9=Object.defineProperty,__getOwnPropDesc$9=Object.getOwnPropertyDescriptor,__decorateClass$9=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$9(t,r):t,s=e.length-1;s>=0;s--)(o=e[s])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$9(t,r,i),i};let WcmViewAllWalletsButton=class extends s{onClick(){RouterCtrl.push("WalletExplorer")}render(){const{recomendedWallets:e}=ExplorerCtrl.state,t=[...e,...DataUtil.manualWallets()].reverse().slice(0,4);return x``}};WcmViewAllWalletsButton.styles=[ThemeUtil.globalCss,styles$7],WcmViewAllWalletsButton=__decorateClass$9([e$2("wcm-view-all-wallets-button")],WcmViewAllWalletsButton);const styles$6=i$3`.wcm-qr-container{width:100%;display:flex;justify-content:center;align-items:center;aspect-ratio:1/1}`;var __defProp$8=Object.defineProperty,__getOwnPropDesc$8=Object.getOwnPropertyDescriptor,__decorateClass$8=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$8(t,r):t,s=e.length-1;s>=0;s--)(o=e[s])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$8(t,r,i),i};let WcmWalletConnectQr=class extends s{constructor(){super(),this.walletId="",this.imageId="",this.uri="",setTimeout((()=>{const{walletConnectUri:e}=OptionsCtrl.state;this.uri=e}),0)}get overlayEl(){return UiUtil.getShadowRootElement(this,".wcm-qr-container")}render(){return x`
${this.uri?x``:x``}
`}};WcmWalletConnectQr.styles=[ThemeUtil.globalCss,styles$6],__decorateClass$8([n$1()],WcmWalletConnectQr.prototype,"walletId",2),__decorateClass$8([n$1()],WcmWalletConnectQr.prototype,"imageId",2),__decorateClass$8([t$1()],WcmWalletConnectQr.prototype,"uri",2),WcmWalletConnectQr=__decorateClass$8([e$2("wcm-walletconnect-qr")],WcmWalletConnectQr);var __defProp$7=Object.defineProperty,__getOwnPropDesc$7=Object.getOwnPropertyDescriptor,__decorateClass$7=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$7(t,r):t,s=e.length-1;s>=0;s--)(o=e[s])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$7(t,r,i),i};let WcmConnectWalletView=class extends s{viewTemplate(){return CoreUtil.isAndroid()&&!CoreUtil.isTelegram()?x``:CoreUtil.isMobile()?x``:x``}render(){return x`${this.viewTemplate()}`}};WcmConnectWalletView.styles=[ThemeUtil.globalCss],WcmConnectWalletView=__decorateClass$7([e$2("wcm-connect-wallet-view")],WcmConnectWalletView);const styles$5=i$3`wcm-info-footer{flex-direction:column;align-items:center;display:flex;width:100%;padding:5px 0}wcm-text{text-align:center}`;var __defProp$6=Object.defineProperty,__getOwnPropDesc$6=Object.getOwnPropertyDescriptor,__decorateClass$6=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$6(t,r):t,s=e.length-1;s>=0;s--)(o=e[s])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$6(t,r,i),i};let WcmDesktopConnectingView=class extends s{constructor(){super(),this.isError=!1,this.openDesktopApp()}onFormatAndRedirect(e){const{desktop:t,name:r}=CoreUtil.getWalletRouterData(),n=null==t?void 0:t.native,o=null==t?void 0:t.universal;if(n){const t=CoreUtil.formatNativeUrl(n,e,r);CoreUtil.openHref(t,"_self")}else if(o){const t=CoreUtil.formatUniversalUrl(o,e,r);CoreUtil.openHref(t,"_blank")}}openDesktopApp(){const{walletConnectUri:e}=OptionsCtrl.state,t=CoreUtil.getWalletRouterData();UiUtil.setRecentWallet(t),e&&this.onFormatAndRedirect(e)}render(){const{name:e,id:t,image_id:r}=CoreUtil.getWalletRouterData(),{isMobile:n,isWeb:o}=UiUtil.getCachedRouterWalletPlatforms();return x`${`Connection can continue loading if ${e} is not installed on your device`}Retry`}};WcmDesktopConnectingView.styles=[ThemeUtil.globalCss,styles$5],__decorateClass$6([t$1()],WcmDesktopConnectingView.prototype,"isError",2),WcmDesktopConnectingView=__decorateClass$6([e$2("wcm-desktop-connecting-view")],WcmDesktopConnectingView);const styles$4=i$3`wcm-info-footer{flex-direction:column;align-items:center;display:flex;width:100%;padding:5px 0}wcm-text{text-align:center}wcm-button{margin-top:15px}`;var __defProp$5=Object.defineProperty,__getOwnPropDesc$5=Object.getOwnPropertyDescriptor,__decorateClass$5=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$5(t,r):t,s=e.length-1;s>=0;s--)(o=e[s])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$5(t,r,i),i};let WcmInstallWalletView=class extends s{onInstall(e){e&&CoreUtil.openHref(e,"_blank")}render(){const{name:e,id:t,image_id:r,homepage:n}=CoreUtil.getWalletRouterData();return x`${`Download ${e} to continue. If multiple browser extensions are installed, disable non ${e} ones and try again`}Download`}};WcmInstallWalletView.styles=[ThemeUtil.globalCss,styles$4],WcmInstallWalletView=__decorateClass$5([e$2("wcm-install-wallet-view")],WcmInstallWalletView);const styles$3=i$3`wcm-wallet-image{border-radius:var(--wcm-wallet-icon-large-border-radius);width:96px;height:96px;margin-bottom:20px}wcm-info-footer{display:flex;width:100%}.wcm-app-store{justify-content:space-between}.wcm-app-store wcm-wallet-image{margin-right:10px;margin-bottom:0;width:28px;height:28px;border-radius:var(--wcm-wallet-icon-small-border-radius)}.wcm-app-store div{display:flex;align-items:center}.wcm-app-store wcm-button{margin-right:-10px}.wcm-note{flex-direction:column;align-items:center;padding:5px 0}.wcm-note wcm-text{text-align:center}wcm-platform-selection{margin-top:-15px}.wcm-note wcm-text{margin-top:15px}.wcm-note wcm-text span{color:var(--wcm-accent-color)}`;var __defProp$4=Object.defineProperty,__getOwnPropDesc$4=Object.getOwnPropertyDescriptor,__decorateClass$4=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$4(t,r):t,s=e.length-1;s>=0;s--)(o=e[s])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$4(t,r,i),i};let WcmMobileConnectingView=class extends s{constructor(){super(),this.isError=!1,this.openMobileApp()}onFormatAndRedirect(e,t=!1){const{mobile:r,name:n}=CoreUtil.getWalletRouterData(),o=null==r?void 0:r.native,i=null==r?void 0:r.universal,s=CoreUtil.isTelegram()?"_blank":"_self";if(e=CoreUtil.isTelegram()&&CoreUtil.isAndroid()?encodeURIComponent(e):e,o&&!t){const t=CoreUtil.formatNativeUrl(o,e,n);CoreUtil.openHref(t,s)}else if(i){const t=CoreUtil.formatUniversalUrl(i,e,n);CoreUtil.openHref(t,s)}}openMobileApp(e=!1){const{walletConnectUri:t}=OptionsCtrl.state,r=CoreUtil.getWalletRouterData();t&&this.onFormatAndRedirect(t,e),UiUtil.setRecentWallet(r)}onGoToAppStore(e){e&&CoreUtil.openHref(e,"_blank")}render(){const{name:e,id:t,image_id:r,app:n,mobile:o}=CoreUtil.getWalletRouterData(),{isWeb:i}=UiUtil.getCachedRouterWalletPlatforms(),s=null==n?void 0:n.ios,a=null==o?void 0:o.universal;return x`Retry${a?x`Still doesn't work? Try this alternate link`:null}
${`Get ${e}`}
App Store
`}};WcmMobileConnectingView.styles=[ThemeUtil.globalCss,styles$3],__decorateClass$4([t$1()],WcmMobileConnectingView.prototype,"isError",2),WcmMobileConnectingView=__decorateClass$4([e$2("wcm-mobile-connecting-view")],WcmMobileConnectingView);const styles$2=i$3`wcm-info-footer{flex-direction:column;align-items:center;display:flex;width:100%;padding:5px 0}wcm-text{text-align:center}`;var __defProp$3=Object.defineProperty,__getOwnPropDesc$3=Object.getOwnPropertyDescriptor,__decorateClass$3=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$3(t,r):t,s=e.length-1;s>=0;s--)(o=e[s])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$3(t,r,i),i};let WcmMobileQrConnectingView=class extends s{render(){const{name:e,id:t,image_id:r}=CoreUtil.getWalletRouterData(),{isDesktop:n,isWeb:o}=UiUtil.getCachedRouterWalletPlatforms();return x`${`Scan this QR Code with your phone's camera or inside ${e} app`}`}};WcmMobileQrConnectingView.styles=[ThemeUtil.globalCss,styles$2],WcmMobileQrConnectingView=__decorateClass$3([e$2("wcm-mobile-qr-connecting-view")],WcmMobileQrConnectingView);var __defProp$2=Object.defineProperty,__getOwnPropDesc$2=Object.getOwnPropertyDescriptor,__decorateClass$2=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$2(t,r):t,s=e.length-1;s>=0;s--)(o=e[s])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$2(t,r,i),i};let WcmQrcodeView=class extends s{render(){return x``}};WcmQrcodeView.styles=[ThemeUtil.globalCss],WcmQrcodeView=__decorateClass$2([e$2("wcm-qrcode-view")],WcmQrcodeView);const styles$1=i$3`wcm-modal-content{height:clamp(200px,60vh,600px);display:block;overflow:scroll;scrollbar-width:none;position:relative;margin-top:1px}.wcm-grid{display:grid;grid-template-columns:repeat(4,80px);justify-content:space-between;margin:-15px -10px;padding-top:20px}wcm-modal-content::after,wcm-modal-content::before{content:'';position:fixed;pointer-events:none;z-index:1;width:100%;height:20px;opacity:1}wcm-modal-content::before{box-shadow:0 -1px 0 0 var(--wcm-color-bg-1);background:linear-gradient(var(--wcm-color-bg-1),rgba(255,255,255,0))}wcm-modal-content::after{box-shadow:0 1px 0 0 var(--wcm-color-bg-1);background:linear-gradient(rgba(255,255,255,0),var(--wcm-color-bg-1));top:calc(100% - 20px)}wcm-modal-content::-webkit-scrollbar{display:none}.wcm-placeholder-block{display:flex;justify-content:center;align-items:center;height:100px;overflow:hidden}.wcm-empty,.wcm-loading{display:flex}.wcm-loading .wcm-placeholder-block{height:100%}.wcm-end-reached .wcm-placeholder-block{height:0;opacity:0}.wcm-empty .wcm-placeholder-block{opacity:1;height:100%}wcm-wallet-button{margin:calc((100% - 60px)/ 3) 0}`;var __defProp$1=Object.defineProperty,__getOwnPropDesc$1=Object.getOwnPropertyDescriptor,__decorateClass$1=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc$1(t,r):t,s=e.length-1;s>=0;s--)(o=e[s])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp$1(t,r,i),i};const PAGE_ENTRIES=40;let WcmWalletExplorerView=class extends s{constructor(){super(...arguments),this.loading=!ExplorerCtrl.state.wallets.listings.length,this.firstFetch=!ExplorerCtrl.state.wallets.listings.length,this.search="",this.endReached=!1,this.intersectionObserver=void 0,this.searchDebounce=UiUtil.debounce((e=>{e.length>=1?(this.firstFetch=!0,this.endReached=!1,this.search=e,ExplorerCtrl.resetSearch(),this.fetchWallets()):this.search&&(this.search="",this.endReached=this.isLastPage(),ExplorerCtrl.resetSearch())}))}firstUpdated(){this.createPaginationObserver()}disconnectedCallback(){var e;null==(e=this.intersectionObserver)||e.disconnect()}get placeholderEl(){return UiUtil.getShadowRootElement(this,".wcm-placeholder-block")}createPaginationObserver(){this.intersectionObserver=new IntersectionObserver((([e])=>{!e.isIntersecting||this.search&&this.firstFetch||this.fetchWallets()})),this.intersectionObserver.observe(this.placeholderEl)}isLastPage(){const{wallets:e,search:t}=ExplorerCtrl.state,{listings:r,total:n}=this.search?t:e;return n<=PAGE_ENTRIES||r.length>=n}async fetchWallets(){var e;const{wallets:t,search:r}=ExplorerCtrl.state,{listings:n,total:o,page:i}=this.search?r:t;if(!this.endReached&&(this.firstFetch||o>PAGE_ENTRIES&&n.lengthUiUtil.getWalletIcon(e)));await Promise.all([...n.map((async e=>UiUtil.preloadImage(e))),CoreUtil.wait(300)]),this.endReached=this.isLastPage()}catch(s){console.error(s),ToastCtrl.openToast(UiUtil.getErrorMessage(s),"error")}finally{this.loading=!1,this.firstFetch=!1}}onConnect(e){CoreUtil.isAndroid()?UiUtil.handleMobileLinking(e):UiUtil.goToConnectingView(e)}onSearchChange(e){const{value:t}=e.target;this.searchDebounce(t)}render(){const{wallets:e,search:t}=ExplorerCtrl.state,{listings:r}=this.search?t:e,n=this.loading&&!r.length,i=this.search.length>=3;let s=TemplateUtil.manualWalletsTemplate(),a=TemplateUtil.recomendedWalletsTemplate(!0);i&&(s=s.filter((({values:e})=>UiUtil.caseSafeIncludes(e[0],this.search))),a=a.filter((({values:e})=>UiUtil.caseSafeIncludes(e[0],this.search))));const c=!this.loading&&!r.length&&!a.length,u={"wcm-loading":n,"wcm-end-reached":this.endReached||!this.loading,"wcm-empty":c};return x`
${n?null:s} ${n?null:a} ${n?null:r.map((e=>x`${e?x``:null}`))}
${c?x`No results found`:null} ${!c&&this.loading?x``:null}
`}};WcmWalletExplorerView.styles=[ThemeUtil.globalCss,styles$1],__decorateClass$1([t$1()],WcmWalletExplorerView.prototype,"loading",2),__decorateClass$1([t$1()],WcmWalletExplorerView.prototype,"firstFetch",2),__decorateClass$1([t$1()],WcmWalletExplorerView.prototype,"search",2),__decorateClass$1([t$1()],WcmWalletExplorerView.prototype,"endReached",2),WcmWalletExplorerView=__decorateClass$1([e$2("wcm-wallet-explorer-view")],WcmWalletExplorerView);const styles=i$3`wcm-info-footer{flex-direction:column;align-items:center;display:flex;width:100%;padding:5px 0}wcm-text{text-align:center}`;var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__decorateClass=(e,t,r,n)=>{for(var o,i=n>1?void 0:n?__getOwnPropDesc(t,r):t,s=e.length-1;s>=0;s--)(o=e[s])&&(i=(n?o(t,r,i):o(i))||i);return n&&i&&__defProp(t,r,i),i};let WcmWebConnectingView=class extends s{constructor(){super(),this.isError=!1,this.openWebWallet()}onFormatAndRedirect(e){const{desktop:t,name:r}=CoreUtil.getWalletRouterData(),n=null==t?void 0:t.universal;if(n){const t=CoreUtil.formatUniversalUrl(n,e,r);CoreUtil.openHref(t,"_blank")}}openWebWallet(){const{walletConnectUri:e}=OptionsCtrl.state,t=CoreUtil.getWalletRouterData();UiUtil.setRecentWallet(t),e&&this.onFormatAndRedirect(e)}render(){const{name:e,id:t,image_id:r}=CoreUtil.getWalletRouterData(),{isMobile:n,isDesktop:o}=UiUtil.getCachedRouterWalletPlatforms(),i=CoreUtil.isMobile();return x`${`${e} web app has opened in a new tab. Go there, accept the connection, and come back`}Retry`}};WcmWebConnectingView.styles=[ThemeUtil.globalCss,styles],__decorateClass([t$1()],WcmWebConnectingView.prototype,"isError",2),WcmWebConnectingView=__decorateClass([e$2("wcm-web-connecting-view")],WcmWebConnectingView);const index=Object.freeze(Object.defineProperty({__proto__:null,get WcmModal(){return WcmModal},get WcmQrCode(){return WcmQrCode}},Symbol.toStringTag,{value:"Module"}));exports.HashgraphSDK=HashgraphSDK,exports.HashinalsWalletConnectSDK=HashinalsWalletConnectSDK,exports.Name=Name,exports.Result=Result,exports.base64StringToSignatureMap=base64StringToSignatureMap,exports.prefixMessageToSign=prefixMessageToSign,exports.verifyMessageSignature=verifyMessageSignature,Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"})})); //# sourceMappingURL=hashinal-wc.umd.js.map diff --git a/dist/umd/hashinal-wc.umd.js.map b/dist/umd/hashinal-wc.umd.js.map index 8837ff2..2300b32 100644 --- a/dist/umd/hashinal-wc.umd.js.map +++ b/dist/umd/hashinal-wc.umd.js.map @@ -1 +1 @@ -{"version":3,"file":"hashinal-wc.umd.js","sources":["../../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js","../../node_modules/long/index.js","../../node_modules/@hashgraph/sdk/src/encoding/hex.browser.js","../../node_modules/@hashgraph/sdk/src/BadEntityIdError.js","../../node_modules/bignumber.js/bignumber.mjs","../../node_modules/@hashgraph/sdk/src/util.js","../../node_modules/rfc4648/lib/rfc4648.js","../../node_modules/@hashgraph/sdk/src/base32.js","../../node_modules/@protobufjs/aspromise/index.js","../../node_modules/@protobufjs/base64/index.js","../../node_modules/@protobufjs/eventemitter/index.js","../../node_modules/@protobufjs/float/index.js","../../node_modules/@protobufjs/inquire/index.js","../../node_modules/@protobufjs/utf8/index.js","../../node_modules/@protobufjs/pool/index.js","../../node_modules/@hashgraph/sdk/node_modules/protobufjs/src/util/longbits.js","../../node_modules/@hashgraph/sdk/node_modules/protobufjs/src/util/minimal.js","../../node_modules/@hashgraph/sdk/node_modules/protobufjs/src/writer.js","../../node_modules/@hashgraph/sdk/node_modules/protobufjs/src/writer_buffer.js","../../node_modules/@hashgraph/sdk/node_modules/protobufjs/src/reader.js","../../node_modules/@hashgraph/sdk/node_modules/protobufjs/src/reader_buffer.js","../../node_modules/@hashgraph/sdk/node_modules/protobufjs/src/rpc/service.js","../../node_modules/@hashgraph/sdk/node_modules/protobufjs/src/rpc.js","../../node_modules/@hashgraph/sdk/node_modules/protobufjs/src/roots.js","../../node_modules/@hashgraph/sdk/node_modules/protobufjs/src/index-minimal.js","../../node_modules/@hashgraph/sdk/node_modules/protobufjs/minimal.js","../../node_modules/@hashgraph/sdk/node_modules/@hashgraph/proto/lib/proto.js","../../node_modules/@hashgraph/sdk/node_modules/@hashgraph/proto/lib/index.js","../../node_modules/@hashgraph/cryptography/src/Key.js","../../node_modules/@hashgraph/cryptography/src/BadKeyError.js","../../node_modules/vite-plugin-node-polyfills/shims/process/dist/index.js","../../node_modules/safe-buffer/index.js","../../node_modules/randombytes/browser.js","../../node_modules/inherits/inherits_browser.js","../../node_modules/events/events.js","../../node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/stream-browser.js","../../node_modules/has-symbols/shams.js","../../node_modules/has-tostringtag/shams.js","../../node_modules/es-object-atoms/index.js","../../node_modules/es-errors/index.js","../../node_modules/es-errors/eval.js","../../node_modules/es-errors/range.js","../../node_modules/es-errors/ref.js","../../node_modules/es-errors/syntax.js","../../node_modules/es-errors/type.js","../../node_modules/es-errors/uri.js","../../node_modules/math-intrinsics/abs.js","../../node_modules/math-intrinsics/floor.js","../../node_modules/math-intrinsics/max.js","../../node_modules/math-intrinsics/min.js","../../node_modules/math-intrinsics/pow.js","../../node_modules/gopd/gOPD.js","../../node_modules/gopd/index.js","../../node_modules/es-define-property/index.js","../../node_modules/has-symbols/index.js","../../node_modules/function-bind/implementation.js","../../node_modules/function-bind/index.js","../../node_modules/call-bind-apply-helpers/functionCall.js","../../node_modules/call-bind-apply-helpers/functionApply.js","../../node_modules/call-bind-apply-helpers/reflectApply.js","../../node_modules/call-bind-apply-helpers/actualApply.js","../../node_modules/call-bind-apply-helpers/index.js","../../node_modules/dunder-proto/get.js","../../node_modules/hasown/index.js","../../node_modules/get-intrinsic/index.js","../../node_modules/call-bound/index.js","../../node_modules/is-arguments/index.js","../../node_modules/is-generator-function/index.js","../../node_modules/is-callable/index.js","../../node_modules/for-each/index.js","../../node_modules/possible-typed-array-names/index.js","../../node_modules/available-typed-arrays/index.js","../../node_modules/define-data-property/index.js","../../node_modules/has-property-descriptors/index.js","../../node_modules/set-function-length/index.js","../../node_modules/call-bind-apply-helpers/applyBind.js","../../node_modules/call-bind/index.js","../../node_modules/which-typed-array/index.js","../../node_modules/is-typed-array/index.js","../../node_modules/util/support/types.js","../../node_modules/util/support/isBufferBrowser.js","../../node_modules/util/util.js","../../node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/buffer_list.js","../../node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/destroy.js","../../node_modules/stream-browserify/node_modules/readable-stream/errors-browser.js","../../node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/state.js","../../node_modules/util-deprecate/browser.js","../../node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_writable.js","../../node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_duplex.js","../../node_modules/string_decoder/lib/string_decoder.js","../../node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","../../node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/async_iterator.js","../../node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/from-browser.js","../../node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_readable.js","../../node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_transform.js","../../node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_passthrough.js","../../node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/pipeline.js","../../node_modules/stream-browserify/index.js","../../node_modules/hash-base/index.js","../../node_modules/md5.js/index.js","../../node_modules/ripemd160/index.js","../../node_modules/sha.js/hash.js","../../node_modules/sha.js/sha.js","../../node_modules/sha.js/sha1.js","../../node_modules/sha.js/sha256.js","../../node_modules/sha.js/sha224.js","../../node_modules/sha.js/sha512.js","../../node_modules/sha.js/sha384.js","../../node_modules/sha.js/index.js","../../node_modules/cipher-base/index.js","../../node_modules/create-hash/browser.js","../../node_modules/create-hmac/legacy.js","../../node_modules/create-hash/md5.js","../../node_modules/create-hmac/browser.js","../../node_modules/browserify-sign/algos.js","../../node_modules/pbkdf2/lib/precondition.js","../../node_modules/pbkdf2/lib/default-encoding.js","../../node_modules/pbkdf2/lib/to-buffer.js","../../node_modules/pbkdf2/lib/sync-browser.js","../../node_modules/pbkdf2/lib/async.js","../../node_modules/pbkdf2/browser.js","../../node_modules/des.js/lib/des/utils.js","../../node_modules/minimalistic-assert/index.js","../../node_modules/des.js/lib/des/cipher.js","../../node_modules/des.js/lib/des/des.js","../../node_modules/des.js/lib/des/cbc.js","../../node_modules/des.js/lib/des/ede.js","../../node_modules/des.js/lib/des.js","../../node_modules/browserify-des/index.js","../../node_modules/browserify-aes/modes/ecb.js","../../node_modules/buffer-xor/index.js","../../node_modules/browserify-aes/modes/cbc.js","../../node_modules/browserify-aes/modes/cfb.js","../../node_modules/browserify-aes/modes/cfb8.js","../../node_modules/browserify-aes/modes/cfb1.js","../../node_modules/browserify-aes/modes/ofb.js","../../node_modules/browserify-aes/incr32.js","../../node_modules/browserify-aes/modes/ctr.js","../../node_modules/browserify-aes/modes/index.js","../../node_modules/browserify-aes/aes.js","../../node_modules/browserify-aes/ghash.js","../../node_modules/browserify-aes/authCipher.js","../../node_modules/browserify-aes/streamCipher.js","../../node_modules/evp_bytestokey/index.js","../../node_modules/browserify-aes/encrypter.js","../../node_modules/browserify-aes/decrypter.js","../../node_modules/browserify-aes/browser.js","../../node_modules/browserify-des/modes.js","../../node_modules/browserify-cipher/browser.js","../../node_modules/diffie-hellman/node_modules/bn.js/lib/bn.js","../../node_modules/miller-rabin/node_modules/bn.js/lib/bn.js","../../node_modules/brorand/index.js","../../node_modules/miller-rabin/lib/mr.js","../../node_modules/diffie-hellman/lib/generatePrime.js","../../node_modules/diffie-hellman/lib/dh.js","../../node_modules/diffie-hellman/browser.js","../../node_modules/process-nextick-args/index.js","../../node_modules/isarray/index.js","../../node_modules/readable-stream/lib/internal/streams/stream-browser.js","../../node_modules/readable-stream/node_modules/safe-buffer/index.js","../../node_modules/core-util-is/lib/util.js","../../node_modules/readable-stream/lib/internal/streams/BufferList.js","../../node_modules/readable-stream/lib/internal/streams/destroy.js","../../node_modules/readable-stream/lib/_stream_writable.js","../../node_modules/readable-stream/lib/_stream_duplex.js","../../node_modules/readable-stream/lib/_stream_readable.js","../../node_modules/readable-stream/lib/_stream_transform.js","../../node_modules/readable-stream/lib/_stream_passthrough.js","../../node_modules/readable-stream/readable-browser.js","../../node_modules/bn.js/lib/bn.js","../../node_modules/browserify-rsa/index.js","../../node_modules/browserify-sign/node_modules/elliptic/node_modules/bn.js/lib/bn.js","../../node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/utils.js","../../node_modules/minimalistic-crypto-utils/lib/utils.js","../../node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/curve/base.js","../../node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/curve/short.js","../../node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/curve/mont.js","../../node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/curve/edwards.js","../../node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/curve/index.js","../../node_modules/hash.js/lib/hash/utils.js","../../node_modules/hash.js/lib/hash/common.js","../../node_modules/hash.js/lib/hash/sha/common.js","../../node_modules/hash.js/lib/hash/sha/1.js","../../node_modules/hash.js/lib/hash/sha/256.js","../../node_modules/hash.js/lib/hash/sha/224.js","../../node_modules/hash.js/lib/hash/sha/512.js","../../node_modules/hash.js/lib/hash/sha/384.js","../../node_modules/hash.js/lib/hash/sha.js","../../node_modules/hash.js/lib/hash/ripemd.js","../../node_modules/hash.js/lib/hash/hmac.js","../../node_modules/hash.js/lib/hash.js","../../node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js","../../node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/curves.js","../../node_modules/hmac-drbg/lib/hmac-drbg.js","../../node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/ec/key.js","../../node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/ec/signature.js","../../node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/ec/index.js","../../node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/eddsa/key.js","../../node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/eddsa/signature.js","../../node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/eddsa/index.js","../../node_modules/browserify-sign/node_modules/elliptic/lib/elliptic.js","../../node_modules/asn1.js/node_modules/bn.js/lib/bn.js","../../node_modules/vm-browserify/index.js","../../node_modules/asn1.js/lib/asn1/api.js","../../node_modules/asn1.js/lib/asn1/base/reporter.js","../../node_modules/asn1.js/lib/asn1/base/buffer.js","../../node_modules/asn1.js/lib/asn1/base/node.js","../../node_modules/asn1.js/lib/asn1/base/index.js","../../node_modules/asn1.js/lib/asn1/constants/der.js","../../node_modules/asn1.js/lib/asn1/constants/index.js","../../node_modules/asn1.js/lib/asn1/decoders/der.js","../../node_modules/asn1.js/lib/asn1/decoders/pem.js","../../node_modules/asn1.js/lib/asn1/decoders/index.js","../../node_modules/asn1.js/lib/asn1/encoders/der.js","../../node_modules/asn1.js/lib/asn1/encoders/pem.js","../../node_modules/asn1.js/lib/asn1/encoders/index.js","../../node_modules/asn1.js/lib/asn1.js","../../node_modules/parse-asn1/certificate.js","../../node_modules/parse-asn1/asn1.js","../../node_modules/parse-asn1/fixProc.js","../../node_modules/parse-asn1/index.js","../../node_modules/browserify-sign/browser/sign.js","../../node_modules/browserify-sign/browser/verify.js","../../node_modules/browserify-sign/browser/index.js","../../node_modules/elliptic/node_modules/bn.js/lib/bn.js","../../node_modules/elliptic/lib/elliptic/utils.js","../../node_modules/elliptic/lib/elliptic/curve/base.js","../../node_modules/elliptic/lib/elliptic/curve/short.js","../../node_modules/elliptic/lib/elliptic/curve/mont.js","../../node_modules/elliptic/lib/elliptic/curve/edwards.js","../../node_modules/elliptic/lib/elliptic/curve/index.js","../../node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js","../../node_modules/elliptic/lib/elliptic/curves.js","../../node_modules/elliptic/lib/elliptic/ec/key.js","../../node_modules/elliptic/lib/elliptic/ec/signature.js","../../node_modules/elliptic/lib/elliptic/ec/index.js","../../node_modules/elliptic/lib/elliptic/eddsa/key.js","../../node_modules/elliptic/lib/elliptic/eddsa/signature.js","../../node_modules/elliptic/lib/elliptic/eddsa/index.js","../../node_modules/elliptic/lib/elliptic.js","../../node_modules/create-ecdh/node_modules/bn.js/lib/bn.js","../../node_modules/create-ecdh/browser.js","../../node_modules/public-encrypt/mgf.js","../../node_modules/public-encrypt/xor.js","../../node_modules/public-encrypt/node_modules/bn.js/lib/bn.js","../../node_modules/public-encrypt/withPublic.js","../../node_modules/public-encrypt/publicEncrypt.js","../../node_modules/public-encrypt/privateDecrypt.js","../../node_modules/public-encrypt/browser.js","../../node_modules/randomfill/browser.js","../../node_modules/crypto-browserify/index.js","../../node_modules/tweetnacl/nacl-fast.js","../../node_modules/@hashgraph/cryptography/src/util/array.js","../../node_modules/@hashgraph/cryptography/src/encoding/hex.browser.js","../../node_modules/node-forge/lib/forge.js","../../node_modules/node-forge/lib/baseN.js","../../node_modules/node-forge/lib/util.js","../../node_modules/node-forge/lib/cipher.js","../../node_modules/node-forge/lib/cipherModes.js","../../node_modules/node-forge/lib/aes.js","../../node_modules/node-forge/lib/oids.js","../../node_modules/node-forge/lib/asn1.js","../../node_modules/node-forge/lib/md.js","../../node_modules/node-forge/lib/hmac.js","../../node_modules/node-forge/lib/md5.js","../../node_modules/node-forge/lib/pem.js","../../node_modules/node-forge/lib/des.js","../../node_modules/node-forge/lib/pbkdf2.js","../../node_modules/node-forge/lib/sha256.js","../../node_modules/node-forge/lib/prng.js","../../node_modules/node-forge/lib/random.js","../../node_modules/node-forge/lib/rc2.js","../../node_modules/node-forge/lib/jsbn.js","../../node_modules/node-forge/lib/sha1.js","../../node_modules/node-forge/lib/pkcs1.js","../../node_modules/node-forge/lib/prime.js","../../node_modules/node-forge/lib/rsa.js","../../node_modules/node-forge/lib/pbe.js","../../node_modules/node-forge/lib/pkcs7asn1.js","../../node_modules/node-forge/lib/mgf1.js","../../node_modules/node-forge/lib/mgf.js","../../node_modules/node-forge/lib/pss.js","../../node_modules/node-forge/lib/x509.js","../../node_modules/node-forge/lib/pkcs12.js","../../node_modules/node-forge/lib/pki.js","../../node_modules/node-forge/lib/tls.js","../../node_modules/node-forge/lib/aesCipherSuites.js","../../node_modules/node-forge/lib/sha512.js","../../node_modules/node-forge/lib/asn1-validator.js","../../node_modules/node-forge/lib/ed25519.js","../../node_modules/node-forge/lib/kem.js","../../node_modules/node-forge/lib/log.js","../../node_modules/node-forge/lib/pkcs7.js","../../node_modules/node-forge/lib/ssh.js","../../node_modules/node-forge/lib/index.js","../../node_modules/@hashgraph/cryptography/src/Ed25519PublicKey.js","../../node_modules/@hashgraph/cryptography/src/primitive/random.js","../../node_modules/@hashgraph/cryptography/src/encoding/utf8.browser.js","../../node_modules/@hashgraph/cryptography/src/primitive/hmac.browser.js","../../node_modules/@hashgraph/cryptography/src/primitive/bip32.browser.js","../../node_modules/@hashgraph/cryptography/src/primitive/slip10.js","../../node_modules/@hashgraph/cryptography/src/Ed25519PrivateKey.js","../../node_modules/@hashgraph/cryptography/src/primitive/keccak.js","../../node_modules/@hashgraph/cryptography/src/primitive/ecdsa.js","../../node_modules/@hashgraph/cryptography/src/EcdsaPublicKey.js","../../node_modules/@hashgraph/cryptography/src/EcdsaPrivateKey.js","../../node_modules/@hashgraph/cryptography/src/PublicKey.js","../../node_modules/spark-md5/spark-md5.js","../../node_modules/@hashgraph/cryptography/src/primitive/aes.browser.js","../../node_modules/@hashgraph/cryptography/src/primitive/pbkdf2.browser.js","../../node_modules/@hashgraph/cryptography/src/primitive/keystore.js","../../node_modules/@hashgraph/cryptography/src/encoding/der.js","../../node_modules/@hashgraph/cryptography/src/primitive/pkcs.js","../../node_modules/@hashgraph/cryptography/src/encoding/base64.browser.js","../../node_modules/pvtsutils/build/index.es.js","../../node_modules/pvutils/build/utils.es.js","../../node_modules/asn1js/build/index.es.js","../../node_modules/@hashgraph/cryptography/src/encoding/pem.js","../../node_modules/@hashgraph/cryptography/src/util/derive.js","../../node_modules/@hashgraph/cryptography/src/Cache.js","../../node_modules/@hashgraph/cryptography/src/PrivateKey.js","../../node_modules/@hashgraph/cryptography/src/BadMnemonicReason.js","../../node_modules/@hashgraph/cryptography/src/BadMnemonicError.js","../../node_modules/@hashgraph/cryptography/src/words/legacy.js","../../node_modules/@hashgraph/cryptography/src/words/bip39.js","../../node_modules/@hashgraph/cryptography/src/primitive/sha256.browser.js","../../node_modules/@hashgraph/cryptography/src/primitive/bip39.js","../../node_modules/@hashgraph/cryptography/src/util/entropy.js","../../node_modules/@hashgraph/cryptography/src/Mnemonic.js","../../node_modules/@hashgraph/sdk/src/array.js","../../node_modules/@hashgraph/sdk/src/Cache.js","../../node_modules/@hashgraph/sdk/src/Key.js","../../node_modules/@hashgraph/sdk/src/PublicKey.js","../../node_modules/@ethersproject/logger/lib.esm/_version.js","../../node_modules/@ethersproject/logger/lib.esm/index.js","../../node_modules/@ethersproject/bytes/lib.esm/_version.js","../../node_modules/@ethersproject/bytes/lib.esm/index.js","../../node_modules/@hashgraph/sdk/src/EntityIdHelper.js","../../node_modules/@hashgraph/sdk/src/Mnemonic.js","../../node_modules/@hashgraph/sdk/src/ObjectMap.js","../../node_modules/@hashgraph/sdk/src/EvmAddress.js","../../node_modules/vite-plugin-node-polyfills/shims/global/dist/index.js","../../node_modules/axios/lib/helpers/bind.js","../../node_modules/axios/lib/utils.js","../../node_modules/axios/lib/core/AxiosError.js","../../node_modules/axios/lib/helpers/null.js","../../node_modules/axios/lib/helpers/toFormData.js","../../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../../node_modules/axios/lib/helpers/buildURL.js","../../node_modules/axios/lib/core/InterceptorManager.js","../../node_modules/axios/lib/defaults/transitional.js","../../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../../node_modules/axios/lib/platform/browser/classes/FormData.js","../../node_modules/axios/lib/platform/browser/classes/Blob.js","../../node_modules/axios/lib/platform/browser/index.js","../../node_modules/axios/lib/platform/common/utils.js","../../node_modules/axios/lib/platform/index.js","../../node_modules/axios/lib/helpers/toURLEncodedForm.js","../../node_modules/axios/lib/helpers/formDataToJSON.js","../../node_modules/axios/lib/defaults/index.js","../../node_modules/axios/lib/helpers/parseHeaders.js","../../node_modules/axios/lib/core/AxiosHeaders.js","../../node_modules/axios/lib/core/transformData.js","../../node_modules/axios/lib/cancel/isCancel.js","../../node_modules/axios/lib/cancel/CanceledError.js","../../node_modules/axios/lib/core/settle.js","../../node_modules/axios/lib/helpers/parseProtocol.js","../../node_modules/axios/lib/helpers/speedometer.js","../../node_modules/axios/lib/helpers/throttle.js","../../node_modules/axios/lib/helpers/progressEventReducer.js","../../node_modules/axios/lib/helpers/isURLSameOrigin.js","../../node_modules/axios/lib/helpers/cookies.js","../../node_modules/axios/lib/helpers/isAbsoluteURL.js","../../node_modules/axios/lib/helpers/combineURLs.js","../../node_modules/axios/lib/core/buildFullPath.js","../../node_modules/axios/lib/core/mergeConfig.js","../../node_modules/axios/lib/helpers/resolveConfig.js","../../node_modules/axios/lib/adapters/xhr.js","../../node_modules/axios/lib/helpers/composeSignals.js","../../node_modules/axios/lib/helpers/trackStream.js","../../node_modules/axios/lib/adapters/fetch.js","../../node_modules/axios/lib/adapters/adapters.js","../../node_modules/axios/lib/core/dispatchRequest.js","../../node_modules/axios/lib/env/data.js","../../node_modules/axios/lib/helpers/validator.js","../../node_modules/axios/lib/core/Axios.js","../../node_modules/axios/lib/cancel/CancelToken.js","../../node_modules/axios/lib/helpers/spread.js","../../node_modules/axios/lib/helpers/isAxiosError.js","../../node_modules/axios/lib/helpers/HttpStatusCode.js","../../node_modules/axios/lib/axios.js","../../node_modules/@hashgraph/sdk/src/account/AccountId.js","../../node_modules/@hashgraph/sdk/src/Timestamp.js","../../node_modules/@hashgraph/sdk/src/transaction/TransactionId.js","../../node_modules/@hashgraph/sdk/src/transaction/SignaturePairMap.js","../../node_modules/@hashgraph/sdk/src/transaction/NodeAccountIdSignatureMap.js","../../node_modules/@hashgraph/sdk/src/transaction/List.js","../../node_modules/@hashgraph/sdk/src/transaction/SignatureMap.js","../../node_modules/@hashgraph/sdk/src/PrivateKey.js","../../node_modules/@hashgraph/sdk/src/KeyList.js","../../node_modules/@hashgraph/sdk/src/long.js","../../node_modules/@hashgraph/sdk/src/HbarUnit.js","../../node_modules/@hashgraph/sdk/src/Hbar.js","../../node_modules/@hashgraph/sdk/src/StatusError.js","../../node_modules/@hashgraph/sdk/src/ReceiptStatusError.js","../../node_modules/@hashgraph/sdk/src/Status.js","../../node_modules/@hashgraph/sdk/src/grpc/GrpcStatus.js","../../node_modules/@hashgraph/sdk/src/grpc/GrpcServiceError.js","../../node_modules/@hashgraph/sdk/src/http/HttpStatus.js","../../node_modules/@hashgraph/sdk/src/http/HttpError.js","../../node_modules/@hashgraph/sdk/src/MaxAttemptsOrTimeoutError.js","../../node_modules/@hashgraph/sdk/src/Executable.js","../../node_modules/@hashgraph/sdk/src/PrecheckStatusError.js","../../node_modules/@hashgraph/sdk/src/MaxQueryPaymentExceeded.js","../../node_modules/@hashgraph/sdk/src/query/Query.js","../../node_modules/@hashgraph/sdk/src/contract/ContractId.js","../../node_modules/@hashgraph/sdk/src/file/FileId.js","../../node_modules/@hashgraph/sdk/src/topic/TopicId.js","../../node_modules/@hashgraph/sdk/src/token/TokenId.js","../../node_modules/@hashgraph/sdk/src/schedule/ScheduleId.js","../../node_modules/@hashgraph/sdk/src/ExchangeRate.js","../../node_modules/@hashgraph/sdk/src/transaction/TransactionReceipt.js","../../node_modules/@hashgraph/sdk/src/transaction/TransactionReceiptQuery.js","../../node_modules/@hashgraph/sdk/src/Transfer.js","../../node_modules/@hashgraph/sdk/src/contract/ContractLogInfo.js","../../node_modules/@hashgraph/sdk/src/encoding/utf8.browser.js","../../node_modules/@ethersproject/bignumber/lib.esm/_version.js","../../node_modules/@ethersproject/bignumber/lib.esm/bignumber.js","../../node_modules/@ethersproject/properties/lib.esm/index.js","../../node_modules/@ethersproject/abi/lib.esm/_version.js","../../node_modules/@ethersproject/abi/lib.esm/fragments.js","../../node_modules/@ethersproject/abi/lib.esm/coders/abstract-coder.js","../../node_modules/js-sha3/src/sha3.js","../../node_modules/@ethersproject/keccak256/lib.esm/index.js","../../node_modules/@ethersproject/rlp/lib.esm/_version.js","../../node_modules/@ethersproject/rlp/lib.esm/index.js","../../node_modules/@ethersproject/address/lib.esm/_version.js","../../node_modules/@ethersproject/address/lib.esm/index.js","../../node_modules/@ethersproject/abi/lib.esm/coders/address.js","../../node_modules/@ethersproject/abi/lib.esm/coders/anonymous.js","../../node_modules/@ethersproject/abi/lib.esm/coders/array.js","../../node_modules/@ethersproject/abi/lib.esm/coders/boolean.js","../../node_modules/@ethersproject/abi/lib.esm/coders/bytes.js","../../node_modules/@ethersproject/abi/lib.esm/coders/fixed-bytes.js","../../node_modules/@ethersproject/abi/lib.esm/coders/null.js","../../node_modules/@ethersproject/constants/lib.esm/bignumbers.js","../../node_modules/@ethersproject/abi/lib.esm/coders/number.js","../../node_modules/@ethersproject/strings/lib.esm/_version.js","../../node_modules/@ethersproject/strings/lib.esm/utf8.js","../../node_modules/@ethersproject/abi/lib.esm/coders/string.js","../../node_modules/@ethersproject/abi/lib.esm/coders/tuple.js","../../node_modules/@ethersproject/abi/lib.esm/abi-coder.js","../../node_modules/@ethersproject/hash/lib.esm/message.js","../../node_modules/@hashgraph/sdk/src/contract/ContractNonceInfo.js","../../node_modules/@hashgraph/sdk/src/contract/ContractFunctionResult.js","../../node_modules/@hashgraph/sdk/src/account/TokenTransferAccountMap.js","../../node_modules/@hashgraph/sdk/src/account/TokenTransferMap.js","../../node_modules/@hashgraph/sdk/src/account/TokenNftTransferMap.js","../../node_modules/@hashgraph/sdk/src/token/AssessedCustomFee.js","../../node_modules/@hashgraph/sdk/src/token/TokenAssociation.js","../../node_modules/@hashgraph/sdk/src/token/TokenTransfer.js","../../node_modules/@hashgraph/sdk/src/token/NftId.js","../../node_modules/@hashgraph/sdk/src/token/PendingAirdropId.js","../../node_modules/@hashgraph/sdk/src/token/PendingAirdropRecord.js","../../node_modules/@hashgraph/sdk/src/transaction/TransactionRecord.js","../../node_modules/@hashgraph/sdk/src/RecordStatusError.js","../../node_modules/@hashgraph/sdk/src/transaction/TransactionRecordQuery.js","../../node_modules/@hashgraph/sdk/src/transaction/TransactionResponse.js","../../node_modules/@hashgraph/sdk/src/cryptography/sha384.browser.js","../../node_modules/@hashgraph/sdk/src/transaction/TransactionHashMap.js","../../node_modules/@hashgraph/sdk/src/transaction/Transaction.js","../../node_modules/@hashgraph/sdk/src/token/TokenNftTransfer.js","../../node_modules/@hashgraph/sdk/src/account/NullableTokenDecimalMap.js","../../node_modules/@hashgraph/sdk/src/token/AbstractTokenTransferTransaction.js","../../node_modules/@hashgraph/sdk/src/token/TokenAirdropTransaction.js","../../node_modules/@hashgraph/sdk/src/token/AirdropPendingTransaction.js","../../node_modules/@hashgraph/sdk/src/token/TokenClaimAirdropTransaction.js","../../node_modules/@hashgraph/sdk/src/token/TokenCancelAirdropTransaction.js","../../node_modules/@hashgraph/sdk/src/account/HbarAllowance.js","../../node_modules/@hashgraph/sdk/src/account/TokenAllowance.js","../../node_modules/@hashgraph/sdk/src/account/TokenNftAllowance.js","../../node_modules/@hashgraph/sdk/src/account/AccountAllowanceAdjustTransaction.js","../../node_modules/@hashgraph/sdk/src/account/AccountAllowanceApproveTransaction.js","../../node_modules/@hashgraph/sdk/src/account/AccountAllowanceDeleteTransaction.js","../../node_modules/@hashgraph/sdk/src/account/TokenBalanceMap.js","../../node_modules/@hashgraph/sdk/src/account/TokenDecimalMap.js","../../node_modules/@hashgraph/sdk/src/account/AccountBalance.js","../../node_modules/@hashgraph/sdk/src/account/AccountBalanceQuery.js","../../node_modules/@hashgraph/sdk/src/Duration.js","../../node_modules/@hashgraph/sdk/src/account/AccountCreateTransaction.js","../../node_modules/@hashgraph/sdk/src/account/AccountDeleteTransaction.js","../../node_modules/@hashgraph/sdk/src/StakingInfo.js","../../node_modules/@hashgraph/sdk/src/account/LiveHash.js","../../node_modules/@hashgraph/sdk/src/account/TokenRelationship.js","../../node_modules/@hashgraph/sdk/src/account/TokenRelationshipMap.js","../../node_modules/@hashgraph/sdk/src/LedgerId.js","../../node_modules/@hashgraph/sdk/src/account/AccountInfo.js","../../node_modules/@hashgraph/sdk/src/account/AccountInfoQuery.js","../../node_modules/@hashgraph/sdk/src/account/AccountInfoFlow.js","../../node_modules/@hashgraph/sdk/src/account/AccountRecordsQuery.js","../../node_modules/@hashgraph/sdk/src/account/ProxyStaker.js","../../node_modules/@hashgraph/sdk/src/account/AccountStakersQuery.js","../../node_modules/@hashgraph/sdk/src/account/AccountUpdateTransaction.js","../../node_modules/@hashgraph/sdk/src/address_book/IPv4AddressPart.js","../../node_modules/@hashgraph/sdk/src/address_book/IPv4Address.js","../../node_modules/@hashgraph/sdk/src/address_book/Endpoint.js","../../node_modules/@hashgraph/sdk/src/address_book/NodeAddress.js","../../node_modules/@hashgraph/sdk/src/address_book/NodeAddressBook.js","../../node_modules/@hashgraph/sdk/src/network/AddressBookQuery.js","../../node_modules/@hashgraph/sdk/src/contract/ContractByteCodeQuery.js","../../node_modules/@hashgraph/sdk/src/cryptography/keccak.js","../../node_modules/@hashgraph/sdk/src/contract/ContractFunctionSelector.js","../../node_modules/@hashgraph/sdk/src/contract/ContractFunctionParameters.js","../../node_modules/@hashgraph/sdk/src/contract/ContractCallQuery.js","../../node_modules/@hashgraph/sdk/src/file/FileCreateTransaction.js","../../node_modules/@hashgraph/sdk/src/file/FileAppendTransaction.js","../../node_modules/@hashgraph/sdk/src/file/FileDeleteTransaction.js","../../node_modules/@hashgraph/sdk/src/contract/ContractCreateTransaction.js","../../node_modules/@hashgraph/sdk/src/contract/ContractCreateFlow.js","../../node_modules/@hashgraph/sdk/src/contract/ContractDeleteTransaction.js","../../node_modules/@hashgraph/sdk/src/contract/ContractExecuteTransaction.js","../../node_modules/@hashgraph/sdk/src/contract/ContractInfo.js","../../node_modules/@hashgraph/sdk/src/contract/ContractInfoQuery.js","../../node_modules/@hashgraph/sdk/src/contract/ContractUpdateTransaction.js","../../node_modules/@hashgraph/sdk/src/token/CustomFee.js","../../node_modules/@hashgraph/sdk/src/token/CustomFixedFee.js","../../node_modules/@hashgraph/sdk/src/token/FeeAssessmentMethod.js","../../node_modules/@hashgraph/sdk/src/token/CustomFractionalFee.js","../../node_modules/@hashgraph/sdk/src/token/CustomRoyaltyFee.js","../../node_modules/@hashgraph/sdk/src/contract/DelegateContractId.js","../../node_modules/@hashgraph/sdk/src/EthereumTransaction.js","../../node_modules/@hashgraph/sdk/src/EthereumTransactionData.js","../../node_modules/@hashgraph/sdk/src/EthereumTransactionDataLegacy.js","../../node_modules/@hashgraph/sdk/src/EthereumTransactionDataEip1559.js","../../node_modules/@hashgraph/sdk/src/EthereumTransactionDataEip2930.js","../../node_modules/@hashgraph/sdk/src/EthereumFlow.js","../../node_modules/@hashgraph/sdk/src/ExchangeRates.js","../../node_modules/@hashgraph/sdk/src/FeeComponents.js","../../node_modules/@hashgraph/sdk/src/FeeDataType.js","../../node_modules/@hashgraph/sdk/src/FeeData.js","../../node_modules/@hashgraph/sdk/src/RequestType.js","../../node_modules/@hashgraph/sdk/src/TransactionFeeSchedule.js","../../node_modules/@hashgraph/sdk/src/FeeSchedule.js","../../node_modules/@hashgraph/sdk/src/FeeSchedules.js","../../node_modules/@hashgraph/sdk/src/file/FileContentsQuery.js","../../node_modules/@hashgraph/sdk/src/file/FileInfo.js","../../node_modules/@hashgraph/sdk/src/file/FileInfoQuery.js","../../node_modules/@hashgraph/sdk/src/file/FileUpdateTransaction.js","../../node_modules/@hashgraph/sdk/src/FreezeType.js","../../node_modules/@hashgraph/sdk/src/system/FreezeTransaction.js","../../node_modules/@hashgraph/sdk/src/account/LiveHashAddTransaction.js","../../node_modules/@hashgraph/sdk/src/account/LiveHashDeleteTransaction.js","../../node_modules/@hashgraph/sdk/src/account/LiveHashQuery.js","../../node_modules/@hashgraph/sdk/src/network/SemanticVersion.js","../../node_modules/@hashgraph/sdk/src/network/NetworkVersionInfo.js","../../node_modules/@hashgraph/sdk/src/network/NetworkVersionInfoQuery.js","../../node_modules/@hashgraph/sdk/src/Provider.js","../../node_modules/@hashgraph/sdk/src/PrngTransaction.js","../../node_modules/@hashgraph/sdk/src/schedule/ScheduleCreateTransaction.js","../../node_modules/@hashgraph/sdk/src/schedule/ScheduleDeleteTransaction.js","../../node_modules/@hashgraph/sdk/src/schedule/ScheduleInfo.js","../../node_modules/@hashgraph/sdk/src/schedule/ScheduleInfoQuery.js","../../node_modules/@hashgraph/sdk/src/schedule/ScheduleSignTransaction.js","../../node_modules/@hashgraph/sdk/src/Signer.js","../../node_modules/@hashgraph/sdk/src/SignerSignature.js","../../node_modules/@hashgraph/sdk/src/topic/SubscriptionHandle.js","../../node_modules/@hashgraph/sdk/src/system/SystemDeleteTransaction.js","../../node_modules/@hashgraph/sdk/src/system/SystemUndeleteTransaction.js","../../node_modules/@hashgraph/sdk/src/token/TokenAssociateTransaction.js","../../node_modules/@hashgraph/sdk/src/token/TokenBurnTransaction.js","../../node_modules/@hashgraph/sdk/src/token/TokenReference.js","../../node_modules/@hashgraph/sdk/src/token/TokenRejectTransaction.js","../../node_modules/@hashgraph/sdk/src/token/TokenDissociateTransaction.js","../../node_modules/@hashgraph/sdk/src/token/TokenRejectFlow.js","../../node_modules/@hashgraph/sdk/src/token/TokenType.js","../../node_modules/@hashgraph/sdk/src/token/TokenSupplyType.js","../../node_modules/@hashgraph/sdk/src/token/TokenCreateTransaction.js","../../node_modules/@hashgraph/sdk/src/token/TokenDeleteTransaction.js","../../node_modules/@hashgraph/sdk/src/token/TokenFeeScheduleUpdateTransaction.js","../../node_modules/@hashgraph/sdk/src/token/TokenFreezeTransaction.js","../../node_modules/@hashgraph/sdk/src/token/TokenGrantKycTransaction.js","../../node_modules/@hashgraph/sdk/src/token/TokenInfo.js","../../node_modules/@hashgraph/sdk/src/token/TokenInfoQuery.js","../../node_modules/@hashgraph/sdk/src/token/TokenMintTransaction.js","../../node_modules/@hashgraph/sdk/src/token/TokenNftInfo.js","../../node_modules/@hashgraph/sdk/src/token/TokenNftInfoQuery.js","../../node_modules/@hashgraph/sdk/src/token/TokenPauseTransaction.js","../../node_modules/@hashgraph/sdk/src/token/TokenRevokeKycTransaction.js","../../node_modules/@hashgraph/sdk/src/token/TokenUnfreezeTransaction.js","../../node_modules/@hashgraph/sdk/src/token/TokenUnpauseTransaction.js","../../node_modules/@hashgraph/sdk/src/token/TokenKeyValidation.js","../../node_modules/@hashgraph/sdk/src/token/TokenUpdateTransaction.js","../../node_modules/@hashgraph/sdk/src/token/TokenWipeTransaction.js","../../node_modules/@hashgraph/sdk/src/topic/TopicCreateTransaction.js","../../node_modules/@hashgraph/sdk/src/topic/TopicDeleteTransaction.js","../../node_modules/@hashgraph/sdk/src/topic/TopicInfo.js","../../node_modules/@hashgraph/sdk/src/topic/TopicInfoQuery.js","../../node_modules/@hashgraph/sdk/src/topic/TopicMessageChunk.js","../../node_modules/@hashgraph/sdk/src/topic/TopicMessage.js","../../node_modules/@hashgraph/sdk/src/topic/TopicMessageQuery.js","../../node_modules/@hashgraph/sdk/src/topic/TopicMessageSubmitTransaction.js","../../node_modules/@hashgraph/sdk/src/topic/TopicUpdateTransaction.js","../../node_modules/@hashgraph/sdk/src/account/HbarTransferMap.js","../../node_modules/@hashgraph/sdk/src/account/TransferTransaction.js","../../node_modules/@hashgraph/sdk/src/Wallet.js","../../node_modules/quick-format-unescaped/index.js","../../node_modules/pino/browser.js","../../node_modules/@hashgraph/sdk/src/logger/LogLevel.js","../../node_modules/@hashgraph/sdk/src/logger/Logger.js","../../node_modules/@hashgraph/sdk/src/token/TokenUpdateNftsTransaction.js","../../node_modules/@hashgraph/sdk/src/node/ServiceEndpoint.js","../../node_modules/@hashgraph/sdk/src/node/NodeCreateTransaction.js","../../node_modules/@hashgraph/sdk/src/node/NodeDeleteTransaction.js","../../node_modules/@hashgraph/sdk/src/node/NodeUpdateTransaction.js","../../node_modules/@hashgraph/sdk/src/ManagedNodeAddress.js","../../node_modules/@hashgraph/sdk/src/ManagedNode.js","../../node_modules/@hashgraph/sdk/src/Node.js","../../node_modules/@hashgraph/sdk/src/address_book/AddressBooks.js","../../node_modules/@hashgraph/sdk/src/client/ManagedNetwork.js","../../node_modules/@hashgraph/sdk/src/client/Network.js","../../node_modules/@hashgraph/sdk/src/MirrorNode.js","../../node_modules/@hashgraph/sdk/src/client/MirrorNetwork.js","../../node_modules/@hashgraph/sdk/src/client/Client.js","../../node_modules/@hashgraph/sdk/src/constants/ClientConstants.js","../../node_modules/@hashgraph/sdk/src/channel/Channel.js","../../node_modules/@hashgraph/sdk/src/channel/WebChannel.js","../../node_modules/@hashgraph/sdk/src/client/WebClient.js","../../node_modules/@hashgraph/sdk/src/query/CostQuery.js","../../node_modules/@hashgraph/sdk/src/exports.js","../../node_modules/@hashgraph/hedera-wallet-connect/dist/lib/shared/chainIds.js","../../node_modules/@hashgraph/hedera-wallet-connect/dist/lib/shared/events.js","../../node_modules/@hashgraph/hedera-wallet-connect/dist/lib/shared/methods.js","../../node_modules/protobufjs/src/util/longbits.js","../../node_modules/protobufjs/src/util/minimal.js","../../node_modules/protobufjs/src/writer.js","../../node_modules/protobufjs/src/writer_buffer.js","../../node_modules/protobufjs/src/reader.js","../../node_modules/protobufjs/src/reader_buffer.js","../../node_modules/protobufjs/src/rpc/service.js","../../node_modules/protobufjs/src/rpc.js","../../node_modules/protobufjs/src/roots.js","../../node_modules/protobufjs/src/index-minimal.js","../../node_modules/protobufjs/minimal.js","../../node_modules/@hashgraph/proto/node_modules/long/src/long.js","../../node_modules/@hashgraph/hedera-wallet-connect/dist/lib/shared/utils.js","../../node_modules/@hashgraph/proto/lib/proto.js","../../node_modules/@hashgraph/proto/lib/index.js","../../node_modules/@hashgraph/hedera-wallet-connect/dist/lib/shared/extensionController.js","../../node_modules/tslib/tslib.es6.js","../../node_modules/@walletconnect/time/dist/cjs/utils/delay.js","../../node_modules/@walletconnect/time/dist/cjs/constants/misc.js","../../node_modules/@walletconnect/time/dist/cjs/constants/time.js","../../node_modules/@walletconnect/time/dist/cjs/constants/index.js","../../node_modules/@walletconnect/time/dist/cjs/utils/convert.js","../../node_modules/@walletconnect/time/dist/cjs/utils/index.js","../../node_modules/@walletconnect/time/dist/cjs/watch.js","../../node_modules/@walletconnect/time/dist/cjs/types/watch.js","../../node_modules/@walletconnect/time/dist/cjs/types/index.js","../../node_modules/@walletconnect/time/dist/cjs/index.js","../../node_modules/@walletconnect/events/dist/esm/events.js","../../node_modules/@walletconnect/heartbeat/dist/index.es.js","../../node_modules/destr/dist/index.mjs","../../node_modules/unstorage/dist/shared/unstorage.BqzpVTXx.mjs","../../node_modules/unstorage/dist/index.mjs","../../node_modules/idb-keyval/dist/index.js","../../node_modules/@walletconnect/safe-json/dist/esm/index.js","../../node_modules/@walletconnect/keyvaluestorage/dist/index.es.js","../../node_modules/@walletconnect/logger/node_modules/pino/browser.js","../../node_modules/@walletconnect/logger/dist/index.es.js","../../node_modules/@stablelib/random/lib/source/browser.js","../../node_modules/@stablelib/wipe/lib/wipe.js","../../node_modules/@stablelib/random/lib/source/node.js","../../node_modules/@stablelib/random/lib/source/system.js","../../node_modules/@stablelib/int/lib/int.js","../../node_modules/@stablelib/binary/lib/binary.js","../../node_modules/@stablelib/random/lib/random.js","../../node_modules/@stablelib/sha512/lib/sha512.js","../../node_modules/@stablelib/ed25519/lib/ed25519.js","../../node_modules/@walletconnect/relay-auth/dist/esm/constants.js","../../node_modules/uint8arrays/esm/src/alloc.js","../../node_modules/uint8arrays/esm/src/concat.js","../../node_modules/multiformats/esm/vendor/base-x.js","../../node_modules/multiformats/esm/src/bytes.js","../../node_modules/multiformats/esm/src/bases/base.js","../../node_modules/multiformats/esm/src/bases/identity.js","../../node_modules/multiformats/esm/src/bases/base2.js","../../node_modules/multiformats/esm/src/bases/base8.js","../../node_modules/multiformats/esm/src/bases/base10.js","../../node_modules/multiformats/esm/src/bases/base16.js","../../node_modules/multiformats/esm/src/bases/base32.js","../../node_modules/multiformats/esm/src/bases/base36.js","../../node_modules/multiformats/esm/src/bases/base58.js","../../node_modules/multiformats/esm/src/bases/base64.js","../../node_modules/multiformats/esm/src/bases/base256emoji.js","../../node_modules/multiformats/esm/src/codecs/json.js","../../node_modules/multiformats/esm/src/basics.js","../../node_modules/uint8arrays/esm/src/util/bases.js","../../node_modules/uint8arrays/esm/src/to-string.js","../../node_modules/uint8arrays/esm/src/from-string.js","../../node_modules/@walletconnect/relay-auth/dist/esm/utils.js","../../node_modules/@walletconnect/relay-auth/dist/esm/api.js","../../node_modules/@walletconnect/window-getters/dist/cjs/index.js","../../node_modules/@walletconnect/utils/node_modules/@walletconnect/window-metadata/dist/cjs/index.js","../../node_modules/strict-uri-encode/index.js","../../node_modules/decode-uri-component/index.js","../../node_modules/split-on-first/index.js","../../node_modules/filter-obj/index.js","../../node_modules/@ethersproject/signing-key/lib.esm/elliptic.js","../../node_modules/query-string/index.js","../../node_modules/@ethersproject/signing-key/lib.esm/_version.js","../../node_modules/@ethersproject/signing-key/lib.esm/index.js","../../node_modules/@ethersproject/transactions/lib.esm/index.js","../../node_modules/@stablelib/chacha/lib/chacha.js","../../node_modules/@stablelib/constant-time/lib/constant-time.js","../../node_modules/@stablelib/poly1305/lib/poly1305.js","../../node_modules/@stablelib/chacha20poly1305/lib/chacha20poly1305.js","../../node_modules/@stablelib/hash/lib/hash.js","../../node_modules/@stablelib/hmac/lib/hmac.js","../../node_modules/@stablelib/hkdf/lib/hkdf.js","../../node_modules/@stablelib/sha256/lib/sha256.js","../../node_modules/@stablelib/x25519/lib/x25519.js","../../node_modules/@walletconnect/utils/node_modules/bn.js/lib/bn.js","../../node_modules/@walletconnect/utils/node_modules/elliptic/lib/elliptic/utils.js","../../node_modules/@walletconnect/utils/node_modules/elliptic/lib/elliptic/curve/base.js","../../node_modules/@walletconnect/utils/node_modules/elliptic/lib/elliptic/curve/short.js","../../node_modules/@walletconnect/utils/node_modules/elliptic/lib/elliptic/curve/mont.js","../../node_modules/@walletconnect/utils/node_modules/elliptic/lib/elliptic/curve/edwards.js","../../node_modules/@walletconnect/utils/node_modules/elliptic/lib/elliptic/curve/index.js","../../node_modules/@walletconnect/utils/node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js","../../node_modules/@walletconnect/utils/node_modules/elliptic/lib/elliptic/curves.js","../../node_modules/@walletconnect/utils/node_modules/elliptic/lib/elliptic/ec/key.js","../../node_modules/@walletconnect/utils/node_modules/elliptic/lib/elliptic/ec/signature.js","../../node_modules/@walletconnect/utils/node_modules/elliptic/lib/elliptic/ec/index.js","../../node_modules/@walletconnect/utils/node_modules/elliptic/lib/elliptic/eddsa/key.js","../../node_modules/@walletconnect/utils/node_modules/elliptic/lib/elliptic/eddsa/signature.js","../../node_modules/@walletconnect/utils/node_modules/elliptic/lib/elliptic/eddsa/index.js","../../node_modules/@walletconnect/utils/node_modules/elliptic/lib/elliptic.js","../../node_modules/@walletconnect/relay-api/dist/index.es.js","../../node_modules/@walletconnect/utils/dist/index.es.js","../../node_modules/@walletconnect/jsonrpc-utils/dist/esm/constants.js","../../node_modules/@walletconnect/jsonrpc-utils/dist/esm/error.js","../../node_modules/@walletconnect/environment/dist/cjs/crypto.js","../../node_modules/@walletconnect/environment/dist/cjs/env.js","../../node_modules/@walletconnect/jsonrpc-utils/dist/esm/format.js","../../node_modules/@walletconnect/environment/dist/cjs/index.js","../../node_modules/@walletconnect/jsonrpc-types/dist/index.es.js","../../node_modules/@walletconnect/jsonrpc-utils/dist/esm/url.js","../../node_modules/@walletconnect/jsonrpc-utils/dist/esm/validators.js","../../node_modules/@walletconnect/jsonrpc-provider/dist/index.es.js","../../node_modules/lodash.isequal/index.js","../../node_modules/unfetch/dist/unfetch.module.js","../../node_modules/@walletconnect/auth-client/dist/index.es.js","../../node_modules/isomorphic-unfetch/browser.js","../../node_modules/@walletconnect/sign-client/node_modules/@walletconnect/types/dist/index.es.js","../../node_modules/@walletconnect/sign-client/node_modules/detect-browser/es/index.js","../../node_modules/@walletconnect/sign-client/node_modules/@walletconnect/window-metadata/dist/cjs/index.js","../../node_modules/@walletconnect/sign-client/node_modules/bn.js/lib/bn.js","../../node_modules/@walletconnect/sign-client/node_modules/elliptic/lib/elliptic/utils.js","../../node_modules/@walletconnect/sign-client/node_modules/elliptic/lib/elliptic/curve/base.js","../../node_modules/@walletconnect/sign-client/node_modules/elliptic/lib/elliptic/curve/short.js","../../node_modules/@walletconnect/sign-client/node_modules/elliptic/lib/elliptic/curve/mont.js","../../node_modules/@walletconnect/sign-client/node_modules/elliptic/lib/elliptic/curve/edwards.js","../../node_modules/@walletconnect/sign-client/node_modules/elliptic/lib/elliptic/curve/index.js","../../node_modules/@walletconnect/sign-client/node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js","../../node_modules/@walletconnect/sign-client/node_modules/elliptic/lib/elliptic/curves.js","../../node_modules/@walletconnect/sign-client/node_modules/elliptic/lib/elliptic/ec/key.js","../../node_modules/@walletconnect/sign-client/node_modules/elliptic/lib/elliptic/ec/signature.js","../../node_modules/@walletconnect/sign-client/node_modules/elliptic/lib/elliptic/ec/index.js","../../node_modules/@walletconnect/sign-client/node_modules/elliptic/lib/elliptic/eddsa/key.js","../../node_modules/@walletconnect/sign-client/node_modules/elliptic/lib/elliptic/eddsa/signature.js","../../node_modules/@walletconnect/sign-client/node_modules/elliptic/lib/elliptic/eddsa/index.js","../../node_modules/@walletconnect/sign-client/node_modules/elliptic/lib/elliptic.js","../../node_modules/@walletconnect/sign-client/node_modules/@walletconnect/utils/dist/index.es.js","../../node_modules/@walletconnect/sign-client/node_modules/@walletconnect/jsonrpc-ws-connection/dist/index.es.js","../../node_modules/@walletconnect/sign-client/node_modules/@walletconnect/core/dist/index.es.js","../../node_modules/@walletconnect/sign-client/dist/index.es.js","../../node_modules/@walletconnect/web3wallet/dist/index.es.js","../../node_modules/@walletconnect/window-metadata/dist/cjs/index.js","../../node_modules/@walletconnect/browser-utils/node_modules/@walletconnect/window-getters/dist/cjs/index.js","../../node_modules/detect-browser/es/index.js","../../node_modules/@walletconnect/browser-utils/dist/esm/browser.js","../../node_modules/@walletconnect/browser-utils/node_modules/@walletconnect/safe-json/dist/esm/index.js","../../node_modules/@walletconnect/browser-utils/dist/esm/json.js","../../node_modules/@walletconnect/browser-utils/dist/esm/local.js","../../node_modules/@walletconnect/browser-utils/dist/esm/mobile.js","../../node_modules/@walletconnect/browser-utils/dist/esm/registry.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/can-promise.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/isarray/index.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/utils/typedarray-buffer.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/core/utils.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/core/bit-buffer.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/core/error-correction-level.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/core/bit-matrix.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/core/alignment-pattern.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/core/finder-pattern.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/core/mask-pattern.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/core/error-correction-code.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/core/galois-field.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/core/polynomial.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/core/reed-solomon-encoder.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/core/version-check.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/core/regex.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/core/mode.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/core/version.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/core/format-info.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/core/numeric-data.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/core/alphanumeric-data.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/core/byte-data.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/core/kanji-data.js","../../node_modules/dijkstrajs/dijkstra.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/core/segments.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/core/qrcode.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/renderer/utils.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/renderer/canvas.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/renderer/svg-tag.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/browser.js","../../node_modules/toggle-selection/index.js","../../node_modules/copy-to-clipboard/index.js","../../node_modules/preact/dist/preact.module.js","../../node_modules/preact/hooks/dist/hooks.module.js","../../node_modules/preact/compat/dist/compat.module.js","../../node_modules/@walletconnect/qrcode-modal/dist/cjs/index.js","../../node_modules/proxy-compare/dist/index.modern.js","../../node_modules/valtio/esm/vanilla.mjs","../../node_modules/@walletconnect/modal-core/dist/index.js","../../node_modules/@walletconnect/modal/dist/index.js","../../node_modules/@hashgraph/hedera-wallet-connect/dist/lib/shared/logger.js","../../node_modules/@hashgraph/hedera-wallet-connect/dist/lib/dapp/SessionNotFoundError.js","../../node_modules/@hashgraph/hedera-wallet-connect/dist/lib/dapp/DAppSigner.js","../../node_modules/@hashgraph/hedera-wallet-connect/dist/lib/dapp/index.js","../../src/logger/logger.ts","../../node_modules/fetch-retry/dist/fetch-retry.umd.js","../../src/utils/retry.ts","../../src/types.ts","../../src/index.ts","../../node_modules/@lit/reactive-element/css-tag.js","../../node_modules/@lit/reactive-element/reactive-element.js","../../node_modules/lit-html/lit-html.js","../../node_modules/lit-element/lit-element.js","../../node_modules/@lit/reactive-element/decorators/custom-element.js","../../node_modules/@lit/reactive-element/decorators/property.js","../../node_modules/@lit/reactive-element/decorators/state.js","../../node_modules/@lit/reactive-element/decorators/query-assigned-elements.js","../../node_modules/lit-html/directive.js","../../node_modules/lit-html/directives/class-map.js","../../node_modules/@motionone/utils/dist/array.es.js","../../node_modules/@motionone/utils/dist/clamp.es.js","../../node_modules/@motionone/utils/dist/defaults.es.js","../../node_modules/@motionone/utils/dist/is-number.es.js","../../node_modules/@motionone/utils/dist/is-easing-list.es.js","../../node_modules/@motionone/utils/dist/wrap.es.js","../../node_modules/@motionone/utils/dist/easing.es.js","../../node_modules/@motionone/utils/dist/mix.es.js","../../node_modules/@motionone/utils/dist/noop.es.js","../../node_modules/@motionone/utils/dist/progress.es.js","../../node_modules/@motionone/utils/dist/offset.es.js","../../node_modules/@motionone/utils/dist/interpolate.es.js","../../node_modules/@motionone/utils/dist/is-cubic-bezier.es.js","../../node_modules/@motionone/utils/dist/is-easing-generator.es.js","../../node_modules/@motionone/utils/dist/is-function.es.js","../../node_modules/@motionone/utils/dist/is-string.es.js","../../node_modules/@motionone/utils/dist/time.es.js","../../node_modules/@motionone/easing/dist/cubic-bezier.es.js","../../node_modules/@motionone/easing/dist/steps.es.js","../../node_modules/@motionone/animation/dist/utils/easing.es.js","../../node_modules/@motionone/animation/dist/Animation.es.js","../../node_modules/hey-listen/dist/hey-listen.es.js","../../node_modules/@motionone/types/dist/MotionValue.es.js","../../node_modules/@motionone/dom/dist/animate/data.es.js","../../node_modules/@motionone/dom/dist/animate/utils/transforms.es.js","../../node_modules/@motionone/dom/dist/animate/utils/css-var.es.js","../../node_modules/@motionone/dom/dist/animate/utils/feature-detection.es.js","../../node_modules/@motionone/dom/dist/animate/utils/easing.es.js","../../node_modules/@motionone/dom/dist/animate/utils/keyframes.es.js","../../node_modules/@motionone/dom/dist/animate/utils/get-style-name.es.js","../../node_modules/@motionone/dom/dist/animate/style.es.js","../../node_modules/@motionone/dom/dist/animate/utils/stop-animation.es.js","../../node_modules/@motionone/dom/dist/animate/utils/get-unit.es.js","../../node_modules/@motionone/dom/dist/animate/animate-style.es.js","../../node_modules/@motionone/dom/dist/animate/utils/options.es.js","../../node_modules/@motionone/dom/dist/utils/resolve-elements.es.js","../../node_modules/@motionone/dom/dist/animate/utils/controls.es.js","../../node_modules/@motionone/dom/dist/utils/stagger.es.js","../../node_modules/@motionone/dom/dist/animate/create-animate.es.js","../../node_modules/@motionone/dom/dist/animate/index.es.js","../../node_modules/motion/dist/animate.es.js","../../node_modules/lit-html/directives/if-defined.js","../../node_modules/qrcode/lib/can-promise.js","../../node_modules/qrcode/lib/core/utils.js","../../node_modules/qrcode/lib/core/bit-buffer.js","../../node_modules/qrcode/lib/core/error-correction-level.js","../../node_modules/qrcode/lib/core/bit-matrix.js","../../node_modules/qrcode/lib/core/alignment-pattern.js","../../node_modules/qrcode/lib/core/finder-pattern.js","../../node_modules/qrcode/lib/core/mask-pattern.js","../../node_modules/qrcode/lib/core/error-correction-code.js","../../node_modules/qrcode/lib/core/galois-field.js","../../node_modules/qrcode/lib/core/polynomial.js","../../node_modules/qrcode/lib/core/reed-solomon-encoder.js","../../node_modules/qrcode/lib/core/version-check.js","../../node_modules/qrcode/lib/core/regex.js","../../node_modules/qrcode/lib/core/mode.js","../../node_modules/qrcode/lib/core/version.js","../../node_modules/qrcode/lib/core/format-info.js","../../node_modules/qrcode/lib/core/numeric-data.js","../../node_modules/qrcode/lib/core/alphanumeric-data.js","../../node_modules/encode-utf8/index.js","../../node_modules/qrcode/lib/core/byte-data.js","../../node_modules/qrcode/lib/core/kanji-data.js","../../node_modules/qrcode/lib/core/segments.js","../../node_modules/qrcode/lib/core/qrcode.js","../../node_modules/qrcode/lib/renderer/utils.js","../../node_modules/qrcode/lib/renderer/canvas.js","../../node_modules/qrcode/lib/renderer/svg-tag.js","../../node_modules/qrcode/lib/browser.js","../../node_modules/@walletconnect/modal-ui/dist/index.js"],"sourcesContent":["var buffer = {};\n\nvar base64Js = {};\n\nbase64Js.byteLength = byteLength;\nbase64Js.toByteArray = toByteArray;\nbase64Js.fromByteArray = fromByteArray;\n\nvar lookup = [];\nvar revLookup = [];\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62;\nrevLookup['_'.charCodeAt(0)] = 63;\n\nfunction getLens (b64) {\n var len = b64.length;\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=');\n if (validLen === -1) validLen = len;\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4);\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp;\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n\n var curByte = 0;\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen;\n\n var i;\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)];\n arr[curByte++] = (tmp >> 16) & 0xFF;\n arr[curByte++] = (tmp >> 8) & 0xFF;\n arr[curByte++] = tmp & 0xFF;\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4);\n arr[curByte++] = tmp & 0xFF;\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2);\n arr[curByte++] = (tmp >> 8) & 0xFF;\n arr[curByte++] = tmp & 0xFF;\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp;\n var output = [];\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF);\n output.push(tripletToBase64(tmp));\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp;\n var len = uint8.length;\n var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n var parts = [];\n var maxChunkLength = 16383; // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)));\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1];\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n );\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1];\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n );\n }\n\n return parts.join('')\n}\n\nvar ieee754 = {};\n\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\n\nieee754.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = (nBytes * 8) - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? (nBytes - 1) : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n\n i += d;\n\n e = s & ((1 << (-nBits)) - 1);\n s >>= (-nBits);\n nBits += eLen;\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1);\n e >>= (-nBits);\n nBits += mLen;\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n};\n\nieee754.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = (nBytes * 8) - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0);\n var i = isLE ? 0 : (nBytes - 1);\n var d = isLE ? 1 : -1;\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0;\n\n value = Math.abs(value);\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m;\n eLen += mLen;\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128;\n};\n\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n(function (exports) {\n\n\tconst base64 = base64Js;\n\tconst ieee754$1 = ieee754;\n\tconst customInspectSymbol =\n\t (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n\t ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n\t : null;\n\n\texports.Buffer = Buffer;\n\texports.SlowBuffer = SlowBuffer;\n\texports.INSPECT_MAX_BYTES = 50;\n\n\tconst K_MAX_LENGTH = 0x7fffffff;\n\texports.kMaxLength = K_MAX_LENGTH;\n\tconst { Uint8Array: GlobalUint8Array, ArrayBuffer: GlobalArrayBuffer, SharedArrayBuffer: GlobalSharedArrayBuffer } = globalThis;\n\n\t/**\n\t * If `Buffer.TYPED_ARRAY_SUPPORT`:\n\t * === true Use Uint8Array implementation (fastest)\n\t * === false Print warning and recommend using `buffer` v4.x which has an Object\n\t * implementation (most compatible, even IE6)\n\t *\n\t * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n\t * Opera 11.6+, iOS 4.2+.\n\t *\n\t * We report that the browser does not support typed arrays if the are not subclassable\n\t * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n\t * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n\t * for __proto__ and has a buggy typed array implementation.\n\t */\n\tBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport();\n\n\tif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n\t typeof console.error === 'function') {\n\t console.error(\n\t 'This browser lacks typed array (Uint8Array) support which is required by ' +\n\t '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n\t );\n\t}\n\n\tfunction typedArraySupport () {\n\t // Can typed array instances can be augmented?\n\t try {\n\t const arr = new GlobalUint8Array(1);\n\t const proto = { foo: function () { return 42 } };\n\t Object.setPrototypeOf(proto, GlobalUint8Array.prototype);\n\t Object.setPrototypeOf(arr, proto);\n\t return arr.foo() === 42\n\t } catch (e) {\n\t return false\n\t }\n\t}\n\n\tObject.defineProperty(Buffer.prototype, 'parent', {\n\t enumerable: true,\n\t get: function () {\n\t if (!Buffer.isBuffer(this)) return undefined\n\t return this.buffer\n\t }\n\t});\n\n\tObject.defineProperty(Buffer.prototype, 'offset', {\n\t enumerable: true,\n\t get: function () {\n\t if (!Buffer.isBuffer(this)) return undefined\n\t return this.byteOffset\n\t }\n\t});\n\n\tfunction createBuffer (length) {\n\t if (length > K_MAX_LENGTH) {\n\t throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n\t }\n\t // Return an augmented `Uint8Array` instance\n\t const buf = new GlobalUint8Array(length);\n\t Object.setPrototypeOf(buf, Buffer.prototype);\n\t return buf\n\t}\n\n\t/**\n\t * The Buffer constructor returns instances of `Uint8Array` that have their\n\t * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n\t * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n\t * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n\t * returns a single octet.\n\t *\n\t * The `Uint8Array` prototype remains unmodified.\n\t */\n\n\tfunction Buffer (arg, encodingOrOffset, length) {\n\t // Common case.\n\t if (typeof arg === 'number') {\n\t if (typeof encodingOrOffset === 'string') {\n\t throw new TypeError(\n\t 'The \"string\" argument must be of type string. Received type number'\n\t )\n\t }\n\t return allocUnsafe(arg)\n\t }\n\t return from(arg, encodingOrOffset, length)\n\t}\n\n\tBuffer.poolSize = 8192; // not used by this implementation\n\n\tfunction from (value, encodingOrOffset, length) {\n\t if (typeof value === 'string') {\n\t return fromString(value, encodingOrOffset)\n\t }\n\n\t if (GlobalArrayBuffer.isView(value)) {\n\t return fromArrayView(value)\n\t }\n\n\t if (value == null) {\n\t throw new TypeError(\n\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t 'or Array-like Object. Received type ' + (typeof value)\n\t )\n\t }\n\n\t if (isInstance(value, GlobalArrayBuffer) ||\n\t (value && isInstance(value.buffer, GlobalArrayBuffer))) {\n\t return fromArrayBuffer(value, encodingOrOffset, length)\n\t }\n\n\t if (typeof GlobalSharedArrayBuffer !== 'undefined' &&\n\t (isInstance(value, GlobalSharedArrayBuffer) ||\n\t (value && isInstance(value.buffer, GlobalSharedArrayBuffer)))) {\n\t return fromArrayBuffer(value, encodingOrOffset, length)\n\t }\n\n\t if (typeof value === 'number') {\n\t throw new TypeError(\n\t 'The \"value\" argument must not be of type number. Received type number'\n\t )\n\t }\n\n\t const valueOf = value.valueOf && value.valueOf();\n\t if (valueOf != null && valueOf !== value) {\n\t return Buffer.from(valueOf, encodingOrOffset, length)\n\t }\n\n\t const b = fromObject(value);\n\t if (b) return b\n\n\t if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n\t typeof value[Symbol.toPrimitive] === 'function') {\n\t return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n\t }\n\n\t throw new TypeError(\n\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t 'or Array-like Object. Received type ' + (typeof value)\n\t )\n\t}\n\n\t/**\n\t * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n\t * if value is a number.\n\t * Buffer.from(str[, encoding])\n\t * Buffer.from(array)\n\t * Buffer.from(buffer)\n\t * Buffer.from(arrayBuffer[, byteOffset[, length]])\n\t **/\n\tBuffer.from = function (value, encodingOrOffset, length) {\n\t return from(value, encodingOrOffset, length)\n\t};\n\n\t// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n\t// https://github.com/feross/buffer/pull/148\n\tObject.setPrototypeOf(Buffer.prototype, GlobalUint8Array.prototype);\n\tObject.setPrototypeOf(Buffer, GlobalUint8Array);\n\n\tfunction assertSize (size) {\n\t if (typeof size !== 'number') {\n\t throw new TypeError('\"size\" argument must be of type number')\n\t } else if (size < 0) {\n\t throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n\t }\n\t}\n\n\tfunction alloc (size, fill, encoding) {\n\t assertSize(size);\n\t if (size <= 0) {\n\t return createBuffer(size)\n\t }\n\t if (fill !== undefined) {\n\t // Only pay attention to encoding if it's a string. This\n\t // prevents accidentally sending in a number that would\n\t // be interpreted as a start offset.\n\t return typeof encoding === 'string'\n\t ? createBuffer(size).fill(fill, encoding)\n\t : createBuffer(size).fill(fill)\n\t }\n\t return createBuffer(size)\n\t}\n\n\t/**\n\t * Creates a new filled Buffer instance.\n\t * alloc(size[, fill[, encoding]])\n\t **/\n\tBuffer.alloc = function (size, fill, encoding) {\n\t return alloc(size, fill, encoding)\n\t};\n\n\tfunction allocUnsafe (size) {\n\t assertSize(size);\n\t return createBuffer(size < 0 ? 0 : checked(size) | 0)\n\t}\n\n\t/**\n\t * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n\t * */\n\tBuffer.allocUnsafe = function (size) {\n\t return allocUnsafe(size)\n\t};\n\t/**\n\t * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n\t */\n\tBuffer.allocUnsafeSlow = function (size) {\n\t return allocUnsafe(size)\n\t};\n\n\tfunction fromString (string, encoding) {\n\t if (typeof encoding !== 'string' || encoding === '') {\n\t encoding = 'utf8';\n\t }\n\n\t if (!Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\n\t const length = byteLength(string, encoding) | 0;\n\t let buf = createBuffer(length);\n\n\t const actual = buf.write(string, encoding);\n\n\t if (actual !== length) {\n\t // Writing a hex string, for example, that contains invalid characters will\n\t // cause everything after the first invalid character to be ignored. (e.g.\n\t // 'abxxcd' will be treated as 'ab')\n\t buf = buf.slice(0, actual);\n\t }\n\n\t return buf\n\t}\n\n\tfunction fromArrayLike (array) {\n\t const length = array.length < 0 ? 0 : checked(array.length) | 0;\n\t const buf = createBuffer(length);\n\t for (let i = 0; i < length; i += 1) {\n\t buf[i] = array[i] & 255;\n\t }\n\t return buf\n\t}\n\n\tfunction fromArrayView (arrayView) {\n\t if (isInstance(arrayView, GlobalUint8Array)) {\n\t const copy = new GlobalUint8Array(arrayView);\n\t return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n\t }\n\t return fromArrayLike(arrayView)\n\t}\n\n\tfunction fromArrayBuffer (array, byteOffset, length) {\n\t if (byteOffset < 0 || array.byteLength < byteOffset) {\n\t throw new RangeError('\"offset\" is outside of buffer bounds')\n\t }\n\n\t if (array.byteLength < byteOffset + (length || 0)) {\n\t throw new RangeError('\"length\" is outside of buffer bounds')\n\t }\n\n\t let buf;\n\t if (byteOffset === undefined && length === undefined) {\n\t buf = new GlobalUint8Array(array);\n\t } else if (length === undefined) {\n\t buf = new GlobalUint8Array(array, byteOffset);\n\t } else {\n\t buf = new GlobalUint8Array(array, byteOffset, length);\n\t }\n\n\t // Return an augmented `Uint8Array` instance\n\t Object.setPrototypeOf(buf, Buffer.prototype);\n\n\t return buf\n\t}\n\n\tfunction fromObject (obj) {\n\t if (Buffer.isBuffer(obj)) {\n\t const len = checked(obj.length) | 0;\n\t const buf = createBuffer(len);\n\n\t if (buf.length === 0) {\n\t return buf\n\t }\n\n\t obj.copy(buf, 0, 0, len);\n\t return buf\n\t }\n\n\t if (obj.length !== undefined) {\n\t if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n\t return createBuffer(0)\n\t }\n\t return fromArrayLike(obj)\n\t }\n\n\t if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n\t return fromArrayLike(obj.data)\n\t }\n\t}\n\n\tfunction checked (length) {\n\t // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n\t // length is NaN (which is otherwise coerced to zero.)\n\t if (length >= K_MAX_LENGTH) {\n\t throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n\t 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n\t }\n\t return length | 0\n\t}\n\n\tfunction SlowBuffer (length) {\n\t if (+length != length) { // eslint-disable-line eqeqeq\n\t length = 0;\n\t }\n\t return Buffer.alloc(+length)\n\t}\n\n\tBuffer.isBuffer = function isBuffer (b) {\n\t return b != null && b._isBuffer === true &&\n\t b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n\t};\n\n\tBuffer.compare = function compare (a, b) {\n\t if (isInstance(a, GlobalUint8Array)) a = Buffer.from(a, a.offset, a.byteLength);\n\t if (isInstance(b, GlobalUint8Array)) b = Buffer.from(b, b.offset, b.byteLength);\n\t if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n\t throw new TypeError(\n\t 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n\t )\n\t }\n\n\t if (a === b) return 0\n\n\t let x = a.length;\n\t let y = b.length;\n\n\t for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n\t if (a[i] !== b[i]) {\n\t x = a[i];\n\t y = b[i];\n\t break\n\t }\n\t }\n\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t};\n\n\tBuffer.isEncoding = function isEncoding (encoding) {\n\t switch (String(encoding).toLowerCase()) {\n\t case 'hex':\n\t case 'utf8':\n\t case 'utf-8':\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t case 'base64':\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return true\n\t default:\n\t return false\n\t }\n\t};\n\n\tBuffer.concat = function concat (list, length) {\n\t if (!Array.isArray(list)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t }\n\n\t if (list.length === 0) {\n\t return Buffer.alloc(0)\n\t }\n\n\t let i;\n\t if (length === undefined) {\n\t length = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t length += list[i].length;\n\t }\n\t }\n\n\t const buffer = Buffer.allocUnsafe(length);\n\t let pos = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t let buf = list[i];\n\t if (isInstance(buf, GlobalUint8Array)) {\n\t if (pos + buf.length > buffer.length) {\n\t if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf);\n\t buf.copy(buffer, pos);\n\t } else {\n\t GlobalUint8Array.prototype.set.call(\n\t buffer,\n\t buf,\n\t pos\n\t );\n\t }\n\t } else if (!Buffer.isBuffer(buf)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t } else {\n\t buf.copy(buffer, pos);\n\t }\n\t pos += buf.length;\n\t }\n\t return buffer\n\t};\n\n\tfunction byteLength (string, encoding) {\n\t if (Buffer.isBuffer(string)) {\n\t return string.length\n\t }\n\t if (GlobalArrayBuffer.isView(string) || isInstance(string, GlobalArrayBuffer)) {\n\t return string.byteLength\n\t }\n\t if (typeof string !== 'string') {\n\t throw new TypeError(\n\t 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n\t 'Received type ' + typeof string\n\t )\n\t }\n\n\t const len = string.length;\n\t const mustMatch = (arguments.length > 2 && arguments[2] === true);\n\t if (!mustMatch && len === 0) return 0\n\n\t // Use a for loop to avoid recursion\n\t let loweredCase = false;\n\t for (;;) {\n\t switch (encoding) {\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t return len\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8ToBytes(string).length\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return len * 2\n\t case 'hex':\n\t return len >>> 1\n\t case 'base64':\n\t return base64ToBytes(string).length\n\t default:\n\t if (loweredCase) {\n\t return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n\t }\n\t encoding = ('' + encoding).toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t}\n\tBuffer.byteLength = byteLength;\n\n\tfunction slowToString (encoding, start, end) {\n\t let loweredCase = false;\n\n\t // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n\t // property of a typed array.\n\n\t // This behaves neither like String nor Uint8Array in that we set start/end\n\t // to their upper/lower bounds if the value passed is out of range.\n\t // undefined is handled specially as per ECMA-262 6th Edition,\n\t // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n\t if (start === undefined || start < 0) {\n\t start = 0;\n\t }\n\t // Return early if start > this.length. Done here to prevent potential uint32\n\t // coercion fail below.\n\t if (start > this.length) {\n\t return ''\n\t }\n\n\t if (end === undefined || end > this.length) {\n\t end = this.length;\n\t }\n\n\t if (end <= 0) {\n\t return ''\n\t }\n\n\t // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n\t end >>>= 0;\n\t start >>>= 0;\n\n\t if (end <= start) {\n\t return ''\n\t }\n\n\t if (!encoding) encoding = 'utf8';\n\n\t while (true) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexSlice(this, start, end)\n\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Slice(this, start, end)\n\n\t case 'ascii':\n\t return asciiSlice(this, start, end)\n\n\t case 'latin1':\n\t case 'binary':\n\t return latin1Slice(this, start, end)\n\n\t case 'base64':\n\t return base64Slice(this, start, end)\n\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return utf16leSlice(this, start, end)\n\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = (encoding + '').toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t}\n\n\t// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n\t// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n\t// reliably in a browserify context because there could be multiple different\n\t// copies of the 'buffer' package in use. This method works even for Buffer\n\t// instances that were created from another copy of the `buffer` package.\n\t// See: https://github.com/feross/buffer/issues/154\n\tBuffer.prototype._isBuffer = true;\n\n\tfunction swap (b, n, m) {\n\t const i = b[n];\n\t b[n] = b[m];\n\t b[m] = i;\n\t}\n\n\tBuffer.prototype.swap16 = function swap16 () {\n\t const len = this.length;\n\t if (len % 2 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 16-bits')\n\t }\n\t for (let i = 0; i < len; i += 2) {\n\t swap(this, i, i + 1);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.swap32 = function swap32 () {\n\t const len = this.length;\n\t if (len % 4 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 32-bits')\n\t }\n\t for (let i = 0; i < len; i += 4) {\n\t swap(this, i, i + 3);\n\t swap(this, i + 1, i + 2);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.swap64 = function swap64 () {\n\t const len = this.length;\n\t if (len % 8 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 64-bits')\n\t }\n\t for (let i = 0; i < len; i += 8) {\n\t swap(this, i, i + 7);\n\t swap(this, i + 1, i + 6);\n\t swap(this, i + 2, i + 5);\n\t swap(this, i + 3, i + 4);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.toString = function toString () {\n\t const length = this.length;\n\t if (length === 0) return ''\n\t if (arguments.length === 0) return utf8Slice(this, 0, length)\n\t return slowToString.apply(this, arguments)\n\t};\n\n\tBuffer.prototype.toLocaleString = Buffer.prototype.toString;\n\n\tBuffer.prototype.equals = function equals (b) {\n\t if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n\t if (this === b) return true\n\t return Buffer.compare(this, b) === 0\n\t};\n\n\tBuffer.prototype.inspect = function inspect () {\n\t let str = '';\n\t const max = exports.INSPECT_MAX_BYTES;\n\t str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim();\n\t if (this.length > max) str += ' ... ';\n\t return ''\n\t};\n\tif (customInspectSymbol) {\n\t Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect;\n\t}\n\n\tBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n\t if (isInstance(target, GlobalUint8Array)) {\n\t target = Buffer.from(target, target.offset, target.byteLength);\n\t }\n\t if (!Buffer.isBuffer(target)) {\n\t throw new TypeError(\n\t 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n\t 'Received type ' + (typeof target)\n\t )\n\t }\n\n\t if (start === undefined) {\n\t start = 0;\n\t }\n\t if (end === undefined) {\n\t end = target ? target.length : 0;\n\t }\n\t if (thisStart === undefined) {\n\t thisStart = 0;\n\t }\n\t if (thisEnd === undefined) {\n\t thisEnd = this.length;\n\t }\n\n\t if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n\t throw new RangeError('out of range index')\n\t }\n\n\t if (thisStart >= thisEnd && start >= end) {\n\t return 0\n\t }\n\t if (thisStart >= thisEnd) {\n\t return -1\n\t }\n\t if (start >= end) {\n\t return 1\n\t }\n\n\t start >>>= 0;\n\t end >>>= 0;\n\t thisStart >>>= 0;\n\t thisEnd >>>= 0;\n\n\t if (this === target) return 0\n\n\t let x = thisEnd - thisStart;\n\t let y = end - start;\n\t const len = Math.min(x, y);\n\n\t const thisCopy = this.slice(thisStart, thisEnd);\n\t const targetCopy = target.slice(start, end);\n\n\t for (let i = 0; i < len; ++i) {\n\t if (thisCopy[i] !== targetCopy[i]) {\n\t x = thisCopy[i];\n\t y = targetCopy[i];\n\t break\n\t }\n\t }\n\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t};\n\n\t// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n\t// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n\t//\n\t// Arguments:\n\t// - buffer - a Buffer to search\n\t// - val - a string, Buffer, or number\n\t// - byteOffset - an index into `buffer`; will be clamped to an int32\n\t// - encoding - an optional encoding, relevant is val is a string\n\t// - dir - true for indexOf, false for lastIndexOf\n\tfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n\t // Empty buffer means no match\n\t if (buffer.length === 0) return -1\n\n\t // Normalize byteOffset\n\t if (typeof byteOffset === 'string') {\n\t encoding = byteOffset;\n\t byteOffset = 0;\n\t } else if (byteOffset > 0x7fffffff) {\n\t byteOffset = 0x7fffffff;\n\t } else if (byteOffset < -0x80000000) {\n\t byteOffset = -0x80000000;\n\t }\n\t byteOffset = +byteOffset; // Coerce to Number.\n\t if (numberIsNaN(byteOffset)) {\n\t // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n\t byteOffset = dir ? 0 : (buffer.length - 1);\n\t }\n\n\t // Normalize byteOffset: negative offsets start from the end of the buffer\n\t if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\t if (byteOffset >= buffer.length) {\n\t if (dir) return -1\n\t else byteOffset = buffer.length - 1;\n\t } else if (byteOffset < 0) {\n\t if (dir) byteOffset = 0;\n\t else return -1\n\t }\n\n\t // Normalize val\n\t if (typeof val === 'string') {\n\t val = Buffer.from(val, encoding);\n\t }\n\n\t // Finally, search either indexOf (if dir is true) or lastIndexOf\n\t if (Buffer.isBuffer(val)) {\n\t // Special case: looking for empty string/buffer always fails\n\t if (val.length === 0) {\n\t return -1\n\t }\n\t return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n\t } else if (typeof val === 'number') {\n\t val = val & 0xFF; // Search for a byte value [0-255]\n\t if (typeof GlobalUint8Array.prototype.indexOf === 'function') {\n\t if (dir) {\n\t return GlobalUint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n\t } else {\n\t return GlobalUint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n\t }\n\t }\n\t return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n\t }\n\n\t throw new TypeError('val must be string, number or Buffer')\n\t}\n\n\tfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n\t let indexSize = 1;\n\t let arrLength = arr.length;\n\t let valLength = val.length;\n\n\t if (encoding !== undefined) {\n\t encoding = String(encoding).toLowerCase();\n\t if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n\t encoding === 'utf16le' || encoding === 'utf-16le') {\n\t if (arr.length < 2 || val.length < 2) {\n\t return -1\n\t }\n\t indexSize = 2;\n\t arrLength /= 2;\n\t valLength /= 2;\n\t byteOffset /= 2;\n\t }\n\t }\n\n\t function read (buf, i) {\n\t if (indexSize === 1) {\n\t return buf[i]\n\t } else {\n\t return buf.readUInt16BE(i * indexSize)\n\t }\n\t }\n\n\t let i;\n\t if (dir) {\n\t let foundIndex = -1;\n\t for (i = byteOffset; i < arrLength; i++) {\n\t if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n\t if (foundIndex === -1) foundIndex = i;\n\t if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n\t } else {\n\t if (foundIndex !== -1) i -= i - foundIndex;\n\t foundIndex = -1;\n\t }\n\t }\n\t } else {\n\t if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n\t for (i = byteOffset; i >= 0; i--) {\n\t let found = true;\n\t for (let j = 0; j < valLength; j++) {\n\t if (read(arr, i + j) !== read(val, j)) {\n\t found = false;\n\t break\n\t }\n\t }\n\t if (found) return i\n\t }\n\t }\n\n\t return -1\n\t}\n\n\tBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n\t return this.indexOf(val, byteOffset, encoding) !== -1\n\t};\n\n\tBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n\t};\n\n\tBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n\t};\n\n\tfunction hexWrite (buf, string, offset, length) {\n\t offset = Number(offset) || 0;\n\t const remaining = buf.length - offset;\n\t if (!length) {\n\t length = remaining;\n\t } else {\n\t length = Number(length);\n\t if (length > remaining) {\n\t length = remaining;\n\t }\n\t }\n\n\t const strLen = string.length;\n\n\t if (length > strLen / 2) {\n\t length = strLen / 2;\n\t }\n\t let i;\n\t for (i = 0; i < length; ++i) {\n\t const parsed = parseInt(string.substr(i * 2, 2), 16);\n\t if (numberIsNaN(parsed)) return i\n\t buf[offset + i] = parsed;\n\t }\n\t return i\n\t}\n\n\tfunction utf8Write (buf, string, offset, length) {\n\t return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tfunction asciiWrite (buf, string, offset, length) {\n\t return blitBuffer(asciiToBytes(string), buf, offset, length)\n\t}\n\n\tfunction base64Write (buf, string, offset, length) {\n\t return blitBuffer(base64ToBytes(string), buf, offset, length)\n\t}\n\n\tfunction ucs2Write (buf, string, offset, length) {\n\t return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tBuffer.prototype.write = function write (string, offset, length, encoding) {\n\t // Buffer#write(string)\n\t if (offset === undefined) {\n\t encoding = 'utf8';\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, encoding)\n\t } else if (length === undefined && typeof offset === 'string') {\n\t encoding = offset;\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, offset[, length][, encoding])\n\t } else if (isFinite(offset)) {\n\t offset = offset >>> 0;\n\t if (isFinite(length)) {\n\t length = length >>> 0;\n\t if (encoding === undefined) encoding = 'utf8';\n\t } else {\n\t encoding = length;\n\t length = undefined;\n\t }\n\t } else {\n\t throw new Error(\n\t 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n\t )\n\t }\n\n\t const remaining = this.length - offset;\n\t if (length === undefined || length > remaining) length = remaining;\n\n\t if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n\t throw new RangeError('Attempt to write outside buffer bounds')\n\t }\n\n\t if (!encoding) encoding = 'utf8';\n\n\t let loweredCase = false;\n\t for (;;) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexWrite(this, string, offset, length)\n\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Write(this, string, offset, length)\n\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t return asciiWrite(this, string, offset, length)\n\n\t case 'base64':\n\t // Warning: maxLength not taken into account in base64Write\n\t return base64Write(this, string, offset, length)\n\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return ucs2Write(this, string, offset, length)\n\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = ('' + encoding).toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t};\n\n\tBuffer.prototype.toJSON = function toJSON () {\n\t return {\n\t type: 'Buffer',\n\t data: Array.prototype.slice.call(this._arr || this, 0)\n\t }\n\t};\n\n\tfunction base64Slice (buf, start, end) {\n\t if (start === 0 && end === buf.length) {\n\t return base64.fromByteArray(buf)\n\t } else {\n\t return base64.fromByteArray(buf.slice(start, end))\n\t }\n\t}\n\n\tfunction utf8Slice (buf, start, end) {\n\t end = Math.min(buf.length, end);\n\t const res = [];\n\n\t let i = start;\n\t while (i < end) {\n\t const firstByte = buf[i];\n\t let codePoint = null;\n\t let bytesPerSequence = (firstByte > 0xEF)\n\t ? 4\n\t : (firstByte > 0xDF)\n\t ? 3\n\t : (firstByte > 0xBF)\n\t ? 2\n\t : 1;\n\n\t if (i + bytesPerSequence <= end) {\n\t let secondByte, thirdByte, fourthByte, tempCodePoint;\n\n\t switch (bytesPerSequence) {\n\t case 1:\n\t if (firstByte < 0x80) {\n\t codePoint = firstByte;\n\t }\n\t break\n\t case 2:\n\t secondByte = buf[i + 1];\n\t if ((secondByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F);\n\t if (tempCodePoint > 0x7F) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t break\n\t case 3:\n\t secondByte = buf[i + 1];\n\t thirdByte = buf[i + 2];\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F);\n\t if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t break\n\t case 4:\n\t secondByte = buf[i + 1];\n\t thirdByte = buf[i + 2];\n\t fourthByte = buf[i + 3];\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F);\n\t if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t }\n\t }\n\n\t if (codePoint === null) {\n\t // we did not generate a valid codePoint so insert a\n\t // replacement char (U+FFFD) and advance only 1 byte\n\t codePoint = 0xFFFD;\n\t bytesPerSequence = 1;\n\t } else if (codePoint > 0xFFFF) {\n\t // encode to utf16 (surrogate pair dance)\n\t codePoint -= 0x10000;\n\t res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n\t codePoint = 0xDC00 | codePoint & 0x3FF;\n\t }\n\n\t res.push(codePoint);\n\t i += bytesPerSequence;\n\t }\n\n\t return decodeCodePointsArray(res)\n\t}\n\n\t// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n\t// the lowest limit is Chrome, with 0x10000 args.\n\t// We go 1 magnitude less, for safety\n\tconst MAX_ARGUMENTS_LENGTH = 0x1000;\n\n\tfunction decodeCodePointsArray (codePoints) {\n\t const len = codePoints.length;\n\t if (len <= MAX_ARGUMENTS_LENGTH) {\n\t return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n\t }\n\n\t // Decode in chunks to avoid \"call stack size exceeded\".\n\t let res = '';\n\t let i = 0;\n\t while (i < len) {\n\t res += String.fromCharCode.apply(\n\t String,\n\t codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n\t );\n\t }\n\t return res\n\t}\n\n\tfunction asciiSlice (buf, start, end) {\n\t let ret = '';\n\t end = Math.min(buf.length, end);\n\n\t for (let i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i] & 0x7F);\n\t }\n\t return ret\n\t}\n\n\tfunction latin1Slice (buf, start, end) {\n\t let ret = '';\n\t end = Math.min(buf.length, end);\n\n\t for (let i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i]);\n\t }\n\t return ret\n\t}\n\n\tfunction hexSlice (buf, start, end) {\n\t const len = buf.length;\n\n\t if (!start || start < 0) start = 0;\n\t if (!end || end < 0 || end > len) end = len;\n\n\t let out = '';\n\t for (let i = start; i < end; ++i) {\n\t out += hexSliceLookupTable[buf[i]];\n\t }\n\t return out\n\t}\n\n\tfunction utf16leSlice (buf, start, end) {\n\t const bytes = buf.slice(start, end);\n\t let res = '';\n\t // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n\t for (let i = 0; i < bytes.length - 1; i += 2) {\n\t res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256));\n\t }\n\t return res\n\t}\n\n\tBuffer.prototype.slice = function slice (start, end) {\n\t const len = this.length;\n\t start = ~~start;\n\t end = end === undefined ? len : ~~end;\n\n\t if (start < 0) {\n\t start += len;\n\t if (start < 0) start = 0;\n\t } else if (start > len) {\n\t start = len;\n\t }\n\n\t if (end < 0) {\n\t end += len;\n\t if (end < 0) end = 0;\n\t } else if (end > len) {\n\t end = len;\n\t }\n\n\t if (end < start) end = start;\n\n\t const newBuf = this.subarray(start, end);\n\t // Return an augmented `Uint8Array` instance\n\t Object.setPrototypeOf(newBuf, Buffer.prototype);\n\n\t return newBuf\n\t};\n\n\t/*\n\t * Need to make sure that buffer isn't trying to write out of bounds.\n\t */\n\tfunction checkOffset (offset, ext, length) {\n\t if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n\t if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n\t}\n\n\tBuffer.prototype.readUintLE =\n\tBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let val = this[offset];\n\t let mul = 1;\n\t let i = 0;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul;\n\t }\n\n\t return val\n\t};\n\n\tBuffer.prototype.readUintBE =\n\tBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t checkOffset(offset, byteLength, this.length);\n\t }\n\n\t let val = this[offset + --byteLength];\n\t let mul = 1;\n\t while (byteLength > 0 && (mul *= 0x100)) {\n\t val += this[offset + --byteLength] * mul;\n\t }\n\n\t return val\n\t};\n\n\tBuffer.prototype.readUint8 =\n\tBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t return this[offset]\n\t};\n\n\tBuffer.prototype.readUint16LE =\n\tBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t return this[offset] | (this[offset + 1] << 8)\n\t};\n\n\tBuffer.prototype.readUint16BE =\n\tBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t return (this[offset] << 8) | this[offset + 1]\n\t};\n\n\tBuffer.prototype.readUint32LE =\n\tBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return ((this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16)) +\n\t (this[offset + 3] * 0x1000000)\n\t};\n\n\tBuffer.prototype.readUint32BE =\n\tBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset] * 0x1000000) +\n\t ((this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t this[offset + 3])\n\t};\n\n\tBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const lo = first +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 24;\n\n\t const hi = this[++offset] +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t last * 2 ** 24;\n\n\t return BigInt(lo) + (BigInt(hi) << BigInt(32))\n\t});\n\n\tBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const hi = first * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset];\n\n\t const lo = this[++offset] * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t last;\n\n\t return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n\t});\n\n\tBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let val = this[offset];\n\t let mul = 1;\n\t let i = 0;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul;\n\t }\n\t mul *= 0x80;\n\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t return val\n\t};\n\n\tBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let i = byteLength;\n\t let mul = 1;\n\t let val = this[offset + --i];\n\t while (i > 0 && (mul *= 0x100)) {\n\t val += this[offset + --i] * mul;\n\t }\n\t mul *= 0x80;\n\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t return val\n\t};\n\n\tBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t if (!(this[offset] & 0x80)) return (this[offset])\n\t return ((0xff - this[offset] + 1) * -1)\n\t};\n\n\tBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t const val = this[offset] | (this[offset + 1] << 8);\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t};\n\n\tBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t const val = this[offset + 1] | (this[offset] << 8);\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t};\n\n\tBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16) |\n\t (this[offset + 3] << 24)\n\t};\n\n\tBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset] << 24) |\n\t (this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t (this[offset + 3])\n\t};\n\n\tBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const val = this[offset + 4] +\n\t this[offset + 5] * 2 ** 8 +\n\t this[offset + 6] * 2 ** 16 +\n\t (last << 24); // Overflow\n\n\t return (BigInt(val) << BigInt(32)) +\n\t BigInt(first +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 24)\n\t});\n\n\tBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const val = (first << 24) + // Overflow\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset];\n\n\t return (BigInt(val) << BigInt(32)) +\n\t BigInt(this[++offset] * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t last)\n\t});\n\n\tBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t return ieee754$1.read(this, offset, true, 23, 4)\n\t};\n\n\tBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t return ieee754$1.read(this, offset, false, 23, 4)\n\t};\n\n\tBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t return ieee754$1.read(this, offset, true, 52, 8)\n\t};\n\n\tBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t return ieee754$1.read(this, offset, false, 52, 8)\n\t};\n\n\tfunction checkInt (buf, value, offset, ext, max, min) {\n\t if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n\t if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t}\n\n\tBuffer.prototype.writeUintLE =\n\tBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t }\n\n\t let mul = 1;\n\t let i = 0;\n\t this[offset] = value & 0xFF;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeUintBE =\n\tBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t }\n\n\t let i = byteLength - 1;\n\t let mul = 1;\n\t this[offset + i] = value & 0xFF;\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeUint8 =\n\tBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n\t this[offset] = (value & 0xff);\n\t return offset + 1\n\t};\n\n\tBuffer.prototype.writeUint16LE =\n\tBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeUint16BE =\n\tBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t this[offset] = (value >>> 8);\n\t this[offset + 1] = (value & 0xff);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeUint32LE =\n\tBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t this[offset + 3] = (value >>> 24);\n\t this[offset + 2] = (value >>> 16);\n\t this[offset + 1] = (value >>> 8);\n\t this[offset] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeUint32BE =\n\tBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t this[offset] = (value >>> 24);\n\t this[offset + 1] = (value >>> 16);\n\t this[offset + 2] = (value >>> 8);\n\t this[offset + 3] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n\t checkIntBI(value, min, max, buf, offset, 7);\n\n\t let lo = Number(value & BigInt(0xffffffff));\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t let hi = Number(value >> BigInt(32) & BigInt(0xffffffff));\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t return offset\n\t}\n\n\tfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n\t checkIntBI(value, min, max, buf, offset, 7);\n\n\t let lo = Number(value & BigInt(0xffffffff));\n\t buf[offset + 7] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 6] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 5] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 4] = lo;\n\t let hi = Number(value >> BigInt(32) & BigInt(0xffffffff));\n\t buf[offset + 3] = hi;\n\t hi = hi >> 8;\n\t buf[offset + 2] = hi;\n\t hi = hi >> 8;\n\t buf[offset + 1] = hi;\n\t hi = hi >> 8;\n\t buf[offset] = hi;\n\t return offset + 8\n\t}\n\n\tBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n\t return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n\t return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t const limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t }\n\n\t let i = 0;\n\t let mul = 1;\n\t let sub = 0;\n\t this[offset] = value & 0xFF;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n\t sub = 1;\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t const limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t }\n\n\t let i = byteLength - 1;\n\t let mul = 1;\n\t let sub = 0;\n\t this[offset + i] = value & 0xFF;\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n\t sub = 1;\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n\t if (value < 0) value = 0xff + value + 1;\n\t this[offset] = (value & 0xff);\n\t return offset + 1\n\t};\n\n\tBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\t this[offset] = (value >>> 8);\n\t this[offset + 1] = (value & 0xff);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t this[offset + 2] = (value >>> 16);\n\t this[offset + 3] = (value >>> 24);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\t if (value < 0) value = 0xffffffff + value + 1;\n\t this[offset] = (value >>> 24);\n\t this[offset + 1] = (value >>> 16);\n\t this[offset + 2] = (value >>> 8);\n\t this[offset + 3] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n\t return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n\t return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n\t});\n\n\tfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t if (offset < 0) throw new RangeError('Index out of range')\n\t}\n\n\tfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 4);\n\t }\n\t ieee754$1.write(buf, value, offset, littleEndian, 23, 4);\n\t return offset + 4\n\t}\n\n\tBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, true, noAssert)\n\t};\n\n\tBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, false, noAssert)\n\t};\n\n\tfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 8);\n\t }\n\t ieee754$1.write(buf, value, offset, littleEndian, 52, 8);\n\t return offset + 8\n\t}\n\n\tBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, true, noAssert)\n\t};\n\n\tBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, false, noAssert)\n\t};\n\n\t// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\tBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n\t if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n\t if (!start) start = 0;\n\t if (!end && end !== 0) end = this.length;\n\t if (targetStart >= target.length) targetStart = target.length;\n\t if (!targetStart) targetStart = 0;\n\t if (end > 0 && end < start) end = start;\n\n\t // Copy 0 bytes; we're done\n\t if (end === start) return 0\n\t if (target.length === 0 || this.length === 0) return 0\n\n\t // Fatal error conditions\n\t if (targetStart < 0) {\n\t throw new RangeError('targetStart out of bounds')\n\t }\n\t if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n\t if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n\t // Are we oob?\n\t if (end > this.length) end = this.length;\n\t if (target.length - targetStart < end - start) {\n\t end = target.length - targetStart + start;\n\t }\n\n\t const len = end - start;\n\n\t if (this === target && typeof GlobalUint8Array.prototype.copyWithin === 'function') {\n\t // Use built-in when available, missing from IE11\n\t this.copyWithin(targetStart, start, end);\n\t } else {\n\t GlobalUint8Array.prototype.set.call(\n\t target,\n\t this.subarray(start, end),\n\t targetStart\n\t );\n\t }\n\n\t return len\n\t};\n\n\t// Usage:\n\t// buffer.fill(number[, offset[, end]])\n\t// buffer.fill(buffer[, offset[, end]])\n\t// buffer.fill(string[, offset[, end]][, encoding])\n\tBuffer.prototype.fill = function fill (val, start, end, encoding) {\n\t // Handle string cases:\n\t if (typeof val === 'string') {\n\t if (typeof start === 'string') {\n\t encoding = start;\n\t start = 0;\n\t end = this.length;\n\t } else if (typeof end === 'string') {\n\t encoding = end;\n\t end = this.length;\n\t }\n\t if (encoding !== undefined && typeof encoding !== 'string') {\n\t throw new TypeError('encoding must be a string')\n\t }\n\t if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\t if (val.length === 1) {\n\t const code = val.charCodeAt(0);\n\t if ((encoding === 'utf8' && code < 128) ||\n\t encoding === 'latin1') {\n\t // Fast path: If `val` fits into a single byte, use that numeric value.\n\t val = code;\n\t }\n\t }\n\t } else if (typeof val === 'number') {\n\t val = val & 255;\n\t } else if (typeof val === 'boolean') {\n\t val = Number(val);\n\t }\n\n\t // Invalid ranges are not set to a default, so can range check early.\n\t if (start < 0 || this.length < start || this.length < end) {\n\t throw new RangeError('Out of range index')\n\t }\n\n\t if (end <= start) {\n\t return this\n\t }\n\n\t start = start >>> 0;\n\t end = end === undefined ? this.length : end >>> 0;\n\n\t if (!val) val = 0;\n\n\t let i;\n\t if (typeof val === 'number') {\n\t for (i = start; i < end; ++i) {\n\t this[i] = val;\n\t }\n\t } else {\n\t const bytes = Buffer.isBuffer(val)\n\t ? val\n\t : Buffer.from(val, encoding);\n\t const len = bytes.length;\n\t if (len === 0) {\n\t throw new TypeError('The value \"' + val +\n\t '\" is invalid for argument \"value\"')\n\t }\n\t for (i = 0; i < end - start; ++i) {\n\t this[i + start] = bytes[i % len];\n\t }\n\t }\n\n\t return this\n\t};\n\n\t// CUSTOM ERRORS\n\t// =============\n\n\t// Simplified versions from Node, changed for Buffer-only usage\n\tconst errors = {};\n\tfunction E (sym, getMessage, Base) {\n\t errors[sym] = class NodeError extends Base {\n\t constructor () {\n\t super();\n\n\t Object.defineProperty(this, 'message', {\n\t value: getMessage.apply(this, arguments),\n\t writable: true,\n\t configurable: true\n\t });\n\n\t // Add the error code to the name to include it in the stack trace.\n\t this.name = `${this.name} [${sym}]`;\n\t // Access the stack to generate the error message including the error code\n\t // from the name.\n\t this.stack; // eslint-disable-line no-unused-expressions\n\t // Reset the name to the actual name.\n\t delete this.name;\n\t }\n\n\t get code () {\n\t return sym\n\t }\n\n\t set code (value) {\n\t Object.defineProperty(this, 'code', {\n\t configurable: true,\n\t enumerable: true,\n\t value,\n\t writable: true\n\t });\n\t }\n\n\t toString () {\n\t return `${this.name} [${sym}]: ${this.message}`\n\t }\n\t };\n\t}\n\n\tE('ERR_BUFFER_OUT_OF_BOUNDS',\n\t function (name) {\n\t if (name) {\n\t return `${name} is outside of buffer bounds`\n\t }\n\n\t return 'Attempt to access memory outside buffer bounds'\n\t }, RangeError);\n\tE('ERR_INVALID_ARG_TYPE',\n\t function (name, actual) {\n\t return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n\t }, TypeError);\n\tE('ERR_OUT_OF_RANGE',\n\t function (str, range, input) {\n\t let msg = `The value of \"${str}\" is out of range.`;\n\t let received = input;\n\t if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n\t received = addNumericalSeparator(String(input));\n\t } else if (typeof input === 'bigint') {\n\t received = String(input);\n\t if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n\t received = addNumericalSeparator(received);\n\t }\n\t received += 'n';\n\t }\n\t msg += ` It must be ${range}. Received ${received}`;\n\t return msg\n\t }, RangeError);\n\n\tfunction addNumericalSeparator (val) {\n\t let res = '';\n\t let i = val.length;\n\t const start = val[0] === '-' ? 1 : 0;\n\t for (; i >= start + 4; i -= 3) {\n\t res = `_${val.slice(i - 3, i)}${res}`;\n\t }\n\t return `${val.slice(0, i)}${res}`\n\t}\n\n\t// CHECK FUNCTIONS\n\t// ===============\n\n\tfunction checkBounds (buf, offset, byteLength) {\n\t validateNumber(offset, 'offset');\n\t if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n\t boundsError(offset, buf.length - (byteLength + 1));\n\t }\n\t}\n\n\tfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n\t if (value > max || value < min) {\n\t const n = typeof min === 'bigint' ? 'n' : '';\n\t let range;\n\t if (byteLength > 3) {\n\t if (min === 0 || min === BigInt(0)) {\n\t range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`;\n\t } else {\n\t range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n\t `${(byteLength + 1) * 8 - 1}${n}`;\n\t }\n\t } else {\n\t range = `>= ${min}${n} and <= ${max}${n}`;\n\t }\n\t throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n\t }\n\t checkBounds(buf, offset, byteLength);\n\t}\n\n\tfunction validateNumber (value, name) {\n\t if (typeof value !== 'number') {\n\t throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n\t }\n\t}\n\n\tfunction boundsError (value, length, type) {\n\t if (Math.floor(value) !== value) {\n\t validateNumber(value, type);\n\t throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n\t }\n\n\t if (length < 0) {\n\t throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n\t }\n\n\t throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n\t `>= ${type ? 1 : 0} and <= ${length}`,\n\t value)\n\t}\n\n\t// HELPER FUNCTIONS\n\t// ================\n\n\tconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n\n\tfunction base64clean (str) {\n\t // Node takes equal signs as end of the Base64 encoding\n\t str = str.split('=')[0];\n\t // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n\t str = str.trim().replace(INVALID_BASE64_RE, '');\n\t // Node converts strings with length < 2 to ''\n\t if (str.length < 2) return ''\n\t // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\t while (str.length % 4 !== 0) {\n\t str = str + '=';\n\t }\n\t return str\n\t}\n\n\tfunction utf8ToBytes (string, units) {\n\t units = units || Infinity;\n\t let codePoint;\n\t const length = string.length;\n\t let leadSurrogate = null;\n\t const bytes = [];\n\n\t for (let i = 0; i < length; ++i) {\n\t codePoint = string.charCodeAt(i);\n\n\t // is surrogate component\n\t if (codePoint > 0xD7FF && codePoint < 0xE000) {\n\t // last char was a lead\n\t if (!leadSurrogate) {\n\t // no lead yet\n\t if (codePoint > 0xDBFF) {\n\t // unexpected trail\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t } else if (i + 1 === length) {\n\t // unpaired lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t }\n\n\t // valid lead\n\t leadSurrogate = codePoint;\n\n\t continue\n\t }\n\n\t // 2 leads in a row\n\t if (codePoint < 0xDC00) {\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t leadSurrogate = codePoint;\n\t continue\n\t }\n\n\t // valid surrogate pair\n\t codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n\t } else if (leadSurrogate) {\n\t // valid bmp char, but last char was a lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t }\n\n\t leadSurrogate = null;\n\n\t // encode utf8\n\t if (codePoint < 0x80) {\n\t if ((units -= 1) < 0) break\n\t bytes.push(codePoint);\n\t } else if (codePoint < 0x800) {\n\t if ((units -= 2) < 0) break\n\t bytes.push(\n\t codePoint >> 0x6 | 0xC0,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x10000) {\n\t if ((units -= 3) < 0) break\n\t bytes.push(\n\t codePoint >> 0xC | 0xE0,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x110000) {\n\t if ((units -= 4) < 0) break\n\t bytes.push(\n\t codePoint >> 0x12 | 0xF0,\n\t codePoint >> 0xC & 0x3F | 0x80,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else {\n\t throw new Error('Invalid code point')\n\t }\n\t }\n\n\t return bytes\n\t}\n\n\tfunction asciiToBytes (str) {\n\t const byteArray = [];\n\t for (let i = 0; i < str.length; ++i) {\n\t // Node's code seems to be doing this and not & 0x7F..\n\t byteArray.push(str.charCodeAt(i) & 0xFF);\n\t }\n\t return byteArray\n\t}\n\n\tfunction utf16leToBytes (str, units) {\n\t let c, hi, lo;\n\t const byteArray = [];\n\t for (let i = 0; i < str.length; ++i) {\n\t if ((units -= 2) < 0) break\n\n\t c = str.charCodeAt(i);\n\t hi = c >> 8;\n\t lo = c % 256;\n\t byteArray.push(lo);\n\t byteArray.push(hi);\n\t }\n\n\t return byteArray\n\t}\n\n\tfunction base64ToBytes (str) {\n\t return base64.toByteArray(base64clean(str))\n\t}\n\n\tfunction blitBuffer (src, dst, offset, length) {\n\t let i;\n\t for (i = 0; i < length; ++i) {\n\t if ((i + offset >= dst.length) || (i >= src.length)) break\n\t dst[i + offset] = src[i];\n\t }\n\t return i\n\t}\n\n\t// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n\t// the `instanceof` check but they should be treated as of that type.\n\t// See: https://github.com/feross/buffer/issues/166\n\tfunction isInstance (obj, type) {\n\t return obj instanceof type ||\n\t (obj != null && obj.constructor != null && obj.constructor.name != null &&\n\t obj.constructor.name === type.name)\n\t}\n\tfunction numberIsNaN (obj) {\n\t // For IE11 support\n\t return obj !== obj // eslint-disable-line no-self-compare\n\t}\n\n\t// Create lookup table for `toString('hex')`\n\t// See: https://github.com/feross/buffer/issues/219\n\tconst hexSliceLookupTable = (function () {\n\t const alphabet = '0123456789abcdef';\n\t const table = new Array(256);\n\t for (let i = 0; i < 16; ++i) {\n\t const i16 = i * 16;\n\t for (let j = 0; j < 16; ++j) {\n\t table[i16 + j] = alphabet[i] + alphabet[j];\n\t }\n\t }\n\t return table\n\t})();\n\n\t// Return not function with Error if BigInt not supported\n\tfunction defineBigIntMethod (fn) {\n\t return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n\t}\n\n\tfunction BufferBigIntNotDefined () {\n\t throw new Error('BigInt not supported')\n\t} \n} (buffer));\n\nconst Buffer = buffer.Buffer;\n\nconst Blob = buffer.Blob;\nconst BlobOptions = buffer.BlobOptions;\nconst Buffer$1 = buffer.Buffer;\nconst File = buffer.File;\nconst FileOptions = buffer.FileOptions;\nconst INSPECT_MAX_BYTES = buffer.INSPECT_MAX_BYTES;\nconst SlowBuffer = buffer.SlowBuffer;\nconst TranscodeEncoding = buffer.TranscodeEncoding;\nconst atob = buffer.atob;\nconst btoa = buffer.btoa;\nconst constants = buffer.constants;\nconst isAscii = buffer.isAscii;\nconst isUtf8 = buffer.isUtf8;\nconst kMaxLength = buffer.kMaxLength;\nconst kStringMaxLength = buffer.kStringMaxLength;\nconst resolveObjectURL = buffer.resolveObjectURL;\nconst transcode = buffer.transcode;\nexport { Blob, BlobOptions, Buffer$1 as Buffer, File, FileOptions, INSPECT_MAX_BYTES, SlowBuffer, TranscodeEncoding, atob, btoa, constants, Buffer as default, isAscii, isUtf8, kMaxLength, kStringMaxLength, resolveObjectURL, transcode };\n//# sourceMappingURL=index.js.map\n","/**\n * @license\n * Copyright 2009 The Closure Library Authors\n * Copyright 2020 Daniel Wirtz / The long.js Authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * SPDX-License-Identifier: Apache-2.0\n */\n\n// WebAssembly optimizations to do native i64 multiplication and divide\nvar wasm = null;\ntry {\n wasm = new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([\n 0, 97, 115, 109, 1, 0, 0, 0, 1, 13, 2, 96, 0, 1, 127, 96, 4, 127, 127, 127, 127, 1, 127, 3, 7, 6, 0, 1, 1, 1, 1, 1, 6, 6, 1, 127, 1, 65, 0, 11, 7, 50, 6, 3, 109, 117, 108, 0, 1, 5, 100, 105, 118, 95, 115, 0, 2, 5, 100, 105, 118, 95, 117, 0, 3, 5, 114, 101, 109, 95, 115, 0, 4, 5, 114, 101, 109, 95, 117, 0, 5, 8, 103, 101, 116, 95, 104, 105, 103, 104, 0, 0, 10, 191, 1, 6, 4, 0, 35, 0, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 126, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 127, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 128, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 129, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 130, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11\n ])), {}).exports;\n} catch (e) {\n // no wasm support :(\n}\n\n/**\n * Constructs a 64 bit two's-complement integer, given its low and high 32 bit values as *signed* integers.\n * See the from* functions below for more convenient ways of constructing Longs.\n * @exports Long\n * @class A Long class for representing a 64 bit two's-complement integer value.\n * @param {number} low The low (signed) 32 bits of the long\n * @param {number} high The high (signed) 32 bits of the long\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\n * @constructor\n */\nfunction Long(low, high, unsigned) {\n\n /**\n * The low 32 bits as a signed value.\n * @type {number}\n */\n this.low = low | 0;\n\n /**\n * The high 32 bits as a signed value.\n * @type {number}\n */\n this.high = high | 0;\n\n /**\n * Whether unsigned or not.\n * @type {boolean}\n */\n this.unsigned = !!unsigned;\n}\n\n// The internal representation of a long is the two given signed, 32-bit values.\n// We use 32-bit pieces because these are the size of integers on which\n// Javascript performs bit-operations. For operations like addition and\n// multiplication, we split each number into 16 bit pieces, which can easily be\n// multiplied within Javascript's floating-point representation without overflow\n// or change in sign.\n//\n// In the algorithms below, we frequently reduce the negative case to the\n// positive case by negating the input(s) and then post-processing the result.\n// Note that we must ALWAYS check specially whether those values are MIN_VALUE\n// (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as\n// a positive number, it overflows back into a negative). Not handling this\n// case would often result in infinite recursion.\n//\n// Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the from*\n// methods on which they depend.\n\n/**\n * An indicator used to reliably determine if an object is a Long or not.\n * @type {boolean}\n * @const\n * @private\n */\nLong.prototype.__isLong__;\n\nObject.defineProperty(Long.prototype, \"__isLong__\", { value: true });\n\n/**\n * @function\n * @param {*} obj Object\n * @returns {boolean}\n * @inner\n */\nfunction isLong(obj) {\n return (obj && obj[\"__isLong__\"]) === true;\n}\n\n/**\n * @function\n * @param {*} value number\n * @returns {number}\n * @inner\n */\nfunction ctz32(value) {\n var c = Math.clz32(value & -value);\n return value ? 31 - c : c;\n}\n\n/**\n * Tests if the specified object is a Long.\n * @function\n * @param {*} obj Object\n * @returns {boolean}\n */\nLong.isLong = isLong;\n\n/**\n * A cache of the Long representations of small integer values.\n * @type {!Object}\n * @inner\n */\nvar INT_CACHE = {};\n\n/**\n * A cache of the Long representations of small unsigned integer values.\n * @type {!Object}\n * @inner\n */\nvar UINT_CACHE = {};\n\n/**\n * @param {number} value\n * @param {boolean=} unsigned\n * @returns {!Long}\n * @inner\n */\nfunction fromInt(value, unsigned) {\n var obj, cachedObj, cache;\n if (unsigned) {\n value >>>= 0;\n if (cache = (0 <= value && value < 256)) {\n cachedObj = UINT_CACHE[value];\n if (cachedObj)\n return cachedObj;\n }\n obj = fromBits(value, 0, true);\n if (cache)\n UINT_CACHE[value] = obj;\n return obj;\n } else {\n value |= 0;\n if (cache = (-128 <= value && value < 128)) {\n cachedObj = INT_CACHE[value];\n if (cachedObj)\n return cachedObj;\n }\n obj = fromBits(value, value < 0 ? -1 : 0, false);\n if (cache)\n INT_CACHE[value] = obj;\n return obj;\n }\n}\n\n/**\n * Returns a Long representing the given 32 bit integer value.\n * @function\n * @param {number} value The 32 bit integer in question\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\n * @returns {!Long} The corresponding Long value\n */\nLong.fromInt = fromInt;\n\n/**\n * @param {number} value\n * @param {boolean=} unsigned\n * @returns {!Long}\n * @inner\n */\nfunction fromNumber(value, unsigned) {\n if (isNaN(value))\n return unsigned ? UZERO : ZERO;\n if (unsigned) {\n if (value < 0)\n return UZERO;\n if (value >= TWO_PWR_64_DBL)\n return MAX_UNSIGNED_VALUE;\n } else {\n if (value <= -TWO_PWR_63_DBL)\n return MIN_VALUE;\n if (value + 1 >= TWO_PWR_63_DBL)\n return MAX_VALUE;\n }\n if (value < 0)\n return fromNumber(-value, unsigned).neg();\n return fromBits((value % TWO_PWR_32_DBL) | 0, (value / TWO_PWR_32_DBL) | 0, unsigned);\n}\n\n/**\n * Returns a Long representing the given value, provided that it is a finite number. Otherwise, zero is returned.\n * @function\n * @param {number} value The number in question\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\n * @returns {!Long} The corresponding Long value\n */\nLong.fromNumber = fromNumber;\n\n/**\n * @param {number} lowBits\n * @param {number} highBits\n * @param {boolean=} unsigned\n * @returns {!Long}\n * @inner\n */\nfunction fromBits(lowBits, highBits, unsigned) {\n return new Long(lowBits, highBits, unsigned);\n}\n\n/**\n * Returns a Long representing the 64 bit integer that comes by concatenating the given low and high bits. Each is\n * assumed to use 32 bits.\n * @function\n * @param {number} lowBits The low 32 bits\n * @param {number} highBits The high 32 bits\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\n * @returns {!Long} The corresponding Long value\n */\nLong.fromBits = fromBits;\n\n/**\n * @function\n * @param {number} base\n * @param {number} exponent\n * @returns {number}\n * @inner\n */\nvar pow_dbl = Math.pow; // Used 4 times (4*8 to 15+4)\n\n/**\n * @param {string} str\n * @param {(boolean|number)=} unsigned\n * @param {number=} radix\n * @returns {!Long}\n * @inner\n */\nfunction fromString(str, unsigned, radix) {\n if (str.length === 0)\n throw Error('empty string');\n if (typeof unsigned === 'number') {\n // For goog.math.long compatibility\n radix = unsigned;\n unsigned = false;\n } else {\n unsigned = !!unsigned;\n }\n if (str === \"NaN\" || str === \"Infinity\" || str === \"+Infinity\" || str === \"-Infinity\")\n return unsigned ? UZERO : ZERO;\n radix = radix || 10;\n if (radix < 2 || 36 < radix)\n throw RangeError('radix');\n\n var p;\n if ((p = str.indexOf('-')) > 0)\n throw Error('interior hyphen');\n else if (p === 0) {\n return fromString(str.substring(1), unsigned, radix).neg();\n }\n\n // Do several (8) digits each time through the loop, so as to\n // minimize the calls to the very expensive emulated div.\n var radixToPower = fromNumber(pow_dbl(radix, 8));\n\n var result = ZERO;\n for (var i = 0; i < str.length; i += 8) {\n var size = Math.min(8, str.length - i),\n value = parseInt(str.substring(i, i + size), radix);\n if (size < 8) {\n var power = fromNumber(pow_dbl(radix, size));\n result = result.mul(power).add(fromNumber(value));\n } else {\n result = result.mul(radixToPower);\n result = result.add(fromNumber(value));\n }\n }\n result.unsigned = unsigned;\n return result;\n}\n\n/**\n * Returns a Long representation of the given string, written using the specified radix.\n * @function\n * @param {string} str The textual representation of the Long\n * @param {(boolean|number)=} unsigned Whether unsigned or not, defaults to signed\n * @param {number=} radix The radix in which the text is written (2-36), defaults to 10\n * @returns {!Long} The corresponding Long value\n */\nLong.fromString = fromString;\n\n/**\n * @function\n * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val\n * @param {boolean=} unsigned\n * @returns {!Long}\n * @inner\n */\nfunction fromValue(val, unsigned) {\n if (typeof val === 'number')\n return fromNumber(val, unsigned);\n if (typeof val === 'string')\n return fromString(val, unsigned);\n // Throws for non-objects, converts non-instanceof Long:\n return fromBits(val.low, val.high, typeof unsigned === 'boolean' ? unsigned : val.unsigned);\n}\n\n/**\n * Converts the specified value to a Long using the appropriate from* function for its type.\n * @function\n * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val Value\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\n * @returns {!Long}\n */\nLong.fromValue = fromValue;\n\n// NOTE: the compiler should inline these constant values below and then remove these variables, so there should be\n// no runtime penalty for these.\n\n/**\n * @type {number}\n * @const\n * @inner\n */\nvar TWO_PWR_16_DBL = 1 << 16;\n\n/**\n * @type {number}\n * @const\n * @inner\n */\nvar TWO_PWR_24_DBL = 1 << 24;\n\n/**\n * @type {number}\n * @const\n * @inner\n */\nvar TWO_PWR_32_DBL = TWO_PWR_16_DBL * TWO_PWR_16_DBL;\n\n/**\n * @type {number}\n * @const\n * @inner\n */\nvar TWO_PWR_64_DBL = TWO_PWR_32_DBL * TWO_PWR_32_DBL;\n\n/**\n * @type {number}\n * @const\n * @inner\n */\nvar TWO_PWR_63_DBL = TWO_PWR_64_DBL / 2;\n\n/**\n * @type {!Long}\n * @const\n * @inner\n */\nvar TWO_PWR_24 = fromInt(TWO_PWR_24_DBL);\n\n/**\n * @type {!Long}\n * @inner\n */\nvar ZERO = fromInt(0);\n\n/**\n * Signed zero.\n * @type {!Long}\n */\nLong.ZERO = ZERO;\n\n/**\n * @type {!Long}\n * @inner\n */\nvar UZERO = fromInt(0, true);\n\n/**\n * Unsigned zero.\n * @type {!Long}\n */\nLong.UZERO = UZERO;\n\n/**\n * @type {!Long}\n * @inner\n */\nvar ONE = fromInt(1);\n\n/**\n * Signed one.\n * @type {!Long}\n */\nLong.ONE = ONE;\n\n/**\n * @type {!Long}\n * @inner\n */\nvar UONE = fromInt(1, true);\n\n/**\n * Unsigned one.\n * @type {!Long}\n */\nLong.UONE = UONE;\n\n/**\n * @type {!Long}\n * @inner\n */\nvar NEG_ONE = fromInt(-1);\n\n/**\n * Signed negative one.\n * @type {!Long}\n */\nLong.NEG_ONE = NEG_ONE;\n\n/**\n * @type {!Long}\n * @inner\n */\nvar MAX_VALUE = fromBits(0xFFFFFFFF | 0, 0x7FFFFFFF | 0, false);\n\n/**\n * Maximum signed value.\n * @type {!Long}\n */\nLong.MAX_VALUE = MAX_VALUE;\n\n/**\n * @type {!Long}\n * @inner\n */\nvar MAX_UNSIGNED_VALUE = fromBits(0xFFFFFFFF | 0, 0xFFFFFFFF | 0, true);\n\n/**\n * Maximum unsigned value.\n * @type {!Long}\n */\nLong.MAX_UNSIGNED_VALUE = MAX_UNSIGNED_VALUE;\n\n/**\n * @type {!Long}\n * @inner\n */\nvar MIN_VALUE = fromBits(0, 0x80000000 | 0, false);\n\n/**\n * Minimum signed value.\n * @type {!Long}\n */\nLong.MIN_VALUE = MIN_VALUE;\n\n/**\n * @alias Long.prototype\n * @inner\n */\nvar LongPrototype = Long.prototype;\n\n/**\n * Converts the Long to a 32 bit integer, assuming it is a 32 bit integer.\n * @this {!Long}\n * @returns {number}\n */\nLongPrototype.toInt = function toInt() {\n return this.unsigned ? this.low >>> 0 : this.low;\n};\n\n/**\n * Converts the Long to a the nearest floating-point representation of this value (double, 53 bit mantissa).\n * @this {!Long}\n * @returns {number}\n */\nLongPrototype.toNumber = function toNumber() {\n if (this.unsigned)\n return ((this.high >>> 0) * TWO_PWR_32_DBL) + (this.low >>> 0);\n return this.high * TWO_PWR_32_DBL + (this.low >>> 0);\n};\n\n/**\n * Converts the Long to a string written in the specified radix.\n * @this {!Long}\n * @param {number=} radix Radix (2-36), defaults to 10\n * @returns {string}\n * @override\n * @throws {RangeError} If `radix` is out of range\n */\nLongPrototype.toString = function toString(radix) {\n radix = radix || 10;\n if (radix < 2 || 36 < radix)\n throw RangeError('radix');\n if (this.isZero())\n return '0';\n if (this.isNegative()) { // Unsigned Longs are never negative\n if (this.eq(MIN_VALUE)) {\n // We need to change the Long value before it can be negated, so we remove\n // the bottom-most digit in this base and then recurse to do the rest.\n var radixLong = fromNumber(radix),\n div = this.div(radixLong),\n rem1 = div.mul(radixLong).sub(this);\n return div.toString(radix) + rem1.toInt().toString(radix);\n } else\n return '-' + this.neg().toString(radix);\n }\n\n // Do several (6) digits each time through the loop, so as to\n // minimize the calls to the very expensive emulated div.\n var radixToPower = fromNumber(pow_dbl(radix, 6), this.unsigned),\n rem = this;\n var result = '';\n while (true) {\n var remDiv = rem.div(radixToPower),\n intval = rem.sub(remDiv.mul(radixToPower)).toInt() >>> 0,\n digits = intval.toString(radix);\n rem = remDiv;\n if (rem.isZero())\n return digits + result;\n else {\n while (digits.length < 6)\n digits = '0' + digits;\n result = '' + digits + result;\n }\n }\n};\n\n/**\n * Gets the high 32 bits as a signed integer.\n * @this {!Long}\n * @returns {number} Signed high bits\n */\nLongPrototype.getHighBits = function getHighBits() {\n return this.high;\n};\n\n/**\n * Gets the high 32 bits as an unsigned integer.\n * @this {!Long}\n * @returns {number} Unsigned high bits\n */\nLongPrototype.getHighBitsUnsigned = function getHighBitsUnsigned() {\n return this.high >>> 0;\n};\n\n/**\n * Gets the low 32 bits as a signed integer.\n * @this {!Long}\n * @returns {number} Signed low bits\n */\nLongPrototype.getLowBits = function getLowBits() {\n return this.low;\n};\n\n/**\n * Gets the low 32 bits as an unsigned integer.\n * @this {!Long}\n * @returns {number} Unsigned low bits\n */\nLongPrototype.getLowBitsUnsigned = function getLowBitsUnsigned() {\n return this.low >>> 0;\n};\n\n/**\n * Gets the number of bits needed to represent the absolute value of this Long.\n * @this {!Long}\n * @returns {number}\n */\nLongPrototype.getNumBitsAbs = function getNumBitsAbs() {\n if (this.isNegative()) // Unsigned Longs are never negative\n return this.eq(MIN_VALUE) ? 64 : this.neg().getNumBitsAbs();\n var val = this.high != 0 ? this.high : this.low;\n for (var bit = 31; bit > 0; bit--)\n if ((val & (1 << bit)) != 0)\n break;\n return this.high != 0 ? bit + 33 : bit + 1;\n};\n\n/**\n * Tests if this Long's value equals zero.\n * @this {!Long}\n * @returns {boolean}\n */\nLongPrototype.isZero = function isZero() {\n return this.high === 0 && this.low === 0;\n};\n\n/**\n * Tests if this Long's value equals zero. This is an alias of {@link Long#isZero}.\n * @returns {boolean}\n */\nLongPrototype.eqz = LongPrototype.isZero;\n\n/**\n * Tests if this Long's value is negative.\n * @this {!Long}\n * @returns {boolean}\n */\nLongPrototype.isNegative = function isNegative() {\n return !this.unsigned && this.high < 0;\n};\n\n/**\n * Tests if this Long's value is positive or zero.\n * @this {!Long}\n * @returns {boolean}\n */\nLongPrototype.isPositive = function isPositive() {\n return this.unsigned || this.high >= 0;\n};\n\n/**\n * Tests if this Long's value is odd.\n * @this {!Long}\n * @returns {boolean}\n */\nLongPrototype.isOdd = function isOdd() {\n return (this.low & 1) === 1;\n};\n\n/**\n * Tests if this Long's value is even.\n * @this {!Long}\n * @returns {boolean}\n */\nLongPrototype.isEven = function isEven() {\n return (this.low & 1) === 0;\n};\n\n/**\n * Tests if this Long's value equals the specified's.\n * @this {!Long}\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.equals = function equals(other) {\n if (!isLong(other))\n other = fromValue(other);\n if (this.unsigned !== other.unsigned && (this.high >>> 31) === 1 && (other.high >>> 31) === 1)\n return false;\n return this.high === other.high && this.low === other.low;\n};\n\n/**\n * Tests if this Long's value equals the specified's. This is an alias of {@link Long#equals}.\n * @function\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.eq = LongPrototype.equals;\n\n/**\n * Tests if this Long's value differs from the specified's.\n * @this {!Long}\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.notEquals = function notEquals(other) {\n return !this.eq(/* validates */ other);\n};\n\n/**\n * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\n * @function\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.neq = LongPrototype.notEquals;\n\n/**\n * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\n * @function\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.ne = LongPrototype.notEquals;\n\n/**\n * Tests if this Long's value is less than the specified's.\n * @this {!Long}\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.lessThan = function lessThan(other) {\n return this.comp(/* validates */ other) < 0;\n};\n\n/**\n * Tests if this Long's value is less than the specified's. This is an alias of {@link Long#lessThan}.\n * @function\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.lt = LongPrototype.lessThan;\n\n/**\n * Tests if this Long's value is less than or equal the specified's.\n * @this {!Long}\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.lessThanOrEqual = function lessThanOrEqual(other) {\n return this.comp(/* validates */ other) <= 0;\n};\n\n/**\n * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\n * @function\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.lte = LongPrototype.lessThanOrEqual;\n\n/**\n * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\n * @function\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.le = LongPrototype.lessThanOrEqual;\n\n/**\n * Tests if this Long's value is greater than the specified's.\n * @this {!Long}\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.greaterThan = function greaterThan(other) {\n return this.comp(/* validates */ other) > 0;\n};\n\n/**\n * Tests if this Long's value is greater than the specified's. This is an alias of {@link Long#greaterThan}.\n * @function\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.gt = LongPrototype.greaterThan;\n\n/**\n * Tests if this Long's value is greater than or equal the specified's.\n * @this {!Long}\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.greaterThanOrEqual = function greaterThanOrEqual(other) {\n return this.comp(/* validates */ other) >= 0;\n};\n\n/**\n * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\n * @function\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.gte = LongPrototype.greaterThanOrEqual;\n\n/**\n * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\n * @function\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.ge = LongPrototype.greaterThanOrEqual;\n\n/**\n * Compares this Long's value with the specified's.\n * @this {!Long}\n * @param {!Long|number|string} other Other value\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\n * if the given one is greater\n */\nLongPrototype.compare = function compare(other) {\n if (!isLong(other))\n other = fromValue(other);\n if (this.eq(other))\n return 0;\n var thisNeg = this.isNegative(),\n otherNeg = other.isNegative();\n if (thisNeg && !otherNeg)\n return -1;\n if (!thisNeg && otherNeg)\n return 1;\n // At this point the sign bits are the same\n if (!this.unsigned)\n return this.sub(other).isNegative() ? -1 : 1;\n // Both are positive if at least one is unsigned\n return (other.high >>> 0) > (this.high >>> 0) || (other.high === this.high && (other.low >>> 0) > (this.low >>> 0)) ? -1 : 1;\n};\n\n/**\n * Compares this Long's value with the specified's. This is an alias of {@link Long#compare}.\n * @function\n * @param {!Long|number|string} other Other value\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\n * if the given one is greater\n */\nLongPrototype.comp = LongPrototype.compare;\n\n/**\n * Negates this Long's value.\n * @this {!Long}\n * @returns {!Long} Negated Long\n */\nLongPrototype.negate = function negate() {\n if (!this.unsigned && this.eq(MIN_VALUE))\n return MIN_VALUE;\n return this.not().add(ONE);\n};\n\n/**\n * Negates this Long's value. This is an alias of {@link Long#negate}.\n * @function\n * @returns {!Long} Negated Long\n */\nLongPrototype.neg = LongPrototype.negate;\n\n/**\n * Returns the sum of this and the specified Long.\n * @this {!Long}\n * @param {!Long|number|string} addend Addend\n * @returns {!Long} Sum\n */\nLongPrototype.add = function add(addend) {\n if (!isLong(addend))\n addend = fromValue(addend);\n\n // Divide each number into 4 chunks of 16 bits, and then sum the chunks.\n\n var a48 = this.high >>> 16;\n var a32 = this.high & 0xFFFF;\n var a16 = this.low >>> 16;\n var a00 = this.low & 0xFFFF;\n\n var b48 = addend.high >>> 16;\n var b32 = addend.high & 0xFFFF;\n var b16 = addend.low >>> 16;\n var b00 = addend.low & 0xFFFF;\n\n var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\n c00 += a00 + b00;\n c16 += c00 >>> 16;\n c00 &= 0xFFFF;\n c16 += a16 + b16;\n c32 += c16 >>> 16;\n c16 &= 0xFFFF;\n c32 += a32 + b32;\n c48 += c32 >>> 16;\n c32 &= 0xFFFF;\n c48 += a48 + b48;\n c48 &= 0xFFFF;\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\n};\n\n/**\n * Returns the difference of this and the specified Long.\n * @this {!Long}\n * @param {!Long|number|string} subtrahend Subtrahend\n * @returns {!Long} Difference\n */\nLongPrototype.subtract = function subtract(subtrahend) {\n if (!isLong(subtrahend))\n subtrahend = fromValue(subtrahend);\n return this.add(subtrahend.neg());\n};\n\n/**\n * Returns the difference of this and the specified Long. This is an alias of {@link Long#subtract}.\n * @function\n * @param {!Long|number|string} subtrahend Subtrahend\n * @returns {!Long} Difference\n */\nLongPrototype.sub = LongPrototype.subtract;\n\n/**\n * Returns the product of this and the specified Long.\n * @this {!Long}\n * @param {!Long|number|string} multiplier Multiplier\n * @returns {!Long} Product\n */\nLongPrototype.multiply = function multiply(multiplier) {\n if (this.isZero())\n return this;\n if (!isLong(multiplier))\n multiplier = fromValue(multiplier);\n\n // use wasm support if present\n if (wasm) {\n var low = wasm[\"mul\"](this.low,\n this.high,\n multiplier.low,\n multiplier.high);\n return fromBits(low, wasm[\"get_high\"](), this.unsigned);\n }\n\n if (multiplier.isZero())\n return this.unsigned ? UZERO : ZERO;\n if (this.eq(MIN_VALUE))\n return multiplier.isOdd() ? MIN_VALUE : ZERO;\n if (multiplier.eq(MIN_VALUE))\n return this.isOdd() ? MIN_VALUE : ZERO;\n\n if (this.isNegative()) {\n if (multiplier.isNegative())\n return this.neg().mul(multiplier.neg());\n else\n return this.neg().mul(multiplier).neg();\n } else if (multiplier.isNegative())\n return this.mul(multiplier.neg()).neg();\n\n // If both longs are small, use float multiplication\n if (this.lt(TWO_PWR_24) && multiplier.lt(TWO_PWR_24))\n return fromNumber(this.toNumber() * multiplier.toNumber(), this.unsigned);\n\n // Divide each long into 4 chunks of 16 bits, and then add up 4x4 products.\n // We can skip products that would overflow.\n\n var a48 = this.high >>> 16;\n var a32 = this.high & 0xFFFF;\n var a16 = this.low >>> 16;\n var a00 = this.low & 0xFFFF;\n\n var b48 = multiplier.high >>> 16;\n var b32 = multiplier.high & 0xFFFF;\n var b16 = multiplier.low >>> 16;\n var b00 = multiplier.low & 0xFFFF;\n\n var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\n c00 += a00 * b00;\n c16 += c00 >>> 16;\n c00 &= 0xFFFF;\n c16 += a16 * b00;\n c32 += c16 >>> 16;\n c16 &= 0xFFFF;\n c16 += a00 * b16;\n c32 += c16 >>> 16;\n c16 &= 0xFFFF;\n c32 += a32 * b00;\n c48 += c32 >>> 16;\n c32 &= 0xFFFF;\n c32 += a16 * b16;\n c48 += c32 >>> 16;\n c32 &= 0xFFFF;\n c32 += a00 * b32;\n c48 += c32 >>> 16;\n c32 &= 0xFFFF;\n c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48;\n c48 &= 0xFFFF;\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\n};\n\n/**\n * Returns the product of this and the specified Long. This is an alias of {@link Long#multiply}.\n * @function\n * @param {!Long|number|string} multiplier Multiplier\n * @returns {!Long} Product\n */\nLongPrototype.mul = LongPrototype.multiply;\n\n/**\n * Returns this Long divided by the specified. The result is signed if this Long is signed or\n * unsigned if this Long is unsigned.\n * @this {!Long}\n * @param {!Long|number|string} divisor Divisor\n * @returns {!Long} Quotient\n */\nLongPrototype.divide = function divide(divisor) {\n if (!isLong(divisor))\n divisor = fromValue(divisor);\n if (divisor.isZero())\n throw Error('division by zero');\n\n // use wasm support if present\n if (wasm) {\n // guard against signed division overflow: the largest\n // negative number / -1 would be 1 larger than the largest\n // positive number, due to two's complement.\n if (!this.unsigned &&\n this.high === -0x80000000 &&\n divisor.low === -1 && divisor.high === -1) {\n // be consistent with non-wasm code path\n return this;\n }\n var low = (this.unsigned ? wasm[\"div_u\"] : wasm[\"div_s\"])(\n this.low,\n this.high,\n divisor.low,\n divisor.high\n );\n return fromBits(low, wasm[\"get_high\"](), this.unsigned);\n }\n\n if (this.isZero())\n return this.unsigned ? UZERO : ZERO;\n var approx, rem, res;\n if (!this.unsigned) {\n // This section is only relevant for signed longs and is derived from the\n // closure library as a whole.\n if (this.eq(MIN_VALUE)) {\n if (divisor.eq(ONE) || divisor.eq(NEG_ONE))\n return MIN_VALUE; // recall that -MIN_VALUE == MIN_VALUE\n else if (divisor.eq(MIN_VALUE))\n return ONE;\n else {\n // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|.\n var halfThis = this.shr(1);\n approx = halfThis.div(divisor).shl(1);\n if (approx.eq(ZERO)) {\n return divisor.isNegative() ? ONE : NEG_ONE;\n } else {\n rem = this.sub(divisor.mul(approx));\n res = approx.add(rem.div(divisor));\n return res;\n }\n }\n } else if (divisor.eq(MIN_VALUE))\n return this.unsigned ? UZERO : ZERO;\n if (this.isNegative()) {\n if (divisor.isNegative())\n return this.neg().div(divisor.neg());\n return this.neg().div(divisor).neg();\n } else if (divisor.isNegative())\n return this.div(divisor.neg()).neg();\n res = ZERO;\n } else {\n // The algorithm below has not been made for unsigned longs. It's therefore\n // required to take special care of the MSB prior to running it.\n if (!divisor.unsigned)\n divisor = divisor.toUnsigned();\n if (divisor.gt(this))\n return UZERO;\n if (divisor.gt(this.shru(1))) // 15 >>> 1 = 7 ; with divisor = 8 ; true\n return UONE;\n res = UZERO;\n }\n\n // Repeat the following until the remainder is less than other: find a\n // floating-point that approximates remainder / other *from below*, add this\n // into the result, and subtract it from the remainder. It is critical that\n // the approximate value is less than or equal to the real value so that the\n // remainder never becomes negative.\n rem = this;\n while (rem.gte(divisor)) {\n // Approximate the result of division. This may be a little greater or\n // smaller than the actual value.\n approx = Math.max(1, Math.floor(rem.toNumber() / divisor.toNumber()));\n\n // We will tweak the approximate result by changing it in the 48-th digit or\n // the smallest non-fractional digit, whichever is larger.\n var log2 = Math.ceil(Math.log(approx) / Math.LN2),\n delta = (log2 <= 48) ? 1 : pow_dbl(2, log2 - 48),\n\n // Decrease the approximation until it is smaller than the remainder. Note\n // that if it is too large, the product overflows and is negative.\n approxRes = fromNumber(approx),\n approxRem = approxRes.mul(divisor);\n while (approxRem.isNegative() || approxRem.gt(rem)) {\n approx -= delta;\n approxRes = fromNumber(approx, this.unsigned);\n approxRem = approxRes.mul(divisor);\n }\n\n // We know the answer can't be zero... and actually, zero would cause\n // infinite recursion since we would make no progress.\n if (approxRes.isZero())\n approxRes = ONE;\n\n res = res.add(approxRes);\n rem = rem.sub(approxRem);\n }\n return res;\n};\n\n/**\n * Returns this Long divided by the specified. This is an alias of {@link Long#divide}.\n * @function\n * @param {!Long|number|string} divisor Divisor\n * @returns {!Long} Quotient\n */\nLongPrototype.div = LongPrototype.divide;\n\n/**\n * Returns this Long modulo the specified.\n * @this {!Long}\n * @param {!Long|number|string} divisor Divisor\n * @returns {!Long} Remainder\n */\nLongPrototype.modulo = function modulo(divisor) {\n if (!isLong(divisor))\n divisor = fromValue(divisor);\n\n // use wasm support if present\n if (wasm) {\n var low = (this.unsigned ? wasm[\"rem_u\"] : wasm[\"rem_s\"])(\n this.low,\n this.high,\n divisor.low,\n divisor.high\n );\n return fromBits(low, wasm[\"get_high\"](), this.unsigned);\n }\n\n return this.sub(this.div(divisor).mul(divisor));\n};\n\n/**\n * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\n * @function\n * @param {!Long|number|string} divisor Divisor\n * @returns {!Long} Remainder\n */\nLongPrototype.mod = LongPrototype.modulo;\n\n/**\n * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\n * @function\n * @param {!Long|number|string} divisor Divisor\n * @returns {!Long} Remainder\n */\nLongPrototype.rem = LongPrototype.modulo;\n\n/**\n * Returns the bitwise NOT of this Long.\n * @this {!Long}\n * @returns {!Long}\n */\nLongPrototype.not = function not() {\n return fromBits(~this.low, ~this.high, this.unsigned);\n};\n\n/**\n * Returns count leading zeros of this Long.\n * @this {!Long}\n * @returns {!number}\n */\nLongPrototype.countLeadingZeros = function countLeadingZeros() {\n return this.high ? Math.clz32(this.high) : Math.clz32(this.low) + 32;\n};\n\n/**\n * Returns count leading zeros. This is an alias of {@link Long#countLeadingZeros}.\n * @function\n * @param {!Long}\n * @returns {!number}\n */\nLongPrototype.clz = LongPrototype.countLeadingZeros;\n\n/**\n * Returns count trailing zeros of this Long.\n * @this {!Long}\n * @returns {!number}\n */\nLongPrototype.countTrailingZeros = function countTrailingZeros() {\n return this.low ? ctz32(this.low) : ctz32(this.high) + 32;\n};\n\n/**\n * Returns count trailing zeros. This is an alias of {@link Long#countTrailingZeros}.\n * @function\n * @param {!Long}\n * @returns {!number}\n */\nLongPrototype.ctz = LongPrototype.countTrailingZeros;\n\n/**\n * Returns the bitwise AND of this Long and the specified.\n * @this {!Long}\n * @param {!Long|number|string} other Other Long\n * @returns {!Long}\n */\nLongPrototype.and = function and(other) {\n if (!isLong(other))\n other = fromValue(other);\n return fromBits(this.low & other.low, this.high & other.high, this.unsigned);\n};\n\n/**\n * Returns the bitwise OR of this Long and the specified.\n * @this {!Long}\n * @param {!Long|number|string} other Other Long\n * @returns {!Long}\n */\nLongPrototype.or = function or(other) {\n if (!isLong(other))\n other = fromValue(other);\n return fromBits(this.low | other.low, this.high | other.high, this.unsigned);\n};\n\n/**\n * Returns the bitwise XOR of this Long and the given one.\n * @this {!Long}\n * @param {!Long|number|string} other Other Long\n * @returns {!Long}\n */\nLongPrototype.xor = function xor(other) {\n if (!isLong(other))\n other = fromValue(other);\n return fromBits(this.low ^ other.low, this.high ^ other.high, this.unsigned);\n};\n\n/**\n * Returns this Long with bits shifted to the left by the given amount.\n * @this {!Long}\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Shifted Long\n */\nLongPrototype.shiftLeft = function shiftLeft(numBits) {\n if (isLong(numBits))\n numBits = numBits.toInt();\n if ((numBits &= 63) === 0)\n return this;\n else if (numBits < 32)\n return fromBits(this.low << numBits, (this.high << numBits) | (this.low >>> (32 - numBits)), this.unsigned);\n else\n return fromBits(0, this.low << (numBits - 32), this.unsigned);\n};\n\n/**\n * Returns this Long with bits shifted to the left by the given amount. This is an alias of {@link Long#shiftLeft}.\n * @function\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Shifted Long\n */\nLongPrototype.shl = LongPrototype.shiftLeft;\n\n/**\n * Returns this Long with bits arithmetically shifted to the right by the given amount.\n * @this {!Long}\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Shifted Long\n */\nLongPrototype.shiftRight = function shiftRight(numBits) {\n if (isLong(numBits))\n numBits = numBits.toInt();\n if ((numBits &= 63) === 0)\n return this;\n else if (numBits < 32)\n return fromBits((this.low >>> numBits) | (this.high << (32 - numBits)), this.high >> numBits, this.unsigned);\n else\n return fromBits(this.high >> (numBits - 32), this.high >= 0 ? 0 : -1, this.unsigned);\n};\n\n/**\n * Returns this Long with bits arithmetically shifted to the right by the given amount. This is an alias of {@link Long#shiftRight}.\n * @function\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Shifted Long\n */\nLongPrototype.shr = LongPrototype.shiftRight;\n\n/**\n * Returns this Long with bits logically shifted to the right by the given amount.\n * @this {!Long}\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Shifted Long\n */\nLongPrototype.shiftRightUnsigned = function shiftRightUnsigned(numBits) {\n if (isLong(numBits)) numBits = numBits.toInt();\n if ((numBits &= 63) === 0) return this;\n if (numBits < 32) return fromBits((this.low >>> numBits) | (this.high << (32 - numBits)), this.high >>> numBits, this.unsigned);\n if (numBits === 32) return fromBits(this.high, 0, this.unsigned);\n return fromBits(this.high >>> (numBits - 32), 0, this.unsigned);\n};\n\n/**\n * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\n * @function\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Shifted Long\n */\nLongPrototype.shru = LongPrototype.shiftRightUnsigned;\n\n/**\n * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\n * @function\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Shifted Long\n */\nLongPrototype.shr_u = LongPrototype.shiftRightUnsigned;\n\n/**\n * Returns this Long with bits rotated to the left by the given amount.\n * @this {!Long}\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Rotated Long\n */\nLongPrototype.rotateLeft = function rotateLeft(numBits) {\n var b;\n if (isLong(numBits)) numBits = numBits.toInt();\n if ((numBits &= 63) === 0) return this;\n if (numBits === 32) return fromBits(this.high, this.low, this.unsigned);\n if (numBits < 32) {\n b = (32 - numBits);\n return fromBits(((this.low << numBits) | (this.high >>> b)), ((this.high << numBits) | (this.low >>> b)), this.unsigned);\n }\n numBits -= 32;\n b = (32 - numBits);\n return fromBits(((this.high << numBits) | (this.low >>> b)), ((this.low << numBits) | (this.high >>> b)), this.unsigned);\n}\n/**\n * Returns this Long with bits rotated to the left by the given amount. This is an alias of {@link Long#rotateLeft}.\n * @function\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Rotated Long\n */\nLongPrototype.rotl = LongPrototype.rotateLeft;\n\n/**\n * Returns this Long with bits rotated to the right by the given amount.\n * @this {!Long}\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Rotated Long\n */\nLongPrototype.rotateRight = function rotateRight(numBits) {\n var b;\n if (isLong(numBits)) numBits = numBits.toInt();\n if ((numBits &= 63) === 0) return this;\n if (numBits === 32) return fromBits(this.high, this.low, this.unsigned);\n if (numBits < 32) {\n b = (32 - numBits);\n return fromBits(((this.high << b) | (this.low >>> numBits)), ((this.low << b) | (this.high >>> numBits)), this.unsigned);\n }\n numBits -= 32;\n b = (32 - numBits);\n return fromBits(((this.low << b) | (this.high >>> numBits)), ((this.high << b) | (this.low >>> numBits)), this.unsigned);\n}\n/**\n * Returns this Long with bits rotated to the right by the given amount. This is an alias of {@link Long#rotateRight}.\n * @function\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Rotated Long\n */\nLongPrototype.rotr = LongPrototype.rotateRight;\n\n/**\n * Converts this Long to signed.\n * @this {!Long}\n * @returns {!Long} Signed long\n */\nLongPrototype.toSigned = function toSigned() {\n if (!this.unsigned)\n return this;\n return fromBits(this.low, this.high, false);\n};\n\n/**\n * Converts this Long to unsigned.\n * @this {!Long}\n * @returns {!Long} Unsigned long\n */\nLongPrototype.toUnsigned = function toUnsigned() {\n if (this.unsigned)\n return this;\n return fromBits(this.low, this.high, true);\n};\n\n/**\n * Converts this Long to its byte representation.\n * @param {boolean=} le Whether little or big endian, defaults to big endian\n * @this {!Long}\n * @returns {!Array.} Byte representation\n */\nLongPrototype.toBytes = function toBytes(le) {\n return le ? this.toBytesLE() : this.toBytesBE();\n};\n\n/**\n * Converts this Long to its little endian byte representation.\n * @this {!Long}\n * @returns {!Array.} Little endian byte representation\n */\nLongPrototype.toBytesLE = function toBytesLE() {\n var hi = this.high,\n lo = this.low;\n return [\n lo & 0xff,\n lo >>> 8 & 0xff,\n lo >>> 16 & 0xff,\n lo >>> 24,\n hi & 0xff,\n hi >>> 8 & 0xff,\n hi >>> 16 & 0xff,\n hi >>> 24\n ];\n};\n\n/**\n * Converts this Long to its big endian byte representation.\n * @this {!Long}\n * @returns {!Array.} Big endian byte representation\n */\nLongPrototype.toBytesBE = function toBytesBE() {\n var hi = this.high,\n lo = this.low;\n return [\n hi >>> 24,\n hi >>> 16 & 0xff,\n hi >>> 8 & 0xff,\n hi & 0xff,\n lo >>> 24,\n lo >>> 16 & 0xff,\n lo >>> 8 & 0xff,\n lo & 0xff\n ];\n};\n\n/**\n * Creates a Long from its byte representation.\n * @param {!Array.} bytes Byte representation\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\n * @param {boolean=} le Whether little or big endian, defaults to big endian\n * @returns {Long} The corresponding Long value\n */\nLong.fromBytes = function fromBytes(bytes, unsigned, le) {\n return le ? Long.fromBytesLE(bytes, unsigned) : Long.fromBytesBE(bytes, unsigned);\n};\n\n/**\n * Creates a Long from its little endian byte representation.\n * @param {!Array.} bytes Little endian byte representation\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\n * @returns {Long} The corresponding Long value\n */\nLong.fromBytesLE = function fromBytesLE(bytes, unsigned) {\n return new Long(\n bytes[0] |\n bytes[1] << 8 |\n bytes[2] << 16 |\n bytes[3] << 24,\n bytes[4] |\n bytes[5] << 8 |\n bytes[6] << 16 |\n bytes[7] << 24,\n unsigned\n );\n};\n\n/**\n * Creates a Long from its big endian byte representation.\n * @param {!Array.} bytes Big endian byte representation\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\n * @returns {Long} The corresponding Long value\n */\nLong.fromBytesBE = function fromBytesBE(bytes, unsigned) {\n return new Long(\n bytes[4] << 24 |\n bytes[5] << 16 |\n bytes[6] << 8 |\n bytes[7],\n bytes[0] << 24 |\n bytes[1] << 16 |\n bytes[2] << 8 |\n bytes[3],\n unsigned\n );\n};\n\nexport default Long;\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\n/**\n * @type {string[]}\n */\nconst byteToHex = [];\n\nfor (let n = 0; n <= 0xff; n += 1) {\n byteToHex.push(n.toString(16).padStart(2, \"0\"));\n}\n\n/**\n * @param {Uint8Array} data\n * @returns {string}\n */\nexport function encode(data) {\n let string = \"\";\n\n for (const byte of data) {\n string += byteToHex[byte];\n }\n\n return string;\n}\n\n/**\n * @param {string} text\n * @returns {Uint8Array}\n */\nexport function decode(text) {\n const str = text.startsWith(\"0x\") ? text.substring(2) : text;\n const result = str.match(/.{1,2}/gu);\n\n return new Uint8Array(\n (result == null ? [] : result).map((byte) => parseInt(byte, 16)),\n );\n}\n\n/**\n * Encode with a specified length. Supports zero padding if the most significant byte is 0\n *\n * https://github.com/ethers-io/ethers.js/blob/master/packages/bytes/src.ts/index.ts#L315\n *\n * @param {Uint8Array} value\n * @param {number} length\n * @returns {string}\n */\nexport function hexZeroPadded(value, length) {\n const HexCharacters = \"0123456789abcdef\";\n\n // https://github.com/ethers-io/ethers.js/blob/master/packages/bytes/src.ts/index.ts#L243\n let result = \"0x\";\n for (let i = 0; i < value.length; i++) {\n let v = value[i];\n result += HexCharacters[(v & 0xf0) >> 4] + HexCharacters[v & 0x0f];\n }\n\n // https://github.com/ethers-io/ethers.js/blob/master/packages/bytes/src.ts/index.ts#L315\n if (result.length > 2 * length + 2) {\n console.log(\"result out of range\", \"result\");\n }\n\n while (result.length < 2 * length + 2) {\n result = \"0x0\" + result.substring(2);\n }\n\n return result.substring(2);\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nexport default class BadEntityIdError extends Error {\n /**\n * @param {Long} shard\n * @param {Long} realm\n * @param {Long} num\n * @param {string} presentChecksum\n * @param {string} expectedChecksum\n */\n constructor(shard, realm, num, presentChecksum, expectedChecksum) {\n super(\n `Entity ID ${shard.toString()}.${realm.toString()}.${num.toString()}-${presentChecksum} was incorrect.`,\n );\n\n this.name = \"BadEntityIdException\";\n\n this.shard = shard;\n this.realm = realm;\n this.num = num;\n this.presentChecksum = presentChecksum;\n this.expectedChecksum = expectedChecksum;\n }\n}\n","/*\r\n * bignumber.js v9.1.2\r\n * A JavaScript library for arbitrary-precision arithmetic.\r\n * https://github.com/MikeMcl/bignumber.js\r\n * Copyright (c) 2022 Michael Mclaughlin \r\n * MIT Licensed.\r\n *\r\n * BigNumber.prototype methods | BigNumber methods\r\n * |\r\n * absoluteValue abs | clone\r\n * comparedTo | config set\r\n * decimalPlaces dp | DECIMAL_PLACES\r\n * dividedBy div | ROUNDING_MODE\r\n * dividedToIntegerBy idiv | EXPONENTIAL_AT\r\n * exponentiatedBy pow | RANGE\r\n * integerValue | CRYPTO\r\n * isEqualTo eq | MODULO_MODE\r\n * isFinite | POW_PRECISION\r\n * isGreaterThan gt | FORMAT\r\n * isGreaterThanOrEqualTo gte | ALPHABET\r\n * isInteger | isBigNumber\r\n * isLessThan lt | maximum max\r\n * isLessThanOrEqualTo lte | minimum min\r\n * isNaN | random\r\n * isNegative | sum\r\n * isPositive |\r\n * isZero |\r\n * minus |\r\n * modulo mod |\r\n * multipliedBy times |\r\n * negated |\r\n * plus |\r\n * precision sd |\r\n * shiftedBy |\r\n * squareRoot sqrt |\r\n * toExponential |\r\n * toFixed |\r\n * toFormat |\r\n * toFraction |\r\n * toJSON |\r\n * toNumber |\r\n * toPrecision |\r\n * toString |\r\n * valueOf |\r\n *\r\n */\r\n\r\n\r\nvar\r\n isNumeric = /^-?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?$/i,\r\n mathceil = Math.ceil,\r\n mathfloor = Math.floor,\r\n\r\n bignumberError = '[BigNumber Error] ',\r\n tooManyDigits = bignumberError + 'Number primitive has more than 15 significant digits: ',\r\n\r\n BASE = 1e14,\r\n LOG_BASE = 14,\r\n MAX_SAFE_INTEGER = 0x1fffffffffffff, // 2^53 - 1\r\n // MAX_INT32 = 0x7fffffff, // 2^31 - 1\r\n POWS_TEN = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13],\r\n SQRT_BASE = 1e7,\r\n\r\n // EDITABLE\r\n // The limit on the value of DECIMAL_PLACES, TO_EXP_NEG, TO_EXP_POS, MIN_EXP, MAX_EXP, and\r\n // the arguments to toExponential, toFixed, toFormat, and toPrecision.\r\n MAX = 1E9; // 0 to MAX_INT32\r\n\r\n\r\n/*\r\n * Create and return a BigNumber constructor.\r\n */\r\nfunction clone(configObject) {\r\n var div, convertBase, parseNumeric,\r\n P = BigNumber.prototype = { constructor: BigNumber, toString: null, valueOf: null },\r\n ONE = new BigNumber(1),\r\n\r\n\r\n //----------------------------- EDITABLE CONFIG DEFAULTS -------------------------------\r\n\r\n\r\n // The default values below must be integers within the inclusive ranges stated.\r\n // The values can also be changed at run-time using BigNumber.set.\r\n\r\n // The maximum number of decimal places for operations involving division.\r\n DECIMAL_PLACES = 20, // 0 to MAX\r\n\r\n // The rounding mode used when rounding to the above decimal places, and when using\r\n // toExponential, toFixed, toFormat and toPrecision, and round (default value).\r\n // UP 0 Away from zero.\r\n // DOWN 1 Towards zero.\r\n // CEIL 2 Towards +Infinity.\r\n // FLOOR 3 Towards -Infinity.\r\n // HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n ROUNDING_MODE = 4, // 0 to 8\r\n\r\n // EXPONENTIAL_AT : [TO_EXP_NEG , TO_EXP_POS]\r\n\r\n // The exponent value at and beneath which toString returns exponential notation.\r\n // Number type: -7\r\n TO_EXP_NEG = -7, // 0 to -MAX\r\n\r\n // The exponent value at and above which toString returns exponential notation.\r\n // Number type: 21\r\n TO_EXP_POS = 21, // 0 to MAX\r\n\r\n // RANGE : [MIN_EXP, MAX_EXP]\r\n\r\n // The minimum exponent value, beneath which underflow to zero occurs.\r\n // Number type: -324 (5e-324)\r\n MIN_EXP = -1e7, // -1 to -MAX\r\n\r\n // The maximum exponent value, above which overflow to Infinity occurs.\r\n // Number type: 308 (1.7976931348623157e+308)\r\n // For MAX_EXP > 1e7, e.g. new BigNumber('1e100000000').plus(1) may be slow.\r\n MAX_EXP = 1e7, // 1 to MAX\r\n\r\n // Whether to use cryptographically-secure random number generation, if available.\r\n CRYPTO = false, // true or false\r\n\r\n // The modulo mode used when calculating the modulus: a mod n.\r\n // The quotient (q = a / n) is calculated according to the corresponding rounding mode.\r\n // The remainder (r) is calculated as: r = a - n * q.\r\n //\r\n // UP 0 The remainder is positive if the dividend is negative, else is negative.\r\n // DOWN 1 The remainder has the same sign as the dividend.\r\n // This modulo mode is commonly known as 'truncated division' and is\r\n // equivalent to (a % n) in JavaScript.\r\n // FLOOR 3 The remainder has the same sign as the divisor (Python %).\r\n // HALF_EVEN 6 This modulo mode implements the IEEE 754 remainder function.\r\n // EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)).\r\n // The remainder is always positive.\r\n //\r\n // The truncated division, floored division, Euclidian division and IEEE 754 remainder\r\n // modes are commonly used for the modulus operation.\r\n // Although the other rounding modes can also be used, they may not give useful results.\r\n MODULO_MODE = 1, // 0 to 9\r\n\r\n // The maximum number of significant digits of the result of the exponentiatedBy operation.\r\n // If POW_PRECISION is 0, there will be unlimited significant digits.\r\n POW_PRECISION = 0, // 0 to MAX\r\n\r\n // The format specification used by the BigNumber.prototype.toFormat method.\r\n FORMAT = {\r\n prefix: '',\r\n groupSize: 3,\r\n secondaryGroupSize: 0,\r\n groupSeparator: ',',\r\n decimalSeparator: '.',\r\n fractionGroupSize: 0,\r\n fractionGroupSeparator: '\\xA0', // non-breaking space\r\n suffix: ''\r\n },\r\n\r\n // The alphabet used for base conversion. It must be at least 2 characters long, with no '+',\r\n // '-', '.', whitespace, or repeated character.\r\n // '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_'\r\n ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyz',\r\n alphabetHasNormalDecimalDigits = true;\r\n\r\n\r\n //------------------------------------------------------------------------------------------\r\n\r\n\r\n // CONSTRUCTOR\r\n\r\n\r\n /*\r\n * The BigNumber constructor and exported function.\r\n * Create and return a new instance of a BigNumber object.\r\n *\r\n * v {number|string|BigNumber} A numeric value.\r\n * [b] {number} The base of v. Integer, 2 to ALPHABET.length inclusive.\r\n */\r\n function BigNumber(v, b) {\r\n var alphabet, c, caseChanged, e, i, isNum, len, str,\r\n x = this;\r\n\r\n // Enable constructor call without `new`.\r\n if (!(x instanceof BigNumber)) return new BigNumber(v, b);\r\n\r\n if (b == null) {\r\n\r\n if (v && v._isBigNumber === true) {\r\n x.s = v.s;\r\n\r\n if (!v.c || v.e > MAX_EXP) {\r\n x.c = x.e = null;\r\n } else if (v.e < MIN_EXP) {\r\n x.c = [x.e = 0];\r\n } else {\r\n x.e = v.e;\r\n x.c = v.c.slice();\r\n }\r\n\r\n return;\r\n }\r\n\r\n if ((isNum = typeof v == 'number') && v * 0 == 0) {\r\n\r\n // Use `1 / n` to handle minus zero also.\r\n x.s = 1 / v < 0 ? (v = -v, -1) : 1;\r\n\r\n // Fast path for integers, where n < 2147483648 (2**31).\r\n if (v === ~~v) {\r\n for (e = 0, i = v; i >= 10; i /= 10, e++);\r\n\r\n if (e > MAX_EXP) {\r\n x.c = x.e = null;\r\n } else {\r\n x.e = e;\r\n x.c = [v];\r\n }\r\n\r\n return;\r\n }\r\n\r\n str = String(v);\r\n } else {\r\n\r\n if (!isNumeric.test(str = String(v))) return parseNumeric(x, str, isNum);\r\n\r\n x.s = str.charCodeAt(0) == 45 ? (str = str.slice(1), -1) : 1;\r\n }\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = str.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +str.slice(i + 1);\r\n str = str.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = str.length;\r\n }\r\n\r\n } else {\r\n\r\n // '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n intCheck(b, 2, ALPHABET.length, 'Base');\r\n\r\n // Allow exponential notation to be used with base 10 argument, while\r\n // also rounding to DECIMAL_PLACES as with other bases.\r\n if (b == 10 && alphabetHasNormalDecimalDigits) {\r\n x = new BigNumber(v);\r\n return round(x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE);\r\n }\r\n\r\n str = String(v);\r\n\r\n if (isNum = typeof v == 'number') {\r\n\r\n // Avoid potential interpretation of Infinity and NaN as base 44+ values.\r\n if (v * 0 != 0) return parseNumeric(x, str, isNum, b);\r\n\r\n x.s = 1 / v < 0 ? (str = str.slice(1), -1) : 1;\r\n\r\n // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n if (BigNumber.DEBUG && str.replace(/^0\\.0*|\\./, '').length > 15) {\r\n throw Error\r\n (tooManyDigits + v);\r\n }\r\n } else {\r\n x.s = str.charCodeAt(0) === 45 ? (str = str.slice(1), -1) : 1;\r\n }\r\n\r\n alphabet = ALPHABET.slice(0, b);\r\n e = i = 0;\r\n\r\n // Check that str is a valid base b number.\r\n // Don't use RegExp, so alphabet can contain special characters.\r\n for (len = str.length; i < len; i++) {\r\n if (alphabet.indexOf(c = str.charAt(i)) < 0) {\r\n if (c == '.') {\r\n\r\n // If '.' is not the first character and it has not be found before.\r\n if (i > e) {\r\n e = len;\r\n continue;\r\n }\r\n } else if (!caseChanged) {\r\n\r\n // Allow e.g. hexadecimal 'FF' as well as 'ff'.\r\n if (str == str.toUpperCase() && (str = str.toLowerCase()) ||\r\n str == str.toLowerCase() && (str = str.toUpperCase())) {\r\n caseChanged = true;\r\n i = -1;\r\n e = 0;\r\n continue;\r\n }\r\n }\r\n\r\n return parseNumeric(x, String(v), isNum, b);\r\n }\r\n }\r\n\r\n // Prevent later check for length on converted number.\r\n isNum = false;\r\n str = convertBase(str, b, 10, x.s);\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n else e = str.length;\r\n }\r\n\r\n // Determine leading zeros.\r\n for (i = 0; str.charCodeAt(i) === 48; i++);\r\n\r\n // Determine trailing zeros.\r\n for (len = str.length; str.charCodeAt(--len) === 48;);\r\n\r\n if (str = str.slice(i, ++len)) {\r\n len -= i;\r\n\r\n // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n if (isNum && BigNumber.DEBUG &&\r\n len > 15 && (v > MAX_SAFE_INTEGER || v !== mathfloor(v))) {\r\n throw Error\r\n (tooManyDigits + (x.s * v));\r\n }\r\n\r\n // Overflow?\r\n if ((e = e - i - 1) > MAX_EXP) {\r\n\r\n // Infinity.\r\n x.c = x.e = null;\r\n\r\n // Underflow?\r\n } else if (e < MIN_EXP) {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n } else {\r\n x.e = e;\r\n x.c = [];\r\n\r\n // Transform base\r\n\r\n // e is the base 10 exponent.\r\n // i is where to slice str to get the first element of the coefficient array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE; // i < 1\r\n\r\n if (i < len) {\r\n if (i) x.c.push(+str.slice(0, i));\r\n\r\n for (len -= LOG_BASE; i < len;) {\r\n x.c.push(+str.slice(i, i += LOG_BASE));\r\n }\r\n\r\n i = LOG_BASE - (str = str.slice(i)).length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--; str += '0');\r\n x.c.push(+str);\r\n }\r\n } else {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n }\r\n }\r\n\r\n\r\n // CONSTRUCTOR PROPERTIES\r\n\r\n\r\n BigNumber.clone = clone;\r\n\r\n BigNumber.ROUND_UP = 0;\r\n BigNumber.ROUND_DOWN = 1;\r\n BigNumber.ROUND_CEIL = 2;\r\n BigNumber.ROUND_FLOOR = 3;\r\n BigNumber.ROUND_HALF_UP = 4;\r\n BigNumber.ROUND_HALF_DOWN = 5;\r\n BigNumber.ROUND_HALF_EVEN = 6;\r\n BigNumber.ROUND_HALF_CEIL = 7;\r\n BigNumber.ROUND_HALF_FLOOR = 8;\r\n BigNumber.EUCLID = 9;\r\n\r\n\r\n /*\r\n * Configure infrequently-changing library-wide settings.\r\n *\r\n * Accept an object with the following optional properties (if the value of a property is\r\n * a number, it must be an integer within the inclusive range stated):\r\n *\r\n * DECIMAL_PLACES {number} 0 to MAX\r\n * ROUNDING_MODE {number} 0 to 8\r\n * EXPONENTIAL_AT {number|number[]} -MAX to MAX or [-MAX to 0, 0 to MAX]\r\n * RANGE {number|number[]} -MAX to MAX (not zero) or [-MAX to -1, 1 to MAX]\r\n * CRYPTO {boolean} true or false\r\n * MODULO_MODE {number} 0 to 9\r\n * POW_PRECISION {number} 0 to MAX\r\n * ALPHABET {string} A string of two or more unique characters which does\r\n * not contain '.'.\r\n * FORMAT {object} An object with some of the following properties:\r\n * prefix {string}\r\n * groupSize {number}\r\n * secondaryGroupSize {number}\r\n * groupSeparator {string}\r\n * decimalSeparator {string}\r\n * fractionGroupSize {number}\r\n * fractionGroupSeparator {string}\r\n * suffix {string}\r\n *\r\n * (The values assigned to the above FORMAT object properties are not checked for validity.)\r\n *\r\n * E.g.\r\n * BigNumber.config({ DECIMAL_PLACES : 20, ROUNDING_MODE : 4 })\r\n *\r\n * Ignore properties/parameters set to null or undefined, except for ALPHABET.\r\n *\r\n * Return an object with the properties current values.\r\n */\r\n BigNumber.config = BigNumber.set = function (obj) {\r\n var p, v;\r\n\r\n if (obj != null) {\r\n\r\n if (typeof obj == 'object') {\r\n\r\n // DECIMAL_PLACES {number} Integer, 0 to MAX inclusive.\r\n // '[BigNumber Error] DECIMAL_PLACES {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'DECIMAL_PLACES')) {\r\n v = obj[p];\r\n intCheck(v, 0, MAX, p);\r\n DECIMAL_PLACES = v;\r\n }\r\n\r\n // ROUNDING_MODE {number} Integer, 0 to 8 inclusive.\r\n // '[BigNumber Error] ROUNDING_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'ROUNDING_MODE')) {\r\n v = obj[p];\r\n intCheck(v, 0, 8, p);\r\n ROUNDING_MODE = v;\r\n }\r\n\r\n // EXPONENTIAL_AT {number|number[]}\r\n // Integer, -MAX to MAX inclusive or\r\n // [integer -MAX to 0 inclusive, 0 to MAX inclusive].\r\n // '[BigNumber Error] EXPONENTIAL_AT {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'EXPONENTIAL_AT')) {\r\n v = obj[p];\r\n if (v && v.pop) {\r\n intCheck(v[0], -MAX, 0, p);\r\n intCheck(v[1], 0, MAX, p);\r\n TO_EXP_NEG = v[0];\r\n TO_EXP_POS = v[1];\r\n } else {\r\n intCheck(v, -MAX, MAX, p);\r\n TO_EXP_NEG = -(TO_EXP_POS = v < 0 ? -v : v);\r\n }\r\n }\r\n\r\n // RANGE {number|number[]} Non-zero integer, -MAX to MAX inclusive or\r\n // [integer -MAX to -1 inclusive, integer 1 to MAX inclusive].\r\n // '[BigNumber Error] RANGE {not a primitive number|not an integer|out of range|cannot be zero}: {v}'\r\n if (obj.hasOwnProperty(p = 'RANGE')) {\r\n v = obj[p];\r\n if (v && v.pop) {\r\n intCheck(v[0], -MAX, -1, p);\r\n intCheck(v[1], 1, MAX, p);\r\n MIN_EXP = v[0];\r\n MAX_EXP = v[1];\r\n } else {\r\n intCheck(v, -MAX, MAX, p);\r\n if (v) {\r\n MIN_EXP = -(MAX_EXP = v < 0 ? -v : v);\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' cannot be zero: ' + v);\r\n }\r\n }\r\n }\r\n\r\n // CRYPTO {boolean} true or false.\r\n // '[BigNumber Error] CRYPTO not true or false: {v}'\r\n // '[BigNumber Error] crypto unavailable'\r\n if (obj.hasOwnProperty(p = 'CRYPTO')) {\r\n v = obj[p];\r\n if (v === !!v) {\r\n if (v) {\r\n if (typeof crypto != 'undefined' && crypto &&\r\n (crypto.getRandomValues || crypto.randomBytes)) {\r\n CRYPTO = v;\r\n } else {\r\n CRYPTO = !v;\r\n throw Error\r\n (bignumberError + 'crypto unavailable');\r\n }\r\n } else {\r\n CRYPTO = v;\r\n }\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' not true or false: ' + v);\r\n }\r\n }\r\n\r\n // MODULO_MODE {number} Integer, 0 to 9 inclusive.\r\n // '[BigNumber Error] MODULO_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'MODULO_MODE')) {\r\n v = obj[p];\r\n intCheck(v, 0, 9, p);\r\n MODULO_MODE = v;\r\n }\r\n\r\n // POW_PRECISION {number} Integer, 0 to MAX inclusive.\r\n // '[BigNumber Error] POW_PRECISION {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'POW_PRECISION')) {\r\n v = obj[p];\r\n intCheck(v, 0, MAX, p);\r\n POW_PRECISION = v;\r\n }\r\n\r\n // FORMAT {object}\r\n // '[BigNumber Error] FORMAT not an object: {v}'\r\n if (obj.hasOwnProperty(p = 'FORMAT')) {\r\n v = obj[p];\r\n if (typeof v == 'object') FORMAT = v;\r\n else throw Error\r\n (bignumberError + p + ' not an object: ' + v);\r\n }\r\n\r\n // ALPHABET {string}\r\n // '[BigNumber Error] ALPHABET invalid: {v}'\r\n if (obj.hasOwnProperty(p = 'ALPHABET')) {\r\n v = obj[p];\r\n\r\n // Disallow if less than two characters,\r\n // or if it contains '+', '-', '.', whitespace, or a repeated character.\r\n if (typeof v == 'string' && !/^.?$|[+\\-.\\s]|(.).*\\1/.test(v)) {\r\n alphabetHasNormalDecimalDigits = v.slice(0, 10) == '0123456789';\r\n ALPHABET = v;\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' invalid: ' + v);\r\n }\r\n }\r\n\r\n } else {\r\n\r\n // '[BigNumber Error] Object expected: {v}'\r\n throw Error\r\n (bignumberError + 'Object expected: ' + obj);\r\n }\r\n }\r\n\r\n return {\r\n DECIMAL_PLACES: DECIMAL_PLACES,\r\n ROUNDING_MODE: ROUNDING_MODE,\r\n EXPONENTIAL_AT: [TO_EXP_NEG, TO_EXP_POS],\r\n RANGE: [MIN_EXP, MAX_EXP],\r\n CRYPTO: CRYPTO,\r\n MODULO_MODE: MODULO_MODE,\r\n POW_PRECISION: POW_PRECISION,\r\n FORMAT: FORMAT,\r\n ALPHABET: ALPHABET\r\n };\r\n };\r\n\r\n\r\n /*\r\n * Return true if v is a BigNumber instance, otherwise return false.\r\n *\r\n * If BigNumber.DEBUG is true, throw if a BigNumber instance is not well-formed.\r\n *\r\n * v {any}\r\n *\r\n * '[BigNumber Error] Invalid BigNumber: {v}'\r\n */\r\n BigNumber.isBigNumber = function (v) {\r\n if (!v || v._isBigNumber !== true) return false;\r\n if (!BigNumber.DEBUG) return true;\r\n\r\n var i, n,\r\n c = v.c,\r\n e = v.e,\r\n s = v.s;\r\n\r\n out: if ({}.toString.call(c) == '[object Array]') {\r\n\r\n if ((s === 1 || s === -1) && e >= -MAX && e <= MAX && e === mathfloor(e)) {\r\n\r\n // If the first element is zero, the BigNumber value must be zero.\r\n if (c[0] === 0) {\r\n if (e === 0 && c.length === 1) return true;\r\n break out;\r\n }\r\n\r\n // Calculate number of digits that c[0] should have, based on the exponent.\r\n i = (e + 1) % LOG_BASE;\r\n if (i < 1) i += LOG_BASE;\r\n\r\n // Calculate number of digits of c[0].\r\n //if (Math.ceil(Math.log(c[0] + 1) / Math.LN10) == i) {\r\n if (String(c[0]).length == i) {\r\n\r\n for (i = 0; i < c.length; i++) {\r\n n = c[i];\r\n if (n < 0 || n >= BASE || n !== mathfloor(n)) break out;\r\n }\r\n\r\n // Last element cannot be zero, unless it is the only element.\r\n if (n !== 0) return true;\r\n }\r\n }\r\n\r\n // Infinity/NaN\r\n } else if (c === null && e === null && (s === null || s === 1 || s === -1)) {\r\n return true;\r\n }\r\n\r\n throw Error\r\n (bignumberError + 'Invalid BigNumber: ' + v);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the maximum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.maximum = BigNumber.max = function () {\r\n return maxOrMin(arguments, -1);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the minimum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.minimum = BigNumber.min = function () {\r\n return maxOrMin(arguments, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber with a random value equal to or greater than 0 and less than 1,\r\n * and with dp, or DECIMAL_PLACES if dp is omitted, decimal places (or less if trailing\r\n * zeros are produced).\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp}'\r\n * '[BigNumber Error] crypto unavailable'\r\n */\r\n BigNumber.random = (function () {\r\n var pow2_53 = 0x20000000000000;\r\n\r\n // Return a 53 bit integer n, where 0 <= n < 9007199254740992.\r\n // Check if Math.random() produces more than 32 bits of randomness.\r\n // If it does, assume at least 53 bits are produced, otherwise assume at least 30 bits.\r\n // 0x40000000 is 2^30, 0x800000 is 2^23, 0x1fffff is 2^21 - 1.\r\n var random53bitInt = (Math.random() * pow2_53) & 0x1fffff\r\n ? function () { return mathfloor(Math.random() * pow2_53); }\r\n : function () { return ((Math.random() * 0x40000000 | 0) * 0x800000) +\r\n (Math.random() * 0x800000 | 0); };\r\n\r\n return function (dp) {\r\n var a, b, e, k, v,\r\n i = 0,\r\n c = [],\r\n rand = new BigNumber(ONE);\r\n\r\n if (dp == null) dp = DECIMAL_PLACES;\r\n else intCheck(dp, 0, MAX);\r\n\r\n k = mathceil(dp / LOG_BASE);\r\n\r\n if (CRYPTO) {\r\n\r\n // Browsers supporting crypto.getRandomValues.\r\n if (crypto.getRandomValues) {\r\n\r\n a = crypto.getRandomValues(new Uint32Array(k *= 2));\r\n\r\n for (; i < k;) {\r\n\r\n // 53 bits:\r\n // ((Math.pow(2, 32) - 1) * Math.pow(2, 21)).toString(2)\r\n // 11111 11111111 11111111 11111111 11100000 00000000 00000000\r\n // ((Math.pow(2, 32) - 1) >>> 11).toString(2)\r\n // 11111 11111111 11111111\r\n // 0x20000 is 2^21.\r\n v = a[i] * 0x20000 + (a[i + 1] >>> 11);\r\n\r\n // Rejection sampling:\r\n // 0 <= v < 9007199254740992\r\n // Probability that v >= 9e15, is\r\n // 7199254740992 / 9007199254740992 ~= 0.0008, i.e. 1 in 1251\r\n if (v >= 9e15) {\r\n b = crypto.getRandomValues(new Uint32Array(2));\r\n a[i] = b[0];\r\n a[i + 1] = b[1];\r\n } else {\r\n\r\n // 0 <= v <= 8999999999999999\r\n // 0 <= (v % 1e14) <= 99999999999999\r\n c.push(v % 1e14);\r\n i += 2;\r\n }\r\n }\r\n i = k / 2;\r\n\r\n // Node.js supporting crypto.randomBytes.\r\n } else if (crypto.randomBytes) {\r\n\r\n // buffer\r\n a = crypto.randomBytes(k *= 7);\r\n\r\n for (; i < k;) {\r\n\r\n // 0x1000000000000 is 2^48, 0x10000000000 is 2^40\r\n // 0x100000000 is 2^32, 0x1000000 is 2^24\r\n // 11111 11111111 11111111 11111111 11111111 11111111 11111111\r\n // 0 <= v < 9007199254740992\r\n v = ((a[i] & 31) * 0x1000000000000) + (a[i + 1] * 0x10000000000) +\r\n (a[i + 2] * 0x100000000) + (a[i + 3] * 0x1000000) +\r\n (a[i + 4] << 16) + (a[i + 5] << 8) + a[i + 6];\r\n\r\n if (v >= 9e15) {\r\n crypto.randomBytes(7).copy(a, i);\r\n } else {\r\n\r\n // 0 <= (v % 1e14) <= 99999999999999\r\n c.push(v % 1e14);\r\n i += 7;\r\n }\r\n }\r\n i = k / 7;\r\n } else {\r\n CRYPTO = false;\r\n throw Error\r\n (bignumberError + 'crypto unavailable');\r\n }\r\n }\r\n\r\n // Use Math.random.\r\n if (!CRYPTO) {\r\n\r\n for (; i < k;) {\r\n v = random53bitInt();\r\n if (v < 9e15) c[i++] = v % 1e14;\r\n }\r\n }\r\n\r\n k = c[--i];\r\n dp %= LOG_BASE;\r\n\r\n // Convert trailing digits to zeros according to dp.\r\n if (k && dp) {\r\n v = POWS_TEN[LOG_BASE - dp];\r\n c[i] = mathfloor(k / v) * v;\r\n }\r\n\r\n // Remove trailing elements which are zero.\r\n for (; c[i] === 0; c.pop(), i--);\r\n\r\n // Zero?\r\n if (i < 0) {\r\n c = [e = 0];\r\n } else {\r\n\r\n // Remove leading elements which are zero and adjust exponent accordingly.\r\n for (e = -1 ; c[0] === 0; c.splice(0, 1), e -= LOG_BASE);\r\n\r\n // Count the digits of the first element of c to determine leading zeros, and...\r\n for (i = 1, v = c[0]; v >= 10; v /= 10, i++);\r\n\r\n // adjust the exponent accordingly.\r\n if (i < LOG_BASE) e -= LOG_BASE - i;\r\n }\r\n\r\n rand.e = e;\r\n rand.c = c;\r\n return rand;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a BigNumber whose value is the sum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.sum = function () {\r\n var i = 1,\r\n args = arguments,\r\n sum = new BigNumber(args[0]);\r\n for (; i < args.length;) sum = sum.plus(args[i++]);\r\n return sum;\r\n };\r\n\r\n\r\n // PRIVATE FUNCTIONS\r\n\r\n\r\n // Called by BigNumber and BigNumber.prototype.toString.\r\n convertBase = (function () {\r\n var decimal = '0123456789';\r\n\r\n /*\r\n * Convert string of baseIn to an array of numbers of baseOut.\r\n * Eg. toBaseOut('255', 10, 16) returns [15, 15].\r\n * Eg. toBaseOut('ff', 16, 10) returns [2, 5, 5].\r\n */\r\n function toBaseOut(str, baseIn, baseOut, alphabet) {\r\n var j,\r\n arr = [0],\r\n arrL,\r\n i = 0,\r\n len = str.length;\r\n\r\n for (; i < len;) {\r\n for (arrL = arr.length; arrL--; arr[arrL] *= baseIn);\r\n\r\n arr[0] += alphabet.indexOf(str.charAt(i++));\r\n\r\n for (j = 0; j < arr.length; j++) {\r\n\r\n if (arr[j] > baseOut - 1) {\r\n if (arr[j + 1] == null) arr[j + 1] = 0;\r\n arr[j + 1] += arr[j] / baseOut | 0;\r\n arr[j] %= baseOut;\r\n }\r\n }\r\n }\r\n\r\n return arr.reverse();\r\n }\r\n\r\n // Convert a numeric string of baseIn to a numeric string of baseOut.\r\n // If the caller is toString, we are converting from base 10 to baseOut.\r\n // If the caller is BigNumber, we are converting from baseIn to base 10.\r\n return function (str, baseIn, baseOut, sign, callerIsToString) {\r\n var alphabet, d, e, k, r, x, xc, y,\r\n i = str.indexOf('.'),\r\n dp = DECIMAL_PLACES,\r\n rm = ROUNDING_MODE;\r\n\r\n // Non-integer.\r\n if (i >= 0) {\r\n k = POW_PRECISION;\r\n\r\n // Unlimited precision.\r\n POW_PRECISION = 0;\r\n str = str.replace('.', '');\r\n y = new BigNumber(baseIn);\r\n x = y.pow(str.length - i);\r\n POW_PRECISION = k;\r\n\r\n // Convert str as if an integer, then restore the fraction part by dividing the\r\n // result by its base raised to a power.\r\n\r\n y.c = toBaseOut(toFixedPoint(coeffToString(x.c), x.e, '0'),\r\n 10, baseOut, decimal);\r\n y.e = y.c.length;\r\n }\r\n\r\n // Convert the number as integer.\r\n\r\n xc = toBaseOut(str, baseIn, baseOut, callerIsToString\r\n ? (alphabet = ALPHABET, decimal)\r\n : (alphabet = decimal, ALPHABET));\r\n\r\n // xc now represents str as an integer and converted to baseOut. e is the exponent.\r\n e = k = xc.length;\r\n\r\n // Remove trailing zeros.\r\n for (; xc[--k] == 0; xc.pop());\r\n\r\n // Zero?\r\n if (!xc[0]) return alphabet.charAt(0);\r\n\r\n // Does str represent an integer? If so, no need for the division.\r\n if (i < 0) {\r\n --e;\r\n } else {\r\n x.c = xc;\r\n x.e = e;\r\n\r\n // The sign is needed for correct rounding.\r\n x.s = sign;\r\n x = div(x, y, dp, rm, baseOut);\r\n xc = x.c;\r\n r = x.r;\r\n e = x.e;\r\n }\r\n\r\n // xc now represents str converted to baseOut.\r\n\r\n // THe index of the rounding digit.\r\n d = e + dp + 1;\r\n\r\n // The rounding digit: the digit to the right of the digit that may be rounded up.\r\n i = xc[d];\r\n\r\n // Look at the rounding digits and mode to determine whether to round up.\r\n\r\n k = baseOut / 2;\r\n r = r || d < 0 || xc[d + 1] != null;\r\n\r\n r = rm < 4 ? (i != null || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : i > k || i == k &&(rm == 4 || r || rm == 6 && xc[d - 1] & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n // If the index of the rounding digit is not greater than zero, or xc represents\r\n // zero, then the result of the base conversion is zero or, if rounding up, a value\r\n // such as 0.00001.\r\n if (d < 1 || !xc[0]) {\r\n\r\n // 1^-dp or 0\r\n str = r ? toFixedPoint(alphabet.charAt(1), -dp, alphabet.charAt(0)) : alphabet.charAt(0);\r\n } else {\r\n\r\n // Truncate xc to the required number of decimal places.\r\n xc.length = d;\r\n\r\n // Round up?\r\n if (r) {\r\n\r\n // Rounding up may mean the previous digit has to be rounded up and so on.\r\n for (--baseOut; ++xc[--d] > baseOut;) {\r\n xc[d] = 0;\r\n\r\n if (!d) {\r\n ++e;\r\n xc = [1].concat(xc);\r\n }\r\n }\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (k = xc.length; !xc[--k];);\r\n\r\n // E.g. [4, 11, 15] becomes 4bf.\r\n for (i = 0, str = ''; i <= k; str += alphabet.charAt(xc[i++]));\r\n\r\n // Add leading zeros, decimal point and trailing zeros as required.\r\n str = toFixedPoint(str, e, alphabet.charAt(0));\r\n }\r\n\r\n // The caller will add the sign.\r\n return str;\r\n };\r\n })();\r\n\r\n\r\n // Perform division in the specified base. Called by div and convertBase.\r\n div = (function () {\r\n\r\n // Assume non-zero x and k.\r\n function multiply(x, k, base) {\r\n var m, temp, xlo, xhi,\r\n carry = 0,\r\n i = x.length,\r\n klo = k % SQRT_BASE,\r\n khi = k / SQRT_BASE | 0;\r\n\r\n for (x = x.slice(); i--;) {\r\n xlo = x[i] % SQRT_BASE;\r\n xhi = x[i] / SQRT_BASE | 0;\r\n m = khi * xlo + xhi * klo;\r\n temp = klo * xlo + ((m % SQRT_BASE) * SQRT_BASE) + carry;\r\n carry = (temp / base | 0) + (m / SQRT_BASE | 0) + khi * xhi;\r\n x[i] = temp % base;\r\n }\r\n\r\n if (carry) x = [carry].concat(x);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, cmp;\r\n\r\n if (aL != bL) {\r\n cmp = aL > bL ? 1 : -1;\r\n } else {\r\n\r\n for (i = cmp = 0; i < aL; i++) {\r\n\r\n if (a[i] != b[i]) {\r\n cmp = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return cmp;\r\n }\r\n\r\n function subtract(a, b, aL, base) {\r\n var i = 0;\r\n\r\n // Subtract b from a.\r\n for (; aL--;) {\r\n a[aL] -= i;\r\n i = a[aL] < b[aL] ? 1 : 0;\r\n a[aL] = i * base + a[aL] - b[aL];\r\n }\r\n\r\n // Remove leading zeros.\r\n for (; !a[0] && a.length > 1; a.splice(0, 1));\r\n }\r\n\r\n // x: dividend, y: divisor.\r\n return function (x, y, dp, rm, base) {\r\n var cmp, e, i, more, n, prod, prodL, q, qc, rem, remL, rem0, xi, xL, yc0,\r\n yL, yz,\r\n s = x.s == y.s ? 1 : -1,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n // Either NaN, Infinity or 0?\r\n if (!xc || !xc[0] || !yc || !yc[0]) {\r\n\r\n return new BigNumber(\r\n\r\n // Return NaN if either NaN, or both Infinity or 0.\r\n !x.s || !y.s || (xc ? yc && xc[0] == yc[0] : !yc) ? NaN :\r\n\r\n // Return ±0 if x is ±0 or y is ±Infinity, or return ±Infinity as y is ±0.\r\n xc && xc[0] == 0 || !yc ? s * 0 : s / 0\r\n );\r\n }\r\n\r\n q = new BigNumber(s);\r\n qc = q.c = [];\r\n e = x.e - y.e;\r\n s = dp + e + 1;\r\n\r\n if (!base) {\r\n base = BASE;\r\n e = bitFloor(x.e / LOG_BASE) - bitFloor(y.e / LOG_BASE);\r\n s = s / LOG_BASE | 0;\r\n }\r\n\r\n // Result exponent may be one less then the current value of e.\r\n // The coefficients of the BigNumbers from convertBase may have trailing zeros.\r\n for (i = 0; yc[i] == (xc[i] || 0); i++);\r\n\r\n if (yc[i] > (xc[i] || 0)) e--;\r\n\r\n if (s < 0) {\r\n qc.push(1);\r\n more = true;\r\n } else {\r\n xL = xc.length;\r\n yL = yc.length;\r\n i = 0;\r\n s += 2;\r\n\r\n // Normalise xc and yc so highest order digit of yc is >= base / 2.\r\n\r\n n = mathfloor(base / (yc[0] + 1));\r\n\r\n // Not necessary, but to handle odd bases where yc[0] == (base / 2) - 1.\r\n // if (n > 1 || n++ == 1 && yc[0] < base / 2) {\r\n if (n > 1) {\r\n yc = multiply(yc, n, base);\r\n xc = multiply(xc, n, base);\r\n yL = yc.length;\r\n xL = xc.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xc.slice(0, yL);\r\n remL = rem.length;\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; remL < yL; rem[remL++] = 0);\r\n yz = yc.slice();\r\n yz = [0].concat(yz);\r\n yc0 = yc[0];\r\n if (yc[1] >= base / 2) yc0++;\r\n // Not necessary, but to prevent trial digit n > base, when using base 3.\r\n // else if (base == 3 && yc0 == 1) yc0 = 1 + 1e-15;\r\n\r\n do {\r\n n = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yc, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, n.\r\n\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * base + (rem[1] || 0);\r\n\r\n // n is how many times the divisor goes into the current remainder.\r\n n = mathfloor(rem0 / yc0);\r\n\r\n // Algorithm:\r\n // product = divisor multiplied by trial digit (n).\r\n // Compare product and remainder.\r\n // If product is greater than remainder:\r\n // Subtract divisor from product, decrement trial digit.\r\n // Subtract product from remainder.\r\n // If product was less than remainder at the last compare:\r\n // Compare new remainder and divisor.\r\n // If remainder is greater than divisor:\r\n // Subtract divisor from remainder, increment trial digit.\r\n\r\n if (n > 1) {\r\n\r\n // n may be > base only when base is 3.\r\n if (n >= base) n = base - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiply(yc, n, base);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n // If product > remainder then trial digit n too high.\r\n // n is 1 too high about 5% of the time, and is not known to have\r\n // ever been more than 1 too high.\r\n while (compare(prod, rem, prodL, remL) == 1) {\r\n n--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yc, prodL, base);\r\n prodL = prod.length;\r\n cmp = 1;\r\n }\r\n } else {\r\n\r\n // n is 0 or 1, cmp is -1.\r\n // If n is 0, there is no need to compare yc and rem again below,\r\n // so change cmp to 1 to avoid it.\r\n // If n is 1, leave cmp as -1, so yc and rem are compared again.\r\n if (n == 0) {\r\n\r\n // divisor < remainder, so n must be at least 1.\r\n cmp = n = 1;\r\n }\r\n\r\n // product = divisor\r\n prod = yc.slice();\r\n prodL = prod.length;\r\n }\r\n\r\n if (prodL < remL) prod = [0].concat(prod);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL, base);\r\n remL = rem.length;\r\n\r\n // If product was < remainder.\r\n if (cmp == -1) {\r\n\r\n // Compare divisor and new remainder.\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n // Trial digit n too low.\r\n // n is 1 too low about 5% of the time, and very rarely 2 too low.\r\n while (compare(yc, rem, yL, remL) < 1) {\r\n n++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yc, remL, base);\r\n remL = rem.length;\r\n }\r\n }\r\n } else if (cmp === 0) {\r\n n++;\r\n rem = [0];\r\n } // else cmp === 1 and n will be 0\r\n\r\n // Add the next digit, n, to the result array.\r\n qc[i++] = n;\r\n\r\n // Update the remainder.\r\n if (rem[0]) {\r\n rem[remL++] = xc[xi] || 0;\r\n } else {\r\n rem = [xc[xi]];\r\n remL = 1;\r\n }\r\n } while ((xi++ < xL || rem[0] != null) && s--);\r\n\r\n more = rem[0] != null;\r\n\r\n // Leading zero?\r\n if (!qc[0]) qc.splice(0, 1);\r\n }\r\n\r\n if (base == BASE) {\r\n\r\n // To calculate q.e, first get the number of digits of qc[0].\r\n for (i = 1, s = qc[0]; s >= 10; s /= 10, i++);\r\n\r\n round(q, dp + (q.e = i + e * LOG_BASE - 1) + 1, rm, more);\r\n\r\n // Caller is convertBase.\r\n } else {\r\n q.e = e;\r\n q.r = +more;\r\n }\r\n\r\n return q;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a string representing the value of BigNumber n in fixed-point or exponential\r\n * notation rounded to the specified decimal places or significant digits.\r\n *\r\n * n: a BigNumber.\r\n * i: the index of the last digit required (i.e. the digit that may be rounded up).\r\n * rm: the rounding mode.\r\n * id: 1 (toExponential) or 2 (toPrecision).\r\n */\r\n function format(n, i, rm, id) {\r\n var c0, e, ne, len, str;\r\n\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n if (!n.c) return n.toString();\r\n\r\n c0 = n.c[0];\r\n ne = n.e;\r\n\r\n if (i == null) {\r\n str = coeffToString(n.c);\r\n str = id == 1 || id == 2 && (ne <= TO_EXP_NEG || ne >= TO_EXP_POS)\r\n ? toExponential(str, ne)\r\n : toFixedPoint(str, ne, '0');\r\n } else {\r\n n = round(new BigNumber(n), i, rm);\r\n\r\n // n.e may have changed if the value was rounded up.\r\n e = n.e;\r\n\r\n str = coeffToString(n.c);\r\n len = str.length;\r\n\r\n // toPrecision returns exponential notation if the number of significant digits\r\n // specified is less than the number of digits necessary to represent the integer\r\n // part of the value in fixed-point notation.\r\n\r\n // Exponential notation.\r\n if (id == 1 || id == 2 && (i <= e || e <= TO_EXP_NEG)) {\r\n\r\n // Append zeros?\r\n for (; len < i; str += '0', len++);\r\n str = toExponential(str, e);\r\n\r\n // Fixed-point notation.\r\n } else {\r\n i -= ne;\r\n str = toFixedPoint(str, e, '0');\r\n\r\n // Append zeros?\r\n if (e + 1 > len) {\r\n if (--i > 0) for (str += '.'; i--; str += '0');\r\n } else {\r\n i += e - len;\r\n if (i > 0) {\r\n if (e + 1 == len) str += '.';\r\n for (; i--; str += '0');\r\n }\r\n }\r\n }\r\n }\r\n\r\n return n.s < 0 && c0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // Handle BigNumber.max and BigNumber.min.\r\n // If any number is NaN, return NaN.\r\n function maxOrMin(args, n) {\r\n var k, y,\r\n i = 1,\r\n x = new BigNumber(args[0]);\r\n\r\n for (; i < args.length; i++) {\r\n y = new BigNumber(args[i]);\r\n if (!y.s || (k = compare(x, y)) === n || k === 0 && x.s === n) {\r\n x = y;\r\n }\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n /*\r\n * Strip trailing zeros, calculate base 10 exponent and check against MIN_EXP and MAX_EXP.\r\n * Called by minus, plus and times.\r\n */\r\n function normalise(n, c, e) {\r\n var i = 1,\r\n j = c.length;\r\n\r\n // Remove trailing zeros.\r\n for (; !c[--j]; c.pop());\r\n\r\n // Calculate the base 10 exponent. First get the number of digits of c[0].\r\n for (j = c[0]; j >= 10; j /= 10, i++);\r\n\r\n // Overflow?\r\n if ((e = i + e * LOG_BASE - 1) > MAX_EXP) {\r\n\r\n // Infinity.\r\n n.c = n.e = null;\r\n\r\n // Underflow?\r\n } else if (e < MIN_EXP) {\r\n\r\n // Zero.\r\n n.c = [n.e = 0];\r\n } else {\r\n n.e = e;\r\n n.c = c;\r\n }\r\n\r\n return n;\r\n }\r\n\r\n\r\n // Handle values that fail the validity test in BigNumber.\r\n parseNumeric = (function () {\r\n var basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i,\r\n dotAfter = /^([^.]+)\\.$/,\r\n dotBefore = /^\\.([^.]+)$/,\r\n isInfinityOrNaN = /^-?(Infinity|NaN)$/,\r\n whitespaceOrPlus = /^\\s*\\+(?=[\\w.])|^\\s+|\\s+$/g;\r\n\r\n return function (x, str, isNum, b) {\r\n var base,\r\n s = isNum ? str : str.replace(whitespaceOrPlus, '');\r\n\r\n // No exception on ±Infinity or NaN.\r\n if (isInfinityOrNaN.test(s)) {\r\n x.s = isNaN(s) ? null : s < 0 ? -1 : 1;\r\n } else {\r\n if (!isNum) {\r\n\r\n // basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i\r\n s = s.replace(basePrefix, function (m, p1, p2) {\r\n base = (p2 = p2.toLowerCase()) == 'x' ? 16 : p2 == 'b' ? 2 : 8;\r\n return !b || b == base ? p1 : m;\r\n });\r\n\r\n if (b) {\r\n base = b;\r\n\r\n // E.g. '1.' to '1', '.1' to '0.1'\r\n s = s.replace(dotAfter, '$1').replace(dotBefore, '0.$1');\r\n }\r\n\r\n if (str != s) return new BigNumber(s, base);\r\n }\r\n\r\n // '[BigNumber Error] Not a number: {n}'\r\n // '[BigNumber Error] Not a base {b} number: {n}'\r\n if (BigNumber.DEBUG) {\r\n throw Error\r\n (bignumberError + 'Not a' + (b ? ' base ' + b : '') + ' number: ' + str);\r\n }\r\n\r\n // NaN\r\n x.s = null;\r\n }\r\n\r\n x.c = x.e = null;\r\n }\r\n })();\r\n\r\n\r\n /*\r\n * Round x to sd significant digits using rounding mode rm. Check for over/under-flow.\r\n * If r is truthy, it is known that there are more digits after the rounding digit.\r\n */\r\n function round(x, sd, rm, r) {\r\n var d, i, j, k, n, ni, rd,\r\n xc = x.c,\r\n pows10 = POWS_TEN;\r\n\r\n // if x is not Infinity or NaN...\r\n if (xc) {\r\n\r\n // rd is the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // n is a base 1e14 number, the value of the element of array x.c containing rd.\r\n // ni is the index of n within x.c.\r\n // d is the number of digits of n.\r\n // i is the index of rd within n including leading zeros.\r\n // j is the actual index of rd within n (if < 0, rd is a leading zero).\r\n out: {\r\n\r\n // Get the number of digits of the first element of xc.\r\n for (d = 1, k = xc[0]; k >= 10; k /= 10, d++);\r\n i = sd - d;\r\n\r\n // If the rounding digit is in the first element of xc...\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n n = xc[ni = 0];\r\n\r\n // Get the rounding digit at index j of n.\r\n rd = mathfloor(n / pows10[d - j - 1] % 10);\r\n } else {\r\n ni = mathceil((i + 1) / LOG_BASE);\r\n\r\n if (ni >= xc.length) {\r\n\r\n if (r) {\r\n\r\n // Needed by sqrt.\r\n for (; xc.length <= ni; xc.push(0));\r\n n = rd = 0;\r\n d = 1;\r\n i %= LOG_BASE;\r\n j = i - LOG_BASE + 1;\r\n } else {\r\n break out;\r\n }\r\n } else {\r\n n = k = xc[ni];\r\n\r\n // Get the number of digits of n.\r\n for (d = 1; k >= 10; k /= 10, d++);\r\n\r\n // Get the index of rd within n.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within n, adjusted for leading zeros.\r\n // The number of leading zeros of n is given by LOG_BASE - d.\r\n j = i - LOG_BASE + d;\r\n\r\n // Get the rounding digit at index j of n.\r\n rd = j < 0 ? 0 : mathfloor(n / pows10[d - j - 1] % 10);\r\n }\r\n }\r\n\r\n r = r || sd < 0 ||\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n // The expression n % pows10[d - j - 1] returns all digits of n to the right\r\n // of the digit at j, e.g. if n is 908714 and j is 2, the expression gives 714.\r\n xc[ni + 1] != null || (j < 0 ? n : n % pows10[d - j - 1]);\r\n\r\n r = rm < 4\r\n ? (rd || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || r || rm == 6 &&\r\n\r\n // Check whether the digit to the left of the rounding digit is odd.\r\n ((i > 0 ? j > 0 ? n / pows10[d - j] : 0 : xc[ni - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n if (sd < 1 || !xc[0]) {\r\n xc.length = 0;\r\n\r\n if (r) {\r\n\r\n // Convert sd to decimal places.\r\n sd -= x.e + 1;\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n xc[0] = pows10[(LOG_BASE - sd % LOG_BASE) % LOG_BASE];\r\n x.e = -sd || 0;\r\n } else {\r\n\r\n // Zero.\r\n xc[0] = x.e = 0;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n // Remove excess digits.\r\n if (i == 0) {\r\n xc.length = ni;\r\n k = 1;\r\n ni--;\r\n } else {\r\n xc.length = ni + 1;\r\n k = pows10[LOG_BASE - i];\r\n\r\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n // j > 0 means i > number of leading zeros of n.\r\n xc[ni] = j > 0 ? mathfloor(n / pows10[d - j] % pows10[j]) * k : 0;\r\n }\r\n\r\n // Round up?\r\n if (r) {\r\n\r\n for (; ;) {\r\n\r\n // If the digit to be rounded up is in the first element of xc...\r\n if (ni == 0) {\r\n\r\n // i will be the length of xc[0] before k is added.\r\n for (i = 1, j = xc[0]; j >= 10; j /= 10, i++);\r\n j = xc[0] += k;\r\n for (k = 1; j >= 10; j /= 10, k++);\r\n\r\n // if i != k the length has increased.\r\n if (i != k) {\r\n x.e++;\r\n if (xc[0] == BASE) xc[0] = 1;\r\n }\r\n\r\n break;\r\n } else {\r\n xc[ni] += k;\r\n if (xc[ni] != BASE) break;\r\n xc[ni--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xc.length; xc[--i] === 0; xc.pop());\r\n }\r\n\r\n // Overflow? Infinity.\r\n if (x.e > MAX_EXP) {\r\n x.c = x.e = null;\r\n\r\n // Underflow? Zero.\r\n } else if (x.e < MIN_EXP) {\r\n x.c = [x.e = 0];\r\n }\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n function valueOf(n) {\r\n var str,\r\n e = n.e;\r\n\r\n if (e === null) return n.toString();\r\n\r\n str = coeffToString(n.c);\r\n\r\n str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n ? toExponential(str, e)\r\n : toFixedPoint(str, e, '0');\r\n\r\n return n.s < 0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // PROTOTYPE/INSTANCE METHODS\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the absolute value of this BigNumber.\r\n */\r\n P.absoluteValue = P.abs = function () {\r\n var x = new BigNumber(this);\r\n if (x.s < 0) x.s = 1;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return\r\n * 1 if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n * -1 if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n * 0 if they have the same value,\r\n * or null if the value of either is NaN.\r\n */\r\n P.comparedTo = function (y, b) {\r\n return compare(this, new BigNumber(y, b));\r\n };\r\n\r\n\r\n /*\r\n * If dp is undefined or null or true or false, return the number of decimal places of the\r\n * value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n *\r\n * Otherwise, if dp is a number, return a new BigNumber whose value is the value of this\r\n * BigNumber rounded to a maximum of dp decimal places using rounding mode rm, or\r\n * ROUNDING_MODE if rm is omitted.\r\n *\r\n * [dp] {number} Decimal places: integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.decimalPlaces = P.dp = function (dp, rm) {\r\n var c, n, v,\r\n x = this;\r\n\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n return round(new BigNumber(x), dp + x.e + 1, rm);\r\n }\r\n\r\n if (!(c = x.c)) return null;\r\n n = ((v = c.length - 1) - bitFloor(this.e / LOG_BASE)) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last number.\r\n if (v = c[v]) for (; v % 10 == 0; v /= 10, n--);\r\n if (n < 0) n = 0;\r\n\r\n return n;\r\n };\r\n\r\n\r\n /*\r\n * n / 0 = I\r\n * n / N = N\r\n * n / I = 0\r\n * 0 / n = 0\r\n * 0 / 0 = N\r\n * 0 / N = N\r\n * 0 / I = 0\r\n * N / n = N\r\n * N / 0 = N\r\n * N / N = N\r\n * N / I = N\r\n * I / n = I\r\n * I / 0 = I\r\n * I / N = N\r\n * I / I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber divided by the value of\r\n * BigNumber(y, b), rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n */\r\n P.dividedBy = P.div = function (y, b) {\r\n return div(this, new BigNumber(y, b), DECIMAL_PLACES, ROUNDING_MODE);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the integer part of dividing the value of this\r\n * BigNumber by the value of BigNumber(y, b).\r\n */\r\n P.dividedToIntegerBy = P.idiv = function (y, b) {\r\n return div(this, new BigNumber(y, b), 0, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a BigNumber whose value is the value of this BigNumber exponentiated by n.\r\n *\r\n * If m is present, return the result modulo m.\r\n * If n is negative round according to DECIMAL_PLACES and ROUNDING_MODE.\r\n * If POW_PRECISION is non-zero and m is not present, round to POW_PRECISION using ROUNDING_MODE.\r\n *\r\n * The modular power operation works efficiently when x, n, and m are integers, otherwise it\r\n * is equivalent to calculating x.exponentiatedBy(n).modulo(m) with a POW_PRECISION of 0.\r\n *\r\n * n {number|string|BigNumber} The exponent. An integer.\r\n * [m] {number|string|BigNumber} The modulus.\r\n *\r\n * '[BigNumber Error] Exponent not an integer: {n}'\r\n */\r\n P.exponentiatedBy = P.pow = function (n, m) {\r\n var half, isModExp, i, k, more, nIsBig, nIsNeg, nIsOdd, y,\r\n x = this;\r\n\r\n n = new BigNumber(n);\r\n\r\n // Allow NaN and ±Infinity, but not other non-integers.\r\n if (n.c && !n.isInteger()) {\r\n throw Error\r\n (bignumberError + 'Exponent not an integer: ' + valueOf(n));\r\n }\r\n\r\n if (m != null) m = new BigNumber(m);\r\n\r\n // Exponent of MAX_SAFE_INTEGER is 15.\r\n nIsBig = n.e > 14;\r\n\r\n // If x is NaN, ±Infinity, ±0 or ±1, or n is ±Infinity, NaN or ±0.\r\n if (!x.c || !x.c[0] || x.c[0] == 1 && !x.e && x.c.length == 1 || !n.c || !n.c[0]) {\r\n\r\n // The sign of the result of pow when x is negative depends on the evenness of n.\r\n // If +n overflows to ±Infinity, the evenness of n would be not be known.\r\n y = new BigNumber(Math.pow(+valueOf(x), nIsBig ? n.s * (2 - isOdd(n)) : +valueOf(n)));\r\n return m ? y.mod(m) : y;\r\n }\r\n\r\n nIsNeg = n.s < 0;\r\n\r\n if (m) {\r\n\r\n // x % m returns NaN if abs(m) is zero, or m is NaN.\r\n if (m.c ? !m.c[0] : !m.s) return new BigNumber(NaN);\r\n\r\n isModExp = !nIsNeg && x.isInteger() && m.isInteger();\r\n\r\n if (isModExp) x = x.mod(m);\r\n\r\n // Overflow to ±Infinity: >=2**1e10 or >=1.0000024**1e15.\r\n // Underflow to ±0: <=0.79**1e10 or <=0.9999975**1e15.\r\n } else if (n.e > 9 && (x.e > 0 || x.e < -1 || (x.e == 0\r\n // [1, 240000000]\r\n ? x.c[0] > 1 || nIsBig && x.c[1] >= 24e7\r\n // [80000000000000] [99999750000000]\r\n : x.c[0] < 8e13 || nIsBig && x.c[0] <= 9999975e7))) {\r\n\r\n // If x is negative and n is odd, k = -0, else k = 0.\r\n k = x.s < 0 && isOdd(n) ? -0 : 0;\r\n\r\n // If x >= 1, k = ±Infinity.\r\n if (x.e > -1) k = 1 / k;\r\n\r\n // If n is negative return ±0, else return ±Infinity.\r\n return new BigNumber(nIsNeg ? 1 / k : k);\r\n\r\n } else if (POW_PRECISION) {\r\n\r\n // Truncating each coefficient array to a length of k after each multiplication\r\n // equates to truncating significant digits to POW_PRECISION + [28, 41],\r\n // i.e. there will be a minimum of 28 guard digits retained.\r\n k = mathceil(POW_PRECISION / LOG_BASE + 2);\r\n }\r\n\r\n if (nIsBig) {\r\n half = new BigNumber(0.5);\r\n if (nIsNeg) n.s = 1;\r\n nIsOdd = isOdd(n);\r\n } else {\r\n i = Math.abs(+valueOf(n));\r\n nIsOdd = i % 2;\r\n }\r\n\r\n y = new BigNumber(ONE);\r\n\r\n // Performs 54 loop iterations for n of 9007199254740991.\r\n for (; ;) {\r\n\r\n if (nIsOdd) {\r\n y = y.times(x);\r\n if (!y.c) break;\r\n\r\n if (k) {\r\n if (y.c.length > k) y.c.length = k;\r\n } else if (isModExp) {\r\n y = y.mod(m); //y = y.minus(div(y, m, 0, MODULO_MODE).times(m));\r\n }\r\n }\r\n\r\n if (i) {\r\n i = mathfloor(i / 2);\r\n if (i === 0) break;\r\n nIsOdd = i % 2;\r\n } else {\r\n n = n.times(half);\r\n round(n, n.e + 1, 1);\r\n\r\n if (n.e > 14) {\r\n nIsOdd = isOdd(n);\r\n } else {\r\n i = +valueOf(n);\r\n if (i === 0) break;\r\n nIsOdd = i % 2;\r\n }\r\n }\r\n\r\n x = x.times(x);\r\n\r\n if (k) {\r\n if (x.c && x.c.length > k) x.c.length = k;\r\n } else if (isModExp) {\r\n x = x.mod(m); //x = x.minus(div(x, m, 0, MODULO_MODE).times(m));\r\n }\r\n }\r\n\r\n if (isModExp) return y;\r\n if (nIsNeg) y = ONE.div(y);\r\n\r\n return m ? y.mod(m) : k ? round(y, POW_PRECISION, ROUNDING_MODE, more) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber rounded to an integer\r\n * using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n *\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {rm}'\r\n */\r\n P.integerValue = function (rm) {\r\n var n = new BigNumber(this);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n return round(n, n.e + 1, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is equal to the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isEqualTo = P.eq = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is a finite number, otherwise return false.\r\n */\r\n P.isFinite = function () {\r\n return !!this.c;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isGreaterThan = P.gt = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is greater than or equal to the value of\r\n * BigNumber(y, b), otherwise return false.\r\n */\r\n P.isGreaterThanOrEqualTo = P.gte = function (y, b) {\r\n return (b = compare(this, new BigNumber(y, b))) === 1 || b === 0;\r\n\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is an integer, otherwise return false.\r\n */\r\n P.isInteger = function () {\r\n return !!this.c && bitFloor(this.e / LOG_BASE) > this.c.length - 2;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isLessThan = P.lt = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is less than or equal to the value of\r\n * BigNumber(y, b), otherwise return false.\r\n */\r\n P.isLessThanOrEqualTo = P.lte = function (y, b) {\r\n return (b = compare(this, new BigNumber(y, b))) === -1 || b === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is NaN, otherwise return false.\r\n */\r\n P.isNaN = function () {\r\n return !this.s;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is negative, otherwise return false.\r\n */\r\n P.isNegative = function () {\r\n return this.s < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is positive, otherwise return false.\r\n */\r\n P.isPositive = function () {\r\n return this.s > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is 0 or -0, otherwise return false.\r\n */\r\n P.isZero = function () {\r\n return !!this.c && this.c[0] == 0;\r\n };\r\n\r\n\r\n /*\r\n * n - 0 = n\r\n * n - N = N\r\n * n - I = -I\r\n * 0 - n = -n\r\n * 0 - 0 = 0\r\n * 0 - N = N\r\n * 0 - I = -I\r\n * N - n = N\r\n * N - 0 = N\r\n * N - N = N\r\n * N - I = N\r\n * I - n = I\r\n * I - 0 = I\r\n * I - N = N\r\n * I - I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber minus the value of\r\n * BigNumber(y, b).\r\n */\r\n P.minus = function (y, b) {\r\n var i, j, t, xLTy,\r\n x = this,\r\n a = x.s;\r\n\r\n y = new BigNumber(y, b);\r\n b = y.s;\r\n\r\n // Either NaN?\r\n if (!a || !b) return new BigNumber(NaN);\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.plus(y);\r\n }\r\n\r\n var xe = x.e / LOG_BASE,\r\n ye = y.e / LOG_BASE,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n if (!xe || !ye) {\r\n\r\n // Either Infinity?\r\n if (!xc || !yc) return xc ? (y.s = -b, y) : new BigNumber(yc ? x : NaN);\r\n\r\n // Either zero?\r\n if (!xc[0] || !yc[0]) {\r\n\r\n // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n return yc[0] ? (y.s = -b, y) : new BigNumber(xc[0] ? x :\r\n\r\n // IEEE 754 (2008) 6.3: n - n = -0 when rounding to -Infinity\r\n ROUNDING_MODE == 3 ? -0 : 0);\r\n }\r\n }\r\n\r\n xe = bitFloor(xe);\r\n ye = bitFloor(ye);\r\n xc = xc.slice();\r\n\r\n // Determine which is the bigger number.\r\n if (a = xe - ye) {\r\n\r\n if (xLTy = a < 0) {\r\n a = -a;\r\n t = xc;\r\n } else {\r\n ye = xe;\r\n t = yc;\r\n }\r\n\r\n t.reverse();\r\n\r\n // Prepend zeros to equalise exponents.\r\n for (b = a; b--; t.push(0));\r\n t.reverse();\r\n } else {\r\n\r\n // Exponents equal. Check digit by digit.\r\n j = (xLTy = (a = xc.length) < (b = yc.length)) ? a : b;\r\n\r\n for (a = b = 0; b < j; b++) {\r\n\r\n if (xc[b] != yc[b]) {\r\n xLTy = xc[b] < yc[b];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // x < y? Point xc to the array of the bigger number.\r\n if (xLTy) {\r\n t = xc;\r\n xc = yc;\r\n yc = t;\r\n y.s = -y.s;\r\n }\r\n\r\n b = (j = yc.length) - (i = xc.length);\r\n\r\n // Append zeros to xc if shorter.\r\n // No need to add zeros to yc if shorter as subtract only needs to start at yc.length.\r\n if (b > 0) for (; b--; xc[i++] = 0);\r\n b = BASE - 1;\r\n\r\n // Subtract yc from xc.\r\n for (; j > a;) {\r\n\r\n if (xc[--j] < yc[j]) {\r\n for (i = j; i && !xc[--i]; xc[i] = b);\r\n --xc[i];\r\n xc[j] += BASE;\r\n }\r\n\r\n xc[j] -= yc[j];\r\n }\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xc[0] == 0; xc.splice(0, 1), --ye);\r\n\r\n // Zero?\r\n if (!xc[0]) {\r\n\r\n // Following IEEE 754 (2008) 6.3,\r\n // n - n = +0 but n - n = -0 when rounding towards -Infinity.\r\n y.s = ROUNDING_MODE == 3 ? -1 : 1;\r\n y.c = [y.e = 0];\r\n return y;\r\n }\r\n\r\n // No need to check for Infinity as +x - +y != Infinity && -x - -y != Infinity\r\n // for finite x and y.\r\n return normalise(y, xc, ye);\r\n };\r\n\r\n\r\n /*\r\n * n % 0 = N\r\n * n % N = N\r\n * n % I = n\r\n * 0 % n = 0\r\n * -0 % n = -0\r\n * 0 % 0 = N\r\n * 0 % N = N\r\n * 0 % I = 0\r\n * N % n = N\r\n * N % 0 = N\r\n * N % N = N\r\n * N % I = N\r\n * I % n = N\r\n * I % 0 = N\r\n * I % N = N\r\n * I % I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber modulo the value of\r\n * BigNumber(y, b). The result depends on the value of MODULO_MODE.\r\n */\r\n P.modulo = P.mod = function (y, b) {\r\n var q, s,\r\n x = this;\r\n\r\n y = new BigNumber(y, b);\r\n\r\n // Return NaN if x is Infinity or NaN, or y is NaN or zero.\r\n if (!x.c || !y.s || y.c && !y.c[0]) {\r\n return new BigNumber(NaN);\r\n\r\n // Return x if y is Infinity or x is zero.\r\n } else if (!y.c || x.c && !x.c[0]) {\r\n return new BigNumber(x);\r\n }\r\n\r\n if (MODULO_MODE == 9) {\r\n\r\n // Euclidian division: q = sign(y) * floor(x / abs(y))\r\n // r = x - qy where 0 <= r < abs(y)\r\n s = y.s;\r\n y.s = 1;\r\n q = div(x, y, 0, 3);\r\n y.s = s;\r\n q.s *= s;\r\n } else {\r\n q = div(x, y, 0, MODULO_MODE);\r\n }\r\n\r\n y = x.minus(q.times(y));\r\n\r\n // To match JavaScript %, ensure sign of zero is sign of dividend.\r\n if (!y.c[0] && MODULO_MODE == 1) y.s = x.s;\r\n\r\n return y;\r\n };\r\n\r\n\r\n /*\r\n * n * 0 = 0\r\n * n * N = N\r\n * n * I = I\r\n * 0 * n = 0\r\n * 0 * 0 = 0\r\n * 0 * N = N\r\n * 0 * I = N\r\n * N * n = N\r\n * N * 0 = N\r\n * N * N = N\r\n * N * I = N\r\n * I * n = I\r\n * I * 0 = N\r\n * I * N = N\r\n * I * I = I\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber multiplied by the value\r\n * of BigNumber(y, b).\r\n */\r\n P.multipliedBy = P.times = function (y, b) {\r\n var c, e, i, j, k, m, xcL, xlo, xhi, ycL, ylo, yhi, zc,\r\n base, sqrtBase,\r\n x = this,\r\n xc = x.c,\r\n yc = (y = new BigNumber(y, b)).c;\r\n\r\n // Either NaN, ±Infinity or ±0?\r\n if (!xc || !yc || !xc[0] || !yc[0]) {\r\n\r\n // Return NaN if either is NaN, or one is 0 and the other is Infinity.\r\n if (!x.s || !y.s || xc && !xc[0] && !yc || yc && !yc[0] && !xc) {\r\n y.c = y.e = y.s = null;\r\n } else {\r\n y.s *= x.s;\r\n\r\n // Return ±Infinity if either is ±Infinity.\r\n if (!xc || !yc) {\r\n y.c = y.e = null;\r\n\r\n // Return ±0 if either is ±0.\r\n } else {\r\n y.c = [0];\r\n y.e = 0;\r\n }\r\n }\r\n\r\n return y;\r\n }\r\n\r\n e = bitFloor(x.e / LOG_BASE) + bitFloor(y.e / LOG_BASE);\r\n y.s *= x.s;\r\n xcL = xc.length;\r\n ycL = yc.length;\r\n\r\n // Ensure xc points to longer array and xcL to its length.\r\n if (xcL < ycL) {\r\n zc = xc;\r\n xc = yc;\r\n yc = zc;\r\n i = xcL;\r\n xcL = ycL;\r\n ycL = i;\r\n }\r\n\r\n // Initialise the result array with zeros.\r\n for (i = xcL + ycL, zc = []; i--; zc.push(0));\r\n\r\n base = BASE;\r\n sqrtBase = SQRT_BASE;\r\n\r\n for (i = ycL; --i >= 0;) {\r\n c = 0;\r\n ylo = yc[i] % sqrtBase;\r\n yhi = yc[i] / sqrtBase | 0;\r\n\r\n for (k = xcL, j = i + k; j > i;) {\r\n xlo = xc[--k] % sqrtBase;\r\n xhi = xc[k] / sqrtBase | 0;\r\n m = yhi * xlo + xhi * ylo;\r\n xlo = ylo * xlo + ((m % sqrtBase) * sqrtBase) + zc[j] + c;\r\n c = (xlo / base | 0) + (m / sqrtBase | 0) + yhi * xhi;\r\n zc[j--] = xlo % base;\r\n }\r\n\r\n zc[j] = c;\r\n }\r\n\r\n if (c) {\r\n ++e;\r\n } else {\r\n zc.splice(0, 1);\r\n }\r\n\r\n return normalise(y, zc, e);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber negated,\r\n * i.e. multiplied by -1.\r\n */\r\n P.negated = function () {\r\n var x = new BigNumber(this);\r\n x.s = -x.s || null;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * n + 0 = n\r\n * n + N = N\r\n * n + I = I\r\n * 0 + n = n\r\n * 0 + 0 = 0\r\n * 0 + N = N\r\n * 0 + I = I\r\n * N + n = N\r\n * N + 0 = N\r\n * N + N = N\r\n * N + I = N\r\n * I + n = I\r\n * I + 0 = I\r\n * I + N = N\r\n * I + I = I\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber plus the value of\r\n * BigNumber(y, b).\r\n */\r\n P.plus = function (y, b) {\r\n var t,\r\n x = this,\r\n a = x.s;\r\n\r\n y = new BigNumber(y, b);\r\n b = y.s;\r\n\r\n // Either NaN?\r\n if (!a || !b) return new BigNumber(NaN);\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.minus(y);\r\n }\r\n\r\n var xe = x.e / LOG_BASE,\r\n ye = y.e / LOG_BASE,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n if (!xe || !ye) {\r\n\r\n // Return ±Infinity if either ±Infinity.\r\n if (!xc || !yc) return new BigNumber(a / 0);\r\n\r\n // Either zero?\r\n // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n if (!xc[0] || !yc[0]) return yc[0] ? y : new BigNumber(xc[0] ? x : a * 0);\r\n }\r\n\r\n xe = bitFloor(xe);\r\n ye = bitFloor(ye);\r\n xc = xc.slice();\r\n\r\n // Prepend zeros to equalise exponents. Faster to use reverse then do unshifts.\r\n if (a = xe - ye) {\r\n if (a > 0) {\r\n ye = xe;\r\n t = yc;\r\n } else {\r\n a = -a;\r\n t = xc;\r\n }\r\n\r\n t.reverse();\r\n for (; a--; t.push(0));\r\n t.reverse();\r\n }\r\n\r\n a = xc.length;\r\n b = yc.length;\r\n\r\n // Point xc to the longer array, and b to the shorter length.\r\n if (a - b < 0) {\r\n t = yc;\r\n yc = xc;\r\n xc = t;\r\n b = a;\r\n }\r\n\r\n // Only start adding at yc.length - 1 as the further digits of xc can be ignored.\r\n for (a = 0; b;) {\r\n a = (xc[--b] = xc[b] + yc[b] + a) / BASE | 0;\r\n xc[b] = BASE === xc[b] ? 0 : xc[b] % BASE;\r\n }\r\n\r\n if (a) {\r\n xc = [a].concat(xc);\r\n ++ye;\r\n }\r\n\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n // ye = MAX_EXP + 1 possible\r\n return normalise(y, xc, ye);\r\n };\r\n\r\n\r\n /*\r\n * If sd is undefined or null or true or false, return the number of significant digits of\r\n * the value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n * If sd is true include integer-part trailing zeros in the count.\r\n *\r\n * Otherwise, if sd is a number, return a new BigNumber whose value is the value of this\r\n * BigNumber rounded to a maximum of sd significant digits using rounding mode rm, or\r\n * ROUNDING_MODE if rm is omitted.\r\n *\r\n * sd {number|boolean} number: significant digits: integer, 1 to MAX inclusive.\r\n * boolean: whether to count integer-part trailing zeros: true or false.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n */\r\n P.precision = P.sd = function (sd, rm) {\r\n var c, n, v,\r\n x = this;\r\n\r\n if (sd != null && sd !== !!sd) {\r\n intCheck(sd, 1, MAX);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n return round(new BigNumber(x), sd, rm);\r\n }\r\n\r\n if (!(c = x.c)) return null;\r\n v = c.length - 1;\r\n n = v * LOG_BASE + 1;\r\n\r\n if (v = c[v]) {\r\n\r\n // Subtract the number of trailing zeros of the last element.\r\n for (; v % 10 == 0; v /= 10, n--);\r\n\r\n // Add the number of digits of the first element.\r\n for (v = c[0]; v >= 10; v /= 10, n++);\r\n }\r\n\r\n if (sd && x.e + 1 > n) n = x.e + 1;\r\n\r\n return n;\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber shifted by k places\r\n * (powers of 10). Shift to the right if n > 0, and to the left if n < 0.\r\n *\r\n * k {number} Integer, -MAX_SAFE_INTEGER to MAX_SAFE_INTEGER inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {k}'\r\n */\r\n P.shiftedBy = function (k) {\r\n intCheck(k, -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER);\r\n return this.times('1e' + k);\r\n };\r\n\r\n\r\n /*\r\n * sqrt(-n) = N\r\n * sqrt(N) = N\r\n * sqrt(-I) = N\r\n * sqrt(I) = I\r\n * sqrt(0) = 0\r\n * sqrt(-0) = -0\r\n *\r\n * Return a new BigNumber whose value is the square root of the value of this BigNumber,\r\n * rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n */\r\n P.squareRoot = P.sqrt = function () {\r\n var m, n, r, rep, t,\r\n x = this,\r\n c = x.c,\r\n s = x.s,\r\n e = x.e,\r\n dp = DECIMAL_PLACES + 4,\r\n half = new BigNumber('0.5');\r\n\r\n // Negative/NaN/Infinity/zero?\r\n if (s !== 1 || !c || !c[0]) {\r\n return new BigNumber(!s || s < 0 && (!c || c[0]) ? NaN : c ? x : 1 / 0);\r\n }\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+valueOf(x));\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n if (s == 0 || s == 1 / 0) {\r\n n = coeffToString(c);\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(+n);\r\n e = bitFloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new BigNumber(n);\r\n } else {\r\n r = new BigNumber(s + '');\r\n }\r\n\r\n // Check for zero.\r\n // r could be zero if MIN_EXP is changed after the this value was created.\r\n // This would cause a division by zero (x/t) and hence Infinity below, which would cause\r\n // coeffToString to throw.\r\n if (r.c[0]) {\r\n e = r.e;\r\n s = e + dp;\r\n if (s < 3) s = 0;\r\n\r\n // Newton-Raphson iteration.\r\n for (; ;) {\r\n t = r;\r\n r = half.times(t.plus(div(x, t, dp, 1)));\r\n\r\n if (coeffToString(t.c).slice(0, s) === (n = coeffToString(r.c)).slice(0, s)) {\r\n\r\n // The exponent of r may here be one less than the final result exponent,\r\n // e.g 0.0009999 (e-4) --> 0.001 (e-3), so adjust s so the rounding digits\r\n // are indexed correctly.\r\n if (r.e < e) --s;\r\n n = n.slice(s - 3, s + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits\r\n // are 9999 or 4999 (i.e. approaching a rounding boundary) continue the\r\n // iteration.\r\n if (n == '9999' || !rep && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the\r\n // exact result as the nines may infinitely repeat.\r\n if (!rep) {\r\n round(t, t.e + DECIMAL_PLACES + 2, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n }\r\n\r\n dp += 4;\r\n s += 4;\r\n rep = 1;\r\n } else {\r\n\r\n // If rounding digits are null, 0{0,4} or 50{0,3}, check for exact\r\n // result. If not, then there are further digits and m will be truthy.\r\n if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\r\n\r\n // Truncate to the first rounding digit.\r\n round(r, r.e + DECIMAL_PLACES + 2, 1);\r\n m = !r.times(r).eq(x);\r\n }\r\n\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return round(r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in exponential notation and\r\n * rounded using ROUNDING_MODE to dp fixed decimal places.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.toExponential = function (dp, rm) {\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n dp++;\r\n }\r\n return format(this, dp, rm, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in fixed-point notation rounding\r\n * to dp fixed decimal places using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n *\r\n * Note: as with JavaScript's number type, (-0).toFixed(0) is '0',\r\n * but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.toFixed = function (dp, rm) {\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n dp = dp + this.e + 1;\r\n }\r\n return format(this, dp, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in fixed-point notation rounded\r\n * using rm or ROUNDING_MODE to dp decimal places, and formatted according to the properties\r\n * of the format or FORMAT object (see BigNumber.set).\r\n *\r\n * The formatting object may contain some or all of the properties shown below.\r\n *\r\n * FORMAT = {\r\n * prefix: '',\r\n * groupSize: 3,\r\n * secondaryGroupSize: 0,\r\n * groupSeparator: ',',\r\n * decimalSeparator: '.',\r\n * fractionGroupSize: 0,\r\n * fractionGroupSeparator: '\\xA0', // non-breaking space\r\n * suffix: ''\r\n * };\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n * [format] {object} Formatting options. See FORMAT pbject above.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n * '[BigNumber Error] Argument not an object: {format}'\r\n */\r\n P.toFormat = function (dp, rm, format) {\r\n var str,\r\n x = this;\r\n\r\n if (format == null) {\r\n if (dp != null && rm && typeof rm == 'object') {\r\n format = rm;\r\n rm = null;\r\n } else if (dp && typeof dp == 'object') {\r\n format = dp;\r\n dp = rm = null;\r\n } else {\r\n format = FORMAT;\r\n }\r\n } else if (typeof format != 'object') {\r\n throw Error\r\n (bignumberError + 'Argument not an object: ' + format);\r\n }\r\n\r\n str = x.toFixed(dp, rm);\r\n\r\n if (x.c) {\r\n var i,\r\n arr = str.split('.'),\r\n g1 = +format.groupSize,\r\n g2 = +format.secondaryGroupSize,\r\n groupSeparator = format.groupSeparator || '',\r\n intPart = arr[0],\r\n fractionPart = arr[1],\r\n isNeg = x.s < 0,\r\n intDigits = isNeg ? intPart.slice(1) : intPart,\r\n len = intDigits.length;\r\n\r\n if (g2) {\r\n i = g1;\r\n g1 = g2;\r\n g2 = i;\r\n len -= i;\r\n }\r\n\r\n if (g1 > 0 && len > 0) {\r\n i = len % g1 || g1;\r\n intPart = intDigits.substr(0, i);\r\n for (; i < len; i += g1) intPart += groupSeparator + intDigits.substr(i, g1);\r\n if (g2 > 0) intPart += groupSeparator + intDigits.slice(i);\r\n if (isNeg) intPart = '-' + intPart;\r\n }\r\n\r\n str = fractionPart\r\n ? intPart + (format.decimalSeparator || '') + ((g2 = +format.fractionGroupSize)\r\n ? fractionPart.replace(new RegExp('\\\\d{' + g2 + '}\\\\B', 'g'),\r\n '$&' + (format.fractionGroupSeparator || ''))\r\n : fractionPart)\r\n : intPart;\r\n }\r\n\r\n return (format.prefix || '') + str + (format.suffix || '');\r\n };\r\n\r\n\r\n /*\r\n * Return an array of two BigNumbers representing the value of this BigNumber as a simple\r\n * fraction with an integer numerator and an integer denominator.\r\n * The denominator will be a positive non-zero value less than or equal to the specified\r\n * maximum denominator. If a maximum denominator is not specified, the denominator will be\r\n * the lowest value necessary to represent the number exactly.\r\n *\r\n * [md] {number|string|BigNumber} Integer >= 1, or Infinity. The maximum denominator.\r\n *\r\n * '[BigNumber Error] Argument {not an integer|out of range} : {md}'\r\n */\r\n P.toFraction = function (md) {\r\n var d, d0, d1, d2, e, exp, n, n0, n1, q, r, s,\r\n x = this,\r\n xc = x.c;\r\n\r\n if (md != null) {\r\n n = new BigNumber(md);\r\n\r\n // Throw if md is less than one or is not an integer, unless it is Infinity.\r\n if (!n.isInteger() && (n.c || n.s !== 1) || n.lt(ONE)) {\r\n throw Error\r\n (bignumberError + 'Argument ' +\r\n (n.isInteger() ? 'out of range: ' : 'not an integer: ') + valueOf(n));\r\n }\r\n }\r\n\r\n if (!xc) return new BigNumber(x);\r\n\r\n d = new BigNumber(ONE);\r\n n1 = d0 = new BigNumber(ONE);\r\n d1 = n0 = new BigNumber(ONE);\r\n s = coeffToString(xc);\r\n\r\n // Determine initial denominator.\r\n // d is a power of 10 and the minimum max denominator that specifies the value exactly.\r\n e = d.e = s.length - x.e - 1;\r\n d.c[0] = POWS_TEN[(exp = e % LOG_BASE) < 0 ? LOG_BASE + exp : exp];\r\n md = !md || n.comparedTo(d) > 0 ? (e > 0 ? d : n1) : n;\r\n\r\n exp = MAX_EXP;\r\n MAX_EXP = 1 / 0;\r\n n = new BigNumber(s);\r\n\r\n // n0 = d1 = 0\r\n n0.c[0] = 0;\r\n\r\n for (; ;) {\r\n q = div(n, d, 0, 1);\r\n d2 = d0.plus(q.times(d1));\r\n if (d2.comparedTo(md) == 1) break;\r\n d0 = d1;\r\n d1 = d2;\r\n n1 = n0.plus(q.times(d2 = n1));\r\n n0 = d2;\r\n d = n.minus(q.times(d2 = d));\r\n n = d2;\r\n }\r\n\r\n d2 = div(md.minus(d0), d1, 0, 1);\r\n n0 = n0.plus(d2.times(n1));\r\n d0 = d0.plus(d2.times(d1));\r\n n0.s = n1.s = x.s;\r\n e = e * 2;\r\n\r\n // Determine which fraction is closer to x, n0/d0 or n1/d1\r\n r = div(n1, d1, e, ROUNDING_MODE).minus(x).abs().comparedTo(\r\n div(n0, d0, e, ROUNDING_MODE).minus(x).abs()) < 1 ? [n1, d1] : [n0, d0];\r\n\r\n MAX_EXP = exp;\r\n\r\n return r;\r\n };\r\n\r\n\r\n /*\r\n * Return the value of this BigNumber converted to a number primitive.\r\n */\r\n P.toNumber = function () {\r\n return +valueOf(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber rounded to sd significant digits\r\n * using rounding mode rm or ROUNDING_MODE. If sd is less than the number of digits\r\n * necessary to represent the integer part of the value in fixed-point notation, then use\r\n * exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n */\r\n P.toPrecision = function (sd, rm) {\r\n if (sd != null) intCheck(sd, 1, MAX);\r\n return format(this, sd, rm, 2);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in base b, or base 10 if b is\r\n * omitted. If a base is specified, including base 10, round according to DECIMAL_PLACES and\r\n * ROUNDING_MODE. If a base is not specified, and this BigNumber has a positive exponent\r\n * that is equal to or greater than TO_EXP_POS, or a negative exponent equal to or less than\r\n * TO_EXP_NEG, return exponential notation.\r\n *\r\n * [b] {number} Integer, 2 to ALPHABET.length inclusive.\r\n *\r\n * '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n */\r\n P.toString = function (b) {\r\n var str,\r\n n = this,\r\n s = n.s,\r\n e = n.e;\r\n\r\n // Infinity or NaN?\r\n if (e === null) {\r\n if (s) {\r\n str = 'Infinity';\r\n if (s < 0) str = '-' + str;\r\n } else {\r\n str = 'NaN';\r\n }\r\n } else {\r\n if (b == null) {\r\n str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n ? toExponential(coeffToString(n.c), e)\r\n : toFixedPoint(coeffToString(n.c), e, '0');\r\n } else if (b === 10 && alphabetHasNormalDecimalDigits) {\r\n n = round(new BigNumber(n), DECIMAL_PLACES + e + 1, ROUNDING_MODE);\r\n str = toFixedPoint(coeffToString(n.c), n.e, '0');\r\n } else {\r\n intCheck(b, 2, ALPHABET.length, 'Base');\r\n str = convertBase(toFixedPoint(coeffToString(n.c), e, '0'), 10, b, s, true);\r\n }\r\n\r\n if (s < 0 && n.c[0]) str = '-' + str;\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return as toString, but do not accept a base argument, and include the minus sign for\r\n * negative zero.\r\n */\r\n P.valueOf = P.toJSON = function () {\r\n return valueOf(this);\r\n };\r\n\r\n\r\n P._isBigNumber = true;\r\n\r\n P[Symbol.toStringTag] = 'BigNumber';\r\n\r\n // Node.js v10.12.0+\r\n P[Symbol.for('nodejs.util.inspect.custom')] = P.valueOf;\r\n\r\n if (configObject != null) BigNumber.set(configObject);\r\n\r\n return BigNumber;\r\n}\r\n\r\n\r\n// PRIVATE HELPER FUNCTIONS\r\n\r\n// These functions don't need access to variables,\r\n// e.g. DECIMAL_PLACES, in the scope of the `clone` function above.\r\n\r\n\r\nfunction bitFloor(n) {\r\n var i = n | 0;\r\n return n > 0 || n === i ? i : i - 1;\r\n}\r\n\r\n\r\n// Return a coefficient array as a string of base 10 digits.\r\nfunction coeffToString(a) {\r\n var s, z,\r\n i = 1,\r\n j = a.length,\r\n r = a[0] + '';\r\n\r\n for (; i < j;) {\r\n s = a[i++] + '';\r\n z = LOG_BASE - s.length;\r\n for (; z--; s = '0' + s);\r\n r += s;\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (j = r.length; r.charCodeAt(--j) === 48;);\r\n\r\n return r.slice(0, j + 1 || 1);\r\n}\r\n\r\n\r\n// Compare the value of BigNumbers x and y.\r\nfunction compare(x, y) {\r\n var a, b,\r\n xc = x.c,\r\n yc = y.c,\r\n i = x.s,\r\n j = y.s,\r\n k = x.e,\r\n l = y.e;\r\n\r\n // Either NaN?\r\n if (!i || !j) return null;\r\n\r\n a = xc && !xc[0];\r\n b = yc && !yc[0];\r\n\r\n // Either zero?\r\n if (a || b) return a ? b ? 0 : -j : i;\r\n\r\n // Signs differ?\r\n if (i != j) return i;\r\n\r\n a = i < 0;\r\n b = k == l;\r\n\r\n // Either Infinity?\r\n if (!xc || !yc) return b ? 0 : !xc ^ a ? 1 : -1;\r\n\r\n // Compare exponents.\r\n if (!b) return k > l ^ a ? 1 : -1;\r\n\r\n j = (k = xc.length) < (l = yc.length) ? k : l;\r\n\r\n // Compare digit by digit.\r\n for (i = 0; i < j; i++) if (xc[i] != yc[i]) return xc[i] > yc[i] ^ a ? 1 : -1;\r\n\r\n // Compare lengths.\r\n return k == l ? 0 : k > l ^ a ? 1 : -1;\r\n}\r\n\r\n\r\n/*\r\n * Check that n is a primitive number, an integer, and in range, otherwise throw.\r\n */\r\nfunction intCheck(n, min, max, name) {\r\n if (n < min || n > max || n !== mathfloor(n)) {\r\n throw Error\r\n (bignumberError + (name || 'Argument') + (typeof n == 'number'\r\n ? n < min || n > max ? ' out of range: ' : ' not an integer: '\r\n : ' not a primitive number: ') + String(n));\r\n }\r\n}\r\n\r\n\r\n// Assumes finite n.\r\nfunction isOdd(n) {\r\n var k = n.c.length - 1;\r\n return bitFloor(n.e / LOG_BASE) == k && n.c[k] % 2 != 0;\r\n}\r\n\r\n\r\nfunction toExponential(str, e) {\r\n return (str.length > 1 ? str.charAt(0) + '.' + str.slice(1) : str) +\r\n (e < 0 ? 'e' : 'e+') + e;\r\n}\r\n\r\n\r\nfunction toFixedPoint(str, e, z) {\r\n var len, zs;\r\n\r\n // Negative exponent?\r\n if (e < 0) {\r\n\r\n // Prepend zeros.\r\n for (zs = z + '.'; ++e; zs += z);\r\n str = zs + str;\r\n\r\n // Positive exponent\r\n } else {\r\n len = str.length;\r\n\r\n // Append zeros.\r\n if (++e > len) {\r\n for (zs = z, e -= len; --e; zs += z);\r\n str += zs;\r\n } else if (e < len) {\r\n str = str.slice(0, e) + '.' + str.slice(e);\r\n }\r\n }\r\n\r\n return str;\r\n}\r\n\r\n\r\n// EXPORT\r\n\r\n\r\nexport var BigNumber = clone();\r\n\r\nexport default BigNumber;\r\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport BigNumber from \"bignumber.js\";\nimport Long from \"long\";\n\n/**\n * @typedef {import(\"./Hbar.js\").default} Hbar\n */\n\n/**\n * Utility Error Messages\n */\nexport const REQUIRE_NON_NULL_ERROR = \"This value cannot be null | undefined.\";\nexport const REQUIRE_STRING_ERROR = \"This value must be a string.\";\nexport const REQUIRE_UINT8ARRAY_ERROR = \"This value must be a Uint8Array.\";\nexport const REQUIRE_STRING_OR_UINT8ARRAY_ERROR =\n \"This value must be a string or Uint8Array.\";\nexport const REQUIRE_NUMBER_ERROR = \"This value must be a Number.\";\nexport const REQUIRE_BIGNUMBER_ERROR = \"This value must be a BigNumber.\";\nexport const REQUIRE_ARRAY_ERROR = \"The provided variable must be an Array.\";\nexport const REQUIRE_LONG_ERROR = \"This value must be a Long.\";\n\nexport const REQUIRE_TYPE_ERROR =\n \"The provided variables are not matching types.\";\n\nexport const FUNCTION_CONVERT_TO_BIGNUMBER_ERROR =\n \"This value must be a String, Number, or BigNumber to be converted.\";\nexport const FUNCTION_CONVERT_TO_NUMBER_ERROR =\n \"This value must be a String, Number, or BigNumber to be converted.\";\nexport const FUNCTION_CONVERT_TO_NUMBER_PARSE_ERROR =\n \"Unable to parse given variable. Returns NaN.\";\n\n//Soft Checks\n\n/**\n * Takes any param and returns false if null or undefined.\n *\n * @param {any | null | undefined} variable\n * @returns {boolean}\n */\nexport function isNonNull(variable) {\n return variable != null;\n}\n\n/**\n * Takes any param and returns true if param variable and type are the same.\n *\n * @param {any | null | undefined} variable\n * @param {any | null | undefined} type\n * @returns {boolean}\n */\nexport function isType(variable, type) {\n return typeof variable == typeof type;\n}\n\n/**\n * Takes any param and returns true if param is not null and of type Uint8Array.\n *\n * @param {any | null | undefined} variable\n * @returns {boolean}\n */\nexport function isUint8Array(variable) {\n return isNonNull(variable) && variable instanceof Uint8Array;\n}\n\n/**\n * Takes any param and returns true if param is not null and of type Number.\n *\n * @param {any | null | undefined} variable\n * @returns {boolean}\n */\nexport function isNumber(variable) {\n return (\n isNonNull(variable) &&\n (typeof variable == \"number\" || variable instanceof Number)\n );\n}\n\n/**\n * Takes any param and returns true if param is not null and of type BigNumber.\n *\n * @param {any | null | undefined} variable\n * @returns {boolean}\n */\nexport function isBigNumber(variable) {\n return isNonNull(variable) && variable instanceof BigNumber;\n}\n\n/**\n * Takes any param and returns true if param is not null and of type BigNumber.\n *\n * @param {any | null | undefined} variable\n * @returns {boolean}\n */\nexport function isLong(variable) {\n return isNonNull(variable) && variable instanceof Long;\n}\n\n/**\n * Takes any param and returns true if param is not null and of type string.\n *\n * @param {any | null | undefined} variable\n * @returns {boolean}\n */\nexport function isString(variable) {\n return isNonNull(variable) && typeof variable == \"string\";\n}\n\n/**\n * Takes any param and returns true if param is not null and type string or Uint8Array.\n *\n * @param {any | null | undefined} variable\n * @returns {boolean}\n */\nexport function isStringOrUint8Array(variable) {\n return (\n isNonNull(variable) && (isString(variable) || isUint8Array(variable))\n );\n}\n\n/**\n * Takes an address as `Uint8Array` and returns whether or not this is a long-zero address\n *\n * @param {Uint8Array} address\n * @returns {boolean}\n */\nexport function isLongZeroAddress(address) {\n for (let i = 0; i < 12; i++) {\n if (address[i] != 0) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * Takes any param and returns false if null or undefined.\n *\n * @template {Long | Hbar} T\n * @param {T} variable\n * @returns {T}\n */\nexport function requireNotNegative(variable) {\n if (variable.isNegative()) {\n throw new Error(\"negative value not allowed\");\n }\n\n return variable;\n}\n\n/**\n * Takes any param and throws custom error if null or undefined.\n *\n * @param {any} variable\n * @returns {object}\n */\nexport function requireNonNull(variable) {\n if (!isNonNull(variable)) {\n throw new Error(REQUIRE_NON_NULL_ERROR);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return variable;\n }\n}\n\n/**\n * Takes any param and throws custom error if params are not same type.\n *\n * @param {any | null | undefined} variable\n * @param {any | null | undefined} type\n * @returns {object}\n */\nexport function requireType(variable, type) {\n if (!isType(variable, type)) {\n throw new Error(REQUIRE_TYPE_ERROR);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return variable;\n }\n}\n\n/**\n * Takes any param and throws custom error if non BigNumber.\n *\n * @param {any | null | undefined} variable\n * @returns {BigNumber}\n */\nexport function requireBigNumber(variable) {\n if (!isBigNumber(requireNonNull(variable))) {\n throw new Error(REQUIRE_BIGNUMBER_ERROR);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return /** @type {BigNumber} */ (variable);\n }\n}\n\n/**\n * Takes any param and throws custom error if non BigNumber.\n *\n * @param {any | null | undefined} variable\n * @returns {Long}\n */\nexport function requireLong(variable) {\n if (!isLong(requireNonNull(variable))) {\n throw new Error(REQUIRE_LONG_ERROR);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return /** @type {Long} */ (variable);\n }\n}\n\n/**\n * Takes any param and throws custom error if non string.\n *\n * @param {any | null | undefined} variable\n * @returns {string}\n */\nexport function requireString(variable) {\n if (!isString(requireNonNull(variable))) {\n throw new Error(REQUIRE_STRING_ERROR);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return /** @type {string} */ (variable);\n }\n}\n\n/**\n * Takes any param and throws custom error if non Uint8Array.\n *\n * @param {any | null | undefined} variable\n * @returns {Uint8Array}\n */\nexport function requireUint8Array(variable) {\n if (!isUint8Array(requireNonNull(variable))) {\n throw new Error(REQUIRE_UINT8ARRAY_ERROR);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return /** @type {Uint8Array} */ (variable);\n }\n}\n\n/**\n * Takes any param and throws custom error if non Uint8Array.\n *\n * @param {any | null | undefined} variable\n * @returns {number}\n */\nexport function requireNumber(variable) {\n if (!isNumber(requireNonNull(variable))) {\n throw new Error(REQUIRE_NUMBER_ERROR);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return /** @type {number} */ (variable);\n }\n}\n\n/**\n * Takes any param and throws custom error if null or undefined and not a string or Uint8Array.\n *\n * @param {any | null | undefined} variable\n * @returns {string | Uint8Array}\n */\nexport function requireStringOrUint8Array(variable) {\n if (isStringOrUint8Array(requireNonNull(variable))) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return /** @type {string | Uint8Array} */ (variable);\n } else {\n throw new Error(REQUIRE_STRING_OR_UINT8ARRAY_ERROR);\n }\n}\n\n//Conversions\n\n/**\n * Converts number or string to BigNumber.\n *\n * @param {any | null | undefined} variable\n * @returns {BigNumber}\n */\nexport function convertToBigNumber(variable) {\n requireNonNull(variable);\n if (\n isBigNumber(variable) ||\n isString(variable) ||\n isNumber(variable) ||\n isLong(variable)\n ) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n return new BigNumber(variable);\n }\n throw new Error(FUNCTION_CONVERT_TO_BIGNUMBER_ERROR);\n}\n\n/**\n * Converts Array of Numbers or Strings to Array of BigNumbers.\n *\n * @param {any | null | undefined} variable\n * @returns {Array}\n */\nexport function convertToBigNumberArray(variable) {\n if (variable instanceof Array) {\n return /** @type {Array} */ (\n variable.map(convertToBigNumber)\n );\n } else {\n throw new Error(REQUIRE_ARRAY_ERROR);\n }\n}\n\n/**\n * @param {*} variable\n * @returns {number}\n */\nexport function convertToNumber(variable) {\n requireNonNull(variable);\n if (\n isBigNumber(variable) ||\n isString(variable) ||\n isNumber(variable) ||\n isLong(variable)\n ) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n const num = parseInt(variable);\n if (isNaN(num)) {\n throw new Error(FUNCTION_CONVERT_TO_NUMBER_PARSE_ERROR);\n } else {\n return num;\n }\n } else {\n throw new Error(FUNCTION_CONVERT_TO_NUMBER_ERROR);\n }\n}\n\n/**\n * Creates a DataView on top of an Uint8Array that could be or not be pooled, ensuring that we don't get out of bounds.\n *\n * @param {Uint8Array | Int8Array} arr\n * @param {number | undefined} offset\n * @param {number | undefined} length\n * @returns {DataView}\n */\nexport function safeView(arr, offset = 0, length = arr.byteLength) {\n if (!(Number.isInteger(offset) && offset >= 0))\n throw new Error(\"Invalid offset!\");\n if (!(Number.isInteger(length) && length >= 0))\n throw new Error(\"Invalid length!\");\n return new DataView(\n arr.buffer,\n arr.byteOffset + offset,\n Math.min(length, arr.byteLength - offset),\n );\n}\n\n/**\n * @param {any} a\n * @param {any} b\n * @param {Set=} ignore\n * @returns {boolean}\n */\nexport function compare(a, b, ignore = new Set()) {\n if (typeof a === \"object\" && typeof b === \"object\") {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n const aKeys = Object.keys(a);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n const bKeys = Object.keys(b);\n\n if (aKeys.length !== bKeys.length) {\n return false;\n }\n\n for (let i = 0; i < aKeys.length; i++) {\n if (aKeys[i] !== bKeys[i]) {\n return false;\n }\n\n if (ignore.has(aKeys[i])) {\n continue;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (!compare(a[aKeys[i]], b[bKeys[i]], ignore)) {\n return false;\n }\n }\n\n return true;\n } else if (typeof a === \"number\" && typeof b === \"number\") {\n return a === b;\n } else if (typeof a === \"string\" && typeof b === \"string\") {\n return a === b;\n } else if (typeof a === \"boolean\" && typeof b === \"boolean\") {\n return a === b;\n } else {\n return false;\n }\n}\n\n/**\n * https://stackoverflow.com/questions/2450954/how-to-randomize-shuffle-a-javascript-array\n *\n * @template T\n * @param {Array} array\n */\nexport function shuffle(array) {\n var currentIndex = array.length,\n temporaryValue,\n randomIndex;\n\n // While there remain elements to shuffle...\n while (0 !== currentIndex) {\n // Pick a remaining element...\n randomIndex = Math.floor(Math.random() * currentIndex);\n currentIndex -= 1;\n\n // And swap it with the current element.\n temporaryValue = array[currentIndex];\n array[currentIndex] = array[randomIndex];\n array[randomIndex] = temporaryValue;\n }\n}\n\n/**\n * @param {Uint8Array} array1\n * @param {Uint8Array} array2\n * @returns {boolean}\n */\nexport function arrayEqual(array1, array2) {\n if (array1 === array2) {\n return true;\n }\n\n if (array1.byteLength !== array2.byteLength) {\n return false;\n }\n\n const view1 = new DataView(\n array1.buffer,\n array1.byteOffset,\n array1.byteLength,\n );\n const view2 = new DataView(\n array2.buffer,\n array2.byteOffset,\n array2.byteLength,\n );\n\n let i = array1.byteLength;\n\n while (i--) {\n if (view1.getUint8(i) !== view2.getUint8(i)) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * @description Function that delays an execution for a given time (in milliseconds)\n * @param {number} ms\n * @returns {Promise}\n */\nexport function wait(ms) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n","/* eslint-disable @typescript-eslint/strict-boolean-expressions */\n\n// ---------------------------------------------------------------------------\n// Specific encodings\n// ---------------------------------------------------------------------------\nvar base16Encoding = {\n chars: '0123456789ABCDEF',\n bits: 4\n};\nvar base32Encoding = {\n chars: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567',\n bits: 5\n};\nvar base32HexEncoding = {\n chars: '0123456789ABCDEFGHIJKLMNOPQRSTUV',\n bits: 5\n};\nvar base64Encoding = {\n chars: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n bits: 6\n};\nvar base64UrlEncoding = {\n chars: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_',\n bits: 6\n};\nvar base16 = {\n parse: function parse(string, opts) {\n return _parse(string.toUpperCase(), base16Encoding, opts);\n },\n stringify: function stringify(data, opts) {\n return _stringify(data, base16Encoding, opts);\n }\n};\nvar base32 = {\n parse: function parse(string, opts) {\n if (opts === void 0) {\n opts = {};\n }\n return _parse(opts.loose ? string.toUpperCase().replace(/0/g, 'O').replace(/1/g, 'L').replace(/8/g, 'B') : string, base32Encoding, opts);\n },\n stringify: function stringify(data, opts) {\n return _stringify(data, base32Encoding, opts);\n }\n};\nvar base32hex = {\n parse: function parse(string, opts) {\n return _parse(string, base32HexEncoding, opts);\n },\n stringify: function stringify(data, opts) {\n return _stringify(data, base32HexEncoding, opts);\n }\n};\nvar base64 = {\n parse: function parse(string, opts) {\n return _parse(string, base64Encoding, opts);\n },\n stringify: function stringify(data, opts) {\n return _stringify(data, base64Encoding, opts);\n }\n};\nvar base64url = {\n parse: function parse(string, opts) {\n return _parse(string, base64UrlEncoding, opts);\n },\n stringify: function stringify(data, opts) {\n return _stringify(data, base64UrlEncoding, opts);\n }\n};\n\n// ---------------------------------------------------------------------------\n// Codec implementation\n// ---------------------------------------------------------------------------\n\nvar codec = {\n parse: _parse,\n stringify: _stringify\n};\nfunction _parse(string, encoding, opts) {\n var _opts$out;\n if (opts === void 0) {\n opts = {};\n }\n // Build the character lookup table:\n if (!encoding.codes) {\n encoding.codes = {};\n for (var i = 0; i < encoding.chars.length; ++i) {\n encoding.codes[encoding.chars[i]] = i;\n }\n }\n\n // The string must have a whole number of bytes:\n if (!opts.loose && string.length * encoding.bits & 7) {\n throw new SyntaxError('Invalid padding');\n }\n\n // Count the padding bytes:\n var end = string.length;\n while (string[end - 1] === '=') {\n --end;\n\n // If we get a whole number of bytes, there is too much padding:\n if (!opts.loose && !((string.length - end) * encoding.bits & 7)) {\n throw new SyntaxError('Invalid padding');\n }\n }\n\n // Allocate the output:\n var out = new ((_opts$out = opts.out) != null ? _opts$out : Uint8Array)(end * encoding.bits / 8 | 0);\n\n // Parse the data:\n var bits = 0; // Number of bits currently in the buffer\n var buffer = 0; // Bits waiting to be written out, MSB first\n var written = 0; // Next byte to write\n for (var _i = 0; _i < end; ++_i) {\n // Read one character from the string:\n var value = encoding.codes[string[_i]];\n if (value === undefined) {\n throw new SyntaxError('Invalid character ' + string[_i]);\n }\n\n // Append the bits to the buffer:\n buffer = buffer << encoding.bits | value;\n bits += encoding.bits;\n\n // Write out some bits if the buffer has a byte's worth:\n if (bits >= 8) {\n bits -= 8;\n out[written++] = 0xff & buffer >> bits;\n }\n }\n\n // Verify that we have received just enough bits:\n if (bits >= encoding.bits || 0xff & buffer << 8 - bits) {\n throw new SyntaxError('Unexpected end of data');\n }\n return out;\n}\nfunction _stringify(data, encoding, opts) {\n if (opts === void 0) {\n opts = {};\n }\n var _opts = opts,\n _opts$pad = _opts.pad,\n pad = _opts$pad === void 0 ? true : _opts$pad;\n var mask = (1 << encoding.bits) - 1;\n var out = '';\n var bits = 0; // Number of bits currently in the buffer\n var buffer = 0; // Bits waiting to be written out, MSB first\n for (var i = 0; i < data.length; ++i) {\n // Slurp data into the buffer:\n buffer = buffer << 8 | 0xff & data[i];\n bits += 8;\n\n // Write out as much as we can:\n while (bits > encoding.bits) {\n bits -= encoding.bits;\n out += encoding.chars[mask & buffer >> bits];\n }\n }\n\n // Partial character:\n if (bits) {\n out += encoding.chars[mask & buffer << encoding.bits - bits];\n }\n\n // Add padding characters until we hit a byte boundary:\n if (pad) {\n while (out.length * encoding.bits & 7) {\n out += '=';\n }\n }\n return out;\n}\n\nexport { base16, base32, base32hex, base64, base64url, codec };\n","/*\n * Copyright (C) 2019-2023 Hedera Hashgraph, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// HIP-32: https://hips.hedera.com/hip/hip-32\nimport { base32 } from \"rfc4648\";\n\nconst decodeOpts = { loose: true };\nconst encodeOpts = { pad: false };\n\n/**\n * Decodes the rfc4648 base32 string into a {@link Uint8Array}. If the input string is null, returns null.\n * @param {string} str the base32 string.\n * @returns {Uint8Array | ''}\n */\n// eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call\nconst decode = (str) => str && base32.parse(str, decodeOpts);\n\n/**\n * Encodes the byte array into a rfc4648 base32 string without padding. If the input is null, returns null. Note with\n * the rfc4648 loose = true option, it allows lower case letters, padding, and auto corrects 0 -> O, 1 -> L, 8 -> B\n * @param {Buffer|Uint8Array} data\n * @returns {string}\n */\n// eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call\nconst encode = (data) => data && base32.stringify(data, encodeOpts);\n\nexport default {\n decode,\n encode,\n};\n","\"use strict\";\r\nmodule.exports = asPromise;\r\n\r\n/**\r\n * Callback as used by {@link util.asPromise}.\r\n * @typedef asPromiseCallback\r\n * @type {function}\r\n * @param {Error|null} error Error, if any\r\n * @param {...*} params Additional arguments\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Returns a promise from a node-style callback function.\r\n * @memberof util\r\n * @param {asPromiseCallback} fn Function to call\r\n * @param {*} ctx Function context\r\n * @param {...*} params Function arguments\r\n * @returns {Promise<*>} Promisified function\r\n */\r\nfunction asPromise(fn, ctx/*, varargs */) {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0,\r\n index = 2,\r\n pending = true;\r\n while (index < arguments.length)\r\n params[offset++] = arguments[index++];\r\n return new Promise(function executor(resolve, reject) {\r\n params[offset] = function callback(err/*, varargs */) {\r\n if (pending) {\r\n pending = false;\r\n if (err)\r\n reject(err);\r\n else {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0;\r\n while (offset < params.length)\r\n params[offset++] = arguments[offset];\r\n resolve.apply(null, params);\r\n }\r\n }\r\n };\r\n try {\r\n fn.apply(ctx || null, params);\r\n } catch (err) {\r\n if (pending) {\r\n pending = false;\r\n reject(err);\r\n }\r\n }\r\n });\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal base64 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar base64 = exports;\r\n\r\n/**\r\n * Calculates the byte length of a base64 encoded string.\r\n * @param {string} string Base64 encoded string\r\n * @returns {number} Byte length\r\n */\r\nbase64.length = function length(string) {\r\n var p = string.length;\r\n if (!p)\r\n return 0;\r\n var n = 0;\r\n while (--p % 4 > 1 && string.charAt(p) === \"=\")\r\n ++n;\r\n return Math.ceil(string.length * 3) / 4 - n;\r\n};\r\n\r\n// Base64 encoding table\r\nvar b64 = new Array(64);\r\n\r\n// Base64 decoding table\r\nvar s64 = new Array(123);\r\n\r\n// 65..90, 97..122, 48..57, 43, 47\r\nfor (var i = 0; i < 64;)\r\n s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\r\n\r\n/**\r\n * Encodes a buffer to a base64 encoded string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} Base64 encoded string\r\n */\r\nbase64.encode = function encode(buffer, start, end) {\r\n var parts = null,\r\n chunk = [];\r\n var i = 0, // output index\r\n j = 0, // goto index\r\n t; // temporary\r\n while (start < end) {\r\n var b = buffer[start++];\r\n switch (j) {\r\n case 0:\r\n chunk[i++] = b64[b >> 2];\r\n t = (b & 3) << 4;\r\n j = 1;\r\n break;\r\n case 1:\r\n chunk[i++] = b64[t | b >> 4];\r\n t = (b & 15) << 2;\r\n j = 2;\r\n break;\r\n case 2:\r\n chunk[i++] = b64[t | b >> 6];\r\n chunk[i++] = b64[b & 63];\r\n j = 0;\r\n break;\r\n }\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (j) {\r\n chunk[i++] = b64[t];\r\n chunk[i++] = 61;\r\n if (j === 1)\r\n chunk[i++] = 61;\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\nvar invalidEncoding = \"invalid encoding\";\r\n\r\n/**\r\n * Decodes a base64 encoded string to a buffer.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Number of bytes written\r\n * @throws {Error} If encoding is invalid\r\n */\r\nbase64.decode = function decode(string, buffer, offset) {\r\n var start = offset;\r\n var j = 0, // goto index\r\n t; // temporary\r\n for (var i = 0; i < string.length;) {\r\n var c = string.charCodeAt(i++);\r\n if (c === 61 && j > 1)\r\n break;\r\n if ((c = s64[c]) === undefined)\r\n throw Error(invalidEncoding);\r\n switch (j) {\r\n case 0:\r\n t = c;\r\n j = 1;\r\n break;\r\n case 1:\r\n buffer[offset++] = t << 2 | (c & 48) >> 4;\r\n t = c;\r\n j = 2;\r\n break;\r\n case 2:\r\n buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\r\n t = c;\r\n j = 3;\r\n break;\r\n case 3:\r\n buffer[offset++] = (t & 3) << 6 | c;\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j === 1)\r\n throw Error(invalidEncoding);\r\n return offset - start;\r\n};\r\n\r\n/**\r\n * Tests if the specified string appears to be base64 encoded.\r\n * @param {string} string String to test\r\n * @returns {boolean} `true` if probably base64 encoded, otherwise false\r\n */\r\nbase64.test = function test(string) {\r\n return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string);\r\n};\r\n","\"use strict\";\r\nmodule.exports = EventEmitter;\r\n\r\n/**\r\n * Constructs a new event emitter instance.\r\n * @classdesc A minimal event emitter.\r\n * @memberof util\r\n * @constructor\r\n */\r\nfunction EventEmitter() {\r\n\r\n /**\r\n * Registered listeners.\r\n * @type {Object.}\r\n * @private\r\n */\r\n this._listeners = {};\r\n}\r\n\r\n/**\r\n * Registers an event listener.\r\n * @param {string} evt Event name\r\n * @param {function} fn Listener\r\n * @param {*} [ctx] Listener context\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.on = function on(evt, fn, ctx) {\r\n (this._listeners[evt] || (this._listeners[evt] = [])).push({\r\n fn : fn,\r\n ctx : ctx || this\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes an event listener or any matching listeners if arguments are omitted.\r\n * @param {string} [evt] Event name. Removes all listeners if omitted.\r\n * @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted.\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.off = function off(evt, fn) {\r\n if (evt === undefined)\r\n this._listeners = {};\r\n else {\r\n if (fn === undefined)\r\n this._listeners[evt] = [];\r\n else {\r\n var listeners = this._listeners[evt];\r\n for (var i = 0; i < listeners.length;)\r\n if (listeners[i].fn === fn)\r\n listeners.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emits an event by calling its listeners with the specified arguments.\r\n * @param {string} evt Event name\r\n * @param {...*} args Arguments\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.emit = function emit(evt) {\r\n var listeners = this._listeners[evt];\r\n if (listeners) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n for (i = 0; i < listeners.length;)\r\n listeners[i].fn.apply(listeners[i++].ctx, args);\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\n\r\nmodule.exports = factory(factory);\r\n\r\n/**\r\n * Reads / writes floats / doubles from / to buffers.\r\n * @name util.float\r\n * @namespace\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using little endian byte order.\r\n * @name util.float.writeFloatLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using big endian byte order.\r\n * @name util.float.writeFloatBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using little endian byte order.\r\n * @name util.float.readFloatLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using big endian byte order.\r\n * @name util.float.readFloatBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using little endian byte order.\r\n * @name util.float.writeDoubleLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using big endian byte order.\r\n * @name util.float.writeDoubleBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using little endian byte order.\r\n * @name util.float.readDoubleLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using big endian byte order.\r\n * @name util.float.readDoubleBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n// Factory function for the purpose of node-based testing in modified global environments\r\nfunction factory(exports) {\r\n\r\n // float: typed array\r\n if (typeof Float32Array !== \"undefined\") (function() {\r\n\r\n var f32 = new Float32Array([ -0 ]),\r\n f8b = new Uint8Array(f32.buffer),\r\n le = f8b[3] === 128;\r\n\r\n function writeFloat_f32_cpy(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n }\r\n\r\n function writeFloat_f32_rev(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[3];\r\n buf[pos + 1] = f8b[2];\r\n buf[pos + 2] = f8b[1];\r\n buf[pos + 3] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeFloatLE = le ? writeFloat_f32_cpy : writeFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.writeFloatBE = le ? writeFloat_f32_rev : writeFloat_f32_cpy;\r\n\r\n function readFloat_f32_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n function readFloat_f32_rev(buf, pos) {\r\n f8b[3] = buf[pos ];\r\n f8b[2] = buf[pos + 1];\r\n f8b[1] = buf[pos + 2];\r\n f8b[0] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readFloatLE = le ? readFloat_f32_cpy : readFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.readFloatBE = le ? readFloat_f32_rev : readFloat_f32_cpy;\r\n\r\n // float: ieee754\r\n })(); else (function() {\r\n\r\n function writeFloat_ieee754(writeUint, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0)\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos);\r\n else if (isNaN(val))\r\n writeUint(2143289344, buf, pos);\r\n else if (val > 3.4028234663852886e+38) // +-Infinity\r\n writeUint((sign << 31 | 2139095040) >>> 0, buf, pos);\r\n else if (val < 1.1754943508222875e-38) // denormal\r\n writeUint((sign << 31 | Math.round(val / 1.401298464324817e-45)) >>> 0, buf, pos);\r\n else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2),\r\n mantissa = Math.round(val * Math.pow(2, -exponent) * 8388608) & 8388607;\r\n writeUint((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);\r\n }\r\n }\r\n\r\n exports.writeFloatLE = writeFloat_ieee754.bind(null, writeUintLE);\r\n exports.writeFloatBE = writeFloat_ieee754.bind(null, writeUintBE);\r\n\r\n function readFloat_ieee754(readUint, buf, pos) {\r\n var uint = readUint(buf, pos),\r\n sign = (uint >> 31) * 2 + 1,\r\n exponent = uint >>> 23 & 255,\r\n mantissa = uint & 8388607;\r\n return exponent === 255\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 1.401298464324817e-45 * mantissa\r\n : sign * Math.pow(2, exponent - 150) * (mantissa + 8388608);\r\n }\r\n\r\n exports.readFloatLE = readFloat_ieee754.bind(null, readUintLE);\r\n exports.readFloatBE = readFloat_ieee754.bind(null, readUintBE);\r\n\r\n })();\r\n\r\n // double: typed array\r\n if (typeof Float64Array !== \"undefined\") (function() {\r\n\r\n var f64 = new Float64Array([-0]),\r\n f8b = new Uint8Array(f64.buffer),\r\n le = f8b[7] === 128;\r\n\r\n function writeDouble_f64_cpy(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n buf[pos + 4] = f8b[4];\r\n buf[pos + 5] = f8b[5];\r\n buf[pos + 6] = f8b[6];\r\n buf[pos + 7] = f8b[7];\r\n }\r\n\r\n function writeDouble_f64_rev(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[7];\r\n buf[pos + 1] = f8b[6];\r\n buf[pos + 2] = f8b[5];\r\n buf[pos + 3] = f8b[4];\r\n buf[pos + 4] = f8b[3];\r\n buf[pos + 5] = f8b[2];\r\n buf[pos + 6] = f8b[1];\r\n buf[pos + 7] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeDoubleLE = le ? writeDouble_f64_cpy : writeDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.writeDoubleBE = le ? writeDouble_f64_rev : writeDouble_f64_cpy;\r\n\r\n function readDouble_f64_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n f8b[4] = buf[pos + 4];\r\n f8b[5] = buf[pos + 5];\r\n f8b[6] = buf[pos + 6];\r\n f8b[7] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n function readDouble_f64_rev(buf, pos) {\r\n f8b[7] = buf[pos ];\r\n f8b[6] = buf[pos + 1];\r\n f8b[5] = buf[pos + 2];\r\n f8b[4] = buf[pos + 3];\r\n f8b[3] = buf[pos + 4];\r\n f8b[2] = buf[pos + 5];\r\n f8b[1] = buf[pos + 6];\r\n f8b[0] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readDoubleLE = le ? readDouble_f64_cpy : readDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.readDoubleBE = le ? readDouble_f64_rev : readDouble_f64_cpy;\r\n\r\n // double: ieee754\r\n })(); else (function() {\r\n\r\n function writeDouble_ieee754(writeUint, off0, off1, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + off1);\r\n } else if (isNaN(val)) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(2146959360, buf, pos + off1);\r\n } else if (val > 1.7976931348623157e+308) { // +-Infinity\r\n writeUint(0, buf, pos + off0);\r\n writeUint((sign << 31 | 2146435072) >>> 0, buf, pos + off1);\r\n } else {\r\n var mantissa;\r\n if (val < 2.2250738585072014e-308) { // denormal\r\n mantissa = val / 5e-324;\r\n writeUint(mantissa >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + off1);\r\n } else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2);\r\n if (exponent === 1024)\r\n exponent = 1023;\r\n mantissa = val * Math.pow(2, -exponent);\r\n writeUint(mantissa * 4503599627370496 >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + off1);\r\n }\r\n }\r\n }\r\n\r\n exports.writeDoubleLE = writeDouble_ieee754.bind(null, writeUintLE, 0, 4);\r\n exports.writeDoubleBE = writeDouble_ieee754.bind(null, writeUintBE, 4, 0);\r\n\r\n function readDouble_ieee754(readUint, off0, off1, buf, pos) {\r\n var lo = readUint(buf, pos + off0),\r\n hi = readUint(buf, pos + off1);\r\n var sign = (hi >> 31) * 2 + 1,\r\n exponent = hi >>> 20 & 2047,\r\n mantissa = 4294967296 * (hi & 1048575) + lo;\r\n return exponent === 2047\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 5e-324 * mantissa\r\n : sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496);\r\n }\r\n\r\n exports.readDoubleLE = readDouble_ieee754.bind(null, readUintLE, 0, 4);\r\n exports.readDoubleBE = readDouble_ieee754.bind(null, readUintBE, 4, 0);\r\n\r\n })();\r\n\r\n return exports;\r\n}\r\n\r\n// uint helpers\r\n\r\nfunction writeUintLE(val, buf, pos) {\r\n buf[pos ] = val & 255;\r\n buf[pos + 1] = val >>> 8 & 255;\r\n buf[pos + 2] = val >>> 16 & 255;\r\n buf[pos + 3] = val >>> 24;\r\n}\r\n\r\nfunction writeUintBE(val, buf, pos) {\r\n buf[pos ] = val >>> 24;\r\n buf[pos + 1] = val >>> 16 & 255;\r\n buf[pos + 2] = val >>> 8 & 255;\r\n buf[pos + 3] = val & 255;\r\n}\r\n\r\nfunction readUintLE(buf, pos) {\r\n return (buf[pos ]\r\n | buf[pos + 1] << 8\r\n | buf[pos + 2] << 16\r\n | buf[pos + 3] << 24) >>> 0;\r\n}\r\n\r\nfunction readUintBE(buf, pos) {\r\n return (buf[pos ] << 24\r\n | buf[pos + 1] << 16\r\n | buf[pos + 2] << 8\r\n | buf[pos + 3]) >>> 0;\r\n}\r\n","\"use strict\";\r\nmodule.exports = inquire;\r\n\r\n/**\r\n * Requires a module only if available.\r\n * @memberof util\r\n * @param {string} moduleName Module to require\r\n * @returns {?Object} Required module if available and not empty, otherwise `null`\r\n */\r\nfunction inquire(moduleName) {\r\n try {\r\n var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval\r\n if (mod && (mod.length || Object.keys(mod).length))\r\n return mod;\r\n } catch (e) {} // eslint-disable-line no-empty\r\n return null;\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal UTF8 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar utf8 = exports;\r\n\r\n/**\r\n * Calculates the UTF8 byte length of a string.\r\n * @param {string} string String\r\n * @returns {number} Byte length\r\n */\r\nutf8.length = function utf8_length(string) {\r\n var len = 0,\r\n c = 0;\r\n for (var i = 0; i < string.length; ++i) {\r\n c = string.charCodeAt(i);\r\n if (c < 128)\r\n len += 1;\r\n else if (c < 2048)\r\n len += 2;\r\n else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\r\n ++i;\r\n len += 4;\r\n } else\r\n len += 3;\r\n }\r\n return len;\r\n};\r\n\r\n/**\r\n * Reads UTF8 bytes as a string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} String read\r\n */\r\nutf8.read = function utf8_read(buffer, start, end) {\r\n var len = end - start;\r\n if (len < 1)\r\n return \"\";\r\n var parts = null,\r\n chunk = [],\r\n i = 0, // char offset\r\n t; // temporary\r\n while (start < end) {\r\n t = buffer[start++];\r\n if (t < 128)\r\n chunk[i++] = t;\r\n else if (t > 191 && t < 224)\r\n chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\r\n else if (t > 239 && t < 365) {\r\n t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;\r\n chunk[i++] = 0xD800 + (t >> 10);\r\n chunk[i++] = 0xDC00 + (t & 1023);\r\n } else\r\n chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\n/**\r\n * Writes a string as UTF8 bytes.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Bytes written\r\n */\r\nutf8.write = function utf8_write(string, buffer, offset) {\r\n var start = offset,\r\n c1, // character 1\r\n c2; // character 2\r\n for (var i = 0; i < string.length; ++i) {\r\n c1 = string.charCodeAt(i);\r\n if (c1 < 128) {\r\n buffer[offset++] = c1;\r\n } else if (c1 < 2048) {\r\n buffer[offset++] = c1 >> 6 | 192;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\r\n c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\r\n ++i;\r\n buffer[offset++] = c1 >> 18 | 240;\r\n buffer[offset++] = c1 >> 12 & 63 | 128;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else {\r\n buffer[offset++] = c1 >> 12 | 224;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n }\r\n }\r\n return offset - start;\r\n};\r\n","\"use strict\";\r\nmodule.exports = pool;\r\n\r\n/**\r\n * An allocator as used by {@link util.pool}.\r\n * @typedef PoolAllocator\r\n * @type {function}\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\n\r\n/**\r\n * A slicer as used by {@link util.pool}.\r\n * @typedef PoolSlicer\r\n * @type {function}\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {Uint8Array} Buffer slice\r\n * @this {Uint8Array}\r\n */\r\n\r\n/**\r\n * A general purpose buffer pool.\r\n * @memberof util\r\n * @function\r\n * @param {PoolAllocator} alloc Allocator\r\n * @param {PoolSlicer} slice Slicer\r\n * @param {number} [size=8192] Slab size\r\n * @returns {PoolAllocator} Pooled allocator\r\n */\r\nfunction pool(alloc, slice, size) {\r\n var SIZE = size || 8192;\r\n var MAX = SIZE >>> 1;\r\n var slab = null;\r\n var offset = SIZE;\r\n return function pool_alloc(size) {\r\n if (size < 1 || size > MAX)\r\n return alloc(size);\r\n if (offset + size > SIZE) {\r\n slab = alloc(SIZE);\r\n offset = 0;\r\n }\r\n var buf = slice.call(slab, offset, offset += size);\r\n if (offset & 7) // align to 32 bit\r\n offset = (offset | 7) + 1;\r\n return buf;\r\n };\r\n}\r\n","\"use strict\";\nmodule.exports = LongBits;\n\nvar util = require(\"../util/minimal\");\n\n/**\n * Constructs new long bits.\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\n * @memberof util\n * @constructor\n * @param {number} lo Low 32 bits, unsigned\n * @param {number} hi High 32 bits, unsigned\n */\nfunction LongBits(lo, hi) {\n\n // note that the casts below are theoretically unnecessary as of today, but older statically\n // generated converter code might still call the ctor with signed 32bits. kept for compat.\n\n /**\n * Low bits.\n * @type {number}\n */\n this.lo = lo >>> 0;\n\n /**\n * High bits.\n * @type {number}\n */\n this.hi = hi >>> 0;\n}\n\n/**\n * Zero bits.\n * @memberof util.LongBits\n * @type {util.LongBits}\n */\nvar zero = LongBits.zero = new LongBits(0, 0);\n\nzero.toNumber = function() { return 0; };\nzero.zzEncode = zero.zzDecode = function() { return this; };\nzero.length = function() { return 1; };\n\n/**\n * Zero hash.\n * @memberof util.LongBits\n * @type {string}\n */\nvar zeroHash = LongBits.zeroHash = \"\\0\\0\\0\\0\\0\\0\\0\\0\";\n\n/**\n * Constructs new long bits from the specified number.\n * @param {number} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.fromNumber = function fromNumber(value) {\n if (value === 0)\n return zero;\n var sign = value < 0;\n if (sign)\n value = -value;\n var lo = value >>> 0,\n hi = (value - lo) / 4294967296 >>> 0;\n if (sign) {\n hi = ~hi >>> 0;\n lo = ~lo >>> 0;\n if (++lo > 4294967295) {\n lo = 0;\n if (++hi > 4294967295)\n hi = 0;\n }\n }\n return new LongBits(lo, hi);\n};\n\n/**\n * Constructs new long bits from a number, long or string.\n * @param {Long|number|string} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.from = function from(value) {\n if (typeof value === \"number\")\n return LongBits.fromNumber(value);\n if (util.isString(value)) {\n /* istanbul ignore else */\n if (util.Long)\n value = util.Long.fromString(value);\n else\n return LongBits.fromNumber(parseInt(value, 10));\n }\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\n};\n\n/**\n * Converts this long bits to a possibly unsafe JavaScript number.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {number} Possibly unsafe number\n */\nLongBits.prototype.toNumber = function toNumber(unsigned) {\n if (!unsigned && this.hi >>> 31) {\n var lo = ~this.lo + 1 >>> 0,\n hi = ~this.hi >>> 0;\n if (!lo)\n hi = hi + 1 >>> 0;\n return -(lo + hi * 4294967296);\n }\n return this.lo + this.hi * 4294967296;\n};\n\n/**\n * Converts this long bits to a long.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long} Long\n */\nLongBits.prototype.toLong = function toLong(unsigned) {\n return util.Long\n ? new util.Long(this.lo | 0, this.hi | 0, Boolean(unsigned))\n /* istanbul ignore next */\n : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) };\n};\n\nvar charCodeAt = String.prototype.charCodeAt;\n\n/**\n * Constructs new long bits from the specified 8 characters long hash.\n * @param {string} hash Hash\n * @returns {util.LongBits} Bits\n */\nLongBits.fromHash = function fromHash(hash) {\n if (hash === zeroHash)\n return zero;\n return new LongBits(\n ( charCodeAt.call(hash, 0)\n | charCodeAt.call(hash, 1) << 8\n | charCodeAt.call(hash, 2) << 16\n | charCodeAt.call(hash, 3) << 24) >>> 0\n ,\n ( charCodeAt.call(hash, 4)\n | charCodeAt.call(hash, 5) << 8\n | charCodeAt.call(hash, 6) << 16\n | charCodeAt.call(hash, 7) << 24) >>> 0\n );\n};\n\n/**\n * Converts this long bits to a 8 characters long hash.\n * @returns {string} Hash\n */\nLongBits.prototype.toHash = function toHash() {\n return String.fromCharCode(\n this.lo & 255,\n this.lo >>> 8 & 255,\n this.lo >>> 16 & 255,\n this.lo >>> 24 ,\n this.hi & 255,\n this.hi >>> 8 & 255,\n this.hi >>> 16 & 255,\n this.hi >>> 24\n );\n};\n\n/**\n * Zig-zag encodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzEncode = function zzEncode() {\n var mask = this.hi >> 31;\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Zig-zag decodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzDecode = function zzDecode() {\n var mask = -(this.lo & 1);\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Calculates the length of this longbits when encoded as a varint.\n * @returns {number} Length\n */\nLongBits.prototype.length = function length() {\n var part0 = this.lo,\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\n part2 = this.hi >>> 24;\n return part2 === 0\n ? part1 === 0\n ? part0 < 16384\n ? part0 < 128 ? 1 : 2\n : part0 < 2097152 ? 3 : 4\n : part1 < 16384\n ? part1 < 128 ? 5 : 6\n : part1 < 2097152 ? 7 : 8\n : part2 < 128 ? 9 : 10;\n};\n","\"use strict\";\nvar util = exports;\n\n// used to return a Promise where callback is omitted\nutil.asPromise = require(\"@protobufjs/aspromise\");\n\n// converts to / from base64 encoded strings\nutil.base64 = require(\"@protobufjs/base64\");\n\n// base class of rpc.Service\nutil.EventEmitter = require(\"@protobufjs/eventemitter\");\n\n// float handling accross browsers\nutil.float = require(\"@protobufjs/float\");\n\n// requires modules optionally and hides the call from bundlers\nutil.inquire = require(\"@protobufjs/inquire\");\n\n// converts to / from utf8 encoded strings\nutil.utf8 = require(\"@protobufjs/utf8\");\n\n// provides a node-like buffer pool in the browser\nutil.pool = require(\"@protobufjs/pool\");\n\n// utility to work with the low and high bits of a 64 bit value\nutil.LongBits = require(\"./longbits\");\n\n/**\n * Whether running within node or not.\n * @memberof util\n * @type {boolean}\n */\nutil.isNode = Boolean(typeof global !== \"undefined\"\n && global\n && global.process\n && global.process.versions\n && global.process.versions.node);\n\n/**\n * Global object reference.\n * @memberof util\n * @type {Object}\n */\nutil.global = util.isNode && global\n || typeof window !== \"undefined\" && window\n || typeof self !== \"undefined\" && self\n || this; // eslint-disable-line no-invalid-this\n\n/**\n * An immuable empty array.\n * @memberof util\n * @type {Array.<*>}\n * @const\n */\nutil.emptyArray = Object.freeze ? Object.freeze([]) : /* istanbul ignore next */ []; // used on prototypes\n\n/**\n * An immutable empty object.\n * @type {Object}\n * @const\n */\nutil.emptyObject = Object.freeze ? Object.freeze({}) : /* istanbul ignore next */ {}; // used on prototypes\n\n/**\n * Tests if the specified value is an integer.\n * @function\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is an integer\n */\nutil.isInteger = Number.isInteger || /* istanbul ignore next */ function isInteger(value) {\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\n};\n\n/**\n * Tests if the specified value is a string.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a string\n */\nutil.isString = function isString(value) {\n return typeof value === \"string\" || value instanceof String;\n};\n\n/**\n * Tests if the specified value is a non-null object.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a non-null object\n */\nutil.isObject = function isObject(value) {\n return value && typeof value === \"object\";\n};\n\n/**\n * Checks if a property on a message is considered to be present.\n * This is an alias of {@link util.isSet}.\n * @function\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isset =\n\n/**\n * Checks if a property on a message is considered to be present.\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isSet = function isSet(obj, prop) {\n var value = obj[prop];\n if (value != null && obj.hasOwnProperty(prop)) // eslint-disable-line eqeqeq, no-prototype-builtins\n return typeof value !== \"object\" || (Array.isArray(value) ? value.length : Object.keys(value).length) > 0;\n return false;\n};\n\n/**\n * Any compatible Buffer instance.\n * This is a minimal stand-alone definition of a Buffer instance. The actual type is that exported by node's typings.\n * @interface Buffer\n * @extends Uint8Array\n */\n\n/**\n * Node's Buffer class if available.\n * @type {Constructor}\n */\nutil.Buffer = (function() {\n try {\n var Buffer = util.inquire(\"buffer\").Buffer;\n // refuse to use non-node buffers if not explicitly assigned (perf reasons):\n return Buffer.prototype.utf8Write ? Buffer : /* istanbul ignore next */ null;\n } catch (e) {\n /* istanbul ignore next */\n return null;\n }\n})();\n\n// Internal alias of or polyfull for Buffer.from.\nutil._Buffer_from = null;\n\n// Internal alias of or polyfill for Buffer.allocUnsafe.\nutil._Buffer_allocUnsafe = null;\n\n/**\n * Creates a new buffer of whatever type supported by the environment.\n * @param {number|number[]} [sizeOrArray=0] Buffer size or number array\n * @returns {Uint8Array|Buffer} Buffer\n */\nutil.newBuffer = function newBuffer(sizeOrArray) {\n /* istanbul ignore next */\n return typeof sizeOrArray === \"number\"\n ? util.Buffer\n ? util._Buffer_allocUnsafe(sizeOrArray)\n : new util.Array(sizeOrArray)\n : util.Buffer\n ? util._Buffer_from(sizeOrArray)\n : typeof Uint8Array === \"undefined\"\n ? sizeOrArray\n : new Uint8Array(sizeOrArray);\n};\n\n/**\n * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`.\n * @type {Constructor}\n */\nutil.Array = typeof Uint8Array !== \"undefined\" ? Uint8Array /* istanbul ignore next */ : Array;\n\n/**\n * Any compatible Long instance.\n * This is a minimal stand-alone definition of a Long instance. The actual type is that exported by long.js.\n * @interface Long\n * @property {number} low Low bits\n * @property {number} high High bits\n * @property {boolean} unsigned Whether unsigned or not\n */\n\n/**\n * Long.js's Long class if available.\n * @type {Constructor}\n */\nutil.Long = /* istanbul ignore next */ util.global.dcodeIO && /* istanbul ignore next */ util.global.dcodeIO.Long\n || /* istanbul ignore next */ util.global.Long\n || util.inquire(\"long\");\n\n/**\n * Regular expression used to verify 2 bit (`bool`) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key2Re = /^true|false|0|1$/;\n\n/**\n * Regular expression used to verify 32 bit (`int32` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key32Re = /^-?(?:0|[1-9][0-9]*)$/;\n\n/**\n * Regular expression used to verify 64 bit (`int64` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key64Re = /^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;\n\n/**\n * Converts a number or long to an 8 characters long hash string.\n * @param {Long|number} value Value to convert\n * @returns {string} Hash\n */\nutil.longToHash = function longToHash(value) {\n return value\n ? util.LongBits.from(value).toHash()\n : util.LongBits.zeroHash;\n};\n\n/**\n * Converts an 8 characters long hash string to a long or number.\n * @param {string} hash Hash\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long|number} Original value\n */\nutil.longFromHash = function longFromHash(hash, unsigned) {\n var bits = util.LongBits.fromHash(hash);\n if (util.Long)\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\n return bits.toNumber(Boolean(unsigned));\n};\n\n/**\n * Merges the properties of the source object into the destination object.\n * @memberof util\n * @param {Object.} dst Destination object\n * @param {Object.} src Source object\n * @param {boolean} [ifNotSet=false] Merges only if the key is not already set\n * @returns {Object.} Destination object\n */\nfunction merge(dst, src, ifNotSet) { // used by converters\n for (var keys = Object.keys(src), i = 0; i < keys.length; ++i)\n if (dst[keys[i]] === undefined || !ifNotSet)\n dst[keys[i]] = src[keys[i]];\n return dst;\n}\n\nutil.merge = merge;\n\n/**\n * Converts the first character of a string to lower case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.lcFirst = function lcFirst(str) {\n return str.charAt(0).toLowerCase() + str.substring(1);\n};\n\n/**\n * Creates a custom error constructor.\n * @memberof util\n * @param {string} name Error name\n * @returns {Constructor} Custom error constructor\n */\nfunction newError(name) {\n\n function CustomError(message, properties) {\n\n if (!(this instanceof CustomError))\n return new CustomError(message, properties);\n\n // Error.call(this, message);\n // ^ just returns a new error instance because the ctor can be called as a function\n\n Object.defineProperty(this, \"message\", { get: function() { return message; } });\n\n /* istanbul ignore next */\n if (Error.captureStackTrace) // node\n Error.captureStackTrace(this, CustomError);\n else\n Object.defineProperty(this, \"stack\", { value: new Error().stack || \"\" });\n\n if (properties)\n merge(this, properties);\n }\n\n CustomError.prototype = Object.create(Error.prototype, {\n constructor: {\n value: CustomError,\n writable: true,\n enumerable: false,\n configurable: true,\n },\n name: {\n get: function get() { return name; },\n set: undefined,\n enumerable: false,\n // configurable: false would accurately preserve the behavior of\n // the original, but I'm guessing that was not intentional.\n // For an actual error subclass, this property would\n // be configurable.\n configurable: true,\n },\n toString: {\n value: function value() { return this.name + \": \" + this.message; },\n writable: true,\n enumerable: false,\n configurable: true,\n },\n });\n\n return CustomError;\n}\n\nutil.newError = newError;\n\n/**\n * Constructs a new protocol error.\n * @classdesc Error subclass indicating a protocol specifc error.\n * @memberof util\n * @extends Error\n * @template T extends Message\n * @constructor\n * @param {string} message Error message\n * @param {Object.} [properties] Additional properties\n * @example\n * try {\n * MyMessage.decode(someBuffer); // throws if required fields are missing\n * } catch (e) {\n * if (e instanceof ProtocolError && e.instance)\n * console.log(\"decoded so far: \" + JSON.stringify(e.instance));\n * }\n */\nutil.ProtocolError = newError(\"ProtocolError\");\n\n/**\n * So far decoded message instance.\n * @name util.ProtocolError#instance\n * @type {Message}\n */\n\n/**\n * A OneOf getter as returned by {@link util.oneOfGetter}.\n * @typedef OneOfGetter\n * @type {function}\n * @returns {string|undefined} Set field name, if any\n */\n\n/**\n * Builds a getter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfGetter} Unbound getter\n */\nutil.oneOfGetter = function getOneOf(fieldNames) {\n var fieldMap = {};\n for (var i = 0; i < fieldNames.length; ++i)\n fieldMap[fieldNames[i]] = 1;\n\n /**\n * @returns {string|undefined} Set field name, if any\n * @this Object\n * @ignore\n */\n return function() { // eslint-disable-line consistent-return\n for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\n if (fieldMap[keys[i]] === 1 && this[keys[i]] !== undefined && this[keys[i]] !== null)\n return keys[i];\n };\n};\n\n/**\n * A OneOf setter as returned by {@link util.oneOfSetter}.\n * @typedef OneOfSetter\n * @type {function}\n * @param {string|undefined} value Field name\n * @returns {undefined}\n */\n\n/**\n * Builds a setter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfSetter} Unbound setter\n */\nutil.oneOfSetter = function setOneOf(fieldNames) {\n\n /**\n * @param {string} name Field name\n * @returns {undefined}\n * @this Object\n * @ignore\n */\n return function(name) {\n for (var i = 0; i < fieldNames.length; ++i)\n if (fieldNames[i] !== name)\n delete this[fieldNames[i]];\n };\n};\n\n/**\n * Default conversion options used for {@link Message#toJSON} implementations.\n *\n * These options are close to proto3's JSON mapping with the exception that internal types like Any are handled just like messages. More precisely:\n *\n * - Longs become strings\n * - Enums become string keys\n * - Bytes become base64 encoded strings\n * - (Sub-)Messages become plain objects\n * - Maps become plain objects with all string keys\n * - Repeated fields become arrays\n * - NaN and Infinity for float and double fields become strings\n *\n * @type {IConversionOptions}\n * @see https://developers.google.com/protocol-buffers/docs/proto3?hl=en#json\n */\nutil.toJSONOptions = {\n longs: String,\n enums: String,\n bytes: String,\n json: true\n};\n\n// Sets up buffer utility according to the environment (called in index-minimal)\nutil._configure = function() {\n var Buffer = util.Buffer;\n /* istanbul ignore if */\n if (!Buffer) {\n util._Buffer_from = util._Buffer_allocUnsafe = null;\n return;\n }\n // because node 4.x buffers are incompatible & immutable\n // see: https://github.com/dcodeIO/protobuf.js/pull/665\n util._Buffer_from = Buffer.from !== Uint8Array.from && Buffer.from ||\n /* istanbul ignore next */\n function Buffer_from(value, encoding) {\n return new Buffer(value, encoding);\n };\n util._Buffer_allocUnsafe = Buffer.allocUnsafe ||\n /* istanbul ignore next */\n function Buffer_allocUnsafe(size) {\n return new Buffer(size);\n };\n};\n","\"use strict\";\nmodule.exports = Writer;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferWriter; // cyclic\n\nvar LongBits = util.LongBits,\n base64 = util.base64,\n utf8 = util.utf8;\n\n/**\n * Constructs a new writer operation instance.\n * @classdesc Scheduled writer operation.\n * @constructor\n * @param {function(*, Uint8Array, number)} fn Function to call\n * @param {number} len Value byte length\n * @param {*} val Value to write\n * @ignore\n */\nfunction Op(fn, len, val) {\n\n /**\n * Function to call.\n * @type {function(Uint8Array, number, *)}\n */\n this.fn = fn;\n\n /**\n * Value byte length.\n * @type {number}\n */\n this.len = len;\n\n /**\n * Next operation.\n * @type {Writer.Op|undefined}\n */\n this.next = undefined;\n\n /**\n * Value to write.\n * @type {*}\n */\n this.val = val; // type varies\n}\n\n/* istanbul ignore next */\nfunction noop() {} // eslint-disable-line no-empty-function\n\n/**\n * Constructs a new writer state instance.\n * @classdesc Copied writer state.\n * @memberof Writer\n * @constructor\n * @param {Writer} writer Writer to copy state from\n * @ignore\n */\nfunction State(writer) {\n\n /**\n * Current head.\n * @type {Writer.Op}\n */\n this.head = writer.head;\n\n /**\n * Current tail.\n * @type {Writer.Op}\n */\n this.tail = writer.tail;\n\n /**\n * Current buffer length.\n * @type {number}\n */\n this.len = writer.len;\n\n /**\n * Next state.\n * @type {State|null}\n */\n this.next = writer.states;\n}\n\n/**\n * Constructs a new writer instance.\n * @classdesc Wire format writer using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n */\nfunction Writer() {\n\n /**\n * Current length.\n * @type {number}\n */\n this.len = 0;\n\n /**\n * Operations head.\n * @type {Object}\n */\n this.head = new Op(noop, 0, 0);\n\n /**\n * Operations tail\n * @type {Object}\n */\n this.tail = this.head;\n\n /**\n * Linked forked states.\n * @type {Object|null}\n */\n this.states = null;\n\n // When a value is written, the writer calculates its byte length and puts it into a linked\n // list of operations to perform when finish() is called. This both allows us to allocate\n // buffers of the exact required size and reduces the amount of work we have to do compared\n // to first calculating over objects and then encoding over objects. In our case, the encoding\n // part is just a linked list walk calling operations with already prepared values.\n}\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup() {\n return (Writer.create = function create_buffer() {\n return new BufferWriter();\n })();\n }\n /* istanbul ignore next */\n : function create_array() {\n return new Writer();\n };\n};\n\n/**\n * Creates a new writer.\n * @function\n * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer}\n */\nWriter.create = create();\n\n/**\n * Allocates a buffer of the specified size.\n * @param {number} size Buffer size\n * @returns {Uint8Array} Buffer\n */\nWriter.alloc = function alloc(size) {\n return new util.Array(size);\n};\n\n// Use Uint8Array buffer pool in the browser, just like node does with buffers\n/* istanbul ignore else */\nif (util.Array !== Array)\n Writer.alloc = util.pool(Writer.alloc, util.Array.prototype.subarray);\n\n/**\n * Pushes a new operation to the queue.\n * @param {function(Uint8Array, number, *)} fn Function to call\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @returns {Writer} `this`\n * @private\n */\nWriter.prototype._push = function push(fn, len, val) {\n this.tail = this.tail.next = new Op(fn, len, val);\n this.len += len;\n return this;\n};\n\nfunction writeByte(val, buf, pos) {\n buf[pos] = val & 255;\n}\n\nfunction writeVarint32(val, buf, pos) {\n while (val > 127) {\n buf[pos++] = val & 127 | 128;\n val >>>= 7;\n }\n buf[pos] = val;\n}\n\n/**\n * Constructs a new varint writer operation instance.\n * @classdesc Scheduled varint writer operation.\n * @extends Op\n * @constructor\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @ignore\n */\nfunction VarintOp(len, val) {\n this.len = len;\n this.next = undefined;\n this.val = val;\n}\n\nVarintOp.prototype = Object.create(Op.prototype);\nVarintOp.prototype.fn = writeVarint32;\n\n/**\n * Writes an unsigned 32 bit value as a varint.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.uint32 = function write_uint32(value) {\n // here, the call to this.push has been inlined and a varint specific Op subclass is used.\n // uint32 is by far the most frequently used operation and benefits significantly from this.\n this.len += (this.tail = this.tail.next = new VarintOp(\n (value = value >>> 0)\n < 128 ? 1\n : value < 16384 ? 2\n : value < 2097152 ? 3\n : value < 268435456 ? 4\n : 5,\n value)).len;\n return this;\n};\n\n/**\n * Writes a signed 32 bit value as a varint.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.int32 = function write_int32(value) {\n return value < 0\n ? this._push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\n : this.uint32(value);\n};\n\n/**\n * Writes a 32 bit value as a varint, zig-zag encoded.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sint32 = function write_sint32(value) {\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\n};\n\nfunction writeVarint64(val, buf, pos) {\n while (val.hi) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\n val.hi >>>= 7;\n }\n while (val.lo > 127) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = val.lo >>> 7;\n }\n buf[pos++] = val.lo;\n}\n\n/**\n * Writes an unsigned 64 bit value as a varint.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.uint64 = function write_uint64(value) {\n var bits = LongBits.from(value);\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a signed 64 bit value as a varint.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.int64 = Writer.prototype.uint64;\n\n/**\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sint64 = function write_sint64(value) {\n var bits = LongBits.from(value).zzEncode();\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a boolish value as a varint.\n * @param {boolean} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bool = function write_bool(value) {\n return this._push(writeByte, 1, value ? 1 : 0);\n};\n\nfunction writeFixed32(val, buf, pos) {\n buf[pos ] = val & 255;\n buf[pos + 1] = val >>> 8 & 255;\n buf[pos + 2] = val >>> 16 & 255;\n buf[pos + 3] = val >>> 24;\n}\n\n/**\n * Writes an unsigned 32 bit value as fixed 32 bits.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.fixed32 = function write_fixed32(value) {\n return this._push(writeFixed32, 4, value >>> 0);\n};\n\n/**\n * Writes a signed 32 bit value as fixed 32 bits.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sfixed32 = Writer.prototype.fixed32;\n\n/**\n * Writes an unsigned 64 bit value as fixed 64 bits.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.fixed64 = function write_fixed64(value) {\n var bits = LongBits.from(value);\n return this._push(writeFixed32, 4, bits.lo)._push(writeFixed32, 4, bits.hi);\n};\n\n/**\n * Writes a signed 64 bit value as fixed 64 bits.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sfixed64 = Writer.prototype.fixed64;\n\n/**\n * Writes a float (32 bit).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.float = function write_float(value) {\n return this._push(util.float.writeFloatLE, 4, value);\n};\n\n/**\n * Writes a double (64 bit float).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.double = function write_double(value) {\n return this._push(util.float.writeDoubleLE, 8, value);\n};\n\nvar writeBytes = util.Array.prototype.set\n ? function writeBytes_set(val, buf, pos) {\n buf.set(val, pos); // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytes_for(val, buf, pos) {\n for (var i = 0; i < val.length; ++i)\n buf[pos + i] = val[i];\n };\n\n/**\n * Writes a sequence of bytes.\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bytes = function write_bytes(value) {\n var len = value.length >>> 0;\n if (!len)\n return this._push(writeByte, 1, 0);\n if (util.isString(value)) {\n var buf = Writer.alloc(len = base64.length(value));\n base64.decode(value, buf, 0);\n value = buf;\n }\n return this.uint32(len)._push(writeBytes, len, value);\n};\n\n/**\n * Writes a string.\n * @param {string} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.string = function write_string(value) {\n var len = utf8.length(value);\n return len\n ? this.uint32(len)._push(utf8.write, len, value)\n : this._push(writeByte, 1, 0);\n};\n\n/**\n * Forks this writer's state by pushing it to a stack.\n * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state.\n * @returns {Writer} `this`\n */\nWriter.prototype.fork = function fork() {\n this.states = new State(this);\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n return this;\n};\n\n/**\n * Resets this instance to the last state.\n * @returns {Writer} `this`\n */\nWriter.prototype.reset = function reset() {\n if (this.states) {\n this.head = this.states.head;\n this.tail = this.states.tail;\n this.len = this.states.len;\n this.states = this.states.next;\n } else {\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n }\n return this;\n};\n\n/**\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\n * @returns {Writer} `this`\n */\nWriter.prototype.ldelim = function ldelim() {\n var head = this.head,\n tail = this.tail,\n len = this.len;\n this.reset().uint32(len);\n if (len) {\n this.tail.next = head.next; // skip noop\n this.tail = tail;\n this.len += len;\n }\n return this;\n};\n\n/**\n * Finishes the write operation.\n * @returns {Uint8Array} Finished buffer\n */\nWriter.prototype.finish = function finish() {\n var head = this.head.next, // skip noop\n buf = this.constructor.alloc(this.len),\n pos = 0;\n while (head) {\n head.fn(head.val, buf, pos);\n pos += head.len;\n head = head.next;\n }\n // this.head = this.tail = null;\n return buf;\n};\n\nWriter._configure = function(BufferWriter_) {\n BufferWriter = BufferWriter_;\n Writer.create = create();\n BufferWriter._configure();\n};\n","\"use strict\";\nmodule.exports = BufferWriter;\n\n// extends Writer\nvar Writer = require(\"./writer\");\n(BufferWriter.prototype = Object.create(Writer.prototype)).constructor = BufferWriter;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer writer instance.\n * @classdesc Wire format writer using node buffers.\n * @extends Writer\n * @constructor\n */\nfunction BufferWriter() {\n Writer.call(this);\n}\n\nBufferWriter._configure = function () {\n /**\n * Allocates a buffer of the specified size.\n * @function\n * @param {number} size Buffer size\n * @returns {Buffer} Buffer\n */\n BufferWriter.alloc = util._Buffer_allocUnsafe;\n\n BufferWriter.writeBytesBuffer = util.Buffer && util.Buffer.prototype instanceof Uint8Array && util.Buffer.prototype.set.name === \"set\"\n ? function writeBytesBuffer_set(val, buf, pos) {\n buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited)\n // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytesBuffer_copy(val, buf, pos) {\n if (val.copy) // Buffer values\n val.copy(buf, pos, 0, val.length);\n else for (var i = 0; i < val.length;) // plain array values\n buf[pos++] = val[i++];\n };\n};\n\n\n/**\n * @override\n */\nBufferWriter.prototype.bytes = function write_bytes_buffer(value) {\n if (util.isString(value))\n value = util._Buffer_from(value, \"base64\");\n var len = value.length >>> 0;\n this.uint32(len);\n if (len)\n this._push(BufferWriter.writeBytesBuffer, len, value);\n return this;\n};\n\nfunction writeStringBuffer(val, buf, pos) {\n if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions)\n util.utf8.write(val, buf, pos);\n else if (buf.utf8Write)\n buf.utf8Write(val, pos);\n else\n buf.write(val, pos);\n}\n\n/**\n * @override\n */\nBufferWriter.prototype.string = function write_string_buffer(value) {\n var len = util.Buffer.byteLength(value);\n this.uint32(len);\n if (len)\n this._push(writeStringBuffer, len, value);\n return this;\n};\n\n\n/**\n * Finishes the write operation.\n * @name BufferWriter#finish\n * @function\n * @returns {Buffer} Finished buffer\n */\n\nBufferWriter._configure();\n","\"use strict\";\nmodule.exports = Reader;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferReader; // cyclic\n\nvar LongBits = util.LongBits,\n utf8 = util.utf8;\n\n/* istanbul ignore next */\nfunction indexOutOfRange(reader, writeLength) {\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\n}\n\n/**\n * Constructs a new reader instance using the specified buffer.\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n * @param {Uint8Array} buffer Buffer to read from\n */\nfunction Reader(buffer) {\n\n /**\n * Read buffer.\n * @type {Uint8Array}\n */\n this.buf = buffer;\n\n /**\n * Read buffer position.\n * @type {number}\n */\n this.pos = 0;\n\n /**\n * Read buffer length.\n * @type {number}\n */\n this.len = buffer.length;\n}\n\nvar create_array = typeof Uint8Array !== \"undefined\"\n ? function create_typed_array(buffer) {\n if (buffer instanceof Uint8Array || Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n }\n /* istanbul ignore next */\n : function create_array(buffer) {\n if (Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n };\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup(buffer) {\n return (Reader.create = function create_buffer(buffer) {\n return util.Buffer.isBuffer(buffer)\n ? new BufferReader(buffer)\n /* istanbul ignore next */\n : create_array(buffer);\n })(buffer);\n }\n /* istanbul ignore next */\n : create_array;\n};\n\n/**\n * Creates a new reader using the specified buffer.\n * @function\n * @param {Uint8Array|Buffer} buffer Buffer to read from\n * @returns {Reader|BufferReader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\n * @throws {Error} If `buffer` is not a valid buffer\n */\nReader.create = create();\n\nReader.prototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice;\n\n/**\n * Reads a varint as an unsigned 32 bit value.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.uint32 = (function read_uint32_setup() {\n var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!)\n return function read_uint32() {\n value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\n\n /* istanbul ignore if */\n if ((this.pos += 5) > this.len) {\n this.pos = this.len;\n throw indexOutOfRange(this, 10);\n }\n return value;\n };\n})();\n\n/**\n * Reads a varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.int32 = function read_int32() {\n return this.uint32() | 0;\n};\n\n/**\n * Reads a zig-zag encoded varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.sint32 = function read_sint32() {\n var value = this.uint32();\n return value >>> 1 ^ -(value & 1) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readLongVarint() {\n // tends to deopt with local vars for octet etc.\n var bits = new LongBits(0, 0);\n var i = 0;\n if (this.len - this.pos > 4) { // fast route (lo)\n for (; i < 4; ++i) {\n // 1st..4th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 5th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n i = 0;\n } else {\n for (; i < 3; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 1st..3th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 4th\n bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0;\n return bits;\n }\n if (this.len - this.pos > 4) { // fast route (hi)\n for (; i < 5; ++i) {\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n } else {\n for (; i < 5; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n }\n /* istanbul ignore next */\n throw Error(\"invalid varint encoding\");\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads a varint as a signed 64 bit value.\n * @name Reader#int64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as an unsigned 64 bit value.\n * @name Reader#uint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a zig-zag encoded varint as a signed 64 bit value.\n * @name Reader#sint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as a boolean.\n * @returns {boolean} Value read\n */\nReader.prototype.bool = function read_bool() {\n return this.uint32() !== 0;\n};\n\nfunction readFixed32_end(buf, end) { // note that this uses `end`, not `pos`\n return (buf[end - 4]\n | buf[end - 3] << 8\n | buf[end - 2] << 16\n | buf[end - 1] << 24) >>> 0;\n}\n\n/**\n * Reads fixed 32 bits as an unsigned 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.fixed32 = function read_fixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4);\n};\n\n/**\n * Reads fixed 32 bits as a signed 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.sfixed32 = function read_sfixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readFixed64(/* this: Reader */) {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 8);\n\n return new LongBits(readFixed32_end(this.buf, this.pos += 4), readFixed32_end(this.buf, this.pos += 4));\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads fixed 64 bits.\n * @name Reader#fixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads zig-zag encoded fixed 64 bits.\n * @name Reader#sfixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a float (32 bit) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.float = function read_float() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readFloatLE(this.buf, this.pos);\n this.pos += 4;\n return value;\n};\n\n/**\n * Reads a double (64 bit float) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.double = function read_double() {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readDoubleLE(this.buf, this.pos);\n this.pos += 8;\n return value;\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @returns {Uint8Array} Value read\n */\nReader.prototype.bytes = function read_bytes() {\n var length = this.uint32(),\n start = this.pos,\n end = this.pos + length;\n\n /* istanbul ignore if */\n if (end > this.len)\n throw indexOutOfRange(this, length);\n\n this.pos += length;\n if (Array.isArray(this.buf)) // plain array\n return this.buf.slice(start, end);\n\n if (start === end) { // fix for IE 10/Win8 and others' subarray returning array of size 1\n var nativeBuffer = util.Buffer;\n return nativeBuffer\n ? nativeBuffer.alloc(0)\n : new this.buf.constructor(0);\n }\n return this._slice.call(this.buf, start, end);\n};\n\n/**\n * Reads a string preceeded by its byte length as a varint.\n * @returns {string} Value read\n */\nReader.prototype.string = function read_string() {\n var bytes = this.bytes();\n return utf8.read(bytes, 0, bytes.length);\n};\n\n/**\n * Skips the specified number of bytes if specified, otherwise skips a varint.\n * @param {number} [length] Length if known, otherwise a varint is assumed\n * @returns {Reader} `this`\n */\nReader.prototype.skip = function skip(length) {\n if (typeof length === \"number\") {\n /* istanbul ignore if */\n if (this.pos + length > this.len)\n throw indexOutOfRange(this, length);\n this.pos += length;\n } else {\n do {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n } while (this.buf[this.pos++] & 128);\n }\n return this;\n};\n\n/**\n * Skips the next element of the specified wire type.\n * @param {number} wireType Wire type received\n * @returns {Reader} `this`\n */\nReader.prototype.skipType = function(wireType) {\n switch (wireType) {\n case 0:\n this.skip();\n break;\n case 1:\n this.skip(8);\n break;\n case 2:\n this.skip(this.uint32());\n break;\n case 3:\n while ((wireType = this.uint32() & 7) !== 4) {\n this.skipType(wireType);\n }\n break;\n case 5:\n this.skip(4);\n break;\n\n /* istanbul ignore next */\n default:\n throw Error(\"invalid wire type \" + wireType + \" at offset \" + this.pos);\n }\n return this;\n};\n\nReader._configure = function(BufferReader_) {\n BufferReader = BufferReader_;\n Reader.create = create();\n BufferReader._configure();\n\n var fn = util.Long ? \"toLong\" : /* istanbul ignore next */ \"toNumber\";\n util.merge(Reader.prototype, {\n\n int64: function read_int64() {\n return readLongVarint.call(this)[fn](false);\n },\n\n uint64: function read_uint64() {\n return readLongVarint.call(this)[fn](true);\n },\n\n sint64: function read_sint64() {\n return readLongVarint.call(this).zzDecode()[fn](false);\n },\n\n fixed64: function read_fixed64() {\n return readFixed64.call(this)[fn](true);\n },\n\n sfixed64: function read_sfixed64() {\n return readFixed64.call(this)[fn](false);\n }\n\n });\n};\n","\"use strict\";\nmodule.exports = BufferReader;\n\n// extends Reader\nvar Reader = require(\"./reader\");\n(BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer reader instance.\n * @classdesc Wire format reader using node buffers.\n * @extends Reader\n * @constructor\n * @param {Buffer} buffer Buffer to read from\n */\nfunction BufferReader(buffer) {\n Reader.call(this, buffer);\n\n /**\n * Read buffer.\n * @name BufferReader#buf\n * @type {Buffer}\n */\n}\n\nBufferReader._configure = function () {\n /* istanbul ignore else */\n if (util.Buffer)\n BufferReader.prototype._slice = util.Buffer.prototype.slice;\n};\n\n\n/**\n * @override\n */\nBufferReader.prototype.string = function read_string_buffer() {\n var len = this.uint32(); // modifies pos\n return this.buf.utf8Slice\n ? this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len))\n : this.buf.toString(\"utf-8\", this.pos, this.pos = Math.min(this.pos + len, this.len));\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @name BufferReader#bytes\n * @function\n * @returns {Buffer} Value read\n */\n\nBufferReader._configure();\n","\"use strict\";\nmodule.exports = Service;\n\nvar util = require(\"../util/minimal\");\n\n// Extends EventEmitter\n(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service;\n\n/**\n * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}.\n *\n * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`.\n * @typedef rpc.ServiceMethodCallback\n * @template TRes extends Message\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {TRes} [response] Response message\n * @returns {undefined}\n */\n\n/**\n * A service method part of a {@link rpc.Service} as created by {@link Service.create}.\n * @typedef rpc.ServiceMethod\n * @template TReq extends Message\n * @template TRes extends Message\n * @type {function}\n * @param {TReq|Properties} request Request message or plain object\n * @param {rpc.ServiceMethodCallback} [callback] Node-style callback called with the error, if any, and the response message\n * @returns {Promise>} Promise if `callback` has been omitted, otherwise `undefined`\n */\n\n/**\n * Constructs a new RPC service instance.\n * @classdesc An RPC service as returned by {@link Service#create}.\n * @exports rpc.Service\n * @extends util.EventEmitter\n * @constructor\n * @param {RPCImpl} rpcImpl RPC implementation\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\n */\nfunction Service(rpcImpl, requestDelimited, responseDelimited) {\n\n if (typeof rpcImpl !== \"function\")\n throw TypeError(\"rpcImpl must be a function\");\n\n util.EventEmitter.call(this);\n\n /**\n * RPC implementation. Becomes `null` once the service is ended.\n * @type {RPCImpl|null}\n */\n this.rpcImpl = rpcImpl;\n\n /**\n * Whether requests are length-delimited.\n * @type {boolean}\n */\n this.requestDelimited = Boolean(requestDelimited);\n\n /**\n * Whether responses are length-delimited.\n * @type {boolean}\n */\n this.responseDelimited = Boolean(responseDelimited);\n}\n\n/**\n * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}.\n * @param {Method|rpc.ServiceMethod} method Reflected or static method\n * @param {Constructor} requestCtor Request constructor\n * @param {Constructor} responseCtor Response constructor\n * @param {TReq|Properties} request Request message or plain object\n * @param {rpc.ServiceMethodCallback} callback Service callback\n * @returns {undefined}\n * @template TReq extends Message\n * @template TRes extends Message\n */\nService.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) {\n\n if (!request)\n throw TypeError(\"request must be specified\");\n\n var self = this;\n if (!callback)\n return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request);\n\n if (!self.rpcImpl) {\n setTimeout(function() { callback(Error(\"already ended\")); }, 0);\n return undefined;\n }\n\n try {\n return self.rpcImpl(\n method,\n requestCtor[self.requestDelimited ? \"encodeDelimited\" : \"encode\"](request).finish(),\n function rpcCallback(err, response) {\n\n if (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n\n if (response === null) {\n self.end(/* endedByRPC */ true);\n return undefined;\n }\n\n if (!(response instanceof responseCtor)) {\n try {\n response = responseCtor[self.responseDelimited ? \"decodeDelimited\" : \"decode\"](response);\n } catch (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n }\n\n self.emit(\"data\", response, method);\n return callback(null, response);\n }\n );\n } catch (err) {\n self.emit(\"error\", err, method);\n setTimeout(function() { callback(err); }, 0);\n return undefined;\n }\n};\n\n/**\n * Ends this service and emits the `end` event.\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\n * @returns {rpc.Service} `this`\n */\nService.prototype.end = function end(endedByRPC) {\n if (this.rpcImpl) {\n if (!endedByRPC) // signal end to rpcImpl\n this.rpcImpl(null, null, null);\n this.rpcImpl = null;\n this.emit(\"end\").off();\n }\n return this;\n};\n","\"use strict\";\n\n/**\n * Streaming RPC helpers.\n * @namespace\n */\nvar rpc = exports;\n\n/**\n * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets.\n * @typedef RPCImpl\n * @type {function}\n * @param {Method|rpc.ServiceMethod,Message<{}>>} method Reflected or static method being called\n * @param {Uint8Array} requestData Request data\n * @param {RPCImplCallback} callback Callback function\n * @returns {undefined}\n * @example\n * function rpcImpl(method, requestData, callback) {\n * if (protobuf.util.lcFirst(method.name) !== \"myMethod\") // compatible with static code\n * throw Error(\"no such method\");\n * asynchronouslyObtainAResponse(requestData, function(err, responseData) {\n * callback(err, responseData);\n * });\n * }\n */\n\n/**\n * Node-style callback as used by {@link RPCImpl}.\n * @typedef RPCImplCallback\n * @type {function}\n * @param {Error|null} error Error, if any, otherwise `null`\n * @param {Uint8Array|null} [response] Response data or `null` to signal end of stream, if there hasn't been an error\n * @returns {undefined}\n */\n\nrpc.Service = require(\"./rpc/service\");\n","\"use strict\";\nmodule.exports = {};\n\n/**\n * Named roots.\n * This is where pbjs stores generated structures (the option `-r, --root` specifies a name).\n * Can also be used manually to make roots available across modules.\n * @name roots\n * @type {Object.}\n * @example\n * // pbjs -r myroot -o compiled.js ...\n *\n * // in another module:\n * require(\"./compiled.js\");\n *\n * // in any subsequent module:\n * var root = protobuf.roots[\"myroot\"];\n */\n","\"use strict\";\nvar protobuf = exports;\n\n/**\n * Build type, one of `\"full\"`, `\"light\"` or `\"minimal\"`.\n * @name build\n * @type {string}\n * @const\n */\nprotobuf.build = \"minimal\";\n\n// Serialization\nprotobuf.Writer = require(\"./writer\");\nprotobuf.BufferWriter = require(\"./writer_buffer\");\nprotobuf.Reader = require(\"./reader\");\nprotobuf.BufferReader = require(\"./reader_buffer\");\n\n// Utility\nprotobuf.util = require(\"./util/minimal\");\nprotobuf.rpc = require(\"./rpc\");\nprotobuf.roots = require(\"./roots\");\nprotobuf.configure = configure;\n\n/* istanbul ignore next */\n/**\n * Reconfigures the library according to the environment.\n * @returns {undefined}\n */\nfunction configure() {\n protobuf.util._configure();\n protobuf.Writer._configure(protobuf.BufferWriter);\n protobuf.Reader._configure(protobuf.BufferReader);\n}\n\n// Set up buffer utility according to the environment\nconfigure();\n","// minimal library entry point.\n\n\"use strict\";\nmodule.exports = require(\"./src/index-minimal\");\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.proto=exports.google=exports.default=exports.com=void 0;var $protobuf=_interopRequireWildcard(require(\"protobufjs/minimal\"));function _getRequireWildcardCache(e){if(\"function\"!=typeof WeakMap)return null;var r=new WeakMap(),t=new WeakMap();return(_getRequireWildcardCache=function(e){return e?t:r;})(e);}function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||\"object\"!=typeof e&&\"function\"!=typeof e)return{default:e};var t=_getRequireWildcardCache(r);if(t&&t.has(e))return t.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if(\"default\"!==u&&{}.hasOwnProperty.call(e,u)){var i=a?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u];}return n.default=e,t&&t.set(e,n),n;}const $Reader=$protobuf.Reader,$Writer=$protobuf.Writer,$util=$protobuf.util;const $root=exports.default=$protobuf.roots.hashgraph||($protobuf.roots.hashgraph={});const com=exports.com=$root.com=(()=>{const com={};com.hedera=function(){const hedera={};hedera.mirror=function(){const mirror={};mirror.api=function(){const api={};api.proto=function(){const proto={};proto.ConsensusTopicQuery=function(){function ConsensusTopicQuery(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.topicID=$root.proto.TopicID.decode(r,r.uint32());break;}case 2:{m.consensusStartTime=$root.proto.Timestamp.decode(r,r.uint32());break;}case 3:{m.consensusEndTime=$root.proto.Timestamp.decode(r,r.uint32());break;}case 4:{m.limit=r.uint64();break;}default:r.skipType(t&7);break;}}return m;};ConsensusTopicQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.mirror.api.proto.ConsensusTopicQuery\";};return ConsensusTopicQuery;}();proto.ConsensusTopicResponse=function(){function ConsensusTopicResponse(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.consensusTimestamp=$root.proto.Timestamp.decode(r,r.uint32());break;}case 2:{m.message=r.bytes();break;}case 3:{m.runningHash=r.bytes();break;}case 4:{m.sequenceNumber=r.uint64();break;}case 5:{m.runningHashVersion=r.uint64();break;}case 6:{m.chunkInfo=$root.proto.ConsensusMessageChunkInfo.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};ConsensusTopicResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.mirror.api.proto.ConsensusTopicResponse\";};return ConsensusTopicResponse;}();proto.ConsensusService=function(){function ConsensusService(rpcImpl,requestDelimited,responseDelimited){$protobuf.rpc.Service.call(this,rpcImpl,requestDelimited,responseDelimited);}(ConsensusService.prototype=Object.create($protobuf.rpc.Service.prototype)).constructor=ConsensusService;ConsensusService.create=function create(rpcImpl,requestDelimited,responseDelimited){return new this(rpcImpl,requestDelimited,responseDelimited);};Object.defineProperty(ConsensusService.prototype.subscribeTopic=function subscribeTopic(request,callback){return this.rpcCall(subscribeTopic,$root.com.hedera.mirror.api.proto.ConsensusTopicQuery,$root.com.hedera.mirror.api.proto.ConsensusTopicResponse,request,callback);},\"name\",{value:\"subscribeTopic\"});return ConsensusService;}();proto.AddressBookQuery=function(){function AddressBookQuery(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.fileId=$root.proto.FileID.decode(r,r.uint32());break;}case 2:{m.limit=r.int32();break;}default:r.skipType(t&7);break;}}return m;};AddressBookQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.mirror.api.proto.AddressBookQuery\";};return AddressBookQuery;}();proto.NetworkService=function(){function NetworkService(rpcImpl,requestDelimited,responseDelimited){$protobuf.rpc.Service.call(this,rpcImpl,requestDelimited,responseDelimited);}(NetworkService.prototype=Object.create($protobuf.rpc.Service.prototype)).constructor=NetworkService;NetworkService.create=function create(rpcImpl,requestDelimited,responseDelimited){return new this(rpcImpl,requestDelimited,responseDelimited);};Object.defineProperty(NetworkService.prototype.getNodes=function getNodes(request,callback){return this.rpcCall(getNodes,$root.com.hedera.mirror.api.proto.AddressBookQuery,$root.proto.NodeAddress,request,callback);},\"name\",{value:\"getNodes\"});return NetworkService;}();return proto;}();return api;}();return mirror;}();hedera.hapi=function(){const hapi={};hapi.node=function(){const node={};node.addressbook=function(){const addressbook={};addressbook.NodeCreateTransactionBody=function(){function NodeCreateTransactionBody(p){this.gossipEndpoint=[];this.serviceEndpoint=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.accountId=$root.proto.AccountID.decode(r,r.uint32());break;}case 2:{m.description=r.string();break;}case 3:{if(!(m.gossipEndpoint&&m.gossipEndpoint.length))m.gossipEndpoint=[];m.gossipEndpoint.push($root.proto.ServiceEndpoint.decode(r,r.uint32()));break;}case 4:{if(!(m.serviceEndpoint&&m.serviceEndpoint.length))m.serviceEndpoint=[];m.serviceEndpoint.push($root.proto.ServiceEndpoint.decode(r,r.uint32()));break;}case 5:{m.gossipCaCertificate=r.bytes();break;}case 6:{m.grpcCertificateHash=r.bytes();break;}case 7:{m.adminKey=$root.proto.Key.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};NodeCreateTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.hapi.node.addressbook.NodeCreateTransactionBody\";};return NodeCreateTransactionBody;}();addressbook.NodeUpdateTransactionBody=function(){function NodeUpdateTransactionBody(p){this.gossipEndpoint=[];this.serviceEndpoint=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.nodeId=r.uint64();break;}case 2:{m.accountId=$root.proto.AccountID.decode(r,r.uint32());break;}case 3:{m.description=$root.google.protobuf.StringValue.decode(r,r.uint32());break;}case 4:{if(!(m.gossipEndpoint&&m.gossipEndpoint.length))m.gossipEndpoint=[];m.gossipEndpoint.push($root.proto.ServiceEndpoint.decode(r,r.uint32()));break;}case 5:{if(!(m.serviceEndpoint&&m.serviceEndpoint.length))m.serviceEndpoint=[];m.serviceEndpoint.push($root.proto.ServiceEndpoint.decode(r,r.uint32()));break;}case 6:{m.gossipCaCertificate=$root.google.protobuf.BytesValue.decode(r,r.uint32());break;}case 7:{m.grpcCertificateHash=$root.google.protobuf.BytesValue.decode(r,r.uint32());break;}case 8:{m.adminKey=$root.proto.Key.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};NodeUpdateTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.hapi.node.addressbook.NodeUpdateTransactionBody\";};return NodeUpdateTransactionBody;}();addressbook.NodeDeleteTransactionBody=function(){function NodeDeleteTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.nodeId=r.uint64();break;}default:r.skipType(t&7);break;}}return m;};NodeDeleteTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.hapi.node.addressbook.NodeDeleteTransactionBody\";};return NodeDeleteTransactionBody;}();return addressbook;}();return node;}();hapi.services=function(){const services={};services.auxiliary=function(){const auxiliary={};auxiliary.tss=function(){const tss={};tss.TssMessageTransactionBody=function(){function TssMessageTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.sourceRosterHash=r.bytes();break;}case 2:{m.targetRosterHash=r.bytes();break;}case 3:{m.shareIndex=r.uint64();break;}case 4:{m.tssMessage=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};TssMessageTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.hapi.services.auxiliary.tss.TssMessageTransactionBody\";};return TssMessageTransactionBody;}();tss.TssVoteTransactionBody=function(){function TssVoteTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.sourceRosterHash=r.bytes();break;}case 2:{m.targetRosterHash=r.bytes();break;}case 3:{m.ledgerId=r.bytes();break;}case 4:{m.nodeSignature=r.bytes();break;}case 5:{m.tssVote=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};TssVoteTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.hapi.services.auxiliary.tss.TssVoteTransactionBody\";};return TssVoteTransactionBody;}();tss.TssShareSignatureTransactionBody=function(){function TssShareSignatureTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.rosterHash=r.bytes();break;}case 2:{m.shareIndex=r.uint64();break;}case 3:{m.messageHash=r.bytes();break;}case 4:{m.shareSignature=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};TssShareSignatureTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.hapi.services.auxiliary.tss.TssShareSignatureTransactionBody\";};return TssShareSignatureTransactionBody;}();tss.TssEncryptionKeyTransactionBody=function(){function TssEncryptionKeyTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.publicTssEncryptionKey=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};TssEncryptionKeyTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.hapi.services.auxiliary.tss.TssEncryptionKeyTransactionBody\";};return TssEncryptionKeyTransactionBody;}();return tss;}();return auxiliary;}();return services;}();hapi.platform=function(){const platform={};platform.event=function(){const event={};event.EventConsensusData=function(){function EventConsensusData(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.consensusTimestamp=$root.proto.Timestamp.decode(r,r.uint32());break;}case 2:{m.consensusOrder=r.uint64();break;}default:r.skipType(t&7);break;}}return m;};EventConsensusData.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.hapi.platform.event.EventConsensusData\";};return EventConsensusData;}();event.EventCore=function(){function EventCore(p){this.parents=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.creatorNodeId=r.int64();break;}case 2:{m.birthRound=r.int64();break;}case 3:{m.timeCreated=$root.proto.Timestamp.decode(r,r.uint32());break;}case 4:{if(!(m.parents&&m.parents.length))m.parents=[];m.parents.push($root.com.hedera.hapi.platform.event.EventDescriptor.decode(r,r.uint32()));break;}case 17:{m.version=$root.proto.SemanticVersion.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};EventCore.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.hapi.platform.event.EventCore\";};return EventCore;}();event.EventDescriptor=function(){function EventDescriptor(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.hash=r.bytes();break;}case 2:{m.creatorNodeId=r.int64();break;}case 3:{m.birthRound=r.int64();break;}case 17:{m.generation=r.int64();break;}default:r.skipType(t&7);break;}}return m;};EventDescriptor.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.hapi.platform.event.EventDescriptor\";};return EventDescriptor;}();event.EventTransaction=function(){function EventTransaction(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.applicationTransaction=r.bytes();break;}case 2:{m.stateSignatureTransaction=$root.com.hedera.hapi.platform.event.StateSignatureTransaction.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};EventTransaction.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.hapi.platform.event.EventTransaction\";};return EventTransaction;}();event.GossipEvent=function(){function GossipEvent(p){this.eventTransaction=[];this.transactions=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.eventCore=$root.com.hedera.hapi.platform.event.EventCore.decode(r,r.uint32());break;}case 2:{m.signature=r.bytes();break;}case 3:{if(!(m.eventTransaction&&m.eventTransaction.length))m.eventTransaction=[];m.eventTransaction.push($root.com.hedera.hapi.platform.event.EventTransaction.decode(r,r.uint32()));break;}case 4:{if(!(m.transactions&&m.transactions.length))m.transactions=[];m.transactions.push(r.bytes());break;}default:r.skipType(t&7);break;}}return m;};GossipEvent.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.hapi.platform.event.GossipEvent\";};return GossipEvent;}();event.StateSignatureTransaction=function(){function StateSignatureTransaction(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.round=r.int64();break;}case 2:{m.signature=r.bytes();break;}case 3:{m.hash=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};StateSignatureTransaction.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.hapi.platform.event.StateSignatureTransaction\";};return StateSignatureTransaction;}();return event;}();return platform;}();return hapi;}();return hedera;}();return com;})();const proto=exports.proto=$root.proto=(()=>{const proto={};proto.TransactionList=function(){function TransactionList(p){this.transactionList=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{if(!(m.transactionList&&m.transactionList.length))m.transactionList=[];m.transactionList.push($root.proto.Transaction.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};TransactionList.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TransactionList\";};return TransactionList;}();proto.AddressBookService=function(){function AddressBookService(rpcImpl,requestDelimited,responseDelimited){$protobuf.rpc.Service.call(this,rpcImpl,requestDelimited,responseDelimited);}(AddressBookService.prototype=Object.create($protobuf.rpc.Service.prototype)).constructor=AddressBookService;AddressBookService.create=function create(rpcImpl,requestDelimited,responseDelimited){return new this(rpcImpl,requestDelimited,responseDelimited);};Object.defineProperty(AddressBookService.prototype.createNode=function createNode(request,callback){return this.rpcCall(createNode,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"createNode\"});Object.defineProperty(AddressBookService.prototype.deleteNode=function deleteNode(request,callback){return this.rpcCall(deleteNode,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"deleteNode\"});Object.defineProperty(AddressBookService.prototype.updateNode=function updateNode(request,callback){return this.rpcCall(updateNode,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"updateNode\"});return AddressBookService;}();proto.Query=function(){function Query(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.getByKey=$root.proto.GetByKeyQuery.decode(r,r.uint32());break;}case 2:{m.getBySolidityID=$root.proto.GetBySolidityIDQuery.decode(r,r.uint32());break;}case 3:{m.contractCallLocal=$root.proto.ContractCallLocalQuery.decode(r,r.uint32());break;}case 4:{m.contractGetInfo=$root.proto.ContractGetInfoQuery.decode(r,r.uint32());break;}case 5:{m.contractGetBytecode=$root.proto.ContractGetBytecodeQuery.decode(r,r.uint32());break;}case 6:{m.ContractGetRecords=$root.proto.ContractGetRecordsQuery.decode(r,r.uint32());break;}case 7:{m.cryptogetAccountBalance=$root.proto.CryptoGetAccountBalanceQuery.decode(r,r.uint32());break;}case 8:{m.cryptoGetAccountRecords=$root.proto.CryptoGetAccountRecordsQuery.decode(r,r.uint32());break;}case 9:{m.cryptoGetInfo=$root.proto.CryptoGetInfoQuery.decode(r,r.uint32());break;}case 10:{m.cryptoGetLiveHash=$root.proto.CryptoGetLiveHashQuery.decode(r,r.uint32());break;}case 11:{m.cryptoGetProxyStakers=$root.proto.CryptoGetStakersQuery.decode(r,r.uint32());break;}case 12:{m.fileGetContents=$root.proto.FileGetContentsQuery.decode(r,r.uint32());break;}case 13:{m.fileGetInfo=$root.proto.FileGetInfoQuery.decode(r,r.uint32());break;}case 14:{m.transactionGetReceipt=$root.proto.TransactionGetReceiptQuery.decode(r,r.uint32());break;}case 15:{m.transactionGetRecord=$root.proto.TransactionGetRecordQuery.decode(r,r.uint32());break;}case 16:{m.transactionGetFastRecord=$root.proto.TransactionGetFastRecordQuery.decode(r,r.uint32());break;}case 50:{m.consensusGetTopicInfo=$root.proto.ConsensusGetTopicInfoQuery.decode(r,r.uint32());break;}case 51:{m.networkGetVersionInfo=$root.proto.NetworkGetVersionInfoQuery.decode(r,r.uint32());break;}case 52:{m.tokenGetInfo=$root.proto.TokenGetInfoQuery.decode(r,r.uint32());break;}case 53:{m.scheduleGetInfo=$root.proto.ScheduleGetInfoQuery.decode(r,r.uint32());break;}case 54:{m.tokenGetAccountNftInfos=$root.proto.TokenGetAccountNftInfosQuery.decode(r,r.uint32());break;}case 55:{m.tokenGetNftInfo=$root.proto.TokenGetNftInfoQuery.decode(r,r.uint32());break;}case 56:{m.tokenGetNftInfos=$root.proto.TokenGetNftInfosQuery.decode(r,r.uint32());break;}case 57:{m.networkGetExecutionTime=$root.proto.NetworkGetExecutionTimeQuery.decode(r,r.uint32());break;}case 58:{m.accountDetails=$root.proto.GetAccountDetailsQuery.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};Query.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.Query\";};return Query;}();proto.GetByKeyQuery=function(){function GetByKeyQuery(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.QueryHeader.decode(r,r.uint32());break;}case 2:{m.key=$root.proto.Key.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};GetByKeyQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.GetByKeyQuery\";};return GetByKeyQuery;}();proto.EntityID=function(){function EntityID(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.accountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 2:{m.liveHash=$root.proto.LiveHash.decode(r,r.uint32());break;}case 3:{m.fileID=$root.proto.FileID.decode(r,r.uint32());break;}case 4:{m.contractID=$root.proto.ContractID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};EntityID.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.EntityID\";};return EntityID;}();proto.GetByKeyResponse=function(){function GetByKeyResponse(p){this.entities=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.ResponseHeader.decode(r,r.uint32());break;}case 2:{if(!(m.entities&&m.entities.length))m.entities=[];m.entities.push($root.proto.EntityID.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};GetByKeyResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.GetByKeyResponse\";};return GetByKeyResponse;}();proto.ShardID=function(){function ShardID(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.shardNum=r.int64();break;}default:r.skipType(t&7);break;}}return m;};ShardID.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ShardID\";};return ShardID;}();proto.RealmID=function(){function RealmID(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.shardNum=r.int64();break;}case 2:{m.realmNum=r.int64();break;}default:r.skipType(t&7);break;}}return m;};RealmID.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.RealmID\";};return RealmID;}();proto.BlockHashAlgorithm=function(){const valuesById={},values=Object.create(valuesById);values[valuesById[0]=\"SHA2_384\"]=0;return values;}();proto.AccountID=function(){function AccountID(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.shardNum=r.int64();break;}case 2:{m.realmNum=r.int64();break;}case 3:{m.accountNum=r.int64();break;}case 4:{m.alias=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};AccountID.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.AccountID\";};return AccountID;}();proto.NftID=function(){function NftID(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.token_ID=$root.proto.TokenID.decode(r,r.uint32());break;}case 2:{m.serialNumber=r.int64();break;}default:r.skipType(t&7);break;}}return m;};NftID.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.NftID\";};return NftID;}();proto.FileID=function(){function FileID(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.shardNum=r.int64();break;}case 2:{m.realmNum=r.int64();break;}case 3:{m.fileNum=r.int64();break;}default:r.skipType(t&7);break;}}return m;};FileID.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.FileID\";};return FileID;}();proto.ContractID=function(){function ContractID(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.shardNum=r.int64();break;}case 2:{m.realmNum=r.int64();break;}case 3:{m.contractNum=r.int64();break;}case 4:{m.evmAddress=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};ContractID.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ContractID\";};return ContractID;}();proto.TransactionID=function(){function TransactionID(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.transactionValidStart=$root.proto.Timestamp.decode(r,r.uint32());break;}case 2:{m.accountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 3:{m.scheduled=r.bool();break;}case 4:{m.nonce=r.int32();break;}default:r.skipType(t&7);break;}}return m;};TransactionID.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TransactionID\";};return TransactionID;}();proto.AccountAmount=function(){function AccountAmount(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.accountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 2:{m.amount=r.sint64();break;}case 3:{m.isApproval=r.bool();break;}default:r.skipType(t&7);break;}}return m;};AccountAmount.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.AccountAmount\";};return AccountAmount;}();proto.TransferList=function(){function TransferList(p){this.accountAmounts=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{if(!(m.accountAmounts&&m.accountAmounts.length))m.accountAmounts=[];m.accountAmounts.push($root.proto.AccountAmount.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};TransferList.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TransferList\";};return TransferList;}();proto.NftTransfer=function(){function NftTransfer(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.senderAccountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 2:{m.receiverAccountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 3:{m.serialNumber=r.int64();break;}case 4:{m.isApproval=r.bool();break;}default:r.skipType(t&7);break;}}return m;};NftTransfer.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.NftTransfer\";};return NftTransfer;}();proto.TokenTransferList=function(){function TokenTransferList(p){this.transfers=[];this.nftTransfers=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.token=$root.proto.TokenID.decode(r,r.uint32());break;}case 2:{if(!(m.transfers&&m.transfers.length))m.transfers=[];m.transfers.push($root.proto.AccountAmount.decode(r,r.uint32()));break;}case 3:{if(!(m.nftTransfers&&m.nftTransfers.length))m.nftTransfers=[];m.nftTransfers.push($root.proto.NftTransfer.decode(r,r.uint32()));break;}case 4:{m.expectedDecimals=$root.google.protobuf.UInt32Value.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};TokenTransferList.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenTransferList\";};return TokenTransferList;}();proto.Fraction=function(){function Fraction(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.numerator=r.int64();break;}case 2:{m.denominator=r.int64();break;}default:r.skipType(t&7);break;}}return m;};Fraction.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.Fraction\";};return Fraction;}();proto.TopicID=function(){function TopicID(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.shardNum=r.int64();break;}case 2:{m.realmNum=r.int64();break;}case 3:{m.topicNum=r.int64();break;}default:r.skipType(t&7);break;}}return m;};TopicID.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TopicID\";};return TopicID;}();proto.TokenID=function(){function TokenID(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.shardNum=r.int64();break;}case 2:{m.realmNum=r.int64();break;}case 3:{m.tokenNum=r.int64();break;}default:r.skipType(t&7);break;}}return m;};TokenID.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenID\";};return TokenID;}();proto.ScheduleID=function(){function ScheduleID(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.shardNum=r.int64();break;}case 2:{m.realmNum=r.int64();break;}case 3:{m.scheduleNum=r.int64();break;}default:r.skipType(t&7);break;}}return m;};ScheduleID.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ScheduleID\";};return ScheduleID;}();proto.TokenType=function(){const valuesById={},values=Object.create(valuesById);values[valuesById[0]=\"FUNGIBLE_COMMON\"]=0;values[valuesById[1]=\"NON_FUNGIBLE_UNIQUE\"]=1;return values;}();proto.SubType=function(){const valuesById={},values=Object.create(valuesById);values[valuesById[0]=\"DEFAULT\"]=0;values[valuesById[1]=\"TOKEN_FUNGIBLE_COMMON\"]=1;values[valuesById[2]=\"TOKEN_NON_FUNGIBLE_UNIQUE\"]=2;values[valuesById[3]=\"TOKEN_FUNGIBLE_COMMON_WITH_CUSTOM_FEES\"]=3;values[valuesById[4]=\"TOKEN_NON_FUNGIBLE_UNIQUE_WITH_CUSTOM_FEES\"]=4;values[valuesById[5]=\"SCHEDULE_CREATE_CONTRACT_CALL\"]=5;return values;}();proto.TokenSupplyType=function(){const valuesById={},values=Object.create(valuesById);values[valuesById[0]=\"INFINITE\"]=0;values[valuesById[1]=\"FINITE\"]=1;return values;}();proto.TokenKeyValidation=function(){const valuesById={},values=Object.create(valuesById);values[valuesById[0]=\"FULL_VALIDATION\"]=0;values[valuesById[1]=\"NO_VALIDATION\"]=1;return values;}();proto.TokenFreezeStatus=function(){const valuesById={},values=Object.create(valuesById);values[valuesById[0]=\"FreezeNotApplicable\"]=0;values[valuesById[1]=\"Frozen\"]=1;values[valuesById[2]=\"Unfrozen\"]=2;return values;}();proto.TokenKycStatus=function(){const valuesById={},values=Object.create(valuesById);values[valuesById[0]=\"KycNotApplicable\"]=0;values[valuesById[1]=\"Granted\"]=1;values[valuesById[2]=\"Revoked\"]=2;return values;}();proto.TokenPauseStatus=function(){const valuesById={},values=Object.create(valuesById);values[valuesById[0]=\"PauseNotApplicable\"]=0;values[valuesById[1]=\"Paused\"]=1;values[valuesById[2]=\"Unpaused\"]=2;return values;}();proto.Key=function(){function Key(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.contractID=$root.proto.ContractID.decode(r,r.uint32());break;}case 2:{m.ed25519=r.bytes();break;}case 3:{m.RSA_3072=r.bytes();break;}case 4:{m.ECDSA_384=r.bytes();break;}case 5:{m.thresholdKey=$root.proto.ThresholdKey.decode(r,r.uint32());break;}case 6:{m.keyList=$root.proto.KeyList.decode(r,r.uint32());break;}case 7:{m.ECDSASecp256k1=r.bytes();break;}case 8:{m.delegatableContractId=$root.proto.ContractID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};Key.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.Key\";};return Key;}();proto.ThresholdKey=function(){function ThresholdKey(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.threshold=r.uint32();break;}case 2:{m.keys=$root.proto.KeyList.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};ThresholdKey.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ThresholdKey\";};return ThresholdKey;}();proto.KeyList=function(){function KeyList(p){this.keys=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{if(!(m.keys&&m.keys.length))m.keys=[];m.keys.push($root.proto.Key.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};KeyList.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.KeyList\";};return KeyList;}();proto.Signature=function(){function Signature(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.contract=r.bytes();break;}case 2:{m.ed25519=r.bytes();break;}case 3:{m.RSA_3072=r.bytes();break;}case 4:{m.ECDSA_384=r.bytes();break;}case 5:{m.thresholdSignature=$root.proto.ThresholdSignature.decode(r,r.uint32());break;}case 6:{m.signatureList=$root.proto.SignatureList.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};Signature.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.Signature\";};return Signature;}();proto.ThresholdSignature=function(){function ThresholdSignature(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 2:{m.sigs=$root.proto.SignatureList.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};ThresholdSignature.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ThresholdSignature\";};return ThresholdSignature;}();proto.SignatureList=function(){function SignatureList(p){this.sigs=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 2:{if(!(m.sigs&&m.sigs.length))m.sigs=[];m.sigs.push($root.proto.Signature.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};SignatureList.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.SignatureList\";};return SignatureList;}();proto.SignaturePair=function(){function SignaturePair(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.pubKeyPrefix=r.bytes();break;}case 2:{m.contract=r.bytes();break;}case 3:{m.ed25519=r.bytes();break;}case 4:{m.RSA_3072=r.bytes();break;}case 5:{m.ECDSA_384=r.bytes();break;}case 6:{m.ECDSASecp256k1=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};SignaturePair.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.SignaturePair\";};return SignaturePair;}();proto.SignatureMap=function(){function SignatureMap(p){this.sigPair=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{if(!(m.sigPair&&m.sigPair.length))m.sigPair=[];m.sigPair.push($root.proto.SignaturePair.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};SignatureMap.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.SignatureMap\";};return SignatureMap;}();proto.HederaFunctionality=function(){const valuesById={},values=Object.create(valuesById);values[valuesById[0]=\"NONE\"]=0;values[valuesById[1]=\"CryptoTransfer\"]=1;values[valuesById[2]=\"CryptoUpdate\"]=2;values[valuesById[3]=\"CryptoDelete\"]=3;values[valuesById[4]=\"CryptoAddLiveHash\"]=4;values[valuesById[5]=\"CryptoDeleteLiveHash\"]=5;values[valuesById[6]=\"ContractCall\"]=6;values[valuesById[7]=\"ContractCreate\"]=7;values[valuesById[8]=\"ContractUpdate\"]=8;values[valuesById[9]=\"FileCreate\"]=9;values[valuesById[10]=\"FileAppend\"]=10;values[valuesById[11]=\"FileUpdate\"]=11;values[valuesById[12]=\"FileDelete\"]=12;values[valuesById[13]=\"CryptoGetAccountBalance\"]=13;values[valuesById[14]=\"CryptoGetAccountRecords\"]=14;values[valuesById[15]=\"CryptoGetInfo\"]=15;values[valuesById[16]=\"ContractCallLocal\"]=16;values[valuesById[17]=\"ContractGetInfo\"]=17;values[valuesById[18]=\"ContractGetBytecode\"]=18;values[valuesById[19]=\"GetBySolidityID\"]=19;values[valuesById[20]=\"GetByKey\"]=20;values[valuesById[21]=\"CryptoGetLiveHash\"]=21;values[valuesById[22]=\"CryptoGetStakers\"]=22;values[valuesById[23]=\"FileGetContents\"]=23;values[valuesById[24]=\"FileGetInfo\"]=24;values[valuesById[25]=\"TransactionGetRecord\"]=25;values[valuesById[26]=\"ContractGetRecords\"]=26;values[valuesById[27]=\"CryptoCreate\"]=27;values[valuesById[28]=\"SystemDelete\"]=28;values[valuesById[29]=\"SystemUndelete\"]=29;values[valuesById[30]=\"ContractDelete\"]=30;values[valuesById[31]=\"Freeze\"]=31;values[valuesById[32]=\"CreateTransactionRecord\"]=32;values[valuesById[33]=\"CryptoAccountAutoRenew\"]=33;values[valuesById[34]=\"ContractAutoRenew\"]=34;values[valuesById[35]=\"GetVersionInfo\"]=35;values[valuesById[36]=\"TransactionGetReceipt\"]=36;values[valuesById[50]=\"ConsensusCreateTopic\"]=50;values[valuesById[51]=\"ConsensusUpdateTopic\"]=51;values[valuesById[52]=\"ConsensusDeleteTopic\"]=52;values[valuesById[53]=\"ConsensusGetTopicInfo\"]=53;values[valuesById[54]=\"ConsensusSubmitMessage\"]=54;values[valuesById[55]=\"UncheckedSubmit\"]=55;values[valuesById[56]=\"TokenCreate\"]=56;values[valuesById[58]=\"TokenGetInfo\"]=58;values[valuesById[59]=\"TokenFreezeAccount\"]=59;values[valuesById[60]=\"TokenUnfreezeAccount\"]=60;values[valuesById[61]=\"TokenGrantKycToAccount\"]=61;values[valuesById[62]=\"TokenRevokeKycFromAccount\"]=62;values[valuesById[63]=\"TokenDelete\"]=63;values[valuesById[64]=\"TokenUpdate\"]=64;values[valuesById[65]=\"TokenMint\"]=65;values[valuesById[66]=\"TokenBurn\"]=66;values[valuesById[67]=\"TokenAccountWipe\"]=67;values[valuesById[68]=\"TokenAssociateToAccount\"]=68;values[valuesById[69]=\"TokenDissociateFromAccount\"]=69;values[valuesById[70]=\"ScheduleCreate\"]=70;values[valuesById[71]=\"ScheduleDelete\"]=71;values[valuesById[72]=\"ScheduleSign\"]=72;values[valuesById[73]=\"ScheduleGetInfo\"]=73;values[valuesById[74]=\"TokenGetAccountNftInfos\"]=74;values[valuesById[75]=\"TokenGetNftInfo\"]=75;values[valuesById[76]=\"TokenGetNftInfos\"]=76;values[valuesById[77]=\"TokenFeeScheduleUpdate\"]=77;values[valuesById[78]=\"NetworkGetExecutionTime\"]=78;values[valuesById[79]=\"TokenPause\"]=79;values[valuesById[80]=\"TokenUnpause\"]=80;values[valuesById[81]=\"CryptoApproveAllowance\"]=81;values[valuesById[82]=\"CryptoDeleteAllowance\"]=82;values[valuesById[83]=\"GetAccountDetails\"]=83;values[valuesById[84]=\"EthereumTransaction\"]=84;values[valuesById[85]=\"NodeStakeUpdate\"]=85;values[valuesById[86]=\"UtilPrng\"]=86;values[valuesById[87]=\"TransactionGetFastRecord\"]=87;values[valuesById[88]=\"TokenUpdateNfts\"]=88;values[valuesById[89]=\"NodeCreate\"]=89;values[valuesById[90]=\"NodeUpdate\"]=90;values[valuesById[91]=\"NodeDelete\"]=91;values[valuesById[92]=\"TokenReject\"]=92;values[valuesById[93]=\"TokenAirdrop\"]=93;values[valuesById[94]=\"TokenCancelAirdrop\"]=94;values[valuesById[95]=\"TokenClaimAirdrop\"]=95;values[valuesById[96]=\"TssMessage\"]=96;values[valuesById[97]=\"TssVote\"]=97;values[valuesById[98]=\"TssShareSignature\"]=98;values[valuesById[99]=\"TssEncryptionKey\"]=99;values[valuesById[100]=\"StateSignatureTransaction\"]=100;return values;}();proto.FeeComponents=function(){function FeeComponents(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.min=r.int64();break;}case 2:{m.max=r.int64();break;}case 3:{m.constant=r.int64();break;}case 4:{m.bpt=r.int64();break;}case 5:{m.vpt=r.int64();break;}case 6:{m.rbh=r.int64();break;}case 7:{m.sbh=r.int64();break;}case 8:{m.gas=r.int64();break;}case 9:{m.tv=r.int64();break;}case 10:{m.bpr=r.int64();break;}case 11:{m.sbpr=r.int64();break;}default:r.skipType(t&7);break;}}return m;};FeeComponents.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.FeeComponents\";};return FeeComponents;}();proto.TransactionFeeSchedule=function(){function TransactionFeeSchedule(p){this.fees=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.hederaFunctionality=r.int32();break;}case 2:{m.feeData=$root.proto.FeeData.decode(r,r.uint32());break;}case 3:{if(!(m.fees&&m.fees.length))m.fees=[];m.fees.push($root.proto.FeeData.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};TransactionFeeSchedule.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TransactionFeeSchedule\";};return TransactionFeeSchedule;}();proto.FeeData=function(){function FeeData(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.nodedata=$root.proto.FeeComponents.decode(r,r.uint32());break;}case 2:{m.networkdata=$root.proto.FeeComponents.decode(r,r.uint32());break;}case 3:{m.servicedata=$root.proto.FeeComponents.decode(r,r.uint32());break;}case 4:{m.subType=r.int32();break;}default:r.skipType(t&7);break;}}return m;};FeeData.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.FeeData\";};return FeeData;}();proto.FeeSchedule=function(){function FeeSchedule(p){this.transactionFeeSchedule=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{if(!(m.transactionFeeSchedule&&m.transactionFeeSchedule.length))m.transactionFeeSchedule=[];m.transactionFeeSchedule.push($root.proto.TransactionFeeSchedule.decode(r,r.uint32()));break;}case 2:{m.expiryTime=$root.proto.TimestampSeconds.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};FeeSchedule.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.FeeSchedule\";};return FeeSchedule;}();proto.CurrentAndNextFeeSchedule=function(){function CurrentAndNextFeeSchedule(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.currentFeeSchedule=$root.proto.FeeSchedule.decode(r,r.uint32());break;}case 2:{m.nextFeeSchedule=$root.proto.FeeSchedule.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};CurrentAndNextFeeSchedule.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.CurrentAndNextFeeSchedule\";};return CurrentAndNextFeeSchedule;}();proto.ServiceEndpoint=function(){function ServiceEndpoint(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.ipAddressV4=r.bytes();break;}case 2:{m.port=r.int32();break;}case 3:{m.domainName=r.string();break;}default:r.skipType(t&7);break;}}return m;};ServiceEndpoint.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ServiceEndpoint\";};return ServiceEndpoint;}();proto.NodeAddress=function(){function NodeAddress(p){this.serviceEndpoint=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.ipAddress=r.bytes();break;}case 2:{m.portno=r.int32();break;}case 3:{m.memo=r.bytes();break;}case 4:{m.RSA_PubKey=r.string();break;}case 5:{m.nodeId=r.int64();break;}case 6:{m.nodeAccountId=$root.proto.AccountID.decode(r,r.uint32());break;}case 7:{m.nodeCertHash=r.bytes();break;}case 8:{if(!(m.serviceEndpoint&&m.serviceEndpoint.length))m.serviceEndpoint=[];m.serviceEndpoint.push($root.proto.ServiceEndpoint.decode(r,r.uint32()));break;}case 9:{m.description=r.string();break;}case 10:{m.stake=r.int64();break;}default:r.skipType(t&7);break;}}return m;};NodeAddress.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.NodeAddress\";};return NodeAddress;}();proto.NodeAddressBook=function(){function NodeAddressBook(p){this.nodeAddress=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{if(!(m.nodeAddress&&m.nodeAddress.length))m.nodeAddress=[];m.nodeAddress.push($root.proto.NodeAddress.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};NodeAddressBook.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.NodeAddressBook\";};return NodeAddressBook;}();proto.SemanticVersion=function(){function SemanticVersion(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.major=r.int32();break;}case 2:{m.minor=r.int32();break;}case 3:{m.patch=r.int32();break;}case 4:{m.pre=r.string();break;}case 5:{m.build=r.string();break;}default:r.skipType(t&7);break;}}return m;};SemanticVersion.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.SemanticVersion\";};return SemanticVersion;}();proto.Setting=function(){function Setting(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.name=r.string();break;}case 2:{m.value=r.string();break;}case 3:{m.data=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};Setting.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.Setting\";};return Setting;}();proto.ServicesConfigurationList=function(){function ServicesConfigurationList(p){this.nameValue=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{if(!(m.nameValue&&m.nameValue.length))m.nameValue=[];m.nameValue.push($root.proto.Setting.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};ServicesConfigurationList.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ServicesConfigurationList\";};return ServicesConfigurationList;}();proto.TokenRelationship=function(){function TokenRelationship(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.tokenId=$root.proto.TokenID.decode(r,r.uint32());break;}case 2:{m.symbol=r.string();break;}case 3:{m.balance=r.uint64();break;}case 4:{m.kycStatus=r.int32();break;}case 5:{m.freezeStatus=r.int32();break;}case 6:{m.decimals=r.uint32();break;}case 7:{m.automaticAssociation=r.bool();break;}default:r.skipType(t&7);break;}}return m;};TokenRelationship.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenRelationship\";};return TokenRelationship;}();proto.TokenBalance=function(){function TokenBalance(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.tokenId=$root.proto.TokenID.decode(r,r.uint32());break;}case 2:{m.balance=r.uint64();break;}case 3:{m.decimals=r.uint32();break;}default:r.skipType(t&7);break;}}return m;};TokenBalance.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenBalance\";};return TokenBalance;}();proto.TokenBalances=function(){function TokenBalances(p){this.tokenBalances=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{if(!(m.tokenBalances&&m.tokenBalances.length))m.tokenBalances=[];m.tokenBalances.push($root.proto.TokenBalance.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};TokenBalances.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenBalances\";};return TokenBalances;}();proto.TokenAssociation=function(){function TokenAssociation(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.tokenId=$root.proto.TokenID.decode(r,r.uint32());break;}case 2:{m.accountId=$root.proto.AccountID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};TokenAssociation.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenAssociation\";};return TokenAssociation;}();proto.StakingInfo=function(){function StakingInfo(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.declineReward=r.bool();break;}case 2:{m.stakePeriodStart=$root.proto.Timestamp.decode(r,r.uint32());break;}case 3:{m.pendingReward=r.int64();break;}case 4:{m.stakedToMe=r.int64();break;}case 5:{m.stakedAccountId=$root.proto.AccountID.decode(r,r.uint32());break;}case 6:{m.stakedNodeId=r.int64();break;}default:r.skipType(t&7);break;}}return m;};StakingInfo.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.StakingInfo\";};return StakingInfo;}();proto.PendingAirdropId=function(){function PendingAirdropId(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.senderId=$root.proto.AccountID.decode(r,r.uint32());break;}case 2:{m.receiverId=$root.proto.AccountID.decode(r,r.uint32());break;}case 3:{m.fungibleTokenType=$root.proto.TokenID.decode(r,r.uint32());break;}case 4:{m.nonFungibleToken=$root.proto.NftID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};PendingAirdropId.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.PendingAirdropId\";};return PendingAirdropId;}();proto.PendingAirdropValue=function(){function PendingAirdropValue(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.amount=r.uint64();break;}default:r.skipType(t&7);break;}}return m;};PendingAirdropValue.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.PendingAirdropValue\";};return PendingAirdropValue;}();proto.Timestamp=function(){function Timestamp(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.seconds=r.int64();break;}case 2:{m.nanos=r.int32();break;}default:r.skipType(t&7);break;}}return m;};Timestamp.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.Timestamp\";};return Timestamp;}();proto.TimestampSeconds=function(){function TimestampSeconds(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.seconds=r.int64();break;}default:r.skipType(t&7);break;}}return m;};TimestampSeconds.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TimestampSeconds\";};return TimestampSeconds;}();proto.ResponseType=function(){const valuesById={},values=Object.create(valuesById);values[valuesById[0]=\"ANSWER_ONLY\"]=0;values[valuesById[1]=\"ANSWER_STATE_PROOF\"]=1;values[valuesById[2]=\"COST_ANSWER\"]=2;values[valuesById[3]=\"COST_ANSWER_STATE_PROOF\"]=3;return values;}();proto.QueryHeader=function(){function QueryHeader(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.payment=$root.proto.Transaction.decode(r,r.uint32());break;}case 2:{m.responseType=r.int32();break;}default:r.skipType(t&7);break;}}return m;};QueryHeader.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.QueryHeader\";};return QueryHeader;}();proto.Transaction=function(){function Transaction(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.body=$root.proto.TransactionBody.decode(r,r.uint32());break;}case 2:{m.sigs=$root.proto.SignatureList.decode(r,r.uint32());break;}case 3:{m.sigMap=$root.proto.SignatureMap.decode(r,r.uint32());break;}case 4:{m.bodyBytes=r.bytes();break;}case 5:{m.signedTransactionBytes=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};Transaction.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.Transaction\";};return Transaction;}();proto.TransactionBody=function(){function TransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.transactionID=$root.proto.TransactionID.decode(r,r.uint32());break;}case 2:{m.nodeAccountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 3:{m.transactionFee=r.uint64();break;}case 4:{m.transactionValidDuration=$root.proto.Duration.decode(r,r.uint32());break;}case 5:{m.generateRecord=r.bool();break;}case 6:{m.memo=r.string();break;}case 7:{m.contractCall=$root.proto.ContractCallTransactionBody.decode(r,r.uint32());break;}case 8:{m.contractCreateInstance=$root.proto.ContractCreateTransactionBody.decode(r,r.uint32());break;}case 9:{m.contractUpdateInstance=$root.proto.ContractUpdateTransactionBody.decode(r,r.uint32());break;}case 10:{m.cryptoAddLiveHash=$root.proto.CryptoAddLiveHashTransactionBody.decode(r,r.uint32());break;}case 11:{m.cryptoCreateAccount=$root.proto.CryptoCreateTransactionBody.decode(r,r.uint32());break;}case 12:{m.cryptoDelete=$root.proto.CryptoDeleteTransactionBody.decode(r,r.uint32());break;}case 13:{m.cryptoDeleteLiveHash=$root.proto.CryptoDeleteLiveHashTransactionBody.decode(r,r.uint32());break;}case 14:{m.cryptoTransfer=$root.proto.CryptoTransferTransactionBody.decode(r,r.uint32());break;}case 15:{m.cryptoUpdateAccount=$root.proto.CryptoUpdateTransactionBody.decode(r,r.uint32());break;}case 16:{m.fileAppend=$root.proto.FileAppendTransactionBody.decode(r,r.uint32());break;}case 17:{m.fileCreate=$root.proto.FileCreateTransactionBody.decode(r,r.uint32());break;}case 18:{m.fileDelete=$root.proto.FileDeleteTransactionBody.decode(r,r.uint32());break;}case 19:{m.fileUpdate=$root.proto.FileUpdateTransactionBody.decode(r,r.uint32());break;}case 20:{m.systemDelete=$root.proto.SystemDeleteTransactionBody.decode(r,r.uint32());break;}case 21:{m.systemUndelete=$root.proto.SystemUndeleteTransactionBody.decode(r,r.uint32());break;}case 22:{m.contractDeleteInstance=$root.proto.ContractDeleteTransactionBody.decode(r,r.uint32());break;}case 23:{m.freeze=$root.proto.FreezeTransactionBody.decode(r,r.uint32());break;}case 24:{m.consensusCreateTopic=$root.proto.ConsensusCreateTopicTransactionBody.decode(r,r.uint32());break;}case 25:{m.consensusUpdateTopic=$root.proto.ConsensusUpdateTopicTransactionBody.decode(r,r.uint32());break;}case 26:{m.consensusDeleteTopic=$root.proto.ConsensusDeleteTopicTransactionBody.decode(r,r.uint32());break;}case 27:{m.consensusSubmitMessage=$root.proto.ConsensusSubmitMessageTransactionBody.decode(r,r.uint32());break;}case 28:{m.uncheckedSubmit=$root.proto.UncheckedSubmitBody.decode(r,r.uint32());break;}case 29:{m.tokenCreation=$root.proto.TokenCreateTransactionBody.decode(r,r.uint32());break;}case 31:{m.tokenFreeze=$root.proto.TokenFreezeAccountTransactionBody.decode(r,r.uint32());break;}case 32:{m.tokenUnfreeze=$root.proto.TokenUnfreezeAccountTransactionBody.decode(r,r.uint32());break;}case 33:{m.tokenGrantKyc=$root.proto.TokenGrantKycTransactionBody.decode(r,r.uint32());break;}case 34:{m.tokenRevokeKyc=$root.proto.TokenRevokeKycTransactionBody.decode(r,r.uint32());break;}case 35:{m.tokenDeletion=$root.proto.TokenDeleteTransactionBody.decode(r,r.uint32());break;}case 36:{m.tokenUpdate=$root.proto.TokenUpdateTransactionBody.decode(r,r.uint32());break;}case 37:{m.tokenMint=$root.proto.TokenMintTransactionBody.decode(r,r.uint32());break;}case 38:{m.tokenBurn=$root.proto.TokenBurnTransactionBody.decode(r,r.uint32());break;}case 39:{m.tokenWipe=$root.proto.TokenWipeAccountTransactionBody.decode(r,r.uint32());break;}case 40:{m.tokenAssociate=$root.proto.TokenAssociateTransactionBody.decode(r,r.uint32());break;}case 41:{m.tokenDissociate=$root.proto.TokenDissociateTransactionBody.decode(r,r.uint32());break;}case 42:{m.scheduleCreate=$root.proto.ScheduleCreateTransactionBody.decode(r,r.uint32());break;}case 43:{m.scheduleDelete=$root.proto.ScheduleDeleteTransactionBody.decode(r,r.uint32());break;}case 44:{m.scheduleSign=$root.proto.ScheduleSignTransactionBody.decode(r,r.uint32());break;}case 45:{m.tokenFeeScheduleUpdate=$root.proto.TokenFeeScheduleUpdateTransactionBody.decode(r,r.uint32());break;}case 46:{m.tokenPause=$root.proto.TokenPauseTransactionBody.decode(r,r.uint32());break;}case 47:{m.tokenUnpause=$root.proto.TokenUnpauseTransactionBody.decode(r,r.uint32());break;}case 48:{m.cryptoApproveAllowance=$root.proto.CryptoApproveAllowanceTransactionBody.decode(r,r.uint32());break;}case 49:{m.cryptoDeleteAllowance=$root.proto.CryptoDeleteAllowanceTransactionBody.decode(r,r.uint32());break;}case 50:{m.ethereumTransaction=$root.proto.EthereumTransactionBody.decode(r,r.uint32());break;}case 51:{m.nodeStakeUpdate=$root.proto.NodeStakeUpdateTransactionBody.decode(r,r.uint32());break;}case 52:{m.utilPrng=$root.proto.UtilPrngTransactionBody.decode(r,r.uint32());break;}case 53:{m.tokenUpdateNfts=$root.proto.TokenUpdateNftsTransactionBody.decode(r,r.uint32());break;}case 54:{m.nodeCreate=$root.com.hedera.hapi.node.addressbook.NodeCreateTransactionBody.decode(r,r.uint32());break;}case 55:{m.nodeUpdate=$root.com.hedera.hapi.node.addressbook.NodeUpdateTransactionBody.decode(r,r.uint32());break;}case 56:{m.nodeDelete=$root.com.hedera.hapi.node.addressbook.NodeDeleteTransactionBody.decode(r,r.uint32());break;}case 57:{m.tokenReject=$root.proto.TokenRejectTransactionBody.decode(r,r.uint32());break;}case 58:{m.tokenAirdrop=$root.proto.TokenAirdropTransactionBody.decode(r,r.uint32());break;}case 59:{m.tokenCancelAirdrop=$root.proto.TokenCancelAirdropTransactionBody.decode(r,r.uint32());break;}case 60:{m.tokenClaimAirdrop=$root.proto.TokenClaimAirdropTransactionBody.decode(r,r.uint32());break;}case 61:{m.tssMessage=$root.com.hedera.hapi.services.auxiliary.tss.TssMessageTransactionBody.decode(r,r.uint32());break;}case 62:{m.tssVote=$root.com.hedera.hapi.services.auxiliary.tss.TssVoteTransactionBody.decode(r,r.uint32());break;}case 63:{m.tssShareSignature=$root.com.hedera.hapi.services.auxiliary.tss.TssShareSignatureTransactionBody.decode(r,r.uint32());break;}case 64:{m.tssEncryptionKey=$root.com.hedera.hapi.services.auxiliary.tss.TssEncryptionKeyTransactionBody.decode(r,r.uint32());break;}case 65:{m.stateSignatureTransaction=$root.com.hedera.hapi.platform.event.StateSignatureTransaction.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};TransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TransactionBody\";};return TransactionBody;}();proto.SystemDeleteTransactionBody=function(){function SystemDeleteTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.fileID=$root.proto.FileID.decode(r,r.uint32());break;}case 2:{m.contractID=$root.proto.ContractID.decode(r,r.uint32());break;}case 3:{m.expirationTime=$root.proto.TimestampSeconds.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};SystemDeleteTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.SystemDeleteTransactionBody\";};return SystemDeleteTransactionBody;}();proto.SystemUndeleteTransactionBody=function(){function SystemUndeleteTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.fileID=$root.proto.FileID.decode(r,r.uint32());break;}case 2:{m.contractID=$root.proto.ContractID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};SystemUndeleteTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.SystemUndeleteTransactionBody\";};return SystemUndeleteTransactionBody;}();proto.FreezeTransactionBody=function(){function FreezeTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.startHour=r.int32();break;}case 2:{m.startMin=r.int32();break;}case 3:{m.endHour=r.int32();break;}case 4:{m.endMin=r.int32();break;}case 5:{m.updateFile=$root.proto.FileID.decode(r,r.uint32());break;}case 6:{m.fileHash=r.bytes();break;}case 7:{m.startTime=$root.proto.Timestamp.decode(r,r.uint32());break;}case 8:{m.freezeType=r.int32();break;}default:r.skipType(t&7);break;}}return m;};FreezeTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.FreezeTransactionBody\";};return FreezeTransactionBody;}();proto.FreezeType=function(){const valuesById={},values=Object.create(valuesById);values[valuesById[0]=\"UNKNOWN_FREEZE_TYPE\"]=0;values[valuesById[1]=\"FREEZE_ONLY\"]=1;values[valuesById[2]=\"PREPARE_UPGRADE\"]=2;values[valuesById[3]=\"FREEZE_UPGRADE\"]=3;values[valuesById[4]=\"FREEZE_ABORT\"]=4;values[valuesById[5]=\"TELEMETRY_UPGRADE\"]=5;return values;}();proto.ContractCallTransactionBody=function(){function ContractCallTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.contractID=$root.proto.ContractID.decode(r,r.uint32());break;}case 2:{m.gas=r.int64();break;}case 3:{m.amount=r.int64();break;}case 4:{m.functionParameters=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};ContractCallTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ContractCallTransactionBody\";};return ContractCallTransactionBody;}();proto.ContractCreateTransactionBody=function(){function ContractCreateTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.fileID=$root.proto.FileID.decode(r,r.uint32());break;}case 16:{m.initcode=r.bytes();break;}case 3:{m.adminKey=$root.proto.Key.decode(r,r.uint32());break;}case 4:{m.gas=r.int64();break;}case 5:{m.initialBalance=r.int64();break;}case 6:{m.proxyAccountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 8:{m.autoRenewPeriod=$root.proto.Duration.decode(r,r.uint32());break;}case 9:{m.constructorParameters=r.bytes();break;}case 10:{m.shardID=$root.proto.ShardID.decode(r,r.uint32());break;}case 11:{m.realmID=$root.proto.RealmID.decode(r,r.uint32());break;}case 12:{m.newRealmAdminKey=$root.proto.Key.decode(r,r.uint32());break;}case 13:{m.memo=r.string();break;}case 14:{m.maxAutomaticTokenAssociations=r.int32();break;}case 15:{m.autoRenewAccountId=$root.proto.AccountID.decode(r,r.uint32());break;}case 17:{m.stakedAccountId=$root.proto.AccountID.decode(r,r.uint32());break;}case 18:{m.stakedNodeId=r.int64();break;}case 19:{m.declineReward=r.bool();break;}default:r.skipType(t&7);break;}}return m;};ContractCreateTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ContractCreateTransactionBody\";};return ContractCreateTransactionBody;}();proto.Duration=function(){function Duration(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.seconds=r.int64();break;}default:r.skipType(t&7);break;}}return m;};Duration.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.Duration\";};return Duration;}();proto.ContractUpdateTransactionBody=function(){function ContractUpdateTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.contractID=$root.proto.ContractID.decode(r,r.uint32());break;}case 2:{m.expirationTime=$root.proto.Timestamp.decode(r,r.uint32());break;}case 3:{m.adminKey=$root.proto.Key.decode(r,r.uint32());break;}case 6:{m.proxyAccountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 7:{m.autoRenewPeriod=$root.proto.Duration.decode(r,r.uint32());break;}case 8:{m.fileID=$root.proto.FileID.decode(r,r.uint32());break;}case 9:{m.memo=r.string();break;}case 10:{m.memoWrapper=$root.google.protobuf.StringValue.decode(r,r.uint32());break;}case 11:{m.maxAutomaticTokenAssociations=$root.google.protobuf.Int32Value.decode(r,r.uint32());break;}case 12:{m.autoRenewAccountId=$root.proto.AccountID.decode(r,r.uint32());break;}case 13:{m.stakedAccountId=$root.proto.AccountID.decode(r,r.uint32());break;}case 14:{m.stakedNodeId=r.int64();break;}case 15:{m.declineReward=$root.google.protobuf.BoolValue.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};ContractUpdateTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ContractUpdateTransactionBody\";};return ContractUpdateTransactionBody;}();proto.LiveHash=function(){function LiveHash(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.accountId=$root.proto.AccountID.decode(r,r.uint32());break;}case 2:{m.hash=r.bytes();break;}case 3:{m.keys=$root.proto.KeyList.decode(r,r.uint32());break;}case 5:{m.duration=$root.proto.Duration.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};LiveHash.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.LiveHash\";};return LiveHash;}();proto.CryptoAddLiveHashTransactionBody=function(){function CryptoAddLiveHashTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 3:{m.liveHash=$root.proto.LiveHash.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};CryptoAddLiveHashTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.CryptoAddLiveHashTransactionBody\";};return CryptoAddLiveHashTransactionBody;}();proto.CryptoCreateTransactionBody=function(){function CryptoCreateTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.key=$root.proto.Key.decode(r,r.uint32());break;}case 2:{m.initialBalance=r.uint64();break;}case 3:{m.proxyAccountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 6:{m.sendRecordThreshold=r.uint64();break;}case 7:{m.receiveRecordThreshold=r.uint64();break;}case 8:{m.receiverSigRequired=r.bool();break;}case 9:{m.autoRenewPeriod=$root.proto.Duration.decode(r,r.uint32());break;}case 10:{m.shardID=$root.proto.ShardID.decode(r,r.uint32());break;}case 11:{m.realmID=$root.proto.RealmID.decode(r,r.uint32());break;}case 12:{m.newRealmAdminKey=$root.proto.Key.decode(r,r.uint32());break;}case 13:{m.memo=r.string();break;}case 14:{m.maxAutomaticTokenAssociations=r.int32();break;}case 15:{m.stakedAccountId=$root.proto.AccountID.decode(r,r.uint32());break;}case 16:{m.stakedNodeId=r.int64();break;}case 17:{m.declineReward=r.bool();break;}case 18:{m.alias=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};CryptoCreateTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.CryptoCreateTransactionBody\";};return CryptoCreateTransactionBody;}();proto.CryptoDeleteTransactionBody=function(){function CryptoDeleteTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.transferAccountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 2:{m.deleteAccountID=$root.proto.AccountID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};CryptoDeleteTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.CryptoDeleteTransactionBody\";};return CryptoDeleteTransactionBody;}();proto.CryptoDeleteLiveHashTransactionBody=function(){function CryptoDeleteLiveHashTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.accountOfLiveHash=$root.proto.AccountID.decode(r,r.uint32());break;}case 2:{m.liveHashToDelete=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};CryptoDeleteLiveHashTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.CryptoDeleteLiveHashTransactionBody\";};return CryptoDeleteLiveHashTransactionBody;}();proto.CryptoTransferTransactionBody=function(){function CryptoTransferTransactionBody(p){this.tokenTransfers=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.transfers=$root.proto.TransferList.decode(r,r.uint32());break;}case 2:{if(!(m.tokenTransfers&&m.tokenTransfers.length))m.tokenTransfers=[];m.tokenTransfers.push($root.proto.TokenTransferList.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};CryptoTransferTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.CryptoTransferTransactionBody\";};return CryptoTransferTransactionBody;}();proto.CryptoUpdateTransactionBody=function(){function CryptoUpdateTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 2:{m.accountIDToUpdate=$root.proto.AccountID.decode(r,r.uint32());break;}case 3:{m.key=$root.proto.Key.decode(r,r.uint32());break;}case 4:{m.proxyAccountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 5:{m.proxyFraction=r.int32();break;}case 6:{m.sendRecordThreshold=r.uint64();break;}case 11:{m.sendRecordThresholdWrapper=$root.google.protobuf.UInt64Value.decode(r,r.uint32());break;}case 7:{m.receiveRecordThreshold=r.uint64();break;}case 12:{m.receiveRecordThresholdWrapper=$root.google.protobuf.UInt64Value.decode(r,r.uint32());break;}case 8:{m.autoRenewPeriod=$root.proto.Duration.decode(r,r.uint32());break;}case 9:{m.expirationTime=$root.proto.Timestamp.decode(r,r.uint32());break;}case 10:{m.receiverSigRequired=r.bool();break;}case 13:{m.receiverSigRequiredWrapper=$root.google.protobuf.BoolValue.decode(r,r.uint32());break;}case 14:{m.memo=$root.google.protobuf.StringValue.decode(r,r.uint32());break;}case 15:{m.maxAutomaticTokenAssociations=$root.google.protobuf.Int32Value.decode(r,r.uint32());break;}case 16:{m.stakedAccountId=$root.proto.AccountID.decode(r,r.uint32());break;}case 17:{m.stakedNodeId=r.int64();break;}case 18:{m.declineReward=$root.google.protobuf.BoolValue.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};CryptoUpdateTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.CryptoUpdateTransactionBody\";};return CryptoUpdateTransactionBody;}();proto.CryptoApproveAllowanceTransactionBody=function(){function CryptoApproveAllowanceTransactionBody(p){this.cryptoAllowances=[];this.nftAllowances=[];this.tokenAllowances=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{if(!(m.cryptoAllowances&&m.cryptoAllowances.length))m.cryptoAllowances=[];m.cryptoAllowances.push($root.proto.CryptoAllowance.decode(r,r.uint32()));break;}case 2:{if(!(m.nftAllowances&&m.nftAllowances.length))m.nftAllowances=[];m.nftAllowances.push($root.proto.NftAllowance.decode(r,r.uint32()));break;}case 3:{if(!(m.tokenAllowances&&m.tokenAllowances.length))m.tokenAllowances=[];m.tokenAllowances.push($root.proto.TokenAllowance.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};CryptoApproveAllowanceTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.CryptoApproveAllowanceTransactionBody\";};return CryptoApproveAllowanceTransactionBody;}();proto.CryptoAllowance=function(){function CryptoAllowance(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.owner=$root.proto.AccountID.decode(r,r.uint32());break;}case 2:{m.spender=$root.proto.AccountID.decode(r,r.uint32());break;}case 3:{m.amount=r.int64();break;}default:r.skipType(t&7);break;}}return m;};CryptoAllowance.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.CryptoAllowance\";};return CryptoAllowance;}();proto.NftAllowance=function(){function NftAllowance(p){this.serialNumbers=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.tokenId=$root.proto.TokenID.decode(r,r.uint32());break;}case 2:{m.owner=$root.proto.AccountID.decode(r,r.uint32());break;}case 3:{m.spender=$root.proto.AccountID.decode(r,r.uint32());break;}case 4:{if(!(m.serialNumbers&&m.serialNumbers.length))m.serialNumbers=[];if((t&7)===2){var c2=r.uint32()+r.pos;while(r.pos>>3){case 1:{m.tokenId=$root.proto.TokenID.decode(r,r.uint32());break;}case 2:{m.owner=$root.proto.AccountID.decode(r,r.uint32());break;}case 3:{m.spender=$root.proto.AccountID.decode(r,r.uint32());break;}case 4:{m.amount=r.int64();break;}default:r.skipType(t&7);break;}}return m;};TokenAllowance.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenAllowance\";};return TokenAllowance;}();proto.CryptoDeleteAllowanceTransactionBody=function(){function CryptoDeleteAllowanceTransactionBody(p){this.nftAllowances=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 2:{if(!(m.nftAllowances&&m.nftAllowances.length))m.nftAllowances=[];m.nftAllowances.push($root.proto.NftRemoveAllowance.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};CryptoDeleteAllowanceTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.CryptoDeleteAllowanceTransactionBody\";};return CryptoDeleteAllowanceTransactionBody;}();proto.NftRemoveAllowance=function(){function NftRemoveAllowance(p){this.serialNumbers=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.tokenId=$root.proto.TokenID.decode(r,r.uint32());break;}case 2:{m.owner=$root.proto.AccountID.decode(r,r.uint32());break;}case 3:{if(!(m.serialNumbers&&m.serialNumbers.length))m.serialNumbers=[];if((t&7)===2){var c2=r.uint32()+r.pos;while(r.pos>>3){case 1:{m.ethereumData=r.bytes();break;}case 2:{m.callData=$root.proto.FileID.decode(r,r.uint32());break;}case 3:{m.maxGasAllowance=r.int64();break;}default:r.skipType(t&7);break;}}return m;};EthereumTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.EthereumTransactionBody\";};return EthereumTransactionBody;}();proto.FileAppendTransactionBody=function(){function FileAppendTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 2:{m.fileID=$root.proto.FileID.decode(r,r.uint32());break;}case 4:{m.contents=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};FileAppendTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.FileAppendTransactionBody\";};return FileAppendTransactionBody;}();proto.FileCreateTransactionBody=function(){function FileCreateTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 2:{m.expirationTime=$root.proto.Timestamp.decode(r,r.uint32());break;}case 3:{m.keys=$root.proto.KeyList.decode(r,r.uint32());break;}case 4:{m.contents=r.bytes();break;}case 5:{m.shardID=$root.proto.ShardID.decode(r,r.uint32());break;}case 6:{m.realmID=$root.proto.RealmID.decode(r,r.uint32());break;}case 7:{m.newRealmAdminKey=$root.proto.Key.decode(r,r.uint32());break;}case 8:{m.memo=r.string();break;}default:r.skipType(t&7);break;}}return m;};FileCreateTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.FileCreateTransactionBody\";};return FileCreateTransactionBody;}();proto.FileDeleteTransactionBody=function(){function FileDeleteTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 2:{m.fileID=$root.proto.FileID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};FileDeleteTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.FileDeleteTransactionBody\";};return FileDeleteTransactionBody;}();proto.FileUpdateTransactionBody=function(){function FileUpdateTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.fileID=$root.proto.FileID.decode(r,r.uint32());break;}case 2:{m.expirationTime=$root.proto.Timestamp.decode(r,r.uint32());break;}case 3:{m.keys=$root.proto.KeyList.decode(r,r.uint32());break;}case 4:{m.contents=r.bytes();break;}case 5:{m.memo=$root.google.protobuf.StringValue.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};FileUpdateTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.FileUpdateTransactionBody\";};return FileUpdateTransactionBody;}();proto.ContractDeleteTransactionBody=function(){function ContractDeleteTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.contractID=$root.proto.ContractID.decode(r,r.uint32());break;}case 2:{m.transferAccountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 3:{m.transferContractID=$root.proto.ContractID.decode(r,r.uint32());break;}case 4:{m.permanentRemoval=r.bool();break;}default:r.skipType(t&7);break;}}return m;};ContractDeleteTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ContractDeleteTransactionBody\";};return ContractDeleteTransactionBody;}();proto.ConsensusCreateTopicTransactionBody=function(){function ConsensusCreateTopicTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.memo=r.string();break;}case 2:{m.adminKey=$root.proto.Key.decode(r,r.uint32());break;}case 3:{m.submitKey=$root.proto.Key.decode(r,r.uint32());break;}case 6:{m.autoRenewPeriod=$root.proto.Duration.decode(r,r.uint32());break;}case 7:{m.autoRenewAccount=$root.proto.AccountID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};ConsensusCreateTopicTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ConsensusCreateTopicTransactionBody\";};return ConsensusCreateTopicTransactionBody;}();proto.ConsensusUpdateTopicTransactionBody=function(){function ConsensusUpdateTopicTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.topicID=$root.proto.TopicID.decode(r,r.uint32());break;}case 2:{m.memo=$root.google.protobuf.StringValue.decode(r,r.uint32());break;}case 4:{m.expirationTime=$root.proto.Timestamp.decode(r,r.uint32());break;}case 6:{m.adminKey=$root.proto.Key.decode(r,r.uint32());break;}case 7:{m.submitKey=$root.proto.Key.decode(r,r.uint32());break;}case 8:{m.autoRenewPeriod=$root.proto.Duration.decode(r,r.uint32());break;}case 9:{m.autoRenewAccount=$root.proto.AccountID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};ConsensusUpdateTopicTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ConsensusUpdateTopicTransactionBody\";};return ConsensusUpdateTopicTransactionBody;}();proto.ConsensusDeleteTopicTransactionBody=function(){function ConsensusDeleteTopicTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.topicID=$root.proto.TopicID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};ConsensusDeleteTopicTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ConsensusDeleteTopicTransactionBody\";};return ConsensusDeleteTopicTransactionBody;}();proto.ConsensusMessageChunkInfo=function(){function ConsensusMessageChunkInfo(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.initialTransactionID=$root.proto.TransactionID.decode(r,r.uint32());break;}case 2:{m.total=r.int32();break;}case 3:{m.number=r.int32();break;}default:r.skipType(t&7);break;}}return m;};ConsensusMessageChunkInfo.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ConsensusMessageChunkInfo\";};return ConsensusMessageChunkInfo;}();proto.ConsensusSubmitMessageTransactionBody=function(){function ConsensusSubmitMessageTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.topicID=$root.proto.TopicID.decode(r,r.uint32());break;}case 2:{m.message=r.bytes();break;}case 3:{m.chunkInfo=$root.proto.ConsensusMessageChunkInfo.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};ConsensusSubmitMessageTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ConsensusSubmitMessageTransactionBody\";};return ConsensusSubmitMessageTransactionBody;}();proto.UncheckedSubmitBody=function(){function UncheckedSubmitBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.transactionBytes=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};UncheckedSubmitBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.UncheckedSubmitBody\";};return UncheckedSubmitBody;}();proto.TokenCreateTransactionBody=function(){function TokenCreateTransactionBody(p){this.customFees=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.name=r.string();break;}case 2:{m.symbol=r.string();break;}case 3:{m.decimals=r.uint32();break;}case 4:{m.initialSupply=r.uint64();break;}case 5:{m.treasury=$root.proto.AccountID.decode(r,r.uint32());break;}case 6:{m.adminKey=$root.proto.Key.decode(r,r.uint32());break;}case 7:{m.kycKey=$root.proto.Key.decode(r,r.uint32());break;}case 8:{m.freezeKey=$root.proto.Key.decode(r,r.uint32());break;}case 9:{m.wipeKey=$root.proto.Key.decode(r,r.uint32());break;}case 10:{m.supplyKey=$root.proto.Key.decode(r,r.uint32());break;}case 11:{m.freezeDefault=r.bool();break;}case 13:{m.expiry=$root.proto.Timestamp.decode(r,r.uint32());break;}case 14:{m.autoRenewAccount=$root.proto.AccountID.decode(r,r.uint32());break;}case 15:{m.autoRenewPeriod=$root.proto.Duration.decode(r,r.uint32());break;}case 16:{m.memo=r.string();break;}case 17:{m.tokenType=r.int32();break;}case 18:{m.supplyType=r.int32();break;}case 19:{m.maxSupply=r.int64();break;}case 20:{m.feeScheduleKey=$root.proto.Key.decode(r,r.uint32());break;}case 21:{if(!(m.customFees&&m.customFees.length))m.customFees=[];m.customFees.push($root.proto.CustomFee.decode(r,r.uint32()));break;}case 22:{m.pauseKey=$root.proto.Key.decode(r,r.uint32());break;}case 23:{m.metadata=r.bytes();break;}case 24:{m.metadataKey=$root.proto.Key.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};TokenCreateTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenCreateTransactionBody\";};return TokenCreateTransactionBody;}();proto.FractionalFee=function(){function FractionalFee(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.fractionalAmount=$root.proto.Fraction.decode(r,r.uint32());break;}case 2:{m.minimumAmount=r.int64();break;}case 3:{m.maximumAmount=r.int64();break;}case 4:{m.netOfTransfers=r.bool();break;}default:r.skipType(t&7);break;}}return m;};FractionalFee.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.FractionalFee\";};return FractionalFee;}();proto.FixedFee=function(){function FixedFee(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.amount=r.int64();break;}case 2:{m.denominatingTokenId=$root.proto.TokenID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};FixedFee.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.FixedFee\";};return FixedFee;}();proto.RoyaltyFee=function(){function RoyaltyFee(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.exchangeValueFraction=$root.proto.Fraction.decode(r,r.uint32());break;}case 2:{m.fallbackFee=$root.proto.FixedFee.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};RoyaltyFee.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.RoyaltyFee\";};return RoyaltyFee;}();proto.CustomFee=function(){function CustomFee(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.fixedFee=$root.proto.FixedFee.decode(r,r.uint32());break;}case 2:{m.fractionalFee=$root.proto.FractionalFee.decode(r,r.uint32());break;}case 4:{m.royaltyFee=$root.proto.RoyaltyFee.decode(r,r.uint32());break;}case 3:{m.feeCollectorAccountId=$root.proto.AccountID.decode(r,r.uint32());break;}case 5:{m.allCollectorsAreExempt=r.bool();break;}default:r.skipType(t&7);break;}}return m;};CustomFee.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.CustomFee\";};return CustomFee;}();proto.AssessedCustomFee=function(){function AssessedCustomFee(p){this.effectivePayerAccountId=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.amount=r.int64();break;}case 2:{m.tokenId=$root.proto.TokenID.decode(r,r.uint32());break;}case 3:{m.feeCollectorAccountId=$root.proto.AccountID.decode(r,r.uint32());break;}case 4:{if(!(m.effectivePayerAccountId&&m.effectivePayerAccountId.length))m.effectivePayerAccountId=[];m.effectivePayerAccountId.push($root.proto.AccountID.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};AssessedCustomFee.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.AssessedCustomFee\";};return AssessedCustomFee;}();proto.TokenFreezeAccountTransactionBody=function(){function TokenFreezeAccountTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.token=$root.proto.TokenID.decode(r,r.uint32());break;}case 2:{m.account=$root.proto.AccountID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};TokenFreezeAccountTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenFreezeAccountTransactionBody\";};return TokenFreezeAccountTransactionBody;}();proto.TokenUnfreezeAccountTransactionBody=function(){function TokenUnfreezeAccountTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.token=$root.proto.TokenID.decode(r,r.uint32());break;}case 2:{m.account=$root.proto.AccountID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};TokenUnfreezeAccountTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenUnfreezeAccountTransactionBody\";};return TokenUnfreezeAccountTransactionBody;}();proto.TokenGrantKycTransactionBody=function(){function TokenGrantKycTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.token=$root.proto.TokenID.decode(r,r.uint32());break;}case 2:{m.account=$root.proto.AccountID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};TokenGrantKycTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenGrantKycTransactionBody\";};return TokenGrantKycTransactionBody;}();proto.TokenRevokeKycTransactionBody=function(){function TokenRevokeKycTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.token=$root.proto.TokenID.decode(r,r.uint32());break;}case 2:{m.account=$root.proto.AccountID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};TokenRevokeKycTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenRevokeKycTransactionBody\";};return TokenRevokeKycTransactionBody;}();proto.TokenDeleteTransactionBody=function(){function TokenDeleteTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.token=$root.proto.TokenID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};TokenDeleteTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenDeleteTransactionBody\";};return TokenDeleteTransactionBody;}();proto.TokenUpdateTransactionBody=function(){function TokenUpdateTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.token=$root.proto.TokenID.decode(r,r.uint32());break;}case 2:{m.symbol=r.string();break;}case 3:{m.name=r.string();break;}case 4:{m.treasury=$root.proto.AccountID.decode(r,r.uint32());break;}case 5:{m.adminKey=$root.proto.Key.decode(r,r.uint32());break;}case 6:{m.kycKey=$root.proto.Key.decode(r,r.uint32());break;}case 7:{m.freezeKey=$root.proto.Key.decode(r,r.uint32());break;}case 8:{m.wipeKey=$root.proto.Key.decode(r,r.uint32());break;}case 9:{m.supplyKey=$root.proto.Key.decode(r,r.uint32());break;}case 10:{m.autoRenewAccount=$root.proto.AccountID.decode(r,r.uint32());break;}case 11:{m.autoRenewPeriod=$root.proto.Duration.decode(r,r.uint32());break;}case 12:{m.expiry=$root.proto.Timestamp.decode(r,r.uint32());break;}case 13:{m.memo=$root.google.protobuf.StringValue.decode(r,r.uint32());break;}case 14:{m.feeScheduleKey=$root.proto.Key.decode(r,r.uint32());break;}case 15:{m.pauseKey=$root.proto.Key.decode(r,r.uint32());break;}case 16:{m.metadata=$root.google.protobuf.BytesValue.decode(r,r.uint32());break;}case 17:{m.metadataKey=$root.proto.Key.decode(r,r.uint32());break;}case 18:{m.keyVerificationMode=r.int32();break;}default:r.skipType(t&7);break;}}return m;};TokenUpdateTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenUpdateTransactionBody\";};return TokenUpdateTransactionBody;}();proto.TokenMintTransactionBody=function(){function TokenMintTransactionBody(p){this.metadata=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.token=$root.proto.TokenID.decode(r,r.uint32());break;}case 2:{m.amount=r.uint64();break;}case 3:{if(!(m.metadata&&m.metadata.length))m.metadata=[];m.metadata.push(r.bytes());break;}default:r.skipType(t&7);break;}}return m;};TokenMintTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenMintTransactionBody\";};return TokenMintTransactionBody;}();proto.TokenBurnTransactionBody=function(){function TokenBurnTransactionBody(p){this.serialNumbers=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.token=$root.proto.TokenID.decode(r,r.uint32());break;}case 2:{m.amount=r.uint64();break;}case 3:{if(!(m.serialNumbers&&m.serialNumbers.length))m.serialNumbers=[];if((t&7)===2){var c2=r.uint32()+r.pos;while(r.pos>>3){case 1:{m.token=$root.proto.TokenID.decode(r,r.uint32());break;}case 2:{m.account=$root.proto.AccountID.decode(r,r.uint32());break;}case 3:{m.amount=r.uint64();break;}case 4:{if(!(m.serialNumbers&&m.serialNumbers.length))m.serialNumbers=[];if((t&7)===2){var c2=r.uint32()+r.pos;while(r.pos>>3){case 1:{m.account=$root.proto.AccountID.decode(r,r.uint32());break;}case 2:{if(!(m.tokens&&m.tokens.length))m.tokens=[];m.tokens.push($root.proto.TokenID.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};TokenAssociateTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenAssociateTransactionBody\";};return TokenAssociateTransactionBody;}();proto.TokenDissociateTransactionBody=function(){function TokenDissociateTransactionBody(p){this.tokens=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.account=$root.proto.AccountID.decode(r,r.uint32());break;}case 2:{if(!(m.tokens&&m.tokens.length))m.tokens=[];m.tokens.push($root.proto.TokenID.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};TokenDissociateTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenDissociateTransactionBody\";};return TokenDissociateTransactionBody;}();proto.TokenFeeScheduleUpdateTransactionBody=function(){function TokenFeeScheduleUpdateTransactionBody(p){this.customFees=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.tokenId=$root.proto.TokenID.decode(r,r.uint32());break;}case 2:{if(!(m.customFees&&m.customFees.length))m.customFees=[];m.customFees.push($root.proto.CustomFee.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};TokenFeeScheduleUpdateTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenFeeScheduleUpdateTransactionBody\";};return TokenFeeScheduleUpdateTransactionBody;}();proto.TokenPauseTransactionBody=function(){function TokenPauseTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.token=$root.proto.TokenID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};TokenPauseTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenPauseTransactionBody\";};return TokenPauseTransactionBody;}();proto.TokenUnpauseTransactionBody=function(){function TokenUnpauseTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.token=$root.proto.TokenID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};TokenUnpauseTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenUnpauseTransactionBody\";};return TokenUnpauseTransactionBody;}();proto.TokenUpdateNftsTransactionBody=function(){function TokenUpdateNftsTransactionBody(p){this.serialNumbers=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.token=$root.proto.TokenID.decode(r,r.uint32());break;}case 2:{if(!(m.serialNumbers&&m.serialNumbers.length))m.serialNumbers=[];if((t&7)===2){var c2=r.uint32()+r.pos;while(r.pos>>3){case 1:{m.owner=$root.proto.AccountID.decode(r,r.uint32());break;}case 2:{if(!(m.rejections&&m.rejections.length))m.rejections=[];m.rejections.push($root.proto.TokenReference.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};TokenRejectTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenRejectTransactionBody\";};return TokenRejectTransactionBody;}();proto.TokenReference=function(){function TokenReference(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.fungibleToken=$root.proto.TokenID.decode(r,r.uint32());break;}case 2:{m.nft=$root.proto.NftID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};TokenReference.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenReference\";};return TokenReference;}();proto.TokenAirdropTransactionBody=function(){function TokenAirdropTransactionBody(p){this.tokenTransfers=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{if(!(m.tokenTransfers&&m.tokenTransfers.length))m.tokenTransfers=[];m.tokenTransfers.push($root.proto.TokenTransferList.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};TokenAirdropTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenAirdropTransactionBody\";};return TokenAirdropTransactionBody;}();proto.TokenCancelAirdropTransactionBody=function(){function TokenCancelAirdropTransactionBody(p){this.pendingAirdrops=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{if(!(m.pendingAirdrops&&m.pendingAirdrops.length))m.pendingAirdrops=[];m.pendingAirdrops.push($root.proto.PendingAirdropId.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};TokenCancelAirdropTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenCancelAirdropTransactionBody\";};return TokenCancelAirdropTransactionBody;}();proto.TokenClaimAirdropTransactionBody=function(){function TokenClaimAirdropTransactionBody(p){this.pendingAirdrops=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{if(!(m.pendingAirdrops&&m.pendingAirdrops.length))m.pendingAirdrops=[];m.pendingAirdrops.push($root.proto.PendingAirdropId.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};TokenClaimAirdropTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenClaimAirdropTransactionBody\";};return TokenClaimAirdropTransactionBody;}();proto.ScheduleCreateTransactionBody=function(){function ScheduleCreateTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.scheduledTransactionBody=$root.proto.SchedulableTransactionBody.decode(r,r.uint32());break;}case 2:{m.memo=r.string();break;}case 3:{m.adminKey=$root.proto.Key.decode(r,r.uint32());break;}case 4:{m.payerAccountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 5:{m.expirationTime=$root.proto.Timestamp.decode(r,r.uint32());break;}case 13:{m.waitForExpiry=r.bool();break;}default:r.skipType(t&7);break;}}return m;};ScheduleCreateTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ScheduleCreateTransactionBody\";};return ScheduleCreateTransactionBody;}();proto.SchedulableTransactionBody=function(){function SchedulableTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.transactionFee=r.uint64();break;}case 2:{m.memo=r.string();break;}case 3:{m.contractCall=$root.proto.ContractCallTransactionBody.decode(r,r.uint32());break;}case 4:{m.contractCreateInstance=$root.proto.ContractCreateTransactionBody.decode(r,r.uint32());break;}case 5:{m.contractUpdateInstance=$root.proto.ContractUpdateTransactionBody.decode(r,r.uint32());break;}case 6:{m.contractDeleteInstance=$root.proto.ContractDeleteTransactionBody.decode(r,r.uint32());break;}case 37:{m.cryptoApproveAllowance=$root.proto.CryptoApproveAllowanceTransactionBody.decode(r,r.uint32());break;}case 38:{m.cryptoDeleteAllowance=$root.proto.CryptoDeleteAllowanceTransactionBody.decode(r,r.uint32());break;}case 7:{m.cryptoCreateAccount=$root.proto.CryptoCreateTransactionBody.decode(r,r.uint32());break;}case 8:{m.cryptoDelete=$root.proto.CryptoDeleteTransactionBody.decode(r,r.uint32());break;}case 9:{m.cryptoTransfer=$root.proto.CryptoTransferTransactionBody.decode(r,r.uint32());break;}case 10:{m.cryptoUpdateAccount=$root.proto.CryptoUpdateTransactionBody.decode(r,r.uint32());break;}case 11:{m.fileAppend=$root.proto.FileAppendTransactionBody.decode(r,r.uint32());break;}case 12:{m.fileCreate=$root.proto.FileCreateTransactionBody.decode(r,r.uint32());break;}case 13:{m.fileDelete=$root.proto.FileDeleteTransactionBody.decode(r,r.uint32());break;}case 14:{m.fileUpdate=$root.proto.FileUpdateTransactionBody.decode(r,r.uint32());break;}case 15:{m.systemDelete=$root.proto.SystemDeleteTransactionBody.decode(r,r.uint32());break;}case 16:{m.systemUndelete=$root.proto.SystemUndeleteTransactionBody.decode(r,r.uint32());break;}case 17:{m.freeze=$root.proto.FreezeTransactionBody.decode(r,r.uint32());break;}case 18:{m.consensusCreateTopic=$root.proto.ConsensusCreateTopicTransactionBody.decode(r,r.uint32());break;}case 19:{m.consensusUpdateTopic=$root.proto.ConsensusUpdateTopicTransactionBody.decode(r,r.uint32());break;}case 20:{m.consensusDeleteTopic=$root.proto.ConsensusDeleteTopicTransactionBody.decode(r,r.uint32());break;}case 21:{m.consensusSubmitMessage=$root.proto.ConsensusSubmitMessageTransactionBody.decode(r,r.uint32());break;}case 22:{m.tokenCreation=$root.proto.TokenCreateTransactionBody.decode(r,r.uint32());break;}case 23:{m.tokenFreeze=$root.proto.TokenFreezeAccountTransactionBody.decode(r,r.uint32());break;}case 24:{m.tokenUnfreeze=$root.proto.TokenUnfreezeAccountTransactionBody.decode(r,r.uint32());break;}case 25:{m.tokenGrantKyc=$root.proto.TokenGrantKycTransactionBody.decode(r,r.uint32());break;}case 26:{m.tokenRevokeKyc=$root.proto.TokenRevokeKycTransactionBody.decode(r,r.uint32());break;}case 27:{m.tokenDeletion=$root.proto.TokenDeleteTransactionBody.decode(r,r.uint32());break;}case 28:{m.tokenUpdate=$root.proto.TokenUpdateTransactionBody.decode(r,r.uint32());break;}case 29:{m.tokenMint=$root.proto.TokenMintTransactionBody.decode(r,r.uint32());break;}case 30:{m.tokenBurn=$root.proto.TokenBurnTransactionBody.decode(r,r.uint32());break;}case 31:{m.tokenWipe=$root.proto.TokenWipeAccountTransactionBody.decode(r,r.uint32());break;}case 32:{m.tokenAssociate=$root.proto.TokenAssociateTransactionBody.decode(r,r.uint32());break;}case 33:{m.tokenDissociate=$root.proto.TokenDissociateTransactionBody.decode(r,r.uint32());break;}case 39:{m.tokenFeeScheduleUpdate=$root.proto.TokenFeeScheduleUpdateTransactionBody.decode(r,r.uint32());break;}case 35:{m.tokenPause=$root.proto.TokenPauseTransactionBody.decode(r,r.uint32());break;}case 36:{m.tokenUnpause=$root.proto.TokenUnpauseTransactionBody.decode(r,r.uint32());break;}case 34:{m.scheduleDelete=$root.proto.ScheduleDeleteTransactionBody.decode(r,r.uint32());break;}case 40:{m.utilPrng=$root.proto.UtilPrngTransactionBody.decode(r,r.uint32());break;}case 41:{m.tokenUpdateNfts=$root.proto.TokenUpdateNftsTransactionBody.decode(r,r.uint32());break;}case 42:{m.nodeCreate=$root.com.hedera.hapi.node.addressbook.NodeCreateTransactionBody.decode(r,r.uint32());break;}case 43:{m.nodeUpdate=$root.com.hedera.hapi.node.addressbook.NodeUpdateTransactionBody.decode(r,r.uint32());break;}case 44:{m.nodeDelete=$root.com.hedera.hapi.node.addressbook.NodeDeleteTransactionBody.decode(r,r.uint32());break;}case 45:{m.tokenReject=$root.proto.TokenRejectTransactionBody.decode(r,r.uint32());break;}case 46:{m.tokenCancelAirdrop=$root.proto.TokenCancelAirdropTransactionBody.decode(r,r.uint32());break;}case 47:{m.tokenClaimAirdrop=$root.proto.TokenClaimAirdropTransactionBody.decode(r,r.uint32());break;}case 48:{m.tokenAirdrop=$root.proto.TokenAirdropTransactionBody.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};SchedulableTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.SchedulableTransactionBody\";};return SchedulableTransactionBody;}();proto.ScheduleDeleteTransactionBody=function(){function ScheduleDeleteTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.scheduleID=$root.proto.ScheduleID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};ScheduleDeleteTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ScheduleDeleteTransactionBody\";};return ScheduleDeleteTransactionBody;}();proto.UtilPrngTransactionBody=function(){function UtilPrngTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.range=r.int32();break;}default:r.skipType(t&7);break;}}return m;};UtilPrngTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.UtilPrngTransactionBody\";};return UtilPrngTransactionBody;}();proto.ScheduleSignTransactionBody=function(){function ScheduleSignTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.scheduleID=$root.proto.ScheduleID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};ScheduleSignTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ScheduleSignTransactionBody\";};return ScheduleSignTransactionBody;}();proto.NodeStakeUpdateTransactionBody=function(){function NodeStakeUpdateTransactionBody(p){this.nodeStake=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.endOfStakingPeriod=$root.proto.Timestamp.decode(r,r.uint32());break;}case 2:{if(!(m.nodeStake&&m.nodeStake.length))m.nodeStake=[];m.nodeStake.push($root.proto.NodeStake.decode(r,r.uint32()));break;}case 3:{m.maxStakingRewardRatePerHbar=r.int64();break;}case 4:{m.nodeRewardFeeFraction=$root.proto.Fraction.decode(r,r.uint32());break;}case 5:{m.stakingPeriodsStored=r.int64();break;}case 6:{m.stakingPeriod=r.int64();break;}case 7:{m.stakingRewardFeeFraction=$root.proto.Fraction.decode(r,r.uint32());break;}case 8:{m.stakingStartThreshold=r.int64();break;}case 9:{m.stakingRewardRate=r.int64();break;}case 10:{m.reservedStakingRewards=r.int64();break;}case 11:{m.unreservedStakingRewardBalance=r.int64();break;}case 12:{m.rewardBalanceThreshold=r.int64();break;}case 13:{m.maxStakeRewarded=r.int64();break;}case 14:{m.maxTotalReward=r.int64();break;}default:r.skipType(t&7);break;}}return m;};NodeStakeUpdateTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.NodeStakeUpdateTransactionBody\";};return NodeStakeUpdateTransactionBody;}();proto.NodeStake=function(){function NodeStake(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.maxStake=r.int64();break;}case 2:{m.minStake=r.int64();break;}case 3:{m.nodeId=r.int64();break;}case 4:{m.rewardRate=r.int64();break;}case 5:{m.stake=r.int64();break;}case 6:{m.stakeNotRewarded=r.int64();break;}case 7:{m.stakeRewarded=r.int64();break;}default:r.skipType(t&7);break;}}return m;};NodeStake.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.NodeStake\";};return NodeStake;}();proto.ResponseHeader=function(){function ResponseHeader(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.nodeTransactionPrecheckCode=r.int32();break;}case 2:{m.responseType=r.int32();break;}case 3:{m.cost=r.uint64();break;}case 4:{m.stateProof=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};ResponseHeader.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ResponseHeader\";};return ResponseHeader;}();proto.ResponseCodeEnum=function(){const valuesById={},values=Object.create(valuesById);values[valuesById[0]=\"OK\"]=0;values[valuesById[1]=\"INVALID_TRANSACTION\"]=1;values[valuesById[2]=\"PAYER_ACCOUNT_NOT_FOUND\"]=2;values[valuesById[3]=\"INVALID_NODE_ACCOUNT\"]=3;values[valuesById[4]=\"TRANSACTION_EXPIRED\"]=4;values[valuesById[5]=\"INVALID_TRANSACTION_START\"]=5;values[valuesById[6]=\"INVALID_TRANSACTION_DURATION\"]=6;values[valuesById[7]=\"INVALID_SIGNATURE\"]=7;values[valuesById[8]=\"MEMO_TOO_LONG\"]=8;values[valuesById[9]=\"INSUFFICIENT_TX_FEE\"]=9;values[valuesById[10]=\"INSUFFICIENT_PAYER_BALANCE\"]=10;values[valuesById[11]=\"DUPLICATE_TRANSACTION\"]=11;values[valuesById[12]=\"BUSY\"]=12;values[valuesById[13]=\"NOT_SUPPORTED\"]=13;values[valuesById[14]=\"INVALID_FILE_ID\"]=14;values[valuesById[15]=\"INVALID_ACCOUNT_ID\"]=15;values[valuesById[16]=\"INVALID_CONTRACT_ID\"]=16;values[valuesById[17]=\"INVALID_TRANSACTION_ID\"]=17;values[valuesById[18]=\"RECEIPT_NOT_FOUND\"]=18;values[valuesById[19]=\"RECORD_NOT_FOUND\"]=19;values[valuesById[20]=\"INVALID_SOLIDITY_ID\"]=20;values[valuesById[21]=\"UNKNOWN\"]=21;values[valuesById[22]=\"SUCCESS\"]=22;values[valuesById[23]=\"FAIL_INVALID\"]=23;values[valuesById[24]=\"FAIL_FEE\"]=24;values[valuesById[25]=\"FAIL_BALANCE\"]=25;values[valuesById[26]=\"KEY_REQUIRED\"]=26;values[valuesById[27]=\"BAD_ENCODING\"]=27;values[valuesById[28]=\"INSUFFICIENT_ACCOUNT_BALANCE\"]=28;values[valuesById[29]=\"INVALID_SOLIDITY_ADDRESS\"]=29;values[valuesById[30]=\"INSUFFICIENT_GAS\"]=30;values[valuesById[31]=\"CONTRACT_SIZE_LIMIT_EXCEEDED\"]=31;values[valuesById[32]=\"LOCAL_CALL_MODIFICATION_EXCEPTION\"]=32;values[valuesById[33]=\"CONTRACT_REVERT_EXECUTED\"]=33;values[valuesById[34]=\"CONTRACT_EXECUTION_EXCEPTION\"]=34;values[valuesById[35]=\"INVALID_RECEIVING_NODE_ACCOUNT\"]=35;values[valuesById[36]=\"MISSING_QUERY_HEADER\"]=36;values[valuesById[37]=\"ACCOUNT_UPDATE_FAILED\"]=37;values[valuesById[38]=\"INVALID_KEY_ENCODING\"]=38;values[valuesById[39]=\"NULL_SOLIDITY_ADDRESS\"]=39;values[valuesById[40]=\"CONTRACT_UPDATE_FAILED\"]=40;values[valuesById[41]=\"INVALID_QUERY_HEADER\"]=41;values[valuesById[42]=\"INVALID_FEE_SUBMITTED\"]=42;values[valuesById[43]=\"INVALID_PAYER_SIGNATURE\"]=43;values[valuesById[44]=\"KEY_NOT_PROVIDED\"]=44;values[valuesById[45]=\"INVALID_EXPIRATION_TIME\"]=45;values[valuesById[46]=\"NO_WACL_KEY\"]=46;values[valuesById[47]=\"FILE_CONTENT_EMPTY\"]=47;values[valuesById[48]=\"INVALID_ACCOUNT_AMOUNTS\"]=48;values[valuesById[49]=\"EMPTY_TRANSACTION_BODY\"]=49;values[valuesById[50]=\"INVALID_TRANSACTION_BODY\"]=50;values[valuesById[51]=\"INVALID_SIGNATURE_TYPE_MISMATCHING_KEY\"]=51;values[valuesById[52]=\"INVALID_SIGNATURE_COUNT_MISMATCHING_KEY\"]=52;values[valuesById[53]=\"EMPTY_LIVE_HASH_BODY\"]=53;values[valuesById[54]=\"EMPTY_LIVE_HASH\"]=54;values[valuesById[55]=\"EMPTY_LIVE_HASH_KEYS\"]=55;values[valuesById[56]=\"INVALID_LIVE_HASH_SIZE\"]=56;values[valuesById[57]=\"EMPTY_QUERY_BODY\"]=57;values[valuesById[58]=\"EMPTY_LIVE_HASH_QUERY\"]=58;values[valuesById[59]=\"LIVE_HASH_NOT_FOUND\"]=59;values[valuesById[60]=\"ACCOUNT_ID_DOES_NOT_EXIST\"]=60;values[valuesById[61]=\"LIVE_HASH_ALREADY_EXISTS\"]=61;values[valuesById[62]=\"INVALID_FILE_WACL\"]=62;values[valuesById[63]=\"SERIALIZATION_FAILED\"]=63;values[valuesById[64]=\"TRANSACTION_OVERSIZE\"]=64;values[valuesById[65]=\"TRANSACTION_TOO_MANY_LAYERS\"]=65;values[valuesById[66]=\"CONTRACT_DELETED\"]=66;values[valuesById[67]=\"PLATFORM_NOT_ACTIVE\"]=67;values[valuesById[68]=\"KEY_PREFIX_MISMATCH\"]=68;values[valuesById[69]=\"PLATFORM_TRANSACTION_NOT_CREATED\"]=69;values[valuesById[70]=\"INVALID_RENEWAL_PERIOD\"]=70;values[valuesById[71]=\"INVALID_PAYER_ACCOUNT_ID\"]=71;values[valuesById[72]=\"ACCOUNT_DELETED\"]=72;values[valuesById[73]=\"FILE_DELETED\"]=73;values[valuesById[74]=\"ACCOUNT_REPEATED_IN_ACCOUNT_AMOUNTS\"]=74;values[valuesById[75]=\"SETTING_NEGATIVE_ACCOUNT_BALANCE\"]=75;values[valuesById[76]=\"OBTAINER_REQUIRED\"]=76;values[valuesById[77]=\"OBTAINER_SAME_CONTRACT_ID\"]=77;values[valuesById[78]=\"OBTAINER_DOES_NOT_EXIST\"]=78;values[valuesById[79]=\"MODIFYING_IMMUTABLE_CONTRACT\"]=79;values[valuesById[80]=\"FILE_SYSTEM_EXCEPTION\"]=80;values[valuesById[81]=\"AUTORENEW_DURATION_NOT_IN_RANGE\"]=81;values[valuesById[82]=\"ERROR_DECODING_BYTESTRING\"]=82;values[valuesById[83]=\"CONTRACT_FILE_EMPTY\"]=83;values[valuesById[84]=\"CONTRACT_BYTECODE_EMPTY\"]=84;values[valuesById[85]=\"INVALID_INITIAL_BALANCE\"]=85;values[valuesById[86]=\"INVALID_RECEIVE_RECORD_THRESHOLD\"]=86;values[valuesById[87]=\"INVALID_SEND_RECORD_THRESHOLD\"]=87;values[valuesById[88]=\"ACCOUNT_IS_NOT_GENESIS_ACCOUNT\"]=88;values[valuesById[89]=\"PAYER_ACCOUNT_UNAUTHORIZED\"]=89;values[valuesById[90]=\"INVALID_FREEZE_TRANSACTION_BODY\"]=90;values[valuesById[91]=\"FREEZE_TRANSACTION_BODY_NOT_FOUND\"]=91;values[valuesById[92]=\"TRANSFER_LIST_SIZE_LIMIT_EXCEEDED\"]=92;values[valuesById[93]=\"RESULT_SIZE_LIMIT_EXCEEDED\"]=93;values[valuesById[94]=\"NOT_SPECIAL_ACCOUNT\"]=94;values[valuesById[95]=\"CONTRACT_NEGATIVE_GAS\"]=95;values[valuesById[96]=\"CONTRACT_NEGATIVE_VALUE\"]=96;values[valuesById[97]=\"INVALID_FEE_FILE\"]=97;values[valuesById[98]=\"INVALID_EXCHANGE_RATE_FILE\"]=98;values[valuesById[99]=\"INSUFFICIENT_LOCAL_CALL_GAS\"]=99;values[valuesById[100]=\"ENTITY_NOT_ALLOWED_TO_DELETE\"]=100;values[valuesById[101]=\"AUTHORIZATION_FAILED\"]=101;values[valuesById[102]=\"FILE_UPLOADED_PROTO_INVALID\"]=102;values[valuesById[103]=\"FILE_UPLOADED_PROTO_NOT_SAVED_TO_DISK\"]=103;values[valuesById[104]=\"FEE_SCHEDULE_FILE_PART_UPLOADED\"]=104;values[valuesById[105]=\"EXCHANGE_RATE_CHANGE_LIMIT_EXCEEDED\"]=105;values[valuesById[106]=\"MAX_CONTRACT_STORAGE_EXCEEDED\"]=106;values[valuesById[107]=\"TRANSFER_ACCOUNT_SAME_AS_DELETE_ACCOUNT\"]=107;values[valuesById[108]=\"TOTAL_LEDGER_BALANCE_INVALID\"]=108;values[valuesById[110]=\"EXPIRATION_REDUCTION_NOT_ALLOWED\"]=110;values[valuesById[111]=\"MAX_GAS_LIMIT_EXCEEDED\"]=111;values[valuesById[112]=\"MAX_FILE_SIZE_EXCEEDED\"]=112;values[valuesById[113]=\"RECEIVER_SIG_REQUIRED\"]=113;values[valuesById[150]=\"INVALID_TOPIC_ID\"]=150;values[valuesById[155]=\"INVALID_ADMIN_KEY\"]=155;values[valuesById[156]=\"INVALID_SUBMIT_KEY\"]=156;values[valuesById[157]=\"UNAUTHORIZED\"]=157;values[valuesById[158]=\"INVALID_TOPIC_MESSAGE\"]=158;values[valuesById[159]=\"INVALID_AUTORENEW_ACCOUNT\"]=159;values[valuesById[160]=\"AUTORENEW_ACCOUNT_NOT_ALLOWED\"]=160;values[valuesById[162]=\"TOPIC_EXPIRED\"]=162;values[valuesById[163]=\"INVALID_CHUNK_NUMBER\"]=163;values[valuesById[164]=\"INVALID_CHUNK_TRANSACTION_ID\"]=164;values[valuesById[165]=\"ACCOUNT_FROZEN_FOR_TOKEN\"]=165;values[valuesById[166]=\"TOKENS_PER_ACCOUNT_LIMIT_EXCEEDED\"]=166;values[valuesById[167]=\"INVALID_TOKEN_ID\"]=167;values[valuesById[168]=\"INVALID_TOKEN_DECIMALS\"]=168;values[valuesById[169]=\"INVALID_TOKEN_INITIAL_SUPPLY\"]=169;values[valuesById[170]=\"INVALID_TREASURY_ACCOUNT_FOR_TOKEN\"]=170;values[valuesById[171]=\"INVALID_TOKEN_SYMBOL\"]=171;values[valuesById[172]=\"TOKEN_HAS_NO_FREEZE_KEY\"]=172;values[valuesById[173]=\"TRANSFERS_NOT_ZERO_SUM_FOR_TOKEN\"]=173;values[valuesById[174]=\"MISSING_TOKEN_SYMBOL\"]=174;values[valuesById[175]=\"TOKEN_SYMBOL_TOO_LONG\"]=175;values[valuesById[176]=\"ACCOUNT_KYC_NOT_GRANTED_FOR_TOKEN\"]=176;values[valuesById[177]=\"TOKEN_HAS_NO_KYC_KEY\"]=177;values[valuesById[178]=\"INSUFFICIENT_TOKEN_BALANCE\"]=178;values[valuesById[179]=\"TOKEN_WAS_DELETED\"]=179;values[valuesById[180]=\"TOKEN_HAS_NO_SUPPLY_KEY\"]=180;values[valuesById[181]=\"TOKEN_HAS_NO_WIPE_KEY\"]=181;values[valuesById[182]=\"INVALID_TOKEN_MINT_AMOUNT\"]=182;values[valuesById[183]=\"INVALID_TOKEN_BURN_AMOUNT\"]=183;values[valuesById[184]=\"TOKEN_NOT_ASSOCIATED_TO_ACCOUNT\"]=184;values[valuesById[185]=\"CANNOT_WIPE_TOKEN_TREASURY_ACCOUNT\"]=185;values[valuesById[186]=\"INVALID_KYC_KEY\"]=186;values[valuesById[187]=\"INVALID_WIPE_KEY\"]=187;values[valuesById[188]=\"INVALID_FREEZE_KEY\"]=188;values[valuesById[189]=\"INVALID_SUPPLY_KEY\"]=189;values[valuesById[190]=\"MISSING_TOKEN_NAME\"]=190;values[valuesById[191]=\"TOKEN_NAME_TOO_LONG\"]=191;values[valuesById[192]=\"INVALID_WIPING_AMOUNT\"]=192;values[valuesById[193]=\"TOKEN_IS_IMMUTABLE\"]=193;values[valuesById[194]=\"TOKEN_ALREADY_ASSOCIATED_TO_ACCOUNT\"]=194;values[valuesById[195]=\"TRANSACTION_REQUIRES_ZERO_TOKEN_BALANCES\"]=195;values[valuesById[196]=\"ACCOUNT_IS_TREASURY\"]=196;values[valuesById[197]=\"TOKEN_ID_REPEATED_IN_TOKEN_LIST\"]=197;values[valuesById[198]=\"TOKEN_TRANSFER_LIST_SIZE_LIMIT_EXCEEDED\"]=198;values[valuesById[199]=\"EMPTY_TOKEN_TRANSFER_BODY\"]=199;values[valuesById[200]=\"EMPTY_TOKEN_TRANSFER_ACCOUNT_AMOUNTS\"]=200;values[valuesById[201]=\"INVALID_SCHEDULE_ID\"]=201;values[valuesById[202]=\"SCHEDULE_IS_IMMUTABLE\"]=202;values[valuesById[203]=\"INVALID_SCHEDULE_PAYER_ID\"]=203;values[valuesById[204]=\"INVALID_SCHEDULE_ACCOUNT_ID\"]=204;values[valuesById[205]=\"NO_NEW_VALID_SIGNATURES\"]=205;values[valuesById[206]=\"UNRESOLVABLE_REQUIRED_SIGNERS\"]=206;values[valuesById[207]=\"SCHEDULED_TRANSACTION_NOT_IN_WHITELIST\"]=207;values[valuesById[208]=\"SOME_SIGNATURES_WERE_INVALID\"]=208;values[valuesById[209]=\"TRANSACTION_ID_FIELD_NOT_ALLOWED\"]=209;values[valuesById[210]=\"IDENTICAL_SCHEDULE_ALREADY_CREATED\"]=210;values[valuesById[211]=\"INVALID_ZERO_BYTE_IN_STRING\"]=211;values[valuesById[212]=\"SCHEDULE_ALREADY_DELETED\"]=212;values[valuesById[213]=\"SCHEDULE_ALREADY_EXECUTED\"]=213;values[valuesById[214]=\"MESSAGE_SIZE_TOO_LARGE\"]=214;values[valuesById[215]=\"OPERATION_REPEATED_IN_BUCKET_GROUPS\"]=215;values[valuesById[216]=\"BUCKET_CAPACITY_OVERFLOW\"]=216;values[valuesById[217]=\"NODE_CAPACITY_NOT_SUFFICIENT_FOR_OPERATION\"]=217;values[valuesById[218]=\"BUCKET_HAS_NO_THROTTLE_GROUPS\"]=218;values[valuesById[219]=\"THROTTLE_GROUP_HAS_ZERO_OPS_PER_SEC\"]=219;values[valuesById[220]=\"SUCCESS_BUT_MISSING_EXPECTED_OPERATION\"]=220;values[valuesById[221]=\"UNPARSEABLE_THROTTLE_DEFINITIONS\"]=221;values[valuesById[222]=\"INVALID_THROTTLE_DEFINITIONS\"]=222;values[valuesById[223]=\"ACCOUNT_EXPIRED_AND_PENDING_REMOVAL\"]=223;values[valuesById[224]=\"INVALID_TOKEN_MAX_SUPPLY\"]=224;values[valuesById[225]=\"INVALID_TOKEN_NFT_SERIAL_NUMBER\"]=225;values[valuesById[226]=\"INVALID_NFT_ID\"]=226;values[valuesById[227]=\"METADATA_TOO_LONG\"]=227;values[valuesById[228]=\"BATCH_SIZE_LIMIT_EXCEEDED\"]=228;values[valuesById[229]=\"INVALID_QUERY_RANGE\"]=229;values[valuesById[230]=\"FRACTION_DIVIDES_BY_ZERO\"]=230;values[valuesById[231]=\"INSUFFICIENT_PAYER_BALANCE_FOR_CUSTOM_FEE\"]=231;values[valuesById[232]=\"CUSTOM_FEES_LIST_TOO_LONG\"]=232;values[valuesById[233]=\"INVALID_CUSTOM_FEE_COLLECTOR\"]=233;values[valuesById[234]=\"INVALID_TOKEN_ID_IN_CUSTOM_FEES\"]=234;values[valuesById[235]=\"TOKEN_NOT_ASSOCIATED_TO_FEE_COLLECTOR\"]=235;values[valuesById[236]=\"TOKEN_MAX_SUPPLY_REACHED\"]=236;values[valuesById[237]=\"SENDER_DOES_NOT_OWN_NFT_SERIAL_NO\"]=237;values[valuesById[238]=\"CUSTOM_FEE_NOT_FULLY_SPECIFIED\"]=238;values[valuesById[239]=\"CUSTOM_FEE_MUST_BE_POSITIVE\"]=239;values[valuesById[240]=\"TOKEN_HAS_NO_FEE_SCHEDULE_KEY\"]=240;values[valuesById[241]=\"CUSTOM_FEE_OUTSIDE_NUMERIC_RANGE\"]=241;values[valuesById[242]=\"ROYALTY_FRACTION_CANNOT_EXCEED_ONE\"]=242;values[valuesById[243]=\"FRACTIONAL_FEE_MAX_AMOUNT_LESS_THAN_MIN_AMOUNT\"]=243;values[valuesById[244]=\"CUSTOM_SCHEDULE_ALREADY_HAS_NO_FEES\"]=244;values[valuesById[245]=\"CUSTOM_FEE_DENOMINATION_MUST_BE_FUNGIBLE_COMMON\"]=245;values[valuesById[246]=\"CUSTOM_FRACTIONAL_FEE_ONLY_ALLOWED_FOR_FUNGIBLE_COMMON\"]=246;values[valuesById[247]=\"INVALID_CUSTOM_FEE_SCHEDULE_KEY\"]=247;values[valuesById[248]=\"INVALID_TOKEN_MINT_METADATA\"]=248;values[valuesById[249]=\"INVALID_TOKEN_BURN_METADATA\"]=249;values[valuesById[250]=\"CURRENT_TREASURY_STILL_OWNS_NFTS\"]=250;values[valuesById[251]=\"ACCOUNT_STILL_OWNS_NFTS\"]=251;values[valuesById[252]=\"TREASURY_MUST_OWN_BURNED_NFT\"]=252;values[valuesById[253]=\"ACCOUNT_DOES_NOT_OWN_WIPED_NFT\"]=253;values[valuesById[254]=\"ACCOUNT_AMOUNT_TRANSFERS_ONLY_ALLOWED_FOR_FUNGIBLE_COMMON\"]=254;values[valuesById[255]=\"MAX_NFTS_IN_PRICE_REGIME_HAVE_BEEN_MINTED\"]=255;values[valuesById[256]=\"PAYER_ACCOUNT_DELETED\"]=256;values[valuesById[257]=\"CUSTOM_FEE_CHARGING_EXCEEDED_MAX_RECURSION_DEPTH\"]=257;values[valuesById[258]=\"CUSTOM_FEE_CHARGING_EXCEEDED_MAX_ACCOUNT_AMOUNTS\"]=258;values[valuesById[259]=\"INSUFFICIENT_SENDER_ACCOUNT_BALANCE_FOR_CUSTOM_FEE\"]=259;values[valuesById[260]=\"SERIAL_NUMBER_LIMIT_REACHED\"]=260;values[valuesById[261]=\"CUSTOM_ROYALTY_FEE_ONLY_ALLOWED_FOR_NON_FUNGIBLE_UNIQUE\"]=261;values[valuesById[262]=\"NO_REMAINING_AUTOMATIC_ASSOCIATIONS\"]=262;values[valuesById[263]=\"EXISTING_AUTOMATIC_ASSOCIATIONS_EXCEED_GIVEN_LIMIT\"]=263;values[valuesById[264]=\"REQUESTED_NUM_AUTOMATIC_ASSOCIATIONS_EXCEEDS_ASSOCIATION_LIMIT\"]=264;values[valuesById[265]=\"TOKEN_IS_PAUSED\"]=265;values[valuesById[266]=\"TOKEN_HAS_NO_PAUSE_KEY\"]=266;values[valuesById[267]=\"INVALID_PAUSE_KEY\"]=267;values[valuesById[268]=\"FREEZE_UPDATE_FILE_DOES_NOT_EXIST\"]=268;values[valuesById[269]=\"FREEZE_UPDATE_FILE_HASH_DOES_NOT_MATCH\"]=269;values[valuesById[270]=\"NO_UPGRADE_HAS_BEEN_PREPARED\"]=270;values[valuesById[271]=\"NO_FREEZE_IS_SCHEDULED\"]=271;values[valuesById[272]=\"UPDATE_FILE_HASH_CHANGED_SINCE_PREPARE_UPGRADE\"]=272;values[valuesById[273]=\"FREEZE_START_TIME_MUST_BE_FUTURE\"]=273;values[valuesById[274]=\"PREPARED_UPDATE_FILE_IS_IMMUTABLE\"]=274;values[valuesById[275]=\"FREEZE_ALREADY_SCHEDULED\"]=275;values[valuesById[276]=\"FREEZE_UPGRADE_IN_PROGRESS\"]=276;values[valuesById[277]=\"UPDATE_FILE_ID_DOES_NOT_MATCH_PREPARED\"]=277;values[valuesById[278]=\"UPDATE_FILE_HASH_DOES_NOT_MATCH_PREPARED\"]=278;values[valuesById[279]=\"CONSENSUS_GAS_EXHAUSTED\"]=279;values[valuesById[280]=\"REVERTED_SUCCESS\"]=280;values[valuesById[281]=\"MAX_STORAGE_IN_PRICE_REGIME_HAS_BEEN_USED\"]=281;values[valuesById[282]=\"INVALID_ALIAS_KEY\"]=282;values[valuesById[283]=\"UNEXPECTED_TOKEN_DECIMALS\"]=283;values[valuesById[284]=\"INVALID_PROXY_ACCOUNT_ID\"]=284;values[valuesById[285]=\"INVALID_TRANSFER_ACCOUNT_ID\"]=285;values[valuesById[286]=\"INVALID_FEE_COLLECTOR_ACCOUNT_ID\"]=286;values[valuesById[287]=\"ALIAS_IS_IMMUTABLE\"]=287;values[valuesById[288]=\"SPENDER_ACCOUNT_SAME_AS_OWNER\"]=288;values[valuesById[289]=\"AMOUNT_EXCEEDS_TOKEN_MAX_SUPPLY\"]=289;values[valuesById[290]=\"NEGATIVE_ALLOWANCE_AMOUNT\"]=290;values[valuesById[291]=\"CANNOT_APPROVE_FOR_ALL_FUNGIBLE_COMMON\"]=291;values[valuesById[292]=\"SPENDER_DOES_NOT_HAVE_ALLOWANCE\"]=292;values[valuesById[293]=\"AMOUNT_EXCEEDS_ALLOWANCE\"]=293;values[valuesById[294]=\"MAX_ALLOWANCES_EXCEEDED\"]=294;values[valuesById[295]=\"EMPTY_ALLOWANCES\"]=295;values[valuesById[296]=\"SPENDER_ACCOUNT_REPEATED_IN_ALLOWANCES\"]=296;values[valuesById[297]=\"REPEATED_SERIAL_NUMS_IN_NFT_ALLOWANCES\"]=297;values[valuesById[298]=\"FUNGIBLE_TOKEN_IN_NFT_ALLOWANCES\"]=298;values[valuesById[299]=\"NFT_IN_FUNGIBLE_TOKEN_ALLOWANCES\"]=299;values[valuesById[300]=\"INVALID_ALLOWANCE_OWNER_ID\"]=300;values[valuesById[301]=\"INVALID_ALLOWANCE_SPENDER_ID\"]=301;values[valuesById[302]=\"REPEATED_ALLOWANCES_TO_DELETE\"]=302;values[valuesById[303]=\"INVALID_DELEGATING_SPENDER\"]=303;values[valuesById[304]=\"DELEGATING_SPENDER_CANNOT_GRANT_APPROVE_FOR_ALL\"]=304;values[valuesById[305]=\"DELEGATING_SPENDER_DOES_NOT_HAVE_APPROVE_FOR_ALL\"]=305;values[valuesById[306]=\"SCHEDULE_EXPIRATION_TIME_TOO_FAR_IN_FUTURE\"]=306;values[valuesById[307]=\"SCHEDULE_EXPIRATION_TIME_MUST_BE_HIGHER_THAN_CONSENSUS_TIME\"]=307;values[valuesById[308]=\"SCHEDULE_FUTURE_THROTTLE_EXCEEDED\"]=308;values[valuesById[309]=\"SCHEDULE_FUTURE_GAS_LIMIT_EXCEEDED\"]=309;values[valuesById[310]=\"INVALID_ETHEREUM_TRANSACTION\"]=310;values[valuesById[311]=\"WRONG_CHAIN_ID\"]=311;values[valuesById[312]=\"WRONG_NONCE\"]=312;values[valuesById[313]=\"ACCESS_LIST_UNSUPPORTED\"]=313;values[valuesById[314]=\"SCHEDULE_PENDING_EXPIRATION\"]=314;values[valuesById[315]=\"CONTRACT_IS_TOKEN_TREASURY\"]=315;values[valuesById[316]=\"CONTRACT_HAS_NON_ZERO_TOKEN_BALANCES\"]=316;values[valuesById[317]=\"CONTRACT_EXPIRED_AND_PENDING_REMOVAL\"]=317;values[valuesById[318]=\"CONTRACT_HAS_NO_AUTO_RENEW_ACCOUNT\"]=318;values[valuesById[319]=\"PERMANENT_REMOVAL_REQUIRES_SYSTEM_INITIATION\"]=319;values[valuesById[320]=\"PROXY_ACCOUNT_ID_FIELD_IS_DEPRECATED\"]=320;values[valuesById[321]=\"SELF_STAKING_IS_NOT_ALLOWED\"]=321;values[valuesById[322]=\"INVALID_STAKING_ID\"]=322;values[valuesById[323]=\"STAKING_NOT_ENABLED\"]=323;values[valuesById[324]=\"INVALID_PRNG_RANGE\"]=324;values[valuesById[325]=\"MAX_ENTITIES_IN_PRICE_REGIME_HAVE_BEEN_CREATED\"]=325;values[valuesById[326]=\"INVALID_FULL_PREFIX_SIGNATURE_FOR_PRECOMPILE\"]=326;values[valuesById[327]=\"INSUFFICIENT_BALANCES_FOR_STORAGE_RENT\"]=327;values[valuesById[328]=\"MAX_CHILD_RECORDS_EXCEEDED\"]=328;values[valuesById[329]=\"INSUFFICIENT_BALANCES_FOR_RENEWAL_FEES\"]=329;values[valuesById[330]=\"TRANSACTION_HAS_UNKNOWN_FIELDS\"]=330;values[valuesById[331]=\"ACCOUNT_IS_IMMUTABLE\"]=331;values[valuesById[332]=\"ALIAS_ALREADY_ASSIGNED\"]=332;values[valuesById[333]=\"INVALID_METADATA_KEY\"]=333;values[valuesById[334]=\"TOKEN_HAS_NO_METADATA_KEY\"]=334;values[valuesById[335]=\"MISSING_TOKEN_METADATA\"]=335;values[valuesById[336]=\"MISSING_SERIAL_NUMBERS\"]=336;values[valuesById[337]=\"TOKEN_HAS_NO_ADMIN_KEY\"]=337;values[valuesById[338]=\"NODE_DELETED\"]=338;values[valuesById[339]=\"INVALID_NODE_ID\"]=339;values[valuesById[340]=\"INVALID_GOSSIP_ENDPOINT\"]=340;values[valuesById[341]=\"INVALID_NODE_ACCOUNT_ID\"]=341;values[valuesById[342]=\"INVALID_NODE_DESCRIPTION\"]=342;values[valuesById[343]=\"INVALID_SERVICE_ENDPOINT\"]=343;values[valuesById[344]=\"INVALID_GOSSIP_CA_CERTIFICATE\"]=344;values[valuesById[345]=\"INVALID_GRPC_CERTIFICATE\"]=345;values[valuesById[346]=\"INVALID_MAX_AUTO_ASSOCIATIONS\"]=346;values[valuesById[347]=\"MAX_NODES_CREATED\"]=347;values[valuesById[348]=\"IP_FQDN_CANNOT_BE_SET_FOR_SAME_ENDPOINT\"]=348;values[valuesById[349]=\"GOSSIP_ENDPOINT_CANNOT_HAVE_FQDN\"]=349;values[valuesById[350]=\"FQDN_SIZE_TOO_LARGE\"]=350;values[valuesById[351]=\"INVALID_ENDPOINT\"]=351;values[valuesById[352]=\"GOSSIP_ENDPOINTS_EXCEEDED_LIMIT\"]=352;values[valuesById[353]=\"TOKEN_REFERENCE_REPEATED\"]=353;values[valuesById[354]=\"INVALID_OWNER_ID\"]=354;values[valuesById[355]=\"TOKEN_REFERENCE_LIST_SIZE_LIMIT_EXCEEDED\"]=355;values[valuesById[356]=\"SERVICE_ENDPOINTS_EXCEEDED_LIMIT\"]=356;values[valuesById[357]=\"INVALID_IPV4_ADDRESS\"]=357;values[valuesById[358]=\"EMPTY_TOKEN_REFERENCE_LIST\"]=358;values[valuesById[359]=\"UPDATE_NODE_ACCOUNT_NOT_ALLOWED\"]=359;values[valuesById[360]=\"TOKEN_HAS_NO_METADATA_OR_SUPPLY_KEY\"]=360;values[valuesById[361]=\"EMPTY_PENDING_AIRDROP_ID_LIST\"]=361;values[valuesById[362]=\"PENDING_AIRDROP_ID_REPEATED\"]=362;values[valuesById[363]=\"PENDING_AIRDROP_ID_LIST_TOO_LONG\"]=363;values[valuesById[364]=\"PENDING_NFT_AIRDROP_ALREADY_EXISTS\"]=364;values[valuesById[365]=\"ACCOUNT_HAS_PENDING_AIRDROPS\"]=365;values[valuesById[366]=\"THROTTLED_AT_CONSENSUS\"]=366;values[valuesById[367]=\"INVALID_PENDING_AIRDROP_ID\"]=367;values[valuesById[368]=\"TOKEN_AIRDROP_WITH_FALLBACK_ROYALTY\"]=368;values[valuesById[369]=\"INVALID_TOKEN_IN_PENDING_AIRDROP\"]=369;values[valuesById[370]=\"SCHEDULE_EXPIRY_IS_BUSY\"]=370;values[valuesById[371]=\"INVALID_GRPC_CERTIFICATE_HASH\"]=371;values[valuesById[372]=\"MISSING_EXPIRY_TIME\"]=372;values[valuesById[373]=\"NO_SCHEDULING_ALLOWED_AFTER_SCHEDULED_RECURSION\"]=373;values[valuesById[374]=\"RECURSIVE_SCHEDULING_LIMIT_REACHED\"]=374;return values;}();proto.GetBySolidityIDQuery=function(){function GetBySolidityIDQuery(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.QueryHeader.decode(r,r.uint32());break;}case 2:{m.solidityID=r.string();break;}default:r.skipType(t&7);break;}}return m;};GetBySolidityIDQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.GetBySolidityIDQuery\";};return GetBySolidityIDQuery;}();proto.GetBySolidityIDResponse=function(){function GetBySolidityIDResponse(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.ResponseHeader.decode(r,r.uint32());break;}case 2:{m.accountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 3:{m.fileID=$root.proto.FileID.decode(r,r.uint32());break;}case 4:{m.contractID=$root.proto.ContractID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};GetBySolidityIDResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.GetBySolidityIDResponse\";};return GetBySolidityIDResponse;}();proto.ContractLoginfo=function(){function ContractLoginfo(p){this.topic=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.contractID=$root.proto.ContractID.decode(r,r.uint32());break;}case 2:{m.bloom=r.bytes();break;}case 3:{if(!(m.topic&&m.topic.length))m.topic=[];m.topic.push(r.bytes());break;}case 4:{m.data=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};ContractLoginfo.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ContractLoginfo\";};return ContractLoginfo;}();proto.ContractFunctionResult=function(){function ContractFunctionResult(p){this.logInfo=[];this.createdContractIDs=[];this.contractNonces=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.contractID=$root.proto.ContractID.decode(r,r.uint32());break;}case 2:{m.contractCallResult=r.bytes();break;}case 3:{m.errorMessage=r.string();break;}case 4:{m.bloom=r.bytes();break;}case 5:{m.gasUsed=r.uint64();break;}case 6:{if(!(m.logInfo&&m.logInfo.length))m.logInfo=[];m.logInfo.push($root.proto.ContractLoginfo.decode(r,r.uint32()));break;}case 7:{if(!(m.createdContractIDs&&m.createdContractIDs.length))m.createdContractIDs=[];m.createdContractIDs.push($root.proto.ContractID.decode(r,r.uint32()));break;}case 9:{m.evmAddress=$root.google.protobuf.BytesValue.decode(r,r.uint32());break;}case 10:{m.gas=r.int64();break;}case 11:{m.amount=r.int64();break;}case 12:{m.functionParameters=r.bytes();break;}case 13:{m.senderId=$root.proto.AccountID.decode(r,r.uint32());break;}case 14:{if(!(m.contractNonces&&m.contractNonces.length))m.contractNonces=[];m.contractNonces.push($root.proto.ContractNonceInfo.decode(r,r.uint32()));break;}case 15:{m.signerNonce=$root.google.protobuf.Int64Value.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};ContractFunctionResult.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ContractFunctionResult\";};return ContractFunctionResult;}();proto.ContractCallLocalQuery=function(){function ContractCallLocalQuery(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.QueryHeader.decode(r,r.uint32());break;}case 2:{m.contractID=$root.proto.ContractID.decode(r,r.uint32());break;}case 3:{m.gas=r.int64();break;}case 4:{m.functionParameters=r.bytes();break;}case 5:{m.maxResultSize=r.int64();break;}case 6:{m.senderId=$root.proto.AccountID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};ContractCallLocalQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ContractCallLocalQuery\";};return ContractCallLocalQuery;}();proto.ContractCallLocalResponse=function(){function ContractCallLocalResponse(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.ResponseHeader.decode(r,r.uint32());break;}case 2:{m.functionResult=$root.proto.ContractFunctionResult.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};ContractCallLocalResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ContractCallLocalResponse\";};return ContractCallLocalResponse;}();proto.ContractNonceInfo=function(){function ContractNonceInfo(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.contractId=$root.proto.ContractID.decode(r,r.uint32());break;}case 2:{m.nonce=r.int64();break;}default:r.skipType(t&7);break;}}return m;};ContractNonceInfo.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ContractNonceInfo\";};return ContractNonceInfo;}();proto.ContractGetInfoQuery=function(){function ContractGetInfoQuery(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.QueryHeader.decode(r,r.uint32());break;}case 2:{m.contractID=$root.proto.ContractID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};ContractGetInfoQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ContractGetInfoQuery\";};return ContractGetInfoQuery;}();proto.ContractGetInfoResponse=function(){function ContractGetInfoResponse(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.ResponseHeader.decode(r,r.uint32());break;}case 2:{m.contractInfo=$root.proto.ContractGetInfoResponse.ContractInfo.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};ContractGetInfoResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ContractGetInfoResponse\";};ContractGetInfoResponse.ContractInfo=function(){function ContractInfo(p){this.tokenRelationships=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.contractID=$root.proto.ContractID.decode(r,r.uint32());break;}case 2:{m.accountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 3:{m.contractAccountID=r.string();break;}case 4:{m.adminKey=$root.proto.Key.decode(r,r.uint32());break;}case 5:{m.expirationTime=$root.proto.Timestamp.decode(r,r.uint32());break;}case 6:{m.autoRenewPeriod=$root.proto.Duration.decode(r,r.uint32());break;}case 7:{m.storage=r.int64();break;}case 8:{m.memo=r.string();break;}case 9:{m.balance=r.uint64();break;}case 10:{m.deleted=r.bool();break;}case 11:{if(!(m.tokenRelationships&&m.tokenRelationships.length))m.tokenRelationships=[];m.tokenRelationships.push($root.proto.TokenRelationship.decode(r,r.uint32()));break;}case 12:{m.ledgerId=r.bytes();break;}case 13:{m.autoRenewAccountId=$root.proto.AccountID.decode(r,r.uint32());break;}case 14:{m.maxAutomaticTokenAssociations=r.int32();break;}case 15:{m.stakingInfo=$root.proto.StakingInfo.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};ContractInfo.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ContractGetInfoResponse.ContractInfo\";};return ContractInfo;}();return ContractGetInfoResponse;}();proto.ContractGetBytecodeQuery=function(){function ContractGetBytecodeQuery(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.QueryHeader.decode(r,r.uint32());break;}case 2:{m.contractID=$root.proto.ContractID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};ContractGetBytecodeQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ContractGetBytecodeQuery\";};return ContractGetBytecodeQuery;}();proto.ContractGetBytecodeResponse=function(){function ContractGetBytecodeResponse(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.ResponseHeader.decode(r,r.uint32());break;}case 6:{m.bytecode=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};ContractGetBytecodeResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ContractGetBytecodeResponse\";};return ContractGetBytecodeResponse;}();proto.ContractGetRecordsQuery=function(){function ContractGetRecordsQuery(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.QueryHeader.decode(r,r.uint32());break;}case 2:{m.contractID=$root.proto.ContractID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};ContractGetRecordsQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ContractGetRecordsQuery\";};return ContractGetRecordsQuery;}();proto.ContractGetRecordsResponse=function(){function ContractGetRecordsResponse(p){this.records=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.ResponseHeader.decode(r,r.uint32());break;}case 2:{m.contractID=$root.proto.ContractID.decode(r,r.uint32());break;}case 3:{if(!(m.records&&m.records.length))m.records=[];m.records.push($root.proto.TransactionRecord.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};ContractGetRecordsResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ContractGetRecordsResponse\";};return ContractGetRecordsResponse;}();proto.TransactionRecord=function(){function TransactionRecord(p){this.tokenTransferLists=[];this.assessedCustomFees=[];this.automaticTokenAssociations=[];this.paidStakingRewards=[];this.newPendingAirdrops=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.receipt=$root.proto.TransactionReceipt.decode(r,r.uint32());break;}case 2:{m.transactionHash=r.bytes();break;}case 3:{m.consensusTimestamp=$root.proto.Timestamp.decode(r,r.uint32());break;}case 4:{m.transactionID=$root.proto.TransactionID.decode(r,r.uint32());break;}case 5:{m.memo=r.string();break;}case 6:{m.transactionFee=r.uint64();break;}case 7:{m.contractCallResult=$root.proto.ContractFunctionResult.decode(r,r.uint32());break;}case 8:{m.contractCreateResult=$root.proto.ContractFunctionResult.decode(r,r.uint32());break;}case 10:{m.transferList=$root.proto.TransferList.decode(r,r.uint32());break;}case 11:{if(!(m.tokenTransferLists&&m.tokenTransferLists.length))m.tokenTransferLists=[];m.tokenTransferLists.push($root.proto.TokenTransferList.decode(r,r.uint32()));break;}case 12:{m.scheduleRef=$root.proto.ScheduleID.decode(r,r.uint32());break;}case 13:{if(!(m.assessedCustomFees&&m.assessedCustomFees.length))m.assessedCustomFees=[];m.assessedCustomFees.push($root.proto.AssessedCustomFee.decode(r,r.uint32()));break;}case 14:{if(!(m.automaticTokenAssociations&&m.automaticTokenAssociations.length))m.automaticTokenAssociations=[];m.automaticTokenAssociations.push($root.proto.TokenAssociation.decode(r,r.uint32()));break;}case 15:{m.parentConsensusTimestamp=$root.proto.Timestamp.decode(r,r.uint32());break;}case 16:{m.alias=r.bytes();break;}case 17:{m.ethereumHash=r.bytes();break;}case 18:{if(!(m.paidStakingRewards&&m.paidStakingRewards.length))m.paidStakingRewards=[];m.paidStakingRewards.push($root.proto.AccountAmount.decode(r,r.uint32()));break;}case 19:{m.prngBytes=r.bytes();break;}case 20:{m.prngNumber=r.int32();break;}case 21:{m.evmAddress=r.bytes();break;}case 22:{if(!(m.newPendingAirdrops&&m.newPendingAirdrops.length))m.newPendingAirdrops=[];m.newPendingAirdrops.push($root.proto.PendingAirdropRecord.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};TransactionRecord.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TransactionRecord\";};return TransactionRecord;}();proto.PendingAirdropRecord=function(){function PendingAirdropRecord(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.pendingAirdropId=$root.proto.PendingAirdropId.decode(r,r.uint32());break;}case 2:{m.pendingAirdropValue=$root.proto.PendingAirdropValue.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};PendingAirdropRecord.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.PendingAirdropRecord\";};return PendingAirdropRecord;}();proto.TransactionReceipt=function(){function TransactionReceipt(p){this.serialNumbers=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.status=r.int32();break;}case 2:{m.accountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 3:{m.fileID=$root.proto.FileID.decode(r,r.uint32());break;}case 4:{m.contractID=$root.proto.ContractID.decode(r,r.uint32());break;}case 5:{m.exchangeRate=$root.proto.ExchangeRateSet.decode(r,r.uint32());break;}case 6:{m.topicID=$root.proto.TopicID.decode(r,r.uint32());break;}case 7:{m.topicSequenceNumber=r.uint64();break;}case 8:{m.topicRunningHash=r.bytes();break;}case 9:{m.topicRunningHashVersion=r.uint64();break;}case 10:{m.tokenID=$root.proto.TokenID.decode(r,r.uint32());break;}case 11:{m.newTotalSupply=r.uint64();break;}case 12:{m.scheduleID=$root.proto.ScheduleID.decode(r,r.uint32());break;}case 13:{m.scheduledTransactionID=$root.proto.TransactionID.decode(r,r.uint32());break;}case 14:{if(!(m.serialNumbers&&m.serialNumbers.length))m.serialNumbers=[];if((t&7)===2){var c2=r.uint32()+r.pos;while(r.pos>>3){case 1:{m.hbarEquiv=r.int32();break;}case 2:{m.centEquiv=r.int32();break;}case 3:{m.expirationTime=$root.proto.TimestampSeconds.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};ExchangeRate.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ExchangeRate\";};return ExchangeRate;}();proto.ExchangeRateSet=function(){function ExchangeRateSet(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.currentRate=$root.proto.ExchangeRate.decode(r,r.uint32());break;}case 2:{m.nextRate=$root.proto.ExchangeRate.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};ExchangeRateSet.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ExchangeRateSet\";};return ExchangeRateSet;}();proto.CryptoGetAccountBalanceQuery=function(){function CryptoGetAccountBalanceQuery(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.QueryHeader.decode(r,r.uint32());break;}case 2:{m.accountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 3:{m.contractID=$root.proto.ContractID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};CryptoGetAccountBalanceQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.CryptoGetAccountBalanceQuery\";};return CryptoGetAccountBalanceQuery;}();proto.CryptoGetAccountBalanceResponse=function(){function CryptoGetAccountBalanceResponse(p){this.tokenBalances=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.ResponseHeader.decode(r,r.uint32());break;}case 2:{m.accountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 3:{m.balance=r.uint64();break;}case 4:{if(!(m.tokenBalances&&m.tokenBalances.length))m.tokenBalances=[];m.tokenBalances.push($root.proto.TokenBalance.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};CryptoGetAccountBalanceResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.CryptoGetAccountBalanceResponse\";};return CryptoGetAccountBalanceResponse;}();proto.CryptoGetAccountRecordsQuery=function(){function CryptoGetAccountRecordsQuery(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.QueryHeader.decode(r,r.uint32());break;}case 2:{m.accountID=$root.proto.AccountID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};CryptoGetAccountRecordsQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.CryptoGetAccountRecordsQuery\";};return CryptoGetAccountRecordsQuery;}();proto.CryptoGetAccountRecordsResponse=function(){function CryptoGetAccountRecordsResponse(p){this.records=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.ResponseHeader.decode(r,r.uint32());break;}case 2:{m.accountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 3:{if(!(m.records&&m.records.length))m.records=[];m.records.push($root.proto.TransactionRecord.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};CryptoGetAccountRecordsResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.CryptoGetAccountRecordsResponse\";};return CryptoGetAccountRecordsResponse;}();proto.CryptoGetInfoQuery=function(){function CryptoGetInfoQuery(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.QueryHeader.decode(r,r.uint32());break;}case 2:{m.accountID=$root.proto.AccountID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};CryptoGetInfoQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.CryptoGetInfoQuery\";};return CryptoGetInfoQuery;}();proto.CryptoGetInfoResponse=function(){function CryptoGetInfoResponse(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.ResponseHeader.decode(r,r.uint32());break;}case 2:{m.accountInfo=$root.proto.CryptoGetInfoResponse.AccountInfo.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};CryptoGetInfoResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.CryptoGetInfoResponse\";};CryptoGetInfoResponse.AccountInfo=function(){function AccountInfo(p){this.liveHashes=[];this.tokenRelationships=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.accountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 2:{m.contractAccountID=r.string();break;}case 3:{m.deleted=r.bool();break;}case 4:{m.proxyAccountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 6:{m.proxyReceived=r.int64();break;}case 7:{m.key=$root.proto.Key.decode(r,r.uint32());break;}case 8:{m.balance=r.uint64();break;}case 9:{m.generateSendRecordThreshold=r.uint64();break;}case 10:{m.generateReceiveRecordThreshold=r.uint64();break;}case 11:{m.receiverSigRequired=r.bool();break;}case 12:{m.expirationTime=$root.proto.Timestamp.decode(r,r.uint32());break;}case 13:{m.autoRenewPeriod=$root.proto.Duration.decode(r,r.uint32());break;}case 14:{if(!(m.liveHashes&&m.liveHashes.length))m.liveHashes=[];m.liveHashes.push($root.proto.LiveHash.decode(r,r.uint32()));break;}case 15:{if(!(m.tokenRelationships&&m.tokenRelationships.length))m.tokenRelationships=[];m.tokenRelationships.push($root.proto.TokenRelationship.decode(r,r.uint32()));break;}case 16:{m.memo=r.string();break;}case 17:{m.ownedNfts=r.int64();break;}case 18:{m.maxAutomaticTokenAssociations=r.int32();break;}case 19:{m.alias=r.bytes();break;}case 20:{m.ledgerId=r.bytes();break;}case 21:{m.ethereumNonce=r.int64();break;}case 22:{m.stakingInfo=$root.proto.StakingInfo.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};AccountInfo.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.CryptoGetInfoResponse.AccountInfo\";};return AccountInfo;}();return CryptoGetInfoResponse;}();proto.CryptoGetLiveHashQuery=function(){function CryptoGetLiveHashQuery(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.QueryHeader.decode(r,r.uint32());break;}case 2:{m.accountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 3:{m.hash=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};CryptoGetLiveHashQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.CryptoGetLiveHashQuery\";};return CryptoGetLiveHashQuery;}();proto.CryptoGetLiveHashResponse=function(){function CryptoGetLiveHashResponse(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.ResponseHeader.decode(r,r.uint32());break;}case 2:{m.liveHash=$root.proto.LiveHash.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};CryptoGetLiveHashResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.CryptoGetLiveHashResponse\";};return CryptoGetLiveHashResponse;}();proto.CryptoGetStakersQuery=function(){function CryptoGetStakersQuery(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.QueryHeader.decode(r,r.uint32());break;}case 2:{m.accountID=$root.proto.AccountID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};CryptoGetStakersQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.CryptoGetStakersQuery\";};return CryptoGetStakersQuery;}();proto.ProxyStaker=function(){function ProxyStaker(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.accountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 2:{m.amount=r.int64();break;}default:r.skipType(t&7);break;}}return m;};ProxyStaker.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ProxyStaker\";};return ProxyStaker;}();proto.AllProxyStakers=function(){function AllProxyStakers(p){this.proxyStaker=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.accountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 2:{if(!(m.proxyStaker&&m.proxyStaker.length))m.proxyStaker=[];m.proxyStaker.push($root.proto.ProxyStaker.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};AllProxyStakers.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.AllProxyStakers\";};return AllProxyStakers;}();proto.CryptoGetStakersResponse=function(){function CryptoGetStakersResponse(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.ResponseHeader.decode(r,r.uint32());break;}case 3:{m.stakers=$root.proto.AllProxyStakers.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};CryptoGetStakersResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.CryptoGetStakersResponse\";};return CryptoGetStakersResponse;}();proto.FileGetContentsQuery=function(){function FileGetContentsQuery(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.QueryHeader.decode(r,r.uint32());break;}case 2:{m.fileID=$root.proto.FileID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};FileGetContentsQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.FileGetContentsQuery\";};return FileGetContentsQuery;}();proto.FileGetContentsResponse=function(){function FileGetContentsResponse(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.ResponseHeader.decode(r,r.uint32());break;}case 2:{m.fileContents=$root.proto.FileGetContentsResponse.FileContents.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};FileGetContentsResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.FileGetContentsResponse\";};FileGetContentsResponse.FileContents=function(){function FileContents(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.fileID=$root.proto.FileID.decode(r,r.uint32());break;}case 2:{m.contents=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};FileContents.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.FileGetContentsResponse.FileContents\";};return FileContents;}();return FileGetContentsResponse;}();proto.FileGetInfoQuery=function(){function FileGetInfoQuery(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.QueryHeader.decode(r,r.uint32());break;}case 2:{m.fileID=$root.proto.FileID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};FileGetInfoQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.FileGetInfoQuery\";};return FileGetInfoQuery;}();proto.FileGetInfoResponse=function(){function FileGetInfoResponse(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.ResponseHeader.decode(r,r.uint32());break;}case 2:{m.fileInfo=$root.proto.FileGetInfoResponse.FileInfo.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};FileGetInfoResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.FileGetInfoResponse\";};FileGetInfoResponse.FileInfo=function(){function FileInfo(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.fileID=$root.proto.FileID.decode(r,r.uint32());break;}case 2:{m.size=r.int64();break;}case 3:{m.expirationTime=$root.proto.Timestamp.decode(r,r.uint32());break;}case 4:{m.deleted=r.bool();break;}case 5:{m.keys=$root.proto.KeyList.decode(r,r.uint32());break;}case 6:{m.memo=r.string();break;}case 7:{m.ledgerId=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};FileInfo.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.FileGetInfoResponse.FileInfo\";};return FileInfo;}();return FileGetInfoResponse;}();proto.TransactionGetReceiptQuery=function(){function TransactionGetReceiptQuery(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.QueryHeader.decode(r,r.uint32());break;}case 2:{m.transactionID=$root.proto.TransactionID.decode(r,r.uint32());break;}case 3:{m.includeDuplicates=r.bool();break;}case 4:{m.includeChildReceipts=r.bool();break;}default:r.skipType(t&7);break;}}return m;};TransactionGetReceiptQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TransactionGetReceiptQuery\";};return TransactionGetReceiptQuery;}();proto.TransactionGetReceiptResponse=function(){function TransactionGetReceiptResponse(p){this.duplicateTransactionReceipts=[];this.childTransactionReceipts=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.ResponseHeader.decode(r,r.uint32());break;}case 2:{m.receipt=$root.proto.TransactionReceipt.decode(r,r.uint32());break;}case 4:{if(!(m.duplicateTransactionReceipts&&m.duplicateTransactionReceipts.length))m.duplicateTransactionReceipts=[];m.duplicateTransactionReceipts.push($root.proto.TransactionReceipt.decode(r,r.uint32()));break;}case 5:{if(!(m.childTransactionReceipts&&m.childTransactionReceipts.length))m.childTransactionReceipts=[];m.childTransactionReceipts.push($root.proto.TransactionReceipt.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};TransactionGetReceiptResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TransactionGetReceiptResponse\";};return TransactionGetReceiptResponse;}();proto.TransactionGetRecordQuery=function(){function TransactionGetRecordQuery(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.QueryHeader.decode(r,r.uint32());break;}case 2:{m.transactionID=$root.proto.TransactionID.decode(r,r.uint32());break;}case 3:{m.includeDuplicates=r.bool();break;}case 4:{m.includeChildRecords=r.bool();break;}default:r.skipType(t&7);break;}}return m;};TransactionGetRecordQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TransactionGetRecordQuery\";};return TransactionGetRecordQuery;}();proto.TransactionGetRecordResponse=function(){function TransactionGetRecordResponse(p){this.duplicateTransactionRecords=[];this.childTransactionRecords=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.ResponseHeader.decode(r,r.uint32());break;}case 3:{m.transactionRecord=$root.proto.TransactionRecord.decode(r,r.uint32());break;}case 4:{if(!(m.duplicateTransactionRecords&&m.duplicateTransactionRecords.length))m.duplicateTransactionRecords=[];m.duplicateTransactionRecords.push($root.proto.TransactionRecord.decode(r,r.uint32()));break;}case 5:{if(!(m.childTransactionRecords&&m.childTransactionRecords.length))m.childTransactionRecords=[];m.childTransactionRecords.push($root.proto.TransactionRecord.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};TransactionGetRecordResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TransactionGetRecordResponse\";};return TransactionGetRecordResponse;}();proto.TransactionGetFastRecordQuery=function(){function TransactionGetFastRecordQuery(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.QueryHeader.decode(r,r.uint32());break;}case 2:{m.transactionID=$root.proto.TransactionID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};TransactionGetFastRecordQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TransactionGetFastRecordQuery\";};return TransactionGetFastRecordQuery;}();proto.TransactionGetFastRecordResponse=function(){function TransactionGetFastRecordResponse(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.ResponseHeader.decode(r,r.uint32());break;}case 2:{m.transactionRecord=$root.proto.TransactionRecord.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};TransactionGetFastRecordResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TransactionGetFastRecordResponse\";};return TransactionGetFastRecordResponse;}();proto.ConsensusGetTopicInfoQuery=function(){function ConsensusGetTopicInfoQuery(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.QueryHeader.decode(r,r.uint32());break;}case 2:{m.topicID=$root.proto.TopicID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};ConsensusGetTopicInfoQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ConsensusGetTopicInfoQuery\";};return ConsensusGetTopicInfoQuery;}();proto.ConsensusGetTopicInfoResponse=function(){function ConsensusGetTopicInfoResponse(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.ResponseHeader.decode(r,r.uint32());break;}case 2:{m.topicID=$root.proto.TopicID.decode(r,r.uint32());break;}case 5:{m.topicInfo=$root.proto.ConsensusTopicInfo.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};ConsensusGetTopicInfoResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ConsensusGetTopicInfoResponse\";};return ConsensusGetTopicInfoResponse;}();proto.ConsensusTopicInfo=function(){function ConsensusTopicInfo(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.memo=r.string();break;}case 2:{m.runningHash=r.bytes();break;}case 3:{m.sequenceNumber=r.uint64();break;}case 4:{m.expirationTime=$root.proto.Timestamp.decode(r,r.uint32());break;}case 5:{m.adminKey=$root.proto.Key.decode(r,r.uint32());break;}case 6:{m.submitKey=$root.proto.Key.decode(r,r.uint32());break;}case 7:{m.autoRenewPeriod=$root.proto.Duration.decode(r,r.uint32());break;}case 8:{m.autoRenewAccount=$root.proto.AccountID.decode(r,r.uint32());break;}case 9:{m.ledgerId=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};ConsensusTopicInfo.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ConsensusTopicInfo\";};return ConsensusTopicInfo;}();proto.NetworkGetVersionInfoQuery=function(){function NetworkGetVersionInfoQuery(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.QueryHeader.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};NetworkGetVersionInfoQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.NetworkGetVersionInfoQuery\";};return NetworkGetVersionInfoQuery;}();proto.NetworkGetVersionInfoResponse=function(){function NetworkGetVersionInfoResponse(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.ResponseHeader.decode(r,r.uint32());break;}case 2:{m.hapiProtoVersion=$root.proto.SemanticVersion.decode(r,r.uint32());break;}case 3:{m.hederaServicesVersion=$root.proto.SemanticVersion.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};NetworkGetVersionInfoResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.NetworkGetVersionInfoResponse\";};return NetworkGetVersionInfoResponse;}();proto.NetworkGetExecutionTimeQuery=function(){function NetworkGetExecutionTimeQuery(p){this.transactionIds=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.QueryHeader.decode(r,r.uint32());break;}case 2:{if(!(m.transactionIds&&m.transactionIds.length))m.transactionIds=[];m.transactionIds.push($root.proto.TransactionID.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};NetworkGetExecutionTimeQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.NetworkGetExecutionTimeQuery\";};return NetworkGetExecutionTimeQuery;}();proto.NetworkGetExecutionTimeResponse=function(){function NetworkGetExecutionTimeResponse(p){this.executionTimes=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.ResponseHeader.decode(r,r.uint32());break;}case 2:{if(!(m.executionTimes&&m.executionTimes.length))m.executionTimes=[];if((t&7)===2){var c2=r.uint32()+r.pos;while(r.pos>>3){case 1:{m.header=$root.proto.QueryHeader.decode(r,r.uint32());break;}case 2:{m.token=$root.proto.TokenID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};TokenGetInfoQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenGetInfoQuery\";};return TokenGetInfoQuery;}();proto.TokenInfo=function(){function TokenInfo(p){this.customFees=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.tokenId=$root.proto.TokenID.decode(r,r.uint32());break;}case 2:{m.name=r.string();break;}case 3:{m.symbol=r.string();break;}case 4:{m.decimals=r.uint32();break;}case 5:{m.totalSupply=r.uint64();break;}case 6:{m.treasury=$root.proto.AccountID.decode(r,r.uint32());break;}case 7:{m.adminKey=$root.proto.Key.decode(r,r.uint32());break;}case 8:{m.kycKey=$root.proto.Key.decode(r,r.uint32());break;}case 9:{m.freezeKey=$root.proto.Key.decode(r,r.uint32());break;}case 10:{m.wipeKey=$root.proto.Key.decode(r,r.uint32());break;}case 11:{m.supplyKey=$root.proto.Key.decode(r,r.uint32());break;}case 12:{m.defaultFreezeStatus=r.int32();break;}case 13:{m.defaultKycStatus=r.int32();break;}case 14:{m.deleted=r.bool();break;}case 15:{m.autoRenewAccount=$root.proto.AccountID.decode(r,r.uint32());break;}case 16:{m.autoRenewPeriod=$root.proto.Duration.decode(r,r.uint32());break;}case 17:{m.expiry=$root.proto.Timestamp.decode(r,r.uint32());break;}case 18:{m.memo=r.string();break;}case 19:{m.tokenType=r.int32();break;}case 20:{m.supplyType=r.int32();break;}case 21:{m.maxSupply=r.int64();break;}case 22:{m.feeScheduleKey=$root.proto.Key.decode(r,r.uint32());break;}case 23:{if(!(m.customFees&&m.customFees.length))m.customFees=[];m.customFees.push($root.proto.CustomFee.decode(r,r.uint32()));break;}case 24:{m.pauseKey=$root.proto.Key.decode(r,r.uint32());break;}case 25:{m.pauseStatus=r.int32();break;}case 26:{m.ledgerId=r.bytes();break;}case 27:{m.metadata=r.bytes();break;}case 28:{m.metadataKey=$root.proto.Key.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};TokenInfo.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenInfo\";};return TokenInfo;}();proto.TokenGetInfoResponse=function(){function TokenGetInfoResponse(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.ResponseHeader.decode(r,r.uint32());break;}case 2:{m.tokenInfo=$root.proto.TokenInfo.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};TokenGetInfoResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenGetInfoResponse\";};return TokenGetInfoResponse;}();proto.ScheduleGetInfoQuery=function(){function ScheduleGetInfoQuery(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.QueryHeader.decode(r,r.uint32());break;}case 2:{m.scheduleID=$root.proto.ScheduleID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};ScheduleGetInfoQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ScheduleGetInfoQuery\";};return ScheduleGetInfoQuery;}();proto.ScheduleInfo=function(){function ScheduleInfo(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.scheduleID=$root.proto.ScheduleID.decode(r,r.uint32());break;}case 2:{m.deletionTime=$root.proto.Timestamp.decode(r,r.uint32());break;}case 3:{m.executionTime=$root.proto.Timestamp.decode(r,r.uint32());break;}case 4:{m.expirationTime=$root.proto.Timestamp.decode(r,r.uint32());break;}case 5:{m.scheduledTransactionBody=$root.proto.SchedulableTransactionBody.decode(r,r.uint32());break;}case 6:{m.memo=r.string();break;}case 7:{m.adminKey=$root.proto.Key.decode(r,r.uint32());break;}case 8:{m.signers=$root.proto.KeyList.decode(r,r.uint32());break;}case 9:{m.creatorAccountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 10:{m.payerAccountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 11:{m.scheduledTransactionID=$root.proto.TransactionID.decode(r,r.uint32());break;}case 12:{m.ledgerId=r.bytes();break;}case 13:{m.waitForExpiry=r.bool();break;}default:r.skipType(t&7);break;}}return m;};ScheduleInfo.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ScheduleInfo\";};return ScheduleInfo;}();proto.ScheduleGetInfoResponse=function(){function ScheduleGetInfoResponse(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.ResponseHeader.decode(r,r.uint32());break;}case 2:{m.scheduleInfo=$root.proto.ScheduleInfo.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};ScheduleGetInfoResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ScheduleGetInfoResponse\";};return ScheduleGetInfoResponse;}();proto.TokenGetAccountNftInfosQuery=function(){function TokenGetAccountNftInfosQuery(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.QueryHeader.decode(r,r.uint32());break;}case 2:{m.accountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 3:{m.start=r.int64();break;}case 4:{m.end=r.int64();break;}default:r.skipType(t&7);break;}}return m;};TokenGetAccountNftInfosQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenGetAccountNftInfosQuery\";};return TokenGetAccountNftInfosQuery;}();proto.TokenGetAccountNftInfosResponse=function(){function TokenGetAccountNftInfosResponse(p){this.nfts=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.ResponseHeader.decode(r,r.uint32());break;}case 2:{if(!(m.nfts&&m.nfts.length))m.nfts=[];m.nfts.push($root.proto.TokenNftInfo.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};TokenGetAccountNftInfosResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenGetAccountNftInfosResponse\";};return TokenGetAccountNftInfosResponse;}();proto.TokenGetNftInfoQuery=function(){function TokenGetNftInfoQuery(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.QueryHeader.decode(r,r.uint32());break;}case 2:{m.nftID=$root.proto.NftID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};TokenGetNftInfoQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenGetNftInfoQuery\";};return TokenGetNftInfoQuery;}();proto.TokenNftInfo=function(){function TokenNftInfo(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.nftID=$root.proto.NftID.decode(r,r.uint32());break;}case 2:{m.accountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 3:{m.creationTime=$root.proto.Timestamp.decode(r,r.uint32());break;}case 4:{m.metadata=r.bytes();break;}case 5:{m.ledgerId=r.bytes();break;}case 6:{m.spenderId=$root.proto.AccountID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};TokenNftInfo.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenNftInfo\";};return TokenNftInfo;}();proto.TokenGetNftInfoResponse=function(){function TokenGetNftInfoResponse(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.ResponseHeader.decode(r,r.uint32());break;}case 2:{m.nft=$root.proto.TokenNftInfo.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};TokenGetNftInfoResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenGetNftInfoResponse\";};return TokenGetNftInfoResponse;}();proto.TokenGetNftInfosQuery=function(){function TokenGetNftInfosQuery(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.QueryHeader.decode(r,r.uint32());break;}case 2:{m.tokenID=$root.proto.TokenID.decode(r,r.uint32());break;}case 3:{m.start=r.int64();break;}case 4:{m.end=r.int64();break;}default:r.skipType(t&7);break;}}return m;};TokenGetNftInfosQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenGetNftInfosQuery\";};return TokenGetNftInfosQuery;}();proto.TokenGetNftInfosResponse=function(){function TokenGetNftInfosResponse(p){this.nfts=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.ResponseHeader.decode(r,r.uint32());break;}case 2:{m.tokenID=$root.proto.TokenID.decode(r,r.uint32());break;}case 3:{if(!(m.nfts&&m.nfts.length))m.nfts=[];m.nfts.push($root.proto.TokenNftInfo.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};TokenGetNftInfosResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenGetNftInfosResponse\";};return TokenGetNftInfosResponse;}();proto.GetAccountDetailsQuery=function(){function GetAccountDetailsQuery(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.QueryHeader.decode(r,r.uint32());break;}case 2:{m.accountId=$root.proto.AccountID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};GetAccountDetailsQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.GetAccountDetailsQuery\";};return GetAccountDetailsQuery;}();proto.GetAccountDetailsResponse=function(){function GetAccountDetailsResponse(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.ResponseHeader.decode(r,r.uint32());break;}case 2:{m.accountDetails=$root.proto.GetAccountDetailsResponse.AccountDetails.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};GetAccountDetailsResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.GetAccountDetailsResponse\";};GetAccountDetailsResponse.AccountDetails=function(){function AccountDetails(p){this.tokenRelationships=[];this.grantedCryptoAllowances=[];this.grantedNftAllowances=[];this.grantedTokenAllowances=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.accountId=$root.proto.AccountID.decode(r,r.uint32());break;}case 2:{m.contractAccountId=r.string();break;}case 3:{m.deleted=r.bool();break;}case 4:{m.proxyAccountId=$root.proto.AccountID.decode(r,r.uint32());break;}case 5:{m.proxyReceived=r.int64();break;}case 6:{m.key=$root.proto.Key.decode(r,r.uint32());break;}case 7:{m.balance=r.uint64();break;}case 8:{m.receiverSigRequired=r.bool();break;}case 9:{m.expirationTime=$root.proto.Timestamp.decode(r,r.uint32());break;}case 10:{m.autoRenewPeriod=$root.proto.Duration.decode(r,r.uint32());break;}case 11:{if(!(m.tokenRelationships&&m.tokenRelationships.length))m.tokenRelationships=[];m.tokenRelationships.push($root.proto.TokenRelationship.decode(r,r.uint32()));break;}case 12:{m.memo=r.string();break;}case 13:{m.ownedNfts=r.int64();break;}case 14:{m.maxAutomaticTokenAssociations=r.int32();break;}case 15:{m.alias=r.bytes();break;}case 16:{m.ledgerId=r.bytes();break;}case 17:{if(!(m.grantedCryptoAllowances&&m.grantedCryptoAllowances.length))m.grantedCryptoAllowances=[];m.grantedCryptoAllowances.push($root.proto.GrantedCryptoAllowance.decode(r,r.uint32()));break;}case 18:{if(!(m.grantedNftAllowances&&m.grantedNftAllowances.length))m.grantedNftAllowances=[];m.grantedNftAllowances.push($root.proto.GrantedNftAllowance.decode(r,r.uint32()));break;}case 19:{if(!(m.grantedTokenAllowances&&m.grantedTokenAllowances.length))m.grantedTokenAllowances=[];m.grantedTokenAllowances.push($root.proto.GrantedTokenAllowance.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};AccountDetails.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.GetAccountDetailsResponse.AccountDetails\";};return AccountDetails;}();return GetAccountDetailsResponse;}();proto.GrantedCryptoAllowance=function(){function GrantedCryptoAllowance(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.spender=$root.proto.AccountID.decode(r,r.uint32());break;}case 2:{m.amount=r.int64();break;}default:r.skipType(t&7);break;}}return m;};GrantedCryptoAllowance.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.GrantedCryptoAllowance\";};return GrantedCryptoAllowance;}();proto.GrantedNftAllowance=function(){function GrantedNftAllowance(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.tokenId=$root.proto.TokenID.decode(r,r.uint32());break;}case 2:{m.spender=$root.proto.AccountID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};GrantedNftAllowance.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.GrantedNftAllowance\";};return GrantedNftAllowance;}();proto.GrantedTokenAllowance=function(){function GrantedTokenAllowance(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.tokenId=$root.proto.TokenID.decode(r,r.uint32());break;}case 2:{m.spender=$root.proto.AccountID.decode(r,r.uint32());break;}case 3:{m.amount=r.int64();break;}default:r.skipType(t&7);break;}}return m;};GrantedTokenAllowance.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.GrantedTokenAllowance\";};return GrantedTokenAllowance;}();proto.Response=function(){function Response(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.getByKey=$root.proto.GetByKeyResponse.decode(r,r.uint32());break;}case 2:{m.getBySolidityID=$root.proto.GetBySolidityIDResponse.decode(r,r.uint32());break;}case 3:{m.contractCallLocal=$root.proto.ContractCallLocalResponse.decode(r,r.uint32());break;}case 5:{m.contractGetBytecodeResponse=$root.proto.ContractGetBytecodeResponse.decode(r,r.uint32());break;}case 4:{m.contractGetInfo=$root.proto.ContractGetInfoResponse.decode(r,r.uint32());break;}case 6:{m.contractGetRecordsResponse=$root.proto.ContractGetRecordsResponse.decode(r,r.uint32());break;}case 7:{m.cryptogetAccountBalance=$root.proto.CryptoGetAccountBalanceResponse.decode(r,r.uint32());break;}case 8:{m.cryptoGetAccountRecords=$root.proto.CryptoGetAccountRecordsResponse.decode(r,r.uint32());break;}case 9:{m.cryptoGetInfo=$root.proto.CryptoGetInfoResponse.decode(r,r.uint32());break;}case 10:{m.cryptoGetLiveHash=$root.proto.CryptoGetLiveHashResponse.decode(r,r.uint32());break;}case 11:{m.cryptoGetProxyStakers=$root.proto.CryptoGetStakersResponse.decode(r,r.uint32());break;}case 12:{m.fileGetContents=$root.proto.FileGetContentsResponse.decode(r,r.uint32());break;}case 13:{m.fileGetInfo=$root.proto.FileGetInfoResponse.decode(r,r.uint32());break;}case 14:{m.transactionGetReceipt=$root.proto.TransactionGetReceiptResponse.decode(r,r.uint32());break;}case 15:{m.transactionGetRecord=$root.proto.TransactionGetRecordResponse.decode(r,r.uint32());break;}case 16:{m.transactionGetFastRecord=$root.proto.TransactionGetFastRecordResponse.decode(r,r.uint32());break;}case 150:{m.consensusGetTopicInfo=$root.proto.ConsensusGetTopicInfoResponse.decode(r,r.uint32());break;}case 151:{m.networkGetVersionInfo=$root.proto.NetworkGetVersionInfoResponse.decode(r,r.uint32());break;}case 152:{m.tokenGetInfo=$root.proto.TokenGetInfoResponse.decode(r,r.uint32());break;}case 153:{m.scheduleGetInfo=$root.proto.ScheduleGetInfoResponse.decode(r,r.uint32());break;}case 154:{m.tokenGetAccountNftInfos=$root.proto.TokenGetAccountNftInfosResponse.decode(r,r.uint32());break;}case 155:{m.tokenGetNftInfo=$root.proto.TokenGetNftInfoResponse.decode(r,r.uint32());break;}case 156:{m.tokenGetNftInfos=$root.proto.TokenGetNftInfosResponse.decode(r,r.uint32());break;}case 157:{m.networkGetExecutionTime=$root.proto.NetworkGetExecutionTimeResponse.decode(r,r.uint32());break;}case 158:{m.accountDetails=$root.proto.GetAccountDetailsResponse.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};Response.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.Response\";};return Response;}();proto.TransactionResponse=function(){function TransactionResponse(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.nodeTransactionPrecheckCode=r.int32();break;}case 2:{m.cost=r.uint64();break;}default:r.skipType(t&7);break;}}return m;};TransactionResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TransactionResponse\";};return TransactionResponse;}();proto.ConsensusService=function(){function ConsensusService(rpcImpl,requestDelimited,responseDelimited){$protobuf.rpc.Service.call(this,rpcImpl,requestDelimited,responseDelimited);}(ConsensusService.prototype=Object.create($protobuf.rpc.Service.prototype)).constructor=ConsensusService;ConsensusService.create=function create(rpcImpl,requestDelimited,responseDelimited){return new this(rpcImpl,requestDelimited,responseDelimited);};Object.defineProperty(ConsensusService.prototype.createTopic=function createTopic(request,callback){return this.rpcCall(createTopic,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"createTopic\"});Object.defineProperty(ConsensusService.prototype.updateTopic=function updateTopic(request,callback){return this.rpcCall(updateTopic,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"updateTopic\"});Object.defineProperty(ConsensusService.prototype.deleteTopic=function deleteTopic(request,callback){return this.rpcCall(deleteTopic,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"deleteTopic\"});Object.defineProperty(ConsensusService.prototype.getTopicInfo=function getTopicInfo(request,callback){return this.rpcCall(getTopicInfo,$root.proto.Query,$root.proto.Response,request,callback);},\"name\",{value:\"getTopicInfo\"});Object.defineProperty(ConsensusService.prototype.submitMessage=function submitMessage(request,callback){return this.rpcCall(submitMessage,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"submitMessage\"});return ConsensusService;}();proto.CryptoService=function(){function CryptoService(rpcImpl,requestDelimited,responseDelimited){$protobuf.rpc.Service.call(this,rpcImpl,requestDelimited,responseDelimited);}(CryptoService.prototype=Object.create($protobuf.rpc.Service.prototype)).constructor=CryptoService;CryptoService.create=function create(rpcImpl,requestDelimited,responseDelimited){return new this(rpcImpl,requestDelimited,responseDelimited);};Object.defineProperty(CryptoService.prototype.createAccount=function createAccount(request,callback){return this.rpcCall(createAccount,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"createAccount\"});Object.defineProperty(CryptoService.prototype.updateAccount=function updateAccount(request,callback){return this.rpcCall(updateAccount,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"updateAccount\"});Object.defineProperty(CryptoService.prototype.cryptoTransfer=function cryptoTransfer(request,callback){return this.rpcCall(cryptoTransfer,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"cryptoTransfer\"});Object.defineProperty(CryptoService.prototype.cryptoDelete=function cryptoDelete(request,callback){return this.rpcCall(cryptoDelete,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"cryptoDelete\"});Object.defineProperty(CryptoService.prototype.approveAllowances=function approveAllowances(request,callback){return this.rpcCall(approveAllowances,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"approveAllowances\"});Object.defineProperty(CryptoService.prototype.deleteAllowances=function deleteAllowances(request,callback){return this.rpcCall(deleteAllowances,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"deleteAllowances\"});Object.defineProperty(CryptoService.prototype.addLiveHash=function addLiveHash(request,callback){return this.rpcCall(addLiveHash,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"addLiveHash\"});Object.defineProperty(CryptoService.prototype.deleteLiveHash=function deleteLiveHash(request,callback){return this.rpcCall(deleteLiveHash,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"deleteLiveHash\"});Object.defineProperty(CryptoService.prototype.getLiveHash=function getLiveHash(request,callback){return this.rpcCall(getLiveHash,$root.proto.Query,$root.proto.Response,request,callback);},\"name\",{value:\"getLiveHash\"});Object.defineProperty(CryptoService.prototype.getAccountRecords=function getAccountRecords(request,callback){return this.rpcCall(getAccountRecords,$root.proto.Query,$root.proto.Response,request,callback);},\"name\",{value:\"getAccountRecords\"});Object.defineProperty(CryptoService.prototype.cryptoGetBalance=function cryptoGetBalance(request,callback){return this.rpcCall(cryptoGetBalance,$root.proto.Query,$root.proto.Response,request,callback);},\"name\",{value:\"cryptoGetBalance\"});Object.defineProperty(CryptoService.prototype.getAccountInfo=function getAccountInfo(request,callback){return this.rpcCall(getAccountInfo,$root.proto.Query,$root.proto.Response,request,callback);},\"name\",{value:\"getAccountInfo\"});Object.defineProperty(CryptoService.prototype.getTransactionReceipts=function getTransactionReceipts(request,callback){return this.rpcCall(getTransactionReceipts,$root.proto.Query,$root.proto.Response,request,callback);},\"name\",{value:\"getTransactionReceipts\"});Object.defineProperty(CryptoService.prototype.getFastTransactionRecord=function getFastTransactionRecord(request,callback){return this.rpcCall(getFastTransactionRecord,$root.proto.Query,$root.proto.Response,request,callback);},\"name\",{value:\"getFastTransactionRecord\"});Object.defineProperty(CryptoService.prototype.getTxRecordByTxID=function getTxRecordByTxID(request,callback){return this.rpcCall(getTxRecordByTxID,$root.proto.Query,$root.proto.Response,request,callback);},\"name\",{value:\"getTxRecordByTxID\"});Object.defineProperty(CryptoService.prototype.getStakersByAccountID=function getStakersByAccountID(request,callback){return this.rpcCall(getStakersByAccountID,$root.proto.Query,$root.proto.Response,request,callback);},\"name\",{value:\"getStakersByAccountID\"});return CryptoService;}();proto.FileService=function(){function FileService(rpcImpl,requestDelimited,responseDelimited){$protobuf.rpc.Service.call(this,rpcImpl,requestDelimited,responseDelimited);}(FileService.prototype=Object.create($protobuf.rpc.Service.prototype)).constructor=FileService;FileService.create=function create(rpcImpl,requestDelimited,responseDelimited){return new this(rpcImpl,requestDelimited,responseDelimited);};Object.defineProperty(FileService.prototype.createFile=function createFile(request,callback){return this.rpcCall(createFile,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"createFile\"});Object.defineProperty(FileService.prototype.updateFile=function updateFile(request,callback){return this.rpcCall(updateFile,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"updateFile\"});Object.defineProperty(FileService.prototype.deleteFile=function deleteFile(request,callback){return this.rpcCall(deleteFile,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"deleteFile\"});Object.defineProperty(FileService.prototype.appendContent=function appendContent(request,callback){return this.rpcCall(appendContent,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"appendContent\"});Object.defineProperty(FileService.prototype.getFileContent=function getFileContent(request,callback){return this.rpcCall(getFileContent,$root.proto.Query,$root.proto.Response,request,callback);},\"name\",{value:\"getFileContent\"});Object.defineProperty(FileService.prototype.getFileInfo=function getFileInfo(request,callback){return this.rpcCall(getFileInfo,$root.proto.Query,$root.proto.Response,request,callback);},\"name\",{value:\"getFileInfo\"});Object.defineProperty(FileService.prototype.systemDelete=function systemDelete(request,callback){return this.rpcCall(systemDelete,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"systemDelete\"});Object.defineProperty(FileService.prototype.systemUndelete=function systemUndelete(request,callback){return this.rpcCall(systemUndelete,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"systemUndelete\"});return FileService;}();proto.FreezeService=function(){function FreezeService(rpcImpl,requestDelimited,responseDelimited){$protobuf.rpc.Service.call(this,rpcImpl,requestDelimited,responseDelimited);}(FreezeService.prototype=Object.create($protobuf.rpc.Service.prototype)).constructor=FreezeService;FreezeService.create=function create(rpcImpl,requestDelimited,responseDelimited){return new this(rpcImpl,requestDelimited,responseDelimited);};Object.defineProperty(FreezeService.prototype.freeze=function freeze(request,callback){return this.rpcCall(freeze,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"freeze\"});return FreezeService;}();proto.NetworkService=function(){function NetworkService(rpcImpl,requestDelimited,responseDelimited){$protobuf.rpc.Service.call(this,rpcImpl,requestDelimited,responseDelimited);}(NetworkService.prototype=Object.create($protobuf.rpc.Service.prototype)).constructor=NetworkService;NetworkService.create=function create(rpcImpl,requestDelimited,responseDelimited){return new this(rpcImpl,requestDelimited,responseDelimited);};Object.defineProperty(NetworkService.prototype.getVersionInfo=function getVersionInfo(request,callback){return this.rpcCall(getVersionInfo,$root.proto.Query,$root.proto.Response,request,callback);},\"name\",{value:\"getVersionInfo\"});Object.defineProperty(NetworkService.prototype.getExecutionTime=function getExecutionTime(request,callback){return this.rpcCall(getExecutionTime,$root.proto.Query,$root.proto.Response,request,callback);},\"name\",{value:\"getExecutionTime\"});Object.defineProperty(NetworkService.prototype.uncheckedSubmit=function uncheckedSubmit(request,callback){return this.rpcCall(uncheckedSubmit,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"uncheckedSubmit\"});Object.defineProperty(NetworkService.prototype.getAccountDetails=function getAccountDetails(request,callback){return this.rpcCall(getAccountDetails,$root.proto.Query,$root.proto.Response,request,callback);},\"name\",{value:\"getAccountDetails\"});return NetworkService;}();proto.ScheduleService=function(){function ScheduleService(rpcImpl,requestDelimited,responseDelimited){$protobuf.rpc.Service.call(this,rpcImpl,requestDelimited,responseDelimited);}(ScheduleService.prototype=Object.create($protobuf.rpc.Service.prototype)).constructor=ScheduleService;ScheduleService.create=function create(rpcImpl,requestDelimited,responseDelimited){return new this(rpcImpl,requestDelimited,responseDelimited);};Object.defineProperty(ScheduleService.prototype.createSchedule=function createSchedule(request,callback){return this.rpcCall(createSchedule,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"createSchedule\"});Object.defineProperty(ScheduleService.prototype.signSchedule=function signSchedule(request,callback){return this.rpcCall(signSchedule,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"signSchedule\"});Object.defineProperty(ScheduleService.prototype.deleteSchedule=function deleteSchedule(request,callback){return this.rpcCall(deleteSchedule,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"deleteSchedule\"});Object.defineProperty(ScheduleService.prototype.getScheduleInfo=function getScheduleInfo(request,callback){return this.rpcCall(getScheduleInfo,$root.proto.Query,$root.proto.Response,request,callback);},\"name\",{value:\"getScheduleInfo\"});return ScheduleService;}();proto.SmartContractService=function(){function SmartContractService(rpcImpl,requestDelimited,responseDelimited){$protobuf.rpc.Service.call(this,rpcImpl,requestDelimited,responseDelimited);}(SmartContractService.prototype=Object.create($protobuf.rpc.Service.prototype)).constructor=SmartContractService;SmartContractService.create=function create(rpcImpl,requestDelimited,responseDelimited){return new this(rpcImpl,requestDelimited,responseDelimited);};Object.defineProperty(SmartContractService.prototype.createContract=function createContract(request,callback){return this.rpcCall(createContract,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"createContract\"});Object.defineProperty(SmartContractService.prototype.updateContract=function updateContract(request,callback){return this.rpcCall(updateContract,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"updateContract\"});Object.defineProperty(SmartContractService.prototype.contractCallMethod=function contractCallMethod(request,callback){return this.rpcCall(contractCallMethod,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"contractCallMethod\"});Object.defineProperty(SmartContractService.prototype.getContractInfo=function getContractInfo(request,callback){return this.rpcCall(getContractInfo,$root.proto.Query,$root.proto.Response,request,callback);},\"name\",{value:\"getContractInfo\"});Object.defineProperty(SmartContractService.prototype.contractCallLocalMethod=function contractCallLocalMethod(request,callback){return this.rpcCall(contractCallLocalMethod,$root.proto.Query,$root.proto.Response,request,callback);},\"name\",{value:\"contractCallLocalMethod\"});Object.defineProperty(SmartContractService.prototype.contractGetBytecode=function contractGetBytecode(request,callback){return this.rpcCall(contractGetBytecode,$root.proto.Query,$root.proto.Response,request,callback);},\"name\",{value:\"ContractGetBytecode\"});Object.defineProperty(SmartContractService.prototype.getBySolidityID=function getBySolidityID(request,callback){return this.rpcCall(getBySolidityID,$root.proto.Query,$root.proto.Response,request,callback);},\"name\",{value:\"getBySolidityID\"});Object.defineProperty(SmartContractService.prototype.getTxRecordByContractID=function getTxRecordByContractID(request,callback){return this.rpcCall(getTxRecordByContractID,$root.proto.Query,$root.proto.Response,request,callback);},\"name\",{value:\"getTxRecordByContractID\"});Object.defineProperty(SmartContractService.prototype.deleteContract=function deleteContract(request,callback){return this.rpcCall(deleteContract,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"deleteContract\"});Object.defineProperty(SmartContractService.prototype.systemDelete=function systemDelete(request,callback){return this.rpcCall(systemDelete,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"systemDelete\"});Object.defineProperty(SmartContractService.prototype.systemUndelete=function systemUndelete(request,callback){return this.rpcCall(systemUndelete,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"systemUndelete\"});Object.defineProperty(SmartContractService.prototype.callEthereum=function callEthereum(request,callback){return this.rpcCall(callEthereum,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"callEthereum\"});return SmartContractService;}();proto.ThrottleGroup=function(){function ThrottleGroup(p){this.operations=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{if(!(m.operations&&m.operations.length))m.operations=[];if((t&7)===2){var c2=r.uint32()+r.pos;while(r.pos>>3){case 1:{m.name=r.string();break;}case 2:{m.burstPeriodMs=r.uint64();break;}case 3:{if(!(m.throttleGroups&&m.throttleGroups.length))m.throttleGroups=[];m.throttleGroups.push($root.proto.ThrottleGroup.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};ThrottleBucket.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ThrottleBucket\";};return ThrottleBucket;}();proto.ThrottleDefinitions=function(){function ThrottleDefinitions(p){this.throttleBuckets=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{if(!(m.throttleBuckets&&m.throttleBuckets.length))m.throttleBuckets=[];m.throttleBuckets.push($root.proto.ThrottleBucket.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};ThrottleDefinitions.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ThrottleDefinitions\";};return ThrottleDefinitions;}();proto.TokenService=function(){function TokenService(rpcImpl,requestDelimited,responseDelimited){$protobuf.rpc.Service.call(this,rpcImpl,requestDelimited,responseDelimited);}(TokenService.prototype=Object.create($protobuf.rpc.Service.prototype)).constructor=TokenService;TokenService.create=function create(rpcImpl,requestDelimited,responseDelimited){return new this(rpcImpl,requestDelimited,responseDelimited);};Object.defineProperty(TokenService.prototype.createToken=function createToken(request,callback){return this.rpcCall(createToken,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"createToken\"});Object.defineProperty(TokenService.prototype.updateToken=function updateToken(request,callback){return this.rpcCall(updateToken,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"updateToken\"});Object.defineProperty(TokenService.prototype.mintToken=function mintToken(request,callback){return this.rpcCall(mintToken,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"mintToken\"});Object.defineProperty(TokenService.prototype.burnToken=function burnToken(request,callback){return this.rpcCall(burnToken,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"burnToken\"});Object.defineProperty(TokenService.prototype.deleteToken=function deleteToken(request,callback){return this.rpcCall(deleteToken,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"deleteToken\"});Object.defineProperty(TokenService.prototype.wipeTokenAccount=function wipeTokenAccount(request,callback){return this.rpcCall(wipeTokenAccount,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"wipeTokenAccount\"});Object.defineProperty(TokenService.prototype.freezeTokenAccount=function freezeTokenAccount(request,callback){return this.rpcCall(freezeTokenAccount,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"freezeTokenAccount\"});Object.defineProperty(TokenService.prototype.unfreezeTokenAccount=function unfreezeTokenAccount(request,callback){return this.rpcCall(unfreezeTokenAccount,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"unfreezeTokenAccount\"});Object.defineProperty(TokenService.prototype.grantKycToTokenAccount=function grantKycToTokenAccount(request,callback){return this.rpcCall(grantKycToTokenAccount,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"grantKycToTokenAccount\"});Object.defineProperty(TokenService.prototype.revokeKycFromTokenAccount=function revokeKycFromTokenAccount(request,callback){return this.rpcCall(revokeKycFromTokenAccount,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"revokeKycFromTokenAccount\"});Object.defineProperty(TokenService.prototype.associateTokens=function associateTokens(request,callback){return this.rpcCall(associateTokens,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"associateTokens\"});Object.defineProperty(TokenService.prototype.dissociateTokens=function dissociateTokens(request,callback){return this.rpcCall(dissociateTokens,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"dissociateTokens\"});Object.defineProperty(TokenService.prototype.updateTokenFeeSchedule=function updateTokenFeeSchedule(request,callback){return this.rpcCall(updateTokenFeeSchedule,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"updateTokenFeeSchedule\"});Object.defineProperty(TokenService.prototype.getTokenInfo=function getTokenInfo(request,callback){return this.rpcCall(getTokenInfo,$root.proto.Query,$root.proto.Response,request,callback);},\"name\",{value:\"getTokenInfo\"});Object.defineProperty(TokenService.prototype.getAccountNftInfos=function getAccountNftInfos(request,callback){return this.rpcCall(getAccountNftInfos,$root.proto.Query,$root.proto.Response,request,callback);},\"name\",{value:\"getAccountNftInfos\"});Object.defineProperty(TokenService.prototype.getTokenNftInfo=function getTokenNftInfo(request,callback){return this.rpcCall(getTokenNftInfo,$root.proto.Query,$root.proto.Response,request,callback);},\"name\",{value:\"getTokenNftInfo\"});Object.defineProperty(TokenService.prototype.getTokenNftInfos=function getTokenNftInfos(request,callback){return this.rpcCall(getTokenNftInfos,$root.proto.Query,$root.proto.Response,request,callback);},\"name\",{value:\"getTokenNftInfos\"});Object.defineProperty(TokenService.prototype.pauseToken=function pauseToken(request,callback){return this.rpcCall(pauseToken,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"pauseToken\"});Object.defineProperty(TokenService.prototype.unpauseToken=function unpauseToken(request,callback){return this.rpcCall(unpauseToken,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"unpauseToken\"});Object.defineProperty(TokenService.prototype.updateNfts=function updateNfts(request,callback){return this.rpcCall(updateNfts,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"updateNfts\"});Object.defineProperty(TokenService.prototype.rejectToken=function rejectToken(request,callback){return this.rpcCall(rejectToken,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"rejectToken\"});Object.defineProperty(TokenService.prototype.airdropTokens=function airdropTokens(request,callback){return this.rpcCall(airdropTokens,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"airdropTokens\"});Object.defineProperty(TokenService.prototype.cancelAirdrop=function cancelAirdrop(request,callback){return this.rpcCall(cancelAirdrop,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"cancelAirdrop\"});Object.defineProperty(TokenService.prototype.claimAirdrop=function claimAirdrop(request,callback){return this.rpcCall(claimAirdrop,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"claimAirdrop\"});return TokenService;}();proto.SignedTransaction=function(){function SignedTransaction(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.bodyBytes=r.bytes();break;}case 2:{m.sigMap=$root.proto.SignatureMap.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};SignedTransaction.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.SignedTransaction\";};return SignedTransaction;}();proto.UtilService=function(){function UtilService(rpcImpl,requestDelimited,responseDelimited){$protobuf.rpc.Service.call(this,rpcImpl,requestDelimited,responseDelimited);}(UtilService.prototype=Object.create($protobuf.rpc.Service.prototype)).constructor=UtilService;UtilService.create=function create(rpcImpl,requestDelimited,responseDelimited){return new this(rpcImpl,requestDelimited,responseDelimited);};Object.defineProperty(UtilService.prototype.prng=function prng(request,callback){return this.rpcCall(prng,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"prng\"});return UtilService;}();proto.TokenUnitBalance=function(){function TokenUnitBalance(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.tokenId=$root.proto.TokenID.decode(r,r.uint32());break;}case 2:{m.balance=r.uint64();break;}default:r.skipType(t&7);break;}}return m;};TokenUnitBalance.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenUnitBalance\";};return TokenUnitBalance;}();proto.SingleAccountBalances=function(){function SingleAccountBalances(p){this.tokenUnitBalances=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.accountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 2:{m.hbarBalance=r.uint64();break;}case 3:{if(!(m.tokenUnitBalances&&m.tokenUnitBalances.length))m.tokenUnitBalances=[];m.tokenUnitBalances.push($root.proto.TokenUnitBalance.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};SingleAccountBalances.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.SingleAccountBalances\";};return SingleAccountBalances;}();proto.AllAccountBalances=function(){function AllAccountBalances(p){this.allAccounts=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.consensusTimestamp=$root.proto.Timestamp.decode(r,r.uint32());break;}case 2:{if(!(m.allAccounts&&m.allAccounts.length))m.allAccounts=[];m.allAccounts.push($root.proto.SingleAccountBalances.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};AllAccountBalances.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.AllAccountBalances\";};return AllAccountBalances;}();proto.ContractActions=function(){function ContractActions(p){this.contractActions=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{if(!(m.contractActions&&m.contractActions.length))m.contractActions=[];m.contractActions.push($root.proto.ContractAction.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};ContractActions.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ContractActions\";};return ContractActions;}();proto.ContractActionType=function(){const valuesById={},values=Object.create(valuesById);values[valuesById[0]=\"NO_ACTION\"]=0;values[valuesById[1]=\"CALL\"]=1;values[valuesById[2]=\"CREATE\"]=2;values[valuesById[3]=\"PRECOMPILE\"]=3;values[valuesById[4]=\"SYSTEM\"]=4;return values;}();proto.CallOperationType=function(){const valuesById={},values=Object.create(valuesById);values[valuesById[0]=\"OP_UNKNOWN\"]=0;values[valuesById[1]=\"OP_CALL\"]=1;values[valuesById[2]=\"OP_CALLCODE\"]=2;values[valuesById[3]=\"OP_DELEGATECALL\"]=3;values[valuesById[4]=\"OP_STATICCALL\"]=4;values[valuesById[5]=\"OP_CREATE\"]=5;values[valuesById[6]=\"OP_CREATE2\"]=6;return values;}();proto.ContractAction=function(){function ContractAction(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.callType=r.int32();break;}case 2:{m.callingAccount=$root.proto.AccountID.decode(r,r.uint32());break;}case 3:{m.callingContract=$root.proto.ContractID.decode(r,r.uint32());break;}case 4:{m.gas=r.int64();break;}case 5:{m.input=r.bytes();break;}case 6:{m.recipientAccount=$root.proto.AccountID.decode(r,r.uint32());break;}case 7:{m.recipientContract=$root.proto.ContractID.decode(r,r.uint32());break;}case 8:{m.targetedAddress=r.bytes();break;}case 9:{m.value=r.int64();break;}case 10:{m.gasUsed=r.int64();break;}case 11:{m.output=r.bytes();break;}case 12:{m.revertReason=r.bytes();break;}case 13:{m.error=r.bytes();break;}case 14:{m.callDepth=r.int32();break;}case 15:{m.callOperationType=r.int32();break;}default:r.skipType(t&7);break;}}return m;};ContractAction.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ContractAction\";};return ContractAction;}();proto.ContractBytecode=function(){function ContractBytecode(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.contractId=$root.proto.ContractID.decode(r,r.uint32());break;}case 2:{m.initcode=r.bytes();break;}case 3:{m.runtimeBytecode=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};ContractBytecode.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ContractBytecode\";};return ContractBytecode;}();proto.ContractStateChanges=function(){function ContractStateChanges(p){this.contractStateChanges=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{if(!(m.contractStateChanges&&m.contractStateChanges.length))m.contractStateChanges=[];m.contractStateChanges.push($root.proto.ContractStateChange.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};ContractStateChanges.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ContractStateChanges\";};return ContractStateChanges;}();proto.ContractStateChange=function(){function ContractStateChange(p){this.storageChanges=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.contractId=$root.proto.ContractID.decode(r,r.uint32());break;}case 2:{if(!(m.storageChanges&&m.storageChanges.length))m.storageChanges=[];m.storageChanges.push($root.proto.StorageChange.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};ContractStateChange.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ContractStateChange\";};return ContractStateChange;}();proto.StorageChange=function(){function StorageChange(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.slot=r.bytes();break;}case 2:{m.valueRead=r.bytes();break;}case 3:{m.valueWritten=$root.google.protobuf.BytesValue.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};StorageChange.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.StorageChange\";};return StorageChange;}();proto.HashAlgorithm=function(){const valuesById={},values=Object.create(valuesById);values[valuesById[0]=\"HASH_ALGORITHM_UNKNOWN\"]=0;values[valuesById[1]=\"SHA_384\"]=1;return values;}();proto.HashObject=function(){function HashObject(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.algorithm=r.int32();break;}case 2:{m.length=r.int32();break;}case 3:{m.hash=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};HashObject.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.HashObject\";};return HashObject;}();proto.RecordStreamFile=function(){function RecordStreamFile(p){this.recordStreamItems=[];this.sidecars=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.hapiProtoVersion=$root.proto.SemanticVersion.decode(r,r.uint32());break;}case 2:{m.startObjectRunningHash=$root.proto.HashObject.decode(r,r.uint32());break;}case 3:{if(!(m.recordStreamItems&&m.recordStreamItems.length))m.recordStreamItems=[];m.recordStreamItems.push($root.proto.RecordStreamItem.decode(r,r.uint32()));break;}case 4:{m.endObjectRunningHash=$root.proto.HashObject.decode(r,r.uint32());break;}case 5:{m.blockNumber=r.int64();break;}case 6:{if(!(m.sidecars&&m.sidecars.length))m.sidecars=[];m.sidecars.push($root.proto.SidecarMetadata.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};RecordStreamFile.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.RecordStreamFile\";};return RecordStreamFile;}();proto.RecordStreamItem=function(){function RecordStreamItem(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.transaction=$root.proto.Transaction.decode(r,r.uint32());break;}case 2:{m.record=$root.proto.TransactionRecord.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};RecordStreamItem.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.RecordStreamItem\";};return RecordStreamItem;}();proto.SidecarMetadata=function(){function SidecarMetadata(p){this.types=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.hash=$root.proto.HashObject.decode(r,r.uint32());break;}case 2:{m.id=r.int32();break;}case 3:{if(!(m.types&&m.types.length))m.types=[];if((t&7)===2){var c2=r.uint32()+r.pos;while(r.pos>>3){case 1:{if(!(m.sidecarRecords&&m.sidecarRecords.length))m.sidecarRecords=[];m.sidecarRecords.push($root.proto.TransactionSidecarRecord.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};SidecarFile.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.SidecarFile\";};return SidecarFile;}();proto.TransactionSidecarRecord=function(){function TransactionSidecarRecord(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.consensusTimestamp=$root.proto.Timestamp.decode(r,r.uint32());break;}case 2:{m.migration=r.bool();break;}case 3:{m.stateChanges=$root.proto.ContractStateChanges.decode(r,r.uint32());break;}case 4:{m.actions=$root.proto.ContractActions.decode(r,r.uint32());break;}case 5:{m.bytecode=$root.proto.ContractBytecode.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};TransactionSidecarRecord.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TransactionSidecarRecord\";};return TransactionSidecarRecord;}();proto.SignatureFile=function(){function SignatureFile(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.fileSignature=$root.proto.SignatureObject.decode(r,r.uint32());break;}case 2:{m.metadataSignature=$root.proto.SignatureObject.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};SignatureFile.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.SignatureFile\";};return SignatureFile;}();proto.SignatureObject=function(){function SignatureObject(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.type=r.int32();break;}case 2:{m.length=r.int32();break;}case 3:{m.checksum=r.int32();break;}case 4:{m.signature=r.bytes();break;}case 5:{m.hashObject=$root.proto.HashObject.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};SignatureObject.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.SignatureObject\";};return SignatureObject;}();proto.SignatureType=function(){const valuesById={},values=Object.create(valuesById);values[valuesById[0]=\"SIGNATURE_TYPE_UNKNOWN\"]=0;values[valuesById[1]=\"SHA_384_WITH_RSA\"]=1;return values;}();return proto;})();const google=exports.google=$root.google=(()=>{const google={};google.protobuf=function(){const protobuf={};protobuf.DoubleValue=function(){function DoubleValue(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.value=r.double();break;}default:r.skipType(t&7);break;}}return m;};DoubleValue.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/google.protobuf.DoubleValue\";};return DoubleValue;}();protobuf.FloatValue=function(){function FloatValue(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.value=r.float();break;}default:r.skipType(t&7);break;}}return m;};FloatValue.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/google.protobuf.FloatValue\";};return FloatValue;}();protobuf.Int64Value=function(){function Int64Value(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.value=r.int64();break;}default:r.skipType(t&7);break;}}return m;};Int64Value.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/google.protobuf.Int64Value\";};return Int64Value;}();protobuf.UInt64Value=function(){function UInt64Value(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.value=r.uint64();break;}default:r.skipType(t&7);break;}}return m;};UInt64Value.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/google.protobuf.UInt64Value\";};return UInt64Value;}();protobuf.Int32Value=function(){function Int32Value(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.value=r.int32();break;}default:r.skipType(t&7);break;}}return m;};Int32Value.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/google.protobuf.Int32Value\";};return Int32Value;}();protobuf.UInt32Value=function(){function UInt32Value(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.value=r.uint32();break;}default:r.skipType(t&7);break;}}return m;};UInt32Value.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/google.protobuf.UInt32Value\";};return UInt32Value;}();protobuf.BoolValue=function(){function BoolValue(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.value=r.bool();break;}default:r.skipType(t&7);break;}}return m;};BoolValue.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/google.protobuf.BoolValue\";};return BoolValue;}();protobuf.StringValue=function(){function StringValue(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.value=r.string();break;}default:r.skipType(t&7);break;}}return m;};StringValue.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/google.protobuf.StringValue\";};return StringValue;}();protobuf.BytesValue=function(){function BytesValue(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.value=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};BytesValue.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/google.protobuf.BytesValue\";};return BytesValue;}();return protobuf;}();return google;})();","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.proto = exports.google = exports.com = exports.Writer = exports.Reader = void 0;\nvar $protobuf = _interopRequireWildcard(require(\"protobufjs/minimal.js\"));\nvar _long = _interopRequireDefault(require(\"long\"));\nvar $proto = _interopRequireWildcard(require(\"./proto.js\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\n(() => {\n var $util = $protobuf.util;\n if ($util.Long == null) {\n console.log(`Patching Protobuf Long.js instance...`);\n $util.Long = _long.default;\n if ($protobuf.Reader._configure != null) {\n $protobuf.Reader._configure($protobuf.BufferReader);\n }\n }\n})();\nconst Reader = exports.Reader = $protobuf.Reader;\nconst Writer = exports.Writer = $protobuf.Writer;\nconst proto = exports.proto = $proto.proto;\nconst com = exports.com = $proto.com;\nconst google = exports.google = $proto.google;","export default class Key {}\n","/**\n * Signals that a key could not be realized from the input.\n */\nexport default class BadKeyError extends Error {\n /**\n * @param {Error | string} messageOrCause\n */\n constructor(messageOrCause) {\n super(\n messageOrCause instanceof Error\n ? messageOrCause.message\n : messageOrCause,\n );\n\n this.name = \"BadKeyError\";\n\n if (messageOrCause instanceof Error) {\n /** @type {Error=} */\n this.cause = messageOrCause;\n this.stack = messageOrCause.stack;\n }\n }\n}\n","function getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nvar browser = {exports: {}};\n\n// shim for using process in browser\nvar process = browser.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ());\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] };\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\nvar browserExports = browser.exports;\nconst process$1 = /*@__PURE__*/getDefaultExportFromCjs(browserExports);\n\nexport { process$1 as default, process$1 as process };\n//# sourceMappingURL=index.js.map\n","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","'use strict'\n\n// limit of Crypto.getRandomValues()\n// https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues\nvar MAX_BYTES = 65536\n\n// Node supports requesting up to this number of bytes\n// https://github.com/nodejs/node/blob/master/lib/internal/crypto/random.js#L48\nvar MAX_UINT32 = 4294967295\n\nfunction oldBrowser () {\n throw new Error('Secure random number generation is not supported by this browser.\\nUse Chrome, Firefox or Internet Explorer 11')\n}\n\nvar Buffer = require('safe-buffer').Buffer\nvar crypto = global.crypto || global.msCrypto\n\nif (crypto && crypto.getRandomValues) {\n module.exports = randomBytes\n} else {\n module.exports = oldBrowser\n}\n\nfunction randomBytes (size, cb) {\n // phantomjs needs to throw\n if (size > MAX_UINT32) throw new RangeError('requested too many random bytes')\n\n var bytes = Buffer.allocUnsafe(size)\n\n if (size > 0) { // getRandomValues fails on IE if size == 0\n if (size > MAX_BYTES) { // this is the max bytes crypto.getRandomValues\n // can do at once see https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues\n for (var generated = 0; generated < size; generated += MAX_BYTES) {\n // buffer.slice automatically checks if the end is past the end of\n // the buffer so we don't have to here\n crypto.getRandomValues(bytes.slice(generated, generated + MAX_BYTES))\n }\n } else {\n crypto.getRandomValues(bytes)\n }\n }\n\n if (typeof cb === 'function') {\n return process.nextTick(function () {\n cb(null, bytes)\n })\n }\n\n return bytes\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","module.exports = require('events').EventEmitter;\n","'use strict';\n\n/** @type {import('./shams')} */\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\t/** @type {{ [k in symbol]?: unknown }} */\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (var _ in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\t// eslint-disable-next-line no-extra-parens\n\t\tvar descriptor = /** @type {PropertyDescriptor} */ (Object.getOwnPropertyDescriptor(obj, sym));\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Object;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Error;\n","'use strict';\n\n/** @type {import('./eval')} */\nmodule.exports = EvalError;\n","'use strict';\n\n/** @type {import('./range')} */\nmodule.exports = RangeError;\n","'use strict';\n\n/** @type {import('./ref')} */\nmodule.exports = ReferenceError;\n","'use strict';\n\n/** @type {import('./syntax')} */\nmodule.exports = SyntaxError;\n","'use strict';\n\n/** @type {import('./type')} */\nmodule.exports = TypeError;\n","'use strict';\n\n/** @type {import('./uri')} */\nmodule.exports = URIError;\n","'use strict';\n\n/** @type {import('./abs')} */\nmodule.exports = Math.abs;\n","'use strict';\n\n/** @type {import('./floor')} */\nmodule.exports = Math.floor;\n","'use strict';\n\n/** @type {import('./max')} */\nmodule.exports = Math.max;\n","'use strict';\n\n/** @type {import('./min')} */\nmodule.exports = Math.min;\n","'use strict';\n\n/** @type {import('./pow')} */\nmodule.exports = Math.pow;\n","'use strict';\n\n/** @type {import('./gOPD')} */\nmodule.exports = Object.getOwnPropertyDescriptor;\n","'use strict';\n\n/** @type {import('.')} */\nvar $gOPD = require('./gOPD');\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","'use strict';\n\n/** @type {import('.')} */\nvar $defineProperty = Object.defineProperty || false;\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = false;\n\t}\n}\n\nmodule.exports = $defineProperty;\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar toStr = Object.prototype.toString;\nvar max = Math.max;\nvar funcType = '[object Function]';\n\nvar concatty = function concatty(a, b) {\n var arr = [];\n\n for (var i = 0; i < a.length; i += 1) {\n arr[i] = a[i];\n }\n for (var j = 0; j < b.length; j += 1) {\n arr[j + a.length] = b[j];\n }\n\n return arr;\n};\n\nvar slicy = function slicy(arrLike, offset) {\n var arr = [];\n for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {\n arr[j] = arrLike[i];\n }\n return arr;\n};\n\nvar joiny = function (arr, joiner) {\n var str = '';\n for (var i = 0; i < arr.length; i += 1) {\n str += arr[i];\n if (i + 1 < arr.length) {\n str += joiner;\n }\n }\n return str;\n};\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.apply(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slicy(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n concatty(args, arguments)\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n }\n return target.apply(\n that,\n concatty(args, arguments)\n );\n\n };\n\n var boundLength = max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs[i] = '$' + i;\n }\n\n bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\n/** @type {import('./functionCall')} */\nmodule.exports = Function.prototype.call;\n","'use strict';\n\n/** @type {import('./functionApply')} */\nmodule.exports = Function.prototype.apply;\n","'use strict';\n\n/** @type {import('./reflectApply')} */\nmodule.exports = typeof Reflect !== 'undefined' && Reflect && Reflect.apply;\n","'use strict';\n\nvar bind = require('function-bind');\n\nvar $apply = require('./functionApply');\nvar $call = require('./functionCall');\nvar $reflectApply = require('./reflectApply');\n\n/** @type {import('./actualApply')} */\nmodule.exports = $reflectApply || bind.call($call, $apply);\n","'use strict';\n\nvar bind = require('function-bind');\nvar $TypeError = require('es-errors/type');\n\nvar $call = require('./functionCall');\nvar $actualApply = require('./actualApply');\n\n/** @type {import('.')} */\nmodule.exports = function callBindBasic(args) {\n\tif (args.length < 1 || typeof args[0] !== 'function') {\n\t\tthrow new $TypeError('a function is required');\n\t}\n\treturn $actualApply(bind, $call, args);\n};\n","'use strict';\n\nvar callBind = require('call-bind-apply-helpers');\nvar gOPD = require('gopd');\n\nvar hasProtoAccessor;\ntry {\n\t// eslint-disable-next-line no-extra-parens, no-proto\n\thasProtoAccessor = /** @type {{ __proto__?: typeof Array.prototype }} */ ([]).__proto__ === Array.prototype;\n} catch (e) {\n\tif (!e || typeof e !== 'object' || !('code' in e) || e.code !== 'ERR_PROTO_ACCESS') {\n\t\tthrow e;\n\t}\n}\n\n// eslint-disable-next-line no-extra-parens\nvar desc = !!hasProtoAccessor && gOPD && gOPD(Object.prototype, /** @type {keyof typeof Object.prototype} */ ('__proto__'));\n\nvar $Object = Object;\nvar $getPrototypeOf = $Object.getPrototypeOf;\n\n/** @type {import('./get')} */\nmodule.exports = desc && typeof desc.get === 'function'\n\t? callBind([desc.get])\n\t: typeof $getPrototypeOf === 'function'\n\t\t? /** @type {import('./get')} */ function getDunder(value) {\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\treturn $getPrototypeOf(value == null ? value : $Object(value));\n\t\t}\n\t\t: false;\n","'use strict';\n\nvar call = Function.prototype.call;\nvar $hasOwn = Object.prototype.hasOwnProperty;\nvar bind = require('function-bind');\n\n/** @type {import('.')} */\nmodule.exports = bind.call(call, $hasOwn);\n","'use strict';\n\nvar undefined;\n\nvar $Object = require('es-object-atoms');\n\nvar $Error = require('es-errors');\nvar $EvalError = require('es-errors/eval');\nvar $RangeError = require('es-errors/range');\nvar $ReferenceError = require('es-errors/ref');\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\nvar $URIError = require('es-errors/uri');\n\nvar abs = require('math-intrinsics/abs');\nvar floor = require('math-intrinsics/floor');\nvar max = require('math-intrinsics/max');\nvar min = require('math-intrinsics/min');\nvar pow = require('math-intrinsics/pow');\n\nvar $Function = Function;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = require('gopd');\nvar $defineProperty = require('es-define-property');\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\nvar getDunderProto = require('dunder-proto/get');\n\nvar getProto = (typeof Reflect === 'function' && Reflect.getPrototypeOf)\n\t|| $Object.getPrototypeOf\n\t|| getDunderProto;\n\nvar $apply = require('call-bind-apply-helpers/functionApply');\nvar $call = require('call-bind-apply-helpers/functionCall');\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t__proto__: null,\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': $Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': $EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': $Object,\n\t'%Object.getOwnPropertyDescriptor%': $gOPD,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': $RangeError,\n\t'%ReferenceError%': $ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': $URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet,\n\n\t'%Function.prototype.call%': $call,\n\t'%Function.prototype.apply%': $apply,\n\t'%Object.defineProperty%': $defineProperty,\n\t'%Math.abs%': abs,\n\t'%Math.floor%': floor,\n\t'%Math.max%': max,\n\t'%Math.min%': min,\n\t'%Math.pow%': pow\n};\n\nif (getProto) {\n\ttry {\n\t\tnull.error; // eslint-disable-line no-unused-expressions\n\t} catch (e) {\n\t\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\t\tvar errorProto = getProto(getProto(e));\n\t\tINTRINSICS['%Error.prototype%'] = errorProto;\n\t}\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen && getProto) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t__proto__: null,\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('hasown');\nvar $concat = bind.call($call, Array.prototype.concat);\nvar $spliceApply = bind.call($apply, Array.prototype.splice);\nvar $replace = bind.call($call, String.prototype.replace);\nvar $strSlice = bind.call($call, String.prototype.slice);\nvar $exec = bind.call($call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBindBasic = require('call-bind-apply-helpers');\n\n/** @type {(thisArg: string, searchString: string, position?: number) => number} */\nvar $indexOf = callBindBasic([GetIntrinsic('%String.prototype.indexOf%')]);\n\n/** @type {import('.')} */\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\t// eslint-disable-next-line no-extra-parens\n\tvar intrinsic = /** @type {Parameters[0][0]} */ (GetIntrinsic(name, !!allowMissing));\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBindBasic([intrinsic]);\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar callBound = require('call-bound');\n\nvar $toString = callBound('Object.prototype.toString');\n\n/** @type {import('.')} */\nvar isStandardArguments = function isArguments(value) {\n\tif (\n\t\thasToStringTag\n\t\t&& value\n\t\t&& typeof value === 'object'\n\t\t&& Symbol.toStringTag in value\n\t) {\n\t\treturn false;\n\t}\n\treturn $toString(value) === '[object Arguments]';\n};\n\n/** @type {import('.')} */\nvar isLegacyArguments = function isArguments(value) {\n\tif (isStandardArguments(value)) {\n\t\treturn true;\n\t}\n\treturn value !== null\n\t\t&& typeof value === 'object'\n\t\t&& 'length' in value\n\t\t&& typeof value.length === 'number'\n\t\t&& value.length >= 0\n\t\t&& $toString(value) !== '[object Array]'\n\t\t&& 'callee' in value\n\t\t&& $toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = (function () {\n\treturn isStandardArguments(arguments);\n}());\n\n// @ts-expect-error TODO make this not error\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\n/** @type {import('.')} */\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n","'use strict';\n\nvar toStr = Object.prototype.toString;\nvar fnToStr = Function.prototype.toString;\nvar isFnRegex = /^\\s*(?:function)?\\*/;\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar getProto = Object.getPrototypeOf;\nvar getGeneratorFunc = function () { // eslint-disable-line consistent-return\n\tif (!hasToStringTag) {\n\t\treturn false;\n\t}\n\ttry {\n\t\treturn Function('return function*() {}')();\n\t} catch (e) {\n\t}\n};\nvar GeneratorFunction;\n\nmodule.exports = function isGeneratorFunction(fn) {\n\tif (typeof fn !== 'function') {\n\t\treturn false;\n\t}\n\tif (isFnRegex.test(fnToStr.call(fn))) {\n\t\treturn true;\n\t}\n\tif (!hasToStringTag) {\n\t\tvar str = toStr.call(fn);\n\t\treturn str === '[object GeneratorFunction]';\n\t}\n\tif (!getProto) {\n\t\treturn false;\n\t}\n\tif (typeof GeneratorFunction === 'undefined') {\n\t\tvar generatorFunc = getGeneratorFunc();\n\t\tGeneratorFunction = generatorFunc ? getProto(generatorFunc) : false;\n\t}\n\treturn getProto(fn) === GeneratorFunction;\n};\n","'use strict';\n\nvar fnToStr = Function.prototype.toString;\nvar reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply;\nvar badArrayLike;\nvar isCallableMarker;\nif (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') {\n\ttry {\n\t\tbadArrayLike = Object.defineProperty({}, 'length', {\n\t\t\tget: function () {\n\t\t\t\tthrow isCallableMarker;\n\t\t\t}\n\t\t});\n\t\tisCallableMarker = {};\n\t\t// eslint-disable-next-line no-throw-literal\n\t\treflectApply(function () { throw 42; }, null, badArrayLike);\n\t} catch (_) {\n\t\tif (_ !== isCallableMarker) {\n\t\t\treflectApply = null;\n\t\t}\n\t}\n} else {\n\treflectApply = null;\n}\n\nvar constructorRegex = /^\\s*class\\b/;\nvar isES6ClassFn = function isES6ClassFunction(value) {\n\ttry {\n\t\tvar fnStr = fnToStr.call(value);\n\t\treturn constructorRegex.test(fnStr);\n\t} catch (e) {\n\t\treturn false; // not a function\n\t}\n};\n\nvar tryFunctionObject = function tryFunctionToStr(value) {\n\ttry {\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tfnToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar objectClass = '[object Object]';\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar ddaClass = '[object HTMLAllCollection]'; // IE 11\nvar ddaClass2 = '[object HTML document.all class]';\nvar ddaClass3 = '[object HTMLCollection]'; // IE 9-10\nvar hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; // better: use `has-tostringtag`\n\nvar isIE68 = !(0 in [,]); // eslint-disable-line no-sparse-arrays, comma-spacing\n\nvar isDDA = function isDocumentDotAll() { return false; };\nif (typeof document === 'object') {\n\t// Firefox 3 canonicalizes DDA to undefined when it's not accessed directly\n\tvar all = document.all;\n\tif (toStr.call(all) === toStr.call(document.all)) {\n\t\tisDDA = function isDocumentDotAll(value) {\n\t\t\t/* globals document: false */\n\t\t\t// in IE 6-8, typeof document.all is \"object\" and it's truthy\n\t\t\tif ((isIE68 || !value) && (typeof value === 'undefined' || typeof value === 'object')) {\n\t\t\t\ttry {\n\t\t\t\t\tvar str = toStr.call(value);\n\t\t\t\t\treturn (\n\t\t\t\t\t\tstr === ddaClass\n\t\t\t\t\t\t|| str === ddaClass2\n\t\t\t\t\t\t|| str === ddaClass3 // opera 12.16\n\t\t\t\t\t\t|| str === objectClass // IE 6-8\n\t\t\t\t\t) && value('') == null; // eslint-disable-line eqeqeq\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\t}\n}\n\nmodule.exports = reflectApply\n\t? function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\ttry {\n\t\t\treflectApply(value, null, badArrayLike);\n\t\t} catch (e) {\n\t\t\tif (e !== isCallableMarker) { return false; }\n\t\t}\n\t\treturn !isES6ClassFn(value) && tryFunctionObject(value);\n\t}\n\t: function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\tif (hasToStringTag) { return tryFunctionObject(value); }\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tvar strClass = toStr.call(value);\n\t\tif (strClass !== fnClass && strClass !== genClass && !(/^\\[object HTML/).test(strClass)) { return false; }\n\t\treturn tryFunctionObject(value);\n\t};\n","'use strict';\n\nvar isCallable = require('is-callable');\n\nvar toStr = Object.prototype.toString;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar forEachArray = function forEachArray(array, iterator, receiver) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (hasOwnProperty.call(array, i)) {\n if (receiver == null) {\n iterator(array[i], i, array);\n } else {\n iterator.call(receiver, array[i], i, array);\n }\n }\n }\n};\n\nvar forEachString = function forEachString(string, iterator, receiver) {\n for (var i = 0, len = string.length; i < len; i++) {\n // no such thing as a sparse string.\n if (receiver == null) {\n iterator(string.charAt(i), i, string);\n } else {\n iterator.call(receiver, string.charAt(i), i, string);\n }\n }\n};\n\nvar forEachObject = function forEachObject(object, iterator, receiver) {\n for (var k in object) {\n if (hasOwnProperty.call(object, k)) {\n if (receiver == null) {\n iterator(object[k], k, object);\n } else {\n iterator.call(receiver, object[k], k, object);\n }\n }\n }\n};\n\nvar forEach = function forEach(list, iterator, thisArg) {\n if (!isCallable(iterator)) {\n throw new TypeError('iterator must be a function');\n }\n\n var receiver;\n if (arguments.length >= 3) {\n receiver = thisArg;\n }\n\n if (toStr.call(list) === '[object Array]') {\n forEachArray(list, iterator, receiver);\n } else if (typeof list === 'string') {\n forEachString(list, iterator, receiver);\n } else {\n forEachObject(list, iterator, receiver);\n }\n};\n\nmodule.exports = forEach;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = [\n\t'Float32Array',\n\t'Float64Array',\n\t'Int8Array',\n\t'Int16Array',\n\t'Int32Array',\n\t'Uint8Array',\n\t'Uint8ClampedArray',\n\t'Uint16Array',\n\t'Uint32Array',\n\t'BigInt64Array',\n\t'BigUint64Array'\n];\n","'use strict';\n\nvar possibleNames = require('possible-typed-array-names');\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\n\n/** @type {import('.')} */\nmodule.exports = function availableTypedArrays() {\n\tvar /** @type {ReturnType} */ out = [];\n\tfor (var i = 0; i < possibleNames.length; i++) {\n\t\tif (typeof g[possibleNames[i]] === 'function') {\n\t\t\t// @ts-expect-error\n\t\t\tout[out.length] = possibleNames[i];\n\t\t}\n\t}\n\treturn out;\n};\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\n\nvar gopd = require('gopd');\n\n/** @type {import('.')} */\nmodule.exports = function defineDataProperty(\n\tobj,\n\tproperty,\n\tvalue\n) {\n\tif (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n\t\tthrow new $TypeError('`obj` must be an object or a function`');\n\t}\n\tif (typeof property !== 'string' && typeof property !== 'symbol') {\n\t\tthrow new $TypeError('`property` must be a string or a symbol`');\n\t}\n\tif (arguments.length > 3 && typeof arguments[3] !== 'boolean' && arguments[3] !== null) {\n\t\tthrow new $TypeError('`nonEnumerable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 4 && typeof arguments[4] !== 'boolean' && arguments[4] !== null) {\n\t\tthrow new $TypeError('`nonWritable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 5 && typeof arguments[5] !== 'boolean' && arguments[5] !== null) {\n\t\tthrow new $TypeError('`nonConfigurable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 6 && typeof arguments[6] !== 'boolean') {\n\t\tthrow new $TypeError('`loose`, if provided, must be a boolean');\n\t}\n\n\tvar nonEnumerable = arguments.length > 3 ? arguments[3] : null;\n\tvar nonWritable = arguments.length > 4 ? arguments[4] : null;\n\tvar nonConfigurable = arguments.length > 5 ? arguments[5] : null;\n\tvar loose = arguments.length > 6 ? arguments[6] : false;\n\n\t/* @type {false | TypedPropertyDescriptor} */\n\tvar desc = !!gopd && gopd(obj, property);\n\n\tif ($defineProperty) {\n\t\t$defineProperty(obj, property, {\n\t\t\tconfigurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable,\n\t\t\tenumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable,\n\t\t\tvalue: value,\n\t\t\twritable: nonWritable === null && desc ? desc.writable : !nonWritable\n\t\t});\n\t} else if (loose || (!nonEnumerable && !nonWritable && !nonConfigurable)) {\n\t\t// must fall back to [[Set]], and was not explicitly asked to make non-enumerable, non-writable, or non-configurable\n\t\tobj[property] = value; // eslint-disable-line no-param-reassign\n\t} else {\n\t\tthrow new $SyntaxError('This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.');\n\t}\n};\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\treturn !!$defineProperty;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!$defineProperty) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar define = require('define-data-property');\nvar hasDescriptors = require('has-property-descriptors')();\nvar gOPD = require('gopd');\n\nvar $TypeError = require('es-errors/type');\nvar $floor = GetIntrinsic('%Math.floor%');\n\n/** @type {import('.')} */\nmodule.exports = function setFunctionLength(fn, length) {\n\tif (typeof fn !== 'function') {\n\t\tthrow new $TypeError('`fn` is not a function');\n\t}\n\tif (typeof length !== 'number' || length < 0 || length > 0xFFFFFFFF || $floor(length) !== length) {\n\t\tthrow new $TypeError('`length` must be a positive 32-bit integer');\n\t}\n\n\tvar loose = arguments.length > 2 && !!arguments[2];\n\n\tvar functionLengthIsConfigurable = true;\n\tvar functionLengthIsWritable = true;\n\tif ('length' in fn && gOPD) {\n\t\tvar desc = gOPD(fn, 'length');\n\t\tif (desc && !desc.configurable) {\n\t\t\tfunctionLengthIsConfigurable = false;\n\t\t}\n\t\tif (desc && !desc.writable) {\n\t\t\tfunctionLengthIsWritable = false;\n\t\t}\n\t}\n\n\tif (functionLengthIsConfigurable || functionLengthIsWritable || !loose) {\n\t\tif (hasDescriptors) {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'length', length, true, true);\n\t\t} else {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'length', length);\n\t\t}\n\t}\n\treturn fn;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar $apply = require('./functionApply');\nvar actualApply = require('./actualApply');\n\n/** @type {import('./applyBind')} */\nmodule.exports = function applyBind() {\n\treturn actualApply(bind, $apply, arguments);\n};\n","'use strict';\n\nvar setFunctionLength = require('set-function-length');\n\nvar $defineProperty = require('es-define-property');\n\nvar callBindBasic = require('call-bind-apply-helpers');\nvar applyBind = require('call-bind-apply-helpers/applyBind');\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = callBindBasic(arguments);\n\tvar adjustedLength = originalFunction.length - (arguments.length - 1);\n\treturn setFunctionLength(\n\t\tfunc,\n\t\t1 + (adjustedLength > 0 ? adjustedLength : 0),\n\t\ttrue\n\t);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","'use strict';\n\nvar forEach = require('for-each');\nvar availableTypedArrays = require('available-typed-arrays');\nvar callBind = require('call-bind');\nvar callBound = require('call-bound');\nvar gOPD = require('gopd');\n\n/** @type {(O: object) => string} */\nvar $toString = callBound('Object.prototype.toString');\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\nvar typedArrays = availableTypedArrays();\n\nvar $slice = callBound('String.prototype.slice');\nvar getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof');\n\n/** @type {(array: readonly T[], value: unknown) => number} */\nvar $indexOf = callBound('Array.prototype.indexOf', true) || function indexOf(array, value) {\n\tfor (var i = 0; i < array.length; i += 1) {\n\t\tif (array[i] === value) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n};\n\n/** @typedef {(receiver: import('.').TypedArray) => string | typeof Uint8Array.prototype.slice.call | typeof Uint8Array.prototype.set.call} Getter */\n/** @type {{ [k in `\\$${import('.').TypedArrayName}`]?: Getter } & { __proto__: null }} */\nvar cache = { __proto__: null };\nif (hasToStringTag && gOPD && getPrototypeOf) {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tif (Symbol.toStringTag in arr) {\n\t\t\tvar proto = getPrototypeOf(arr);\n\t\t\t// @ts-expect-error TS won't narrow inside a closure\n\t\t\tvar descriptor = gOPD(proto, Symbol.toStringTag);\n\t\t\tif (!descriptor) {\n\t\t\t\tvar superProto = getPrototypeOf(proto);\n\t\t\t\t// @ts-expect-error TS won't narrow inside a closure\n\t\t\t\tdescriptor = gOPD(superProto, Symbol.toStringTag);\n\t\t\t}\n\t\t\t// @ts-expect-error TODO: fix\n\t\t\tcache['$' + typedArray] = callBind(descriptor.get);\n\t\t}\n\t});\n} else {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tvar fn = arr.slice || arr.set;\n\t\tif (fn) {\n\t\t\t// @ts-expect-error TODO: fix\n\t\t\tcache['$' + typedArray] = callBind(fn);\n\t\t}\n\t});\n}\n\n/** @type {(value: object) => false | import('.').TypedArrayName} */\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n\t/** @type {ReturnType} */ var found = false;\n\tforEach(\n\t\t// eslint-disable-next-line no-extra-parens\n\t\t/** @type {Record<`\\$${TypedArrayName}`, Getter>} */ /** @type {any} */ (cache),\n\t\t/** @type {(getter: Getter, name: `\\$${import('.').TypedArrayName}`) => void} */\n\t\tfunction (getter, typedArray) {\n\t\t\tif (!found) {\n\t\t\t\ttry {\n\t\t\t\t// @ts-expect-error TODO: fix\n\t\t\t\t\tif ('$' + getter(value) === typedArray) {\n\t\t\t\t\t\tfound = $slice(typedArray, 1);\n\t\t\t\t\t}\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t}\n\t);\n\treturn found;\n};\n\n/** @type {(value: object) => false | import('.').TypedArrayName} */\nvar trySlices = function tryAllSlices(value) {\n\t/** @type {ReturnType} */ var found = false;\n\tforEach(\n\t\t// eslint-disable-next-line no-extra-parens\n\t\t/** @type {Record<`\\$${TypedArrayName}`, Getter>} */ /** @type {any} */ (cache),\n\t\t/** @type {(getter: typeof cache, name: `\\$${import('.').TypedArrayName}`) => void} */ function (getter, name) {\n\t\t\tif (!found) {\n\t\t\t\ttry {\n\t\t\t\t\t// @ts-expect-error TODO: fix\n\t\t\t\t\tgetter(value);\n\t\t\t\t\tfound = $slice(name, 1);\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t}\n\t);\n\treturn found;\n};\n\n/** @type {import('.')} */\nmodule.exports = function whichTypedArray(value) {\n\tif (!value || typeof value !== 'object') { return false; }\n\tif (!hasToStringTag) {\n\t\t/** @type {string} */\n\t\tvar tag = $slice($toString(value), 8, -1);\n\t\tif ($indexOf(typedArrays, tag) > -1) {\n\t\t\treturn tag;\n\t\t}\n\t\tif (tag !== 'Object') {\n\t\t\treturn false;\n\t\t}\n\t\t// node < 0.6 hits here on real Typed Arrays\n\t\treturn trySlices(value);\n\t}\n\tif (!gOPD) { return null; } // unknown engine\n\treturn tryTypedArrays(value);\n};\n","'use strict';\n\nvar whichTypedArray = require('which-typed-array');\n\n/** @type {import('.')} */\nmodule.exports = function isTypedArray(value) {\n\treturn !!whichTypedArray(value);\n};\n","// Currently in sync with Node.js lib/internal/util/types.js\n// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9\n\n'use strict';\n\nvar isArgumentsObject = require('is-arguments');\nvar isGeneratorFunction = require('is-generator-function');\nvar whichTypedArray = require('which-typed-array');\nvar isTypedArray = require('is-typed-array');\n\nfunction uncurryThis(f) {\n return f.call.bind(f);\n}\n\nvar BigIntSupported = typeof BigInt !== 'undefined';\nvar SymbolSupported = typeof Symbol !== 'undefined';\n\nvar ObjectToString = uncurryThis(Object.prototype.toString);\n\nvar numberValue = uncurryThis(Number.prototype.valueOf);\nvar stringValue = uncurryThis(String.prototype.valueOf);\nvar booleanValue = uncurryThis(Boolean.prototype.valueOf);\n\nif (BigIntSupported) {\n var bigIntValue = uncurryThis(BigInt.prototype.valueOf);\n}\n\nif (SymbolSupported) {\n var symbolValue = uncurryThis(Symbol.prototype.valueOf);\n}\n\nfunction checkBoxedPrimitive(value, prototypeValueOf) {\n if (typeof value !== 'object') {\n return false;\n }\n try {\n prototypeValueOf(value);\n return true;\n } catch(e) {\n return false;\n }\n}\n\nexports.isArgumentsObject = isArgumentsObject;\nexports.isGeneratorFunction = isGeneratorFunction;\nexports.isTypedArray = isTypedArray;\n\n// Taken from here and modified for better browser support\n// https://github.com/sindresorhus/p-is-promise/blob/cda35a513bda03f977ad5cde3a079d237e82d7ef/index.js\nfunction isPromise(input) {\n\treturn (\n\t\t(\n\t\t\ttypeof Promise !== 'undefined' &&\n\t\t\tinput instanceof Promise\n\t\t) ||\n\t\t(\n\t\t\tinput !== null &&\n\t\t\ttypeof input === 'object' &&\n\t\t\ttypeof input.then === 'function' &&\n\t\t\ttypeof input.catch === 'function'\n\t\t)\n\t);\n}\nexports.isPromise = isPromise;\n\nfunction isArrayBufferView(value) {\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n return ArrayBuffer.isView(value);\n }\n\n return (\n isTypedArray(value) ||\n isDataView(value)\n );\n}\nexports.isArrayBufferView = isArrayBufferView;\n\n\nfunction isUint8Array(value) {\n return whichTypedArray(value) === 'Uint8Array';\n}\nexports.isUint8Array = isUint8Array;\n\nfunction isUint8ClampedArray(value) {\n return whichTypedArray(value) === 'Uint8ClampedArray';\n}\nexports.isUint8ClampedArray = isUint8ClampedArray;\n\nfunction isUint16Array(value) {\n return whichTypedArray(value) === 'Uint16Array';\n}\nexports.isUint16Array = isUint16Array;\n\nfunction isUint32Array(value) {\n return whichTypedArray(value) === 'Uint32Array';\n}\nexports.isUint32Array = isUint32Array;\n\nfunction isInt8Array(value) {\n return whichTypedArray(value) === 'Int8Array';\n}\nexports.isInt8Array = isInt8Array;\n\nfunction isInt16Array(value) {\n return whichTypedArray(value) === 'Int16Array';\n}\nexports.isInt16Array = isInt16Array;\n\nfunction isInt32Array(value) {\n return whichTypedArray(value) === 'Int32Array';\n}\nexports.isInt32Array = isInt32Array;\n\nfunction isFloat32Array(value) {\n return whichTypedArray(value) === 'Float32Array';\n}\nexports.isFloat32Array = isFloat32Array;\n\nfunction isFloat64Array(value) {\n return whichTypedArray(value) === 'Float64Array';\n}\nexports.isFloat64Array = isFloat64Array;\n\nfunction isBigInt64Array(value) {\n return whichTypedArray(value) === 'BigInt64Array';\n}\nexports.isBigInt64Array = isBigInt64Array;\n\nfunction isBigUint64Array(value) {\n return whichTypedArray(value) === 'BigUint64Array';\n}\nexports.isBigUint64Array = isBigUint64Array;\n\nfunction isMapToString(value) {\n return ObjectToString(value) === '[object Map]';\n}\nisMapToString.working = (\n typeof Map !== 'undefined' &&\n isMapToString(new Map())\n);\n\nfunction isMap(value) {\n if (typeof Map === 'undefined') {\n return false;\n }\n\n return isMapToString.working\n ? isMapToString(value)\n : value instanceof Map;\n}\nexports.isMap = isMap;\n\nfunction isSetToString(value) {\n return ObjectToString(value) === '[object Set]';\n}\nisSetToString.working = (\n typeof Set !== 'undefined' &&\n isSetToString(new Set())\n);\nfunction isSet(value) {\n if (typeof Set === 'undefined') {\n return false;\n }\n\n return isSetToString.working\n ? isSetToString(value)\n : value instanceof Set;\n}\nexports.isSet = isSet;\n\nfunction isWeakMapToString(value) {\n return ObjectToString(value) === '[object WeakMap]';\n}\nisWeakMapToString.working = (\n typeof WeakMap !== 'undefined' &&\n isWeakMapToString(new WeakMap())\n);\nfunction isWeakMap(value) {\n if (typeof WeakMap === 'undefined') {\n return false;\n }\n\n return isWeakMapToString.working\n ? isWeakMapToString(value)\n : value instanceof WeakMap;\n}\nexports.isWeakMap = isWeakMap;\n\nfunction isWeakSetToString(value) {\n return ObjectToString(value) === '[object WeakSet]';\n}\nisWeakSetToString.working = (\n typeof WeakSet !== 'undefined' &&\n isWeakSetToString(new WeakSet())\n);\nfunction isWeakSet(value) {\n return isWeakSetToString(value);\n}\nexports.isWeakSet = isWeakSet;\n\nfunction isArrayBufferToString(value) {\n return ObjectToString(value) === '[object ArrayBuffer]';\n}\nisArrayBufferToString.working = (\n typeof ArrayBuffer !== 'undefined' &&\n isArrayBufferToString(new ArrayBuffer())\n);\nfunction isArrayBuffer(value) {\n if (typeof ArrayBuffer === 'undefined') {\n return false;\n }\n\n return isArrayBufferToString.working\n ? isArrayBufferToString(value)\n : value instanceof ArrayBuffer;\n}\nexports.isArrayBuffer = isArrayBuffer;\n\nfunction isDataViewToString(value) {\n return ObjectToString(value) === '[object DataView]';\n}\nisDataViewToString.working = (\n typeof ArrayBuffer !== 'undefined' &&\n typeof DataView !== 'undefined' &&\n isDataViewToString(new DataView(new ArrayBuffer(1), 0, 1))\n);\nfunction isDataView(value) {\n if (typeof DataView === 'undefined') {\n return false;\n }\n\n return isDataViewToString.working\n ? isDataViewToString(value)\n : value instanceof DataView;\n}\nexports.isDataView = isDataView;\n\n// Store a copy of SharedArrayBuffer in case it's deleted elsewhere\nvar SharedArrayBufferCopy = typeof SharedArrayBuffer !== 'undefined' ? SharedArrayBuffer : undefined;\nfunction isSharedArrayBufferToString(value) {\n return ObjectToString(value) === '[object SharedArrayBuffer]';\n}\nfunction isSharedArrayBuffer(value) {\n if (typeof SharedArrayBufferCopy === 'undefined') {\n return false;\n }\n\n if (typeof isSharedArrayBufferToString.working === 'undefined') {\n isSharedArrayBufferToString.working = isSharedArrayBufferToString(new SharedArrayBufferCopy());\n }\n\n return isSharedArrayBufferToString.working\n ? isSharedArrayBufferToString(value)\n : value instanceof SharedArrayBufferCopy;\n}\nexports.isSharedArrayBuffer = isSharedArrayBuffer;\n\nfunction isAsyncFunction(value) {\n return ObjectToString(value) === '[object AsyncFunction]';\n}\nexports.isAsyncFunction = isAsyncFunction;\n\nfunction isMapIterator(value) {\n return ObjectToString(value) === '[object Map Iterator]';\n}\nexports.isMapIterator = isMapIterator;\n\nfunction isSetIterator(value) {\n return ObjectToString(value) === '[object Set Iterator]';\n}\nexports.isSetIterator = isSetIterator;\n\nfunction isGeneratorObject(value) {\n return ObjectToString(value) === '[object Generator]';\n}\nexports.isGeneratorObject = isGeneratorObject;\n\nfunction isWebAssemblyCompiledModule(value) {\n return ObjectToString(value) === '[object WebAssembly.Module]';\n}\nexports.isWebAssemblyCompiledModule = isWebAssemblyCompiledModule;\n\nfunction isNumberObject(value) {\n return checkBoxedPrimitive(value, numberValue);\n}\nexports.isNumberObject = isNumberObject;\n\nfunction isStringObject(value) {\n return checkBoxedPrimitive(value, stringValue);\n}\nexports.isStringObject = isStringObject;\n\nfunction isBooleanObject(value) {\n return checkBoxedPrimitive(value, booleanValue);\n}\nexports.isBooleanObject = isBooleanObject;\n\nfunction isBigIntObject(value) {\n return BigIntSupported && checkBoxedPrimitive(value, bigIntValue);\n}\nexports.isBigIntObject = isBigIntObject;\n\nfunction isSymbolObject(value) {\n return SymbolSupported && checkBoxedPrimitive(value, symbolValue);\n}\nexports.isSymbolObject = isSymbolObject;\n\nfunction isBoxedPrimitive(value) {\n return (\n isNumberObject(value) ||\n isStringObject(value) ||\n isBooleanObject(value) ||\n isBigIntObject(value) ||\n isSymbolObject(value)\n );\n}\nexports.isBoxedPrimitive = isBoxedPrimitive;\n\nfunction isAnyArrayBuffer(value) {\n return typeof Uint8Array !== 'undefined' && (\n isArrayBuffer(value) ||\n isSharedArrayBuffer(value)\n );\n}\nexports.isAnyArrayBuffer = isAnyArrayBuffer;\n\n['isProxy', 'isExternal', 'isModuleNamespaceObject'].forEach(function(method) {\n Object.defineProperty(exports, method, {\n enumerable: false,\n value: function() {\n throw new Error(method + ' is not supported in userland');\n }\n });\n});\n","module.exports = function isBuffer(arg) {\n return arg && typeof arg === 'object'\n && typeof arg.copy === 'function'\n && typeof arg.fill === 'function'\n && typeof arg.readUInt8 === 'function';\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n }\n\n // Allow for deprecating things in the process of starting up.\n if (typeof process === 'undefined') {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnvRegex = /^$/;\n\nif (process.env.NODE_DEBUG) {\n var debugEnv = process.env.NODE_DEBUG;\n debugEnv = debugEnv.replace(/[|\\\\{}()[\\]^$+?.]/g, '\\\\$&')\n .replace(/\\*/g, '.*')\n .replace(/,/g, '$|^')\n .toUpperCase();\n debugEnvRegex = new RegExp('^' + debugEnv + '$', 'i');\n}\nexports.debuglog = function(set) {\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (debugEnvRegex.test(set)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').slice(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.slice(1, -1);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nexports.types = require('./support/types');\n\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\nexports.types.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\nexports.types.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\nexports.types.isNativeError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function')\n throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n\n // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n var self = this;\n var cb = function() {\n return maybeCb.apply(self, arguments);\n };\n // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n original.apply(this, args)\n .then(function(ret) { process.nextTick(cb.bind(null, null, ret)) },\n function(rej) { process.nextTick(callbackifyOnRejected.bind(null, rej, cb)) });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified,\n getOwnPropertyDescriptors(original));\n return callbackified;\n}\nexports.callbackify = callbackify;\n","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\nvar _require2 = require('util'),\n inspect = _require2.inspect;\nvar custom = inspect && inspect.custom || 'inspect';\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\nmodule.exports = /*#__PURE__*/function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) ret += s + p.data;\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n }\n\n // Consumes a specified amount of bytes or characters from the buffered data.\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n }\n\n // Consumes a specified amount of characters from the buffered data.\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Consumes a specified amount of bytes from the buffered data.\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Make sure the linked list only shows the minimal necessary information.\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread(_objectSpread({}, options), {}, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n return BufferList;\n}();","'use strict';\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n return this;\n}\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n return Math.floor(hwm);\n }\n\n // Default value\n return state.objectMode ? 16 : 16 * 1024;\n}\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nrequire('inherits')(Writable, Stream);\nfunction nop() {}\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'finish' (and potentially 'end')\n this.autoDestroy = !!options.autoDestroy;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex);\n\n // legacy.\n this.writable = true;\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END();\n // TODO: defer error events consistently everywhere, not just the cb\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n return true;\n}\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n return ret;\n}\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n if (entry === null) state.lastBufferedRequest = null;\n }\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\nWritable.prototype._writev = null;\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n errorOrDestroy(stream, err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n return need;\n}\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n\n // reuse the free corkReq.\n state.corkedRequestsFree.next = corkReq;\n}\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n};\n/**/\n\nmodule.exports = Duplex;\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\nrequire('inherits')(Duplex, Readable);\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n process.nextTick(onEndNT, this);\n}\nfunction onEndNT(self) {\n self.end();\n}\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n callback.apply(this, args);\n };\n}\nfunction noop() {}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n var writableEnded = stream._writableState && stream._writableState.finished;\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n var onclose = function onclose() {\n var err;\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\nmodule.exports = eos;","'use strict';\n\nvar _Object$setPrototypeO;\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar finished = require('./end-of-stream');\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n if (resolve !== null) {\n var data = iter[kStream].read();\n // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n next: function next() {\n var _this = this;\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n if (error !== null) {\n return Promise.reject(error);\n }\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n }\n\n // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n var lastPromise = this[kLastPromise];\n var promise;\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n promise = new Promise(this[kHandlePromise]);\n }\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject];\n // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n iterator[kError] = err;\n return;\n }\n var resolve = iterator[kLastResolve];\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\nmodule.exports = createReadableStreamAsyncIterator;","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nmodule.exports = Readable;\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\nvar debugUtil = require('util');\nvar debug;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/buffer_list');\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n\n// Lazy loaded to improve the startup performance.\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\nrequire('inherits')(Readable, Stream);\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'end' (and potentially 'finish')\n this.autoDestroy = !!options.autoDestroy;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options);\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex);\n\n // legacy\n this.readable = true;\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n Stream.call(this);\n}\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n }\n\n // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n return er;\n}\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder;\n // If setEncoding(null), decoder.encoding equals utf8\n this._readableState.encoding = this._readableState.decoder.encoding;\n\n // Iterate over current buffer to convert already stored Buffers:\n var p = this._readableState.buffer.head;\n var content = '';\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n this._readableState.buffer.clear();\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n};\n\n// Don't raise the hwm > 1GB\nvar MAX_HWM = 0x40000000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n }\n\n // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n return dest;\n};\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0;\n\n // Try start flowing on next tick if stream isn't explicitly paused\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true;\n\n // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n state.paused = false;\n return this;\n};\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n if (!state.reading) {\n stream.read(0);\n }\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n this._readableState.paused = true;\n return this;\n};\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null);\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n return this;\n};\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n return createReadableStreamAsyncIterator(this);\n };\n}\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n});\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length);\n\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n return from(Readable, iterable, opts);\n };\n}\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\nvar Duplex = require('./_stream_duplex');\nrequire('inherits')(Transform, Duplex);\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null)\n // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\nfunction prefinish() {\n var _this = this;\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null)\n // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\nvar Transform = require('./_stream_transform');\nrequire('inherits')(PassThrough, Transform);\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar eos;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true;\n\n // request.destroy just do .end - .abort is what we want\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\nfunction call(fn) {\n fn();\n}\nfunction pipe(from, to) {\n return from.pipe(to);\n}\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\nmodule.exports = pipeline;","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nmodule.exports = Stream;\n\nvar EE = require('events').EventEmitter;\nvar inherits = require('inherits');\n\ninherits(Stream, EE);\nStream.Readable = require('readable-stream/lib/_stream_readable.js');\nStream.Writable = require('readable-stream/lib/_stream_writable.js');\nStream.Duplex = require('readable-stream/lib/_stream_duplex.js');\nStream.Transform = require('readable-stream/lib/_stream_transform.js');\nStream.PassThrough = require('readable-stream/lib/_stream_passthrough.js');\nStream.finished = require('readable-stream/lib/internal/streams/end-of-stream.js')\nStream.pipeline = require('readable-stream/lib/internal/streams/pipeline.js')\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\n\n\n// old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EE.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EE.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n","'use strict'\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('stream').Transform\nvar inherits = require('inherits')\n\nfunction HashBase (blockSize) {\n Transform.call(this)\n\n this._block = Buffer.allocUnsafe(blockSize)\n this._blockSize = blockSize\n this._blockOffset = 0\n this._length = [0, 0, 0, 0]\n\n this._finalized = false\n}\n\ninherits(HashBase, Transform)\n\nHashBase.prototype._transform = function (chunk, encoding, callback) {\n var error = null\n try {\n this.update(chunk, encoding)\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype._flush = function (callback) {\n var error = null\n try {\n this.push(this.digest())\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nvar useUint8Array = typeof Uint8Array !== 'undefined'\nvar useArrayBuffer = typeof ArrayBuffer !== 'undefined' &&\n typeof Uint8Array !== 'undefined' &&\n ArrayBuffer.isView &&\n (Buffer.prototype instanceof Uint8Array || Buffer.TYPED_ARRAY_SUPPORT)\n\nfunction toBuffer (data, encoding) {\n // No need to do anything for exact instance\n // This is only valid when safe-buffer.Buffer === buffer.Buffer, i.e. when Buffer.from/Buffer.alloc existed\n if (data instanceof Buffer) return data\n\n // Convert strings to Buffer\n if (typeof data === 'string') return Buffer.from(data, encoding)\n\n /*\n * Wrap any TypedArray instances and DataViews\n * Makes sense only on engines with full TypedArray support -- let Buffer detect that\n */\n if (useArrayBuffer && ArrayBuffer.isView(data)) {\n if (data.byteLength === 0) return Buffer.alloc(0) // Bug in Node.js <6.3.1, which treats this as out-of-bounds\n var res = Buffer.from(data.buffer, data.byteOffset, data.byteLength)\n // Recheck result size, as offset/length doesn't work on Node.js <5.10\n // We just go to Uint8Array case if this fails\n if (res.byteLength === data.byteLength) return res\n }\n\n /*\n * Uint8Array in engines where Buffer.from might not work with ArrayBuffer, just copy over\n * Doesn't make sense with other TypedArray instances\n */\n if (useUint8Array && data instanceof Uint8Array) return Buffer.from(data)\n\n /*\n * Old Buffer polyfill on an engine that doesn't have TypedArray support\n * Also, this is from a different Buffer polyfill implementation then we have, as instanceof check failed\n * Convert to our current Buffer implementation\n */\n if (\n Buffer.isBuffer(data) &&\n data.constructor &&\n typeof data.constructor.isBuffer === 'function' &&\n data.constructor.isBuffer(data)\n ) {\n return Buffer.from(data)\n }\n\n throw new TypeError('The \"data\" argument must be of type string or an instance of Buffer, TypedArray, or DataView.')\n}\n\nHashBase.prototype.update = function (data, encoding) {\n if (this._finalized) throw new Error('Digest already called')\n\n data = toBuffer(data, encoding) // asserts correct input type\n\n // consume data\n var block = this._block\n var offset = 0\n while (this._blockOffset + data.length - offset >= this._blockSize) {\n for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]\n this._update()\n this._blockOffset = 0\n }\n while (offset < data.length) block[this._blockOffset++] = data[offset++]\n\n // update length\n for (var j = 0, carry = data.length * 8; carry > 0; ++j) {\n this._length[j] += carry\n carry = (this._length[j] / 0x0100000000) | 0\n if (carry > 0) this._length[j] -= 0x0100000000 * carry\n }\n\n return this\n}\n\nHashBase.prototype._update = function () {\n throw new Error('_update is not implemented')\n}\n\nHashBase.prototype.digest = function (encoding) {\n if (this._finalized) throw new Error('Digest already called')\n this._finalized = true\n\n var digest = this._digest()\n if (encoding !== undefined) digest = digest.toString(encoding)\n\n // reset state\n this._block.fill(0)\n this._blockOffset = 0\n for (var i = 0; i < 4; ++i) this._length[i] = 0\n\n return digest\n}\n\nHashBase.prototype._digest = function () {\n throw new Error('_digest is not implemented')\n}\n\nmodule.exports = HashBase\n","'use strict'\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\nvar Buffer = require('safe-buffer').Buffer\n\nvar ARRAY16 = new Array(16)\n\nfunction MD5 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n}\n\ninherits(MD5, HashBase)\n\nMD5.prototype._update = function () {\n var M = ARRAY16\n for (var i = 0; i < 16; ++i) M[i] = this._block.readInt32LE(i * 4)\n\n var a = this._a\n var b = this._b\n var c = this._c\n var d = this._d\n\n a = fnF(a, b, c, d, M[0], 0xd76aa478, 7)\n d = fnF(d, a, b, c, M[1], 0xe8c7b756, 12)\n c = fnF(c, d, a, b, M[2], 0x242070db, 17)\n b = fnF(b, c, d, a, M[3], 0xc1bdceee, 22)\n a = fnF(a, b, c, d, M[4], 0xf57c0faf, 7)\n d = fnF(d, a, b, c, M[5], 0x4787c62a, 12)\n c = fnF(c, d, a, b, M[6], 0xa8304613, 17)\n b = fnF(b, c, d, a, M[7], 0xfd469501, 22)\n a = fnF(a, b, c, d, M[8], 0x698098d8, 7)\n d = fnF(d, a, b, c, M[9], 0x8b44f7af, 12)\n c = fnF(c, d, a, b, M[10], 0xffff5bb1, 17)\n b = fnF(b, c, d, a, M[11], 0x895cd7be, 22)\n a = fnF(a, b, c, d, M[12], 0x6b901122, 7)\n d = fnF(d, a, b, c, M[13], 0xfd987193, 12)\n c = fnF(c, d, a, b, M[14], 0xa679438e, 17)\n b = fnF(b, c, d, a, M[15], 0x49b40821, 22)\n\n a = fnG(a, b, c, d, M[1], 0xf61e2562, 5)\n d = fnG(d, a, b, c, M[6], 0xc040b340, 9)\n c = fnG(c, d, a, b, M[11], 0x265e5a51, 14)\n b = fnG(b, c, d, a, M[0], 0xe9b6c7aa, 20)\n a = fnG(a, b, c, d, M[5], 0xd62f105d, 5)\n d = fnG(d, a, b, c, M[10], 0x02441453, 9)\n c = fnG(c, d, a, b, M[15], 0xd8a1e681, 14)\n b = fnG(b, c, d, a, M[4], 0xe7d3fbc8, 20)\n a = fnG(a, b, c, d, M[9], 0x21e1cde6, 5)\n d = fnG(d, a, b, c, M[14], 0xc33707d6, 9)\n c = fnG(c, d, a, b, M[3], 0xf4d50d87, 14)\n b = fnG(b, c, d, a, M[8], 0x455a14ed, 20)\n a = fnG(a, b, c, d, M[13], 0xa9e3e905, 5)\n d = fnG(d, a, b, c, M[2], 0xfcefa3f8, 9)\n c = fnG(c, d, a, b, M[7], 0x676f02d9, 14)\n b = fnG(b, c, d, a, M[12], 0x8d2a4c8a, 20)\n\n a = fnH(a, b, c, d, M[5], 0xfffa3942, 4)\n d = fnH(d, a, b, c, M[8], 0x8771f681, 11)\n c = fnH(c, d, a, b, M[11], 0x6d9d6122, 16)\n b = fnH(b, c, d, a, M[14], 0xfde5380c, 23)\n a = fnH(a, b, c, d, M[1], 0xa4beea44, 4)\n d = fnH(d, a, b, c, M[4], 0x4bdecfa9, 11)\n c = fnH(c, d, a, b, M[7], 0xf6bb4b60, 16)\n b = fnH(b, c, d, a, M[10], 0xbebfbc70, 23)\n a = fnH(a, b, c, d, M[13], 0x289b7ec6, 4)\n d = fnH(d, a, b, c, M[0], 0xeaa127fa, 11)\n c = fnH(c, d, a, b, M[3], 0xd4ef3085, 16)\n b = fnH(b, c, d, a, M[6], 0x04881d05, 23)\n a = fnH(a, b, c, d, M[9], 0xd9d4d039, 4)\n d = fnH(d, a, b, c, M[12], 0xe6db99e5, 11)\n c = fnH(c, d, a, b, M[15], 0x1fa27cf8, 16)\n b = fnH(b, c, d, a, M[2], 0xc4ac5665, 23)\n\n a = fnI(a, b, c, d, M[0], 0xf4292244, 6)\n d = fnI(d, a, b, c, M[7], 0x432aff97, 10)\n c = fnI(c, d, a, b, M[14], 0xab9423a7, 15)\n b = fnI(b, c, d, a, M[5], 0xfc93a039, 21)\n a = fnI(a, b, c, d, M[12], 0x655b59c3, 6)\n d = fnI(d, a, b, c, M[3], 0x8f0ccc92, 10)\n c = fnI(c, d, a, b, M[10], 0xffeff47d, 15)\n b = fnI(b, c, d, a, M[1], 0x85845dd1, 21)\n a = fnI(a, b, c, d, M[8], 0x6fa87e4f, 6)\n d = fnI(d, a, b, c, M[15], 0xfe2ce6e0, 10)\n c = fnI(c, d, a, b, M[6], 0xa3014314, 15)\n b = fnI(b, c, d, a, M[13], 0x4e0811a1, 21)\n a = fnI(a, b, c, d, M[4], 0xf7537e82, 6)\n d = fnI(d, a, b, c, M[11], 0xbd3af235, 10)\n c = fnI(c, d, a, b, M[2], 0x2ad7d2bb, 15)\n b = fnI(b, c, d, a, M[9], 0xeb86d391, 21)\n\n this._a = (this._a + a) | 0\n this._b = (this._b + b) | 0\n this._c = (this._c + c) | 0\n this._d = (this._d + d) | 0\n}\n\nMD5.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.allocUnsafe(16)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fnF (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnG (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnH (a, b, c, d, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnI (a, b, c, d, m, k, s) {\n return (rotl((a + ((c ^ (b | (~d)))) + m + k) | 0, s) + b) | 0\n}\n\nmodule.exports = MD5\n","'use strict'\nvar Buffer = require('buffer').Buffer\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\n\nvar ARRAY16 = new Array(16)\n\nvar zl = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n]\n\nvar zr = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n]\n\nvar sl = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n]\n\nvar sr = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n]\n\nvar hl = [0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e]\nvar hr = [0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000]\n\nfunction RIPEMD160 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n}\n\ninherits(RIPEMD160, HashBase)\n\nRIPEMD160.prototype._update = function () {\n var words = ARRAY16\n for (var j = 0; j < 16; ++j) words[j] = this._block.readInt32LE(j * 4)\n\n var al = this._a | 0\n var bl = this._b | 0\n var cl = this._c | 0\n var dl = this._d | 0\n var el = this._e | 0\n\n var ar = this._a | 0\n var br = this._b | 0\n var cr = this._c | 0\n var dr = this._d | 0\n var er = this._e | 0\n\n // computation\n for (var i = 0; i < 80; i += 1) {\n var tl\n var tr\n if (i < 16) {\n tl = fn1(al, bl, cl, dl, el, words[zl[i]], hl[0], sl[i])\n tr = fn5(ar, br, cr, dr, er, words[zr[i]], hr[0], sr[i])\n } else if (i < 32) {\n tl = fn2(al, bl, cl, dl, el, words[zl[i]], hl[1], sl[i])\n tr = fn4(ar, br, cr, dr, er, words[zr[i]], hr[1], sr[i])\n } else if (i < 48) {\n tl = fn3(al, bl, cl, dl, el, words[zl[i]], hl[2], sl[i])\n tr = fn3(ar, br, cr, dr, er, words[zr[i]], hr[2], sr[i])\n } else if (i < 64) {\n tl = fn4(al, bl, cl, dl, el, words[zl[i]], hl[3], sl[i])\n tr = fn2(ar, br, cr, dr, er, words[zr[i]], hr[3], sr[i])\n } else { // if (i<80) {\n tl = fn5(al, bl, cl, dl, el, words[zl[i]], hl[4], sl[i])\n tr = fn1(ar, br, cr, dr, er, words[zr[i]], hr[4], sr[i])\n }\n\n al = el\n el = dl\n dl = rotl(cl, 10)\n cl = bl\n bl = tl\n\n ar = er\n er = dr\n dr = rotl(cr, 10)\n cr = br\n br = tr\n }\n\n // update state\n var t = (this._b + cl + dr) | 0\n this._b = (this._c + dl + er) | 0\n this._c = (this._d + el + ar) | 0\n this._d = (this._e + al + br) | 0\n this._e = (this._a + bl + cr) | 0\n this._a = t\n}\n\nRIPEMD160.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.alloc ? Buffer.alloc(20) : new Buffer(20)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n buffer.writeInt32LE(this._e, 16)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fn1 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn2 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn3 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b | (~c)) ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn4 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn5 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ (c | (~d))) + m + k) | 0, s) + e) | 0\n}\n\nmodule.exports = RIPEMD160\n","var Buffer = require('safe-buffer').Buffer\n\n// prototype class for hash functions\nfunction Hash (blockSize, finalSize) {\n this._block = Buffer.alloc(blockSize)\n this._finalSize = finalSize\n this._blockSize = blockSize\n this._len = 0\n}\n\nHash.prototype.update = function (data, enc) {\n if (typeof data === 'string') {\n enc = enc || 'utf8'\n data = Buffer.from(data, enc)\n }\n\n var block = this._block\n var blockSize = this._blockSize\n var length = data.length\n var accum = this._len\n\n for (var offset = 0; offset < length;) {\n var assigned = accum % blockSize\n var remainder = Math.min(length - offset, blockSize - assigned)\n\n for (var i = 0; i < remainder; i++) {\n block[assigned + i] = data[offset + i]\n }\n\n accum += remainder\n offset += remainder\n\n if ((accum % blockSize) === 0) {\n this._update(block)\n }\n }\n\n this._len += length\n return this\n}\n\nHash.prototype.digest = function (enc) {\n var rem = this._len % this._blockSize\n\n this._block[rem] = 0x80\n\n // zero (rem + 1) trailing bits, where (rem + 1) is the smallest\n // non-negative solution to the equation (length + 1 + (rem + 1)) === finalSize mod blockSize\n this._block.fill(0, rem + 1)\n\n if (rem >= this._finalSize) {\n this._update(this._block)\n this._block.fill(0)\n }\n\n var bits = this._len * 8\n\n // uint32\n if (bits <= 0xffffffff) {\n this._block.writeUInt32BE(bits, this._blockSize - 4)\n\n // uint64\n } else {\n var lowBits = (bits & 0xffffffff) >>> 0\n var highBits = (bits - lowBits) / 0x100000000\n\n this._block.writeUInt32BE(highBits, this._blockSize - 8)\n this._block.writeUInt32BE(lowBits, this._blockSize - 4)\n }\n\n this._update(this._block)\n var hash = this._hash()\n\n return enc ? hash.toString(enc) : hash\n}\n\nHash.prototype._update = function () {\n throw new Error('_update must be implemented by subclass')\n}\n\nmodule.exports = Hash\n","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined\n * in FIPS PUB 180-1\n * This source code is derived from sha1.js of the same repository.\n * The difference between SHA-0 and SHA-1 is just a bitwise rotate left\n * operation was added.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha, Hash)\n\nSha.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha\n","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined\n * in FIPS PUB 180-1\n * Version 2.1a Copyright Paul Johnston 2000 - 2002.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for details.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha1 () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha1, Hash)\n\nSha1.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl1 (num) {\n return (num << 1) | (num >>> 31)\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha1.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = rotl1(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16])\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha1.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha1\n","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,\n 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,\n 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3,\n 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,\n 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC,\n 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,\n 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7,\n 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,\n 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13,\n 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,\n 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3,\n 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,\n 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5,\n 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,\n 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208,\n 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2\n]\n\nvar W = new Array(64)\n\nfunction Sha256 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha256, Hash)\n\nSha256.prototype.init = function () {\n this._a = 0x6a09e667\n this._b = 0xbb67ae85\n this._c = 0x3c6ef372\n this._d = 0xa54ff53a\n this._e = 0x510e527f\n this._f = 0x9b05688c\n this._g = 0x1f83d9ab\n this._h = 0x5be0cd19\n\n return this\n}\n\nfunction ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x) {\n return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10)\n}\n\nfunction sigma1 (x) {\n return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7)\n}\n\nfunction gamma0 (x) {\n return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ (x >>> 3)\n}\n\nfunction gamma1 (x) {\n return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ (x >>> 10)\n}\n\nSha256.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n var f = this._f | 0\n var g = this._g | 0\n var h = this._h | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 64; ++i) W[i] = (gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16]) | 0\n\n for (var j = 0; j < 64; ++j) {\n var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) | 0\n var T2 = (sigma0(a) + maj(a, b, c)) | 0\n\n h = g\n g = f\n f = e\n e = (d + T1) | 0\n d = c\n c = b\n b = a\n a = (T1 + T2) | 0\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n this._f = (f + this._f) | 0\n this._g = (g + this._g) | 0\n this._h = (h + this._h) | 0\n}\n\nSha256.prototype._hash = function () {\n var H = Buffer.allocUnsafe(32)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n H.writeInt32BE(this._h, 28)\n\n return H\n}\n\nmodule.exports = Sha256\n","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Sha256 = require('./sha256')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(64)\n\nfunction Sha224 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha224, Sha256)\n\nSha224.prototype.init = function () {\n this._a = 0xc1059ed8\n this._b = 0x367cd507\n this._c = 0x3070dd17\n this._d = 0xf70e5939\n this._e = 0xffc00b31\n this._f = 0x68581511\n this._g = 0x64f98fa7\n this._h = 0xbefa4fa4\n\n return this\n}\n\nSha224.prototype._hash = function () {\n var H = Buffer.allocUnsafe(28)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n\n return H\n}\n\nmodule.exports = Sha224\n","var inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar 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\nvar W = new Array(160)\n\nfunction Sha512 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha512, Hash)\n\nSha512.prototype.init = function () {\n this._ah = 0x6a09e667\n this._bh = 0xbb67ae85\n this._ch = 0x3c6ef372\n this._dh = 0xa54ff53a\n this._eh = 0x510e527f\n this._fh = 0x9b05688c\n this._gh = 0x1f83d9ab\n this._hh = 0x5be0cd19\n\n this._al = 0xf3bcc908\n this._bl = 0x84caa73b\n this._cl = 0xfe94f82b\n this._dl = 0x5f1d36f1\n this._el = 0xade682d1\n this._fl = 0x2b3e6c1f\n this._gl = 0xfb41bd6b\n this._hl = 0x137e2179\n\n return this\n}\n\nfunction Ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x, xl) {\n return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25)\n}\n\nfunction sigma1 (x, xl) {\n return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23)\n}\n\nfunction Gamma0 (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7)\n}\n\nfunction Gamma0l (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25)\n}\n\nfunction Gamma1 (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6)\n}\n\nfunction Gamma1l (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26)\n}\n\nfunction getCarry (a, b) {\n return (a >>> 0) < (b >>> 0) ? 1 : 0\n}\n\nSha512.prototype._update = function (M) {\n var W = this._w\n\n var ah = this._ah | 0\n var bh = this._bh | 0\n var ch = this._ch | 0\n var dh = this._dh | 0\n var eh = this._eh | 0\n var fh = this._fh | 0\n var gh = this._gh | 0\n var hh = this._hh | 0\n\n var al = this._al | 0\n var bl = this._bl | 0\n var cl = this._cl | 0\n var dl = this._dl | 0\n var el = this._el | 0\n var fl = this._fl | 0\n var gl = this._gl | 0\n var hl = this._hl | 0\n\n for (var i = 0; i < 32; i += 2) {\n W[i] = M.readInt32BE(i * 4)\n W[i + 1] = M.readInt32BE(i * 4 + 4)\n }\n for (; i < 160; i += 2) {\n var xh = W[i - 15 * 2]\n var xl = W[i - 15 * 2 + 1]\n var gamma0 = Gamma0(xh, xl)\n var gamma0l = Gamma0l(xl, xh)\n\n xh = W[i - 2 * 2]\n xl = W[i - 2 * 2 + 1]\n var gamma1 = Gamma1(xh, xl)\n var gamma1l = Gamma1l(xl, xh)\n\n // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n var Wi7h = W[i - 7 * 2]\n var Wi7l = W[i - 7 * 2 + 1]\n\n var Wi16h = W[i - 16 * 2]\n var Wi16l = W[i - 16 * 2 + 1]\n\n var Wil = (gamma0l + Wi7l) | 0\n var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0\n Wil = (Wil + gamma1l) | 0\n Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0\n Wil = (Wil + Wi16l) | 0\n Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0\n\n W[i] = Wih\n W[i + 1] = Wil\n }\n\n for (var j = 0; j < 160; j += 2) {\n Wih = W[j]\n Wil = W[j + 1]\n\n var majh = maj(ah, bh, ch)\n var majl = maj(al, bl, cl)\n\n var sigma0h = sigma0(ah, al)\n var sigma0l = sigma0(al, ah)\n var sigma1h = sigma1(eh, el)\n var sigma1l = sigma1(el, eh)\n\n // t1 = h + sigma1 + ch + K[j] + W[j]\n var Kih = K[j]\n var Kil = K[j + 1]\n\n var chh = Ch(eh, fh, gh)\n var chl = Ch(el, fl, gl)\n\n var t1l = (hl + sigma1l) | 0\n var t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0\n t1l = (t1l + chl) | 0\n t1h = (t1h + chh + getCarry(t1l, chl)) | 0\n t1l = (t1l + Kil) | 0\n t1h = (t1h + Kih + getCarry(t1l, Kil)) | 0\n t1l = (t1l + Wil) | 0\n t1h = (t1h + Wih + getCarry(t1l, Wil)) | 0\n\n // t2 = sigma0 + maj\n var t2l = (sigma0l + majl) | 0\n var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0\n\n hh = gh\n hl = gl\n gh = fh\n gl = fl\n fh = eh\n fl = el\n el = (dl + t1l) | 0\n eh = (dh + t1h + getCarry(el, dl)) | 0\n dh = ch\n dl = cl\n ch = bh\n cl = bl\n bh = ah\n bl = al\n al = (t1l + t2l) | 0\n ah = (t1h + t2h + getCarry(al, t1l)) | 0\n }\n\n this._al = (this._al + al) | 0\n this._bl = (this._bl + bl) | 0\n this._cl = (this._cl + cl) | 0\n this._dl = (this._dl + dl) | 0\n this._el = (this._el + el) | 0\n this._fl = (this._fl + fl) | 0\n this._gl = (this._gl + gl) | 0\n this._hl = (this._hl + hl) | 0\n\n this._ah = (this._ah + ah + getCarry(this._al, al)) | 0\n this._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0\n this._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0\n this._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0\n this._eh = (this._eh + eh + getCarry(this._el, el)) | 0\n this._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0\n this._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0\n this._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0\n}\n\nSha512.prototype._hash = function () {\n var H = Buffer.allocUnsafe(64)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n writeInt64BE(this._gh, this._gl, 48)\n writeInt64BE(this._hh, this._hl, 56)\n\n return H\n}\n\nmodule.exports = Sha512\n","var inherits = require('inherits')\nvar SHA512 = require('./sha512')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(160)\n\nfunction Sha384 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha384, SHA512)\n\nSha384.prototype.init = function () {\n this._ah = 0xcbbb9d5d\n this._bh = 0x629a292a\n this._ch = 0x9159015a\n this._dh = 0x152fecd8\n this._eh = 0x67332667\n this._fh = 0x8eb44a87\n this._gh = 0xdb0c2e0d\n this._hh = 0x47b5481d\n\n this._al = 0xc1059ed8\n this._bl = 0x367cd507\n this._cl = 0x3070dd17\n this._dl = 0xf70e5939\n this._el = 0xffc00b31\n this._fl = 0x68581511\n this._gl = 0x64f98fa7\n this._hl = 0xbefa4fa4\n\n return this\n}\n\nSha384.prototype._hash = function () {\n var H = Buffer.allocUnsafe(48)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n\n return H\n}\n\nmodule.exports = Sha384\n","var exports = module.exports = function SHA (algorithm) {\n algorithm = algorithm.toLowerCase()\n\n var Algorithm = exports[algorithm]\n if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')\n\n return new Algorithm()\n}\n\nexports.sha = require('./sha')\nexports.sha1 = require('./sha1')\nexports.sha224 = require('./sha224')\nexports.sha256 = require('./sha256')\nexports.sha384 = require('./sha384')\nexports.sha512 = require('./sha512')\n","'use strict';\n\nvar Buffer = require('safe-buffer').Buffer;\nvar Transform = require('stream').Transform;\nvar StringDecoder = require('string_decoder').StringDecoder;\nvar inherits = require('inherits');\n\nfunction CipherBase(hashMode) {\n\tTransform.call(this);\n\tthis.hashMode = typeof hashMode === 'string';\n\tif (this.hashMode) {\n\t\tthis[hashMode] = this._finalOrDigest;\n\t} else {\n\t\tthis['final'] = this._finalOrDigest;\n\t}\n\tif (this._final) {\n\t\tthis.__final = this._final;\n\t\tthis._final = null;\n\t}\n\tthis._decoder = null;\n\tthis._encoding = null;\n}\ninherits(CipherBase, Transform);\n\nvar useUint8Array = typeof Uint8Array !== 'undefined';\nvar useArrayBuffer = typeof ArrayBuffer !== 'undefined'\n\t&& typeof Uint8Array !== 'undefined'\n\t&& ArrayBuffer.isView\n\t&& (Buffer.prototype instanceof Uint8Array || Buffer.TYPED_ARRAY_SUPPORT);\n\nfunction toBuffer(data, encoding) {\n\t/*\n\t * No need to do anything for exact instance\n\t * This is only valid when safe-buffer.Buffer === buffer.Buffer, i.e. when Buffer.from/Buffer.alloc existed\n\t */\n\tif (data instanceof Buffer) {\n\t\treturn data;\n\t}\n\n\t// Convert strings to Buffer\n\tif (typeof data === 'string') {\n\t\treturn Buffer.from(data, encoding);\n\t}\n\n\t/*\n\t * Wrap any TypedArray instances and DataViews\n\t * Makes sense only on engines with full TypedArray support -- let Buffer detect that\n\t */\n\tif (useArrayBuffer && ArrayBuffer.isView(data)) {\n\t\t// Bug in Node.js <6.3.1, which treats this as out-of-bounds\n\t\tif (data.byteLength === 0) {\n\t\t\treturn Buffer.alloc(0);\n\t\t}\n\n\t\tvar res = Buffer.from(data.buffer, data.byteOffset, data.byteLength);\n\t\t/*\n\t\t * Recheck result size, as offset/length doesn't work on Node.js <5.10\n\t\t * We just go to Uint8Array case if this fails\n\t\t */\n\t\tif (res.byteLength === data.byteLength) {\n\t\t\treturn res;\n\t\t}\n\t}\n\n\t/*\n\t * Uint8Array in engines where Buffer.from might not work with ArrayBuffer, just copy over\n\t * Doesn't make sense with other TypedArray instances\n\t */\n\tif (useUint8Array && data instanceof Uint8Array) {\n\t\treturn Buffer.from(data);\n\t}\n\n\t/*\n\t * Old Buffer polyfill on an engine that doesn't have TypedArray support\n\t * Also, this is from a different Buffer polyfill implementation then we have, as instanceof check failed\n\t * Convert to our current Buffer implementation\n\t */\n\tif (\n\t\tBuffer.isBuffer(data)\n\t\t\t&& data.constructor\n\t\t\t&& typeof data.constructor.isBuffer === 'function'\n\t\t\t&& data.constructor.isBuffer(data)\n\t) {\n\t\treturn Buffer.from(data);\n\t}\n\n\tthrow new TypeError('The \"data\" argument must be of type string or an instance of Buffer, TypedArray, or DataView.');\n}\n\nCipherBase.prototype.update = function (data, inputEnc, outputEnc) {\n\tvar bufferData = toBuffer(data, inputEnc); // asserts correct input type\n\tvar outData = this._update(bufferData);\n\tif (this.hashMode) {\n\t\treturn this;\n\t}\n\n\tif (outputEnc) {\n\t\toutData = this._toString(outData, outputEnc);\n\t}\n\n\treturn outData;\n};\n\nCipherBase.prototype.setAutoPadding = function () {};\nCipherBase.prototype.getAuthTag = function () {\n\tthrow new Error('trying to get auth tag in unsupported state');\n};\n\nCipherBase.prototype.setAuthTag = function () {\n\tthrow new Error('trying to set auth tag in unsupported state');\n};\n\nCipherBase.prototype.setAAD = function () {\n\tthrow new Error('trying to set aad in unsupported state');\n};\n\nCipherBase.prototype._transform = function (data, _, next) {\n\tvar err;\n\ttry {\n\t\tif (this.hashMode) {\n\t\t\tthis._update(data);\n\t\t} else {\n\t\t\tthis.push(this._update(data));\n\t\t}\n\t} catch (e) {\n\t\terr = e;\n\t} finally {\n\t\tnext(err);\n\t}\n};\nCipherBase.prototype._flush = function (done) {\n\tvar err;\n\ttry {\n\t\tthis.push(this.__final());\n\t} catch (e) {\n\t\terr = e;\n\t}\n\n\tdone(err);\n};\nCipherBase.prototype._finalOrDigest = function (outputEnc) {\n\tvar outData = this.__final() || Buffer.alloc(0);\n\tif (outputEnc) {\n\t\toutData = this._toString(outData, outputEnc, true);\n\t}\n\treturn outData;\n};\n\nCipherBase.prototype._toString = function (value, enc, fin) {\n\tif (!this._decoder) {\n\t\tthis._decoder = new StringDecoder(enc);\n\t\tthis._encoding = enc;\n\t}\n\n\tif (this._encoding !== enc) {\n\t\tthrow new Error('can’t switch encodings');\n\t}\n\n\tvar out = this._decoder.write(value);\n\tif (fin) {\n\t\tout += this._decoder.end();\n\t}\n\n\treturn out;\n};\n\nmodule.exports = CipherBase;\n","'use strict'\nvar inherits = require('inherits')\nvar MD5 = require('md5.js')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Base = require('cipher-base')\n\nfunction Hash (hash) {\n Base.call(this, 'digest')\n\n this._hash = hash\n}\n\ninherits(Hash, Base)\n\nHash.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHash.prototype._final = function () {\n return this._hash.digest()\n}\n\nmodule.exports = function createHash (alg) {\n alg = alg.toLowerCase()\n if (alg === 'md5') return new MD5()\n if (alg === 'rmd160' || alg === 'ripemd160') return new RIPEMD160()\n\n return new Hash(sha(alg))\n}\n","'use strict'\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar Base = require('cipher-base')\n\nvar ZEROS = Buffer.alloc(128)\nvar blocksize = 64\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n this._alg = alg\n this._key = key\n\n if (key.length > blocksize) {\n key = alg(key)\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n\n this._hash = [ipad]\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.push(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._alg(Buffer.concat(this._hash))\n return this._alg(Buffer.concat([this._opad, h]))\n}\nmodule.exports = Hmac\n","var MD5 = require('md5.js')\n\nmodule.exports = function (buffer) {\n return new MD5().update(buffer).digest()\n}\n","'use strict'\nvar inherits = require('inherits')\nvar Legacy = require('./legacy')\nvar Base = require('cipher-base')\nvar Buffer = require('safe-buffer').Buffer\nvar md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\n\nvar sha = require('sha.js')\n\nvar ZEROS = Buffer.alloc(128)\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n this._alg = alg\n this._key = key\n if (key.length > blocksize) {\n var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n key = hash.update(key).digest()\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n this._hash.update(ipad)\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._hash.digest()\n var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg)\n return hash.update(this._opad).update(h).digest()\n}\n\nmodule.exports = function createHmac (alg, key) {\n alg = alg.toLowerCase()\n if (alg === 'rmd160' || alg === 'ripemd160') {\n return new Hmac('rmd160', key)\n }\n if (alg === 'md5') {\n return new Legacy(md5, key)\n }\n return new Hmac(alg, key)\n}\n","'use strict';\n\nmodule.exports = require('./browser/algorithms.json');\n","var MAX_ALLOC = Math.pow(2, 30) - 1 // default in iojs\n\nmodule.exports = function (iterations, keylen) {\n if (typeof iterations !== 'number') {\n throw new TypeError('Iterations not a number')\n }\n\n if (iterations < 0) {\n throw new TypeError('Bad iterations')\n }\n\n if (typeof keylen !== 'number') {\n throw new TypeError('Key length not a number')\n }\n\n if (keylen < 0 || keylen > MAX_ALLOC || keylen !== keylen) { /* eslint no-self-compare: 0 */\n throw new TypeError('Bad key length')\n }\n}\n","var defaultEncoding\n/* istanbul ignore next */\nif (global.process && global.process.browser) {\n defaultEncoding = 'utf-8'\n} else if (global.process && global.process.version) {\n var pVersionMajor = parseInt(process.version.split('.')[0].slice(1), 10)\n\n defaultEncoding = pVersionMajor >= 6 ? 'utf-8' : 'binary'\n} else {\n defaultEncoding = 'utf-8'\n}\nmodule.exports = defaultEncoding\n","var Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (thing, encoding, name) {\n if (Buffer.isBuffer(thing)) {\n return thing\n } else if (typeof thing === 'string') {\n return Buffer.from(thing, encoding)\n } else if (ArrayBuffer.isView(thing)) {\n return Buffer.from(thing.buffer)\n } else {\n throw new TypeError(name + ' must be a string, a Buffer, a typed array or a DataView')\n }\n}\n","var md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Buffer = require('safe-buffer').Buffer\n\nvar checkParameters = require('./precondition')\nvar defaultEncoding = require('./default-encoding')\nvar toBuffer = require('./to-buffer')\n\nvar ZEROS = Buffer.alloc(128)\nvar sizes = {\n md5: 16,\n sha1: 20,\n sha224: 28,\n sha256: 32,\n sha384: 48,\n sha512: 64,\n rmd160: 20,\n ripemd160: 20\n}\n\nfunction Hmac (alg, key, saltLen) {\n var hash = getDigest(alg)\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n if (key.length > blocksize) {\n key = hash(key)\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = Buffer.allocUnsafe(blocksize + sizes[alg])\n var opad = Buffer.allocUnsafe(blocksize + sizes[alg])\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n\n var ipad1 = Buffer.allocUnsafe(blocksize + saltLen + 4)\n ipad.copy(ipad1, 0, 0, blocksize)\n this.ipad1 = ipad1\n this.ipad2 = ipad\n this.opad = opad\n this.alg = alg\n this.blocksize = blocksize\n this.hash = hash\n this.size = sizes[alg]\n}\n\nHmac.prototype.run = function (data, ipad) {\n data.copy(ipad, this.blocksize)\n var h = this.hash(ipad)\n h.copy(this.opad, this.blocksize)\n return this.hash(this.opad)\n}\n\nfunction getDigest (alg) {\n function shaFunc (data) {\n return sha(alg).update(data).digest()\n }\n function rmd160Func (data) {\n return new RIPEMD160().update(data).digest()\n }\n\n if (alg === 'rmd160' || alg === 'ripemd160') return rmd160Func\n if (alg === 'md5') return md5\n return shaFunc\n}\n\nfunction pbkdf2 (password, salt, iterations, keylen, digest) {\n checkParameters(iterations, keylen)\n password = toBuffer(password, defaultEncoding, 'Password')\n salt = toBuffer(salt, defaultEncoding, 'Salt')\n\n digest = digest || 'sha1'\n\n var hmac = new Hmac(digest, password, salt.length)\n\n var DK = Buffer.allocUnsafe(keylen)\n var block1 = Buffer.allocUnsafe(salt.length + 4)\n salt.copy(block1, 0, 0, salt.length)\n\n var destPos = 0\n var hLen = sizes[digest]\n var l = Math.ceil(keylen / hLen)\n\n for (var i = 1; i <= l; i++) {\n block1.writeUInt32BE(i, salt.length)\n\n var T = hmac.run(block1, hmac.ipad1)\n var U = T\n\n for (var j = 1; j < iterations; j++) {\n U = hmac.run(U, hmac.ipad2)\n for (var k = 0; k < hLen; k++) T[k] ^= U[k]\n }\n\n T.copy(DK, destPos)\n destPos += hLen\n }\n\n return DK\n}\n\nmodule.exports = pbkdf2\n","var Buffer = require('safe-buffer').Buffer\n\nvar checkParameters = require('./precondition')\nvar defaultEncoding = require('./default-encoding')\nvar sync = require('./sync')\nvar toBuffer = require('./to-buffer')\n\nvar ZERO_BUF\nvar subtle = global.crypto && global.crypto.subtle\nvar toBrowser = {\n sha: 'SHA-1',\n 'sha-1': 'SHA-1',\n sha1: 'SHA-1',\n sha256: 'SHA-256',\n 'sha-256': 'SHA-256',\n sha384: 'SHA-384',\n 'sha-384': 'SHA-384',\n 'sha-512': 'SHA-512',\n sha512: 'SHA-512'\n}\nvar checks = []\nfunction checkNative (algo) {\n if (global.process && !global.process.browser) {\n return Promise.resolve(false)\n }\n if (!subtle || !subtle.importKey || !subtle.deriveBits) {\n return Promise.resolve(false)\n }\n if (checks[algo] !== undefined) {\n return checks[algo]\n }\n ZERO_BUF = ZERO_BUF || Buffer.alloc(8)\n var prom = browserPbkdf2(ZERO_BUF, ZERO_BUF, 10, 128, algo)\n .then(function () {\n return true\n }).catch(function () {\n return false\n })\n checks[algo] = prom\n return prom\n}\nvar nextTick\nfunction getNextTick () {\n if (nextTick) {\n return nextTick\n }\n if (global.process && global.process.nextTick) {\n nextTick = global.process.nextTick\n } else if (global.queueMicrotask) {\n nextTick = global.queueMicrotask\n } else if (global.setImmediate) {\n nextTick = global.setImmediate\n } else {\n nextTick = global.setTimeout\n }\n return nextTick\n}\nfunction browserPbkdf2 (password, salt, iterations, length, algo) {\n return subtle.importKey(\n 'raw', password, { name: 'PBKDF2' }, false, ['deriveBits']\n ).then(function (key) {\n return subtle.deriveBits({\n name: 'PBKDF2',\n salt: salt,\n iterations: iterations,\n hash: {\n name: algo\n }\n }, key, length << 3)\n }).then(function (res) {\n return Buffer.from(res)\n })\n}\n\nfunction resolvePromise (promise, callback) {\n promise.then(function (out) {\n getNextTick()(function () {\n callback(null, out)\n })\n }, function (e) {\n getNextTick()(function () {\n callback(e)\n })\n })\n}\nmodule.exports = function (password, salt, iterations, keylen, digest, callback) {\n if (typeof digest === 'function') {\n callback = digest\n digest = undefined\n }\n\n digest = digest || 'sha1'\n var algo = toBrowser[digest.toLowerCase()]\n\n if (!algo || typeof global.Promise !== 'function') {\n getNextTick()(function () {\n var out\n try {\n out = sync(password, salt, iterations, keylen, digest)\n } catch (e) {\n return callback(e)\n }\n callback(null, out)\n })\n return\n }\n\n checkParameters(iterations, keylen)\n password = toBuffer(password, defaultEncoding, 'Password')\n salt = toBuffer(salt, defaultEncoding, 'Salt')\n if (typeof callback !== 'function') throw new Error('No callback provided to pbkdf2')\n\n resolvePromise(checkNative(algo).then(function (resp) {\n if (resp) return browserPbkdf2(password, salt, iterations, keylen, algo)\n\n return sync(password, salt, iterations, keylen, digest)\n }), callback)\n}\n","exports.pbkdf2 = require('./lib/async')\nexports.pbkdf2Sync = require('./lib/sync')\n","'use strict';\n\nexports.readUInt32BE = function readUInt32BE(bytes, off) {\n var res = (bytes[0 + off] << 24) |\n (bytes[1 + off] << 16) |\n (bytes[2 + off] << 8) |\n bytes[3 + off];\n return res >>> 0;\n};\n\nexports.writeUInt32BE = function writeUInt32BE(bytes, value, off) {\n bytes[0 + off] = value >>> 24;\n bytes[1 + off] = (value >>> 16) & 0xff;\n bytes[2 + off] = (value >>> 8) & 0xff;\n bytes[3 + off] = value & 0xff;\n};\n\nexports.ip = function ip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n }\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.rip = function rip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 0; i < 4; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n for (var i = 4; i < 8; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.pc1 = function pc1(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n // 7, 15, 23, 31, 39, 47, 55, 63\n // 6, 14, 22, 30, 39, 47, 55, 63\n // 5, 13, 21, 29, 39, 47, 55, 63\n // 4, 12, 20, 28\n for (var i = 7; i >= 5; i--) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n\n // 1, 9, 17, 25, 33, 41, 49, 57\n // 2, 10, 18, 26, 34, 42, 50, 58\n // 3, 11, 19, 27, 35, 43, 51, 59\n // 36, 44, 52, 60\n for (var i = 1; i <= 3; i++) {\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.r28shl = function r28shl(num, shift) {\n return ((num << shift) & 0xfffffff) | (num >>> (28 - shift));\n};\n\nvar pc2table = [\n // inL => outL\n 14, 11, 17, 4, 27, 23, 25, 0,\n 13, 22, 7, 18, 5, 9, 16, 24,\n 2, 20, 12, 21, 1, 8, 15, 26,\n\n // inR => outR\n 15, 4, 25, 19, 9, 1, 26, 16,\n 5, 11, 23, 8, 12, 7, 17, 0,\n 22, 3, 10, 14, 6, 20, 27, 24\n];\n\nexports.pc2 = function pc2(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n var len = pc2table.length >>> 1;\n for (var i = 0; i < len; i++) {\n outL <<= 1;\n outL |= (inL >>> pc2table[i]) & 0x1;\n }\n for (var i = len; i < pc2table.length; i++) {\n outR <<= 1;\n outR |= (inR >>> pc2table[i]) & 0x1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.expand = function expand(r, out, off) {\n var outL = 0;\n var outR = 0;\n\n outL = ((r & 1) << 5) | (r >>> 27);\n for (var i = 23; i >= 15; i -= 4) {\n outL <<= 6;\n outL |= (r >>> i) & 0x3f;\n }\n for (var i = 11; i >= 3; i -= 4) {\n outR |= (r >>> i) & 0x3f;\n outR <<= 6;\n }\n outR |= ((r & 0x1f) << 1) | (r >>> 31);\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nvar sTable = [\n 14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1,\n 3, 10, 10, 6, 6, 12, 12, 11, 5, 9, 9, 5, 0, 3, 7, 8,\n 4, 15, 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7,\n 15, 5, 12, 11, 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13,\n\n 15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, 4, 14,\n 9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5,\n 0, 13, 14, 8, 7, 10, 11, 1, 10, 3, 4, 15, 13, 4, 1, 2,\n 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9,\n\n 10, 13, 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10,\n 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, 2, 15, 8, 1,\n 13, 1, 6, 10, 4, 13, 9, 0, 8, 6, 15, 9, 3, 8, 0, 7,\n 11, 4, 1, 15, 2, 14, 12, 3, 5, 11, 10, 5, 14, 2, 7, 12,\n\n 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3,\n 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9,\n 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, 11, 1, 7, 13, 13, 8,\n 15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14,\n\n 2, 14, 12, 11, 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1,\n 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, 9, 6,\n 4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13,\n 15, 6, 9, 15, 12, 0, 5, 9, 6, 10, 3, 4, 0, 5, 14, 3,\n\n 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5,\n 0, 6, 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8,\n 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, 12, 15, 3, 10,\n 7, 11, 0, 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13,\n\n 4, 13, 11, 0, 2, 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10,\n 3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, 6,\n 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7,\n 10, 9, 15, 5, 6, 0, 8, 15, 0, 14, 5, 2, 9, 3, 2, 12,\n\n 13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4,\n 10, 12, 9, 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2,\n 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, 8, 2, 13,\n 0, 15, 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11\n];\n\nexports.substitute = function substitute(inL, inR) {\n var out = 0;\n for (var i = 0; i < 4; i++) {\n var b = (inL >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n for (var i = 0; i < 4; i++) {\n var b = (inR >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[4 * 0x40 + i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n return out >>> 0;\n};\n\nvar permuteTable = [\n 16, 25, 12, 11, 3, 20, 4, 15, 31, 17, 9, 6, 27, 14, 1, 22,\n 30, 24, 8, 18, 0, 5, 29, 23, 13, 19, 2, 26, 10, 21, 28, 7\n];\n\nexports.permute = function permute(num) {\n var out = 0;\n for (var i = 0; i < permuteTable.length; i++) {\n out <<= 1;\n out |= (num >>> permuteTable[i]) & 0x1;\n }\n return out >>> 0;\n};\n\nexports.padSplit = function padSplit(num, size, group) {\n var str = num.toString(2);\n while (str.length < size)\n str = '0' + str;\n\n var out = [];\n for (var i = 0; i < size; i += group)\n out.push(str.slice(i, i + group));\n return out.join(' ');\n};\n","module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\n\nfunction Cipher(options) {\n this.options = options;\n\n this.type = this.options.type;\n this.blockSize = 8;\n this._init();\n\n this.buffer = new Array(this.blockSize);\n this.bufferOff = 0;\n this.padding = options.padding !== false\n}\nmodule.exports = Cipher;\n\nCipher.prototype._init = function _init() {\n // Might be overrided\n};\n\nCipher.prototype.update = function update(data) {\n if (data.length === 0)\n return [];\n\n if (this.type === 'decrypt')\n return this._updateDecrypt(data);\n else\n return this._updateEncrypt(data);\n};\n\nCipher.prototype._buffer = function _buffer(data, off) {\n // Append data to buffer\n var min = Math.min(this.buffer.length - this.bufferOff, data.length - off);\n for (var i = 0; i < min; i++)\n this.buffer[this.bufferOff + i] = data[off + i];\n this.bufferOff += min;\n\n // Shift next\n return min;\n};\n\nCipher.prototype._flushBuffer = function _flushBuffer(out, off) {\n this._update(this.buffer, 0, out, off);\n this.bufferOff = 0;\n return this.blockSize;\n};\n\nCipher.prototype._updateEncrypt = function _updateEncrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = ((this.bufferOff + data.length) / this.blockSize) | 0;\n var out = new Array(count * this.blockSize);\n\n if (this.bufferOff !== 0) {\n inputOff += this._buffer(data, inputOff);\n\n if (this.bufferOff === this.buffer.length)\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Write blocks\n var max = data.length - ((data.length - inputOff) % this.blockSize);\n for (; inputOff < max; inputOff += this.blockSize) {\n this._update(data, inputOff, out, outputOff);\n outputOff += this.blockSize;\n }\n\n // Queue rest\n for (; inputOff < data.length; inputOff++, this.bufferOff++)\n this.buffer[this.bufferOff] = data[inputOff];\n\n return out;\n};\n\nCipher.prototype._updateDecrypt = function _updateDecrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = Math.ceil((this.bufferOff + data.length) / this.blockSize) - 1;\n var out = new Array(count * this.blockSize);\n\n // TODO(indutny): optimize it, this is far from optimal\n for (; count > 0; count--) {\n inputOff += this._buffer(data, inputOff);\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Buffer rest of the input\n inputOff += this._buffer(data, inputOff);\n\n return out;\n};\n\nCipher.prototype.final = function final(buffer) {\n var first;\n if (buffer)\n first = this.update(buffer);\n\n var last;\n if (this.type === 'encrypt')\n last = this._finalEncrypt();\n else\n last = this._finalDecrypt();\n\n if (first)\n return first.concat(last);\n else\n return last;\n};\n\nCipher.prototype._pad = function _pad(buffer, off) {\n if (off === 0)\n return false;\n\n while (off < buffer.length)\n buffer[off++] = 0;\n\n return true;\n};\n\nCipher.prototype._finalEncrypt = function _finalEncrypt() {\n if (!this._pad(this.buffer, this.bufferOff))\n return [];\n\n var out = new Array(this.blockSize);\n this._update(this.buffer, 0, out, 0);\n return out;\n};\n\nCipher.prototype._unpad = function _unpad(buffer) {\n return buffer;\n};\n\nCipher.prototype._finalDecrypt = function _finalDecrypt() {\n assert.equal(this.bufferOff, this.blockSize, 'Not enough data to decrypt');\n var out = new Array(this.blockSize);\n this._flushBuffer(out, 0);\n\n return this._unpad(out);\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar utils = require('./utils');\nvar Cipher = require('./cipher');\n\nfunction DESState() {\n this.tmp = new Array(2);\n this.keys = null;\n}\n\nfunction DES(options) {\n Cipher.call(this, options);\n\n var state = new DESState();\n this._desState = state;\n\n this.deriveKeys(state, options.key);\n}\ninherits(DES, Cipher);\nmodule.exports = DES;\n\nDES.create = function create(options) {\n return new DES(options);\n};\n\nvar shiftTable = [\n 1, 1, 2, 2, 2, 2, 2, 2,\n 1, 2, 2, 2, 2, 2, 2, 1\n];\n\nDES.prototype.deriveKeys = function deriveKeys(state, key) {\n state.keys = new Array(16 * 2);\n\n assert.equal(key.length, this.blockSize, 'Invalid key length');\n\n var kL = utils.readUInt32BE(key, 0);\n var kR = utils.readUInt32BE(key, 4);\n\n utils.pc1(kL, kR, state.tmp, 0);\n kL = state.tmp[0];\n kR = state.tmp[1];\n for (var i = 0; i < state.keys.length; i += 2) {\n var shift = shiftTable[i >>> 1];\n kL = utils.r28shl(kL, shift);\n kR = utils.r28shl(kR, shift);\n utils.pc2(kL, kR, state.keys, i);\n }\n};\n\nDES.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._desState;\n\n var l = utils.readUInt32BE(inp, inOff);\n var r = utils.readUInt32BE(inp, inOff + 4);\n\n // Initial Permutation\n utils.ip(l, r, state.tmp, 0);\n l = state.tmp[0];\n r = state.tmp[1];\n\n if (this.type === 'encrypt')\n this._encrypt(state, l, r, state.tmp, 0);\n else\n this._decrypt(state, l, r, state.tmp, 0);\n\n l = state.tmp[0];\n r = state.tmp[1];\n\n utils.writeUInt32BE(out, l, outOff);\n utils.writeUInt32BE(out, r, outOff + 4);\n};\n\nDES.prototype._pad = function _pad(buffer, off) {\n if (this.padding === false) {\n return false;\n }\n\n var value = buffer.length - off;\n for (var i = off; i < buffer.length; i++)\n buffer[i] = value;\n\n return true;\n};\n\nDES.prototype._unpad = function _unpad(buffer) {\n if (this.padding === false) {\n return buffer;\n }\n\n var pad = buffer[buffer.length - 1];\n for (var i = buffer.length - pad; i < buffer.length; i++)\n assert.equal(buffer[i], pad);\n\n return buffer.slice(0, buffer.length - pad);\n};\n\nDES.prototype._encrypt = function _encrypt(state, lStart, rStart, out, off) {\n var l = lStart;\n var r = rStart;\n\n // Apply f() x16 times\n for (var i = 0; i < state.keys.length; i += 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(r, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = r;\n r = (l ^ f) >>> 0;\n l = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(r, l, out, off);\n};\n\nDES.prototype._decrypt = function _decrypt(state, lStart, rStart, out, off) {\n var l = rStart;\n var r = lStart;\n\n // Apply f() x16 times\n for (var i = state.keys.length - 2; i >= 0; i -= 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(l, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = l;\n l = (r ^ f) >>> 0;\n r = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(l, r, out, off);\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar proto = {};\n\nfunction CBCState(iv) {\n assert.equal(iv.length, 8, 'Invalid IV length');\n\n this.iv = new Array(8);\n for (var i = 0; i < this.iv.length; i++)\n this.iv[i] = iv[i];\n}\n\nfunction instantiate(Base) {\n function CBC(options) {\n Base.call(this, options);\n this._cbcInit();\n }\n inherits(CBC, Base);\n\n var keys = Object.keys(proto);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n CBC.prototype[key] = proto[key];\n }\n\n CBC.create = function create(options) {\n return new CBC(options);\n };\n\n return CBC;\n}\n\nexports.instantiate = instantiate;\n\nproto._cbcInit = function _cbcInit() {\n var state = new CBCState(this.options.iv);\n this._cbcState = state;\n};\n\nproto._update = function _update(inp, inOff, out, outOff) {\n var state = this._cbcState;\n var superProto = this.constructor.super_.prototype;\n\n var iv = state.iv;\n if (this.type === 'encrypt') {\n for (var i = 0; i < this.blockSize; i++)\n iv[i] ^= inp[inOff + i];\n\n superProto._update.call(this, iv, 0, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++)\n iv[i] = out[outOff + i];\n } else {\n superProto._update.call(this, inp, inOff, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++)\n out[outOff + i] ^= iv[i];\n\n for (var i = 0; i < this.blockSize; i++)\n iv[i] = inp[inOff + i];\n }\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar Cipher = require('./cipher');\nvar DES = require('./des');\n\nfunction EDEState(type, key) {\n assert.equal(key.length, 24, 'Invalid key length');\n\n var k1 = key.slice(0, 8);\n var k2 = key.slice(8, 16);\n var k3 = key.slice(16, 24);\n\n if (type === 'encrypt') {\n this.ciphers = [\n DES.create({ type: 'encrypt', key: k1 }),\n DES.create({ type: 'decrypt', key: k2 }),\n DES.create({ type: 'encrypt', key: k3 })\n ];\n } else {\n this.ciphers = [\n DES.create({ type: 'decrypt', key: k3 }),\n DES.create({ type: 'encrypt', key: k2 }),\n DES.create({ type: 'decrypt', key: k1 })\n ];\n }\n}\n\nfunction EDE(options) {\n Cipher.call(this, options);\n\n var state = new EDEState(this.type, this.options.key);\n this._edeState = state;\n}\ninherits(EDE, Cipher);\n\nmodule.exports = EDE;\n\nEDE.create = function create(options) {\n return new EDE(options);\n};\n\nEDE.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._edeState;\n\n state.ciphers[0]._update(inp, inOff, out, outOff);\n state.ciphers[1]._update(out, outOff, out, outOff);\n state.ciphers[2]._update(out, outOff, out, outOff);\n};\n\nEDE.prototype._pad = DES.prototype._pad;\nEDE.prototype._unpad = DES.prototype._unpad;\n","'use strict';\n\nexports.utils = require('./des/utils');\nexports.Cipher = require('./des/cipher');\nexports.DES = require('./des/des');\nexports.CBC = require('./des/cbc');\nexports.EDE = require('./des/ede');\n","var CipherBase = require('cipher-base')\nvar des = require('des.js')\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar modes = {\n 'des-ede3-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede3': des.EDE,\n 'des-ede-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede': des.EDE,\n 'des-cbc': des.CBC.instantiate(des.DES),\n 'des-ecb': des.DES\n}\nmodes.des = modes['des-cbc']\nmodes.des3 = modes['des-ede3-cbc']\nmodule.exports = DES\ninherits(DES, CipherBase)\nfunction DES (opts) {\n CipherBase.call(this)\n var modeName = opts.mode.toLowerCase()\n var mode = modes[modeName]\n var type\n if (opts.decrypt) {\n type = 'decrypt'\n } else {\n type = 'encrypt'\n }\n var key = opts.key\n if (!Buffer.isBuffer(key)) {\n key = Buffer.from(key)\n }\n if (modeName === 'des-ede' || modeName === 'des-ede-cbc') {\n key = Buffer.concat([key, key.slice(0, 8)])\n }\n var iv = opts.iv\n if (!Buffer.isBuffer(iv)) {\n iv = Buffer.from(iv)\n }\n this._des = mode.create({\n key: key,\n iv: iv,\n type: type\n })\n}\nDES.prototype._update = function (data) {\n return Buffer.from(this._des.update(data))\n}\nDES.prototype._final = function () {\n return Buffer.from(this._des.final())\n}\n","exports.encrypt = function (self, block) {\n return self._cipher.encryptBlock(block)\n}\n\nexports.decrypt = function (self, block) {\n return self._cipher.decryptBlock(block)\n}\n","module.exports = function xor (a, b) {\n var length = Math.min(a.length, b.length)\n var buffer = new Buffer(length)\n\n for (var i = 0; i < length; ++i) {\n buffer[i] = a[i] ^ b[i]\n }\n\n return buffer\n}\n","var xor = require('buffer-xor')\n\nexports.encrypt = function (self, block) {\n var data = xor(block, self._prev)\n\n self._prev = self._cipher.encryptBlock(data)\n return self._prev\n}\n\nexports.decrypt = function (self, block) {\n var pad = self._prev\n\n self._prev = block\n var out = self._cipher.decryptBlock(block)\n\n return xor(out, pad)\n}\n","var Buffer = require('safe-buffer').Buffer\nvar xor = require('buffer-xor')\n\nfunction encryptStart (self, data, decrypt) {\n var len = data.length\n var out = xor(data, self._cache)\n self._cache = self._cache.slice(len)\n self._prev = Buffer.concat([self._prev, decrypt ? data : out])\n return out\n}\n\nexports.encrypt = function (self, data, decrypt) {\n var out = Buffer.allocUnsafe(0)\n var len\n\n while (data.length) {\n if (self._cache.length === 0) {\n self._cache = self._cipher.encryptBlock(self._prev)\n self._prev = Buffer.allocUnsafe(0)\n }\n\n if (self._cache.length <= data.length) {\n len = self._cache.length\n out = Buffer.concat([out, encryptStart(self, data.slice(0, len), decrypt)])\n data = data.slice(len)\n } else {\n out = Buffer.concat([out, encryptStart(self, data, decrypt)])\n break\n }\n }\n\n return out\n}\n","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad = self._cipher.encryptBlock(self._prev)\n var out = pad[0] ^ byteParam\n\n self._prev = Buffer.concat([\n self._prev.slice(1),\n Buffer.from([decrypt ? byteParam : out])\n ])\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad\n var i = -1\n var len = 8\n var out = 0\n var bit, value\n while (++i < len) {\n pad = self._cipher.encryptBlock(self._prev)\n bit = (byteParam & (1 << (7 - i))) ? 0x80 : 0\n value = pad[0] ^ bit\n out += ((value & 0x80) >> (i % 8))\n self._prev = shiftIn(self._prev, decrypt ? bit : value)\n }\n return out\n}\n\nfunction shiftIn (buffer, value) {\n var len = buffer.length\n var i = -1\n var out = Buffer.allocUnsafe(buffer.length)\n buffer = Buffer.concat([buffer, Buffer.from([value])])\n\n while (++i < len) {\n out[i] = buffer[i] << 1 | buffer[i + 1] >> (7)\n }\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","var xor = require('buffer-xor')\n\nfunction getBlock (self) {\n self._prev = self._cipher.encryptBlock(self._prev)\n return self._prev\n}\n\nexports.encrypt = function (self, chunk) {\n while (self._cache.length < chunk.length) {\n self._cache = Buffer.concat([self._cache, getBlock(self)])\n }\n\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","function incr32 (iv) {\n var len = iv.length\n var item\n while (len--) {\n item = iv.readUInt8(len)\n if (item === 255) {\n iv.writeUInt8(0, len)\n } else {\n item++\n iv.writeUInt8(item, len)\n break\n }\n }\n}\nmodule.exports = incr32\n","var xor = require('buffer-xor')\nvar Buffer = require('safe-buffer').Buffer\nvar incr32 = require('../incr32')\n\nfunction getBlock (self) {\n var out = self._cipher.encryptBlockRaw(self._prev)\n incr32(self._prev)\n return out\n}\n\nvar blockSize = 16\nexports.encrypt = function (self, chunk) {\n var chunkNum = Math.ceil(chunk.length / blockSize)\n var start = self._cache.length\n self._cache = Buffer.concat([\n self._cache,\n Buffer.allocUnsafe(chunkNum * blockSize)\n ])\n for (var i = 0; i < chunkNum; i++) {\n var out = getBlock(self)\n var offset = start + i * blockSize\n self._cache.writeUInt32BE(out[0], offset + 0)\n self._cache.writeUInt32BE(out[1], offset + 4)\n self._cache.writeUInt32BE(out[2], offset + 8)\n self._cache.writeUInt32BE(out[3], offset + 12)\n }\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","var modeModules = {\n ECB: require('./ecb'),\n CBC: require('./cbc'),\n CFB: require('./cfb'),\n CFB8: require('./cfb8'),\n CFB1: require('./cfb1'),\n OFB: require('./ofb'),\n CTR: require('./ctr'),\n GCM: require('./ctr')\n}\n\nvar modes = require('./list.json')\n\nfor (var key in modes) {\n modes[key].module = modeModules[modes[key].mode]\n}\n\nmodule.exports = modes\n","// based on the aes implimentation in triple sec\n// https://github.com/keybase/triplesec\n// which is in turn based on the one from crypto-js\n// https://code.google.com/p/crypto-js/\n\nvar Buffer = require('safe-buffer').Buffer\n\nfunction asUInt32Array (buf) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n\n var len = (buf.length / 4) | 0\n var out = new Array(len)\n\n for (var i = 0; i < len; i++) {\n out[i] = buf.readUInt32BE(i * 4)\n }\n\n return out\n}\n\nfunction scrubVec (v) {\n for (var i = 0; i < v.length; v++) {\n v[i] = 0\n }\n}\n\nfunction cryptBlock (M, keySchedule, SUB_MIX, SBOX, nRounds) {\n var SUB_MIX0 = SUB_MIX[0]\n var SUB_MIX1 = SUB_MIX[1]\n var SUB_MIX2 = SUB_MIX[2]\n var SUB_MIX3 = SUB_MIX[3]\n\n var s0 = M[0] ^ keySchedule[0]\n var s1 = M[1] ^ keySchedule[1]\n var s2 = M[2] ^ keySchedule[2]\n var s3 = M[3] ^ keySchedule[3]\n var t0, t1, t2, t3\n var ksRow = 4\n\n for (var round = 1; round < nRounds; round++) {\n t0 = SUB_MIX0[s0 >>> 24] ^ SUB_MIX1[(s1 >>> 16) & 0xff] ^ SUB_MIX2[(s2 >>> 8) & 0xff] ^ SUB_MIX3[s3 & 0xff] ^ keySchedule[ksRow++]\n t1 = SUB_MIX0[s1 >>> 24] ^ SUB_MIX1[(s2 >>> 16) & 0xff] ^ SUB_MIX2[(s3 >>> 8) & 0xff] ^ SUB_MIX3[s0 & 0xff] ^ keySchedule[ksRow++]\n t2 = SUB_MIX0[s2 >>> 24] ^ SUB_MIX1[(s3 >>> 16) & 0xff] ^ SUB_MIX2[(s0 >>> 8) & 0xff] ^ SUB_MIX3[s1 & 0xff] ^ keySchedule[ksRow++]\n t3 = SUB_MIX0[s3 >>> 24] ^ SUB_MIX1[(s0 >>> 16) & 0xff] ^ SUB_MIX2[(s1 >>> 8) & 0xff] ^ SUB_MIX3[s2 & 0xff] ^ keySchedule[ksRow++]\n s0 = t0\n s1 = t1\n s2 = t2\n s3 = t3\n }\n\n t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]\n t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]\n t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]\n t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]\n t0 = t0 >>> 0\n t1 = t1 >>> 0\n t2 = t2 >>> 0\n t3 = t3 >>> 0\n\n return [t0, t1, t2, t3]\n}\n\n// AES constants\nvar RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]\nvar G = (function () {\n // Compute double table\n var d = new Array(256)\n for (var j = 0; j < 256; j++) {\n if (j < 128) {\n d[j] = j << 1\n } else {\n d[j] = (j << 1) ^ 0x11b\n }\n }\n\n var SBOX = []\n var INV_SBOX = []\n var SUB_MIX = [[], [], [], []]\n var INV_SUB_MIX = [[], [], [], []]\n\n // Walk GF(2^8)\n var x = 0\n var xi = 0\n for (var i = 0; i < 256; ++i) {\n // Compute sbox\n var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4)\n sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63\n SBOX[x] = sx\n INV_SBOX[sx] = x\n\n // Compute multiplication\n var x2 = d[x]\n var x4 = d[x2]\n var x8 = d[x4]\n\n // Compute sub bytes, mix columns tables\n var t = (d[sx] * 0x101) ^ (sx * 0x1010100)\n SUB_MIX[0][x] = (t << 24) | (t >>> 8)\n SUB_MIX[1][x] = (t << 16) | (t >>> 16)\n SUB_MIX[2][x] = (t << 8) | (t >>> 24)\n SUB_MIX[3][x] = t\n\n // Compute inv sub bytes, inv mix columns tables\n t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100)\n INV_SUB_MIX[0][sx] = (t << 24) | (t >>> 8)\n INV_SUB_MIX[1][sx] = (t << 16) | (t >>> 16)\n INV_SUB_MIX[2][sx] = (t << 8) | (t >>> 24)\n INV_SUB_MIX[3][sx] = t\n\n if (x === 0) {\n x = xi = 1\n } else {\n x = x2 ^ d[d[d[x8 ^ x2]]]\n xi ^= d[d[xi]]\n }\n }\n\n return {\n SBOX: SBOX,\n INV_SBOX: INV_SBOX,\n SUB_MIX: SUB_MIX,\n INV_SUB_MIX: INV_SUB_MIX\n }\n})()\n\nfunction AES (key) {\n this._key = asUInt32Array(key)\n this._reset()\n}\n\nAES.blockSize = 4 * 4\nAES.keySize = 256 / 8\nAES.prototype.blockSize = AES.blockSize\nAES.prototype.keySize = AES.keySize\nAES.prototype._reset = function () {\n var keyWords = this._key\n var keySize = keyWords.length\n var nRounds = keySize + 6\n var ksRows = (nRounds + 1) * 4\n\n var keySchedule = []\n for (var k = 0; k < keySize; k++) {\n keySchedule[k] = keyWords[k]\n }\n\n for (k = keySize; k < ksRows; k++) {\n var t = keySchedule[k - 1]\n\n if (k % keySize === 0) {\n t = (t << 8) | (t >>> 24)\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n\n t ^= RCON[(k / keySize) | 0] << 24\n } else if (keySize > 6 && k % keySize === 4) {\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n }\n\n keySchedule[k] = keySchedule[k - keySize] ^ t\n }\n\n var invKeySchedule = []\n for (var ik = 0; ik < ksRows; ik++) {\n var ksR = ksRows - ik\n var tt = keySchedule[ksR - (ik % 4 ? 0 : 4)]\n\n if (ik < 4 || ksR <= 4) {\n invKeySchedule[ik] = tt\n } else {\n invKeySchedule[ik] =\n G.INV_SUB_MIX[0][G.SBOX[tt >>> 24]] ^\n G.INV_SUB_MIX[1][G.SBOX[(tt >>> 16) & 0xff]] ^\n G.INV_SUB_MIX[2][G.SBOX[(tt >>> 8) & 0xff]] ^\n G.INV_SUB_MIX[3][G.SBOX[tt & 0xff]]\n }\n }\n\n this._nRounds = nRounds\n this._keySchedule = keySchedule\n this._invKeySchedule = invKeySchedule\n}\n\nAES.prototype.encryptBlockRaw = function (M) {\n M = asUInt32Array(M)\n return cryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX, this._nRounds)\n}\n\nAES.prototype.encryptBlock = function (M) {\n var out = this.encryptBlockRaw(M)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[1], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[3], 12)\n return buf\n}\n\nAES.prototype.decryptBlock = function (M) {\n M = asUInt32Array(M)\n\n // swap\n var m1 = M[1]\n M[1] = M[3]\n M[3] = m1\n\n var out = cryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX, this._nRounds)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[3], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[1], 12)\n return buf\n}\n\nAES.prototype.scrub = function () {\n scrubVec(this._keySchedule)\n scrubVec(this._invKeySchedule)\n scrubVec(this._key)\n}\n\nmodule.exports.AES = AES\n","var Buffer = require('safe-buffer').Buffer\nvar ZEROES = Buffer.alloc(16, 0)\n\nfunction toArray (buf) {\n return [\n buf.readUInt32BE(0),\n buf.readUInt32BE(4),\n buf.readUInt32BE(8),\n buf.readUInt32BE(12)\n ]\n}\n\nfunction fromArray (out) {\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0] >>> 0, 0)\n buf.writeUInt32BE(out[1] >>> 0, 4)\n buf.writeUInt32BE(out[2] >>> 0, 8)\n buf.writeUInt32BE(out[3] >>> 0, 12)\n return buf\n}\n\nfunction GHASH (key) {\n this.h = key\n this.state = Buffer.alloc(16, 0)\n this.cache = Buffer.allocUnsafe(0)\n}\n\n// from http://bitwiseshiftleft.github.io/sjcl/doc/symbols/src/core_gcm.js.html\n// by Juho Vähä-Herttua\nGHASH.prototype.ghash = function (block) {\n var i = -1\n while (++i < block.length) {\n this.state[i] ^= block[i]\n }\n this._multiply()\n}\n\nGHASH.prototype._multiply = function () {\n var Vi = toArray(this.h)\n var Zi = [0, 0, 0, 0]\n var j, xi, lsbVi\n var i = -1\n while (++i < 128) {\n xi = (this.state[~~(i / 8)] & (1 << (7 - (i % 8)))) !== 0\n if (xi) {\n // Z_i+1 = Z_i ^ V_i\n Zi[0] ^= Vi[0]\n Zi[1] ^= Vi[1]\n Zi[2] ^= Vi[2]\n Zi[3] ^= Vi[3]\n }\n\n // Store the value of LSB(V_i)\n lsbVi = (Vi[3] & 1) !== 0\n\n // V_i+1 = V_i >> 1\n for (j = 3; j > 0; j--) {\n Vi[j] = (Vi[j] >>> 1) | ((Vi[j - 1] & 1) << 31)\n }\n Vi[0] = Vi[0] >>> 1\n\n // If LSB(V_i) is 1, V_i+1 = (V_i >> 1) ^ R\n if (lsbVi) {\n Vi[0] = Vi[0] ^ (0xe1 << 24)\n }\n }\n this.state = fromArray(Zi)\n}\n\nGHASH.prototype.update = function (buf) {\n this.cache = Buffer.concat([this.cache, buf])\n var chunk\n while (this.cache.length >= 16) {\n chunk = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n this.ghash(chunk)\n }\n}\n\nGHASH.prototype.final = function (abl, bl) {\n if (this.cache.length) {\n this.ghash(Buffer.concat([this.cache, ZEROES], 16))\n }\n\n this.ghash(fromArray([0, abl, 0, bl]))\n return this.state\n}\n\nmodule.exports = GHASH\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\nvar GHASH = require('./ghash')\nvar xor = require('buffer-xor')\nvar incr32 = require('./incr32')\n\nfunction xorTest (a, b) {\n var out = 0\n if (a.length !== b.length) out++\n\n var len = Math.min(a.length, b.length)\n for (var i = 0; i < len; ++i) {\n out += (a[i] ^ b[i])\n }\n\n return out\n}\n\nfunction calcIv (self, iv, ck) {\n if (iv.length === 12) {\n self._finID = Buffer.concat([iv, Buffer.from([0, 0, 0, 1])])\n return Buffer.concat([iv, Buffer.from([0, 0, 0, 2])])\n }\n var ghash = new GHASH(ck)\n var len = iv.length\n var toPad = len % 16\n ghash.update(iv)\n if (toPad) {\n toPad = 16 - toPad\n ghash.update(Buffer.alloc(toPad, 0))\n }\n ghash.update(Buffer.alloc(8, 0))\n var ivBits = len * 8\n var tail = Buffer.alloc(8)\n tail.writeUIntBE(ivBits, 0, 8)\n ghash.update(tail)\n self._finID = ghash.state\n var out = Buffer.from(self._finID)\n incr32(out)\n return out\n}\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n var h = Buffer.alloc(4, 0)\n\n this._cipher = new aes.AES(key)\n var ck = this._cipher.encryptBlock(h)\n this._ghash = new GHASH(ck)\n iv = calcIv(this, iv, ck)\n\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._alen = 0\n this._len = 0\n this._mode = mode\n\n this._authTag = null\n this._called = false\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n if (!this._called && this._alen) {\n var rump = 16 - (this._alen % 16)\n if (rump < 16) {\n rump = Buffer.alloc(rump, 0)\n this._ghash.update(rump)\n }\n }\n\n this._called = true\n var out = this._mode.encrypt(this, chunk)\n if (this._decrypt) {\n this._ghash.update(chunk)\n } else {\n this._ghash.update(out)\n }\n this._len += chunk.length\n return out\n}\n\nStreamCipher.prototype._final = function () {\n if (this._decrypt && !this._authTag) throw new Error('Unsupported state or unable to authenticate data')\n\n var tag = xor(this._ghash.final(this._alen * 8, this._len * 8), this._cipher.encryptBlock(this._finID))\n if (this._decrypt && xorTest(tag, this._authTag)) throw new Error('Unsupported state or unable to authenticate data')\n\n this._authTag = tag\n this._cipher.scrub()\n}\n\nStreamCipher.prototype.getAuthTag = function getAuthTag () {\n if (this._decrypt || !Buffer.isBuffer(this._authTag)) throw new Error('Attempting to get auth tag in unsupported state')\n\n return this._authTag\n}\n\nStreamCipher.prototype.setAuthTag = function setAuthTag (tag) {\n if (!this._decrypt) throw new Error('Attempting to set auth tag in unsupported state')\n\n this._authTag = tag\n}\n\nStreamCipher.prototype.setAAD = function setAAD (buf) {\n if (this._called) throw new Error('Attempting to set AAD in unsupported state')\n\n this._ghash.update(buf)\n this._alen += buf.length\n}\n\nmodule.exports = StreamCipher\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\n\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._mode = mode\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n return this._mode.encrypt(this, chunk, this._decrypt)\n}\n\nStreamCipher.prototype._final = function () {\n this._cipher.scrub()\n}\n\nmodule.exports = StreamCipher\n","var Buffer = require('safe-buffer').Buffer\nvar MD5 = require('md5.js')\n\n/* eslint-disable camelcase */\nfunction EVP_BytesToKey (password, salt, keyBits, ivLen) {\n if (!Buffer.isBuffer(password)) password = Buffer.from(password, 'binary')\n if (salt) {\n if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, 'binary')\n if (salt.length !== 8) throw new RangeError('salt should be Buffer with 8 byte length')\n }\n\n var keyLen = keyBits / 8\n var key = Buffer.alloc(keyLen)\n var iv = Buffer.alloc(ivLen || 0)\n var tmp = Buffer.alloc(0)\n\n while (keyLen > 0 || ivLen > 0) {\n var hash = new MD5()\n hash.update(tmp)\n hash.update(password)\n if (salt) hash.update(salt)\n tmp = hash.digest()\n\n var used = 0\n\n if (keyLen > 0) {\n var keyStart = key.length - keyLen\n used = Math.min(keyLen, tmp.length)\n tmp.copy(key, keyStart, 0, used)\n keyLen -= used\n }\n\n if (used < tmp.length && ivLen > 0) {\n var ivStart = iv.length - ivLen\n var length = Math.min(ivLen, tmp.length - used)\n tmp.copy(iv, ivStart, used, used + length)\n ivLen -= length\n }\n }\n\n tmp.fill(0)\n return { key: key, iv: iv }\n}\n\nmodule.exports = EVP_BytesToKey\n","var MODES = require('./modes')\nvar AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Cipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Cipher, Transform)\n\nCipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n\n while ((chunk = this._cache.get())) {\n thing = this._mode.encrypt(this, chunk)\n out.push(thing)\n }\n\n return Buffer.concat(out)\n}\n\nvar PADDING = Buffer.alloc(16, 0x10)\n\nCipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n chunk = this._mode.encrypt(this, chunk)\n this._cipher.scrub()\n return chunk\n }\n\n if (!chunk.equals(PADDING)) {\n this._cipher.scrub()\n throw new Error('data not multiple of block length')\n }\n}\n\nCipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function () {\n if (this.cache.length > 15) {\n var out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n return null\n}\n\nSplitter.prototype.flush = function () {\n var len = 16 - this.cache.length\n var padBuff = Buffer.allocUnsafe(len)\n\n var i = -1\n while (++i < len) {\n padBuff.writeUInt8(len, i)\n }\n\n return Buffer.concat([this.cache, padBuff])\n}\n\nfunction createCipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv)\n }\n\n return new Cipher(config.module, password, iv)\n}\n\nfunction createCipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createCipheriv = createCipheriv\nexports.createCipher = createCipher\n","var AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar MODES = require('./modes')\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Decipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._last = void 0\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Decipher, Transform)\n\nDecipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n while ((chunk = this._cache.get(this._autopadding))) {\n thing = this._mode.decrypt(this, chunk)\n out.push(thing)\n }\n return Buffer.concat(out)\n}\n\nDecipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n return unpad(this._mode.decrypt(this, chunk))\n } else if (chunk) {\n throw new Error('data not multiple of block length')\n }\n}\n\nDecipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function (autoPadding) {\n var out\n if (autoPadding) {\n if (this.cache.length > 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n } else {\n if (this.cache.length >= 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n }\n\n return null\n}\n\nSplitter.prototype.flush = function () {\n if (this.cache.length) return this.cache\n}\n\nfunction unpad (last) {\n var padded = last[15]\n if (padded < 1 || padded > 16) {\n throw new Error('unable to decrypt data')\n }\n var i = -1\n while (++i < padded) {\n if (last[(i + (16 - padded))] !== padded) {\n throw new Error('unable to decrypt data')\n }\n }\n if (padded === 16) return\n\n return last.slice(0, 16 - padded)\n}\n\nfunction createDecipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv, true)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv, true)\n }\n\n return new Decipher(config.module, password, iv)\n}\n\nfunction createDecipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createDecipher = createDecipher\nexports.createDecipheriv = createDecipheriv\n","var ciphers = require('./encrypter')\nvar deciphers = require('./decrypter')\nvar modes = require('./modes/list.json')\n\nfunction getCiphers () {\n return Object.keys(modes)\n}\n\nexports.createCipher = exports.Cipher = ciphers.createCipher\nexports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv\nexports.createDecipher = exports.Decipher = deciphers.createDecipher\nexports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","exports['des-ecb'] = {\n key: 8,\n iv: 0\n}\nexports['des-cbc'] = exports.des = {\n key: 8,\n iv: 8\n}\nexports['des-ede3-cbc'] = exports.des3 = {\n key: 24,\n iv: 8\n}\nexports['des-ede3'] = {\n key: 24,\n iv: 0\n}\nexports['des-ede-cbc'] = {\n key: 16,\n iv: 8\n}\nexports['des-ede'] = {\n key: 16,\n iv: 0\n}\n","var DES = require('browserify-des')\nvar aes = require('browserify-aes/browser')\nvar aesModes = require('browserify-aes/modes')\nvar desModes = require('browserify-des/modes')\nvar ebtk = require('evp_bytestokey')\n\nfunction createCipher (suite, password) {\n suite = suite.toLowerCase()\n\n var keyLen, ivLen\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key\n ivLen = aesModes[suite].iv\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8\n ivLen = desModes[suite].iv\n } else {\n throw new TypeError('invalid suite type')\n }\n\n var keys = ebtk(password, false, keyLen, ivLen)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createDecipher (suite, password) {\n suite = suite.toLowerCase()\n\n var keyLen, ivLen\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key\n ivLen = aesModes[suite].iv\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8\n ivLen = desModes[suite].iv\n } else {\n throw new TypeError('invalid suite type')\n }\n\n var keys = ebtk(password, false, keyLen, ivLen)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createCipheriv (suite, key, iv) {\n suite = suite.toLowerCase()\n if (aesModes[suite]) return aes.createCipheriv(suite, key, iv)\n if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite })\n\n throw new TypeError('invalid suite type')\n}\n\nfunction createDecipheriv (suite, key, iv) {\n suite = suite.toLowerCase()\n if (aesModes[suite]) return aes.createDecipheriv(suite, key, iv)\n if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite, decrypt: true })\n\n throw new TypeError('invalid suite type')\n}\n\nfunction getCiphers () {\n return Object.keys(desModes).concat(aes.getCiphers())\n}\n\nexports.createCipher = exports.Cipher = createCipher\nexports.createCipheriv = exports.Cipheriv = createCipheriv\nexports.createDecipher = exports.Decipher = createDecipher\nexports.createDecipheriv = exports.Decipheriv = createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","var r;\n\nmodule.exports = function rand(len) {\n if (!r)\n r = new Rand(null);\n\n return r.generate(len);\n};\n\nfunction Rand(rand) {\n this.rand = rand;\n}\nmodule.exports.Rand = Rand;\n\nRand.prototype.generate = function generate(len) {\n return this._rand(len);\n};\n\n// Emulate crypto API using randy\nRand.prototype._rand = function _rand(n) {\n if (this.rand.getBytes)\n return this.rand.getBytes(n);\n\n var res = new Uint8Array(n);\n for (var i = 0; i < res.length; i++)\n res[i] = this.rand.getByte();\n return res;\n};\n\nif (typeof self === 'object') {\n if (self.crypto && self.crypto.getRandomValues) {\n // Modern browsers\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.crypto.getRandomValues(arr);\n return arr;\n };\n } else if (self.msCrypto && self.msCrypto.getRandomValues) {\n // IE\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.msCrypto.getRandomValues(arr);\n return arr;\n };\n\n // Safari's WebWorkers do not have `crypto`\n } else if (typeof window === 'object') {\n // Old junk\n Rand.prototype._rand = function() {\n throw new Error('Not implemented yet');\n };\n }\n} else {\n // Node.js or Web worker with no crypto support\n try {\n var crypto = require('crypto');\n if (typeof crypto.randomBytes !== 'function')\n throw new Error('Not supported');\n\n Rand.prototype._rand = function _rand(n) {\n return crypto.randomBytes(n);\n };\n } catch (e) {\n }\n}\n","var bn = require('bn.js');\nvar brorand = require('brorand');\n\nfunction MillerRabin(rand) {\n this.rand = rand || new brorand.Rand();\n}\nmodule.exports = MillerRabin;\n\nMillerRabin.create = function create(rand) {\n return new MillerRabin(rand);\n};\n\nMillerRabin.prototype._randbelow = function _randbelow(n) {\n var len = n.bitLength();\n var min_bytes = Math.ceil(len / 8);\n\n // Generage random bytes until a number less than n is found.\n // This ensures that 0..n-1 have an equal probability of being selected.\n do\n var a = new bn(this.rand.generate(min_bytes));\n while (a.cmp(n) >= 0);\n\n return a;\n};\n\nMillerRabin.prototype._randrange = function _randrange(start, stop) {\n // Generate a random number greater than or equal to start and less than stop.\n var size = stop.sub(start);\n return start.add(this._randbelow(size));\n};\n\nMillerRabin.prototype.test = function test(n, k, cb) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n var prime = true;\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n if (cb)\n cb(a);\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return false;\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s)\n return false;\n }\n\n return prime;\n};\n\nMillerRabin.prototype.getDivisor = function getDivisor(n, k) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n\n var g = n.gcd(a);\n if (g.cmpn(1) !== 0)\n return g;\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return x.fromRed().subn(1).gcd(n);\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s) {\n x = x.redSqr();\n return x.fromRed().subn(1).gcd(n);\n }\n }\n\n return false;\n};\n","var randomBytes = require('randombytes');\nmodule.exports = findPrime;\nfindPrime.simpleSieve = simpleSieve;\nfindPrime.fermatTest = fermatTest;\nvar BN = require('bn.js');\nvar TWENTYFOUR = new BN(24);\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar ONE = new BN(1);\nvar TWO = new BN(2);\nvar FIVE = new BN(5);\nvar SIXTEEN = new BN(16);\nvar EIGHT = new BN(8);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar ELEVEN = new BN(11);\nvar FOUR = new BN(4);\nvar TWELVE = new BN(12);\nvar primes = null;\n\nfunction _getPrimes() {\n if (primes !== null)\n return primes;\n\n var limit = 0x100000;\n var res = [];\n res[0] = 2;\n for (var i = 1, k = 3; k < limit; k += 2) {\n var sqrt = Math.ceil(Math.sqrt(k));\n for (var j = 0; j < i && res[j] <= sqrt; j++)\n if (k % res[j] === 0)\n break;\n\n if (i !== j && res[j] <= sqrt)\n continue;\n\n res[i++] = k;\n }\n primes = res;\n return res;\n}\n\nfunction simpleSieve(p) {\n var primes = _getPrimes();\n\n for (var i = 0; i < primes.length; i++)\n if (p.modn(primes[i]) === 0) {\n if (p.cmpn(primes[i]) === 0) {\n return true;\n } else {\n return false;\n }\n }\n\n return true;\n}\n\nfunction fermatTest(p) {\n var red = BN.mont(p);\n return TWO.toRed(red).redPow(p.subn(1)).fromRed().cmpn(1) === 0;\n}\n\nfunction findPrime(bits, gen) {\n if (bits < 16) {\n // this is what openssl does\n if (gen === 2 || gen === 5) {\n return new BN([0x8c, 0x7b]);\n } else {\n return new BN([0x8c, 0x27]);\n }\n }\n gen = new BN(gen);\n\n var num, n2;\n\n while (true) {\n num = new BN(randomBytes(Math.ceil(bits / 8)));\n while (num.bitLength() > bits) {\n num.ishrn(1);\n }\n if (num.isEven()) {\n num.iadd(ONE);\n }\n if (!num.testn(1)) {\n num.iadd(TWO);\n }\n if (!gen.cmp(TWO)) {\n while (num.mod(TWENTYFOUR).cmp(ELEVEN)) {\n num.iadd(FOUR);\n }\n } else if (!gen.cmp(FIVE)) {\n while (num.mod(TEN).cmp(THREE)) {\n num.iadd(FOUR);\n }\n }\n n2 = num.shrn(1);\n if (simpleSieve(n2) && simpleSieve(num) &&\n fermatTest(n2) && fermatTest(num) &&\n millerRabin.test(n2) && millerRabin.test(num)) {\n return num;\n }\n }\n\n}\n","var BN = require('bn.js');\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar TWENTYFOUR = new BN(24);\nvar ELEVEN = new BN(11);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar primes = require('./generatePrime');\nvar randomBytes = require('randombytes');\nmodule.exports = DH;\n\nfunction setPublicKey(pub, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc);\n }\n this._pub = new BN(pub);\n return this;\n}\n\nfunction setPrivateKey(priv, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc);\n }\n this._priv = new BN(priv);\n return this;\n}\n\nvar primeCache = {};\nfunction checkPrime(prime, generator) {\n var gen = generator.toString('hex');\n var hex = [gen, prime.toString(16)].join('_');\n if (hex in primeCache) {\n return primeCache[hex];\n }\n var error = 0;\n\n if (prime.isEven() ||\n !primes.simpleSieve ||\n !primes.fermatTest(prime) ||\n !millerRabin.test(prime)) {\n //not a prime so +1\n error += 1;\n\n if (gen === '02' || gen === '05') {\n // we'd be able to check the generator\n // it would fail so +8\n error += 8;\n } else {\n //we wouldn't be able to test the generator\n // so +4\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n }\n if (!millerRabin.test(prime.shrn(1))) {\n //not a safe prime\n error += 2;\n }\n var rem;\n switch (gen) {\n case '02':\n if (prime.mod(TWENTYFOUR).cmp(ELEVEN)) {\n // unsuidable generator\n error += 8;\n }\n break;\n case '05':\n rem = prime.mod(TEN);\n if (rem.cmp(THREE) && rem.cmp(SEVEN)) {\n // prime mod 10 needs to equal 3 or 7\n error += 8;\n }\n break;\n default:\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n}\n\nfunction DH(prime, generator, malleable) {\n this.setGenerator(generator);\n this.__prime = new BN(prime);\n this._prime = BN.mont(this.__prime);\n this._primeLen = prime.length;\n this._pub = undefined;\n this._priv = undefined;\n this._primeCode = undefined;\n if (malleable) {\n this.setPublicKey = setPublicKey;\n this.setPrivateKey = setPrivateKey;\n } else {\n this._primeCode = 8;\n }\n}\nObject.defineProperty(DH.prototype, 'verifyError', {\n enumerable: true,\n get: function () {\n if (typeof this._primeCode !== 'number') {\n this._primeCode = checkPrime(this.__prime, this.__gen);\n }\n return this._primeCode;\n }\n});\nDH.prototype.generateKeys = function () {\n if (!this._priv) {\n this._priv = new BN(randomBytes(this._primeLen));\n }\n this._pub = this._gen.toRed(this._prime).redPow(this._priv).fromRed();\n return this.getPublicKey();\n};\n\nDH.prototype.computeSecret = function (other) {\n other = new BN(other);\n other = other.toRed(this._prime);\n var secret = other.redPow(this._priv).fromRed();\n var out = new Buffer(secret.toArray());\n var prime = this.getPrime();\n if (out.length < prime.length) {\n var front = new Buffer(prime.length - out.length);\n front.fill(0);\n out = Buffer.concat([front, out]);\n }\n return out;\n};\n\nDH.prototype.getPublicKey = function getPublicKey(enc) {\n return formatReturnValue(this._pub, enc);\n};\n\nDH.prototype.getPrivateKey = function getPrivateKey(enc) {\n return formatReturnValue(this._priv, enc);\n};\n\nDH.prototype.getPrime = function (enc) {\n return formatReturnValue(this.__prime, enc);\n};\n\nDH.prototype.getGenerator = function (enc) {\n return formatReturnValue(this._gen, enc);\n};\n\nDH.prototype.setGenerator = function (gen, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(gen)) {\n gen = new Buffer(gen, enc);\n }\n this.__gen = gen;\n this._gen = new BN(gen);\n return this;\n};\n\nfunction formatReturnValue(bn, enc) {\n var buf = new Buffer(bn.toArray());\n if (!enc) {\n return buf;\n } else {\n return buf.toString(enc);\n }\n}\n","var generatePrime = require('./lib/generatePrime')\nvar primes = require('./lib/primes.json')\n\nvar DH = require('./lib/dh')\n\nfunction getDiffieHellman (mod) {\n var prime = new Buffer(primes[mod].prime, 'hex')\n var gen = new Buffer(primes[mod].gen, 'hex')\n\n return new DH(prime, gen)\n}\n\nvar ENCODINGS = {\n 'binary': true, 'hex': true, 'base64': true\n}\n\nfunction createDiffieHellman (prime, enc, generator, genc) {\n if (Buffer.isBuffer(enc) || ENCODINGS[enc] === undefined) {\n return createDiffieHellman(prime, 'binary', enc, generator)\n }\n\n enc = enc || 'binary'\n genc = genc || 'binary'\n generator = generator || new Buffer([2])\n\n if (!Buffer.isBuffer(generator)) {\n generator = new Buffer(generator, genc)\n }\n\n if (typeof prime === 'number') {\n return new DH(generatePrime(prime, generator), generator, true)\n }\n\n if (!Buffer.isBuffer(prime)) {\n prime = new Buffer(prime, enc)\n }\n\n return new DH(prime, generator, true)\n}\n\nexports.DiffieHellmanGroup = exports.createDiffieHellmanGroup = exports.getDiffieHellman = getDiffieHellman\nexports.createDiffieHellman = exports.DiffieHellman = createDiffieHellman\n","'use strict';\n\nif (typeof process === 'undefined' ||\n !process.version ||\n process.version.indexOf('v0.') === 0 ||\n process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = { nextTick: nextTick };\n} else {\n module.exports = process\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n var len = arguments.length;\n var args, i;\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n default:\n args = new Array(len - 1);\n i = 0;\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\n\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","module.exports = require('events').EventEmitter;\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('buffer').Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n","'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Buffer = require('safe-buffer').Buffer;\nvar util = require('util');\n\nfunction copyBuffer(src, target, offset) {\n src.copy(target, offset);\n}\n\nmodule.exports = function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n BufferList.prototype.push = function push(v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n };\n\n BufferList.prototype.unshift = function unshift(v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n };\n\n BufferList.prototype.shift = function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n };\n\n BufferList.prototype.clear = function clear() {\n this.head = this.tail = null;\n this.length = 0;\n };\n\n BufferList.prototype.join = function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n };\n\n BufferList.prototype.concat = function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n };\n\n return BufferList;\n}();\n\nif (util && util.inspect && util.inspect.custom) {\n module.exports.prototype[util.inspect.custom] = function () {\n var obj = util.inspect({ length: this.length });\n return this.constructor.name + ' ' + obj;\n };\n}","'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n pna.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n pna.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n pna.nextTick(emitErrorNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n pna.nextTick(emitErrorNT, _this, err);\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n\n // reuse the free corkReq.\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/**/\n\nmodule.exports = Duplex;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n pna.nextTick(cb, err);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Readable;\n\n/**/\nvar isArray = require('isarray');\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, { hasUnpiped: false });\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark;\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\n\nvar BN = require('bn.js');\nvar randomBytes = require('randombytes');\nvar Buffer = require('safe-buffer').Buffer;\n\nfunction getr(priv) {\n\tvar len = priv.modulus.byteLength();\n\tvar r;\n\tdo {\n\t\tr = new BN(randomBytes(len));\n\t} while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2));\n\treturn r;\n}\n\nfunction blind(priv) {\n\tvar r = getr(priv);\n\tvar blinder = r.toRed(BN.mont(priv.modulus)).redPow(new BN(priv.publicExponent)).fromRed();\n\treturn { blinder: blinder, unblinder: r.invm(priv.modulus) };\n}\n\nfunction crt(msg, priv) {\n\tvar blinds = blind(priv);\n\tvar len = priv.modulus.byteLength();\n\tvar blinded = new BN(msg).mul(blinds.blinder).umod(priv.modulus);\n\tvar c1 = blinded.toRed(BN.mont(priv.prime1));\n\tvar c2 = blinded.toRed(BN.mont(priv.prime2));\n\tvar qinv = priv.coefficient;\n\tvar p = priv.prime1;\n\tvar q = priv.prime2;\n\tvar m1 = c1.redPow(priv.exponent1).fromRed();\n\tvar m2 = c2.redPow(priv.exponent2).fromRed();\n\tvar h = m1.isub(m2).imul(qinv).umod(p).imul(q);\n\treturn m2.iadd(h).imul(blinds.unblinder).umod(priv.modulus).toArrayLike(Buffer, 'be', len);\n}\ncrt.getr = getr;\n\nmodule.exports = crt;\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\n\nvar utils = exports;\nvar BN = require('bn.js');\nvar minAssert = require('minimalistic-assert');\nvar minUtils = require('minimalistic-crypto-utils');\n\nutils.assert = minAssert;\nutils.toArray = minUtils.toArray;\nutils.zero2 = minUtils.zero2;\nutils.toHex = minUtils.toHex;\nutils.encode = minUtils.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n var i;\n for (i = 0; i < naf.length; i += 1) {\n naf[i] = 0;\n }\n\n var ws = 1 << (w + 1);\n var k = num.clone();\n\n for (i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n [],\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n var m8;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n\n","'use strict';\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg !== 'string') {\n for (var i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n return res;\n }\n if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (var i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n } else {\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n var hi = c >> 8;\n var lo = c & 0xff;\n if (hi)\n res.push(hi, lo);\n else\n res.push(lo);\n }\n }\n return res;\n}\nutils.toArray = toArray;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n if (enc === 'hex')\n return toHex(arr);\n else\n return arr;\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n var j;\n var nafW;\n for (j = 0; j < naf.length; j += doubles.step) {\n nafW = 0;\n for (var l = j + doubles.step - 1; l >= j; l--)\n nafW = (nafW << 1) + naf[l];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (j = 0; j < repr.length; j++) {\n nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var l = 0; i >= 0 && naf[i] === 0; i--)\n l++;\n if (i >= 0)\n l++;\n acc = acc.dblp(l);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n var i;\n var j;\n var p;\n for (i = 0; i < len; i++) {\n p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b], /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3, /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (j = 0; j < len; j++) {\n var z = tmp[j];\n p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len));\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null,\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles,\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res,\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction ShortCurve(conf) {\n Base.call(this, 'short', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n\n // If the curve is endomorphic, precalculate beta and lambda\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits(ShortCurve, Base);\nmodule.exports = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n\n // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n // Choose the smallest beta\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n\n // Get basis vectors, used for balanced length-two representation\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16),\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis,\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [ l1, l2 ];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n\n // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1);\n\n // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n var a0;\n var b0;\n // First vector\n var a1;\n var b1;\n // Second vector\n var a2;\n var b2;\n\n var prevR;\n var i = 0;\n var r;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r;\n\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r.neg();\n b2 = x;\n\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n\n // Normalize signs\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 },\n ];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n\n // Calculate answer\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1: k1, k2: k2 };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf)\n return true;\n\n var x = point.x;\n var y = point.y;\n\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd =\n function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n\n // Clean-up references to points and coefficients\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n };\n\nfunction Point(curve, x, y, isRed) {\n Base.BasePoint.call(this, curve, 'affine');\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n // Force redgomery representation when loading from JSON\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits(Point, Base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo)\n return;\n\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul),\n },\n };\n }\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [ this.x, this.y ];\n\n return [ this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1),\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1),\n },\n } ];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string')\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [ res ].concat(pre.doubles.points.map(obj2point)),\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [ res ].concat(pre.naf.points.map(obj2point)),\n },\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf)\n return p;\n\n // P + O = P\n if (p.inf)\n return this;\n\n // P + P = 2P\n if (this.eq(p))\n return this.dbl();\n\n // P + (-P) = O\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n\n // P + Q = O\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n\n // 2P = O\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n\n var a = this.curve.a;\n\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([ this ], [ k ]);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p ||\n this.inf === p.inf &&\n (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate),\n },\n };\n }\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n Base.BasePoint.call(this, curve, 'jacobian');\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n\n this.zOne = this.z === this.curve.one;\n}\ninherits(JPoint, Base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity())\n return p;\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 12M + 4S + 7A\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity())\n return p.toJ();\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 8M + 3S + 7A\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n\n var i;\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n for (i = 0; i < pow; i++)\n r = r.dbl();\n return r;\n }\n\n // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n // Reuse results\n var jyd = jy.redAdd(jy);\n for (i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // T = M ^ 2 - 2*S\n var t = m.redSqr().redISub(s).redISub(s);\n\n // 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2*Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = B^2\n var c = b.redSqr();\n // D = 2 * ((X1 + B)^2 - A - C)\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n // E = 3 * A\n var e = a.redAdd(a).redIAdd(a);\n // F = E^2\n var f = e.redSqr();\n\n // 8 * C\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n\n // X3 = F - 2 * D\n nx = f.redISub(d).redISub(d);\n // Y3 = E * (D - X3) - 8 * C\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n // Z3 = 2 * Y1 * Z1\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n // T = M^2 - 2 * S\n var t = m.redSqr().redISub(s).redISub(s);\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2 * Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n\n // delta = Z1^2\n var delta = this.z.redSqr();\n // gamma = Y1^2\n var gamma = this.y.redSqr();\n // beta = X1 * gamma\n var beta = this.x.redMul(gamma);\n // alpha = 3 * (X1 - delta) * (X1 + delta)\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n // X3 = alpha^2 - 8 * beta\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n // Z3 = (Y1 + Z1)^2 - gamma - delta\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n\n // 4M + 6S + 10A\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // ZZ = Z1^2\n var zz = this.z.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // M = 3 * XX + a * ZZ2; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // MM = M^2\n var mm = m.redSqr();\n // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n // EE = E^2\n var ee = e.redSqr();\n // T = 16*YYYY\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n // U = (M + E)^2 - MM - EE - T\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n // X3 = 4 * (X1 * EE - 4 * YY * U)\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n // Z3 = (Z1 + E)^2 - ZZ - EE\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine')\n return this.eq(p.toJ());\n\n if (this === p)\n return true;\n\n // x1 * z2^2 == x2 * z1^2\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n\n // y1 * z2^3 == y2 * z1^3\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar utils = require('../utils');\n\nfunction MontCurve(conf) {\n Base.call(this, 'mont', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.i4 = new BN(4).toRed(this.red).redInvm();\n this.two = new BN(2).toRed(this.red);\n this.a24 = this.i4.redMul(this.a.redAdd(this.two));\n}\ninherits(MontCurve, Base);\nmodule.exports = MontCurve;\n\nMontCurve.prototype.validate = function validate(point) {\n var x = point.normalize().x;\n var x2 = x.redSqr();\n var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);\n var y = rhs.redSqrt();\n\n return y.redSqr().cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, z) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && z === null) {\n this.x = this.curve.one;\n this.z = this.curve.zero;\n } else {\n this.x = new BN(x, 16);\n this.z = new BN(z, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n }\n}\ninherits(Point, Base.BasePoint);\n\nMontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n return this.point(utils.toArray(bytes, enc), 1);\n};\n\nMontCurve.prototype.point = function point(x, z) {\n return new Point(this, x, z);\n};\n\nMontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nPoint.prototype.precompute = function precompute() {\n // No-op\n};\n\nPoint.prototype._encode = function _encode() {\n return this.getX().toArray('be', this.curve.p.byteLength());\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1] || curve.one);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n\nPoint.prototype.dbl = function dbl() {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-1987-m-3\n // 2M + 2S + 4A\n\n // A = X1 + Z1\n var a = this.x.redAdd(this.z);\n // AA = A^2\n var aa = a.redSqr();\n // B = X1 - Z1\n var b = this.x.redSub(this.z);\n // BB = B^2\n var bb = b.redSqr();\n // C = AA - BB\n var c = aa.redSub(bb);\n // X3 = AA * BB\n var nx = aa.redMul(bb);\n // Z3 = C * (BB + A24 * C)\n var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.add = function add() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.diffAdd = function diffAdd(p, diff) {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-1987-m-3\n // 4M + 2S + 6A\n\n // A = X2 + Z2\n var a = this.x.redAdd(this.z);\n // B = X2 - Z2\n var b = this.x.redSub(this.z);\n // C = X3 + Z3\n var c = p.x.redAdd(p.z);\n // D = X3 - Z3\n var d = p.x.redSub(p.z);\n // DA = D * A\n var da = d.redMul(a);\n // CB = C * B\n var cb = c.redMul(b);\n // X5 = Z1 * (DA + CB)^2\n var nx = diff.z.redMul(da.redAdd(cb).redSqr());\n // Z5 = X1 * (DA - CB)^2\n var nz = diff.x.redMul(da.redISub(cb).redSqr());\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.mul = function mul(k) {\n var t = k.clone();\n var a = this; // (N / 2) * Q + Q\n var b = this.curve.point(null, null); // (N / 2) * Q\n var c = this; // Q\n\n for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1))\n bits.push(t.andln(1));\n\n for (var i = bits.length - 1; i >= 0; i--) {\n if (bits[i] === 0) {\n // N * Q + Q = ((N / 2) * Q + Q)) + (N / 2) * Q\n a = a.diffAdd(b, c);\n // N * Q = 2 * ((N / 2) * Q + Q))\n b = b.dbl();\n } else {\n // N * Q = ((N / 2) * Q + Q) + ((N / 2) * Q)\n b = a.diffAdd(b, c);\n // N * Q + Q = 2 * ((N / 2) * Q + Q)\n a = a.dbl();\n }\n }\n return b;\n};\n\nPoint.prototype.mulAdd = function mulAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.jumlAdd = function jumlAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.eq = function eq(other) {\n return this.getX().cmp(other.getX()) === 0;\n};\n\nPoint.prototype.normalize = function normalize() {\n this.x = this.x.redMul(this.z.redInvm());\n this.z = this.curve.one;\n return this;\n};\n\nPoint.prototype.getX = function getX() {\n // Normalize coordinates\n this.normalize();\n\n return this.x.fromRed();\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction EdwardsCurve(conf) {\n // NOTE: Important as we are creating point in Base.call()\n this.twisted = (conf.a | 0) !== 1;\n this.mOneA = this.twisted && (conf.a | 0) === -1;\n this.extended = this.mOneA;\n\n Base.call(this, 'edwards', conf);\n\n this.a = new BN(conf.a, 16).umod(this.red.m);\n this.a = this.a.toRed(this.red);\n this.c = new BN(conf.c, 16).toRed(this.red);\n this.c2 = this.c.redSqr();\n this.d = new BN(conf.d, 16).toRed(this.red);\n this.dd = this.d.redAdd(this.d);\n\n assert(!this.twisted || this.c.fromRed().cmpn(1) === 0);\n this.oneC = (conf.c | 0) === 1;\n}\ninherits(EdwardsCurve, Base);\nmodule.exports = EdwardsCurve;\n\nEdwardsCurve.prototype._mulA = function _mulA(num) {\n if (this.mOneA)\n return num.redNeg();\n else\n return this.a.redMul(num);\n};\n\nEdwardsCurve.prototype._mulC = function _mulC(num) {\n if (this.oneC)\n return num;\n else\n return this.c.redMul(num);\n};\n\n// Just for compatibility with Short curve\nEdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {\n return this.point(x, y, z, t);\n};\n\nEdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var x2 = x.redSqr();\n var rhs = this.c2.redSub(this.a.redMul(x2));\n var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));\n\n var y2 = rhs.redMul(lhs.redInvm());\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {\n y = new BN(y, 16);\n if (!y.red)\n y = y.toRed(this.red);\n\n // x^2 = (y^2 - c^2) / (c^2 d y^2 - a)\n var y2 = y.redSqr();\n var lhs = y2.redSub(this.c2);\n var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a);\n var x2 = lhs.redMul(rhs.redInvm());\n\n if (x2.cmp(this.zero) === 0) {\n if (odd)\n throw new Error('invalid point');\n else\n return this.point(this.zero, y);\n }\n\n var x = x2.redSqrt();\n if (x.redSqr().redSub(x2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n if (x.fromRed().isOdd() !== odd)\n x = x.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.validate = function validate(point) {\n if (point.isInfinity())\n return true;\n\n // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2)\n point.normalize();\n\n var x2 = point.x.redSqr();\n var y2 = point.y.redSqr();\n var lhs = x2.redMul(this.a).redAdd(y2);\n var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));\n\n return lhs.cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, y, z, t) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && y === null && z === null) {\n this.x = this.curve.zero;\n this.y = this.curve.one;\n this.z = this.curve.one;\n this.t = this.curve.zero;\n this.zOne = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = z ? new BN(z, 16) : this.curve.one;\n this.t = t && new BN(t, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n if (this.t && !this.t.red)\n this.t = this.t.toRed(this.curve.red);\n this.zOne = this.z === this.curve.one;\n\n // Use extended coordinates\n if (this.curve.extended && !this.t) {\n this.t = this.x.redMul(this.y);\n if (!this.zOne)\n this.t = this.t.redMul(this.z.redInvm());\n }\n }\n}\ninherits(Point, Base.BasePoint);\n\nEdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nEdwardsCurve.prototype.point = function point(x, y, z, t) {\n return new Point(this, x, y, z, t);\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1], obj[2]);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.x.cmpn(0) === 0 &&\n (this.y.cmp(this.z) === 0 ||\n (this.zOne && this.y.cmp(this.curve.c) === 0));\n};\n\nPoint.prototype._extDbl = function _extDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #doubling-dbl-2008-hwcd\n // 4M + 4S\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = 2 * Z1^2\n var c = this.z.redSqr();\n c = c.redIAdd(c);\n // D = a * A\n var d = this.curve._mulA(a);\n // E = (X1 + Y1)^2 - A - B\n var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);\n // G = D + B\n var g = d.redAdd(b);\n // F = G - C\n var f = g.redSub(c);\n // H = D - B\n var h = d.redSub(b);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projDbl = function _projDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #doubling-dbl-2008-bbjlp\n // #doubling-dbl-2007-bl\n // and others\n // Generally 3M + 4S or 2M + 4S\n\n // B = (X1 + Y1)^2\n var b = this.x.redAdd(this.y).redSqr();\n // C = X1^2\n var c = this.x.redSqr();\n // D = Y1^2\n var d = this.y.redSqr();\n\n var nx;\n var ny;\n var nz;\n var e;\n var h;\n var j;\n if (this.curve.twisted) {\n // E = a * C\n e = this.curve._mulA(c);\n // F = E + D\n var f = e.redAdd(d);\n if (this.zOne) {\n // X3 = (B - C - D) * (F - 2)\n nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F^2 - 2 * F\n nz = f.redSqr().redSub(f).redSub(f);\n } else {\n // H = Z1^2\n h = this.z.redSqr();\n // J = F - 2 * H\n j = f.redSub(h).redISub(h);\n // X3 = (B-C-D)*J\n nx = b.redSub(c).redISub(d).redMul(j);\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F * J\n nz = f.redMul(j);\n }\n } else {\n // E = C + D\n e = c.redAdd(d);\n // H = (c * Z1)^2\n h = this.curve._mulC(this.z).redSqr();\n // J = E - 2 * H\n j = e.redSub(h).redSub(h);\n // X3 = c * (B - E) * J\n nx = this.curve._mulC(b.redISub(e)).redMul(j);\n // Y3 = c * E * (C - D)\n ny = this.curve._mulC(e).redMul(c.redISub(d));\n // Z3 = E * J\n nz = e.redMul(j);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n // Double in extended coordinates\n if (this.curve.extended)\n return this._extDbl();\n else\n return this._projDbl();\n};\n\nPoint.prototype._extAdd = function _extAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #addition-add-2008-hwcd-3\n // 8M\n\n // A = (Y1 - X1) * (Y2 - X2)\n var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));\n // B = (Y1 + X1) * (Y2 + X2)\n var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));\n // C = T1 * k * T2\n var c = this.t.redMul(this.curve.dd).redMul(p.t);\n // D = Z1 * 2 * Z2\n var d = this.z.redMul(p.z.redAdd(p.z));\n // E = B - A\n var e = b.redSub(a);\n // F = D - C\n var f = d.redSub(c);\n // G = D + C\n var g = d.redAdd(c);\n // H = B + A\n var h = b.redAdd(a);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projAdd = function _projAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #addition-add-2008-bbjlp\n // #addition-add-2007-bl\n // 10M + 1S\n\n // A = Z1 * Z2\n var a = this.z.redMul(p.z);\n // B = A^2\n var b = a.redSqr();\n // C = X1 * X2\n var c = this.x.redMul(p.x);\n // D = Y1 * Y2\n var d = this.y.redMul(p.y);\n // E = d * C * D\n var e = this.curve.d.redMul(c).redMul(d);\n // F = B - E\n var f = b.redSub(e);\n // G = B + E\n var g = b.redAdd(e);\n // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)\n var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);\n var nx = a.redMul(f).redMul(tmp);\n var ny;\n var nz;\n if (this.curve.twisted) {\n // Y3 = A * G * (D - a * C)\n ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));\n // Z3 = F * G\n nz = f.redMul(g);\n } else {\n // Y3 = A * G * (D - C)\n ny = a.redMul(g).redMul(d.redSub(c));\n // Z3 = c * F * G\n nz = this.curve._mulC(f).redMul(g);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.add = function add(p) {\n if (this.isInfinity())\n return p;\n if (p.isInfinity())\n return this;\n\n if (this.curve.extended)\n return this._extAdd(p);\n else\n return this._projAdd(p);\n};\n\nPoint.prototype.mul = function mul(k) {\n if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, false);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, true);\n};\n\nPoint.prototype.normalize = function normalize() {\n if (this.zOne)\n return this;\n\n // Normalize coordinates\n var zi = this.z.redInvm();\n this.x = this.x.redMul(zi);\n this.y = this.y.redMul(zi);\n if (this.t)\n this.t = this.t.redMul(zi);\n this.z = this.curve.one;\n this.zOne = true;\n return this;\n};\n\nPoint.prototype.neg = function neg() {\n return this.curve.point(this.x.redNeg(),\n this.y,\n this.z,\n this.t && this.t.redNeg());\n};\n\nPoint.prototype.getX = function getX() {\n this.normalize();\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n this.normalize();\n return this.y.fromRed();\n};\n\nPoint.prototype.eq = function eq(other) {\n return this === other ||\n this.getX().cmp(other.getX()) === 0 &&\n this.getY().cmp(other.getY()) === 0;\n};\n\nPoint.prototype.eqXToP = function eqXToP(x) {\n var rx = x.toRed(this.curve.red).redMul(this.z);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(this.z);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\n// Compatibility with BaseCurve\nPoint.prototype.toP = Point.prototype.normalize;\nPoint.prototype.mixedAdd = Point.prototype.add;\n","'use strict';\n\nvar curve = exports;\n\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nexports.inherits = inherits;\n\nfunction isSurrogatePair(msg, i) {\n if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) {\n return false;\n }\n if (i < 0 || i + 1 >= msg.length) {\n return false;\n }\n return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;\n}\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg === 'string') {\n if (!enc) {\n // Inspired by stringToUtf8ByteArray() in closure-library by Google\n // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143\n // Apache License 2.0\n // https://github.com/google/closure-library/blob/master/LICENSE\n var p = 0;\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n if (c < 128) {\n res[p++] = c;\n } else if (c < 2048) {\n res[p++] = (c >> 6) | 192;\n res[p++] = (c & 63) | 128;\n } else if (isSurrogatePair(msg, i)) {\n c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF);\n res[p++] = (c >> 18) | 240;\n res[p++] = ((c >> 12) & 63) | 128;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n } else {\n res[p++] = (c >> 12) | 224;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n }\n }\n } else if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n }\n } else {\n for (i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n }\n return res;\n}\nexports.toArray = toArray;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nexports.toHex = toHex;\n\nfunction htonl(w) {\n var res = (w >>> 24) |\n ((w >>> 8) & 0xff00) |\n ((w << 8) & 0xff0000) |\n ((w & 0xff) << 24);\n return res >>> 0;\n}\nexports.htonl = htonl;\n\nfunction toHex32(msg, endian) {\n var res = '';\n for (var i = 0; i < msg.length; i++) {\n var w = msg[i];\n if (endian === 'little')\n w = htonl(w);\n res += zero8(w.toString(16));\n }\n return res;\n}\nexports.toHex32 = toHex32;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nexports.zero2 = zero2;\n\nfunction zero8(word) {\n if (word.length === 7)\n return '0' + word;\n else if (word.length === 6)\n return '00' + word;\n else if (word.length === 5)\n return '000' + word;\n else if (word.length === 4)\n return '0000' + word;\n else if (word.length === 3)\n return '00000' + word;\n else if (word.length === 2)\n return '000000' + word;\n else if (word.length === 1)\n return '0000000' + word;\n else\n return word;\n}\nexports.zero8 = zero8;\n\nfunction join32(msg, start, end, endian) {\n var len = end - start;\n assert(len % 4 === 0);\n var res = new Array(len / 4);\n for (var i = 0, k = start; i < res.length; i++, k += 4) {\n var w;\n if (endian === 'big')\n w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3];\n else\n w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k];\n res[i] = w >>> 0;\n }\n return res;\n}\nexports.join32 = join32;\n\nfunction split32(msg, endian) {\n var res = new Array(msg.length * 4);\n for (var i = 0, k = 0; i < msg.length; i++, k += 4) {\n var m = msg[i];\n if (endian === 'big') {\n res[k] = m >>> 24;\n res[k + 1] = (m >>> 16) & 0xff;\n res[k + 2] = (m >>> 8) & 0xff;\n res[k + 3] = m & 0xff;\n } else {\n res[k + 3] = m >>> 24;\n res[k + 2] = (m >>> 16) & 0xff;\n res[k + 1] = (m >>> 8) & 0xff;\n res[k] = m & 0xff;\n }\n }\n return res;\n}\nexports.split32 = split32;\n\nfunction rotr32(w, b) {\n return (w >>> b) | (w << (32 - b));\n}\nexports.rotr32 = rotr32;\n\nfunction rotl32(w, b) {\n return (w << b) | (w >>> (32 - b));\n}\nexports.rotl32 = rotl32;\n\nfunction sum32(a, b) {\n return (a + b) >>> 0;\n}\nexports.sum32 = sum32;\n\nfunction sum32_3(a, b, c) {\n return (a + b + c) >>> 0;\n}\nexports.sum32_3 = sum32_3;\n\nfunction sum32_4(a, b, c, d) {\n return (a + b + c + d) >>> 0;\n}\nexports.sum32_4 = sum32_4;\n\nfunction sum32_5(a, b, c, d, e) {\n return (a + b + c + d + e) >>> 0;\n}\nexports.sum32_5 = sum32_5;\n\nfunction sum64(buf, pos, ah, al) {\n var bh = buf[pos];\n var bl = buf[pos + 1];\n\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n buf[pos] = hi >>> 0;\n buf[pos + 1] = lo;\n}\nexports.sum64 = sum64;\n\nfunction sum64_hi(ah, al, bh, bl) {\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n return hi >>> 0;\n}\nexports.sum64_hi = sum64_hi;\n\nfunction sum64_lo(ah, al, bh, bl) {\n var lo = al + bl;\n return lo >>> 0;\n}\nexports.sum64_lo = sum64_lo;\n\nfunction sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n\n var hi = ah + bh + ch + dh + carry;\n return hi >>> 0;\n}\nexports.sum64_4_hi = sum64_4_hi;\n\nfunction sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {\n var lo = al + bl + cl + dl;\n return lo >>> 0;\n}\nexports.sum64_4_lo = sum64_4_lo;\n\nfunction sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n lo = (lo + el) >>> 0;\n carry += lo < el ? 1 : 0;\n\n var hi = ah + bh + ch + dh + eh + carry;\n return hi >>> 0;\n}\nexports.sum64_5_hi = sum64_5_hi;\n\nfunction sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var lo = al + bl + cl + dl + el;\n\n return lo >>> 0;\n}\nexports.sum64_5_lo = sum64_5_lo;\n\nfunction rotr64_hi(ah, al, num) {\n var r = (al << (32 - num)) | (ah >>> num);\n return r >>> 0;\n}\nexports.rotr64_hi = rotr64_hi;\n\nfunction rotr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.rotr64_lo = rotr64_lo;\n\nfunction shr64_hi(ah, al, num) {\n return ah >>> num;\n}\nexports.shr64_hi = shr64_hi;\n\nfunction shr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.shr64_lo = shr64_lo;\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction BlockHash() {\n this.pending = null;\n this.pendingTotal = 0;\n this.blockSize = this.constructor.blockSize;\n this.outSize = this.constructor.outSize;\n this.hmacStrength = this.constructor.hmacStrength;\n this.padLength = this.constructor.padLength / 8;\n this.endian = 'big';\n\n this._delta8 = this.blockSize / 8;\n this._delta32 = this.blockSize / 32;\n}\nexports.BlockHash = BlockHash;\n\nBlockHash.prototype.update = function update(msg, enc) {\n // Convert message to array, pad it, and join into 32bit blocks\n msg = utils.toArray(msg, enc);\n if (!this.pending)\n this.pending = msg;\n else\n this.pending = this.pending.concat(msg);\n this.pendingTotal += msg.length;\n\n // Enough data, try updating\n if (this.pending.length >= this._delta8) {\n msg = this.pending;\n\n // Process pending data in blocks\n var r = msg.length % this._delta8;\n this.pending = msg.slice(msg.length - r, msg.length);\n if (this.pending.length === 0)\n this.pending = null;\n\n msg = utils.join32(msg, 0, msg.length - r, this.endian);\n for (var i = 0; i < msg.length; i += this._delta32)\n this._update(msg, i, i + this._delta32);\n }\n\n return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n this.update(this._pad());\n assert(this.pending === null);\n\n return this._digest(enc);\n};\n\nBlockHash.prototype._pad = function pad() {\n var len = this.pendingTotal;\n var bytes = this._delta8;\n var k = bytes - ((len + this.padLength) % bytes);\n var res = new Array(k + this.padLength);\n res[0] = 0x80;\n for (var i = 1; i < k; i++)\n res[i] = 0;\n\n // Append length\n len <<= 3;\n if (this.endian === 'big') {\n for (var t = 8; t < this.padLength; t++)\n res[i++] = 0;\n\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = len & 0xff;\n } else {\n res[i++] = len & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n\n for (t = 8; t < this.padLength; t++)\n res[i++] = 0;\n }\n\n return res;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar rotr32 = utils.rotr32;\n\nfunction ft_1(s, x, y, z) {\n if (s === 0)\n return ch32(x, y, z);\n if (s === 1 || s === 3)\n return p32(x, y, z);\n if (s === 2)\n return maj32(x, y, z);\n}\nexports.ft_1 = ft_1;\n\nfunction ch32(x, y, z) {\n return (x & y) ^ ((~x) & z);\n}\nexports.ch32 = ch32;\n\nfunction maj32(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n}\nexports.maj32 = maj32;\n\nfunction p32(x, y, z) {\n return x ^ y ^ z;\n}\nexports.p32 = p32;\n\nfunction s0_256(x) {\n return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n}\nexports.s0_256 = s0_256;\n\nfunction s1_256(x) {\n return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n}\nexports.s1_256 = s1_256;\n\nfunction g0_256(x) {\n return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);\n}\nexports.g0_256 = g0_256;\n\nfunction g1_256(x) {\n return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);\n}\nexports.g1_256 = g1_256;\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_5 = utils.sum32_5;\nvar ft_1 = shaCommon.ft_1;\nvar BlockHash = common.BlockHash;\n\nvar sha1_K = [\n 0x5A827999, 0x6ED9EBA1,\n 0x8F1BBCDC, 0xCA62C1D6\n];\n\nfunction SHA1() {\n if (!(this instanceof SHA1))\n return new SHA1();\n\n BlockHash.call(this);\n this.h = [\n 0x67452301, 0xefcdab89, 0x98badcfe,\n 0x10325476, 0xc3d2e1f0 ];\n this.W = new Array(80);\n}\n\nutils.inherits(SHA1, BlockHash);\nmodule.exports = SHA1;\n\nSHA1.blockSize = 512;\nSHA1.outSize = 160;\nSHA1.hmacStrength = 80;\nSHA1.padLength = 64;\n\nSHA1.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n\n for(; i < W.length; i++)\n W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n\n for (i = 0; i < W.length; i++) {\n var s = ~~(i / 20);\n var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);\n e = d;\n d = c;\n c = rotl32(b, 30);\n b = a;\n a = t;\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n};\n\nSHA1.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\nvar assert = require('minimalistic-assert');\n\nvar sum32 = utils.sum32;\nvar sum32_4 = utils.sum32_4;\nvar sum32_5 = utils.sum32_5;\nvar ch32 = shaCommon.ch32;\nvar maj32 = shaCommon.maj32;\nvar s0_256 = shaCommon.s0_256;\nvar s1_256 = shaCommon.s1_256;\nvar g0_256 = shaCommon.g0_256;\nvar g1_256 = shaCommon.g1_256;\n\nvar BlockHash = common.BlockHash;\n\nvar sha256_K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n];\n\nfunction SHA256() {\n if (!(this instanceof SHA256))\n return new SHA256();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n ];\n this.k = sha256_K;\n this.W = new Array(64);\n}\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\n\nSHA256.blockSize = 512;\nSHA256.outSize = 256;\nSHA256.hmacStrength = 192;\nSHA256.padLength = 64;\n\nSHA256.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i++)\n W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n var f = this.h[5];\n var g = this.h[6];\n var h = this.h[7];\n\n assert(this.k.length === W.length);\n for (i = 0; i < W.length; i++) {\n var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n var T2 = sum32(s0_256(a), maj32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = sum32(d, T1);\n d = c;\n c = b;\n b = a;\n a = sum32(T1, T2);\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n this.h[5] = sum32(this.h[5], f);\n this.h[6] = sum32(this.h[6], g);\n this.h[7] = sum32(this.h[7], h);\n};\n\nSHA256.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar SHA256 = require('./256');\n\nfunction SHA224() {\n if (!(this instanceof SHA224))\n return new SHA224();\n\n SHA256.call(this);\n this.h = [\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ];\n}\nutils.inherits(SHA224, SHA256);\nmodule.exports = SHA224;\n\nSHA224.blockSize = 512;\nSHA224.outSize = 224;\nSHA224.hmacStrength = 192;\nSHA224.padLength = 64;\n\nSHA224.prototype._digest = function digest(enc) {\n // Just truncate output\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 7), 'big');\n else\n return utils.split32(this.h.slice(0, 7), 'big');\n};\n\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar assert = require('minimalistic-assert');\n\nvar rotr64_hi = utils.rotr64_hi;\nvar rotr64_lo = utils.rotr64_lo;\nvar shr64_hi = utils.shr64_hi;\nvar shr64_lo = utils.shr64_lo;\nvar sum64 = utils.sum64;\nvar sum64_hi = utils.sum64_hi;\nvar sum64_lo = utils.sum64_lo;\nvar sum64_4_hi = utils.sum64_4_hi;\nvar sum64_4_lo = utils.sum64_4_lo;\nvar sum64_5_hi = utils.sum64_5_hi;\nvar sum64_5_lo = utils.sum64_5_lo;\n\nvar BlockHash = common.BlockHash;\n\nvar sha512_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\nfunction SHA512() {\n if (!(this instanceof SHA512))\n return new SHA512();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xf3bcc908,\n 0xbb67ae85, 0x84caa73b,\n 0x3c6ef372, 0xfe94f82b,\n 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1,\n 0x9b05688c, 0x2b3e6c1f,\n 0x1f83d9ab, 0xfb41bd6b,\n 0x5be0cd19, 0x137e2179 ];\n this.k = sha512_K;\n this.W = new Array(160);\n}\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\n\nSHA512.blockSize = 1024;\nSHA512.outSize = 512;\nSHA512.hmacStrength = 192;\nSHA512.padLength = 128;\n\nSHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n var W = this.W;\n\n // 32 x 32bit words\n for (var i = 0; i < 32; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i += 2) {\n var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2\n var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n var c1_hi = W[i - 14]; // i - 7\n var c1_lo = W[i - 13];\n var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15\n var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n var c3_hi = W[i - 32]; // i - 16\n var c3_lo = W[i - 31];\n\n W[i] = sum64_4_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n W[i + 1] = sum64_4_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n }\n};\n\nSHA512.prototype._update = function _update(msg, start) {\n this._prepareBlock(msg, start);\n\n var W = this.W;\n\n var ah = this.h[0];\n var al = this.h[1];\n var bh = this.h[2];\n var bl = this.h[3];\n var ch = this.h[4];\n var cl = this.h[5];\n var dh = this.h[6];\n var dl = this.h[7];\n var eh = this.h[8];\n var el = this.h[9];\n var fh = this.h[10];\n var fl = this.h[11];\n var gh = this.h[12];\n var gl = this.h[13];\n var hh = this.h[14];\n var hl = this.h[15];\n\n assert(this.k.length === W.length);\n for (var i = 0; i < W.length; i += 2) {\n var c0_hi = hh;\n var c0_lo = hl;\n var c1_hi = s1_512_hi(eh, el);\n var c1_lo = s1_512_lo(eh, el);\n var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n var c3_hi = this.k[i];\n var c3_lo = this.k[i + 1];\n var c4_hi = W[i];\n var c4_lo = W[i + 1];\n\n var T1_hi = sum64_5_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n var T1_lo = sum64_5_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n\n c0_hi = s0_512_hi(ah, al);\n c0_lo = s0_512_lo(ah, al);\n c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n\n var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n\n hh = gh;\n hl = gl;\n\n gh = fh;\n gl = fl;\n\n fh = eh;\n fl = el;\n\n eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n el = sum64_lo(dl, dl, T1_hi, T1_lo);\n\n dh = ch;\n dl = cl;\n\n ch = bh;\n cl = bl;\n\n bh = ah;\n bl = al;\n\n ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n }\n\n sum64(this.h, 0, ah, al);\n sum64(this.h, 2, bh, bl);\n sum64(this.h, 4, ch, cl);\n sum64(this.h, 6, dh, dl);\n sum64(this.h, 8, eh, el);\n sum64(this.h, 10, fh, fl);\n sum64(this.h, 12, gh, gl);\n sum64(this.h, 14, hh, hl);\n};\n\nSHA512.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n\nfunction ch64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ ((~xh) & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction ch64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ ((~xl) & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 28);\n var c1_hi = rotr64_hi(xl, xh, 2); // 34\n var c2_hi = rotr64_hi(xl, xh, 7); // 39\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 28);\n var c1_lo = rotr64_lo(xl, xh, 2); // 34\n var c2_lo = rotr64_lo(xl, xh, 7); // 39\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 14);\n var c1_hi = rotr64_hi(xh, xl, 18);\n var c2_hi = rotr64_hi(xl, xh, 9); // 41\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 14);\n var c1_lo = rotr64_lo(xh, xl, 18);\n var c2_lo = rotr64_lo(xl, xh, 9); // 41\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 1);\n var c1_hi = rotr64_hi(xh, xl, 8);\n var c2_hi = shr64_hi(xh, xl, 7);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 1);\n var c1_lo = rotr64_lo(xh, xl, 8);\n var c2_lo = shr64_lo(xh, xl, 7);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 19);\n var c1_hi = rotr64_hi(xl, xh, 29); // 61\n var c2_hi = shr64_hi(xh, xl, 6);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 19);\n var c1_lo = rotr64_lo(xl, xh, 29); // 61\n var c2_lo = shr64_lo(xh, xl, 6);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n","'use strict';\n\nvar utils = require('../utils');\n\nvar SHA512 = require('./512');\n\nfunction SHA384() {\n if (!(this instanceof SHA384))\n return new SHA384();\n\n SHA512.call(this);\n this.h = [\n 0xcbbb9d5d, 0xc1059ed8,\n 0x629a292a, 0x367cd507,\n 0x9159015a, 0x3070dd17,\n 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31,\n 0x8eb44a87, 0x68581511,\n 0xdb0c2e0d, 0x64f98fa7,\n 0x47b5481d, 0xbefa4fa4 ];\n}\nutils.inherits(SHA384, SHA512);\nmodule.exports = SHA384;\n\nSHA384.blockSize = 1024;\nSHA384.outSize = 384;\nSHA384.hmacStrength = 192;\nSHA384.padLength = 128;\n\nSHA384.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 12), 'big');\n else\n return utils.split32(this.h.slice(0, 12), 'big');\n};\n","'use strict';\n\nexports.sha1 = require('./sha/1');\nexports.sha224 = require('./sha/224');\nexports.sha256 = require('./sha/256');\nexports.sha384 = require('./sha/384');\nexports.sha512 = require('./sha/512');\n","'use strict';\n\nvar utils = require('./utils');\nvar common = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_3 = utils.sum32_3;\nvar sum32_4 = utils.sum32_4;\nvar BlockHash = common.BlockHash;\n\nfunction RIPEMD160() {\n if (!(this instanceof RIPEMD160))\n return new RIPEMD160();\n\n BlockHash.call(this);\n\n this.h = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 ];\n this.endian = 'little';\n}\nutils.inherits(RIPEMD160, BlockHash);\nexports.ripemd160 = RIPEMD160;\n\nRIPEMD160.blockSize = 512;\nRIPEMD160.outSize = 160;\nRIPEMD160.hmacStrength = 192;\nRIPEMD160.padLength = 64;\n\nRIPEMD160.prototype._update = function update(msg, start) {\n var A = this.h[0];\n var B = this.h[1];\n var C = this.h[2];\n var D = this.h[3];\n var E = this.h[4];\n var Ah = A;\n var Bh = B;\n var Ch = C;\n var Dh = D;\n var Eh = E;\n for (var j = 0; j < 80; j++) {\n var T = sum32(\n rotl32(\n sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),\n s[j]),\n E);\n A = E;\n E = D;\n D = rotl32(C, 10);\n C = B;\n B = T;\n T = sum32(\n rotl32(\n sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),\n sh[j]),\n Eh);\n Ah = Eh;\n Eh = Dh;\n Dh = rotl32(Ch, 10);\n Ch = Bh;\n Bh = T;\n }\n T = sum32_3(this.h[1], C, Dh);\n this.h[1] = sum32_3(this.h[2], D, Eh);\n this.h[2] = sum32_3(this.h[3], E, Ah);\n this.h[3] = sum32_3(this.h[4], A, Bh);\n this.h[4] = sum32_3(this.h[0], B, Ch);\n this.h[0] = T;\n};\n\nRIPEMD160.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'little');\n else\n return utils.split32(this.h, 'little');\n};\n\nfunction f(j, x, y, z) {\n if (j <= 15)\n return x ^ y ^ z;\n else if (j <= 31)\n return (x & y) | ((~x) & z);\n else if (j <= 47)\n return (x | (~y)) ^ z;\n else if (j <= 63)\n return (x & z) | (y & (~z));\n else\n return x ^ (y | (~z));\n}\n\nfunction K(j) {\n if (j <= 15)\n return 0x00000000;\n else if (j <= 31)\n return 0x5a827999;\n else if (j <= 47)\n return 0x6ed9eba1;\n else if (j <= 63)\n return 0x8f1bbcdc;\n else\n return 0xa953fd4e;\n}\n\nfunction Kh(j) {\n if (j <= 15)\n return 0x50a28be6;\n else if (j <= 31)\n return 0x5c4dd124;\n else if (j <= 47)\n return 0x6d703ef3;\n else if (j <= 63)\n return 0x7a6d76e9;\n else\n return 0x00000000;\n}\n\nvar r = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n];\n\nvar rh = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n];\n\nvar s = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n];\n\nvar sh = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n];\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction Hmac(hash, key, enc) {\n if (!(this instanceof Hmac))\n return new Hmac(hash, key, enc);\n this.Hash = hash;\n this.blockSize = hash.blockSize / 8;\n this.outSize = hash.outSize / 8;\n this.inner = null;\n this.outer = null;\n\n this._init(utils.toArray(key, enc));\n}\nmodule.exports = Hmac;\n\nHmac.prototype._init = function init(key) {\n // Shorten key, if needed\n if (key.length > this.blockSize)\n key = new this.Hash().update(key).digest();\n assert(key.length <= this.blockSize);\n\n // Add padding to key\n for (var i = key.length; i < this.blockSize; i++)\n key.push(0);\n\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x36;\n this.inner = new this.Hash().update(key);\n\n // 0x36 ^ 0x5c = 0x6a\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x6a;\n this.outer = new this.Hash().update(key);\n};\n\nHmac.prototype.update = function update(msg, enc) {\n this.inner.update(msg, enc);\n return this;\n};\n\nHmac.prototype.digest = function digest(enc) {\n this.outer.update(this.inner.digest());\n return this.outer.digest(enc);\n};\n","var hash = exports;\n\nhash.utils = require('./hash/utils');\nhash.common = require('./hash/common');\nhash.sha = require('./hash/sha');\nhash.ripemd = require('./hash/ripemd');\nhash.hmac = require('./hash/hmac');\n\n// Proxy hash functions to the main object\nhash.sha1 = hash.sha.sha1;\nhash.sha256 = hash.sha.sha256;\nhash.sha224 = hash.sha.sha224;\nhash.sha384 = hash.sha.sha384;\nhash.sha512 = hash.sha.sha512;\nhash.ripemd160 = hash.ripemd.ripemd160;\n","module.exports = {\n doubles: {\n step: 4,\n points: [\n [\n 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',\n 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821',\n ],\n [\n '8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',\n '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf',\n ],\n [\n '175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',\n 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695',\n ],\n [\n '363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',\n '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9',\n ],\n [\n '8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',\n '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36',\n ],\n [\n '723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',\n '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f',\n ],\n [\n 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',\n '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999',\n ],\n [\n '100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',\n 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09',\n ],\n [\n 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',\n '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d',\n ],\n [\n 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',\n 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088',\n ],\n [\n 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',\n '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d',\n ],\n [\n '53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',\n '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8',\n ],\n [\n '8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',\n '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a',\n ],\n [\n '385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',\n '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453',\n ],\n [\n '6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',\n '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160',\n ],\n [\n '3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',\n '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0',\n ],\n [\n '85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',\n '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6',\n ],\n [\n '948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',\n '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589',\n ],\n [\n '6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',\n 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17',\n ],\n [\n 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',\n '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda',\n ],\n [\n 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',\n '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd',\n ],\n [\n '213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',\n '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2',\n ],\n [\n '4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',\n '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6',\n ],\n [\n 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',\n '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f',\n ],\n [\n '76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',\n 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01',\n ],\n [\n 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',\n '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3',\n ],\n [\n 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',\n 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f',\n ],\n [\n 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',\n '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7',\n ],\n [\n 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',\n 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78',\n ],\n [\n 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',\n '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1',\n ],\n [\n '90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',\n 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150',\n ],\n [\n '8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',\n '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82',\n ],\n [\n 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',\n '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc',\n ],\n [\n '8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',\n 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b',\n ],\n [\n 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',\n '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51',\n ],\n [\n 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',\n '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45',\n ],\n [\n 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',\n 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120',\n ],\n [\n '324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',\n '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84',\n ],\n [\n '4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',\n '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d',\n ],\n [\n '9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',\n 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d',\n ],\n [\n '6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',\n '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8',\n ],\n [\n 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',\n '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8',\n ],\n [\n '7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',\n '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac',\n ],\n [\n '928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',\n 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f',\n ],\n [\n '85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',\n '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962',\n ],\n [\n 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',\n '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907',\n ],\n [\n '827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',\n 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec',\n ],\n [\n 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',\n 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d',\n ],\n [\n 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',\n '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414',\n ],\n [\n '1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',\n 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd',\n ],\n [\n '146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',\n 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0',\n ],\n [\n 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',\n '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811',\n ],\n [\n 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',\n '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1',\n ],\n [\n 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',\n '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c',\n ],\n [\n '174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',\n 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73',\n ],\n [\n '959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',\n '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd',\n ],\n [\n 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',\n 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405',\n ],\n [\n '64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',\n 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589',\n ],\n [\n '8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',\n '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e',\n ],\n [\n '13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',\n '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27',\n ],\n [\n 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',\n 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1',\n ],\n [\n '8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',\n '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482',\n ],\n [\n '8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',\n '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945',\n ],\n [\n 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',\n '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573',\n ],\n [\n 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',\n 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82',\n ],\n ],\n },\n naf: {\n wnd: 7,\n points: [\n [\n 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',\n '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672',\n ],\n [\n '2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',\n 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6',\n ],\n [\n '5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',\n '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da',\n ],\n [\n 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',\n 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37',\n ],\n [\n '774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',\n 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b',\n ],\n [\n 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',\n 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81',\n ],\n [\n 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',\n '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58',\n ],\n [\n 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',\n '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77',\n ],\n [\n '2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',\n '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a',\n ],\n [\n '352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',\n '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c',\n ],\n [\n '2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',\n '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67',\n ],\n [\n '9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',\n '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402',\n ],\n [\n 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',\n 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55',\n ],\n [\n 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',\n '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482',\n ],\n [\n '6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',\n 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82',\n ],\n [\n '1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',\n 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396',\n ],\n [\n '605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',\n '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49',\n ],\n [\n '62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',\n '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf',\n ],\n [\n '80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',\n '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a',\n ],\n [\n '7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',\n 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7',\n ],\n [\n 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',\n 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933',\n ],\n [\n '49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',\n '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a',\n ],\n [\n '77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',\n '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6',\n ],\n [\n 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',\n 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37',\n ],\n [\n '463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',\n '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e',\n ],\n [\n 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',\n 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6',\n ],\n [\n 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',\n 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476',\n ],\n [\n '2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',\n '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40',\n ],\n [\n '7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',\n '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61',\n ],\n [\n '754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',\n '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683',\n ],\n [\n 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',\n '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5',\n ],\n [\n '186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',\n '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b',\n ],\n [\n 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',\n '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417',\n ],\n [\n '5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',\n 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868',\n ],\n [\n '290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',\n 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a',\n ],\n [\n 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',\n 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6',\n ],\n [\n '766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',\n '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996',\n ],\n [\n '59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',\n 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e',\n ],\n [\n 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',\n 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d',\n ],\n [\n '7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',\n '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2',\n ],\n [\n '948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',\n 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e',\n ],\n [\n '7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',\n '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437',\n ],\n [\n '3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',\n 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311',\n ],\n [\n 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',\n '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4',\n ],\n [\n '1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',\n '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575',\n ],\n [\n '733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',\n 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d',\n ],\n [\n '15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',\n 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d',\n ],\n [\n 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',\n 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629',\n ],\n [\n 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',\n 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06',\n ],\n [\n '311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',\n '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374',\n ],\n [\n '34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',\n '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee',\n ],\n [\n 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',\n '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1',\n ],\n [\n 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',\n 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b',\n ],\n [\n '32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',\n '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661',\n ],\n [\n '7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',\n '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6',\n ],\n [\n 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',\n '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e',\n ],\n [\n '16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',\n '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d',\n ],\n [\n 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',\n 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc',\n ],\n [\n '78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',\n 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4',\n ],\n [\n '494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',\n '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c',\n ],\n [\n 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',\n '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b',\n ],\n [\n 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',\n '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913',\n ],\n [\n '841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',\n '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154',\n ],\n [\n '5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',\n '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865',\n ],\n [\n '36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',\n 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc',\n ],\n [\n '336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',\n 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224',\n ],\n [\n '8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',\n '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e',\n ],\n [\n '1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',\n '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6',\n ],\n [\n '85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',\n '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511',\n ],\n [\n '29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',\n 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b',\n ],\n [\n 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',\n 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2',\n ],\n [\n '4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',\n 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c',\n ],\n [\n 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',\n '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3',\n ],\n [\n 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',\n '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d',\n ],\n [\n 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',\n '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700',\n ],\n [\n 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',\n '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4',\n ],\n [\n '591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',\n 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196',\n ],\n [\n '11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',\n '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4',\n ],\n [\n '3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',\n 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257',\n ],\n [\n 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',\n 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13',\n ],\n [\n 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',\n '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096',\n ],\n [\n 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',\n 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38',\n ],\n [\n 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',\n '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f',\n ],\n [\n '347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',\n '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448',\n ],\n [\n 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',\n '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a',\n ],\n [\n 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',\n '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4',\n ],\n [\n '4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',\n '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437',\n ],\n [\n '3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',\n 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7',\n ],\n [\n 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',\n '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d',\n ],\n [\n 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',\n '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a',\n ],\n [\n 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',\n '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54',\n ],\n [\n '48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',\n '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77',\n ],\n [\n 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',\n 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517',\n ],\n [\n '6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',\n 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10',\n ],\n [\n 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',\n 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125',\n ],\n [\n 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',\n '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e',\n ],\n [\n '13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',\n 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1',\n ],\n [\n 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',\n '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2',\n ],\n [\n 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',\n '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423',\n ],\n [\n 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',\n '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8',\n ],\n [\n '8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',\n 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758',\n ],\n [\n '52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',\n 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375',\n ],\n [\n 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',\n '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d',\n ],\n [\n '7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',\n 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec',\n ],\n [\n '5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',\n '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0',\n ],\n [\n '32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',\n 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c',\n ],\n [\n 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',\n 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4',\n ],\n [\n '8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',\n 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f',\n ],\n [\n '4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',\n '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649',\n ],\n [\n '3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',\n 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826',\n ],\n [\n '674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',\n '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5',\n ],\n [\n 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',\n 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87',\n ],\n [\n '30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',\n '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b',\n ],\n [\n 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',\n '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc',\n ],\n [\n '93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',\n '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c',\n ],\n [\n 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',\n 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f',\n ],\n [\n 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',\n '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a',\n ],\n [\n 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',\n 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46',\n ],\n [\n '463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',\n 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f',\n ],\n [\n '7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',\n '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03',\n ],\n [\n '74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',\n 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08',\n ],\n [\n '30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',\n '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8',\n ],\n [\n '9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',\n '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373',\n ],\n [\n '176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',\n 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3',\n ],\n [\n '75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',\n '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8',\n ],\n [\n '809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',\n '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1',\n ],\n [\n '1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',\n '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9',\n ],\n ],\n },\n};\n","'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\nvar curve = require('./curve');\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve.edwards(options);\n else\n this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve,\n });\n return curve;\n },\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811',\n ],\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34',\n ],\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5',\n ],\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f',\n ],\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650',\n ],\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9',\n ],\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658',\n ],\n});\n\nvar pre;\ntry {\n pre = require('./precomputed/secp256k1');\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3',\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15',\n },\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre,\n ],\n});\n","'use strict';\n\nvar hash = require('hash.js');\nvar utils = require('minimalistic-crypto-utils');\nvar assert = require('minimalistic-assert');\n\nfunction HmacDRBG(options) {\n if (!(this instanceof HmacDRBG))\n return new HmacDRBG(options);\n this.hash = options.hash;\n this.predResist = !!options.predResist;\n\n this.outLen = this.hash.outSize;\n this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n\n this._reseed = null;\n this.reseedInterval = null;\n this.K = null;\n this.V = null;\n\n var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex');\n var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex');\n var pers = utils.toArray(options.pers, options.persEnc || 'hex');\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n this._init(entropy, nonce, pers);\n}\nmodule.exports = HmacDRBG;\n\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n var seed = entropy.concat(nonce).concat(pers);\n\n this.K = new Array(this.outLen / 8);\n this.V = new Array(this.outLen / 8);\n for (var i = 0; i < this.V.length; i++) {\n this.K[i] = 0x00;\n this.V[i] = 0x01;\n }\n\n this._update(seed);\n this._reseed = 1;\n this.reseedInterval = 0x1000000000000; // 2^48\n};\n\nHmacDRBG.prototype._hmac = function hmac() {\n return new hash.hmac(this.hash, this.K);\n};\n\nHmacDRBG.prototype._update = function update(seed) {\n var kmac = this._hmac()\n .update(this.V)\n .update([ 0x00 ]);\n if (seed)\n kmac = kmac.update(seed);\n this.K = kmac.digest();\n this.V = this._hmac().update(this.V).digest();\n if (!seed)\n return;\n\n this.K = this._hmac()\n .update(this.V)\n .update([ 0x01 ])\n .update(seed)\n .digest();\n this.V = this._hmac().update(this.V).digest();\n};\n\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {\n // Optional entropy enc\n if (typeof entropyEnc !== 'string') {\n addEnc = add;\n add = entropyEnc;\n entropyEnc = null;\n }\n\n entropy = utils.toArray(entropy, entropyEnc);\n add = utils.toArray(add, addEnc);\n\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n this._update(entropy.concat(add || []));\n this._reseed = 1;\n};\n\nHmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {\n if (this._reseed > this.reseedInterval)\n throw new Error('Reseed is required');\n\n // Optional encoding\n if (typeof enc !== 'string') {\n addEnc = add;\n add = enc;\n enc = null;\n }\n\n // Optional additional data\n if (add) {\n add = utils.toArray(add, addEnc || 'hex');\n this._update(add);\n }\n\n var temp = [];\n while (temp.length < len) {\n this.V = this._hmac().update(this.V).digest();\n temp = temp.concat(this.V);\n }\n\n var res = temp.slice(0, len);\n this._update(add);\n this._reseed++;\n return utils.encode(res, enc);\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction KeyPair(ec, options) {\n this.ec = ec;\n this.priv = null;\n this.pub = null;\n\n // KeyPair(ec, { priv: ..., pub: ... })\n if (options.priv)\n this._importPrivate(options.priv, options.privEnc);\n if (options.pub)\n this._importPublic(options.pub, options.pubEnc);\n}\nmodule.exports = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n if (pub instanceof KeyPair)\n return pub;\n\n return new KeyPair(ec, {\n pub: pub,\n pubEnc: enc,\n });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n if (priv instanceof KeyPair)\n return priv;\n\n return new KeyPair(ec, {\n priv: priv,\n privEnc: enc,\n });\n};\n\nKeyPair.prototype.validate = function validate() {\n var pub = this.getPublic();\n\n if (pub.isInfinity())\n return { result: false, reason: 'Invalid public key' };\n if (!pub.validate())\n return { result: false, reason: 'Public key is not a point' };\n if (!pub.mul(this.ec.curve.n).isInfinity())\n return { result: false, reason: 'Public key * N != O' };\n\n return { result: true, reason: null };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n // compact is optional argument\n if (typeof compact === 'string') {\n enc = compact;\n compact = null;\n }\n\n if (!this.pub)\n this.pub = this.ec.g.mul(this.priv);\n\n if (!enc)\n return this.pub;\n\n return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n if (enc === 'hex')\n return this.priv.toString(16, 2);\n else\n return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n this.priv = new BN(key, enc || 16);\n\n // Ensure that the priv won't be bigger than n, otherwise we may fail\n // in fixed multiplication method\n this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n if (key.x || key.y) {\n // Montgomery points only have an `x` coordinate.\n // Weierstrass/Edwards points on the other hand have both `x` and\n // `y` coordinates.\n if (this.ec.curve.type === 'mont') {\n assert(key.x, 'Need x coordinate');\n } else if (this.ec.curve.type === 'short' ||\n this.ec.curve.type === 'edwards') {\n assert(key.x && key.y, 'Need both x and y coordinate');\n }\n this.pub = this.ec.curve.point(key.x, key.y);\n return;\n }\n this.pub = this.ec.curve.decodePoint(key, enc);\n};\n\n// ECDH\nKeyPair.prototype.derive = function derive(pub) {\n if(!pub.validate()) {\n assert(pub.validate(), 'public point not validated');\n }\n return pub.mul(this.priv).getX();\n};\n\n// ECDSA\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature, options) {\n return this.ec.verify(msg, signature, this, undefined, options);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n return '';\n};\n","'use strict';\n\nvar BN = require('bn.js');\n\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature)\n return options;\n\n if (this._importDER(options, enc))\n return;\n\n assert(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined)\n this.recoveryParam = null;\n else\n this.recoveryParam = options.recoveryParam;\n}\nmodule.exports = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n if (!(initial & 0x80)) {\n return initial;\n }\n var octetLen = initial & 0xf;\n\n // Indefinite length or overflow\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n\n if(buf[p.place] === 0x00) {\n return false;\n }\n\n var val = 0;\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n }\n\n // Leading zeroes\n if (val <= 0x7f) {\n return false;\n }\n\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n if (i === 0) {\n return buf;\n }\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils.toArray(data, enc);\n var p = new Position();\n if (data[p.place++] !== 0x30) {\n return false;\n }\n var len = getLength(data, p);\n if (len === false) {\n return false;\n }\n if ((len + p.place) !== data.length) {\n return false;\n }\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var rlen = getLength(data, p);\n if (rlen === false) {\n return false;\n }\n if ((data[p.place] & 128) !== 0) {\n return false;\n }\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var slen = getLength(data, p);\n if (slen === false) {\n return false;\n }\n if (data.length !== slen + p.place) {\n return false;\n }\n if ((data[p.place] & 128) !== 0) {\n return false;\n }\n var s = data.slice(p.place, slen + p.place);\n if (r[0] === 0) {\n if (r[1] & 0x80) {\n r = r.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n if (s[0] === 0) {\n if (s[1] & 0x80) {\n s = s.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n while (--octets) {\n arr.push((len >>> (octets << 3)) & 0xff);\n }\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray();\n\n // Pad values\n if (r[0] & 0x80)\n r = [ 0 ].concat(r);\n // Pad values\n if (s[0] & 0x80)\n s = [ 0 ].concat(s);\n\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n var arr = [ 0x02 ];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [ 0x30 ];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils.encode(res, enc);\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar HmacDRBG = require('hmac-drbg');\nvar utils = require('../utils');\nvar curves = require('../curves');\nvar rand = require('brorand');\nvar assert = utils.assert;\n\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EC(options) {\n if (!(this instanceof EC))\n return new EC(options);\n\n // Shortcut `elliptic.ec(curve-name)`\n if (typeof options === 'string') {\n assert(Object.prototype.hasOwnProperty.call(curves, options),\n 'Unknown curve ' + options);\n\n options = curves[options];\n }\n\n // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n if (options instanceof curves.PresetCurve)\n options = { curve: options };\n\n this.curve = options.curve.curve;\n this.n = this.curve.n;\n this.nh = this.n.ushrn(1);\n this.g = this.curve.g;\n\n // Point on curve\n this.g = options.curve.g;\n this.g.precompute(options.curve.n.bitLength() + 1);\n\n // Hash for function for DRBG\n this.hash = options.hash || options.curve.hash;\n}\nmodule.exports = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n return new KeyPair(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n return KeyPair.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n return KeyPair.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n if (!options)\n options = {};\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n entropy: options.entropy || rand(this.hash.hmacStrength),\n entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n nonce: this.n.toArray(),\n });\n\n var bytes = this.n.byteLength();\n var ns2 = this.n.sub(new BN(2));\n for (;;) {\n var priv = new BN(drbg.generate(bytes));\n if (priv.cmp(ns2) > 0)\n continue;\n\n priv.iaddn(1);\n return this.keyFromPrivate(priv);\n }\n};\n\nEC.prototype._truncateToN = function _truncateToN(msg, truncOnly, bitLength) {\n var byteLength;\n if (BN.isBN(msg) || typeof msg === 'number') {\n msg = new BN(msg, 16);\n byteLength = msg.byteLength();\n } else if (typeof msg === 'object') {\n // BN assumes an array-like input and asserts length\n byteLength = msg.length;\n msg = new BN(msg, 16);\n } else {\n // BN converts the value to string\n var str = msg.toString();\n // HEX encoding\n byteLength = (str.length + 1) >>> 1;\n msg = new BN(str, 16);\n }\n // Allow overriding\n if (typeof bitLength !== 'number') {\n bitLength = byteLength * 8;\n }\n var delta = bitLength - this.n.bitLength();\n if (delta > 0)\n msg = msg.ushrn(delta);\n if (!truncOnly && msg.cmp(this.n) >= 0)\n return msg.sub(this.n);\n else\n return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n if (typeof enc === 'object') {\n options = enc;\n enc = null;\n }\n if (!options)\n options = {};\n\n if (typeof msg !== 'string' && typeof msg !== 'number' && !BN.isBN(msg)) {\n assert(typeof msg === 'object' && msg && typeof msg.length === 'number',\n 'Expected message to be an array-like, a hex string, or a BN instance');\n assert((msg.length >>> 0) === msg.length); // non-negative 32-bit integer\n for (var i = 0; i < msg.length; i++) assert((msg[i] & 255) === msg[i]);\n }\n\n key = this.keyFromPrivate(key, enc);\n msg = this._truncateToN(msg, false, options.msgBitLength);\n\n // Would fail further checks, but let's make the error message clear\n assert(!msg.isNeg(), 'Can not sign a negative message');\n\n // Zero-extend key to provide enough entropy\n var bytes = this.n.byteLength();\n var bkey = key.getPrivate().toArray('be', bytes);\n\n // Zero-extend nonce to have the same byte size as N\n var nonce = msg.toArray('be', bytes);\n\n // Recheck nonce to be bijective to msg\n assert((new BN(nonce)).eq(msg), 'Can not sign message');\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n entropy: bkey,\n nonce: nonce,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n });\n\n // Number of bytes to generate\n var ns1 = this.n.sub(new BN(1));\n\n for (var iter = 0; ; iter++) {\n var k = options.k ?\n options.k(iter) :\n new BN(drbg.generate(this.n.byteLength()));\n k = this._truncateToN(k, true);\n if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)\n continue;\n\n var kp = this.g.mul(k);\n if (kp.isInfinity())\n continue;\n\n var kpX = kp.getX();\n var r = kpX.umod(this.n);\n if (r.cmpn(0) === 0)\n continue;\n\n var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n s = s.umod(this.n);\n if (s.cmpn(0) === 0)\n continue;\n\n var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |\n (kpX.cmp(r) !== 0 ? 2 : 0);\n\n // Use complement of `s`, if it is > `n / 2`\n if (options.canonical && s.cmp(this.nh) > 0) {\n s = this.n.sub(s);\n recoveryParam ^= 1;\n }\n\n return new Signature({ r: r, s: s, recoveryParam: recoveryParam });\n }\n};\n\nEC.prototype.verify = function verify(msg, signature, key, enc, options) {\n if (!options)\n options = {};\n\n msg = this._truncateToN(msg, false, options.msgBitLength);\n key = this.keyFromPublic(key, enc);\n signature = new Signature(signature, 'hex');\n\n // Perform primitive values validation\n var r = signature.r;\n var s = signature.s;\n if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)\n return false;\n if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)\n return false;\n\n // Validate signature\n var sinv = s.invm(this.n);\n var u1 = sinv.mul(msg).umod(this.n);\n var u2 = sinv.mul(r).umod(this.n);\n var p;\n\n if (!this.curve._maxwellTrick) {\n p = this.g.mulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n return p.getX().umod(this.n).cmp(r) === 0;\n }\n\n // NOTE: Greg Maxwell's trick, inspired by:\n // https://git.io/vad3K\n\n p = this.g.jmulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n // Compare `p.x` of Jacobian point with `r`,\n // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n // inverse of `p.z^2`\n return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function(msg, signature, j, enc) {\n assert((3 & j) === j, 'The recovery param is more than two bits');\n signature = new Signature(signature, enc);\n\n var n = this.n;\n var e = new BN(msg);\n var r = signature.r;\n var s = signature.s;\n\n // A set LSB signifies that the y-coordinate is odd\n var isYOdd = j & 1;\n var isSecondKey = j >> 1;\n if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)\n throw new Error('Unable to find sencond key candinate');\n\n // 1.1. Let x = r + jn.\n if (isSecondKey)\n r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);\n else\n r = this.curve.pointFromX(r, isYOdd);\n\n var rInv = signature.r.invm(n);\n var s1 = n.sub(e).mul(rInv).umod(n);\n var s2 = s.mul(rInv).umod(n);\n\n // 1.6.1 Compute Q = r^-1 (sR - eG)\n // Q = r^-1 (sR + -eG)\n return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {\n signature = new Signature(signature, enc);\n if (signature.recoveryParam !== null)\n return signature.recoveryParam;\n\n for (var i = 0; i < 4; i++) {\n var Qprime;\n try {\n Qprime = this.recoverPubKey(e, signature, i);\n } catch (e) {\n continue;\n }\n\n if (Qprime.eq(Q))\n return i;\n }\n throw new Error('Unable to find valid recovery factor');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar cachedProperty = utils.cachedProperty;\n\n/**\n* @param {EDDSA} eddsa - instance\n* @param {Object} params - public/private key parameters\n*\n* @param {Array} [params.secret] - secret seed bytes\n* @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)\n* @param {Array} [params.pub] - public key point encoded as bytes\n*\n*/\nfunction KeyPair(eddsa, params) {\n this.eddsa = eddsa;\n this._secret = parseBytes(params.secret);\n if (eddsa.isPoint(params.pub))\n this._pub = params.pub;\n else\n this._pubBytes = parseBytes(params.pub);\n}\n\nKeyPair.fromPublic = function fromPublic(eddsa, pub) {\n if (pub instanceof KeyPair)\n return pub;\n return new KeyPair(eddsa, { pub: pub });\n};\n\nKeyPair.fromSecret = function fromSecret(eddsa, secret) {\n if (secret instanceof KeyPair)\n return secret;\n return new KeyPair(eddsa, { secret: secret });\n};\n\nKeyPair.prototype.secret = function secret() {\n return this._secret;\n};\n\ncachedProperty(KeyPair, 'pubBytes', function pubBytes() {\n return this.eddsa.encodePoint(this.pub());\n});\n\ncachedProperty(KeyPair, 'pub', function pub() {\n if (this._pubBytes)\n return this.eddsa.decodePoint(this._pubBytes);\n return this.eddsa.g.mul(this.priv());\n});\n\ncachedProperty(KeyPair, 'privBytes', function privBytes() {\n var eddsa = this.eddsa;\n var hash = this.hash();\n var lastIx = eddsa.encodingLength - 1;\n\n var a = hash.slice(0, eddsa.encodingLength);\n a[0] &= 248;\n a[lastIx] &= 127;\n a[lastIx] |= 64;\n\n return a;\n});\n\ncachedProperty(KeyPair, 'priv', function priv() {\n return this.eddsa.decodeInt(this.privBytes());\n});\n\ncachedProperty(KeyPair, 'hash', function hash() {\n return this.eddsa.hash().update(this.secret()).digest();\n});\n\ncachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {\n return this.hash().slice(this.eddsa.encodingLength);\n});\n\nKeyPair.prototype.sign = function sign(message) {\n assert(this._secret, 'KeyPair can only verify');\n return this.eddsa.sign(message, this);\n};\n\nKeyPair.prototype.verify = function verify(message, sig) {\n return this.eddsa.verify(message, sig, this);\n};\n\nKeyPair.prototype.getSecret = function getSecret(enc) {\n assert(this._secret, 'KeyPair is public only');\n return utils.encode(this.secret(), enc);\n};\n\nKeyPair.prototype.getPublic = function getPublic(enc) {\n return utils.encode(this.pubBytes(), enc);\n};\n\nmodule.exports = KeyPair;\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar cachedProperty = utils.cachedProperty;\nvar parseBytes = utils.parseBytes;\n\n/**\n* @param {EDDSA} eddsa - eddsa instance\n* @param {Array|Object} sig -\n* @param {Array|Point} [sig.R] - R point as Point or bytes\n* @param {Array|bn} [sig.S] - S scalar as bn or bytes\n* @param {Array} [sig.Rencoded] - R point encoded\n* @param {Array} [sig.Sencoded] - S scalar encoded\n*/\nfunction Signature(eddsa, sig) {\n this.eddsa = eddsa;\n\n if (typeof sig !== 'object')\n sig = parseBytes(sig);\n\n if (Array.isArray(sig)) {\n assert(sig.length === eddsa.encodingLength * 2, 'Signature has invalid size');\n sig = {\n R: sig.slice(0, eddsa.encodingLength),\n S: sig.slice(eddsa.encodingLength),\n };\n }\n\n assert(sig.R && sig.S, 'Signature without R or S');\n\n if (eddsa.isPoint(sig.R))\n this._R = sig.R;\n if (sig.S instanceof BN)\n this._S = sig.S;\n\n this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;\n this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;\n}\n\ncachedProperty(Signature, 'S', function S() {\n return this.eddsa.decodeInt(this.Sencoded());\n});\n\ncachedProperty(Signature, 'R', function R() {\n return this.eddsa.decodePoint(this.Rencoded());\n});\n\ncachedProperty(Signature, 'Rencoded', function Rencoded() {\n return this.eddsa.encodePoint(this.R());\n});\n\ncachedProperty(Signature, 'Sencoded', function Sencoded() {\n return this.eddsa.encodeInt(this.S());\n});\n\nSignature.prototype.toBytes = function toBytes() {\n return this.Rencoded().concat(this.Sencoded());\n};\n\nSignature.prototype.toHex = function toHex() {\n return utils.encode(this.toBytes(), 'hex').toUpperCase();\n};\n\nmodule.exports = Signature;\n","'use strict';\n\nvar hash = require('hash.js');\nvar curves = require('../curves');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EDDSA(curve) {\n assert(curve === 'ed25519', 'only tested with ed25519 so far');\n\n if (!(this instanceof EDDSA))\n return new EDDSA(curve);\n\n curve = curves[curve].curve;\n this.curve = curve;\n this.g = curve.g;\n this.g.precompute(curve.n.bitLength() + 1);\n\n this.pointClass = curve.point().constructor;\n this.encodingLength = Math.ceil(curve.n.bitLength() / 8);\n this.hash = hash.sha512;\n}\n\nmodule.exports = EDDSA;\n\n/**\n* @param {Array|String} message - message bytes\n* @param {Array|String|KeyPair} secret - secret bytes or a keypair\n* @returns {Signature} - signature\n*/\nEDDSA.prototype.sign = function sign(message, secret) {\n message = parseBytes(message);\n var key = this.keyFromSecret(secret);\n var r = this.hashInt(key.messagePrefix(), message);\n var R = this.g.mul(r);\n var Rencoded = this.encodePoint(R);\n var s_ = this.hashInt(Rencoded, key.pubBytes(), message)\n .mul(key.priv());\n var S = r.add(s_).umod(this.curve.n);\n return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });\n};\n\n/**\n* @param {Array} message - message bytes\n* @param {Array|String|Signature} sig - sig bytes\n* @param {Array|String|Point|KeyPair} pub - public key\n* @returns {Boolean} - true if public key matches sig of message\n*/\nEDDSA.prototype.verify = function verify(message, sig, pub) {\n message = parseBytes(message);\n sig = this.makeSignature(sig);\n if (sig.S().gte(sig.eddsa.curve.n) || sig.S().isNeg()) {\n return false;\n }\n var key = this.keyFromPublic(pub);\n var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);\n var SG = this.g.mul(sig.S());\n var RplusAh = sig.R().add(key.pub().mul(h));\n return RplusAh.eq(SG);\n};\n\nEDDSA.prototype.hashInt = function hashInt() {\n var hash = this.hash();\n for (var i = 0; i < arguments.length; i++)\n hash.update(arguments[i]);\n return utils.intFromLE(hash.digest()).umod(this.curve.n);\n};\n\nEDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {\n return KeyPair.fromPublic(this, pub);\n};\n\nEDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {\n return KeyPair.fromSecret(this, secret);\n};\n\nEDDSA.prototype.makeSignature = function makeSignature(sig) {\n if (sig instanceof Signature)\n return sig;\n return new Signature(this, sig);\n};\n\n/**\n* * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2\n*\n* EDDSA defines methods for encoding and decoding points and integers. These are\n* helper convenience methods, that pass along to utility functions implied\n* parameters.\n*\n*/\nEDDSA.prototype.encodePoint = function encodePoint(point) {\n var enc = point.getY().toArray('le', this.encodingLength);\n enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0;\n return enc;\n};\n\nEDDSA.prototype.decodePoint = function decodePoint(bytes) {\n bytes = utils.parseBytes(bytes);\n\n var lastIx = bytes.length - 1;\n var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80);\n var xIsOdd = (bytes[lastIx] & 0x80) !== 0;\n\n var y = utils.intFromLE(normed);\n return this.curve.pointFromY(y, xIsOdd);\n};\n\nEDDSA.prototype.encodeInt = function encodeInt(num) {\n return num.toArray('le', this.encodingLength);\n};\n\nEDDSA.prototype.decodeInt = function decodeInt(bytes) {\n return utils.intFromLE(bytes);\n};\n\nEDDSA.prototype.isPoint = function isPoint(val) {\n return val instanceof this.pointClass;\n};\n","'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = require('../package.json').version;\nelliptic.utils = require('./elliptic/utils');\nelliptic.rand = require('brorand');\nelliptic.curve = require('./elliptic/curve');\nelliptic.curves = require('./elliptic/curves');\n\n// Protocols\nelliptic.ec = require('./elliptic/ec');\nelliptic.eddsa = require('./elliptic/eddsa');\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","var indexOf = function (xs, item) {\n if (xs.indexOf) return xs.indexOf(item);\n else for (var i = 0; i < xs.length; i++) {\n if (xs[i] === item) return i;\n }\n return -1;\n};\nvar Object_keys = function (obj) {\n if (Object.keys) return Object.keys(obj)\n else {\n var res = [];\n for (var key in obj) res.push(key)\n return res;\n }\n};\n\nvar forEach = function (xs, fn) {\n if (xs.forEach) return xs.forEach(fn)\n else for (var i = 0; i < xs.length; i++) {\n fn(xs[i], i, xs);\n }\n};\n\nvar defineProp = (function() {\n try {\n Object.defineProperty({}, '_', {});\n return function(obj, name, value) {\n Object.defineProperty(obj, name, {\n writable: true,\n enumerable: false,\n configurable: true,\n value: value\n })\n };\n } catch(e) {\n return function(obj, name, value) {\n obj[name] = value;\n };\n }\n}());\n\nvar globals = ['Array', 'Boolean', 'Date', 'Error', 'EvalError', 'Function',\n'Infinity', 'JSON', 'Math', 'NaN', 'Number', 'Object', 'RangeError',\n'ReferenceError', 'RegExp', 'String', 'SyntaxError', 'TypeError', 'URIError',\n'decodeURI', 'decodeURIComponent', 'encodeURI', 'encodeURIComponent', 'escape',\n'eval', 'isFinite', 'isNaN', 'parseFloat', 'parseInt', 'undefined', 'unescape'];\n\nfunction Context() {}\nContext.prototype = {};\n\nvar Script = exports.Script = function NodeScript (code) {\n if (!(this instanceof Script)) return new Script(code);\n this.code = code;\n};\n\nScript.prototype.runInContext = function (context) {\n if (!(context instanceof Context)) {\n throw new TypeError(\"needs a 'context' argument.\");\n }\n \n var iframe = document.createElement('iframe');\n if (!iframe.style) iframe.style = {};\n iframe.style.display = 'none';\n \n document.body.appendChild(iframe);\n \n var win = iframe.contentWindow;\n var wEval = win.eval, wExecScript = win.execScript;\n\n if (!wEval && wExecScript) {\n // win.eval() magically appears when this is called in IE:\n wExecScript.call(win, 'null');\n wEval = win.eval;\n }\n \n forEach(Object_keys(context), function (key) {\n win[key] = context[key];\n });\n forEach(globals, function (key) {\n if (context[key]) {\n win[key] = context[key];\n }\n });\n \n var winKeys = Object_keys(win);\n\n var res = wEval.call(win, this.code);\n \n forEach(Object_keys(win), function (key) {\n // Avoid copying circular objects like `top` and `window` by only\n // updating existing context properties or new properties in the `win`\n // that was only introduced after the eval.\n if (key in context || indexOf(winKeys, key) === -1) {\n context[key] = win[key];\n }\n });\n\n forEach(globals, function (key) {\n if (!(key in context)) {\n defineProp(context, key, win[key]);\n }\n });\n \n document.body.removeChild(iframe);\n \n return res;\n};\n\nScript.prototype.runInThisContext = function () {\n return eval(this.code); // maybe...\n};\n\nScript.prototype.runInNewContext = function (context) {\n var ctx = Script.createContext(context);\n var res = this.runInContext(ctx);\n\n if (context) {\n forEach(Object_keys(ctx), function (key) {\n context[key] = ctx[key];\n });\n }\n\n return res;\n};\n\nforEach(Object_keys(Script.prototype), function (name) {\n exports[name] = Script[name] = function (code) {\n var s = Script(code);\n return s[name].apply(s, [].slice.call(arguments, 1));\n };\n});\n\nexports.isContext = function (context) {\n return context instanceof Context;\n};\n\nexports.createScript = function (code) {\n return exports.Script(code);\n};\n\nexports.createContext = Script.createContext = function (context) {\n var copy = new Context();\n if(typeof context === 'object') {\n forEach(Object_keys(context), function (key) {\n copy[key] = context[key];\n });\n }\n return copy;\n};\n","var asn1 = require('../asn1');\nvar inherits = require('inherits');\n\nvar api = exports;\n\napi.define = function define(name, body) {\n return new Entity(name, body);\n};\n\nfunction Entity(name, body) {\n this.name = name;\n this.body = body;\n\n this.decoders = {};\n this.encoders = {};\n};\n\nEntity.prototype._createNamed = function createNamed(base) {\n var named;\n try {\n named = require('vm').runInThisContext(\n '(function ' + this.name + '(entity) {\\n' +\n ' this._initNamed(entity);\\n' +\n '})'\n );\n } catch (e) {\n named = function (entity) {\n this._initNamed(entity);\n };\n }\n inherits(named, base);\n named.prototype._initNamed = function initnamed(entity) {\n base.call(this, entity);\n };\n\n return new named(this);\n};\n\nEntity.prototype._getDecoder = function _getDecoder(enc) {\n enc = enc || 'der';\n // Lazily create decoder\n if (!this.decoders.hasOwnProperty(enc))\n this.decoders[enc] = this._createNamed(asn1.decoders[enc]);\n return this.decoders[enc];\n};\n\nEntity.prototype.decode = function decode(data, enc, options) {\n return this._getDecoder(enc).decode(data, options);\n};\n\nEntity.prototype._getEncoder = function _getEncoder(enc) {\n enc = enc || 'der';\n // Lazily create encoder\n if (!this.encoders.hasOwnProperty(enc))\n this.encoders[enc] = this._createNamed(asn1.encoders[enc]);\n return this.encoders[enc];\n};\n\nEntity.prototype.encode = function encode(data, enc, /* internal */ reporter) {\n return this._getEncoder(enc).encode(data, reporter);\n};\n","var inherits = require('inherits');\n\nfunction Reporter(options) {\n this._reporterState = {\n obj: null,\n path: [],\n options: options || {},\n errors: []\n };\n}\nexports.Reporter = Reporter;\n\nReporter.prototype.isError = function isError(obj) {\n return obj instanceof ReporterError;\n};\n\nReporter.prototype.save = function save() {\n var state = this._reporterState;\n\n return { obj: state.obj, pathLen: state.path.length };\n};\n\nReporter.prototype.restore = function restore(data) {\n var state = this._reporterState;\n\n state.obj = data.obj;\n state.path = state.path.slice(0, data.pathLen);\n};\n\nReporter.prototype.enterKey = function enterKey(key) {\n return this._reporterState.path.push(key);\n};\n\nReporter.prototype.exitKey = function exitKey(index) {\n var state = this._reporterState;\n\n state.path = state.path.slice(0, index - 1);\n};\n\nReporter.prototype.leaveKey = function leaveKey(index, key, value) {\n var state = this._reporterState;\n\n this.exitKey(index);\n if (state.obj !== null)\n state.obj[key] = value;\n};\n\nReporter.prototype.path = function path() {\n return this._reporterState.path.join('/');\n};\n\nReporter.prototype.enterObject = function enterObject() {\n var state = this._reporterState;\n\n var prev = state.obj;\n state.obj = {};\n return prev;\n};\n\nReporter.prototype.leaveObject = function leaveObject(prev) {\n var state = this._reporterState;\n\n var now = state.obj;\n state.obj = prev;\n return now;\n};\n\nReporter.prototype.error = function error(msg) {\n var err;\n var state = this._reporterState;\n\n var inherited = msg instanceof ReporterError;\n if (inherited) {\n err = msg;\n } else {\n err = new ReporterError(state.path.map(function(elem) {\n return '[' + JSON.stringify(elem) + ']';\n }).join(''), msg.message || msg, msg.stack);\n }\n\n if (!state.options.partial)\n throw err;\n\n if (!inherited)\n state.errors.push(err);\n\n return err;\n};\n\nReporter.prototype.wrapResult = function wrapResult(result) {\n var state = this._reporterState;\n if (!state.options.partial)\n return result;\n\n return {\n result: this.isError(result) ? null : result,\n errors: state.errors\n };\n};\n\nfunction ReporterError(path, msg) {\n this.path = path;\n this.rethrow(msg);\n};\ninherits(ReporterError, Error);\n\nReporterError.prototype.rethrow = function rethrow(msg) {\n this.message = msg + ' at: ' + (this.path || '(shallow)');\n if (Error.captureStackTrace)\n Error.captureStackTrace(this, ReporterError);\n\n if (!this.stack) {\n try {\n // IE only adds stack when thrown\n throw new Error(this.message);\n } catch (e) {\n this.stack = e.stack;\n }\n }\n return this;\n};\n","var inherits = require('inherits');\nvar Reporter = require('../base').Reporter;\nvar Buffer = require('buffer').Buffer;\n\nfunction DecoderBuffer(base, options) {\n Reporter.call(this, options);\n if (!Buffer.isBuffer(base)) {\n this.error('Input not Buffer');\n return;\n }\n\n this.base = base;\n this.offset = 0;\n this.length = base.length;\n}\ninherits(DecoderBuffer, Reporter);\nexports.DecoderBuffer = DecoderBuffer;\n\nDecoderBuffer.prototype.save = function save() {\n return { offset: this.offset, reporter: Reporter.prototype.save.call(this) };\n};\n\nDecoderBuffer.prototype.restore = function restore(save) {\n // Return skipped data\n var res = new DecoderBuffer(this.base);\n res.offset = save.offset;\n res.length = this.offset;\n\n this.offset = save.offset;\n Reporter.prototype.restore.call(this, save.reporter);\n\n return res;\n};\n\nDecoderBuffer.prototype.isEmpty = function isEmpty() {\n return this.offset === this.length;\n};\n\nDecoderBuffer.prototype.readUInt8 = function readUInt8(fail) {\n if (this.offset + 1 <= this.length)\n return this.base.readUInt8(this.offset++, true);\n else\n return this.error(fail || 'DecoderBuffer overrun');\n}\n\nDecoderBuffer.prototype.skip = function skip(bytes, fail) {\n if (!(this.offset + bytes <= this.length))\n return this.error(fail || 'DecoderBuffer overrun');\n\n var res = new DecoderBuffer(this.base);\n\n // Share reporter state\n res._reporterState = this._reporterState;\n\n res.offset = this.offset;\n res.length = this.offset + bytes;\n this.offset += bytes;\n return res;\n}\n\nDecoderBuffer.prototype.raw = function raw(save) {\n return this.base.slice(save ? save.offset : this.offset, this.length);\n}\n\nfunction EncoderBuffer(value, reporter) {\n if (Array.isArray(value)) {\n this.length = 0;\n this.value = value.map(function(item) {\n if (!(item instanceof EncoderBuffer))\n item = new EncoderBuffer(item, reporter);\n this.length += item.length;\n return item;\n }, this);\n } else if (typeof value === 'number') {\n if (!(0 <= value && value <= 0xff))\n return reporter.error('non-byte EncoderBuffer value');\n this.value = value;\n this.length = 1;\n } else if (typeof value === 'string') {\n this.value = value;\n this.length = Buffer.byteLength(value);\n } else if (Buffer.isBuffer(value)) {\n this.value = value;\n this.length = value.length;\n } else {\n return reporter.error('Unsupported type: ' + typeof value);\n }\n}\nexports.EncoderBuffer = EncoderBuffer;\n\nEncoderBuffer.prototype.join = function join(out, offset) {\n if (!out)\n out = new Buffer(this.length);\n if (!offset)\n offset = 0;\n\n if (this.length === 0)\n return out;\n\n if (Array.isArray(this.value)) {\n this.value.forEach(function(item) {\n item.join(out, offset);\n offset += item.length;\n });\n } else {\n if (typeof this.value === 'number')\n out[offset] = this.value;\n else if (typeof this.value === 'string')\n out.write(this.value, offset);\n else if (Buffer.isBuffer(this.value))\n this.value.copy(out, offset);\n offset += this.length;\n }\n\n return out;\n};\n","var Reporter = require('../base').Reporter;\nvar EncoderBuffer = require('../base').EncoderBuffer;\nvar DecoderBuffer = require('../base').DecoderBuffer;\nvar assert = require('minimalistic-assert');\n\n// Supported tags\nvar tags = [\n 'seq', 'seqof', 'set', 'setof', 'objid', 'bool',\n 'gentime', 'utctime', 'null_', 'enum', 'int', 'objDesc',\n 'bitstr', 'bmpstr', 'charstr', 'genstr', 'graphstr', 'ia5str', 'iso646str',\n 'numstr', 'octstr', 'printstr', 't61str', 'unistr', 'utf8str', 'videostr'\n];\n\n// Public methods list\nvar methods = [\n 'key', 'obj', 'use', 'optional', 'explicit', 'implicit', 'def', 'choice',\n 'any', 'contains'\n].concat(tags);\n\n// Overrided methods list\nvar overrided = [\n '_peekTag', '_decodeTag', '_use',\n '_decodeStr', '_decodeObjid', '_decodeTime',\n '_decodeNull', '_decodeInt', '_decodeBool', '_decodeList',\n\n '_encodeComposite', '_encodeStr', '_encodeObjid', '_encodeTime',\n '_encodeNull', '_encodeInt', '_encodeBool'\n];\n\nfunction Node(enc, parent) {\n var state = {};\n this._baseState = state;\n\n state.enc = enc;\n\n state.parent = parent || null;\n state.children = null;\n\n // State\n state.tag = null;\n state.args = null;\n state.reverseArgs = null;\n state.choice = null;\n state.optional = false;\n state.any = false;\n state.obj = false;\n state.use = null;\n state.useDecoder = null;\n state.key = null;\n state['default'] = null;\n state.explicit = null;\n state.implicit = null;\n state.contains = null;\n\n // Should create new instance on each method\n if (!state.parent) {\n state.children = [];\n this._wrap();\n }\n}\nmodule.exports = Node;\n\nvar stateProps = [\n 'enc', 'parent', 'children', 'tag', 'args', 'reverseArgs', 'choice',\n 'optional', 'any', 'obj', 'use', 'alteredUse', 'key', 'default', 'explicit',\n 'implicit', 'contains'\n];\n\nNode.prototype.clone = function clone() {\n var state = this._baseState;\n var cstate = {};\n stateProps.forEach(function(prop) {\n cstate[prop] = state[prop];\n });\n var res = new this.constructor(cstate.parent);\n res._baseState = cstate;\n return res;\n};\n\nNode.prototype._wrap = function wrap() {\n var state = this._baseState;\n methods.forEach(function(method) {\n this[method] = function _wrappedMethod() {\n var clone = new this.constructor(this);\n state.children.push(clone);\n return clone[method].apply(clone, arguments);\n };\n }, this);\n};\n\nNode.prototype._init = function init(body) {\n var state = this._baseState;\n\n assert(state.parent === null);\n body.call(this);\n\n // Filter children\n state.children = state.children.filter(function(child) {\n return child._baseState.parent === this;\n }, this);\n assert.equal(state.children.length, 1, 'Root node can have only one child');\n};\n\nNode.prototype._useArgs = function useArgs(args) {\n var state = this._baseState;\n\n // Filter children and args\n var children = args.filter(function(arg) {\n return arg instanceof this.constructor;\n }, this);\n args = args.filter(function(arg) {\n return !(arg instanceof this.constructor);\n }, this);\n\n if (children.length !== 0) {\n assert(state.children === null);\n state.children = children;\n\n // Replace parent to maintain backward link\n children.forEach(function(child) {\n child._baseState.parent = this;\n }, this);\n }\n if (args.length !== 0) {\n assert(state.args === null);\n state.args = args;\n state.reverseArgs = args.map(function(arg) {\n if (typeof arg !== 'object' || arg.constructor !== Object)\n return arg;\n\n var res = {};\n Object.keys(arg).forEach(function(key) {\n if (key == (key | 0))\n key |= 0;\n var value = arg[key];\n res[value] = key;\n });\n return res;\n });\n }\n};\n\n//\n// Overrided methods\n//\n\noverrided.forEach(function(method) {\n Node.prototype[method] = function _overrided() {\n var state = this._baseState;\n throw new Error(method + ' not implemented for encoding: ' + state.enc);\n };\n});\n\n//\n// Public methods\n//\n\ntags.forEach(function(tag) {\n Node.prototype[tag] = function _tagMethod() {\n var state = this._baseState;\n var args = Array.prototype.slice.call(arguments);\n\n assert(state.tag === null);\n state.tag = tag;\n\n this._useArgs(args);\n\n return this;\n };\n});\n\nNode.prototype.use = function use(item) {\n assert(item);\n var state = this._baseState;\n\n assert(state.use === null);\n state.use = item;\n\n return this;\n};\n\nNode.prototype.optional = function optional() {\n var state = this._baseState;\n\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.def = function def(val) {\n var state = this._baseState;\n\n assert(state['default'] === null);\n state['default'] = val;\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.explicit = function explicit(num) {\n var state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.explicit = num;\n\n return this;\n};\n\nNode.prototype.implicit = function implicit(num) {\n var state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.implicit = num;\n\n return this;\n};\n\nNode.prototype.obj = function obj() {\n var state = this._baseState;\n var args = Array.prototype.slice.call(arguments);\n\n state.obj = true;\n\n if (args.length !== 0)\n this._useArgs(args);\n\n return this;\n};\n\nNode.prototype.key = function key(newKey) {\n var state = this._baseState;\n\n assert(state.key === null);\n state.key = newKey;\n\n return this;\n};\n\nNode.prototype.any = function any() {\n var state = this._baseState;\n\n state.any = true;\n\n return this;\n};\n\nNode.prototype.choice = function choice(obj) {\n var state = this._baseState;\n\n assert(state.choice === null);\n state.choice = obj;\n this._useArgs(Object.keys(obj).map(function(key) {\n return obj[key];\n }));\n\n return this;\n};\n\nNode.prototype.contains = function contains(item) {\n var state = this._baseState;\n\n assert(state.use === null);\n state.contains = item;\n\n return this;\n};\n\n//\n// Decoding\n//\n\nNode.prototype._decode = function decode(input, options) {\n var state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return input.wrapResult(state.children[0]._decode(input, options));\n\n var result = state['default'];\n var present = true;\n\n var prevKey = null;\n if (state.key !== null)\n prevKey = input.enterKey(state.key);\n\n // Check if tag is there\n if (state.optional) {\n var tag = null;\n if (state.explicit !== null)\n tag = state.explicit;\n else if (state.implicit !== null)\n tag = state.implicit;\n else if (state.tag !== null)\n tag = state.tag;\n\n if (tag === null && !state.any) {\n // Trial and Error\n var save = input.save();\n try {\n if (state.choice === null)\n this._decodeGeneric(state.tag, input, options);\n else\n this._decodeChoice(input, options);\n present = true;\n } catch (e) {\n present = false;\n }\n input.restore(save);\n } else {\n present = this._peekTag(input, tag, state.any);\n\n if (input.isError(present))\n return present;\n }\n }\n\n // Push object on stack\n var prevObj;\n if (state.obj && present)\n prevObj = input.enterObject();\n\n if (present) {\n // Unwrap explicit values\n if (state.explicit !== null) {\n var explicit = this._decodeTag(input, state.explicit);\n if (input.isError(explicit))\n return explicit;\n input = explicit;\n }\n\n var start = input.offset;\n\n // Unwrap implicit and normal values\n if (state.use === null && state.choice === null) {\n if (state.any)\n var save = input.save();\n var body = this._decodeTag(\n input,\n state.implicit !== null ? state.implicit : state.tag,\n state.any\n );\n if (input.isError(body))\n return body;\n\n if (state.any)\n result = input.raw(save);\n else\n input = body;\n }\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), start, input.length, 'tagged');\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), input.offset, input.length, 'content');\n\n // Select proper method for tag\n if (state.any)\n result = result;\n else if (state.choice === null)\n result = this._decodeGeneric(state.tag, input, options);\n else\n result = this._decodeChoice(input, options);\n\n if (input.isError(result))\n return result;\n\n // Decode children\n if (!state.any && state.choice === null && state.children !== null) {\n state.children.forEach(function decodeChildren(child) {\n // NOTE: We are ignoring errors here, to let parser continue with other\n // parts of encoded data\n child._decode(input, options);\n });\n }\n\n // Decode contained/encoded by schema, only in bit or octet strings\n if (state.contains && (state.tag === 'octstr' || state.tag === 'bitstr')) {\n var data = new DecoderBuffer(result);\n result = this._getUse(state.contains, input._reporterState.obj)\n ._decode(data, options);\n }\n }\n\n // Pop object\n if (state.obj && present)\n result = input.leaveObject(prevObj);\n\n // Set key\n if (state.key !== null && (result !== null || present === true))\n input.leaveKey(prevKey, state.key, result);\n else if (prevKey !== null)\n input.exitKey(prevKey);\n\n return result;\n};\n\nNode.prototype._decodeGeneric = function decodeGeneric(tag, input, options) {\n var state = this._baseState;\n\n if (tag === 'seq' || tag === 'set')\n return null;\n if (tag === 'seqof' || tag === 'setof')\n return this._decodeList(input, tag, state.args[0], options);\n else if (/str$/.test(tag))\n return this._decodeStr(input, tag, options);\n else if (tag === 'objid' && state.args)\n return this._decodeObjid(input, state.args[0], state.args[1], options);\n else if (tag === 'objid')\n return this._decodeObjid(input, null, null, options);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._decodeTime(input, tag, options);\n else if (tag === 'null_')\n return this._decodeNull(input, options);\n else if (tag === 'bool')\n return this._decodeBool(input, options);\n else if (tag === 'objDesc')\n return this._decodeStr(input, tag, options);\n else if (tag === 'int' || tag === 'enum')\n return this._decodeInt(input, state.args && state.args[0], options);\n\n if (state.use !== null) {\n return this._getUse(state.use, input._reporterState.obj)\n ._decode(input, options);\n } else {\n return input.error('unknown tag: ' + tag);\n }\n};\n\nNode.prototype._getUse = function _getUse(entity, obj) {\n\n var state = this._baseState;\n // Create altered use decoder if implicit is set\n state.useDecoder = this._use(entity, obj);\n assert(state.useDecoder._baseState.parent === null);\n state.useDecoder = state.useDecoder._baseState.children[0];\n if (state.implicit !== state.useDecoder._baseState.implicit) {\n state.useDecoder = state.useDecoder.clone();\n state.useDecoder._baseState.implicit = state.implicit;\n }\n return state.useDecoder;\n};\n\nNode.prototype._decodeChoice = function decodeChoice(input, options) {\n var state = this._baseState;\n var result = null;\n var match = false;\n\n Object.keys(state.choice).some(function(key) {\n var save = input.save();\n var node = state.choice[key];\n try {\n var value = node._decode(input, options);\n if (input.isError(value))\n return false;\n\n result = { type: key, value: value };\n match = true;\n } catch (e) {\n input.restore(save);\n return false;\n }\n return true;\n }, this);\n\n if (!match)\n return input.error('Choice not matched');\n\n return result;\n};\n\n//\n// Encoding\n//\n\nNode.prototype._createEncoderBuffer = function createEncoderBuffer(data) {\n return new EncoderBuffer(data, this.reporter);\n};\n\nNode.prototype._encode = function encode(data, reporter, parent) {\n var state = this._baseState;\n if (state['default'] !== null && state['default'] === data)\n return;\n\n var result = this._encodeValue(data, reporter, parent);\n if (result === undefined)\n return;\n\n if (this._skipDefault(result, reporter, parent))\n return;\n\n return result;\n};\n\nNode.prototype._encodeValue = function encode(data, reporter, parent) {\n var state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return state.children[0]._encode(data, reporter || new Reporter());\n\n var result = null;\n\n // Set reporter to share it with a child class\n this.reporter = reporter;\n\n // Check if data is there\n if (state.optional && data === undefined) {\n if (state['default'] !== null)\n data = state['default']\n else\n return;\n }\n\n // Encode children first\n var content = null;\n var primitive = false;\n if (state.any) {\n // Anything that was given is translated to buffer\n result = this._createEncoderBuffer(data);\n } else if (state.choice) {\n result = this._encodeChoice(data, reporter);\n } else if (state.contains) {\n content = this._getUse(state.contains, parent)._encode(data, reporter);\n primitive = true;\n } else if (state.children) {\n content = state.children.map(function(child) {\n if (child._baseState.tag === 'null_')\n return child._encode(null, reporter, data);\n\n if (child._baseState.key === null)\n return reporter.error('Child should have a key');\n var prevKey = reporter.enterKey(child._baseState.key);\n\n if (typeof data !== 'object')\n return reporter.error('Child expected, but input is not object');\n\n var res = child._encode(data[child._baseState.key], reporter, data);\n reporter.leaveKey(prevKey);\n\n return res;\n }, this).filter(function(child) {\n return child;\n });\n content = this._createEncoderBuffer(content);\n } else {\n if (state.tag === 'seqof' || state.tag === 'setof') {\n // TODO(indutny): this should be thrown on DSL level\n if (!(state.args && state.args.length === 1))\n return reporter.error('Too many args for : ' + state.tag);\n\n if (!Array.isArray(data))\n return reporter.error('seqof/setof, but data is not Array');\n\n var child = this.clone();\n child._baseState.implicit = null;\n content = this._createEncoderBuffer(data.map(function(item) {\n var state = this._baseState;\n\n return this._getUse(state.args[0], data)._encode(item, reporter);\n }, child));\n } else if (state.use !== null) {\n result = this._getUse(state.use, parent)._encode(data, reporter);\n } else {\n content = this._encodePrimitive(state.tag, data);\n primitive = true;\n }\n }\n\n // Encode data itself\n var result;\n if (!state.any && state.choice === null) {\n var tag = state.implicit !== null ? state.implicit : state.tag;\n var cls = state.implicit === null ? 'universal' : 'context';\n\n if (tag === null) {\n if (state.use === null)\n reporter.error('Tag could be omitted only for .use()');\n } else {\n if (state.use === null)\n result = this._encodeComposite(tag, primitive, cls, content);\n }\n }\n\n // Wrap in explicit\n if (state.explicit !== null)\n result = this._encodeComposite(state.explicit, false, 'context', result);\n\n return result;\n};\n\nNode.prototype._encodeChoice = function encodeChoice(data, reporter) {\n var state = this._baseState;\n\n var node = state.choice[data.type];\n if (!node) {\n assert(\n false,\n data.type + ' not found in ' +\n JSON.stringify(Object.keys(state.choice)));\n }\n return node._encode(data.value, reporter);\n};\n\nNode.prototype._encodePrimitive = function encodePrimitive(tag, data) {\n var state = this._baseState;\n\n if (/str$/.test(tag))\n return this._encodeStr(data, tag);\n else if (tag === 'objid' && state.args)\n return this._encodeObjid(data, state.reverseArgs[0], state.args[1]);\n else if (tag === 'objid')\n return this._encodeObjid(data, null, null);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._encodeTime(data, tag);\n else if (tag === 'null_')\n return this._encodeNull();\n else if (tag === 'int' || tag === 'enum')\n return this._encodeInt(data, state.args && state.reverseArgs[0]);\n else if (tag === 'bool')\n return this._encodeBool(data);\n else if (tag === 'objDesc')\n return this._encodeStr(data, tag);\n else\n throw new Error('Unsupported tag: ' + tag);\n};\n\nNode.prototype._isNumstr = function isNumstr(str) {\n return /^[0-9 ]*$/.test(str);\n};\n\nNode.prototype._isPrintstr = function isPrintstr(str) {\n return /^[A-Za-z0-9 '\\(\\)\\+,\\-\\.\\/:=\\?]*$/.test(str);\n};\n","var base = exports;\n\nbase.Reporter = require('./reporter').Reporter;\nbase.DecoderBuffer = require('./buffer').DecoderBuffer;\nbase.EncoderBuffer = require('./buffer').EncoderBuffer;\nbase.Node = require('./node');\n","var constants = require('../constants');\n\nexports.tagClass = {\n 0: 'universal',\n 1: 'application',\n 2: 'context',\n 3: 'private'\n};\nexports.tagClassByName = constants._reverse(exports.tagClass);\n\nexports.tag = {\n 0x00: 'end',\n 0x01: 'bool',\n 0x02: 'int',\n 0x03: 'bitstr',\n 0x04: 'octstr',\n 0x05: 'null_',\n 0x06: 'objid',\n 0x07: 'objDesc',\n 0x08: 'external',\n 0x09: 'real',\n 0x0a: 'enum',\n 0x0b: 'embed',\n 0x0c: 'utf8str',\n 0x0d: 'relativeOid',\n 0x10: 'seq',\n 0x11: 'set',\n 0x12: 'numstr',\n 0x13: 'printstr',\n 0x14: 't61str',\n 0x15: 'videostr',\n 0x16: 'ia5str',\n 0x17: 'utctime',\n 0x18: 'gentime',\n 0x19: 'graphstr',\n 0x1a: 'iso646str',\n 0x1b: 'genstr',\n 0x1c: 'unistr',\n 0x1d: 'charstr',\n 0x1e: 'bmpstr'\n};\nexports.tagByName = constants._reverse(exports.tag);\n","var constants = exports;\n\n// Helper\nconstants._reverse = function reverse(map) {\n var res = {};\n\n Object.keys(map).forEach(function(key) {\n // Convert key to integer if it is stringified\n if ((key | 0) == key)\n key = key | 0;\n\n var value = map[key];\n res[value] = key;\n });\n\n return res;\n};\n\nconstants.der = require('./der');\n","var inherits = require('inherits');\n\nvar asn1 = require('../../asn1');\nvar base = asn1.base;\nvar bignum = asn1.bignum;\n\n// Import DER constants\nvar der = asn1.constants.der;\n\nfunction DERDecoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n};\nmodule.exports = DERDecoder;\n\nDERDecoder.prototype.decode = function decode(data, options) {\n if (!(data instanceof base.DecoderBuffer))\n data = new base.DecoderBuffer(data, options);\n\n return this.tree._decode(data, options);\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n base.Node.call(this, 'der', parent);\n}\ninherits(DERNode, base.Node);\n\nDERNode.prototype._peekTag = function peekTag(buffer, tag, any) {\n if (buffer.isEmpty())\n return false;\n\n var state = buffer.save();\n var decodedTag = derDecodeTag(buffer, 'Failed to peek tag: \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n buffer.restore(state);\n\n return decodedTag.tag === tag || decodedTag.tagStr === tag ||\n (decodedTag.tagStr + 'of') === tag || any;\n};\n\nDERNode.prototype._decodeTag = function decodeTag(buffer, tag, any) {\n var decodedTag = derDecodeTag(buffer,\n 'Failed to decode tag of \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n var len = derDecodeLen(buffer,\n decodedTag.primitive,\n 'Failed to get length of \"' + tag + '\"');\n\n // Failure\n if (buffer.isError(len))\n return len;\n\n if (!any &&\n decodedTag.tag !== tag &&\n decodedTag.tagStr !== tag &&\n decodedTag.tagStr + 'of' !== tag) {\n return buffer.error('Failed to match tag: \"' + tag + '\"');\n }\n\n if (decodedTag.primitive || len !== null)\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n\n // Indefinite length... find END tag\n var state = buffer.save();\n var res = this._skipUntilEnd(\n buffer,\n 'Failed to skip indefinite length body: \"' + this.tag + '\"');\n if (buffer.isError(res))\n return res;\n\n len = buffer.offset - state.offset;\n buffer.restore(state);\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n};\n\nDERNode.prototype._skipUntilEnd = function skipUntilEnd(buffer, fail) {\n while (true) {\n var tag = derDecodeTag(buffer, fail);\n if (buffer.isError(tag))\n return tag;\n var len = derDecodeLen(buffer, tag.primitive, fail);\n if (buffer.isError(len))\n return len;\n\n var res;\n if (tag.primitive || len !== null)\n res = buffer.skip(len)\n else\n res = this._skipUntilEnd(buffer, fail);\n\n // Failure\n if (buffer.isError(res))\n return res;\n\n if (tag.tagStr === 'end')\n break;\n }\n};\n\nDERNode.prototype._decodeList = function decodeList(buffer, tag, decoder,\n options) {\n var result = [];\n while (!buffer.isEmpty()) {\n var possibleEnd = this._peekTag(buffer, 'end');\n if (buffer.isError(possibleEnd))\n return possibleEnd;\n\n var res = decoder.decode(buffer, 'der', options);\n if (buffer.isError(res) && possibleEnd)\n break;\n result.push(res);\n }\n return result;\n};\n\nDERNode.prototype._decodeStr = function decodeStr(buffer, tag) {\n if (tag === 'bitstr') {\n var unused = buffer.readUInt8();\n if (buffer.isError(unused))\n return unused;\n return { unused: unused, data: buffer.raw() };\n } else if (tag === 'bmpstr') {\n var raw = buffer.raw();\n if (raw.length % 2 === 1)\n return buffer.error('Decoding of string type: bmpstr length mismatch');\n\n var str = '';\n for (var i = 0; i < raw.length / 2; i++) {\n str += String.fromCharCode(raw.readUInt16BE(i * 2));\n }\n return str;\n } else if (tag === 'numstr') {\n var numstr = buffer.raw().toString('ascii');\n if (!this._isNumstr(numstr)) {\n return buffer.error('Decoding of string type: ' +\n 'numstr unsupported characters');\n }\n return numstr;\n } else if (tag === 'octstr') {\n return buffer.raw();\n } else if (tag === 'objDesc') {\n return buffer.raw();\n } else if (tag === 'printstr') {\n var printstr = buffer.raw().toString('ascii');\n if (!this._isPrintstr(printstr)) {\n return buffer.error('Decoding of string type: ' +\n 'printstr unsupported characters');\n }\n return printstr;\n } else if (/str$/.test(tag)) {\n return buffer.raw().toString();\n } else {\n return buffer.error('Decoding of string type: ' + tag + ' unsupported');\n }\n};\n\nDERNode.prototype._decodeObjid = function decodeObjid(buffer, values, relative) {\n var result;\n var identifiers = [];\n var ident = 0;\n while (!buffer.isEmpty()) {\n var subident = buffer.readUInt8();\n ident <<= 7;\n ident |= subident & 0x7f;\n if ((subident & 0x80) === 0) {\n identifiers.push(ident);\n ident = 0;\n }\n }\n if (subident & 0x80)\n identifiers.push(ident);\n\n var first = (identifiers[0] / 40) | 0;\n var second = identifiers[0] % 40;\n\n if (relative)\n result = identifiers;\n else\n result = [first, second].concat(identifiers.slice(1));\n\n if (values) {\n var tmp = values[result.join(' ')];\n if (tmp === undefined)\n tmp = values[result.join('.')];\n if (tmp !== undefined)\n result = tmp;\n }\n\n return result;\n};\n\nDERNode.prototype._decodeTime = function decodeTime(buffer, tag) {\n var str = buffer.raw().toString();\n if (tag === 'gentime') {\n var year = str.slice(0, 4) | 0;\n var mon = str.slice(4, 6) | 0;\n var day = str.slice(6, 8) | 0;\n var hour = str.slice(8, 10) | 0;\n var min = str.slice(10, 12) | 0;\n var sec = str.slice(12, 14) | 0;\n } else if (tag === 'utctime') {\n var year = str.slice(0, 2) | 0;\n var mon = str.slice(2, 4) | 0;\n var day = str.slice(4, 6) | 0;\n var hour = str.slice(6, 8) | 0;\n var min = str.slice(8, 10) | 0;\n var sec = str.slice(10, 12) | 0;\n if (year < 70)\n year = 2000 + year;\n else\n year = 1900 + year;\n } else {\n return buffer.error('Decoding ' + tag + ' time is not supported yet');\n }\n\n return Date.UTC(year, mon - 1, day, hour, min, sec, 0);\n};\n\nDERNode.prototype._decodeNull = function decodeNull(buffer) {\n return null;\n};\n\nDERNode.prototype._decodeBool = function decodeBool(buffer) {\n var res = buffer.readUInt8();\n if (buffer.isError(res))\n return res;\n else\n return res !== 0;\n};\n\nDERNode.prototype._decodeInt = function decodeInt(buffer, values) {\n // Bigint, return as it is (assume big endian)\n var raw = buffer.raw();\n var res = new bignum(raw);\n\n if (values)\n res = values[res.toString(10)] || res;\n\n return res;\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getDecoder('der').tree;\n};\n\n// Utility methods\n\nfunction derDecodeTag(buf, fail) {\n var tag = buf.readUInt8(fail);\n if (buf.isError(tag))\n return tag;\n\n var cls = der.tagClass[tag >> 6];\n var primitive = (tag & 0x20) === 0;\n\n // Multi-octet tag - load\n if ((tag & 0x1f) === 0x1f) {\n var oct = tag;\n tag = 0;\n while ((oct & 0x80) === 0x80) {\n oct = buf.readUInt8(fail);\n if (buf.isError(oct))\n return oct;\n\n tag <<= 7;\n tag |= oct & 0x7f;\n }\n } else {\n tag &= 0x1f;\n }\n var tagStr = der.tag[tag];\n\n return {\n cls: cls,\n primitive: primitive,\n tag: tag,\n tagStr: tagStr\n };\n}\n\nfunction derDecodeLen(buf, primitive, fail) {\n var len = buf.readUInt8(fail);\n if (buf.isError(len))\n return len;\n\n // Indefinite form\n if (!primitive && len === 0x80)\n return null;\n\n // Definite form\n if ((len & 0x80) === 0) {\n // Short form\n return len;\n }\n\n // Long form\n var num = len & 0x7f;\n if (num > 4)\n return buf.error('length octect is too long');\n\n len = 0;\n for (var i = 0; i < num; i++) {\n len <<= 8;\n var j = buf.readUInt8(fail);\n if (buf.isError(j))\n return j;\n len |= j;\n }\n\n return len;\n}\n","var inherits = require('inherits');\nvar Buffer = require('buffer').Buffer;\n\nvar DERDecoder = require('./der');\n\nfunction PEMDecoder(entity) {\n DERDecoder.call(this, entity);\n this.enc = 'pem';\n};\ninherits(PEMDecoder, DERDecoder);\nmodule.exports = PEMDecoder;\n\nPEMDecoder.prototype.decode = function decode(data, options) {\n var lines = data.toString().split(/[\\r\\n]+/g);\n\n var label = options.label.toUpperCase();\n\n var re = /^-----(BEGIN|END) ([^-]+)-----$/;\n var start = -1;\n var end = -1;\n for (var i = 0; i < lines.length; i++) {\n var match = lines[i].match(re);\n if (match === null)\n continue;\n\n if (match[2] !== label)\n continue;\n\n if (start === -1) {\n if (match[1] !== 'BEGIN')\n break;\n start = i;\n } else {\n if (match[1] !== 'END')\n break;\n end = i;\n break;\n }\n }\n if (start === -1 || end === -1)\n throw new Error('PEM section not found for: ' + label);\n\n var base64 = lines.slice(start + 1, end).join('');\n // Remove excessive symbols\n base64.replace(/[^a-z0-9\\+\\/=]+/gi, '');\n\n var input = new Buffer(base64, 'base64');\n return DERDecoder.prototype.decode.call(this, input, options);\n};\n","var decoders = exports;\n\ndecoders.der = require('./der');\ndecoders.pem = require('./pem');\n","var inherits = require('inherits');\nvar Buffer = require('buffer').Buffer;\n\nvar asn1 = require('../../asn1');\nvar base = asn1.base;\n\n// Import DER constants\nvar der = asn1.constants.der;\n\nfunction DEREncoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n};\nmodule.exports = DEREncoder;\n\nDEREncoder.prototype.encode = function encode(data, reporter) {\n return this.tree._encode(data, reporter).join();\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n base.Node.call(this, 'der', parent);\n}\ninherits(DERNode, base.Node);\n\nDERNode.prototype._encodeComposite = function encodeComposite(tag,\n primitive,\n cls,\n content) {\n var encodedTag = encodeTag(tag, primitive, cls, this.reporter);\n\n // Short form\n if (content.length < 0x80) {\n var header = new Buffer(2);\n header[0] = encodedTag;\n header[1] = content.length;\n return this._createEncoderBuffer([ header, content ]);\n }\n\n // Long form\n // Count octets required to store length\n var lenOctets = 1;\n for (var i = content.length; i >= 0x100; i >>= 8)\n lenOctets++;\n\n var header = new Buffer(1 + 1 + lenOctets);\n header[0] = encodedTag;\n header[1] = 0x80 | lenOctets;\n\n for (var i = 1 + lenOctets, j = content.length; j > 0; i--, j >>= 8)\n header[i] = j & 0xff;\n\n return this._createEncoderBuffer([ header, content ]);\n};\n\nDERNode.prototype._encodeStr = function encodeStr(str, tag) {\n if (tag === 'bitstr') {\n return this._createEncoderBuffer([ str.unused | 0, str.data ]);\n } else if (tag === 'bmpstr') {\n var buf = new Buffer(str.length * 2);\n for (var i = 0; i < str.length; i++) {\n buf.writeUInt16BE(str.charCodeAt(i), i * 2);\n }\n return this._createEncoderBuffer(buf);\n } else if (tag === 'numstr') {\n if (!this._isNumstr(str)) {\n return this.reporter.error('Encoding of string type: numstr supports ' +\n 'only digits and space');\n }\n return this._createEncoderBuffer(str);\n } else if (tag === 'printstr') {\n if (!this._isPrintstr(str)) {\n return this.reporter.error('Encoding of string type: printstr supports ' +\n 'only latin upper and lower case letters, ' +\n 'digits, space, apostrophe, left and rigth ' +\n 'parenthesis, plus sign, comma, hyphen, ' +\n 'dot, slash, colon, equal sign, ' +\n 'question mark');\n }\n return this._createEncoderBuffer(str);\n } else if (/str$/.test(tag)) {\n return this._createEncoderBuffer(str);\n } else if (tag === 'objDesc') {\n return this._createEncoderBuffer(str);\n } else {\n return this.reporter.error('Encoding of string type: ' + tag +\n ' unsupported');\n }\n};\n\nDERNode.prototype._encodeObjid = function encodeObjid(id, values, relative) {\n if (typeof id === 'string') {\n if (!values)\n return this.reporter.error('string objid given, but no values map found');\n if (!values.hasOwnProperty(id))\n return this.reporter.error('objid not found in values map');\n id = values[id].split(/[\\s\\.]+/g);\n for (var i = 0; i < id.length; i++)\n id[i] |= 0;\n } else if (Array.isArray(id)) {\n id = id.slice();\n for (var i = 0; i < id.length; i++)\n id[i] |= 0;\n }\n\n if (!Array.isArray(id)) {\n return this.reporter.error('objid() should be either array or string, ' +\n 'got: ' + JSON.stringify(id));\n }\n\n if (!relative) {\n if (id[1] >= 40)\n return this.reporter.error('Second objid identifier OOB');\n id.splice(0, 2, id[0] * 40 + id[1]);\n }\n\n // Count number of octets\n var size = 0;\n for (var i = 0; i < id.length; i++) {\n var ident = id[i];\n for (size++; ident >= 0x80; ident >>= 7)\n size++;\n }\n\n var objid = new Buffer(size);\n var offset = objid.length - 1;\n for (var i = id.length - 1; i >= 0; i--) {\n var ident = id[i];\n objid[offset--] = ident & 0x7f;\n while ((ident >>= 7) > 0)\n objid[offset--] = 0x80 | (ident & 0x7f);\n }\n\n return this._createEncoderBuffer(objid);\n};\n\nfunction two(num) {\n if (num < 10)\n return '0' + num;\n else\n return num;\n}\n\nDERNode.prototype._encodeTime = function encodeTime(time, tag) {\n var str;\n var date = new Date(time);\n\n if (tag === 'gentime') {\n str = [\n two(date.getFullYear()),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else if (tag === 'utctime') {\n str = [\n two(date.getFullYear() % 100),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else {\n this.reporter.error('Encoding ' + tag + ' time is not supported yet');\n }\n\n return this._encodeStr(str, 'octstr');\n};\n\nDERNode.prototype._encodeNull = function encodeNull() {\n return this._createEncoderBuffer('');\n};\n\nDERNode.prototype._encodeInt = function encodeInt(num, values) {\n if (typeof num === 'string') {\n if (!values)\n return this.reporter.error('String int or enum given, but no values map');\n if (!values.hasOwnProperty(num)) {\n return this.reporter.error('Values map doesn\\'t contain: ' +\n JSON.stringify(num));\n }\n num = values[num];\n }\n\n // Bignum, assume big endian\n if (typeof num !== 'number' && !Buffer.isBuffer(num)) {\n var numArray = num.toArray();\n if (!num.sign && numArray[0] & 0x80) {\n numArray.unshift(0);\n }\n num = new Buffer(numArray);\n }\n\n if (Buffer.isBuffer(num)) {\n var size = num.length;\n if (num.length === 0)\n size++;\n\n var out = new Buffer(size);\n num.copy(out);\n if (num.length === 0)\n out[0] = 0\n return this._createEncoderBuffer(out);\n }\n\n if (num < 0x80)\n return this._createEncoderBuffer(num);\n\n if (num < 0x100)\n return this._createEncoderBuffer([0, num]);\n\n var size = 1;\n for (var i = num; i >= 0x100; i >>= 8)\n size++;\n\n var out = new Array(size);\n for (var i = out.length - 1; i >= 0; i--) {\n out[i] = num & 0xff;\n num >>= 8;\n }\n if(out[0] & 0x80) {\n out.unshift(0);\n }\n\n return this._createEncoderBuffer(new Buffer(out));\n};\n\nDERNode.prototype._encodeBool = function encodeBool(value) {\n return this._createEncoderBuffer(value ? 0xff : 0);\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getEncoder('der').tree;\n};\n\nDERNode.prototype._skipDefault = function skipDefault(dataBuffer, reporter, parent) {\n var state = this._baseState;\n var i;\n if (state['default'] === null)\n return false;\n\n var data = dataBuffer.join();\n if (state.defaultBuffer === undefined)\n state.defaultBuffer = this._encodeValue(state['default'], reporter, parent).join();\n\n if (data.length !== state.defaultBuffer.length)\n return false;\n\n for (i=0; i < data.length; i++)\n if (data[i] !== state.defaultBuffer[i])\n return false;\n\n return true;\n};\n\n// Utility methods\n\nfunction encodeTag(tag, primitive, cls, reporter) {\n var res;\n\n if (tag === 'seqof')\n tag = 'seq';\n else if (tag === 'setof')\n tag = 'set';\n\n if (der.tagByName.hasOwnProperty(tag))\n res = der.tagByName[tag];\n else if (typeof tag === 'number' && (tag | 0) === tag)\n res = tag;\n else\n return reporter.error('Unknown tag: ' + tag);\n\n if (res >= 0x1f)\n return reporter.error('Multi-octet tag encoding unsupported');\n\n if (!primitive)\n res |= 0x20;\n\n res |= (der.tagClassByName[cls || 'universal'] << 6);\n\n return res;\n}\n","var inherits = require('inherits');\n\nvar DEREncoder = require('./der');\n\nfunction PEMEncoder(entity) {\n DEREncoder.call(this, entity);\n this.enc = 'pem';\n};\ninherits(PEMEncoder, DEREncoder);\nmodule.exports = PEMEncoder;\n\nPEMEncoder.prototype.encode = function encode(data, options) {\n var buf = DEREncoder.prototype.encode.call(this, data);\n\n var p = buf.toString('base64');\n var out = [ '-----BEGIN ' + options.label + '-----' ];\n for (var i = 0; i < p.length; i += 64)\n out.push(p.slice(i, i + 64));\n out.push('-----END ' + options.label + '-----');\n return out.join('\\n');\n};\n","var encoders = exports;\n\nencoders.der = require('./der');\nencoders.pem = require('./pem');\n","var asn1 = exports;\n\nasn1.bignum = require('bn.js');\n\nasn1.define = require('./asn1/api').define;\nasn1.base = require('./asn1/base');\nasn1.constants = require('./asn1/constants');\nasn1.decoders = require('./asn1/decoders');\nasn1.encoders = require('./asn1/encoders');\n","// from https://github.com/Rantanen/node-dtls/blob/25a7dc861bda38cfeac93a723500eea4f0ac2e86/Certificate.js\n// thanks to @Rantanen\n\n'use strict';\n\nvar asn = require('asn1.js');\n\nvar Time = asn.define('Time', function () {\n\tthis.choice({\n\t\tutcTime: this.utctime(),\n\t\tgeneralTime: this.gentime()\n\t});\n});\n\nvar AttributeTypeValue = asn.define('AttributeTypeValue', function () {\n\tthis.seq().obj(\n\t\tthis.key('type').objid(),\n\t\tthis.key('value').any()\n\t);\n});\n\nvar AlgorithmIdentifier = asn.define('AlgorithmIdentifier', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').objid(),\n\t\tthis.key('parameters').optional(),\n\t\tthis.key('curve').objid().optional()\n\t);\n});\n\nvar SubjectPublicKeyInfo = asn.define('SubjectPublicKeyInfo', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').use(AlgorithmIdentifier),\n\t\tthis.key('subjectPublicKey').bitstr()\n\t);\n});\n\nvar RelativeDistinguishedName = asn.define('RelativeDistinguishedName', function () {\n\tthis.setof(AttributeTypeValue);\n});\n\nvar RDNSequence = asn.define('RDNSequence', function () {\n\tthis.seqof(RelativeDistinguishedName);\n});\n\nvar Name = asn.define('Name', function () {\n\tthis.choice({\n\t\trdnSequence: this.use(RDNSequence)\n\t});\n});\n\nvar Validity = asn.define('Validity', function () {\n\tthis.seq().obj(\n\t\tthis.key('notBefore').use(Time),\n\t\tthis.key('notAfter').use(Time)\n\t);\n});\n\nvar Extension = asn.define('Extension', function () {\n\tthis.seq().obj(\n\t\tthis.key('extnID').objid(),\n\t\tthis.key('critical').bool().def(false),\n\t\tthis.key('extnValue').octstr()\n\t);\n});\n\nvar TBSCertificate = asn.define('TBSCertificate', function () {\n\tthis.seq().obj(\n\t\tthis.key('version').explicit(0)['int']().optional(),\n\t\tthis.key('serialNumber')['int'](),\n\t\tthis.key('signature').use(AlgorithmIdentifier),\n\t\tthis.key('issuer').use(Name),\n\t\tthis.key('validity').use(Validity),\n\t\tthis.key('subject').use(Name),\n\t\tthis.key('subjectPublicKeyInfo').use(SubjectPublicKeyInfo),\n\t\tthis.key('issuerUniqueID').implicit(1).bitstr().optional(),\n\t\tthis.key('subjectUniqueID').implicit(2).bitstr().optional(),\n\t\tthis.key('extensions').explicit(3).seqof(Extension).optional()\n\t);\n});\n\nvar X509Certificate = asn.define('X509Certificate', function () {\n\tthis.seq().obj(\n\t\tthis.key('tbsCertificate').use(TBSCertificate),\n\t\tthis.key('signatureAlgorithm').use(AlgorithmIdentifier),\n\t\tthis.key('signatureValue').bitstr()\n\t);\n});\n\nmodule.exports = X509Certificate;\n","// from https://github.com/indutny/self-signed/blob/gh-pages/lib/asn1.js\n// Fedor, you are amazing.\n\n'use strict';\n\nvar asn1 = require('asn1.js');\n\nexports.certificate = require('./certificate');\n\nvar RSAPrivateKey = asn1.define('RSAPrivateKey', function () {\n\tthis.seq().obj(\n\t\tthis.key('version')['int'](),\n\t\tthis.key('modulus')['int'](),\n\t\tthis.key('publicExponent')['int'](),\n\t\tthis.key('privateExponent')['int'](),\n\t\tthis.key('prime1')['int'](),\n\t\tthis.key('prime2')['int'](),\n\t\tthis.key('exponent1')['int'](),\n\t\tthis.key('exponent2')['int'](),\n\t\tthis.key('coefficient')['int']()\n\t);\n});\nexports.RSAPrivateKey = RSAPrivateKey;\n\nvar RSAPublicKey = asn1.define('RSAPublicKey', function () {\n\tthis.seq().obj(\n\t\tthis.key('modulus')['int'](),\n\t\tthis.key('publicExponent')['int']()\n\t);\n});\nexports.RSAPublicKey = RSAPublicKey;\n\nvar AlgorithmIdentifier = asn1.define('AlgorithmIdentifier', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').objid(),\n\t\tthis.key('none').null_().optional(),\n\t\tthis.key('curve').objid().optional(),\n\t\tthis.key('params').seq().obj(\n\t\t\tthis.key('p')['int'](),\n\t\t\tthis.key('q')['int'](),\n\t\t\tthis.key('g')['int']()\n\t\t).optional()\n\t);\n});\n\nvar PublicKey = asn1.define('SubjectPublicKeyInfo', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').use(AlgorithmIdentifier),\n\t\tthis.key('subjectPublicKey').bitstr()\n\t);\n});\nexports.PublicKey = PublicKey;\n\nvar PrivateKeyInfo = asn1.define('PrivateKeyInfo', function () {\n\tthis.seq().obj(\n\t\tthis.key('version')['int'](),\n\t\tthis.key('algorithm').use(AlgorithmIdentifier),\n\t\tthis.key('subjectPrivateKey').octstr()\n\t);\n});\nexports.PrivateKey = PrivateKeyInfo;\nvar EncryptedPrivateKeyInfo = asn1.define('EncryptedPrivateKeyInfo', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').seq().obj(\n\t\t\tthis.key('id').objid(),\n\t\t\tthis.key('decrypt').seq().obj(\n\t\t\t\tthis.key('kde').seq().obj(\n\t\t\t\t\tthis.key('id').objid(),\n\t\t\t\t\tthis.key('kdeparams').seq().obj(\n\t\t\t\t\t\tthis.key('salt').octstr(),\n\t\t\t\t\t\tthis.key('iters')['int']()\n\t\t\t\t\t)\n\t\t\t\t),\n\t\t\t\tthis.key('cipher').seq().obj(\n\t\t\t\t\tthis.key('algo').objid(),\n\t\t\t\t\tthis.key('iv').octstr()\n\t\t\t\t)\n\t\t\t)\n\t\t),\n\t\tthis.key('subjectPrivateKey').octstr()\n\t);\n});\n\nexports.EncryptedPrivateKey = EncryptedPrivateKeyInfo;\n\nvar DSAPrivateKey = asn1.define('DSAPrivateKey', function () {\n\tthis.seq().obj(\n\t\tthis.key('version')['int'](),\n\t\tthis.key('p')['int'](),\n\t\tthis.key('q')['int'](),\n\t\tthis.key('g')['int'](),\n\t\tthis.key('pub_key')['int'](),\n\t\tthis.key('priv_key')['int']()\n\t);\n});\nexports.DSAPrivateKey = DSAPrivateKey;\n\nexports.DSAparam = asn1.define('DSAparam', function () {\n\tthis['int']();\n});\n\nvar ECParameters = asn1.define('ECParameters', function () {\n\tthis.choice({\n\t\tnamedCurve: this.objid()\n\t});\n});\n\nvar ECPrivateKey = asn1.define('ECPrivateKey', function () {\n\tthis.seq().obj(\n\t\tthis.key('version')['int'](),\n\t\tthis.key('privateKey').octstr(),\n\t\tthis.key('parameters').optional().explicit(0).use(ECParameters),\n\t\tthis.key('publicKey').optional().explicit(1).bitstr()\n\t);\n});\nexports.ECPrivateKey = ECPrivateKey;\n\nexports.signature = asn1.define('signature', function () {\n\tthis.seq().obj(\n\t\tthis.key('r')['int'](),\n\t\tthis.key('s')['int']()\n\t);\n});\n","'use strict';\n\n// adapted from https://github.com/apatil/pemstrip\nvar findProc = /Proc-Type: 4,ENCRYPTED[\\n\\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\\n\\r]+([0-9A-z\\n\\r+/=]+)[\\n\\r]+/m;\nvar startRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m;\nvar fullRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\\n\\r+/=]+)-----END \\1-----$/m;\nvar evp = require('evp_bytestokey');\nvar ciphers = require('browserify-aes');\nvar Buffer = require('safe-buffer').Buffer;\nmodule.exports = function (okey, password) {\n\tvar key = okey.toString();\n\tvar match = key.match(findProc);\n\tvar decrypted;\n\tif (!match) {\n\t\tvar match2 = key.match(fullRegex);\n\t\tdecrypted = Buffer.from(match2[2].replace(/[\\r\\n]/g, ''), 'base64');\n\t} else {\n\t\tvar suite = 'aes' + match[1];\n\t\tvar iv = Buffer.from(match[2], 'hex');\n\t\tvar cipherText = Buffer.from(match[3].replace(/[\\r\\n]/g, ''), 'base64');\n\t\tvar cipherKey = evp(password, iv.slice(0, 8), parseInt(match[1], 10)).key;\n\t\tvar out = [];\n\t\tvar cipher = ciphers.createDecipheriv(suite, cipherKey, iv);\n\t\tout.push(cipher.update(cipherText));\n\t\tout.push(cipher['final']());\n\t\tdecrypted = Buffer.concat(out);\n\t}\n\tvar tag = key.match(startRegex)[1];\n\treturn {\n\t\ttag: tag,\n\t\tdata: decrypted\n\t};\n};\n","'use strict';\n\nvar asn1 = require('./asn1');\nvar aesid = require('./aesid.json');\nvar fixProc = require('./fixProc');\nvar ciphers = require('browserify-aes');\nvar compat = require('pbkdf2');\nvar Buffer = require('safe-buffer').Buffer;\n\nfunction decrypt(data, password) {\n\tvar salt = data.algorithm.decrypt.kde.kdeparams.salt;\n\tvar iters = parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(), 10);\n\tvar algo = aesid[data.algorithm.decrypt.cipher.algo.join('.')];\n\tvar iv = data.algorithm.decrypt.cipher.iv;\n\tvar cipherText = data.subjectPrivateKey;\n\tvar keylen = parseInt(algo.split('-')[1], 10) / 8;\n\tvar key = compat.pbkdf2Sync(password, salt, iters, keylen, 'sha1');\n\tvar cipher = ciphers.createDecipheriv(algo, key, iv);\n\tvar out = [];\n\tout.push(cipher.update(cipherText));\n\tout.push(cipher['final']());\n\treturn Buffer.concat(out);\n}\n\nfunction parseKeys(buffer) {\n\tvar password;\n\tif (typeof buffer === 'object' && !Buffer.isBuffer(buffer)) {\n\t\tpassword = buffer.passphrase;\n\t\tbuffer = buffer.key;\n\t}\n\tif (typeof buffer === 'string') {\n\t\tbuffer = Buffer.from(buffer);\n\t}\n\n\tvar stripped = fixProc(buffer, password);\n\n\tvar type = stripped.tag;\n\tvar data = stripped.data;\n\tvar subtype, ndata;\n\tswitch (type) {\n\t\tcase 'CERTIFICATE':\n\t\t\tndata = asn1.certificate.decode(data, 'der').tbsCertificate.subjectPublicKeyInfo;\n\t\t\t// falls through\n\t\tcase 'PUBLIC KEY':\n\t\t\tif (!ndata) {\n\t\t\t\tndata = asn1.PublicKey.decode(data, 'der');\n\t\t\t}\n\t\t\tsubtype = ndata.algorithm.algorithm.join('.');\n\t\t\tswitch (subtype) {\n\t\t\t\tcase '1.2.840.113549.1.1.1':\n\t\t\t\t\treturn asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data, 'der');\n\t\t\t\tcase '1.2.840.10045.2.1':\n\t\t\t\t\tndata.subjectPrivateKey = ndata.subjectPublicKey;\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: 'ec',\n\t\t\t\t\t\tdata: ndata\n\t\t\t\t\t};\n\t\t\t\tcase '1.2.840.10040.4.1':\n\t\t\t\t\tndata.algorithm.params.pub_key = asn1.DSAparam.decode(ndata.subjectPublicKey.data, 'der');\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: 'dsa',\n\t\t\t\t\t\tdata: ndata.algorithm.params\n\t\t\t\t\t};\n\t\t\t\tdefault: throw new Error('unknown key id ' + subtype);\n\t\t\t}\n\t\t\t// throw new Error('unknown key type ' + type)\n\t\tcase 'ENCRYPTED PRIVATE KEY':\n\t\t\tdata = asn1.EncryptedPrivateKey.decode(data, 'der');\n\t\t\tdata = decrypt(data, password);\n\t\t\t// falls through\n\t\tcase 'PRIVATE KEY':\n\t\t\tndata = asn1.PrivateKey.decode(data, 'der');\n\t\t\tsubtype = ndata.algorithm.algorithm.join('.');\n\t\t\tswitch (subtype) {\n\t\t\t\tcase '1.2.840.113549.1.1.1':\n\t\t\t\t\treturn asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey, 'der');\n\t\t\t\tcase '1.2.840.10045.2.1':\n\t\t\t\t\treturn {\n\t\t\t\t\t\tcurve: ndata.algorithm.curve,\n\t\t\t\t\t\tprivateKey: asn1.ECPrivateKey.decode(ndata.subjectPrivateKey, 'der').privateKey\n\t\t\t\t\t};\n\t\t\t\tcase '1.2.840.10040.4.1':\n\t\t\t\t\tndata.algorithm.params.priv_key = asn1.DSAparam.decode(ndata.subjectPrivateKey, 'der');\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: 'dsa',\n\t\t\t\t\t\tparams: ndata.algorithm.params\n\t\t\t\t\t};\n\t\t\t\tdefault: throw new Error('unknown key id ' + subtype);\n\t\t\t}\n\t\t\t// throw new Error('unknown key type ' + type)\n\t\tcase 'RSA PUBLIC KEY':\n\t\t\treturn asn1.RSAPublicKey.decode(data, 'der');\n\t\tcase 'RSA PRIVATE KEY':\n\t\t\treturn asn1.RSAPrivateKey.decode(data, 'der');\n\t\tcase 'DSA PRIVATE KEY':\n\t\t\treturn {\n\t\t\t\ttype: 'dsa',\n\t\t\t\tparams: asn1.DSAPrivateKey.decode(data, 'der')\n\t\t\t};\n\t\tcase 'EC PRIVATE KEY':\n\t\t\tdata = asn1.ECPrivateKey.decode(data, 'der');\n\t\t\treturn {\n\t\t\t\tcurve: data.parameters.value,\n\t\t\t\tprivateKey: data.privateKey\n\t\t\t};\n\t\tdefault: throw new Error('unknown key type ' + type);\n\t}\n}\nparseKeys.signature = asn1.signature;\n\nmodule.exports = parseKeys;\n","'use strict';\n\n// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer;\nvar createHmac = require('create-hmac');\nvar crt = require('browserify-rsa');\nvar EC = require('elliptic').ec;\nvar BN = require('bn.js');\nvar parseKeys = require('parse-asn1');\nvar curves = require('./curves.json');\n\nvar RSA_PKCS1_PADDING = 1;\n\nfunction sign(hash, key, hashType, signType, tag) {\n var priv = parseKeys(key);\n if (priv.curve) {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong private key type'); }\n return ecSign(hash, priv);\n } else if (priv.type === 'dsa') {\n if (signType !== 'dsa') { throw new Error('wrong private key type'); }\n return dsaSign(hash, priv, hashType);\n }\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong private key type'); }\n if (key.padding !== undefined && key.padding !== RSA_PKCS1_PADDING) { throw new Error('illegal or unsupported padding mode'); }\n\n hash = Buffer.concat([tag, hash]);\n var len = priv.modulus.byteLength();\n var pad = [0, 1];\n while (hash.length + pad.length + 1 < len) { pad.push(0xff); }\n pad.push(0x00);\n var i = -1;\n while (++i < hash.length) { pad.push(hash[i]); }\n\n var out = crt(pad, priv);\n return out;\n}\n\nfunction ecSign(hash, priv) {\n var curveId = curves[priv.curve.join('.')];\n if (!curveId) { throw new Error('unknown curve ' + priv.curve.join('.')); }\n\n var curve = new EC(curveId);\n var key = curve.keyFromPrivate(priv.privateKey);\n var out = key.sign(hash);\n\n return Buffer.from(out.toDER());\n}\n\nfunction dsaSign(hash, priv, algo) {\n var x = priv.params.priv_key;\n var p = priv.params.p;\n var q = priv.params.q;\n var g = priv.params.g;\n var r = new BN(0);\n var k;\n var H = bits2int(hash, q).mod(q);\n var s = false;\n var kv = getKey(x, q, hash, algo);\n while (s === false) {\n k = makeKey(q, kv, algo);\n r = makeR(g, k, p, q);\n s = k.invm(q).imul(H.add(x.mul(r))).mod(q);\n if (s.cmpn(0) === 0) {\n s = false;\n r = new BN(0);\n }\n }\n return toDER(r, s);\n}\n\nfunction toDER(r, s) {\n r = r.toArray();\n s = s.toArray();\n\n // Pad values\n if (r[0] & 0x80) { r = [0].concat(r); }\n if (s[0] & 0x80) { s = [0].concat(s); }\n\n var total = r.length + s.length + 4;\n var res = [\n 0x30, total, 0x02, r.length\n ];\n res = res.concat(r, [0x02, s.length], s);\n return Buffer.from(res);\n}\n\nfunction getKey(x, q, hash, algo) {\n x = Buffer.from(x.toArray());\n if (x.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - x.length);\n x = Buffer.concat([zeros, x]);\n }\n var hlen = hash.length;\n var hbits = bits2octets(hash, q);\n var v = Buffer.alloc(hlen);\n v.fill(1);\n var k = Buffer.alloc(hlen);\n k = createHmac(algo, k).update(v).update(Buffer.from([0])).update(x).update(hbits).digest();\n v = createHmac(algo, k).update(v).digest();\n k = createHmac(algo, k).update(v).update(Buffer.from([1])).update(x).update(hbits).digest();\n v = createHmac(algo, k).update(v).digest();\n return { k: k, v: v };\n}\n\nfunction bits2int(obits, q) {\n var bits = new BN(obits);\n var shift = (obits.length << 3) - q.bitLength();\n if (shift > 0) { bits.ishrn(shift); }\n return bits;\n}\n\nfunction bits2octets(bits, q) {\n bits = bits2int(bits, q);\n bits = bits.mod(q);\n var out = Buffer.from(bits.toArray());\n if (out.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - out.length);\n out = Buffer.concat([zeros, out]);\n }\n return out;\n}\n\nfunction makeKey(q, kv, algo) {\n var t;\n var k;\n\n do {\n t = Buffer.alloc(0);\n\n while (t.length * 8 < q.bitLength()) {\n kv.v = createHmac(algo, kv.k).update(kv.v).digest();\n t = Buffer.concat([t, kv.v]);\n }\n\n k = bits2int(t, q);\n kv.k = createHmac(algo, kv.k).update(kv.v).update(Buffer.from([0])).digest();\n kv.v = createHmac(algo, kv.k).update(kv.v).digest();\n } while (k.cmp(q) !== -1);\n\n return k;\n}\n\nfunction makeR(g, k, p, q) {\n return g.toRed(BN.mont(p)).redPow(k).fromRed().mod(q);\n}\n\nmodule.exports = sign;\nmodule.exports.getKey = getKey;\nmodule.exports.makeKey = makeKey;\n","'use strict';\n\n// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer;\nvar BN = require('bn.js');\nvar EC = require('elliptic').ec;\nvar parseKeys = require('parse-asn1');\nvar curves = require('./curves.json');\n\nfunction verify(sig, hash, key, signType, tag) {\n var pub = parseKeys(key);\n if (pub.type === 'ec') {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong public key type'); }\n return ecVerify(sig, hash, pub);\n } else if (pub.type === 'dsa') {\n if (signType !== 'dsa') { throw new Error('wrong public key type'); }\n return dsaVerify(sig, hash, pub);\n }\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong public key type'); }\n\n hash = Buffer.concat([tag, hash]);\n var len = pub.modulus.byteLength();\n var pad = [1];\n var padNum = 0;\n while (hash.length + pad.length + 2 < len) {\n pad.push(0xff);\n padNum += 1;\n }\n pad.push(0x00);\n var i = -1;\n while (++i < hash.length) {\n pad.push(hash[i]);\n }\n pad = Buffer.from(pad);\n var red = BN.mont(pub.modulus);\n sig = new BN(sig).toRed(red);\n\n sig = sig.redPow(new BN(pub.publicExponent));\n sig = Buffer.from(sig.fromRed().toArray());\n var out = padNum < 8 ? 1 : 0;\n len = Math.min(sig.length, pad.length);\n if (sig.length !== pad.length) { out = 1; }\n\n i = -1;\n while (++i < len) { out |= sig[i] ^ pad[i]; }\n return out === 0;\n}\n\nfunction ecVerify(sig, hash, pub) {\n var curveId = curves[pub.data.algorithm.curve.join('.')];\n if (!curveId) { throw new Error('unknown curve ' + pub.data.algorithm.curve.join('.')); }\n\n var curve = new EC(curveId);\n var pubkey = pub.data.subjectPrivateKey.data;\n\n return curve.verify(hash, sig, pubkey);\n}\n\nfunction dsaVerify(sig, hash, pub) {\n var p = pub.data.p;\n var q = pub.data.q;\n var g = pub.data.g;\n var y = pub.data.pub_key;\n var unpacked = parseKeys.signature.decode(sig, 'der');\n var s = unpacked.s;\n var r = unpacked.r;\n checkValue(s, q);\n checkValue(r, q);\n var montp = BN.mont(p);\n var w = s.invm(q);\n var v = g.toRed(montp)\n .redPow(new BN(hash).mul(w).mod(q))\n .fromRed()\n .mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed())\n .mod(p)\n .mod(q);\n return v.cmp(r) === 0;\n}\n\nfunction checkValue(b, q) {\n if (b.cmpn(0) <= 0) { throw new Error('invalid sig'); }\n if (b.cmp(q) >= 0) { throw new Error('invalid sig'); }\n}\n\nmodule.exports = verify;\n","'use strict';\n\nvar Buffer = require('safe-buffer').Buffer;\nvar createHash = require('create-hash');\nvar stream = require('readable-stream');\nvar inherits = require('inherits');\nvar sign = require('./sign');\nvar verify = require('./verify');\n\nvar algorithms = require('./algorithms.json');\nObject.keys(algorithms).forEach(function (key) {\n algorithms[key].id = Buffer.from(algorithms[key].id, 'hex');\n algorithms[key.toLowerCase()] = algorithms[key];\n});\n\nfunction Sign(algorithm) {\n stream.Writable.call(this);\n\n var data = algorithms[algorithm];\n if (!data) { throw new Error('Unknown message digest'); }\n\n this._hashType = data.hash;\n this._hash = createHash(data.hash);\n this._tag = data.id;\n this._signType = data.sign;\n}\ninherits(Sign, stream.Writable);\n\nSign.prototype._write = function _write(data, _, done) {\n this._hash.update(data);\n done();\n};\n\nSign.prototype.update = function update(data, enc) {\n this._hash.update(typeof data === 'string' ? Buffer.from(data, enc) : data);\n\n return this;\n};\n\nSign.prototype.sign = function signMethod(key, enc) {\n this.end();\n var hash = this._hash.digest();\n var sig = sign(hash, key, this._hashType, this._signType, this._tag);\n\n return enc ? sig.toString(enc) : sig;\n};\n\nfunction Verify(algorithm) {\n stream.Writable.call(this);\n\n var data = algorithms[algorithm];\n if (!data) { throw new Error('Unknown message digest'); }\n\n this._hash = createHash(data.hash);\n this._tag = data.id;\n this._signType = data.sign;\n}\ninherits(Verify, stream.Writable);\n\nVerify.prototype._write = function _write(data, _, done) {\n this._hash.update(data);\n done();\n};\n\nVerify.prototype.update = function update(data, enc) {\n this._hash.update(typeof data === 'string' ? Buffer.from(data, enc) : data);\n\n return this;\n};\n\nVerify.prototype.verify = function verifyMethod(key, sig, enc) {\n var sigBuffer = typeof sig === 'string' ? Buffer.from(sig, enc) : sig;\n\n this.end();\n var hash = this._hash.digest();\n return verify(sigBuffer, hash, key, this._signType, this._tag);\n};\n\nfunction createSign(algorithm) {\n return new Sign(algorithm);\n}\n\nfunction createVerify(algorithm) {\n return new Verify(algorithm);\n}\n\nmodule.exports = {\n Sign: createSign,\n Verify: createVerify,\n createSign: createSign,\n createVerify: createVerify\n};\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\n\nvar utils = exports;\nvar BN = require('bn.js');\nvar minAssert = require('minimalistic-assert');\nvar minUtils = require('minimalistic-crypto-utils');\n\nutils.assert = minAssert;\nutils.toArray = minUtils.toArray;\nutils.zero2 = minUtils.zero2;\nutils.toHex = minUtils.toHex;\nutils.encode = minUtils.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n naf.fill(0);\n\n var ws = 1 << (w + 1);\n var k = num.clone();\n\n for (var i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n [],\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n var m8;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n var j;\n var nafW;\n for (j = 0; j < naf.length; j += doubles.step) {\n nafW = 0;\n for (var l = j + doubles.step - 1; l >= j; l--)\n nafW = (nafW << 1) + naf[l];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (j = 0; j < repr.length; j++) {\n nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var l = 0; i >= 0 && naf[i] === 0; i--)\n l++;\n if (i >= 0)\n l++;\n acc = acc.dblp(l);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n var i;\n var j;\n var p;\n for (i = 0; i < len; i++) {\n p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b], /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3, /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (j = 0; j < len; j++) {\n var z = tmp[j];\n p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len));\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null,\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles,\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res,\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction ShortCurve(conf) {\n Base.call(this, 'short', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n\n // If the curve is endomorphic, precalculate beta and lambda\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits(ShortCurve, Base);\nmodule.exports = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n\n // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n // Choose the smallest beta\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n\n // Get basis vectors, used for balanced length-two representation\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16),\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis,\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [ l1, l2 ];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n\n // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1);\n\n // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n var a0;\n var b0;\n // First vector\n var a1;\n var b1;\n // Second vector\n var a2;\n var b2;\n\n var prevR;\n var i = 0;\n var r;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r;\n\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r.neg();\n b2 = x;\n\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n\n // Normalize signs\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 },\n ];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n\n // Calculate answer\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1: k1, k2: k2 };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf)\n return true;\n\n var x = point.x;\n var y = point.y;\n\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd =\n function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n\n // Clean-up references to points and coefficients\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n };\n\nfunction Point(curve, x, y, isRed) {\n Base.BasePoint.call(this, curve, 'affine');\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n // Force redgomery representation when loading from JSON\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits(Point, Base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo)\n return;\n\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul),\n },\n };\n }\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [ this.x, this.y ];\n\n return [ this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1),\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1),\n },\n } ];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string')\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [ res ].concat(pre.doubles.points.map(obj2point)),\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [ res ].concat(pre.naf.points.map(obj2point)),\n },\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf)\n return p;\n\n // P + O = P\n if (p.inf)\n return this;\n\n // P + P = 2P\n if (this.eq(p))\n return this.dbl();\n\n // P + (-P) = O\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n\n // P + Q = O\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n\n // 2P = O\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n\n var a = this.curve.a;\n\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([ this ], [ k ]);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p ||\n this.inf === p.inf &&\n (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate),\n },\n };\n }\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n Base.BasePoint.call(this, curve, 'jacobian');\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n\n this.zOne = this.z === this.curve.one;\n}\ninherits(JPoint, Base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity())\n return p;\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 12M + 4S + 7A\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity())\n return p.toJ();\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 8M + 3S + 7A\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n\n var i;\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n for (i = 0; i < pow; i++)\n r = r.dbl();\n return r;\n }\n\n // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n // Reuse results\n var jyd = jy.redAdd(jy);\n for (i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // T = M ^ 2 - 2*S\n var t = m.redSqr().redISub(s).redISub(s);\n\n // 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2*Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = B^2\n var c = b.redSqr();\n // D = 2 * ((X1 + B)^2 - A - C)\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n // E = 3 * A\n var e = a.redAdd(a).redIAdd(a);\n // F = E^2\n var f = e.redSqr();\n\n // 8 * C\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n\n // X3 = F - 2 * D\n nx = f.redISub(d).redISub(d);\n // Y3 = E * (D - X3) - 8 * C\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n // Z3 = 2 * Y1 * Z1\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n // T = M^2 - 2 * S\n var t = m.redSqr().redISub(s).redISub(s);\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2 * Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n\n // delta = Z1^2\n var delta = this.z.redSqr();\n // gamma = Y1^2\n var gamma = this.y.redSqr();\n // beta = X1 * gamma\n var beta = this.x.redMul(gamma);\n // alpha = 3 * (X1 - delta) * (X1 + delta)\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n // X3 = alpha^2 - 8 * beta\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n // Z3 = (Y1 + Z1)^2 - gamma - delta\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n\n // 4M + 6S + 10A\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // ZZ = Z1^2\n var zz = this.z.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // M = 3 * XX + a * ZZ2; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // MM = M^2\n var mm = m.redSqr();\n // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n // EE = E^2\n var ee = e.redSqr();\n // T = 16*YYYY\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n // U = (M + E)^2 - MM - EE - T\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n // X3 = 4 * (X1 * EE - 4 * YY * U)\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n // Z3 = (Z1 + E)^2 - ZZ - EE\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine')\n return this.eq(p.toJ());\n\n if (this === p)\n return true;\n\n // x1 * z2^2 == x2 * z1^2\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n\n // y1 * z2^3 == y2 * z1^3\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar utils = require('../utils');\n\nfunction MontCurve(conf) {\n Base.call(this, 'mont', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.i4 = new BN(4).toRed(this.red).redInvm();\n this.two = new BN(2).toRed(this.red);\n this.a24 = this.i4.redMul(this.a.redAdd(this.two));\n}\ninherits(MontCurve, Base);\nmodule.exports = MontCurve;\n\nMontCurve.prototype.validate = function validate(point) {\n var x = point.normalize().x;\n var x2 = x.redSqr();\n var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);\n var y = rhs.redSqrt();\n\n return y.redSqr().cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, z) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && z === null) {\n this.x = this.curve.one;\n this.z = this.curve.zero;\n } else {\n this.x = new BN(x, 16);\n this.z = new BN(z, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n }\n}\ninherits(Point, Base.BasePoint);\n\nMontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n return this.point(utils.toArray(bytes, enc), 1);\n};\n\nMontCurve.prototype.point = function point(x, z) {\n return new Point(this, x, z);\n};\n\nMontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nPoint.prototype.precompute = function precompute() {\n // No-op\n};\n\nPoint.prototype._encode = function _encode() {\n return this.getX().toArray('be', this.curve.p.byteLength());\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1] || curve.one);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n\nPoint.prototype.dbl = function dbl() {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-1987-m-3\n // 2M + 2S + 4A\n\n // A = X1 + Z1\n var a = this.x.redAdd(this.z);\n // AA = A^2\n var aa = a.redSqr();\n // B = X1 - Z1\n var b = this.x.redSub(this.z);\n // BB = B^2\n var bb = b.redSqr();\n // C = AA - BB\n var c = aa.redSub(bb);\n // X3 = AA * BB\n var nx = aa.redMul(bb);\n // Z3 = C * (BB + A24 * C)\n var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.add = function add() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.diffAdd = function diffAdd(p, diff) {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-1987-m-3\n // 4M + 2S + 6A\n\n // A = X2 + Z2\n var a = this.x.redAdd(this.z);\n // B = X2 - Z2\n var b = this.x.redSub(this.z);\n // C = X3 + Z3\n var c = p.x.redAdd(p.z);\n // D = X3 - Z3\n var d = p.x.redSub(p.z);\n // DA = D * A\n var da = d.redMul(a);\n // CB = C * B\n var cb = c.redMul(b);\n // X5 = Z1 * (DA + CB)^2\n var nx = diff.z.redMul(da.redAdd(cb).redSqr());\n // Z5 = X1 * (DA - CB)^2\n var nz = diff.x.redMul(da.redISub(cb).redSqr());\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.mul = function mul(k) {\n var t = k.clone();\n var a = this; // (N / 2) * Q + Q\n var b = this.curve.point(null, null); // (N / 2) * Q\n var c = this; // Q\n\n for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1))\n bits.push(t.andln(1));\n\n for (var i = bits.length - 1; i >= 0; i--) {\n if (bits[i] === 0) {\n // N * Q + Q = ((N / 2) * Q + Q)) + (N / 2) * Q\n a = a.diffAdd(b, c);\n // N * Q = 2 * ((N / 2) * Q + Q))\n b = b.dbl();\n } else {\n // N * Q = ((N / 2) * Q + Q) + ((N / 2) * Q)\n b = a.diffAdd(b, c);\n // N * Q + Q = 2 * ((N / 2) * Q + Q)\n a = a.dbl();\n }\n }\n return b;\n};\n\nPoint.prototype.mulAdd = function mulAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.jumlAdd = function jumlAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.eq = function eq(other) {\n return this.getX().cmp(other.getX()) === 0;\n};\n\nPoint.prototype.normalize = function normalize() {\n this.x = this.x.redMul(this.z.redInvm());\n this.z = this.curve.one;\n return this;\n};\n\nPoint.prototype.getX = function getX() {\n // Normalize coordinates\n this.normalize();\n\n return this.x.fromRed();\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction EdwardsCurve(conf) {\n // NOTE: Important as we are creating point in Base.call()\n this.twisted = (conf.a | 0) !== 1;\n this.mOneA = this.twisted && (conf.a | 0) === -1;\n this.extended = this.mOneA;\n\n Base.call(this, 'edwards', conf);\n\n this.a = new BN(conf.a, 16).umod(this.red.m);\n this.a = this.a.toRed(this.red);\n this.c = new BN(conf.c, 16).toRed(this.red);\n this.c2 = this.c.redSqr();\n this.d = new BN(conf.d, 16).toRed(this.red);\n this.dd = this.d.redAdd(this.d);\n\n assert(!this.twisted || this.c.fromRed().cmpn(1) === 0);\n this.oneC = (conf.c | 0) === 1;\n}\ninherits(EdwardsCurve, Base);\nmodule.exports = EdwardsCurve;\n\nEdwardsCurve.prototype._mulA = function _mulA(num) {\n if (this.mOneA)\n return num.redNeg();\n else\n return this.a.redMul(num);\n};\n\nEdwardsCurve.prototype._mulC = function _mulC(num) {\n if (this.oneC)\n return num;\n else\n return this.c.redMul(num);\n};\n\n// Just for compatibility with Short curve\nEdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {\n return this.point(x, y, z, t);\n};\n\nEdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var x2 = x.redSqr();\n var rhs = this.c2.redSub(this.a.redMul(x2));\n var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));\n\n var y2 = rhs.redMul(lhs.redInvm());\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {\n y = new BN(y, 16);\n if (!y.red)\n y = y.toRed(this.red);\n\n // x^2 = (y^2 - c^2) / (c^2 d y^2 - a)\n var y2 = y.redSqr();\n var lhs = y2.redSub(this.c2);\n var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a);\n var x2 = lhs.redMul(rhs.redInvm());\n\n if (x2.cmp(this.zero) === 0) {\n if (odd)\n throw new Error('invalid point');\n else\n return this.point(this.zero, y);\n }\n\n var x = x2.redSqrt();\n if (x.redSqr().redSub(x2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n if (x.fromRed().isOdd() !== odd)\n x = x.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.validate = function validate(point) {\n if (point.isInfinity())\n return true;\n\n // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2)\n point.normalize();\n\n var x2 = point.x.redSqr();\n var y2 = point.y.redSqr();\n var lhs = x2.redMul(this.a).redAdd(y2);\n var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));\n\n return lhs.cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, y, z, t) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && y === null && z === null) {\n this.x = this.curve.zero;\n this.y = this.curve.one;\n this.z = this.curve.one;\n this.t = this.curve.zero;\n this.zOne = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = z ? new BN(z, 16) : this.curve.one;\n this.t = t && new BN(t, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n if (this.t && !this.t.red)\n this.t = this.t.toRed(this.curve.red);\n this.zOne = this.z === this.curve.one;\n\n // Use extended coordinates\n if (this.curve.extended && !this.t) {\n this.t = this.x.redMul(this.y);\n if (!this.zOne)\n this.t = this.t.redMul(this.z.redInvm());\n }\n }\n}\ninherits(Point, Base.BasePoint);\n\nEdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nEdwardsCurve.prototype.point = function point(x, y, z, t) {\n return new Point(this, x, y, z, t);\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1], obj[2]);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.x.cmpn(0) === 0 &&\n (this.y.cmp(this.z) === 0 ||\n (this.zOne && this.y.cmp(this.curve.c) === 0));\n};\n\nPoint.prototype._extDbl = function _extDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #doubling-dbl-2008-hwcd\n // 4M + 4S\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = 2 * Z1^2\n var c = this.z.redSqr();\n c = c.redIAdd(c);\n // D = a * A\n var d = this.curve._mulA(a);\n // E = (X1 + Y1)^2 - A - B\n var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);\n // G = D + B\n var g = d.redAdd(b);\n // F = G - C\n var f = g.redSub(c);\n // H = D - B\n var h = d.redSub(b);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projDbl = function _projDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #doubling-dbl-2008-bbjlp\n // #doubling-dbl-2007-bl\n // and others\n // Generally 3M + 4S or 2M + 4S\n\n // B = (X1 + Y1)^2\n var b = this.x.redAdd(this.y).redSqr();\n // C = X1^2\n var c = this.x.redSqr();\n // D = Y1^2\n var d = this.y.redSqr();\n\n var nx;\n var ny;\n var nz;\n var e;\n var h;\n var j;\n if (this.curve.twisted) {\n // E = a * C\n e = this.curve._mulA(c);\n // F = E + D\n var f = e.redAdd(d);\n if (this.zOne) {\n // X3 = (B - C - D) * (F - 2)\n nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F^2 - 2 * F\n nz = f.redSqr().redSub(f).redSub(f);\n } else {\n // H = Z1^2\n h = this.z.redSqr();\n // J = F - 2 * H\n j = f.redSub(h).redISub(h);\n // X3 = (B-C-D)*J\n nx = b.redSub(c).redISub(d).redMul(j);\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F * J\n nz = f.redMul(j);\n }\n } else {\n // E = C + D\n e = c.redAdd(d);\n // H = (c * Z1)^2\n h = this.curve._mulC(this.z).redSqr();\n // J = E - 2 * H\n j = e.redSub(h).redSub(h);\n // X3 = c * (B - E) * J\n nx = this.curve._mulC(b.redISub(e)).redMul(j);\n // Y3 = c * E * (C - D)\n ny = this.curve._mulC(e).redMul(c.redISub(d));\n // Z3 = E * J\n nz = e.redMul(j);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n // Double in extended coordinates\n if (this.curve.extended)\n return this._extDbl();\n else\n return this._projDbl();\n};\n\nPoint.prototype._extAdd = function _extAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #addition-add-2008-hwcd-3\n // 8M\n\n // A = (Y1 - X1) * (Y2 - X2)\n var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));\n // B = (Y1 + X1) * (Y2 + X2)\n var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));\n // C = T1 * k * T2\n var c = this.t.redMul(this.curve.dd).redMul(p.t);\n // D = Z1 * 2 * Z2\n var d = this.z.redMul(p.z.redAdd(p.z));\n // E = B - A\n var e = b.redSub(a);\n // F = D - C\n var f = d.redSub(c);\n // G = D + C\n var g = d.redAdd(c);\n // H = B + A\n var h = b.redAdd(a);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projAdd = function _projAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #addition-add-2008-bbjlp\n // #addition-add-2007-bl\n // 10M + 1S\n\n // A = Z1 * Z2\n var a = this.z.redMul(p.z);\n // B = A^2\n var b = a.redSqr();\n // C = X1 * X2\n var c = this.x.redMul(p.x);\n // D = Y1 * Y2\n var d = this.y.redMul(p.y);\n // E = d * C * D\n var e = this.curve.d.redMul(c).redMul(d);\n // F = B - E\n var f = b.redSub(e);\n // G = B + E\n var g = b.redAdd(e);\n // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)\n var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);\n var nx = a.redMul(f).redMul(tmp);\n var ny;\n var nz;\n if (this.curve.twisted) {\n // Y3 = A * G * (D - a * C)\n ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));\n // Z3 = F * G\n nz = f.redMul(g);\n } else {\n // Y3 = A * G * (D - C)\n ny = a.redMul(g).redMul(d.redSub(c));\n // Z3 = c * F * G\n nz = this.curve._mulC(f).redMul(g);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.add = function add(p) {\n if (this.isInfinity())\n return p;\n if (p.isInfinity())\n return this;\n\n if (this.curve.extended)\n return this._extAdd(p);\n else\n return this._projAdd(p);\n};\n\nPoint.prototype.mul = function mul(k) {\n if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, false);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, true);\n};\n\nPoint.prototype.normalize = function normalize() {\n if (this.zOne)\n return this;\n\n // Normalize coordinates\n var zi = this.z.redInvm();\n this.x = this.x.redMul(zi);\n this.y = this.y.redMul(zi);\n if (this.t)\n this.t = this.t.redMul(zi);\n this.z = this.curve.one;\n this.zOne = true;\n return this;\n};\n\nPoint.prototype.neg = function neg() {\n return this.curve.point(this.x.redNeg(),\n this.y,\n this.z,\n this.t && this.t.redNeg());\n};\n\nPoint.prototype.getX = function getX() {\n this.normalize();\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n this.normalize();\n return this.y.fromRed();\n};\n\nPoint.prototype.eq = function eq(other) {\n return this === other ||\n this.getX().cmp(other.getX()) === 0 &&\n this.getY().cmp(other.getY()) === 0;\n};\n\nPoint.prototype.eqXToP = function eqXToP(x) {\n var rx = x.toRed(this.curve.red).redMul(this.z);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(this.z);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\n// Compatibility with BaseCurve\nPoint.prototype.toP = Point.prototype.normalize;\nPoint.prototype.mixedAdd = Point.prototype.add;\n","'use strict';\n\nvar curve = exports;\n\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');\n","module.exports = {\n doubles: {\n step: 4,\n points: [\n [\n 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',\n 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821',\n ],\n [\n '8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',\n '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf',\n ],\n [\n '175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',\n 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695',\n ],\n [\n '363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',\n '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9',\n ],\n [\n '8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',\n '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36',\n ],\n [\n '723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',\n '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f',\n ],\n [\n 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',\n '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999',\n ],\n [\n '100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',\n 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09',\n ],\n [\n 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',\n '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d',\n ],\n [\n 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',\n 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088',\n ],\n [\n 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',\n '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d',\n ],\n [\n '53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',\n '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8',\n ],\n [\n '8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',\n '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a',\n ],\n [\n '385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',\n '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453',\n ],\n [\n '6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',\n '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160',\n ],\n [\n '3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',\n '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0',\n ],\n [\n '85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',\n '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6',\n ],\n [\n '948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',\n '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589',\n ],\n [\n '6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',\n 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17',\n ],\n [\n 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',\n '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda',\n ],\n [\n 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',\n '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd',\n ],\n [\n '213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',\n '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2',\n ],\n [\n '4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',\n '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6',\n ],\n [\n 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',\n '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f',\n ],\n [\n '76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',\n 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01',\n ],\n [\n 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',\n '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3',\n ],\n [\n 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',\n 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f',\n ],\n [\n 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',\n '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7',\n ],\n [\n 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',\n 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78',\n ],\n [\n 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',\n '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1',\n ],\n [\n '90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',\n 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150',\n ],\n [\n '8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',\n '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82',\n ],\n [\n 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',\n '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc',\n ],\n [\n '8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',\n 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b',\n ],\n [\n 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',\n '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51',\n ],\n [\n 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',\n '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45',\n ],\n [\n 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',\n 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120',\n ],\n [\n '324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',\n '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84',\n ],\n [\n '4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',\n '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d',\n ],\n [\n '9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',\n 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d',\n ],\n [\n '6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',\n '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8',\n ],\n [\n 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',\n '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8',\n ],\n [\n '7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',\n '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac',\n ],\n [\n '928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',\n 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f',\n ],\n [\n '85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',\n '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962',\n ],\n [\n 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',\n '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907',\n ],\n [\n '827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',\n 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec',\n ],\n [\n 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',\n 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d',\n ],\n [\n 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',\n '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414',\n ],\n [\n '1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',\n 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd',\n ],\n [\n '146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',\n 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0',\n ],\n [\n 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',\n '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811',\n ],\n [\n 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',\n '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1',\n ],\n [\n 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',\n '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c',\n ],\n [\n '174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',\n 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73',\n ],\n [\n '959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',\n '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd',\n ],\n [\n 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',\n 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405',\n ],\n [\n '64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',\n 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589',\n ],\n [\n '8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',\n '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e',\n ],\n [\n '13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',\n '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27',\n ],\n [\n 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',\n 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1',\n ],\n [\n '8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',\n '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482',\n ],\n [\n '8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',\n '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945',\n ],\n [\n 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',\n '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573',\n ],\n [\n 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',\n 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82',\n ],\n ],\n },\n naf: {\n wnd: 7,\n points: [\n [\n 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',\n '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672',\n ],\n [\n '2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',\n 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6',\n ],\n [\n '5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',\n '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da',\n ],\n [\n 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',\n 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37',\n ],\n [\n '774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',\n 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b',\n ],\n [\n 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',\n 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81',\n ],\n [\n 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',\n '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58',\n ],\n [\n 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',\n '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77',\n ],\n [\n '2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',\n '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a',\n ],\n [\n '352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',\n '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c',\n ],\n [\n '2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',\n '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67',\n ],\n [\n '9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',\n '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402',\n ],\n [\n 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',\n 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55',\n ],\n [\n 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',\n '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482',\n ],\n [\n '6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',\n 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82',\n ],\n [\n '1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',\n 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396',\n ],\n [\n '605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',\n '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49',\n ],\n [\n '62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',\n '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf',\n ],\n [\n '80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',\n '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a',\n ],\n [\n '7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',\n 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7',\n ],\n [\n 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',\n 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933',\n ],\n [\n '49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',\n '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a',\n ],\n [\n '77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',\n '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6',\n ],\n [\n 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',\n 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37',\n ],\n [\n '463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',\n '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e',\n ],\n [\n 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',\n 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6',\n ],\n [\n 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',\n 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476',\n ],\n [\n '2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',\n '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40',\n ],\n [\n '7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',\n '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61',\n ],\n [\n '754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',\n '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683',\n ],\n [\n 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',\n '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5',\n ],\n [\n '186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',\n '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b',\n ],\n [\n 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',\n '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417',\n ],\n [\n '5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',\n 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868',\n ],\n [\n '290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',\n 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a',\n ],\n [\n 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',\n 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6',\n ],\n [\n '766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',\n '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996',\n ],\n [\n '59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',\n 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e',\n ],\n [\n 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',\n 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d',\n ],\n [\n '7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',\n '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2',\n ],\n [\n '948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',\n 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e',\n ],\n [\n '7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',\n '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437',\n ],\n [\n '3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',\n 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311',\n ],\n [\n 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',\n '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4',\n ],\n [\n '1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',\n '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575',\n ],\n [\n '733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',\n 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d',\n ],\n [\n '15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',\n 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d',\n ],\n [\n 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',\n 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629',\n ],\n [\n 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',\n 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06',\n ],\n [\n '311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',\n '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374',\n ],\n [\n '34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',\n '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee',\n ],\n [\n 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',\n '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1',\n ],\n [\n 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',\n 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b',\n ],\n [\n '32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',\n '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661',\n ],\n [\n '7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',\n '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6',\n ],\n [\n 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',\n '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e',\n ],\n [\n '16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',\n '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d',\n ],\n [\n 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',\n 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc',\n ],\n [\n '78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',\n 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4',\n ],\n [\n '494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',\n '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c',\n ],\n [\n 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',\n '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b',\n ],\n [\n 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',\n '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913',\n ],\n [\n '841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',\n '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154',\n ],\n [\n '5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',\n '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865',\n ],\n [\n '36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',\n 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc',\n ],\n [\n '336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',\n 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224',\n ],\n [\n '8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',\n '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e',\n ],\n [\n '1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',\n '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6',\n ],\n [\n '85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',\n '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511',\n ],\n [\n '29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',\n 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b',\n ],\n [\n 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',\n 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2',\n ],\n [\n '4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',\n 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c',\n ],\n [\n 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',\n '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3',\n ],\n [\n 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',\n '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d',\n ],\n [\n 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',\n '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700',\n ],\n [\n 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',\n '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4',\n ],\n [\n '591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',\n 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196',\n ],\n [\n '11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',\n '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4',\n ],\n [\n '3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',\n 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257',\n ],\n [\n 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',\n 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13',\n ],\n [\n 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',\n '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096',\n ],\n [\n 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',\n 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38',\n ],\n [\n 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',\n '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f',\n ],\n [\n '347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',\n '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448',\n ],\n [\n 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',\n '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a',\n ],\n [\n 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',\n '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4',\n ],\n [\n '4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',\n '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437',\n ],\n [\n '3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',\n 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7',\n ],\n [\n 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',\n '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d',\n ],\n [\n 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',\n '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a',\n ],\n [\n 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',\n '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54',\n ],\n [\n '48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',\n '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77',\n ],\n [\n 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',\n 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517',\n ],\n [\n '6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',\n 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10',\n ],\n [\n 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',\n 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125',\n ],\n [\n 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',\n '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e',\n ],\n [\n '13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',\n 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1',\n ],\n [\n 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',\n '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2',\n ],\n [\n 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',\n '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423',\n ],\n [\n 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',\n '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8',\n ],\n [\n '8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',\n 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758',\n ],\n [\n '52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',\n 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375',\n ],\n [\n 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',\n '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d',\n ],\n [\n '7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',\n 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec',\n ],\n [\n '5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',\n '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0',\n ],\n [\n '32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',\n 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c',\n ],\n [\n 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',\n 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4',\n ],\n [\n '8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',\n 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f',\n ],\n [\n '4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',\n '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649',\n ],\n [\n '3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',\n 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826',\n ],\n [\n '674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',\n '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5',\n ],\n [\n 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',\n 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87',\n ],\n [\n '30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',\n '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b',\n ],\n [\n 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',\n '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc',\n ],\n [\n '93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',\n '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c',\n ],\n [\n 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',\n 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f',\n ],\n [\n 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',\n '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a',\n ],\n [\n 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',\n 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46',\n ],\n [\n '463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',\n 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f',\n ],\n [\n '7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',\n '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03',\n ],\n [\n '74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',\n 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08',\n ],\n [\n '30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',\n '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8',\n ],\n [\n '9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',\n '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373',\n ],\n [\n '176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',\n 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3',\n ],\n [\n '75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',\n '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8',\n ],\n [\n '809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',\n '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1',\n ],\n [\n '1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',\n '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9',\n ],\n ],\n },\n};\n","'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\nvar curve = require('./curve');\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve.edwards(options);\n else\n this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve,\n });\n return curve;\n },\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811',\n ],\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34',\n ],\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5',\n ],\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f',\n ],\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650',\n ],\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9',\n ],\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658',\n ],\n});\n\nvar pre;\ntry {\n pre = require('./precomputed/secp256k1');\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3',\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15',\n },\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre,\n ],\n});\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction KeyPair(ec, options) {\n this.ec = ec;\n this.priv = null;\n this.pub = null;\n\n // KeyPair(ec, { priv: ..., pub: ... })\n if (options.priv)\n this._importPrivate(options.priv, options.privEnc);\n if (options.pub)\n this._importPublic(options.pub, options.pubEnc);\n}\nmodule.exports = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n if (pub instanceof KeyPair)\n return pub;\n\n return new KeyPair(ec, {\n pub: pub,\n pubEnc: enc,\n });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n if (priv instanceof KeyPair)\n return priv;\n\n return new KeyPair(ec, {\n priv: priv,\n privEnc: enc,\n });\n};\n\nKeyPair.prototype.validate = function validate() {\n var pub = this.getPublic();\n\n if (pub.isInfinity())\n return { result: false, reason: 'Invalid public key' };\n if (!pub.validate())\n return { result: false, reason: 'Public key is not a point' };\n if (!pub.mul(this.ec.curve.n).isInfinity())\n return { result: false, reason: 'Public key * N != O' };\n\n return { result: true, reason: null };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n // compact is optional argument\n if (typeof compact === 'string') {\n enc = compact;\n compact = null;\n }\n\n if (!this.pub)\n this.pub = this.ec.g.mul(this.priv);\n\n if (!enc)\n return this.pub;\n\n return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n if (enc === 'hex')\n return this.priv.toString(16, 2);\n else\n return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n this.priv = new BN(key, enc || 16);\n\n // Ensure that the priv won't be bigger than n, otherwise we may fail\n // in fixed multiplication method\n this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n if (key.x || key.y) {\n // Montgomery points only have an `x` coordinate.\n // Weierstrass/Edwards points on the other hand have both `x` and\n // `y` coordinates.\n if (this.ec.curve.type === 'mont') {\n assert(key.x, 'Need x coordinate');\n } else if (this.ec.curve.type === 'short' ||\n this.ec.curve.type === 'edwards') {\n assert(key.x && key.y, 'Need both x and y coordinate');\n }\n this.pub = this.ec.curve.point(key.x, key.y);\n return;\n }\n this.pub = this.ec.curve.decodePoint(key, enc);\n};\n\n// ECDH\nKeyPair.prototype.derive = function derive(pub) {\n if(!pub.validate()) {\n assert(pub.validate(), 'public point not validated');\n }\n return pub.mul(this.priv).getX();\n};\n\n// ECDSA\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature) {\n return this.ec.verify(msg, signature, this);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n return '';\n};\n","'use strict';\n\nvar BN = require('bn.js');\n\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature)\n return options;\n\n if (this._importDER(options, enc))\n return;\n\n assert(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined)\n this.recoveryParam = null;\n else\n this.recoveryParam = options.recoveryParam;\n}\nmodule.exports = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n if (!(initial & 0x80)) {\n return initial;\n }\n var octetLen = initial & 0xf;\n\n // Indefinite length or overflow\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n\n var val = 0;\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n }\n\n // Leading zeroes\n if (val <= 0x7f) {\n return false;\n }\n\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n if (i === 0) {\n return buf;\n }\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils.toArray(data, enc);\n var p = new Position();\n if (data[p.place++] !== 0x30) {\n return false;\n }\n var len = getLength(data, p);\n if (len === false) {\n return false;\n }\n if ((len + p.place) !== data.length) {\n return false;\n }\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var rlen = getLength(data, p);\n if (rlen === false) {\n return false;\n }\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var slen = getLength(data, p);\n if (slen === false) {\n return false;\n }\n if (data.length !== slen + p.place) {\n return false;\n }\n var s = data.slice(p.place, slen + p.place);\n if (r[0] === 0) {\n if (r[1] & 0x80) {\n r = r.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n if (s[0] === 0) {\n if (s[1] & 0x80) {\n s = s.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n while (--octets) {\n arr.push((len >>> (octets << 3)) & 0xff);\n }\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray();\n\n // Pad values\n if (r[0] & 0x80)\n r = [ 0 ].concat(r);\n // Pad values\n if (s[0] & 0x80)\n s = [ 0 ].concat(s);\n\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n var arr = [ 0x02 ];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [ 0x30 ];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils.encode(res, enc);\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar HmacDRBG = require('hmac-drbg');\nvar utils = require('../utils');\nvar curves = require('../curves');\nvar rand = require('brorand');\nvar assert = utils.assert;\n\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EC(options) {\n if (!(this instanceof EC))\n return new EC(options);\n\n // Shortcut `elliptic.ec(curve-name)`\n if (typeof options === 'string') {\n assert(Object.prototype.hasOwnProperty.call(curves, options),\n 'Unknown curve ' + options);\n\n options = curves[options];\n }\n\n // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n if (options instanceof curves.PresetCurve)\n options = { curve: options };\n\n this.curve = options.curve.curve;\n this.n = this.curve.n;\n this.nh = this.n.ushrn(1);\n this.g = this.curve.g;\n\n // Point on curve\n this.g = options.curve.g;\n this.g.precompute(options.curve.n.bitLength() + 1);\n\n // Hash for function for DRBG\n this.hash = options.hash || options.curve.hash;\n}\nmodule.exports = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n return new KeyPair(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n return KeyPair.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n return KeyPair.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n if (!options)\n options = {};\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n entropy: options.entropy || rand(this.hash.hmacStrength),\n entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n nonce: this.n.toArray(),\n });\n\n var bytes = this.n.byteLength();\n var ns2 = this.n.sub(new BN(2));\n for (;;) {\n var priv = new BN(drbg.generate(bytes));\n if (priv.cmp(ns2) > 0)\n continue;\n\n priv.iaddn(1);\n return this.keyFromPrivate(priv);\n }\n};\n\nEC.prototype._truncateToN = function _truncateToN(msg, truncOnly) {\n var delta = msg.byteLength() * 8 - this.n.bitLength();\n if (delta > 0)\n msg = msg.ushrn(delta);\n if (!truncOnly && msg.cmp(this.n) >= 0)\n return msg.sub(this.n);\n else\n return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n if (typeof enc === 'object') {\n options = enc;\n enc = null;\n }\n if (!options)\n options = {};\n\n key = this.keyFromPrivate(key, enc);\n msg = this._truncateToN(new BN(msg, 16));\n\n // Zero-extend key to provide enough entropy\n var bytes = this.n.byteLength();\n var bkey = key.getPrivate().toArray('be', bytes);\n\n // Zero-extend nonce to have the same byte size as N\n var nonce = msg.toArray('be', bytes);\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n entropy: bkey,\n nonce: nonce,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n });\n\n // Number of bytes to generate\n var ns1 = this.n.sub(new BN(1));\n\n for (var iter = 0; ; iter++) {\n var k = options.k ?\n options.k(iter) :\n new BN(drbg.generate(this.n.byteLength()));\n k = this._truncateToN(k, true);\n if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)\n continue;\n\n var kp = this.g.mul(k);\n if (kp.isInfinity())\n continue;\n\n var kpX = kp.getX();\n var r = kpX.umod(this.n);\n if (r.cmpn(0) === 0)\n continue;\n\n var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n s = s.umod(this.n);\n if (s.cmpn(0) === 0)\n continue;\n\n var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |\n (kpX.cmp(r) !== 0 ? 2 : 0);\n\n // Use complement of `s`, if it is > `n / 2`\n if (options.canonical && s.cmp(this.nh) > 0) {\n s = this.n.sub(s);\n recoveryParam ^= 1;\n }\n\n return new Signature({ r: r, s: s, recoveryParam: recoveryParam });\n }\n};\n\nEC.prototype.verify = function verify(msg, signature, key, enc) {\n msg = this._truncateToN(new BN(msg, 16));\n key = this.keyFromPublic(key, enc);\n signature = new Signature(signature, 'hex');\n\n // Perform primitive values validation\n var r = signature.r;\n var s = signature.s;\n if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)\n return false;\n if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)\n return false;\n\n // Validate signature\n var sinv = s.invm(this.n);\n var u1 = sinv.mul(msg).umod(this.n);\n var u2 = sinv.mul(r).umod(this.n);\n var p;\n\n if (!this.curve._maxwellTrick) {\n p = this.g.mulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n return p.getX().umod(this.n).cmp(r) === 0;\n }\n\n // NOTE: Greg Maxwell's trick, inspired by:\n // https://git.io/vad3K\n\n p = this.g.jmulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n // Compare `p.x` of Jacobian point with `r`,\n // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n // inverse of `p.z^2`\n return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function(msg, signature, j, enc) {\n assert((3 & j) === j, 'The recovery param is more than two bits');\n signature = new Signature(signature, enc);\n\n var n = this.n;\n var e = new BN(msg);\n var r = signature.r;\n var s = signature.s;\n\n // A set LSB signifies that the y-coordinate is odd\n var isYOdd = j & 1;\n var isSecondKey = j >> 1;\n if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)\n throw new Error('Unable to find sencond key candinate');\n\n // 1.1. Let x = r + jn.\n if (isSecondKey)\n r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);\n else\n r = this.curve.pointFromX(r, isYOdd);\n\n var rInv = signature.r.invm(n);\n var s1 = n.sub(e).mul(rInv).umod(n);\n var s2 = s.mul(rInv).umod(n);\n\n // 1.6.1 Compute Q = r^-1 (sR - eG)\n // Q = r^-1 (sR + -eG)\n return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {\n signature = new Signature(signature, enc);\n if (signature.recoveryParam !== null)\n return signature.recoveryParam;\n\n for (var i = 0; i < 4; i++) {\n var Qprime;\n try {\n Qprime = this.recoverPubKey(e, signature, i);\n } catch (e) {\n continue;\n }\n\n if (Qprime.eq(Q))\n return i;\n }\n throw new Error('Unable to find valid recovery factor');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar cachedProperty = utils.cachedProperty;\n\n/**\n* @param {EDDSA} eddsa - instance\n* @param {Object} params - public/private key parameters\n*\n* @param {Array} [params.secret] - secret seed bytes\n* @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)\n* @param {Array} [params.pub] - public key point encoded as bytes\n*\n*/\nfunction KeyPair(eddsa, params) {\n this.eddsa = eddsa;\n this._secret = parseBytes(params.secret);\n if (eddsa.isPoint(params.pub))\n this._pub = params.pub;\n else\n this._pubBytes = parseBytes(params.pub);\n}\n\nKeyPair.fromPublic = function fromPublic(eddsa, pub) {\n if (pub instanceof KeyPair)\n return pub;\n return new KeyPair(eddsa, { pub: pub });\n};\n\nKeyPair.fromSecret = function fromSecret(eddsa, secret) {\n if (secret instanceof KeyPair)\n return secret;\n return new KeyPair(eddsa, { secret: secret });\n};\n\nKeyPair.prototype.secret = function secret() {\n return this._secret;\n};\n\ncachedProperty(KeyPair, 'pubBytes', function pubBytes() {\n return this.eddsa.encodePoint(this.pub());\n});\n\ncachedProperty(KeyPair, 'pub', function pub() {\n if (this._pubBytes)\n return this.eddsa.decodePoint(this._pubBytes);\n return this.eddsa.g.mul(this.priv());\n});\n\ncachedProperty(KeyPair, 'privBytes', function privBytes() {\n var eddsa = this.eddsa;\n var hash = this.hash();\n var lastIx = eddsa.encodingLength - 1;\n\n var a = hash.slice(0, eddsa.encodingLength);\n a[0] &= 248;\n a[lastIx] &= 127;\n a[lastIx] |= 64;\n\n return a;\n});\n\ncachedProperty(KeyPair, 'priv', function priv() {\n return this.eddsa.decodeInt(this.privBytes());\n});\n\ncachedProperty(KeyPair, 'hash', function hash() {\n return this.eddsa.hash().update(this.secret()).digest();\n});\n\ncachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {\n return this.hash().slice(this.eddsa.encodingLength);\n});\n\nKeyPair.prototype.sign = function sign(message) {\n assert(this._secret, 'KeyPair can only verify');\n return this.eddsa.sign(message, this);\n};\n\nKeyPair.prototype.verify = function verify(message, sig) {\n return this.eddsa.verify(message, sig, this);\n};\n\nKeyPair.prototype.getSecret = function getSecret(enc) {\n assert(this._secret, 'KeyPair is public only');\n return utils.encode(this.secret(), enc);\n};\n\nKeyPair.prototype.getPublic = function getPublic(enc) {\n return utils.encode(this.pubBytes(), enc);\n};\n\nmodule.exports = KeyPair;\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar cachedProperty = utils.cachedProperty;\nvar parseBytes = utils.parseBytes;\n\n/**\n* @param {EDDSA} eddsa - eddsa instance\n* @param {Array|Object} sig -\n* @param {Array|Point} [sig.R] - R point as Point or bytes\n* @param {Array|bn} [sig.S] - S scalar as bn or bytes\n* @param {Array} [sig.Rencoded] - R point encoded\n* @param {Array} [sig.Sencoded] - S scalar encoded\n*/\nfunction Signature(eddsa, sig) {\n this.eddsa = eddsa;\n\n if (typeof sig !== 'object')\n sig = parseBytes(sig);\n\n if (Array.isArray(sig)) {\n sig = {\n R: sig.slice(0, eddsa.encodingLength),\n S: sig.slice(eddsa.encodingLength),\n };\n }\n\n assert(sig.R && sig.S, 'Signature without R or S');\n\n if (eddsa.isPoint(sig.R))\n this._R = sig.R;\n if (sig.S instanceof BN)\n this._S = sig.S;\n\n this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;\n this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;\n}\n\ncachedProperty(Signature, 'S', function S() {\n return this.eddsa.decodeInt(this.Sencoded());\n});\n\ncachedProperty(Signature, 'R', function R() {\n return this.eddsa.decodePoint(this.Rencoded());\n});\n\ncachedProperty(Signature, 'Rencoded', function Rencoded() {\n return this.eddsa.encodePoint(this.R());\n});\n\ncachedProperty(Signature, 'Sencoded', function Sencoded() {\n return this.eddsa.encodeInt(this.S());\n});\n\nSignature.prototype.toBytes = function toBytes() {\n return this.Rencoded().concat(this.Sencoded());\n};\n\nSignature.prototype.toHex = function toHex() {\n return utils.encode(this.toBytes(), 'hex').toUpperCase();\n};\n\nmodule.exports = Signature;\n","'use strict';\n\nvar hash = require('hash.js');\nvar curves = require('../curves');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EDDSA(curve) {\n assert(curve === 'ed25519', 'only tested with ed25519 so far');\n\n if (!(this instanceof EDDSA))\n return new EDDSA(curve);\n\n curve = curves[curve].curve;\n this.curve = curve;\n this.g = curve.g;\n this.g.precompute(curve.n.bitLength() + 1);\n\n this.pointClass = curve.point().constructor;\n this.encodingLength = Math.ceil(curve.n.bitLength() / 8);\n this.hash = hash.sha512;\n}\n\nmodule.exports = EDDSA;\n\n/**\n* @param {Array|String} message - message bytes\n* @param {Array|String|KeyPair} secret - secret bytes or a keypair\n* @returns {Signature} - signature\n*/\nEDDSA.prototype.sign = function sign(message, secret) {\n message = parseBytes(message);\n var key = this.keyFromSecret(secret);\n var r = this.hashInt(key.messagePrefix(), message);\n var R = this.g.mul(r);\n var Rencoded = this.encodePoint(R);\n var s_ = this.hashInt(Rencoded, key.pubBytes(), message)\n .mul(key.priv());\n var S = r.add(s_).umod(this.curve.n);\n return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });\n};\n\n/**\n* @param {Array} message - message bytes\n* @param {Array|String|Signature} sig - sig bytes\n* @param {Array|String|Point|KeyPair} pub - public key\n* @returns {Boolean} - true if public key matches sig of message\n*/\nEDDSA.prototype.verify = function verify(message, sig, pub) {\n message = parseBytes(message);\n sig = this.makeSignature(sig);\n var key = this.keyFromPublic(pub);\n var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);\n var SG = this.g.mul(sig.S());\n var RplusAh = sig.R().add(key.pub().mul(h));\n return RplusAh.eq(SG);\n};\n\nEDDSA.prototype.hashInt = function hashInt() {\n var hash = this.hash();\n for (var i = 0; i < arguments.length; i++)\n hash.update(arguments[i]);\n return utils.intFromLE(hash.digest()).umod(this.curve.n);\n};\n\nEDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {\n return KeyPair.fromPublic(this, pub);\n};\n\nEDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {\n return KeyPair.fromSecret(this, secret);\n};\n\nEDDSA.prototype.makeSignature = function makeSignature(sig) {\n if (sig instanceof Signature)\n return sig;\n return new Signature(this, sig);\n};\n\n/**\n* * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2\n*\n* EDDSA defines methods for encoding and decoding points and integers. These are\n* helper convenience methods, that pass along to utility functions implied\n* parameters.\n*\n*/\nEDDSA.prototype.encodePoint = function encodePoint(point) {\n var enc = point.getY().toArray('le', this.encodingLength);\n enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0;\n return enc;\n};\n\nEDDSA.prototype.decodePoint = function decodePoint(bytes) {\n bytes = utils.parseBytes(bytes);\n\n var lastIx = bytes.length - 1;\n var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80);\n var xIsOdd = (bytes[lastIx] & 0x80) !== 0;\n\n var y = utils.intFromLE(normed);\n return this.curve.pointFromY(y, xIsOdd);\n};\n\nEDDSA.prototype.encodeInt = function encodeInt(num) {\n return num.toArray('le', this.encodingLength);\n};\n\nEDDSA.prototype.decodeInt = function decodeInt(bytes) {\n return utils.intFromLE(bytes);\n};\n\nEDDSA.prototype.isPoint = function isPoint(val) {\n return val instanceof this.pointClass;\n};\n","'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = require('../package.json').version;\nelliptic.utils = require('./elliptic/utils');\nelliptic.rand = require('brorand');\nelliptic.curve = require('./elliptic/curve');\nelliptic.curves = require('./elliptic/curves');\n\n// Protocols\nelliptic.ec = require('./elliptic/ec');\nelliptic.eddsa = require('./elliptic/eddsa');\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","var elliptic = require('elliptic')\nvar BN = require('bn.js')\n\nmodule.exports = function createECDH (curve) {\n return new ECDH(curve)\n}\n\nvar aliases = {\n secp256k1: {\n name: 'secp256k1',\n byteLength: 32\n },\n secp224r1: {\n name: 'p224',\n byteLength: 28\n },\n prime256v1: {\n name: 'p256',\n byteLength: 32\n },\n prime192v1: {\n name: 'p192',\n byteLength: 24\n },\n ed25519: {\n name: 'ed25519',\n byteLength: 32\n },\n secp384r1: {\n name: 'p384',\n byteLength: 48\n },\n secp521r1: {\n name: 'p521',\n byteLength: 66\n }\n}\n\naliases.p224 = aliases.secp224r1\naliases.p256 = aliases.secp256r1 = aliases.prime256v1\naliases.p192 = aliases.secp192r1 = aliases.prime192v1\naliases.p384 = aliases.secp384r1\naliases.p521 = aliases.secp521r1\n\nfunction ECDH (curve) {\n this.curveType = aliases[curve]\n if (!this.curveType) {\n this.curveType = {\n name: curve\n }\n }\n this.curve = new elliptic.ec(this.curveType.name) // eslint-disable-line new-cap\n this.keys = void 0\n}\n\nECDH.prototype.generateKeys = function (enc, format) {\n this.keys = this.curve.genKeyPair()\n return this.getPublicKey(enc, format)\n}\n\nECDH.prototype.computeSecret = function (other, inenc, enc) {\n inenc = inenc || 'utf8'\n if (!Buffer.isBuffer(other)) {\n other = new Buffer(other, inenc)\n }\n var otherPub = this.curve.keyFromPublic(other).getPublic()\n var out = otherPub.mul(this.keys.getPrivate()).getX()\n return formatReturnValue(out, enc, this.curveType.byteLength)\n}\n\nECDH.prototype.getPublicKey = function (enc, format) {\n var key = this.keys.getPublic(format === 'compressed', true)\n if (format === 'hybrid') {\n if (key[key.length - 1] % 2) {\n key[0] = 7\n } else {\n key[0] = 6\n }\n }\n return formatReturnValue(key, enc)\n}\n\nECDH.prototype.getPrivateKey = function (enc) {\n return formatReturnValue(this.keys.getPrivate(), enc)\n}\n\nECDH.prototype.setPublicKey = function (pub, enc) {\n enc = enc || 'utf8'\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc)\n }\n this.keys._importPublic(pub)\n return this\n}\n\nECDH.prototype.setPrivateKey = function (priv, enc) {\n enc = enc || 'utf8'\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc)\n }\n\n var _priv = new BN(priv)\n _priv = _priv.toString(16)\n this.keys = this.curve.genKeyPair()\n this.keys._importPrivate(_priv)\n return this\n}\n\nfunction formatReturnValue (bn, enc, len) {\n if (!Array.isArray(bn)) {\n bn = bn.toArray()\n }\n var buf = new Buffer(bn)\n if (len && buf.length < len) {\n var zeros = new Buffer(len - buf.length)\n zeros.fill(0)\n buf = Buffer.concat([zeros, buf])\n }\n if (!enc) {\n return buf\n } else {\n return buf.toString(enc)\n }\n}\n","var createHash = require('create-hash')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (seed, len) {\n var t = Buffer.alloc(0)\n var i = 0\n var c\n while (t.length < len) {\n c = i2ops(i++)\n t = Buffer.concat([t, createHash('sha1').update(seed).update(c).digest()])\n }\n return t.slice(0, len)\n}\n\nfunction i2ops (c) {\n var out = Buffer.allocUnsafe(4)\n out.writeUInt32BE(c, 0)\n return out\n}\n","module.exports = function xor (a, b) {\n var len = a.length\n var i = -1\n while (++i < len) {\n a[i] ^= b[i]\n }\n return a\n}\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","var BN = require('bn.js')\nvar Buffer = require('safe-buffer').Buffer\n\nfunction withPublic (paddedMsg, key) {\n return Buffer.from(paddedMsg\n .toRed(BN.mont(key.modulus))\n .redPow(new BN(key.publicExponent))\n .fromRed()\n .toArray())\n}\n\nmodule.exports = withPublic\n","var parseKeys = require('parse-asn1')\nvar randomBytes = require('randombytes')\nvar createHash = require('create-hash')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar withPublic = require('./withPublic')\nvar crt = require('browserify-rsa')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function publicEncrypt (publicKey, msg, reverse) {\n var padding\n if (publicKey.padding) {\n padding = publicKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n var key = parseKeys(publicKey)\n var paddedMsg\n if (padding === 4) {\n paddedMsg = oaep(key, msg)\n } else if (padding === 1) {\n paddedMsg = pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n paddedMsg = new BN(msg)\n if (paddedMsg.cmp(key.modulus) >= 0) {\n throw new Error('data too long for modulus')\n }\n } else {\n throw new Error('unknown padding')\n }\n if (reverse) {\n return crt(paddedMsg, key)\n } else {\n return withPublic(paddedMsg, key)\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var mLen = msg.length\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n var hLen2 = 2 * hLen\n if (mLen > k - hLen2 - 2) {\n throw new Error('message too long')\n }\n var ps = Buffer.alloc(k - mLen - hLen2 - 2)\n var dblen = k - hLen - 1\n var seed = randomBytes(hLen)\n var maskedDb = xor(Buffer.concat([iHash, ps, Buffer.alloc(1, 1), msg], dblen), mgf(seed, dblen))\n var maskedSeed = xor(seed, mgf(maskedDb, hLen))\n return new BN(Buffer.concat([Buffer.alloc(1), maskedSeed, maskedDb], k))\n}\nfunction pkcs1 (key, msg, reverse) {\n var mLen = msg.length\n var k = key.modulus.byteLength()\n if (mLen > k - 11) {\n throw new Error('message too long')\n }\n var ps\n if (reverse) {\n ps = Buffer.alloc(k - mLen - 3, 0xff)\n } else {\n ps = nonZero(k - mLen - 3)\n }\n return new BN(Buffer.concat([Buffer.from([0, reverse ? 1 : 2]), ps, Buffer.alloc(1), msg], k))\n}\nfunction nonZero (len) {\n var out = Buffer.allocUnsafe(len)\n var i = 0\n var cache = randomBytes(len * 2)\n var cur = 0\n var num\n while (i < len) {\n if (cur === cache.length) {\n cache = randomBytes(len * 2)\n cur = 0\n }\n num = cache[cur++]\n if (num) {\n out[i++] = num\n }\n }\n return out\n}\n","var parseKeys = require('parse-asn1')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar crt = require('browserify-rsa')\nvar createHash = require('create-hash')\nvar withPublic = require('./withPublic')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function privateDecrypt (privateKey, enc, reverse) {\n var padding\n if (privateKey.padding) {\n padding = privateKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n\n var key = parseKeys(privateKey)\n var k = key.modulus.byteLength()\n if (enc.length > k || new BN(enc).cmp(key.modulus) >= 0) {\n throw new Error('decryption error')\n }\n var msg\n if (reverse) {\n msg = withPublic(new BN(enc), key)\n } else {\n msg = crt(enc, key)\n }\n var zBuffer = Buffer.alloc(k - msg.length)\n msg = Buffer.concat([zBuffer, msg], k)\n if (padding === 4) {\n return oaep(key, msg)\n } else if (padding === 1) {\n return pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n return msg\n } else {\n throw new Error('unknown padding')\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n if (msg[0] !== 0) {\n throw new Error('decryption error')\n }\n var maskedSeed = msg.slice(1, hLen + 1)\n var maskedDb = msg.slice(hLen + 1)\n var seed = xor(maskedSeed, mgf(maskedDb, hLen))\n var db = xor(maskedDb, mgf(seed, k - hLen - 1))\n if (compare(iHash, db.slice(0, hLen))) {\n throw new Error('decryption error')\n }\n var i = hLen\n while (db[i] === 0) {\n i++\n }\n if (db[i++] !== 1) {\n throw new Error('decryption error')\n }\n return db.slice(i)\n}\n\nfunction pkcs1 (key, msg, reverse) {\n var p1 = msg.slice(0, 2)\n var i = 2\n var status = 0\n while (msg[i++] !== 0) {\n if (i >= msg.length) {\n status++\n break\n }\n }\n var ps = msg.slice(2, i - 1)\n\n if ((p1.toString('hex') !== '0002' && !reverse) || (p1.toString('hex') !== '0001' && reverse)) {\n status++\n }\n if (ps.length < 8) {\n status++\n }\n if (status) {\n throw new Error('decryption error')\n }\n return msg.slice(i)\n}\nfunction compare (a, b) {\n a = Buffer.from(a)\n b = Buffer.from(b)\n var dif = 0\n var len = a.length\n if (a.length !== b.length) {\n dif++\n len = Math.min(a.length, b.length)\n }\n var i = -1\n while (++i < len) {\n dif += (a[i] ^ b[i])\n }\n return dif\n}\n","exports.publicEncrypt = require('./publicEncrypt')\nexports.privateDecrypt = require('./privateDecrypt')\n\nexports.privateEncrypt = function privateEncrypt (key, buf) {\n return exports.publicEncrypt(key, buf, true)\n}\n\nexports.publicDecrypt = function publicDecrypt (key, buf) {\n return exports.privateDecrypt(key, buf, true)\n}\n","'use strict'\n\nfunction oldBrowser () {\n throw new Error('secure random number generation not supported by this browser\\nuse chrome, FireFox or Internet Explorer 11')\n}\nvar safeBuffer = require('safe-buffer')\nvar randombytes = require('randombytes')\nvar Buffer = safeBuffer.Buffer\nvar kBufferMaxLength = safeBuffer.kMaxLength\nvar crypto = global.crypto || global.msCrypto\nvar kMaxUint32 = Math.pow(2, 32) - 1\nfunction assertOffset (offset, length) {\n if (typeof offset !== 'number' || offset !== offset) { // eslint-disable-line no-self-compare\n throw new TypeError('offset must be a number')\n }\n\n if (offset > kMaxUint32 || offset < 0) {\n throw new TypeError('offset must be a uint32')\n }\n\n if (offset > kBufferMaxLength || offset > length) {\n throw new RangeError('offset out of range')\n }\n}\n\nfunction assertSize (size, offset, length) {\n if (typeof size !== 'number' || size !== size) { // eslint-disable-line no-self-compare\n throw new TypeError('size must be a number')\n }\n\n if (size > kMaxUint32 || size < 0) {\n throw new TypeError('size must be a uint32')\n }\n\n if (size + offset > length || size > kBufferMaxLength) {\n throw new RangeError('buffer too small')\n }\n}\nif ((crypto && crypto.getRandomValues) || !process.browser) {\n exports.randomFill = randomFill\n exports.randomFillSync = randomFillSync\n} else {\n exports.randomFill = oldBrowser\n exports.randomFillSync = oldBrowser\n}\nfunction randomFill (buf, offset, size, cb) {\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n if (typeof offset === 'function') {\n cb = offset\n offset = 0\n size = buf.length\n } else if (typeof size === 'function') {\n cb = size\n size = buf.length - offset\n } else if (typeof cb !== 'function') {\n throw new TypeError('\"cb\" argument must be a function')\n }\n assertOffset(offset, buf.length)\n assertSize(size, offset, buf.length)\n return actualFill(buf, offset, size, cb)\n}\n\nfunction actualFill (buf, offset, size, cb) {\n if (process.browser) {\n var ourBuf = buf.buffer\n var uint = new Uint8Array(ourBuf, offset, size)\n crypto.getRandomValues(uint)\n if (cb) {\n process.nextTick(function () {\n cb(null, buf)\n })\n return\n }\n return buf\n }\n if (cb) {\n randombytes(size, function (err, bytes) {\n if (err) {\n return cb(err)\n }\n bytes.copy(buf, offset)\n cb(null, buf)\n })\n return\n }\n var bytes = randombytes(size)\n bytes.copy(buf, offset)\n return buf\n}\nfunction randomFillSync (buf, offset, size) {\n if (typeof offset === 'undefined') {\n offset = 0\n }\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n assertOffset(offset, buf.length)\n\n if (size === undefined) size = buf.length - offset\n\n assertSize(size, offset, buf.length)\n\n return actualFill(buf, offset, size)\n}\n","'use strict';\n\n// eslint-disable-next-line no-multi-assign\nexports.randomBytes = exports.rng = exports.pseudoRandomBytes = exports.prng = require('randombytes');\n\n// eslint-disable-next-line no-multi-assign\nexports.createHash = exports.Hash = require('create-hash');\n\n// eslint-disable-next-line no-multi-assign\nexports.createHmac = exports.Hmac = require('create-hmac');\n\nvar algos = require('browserify-sign/algos');\nvar algoKeys = Object.keys(algos);\nvar hashes = [\n\t'sha1',\n\t'sha224',\n\t'sha256',\n\t'sha384',\n\t'sha512',\n\t'md5',\n\t'rmd160'\n].concat(algoKeys);\n\nexports.getHashes = function () {\n\treturn hashes;\n};\n\nvar p = require('pbkdf2');\nexports.pbkdf2 = p.pbkdf2;\nexports.pbkdf2Sync = p.pbkdf2Sync;\n\nvar aes = require('browserify-cipher');\n\nexports.Cipher = aes.Cipher;\nexports.createCipher = aes.createCipher;\nexports.Cipheriv = aes.Cipheriv;\nexports.createCipheriv = aes.createCipheriv;\nexports.Decipher = aes.Decipher;\nexports.createDecipher = aes.createDecipher;\nexports.Decipheriv = aes.Decipheriv;\nexports.createDecipheriv = aes.createDecipheriv;\nexports.getCiphers = aes.getCiphers;\nexports.listCiphers = aes.listCiphers;\n\nvar dh = require('diffie-hellman');\n\nexports.DiffieHellmanGroup = dh.DiffieHellmanGroup;\nexports.createDiffieHellmanGroup = dh.createDiffieHellmanGroup;\nexports.getDiffieHellman = dh.getDiffieHellman;\nexports.createDiffieHellman = dh.createDiffieHellman;\nexports.DiffieHellman = dh.DiffieHellman;\n\nvar sign = require('browserify-sign');\n\nexports.createSign = sign.createSign;\nexports.Sign = sign.Sign;\nexports.createVerify = sign.createVerify;\nexports.Verify = sign.Verify;\n\nexports.createECDH = require('create-ecdh');\n\nvar publicEncrypt = require('public-encrypt');\n\nexports.publicEncrypt = publicEncrypt.publicEncrypt;\nexports.privateEncrypt = publicEncrypt.privateEncrypt;\nexports.publicDecrypt = publicEncrypt.publicDecrypt;\nexports.privateDecrypt = publicEncrypt.privateDecrypt;\n\n// the least I can do is make error messages for the rest of the node.js/crypto api.\n// [\n// 'createCredentials'\n// ].forEach(function (name) {\n// exports[name] = function () {\n// throw new Error('sorry, ' + name + ' is not implemented yet\\nwe accept pull requests\\nhttps://github.com/browserify/crypto-browserify');\n// };\n// });\n\nvar rf = require('randomfill');\n\nexports.randomFill = rf.randomFill;\nexports.randomFillSync = rf.randomFillSync;\n\nexports.createCredentials = function () {\n\tthrow new Error('sorry, createCredentials is not implemented yet\\nwe accept pull requests\\nhttps://github.com/browserify/crypto-browserify');\n};\n\nexports.constants = {\n\tDH_CHECK_P_NOT_SAFE_PRIME: 2,\n\tDH_CHECK_P_NOT_PRIME: 1,\n\tDH_UNABLE_TO_CHECK_GENERATOR: 4,\n\tDH_NOT_SUITABLE_GENERATOR: 8,\n\tNPN_ENABLED: 1,\n\tALPN_ENABLED: 1,\n\tRSA_PKCS1_PADDING: 1,\n\tRSA_SSLV23_PADDING: 2,\n\tRSA_NO_PADDING: 3,\n\tRSA_PKCS1_OAEP_PADDING: 4,\n\tRSA_X931_PADDING: 5,\n\tRSA_PKCS1_PSS_PADDING: 6,\n\tPOINT_CONVERSION_COMPRESSED: 2,\n\tPOINT_CONVERSION_UNCOMPRESSED: 4,\n\tPOINT_CONVERSION_HYBRID: 6\n};\n","(function(nacl) {\n'use strict';\n\n// Ported in 2014 by Dmitry Chestnykh and Devi Mandiri.\n// Public domain.\n//\n// Implementation derived from TweetNaCl version 20140427.\n// See for details: http://tweetnacl.cr.yp.to/\n\nvar gf = function(init) {\n var i, r = new Float64Array(16);\n if (init) for (i = 0; i < init.length; i++) r[i] = init[i];\n return r;\n};\n\n// Pluggable, initialized in high-level API below.\nvar randombytes = function(/* x, n */) { throw new Error('no PRNG'); };\n\nvar _0 = new Uint8Array(16);\nvar _9 = new Uint8Array(32); _9[0] = 9;\n\nvar gf0 = gf(),\n gf1 = gf([1]),\n _121665 = gf([0xdb41, 1]),\n D = gf([0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070, 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203]),\n D2 = gf([0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0, 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406]),\n X = gf([0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c, 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169]),\n Y = gf([0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666]),\n I = gf([0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43, 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83]);\n\nfunction ts64(x, i, h, l) {\n x[i] = (h >> 24) & 0xff;\n x[i+1] = (h >> 16) & 0xff;\n x[i+2] = (h >> 8) & 0xff;\n x[i+3] = h & 0xff;\n x[i+4] = (l >> 24) & 0xff;\n x[i+5] = (l >> 16) & 0xff;\n x[i+6] = (l >> 8) & 0xff;\n x[i+7] = l & 0xff;\n}\n\nfunction vn(x, xi, y, yi, n) {\n var i,d = 0;\n for (i = 0; i < n; i++) d |= x[xi+i]^y[yi+i];\n return (1 & ((d - 1) >>> 8)) - 1;\n}\n\nfunction crypto_verify_16(x, xi, y, yi) {\n return vn(x,xi,y,yi,16);\n}\n\nfunction crypto_verify_32(x, xi, y, yi) {\n return vn(x,xi,y,yi,32);\n}\n\nfunction core_salsa20(o, p, k, c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n x0 = x0 + j0 | 0;\n x1 = x1 + j1 | 0;\n x2 = x2 + j2 | 0;\n x3 = x3 + j3 | 0;\n x4 = x4 + j4 | 0;\n x5 = x5 + j5 | 0;\n x6 = x6 + j6 | 0;\n x7 = x7 + j7 | 0;\n x8 = x8 + j8 | 0;\n x9 = x9 + j9 | 0;\n x10 = x10 + j10 | 0;\n x11 = x11 + j11 | 0;\n x12 = x12 + j12 | 0;\n x13 = x13 + j13 | 0;\n x14 = x14 + j14 | 0;\n x15 = x15 + j15 | 0;\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x1 >>> 0 & 0xff;\n o[ 5] = x1 >>> 8 & 0xff;\n o[ 6] = x1 >>> 16 & 0xff;\n o[ 7] = x1 >>> 24 & 0xff;\n\n o[ 8] = x2 >>> 0 & 0xff;\n o[ 9] = x2 >>> 8 & 0xff;\n o[10] = x2 >>> 16 & 0xff;\n o[11] = x2 >>> 24 & 0xff;\n\n o[12] = x3 >>> 0 & 0xff;\n o[13] = x3 >>> 8 & 0xff;\n o[14] = x3 >>> 16 & 0xff;\n o[15] = x3 >>> 24 & 0xff;\n\n o[16] = x4 >>> 0 & 0xff;\n o[17] = x4 >>> 8 & 0xff;\n o[18] = x4 >>> 16 & 0xff;\n o[19] = x4 >>> 24 & 0xff;\n\n o[20] = x5 >>> 0 & 0xff;\n o[21] = x5 >>> 8 & 0xff;\n o[22] = x5 >>> 16 & 0xff;\n o[23] = x5 >>> 24 & 0xff;\n\n o[24] = x6 >>> 0 & 0xff;\n o[25] = x6 >>> 8 & 0xff;\n o[26] = x6 >>> 16 & 0xff;\n o[27] = x6 >>> 24 & 0xff;\n\n o[28] = x7 >>> 0 & 0xff;\n o[29] = x7 >>> 8 & 0xff;\n o[30] = x7 >>> 16 & 0xff;\n o[31] = x7 >>> 24 & 0xff;\n\n o[32] = x8 >>> 0 & 0xff;\n o[33] = x8 >>> 8 & 0xff;\n o[34] = x8 >>> 16 & 0xff;\n o[35] = x8 >>> 24 & 0xff;\n\n o[36] = x9 >>> 0 & 0xff;\n o[37] = x9 >>> 8 & 0xff;\n o[38] = x9 >>> 16 & 0xff;\n o[39] = x9 >>> 24 & 0xff;\n\n o[40] = x10 >>> 0 & 0xff;\n o[41] = x10 >>> 8 & 0xff;\n o[42] = x10 >>> 16 & 0xff;\n o[43] = x10 >>> 24 & 0xff;\n\n o[44] = x11 >>> 0 & 0xff;\n o[45] = x11 >>> 8 & 0xff;\n o[46] = x11 >>> 16 & 0xff;\n o[47] = x11 >>> 24 & 0xff;\n\n o[48] = x12 >>> 0 & 0xff;\n o[49] = x12 >>> 8 & 0xff;\n o[50] = x12 >>> 16 & 0xff;\n o[51] = x12 >>> 24 & 0xff;\n\n o[52] = x13 >>> 0 & 0xff;\n o[53] = x13 >>> 8 & 0xff;\n o[54] = x13 >>> 16 & 0xff;\n o[55] = x13 >>> 24 & 0xff;\n\n o[56] = x14 >>> 0 & 0xff;\n o[57] = x14 >>> 8 & 0xff;\n o[58] = x14 >>> 16 & 0xff;\n o[59] = x14 >>> 24 & 0xff;\n\n o[60] = x15 >>> 0 & 0xff;\n o[61] = x15 >>> 8 & 0xff;\n o[62] = x15 >>> 16 & 0xff;\n o[63] = x15 >>> 24 & 0xff;\n}\n\nfunction core_hsalsa20(o,p,k,c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x5 >>> 0 & 0xff;\n o[ 5] = x5 >>> 8 & 0xff;\n o[ 6] = x5 >>> 16 & 0xff;\n o[ 7] = x5 >>> 24 & 0xff;\n\n o[ 8] = x10 >>> 0 & 0xff;\n o[ 9] = x10 >>> 8 & 0xff;\n o[10] = x10 >>> 16 & 0xff;\n o[11] = x10 >>> 24 & 0xff;\n\n o[12] = x15 >>> 0 & 0xff;\n o[13] = x15 >>> 8 & 0xff;\n o[14] = x15 >>> 16 & 0xff;\n o[15] = x15 >>> 24 & 0xff;\n\n o[16] = x6 >>> 0 & 0xff;\n o[17] = x6 >>> 8 & 0xff;\n o[18] = x6 >>> 16 & 0xff;\n o[19] = x6 >>> 24 & 0xff;\n\n o[20] = x7 >>> 0 & 0xff;\n o[21] = x7 >>> 8 & 0xff;\n o[22] = x7 >>> 16 & 0xff;\n o[23] = x7 >>> 24 & 0xff;\n\n o[24] = x8 >>> 0 & 0xff;\n o[25] = x8 >>> 8 & 0xff;\n o[26] = x8 >>> 16 & 0xff;\n o[27] = x8 >>> 24 & 0xff;\n\n o[28] = x9 >>> 0 & 0xff;\n o[29] = x9 >>> 8 & 0xff;\n o[30] = x9 >>> 16 & 0xff;\n o[31] = x9 >>> 24 & 0xff;\n}\n\nfunction crypto_core_salsa20(out,inp,k,c) {\n core_salsa20(out,inp,k,c);\n}\n\nfunction crypto_core_hsalsa20(out,inp,k,c) {\n core_hsalsa20(out,inp,k,c);\n}\n\nvar sigma = new Uint8Array([101, 120, 112, 97, 110, 100, 32, 51, 50, 45, 98, 121, 116, 101, 32, 107]);\n // \"expand 32-byte k\"\n\nfunction crypto_stream_salsa20_xor(c,cpos,m,mpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n mpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n }\n return 0;\n}\n\nfunction crypto_stream_salsa20(c,cpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = x[i];\n }\n return 0;\n}\n\nfunction crypto_stream(c,cpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20(c,cpos,d,sn,s);\n}\n\nfunction crypto_stream_xor(c,cpos,m,mpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20_xor(c,cpos,m,mpos,d,sn,s);\n}\n\n/*\n* Port of Andrew Moon's Poly1305-donna-16. Public domain.\n* https://github.com/floodyberry/poly1305-donna\n*/\n\nvar poly1305 = function(key) {\n this.buffer = new Uint8Array(16);\n this.r = new Uint16Array(10);\n this.h = new Uint16Array(10);\n this.pad = new Uint16Array(8);\n this.leftover = 0;\n this.fin = 0;\n\n var t0, t1, t2, t3, t4, t5, t6, t7;\n\n t0 = key[ 0] & 0xff | (key[ 1] & 0xff) << 8; this.r[0] = ( t0 ) & 0x1fff;\n t1 = key[ 2] & 0xff | (key[ 3] & 0xff) << 8; this.r[1] = ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = key[ 4] & 0xff | (key[ 5] & 0xff) << 8; this.r[2] = ((t1 >>> 10) | (t2 << 6)) & 0x1f03;\n t3 = key[ 6] & 0xff | (key[ 7] & 0xff) << 8; this.r[3] = ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = key[ 8] & 0xff | (key[ 9] & 0xff) << 8; this.r[4] = ((t3 >>> 4) | (t4 << 12)) & 0x00ff;\n this.r[5] = ((t4 >>> 1)) & 0x1ffe;\n t5 = key[10] & 0xff | (key[11] & 0xff) << 8; this.r[6] = ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = key[12] & 0xff | (key[13] & 0xff) << 8; this.r[7] = ((t5 >>> 11) | (t6 << 5)) & 0x1f81;\n t7 = key[14] & 0xff | (key[15] & 0xff) << 8; this.r[8] = ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n this.r[9] = ((t7 >>> 5)) & 0x007f;\n\n this.pad[0] = key[16] & 0xff | (key[17] & 0xff) << 8;\n this.pad[1] = key[18] & 0xff | (key[19] & 0xff) << 8;\n this.pad[2] = key[20] & 0xff | (key[21] & 0xff) << 8;\n this.pad[3] = key[22] & 0xff | (key[23] & 0xff) << 8;\n this.pad[4] = key[24] & 0xff | (key[25] & 0xff) << 8;\n this.pad[5] = key[26] & 0xff | (key[27] & 0xff) << 8;\n this.pad[6] = key[28] & 0xff | (key[29] & 0xff) << 8;\n this.pad[7] = key[30] & 0xff | (key[31] & 0xff) << 8;\n};\n\npoly1305.prototype.blocks = function(m, mpos, bytes) {\n var hibit = this.fin ? 0 : (1 << 11);\n var t0, t1, t2, t3, t4, t5, t6, t7, c;\n var d0, d1, d2, d3, d4, d5, d6, d7, d8, d9;\n\n var h0 = this.h[0],\n h1 = this.h[1],\n h2 = this.h[2],\n h3 = this.h[3],\n h4 = this.h[4],\n h5 = this.h[5],\n h6 = this.h[6],\n h7 = this.h[7],\n h8 = this.h[8],\n h9 = this.h[9];\n\n var r0 = this.r[0],\n r1 = this.r[1],\n r2 = this.r[2],\n r3 = this.r[3],\n r4 = this.r[4],\n r5 = this.r[5],\n r6 = this.r[6],\n r7 = this.r[7],\n r8 = this.r[8],\n r9 = this.r[9];\n\n while (bytes >= 16) {\n t0 = m[mpos+ 0] & 0xff | (m[mpos+ 1] & 0xff) << 8; h0 += ( t0 ) & 0x1fff;\n t1 = m[mpos+ 2] & 0xff | (m[mpos+ 3] & 0xff) << 8; h1 += ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = m[mpos+ 4] & 0xff | (m[mpos+ 5] & 0xff) << 8; h2 += ((t1 >>> 10) | (t2 << 6)) & 0x1fff;\n t3 = m[mpos+ 6] & 0xff | (m[mpos+ 7] & 0xff) << 8; h3 += ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = m[mpos+ 8] & 0xff | (m[mpos+ 9] & 0xff) << 8; h4 += ((t3 >>> 4) | (t4 << 12)) & 0x1fff;\n h5 += ((t4 >>> 1)) & 0x1fff;\n t5 = m[mpos+10] & 0xff | (m[mpos+11] & 0xff) << 8; h6 += ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = m[mpos+12] & 0xff | (m[mpos+13] & 0xff) << 8; h7 += ((t5 >>> 11) | (t6 << 5)) & 0x1fff;\n t7 = m[mpos+14] & 0xff | (m[mpos+15] & 0xff) << 8; h8 += ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n h9 += ((t7 >>> 5)) | hibit;\n\n c = 0;\n\n d0 = c;\n d0 += h0 * r0;\n d0 += h1 * (5 * r9);\n d0 += h2 * (5 * r8);\n d0 += h3 * (5 * r7);\n d0 += h4 * (5 * r6);\n c = (d0 >>> 13); d0 &= 0x1fff;\n d0 += h5 * (5 * r5);\n d0 += h6 * (5 * r4);\n d0 += h7 * (5 * r3);\n d0 += h8 * (5 * r2);\n d0 += h9 * (5 * r1);\n c += (d0 >>> 13); d0 &= 0x1fff;\n\n d1 = c;\n d1 += h0 * r1;\n d1 += h1 * r0;\n d1 += h2 * (5 * r9);\n d1 += h3 * (5 * r8);\n d1 += h4 * (5 * r7);\n c = (d1 >>> 13); d1 &= 0x1fff;\n d1 += h5 * (5 * r6);\n d1 += h6 * (5 * r5);\n d1 += h7 * (5 * r4);\n d1 += h8 * (5 * r3);\n d1 += h9 * (5 * r2);\n c += (d1 >>> 13); d1 &= 0x1fff;\n\n d2 = c;\n d2 += h0 * r2;\n d2 += h1 * r1;\n d2 += h2 * r0;\n d2 += h3 * (5 * r9);\n d2 += h4 * (5 * r8);\n c = (d2 >>> 13); d2 &= 0x1fff;\n d2 += h5 * (5 * r7);\n d2 += h6 * (5 * r6);\n d2 += h7 * (5 * r5);\n d2 += h8 * (5 * r4);\n d2 += h9 * (5 * r3);\n c += (d2 >>> 13); d2 &= 0x1fff;\n\n d3 = c;\n d3 += h0 * r3;\n d3 += h1 * r2;\n d3 += h2 * r1;\n d3 += h3 * r0;\n d3 += h4 * (5 * r9);\n c = (d3 >>> 13); d3 &= 0x1fff;\n d3 += h5 * (5 * r8);\n d3 += h6 * (5 * r7);\n d3 += h7 * (5 * r6);\n d3 += h8 * (5 * r5);\n d3 += h9 * (5 * r4);\n c += (d3 >>> 13); d3 &= 0x1fff;\n\n d4 = c;\n d4 += h0 * r4;\n d4 += h1 * r3;\n d4 += h2 * r2;\n d4 += h3 * r1;\n d4 += h4 * r0;\n c = (d4 >>> 13); d4 &= 0x1fff;\n d4 += h5 * (5 * r9);\n d4 += h6 * (5 * r8);\n d4 += h7 * (5 * r7);\n d4 += h8 * (5 * r6);\n d4 += h9 * (5 * r5);\n c += (d4 >>> 13); d4 &= 0x1fff;\n\n d5 = c;\n d5 += h0 * r5;\n d5 += h1 * r4;\n d5 += h2 * r3;\n d5 += h3 * r2;\n d5 += h4 * r1;\n c = (d5 >>> 13); d5 &= 0x1fff;\n d5 += h5 * r0;\n d5 += h6 * (5 * r9);\n d5 += h7 * (5 * r8);\n d5 += h8 * (5 * r7);\n d5 += h9 * (5 * r6);\n c += (d5 >>> 13); d5 &= 0x1fff;\n\n d6 = c;\n d6 += h0 * r6;\n d6 += h1 * r5;\n d6 += h2 * r4;\n d6 += h3 * r3;\n d6 += h4 * r2;\n c = (d6 >>> 13); d6 &= 0x1fff;\n d6 += h5 * r1;\n d6 += h6 * r0;\n d6 += h7 * (5 * r9);\n d6 += h8 * (5 * r8);\n d6 += h9 * (5 * r7);\n c += (d6 >>> 13); d6 &= 0x1fff;\n\n d7 = c;\n d7 += h0 * r7;\n d7 += h1 * r6;\n d7 += h2 * r5;\n d7 += h3 * r4;\n d7 += h4 * r3;\n c = (d7 >>> 13); d7 &= 0x1fff;\n d7 += h5 * r2;\n d7 += h6 * r1;\n d7 += h7 * r0;\n d7 += h8 * (5 * r9);\n d7 += h9 * (5 * r8);\n c += (d7 >>> 13); d7 &= 0x1fff;\n\n d8 = c;\n d8 += h0 * r8;\n d8 += h1 * r7;\n d8 += h2 * r6;\n d8 += h3 * r5;\n d8 += h4 * r4;\n c = (d8 >>> 13); d8 &= 0x1fff;\n d8 += h5 * r3;\n d8 += h6 * r2;\n d8 += h7 * r1;\n d8 += h8 * r0;\n d8 += h9 * (5 * r9);\n c += (d8 >>> 13); d8 &= 0x1fff;\n\n d9 = c;\n d9 += h0 * r9;\n d9 += h1 * r8;\n d9 += h2 * r7;\n d9 += h3 * r6;\n d9 += h4 * r5;\n c = (d9 >>> 13); d9 &= 0x1fff;\n d9 += h5 * r4;\n d9 += h6 * r3;\n d9 += h7 * r2;\n d9 += h8 * r1;\n d9 += h9 * r0;\n c += (d9 >>> 13); d9 &= 0x1fff;\n\n c = (((c << 2) + c)) | 0;\n c = (c + d0) | 0;\n d0 = c & 0x1fff;\n c = (c >>> 13);\n d1 += c;\n\n h0 = d0;\n h1 = d1;\n h2 = d2;\n h3 = d3;\n h4 = d4;\n h5 = d5;\n h6 = d6;\n h7 = d7;\n h8 = d8;\n h9 = d9;\n\n mpos += 16;\n bytes -= 16;\n }\n this.h[0] = h0;\n this.h[1] = h1;\n this.h[2] = h2;\n this.h[3] = h3;\n this.h[4] = h4;\n this.h[5] = h5;\n this.h[6] = h6;\n this.h[7] = h7;\n this.h[8] = h8;\n this.h[9] = h9;\n};\n\npoly1305.prototype.finish = function(mac, macpos) {\n var g = new Uint16Array(10);\n var c, mask, f, i;\n\n if (this.leftover) {\n i = this.leftover;\n this.buffer[i++] = 1;\n for (; i < 16; i++) this.buffer[i] = 0;\n this.fin = 1;\n this.blocks(this.buffer, 0, 16);\n }\n\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n for (i = 2; i < 10; i++) {\n this.h[i] += c;\n c = this.h[i] >>> 13;\n this.h[i] &= 0x1fff;\n }\n this.h[0] += (c * 5);\n c = this.h[0] >>> 13;\n this.h[0] &= 0x1fff;\n this.h[1] += c;\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n this.h[2] += c;\n\n g[0] = this.h[0] + 5;\n c = g[0] >>> 13;\n g[0] &= 0x1fff;\n for (i = 1; i < 10; i++) {\n g[i] = this.h[i] + c;\n c = g[i] >>> 13;\n g[i] &= 0x1fff;\n }\n g[9] -= (1 << 13);\n\n mask = (c ^ 1) - 1;\n for (i = 0; i < 10; i++) g[i] &= mask;\n mask = ~mask;\n for (i = 0; i < 10; i++) this.h[i] = (this.h[i] & mask) | g[i];\n\n this.h[0] = ((this.h[0] ) | (this.h[1] << 13) ) & 0xffff;\n this.h[1] = ((this.h[1] >>> 3) | (this.h[2] << 10) ) & 0xffff;\n this.h[2] = ((this.h[2] >>> 6) | (this.h[3] << 7) ) & 0xffff;\n this.h[3] = ((this.h[3] >>> 9) | (this.h[4] << 4) ) & 0xffff;\n this.h[4] = ((this.h[4] >>> 12) | (this.h[5] << 1) | (this.h[6] << 14)) & 0xffff;\n this.h[5] = ((this.h[6] >>> 2) | (this.h[7] << 11) ) & 0xffff;\n this.h[6] = ((this.h[7] >>> 5) | (this.h[8] << 8) ) & 0xffff;\n this.h[7] = ((this.h[8] >>> 8) | (this.h[9] << 5) ) & 0xffff;\n\n f = this.h[0] + this.pad[0];\n this.h[0] = f & 0xffff;\n for (i = 1; i < 8; i++) {\n f = (((this.h[i] + this.pad[i]) | 0) + (f >>> 16)) | 0;\n this.h[i] = f & 0xffff;\n }\n\n mac[macpos+ 0] = (this.h[0] >>> 0) & 0xff;\n mac[macpos+ 1] = (this.h[0] >>> 8) & 0xff;\n mac[macpos+ 2] = (this.h[1] >>> 0) & 0xff;\n mac[macpos+ 3] = (this.h[1] >>> 8) & 0xff;\n mac[macpos+ 4] = (this.h[2] >>> 0) & 0xff;\n mac[macpos+ 5] = (this.h[2] >>> 8) & 0xff;\n mac[macpos+ 6] = (this.h[3] >>> 0) & 0xff;\n mac[macpos+ 7] = (this.h[3] >>> 8) & 0xff;\n mac[macpos+ 8] = (this.h[4] >>> 0) & 0xff;\n mac[macpos+ 9] = (this.h[4] >>> 8) & 0xff;\n mac[macpos+10] = (this.h[5] >>> 0) & 0xff;\n mac[macpos+11] = (this.h[5] >>> 8) & 0xff;\n mac[macpos+12] = (this.h[6] >>> 0) & 0xff;\n mac[macpos+13] = (this.h[6] >>> 8) & 0xff;\n mac[macpos+14] = (this.h[7] >>> 0) & 0xff;\n mac[macpos+15] = (this.h[7] >>> 8) & 0xff;\n};\n\npoly1305.prototype.update = function(m, mpos, bytes) {\n var i, want;\n\n if (this.leftover) {\n want = (16 - this.leftover);\n if (want > bytes)\n want = bytes;\n for (i = 0; i < want; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n bytes -= want;\n mpos += want;\n this.leftover += want;\n if (this.leftover < 16)\n return;\n this.blocks(this.buffer, 0, 16);\n this.leftover = 0;\n }\n\n if (bytes >= 16) {\n want = bytes - (bytes % 16);\n this.blocks(m, mpos, want);\n mpos += want;\n bytes -= want;\n }\n\n if (bytes) {\n for (i = 0; i < bytes; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n this.leftover += bytes;\n }\n};\n\nfunction crypto_onetimeauth(out, outpos, m, mpos, n, k) {\n var s = new poly1305(k);\n s.update(m, mpos, n);\n s.finish(out, outpos);\n return 0;\n}\n\nfunction crypto_onetimeauth_verify(h, hpos, m, mpos, n, k) {\n var x = new Uint8Array(16);\n crypto_onetimeauth(x,0,m,mpos,n,k);\n return crypto_verify_16(h,hpos,x,0);\n}\n\nfunction crypto_secretbox(c,m,d,n,k) {\n var i;\n if (d < 32) return -1;\n crypto_stream_xor(c,0,m,0,d,n,k);\n crypto_onetimeauth(c, 16, c, 32, d - 32, c);\n for (i = 0; i < 16; i++) c[i] = 0;\n return 0;\n}\n\nfunction crypto_secretbox_open(m,c,d,n,k) {\n var i;\n var x = new Uint8Array(32);\n if (d < 32) return -1;\n crypto_stream(x,0,32,n,k);\n if (crypto_onetimeauth_verify(c, 16,c, 32,d - 32,x) !== 0) return -1;\n crypto_stream_xor(m,0,c,0,d,n,k);\n for (i = 0; i < 32; i++) m[i] = 0;\n return 0;\n}\n\nfunction set25519(r, a) {\n var i;\n for (i = 0; i < 16; i++) r[i] = a[i]|0;\n}\n\nfunction car25519(o) {\n var i, v, c = 1;\n for (i = 0; i < 16; i++) {\n v = o[i] + c + 65535;\n c = Math.floor(v / 65536);\n o[i] = v - c * 65536;\n }\n o[0] += c-1 + 37 * (c-1);\n}\n\nfunction sel25519(p, q, b) {\n var t, c = ~(b-1);\n for (var i = 0; i < 16; i++) {\n t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n}\n\nfunction pack25519(o, n) {\n var i, j, b;\n var m = gf(), t = gf();\n for (i = 0; i < 16; i++) t[i] = n[i];\n car25519(t);\n car25519(t);\n car25519(t);\n for (j = 0; j < 2; j++) {\n m[0] = t[0] - 0xffed;\n for (i = 1; i < 15; i++) {\n m[i] = t[i] - 0xffff - ((m[i-1]>>16) & 1);\n m[i-1] &= 0xffff;\n }\n m[15] = t[15] - 0x7fff - ((m[14]>>16) & 1);\n b = (m[15]>>16) & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1-b);\n }\n for (i = 0; i < 16; i++) {\n o[2*i] = t[i] & 0xff;\n o[2*i+1] = t[i]>>8;\n }\n}\n\nfunction neq25519(a, b) {\n var c = new Uint8Array(32), d = new Uint8Array(32);\n pack25519(c, a);\n pack25519(d, b);\n return crypto_verify_32(c, 0, d, 0);\n}\n\nfunction par25519(a) {\n var d = new Uint8Array(32);\n pack25519(d, a);\n return d[0] & 1;\n}\n\nfunction unpack25519(o, n) {\n var i;\n for (i = 0; i < 16; i++) o[i] = n[2*i] + (n[2*i+1] << 8);\n o[15] &= 0x7fff;\n}\n\nfunction A(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] + b[i];\n}\n\nfunction Z(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] - b[i];\n}\n\nfunction M(o, a, b) {\n var v, c,\n t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0,\n t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0,\n t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0,\n t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0,\n b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3],\n b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7],\n b8 = b[8],\n b9 = b[9],\n b10 = b[10],\n b11 = b[11],\n b12 = b[12],\n b13 = b[13],\n b14 = b[14],\n b15 = b[15];\n\n v = a[0];\n t0 += v * b0;\n t1 += v * b1;\n t2 += v * b2;\n t3 += v * b3;\n t4 += v * b4;\n t5 += v * b5;\n t6 += v * b6;\n t7 += v * b7;\n t8 += v * b8;\n t9 += v * b9;\n t10 += v * b10;\n t11 += v * b11;\n t12 += v * b12;\n t13 += v * b13;\n t14 += v * b14;\n t15 += v * b15;\n v = a[1];\n t1 += v * b0;\n t2 += v * b1;\n t3 += v * b2;\n t4 += v * b3;\n t5 += v * b4;\n t6 += v * b5;\n t7 += v * b6;\n t8 += v * b7;\n t9 += v * b8;\n t10 += v * b9;\n t11 += v * b10;\n t12 += v * b11;\n t13 += v * b12;\n t14 += v * b13;\n t15 += v * b14;\n t16 += v * b15;\n v = a[2];\n t2 += v * b0;\n t3 += v * b1;\n t4 += v * b2;\n t5 += v * b3;\n t6 += v * b4;\n t7 += v * b5;\n t8 += v * b6;\n t9 += v * b7;\n t10 += v * b8;\n t11 += v * b9;\n t12 += v * b10;\n t13 += v * b11;\n t14 += v * b12;\n t15 += v * b13;\n t16 += v * b14;\n t17 += v * b15;\n v = a[3];\n t3 += v * b0;\n t4 += v * b1;\n t5 += v * b2;\n t6 += v * b3;\n t7 += v * b4;\n t8 += v * b5;\n t9 += v * b6;\n t10 += v * b7;\n t11 += v * b8;\n t12 += v * b9;\n t13 += v * b10;\n t14 += v * b11;\n t15 += v * b12;\n t16 += v * b13;\n t17 += v * b14;\n t18 += v * b15;\n v = a[4];\n t4 += v * b0;\n t5 += v * b1;\n t6 += v * b2;\n t7 += v * b3;\n t8 += v * b4;\n t9 += v * b5;\n t10 += v * b6;\n t11 += v * b7;\n t12 += v * b8;\n t13 += v * b9;\n t14 += v * b10;\n t15 += v * b11;\n t16 += v * b12;\n t17 += v * b13;\n t18 += v * b14;\n t19 += v * b15;\n v = a[5];\n t5 += v * b0;\n t6 += v * b1;\n t7 += v * b2;\n t8 += v * b3;\n t9 += v * b4;\n t10 += v * b5;\n t11 += v * b6;\n t12 += v * b7;\n t13 += v * b8;\n t14 += v * b9;\n t15 += v * b10;\n t16 += v * b11;\n t17 += v * b12;\n t18 += v * b13;\n t19 += v * b14;\n t20 += v * b15;\n v = a[6];\n t6 += v * b0;\n t7 += v * b1;\n t8 += v * b2;\n t9 += v * b3;\n t10 += v * b4;\n t11 += v * b5;\n t12 += v * b6;\n t13 += v * b7;\n t14 += v * b8;\n t15 += v * b9;\n t16 += v * b10;\n t17 += v * b11;\n t18 += v * b12;\n t19 += v * b13;\n t20 += v * b14;\n t21 += v * b15;\n v = a[7];\n t7 += v * b0;\n t8 += v * b1;\n t9 += v * b2;\n t10 += v * b3;\n t11 += v * b4;\n t12 += v * b5;\n t13 += v * b6;\n t14 += v * b7;\n t15 += v * b8;\n t16 += v * b9;\n t17 += v * b10;\n t18 += v * b11;\n t19 += v * b12;\n t20 += v * b13;\n t21 += v * b14;\n t22 += v * b15;\n v = a[8];\n t8 += v * b0;\n t9 += v * b1;\n t10 += v * b2;\n t11 += v * b3;\n t12 += v * b4;\n t13 += v * b5;\n t14 += v * b6;\n t15 += v * b7;\n t16 += v * b8;\n t17 += v * b9;\n t18 += v * b10;\n t19 += v * b11;\n t20 += v * b12;\n t21 += v * b13;\n t22 += v * b14;\n t23 += v * b15;\n v = a[9];\n t9 += v * b0;\n t10 += v * b1;\n t11 += v * b2;\n t12 += v * b3;\n t13 += v * b4;\n t14 += v * b5;\n t15 += v * b6;\n t16 += v * b7;\n t17 += v * b8;\n t18 += v * b9;\n t19 += v * b10;\n t20 += v * b11;\n t21 += v * b12;\n t22 += v * b13;\n t23 += v * b14;\n t24 += v * b15;\n v = a[10];\n t10 += v * b0;\n t11 += v * b1;\n t12 += v * b2;\n t13 += v * b3;\n t14 += v * b4;\n t15 += v * b5;\n t16 += v * b6;\n t17 += v * b7;\n t18 += v * b8;\n t19 += v * b9;\n t20 += v * b10;\n t21 += v * b11;\n t22 += v * b12;\n t23 += v * b13;\n t24 += v * b14;\n t25 += v * b15;\n v = a[11];\n t11 += v * b0;\n t12 += v * b1;\n t13 += v * b2;\n t14 += v * b3;\n t15 += v * b4;\n t16 += v * b5;\n t17 += v * b6;\n t18 += v * b7;\n t19 += v * b8;\n t20 += v * b9;\n t21 += v * b10;\n t22 += v * b11;\n t23 += v * b12;\n t24 += v * b13;\n t25 += v * b14;\n t26 += v * b15;\n v = a[12];\n t12 += v * b0;\n t13 += v * b1;\n t14 += v * b2;\n t15 += v * b3;\n t16 += v * b4;\n t17 += v * b5;\n t18 += v * b6;\n t19 += v * b7;\n t20 += v * b8;\n t21 += v * b9;\n t22 += v * b10;\n t23 += v * b11;\n t24 += v * b12;\n t25 += v * b13;\n t26 += v * b14;\n t27 += v * b15;\n v = a[13];\n t13 += v * b0;\n t14 += v * b1;\n t15 += v * b2;\n t16 += v * b3;\n t17 += v * b4;\n t18 += v * b5;\n t19 += v * b6;\n t20 += v * b7;\n t21 += v * b8;\n t22 += v * b9;\n t23 += v * b10;\n t24 += v * b11;\n t25 += v * b12;\n t26 += v * b13;\n t27 += v * b14;\n t28 += v * b15;\n v = a[14];\n t14 += v * b0;\n t15 += v * b1;\n t16 += v * b2;\n t17 += v * b3;\n t18 += v * b4;\n t19 += v * b5;\n t20 += v * b6;\n t21 += v * b7;\n t22 += v * b8;\n t23 += v * b9;\n t24 += v * b10;\n t25 += v * b11;\n t26 += v * b12;\n t27 += v * b13;\n t28 += v * b14;\n t29 += v * b15;\n v = a[15];\n t15 += v * b0;\n t16 += v * b1;\n t17 += v * b2;\n t18 += v * b3;\n t19 += v * b4;\n t20 += v * b5;\n t21 += v * b6;\n t22 += v * b7;\n t23 += v * b8;\n t24 += v * b9;\n t25 += v * b10;\n t26 += v * b11;\n t27 += v * b12;\n t28 += v * b13;\n t29 += v * b14;\n t30 += v * b15;\n\n t0 += 38 * t16;\n t1 += 38 * t17;\n t2 += 38 * t18;\n t3 += 38 * t19;\n t4 += 38 * t20;\n t5 += 38 * t21;\n t6 += 38 * t22;\n t7 += 38 * t23;\n t8 += 38 * t24;\n t9 += 38 * t25;\n t10 += 38 * t26;\n t11 += 38 * t27;\n t12 += 38 * t28;\n t13 += 38 * t29;\n t14 += 38 * t30;\n // t15 left as is\n\n // first car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n // second car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n o[ 0] = t0;\n o[ 1] = t1;\n o[ 2] = t2;\n o[ 3] = t3;\n o[ 4] = t4;\n o[ 5] = t5;\n o[ 6] = t6;\n o[ 7] = t7;\n o[ 8] = t8;\n o[ 9] = t9;\n o[10] = t10;\n o[11] = t11;\n o[12] = t12;\n o[13] = t13;\n o[14] = t14;\n o[15] = t15;\n}\n\nfunction S(o, a) {\n M(o, a, a);\n}\n\nfunction inv25519(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 253; a >= 0; a--) {\n S(c, c);\n if(a !== 2 && a !== 4) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction pow2523(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 250; a >= 0; a--) {\n S(c, c);\n if(a !== 1) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction crypto_scalarmult(q, n, p) {\n var z = new Uint8Array(32);\n var x = new Float64Array(80), r, i;\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf();\n for (i = 0; i < 31; i++) z[i] = n[i];\n z[31]=(n[31]&127)|64;\n z[0]&=248;\n unpack25519(x,p);\n for (i = 0; i < 16; i++) {\n b[i]=x[i];\n d[i]=a[i]=c[i]=0;\n }\n a[0]=d[0]=1;\n for (i=254; i>=0; --i) {\n r=(z[i>>>3]>>>(i&7))&1;\n sel25519(a,b,r);\n sel25519(c,d,r);\n A(e,a,c);\n Z(a,a,c);\n A(c,b,d);\n Z(b,b,d);\n S(d,e);\n S(f,a);\n M(a,c,a);\n M(c,b,e);\n A(e,a,c);\n Z(a,a,c);\n S(b,a);\n Z(c,d,f);\n M(a,c,_121665);\n A(a,a,d);\n M(c,c,a);\n M(a,d,f);\n M(d,b,x);\n S(b,e);\n sel25519(a,b,r);\n sel25519(c,d,r);\n }\n for (i = 0; i < 16; i++) {\n x[i+16]=a[i];\n x[i+32]=c[i];\n x[i+48]=b[i];\n x[i+64]=d[i];\n }\n var x32 = x.subarray(32);\n var x16 = x.subarray(16);\n inv25519(x32,x32);\n M(x16,x16,x32);\n pack25519(q,x16);\n return 0;\n}\n\nfunction crypto_scalarmult_base(q, n) {\n return crypto_scalarmult(q, n, _9);\n}\n\nfunction crypto_box_keypair(y, x) {\n randombytes(x, 32);\n return crypto_scalarmult_base(y, x);\n}\n\nfunction crypto_box_beforenm(k, y, x) {\n var s = new Uint8Array(32);\n crypto_scalarmult(s, x, y);\n return crypto_core_hsalsa20(k, _0, s, sigma);\n}\n\nvar crypto_box_afternm = crypto_secretbox;\nvar crypto_box_open_afternm = crypto_secretbox_open;\n\nfunction crypto_box(c, m, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_afternm(c, m, d, n, k);\n}\n\nfunction crypto_box_open(m, c, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_open_afternm(m, c, d, n, k);\n}\n\nvar 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\nfunction crypto_hashblocks_hl(hh, hl, m, n) {\n var wh = new Int32Array(16), wl = new Int32Array(16),\n bh0, bh1, bh2, bh3, bh4, bh5, bh6, bh7,\n bl0, bl1, bl2, bl3, bl4, bl5, bl6, bl7,\n th, tl, i, j, h, l, a, b, c, d;\n\n var ah0 = hh[0],\n ah1 = hh[1],\n ah2 = hh[2],\n ah3 = hh[3],\n ah4 = hh[4],\n ah5 = hh[5],\n ah6 = hh[6],\n ah7 = hh[7],\n\n al0 = hl[0],\n al1 = hl[1],\n al2 = hl[2],\n al3 = hl[3],\n al4 = hl[4],\n al5 = hl[5],\n al6 = hl[6],\n al7 = hl[7];\n\n var pos = 0;\n while (n >= 128) {\n for (i = 0; i < 16; i++) {\n j = 8 * i + pos;\n wh[i] = (m[j+0] << 24) | (m[j+1] << 16) | (m[j+2] << 8) | m[j+3];\n wl[i] = (m[j+4] << 24) | (m[j+5] << 16) | (m[j+6] << 8) | m[j+7];\n }\n for (i = 0; i < 80; i++) {\n bh0 = ah0;\n bh1 = ah1;\n bh2 = ah2;\n bh3 = ah3;\n bh4 = ah4;\n bh5 = ah5;\n bh6 = ah6;\n bh7 = ah7;\n\n bl0 = al0;\n bl1 = al1;\n bl2 = al2;\n bl3 = al3;\n bl4 = al4;\n bl5 = al5;\n bl6 = al6;\n bl7 = al7;\n\n // add\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma1\n h = ((ah4 >>> 14) | (al4 << (32-14))) ^ ((ah4 >>> 18) | (al4 << (32-18))) ^ ((al4 >>> (41-32)) | (ah4 << (32-(41-32))));\n l = ((al4 >>> 14) | (ah4 << (32-14))) ^ ((al4 >>> 18) | (ah4 << (32-18))) ^ ((ah4 >>> (41-32)) | (al4 << (32-(41-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Ch\n h = (ah4 & ah5) ^ (~ah4 & ah6);\n l = (al4 & al5) ^ (~al4 & al6);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // K\n h = K[i*2];\n l = K[i*2+1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // w\n h = wh[i%16];\n l = wl[i%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n th = c & 0xffff | d << 16;\n tl = a & 0xffff | b << 16;\n\n // add\n h = th;\n l = tl;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma0\n h = ((ah0 >>> 28) | (al0 << (32-28))) ^ ((al0 >>> (34-32)) | (ah0 << (32-(34-32)))) ^ ((al0 >>> (39-32)) | (ah0 << (32-(39-32))));\n l = ((al0 >>> 28) | (ah0 << (32-28))) ^ ((ah0 >>> (34-32)) | (al0 << (32-(34-32)))) ^ ((ah0 >>> (39-32)) | (al0 << (32-(39-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Maj\n h = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);\n l = (al0 & al1) ^ (al0 & al2) ^ (al1 & al2);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh7 = (c & 0xffff) | (d << 16);\n bl7 = (a & 0xffff) | (b << 16);\n\n // add\n h = bh3;\n l = bl3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = th;\n l = tl;\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh3 = (c & 0xffff) | (d << 16);\n bl3 = (a & 0xffff) | (b << 16);\n\n ah1 = bh0;\n ah2 = bh1;\n ah3 = bh2;\n ah4 = bh3;\n ah5 = bh4;\n ah6 = bh5;\n ah7 = bh6;\n ah0 = bh7;\n\n al1 = bl0;\n al2 = bl1;\n al3 = bl2;\n al4 = bl3;\n al5 = bl4;\n al6 = bl5;\n al7 = bl6;\n al0 = bl7;\n\n if (i%16 === 15) {\n for (j = 0; j < 16; j++) {\n // add\n h = wh[j];\n l = wl[j];\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = wh[(j+9)%16];\n l = wl[(j+9)%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma0\n th = wh[(j+1)%16];\n tl = wl[(j+1)%16];\n h = ((th >>> 1) | (tl << (32-1))) ^ ((th >>> 8) | (tl << (32-8))) ^ (th >>> 7);\n l = ((tl >>> 1) | (th << (32-1))) ^ ((tl >>> 8) | (th << (32-8))) ^ ((tl >>> 7) | (th << (32-7)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma1\n th = wh[(j+14)%16];\n tl = wl[(j+14)%16];\n h = ((th >>> 19) | (tl << (32-19))) ^ ((tl >>> (61-32)) | (th << (32-(61-32)))) ^ (th >>> 6);\n l = ((tl >>> 19) | (th << (32-19))) ^ ((th >>> (61-32)) | (tl << (32-(61-32)))) ^ ((tl >>> 6) | (th << (32-6)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n wh[j] = (c & 0xffff) | (d << 16);\n wl[j] = (a & 0xffff) | (b << 16);\n }\n }\n }\n\n // add\n h = ah0;\n l = al0;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[0];\n l = hl[0];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[0] = ah0 = (c & 0xffff) | (d << 16);\n hl[0] = al0 = (a & 0xffff) | (b << 16);\n\n h = ah1;\n l = al1;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[1];\n l = hl[1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[1] = ah1 = (c & 0xffff) | (d << 16);\n hl[1] = al1 = (a & 0xffff) | (b << 16);\n\n h = ah2;\n l = al2;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[2];\n l = hl[2];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[2] = ah2 = (c & 0xffff) | (d << 16);\n hl[2] = al2 = (a & 0xffff) | (b << 16);\n\n h = ah3;\n l = al3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[3];\n l = hl[3];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[3] = ah3 = (c & 0xffff) | (d << 16);\n hl[3] = al3 = (a & 0xffff) | (b << 16);\n\n h = ah4;\n l = al4;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[4];\n l = hl[4];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[4] = ah4 = (c & 0xffff) | (d << 16);\n hl[4] = al4 = (a & 0xffff) | (b << 16);\n\n h = ah5;\n l = al5;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[5];\n l = hl[5];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[5] = ah5 = (c & 0xffff) | (d << 16);\n hl[5] = al5 = (a & 0xffff) | (b << 16);\n\n h = ah6;\n l = al6;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[6];\n l = hl[6];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[6] = ah6 = (c & 0xffff) | (d << 16);\n hl[6] = al6 = (a & 0xffff) | (b << 16);\n\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[7];\n l = hl[7];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[7] = ah7 = (c & 0xffff) | (d << 16);\n hl[7] = al7 = (a & 0xffff) | (b << 16);\n\n pos += 128;\n n -= 128;\n }\n\n return n;\n}\n\nfunction crypto_hash(out, m, n) {\n var hh = new Int32Array(8),\n hl = new Int32Array(8),\n x = new Uint8Array(256),\n i, b = n;\n\n hh[0] = 0x6a09e667;\n hh[1] = 0xbb67ae85;\n hh[2] = 0x3c6ef372;\n hh[3] = 0xa54ff53a;\n hh[4] = 0x510e527f;\n hh[5] = 0x9b05688c;\n hh[6] = 0x1f83d9ab;\n hh[7] = 0x5be0cd19;\n\n hl[0] = 0xf3bcc908;\n hl[1] = 0x84caa73b;\n hl[2] = 0xfe94f82b;\n hl[3] = 0x5f1d36f1;\n hl[4] = 0xade682d1;\n hl[5] = 0x2b3e6c1f;\n hl[6] = 0xfb41bd6b;\n hl[7] = 0x137e2179;\n\n crypto_hashblocks_hl(hh, hl, m, n);\n n %= 128;\n\n for (i = 0; i < n; i++) x[i] = m[b-n+i];\n x[n] = 128;\n\n n = 256-128*(n<112?1:0);\n x[n-9] = 0;\n ts64(x, n-8, (b / 0x20000000) | 0, b << 3);\n crypto_hashblocks_hl(hh, hl, x, n);\n\n for (i = 0; i < 8; i++) ts64(out, 8*i, hh[i], hl[i]);\n\n return 0;\n}\n\nfunction add(p, q) {\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf(),\n g = gf(), h = gf(), t = gf();\n\n Z(a, p[1], p[0]);\n Z(t, q[1], q[0]);\n M(a, a, t);\n A(b, p[0], p[1]);\n A(t, q[0], q[1]);\n M(b, b, t);\n M(c, p[3], q[3]);\n M(c, c, D2);\n M(d, p[2], q[2]);\n A(d, d, d);\n Z(e, b, a);\n Z(f, d, c);\n A(g, d, c);\n A(h, b, a);\n\n M(p[0], e, f);\n M(p[1], h, g);\n M(p[2], g, f);\n M(p[3], e, h);\n}\n\nfunction cswap(p, q, b) {\n var i;\n for (i = 0; i < 4; i++) {\n sel25519(p[i], q[i], b);\n }\n}\n\nfunction pack(r, p) {\n var tx = gf(), ty = gf(), zi = gf();\n inv25519(zi, p[2]);\n M(tx, p[0], zi);\n M(ty, p[1], zi);\n pack25519(r, ty);\n r[31] ^= par25519(tx) << 7;\n}\n\nfunction scalarmult(p, q, s) {\n var b, i;\n set25519(p[0], gf0);\n set25519(p[1], gf1);\n set25519(p[2], gf1);\n set25519(p[3], gf0);\n for (i = 255; i >= 0; --i) {\n b = (s[(i/8)|0] >> (i&7)) & 1;\n cswap(p, q, b);\n add(q, p);\n add(p, p);\n cswap(p, q, b);\n }\n}\n\nfunction scalarbase(p, s) {\n var q = [gf(), gf(), gf(), gf()];\n set25519(q[0], X);\n set25519(q[1], Y);\n set25519(q[2], gf1);\n M(q[3], X, Y);\n scalarmult(p, q, s);\n}\n\nfunction crypto_sign_keypair(pk, sk, seeded) {\n var d = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()];\n var i;\n\n if (!seeded) randombytes(sk, 32);\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n scalarbase(p, d);\n pack(pk, p);\n\n for (i = 0; i < 32; i++) sk[i+32] = pk[i];\n return 0;\n}\n\nvar L = new Float64Array([0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10]);\n\nfunction modL(r, x) {\n var carry, i, j, k;\n for (i = 63; i >= 32; --i) {\n carry = 0;\n for (j = i - 32, k = i - 12; j < k; ++j) {\n x[j] += carry - 16 * x[i] * L[j - (i - 32)];\n carry = Math.floor((x[j] + 128) / 256);\n x[j] -= carry * 256;\n }\n x[j] += carry;\n x[i] = 0;\n }\n carry = 0;\n for (j = 0; j < 32; j++) {\n x[j] += carry - (x[31] >> 4) * L[j];\n carry = x[j] >> 8;\n x[j] &= 255;\n }\n for (j = 0; j < 32; j++) x[j] -= carry * L[j];\n for (i = 0; i < 32; i++) {\n x[i+1] += x[i] >> 8;\n r[i] = x[i] & 255;\n }\n}\n\nfunction reduce(r) {\n var x = new Float64Array(64), i;\n for (i = 0; i < 64; i++) x[i] = r[i];\n for (i = 0; i < 64; i++) r[i] = 0;\n modL(r, x);\n}\n\n// Note: difference from C - smlen returned, not passed as argument.\nfunction crypto_sign(sm, m, n, sk) {\n var d = new Uint8Array(64), h = new Uint8Array(64), r = new Uint8Array(64);\n var i, j, x = new Float64Array(64);\n var p = [gf(), gf(), gf(), gf()];\n\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n var smlen = n + 64;\n for (i = 0; i < n; i++) sm[64 + i] = m[i];\n for (i = 0; i < 32; i++) sm[32 + i] = d[32 + i];\n\n crypto_hash(r, sm.subarray(32), n+32);\n reduce(r);\n scalarbase(p, r);\n pack(sm, p);\n\n for (i = 32; i < 64; i++) sm[i] = sk[i];\n crypto_hash(h, sm, n + 64);\n reduce(h);\n\n for (i = 0; i < 64; i++) x[i] = 0;\n for (i = 0; i < 32; i++) x[i] = r[i];\n for (i = 0; i < 32; i++) {\n for (j = 0; j < 32; j++) {\n x[i+j] += h[i] * d[j];\n }\n }\n\n modL(sm.subarray(32), x);\n return smlen;\n}\n\nfunction unpackneg(r, p) {\n var t = gf(), chk = gf(), num = gf(),\n den = gf(), den2 = gf(), den4 = gf(),\n den6 = gf();\n\n set25519(r[2], gf1);\n unpack25519(r[1], p);\n S(num, r[1]);\n M(den, num, D);\n Z(num, num, r[2]);\n A(den, r[2], den);\n\n S(den2, den);\n S(den4, den2);\n M(den6, den4, den2);\n M(t, den6, num);\n M(t, t, den);\n\n pow2523(t, t);\n M(t, t, num);\n M(t, t, den);\n M(t, t, den);\n M(r[0], t, den);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) M(r[0], r[0], I);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) return -1;\n\n if (par25519(r[0]) === (p[31]>>7)) Z(r[0], gf0, r[0]);\n\n M(r[3], r[0], r[1]);\n return 0;\n}\n\nfunction crypto_sign_open(m, sm, n, pk) {\n var i;\n var t = new Uint8Array(32), h = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()],\n q = [gf(), gf(), gf(), gf()];\n\n if (n < 64) return -1;\n\n if (unpackneg(q, pk)) return -1;\n\n for (i = 0; i < n; i++) m[i] = sm[i];\n for (i = 0; i < 32; i++) m[i+32] = pk[i];\n crypto_hash(h, m, n);\n reduce(h);\n scalarmult(p, q, h);\n\n scalarbase(q, sm.subarray(32));\n add(p, q);\n pack(t, p);\n\n n -= 64;\n if (crypto_verify_32(sm, 0, t, 0)) {\n for (i = 0; i < n; i++) m[i] = 0;\n return -1;\n }\n\n for (i = 0; i < n; i++) m[i] = sm[i + 64];\n return n;\n}\n\nvar crypto_secretbox_KEYBYTES = 32,\n crypto_secretbox_NONCEBYTES = 24,\n crypto_secretbox_ZEROBYTES = 32,\n crypto_secretbox_BOXZEROBYTES = 16,\n crypto_scalarmult_BYTES = 32,\n crypto_scalarmult_SCALARBYTES = 32,\n crypto_box_PUBLICKEYBYTES = 32,\n crypto_box_SECRETKEYBYTES = 32,\n crypto_box_BEFORENMBYTES = 32,\n crypto_box_NONCEBYTES = crypto_secretbox_NONCEBYTES,\n crypto_box_ZEROBYTES = crypto_secretbox_ZEROBYTES,\n crypto_box_BOXZEROBYTES = crypto_secretbox_BOXZEROBYTES,\n crypto_sign_BYTES = 64,\n crypto_sign_PUBLICKEYBYTES = 32,\n crypto_sign_SECRETKEYBYTES = 64,\n crypto_sign_SEEDBYTES = 32,\n crypto_hash_BYTES = 64;\n\nnacl.lowlevel = {\n crypto_core_hsalsa20: crypto_core_hsalsa20,\n crypto_stream_xor: crypto_stream_xor,\n crypto_stream: crypto_stream,\n crypto_stream_salsa20_xor: crypto_stream_salsa20_xor,\n crypto_stream_salsa20: crypto_stream_salsa20,\n crypto_onetimeauth: crypto_onetimeauth,\n crypto_onetimeauth_verify: crypto_onetimeauth_verify,\n crypto_verify_16: crypto_verify_16,\n crypto_verify_32: crypto_verify_32,\n crypto_secretbox: crypto_secretbox,\n crypto_secretbox_open: crypto_secretbox_open,\n crypto_scalarmult: crypto_scalarmult,\n crypto_scalarmult_base: crypto_scalarmult_base,\n crypto_box_beforenm: crypto_box_beforenm,\n crypto_box_afternm: crypto_box_afternm,\n crypto_box: crypto_box,\n crypto_box_open: crypto_box_open,\n crypto_box_keypair: crypto_box_keypair,\n crypto_hash: crypto_hash,\n crypto_sign: crypto_sign,\n crypto_sign_keypair: crypto_sign_keypair,\n crypto_sign_open: crypto_sign_open,\n\n crypto_secretbox_KEYBYTES: crypto_secretbox_KEYBYTES,\n crypto_secretbox_NONCEBYTES: crypto_secretbox_NONCEBYTES,\n crypto_secretbox_ZEROBYTES: crypto_secretbox_ZEROBYTES,\n crypto_secretbox_BOXZEROBYTES: crypto_secretbox_BOXZEROBYTES,\n crypto_scalarmult_BYTES: crypto_scalarmult_BYTES,\n crypto_scalarmult_SCALARBYTES: crypto_scalarmult_SCALARBYTES,\n crypto_box_PUBLICKEYBYTES: crypto_box_PUBLICKEYBYTES,\n crypto_box_SECRETKEYBYTES: crypto_box_SECRETKEYBYTES,\n crypto_box_BEFORENMBYTES: crypto_box_BEFORENMBYTES,\n crypto_box_NONCEBYTES: crypto_box_NONCEBYTES,\n crypto_box_ZEROBYTES: crypto_box_ZEROBYTES,\n crypto_box_BOXZEROBYTES: crypto_box_BOXZEROBYTES,\n crypto_sign_BYTES: crypto_sign_BYTES,\n crypto_sign_PUBLICKEYBYTES: crypto_sign_PUBLICKEYBYTES,\n crypto_sign_SECRETKEYBYTES: crypto_sign_SECRETKEYBYTES,\n crypto_sign_SEEDBYTES: crypto_sign_SEEDBYTES,\n crypto_hash_BYTES: crypto_hash_BYTES,\n\n gf: gf,\n D: D,\n L: L,\n pack25519: pack25519,\n unpack25519: unpack25519,\n M: M,\n A: A,\n S: S,\n Z: Z,\n pow2523: pow2523,\n add: add,\n set25519: set25519,\n modL: modL,\n scalarmult: scalarmult,\n scalarbase: scalarbase,\n};\n\n/* High-level API */\n\nfunction checkLengths(k, n) {\n if (k.length !== crypto_secretbox_KEYBYTES) throw new Error('bad key size');\n if (n.length !== crypto_secretbox_NONCEBYTES) throw new Error('bad nonce size');\n}\n\nfunction checkBoxLengths(pk, sk) {\n if (pk.length !== crypto_box_PUBLICKEYBYTES) throw new Error('bad public key size');\n if (sk.length !== crypto_box_SECRETKEYBYTES) throw new Error('bad secret key size');\n}\n\nfunction checkArrayTypes() {\n for (var i = 0; i < arguments.length; i++) {\n if (!(arguments[i] instanceof Uint8Array))\n throw new TypeError('unexpected type, use Uint8Array');\n }\n}\n\nfunction cleanup(arr) {\n for (var i = 0; i < arr.length; i++) arr[i] = 0;\n}\n\nnacl.randomBytes = function(n) {\n var b = new Uint8Array(n);\n randombytes(b, n);\n return b;\n};\n\nnacl.secretbox = function(msg, nonce, key) {\n checkArrayTypes(msg, nonce, key);\n checkLengths(key, nonce);\n var m = new Uint8Array(crypto_secretbox_ZEROBYTES + msg.length);\n var c = new Uint8Array(m.length);\n for (var i = 0; i < msg.length; i++) m[i+crypto_secretbox_ZEROBYTES] = msg[i];\n crypto_secretbox(c, m, m.length, nonce, key);\n return c.subarray(crypto_secretbox_BOXZEROBYTES);\n};\n\nnacl.secretbox.open = function(box, nonce, key) {\n checkArrayTypes(box, nonce, key);\n checkLengths(key, nonce);\n var c = new Uint8Array(crypto_secretbox_BOXZEROBYTES + box.length);\n var m = new Uint8Array(c.length);\n for (var i = 0; i < box.length; i++) c[i+crypto_secretbox_BOXZEROBYTES] = box[i];\n if (c.length < 32) return null;\n if (crypto_secretbox_open(m, c, c.length, nonce, key) !== 0) return null;\n return m.subarray(crypto_secretbox_ZEROBYTES);\n};\n\nnacl.secretbox.keyLength = crypto_secretbox_KEYBYTES;\nnacl.secretbox.nonceLength = crypto_secretbox_NONCEBYTES;\nnacl.secretbox.overheadLength = crypto_secretbox_BOXZEROBYTES;\n\nnacl.scalarMult = function(n, p) {\n checkArrayTypes(n, p);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n if (p.length !== crypto_scalarmult_BYTES) throw new Error('bad p size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult(q, n, p);\n return q;\n};\n\nnacl.scalarMult.base = function(n) {\n checkArrayTypes(n);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult_base(q, n);\n return q;\n};\n\nnacl.scalarMult.scalarLength = crypto_scalarmult_SCALARBYTES;\nnacl.scalarMult.groupElementLength = crypto_scalarmult_BYTES;\n\nnacl.box = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox(msg, nonce, k);\n};\n\nnacl.box.before = function(publicKey, secretKey) {\n checkArrayTypes(publicKey, secretKey);\n checkBoxLengths(publicKey, secretKey);\n var k = new Uint8Array(crypto_box_BEFORENMBYTES);\n crypto_box_beforenm(k, publicKey, secretKey);\n return k;\n};\n\nnacl.box.after = nacl.secretbox;\n\nnacl.box.open = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox.open(msg, nonce, k);\n};\n\nnacl.box.open.after = nacl.secretbox.open;\n\nnacl.box.keyPair = function() {\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_box_SECRETKEYBYTES);\n crypto_box_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.box.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_box_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n crypto_scalarmult_base(pk, secretKey);\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.box.publicKeyLength = crypto_box_PUBLICKEYBYTES;\nnacl.box.secretKeyLength = crypto_box_SECRETKEYBYTES;\nnacl.box.sharedKeyLength = crypto_box_BEFORENMBYTES;\nnacl.box.nonceLength = crypto_box_NONCEBYTES;\nnacl.box.overheadLength = nacl.secretbox.overheadLength;\n\nnacl.sign = function(msg, secretKey) {\n checkArrayTypes(msg, secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var signedMsg = new Uint8Array(crypto_sign_BYTES+msg.length);\n crypto_sign(signedMsg, msg, msg.length, secretKey);\n return signedMsg;\n};\n\nnacl.sign.open = function(signedMsg, publicKey) {\n checkArrayTypes(signedMsg, publicKey);\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var tmp = new Uint8Array(signedMsg.length);\n var mlen = crypto_sign_open(tmp, signedMsg, signedMsg.length, publicKey);\n if (mlen < 0) return null;\n var m = new Uint8Array(mlen);\n for (var i = 0; i < m.length; i++) m[i] = tmp[i];\n return m;\n};\n\nnacl.sign.detached = function(msg, secretKey) {\n var signedMsg = nacl.sign(msg, secretKey);\n var sig = new Uint8Array(crypto_sign_BYTES);\n for (var i = 0; i < sig.length; i++) sig[i] = signedMsg[i];\n return sig;\n};\n\nnacl.sign.detached.verify = function(msg, sig, publicKey) {\n checkArrayTypes(msg, sig, publicKey);\n if (sig.length !== crypto_sign_BYTES)\n throw new Error('bad signature size');\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var sm = new Uint8Array(crypto_sign_BYTES + msg.length);\n var m = new Uint8Array(crypto_sign_BYTES + msg.length);\n var i;\n for (i = 0; i < crypto_sign_BYTES; i++) sm[i] = sig[i];\n for (i = 0; i < msg.length; i++) sm[i+crypto_sign_BYTES] = msg[i];\n return (crypto_sign_open(m, sm, sm.length, publicKey) >= 0);\n};\n\nnacl.sign.keyPair = function() {\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n crypto_sign_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n for (var i = 0; i < pk.length; i++) pk[i] = secretKey[32+i];\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.sign.keyPair.fromSeed = function(seed) {\n checkArrayTypes(seed);\n if (seed.length !== crypto_sign_SEEDBYTES)\n throw new Error('bad seed size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n for (var i = 0; i < 32; i++) sk[i] = seed[i];\n crypto_sign_keypair(pk, sk, true);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.publicKeyLength = crypto_sign_PUBLICKEYBYTES;\nnacl.sign.secretKeyLength = crypto_sign_SECRETKEYBYTES;\nnacl.sign.seedLength = crypto_sign_SEEDBYTES;\nnacl.sign.signatureLength = crypto_sign_BYTES;\n\nnacl.hash = function(msg) {\n checkArrayTypes(msg);\n var h = new Uint8Array(crypto_hash_BYTES);\n crypto_hash(h, msg, msg.length);\n return h;\n};\n\nnacl.hash.hashLength = crypto_hash_BYTES;\n\nnacl.verify = function(x, y) {\n checkArrayTypes(x, y);\n // Zero length arguments are considered not equal.\n if (x.length === 0 || y.length === 0) return false;\n if (x.length !== y.length) return false;\n return (vn(x, 0, y, 0, x.length) === 0) ? true : false;\n};\n\nnacl.setPRNG = function(fn) {\n randombytes = fn;\n};\n\n(function() {\n // Initialize PRNG if environment provides CSPRNG.\n // If not, methods calling randombytes will throw.\n var crypto = typeof self !== 'undefined' ? (self.crypto || self.msCrypto) : null;\n if (crypto && crypto.getRandomValues) {\n // Browsers.\n var QUOTA = 65536;\n nacl.setPRNG(function(x, n) {\n var i, v = new Uint8Array(n);\n for (i = 0; i < n; i += QUOTA) {\n crypto.getRandomValues(v.subarray(i, i + Math.min(n - i, QUOTA)));\n }\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n } else if (typeof require !== 'undefined') {\n // Node.js.\n crypto = require('crypto');\n if (crypto && crypto.randomBytes) {\n nacl.setPRNG(function(x, n) {\n var i, v = crypto.randomBytes(n);\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n }\n }\n})();\n\n})(typeof module !== 'undefined' && module.exports ? module.exports : (self.nacl = self.nacl || {}));\n","/**\n * @param {Uint8Array} array1\n * @param {Uint8Array} array2\n * @returns {boolean}\n */\nexport function arrayEqual(array1, array2) {\n if (array1 === array2) {\n return true;\n }\n\n if (array1.byteLength !== array2.byteLength) {\n return false;\n }\n\n const view1 = new DataView(\n array1.buffer,\n array1.byteOffset,\n array1.byteLength,\n );\n const view2 = new DataView(\n array2.buffer,\n array2.byteOffset,\n array2.byteLength,\n );\n\n let i = array1.byteLength;\n\n while (i--) {\n if (view1.getUint8(i) !== view2.getUint8(i)) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * @param {Uint8Array} array\n * @param {Uint8Array} arrayPrefix\n * @returns {boolean}\n */\nexport function arrayStartsWith(array, arrayPrefix) {\n if (array.byteLength < arrayPrefix.byteLength) {\n return false;\n }\n\n let i = arrayPrefix.byteLength;\n\n while (i--) {\n if (array[i] !== arrayPrefix[i]) {\n return false;\n }\n }\n\n return true;\n}\n","/**\n * @type {string[]}\n */\nconst byteToHex = [];\n\nfor (let n = 0; n <= 0xff; n += 1) {\n byteToHex.push(n.toString(16).padStart(2, \"0\"));\n}\n\n/**\n * @param {Uint8Array} data\n * @returns {string}\n */\nexport function encode(data) {\n let string = \"\";\n\n for (const byte of data) {\n string += byteToHex[byte];\n }\n\n return string;\n}\n\n/**\n * @param {string} text\n * @returns {Uint8Array}\n */\nexport function decode(text) {\n const str = text.startsWith(\"0x\") ? text.substring(2) : text;\n const result = str.match(/.{1,2}/gu);\n\n return new Uint8Array(\n (result == null ? [] : result).map((byte) => parseInt(byte, 16)),\n );\n}\n\n/**\n * Encode with a specified length. Supports zero padding if the most significant byte is 0\n *\n * https://github.com/ethers-io/ethers.js/blob/master/packages/bytes/src.ts/index.ts#L315\n * @param {Uint8Array} value\n * @param {number} length\n * @returns {string}\n */\nexport function hexZeroPadded(value, length) {\n const HexCharacters = \"0123456789abcdef\";\n\n // https://github.com/ethers-io/ethers.js/blob/master/packages/bytes/src.ts/index.ts#L243\n let result = \"0x\";\n for (let i = 0; i < value.length; i++) {\n let v = value[i];\n result += HexCharacters[(v & 0xf0) >> 4] + HexCharacters[v & 0x0f];\n }\n\n // https://github.com/ethers-io/ethers.js/blob/master/packages/bytes/src.ts/index.ts#L315\n if (result.length > 2 * length + 2) {\n console.log(\"result out of range\", \"result\");\n }\n\n while (result.length < 2 * length + 2) {\n result = \"0x0\" + result.substring(2);\n }\n\n return result.substring(2);\n}\n","/**\n * Node.js module for Forge.\n *\n * @author Dave Longley\n *\n * Copyright 2011-2016 Digital Bazaar, Inc.\n */\nmodule.exports = {\n // default options\n options: {\n usePureJavaScript: false\n }\n};\n","/**\n * Base-N/Base-X encoding/decoding functions.\n *\n * Original implementation from base-x:\n * https://github.com/cryptocoinjs/base-x\n *\n * Which is MIT licensed:\n *\n * The MIT License (MIT)\n *\n * Copyright base-x contributors (c) 2016\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n * DEALINGS IN THE SOFTWARE.\n */\nvar api = {};\nmodule.exports = api;\n\n// baseN alphabet indexes\nvar _reverseAlphabets = {};\n\n/**\n * BaseN-encodes a Uint8Array using the given alphabet.\n *\n * @param input the Uint8Array to encode.\n * @param maxline the maximum number of encoded characters per line to use,\n * defaults to none.\n *\n * @return the baseN-encoded output string.\n */\napi.encode = function(input, alphabet, maxline) {\n if(typeof alphabet !== 'string') {\n throw new TypeError('\"alphabet\" must be a string.');\n }\n if(maxline !== undefined && typeof maxline !== 'number') {\n throw new TypeError('\"maxline\" must be a number.');\n }\n\n var output = '';\n\n if(!(input instanceof Uint8Array)) {\n // assume forge byte buffer\n output = _encodeWithByteBuffer(input, alphabet);\n } else {\n var i = 0;\n var base = alphabet.length;\n var first = alphabet.charAt(0);\n var digits = [0];\n for(i = 0; i < input.length; ++i) {\n for(var j = 0, carry = input[i]; j < digits.length; ++j) {\n carry += digits[j] << 8;\n digits[j] = carry % base;\n carry = (carry / base) | 0;\n }\n\n while(carry > 0) {\n digits.push(carry % base);\n carry = (carry / base) | 0;\n }\n }\n\n // deal with leading zeros\n for(i = 0; input[i] === 0 && i < input.length - 1; ++i) {\n output += first;\n }\n // convert digits to a string\n for(i = digits.length - 1; i >= 0; --i) {\n output += alphabet[digits[i]];\n }\n }\n\n if(maxline) {\n var regex = new RegExp('.{1,' + maxline + '}', 'g');\n output = output.match(regex).join('\\r\\n');\n }\n\n return output;\n};\n\n/**\n * Decodes a baseN-encoded (using the given alphabet) string to a\n * Uint8Array.\n *\n * @param input the baseN-encoded input string.\n *\n * @return the Uint8Array.\n */\napi.decode = function(input, alphabet) {\n if(typeof input !== 'string') {\n throw new TypeError('\"input\" must be a string.');\n }\n if(typeof alphabet !== 'string') {\n throw new TypeError('\"alphabet\" must be a string.');\n }\n\n var table = _reverseAlphabets[alphabet];\n if(!table) {\n // compute reverse alphabet\n table = _reverseAlphabets[alphabet] = [];\n for(var i = 0; i < alphabet.length; ++i) {\n table[alphabet.charCodeAt(i)] = i;\n }\n }\n\n // remove whitespace characters\n input = input.replace(/\\s/g, '');\n\n var base = alphabet.length;\n var first = alphabet.charAt(0);\n var bytes = [0];\n for(var i = 0; i < input.length; i++) {\n var value = table[input.charCodeAt(i)];\n if(value === undefined) {\n return;\n }\n\n for(var j = 0, carry = value; j < bytes.length; ++j) {\n carry += bytes[j] * base;\n bytes[j] = carry & 0xff;\n carry >>= 8;\n }\n\n while(carry > 0) {\n bytes.push(carry & 0xff);\n carry >>= 8;\n }\n }\n\n // deal with leading zeros\n for(var k = 0; input[k] === first && k < input.length - 1; ++k) {\n bytes.push(0);\n }\n\n if(typeof Buffer !== 'undefined') {\n return Buffer.from(bytes.reverse());\n }\n\n return new Uint8Array(bytes.reverse());\n};\n\nfunction _encodeWithByteBuffer(input, alphabet) {\n var i = 0;\n var base = alphabet.length;\n var first = alphabet.charAt(0);\n var digits = [0];\n for(i = 0; i < input.length(); ++i) {\n for(var j = 0, carry = input.at(i); j < digits.length; ++j) {\n carry += digits[j] << 8;\n digits[j] = carry % base;\n carry = (carry / base) | 0;\n }\n\n while(carry > 0) {\n digits.push(carry % base);\n carry = (carry / base) | 0;\n }\n }\n\n var output = '';\n\n // deal with leading zeros\n for(i = 0; input.at(i) === 0 && i < input.length() - 1; ++i) {\n output += first;\n }\n // convert digits to a string\n for(i = digits.length - 1; i >= 0; --i) {\n output += alphabet[digits[i]];\n }\n\n return output;\n}\n","/**\n * Utility functions for web applications.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2010-2018 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nvar baseN = require('./baseN');\n\n/* Utilities API */\nvar util = module.exports = forge.util = forge.util || {};\n\n// define setImmediate and nextTick\n(function() {\n // use native nextTick (unless we're in webpack)\n // webpack (or better node-libs-browser polyfill) sets process.browser.\n // this way we can detect webpack properly\n if(typeof process !== 'undefined' && process.nextTick && !process.browser) {\n util.nextTick = process.nextTick;\n if(typeof setImmediate === 'function') {\n util.setImmediate = setImmediate;\n } else {\n // polyfill setImmediate with nextTick, older versions of node\n // (those w/o setImmediate) won't totally starve IO\n util.setImmediate = util.nextTick;\n }\n return;\n }\n\n // polyfill nextTick with native setImmediate\n if(typeof setImmediate === 'function') {\n util.setImmediate = function() { return setImmediate.apply(undefined, arguments); };\n util.nextTick = function(callback) {\n return setImmediate(callback);\n };\n return;\n }\n\n /* Note: A polyfill upgrade pattern is used here to allow combining\n polyfills. For example, MutationObserver is fast, but blocks UI updates,\n so it needs to allow UI updates periodically, so it falls back on\n postMessage or setTimeout. */\n\n // polyfill with setTimeout\n util.setImmediate = function(callback) {\n setTimeout(callback, 0);\n };\n\n // upgrade polyfill to use postMessage\n if(typeof window !== 'undefined' &&\n typeof window.postMessage === 'function') {\n var msg = 'forge.setImmediate';\n var callbacks = [];\n util.setImmediate = function(callback) {\n callbacks.push(callback);\n // only send message when one hasn't been sent in\n // the current turn of the event loop\n if(callbacks.length === 1) {\n window.postMessage(msg, '*');\n }\n };\n function handler(event) {\n if(event.source === window && event.data === msg) {\n event.stopPropagation();\n var copy = callbacks.slice();\n callbacks.length = 0;\n copy.forEach(function(callback) {\n callback();\n });\n }\n }\n window.addEventListener('message', handler, true);\n }\n\n // upgrade polyfill to use MutationObserver\n if(typeof MutationObserver !== 'undefined') {\n // polyfill with MutationObserver\n var now = Date.now();\n var attr = true;\n var div = document.createElement('div');\n var callbacks = [];\n new MutationObserver(function() {\n var copy = callbacks.slice();\n callbacks.length = 0;\n copy.forEach(function(callback) {\n callback();\n });\n }).observe(div, {attributes: true});\n var oldSetImmediate = util.setImmediate;\n util.setImmediate = function(callback) {\n if(Date.now() - now > 15) {\n now = Date.now();\n oldSetImmediate(callback);\n } else {\n callbacks.push(callback);\n // only trigger observer when it hasn't been triggered in\n // the current turn of the event loop\n if(callbacks.length === 1) {\n div.setAttribute('a', attr = !attr);\n }\n }\n };\n }\n\n util.nextTick = util.setImmediate;\n})();\n\n// check if running under Node.js\nutil.isNodejs =\n typeof process !== 'undefined' && process.versions && process.versions.node;\n\n\n// 'self' will also work in Web Workers (instance of WorkerGlobalScope) while\n// it will point to `window` in the main thread.\n// To remain compatible with older browsers, we fall back to 'window' if 'self'\n// is not available.\nutil.globalScope = (function() {\n if(util.isNodejs) {\n return global;\n }\n\n return typeof self === 'undefined' ? window : self;\n})();\n\n// define isArray\nutil.isArray = Array.isArray || function(x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n};\n\n// define isArrayBuffer\nutil.isArrayBuffer = function(x) {\n return typeof ArrayBuffer !== 'undefined' && x instanceof ArrayBuffer;\n};\n\n// define isArrayBufferView\nutil.isArrayBufferView = function(x) {\n return x && util.isArrayBuffer(x.buffer) && x.byteLength !== undefined;\n};\n\n/**\n * Ensure a bits param is 8, 16, 24, or 32. Used to validate input for\n * algorithms where bit manipulation, JavaScript limitations, and/or algorithm\n * design only allow for byte operations of a limited size.\n *\n * @param n number of bits.\n *\n * Throw Error if n invalid.\n */\nfunction _checkBitsParam(n) {\n if(!(n === 8 || n === 16 || n === 24 || n === 32)) {\n throw new Error('Only 8, 16, 24, or 32 bits supported: ' + n);\n }\n}\n\n// TODO: set ByteBuffer to best available backing\nutil.ByteBuffer = ByteStringBuffer;\n\n/** Buffer w/BinaryString backing */\n\n/**\n * Constructor for a binary string backed byte buffer.\n *\n * @param [b] the bytes to wrap (either encoded as string, one byte per\n * character, or as an ArrayBuffer or Typed Array).\n */\nfunction ByteStringBuffer(b) {\n // TODO: update to match DataBuffer API\n\n // the data in this buffer\n this.data = '';\n // the pointer for reading from this buffer\n this.read = 0;\n\n if(typeof b === 'string') {\n this.data = b;\n } else if(util.isArrayBuffer(b) || util.isArrayBufferView(b)) {\n if(typeof Buffer !== 'undefined' && b instanceof Buffer) {\n this.data = b.toString('binary');\n } else {\n // convert native buffer to forge buffer\n // FIXME: support native buffers internally instead\n var arr = new Uint8Array(b);\n try {\n this.data = String.fromCharCode.apply(null, arr);\n } catch(e) {\n for(var i = 0; i < arr.length; ++i) {\n this.putByte(arr[i]);\n }\n }\n }\n } else if(b instanceof ByteStringBuffer ||\n (typeof b === 'object' && typeof b.data === 'string' &&\n typeof b.read === 'number')) {\n // copy existing buffer\n this.data = b.data;\n this.read = b.read;\n }\n\n // used for v8 optimization\n this._constructedStringLength = 0;\n}\nutil.ByteStringBuffer = ByteStringBuffer;\n\n/* Note: This is an optimization for V8-based browsers. When V8 concatenates\n a string, the strings are only joined logically using a \"cons string\" or\n \"constructed/concatenated string\". These containers keep references to one\n another and can result in very large memory usage. For example, if a 2MB\n string is constructed by concatenating 4 bytes together at a time, the\n memory usage will be ~44MB; so ~22x increase. The strings are only joined\n together when an operation requiring their joining takes place, such as\n substr(). This function is called when adding data to this buffer to ensure\n these types of strings are periodically joined to reduce the memory\n footprint. */\nvar _MAX_CONSTRUCTED_STRING_LENGTH = 4096;\nutil.ByteStringBuffer.prototype._optimizeConstructedString = function(x) {\n this._constructedStringLength += x;\n if(this._constructedStringLength > _MAX_CONSTRUCTED_STRING_LENGTH) {\n // this substr() should cause the constructed string to join\n this.data.substr(0, 1);\n this._constructedStringLength = 0;\n }\n};\n\n/**\n * Gets the number of bytes in this buffer.\n *\n * @return the number of bytes in this buffer.\n */\nutil.ByteStringBuffer.prototype.length = function() {\n return this.data.length - this.read;\n};\n\n/**\n * Gets whether or not this buffer is empty.\n *\n * @return true if this buffer is empty, false if not.\n */\nutil.ByteStringBuffer.prototype.isEmpty = function() {\n return this.length() <= 0;\n};\n\n/**\n * Puts a byte in this buffer.\n *\n * @param b the byte to put.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.putByte = function(b) {\n return this.putBytes(String.fromCharCode(b));\n};\n\n/**\n * Puts a byte in this buffer N times.\n *\n * @param b the byte to put.\n * @param n the number of bytes of value b to put.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.fillWithByte = function(b, n) {\n b = String.fromCharCode(b);\n var d = this.data;\n while(n > 0) {\n if(n & 1) {\n d += b;\n }\n n >>>= 1;\n if(n > 0) {\n b += b;\n }\n }\n this.data = d;\n this._optimizeConstructedString(n);\n return this;\n};\n\n/**\n * Puts bytes in this buffer.\n *\n * @param bytes the bytes (as a binary encoded string) to put.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.putBytes = function(bytes) {\n this.data += bytes;\n this._optimizeConstructedString(bytes.length);\n return this;\n};\n\n/**\n * Puts a UTF-16 encoded string into this buffer.\n *\n * @param str the string to put.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.putString = function(str) {\n return this.putBytes(util.encodeUtf8(str));\n};\n\n/**\n * Puts a 16-bit integer in this buffer in big-endian order.\n *\n * @param i the 16-bit integer.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.putInt16 = function(i) {\n return this.putBytes(\n String.fromCharCode(i >> 8 & 0xFF) +\n String.fromCharCode(i & 0xFF));\n};\n\n/**\n * Puts a 24-bit integer in this buffer in big-endian order.\n *\n * @param i the 24-bit integer.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.putInt24 = function(i) {\n return this.putBytes(\n String.fromCharCode(i >> 16 & 0xFF) +\n String.fromCharCode(i >> 8 & 0xFF) +\n String.fromCharCode(i & 0xFF));\n};\n\n/**\n * Puts a 32-bit integer in this buffer in big-endian order.\n *\n * @param i the 32-bit integer.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.putInt32 = function(i) {\n return this.putBytes(\n String.fromCharCode(i >> 24 & 0xFF) +\n String.fromCharCode(i >> 16 & 0xFF) +\n String.fromCharCode(i >> 8 & 0xFF) +\n String.fromCharCode(i & 0xFF));\n};\n\n/**\n * Puts a 16-bit integer in this buffer in little-endian order.\n *\n * @param i the 16-bit integer.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.putInt16Le = function(i) {\n return this.putBytes(\n String.fromCharCode(i & 0xFF) +\n String.fromCharCode(i >> 8 & 0xFF));\n};\n\n/**\n * Puts a 24-bit integer in this buffer in little-endian order.\n *\n * @param i the 24-bit integer.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.putInt24Le = function(i) {\n return this.putBytes(\n String.fromCharCode(i & 0xFF) +\n String.fromCharCode(i >> 8 & 0xFF) +\n String.fromCharCode(i >> 16 & 0xFF));\n};\n\n/**\n * Puts a 32-bit integer in this buffer in little-endian order.\n *\n * @param i the 32-bit integer.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.putInt32Le = function(i) {\n return this.putBytes(\n String.fromCharCode(i & 0xFF) +\n String.fromCharCode(i >> 8 & 0xFF) +\n String.fromCharCode(i >> 16 & 0xFF) +\n String.fromCharCode(i >> 24 & 0xFF));\n};\n\n/**\n * Puts an n-bit integer in this buffer in big-endian order.\n *\n * @param i the n-bit integer.\n * @param n the number of bits in the integer (8, 16, 24, or 32).\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.putInt = function(i, n) {\n _checkBitsParam(n);\n var bytes = '';\n do {\n n -= 8;\n bytes += String.fromCharCode((i >> n) & 0xFF);\n } while(n > 0);\n return this.putBytes(bytes);\n};\n\n/**\n * Puts a signed n-bit integer in this buffer in big-endian order. Two's\n * complement representation is used.\n *\n * @param i the n-bit integer.\n * @param n the number of bits in the integer (8, 16, 24, or 32).\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.putSignedInt = function(i, n) {\n // putInt checks n\n if(i < 0) {\n i += 2 << (n - 1);\n }\n return this.putInt(i, n);\n};\n\n/**\n * Puts the given buffer into this buffer.\n *\n * @param buffer the buffer to put into this one.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.putBuffer = function(buffer) {\n return this.putBytes(buffer.getBytes());\n};\n\n/**\n * Gets a byte from this buffer and advances the read pointer by 1.\n *\n * @return the byte.\n */\nutil.ByteStringBuffer.prototype.getByte = function() {\n return this.data.charCodeAt(this.read++);\n};\n\n/**\n * Gets a uint16 from this buffer in big-endian order and advances the read\n * pointer by 2.\n *\n * @return the uint16.\n */\nutil.ByteStringBuffer.prototype.getInt16 = function() {\n var rval = (\n this.data.charCodeAt(this.read) << 8 ^\n this.data.charCodeAt(this.read + 1));\n this.read += 2;\n return rval;\n};\n\n/**\n * Gets a uint24 from this buffer in big-endian order and advances the read\n * pointer by 3.\n *\n * @return the uint24.\n */\nutil.ByteStringBuffer.prototype.getInt24 = function() {\n var rval = (\n this.data.charCodeAt(this.read) << 16 ^\n this.data.charCodeAt(this.read + 1) << 8 ^\n this.data.charCodeAt(this.read + 2));\n this.read += 3;\n return rval;\n};\n\n/**\n * Gets a uint32 from this buffer in big-endian order and advances the read\n * pointer by 4.\n *\n * @return the word.\n */\nutil.ByteStringBuffer.prototype.getInt32 = function() {\n var rval = (\n this.data.charCodeAt(this.read) << 24 ^\n this.data.charCodeAt(this.read + 1) << 16 ^\n this.data.charCodeAt(this.read + 2) << 8 ^\n this.data.charCodeAt(this.read + 3));\n this.read += 4;\n return rval;\n};\n\n/**\n * Gets a uint16 from this buffer in little-endian order and advances the read\n * pointer by 2.\n *\n * @return the uint16.\n */\nutil.ByteStringBuffer.prototype.getInt16Le = function() {\n var rval = (\n this.data.charCodeAt(this.read) ^\n this.data.charCodeAt(this.read + 1) << 8);\n this.read += 2;\n return rval;\n};\n\n/**\n * Gets a uint24 from this buffer in little-endian order and advances the read\n * pointer by 3.\n *\n * @return the uint24.\n */\nutil.ByteStringBuffer.prototype.getInt24Le = function() {\n var rval = (\n this.data.charCodeAt(this.read) ^\n this.data.charCodeAt(this.read + 1) << 8 ^\n this.data.charCodeAt(this.read + 2) << 16);\n this.read += 3;\n return rval;\n};\n\n/**\n * Gets a uint32 from this buffer in little-endian order and advances the read\n * pointer by 4.\n *\n * @return the word.\n */\nutil.ByteStringBuffer.prototype.getInt32Le = function() {\n var rval = (\n this.data.charCodeAt(this.read) ^\n this.data.charCodeAt(this.read + 1) << 8 ^\n this.data.charCodeAt(this.read + 2) << 16 ^\n this.data.charCodeAt(this.read + 3) << 24);\n this.read += 4;\n return rval;\n};\n\n/**\n * Gets an n-bit integer from this buffer in big-endian order and advances the\n * read pointer by ceil(n/8).\n *\n * @param n the number of bits in the integer (8, 16, 24, or 32).\n *\n * @return the integer.\n */\nutil.ByteStringBuffer.prototype.getInt = function(n) {\n _checkBitsParam(n);\n var rval = 0;\n do {\n // TODO: Use (rval * 0x100) if adding support for 33 to 53 bits.\n rval = (rval << 8) + this.data.charCodeAt(this.read++);\n n -= 8;\n } while(n > 0);\n return rval;\n};\n\n/**\n * Gets a signed n-bit integer from this buffer in big-endian order, using\n * two's complement, and advances the read pointer by n/8.\n *\n * @param n the number of bits in the integer (8, 16, 24, or 32).\n *\n * @return the integer.\n */\nutil.ByteStringBuffer.prototype.getSignedInt = function(n) {\n // getInt checks n\n var x = this.getInt(n);\n var max = 2 << (n - 2);\n if(x >= max) {\n x -= max << 1;\n }\n return x;\n};\n\n/**\n * Reads bytes out as a binary encoded string and clears them from the\n * buffer. Note that the resulting string is binary encoded (in node.js this\n * encoding is referred to as `binary`, it is *not* `utf8`).\n *\n * @param count the number of bytes to read, undefined or null for all.\n *\n * @return a binary encoded string of bytes.\n */\nutil.ByteStringBuffer.prototype.getBytes = function(count) {\n var rval;\n if(count) {\n // read count bytes\n count = Math.min(this.length(), count);\n rval = this.data.slice(this.read, this.read + count);\n this.read += count;\n } else if(count === 0) {\n rval = '';\n } else {\n // read all bytes, optimize to only copy when needed\n rval = (this.read === 0) ? this.data : this.data.slice(this.read);\n this.clear();\n }\n return rval;\n};\n\n/**\n * Gets a binary encoded string of the bytes from this buffer without\n * modifying the read pointer.\n *\n * @param count the number of bytes to get, omit to get all.\n *\n * @return a string full of binary encoded characters.\n */\nutil.ByteStringBuffer.prototype.bytes = function(count) {\n return (typeof(count) === 'undefined' ?\n this.data.slice(this.read) :\n this.data.slice(this.read, this.read + count));\n};\n\n/**\n * Gets a byte at the given index without modifying the read pointer.\n *\n * @param i the byte index.\n *\n * @return the byte.\n */\nutil.ByteStringBuffer.prototype.at = function(i) {\n return this.data.charCodeAt(this.read + i);\n};\n\n/**\n * Puts a byte at the given index without modifying the read pointer.\n *\n * @param i the byte index.\n * @param b the byte to put.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.setAt = function(i, b) {\n this.data = this.data.substr(0, this.read + i) +\n String.fromCharCode(b) +\n this.data.substr(this.read + i + 1);\n return this;\n};\n\n/**\n * Gets the last byte without modifying the read pointer.\n *\n * @return the last byte.\n */\nutil.ByteStringBuffer.prototype.last = function() {\n return this.data.charCodeAt(this.data.length - 1);\n};\n\n/**\n * Creates a copy of this buffer.\n *\n * @return the copy.\n */\nutil.ByteStringBuffer.prototype.copy = function() {\n var c = util.createBuffer(this.data);\n c.read = this.read;\n return c;\n};\n\n/**\n * Compacts this buffer.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.compact = function() {\n if(this.read > 0) {\n this.data = this.data.slice(this.read);\n this.read = 0;\n }\n return this;\n};\n\n/**\n * Clears this buffer.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.clear = function() {\n this.data = '';\n this.read = 0;\n return this;\n};\n\n/**\n * Shortens this buffer by triming bytes off of the end of this buffer.\n *\n * @param count the number of bytes to trim off.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.truncate = function(count) {\n var len = Math.max(0, this.length() - count);\n this.data = this.data.substr(this.read, len);\n this.read = 0;\n return this;\n};\n\n/**\n * Converts this buffer to a hexadecimal string.\n *\n * @return a hexadecimal string.\n */\nutil.ByteStringBuffer.prototype.toHex = function() {\n var rval = '';\n for(var i = this.read; i < this.data.length; ++i) {\n var b = this.data.charCodeAt(i);\n if(b < 16) {\n rval += '0';\n }\n rval += b.toString(16);\n }\n return rval;\n};\n\n/**\n * Converts this buffer to a UTF-16 string (standard JavaScript string).\n *\n * @return a UTF-16 string.\n */\nutil.ByteStringBuffer.prototype.toString = function() {\n return util.decodeUtf8(this.bytes());\n};\n\n/** End Buffer w/BinaryString backing */\n\n/** Buffer w/UInt8Array backing */\n\n/**\n * FIXME: Experimental. Do not use yet.\n *\n * Constructor for an ArrayBuffer-backed byte buffer.\n *\n * The buffer may be constructed from a string, an ArrayBuffer, DataView, or a\n * TypedArray.\n *\n * If a string is given, its encoding should be provided as an option,\n * otherwise it will default to 'binary'. A 'binary' string is encoded such\n * that each character is one byte in length and size.\n *\n * If an ArrayBuffer, DataView, or TypedArray is given, it will be used\n * *directly* without any copying. Note that, if a write to the buffer requires\n * more space, the buffer will allocate a new backing ArrayBuffer to\n * accommodate. The starting read and write offsets for the buffer may be\n * given as options.\n *\n * @param [b] the initial bytes for this buffer.\n * @param options the options to use:\n * [readOffset] the starting read offset to use (default: 0).\n * [writeOffset] the starting write offset to use (default: the\n * length of the first parameter).\n * [growSize] the minimum amount, in bytes, to grow the buffer by to\n * accommodate writes (default: 1024).\n * [encoding] the encoding ('binary', 'utf8', 'utf16', 'hex') for the\n * first parameter, if it is a string (default: 'binary').\n */\nfunction DataBuffer(b, options) {\n // default options\n options = options || {};\n\n // pointers for read from/write to buffer\n this.read = options.readOffset || 0;\n this.growSize = options.growSize || 1024;\n\n var isArrayBuffer = util.isArrayBuffer(b);\n var isArrayBufferView = util.isArrayBufferView(b);\n if(isArrayBuffer || isArrayBufferView) {\n // use ArrayBuffer directly\n if(isArrayBuffer) {\n this.data = new DataView(b);\n } else {\n // TODO: adjust read/write offset based on the type of view\n // or specify that this must be done in the options ... that the\n // offsets are byte-based\n this.data = new DataView(b.buffer, b.byteOffset, b.byteLength);\n }\n this.write = ('writeOffset' in options ?\n options.writeOffset : this.data.byteLength);\n return;\n }\n\n // initialize to empty array buffer and add any given bytes using putBytes\n this.data = new DataView(new ArrayBuffer(0));\n this.write = 0;\n\n if(b !== null && b !== undefined) {\n this.putBytes(b);\n }\n\n if('writeOffset' in options) {\n this.write = options.writeOffset;\n }\n}\nutil.DataBuffer = DataBuffer;\n\n/**\n * Gets the number of bytes in this buffer.\n *\n * @return the number of bytes in this buffer.\n */\nutil.DataBuffer.prototype.length = function() {\n return this.write - this.read;\n};\n\n/**\n * Gets whether or not this buffer is empty.\n *\n * @return true if this buffer is empty, false if not.\n */\nutil.DataBuffer.prototype.isEmpty = function() {\n return this.length() <= 0;\n};\n\n/**\n * Ensures this buffer has enough empty space to accommodate the given number\n * of bytes. An optional parameter may be given that indicates a minimum\n * amount to grow the buffer if necessary. If the parameter is not given,\n * the buffer will be grown by some previously-specified default amount\n * or heuristic.\n *\n * @param amount the number of bytes to accommodate.\n * @param [growSize] the minimum amount, in bytes, to grow the buffer by if\n * necessary.\n */\nutil.DataBuffer.prototype.accommodate = function(amount, growSize) {\n if(this.length() >= amount) {\n return this;\n }\n growSize = Math.max(growSize || this.growSize, amount);\n\n // grow buffer\n var src = new Uint8Array(\n this.data.buffer, this.data.byteOffset, this.data.byteLength);\n var dst = new Uint8Array(this.length() + growSize);\n dst.set(src);\n this.data = new DataView(dst.buffer);\n\n return this;\n};\n\n/**\n * Puts a byte in this buffer.\n *\n * @param b the byte to put.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.putByte = function(b) {\n this.accommodate(1);\n this.data.setUint8(this.write++, b);\n return this;\n};\n\n/**\n * Puts a byte in this buffer N times.\n *\n * @param b the byte to put.\n * @param n the number of bytes of value b to put.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.fillWithByte = function(b, n) {\n this.accommodate(n);\n for(var i = 0; i < n; ++i) {\n this.data.setUint8(b);\n }\n return this;\n};\n\n/**\n * Puts bytes in this buffer. The bytes may be given as a string, an\n * ArrayBuffer, a DataView, or a TypedArray.\n *\n * @param bytes the bytes to put.\n * @param [encoding] the encoding for the first parameter ('binary', 'utf8',\n * 'utf16', 'hex'), if it is a string (default: 'binary').\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.putBytes = function(bytes, encoding) {\n if(util.isArrayBufferView(bytes)) {\n var src = new Uint8Array(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n var len = src.byteLength - src.byteOffset;\n this.accommodate(len);\n var dst = new Uint8Array(this.data.buffer, this.write);\n dst.set(src);\n this.write += len;\n return this;\n }\n\n if(util.isArrayBuffer(bytes)) {\n var src = new Uint8Array(bytes);\n this.accommodate(src.byteLength);\n var dst = new Uint8Array(this.data.buffer);\n dst.set(src, this.write);\n this.write += src.byteLength;\n return this;\n }\n\n // bytes is a util.DataBuffer or equivalent\n if(bytes instanceof util.DataBuffer ||\n (typeof bytes === 'object' &&\n typeof bytes.read === 'number' && typeof bytes.write === 'number' &&\n util.isArrayBufferView(bytes.data))) {\n var src = new Uint8Array(bytes.data.byteLength, bytes.read, bytes.length());\n this.accommodate(src.byteLength);\n var dst = new Uint8Array(bytes.data.byteLength, this.write);\n dst.set(src);\n this.write += src.byteLength;\n return this;\n }\n\n if(bytes instanceof util.ByteStringBuffer) {\n // copy binary string and process as the same as a string parameter below\n bytes = bytes.data;\n encoding = 'binary';\n }\n\n // string conversion\n encoding = encoding || 'binary';\n if(typeof bytes === 'string') {\n var view;\n\n // decode from string\n if(encoding === 'hex') {\n this.accommodate(Math.ceil(bytes.length / 2));\n view = new Uint8Array(this.data.buffer, this.write);\n this.write += util.binary.hex.decode(bytes, view, this.write);\n return this;\n }\n if(encoding === 'base64') {\n this.accommodate(Math.ceil(bytes.length / 4) * 3);\n view = new Uint8Array(this.data.buffer, this.write);\n this.write += util.binary.base64.decode(bytes, view, this.write);\n return this;\n }\n\n // encode text as UTF-8 bytes\n if(encoding === 'utf8') {\n // encode as UTF-8 then decode string as raw binary\n bytes = util.encodeUtf8(bytes);\n encoding = 'binary';\n }\n\n // decode string as raw binary\n if(encoding === 'binary' || encoding === 'raw') {\n // one byte per character\n this.accommodate(bytes.length);\n view = new Uint8Array(this.data.buffer, this.write);\n this.write += util.binary.raw.decode(view);\n return this;\n }\n\n // encode text as UTF-16 bytes\n if(encoding === 'utf16') {\n // two bytes per character\n this.accommodate(bytes.length * 2);\n view = new Uint16Array(this.data.buffer, this.write);\n this.write += util.text.utf16.encode(view);\n return this;\n }\n\n throw new Error('Invalid encoding: ' + encoding);\n }\n\n throw Error('Invalid parameter: ' + bytes);\n};\n\n/**\n * Puts the given buffer into this buffer.\n *\n * @param buffer the buffer to put into this one.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.putBuffer = function(buffer) {\n this.putBytes(buffer);\n buffer.clear();\n return this;\n};\n\n/**\n * Puts a string into this buffer.\n *\n * @param str the string to put.\n * @param [encoding] the encoding for the string (default: 'utf16').\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.putString = function(str) {\n return this.putBytes(str, 'utf16');\n};\n\n/**\n * Puts a 16-bit integer in this buffer in big-endian order.\n *\n * @param i the 16-bit integer.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.putInt16 = function(i) {\n this.accommodate(2);\n this.data.setInt16(this.write, i);\n this.write += 2;\n return this;\n};\n\n/**\n * Puts a 24-bit integer in this buffer in big-endian order.\n *\n * @param i the 24-bit integer.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.putInt24 = function(i) {\n this.accommodate(3);\n this.data.setInt16(this.write, i >> 8 & 0xFFFF);\n this.data.setInt8(this.write, i >> 16 & 0xFF);\n this.write += 3;\n return this;\n};\n\n/**\n * Puts a 32-bit integer in this buffer in big-endian order.\n *\n * @param i the 32-bit integer.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.putInt32 = function(i) {\n this.accommodate(4);\n this.data.setInt32(this.write, i);\n this.write += 4;\n return this;\n};\n\n/**\n * Puts a 16-bit integer in this buffer in little-endian order.\n *\n * @param i the 16-bit integer.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.putInt16Le = function(i) {\n this.accommodate(2);\n this.data.setInt16(this.write, i, true);\n this.write += 2;\n return this;\n};\n\n/**\n * Puts a 24-bit integer in this buffer in little-endian order.\n *\n * @param i the 24-bit integer.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.putInt24Le = function(i) {\n this.accommodate(3);\n this.data.setInt8(this.write, i >> 16 & 0xFF);\n this.data.setInt16(this.write, i >> 8 & 0xFFFF, true);\n this.write += 3;\n return this;\n};\n\n/**\n * Puts a 32-bit integer in this buffer in little-endian order.\n *\n * @param i the 32-bit integer.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.putInt32Le = function(i) {\n this.accommodate(4);\n this.data.setInt32(this.write, i, true);\n this.write += 4;\n return this;\n};\n\n/**\n * Puts an n-bit integer in this buffer in big-endian order.\n *\n * @param i the n-bit integer.\n * @param n the number of bits in the integer (8, 16, 24, or 32).\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.putInt = function(i, n) {\n _checkBitsParam(n);\n this.accommodate(n / 8);\n do {\n n -= 8;\n this.data.setInt8(this.write++, (i >> n) & 0xFF);\n } while(n > 0);\n return this;\n};\n\n/**\n * Puts a signed n-bit integer in this buffer in big-endian order. Two's\n * complement representation is used.\n *\n * @param i the n-bit integer.\n * @param n the number of bits in the integer.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.putSignedInt = function(i, n) {\n _checkBitsParam(n);\n this.accommodate(n / 8);\n if(i < 0) {\n i += 2 << (n - 1);\n }\n return this.putInt(i, n);\n};\n\n/**\n * Gets a byte from this buffer and advances the read pointer by 1.\n *\n * @return the byte.\n */\nutil.DataBuffer.prototype.getByte = function() {\n return this.data.getInt8(this.read++);\n};\n\n/**\n * Gets a uint16 from this buffer in big-endian order and advances the read\n * pointer by 2.\n *\n * @return the uint16.\n */\nutil.DataBuffer.prototype.getInt16 = function() {\n var rval = this.data.getInt16(this.read);\n this.read += 2;\n return rval;\n};\n\n/**\n * Gets a uint24 from this buffer in big-endian order and advances the read\n * pointer by 3.\n *\n * @return the uint24.\n */\nutil.DataBuffer.prototype.getInt24 = function() {\n var rval = (\n this.data.getInt16(this.read) << 8 ^\n this.data.getInt8(this.read + 2));\n this.read += 3;\n return rval;\n};\n\n/**\n * Gets a uint32 from this buffer in big-endian order and advances the read\n * pointer by 4.\n *\n * @return the word.\n */\nutil.DataBuffer.prototype.getInt32 = function() {\n var rval = this.data.getInt32(this.read);\n this.read += 4;\n return rval;\n};\n\n/**\n * Gets a uint16 from this buffer in little-endian order and advances the read\n * pointer by 2.\n *\n * @return the uint16.\n */\nutil.DataBuffer.prototype.getInt16Le = function() {\n var rval = this.data.getInt16(this.read, true);\n this.read += 2;\n return rval;\n};\n\n/**\n * Gets a uint24 from this buffer in little-endian order and advances the read\n * pointer by 3.\n *\n * @return the uint24.\n */\nutil.DataBuffer.prototype.getInt24Le = function() {\n var rval = (\n this.data.getInt8(this.read) ^\n this.data.getInt16(this.read + 1, true) << 8);\n this.read += 3;\n return rval;\n};\n\n/**\n * Gets a uint32 from this buffer in little-endian order and advances the read\n * pointer by 4.\n *\n * @return the word.\n */\nutil.DataBuffer.prototype.getInt32Le = function() {\n var rval = this.data.getInt32(this.read, true);\n this.read += 4;\n return rval;\n};\n\n/**\n * Gets an n-bit integer from this buffer in big-endian order and advances the\n * read pointer by n/8.\n *\n * @param n the number of bits in the integer (8, 16, 24, or 32).\n *\n * @return the integer.\n */\nutil.DataBuffer.prototype.getInt = function(n) {\n _checkBitsParam(n);\n var rval = 0;\n do {\n // TODO: Use (rval * 0x100) if adding support for 33 to 53 bits.\n rval = (rval << 8) + this.data.getInt8(this.read++);\n n -= 8;\n } while(n > 0);\n return rval;\n};\n\n/**\n * Gets a signed n-bit integer from this buffer in big-endian order, using\n * two's complement, and advances the read pointer by n/8.\n *\n * @param n the number of bits in the integer (8, 16, 24, or 32).\n *\n * @return the integer.\n */\nutil.DataBuffer.prototype.getSignedInt = function(n) {\n // getInt checks n\n var x = this.getInt(n);\n var max = 2 << (n - 2);\n if(x >= max) {\n x -= max << 1;\n }\n return x;\n};\n\n/**\n * Reads bytes out as a binary encoded string and clears them from the\n * buffer.\n *\n * @param count the number of bytes to read, undefined or null for all.\n *\n * @return a binary encoded string of bytes.\n */\nutil.DataBuffer.prototype.getBytes = function(count) {\n // TODO: deprecate this method, it is poorly named and\n // this.toString('binary') replaces it\n // add a toTypedArray()/toArrayBuffer() function\n var rval;\n if(count) {\n // read count bytes\n count = Math.min(this.length(), count);\n rval = this.data.slice(this.read, this.read + count);\n this.read += count;\n } else if(count === 0) {\n rval = '';\n } else {\n // read all bytes, optimize to only copy when needed\n rval = (this.read === 0) ? this.data : this.data.slice(this.read);\n this.clear();\n }\n return rval;\n};\n\n/**\n * Gets a binary encoded string of the bytes from this buffer without\n * modifying the read pointer.\n *\n * @param count the number of bytes to get, omit to get all.\n *\n * @return a string full of binary encoded characters.\n */\nutil.DataBuffer.prototype.bytes = function(count) {\n // TODO: deprecate this method, it is poorly named, add \"getString()\"\n return (typeof(count) === 'undefined' ?\n this.data.slice(this.read) :\n this.data.slice(this.read, this.read + count));\n};\n\n/**\n * Gets a byte at the given index without modifying the read pointer.\n *\n * @param i the byte index.\n *\n * @return the byte.\n */\nutil.DataBuffer.prototype.at = function(i) {\n return this.data.getUint8(this.read + i);\n};\n\n/**\n * Puts a byte at the given index without modifying the read pointer.\n *\n * @param i the byte index.\n * @param b the byte to put.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.setAt = function(i, b) {\n this.data.setUint8(i, b);\n return this;\n};\n\n/**\n * Gets the last byte without modifying the read pointer.\n *\n * @return the last byte.\n */\nutil.DataBuffer.prototype.last = function() {\n return this.data.getUint8(this.write - 1);\n};\n\n/**\n * Creates a copy of this buffer.\n *\n * @return the copy.\n */\nutil.DataBuffer.prototype.copy = function() {\n return new util.DataBuffer(this);\n};\n\n/**\n * Compacts this buffer.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.compact = function() {\n if(this.read > 0) {\n var src = new Uint8Array(this.data.buffer, this.read);\n var dst = new Uint8Array(src.byteLength);\n dst.set(src);\n this.data = new DataView(dst);\n this.write -= this.read;\n this.read = 0;\n }\n return this;\n};\n\n/**\n * Clears this buffer.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.clear = function() {\n this.data = new DataView(new ArrayBuffer(0));\n this.read = this.write = 0;\n return this;\n};\n\n/**\n * Shortens this buffer by triming bytes off of the end of this buffer.\n *\n * @param count the number of bytes to trim off.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.truncate = function(count) {\n this.write = Math.max(0, this.length() - count);\n this.read = Math.min(this.read, this.write);\n return this;\n};\n\n/**\n * Converts this buffer to a hexadecimal string.\n *\n * @return a hexadecimal string.\n */\nutil.DataBuffer.prototype.toHex = function() {\n var rval = '';\n for(var i = this.read; i < this.data.byteLength; ++i) {\n var b = this.data.getUint8(i);\n if(b < 16) {\n rval += '0';\n }\n rval += b.toString(16);\n }\n return rval;\n};\n\n/**\n * Converts this buffer to a string, using the given encoding. If no\n * encoding is given, 'utf8' (UTF-8) is used.\n *\n * @param [encoding] the encoding to use: 'binary', 'utf8', 'utf16', 'hex',\n * 'base64' (default: 'utf8').\n *\n * @return a string representation of the bytes in this buffer.\n */\nutil.DataBuffer.prototype.toString = function(encoding) {\n var view = new Uint8Array(this.data, this.read, this.length());\n encoding = encoding || 'utf8';\n\n // encode to string\n if(encoding === 'binary' || encoding === 'raw') {\n return util.binary.raw.encode(view);\n }\n if(encoding === 'hex') {\n return util.binary.hex.encode(view);\n }\n if(encoding === 'base64') {\n return util.binary.base64.encode(view);\n }\n\n // decode to text\n if(encoding === 'utf8') {\n return util.text.utf8.decode(view);\n }\n if(encoding === 'utf16') {\n return util.text.utf16.decode(view);\n }\n\n throw new Error('Invalid encoding: ' + encoding);\n};\n\n/** End Buffer w/UInt8Array backing */\n\n/**\n * Creates a buffer that stores bytes. A value may be given to populate the\n * buffer with data. This value can either be string of encoded bytes or a\n * regular string of characters. When passing a string of binary encoded\n * bytes, the encoding `raw` should be given. This is also the default. When\n * passing a string of characters, the encoding `utf8` should be given.\n *\n * @param [input] a string with encoded bytes to store in the buffer.\n * @param [encoding] (default: 'raw', other: 'utf8').\n */\nutil.createBuffer = function(input, encoding) {\n // TODO: deprecate, use new ByteBuffer() instead\n encoding = encoding || 'raw';\n if(input !== undefined && encoding === 'utf8') {\n input = util.encodeUtf8(input);\n }\n return new util.ByteBuffer(input);\n};\n\n/**\n * Fills a string with a particular value. If you want the string to be a byte\n * string, pass in String.fromCharCode(theByte).\n *\n * @param c the character to fill the string with, use String.fromCharCode\n * to fill the string with a byte value.\n * @param n the number of characters of value c to fill with.\n *\n * @return the filled string.\n */\nutil.fillString = function(c, n) {\n var s = '';\n while(n > 0) {\n if(n & 1) {\n s += c;\n }\n n >>>= 1;\n if(n > 0) {\n c += c;\n }\n }\n return s;\n};\n\n/**\n * Performs a per byte XOR between two byte strings and returns the result as a\n * string of bytes.\n *\n * @param s1 first string of bytes.\n * @param s2 second string of bytes.\n * @param n the number of bytes to XOR.\n *\n * @return the XOR'd result.\n */\nutil.xorBytes = function(s1, s2, n) {\n var s3 = '';\n var b = '';\n var t = '';\n var i = 0;\n var c = 0;\n for(; n > 0; --n, ++i) {\n b = s1.charCodeAt(i) ^ s2.charCodeAt(i);\n if(c >= 10) {\n s3 += t;\n t = '';\n c = 0;\n }\n t += String.fromCharCode(b);\n ++c;\n }\n s3 += t;\n return s3;\n};\n\n/**\n * Converts a hex string into a 'binary' encoded string of bytes.\n *\n * @param hex the hexadecimal string to convert.\n *\n * @return the binary-encoded string of bytes.\n */\nutil.hexToBytes = function(hex) {\n // TODO: deprecate: \"Deprecated. Use util.binary.hex.decode instead.\"\n var rval = '';\n var i = 0;\n if(hex.length & 1 == 1) {\n // odd number of characters, convert first character alone\n i = 1;\n rval += String.fromCharCode(parseInt(hex[0], 16));\n }\n // convert 2 characters (1 byte) at a time\n for(; i < hex.length; i += 2) {\n rval += String.fromCharCode(parseInt(hex.substr(i, 2), 16));\n }\n return rval;\n};\n\n/**\n * Converts a 'binary' encoded string of bytes to hex.\n *\n * @param bytes the byte string to convert.\n *\n * @return the string of hexadecimal characters.\n */\nutil.bytesToHex = function(bytes) {\n // TODO: deprecate: \"Deprecated. Use util.binary.hex.encode instead.\"\n return util.createBuffer(bytes).toHex();\n};\n\n/**\n * Converts an 32-bit integer to 4-big-endian byte string.\n *\n * @param i the integer.\n *\n * @return the byte string.\n */\nutil.int32ToBytes = function(i) {\n return (\n String.fromCharCode(i >> 24 & 0xFF) +\n String.fromCharCode(i >> 16 & 0xFF) +\n String.fromCharCode(i >> 8 & 0xFF) +\n String.fromCharCode(i & 0xFF));\n};\n\n// base64 characters, reverse mapping\nvar _base64 =\n 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\nvar _base64Idx = [\n/*43 -43 = 0*/\n/*'+', 1, 2, 3,'/' */\n 62, -1, -1, -1, 63,\n\n/*'0','1','2','3','4','5','6','7','8','9' */\n 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,\n\n/*15, 16, 17,'=', 19, 20, 21 */\n -1, -1, -1, 64, -1, -1, -1,\n\n/*65 - 43 = 22*/\n/*'A','B','C','D','E','F','G','H','I','J','K','L','M', */\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,\n\n/*'N','O','P','Q','R','S','T','U','V','W','X','Y','Z' */\n 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,\n\n/*91 - 43 = 48 */\n/*48, 49, 50, 51, 52, 53 */\n -1, -1, -1, -1, -1, -1,\n\n/*97 - 43 = 54*/\n/*'a','b','c','d','e','f','g','h','i','j','k','l','m' */\n 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,\n\n/*'n','o','p','q','r','s','t','u','v','w','x','y','z' */\n 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51\n];\n\n// base58 characters (Bitcoin alphabet)\nvar _base58 = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';\n\n/**\n * Base64 encodes a 'binary' encoded string of bytes.\n *\n * @param input the binary encoded string of bytes to base64-encode.\n * @param maxline the maximum number of encoded characters per line to use,\n * defaults to none.\n *\n * @return the base64-encoded output.\n */\nutil.encode64 = function(input, maxline) {\n // TODO: deprecate: \"Deprecated. Use util.binary.base64.encode instead.\"\n var line = '';\n var output = '';\n var chr1, chr2, chr3;\n var i = 0;\n while(i < input.length) {\n chr1 = input.charCodeAt(i++);\n chr2 = input.charCodeAt(i++);\n chr3 = input.charCodeAt(i++);\n\n // encode 4 character group\n line += _base64.charAt(chr1 >> 2);\n line += _base64.charAt(((chr1 & 3) << 4) | (chr2 >> 4));\n if(isNaN(chr2)) {\n line += '==';\n } else {\n line += _base64.charAt(((chr2 & 15) << 2) | (chr3 >> 6));\n line += isNaN(chr3) ? '=' : _base64.charAt(chr3 & 63);\n }\n\n if(maxline && line.length > maxline) {\n output += line.substr(0, maxline) + '\\r\\n';\n line = line.substr(maxline);\n }\n }\n output += line;\n return output;\n};\n\n/**\n * Base64 decodes a string into a 'binary' encoded string of bytes.\n *\n * @param input the base64-encoded input.\n *\n * @return the binary encoded string.\n */\nutil.decode64 = function(input) {\n // TODO: deprecate: \"Deprecated. Use util.binary.base64.decode instead.\"\n\n // remove all non-base64 characters\n input = input.replace(/[^A-Za-z0-9\\+\\/\\=]/g, '');\n\n var output = '';\n var enc1, enc2, enc3, enc4;\n var i = 0;\n\n while(i < input.length) {\n enc1 = _base64Idx[input.charCodeAt(i++) - 43];\n enc2 = _base64Idx[input.charCodeAt(i++) - 43];\n enc3 = _base64Idx[input.charCodeAt(i++) - 43];\n enc4 = _base64Idx[input.charCodeAt(i++) - 43];\n\n output += String.fromCharCode((enc1 << 2) | (enc2 >> 4));\n if(enc3 !== 64) {\n // decoded at least 2 bytes\n output += String.fromCharCode(((enc2 & 15) << 4) | (enc3 >> 2));\n if(enc4 !== 64) {\n // decoded 3 bytes\n output += String.fromCharCode(((enc3 & 3) << 6) | enc4);\n }\n }\n }\n\n return output;\n};\n\n/**\n * Encodes the given string of characters (a standard JavaScript\n * string) as a binary encoded string where the bytes represent\n * a UTF-8 encoded string of characters. Non-ASCII characters will be\n * encoded as multiple bytes according to UTF-8.\n *\n * @param str a standard string of characters to encode.\n *\n * @return the binary encoded string.\n */\nutil.encodeUtf8 = function(str) {\n return unescape(encodeURIComponent(str));\n};\n\n/**\n * Decodes a binary encoded string that contains bytes that\n * represent a UTF-8 encoded string of characters -- into a\n * string of characters (a standard JavaScript string).\n *\n * @param str the binary encoded string to decode.\n *\n * @return the resulting standard string of characters.\n */\nutil.decodeUtf8 = function(str) {\n return decodeURIComponent(escape(str));\n};\n\n// binary encoding/decoding tools\n// FIXME: Experimental. Do not use yet.\nutil.binary = {\n raw: {},\n hex: {},\n base64: {},\n base58: {},\n baseN : {\n encode: baseN.encode,\n decode: baseN.decode\n }\n};\n\n/**\n * Encodes a Uint8Array as a binary-encoded string. This encoding uses\n * a value between 0 and 255 for each character.\n *\n * @param bytes the Uint8Array to encode.\n *\n * @return the binary-encoded string.\n */\nutil.binary.raw.encode = function(bytes) {\n return String.fromCharCode.apply(null, bytes);\n};\n\n/**\n * Decodes a binary-encoded string to a Uint8Array. This encoding uses\n * a value between 0 and 255 for each character.\n *\n * @param str the binary-encoded string to decode.\n * @param [output] an optional Uint8Array to write the output to; if it\n * is too small, an exception will be thrown.\n * @param [offset] the start offset for writing to the output (default: 0).\n *\n * @return the Uint8Array or the number of bytes written if output was given.\n */\nutil.binary.raw.decode = function(str, output, offset) {\n var out = output;\n if(!out) {\n out = new Uint8Array(str.length);\n }\n offset = offset || 0;\n var j = offset;\n for(var i = 0; i < str.length; ++i) {\n out[j++] = str.charCodeAt(i);\n }\n return output ? (j - offset) : out;\n};\n\n/**\n * Encodes a 'binary' string, ArrayBuffer, DataView, TypedArray, or\n * ByteBuffer as a string of hexadecimal characters.\n *\n * @param bytes the bytes to convert.\n *\n * @return the string of hexadecimal characters.\n */\nutil.binary.hex.encode = util.bytesToHex;\n\n/**\n * Decodes a hex-encoded string to a Uint8Array.\n *\n * @param hex the hexadecimal string to convert.\n * @param [output] an optional Uint8Array to write the output to; if it\n * is too small, an exception will be thrown.\n * @param [offset] the start offset for writing to the output (default: 0).\n *\n * @return the Uint8Array or the number of bytes written if output was given.\n */\nutil.binary.hex.decode = function(hex, output, offset) {\n var out = output;\n if(!out) {\n out = new Uint8Array(Math.ceil(hex.length / 2));\n }\n offset = offset || 0;\n var i = 0, j = offset;\n if(hex.length & 1) {\n // odd number of characters, convert first character alone\n i = 1;\n out[j++] = parseInt(hex[0], 16);\n }\n // convert 2 characters (1 byte) at a time\n for(; i < hex.length; i += 2) {\n out[j++] = parseInt(hex.substr(i, 2), 16);\n }\n return output ? (j - offset) : out;\n};\n\n/**\n * Base64-encodes a Uint8Array.\n *\n * @param input the Uint8Array to encode.\n * @param maxline the maximum number of encoded characters per line to use,\n * defaults to none.\n *\n * @return the base64-encoded output string.\n */\nutil.binary.base64.encode = function(input, maxline) {\n var line = '';\n var output = '';\n var chr1, chr2, chr3;\n var i = 0;\n while(i < input.byteLength) {\n chr1 = input[i++];\n chr2 = input[i++];\n chr3 = input[i++];\n\n // encode 4 character group\n line += _base64.charAt(chr1 >> 2);\n line += _base64.charAt(((chr1 & 3) << 4) | (chr2 >> 4));\n if(isNaN(chr2)) {\n line += '==';\n } else {\n line += _base64.charAt(((chr2 & 15) << 2) | (chr3 >> 6));\n line += isNaN(chr3) ? '=' : _base64.charAt(chr3 & 63);\n }\n\n if(maxline && line.length > maxline) {\n output += line.substr(0, maxline) + '\\r\\n';\n line = line.substr(maxline);\n }\n }\n output += line;\n return output;\n};\n\n/**\n * Decodes a base64-encoded string to a Uint8Array.\n *\n * @param input the base64-encoded input string.\n * @param [output] an optional Uint8Array to write the output to; if it\n * is too small, an exception will be thrown.\n * @param [offset] the start offset for writing to the output (default: 0).\n *\n * @return the Uint8Array or the number of bytes written if output was given.\n */\nutil.binary.base64.decode = function(input, output, offset) {\n var out = output;\n if(!out) {\n out = new Uint8Array(Math.ceil(input.length / 4) * 3);\n }\n\n // remove all non-base64 characters\n input = input.replace(/[^A-Za-z0-9\\+\\/\\=]/g, '');\n\n offset = offset || 0;\n var enc1, enc2, enc3, enc4;\n var i = 0, j = offset;\n\n while(i < input.length) {\n enc1 = _base64Idx[input.charCodeAt(i++) - 43];\n enc2 = _base64Idx[input.charCodeAt(i++) - 43];\n enc3 = _base64Idx[input.charCodeAt(i++) - 43];\n enc4 = _base64Idx[input.charCodeAt(i++) - 43];\n\n out[j++] = (enc1 << 2) | (enc2 >> 4);\n if(enc3 !== 64) {\n // decoded at least 2 bytes\n out[j++] = ((enc2 & 15) << 4) | (enc3 >> 2);\n if(enc4 !== 64) {\n // decoded 3 bytes\n out[j++] = ((enc3 & 3) << 6) | enc4;\n }\n }\n }\n\n // make sure result is the exact decoded length\n return output ? (j - offset) : out.subarray(0, j);\n};\n\n// add support for base58 encoding/decoding with Bitcoin alphabet\nutil.binary.base58.encode = function(input, maxline) {\n return util.binary.baseN.encode(input, _base58, maxline);\n};\nutil.binary.base58.decode = function(input, maxline) {\n return util.binary.baseN.decode(input, _base58, maxline);\n};\n\n// text encoding/decoding tools\n// FIXME: Experimental. Do not use yet.\nutil.text = {\n utf8: {},\n utf16: {}\n};\n\n/**\n * Encodes the given string as UTF-8 in a Uint8Array.\n *\n * @param str the string to encode.\n * @param [output] an optional Uint8Array to write the output to; if it\n * is too small, an exception will be thrown.\n * @param [offset] the start offset for writing to the output (default: 0).\n *\n * @return the Uint8Array or the number of bytes written if output was given.\n */\nutil.text.utf8.encode = function(str, output, offset) {\n str = util.encodeUtf8(str);\n var out = output;\n if(!out) {\n out = new Uint8Array(str.length);\n }\n offset = offset || 0;\n var j = offset;\n for(var i = 0; i < str.length; ++i) {\n out[j++] = str.charCodeAt(i);\n }\n return output ? (j - offset) : out;\n};\n\n/**\n * Decodes the UTF-8 contents from a Uint8Array.\n *\n * @param bytes the Uint8Array to decode.\n *\n * @return the resulting string.\n */\nutil.text.utf8.decode = function(bytes) {\n return util.decodeUtf8(String.fromCharCode.apply(null, bytes));\n};\n\n/**\n * Encodes the given string as UTF-16 in a Uint8Array.\n *\n * @param str the string to encode.\n * @param [output] an optional Uint8Array to write the output to; if it\n * is too small, an exception will be thrown.\n * @param [offset] the start offset for writing to the output (default: 0).\n *\n * @return the Uint8Array or the number of bytes written if output was given.\n */\nutil.text.utf16.encode = function(str, output, offset) {\n var out = output;\n if(!out) {\n out = new Uint8Array(str.length * 2);\n }\n var view = new Uint16Array(out.buffer);\n offset = offset || 0;\n var j = offset;\n var k = offset;\n for(var i = 0; i < str.length; ++i) {\n view[k++] = str.charCodeAt(i);\n j += 2;\n }\n return output ? (j - offset) : out;\n};\n\n/**\n * Decodes the UTF-16 contents from a Uint8Array.\n *\n * @param bytes the Uint8Array to decode.\n *\n * @return the resulting string.\n */\nutil.text.utf16.decode = function(bytes) {\n return String.fromCharCode.apply(null, new Uint16Array(bytes.buffer));\n};\n\n/**\n * Deflates the given data using a flash interface.\n *\n * @param api the flash interface.\n * @param bytes the data.\n * @param raw true to return only raw deflate data, false to include zlib\n * header and trailer.\n *\n * @return the deflated data as a string.\n */\nutil.deflate = function(api, bytes, raw) {\n bytes = util.decode64(api.deflate(util.encode64(bytes)).rval);\n\n // strip zlib header and trailer if necessary\n if(raw) {\n // zlib header is 2 bytes (CMF,FLG) where FLG indicates that\n // there is a 4-byte DICT (alder-32) block before the data if\n // its 5th bit is set\n var start = 2;\n var flg = bytes.charCodeAt(1);\n if(flg & 0x20) {\n start = 6;\n }\n // zlib trailer is 4 bytes of adler-32\n bytes = bytes.substring(start, bytes.length - 4);\n }\n\n return bytes;\n};\n\n/**\n * Inflates the given data using a flash interface.\n *\n * @param api the flash interface.\n * @param bytes the data.\n * @param raw true if the incoming data has no zlib header or trailer and is\n * raw DEFLATE data.\n *\n * @return the inflated data as a string, null on error.\n */\nutil.inflate = function(api, bytes, raw) {\n // TODO: add zlib header and trailer if necessary/possible\n var rval = api.inflate(util.encode64(bytes)).rval;\n return (rval === null) ? null : util.decode64(rval);\n};\n\n/**\n * Sets a storage object.\n *\n * @param api the storage interface.\n * @param id the storage ID to use.\n * @param obj the storage object, null to remove.\n */\nvar _setStorageObject = function(api, id, obj) {\n if(!api) {\n throw new Error('WebStorage not available.');\n }\n\n var rval;\n if(obj === null) {\n rval = api.removeItem(id);\n } else {\n // json-encode and base64-encode object\n obj = util.encode64(JSON.stringify(obj));\n rval = api.setItem(id, obj);\n }\n\n // handle potential flash error\n if(typeof(rval) !== 'undefined' && rval.rval !== true) {\n var error = new Error(rval.error.message);\n error.id = rval.error.id;\n error.name = rval.error.name;\n throw error;\n }\n};\n\n/**\n * Gets a storage object.\n *\n * @param api the storage interface.\n * @param id the storage ID to use.\n *\n * @return the storage object entry or null if none exists.\n */\nvar _getStorageObject = function(api, id) {\n if(!api) {\n throw new Error('WebStorage not available.');\n }\n\n // get the existing entry\n var rval = api.getItem(id);\n\n /* Note: We check api.init because we can't do (api == localStorage)\n on IE because of \"Class doesn't support Automation\" exception. Only\n the flash api has an init method so this works too, but we need a\n better solution in the future. */\n\n // flash returns item wrapped in an object, handle special case\n if(api.init) {\n if(rval.rval === null) {\n if(rval.error) {\n var error = new Error(rval.error.message);\n error.id = rval.error.id;\n error.name = rval.error.name;\n throw error;\n }\n // no error, but also no item\n rval = null;\n } else {\n rval = rval.rval;\n }\n }\n\n // handle decoding\n if(rval !== null) {\n // base64-decode and json-decode data\n rval = JSON.parse(util.decode64(rval));\n }\n\n return rval;\n};\n\n/**\n * Stores an item in local storage.\n *\n * @param api the storage interface.\n * @param id the storage ID to use.\n * @param key the key for the item.\n * @param data the data for the item (any javascript object/primitive).\n */\nvar _setItem = function(api, id, key, data) {\n // get storage object\n var obj = _getStorageObject(api, id);\n if(obj === null) {\n // create a new storage object\n obj = {};\n }\n // update key\n obj[key] = data;\n\n // set storage object\n _setStorageObject(api, id, obj);\n};\n\n/**\n * Gets an item from local storage.\n *\n * @param api the storage interface.\n * @param id the storage ID to use.\n * @param key the key for the item.\n *\n * @return the item.\n */\nvar _getItem = function(api, id, key) {\n // get storage object\n var rval = _getStorageObject(api, id);\n if(rval !== null) {\n // return data at key\n rval = (key in rval) ? rval[key] : null;\n }\n\n return rval;\n};\n\n/**\n * Removes an item from local storage.\n *\n * @param api the storage interface.\n * @param id the storage ID to use.\n * @param key the key for the item.\n */\nvar _removeItem = function(api, id, key) {\n // get storage object\n var obj = _getStorageObject(api, id);\n if(obj !== null && key in obj) {\n // remove key\n delete obj[key];\n\n // see if entry has no keys remaining\n var empty = true;\n for(var prop in obj) {\n empty = false;\n break;\n }\n if(empty) {\n // remove entry entirely if no keys are left\n obj = null;\n }\n\n // set storage object\n _setStorageObject(api, id, obj);\n }\n};\n\n/**\n * Clears the local disk storage identified by the given ID.\n *\n * @param api the storage interface.\n * @param id the storage ID to use.\n */\nvar _clearItems = function(api, id) {\n _setStorageObject(api, id, null);\n};\n\n/**\n * Calls a storage function.\n *\n * @param func the function to call.\n * @param args the arguments for the function.\n * @param location the location argument.\n *\n * @return the return value from the function.\n */\nvar _callStorageFunction = function(func, args, location) {\n var rval = null;\n\n // default storage types\n if(typeof(location) === 'undefined') {\n location = ['web', 'flash'];\n }\n\n // apply storage types in order of preference\n var type;\n var done = false;\n var exception = null;\n for(var idx in location) {\n type = location[idx];\n try {\n if(type === 'flash' || type === 'both') {\n if(args[0] === null) {\n throw new Error('Flash local storage not available.');\n }\n rval = func.apply(this, args);\n done = (type === 'flash');\n }\n if(type === 'web' || type === 'both') {\n args[0] = localStorage;\n rval = func.apply(this, args);\n done = true;\n }\n } catch(ex) {\n exception = ex;\n }\n if(done) {\n break;\n }\n }\n\n if(!done) {\n throw exception;\n }\n\n return rval;\n};\n\n/**\n * Stores an item on local disk.\n *\n * The available types of local storage include 'flash', 'web', and 'both'.\n *\n * The type 'flash' refers to flash local storage (SharedObject). In order\n * to use flash local storage, the 'api' parameter must be valid. The type\n * 'web' refers to WebStorage, if supported by the browser. The type 'both'\n * refers to storing using both 'flash' and 'web', not just one or the\n * other.\n *\n * The location array should list the storage types to use in order of\n * preference:\n *\n * ['flash']: flash only storage\n * ['web']: web only storage\n * ['both']: try to store in both\n * ['flash','web']: store in flash first, but if not available, 'web'\n * ['web','flash']: store in web first, but if not available, 'flash'\n *\n * The location array defaults to: ['web', 'flash']\n *\n * @param api the flash interface, null to use only WebStorage.\n * @param id the storage ID to use.\n * @param key the key for the item.\n * @param data the data for the item (any javascript object/primitive).\n * @param location an array with the preferred types of storage to use.\n */\nutil.setItem = function(api, id, key, data, location) {\n _callStorageFunction(_setItem, arguments, location);\n};\n\n/**\n * Gets an item on local disk.\n *\n * Set setItem() for details on storage types.\n *\n * @param api the flash interface, null to use only WebStorage.\n * @param id the storage ID to use.\n * @param key the key for the item.\n * @param location an array with the preferred types of storage to use.\n *\n * @return the item.\n */\nutil.getItem = function(api, id, key, location) {\n return _callStorageFunction(_getItem, arguments, location);\n};\n\n/**\n * Removes an item on local disk.\n *\n * Set setItem() for details on storage types.\n *\n * @param api the flash interface.\n * @param id the storage ID to use.\n * @param key the key for the item.\n * @param location an array with the preferred types of storage to use.\n */\nutil.removeItem = function(api, id, key, location) {\n _callStorageFunction(_removeItem, arguments, location);\n};\n\n/**\n * Clears the local disk storage identified by the given ID.\n *\n * Set setItem() for details on storage types.\n *\n * @param api the flash interface if flash is available.\n * @param id the storage ID to use.\n * @param location an array with the preferred types of storage to use.\n */\nutil.clearItems = function(api, id, location) {\n _callStorageFunction(_clearItems, arguments, location);\n};\n\n/**\n * Check if an object is empty.\n *\n * Taken from:\n * http://stackoverflow.com/questions/679915/how-do-i-test-for-an-empty-javascript-object-from-json/679937#679937\n *\n * @param object the object to check.\n */\nutil.isEmpty = function(obj) {\n for(var prop in obj) {\n if(obj.hasOwnProperty(prop)) {\n return false;\n }\n }\n return true;\n};\n\n/**\n * Format with simple printf-style interpolation.\n *\n * %%: literal '%'\n * %s,%o: convert next argument into a string.\n *\n * @param format the string to format.\n * @param ... arguments to interpolate into the format string.\n */\nutil.format = function(format) {\n var re = /%./g;\n // current match\n var match;\n // current part\n var part;\n // current arg index\n var argi = 0;\n // collected parts to recombine later\n var parts = [];\n // last index found\n var last = 0;\n // loop while matches remain\n while((match = re.exec(format))) {\n part = format.substring(last, re.lastIndex - 2);\n // don't add empty strings (ie, parts between %s%s)\n if(part.length > 0) {\n parts.push(part);\n }\n last = re.lastIndex;\n // switch on % code\n var code = match[0][1];\n switch(code) {\n case 's':\n case 'o':\n // check if enough arguments were given\n if(argi < arguments.length) {\n parts.push(arguments[argi++ + 1]);\n } else {\n parts.push('');\n }\n break;\n // FIXME: do proper formating for numbers, etc\n //case 'f':\n //case 'd':\n case '%':\n parts.push('%');\n break;\n default:\n parts.push('<%' + code + '?>');\n }\n }\n // add trailing part of format string\n parts.push(format.substring(last));\n return parts.join('');\n};\n\n/**\n * Formats a number.\n *\n * http://snipplr.com/view/5945/javascript-numberformat--ported-from-php/\n */\nutil.formatNumber = function(number, decimals, dec_point, thousands_sep) {\n // http://kevin.vanzonneveld.net\n // + original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)\n // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)\n // + bugfix by: Michael White (http://crestidg.com)\n // + bugfix by: Benjamin Lupton\n // + bugfix by: Allan Jensen (http://www.winternet.no)\n // + revised by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)\n // * example 1: number_format(1234.5678, 2, '.', '');\n // * returns 1: 1234.57\n\n var n = number, c = isNaN(decimals = Math.abs(decimals)) ? 2 : decimals;\n var d = dec_point === undefined ? ',' : dec_point;\n var t = thousands_sep === undefined ?\n '.' : thousands_sep, s = n < 0 ? '-' : '';\n var i = parseInt((n = Math.abs(+n || 0).toFixed(c)), 10) + '';\n var j = (i.length > 3) ? i.length % 3 : 0;\n return s + (j ? i.substr(0, j) + t : '') +\n i.substr(j).replace(/(\\d{3})(?=\\d)/g, '$1' + t) +\n (c ? d + Math.abs(n - i).toFixed(c).slice(2) : '');\n};\n\n/**\n * Formats a byte size.\n *\n * http://snipplr.com/view/5949/format-humanize-file-byte-size-presentation-in-javascript/\n */\nutil.formatSize = function(size) {\n if(size >= 1073741824) {\n size = util.formatNumber(size / 1073741824, 2, '.', '') + ' GiB';\n } else if(size >= 1048576) {\n size = util.formatNumber(size / 1048576, 2, '.', '') + ' MiB';\n } else if(size >= 1024) {\n size = util.formatNumber(size / 1024, 0) + ' KiB';\n } else {\n size = util.formatNumber(size, 0) + ' bytes';\n }\n return size;\n};\n\n/**\n * Converts an IPv4 or IPv6 string representation into bytes (in network order).\n *\n * @param ip the IPv4 or IPv6 address to convert.\n *\n * @return the 4-byte IPv6 or 16-byte IPv6 address or null if the address can't\n * be parsed.\n */\nutil.bytesFromIP = function(ip) {\n if(ip.indexOf('.') !== -1) {\n return util.bytesFromIPv4(ip);\n }\n if(ip.indexOf(':') !== -1) {\n return util.bytesFromIPv6(ip);\n }\n return null;\n};\n\n/**\n * Converts an IPv4 string representation into bytes (in network order).\n *\n * @param ip the IPv4 address to convert.\n *\n * @return the 4-byte address or null if the address can't be parsed.\n */\nutil.bytesFromIPv4 = function(ip) {\n ip = ip.split('.');\n if(ip.length !== 4) {\n return null;\n }\n var b = util.createBuffer();\n for(var i = 0; i < ip.length; ++i) {\n var num = parseInt(ip[i], 10);\n if(isNaN(num)) {\n return null;\n }\n b.putByte(num);\n }\n return b.getBytes();\n};\n\n/**\n * Converts an IPv6 string representation into bytes (in network order).\n *\n * @param ip the IPv6 address to convert.\n *\n * @return the 16-byte address or null if the address can't be parsed.\n */\nutil.bytesFromIPv6 = function(ip) {\n var blanks = 0;\n ip = ip.split(':').filter(function(e) {\n if(e.length === 0) ++blanks;\n return true;\n });\n var zeros = (8 - ip.length + blanks) * 2;\n var b = util.createBuffer();\n for(var i = 0; i < 8; ++i) {\n if(!ip[i] || ip[i].length === 0) {\n b.fillWithByte(0, zeros);\n zeros = 0;\n continue;\n }\n var bytes = util.hexToBytes(ip[i]);\n if(bytes.length < 2) {\n b.putByte(0);\n }\n b.putBytes(bytes);\n }\n return b.getBytes();\n};\n\n/**\n * Converts 4-bytes into an IPv4 string representation or 16-bytes into\n * an IPv6 string representation. The bytes must be in network order.\n *\n * @param bytes the bytes to convert.\n *\n * @return the IPv4 or IPv6 string representation if 4 or 16 bytes,\n * respectively, are given, otherwise null.\n */\nutil.bytesToIP = function(bytes) {\n if(bytes.length === 4) {\n return util.bytesToIPv4(bytes);\n }\n if(bytes.length === 16) {\n return util.bytesToIPv6(bytes);\n }\n return null;\n};\n\n/**\n * Converts 4-bytes into an IPv4 string representation. The bytes must be\n * in network order.\n *\n * @param bytes the bytes to convert.\n *\n * @return the IPv4 string representation or null for an invalid # of bytes.\n */\nutil.bytesToIPv4 = function(bytes) {\n if(bytes.length !== 4) {\n return null;\n }\n var ip = [];\n for(var i = 0; i < bytes.length; ++i) {\n ip.push(bytes.charCodeAt(i));\n }\n return ip.join('.');\n};\n\n/**\n * Converts 16-bytes into an IPv16 string representation. The bytes must be\n * in network order.\n *\n * @param bytes the bytes to convert.\n *\n * @return the IPv16 string representation or null for an invalid # of bytes.\n */\nutil.bytesToIPv6 = function(bytes) {\n if(bytes.length !== 16) {\n return null;\n }\n var ip = [];\n var zeroGroups = [];\n var zeroMaxGroup = 0;\n for(var i = 0; i < bytes.length; i += 2) {\n var hex = util.bytesToHex(bytes[i] + bytes[i + 1]);\n // canonicalize zero representation\n while(hex[0] === '0' && hex !== '0') {\n hex = hex.substr(1);\n }\n if(hex === '0') {\n var last = zeroGroups[zeroGroups.length - 1];\n var idx = ip.length;\n if(!last || idx !== last.end + 1) {\n zeroGroups.push({start: idx, end: idx});\n } else {\n last.end = idx;\n if((last.end - last.start) >\n (zeroGroups[zeroMaxGroup].end - zeroGroups[zeroMaxGroup].start)) {\n zeroMaxGroup = zeroGroups.length - 1;\n }\n }\n }\n ip.push(hex);\n }\n if(zeroGroups.length > 0) {\n var group = zeroGroups[zeroMaxGroup];\n // only shorten group of length > 0\n if(group.end - group.start > 0) {\n ip.splice(group.start, group.end - group.start + 1, '');\n if(group.start === 0) {\n ip.unshift('');\n }\n if(group.end === 7) {\n ip.push('');\n }\n }\n }\n return ip.join(':');\n};\n\n/**\n * Estimates the number of processes that can be run concurrently. If\n * creating Web Workers, keep in mind that the main JavaScript process needs\n * its own core.\n *\n * @param options the options to use:\n * update true to force an update (not use the cached value).\n * @param callback(err, max) called once the operation completes.\n */\nutil.estimateCores = function(options, callback) {\n if(typeof options === 'function') {\n callback = options;\n options = {};\n }\n options = options || {};\n if('cores' in util && !options.update) {\n return callback(null, util.cores);\n }\n if(typeof navigator !== 'undefined' &&\n 'hardwareConcurrency' in navigator &&\n navigator.hardwareConcurrency > 0) {\n util.cores = navigator.hardwareConcurrency;\n return callback(null, util.cores);\n }\n if(typeof Worker === 'undefined') {\n // workers not available\n util.cores = 1;\n return callback(null, util.cores);\n }\n if(typeof Blob === 'undefined') {\n // can't estimate, default to 2\n util.cores = 2;\n return callback(null, util.cores);\n }\n\n // create worker concurrency estimation code as blob\n var blobUrl = URL.createObjectURL(new Blob(['(',\n function() {\n self.addEventListener('message', function(e) {\n // run worker for 4 ms\n var st = Date.now();\n var et = st + 4;\n while(Date.now() < et);\n self.postMessage({st: st, et: et});\n });\n }.toString(),\n ')()'], {type: 'application/javascript'}));\n\n // take 5 samples using 16 workers\n sample([], 5, 16);\n\n function sample(max, samples, numWorkers) {\n if(samples === 0) {\n // get overlap average\n var avg = Math.floor(max.reduce(function(avg, x) {\n return avg + x;\n }, 0) / max.length);\n util.cores = Math.max(1, avg);\n URL.revokeObjectURL(blobUrl);\n return callback(null, util.cores);\n }\n map(numWorkers, function(err, results) {\n max.push(reduce(numWorkers, results));\n sample(max, samples - 1, numWorkers);\n });\n }\n\n function map(numWorkers, callback) {\n var workers = [];\n var results = [];\n for(var i = 0; i < numWorkers; ++i) {\n var worker = new Worker(blobUrl);\n worker.addEventListener('message', function(e) {\n results.push(e.data);\n if(results.length === numWorkers) {\n for(var i = 0; i < numWorkers; ++i) {\n workers[i].terminate();\n }\n callback(null, results);\n }\n });\n workers.push(worker);\n }\n for(var i = 0; i < numWorkers; ++i) {\n workers[i].postMessage(i);\n }\n }\n\n function reduce(numWorkers, results) {\n // find overlapping time windows\n var overlaps = [];\n for(var n = 0; n < numWorkers; ++n) {\n var r1 = results[n];\n var overlap = overlaps[n] = [];\n for(var i = 0; i < numWorkers; ++i) {\n if(n === i) {\n continue;\n }\n var r2 = results[i];\n if((r1.st > r2.st && r1.st < r2.et) ||\n (r2.st > r1.st && r2.st < r1.et)) {\n overlap.push(i);\n }\n }\n }\n // get maximum overlaps ... don't include overlapping worker itself\n // as the main JS process was also being scheduled during the work and\n // would have to be subtracted from the estimate anyway\n return overlaps.reduce(function(max, overlap) {\n return Math.max(max, overlap.length);\n }, 0);\n }\n};\n","/**\n * Cipher base API.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2010-2014 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./util');\n\nmodule.exports = forge.cipher = forge.cipher || {};\n\n// registered algorithms\nforge.cipher.algorithms = forge.cipher.algorithms || {};\n\n/**\n * Creates a cipher object that can be used to encrypt data using the given\n * algorithm and key. The algorithm may be provided as a string value for a\n * previously registered algorithm or it may be given as a cipher algorithm\n * API object.\n *\n * @param algorithm the algorithm to use, either a string or an algorithm API\n * object.\n * @param key the key to use, as a binary-encoded string of bytes or a\n * byte buffer.\n *\n * @return the cipher.\n */\nforge.cipher.createCipher = function(algorithm, key) {\n var api = algorithm;\n if(typeof api === 'string') {\n api = forge.cipher.getAlgorithm(api);\n if(api) {\n api = api();\n }\n }\n if(!api) {\n throw new Error('Unsupported algorithm: ' + algorithm);\n }\n\n // assume block cipher\n return new forge.cipher.BlockCipher({\n algorithm: api,\n key: key,\n decrypt: false\n });\n};\n\n/**\n * Creates a decipher object that can be used to decrypt data using the given\n * algorithm and key. The algorithm may be provided as a string value for a\n * previously registered algorithm or it may be given as a cipher algorithm\n * API object.\n *\n * @param algorithm the algorithm to use, either a string or an algorithm API\n * object.\n * @param key the key to use, as a binary-encoded string of bytes or a\n * byte buffer.\n *\n * @return the cipher.\n */\nforge.cipher.createDecipher = function(algorithm, key) {\n var api = algorithm;\n if(typeof api === 'string') {\n api = forge.cipher.getAlgorithm(api);\n if(api) {\n api = api();\n }\n }\n if(!api) {\n throw new Error('Unsupported algorithm: ' + algorithm);\n }\n\n // assume block cipher\n return new forge.cipher.BlockCipher({\n algorithm: api,\n key: key,\n decrypt: true\n });\n};\n\n/**\n * Registers an algorithm by name. If the name was already registered, the\n * algorithm API object will be overwritten.\n *\n * @param name the name of the algorithm.\n * @param algorithm the algorithm API object.\n */\nforge.cipher.registerAlgorithm = function(name, algorithm) {\n name = name.toUpperCase();\n forge.cipher.algorithms[name] = algorithm;\n};\n\n/**\n * Gets a registered algorithm by name.\n *\n * @param name the name of the algorithm.\n *\n * @return the algorithm, if found, null if not.\n */\nforge.cipher.getAlgorithm = function(name) {\n name = name.toUpperCase();\n if(name in forge.cipher.algorithms) {\n return forge.cipher.algorithms[name];\n }\n return null;\n};\n\nvar BlockCipher = forge.cipher.BlockCipher = function(options) {\n this.algorithm = options.algorithm;\n this.mode = this.algorithm.mode;\n this.blockSize = this.mode.blockSize;\n this._finish = false;\n this._input = null;\n this.output = null;\n this._op = options.decrypt ? this.mode.decrypt : this.mode.encrypt;\n this._decrypt = options.decrypt;\n this.algorithm.initialize(options);\n};\n\n/**\n * Starts or restarts the encryption or decryption process, whichever\n * was previously configured.\n *\n * For non-GCM mode, the IV may be a binary-encoded string of bytes, an array\n * of bytes, a byte buffer, or an array of 32-bit integers. If the IV is in\n * bytes, then it must be Nb (16) bytes in length. If the IV is given in as\n * 32-bit integers, then it must be 4 integers long.\n *\n * Note: an IV is not required or used in ECB mode.\n *\n * For GCM-mode, the IV must be given as a binary-encoded string of bytes or\n * a byte buffer. The number of bytes should be 12 (96 bits) as recommended\n * by NIST SP-800-38D but another length may be given.\n *\n * @param options the options to use:\n * iv the initialization vector to use as a binary-encoded string of\n * bytes, null to reuse the last ciphered block from a previous\n * update() (this \"residue\" method is for legacy support only).\n * additionalData additional authentication data as a binary-encoded\n * string of bytes, for 'GCM' mode, (default: none).\n * tagLength desired length of authentication tag, in bits, for\n * 'GCM' mode (0-128, default: 128).\n * tag the authentication tag to check if decrypting, as a\n * binary-encoded string of bytes.\n * output the output the buffer to write to, null to create one.\n */\nBlockCipher.prototype.start = function(options) {\n options = options || {};\n var opts = {};\n for(var key in options) {\n opts[key] = options[key];\n }\n opts.decrypt = this._decrypt;\n this._finish = false;\n this._input = forge.util.createBuffer();\n this.output = options.output || forge.util.createBuffer();\n this.mode.start(opts);\n};\n\n/**\n * Updates the next block according to the cipher mode.\n *\n * @param input the buffer to read from.\n */\nBlockCipher.prototype.update = function(input) {\n if(input) {\n // input given, so empty it into the input buffer\n this._input.putBuffer(input);\n }\n\n // do cipher operation until it needs more input and not finished\n while(!this._op.call(this.mode, this._input, this.output, this._finish) &&\n !this._finish) {}\n\n // free consumed memory from input buffer\n this._input.compact();\n};\n\n/**\n * Finishes encrypting or decrypting.\n *\n * @param pad a padding function to use in CBC mode, null for default,\n * signature(blockSize, buffer, decrypt).\n *\n * @return true if successful, false on error.\n */\nBlockCipher.prototype.finish = function(pad) {\n // backwards-compatibility w/deprecated padding API\n // Note: will overwrite padding functions even after another start() call\n if(pad && (this.mode.name === 'ECB' || this.mode.name === 'CBC')) {\n this.mode.pad = function(input) {\n return pad(this.blockSize, input, false);\n };\n this.mode.unpad = function(output) {\n return pad(this.blockSize, output, true);\n };\n }\n\n // build options for padding and afterFinish functions\n var options = {};\n options.decrypt = this._decrypt;\n\n // get # of bytes that won't fill a block\n options.overflow = this._input.length() % this.blockSize;\n\n if(!this._decrypt && this.mode.pad) {\n if(!this.mode.pad(this._input, options)) {\n return false;\n }\n }\n\n // do final update\n this._finish = true;\n this.update();\n\n if(this._decrypt && this.mode.unpad) {\n if(!this.mode.unpad(this.output, options)) {\n return false;\n }\n }\n\n if(this.mode.afterFinish) {\n if(!this.mode.afterFinish(this.output, options)) {\n return false;\n }\n }\n\n return true;\n};\n","/**\n * Supported cipher modes.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2010-2014 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./util');\n\nforge.cipher = forge.cipher || {};\n\n// supported cipher modes\nvar modes = module.exports = forge.cipher.modes = forge.cipher.modes || {};\n\n/** Electronic codebook (ECB) (Don't use this; it's not secure) **/\n\nmodes.ecb = function(options) {\n options = options || {};\n this.name = 'ECB';\n this.cipher = options.cipher;\n this.blockSize = options.blockSize || 16;\n this._ints = this.blockSize / 4;\n this._inBlock = new Array(this._ints);\n this._outBlock = new Array(this._ints);\n};\n\nmodes.ecb.prototype.start = function(options) {};\n\nmodes.ecb.prototype.encrypt = function(input, output, finish) {\n // not enough input to encrypt\n if(input.length() < this.blockSize && !(finish && input.length() > 0)) {\n return true;\n }\n\n // get next block\n for(var i = 0; i < this._ints; ++i) {\n this._inBlock[i] = input.getInt32();\n }\n\n // encrypt block\n this.cipher.encrypt(this._inBlock, this._outBlock);\n\n // write output\n for(var i = 0; i < this._ints; ++i) {\n output.putInt32(this._outBlock[i]);\n }\n};\n\nmodes.ecb.prototype.decrypt = function(input, output, finish) {\n // not enough input to decrypt\n if(input.length() < this.blockSize && !(finish && input.length() > 0)) {\n return true;\n }\n\n // get next block\n for(var i = 0; i < this._ints; ++i) {\n this._inBlock[i] = input.getInt32();\n }\n\n // decrypt block\n this.cipher.decrypt(this._inBlock, this._outBlock);\n\n // write output\n for(var i = 0; i < this._ints; ++i) {\n output.putInt32(this._outBlock[i]);\n }\n};\n\nmodes.ecb.prototype.pad = function(input, options) {\n // add PKCS#7 padding to block (each pad byte is the\n // value of the number of pad bytes)\n var padding = (input.length() === this.blockSize ?\n this.blockSize : (this.blockSize - input.length()));\n input.fillWithByte(padding, padding);\n return true;\n};\n\nmodes.ecb.prototype.unpad = function(output, options) {\n // check for error: input data not a multiple of blockSize\n if(options.overflow > 0) {\n return false;\n }\n\n // ensure padding byte count is valid\n var len = output.length();\n var count = output.at(len - 1);\n if(count > (this.blockSize << 2)) {\n return false;\n }\n\n // trim off padding bytes\n output.truncate(count);\n return true;\n};\n\n/** Cipher-block Chaining (CBC) **/\n\nmodes.cbc = function(options) {\n options = options || {};\n this.name = 'CBC';\n this.cipher = options.cipher;\n this.blockSize = options.blockSize || 16;\n this._ints = this.blockSize / 4;\n this._inBlock = new Array(this._ints);\n this._outBlock = new Array(this._ints);\n};\n\nmodes.cbc.prototype.start = function(options) {\n // Note: legacy support for using IV residue (has security flaws)\n // if IV is null, reuse block from previous processing\n if(options.iv === null) {\n // must have a previous block\n if(!this._prev) {\n throw new Error('Invalid IV parameter.');\n }\n this._iv = this._prev.slice(0);\n } else if(!('iv' in options)) {\n throw new Error('Invalid IV parameter.');\n } else {\n // save IV as \"previous\" block\n this._iv = transformIV(options.iv, this.blockSize);\n this._prev = this._iv.slice(0);\n }\n};\n\nmodes.cbc.prototype.encrypt = function(input, output, finish) {\n // not enough input to encrypt\n if(input.length() < this.blockSize && !(finish && input.length() > 0)) {\n return true;\n }\n\n // get next block\n // CBC XOR's IV (or previous block) with plaintext\n for(var i = 0; i < this._ints; ++i) {\n this._inBlock[i] = this._prev[i] ^ input.getInt32();\n }\n\n // encrypt block\n this.cipher.encrypt(this._inBlock, this._outBlock);\n\n // write output, save previous block\n for(var i = 0; i < this._ints; ++i) {\n output.putInt32(this._outBlock[i]);\n }\n this._prev = this._outBlock;\n};\n\nmodes.cbc.prototype.decrypt = function(input, output, finish) {\n // not enough input to decrypt\n if(input.length() < this.blockSize && !(finish && input.length() > 0)) {\n return true;\n }\n\n // get next block\n for(var i = 0; i < this._ints; ++i) {\n this._inBlock[i] = input.getInt32();\n }\n\n // decrypt block\n this.cipher.decrypt(this._inBlock, this._outBlock);\n\n // write output, save previous ciphered block\n // CBC XOR's IV (or previous block) with ciphertext\n for(var i = 0; i < this._ints; ++i) {\n output.putInt32(this._prev[i] ^ this._outBlock[i]);\n }\n this._prev = this._inBlock.slice(0);\n};\n\nmodes.cbc.prototype.pad = function(input, options) {\n // add PKCS#7 padding to block (each pad byte is the\n // value of the number of pad bytes)\n var padding = (input.length() === this.blockSize ?\n this.blockSize : (this.blockSize - input.length()));\n input.fillWithByte(padding, padding);\n return true;\n};\n\nmodes.cbc.prototype.unpad = function(output, options) {\n // check for error: input data not a multiple of blockSize\n if(options.overflow > 0) {\n return false;\n }\n\n // ensure padding byte count is valid\n var len = output.length();\n var count = output.at(len - 1);\n if(count > (this.blockSize << 2)) {\n return false;\n }\n\n // trim off padding bytes\n output.truncate(count);\n return true;\n};\n\n/** Cipher feedback (CFB) **/\n\nmodes.cfb = function(options) {\n options = options || {};\n this.name = 'CFB';\n this.cipher = options.cipher;\n this.blockSize = options.blockSize || 16;\n this._ints = this.blockSize / 4;\n this._inBlock = null;\n this._outBlock = new Array(this._ints);\n this._partialBlock = new Array(this._ints);\n this._partialOutput = forge.util.createBuffer();\n this._partialBytes = 0;\n};\n\nmodes.cfb.prototype.start = function(options) {\n if(!('iv' in options)) {\n throw new Error('Invalid IV parameter.');\n }\n // use IV as first input\n this._iv = transformIV(options.iv, this.blockSize);\n this._inBlock = this._iv.slice(0);\n this._partialBytes = 0;\n};\n\nmodes.cfb.prototype.encrypt = function(input, output, finish) {\n // not enough input to encrypt\n var inputLength = input.length();\n if(inputLength === 0) {\n return true;\n }\n\n // encrypt block\n this.cipher.encrypt(this._inBlock, this._outBlock);\n\n // handle full block\n if(this._partialBytes === 0 && inputLength >= this.blockSize) {\n // XOR input with output, write input as output\n for(var i = 0; i < this._ints; ++i) {\n this._inBlock[i] = input.getInt32() ^ this._outBlock[i];\n output.putInt32(this._inBlock[i]);\n }\n return;\n }\n\n // handle partial block\n var partialBytes = (this.blockSize - inputLength) % this.blockSize;\n if(partialBytes > 0) {\n partialBytes = this.blockSize - partialBytes;\n }\n\n // XOR input with output, write input as partial output\n this._partialOutput.clear();\n for(var i = 0; i < this._ints; ++i) {\n this._partialBlock[i] = input.getInt32() ^ this._outBlock[i];\n this._partialOutput.putInt32(this._partialBlock[i]);\n }\n\n if(partialBytes > 0) {\n // block still incomplete, restore input buffer\n input.read -= this.blockSize;\n } else {\n // block complete, update input block\n for(var i = 0; i < this._ints; ++i) {\n this._inBlock[i] = this._partialBlock[i];\n }\n }\n\n // skip any previous partial bytes\n if(this._partialBytes > 0) {\n this._partialOutput.getBytes(this._partialBytes);\n }\n\n if(partialBytes > 0 && !finish) {\n output.putBytes(this._partialOutput.getBytes(\n partialBytes - this._partialBytes));\n this._partialBytes = partialBytes;\n return true;\n }\n\n output.putBytes(this._partialOutput.getBytes(\n inputLength - this._partialBytes));\n this._partialBytes = 0;\n};\n\nmodes.cfb.prototype.decrypt = function(input, output, finish) {\n // not enough input to decrypt\n var inputLength = input.length();\n if(inputLength === 0) {\n return true;\n }\n\n // encrypt block (CFB always uses encryption mode)\n this.cipher.encrypt(this._inBlock, this._outBlock);\n\n // handle full block\n if(this._partialBytes === 0 && inputLength >= this.blockSize) {\n // XOR input with output, write input as output\n for(var i = 0; i < this._ints; ++i) {\n this._inBlock[i] = input.getInt32();\n output.putInt32(this._inBlock[i] ^ this._outBlock[i]);\n }\n return;\n }\n\n // handle partial block\n var partialBytes = (this.blockSize - inputLength) % this.blockSize;\n if(partialBytes > 0) {\n partialBytes = this.blockSize - partialBytes;\n }\n\n // XOR input with output, write input as partial output\n this._partialOutput.clear();\n for(var i = 0; i < this._ints; ++i) {\n this._partialBlock[i] = input.getInt32();\n this._partialOutput.putInt32(this._partialBlock[i] ^ this._outBlock[i]);\n }\n\n if(partialBytes > 0) {\n // block still incomplete, restore input buffer\n input.read -= this.blockSize;\n } else {\n // block complete, update input block\n for(var i = 0; i < this._ints; ++i) {\n this._inBlock[i] = this._partialBlock[i];\n }\n }\n\n // skip any previous partial bytes\n if(this._partialBytes > 0) {\n this._partialOutput.getBytes(this._partialBytes);\n }\n\n if(partialBytes > 0 && !finish) {\n output.putBytes(this._partialOutput.getBytes(\n partialBytes - this._partialBytes));\n this._partialBytes = partialBytes;\n return true;\n }\n\n output.putBytes(this._partialOutput.getBytes(\n inputLength - this._partialBytes));\n this._partialBytes = 0;\n};\n\n/** Output feedback (OFB) **/\n\nmodes.ofb = function(options) {\n options = options || {};\n this.name = 'OFB';\n this.cipher = options.cipher;\n this.blockSize = options.blockSize || 16;\n this._ints = this.blockSize / 4;\n this._inBlock = null;\n this._outBlock = new Array(this._ints);\n this._partialOutput = forge.util.createBuffer();\n this._partialBytes = 0;\n};\n\nmodes.ofb.prototype.start = function(options) {\n if(!('iv' in options)) {\n throw new Error('Invalid IV parameter.');\n }\n // use IV as first input\n this._iv = transformIV(options.iv, this.blockSize);\n this._inBlock = this._iv.slice(0);\n this._partialBytes = 0;\n};\n\nmodes.ofb.prototype.encrypt = function(input, output, finish) {\n // not enough input to encrypt\n var inputLength = input.length();\n if(input.length() === 0) {\n return true;\n }\n\n // encrypt block (OFB always uses encryption mode)\n this.cipher.encrypt(this._inBlock, this._outBlock);\n\n // handle full block\n if(this._partialBytes === 0 && inputLength >= this.blockSize) {\n // XOR input with output and update next input\n for(var i = 0; i < this._ints; ++i) {\n output.putInt32(input.getInt32() ^ this._outBlock[i]);\n this._inBlock[i] = this._outBlock[i];\n }\n return;\n }\n\n // handle partial block\n var partialBytes = (this.blockSize - inputLength) % this.blockSize;\n if(partialBytes > 0) {\n partialBytes = this.blockSize - partialBytes;\n }\n\n // XOR input with output\n this._partialOutput.clear();\n for(var i = 0; i < this._ints; ++i) {\n this._partialOutput.putInt32(input.getInt32() ^ this._outBlock[i]);\n }\n\n if(partialBytes > 0) {\n // block still incomplete, restore input buffer\n input.read -= this.blockSize;\n } else {\n // block complete, update input block\n for(var i = 0; i < this._ints; ++i) {\n this._inBlock[i] = this._outBlock[i];\n }\n }\n\n // skip any previous partial bytes\n if(this._partialBytes > 0) {\n this._partialOutput.getBytes(this._partialBytes);\n }\n\n if(partialBytes > 0 && !finish) {\n output.putBytes(this._partialOutput.getBytes(\n partialBytes - this._partialBytes));\n this._partialBytes = partialBytes;\n return true;\n }\n\n output.putBytes(this._partialOutput.getBytes(\n inputLength - this._partialBytes));\n this._partialBytes = 0;\n};\n\nmodes.ofb.prototype.decrypt = modes.ofb.prototype.encrypt;\n\n/** Counter (CTR) **/\n\nmodes.ctr = function(options) {\n options = options || {};\n this.name = 'CTR';\n this.cipher = options.cipher;\n this.blockSize = options.blockSize || 16;\n this._ints = this.blockSize / 4;\n this._inBlock = null;\n this._outBlock = new Array(this._ints);\n this._partialOutput = forge.util.createBuffer();\n this._partialBytes = 0;\n};\n\nmodes.ctr.prototype.start = function(options) {\n if(!('iv' in options)) {\n throw new Error('Invalid IV parameter.');\n }\n // use IV as first input\n this._iv = transformIV(options.iv, this.blockSize);\n this._inBlock = this._iv.slice(0);\n this._partialBytes = 0;\n};\n\nmodes.ctr.prototype.encrypt = function(input, output, finish) {\n // not enough input to encrypt\n var inputLength = input.length();\n if(inputLength === 0) {\n return true;\n }\n\n // encrypt block (CTR always uses encryption mode)\n this.cipher.encrypt(this._inBlock, this._outBlock);\n\n // handle full block\n if(this._partialBytes === 0 && inputLength >= this.blockSize) {\n // XOR input with output\n for(var i = 0; i < this._ints; ++i) {\n output.putInt32(input.getInt32() ^ this._outBlock[i]);\n }\n } else {\n // handle partial block\n var partialBytes = (this.blockSize - inputLength) % this.blockSize;\n if(partialBytes > 0) {\n partialBytes = this.blockSize - partialBytes;\n }\n\n // XOR input with output\n this._partialOutput.clear();\n for(var i = 0; i < this._ints; ++i) {\n this._partialOutput.putInt32(input.getInt32() ^ this._outBlock[i]);\n }\n\n if(partialBytes > 0) {\n // block still incomplete, restore input buffer\n input.read -= this.blockSize;\n }\n\n // skip any previous partial bytes\n if(this._partialBytes > 0) {\n this._partialOutput.getBytes(this._partialBytes);\n }\n\n if(partialBytes > 0 && !finish) {\n output.putBytes(this._partialOutput.getBytes(\n partialBytes - this._partialBytes));\n this._partialBytes = partialBytes;\n return true;\n }\n\n output.putBytes(this._partialOutput.getBytes(\n inputLength - this._partialBytes));\n this._partialBytes = 0;\n }\n\n // block complete, increment counter (input block)\n inc32(this._inBlock);\n};\n\nmodes.ctr.prototype.decrypt = modes.ctr.prototype.encrypt;\n\n/** Galois/Counter Mode (GCM) **/\n\nmodes.gcm = function(options) {\n options = options || {};\n this.name = 'GCM';\n this.cipher = options.cipher;\n this.blockSize = options.blockSize || 16;\n this._ints = this.blockSize / 4;\n this._inBlock = new Array(this._ints);\n this._outBlock = new Array(this._ints);\n this._partialOutput = forge.util.createBuffer();\n this._partialBytes = 0;\n\n // R is actually this value concatenated with 120 more zero bits, but\n // we only XOR against R so the other zeros have no effect -- we just\n // apply this value to the first integer in a block\n this._R = 0xE1000000;\n};\n\nmodes.gcm.prototype.start = function(options) {\n if(!('iv' in options)) {\n throw new Error('Invalid IV parameter.');\n }\n // ensure IV is a byte buffer\n var iv = forge.util.createBuffer(options.iv);\n\n // no ciphered data processed yet\n this._cipherLength = 0;\n\n // default additional data is none\n var additionalData;\n if('additionalData' in options) {\n additionalData = forge.util.createBuffer(options.additionalData);\n } else {\n additionalData = forge.util.createBuffer();\n }\n\n // default tag length is 128 bits\n if('tagLength' in options) {\n this._tagLength = options.tagLength;\n } else {\n this._tagLength = 128;\n }\n\n // if tag is given, ensure tag matches tag length\n this._tag = null;\n if(options.decrypt) {\n // save tag to check later\n this._tag = forge.util.createBuffer(options.tag).getBytes();\n if(this._tag.length !== (this._tagLength / 8)) {\n throw new Error('Authentication tag does not match tag length.');\n }\n }\n\n // create tmp storage for hash calculation\n this._hashBlock = new Array(this._ints);\n\n // no tag generated yet\n this.tag = null;\n\n // generate hash subkey\n // (apply block cipher to \"zero\" block)\n this._hashSubkey = new Array(this._ints);\n this.cipher.encrypt([0, 0, 0, 0], this._hashSubkey);\n\n // generate table M\n // use 4-bit tables (32 component decomposition of a 16 byte value)\n // 8-bit tables take more space and are known to have security\n // vulnerabilities (in native implementations)\n this.componentBits = 4;\n this._m = this.generateHashTable(this._hashSubkey, this.componentBits);\n\n // Note: support IV length different from 96 bits? (only supporting\n // 96 bits is recommended by NIST SP-800-38D)\n // generate J_0\n var ivLength = iv.length();\n if(ivLength === 12) {\n // 96-bit IV\n this._j0 = [iv.getInt32(), iv.getInt32(), iv.getInt32(), 1];\n } else {\n // IV is NOT 96-bits\n this._j0 = [0, 0, 0, 0];\n while(iv.length() > 0) {\n this._j0 = this.ghash(\n this._hashSubkey, this._j0,\n [iv.getInt32(), iv.getInt32(), iv.getInt32(), iv.getInt32()]);\n }\n this._j0 = this.ghash(\n this._hashSubkey, this._j0, [0, 0].concat(from64To32(ivLength * 8)));\n }\n\n // generate ICB (initial counter block)\n this._inBlock = this._j0.slice(0);\n inc32(this._inBlock);\n this._partialBytes = 0;\n\n // consume authentication data\n additionalData = forge.util.createBuffer(additionalData);\n // save additional data length as a BE 64-bit number\n this._aDataLength = from64To32(additionalData.length() * 8);\n // pad additional data to 128 bit (16 byte) block size\n var overflow = additionalData.length() % this.blockSize;\n if(overflow) {\n additionalData.fillWithByte(0, this.blockSize - overflow);\n }\n this._s = [0, 0, 0, 0];\n while(additionalData.length() > 0) {\n this._s = this.ghash(this._hashSubkey, this._s, [\n additionalData.getInt32(),\n additionalData.getInt32(),\n additionalData.getInt32(),\n additionalData.getInt32()\n ]);\n }\n};\n\nmodes.gcm.prototype.encrypt = function(input, output, finish) {\n // not enough input to encrypt\n var inputLength = input.length();\n if(inputLength === 0) {\n return true;\n }\n\n // encrypt block\n this.cipher.encrypt(this._inBlock, this._outBlock);\n\n // handle full block\n if(this._partialBytes === 0 && inputLength >= this.blockSize) {\n // XOR input with output\n for(var i = 0; i < this._ints; ++i) {\n output.putInt32(this._outBlock[i] ^= input.getInt32());\n }\n this._cipherLength += this.blockSize;\n } else {\n // handle partial block\n var partialBytes = (this.blockSize - inputLength) % this.blockSize;\n if(partialBytes > 0) {\n partialBytes = this.blockSize - partialBytes;\n }\n\n // XOR input with output\n this._partialOutput.clear();\n for(var i = 0; i < this._ints; ++i) {\n this._partialOutput.putInt32(input.getInt32() ^ this._outBlock[i]);\n }\n\n if(partialBytes <= 0 || finish) {\n // handle overflow prior to hashing\n if(finish) {\n // get block overflow\n var overflow = inputLength % this.blockSize;\n this._cipherLength += overflow;\n // truncate for hash function\n this._partialOutput.truncate(this.blockSize - overflow);\n } else {\n this._cipherLength += this.blockSize;\n }\n\n // get output block for hashing\n for(var i = 0; i < this._ints; ++i) {\n this._outBlock[i] = this._partialOutput.getInt32();\n }\n this._partialOutput.read -= this.blockSize;\n }\n\n // skip any previous partial bytes\n if(this._partialBytes > 0) {\n this._partialOutput.getBytes(this._partialBytes);\n }\n\n if(partialBytes > 0 && !finish) {\n // block still incomplete, restore input buffer, get partial output,\n // and return early\n input.read -= this.blockSize;\n output.putBytes(this._partialOutput.getBytes(\n partialBytes - this._partialBytes));\n this._partialBytes = partialBytes;\n return true;\n }\n\n output.putBytes(this._partialOutput.getBytes(\n inputLength - this._partialBytes));\n this._partialBytes = 0;\n }\n\n // update hash block S\n this._s = this.ghash(this._hashSubkey, this._s, this._outBlock);\n\n // increment counter (input block)\n inc32(this._inBlock);\n};\n\nmodes.gcm.prototype.decrypt = function(input, output, finish) {\n // not enough input to decrypt\n var inputLength = input.length();\n if(inputLength < this.blockSize && !(finish && inputLength > 0)) {\n return true;\n }\n\n // encrypt block (GCM always uses encryption mode)\n this.cipher.encrypt(this._inBlock, this._outBlock);\n\n // increment counter (input block)\n inc32(this._inBlock);\n\n // update hash block S\n this._hashBlock[0] = input.getInt32();\n this._hashBlock[1] = input.getInt32();\n this._hashBlock[2] = input.getInt32();\n this._hashBlock[3] = input.getInt32();\n this._s = this.ghash(this._hashSubkey, this._s, this._hashBlock);\n\n // XOR hash input with output\n for(var i = 0; i < this._ints; ++i) {\n output.putInt32(this._outBlock[i] ^ this._hashBlock[i]);\n }\n\n // increment cipher data length\n if(inputLength < this.blockSize) {\n this._cipherLength += inputLength % this.blockSize;\n } else {\n this._cipherLength += this.blockSize;\n }\n};\n\nmodes.gcm.prototype.afterFinish = function(output, options) {\n var rval = true;\n\n // handle overflow\n if(options.decrypt && options.overflow) {\n output.truncate(this.blockSize - options.overflow);\n }\n\n // handle authentication tag\n this.tag = forge.util.createBuffer();\n\n // concatenate additional data length with cipher length\n var lengths = this._aDataLength.concat(from64To32(this._cipherLength * 8));\n\n // include lengths in hash\n this._s = this.ghash(this._hashSubkey, this._s, lengths);\n\n // do GCTR(J_0, S)\n var tag = [];\n this.cipher.encrypt(this._j0, tag);\n for(var i = 0; i < this._ints; ++i) {\n this.tag.putInt32(this._s[i] ^ tag[i]);\n }\n\n // trim tag to length\n this.tag.truncate(this.tag.length() % (this._tagLength / 8));\n\n // check authentication tag\n if(options.decrypt && this.tag.bytes() !== this._tag) {\n rval = false;\n }\n\n return rval;\n};\n\n/**\n * See NIST SP-800-38D 6.3 (Algorithm 1). This function performs Galois\n * field multiplication. The field, GF(2^128), is defined by the polynomial:\n *\n * x^128 + x^7 + x^2 + x + 1\n *\n * Which is represented in little-endian binary form as: 11100001 (0xe1). When\n * the value of a coefficient is 1, a bit is set. The value R, is the\n * concatenation of this value and 120 zero bits, yielding a 128-bit value\n * which matches the block size.\n *\n * This function will multiply two elements (vectors of bytes), X and Y, in\n * the field GF(2^128). The result is initialized to zero. For each bit of\n * X (out of 128), x_i, if x_i is set, then the result is multiplied (XOR'd)\n * by the current value of Y. For each bit, the value of Y will be raised by\n * a power of x (multiplied by the polynomial x). This can be achieved by\n * shifting Y once to the right. If the current value of Y, prior to being\n * multiplied by x, has 0 as its LSB, then it is a 127th degree polynomial.\n * Otherwise, we must divide by R after shifting to find the remainder.\n *\n * @param x the first block to multiply by the second.\n * @param y the second block to multiply by the first.\n *\n * @return the block result of the multiplication.\n */\nmodes.gcm.prototype.multiply = function(x, y) {\n var z_i = [0, 0, 0, 0];\n var v_i = y.slice(0);\n\n // calculate Z_128 (block has 128 bits)\n for(var i = 0; i < 128; ++i) {\n // if x_i is 0, Z_{i+1} = Z_i (unchanged)\n // else Z_{i+1} = Z_i ^ V_i\n // get x_i by finding 32-bit int position, then left shift 1 by remainder\n var x_i = x[(i / 32) | 0] & (1 << (31 - i % 32));\n if(x_i) {\n z_i[0] ^= v_i[0];\n z_i[1] ^= v_i[1];\n z_i[2] ^= v_i[2];\n z_i[3] ^= v_i[3];\n }\n\n // if LSB(V_i) is 1, V_i = V_i >> 1\n // else V_i = (V_i >> 1) ^ R\n this.pow(v_i, v_i);\n }\n\n return z_i;\n};\n\nmodes.gcm.prototype.pow = function(x, out) {\n // if LSB(x) is 1, x = x >>> 1\n // else x = (x >>> 1) ^ R\n var lsb = x[3] & 1;\n\n // always do x >>> 1:\n // starting with the rightmost integer, shift each integer to the right\n // one bit, pulling in the bit from the integer to the left as its top\n // most bit (do this for the last 3 integers)\n for(var i = 3; i > 0; --i) {\n out[i] = (x[i] >>> 1) | ((x[i - 1] & 1) << 31);\n }\n // shift the first integer normally\n out[0] = x[0] >>> 1;\n\n // if lsb was not set, then polynomial had a degree of 127 and doesn't\n // need to divided; otherwise, XOR with R to find the remainder; we only\n // need to XOR the first integer since R technically ends w/120 zero bits\n if(lsb) {\n out[0] ^= this._R;\n }\n};\n\nmodes.gcm.prototype.tableMultiply = function(x) {\n // assumes 4-bit tables are used\n var z = [0, 0, 0, 0];\n for(var i = 0; i < 32; ++i) {\n var idx = (i / 8) | 0;\n var x_i = (x[idx] >>> ((7 - (i % 8)) * 4)) & 0xF;\n var ah = this._m[i][x_i];\n z[0] ^= ah[0];\n z[1] ^= ah[1];\n z[2] ^= ah[2];\n z[3] ^= ah[3];\n }\n return z;\n};\n\n/**\n * A continuing version of the GHASH algorithm that operates on a single\n * block. The hash block, last hash value (Ym) and the new block to hash\n * are given.\n *\n * @param h the hash block.\n * @param y the previous value for Ym, use [0, 0, 0, 0] for a new hash.\n * @param x the block to hash.\n *\n * @return the hashed value (Ym).\n */\nmodes.gcm.prototype.ghash = function(h, y, x) {\n y[0] ^= x[0];\n y[1] ^= x[1];\n y[2] ^= x[2];\n y[3] ^= x[3];\n return this.tableMultiply(y);\n //return this.multiply(y, h);\n};\n\n/**\n * Precomputes a table for multiplying against the hash subkey. This\n * mechanism provides a substantial speed increase over multiplication\n * performed without a table. The table-based multiplication this table is\n * for solves X * H by multiplying each component of X by H and then\n * composing the results together using XOR.\n *\n * This function can be used to generate tables with different bit sizes\n * for the components, however, this implementation assumes there are\n * 32 components of X (which is a 16 byte vector), therefore each component\n * takes 4-bits (so the table is constructed with bits=4).\n *\n * @param h the hash subkey.\n * @param bits the bit size for a component.\n */\nmodes.gcm.prototype.generateHashTable = function(h, bits) {\n // TODO: There are further optimizations that would use only the\n // first table M_0 (or some variant) along with a remainder table;\n // this can be explored in the future\n var multiplier = 8 / bits;\n var perInt = 4 * multiplier;\n var size = 16 * multiplier;\n var m = new Array(size);\n for(var i = 0; i < size; ++i) {\n var tmp = [0, 0, 0, 0];\n var idx = (i / perInt) | 0;\n var shft = ((perInt - 1 - (i % perInt)) * bits);\n tmp[idx] = (1 << (bits - 1)) << shft;\n m[i] = this.generateSubHashTable(this.multiply(tmp, h), bits);\n }\n return m;\n};\n\n/**\n * Generates a table for multiplying against the hash subkey for one\n * particular component (out of all possible component values).\n *\n * @param mid the pre-multiplied value for the middle key of the table.\n * @param bits the bit size for a component.\n */\nmodes.gcm.prototype.generateSubHashTable = function(mid, bits) {\n // compute the table quickly by minimizing the number of\n // POW operations -- they only need to be performed for powers of 2,\n // all other entries can be composed from those powers using XOR\n var size = 1 << bits;\n var half = size >>> 1;\n var m = new Array(size);\n m[half] = mid.slice(0);\n var i = half >>> 1;\n while(i > 0) {\n // raise m0[2 * i] and store in m0[i]\n this.pow(m[2 * i], m[i] = []);\n i >>= 1;\n }\n i = 2;\n while(i < half) {\n for(var j = 1; j < i; ++j) {\n var m_i = m[i];\n var m_j = m[j];\n m[i + j] = [\n m_i[0] ^ m_j[0],\n m_i[1] ^ m_j[1],\n m_i[2] ^ m_j[2],\n m_i[3] ^ m_j[3]\n ];\n }\n i *= 2;\n }\n m[0] = [0, 0, 0, 0];\n /* Note: We could avoid storing these by doing composition during multiply\n calculate top half using composition by speed is preferred. */\n for(i = half + 1; i < size; ++i) {\n var c = m[i ^ half];\n m[i] = [mid[0] ^ c[0], mid[1] ^ c[1], mid[2] ^ c[2], mid[3] ^ c[3]];\n }\n return m;\n};\n\n/** Utility functions */\n\nfunction transformIV(iv, blockSize) {\n if(typeof iv === 'string') {\n // convert iv string into byte buffer\n iv = forge.util.createBuffer(iv);\n }\n\n if(forge.util.isArray(iv) && iv.length > 4) {\n // convert iv byte array into byte buffer\n var tmp = iv;\n iv = forge.util.createBuffer();\n for(var i = 0; i < tmp.length; ++i) {\n iv.putByte(tmp[i]);\n }\n }\n\n if(iv.length() < blockSize) {\n throw new Error(\n 'Invalid IV length; got ' + iv.length() +\n ' bytes and expected ' + blockSize + ' bytes.');\n }\n\n if(!forge.util.isArray(iv)) {\n // convert iv byte buffer into 32-bit integer array\n var ints = [];\n var blocks = blockSize / 4;\n for(var i = 0; i < blocks; ++i) {\n ints.push(iv.getInt32());\n }\n iv = ints;\n }\n\n return iv;\n}\n\nfunction inc32(block) {\n // increment last 32 bits of block only\n block[block.length - 1] = (block[block.length - 1] + 1) & 0xFFFFFFFF;\n}\n\nfunction from64To32(num) {\n // convert 64-bit number to two BE Int32s\n return [(num / 0x100000000) | 0, num & 0xFFFFFFFF];\n}\n","/**\n * Advanced Encryption Standard (AES) implementation.\n *\n * This implementation is based on the public domain library 'jscrypto' which\n * was written by:\n *\n * Emily Stark (estark@stanford.edu)\n * Mike Hamburg (mhamburg@stanford.edu)\n * Dan Boneh (dabo@cs.stanford.edu)\n *\n * Parts of this code are based on the OpenSSL implementation of AES:\n * http://www.openssl.org\n *\n * @author Dave Longley\n *\n * Copyright (c) 2010-2014 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./cipher');\nrequire('./cipherModes');\nrequire('./util');\n\n/* AES API */\nmodule.exports = forge.aes = forge.aes || {};\n\n/**\n * Deprecated. Instead, use:\n *\n * var cipher = forge.cipher.createCipher('AES-', key);\n * cipher.start({iv: iv});\n *\n * Creates an AES cipher object to encrypt data using the given symmetric key.\n * The output will be stored in the 'output' member of the returned cipher.\n *\n * The key and iv may be given as a string of bytes, an array of bytes,\n * a byte buffer, or an array of 32-bit words.\n *\n * @param key the symmetric key to use.\n * @param iv the initialization vector to use.\n * @param output the buffer to write to, null to create one.\n * @param mode the cipher mode to use (default: 'CBC').\n *\n * @return the cipher.\n */\nforge.aes.startEncrypting = function(key, iv, output, mode) {\n var cipher = _createCipher({\n key: key,\n output: output,\n decrypt: false,\n mode: mode\n });\n cipher.start(iv);\n return cipher;\n};\n\n/**\n * Deprecated. Instead, use:\n *\n * var cipher = forge.cipher.createCipher('AES-', key);\n *\n * Creates an AES cipher object to encrypt data using the given symmetric key.\n *\n * The key may be given as a string of bytes, an array of bytes, a\n * byte buffer, or an array of 32-bit words.\n *\n * @param key the symmetric key to use.\n * @param mode the cipher mode to use (default: 'CBC').\n *\n * @return the cipher.\n */\nforge.aes.createEncryptionCipher = function(key, mode) {\n return _createCipher({\n key: key,\n output: null,\n decrypt: false,\n mode: mode\n });\n};\n\n/**\n * Deprecated. Instead, use:\n *\n * var decipher = forge.cipher.createDecipher('AES-', key);\n * decipher.start({iv: iv});\n *\n * Creates an AES cipher object to decrypt data using the given symmetric key.\n * The output will be stored in the 'output' member of the returned cipher.\n *\n * The key and iv may be given as a string of bytes, an array of bytes,\n * a byte buffer, or an array of 32-bit words.\n *\n * @param key the symmetric key to use.\n * @param iv the initialization vector to use.\n * @param output the buffer to write to, null to create one.\n * @param mode the cipher mode to use (default: 'CBC').\n *\n * @return the cipher.\n */\nforge.aes.startDecrypting = function(key, iv, output, mode) {\n var cipher = _createCipher({\n key: key,\n output: output,\n decrypt: true,\n mode: mode\n });\n cipher.start(iv);\n return cipher;\n};\n\n/**\n * Deprecated. Instead, use:\n *\n * var decipher = forge.cipher.createDecipher('AES-', key);\n *\n * Creates an AES cipher object to decrypt data using the given symmetric key.\n *\n * The key may be given as a string of bytes, an array of bytes, a\n * byte buffer, or an array of 32-bit words.\n *\n * @param key the symmetric key to use.\n * @param mode the cipher mode to use (default: 'CBC').\n *\n * @return the cipher.\n */\nforge.aes.createDecryptionCipher = function(key, mode) {\n return _createCipher({\n key: key,\n output: null,\n decrypt: true,\n mode: mode\n });\n};\n\n/**\n * Creates a new AES cipher algorithm object.\n *\n * @param name the name of the algorithm.\n * @param mode the mode factory function.\n *\n * @return the AES algorithm object.\n */\nforge.aes.Algorithm = function(name, mode) {\n if(!init) {\n initialize();\n }\n var self = this;\n self.name = name;\n self.mode = new mode({\n blockSize: 16,\n cipher: {\n encrypt: function(inBlock, outBlock) {\n return _updateBlock(self._w, inBlock, outBlock, false);\n },\n decrypt: function(inBlock, outBlock) {\n return _updateBlock(self._w, inBlock, outBlock, true);\n }\n }\n });\n self._init = false;\n};\n\n/**\n * Initializes this AES algorithm by expanding its key.\n *\n * @param options the options to use.\n * key the key to use with this algorithm.\n * decrypt true if the algorithm should be initialized for decryption,\n * false for encryption.\n */\nforge.aes.Algorithm.prototype.initialize = function(options) {\n if(this._init) {\n return;\n }\n\n var key = options.key;\n var tmp;\n\n /* Note: The key may be a string of bytes, an array of bytes, a byte\n buffer, or an array of 32-bit integers. If the key is in bytes, then\n it must be 16, 24, or 32 bytes in length. If it is in 32-bit\n integers, it must be 4, 6, or 8 integers long. */\n\n if(typeof key === 'string' &&\n (key.length === 16 || key.length === 24 || key.length === 32)) {\n // convert key string into byte buffer\n key = forge.util.createBuffer(key);\n } else if(forge.util.isArray(key) &&\n (key.length === 16 || key.length === 24 || key.length === 32)) {\n // convert key integer array into byte buffer\n tmp = key;\n key = forge.util.createBuffer();\n for(var i = 0; i < tmp.length; ++i) {\n key.putByte(tmp[i]);\n }\n }\n\n // convert key byte buffer into 32-bit integer array\n if(!forge.util.isArray(key)) {\n tmp = key;\n key = [];\n\n // key lengths of 16, 24, 32 bytes allowed\n var len = tmp.length();\n if(len === 16 || len === 24 || len === 32) {\n len = len >>> 2;\n for(var i = 0; i < len; ++i) {\n key.push(tmp.getInt32());\n }\n }\n }\n\n // key must be an array of 32-bit integers by now\n if(!forge.util.isArray(key) ||\n !(key.length === 4 || key.length === 6 || key.length === 8)) {\n throw new Error('Invalid key parameter.');\n }\n\n // encryption operation is always used for these modes\n var mode = this.mode.name;\n var encryptOp = (['CFB', 'OFB', 'CTR', 'GCM'].indexOf(mode) !== -1);\n\n // do key expansion\n this._w = _expandKey(key, options.decrypt && !encryptOp);\n this._init = true;\n};\n\n/**\n * Expands a key. Typically only used for testing.\n *\n * @param key the symmetric key to expand, as an array of 32-bit words.\n * @param decrypt true to expand for decryption, false for encryption.\n *\n * @return the expanded key.\n */\nforge.aes._expandKey = function(key, decrypt) {\n if(!init) {\n initialize();\n }\n return _expandKey(key, decrypt);\n};\n\n/**\n * Updates a single block. Typically only used for testing.\n *\n * @param w the expanded key to use.\n * @param input an array of block-size 32-bit words.\n * @param output an array of block-size 32-bit words.\n * @param decrypt true to decrypt, false to encrypt.\n */\nforge.aes._updateBlock = _updateBlock;\n\n/** Register AES algorithms **/\n\nregisterAlgorithm('AES-ECB', forge.cipher.modes.ecb);\nregisterAlgorithm('AES-CBC', forge.cipher.modes.cbc);\nregisterAlgorithm('AES-CFB', forge.cipher.modes.cfb);\nregisterAlgorithm('AES-OFB', forge.cipher.modes.ofb);\nregisterAlgorithm('AES-CTR', forge.cipher.modes.ctr);\nregisterAlgorithm('AES-GCM', forge.cipher.modes.gcm);\n\nfunction registerAlgorithm(name, mode) {\n var factory = function() {\n return new forge.aes.Algorithm(name, mode);\n };\n forge.cipher.registerAlgorithm(name, factory);\n}\n\n/** AES implementation **/\n\nvar init = false; // not yet initialized\nvar Nb = 4; // number of words comprising the state (AES = 4)\nvar sbox; // non-linear substitution table used in key expansion\nvar isbox; // inversion of sbox\nvar rcon; // round constant word array\nvar mix; // mix-columns table\nvar imix; // inverse mix-columns table\n\n/**\n * Performs initialization, ie: precomputes tables to optimize for speed.\n *\n * One way to understand how AES works is to imagine that 'addition' and\n * 'multiplication' are interfaces that require certain mathematical\n * properties to hold true (ie: they are associative) but they might have\n * different implementations and produce different kinds of results ...\n * provided that their mathematical properties remain true. AES defines\n * its own methods of addition and multiplication but keeps some important\n * properties the same, ie: associativity and distributivity. The\n * explanation below tries to shed some light on how AES defines addition\n * and multiplication of bytes and 32-bit words in order to perform its\n * encryption and decryption algorithms.\n *\n * The basics:\n *\n * The AES algorithm views bytes as binary representations of polynomials\n * that have either 1 or 0 as the coefficients. It defines the addition\n * or subtraction of two bytes as the XOR operation. It also defines the\n * multiplication of two bytes as a finite field referred to as GF(2^8)\n * (Note: 'GF' means \"Galois Field\" which is a field that contains a finite\n * number of elements so GF(2^8) has 256 elements).\n *\n * This means that any two bytes can be represented as binary polynomials;\n * when they multiplied together and modularly reduced by an irreducible\n * polynomial of the 8th degree, the results are the field GF(2^8). The\n * specific irreducible polynomial that AES uses in hexadecimal is 0x11b.\n * This multiplication is associative with 0x01 as the identity:\n *\n * (b * 0x01 = GF(b, 0x01) = b).\n *\n * The operation GF(b, 0x02) can be performed at the byte level by left\n * shifting b once and then XOR'ing it (to perform the modular reduction)\n * with 0x11b if b is >= 128. Repeated application of the multiplication\n * of 0x02 can be used to implement the multiplication of any two bytes.\n *\n * For instance, multiplying 0x57 and 0x13, denoted as GF(0x57, 0x13), can\n * be performed by factoring 0x13 into 0x01, 0x02, and 0x10. Then these\n * factors can each be multiplied by 0x57 and then added together. To do\n * the multiplication, values for 0x57 multiplied by each of these 3 factors\n * can be precomputed and stored in a table. To add them, the values from\n * the table are XOR'd together.\n *\n * AES also defines addition and multiplication of words, that is 4-byte\n * numbers represented as polynomials of 3 degrees where the coefficients\n * are the values of the bytes.\n *\n * The word [a0, a1, a2, a3] is a polynomial a3x^3 + a2x^2 + a1x + a0.\n *\n * Addition is performed by XOR'ing like powers of x. Multiplication\n * is performed in two steps, the first is an algebriac expansion as\n * you would do normally (where addition is XOR). But the result is\n * a polynomial larger than 3 degrees and thus it cannot fit in a word. So\n * next the result is modularly reduced by an AES-specific polynomial of\n * degree 4 which will always produce a polynomial of less than 4 degrees\n * such that it will fit in a word. In AES, this polynomial is x^4 + 1.\n *\n * The modular product of two polynomials 'a' and 'b' is thus:\n *\n * d(x) = d3x^3 + d2x^2 + d1x + d0\n * with\n * d0 = GF(a0, b0) ^ GF(a3, b1) ^ GF(a2, b2) ^ GF(a1, b3)\n * d1 = GF(a1, b0) ^ GF(a0, b1) ^ GF(a3, b2) ^ GF(a2, b3)\n * d2 = GF(a2, b0) ^ GF(a1, b1) ^ GF(a0, b2) ^ GF(a3, b3)\n * d3 = GF(a3, b0) ^ GF(a2, b1) ^ GF(a1, b2) ^ GF(a0, b3)\n *\n * As a matrix:\n *\n * [d0] = [a0 a3 a2 a1][b0]\n * [d1] [a1 a0 a3 a2][b1]\n * [d2] [a2 a1 a0 a3][b2]\n * [d3] [a3 a2 a1 a0][b3]\n *\n * Special polynomials defined by AES (0x02 == {02}):\n * a(x) = {03}x^3 + {01}x^2 + {01}x + {02}\n * a^-1(x) = {0b}x^3 + {0d}x^2 + {09}x + {0e}.\n *\n * These polynomials are used in the MixColumns() and InverseMixColumns()\n * operations, respectively, to cause each element in the state to affect\n * the output (referred to as diffusing).\n *\n * RotWord() uses: a0 = a1 = a2 = {00} and a3 = {01}, which is the\n * polynomial x3.\n *\n * The ShiftRows() method modifies the last 3 rows in the state (where\n * the state is 4 words with 4 bytes per word) by shifting bytes cyclically.\n * The 1st byte in the second row is moved to the end of the row. The 1st\n * and 2nd bytes in the third row are moved to the end of the row. The 1st,\n * 2nd, and 3rd bytes are moved in the fourth row.\n *\n * More details on how AES arithmetic works:\n *\n * In the polynomial representation of binary numbers, XOR performs addition\n * and subtraction and multiplication in GF(2^8) denoted as GF(a, b)\n * corresponds with the multiplication of polynomials modulo an irreducible\n * polynomial of degree 8. In other words, for AES, GF(a, b) will multiply\n * polynomial 'a' with polynomial 'b' and then do a modular reduction by\n * an AES-specific irreducible polynomial of degree 8.\n *\n * A polynomial is irreducible if its only divisors are one and itself. For\n * the AES algorithm, this irreducible polynomial is:\n *\n * m(x) = x^8 + x^4 + x^3 + x + 1,\n *\n * or {01}{1b} in hexadecimal notation, where each coefficient is a bit:\n * 100011011 = 283 = 0x11b.\n *\n * For example, GF(0x57, 0x83) = 0xc1 because\n *\n * 0x57 = 87 = 01010111 = x^6 + x^4 + x^2 + x + 1\n * 0x85 = 131 = 10000101 = x^7 + x + 1\n *\n * (x^6 + x^4 + x^2 + x + 1) * (x^7 + x + 1)\n * = x^13 + x^11 + x^9 + x^8 + x^7 +\n * x^7 + x^5 + x^3 + x^2 + x +\n * x^6 + x^4 + x^2 + x + 1\n * = x^13 + x^11 + x^9 + x^8 + x^6 + x^5 + x^4 + x^3 + 1 = y\n * y modulo (x^8 + x^4 + x^3 + x + 1)\n * = x^7 + x^6 + 1.\n *\n * The modular reduction by m(x) guarantees the result will be a binary\n * polynomial of less than degree 8, so that it can fit in a byte.\n *\n * The operation to multiply a binary polynomial b with x (the polynomial\n * x in binary representation is 00000010) is:\n *\n * b_7x^8 + b_6x^7 + b_5x^6 + b_4x^5 + b_3x^4 + b_2x^3 + b_1x^2 + b_0x^1\n *\n * To get GF(b, x) we must reduce that by m(x). If b_7 is 0 (that is the\n * most significant bit is 0 in b) then the result is already reduced. If\n * it is 1, then we can reduce it by subtracting m(x) via an XOR.\n *\n * It follows that multiplication by x (00000010 or 0x02) can be implemented\n * by performing a left shift followed by a conditional bitwise XOR with\n * 0x1b. This operation on bytes is denoted by xtime(). Multiplication by\n * higher powers of x can be implemented by repeated application of xtime().\n *\n * By adding intermediate results, multiplication by any constant can be\n * implemented. For instance:\n *\n * GF(0x57, 0x13) = 0xfe because:\n *\n * xtime(b) = (b & 128) ? (b << 1 ^ 0x11b) : (b << 1)\n *\n * Note: We XOR with 0x11b instead of 0x1b because in javascript our\n * datatype for b can be larger than 1 byte, so a left shift will not\n * automatically eliminate bits that overflow a byte ... by XOR'ing the\n * overflow bit with 1 (the extra one from 0x11b) we zero it out.\n *\n * GF(0x57, 0x02) = xtime(0x57) = 0xae\n * GF(0x57, 0x04) = xtime(0xae) = 0x47\n * GF(0x57, 0x08) = xtime(0x47) = 0x8e\n * GF(0x57, 0x10) = xtime(0x8e) = 0x07\n *\n * GF(0x57, 0x13) = GF(0x57, (0x01 ^ 0x02 ^ 0x10))\n *\n * And by the distributive property (since XOR is addition and GF() is\n * multiplication):\n *\n * = GF(0x57, 0x01) ^ GF(0x57, 0x02) ^ GF(0x57, 0x10)\n * = 0x57 ^ 0xae ^ 0x07\n * = 0xfe.\n */\nfunction initialize() {\n init = true;\n\n /* Populate the Rcon table. These are the values given by\n [x^(i-1),{00},{00},{00}] where x^(i-1) are powers of x (and x = 0x02)\n in the field of GF(2^8), where i starts at 1.\n\n rcon[0] = [0x00, 0x00, 0x00, 0x00]\n rcon[1] = [0x01, 0x00, 0x00, 0x00] 2^(1-1) = 2^0 = 1\n rcon[2] = [0x02, 0x00, 0x00, 0x00] 2^(2-1) = 2^1 = 2\n ...\n rcon[9] = [0x1B, 0x00, 0x00, 0x00] 2^(9-1) = 2^8 = 0x1B\n rcon[10] = [0x36, 0x00, 0x00, 0x00] 2^(10-1) = 2^9 = 0x36\n\n We only store the first byte because it is the only one used.\n */\n rcon = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1B, 0x36];\n\n // compute xtime table which maps i onto GF(i, 0x02)\n var xtime = new Array(256);\n for(var i = 0; i < 128; ++i) {\n xtime[i] = i << 1;\n xtime[i + 128] = (i + 128) << 1 ^ 0x11B;\n }\n\n // compute all other tables\n sbox = new Array(256);\n isbox = new Array(256);\n mix = new Array(4);\n imix = new Array(4);\n for(var i = 0; i < 4; ++i) {\n mix[i] = new Array(256);\n imix[i] = new Array(256);\n }\n var e = 0, ei = 0, e2, e4, e8, sx, sx2, me, ime;\n for(var i = 0; i < 256; ++i) {\n /* We need to generate the SubBytes() sbox and isbox tables so that\n we can perform byte substitutions. This requires us to traverse\n all of the elements in GF, find their multiplicative inverses,\n and apply to each the following affine transformation:\n\n bi' = bi ^ b(i + 4) mod 8 ^ b(i + 5) mod 8 ^ b(i + 6) mod 8 ^\n b(i + 7) mod 8 ^ ci\n for 0 <= i < 8, where bi is the ith bit of the byte, and ci is the\n ith bit of a byte c with the value {63} or {01100011}.\n\n It is possible to traverse every possible value in a Galois field\n using what is referred to as a 'generator'. There are many\n generators (128 out of 256): 3,5,6,9,11,82 to name a few. To fully\n traverse GF we iterate 255 times, multiplying by our generator\n each time.\n\n On each iteration we can determine the multiplicative inverse for\n the current element.\n\n Suppose there is an element in GF 'e'. For a given generator 'g',\n e = g^x. The multiplicative inverse of e is g^(255 - x). It turns\n out that if use the inverse of a generator as another generator\n it will produce all of the corresponding multiplicative inverses\n at the same time. For this reason, we choose 5 as our inverse\n generator because it only requires 2 multiplies and 1 add and its\n inverse, 82, requires relatively few operations as well.\n\n In order to apply the affine transformation, the multiplicative\n inverse 'ei' of 'e' can be repeatedly XOR'd (4 times) with a\n bit-cycling of 'ei'. To do this 'ei' is first stored in 's' and\n 'x'. Then 's' is left shifted and the high bit of 's' is made the\n low bit. The resulting value is stored in 's'. Then 'x' is XOR'd\n with 's' and stored in 'x'. On each subsequent iteration the same\n operation is performed. When 4 iterations are complete, 'x' is\n XOR'd with 'c' (0x63) and the transformed value is stored in 'x'.\n For example:\n\n s = 01000001\n x = 01000001\n\n iteration 1: s = 10000010, x ^= s\n iteration 2: s = 00000101, x ^= s\n iteration 3: s = 00001010, x ^= s\n iteration 4: s = 00010100, x ^= s\n x ^= 0x63\n\n This can be done with a loop where s = (s << 1) | (s >> 7). However,\n it can also be done by using a single 16-bit (in this case 32-bit)\n number 'sx'. Since XOR is an associative operation, we can set 'sx'\n to 'ei' and then XOR it with 'sx' left-shifted 1,2,3, and 4 times.\n The most significant bits will flow into the high 8 bit positions\n and be correctly XOR'd with one another. All that remains will be\n to cycle the high 8 bits by XOR'ing them all with the lower 8 bits\n afterwards.\n\n At the same time we're populating sbox and isbox we can precompute\n the multiplication we'll need to do to do MixColumns() later.\n */\n\n // apply affine transformation\n sx = ei ^ (ei << 1) ^ (ei << 2) ^ (ei << 3) ^ (ei << 4);\n sx = (sx >> 8) ^ (sx & 255) ^ 0x63;\n\n // update tables\n sbox[e] = sx;\n isbox[sx] = e;\n\n /* Mixing columns is done using matrix multiplication. The columns\n that are to be mixed are each a single word in the current state.\n The state has Nb columns (4 columns). Therefore each column is a\n 4 byte word. So to mix the columns in a single column 'c' where\n its rows are r0, r1, r2, and r3, we use the following matrix\n multiplication:\n\n [2 3 1 1]*[r0,c]=[r'0,c]\n [1 2 3 1] [r1,c] [r'1,c]\n [1 1 2 3] [r2,c] [r'2,c]\n [3 1 1 2] [r3,c] [r'3,c]\n\n r0, r1, r2, and r3 are each 1 byte of one of the words in the\n state (a column). To do matrix multiplication for each mixed\n column c' we multiply the corresponding row from the left matrix\n with the corresponding column from the right matrix. In total, we\n get 4 equations:\n\n r0,c' = 2*r0,c + 3*r1,c + 1*r2,c + 1*r3,c\n r1,c' = 1*r0,c + 2*r1,c + 3*r2,c + 1*r3,c\n r2,c' = 1*r0,c + 1*r1,c + 2*r2,c + 3*r3,c\n r3,c' = 3*r0,c + 1*r1,c + 1*r2,c + 2*r3,c\n\n As usual, the multiplication is as previously defined and the\n addition is XOR. In order to optimize mixing columns we can store\n the multiplication results in tables. If you think of the whole\n column as a word (it might help to visualize by mentally rotating\n the equations above by counterclockwise 90 degrees) then you can\n see that it would be useful to map the multiplications performed on\n each byte (r0, r1, r2, r3) onto a word as well. For instance, we\n could map 2*r0,1*r0,1*r0,3*r0 onto a word by storing 2*r0 in the\n highest 8 bits and 3*r0 in the lowest 8 bits (with the other two\n respectively in the middle). This means that a table can be\n constructed that uses r0 as an index to the word. We can do the\n same with r1, r2, and r3, creating a total of 4 tables.\n\n To construct a full c', we can just look up each byte of c in\n their respective tables and XOR the results together.\n\n Also, to build each table we only have to calculate the word\n for 2,1,1,3 for every byte ... which we can do on each iteration\n of this loop since we will iterate over every byte. After we have\n calculated 2,1,1,3 we can get the results for the other tables\n by cycling the byte at the end to the beginning. For instance\n we can take the result of table 2,1,1,3 and produce table 3,2,1,1\n by moving the right most byte to the left most position just like\n how you can imagine the 3 moved out of 2,1,1,3 and to the front\n to produce 3,2,1,1.\n\n There is another optimization in that the same multiples of\n the current element we need in order to advance our generator\n to the next iteration can be reused in performing the 2,1,1,3\n calculation. We also calculate the inverse mix column tables,\n with e,9,d,b being the inverse of 2,1,1,3.\n\n When we're done, and we need to actually mix columns, the first\n byte of each state word should be put through mix[0] (2,1,1,3),\n the second through mix[1] (3,2,1,1) and so forth. Then they should\n be XOR'd together to produce the fully mixed column.\n */\n\n // calculate mix and imix table values\n sx2 = xtime[sx];\n e2 = xtime[e];\n e4 = xtime[e2];\n e8 = xtime[e4];\n me =\n (sx2 << 24) ^ // 2\n (sx << 16) ^ // 1\n (sx << 8) ^ // 1\n (sx ^ sx2); // 3\n ime =\n (e2 ^ e4 ^ e8) << 24 ^ // E (14)\n (e ^ e8) << 16 ^ // 9\n (e ^ e4 ^ e8) << 8 ^ // D (13)\n (e ^ e2 ^ e8); // B (11)\n // produce each of the mix tables by rotating the 2,1,1,3 value\n for(var n = 0; n < 4; ++n) {\n mix[n][e] = me;\n imix[n][sx] = ime;\n // cycle the right most byte to the left most position\n // ie: 2,1,1,3 becomes 3,2,1,1\n me = me << 24 | me >>> 8;\n ime = ime << 24 | ime >>> 8;\n }\n\n // get next element and inverse\n if(e === 0) {\n // 1 is the inverse of 1\n e = ei = 1;\n } else {\n // e = 2e + 2*2*2*(10e)) = multiply e by 82 (chosen generator)\n // ei = ei + 2*2*ei = multiply ei by 5 (inverse generator)\n e = e2 ^ xtime[xtime[xtime[e2 ^ e8]]];\n ei ^= xtime[xtime[ei]];\n }\n }\n}\n\n/**\n * Generates a key schedule using the AES key expansion algorithm.\n *\n * The AES algorithm takes the Cipher Key, K, and performs a Key Expansion\n * routine to generate a key schedule. The Key Expansion generates a total\n * of Nb*(Nr + 1) words: the algorithm requires an initial set of Nb words,\n * and each of the Nr rounds requires Nb words of key data. The resulting\n * key schedule consists of a linear array of 4-byte words, denoted [wi ],\n * with i in the range 0 <= i < Nb(Nr + 1).\n *\n * KeyExpansion(byte key[4*Nk], word w[Nb*(Nr+1)], Nk)\n * AES-128 (Nb=4, Nk=4, Nr=10)\n * AES-192 (Nb=4, Nk=6, Nr=12)\n * AES-256 (Nb=4, Nk=8, Nr=14)\n * Note: Nr=Nk+6.\n *\n * Nb is the number of columns (32-bit words) comprising the State (or\n * number of bytes in a block). For AES, Nb=4.\n *\n * @param key the key to schedule (as an array of 32-bit words).\n * @param decrypt true to modify the key schedule to decrypt, false not to.\n *\n * @return the generated key schedule.\n */\nfunction _expandKey(key, decrypt) {\n // copy the key's words to initialize the key schedule\n var w = key.slice(0);\n\n /* RotWord() will rotate a word, moving the first byte to the last\n byte's position (shifting the other bytes left).\n\n We will be getting the value of Rcon at i / Nk. 'i' will iterate\n from Nk to (Nb * Nr+1). Nk = 4 (4 byte key), Nb = 4 (4 words in\n a block), Nr = Nk + 6 (10). Therefore 'i' will iterate from\n 4 to 44 (exclusive). Each time we iterate 4 times, i / Nk will\n increase by 1. We use a counter iNk to keep track of this.\n */\n\n // go through the rounds expanding the key\n var temp, iNk = 1;\n var Nk = w.length;\n var Nr1 = Nk + 6 + 1;\n var end = Nb * Nr1;\n for(var i = Nk; i < end; ++i) {\n temp = w[i - 1];\n if(i % Nk === 0) {\n // temp = SubWord(RotWord(temp)) ^ Rcon[i / Nk]\n temp =\n sbox[temp >>> 16 & 255] << 24 ^\n sbox[temp >>> 8 & 255] << 16 ^\n sbox[temp & 255] << 8 ^\n sbox[temp >>> 24] ^ (rcon[iNk] << 24);\n iNk++;\n } else if(Nk > 6 && (i % Nk === 4)) {\n // temp = SubWord(temp)\n temp =\n sbox[temp >>> 24] << 24 ^\n sbox[temp >>> 16 & 255] << 16 ^\n sbox[temp >>> 8 & 255] << 8 ^\n sbox[temp & 255];\n }\n w[i] = w[i - Nk] ^ temp;\n }\n\n /* When we are updating a cipher block we always use the code path for\n encryption whether we are decrypting or not (to shorten code and\n simplify the generation of look up tables). However, because there\n are differences in the decryption algorithm, other than just swapping\n in different look up tables, we must transform our key schedule to\n account for these changes:\n\n 1. The decryption algorithm gets its key rounds in reverse order.\n 2. The decryption algorithm adds the round key before mixing columns\n instead of afterwards.\n\n We don't need to modify our key schedule to handle the first case,\n we can just traverse the key schedule in reverse order when decrypting.\n\n The second case requires a little work.\n\n The tables we built for performing rounds will take an input and then\n perform SubBytes() and MixColumns() or, for the decrypt version,\n InvSubBytes() and InvMixColumns(). But the decrypt algorithm requires\n us to AddRoundKey() before InvMixColumns(). This means we'll need to\n apply some transformations to the round key to inverse-mix its columns\n so they'll be correct for moving AddRoundKey() to after the state has\n had its columns inverse-mixed.\n\n To inverse-mix the columns of the state when we're decrypting we use a\n lookup table that will apply InvSubBytes() and InvMixColumns() at the\n same time. However, the round key's bytes are not inverse-substituted\n in the decryption algorithm. To get around this problem, we can first\n substitute the bytes in the round key so that when we apply the\n transformation via the InvSubBytes()+InvMixColumns() table, it will\n undo our substitution leaving us with the original value that we\n want -- and then inverse-mix that value.\n\n This change will correctly alter our key schedule so that we can XOR\n each round key with our already transformed decryption state. This\n allows us to use the same code path as the encryption algorithm.\n\n We make one more change to the decryption key. Since the decryption\n algorithm runs in reverse from the encryption algorithm, we reverse\n the order of the round keys to avoid having to iterate over the key\n schedule backwards when running the encryption algorithm later in\n decryption mode. In addition to reversing the order of the round keys,\n we also swap each round key's 2nd and 4th rows. See the comments\n section where rounds are performed for more details about why this is\n done. These changes are done inline with the other substitution\n described above.\n */\n if(decrypt) {\n var tmp;\n var m0 = imix[0];\n var m1 = imix[1];\n var m2 = imix[2];\n var m3 = imix[3];\n var wnew = w.slice(0);\n end = w.length;\n for(var i = 0, wi = end - Nb; i < end; i += Nb, wi -= Nb) {\n // do not sub the first or last round key (round keys are Nb\n // words) as no column mixing is performed before they are added,\n // but do change the key order\n if(i === 0 || i === (end - Nb)) {\n wnew[i] = w[wi];\n wnew[i + 1] = w[wi + 3];\n wnew[i + 2] = w[wi + 2];\n wnew[i + 3] = w[wi + 1];\n } else {\n // substitute each round key byte because the inverse-mix\n // table will inverse-substitute it (effectively cancel the\n // substitution because round key bytes aren't sub'd in\n // decryption mode) and swap indexes 3 and 1\n for(var n = 0; n < Nb; ++n) {\n tmp = w[wi + n];\n wnew[i + (3&-n)] =\n m0[sbox[tmp >>> 24]] ^\n m1[sbox[tmp >>> 16 & 255]] ^\n m2[sbox[tmp >>> 8 & 255]] ^\n m3[sbox[tmp & 255]];\n }\n }\n }\n w = wnew;\n }\n\n return w;\n}\n\n/**\n * Updates a single block (16 bytes) using AES. The update will either\n * encrypt or decrypt the block.\n *\n * @param w the key schedule.\n * @param input the input block (an array of 32-bit words).\n * @param output the updated output block.\n * @param decrypt true to decrypt the block, false to encrypt it.\n */\nfunction _updateBlock(w, input, output, decrypt) {\n /*\n Cipher(byte in[4*Nb], byte out[4*Nb], word w[Nb*(Nr+1)])\n begin\n byte state[4,Nb]\n state = in\n AddRoundKey(state, w[0, Nb-1])\n for round = 1 step 1 to Nr-1\n SubBytes(state)\n ShiftRows(state)\n MixColumns(state)\n AddRoundKey(state, w[round*Nb, (round+1)*Nb-1])\n end for\n SubBytes(state)\n ShiftRows(state)\n AddRoundKey(state, w[Nr*Nb, (Nr+1)*Nb-1])\n out = state\n end\n\n InvCipher(byte in[4*Nb], byte out[4*Nb], word w[Nb*(Nr+1)])\n begin\n byte state[4,Nb]\n state = in\n AddRoundKey(state, w[Nr*Nb, (Nr+1)*Nb-1])\n for round = Nr-1 step -1 downto 1\n InvShiftRows(state)\n InvSubBytes(state)\n AddRoundKey(state, w[round*Nb, (round+1)*Nb-1])\n InvMixColumns(state)\n end for\n InvShiftRows(state)\n InvSubBytes(state)\n AddRoundKey(state, w[0, Nb-1])\n out = state\n end\n */\n\n // Encrypt: AddRoundKey(state, w[0, Nb-1])\n // Decrypt: AddRoundKey(state, w[Nr*Nb, (Nr+1)*Nb-1])\n var Nr = w.length / 4 - 1;\n var m0, m1, m2, m3, sub;\n if(decrypt) {\n m0 = imix[0];\n m1 = imix[1];\n m2 = imix[2];\n m3 = imix[3];\n sub = isbox;\n } else {\n m0 = mix[0];\n m1 = mix[1];\n m2 = mix[2];\n m3 = mix[3];\n sub = sbox;\n }\n var a, b, c, d, a2, b2, c2;\n a = input[0] ^ w[0];\n b = input[decrypt ? 3 : 1] ^ w[1];\n c = input[2] ^ w[2];\n d = input[decrypt ? 1 : 3] ^ w[3];\n var i = 3;\n\n /* In order to share code we follow the encryption algorithm when both\n encrypting and decrypting. To account for the changes required in the\n decryption algorithm, we use different lookup tables when decrypting\n and use a modified key schedule to account for the difference in the\n order of transformations applied when performing rounds. We also get\n key rounds in reverse order (relative to encryption). */\n for(var round = 1; round < Nr; ++round) {\n /* As described above, we'll be using table lookups to perform the\n column mixing. Each column is stored as a word in the state (the\n array 'input' has one column as a word at each index). In order to\n mix a column, we perform these transformations on each row in c,\n which is 1 byte in each word. The new column for c0 is c'0:\n\n m0 m1 m2 m3\n r0,c'0 = 2*r0,c0 + 3*r1,c0 + 1*r2,c0 + 1*r3,c0\n r1,c'0 = 1*r0,c0 + 2*r1,c0 + 3*r2,c0 + 1*r3,c0\n r2,c'0 = 1*r0,c0 + 1*r1,c0 + 2*r2,c0 + 3*r3,c0\n r3,c'0 = 3*r0,c0 + 1*r1,c0 + 1*r2,c0 + 2*r3,c0\n\n So using mix tables where c0 is a word with r0 being its upper\n 8 bits and r3 being its lower 8 bits:\n\n m0[c0 >> 24] will yield this word: [2*r0,1*r0,1*r0,3*r0]\n ...\n m3[c0 & 255] will yield this word: [1*r3,1*r3,3*r3,2*r3]\n\n Therefore to mix the columns in each word in the state we\n do the following (& 255 omitted for brevity):\n c'0,r0 = m0[c0 >> 24] ^ m1[c1 >> 16] ^ m2[c2 >> 8] ^ m3[c3]\n c'0,r1 = m0[c0 >> 24] ^ m1[c1 >> 16] ^ m2[c2 >> 8] ^ m3[c3]\n c'0,r2 = m0[c0 >> 24] ^ m1[c1 >> 16] ^ m2[c2 >> 8] ^ m3[c3]\n c'0,r3 = m0[c0 >> 24] ^ m1[c1 >> 16] ^ m2[c2 >> 8] ^ m3[c3]\n\n However, before mixing, the algorithm requires us to perform\n ShiftRows(). The ShiftRows() transformation cyclically shifts the\n last 3 rows of the state over different offsets. The first row\n (r = 0) is not shifted.\n\n s'_r,c = s_r,(c + shift(r, Nb) mod Nb\n for 0 < r < 4 and 0 <= c < Nb and\n shift(1, 4) = 1\n shift(2, 4) = 2\n shift(3, 4) = 3.\n\n This causes the first byte in r = 1 to be moved to the end of\n the row, the first 2 bytes in r = 2 to be moved to the end of\n the row, the first 3 bytes in r = 3 to be moved to the end of\n the row:\n\n r1: [c0 c1 c2 c3] => [c1 c2 c3 c0]\n r2: [c0 c1 c2 c3] [c2 c3 c0 c1]\n r3: [c0 c1 c2 c3] [c3 c0 c1 c2]\n\n We can make these substitutions inline with our column mixing to\n generate an updated set of equations to produce each word in the\n state (note the columns have changed positions):\n\n c0 c1 c2 c3 => c0 c1 c2 c3\n c0 c1 c2 c3 c1 c2 c3 c0 (cycled 1 byte)\n c0 c1 c2 c3 c2 c3 c0 c1 (cycled 2 bytes)\n c0 c1 c2 c3 c3 c0 c1 c2 (cycled 3 bytes)\n\n Therefore:\n\n c'0 = 2*r0,c0 + 3*r1,c1 + 1*r2,c2 + 1*r3,c3\n c'0 = 1*r0,c0 + 2*r1,c1 + 3*r2,c2 + 1*r3,c3\n c'0 = 1*r0,c0 + 1*r1,c1 + 2*r2,c2 + 3*r3,c3\n c'0 = 3*r0,c0 + 1*r1,c1 + 1*r2,c2 + 2*r3,c3\n\n c'1 = 2*r0,c1 + 3*r1,c2 + 1*r2,c3 + 1*r3,c0\n c'1 = 1*r0,c1 + 2*r1,c2 + 3*r2,c3 + 1*r3,c0\n c'1 = 1*r0,c1 + 1*r1,c2 + 2*r2,c3 + 3*r3,c0\n c'1 = 3*r0,c1 + 1*r1,c2 + 1*r2,c3 + 2*r3,c0\n\n ... and so forth for c'2 and c'3. The important distinction is\n that the columns are cycling, with c0 being used with the m0\n map when calculating c0, but c1 being used with the m0 map when\n calculating c1 ... and so forth.\n\n When performing the inverse we transform the mirror image and\n skip the bottom row, instead of the top one, and move upwards:\n\n c3 c2 c1 c0 => c0 c3 c2 c1 (cycled 3 bytes) *same as encryption\n c3 c2 c1 c0 c1 c0 c3 c2 (cycled 2 bytes)\n c3 c2 c1 c0 c2 c1 c0 c3 (cycled 1 byte) *same as encryption\n c3 c2 c1 c0 c3 c2 c1 c0\n\n If you compare the resulting matrices for ShiftRows()+MixColumns()\n and for InvShiftRows()+InvMixColumns() the 2nd and 4th columns are\n different (in encrypt mode vs. decrypt mode). So in order to use\n the same code to handle both encryption and decryption, we will\n need to do some mapping.\n\n If in encryption mode we let a=c0, b=c1, c=c2, d=c3, and r be\n a row number in the state, then the resulting matrix in encryption\n mode for applying the above transformations would be:\n\n r1: a b c d\n r2: b c d a\n r3: c d a b\n r4: d a b c\n\n If we did the same in decryption mode we would get:\n\n r1: a d c b\n r2: b a d c\n r3: c b a d\n r4: d c b a\n\n If instead we swap d and b (set b=c3 and d=c1), then we get:\n\n r1: a b c d\n r2: d a b c\n r3: c d a b\n r4: b c d a\n\n Now the 1st and 3rd rows are the same as the encryption matrix. All\n we need to do then to make the mapping exactly the same is to swap\n the 2nd and 4th rows when in decryption mode. To do this without\n having to do it on each iteration, we swapped the 2nd and 4th rows\n in the decryption key schedule. We also have to do the swap above\n when we first pull in the input and when we set the final output. */\n a2 =\n m0[a >>> 24] ^\n m1[b >>> 16 & 255] ^\n m2[c >>> 8 & 255] ^\n m3[d & 255] ^ w[++i];\n b2 =\n m0[b >>> 24] ^\n m1[c >>> 16 & 255] ^\n m2[d >>> 8 & 255] ^\n m3[a & 255] ^ w[++i];\n c2 =\n m0[c >>> 24] ^\n m1[d >>> 16 & 255] ^\n m2[a >>> 8 & 255] ^\n m3[b & 255] ^ w[++i];\n d =\n m0[d >>> 24] ^\n m1[a >>> 16 & 255] ^\n m2[b >>> 8 & 255] ^\n m3[c & 255] ^ w[++i];\n a = a2;\n b = b2;\n c = c2;\n }\n\n /*\n Encrypt:\n SubBytes(state)\n ShiftRows(state)\n AddRoundKey(state, w[Nr*Nb, (Nr+1)*Nb-1])\n\n Decrypt:\n InvShiftRows(state)\n InvSubBytes(state)\n AddRoundKey(state, w[0, Nb-1])\n */\n // Note: rows are shifted inline\n output[0] =\n (sub[a >>> 24] << 24) ^\n (sub[b >>> 16 & 255] << 16) ^\n (sub[c >>> 8 & 255] << 8) ^\n (sub[d & 255]) ^ w[++i];\n output[decrypt ? 3 : 1] =\n (sub[b >>> 24] << 24) ^\n (sub[c >>> 16 & 255] << 16) ^\n (sub[d >>> 8 & 255] << 8) ^\n (sub[a & 255]) ^ w[++i];\n output[2] =\n (sub[c >>> 24] << 24) ^\n (sub[d >>> 16 & 255] << 16) ^\n (sub[a >>> 8 & 255] << 8) ^\n (sub[b & 255]) ^ w[++i];\n output[decrypt ? 1 : 3] =\n (sub[d >>> 24] << 24) ^\n (sub[a >>> 16 & 255] << 16) ^\n (sub[b >>> 8 & 255] << 8) ^\n (sub[c & 255]) ^ w[++i];\n}\n\n/**\n * Deprecated. Instead, use:\n *\n * forge.cipher.createCipher('AES-', key);\n * forge.cipher.createDecipher('AES-', key);\n *\n * Creates a deprecated AES cipher object. This object's mode will default to\n * CBC (cipher-block-chaining).\n *\n * The key and iv may be given as a string of bytes, an array of bytes, a\n * byte buffer, or an array of 32-bit words.\n *\n * @param options the options to use.\n * key the symmetric key to use.\n * output the buffer to write to.\n * decrypt true for decryption, false for encryption.\n * mode the cipher mode to use (default: 'CBC').\n *\n * @return the cipher.\n */\nfunction _createCipher(options) {\n options = options || {};\n var mode = (options.mode || 'CBC').toUpperCase();\n var algorithm = 'AES-' + mode;\n\n var cipher;\n if(options.decrypt) {\n cipher = forge.cipher.createDecipher(algorithm, options.key);\n } else {\n cipher = forge.cipher.createCipher(algorithm, options.key);\n }\n\n // backwards compatible start API\n var start = cipher.start;\n cipher.start = function(iv, options) {\n // backwards compatibility: support second arg as output buffer\n var output = null;\n if(options instanceof forge.util.ByteBuffer) {\n output = options;\n options = {};\n }\n options = options || {};\n options.output = output;\n options.iv = iv;\n start.call(cipher, options);\n };\n\n return cipher;\n}\n","/**\n * Object IDs for ASN.1.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2010-2013 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\n\nforge.pki = forge.pki || {};\nvar oids = module.exports = forge.pki.oids = forge.oids = forge.oids || {};\n\n// set id to name mapping and name to id mapping\nfunction _IN(id, name) {\n oids[id] = name;\n oids[name] = id;\n}\n// set id to name mapping only\nfunction _I_(id, name) {\n oids[id] = name;\n}\n\n// algorithm OIDs\n_IN('1.2.840.113549.1.1.1', 'rsaEncryption');\n// Note: md2 & md4 not implemented\n//_IN('1.2.840.113549.1.1.2', 'md2WithRSAEncryption');\n//_IN('1.2.840.113549.1.1.3', 'md4WithRSAEncryption');\n_IN('1.2.840.113549.1.1.4', 'md5WithRSAEncryption');\n_IN('1.2.840.113549.1.1.5', 'sha1WithRSAEncryption');\n_IN('1.2.840.113549.1.1.7', 'RSAES-OAEP');\n_IN('1.2.840.113549.1.1.8', 'mgf1');\n_IN('1.2.840.113549.1.1.9', 'pSpecified');\n_IN('1.2.840.113549.1.1.10', 'RSASSA-PSS');\n_IN('1.2.840.113549.1.1.11', 'sha256WithRSAEncryption');\n_IN('1.2.840.113549.1.1.12', 'sha384WithRSAEncryption');\n_IN('1.2.840.113549.1.1.13', 'sha512WithRSAEncryption');\n// Edwards-curve Digital Signature Algorithm (EdDSA) Ed25519\n_IN('1.3.101.112', 'EdDSA25519');\n\n_IN('1.2.840.10040.4.3', 'dsa-with-sha1');\n\n_IN('1.3.14.3.2.7', 'desCBC');\n\n_IN('1.3.14.3.2.26', 'sha1');\n// Deprecated equivalent of sha1WithRSAEncryption\n_IN('1.3.14.3.2.29', 'sha1WithRSASignature');\n_IN('2.16.840.1.101.3.4.2.1', 'sha256');\n_IN('2.16.840.1.101.3.4.2.2', 'sha384');\n_IN('2.16.840.1.101.3.4.2.3', 'sha512');\n_IN('2.16.840.1.101.3.4.2.4', 'sha224');\n_IN('2.16.840.1.101.3.4.2.5', 'sha512-224');\n_IN('2.16.840.1.101.3.4.2.6', 'sha512-256');\n_IN('1.2.840.113549.2.2', 'md2');\n_IN('1.2.840.113549.2.5', 'md5');\n\n// pkcs#7 content types\n_IN('1.2.840.113549.1.7.1', 'data');\n_IN('1.2.840.113549.1.7.2', 'signedData');\n_IN('1.2.840.113549.1.7.3', 'envelopedData');\n_IN('1.2.840.113549.1.7.4', 'signedAndEnvelopedData');\n_IN('1.2.840.113549.1.7.5', 'digestedData');\n_IN('1.2.840.113549.1.7.6', 'encryptedData');\n\n// pkcs#9 oids\n_IN('1.2.840.113549.1.9.1', 'emailAddress');\n_IN('1.2.840.113549.1.9.2', 'unstructuredName');\n_IN('1.2.840.113549.1.9.3', 'contentType');\n_IN('1.2.840.113549.1.9.4', 'messageDigest');\n_IN('1.2.840.113549.1.9.5', 'signingTime');\n_IN('1.2.840.113549.1.9.6', 'counterSignature');\n_IN('1.2.840.113549.1.9.7', 'challengePassword');\n_IN('1.2.840.113549.1.9.8', 'unstructuredAddress');\n_IN('1.2.840.113549.1.9.14', 'extensionRequest');\n\n_IN('1.2.840.113549.1.9.20', 'friendlyName');\n_IN('1.2.840.113549.1.9.21', 'localKeyId');\n_IN('1.2.840.113549.1.9.22.1', 'x509Certificate');\n\n// pkcs#12 safe bags\n_IN('1.2.840.113549.1.12.10.1.1', 'keyBag');\n_IN('1.2.840.113549.1.12.10.1.2', 'pkcs8ShroudedKeyBag');\n_IN('1.2.840.113549.1.12.10.1.3', 'certBag');\n_IN('1.2.840.113549.1.12.10.1.4', 'crlBag');\n_IN('1.2.840.113549.1.12.10.1.5', 'secretBag');\n_IN('1.2.840.113549.1.12.10.1.6', 'safeContentsBag');\n\n// password-based-encryption for pkcs#12\n_IN('1.2.840.113549.1.5.13', 'pkcs5PBES2');\n_IN('1.2.840.113549.1.5.12', 'pkcs5PBKDF2');\n\n_IN('1.2.840.113549.1.12.1.1', 'pbeWithSHAAnd128BitRC4');\n_IN('1.2.840.113549.1.12.1.2', 'pbeWithSHAAnd40BitRC4');\n_IN('1.2.840.113549.1.12.1.3', 'pbeWithSHAAnd3-KeyTripleDES-CBC');\n_IN('1.2.840.113549.1.12.1.4', 'pbeWithSHAAnd2-KeyTripleDES-CBC');\n_IN('1.2.840.113549.1.12.1.5', 'pbeWithSHAAnd128BitRC2-CBC');\n_IN('1.2.840.113549.1.12.1.6', 'pbewithSHAAnd40BitRC2-CBC');\n\n// hmac OIDs\n_IN('1.2.840.113549.2.7', 'hmacWithSHA1');\n_IN('1.2.840.113549.2.8', 'hmacWithSHA224');\n_IN('1.2.840.113549.2.9', 'hmacWithSHA256');\n_IN('1.2.840.113549.2.10', 'hmacWithSHA384');\n_IN('1.2.840.113549.2.11', 'hmacWithSHA512');\n\n// symmetric key algorithm oids\n_IN('1.2.840.113549.3.7', 'des-EDE3-CBC');\n_IN('2.16.840.1.101.3.4.1.2', 'aes128-CBC');\n_IN('2.16.840.1.101.3.4.1.22', 'aes192-CBC');\n_IN('2.16.840.1.101.3.4.1.42', 'aes256-CBC');\n\n// certificate issuer/subject OIDs\n_IN('2.5.4.3', 'commonName');\n_IN('2.5.4.4', 'surname');\n_IN('2.5.4.5', 'serialNumber');\n_IN('2.5.4.6', 'countryName');\n_IN('2.5.4.7', 'localityName');\n_IN('2.5.4.8', 'stateOrProvinceName');\n_IN('2.5.4.9', 'streetAddress');\n_IN('2.5.4.10', 'organizationName');\n_IN('2.5.4.11', 'organizationalUnitName');\n_IN('2.5.4.12', 'title');\n_IN('2.5.4.13', 'description');\n_IN('2.5.4.15', 'businessCategory');\n_IN('2.5.4.17', 'postalCode');\n_IN('2.5.4.42', 'givenName');\n_IN('1.3.6.1.4.1.311.60.2.1.2', 'jurisdictionOfIncorporationStateOrProvinceName');\n_IN('1.3.6.1.4.1.311.60.2.1.3', 'jurisdictionOfIncorporationCountryName');\n\n// X.509 extension OIDs\n_IN('2.16.840.1.113730.1.1', 'nsCertType');\n_IN('2.16.840.1.113730.1.13', 'nsComment'); // deprecated in theory; still widely used\n_I_('2.5.29.1', 'authorityKeyIdentifier'); // deprecated, use .35\n_I_('2.5.29.2', 'keyAttributes'); // obsolete use .37 or .15\n_I_('2.5.29.3', 'certificatePolicies'); // deprecated, use .32\n_I_('2.5.29.4', 'keyUsageRestriction'); // obsolete use .37 or .15\n_I_('2.5.29.5', 'policyMapping'); // deprecated use .33\n_I_('2.5.29.6', 'subtreesConstraint'); // obsolete use .30\n_I_('2.5.29.7', 'subjectAltName'); // deprecated use .17\n_I_('2.5.29.8', 'issuerAltName'); // deprecated use .18\n_I_('2.5.29.9', 'subjectDirectoryAttributes');\n_I_('2.5.29.10', 'basicConstraints'); // deprecated use .19\n_I_('2.5.29.11', 'nameConstraints'); // deprecated use .30\n_I_('2.5.29.12', 'policyConstraints'); // deprecated use .36\n_I_('2.5.29.13', 'basicConstraints'); // deprecated use .19\n_IN('2.5.29.14', 'subjectKeyIdentifier');\n_IN('2.5.29.15', 'keyUsage');\n_I_('2.5.29.16', 'privateKeyUsagePeriod');\n_IN('2.5.29.17', 'subjectAltName');\n_IN('2.5.29.18', 'issuerAltName');\n_IN('2.5.29.19', 'basicConstraints');\n_I_('2.5.29.20', 'cRLNumber');\n_I_('2.5.29.21', 'cRLReason');\n_I_('2.5.29.22', 'expirationDate');\n_I_('2.5.29.23', 'instructionCode');\n_I_('2.5.29.24', 'invalidityDate');\n_I_('2.5.29.25', 'cRLDistributionPoints'); // deprecated use .31\n_I_('2.5.29.26', 'issuingDistributionPoint'); // deprecated use .28\n_I_('2.5.29.27', 'deltaCRLIndicator');\n_I_('2.5.29.28', 'issuingDistributionPoint');\n_I_('2.5.29.29', 'certificateIssuer');\n_I_('2.5.29.30', 'nameConstraints');\n_IN('2.5.29.31', 'cRLDistributionPoints');\n_IN('2.5.29.32', 'certificatePolicies');\n_I_('2.5.29.33', 'policyMappings');\n_I_('2.5.29.34', 'policyConstraints'); // deprecated use .36\n_IN('2.5.29.35', 'authorityKeyIdentifier');\n_I_('2.5.29.36', 'policyConstraints');\n_IN('2.5.29.37', 'extKeyUsage');\n_I_('2.5.29.46', 'freshestCRL');\n_I_('2.5.29.54', 'inhibitAnyPolicy');\n\n// extKeyUsage purposes\n_IN('1.3.6.1.4.1.11129.2.4.2', 'timestampList');\n_IN('1.3.6.1.5.5.7.1.1', 'authorityInfoAccess');\n_IN('1.3.6.1.5.5.7.3.1', 'serverAuth');\n_IN('1.3.6.1.5.5.7.3.2', 'clientAuth');\n_IN('1.3.6.1.5.5.7.3.3', 'codeSigning');\n_IN('1.3.6.1.5.5.7.3.4', 'emailProtection');\n_IN('1.3.6.1.5.5.7.3.8', 'timeStamping');\n","/**\n * Javascript implementation of Abstract Syntax Notation Number One.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2010-2015 Digital Bazaar, Inc.\n *\n * An API for storing data using the Abstract Syntax Notation Number One\n * format using DER (Distinguished Encoding Rules) encoding. This encoding is\n * commonly used to store data for PKI, i.e. X.509 Certificates, and this\n * implementation exists for that purpose.\n *\n * Abstract Syntax Notation Number One (ASN.1) is used to define the abstract\n * syntax of information without restricting the way the information is encoded\n * for transmission. It provides a standard that allows for open systems\n * communication. ASN.1 defines the syntax of information data and a number of\n * simple data types as well as a notation for describing them and specifying\n * values for them.\n *\n * The RSA algorithm creates public and private keys that are often stored in\n * X.509 or PKCS#X formats -- which use ASN.1 (encoded in DER format). This\n * class provides the most basic functionality required to store and load DSA\n * keys that are encoded according to ASN.1.\n *\n * The most common binary encodings for ASN.1 are BER (Basic Encoding Rules)\n * and DER (Distinguished Encoding Rules). DER is just a subset of BER that\n * has stricter requirements for how data must be encoded.\n *\n * Each ASN.1 structure has a tag (a byte identifying the ASN.1 structure type)\n * and a byte array for the value of this ASN1 structure which may be data or a\n * list of ASN.1 structures.\n *\n * Each ASN.1 structure using BER is (Tag-Length-Value):\n *\n * | byte 0 | bytes X | bytes Y |\n * |--------|---------|----------\n * | tag | length | value |\n *\n * ASN.1 allows for tags to be of \"High-tag-number form\" which allows a tag to\n * be two or more octets, but that is not supported by this class. A tag is\n * only 1 byte. Bits 1-5 give the tag number (ie the data type within a\n * particular 'class'), 6 indicates whether or not the ASN.1 value is\n * constructed from other ASN.1 values, and bits 7 and 8 give the 'class'. If\n * bits 7 and 8 are both zero, the class is UNIVERSAL. If only bit 7 is set,\n * then the class is APPLICATION. If only bit 8 is set, then the class is\n * CONTEXT_SPECIFIC. If both bits 7 and 8 are set, then the class is PRIVATE.\n * The tag numbers for the data types for the class UNIVERSAL are listed below:\n *\n * UNIVERSAL 0 Reserved for use by the encoding rules\n * UNIVERSAL 1 Boolean type\n * UNIVERSAL 2 Integer type\n * UNIVERSAL 3 Bitstring type\n * UNIVERSAL 4 Octetstring type\n * UNIVERSAL 5 Null type\n * UNIVERSAL 6 Object identifier type\n * UNIVERSAL 7 Object descriptor type\n * UNIVERSAL 8 External type and Instance-of type\n * UNIVERSAL 9 Real type\n * UNIVERSAL 10 Enumerated type\n * UNIVERSAL 11 Embedded-pdv type\n * UNIVERSAL 12 UTF8String type\n * UNIVERSAL 13 Relative object identifier type\n * UNIVERSAL 14-15 Reserved for future editions\n * UNIVERSAL 16 Sequence and Sequence-of types\n * UNIVERSAL 17 Set and Set-of types\n * UNIVERSAL 18-22, 25-30 Character string types\n * UNIVERSAL 23-24 Time types\n *\n * The length of an ASN.1 structure is specified after the tag identifier.\n * There is a definite form and an indefinite form. The indefinite form may\n * be used if the encoding is constructed and not all immediately available.\n * The indefinite form is encoded using a length byte with only the 8th bit\n * set. The end of the constructed object is marked using end-of-contents\n * octets (two zero bytes).\n *\n * The definite form looks like this:\n *\n * The length may take up 1 or more bytes, it depends on the length of the\n * value of the ASN.1 structure. DER encoding requires that if the ASN.1\n * structure has a value that has a length greater than 127, more than 1 byte\n * will be used to store its length, otherwise just one byte will be used.\n * This is strict.\n *\n * In the case that the length of the ASN.1 value is less than 127, 1 octet\n * (byte) is used to store the \"short form\" length. The 8th bit has a value of\n * 0 indicating the length is \"short form\" and not \"long form\" and bits 7-1\n * give the length of the data. (The 8th bit is the left-most, most significant\n * bit: also known as big endian or network format).\n *\n * In the case that the length of the ASN.1 value is greater than 127, 2 to\n * 127 octets (bytes) are used to store the \"long form\" length. The first\n * byte's 8th bit is set to 1 to indicate the length is \"long form.\" Bits 7-1\n * give the number of additional octets. All following octets are in base 256\n * with the most significant digit first (typical big-endian binary unsigned\n * integer storage). So, for instance, if the length of a value was 257, the\n * first byte would be set to:\n *\n * 10000010 = 130 = 0x82.\n *\n * This indicates there are 2 octets (base 256) for the length. The second and\n * third bytes (the octets just mentioned) would store the length in base 256:\n *\n * octet 2: 00000001 = 1 * 256^1 = 256\n * octet 3: 00000001 = 1 * 256^0 = 1\n * total = 257\n *\n * The algorithm for converting a js integer value of 257 to base-256 is:\n *\n * var value = 257;\n * var bytes = [];\n * bytes[0] = (value >>> 8) & 0xFF; // most significant byte first\n * bytes[1] = value & 0xFF; // least significant byte last\n *\n * On the ASN.1 UNIVERSAL Object Identifier (OID) type:\n *\n * An OID can be written like: \"value1.value2.value3...valueN\"\n *\n * The DER encoding rules:\n *\n * The first byte has the value 40 * value1 + value2.\n * The following bytes, if any, encode the remaining values. Each value is\n * encoded in base 128, most significant digit first (big endian), with as\n * few digits as possible, and the most significant bit of each byte set\n * to 1 except the last in each value's encoding. For example: Given the\n * OID \"1.2.840.113549\", its DER encoding is (remember each byte except the\n * last one in each encoding is OR'd with 0x80):\n *\n * byte 1: 40 * 1 + 2 = 42 = 0x2A.\n * bytes 2-3: 128 * 6 + 72 = 840 = 6 72 = 6 72 = 0x0648 = 0x8648\n * bytes 4-6: 16384 * 6 + 128 * 119 + 13 = 6 119 13 = 0x06770D = 0x86F70D\n *\n * The final value is: 0x2A864886F70D.\n * The full OID (including ASN.1 tag and length of 6 bytes) is:\n * 0x06062A864886F70D\n */\nvar forge = require('./forge');\nrequire('./util');\nrequire('./oids');\n\n/* ASN.1 API */\nvar asn1 = module.exports = forge.asn1 = forge.asn1 || {};\n\n/**\n * ASN.1 classes.\n */\nasn1.Class = {\n UNIVERSAL: 0x00,\n APPLICATION: 0x40,\n CONTEXT_SPECIFIC: 0x80,\n PRIVATE: 0xC0\n};\n\n/**\n * ASN.1 types. Not all types are supported by this implementation, only\n * those necessary to implement a simple PKI are implemented.\n */\nasn1.Type = {\n NONE: 0,\n BOOLEAN: 1,\n INTEGER: 2,\n BITSTRING: 3,\n OCTETSTRING: 4,\n NULL: 5,\n OID: 6,\n ODESC: 7,\n EXTERNAL: 8,\n REAL: 9,\n ENUMERATED: 10,\n EMBEDDED: 11,\n UTF8: 12,\n ROID: 13,\n SEQUENCE: 16,\n SET: 17,\n PRINTABLESTRING: 19,\n IA5STRING: 22,\n UTCTIME: 23,\n GENERALIZEDTIME: 24,\n BMPSTRING: 30\n};\n\n/**\n * Creates a new asn1 object.\n *\n * @param tagClass the tag class for the object.\n * @param type the data type (tag number) for the object.\n * @param constructed true if the asn1 object is in constructed form.\n * @param value the value for the object, if it is not constructed.\n * @param [options] the options to use:\n * [bitStringContents] the plain BIT STRING content including padding\n * byte.\n *\n * @return the asn1 object.\n */\nasn1.create = function(tagClass, type, constructed, value, options) {\n /* An asn1 object has a tagClass, a type, a constructed flag, and a\n value. The value's type depends on the constructed flag. If\n constructed, it will contain a list of other asn1 objects. If not,\n it will contain the ASN.1 value as an array of bytes formatted\n according to the ASN.1 data type. */\n\n // remove undefined values\n if(forge.util.isArray(value)) {\n var tmp = [];\n for(var i = 0; i < value.length; ++i) {\n if(value[i] !== undefined) {\n tmp.push(value[i]);\n }\n }\n value = tmp;\n }\n\n var obj = {\n tagClass: tagClass,\n type: type,\n constructed: constructed,\n composed: constructed || forge.util.isArray(value),\n value: value\n };\n if(options && 'bitStringContents' in options) {\n // TODO: copy byte buffer if it's a buffer not a string\n obj.bitStringContents = options.bitStringContents;\n // TODO: add readonly flag to avoid this overhead\n // save copy to detect changes\n obj.original = asn1.copy(obj);\n }\n return obj;\n};\n\n/**\n * Copies an asn1 object.\n *\n * @param obj the asn1 object.\n * @param [options] copy options:\n * [excludeBitStringContents] true to not copy bitStringContents\n *\n * @return the a copy of the asn1 object.\n */\nasn1.copy = function(obj, options) {\n var copy;\n\n if(forge.util.isArray(obj)) {\n copy = [];\n for(var i = 0; i < obj.length; ++i) {\n copy.push(asn1.copy(obj[i], options));\n }\n return copy;\n }\n\n if(typeof obj === 'string') {\n // TODO: copy byte buffer if it's a buffer not a string\n return obj;\n }\n\n copy = {\n tagClass: obj.tagClass,\n type: obj.type,\n constructed: obj.constructed,\n composed: obj.composed,\n value: asn1.copy(obj.value, options)\n };\n if(options && !options.excludeBitStringContents) {\n // TODO: copy byte buffer if it's a buffer not a string\n copy.bitStringContents = obj.bitStringContents;\n }\n return copy;\n};\n\n/**\n * Compares asn1 objects for equality.\n *\n * Note this function does not run in constant time.\n *\n * @param obj1 the first asn1 object.\n * @param obj2 the second asn1 object.\n * @param [options] compare options:\n * [includeBitStringContents] true to compare bitStringContents\n *\n * @return true if the asn1 objects are equal.\n */\nasn1.equals = function(obj1, obj2, options) {\n if(forge.util.isArray(obj1)) {\n if(!forge.util.isArray(obj2)) {\n return false;\n }\n if(obj1.length !== obj2.length) {\n return false;\n }\n for(var i = 0; i < obj1.length; ++i) {\n if(!asn1.equals(obj1[i], obj2[i])) {\n return false;\n }\n }\n return true;\n }\n\n if(typeof obj1 !== typeof obj2) {\n return false;\n }\n\n if(typeof obj1 === 'string') {\n return obj1 === obj2;\n }\n\n var equal = obj1.tagClass === obj2.tagClass &&\n obj1.type === obj2.type &&\n obj1.constructed === obj2.constructed &&\n obj1.composed === obj2.composed &&\n asn1.equals(obj1.value, obj2.value);\n if(options && options.includeBitStringContents) {\n equal = equal && (obj1.bitStringContents === obj2.bitStringContents);\n }\n\n return equal;\n};\n\n/**\n * Gets the length of a BER-encoded ASN.1 value.\n *\n * In case the length is not specified, undefined is returned.\n *\n * @param b the BER-encoded ASN.1 byte buffer, starting with the first\n * length byte.\n *\n * @return the length of the BER-encoded ASN.1 value or undefined.\n */\nasn1.getBerValueLength = function(b) {\n // TODO: move this function and related DER/BER functions to a der.js\n // file; better abstract ASN.1 away from der/ber.\n var b2 = b.getByte();\n if(b2 === 0x80) {\n return undefined;\n }\n\n // see if the length is \"short form\" or \"long form\" (bit 8 set)\n var length;\n var longForm = b2 & 0x80;\n if(!longForm) {\n // length is just the first byte\n length = b2;\n } else {\n // the number of bytes the length is specified in bits 7 through 1\n // and each length byte is in big-endian base-256\n length = b.getInt((b2 & 0x7F) << 3);\n }\n return length;\n};\n\n/**\n * Check if the byte buffer has enough bytes. Throws an Error if not.\n *\n * @param bytes the byte buffer to parse from.\n * @param remaining the bytes remaining in the current parsing state.\n * @param n the number of bytes the buffer must have.\n */\nfunction _checkBufferLength(bytes, remaining, n) {\n if(n > remaining) {\n var error = new Error('Too few bytes to parse DER.');\n error.available = bytes.length();\n error.remaining = remaining;\n error.requested = n;\n throw error;\n }\n}\n\n/**\n * Gets the length of a BER-encoded ASN.1 value.\n *\n * In case the length is not specified, undefined is returned.\n *\n * @param bytes the byte buffer to parse from.\n * @param remaining the bytes remaining in the current parsing state.\n *\n * @return the length of the BER-encoded ASN.1 value or undefined.\n */\nvar _getValueLength = function(bytes, remaining) {\n // TODO: move this function and related DER/BER functions to a der.js\n // file; better abstract ASN.1 away from der/ber.\n // fromDer already checked that this byte exists\n var b2 = bytes.getByte();\n remaining--;\n if(b2 === 0x80) {\n return undefined;\n }\n\n // see if the length is \"short form\" or \"long form\" (bit 8 set)\n var length;\n var longForm = b2 & 0x80;\n if(!longForm) {\n // length is just the first byte\n length = b2;\n } else {\n // the number of bytes the length is specified in bits 7 through 1\n // and each length byte is in big-endian base-256\n var longFormBytes = b2 & 0x7F;\n _checkBufferLength(bytes, remaining, longFormBytes);\n length = bytes.getInt(longFormBytes << 3);\n }\n // FIXME: this will only happen for 32 bit getInt with high bit set\n if(length < 0) {\n throw new Error('Negative length: ' + length);\n }\n return length;\n};\n\n/**\n * Parses an asn1 object from a byte buffer in DER format.\n *\n * @param bytes the byte buffer to parse from.\n * @param [strict] true to be strict when checking value lengths, false to\n * allow truncated values (default: true).\n * @param [options] object with options or boolean strict flag\n * [strict] true to be strict when checking value lengths, false to\n * allow truncated values (default: true).\n * [parseAllBytes] true to ensure all bytes are parsed\n * (default: true)\n * [decodeBitStrings] true to attempt to decode the content of\n * BIT STRINGs (not OCTET STRINGs) using strict mode. Note that\n * without schema support to understand the data context this can\n * erroneously decode values that happen to be valid ASN.1. This\n * flag will be deprecated or removed as soon as schema support is\n * available. (default: true)\n *\n * @throws Will throw an error for various malformed input conditions.\n *\n * @return the parsed asn1 object.\n */\nasn1.fromDer = function(bytes, options) {\n if(options === undefined) {\n options = {\n strict: true,\n parseAllBytes: true,\n decodeBitStrings: true\n };\n }\n if(typeof options === 'boolean') {\n options = {\n strict: options,\n parseAllBytes: true,\n decodeBitStrings: true\n };\n }\n if(!('strict' in options)) {\n options.strict = true;\n }\n if(!('parseAllBytes' in options)) {\n options.parseAllBytes = true;\n }\n if(!('decodeBitStrings' in options)) {\n options.decodeBitStrings = true;\n }\n\n // wrap in buffer if needed\n if(typeof bytes === 'string') {\n bytes = forge.util.createBuffer(bytes);\n }\n\n var byteCount = bytes.length();\n var value = _fromDer(bytes, bytes.length(), 0, options);\n if(options.parseAllBytes && bytes.length() !== 0) {\n var error = new Error('Unparsed DER bytes remain after ASN.1 parsing.');\n error.byteCount = byteCount;\n error.remaining = bytes.length();\n throw error;\n }\n return value;\n};\n\n/**\n * Internal function to parse an asn1 object from a byte buffer in DER format.\n *\n * @param bytes the byte buffer to parse from.\n * @param remaining the number of bytes remaining for this chunk.\n * @param depth the current parsing depth.\n * @param options object with same options as fromDer().\n *\n * @return the parsed asn1 object.\n */\nfunction _fromDer(bytes, remaining, depth, options) {\n // temporary storage for consumption calculations\n var start;\n\n // minimum length for ASN.1 DER structure is 2\n _checkBufferLength(bytes, remaining, 2);\n\n // get the first byte\n var b1 = bytes.getByte();\n // consumed one byte\n remaining--;\n\n // get the tag class\n var tagClass = (b1 & 0xC0);\n\n // get the type (bits 1-5)\n var type = b1 & 0x1F;\n\n // get the variable value length and adjust remaining bytes\n start = bytes.length();\n var length = _getValueLength(bytes, remaining);\n remaining -= start - bytes.length();\n\n // ensure there are enough bytes to get the value\n if(length !== undefined && length > remaining) {\n if(options.strict) {\n var error = new Error('Too few bytes to read ASN.1 value.');\n error.available = bytes.length();\n error.remaining = remaining;\n error.requested = length;\n throw error;\n }\n // Note: be lenient with truncated values and use remaining state bytes\n length = remaining;\n }\n\n // value storage\n var value;\n // possible BIT STRING contents storage\n var bitStringContents;\n\n // constructed flag is bit 6 (32 = 0x20) of the first byte\n var constructed = ((b1 & 0x20) === 0x20);\n if(constructed) {\n // parse child asn1 objects from the value\n value = [];\n if(length === undefined) {\n // asn1 object of indefinite length, read until end tag\n for(;;) {\n _checkBufferLength(bytes, remaining, 2);\n if(bytes.bytes(2) === String.fromCharCode(0, 0)) {\n bytes.getBytes(2);\n remaining -= 2;\n break;\n }\n start = bytes.length();\n value.push(_fromDer(bytes, remaining, depth + 1, options));\n remaining -= start - bytes.length();\n }\n } else {\n // parsing asn1 object of definite length\n while(length > 0) {\n start = bytes.length();\n value.push(_fromDer(bytes, length, depth + 1, options));\n remaining -= start - bytes.length();\n length -= start - bytes.length();\n }\n }\n }\n\n // if a BIT STRING, save the contents including padding\n if(value === undefined && tagClass === asn1.Class.UNIVERSAL &&\n type === asn1.Type.BITSTRING) {\n bitStringContents = bytes.bytes(length);\n }\n\n // determine if a non-constructed value should be decoded as a composed\n // value that contains other ASN.1 objects. BIT STRINGs (and OCTET STRINGs)\n // can be used this way.\n if(value === undefined && options.decodeBitStrings &&\n tagClass === asn1.Class.UNIVERSAL &&\n // FIXME: OCTET STRINGs not yet supported here\n // .. other parts of forge expect to decode OCTET STRINGs manually\n (type === asn1.Type.BITSTRING /*|| type === asn1.Type.OCTETSTRING*/) &&\n length > 1) {\n // save read position\n var savedRead = bytes.read;\n var savedRemaining = remaining;\n var unused = 0;\n if(type === asn1.Type.BITSTRING) {\n /* The first octet gives the number of bits by which the length of the\n bit string is less than the next multiple of eight (this is called\n the \"number of unused bits\").\n\n The second and following octets give the value of the bit string\n converted to an octet string. */\n _checkBufferLength(bytes, remaining, 1);\n unused = bytes.getByte();\n remaining--;\n }\n // if all bits are used, maybe the BIT/OCTET STRING holds ASN.1 objs\n if(unused === 0) {\n try {\n // attempt to parse child asn1 object from the value\n // (stored in array to signal composed value)\n start = bytes.length();\n var subOptions = {\n // enforce strict mode to avoid parsing ASN.1 from plain data\n strict: true,\n decodeBitStrings: true\n };\n var composed = _fromDer(bytes, remaining, depth + 1, subOptions);\n var used = start - bytes.length();\n remaining -= used;\n if(type == asn1.Type.BITSTRING) {\n used++;\n }\n\n // if the data all decoded and the class indicates UNIVERSAL or\n // CONTEXT_SPECIFIC then assume we've got an encapsulated ASN.1 object\n var tc = composed.tagClass;\n if(used === length &&\n (tc === asn1.Class.UNIVERSAL || tc === asn1.Class.CONTEXT_SPECIFIC)) {\n value = [composed];\n }\n } catch(ex) {\n }\n }\n if(value === undefined) {\n // restore read position\n bytes.read = savedRead;\n remaining = savedRemaining;\n }\n }\n\n if(value === undefined) {\n // asn1 not constructed or composed, get raw value\n // TODO: do DER to OID conversion and vice-versa in .toDer?\n\n if(length === undefined) {\n if(options.strict) {\n throw new Error('Non-constructed ASN.1 object of indefinite length.');\n }\n // be lenient and use remaining state bytes\n length = remaining;\n }\n\n if(type === asn1.Type.BMPSTRING) {\n value = '';\n for(; length > 0; length -= 2) {\n _checkBufferLength(bytes, remaining, 2);\n value += String.fromCharCode(bytes.getInt16());\n remaining -= 2;\n }\n } else {\n value = bytes.getBytes(length);\n remaining -= length;\n }\n }\n\n // add BIT STRING contents if available\n var asn1Options = bitStringContents === undefined ? null : {\n bitStringContents: bitStringContents\n };\n\n // create and return asn1 object\n return asn1.create(tagClass, type, constructed, value, asn1Options);\n}\n\n/**\n * Converts the given asn1 object to a buffer of bytes in DER format.\n *\n * @param asn1 the asn1 object to convert to bytes.\n *\n * @return the buffer of bytes.\n */\nasn1.toDer = function(obj) {\n var bytes = forge.util.createBuffer();\n\n // build the first byte\n var b1 = obj.tagClass | obj.type;\n\n // for storing the ASN.1 value\n var value = forge.util.createBuffer();\n\n // use BIT STRING contents if available and data not changed\n var useBitStringContents = false;\n if('bitStringContents' in obj) {\n useBitStringContents = true;\n if(obj.original) {\n useBitStringContents = asn1.equals(obj, obj.original);\n }\n }\n\n if(useBitStringContents) {\n value.putBytes(obj.bitStringContents);\n } else if(obj.composed) {\n // if composed, use each child asn1 object's DER bytes as value\n // turn on 6th bit (0x20 = 32) to indicate asn1 is constructed\n // from other asn1 objects\n if(obj.constructed) {\n b1 |= 0x20;\n } else {\n // type is a bit string, add unused bits of 0x00\n value.putByte(0x00);\n }\n\n // add all of the child DER bytes together\n for(var i = 0; i < obj.value.length; ++i) {\n if(obj.value[i] !== undefined) {\n value.putBuffer(asn1.toDer(obj.value[i]));\n }\n }\n } else {\n // use asn1.value directly\n if(obj.type === asn1.Type.BMPSTRING) {\n for(var i = 0; i < obj.value.length; ++i) {\n value.putInt16(obj.value.charCodeAt(i));\n }\n } else {\n // ensure integer is minimally-encoded\n // TODO: should all leading bytes be stripped vs just one?\n // .. ex '00 00 01' => '01'?\n if(obj.type === asn1.Type.INTEGER &&\n obj.value.length > 1 &&\n // leading 0x00 for positive integer\n ((obj.value.charCodeAt(0) === 0 &&\n (obj.value.charCodeAt(1) & 0x80) === 0) ||\n // leading 0xFF for negative integer\n (obj.value.charCodeAt(0) === 0xFF &&\n (obj.value.charCodeAt(1) & 0x80) === 0x80))) {\n value.putBytes(obj.value.substr(1));\n } else {\n value.putBytes(obj.value);\n }\n }\n }\n\n // add tag byte\n bytes.putByte(b1);\n\n // use \"short form\" encoding\n if(value.length() <= 127) {\n // one byte describes the length\n // bit 8 = 0 and bits 7-1 = length\n bytes.putByte(value.length() & 0x7F);\n } else {\n // use \"long form\" encoding\n // 2 to 127 bytes describe the length\n // first byte: bit 8 = 1 and bits 7-1 = # of additional bytes\n // other bytes: length in base 256, big-endian\n var len = value.length();\n var lenBytes = '';\n do {\n lenBytes += String.fromCharCode(len & 0xFF);\n len = len >>> 8;\n } while(len > 0);\n\n // set first byte to # bytes used to store the length and turn on\n // bit 8 to indicate long-form length is used\n bytes.putByte(lenBytes.length | 0x80);\n\n // concatenate length bytes in reverse since they were generated\n // little endian and we need big endian\n for(var i = lenBytes.length - 1; i >= 0; --i) {\n bytes.putByte(lenBytes.charCodeAt(i));\n }\n }\n\n // concatenate value bytes\n bytes.putBuffer(value);\n return bytes;\n};\n\n/**\n * Converts an OID dot-separated string to a byte buffer. The byte buffer\n * contains only the DER-encoded value, not any tag or length bytes.\n *\n * @param oid the OID dot-separated string.\n *\n * @return the byte buffer.\n */\nasn1.oidToDer = function(oid) {\n // split OID into individual values\n var values = oid.split('.');\n var bytes = forge.util.createBuffer();\n\n // first byte is 40 * value1 + value2\n bytes.putByte(40 * parseInt(values[0], 10) + parseInt(values[1], 10));\n // other bytes are each value in base 128 with 8th bit set except for\n // the last byte for each value\n var last, valueBytes, value, b;\n for(var i = 2; i < values.length; ++i) {\n // produce value bytes in reverse because we don't know how many\n // bytes it will take to store the value\n last = true;\n valueBytes = [];\n value = parseInt(values[i], 10);\n do {\n b = value & 0x7F;\n value = value >>> 7;\n // if value is not last, then turn on 8th bit\n if(!last) {\n b |= 0x80;\n }\n valueBytes.push(b);\n last = false;\n } while(value > 0);\n\n // add value bytes in reverse (needs to be in big endian)\n for(var n = valueBytes.length - 1; n >= 0; --n) {\n bytes.putByte(valueBytes[n]);\n }\n }\n\n return bytes;\n};\n\n/**\n * Converts a DER-encoded byte buffer to an OID dot-separated string. The\n * byte buffer should contain only the DER-encoded value, not any tag or\n * length bytes.\n *\n * @param bytes the byte buffer.\n *\n * @return the OID dot-separated string.\n */\nasn1.derToOid = function(bytes) {\n var oid;\n\n // wrap in buffer if needed\n if(typeof bytes === 'string') {\n bytes = forge.util.createBuffer(bytes);\n }\n\n // first byte is 40 * value1 + value2\n var b = bytes.getByte();\n oid = Math.floor(b / 40) + '.' + (b % 40);\n\n // other bytes are each value in base 128 with 8th bit set except for\n // the last byte for each value\n var value = 0;\n while(bytes.length() > 0) {\n b = bytes.getByte();\n value = value << 7;\n // not the last byte for the value\n if(b & 0x80) {\n value += b & 0x7F;\n } else {\n // last byte\n oid += '.' + (value + b);\n value = 0;\n }\n }\n\n return oid;\n};\n\n/**\n * Converts a UTCTime value to a date.\n *\n * Note: GeneralizedTime has 4 digits for the year and is used for X.509\n * dates past 2049. Parsing that structure hasn't been implemented yet.\n *\n * @param utc the UTCTime value to convert.\n *\n * @return the date.\n */\nasn1.utcTimeToDate = function(utc) {\n /* The following formats can be used:\n\n YYMMDDhhmmZ\n YYMMDDhhmm+hh'mm'\n YYMMDDhhmm-hh'mm'\n YYMMDDhhmmssZ\n YYMMDDhhmmss+hh'mm'\n YYMMDDhhmmss-hh'mm'\n\n Where:\n\n YY is the least significant two digits of the year\n MM is the month (01 to 12)\n DD is the day (01 to 31)\n hh is the hour (00 to 23)\n mm are the minutes (00 to 59)\n ss are the seconds (00 to 59)\n Z indicates that local time is GMT, + indicates that local time is\n later than GMT, and - indicates that local time is earlier than GMT\n hh' is the absolute value of the offset from GMT in hours\n mm' is the absolute value of the offset from GMT in minutes */\n var date = new Date();\n\n // if YY >= 50 use 19xx, if YY < 50 use 20xx\n var year = parseInt(utc.substr(0, 2), 10);\n year = (year >= 50) ? 1900 + year : 2000 + year;\n var MM = parseInt(utc.substr(2, 2), 10) - 1; // use 0-11 for month\n var DD = parseInt(utc.substr(4, 2), 10);\n var hh = parseInt(utc.substr(6, 2), 10);\n var mm = parseInt(utc.substr(8, 2), 10);\n var ss = 0;\n\n // not just YYMMDDhhmmZ\n if(utc.length > 11) {\n // get character after minutes\n var c = utc.charAt(10);\n var end = 10;\n\n // see if seconds are present\n if(c !== '+' && c !== '-') {\n // get seconds\n ss = parseInt(utc.substr(10, 2), 10);\n end += 2;\n }\n }\n\n // update date\n date.setUTCFullYear(year, MM, DD);\n date.setUTCHours(hh, mm, ss, 0);\n\n if(end) {\n // get +/- after end of time\n c = utc.charAt(end);\n if(c === '+' || c === '-') {\n // get hours+minutes offset\n var hhoffset = parseInt(utc.substr(end + 1, 2), 10);\n var mmoffset = parseInt(utc.substr(end + 4, 2), 10);\n\n // calculate offset in milliseconds\n var offset = hhoffset * 60 + mmoffset;\n offset *= 60000;\n\n // apply offset\n if(c === '+') {\n date.setTime(+date - offset);\n } else {\n date.setTime(+date + offset);\n }\n }\n }\n\n return date;\n};\n\n/**\n * Converts a GeneralizedTime value to a date.\n *\n * @param gentime the GeneralizedTime value to convert.\n *\n * @return the date.\n */\nasn1.generalizedTimeToDate = function(gentime) {\n /* The following formats can be used:\n\n YYYYMMDDHHMMSS\n YYYYMMDDHHMMSS.fff\n YYYYMMDDHHMMSSZ\n YYYYMMDDHHMMSS.fffZ\n YYYYMMDDHHMMSS+hh'mm'\n YYYYMMDDHHMMSS.fff+hh'mm'\n YYYYMMDDHHMMSS-hh'mm'\n YYYYMMDDHHMMSS.fff-hh'mm'\n\n Where:\n\n YYYY is the year\n MM is the month (01 to 12)\n DD is the day (01 to 31)\n hh is the hour (00 to 23)\n mm are the minutes (00 to 59)\n ss are the seconds (00 to 59)\n .fff is the second fraction, accurate to three decimal places\n Z indicates that local time is GMT, + indicates that local time is\n later than GMT, and - indicates that local time is earlier than GMT\n hh' is the absolute value of the offset from GMT in hours\n mm' is the absolute value of the offset from GMT in minutes */\n var date = new Date();\n\n var YYYY = parseInt(gentime.substr(0, 4), 10);\n var MM = parseInt(gentime.substr(4, 2), 10) - 1; // use 0-11 for month\n var DD = parseInt(gentime.substr(6, 2), 10);\n var hh = parseInt(gentime.substr(8, 2), 10);\n var mm = parseInt(gentime.substr(10, 2), 10);\n var ss = parseInt(gentime.substr(12, 2), 10);\n var fff = 0;\n var offset = 0;\n var isUTC = false;\n\n if(gentime.charAt(gentime.length - 1) === 'Z') {\n isUTC = true;\n }\n\n var end = gentime.length - 5, c = gentime.charAt(end);\n if(c === '+' || c === '-') {\n // get hours+minutes offset\n var hhoffset = parseInt(gentime.substr(end + 1, 2), 10);\n var mmoffset = parseInt(gentime.substr(end + 4, 2), 10);\n\n // calculate offset in milliseconds\n offset = hhoffset * 60 + mmoffset;\n offset *= 60000;\n\n // apply offset\n if(c === '+') {\n offset *= -1;\n }\n\n isUTC = true;\n }\n\n // check for second fraction\n if(gentime.charAt(14) === '.') {\n fff = parseFloat(gentime.substr(14), 10) * 1000;\n }\n\n if(isUTC) {\n date.setUTCFullYear(YYYY, MM, DD);\n date.setUTCHours(hh, mm, ss, fff);\n\n // apply offset\n date.setTime(+date + offset);\n } else {\n date.setFullYear(YYYY, MM, DD);\n date.setHours(hh, mm, ss, fff);\n }\n\n return date;\n};\n\n/**\n * Converts a date to a UTCTime value.\n *\n * Note: GeneralizedTime has 4 digits for the year and is used for X.509\n * dates past 2049. Converting to a GeneralizedTime hasn't been\n * implemented yet.\n *\n * @param date the date to convert.\n *\n * @return the UTCTime value.\n */\nasn1.dateToUtcTime = function(date) {\n // TODO: validate; currently assumes proper format\n if(typeof date === 'string') {\n return date;\n }\n\n var rval = '';\n\n // create format YYMMDDhhmmssZ\n var format = [];\n format.push(('' + date.getUTCFullYear()).substr(2));\n format.push('' + (date.getUTCMonth() + 1));\n format.push('' + date.getUTCDate());\n format.push('' + date.getUTCHours());\n format.push('' + date.getUTCMinutes());\n format.push('' + date.getUTCSeconds());\n\n // ensure 2 digits are used for each format entry\n for(var i = 0; i < format.length; ++i) {\n if(format[i].length < 2) {\n rval += '0';\n }\n rval += format[i];\n }\n rval += 'Z';\n\n return rval;\n};\n\n/**\n * Converts a date to a GeneralizedTime value.\n *\n * @param date the date to convert.\n *\n * @return the GeneralizedTime value as a string.\n */\nasn1.dateToGeneralizedTime = function(date) {\n // TODO: validate; currently assumes proper format\n if(typeof date === 'string') {\n return date;\n }\n\n var rval = '';\n\n // create format YYYYMMDDHHMMSSZ\n var format = [];\n format.push('' + date.getUTCFullYear());\n format.push('' + (date.getUTCMonth() + 1));\n format.push('' + date.getUTCDate());\n format.push('' + date.getUTCHours());\n format.push('' + date.getUTCMinutes());\n format.push('' + date.getUTCSeconds());\n\n // ensure 2 digits are used for each format entry\n for(var i = 0; i < format.length; ++i) {\n if(format[i].length < 2) {\n rval += '0';\n }\n rval += format[i];\n }\n rval += 'Z';\n\n return rval;\n};\n\n/**\n * Converts a javascript integer to a DER-encoded byte buffer to be used\n * as the value for an INTEGER type.\n *\n * @param x the integer.\n *\n * @return the byte buffer.\n */\nasn1.integerToDer = function(x) {\n var rval = forge.util.createBuffer();\n if(x >= -0x80 && x < 0x80) {\n return rval.putSignedInt(x, 8);\n }\n if(x >= -0x8000 && x < 0x8000) {\n return rval.putSignedInt(x, 16);\n }\n if(x >= -0x800000 && x < 0x800000) {\n return rval.putSignedInt(x, 24);\n }\n if(x >= -0x80000000 && x < 0x80000000) {\n return rval.putSignedInt(x, 32);\n }\n var error = new Error('Integer too large; max is 32-bits.');\n error.integer = x;\n throw error;\n};\n\n/**\n * Converts a DER-encoded byte buffer to a javascript integer. This is\n * typically used to decode the value of an INTEGER type.\n *\n * @param bytes the byte buffer.\n *\n * @return the integer.\n */\nasn1.derToInteger = function(bytes) {\n // wrap in buffer if needed\n if(typeof bytes === 'string') {\n bytes = forge.util.createBuffer(bytes);\n }\n\n var n = bytes.length() * 8;\n if(n > 32) {\n throw new Error('Integer too large; max is 32-bits.');\n }\n return bytes.getSignedInt(n);\n};\n\n/**\n * Validates that the given ASN.1 object is at least a super set of the\n * given ASN.1 structure. Only tag classes and types are checked. An\n * optional map may also be provided to capture ASN.1 values while the\n * structure is checked.\n *\n * To capture an ASN.1 value, set an object in the validator's 'capture'\n * parameter to the key to use in the capture map. To capture the full\n * ASN.1 object, specify 'captureAsn1'. To capture BIT STRING bytes, including\n * the leading unused bits counter byte, specify 'captureBitStringContents'.\n * To capture BIT STRING bytes, without the leading unused bits counter byte,\n * specify 'captureBitStringValue'.\n *\n * Objects in the validator may set a field 'optional' to true to indicate\n * that it isn't necessary to pass validation.\n *\n * @param obj the ASN.1 object to validate.\n * @param v the ASN.1 structure validator.\n * @param capture an optional map to capture values in.\n * @param errors an optional array for storing validation errors.\n *\n * @return true on success, false on failure.\n */\nasn1.validate = function(obj, v, capture, errors) {\n var rval = false;\n\n // ensure tag class and type are the same if specified\n if((obj.tagClass === v.tagClass || typeof(v.tagClass) === 'undefined') &&\n (obj.type === v.type || typeof(v.type) === 'undefined')) {\n // ensure constructed flag is the same if specified\n if(obj.constructed === v.constructed ||\n typeof(v.constructed) === 'undefined') {\n rval = true;\n\n // handle sub values\n if(v.value && forge.util.isArray(v.value)) {\n var j = 0;\n for(var i = 0; rval && i < v.value.length; ++i) {\n rval = v.value[i].optional || false;\n if(obj.value[j]) {\n rval = asn1.validate(obj.value[j], v.value[i], capture, errors);\n if(rval) {\n ++j;\n } else if(v.value[i].optional) {\n rval = true;\n }\n }\n if(!rval && errors) {\n errors.push(\n '[' + v.name + '] ' +\n 'Tag class \"' + v.tagClass + '\", type \"' +\n v.type + '\" expected value length \"' +\n v.value.length + '\", got \"' +\n obj.value.length + '\"');\n }\n }\n }\n\n if(rval && capture) {\n if(v.capture) {\n capture[v.capture] = obj.value;\n }\n if(v.captureAsn1) {\n capture[v.captureAsn1] = obj;\n }\n if(v.captureBitStringContents && 'bitStringContents' in obj) {\n capture[v.captureBitStringContents] = obj.bitStringContents;\n }\n if(v.captureBitStringValue && 'bitStringContents' in obj) {\n var value;\n if(obj.bitStringContents.length < 2) {\n capture[v.captureBitStringValue] = '';\n } else {\n // FIXME: support unused bits with data shifting\n var unused = obj.bitStringContents.charCodeAt(0);\n if(unused !== 0) {\n throw new Error(\n 'captureBitStringValue only supported for zero unused bits');\n }\n capture[v.captureBitStringValue] = obj.bitStringContents.slice(1);\n }\n }\n }\n } else if(errors) {\n errors.push(\n '[' + v.name + '] ' +\n 'Expected constructed \"' + v.constructed + '\", got \"' +\n obj.constructed + '\"');\n }\n } else if(errors) {\n if(obj.tagClass !== v.tagClass) {\n errors.push(\n '[' + v.name + '] ' +\n 'Expected tag class \"' + v.tagClass + '\", got \"' +\n obj.tagClass + '\"');\n }\n if(obj.type !== v.type) {\n errors.push(\n '[' + v.name + '] ' +\n 'Expected type \"' + v.type + '\", got \"' + obj.type + '\"');\n }\n }\n return rval;\n};\n\n// regex for testing for non-latin characters\nvar _nonLatinRegex = /[^\\\\u0000-\\\\u00ff]/;\n\n/**\n * Pretty prints an ASN.1 object to a string.\n *\n * @param obj the object to write out.\n * @param level the level in the tree.\n * @param indentation the indentation to use.\n *\n * @return the string.\n */\nasn1.prettyPrint = function(obj, level, indentation) {\n var rval = '';\n\n // set default level and indentation\n level = level || 0;\n indentation = indentation || 2;\n\n // start new line for deep levels\n if(level > 0) {\n rval += '\\n';\n }\n\n // create indent\n var indent = '';\n for(var i = 0; i < level * indentation; ++i) {\n indent += ' ';\n }\n\n // print class:type\n rval += indent + 'Tag: ';\n switch(obj.tagClass) {\n case asn1.Class.UNIVERSAL:\n rval += 'Universal:';\n break;\n case asn1.Class.APPLICATION:\n rval += 'Application:';\n break;\n case asn1.Class.CONTEXT_SPECIFIC:\n rval += 'Context-Specific:';\n break;\n case asn1.Class.PRIVATE:\n rval += 'Private:';\n break;\n }\n\n if(obj.tagClass === asn1.Class.UNIVERSAL) {\n rval += obj.type;\n\n // known types\n switch(obj.type) {\n case asn1.Type.NONE:\n rval += ' (None)';\n break;\n case asn1.Type.BOOLEAN:\n rval += ' (Boolean)';\n break;\n case asn1.Type.INTEGER:\n rval += ' (Integer)';\n break;\n case asn1.Type.BITSTRING:\n rval += ' (Bit string)';\n break;\n case asn1.Type.OCTETSTRING:\n rval += ' (Octet string)';\n break;\n case asn1.Type.NULL:\n rval += ' (Null)';\n break;\n case asn1.Type.OID:\n rval += ' (Object Identifier)';\n break;\n case asn1.Type.ODESC:\n rval += ' (Object Descriptor)';\n break;\n case asn1.Type.EXTERNAL:\n rval += ' (External or Instance of)';\n break;\n case asn1.Type.REAL:\n rval += ' (Real)';\n break;\n case asn1.Type.ENUMERATED:\n rval += ' (Enumerated)';\n break;\n case asn1.Type.EMBEDDED:\n rval += ' (Embedded PDV)';\n break;\n case asn1.Type.UTF8:\n rval += ' (UTF8)';\n break;\n case asn1.Type.ROID:\n rval += ' (Relative Object Identifier)';\n break;\n case asn1.Type.SEQUENCE:\n rval += ' (Sequence)';\n break;\n case asn1.Type.SET:\n rval += ' (Set)';\n break;\n case asn1.Type.PRINTABLESTRING:\n rval += ' (Printable String)';\n break;\n case asn1.Type.IA5String:\n rval += ' (IA5String (ASCII))';\n break;\n case asn1.Type.UTCTIME:\n rval += ' (UTC time)';\n break;\n case asn1.Type.GENERALIZEDTIME:\n rval += ' (Generalized time)';\n break;\n case asn1.Type.BMPSTRING:\n rval += ' (BMP String)';\n break;\n }\n } else {\n rval += obj.type;\n }\n\n rval += '\\n';\n rval += indent + 'Constructed: ' + obj.constructed + '\\n';\n\n if(obj.composed) {\n var subvalues = 0;\n var sub = '';\n for(var i = 0; i < obj.value.length; ++i) {\n if(obj.value[i] !== undefined) {\n subvalues += 1;\n sub += asn1.prettyPrint(obj.value[i], level + 1, indentation);\n if((i + 1) < obj.value.length) {\n sub += ',';\n }\n }\n }\n rval += indent + 'Sub values: ' + subvalues + sub;\n } else {\n rval += indent + 'Value: ';\n if(obj.type === asn1.Type.OID) {\n var oid = asn1.derToOid(obj.value);\n rval += oid;\n if(forge.pki && forge.pki.oids) {\n if(oid in forge.pki.oids) {\n rval += ' (' + forge.pki.oids[oid] + ') ';\n }\n }\n }\n if(obj.type === asn1.Type.INTEGER) {\n try {\n rval += asn1.derToInteger(obj.value);\n } catch(ex) {\n rval += '0x' + forge.util.bytesToHex(obj.value);\n }\n } else if(obj.type === asn1.Type.BITSTRING) {\n // TODO: shift bits as needed to display without padding\n if(obj.value.length > 1) {\n // remove unused bits field\n rval += '0x' + forge.util.bytesToHex(obj.value.slice(1));\n } else {\n rval += '(none)';\n }\n // show unused bit count\n if(obj.value.length > 0) {\n var unused = obj.value.charCodeAt(0);\n if(unused == 1) {\n rval += ' (1 unused bit shown)';\n } else if(unused > 1) {\n rval += ' (' + unused + ' unused bits shown)';\n }\n }\n } else if(obj.type === asn1.Type.OCTETSTRING) {\n if(!_nonLatinRegex.test(obj.value)) {\n rval += '(' + obj.value + ') ';\n }\n rval += '0x' + forge.util.bytesToHex(obj.value);\n } else if(obj.type === asn1.Type.UTF8) {\n try {\n rval += forge.util.decodeUtf8(obj.value);\n } catch(e) {\n if(e.message === 'URI malformed') {\n rval +=\n '0x' + forge.util.bytesToHex(obj.value) + ' (malformed UTF8)';\n } else {\n throw e;\n }\n }\n } else if(obj.type === asn1.Type.PRINTABLESTRING ||\n obj.type === asn1.Type.IA5String) {\n rval += obj.value;\n } else if(_nonLatinRegex.test(obj.value)) {\n rval += '0x' + forge.util.bytesToHex(obj.value);\n } else if(obj.value.length === 0) {\n rval += '[null]';\n } else {\n rval += obj.value;\n }\n }\n\n return rval;\n};\n","/**\n * Node.js module for Forge message digests.\n *\n * @author Dave Longley\n *\n * Copyright 2011-2017 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\n\nmodule.exports = forge.md = forge.md || {};\nforge.md.algorithms = forge.md.algorithms || {};\n","/**\n * Hash-based Message Authentication Code implementation. Requires a message\n * digest object that can be obtained, for example, from forge.md.sha1 or\n * forge.md.md5.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2010-2012 Digital Bazaar, Inc. All rights reserved.\n */\nvar forge = require('./forge');\nrequire('./md');\nrequire('./util');\n\n/* HMAC API */\nvar hmac = module.exports = forge.hmac = forge.hmac || {};\n\n/**\n * Creates an HMAC object that uses the given message digest object.\n *\n * @return an HMAC object.\n */\nhmac.create = function() {\n // the hmac key to use\n var _key = null;\n\n // the message digest to use\n var _md = null;\n\n // the inner padding\n var _ipadding = null;\n\n // the outer padding\n var _opadding = null;\n\n // hmac context\n var ctx = {};\n\n /**\n * Starts or restarts the HMAC with the given key and message digest.\n *\n * @param md the message digest to use, null to reuse the previous one,\n * a string to use builtin 'sha1', 'md5', 'sha256'.\n * @param key the key to use as a string, array of bytes, byte buffer,\n * or null to reuse the previous key.\n */\n ctx.start = function(md, key) {\n if(md !== null) {\n if(typeof md === 'string') {\n // create builtin message digest\n md = md.toLowerCase();\n if(md in forge.md.algorithms) {\n _md = forge.md.algorithms[md].create();\n } else {\n throw new Error('Unknown hash algorithm \"' + md + '\"');\n }\n } else {\n // store message digest\n _md = md;\n }\n }\n\n if(key === null) {\n // reuse previous key\n key = _key;\n } else {\n if(typeof key === 'string') {\n // convert string into byte buffer\n key = forge.util.createBuffer(key);\n } else if(forge.util.isArray(key)) {\n // convert byte array into byte buffer\n var tmp = key;\n key = forge.util.createBuffer();\n for(var i = 0; i < tmp.length; ++i) {\n key.putByte(tmp[i]);\n }\n }\n\n // if key is longer than blocksize, hash it\n var keylen = key.length();\n if(keylen > _md.blockLength) {\n _md.start();\n _md.update(key.bytes());\n key = _md.digest();\n }\n\n // mix key into inner and outer padding\n // ipadding = [0x36 * blocksize] ^ key\n // opadding = [0x5C * blocksize] ^ key\n _ipadding = forge.util.createBuffer();\n _opadding = forge.util.createBuffer();\n keylen = key.length();\n for(var i = 0; i < keylen; ++i) {\n var tmp = key.at(i);\n _ipadding.putByte(0x36 ^ tmp);\n _opadding.putByte(0x5C ^ tmp);\n }\n\n // if key is shorter than blocksize, add additional padding\n if(keylen < _md.blockLength) {\n var tmp = _md.blockLength - keylen;\n for(var i = 0; i < tmp; ++i) {\n _ipadding.putByte(0x36);\n _opadding.putByte(0x5C);\n }\n }\n _key = key;\n _ipadding = _ipadding.bytes();\n _opadding = _opadding.bytes();\n }\n\n // digest is done like so: hash(opadding | hash(ipadding | message))\n\n // prepare to do inner hash\n // hash(ipadding | message)\n _md.start();\n _md.update(_ipadding);\n };\n\n /**\n * Updates the HMAC with the given message bytes.\n *\n * @param bytes the bytes to update with.\n */\n ctx.update = function(bytes) {\n _md.update(bytes);\n };\n\n /**\n * Produces the Message Authentication Code (MAC).\n *\n * @return a byte buffer containing the digest value.\n */\n ctx.getMac = function() {\n // digest is done like so: hash(opadding | hash(ipadding | message))\n // here we do the outer hashing\n var inner = _md.digest().bytes();\n _md.start();\n _md.update(_opadding);\n _md.update(inner);\n return _md.digest();\n };\n // alias for getMac\n ctx.digest = ctx.getMac;\n\n return ctx;\n};\n","/**\n * Message Digest Algorithm 5 with 128-bit digest (MD5) implementation.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2010-2014 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./md');\nrequire('./util');\n\nvar md5 = module.exports = forge.md5 = forge.md5 || {};\nforge.md.md5 = forge.md.algorithms.md5 = md5;\n\n/**\n * Creates an MD5 message digest object.\n *\n * @return a message digest object.\n */\nmd5.create = function() {\n // do initialization as necessary\n if(!_initialized) {\n _init();\n }\n\n // MD5 state contains four 32-bit integers\n var _state = null;\n\n // input buffer\n var _input = forge.util.createBuffer();\n\n // used for word storage\n var _w = new Array(16);\n\n // message digest object\n var md = {\n algorithm: 'md5',\n blockLength: 64,\n digestLength: 16,\n // 56-bit length of message so far (does not including padding)\n messageLength: 0,\n // true message length\n fullMessageLength: null,\n // size of message length in bytes\n messageLengthSize: 8\n };\n\n /**\n * Starts the digest.\n *\n * @return this digest object.\n */\n md.start = function() {\n // up to 56-bit message length for convenience\n md.messageLength = 0;\n\n // full message length (set md.messageLength64 for backwards-compatibility)\n md.fullMessageLength = md.messageLength64 = [];\n var int32s = md.messageLengthSize / 4;\n for(var i = 0; i < int32s; ++i) {\n md.fullMessageLength.push(0);\n }\n _input = forge.util.createBuffer();\n _state = {\n h0: 0x67452301,\n h1: 0xEFCDAB89,\n h2: 0x98BADCFE,\n h3: 0x10325476\n };\n return md;\n };\n // start digest automatically for first time\n md.start();\n\n /**\n * Updates the digest with the given message input. The given input can\n * treated as raw input (no encoding will be applied) or an encoding of\n * 'utf8' maybe given to encode the input using UTF-8.\n *\n * @param msg the message input to update with.\n * @param encoding the encoding to use (default: 'raw', other: 'utf8').\n *\n * @return this digest object.\n */\n md.update = function(msg, encoding) {\n if(encoding === 'utf8') {\n msg = forge.util.encodeUtf8(msg);\n }\n\n // update message length\n var len = msg.length;\n md.messageLength += len;\n len = [(len / 0x100000000) >>> 0, len >>> 0];\n for(var i = md.fullMessageLength.length - 1; i >= 0; --i) {\n md.fullMessageLength[i] += len[1];\n len[1] = len[0] + ((md.fullMessageLength[i] / 0x100000000) >>> 0);\n md.fullMessageLength[i] = md.fullMessageLength[i] >>> 0;\n len[0] = (len[1] / 0x100000000) >>> 0;\n }\n\n // add bytes to input buffer\n _input.putBytes(msg);\n\n // process bytes\n _update(_state, _w, _input);\n\n // compact input buffer every 2K or if empty\n if(_input.read > 2048 || _input.length() === 0) {\n _input.compact();\n }\n\n return md;\n };\n\n /**\n * Produces the digest.\n *\n * @return a byte buffer containing the digest value.\n */\n md.digest = function() {\n /* Note: Here we copy the remaining bytes in the input buffer and\n add the appropriate MD5 padding. Then we do the final update\n on a copy of the state so that if the user wants to get\n intermediate digests they can do so. */\n\n /* Determine the number of bytes that must be added to the message\n to ensure its length is congruent to 448 mod 512. In other words,\n the data to be digested must be a multiple of 512 bits (or 128 bytes).\n This data includes the message, some padding, and the length of the\n message. Since the length of the message will be encoded as 8 bytes (64\n bits), that means that the last segment of the data must have 56 bytes\n (448 bits) of message and padding. Therefore, the length of the message\n plus the padding must be congruent to 448 mod 512 because\n 512 - 128 = 448.\n\n In order to fill up the message length it must be filled with\n padding that begins with 1 bit followed by all 0 bits. Padding\n must *always* be present, so if the message length is already\n congruent to 448 mod 512, then 512 padding bits must be added. */\n\n var finalBlock = forge.util.createBuffer();\n finalBlock.putBytes(_input.bytes());\n\n // compute remaining size to be digested (include message length size)\n var remaining = (\n md.fullMessageLength[md.fullMessageLength.length - 1] +\n md.messageLengthSize);\n\n // add padding for overflow blockSize - overflow\n // _padding starts with 1 byte with first bit is set (byte value 128), then\n // there may be up to (blockSize - 1) other pad bytes\n var overflow = remaining & (md.blockLength - 1);\n finalBlock.putBytes(_padding.substr(0, md.blockLength - overflow));\n\n // serialize message length in bits in little-endian order; since length\n // is stored in bytes we multiply by 8 and add carry\n var bits, carry = 0;\n for(var i = md.fullMessageLength.length - 1; i >= 0; --i) {\n bits = md.fullMessageLength[i] * 8 + carry;\n carry = (bits / 0x100000000) >>> 0;\n finalBlock.putInt32Le(bits >>> 0);\n }\n\n var s2 = {\n h0: _state.h0,\n h1: _state.h1,\n h2: _state.h2,\n h3: _state.h3\n };\n _update(s2, _w, finalBlock);\n var rval = forge.util.createBuffer();\n rval.putInt32Le(s2.h0);\n rval.putInt32Le(s2.h1);\n rval.putInt32Le(s2.h2);\n rval.putInt32Le(s2.h3);\n return rval;\n };\n\n return md;\n};\n\n// padding, constant tables for calculating md5\nvar _padding = null;\nvar _g = null;\nvar _r = null;\nvar _k = null;\nvar _initialized = false;\n\n/**\n * Initializes the constant tables.\n */\nfunction _init() {\n // create padding\n _padding = String.fromCharCode(128);\n _padding += forge.util.fillString(String.fromCharCode(0x00), 64);\n\n // g values\n _g = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 1, 6, 11, 0, 5, 10, 15, 4, 9, 14, 3, 8, 13, 2, 7, 12,\n 5, 8, 11, 14, 1, 4, 7, 10, 13, 0, 3, 6, 9, 12, 15, 2,\n 0, 7, 14, 5, 12, 3, 10, 1, 8, 15, 6, 13, 4, 11, 2, 9];\n\n // rounds table\n _r = [\n 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22,\n 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20,\n 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23,\n 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21];\n\n // get the result of abs(sin(i + 1)) as a 32-bit integer\n _k = new Array(64);\n for(var i = 0; i < 64; ++i) {\n _k[i] = Math.floor(Math.abs(Math.sin(i + 1)) * 0x100000000);\n }\n\n // now initialized\n _initialized = true;\n}\n\n/**\n * Updates an MD5 state with the given byte buffer.\n *\n * @param s the MD5 state to update.\n * @param w the array to use to store words.\n * @param bytes the byte buffer to update with.\n */\nfunction _update(s, w, bytes) {\n // consume 512 bit (64 byte) chunks\n var t, a, b, c, d, f, r, i;\n var len = bytes.length();\n while(len >= 64) {\n // initialize hash value for this chunk\n a = s.h0;\n b = s.h1;\n c = s.h2;\n d = s.h3;\n\n // round 1\n for(i = 0; i < 16; ++i) {\n w[i] = bytes.getInt32Le();\n f = d ^ (b & (c ^ d));\n t = (a + f + _k[i] + w[i]);\n r = _r[i];\n a = d;\n d = c;\n c = b;\n b += (t << r) | (t >>> (32 - r));\n }\n // round 2\n for(; i < 32; ++i) {\n f = c ^ (d & (b ^ c));\n t = (a + f + _k[i] + w[_g[i]]);\n r = _r[i];\n a = d;\n d = c;\n c = b;\n b += (t << r) | (t >>> (32 - r));\n }\n // round 3\n for(; i < 48; ++i) {\n f = b ^ c ^ d;\n t = (a + f + _k[i] + w[_g[i]]);\n r = _r[i];\n a = d;\n d = c;\n c = b;\n b += (t << r) | (t >>> (32 - r));\n }\n // round 4\n for(; i < 64; ++i) {\n f = c ^ (b | ~d);\n t = (a + f + _k[i] + w[_g[i]]);\n r = _r[i];\n a = d;\n d = c;\n c = b;\n b += (t << r) | (t >>> (32 - r));\n }\n\n // update hash state\n s.h0 = (s.h0 + a) | 0;\n s.h1 = (s.h1 + b) | 0;\n s.h2 = (s.h2 + c) | 0;\n s.h3 = (s.h3 + d) | 0;\n\n len -= 64;\n }\n}\n","/**\n * Javascript implementation of basic PEM (Privacy Enhanced Mail) algorithms.\n *\n * See: RFC 1421.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2013-2014 Digital Bazaar, Inc.\n *\n * A Forge PEM object has the following fields:\n *\n * type: identifies the type of message (eg: \"RSA PRIVATE KEY\").\n *\n * procType: identifies the type of processing performed on the message,\n * it has two subfields: version and type, eg: 4,ENCRYPTED.\n *\n * contentDomain: identifies the type of content in the message, typically\n * only uses the value: \"RFC822\".\n *\n * dekInfo: identifies the message encryption algorithm and mode and includes\n * any parameters for the algorithm, it has two subfields: algorithm and\n * parameters, eg: DES-CBC,F8143EDE5960C597.\n *\n * headers: contains all other PEM encapsulated headers -- where order is\n * significant (for pairing data like recipient ID + key info).\n *\n * body: the binary-encoded body.\n */\nvar forge = require('./forge');\nrequire('./util');\n\n// shortcut for pem API\nvar pem = module.exports = forge.pem = forge.pem || {};\n\n/**\n * Encodes (serializes) the given PEM object.\n *\n * @param msg the PEM message object to encode.\n * @param options the options to use:\n * maxline the maximum characters per line for the body, (default: 64).\n *\n * @return the PEM-formatted string.\n */\npem.encode = function(msg, options) {\n options = options || {};\n var rval = '-----BEGIN ' + msg.type + '-----\\r\\n';\n\n // encode special headers\n var header;\n if(msg.procType) {\n header = {\n name: 'Proc-Type',\n values: [String(msg.procType.version), msg.procType.type]\n };\n rval += foldHeader(header);\n }\n if(msg.contentDomain) {\n header = {name: 'Content-Domain', values: [msg.contentDomain]};\n rval += foldHeader(header);\n }\n if(msg.dekInfo) {\n header = {name: 'DEK-Info', values: [msg.dekInfo.algorithm]};\n if(msg.dekInfo.parameters) {\n header.values.push(msg.dekInfo.parameters);\n }\n rval += foldHeader(header);\n }\n\n if(msg.headers) {\n // encode all other headers\n for(var i = 0; i < msg.headers.length; ++i) {\n rval += foldHeader(msg.headers[i]);\n }\n }\n\n // terminate header\n if(msg.procType) {\n rval += '\\r\\n';\n }\n\n // add body\n rval += forge.util.encode64(msg.body, options.maxline || 64) + '\\r\\n';\n\n rval += '-----END ' + msg.type + '-----\\r\\n';\n return rval;\n};\n\n/**\n * Decodes (deserializes) all PEM messages found in the given string.\n *\n * @param str the PEM-formatted string to decode.\n *\n * @return the PEM message objects in an array.\n */\npem.decode = function(str) {\n var rval = [];\n\n // split string into PEM messages (be lenient w/EOF on BEGIN line)\n var rMessage = /\\s*-----BEGIN ([A-Z0-9- ]+)-----\\r?\\n?([\\x21-\\x7e\\s]+?(?:\\r?\\n\\r?\\n))?([:A-Za-z0-9+\\/=\\s]+?)-----END \\1-----/g;\n var rHeader = /([\\x21-\\x7e]+):\\s*([\\x21-\\x7e\\s^:]+)/;\n var rCRLF = /\\r?\\n/;\n var match;\n while(true) {\n match = rMessage.exec(str);\n if(!match) {\n break;\n }\n\n // accept \"NEW CERTIFICATE REQUEST\" as \"CERTIFICATE REQUEST\"\n // https://datatracker.ietf.org/doc/html/rfc7468#section-7\n var type = match[1];\n if(type === 'NEW CERTIFICATE REQUEST') {\n type = 'CERTIFICATE REQUEST';\n }\n\n var msg = {\n type: type,\n procType: null,\n contentDomain: null,\n dekInfo: null,\n headers: [],\n body: forge.util.decode64(match[3])\n };\n rval.push(msg);\n\n // no headers\n if(!match[2]) {\n continue;\n }\n\n // parse headers\n var lines = match[2].split(rCRLF);\n var li = 0;\n while(match && li < lines.length) {\n // get line, trim any rhs whitespace\n var line = lines[li].replace(/\\s+$/, '');\n\n // RFC2822 unfold any following folded lines\n for(var nl = li + 1; nl < lines.length; ++nl) {\n var next = lines[nl];\n if(!/\\s/.test(next[0])) {\n break;\n }\n line += next;\n li = nl;\n }\n\n // parse header\n match = line.match(rHeader);\n if(match) {\n var header = {name: match[1], values: []};\n var values = match[2].split(',');\n for(var vi = 0; vi < values.length; ++vi) {\n header.values.push(ltrim(values[vi]));\n }\n\n // Proc-Type must be the first header\n if(!msg.procType) {\n if(header.name !== 'Proc-Type') {\n throw new Error('Invalid PEM formatted message. The first ' +\n 'encapsulated header must be \"Proc-Type\".');\n } else if(header.values.length !== 2) {\n throw new Error('Invalid PEM formatted message. The \"Proc-Type\" ' +\n 'header must have two subfields.');\n }\n msg.procType = {version: values[0], type: values[1]};\n } else if(!msg.contentDomain && header.name === 'Content-Domain') {\n // special-case Content-Domain\n msg.contentDomain = values[0] || '';\n } else if(!msg.dekInfo && header.name === 'DEK-Info') {\n // special-case DEK-Info\n if(header.values.length === 0) {\n throw new Error('Invalid PEM formatted message. The \"DEK-Info\" ' +\n 'header must have at least one subfield.');\n }\n msg.dekInfo = {algorithm: values[0], parameters: values[1] || null};\n } else {\n msg.headers.push(header);\n }\n }\n\n ++li;\n }\n\n if(msg.procType === 'ENCRYPTED' && !msg.dekInfo) {\n throw new Error('Invalid PEM formatted message. The \"DEK-Info\" ' +\n 'header must be present if \"Proc-Type\" is \"ENCRYPTED\".');\n }\n }\n\n if(rval.length === 0) {\n throw new Error('Invalid PEM formatted message.');\n }\n\n return rval;\n};\n\nfunction foldHeader(header) {\n var rval = header.name + ': ';\n\n // ensure values with CRLF are folded\n var values = [];\n var insertSpace = function(match, $1) {\n return ' ' + $1;\n };\n for(var i = 0; i < header.values.length; ++i) {\n values.push(header.values[i].replace(/^(\\S+\\r\\n)/, insertSpace));\n }\n rval += values.join(',') + '\\r\\n';\n\n // do folding\n var length = 0;\n var candidate = -1;\n for(var i = 0; i < rval.length; ++i, ++length) {\n if(length > 65 && candidate !== -1) {\n var insert = rval[candidate];\n if(insert === ',') {\n ++candidate;\n rval = rval.substr(0, candidate) + '\\r\\n ' + rval.substr(candidate);\n } else {\n rval = rval.substr(0, candidate) +\n '\\r\\n' + insert + rval.substr(candidate + 1);\n }\n length = (i - candidate - 1);\n candidate = -1;\n ++i;\n } else if(rval[i] === ' ' || rval[i] === '\\t' || rval[i] === ',') {\n candidate = i;\n }\n }\n\n return rval;\n}\n\nfunction ltrim(str) {\n return str.replace(/^\\s+/, '');\n}\n","/**\n * DES (Data Encryption Standard) implementation.\n *\n * This implementation supports DES as well as 3DES-EDE in ECB and CBC mode.\n * It is based on the BSD-licensed implementation by Paul Tero:\n *\n * Paul Tero, July 2001\n * http://www.tero.co.uk/des/\n *\n * Optimised for performance with large blocks by\n * Michael Hayworth, November 2001\n * http://www.netdealing.com\n *\n * THIS SOFTWARE IS PROVIDED \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\n * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\n * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\n * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\n * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\n * SUCH DAMAGE.\n *\n * @author Stefan Siegl\n * @author Dave Longley\n *\n * Copyright (c) 2012 Stefan Siegl \n * Copyright (c) 2012-2014 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./cipher');\nrequire('./cipherModes');\nrequire('./util');\n\n/* DES API */\nmodule.exports = forge.des = forge.des || {};\n\n/**\n * Deprecated. Instead, use:\n *\n * var cipher = forge.cipher.createCipher('DES-', key);\n * cipher.start({iv: iv});\n *\n * Creates an DES cipher object to encrypt data using the given symmetric key.\n * The output will be stored in the 'output' member of the returned cipher.\n *\n * The key and iv may be given as binary-encoded strings of bytes or\n * byte buffers.\n *\n * @param key the symmetric key to use (64 or 192 bits).\n * @param iv the initialization vector to use.\n * @param output the buffer to write to, null to create one.\n * @param mode the cipher mode to use (default: 'CBC' if IV is\n * given, 'ECB' if null).\n *\n * @return the cipher.\n */\nforge.des.startEncrypting = function(key, iv, output, mode) {\n var cipher = _createCipher({\n key: key,\n output: output,\n decrypt: false,\n mode: mode || (iv === null ? 'ECB' : 'CBC')\n });\n cipher.start(iv);\n return cipher;\n};\n\n/**\n * Deprecated. Instead, use:\n *\n * var cipher = forge.cipher.createCipher('DES-', key);\n *\n * Creates an DES cipher object to encrypt data using the given symmetric key.\n *\n * The key may be given as a binary-encoded string of bytes or a byte buffer.\n *\n * @param key the symmetric key to use (64 or 192 bits).\n * @param mode the cipher mode to use (default: 'CBC').\n *\n * @return the cipher.\n */\nforge.des.createEncryptionCipher = function(key, mode) {\n return _createCipher({\n key: key,\n output: null,\n decrypt: false,\n mode: mode\n });\n};\n\n/**\n * Deprecated. Instead, use:\n *\n * var decipher = forge.cipher.createDecipher('DES-', key);\n * decipher.start({iv: iv});\n *\n * Creates an DES cipher object to decrypt data using the given symmetric key.\n * The output will be stored in the 'output' member of the returned cipher.\n *\n * The key and iv may be given as binary-encoded strings of bytes or\n * byte buffers.\n *\n * @param key the symmetric key to use (64 or 192 bits).\n * @param iv the initialization vector to use.\n * @param output the buffer to write to, null to create one.\n * @param mode the cipher mode to use (default: 'CBC' if IV is\n * given, 'ECB' if null).\n *\n * @return the cipher.\n */\nforge.des.startDecrypting = function(key, iv, output, mode) {\n var cipher = _createCipher({\n key: key,\n output: output,\n decrypt: true,\n mode: mode || (iv === null ? 'ECB' : 'CBC')\n });\n cipher.start(iv);\n return cipher;\n};\n\n/**\n * Deprecated. Instead, use:\n *\n * var decipher = forge.cipher.createDecipher('DES-', key);\n *\n * Creates an DES cipher object to decrypt data using the given symmetric key.\n *\n * The key may be given as a binary-encoded string of bytes or a byte buffer.\n *\n * @param key the symmetric key to use (64 or 192 bits).\n * @param mode the cipher mode to use (default: 'CBC').\n *\n * @return the cipher.\n */\nforge.des.createDecryptionCipher = function(key, mode) {\n return _createCipher({\n key: key,\n output: null,\n decrypt: true,\n mode: mode\n });\n};\n\n/**\n * Creates a new DES cipher algorithm object.\n *\n * @param name the name of the algorithm.\n * @param mode the mode factory function.\n *\n * @return the DES algorithm object.\n */\nforge.des.Algorithm = function(name, mode) {\n var self = this;\n self.name = name;\n self.mode = new mode({\n blockSize: 8,\n cipher: {\n encrypt: function(inBlock, outBlock) {\n return _updateBlock(self._keys, inBlock, outBlock, false);\n },\n decrypt: function(inBlock, outBlock) {\n return _updateBlock(self._keys, inBlock, outBlock, true);\n }\n }\n });\n self._init = false;\n};\n\n/**\n * Initializes this DES algorithm by expanding its key.\n *\n * @param options the options to use.\n * key the key to use with this algorithm.\n * decrypt true if the algorithm should be initialized for decryption,\n * false for encryption.\n */\nforge.des.Algorithm.prototype.initialize = function(options) {\n if(this._init) {\n return;\n }\n\n var key = forge.util.createBuffer(options.key);\n if(this.name.indexOf('3DES') === 0) {\n if(key.length() !== 24) {\n throw new Error('Invalid Triple-DES key size: ' + key.length() * 8);\n }\n }\n\n // do key expansion to 16 or 48 subkeys (single or triple DES)\n this._keys = _createKeys(key);\n this._init = true;\n};\n\n/** Register DES algorithms **/\n\nregisterAlgorithm('DES-ECB', forge.cipher.modes.ecb);\nregisterAlgorithm('DES-CBC', forge.cipher.modes.cbc);\nregisterAlgorithm('DES-CFB', forge.cipher.modes.cfb);\nregisterAlgorithm('DES-OFB', forge.cipher.modes.ofb);\nregisterAlgorithm('DES-CTR', forge.cipher.modes.ctr);\n\nregisterAlgorithm('3DES-ECB', forge.cipher.modes.ecb);\nregisterAlgorithm('3DES-CBC', forge.cipher.modes.cbc);\nregisterAlgorithm('3DES-CFB', forge.cipher.modes.cfb);\nregisterAlgorithm('3DES-OFB', forge.cipher.modes.ofb);\nregisterAlgorithm('3DES-CTR', forge.cipher.modes.ctr);\n\nfunction registerAlgorithm(name, mode) {\n var factory = function() {\n return new forge.des.Algorithm(name, mode);\n };\n forge.cipher.registerAlgorithm(name, factory);\n}\n\n/** DES implementation **/\n\nvar spfunction1 = [0x1010400,0,0x10000,0x1010404,0x1010004,0x10404,0x4,0x10000,0x400,0x1010400,0x1010404,0x400,0x1000404,0x1010004,0x1000000,0x4,0x404,0x1000400,0x1000400,0x10400,0x10400,0x1010000,0x1010000,0x1000404,0x10004,0x1000004,0x1000004,0x10004,0,0x404,0x10404,0x1000000,0x10000,0x1010404,0x4,0x1010000,0x1010400,0x1000000,0x1000000,0x400,0x1010004,0x10000,0x10400,0x1000004,0x400,0x4,0x1000404,0x10404,0x1010404,0x10004,0x1010000,0x1000404,0x1000004,0x404,0x10404,0x1010400,0x404,0x1000400,0x1000400,0,0x10004,0x10400,0,0x1010004];\nvar spfunction2 = [-0x7fef7fe0,-0x7fff8000,0x8000,0x108020,0x100000,0x20,-0x7fefffe0,-0x7fff7fe0,-0x7fffffe0,-0x7fef7fe0,-0x7fef8000,-0x80000000,-0x7fff8000,0x100000,0x20,-0x7fefffe0,0x108000,0x100020,-0x7fff7fe0,0,-0x80000000,0x8000,0x108020,-0x7ff00000,0x100020,-0x7fffffe0,0,0x108000,0x8020,-0x7fef8000,-0x7ff00000,0x8020,0,0x108020,-0x7fefffe0,0x100000,-0x7fff7fe0,-0x7ff00000,-0x7fef8000,0x8000,-0x7ff00000,-0x7fff8000,0x20,-0x7fef7fe0,0x108020,0x20,0x8000,-0x80000000,0x8020,-0x7fef8000,0x100000,-0x7fffffe0,0x100020,-0x7fff7fe0,-0x7fffffe0,0x100020,0x108000,0,-0x7fff8000,0x8020,-0x80000000,-0x7fefffe0,-0x7fef7fe0,0x108000];\nvar spfunction3 = [0x208,0x8020200,0,0x8020008,0x8000200,0,0x20208,0x8000200,0x20008,0x8000008,0x8000008,0x20000,0x8020208,0x20008,0x8020000,0x208,0x8000000,0x8,0x8020200,0x200,0x20200,0x8020000,0x8020008,0x20208,0x8000208,0x20200,0x20000,0x8000208,0x8,0x8020208,0x200,0x8000000,0x8020200,0x8000000,0x20008,0x208,0x20000,0x8020200,0x8000200,0,0x200,0x20008,0x8020208,0x8000200,0x8000008,0x200,0,0x8020008,0x8000208,0x20000,0x8000000,0x8020208,0x8,0x20208,0x20200,0x8000008,0x8020000,0x8000208,0x208,0x8020000,0x20208,0x8,0x8020008,0x20200];\nvar spfunction4 = [0x802001,0x2081,0x2081,0x80,0x802080,0x800081,0x800001,0x2001,0,0x802000,0x802000,0x802081,0x81,0,0x800080,0x800001,0x1,0x2000,0x800000,0x802001,0x80,0x800000,0x2001,0x2080,0x800081,0x1,0x2080,0x800080,0x2000,0x802080,0x802081,0x81,0x800080,0x800001,0x802000,0x802081,0x81,0,0,0x802000,0x2080,0x800080,0x800081,0x1,0x802001,0x2081,0x2081,0x80,0x802081,0x81,0x1,0x2000,0x800001,0x2001,0x802080,0x800081,0x2001,0x2080,0x800000,0x802001,0x80,0x800000,0x2000,0x802080];\nvar spfunction5 = [0x100,0x2080100,0x2080000,0x42000100,0x80000,0x100,0x40000000,0x2080000,0x40080100,0x80000,0x2000100,0x40080100,0x42000100,0x42080000,0x80100,0x40000000,0x2000000,0x40080000,0x40080000,0,0x40000100,0x42080100,0x42080100,0x2000100,0x42080000,0x40000100,0,0x42000000,0x2080100,0x2000000,0x42000000,0x80100,0x80000,0x42000100,0x100,0x2000000,0x40000000,0x2080000,0x42000100,0x40080100,0x2000100,0x40000000,0x42080000,0x2080100,0x40080100,0x100,0x2000000,0x42080000,0x42080100,0x80100,0x42000000,0x42080100,0x2080000,0,0x40080000,0x42000000,0x80100,0x2000100,0x40000100,0x80000,0,0x40080000,0x2080100,0x40000100];\nvar spfunction6 = [0x20000010,0x20400000,0x4000,0x20404010,0x20400000,0x10,0x20404010,0x400000,0x20004000,0x404010,0x400000,0x20000010,0x400010,0x20004000,0x20000000,0x4010,0,0x400010,0x20004010,0x4000,0x404000,0x20004010,0x10,0x20400010,0x20400010,0,0x404010,0x20404000,0x4010,0x404000,0x20404000,0x20000000,0x20004000,0x10,0x20400010,0x404000,0x20404010,0x400000,0x4010,0x20000010,0x400000,0x20004000,0x20000000,0x4010,0x20000010,0x20404010,0x404000,0x20400000,0x404010,0x20404000,0,0x20400010,0x10,0x4000,0x20400000,0x404010,0x4000,0x400010,0x20004010,0,0x20404000,0x20000000,0x400010,0x20004010];\nvar spfunction7 = [0x200000,0x4200002,0x4000802,0,0x800,0x4000802,0x200802,0x4200800,0x4200802,0x200000,0,0x4000002,0x2,0x4000000,0x4200002,0x802,0x4000800,0x200802,0x200002,0x4000800,0x4000002,0x4200000,0x4200800,0x200002,0x4200000,0x800,0x802,0x4200802,0x200800,0x2,0x4000000,0x200800,0x4000000,0x200800,0x200000,0x4000802,0x4000802,0x4200002,0x4200002,0x2,0x200002,0x4000000,0x4000800,0x200000,0x4200800,0x802,0x200802,0x4200800,0x802,0x4000002,0x4200802,0x4200000,0x200800,0,0x2,0x4200802,0,0x200802,0x4200000,0x800,0x4000002,0x4000800,0x800,0x200002];\nvar spfunction8 = [0x10001040,0x1000,0x40000,0x10041040,0x10000000,0x10001040,0x40,0x10000000,0x40040,0x10040000,0x10041040,0x41000,0x10041000,0x41040,0x1000,0x40,0x10040000,0x10000040,0x10001000,0x1040,0x41000,0x40040,0x10040040,0x10041000,0x1040,0,0,0x10040040,0x10000040,0x10001000,0x41040,0x40000,0x41040,0x40000,0x10041000,0x1000,0x40,0x10040040,0x1000,0x41040,0x10001000,0x40,0x10000040,0x10040000,0x10040040,0x10000000,0x40000,0x10001040,0,0x10041040,0x40040,0x10000040,0x10040000,0x10001000,0x10001040,0,0x10041040,0x41000,0x41000,0x1040,0x1040,0x40040,0x10000000,0x10041000];\n\n/**\n * Create necessary sub keys.\n *\n * @param key the 64-bit or 192-bit key.\n *\n * @return the expanded keys.\n */\nfunction _createKeys(key) {\n var pc2bytes0 = [0,0x4,0x20000000,0x20000004,0x10000,0x10004,0x20010000,0x20010004,0x200,0x204,0x20000200,0x20000204,0x10200,0x10204,0x20010200,0x20010204],\n pc2bytes1 = [0,0x1,0x100000,0x100001,0x4000000,0x4000001,0x4100000,0x4100001,0x100,0x101,0x100100,0x100101,0x4000100,0x4000101,0x4100100,0x4100101],\n pc2bytes2 = [0,0x8,0x800,0x808,0x1000000,0x1000008,0x1000800,0x1000808,0,0x8,0x800,0x808,0x1000000,0x1000008,0x1000800,0x1000808],\n pc2bytes3 = [0,0x200000,0x8000000,0x8200000,0x2000,0x202000,0x8002000,0x8202000,0x20000,0x220000,0x8020000,0x8220000,0x22000,0x222000,0x8022000,0x8222000],\n pc2bytes4 = [0,0x40000,0x10,0x40010,0,0x40000,0x10,0x40010,0x1000,0x41000,0x1010,0x41010,0x1000,0x41000,0x1010,0x41010],\n pc2bytes5 = [0,0x400,0x20,0x420,0,0x400,0x20,0x420,0x2000000,0x2000400,0x2000020,0x2000420,0x2000000,0x2000400,0x2000020,0x2000420],\n pc2bytes6 = [0,0x10000000,0x80000,0x10080000,0x2,0x10000002,0x80002,0x10080002,0,0x10000000,0x80000,0x10080000,0x2,0x10000002,0x80002,0x10080002],\n pc2bytes7 = [0,0x10000,0x800,0x10800,0x20000000,0x20010000,0x20000800,0x20010800,0x20000,0x30000,0x20800,0x30800,0x20020000,0x20030000,0x20020800,0x20030800],\n pc2bytes8 = [0,0x40000,0,0x40000,0x2,0x40002,0x2,0x40002,0x2000000,0x2040000,0x2000000,0x2040000,0x2000002,0x2040002,0x2000002,0x2040002],\n pc2bytes9 = [0,0x10000000,0x8,0x10000008,0,0x10000000,0x8,0x10000008,0x400,0x10000400,0x408,0x10000408,0x400,0x10000400,0x408,0x10000408],\n pc2bytes10 = [0,0x20,0,0x20,0x100000,0x100020,0x100000,0x100020,0x2000,0x2020,0x2000,0x2020,0x102000,0x102020,0x102000,0x102020],\n pc2bytes11 = [0,0x1000000,0x200,0x1000200,0x200000,0x1200000,0x200200,0x1200200,0x4000000,0x5000000,0x4000200,0x5000200,0x4200000,0x5200000,0x4200200,0x5200200],\n pc2bytes12 = [0,0x1000,0x8000000,0x8001000,0x80000,0x81000,0x8080000,0x8081000,0x10,0x1010,0x8000010,0x8001010,0x80010,0x81010,0x8080010,0x8081010],\n pc2bytes13 = [0,0x4,0x100,0x104,0,0x4,0x100,0x104,0x1,0x5,0x101,0x105,0x1,0x5,0x101,0x105];\n\n // how many iterations (1 for des, 3 for triple des)\n // changed by Paul 16/6/2007 to use Triple DES for 9+ byte keys\n var iterations = key.length() > 8 ? 3 : 1;\n\n // stores the return keys\n var keys = [];\n\n // now define the left shifts which need to be done\n var shifts = [0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0];\n\n var n = 0, tmp;\n for(var j = 0; j < iterations; j++) {\n var left = key.getInt32();\n var right = key.getInt32();\n\n tmp = ((left >>> 4) ^ right) & 0x0f0f0f0f;\n right ^= tmp;\n left ^= (tmp << 4);\n\n tmp = ((right >>> -16) ^ left) & 0x0000ffff;\n left ^= tmp;\n right ^= (tmp << -16);\n\n tmp = ((left >>> 2) ^ right) & 0x33333333;\n right ^= tmp;\n left ^= (tmp << 2);\n\n tmp = ((right >>> -16) ^ left) & 0x0000ffff;\n left ^= tmp;\n right ^= (tmp << -16);\n\n tmp = ((left >>> 1) ^ right) & 0x55555555;\n right ^= tmp;\n left ^= (tmp << 1);\n\n tmp = ((right >>> 8) ^ left) & 0x00ff00ff;\n left ^= tmp;\n right ^= (tmp << 8);\n\n tmp = ((left >>> 1) ^ right) & 0x55555555;\n right ^= tmp;\n left ^= (tmp << 1);\n\n // right needs to be shifted and OR'd with last four bits of left\n tmp = (left << 8) | ((right >>> 20) & 0x000000f0);\n\n // left needs to be put upside down\n left = ((right << 24) | ((right << 8) & 0xff0000) |\n ((right >>> 8) & 0xff00) | ((right >>> 24) & 0xf0));\n right = tmp;\n\n // now go through and perform these shifts on the left and right keys\n for(var i = 0; i < shifts.length; ++i) {\n //shift the keys either one or two bits to the left\n if(shifts[i]) {\n left = (left << 2) | (left >>> 26);\n right = (right << 2) | (right >>> 26);\n } else {\n left = (left << 1) | (left >>> 27);\n right = (right << 1) | (right >>> 27);\n }\n left &= -0xf;\n right &= -0xf;\n\n // now apply PC-2, in such a way that E is easier when encrypting or\n // decrypting this conversion will look like PC-2 except only the last 6\n // bits of each byte are used rather than 48 consecutive bits and the\n // order of lines will be according to how the S selection functions will\n // be applied: S2, S4, S6, S8, S1, S3, S5, S7\n var lefttmp = (\n pc2bytes0[left >>> 28] | pc2bytes1[(left >>> 24) & 0xf] |\n pc2bytes2[(left >>> 20) & 0xf] | pc2bytes3[(left >>> 16) & 0xf] |\n pc2bytes4[(left >>> 12) & 0xf] | pc2bytes5[(left >>> 8) & 0xf] |\n pc2bytes6[(left >>> 4) & 0xf]);\n var righttmp = (\n pc2bytes7[right >>> 28] | pc2bytes8[(right >>> 24) & 0xf] |\n pc2bytes9[(right >>> 20) & 0xf] | pc2bytes10[(right >>> 16) & 0xf] |\n pc2bytes11[(right >>> 12) & 0xf] | pc2bytes12[(right >>> 8) & 0xf] |\n pc2bytes13[(right >>> 4) & 0xf]);\n tmp = ((righttmp >>> 16) ^ lefttmp) & 0x0000ffff;\n keys[n++] = lefttmp ^ tmp;\n keys[n++] = righttmp ^ (tmp << 16);\n }\n }\n\n return keys;\n}\n\n/**\n * Updates a single block (1 byte) using DES. The update will either\n * encrypt or decrypt the block.\n *\n * @param keys the expanded keys.\n * @param input the input block (an array of 32-bit words).\n * @param output the updated output block.\n * @param decrypt true to decrypt the block, false to encrypt it.\n */\nfunction _updateBlock(keys, input, output, decrypt) {\n // set up loops for single or triple DES\n var iterations = keys.length === 32 ? 3 : 9;\n var looping;\n if(iterations === 3) {\n looping = decrypt ? [30, -2, -2] : [0, 32, 2];\n } else {\n looping = (decrypt ?\n [94, 62, -2, 32, 64, 2, 30, -2, -2] :\n [0, 32, 2, 62, 30, -2, 64, 96, 2]);\n }\n\n var tmp;\n\n var left = input[0];\n var right = input[1];\n\n // first each 64 bit chunk of the message must be permuted according to IP\n tmp = ((left >>> 4) ^ right) & 0x0f0f0f0f;\n right ^= tmp;\n left ^= (tmp << 4);\n\n tmp = ((left >>> 16) ^ right) & 0x0000ffff;\n right ^= tmp;\n left ^= (tmp << 16);\n\n tmp = ((right >>> 2) ^ left) & 0x33333333;\n left ^= tmp;\n right ^= (tmp << 2);\n\n tmp = ((right >>> 8) ^ left) & 0x00ff00ff;\n left ^= tmp;\n right ^= (tmp << 8);\n\n tmp = ((left >>> 1) ^ right) & 0x55555555;\n right ^= tmp;\n left ^= (tmp << 1);\n\n // rotate left 1 bit\n left = ((left << 1) | (left >>> 31));\n right = ((right << 1) | (right >>> 31));\n\n for(var j = 0; j < iterations; j += 3) {\n var endloop = looping[j + 1];\n var loopinc = looping[j + 2];\n\n // now go through and perform the encryption or decryption\n for(var i = looping[j]; i != endloop; i += loopinc) {\n var right1 = right ^ keys[i];\n var right2 = ((right >>> 4) | (right << 28)) ^ keys[i + 1];\n\n // passing these bytes through the S selection functions\n tmp = left;\n left = right;\n right = tmp ^ (\n spfunction2[(right1 >>> 24) & 0x3f] |\n spfunction4[(right1 >>> 16) & 0x3f] |\n spfunction6[(right1 >>> 8) & 0x3f] |\n spfunction8[right1 & 0x3f] |\n spfunction1[(right2 >>> 24) & 0x3f] |\n spfunction3[(right2 >>> 16) & 0x3f] |\n spfunction5[(right2 >>> 8) & 0x3f] |\n spfunction7[right2 & 0x3f]);\n }\n // unreverse left and right\n tmp = left;\n left = right;\n right = tmp;\n }\n\n // rotate right 1 bit\n left = ((left >>> 1) | (left << 31));\n right = ((right >>> 1) | (right << 31));\n\n // now perform IP-1, which is IP in the opposite direction\n tmp = ((left >>> 1) ^ right) & 0x55555555;\n right ^= tmp;\n left ^= (tmp << 1);\n\n tmp = ((right >>> 8) ^ left) & 0x00ff00ff;\n left ^= tmp;\n right ^= (tmp << 8);\n\n tmp = ((right >>> 2) ^ left) & 0x33333333;\n left ^= tmp;\n right ^= (tmp << 2);\n\n tmp = ((left >>> 16) ^ right) & 0x0000ffff;\n right ^= tmp;\n left ^= (tmp << 16);\n\n tmp = ((left >>> 4) ^ right) & 0x0f0f0f0f;\n right ^= tmp;\n left ^= (tmp << 4);\n\n output[0] = left;\n output[1] = right;\n}\n\n/**\n * Deprecated. Instead, use:\n *\n * forge.cipher.createCipher('DES-', key);\n * forge.cipher.createDecipher('DES-', key);\n *\n * Creates a deprecated DES cipher object. This object's mode will default to\n * CBC (cipher-block-chaining).\n *\n * The key may be given as a binary-encoded string of bytes or a byte buffer.\n *\n * @param options the options to use.\n * key the symmetric key to use (64 or 192 bits).\n * output the buffer to write to.\n * decrypt true for decryption, false for encryption.\n * mode the cipher mode to use (default: 'CBC').\n *\n * @return the cipher.\n */\nfunction _createCipher(options) {\n options = options || {};\n var mode = (options.mode || 'CBC').toUpperCase();\n var algorithm = 'DES-' + mode;\n\n var cipher;\n if(options.decrypt) {\n cipher = forge.cipher.createDecipher(algorithm, options.key);\n } else {\n cipher = forge.cipher.createCipher(algorithm, options.key);\n }\n\n // backwards compatible start API\n var start = cipher.start;\n cipher.start = function(iv, options) {\n // backwards compatibility: support second arg as output buffer\n var output = null;\n if(options instanceof forge.util.ByteBuffer) {\n output = options;\n options = {};\n }\n options = options || {};\n options.output = output;\n options.iv = iv;\n start.call(cipher, options);\n };\n\n return cipher;\n}\n","/**\n * Password-Based Key-Derivation Function #2 implementation.\n *\n * See RFC 2898 for details.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2010-2013 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./hmac');\nrequire('./md');\nrequire('./util');\n\nvar pkcs5 = forge.pkcs5 = forge.pkcs5 || {};\n\nvar crypto;\nif(forge.util.isNodejs && !forge.options.usePureJavaScript) {\n crypto = require('crypto');\n}\n\n/**\n * Derives a key from a password.\n *\n * @param p the password as a binary-encoded string of bytes.\n * @param s the salt as a binary-encoded string of bytes.\n * @param c the iteration count, a positive integer.\n * @param dkLen the intended length, in bytes, of the derived key,\n * (max: 2^32 - 1) * hash length of the PRF.\n * @param [md] the message digest (or algorithm identifier as a string) to use\n * in the PRF, defaults to SHA-1.\n * @param [callback(err, key)] presence triggers asynchronous version, called\n * once the operation completes.\n *\n * @return the derived key, as a binary-encoded string of bytes, for the\n * synchronous version (if no callback is specified).\n */\nmodule.exports = forge.pbkdf2 = pkcs5.pbkdf2 = function(\n p, s, c, dkLen, md, callback) {\n if(typeof md === 'function') {\n callback = md;\n md = null;\n }\n\n // use native implementation if possible and not disabled, note that\n // some node versions only support SHA-1, others allow digest to be changed\n if(forge.util.isNodejs && !forge.options.usePureJavaScript &&\n crypto.pbkdf2 && (md === null || typeof md !== 'object') &&\n (crypto.pbkdf2Sync.length > 4 || (!md || md === 'sha1'))) {\n if(typeof md !== 'string') {\n // default prf to SHA-1\n md = 'sha1';\n }\n p = Buffer.from(p, 'binary');\n s = Buffer.from(s, 'binary');\n if(!callback) {\n if(crypto.pbkdf2Sync.length === 4) {\n return crypto.pbkdf2Sync(p, s, c, dkLen).toString('binary');\n }\n return crypto.pbkdf2Sync(p, s, c, dkLen, md).toString('binary');\n }\n if(crypto.pbkdf2Sync.length === 4) {\n return crypto.pbkdf2(p, s, c, dkLen, function(err, key) {\n if(err) {\n return callback(err);\n }\n callback(null, key.toString('binary'));\n });\n }\n return crypto.pbkdf2(p, s, c, dkLen, md, function(err, key) {\n if(err) {\n return callback(err);\n }\n callback(null, key.toString('binary'));\n });\n }\n\n if(typeof md === 'undefined' || md === null) {\n // default prf to SHA-1\n md = 'sha1';\n }\n if(typeof md === 'string') {\n if(!(md in forge.md.algorithms)) {\n throw new Error('Unknown hash algorithm: ' + md);\n }\n md = forge.md[md].create();\n }\n\n var hLen = md.digestLength;\n\n /* 1. If dkLen > (2^32 - 1) * hLen, output \"derived key too long\" and\n stop. */\n if(dkLen > (0xFFFFFFFF * hLen)) {\n var err = new Error('Derived key is too long.');\n if(callback) {\n return callback(err);\n }\n throw err;\n }\n\n /* 2. Let len be the number of hLen-octet blocks in the derived key,\n rounding up, and let r be the number of octets in the last\n block:\n\n len = CEIL(dkLen / hLen),\n r = dkLen - (len - 1) * hLen. */\n var len = Math.ceil(dkLen / hLen);\n var r = dkLen - (len - 1) * hLen;\n\n /* 3. For each block of the derived key apply the function F defined\n below to the password P, the salt S, the iteration count c, and\n the block index to compute the block:\n\n T_1 = F(P, S, c, 1),\n T_2 = F(P, S, c, 2),\n ...\n T_len = F(P, S, c, len),\n\n where the function F is defined as the exclusive-or sum of the\n first c iterates of the underlying pseudorandom function PRF\n applied to the password P and the concatenation of the salt S\n and the block index i:\n\n F(P, S, c, i) = u_1 XOR u_2 XOR ... XOR u_c\n\n where\n\n u_1 = PRF(P, S || INT(i)),\n u_2 = PRF(P, u_1),\n ...\n u_c = PRF(P, u_{c-1}).\n\n Here, INT(i) is a four-octet encoding of the integer i, most\n significant octet first. */\n var prf = forge.hmac.create();\n prf.start(md, p);\n var dk = '';\n var xor, u_c, u_c1;\n\n // sync version\n if(!callback) {\n for(var i = 1; i <= len; ++i) {\n // PRF(P, S || INT(i)) (first iteration)\n prf.start(null, null);\n prf.update(s);\n prf.update(forge.util.int32ToBytes(i));\n xor = u_c1 = prf.digest().getBytes();\n\n // PRF(P, u_{c-1}) (other iterations)\n for(var j = 2; j <= c; ++j) {\n prf.start(null, null);\n prf.update(u_c1);\n u_c = prf.digest().getBytes();\n // F(p, s, c, i)\n xor = forge.util.xorBytes(xor, u_c, hLen);\n u_c1 = u_c;\n }\n\n /* 4. Concatenate the blocks and extract the first dkLen octets to\n produce a derived key DK:\n\n DK = T_1 || T_2 || ... || T_len<0..r-1> */\n dk += (i < len) ? xor : xor.substr(0, r);\n }\n /* 5. Output the derived key DK. */\n return dk;\n }\n\n // async version\n var i = 1, j;\n function outer() {\n if(i > len) {\n // done\n return callback(null, dk);\n }\n\n // PRF(P, S || INT(i)) (first iteration)\n prf.start(null, null);\n prf.update(s);\n prf.update(forge.util.int32ToBytes(i));\n xor = u_c1 = prf.digest().getBytes();\n\n // PRF(P, u_{c-1}) (other iterations)\n j = 2;\n inner();\n }\n\n function inner() {\n if(j <= c) {\n prf.start(null, null);\n prf.update(u_c1);\n u_c = prf.digest().getBytes();\n // F(p, s, c, i)\n xor = forge.util.xorBytes(xor, u_c, hLen);\n u_c1 = u_c;\n ++j;\n return forge.util.setImmediate(inner);\n }\n\n /* 4. Concatenate the blocks and extract the first dkLen octets to\n produce a derived key DK:\n\n DK = T_1 || T_2 || ... || T_len<0..r-1> */\n dk += (i < len) ? xor : xor.substr(0, r);\n\n ++i;\n outer();\n }\n\n outer();\n};\n","/**\n * Secure Hash Algorithm with 256-bit digest (SHA-256) implementation.\n *\n * See FIPS 180-2 for details.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2010-2015 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./md');\nrequire('./util');\n\nvar sha256 = module.exports = forge.sha256 = forge.sha256 || {};\nforge.md.sha256 = forge.md.algorithms.sha256 = sha256;\n\n/**\n * Creates a SHA-256 message digest object.\n *\n * @return a message digest object.\n */\nsha256.create = function() {\n // do initialization as necessary\n if(!_initialized) {\n _init();\n }\n\n // SHA-256 state contains eight 32-bit integers\n var _state = null;\n\n // input buffer\n var _input = forge.util.createBuffer();\n\n // used for word storage\n var _w = new Array(64);\n\n // message digest object\n var md = {\n algorithm: 'sha256',\n blockLength: 64,\n digestLength: 32,\n // 56-bit length of message so far (does not including padding)\n messageLength: 0,\n // true message length\n fullMessageLength: null,\n // size of message length in bytes\n messageLengthSize: 8\n };\n\n /**\n * Starts the digest.\n *\n * @return this digest object.\n */\n md.start = function() {\n // up to 56-bit message length for convenience\n md.messageLength = 0;\n\n // full message length (set md.messageLength64 for backwards-compatibility)\n md.fullMessageLength = md.messageLength64 = [];\n var int32s = md.messageLengthSize / 4;\n for(var i = 0; i < int32s; ++i) {\n md.fullMessageLength.push(0);\n }\n _input = forge.util.createBuffer();\n _state = {\n h0: 0x6A09E667,\n h1: 0xBB67AE85,\n h2: 0x3C6EF372,\n h3: 0xA54FF53A,\n h4: 0x510E527F,\n h5: 0x9B05688C,\n h6: 0x1F83D9AB,\n h7: 0x5BE0CD19\n };\n return md;\n };\n // start digest automatically for first time\n md.start();\n\n /**\n * Updates the digest with the given message input. The given input can\n * treated as raw input (no encoding will be applied) or an encoding of\n * 'utf8' maybe given to encode the input using UTF-8.\n *\n * @param msg the message input to update with.\n * @param encoding the encoding to use (default: 'raw', other: 'utf8').\n *\n * @return this digest object.\n */\n md.update = function(msg, encoding) {\n if(encoding === 'utf8') {\n msg = forge.util.encodeUtf8(msg);\n }\n\n // update message length\n var len = msg.length;\n md.messageLength += len;\n len = [(len / 0x100000000) >>> 0, len >>> 0];\n for(var i = md.fullMessageLength.length - 1; i >= 0; --i) {\n md.fullMessageLength[i] += len[1];\n len[1] = len[0] + ((md.fullMessageLength[i] / 0x100000000) >>> 0);\n md.fullMessageLength[i] = md.fullMessageLength[i] >>> 0;\n len[0] = ((len[1] / 0x100000000) >>> 0);\n }\n\n // add bytes to input buffer\n _input.putBytes(msg);\n\n // process bytes\n _update(_state, _w, _input);\n\n // compact input buffer every 2K or if empty\n if(_input.read > 2048 || _input.length() === 0) {\n _input.compact();\n }\n\n return md;\n };\n\n /**\n * Produces the digest.\n *\n * @return a byte buffer containing the digest value.\n */\n md.digest = function() {\n /* Note: Here we copy the remaining bytes in the input buffer and\n add the appropriate SHA-256 padding. Then we do the final update\n on a copy of the state so that if the user wants to get\n intermediate digests they can do so. */\n\n /* Determine the number of bytes that must be added to the message\n to ensure its length is congruent to 448 mod 512. In other words,\n the data to be digested must be a multiple of 512 bits (or 128 bytes).\n This data includes the message, some padding, and the length of the\n message. Since the length of the message will be encoded as 8 bytes (64\n bits), that means that the last segment of the data must have 56 bytes\n (448 bits) of message and padding. Therefore, the length of the message\n plus the padding must be congruent to 448 mod 512 because\n 512 - 128 = 448.\n\n In order to fill up the message length it must be filled with\n padding that begins with 1 bit followed by all 0 bits. Padding\n must *always* be present, so if the message length is already\n congruent to 448 mod 512, then 512 padding bits must be added. */\n\n var finalBlock = forge.util.createBuffer();\n finalBlock.putBytes(_input.bytes());\n\n // compute remaining size to be digested (include message length size)\n var remaining = (\n md.fullMessageLength[md.fullMessageLength.length - 1] +\n md.messageLengthSize);\n\n // add padding for overflow blockSize - overflow\n // _padding starts with 1 byte with first bit is set (byte value 128), then\n // there may be up to (blockSize - 1) other pad bytes\n var overflow = remaining & (md.blockLength - 1);\n finalBlock.putBytes(_padding.substr(0, md.blockLength - overflow));\n\n // serialize message length in bits in big-endian order; since length\n // is stored in bytes we multiply by 8 and add carry from next int\n var next, carry;\n var bits = md.fullMessageLength[0] * 8;\n for(var i = 0; i < md.fullMessageLength.length - 1; ++i) {\n next = md.fullMessageLength[i + 1] * 8;\n carry = (next / 0x100000000) >>> 0;\n bits += carry;\n finalBlock.putInt32(bits >>> 0);\n bits = next >>> 0;\n }\n finalBlock.putInt32(bits);\n\n var s2 = {\n h0: _state.h0,\n h1: _state.h1,\n h2: _state.h2,\n h3: _state.h3,\n h4: _state.h4,\n h5: _state.h5,\n h6: _state.h6,\n h7: _state.h7\n };\n _update(s2, _w, finalBlock);\n var rval = forge.util.createBuffer();\n rval.putInt32(s2.h0);\n rval.putInt32(s2.h1);\n rval.putInt32(s2.h2);\n rval.putInt32(s2.h3);\n rval.putInt32(s2.h4);\n rval.putInt32(s2.h5);\n rval.putInt32(s2.h6);\n rval.putInt32(s2.h7);\n return rval;\n };\n\n return md;\n};\n\n// sha-256 padding bytes not initialized yet\nvar _padding = null;\nvar _initialized = false;\n\n// table of constants\nvar _k = null;\n\n/**\n * Initializes the constant tables.\n */\nfunction _init() {\n // create padding\n _padding = String.fromCharCode(128);\n _padding += forge.util.fillString(String.fromCharCode(0x00), 64);\n\n // create K table for SHA-256\n _k = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2];\n\n // now initialized\n _initialized = true;\n}\n\n/**\n * Updates a SHA-256 state with the given byte buffer.\n *\n * @param s the SHA-256 state to update.\n * @param w the array to use to store words.\n * @param bytes the byte buffer to update with.\n */\nfunction _update(s, w, bytes) {\n // consume 512 bit (64 byte) chunks\n var t1, t2, s0, s1, ch, maj, i, a, b, c, d, e, f, g, h;\n var len = bytes.length();\n while(len >= 64) {\n // the w array will be populated with sixteen 32-bit big-endian words\n // and then extended into 64 32-bit words according to SHA-256\n for(i = 0; i < 16; ++i) {\n w[i] = bytes.getInt32();\n }\n for(; i < 64; ++i) {\n // XOR word 2 words ago rot right 17, rot right 19, shft right 10\n t1 = w[i - 2];\n t1 =\n ((t1 >>> 17) | (t1 << 15)) ^\n ((t1 >>> 19) | (t1 << 13)) ^\n (t1 >>> 10);\n // XOR word 15 words ago rot right 7, rot right 18, shft right 3\n t2 = w[i - 15];\n t2 =\n ((t2 >>> 7) | (t2 << 25)) ^\n ((t2 >>> 18) | (t2 << 14)) ^\n (t2 >>> 3);\n // sum(t1, word 7 ago, t2, word 16 ago) modulo 2^32\n w[i] = (t1 + w[i - 7] + t2 + w[i - 16]) | 0;\n }\n\n // initialize hash value for this chunk\n a = s.h0;\n b = s.h1;\n c = s.h2;\n d = s.h3;\n e = s.h4;\n f = s.h5;\n g = s.h6;\n h = s.h7;\n\n // round function\n for(i = 0; i < 64; ++i) {\n // Sum1(e)\n s1 =\n ((e >>> 6) | (e << 26)) ^\n ((e >>> 11) | (e << 21)) ^\n ((e >>> 25) | (e << 7));\n // Ch(e, f, g) (optimized the same way as SHA-1)\n ch = g ^ (e & (f ^ g));\n // Sum0(a)\n s0 =\n ((a >>> 2) | (a << 30)) ^\n ((a >>> 13) | (a << 19)) ^\n ((a >>> 22) | (a << 10));\n // Maj(a, b, c) (optimized the same way as SHA-1)\n maj = (a & b) | (c & (a ^ b));\n\n // main algorithm\n t1 = h + s1 + ch + _k[i] + w[i];\n t2 = s0 + maj;\n h = g;\n g = f;\n f = e;\n // `>>> 0` necessary to avoid iOS/Safari 10 optimization bug\n // can't truncate with `| 0`\n e = (d + t1) >>> 0;\n d = c;\n c = b;\n b = a;\n // `>>> 0` necessary to avoid iOS/Safari 10 optimization bug\n // can't truncate with `| 0`\n a = (t1 + t2) >>> 0;\n }\n\n // update hash state\n s.h0 = (s.h0 + a) | 0;\n s.h1 = (s.h1 + b) | 0;\n s.h2 = (s.h2 + c) | 0;\n s.h3 = (s.h3 + d) | 0;\n s.h4 = (s.h4 + e) | 0;\n s.h5 = (s.h5 + f) | 0;\n s.h6 = (s.h6 + g) | 0;\n s.h7 = (s.h7 + h) | 0;\n len -= 64;\n }\n}\n","/**\n * A javascript implementation of a cryptographically-secure\n * Pseudo Random Number Generator (PRNG). The Fortuna algorithm is followed\n * here though the use of SHA-256 is not enforced; when generating an\n * a PRNG context, the hashing algorithm and block cipher used for\n * the generator are specified via a plugin.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2010-2014 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./util');\n\nvar _crypto = null;\nif(forge.util.isNodejs && !forge.options.usePureJavaScript &&\n !process.versions['node-webkit']) {\n _crypto = require('crypto');\n}\n\n/* PRNG API */\nvar prng = module.exports = forge.prng = forge.prng || {};\n\n/**\n * Creates a new PRNG context.\n *\n * A PRNG plugin must be passed in that will provide:\n *\n * 1. A function that initializes the key and seed of a PRNG context. It\n * will be given a 16 byte key and a 16 byte seed. Any key expansion\n * or transformation of the seed from a byte string into an array of\n * integers (or similar) should be performed.\n * 2. The cryptographic function used by the generator. It takes a key and\n * a seed.\n * 3. A seed increment function. It takes the seed and returns seed + 1.\n * 4. An api to create a message digest.\n *\n * For an example, see random.js.\n *\n * @param plugin the PRNG plugin to use.\n */\nprng.create = function(plugin) {\n var ctx = {\n plugin: plugin,\n key: null,\n seed: null,\n time: null,\n // number of reseeds so far\n reseeds: 0,\n // amount of data generated so far\n generated: 0,\n // no initial key bytes\n keyBytes: ''\n };\n\n // create 32 entropy pools (each is a message digest)\n var md = plugin.md;\n var pools = new Array(32);\n for(var i = 0; i < 32; ++i) {\n pools[i] = md.create();\n }\n ctx.pools = pools;\n\n // entropy pools are written to cyclically, starting at index 0\n ctx.pool = 0;\n\n /**\n * Generates random bytes. The bytes may be generated synchronously or\n * asynchronously. Web workers must use the asynchronous interface or\n * else the behavior is undefined.\n *\n * @param count the number of random bytes to generate.\n * @param [callback(err, bytes)] called once the operation completes.\n *\n * @return count random bytes as a string.\n */\n ctx.generate = function(count, callback) {\n // do synchronously\n if(!callback) {\n return ctx.generateSync(count);\n }\n\n // simple generator using counter-based CBC\n var cipher = ctx.plugin.cipher;\n var increment = ctx.plugin.increment;\n var formatKey = ctx.plugin.formatKey;\n var formatSeed = ctx.plugin.formatSeed;\n var b = forge.util.createBuffer();\n\n // paranoid deviation from Fortuna:\n // reset key for every request to protect previously\n // generated random bytes should the key be discovered;\n // there is no 100ms based reseeding because of this\n // forced reseed for every `generate` call\n ctx.key = null;\n\n generate();\n\n function generate(err) {\n if(err) {\n return callback(err);\n }\n\n // sufficient bytes generated\n if(b.length() >= count) {\n return callback(null, b.getBytes(count));\n }\n\n // if amount of data generated is greater than 1 MiB, trigger reseed\n if(ctx.generated > 0xfffff) {\n ctx.key = null;\n }\n\n if(ctx.key === null) {\n // prevent stack overflow\n return forge.util.nextTick(function() {\n _reseed(generate);\n });\n }\n\n // generate the random bytes\n var bytes = cipher(ctx.key, ctx.seed);\n ctx.generated += bytes.length;\n b.putBytes(bytes);\n\n // generate bytes for a new key and seed\n ctx.key = formatKey(cipher(ctx.key, increment(ctx.seed)));\n ctx.seed = formatSeed(cipher(ctx.key, ctx.seed));\n\n forge.util.setImmediate(generate);\n }\n };\n\n /**\n * Generates random bytes synchronously.\n *\n * @param count the number of random bytes to generate.\n *\n * @return count random bytes as a string.\n */\n ctx.generateSync = function(count) {\n // simple generator using counter-based CBC\n var cipher = ctx.plugin.cipher;\n var increment = ctx.plugin.increment;\n var formatKey = ctx.plugin.formatKey;\n var formatSeed = ctx.plugin.formatSeed;\n\n // paranoid deviation from Fortuna:\n // reset key for every request to protect previously\n // generated random bytes should the key be discovered;\n // there is no 100ms based reseeding because of this\n // forced reseed for every `generateSync` call\n ctx.key = null;\n\n var b = forge.util.createBuffer();\n while(b.length() < count) {\n // if amount of data generated is greater than 1 MiB, trigger reseed\n if(ctx.generated > 0xfffff) {\n ctx.key = null;\n }\n\n if(ctx.key === null) {\n _reseedSync();\n }\n\n // generate the random bytes\n var bytes = cipher(ctx.key, ctx.seed);\n ctx.generated += bytes.length;\n b.putBytes(bytes);\n\n // generate bytes for a new key and seed\n ctx.key = formatKey(cipher(ctx.key, increment(ctx.seed)));\n ctx.seed = formatSeed(cipher(ctx.key, ctx.seed));\n }\n\n return b.getBytes(count);\n };\n\n /**\n * Private function that asynchronously reseeds a generator.\n *\n * @param callback(err) called once the operation completes.\n */\n function _reseed(callback) {\n if(ctx.pools[0].messageLength >= 32) {\n _seed();\n return callback();\n }\n // not enough seed data...\n var needed = (32 - ctx.pools[0].messageLength) << 5;\n ctx.seedFile(needed, function(err, bytes) {\n if(err) {\n return callback(err);\n }\n ctx.collect(bytes);\n _seed();\n callback();\n });\n }\n\n /**\n * Private function that synchronously reseeds a generator.\n */\n function _reseedSync() {\n if(ctx.pools[0].messageLength >= 32) {\n return _seed();\n }\n // not enough seed data...\n var needed = (32 - ctx.pools[0].messageLength) << 5;\n ctx.collect(ctx.seedFileSync(needed));\n _seed();\n }\n\n /**\n * Private function that seeds a generator once enough bytes are available.\n */\n function _seed() {\n // update reseed count\n ctx.reseeds = (ctx.reseeds === 0xffffffff) ? 0 : ctx.reseeds + 1;\n\n // goal is to update `key` via:\n // key = hash(key + s)\n // where 's' is all collected entropy from selected pools, then...\n\n // create a plugin-based message digest\n var md = ctx.plugin.md.create();\n\n // consume current key bytes\n md.update(ctx.keyBytes);\n\n // digest the entropy of pools whose index k meet the\n // condition 'n mod 2^k == 0' where n is the number of reseeds\n var _2powK = 1;\n for(var k = 0; k < 32; ++k) {\n if(ctx.reseeds % _2powK === 0) {\n md.update(ctx.pools[k].digest().getBytes());\n ctx.pools[k].start();\n }\n _2powK = _2powK << 1;\n }\n\n // get digest for key bytes\n ctx.keyBytes = md.digest().getBytes();\n\n // paranoid deviation from Fortuna:\n // update `seed` via `seed = hash(key)`\n // instead of initializing to zero once and only\n // ever incrementing it\n md.start();\n md.update(ctx.keyBytes);\n var seedBytes = md.digest().getBytes();\n\n // update state\n ctx.key = ctx.plugin.formatKey(ctx.keyBytes);\n ctx.seed = ctx.plugin.formatSeed(seedBytes);\n ctx.generated = 0;\n }\n\n /**\n * The built-in default seedFile. This seedFile is used when entropy\n * is needed immediately.\n *\n * @param needed the number of bytes that are needed.\n *\n * @return the random bytes.\n */\n function defaultSeedFile(needed) {\n // use window.crypto.getRandomValues strong source of entropy if available\n var getRandomValues = null;\n var globalScope = forge.util.globalScope;\n var _crypto = globalScope.crypto || globalScope.msCrypto;\n if(_crypto && _crypto.getRandomValues) {\n getRandomValues = function(arr) {\n return _crypto.getRandomValues(arr);\n };\n }\n\n var b = forge.util.createBuffer();\n if(getRandomValues) {\n while(b.length() < needed) {\n // max byte length is 65536 before QuotaExceededError is thrown\n // http://www.w3.org/TR/WebCryptoAPI/#RandomSource-method-getRandomValues\n var count = Math.max(1, Math.min(needed - b.length(), 65536) / 4);\n var entropy = new Uint32Array(Math.floor(count));\n try {\n getRandomValues(entropy);\n for(var i = 0; i < entropy.length; ++i) {\n b.putInt32(entropy[i]);\n }\n } catch(e) {\n /* only ignore QuotaExceededError */\n if(!(typeof QuotaExceededError !== 'undefined' &&\n e instanceof QuotaExceededError)) {\n throw e;\n }\n }\n }\n }\n\n // be sad and add some weak random data\n if(b.length() < needed) {\n /* Draws from Park-Miller \"minimal standard\" 31 bit PRNG,\n implemented with David G. Carta's optimization: with 32 bit math\n and without division (Public Domain). */\n var hi, lo, next;\n var seed = Math.floor(Math.random() * 0x010000);\n while(b.length() < needed) {\n lo = 16807 * (seed & 0xFFFF);\n hi = 16807 * (seed >> 16);\n lo += (hi & 0x7FFF) << 16;\n lo += hi >> 15;\n lo = (lo & 0x7FFFFFFF) + (lo >> 31);\n seed = lo & 0xFFFFFFFF;\n\n // consume lower 3 bytes of seed\n for(var i = 0; i < 3; ++i) {\n // throw in more pseudo random\n next = seed >>> (i << 3);\n next ^= Math.floor(Math.random() * 0x0100);\n b.putByte(next & 0xFF);\n }\n }\n }\n\n return b.getBytes(needed);\n }\n // initialize seed file APIs\n if(_crypto) {\n // use nodejs async API\n ctx.seedFile = function(needed, callback) {\n _crypto.randomBytes(needed, function(err, bytes) {\n if(err) {\n return callback(err);\n }\n callback(null, bytes.toString());\n });\n };\n // use nodejs sync API\n ctx.seedFileSync = function(needed) {\n return _crypto.randomBytes(needed).toString();\n };\n } else {\n ctx.seedFile = function(needed, callback) {\n try {\n callback(null, defaultSeedFile(needed));\n } catch(e) {\n callback(e);\n }\n };\n ctx.seedFileSync = defaultSeedFile;\n }\n\n /**\n * Adds entropy to a prng ctx's accumulator.\n *\n * @param bytes the bytes of entropy as a string.\n */\n ctx.collect = function(bytes) {\n // iterate over pools distributing entropy cyclically\n var count = bytes.length;\n for(var i = 0; i < count; ++i) {\n ctx.pools[ctx.pool].update(bytes.substr(i, 1));\n ctx.pool = (ctx.pool === 31) ? 0 : ctx.pool + 1;\n }\n };\n\n /**\n * Collects an integer of n bits.\n *\n * @param i the integer entropy.\n * @param n the number of bits in the integer.\n */\n ctx.collectInt = function(i, n) {\n var bytes = '';\n for(var x = 0; x < n; x += 8) {\n bytes += String.fromCharCode((i >> x) & 0xFF);\n }\n ctx.collect(bytes);\n };\n\n /**\n * Registers a Web Worker to receive immediate entropy from the main thread.\n * This method is required until Web Workers can access the native crypto\n * API. This method should be called twice for each created worker, once in\n * the main thread, and once in the worker itself.\n *\n * @param worker the worker to register.\n */\n ctx.registerWorker = function(worker) {\n // worker receives random bytes\n if(worker === self) {\n ctx.seedFile = function(needed, callback) {\n function listener(e) {\n var data = e.data;\n if(data.forge && data.forge.prng) {\n self.removeEventListener('message', listener);\n callback(data.forge.prng.err, data.forge.prng.bytes);\n }\n }\n self.addEventListener('message', listener);\n self.postMessage({forge: {prng: {needed: needed}}});\n };\n } else {\n // main thread sends random bytes upon request\n var listener = function(e) {\n var data = e.data;\n if(data.forge && data.forge.prng) {\n ctx.seedFile(data.forge.prng.needed, function(err, bytes) {\n worker.postMessage({forge: {prng: {err: err, bytes: bytes}}});\n });\n }\n };\n // TODO: do we need to remove the event listener when the worker dies?\n worker.addEventListener('message', listener);\n }\n };\n\n return ctx;\n};\n","/**\n * An API for getting cryptographically-secure random bytes. The bytes are\n * generated using the Fortuna algorithm devised by Bruce Schneier and\n * Niels Ferguson.\n *\n * Getting strong random bytes is not yet easy to do in javascript. The only\n * truish random entropy that can be collected is from the mouse, keyboard, or\n * from timing with respect to page loads, etc. This generator makes a poor\n * attempt at providing random bytes when those sources haven't yet provided\n * enough entropy to initially seed or to reseed the PRNG.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2009-2014 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./aes');\nrequire('./sha256');\nrequire('./prng');\nrequire('./util');\n\n(function() {\n\n// forge.random already defined\nif(forge.random && forge.random.getBytes) {\n module.exports = forge.random;\n return;\n}\n\n(function(jQuery) {\n\n// the default prng plugin, uses AES-128\nvar prng_aes = {};\nvar _prng_aes_output = new Array(4);\nvar _prng_aes_buffer = forge.util.createBuffer();\nprng_aes.formatKey = function(key) {\n // convert the key into 32-bit integers\n var tmp = forge.util.createBuffer(key);\n key = new Array(4);\n key[0] = tmp.getInt32();\n key[1] = tmp.getInt32();\n key[2] = tmp.getInt32();\n key[3] = tmp.getInt32();\n\n // return the expanded key\n return forge.aes._expandKey(key, false);\n};\nprng_aes.formatSeed = function(seed) {\n // convert seed into 32-bit integers\n var tmp = forge.util.createBuffer(seed);\n seed = new Array(4);\n seed[0] = tmp.getInt32();\n seed[1] = tmp.getInt32();\n seed[2] = tmp.getInt32();\n seed[3] = tmp.getInt32();\n return seed;\n};\nprng_aes.cipher = function(key, seed) {\n forge.aes._updateBlock(key, seed, _prng_aes_output, false);\n _prng_aes_buffer.putInt32(_prng_aes_output[0]);\n _prng_aes_buffer.putInt32(_prng_aes_output[1]);\n _prng_aes_buffer.putInt32(_prng_aes_output[2]);\n _prng_aes_buffer.putInt32(_prng_aes_output[3]);\n return _prng_aes_buffer.getBytes();\n};\nprng_aes.increment = function(seed) {\n // FIXME: do we care about carry or signed issues?\n ++seed[3];\n return seed;\n};\nprng_aes.md = forge.md.sha256;\n\n/**\n * Creates a new PRNG.\n */\nfunction spawnPrng() {\n var ctx = forge.prng.create(prng_aes);\n\n /**\n * Gets random bytes. If a native secure crypto API is unavailable, this\n * method tries to make the bytes more unpredictable by drawing from data that\n * can be collected from the user of the browser, eg: mouse movement.\n *\n * If a callback is given, this method will be called asynchronously.\n *\n * @param count the number of random bytes to get.\n * @param [callback(err, bytes)] called once the operation completes.\n *\n * @return the random bytes in a string.\n */\n ctx.getBytes = function(count, callback) {\n return ctx.generate(count, callback);\n };\n\n /**\n * Gets random bytes asynchronously. If a native secure crypto API is\n * unavailable, this method tries to make the bytes more unpredictable by\n * drawing from data that can be collected from the user of the browser,\n * eg: mouse movement.\n *\n * @param count the number of random bytes to get.\n *\n * @return the random bytes in a string.\n */\n ctx.getBytesSync = function(count) {\n return ctx.generate(count);\n };\n\n return ctx;\n}\n\n// create default prng context\nvar _ctx = spawnPrng();\n\n// add other sources of entropy only if window.crypto.getRandomValues is not\n// available -- otherwise this source will be automatically used by the prng\nvar getRandomValues = null;\nvar globalScope = forge.util.globalScope;\nvar _crypto = globalScope.crypto || globalScope.msCrypto;\nif(_crypto && _crypto.getRandomValues) {\n getRandomValues = function(arr) {\n return _crypto.getRandomValues(arr);\n };\n}\n\nif(forge.options.usePureJavaScript ||\n (!forge.util.isNodejs && !getRandomValues)) {\n // if this is a web worker, do not use weak entropy, instead register to\n // receive strong entropy asynchronously from the main thread\n if(typeof window === 'undefined' || window.document === undefined) {\n // FIXME:\n }\n\n // get load time entropy\n _ctx.collectInt(+new Date(), 32);\n\n // add some entropy from navigator object\n if(typeof(navigator) !== 'undefined') {\n var _navBytes = '';\n for(var key in navigator) {\n try {\n if(typeof(navigator[key]) == 'string') {\n _navBytes += navigator[key];\n }\n } catch(e) {\n /* Some navigator keys might not be accessible, e.g. the geolocation\n attribute throws an exception if touched in Mozilla chrome://\n context.\n\n Silently ignore this and just don't use this as a source of\n entropy. */\n }\n }\n _ctx.collect(_navBytes);\n _navBytes = null;\n }\n\n // add mouse and keyboard collectors if jquery is available\n if(jQuery) {\n // set up mouse entropy capture\n jQuery().mousemove(function(e) {\n // add mouse coords\n _ctx.collectInt(e.clientX, 16);\n _ctx.collectInt(e.clientY, 16);\n });\n\n // set up keyboard entropy capture\n jQuery().keypress(function(e) {\n _ctx.collectInt(e.charCode, 8);\n });\n }\n}\n\n/* Random API */\nif(!forge.random) {\n forge.random = _ctx;\n} else {\n // extend forge.random with _ctx\n for(var key in _ctx) {\n forge.random[key] = _ctx[key];\n }\n}\n\n// expose spawn PRNG\nforge.random.createInstance = spawnPrng;\n\nmodule.exports = forge.random;\n\n})(typeof(jQuery) !== 'undefined' ? jQuery : null);\n\n})();\n","/**\n * RC2 implementation.\n *\n * @author Stefan Siegl\n *\n * Copyright (c) 2012 Stefan Siegl \n *\n * Information on the RC2 cipher is available from RFC #2268,\n * http://www.ietf.org/rfc/rfc2268.txt\n */\nvar forge = require('./forge');\nrequire('./util');\n\nvar piTable = [\n 0xd9, 0x78, 0xf9, 0xc4, 0x19, 0xdd, 0xb5, 0xed, 0x28, 0xe9, 0xfd, 0x79, 0x4a, 0xa0, 0xd8, 0x9d,\n 0xc6, 0x7e, 0x37, 0x83, 0x2b, 0x76, 0x53, 0x8e, 0x62, 0x4c, 0x64, 0x88, 0x44, 0x8b, 0xfb, 0xa2,\n 0x17, 0x9a, 0x59, 0xf5, 0x87, 0xb3, 0x4f, 0x13, 0x61, 0x45, 0x6d, 0x8d, 0x09, 0x81, 0x7d, 0x32,\n 0xbd, 0x8f, 0x40, 0xeb, 0x86, 0xb7, 0x7b, 0x0b, 0xf0, 0x95, 0x21, 0x22, 0x5c, 0x6b, 0x4e, 0x82,\n 0x54, 0xd6, 0x65, 0x93, 0xce, 0x60, 0xb2, 0x1c, 0x73, 0x56, 0xc0, 0x14, 0xa7, 0x8c, 0xf1, 0xdc,\n 0x12, 0x75, 0xca, 0x1f, 0x3b, 0xbe, 0xe4, 0xd1, 0x42, 0x3d, 0xd4, 0x30, 0xa3, 0x3c, 0xb6, 0x26,\n 0x6f, 0xbf, 0x0e, 0xda, 0x46, 0x69, 0x07, 0x57, 0x27, 0xf2, 0x1d, 0x9b, 0xbc, 0x94, 0x43, 0x03,\n 0xf8, 0x11, 0xc7, 0xf6, 0x90, 0xef, 0x3e, 0xe7, 0x06, 0xc3, 0xd5, 0x2f, 0xc8, 0x66, 0x1e, 0xd7,\n 0x08, 0xe8, 0xea, 0xde, 0x80, 0x52, 0xee, 0xf7, 0x84, 0xaa, 0x72, 0xac, 0x35, 0x4d, 0x6a, 0x2a,\n 0x96, 0x1a, 0xd2, 0x71, 0x5a, 0x15, 0x49, 0x74, 0x4b, 0x9f, 0xd0, 0x5e, 0x04, 0x18, 0xa4, 0xec,\n 0xc2, 0xe0, 0x41, 0x6e, 0x0f, 0x51, 0xcb, 0xcc, 0x24, 0x91, 0xaf, 0x50, 0xa1, 0xf4, 0x70, 0x39,\n 0x99, 0x7c, 0x3a, 0x85, 0x23, 0xb8, 0xb4, 0x7a, 0xfc, 0x02, 0x36, 0x5b, 0x25, 0x55, 0x97, 0x31,\n 0x2d, 0x5d, 0xfa, 0x98, 0xe3, 0x8a, 0x92, 0xae, 0x05, 0xdf, 0x29, 0x10, 0x67, 0x6c, 0xba, 0xc9,\n 0xd3, 0x00, 0xe6, 0xcf, 0xe1, 0x9e, 0xa8, 0x2c, 0x63, 0x16, 0x01, 0x3f, 0x58, 0xe2, 0x89, 0xa9,\n 0x0d, 0x38, 0x34, 0x1b, 0xab, 0x33, 0xff, 0xb0, 0xbb, 0x48, 0x0c, 0x5f, 0xb9, 0xb1, 0xcd, 0x2e,\n 0xc5, 0xf3, 0xdb, 0x47, 0xe5, 0xa5, 0x9c, 0x77, 0x0a, 0xa6, 0x20, 0x68, 0xfe, 0x7f, 0xc1, 0xad\n];\n\nvar s = [1, 2, 3, 5];\n\n/**\n * Rotate a word left by given number of bits.\n *\n * Bits that are shifted out on the left are put back in on the right\n * hand side.\n *\n * @param word The word to shift left.\n * @param bits The number of bits to shift by.\n * @return The rotated word.\n */\nvar rol = function(word, bits) {\n return ((word << bits) & 0xffff) | ((word & 0xffff) >> (16 - bits));\n};\n\n/**\n * Rotate a word right by given number of bits.\n *\n * Bits that are shifted out on the right are put back in on the left\n * hand side.\n *\n * @param word The word to shift right.\n * @param bits The number of bits to shift by.\n * @return The rotated word.\n */\nvar ror = function(word, bits) {\n return ((word & 0xffff) >> bits) | ((word << (16 - bits)) & 0xffff);\n};\n\n/* RC2 API */\nmodule.exports = forge.rc2 = forge.rc2 || {};\n\n/**\n * Perform RC2 key expansion as per RFC #2268, section 2.\n *\n * @param key variable-length user key (between 1 and 128 bytes)\n * @param effKeyBits number of effective key bits (default: 128)\n * @return the expanded RC2 key (ByteBuffer of 128 bytes)\n */\nforge.rc2.expandKey = function(key, effKeyBits) {\n if(typeof key === 'string') {\n key = forge.util.createBuffer(key);\n }\n effKeyBits = effKeyBits || 128;\n\n /* introduce variables that match the names used in RFC #2268 */\n var L = key;\n var T = key.length();\n var T1 = effKeyBits;\n var T8 = Math.ceil(T1 / 8);\n var TM = 0xff >> (T1 & 0x07);\n var i;\n\n for(i = T; i < 128; i++) {\n L.putByte(piTable[(L.at(i - 1) + L.at(i - T)) & 0xff]);\n }\n\n L.setAt(128 - T8, piTable[L.at(128 - T8) & TM]);\n\n for(i = 127 - T8; i >= 0; i--) {\n L.setAt(i, piTable[L.at(i + 1) ^ L.at(i + T8)]);\n }\n\n return L;\n};\n\n/**\n * Creates a RC2 cipher object.\n *\n * @param key the symmetric key to use (as base for key generation).\n * @param bits the number of effective key bits.\n * @param encrypt false for decryption, true for encryption.\n *\n * @return the cipher.\n */\nvar createCipher = function(key, bits, encrypt) {\n var _finish = false, _input = null, _output = null, _iv = null;\n var mixRound, mashRound;\n var i, j, K = [];\n\n /* Expand key and fill into K[] Array */\n key = forge.rc2.expandKey(key, bits);\n for(i = 0; i < 64; i++) {\n K.push(key.getInt16Le());\n }\n\n if(encrypt) {\n /**\n * Perform one mixing round \"in place\".\n *\n * @param R Array of four words to perform mixing on.\n */\n mixRound = function(R) {\n for(i = 0; i < 4; i++) {\n R[i] += K[j] + (R[(i + 3) % 4] & R[(i + 2) % 4]) +\n ((~R[(i + 3) % 4]) & R[(i + 1) % 4]);\n R[i] = rol(R[i], s[i]);\n j++;\n }\n };\n\n /**\n * Perform one mashing round \"in place\".\n *\n * @param R Array of four words to perform mashing on.\n */\n mashRound = function(R) {\n for(i = 0; i < 4; i++) {\n R[i] += K[R[(i + 3) % 4] & 63];\n }\n };\n } else {\n /**\n * Perform one r-mixing round \"in place\".\n *\n * @param R Array of four words to perform mixing on.\n */\n mixRound = function(R) {\n for(i = 3; i >= 0; i--) {\n R[i] = ror(R[i], s[i]);\n R[i] -= K[j] + (R[(i + 3) % 4] & R[(i + 2) % 4]) +\n ((~R[(i + 3) % 4]) & R[(i + 1) % 4]);\n j--;\n }\n };\n\n /**\n * Perform one r-mashing round \"in place\".\n *\n * @param R Array of four words to perform mashing on.\n */\n mashRound = function(R) {\n for(i = 3; i >= 0; i--) {\n R[i] -= K[R[(i + 3) % 4] & 63];\n }\n };\n }\n\n /**\n * Run the specified cipher execution plan.\n *\n * This function takes four words from the input buffer, applies the IV on\n * it (if requested) and runs the provided execution plan.\n *\n * The plan must be put together in form of a array of arrays. Where the\n * outer one is simply a list of steps to perform and the inner one needs\n * to have two elements: the first one telling how many rounds to perform,\n * the second one telling what to do (i.e. the function to call).\n *\n * @param {Array} plan The plan to execute.\n */\n var runPlan = function(plan) {\n var R = [];\n\n /* Get data from input buffer and fill the four words into R */\n for(i = 0; i < 4; i++) {\n var val = _input.getInt16Le();\n\n if(_iv !== null) {\n if(encrypt) {\n /* We're encrypting, apply the IV first. */\n val ^= _iv.getInt16Le();\n } else {\n /* We're decryption, keep cipher text for next block. */\n _iv.putInt16Le(val);\n }\n }\n\n R.push(val & 0xffff);\n }\n\n /* Reset global \"j\" variable as per spec. */\n j = encrypt ? 0 : 63;\n\n /* Run execution plan. */\n for(var ptr = 0; ptr < plan.length; ptr++) {\n for(var ctr = 0; ctr < plan[ptr][0]; ctr++) {\n plan[ptr][1](R);\n }\n }\n\n /* Write back result to output buffer. */\n for(i = 0; i < 4; i++) {\n if(_iv !== null) {\n if(encrypt) {\n /* We're encrypting in CBC-mode, feed back encrypted bytes into\n IV buffer to carry it forward to next block. */\n _iv.putInt16Le(R[i]);\n } else {\n R[i] ^= _iv.getInt16Le();\n }\n }\n\n _output.putInt16Le(R[i]);\n }\n };\n\n /* Create cipher object */\n var cipher = null;\n cipher = {\n /**\n * Starts or restarts the encryption or decryption process, whichever\n * was previously configured.\n *\n * To use the cipher in CBC mode, iv may be given either as a string\n * of bytes, or as a byte buffer. For ECB mode, give null as iv.\n *\n * @param iv the initialization vector to use, null for ECB mode.\n * @param output the output the buffer to write to, null to create one.\n */\n start: function(iv, output) {\n if(iv) {\n /* CBC mode */\n if(typeof iv === 'string') {\n iv = forge.util.createBuffer(iv);\n }\n }\n\n _finish = false;\n _input = forge.util.createBuffer();\n _output = output || new forge.util.createBuffer();\n _iv = iv;\n\n cipher.output = _output;\n },\n\n /**\n * Updates the next block.\n *\n * @param input the buffer to read from.\n */\n update: function(input) {\n if(!_finish) {\n // not finishing, so fill the input buffer with more input\n _input.putBuffer(input);\n }\n\n while(_input.length() >= 8) {\n runPlan([\n [ 5, mixRound ],\n [ 1, mashRound ],\n [ 6, mixRound ],\n [ 1, mashRound ],\n [ 5, mixRound ]\n ]);\n }\n },\n\n /**\n * Finishes encrypting or decrypting.\n *\n * @param pad a padding function to use, null for PKCS#7 padding,\n * signature(blockSize, buffer, decrypt).\n *\n * @return true if successful, false on error.\n */\n finish: function(pad) {\n var rval = true;\n\n if(encrypt) {\n if(pad) {\n rval = pad(8, _input, !encrypt);\n } else {\n // add PKCS#7 padding to block (each pad byte is the\n // value of the number of pad bytes)\n var padding = (_input.length() === 8) ? 8 : (8 - _input.length());\n _input.fillWithByte(padding, padding);\n }\n }\n\n if(rval) {\n // do final update\n _finish = true;\n cipher.update();\n }\n\n if(!encrypt) {\n // check for error: input data not a multiple of block size\n rval = (_input.length() === 0);\n if(rval) {\n if(pad) {\n rval = pad(8, _output, !encrypt);\n } else {\n // ensure padding byte count is valid\n var len = _output.length();\n var count = _output.at(len - 1);\n\n if(count > len) {\n rval = false;\n } else {\n // trim off padding bytes\n _output.truncate(count);\n }\n }\n }\n }\n\n return rval;\n }\n };\n\n return cipher;\n};\n\n/**\n * Creates an RC2 cipher object to encrypt data in ECB or CBC mode using the\n * given symmetric key. The output will be stored in the 'output' member\n * of the returned cipher.\n *\n * The key and iv may be given as a string of bytes or a byte buffer.\n * The cipher is initialized to use 128 effective key bits.\n *\n * @param key the symmetric key to use.\n * @param iv the initialization vector to use.\n * @param output the buffer to write to, null to create one.\n *\n * @return the cipher.\n */\nforge.rc2.startEncrypting = function(key, iv, output) {\n var cipher = forge.rc2.createEncryptionCipher(key, 128);\n cipher.start(iv, output);\n return cipher;\n};\n\n/**\n * Creates an RC2 cipher object to encrypt data in ECB or CBC mode using the\n * given symmetric key.\n *\n * The key may be given as a string of bytes or a byte buffer.\n *\n * To start encrypting call start() on the cipher with an iv and optional\n * output buffer.\n *\n * @param key the symmetric key to use.\n *\n * @return the cipher.\n */\nforge.rc2.createEncryptionCipher = function(key, bits) {\n return createCipher(key, bits, true);\n};\n\n/**\n * Creates an RC2 cipher object to decrypt data in ECB or CBC mode using the\n * given symmetric key. The output will be stored in the 'output' member\n * of the returned cipher.\n *\n * The key and iv may be given as a string of bytes or a byte buffer.\n * The cipher is initialized to use 128 effective key bits.\n *\n * @param key the symmetric key to use.\n * @param iv the initialization vector to use.\n * @param output the buffer to write to, null to create one.\n *\n * @return the cipher.\n */\nforge.rc2.startDecrypting = function(key, iv, output) {\n var cipher = forge.rc2.createDecryptionCipher(key, 128);\n cipher.start(iv, output);\n return cipher;\n};\n\n/**\n * Creates an RC2 cipher object to decrypt data in ECB or CBC mode using the\n * given symmetric key.\n *\n * The key may be given as a string of bytes or a byte buffer.\n *\n * To start decrypting call start() on the cipher with an iv and optional\n * output buffer.\n *\n * @param key the symmetric key to use.\n *\n * @return the cipher.\n */\nforge.rc2.createDecryptionCipher = function(key, bits) {\n return createCipher(key, bits, false);\n};\n","// Copyright (c) 2005 Tom Wu\n// All Rights Reserved.\n// See \"LICENSE\" for details.\n\n// Basic JavaScript BN library - subset useful for RSA encryption.\n\n/*\nLicensing (LICENSE)\n-------------------\n\nThis software is covered under the following copyright:\n*/\n/*\n * Copyright (c) 2003-2005 Tom Wu\n * All Rights Reserved.\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS-IS\" AND WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY\n * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.\n *\n * IN NO EVENT SHALL TOM WU BE LIABLE FOR ANY SPECIAL, INCIDENTAL,\n * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER\n * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF\n * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT\n * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n *\n * In addition, the following condition applies:\n *\n * All redistributions must retain an intact copy of this copyright notice\n * and disclaimer.\n */\n/*\nAddress all questions regarding this license to:\n\n Tom Wu\n tjw@cs.Stanford.EDU\n*/\nvar forge = require('./forge');\n\nmodule.exports = forge.jsbn = forge.jsbn || {};\n\n// Bits per digit\nvar dbits;\n\n// JavaScript engine analysis\nvar canary = 0xdeadbeefcafe;\nvar j_lm = ((canary&0xffffff)==0xefcafe);\n\n// (public) Constructor\nfunction BigInteger(a,b,c) {\n this.data = [];\n if(a != null)\n if(\"number\" == typeof a) this.fromNumber(a,b,c);\n else if(b == null && \"string\" != typeof a) this.fromString(a,256);\n else this.fromString(a,b);\n}\nforge.jsbn.BigInteger = BigInteger;\n\n// return new, unset BigInteger\nfunction nbi() { return new BigInteger(null); }\n\n// am: Compute w_j += (x*this_i), propagate carries,\n// c is initial carry, returns final carry.\n// c < 3*dvalue, x < 2*dvalue, this_i < dvalue\n// We need to select the fastest one that works in this environment.\n\n// am1: use a single mult and divide to get the high bits,\n// max digit bits should be 26 because\n// max internal value = 2*dvalue^2-2*dvalue (< 2^53)\nfunction am1(i,x,w,j,c,n) {\n while(--n >= 0) {\n var v = x*this.data[i++]+w.data[j]+c;\n c = Math.floor(v/0x4000000);\n w.data[j++] = v&0x3ffffff;\n }\n return c;\n}\n// am2 avoids a big mult-and-extract completely.\n// Max digit bits should be <= 30 because we do bitwise ops\n// on values up to 2*hdvalue^2-hdvalue-1 (< 2^31)\nfunction am2(i,x,w,j,c,n) {\n var xl = x&0x7fff, xh = x>>15;\n while(--n >= 0) {\n var l = this.data[i]&0x7fff;\n var h = this.data[i++]>>15;\n var m = xh*l+h*xl;\n l = xl*l+((m&0x7fff)<<15)+w.data[j]+(c&0x3fffffff);\n c = (l>>>30)+(m>>>15)+xh*h+(c>>>30);\n w.data[j++] = l&0x3fffffff;\n }\n return c;\n}\n// Alternately, set max digit bits to 28 since some\n// browsers slow down when dealing with 32-bit numbers.\nfunction am3(i,x,w,j,c,n) {\n var xl = x&0x3fff, xh = x>>14;\n while(--n >= 0) {\n var l = this.data[i]&0x3fff;\n var h = this.data[i++]>>14;\n var m = xh*l+h*xl;\n l = xl*l+((m&0x3fff)<<14)+w.data[j]+c;\n c = (l>>28)+(m>>14)+xh*h;\n w.data[j++] = l&0xfffffff;\n }\n return c;\n}\n\n// node.js (no browser)\nif(typeof(navigator) === 'undefined')\n{\n BigInteger.prototype.am = am3;\n dbits = 28;\n} else if(j_lm && (navigator.appName == \"Microsoft Internet Explorer\")) {\n BigInteger.prototype.am = am2;\n dbits = 30;\n} else if(j_lm && (navigator.appName != \"Netscape\")) {\n BigInteger.prototype.am = am1;\n dbits = 26;\n} else { // Mozilla/Netscape seems to prefer am3\n BigInteger.prototype.am = am3;\n dbits = 28;\n}\n\nBigInteger.prototype.DB = dbits;\nBigInteger.prototype.DM = ((1<= 0; --i) r.data[i] = this.data[i];\n r.t = this.t;\n r.s = this.s;\n}\n\n// (protected) set from integer value x, -DV <= x < DV\nfunction bnpFromInt(x) {\n this.t = 1;\n this.s = (x<0)?-1:0;\n if(x > 0) this.data[0] = x;\n else if(x < -1) this.data[0] = x+this.DV;\n else this.t = 0;\n}\n\n// return bigint initialized to value\nfunction nbv(i) { var r = nbi(); r.fromInt(i); return r; }\n\n// (protected) set from string and radix\nfunction bnpFromString(s,b) {\n var k;\n if(b == 16) k = 4;\n else if(b == 8) k = 3;\n else if(b == 256) k = 8; // byte array\n else if(b == 2) k = 1;\n else if(b == 32) k = 5;\n else if(b == 4) k = 2;\n else { this.fromRadix(s,b); return; }\n this.t = 0;\n this.s = 0;\n var i = s.length, mi = false, sh = 0;\n while(--i >= 0) {\n var x = (k==8)?s[i]&0xff:intAt(s,i);\n if(x < 0) {\n if(s.charAt(i) == \"-\") mi = true;\n continue;\n }\n mi = false;\n if(sh == 0)\n this.data[this.t++] = x;\n else if(sh+k > this.DB) {\n this.data[this.t-1] |= (x&((1<<(this.DB-sh))-1))<>(this.DB-sh));\n } else\n this.data[this.t-1] |= x<= this.DB) sh -= this.DB;\n }\n if(k == 8 && (s[0]&0x80) != 0) {\n this.s = -1;\n if(sh > 0) this.data[this.t-1] |= ((1<<(this.DB-sh))-1)< 0 && this.data[this.t-1] == c) --this.t;\n}\n\n// (public) return string representation in given radix\nfunction bnToString(b) {\n if(this.s < 0) return \"-\"+this.negate().toString(b);\n var k;\n if(b == 16) k = 4;\n else if(b == 8) k = 3;\n else if(b == 2) k = 1;\n else if(b == 32) k = 5;\n else if(b == 4) k = 2;\n else return this.toRadix(b);\n var km = (1< 0) {\n if(p < this.DB && (d = this.data[i]>>p) > 0) { m = true; r = int2char(d); }\n while(i >= 0) {\n if(p < k) {\n d = (this.data[i]&((1<>(p+=this.DB-k);\n } else {\n d = (this.data[i]>>(p-=k))&km;\n if(p <= 0) { p += this.DB; --i; }\n }\n if(d > 0) m = true;\n if(m) r += int2char(d);\n }\n }\n return m?r:\"0\";\n}\n\n// (public) -this\nfunction bnNegate() { var r = nbi(); BigInteger.ZERO.subTo(this,r); return r; }\n\n// (public) |this|\nfunction bnAbs() { return (this.s<0)?this.negate():this; }\n\n// (public) return + if this > a, - if this < a, 0 if equal\nfunction bnCompareTo(a) {\n var r = this.s-a.s;\n if(r != 0) return r;\n var i = this.t;\n r = i-a.t;\n if(r != 0) return (this.s<0)?-r:r;\n while(--i >= 0) if((r=this.data[i]-a.data[i]) != 0) return r;\n return 0;\n}\n\n// returns bit length of the integer x\nfunction nbits(x) {\n var r = 1, t;\n if((t=x>>>16) != 0) { x = t; r += 16; }\n if((t=x>>8) != 0) { x = t; r += 8; }\n if((t=x>>4) != 0) { x = t; r += 4; }\n if((t=x>>2) != 0) { x = t; r += 2; }\n if((t=x>>1) != 0) { x = t; r += 1; }\n return r;\n}\n\n// (public) return the number of bits in \"this\"\nfunction bnBitLength() {\n if(this.t <= 0) return 0;\n return this.DB*(this.t-1)+nbits(this.data[this.t-1]^(this.s&this.DM));\n}\n\n// (protected) r = this << n*DB\nfunction bnpDLShiftTo(n,r) {\n var i;\n for(i = this.t-1; i >= 0; --i) r.data[i+n] = this.data[i];\n for(i = n-1; i >= 0; --i) r.data[i] = 0;\n r.t = this.t+n;\n r.s = this.s;\n}\n\n// (protected) r = this >> n*DB\nfunction bnpDRShiftTo(n,r) {\n for(var i = n; i < this.t; ++i) r.data[i-n] = this.data[i];\n r.t = Math.max(this.t-n,0);\n r.s = this.s;\n}\n\n// (protected) r = this << n\nfunction bnpLShiftTo(n,r) {\n var bs = n%this.DB;\n var cbs = this.DB-bs;\n var bm = (1<= 0; --i) {\n r.data[i+ds+1] = (this.data[i]>>cbs)|c;\n c = (this.data[i]&bm)<= 0; --i) r.data[i] = 0;\n r.data[ds] = c;\n r.t = this.t+ds+1;\n r.s = this.s;\n r.clamp();\n}\n\n// (protected) r = this >> n\nfunction bnpRShiftTo(n,r) {\n r.s = this.s;\n var ds = Math.floor(n/this.DB);\n if(ds >= this.t) { r.t = 0; return; }\n var bs = n%this.DB;\n var cbs = this.DB-bs;\n var bm = (1<>bs;\n for(var i = ds+1; i < this.t; ++i) {\n r.data[i-ds-1] |= (this.data[i]&bm)<>bs;\n }\n if(bs > 0) r.data[this.t-ds-1] |= (this.s&bm)<>= this.DB;\n }\n if(a.t < this.t) {\n c -= a.s;\n while(i < this.t) {\n c += this.data[i];\n r.data[i++] = c&this.DM;\n c >>= this.DB;\n }\n c += this.s;\n } else {\n c += this.s;\n while(i < a.t) {\n c -= a.data[i];\n r.data[i++] = c&this.DM;\n c >>= this.DB;\n }\n c -= a.s;\n }\n r.s = (c<0)?-1:0;\n if(c < -1) r.data[i++] = this.DV+c;\n else if(c > 0) r.data[i++] = c;\n r.t = i;\n r.clamp();\n}\n\n// (protected) r = this * a, r != this,a (HAC 14.12)\n// \"this\" should be the larger one if appropriate.\nfunction bnpMultiplyTo(a,r) {\n var x = this.abs(), y = a.abs();\n var i = x.t;\n r.t = i+y.t;\n while(--i >= 0) r.data[i] = 0;\n for(i = 0; i < y.t; ++i) r.data[i+x.t] = x.am(0,y.data[i],r,i,0,x.t);\n r.s = 0;\n r.clamp();\n if(this.s != a.s) BigInteger.ZERO.subTo(r,r);\n}\n\n// (protected) r = this^2, r != this (HAC 14.16)\nfunction bnpSquareTo(r) {\n var x = this.abs();\n var i = r.t = 2*x.t;\n while(--i >= 0) r.data[i] = 0;\n for(i = 0; i < x.t-1; ++i) {\n var c = x.am(i,x.data[i],r,2*i,0,1);\n if((r.data[i+x.t]+=x.am(i+1,2*x.data[i],r,2*i+1,c,x.t-i-1)) >= x.DV) {\n r.data[i+x.t] -= x.DV;\n r.data[i+x.t+1] = 1;\n }\n }\n if(r.t > 0) r.data[r.t-1] += x.am(i,x.data[i],r,2*i,0,1);\n r.s = 0;\n r.clamp();\n}\n\n// (protected) divide this by m, quotient and remainder to q, r (HAC 14.20)\n// r != q, this != m. q or r may be null.\nfunction bnpDivRemTo(m,q,r) {\n var pm = m.abs();\n if(pm.t <= 0) return;\n var pt = this.abs();\n if(pt.t < pm.t) {\n if(q != null) q.fromInt(0);\n if(r != null) this.copyTo(r);\n return;\n }\n if(r == null) r = nbi();\n var y = nbi(), ts = this.s, ms = m.s;\n var nsh = this.DB-nbits(pm.data[pm.t-1]);\t// normalize modulus\n if(nsh > 0) { pm.lShiftTo(nsh,y); pt.lShiftTo(nsh,r); } else { pm.copyTo(y); pt.copyTo(r); }\n var ys = y.t;\n var y0 = y.data[ys-1];\n if(y0 == 0) return;\n var yt = y0*(1<1)?y.data[ys-2]>>this.F2:0);\n var d1 = this.FV/yt, d2 = (1<= 0) {\n r.data[r.t++] = 1;\n r.subTo(t,r);\n }\n BigInteger.ONE.dlShiftTo(ys,t);\n t.subTo(y,y);\t// \"negative\" y so we can replace sub with am later\n while(y.t < ys) y.data[y.t++] = 0;\n while(--j >= 0) {\n // Estimate quotient digit\n var qd = (r.data[--i]==y0)?this.DM:Math.floor(r.data[i]*d1+(r.data[i-1]+e)*d2);\n if((r.data[i]+=y.am(0,qd,r,j,0,ys)) < qd) {\t// Try it out\n y.dlShiftTo(j,t);\n r.subTo(t,r);\n while(r.data[i] < --qd) r.subTo(t,r);\n }\n }\n if(q != null) {\n r.drShiftTo(ys,q);\n if(ts != ms) BigInteger.ZERO.subTo(q,q);\n }\n r.t = ys;\n r.clamp();\n if(nsh > 0) r.rShiftTo(nsh,r);\t// Denormalize remainder\n if(ts < 0) BigInteger.ZERO.subTo(r,r);\n}\n\n// (public) this mod a\nfunction bnMod(a) {\n var r = nbi();\n this.abs().divRemTo(a,null,r);\n if(this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) a.subTo(r,r);\n return r;\n}\n\n// Modular reduction using \"classic\" algorithm\nfunction Classic(m) { this.m = m; }\nfunction cConvert(x) {\n if(x.s < 0 || x.compareTo(this.m) >= 0) return x.mod(this.m);\n else return x;\n}\nfunction cRevert(x) { return x; }\nfunction cReduce(x) { x.divRemTo(this.m,null,x); }\nfunction cMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }\nfunction cSqrTo(x,r) { x.squareTo(r); this.reduce(r); }\n\nClassic.prototype.convert = cConvert;\nClassic.prototype.revert = cRevert;\nClassic.prototype.reduce = cReduce;\nClassic.prototype.mulTo = cMulTo;\nClassic.prototype.sqrTo = cSqrTo;\n\n// (protected) return \"-1/this % 2^DB\"; useful for Mont. reduction\n// justification:\n// xy == 1 (mod m)\n// xy = 1+km\n// xy(2-xy) = (1+km)(1-km)\n// x[y(2-xy)] = 1-k^2m^2\n// x[y(2-xy)] == 1 (mod m^2)\n// if y is 1/x mod m, then y(2-xy) is 1/x mod m^2\n// should reduce x and y(2-xy) by m^2 at each step to keep size bounded.\n// JS multiply \"overflows\" differently from C/C++, so care is needed here.\nfunction bnpInvDigit() {\n if(this.t < 1) return 0;\n var x = this.data[0];\n if((x&1) == 0) return 0;\n var y = x&3;\t\t// y == 1/x mod 2^2\n y = (y*(2-(x&0xf)*y))&0xf;\t// y == 1/x mod 2^4\n y = (y*(2-(x&0xff)*y))&0xff;\t// y == 1/x mod 2^8\n y = (y*(2-(((x&0xffff)*y)&0xffff)))&0xffff;\t// y == 1/x mod 2^16\n // last step - calculate inverse mod DV directly;\n // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints\n y = (y*(2-x*y%this.DV))%this.DV;\t\t// y == 1/x mod 2^dbits\n // we really want the negative inverse, and -DV < y < DV\n return (y>0)?this.DV-y:-y;\n}\n\n// Montgomery reduction\nfunction Montgomery(m) {\n this.m = m;\n this.mp = m.invDigit();\n this.mpl = this.mp&0x7fff;\n this.mph = this.mp>>15;\n this.um = (1<<(m.DB-15))-1;\n this.mt2 = 2*m.t;\n}\n\n// xR mod m\nfunction montConvert(x) {\n var r = nbi();\n x.abs().dlShiftTo(this.m.t,r);\n r.divRemTo(this.m,null,r);\n if(x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) this.m.subTo(r,r);\n return r;\n}\n\n// x/R mod m\nfunction montRevert(x) {\n var r = nbi();\n x.copyTo(r);\n this.reduce(r);\n return r;\n}\n\n// x = x/R mod m (HAC 14.32)\nfunction montReduce(x) {\n while(x.t <= this.mt2)\t// pad x so am has enough room later\n x.data[x.t++] = 0;\n for(var i = 0; i < this.m.t; ++i) {\n // faster way of calculating u0 = x.data[i]*mp mod DV\n var j = x.data[i]&0x7fff;\n var u0 = (j*this.mpl+(((j*this.mph+(x.data[i]>>15)*this.mpl)&this.um)<<15))&x.DM;\n // use am to combine the multiply-shift-add into one call\n j = i+this.m.t;\n x.data[j] += this.m.am(0,u0,x,i,0,this.m.t);\n // propagate carry\n while(x.data[j] >= x.DV) { x.data[j] -= x.DV; x.data[++j]++; }\n }\n x.clamp();\n x.drShiftTo(this.m.t,x);\n if(x.compareTo(this.m) >= 0) x.subTo(this.m,x);\n}\n\n// r = \"x^2/R mod m\"; x != r\nfunction montSqrTo(x,r) { x.squareTo(r); this.reduce(r); }\n\n// r = \"xy/R mod m\"; x,y != r\nfunction montMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }\n\nMontgomery.prototype.convert = montConvert;\nMontgomery.prototype.revert = montRevert;\nMontgomery.prototype.reduce = montReduce;\nMontgomery.prototype.mulTo = montMulTo;\nMontgomery.prototype.sqrTo = montSqrTo;\n\n// (protected) true iff this is even\nfunction bnpIsEven() { return ((this.t>0)?(this.data[0]&1):this.s) == 0; }\n\n// (protected) this^e, e < 2^32, doing sqr and mul with \"r\" (HAC 14.79)\nfunction bnpExp(e,z) {\n if(e > 0xffffffff || e < 1) return BigInteger.ONE;\n var r = nbi(), r2 = nbi(), g = z.convert(this), i = nbits(e)-1;\n g.copyTo(r);\n while(--i >= 0) {\n z.sqrTo(r,r2);\n if((e&(1< 0) z.mulTo(r2,g,r);\n else { var t = r; r = r2; r2 = t; }\n }\n return z.revert(r);\n}\n\n// (public) this^e % m, 0 <= e < 2^32\nfunction bnModPowInt(e,m) {\n var z;\n if(e < 256 || m.isEven()) z = new Classic(m); else z = new Montgomery(m);\n return this.exp(e,z);\n}\n\n// protected\nBigInteger.prototype.copyTo = bnpCopyTo;\nBigInteger.prototype.fromInt = bnpFromInt;\nBigInteger.prototype.fromString = bnpFromString;\nBigInteger.prototype.clamp = bnpClamp;\nBigInteger.prototype.dlShiftTo = bnpDLShiftTo;\nBigInteger.prototype.drShiftTo = bnpDRShiftTo;\nBigInteger.prototype.lShiftTo = bnpLShiftTo;\nBigInteger.prototype.rShiftTo = bnpRShiftTo;\nBigInteger.prototype.subTo = bnpSubTo;\nBigInteger.prototype.multiplyTo = bnpMultiplyTo;\nBigInteger.prototype.squareTo = bnpSquareTo;\nBigInteger.prototype.divRemTo = bnpDivRemTo;\nBigInteger.prototype.invDigit = bnpInvDigit;\nBigInteger.prototype.isEven = bnpIsEven;\nBigInteger.prototype.exp = bnpExp;\n\n// public\nBigInteger.prototype.toString = bnToString;\nBigInteger.prototype.negate = bnNegate;\nBigInteger.prototype.abs = bnAbs;\nBigInteger.prototype.compareTo = bnCompareTo;\nBigInteger.prototype.bitLength = bnBitLength;\nBigInteger.prototype.mod = bnMod;\nBigInteger.prototype.modPowInt = bnModPowInt;\n\n// \"constants\"\nBigInteger.ZERO = nbv(0);\nBigInteger.ONE = nbv(1);\n\n// jsbn2 lib\n\n//Copyright (c) 2005-2009 Tom Wu\n//All Rights Reserved.\n//See \"LICENSE\" for details (See jsbn.js for LICENSE).\n\n//Extended JavaScript BN functions, required for RSA private ops.\n\n//Version 1.1: new BigInteger(\"0\", 10) returns \"proper\" zero\n\n//(public)\nfunction bnClone() { var r = nbi(); this.copyTo(r); return r; }\n\n//(public) return value as integer\nfunction bnIntValue() {\nif(this.s < 0) {\n if(this.t == 1) return this.data[0]-this.DV;\n else if(this.t == 0) return -1;\n} else if(this.t == 1) return this.data[0];\nelse if(this.t == 0) return 0;\n// assumes 16 < DB < 32\nreturn ((this.data[1]&((1<<(32-this.DB))-1))<>24; }\n\n//(public) return value as short (assumes DB>=16)\nfunction bnShortValue() { return (this.t==0)?this.s:(this.data[0]<<16)>>16; }\n\n//(protected) return x s.t. r^x < DV\nfunction bnpChunkSize(r) { return Math.floor(Math.LN2*this.DB/Math.log(r)); }\n\n//(public) 0 if this == 0, 1 if this > 0\nfunction bnSigNum() {\nif(this.s < 0) return -1;\nelse if(this.t <= 0 || (this.t == 1 && this.data[0] <= 0)) return 0;\nelse return 1;\n}\n\n//(protected) convert to radix string\nfunction bnpToRadix(b) {\nif(b == null) b = 10;\nif(this.signum() == 0 || b < 2 || b > 36) return \"0\";\nvar cs = this.chunkSize(b);\nvar a = Math.pow(b,cs);\nvar d = nbv(a), y = nbi(), z = nbi(), r = \"\";\nthis.divRemTo(d,y,z);\nwhile(y.signum() > 0) {\n r = (a+z.intValue()).toString(b).substr(1) + r;\n y.divRemTo(d,y,z);\n}\nreturn z.intValue().toString(b) + r;\n}\n\n//(protected) convert from radix string\nfunction bnpFromRadix(s,b) {\nthis.fromInt(0);\nif(b == null) b = 10;\nvar cs = this.chunkSize(b);\nvar d = Math.pow(b,cs), mi = false, j = 0, w = 0;\nfor(var i = 0; i < s.length; ++i) {\n var x = intAt(s,i);\n if(x < 0) {\n if(s.charAt(i) == \"-\" && this.signum() == 0) mi = true;\n continue;\n }\n w = b*w+x;\n if(++j >= cs) {\n this.dMultiply(d);\n this.dAddOffset(w,0);\n j = 0;\n w = 0;\n }\n}\nif(j > 0) {\n this.dMultiply(Math.pow(b,j));\n this.dAddOffset(w,0);\n}\nif(mi) BigInteger.ZERO.subTo(this,this);\n}\n\n//(protected) alternate constructor\nfunction bnpFromNumber(a,b,c) {\nif(\"number\" == typeof b) {\n // new BigInteger(int,int,RNG)\n if(a < 2) this.fromInt(1);\n else {\n this.fromNumber(a,c);\n if(!this.testBit(a-1)) // force MSB set\n this.bitwiseTo(BigInteger.ONE.shiftLeft(a-1),op_or,this);\n if(this.isEven()) this.dAddOffset(1,0); // force odd\n while(!this.isProbablePrime(b)) {\n this.dAddOffset(2,0);\n if(this.bitLength() > a) this.subTo(BigInteger.ONE.shiftLeft(a-1),this);\n }\n }\n} else {\n // new BigInteger(int,RNG)\n var x = new Array(), t = a&7;\n x.length = (a>>3)+1;\n b.nextBytes(x);\n if(t > 0) x[0] &= ((1< 0) {\n if(p < this.DB && (d = this.data[i]>>p) != (this.s&this.DM)>>p)\n r[k++] = d|(this.s<<(this.DB-p));\n while(i >= 0) {\n if(p < 8) {\n d = (this.data[i]&((1<>(p+=this.DB-8);\n } else {\n d = (this.data[i]>>(p-=8))&0xff;\n if(p <= 0) { p += this.DB; --i; }\n }\n if((d&0x80) != 0) d |= -256;\n if(k == 0 && (this.s&0x80) != (d&0x80)) ++k;\n if(k > 0 || d != this.s) r[k++] = d;\n }\n}\nreturn r;\n}\n\nfunction bnEquals(a) { return(this.compareTo(a)==0); }\nfunction bnMin(a) { return(this.compareTo(a)<0)?this:a; }\nfunction bnMax(a) { return(this.compareTo(a)>0)?this:a; }\n\n//(protected) r = this op a (bitwise)\nfunction bnpBitwiseTo(a,op,r) {\nvar i, f, m = Math.min(a.t,this.t);\nfor(i = 0; i < m; ++i) r.data[i] = op(this.data[i],a.data[i]);\nif(a.t < this.t) {\n f = a.s&this.DM;\n for(i = m; i < this.t; ++i) r.data[i] = op(this.data[i],f);\n r.t = this.t;\n} else {\n f = this.s&this.DM;\n for(i = m; i < a.t; ++i) r.data[i] = op(f,a.data[i]);\n r.t = a.t;\n}\nr.s = op(this.s,a.s);\nr.clamp();\n}\n\n//(public) this & a\nfunction op_and(x,y) { return x&y; }\nfunction bnAnd(a) { var r = nbi(); this.bitwiseTo(a,op_and,r); return r; }\n\n//(public) this | a\nfunction op_or(x,y) { return x|y; }\nfunction bnOr(a) { var r = nbi(); this.bitwiseTo(a,op_or,r); return r; }\n\n//(public) this ^ a\nfunction op_xor(x,y) { return x^y; }\nfunction bnXor(a) { var r = nbi(); this.bitwiseTo(a,op_xor,r); return r; }\n\n//(public) this & ~a\nfunction op_andnot(x,y) { return x&~y; }\nfunction bnAndNot(a) { var r = nbi(); this.bitwiseTo(a,op_andnot,r); return r; }\n\n//(public) ~this\nfunction bnNot() {\nvar r = nbi();\nfor(var i = 0; i < this.t; ++i) r.data[i] = this.DM&~this.data[i];\nr.t = this.t;\nr.s = ~this.s;\nreturn r;\n}\n\n//(public) this << n\nfunction bnShiftLeft(n) {\nvar r = nbi();\nif(n < 0) this.rShiftTo(-n,r); else this.lShiftTo(n,r);\nreturn r;\n}\n\n//(public) this >> n\nfunction bnShiftRight(n) {\nvar r = nbi();\nif(n < 0) this.lShiftTo(-n,r); else this.rShiftTo(n,r);\nreturn r;\n}\n\n//return index of lowest 1-bit in x, x < 2^31\nfunction lbit(x) {\nif(x == 0) return -1;\nvar r = 0;\nif((x&0xffff) == 0) { x >>= 16; r += 16; }\nif((x&0xff) == 0) { x >>= 8; r += 8; }\nif((x&0xf) == 0) { x >>= 4; r += 4; }\nif((x&3) == 0) { x >>= 2; r += 2; }\nif((x&1) == 0) ++r;\nreturn r;\n}\n\n//(public) returns index of lowest 1-bit (or -1 if none)\nfunction bnGetLowestSetBit() {\nfor(var i = 0; i < this.t; ++i)\n if(this.data[i] != 0) return i*this.DB+lbit(this.data[i]);\nif(this.s < 0) return this.t*this.DB;\nreturn -1;\n}\n\n//return number of 1 bits in x\nfunction cbit(x) {\nvar r = 0;\nwhile(x != 0) { x &= x-1; ++r; }\nreturn r;\n}\n\n//(public) return number of set bits\nfunction bnBitCount() {\nvar r = 0, x = this.s&this.DM;\nfor(var i = 0; i < this.t; ++i) r += cbit(this.data[i]^x);\nreturn r;\n}\n\n//(public) true iff nth bit is set\nfunction bnTestBit(n) {\nvar j = Math.floor(n/this.DB);\nif(j >= this.t) return(this.s!=0);\nreturn((this.data[j]&(1<<(n%this.DB)))!=0);\n}\n\n//(protected) this op (1<>= this.DB;\n}\nif(a.t < this.t) {\n c += a.s;\n while(i < this.t) {\n c += this.data[i];\n r.data[i++] = c&this.DM;\n c >>= this.DB;\n }\n c += this.s;\n} else {\n c += this.s;\n while(i < a.t) {\n c += a.data[i];\n r.data[i++] = c&this.DM;\n c >>= this.DB;\n }\n c += a.s;\n}\nr.s = (c<0)?-1:0;\nif(c > 0) r.data[i++] = c;\nelse if(c < -1) r.data[i++] = this.DV+c;\nr.t = i;\nr.clamp();\n}\n\n//(public) this + a\nfunction bnAdd(a) { var r = nbi(); this.addTo(a,r); return r; }\n\n//(public) this - a\nfunction bnSubtract(a) { var r = nbi(); this.subTo(a,r); return r; }\n\n//(public) this * a\nfunction bnMultiply(a) { var r = nbi(); this.multiplyTo(a,r); return r; }\n\n//(public) this / a\nfunction bnDivide(a) { var r = nbi(); this.divRemTo(a,r,null); return r; }\n\n//(public) this % a\nfunction bnRemainder(a) { var r = nbi(); this.divRemTo(a,null,r); return r; }\n\n//(public) [this/a,this%a]\nfunction bnDivideAndRemainder(a) {\nvar q = nbi(), r = nbi();\nthis.divRemTo(a,q,r);\nreturn new Array(q,r);\n}\n\n//(protected) this *= n, this >= 0, 1 < n < DV\nfunction bnpDMultiply(n) {\nthis.data[this.t] = this.am(0,n-1,this,0,0,this.t);\n++this.t;\nthis.clamp();\n}\n\n//(protected) this += n << w words, this >= 0\nfunction bnpDAddOffset(n,w) {\nif(n == 0) return;\nwhile(this.t <= w) this.data[this.t++] = 0;\nthis.data[w] += n;\nwhile(this.data[w] >= this.DV) {\n this.data[w] -= this.DV;\n if(++w >= this.t) this.data[this.t++] = 0;\n ++this.data[w];\n}\n}\n\n//A \"null\" reducer\nfunction NullExp() {}\nfunction nNop(x) { return x; }\nfunction nMulTo(x,y,r) { x.multiplyTo(y,r); }\nfunction nSqrTo(x,r) { x.squareTo(r); }\n\nNullExp.prototype.convert = nNop;\nNullExp.prototype.revert = nNop;\nNullExp.prototype.mulTo = nMulTo;\nNullExp.prototype.sqrTo = nSqrTo;\n\n//(public) this^e\nfunction bnPow(e) { return this.exp(e,new NullExp()); }\n\n//(protected) r = lower n words of \"this * a\", a.t <= n\n//\"this\" should be the larger one if appropriate.\nfunction bnpMultiplyLowerTo(a,n,r) {\nvar i = Math.min(this.t+a.t,n);\nr.s = 0; // assumes a,this >= 0\nr.t = i;\nwhile(i > 0) r.data[--i] = 0;\nvar j;\nfor(j = r.t-this.t; i < j; ++i) r.data[i+this.t] = this.am(0,a.data[i],r,i,0,this.t);\nfor(j = Math.min(a.t,n); i < j; ++i) this.am(0,a.data[i],r,i,0,n-i);\nr.clamp();\n}\n\n//(protected) r = \"this * a\" without lower n words, n > 0\n//\"this\" should be the larger one if appropriate.\nfunction bnpMultiplyUpperTo(a,n,r) {\n--n;\nvar i = r.t = this.t+a.t-n;\nr.s = 0; // assumes a,this >= 0\nwhile(--i >= 0) r.data[i] = 0;\nfor(i = Math.max(n-this.t,0); i < a.t; ++i)\n r.data[this.t+i-n] = this.am(n-i,a.data[i],r,0,0,this.t+i-n);\nr.clamp();\nr.drShiftTo(1,r);\n}\n\n//Barrett modular reduction\nfunction Barrett(m) {\n// setup Barrett\nthis.r2 = nbi();\nthis.q3 = nbi();\nBigInteger.ONE.dlShiftTo(2*m.t,this.r2);\nthis.mu = this.r2.divide(m);\nthis.m = m;\n}\n\nfunction barrettConvert(x) {\nif(x.s < 0 || x.t > 2*this.m.t) return x.mod(this.m);\nelse if(x.compareTo(this.m) < 0) return x;\nelse { var r = nbi(); x.copyTo(r); this.reduce(r); return r; }\n}\n\nfunction barrettRevert(x) { return x; }\n\n//x = x mod m (HAC 14.42)\nfunction barrettReduce(x) {\nx.drShiftTo(this.m.t-1,this.r2);\nif(x.t > this.m.t+1) { x.t = this.m.t+1; x.clamp(); }\nthis.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3);\nthis.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);\nwhile(x.compareTo(this.r2) < 0) x.dAddOffset(1,this.m.t+1);\nx.subTo(this.r2,x);\nwhile(x.compareTo(this.m) >= 0) x.subTo(this.m,x);\n}\n\n//r = x^2 mod m; x != r\nfunction barrettSqrTo(x,r) { x.squareTo(r); this.reduce(r); }\n\n//r = x*y mod m; x,y != r\nfunction barrettMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }\n\nBarrett.prototype.convert = barrettConvert;\nBarrett.prototype.revert = barrettRevert;\nBarrett.prototype.reduce = barrettReduce;\nBarrett.prototype.mulTo = barrettMulTo;\nBarrett.prototype.sqrTo = barrettSqrTo;\n\n//(public) this^e % m (HAC 14.85)\nfunction bnModPow(e,m) {\nvar i = e.bitLength(), k, r = nbv(1), z;\nif(i <= 0) return r;\nelse if(i < 18) k = 1;\nelse if(i < 48) k = 3;\nelse if(i < 144) k = 4;\nelse if(i < 768) k = 5;\nelse k = 6;\nif(i < 8)\n z = new Classic(m);\nelse if(m.isEven())\n z = new Barrett(m);\nelse\n z = new Montgomery(m);\n\n// precomputation\nvar g = new Array(), n = 3, k1 = k-1, km = (1< 1) {\n var g2 = nbi();\n z.sqrTo(g[1],g2);\n while(n <= km) {\n g[n] = nbi();\n z.mulTo(g2,g[n-2],g[n]);\n n += 2;\n }\n}\n\nvar j = e.t-1, w, is1 = true, r2 = nbi(), t;\ni = nbits(e.data[j])-1;\nwhile(j >= 0) {\n if(i >= k1) w = (e.data[j]>>(i-k1))&km;\n else {\n w = (e.data[j]&((1<<(i+1))-1))<<(k1-i);\n if(j > 0) w |= e.data[j-1]>>(this.DB+i-k1);\n }\n\n n = k;\n while((w&1) == 0) { w >>= 1; --n; }\n if((i -= n) < 0) { i += this.DB; --j; }\n if(is1) { // ret == 1, don't bother squaring or multiplying it\n g[w].copyTo(r);\n is1 = false;\n } else {\n while(n > 1) { z.sqrTo(r,r2); z.sqrTo(r2,r); n -= 2; }\n if(n > 0) z.sqrTo(r,r2); else { t = r; r = r2; r2 = t; }\n z.mulTo(r2,g[w],r);\n }\n\n while(j >= 0 && (e.data[j]&(1< 0) {\n x.rShiftTo(g,x);\n y.rShiftTo(g,y);\n}\nwhile(x.signum() > 0) {\n if((i = x.getLowestSetBit()) > 0) x.rShiftTo(i,x);\n if((i = y.getLowestSetBit()) > 0) y.rShiftTo(i,y);\n if(x.compareTo(y) >= 0) {\n x.subTo(y,x);\n x.rShiftTo(1,x);\n } else {\n y.subTo(x,y);\n y.rShiftTo(1,y);\n }\n}\nif(g > 0) y.lShiftTo(g,y);\nreturn y;\n}\n\n//(protected) this % n, n < 2^26\nfunction bnpModInt(n) {\nif(n <= 0) return 0;\nvar d = this.DV%n, r = (this.s<0)?n-1:0;\nif(this.t > 0)\n if(d == 0) r = this.data[0]%n;\n else for(var i = this.t-1; i >= 0; --i) r = (d*r+this.data[i])%n;\nreturn r;\n}\n\n//(public) 1/this % m (HAC 14.61)\nfunction bnModInverse(m) {\nvar ac = m.isEven();\nif((this.isEven() && ac) || m.signum() == 0) return BigInteger.ZERO;\nvar u = m.clone(), v = this.clone();\nvar a = nbv(1), b = nbv(0), c = nbv(0), d = nbv(1);\nwhile(u.signum() != 0) {\n while(u.isEven()) {\n u.rShiftTo(1,u);\n if(ac) {\n if(!a.isEven() || !b.isEven()) { a.addTo(this,a); b.subTo(m,b); }\n a.rShiftTo(1,a);\n } else if(!b.isEven()) b.subTo(m,b);\n b.rShiftTo(1,b);\n }\n while(v.isEven()) {\n v.rShiftTo(1,v);\n if(ac) {\n if(!c.isEven() || !d.isEven()) { c.addTo(this,c); d.subTo(m,d); }\n c.rShiftTo(1,c);\n } else if(!d.isEven()) d.subTo(m,d);\n d.rShiftTo(1,d);\n }\n if(u.compareTo(v) >= 0) {\n u.subTo(v,u);\n if(ac) a.subTo(c,a);\n b.subTo(d,b);\n } else {\n v.subTo(u,v);\n if(ac) c.subTo(a,c);\n d.subTo(b,d);\n }\n}\nif(v.compareTo(BigInteger.ONE) != 0) return BigInteger.ZERO;\nif(d.compareTo(m) >= 0) return d.subtract(m);\nif(d.signum() < 0) d.addTo(m,d); else return d;\nif(d.signum() < 0) return d.add(m); else return d;\n}\n\nvar lowprimes = [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509];\nvar lplim = (1<<26)/lowprimes[lowprimes.length-1];\n\n//(public) test primality with certainty >= 1-.5^t\nfunction bnIsProbablePrime(t) {\nvar i, x = this.abs();\nif(x.t == 1 && x.data[0] <= lowprimes[lowprimes.length-1]) {\n for(i = 0; i < lowprimes.length; ++i)\n if(x.data[0] == lowprimes[i]) return true;\n return false;\n}\nif(x.isEven()) return false;\ni = 1;\nwhile(i < lowprimes.length) {\n var m = lowprimes[i], j = i+1;\n while(j < lowprimes.length && m < lplim) m *= lowprimes[j++];\n m = x.modInt(m);\n while(i < j) if(m%lowprimes[i++] == 0) return false;\n}\nreturn x.millerRabin(t);\n}\n\n//(protected) true if probably prime (HAC 4.24, Miller-Rabin)\nfunction bnpMillerRabin(t) {\nvar n1 = this.subtract(BigInteger.ONE);\nvar k = n1.getLowestSetBit();\nif(k <= 0) return false;\nvar r = n1.shiftRight(k);\nvar prng = bnGetPrng();\nvar a;\nfor(var i = 0; i < t; ++i) {\n // select witness 'a' at random from between 1 and n1\n do {\n a = new BigInteger(this.bitLength(), prng);\n }\n while(a.compareTo(BigInteger.ONE) <= 0 || a.compareTo(n1) >= 0);\n var y = a.modPow(r,this);\n if(y.compareTo(BigInteger.ONE) != 0 && y.compareTo(n1) != 0) {\n var j = 1;\n while(j++ < k && y.compareTo(n1) != 0) {\n y = y.modPowInt(2,this);\n if(y.compareTo(BigInteger.ONE) == 0) return false;\n }\n if(y.compareTo(n1) != 0) return false;\n }\n}\nreturn true;\n}\n\n// get pseudo random number generator\nfunction bnGetPrng() {\n // create prng with api that matches BigInteger secure random\n return {\n // x is an array to fill with bytes\n nextBytes: function(x) {\n for(var i = 0; i < x.length; ++i) {\n x[i] = Math.floor(Math.random() * 0x0100);\n }\n }\n };\n}\n\n//protected\nBigInteger.prototype.chunkSize = bnpChunkSize;\nBigInteger.prototype.toRadix = bnpToRadix;\nBigInteger.prototype.fromRadix = bnpFromRadix;\nBigInteger.prototype.fromNumber = bnpFromNumber;\nBigInteger.prototype.bitwiseTo = bnpBitwiseTo;\nBigInteger.prototype.changeBit = bnpChangeBit;\nBigInteger.prototype.addTo = bnpAddTo;\nBigInteger.prototype.dMultiply = bnpDMultiply;\nBigInteger.prototype.dAddOffset = bnpDAddOffset;\nBigInteger.prototype.multiplyLowerTo = bnpMultiplyLowerTo;\nBigInteger.prototype.multiplyUpperTo = bnpMultiplyUpperTo;\nBigInteger.prototype.modInt = bnpModInt;\nBigInteger.prototype.millerRabin = bnpMillerRabin;\n\n//public\nBigInteger.prototype.clone = bnClone;\nBigInteger.prototype.intValue = bnIntValue;\nBigInteger.prototype.byteValue = bnByteValue;\nBigInteger.prototype.shortValue = bnShortValue;\nBigInteger.prototype.signum = bnSigNum;\nBigInteger.prototype.toByteArray = bnToByteArray;\nBigInteger.prototype.equals = bnEquals;\nBigInteger.prototype.min = bnMin;\nBigInteger.prototype.max = bnMax;\nBigInteger.prototype.and = bnAnd;\nBigInteger.prototype.or = bnOr;\nBigInteger.prototype.xor = bnXor;\nBigInteger.prototype.andNot = bnAndNot;\nBigInteger.prototype.not = bnNot;\nBigInteger.prototype.shiftLeft = bnShiftLeft;\nBigInteger.prototype.shiftRight = bnShiftRight;\nBigInteger.prototype.getLowestSetBit = bnGetLowestSetBit;\nBigInteger.prototype.bitCount = bnBitCount;\nBigInteger.prototype.testBit = bnTestBit;\nBigInteger.prototype.setBit = bnSetBit;\nBigInteger.prototype.clearBit = bnClearBit;\nBigInteger.prototype.flipBit = bnFlipBit;\nBigInteger.prototype.add = bnAdd;\nBigInteger.prototype.subtract = bnSubtract;\nBigInteger.prototype.multiply = bnMultiply;\nBigInteger.prototype.divide = bnDivide;\nBigInteger.prototype.remainder = bnRemainder;\nBigInteger.prototype.divideAndRemainder = bnDivideAndRemainder;\nBigInteger.prototype.modPow = bnModPow;\nBigInteger.prototype.modInverse = bnModInverse;\nBigInteger.prototype.pow = bnPow;\nBigInteger.prototype.gcd = bnGCD;\nBigInteger.prototype.isProbablePrime = bnIsProbablePrime;\n\n//BigInteger interfaces not implemented in jsbn:\n\n//BigInteger(int signum, byte[] magnitude)\n//double doubleValue()\n//float floatValue()\n//int hashCode()\n//long longValue()\n//static BigInteger valueOf(long val)\n","/**\n * Secure Hash Algorithm with 160-bit digest (SHA-1) implementation.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2010-2015 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./md');\nrequire('./util');\n\nvar sha1 = module.exports = forge.sha1 = forge.sha1 || {};\nforge.md.sha1 = forge.md.algorithms.sha1 = sha1;\n\n/**\n * Creates a SHA-1 message digest object.\n *\n * @return a message digest object.\n */\nsha1.create = function() {\n // do initialization as necessary\n if(!_initialized) {\n _init();\n }\n\n // SHA-1 state contains five 32-bit integers\n var _state = null;\n\n // input buffer\n var _input = forge.util.createBuffer();\n\n // used for word storage\n var _w = new Array(80);\n\n // message digest object\n var md = {\n algorithm: 'sha1',\n blockLength: 64,\n digestLength: 20,\n // 56-bit length of message so far (does not including padding)\n messageLength: 0,\n // true message length\n fullMessageLength: null,\n // size of message length in bytes\n messageLengthSize: 8\n };\n\n /**\n * Starts the digest.\n *\n * @return this digest object.\n */\n md.start = function() {\n // up to 56-bit message length for convenience\n md.messageLength = 0;\n\n // full message length (set md.messageLength64 for backwards-compatibility)\n md.fullMessageLength = md.messageLength64 = [];\n var int32s = md.messageLengthSize / 4;\n for(var i = 0; i < int32s; ++i) {\n md.fullMessageLength.push(0);\n }\n _input = forge.util.createBuffer();\n _state = {\n h0: 0x67452301,\n h1: 0xEFCDAB89,\n h2: 0x98BADCFE,\n h3: 0x10325476,\n h4: 0xC3D2E1F0\n };\n return md;\n };\n // start digest automatically for first time\n md.start();\n\n /**\n * Updates the digest with the given message input. The given input can\n * treated as raw input (no encoding will be applied) or an encoding of\n * 'utf8' maybe given to encode the input using UTF-8.\n *\n * @param msg the message input to update with.\n * @param encoding the encoding to use (default: 'raw', other: 'utf8').\n *\n * @return this digest object.\n */\n md.update = function(msg, encoding) {\n if(encoding === 'utf8') {\n msg = forge.util.encodeUtf8(msg);\n }\n\n // update message length\n var len = msg.length;\n md.messageLength += len;\n len = [(len / 0x100000000) >>> 0, len >>> 0];\n for(var i = md.fullMessageLength.length - 1; i >= 0; --i) {\n md.fullMessageLength[i] += len[1];\n len[1] = len[0] + ((md.fullMessageLength[i] / 0x100000000) >>> 0);\n md.fullMessageLength[i] = md.fullMessageLength[i] >>> 0;\n len[0] = ((len[1] / 0x100000000) >>> 0);\n }\n\n // add bytes to input buffer\n _input.putBytes(msg);\n\n // process bytes\n _update(_state, _w, _input);\n\n // compact input buffer every 2K or if empty\n if(_input.read > 2048 || _input.length() === 0) {\n _input.compact();\n }\n\n return md;\n };\n\n /**\n * Produces the digest.\n *\n * @return a byte buffer containing the digest value.\n */\n md.digest = function() {\n /* Note: Here we copy the remaining bytes in the input buffer and\n add the appropriate SHA-1 padding. Then we do the final update\n on a copy of the state so that if the user wants to get\n intermediate digests they can do so. */\n\n /* Determine the number of bytes that must be added to the message\n to ensure its length is congruent to 448 mod 512. In other words,\n the data to be digested must be a multiple of 512 bits (or 128 bytes).\n This data includes the message, some padding, and the length of the\n message. Since the length of the message will be encoded as 8 bytes (64\n bits), that means that the last segment of the data must have 56 bytes\n (448 bits) of message and padding. Therefore, the length of the message\n plus the padding must be congruent to 448 mod 512 because\n 512 - 128 = 448.\n\n In order to fill up the message length it must be filled with\n padding that begins with 1 bit followed by all 0 bits. Padding\n must *always* be present, so if the message length is already\n congruent to 448 mod 512, then 512 padding bits must be added. */\n\n var finalBlock = forge.util.createBuffer();\n finalBlock.putBytes(_input.bytes());\n\n // compute remaining size to be digested (include message length size)\n var remaining = (\n md.fullMessageLength[md.fullMessageLength.length - 1] +\n md.messageLengthSize);\n\n // add padding for overflow blockSize - overflow\n // _padding starts with 1 byte with first bit is set (byte value 128), then\n // there may be up to (blockSize - 1) other pad bytes\n var overflow = remaining & (md.blockLength - 1);\n finalBlock.putBytes(_padding.substr(0, md.blockLength - overflow));\n\n // serialize message length in bits in big-endian order; since length\n // is stored in bytes we multiply by 8 and add carry from next int\n var next, carry;\n var bits = md.fullMessageLength[0] * 8;\n for(var i = 0; i < md.fullMessageLength.length - 1; ++i) {\n next = md.fullMessageLength[i + 1] * 8;\n carry = (next / 0x100000000) >>> 0;\n bits += carry;\n finalBlock.putInt32(bits >>> 0);\n bits = next >>> 0;\n }\n finalBlock.putInt32(bits);\n\n var s2 = {\n h0: _state.h0,\n h1: _state.h1,\n h2: _state.h2,\n h3: _state.h3,\n h4: _state.h4\n };\n _update(s2, _w, finalBlock);\n var rval = forge.util.createBuffer();\n rval.putInt32(s2.h0);\n rval.putInt32(s2.h1);\n rval.putInt32(s2.h2);\n rval.putInt32(s2.h3);\n rval.putInt32(s2.h4);\n return rval;\n };\n\n return md;\n};\n\n// sha-1 padding bytes not initialized yet\nvar _padding = null;\nvar _initialized = false;\n\n/**\n * Initializes the constant tables.\n */\nfunction _init() {\n // create padding\n _padding = String.fromCharCode(128);\n _padding += forge.util.fillString(String.fromCharCode(0x00), 64);\n\n // now initialized\n _initialized = true;\n}\n\n/**\n * Updates a SHA-1 state with the given byte buffer.\n *\n * @param s the SHA-1 state to update.\n * @param w the array to use to store words.\n * @param bytes the byte buffer to update with.\n */\nfunction _update(s, w, bytes) {\n // consume 512 bit (64 byte) chunks\n var t, a, b, c, d, e, f, i;\n var len = bytes.length();\n while(len >= 64) {\n // the w array will be populated with sixteen 32-bit big-endian words\n // and then extended into 80 32-bit words according to SHA-1 algorithm\n // and for 32-79 using Max Locktyukhin's optimization\n\n // initialize hash value for this chunk\n a = s.h0;\n b = s.h1;\n c = s.h2;\n d = s.h3;\n e = s.h4;\n\n // round 1\n for(i = 0; i < 16; ++i) {\n t = bytes.getInt32();\n w[i] = t;\n f = d ^ (b & (c ^ d));\n t = ((a << 5) | (a >>> 27)) + f + e + 0x5A827999 + t;\n e = d;\n d = c;\n // `>>> 0` necessary to avoid iOS/Safari 10 optimization bug\n c = ((b << 30) | (b >>> 2)) >>> 0;\n b = a;\n a = t;\n }\n for(; i < 20; ++i) {\n t = (w[i - 3] ^ w[i - 8] ^ w[i - 14] ^ w[i - 16]);\n t = (t << 1) | (t >>> 31);\n w[i] = t;\n f = d ^ (b & (c ^ d));\n t = ((a << 5) | (a >>> 27)) + f + e + 0x5A827999 + t;\n e = d;\n d = c;\n // `>>> 0` necessary to avoid iOS/Safari 10 optimization bug\n c = ((b << 30) | (b >>> 2)) >>> 0;\n b = a;\n a = t;\n }\n // round 2\n for(; i < 32; ++i) {\n t = (w[i - 3] ^ w[i - 8] ^ w[i - 14] ^ w[i - 16]);\n t = (t << 1) | (t >>> 31);\n w[i] = t;\n f = b ^ c ^ d;\n t = ((a << 5) | (a >>> 27)) + f + e + 0x6ED9EBA1 + t;\n e = d;\n d = c;\n // `>>> 0` necessary to avoid iOS/Safari 10 optimization bug\n c = ((b << 30) | (b >>> 2)) >>> 0;\n b = a;\n a = t;\n }\n for(; i < 40; ++i) {\n t = (w[i - 6] ^ w[i - 16] ^ w[i - 28] ^ w[i - 32]);\n t = (t << 2) | (t >>> 30);\n w[i] = t;\n f = b ^ c ^ d;\n t = ((a << 5) | (a >>> 27)) + f + e + 0x6ED9EBA1 + t;\n e = d;\n d = c;\n // `>>> 0` necessary to avoid iOS/Safari 10 optimization bug\n c = ((b << 30) | (b >>> 2)) >>> 0;\n b = a;\n a = t;\n }\n // round 3\n for(; i < 60; ++i) {\n t = (w[i - 6] ^ w[i - 16] ^ w[i - 28] ^ w[i - 32]);\n t = (t << 2) | (t >>> 30);\n w[i] = t;\n f = (b & c) | (d & (b ^ c));\n t = ((a << 5) | (a >>> 27)) + f + e + 0x8F1BBCDC + t;\n e = d;\n d = c;\n // `>>> 0` necessary to avoid iOS/Safari 10 optimization bug\n c = ((b << 30) | (b >>> 2)) >>> 0;\n b = a;\n a = t;\n }\n // round 4\n for(; i < 80; ++i) {\n t = (w[i - 6] ^ w[i - 16] ^ w[i - 28] ^ w[i - 32]);\n t = (t << 2) | (t >>> 30);\n w[i] = t;\n f = b ^ c ^ d;\n t = ((a << 5) | (a >>> 27)) + f + e + 0xCA62C1D6 + t;\n e = d;\n d = c;\n // `>>> 0` necessary to avoid iOS/Safari 10 optimization bug\n c = ((b << 30) | (b >>> 2)) >>> 0;\n b = a;\n a = t;\n }\n\n // update hash state\n s.h0 = (s.h0 + a) | 0;\n s.h1 = (s.h1 + b) | 0;\n s.h2 = (s.h2 + c) | 0;\n s.h3 = (s.h3 + d) | 0;\n s.h4 = (s.h4 + e) | 0;\n\n len -= 64;\n }\n}\n","/**\n * Partial implementation of PKCS#1 v2.2: RSA-OEAP\n *\n * Modified but based on the following MIT and BSD licensed code:\n *\n * https://github.com/kjur/jsjws/blob/master/rsa.js:\n *\n * The 'jsjws'(JSON Web Signature JavaScript Library) License\n *\n * Copyright (c) 2012 Kenji Urushima\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *\n * http://webrsa.cvs.sourceforge.net/viewvc/webrsa/Client/RSAES-OAEP.js?content-type=text%2Fplain:\n *\n * RSAES-OAEP.js\n * $Id: RSAES-OAEP.js,v 1.1.1.1 2003/03/19 15:37:20 ellispritchard Exp $\n * JavaScript Implementation of PKCS #1 v2.1 RSA CRYPTOGRAPHY STANDARD (RSA Laboratories, June 14, 2002)\n * Copyright (C) Ellis Pritchard, Guardian Unlimited 2003.\n * Contact: ellis@nukinetics.com\n * Distributed under the BSD License.\n *\n * Official documentation: http://www.rsa.com/rsalabs/node.asp?id=2125\n *\n * @author Evan Jones (http://evanjones.ca/)\n * @author Dave Longley\n *\n * Copyright (c) 2013-2014 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./util');\nrequire('./random');\nrequire('./sha1');\n\n// shortcut for PKCS#1 API\nvar pkcs1 = module.exports = forge.pkcs1 = forge.pkcs1 || {};\n\n/**\n * Encode the given RSAES-OAEP message (M) using key, with optional label (L)\n * and seed.\n *\n * This method does not perform RSA encryption, it only encodes the message\n * using RSAES-OAEP.\n *\n * @param key the RSA key to use.\n * @param message the message to encode.\n * @param options the options to use:\n * label an optional label to use.\n * seed the seed to use.\n * md the message digest object to use, undefined for SHA-1.\n * mgf1 optional mgf1 parameters:\n * md the message digest object to use for MGF1.\n *\n * @return the encoded message bytes.\n */\npkcs1.encode_rsa_oaep = function(key, message, options) {\n // parse arguments\n var label;\n var seed;\n var md;\n var mgf1Md;\n // legacy args (label, seed, md)\n if(typeof options === 'string') {\n label = options;\n seed = arguments[3] || undefined;\n md = arguments[4] || undefined;\n } else if(options) {\n label = options.label || undefined;\n seed = options.seed || undefined;\n md = options.md || undefined;\n if(options.mgf1 && options.mgf1.md) {\n mgf1Md = options.mgf1.md;\n }\n }\n\n // default OAEP to SHA-1 message digest\n if(!md) {\n md = forge.md.sha1.create();\n } else {\n md.start();\n }\n\n // default MGF-1 to same as OAEP\n if(!mgf1Md) {\n mgf1Md = md;\n }\n\n // compute length in bytes and check output\n var keyLength = Math.ceil(key.n.bitLength() / 8);\n var maxLength = keyLength - 2 * md.digestLength - 2;\n if(message.length > maxLength) {\n var error = new Error('RSAES-OAEP input message length is too long.');\n error.length = message.length;\n error.maxLength = maxLength;\n throw error;\n }\n\n if(!label) {\n label = '';\n }\n md.update(label, 'raw');\n var lHash = md.digest();\n\n var PS = '';\n var PS_length = maxLength - message.length;\n for(var i = 0; i < PS_length; i++) {\n PS += '\\x00';\n }\n\n var DB = lHash.getBytes() + PS + '\\x01' + message;\n\n if(!seed) {\n seed = forge.random.getBytes(md.digestLength);\n } else if(seed.length !== md.digestLength) {\n var error = new Error('Invalid RSAES-OAEP seed. The seed length must ' +\n 'match the digest length.');\n error.seedLength = seed.length;\n error.digestLength = md.digestLength;\n throw error;\n }\n\n var dbMask = rsa_mgf1(seed, keyLength - md.digestLength - 1, mgf1Md);\n var maskedDB = forge.util.xorBytes(DB, dbMask, DB.length);\n\n var seedMask = rsa_mgf1(maskedDB, md.digestLength, mgf1Md);\n var maskedSeed = forge.util.xorBytes(seed, seedMask, seed.length);\n\n // return encoded message\n return '\\x00' + maskedSeed + maskedDB;\n};\n\n/**\n * Decode the given RSAES-OAEP encoded message (EM) using key, with optional\n * label (L).\n *\n * This method does not perform RSA decryption, it only decodes the message\n * using RSAES-OAEP.\n *\n * @param key the RSA key to use.\n * @param em the encoded message to decode.\n * @param options the options to use:\n * label an optional label to use.\n * md the message digest object to use for OAEP, undefined for SHA-1.\n * mgf1 optional mgf1 parameters:\n * md the message digest object to use for MGF1.\n *\n * @return the decoded message bytes.\n */\npkcs1.decode_rsa_oaep = function(key, em, options) {\n // parse args\n var label;\n var md;\n var mgf1Md;\n // legacy args\n if(typeof options === 'string') {\n label = options;\n md = arguments[3] || undefined;\n } else if(options) {\n label = options.label || undefined;\n md = options.md || undefined;\n if(options.mgf1 && options.mgf1.md) {\n mgf1Md = options.mgf1.md;\n }\n }\n\n // compute length in bytes\n var keyLength = Math.ceil(key.n.bitLength() / 8);\n\n if(em.length !== keyLength) {\n var error = new Error('RSAES-OAEP encoded message length is invalid.');\n error.length = em.length;\n error.expectedLength = keyLength;\n throw error;\n }\n\n // default OAEP to SHA-1 message digest\n if(md === undefined) {\n md = forge.md.sha1.create();\n } else {\n md.start();\n }\n\n // default MGF-1 to same as OAEP\n if(!mgf1Md) {\n mgf1Md = md;\n }\n\n if(keyLength < 2 * md.digestLength + 2) {\n throw new Error('RSAES-OAEP key is too short for the hash function.');\n }\n\n if(!label) {\n label = '';\n }\n md.update(label, 'raw');\n var lHash = md.digest().getBytes();\n\n // split the message into its parts\n var y = em.charAt(0);\n var maskedSeed = em.substring(1, md.digestLength + 1);\n var maskedDB = em.substring(1 + md.digestLength);\n\n var seedMask = rsa_mgf1(maskedDB, md.digestLength, mgf1Md);\n var seed = forge.util.xorBytes(maskedSeed, seedMask, maskedSeed.length);\n\n var dbMask = rsa_mgf1(seed, keyLength - md.digestLength - 1, mgf1Md);\n var db = forge.util.xorBytes(maskedDB, dbMask, maskedDB.length);\n\n var lHashPrime = db.substring(0, md.digestLength);\n\n // constant time check that all values match what is expected\n var error = (y !== '\\x00');\n\n // constant time check lHash vs lHashPrime\n for(var i = 0; i < md.digestLength; ++i) {\n error |= (lHash.charAt(i) !== lHashPrime.charAt(i));\n }\n\n // \"constant time\" find the 0x1 byte separating the padding (zeros) from the\n // message\n // TODO: It must be possible to do this in a better/smarter way?\n var in_ps = 1;\n var index = md.digestLength;\n for(var j = md.digestLength; j < db.length; j++) {\n var code = db.charCodeAt(j);\n\n var is_0 = (code & 0x1) ^ 0x1;\n\n // non-zero if not 0 or 1 in the ps section\n var error_mask = in_ps ? 0xfffe : 0x0000;\n error |= (code & error_mask);\n\n // latch in_ps to zero after we find 0x1\n in_ps = in_ps & is_0;\n index += in_ps;\n }\n\n if(error || db.charCodeAt(index) !== 0x1) {\n throw new Error('Invalid RSAES-OAEP padding.');\n }\n\n return db.substring(index + 1);\n};\n\nfunction rsa_mgf1(seed, maskLength, hash) {\n // default to SHA-1 message digest\n if(!hash) {\n hash = forge.md.sha1.create();\n }\n var t = '';\n var count = Math.ceil(maskLength / hash.digestLength);\n for(var i = 0; i < count; ++i) {\n var c = String.fromCharCode(\n (i >> 24) & 0xFF, (i >> 16) & 0xFF, (i >> 8) & 0xFF, i & 0xFF);\n hash.start();\n hash.update(seed + c);\n t += hash.digest().getBytes();\n }\n return t.substring(0, maskLength);\n}\n","/**\n * Prime number generation API.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2014 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./util');\nrequire('./jsbn');\nrequire('./random');\n\n(function() {\n\n// forge.prime already defined\nif(forge.prime) {\n module.exports = forge.prime;\n return;\n}\n\n/* PRIME API */\nvar prime = module.exports = forge.prime = forge.prime || {};\n\nvar BigInteger = forge.jsbn.BigInteger;\n\n// primes are 30k+i for i = 1, 7, 11, 13, 17, 19, 23, 29\nvar GCD_30_DELTA = [6, 4, 2, 4, 2, 4, 6, 2];\nvar THIRTY = new BigInteger(null);\nTHIRTY.fromInt(30);\nvar op_or = function(x, y) {return x|y;};\n\n/**\n * Generates a random probable prime with the given number of bits.\n *\n * Alternative algorithms can be specified by name as a string or as an\n * object with custom options like so:\n *\n * {\n * name: 'PRIMEINC',\n * options: {\n * maxBlockTime: ,\n * millerRabinTests: ,\n * workerScript: ,\n * workers: .\n * workLoad: the size of the work load, ie: number of possible prime\n * numbers for each web worker to check per work assignment,\n * (default: 100).\n * }\n * }\n *\n * @param bits the number of bits for the prime number.\n * @param options the options to use.\n * [algorithm] the algorithm to use (default: 'PRIMEINC').\n * [prng] a custom crypto-secure pseudo-random number generator to use,\n * that must define \"getBytesSync\".\n *\n * @return callback(err, num) called once the operation completes.\n */\nprime.generateProbablePrime = function(bits, options, callback) {\n if(typeof options === 'function') {\n callback = options;\n options = {};\n }\n options = options || {};\n\n // default to PRIMEINC algorithm\n var algorithm = options.algorithm || 'PRIMEINC';\n if(typeof algorithm === 'string') {\n algorithm = {name: algorithm};\n }\n algorithm.options = algorithm.options || {};\n\n // create prng with api that matches BigInteger secure random\n var prng = options.prng || forge.random;\n var rng = {\n // x is an array to fill with bytes\n nextBytes: function(x) {\n var b = prng.getBytesSync(x.length);\n for(var i = 0; i < x.length; ++i) {\n x[i] = b.charCodeAt(i);\n }\n }\n };\n\n if(algorithm.name === 'PRIMEINC') {\n return primeincFindPrime(bits, rng, algorithm.options, callback);\n }\n\n throw new Error('Invalid prime generation algorithm: ' + algorithm.name);\n};\n\nfunction primeincFindPrime(bits, rng, options, callback) {\n if('workers' in options) {\n return primeincFindPrimeWithWorkers(bits, rng, options, callback);\n }\n return primeincFindPrimeWithoutWorkers(bits, rng, options, callback);\n}\n\nfunction primeincFindPrimeWithoutWorkers(bits, rng, options, callback) {\n // initialize random number\n var num = generateRandom(bits, rng);\n\n /* Note: All primes are of the form 30k+i for i < 30 and gcd(30, i)=1. The\n number we are given is always aligned at 30k + 1. Each time the number is\n determined not to be prime we add to get to the next 'i', eg: if the number\n was at 30k + 1 we add 6. */\n var deltaIdx = 0;\n\n // get required number of MR tests\n var mrTests = getMillerRabinTests(num.bitLength());\n if('millerRabinTests' in options) {\n mrTests = options.millerRabinTests;\n }\n\n // find prime nearest to 'num' for maxBlockTime ms\n // 10 ms gives 5ms of leeway for other calculations before dropping\n // below 60fps (1000/60 == 16.67), but in reality, the number will\n // likely be higher due to an 'atomic' big int modPow\n var maxBlockTime = 10;\n if('maxBlockTime' in options) {\n maxBlockTime = options.maxBlockTime;\n }\n\n _primeinc(num, bits, rng, deltaIdx, mrTests, maxBlockTime, callback);\n}\n\nfunction _primeinc(num, bits, rng, deltaIdx, mrTests, maxBlockTime, callback) {\n var start = +new Date();\n do {\n // overflow, regenerate random number\n if(num.bitLength() > bits) {\n num = generateRandom(bits, rng);\n }\n // do primality test\n if(num.isProbablePrime(mrTests)) {\n return callback(null, num);\n }\n // get next potential prime\n num.dAddOffset(GCD_30_DELTA[deltaIdx++ % 8], 0);\n } while(maxBlockTime < 0 || (+new Date() - start < maxBlockTime));\n\n // keep trying later\n forge.util.setImmediate(function() {\n _primeinc(num, bits, rng, deltaIdx, mrTests, maxBlockTime, callback);\n });\n}\n\n// NOTE: This algorithm is indeterminate in nature because workers\n// run in parallel looking at different segments of numbers. Even if this\n// algorithm is run twice with the same input from a predictable RNG, it\n// may produce different outputs.\nfunction primeincFindPrimeWithWorkers(bits, rng, options, callback) {\n // web workers unavailable\n if(typeof Worker === 'undefined') {\n return primeincFindPrimeWithoutWorkers(bits, rng, options, callback);\n }\n\n // initialize random number\n var num = generateRandom(bits, rng);\n\n // use web workers to generate keys\n var numWorkers = options.workers;\n var workLoad = options.workLoad || 100;\n var range = workLoad * 30 / 8;\n var workerScript = options.workerScript || 'forge/prime.worker.js';\n if(numWorkers === -1) {\n return forge.util.estimateCores(function(err, cores) {\n if(err) {\n // default to 2\n cores = 2;\n }\n numWorkers = cores - 1;\n generate();\n });\n }\n generate();\n\n function generate() {\n // require at least 1 worker\n numWorkers = Math.max(1, numWorkers);\n\n // TODO: consider optimizing by starting workers outside getPrime() ...\n // note that in order to clean up they will have to be made internally\n // asynchronous which may actually be slower\n\n // start workers immediately\n var workers = [];\n for(var i = 0; i < numWorkers; ++i) {\n // FIXME: fix path or use blob URLs\n workers[i] = new Worker(workerScript);\n }\n var running = numWorkers;\n\n // listen for requests from workers and assign ranges to find prime\n for(var i = 0; i < numWorkers; ++i) {\n workers[i].addEventListener('message', workerMessage);\n }\n\n /* Note: The distribution of random numbers is unknown. Therefore, each\n web worker is continuously allocated a range of numbers to check for a\n random number until one is found.\n\n Every 30 numbers will be checked just 8 times, because prime numbers\n have the form:\n\n 30k+i, for i < 30 and gcd(30, i)=1 (there are 8 values of i for this)\n\n Therefore, if we want a web worker to run N checks before asking for\n a new range of numbers, each range must contain N*30/8 numbers.\n\n For 100 checks (workLoad), this is a range of 375. */\n\n var found = false;\n function workerMessage(e) {\n // ignore message, prime already found\n if(found) {\n return;\n }\n\n --running;\n var data = e.data;\n if(data.found) {\n // terminate all workers\n for(var i = 0; i < workers.length; ++i) {\n workers[i].terminate();\n }\n found = true;\n return callback(null, new BigInteger(data.prime, 16));\n }\n\n // overflow, regenerate random number\n if(num.bitLength() > bits) {\n num = generateRandom(bits, rng);\n }\n\n // assign new range to check\n var hex = num.toString(16);\n\n // start prime search\n e.target.postMessage({\n hex: hex,\n workLoad: workLoad\n });\n\n num.dAddOffset(range, 0);\n }\n }\n}\n\n/**\n * Generates a random number using the given number of bits and RNG.\n *\n * @param bits the number of bits for the number.\n * @param rng the random number generator to use.\n *\n * @return the random number.\n */\nfunction generateRandom(bits, rng) {\n var num = new BigInteger(bits, rng);\n // force MSB set\n var bits1 = bits - 1;\n if(!num.testBit(bits1)) {\n num.bitwiseTo(BigInteger.ONE.shiftLeft(bits1), op_or, num);\n }\n // align number on 30k+1 boundary\n num.dAddOffset(31 - num.mod(THIRTY).byteValue(), 0);\n return num;\n}\n\n/**\n * Returns the required number of Miller-Rabin tests to generate a\n * prime with an error probability of (1/2)^80.\n *\n * See Handbook of Applied Cryptography Chapter 4, Table 4.4.\n *\n * @param bits the bit size.\n *\n * @return the required number of iterations.\n */\nfunction getMillerRabinTests(bits) {\n if(bits <= 100) return 27;\n if(bits <= 150) return 18;\n if(bits <= 200) return 15;\n if(bits <= 250) return 12;\n if(bits <= 300) return 9;\n if(bits <= 350) return 8;\n if(bits <= 400) return 7;\n if(bits <= 500) return 6;\n if(bits <= 600) return 5;\n if(bits <= 800) return 4;\n if(bits <= 1250) return 3;\n return 2;\n}\n\n})();\n","/**\n * Javascript implementation of basic RSA algorithms.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2010-2014 Digital Bazaar, Inc.\n *\n * The only algorithm currently supported for PKI is RSA.\n *\n * An RSA key is often stored in ASN.1 DER format. The SubjectPublicKeyInfo\n * ASN.1 structure is composed of an algorithm of type AlgorithmIdentifier\n * and a subjectPublicKey of type bit string.\n *\n * The AlgorithmIdentifier contains an Object Identifier (OID) and parameters\n * for the algorithm, if any. In the case of RSA, there aren't any.\n *\n * SubjectPublicKeyInfo ::= SEQUENCE {\n * algorithm AlgorithmIdentifier,\n * subjectPublicKey BIT STRING\n * }\n *\n * AlgorithmIdentifer ::= SEQUENCE {\n * algorithm OBJECT IDENTIFIER,\n * parameters ANY DEFINED BY algorithm OPTIONAL\n * }\n *\n * For an RSA public key, the subjectPublicKey is:\n *\n * RSAPublicKey ::= SEQUENCE {\n * modulus INTEGER, -- n\n * publicExponent INTEGER -- e\n * }\n *\n * PrivateKeyInfo ::= SEQUENCE {\n * version Version,\n * privateKeyAlgorithm PrivateKeyAlgorithmIdentifier,\n * privateKey PrivateKey,\n * attributes [0] IMPLICIT Attributes OPTIONAL\n * }\n *\n * Version ::= INTEGER\n * PrivateKeyAlgorithmIdentifier ::= AlgorithmIdentifier\n * PrivateKey ::= OCTET STRING\n * Attributes ::= SET OF Attribute\n *\n * An RSA private key as the following structure:\n *\n * RSAPrivateKey ::= SEQUENCE {\n * version Version,\n * modulus INTEGER, -- n\n * publicExponent INTEGER, -- e\n * privateExponent INTEGER, -- d\n * prime1 INTEGER, -- p\n * prime2 INTEGER, -- q\n * exponent1 INTEGER, -- d mod (p-1)\n * exponent2 INTEGER, -- d mod (q-1)\n * coefficient INTEGER -- (inverse of q) mod p\n * }\n *\n * Version ::= INTEGER\n *\n * The OID for the RSA key algorithm is: 1.2.840.113549.1.1.1\n */\nvar forge = require('./forge');\nrequire('./asn1');\nrequire('./jsbn');\nrequire('./oids');\nrequire('./pkcs1');\nrequire('./prime');\nrequire('./random');\nrequire('./util');\n\nif(typeof BigInteger === 'undefined') {\n var BigInteger = forge.jsbn.BigInteger;\n}\n\nvar _crypto = forge.util.isNodejs ? require('crypto') : null;\n\n// shortcut for asn.1 API\nvar asn1 = forge.asn1;\n\n// shortcut for util API\nvar util = forge.util;\n\n/*\n * RSA encryption and decryption, see RFC 2313.\n */\nforge.pki = forge.pki || {};\nmodule.exports = forge.pki.rsa = forge.rsa = forge.rsa || {};\nvar pki = forge.pki;\n\n// for finding primes, which are 30k+i for i = 1, 7, 11, 13, 17, 19, 23, 29\nvar GCD_30_DELTA = [6, 4, 2, 4, 2, 4, 6, 2];\n\n// validator for a PrivateKeyInfo structure\nvar privateKeyValidator = {\n // PrivateKeyInfo\n name: 'PrivateKeyInfo',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n // Version (INTEGER)\n name: 'PrivateKeyInfo.version',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'privateKeyVersion'\n }, {\n // privateKeyAlgorithm\n name: 'PrivateKeyInfo.privateKeyAlgorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'AlgorithmIdentifier.algorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'privateKeyOid'\n }]\n }, {\n // PrivateKey\n name: 'PrivateKeyInfo',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OCTETSTRING,\n constructed: false,\n capture: 'privateKey'\n }]\n};\n\n// validator for an RSA private key\nvar rsaPrivateKeyValidator = {\n // RSAPrivateKey\n name: 'RSAPrivateKey',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n // Version (INTEGER)\n name: 'RSAPrivateKey.version',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'privateKeyVersion'\n }, {\n // modulus (n)\n name: 'RSAPrivateKey.modulus',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'privateKeyModulus'\n }, {\n // publicExponent (e)\n name: 'RSAPrivateKey.publicExponent',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'privateKeyPublicExponent'\n }, {\n // privateExponent (d)\n name: 'RSAPrivateKey.privateExponent',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'privateKeyPrivateExponent'\n }, {\n // prime1 (p)\n name: 'RSAPrivateKey.prime1',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'privateKeyPrime1'\n }, {\n // prime2 (q)\n name: 'RSAPrivateKey.prime2',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'privateKeyPrime2'\n }, {\n // exponent1 (d mod (p-1))\n name: 'RSAPrivateKey.exponent1',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'privateKeyExponent1'\n }, {\n // exponent2 (d mod (q-1))\n name: 'RSAPrivateKey.exponent2',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'privateKeyExponent2'\n }, {\n // coefficient ((inverse of q) mod p)\n name: 'RSAPrivateKey.coefficient',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'privateKeyCoefficient'\n }]\n};\n\n// validator for an RSA public key\nvar rsaPublicKeyValidator = {\n // RSAPublicKey\n name: 'RSAPublicKey',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n // modulus (n)\n name: 'RSAPublicKey.modulus',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'publicKeyModulus'\n }, {\n // publicExponent (e)\n name: 'RSAPublicKey.exponent',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'publicKeyExponent'\n }]\n};\n\n// validator for an SubjectPublicKeyInfo structure\n// Note: Currently only works with an RSA public key\nvar publicKeyValidator = forge.pki.rsa.publicKeyValidator = {\n name: 'SubjectPublicKeyInfo',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n captureAsn1: 'subjectPublicKeyInfo',\n value: [{\n name: 'SubjectPublicKeyInfo.AlgorithmIdentifier',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'AlgorithmIdentifier.algorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'publicKeyOid'\n }]\n }, {\n // subjectPublicKey\n name: 'SubjectPublicKeyInfo.subjectPublicKey',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.BITSTRING,\n constructed: false,\n value: [{\n // RSAPublicKey\n name: 'SubjectPublicKeyInfo.subjectPublicKey.RSAPublicKey',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n optional: true,\n captureAsn1: 'rsaPublicKey'\n }]\n }]\n};\n\n// validator for a DigestInfo structure\nvar digestInfoValidator = {\n name: 'DigestInfo',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'DigestInfo.DigestAlgorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'DigestInfo.DigestAlgorithm.algorithmIdentifier',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'algorithmIdentifier'\n }, {\n // NULL paramters\n name: 'DigestInfo.DigestAlgorithm.parameters',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.NULL,\n // captured only to check existence for md2 and md5\n capture: 'parameters',\n optional: true,\n constructed: false\n }]\n }, {\n // digest\n name: 'DigestInfo.digest',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OCTETSTRING,\n constructed: false,\n capture: 'digest'\n }]\n};\n\n/**\n * Wrap digest in DigestInfo object.\n *\n * This function implements EMSA-PKCS1-v1_5-ENCODE as per RFC 3447.\n *\n * DigestInfo ::= SEQUENCE {\n * digestAlgorithm DigestAlgorithmIdentifier,\n * digest Digest\n * }\n *\n * DigestAlgorithmIdentifier ::= AlgorithmIdentifier\n * Digest ::= OCTET STRING\n *\n * @param md the message digest object with the hash to sign.\n *\n * @return the encoded message (ready for RSA encrytion)\n */\nvar emsaPkcs1v15encode = function(md) {\n // get the oid for the algorithm\n var oid;\n if(md.algorithm in pki.oids) {\n oid = pki.oids[md.algorithm];\n } else {\n var error = new Error('Unknown message digest algorithm.');\n error.algorithm = md.algorithm;\n throw error;\n }\n var oidBytes = asn1.oidToDer(oid).getBytes();\n\n // create the digest info\n var digestInfo = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []);\n var digestAlgorithm = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []);\n digestAlgorithm.value.push(asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OID, false, oidBytes));\n digestAlgorithm.value.push(asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.NULL, false, ''));\n var digest = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING,\n false, md.digest().getBytes());\n digestInfo.value.push(digestAlgorithm);\n digestInfo.value.push(digest);\n\n // encode digest info\n return asn1.toDer(digestInfo).getBytes();\n};\n\n/**\n * Performs x^c mod n (RSA encryption or decryption operation).\n *\n * @param x the number to raise and mod.\n * @param key the key to use.\n * @param pub true if the key is public, false if private.\n *\n * @return the result of x^c mod n.\n */\nvar _modPow = function(x, key, pub) {\n if(pub) {\n return x.modPow(key.e, key.n);\n }\n\n if(!key.p || !key.q) {\n // allow calculation without CRT params (slow)\n return x.modPow(key.d, key.n);\n }\n\n // pre-compute dP, dQ, and qInv if necessary\n if(!key.dP) {\n key.dP = key.d.mod(key.p.subtract(BigInteger.ONE));\n }\n if(!key.dQ) {\n key.dQ = key.d.mod(key.q.subtract(BigInteger.ONE));\n }\n if(!key.qInv) {\n key.qInv = key.q.modInverse(key.p);\n }\n\n /* Chinese remainder theorem (CRT) states:\n\n Suppose n1, n2, ..., nk are positive integers which are pairwise\n coprime (n1 and n2 have no common factors other than 1). For any\n integers x1, x2, ..., xk there exists an integer x solving the\n system of simultaneous congruences (where ~= means modularly\n congruent so a ~= b mod n means a mod n = b mod n):\n\n x ~= x1 mod n1\n x ~= x2 mod n2\n ...\n x ~= xk mod nk\n\n This system of congruences has a single simultaneous solution x\n between 0 and n - 1. Furthermore, each xk solution and x itself\n is congruent modulo the product n = n1*n2*...*nk.\n So x1 mod n = x2 mod n = xk mod n = x mod n.\n\n The single simultaneous solution x can be solved with the following\n equation:\n\n x = sum(xi*ri*si) mod n where ri = n/ni and si = ri^-1 mod ni.\n\n Where x is less than n, xi = x mod ni.\n\n For RSA we are only concerned with k = 2. The modulus n = pq, where\n p and q are coprime. The RSA decryption algorithm is:\n\n y = x^d mod n\n\n Given the above:\n\n x1 = x^d mod p\n r1 = n/p = q\n s1 = q^-1 mod p\n x2 = x^d mod q\n r2 = n/q = p\n s2 = p^-1 mod q\n\n So y = (x1r1s1 + x2r2s2) mod n\n = ((x^d mod p)q(q^-1 mod p) + (x^d mod q)p(p^-1 mod q)) mod n\n\n According to Fermat's Little Theorem, if the modulus P is prime,\n for any integer A not evenly divisible by P, A^(P-1) ~= 1 mod P.\n Since A is not divisible by P it follows that if:\n N ~= M mod (P - 1), then A^N mod P = A^M mod P. Therefore:\n\n A^N mod P = A^(M mod (P - 1)) mod P. (The latter takes less effort\n to calculate). In order to calculate x^d mod p more quickly the\n exponent d mod (p - 1) is stored in the RSA private key (the same\n is done for x^d mod q). These values are referred to as dP and dQ\n respectively. Therefore we now have:\n\n y = ((x^dP mod p)q(q^-1 mod p) + (x^dQ mod q)p(p^-1 mod q)) mod n\n\n Since we'll be reducing x^dP by modulo p (same for q) we can also\n reduce x by p (and q respectively) before hand. Therefore, let\n\n xp = ((x mod p)^dP mod p), and\n xq = ((x mod q)^dQ mod q), yielding:\n\n y = (xp*q*(q^-1 mod p) + xq*p*(p^-1 mod q)) mod n\n\n This can be further reduced to a simple algorithm that only\n requires 1 inverse (the q inverse is used) to be used and stored.\n The algorithm is called Garner's algorithm. If qInv is the\n inverse of q, we simply calculate:\n\n y = (qInv*(xp - xq) mod p) * q + xq\n\n However, there are two further complications. First, we need to\n ensure that xp > xq to prevent signed BigIntegers from being used\n so we add p until this is true (since we will be mod'ing with\n p anyway). Then, there is a known timing attack on algorithms\n using the CRT. To mitigate this risk, \"cryptographic blinding\"\n should be used. This requires simply generating a random number r\n between 0 and n-1 and its inverse and multiplying x by r^e before\n calculating y and then multiplying y by r^-1 afterwards. Note that\n r must be coprime with n (gcd(r, n) === 1) in order to have an\n inverse.\n */\n\n // cryptographic blinding\n var r;\n do {\n r = new BigInteger(\n forge.util.bytesToHex(forge.random.getBytes(key.n.bitLength() / 8)),\n 16);\n } while(r.compareTo(key.n) >= 0 || !r.gcd(key.n).equals(BigInteger.ONE));\n x = x.multiply(r.modPow(key.e, key.n)).mod(key.n);\n\n // calculate xp and xq\n var xp = x.mod(key.p).modPow(key.dP, key.p);\n var xq = x.mod(key.q).modPow(key.dQ, key.q);\n\n // xp must be larger than xq to avoid signed bit usage\n while(xp.compareTo(xq) < 0) {\n xp = xp.add(key.p);\n }\n\n // do last step\n var y = xp.subtract(xq)\n .multiply(key.qInv).mod(key.p)\n .multiply(key.q).add(xq);\n\n // remove effect of random for cryptographic blinding\n y = y.multiply(r.modInverse(key.n)).mod(key.n);\n\n return y;\n};\n\n/**\n * NOTE: THIS METHOD IS DEPRECATED, use 'sign' on a private key object or\n * 'encrypt' on a public key object instead.\n *\n * Performs RSA encryption.\n *\n * The parameter bt controls whether to put padding bytes before the\n * message passed in. Set bt to either true or false to disable padding\n * completely (in order to handle e.g. EMSA-PSS encoding seperately before),\n * signaling whether the encryption operation is a public key operation\n * (i.e. encrypting data) or not, i.e. private key operation (data signing).\n *\n * For PKCS#1 v1.5 padding pass in the block type to use, i.e. either 0x01\n * (for signing) or 0x02 (for encryption). The key operation mode (private\n * or public) is derived from this flag in that case).\n *\n * @param m the message to encrypt as a byte string.\n * @param key the RSA key to use.\n * @param bt for PKCS#1 v1.5 padding, the block type to use\n * (0x01 for private key, 0x02 for public),\n * to disable padding: true = public key, false = private key.\n *\n * @return the encrypted bytes as a string.\n */\npki.rsa.encrypt = function(m, key, bt) {\n var pub = bt;\n var eb;\n\n // get the length of the modulus in bytes\n var k = Math.ceil(key.n.bitLength() / 8);\n\n if(bt !== false && bt !== true) {\n // legacy, default to PKCS#1 v1.5 padding\n pub = (bt === 0x02);\n eb = _encodePkcs1_v1_5(m, key, bt);\n } else {\n eb = forge.util.createBuffer();\n eb.putBytes(m);\n }\n\n // load encryption block as big integer 'x'\n // FIXME: hex conversion inefficient, get BigInteger w/byte strings\n var x = new BigInteger(eb.toHex(), 16);\n\n // do RSA encryption\n var y = _modPow(x, key, pub);\n\n // convert y into the encrypted data byte string, if y is shorter in\n // bytes than k, then prepend zero bytes to fill up ed\n // FIXME: hex conversion inefficient, get BigInteger w/byte strings\n var yhex = y.toString(16);\n var ed = forge.util.createBuffer();\n var zeros = k - Math.ceil(yhex.length / 2);\n while(zeros > 0) {\n ed.putByte(0x00);\n --zeros;\n }\n ed.putBytes(forge.util.hexToBytes(yhex));\n return ed.getBytes();\n};\n\n/**\n * NOTE: THIS METHOD IS DEPRECATED, use 'decrypt' on a private key object or\n * 'verify' on a public key object instead.\n *\n * Performs RSA decryption.\n *\n * The parameter ml controls whether to apply PKCS#1 v1.5 padding\n * or not. Set ml = false to disable padding removal completely\n * (in order to handle e.g. EMSA-PSS later on) and simply pass back\n * the RSA encryption block.\n *\n * @param ed the encrypted data to decrypt in as a byte string.\n * @param key the RSA key to use.\n * @param pub true for a public key operation, false for private.\n * @param ml the message length, if known, false to disable padding.\n *\n * @return the decrypted message as a byte string.\n */\npki.rsa.decrypt = function(ed, key, pub, ml) {\n // get the length of the modulus in bytes\n var k = Math.ceil(key.n.bitLength() / 8);\n\n // error if the length of the encrypted data ED is not k\n if(ed.length !== k) {\n var error = new Error('Encrypted message length is invalid.');\n error.length = ed.length;\n error.expected = k;\n throw error;\n }\n\n // convert encrypted data into a big integer\n // FIXME: hex conversion inefficient, get BigInteger w/byte strings\n var y = new BigInteger(forge.util.createBuffer(ed).toHex(), 16);\n\n // y must be less than the modulus or it wasn't the result of\n // a previous mod operation (encryption) using that modulus\n if(y.compareTo(key.n) >= 0) {\n throw new Error('Encrypted message is invalid.');\n }\n\n // do RSA decryption\n var x = _modPow(y, key, pub);\n\n // create the encryption block, if x is shorter in bytes than k, then\n // prepend zero bytes to fill up eb\n // FIXME: hex conversion inefficient, get BigInteger w/byte strings\n var xhex = x.toString(16);\n var eb = forge.util.createBuffer();\n var zeros = k - Math.ceil(xhex.length / 2);\n while(zeros > 0) {\n eb.putByte(0x00);\n --zeros;\n }\n eb.putBytes(forge.util.hexToBytes(xhex));\n\n if(ml !== false) {\n // legacy, default to PKCS#1 v1.5 padding\n return _decodePkcs1_v1_5(eb.getBytes(), key, pub);\n }\n\n // return message\n return eb.getBytes();\n};\n\n/**\n * Creates an RSA key-pair generation state object. It is used to allow\n * key-generation to be performed in steps. It also allows for a UI to\n * display progress updates.\n *\n * @param bits the size for the private key in bits, defaults to 2048.\n * @param e the public exponent to use, defaults to 65537 (0x10001).\n * @param [options] the options to use.\n * prng a custom crypto-secure pseudo-random number generator to use,\n * that must define \"getBytesSync\".\n * algorithm the algorithm to use (default: 'PRIMEINC').\n *\n * @return the state object to use to generate the key-pair.\n */\npki.rsa.createKeyPairGenerationState = function(bits, e, options) {\n // TODO: migrate step-based prime generation code to forge.prime\n\n // set default bits\n if(typeof(bits) === 'string') {\n bits = parseInt(bits, 10);\n }\n bits = bits || 2048;\n\n // create prng with api that matches BigInteger secure random\n options = options || {};\n var prng = options.prng || forge.random;\n var rng = {\n // x is an array to fill with bytes\n nextBytes: function(x) {\n var b = prng.getBytesSync(x.length);\n for(var i = 0; i < x.length; ++i) {\n x[i] = b.charCodeAt(i);\n }\n }\n };\n\n var algorithm = options.algorithm || 'PRIMEINC';\n\n // create PRIMEINC algorithm state\n var rval;\n if(algorithm === 'PRIMEINC') {\n rval = {\n algorithm: algorithm,\n state: 0,\n bits: bits,\n rng: rng,\n eInt: e || 65537,\n e: new BigInteger(null),\n p: null,\n q: null,\n qBits: bits >> 1,\n pBits: bits - (bits >> 1),\n pqState: 0,\n num: null,\n keys: null\n };\n rval.e.fromInt(rval.eInt);\n } else {\n throw new Error('Invalid key generation algorithm: ' + algorithm);\n }\n\n return rval;\n};\n\n/**\n * Attempts to runs the key-generation algorithm for at most n seconds\n * (approximately) using the given state. When key-generation has completed,\n * the keys will be stored in state.keys.\n *\n * To use this function to update a UI while generating a key or to prevent\n * causing browser lockups/warnings, set \"n\" to a value other than 0. A\n * simple pattern for generating a key and showing a progress indicator is:\n *\n * var state = pki.rsa.createKeyPairGenerationState(2048);\n * var step = function() {\n * // step key-generation, run algorithm for 100 ms, repeat\n * if(!forge.pki.rsa.stepKeyPairGenerationState(state, 100)) {\n * setTimeout(step, 1);\n * } else {\n * // key-generation complete\n * // TODO: turn off progress indicator here\n * // TODO: use the generated key-pair in \"state.keys\"\n * }\n * };\n * // TODO: turn on progress indicator here\n * setTimeout(step, 0);\n *\n * @param state the state to use.\n * @param n the maximum number of milliseconds to run the algorithm for, 0\n * to run the algorithm to completion.\n *\n * @return true if the key-generation completed, false if not.\n */\npki.rsa.stepKeyPairGenerationState = function(state, n) {\n // set default algorithm if not set\n if(!('algorithm' in state)) {\n state.algorithm = 'PRIMEINC';\n }\n\n // TODO: migrate step-based prime generation code to forge.prime\n // TODO: abstract as PRIMEINC algorithm\n\n // do key generation (based on Tom Wu's rsa.js, see jsbn.js license)\n // with some minor optimizations and designed to run in steps\n\n // local state vars\n var THIRTY = new BigInteger(null);\n THIRTY.fromInt(30);\n var deltaIdx = 0;\n var op_or = function(x, y) {return x | y;};\n\n // keep stepping until time limit is reached or done\n var t1 = +new Date();\n var t2;\n var total = 0;\n while(state.keys === null && (n <= 0 || total < n)) {\n // generate p or q\n if(state.state === 0) {\n /* Note: All primes are of the form:\n\n 30k+i, for i < 30 and gcd(30, i)=1, where there are 8 values for i\n\n When we generate a random number, we always align it at 30k + 1. Each\n time the number is determined not to be prime we add to get to the\n next 'i', eg: if the number was at 30k + 1 we add 6. */\n var bits = (state.p === null) ? state.pBits : state.qBits;\n var bits1 = bits - 1;\n\n // get a random number\n if(state.pqState === 0) {\n state.num = new BigInteger(bits, state.rng);\n // force MSB set\n if(!state.num.testBit(bits1)) {\n state.num.bitwiseTo(\n BigInteger.ONE.shiftLeft(bits1), op_or, state.num);\n }\n // align number on 30k+1 boundary\n state.num.dAddOffset(31 - state.num.mod(THIRTY).byteValue(), 0);\n deltaIdx = 0;\n\n ++state.pqState;\n } else if(state.pqState === 1) {\n // try to make the number a prime\n if(state.num.bitLength() > bits) {\n // overflow, try again\n state.pqState = 0;\n // do primality test\n } else if(state.num.isProbablePrime(\n _getMillerRabinTests(state.num.bitLength()))) {\n ++state.pqState;\n } else {\n // get next potential prime\n state.num.dAddOffset(GCD_30_DELTA[deltaIdx++ % 8], 0);\n }\n } else if(state.pqState === 2) {\n // ensure number is coprime with e\n state.pqState =\n (state.num.subtract(BigInteger.ONE).gcd(state.e)\n .compareTo(BigInteger.ONE) === 0) ? 3 : 0;\n } else if(state.pqState === 3) {\n // store p or q\n state.pqState = 0;\n if(state.p === null) {\n state.p = state.num;\n } else {\n state.q = state.num;\n }\n\n // advance state if both p and q are ready\n if(state.p !== null && state.q !== null) {\n ++state.state;\n }\n state.num = null;\n }\n } else if(state.state === 1) {\n // ensure p is larger than q (swap them if not)\n if(state.p.compareTo(state.q) < 0) {\n state.num = state.p;\n state.p = state.q;\n state.q = state.num;\n }\n ++state.state;\n } else if(state.state === 2) {\n // compute phi: (p - 1)(q - 1) (Euler's totient function)\n state.p1 = state.p.subtract(BigInteger.ONE);\n state.q1 = state.q.subtract(BigInteger.ONE);\n state.phi = state.p1.multiply(state.q1);\n ++state.state;\n } else if(state.state === 3) {\n // ensure e and phi are coprime\n if(state.phi.gcd(state.e).compareTo(BigInteger.ONE) === 0) {\n // phi and e are coprime, advance\n ++state.state;\n } else {\n // phi and e aren't coprime, so generate a new p and q\n state.p = null;\n state.q = null;\n state.state = 0;\n }\n } else if(state.state === 4) {\n // create n, ensure n is has the right number of bits\n state.n = state.p.multiply(state.q);\n\n // ensure n is right number of bits\n if(state.n.bitLength() === state.bits) {\n // success, advance\n ++state.state;\n } else {\n // failed, get new q\n state.q = null;\n state.state = 0;\n }\n } else if(state.state === 5) {\n // set keys\n var d = state.e.modInverse(state.phi);\n state.keys = {\n privateKey: pki.rsa.setPrivateKey(\n state.n, state.e, d, state.p, state.q,\n d.mod(state.p1), d.mod(state.q1),\n state.q.modInverse(state.p)),\n publicKey: pki.rsa.setPublicKey(state.n, state.e)\n };\n }\n\n // update timing\n t2 = +new Date();\n total += t2 - t1;\n t1 = t2;\n }\n\n return state.keys !== null;\n};\n\n/**\n * Generates an RSA public-private key pair in a single call.\n *\n * To generate a key-pair in steps (to allow for progress updates and to\n * prevent blocking or warnings in slow browsers) then use the key-pair\n * generation state functions.\n *\n * To generate a key-pair asynchronously (either through web-workers, if\n * available, or by breaking up the work on the main thread), pass a\n * callback function.\n *\n * @param [bits] the size for the private key in bits, defaults to 2048.\n * @param [e] the public exponent to use, defaults to 65537.\n * @param [options] options for key-pair generation, if given then 'bits'\n * and 'e' must *not* be given:\n * bits the size for the private key in bits, (default: 2048).\n * e the public exponent to use, (default: 65537 (0x10001)).\n * workerScript the worker script URL.\n * workers the number of web workers (if supported) to use,\n * (default: 2).\n * workLoad the size of the work load, ie: number of possible prime\n * numbers for each web worker to check per work assignment,\n * (default: 100).\n * prng a custom crypto-secure pseudo-random number generator to use,\n * that must define \"getBytesSync\". Disables use of native APIs.\n * algorithm the algorithm to use (default: 'PRIMEINC').\n * @param [callback(err, keypair)] called once the operation completes.\n *\n * @return an object with privateKey and publicKey properties.\n */\npki.rsa.generateKeyPair = function(bits, e, options, callback) {\n // (bits), (options), (callback)\n if(arguments.length === 1) {\n if(typeof bits === 'object') {\n options = bits;\n bits = undefined;\n } else if(typeof bits === 'function') {\n callback = bits;\n bits = undefined;\n }\n } else if(arguments.length === 2) {\n // (bits, e), (bits, options), (bits, callback), (options, callback)\n if(typeof bits === 'number') {\n if(typeof e === 'function') {\n callback = e;\n e = undefined;\n } else if(typeof e !== 'number') {\n options = e;\n e = undefined;\n }\n } else {\n options = bits;\n callback = e;\n bits = undefined;\n e = undefined;\n }\n } else if(arguments.length === 3) {\n // (bits, e, options), (bits, e, callback), (bits, options, callback)\n if(typeof e === 'number') {\n if(typeof options === 'function') {\n callback = options;\n options = undefined;\n }\n } else {\n callback = options;\n options = e;\n e = undefined;\n }\n }\n options = options || {};\n if(bits === undefined) {\n bits = options.bits || 2048;\n }\n if(e === undefined) {\n e = options.e || 0x10001;\n }\n\n // use native code if permitted, available, and parameters are acceptable\n if(!forge.options.usePureJavaScript && !options.prng &&\n bits >= 256 && bits <= 16384 && (e === 0x10001 || e === 3)) {\n if(callback) {\n // try native async\n if(_detectNodeCrypto('generateKeyPair')) {\n return _crypto.generateKeyPair('rsa', {\n modulusLength: bits,\n publicExponent: e,\n publicKeyEncoding: {\n type: 'spki',\n format: 'pem'\n },\n privateKeyEncoding: {\n type: 'pkcs8',\n format: 'pem'\n }\n }, function(err, pub, priv) {\n if(err) {\n return callback(err);\n }\n callback(null, {\n privateKey: pki.privateKeyFromPem(priv),\n publicKey: pki.publicKeyFromPem(pub)\n });\n });\n }\n if(_detectSubtleCrypto('generateKey') &&\n _detectSubtleCrypto('exportKey')) {\n // use standard native generateKey\n return util.globalScope.crypto.subtle.generateKey({\n name: 'RSASSA-PKCS1-v1_5',\n modulusLength: bits,\n publicExponent: _intToUint8Array(e),\n hash: {name: 'SHA-256'}\n }, true /* key can be exported*/, ['sign', 'verify'])\n .then(function(pair) {\n return util.globalScope.crypto.subtle.exportKey(\n 'pkcs8', pair.privateKey);\n // avoiding catch(function(err) {...}) to support IE <= 8\n }).then(undefined, function(err) {\n callback(err);\n }).then(function(pkcs8) {\n if(pkcs8) {\n var privateKey = pki.privateKeyFromAsn1(\n asn1.fromDer(forge.util.createBuffer(pkcs8)));\n callback(null, {\n privateKey: privateKey,\n publicKey: pki.setRsaPublicKey(privateKey.n, privateKey.e)\n });\n }\n });\n }\n if(_detectSubtleMsCrypto('generateKey') &&\n _detectSubtleMsCrypto('exportKey')) {\n var genOp = util.globalScope.msCrypto.subtle.generateKey({\n name: 'RSASSA-PKCS1-v1_5',\n modulusLength: bits,\n publicExponent: _intToUint8Array(e),\n hash: {name: 'SHA-256'}\n }, true /* key can be exported*/, ['sign', 'verify']);\n genOp.oncomplete = function(e) {\n var pair = e.target.result;\n var exportOp = util.globalScope.msCrypto.subtle.exportKey(\n 'pkcs8', pair.privateKey);\n exportOp.oncomplete = function(e) {\n var pkcs8 = e.target.result;\n var privateKey = pki.privateKeyFromAsn1(\n asn1.fromDer(forge.util.createBuffer(pkcs8)));\n callback(null, {\n privateKey: privateKey,\n publicKey: pki.setRsaPublicKey(privateKey.n, privateKey.e)\n });\n };\n exportOp.onerror = function(err) {\n callback(err);\n };\n };\n genOp.onerror = function(err) {\n callback(err);\n };\n return;\n }\n } else {\n // try native sync\n if(_detectNodeCrypto('generateKeyPairSync')) {\n var keypair = _crypto.generateKeyPairSync('rsa', {\n modulusLength: bits,\n publicExponent: e,\n publicKeyEncoding: {\n type: 'spki',\n format: 'pem'\n },\n privateKeyEncoding: {\n type: 'pkcs8',\n format: 'pem'\n }\n });\n return {\n privateKey: pki.privateKeyFromPem(keypair.privateKey),\n publicKey: pki.publicKeyFromPem(keypair.publicKey)\n };\n }\n }\n }\n\n // use JavaScript implementation\n var state = pki.rsa.createKeyPairGenerationState(bits, e, options);\n if(!callback) {\n pki.rsa.stepKeyPairGenerationState(state, 0);\n return state.keys;\n }\n _generateKeyPair(state, options, callback);\n};\n\n/**\n * Sets an RSA public key from BigIntegers modulus and exponent.\n *\n * @param n the modulus.\n * @param e the exponent.\n *\n * @return the public key.\n */\npki.setRsaPublicKey = pki.rsa.setPublicKey = function(n, e) {\n var key = {\n n: n,\n e: e\n };\n\n /**\n * Encrypts the given data with this public key. Newer applications\n * should use the 'RSA-OAEP' decryption scheme, 'RSAES-PKCS1-V1_5' is for\n * legacy applications.\n *\n * @param data the byte string to encrypt.\n * @param scheme the encryption scheme to use:\n * 'RSAES-PKCS1-V1_5' (default),\n * 'RSA-OAEP',\n * 'RAW', 'NONE', or null to perform raw RSA encryption,\n * an object with an 'encode' property set to a function\n * with the signature 'function(data, key)' that returns\n * a binary-encoded string representing the encoded data.\n * @param schemeOptions any scheme-specific options.\n *\n * @return the encrypted byte string.\n */\n key.encrypt = function(data, scheme, schemeOptions) {\n if(typeof scheme === 'string') {\n scheme = scheme.toUpperCase();\n } else if(scheme === undefined) {\n scheme = 'RSAES-PKCS1-V1_5';\n }\n\n if(scheme === 'RSAES-PKCS1-V1_5') {\n scheme = {\n encode: function(m, key, pub) {\n return _encodePkcs1_v1_5(m, key, 0x02).getBytes();\n }\n };\n } else if(scheme === 'RSA-OAEP' || scheme === 'RSAES-OAEP') {\n scheme = {\n encode: function(m, key) {\n return forge.pkcs1.encode_rsa_oaep(key, m, schemeOptions);\n }\n };\n } else if(['RAW', 'NONE', 'NULL', null].indexOf(scheme) !== -1) {\n scheme = {encode: function(e) {return e;}};\n } else if(typeof scheme === 'string') {\n throw new Error('Unsupported encryption scheme: \"' + scheme + '\".');\n }\n\n // do scheme-based encoding then rsa encryption\n var e = scheme.encode(data, key, true);\n return pki.rsa.encrypt(e, key, true);\n };\n\n /**\n * Verifies the given signature against the given digest.\n *\n * PKCS#1 supports multiple (currently two) signature schemes:\n * RSASSA-PKCS1-V1_5 and RSASSA-PSS.\n *\n * By default this implementation uses the \"old scheme\", i.e.\n * RSASSA-PKCS1-V1_5, in which case once RSA-decrypted, the\n * signature is an OCTET STRING that holds a DigestInfo.\n *\n * DigestInfo ::= SEQUENCE {\n * digestAlgorithm DigestAlgorithmIdentifier,\n * digest Digest\n * }\n * DigestAlgorithmIdentifier ::= AlgorithmIdentifier\n * Digest ::= OCTET STRING\n *\n * To perform PSS signature verification, provide an instance\n * of Forge PSS object as the scheme parameter.\n *\n * @param digest the message digest hash to compare against the signature,\n * as a binary-encoded string.\n * @param signature the signature to verify, as a binary-encoded string.\n * @param scheme signature verification scheme to use:\n * 'RSASSA-PKCS1-V1_5' or undefined for RSASSA PKCS#1 v1.5,\n * a Forge PSS object for RSASSA-PSS,\n * 'NONE' or null for none, DigestInfo will not be expected, but\n * PKCS#1 v1.5 padding will still be used.\n * @param options optional verify options\n * _parseAllDigestBytes testing flag to control parsing of all\n * digest bytes. Unsupported and not for general usage.\n * (default: true)\n *\n * @return true if the signature was verified, false if not.\n */\n key.verify = function(digest, signature, scheme, options) {\n if(typeof scheme === 'string') {\n scheme = scheme.toUpperCase();\n } else if(scheme === undefined) {\n scheme = 'RSASSA-PKCS1-V1_5';\n }\n if(options === undefined) {\n options = {\n _parseAllDigestBytes: true\n };\n }\n if(!('_parseAllDigestBytes' in options)) {\n options._parseAllDigestBytes = true;\n }\n\n if(scheme === 'RSASSA-PKCS1-V1_5') {\n scheme = {\n verify: function(digest, d) {\n // remove padding\n d = _decodePkcs1_v1_5(d, key, true);\n // d is ASN.1 BER-encoded DigestInfo\n var obj = asn1.fromDer(d, {\n parseAllBytes: options._parseAllDigestBytes\n });\n\n // validate DigestInfo\n var capture = {};\n var errors = [];\n if(!asn1.validate(obj, digestInfoValidator, capture, errors)) {\n var error = new Error(\n 'ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 ' +\n 'DigestInfo value.');\n error.errors = errors;\n throw error;\n }\n // check hash algorithm identifier\n // see PKCS1-v1-5DigestAlgorithms in RFC 8017\n // FIXME: add support to vaidator for strict value choices\n var oid = asn1.derToOid(capture.algorithmIdentifier);\n if(!(oid === forge.oids.md2 ||\n oid === forge.oids.md5 ||\n oid === forge.oids.sha1 ||\n oid === forge.oids.sha224 ||\n oid === forge.oids.sha256 ||\n oid === forge.oids.sha384 ||\n oid === forge.oids.sha512 ||\n oid === forge.oids['sha512-224'] ||\n oid === forge.oids['sha512-256'])) {\n var error = new Error(\n 'Unknown RSASSA-PKCS1-v1_5 DigestAlgorithm identifier.');\n error.oid = oid;\n throw error;\n }\n\n // special check for md2 and md5 that NULL parameters exist\n if(oid === forge.oids.md2 || oid === forge.oids.md5) {\n if(!('parameters' in capture)) {\n throw new Error(\n 'ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 ' +\n 'DigestInfo value. ' +\n 'Missing algorithm identifer NULL parameters.');\n }\n }\n\n // compare the given digest to the decrypted one\n return digest === capture.digest;\n }\n };\n } else if(scheme === 'NONE' || scheme === 'NULL' || scheme === null) {\n scheme = {\n verify: function(digest, d) {\n // remove padding\n d = _decodePkcs1_v1_5(d, key, true);\n return digest === d;\n }\n };\n }\n\n // do rsa decryption w/o any decoding, then verify -- which does decoding\n var d = pki.rsa.decrypt(signature, key, true, false);\n return scheme.verify(digest, d, key.n.bitLength());\n };\n\n return key;\n};\n\n/**\n * Sets an RSA private key from BigIntegers modulus, exponent, primes,\n * prime exponents, and modular multiplicative inverse.\n *\n * @param n the modulus.\n * @param e the public exponent.\n * @param d the private exponent ((inverse of e) mod n).\n * @param p the first prime.\n * @param q the second prime.\n * @param dP exponent1 (d mod (p-1)).\n * @param dQ exponent2 (d mod (q-1)).\n * @param qInv ((inverse of q) mod p)\n *\n * @return the private key.\n */\npki.setRsaPrivateKey = pki.rsa.setPrivateKey = function(\n n, e, d, p, q, dP, dQ, qInv) {\n var key = {\n n: n,\n e: e,\n d: d,\n p: p,\n q: q,\n dP: dP,\n dQ: dQ,\n qInv: qInv\n };\n\n /**\n * Decrypts the given data with this private key. The decryption scheme\n * must match the one used to encrypt the data.\n *\n * @param data the byte string to decrypt.\n * @param scheme the decryption scheme to use:\n * 'RSAES-PKCS1-V1_5' (default),\n * 'RSA-OAEP',\n * 'RAW', 'NONE', or null to perform raw RSA decryption.\n * @param schemeOptions any scheme-specific options.\n *\n * @return the decrypted byte string.\n */\n key.decrypt = function(data, scheme, schemeOptions) {\n if(typeof scheme === 'string') {\n scheme = scheme.toUpperCase();\n } else if(scheme === undefined) {\n scheme = 'RSAES-PKCS1-V1_5';\n }\n\n // do rsa decryption w/o any decoding\n var d = pki.rsa.decrypt(data, key, false, false);\n\n if(scheme === 'RSAES-PKCS1-V1_5') {\n scheme = {decode: _decodePkcs1_v1_5};\n } else if(scheme === 'RSA-OAEP' || scheme === 'RSAES-OAEP') {\n scheme = {\n decode: function(d, key) {\n return forge.pkcs1.decode_rsa_oaep(key, d, schemeOptions);\n }\n };\n } else if(['RAW', 'NONE', 'NULL', null].indexOf(scheme) !== -1) {\n scheme = {decode: function(d) {return d;}};\n } else {\n throw new Error('Unsupported encryption scheme: \"' + scheme + '\".');\n }\n\n // decode according to scheme\n return scheme.decode(d, key, false);\n };\n\n /**\n * Signs the given digest, producing a signature.\n *\n * PKCS#1 supports multiple (currently two) signature schemes:\n * RSASSA-PKCS1-V1_5 and RSASSA-PSS.\n *\n * By default this implementation uses the \"old scheme\", i.e.\n * RSASSA-PKCS1-V1_5. In order to generate a PSS signature, provide\n * an instance of Forge PSS object as the scheme parameter.\n *\n * @param md the message digest object with the hash to sign.\n * @param scheme the signature scheme to use:\n * 'RSASSA-PKCS1-V1_5' or undefined for RSASSA PKCS#1 v1.5,\n * a Forge PSS object for RSASSA-PSS,\n * 'NONE' or null for none, DigestInfo will not be used but\n * PKCS#1 v1.5 padding will still be used.\n *\n * @return the signature as a byte string.\n */\n key.sign = function(md, scheme) {\n /* Note: The internal implementation of RSA operations is being\n transitioned away from a PKCS#1 v1.5 hard-coded scheme. Some legacy\n code like the use of an encoding block identifier 'bt' will eventually\n be removed. */\n\n // private key operation\n var bt = false;\n\n if(typeof scheme === 'string') {\n scheme = scheme.toUpperCase();\n }\n\n if(scheme === undefined || scheme === 'RSASSA-PKCS1-V1_5') {\n scheme = {encode: emsaPkcs1v15encode};\n bt = 0x01;\n } else if(scheme === 'NONE' || scheme === 'NULL' || scheme === null) {\n scheme = {encode: function() {return md;}};\n bt = 0x01;\n }\n\n // encode and then encrypt\n var d = scheme.encode(md, key.n.bitLength());\n return pki.rsa.encrypt(d, key, bt);\n };\n\n return key;\n};\n\n/**\n * Wraps an RSAPrivateKey ASN.1 object in an ASN.1 PrivateKeyInfo object.\n *\n * @param rsaKey the ASN.1 RSAPrivateKey.\n *\n * @return the ASN.1 PrivateKeyInfo.\n */\npki.wrapRsaPrivateKey = function(rsaKey) {\n // PrivateKeyInfo\n return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // version (0)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n asn1.integerToDer(0).getBytes()),\n // privateKeyAlgorithm\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(pki.oids.rsaEncryption).getBytes()),\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, '')\n ]),\n // PrivateKey\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false,\n asn1.toDer(rsaKey).getBytes())\n ]);\n};\n\n/**\n * Converts a private key from an ASN.1 object.\n *\n * @param obj the ASN.1 representation of a PrivateKeyInfo containing an\n * RSAPrivateKey or an RSAPrivateKey.\n *\n * @return the private key.\n */\npki.privateKeyFromAsn1 = function(obj) {\n // get PrivateKeyInfo\n var capture = {};\n var errors = [];\n if(asn1.validate(obj, privateKeyValidator, capture, errors)) {\n obj = asn1.fromDer(forge.util.createBuffer(capture.privateKey));\n }\n\n // get RSAPrivateKey\n capture = {};\n errors = [];\n if(!asn1.validate(obj, rsaPrivateKeyValidator, capture, errors)) {\n var error = new Error('Cannot read private key. ' +\n 'ASN.1 object does not contain an RSAPrivateKey.');\n error.errors = errors;\n throw error;\n }\n\n // Note: Version is currently ignored.\n // capture.privateKeyVersion\n // FIXME: inefficient, get a BigInteger that uses byte strings\n var n, e, d, p, q, dP, dQ, qInv;\n n = forge.util.createBuffer(capture.privateKeyModulus).toHex();\n e = forge.util.createBuffer(capture.privateKeyPublicExponent).toHex();\n d = forge.util.createBuffer(capture.privateKeyPrivateExponent).toHex();\n p = forge.util.createBuffer(capture.privateKeyPrime1).toHex();\n q = forge.util.createBuffer(capture.privateKeyPrime2).toHex();\n dP = forge.util.createBuffer(capture.privateKeyExponent1).toHex();\n dQ = forge.util.createBuffer(capture.privateKeyExponent2).toHex();\n qInv = forge.util.createBuffer(capture.privateKeyCoefficient).toHex();\n\n // set private key\n return pki.setRsaPrivateKey(\n new BigInteger(n, 16),\n new BigInteger(e, 16),\n new BigInteger(d, 16),\n new BigInteger(p, 16),\n new BigInteger(q, 16),\n new BigInteger(dP, 16),\n new BigInteger(dQ, 16),\n new BigInteger(qInv, 16));\n};\n\n/**\n * Converts a private key to an ASN.1 RSAPrivateKey.\n *\n * @param key the private key.\n *\n * @return the ASN.1 representation of an RSAPrivateKey.\n */\npki.privateKeyToAsn1 = pki.privateKeyToRSAPrivateKey = function(key) {\n // RSAPrivateKey\n return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // version (0 = only 2 primes, 1 multiple primes)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n asn1.integerToDer(0).getBytes()),\n // modulus (n)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n _bnToBytes(key.n)),\n // publicExponent (e)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n _bnToBytes(key.e)),\n // privateExponent (d)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n _bnToBytes(key.d)),\n // privateKeyPrime1 (p)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n _bnToBytes(key.p)),\n // privateKeyPrime2 (q)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n _bnToBytes(key.q)),\n // privateKeyExponent1 (dP)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n _bnToBytes(key.dP)),\n // privateKeyExponent2 (dQ)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n _bnToBytes(key.dQ)),\n // coefficient (qInv)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n _bnToBytes(key.qInv))\n ]);\n};\n\n/**\n * Converts a public key from an ASN.1 SubjectPublicKeyInfo or RSAPublicKey.\n *\n * @param obj the asn1 representation of a SubjectPublicKeyInfo or RSAPublicKey.\n *\n * @return the public key.\n */\npki.publicKeyFromAsn1 = function(obj) {\n // get SubjectPublicKeyInfo\n var capture = {};\n var errors = [];\n if(asn1.validate(obj, publicKeyValidator, capture, errors)) {\n // get oid\n var oid = asn1.derToOid(capture.publicKeyOid);\n if(oid !== pki.oids.rsaEncryption) {\n var error = new Error('Cannot read public key. Unknown OID.');\n error.oid = oid;\n throw error;\n }\n obj = capture.rsaPublicKey;\n }\n\n // get RSA params\n errors = [];\n if(!asn1.validate(obj, rsaPublicKeyValidator, capture, errors)) {\n var error = new Error('Cannot read public key. ' +\n 'ASN.1 object does not contain an RSAPublicKey.');\n error.errors = errors;\n throw error;\n }\n\n // FIXME: inefficient, get a BigInteger that uses byte strings\n var n = forge.util.createBuffer(capture.publicKeyModulus).toHex();\n var e = forge.util.createBuffer(capture.publicKeyExponent).toHex();\n\n // set public key\n return pki.setRsaPublicKey(\n new BigInteger(n, 16),\n new BigInteger(e, 16));\n};\n\n/**\n * Converts a public key to an ASN.1 SubjectPublicKeyInfo.\n *\n * @param key the public key.\n *\n * @return the asn1 representation of a SubjectPublicKeyInfo.\n */\npki.publicKeyToAsn1 = pki.publicKeyToSubjectPublicKeyInfo = function(key) {\n // SubjectPublicKeyInfo\n return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // AlgorithmIdentifier\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // algorithm\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(pki.oids.rsaEncryption).getBytes()),\n // parameters (null)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, '')\n ]),\n // subjectPublicKey\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.BITSTRING, false, [\n pki.publicKeyToRSAPublicKey(key)\n ])\n ]);\n};\n\n/**\n * Converts a public key to an ASN.1 RSAPublicKey.\n *\n * @param key the public key.\n *\n * @return the asn1 representation of a RSAPublicKey.\n */\npki.publicKeyToRSAPublicKey = function(key) {\n // RSAPublicKey\n return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // modulus (n)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n _bnToBytes(key.n)),\n // publicExponent (e)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n _bnToBytes(key.e))\n ]);\n};\n\n/**\n * Encodes a message using PKCS#1 v1.5 padding.\n *\n * @param m the message to encode.\n * @param key the RSA key to use.\n * @param bt the block type to use, i.e. either 0x01 (for signing) or 0x02\n * (for encryption).\n *\n * @return the padded byte buffer.\n */\nfunction _encodePkcs1_v1_5(m, key, bt) {\n var eb = forge.util.createBuffer();\n\n // get the length of the modulus in bytes\n var k = Math.ceil(key.n.bitLength() / 8);\n\n /* use PKCS#1 v1.5 padding */\n if(m.length > (k - 11)) {\n var error = new Error('Message is too long for PKCS#1 v1.5 padding.');\n error.length = m.length;\n error.max = k - 11;\n throw error;\n }\n\n /* A block type BT, a padding string PS, and the data D shall be\n formatted into an octet string EB, the encryption block:\n\n EB = 00 || BT || PS || 00 || D\n\n The block type BT shall be a single octet indicating the structure of\n the encryption block. For this version of the document it shall have\n value 00, 01, or 02. For a private-key operation, the block type\n shall be 00 or 01. For a public-key operation, it shall be 02.\n\n The padding string PS shall consist of k-3-||D|| octets. For block\n type 00, the octets shall have value 00; for block type 01, they\n shall have value FF; and for block type 02, they shall be\n pseudorandomly generated and nonzero. This makes the length of the\n encryption block EB equal to k. */\n\n // build the encryption block\n eb.putByte(0x00);\n eb.putByte(bt);\n\n // create the padding\n var padNum = k - 3 - m.length;\n var padByte;\n // private key op\n if(bt === 0x00 || bt === 0x01) {\n padByte = (bt === 0x00) ? 0x00 : 0xFF;\n for(var i = 0; i < padNum; ++i) {\n eb.putByte(padByte);\n }\n } else {\n // public key op\n // pad with random non-zero values\n while(padNum > 0) {\n var numZeros = 0;\n var padBytes = forge.random.getBytes(padNum);\n for(var i = 0; i < padNum; ++i) {\n padByte = padBytes.charCodeAt(i);\n if(padByte === 0) {\n ++numZeros;\n } else {\n eb.putByte(padByte);\n }\n }\n padNum = numZeros;\n }\n }\n\n // zero followed by message\n eb.putByte(0x00);\n eb.putBytes(m);\n\n return eb;\n}\n\n/**\n * Decodes a message using PKCS#1 v1.5 padding.\n *\n * @param em the message to decode.\n * @param key the RSA key to use.\n * @param pub true if the key is a public key, false if it is private.\n * @param ml the message length, if specified.\n *\n * @return the decoded bytes.\n */\nfunction _decodePkcs1_v1_5(em, key, pub, ml) {\n // get the length of the modulus in bytes\n var k = Math.ceil(key.n.bitLength() / 8);\n\n /* It is an error if any of the following conditions occurs:\n\n 1. The encryption block EB cannot be parsed unambiguously.\n 2. The padding string PS consists of fewer than eight octets\n or is inconsisent with the block type BT.\n 3. The decryption process is a public-key operation and the block\n type BT is not 00 or 01, or the decryption process is a\n private-key operation and the block type is not 02.\n */\n\n // parse the encryption block\n var eb = forge.util.createBuffer(em);\n var first = eb.getByte();\n var bt = eb.getByte();\n if(first !== 0x00 ||\n (pub && bt !== 0x00 && bt !== 0x01) ||\n (!pub && bt != 0x02) ||\n (pub && bt === 0x00 && typeof(ml) === 'undefined')) {\n throw new Error('Encryption block is invalid.');\n }\n\n var padNum = 0;\n if(bt === 0x00) {\n // check all padding bytes for 0x00\n padNum = k - 3 - ml;\n for(var i = 0; i < padNum; ++i) {\n if(eb.getByte() !== 0x00) {\n throw new Error('Encryption block is invalid.');\n }\n }\n } else if(bt === 0x01) {\n // find the first byte that isn't 0xFF, should be after all padding\n padNum = 0;\n while(eb.length() > 1) {\n if(eb.getByte() !== 0xFF) {\n --eb.read;\n break;\n }\n ++padNum;\n }\n } else if(bt === 0x02) {\n // look for 0x00 byte\n padNum = 0;\n while(eb.length() > 1) {\n if(eb.getByte() === 0x00) {\n --eb.read;\n break;\n }\n ++padNum;\n }\n }\n\n // zero must be 0x00 and padNum must be (k - 3 - message length)\n var zero = eb.getByte();\n if(zero !== 0x00 || padNum !== (k - 3 - eb.length())) {\n throw new Error('Encryption block is invalid.');\n }\n\n return eb.getBytes();\n}\n\n/**\n * Runs the key-generation algorithm asynchronously, either in the background\n * via Web Workers, or using the main thread and setImmediate.\n *\n * @param state the key-pair generation state.\n * @param [options] options for key-pair generation:\n * workerScript the worker script URL.\n * workers the number of web workers (if supported) to use,\n * (default: 2, -1 to use estimated cores minus one).\n * workLoad the size of the work load, ie: number of possible prime\n * numbers for each web worker to check per work assignment,\n * (default: 100).\n * @param callback(err, keypair) called once the operation completes.\n */\nfunction _generateKeyPair(state, options, callback) {\n if(typeof options === 'function') {\n callback = options;\n options = {};\n }\n options = options || {};\n\n var opts = {\n algorithm: {\n name: options.algorithm || 'PRIMEINC',\n options: {\n workers: options.workers || 2,\n workLoad: options.workLoad || 100,\n workerScript: options.workerScript\n }\n }\n };\n if('prng' in options) {\n opts.prng = options.prng;\n }\n\n generate();\n\n function generate() {\n // find p and then q (done in series to simplify)\n getPrime(state.pBits, function(err, num) {\n if(err) {\n return callback(err);\n }\n state.p = num;\n if(state.q !== null) {\n return finish(err, state.q);\n }\n getPrime(state.qBits, finish);\n });\n }\n\n function getPrime(bits, callback) {\n forge.prime.generateProbablePrime(bits, opts, callback);\n }\n\n function finish(err, num) {\n if(err) {\n return callback(err);\n }\n\n // set q\n state.q = num;\n\n // ensure p is larger than q (swap them if not)\n if(state.p.compareTo(state.q) < 0) {\n var tmp = state.p;\n state.p = state.q;\n state.q = tmp;\n }\n\n // ensure p is coprime with e\n if(state.p.subtract(BigInteger.ONE).gcd(state.e)\n .compareTo(BigInteger.ONE) !== 0) {\n state.p = null;\n generate();\n return;\n }\n\n // ensure q is coprime with e\n if(state.q.subtract(BigInteger.ONE).gcd(state.e)\n .compareTo(BigInteger.ONE) !== 0) {\n state.q = null;\n getPrime(state.qBits, finish);\n return;\n }\n\n // compute phi: (p - 1)(q - 1) (Euler's totient function)\n state.p1 = state.p.subtract(BigInteger.ONE);\n state.q1 = state.q.subtract(BigInteger.ONE);\n state.phi = state.p1.multiply(state.q1);\n\n // ensure e and phi are coprime\n if(state.phi.gcd(state.e).compareTo(BigInteger.ONE) !== 0) {\n // phi and e aren't coprime, so generate a new p and q\n state.p = state.q = null;\n generate();\n return;\n }\n\n // create n, ensure n is has the right number of bits\n state.n = state.p.multiply(state.q);\n if(state.n.bitLength() !== state.bits) {\n // failed, get new q\n state.q = null;\n getPrime(state.qBits, finish);\n return;\n }\n\n // set keys\n var d = state.e.modInverse(state.phi);\n state.keys = {\n privateKey: pki.rsa.setPrivateKey(\n state.n, state.e, d, state.p, state.q,\n d.mod(state.p1), d.mod(state.q1),\n state.q.modInverse(state.p)),\n publicKey: pki.rsa.setPublicKey(state.n, state.e)\n };\n\n callback(null, state.keys);\n }\n}\n\n/**\n * Converts a positive BigInteger into 2's-complement big-endian bytes.\n *\n * @param b the big integer to convert.\n *\n * @return the bytes.\n */\nfunction _bnToBytes(b) {\n // prepend 0x00 if first byte >= 0x80\n var hex = b.toString(16);\n if(hex[0] >= '8') {\n hex = '00' + hex;\n }\n var bytes = forge.util.hexToBytes(hex);\n\n // ensure integer is minimally-encoded\n if(bytes.length > 1 &&\n // leading 0x00 for positive integer\n ((bytes.charCodeAt(0) === 0 &&\n (bytes.charCodeAt(1) & 0x80) === 0) ||\n // leading 0xFF for negative integer\n (bytes.charCodeAt(0) === 0xFF &&\n (bytes.charCodeAt(1) & 0x80) === 0x80))) {\n return bytes.substr(1);\n }\n return bytes;\n}\n\n/**\n * Returns the required number of Miller-Rabin tests to generate a\n * prime with an error probability of (1/2)^80.\n *\n * See Handbook of Applied Cryptography Chapter 4, Table 4.4.\n *\n * @param bits the bit size.\n *\n * @return the required number of iterations.\n */\nfunction _getMillerRabinTests(bits) {\n if(bits <= 100) return 27;\n if(bits <= 150) return 18;\n if(bits <= 200) return 15;\n if(bits <= 250) return 12;\n if(bits <= 300) return 9;\n if(bits <= 350) return 8;\n if(bits <= 400) return 7;\n if(bits <= 500) return 6;\n if(bits <= 600) return 5;\n if(bits <= 800) return 4;\n if(bits <= 1250) return 3;\n return 2;\n}\n\n/**\n * Performs feature detection on the Node crypto interface.\n *\n * @param fn the feature (function) to detect.\n *\n * @return true if detected, false if not.\n */\nfunction _detectNodeCrypto(fn) {\n return forge.util.isNodejs && typeof _crypto[fn] === 'function';\n}\n\n/**\n * Performs feature detection on the SubtleCrypto interface.\n *\n * @param fn the feature (function) to detect.\n *\n * @return true if detected, false if not.\n */\nfunction _detectSubtleCrypto(fn) {\n return (typeof util.globalScope !== 'undefined' &&\n typeof util.globalScope.crypto === 'object' &&\n typeof util.globalScope.crypto.subtle === 'object' &&\n typeof util.globalScope.crypto.subtle[fn] === 'function');\n}\n\n/**\n * Performs feature detection on the deprecated Microsoft Internet Explorer\n * outdated SubtleCrypto interface. This function should only be used after\n * checking for the modern, standard SubtleCrypto interface.\n *\n * @param fn the feature (function) to detect.\n *\n * @return true if detected, false if not.\n */\nfunction _detectSubtleMsCrypto(fn) {\n return (typeof util.globalScope !== 'undefined' &&\n typeof util.globalScope.msCrypto === 'object' &&\n typeof util.globalScope.msCrypto.subtle === 'object' &&\n typeof util.globalScope.msCrypto.subtle[fn] === 'function');\n}\n\nfunction _intToUint8Array(x) {\n var bytes = forge.util.hexToBytes(x.toString(16));\n var buffer = new Uint8Array(bytes.length);\n for(var i = 0; i < bytes.length; ++i) {\n buffer[i] = bytes.charCodeAt(i);\n }\n return buffer;\n}\n\nfunction _privateKeyFromJwk(jwk) {\n if(jwk.kty !== 'RSA') {\n throw new Error(\n 'Unsupported key algorithm \"' + jwk.kty + '\"; algorithm must be \"RSA\".');\n }\n return pki.setRsaPrivateKey(\n _base64ToBigInt(jwk.n),\n _base64ToBigInt(jwk.e),\n _base64ToBigInt(jwk.d),\n _base64ToBigInt(jwk.p),\n _base64ToBigInt(jwk.q),\n _base64ToBigInt(jwk.dp),\n _base64ToBigInt(jwk.dq),\n _base64ToBigInt(jwk.qi));\n}\n\nfunction _publicKeyFromJwk(jwk) {\n if(jwk.kty !== 'RSA') {\n throw new Error('Key algorithm must be \"RSA\".');\n }\n return pki.setRsaPublicKey(\n _base64ToBigInt(jwk.n),\n _base64ToBigInt(jwk.e));\n}\n\nfunction _base64ToBigInt(b64) {\n return new BigInteger(forge.util.bytesToHex(forge.util.decode64(b64)), 16);\n}\n","/**\n * Password-based encryption functions.\n *\n * @author Dave Longley\n * @author Stefan Siegl \n *\n * Copyright (c) 2010-2013 Digital Bazaar, Inc.\n * Copyright (c) 2012 Stefan Siegl \n *\n * An EncryptedPrivateKeyInfo:\n *\n * EncryptedPrivateKeyInfo ::= SEQUENCE {\n * encryptionAlgorithm EncryptionAlgorithmIdentifier,\n * encryptedData EncryptedData }\n *\n * EncryptionAlgorithmIdentifier ::= AlgorithmIdentifier\n *\n * EncryptedData ::= OCTET STRING\n */\nvar forge = require('./forge');\nrequire('./aes');\nrequire('./asn1');\nrequire('./des');\nrequire('./md');\nrequire('./oids');\nrequire('./pbkdf2');\nrequire('./pem');\nrequire('./random');\nrequire('./rc2');\nrequire('./rsa');\nrequire('./util');\n\nif(typeof BigInteger === 'undefined') {\n var BigInteger = forge.jsbn.BigInteger;\n}\n\n// shortcut for asn.1 API\nvar asn1 = forge.asn1;\n\n/* Password-based encryption implementation. */\nvar pki = forge.pki = forge.pki || {};\nmodule.exports = pki.pbe = forge.pbe = forge.pbe || {};\nvar oids = pki.oids;\n\n// validator for an EncryptedPrivateKeyInfo structure\n// Note: Currently only works w/algorithm params\nvar encryptedPrivateKeyValidator = {\n name: 'EncryptedPrivateKeyInfo',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'EncryptedPrivateKeyInfo.encryptionAlgorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'AlgorithmIdentifier.algorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'encryptionOid'\n }, {\n name: 'AlgorithmIdentifier.parameters',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n captureAsn1: 'encryptionParams'\n }]\n }, {\n // encryptedData\n name: 'EncryptedPrivateKeyInfo.encryptedData',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OCTETSTRING,\n constructed: false,\n capture: 'encryptedData'\n }]\n};\n\n// validator for a PBES2Algorithms structure\n// Note: Currently only works w/PBKDF2 + AES encryption schemes\nvar PBES2AlgorithmsValidator = {\n name: 'PBES2Algorithms',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'PBES2Algorithms.keyDerivationFunc',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'PBES2Algorithms.keyDerivationFunc.oid',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'kdfOid'\n }, {\n name: 'PBES2Algorithms.params',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'PBES2Algorithms.params.salt',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OCTETSTRING,\n constructed: false,\n capture: 'kdfSalt'\n }, {\n name: 'PBES2Algorithms.params.iterationCount',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'kdfIterationCount'\n }, {\n name: 'PBES2Algorithms.params.keyLength',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n optional: true,\n capture: 'keyLength'\n }, {\n // prf\n name: 'PBES2Algorithms.params.prf',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n optional: true,\n value: [{\n name: 'PBES2Algorithms.params.prf.algorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'prfOid'\n }]\n }]\n }]\n }, {\n name: 'PBES2Algorithms.encryptionScheme',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'PBES2Algorithms.encryptionScheme.oid',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'encOid'\n }, {\n name: 'PBES2Algorithms.encryptionScheme.iv',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OCTETSTRING,\n constructed: false,\n capture: 'encIv'\n }]\n }]\n};\n\nvar pkcs12PbeParamsValidator = {\n name: 'pkcs-12PbeParams',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'pkcs-12PbeParams.salt',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OCTETSTRING,\n constructed: false,\n capture: 'salt'\n }, {\n name: 'pkcs-12PbeParams.iterations',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'iterations'\n }]\n};\n\n/**\n * Encrypts a ASN.1 PrivateKeyInfo object, producing an EncryptedPrivateKeyInfo.\n *\n * PBES2Algorithms ALGORITHM-IDENTIFIER ::=\n * { {PBES2-params IDENTIFIED BY id-PBES2}, ...}\n *\n * id-PBES2 OBJECT IDENTIFIER ::= {pkcs-5 13}\n *\n * PBES2-params ::= SEQUENCE {\n * keyDerivationFunc AlgorithmIdentifier {{PBES2-KDFs}},\n * encryptionScheme AlgorithmIdentifier {{PBES2-Encs}}\n * }\n *\n * PBES2-KDFs ALGORITHM-IDENTIFIER ::=\n * { {PBKDF2-params IDENTIFIED BY id-PBKDF2}, ... }\n *\n * PBES2-Encs ALGORITHM-IDENTIFIER ::= { ... }\n *\n * PBKDF2-params ::= SEQUENCE {\n * salt CHOICE {\n * specified OCTET STRING,\n * otherSource AlgorithmIdentifier {{PBKDF2-SaltSources}}\n * },\n * iterationCount INTEGER (1..MAX),\n * keyLength INTEGER (1..MAX) OPTIONAL,\n * prf AlgorithmIdentifier {{PBKDF2-PRFs}} DEFAULT algid-hmacWithSHA1\n * }\n *\n * @param obj the ASN.1 PrivateKeyInfo object.\n * @param password the password to encrypt with.\n * @param options:\n * algorithm the encryption algorithm to use\n * ('aes128', 'aes192', 'aes256', '3des'), defaults to 'aes128'.\n * count the iteration count to use.\n * saltSize the salt size to use.\n * prfAlgorithm the PRF message digest algorithm to use\n * ('sha1', 'sha224', 'sha256', 'sha384', 'sha512')\n *\n * @return the ASN.1 EncryptedPrivateKeyInfo.\n */\npki.encryptPrivateKeyInfo = function(obj, password, options) {\n // set default options\n options = options || {};\n options.saltSize = options.saltSize || 8;\n options.count = options.count || 2048;\n options.algorithm = options.algorithm || 'aes128';\n options.prfAlgorithm = options.prfAlgorithm || 'sha1';\n\n // generate PBE params\n var salt = forge.random.getBytesSync(options.saltSize);\n var count = options.count;\n var countBytes = asn1.integerToDer(count);\n var dkLen;\n var encryptionAlgorithm;\n var encryptedData;\n if(options.algorithm.indexOf('aes') === 0 || options.algorithm === 'des') {\n // do PBES2\n var ivLen, encOid, cipherFn;\n switch(options.algorithm) {\n case 'aes128':\n dkLen = 16;\n ivLen = 16;\n encOid = oids['aes128-CBC'];\n cipherFn = forge.aes.createEncryptionCipher;\n break;\n case 'aes192':\n dkLen = 24;\n ivLen = 16;\n encOid = oids['aes192-CBC'];\n cipherFn = forge.aes.createEncryptionCipher;\n break;\n case 'aes256':\n dkLen = 32;\n ivLen = 16;\n encOid = oids['aes256-CBC'];\n cipherFn = forge.aes.createEncryptionCipher;\n break;\n case 'des':\n dkLen = 8;\n ivLen = 8;\n encOid = oids['desCBC'];\n cipherFn = forge.des.createEncryptionCipher;\n break;\n default:\n var error = new Error('Cannot encrypt private key. Unknown encryption algorithm.');\n error.algorithm = options.algorithm;\n throw error;\n }\n\n // get PRF message digest\n var prfAlgorithm = 'hmacWith' + options.prfAlgorithm.toUpperCase();\n var md = prfAlgorithmToMessageDigest(prfAlgorithm);\n\n // encrypt private key using pbe SHA-1 and AES/DES\n var dk = forge.pkcs5.pbkdf2(password, salt, count, dkLen, md);\n var iv = forge.random.getBytesSync(ivLen);\n var cipher = cipherFn(dk);\n cipher.start(iv);\n cipher.update(asn1.toDer(obj));\n cipher.finish();\n encryptedData = cipher.output.getBytes();\n\n // get PBKDF2-params\n var params = createPbkdf2Params(salt, countBytes, dkLen, prfAlgorithm);\n\n encryptionAlgorithm = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(oids['pkcs5PBES2']).getBytes()),\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // keyDerivationFunc\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(oids['pkcs5PBKDF2']).getBytes()),\n // PBKDF2-params\n params\n ]),\n // encryptionScheme\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(encOid).getBytes()),\n // iv\n asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, iv)\n ])\n ])\n ]);\n } else if(options.algorithm === '3des') {\n // Do PKCS12 PBE\n dkLen = 24;\n\n var saltBytes = new forge.util.ByteBuffer(salt);\n var dk = pki.pbe.generatePkcs12Key(password, saltBytes, 1, count, dkLen);\n var iv = pki.pbe.generatePkcs12Key(password, saltBytes, 2, count, dkLen);\n var cipher = forge.des.createEncryptionCipher(dk);\n cipher.start(iv);\n cipher.update(asn1.toDer(obj));\n cipher.finish();\n encryptedData = cipher.output.getBytes();\n\n encryptionAlgorithm = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(oids['pbeWithSHAAnd3-KeyTripleDES-CBC']).getBytes()),\n // pkcs-12PbeParams\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // salt\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, salt),\n // iteration count\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n countBytes.getBytes())\n ])\n ]);\n } else {\n var error = new Error('Cannot encrypt private key. Unknown encryption algorithm.');\n error.algorithm = options.algorithm;\n throw error;\n }\n\n // EncryptedPrivateKeyInfo\n var rval = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // encryptionAlgorithm\n encryptionAlgorithm,\n // encryptedData\n asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, encryptedData)\n ]);\n return rval;\n};\n\n/**\n * Decrypts a ASN.1 PrivateKeyInfo object.\n *\n * @param obj the ASN.1 EncryptedPrivateKeyInfo object.\n * @param password the password to decrypt with.\n *\n * @return the ASN.1 PrivateKeyInfo on success, null on failure.\n */\npki.decryptPrivateKeyInfo = function(obj, password) {\n var rval = null;\n\n // get PBE params\n var capture = {};\n var errors = [];\n if(!asn1.validate(obj, encryptedPrivateKeyValidator, capture, errors)) {\n var error = new Error('Cannot read encrypted private key. ' +\n 'ASN.1 object is not a supported EncryptedPrivateKeyInfo.');\n error.errors = errors;\n throw error;\n }\n\n // get cipher\n var oid = asn1.derToOid(capture.encryptionOid);\n var cipher = pki.pbe.getCipher(oid, capture.encryptionParams, password);\n\n // get encrypted data\n var encrypted = forge.util.createBuffer(capture.encryptedData);\n\n cipher.update(encrypted);\n if(cipher.finish()) {\n rval = asn1.fromDer(cipher.output);\n }\n\n return rval;\n};\n\n/**\n * Converts a EncryptedPrivateKeyInfo to PEM format.\n *\n * @param epki the EncryptedPrivateKeyInfo.\n * @param maxline the maximum characters per line, defaults to 64.\n *\n * @return the PEM-formatted encrypted private key.\n */\npki.encryptedPrivateKeyToPem = function(epki, maxline) {\n // convert to DER, then PEM-encode\n var msg = {\n type: 'ENCRYPTED PRIVATE KEY',\n body: asn1.toDer(epki).getBytes()\n };\n return forge.pem.encode(msg, {maxline: maxline});\n};\n\n/**\n * Converts a PEM-encoded EncryptedPrivateKeyInfo to ASN.1 format. Decryption\n * is not performed.\n *\n * @param pem the EncryptedPrivateKeyInfo in PEM-format.\n *\n * @return the ASN.1 EncryptedPrivateKeyInfo.\n */\npki.encryptedPrivateKeyFromPem = function(pem) {\n var msg = forge.pem.decode(pem)[0];\n\n if(msg.type !== 'ENCRYPTED PRIVATE KEY') {\n var error = new Error('Could not convert encrypted private key from PEM; ' +\n 'PEM header type is \"ENCRYPTED PRIVATE KEY\".');\n error.headerType = msg.type;\n throw error;\n }\n if(msg.procType && msg.procType.type === 'ENCRYPTED') {\n throw new Error('Could not convert encrypted private key from PEM; ' +\n 'PEM is encrypted.');\n }\n\n // convert DER to ASN.1 object\n return asn1.fromDer(msg.body);\n};\n\n/**\n * Encrypts an RSA private key. By default, the key will be wrapped in\n * a PrivateKeyInfo and encrypted to produce a PKCS#8 EncryptedPrivateKeyInfo.\n * This is the standard, preferred way to encrypt a private key.\n *\n * To produce a non-standard PEM-encrypted private key that uses encapsulated\n * headers to indicate the encryption algorithm (old-style non-PKCS#8 OpenSSL\n * private key encryption), set the 'legacy' option to true. Note: Using this\n * option will cause the iteration count to be forced to 1.\n *\n * Note: The 'des' algorithm is supported, but it is not considered to be\n * secure because it only uses a single 56-bit key. If possible, it is highly\n * recommended that a different algorithm be used.\n *\n * @param rsaKey the RSA key to encrypt.\n * @param password the password to use.\n * @param options:\n * algorithm: the encryption algorithm to use\n * ('aes128', 'aes192', 'aes256', '3des', 'des').\n * count: the iteration count to use.\n * saltSize: the salt size to use.\n * legacy: output an old non-PKCS#8 PEM-encrypted+encapsulated\n * headers (DEK-Info) private key.\n *\n * @return the PEM-encoded ASN.1 EncryptedPrivateKeyInfo.\n */\npki.encryptRsaPrivateKey = function(rsaKey, password, options) {\n // standard PKCS#8\n options = options || {};\n if(!options.legacy) {\n // encrypt PrivateKeyInfo\n var rval = pki.wrapRsaPrivateKey(pki.privateKeyToAsn1(rsaKey));\n rval = pki.encryptPrivateKeyInfo(rval, password, options);\n return pki.encryptedPrivateKeyToPem(rval);\n }\n\n // legacy non-PKCS#8\n var algorithm;\n var iv;\n var dkLen;\n var cipherFn;\n switch(options.algorithm) {\n case 'aes128':\n algorithm = 'AES-128-CBC';\n dkLen = 16;\n iv = forge.random.getBytesSync(16);\n cipherFn = forge.aes.createEncryptionCipher;\n break;\n case 'aes192':\n algorithm = 'AES-192-CBC';\n dkLen = 24;\n iv = forge.random.getBytesSync(16);\n cipherFn = forge.aes.createEncryptionCipher;\n break;\n case 'aes256':\n algorithm = 'AES-256-CBC';\n dkLen = 32;\n iv = forge.random.getBytesSync(16);\n cipherFn = forge.aes.createEncryptionCipher;\n break;\n case '3des':\n algorithm = 'DES-EDE3-CBC';\n dkLen = 24;\n iv = forge.random.getBytesSync(8);\n cipherFn = forge.des.createEncryptionCipher;\n break;\n case 'des':\n algorithm = 'DES-CBC';\n dkLen = 8;\n iv = forge.random.getBytesSync(8);\n cipherFn = forge.des.createEncryptionCipher;\n break;\n default:\n var error = new Error('Could not encrypt RSA private key; unsupported ' +\n 'encryption algorithm \"' + options.algorithm + '\".');\n error.algorithm = options.algorithm;\n throw error;\n }\n\n // encrypt private key using OpenSSL legacy key derivation\n var dk = forge.pbe.opensslDeriveBytes(password, iv.substr(0, 8), dkLen);\n var cipher = cipherFn(dk);\n cipher.start(iv);\n cipher.update(asn1.toDer(pki.privateKeyToAsn1(rsaKey)));\n cipher.finish();\n\n var msg = {\n type: 'RSA PRIVATE KEY',\n procType: {\n version: '4',\n type: 'ENCRYPTED'\n },\n dekInfo: {\n algorithm: algorithm,\n parameters: forge.util.bytesToHex(iv).toUpperCase()\n },\n body: cipher.output.getBytes()\n };\n return forge.pem.encode(msg);\n};\n\n/**\n * Decrypts an RSA private key.\n *\n * @param pem the PEM-formatted EncryptedPrivateKeyInfo to decrypt.\n * @param password the password to use.\n *\n * @return the RSA key on success, null on failure.\n */\npki.decryptRsaPrivateKey = function(pem, password) {\n var rval = null;\n\n var msg = forge.pem.decode(pem)[0];\n\n if(msg.type !== 'ENCRYPTED PRIVATE KEY' &&\n msg.type !== 'PRIVATE KEY' &&\n msg.type !== 'RSA PRIVATE KEY') {\n var error = new Error('Could not convert private key from PEM; PEM header type ' +\n 'is not \"ENCRYPTED PRIVATE KEY\", \"PRIVATE KEY\", or \"RSA PRIVATE KEY\".');\n error.headerType = error;\n throw error;\n }\n\n if(msg.procType && msg.procType.type === 'ENCRYPTED') {\n var dkLen;\n var cipherFn;\n switch(msg.dekInfo.algorithm) {\n case 'DES-CBC':\n dkLen = 8;\n cipherFn = forge.des.createDecryptionCipher;\n break;\n case 'DES-EDE3-CBC':\n dkLen = 24;\n cipherFn = forge.des.createDecryptionCipher;\n break;\n case 'AES-128-CBC':\n dkLen = 16;\n cipherFn = forge.aes.createDecryptionCipher;\n break;\n case 'AES-192-CBC':\n dkLen = 24;\n cipherFn = forge.aes.createDecryptionCipher;\n break;\n case 'AES-256-CBC':\n dkLen = 32;\n cipherFn = forge.aes.createDecryptionCipher;\n break;\n case 'RC2-40-CBC':\n dkLen = 5;\n cipherFn = function(key) {\n return forge.rc2.createDecryptionCipher(key, 40);\n };\n break;\n case 'RC2-64-CBC':\n dkLen = 8;\n cipherFn = function(key) {\n return forge.rc2.createDecryptionCipher(key, 64);\n };\n break;\n case 'RC2-128-CBC':\n dkLen = 16;\n cipherFn = function(key) {\n return forge.rc2.createDecryptionCipher(key, 128);\n };\n break;\n default:\n var error = new Error('Could not decrypt private key; unsupported ' +\n 'encryption algorithm \"' + msg.dekInfo.algorithm + '\".');\n error.algorithm = msg.dekInfo.algorithm;\n throw error;\n }\n\n // use OpenSSL legacy key derivation\n var iv = forge.util.hexToBytes(msg.dekInfo.parameters);\n var dk = forge.pbe.opensslDeriveBytes(password, iv.substr(0, 8), dkLen);\n var cipher = cipherFn(dk);\n cipher.start(iv);\n cipher.update(forge.util.createBuffer(msg.body));\n if(cipher.finish()) {\n rval = cipher.output.getBytes();\n } else {\n return rval;\n }\n } else {\n rval = msg.body;\n }\n\n if(msg.type === 'ENCRYPTED PRIVATE KEY') {\n rval = pki.decryptPrivateKeyInfo(asn1.fromDer(rval), password);\n } else {\n // decryption already performed above\n rval = asn1.fromDer(rval);\n }\n\n if(rval !== null) {\n rval = pki.privateKeyFromAsn1(rval);\n }\n\n return rval;\n};\n\n/**\n * Derives a PKCS#12 key.\n *\n * @param password the password to derive the key material from, null or\n * undefined for none.\n * @param salt the salt, as a ByteBuffer, to use.\n * @param id the PKCS#12 ID byte (1 = key material, 2 = IV, 3 = MAC).\n * @param iter the iteration count.\n * @param n the number of bytes to derive from the password.\n * @param md the message digest to use, defaults to SHA-1.\n *\n * @return a ByteBuffer with the bytes derived from the password.\n */\npki.pbe.generatePkcs12Key = function(password, salt, id, iter, n, md) {\n var j, l;\n\n if(typeof md === 'undefined' || md === null) {\n if(!('sha1' in forge.md)) {\n throw new Error('\"sha1\" hash algorithm unavailable.');\n }\n md = forge.md.sha1.create();\n }\n\n var u = md.digestLength;\n var v = md.blockLength;\n var result = new forge.util.ByteBuffer();\n\n /* Convert password to Unicode byte buffer + trailing 0-byte. */\n var passBuf = new forge.util.ByteBuffer();\n if(password !== null && password !== undefined) {\n for(l = 0; l < password.length; l++) {\n passBuf.putInt16(password.charCodeAt(l));\n }\n passBuf.putInt16(0);\n }\n\n /* Length of salt and password in BYTES. */\n var p = passBuf.length();\n var s = salt.length();\n\n /* 1. Construct a string, D (the \"diversifier\"), by concatenating\n v copies of ID. */\n var D = new forge.util.ByteBuffer();\n D.fillWithByte(id, v);\n\n /* 2. Concatenate copies of the salt together to create a string S of length\n v * ceil(s / v) bytes (the final copy of the salt may be trunacted\n to create S).\n Note that if the salt is the empty string, then so is S. */\n var Slen = v * Math.ceil(s / v);\n var S = new forge.util.ByteBuffer();\n for(l = 0; l < Slen; l++) {\n S.putByte(salt.at(l % s));\n }\n\n /* 3. Concatenate copies of the password together to create a string P of\n length v * ceil(p / v) bytes (the final copy of the password may be\n truncated to create P).\n Note that if the password is the empty string, then so is P. */\n var Plen = v * Math.ceil(p / v);\n var P = new forge.util.ByteBuffer();\n for(l = 0; l < Plen; l++) {\n P.putByte(passBuf.at(l % p));\n }\n\n /* 4. Set I=S||P to be the concatenation of S and P. */\n var I = S;\n I.putBuffer(P);\n\n /* 5. Set c=ceil(n / u). */\n var c = Math.ceil(n / u);\n\n /* 6. For i=1, 2, ..., c, do the following: */\n for(var i = 1; i <= c; i++) {\n /* a) Set Ai=H^r(D||I). (l.e. the rth hash of D||I, H(H(H(...H(D||I)))) */\n var buf = new forge.util.ByteBuffer();\n buf.putBytes(D.bytes());\n buf.putBytes(I.bytes());\n for(var round = 0; round < iter; round++) {\n md.start();\n md.update(buf.getBytes());\n buf = md.digest();\n }\n\n /* b) Concatenate copies of Ai to create a string B of length v bytes (the\n final copy of Ai may be truncated to create B). */\n var B = new forge.util.ByteBuffer();\n for(l = 0; l < v; l++) {\n B.putByte(buf.at(l % u));\n }\n\n /* c) Treating I as a concatenation I0, I1, ..., Ik-1 of v-byte blocks,\n where k=ceil(s / v) + ceil(p / v), modify I by setting\n Ij=(Ij+B+1) mod 2v for each j. */\n var k = Math.ceil(s / v) + Math.ceil(p / v);\n var Inew = new forge.util.ByteBuffer();\n for(j = 0; j < k; j++) {\n var chunk = new forge.util.ByteBuffer(I.getBytes(v));\n var x = 0x1ff;\n for(l = B.length() - 1; l >= 0; l--) {\n x = x >> 8;\n x += B.at(l) + chunk.at(l);\n chunk.setAt(l, x & 0xff);\n }\n Inew.putBuffer(chunk);\n }\n I = Inew;\n\n /* Add Ai to A. */\n result.putBuffer(buf);\n }\n\n result.truncate(result.length() - n);\n return result;\n};\n\n/**\n * Get new Forge cipher object instance.\n *\n * @param oid the OID (in string notation).\n * @param params the ASN.1 params object.\n * @param password the password to decrypt with.\n *\n * @return new cipher object instance.\n */\npki.pbe.getCipher = function(oid, params, password) {\n switch(oid) {\n case pki.oids['pkcs5PBES2']:\n return pki.pbe.getCipherForPBES2(oid, params, password);\n\n case pki.oids['pbeWithSHAAnd3-KeyTripleDES-CBC']:\n case pki.oids['pbewithSHAAnd40BitRC2-CBC']:\n return pki.pbe.getCipherForPKCS12PBE(oid, params, password);\n\n default:\n var error = new Error('Cannot read encrypted PBE data block. Unsupported OID.');\n error.oid = oid;\n error.supportedOids = [\n 'pkcs5PBES2',\n 'pbeWithSHAAnd3-KeyTripleDES-CBC',\n 'pbewithSHAAnd40BitRC2-CBC'\n ];\n throw error;\n }\n};\n\n/**\n * Get new Forge cipher object instance according to PBES2 params block.\n *\n * The returned cipher instance is already started using the IV\n * from PBES2 parameter block.\n *\n * @param oid the PKCS#5 PBKDF2 OID (in string notation).\n * @param params the ASN.1 PBES2-params object.\n * @param password the password to decrypt with.\n *\n * @return new cipher object instance.\n */\npki.pbe.getCipherForPBES2 = function(oid, params, password) {\n // get PBE params\n var capture = {};\n var errors = [];\n if(!asn1.validate(params, PBES2AlgorithmsValidator, capture, errors)) {\n var error = new Error('Cannot read password-based-encryption algorithm ' +\n 'parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.');\n error.errors = errors;\n throw error;\n }\n\n // check oids\n oid = asn1.derToOid(capture.kdfOid);\n if(oid !== pki.oids['pkcs5PBKDF2']) {\n var error = new Error('Cannot read encrypted private key. ' +\n 'Unsupported key derivation function OID.');\n error.oid = oid;\n error.supportedOids = ['pkcs5PBKDF2'];\n throw error;\n }\n oid = asn1.derToOid(capture.encOid);\n if(oid !== pki.oids['aes128-CBC'] &&\n oid !== pki.oids['aes192-CBC'] &&\n oid !== pki.oids['aes256-CBC'] &&\n oid !== pki.oids['des-EDE3-CBC'] &&\n oid !== pki.oids['desCBC']) {\n var error = new Error('Cannot read encrypted private key. ' +\n 'Unsupported encryption scheme OID.');\n error.oid = oid;\n error.supportedOids = [\n 'aes128-CBC', 'aes192-CBC', 'aes256-CBC', 'des-EDE3-CBC', 'desCBC'];\n throw error;\n }\n\n // set PBE params\n var salt = capture.kdfSalt;\n var count = forge.util.createBuffer(capture.kdfIterationCount);\n count = count.getInt(count.length() << 3);\n var dkLen;\n var cipherFn;\n switch(pki.oids[oid]) {\n case 'aes128-CBC':\n dkLen = 16;\n cipherFn = forge.aes.createDecryptionCipher;\n break;\n case 'aes192-CBC':\n dkLen = 24;\n cipherFn = forge.aes.createDecryptionCipher;\n break;\n case 'aes256-CBC':\n dkLen = 32;\n cipherFn = forge.aes.createDecryptionCipher;\n break;\n case 'des-EDE3-CBC':\n dkLen = 24;\n cipherFn = forge.des.createDecryptionCipher;\n break;\n case 'desCBC':\n dkLen = 8;\n cipherFn = forge.des.createDecryptionCipher;\n break;\n }\n\n // get PRF message digest\n var md = prfOidToMessageDigest(capture.prfOid);\n\n // decrypt private key using pbe with chosen PRF and AES/DES\n var dk = forge.pkcs5.pbkdf2(password, salt, count, dkLen, md);\n var iv = capture.encIv;\n var cipher = cipherFn(dk);\n cipher.start(iv);\n\n return cipher;\n};\n\n/**\n * Get new Forge cipher object instance for PKCS#12 PBE.\n *\n * The returned cipher instance is already started using the key & IV\n * derived from the provided password and PKCS#12 PBE salt.\n *\n * @param oid The PKCS#12 PBE OID (in string notation).\n * @param params The ASN.1 PKCS#12 PBE-params object.\n * @param password The password to decrypt with.\n *\n * @return the new cipher object instance.\n */\npki.pbe.getCipherForPKCS12PBE = function(oid, params, password) {\n // get PBE params\n var capture = {};\n var errors = [];\n if(!asn1.validate(params, pkcs12PbeParamsValidator, capture, errors)) {\n var error = new Error('Cannot read password-based-encryption algorithm ' +\n 'parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.');\n error.errors = errors;\n throw error;\n }\n\n var salt = forge.util.createBuffer(capture.salt);\n var count = forge.util.createBuffer(capture.iterations);\n count = count.getInt(count.length() << 3);\n\n var dkLen, dIvLen, cipherFn;\n switch(oid) {\n case pki.oids['pbeWithSHAAnd3-KeyTripleDES-CBC']:\n dkLen = 24;\n dIvLen = 8;\n cipherFn = forge.des.startDecrypting;\n break;\n\n case pki.oids['pbewithSHAAnd40BitRC2-CBC']:\n dkLen = 5;\n dIvLen = 8;\n cipherFn = function(key, iv) {\n var cipher = forge.rc2.createDecryptionCipher(key, 40);\n cipher.start(iv, null);\n return cipher;\n };\n break;\n\n default:\n var error = new Error('Cannot read PKCS #12 PBE data block. Unsupported OID.');\n error.oid = oid;\n throw error;\n }\n\n // get PRF message digest\n var md = prfOidToMessageDigest(capture.prfOid);\n var key = pki.pbe.generatePkcs12Key(password, salt, 1, count, dkLen, md);\n md.start();\n var iv = pki.pbe.generatePkcs12Key(password, salt, 2, count, dIvLen, md);\n\n return cipherFn(key, iv);\n};\n\n/**\n * OpenSSL's legacy key derivation function.\n *\n * See: http://www.openssl.org/docs/crypto/EVP_BytesToKey.html\n *\n * @param password the password to derive the key from.\n * @param salt the salt to use, null for none.\n * @param dkLen the number of bytes needed for the derived key.\n * @param [options] the options to use:\n * [md] an optional message digest object to use.\n */\npki.pbe.opensslDeriveBytes = function(password, salt, dkLen, md) {\n if(typeof md === 'undefined' || md === null) {\n if(!('md5' in forge.md)) {\n throw new Error('\"md5\" hash algorithm unavailable.');\n }\n md = forge.md.md5.create();\n }\n if(salt === null) {\n salt = '';\n }\n var digests = [hash(md, password + salt)];\n for(var length = 16, i = 1; length < dkLen; ++i, length += 16) {\n digests.push(hash(md, digests[i - 1] + password + salt));\n }\n return digests.join('').substr(0, dkLen);\n};\n\nfunction hash(md, bytes) {\n return md.start().update(bytes).digest().getBytes();\n}\n\nfunction prfOidToMessageDigest(prfOid) {\n // get PRF algorithm, default to SHA-1\n var prfAlgorithm;\n if(!prfOid) {\n prfAlgorithm = 'hmacWithSHA1';\n } else {\n prfAlgorithm = pki.oids[asn1.derToOid(prfOid)];\n if(!prfAlgorithm) {\n var error = new Error('Unsupported PRF OID.');\n error.oid = prfOid;\n error.supported = [\n 'hmacWithSHA1', 'hmacWithSHA224', 'hmacWithSHA256', 'hmacWithSHA384',\n 'hmacWithSHA512'];\n throw error;\n }\n }\n return prfAlgorithmToMessageDigest(prfAlgorithm);\n}\n\nfunction prfAlgorithmToMessageDigest(prfAlgorithm) {\n var factory = forge.md;\n switch(prfAlgorithm) {\n case 'hmacWithSHA224':\n factory = forge.md.sha512;\n case 'hmacWithSHA1':\n case 'hmacWithSHA256':\n case 'hmacWithSHA384':\n case 'hmacWithSHA512':\n prfAlgorithm = prfAlgorithm.substr(8).toLowerCase();\n break;\n default:\n var error = new Error('Unsupported PRF algorithm.');\n error.algorithm = prfAlgorithm;\n error.supported = [\n 'hmacWithSHA1', 'hmacWithSHA224', 'hmacWithSHA256', 'hmacWithSHA384',\n 'hmacWithSHA512'];\n throw error;\n }\n if(!factory || !(prfAlgorithm in factory)) {\n throw new Error('Unknown hash algorithm: ' + prfAlgorithm);\n }\n return factory[prfAlgorithm].create();\n}\n\nfunction createPbkdf2Params(salt, countBytes, dkLen, prfAlgorithm) {\n var params = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // salt\n asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, salt),\n // iteration count\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n countBytes.getBytes())\n ]);\n // when PRF algorithm is not SHA-1 default, add key length and PRF algorithm\n if(prfAlgorithm !== 'hmacWithSHA1') {\n params.value.push(\n // key length\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n forge.util.hexToBytes(dkLen.toString(16))),\n // AlgorithmIdentifier\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // algorithm\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(pki.oids[prfAlgorithm]).getBytes()),\n // parameters (null)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, '')\n ]));\n }\n return params;\n}\n","/**\n * Javascript implementation of ASN.1 validators for PKCS#7 v1.5.\n *\n * @author Dave Longley\n * @author Stefan Siegl\n *\n * Copyright (c) 2012-2015 Digital Bazaar, Inc.\n * Copyright (c) 2012 Stefan Siegl \n *\n * The ASN.1 representation of PKCS#7 is as follows\n * (see RFC #2315 for details, http://www.ietf.org/rfc/rfc2315.txt):\n *\n * A PKCS#7 message consists of a ContentInfo on root level, which may\n * contain any number of further ContentInfo nested into it.\n *\n * ContentInfo ::= SEQUENCE {\n * contentType ContentType,\n * content [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL\n * }\n *\n * ContentType ::= OBJECT IDENTIFIER\n *\n * EnvelopedData ::= SEQUENCE {\n * version Version,\n * recipientInfos RecipientInfos,\n * encryptedContentInfo EncryptedContentInfo\n * }\n *\n * EncryptedData ::= SEQUENCE {\n * version Version,\n * encryptedContentInfo EncryptedContentInfo\n * }\n *\n * id-signedData OBJECT IDENTIFIER ::= { iso(1) member-body(2)\n * us(840) rsadsi(113549) pkcs(1) pkcs7(7) 2 }\n *\n * SignedData ::= SEQUENCE {\n * version INTEGER,\n * digestAlgorithms DigestAlgorithmIdentifiers,\n * contentInfo ContentInfo,\n * certificates [0] IMPLICIT Certificates OPTIONAL,\n * crls [1] IMPLICIT CertificateRevocationLists OPTIONAL,\n * signerInfos SignerInfos\n * }\n *\n * SignerInfos ::= SET OF SignerInfo\n *\n * SignerInfo ::= SEQUENCE {\n * version Version,\n * issuerAndSerialNumber IssuerAndSerialNumber,\n * digestAlgorithm DigestAlgorithmIdentifier,\n * authenticatedAttributes [0] IMPLICIT Attributes OPTIONAL,\n * digestEncryptionAlgorithm DigestEncryptionAlgorithmIdentifier,\n * encryptedDigest EncryptedDigest,\n * unauthenticatedAttributes [1] IMPLICIT Attributes OPTIONAL\n * }\n *\n * EncryptedDigest ::= OCTET STRING\n *\n * Attributes ::= SET OF Attribute\n *\n * Attribute ::= SEQUENCE {\n * attrType OBJECT IDENTIFIER,\n * attrValues SET OF AttributeValue\n * }\n *\n * AttributeValue ::= ANY\n *\n * Version ::= INTEGER\n *\n * RecipientInfos ::= SET OF RecipientInfo\n *\n * EncryptedContentInfo ::= SEQUENCE {\n * contentType ContentType,\n * contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,\n * encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL\n * }\n *\n * ContentEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier\n *\n * The AlgorithmIdentifier contains an Object Identifier (OID) and parameters\n * for the algorithm, if any. In the case of AES and DES3, there is only one,\n * the IV.\n *\n * AlgorithmIdentifer ::= SEQUENCE {\n * algorithm OBJECT IDENTIFIER,\n * parameters ANY DEFINED BY algorithm OPTIONAL\n * }\n *\n * EncryptedContent ::= OCTET STRING\n *\n * RecipientInfo ::= SEQUENCE {\n * version Version,\n * issuerAndSerialNumber IssuerAndSerialNumber,\n * keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,\n * encryptedKey EncryptedKey\n * }\n *\n * IssuerAndSerialNumber ::= SEQUENCE {\n * issuer Name,\n * serialNumber CertificateSerialNumber\n * }\n *\n * CertificateSerialNumber ::= INTEGER\n *\n * KeyEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier\n *\n * EncryptedKey ::= OCTET STRING\n */\nvar forge = require('./forge');\nrequire('./asn1');\nrequire('./util');\n\n// shortcut for ASN.1 API\nvar asn1 = forge.asn1;\n\n// shortcut for PKCS#7 API\nvar p7v = module.exports = forge.pkcs7asn1 = forge.pkcs7asn1 || {};\nforge.pkcs7 = forge.pkcs7 || {};\nforge.pkcs7.asn1 = p7v;\n\nvar contentInfoValidator = {\n name: 'ContentInfo',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'ContentInfo.ContentType',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'contentType'\n }, {\n name: 'ContentInfo.content',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n type: 0,\n constructed: true,\n optional: true,\n captureAsn1: 'content'\n }]\n};\np7v.contentInfoValidator = contentInfoValidator;\n\nvar encryptedContentInfoValidator = {\n name: 'EncryptedContentInfo',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'EncryptedContentInfo.contentType',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'contentType'\n }, {\n name: 'EncryptedContentInfo.contentEncryptionAlgorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'EncryptedContentInfo.contentEncryptionAlgorithm.algorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'encAlgorithm'\n }, {\n name: 'EncryptedContentInfo.contentEncryptionAlgorithm.parameter',\n tagClass: asn1.Class.UNIVERSAL,\n captureAsn1: 'encParameter'\n }]\n }, {\n name: 'EncryptedContentInfo.encryptedContent',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n type: 0,\n /* The PKCS#7 structure output by OpenSSL somewhat differs from what\n * other implementations do generate.\n *\n * OpenSSL generates a structure like this:\n * SEQUENCE {\n * ...\n * [0]\n * 26 DA 67 D2 17 9C 45 3C B1 2A A8 59 2F 29 33 38\n * C3 C3 DF 86 71 74 7A 19 9F 40 D0 29 BE 85 90 45\n * ...\n * }\n *\n * Whereas other implementations (and this PKCS#7 module) generate:\n * SEQUENCE {\n * ...\n * [0] {\n * OCTET STRING\n * 26 DA 67 D2 17 9C 45 3C B1 2A A8 59 2F 29 33 38\n * C3 C3 DF 86 71 74 7A 19 9F 40 D0 29 BE 85 90 45\n * ...\n * }\n * }\n *\n * In order to support both, we just capture the context specific\n * field here. The OCTET STRING bit is removed below.\n */\n capture: 'encryptedContent',\n captureAsn1: 'encryptedContentAsn1'\n }]\n};\n\np7v.envelopedDataValidator = {\n name: 'EnvelopedData',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'EnvelopedData.Version',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'version'\n }, {\n name: 'EnvelopedData.RecipientInfos',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SET,\n constructed: true,\n captureAsn1: 'recipientInfos'\n }].concat(encryptedContentInfoValidator)\n};\n\np7v.encryptedDataValidator = {\n name: 'EncryptedData',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'EncryptedData.Version',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'version'\n }].concat(encryptedContentInfoValidator)\n};\n\nvar signerValidator = {\n name: 'SignerInfo',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'SignerInfo.version',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false\n }, {\n name: 'SignerInfo.issuerAndSerialNumber',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'SignerInfo.issuerAndSerialNumber.issuer',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n captureAsn1: 'issuer'\n }, {\n name: 'SignerInfo.issuerAndSerialNumber.serialNumber',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'serial'\n }]\n }, {\n name: 'SignerInfo.digestAlgorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'SignerInfo.digestAlgorithm.algorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'digestAlgorithm'\n }, {\n name: 'SignerInfo.digestAlgorithm.parameter',\n tagClass: asn1.Class.UNIVERSAL,\n constructed: false,\n captureAsn1: 'digestParameter',\n optional: true\n }]\n }, {\n name: 'SignerInfo.authenticatedAttributes',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n type: 0,\n constructed: true,\n optional: true,\n capture: 'authenticatedAttributes'\n }, {\n name: 'SignerInfo.digestEncryptionAlgorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n capture: 'signatureAlgorithm'\n }, {\n name: 'SignerInfo.encryptedDigest',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OCTETSTRING,\n constructed: false,\n capture: 'signature'\n }, {\n name: 'SignerInfo.unauthenticatedAttributes',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n type: 1,\n constructed: true,\n optional: true,\n capture: 'unauthenticatedAttributes'\n }]\n};\n\np7v.signedDataValidator = {\n name: 'SignedData',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'SignedData.Version',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'version'\n }, {\n name: 'SignedData.DigestAlgorithms',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SET,\n constructed: true,\n captureAsn1: 'digestAlgorithms'\n },\n contentInfoValidator,\n {\n name: 'SignedData.Certificates',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n type: 0,\n optional: true,\n captureAsn1: 'certificates'\n }, {\n name: 'SignedData.CertificateRevocationLists',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n type: 1,\n optional: true,\n captureAsn1: 'crls'\n }, {\n name: 'SignedData.SignerInfos',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SET,\n capture: 'signerInfos',\n optional: true,\n value: [signerValidator]\n }]\n};\n\np7v.recipientInfoValidator = {\n name: 'RecipientInfo',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'RecipientInfo.version',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'version'\n }, {\n name: 'RecipientInfo.issuerAndSerial',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'RecipientInfo.issuerAndSerial.issuer',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n captureAsn1: 'issuer'\n }, {\n name: 'RecipientInfo.issuerAndSerial.serialNumber',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'serial'\n }]\n }, {\n name: 'RecipientInfo.keyEncryptionAlgorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'RecipientInfo.keyEncryptionAlgorithm.algorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'encAlgorithm'\n }, {\n name: 'RecipientInfo.keyEncryptionAlgorithm.parameter',\n tagClass: asn1.Class.UNIVERSAL,\n constructed: false,\n captureAsn1: 'encParameter',\n optional: true\n }]\n }, {\n name: 'RecipientInfo.encryptedKey',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OCTETSTRING,\n constructed: false,\n capture: 'encKey'\n }]\n};\n","/**\n * Javascript implementation of mask generation function MGF1.\n *\n * @author Stefan Siegl\n * @author Dave Longley\n *\n * Copyright (c) 2012 Stefan Siegl \n * Copyright (c) 2014 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./util');\n\nforge.mgf = forge.mgf || {};\nvar mgf1 = module.exports = forge.mgf.mgf1 = forge.mgf1 = forge.mgf1 || {};\n\n/**\n * Creates a MGF1 mask generation function object.\n *\n * @param md the message digest API to use (eg: forge.md.sha1.create()).\n *\n * @return a mask generation function object.\n */\nmgf1.create = function(md) {\n var mgf = {\n /**\n * Generate mask of specified length.\n *\n * @param {String} seed The seed for mask generation.\n * @param maskLen Number of bytes to generate.\n * @return {String} The generated mask.\n */\n generate: function(seed, maskLen) {\n /* 2. Let T be the empty octet string. */\n var t = new forge.util.ByteBuffer();\n\n /* 3. For counter from 0 to ceil(maskLen / hLen), do the following: */\n var len = Math.ceil(maskLen / md.digestLength);\n for(var i = 0; i < len; i++) {\n /* a. Convert counter to an octet string C of length 4 octets */\n var c = new forge.util.ByteBuffer();\n c.putInt32(i);\n\n /* b. Concatenate the hash of the seed mgfSeed and C to the octet\n * string T: */\n md.start();\n md.update(seed + c.getBytes());\n t.putBuffer(md.digest());\n }\n\n /* Output the leading maskLen octets of T as the octet string mask. */\n t.truncate(t.length() - maskLen);\n return t.getBytes();\n }\n };\n\n return mgf;\n};\n","/**\n * Node.js module for Forge mask generation functions.\n *\n * @author Stefan Siegl\n *\n * Copyright 2012 Stefan Siegl \n */\nvar forge = require('./forge');\nrequire('./mgf1');\n\nmodule.exports = forge.mgf = forge.mgf || {};\nforge.mgf.mgf1 = forge.mgf1;\n","/**\n * Javascript implementation of PKCS#1 PSS signature padding.\n *\n * @author Stefan Siegl\n *\n * Copyright (c) 2012 Stefan Siegl \n */\nvar forge = require('./forge');\nrequire('./random');\nrequire('./util');\n\n// shortcut for PSS API\nvar pss = module.exports = forge.pss = forge.pss || {};\n\n/**\n * Creates a PSS signature scheme object.\n *\n * There are several ways to provide a salt for encoding:\n *\n * 1. Specify the saltLength only and the built-in PRNG will generate it.\n * 2. Specify the saltLength and a custom PRNG with 'getBytesSync' defined that\n * will be used.\n * 3. Specify the salt itself as a forge.util.ByteBuffer.\n *\n * @param options the options to use:\n * md the message digest object to use, a forge md instance.\n * mgf the mask generation function to use, a forge mgf instance.\n * [saltLength] the length of the salt in octets.\n * [prng] the pseudo-random number generator to use to produce a salt.\n * [salt] the salt to use when encoding.\n *\n * @return a signature scheme object.\n */\npss.create = function(options) {\n // backwards compatibility w/legacy args: hash, mgf, sLen\n if(arguments.length === 3) {\n options = {\n md: arguments[0],\n mgf: arguments[1],\n saltLength: arguments[2]\n };\n }\n\n var hash = options.md;\n var mgf = options.mgf;\n var hLen = hash.digestLength;\n\n var salt_ = options.salt || null;\n if(typeof salt_ === 'string') {\n // assume binary-encoded string\n salt_ = forge.util.createBuffer(salt_);\n }\n\n var sLen;\n if('saltLength' in options) {\n sLen = options.saltLength;\n } else if(salt_ !== null) {\n sLen = salt_.length();\n } else {\n throw new Error('Salt length not specified or specific salt not given.');\n }\n\n if(salt_ !== null && salt_.length() !== sLen) {\n throw new Error('Given salt length does not match length of given salt.');\n }\n\n var prng = options.prng || forge.random;\n\n var pssobj = {};\n\n /**\n * Encodes a PSS signature.\n *\n * This function implements EMSA-PSS-ENCODE as per RFC 3447, section 9.1.1.\n *\n * @param md the message digest object with the hash to sign.\n * @param modsBits the length of the RSA modulus in bits.\n *\n * @return the encoded message as a binary-encoded string of length\n * ceil((modBits - 1) / 8).\n */\n pssobj.encode = function(md, modBits) {\n var i;\n var emBits = modBits - 1;\n var emLen = Math.ceil(emBits / 8);\n\n /* 2. Let mHash = Hash(M), an octet string of length hLen. */\n var mHash = md.digest().getBytes();\n\n /* 3. If emLen < hLen + sLen + 2, output \"encoding error\" and stop. */\n if(emLen < hLen + sLen + 2) {\n throw new Error('Message is too long to encrypt.');\n }\n\n /* 4. Generate a random octet string salt of length sLen; if sLen = 0,\n * then salt is the empty string. */\n var salt;\n if(salt_ === null) {\n salt = prng.getBytesSync(sLen);\n } else {\n salt = salt_.bytes();\n }\n\n /* 5. Let M' = (0x)00 00 00 00 00 00 00 00 || mHash || salt; */\n var m_ = new forge.util.ByteBuffer();\n m_.fillWithByte(0, 8);\n m_.putBytes(mHash);\n m_.putBytes(salt);\n\n /* 6. Let H = Hash(M'), an octet string of length hLen. */\n hash.start();\n hash.update(m_.getBytes());\n var h = hash.digest().getBytes();\n\n /* 7. Generate an octet string PS consisting of emLen - sLen - hLen - 2\n * zero octets. The length of PS may be 0. */\n var ps = new forge.util.ByteBuffer();\n ps.fillWithByte(0, emLen - sLen - hLen - 2);\n\n /* 8. Let DB = PS || 0x01 || salt; DB is an octet string of length\n * emLen - hLen - 1. */\n ps.putByte(0x01);\n ps.putBytes(salt);\n var db = ps.getBytes();\n\n /* 9. Let dbMask = MGF(H, emLen - hLen - 1). */\n var maskLen = emLen - hLen - 1;\n var dbMask = mgf.generate(h, maskLen);\n\n /* 10. Let maskedDB = DB \\xor dbMask. */\n var maskedDB = '';\n for(i = 0; i < maskLen; i++) {\n maskedDB += String.fromCharCode(db.charCodeAt(i) ^ dbMask.charCodeAt(i));\n }\n\n /* 11. Set the leftmost 8emLen - emBits bits of the leftmost octet in\n * maskedDB to zero. */\n var mask = (0xFF00 >> (8 * emLen - emBits)) & 0xFF;\n maskedDB = String.fromCharCode(maskedDB.charCodeAt(0) & ~mask) +\n maskedDB.substr(1);\n\n /* 12. Let EM = maskedDB || H || 0xbc.\n * 13. Output EM. */\n return maskedDB + h + String.fromCharCode(0xbc);\n };\n\n /**\n * Verifies a PSS signature.\n *\n * This function implements EMSA-PSS-VERIFY as per RFC 3447, section 9.1.2.\n *\n * @param mHash the message digest hash, as a binary-encoded string, to\n * compare against the signature.\n * @param em the encoded message, as a binary-encoded string\n * (RSA decryption result).\n * @param modsBits the length of the RSA modulus in bits.\n *\n * @return true if the signature was verified, false if not.\n */\n pssobj.verify = function(mHash, em, modBits) {\n var i;\n var emBits = modBits - 1;\n var emLen = Math.ceil(emBits / 8);\n\n /* c. Convert the message representative m to an encoded message EM\n * of length emLen = ceil((modBits - 1) / 8) octets, where modBits\n * is the length in bits of the RSA modulus n */\n em = em.substr(-emLen);\n\n /* 3. If emLen < hLen + sLen + 2, output \"inconsistent\" and stop. */\n if(emLen < hLen + sLen + 2) {\n throw new Error('Inconsistent parameters to PSS signature verification.');\n }\n\n /* 4. If the rightmost octet of EM does not have hexadecimal value\n * 0xbc, output \"inconsistent\" and stop. */\n if(em.charCodeAt(emLen - 1) !== 0xbc) {\n throw new Error('Encoded message does not end in 0xBC.');\n }\n\n /* 5. Let maskedDB be the leftmost emLen - hLen - 1 octets of EM, and\n * let H be the next hLen octets. */\n var maskLen = emLen - hLen - 1;\n var maskedDB = em.substr(0, maskLen);\n var h = em.substr(maskLen, hLen);\n\n /* 6. If the leftmost 8emLen - emBits bits of the leftmost octet in\n * maskedDB are not all equal to zero, output \"inconsistent\" and stop. */\n var mask = (0xFF00 >> (8 * emLen - emBits)) & 0xFF;\n if((maskedDB.charCodeAt(0) & mask) !== 0) {\n throw new Error('Bits beyond keysize not zero as expected.');\n }\n\n /* 7. Let dbMask = MGF(H, emLen - hLen - 1). */\n var dbMask = mgf.generate(h, maskLen);\n\n /* 8. Let DB = maskedDB \\xor dbMask. */\n var db = '';\n for(i = 0; i < maskLen; i++) {\n db += String.fromCharCode(maskedDB.charCodeAt(i) ^ dbMask.charCodeAt(i));\n }\n\n /* 9. Set the leftmost 8emLen - emBits bits of the leftmost octet\n * in DB to zero. */\n db = String.fromCharCode(db.charCodeAt(0) & ~mask) + db.substr(1);\n\n /* 10. If the emLen - hLen - sLen - 2 leftmost octets of DB are not zero\n * or if the octet at position emLen - hLen - sLen - 1 (the leftmost\n * position is \"position 1\") does not have hexadecimal value 0x01,\n * output \"inconsistent\" and stop. */\n var checkLen = emLen - hLen - sLen - 2;\n for(i = 0; i < checkLen; i++) {\n if(db.charCodeAt(i) !== 0x00) {\n throw new Error('Leftmost octets not zero as expected');\n }\n }\n\n if(db.charCodeAt(checkLen) !== 0x01) {\n throw new Error('Inconsistent PSS signature, 0x01 marker not found');\n }\n\n /* 11. Let salt be the last sLen octets of DB. */\n var salt = db.substr(-sLen);\n\n /* 12. Let M' = (0x)00 00 00 00 00 00 00 00 || mHash || salt */\n var m_ = new forge.util.ByteBuffer();\n m_.fillWithByte(0, 8);\n m_.putBytes(mHash);\n m_.putBytes(salt);\n\n /* 13. Let H' = Hash(M'), an octet string of length hLen. */\n hash.start();\n hash.update(m_.getBytes());\n var h_ = hash.digest().getBytes();\n\n /* 14. If H = H', output \"consistent.\" Otherwise, output \"inconsistent.\" */\n return h === h_;\n };\n\n return pssobj;\n};\n","/**\n * Javascript implementation of X.509 and related components (such as\n * Certification Signing Requests) of a Public Key Infrastructure.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2010-2014 Digital Bazaar, Inc.\n *\n * The ASN.1 representation of an X.509v3 certificate is as follows\n * (see RFC 2459):\n *\n * Certificate ::= SEQUENCE {\n * tbsCertificate TBSCertificate,\n * signatureAlgorithm AlgorithmIdentifier,\n * signatureValue BIT STRING\n * }\n *\n * TBSCertificate ::= SEQUENCE {\n * version [0] EXPLICIT Version DEFAULT v1,\n * serialNumber CertificateSerialNumber,\n * signature AlgorithmIdentifier,\n * issuer Name,\n * validity Validity,\n * subject Name,\n * subjectPublicKeyInfo SubjectPublicKeyInfo,\n * issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL,\n * -- If present, version shall be v2 or v3\n * subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL,\n * -- If present, version shall be v2 or v3\n * extensions [3] EXPLICIT Extensions OPTIONAL\n * -- If present, version shall be v3\n * }\n *\n * Version ::= INTEGER { v1(0), v2(1), v3(2) }\n *\n * CertificateSerialNumber ::= INTEGER\n *\n * Name ::= CHOICE {\n * // only one possible choice for now\n * RDNSequence\n * }\n *\n * RDNSequence ::= SEQUENCE OF RelativeDistinguishedName\n *\n * RelativeDistinguishedName ::= SET OF AttributeTypeAndValue\n *\n * AttributeTypeAndValue ::= SEQUENCE {\n * type AttributeType,\n * value AttributeValue\n * }\n * AttributeType ::= OBJECT IDENTIFIER\n * AttributeValue ::= ANY DEFINED BY AttributeType\n *\n * Validity ::= SEQUENCE {\n * notBefore Time,\n * notAfter Time\n * }\n *\n * Time ::= CHOICE {\n * utcTime UTCTime,\n * generalTime GeneralizedTime\n * }\n *\n * UniqueIdentifier ::= BIT STRING\n *\n * SubjectPublicKeyInfo ::= SEQUENCE {\n * algorithm AlgorithmIdentifier,\n * subjectPublicKey BIT STRING\n * }\n *\n * Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension\n *\n * Extension ::= SEQUENCE {\n * extnID OBJECT IDENTIFIER,\n * critical BOOLEAN DEFAULT FALSE,\n * extnValue OCTET STRING\n * }\n *\n * The only key algorithm currently supported for PKI is RSA.\n *\n * RSASSA-PSS signatures are described in RFC 3447 and RFC 4055.\n *\n * PKCS#10 v1.7 describes certificate signing requests:\n *\n * CertificationRequestInfo:\n *\n * CertificationRequestInfo ::= SEQUENCE {\n * version INTEGER { v1(0) } (v1,...),\n * subject Name,\n * subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }},\n * attributes [0] Attributes{{ CRIAttributes }}\n * }\n *\n * Attributes { ATTRIBUTE:IOSet } ::= SET OF Attribute{{ IOSet }}\n *\n * CRIAttributes ATTRIBUTE ::= {\n * ... -- add any locally defined attributes here -- }\n *\n * Attribute { ATTRIBUTE:IOSet } ::= SEQUENCE {\n * type ATTRIBUTE.&id({IOSet}),\n * values SET SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{@type})\n * }\n *\n * CertificationRequest ::= SEQUENCE {\n * certificationRequestInfo CertificationRequestInfo,\n * signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }},\n * signature BIT STRING\n * }\n */\nvar forge = require('./forge');\nrequire('./aes');\nrequire('./asn1');\nrequire('./des');\nrequire('./md');\nrequire('./mgf');\nrequire('./oids');\nrequire('./pem');\nrequire('./pss');\nrequire('./rsa');\nrequire('./util');\n\n// shortcut for asn.1 API\nvar asn1 = forge.asn1;\n\n/* Public Key Infrastructure (PKI) implementation. */\nvar pki = module.exports = forge.pki = forge.pki || {};\nvar oids = pki.oids;\n\n// short name OID mappings\nvar _shortNames = {};\n_shortNames['CN'] = oids['commonName'];\n_shortNames['commonName'] = 'CN';\n_shortNames['C'] = oids['countryName'];\n_shortNames['countryName'] = 'C';\n_shortNames['L'] = oids['localityName'];\n_shortNames['localityName'] = 'L';\n_shortNames['ST'] = oids['stateOrProvinceName'];\n_shortNames['stateOrProvinceName'] = 'ST';\n_shortNames['O'] = oids['organizationName'];\n_shortNames['organizationName'] = 'O';\n_shortNames['OU'] = oids['organizationalUnitName'];\n_shortNames['organizationalUnitName'] = 'OU';\n_shortNames['E'] = oids['emailAddress'];\n_shortNames['emailAddress'] = 'E';\n\n// validator for an SubjectPublicKeyInfo structure\n// Note: Currently only works with an RSA public key\nvar publicKeyValidator = forge.pki.rsa.publicKeyValidator;\n\n// validator for an X.509v3 certificate\nvar x509CertificateValidator = {\n name: 'Certificate',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'Certificate.TBSCertificate',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n captureAsn1: 'tbsCertificate',\n value: [{\n name: 'Certificate.TBSCertificate.version',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n type: 0,\n constructed: true,\n optional: true,\n value: [{\n name: 'Certificate.TBSCertificate.version.integer',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'certVersion'\n }]\n }, {\n name: 'Certificate.TBSCertificate.serialNumber',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'certSerialNumber'\n }, {\n name: 'Certificate.TBSCertificate.signature',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'Certificate.TBSCertificate.signature.algorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'certinfoSignatureOid'\n }, {\n name: 'Certificate.TBSCertificate.signature.parameters',\n tagClass: asn1.Class.UNIVERSAL,\n optional: true,\n captureAsn1: 'certinfoSignatureParams'\n }]\n }, {\n name: 'Certificate.TBSCertificate.issuer',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n captureAsn1: 'certIssuer'\n }, {\n name: 'Certificate.TBSCertificate.validity',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n // Note: UTC and generalized times may both appear so the capture\n // names are based on their detected order, the names used below\n // are only for the common case, which validity time really means\n // \"notBefore\" and which means \"notAfter\" will be determined by order\n value: [{\n // notBefore (Time) (UTC time case)\n name: 'Certificate.TBSCertificate.validity.notBefore (utc)',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.UTCTIME,\n constructed: false,\n optional: true,\n capture: 'certValidity1UTCTime'\n }, {\n // notBefore (Time) (generalized time case)\n name: 'Certificate.TBSCertificate.validity.notBefore (generalized)',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.GENERALIZEDTIME,\n constructed: false,\n optional: true,\n capture: 'certValidity2GeneralizedTime'\n }, {\n // notAfter (Time) (only UTC time is supported)\n name: 'Certificate.TBSCertificate.validity.notAfter (utc)',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.UTCTIME,\n constructed: false,\n optional: true,\n capture: 'certValidity3UTCTime'\n }, {\n // notAfter (Time) (only UTC time is supported)\n name: 'Certificate.TBSCertificate.validity.notAfter (generalized)',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.GENERALIZEDTIME,\n constructed: false,\n optional: true,\n capture: 'certValidity4GeneralizedTime'\n }]\n }, {\n // Name (subject) (RDNSequence)\n name: 'Certificate.TBSCertificate.subject',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n captureAsn1: 'certSubject'\n },\n // SubjectPublicKeyInfo\n publicKeyValidator,\n {\n // issuerUniqueID (optional)\n name: 'Certificate.TBSCertificate.issuerUniqueID',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n type: 1,\n constructed: true,\n optional: true,\n value: [{\n name: 'Certificate.TBSCertificate.issuerUniqueID.id',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.BITSTRING,\n constructed: false,\n // TODO: support arbitrary bit length ids\n captureBitStringValue: 'certIssuerUniqueId'\n }]\n }, {\n // subjectUniqueID (optional)\n name: 'Certificate.TBSCertificate.subjectUniqueID',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n type: 2,\n constructed: true,\n optional: true,\n value: [{\n name: 'Certificate.TBSCertificate.subjectUniqueID.id',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.BITSTRING,\n constructed: false,\n // TODO: support arbitrary bit length ids\n captureBitStringValue: 'certSubjectUniqueId'\n }]\n }, {\n // Extensions (optional)\n name: 'Certificate.TBSCertificate.extensions',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n type: 3,\n constructed: true,\n captureAsn1: 'certExtensions',\n optional: true\n }]\n }, {\n // AlgorithmIdentifier (signature algorithm)\n name: 'Certificate.signatureAlgorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n // algorithm\n name: 'Certificate.signatureAlgorithm.algorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'certSignatureOid'\n }, {\n name: 'Certificate.TBSCertificate.signature.parameters',\n tagClass: asn1.Class.UNIVERSAL,\n optional: true,\n captureAsn1: 'certSignatureParams'\n }]\n }, {\n // SignatureValue\n name: 'Certificate.signatureValue',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.BITSTRING,\n constructed: false,\n captureBitStringValue: 'certSignature'\n }]\n};\n\nvar rsassaPssParameterValidator = {\n name: 'rsapss',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'rsapss.hashAlgorithm',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n type: 0,\n constructed: true,\n value: [{\n name: 'rsapss.hashAlgorithm.AlgorithmIdentifier',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Class.SEQUENCE,\n constructed: true,\n optional: true,\n value: [{\n name: 'rsapss.hashAlgorithm.AlgorithmIdentifier.algorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'hashOid'\n /* parameter block omitted, for SHA1 NULL anyhow. */\n }]\n }]\n }, {\n name: 'rsapss.maskGenAlgorithm',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n type: 1,\n constructed: true,\n value: [{\n name: 'rsapss.maskGenAlgorithm.AlgorithmIdentifier',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Class.SEQUENCE,\n constructed: true,\n optional: true,\n value: [{\n name: 'rsapss.maskGenAlgorithm.AlgorithmIdentifier.algorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'maskGenOid'\n }, {\n name: 'rsapss.maskGenAlgorithm.AlgorithmIdentifier.params',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'rsapss.maskGenAlgorithm.AlgorithmIdentifier.params.algorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'maskGenHashOid'\n /* parameter block omitted, for SHA1 NULL anyhow. */\n }]\n }]\n }]\n }, {\n name: 'rsapss.saltLength',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n type: 2,\n optional: true,\n value: [{\n name: 'rsapss.saltLength.saltLength',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Class.INTEGER,\n constructed: false,\n capture: 'saltLength'\n }]\n }, {\n name: 'rsapss.trailerField',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n type: 3,\n optional: true,\n value: [{\n name: 'rsapss.trailer.trailer',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Class.INTEGER,\n constructed: false,\n capture: 'trailer'\n }]\n }]\n};\n\n// validator for a CertificationRequestInfo structure\nvar certificationRequestInfoValidator = {\n name: 'CertificationRequestInfo',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n captureAsn1: 'certificationRequestInfo',\n value: [{\n name: 'CertificationRequestInfo.integer',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'certificationRequestInfoVersion'\n }, {\n // Name (subject) (RDNSequence)\n name: 'CertificationRequestInfo.subject',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n captureAsn1: 'certificationRequestInfoSubject'\n },\n // SubjectPublicKeyInfo\n publicKeyValidator,\n {\n name: 'CertificationRequestInfo.attributes',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n type: 0,\n constructed: true,\n optional: true,\n capture: 'certificationRequestInfoAttributes',\n value: [{\n name: 'CertificationRequestInfo.attributes',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'CertificationRequestInfo.attributes.type',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false\n }, {\n name: 'CertificationRequestInfo.attributes.value',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SET,\n constructed: true\n }]\n }]\n }]\n};\n\n// validator for a CertificationRequest structure\nvar certificationRequestValidator = {\n name: 'CertificationRequest',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n captureAsn1: 'csr',\n value: [\n certificationRequestInfoValidator, {\n // AlgorithmIdentifier (signature algorithm)\n name: 'CertificationRequest.signatureAlgorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n // algorithm\n name: 'CertificationRequest.signatureAlgorithm.algorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'csrSignatureOid'\n }, {\n name: 'CertificationRequest.signatureAlgorithm.parameters',\n tagClass: asn1.Class.UNIVERSAL,\n optional: true,\n captureAsn1: 'csrSignatureParams'\n }]\n }, {\n // signature\n name: 'CertificationRequest.signature',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.BITSTRING,\n constructed: false,\n captureBitStringValue: 'csrSignature'\n }\n ]\n};\n\n/**\n * Converts an RDNSequence of ASN.1 DER-encoded RelativeDistinguishedName\n * sets into an array with objects that have type and value properties.\n *\n * @param rdn the RDNSequence to convert.\n * @param md a message digest to append type and value to if provided.\n */\npki.RDNAttributesAsArray = function(rdn, md) {\n var rval = [];\n\n // each value in 'rdn' in is a SET of RelativeDistinguishedName\n var set, attr, obj;\n for(var si = 0; si < rdn.value.length; ++si) {\n // get the RelativeDistinguishedName set\n set = rdn.value[si];\n\n // each value in the SET is an AttributeTypeAndValue sequence\n // containing first a type (an OID) and second a value (defined by\n // the OID)\n for(var i = 0; i < set.value.length; ++i) {\n obj = {};\n attr = set.value[i];\n obj.type = asn1.derToOid(attr.value[0].value);\n obj.value = attr.value[1].value;\n obj.valueTagClass = attr.value[1].type;\n // if the OID is known, get its name and short name\n if(obj.type in oids) {\n obj.name = oids[obj.type];\n if(obj.name in _shortNames) {\n obj.shortName = _shortNames[obj.name];\n }\n }\n if(md) {\n md.update(obj.type);\n md.update(obj.value);\n }\n rval.push(obj);\n }\n }\n\n return rval;\n};\n\n/**\n * Converts ASN.1 CRIAttributes into an array with objects that have type and\n * value properties.\n *\n * @param attributes the CRIAttributes to convert.\n */\npki.CRIAttributesAsArray = function(attributes) {\n var rval = [];\n\n // each value in 'attributes' in is a SEQUENCE with an OID and a SET\n for(var si = 0; si < attributes.length; ++si) {\n // get the attribute sequence\n var seq = attributes[si];\n\n // each value in the SEQUENCE containing first a type (an OID) and\n // second a set of values (defined by the OID)\n var type = asn1.derToOid(seq.value[0].value);\n var values = seq.value[1].value;\n for(var vi = 0; vi < values.length; ++vi) {\n var obj = {};\n obj.type = type;\n obj.value = values[vi].value;\n obj.valueTagClass = values[vi].type;\n // if the OID is known, get its name and short name\n if(obj.type in oids) {\n obj.name = oids[obj.type];\n if(obj.name in _shortNames) {\n obj.shortName = _shortNames[obj.name];\n }\n }\n // parse extensions\n if(obj.type === oids.extensionRequest) {\n obj.extensions = [];\n for(var ei = 0; ei < obj.value.length; ++ei) {\n obj.extensions.push(pki.certificateExtensionFromAsn1(obj.value[ei]));\n }\n }\n rval.push(obj);\n }\n }\n\n return rval;\n};\n\n/**\n * Gets an issuer or subject attribute from its name, type, or short name.\n *\n * @param obj the issuer or subject object.\n * @param options a short name string or an object with:\n * shortName the short name for the attribute.\n * name the name for the attribute.\n * type the type for the attribute.\n *\n * @return the attribute.\n */\nfunction _getAttribute(obj, options) {\n if(typeof options === 'string') {\n options = {shortName: options};\n }\n\n var rval = null;\n var attr;\n for(var i = 0; rval === null && i < obj.attributes.length; ++i) {\n attr = obj.attributes[i];\n if(options.type && options.type === attr.type) {\n rval = attr;\n } else if(options.name && options.name === attr.name) {\n rval = attr;\n } else if(options.shortName && options.shortName === attr.shortName) {\n rval = attr;\n }\n }\n return rval;\n}\n\n/**\n * Converts signature parameters from ASN.1 structure.\n *\n * Currently only RSASSA-PSS supported. The PKCS#1 v1.5 signature scheme had\n * no parameters.\n *\n * RSASSA-PSS-params ::= SEQUENCE {\n * hashAlgorithm [0] HashAlgorithm DEFAULT\n * sha1Identifier,\n * maskGenAlgorithm [1] MaskGenAlgorithm DEFAULT\n * mgf1SHA1Identifier,\n * saltLength [2] INTEGER DEFAULT 20,\n * trailerField [3] INTEGER DEFAULT 1\n * }\n *\n * HashAlgorithm ::= AlgorithmIdentifier\n *\n * MaskGenAlgorithm ::= AlgorithmIdentifier\n *\n * AlgorithmIdentifer ::= SEQUENCE {\n * algorithm OBJECT IDENTIFIER,\n * parameters ANY DEFINED BY algorithm OPTIONAL\n * }\n *\n * @param oid The OID specifying the signature algorithm\n * @param obj The ASN.1 structure holding the parameters\n * @param fillDefaults Whether to use return default values where omitted\n * @return signature parameter object\n */\nvar _readSignatureParameters = function(oid, obj, fillDefaults) {\n var params = {};\n\n if(oid !== oids['RSASSA-PSS']) {\n return params;\n }\n\n if(fillDefaults) {\n params = {\n hash: {\n algorithmOid: oids['sha1']\n },\n mgf: {\n algorithmOid: oids['mgf1'],\n hash: {\n algorithmOid: oids['sha1']\n }\n },\n saltLength: 20\n };\n }\n\n var capture = {};\n var errors = [];\n if(!asn1.validate(obj, rsassaPssParameterValidator, capture, errors)) {\n var error = new Error('Cannot read RSASSA-PSS parameter block.');\n error.errors = errors;\n throw error;\n }\n\n if(capture.hashOid !== undefined) {\n params.hash = params.hash || {};\n params.hash.algorithmOid = asn1.derToOid(capture.hashOid);\n }\n\n if(capture.maskGenOid !== undefined) {\n params.mgf = params.mgf || {};\n params.mgf.algorithmOid = asn1.derToOid(capture.maskGenOid);\n params.mgf.hash = params.mgf.hash || {};\n params.mgf.hash.algorithmOid = asn1.derToOid(capture.maskGenHashOid);\n }\n\n if(capture.saltLength !== undefined) {\n params.saltLength = capture.saltLength.charCodeAt(0);\n }\n\n return params;\n};\n\n/**\n * Create signature digest for OID.\n *\n * @param options\n * signatureOid: the OID specifying the signature algorithm.\n * type: a human readable type for error messages\n * @return a created md instance. throws if unknown oid.\n */\nvar _createSignatureDigest = function(options) {\n switch(oids[options.signatureOid]) {\n case 'sha1WithRSAEncryption':\n // deprecated alias\n case 'sha1WithRSASignature':\n return forge.md.sha1.create();\n case 'md5WithRSAEncryption':\n return forge.md.md5.create();\n case 'sha256WithRSAEncryption':\n return forge.md.sha256.create();\n case 'sha384WithRSAEncryption':\n return forge.md.sha384.create();\n case 'sha512WithRSAEncryption':\n return forge.md.sha512.create();\n case 'RSASSA-PSS':\n return forge.md.sha256.create();\n default:\n var error = new Error(\n 'Could not compute ' + options.type + ' digest. ' +\n 'Unknown signature OID.');\n error.signatureOid = options.signatureOid;\n throw error;\n }\n};\n\n/**\n * Verify signature on certificate or CSR.\n *\n * @param options:\n * certificate the certificate or CSR to verify.\n * md the signature digest.\n * signature the signature\n * @return a created md instance. throws if unknown oid.\n */\nvar _verifySignature = function(options) {\n var cert = options.certificate;\n var scheme;\n\n switch(cert.signatureOid) {\n case oids.sha1WithRSAEncryption:\n // deprecated alias\n case oids.sha1WithRSASignature:\n /* use PKCS#1 v1.5 padding scheme */\n break;\n case oids['RSASSA-PSS']:\n var hash, mgf;\n\n /* initialize mgf */\n hash = oids[cert.signatureParameters.mgf.hash.algorithmOid];\n if(hash === undefined || forge.md[hash] === undefined) {\n var error = new Error('Unsupported MGF hash function.');\n error.oid = cert.signatureParameters.mgf.hash.algorithmOid;\n error.name = hash;\n throw error;\n }\n\n mgf = oids[cert.signatureParameters.mgf.algorithmOid];\n if(mgf === undefined || forge.mgf[mgf] === undefined) {\n var error = new Error('Unsupported MGF function.');\n error.oid = cert.signatureParameters.mgf.algorithmOid;\n error.name = mgf;\n throw error;\n }\n\n mgf = forge.mgf[mgf].create(forge.md[hash].create());\n\n /* initialize hash function */\n hash = oids[cert.signatureParameters.hash.algorithmOid];\n if(hash === undefined || forge.md[hash] === undefined) {\n var error = new Error('Unsupported RSASSA-PSS hash function.');\n error.oid = cert.signatureParameters.hash.algorithmOid;\n error.name = hash;\n throw error;\n }\n\n scheme = forge.pss.create(\n forge.md[hash].create(), mgf, cert.signatureParameters.saltLength\n );\n break;\n }\n\n // verify signature on cert using public key\n return cert.publicKey.verify(\n options.md.digest().getBytes(), options.signature, scheme\n );\n};\n\n/**\n * Converts an X.509 certificate from PEM format.\n *\n * Note: If the certificate is to be verified then compute hash should\n * be set to true. This will scan the TBSCertificate part of the ASN.1\n * object while it is converted so it doesn't need to be converted back\n * to ASN.1-DER-encoding later.\n *\n * @param pem the PEM-formatted certificate.\n * @param computeHash true to compute the hash for verification.\n * @param strict true to be strict when checking ASN.1 value lengths, false to\n * allow truncated values (default: true).\n *\n * @return the certificate.\n */\npki.certificateFromPem = function(pem, computeHash, strict) {\n var msg = forge.pem.decode(pem)[0];\n\n if(msg.type !== 'CERTIFICATE' &&\n msg.type !== 'X509 CERTIFICATE' &&\n msg.type !== 'TRUSTED CERTIFICATE') {\n var error = new Error(\n 'Could not convert certificate from PEM; PEM header type ' +\n 'is not \"CERTIFICATE\", \"X509 CERTIFICATE\", or \"TRUSTED CERTIFICATE\".');\n error.headerType = msg.type;\n throw error;\n }\n if(msg.procType && msg.procType.type === 'ENCRYPTED') {\n throw new Error(\n 'Could not convert certificate from PEM; PEM is encrypted.');\n }\n\n // convert DER to ASN.1 object\n var obj = asn1.fromDer(msg.body, strict);\n\n return pki.certificateFromAsn1(obj, computeHash);\n};\n\n/**\n * Converts an X.509 certificate to PEM format.\n *\n * @param cert the certificate.\n * @param maxline the maximum characters per line, defaults to 64.\n *\n * @return the PEM-formatted certificate.\n */\npki.certificateToPem = function(cert, maxline) {\n // convert to ASN.1, then DER, then PEM-encode\n var msg = {\n type: 'CERTIFICATE',\n body: asn1.toDer(pki.certificateToAsn1(cert)).getBytes()\n };\n return forge.pem.encode(msg, {maxline: maxline});\n};\n\n/**\n * Converts an RSA public key from PEM format.\n *\n * @param pem the PEM-formatted public key.\n *\n * @return the public key.\n */\npki.publicKeyFromPem = function(pem) {\n var msg = forge.pem.decode(pem)[0];\n\n if(msg.type !== 'PUBLIC KEY' && msg.type !== 'RSA PUBLIC KEY') {\n var error = new Error('Could not convert public key from PEM; PEM header ' +\n 'type is not \"PUBLIC KEY\" or \"RSA PUBLIC KEY\".');\n error.headerType = msg.type;\n throw error;\n }\n if(msg.procType && msg.procType.type === 'ENCRYPTED') {\n throw new Error('Could not convert public key from PEM; PEM is encrypted.');\n }\n\n // convert DER to ASN.1 object\n var obj = asn1.fromDer(msg.body);\n\n return pki.publicKeyFromAsn1(obj);\n};\n\n/**\n * Converts an RSA public key to PEM format (using a SubjectPublicKeyInfo).\n *\n * @param key the public key.\n * @param maxline the maximum characters per line, defaults to 64.\n *\n * @return the PEM-formatted public key.\n */\npki.publicKeyToPem = function(key, maxline) {\n // convert to ASN.1, then DER, then PEM-encode\n var msg = {\n type: 'PUBLIC KEY',\n body: asn1.toDer(pki.publicKeyToAsn1(key)).getBytes()\n };\n return forge.pem.encode(msg, {maxline: maxline});\n};\n\n/**\n * Converts an RSA public key to PEM format (using an RSAPublicKey).\n *\n * @param key the public key.\n * @param maxline the maximum characters per line, defaults to 64.\n *\n * @return the PEM-formatted public key.\n */\npki.publicKeyToRSAPublicKeyPem = function(key, maxline) {\n // convert to ASN.1, then DER, then PEM-encode\n var msg = {\n type: 'RSA PUBLIC KEY',\n body: asn1.toDer(pki.publicKeyToRSAPublicKey(key)).getBytes()\n };\n return forge.pem.encode(msg, {maxline: maxline});\n};\n\n/**\n * Gets a fingerprint for the given public key.\n *\n * @param options the options to use.\n * [md] the message digest object to use (defaults to forge.md.sha1).\n * [type] the type of fingerprint, such as 'RSAPublicKey',\n * 'SubjectPublicKeyInfo' (defaults to 'RSAPublicKey').\n * [encoding] an alternative output encoding, such as 'hex'\n * (defaults to none, outputs a byte buffer).\n * [delimiter] the delimiter to use between bytes for 'hex' encoded\n * output, eg: ':' (defaults to none).\n *\n * @return the fingerprint as a byte buffer or other encoding based on options.\n */\npki.getPublicKeyFingerprint = function(key, options) {\n options = options || {};\n var md = options.md || forge.md.sha1.create();\n var type = options.type || 'RSAPublicKey';\n\n var bytes;\n switch(type) {\n case 'RSAPublicKey':\n bytes = asn1.toDer(pki.publicKeyToRSAPublicKey(key)).getBytes();\n break;\n case 'SubjectPublicKeyInfo':\n bytes = asn1.toDer(pki.publicKeyToAsn1(key)).getBytes();\n break;\n default:\n throw new Error('Unknown fingerprint type \"' + options.type + '\".');\n }\n\n // hash public key bytes\n md.start();\n md.update(bytes);\n var digest = md.digest();\n if(options.encoding === 'hex') {\n var hex = digest.toHex();\n if(options.delimiter) {\n return hex.match(/.{2}/g).join(options.delimiter);\n }\n return hex;\n } else if(options.encoding === 'binary') {\n return digest.getBytes();\n } else if(options.encoding) {\n throw new Error('Unknown encoding \"' + options.encoding + '\".');\n }\n return digest;\n};\n\n/**\n * Converts a PKCS#10 certification request (CSR) from PEM format.\n *\n * Note: If the certification request is to be verified then compute hash\n * should be set to true. This will scan the CertificationRequestInfo part of\n * the ASN.1 object while it is converted so it doesn't need to be converted\n * back to ASN.1-DER-encoding later.\n *\n * @param pem the PEM-formatted certificate.\n * @param computeHash true to compute the hash for verification.\n * @param strict true to be strict when checking ASN.1 value lengths, false to\n * allow truncated values (default: true).\n *\n * @return the certification request (CSR).\n */\npki.certificationRequestFromPem = function(pem, computeHash, strict) {\n var msg = forge.pem.decode(pem)[0];\n\n if(msg.type !== 'CERTIFICATE REQUEST') {\n var error = new Error('Could not convert certification request from PEM; ' +\n 'PEM header type is not \"CERTIFICATE REQUEST\".');\n error.headerType = msg.type;\n throw error;\n }\n if(msg.procType && msg.procType.type === 'ENCRYPTED') {\n throw new Error('Could not convert certification request from PEM; ' +\n 'PEM is encrypted.');\n }\n\n // convert DER to ASN.1 object\n var obj = asn1.fromDer(msg.body, strict);\n\n return pki.certificationRequestFromAsn1(obj, computeHash);\n};\n\n/**\n * Converts a PKCS#10 certification request (CSR) to PEM format.\n *\n * @param csr the certification request.\n * @param maxline the maximum characters per line, defaults to 64.\n *\n * @return the PEM-formatted certification request.\n */\npki.certificationRequestToPem = function(csr, maxline) {\n // convert to ASN.1, then DER, then PEM-encode\n var msg = {\n type: 'CERTIFICATE REQUEST',\n body: asn1.toDer(pki.certificationRequestToAsn1(csr)).getBytes()\n };\n return forge.pem.encode(msg, {maxline: maxline});\n};\n\n/**\n * Creates an empty X.509v3 RSA certificate.\n *\n * @return the certificate.\n */\npki.createCertificate = function() {\n var cert = {};\n cert.version = 0x02;\n cert.serialNumber = '00';\n cert.signatureOid = null;\n cert.signature = null;\n cert.siginfo = {};\n cert.siginfo.algorithmOid = null;\n cert.validity = {};\n cert.validity.notBefore = new Date();\n cert.validity.notAfter = new Date();\n\n cert.issuer = {};\n cert.issuer.getField = function(sn) {\n return _getAttribute(cert.issuer, sn);\n };\n cert.issuer.addField = function(attr) {\n _fillMissingFields([attr]);\n cert.issuer.attributes.push(attr);\n };\n cert.issuer.attributes = [];\n cert.issuer.hash = null;\n\n cert.subject = {};\n cert.subject.getField = function(sn) {\n return _getAttribute(cert.subject, sn);\n };\n cert.subject.addField = function(attr) {\n _fillMissingFields([attr]);\n cert.subject.attributes.push(attr);\n };\n cert.subject.attributes = [];\n cert.subject.hash = null;\n\n cert.extensions = [];\n cert.publicKey = null;\n cert.md = null;\n\n /**\n * Sets the subject of this certificate.\n *\n * @param attrs the array of subject attributes to use.\n * @param uniqueId an optional a unique ID to use.\n */\n cert.setSubject = function(attrs, uniqueId) {\n // set new attributes, clear hash\n _fillMissingFields(attrs);\n cert.subject.attributes = attrs;\n delete cert.subject.uniqueId;\n if(uniqueId) {\n // TODO: support arbitrary bit length ids\n cert.subject.uniqueId = uniqueId;\n }\n cert.subject.hash = null;\n };\n\n /**\n * Sets the issuer of this certificate.\n *\n * @param attrs the array of issuer attributes to use.\n * @param uniqueId an optional a unique ID to use.\n */\n cert.setIssuer = function(attrs, uniqueId) {\n // set new attributes, clear hash\n _fillMissingFields(attrs);\n cert.issuer.attributes = attrs;\n delete cert.issuer.uniqueId;\n if(uniqueId) {\n // TODO: support arbitrary bit length ids\n cert.issuer.uniqueId = uniqueId;\n }\n cert.issuer.hash = null;\n };\n\n /**\n * Sets the extensions of this certificate.\n *\n * @param exts the array of extensions to use.\n */\n cert.setExtensions = function(exts) {\n for(var i = 0; i < exts.length; ++i) {\n _fillMissingExtensionFields(exts[i], {cert: cert});\n }\n // set new extensions\n cert.extensions = exts;\n };\n\n /**\n * Gets an extension by its name or id.\n *\n * @param options the name to use or an object with:\n * name the name to use.\n * id the id to use.\n *\n * @return the extension or null if not found.\n */\n cert.getExtension = function(options) {\n if(typeof options === 'string') {\n options = {name: options};\n }\n\n var rval = null;\n var ext;\n for(var i = 0; rval === null && i < cert.extensions.length; ++i) {\n ext = cert.extensions[i];\n if(options.id && ext.id === options.id) {\n rval = ext;\n } else if(options.name && ext.name === options.name) {\n rval = ext;\n }\n }\n return rval;\n };\n\n /**\n * Signs this certificate using the given private key.\n *\n * @param key the private key to sign with.\n * @param md the message digest object to use (defaults to forge.md.sha1).\n */\n cert.sign = function(key, md) {\n // TODO: get signature OID from private key\n cert.md = md || forge.md.sha1.create();\n var algorithmOid = oids[cert.md.algorithm + 'WithRSAEncryption'];\n if(!algorithmOid) {\n var error = new Error('Could not compute certificate digest. ' +\n 'Unknown message digest algorithm OID.');\n error.algorithm = cert.md.algorithm;\n throw error;\n }\n cert.signatureOid = cert.siginfo.algorithmOid = algorithmOid;\n\n // get TBSCertificate, convert to DER\n cert.tbsCertificate = pki.getTBSCertificate(cert);\n var bytes = asn1.toDer(cert.tbsCertificate);\n\n // digest and sign\n cert.md.update(bytes.getBytes());\n cert.signature = key.sign(cert.md);\n };\n\n /**\n * Attempts verify the signature on the passed certificate using this\n * certificate's public key.\n *\n * @param child the certificate to verify.\n *\n * @return true if verified, false if not.\n */\n cert.verify = function(child) {\n var rval = false;\n\n if(!cert.issued(child)) {\n var issuer = child.issuer;\n var subject = cert.subject;\n var error = new Error(\n 'The parent certificate did not issue the given child ' +\n 'certificate; the child certificate\\'s issuer does not match the ' +\n 'parent\\'s subject.');\n error.expectedIssuer = subject.attributes;\n error.actualIssuer = issuer.attributes;\n throw error;\n }\n\n var md = child.md;\n if(md === null) {\n // create digest for OID signature types\n md = _createSignatureDigest({\n signatureOid: child.signatureOid,\n type: 'certificate'\n });\n\n // produce DER formatted TBSCertificate and digest it\n var tbsCertificate = child.tbsCertificate || pki.getTBSCertificate(child);\n var bytes = asn1.toDer(tbsCertificate);\n md.update(bytes.getBytes());\n }\n\n if(md !== null) {\n rval = _verifySignature({\n certificate: cert, md: md, signature: child.signature\n });\n }\n\n return rval;\n };\n\n /**\n * Returns true if this certificate's issuer matches the passed\n * certificate's subject. Note that no signature check is performed.\n *\n * @param parent the certificate to check.\n *\n * @return true if this certificate's issuer matches the passed certificate's\n * subject.\n */\n cert.isIssuer = function(parent) {\n var rval = false;\n\n var i = cert.issuer;\n var s = parent.subject;\n\n // compare hashes if present\n if(i.hash && s.hash) {\n rval = (i.hash === s.hash);\n } else if(i.attributes.length === s.attributes.length) {\n // all attributes are the same so issuer matches subject\n rval = true;\n var iattr, sattr;\n for(var n = 0; rval && n < i.attributes.length; ++n) {\n iattr = i.attributes[n];\n sattr = s.attributes[n];\n if(iattr.type !== sattr.type || iattr.value !== sattr.value) {\n // attribute mismatch\n rval = false;\n }\n }\n }\n\n return rval;\n };\n\n /**\n * Returns true if this certificate's subject matches the issuer of the\n * given certificate). Note that not signature check is performed.\n *\n * @param child the certificate to check.\n *\n * @return true if this certificate's subject matches the passed\n * certificate's issuer.\n */\n cert.issued = function(child) {\n return child.isIssuer(cert);\n };\n\n /**\n * Generates the subjectKeyIdentifier for this certificate as byte buffer.\n *\n * @return the subjectKeyIdentifier for this certificate as byte buffer.\n */\n cert.generateSubjectKeyIdentifier = function() {\n /* See: 4.2.1.2 section of the the RFC3280, keyIdentifier is either:\n\n (1) The keyIdentifier is composed of the 160-bit SHA-1 hash of the\n value of the BIT STRING subjectPublicKey (excluding the tag,\n length, and number of unused bits).\n\n (2) The keyIdentifier is composed of a four bit type field with\n the value 0100 followed by the least significant 60 bits of the\n SHA-1 hash of the value of the BIT STRING subjectPublicKey\n (excluding the tag, length, and number of unused bit string bits).\n */\n\n // skipping the tag, length, and number of unused bits is the same\n // as just using the RSAPublicKey (for RSA keys, which are the\n // only ones supported)\n return pki.getPublicKeyFingerprint(cert.publicKey, {type: 'RSAPublicKey'});\n };\n\n /**\n * Verifies the subjectKeyIdentifier extension value for this certificate\n * against its public key. If no extension is found, false will be\n * returned.\n *\n * @return true if verified, false if not.\n */\n cert.verifySubjectKeyIdentifier = function() {\n var oid = oids['subjectKeyIdentifier'];\n for(var i = 0; i < cert.extensions.length; ++i) {\n var ext = cert.extensions[i];\n if(ext.id === oid) {\n var ski = cert.generateSubjectKeyIdentifier().getBytes();\n return (forge.util.hexToBytes(ext.subjectKeyIdentifier) === ski);\n }\n }\n return false;\n };\n\n return cert;\n};\n\n/**\n * Converts an X.509v3 RSA certificate from an ASN.1 object.\n *\n * Note: If the certificate is to be verified then compute hash should\n * be set to true. There is currently no implementation for converting\n * a certificate back to ASN.1 so the TBSCertificate part of the ASN.1\n * object needs to be scanned before the cert object is created.\n *\n * @param obj the asn1 representation of an X.509v3 RSA certificate.\n * @param computeHash true to compute the hash for verification.\n *\n * @return the certificate.\n */\npki.certificateFromAsn1 = function(obj, computeHash) {\n // validate certificate and capture data\n var capture = {};\n var errors = [];\n if(!asn1.validate(obj, x509CertificateValidator, capture, errors)) {\n var error = new Error('Cannot read X.509 certificate. ' +\n 'ASN.1 object is not an X509v3 Certificate.');\n error.errors = errors;\n throw error;\n }\n\n // get oid\n var oid = asn1.derToOid(capture.publicKeyOid);\n if(oid !== pki.oids.rsaEncryption) {\n throw new Error('Cannot read public key. OID is not RSA.');\n }\n\n // create certificate\n var cert = pki.createCertificate();\n cert.version = capture.certVersion ?\n capture.certVersion.charCodeAt(0) : 0;\n var serial = forge.util.createBuffer(capture.certSerialNumber);\n cert.serialNumber = serial.toHex();\n cert.signatureOid = forge.asn1.derToOid(capture.certSignatureOid);\n cert.signatureParameters = _readSignatureParameters(\n cert.signatureOid, capture.certSignatureParams, true);\n cert.siginfo.algorithmOid = forge.asn1.derToOid(capture.certinfoSignatureOid);\n cert.siginfo.parameters = _readSignatureParameters(cert.siginfo.algorithmOid,\n capture.certinfoSignatureParams, false);\n cert.signature = capture.certSignature;\n\n var validity = [];\n if(capture.certValidity1UTCTime !== undefined) {\n validity.push(asn1.utcTimeToDate(capture.certValidity1UTCTime));\n }\n if(capture.certValidity2GeneralizedTime !== undefined) {\n validity.push(asn1.generalizedTimeToDate(\n capture.certValidity2GeneralizedTime));\n }\n if(capture.certValidity3UTCTime !== undefined) {\n validity.push(asn1.utcTimeToDate(capture.certValidity3UTCTime));\n }\n if(capture.certValidity4GeneralizedTime !== undefined) {\n validity.push(asn1.generalizedTimeToDate(\n capture.certValidity4GeneralizedTime));\n }\n if(validity.length > 2) {\n throw new Error('Cannot read notBefore/notAfter validity times; more ' +\n 'than two times were provided in the certificate.');\n }\n if(validity.length < 2) {\n throw new Error('Cannot read notBefore/notAfter validity times; they ' +\n 'were not provided as either UTCTime or GeneralizedTime.');\n }\n cert.validity.notBefore = validity[0];\n cert.validity.notAfter = validity[1];\n\n // keep TBSCertificate to preserve signature when exporting\n cert.tbsCertificate = capture.tbsCertificate;\n\n if(computeHash) {\n // create digest for OID signature type\n cert.md = _createSignatureDigest({\n signatureOid: cert.signatureOid,\n type: 'certificate'\n });\n\n // produce DER formatted TBSCertificate and digest it\n var bytes = asn1.toDer(cert.tbsCertificate);\n cert.md.update(bytes.getBytes());\n }\n\n // handle issuer, build issuer message digest\n var imd = forge.md.sha1.create();\n var ibytes = asn1.toDer(capture.certIssuer);\n imd.update(ibytes.getBytes());\n cert.issuer.getField = function(sn) {\n return _getAttribute(cert.issuer, sn);\n };\n cert.issuer.addField = function(attr) {\n _fillMissingFields([attr]);\n cert.issuer.attributes.push(attr);\n };\n cert.issuer.attributes = pki.RDNAttributesAsArray(capture.certIssuer);\n if(capture.certIssuerUniqueId) {\n cert.issuer.uniqueId = capture.certIssuerUniqueId;\n }\n cert.issuer.hash = imd.digest().toHex();\n\n // handle subject, build subject message digest\n var smd = forge.md.sha1.create();\n var sbytes = asn1.toDer(capture.certSubject);\n smd.update(sbytes.getBytes());\n cert.subject.getField = function(sn) {\n return _getAttribute(cert.subject, sn);\n };\n cert.subject.addField = function(attr) {\n _fillMissingFields([attr]);\n cert.subject.attributes.push(attr);\n };\n cert.subject.attributes = pki.RDNAttributesAsArray(capture.certSubject);\n if(capture.certSubjectUniqueId) {\n cert.subject.uniqueId = capture.certSubjectUniqueId;\n }\n cert.subject.hash = smd.digest().toHex();\n\n // handle extensions\n if(capture.certExtensions) {\n cert.extensions = pki.certificateExtensionsFromAsn1(capture.certExtensions);\n } else {\n cert.extensions = [];\n }\n\n // convert RSA public key from ASN.1\n cert.publicKey = pki.publicKeyFromAsn1(capture.subjectPublicKeyInfo);\n\n return cert;\n};\n\n/**\n * Converts an ASN.1 extensions object (with extension sequences as its\n * values) into an array of extension objects with types and values.\n *\n * Supported extensions:\n *\n * id-ce-keyUsage OBJECT IDENTIFIER ::= { id-ce 15 }\n * KeyUsage ::= BIT STRING {\n * digitalSignature (0),\n * nonRepudiation (1),\n * keyEncipherment (2),\n * dataEncipherment (3),\n * keyAgreement (4),\n * keyCertSign (5),\n * cRLSign (6),\n * encipherOnly (7),\n * decipherOnly (8)\n * }\n *\n * id-ce-basicConstraints OBJECT IDENTIFIER ::= { id-ce 19 }\n * BasicConstraints ::= SEQUENCE {\n * cA BOOLEAN DEFAULT FALSE,\n * pathLenConstraint INTEGER (0..MAX) OPTIONAL\n * }\n *\n * subjectAltName EXTENSION ::= {\n * SYNTAX GeneralNames\n * IDENTIFIED BY id-ce-subjectAltName\n * }\n *\n * GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName\n *\n * GeneralName ::= CHOICE {\n * otherName [0] INSTANCE OF OTHER-NAME,\n * rfc822Name [1] IA5String,\n * dNSName [2] IA5String,\n * x400Address [3] ORAddress,\n * directoryName [4] Name,\n * ediPartyName [5] EDIPartyName,\n * uniformResourceIdentifier [6] IA5String,\n * IPAddress [7] OCTET STRING,\n * registeredID [8] OBJECT IDENTIFIER\n * }\n *\n * OTHER-NAME ::= TYPE-IDENTIFIER\n *\n * EDIPartyName ::= SEQUENCE {\n * nameAssigner [0] DirectoryString {ub-name} OPTIONAL,\n * partyName [1] DirectoryString {ub-name}\n * }\n *\n * @param exts the extensions ASN.1 with extension sequences to parse.\n *\n * @return the array.\n */\npki.certificateExtensionsFromAsn1 = function(exts) {\n var rval = [];\n for(var i = 0; i < exts.value.length; ++i) {\n // get extension sequence\n var extseq = exts.value[i];\n for(var ei = 0; ei < extseq.value.length; ++ei) {\n rval.push(pki.certificateExtensionFromAsn1(extseq.value[ei]));\n }\n }\n\n return rval;\n};\n\n/**\n * Parses a single certificate extension from ASN.1.\n *\n * @param ext the extension in ASN.1 format.\n *\n * @return the parsed extension as an object.\n */\npki.certificateExtensionFromAsn1 = function(ext) {\n // an extension has:\n // [0] extnID OBJECT IDENTIFIER\n // [1] critical BOOLEAN DEFAULT FALSE\n // [2] extnValue OCTET STRING\n var e = {};\n e.id = asn1.derToOid(ext.value[0].value);\n e.critical = false;\n if(ext.value[1].type === asn1.Type.BOOLEAN) {\n e.critical = (ext.value[1].value.charCodeAt(0) !== 0x00);\n e.value = ext.value[2].value;\n } else {\n e.value = ext.value[1].value;\n }\n // if the oid is known, get its name\n if(e.id in oids) {\n e.name = oids[e.id];\n\n // handle key usage\n if(e.name === 'keyUsage') {\n // get value as BIT STRING\n var ev = asn1.fromDer(e.value);\n var b2 = 0x00;\n var b3 = 0x00;\n if(ev.value.length > 1) {\n // skip first byte, just indicates unused bits which\n // will be padded with 0s anyway\n // get bytes with flag bits\n b2 = ev.value.charCodeAt(1);\n b3 = ev.value.length > 2 ? ev.value.charCodeAt(2) : 0;\n }\n // set flags\n e.digitalSignature = (b2 & 0x80) === 0x80;\n e.nonRepudiation = (b2 & 0x40) === 0x40;\n e.keyEncipherment = (b2 & 0x20) === 0x20;\n e.dataEncipherment = (b2 & 0x10) === 0x10;\n e.keyAgreement = (b2 & 0x08) === 0x08;\n e.keyCertSign = (b2 & 0x04) === 0x04;\n e.cRLSign = (b2 & 0x02) === 0x02;\n e.encipherOnly = (b2 & 0x01) === 0x01;\n e.decipherOnly = (b3 & 0x80) === 0x80;\n } else if(e.name === 'basicConstraints') {\n // handle basic constraints\n // get value as SEQUENCE\n var ev = asn1.fromDer(e.value);\n // get cA BOOLEAN flag (defaults to false)\n if(ev.value.length > 0 && ev.value[0].type === asn1.Type.BOOLEAN) {\n e.cA = (ev.value[0].value.charCodeAt(0) !== 0x00);\n } else {\n e.cA = false;\n }\n // get path length constraint\n var value = null;\n if(ev.value.length > 0 && ev.value[0].type === asn1.Type.INTEGER) {\n value = ev.value[0].value;\n } else if(ev.value.length > 1) {\n value = ev.value[1].value;\n }\n if(value !== null) {\n e.pathLenConstraint = asn1.derToInteger(value);\n }\n } else if(e.name === 'extKeyUsage') {\n // handle extKeyUsage\n // value is a SEQUENCE of OIDs\n var ev = asn1.fromDer(e.value);\n for(var vi = 0; vi < ev.value.length; ++vi) {\n var oid = asn1.derToOid(ev.value[vi].value);\n if(oid in oids) {\n e[oids[oid]] = true;\n } else {\n e[oid] = true;\n }\n }\n } else if(e.name === 'nsCertType') {\n // handle nsCertType\n // get value as BIT STRING\n var ev = asn1.fromDer(e.value);\n var b2 = 0x00;\n if(ev.value.length > 1) {\n // skip first byte, just indicates unused bits which\n // will be padded with 0s anyway\n // get bytes with flag bits\n b2 = ev.value.charCodeAt(1);\n }\n // set flags\n e.client = (b2 & 0x80) === 0x80;\n e.server = (b2 & 0x40) === 0x40;\n e.email = (b2 & 0x20) === 0x20;\n e.objsign = (b2 & 0x10) === 0x10;\n e.reserved = (b2 & 0x08) === 0x08;\n e.sslCA = (b2 & 0x04) === 0x04;\n e.emailCA = (b2 & 0x02) === 0x02;\n e.objCA = (b2 & 0x01) === 0x01;\n } else if(\n e.name === 'subjectAltName' ||\n e.name === 'issuerAltName') {\n // handle subjectAltName/issuerAltName\n e.altNames = [];\n\n // ev is a SYNTAX SEQUENCE\n var gn;\n var ev = asn1.fromDer(e.value);\n for(var n = 0; n < ev.value.length; ++n) {\n // get GeneralName\n gn = ev.value[n];\n\n var altName = {\n type: gn.type,\n value: gn.value\n };\n e.altNames.push(altName);\n\n // Note: Support for types 1,2,6,7,8\n switch(gn.type) {\n // rfc822Name\n case 1:\n // dNSName\n case 2:\n // uniformResourceIdentifier (URI)\n case 6:\n break;\n // IPAddress\n case 7:\n // convert to IPv4/IPv6 string representation\n altName.ip = forge.util.bytesToIP(gn.value);\n break;\n // registeredID\n case 8:\n altName.oid = asn1.derToOid(gn.value);\n break;\n default:\n // unsupported\n }\n }\n } else if(e.name === 'subjectKeyIdentifier') {\n // value is an OCTETSTRING w/the hash of the key-type specific\n // public key structure (eg: RSAPublicKey)\n var ev = asn1.fromDer(e.value);\n e.subjectKeyIdentifier = forge.util.bytesToHex(ev.value);\n }\n }\n return e;\n};\n\n/**\n * Converts a PKCS#10 certification request (CSR) from an ASN.1 object.\n *\n * Note: If the certification request is to be verified then compute hash\n * should be set to true. There is currently no implementation for converting\n * a certificate back to ASN.1 so the CertificationRequestInfo part of the\n * ASN.1 object needs to be scanned before the csr object is created.\n *\n * @param obj the asn1 representation of a PKCS#10 certification request (CSR).\n * @param computeHash true to compute the hash for verification.\n *\n * @return the certification request (CSR).\n */\npki.certificationRequestFromAsn1 = function(obj, computeHash) {\n // validate certification request and capture data\n var capture = {};\n var errors = [];\n if(!asn1.validate(obj, certificationRequestValidator, capture, errors)) {\n var error = new Error('Cannot read PKCS#10 certificate request. ' +\n 'ASN.1 object is not a PKCS#10 CertificationRequest.');\n error.errors = errors;\n throw error;\n }\n\n // get oid\n var oid = asn1.derToOid(capture.publicKeyOid);\n if(oid !== pki.oids.rsaEncryption) {\n throw new Error('Cannot read public key. OID is not RSA.');\n }\n\n // create certification request\n var csr = pki.createCertificationRequest();\n csr.version = capture.csrVersion ? capture.csrVersion.charCodeAt(0) : 0;\n csr.signatureOid = forge.asn1.derToOid(capture.csrSignatureOid);\n csr.signatureParameters = _readSignatureParameters(\n csr.signatureOid, capture.csrSignatureParams, true);\n csr.siginfo.algorithmOid = forge.asn1.derToOid(capture.csrSignatureOid);\n csr.siginfo.parameters = _readSignatureParameters(\n csr.siginfo.algorithmOid, capture.csrSignatureParams, false);\n csr.signature = capture.csrSignature;\n\n // keep CertificationRequestInfo to preserve signature when exporting\n csr.certificationRequestInfo = capture.certificationRequestInfo;\n\n if(computeHash) {\n // create digest for OID signature type\n csr.md = _createSignatureDigest({\n signatureOid: csr.signatureOid,\n type: 'certification request'\n });\n\n // produce DER formatted CertificationRequestInfo and digest it\n var bytes = asn1.toDer(csr.certificationRequestInfo);\n csr.md.update(bytes.getBytes());\n }\n\n // handle subject, build subject message digest\n var smd = forge.md.sha1.create();\n csr.subject.getField = function(sn) {\n return _getAttribute(csr.subject, sn);\n };\n csr.subject.addField = function(attr) {\n _fillMissingFields([attr]);\n csr.subject.attributes.push(attr);\n };\n csr.subject.attributes = pki.RDNAttributesAsArray(\n capture.certificationRequestInfoSubject, smd);\n csr.subject.hash = smd.digest().toHex();\n\n // convert RSA public key from ASN.1\n csr.publicKey = pki.publicKeyFromAsn1(capture.subjectPublicKeyInfo);\n\n // convert attributes from ASN.1\n csr.getAttribute = function(sn) {\n return _getAttribute(csr, sn);\n };\n csr.addAttribute = function(attr) {\n _fillMissingFields([attr]);\n csr.attributes.push(attr);\n };\n csr.attributes = pki.CRIAttributesAsArray(\n capture.certificationRequestInfoAttributes || []);\n\n return csr;\n};\n\n/**\n * Creates an empty certification request (a CSR or certificate signing\n * request). Once created, its public key and attributes can be set and then\n * it can be signed.\n *\n * @return the empty certification request.\n */\npki.createCertificationRequest = function() {\n var csr = {};\n csr.version = 0x00;\n csr.signatureOid = null;\n csr.signature = null;\n csr.siginfo = {};\n csr.siginfo.algorithmOid = null;\n\n csr.subject = {};\n csr.subject.getField = function(sn) {\n return _getAttribute(csr.subject, sn);\n };\n csr.subject.addField = function(attr) {\n _fillMissingFields([attr]);\n csr.subject.attributes.push(attr);\n };\n csr.subject.attributes = [];\n csr.subject.hash = null;\n\n csr.publicKey = null;\n csr.attributes = [];\n csr.getAttribute = function(sn) {\n return _getAttribute(csr, sn);\n };\n csr.addAttribute = function(attr) {\n _fillMissingFields([attr]);\n csr.attributes.push(attr);\n };\n csr.md = null;\n\n /**\n * Sets the subject of this certification request.\n *\n * @param attrs the array of subject attributes to use.\n */\n csr.setSubject = function(attrs) {\n // set new attributes\n _fillMissingFields(attrs);\n csr.subject.attributes = attrs;\n csr.subject.hash = null;\n };\n\n /**\n * Sets the attributes of this certification request.\n *\n * @param attrs the array of attributes to use.\n */\n csr.setAttributes = function(attrs) {\n // set new attributes\n _fillMissingFields(attrs);\n csr.attributes = attrs;\n };\n\n /**\n * Signs this certification request using the given private key.\n *\n * @param key the private key to sign with.\n * @param md the message digest object to use (defaults to forge.md.sha1).\n */\n csr.sign = function(key, md) {\n // TODO: get signature OID from private key\n csr.md = md || forge.md.sha1.create();\n var algorithmOid = oids[csr.md.algorithm + 'WithRSAEncryption'];\n if(!algorithmOid) {\n var error = new Error('Could not compute certification request digest. ' +\n 'Unknown message digest algorithm OID.');\n error.algorithm = csr.md.algorithm;\n throw error;\n }\n csr.signatureOid = csr.siginfo.algorithmOid = algorithmOid;\n\n // get CertificationRequestInfo, convert to DER\n csr.certificationRequestInfo = pki.getCertificationRequestInfo(csr);\n var bytes = asn1.toDer(csr.certificationRequestInfo);\n\n // digest and sign\n csr.md.update(bytes.getBytes());\n csr.signature = key.sign(csr.md);\n };\n\n /**\n * Attempts verify the signature on the passed certification request using\n * its public key.\n *\n * A CSR that has been exported to a file in PEM format can be verified using\n * OpenSSL using this command:\n *\n * openssl req -in -verify -noout -text\n *\n * @return true if verified, false if not.\n */\n csr.verify = function() {\n var rval = false;\n\n var md = csr.md;\n if(md === null) {\n md = _createSignatureDigest({\n signatureOid: csr.signatureOid,\n type: 'certification request'\n });\n\n // produce DER formatted CertificationRequestInfo and digest it\n var cri = csr.certificationRequestInfo ||\n pki.getCertificationRequestInfo(csr);\n var bytes = asn1.toDer(cri);\n md.update(bytes.getBytes());\n }\n\n if(md !== null) {\n rval = _verifySignature({\n certificate: csr, md: md, signature: csr.signature\n });\n }\n\n return rval;\n };\n\n return csr;\n};\n\n/**\n * Converts an X.509 subject or issuer to an ASN.1 RDNSequence.\n *\n * @param obj the subject or issuer (distinguished name).\n *\n * @return the ASN.1 RDNSequence.\n */\nfunction _dnToAsn1(obj) {\n // create an empty RDNSequence\n var rval = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []);\n\n // iterate over attributes\n var attr, set;\n var attrs = obj.attributes;\n for(var i = 0; i < attrs.length; ++i) {\n attr = attrs[i];\n var value = attr.value;\n\n // reuse tag class for attribute value if available\n var valueTagClass = asn1.Type.PRINTABLESTRING;\n if('valueTagClass' in attr) {\n valueTagClass = attr.valueTagClass;\n\n if(valueTagClass === asn1.Type.UTF8) {\n value = forge.util.encodeUtf8(value);\n }\n // FIXME: handle more encodings\n }\n\n // create a RelativeDistinguishedName set\n // each value in the set is an AttributeTypeAndValue first\n // containing the type (an OID) and second the value\n set = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SET, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // AttributeType\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(attr.type).getBytes()),\n // AttributeValue\n asn1.create(asn1.Class.UNIVERSAL, valueTagClass, false, value)\n ])\n ]);\n rval.value.push(set);\n }\n\n return rval;\n}\n\n/**\n * Gets all printable attributes (typically of an issuer or subject) in a\n * simplified JSON format for display.\n *\n * @param attrs the attributes.\n *\n * @return the JSON for display.\n */\nfunction _getAttributesAsJson(attrs) {\n var rval = {};\n for(var i = 0; i < attrs.length; ++i) {\n var attr = attrs[i];\n if(attr.shortName && (\n attr.valueTagClass === asn1.Type.UTF8 ||\n attr.valueTagClass === asn1.Type.PRINTABLESTRING ||\n attr.valueTagClass === asn1.Type.IA5STRING)) {\n var value = attr.value;\n if(attr.valueTagClass === asn1.Type.UTF8) {\n value = forge.util.encodeUtf8(attr.value);\n }\n if(!(attr.shortName in rval)) {\n rval[attr.shortName] = value;\n } else if(forge.util.isArray(rval[attr.shortName])) {\n rval[attr.shortName].push(value);\n } else {\n rval[attr.shortName] = [rval[attr.shortName], value];\n }\n }\n }\n return rval;\n}\n\n/**\n * Fills in missing fields in attributes.\n *\n * @param attrs the attributes to fill missing fields in.\n */\nfunction _fillMissingFields(attrs) {\n var attr;\n for(var i = 0; i < attrs.length; ++i) {\n attr = attrs[i];\n\n // populate missing name\n if(typeof attr.name === 'undefined') {\n if(attr.type && attr.type in pki.oids) {\n attr.name = pki.oids[attr.type];\n } else if(attr.shortName && attr.shortName in _shortNames) {\n attr.name = pki.oids[_shortNames[attr.shortName]];\n }\n }\n\n // populate missing type (OID)\n if(typeof attr.type === 'undefined') {\n if(attr.name && attr.name in pki.oids) {\n attr.type = pki.oids[attr.name];\n } else {\n var error = new Error('Attribute type not specified.');\n error.attribute = attr;\n throw error;\n }\n }\n\n // populate missing shortname\n if(typeof attr.shortName === 'undefined') {\n if(attr.name && attr.name in _shortNames) {\n attr.shortName = _shortNames[attr.name];\n }\n }\n\n // convert extensions to value\n if(attr.type === oids.extensionRequest) {\n attr.valueConstructed = true;\n attr.valueTagClass = asn1.Type.SEQUENCE;\n if(!attr.value && attr.extensions) {\n attr.value = [];\n for(var ei = 0; ei < attr.extensions.length; ++ei) {\n attr.value.push(pki.certificateExtensionToAsn1(\n _fillMissingExtensionFields(attr.extensions[ei])));\n }\n }\n }\n\n if(typeof attr.value === 'undefined') {\n var error = new Error('Attribute value not specified.');\n error.attribute = attr;\n throw error;\n }\n }\n}\n\n/**\n * Fills in missing fields in certificate extensions.\n *\n * @param e the extension.\n * @param [options] the options to use.\n * [cert] the certificate the extensions are for.\n *\n * @return the extension.\n */\nfunction _fillMissingExtensionFields(e, options) {\n options = options || {};\n\n // populate missing name\n if(typeof e.name === 'undefined') {\n if(e.id && e.id in pki.oids) {\n e.name = pki.oids[e.id];\n }\n }\n\n // populate missing id\n if(typeof e.id === 'undefined') {\n if(e.name && e.name in pki.oids) {\n e.id = pki.oids[e.name];\n } else {\n var error = new Error('Extension ID not specified.');\n error.extension = e;\n throw error;\n }\n }\n\n if(typeof e.value !== 'undefined') {\n return e;\n }\n\n // handle missing value:\n\n // value is a BIT STRING\n if(e.name === 'keyUsage') {\n // build flags\n var unused = 0;\n var b2 = 0x00;\n var b3 = 0x00;\n if(e.digitalSignature) {\n b2 |= 0x80;\n unused = 7;\n }\n if(e.nonRepudiation) {\n b2 |= 0x40;\n unused = 6;\n }\n if(e.keyEncipherment) {\n b2 |= 0x20;\n unused = 5;\n }\n if(e.dataEncipherment) {\n b2 |= 0x10;\n unused = 4;\n }\n if(e.keyAgreement) {\n b2 |= 0x08;\n unused = 3;\n }\n if(e.keyCertSign) {\n b2 |= 0x04;\n unused = 2;\n }\n if(e.cRLSign) {\n b2 |= 0x02;\n unused = 1;\n }\n if(e.encipherOnly) {\n b2 |= 0x01;\n unused = 0;\n }\n if(e.decipherOnly) {\n b3 |= 0x80;\n unused = 7;\n }\n\n // create bit string\n var value = String.fromCharCode(unused);\n if(b3 !== 0) {\n value += String.fromCharCode(b2) + String.fromCharCode(b3);\n } else if(b2 !== 0) {\n value += String.fromCharCode(b2);\n }\n e.value = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.BITSTRING, false, value);\n } else if(e.name === 'basicConstraints') {\n // basicConstraints is a SEQUENCE\n e.value = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []);\n // cA BOOLEAN flag defaults to false\n if(e.cA) {\n e.value.value.push(asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.BOOLEAN, false,\n String.fromCharCode(0xFF)));\n }\n if('pathLenConstraint' in e) {\n e.value.value.push(asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n asn1.integerToDer(e.pathLenConstraint).getBytes()));\n }\n } else if(e.name === 'extKeyUsage') {\n // extKeyUsage is a SEQUENCE of OIDs\n e.value = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []);\n var seq = e.value.value;\n for(var key in e) {\n if(e[key] !== true) {\n continue;\n }\n // key is name in OID map\n if(key in oids) {\n seq.push(asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID,\n false, asn1.oidToDer(oids[key]).getBytes()));\n } else if(key.indexOf('.') !== -1) {\n // assume key is an OID\n seq.push(asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID,\n false, asn1.oidToDer(key).getBytes()));\n }\n }\n } else if(e.name === 'nsCertType') {\n // nsCertType is a BIT STRING\n // build flags\n var unused = 0;\n var b2 = 0x00;\n\n if(e.client) {\n b2 |= 0x80;\n unused = 7;\n }\n if(e.server) {\n b2 |= 0x40;\n unused = 6;\n }\n if(e.email) {\n b2 |= 0x20;\n unused = 5;\n }\n if(e.objsign) {\n b2 |= 0x10;\n unused = 4;\n }\n if(e.reserved) {\n b2 |= 0x08;\n unused = 3;\n }\n if(e.sslCA) {\n b2 |= 0x04;\n unused = 2;\n }\n if(e.emailCA) {\n b2 |= 0x02;\n unused = 1;\n }\n if(e.objCA) {\n b2 |= 0x01;\n unused = 0;\n }\n\n // create bit string\n var value = String.fromCharCode(unused);\n if(b2 !== 0) {\n value += String.fromCharCode(b2);\n }\n e.value = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.BITSTRING, false, value);\n } else if(e.name === 'subjectAltName' || e.name === 'issuerAltName') {\n // SYNTAX SEQUENCE\n e.value = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []);\n\n var altName;\n for(var n = 0; n < e.altNames.length; ++n) {\n altName = e.altNames[n];\n var value = altName.value;\n // handle IP\n if(altName.type === 7 && altName.ip) {\n value = forge.util.bytesFromIP(altName.ip);\n if(value === null) {\n var error = new Error(\n 'Extension \"ip\" value is not a valid IPv4 or IPv6 address.');\n error.extension = e;\n throw error;\n }\n } else if(altName.type === 8) {\n // handle OID\n if(altName.oid) {\n value = asn1.oidToDer(asn1.oidToDer(altName.oid));\n } else {\n // deprecated ... convert value to OID\n value = asn1.oidToDer(value);\n }\n }\n e.value.value.push(asn1.create(\n asn1.Class.CONTEXT_SPECIFIC, altName.type, false,\n value));\n }\n } else if(e.name === 'nsComment' && options.cert) {\n // sanity check value is ASCII (req'd) and not too big\n if(!(/^[\\x00-\\x7F]*$/.test(e.comment)) ||\n (e.comment.length < 1) || (e.comment.length > 128)) {\n throw new Error('Invalid \"nsComment\" content.');\n }\n // IA5STRING opaque comment\n e.value = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.IA5STRING, false, e.comment);\n } else if(e.name === 'subjectKeyIdentifier' && options.cert) {\n var ski = options.cert.generateSubjectKeyIdentifier();\n e.subjectKeyIdentifier = ski.toHex();\n // OCTETSTRING w/digest\n e.value = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, ski.getBytes());\n } else if(e.name === 'authorityKeyIdentifier' && options.cert) {\n // SYNTAX SEQUENCE\n e.value = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []);\n var seq = e.value.value;\n\n if(e.keyIdentifier) {\n var keyIdentifier = (e.keyIdentifier === true ?\n options.cert.generateSubjectKeyIdentifier().getBytes() :\n e.keyIdentifier);\n seq.push(\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, false, keyIdentifier));\n }\n\n if(e.authorityCertIssuer) {\n var authorityCertIssuer = [\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 4, true, [\n _dnToAsn1(e.authorityCertIssuer === true ?\n options.cert.issuer : e.authorityCertIssuer)\n ])\n ];\n seq.push(\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 1, true, authorityCertIssuer));\n }\n\n if(e.serialNumber) {\n var serialNumber = forge.util.hexToBytes(e.serialNumber === true ?\n options.cert.serialNumber : e.serialNumber);\n seq.push(\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 2, false, serialNumber));\n }\n } else if(e.name === 'cRLDistributionPoints') {\n e.value = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []);\n var seq = e.value.value;\n\n // Create sub SEQUENCE of DistributionPointName\n var subSeq = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []);\n\n // Create fullName CHOICE\n var fullNameGeneralNames = asn1.create(\n asn1.Class.CONTEXT_SPECIFIC, 0, true, []);\n var altName;\n for(var n = 0; n < e.altNames.length; ++n) {\n altName = e.altNames[n];\n var value = altName.value;\n // handle IP\n if(altName.type === 7 && altName.ip) {\n value = forge.util.bytesFromIP(altName.ip);\n if(value === null) {\n var error = new Error(\n 'Extension \"ip\" value is not a valid IPv4 or IPv6 address.');\n error.extension = e;\n throw error;\n }\n } else if(altName.type === 8) {\n // handle OID\n if(altName.oid) {\n value = asn1.oidToDer(asn1.oidToDer(altName.oid));\n } else {\n // deprecated ... convert value to OID\n value = asn1.oidToDer(value);\n }\n }\n fullNameGeneralNames.value.push(asn1.create(\n asn1.Class.CONTEXT_SPECIFIC, altName.type, false,\n value));\n }\n\n // Add to the parent SEQUENCE\n subSeq.value.push(asn1.create(\n asn1.Class.CONTEXT_SPECIFIC, 0, true, [fullNameGeneralNames]));\n seq.push(subSeq);\n }\n\n // ensure value has been defined by now\n if(typeof e.value === 'undefined') {\n var error = new Error('Extension value not specified.');\n error.extension = e;\n throw error;\n }\n\n return e;\n}\n\n/**\n * Convert signature parameters object to ASN.1\n *\n * @param {String} oid Signature algorithm OID\n * @param params The signature parametrs object\n * @return ASN.1 object representing signature parameters\n */\nfunction _signatureParametersToAsn1(oid, params) {\n switch(oid) {\n case oids['RSASSA-PSS']:\n var parts = [];\n\n if(params.hash.algorithmOid !== undefined) {\n parts.push(asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(params.hash.algorithmOid).getBytes()),\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, '')\n ])\n ]));\n }\n\n if(params.mgf.algorithmOid !== undefined) {\n parts.push(asn1.create(asn1.Class.CONTEXT_SPECIFIC, 1, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(params.mgf.algorithmOid).getBytes()),\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(params.mgf.hash.algorithmOid).getBytes()),\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, '')\n ])\n ])\n ]));\n }\n\n if(params.saltLength !== undefined) {\n parts.push(asn1.create(asn1.Class.CONTEXT_SPECIFIC, 2, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n asn1.integerToDer(params.saltLength).getBytes())\n ]));\n }\n\n return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, parts);\n\n default:\n return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, '');\n }\n}\n\n/**\n * Converts a certification request's attributes to an ASN.1 set of\n * CRIAttributes.\n *\n * @param csr certification request.\n *\n * @return the ASN.1 set of CRIAttributes.\n */\nfunction _CRIAttributesToAsn1(csr) {\n // create an empty context-specific container\n var rval = asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, []);\n\n // no attributes, return empty container\n if(csr.attributes.length === 0) {\n return rval;\n }\n\n // each attribute has a sequence with a type and a set of values\n var attrs = csr.attributes;\n for(var i = 0; i < attrs.length; ++i) {\n var attr = attrs[i];\n var value = attr.value;\n\n // reuse tag class for attribute value if available\n var valueTagClass = asn1.Type.UTF8;\n if('valueTagClass' in attr) {\n valueTagClass = attr.valueTagClass;\n }\n if(valueTagClass === asn1.Type.UTF8) {\n value = forge.util.encodeUtf8(value);\n }\n var valueConstructed = false;\n if('valueConstructed' in attr) {\n valueConstructed = attr.valueConstructed;\n }\n // FIXME: handle more encodings\n\n // create a RelativeDistinguishedName set\n // each value in the set is an AttributeTypeAndValue first\n // containing the type (an OID) and second the value\n var seq = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // AttributeType\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(attr.type).getBytes()),\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SET, true, [\n // AttributeValue\n asn1.create(\n asn1.Class.UNIVERSAL, valueTagClass, valueConstructed, value)\n ])\n ]);\n rval.value.push(seq);\n }\n\n return rval;\n}\n\nvar jan_1_1950 = new Date('1950-01-01T00:00:00Z');\nvar jan_1_2050 = new Date('2050-01-01T00:00:00Z');\n\n/**\n * Converts a Date object to ASN.1\n * Handles the different format before and after 1st January 2050\n *\n * @param date date object.\n *\n * @return the ASN.1 object representing the date.\n */\nfunction _dateToAsn1(date) {\n if(date >= jan_1_1950 && date < jan_1_2050) {\n return asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.UTCTIME, false,\n asn1.dateToUtcTime(date));\n } else {\n return asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.GENERALIZEDTIME, false,\n asn1.dateToGeneralizedTime(date));\n }\n}\n\n/**\n * Gets the ASN.1 TBSCertificate part of an X.509v3 certificate.\n *\n * @param cert the certificate.\n *\n * @return the asn1 TBSCertificate.\n */\npki.getTBSCertificate = function(cert) {\n // TBSCertificate\n var notBefore = _dateToAsn1(cert.validity.notBefore);\n var notAfter = _dateToAsn1(cert.validity.notAfter);\n var tbs = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // version\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [\n // integer\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n asn1.integerToDer(cert.version).getBytes())\n ]),\n // serialNumber\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n forge.util.hexToBytes(cert.serialNumber)),\n // signature\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // algorithm\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(cert.siginfo.algorithmOid).getBytes()),\n // parameters\n _signatureParametersToAsn1(\n cert.siginfo.algorithmOid, cert.siginfo.parameters)\n ]),\n // issuer\n _dnToAsn1(cert.issuer),\n // validity\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n notBefore,\n notAfter\n ]),\n // subject\n _dnToAsn1(cert.subject),\n // SubjectPublicKeyInfo\n pki.publicKeyToAsn1(cert.publicKey)\n ]);\n\n if(cert.issuer.uniqueId) {\n // issuerUniqueID (optional)\n tbs.value.push(\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 1, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.BITSTRING, false,\n // TODO: support arbitrary bit length ids\n String.fromCharCode(0x00) +\n cert.issuer.uniqueId\n )\n ])\n );\n }\n if(cert.subject.uniqueId) {\n // subjectUniqueID (optional)\n tbs.value.push(\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 2, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.BITSTRING, false,\n // TODO: support arbitrary bit length ids\n String.fromCharCode(0x00) +\n cert.subject.uniqueId\n )\n ])\n );\n }\n\n if(cert.extensions.length > 0) {\n // extensions (optional)\n tbs.value.push(pki.certificateExtensionsToAsn1(cert.extensions));\n }\n\n return tbs;\n};\n\n/**\n * Gets the ASN.1 CertificationRequestInfo part of a\n * PKCS#10 CertificationRequest.\n *\n * @param csr the certification request.\n *\n * @return the asn1 CertificationRequestInfo.\n */\npki.getCertificationRequestInfo = function(csr) {\n // CertificationRequestInfo\n var cri = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // version\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n asn1.integerToDer(csr.version).getBytes()),\n // subject\n _dnToAsn1(csr.subject),\n // SubjectPublicKeyInfo\n pki.publicKeyToAsn1(csr.publicKey),\n // attributes\n _CRIAttributesToAsn1(csr)\n ]);\n\n return cri;\n};\n\n/**\n * Converts a DistinguishedName (subject or issuer) to an ASN.1 object.\n *\n * @param dn the DistinguishedName.\n *\n * @return the asn1 representation of a DistinguishedName.\n */\npki.distinguishedNameToAsn1 = function(dn) {\n return _dnToAsn1(dn);\n};\n\n/**\n * Converts an X.509v3 RSA certificate to an ASN.1 object.\n *\n * @param cert the certificate.\n *\n * @return the asn1 representation of an X.509v3 RSA certificate.\n */\npki.certificateToAsn1 = function(cert) {\n // prefer cached TBSCertificate over generating one\n var tbsCertificate = cert.tbsCertificate || pki.getTBSCertificate(cert);\n\n // Certificate\n return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // TBSCertificate\n tbsCertificate,\n // AlgorithmIdentifier (signature algorithm)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // algorithm\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(cert.signatureOid).getBytes()),\n // parameters\n _signatureParametersToAsn1(cert.signatureOid, cert.signatureParameters)\n ]),\n // SignatureValue\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.BITSTRING, false,\n String.fromCharCode(0x00) + cert.signature)\n ]);\n};\n\n/**\n * Converts X.509v3 certificate extensions to ASN.1.\n *\n * @param exts the extensions to convert.\n *\n * @return the extensions in ASN.1 format.\n */\npki.certificateExtensionsToAsn1 = function(exts) {\n // create top-level extension container\n var rval = asn1.create(asn1.Class.CONTEXT_SPECIFIC, 3, true, []);\n\n // create extension sequence (stores a sequence for each extension)\n var seq = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []);\n rval.value.push(seq);\n\n for(var i = 0; i < exts.length; ++i) {\n seq.value.push(pki.certificateExtensionToAsn1(exts[i]));\n }\n\n return rval;\n};\n\n/**\n * Converts a single certificate extension to ASN.1.\n *\n * @param ext the extension to convert.\n *\n * @return the extension in ASN.1 format.\n */\npki.certificateExtensionToAsn1 = function(ext) {\n // create a sequence for each extension\n var extseq = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, []);\n\n // extnID (OID)\n extseq.value.push(asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(ext.id).getBytes()));\n\n // critical defaults to false\n if(ext.critical) {\n // critical BOOLEAN DEFAULT FALSE\n extseq.value.push(asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.BOOLEAN, false,\n String.fromCharCode(0xFF)));\n }\n\n var value = ext.value;\n if(typeof ext.value !== 'string') {\n // value is asn.1\n value = asn1.toDer(value).getBytes();\n }\n\n // extnValue (OCTET STRING)\n extseq.value.push(asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, value));\n\n return extseq;\n};\n\n/**\n * Converts a PKCS#10 certification request to an ASN.1 object.\n *\n * @param csr the certification request.\n *\n * @return the asn1 representation of a certification request.\n */\npki.certificationRequestToAsn1 = function(csr) {\n // prefer cached CertificationRequestInfo over generating one\n var cri = csr.certificationRequestInfo ||\n pki.getCertificationRequestInfo(csr);\n\n // Certificate\n return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // CertificationRequestInfo\n cri,\n // AlgorithmIdentifier (signature algorithm)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // algorithm\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(csr.signatureOid).getBytes()),\n // parameters\n _signatureParametersToAsn1(csr.signatureOid, csr.signatureParameters)\n ]),\n // signature\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.BITSTRING, false,\n String.fromCharCode(0x00) + csr.signature)\n ]);\n};\n\n/**\n * Creates a CA store.\n *\n * @param certs an optional array of certificate objects or PEM-formatted\n * certificate strings to add to the CA store.\n *\n * @return the CA store.\n */\npki.createCaStore = function(certs) {\n // create CA store\n var caStore = {\n // stored certificates\n certs: {}\n };\n\n /**\n * Gets the certificate that issued the passed certificate or its\n * 'parent'.\n *\n * @param cert the certificate to get the parent for.\n *\n * @return the parent certificate or null if none was found.\n */\n caStore.getIssuer = function(cert) {\n var rval = getBySubject(cert.issuer);\n\n // see if there are multiple matches\n /*if(forge.util.isArray(rval)) {\n // TODO: resolve multiple matches by checking\n // authorityKey/subjectKey/issuerUniqueID/other identifiers, etc.\n // FIXME: or alternatively do authority key mapping\n // if possible (X.509v1 certs can't work?)\n throw new Error('Resolving multiple issuer matches not implemented yet.');\n }*/\n\n return rval;\n };\n\n /**\n * Adds a trusted certificate to the store.\n *\n * @param cert the certificate to add as a trusted certificate (either a\n * pki.certificate object or a PEM-formatted certificate).\n */\n caStore.addCertificate = function(cert) {\n // convert from pem if necessary\n if(typeof cert === 'string') {\n cert = forge.pki.certificateFromPem(cert);\n }\n\n ensureSubjectHasHash(cert.subject);\n\n if(!caStore.hasCertificate(cert)) { // avoid duplicate certificates in store\n if(cert.subject.hash in caStore.certs) {\n // subject hash already exists, append to array\n var tmp = caStore.certs[cert.subject.hash];\n if(!forge.util.isArray(tmp)) {\n tmp = [tmp];\n }\n tmp.push(cert);\n caStore.certs[cert.subject.hash] = tmp;\n } else {\n caStore.certs[cert.subject.hash] = cert;\n }\n }\n };\n\n /**\n * Checks to see if the given certificate is in the store.\n *\n * @param cert the certificate to check (either a pki.certificate or a\n * PEM-formatted certificate).\n *\n * @return true if the certificate is in the store, false if not.\n */\n caStore.hasCertificate = function(cert) {\n // convert from pem if necessary\n if(typeof cert === 'string') {\n cert = forge.pki.certificateFromPem(cert);\n }\n\n var match = getBySubject(cert.subject);\n if(!match) {\n return false;\n }\n if(!forge.util.isArray(match)) {\n match = [match];\n }\n // compare DER-encoding of certificates\n var der1 = asn1.toDer(pki.certificateToAsn1(cert)).getBytes();\n for(var i = 0; i < match.length; ++i) {\n var der2 = asn1.toDer(pki.certificateToAsn1(match[i])).getBytes();\n if(der1 === der2) {\n return true;\n }\n }\n return false;\n };\n\n /**\n * Lists all of the certificates kept in the store.\n *\n * @return an array of all of the pki.certificate objects in the store.\n */\n caStore.listAllCertificates = function() {\n var certList = [];\n\n for(var hash in caStore.certs) {\n if(caStore.certs.hasOwnProperty(hash)) {\n var value = caStore.certs[hash];\n if(!forge.util.isArray(value)) {\n certList.push(value);\n } else {\n for(var i = 0; i < value.length; ++i) {\n certList.push(value[i]);\n }\n }\n }\n }\n\n return certList;\n };\n\n /**\n * Removes a certificate from the store.\n *\n * @param cert the certificate to remove (either a pki.certificate or a\n * PEM-formatted certificate).\n *\n * @return the certificate that was removed or null if the certificate\n * wasn't in store.\n */\n caStore.removeCertificate = function(cert) {\n var result;\n\n // convert from pem if necessary\n if(typeof cert === 'string') {\n cert = forge.pki.certificateFromPem(cert);\n }\n ensureSubjectHasHash(cert.subject);\n if(!caStore.hasCertificate(cert)) {\n return null;\n }\n\n var match = getBySubject(cert.subject);\n\n if(!forge.util.isArray(match)) {\n result = caStore.certs[cert.subject.hash];\n delete caStore.certs[cert.subject.hash];\n return result;\n }\n\n // compare DER-encoding of certificates\n var der1 = asn1.toDer(pki.certificateToAsn1(cert)).getBytes();\n for(var i = 0; i < match.length; ++i) {\n var der2 = asn1.toDer(pki.certificateToAsn1(match[i])).getBytes();\n if(der1 === der2) {\n result = match[i];\n match.splice(i, 1);\n }\n }\n if(match.length === 0) {\n delete caStore.certs[cert.subject.hash];\n }\n\n return result;\n };\n\n function getBySubject(subject) {\n ensureSubjectHasHash(subject);\n return caStore.certs[subject.hash] || null;\n }\n\n function ensureSubjectHasHash(subject) {\n // produce subject hash if it doesn't exist\n if(!subject.hash) {\n var md = forge.md.sha1.create();\n subject.attributes = pki.RDNAttributesAsArray(_dnToAsn1(subject), md);\n subject.hash = md.digest().toHex();\n }\n }\n\n // auto-add passed in certs\n if(certs) {\n // parse PEM-formatted certificates as necessary\n for(var i = 0; i < certs.length; ++i) {\n var cert = certs[i];\n caStore.addCertificate(cert);\n }\n }\n\n return caStore;\n};\n\n/**\n * Certificate verification errors, based on TLS.\n */\npki.certificateError = {\n bad_certificate: 'forge.pki.BadCertificate',\n unsupported_certificate: 'forge.pki.UnsupportedCertificate',\n certificate_revoked: 'forge.pki.CertificateRevoked',\n certificate_expired: 'forge.pki.CertificateExpired',\n certificate_unknown: 'forge.pki.CertificateUnknown',\n unknown_ca: 'forge.pki.UnknownCertificateAuthority'\n};\n\n/**\n * Verifies a certificate chain against the given Certificate Authority store\n * with an optional custom verify callback.\n *\n * @param caStore a certificate store to verify against.\n * @param chain the certificate chain to verify, with the root or highest\n * authority at the end (an array of certificates).\n * @param options a callback to be called for every certificate in the chain or\n * an object with:\n * verify a callback to be called for every certificate in the\n * chain\n * validityCheckDate the date against which the certificate\n * validity period should be checked. Pass null to not check\n * the validity period. By default, the current date is used.\n *\n * The verify callback has the following signature:\n *\n * verified - Set to true if certificate was verified, otherwise the\n * pki.certificateError for why the certificate failed.\n * depth - The current index in the chain, where 0 is the end point's cert.\n * certs - The certificate chain, *NOTE* an empty chain indicates an anonymous\n * end point.\n *\n * The function returns true on success and on failure either the appropriate\n * pki.certificateError or an object with 'error' set to the appropriate\n * pki.certificateError and 'message' set to a custom error message.\n *\n * @return true if successful, error thrown if not.\n */\npki.verifyCertificateChain = function(caStore, chain, options) {\n /* From: RFC3280 - Internet X.509 Public Key Infrastructure Certificate\n Section 6: Certification Path Validation\n See inline parentheticals related to this particular implementation.\n\n The primary goal of path validation is to verify the binding between\n a subject distinguished name or a subject alternative name and subject\n public key, as represented in the end entity certificate, based on the\n public key of the trust anchor. This requires obtaining a sequence of\n certificates that support that binding. That sequence should be provided\n in the passed 'chain'. The trust anchor should be in the given CA\n store. The 'end entity' certificate is the certificate provided by the\n end point (typically a server) and is the first in the chain.\n\n To meet this goal, the path validation process verifies, among other\n things, that a prospective certification path (a sequence of n\n certificates or a 'chain') satisfies the following conditions:\n\n (a) for all x in {1, ..., n-1}, the subject of certificate x is\n the issuer of certificate x+1;\n\n (b) certificate 1 is issued by the trust anchor;\n\n (c) certificate n is the certificate to be validated; and\n\n (d) for all x in {1, ..., n}, the certificate was valid at the\n time in question.\n\n Note that here 'n' is index 0 in the chain and 1 is the last certificate\n in the chain and it must be signed by a certificate in the connection's\n CA store.\n\n The path validation process also determines the set of certificate\n policies that are valid for this path, based on the certificate policies\n extension, policy mapping extension, policy constraints extension, and\n inhibit any-policy extension.\n\n Note: Policy mapping extension not supported (Not Required).\n\n Note: If the certificate has an unsupported critical extension, then it\n must be rejected.\n\n Note: A certificate is self-issued if the DNs that appear in the subject\n and issuer fields are identical and are not empty.\n\n The path validation algorithm assumes the following seven inputs are\n provided to the path processing logic. What this specific implementation\n will use is provided parenthetically:\n\n (a) a prospective certification path of length n (the 'chain')\n (b) the current date/time: ('now').\n (c) user-initial-policy-set: A set of certificate policy identifiers\n naming the policies that are acceptable to the certificate user.\n The user-initial-policy-set contains the special value any-policy\n if the user is not concerned about certificate policy\n (Not implemented. Any policy is accepted).\n (d) trust anchor information, describing a CA that serves as a trust\n anchor for the certification path. The trust anchor information\n includes:\n\n (1) the trusted issuer name,\n (2) the trusted public key algorithm,\n (3) the trusted public key, and\n (4) optionally, the trusted public key parameters associated\n with the public key.\n\n (Trust anchors are provided via certificates in the CA store).\n\n The trust anchor information may be provided to the path processing\n procedure in the form of a self-signed certificate. The trusted anchor\n information is trusted because it was delivered to the path processing\n procedure by some trustworthy out-of-band procedure. If the trusted\n public key algorithm requires parameters, then the parameters are\n provided along with the trusted public key (No parameters used in this\n implementation).\n\n (e) initial-policy-mapping-inhibit, which indicates if policy mapping is\n allowed in the certification path.\n (Not implemented, no policy checking)\n\n (f) initial-explicit-policy, which indicates if the path must be valid\n for at least one of the certificate policies in the user-initial-\n policy-set.\n (Not implemented, no policy checking)\n\n (g) initial-any-policy-inhibit, which indicates whether the\n anyPolicy OID should be processed if it is included in a\n certificate.\n (Not implemented, so any policy is valid provided that it is\n not marked as critical) */\n\n /* Basic Path Processing:\n\n For each certificate in the 'chain', the following is checked:\n\n 1. The certificate validity period includes the current time.\n 2. The certificate was signed by its parent (where the parent is either\n the next in the chain or from the CA store). Allow processing to\n continue to the next step if no parent is found but the certificate is\n in the CA store.\n 3. TODO: The certificate has not been revoked.\n 4. The certificate issuer name matches the parent's subject name.\n 5. TODO: If the certificate is self-issued and not the final certificate\n in the chain, skip this step, otherwise verify that the subject name\n is within one of the permitted subtrees of X.500 distinguished names\n and that each of the alternative names in the subjectAltName extension\n (critical or non-critical) is within one of the permitted subtrees for\n that name type.\n 6. TODO: If the certificate is self-issued and not the final certificate\n in the chain, skip this step, otherwise verify that the subject name\n is not within one of the excluded subtrees for X.500 distinguished\n names and none of the subjectAltName extension names are excluded for\n that name type.\n 7. The other steps in the algorithm for basic path processing involve\n handling the policy extension which is not presently supported in this\n implementation. Instead, if a critical policy extension is found, the\n certificate is rejected as not supported.\n 8. If the certificate is not the first or if its the only certificate in\n the chain (having no parent from the CA store or is self-signed) and it\n has a critical key usage extension, verify that the keyCertSign bit is\n set. If the key usage extension exists, verify that the basic\n constraints extension exists. If the basic constraints extension exists,\n verify that the cA flag is set. If pathLenConstraint is set, ensure that\n the number of certificates that precede in the chain (come earlier\n in the chain as implemented below), excluding the very first in the\n chain (typically the end-entity one), isn't greater than the\n pathLenConstraint. This constraint limits the number of intermediate\n CAs that may appear below a CA before only end-entity certificates\n may be issued. */\n\n // if a verify callback is passed as the third parameter, package it within\n // the options object. This is to support a legacy function signature that\n // expected the verify callback as the third parameter.\n if(typeof options === 'function') {\n options = {verify: options};\n }\n options = options || {};\n\n // copy cert chain references to another array to protect against changes\n // in verify callback\n chain = chain.slice(0);\n var certs = chain.slice(0);\n\n var validityCheckDate = options.validityCheckDate;\n // if no validityCheckDate is specified, default to the current date. Make\n // sure to maintain the value null because it indicates that the validity\n // period should not be checked.\n if(typeof validityCheckDate === 'undefined') {\n validityCheckDate = new Date();\n }\n\n // verify each cert in the chain using its parent, where the parent\n // is either the next in the chain or from the CA store\n var first = true;\n var error = null;\n var depth = 0;\n do {\n var cert = chain.shift();\n var parent = null;\n var selfSigned = false;\n\n if(validityCheckDate) {\n // 1. check valid time\n if(validityCheckDate < cert.validity.notBefore ||\n validityCheckDate > cert.validity.notAfter) {\n error = {\n message: 'Certificate is not valid yet or has expired.',\n error: pki.certificateError.certificate_expired,\n notBefore: cert.validity.notBefore,\n notAfter: cert.validity.notAfter,\n // TODO: we might want to reconsider renaming 'now' to\n // 'validityCheckDate' should this API be changed in the future.\n now: validityCheckDate\n };\n }\n }\n\n // 2. verify with parent from chain or CA store\n if(error === null) {\n parent = chain[0] || caStore.getIssuer(cert);\n if(parent === null) {\n // check for self-signed cert\n if(cert.isIssuer(cert)) {\n selfSigned = true;\n parent = cert;\n }\n }\n\n if(parent) {\n // FIXME: current CA store implementation might have multiple\n // certificates where the issuer can't be determined from the\n // certificate (happens rarely with, eg: old certificates) so normalize\n // by always putting parents into an array\n // TODO: there's may be an extreme degenerate case currently uncovered\n // where an old intermediate certificate seems to have a matching parent\n // but none of the parents actually verify ... but the intermediate\n // is in the CA and it should pass this check; needs investigation\n var parents = parent;\n if(!forge.util.isArray(parents)) {\n parents = [parents];\n }\n\n // try to verify with each possible parent (typically only one)\n var verified = false;\n while(!verified && parents.length > 0) {\n parent = parents.shift();\n try {\n verified = parent.verify(cert);\n } catch(ex) {\n // failure to verify, don't care why, try next one\n }\n }\n\n if(!verified) {\n error = {\n message: 'Certificate signature is invalid.',\n error: pki.certificateError.bad_certificate\n };\n }\n }\n\n if(error === null && (!parent || selfSigned) &&\n !caStore.hasCertificate(cert)) {\n // no parent issuer and certificate itself is not trusted\n error = {\n message: 'Certificate is not trusted.',\n error: pki.certificateError.unknown_ca\n };\n }\n }\n\n // TODO: 3. check revoked\n\n // 4. check for matching issuer/subject\n if(error === null && parent && !cert.isIssuer(parent)) {\n // parent is not issuer\n error = {\n message: 'Certificate issuer is invalid.',\n error: pki.certificateError.bad_certificate\n };\n }\n\n // 5. TODO: check names with permitted names tree\n\n // 6. TODO: check names against excluded names tree\n\n // 7. check for unsupported critical extensions\n if(error === null) {\n // supported extensions\n var se = {\n keyUsage: true,\n basicConstraints: true\n };\n for(var i = 0; error === null && i < cert.extensions.length; ++i) {\n var ext = cert.extensions[i];\n if(ext.critical && !(ext.name in se)) {\n error = {\n message:\n 'Certificate has an unsupported critical extension.',\n error: pki.certificateError.unsupported_certificate\n };\n }\n }\n }\n\n // 8. check for CA if cert is not first or is the only certificate\n // remaining in chain with no parent or is self-signed\n if(error === null &&\n (!first || (chain.length === 0 && (!parent || selfSigned)))) {\n // first check keyUsage extension and then basic constraints\n var bcExt = cert.getExtension('basicConstraints');\n var keyUsageExt = cert.getExtension('keyUsage');\n if(keyUsageExt !== null) {\n // keyCertSign must be true and there must be a basic\n // constraints extension\n if(!keyUsageExt.keyCertSign || bcExt === null) {\n // bad certificate\n error = {\n message:\n 'Certificate keyUsage or basicConstraints conflict ' +\n 'or indicate that the certificate is not a CA. ' +\n 'If the certificate is the only one in the chain or ' +\n 'isn\\'t the first then the certificate must be a ' +\n 'valid CA.',\n error: pki.certificateError.bad_certificate\n };\n }\n }\n // basic constraints cA flag must be set\n if(error === null && bcExt !== null && !bcExt.cA) {\n // bad certificate\n error = {\n message:\n 'Certificate basicConstraints indicates the certificate ' +\n 'is not a CA.',\n error: pki.certificateError.bad_certificate\n };\n }\n // if error is not null and keyUsage is available, then we know it\n // has keyCertSign and there is a basic constraints extension too,\n // which means we can check pathLenConstraint (if it exists)\n if(error === null && keyUsageExt !== null &&\n 'pathLenConstraint' in bcExt) {\n // pathLen is the maximum # of intermediate CA certs that can be\n // found between the current certificate and the end-entity (depth 0)\n // certificate; this number does not include the end-entity (depth 0,\n // last in the chain) even if it happens to be a CA certificate itself\n var pathLen = depth - 1;\n if(pathLen > bcExt.pathLenConstraint) {\n // pathLenConstraint violated, bad certificate\n error = {\n message:\n 'Certificate basicConstraints pathLenConstraint violated.',\n error: pki.certificateError.bad_certificate\n };\n }\n }\n }\n\n // call application callback\n var vfd = (error === null) ? true : error.error;\n var ret = options.verify ? options.verify(vfd, depth, certs) : vfd;\n if(ret === true) {\n // clear any set error\n error = null;\n } else {\n // if passed basic tests, set default message and alert\n if(vfd === true) {\n error = {\n message: 'The application rejected the certificate.',\n error: pki.certificateError.bad_certificate\n };\n }\n\n // check for custom error info\n if(ret || ret === 0) {\n // set custom message and error\n if(typeof ret === 'object' && !forge.util.isArray(ret)) {\n if(ret.message) {\n error.message = ret.message;\n }\n if(ret.error) {\n error.error = ret.error;\n }\n } else if(typeof ret === 'string') {\n // set custom error\n error.error = ret;\n }\n }\n\n // throw error\n throw error;\n }\n\n // no longer first cert in chain\n first = false;\n ++depth;\n } while(chain.length > 0);\n\n return true;\n};\n","/**\n * Javascript implementation of PKCS#12.\n *\n * @author Dave Longley\n * @author Stefan Siegl \n *\n * Copyright (c) 2010-2014 Digital Bazaar, Inc.\n * Copyright (c) 2012 Stefan Siegl \n *\n * The ASN.1 representation of PKCS#12 is as follows\n * (see ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-12/pkcs-12-tc1.pdf for details)\n *\n * PFX ::= SEQUENCE {\n * version INTEGER {v3(3)}(v3,...),\n * authSafe ContentInfo,\n * macData MacData OPTIONAL\n * }\n *\n * MacData ::= SEQUENCE {\n * mac DigestInfo,\n * macSalt OCTET STRING,\n * iterations INTEGER DEFAULT 1\n * }\n * Note: The iterations default is for historical reasons and its use is\n * deprecated. A higher value, like 1024, is recommended.\n *\n * DigestInfo is defined in PKCS#7 as follows:\n *\n * DigestInfo ::= SEQUENCE {\n * digestAlgorithm DigestAlgorithmIdentifier,\n * digest Digest\n * }\n *\n * DigestAlgorithmIdentifier ::= AlgorithmIdentifier\n *\n * The AlgorithmIdentifier contains an Object Identifier (OID) and parameters\n * for the algorithm, if any. In the case of SHA1 there is none.\n *\n * AlgorithmIdentifer ::= SEQUENCE {\n * algorithm OBJECT IDENTIFIER,\n * parameters ANY DEFINED BY algorithm OPTIONAL\n * }\n *\n * Digest ::= OCTET STRING\n *\n *\n * ContentInfo ::= SEQUENCE {\n * contentType ContentType,\n * content [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL\n * }\n *\n * ContentType ::= OBJECT IDENTIFIER\n *\n * AuthenticatedSafe ::= SEQUENCE OF ContentInfo\n * -- Data if unencrypted\n * -- EncryptedData if password-encrypted\n * -- EnvelopedData if public key-encrypted\n *\n *\n * SafeContents ::= SEQUENCE OF SafeBag\n *\n * SafeBag ::= SEQUENCE {\n * bagId BAG-TYPE.&id ({PKCS12BagSet})\n * bagValue [0] EXPLICIT BAG-TYPE.&Type({PKCS12BagSet}{@bagId}),\n * bagAttributes SET OF PKCS12Attribute OPTIONAL\n * }\n *\n * PKCS12Attribute ::= SEQUENCE {\n * attrId ATTRIBUTE.&id ({PKCS12AttrSet}),\n * attrValues SET OF ATTRIBUTE.&Type ({PKCS12AttrSet}{@attrId})\n * } -- This type is compatible with the X.500 type 'Attribute'\n *\n * PKCS12AttrSet ATTRIBUTE ::= {\n * friendlyName | -- from PKCS #9\n * localKeyId, -- from PKCS #9\n * ... -- Other attributes are allowed\n * }\n *\n * CertBag ::= SEQUENCE {\n * certId BAG-TYPE.&id ({CertTypes}),\n * certValue [0] EXPLICIT BAG-TYPE.&Type ({CertTypes}{@certId})\n * }\n *\n * x509Certificate BAG-TYPE ::= {OCTET STRING IDENTIFIED BY {certTypes 1}}\n * -- DER-encoded X.509 certificate stored in OCTET STRING\n *\n * sdsiCertificate BAG-TYPE ::= {IA5String IDENTIFIED BY {certTypes 2}}\n * -- Base64-encoded SDSI certificate stored in IA5String\n *\n * CertTypes BAG-TYPE ::= {\n * x509Certificate |\n * sdsiCertificate,\n * ... -- For future extensions\n * }\n */\nvar forge = require('./forge');\nrequire('./asn1');\nrequire('./hmac');\nrequire('./oids');\nrequire('./pkcs7asn1');\nrequire('./pbe');\nrequire('./random');\nrequire('./rsa');\nrequire('./sha1');\nrequire('./util');\nrequire('./x509');\n\n// shortcut for asn.1 & PKI API\nvar asn1 = forge.asn1;\nvar pki = forge.pki;\n\n// shortcut for PKCS#12 API\nvar p12 = module.exports = forge.pkcs12 = forge.pkcs12 || {};\n\nvar contentInfoValidator = {\n name: 'ContentInfo',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE, // a ContentInfo\n constructed: true,\n value: [{\n name: 'ContentInfo.contentType',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'contentType'\n }, {\n name: 'ContentInfo.content',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n constructed: true,\n captureAsn1: 'content'\n }]\n};\n\nvar pfxValidator = {\n name: 'PFX',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'PFX.version',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'version'\n },\n contentInfoValidator, {\n name: 'PFX.macData',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n optional: true,\n captureAsn1: 'mac',\n value: [{\n name: 'PFX.macData.mac',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE, // DigestInfo\n constructed: true,\n value: [{\n name: 'PFX.macData.mac.digestAlgorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE, // DigestAlgorithmIdentifier\n constructed: true,\n value: [{\n name: 'PFX.macData.mac.digestAlgorithm.algorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'macAlgorithm'\n }, {\n name: 'PFX.macData.mac.digestAlgorithm.parameters',\n tagClass: asn1.Class.UNIVERSAL,\n captureAsn1: 'macAlgorithmParameters'\n }]\n }, {\n name: 'PFX.macData.mac.digest',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OCTETSTRING,\n constructed: false,\n capture: 'macDigest'\n }]\n }, {\n name: 'PFX.macData.macSalt',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OCTETSTRING,\n constructed: false,\n capture: 'macSalt'\n }, {\n name: 'PFX.macData.iterations',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n optional: true,\n capture: 'macIterations'\n }]\n }]\n};\n\nvar safeBagValidator = {\n name: 'SafeBag',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'SafeBag.bagId',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'bagId'\n }, {\n name: 'SafeBag.bagValue',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n constructed: true,\n captureAsn1: 'bagValue'\n }, {\n name: 'SafeBag.bagAttributes',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SET,\n constructed: true,\n optional: true,\n capture: 'bagAttributes'\n }]\n};\n\nvar attributeValidator = {\n name: 'Attribute',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'Attribute.attrId',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'oid'\n }, {\n name: 'Attribute.attrValues',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SET,\n constructed: true,\n capture: 'values'\n }]\n};\n\nvar certBagValidator = {\n name: 'CertBag',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'CertBag.certId',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'certId'\n }, {\n name: 'CertBag.certValue',\n tagClass: asn1.Class.CONTEXT_SPECIFIC,\n constructed: true,\n /* So far we only support X.509 certificates (which are wrapped in\n an OCTET STRING, hence hard code that here). */\n value: [{\n name: 'CertBag.certValue[0]',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Class.OCTETSTRING,\n constructed: false,\n capture: 'cert'\n }]\n }]\n};\n\n/**\n * Search SafeContents structure for bags with matching attributes.\n *\n * The search can optionally be narrowed by a certain bag type.\n *\n * @param safeContents the SafeContents structure to search in.\n * @param attrName the name of the attribute to compare against.\n * @param attrValue the attribute value to search for.\n * @param [bagType] bag type to narrow search by.\n *\n * @return an array of matching bags.\n */\nfunction _getBagsByAttribute(safeContents, attrName, attrValue, bagType) {\n var result = [];\n\n for(var i = 0; i < safeContents.length; i++) {\n for(var j = 0; j < safeContents[i].safeBags.length; j++) {\n var bag = safeContents[i].safeBags[j];\n if(bagType !== undefined && bag.type !== bagType) {\n continue;\n }\n // only filter by bag type, no attribute specified\n if(attrName === null) {\n result.push(bag);\n continue;\n }\n if(bag.attributes[attrName] !== undefined &&\n bag.attributes[attrName].indexOf(attrValue) >= 0) {\n result.push(bag);\n }\n }\n }\n\n return result;\n}\n\n/**\n * Converts a PKCS#12 PFX in ASN.1 notation into a PFX object.\n *\n * @param obj The PKCS#12 PFX in ASN.1 notation.\n * @param strict true to use strict DER decoding, false not to (default: true).\n * @param {String} password Password to decrypt with (optional).\n *\n * @return PKCS#12 PFX object.\n */\np12.pkcs12FromAsn1 = function(obj, strict, password) {\n // handle args\n if(typeof strict === 'string') {\n password = strict;\n strict = true;\n } else if(strict === undefined) {\n strict = true;\n }\n\n // validate PFX and capture data\n var capture = {};\n var errors = [];\n if(!asn1.validate(obj, pfxValidator, capture, errors)) {\n var error = new Error('Cannot read PKCS#12 PFX. ' +\n 'ASN.1 object is not an PKCS#12 PFX.');\n error.errors = error;\n throw error;\n }\n\n var pfx = {\n version: capture.version.charCodeAt(0),\n safeContents: [],\n\n /**\n * Gets bags with matching attributes.\n *\n * @param filter the attributes to filter by:\n * [localKeyId] the localKeyId to search for.\n * [localKeyIdHex] the localKeyId in hex to search for.\n * [friendlyName] the friendly name to search for.\n * [bagType] bag type to narrow each attribute search by.\n *\n * @return a map of attribute type to an array of matching bags or, if no\n * attribute was given but a bag type, the map key will be the\n * bag type.\n */\n getBags: function(filter) {\n var rval = {};\n\n var localKeyId;\n if('localKeyId' in filter) {\n localKeyId = filter.localKeyId;\n } else if('localKeyIdHex' in filter) {\n localKeyId = forge.util.hexToBytes(filter.localKeyIdHex);\n }\n\n // filter on bagType only\n if(localKeyId === undefined && !('friendlyName' in filter) &&\n 'bagType' in filter) {\n rval[filter.bagType] = _getBagsByAttribute(\n pfx.safeContents, null, null, filter.bagType);\n }\n\n if(localKeyId !== undefined) {\n rval.localKeyId = _getBagsByAttribute(\n pfx.safeContents, 'localKeyId',\n localKeyId, filter.bagType);\n }\n if('friendlyName' in filter) {\n rval.friendlyName = _getBagsByAttribute(\n pfx.safeContents, 'friendlyName',\n filter.friendlyName, filter.bagType);\n }\n\n return rval;\n },\n\n /**\n * DEPRECATED: use getBags() instead.\n *\n * Get bags with matching friendlyName attribute.\n *\n * @param friendlyName the friendly name to search for.\n * @param [bagType] bag type to narrow search by.\n *\n * @return an array of bags with matching friendlyName attribute.\n */\n getBagsByFriendlyName: function(friendlyName, bagType) {\n return _getBagsByAttribute(\n pfx.safeContents, 'friendlyName', friendlyName, bagType);\n },\n\n /**\n * DEPRECATED: use getBags() instead.\n *\n * Get bags with matching localKeyId attribute.\n *\n * @param localKeyId the localKeyId to search for.\n * @param [bagType] bag type to narrow search by.\n *\n * @return an array of bags with matching localKeyId attribute.\n */\n getBagsByLocalKeyId: function(localKeyId, bagType) {\n return _getBagsByAttribute(\n pfx.safeContents, 'localKeyId', localKeyId, bagType);\n }\n };\n\n if(capture.version.charCodeAt(0) !== 3) {\n var error = new Error('PKCS#12 PFX of version other than 3 not supported.');\n error.version = capture.version.charCodeAt(0);\n throw error;\n }\n\n if(asn1.derToOid(capture.contentType) !== pki.oids.data) {\n var error = new Error('Only PKCS#12 PFX in password integrity mode supported.');\n error.oid = asn1.derToOid(capture.contentType);\n throw error;\n }\n\n var data = capture.content.value[0];\n if(data.tagClass !== asn1.Class.UNIVERSAL ||\n data.type !== asn1.Type.OCTETSTRING) {\n throw new Error('PKCS#12 authSafe content data is not an OCTET STRING.');\n }\n data = _decodePkcs7Data(data);\n\n // check for MAC\n if(capture.mac) {\n var md = null;\n var macKeyBytes = 0;\n var macAlgorithm = asn1.derToOid(capture.macAlgorithm);\n switch(macAlgorithm) {\n case pki.oids.sha1:\n md = forge.md.sha1.create();\n macKeyBytes = 20;\n break;\n case pki.oids.sha256:\n md = forge.md.sha256.create();\n macKeyBytes = 32;\n break;\n case pki.oids.sha384:\n md = forge.md.sha384.create();\n macKeyBytes = 48;\n break;\n case pki.oids.sha512:\n md = forge.md.sha512.create();\n macKeyBytes = 64;\n break;\n case pki.oids.md5:\n md = forge.md.md5.create();\n macKeyBytes = 16;\n break;\n }\n if(md === null) {\n throw new Error('PKCS#12 uses unsupported MAC algorithm: ' + macAlgorithm);\n }\n\n // verify MAC (iterations default to 1)\n var macSalt = new forge.util.ByteBuffer(capture.macSalt);\n var macIterations = (('macIterations' in capture) ?\n parseInt(forge.util.bytesToHex(capture.macIterations), 16) : 1);\n var macKey = p12.generateKey(\n password, macSalt, 3, macIterations, macKeyBytes, md);\n var mac = forge.hmac.create();\n mac.start(md, macKey);\n mac.update(data.value);\n var macValue = mac.getMac();\n if(macValue.getBytes() !== capture.macDigest) {\n throw new Error('PKCS#12 MAC could not be verified. Invalid password?');\n }\n }\n\n _decodeAuthenticatedSafe(pfx, data.value, strict, password);\n return pfx;\n};\n\n/**\n * Decodes PKCS#7 Data. PKCS#7 (RFC 2315) defines \"Data\" as an OCTET STRING,\n * but it is sometimes an OCTET STRING that is composed/constructed of chunks,\n * each its own OCTET STRING. This is BER-encoding vs. DER-encoding. This\n * function transforms this corner-case into the usual simple,\n * non-composed/constructed OCTET STRING.\n *\n * This function may be moved to ASN.1 at some point to better deal with\n * more BER-encoding issues, should they arise.\n *\n * @param data the ASN.1 Data object to transform.\n */\nfunction _decodePkcs7Data(data) {\n // handle special case of \"chunked\" data content: an octet string composed\n // of other octet strings\n if(data.composed || data.constructed) {\n var value = forge.util.createBuffer();\n for(var i = 0; i < data.value.length; ++i) {\n value.putBytes(data.value[i].value);\n }\n data.composed = data.constructed = false;\n data.value = value.getBytes();\n }\n return data;\n}\n\n/**\n * Decode PKCS#12 AuthenticatedSafe (BER encoded) into PFX object.\n *\n * The AuthenticatedSafe is a BER-encoded SEQUENCE OF ContentInfo.\n *\n * @param pfx The PKCS#12 PFX object to fill.\n * @param {String} authSafe BER-encoded AuthenticatedSafe.\n * @param strict true to use strict DER decoding, false not to.\n * @param {String} password Password to decrypt with (optional).\n */\nfunction _decodeAuthenticatedSafe(pfx, authSafe, strict, password) {\n authSafe = asn1.fromDer(authSafe, strict); /* actually it's BER encoded */\n\n if(authSafe.tagClass !== asn1.Class.UNIVERSAL ||\n authSafe.type !== asn1.Type.SEQUENCE ||\n authSafe.constructed !== true) {\n throw new Error('PKCS#12 AuthenticatedSafe expected to be a ' +\n 'SEQUENCE OF ContentInfo');\n }\n\n for(var i = 0; i < authSafe.value.length; i++) {\n var contentInfo = authSafe.value[i];\n\n // validate contentInfo and capture data\n var capture = {};\n var errors = [];\n if(!asn1.validate(contentInfo, contentInfoValidator, capture, errors)) {\n var error = new Error('Cannot read ContentInfo.');\n error.errors = errors;\n throw error;\n }\n\n var obj = {\n encrypted: false\n };\n var safeContents = null;\n var data = capture.content.value[0];\n switch(asn1.derToOid(capture.contentType)) {\n case pki.oids.data:\n if(data.tagClass !== asn1.Class.UNIVERSAL ||\n data.type !== asn1.Type.OCTETSTRING) {\n throw new Error('PKCS#12 SafeContents Data is not an OCTET STRING.');\n }\n safeContents = _decodePkcs7Data(data).value;\n break;\n case pki.oids.encryptedData:\n safeContents = _decryptSafeContents(data, password);\n obj.encrypted = true;\n break;\n default:\n var error = new Error('Unsupported PKCS#12 contentType.');\n error.contentType = asn1.derToOid(capture.contentType);\n throw error;\n }\n\n obj.safeBags = _decodeSafeContents(safeContents, strict, password);\n pfx.safeContents.push(obj);\n }\n}\n\n/**\n * Decrypt PKCS#7 EncryptedData structure.\n *\n * @param data ASN.1 encoded EncryptedContentInfo object.\n * @param password The user-provided password.\n *\n * @return The decrypted SafeContents (ASN.1 object).\n */\nfunction _decryptSafeContents(data, password) {\n var capture = {};\n var errors = [];\n if(!asn1.validate(\n data, forge.pkcs7.asn1.encryptedDataValidator, capture, errors)) {\n var error = new Error('Cannot read EncryptedContentInfo.');\n error.errors = errors;\n throw error;\n }\n\n var oid = asn1.derToOid(capture.contentType);\n if(oid !== pki.oids.data) {\n var error = new Error(\n 'PKCS#12 EncryptedContentInfo ContentType is not Data.');\n error.oid = oid;\n throw error;\n }\n\n // get cipher\n oid = asn1.derToOid(capture.encAlgorithm);\n var cipher = pki.pbe.getCipher(oid, capture.encParameter, password);\n\n // get encrypted data\n var encryptedContentAsn1 = _decodePkcs7Data(capture.encryptedContentAsn1);\n var encrypted = forge.util.createBuffer(encryptedContentAsn1.value);\n\n cipher.update(encrypted);\n if(!cipher.finish()) {\n throw new Error('Failed to decrypt PKCS#12 SafeContents.');\n }\n\n return cipher.output.getBytes();\n}\n\n/**\n * Decode PKCS#12 SafeContents (BER-encoded) into array of Bag objects.\n *\n * The safeContents is a BER-encoded SEQUENCE OF SafeBag.\n *\n * @param {String} safeContents BER-encoded safeContents.\n * @param strict true to use strict DER decoding, false not to.\n * @param {String} password Password to decrypt with (optional).\n *\n * @return {Array} Array of Bag objects.\n */\nfunction _decodeSafeContents(safeContents, strict, password) {\n // if strict and no safe contents, return empty safes\n if(!strict && safeContents.length === 0) {\n return [];\n }\n\n // actually it's BER-encoded\n safeContents = asn1.fromDer(safeContents, strict);\n\n if(safeContents.tagClass !== asn1.Class.UNIVERSAL ||\n safeContents.type !== asn1.Type.SEQUENCE ||\n safeContents.constructed !== true) {\n throw new Error(\n 'PKCS#12 SafeContents expected to be a SEQUENCE OF SafeBag.');\n }\n\n var res = [];\n for(var i = 0; i < safeContents.value.length; i++) {\n var safeBag = safeContents.value[i];\n\n // validate SafeBag and capture data\n var capture = {};\n var errors = [];\n if(!asn1.validate(safeBag, safeBagValidator, capture, errors)) {\n var error = new Error('Cannot read SafeBag.');\n error.errors = errors;\n throw error;\n }\n\n /* Create bag object and push to result array. */\n var bag = {\n type: asn1.derToOid(capture.bagId),\n attributes: _decodeBagAttributes(capture.bagAttributes)\n };\n res.push(bag);\n\n var validator, decoder;\n var bagAsn1 = capture.bagValue.value[0];\n switch(bag.type) {\n case pki.oids.pkcs8ShroudedKeyBag:\n /* bagAsn1 has a EncryptedPrivateKeyInfo, which we need to decrypt.\n Afterwards we can handle it like a keyBag,\n which is a PrivateKeyInfo. */\n bagAsn1 = pki.decryptPrivateKeyInfo(bagAsn1, password);\n if(bagAsn1 === null) {\n throw new Error(\n 'Unable to decrypt PKCS#8 ShroudedKeyBag, wrong password?');\n }\n\n /* fall through */\n case pki.oids.keyBag:\n /* A PKCS#12 keyBag is a simple PrivateKeyInfo as understood by our\n PKI module, hence we don't have to do validation/capturing here,\n just pass what we already got. */\n try {\n bag.key = pki.privateKeyFromAsn1(bagAsn1);\n } catch(e) {\n // ignore unknown key type, pass asn1 value\n bag.key = null;\n bag.asn1 = bagAsn1;\n }\n continue; /* Nothing more to do. */\n\n case pki.oids.certBag:\n /* A PKCS#12 certBag can wrap both X.509 and sdsi certificates.\n Therefore put the SafeBag content through another validator to\n capture the fields. Afterwards check & store the results. */\n validator = certBagValidator;\n decoder = function() {\n if(asn1.derToOid(capture.certId) !== pki.oids.x509Certificate) {\n var error = new Error(\n 'Unsupported certificate type, only X.509 supported.');\n error.oid = asn1.derToOid(capture.certId);\n throw error;\n }\n\n // true=produce cert hash\n var certAsn1 = asn1.fromDer(capture.cert, strict);\n try {\n bag.cert = pki.certificateFromAsn1(certAsn1, true);\n } catch(e) {\n // ignore unknown cert type, pass asn1 value\n bag.cert = null;\n bag.asn1 = certAsn1;\n }\n };\n break;\n\n default:\n var error = new Error('Unsupported PKCS#12 SafeBag type.');\n error.oid = bag.type;\n throw error;\n }\n\n /* Validate SafeBag value (i.e. CertBag, etc.) and capture data if needed. */\n if(validator !== undefined &&\n !asn1.validate(bagAsn1, validator, capture, errors)) {\n var error = new Error('Cannot read PKCS#12 ' + validator.name);\n error.errors = errors;\n throw error;\n }\n\n /* Call decoder function from above to store the results. */\n decoder();\n }\n\n return res;\n}\n\n/**\n * Decode PKCS#12 SET OF PKCS12Attribute into JavaScript object.\n *\n * @param attributes SET OF PKCS12Attribute (ASN.1 object).\n *\n * @return the decoded attributes.\n */\nfunction _decodeBagAttributes(attributes) {\n var decodedAttrs = {};\n\n if(attributes !== undefined) {\n for(var i = 0; i < attributes.length; ++i) {\n var capture = {};\n var errors = [];\n if(!asn1.validate(attributes[i], attributeValidator, capture, errors)) {\n var error = new Error('Cannot read PKCS#12 BagAttribute.');\n error.errors = errors;\n throw error;\n }\n\n var oid = asn1.derToOid(capture.oid);\n if(pki.oids[oid] === undefined) {\n // unsupported attribute type, ignore.\n continue;\n }\n\n decodedAttrs[pki.oids[oid]] = [];\n for(var j = 0; j < capture.values.length; ++j) {\n decodedAttrs[pki.oids[oid]].push(capture.values[j].value);\n }\n }\n }\n\n return decodedAttrs;\n}\n\n/**\n * Wraps a private key and certificate in a PKCS#12 PFX wrapper. If a\n * password is provided then the private key will be encrypted.\n *\n * An entire certificate chain may also be included. To do this, pass\n * an array for the \"cert\" parameter where the first certificate is\n * the one that is paired with the private key and each subsequent one\n * verifies the previous one. The certificates may be in PEM format or\n * have been already parsed by Forge.\n *\n * @todo implement password-based-encryption for the whole package\n *\n * @param key the private key.\n * @param cert the certificate (may be an array of certificates in order\n * to specify a certificate chain).\n * @param password the password to use, null for none.\n * @param options:\n * algorithm the encryption algorithm to use\n * ('aes128', 'aes192', 'aes256', '3des'), defaults to 'aes128'.\n * count the iteration count to use.\n * saltSize the salt size to use.\n * useMac true to include a MAC, false not to, defaults to true.\n * localKeyId the local key ID to use, in hex.\n * friendlyName the friendly name to use.\n * generateLocalKeyId true to generate a random local key ID,\n * false not to, defaults to true.\n *\n * @return the PKCS#12 PFX ASN.1 object.\n */\np12.toPkcs12Asn1 = function(key, cert, password, options) {\n // set default options\n options = options || {};\n options.saltSize = options.saltSize || 8;\n options.count = options.count || 2048;\n options.algorithm = options.algorithm || options.encAlgorithm || 'aes128';\n if(!('useMac' in options)) {\n options.useMac = true;\n }\n if(!('localKeyId' in options)) {\n options.localKeyId = null;\n }\n if(!('generateLocalKeyId' in options)) {\n options.generateLocalKeyId = true;\n }\n\n var localKeyId = options.localKeyId;\n var bagAttrs;\n if(localKeyId !== null) {\n localKeyId = forge.util.hexToBytes(localKeyId);\n } else if(options.generateLocalKeyId) {\n // use SHA-1 of paired cert, if available\n if(cert) {\n var pairedCert = forge.util.isArray(cert) ? cert[0] : cert;\n if(typeof pairedCert === 'string') {\n pairedCert = pki.certificateFromPem(pairedCert);\n }\n var sha1 = forge.md.sha1.create();\n sha1.update(asn1.toDer(pki.certificateToAsn1(pairedCert)).getBytes());\n localKeyId = sha1.digest().getBytes();\n } else {\n // FIXME: consider using SHA-1 of public key (which can be generated\n // from private key components), see: cert.generateSubjectKeyIdentifier\n // generate random bytes\n localKeyId = forge.random.getBytes(20);\n }\n }\n\n var attrs = [];\n if(localKeyId !== null) {\n attrs.push(\n // localKeyID\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // attrId\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(pki.oids.localKeyId).getBytes()),\n // attrValues\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SET, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false,\n localKeyId)\n ])\n ]));\n }\n if('friendlyName' in options) {\n attrs.push(\n // friendlyName\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // attrId\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(pki.oids.friendlyName).getBytes()),\n // attrValues\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SET, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.BMPSTRING, false,\n options.friendlyName)\n ])\n ]));\n }\n\n if(attrs.length > 0) {\n bagAttrs = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SET, true, attrs);\n }\n\n // collect contents for AuthenticatedSafe\n var contents = [];\n\n // create safe bag(s) for certificate chain\n var chain = [];\n if(cert !== null) {\n if(forge.util.isArray(cert)) {\n chain = cert;\n } else {\n chain = [cert];\n }\n }\n\n var certSafeBags = [];\n for(var i = 0; i < chain.length; ++i) {\n // convert cert from PEM as necessary\n cert = chain[i];\n if(typeof cert === 'string') {\n cert = pki.certificateFromPem(cert);\n }\n\n // SafeBag\n var certBagAttrs = (i === 0) ? bagAttrs : undefined;\n var certAsn1 = pki.certificateToAsn1(cert);\n var certSafeBag =\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // bagId\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(pki.oids.certBag).getBytes()),\n // bagValue\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [\n // CertBag\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // certId\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(pki.oids.x509Certificate).getBytes()),\n // certValue (x509Certificate)\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [\n asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false,\n asn1.toDer(certAsn1).getBytes())\n ])])]),\n // bagAttributes (OPTIONAL)\n certBagAttrs\n ]);\n certSafeBags.push(certSafeBag);\n }\n\n if(certSafeBags.length > 0) {\n // SafeContents\n var certSafeContents = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, certSafeBags);\n\n // ContentInfo\n var certCI =\n // PKCS#7 ContentInfo\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // contentType\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n // OID for the content type is 'data'\n asn1.oidToDer(pki.oids.data).getBytes()),\n // content\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [\n asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false,\n asn1.toDer(certSafeContents).getBytes())\n ])\n ]);\n contents.push(certCI);\n }\n\n // create safe contents for private key\n var keyBag = null;\n if(key !== null) {\n // SafeBag\n var pkAsn1 = pki.wrapRsaPrivateKey(pki.privateKeyToAsn1(key));\n if(password === null) {\n // no encryption\n keyBag = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // bagId\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(pki.oids.keyBag).getBytes()),\n // bagValue\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [\n // PrivateKeyInfo\n pkAsn1\n ]),\n // bagAttributes (OPTIONAL)\n bagAttrs\n ]);\n } else {\n // encrypted PrivateKeyInfo\n keyBag = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // bagId\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(pki.oids.pkcs8ShroudedKeyBag).getBytes()),\n // bagValue\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [\n // EncryptedPrivateKeyInfo\n pki.encryptPrivateKeyInfo(pkAsn1, password, options)\n ]),\n // bagAttributes (OPTIONAL)\n bagAttrs\n ]);\n }\n\n // SafeContents\n var keySafeContents =\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [keyBag]);\n\n // ContentInfo\n var keyCI =\n // PKCS#7 ContentInfo\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // contentType\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n // OID for the content type is 'data'\n asn1.oidToDer(pki.oids.data).getBytes()),\n // content\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [\n asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false,\n asn1.toDer(keySafeContents).getBytes())\n ])\n ]);\n contents.push(keyCI);\n }\n\n // create AuthenticatedSafe by stringing together the contents\n var safe = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, contents);\n\n var macData;\n if(options.useMac) {\n // MacData\n var sha1 = forge.md.sha1.create();\n var macSalt = new forge.util.ByteBuffer(\n forge.random.getBytes(options.saltSize));\n var count = options.count;\n // 160-bit key\n var key = p12.generateKey(password, macSalt, 3, count, 20);\n var mac = forge.hmac.create();\n mac.start(sha1, key);\n mac.update(asn1.toDer(safe).getBytes());\n var macValue = mac.getMac();\n macData = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // mac DigestInfo\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // digestAlgorithm\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // algorithm = SHA-1\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(pki.oids.sha1).getBytes()),\n // parameters = Null\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, '')\n ]),\n // digest\n asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING,\n false, macValue.getBytes())\n ]),\n // macSalt OCTET STRING\n asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, macSalt.getBytes()),\n // iterations INTEGER (XXX: Only support count < 65536)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n asn1.integerToDer(count).getBytes()\n )\n ]);\n }\n\n // PFX\n return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // version (3)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n asn1.integerToDer(3).getBytes()),\n // PKCS#7 ContentInfo\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // contentType\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n // OID for the content type is 'data'\n asn1.oidToDer(pki.oids.data).getBytes()),\n // content\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [\n asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false,\n asn1.toDer(safe).getBytes())\n ])\n ]),\n macData\n ]);\n};\n\n/**\n * Derives a PKCS#12 key.\n *\n * @param password the password to derive the key material from, null or\n * undefined for none.\n * @param salt the salt, as a ByteBuffer, to use.\n * @param id the PKCS#12 ID byte (1 = key material, 2 = IV, 3 = MAC).\n * @param iter the iteration count.\n * @param n the number of bytes to derive from the password.\n * @param md the message digest to use, defaults to SHA-1.\n *\n * @return a ByteBuffer with the bytes derived from the password.\n */\np12.generateKey = forge.pbe.generatePkcs12Key;\n","/**\n * Javascript implementation of a basic Public Key Infrastructure, including\n * support for RSA public and private keys.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2010-2013 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./asn1');\nrequire('./oids');\nrequire('./pbe');\nrequire('./pem');\nrequire('./pbkdf2');\nrequire('./pkcs12');\nrequire('./pss');\nrequire('./rsa');\nrequire('./util');\nrequire('./x509');\n\n// shortcut for asn.1 API\nvar asn1 = forge.asn1;\n\n/* Public Key Infrastructure (PKI) implementation. */\nvar pki = module.exports = forge.pki = forge.pki || {};\n\n/**\n * NOTE: THIS METHOD IS DEPRECATED. Use pem.decode() instead.\n *\n * Converts PEM-formatted data to DER.\n *\n * @param pem the PEM-formatted data.\n *\n * @return the DER-formatted data.\n */\npki.pemToDer = function(pem) {\n var msg = forge.pem.decode(pem)[0];\n if(msg.procType && msg.procType.type === 'ENCRYPTED') {\n throw new Error('Could not convert PEM to DER; PEM is encrypted.');\n }\n return forge.util.createBuffer(msg.body);\n};\n\n/**\n * Converts an RSA private key from PEM format.\n *\n * @param pem the PEM-formatted private key.\n *\n * @return the private key.\n */\npki.privateKeyFromPem = function(pem) {\n var msg = forge.pem.decode(pem)[0];\n\n if(msg.type !== 'PRIVATE KEY' && msg.type !== 'RSA PRIVATE KEY') {\n var error = new Error('Could not convert private key from PEM; PEM ' +\n 'header type is not \"PRIVATE KEY\" or \"RSA PRIVATE KEY\".');\n error.headerType = msg.type;\n throw error;\n }\n if(msg.procType && msg.procType.type === 'ENCRYPTED') {\n throw new Error('Could not convert private key from PEM; PEM is encrypted.');\n }\n\n // convert DER to ASN.1 object\n var obj = asn1.fromDer(msg.body);\n\n return pki.privateKeyFromAsn1(obj);\n};\n\n/**\n * Converts an RSA private key to PEM format.\n *\n * @param key the private key.\n * @param maxline the maximum characters per line, defaults to 64.\n *\n * @return the PEM-formatted private key.\n */\npki.privateKeyToPem = function(key, maxline) {\n // convert to ASN.1, then DER, then PEM-encode\n var msg = {\n type: 'RSA PRIVATE KEY',\n body: asn1.toDer(pki.privateKeyToAsn1(key)).getBytes()\n };\n return forge.pem.encode(msg, {maxline: maxline});\n};\n\n/**\n * Converts a PrivateKeyInfo to PEM format.\n *\n * @param pki the PrivateKeyInfo.\n * @param maxline the maximum characters per line, defaults to 64.\n *\n * @return the PEM-formatted private key.\n */\npki.privateKeyInfoToPem = function(pki, maxline) {\n // convert to DER, then PEM-encode\n var msg = {\n type: 'PRIVATE KEY',\n body: asn1.toDer(pki).getBytes()\n };\n return forge.pem.encode(msg, {maxline: maxline});\n};\n","/**\n * A Javascript implementation of Transport Layer Security (TLS).\n *\n * @author Dave Longley\n *\n * Copyright (c) 2009-2014 Digital Bazaar, Inc.\n *\n * The TLS Handshake Protocol involves the following steps:\n *\n * - Exchange hello messages to agree on algorithms, exchange random values,\n * and check for session resumption.\n *\n * - Exchange the necessary cryptographic parameters to allow the client and\n * server to agree on a premaster secret.\n *\n * - Exchange certificates and cryptographic information to allow the client\n * and server to authenticate themselves.\n *\n * - Generate a master secret from the premaster secret and exchanged random\n * values.\n *\n * - Provide security parameters to the record layer.\n *\n * - Allow the client and server to verify that their peer has calculated the\n * same security parameters and that the handshake occurred without tampering\n * by an attacker.\n *\n * Up to 4 different messages may be sent during a key exchange. The server\n * certificate, the server key exchange, the client certificate, and the\n * client key exchange.\n *\n * A typical handshake (from the client's perspective).\n *\n * 1. Client sends ClientHello.\n * 2. Client receives ServerHello.\n * 3. Client receives optional Certificate.\n * 4. Client receives optional ServerKeyExchange.\n * 5. Client receives ServerHelloDone.\n * 6. Client sends optional Certificate.\n * 7. Client sends ClientKeyExchange.\n * 8. Client sends optional CertificateVerify.\n * 9. Client sends ChangeCipherSpec.\n * 10. Client sends Finished.\n * 11. Client receives ChangeCipherSpec.\n * 12. Client receives Finished.\n * 13. Client sends/receives application data.\n *\n * To reuse an existing session:\n *\n * 1. Client sends ClientHello with session ID for reuse.\n * 2. Client receives ServerHello with same session ID if reusing.\n * 3. Client receives ChangeCipherSpec message if reusing.\n * 4. Client receives Finished.\n * 5. Client sends ChangeCipherSpec.\n * 6. Client sends Finished.\n *\n * Note: Client ignores HelloRequest if in the middle of a handshake.\n *\n * Record Layer:\n *\n * The record layer fragments information blocks into TLSPlaintext records\n * carrying data in chunks of 2^14 bytes or less. Client message boundaries are\n * not preserved in the record layer (i.e., multiple client messages of the\n * same ContentType MAY be coalesced into a single TLSPlaintext record, or a\n * single message MAY be fragmented across several records).\n *\n * struct {\n * uint8 major;\n * uint8 minor;\n * } ProtocolVersion;\n *\n * struct {\n * ContentType type;\n * ProtocolVersion version;\n * uint16 length;\n * opaque fragment[TLSPlaintext.length];\n * } TLSPlaintext;\n *\n * type:\n * The higher-level protocol used to process the enclosed fragment.\n *\n * version:\n * The version of the protocol being employed. TLS Version 1.2 uses version\n * {3, 3}. TLS Version 1.0 uses version {3, 1}. Note that a client that\n * supports multiple versions of TLS may not know what version will be\n * employed before it receives the ServerHello.\n *\n * length:\n * The length (in bytes) of the following TLSPlaintext.fragment. The length\n * MUST NOT exceed 2^14 = 16384 bytes.\n *\n * fragment:\n * The application data. This data is transparent and treated as an\n * independent block to be dealt with by the higher-level protocol specified\n * by the type field.\n *\n * Implementations MUST NOT send zero-length fragments of Handshake, Alert, or\n * ChangeCipherSpec content types. Zero-length fragments of Application data\n * MAY be sent as they are potentially useful as a traffic analysis\n * countermeasure.\n *\n * Note: Data of different TLS record layer content types MAY be interleaved.\n * Application data is generally of lower precedence for transmission than\n * other content types. However, records MUST be delivered to the network in\n * the same order as they are protected by the record layer. Recipients MUST\n * receive and process interleaved application layer traffic during handshakes\n * subsequent to the first one on a connection.\n *\n * struct {\n * ContentType type; // same as TLSPlaintext.type\n * ProtocolVersion version;// same as TLSPlaintext.version\n * uint16 length;\n * opaque fragment[TLSCompressed.length];\n * } TLSCompressed;\n *\n * length:\n * The length (in bytes) of the following TLSCompressed.fragment.\n * The length MUST NOT exceed 2^14 + 1024.\n *\n * fragment:\n * The compressed form of TLSPlaintext.fragment.\n *\n * Note: A CompressionMethod.null operation is an identity operation; no fields\n * are altered. In this implementation, since no compression is supported,\n * uncompressed records are always the same as compressed records.\n *\n * Encryption Information:\n *\n * The encryption and MAC functions translate a TLSCompressed structure into a\n * TLSCiphertext. The decryption functions reverse the process. The MAC of the\n * record also includes a sequence number so that missing, extra, or repeated\n * messages are detectable.\n *\n * struct {\n * ContentType type;\n * ProtocolVersion version;\n * uint16 length;\n * select (SecurityParameters.cipher_type) {\n * case stream: GenericStreamCipher;\n * case block: GenericBlockCipher;\n * case aead: GenericAEADCipher;\n * } fragment;\n * } TLSCiphertext;\n *\n * type:\n * The type field is identical to TLSCompressed.type.\n *\n * version:\n * The version field is identical to TLSCompressed.version.\n *\n * length:\n * The length (in bytes) of the following TLSCiphertext.fragment.\n * The length MUST NOT exceed 2^14 + 2048.\n *\n * fragment:\n * The encrypted form of TLSCompressed.fragment, with the MAC.\n *\n * Note: Only CBC Block Ciphers are supported by this implementation.\n *\n * The TLSCompressed.fragment structures are converted to/from block\n * TLSCiphertext.fragment structures.\n *\n * struct {\n * opaque IV[SecurityParameters.record_iv_length];\n * block-ciphered struct {\n * opaque content[TLSCompressed.length];\n * opaque MAC[SecurityParameters.mac_length];\n * uint8 padding[GenericBlockCipher.padding_length];\n * uint8 padding_length;\n * };\n * } GenericBlockCipher;\n *\n * The MAC is generated as described in Section 6.2.3.1.\n *\n * IV:\n * The Initialization Vector (IV) SHOULD be chosen at random, and MUST be\n * unpredictable. Note that in versions of TLS prior to 1.1, there was no\n * IV field, and the last ciphertext block of the previous record (the \"CBC\n * residue\") was used as the IV. This was changed to prevent the attacks\n * described in [CBCATT]. For block ciphers, the IV length is of length\n * SecurityParameters.record_iv_length, which is equal to the\n * SecurityParameters.block_size.\n *\n * padding:\n * Padding that is added to force the length of the plaintext to be an\n * integral multiple of the block cipher's block length. The padding MAY be\n * any length up to 255 bytes, as long as it results in the\n * TLSCiphertext.length being an integral multiple of the block length.\n * Lengths longer than necessary might be desirable to frustrate attacks on\n * a protocol that are based on analysis of the lengths of exchanged\n * messages. Each uint8 in the padding data vector MUST be filled with the\n * padding length value. The receiver MUST check this padding and MUST use\n * the bad_record_mac alert to indicate padding errors.\n *\n * padding_length:\n * The padding length MUST be such that the total size of the\n * GenericBlockCipher structure is a multiple of the cipher's block length.\n * Legal values range from zero to 255, inclusive. This length specifies the\n * length of the padding field exclusive of the padding_length field itself.\n *\n * The encrypted data length (TLSCiphertext.length) is one more than the sum of\n * SecurityParameters.block_length, TLSCompressed.length,\n * SecurityParameters.mac_length, and padding_length.\n *\n * Example: If the block length is 8 bytes, the content length\n * (TLSCompressed.length) is 61 bytes, and the MAC length is 20 bytes, then the\n * length before padding is 82 bytes (this does not include the IV. Thus, the\n * padding length modulo 8 must be equal to 6 in order to make the total length\n * an even multiple of 8 bytes (the block length). The padding length can be\n * 6, 14, 22, and so on, through 254. If the padding length were the minimum\n * necessary, 6, the padding would be 6 bytes, each containing the value 6.\n * Thus, the last 8 octets of the GenericBlockCipher before block encryption\n * would be xx 06 06 06 06 06 06 06, where xx is the last octet of the MAC.\n *\n * Note: With block ciphers in CBC mode (Cipher Block Chaining), it is critical\n * that the entire plaintext of the record be known before any ciphertext is\n * transmitted. Otherwise, it is possible for the attacker to mount the attack\n * described in [CBCATT].\n *\n * Implementation note: Canvel et al. [CBCTIME] have demonstrated a timing\n * attack on CBC padding based on the time required to compute the MAC. In\n * order to defend against this attack, implementations MUST ensure that\n * record processing time is essentially the same whether or not the padding\n * is correct. In general, the best way to do this is to compute the MAC even\n * if the padding is incorrect, and only then reject the packet. For instance,\n * if the pad appears to be incorrect, the implementation might assume a\n * zero-length pad and then compute the MAC. This leaves a small timing\n * channel, since MAC performance depends, to some extent, on the size of the\n * data fragment, but it is not believed to be large enough to be exploitable,\n * due to the large block size of existing MACs and the small size of the\n * timing signal.\n */\nvar forge = require('./forge');\nrequire('./asn1');\nrequire('./hmac');\nrequire('./md5');\nrequire('./pem');\nrequire('./pki');\nrequire('./random');\nrequire('./sha1');\nrequire('./util');\n\n/**\n * Generates pseudo random bytes by mixing the result of two hash functions,\n * MD5 and SHA-1.\n *\n * prf_TLS1(secret, label, seed) =\n * P_MD5(S1, label + seed) XOR P_SHA-1(S2, label + seed);\n *\n * Each P_hash function functions as follows:\n *\n * P_hash(secret, seed) = HMAC_hash(secret, A(1) + seed) +\n * HMAC_hash(secret, A(2) + seed) +\n * HMAC_hash(secret, A(3) + seed) + ...\n * A() is defined as:\n * A(0) = seed\n * A(i) = HMAC_hash(secret, A(i-1))\n *\n * The '+' operator denotes concatenation.\n *\n * As many iterations A(N) as are needed are performed to generate enough\n * pseudo random byte output. If an iteration creates more data than is\n * necessary, then it is truncated.\n *\n * Therefore:\n * A(1) = HMAC_hash(secret, A(0))\n * = HMAC_hash(secret, seed)\n * A(2) = HMAC_hash(secret, A(1))\n * = HMAC_hash(secret, HMAC_hash(secret, seed))\n *\n * Therefore:\n * P_hash(secret, seed) =\n * HMAC_hash(secret, HMAC_hash(secret, A(0)) + seed) +\n * HMAC_hash(secret, HMAC_hash(secret, A(1)) + seed) +\n * ...\n *\n * Therefore:\n * P_hash(secret, seed) =\n * HMAC_hash(secret, HMAC_hash(secret, seed) + seed) +\n * HMAC_hash(secret, HMAC_hash(secret, HMAC_hash(secret, seed)) + seed) +\n * ...\n *\n * @param secret the secret to use.\n * @param label the label to use.\n * @param seed the seed value to use.\n * @param length the number of bytes to generate.\n *\n * @return the pseudo random bytes in a byte buffer.\n */\nvar prf_TLS1 = function(secret, label, seed, length) {\n var rval = forge.util.createBuffer();\n\n /* For TLS 1.0, the secret is split in half, into two secrets of equal\n length. If the secret has an odd length then the last byte of the first\n half will be the same as the first byte of the second. The length of the\n two secrets is half of the secret rounded up. */\n var idx = (secret.length >> 1);\n var slen = idx + (secret.length & 1);\n var s1 = secret.substr(0, slen);\n var s2 = secret.substr(idx, slen);\n var ai = forge.util.createBuffer();\n var hmac = forge.hmac.create();\n seed = label + seed;\n\n // determine the number of iterations that must be performed to generate\n // enough output bytes, md5 creates 16 byte hashes, sha1 creates 20\n var md5itr = Math.ceil(length / 16);\n var sha1itr = Math.ceil(length / 20);\n\n // do md5 iterations\n hmac.start('MD5', s1);\n var md5bytes = forge.util.createBuffer();\n ai.putBytes(seed);\n for(var i = 0; i < md5itr; ++i) {\n // HMAC_hash(secret, A(i-1))\n hmac.start(null, null);\n hmac.update(ai.getBytes());\n ai.putBuffer(hmac.digest());\n\n // HMAC_hash(secret, A(i) + seed)\n hmac.start(null, null);\n hmac.update(ai.bytes() + seed);\n md5bytes.putBuffer(hmac.digest());\n }\n\n // do sha1 iterations\n hmac.start('SHA1', s2);\n var sha1bytes = forge.util.createBuffer();\n ai.clear();\n ai.putBytes(seed);\n for(var i = 0; i < sha1itr; ++i) {\n // HMAC_hash(secret, A(i-1))\n hmac.start(null, null);\n hmac.update(ai.getBytes());\n ai.putBuffer(hmac.digest());\n\n // HMAC_hash(secret, A(i) + seed)\n hmac.start(null, null);\n hmac.update(ai.bytes() + seed);\n sha1bytes.putBuffer(hmac.digest());\n }\n\n // XOR the md5 bytes with the sha1 bytes\n rval.putBytes(forge.util.xorBytes(\n md5bytes.getBytes(), sha1bytes.getBytes(), length));\n\n return rval;\n};\n\n/**\n * Generates pseudo random bytes using a SHA256 algorithm. For TLS 1.2.\n *\n * @param secret the secret to use.\n * @param label the label to use.\n * @param seed the seed value to use.\n * @param length the number of bytes to generate.\n *\n * @return the pseudo random bytes in a byte buffer.\n */\nvar prf_sha256 = function(secret, label, seed, length) {\n // FIXME: implement me for TLS 1.2\n};\n\n/**\n * Gets a MAC for a record using the SHA-1 hash algorithm.\n *\n * @param key the mac key.\n * @param state the sequence number (array of two 32-bit integers).\n * @param record the record.\n *\n * @return the sha-1 hash (20 bytes) for the given record.\n */\nvar hmac_sha1 = function(key, seqNum, record) {\n /* MAC is computed like so:\n HMAC_hash(\n key, seqNum +\n TLSCompressed.type +\n TLSCompressed.version +\n TLSCompressed.length +\n TLSCompressed.fragment)\n */\n var hmac = forge.hmac.create();\n hmac.start('SHA1', key);\n var b = forge.util.createBuffer();\n b.putInt32(seqNum[0]);\n b.putInt32(seqNum[1]);\n b.putByte(record.type);\n b.putByte(record.version.major);\n b.putByte(record.version.minor);\n b.putInt16(record.length);\n b.putBytes(record.fragment.bytes());\n hmac.update(b.getBytes());\n return hmac.digest().getBytes();\n};\n\n/**\n * Compresses the TLSPlaintext record into a TLSCompressed record using the\n * deflate algorithm.\n *\n * @param c the TLS connection.\n * @param record the TLSPlaintext record to compress.\n * @param s the ConnectionState to use.\n *\n * @return true on success, false on failure.\n */\nvar deflate = function(c, record, s) {\n var rval = false;\n\n try {\n var bytes = c.deflate(record.fragment.getBytes());\n record.fragment = forge.util.createBuffer(bytes);\n record.length = bytes.length;\n rval = true;\n } catch(ex) {\n // deflate error, fail out\n }\n\n return rval;\n};\n\n/**\n * Decompresses the TLSCompressed record into a TLSPlaintext record using the\n * deflate algorithm.\n *\n * @param c the TLS connection.\n * @param record the TLSCompressed record to decompress.\n * @param s the ConnectionState to use.\n *\n * @return true on success, false on failure.\n */\nvar inflate = function(c, record, s) {\n var rval = false;\n\n try {\n var bytes = c.inflate(record.fragment.getBytes());\n record.fragment = forge.util.createBuffer(bytes);\n record.length = bytes.length;\n rval = true;\n } catch(ex) {\n // inflate error, fail out\n }\n\n return rval;\n};\n\n/**\n * Reads a TLS variable-length vector from a byte buffer.\n *\n * Variable-length vectors are defined by specifying a subrange of legal\n * lengths, inclusively, using the notation . When these are\n * encoded, the actual length precedes the vector's contents in the byte\n * stream. The length will be in the form of a number consuming as many bytes\n * as required to hold the vector's specified maximum (ceiling) length. A\n * variable-length vector with an actual length field of zero is referred to\n * as an empty vector.\n *\n * @param b the byte buffer.\n * @param lenBytes the number of bytes required to store the length.\n *\n * @return the resulting byte buffer.\n */\nvar readVector = function(b, lenBytes) {\n var len = 0;\n switch(lenBytes) {\n case 1:\n len = b.getByte();\n break;\n case 2:\n len = b.getInt16();\n break;\n case 3:\n len = b.getInt24();\n break;\n case 4:\n len = b.getInt32();\n break;\n }\n\n // read vector bytes into a new buffer\n return forge.util.createBuffer(b.getBytes(len));\n};\n\n/**\n * Writes a TLS variable-length vector to a byte buffer.\n *\n * @param b the byte buffer.\n * @param lenBytes the number of bytes required to store the length.\n * @param v the byte buffer vector.\n */\nvar writeVector = function(b, lenBytes, v) {\n // encode length at the start of the vector, where the number of bytes for\n // the length is the maximum number of bytes it would take to encode the\n // vector's ceiling\n b.putInt(v.length(), lenBytes << 3);\n b.putBuffer(v);\n};\n\n/**\n * The tls implementation.\n */\nvar tls = {};\n\n/**\n * Version: TLS 1.2 = 3.3, TLS 1.1 = 3.2, TLS 1.0 = 3.1. Both TLS 1.1 and\n * TLS 1.2 were still too new (ie: openSSL didn't implement them) at the time\n * of this implementation so TLS 1.0 was implemented instead.\n */\ntls.Versions = {\n TLS_1_0: {major: 3, minor: 1},\n TLS_1_1: {major: 3, minor: 2},\n TLS_1_2: {major: 3, minor: 3}\n};\ntls.SupportedVersions = [\n tls.Versions.TLS_1_1,\n tls.Versions.TLS_1_0\n];\ntls.Version = tls.SupportedVersions[0];\n\n/**\n * Maximum fragment size. True maximum is 16384, but we fragment before that\n * to allow for unusual small increases during compression.\n */\ntls.MaxFragment = 16384 - 1024;\n\n/**\n * Whether this entity is considered the \"client\" or \"server\".\n * enum { server, client } ConnectionEnd;\n */\ntls.ConnectionEnd = {\n server: 0,\n client: 1\n};\n\n/**\n * Pseudo-random function algorithm used to generate keys from the master\n * secret.\n * enum { tls_prf_sha256 } PRFAlgorithm;\n */\ntls.PRFAlgorithm = {\n tls_prf_sha256: 0\n};\n\n/**\n * Bulk encryption algorithms.\n * enum { null, rc4, des3, aes } BulkCipherAlgorithm;\n */\ntls.BulkCipherAlgorithm = {\n none: null,\n rc4: 0,\n des3: 1,\n aes: 2\n};\n\n/**\n * Cipher types.\n * enum { stream, block, aead } CipherType;\n */\ntls.CipherType = {\n stream: 0,\n block: 1,\n aead: 2\n};\n\n/**\n * MAC (Message Authentication Code) algorithms.\n * enum { null, hmac_md5, hmac_sha1, hmac_sha256,\n * hmac_sha384, hmac_sha512} MACAlgorithm;\n */\ntls.MACAlgorithm = {\n none: null,\n hmac_md5: 0,\n hmac_sha1: 1,\n hmac_sha256: 2,\n hmac_sha384: 3,\n hmac_sha512: 4\n};\n\n/**\n * Compression algorithms.\n * enum { null(0), deflate(1), (255) } CompressionMethod;\n */\ntls.CompressionMethod = {\n none: 0,\n deflate: 1\n};\n\n/**\n * TLS record content types.\n * enum {\n * change_cipher_spec(20), alert(21), handshake(22),\n * application_data(23), (255)\n * } ContentType;\n */\ntls.ContentType = {\n change_cipher_spec: 20,\n alert: 21,\n handshake: 22,\n application_data: 23,\n heartbeat: 24\n};\n\n/**\n * TLS handshake types.\n * enum {\n * hello_request(0), client_hello(1), server_hello(2),\n * certificate(11), server_key_exchange (12),\n * certificate_request(13), server_hello_done(14),\n * certificate_verify(15), client_key_exchange(16),\n * finished(20), (255)\n * } HandshakeType;\n */\ntls.HandshakeType = {\n hello_request: 0,\n client_hello: 1,\n server_hello: 2,\n certificate: 11,\n server_key_exchange: 12,\n certificate_request: 13,\n server_hello_done: 14,\n certificate_verify: 15,\n client_key_exchange: 16,\n finished: 20\n};\n\n/**\n * TLS Alert Protocol.\n *\n * enum { warning(1), fatal(2), (255) } AlertLevel;\n *\n * enum {\n * close_notify(0),\n * unexpected_message(10),\n * bad_record_mac(20),\n * decryption_failed(21),\n * record_overflow(22),\n * decompression_failure(30),\n * handshake_failure(40),\n * bad_certificate(42),\n * unsupported_certificate(43),\n * certificate_revoked(44),\n * certificate_expired(45),\n * certificate_unknown(46),\n * illegal_parameter(47),\n * unknown_ca(48),\n * access_denied(49),\n * decode_error(50),\n * decrypt_error(51),\n * export_restriction(60),\n * protocol_version(70),\n * insufficient_security(71),\n * internal_error(80),\n * user_canceled(90),\n * no_renegotiation(100),\n * (255)\n * } AlertDescription;\n *\n * struct {\n * AlertLevel level;\n * AlertDescription description;\n * } Alert;\n */\ntls.Alert = {};\ntls.Alert.Level = {\n warning: 1,\n fatal: 2\n};\ntls.Alert.Description = {\n close_notify: 0,\n unexpected_message: 10,\n bad_record_mac: 20,\n decryption_failed: 21,\n record_overflow: 22,\n decompression_failure: 30,\n handshake_failure: 40,\n bad_certificate: 42,\n unsupported_certificate: 43,\n certificate_revoked: 44,\n certificate_expired: 45,\n certificate_unknown: 46,\n illegal_parameter: 47,\n unknown_ca: 48,\n access_denied: 49,\n decode_error: 50,\n decrypt_error: 51,\n export_restriction: 60,\n protocol_version: 70,\n insufficient_security: 71,\n internal_error: 80,\n user_canceled: 90,\n no_renegotiation: 100\n};\n\n/**\n * TLS Heartbeat Message types.\n * enum {\n * heartbeat_request(1),\n * heartbeat_response(2),\n * (255)\n * } HeartbeatMessageType;\n */\ntls.HeartbeatMessageType = {\n heartbeat_request: 1,\n heartbeat_response: 2\n};\n\n/**\n * Supported cipher suites.\n */\ntls.CipherSuites = {};\n\n/**\n * Gets a supported cipher suite from its 2 byte ID.\n *\n * @param twoBytes two bytes in a string.\n *\n * @return the matching supported cipher suite or null.\n */\ntls.getCipherSuite = function(twoBytes) {\n var rval = null;\n for(var key in tls.CipherSuites) {\n var cs = tls.CipherSuites[key];\n if(cs.id[0] === twoBytes.charCodeAt(0) &&\n cs.id[1] === twoBytes.charCodeAt(1)) {\n rval = cs;\n break;\n }\n }\n return rval;\n};\n\n/**\n * Called when an unexpected record is encountered.\n *\n * @param c the connection.\n * @param record the record.\n */\ntls.handleUnexpected = function(c, record) {\n // if connection is client and closed, ignore unexpected messages\n var ignore = (!c.open && c.entity === tls.ConnectionEnd.client);\n if(!ignore) {\n c.error(c, {\n message: 'Unexpected message. Received TLS record out of order.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.unexpected_message\n }\n });\n }\n};\n\n/**\n * Called when a client receives a HelloRequest record.\n *\n * @param c the connection.\n * @param record the record.\n * @param length the length of the handshake message.\n */\ntls.handleHelloRequest = function(c, record, length) {\n // ignore renegotiation requests from the server during a handshake, but\n // if handshaking, send a warning alert that renegotation is denied\n if(!c.handshaking && c.handshakes > 0) {\n // send alert warning\n tls.queue(c, tls.createAlert(c, {\n level: tls.Alert.Level.warning,\n description: tls.Alert.Description.no_renegotiation\n }));\n tls.flush(c);\n }\n\n // continue\n c.process();\n};\n\n/**\n * Parses a hello message from a ClientHello or ServerHello record.\n *\n * @param record the record to parse.\n *\n * @return the parsed message.\n */\ntls.parseHelloMessage = function(c, record, length) {\n var msg = null;\n\n var client = (c.entity === tls.ConnectionEnd.client);\n\n // minimum of 38 bytes in message\n if(length < 38) {\n c.error(c, {\n message: client ?\n 'Invalid ServerHello message. Message too short.' :\n 'Invalid ClientHello message. Message too short.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.illegal_parameter\n }\n });\n } else {\n // use 'remaining' to calculate # of remaining bytes in the message\n var b = record.fragment;\n var remaining = b.length();\n msg = {\n version: {\n major: b.getByte(),\n minor: b.getByte()\n },\n random: forge.util.createBuffer(b.getBytes(32)),\n session_id: readVector(b, 1),\n extensions: []\n };\n if(client) {\n msg.cipher_suite = b.getBytes(2);\n msg.compression_method = b.getByte();\n } else {\n msg.cipher_suites = readVector(b, 2);\n msg.compression_methods = readVector(b, 1);\n }\n\n // read extensions if there are any bytes left in the message\n remaining = length - (remaining - b.length());\n if(remaining > 0) {\n // parse extensions\n var exts = readVector(b, 2);\n while(exts.length() > 0) {\n msg.extensions.push({\n type: [exts.getByte(), exts.getByte()],\n data: readVector(exts, 2)\n });\n }\n\n // TODO: make extension support modular\n if(!client) {\n for(var i = 0; i < msg.extensions.length; ++i) {\n var ext = msg.extensions[i];\n\n // support SNI extension\n if(ext.type[0] === 0x00 && ext.type[1] === 0x00) {\n // get server name list\n var snl = readVector(ext.data, 2);\n while(snl.length() > 0) {\n // read server name type\n var snType = snl.getByte();\n\n // only HostName type (0x00) is known, break out if\n // another type is detected\n if(snType !== 0x00) {\n break;\n }\n\n // add host name to server name list\n c.session.extensions.server_name.serverNameList.push(\n readVector(snl, 2).getBytes());\n }\n }\n }\n }\n }\n\n // version already set, do not allow version change\n if(c.session.version) {\n if(msg.version.major !== c.session.version.major ||\n msg.version.minor !== c.session.version.minor) {\n return c.error(c, {\n message: 'TLS version change is disallowed during renegotiation.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.protocol_version\n }\n });\n }\n }\n\n // get the chosen (ServerHello) cipher suite\n if(client) {\n // FIXME: should be checking configured acceptable cipher suites\n c.session.cipherSuite = tls.getCipherSuite(msg.cipher_suite);\n } else {\n // get a supported preferred (ClientHello) cipher suite\n // choose the first supported cipher suite\n var tmp = forge.util.createBuffer(msg.cipher_suites.bytes());\n while(tmp.length() > 0) {\n // FIXME: should be checking configured acceptable suites\n // cipher suites take up 2 bytes\n c.session.cipherSuite = tls.getCipherSuite(tmp.getBytes(2));\n if(c.session.cipherSuite !== null) {\n break;\n }\n }\n }\n\n // cipher suite not supported\n if(c.session.cipherSuite === null) {\n return c.error(c, {\n message: 'No cipher suites in common.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.handshake_failure\n },\n cipherSuite: forge.util.bytesToHex(msg.cipher_suite)\n });\n }\n\n // TODO: handle compression methods\n if(client) {\n c.session.compressionMethod = msg.compression_method;\n } else {\n // no compression\n c.session.compressionMethod = tls.CompressionMethod.none;\n }\n }\n\n return msg;\n};\n\n/**\n * Creates security parameters for the given connection based on the given\n * hello message.\n *\n * @param c the TLS connection.\n * @param msg the hello message.\n */\ntls.createSecurityParameters = function(c, msg) {\n /* Note: security params are from TLS 1.2, some values like prf_algorithm\n are ignored for TLS 1.0/1.1 and the builtin as specified in the spec is\n used. */\n\n // TODO: handle other options from server when more supported\n\n // get client and server randoms\n var client = (c.entity === tls.ConnectionEnd.client);\n var msgRandom = msg.random.bytes();\n var cRandom = client ? c.session.sp.client_random : msgRandom;\n var sRandom = client ? msgRandom : tls.createRandom().getBytes();\n\n // create new security parameters\n c.session.sp = {\n entity: c.entity,\n prf_algorithm: tls.PRFAlgorithm.tls_prf_sha256,\n bulk_cipher_algorithm: null,\n cipher_type: null,\n enc_key_length: null,\n block_length: null,\n fixed_iv_length: null,\n record_iv_length: null,\n mac_algorithm: null,\n mac_length: null,\n mac_key_length: null,\n compression_algorithm: c.session.compressionMethod,\n pre_master_secret: null,\n master_secret: null,\n client_random: cRandom,\n server_random: sRandom\n };\n};\n\n/**\n * Called when a client receives a ServerHello record.\n *\n * When a ServerHello message will be sent:\n * The server will send this message in response to a client hello message\n * when it was able to find an acceptable set of algorithms. If it cannot\n * find such a match, it will respond with a handshake failure alert.\n *\n * uint24 length;\n * struct {\n * ProtocolVersion server_version;\n * Random random;\n * SessionID session_id;\n * CipherSuite cipher_suite;\n * CompressionMethod compression_method;\n * select(extensions_present) {\n * case false:\n * struct {};\n * case true:\n * Extension extensions<0..2^16-1>;\n * };\n * } ServerHello;\n *\n * @param c the connection.\n * @param record the record.\n * @param length the length of the handshake message.\n */\ntls.handleServerHello = function(c, record, length) {\n var msg = tls.parseHelloMessage(c, record, length);\n if(c.fail) {\n return;\n }\n\n // ensure server version is compatible\n if(msg.version.minor <= c.version.minor) {\n c.version.minor = msg.version.minor;\n } else {\n return c.error(c, {\n message: 'Incompatible TLS version.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.protocol_version\n }\n });\n }\n\n // indicate session version has been set\n c.session.version = c.version;\n\n // get the session ID from the message\n var sessionId = msg.session_id.bytes();\n\n // if the session ID is not blank and matches the cached one, resume\n // the session\n if(sessionId.length > 0 && sessionId === c.session.id) {\n // resuming session, expect a ChangeCipherSpec next\n c.expect = SCC;\n c.session.resuming = true;\n\n // get new server random\n c.session.sp.server_random = msg.random.bytes();\n } else {\n // not resuming, expect a server Certificate message next\n c.expect = SCE;\n c.session.resuming = false;\n\n // create new security parameters\n tls.createSecurityParameters(c, msg);\n }\n\n // set new session ID\n c.session.id = sessionId;\n\n // continue\n c.process();\n};\n\n/**\n * Called when a server receives a ClientHello record.\n *\n * When a ClientHello message will be sent:\n * When a client first connects to a server it is required to send the\n * client hello as its first message. The client can also send a client\n * hello in response to a hello request or on its own initiative in order\n * to renegotiate the security parameters in an existing connection.\n *\n * @param c the connection.\n * @param record the record.\n * @param length the length of the handshake message.\n */\ntls.handleClientHello = function(c, record, length) {\n var msg = tls.parseHelloMessage(c, record, length);\n if(c.fail) {\n return;\n }\n\n // get the session ID from the message\n var sessionId = msg.session_id.bytes();\n\n // see if the given session ID is in the cache\n var session = null;\n if(c.sessionCache) {\n session = c.sessionCache.getSession(sessionId);\n if(session === null) {\n // session ID not found\n sessionId = '';\n } else if(session.version.major !== msg.version.major ||\n session.version.minor > msg.version.minor) {\n // if session version is incompatible with client version, do not resume\n session = null;\n sessionId = '';\n }\n }\n\n // no session found to resume, generate a new session ID\n if(sessionId.length === 0) {\n sessionId = forge.random.getBytes(32);\n }\n\n // update session\n c.session.id = sessionId;\n c.session.clientHelloVersion = msg.version;\n c.session.sp = {};\n if(session) {\n // use version and security parameters from resumed session\n c.version = c.session.version = session.version;\n c.session.sp = session.sp;\n } else {\n // use highest compatible minor version\n var version;\n for(var i = 1; i < tls.SupportedVersions.length; ++i) {\n version = tls.SupportedVersions[i];\n if(version.minor <= msg.version.minor) {\n break;\n }\n }\n c.version = {major: version.major, minor: version.minor};\n c.session.version = c.version;\n }\n\n // if a session is set, resume it\n if(session !== null) {\n // resuming session, expect a ChangeCipherSpec next\n c.expect = CCC;\n c.session.resuming = true;\n\n // get new client random\n c.session.sp.client_random = msg.random.bytes();\n } else {\n // not resuming, expect a Certificate or ClientKeyExchange\n c.expect = (c.verifyClient !== false) ? CCE : CKE;\n c.session.resuming = false;\n\n // create new security parameters\n tls.createSecurityParameters(c, msg);\n }\n\n // connection now open\n c.open = true;\n\n // queue server hello\n tls.queue(c, tls.createRecord(c, {\n type: tls.ContentType.handshake,\n data: tls.createServerHello(c)\n }));\n\n if(c.session.resuming) {\n // queue change cipher spec message\n tls.queue(c, tls.createRecord(c, {\n type: tls.ContentType.change_cipher_spec,\n data: tls.createChangeCipherSpec()\n }));\n\n // create pending state\n c.state.pending = tls.createConnectionState(c);\n\n // change current write state to pending write state\n c.state.current.write = c.state.pending.write;\n\n // queue finished\n tls.queue(c, tls.createRecord(c, {\n type: tls.ContentType.handshake,\n data: tls.createFinished(c)\n }));\n } else {\n // queue server certificate\n tls.queue(c, tls.createRecord(c, {\n type: tls.ContentType.handshake,\n data: tls.createCertificate(c)\n }));\n\n if(!c.fail) {\n // queue server key exchange\n tls.queue(c, tls.createRecord(c, {\n type: tls.ContentType.handshake,\n data: tls.createServerKeyExchange(c)\n }));\n\n // request client certificate if set\n if(c.verifyClient !== false) {\n // queue certificate request\n tls.queue(c, tls.createRecord(c, {\n type: tls.ContentType.handshake,\n data: tls.createCertificateRequest(c)\n }));\n }\n\n // queue server hello done\n tls.queue(c, tls.createRecord(c, {\n type: tls.ContentType.handshake,\n data: tls.createServerHelloDone(c)\n }));\n }\n }\n\n // send records\n tls.flush(c);\n\n // continue\n c.process();\n};\n\n/**\n * Called when a client receives a Certificate record.\n *\n * When this message will be sent:\n * The server must send a certificate whenever the agreed-upon key exchange\n * method is not an anonymous one. This message will always immediately\n * follow the server hello message.\n *\n * Meaning of this message:\n * The certificate type must be appropriate for the selected cipher suite's\n * key exchange algorithm, and is generally an X.509v3 certificate. It must\n * contain a key which matches the key exchange method, as follows. Unless\n * otherwise specified, the signing algorithm for the certificate must be\n * the same as the algorithm for the certificate key. Unless otherwise\n * specified, the public key may be of any length.\n *\n * opaque ASN.1Cert<1..2^24-1>;\n * struct {\n * ASN.1Cert certificate_list<1..2^24-1>;\n * } Certificate;\n *\n * @param c the connection.\n * @param record the record.\n * @param length the length of the handshake message.\n */\ntls.handleCertificate = function(c, record, length) {\n // minimum of 3 bytes in message\n if(length < 3) {\n return c.error(c, {\n message: 'Invalid Certificate message. Message too short.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.illegal_parameter\n }\n });\n }\n\n var b = record.fragment;\n var msg = {\n certificate_list: readVector(b, 3)\n };\n\n /* The sender's certificate will be first in the list (chain), each\n subsequent one that follows will certify the previous one, but root\n certificates (self-signed) that specify the certificate authority may\n be omitted under the assumption that clients must already possess it. */\n var cert, asn1;\n var certs = [];\n try {\n while(msg.certificate_list.length() > 0) {\n // each entry in msg.certificate_list is a vector with 3 len bytes\n cert = readVector(msg.certificate_list, 3);\n asn1 = forge.asn1.fromDer(cert);\n cert = forge.pki.certificateFromAsn1(asn1, true);\n certs.push(cert);\n }\n } catch(ex) {\n return c.error(c, {\n message: 'Could not parse certificate list.',\n cause: ex,\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.bad_certificate\n }\n });\n }\n\n // ensure at least 1 certificate was provided if in client-mode\n // or if verifyClient was set to true to require a certificate\n // (as opposed to 'optional')\n var client = (c.entity === tls.ConnectionEnd.client);\n if((client || c.verifyClient === true) && certs.length === 0) {\n // error, no certificate\n c.error(c, {\n message: client ?\n 'No server certificate provided.' :\n 'No client certificate provided.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.illegal_parameter\n }\n });\n } else if(certs.length === 0) {\n // no certs to verify\n // expect a ServerKeyExchange or ClientKeyExchange message next\n c.expect = client ? SKE : CKE;\n } else {\n // save certificate in session\n if(client) {\n c.session.serverCertificate = certs[0];\n } else {\n c.session.clientCertificate = certs[0];\n }\n\n if(tls.verifyCertificateChain(c, certs)) {\n // expect a ServerKeyExchange or ClientKeyExchange message next\n c.expect = client ? SKE : CKE;\n }\n }\n\n // continue\n c.process();\n};\n\n/**\n * Called when a client receives a ServerKeyExchange record.\n *\n * When this message will be sent:\n * This message will be sent immediately after the server certificate\n * message (or the server hello message, if this is an anonymous\n * negotiation).\n *\n * The server key exchange message is sent by the server only when the\n * server certificate message (if sent) does not contain enough data to\n * allow the client to exchange a premaster secret.\n *\n * Meaning of this message:\n * This message conveys cryptographic information to allow the client to\n * communicate the premaster secret: either an RSA public key to encrypt\n * the premaster secret with, or a Diffie-Hellman public key with which the\n * client can complete a key exchange (with the result being the premaster\n * secret.)\n *\n * enum {\n * dhe_dss, dhe_rsa, dh_anon, rsa, dh_dss, dh_rsa\n * } KeyExchangeAlgorithm;\n *\n * struct {\n * opaque dh_p<1..2^16-1>;\n * opaque dh_g<1..2^16-1>;\n * opaque dh_Ys<1..2^16-1>;\n * } ServerDHParams;\n *\n * struct {\n * select(KeyExchangeAlgorithm) {\n * case dh_anon:\n * ServerDHParams params;\n * case dhe_dss:\n * case dhe_rsa:\n * ServerDHParams params;\n * digitally-signed struct {\n * opaque client_random[32];\n * opaque server_random[32];\n * ServerDHParams params;\n * } signed_params;\n * case rsa:\n * case dh_dss:\n * case dh_rsa:\n * struct {};\n * };\n * } ServerKeyExchange;\n *\n * @param c the connection.\n * @param record the record.\n * @param length the length of the handshake message.\n */\ntls.handleServerKeyExchange = function(c, record, length) {\n // this implementation only supports RSA, no Diffie-Hellman support\n // so any length > 0 is invalid\n if(length > 0) {\n return c.error(c, {\n message: 'Invalid key parameters. Only RSA is supported.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.unsupported_certificate\n }\n });\n }\n\n // expect an optional CertificateRequest message next\n c.expect = SCR;\n\n // continue\n c.process();\n};\n\n/**\n * Called when a client receives a ClientKeyExchange record.\n *\n * @param c the connection.\n * @param record the record.\n * @param length the length of the handshake message.\n */\ntls.handleClientKeyExchange = function(c, record, length) {\n // this implementation only supports RSA, no Diffie-Hellman support\n // so any length < 48 is invalid\n if(length < 48) {\n return c.error(c, {\n message: 'Invalid key parameters. Only RSA is supported.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.unsupported_certificate\n }\n });\n }\n\n var b = record.fragment;\n var msg = {\n enc_pre_master_secret: readVector(b, 2).getBytes()\n };\n\n // do rsa decryption\n var privateKey = null;\n if(c.getPrivateKey) {\n try {\n privateKey = c.getPrivateKey(c, c.session.serverCertificate);\n privateKey = forge.pki.privateKeyFromPem(privateKey);\n } catch(ex) {\n c.error(c, {\n message: 'Could not get private key.',\n cause: ex,\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.internal_error\n }\n });\n }\n }\n\n if(privateKey === null) {\n return c.error(c, {\n message: 'No private key set.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.internal_error\n }\n });\n }\n\n try {\n // decrypt 48-byte pre-master secret\n var sp = c.session.sp;\n sp.pre_master_secret = privateKey.decrypt(msg.enc_pre_master_secret);\n\n // ensure client hello version matches first 2 bytes\n var version = c.session.clientHelloVersion;\n if(version.major !== sp.pre_master_secret.charCodeAt(0) ||\n version.minor !== sp.pre_master_secret.charCodeAt(1)) {\n // error, do not send alert (see BLEI attack below)\n throw new Error('TLS version rollback attack detected.');\n }\n } catch(ex) {\n /* Note: Daniel Bleichenbacher [BLEI] can be used to attack a\n TLS server which is using PKCS#1 encoded RSA, so instead of\n failing here, we generate 48 random bytes and use that as\n the pre-master secret. */\n sp.pre_master_secret = forge.random.getBytes(48);\n }\n\n // expect a CertificateVerify message if a Certificate was received that\n // does not have fixed Diffie-Hellman params, otherwise expect\n // ChangeCipherSpec\n c.expect = CCC;\n if(c.session.clientCertificate !== null) {\n // only RSA support, so expect CertificateVerify\n // TODO: support Diffie-Hellman\n c.expect = CCV;\n }\n\n // continue\n c.process();\n};\n\n/**\n * Called when a client receives a CertificateRequest record.\n *\n * When this message will be sent:\n * A non-anonymous server can optionally request a certificate from the\n * client, if appropriate for the selected cipher suite. This message, if\n * sent, will immediately follow the Server Key Exchange message (if it is\n * sent; otherwise, the Server Certificate message).\n *\n * enum {\n * rsa_sign(1), dss_sign(2), rsa_fixed_dh(3), dss_fixed_dh(4),\n * rsa_ephemeral_dh_RESERVED(5), dss_ephemeral_dh_RESERVED(6),\n * fortezza_dms_RESERVED(20), (255)\n * } ClientCertificateType;\n *\n * opaque DistinguishedName<1..2^16-1>;\n *\n * struct {\n * ClientCertificateType certificate_types<1..2^8-1>;\n * SignatureAndHashAlgorithm supported_signature_algorithms<2^16-1>;\n * DistinguishedName certificate_authorities<0..2^16-1>;\n * } CertificateRequest;\n *\n * @param c the connection.\n * @param record the record.\n * @param length the length of the handshake message.\n */\ntls.handleCertificateRequest = function(c, record, length) {\n // minimum of 3 bytes in message\n if(length < 3) {\n return c.error(c, {\n message: 'Invalid CertificateRequest. Message too short.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.illegal_parameter\n }\n });\n }\n\n // TODO: TLS 1.2+ has different format including\n // SignatureAndHashAlgorithm after cert types\n var b = record.fragment;\n var msg = {\n certificate_types: readVector(b, 1),\n certificate_authorities: readVector(b, 2)\n };\n\n // save certificate request in session\n c.session.certificateRequest = msg;\n\n // expect a ServerHelloDone message next\n c.expect = SHD;\n\n // continue\n c.process();\n};\n\n/**\n * Called when a server receives a CertificateVerify record.\n *\n * @param c the connection.\n * @param record the record.\n * @param length the length of the handshake message.\n */\ntls.handleCertificateVerify = function(c, record, length) {\n if(length < 2) {\n return c.error(c, {\n message: 'Invalid CertificateVerify. Message too short.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.illegal_parameter\n }\n });\n }\n\n // rewind to get full bytes for message so it can be manually\n // digested below (special case for CertificateVerify messages because\n // they must be digested *after* handling as opposed to all others)\n var b = record.fragment;\n b.read -= 4;\n var msgBytes = b.bytes();\n b.read += 4;\n\n var msg = {\n signature: readVector(b, 2).getBytes()\n };\n\n // TODO: add support for DSA\n\n // generate data to verify\n var verify = forge.util.createBuffer();\n verify.putBuffer(c.session.md5.digest());\n verify.putBuffer(c.session.sha1.digest());\n verify = verify.getBytes();\n\n try {\n var cert = c.session.clientCertificate;\n /*b = forge.pki.rsa.decrypt(\n msg.signature, cert.publicKey, true, verify.length);\n if(b !== verify) {*/\n if(!cert.publicKey.verify(verify, msg.signature, 'NONE')) {\n throw new Error('CertificateVerify signature does not match.');\n }\n\n // digest message now that it has been handled\n c.session.md5.update(msgBytes);\n c.session.sha1.update(msgBytes);\n } catch(ex) {\n return c.error(c, {\n message: 'Bad signature in CertificateVerify.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.handshake_failure\n }\n });\n }\n\n // expect ChangeCipherSpec\n c.expect = CCC;\n\n // continue\n c.process();\n};\n\n/**\n * Called when a client receives a ServerHelloDone record.\n *\n * When this message will be sent:\n * The server hello done message is sent by the server to indicate the end\n * of the server hello and associated messages. After sending this message\n * the server will wait for a client response.\n *\n * Meaning of this message:\n * This message means that the server is done sending messages to support\n * the key exchange, and the client can proceed with its phase of the key\n * exchange.\n *\n * Upon receipt of the server hello done message the client should verify\n * that the server provided a valid certificate if required and check that\n * the server hello parameters are acceptable.\n *\n * struct {} ServerHelloDone;\n *\n * @param c the connection.\n * @param record the record.\n * @param length the length of the handshake message.\n */\ntls.handleServerHelloDone = function(c, record, length) {\n // len must be 0 bytes\n if(length > 0) {\n return c.error(c, {\n message: 'Invalid ServerHelloDone message. Invalid length.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.record_overflow\n }\n });\n }\n\n if(c.serverCertificate === null) {\n // no server certificate was provided\n var error = {\n message: 'No server certificate provided. Not enough security.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.insufficient_security\n }\n };\n\n // call application callback\n var depth = 0;\n var ret = c.verify(c, error.alert.description, depth, []);\n if(ret !== true) {\n // check for custom alert info\n if(ret || ret === 0) {\n // set custom message and alert description\n if(typeof ret === 'object' && !forge.util.isArray(ret)) {\n if(ret.message) {\n error.message = ret.message;\n }\n if(ret.alert) {\n error.alert.description = ret.alert;\n }\n } else if(typeof ret === 'number') {\n // set custom alert description\n error.alert.description = ret;\n }\n }\n\n // send error\n return c.error(c, error);\n }\n }\n\n // create client certificate message if requested\n if(c.session.certificateRequest !== null) {\n record = tls.createRecord(c, {\n type: tls.ContentType.handshake,\n data: tls.createCertificate(c)\n });\n tls.queue(c, record);\n }\n\n // create client key exchange message\n record = tls.createRecord(c, {\n type: tls.ContentType.handshake,\n data: tls.createClientKeyExchange(c)\n });\n tls.queue(c, record);\n\n // expect no messages until the following callback has been called\n c.expect = SER;\n\n // create callback to handle client signature (for client-certs)\n var callback = function(c, signature) {\n if(c.session.certificateRequest !== null &&\n c.session.clientCertificate !== null) {\n // create certificate verify message\n tls.queue(c, tls.createRecord(c, {\n type: tls.ContentType.handshake,\n data: tls.createCertificateVerify(c, signature)\n }));\n }\n\n // create change cipher spec message\n tls.queue(c, tls.createRecord(c, {\n type: tls.ContentType.change_cipher_spec,\n data: tls.createChangeCipherSpec()\n }));\n\n // create pending state\n c.state.pending = tls.createConnectionState(c);\n\n // change current write state to pending write state\n c.state.current.write = c.state.pending.write;\n\n // create finished message\n tls.queue(c, tls.createRecord(c, {\n type: tls.ContentType.handshake,\n data: tls.createFinished(c)\n }));\n\n // expect a server ChangeCipherSpec message next\n c.expect = SCC;\n\n // send records\n tls.flush(c);\n\n // continue\n c.process();\n };\n\n // if there is no certificate request or no client certificate, do\n // callback immediately\n if(c.session.certificateRequest === null ||\n c.session.clientCertificate === null) {\n return callback(c, null);\n }\n\n // otherwise get the client signature\n tls.getClientSignature(c, callback);\n};\n\n/**\n * Called when a ChangeCipherSpec record is received.\n *\n * @param c the connection.\n * @param record the record.\n */\ntls.handleChangeCipherSpec = function(c, record) {\n if(record.fragment.getByte() !== 0x01) {\n return c.error(c, {\n message: 'Invalid ChangeCipherSpec message received.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.illegal_parameter\n }\n });\n }\n\n // create pending state if:\n // 1. Resuming session in client mode OR\n // 2. NOT resuming session in server mode\n var client = (c.entity === tls.ConnectionEnd.client);\n if((c.session.resuming && client) || (!c.session.resuming && !client)) {\n c.state.pending = tls.createConnectionState(c);\n }\n\n // change current read state to pending read state\n c.state.current.read = c.state.pending.read;\n\n // clear pending state if:\n // 1. NOT resuming session in client mode OR\n // 2. resuming a session in server mode\n if((!c.session.resuming && client) || (c.session.resuming && !client)) {\n c.state.pending = null;\n }\n\n // expect a Finished record next\n c.expect = client ? SFI : CFI;\n\n // continue\n c.process();\n};\n\n/**\n * Called when a Finished record is received.\n *\n * When this message will be sent:\n * A finished message is always sent immediately after a change\n * cipher spec message to verify that the key exchange and\n * authentication processes were successful. It is essential that a\n * change cipher spec message be received between the other\n * handshake messages and the Finished message.\n *\n * Meaning of this message:\n * The finished message is the first protected with the just-\n * negotiated algorithms, keys, and secrets. Recipients of finished\n * messages must verify that the contents are correct. Once a side\n * has sent its Finished message and received and validated the\n * Finished message from its peer, it may begin to send and receive\n * application data over the connection.\n *\n * struct {\n * opaque verify_data[verify_data_length];\n * } Finished;\n *\n * verify_data\n * PRF(master_secret, finished_label, Hash(handshake_messages))\n * [0..verify_data_length-1];\n *\n * finished_label\n * For Finished messages sent by the client, the string\n * \"client finished\". For Finished messages sent by the server, the\n * string \"server finished\".\n *\n * verify_data_length depends on the cipher suite. If it is not specified\n * by the cipher suite, then it is 12. Versions of TLS < 1.2 always used\n * 12 bytes.\n *\n * @param c the connection.\n * @param record the record.\n * @param length the length of the handshake message.\n */\ntls.handleFinished = function(c, record, length) {\n // rewind to get full bytes for message so it can be manually\n // digested below (special case for Finished messages because they\n // must be digested *after* handling as opposed to all others)\n var b = record.fragment;\n b.read -= 4;\n var msgBytes = b.bytes();\n b.read += 4;\n\n // message contains only verify_data\n var vd = record.fragment.getBytes();\n\n // ensure verify data is correct\n b = forge.util.createBuffer();\n b.putBuffer(c.session.md5.digest());\n b.putBuffer(c.session.sha1.digest());\n\n // set label based on entity type\n var client = (c.entity === tls.ConnectionEnd.client);\n var label = client ? 'server finished' : 'client finished';\n\n // TODO: determine prf function and verify length for TLS 1.2\n var sp = c.session.sp;\n var vdl = 12;\n var prf = prf_TLS1;\n b = prf(sp.master_secret, label, b.getBytes(), vdl);\n if(b.getBytes() !== vd) {\n return c.error(c, {\n message: 'Invalid verify_data in Finished message.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.decrypt_error\n }\n });\n }\n\n // digest finished message now that it has been handled\n c.session.md5.update(msgBytes);\n c.session.sha1.update(msgBytes);\n\n // resuming session as client or NOT resuming session as server\n if((c.session.resuming && client) || (!c.session.resuming && !client)) {\n // create change cipher spec message\n tls.queue(c, tls.createRecord(c, {\n type: tls.ContentType.change_cipher_spec,\n data: tls.createChangeCipherSpec()\n }));\n\n // change current write state to pending write state, clear pending\n c.state.current.write = c.state.pending.write;\n c.state.pending = null;\n\n // create finished message\n tls.queue(c, tls.createRecord(c, {\n type: tls.ContentType.handshake,\n data: tls.createFinished(c)\n }));\n }\n\n // expect application data next\n c.expect = client ? SAD : CAD;\n\n // handshake complete\n c.handshaking = false;\n ++c.handshakes;\n\n // save access to peer certificate\n c.peerCertificate = client ?\n c.session.serverCertificate : c.session.clientCertificate;\n\n // send records\n tls.flush(c);\n\n // now connected\n c.isConnected = true;\n c.connected(c);\n\n // continue\n c.process();\n};\n\n/**\n * Called when an Alert record is received.\n *\n * @param c the connection.\n * @param record the record.\n */\ntls.handleAlert = function(c, record) {\n // read alert\n var b = record.fragment;\n var alert = {\n level: b.getByte(),\n description: b.getByte()\n };\n\n // TODO: consider using a table?\n // get appropriate message\n var msg;\n switch(alert.description) {\n case tls.Alert.Description.close_notify:\n msg = 'Connection closed.';\n break;\n case tls.Alert.Description.unexpected_message:\n msg = 'Unexpected message.';\n break;\n case tls.Alert.Description.bad_record_mac:\n msg = 'Bad record MAC.';\n break;\n case tls.Alert.Description.decryption_failed:\n msg = 'Decryption failed.';\n break;\n case tls.Alert.Description.record_overflow:\n msg = 'Record overflow.';\n break;\n case tls.Alert.Description.decompression_failure:\n msg = 'Decompression failed.';\n break;\n case tls.Alert.Description.handshake_failure:\n msg = 'Handshake failure.';\n break;\n case tls.Alert.Description.bad_certificate:\n msg = 'Bad certificate.';\n break;\n case tls.Alert.Description.unsupported_certificate:\n msg = 'Unsupported certificate.';\n break;\n case tls.Alert.Description.certificate_revoked:\n msg = 'Certificate revoked.';\n break;\n case tls.Alert.Description.certificate_expired:\n msg = 'Certificate expired.';\n break;\n case tls.Alert.Description.certificate_unknown:\n msg = 'Certificate unknown.';\n break;\n case tls.Alert.Description.illegal_parameter:\n msg = 'Illegal parameter.';\n break;\n case tls.Alert.Description.unknown_ca:\n msg = 'Unknown certificate authority.';\n break;\n case tls.Alert.Description.access_denied:\n msg = 'Access denied.';\n break;\n case tls.Alert.Description.decode_error:\n msg = 'Decode error.';\n break;\n case tls.Alert.Description.decrypt_error:\n msg = 'Decrypt error.';\n break;\n case tls.Alert.Description.export_restriction:\n msg = 'Export restriction.';\n break;\n case tls.Alert.Description.protocol_version:\n msg = 'Unsupported protocol version.';\n break;\n case tls.Alert.Description.insufficient_security:\n msg = 'Insufficient security.';\n break;\n case tls.Alert.Description.internal_error:\n msg = 'Internal error.';\n break;\n case tls.Alert.Description.user_canceled:\n msg = 'User canceled.';\n break;\n case tls.Alert.Description.no_renegotiation:\n msg = 'Renegotiation not supported.';\n break;\n default:\n msg = 'Unknown error.';\n break;\n }\n\n // close connection on close_notify, not an error\n if(alert.description === tls.Alert.Description.close_notify) {\n return c.close();\n }\n\n // call error handler\n c.error(c, {\n message: msg,\n send: false,\n // origin is the opposite end\n origin: (c.entity === tls.ConnectionEnd.client) ? 'server' : 'client',\n alert: alert\n });\n\n // continue\n c.process();\n};\n\n/**\n * Called when a Handshake record is received.\n *\n * @param c the connection.\n * @param record the record.\n */\ntls.handleHandshake = function(c, record) {\n // get the handshake type and message length\n var b = record.fragment;\n var type = b.getByte();\n var length = b.getInt24();\n\n // see if the record fragment doesn't yet contain the full message\n if(length > b.length()) {\n // cache the record, clear its fragment, and reset the buffer read\n // pointer before the type and length were read\n c.fragmented = record;\n record.fragment = forge.util.createBuffer();\n b.read -= 4;\n\n // continue\n return c.process();\n }\n\n // full message now available, clear cache, reset read pointer to\n // before type and length\n c.fragmented = null;\n b.read -= 4;\n\n // save the handshake bytes for digestion after handler is found\n // (include type and length of handshake msg)\n var bytes = b.bytes(length + 4);\n\n // restore read pointer\n b.read += 4;\n\n // handle expected message\n if(type in hsTable[c.entity][c.expect]) {\n // initialize server session\n if(c.entity === tls.ConnectionEnd.server && !c.open && !c.fail) {\n c.handshaking = true;\n c.session = {\n version: null,\n extensions: {\n server_name: {\n serverNameList: []\n }\n },\n cipherSuite: null,\n compressionMethod: null,\n serverCertificate: null,\n clientCertificate: null,\n md5: forge.md.md5.create(),\n sha1: forge.md.sha1.create()\n };\n }\n\n /* Update handshake messages digest. Finished and CertificateVerify\n messages are not digested here. They can't be digested as part of\n the verify_data that they contain. These messages are manually\n digested in their handlers. HelloRequest messages are simply never\n included in the handshake message digest according to spec. */\n if(type !== tls.HandshakeType.hello_request &&\n type !== tls.HandshakeType.certificate_verify &&\n type !== tls.HandshakeType.finished) {\n c.session.md5.update(bytes);\n c.session.sha1.update(bytes);\n }\n\n // handle specific handshake type record\n hsTable[c.entity][c.expect][type](c, record, length);\n } else {\n // unexpected record\n tls.handleUnexpected(c, record);\n }\n};\n\n/**\n * Called when an ApplicationData record is received.\n *\n * @param c the connection.\n * @param record the record.\n */\ntls.handleApplicationData = function(c, record) {\n // buffer data, notify that its ready\n c.data.putBuffer(record.fragment);\n c.dataReady(c);\n\n // continue\n c.process();\n};\n\n/**\n * Called when a Heartbeat record is received.\n *\n * @param c the connection.\n * @param record the record.\n */\ntls.handleHeartbeat = function(c, record) {\n // get the heartbeat type and payload\n var b = record.fragment;\n var type = b.getByte();\n var length = b.getInt16();\n var payload = b.getBytes(length);\n\n if(type === tls.HeartbeatMessageType.heartbeat_request) {\n // discard request during handshake or if length is too large\n if(c.handshaking || length > payload.length) {\n // continue\n return c.process();\n }\n // retransmit payload\n tls.queue(c, tls.createRecord(c, {\n type: tls.ContentType.heartbeat,\n data: tls.createHeartbeat(\n tls.HeartbeatMessageType.heartbeat_response, payload)\n }));\n tls.flush(c);\n } else if(type === tls.HeartbeatMessageType.heartbeat_response) {\n // check payload against expected payload, discard heartbeat if no match\n if(payload !== c.expectedHeartbeatPayload) {\n // continue\n return c.process();\n }\n\n // notify that a valid heartbeat was received\n if(c.heartbeatReceived) {\n c.heartbeatReceived(c, forge.util.createBuffer(payload));\n }\n }\n\n // continue\n c.process();\n};\n\n/**\n * The transistional state tables for receiving TLS records. It maps the\n * current TLS engine state and a received record to a function to handle the\n * record and update the state.\n *\n * For instance, if the current state is SHE, then the TLS engine is expecting\n * a ServerHello record. Once a record is received, the handler function is\n * looked up using the state SHE and the record's content type.\n *\n * The resulting function will either be an error handler or a record handler.\n * The function will take whatever action is appropriate and update the state\n * for the next record.\n *\n * The states are all based on possible server record types. Note that the\n * client will never specifically expect to receive a HelloRequest or an alert\n * from the server so there is no state that reflects this. These messages may\n * occur at any time.\n *\n * There are two tables for mapping states because there is a second tier of\n * types for handshake messages. Once a record with a content type of handshake\n * is received, the handshake record handler will look up the handshake type in\n * the secondary map to get its appropriate handler.\n *\n * Valid message orders are as follows:\n *\n * =======================FULL HANDSHAKE======================\n * Client Server\n *\n * ClientHello -------->\n * ServerHello\n * Certificate*\n * ServerKeyExchange*\n * CertificateRequest*\n * <-------- ServerHelloDone\n * Certificate*\n * ClientKeyExchange\n * CertificateVerify*\n * [ChangeCipherSpec]\n * Finished -------->\n * [ChangeCipherSpec]\n * <-------- Finished\n * Application Data <-------> Application Data\n *\n * =====================SESSION RESUMPTION=====================\n * Client Server\n *\n * ClientHello -------->\n * ServerHello\n * [ChangeCipherSpec]\n * <-------- Finished\n * [ChangeCipherSpec]\n * Finished -------->\n * Application Data <-------> Application Data\n */\n// client expect states (indicate which records are expected to be received)\nvar SHE = 0; // rcv server hello\nvar SCE = 1; // rcv server certificate\nvar SKE = 2; // rcv server key exchange\nvar SCR = 3; // rcv certificate request\nvar SHD = 4; // rcv server hello done\nvar SCC = 5; // rcv change cipher spec\nvar SFI = 6; // rcv finished\nvar SAD = 7; // rcv application data\nvar SER = 8; // not expecting any messages at this point\n\n// server expect states\nvar CHE = 0; // rcv client hello\nvar CCE = 1; // rcv client certificate\nvar CKE = 2; // rcv client key exchange\nvar CCV = 3; // rcv certificate verify\nvar CCC = 4; // rcv change cipher spec\nvar CFI = 5; // rcv finished\nvar CAD = 6; // rcv application data\nvar CER = 7; // not expecting any messages at this point\n\n// map client current expect state and content type to function\nvar __ = tls.handleUnexpected;\nvar R0 = tls.handleChangeCipherSpec;\nvar R1 = tls.handleAlert;\nvar R2 = tls.handleHandshake;\nvar R3 = tls.handleApplicationData;\nvar R4 = tls.handleHeartbeat;\nvar ctTable = [];\nctTable[tls.ConnectionEnd.client] = [\n// CC,AL,HS,AD,HB\n/*SHE*/[__,R1,R2,__,R4],\n/*SCE*/[__,R1,R2,__,R4],\n/*SKE*/[__,R1,R2,__,R4],\n/*SCR*/[__,R1,R2,__,R4],\n/*SHD*/[__,R1,R2,__,R4],\n/*SCC*/[R0,R1,__,__,R4],\n/*SFI*/[__,R1,R2,__,R4],\n/*SAD*/[__,R1,R2,R3,R4],\n/*SER*/[__,R1,R2,__,R4]\n];\n\n// map server current expect state and content type to function\nctTable[tls.ConnectionEnd.server] = [\n// CC,AL,HS,AD\n/*CHE*/[__,R1,R2,__,R4],\n/*CCE*/[__,R1,R2,__,R4],\n/*CKE*/[__,R1,R2,__,R4],\n/*CCV*/[__,R1,R2,__,R4],\n/*CCC*/[R0,R1,__,__,R4],\n/*CFI*/[__,R1,R2,__,R4],\n/*CAD*/[__,R1,R2,R3,R4],\n/*CER*/[__,R1,R2,__,R4]\n];\n\n// map client current expect state and handshake type to function\nvar H0 = tls.handleHelloRequest;\nvar H1 = tls.handleServerHello;\nvar H2 = tls.handleCertificate;\nvar H3 = tls.handleServerKeyExchange;\nvar H4 = tls.handleCertificateRequest;\nvar H5 = tls.handleServerHelloDone;\nvar H6 = tls.handleFinished;\nvar hsTable = [];\nhsTable[tls.ConnectionEnd.client] = [\n// HR,01,SH,03,04,05,06,07,08,09,10,SC,SK,CR,HD,15,CK,17,18,19,FI\n/*SHE*/[__,__,H1,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__],\n/*SCE*/[H0,__,__,__,__,__,__,__,__,__,__,H2,H3,H4,H5,__,__,__,__,__,__],\n/*SKE*/[H0,__,__,__,__,__,__,__,__,__,__,__,H3,H4,H5,__,__,__,__,__,__],\n/*SCR*/[H0,__,__,__,__,__,__,__,__,__,__,__,__,H4,H5,__,__,__,__,__,__],\n/*SHD*/[H0,__,__,__,__,__,__,__,__,__,__,__,__,__,H5,__,__,__,__,__,__],\n/*SCC*/[H0,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__],\n/*SFI*/[H0,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,H6],\n/*SAD*/[H0,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__],\n/*SER*/[H0,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__]\n];\n\n// map server current expect state and handshake type to function\n// Note: CAD[CH] does not map to FB because renegotation is prohibited\nvar H7 = tls.handleClientHello;\nvar H8 = tls.handleClientKeyExchange;\nvar H9 = tls.handleCertificateVerify;\nhsTable[tls.ConnectionEnd.server] = [\n// 01,CH,02,03,04,05,06,07,08,09,10,CC,12,13,14,CV,CK,17,18,19,FI\n/*CHE*/[__,H7,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__],\n/*CCE*/[__,__,__,__,__,__,__,__,__,__,__,H2,__,__,__,__,__,__,__,__,__],\n/*CKE*/[__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,H8,__,__,__,__],\n/*CCV*/[__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,H9,__,__,__,__,__],\n/*CCC*/[__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__],\n/*CFI*/[__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,H6],\n/*CAD*/[__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__],\n/*CER*/[__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__]\n];\n\n/**\n * Generates the master_secret and keys using the given security parameters.\n *\n * The security parameters for a TLS connection state are defined as such:\n *\n * struct {\n * ConnectionEnd entity;\n * PRFAlgorithm prf_algorithm;\n * BulkCipherAlgorithm bulk_cipher_algorithm;\n * CipherType cipher_type;\n * uint8 enc_key_length;\n * uint8 block_length;\n * uint8 fixed_iv_length;\n * uint8 record_iv_length;\n * MACAlgorithm mac_algorithm;\n * uint8 mac_length;\n * uint8 mac_key_length;\n * CompressionMethod compression_algorithm;\n * opaque master_secret[48];\n * opaque client_random[32];\n * opaque server_random[32];\n * } SecurityParameters;\n *\n * Note that this definition is from TLS 1.2. In TLS 1.0 some of these\n * parameters are ignored because, for instance, the PRFAlgorithm is a\n * builtin-fixed algorithm combining iterations of MD5 and SHA-1 in TLS 1.0.\n *\n * The Record Protocol requires an algorithm to generate keys required by the\n * current connection state.\n *\n * The master secret is expanded into a sequence of secure bytes, which is then\n * split to a client write MAC key, a server write MAC key, a client write\n * encryption key, and a server write encryption key. In TLS 1.0 a client write\n * IV and server write IV are also generated. Each of these is generated from\n * the byte sequence in that order. Unused values are empty. In TLS 1.2, some\n * AEAD ciphers may additionally require a client write IV and a server write\n * IV (see Section 6.2.3.3).\n *\n * When keys, MAC keys, and IVs are generated, the master secret is used as an\n * entropy source.\n *\n * To generate the key material, compute:\n *\n * master_secret = PRF(pre_master_secret, \"master secret\",\n * ClientHello.random + ServerHello.random)\n *\n * key_block = PRF(SecurityParameters.master_secret,\n * \"key expansion\",\n * SecurityParameters.server_random +\n * SecurityParameters.client_random);\n *\n * until enough output has been generated. Then, the key_block is\n * partitioned as follows:\n *\n * client_write_MAC_key[SecurityParameters.mac_key_length]\n * server_write_MAC_key[SecurityParameters.mac_key_length]\n * client_write_key[SecurityParameters.enc_key_length]\n * server_write_key[SecurityParameters.enc_key_length]\n * client_write_IV[SecurityParameters.fixed_iv_length]\n * server_write_IV[SecurityParameters.fixed_iv_length]\n *\n * In TLS 1.2, the client_write_IV and server_write_IV are only generated for\n * implicit nonce techniques as described in Section 3.2.1 of [AEAD]. This\n * implementation uses TLS 1.0 so IVs are generated.\n *\n * Implementation note: The currently defined cipher suite which requires the\n * most material is AES_256_CBC_SHA256. It requires 2 x 32 byte keys and 2 x 32\n * byte MAC keys, for a total 128 bytes of key material. In TLS 1.0 it also\n * requires 2 x 16 byte IVs, so it actually takes 160 bytes of key material.\n *\n * @param c the connection.\n * @param sp the security parameters to use.\n *\n * @return the security keys.\n */\ntls.generateKeys = function(c, sp) {\n // TLS_RSA_WITH_AES_128_CBC_SHA (required to be compliant with TLS 1.2) &\n // TLS_RSA_WITH_AES_256_CBC_SHA are the only cipher suites implemented\n // at present\n\n // TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA is required to be compliant with\n // TLS 1.0 but we don't care right now because AES is better and we have\n // an implementation for it\n\n // TODO: TLS 1.2 implementation\n /*\n // determine the PRF\n var prf;\n switch(sp.prf_algorithm) {\n case tls.PRFAlgorithm.tls_prf_sha256:\n prf = prf_sha256;\n break;\n default:\n // should never happen\n throw new Error('Invalid PRF');\n }\n */\n\n // TLS 1.0/1.1 implementation\n var prf = prf_TLS1;\n\n // concatenate server and client random\n var random = sp.client_random + sp.server_random;\n\n // only create master secret if session is new\n if(!c.session.resuming) {\n // create master secret, clean up pre-master secret\n sp.master_secret = prf(\n sp.pre_master_secret, 'master secret', random, 48).bytes();\n sp.pre_master_secret = null;\n }\n\n // generate the amount of key material needed\n random = sp.server_random + sp.client_random;\n var length = 2 * sp.mac_key_length + 2 * sp.enc_key_length;\n\n // include IV for TLS/1.0\n var tls10 = (c.version.major === tls.Versions.TLS_1_0.major &&\n c.version.minor === tls.Versions.TLS_1_0.minor);\n if(tls10) {\n length += 2 * sp.fixed_iv_length;\n }\n var km = prf(sp.master_secret, 'key expansion', random, length);\n\n // split the key material into the MAC and encryption keys\n var rval = {\n client_write_MAC_key: km.getBytes(sp.mac_key_length),\n server_write_MAC_key: km.getBytes(sp.mac_key_length),\n client_write_key: km.getBytes(sp.enc_key_length),\n server_write_key: km.getBytes(sp.enc_key_length)\n };\n\n // include TLS 1.0 IVs\n if(tls10) {\n rval.client_write_IV = km.getBytes(sp.fixed_iv_length);\n rval.server_write_IV = km.getBytes(sp.fixed_iv_length);\n }\n\n return rval;\n};\n\n/**\n * Creates a new initialized TLS connection state. A connection state has\n * a read mode and a write mode.\n *\n * compression state:\n * The current state of the compression algorithm.\n *\n * cipher state:\n * The current state of the encryption algorithm. This will consist of the\n * scheduled key for that connection. For stream ciphers, this will also\n * contain whatever state information is necessary to allow the stream to\n * continue to encrypt or decrypt data.\n *\n * MAC key:\n * The MAC key for the connection.\n *\n * sequence number:\n * Each connection state contains a sequence number, which is maintained\n * separately for read and write states. The sequence number MUST be set to\n * zero whenever a connection state is made the active state. Sequence\n * numbers are of type uint64 and may not exceed 2^64-1. Sequence numbers do\n * not wrap. If a TLS implementation would need to wrap a sequence number,\n * it must renegotiate instead. A sequence number is incremented after each\n * record: specifically, the first record transmitted under a particular\n * connection state MUST use sequence number 0.\n *\n * @param c the connection.\n *\n * @return the new initialized TLS connection state.\n */\ntls.createConnectionState = function(c) {\n var client = (c.entity === tls.ConnectionEnd.client);\n\n var createMode = function() {\n var mode = {\n // two 32-bit numbers, first is most significant\n sequenceNumber: [0, 0],\n macKey: null,\n macLength: 0,\n macFunction: null,\n cipherState: null,\n cipherFunction: function(record) {return true;},\n compressionState: null,\n compressFunction: function(record) {return true;},\n updateSequenceNumber: function() {\n if(mode.sequenceNumber[1] === 0xFFFFFFFF) {\n mode.sequenceNumber[1] = 0;\n ++mode.sequenceNumber[0];\n } else {\n ++mode.sequenceNumber[1];\n }\n }\n };\n return mode;\n };\n var state = {\n read: createMode(),\n write: createMode()\n };\n\n // update function in read mode will decrypt then decompress a record\n state.read.update = function(c, record) {\n if(!state.read.cipherFunction(record, state.read)) {\n c.error(c, {\n message: 'Could not decrypt record or bad MAC.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n // doesn't matter if decryption failed or MAC was\n // invalid, return the same error so as not to reveal\n // which one occurred\n description: tls.Alert.Description.bad_record_mac\n }\n });\n } else if(!state.read.compressFunction(c, record, state.read)) {\n c.error(c, {\n message: 'Could not decompress record.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.decompression_failure\n }\n });\n }\n return !c.fail;\n };\n\n // update function in write mode will compress then encrypt a record\n state.write.update = function(c, record) {\n if(!state.write.compressFunction(c, record, state.write)) {\n // error, but do not send alert since it would require\n // compression as well\n c.error(c, {\n message: 'Could not compress record.',\n send: false,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.internal_error\n }\n });\n } else if(!state.write.cipherFunction(record, state.write)) {\n // error, but do not send alert since it would require\n // encryption as well\n c.error(c, {\n message: 'Could not encrypt record.',\n send: false,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.internal_error\n }\n });\n }\n return !c.fail;\n };\n\n // handle security parameters\n if(c.session) {\n var sp = c.session.sp;\n c.session.cipherSuite.initSecurityParameters(sp);\n\n // generate keys\n sp.keys = tls.generateKeys(c, sp);\n state.read.macKey = client ?\n sp.keys.server_write_MAC_key : sp.keys.client_write_MAC_key;\n state.write.macKey = client ?\n sp.keys.client_write_MAC_key : sp.keys.server_write_MAC_key;\n\n // cipher suite setup\n c.session.cipherSuite.initConnectionState(state, c, sp);\n\n // compression setup\n switch(sp.compression_algorithm) {\n case tls.CompressionMethod.none:\n break;\n case tls.CompressionMethod.deflate:\n state.read.compressFunction = inflate;\n state.write.compressFunction = deflate;\n break;\n default:\n throw new Error('Unsupported compression algorithm.');\n }\n }\n\n return state;\n};\n\n/**\n * Creates a Random structure.\n *\n * struct {\n * uint32 gmt_unix_time;\n * opaque random_bytes[28];\n * } Random;\n *\n * gmt_unix_time:\n * The current time and date in standard UNIX 32-bit format (seconds since\n * the midnight starting Jan 1, 1970, UTC, ignoring leap seconds) according\n * to the sender's internal clock. Clocks are not required to be set\n * correctly by the basic TLS protocol; higher-level or application\n * protocols may define additional requirements. Note that, for historical\n * reasons, the data element is named using GMT, the predecessor of the\n * current worldwide time base, UTC.\n * random_bytes:\n * 28 bytes generated by a secure random number generator.\n *\n * @return the Random structure as a byte array.\n */\ntls.createRandom = function() {\n // get UTC milliseconds\n var d = new Date();\n var utc = +d + d.getTimezoneOffset() * 60000;\n var rval = forge.util.createBuffer();\n rval.putInt32(utc);\n rval.putBytes(forge.random.getBytes(28));\n return rval;\n};\n\n/**\n * Creates a TLS record with the given type and data.\n *\n * @param c the connection.\n * @param options:\n * type: the record type.\n * data: the plain text data in a byte buffer.\n *\n * @return the created record.\n */\ntls.createRecord = function(c, options) {\n if(!options.data) {\n return null;\n }\n var record = {\n type: options.type,\n version: {\n major: c.version.major,\n minor: c.version.minor\n },\n length: options.data.length(),\n fragment: options.data\n };\n return record;\n};\n\n/**\n * Creates a TLS alert record.\n *\n * @param c the connection.\n * @param alert:\n * level: the TLS alert level.\n * description: the TLS alert description.\n *\n * @return the created alert record.\n */\ntls.createAlert = function(c, alert) {\n var b = forge.util.createBuffer();\n b.putByte(alert.level);\n b.putByte(alert.description);\n return tls.createRecord(c, {\n type: tls.ContentType.alert,\n data: b\n });\n};\n\n/* The structure of a TLS handshake message.\n *\n * struct {\n * HandshakeType msg_type; // handshake type\n * uint24 length; // bytes in message\n * select(HandshakeType) {\n * case hello_request: HelloRequest;\n * case client_hello: ClientHello;\n * case server_hello: ServerHello;\n * case certificate: Certificate;\n * case server_key_exchange: ServerKeyExchange;\n * case certificate_request: CertificateRequest;\n * case server_hello_done: ServerHelloDone;\n * case certificate_verify: CertificateVerify;\n * case client_key_exchange: ClientKeyExchange;\n * case finished: Finished;\n * } body;\n * } Handshake;\n */\n\n/**\n * Creates a ClientHello message.\n *\n * opaque SessionID<0..32>;\n * enum { null(0), deflate(1), (255) } CompressionMethod;\n * uint8 CipherSuite[2];\n *\n * struct {\n * ProtocolVersion client_version;\n * Random random;\n * SessionID session_id;\n * CipherSuite cipher_suites<2..2^16-2>;\n * CompressionMethod compression_methods<1..2^8-1>;\n * select(extensions_present) {\n * case false:\n * struct {};\n * case true:\n * Extension extensions<0..2^16-1>;\n * };\n * } ClientHello;\n *\n * The extension format for extended client hellos and server hellos is:\n *\n * struct {\n * ExtensionType extension_type;\n * opaque extension_data<0..2^16-1>;\n * } Extension;\n *\n * Here:\n *\n * - \"extension_type\" identifies the particular extension type.\n * - \"extension_data\" contains information specific to the particular\n * extension type.\n *\n * The extension types defined in this document are:\n *\n * enum {\n * server_name(0), max_fragment_length(1),\n * client_certificate_url(2), trusted_ca_keys(3),\n * truncated_hmac(4), status_request(5), (65535)\n * } ExtensionType;\n *\n * @param c the connection.\n *\n * @return the ClientHello byte buffer.\n */\ntls.createClientHello = function(c) {\n // save hello version\n c.session.clientHelloVersion = {\n major: c.version.major,\n minor: c.version.minor\n };\n\n // create supported cipher suites\n var cipherSuites = forge.util.createBuffer();\n for(var i = 0; i < c.cipherSuites.length; ++i) {\n var cs = c.cipherSuites[i];\n cipherSuites.putByte(cs.id[0]);\n cipherSuites.putByte(cs.id[1]);\n }\n var cSuites = cipherSuites.length();\n\n // create supported compression methods, null always supported, but\n // also support deflate if connection has inflate and deflate methods\n var compressionMethods = forge.util.createBuffer();\n compressionMethods.putByte(tls.CompressionMethod.none);\n // FIXME: deflate support disabled until issues with raw deflate data\n // without zlib headers are resolved\n /*\n if(c.inflate !== null && c.deflate !== null) {\n compressionMethods.putByte(tls.CompressionMethod.deflate);\n }\n */\n var cMethods = compressionMethods.length();\n\n // create TLS SNI (server name indication) extension if virtual host\n // has been specified, see RFC 3546\n var extensions = forge.util.createBuffer();\n if(c.virtualHost) {\n // create extension struct\n var ext = forge.util.createBuffer();\n ext.putByte(0x00); // type server_name (ExtensionType is 2 bytes)\n ext.putByte(0x00);\n\n /* In order to provide the server name, clients MAY include an\n * extension of type \"server_name\" in the (extended) client hello.\n * The \"extension_data\" field of this extension SHALL contain\n * \"ServerNameList\" where:\n *\n * struct {\n * NameType name_type;\n * select(name_type) {\n * case host_name: HostName;\n * } name;\n * } ServerName;\n *\n * enum {\n * host_name(0), (255)\n * } NameType;\n *\n * opaque HostName<1..2^16-1>;\n *\n * struct {\n * ServerName server_name_list<1..2^16-1>\n * } ServerNameList;\n */\n var serverName = forge.util.createBuffer();\n serverName.putByte(0x00); // type host_name\n writeVector(serverName, 2, forge.util.createBuffer(c.virtualHost));\n\n // ServerNameList is in extension_data\n var snList = forge.util.createBuffer();\n writeVector(snList, 2, serverName);\n writeVector(ext, 2, snList);\n extensions.putBuffer(ext);\n }\n var extLength = extensions.length();\n if(extLength > 0) {\n // add extension vector length\n extLength += 2;\n }\n\n // determine length of the handshake message\n // cipher suites and compression methods size will need to be\n // updated if more get added to the list\n var sessionId = c.session.id;\n var length =\n sessionId.length + 1 + // session ID vector\n 2 + // version (major + minor)\n 4 + 28 + // random time and random bytes\n 2 + cSuites + // cipher suites vector\n 1 + cMethods + // compression methods vector\n extLength; // extensions vector\n\n // build record fragment\n var rval = forge.util.createBuffer();\n rval.putByte(tls.HandshakeType.client_hello);\n rval.putInt24(length); // handshake length\n rval.putByte(c.version.major); // major version\n rval.putByte(c.version.minor); // minor version\n rval.putBytes(c.session.sp.client_random); // random time + bytes\n writeVector(rval, 1, forge.util.createBuffer(sessionId));\n writeVector(rval, 2, cipherSuites);\n writeVector(rval, 1, compressionMethods);\n if(extLength > 0) {\n writeVector(rval, 2, extensions);\n }\n return rval;\n};\n\n/**\n * Creates a ServerHello message.\n *\n * @param c the connection.\n *\n * @return the ServerHello byte buffer.\n */\ntls.createServerHello = function(c) {\n // determine length of the handshake message\n var sessionId = c.session.id;\n var length =\n sessionId.length + 1 + // session ID vector\n 2 + // version (major + minor)\n 4 + 28 + // random time and random bytes\n 2 + // chosen cipher suite\n 1; // chosen compression method\n\n // build record fragment\n var rval = forge.util.createBuffer();\n rval.putByte(tls.HandshakeType.server_hello);\n rval.putInt24(length); // handshake length\n rval.putByte(c.version.major); // major version\n rval.putByte(c.version.minor); // minor version\n rval.putBytes(c.session.sp.server_random); // random time + bytes\n writeVector(rval, 1, forge.util.createBuffer(sessionId));\n rval.putByte(c.session.cipherSuite.id[0]);\n rval.putByte(c.session.cipherSuite.id[1]);\n rval.putByte(c.session.compressionMethod);\n return rval;\n};\n\n/**\n * Creates a Certificate message.\n *\n * When this message will be sent:\n * This is the first message the client can send after receiving a server\n * hello done message and the first message the server can send after\n * sending a ServerHello. This client message is only sent if the server\n * requests a certificate. If no suitable certificate is available, the\n * client should send a certificate message containing no certificates. If\n * client authentication is required by the server for the handshake to\n * continue, it may respond with a fatal handshake failure alert.\n *\n * opaque ASN.1Cert<1..2^24-1>;\n *\n * struct {\n * ASN.1Cert certificate_list<0..2^24-1>;\n * } Certificate;\n *\n * @param c the connection.\n *\n * @return the Certificate byte buffer.\n */\ntls.createCertificate = function(c) {\n // TODO: check certificate request to ensure types are supported\n\n // get a certificate (a certificate as a PEM string)\n var client = (c.entity === tls.ConnectionEnd.client);\n var cert = null;\n if(c.getCertificate) {\n var hint;\n if(client) {\n hint = c.session.certificateRequest;\n } else {\n hint = c.session.extensions.server_name.serverNameList;\n }\n cert = c.getCertificate(c, hint);\n }\n\n // buffer to hold certificate list\n var certList = forge.util.createBuffer();\n if(cert !== null) {\n try {\n // normalize cert to a chain of certificates\n if(!forge.util.isArray(cert)) {\n cert = [cert];\n }\n var asn1 = null;\n for(var i = 0; i < cert.length; ++i) {\n var msg = forge.pem.decode(cert[i])[0];\n if(msg.type !== 'CERTIFICATE' &&\n msg.type !== 'X509 CERTIFICATE' &&\n msg.type !== 'TRUSTED CERTIFICATE') {\n var error = new Error('Could not convert certificate from PEM; PEM ' +\n 'header type is not \"CERTIFICATE\", \"X509 CERTIFICATE\", or ' +\n '\"TRUSTED CERTIFICATE\".');\n error.headerType = msg.type;\n throw error;\n }\n if(msg.procType && msg.procType.type === 'ENCRYPTED') {\n throw new Error('Could not convert certificate from PEM; PEM is encrypted.');\n }\n\n var der = forge.util.createBuffer(msg.body);\n if(asn1 === null) {\n asn1 = forge.asn1.fromDer(der.bytes(), false);\n }\n\n // certificate entry is itself a vector with 3 length bytes\n var certBuffer = forge.util.createBuffer();\n writeVector(certBuffer, 3, der);\n\n // add cert vector to cert list vector\n certList.putBuffer(certBuffer);\n }\n\n // save certificate\n cert = forge.pki.certificateFromAsn1(asn1);\n if(client) {\n c.session.clientCertificate = cert;\n } else {\n c.session.serverCertificate = cert;\n }\n } catch(ex) {\n return c.error(c, {\n message: 'Could not send certificate list.',\n cause: ex,\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.bad_certificate\n }\n });\n }\n }\n\n // determine length of the handshake message\n var length = 3 + certList.length(); // cert list vector\n\n // build record fragment\n var rval = forge.util.createBuffer();\n rval.putByte(tls.HandshakeType.certificate);\n rval.putInt24(length);\n writeVector(rval, 3, certList);\n return rval;\n};\n\n/**\n * Creates a ClientKeyExchange message.\n *\n * When this message will be sent:\n * This message is always sent by the client. It will immediately follow the\n * client certificate message, if it is sent. Otherwise it will be the first\n * message sent by the client after it receives the server hello done\n * message.\n *\n * Meaning of this message:\n * With this message, the premaster secret is set, either though direct\n * transmission of the RSA-encrypted secret, or by the transmission of\n * Diffie-Hellman parameters which will allow each side to agree upon the\n * same premaster secret. When the key exchange method is DH_RSA or DH_DSS,\n * client certification has been requested, and the client was able to\n * respond with a certificate which contained a Diffie-Hellman public key\n * whose parameters (group and generator) matched those specified by the\n * server in its certificate, this message will not contain any data.\n *\n * Meaning of this message:\n * If RSA is being used for key agreement and authentication, the client\n * generates a 48-byte premaster secret, encrypts it using the public key\n * from the server's certificate or the temporary RSA key provided in a\n * server key exchange message, and sends the result in an encrypted\n * premaster secret message. This structure is a variant of the client\n * key exchange message, not a message in itself.\n *\n * struct {\n * select(KeyExchangeAlgorithm) {\n * case rsa: EncryptedPreMasterSecret;\n * case diffie_hellman: ClientDiffieHellmanPublic;\n * } exchange_keys;\n * } ClientKeyExchange;\n *\n * struct {\n * ProtocolVersion client_version;\n * opaque random[46];\n * } PreMasterSecret;\n *\n * struct {\n * public-key-encrypted PreMasterSecret pre_master_secret;\n * } EncryptedPreMasterSecret;\n *\n * A public-key-encrypted element is encoded as a vector <0..2^16-1>.\n *\n * @param c the connection.\n *\n * @return the ClientKeyExchange byte buffer.\n */\ntls.createClientKeyExchange = function(c) {\n // create buffer to encrypt\n var b = forge.util.createBuffer();\n\n // add highest client-supported protocol to help server avoid version\n // rollback attacks\n b.putByte(c.session.clientHelloVersion.major);\n b.putByte(c.session.clientHelloVersion.minor);\n\n // generate and add 46 random bytes\n b.putBytes(forge.random.getBytes(46));\n\n // save pre-master secret\n var sp = c.session.sp;\n sp.pre_master_secret = b.getBytes();\n\n // RSA-encrypt the pre-master secret\n var key = c.session.serverCertificate.publicKey;\n b = key.encrypt(sp.pre_master_secret);\n\n /* Note: The encrypted pre-master secret will be stored in a\n public-key-encrypted opaque vector that has the length prefixed using\n 2 bytes, so include those 2 bytes in the handshake message length. This\n is done as a minor optimization instead of calling writeVector(). */\n\n // determine length of the handshake message\n var length = b.length + 2;\n\n // build record fragment\n var rval = forge.util.createBuffer();\n rval.putByte(tls.HandshakeType.client_key_exchange);\n rval.putInt24(length);\n // add vector length bytes\n rval.putInt16(b.length);\n rval.putBytes(b);\n return rval;\n};\n\n/**\n * Creates a ServerKeyExchange message.\n *\n * @param c the connection.\n *\n * @return the ServerKeyExchange byte buffer.\n */\ntls.createServerKeyExchange = function(c) {\n // this implementation only supports RSA, no Diffie-Hellman support,\n // so this record is empty\n\n // determine length of the handshake message\n var length = 0;\n\n // build record fragment\n var rval = forge.util.createBuffer();\n if(length > 0) {\n rval.putByte(tls.HandshakeType.server_key_exchange);\n rval.putInt24(length);\n }\n return rval;\n};\n\n/**\n * Gets the signed data used to verify a client-side certificate. See\n * tls.createCertificateVerify() for details.\n *\n * @param c the connection.\n * @param callback the callback to call once the signed data is ready.\n */\ntls.getClientSignature = function(c, callback) {\n // generate data to RSA encrypt\n var b = forge.util.createBuffer();\n b.putBuffer(c.session.md5.digest());\n b.putBuffer(c.session.sha1.digest());\n b = b.getBytes();\n\n // create default signing function as necessary\n c.getSignature = c.getSignature || function(c, b, callback) {\n // do rsa encryption, call callback\n var privateKey = null;\n if(c.getPrivateKey) {\n try {\n privateKey = c.getPrivateKey(c, c.session.clientCertificate);\n privateKey = forge.pki.privateKeyFromPem(privateKey);\n } catch(ex) {\n c.error(c, {\n message: 'Could not get private key.',\n cause: ex,\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.internal_error\n }\n });\n }\n }\n if(privateKey === null) {\n c.error(c, {\n message: 'No private key set.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.internal_error\n }\n });\n } else {\n b = privateKey.sign(b, null);\n }\n callback(c, b);\n };\n\n // get client signature\n c.getSignature(c, b, callback);\n};\n\n/**\n * Creates a CertificateVerify message.\n *\n * Meaning of this message:\n * This structure conveys the client's Diffie-Hellman public value\n * (Yc) if it was not already included in the client's certificate.\n * The encoding used for Yc is determined by the enumerated\n * PublicValueEncoding. This structure is a variant of the client\n * key exchange message, not a message in itself.\n *\n * When this message will be sent:\n * This message is used to provide explicit verification of a client\n * certificate. This message is only sent following a client\n * certificate that has signing capability (i.e. all certificates\n * except those containing fixed Diffie-Hellman parameters). When\n * sent, it will immediately follow the client key exchange message.\n *\n * struct {\n * Signature signature;\n * } CertificateVerify;\n *\n * CertificateVerify.signature.md5_hash\n * MD5(handshake_messages);\n *\n * Certificate.signature.sha_hash\n * SHA(handshake_messages);\n *\n * Here handshake_messages refers to all handshake messages sent or\n * received starting at client hello up to but not including this\n * message, including the type and length fields of the handshake\n * messages.\n *\n * select(SignatureAlgorithm) {\n * case anonymous: struct { };\n * case rsa:\n * digitally-signed struct {\n * opaque md5_hash[16];\n * opaque sha_hash[20];\n * };\n * case dsa:\n * digitally-signed struct {\n * opaque sha_hash[20];\n * };\n * } Signature;\n *\n * In digital signing, one-way hash functions are used as input for a\n * signing algorithm. A digitally-signed element is encoded as an opaque\n * vector <0..2^16-1>, where the length is specified by the signing\n * algorithm and key.\n *\n * In RSA signing, a 36-byte structure of two hashes (one SHA and one\n * MD5) is signed (encrypted with the private key). It is encoded with\n * PKCS #1 block type 0 or type 1 as described in [PKCS1].\n *\n * In DSS, the 20 bytes of the SHA hash are run directly through the\n * Digital Signing Algorithm with no additional hashing.\n *\n * @param c the connection.\n * @param signature the signature to include in the message.\n *\n * @return the CertificateVerify byte buffer.\n */\ntls.createCertificateVerify = function(c, signature) {\n /* Note: The signature will be stored in a \"digitally-signed\" opaque\n vector that has the length prefixed using 2 bytes, so include those\n 2 bytes in the handshake message length. This is done as a minor\n optimization instead of calling writeVector(). */\n\n // determine length of the handshake message\n var length = signature.length + 2;\n\n // build record fragment\n var rval = forge.util.createBuffer();\n rval.putByte(tls.HandshakeType.certificate_verify);\n rval.putInt24(length);\n // add vector length bytes\n rval.putInt16(signature.length);\n rval.putBytes(signature);\n return rval;\n};\n\n/**\n * Creates a CertificateRequest message.\n *\n * @param c the connection.\n *\n * @return the CertificateRequest byte buffer.\n */\ntls.createCertificateRequest = function(c) {\n // TODO: support other certificate types\n var certTypes = forge.util.createBuffer();\n\n // common RSA certificate type\n certTypes.putByte(0x01);\n\n // add distinguished names from CA store\n var cAs = forge.util.createBuffer();\n for(var key in c.caStore.certs) {\n var cert = c.caStore.certs[key];\n var dn = forge.pki.distinguishedNameToAsn1(cert.subject);\n var byteBuffer = forge.asn1.toDer(dn);\n cAs.putInt16(byteBuffer.length());\n cAs.putBuffer(byteBuffer);\n }\n\n // TODO: TLS 1.2+ has a different format\n\n // determine length of the handshake message\n var length =\n 1 + certTypes.length() +\n 2 + cAs.length();\n\n // build record fragment\n var rval = forge.util.createBuffer();\n rval.putByte(tls.HandshakeType.certificate_request);\n rval.putInt24(length);\n writeVector(rval, 1, certTypes);\n writeVector(rval, 2, cAs);\n return rval;\n};\n\n/**\n * Creates a ServerHelloDone message.\n *\n * @param c the connection.\n *\n * @return the ServerHelloDone byte buffer.\n */\ntls.createServerHelloDone = function(c) {\n // build record fragment\n var rval = forge.util.createBuffer();\n rval.putByte(tls.HandshakeType.server_hello_done);\n rval.putInt24(0);\n return rval;\n};\n\n/**\n * Creates a ChangeCipherSpec message.\n *\n * The change cipher spec protocol exists to signal transitions in\n * ciphering strategies. The protocol consists of a single message,\n * which is encrypted and compressed under the current (not the pending)\n * connection state. The message consists of a single byte of value 1.\n *\n * struct {\n * enum { change_cipher_spec(1), (255) } type;\n * } ChangeCipherSpec;\n *\n * @return the ChangeCipherSpec byte buffer.\n */\ntls.createChangeCipherSpec = function() {\n var rval = forge.util.createBuffer();\n rval.putByte(0x01);\n return rval;\n};\n\n/**\n * Creates a Finished message.\n *\n * struct {\n * opaque verify_data[12];\n * } Finished;\n *\n * verify_data\n * PRF(master_secret, finished_label, MD5(handshake_messages) +\n * SHA-1(handshake_messages)) [0..11];\n *\n * finished_label\n * For Finished messages sent by the client, the string \"client\n * finished\". For Finished messages sent by the server, the\n * string \"server finished\".\n *\n * handshake_messages\n * All of the data from all handshake messages up to but not\n * including this message. This is only data visible at the\n * handshake layer and does not include record layer headers.\n * This is the concatenation of all the Handshake structures as\n * defined in 7.4 exchanged thus far.\n *\n * @param c the connection.\n *\n * @return the Finished byte buffer.\n */\ntls.createFinished = function(c) {\n // generate verify_data\n var b = forge.util.createBuffer();\n b.putBuffer(c.session.md5.digest());\n b.putBuffer(c.session.sha1.digest());\n\n // TODO: determine prf function and verify length for TLS 1.2\n var client = (c.entity === tls.ConnectionEnd.client);\n var sp = c.session.sp;\n var vdl = 12;\n var prf = prf_TLS1;\n var label = client ? 'client finished' : 'server finished';\n b = prf(sp.master_secret, label, b.getBytes(), vdl);\n\n // build record fragment\n var rval = forge.util.createBuffer();\n rval.putByte(tls.HandshakeType.finished);\n rval.putInt24(b.length());\n rval.putBuffer(b);\n return rval;\n};\n\n/**\n * Creates a HeartbeatMessage (See RFC 6520).\n *\n * struct {\n * HeartbeatMessageType type;\n * uint16 payload_length;\n * opaque payload[HeartbeatMessage.payload_length];\n * opaque padding[padding_length];\n * } HeartbeatMessage;\n *\n * The total length of a HeartbeatMessage MUST NOT exceed 2^14 or\n * max_fragment_length when negotiated as defined in [RFC6066].\n *\n * type: The message type, either heartbeat_request or heartbeat_response.\n *\n * payload_length: The length of the payload.\n *\n * payload: The payload consists of arbitrary content.\n *\n * padding: The padding is random content that MUST be ignored by the\n * receiver. The length of a HeartbeatMessage is TLSPlaintext.length\n * for TLS and DTLSPlaintext.length for DTLS. Furthermore, the\n * length of the type field is 1 byte, and the length of the\n * payload_length is 2. Therefore, the padding_length is\n * TLSPlaintext.length - payload_length - 3 for TLS and\n * DTLSPlaintext.length - payload_length - 3 for DTLS. The\n * padding_length MUST be at least 16.\n *\n * The sender of a HeartbeatMessage MUST use a random padding of at\n * least 16 bytes. The padding of a received HeartbeatMessage message\n * MUST be ignored.\n *\n * If the payload_length of a received HeartbeatMessage is too large,\n * the received HeartbeatMessage MUST be discarded silently.\n *\n * @param c the connection.\n * @param type the tls.HeartbeatMessageType.\n * @param payload the heartbeat data to send as the payload.\n * @param [payloadLength] the payload length to use, defaults to the\n * actual payload length.\n *\n * @return the HeartbeatRequest byte buffer.\n */\ntls.createHeartbeat = function(type, payload, payloadLength) {\n if(typeof payloadLength === 'undefined') {\n payloadLength = payload.length;\n }\n // build record fragment\n var rval = forge.util.createBuffer();\n rval.putByte(type); // heartbeat message type\n rval.putInt16(payloadLength); // payload length\n rval.putBytes(payload); // payload\n // padding\n var plaintextLength = rval.length();\n var paddingLength = Math.max(16, plaintextLength - payloadLength - 3);\n rval.putBytes(forge.random.getBytes(paddingLength));\n return rval;\n};\n\n/**\n * Fragments, compresses, encrypts, and queues a record for delivery.\n *\n * @param c the connection.\n * @param record the record to queue.\n */\ntls.queue = function(c, record) {\n // error during record creation\n if(!record) {\n return;\n }\n\n if(record.fragment.length() === 0) {\n if(record.type === tls.ContentType.handshake ||\n record.type === tls.ContentType.alert ||\n record.type === tls.ContentType.change_cipher_spec) {\n // Empty handshake, alert of change cipher spec messages are not allowed per the TLS specification and should not be sent.\n return;\n }\n }\n\n // if the record is a handshake record, update handshake hashes\n if(record.type === tls.ContentType.handshake) {\n var bytes = record.fragment.bytes();\n c.session.md5.update(bytes);\n c.session.sha1.update(bytes);\n bytes = null;\n }\n\n // handle record fragmentation\n var records;\n if(record.fragment.length() <= tls.MaxFragment) {\n records = [record];\n } else {\n // fragment data as long as it is too long\n records = [];\n var data = record.fragment.bytes();\n while(data.length > tls.MaxFragment) {\n records.push(tls.createRecord(c, {\n type: record.type,\n data: forge.util.createBuffer(data.slice(0, tls.MaxFragment))\n }));\n data = data.slice(tls.MaxFragment);\n }\n // add last record\n if(data.length > 0) {\n records.push(tls.createRecord(c, {\n type: record.type,\n data: forge.util.createBuffer(data)\n }));\n }\n }\n\n // compress and encrypt all fragmented records\n for(var i = 0; i < records.length && !c.fail; ++i) {\n // update the record using current write state\n var rec = records[i];\n var s = c.state.current.write;\n if(s.update(c, rec)) {\n // store record\n c.records.push(rec);\n }\n }\n};\n\n/**\n * Flushes all queued records to the output buffer and calls the\n * tlsDataReady() handler on the given connection.\n *\n * @param c the connection.\n *\n * @return true on success, false on failure.\n */\ntls.flush = function(c) {\n for(var i = 0; i < c.records.length; ++i) {\n var record = c.records[i];\n\n // add record header and fragment\n c.tlsData.putByte(record.type);\n c.tlsData.putByte(record.version.major);\n c.tlsData.putByte(record.version.minor);\n c.tlsData.putInt16(record.fragment.length());\n c.tlsData.putBuffer(c.records[i].fragment);\n }\n c.records = [];\n return c.tlsDataReady(c);\n};\n\n/**\n * Maps a pki.certificateError to a tls.Alert.Description.\n *\n * @param error the error to map.\n *\n * @return the alert description.\n */\nvar _certErrorToAlertDesc = function(error) {\n switch(error) {\n case true:\n return true;\n case forge.pki.certificateError.bad_certificate:\n return tls.Alert.Description.bad_certificate;\n case forge.pki.certificateError.unsupported_certificate:\n return tls.Alert.Description.unsupported_certificate;\n case forge.pki.certificateError.certificate_revoked:\n return tls.Alert.Description.certificate_revoked;\n case forge.pki.certificateError.certificate_expired:\n return tls.Alert.Description.certificate_expired;\n case forge.pki.certificateError.certificate_unknown:\n return tls.Alert.Description.certificate_unknown;\n case forge.pki.certificateError.unknown_ca:\n return tls.Alert.Description.unknown_ca;\n default:\n return tls.Alert.Description.bad_certificate;\n }\n};\n\n/**\n * Maps a tls.Alert.Description to a pki.certificateError.\n *\n * @param desc the alert description.\n *\n * @return the certificate error.\n */\nvar _alertDescToCertError = function(desc) {\n switch(desc) {\n case true:\n return true;\n case tls.Alert.Description.bad_certificate:\n return forge.pki.certificateError.bad_certificate;\n case tls.Alert.Description.unsupported_certificate:\n return forge.pki.certificateError.unsupported_certificate;\n case tls.Alert.Description.certificate_revoked:\n return forge.pki.certificateError.certificate_revoked;\n case tls.Alert.Description.certificate_expired:\n return forge.pki.certificateError.certificate_expired;\n case tls.Alert.Description.certificate_unknown:\n return forge.pki.certificateError.certificate_unknown;\n case tls.Alert.Description.unknown_ca:\n return forge.pki.certificateError.unknown_ca;\n default:\n return forge.pki.certificateError.bad_certificate;\n }\n};\n\n/**\n * Verifies a certificate chain against the given connection's\n * Certificate Authority store.\n *\n * @param c the TLS connection.\n * @param chain the certificate chain to verify, with the root or highest\n * authority at the end.\n *\n * @return true if successful, false if not.\n */\ntls.verifyCertificateChain = function(c, chain) {\n try {\n // Make a copy of c.verifyOptions so that we can modify options.verify\n // without modifying c.verifyOptions.\n var options = {};\n for (var key in c.verifyOptions) {\n options[key] = c.verifyOptions[key];\n }\n\n options.verify = function(vfd, depth, chain) {\n // convert pki.certificateError to tls alert description\n var desc = _certErrorToAlertDesc(vfd);\n\n // call application callback\n var ret = c.verify(c, vfd, depth, chain);\n if(ret !== true) {\n if(typeof ret === 'object' && !forge.util.isArray(ret)) {\n // throw custom error\n var error = new Error('The application rejected the certificate.');\n error.send = true;\n error.alert = {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.bad_certificate\n };\n if(ret.message) {\n error.message = ret.message;\n }\n if(ret.alert) {\n error.alert.description = ret.alert;\n }\n throw error;\n }\n\n // convert tls alert description to pki.certificateError\n if(ret !== vfd) {\n ret = _alertDescToCertError(ret);\n }\n }\n\n return ret;\n };\n\n // verify chain\n forge.pki.verifyCertificateChain(c.caStore, chain, options);\n } catch(ex) {\n // build tls error if not already customized\n var err = ex;\n if(typeof err !== 'object' || forge.util.isArray(err)) {\n err = {\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: _certErrorToAlertDesc(ex)\n }\n };\n }\n if(!('send' in err)) {\n err.send = true;\n }\n if(!('alert' in err)) {\n err.alert = {\n level: tls.Alert.Level.fatal,\n description: _certErrorToAlertDesc(err.error)\n };\n }\n\n // send error\n c.error(c, err);\n }\n\n return !c.fail;\n};\n\n/**\n * Creates a new TLS session cache.\n *\n * @param cache optional map of session ID to cached session.\n * @param capacity the maximum size for the cache (default: 100).\n *\n * @return the new TLS session cache.\n */\ntls.createSessionCache = function(cache, capacity) {\n var rval = null;\n\n // assume input is already a session cache object\n if(cache && cache.getSession && cache.setSession && cache.order) {\n rval = cache;\n } else {\n // create cache\n rval = {};\n rval.cache = cache || {};\n rval.capacity = Math.max(capacity || 100, 1);\n rval.order = [];\n\n // store order for sessions, delete session overflow\n for(var key in cache) {\n if(rval.order.length <= capacity) {\n rval.order.push(key);\n } else {\n delete cache[key];\n }\n }\n\n // get a session from a session ID (or get any session)\n rval.getSession = function(sessionId) {\n var session = null;\n var key = null;\n\n // if session ID provided, use it\n if(sessionId) {\n key = forge.util.bytesToHex(sessionId);\n } else if(rval.order.length > 0) {\n // get first session from cache\n key = rval.order[0];\n }\n\n if(key !== null && key in rval.cache) {\n // get cached session and remove from cache\n session = rval.cache[key];\n delete rval.cache[key];\n for(var i in rval.order) {\n if(rval.order[i] === key) {\n rval.order.splice(i, 1);\n break;\n }\n }\n }\n\n return session;\n };\n\n // set a session in the cache\n rval.setSession = function(sessionId, session) {\n // remove session from cache if at capacity\n if(rval.order.length === rval.capacity) {\n var key = rval.order.shift();\n delete rval.cache[key];\n }\n // add session to cache\n var key = forge.util.bytesToHex(sessionId);\n rval.order.push(key);\n rval.cache[key] = session;\n };\n }\n\n return rval;\n};\n\n/**\n * Creates a new TLS connection.\n *\n * See public createConnection() docs for more details.\n *\n * @param options the options for this connection.\n *\n * @return the new TLS connection.\n */\ntls.createConnection = function(options) {\n var caStore = null;\n if(options.caStore) {\n // if CA store is an array, convert it to a CA store object\n if(forge.util.isArray(options.caStore)) {\n caStore = forge.pki.createCaStore(options.caStore);\n } else {\n caStore = options.caStore;\n }\n } else {\n // create empty CA store\n caStore = forge.pki.createCaStore();\n }\n\n // setup default cipher suites\n var cipherSuites = options.cipherSuites || null;\n if(cipherSuites === null) {\n cipherSuites = [];\n for(var key in tls.CipherSuites) {\n cipherSuites.push(tls.CipherSuites[key]);\n }\n }\n\n // set default entity\n var entity = (options.server || false) ?\n tls.ConnectionEnd.server : tls.ConnectionEnd.client;\n\n // create session cache if requested\n var sessionCache = options.sessionCache ?\n tls.createSessionCache(options.sessionCache) : null;\n\n // create TLS connection\n var c = {\n version: {major: tls.Version.major, minor: tls.Version.minor},\n entity: entity,\n sessionId: options.sessionId,\n caStore: caStore,\n sessionCache: sessionCache,\n cipherSuites: cipherSuites,\n connected: options.connected,\n virtualHost: options.virtualHost || null,\n verifyClient: options.verifyClient || false,\n verify: options.verify || function(cn, vfd, dpth, cts) {return vfd;},\n verifyOptions: options.verifyOptions || {},\n getCertificate: options.getCertificate || null,\n getPrivateKey: options.getPrivateKey || null,\n getSignature: options.getSignature || null,\n input: forge.util.createBuffer(),\n tlsData: forge.util.createBuffer(),\n data: forge.util.createBuffer(),\n tlsDataReady: options.tlsDataReady,\n dataReady: options.dataReady,\n heartbeatReceived: options.heartbeatReceived,\n closed: options.closed,\n error: function(c, ex) {\n // set origin if not set\n ex.origin = ex.origin ||\n ((c.entity === tls.ConnectionEnd.client) ? 'client' : 'server');\n\n // send TLS alert\n if(ex.send) {\n tls.queue(c, tls.createAlert(c, ex.alert));\n tls.flush(c);\n }\n\n // error is fatal by default\n var fatal = (ex.fatal !== false);\n if(fatal) {\n // set fail flag\n c.fail = true;\n }\n\n // call error handler first\n options.error(c, ex);\n\n if(fatal) {\n // fatal error, close connection, do not clear fail\n c.close(false);\n }\n },\n deflate: options.deflate || null,\n inflate: options.inflate || null\n };\n\n /**\n * Resets a closed TLS connection for reuse. Called in c.close().\n *\n * @param clearFail true to clear the fail flag (default: true).\n */\n c.reset = function(clearFail) {\n c.version = {major: tls.Version.major, minor: tls.Version.minor};\n c.record = null;\n c.session = null;\n c.peerCertificate = null;\n c.state = {\n pending: null,\n current: null\n };\n c.expect = (c.entity === tls.ConnectionEnd.client) ? SHE : CHE;\n c.fragmented = null;\n c.records = [];\n c.open = false;\n c.handshakes = 0;\n c.handshaking = false;\n c.isConnected = false;\n c.fail = !(clearFail || typeof(clearFail) === 'undefined');\n c.input.clear();\n c.tlsData.clear();\n c.data.clear();\n c.state.current = tls.createConnectionState(c);\n };\n\n // do initial reset of connection\n c.reset();\n\n /**\n * Updates the current TLS engine state based on the given record.\n *\n * @param c the TLS connection.\n * @param record the TLS record to act on.\n */\n var _update = function(c, record) {\n // get record handler (align type in table by subtracting lowest)\n var aligned = record.type - tls.ContentType.change_cipher_spec;\n var handlers = ctTable[c.entity][c.expect];\n if(aligned in handlers) {\n handlers[aligned](c, record);\n } else {\n // unexpected record\n tls.handleUnexpected(c, record);\n }\n };\n\n /**\n * Reads the record header and initializes the next record on the given\n * connection.\n *\n * @param c the TLS connection with the next record.\n *\n * @return 0 if the input data could be processed, otherwise the\n * number of bytes required for data to be processed.\n */\n var _readRecordHeader = function(c) {\n var rval = 0;\n\n // get input buffer and its length\n var b = c.input;\n var len = b.length();\n\n // need at least 5 bytes to initialize a record\n if(len < 5) {\n rval = 5 - len;\n } else {\n // enough bytes for header\n // initialize record\n c.record = {\n type: b.getByte(),\n version: {\n major: b.getByte(),\n minor: b.getByte()\n },\n length: b.getInt16(),\n fragment: forge.util.createBuffer(),\n ready: false\n };\n\n // check record version\n var compatibleVersion = (c.record.version.major === c.version.major);\n if(compatibleVersion && c.session && c.session.version) {\n // session version already set, require same minor version\n compatibleVersion = (c.record.version.minor === c.version.minor);\n }\n if(!compatibleVersion) {\n c.error(c, {\n message: 'Incompatible TLS version.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description: tls.Alert.Description.protocol_version\n }\n });\n }\n }\n\n return rval;\n };\n\n /**\n * Reads the next record's contents and appends its message to any\n * previously fragmented message.\n *\n * @param c the TLS connection with the next record.\n *\n * @return 0 if the input data could be processed, otherwise the\n * number of bytes required for data to be processed.\n */\n var _readRecord = function(c) {\n var rval = 0;\n\n // ensure there is enough input data to get the entire record\n var b = c.input;\n var len = b.length();\n if(len < c.record.length) {\n // not enough data yet, return how much is required\n rval = c.record.length - len;\n } else {\n // there is enough data to parse the pending record\n // fill record fragment and compact input buffer\n c.record.fragment.putBytes(b.getBytes(c.record.length));\n b.compact();\n\n // update record using current read state\n var s = c.state.current.read;\n if(s.update(c, c.record)) {\n // see if there is a previously fragmented message that the\n // new record's message fragment should be appended to\n if(c.fragmented !== null) {\n // if the record type matches a previously fragmented\n // record, append the record fragment to it\n if(c.fragmented.type === c.record.type) {\n // concatenate record fragments\n c.fragmented.fragment.putBuffer(c.record.fragment);\n c.record = c.fragmented;\n } else {\n // error, invalid fragmented record\n c.error(c, {\n message: 'Invalid fragmented record.',\n send: true,\n alert: {\n level: tls.Alert.Level.fatal,\n description:\n tls.Alert.Description.unexpected_message\n }\n });\n }\n }\n\n // record is now ready\n c.record.ready = true;\n }\n }\n\n return rval;\n };\n\n /**\n * Performs a handshake using the TLS Handshake Protocol, as a client.\n *\n * This method should only be called if the connection is in client mode.\n *\n * @param sessionId the session ID to use, null to start a new one.\n */\n c.handshake = function(sessionId) {\n // error to call this in non-client mode\n if(c.entity !== tls.ConnectionEnd.client) {\n // not fatal error\n c.error(c, {\n message: 'Cannot initiate handshake as a server.',\n fatal: false\n });\n } else if(c.handshaking) {\n // handshake is already in progress, fail but not fatal error\n c.error(c, {\n message: 'Handshake already in progress.',\n fatal: false\n });\n } else {\n // clear fail flag on reuse\n if(c.fail && !c.open && c.handshakes === 0) {\n c.fail = false;\n }\n\n // now handshaking\n c.handshaking = true;\n\n // default to blank (new session)\n sessionId = sessionId || '';\n\n // if a session ID was specified, try to find it in the cache\n var session = null;\n if(sessionId.length > 0) {\n if(c.sessionCache) {\n session = c.sessionCache.getSession(sessionId);\n }\n\n // matching session not found in cache, clear session ID\n if(session === null) {\n sessionId = '';\n }\n }\n\n // no session given, grab a session from the cache, if available\n if(sessionId.length === 0 && c.sessionCache) {\n session = c.sessionCache.getSession();\n if(session !== null) {\n sessionId = session.id;\n }\n }\n\n // set up session\n c.session = {\n id: sessionId,\n version: null,\n cipherSuite: null,\n compressionMethod: null,\n serverCertificate: null,\n certificateRequest: null,\n clientCertificate: null,\n sp: {},\n md5: forge.md.md5.create(),\n sha1: forge.md.sha1.create()\n };\n\n // use existing session information\n if(session) {\n // only update version on connection, session version not yet set\n c.version = session.version;\n c.session.sp = session.sp;\n }\n\n // generate new client random\n c.session.sp.client_random = tls.createRandom().getBytes();\n\n // connection now open\n c.open = true;\n\n // send hello\n tls.queue(c, tls.createRecord(c, {\n type: tls.ContentType.handshake,\n data: tls.createClientHello(c)\n }));\n tls.flush(c);\n }\n };\n\n /**\n * Called when TLS protocol data has been received from somewhere and should\n * be processed by the TLS engine.\n *\n * @param data the TLS protocol data, as a string, to process.\n *\n * @return 0 if the data could be processed, otherwise the number of bytes\n * required for data to be processed.\n */\n c.process = function(data) {\n var rval = 0;\n\n // buffer input data\n if(data) {\n c.input.putBytes(data);\n }\n\n // process next record if no failure, process will be called after\n // each record is handled (since handling can be asynchronous)\n if(!c.fail) {\n // reset record if ready and now empty\n if(c.record !== null &&\n c.record.ready && c.record.fragment.isEmpty()) {\n c.record = null;\n }\n\n // if there is no pending record, try to read record header\n if(c.record === null) {\n rval = _readRecordHeader(c);\n }\n\n // read the next record (if record not yet ready)\n if(!c.fail && c.record !== null && !c.record.ready) {\n rval = _readRecord(c);\n }\n\n // record ready to be handled, update engine state\n if(!c.fail && c.record !== null && c.record.ready) {\n _update(c, c.record);\n }\n }\n\n return rval;\n };\n\n /**\n * Requests that application data be packaged into a TLS record. The\n * tlsDataReady handler will be called when the TLS record(s) have been\n * prepared.\n *\n * @param data the application data, as a raw 'binary' encoded string, to\n * be sent; to send utf-16/utf-8 string data, use the return value\n * of util.encodeUtf8(str).\n *\n * @return true on success, false on failure.\n */\n c.prepare = function(data) {\n tls.queue(c, tls.createRecord(c, {\n type: tls.ContentType.application_data,\n data: forge.util.createBuffer(data)\n }));\n return tls.flush(c);\n };\n\n /**\n * Requests that a heartbeat request be packaged into a TLS record for\n * transmission. The tlsDataReady handler will be called when TLS record(s)\n * have been prepared.\n *\n * When a heartbeat response has been received, the heartbeatReceived\n * handler will be called with the matching payload. This handler can\n * be used to clear a retransmission timer, etc.\n *\n * @param payload the heartbeat data to send as the payload in the message.\n * @param [payloadLength] the payload length to use, defaults to the\n * actual payload length.\n *\n * @return true on success, false on failure.\n */\n c.prepareHeartbeatRequest = function(payload, payloadLength) {\n if(payload instanceof forge.util.ByteBuffer) {\n payload = payload.bytes();\n }\n if(typeof payloadLength === 'undefined') {\n payloadLength = payload.length;\n }\n c.expectedHeartbeatPayload = payload;\n tls.queue(c, tls.createRecord(c, {\n type: tls.ContentType.heartbeat,\n data: tls.createHeartbeat(\n tls.HeartbeatMessageType.heartbeat_request, payload, payloadLength)\n }));\n return tls.flush(c);\n };\n\n /**\n * Closes the connection (sends a close_notify alert).\n *\n * @param clearFail true to clear the fail flag (default: true).\n */\n c.close = function(clearFail) {\n // save session if connection didn't fail\n if(!c.fail && c.sessionCache && c.session) {\n // only need to preserve session ID, version, and security params\n var session = {\n id: c.session.id,\n version: c.session.version,\n sp: c.session.sp\n };\n session.sp.keys = null;\n c.sessionCache.setSession(session.id, session);\n }\n\n if(c.open) {\n // connection no longer open, clear input\n c.open = false;\n c.input.clear();\n\n // if connected or handshaking, send an alert\n if(c.isConnected || c.handshaking) {\n c.isConnected = c.handshaking = false;\n\n // send close_notify alert\n tls.queue(c, tls.createAlert(c, {\n level: tls.Alert.Level.warning,\n description: tls.Alert.Description.close_notify\n }));\n tls.flush(c);\n }\n\n // call handler\n c.closed(c);\n }\n\n // reset TLS connection, do not clear fail flag\n c.reset(clearFail);\n };\n\n return c;\n};\n\n/* TLS API */\nmodule.exports = forge.tls = forge.tls || {};\n\n// expose non-functions\nfor(var key in tls) {\n if(typeof tls[key] !== 'function') {\n forge.tls[key] = tls[key];\n }\n}\n\n// expose prf_tls1 for testing\nforge.tls.prf_tls1 = prf_TLS1;\n\n// expose sha1 hmac method\nforge.tls.hmac_sha1 = hmac_sha1;\n\n// expose session cache creation\nforge.tls.createSessionCache = tls.createSessionCache;\n\n/**\n * Creates a new TLS connection. This does not make any assumptions about the\n * transport layer that TLS is working on top of, ie: it does not assume there\n * is a TCP/IP connection or establish one. A TLS connection is totally\n * abstracted away from the layer is runs on top of, it merely establishes a\n * secure channel between a client\" and a \"server\".\n *\n * A TLS connection contains 4 connection states: pending read and write, and\n * current read and write.\n *\n * At initialization, the current read and write states will be null. Only once\n * the security parameters have been set and the keys have been generated can\n * the pending states be converted into current states. Current states will be\n * updated for each record processed.\n *\n * A custom certificate verify callback may be provided to check information\n * like the common name on the server's certificate. It will be called for\n * every certificate in the chain. It has the following signature:\n *\n * variable func(c, certs, index, preVerify)\n * Where:\n * c The TLS connection\n * verified Set to true if certificate was verified, otherwise the alert\n * tls.Alert.Description for why the certificate failed.\n * depth The current index in the chain, where 0 is the server's cert.\n * certs The certificate chain, *NOTE* if the server was anonymous then\n * the chain will be empty.\n *\n * The function returns true on success and on failure either the appropriate\n * tls.Alert.Description or an object with 'alert' set to the appropriate\n * tls.Alert.Description and 'message' set to a custom error message. If true\n * is not returned then the connection will abort using, in order of\n * availability, first the returned alert description, second the preVerify\n * alert description, and lastly the default 'bad_certificate'.\n *\n * There are three callbacks that can be used to make use of client-side\n * certificates where each takes the TLS connection as the first parameter:\n *\n * getCertificate(conn, hint)\n * The second parameter is a hint as to which certificate should be\n * returned. If the connection entity is a client, then the hint will be\n * the CertificateRequest message from the server that is part of the\n * TLS protocol. If the connection entity is a server, then it will be\n * the servername list provided via an SNI extension the ClientHello, if\n * one was provided (empty array if not). The hint can be examined to\n * determine which certificate to use (advanced). Most implementations\n * will just return a certificate. The return value must be a\n * PEM-formatted certificate or an array of PEM-formatted certificates\n * that constitute a certificate chain, with the first in the array/chain\n * being the client's certificate.\n * getPrivateKey(conn, certificate)\n * The second parameter is an forge.pki X.509 certificate object that\n * is associated with the requested private key. The return value must\n * be a PEM-formatted private key.\n * getSignature(conn, bytes, callback)\n * This callback can be used instead of getPrivateKey if the private key\n * is not directly accessible in javascript or should not be. For\n * instance, a secure external web service could provide the signature\n * in exchange for appropriate credentials. The second parameter is a\n * string of bytes to be signed that are part of the TLS protocol. These\n * bytes are used to verify that the private key for the previously\n * provided client-side certificate is accessible to the client. The\n * callback is a function that takes 2 parameters, the TLS connection\n * and the RSA encrypted (signed) bytes as a string. This callback must\n * be called once the signature is ready.\n *\n * @param options the options for this connection:\n * server: true if the connection is server-side, false for client.\n * sessionId: a session ID to reuse, null for a new connection.\n * caStore: an array of certificates to trust.\n * sessionCache: a session cache to use.\n * cipherSuites: an optional array of cipher suites to use,\n * see tls.CipherSuites.\n * connected: function(conn) called when the first handshake completes.\n * virtualHost: the virtual server name to use in a TLS SNI extension.\n * verifyClient: true to require a client certificate in server mode,\n * 'optional' to request one, false not to (default: false).\n * verify: a handler used to custom verify certificates in the chain.\n * verifyOptions: an object with options for the certificate chain validation.\n * See documentation of pki.verifyCertificateChain for possible options.\n * verifyOptions.verify is ignored. If you wish to specify a verify handler\n * use the verify key.\n * getCertificate: an optional callback used to get a certificate or\n * a chain of certificates (as an array).\n * getPrivateKey: an optional callback used to get a private key.\n * getSignature: an optional callback used to get a signature.\n * tlsDataReady: function(conn) called when TLS protocol data has been\n * prepared and is ready to be used (typically sent over a socket\n * connection to its destination), read from conn.tlsData buffer.\n * dataReady: function(conn) called when application data has\n * been parsed from a TLS record and should be consumed by the\n * application, read from conn.data buffer.\n * closed: function(conn) called when the connection has been closed.\n * error: function(conn, error) called when there was an error.\n * deflate: function(inBytes) if provided, will deflate TLS records using\n * the deflate algorithm if the server supports it.\n * inflate: function(inBytes) if provided, will inflate TLS records using\n * the deflate algorithm if the server supports it.\n *\n * @return the new TLS connection.\n */\nforge.tls.createConnection = tls.createConnection;\n","/**\n * A Javascript implementation of AES Cipher Suites for TLS.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2009-2015 Digital Bazaar, Inc.\n *\n */\nvar forge = require('./forge');\nrequire('./aes');\nrequire('./tls');\n\nvar tls = module.exports = forge.tls;\n\n/**\n * Supported cipher suites.\n */\ntls.CipherSuites['TLS_RSA_WITH_AES_128_CBC_SHA'] = {\n id: [0x00, 0x2f],\n name: 'TLS_RSA_WITH_AES_128_CBC_SHA',\n initSecurityParameters: function(sp) {\n sp.bulk_cipher_algorithm = tls.BulkCipherAlgorithm.aes;\n sp.cipher_type = tls.CipherType.block;\n sp.enc_key_length = 16;\n sp.block_length = 16;\n sp.fixed_iv_length = 16;\n sp.record_iv_length = 16;\n sp.mac_algorithm = tls.MACAlgorithm.hmac_sha1;\n sp.mac_length = 20;\n sp.mac_key_length = 20;\n },\n initConnectionState: initConnectionState\n};\ntls.CipherSuites['TLS_RSA_WITH_AES_256_CBC_SHA'] = {\n id: [0x00, 0x35],\n name: 'TLS_RSA_WITH_AES_256_CBC_SHA',\n initSecurityParameters: function(sp) {\n sp.bulk_cipher_algorithm = tls.BulkCipherAlgorithm.aes;\n sp.cipher_type = tls.CipherType.block;\n sp.enc_key_length = 32;\n sp.block_length = 16;\n sp.fixed_iv_length = 16;\n sp.record_iv_length = 16;\n sp.mac_algorithm = tls.MACAlgorithm.hmac_sha1;\n sp.mac_length = 20;\n sp.mac_key_length = 20;\n },\n initConnectionState: initConnectionState\n};\n\nfunction initConnectionState(state, c, sp) {\n var client = (c.entity === forge.tls.ConnectionEnd.client);\n\n // cipher setup\n state.read.cipherState = {\n init: false,\n cipher: forge.cipher.createDecipher('AES-CBC', client ?\n sp.keys.server_write_key : sp.keys.client_write_key),\n iv: client ? sp.keys.server_write_IV : sp.keys.client_write_IV\n };\n state.write.cipherState = {\n init: false,\n cipher: forge.cipher.createCipher('AES-CBC', client ?\n sp.keys.client_write_key : sp.keys.server_write_key),\n iv: client ? sp.keys.client_write_IV : sp.keys.server_write_IV\n };\n state.read.cipherFunction = decrypt_aes_cbc_sha1;\n state.write.cipherFunction = encrypt_aes_cbc_sha1;\n\n // MAC setup\n state.read.macLength = state.write.macLength = sp.mac_length;\n state.read.macFunction = state.write.macFunction = tls.hmac_sha1;\n}\n\n/**\n * Encrypts the TLSCompressed record into a TLSCipherText record using AES\n * in CBC mode.\n *\n * @param record the TLSCompressed record to encrypt.\n * @param s the ConnectionState to use.\n *\n * @return true on success, false on failure.\n */\nfunction encrypt_aes_cbc_sha1(record, s) {\n var rval = false;\n\n // append MAC to fragment, update sequence number\n var mac = s.macFunction(s.macKey, s.sequenceNumber, record);\n record.fragment.putBytes(mac);\n s.updateSequenceNumber();\n\n // TLS 1.1+ use an explicit IV every time to protect against CBC attacks\n var iv;\n if(record.version.minor === tls.Versions.TLS_1_0.minor) {\n // use the pre-generated IV when initializing for TLS 1.0, otherwise use\n // the residue from the previous encryption\n iv = s.cipherState.init ? null : s.cipherState.iv;\n } else {\n iv = forge.random.getBytesSync(16);\n }\n\n s.cipherState.init = true;\n\n // start cipher\n var cipher = s.cipherState.cipher;\n cipher.start({iv: iv});\n\n // TLS 1.1+ write IV into output\n if(record.version.minor >= tls.Versions.TLS_1_1.minor) {\n cipher.output.putBytes(iv);\n }\n\n // do encryption (default padding is appropriate)\n cipher.update(record.fragment);\n if(cipher.finish(encrypt_aes_cbc_sha1_padding)) {\n // set record fragment to encrypted output\n record.fragment = cipher.output;\n record.length = record.fragment.length();\n rval = true;\n }\n\n return rval;\n}\n\n/**\n * Handles padding for aes_cbc_sha1 in encrypt mode.\n *\n * @param blockSize the block size.\n * @param input the input buffer.\n * @param decrypt true in decrypt mode, false in encrypt mode.\n *\n * @return true on success, false on failure.\n */\nfunction encrypt_aes_cbc_sha1_padding(blockSize, input, decrypt) {\n /* The encrypted data length (TLSCiphertext.length) is one more than the sum\n of SecurityParameters.block_length, TLSCompressed.length,\n SecurityParameters.mac_length, and padding_length.\n\n The padding may be any length up to 255 bytes long, as long as it results in\n the TLSCiphertext.length being an integral multiple of the block length.\n Lengths longer than necessary might be desirable to frustrate attacks on a\n protocol based on analysis of the lengths of exchanged messages. Each uint8\n in the padding data vector must be filled with the padding length value.\n\n The padding length should be such that the total size of the\n GenericBlockCipher structure is a multiple of the cipher's block length.\n Legal values range from zero to 255, inclusive. This length specifies the\n length of the padding field exclusive of the padding_length field itself.\n\n This is slightly different from PKCS#7 because the padding value is 1\n less than the actual number of padding bytes if you include the\n padding_length uint8 itself as a padding byte. */\n if(!decrypt) {\n // get the number of padding bytes required to reach the blockSize and\n // subtract 1 for the padding value (to make room for the padding_length\n // uint8)\n var padding = blockSize - (input.length() % blockSize);\n input.fillWithByte(padding - 1, padding);\n }\n return true;\n}\n\n/**\n * Handles padding for aes_cbc_sha1 in decrypt mode.\n *\n * @param blockSize the block size.\n * @param output the output buffer.\n * @param decrypt true in decrypt mode, false in encrypt mode.\n *\n * @return true on success, false on failure.\n */\nfunction decrypt_aes_cbc_sha1_padding(blockSize, output, decrypt) {\n var rval = true;\n if(decrypt) {\n /* The last byte in the output specifies the number of padding bytes not\n including itself. Each of the padding bytes has the same value as that\n last byte (known as the padding_length). Here we check all padding\n bytes to ensure they have the value of padding_length even if one of\n them is bad in order to ward-off timing attacks. */\n var len = output.length();\n var paddingLength = output.last();\n for(var i = len - 1 - paddingLength; i < len - 1; ++i) {\n rval = rval && (output.at(i) == paddingLength);\n }\n if(rval) {\n // trim off padding bytes and last padding length byte\n output.truncate(paddingLength + 1);\n }\n }\n return rval;\n}\n\n/**\n * Decrypts a TLSCipherText record into a TLSCompressed record using\n * AES in CBC mode.\n *\n * @param record the TLSCipherText record to decrypt.\n * @param s the ConnectionState to use.\n *\n * @return true on success, false on failure.\n */\nfunction decrypt_aes_cbc_sha1(record, s) {\n var rval = false;\n\n var iv;\n if(record.version.minor === tls.Versions.TLS_1_0.minor) {\n // use pre-generated IV when initializing for TLS 1.0, otherwise use the\n // residue from the previous decryption\n iv = s.cipherState.init ? null : s.cipherState.iv;\n } else {\n // TLS 1.1+ use an explicit IV every time to protect against CBC attacks\n // that is appended to the record fragment\n iv = record.fragment.getBytes(16);\n }\n\n s.cipherState.init = true;\n\n // start cipher\n var cipher = s.cipherState.cipher;\n cipher.start({iv: iv});\n\n // do decryption\n cipher.update(record.fragment);\n rval = cipher.finish(decrypt_aes_cbc_sha1_padding);\n\n // even if decryption fails, keep going to minimize timing attacks\n\n // decrypted data:\n // first (len - 20) bytes = application data\n // last 20 bytes = MAC\n var macLen = s.macLength;\n\n // create a random MAC to check against should the mac length check fail\n // Note: do this regardless of the failure to keep timing consistent\n var mac = forge.random.getBytesSync(macLen);\n\n // get fragment and mac\n var len = cipher.output.length();\n if(len >= macLen) {\n record.fragment = cipher.output.getBytes(len - macLen);\n mac = cipher.output.getBytes(macLen);\n } else {\n // bad data, but get bytes anyway to try to keep timing consistent\n record.fragment = cipher.output.getBytes();\n }\n record.fragment = forge.util.createBuffer(record.fragment);\n record.length = record.fragment.length();\n\n // see if data integrity checks out, update sequence number\n var mac2 = s.macFunction(s.macKey, s.sequenceNumber, record);\n s.updateSequenceNumber();\n rval = compareMacs(s.macKey, mac, mac2) && rval;\n return rval;\n}\n\n/**\n * Safely compare two MACs. This function will compare two MACs in a way\n * that protects against timing attacks.\n *\n * TODO: Expose elsewhere as a utility API.\n *\n * See: https://www.nccgroup.trust/us/about-us/newsroom-and-events/blog/2011/february/double-hmac-verification/\n *\n * @param key the MAC key to use.\n * @param mac1 as a binary-encoded string of bytes.\n * @param mac2 as a binary-encoded string of bytes.\n *\n * @return true if the MACs are the same, false if not.\n */\nfunction compareMacs(key, mac1, mac2) {\n var hmac = forge.hmac.create();\n\n hmac.start('SHA1', key);\n hmac.update(mac1);\n mac1 = hmac.digest().getBytes();\n\n hmac.start(null, null);\n hmac.update(mac2);\n mac2 = hmac.digest().getBytes();\n\n return mac1 === mac2;\n}\n","/**\n * Secure Hash Algorithm with a 1024-bit block size implementation.\n *\n * This includes: SHA-512, SHA-384, SHA-512/224, and SHA-512/256. For\n * SHA-256 (block size 512 bits), see sha256.js.\n *\n * See FIPS 180-4 for details.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2014-2015 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./md');\nrequire('./util');\n\nvar sha512 = module.exports = forge.sha512 = forge.sha512 || {};\n\n// SHA-512\nforge.md.sha512 = forge.md.algorithms.sha512 = sha512;\n\n// SHA-384\nvar sha384 = forge.sha384 = forge.sha512.sha384 = forge.sha512.sha384 || {};\nsha384.create = function() {\n return sha512.create('SHA-384');\n};\nforge.md.sha384 = forge.md.algorithms.sha384 = sha384;\n\n// SHA-512/256\nforge.sha512.sha256 = forge.sha512.sha256 || {\n create: function() {\n return sha512.create('SHA-512/256');\n }\n};\nforge.md['sha512/256'] = forge.md.algorithms['sha512/256'] =\n forge.sha512.sha256;\n\n// SHA-512/224\nforge.sha512.sha224 = forge.sha512.sha224 || {\n create: function() {\n return sha512.create('SHA-512/224');\n }\n};\nforge.md['sha512/224'] = forge.md.algorithms['sha512/224'] =\n forge.sha512.sha224;\n\n/**\n * Creates a SHA-2 message digest object.\n *\n * @param algorithm the algorithm to use (SHA-512, SHA-384, SHA-512/224,\n * SHA-512/256).\n *\n * @return a message digest object.\n */\nsha512.create = function(algorithm) {\n // do initialization as necessary\n if(!_initialized) {\n _init();\n }\n\n if(typeof algorithm === 'undefined') {\n algorithm = 'SHA-512';\n }\n\n if(!(algorithm in _states)) {\n throw new Error('Invalid SHA-512 algorithm: ' + algorithm);\n }\n\n // SHA-512 state contains eight 64-bit integers (each as two 32-bit ints)\n var _state = _states[algorithm];\n var _h = null;\n\n // input buffer\n var _input = forge.util.createBuffer();\n\n // used for 64-bit word storage\n var _w = new Array(80);\n for(var wi = 0; wi < 80; ++wi) {\n _w[wi] = new Array(2);\n }\n\n // determine digest length by algorithm name (default)\n var digestLength = 64;\n switch(algorithm) {\n case 'SHA-384':\n digestLength = 48;\n break;\n case 'SHA-512/256':\n digestLength = 32;\n break;\n case 'SHA-512/224':\n digestLength = 28;\n break;\n }\n\n // message digest object\n var md = {\n // SHA-512 => sha512\n algorithm: algorithm.replace('-', '').toLowerCase(),\n blockLength: 128,\n digestLength: digestLength,\n // 56-bit length of message so far (does not including padding)\n messageLength: 0,\n // true message length\n fullMessageLength: null,\n // size of message length in bytes\n messageLengthSize: 16\n };\n\n /**\n * Starts the digest.\n *\n * @return this digest object.\n */\n md.start = function() {\n // up to 56-bit message length for convenience\n md.messageLength = 0;\n\n // full message length (set md.messageLength128 for backwards-compatibility)\n md.fullMessageLength = md.messageLength128 = [];\n var int32s = md.messageLengthSize / 4;\n for(var i = 0; i < int32s; ++i) {\n md.fullMessageLength.push(0);\n }\n _input = forge.util.createBuffer();\n _h = new Array(_state.length);\n for(var i = 0; i < _state.length; ++i) {\n _h[i] = _state[i].slice(0);\n }\n return md;\n };\n // start digest automatically for first time\n md.start();\n\n /**\n * Updates the digest with the given message input. The given input can\n * treated as raw input (no encoding will be applied) or an encoding of\n * 'utf8' maybe given to encode the input using UTF-8.\n *\n * @param msg the message input to update with.\n * @param encoding the encoding to use (default: 'raw', other: 'utf8').\n *\n * @return this digest object.\n */\n md.update = function(msg, encoding) {\n if(encoding === 'utf8') {\n msg = forge.util.encodeUtf8(msg);\n }\n\n // update message length\n var len = msg.length;\n md.messageLength += len;\n len = [(len / 0x100000000) >>> 0, len >>> 0];\n for(var i = md.fullMessageLength.length - 1; i >= 0; --i) {\n md.fullMessageLength[i] += len[1];\n len[1] = len[0] + ((md.fullMessageLength[i] / 0x100000000) >>> 0);\n md.fullMessageLength[i] = md.fullMessageLength[i] >>> 0;\n len[0] = ((len[1] / 0x100000000) >>> 0);\n }\n\n // add bytes to input buffer\n _input.putBytes(msg);\n\n // process bytes\n _update(_h, _w, _input);\n\n // compact input buffer every 2K or if empty\n if(_input.read > 2048 || _input.length() === 0) {\n _input.compact();\n }\n\n return md;\n };\n\n /**\n * Produces the digest.\n *\n * @return a byte buffer containing the digest value.\n */\n md.digest = function() {\n /* Note: Here we copy the remaining bytes in the input buffer and\n add the appropriate SHA-512 padding. Then we do the final update\n on a copy of the state so that if the user wants to get\n intermediate digests they can do so. */\n\n /* Determine the number of bytes that must be added to the message\n to ensure its length is congruent to 896 mod 1024. In other words,\n the data to be digested must be a multiple of 1024 bits (or 128 bytes).\n This data includes the message, some padding, and the length of the\n message. Since the length of the message will be encoded as 16 bytes (128\n bits), that means that the last segment of the data must have 112 bytes\n (896 bits) of message and padding. Therefore, the length of the message\n plus the padding must be congruent to 896 mod 1024 because\n 1024 - 128 = 896.\n\n In order to fill up the message length it must be filled with\n padding that begins with 1 bit followed by all 0 bits. Padding\n must *always* be present, so if the message length is already\n congruent to 896 mod 1024, then 1024 padding bits must be added. */\n\n var finalBlock = forge.util.createBuffer();\n finalBlock.putBytes(_input.bytes());\n\n // compute remaining size to be digested (include message length size)\n var remaining = (\n md.fullMessageLength[md.fullMessageLength.length - 1] +\n md.messageLengthSize);\n\n // add padding for overflow blockSize - overflow\n // _padding starts with 1 byte with first bit is set (byte value 128), then\n // there may be up to (blockSize - 1) other pad bytes\n var overflow = remaining & (md.blockLength - 1);\n finalBlock.putBytes(_padding.substr(0, md.blockLength - overflow));\n\n // serialize message length in bits in big-endian order; since length\n // is stored in bytes we multiply by 8 and add carry from next int\n var next, carry;\n var bits = md.fullMessageLength[0] * 8;\n for(var i = 0; i < md.fullMessageLength.length - 1; ++i) {\n next = md.fullMessageLength[i + 1] * 8;\n carry = (next / 0x100000000) >>> 0;\n bits += carry;\n finalBlock.putInt32(bits >>> 0);\n bits = next >>> 0;\n }\n finalBlock.putInt32(bits);\n\n var h = new Array(_h.length);\n for(var i = 0; i < _h.length; ++i) {\n h[i] = _h[i].slice(0);\n }\n _update(h, _w, finalBlock);\n var rval = forge.util.createBuffer();\n var hlen;\n if(algorithm === 'SHA-512') {\n hlen = h.length;\n } else if(algorithm === 'SHA-384') {\n hlen = h.length - 2;\n } else {\n hlen = h.length - 4;\n }\n for(var i = 0; i < hlen; ++i) {\n rval.putInt32(h[i][0]);\n if(i !== hlen - 1 || algorithm !== 'SHA-512/224') {\n rval.putInt32(h[i][1]);\n }\n }\n return rval;\n };\n\n return md;\n};\n\n// sha-512 padding bytes not initialized yet\nvar _padding = null;\nvar _initialized = false;\n\n// table of constants\nvar _k = null;\n\n// initial hash states\nvar _states = null;\n\n/**\n * Initializes the constant tables.\n */\nfunction _init() {\n // create padding\n _padding = String.fromCharCode(128);\n _padding += forge.util.fillString(String.fromCharCode(0x00), 128);\n\n // create K table for SHA-512\n _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 // initial hash states\n _states = {};\n _states['SHA-512'] = [\n [0x6a09e667, 0xf3bcc908],\n [0xbb67ae85, 0x84caa73b],\n [0x3c6ef372, 0xfe94f82b],\n [0xa54ff53a, 0x5f1d36f1],\n [0x510e527f, 0xade682d1],\n [0x9b05688c, 0x2b3e6c1f],\n [0x1f83d9ab, 0xfb41bd6b],\n [0x5be0cd19, 0x137e2179]\n ];\n _states['SHA-384'] = [\n [0xcbbb9d5d, 0xc1059ed8],\n [0x629a292a, 0x367cd507],\n [0x9159015a, 0x3070dd17],\n [0x152fecd8, 0xf70e5939],\n [0x67332667, 0xffc00b31],\n [0x8eb44a87, 0x68581511],\n [0xdb0c2e0d, 0x64f98fa7],\n [0x47b5481d, 0xbefa4fa4]\n ];\n _states['SHA-512/256'] = [\n [0x22312194, 0xFC2BF72C],\n [0x9F555FA3, 0xC84C64C2],\n [0x2393B86B, 0x6F53B151],\n [0x96387719, 0x5940EABD],\n [0x96283EE2, 0xA88EFFE3],\n [0xBE5E1E25, 0x53863992],\n [0x2B0199FC, 0x2C85B8AA],\n [0x0EB72DDC, 0x81C52CA2]\n ];\n _states['SHA-512/224'] = [\n [0x8C3D37C8, 0x19544DA2],\n [0x73E19966, 0x89DCD4D6],\n [0x1DFAB7AE, 0x32FF9C82],\n [0x679DD514, 0x582F9FCF],\n [0x0F6D2B69, 0x7BD44DA8],\n [0x77E36F73, 0x04C48942],\n [0x3F9D85A8, 0x6A1D36C8],\n [0x1112E6AD, 0x91D692A1]\n ];\n\n // now initialized\n _initialized = true;\n}\n\n/**\n * Updates a SHA-512 state with the given byte buffer.\n *\n * @param s the SHA-512 state to update.\n * @param w the array to use to store words.\n * @param bytes the byte buffer to update with.\n */\nfunction _update(s, w, bytes) {\n // consume 512 bit (128 byte) chunks\n var t1_hi, t1_lo;\n var t2_hi, t2_lo;\n var s0_hi, s0_lo;\n var s1_hi, s1_lo;\n var ch_hi, ch_lo;\n var maj_hi, maj_lo;\n var a_hi, a_lo;\n var b_hi, b_lo;\n var c_hi, c_lo;\n var d_hi, d_lo;\n var e_hi, e_lo;\n var f_hi, f_lo;\n var g_hi, g_lo;\n var h_hi, h_lo;\n var i, hi, lo, w2, w7, w15, w16;\n var len = bytes.length();\n while(len >= 128) {\n // the w array will be populated with sixteen 64-bit big-endian words\n // and then extended into 64 64-bit words according to SHA-512\n for(i = 0; i < 16; ++i) {\n w[i][0] = bytes.getInt32() >>> 0;\n w[i][1] = bytes.getInt32() >>> 0;\n }\n for(; i < 80; ++i) {\n // for word 2 words ago: ROTR 19(x) ^ ROTR 61(x) ^ SHR 6(x)\n w2 = w[i - 2];\n hi = w2[0];\n lo = w2[1];\n\n // high bits\n t1_hi = (\n ((hi >>> 19) | (lo << 13)) ^ // ROTR 19\n ((lo >>> 29) | (hi << 3)) ^ // ROTR 61/(swap + ROTR 29)\n (hi >>> 6)) >>> 0; // SHR 6\n // low bits\n t1_lo = (\n ((hi << 13) | (lo >>> 19)) ^ // ROTR 19\n ((lo << 3) | (hi >>> 29)) ^ // ROTR 61/(swap + ROTR 29)\n ((hi << 26) | (lo >>> 6))) >>> 0; // SHR 6\n\n // for word 15 words ago: ROTR 1(x) ^ ROTR 8(x) ^ SHR 7(x)\n w15 = w[i - 15];\n hi = w15[0];\n lo = w15[1];\n\n // high bits\n t2_hi = (\n ((hi >>> 1) | (lo << 31)) ^ // ROTR 1\n ((hi >>> 8) | (lo << 24)) ^ // ROTR 8\n (hi >>> 7)) >>> 0; // SHR 7\n // low bits\n t2_lo = (\n ((hi << 31) | (lo >>> 1)) ^ // ROTR 1\n ((hi << 24) | (lo >>> 8)) ^ // ROTR 8\n ((hi << 25) | (lo >>> 7))) >>> 0; // SHR 7\n\n // sum(t1, word 7 ago, t2, word 16 ago) modulo 2^64 (carry lo overflow)\n w7 = w[i - 7];\n w16 = w[i - 16];\n lo = (t1_lo + w7[1] + t2_lo + w16[1]);\n w[i][0] = (t1_hi + w7[0] + t2_hi + w16[0] +\n ((lo / 0x100000000) >>> 0)) >>> 0;\n w[i][1] = lo >>> 0;\n }\n\n // initialize hash value for this chunk\n a_hi = s[0][0];\n a_lo = s[0][1];\n b_hi = s[1][0];\n b_lo = s[1][1];\n c_hi = s[2][0];\n c_lo = s[2][1];\n d_hi = s[3][0];\n d_lo = s[3][1];\n e_hi = s[4][0];\n e_lo = s[4][1];\n f_hi = s[5][0];\n f_lo = s[5][1];\n g_hi = s[6][0];\n g_lo = s[6][1];\n h_hi = s[7][0];\n h_lo = s[7][1];\n\n // round function\n for(i = 0; i < 80; ++i) {\n // Sum1(e) = ROTR 14(e) ^ ROTR 18(e) ^ ROTR 41(e)\n s1_hi = (\n ((e_hi >>> 14) | (e_lo << 18)) ^ // ROTR 14\n ((e_hi >>> 18) | (e_lo << 14)) ^ // ROTR 18\n ((e_lo >>> 9) | (e_hi << 23))) >>> 0; // ROTR 41/(swap + ROTR 9)\n s1_lo = (\n ((e_hi << 18) | (e_lo >>> 14)) ^ // ROTR 14\n ((e_hi << 14) | (e_lo >>> 18)) ^ // ROTR 18\n ((e_lo << 23) | (e_hi >>> 9))) >>> 0; // ROTR 41/(swap + ROTR 9)\n\n // Ch(e, f, g) (optimized the same way as SHA-1)\n ch_hi = (g_hi ^ (e_hi & (f_hi ^ g_hi))) >>> 0;\n ch_lo = (g_lo ^ (e_lo & (f_lo ^ g_lo))) >>> 0;\n\n // Sum0(a) = ROTR 28(a) ^ ROTR 34(a) ^ ROTR 39(a)\n s0_hi = (\n ((a_hi >>> 28) | (a_lo << 4)) ^ // ROTR 28\n ((a_lo >>> 2) | (a_hi << 30)) ^ // ROTR 34/(swap + ROTR 2)\n ((a_lo >>> 7) | (a_hi << 25))) >>> 0; // ROTR 39/(swap + ROTR 7)\n s0_lo = (\n ((a_hi << 4) | (a_lo >>> 28)) ^ // ROTR 28\n ((a_lo << 30) | (a_hi >>> 2)) ^ // ROTR 34/(swap + ROTR 2)\n ((a_lo << 25) | (a_hi >>> 7))) >>> 0; // ROTR 39/(swap + ROTR 7)\n\n // Maj(a, b, c) (optimized the same way as SHA-1)\n maj_hi = ((a_hi & b_hi) | (c_hi & (a_hi ^ b_hi))) >>> 0;\n maj_lo = ((a_lo & b_lo) | (c_lo & (a_lo ^ b_lo))) >>> 0;\n\n // main algorithm\n // t1 = (h + s1 + ch + _k[i] + _w[i]) modulo 2^64 (carry lo overflow)\n lo = (h_lo + s1_lo + ch_lo + _k[i][1] + w[i][1]);\n t1_hi = (h_hi + s1_hi + ch_hi + _k[i][0] + w[i][0] +\n ((lo / 0x100000000) >>> 0)) >>> 0;\n t1_lo = lo >>> 0;\n\n // t2 = s0 + maj modulo 2^64 (carry lo overflow)\n lo = s0_lo + maj_lo;\n t2_hi = (s0_hi + maj_hi + ((lo / 0x100000000) >>> 0)) >>> 0;\n t2_lo = lo >>> 0;\n\n h_hi = g_hi;\n h_lo = g_lo;\n\n g_hi = f_hi;\n g_lo = f_lo;\n\n f_hi = e_hi;\n f_lo = e_lo;\n\n // e = (d + t1) modulo 2^64 (carry lo overflow)\n lo = d_lo + t1_lo;\n e_hi = (d_hi + t1_hi + ((lo / 0x100000000) >>> 0)) >>> 0;\n e_lo = lo >>> 0;\n\n d_hi = c_hi;\n d_lo = c_lo;\n\n c_hi = b_hi;\n c_lo = b_lo;\n\n b_hi = a_hi;\n b_lo = a_lo;\n\n // a = (t1 + t2) modulo 2^64 (carry lo overflow)\n lo = t1_lo + t2_lo;\n a_hi = (t1_hi + t2_hi + ((lo / 0x100000000) >>> 0)) >>> 0;\n a_lo = lo >>> 0;\n }\n\n // update hash state (additional modulo 2^64)\n lo = s[0][1] + a_lo;\n s[0][0] = (s[0][0] + a_hi + ((lo / 0x100000000) >>> 0)) >>> 0;\n s[0][1] = lo >>> 0;\n\n lo = s[1][1] + b_lo;\n s[1][0] = (s[1][0] + b_hi + ((lo / 0x100000000) >>> 0)) >>> 0;\n s[1][1] = lo >>> 0;\n\n lo = s[2][1] + c_lo;\n s[2][0] = (s[2][0] + c_hi + ((lo / 0x100000000) >>> 0)) >>> 0;\n s[2][1] = lo >>> 0;\n\n lo = s[3][1] + d_lo;\n s[3][0] = (s[3][0] + d_hi + ((lo / 0x100000000) >>> 0)) >>> 0;\n s[3][1] = lo >>> 0;\n\n lo = s[4][1] + e_lo;\n s[4][0] = (s[4][0] + e_hi + ((lo / 0x100000000) >>> 0)) >>> 0;\n s[4][1] = lo >>> 0;\n\n lo = s[5][1] + f_lo;\n s[5][0] = (s[5][0] + f_hi + ((lo / 0x100000000) >>> 0)) >>> 0;\n s[5][1] = lo >>> 0;\n\n lo = s[6][1] + g_lo;\n s[6][0] = (s[6][0] + g_hi + ((lo / 0x100000000) >>> 0)) >>> 0;\n s[6][1] = lo >>> 0;\n\n lo = s[7][1] + h_lo;\n s[7][0] = (s[7][0] + h_hi + ((lo / 0x100000000) >>> 0)) >>> 0;\n s[7][1] = lo >>> 0;\n\n len -= 128;\n }\n}\n","/**\n * Copyright (c) 2019 Digital Bazaar, Inc.\n */\n\nvar forge = require('./forge');\nrequire('./asn1');\nvar asn1 = forge.asn1;\n\nexports.privateKeyValidator = {\n // PrivateKeyInfo\n name: 'PrivateKeyInfo',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n // Version (INTEGER)\n name: 'PrivateKeyInfo.version',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.INTEGER,\n constructed: false,\n capture: 'privateKeyVersion'\n }, {\n // privateKeyAlgorithm\n name: 'PrivateKeyInfo.privateKeyAlgorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'AlgorithmIdentifier.algorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'privateKeyOid'\n }]\n }, {\n // PrivateKey\n name: 'PrivateKeyInfo',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OCTETSTRING,\n constructed: false,\n capture: 'privateKey'\n }]\n};\n\nexports.publicKeyValidator = {\n name: 'SubjectPublicKeyInfo',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n captureAsn1: 'subjectPublicKeyInfo',\n value: [{\n name: 'SubjectPublicKeyInfo.AlgorithmIdentifier',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n value: [{\n name: 'AlgorithmIdentifier.algorithm',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.OID,\n constructed: false,\n capture: 'publicKeyOid'\n }]\n },\n // capture group for ed25519PublicKey\n {\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.BITSTRING,\n constructed: false,\n composed: true,\n captureBitStringValue: 'ed25519PublicKey'\n }\n // FIXME: this is capture group for rsaPublicKey, use it in this API or\n // discard?\n /* {\n // subjectPublicKey\n name: 'SubjectPublicKeyInfo.subjectPublicKey',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.BITSTRING,\n constructed: false,\n value: [{\n // RSAPublicKey\n name: 'SubjectPublicKeyInfo.subjectPublicKey.RSAPublicKey',\n tagClass: asn1.Class.UNIVERSAL,\n type: asn1.Type.SEQUENCE,\n constructed: true,\n optional: true,\n captureAsn1: 'rsaPublicKey'\n }]\n } */\n ]\n};\n","/**\n * JavaScript implementation of Ed25519.\n *\n * Copyright (c) 2017-2019 Digital Bazaar, Inc.\n *\n * This implementation is based on the most excellent TweetNaCl which is\n * in the public domain. Many thanks to its contributors:\n *\n * https://github.com/dchest/tweetnacl-js\n */\nvar forge = require('./forge');\nrequire('./jsbn');\nrequire('./random');\nrequire('./sha512');\nrequire('./util');\nvar asn1Validator = require('./asn1-validator');\nvar publicKeyValidator = asn1Validator.publicKeyValidator;\nvar privateKeyValidator = asn1Validator.privateKeyValidator;\n\nif(typeof BigInteger === 'undefined') {\n var BigInteger = forge.jsbn.BigInteger;\n}\n\nvar ByteBuffer = forge.util.ByteBuffer;\nvar NativeBuffer = typeof Buffer === 'undefined' ? Uint8Array : Buffer;\n\n/*\n * Ed25519 algorithms, see RFC 8032:\n * https://tools.ietf.org/html/rfc8032\n */\nforge.pki = forge.pki || {};\nmodule.exports = forge.pki.ed25519 = forge.ed25519 = forge.ed25519 || {};\nvar ed25519 = forge.ed25519;\n\ned25519.constants = {};\ned25519.constants.PUBLIC_KEY_BYTE_LENGTH = 32;\ned25519.constants.PRIVATE_KEY_BYTE_LENGTH = 64;\ned25519.constants.SEED_BYTE_LENGTH = 32;\ned25519.constants.SIGN_BYTE_LENGTH = 64;\ned25519.constants.HASH_BYTE_LENGTH = 64;\n\ned25519.generateKeyPair = function(options) {\n options = options || {};\n var seed = options.seed;\n if(seed === undefined) {\n // generate seed\n seed = forge.random.getBytesSync(ed25519.constants.SEED_BYTE_LENGTH);\n } else if(typeof seed === 'string') {\n if(seed.length !== ed25519.constants.SEED_BYTE_LENGTH) {\n throw new TypeError(\n '\"seed\" must be ' + ed25519.constants.SEED_BYTE_LENGTH +\n ' bytes in length.');\n }\n } else if(!(seed instanceof Uint8Array)) {\n throw new TypeError(\n '\"seed\" must be a node.js Buffer, Uint8Array, or a binary string.');\n }\n\n seed = messageToNativeBuffer({message: seed, encoding: 'binary'});\n\n var pk = new NativeBuffer(ed25519.constants.PUBLIC_KEY_BYTE_LENGTH);\n var sk = new NativeBuffer(ed25519.constants.PRIVATE_KEY_BYTE_LENGTH);\n for(var i = 0; i < 32; ++i) {\n sk[i] = seed[i];\n }\n crypto_sign_keypair(pk, sk);\n return {publicKey: pk, privateKey: sk};\n};\n\n/**\n * Converts a private key from a RFC8410 ASN.1 encoding.\n *\n * @param obj - The asn1 representation of a private key.\n *\n * @returns {Object} keyInfo - The key information.\n * @returns {Buffer|Uint8Array} keyInfo.privateKeyBytes - 32 private key bytes.\n */\ned25519.privateKeyFromAsn1 = function(obj) {\n var capture = {};\n var errors = [];\n var valid = forge.asn1.validate(obj, privateKeyValidator, capture, errors);\n if(!valid) {\n var error = new Error('Invalid Key.');\n error.errors = errors;\n throw error;\n }\n var oid = forge.asn1.derToOid(capture.privateKeyOid);\n var ed25519Oid = forge.oids.EdDSA25519;\n if(oid !== ed25519Oid) {\n throw new Error('Invalid OID \"' + oid + '\"; OID must be \"' +\n ed25519Oid + '\".');\n }\n var privateKey = capture.privateKey;\n // manually extract the private key bytes from nested octet string, see FIXME:\n // https://github.com/digitalbazaar/forge/blob/master/lib/asn1.js#L542\n var privateKeyBytes = messageToNativeBuffer({\n message: forge.asn1.fromDer(privateKey).value,\n encoding: 'binary'\n });\n // TODO: RFC8410 specifies a format for encoding the public key bytes along\n // with the private key bytes. `publicKeyBytes` can be returned in the\n // future. https://tools.ietf.org/html/rfc8410#section-10.3\n return {privateKeyBytes: privateKeyBytes};\n};\n\n/**\n * Converts a public key from a RFC8410 ASN.1 encoding.\n *\n * @param obj - The asn1 representation of a public key.\n *\n * @return {Buffer|Uint8Array} - 32 public key bytes.\n */\ned25519.publicKeyFromAsn1 = function(obj) {\n // get SubjectPublicKeyInfo\n var capture = {};\n var errors = [];\n var valid = forge.asn1.validate(obj, publicKeyValidator, capture, errors);\n if(!valid) {\n var error = new Error('Invalid Key.');\n error.errors = errors;\n throw error;\n }\n var oid = forge.asn1.derToOid(capture.publicKeyOid);\n var ed25519Oid = forge.oids.EdDSA25519;\n if(oid !== ed25519Oid) {\n throw new Error('Invalid OID \"' + oid + '\"; OID must be \"' +\n ed25519Oid + '\".');\n }\n var publicKeyBytes = capture.ed25519PublicKey;\n if(publicKeyBytes.length !== ed25519.constants.PUBLIC_KEY_BYTE_LENGTH) {\n throw new Error('Key length is invalid.');\n }\n return messageToNativeBuffer({\n message: publicKeyBytes,\n encoding: 'binary'\n });\n};\n\ned25519.publicKeyFromPrivateKey = function(options) {\n options = options || {};\n var privateKey = messageToNativeBuffer({\n message: options.privateKey, encoding: 'binary'\n });\n if(privateKey.length !== ed25519.constants.PRIVATE_KEY_BYTE_LENGTH) {\n throw new TypeError(\n '\"options.privateKey\" must have a byte length of ' +\n ed25519.constants.PRIVATE_KEY_BYTE_LENGTH);\n }\n\n var pk = new NativeBuffer(ed25519.constants.PUBLIC_KEY_BYTE_LENGTH);\n for(var i = 0; i < pk.length; ++i) {\n pk[i] = privateKey[32 + i];\n }\n return pk;\n};\n\ned25519.sign = function(options) {\n options = options || {};\n var msg = messageToNativeBuffer(options);\n var privateKey = messageToNativeBuffer({\n message: options.privateKey,\n encoding: 'binary'\n });\n if(privateKey.length === ed25519.constants.SEED_BYTE_LENGTH) {\n var keyPair = ed25519.generateKeyPair({seed: privateKey});\n privateKey = keyPair.privateKey;\n } else if(privateKey.length !== ed25519.constants.PRIVATE_KEY_BYTE_LENGTH) {\n throw new TypeError(\n '\"options.privateKey\" must have a byte length of ' +\n ed25519.constants.SEED_BYTE_LENGTH + ' or ' +\n ed25519.constants.PRIVATE_KEY_BYTE_LENGTH);\n }\n\n var signedMsg = new NativeBuffer(\n ed25519.constants.SIGN_BYTE_LENGTH + msg.length);\n crypto_sign(signedMsg, msg, msg.length, privateKey);\n\n var sig = new NativeBuffer(ed25519.constants.SIGN_BYTE_LENGTH);\n for(var i = 0; i < sig.length; ++i) {\n sig[i] = signedMsg[i];\n }\n return sig;\n};\n\ned25519.verify = function(options) {\n options = options || {};\n var msg = messageToNativeBuffer(options);\n if(options.signature === undefined) {\n throw new TypeError(\n '\"options.signature\" must be a node.js Buffer, a Uint8Array, a forge ' +\n 'ByteBuffer, or a binary string.');\n }\n var sig = messageToNativeBuffer({\n message: options.signature,\n encoding: 'binary'\n });\n if(sig.length !== ed25519.constants.SIGN_BYTE_LENGTH) {\n throw new TypeError(\n '\"options.signature\" must have a byte length of ' +\n ed25519.constants.SIGN_BYTE_LENGTH);\n }\n var publicKey = messageToNativeBuffer({\n message: options.publicKey,\n encoding: 'binary'\n });\n if(publicKey.length !== ed25519.constants.PUBLIC_KEY_BYTE_LENGTH) {\n throw new TypeError(\n '\"options.publicKey\" must have a byte length of ' +\n ed25519.constants.PUBLIC_KEY_BYTE_LENGTH);\n }\n\n var sm = new NativeBuffer(ed25519.constants.SIGN_BYTE_LENGTH + msg.length);\n var m = new NativeBuffer(ed25519.constants.SIGN_BYTE_LENGTH + msg.length);\n var i;\n for(i = 0; i < ed25519.constants.SIGN_BYTE_LENGTH; ++i) {\n sm[i] = sig[i];\n }\n for(i = 0; i < msg.length; ++i) {\n sm[i + ed25519.constants.SIGN_BYTE_LENGTH] = msg[i];\n }\n return (crypto_sign_open(m, sm, sm.length, publicKey) >= 0);\n};\n\nfunction messageToNativeBuffer(options) {\n var message = options.message;\n if(message instanceof Uint8Array || message instanceof NativeBuffer) {\n return message;\n }\n\n var encoding = options.encoding;\n if(message === undefined) {\n if(options.md) {\n // TODO: more rigorous validation that `md` is a MessageDigest\n message = options.md.digest().getBytes();\n encoding = 'binary';\n } else {\n throw new TypeError('\"options.message\" or \"options.md\" not specified.');\n }\n }\n\n if(typeof message === 'string' && !encoding) {\n throw new TypeError('\"options.encoding\" must be \"binary\" or \"utf8\".');\n }\n\n if(typeof message === 'string') {\n if(typeof Buffer !== 'undefined') {\n return Buffer.from(message, encoding);\n }\n message = new ByteBuffer(message, encoding);\n } else if(!(message instanceof ByteBuffer)) {\n throw new TypeError(\n '\"options.message\" must be a node.js Buffer, a Uint8Array, a forge ' +\n 'ByteBuffer, or a string with \"options.encoding\" specifying its ' +\n 'encoding.');\n }\n\n // convert to native buffer\n var buffer = new NativeBuffer(message.length());\n for(var i = 0; i < buffer.length; ++i) {\n buffer[i] = message.at(i);\n }\n return buffer;\n}\n\nvar gf0 = gf();\nvar gf1 = gf([1]);\nvar D = gf([\n 0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070,\n 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203]);\nvar D2 = gf([\n 0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0,\n 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406]);\nvar X = gf([\n 0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c,\n 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169]);\nvar Y = gf([\n 0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666,\n 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666]);\nvar L = new Float64Array([\n 0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58,\n 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10]);\nvar I = gf([\n 0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43,\n 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83]);\n\n// TODO: update forge buffer implementation to use `Buffer` or `Uint8Array`,\n// whichever is available, to improve performance\nfunction sha512(msg, msgLen) {\n // Note: `out` and `msg` are NativeBuffer\n var md = forge.md.sha512.create();\n var buffer = new ByteBuffer(msg);\n md.update(buffer.getBytes(msgLen), 'binary');\n var hash = md.digest().getBytes();\n if(typeof Buffer !== 'undefined') {\n return Buffer.from(hash, 'binary');\n }\n var out = new NativeBuffer(ed25519.constants.HASH_BYTE_LENGTH);\n for(var i = 0; i < 64; ++i) {\n out[i] = hash.charCodeAt(i);\n }\n return out;\n}\n\nfunction crypto_sign_keypair(pk, sk) {\n var p = [gf(), gf(), gf(), gf()];\n var i;\n\n var d = sha512(sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n scalarbase(p, d);\n pack(pk, p);\n\n for(i = 0; i < 32; ++i) {\n sk[i + 32] = pk[i];\n }\n return 0;\n}\n\n// Note: difference from C - smlen returned, not passed as argument.\nfunction crypto_sign(sm, m, n, sk) {\n var i, j, x = new Float64Array(64);\n var p = [gf(), gf(), gf(), gf()];\n\n var d = sha512(sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n var smlen = n + 64;\n for(i = 0; i < n; ++i) {\n sm[64 + i] = m[i];\n }\n for(i = 0; i < 32; ++i) {\n sm[32 + i] = d[32 + i];\n }\n\n var r = sha512(sm.subarray(32), n + 32);\n reduce(r);\n scalarbase(p, r);\n pack(sm, p);\n\n for(i = 32; i < 64; ++i) {\n sm[i] = sk[i];\n }\n var h = sha512(sm, n + 64);\n reduce(h);\n\n for(i = 32; i < 64; ++i) {\n x[i] = 0;\n }\n for(i = 0; i < 32; ++i) {\n x[i] = r[i];\n }\n for(i = 0; i < 32; ++i) {\n for(j = 0; j < 32; j++) {\n x[i + j] += h[i] * d[j];\n }\n }\n\n modL(sm.subarray(32), x);\n return smlen;\n}\n\nfunction crypto_sign_open(m, sm, n, pk) {\n var i, mlen;\n var t = new NativeBuffer(32);\n var p = [gf(), gf(), gf(), gf()],\n q = [gf(), gf(), gf(), gf()];\n\n mlen = -1;\n if(n < 64) {\n return -1;\n }\n\n if(unpackneg(q, pk)) {\n return -1;\n }\n\n for(i = 0; i < n; ++i) {\n m[i] = sm[i];\n }\n for(i = 0; i < 32; ++i) {\n m[i + 32] = pk[i];\n }\n var h = sha512(m, n);\n reduce(h);\n scalarmult(p, q, h);\n\n scalarbase(q, sm.subarray(32));\n add(p, q);\n pack(t, p);\n\n n -= 64;\n if(crypto_verify_32(sm, 0, t, 0)) {\n for(i = 0; i < n; ++i) {\n m[i] = 0;\n }\n return -1;\n }\n\n for(i = 0; i < n; ++i) {\n m[i] = sm[i + 64];\n }\n mlen = n;\n return mlen;\n}\n\nfunction modL(r, x) {\n var carry, i, j, k;\n for(i = 63; i >= 32; --i) {\n carry = 0;\n for(j = i - 32, k = i - 12; j < k; ++j) {\n x[j] += carry - 16 * x[i] * L[j - (i - 32)];\n carry = (x[j] + 128) >> 8;\n x[j] -= carry * 256;\n }\n x[j] += carry;\n x[i] = 0;\n }\n carry = 0;\n for(j = 0; j < 32; ++j) {\n x[j] += carry - (x[31] >> 4) * L[j];\n carry = x[j] >> 8;\n x[j] &= 255;\n }\n for(j = 0; j < 32; ++j) {\n x[j] -= carry * L[j];\n }\n for(i = 0; i < 32; ++i) {\n x[i + 1] += x[i] >> 8;\n r[i] = x[i] & 255;\n }\n}\n\nfunction reduce(r) {\n var x = new Float64Array(64);\n for(var i = 0; i < 64; ++i) {\n x[i] = r[i];\n r[i] = 0;\n }\n modL(r, x);\n}\n\nfunction add(p, q) {\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf(),\n g = gf(), h = gf(), t = gf();\n\n Z(a, p[1], p[0]);\n Z(t, q[1], q[0]);\n M(a, a, t);\n A(b, p[0], p[1]);\n A(t, q[0], q[1]);\n M(b, b, t);\n M(c, p[3], q[3]);\n M(c, c, D2);\n M(d, p[2], q[2]);\n A(d, d, d);\n Z(e, b, a);\n Z(f, d, c);\n A(g, d, c);\n A(h, b, a);\n\n M(p[0], e, f);\n M(p[1], h, g);\n M(p[2], g, f);\n M(p[3], e, h);\n}\n\nfunction cswap(p, q, b) {\n for(var i = 0; i < 4; ++i) {\n sel25519(p[i], q[i], b);\n }\n}\n\nfunction pack(r, p) {\n var tx = gf(), ty = gf(), zi = gf();\n inv25519(zi, p[2]);\n M(tx, p[0], zi);\n M(ty, p[1], zi);\n pack25519(r, ty);\n r[31] ^= par25519(tx) << 7;\n}\n\nfunction pack25519(o, n) {\n var i, j, b;\n var m = gf(), t = gf();\n for(i = 0; i < 16; ++i) {\n t[i] = n[i];\n }\n car25519(t);\n car25519(t);\n car25519(t);\n for(j = 0; j < 2; ++j) {\n m[0] = t[0] - 0xffed;\n for(i = 1; i < 15; ++i) {\n m[i] = t[i] - 0xffff - ((m[i - 1] >> 16) & 1);\n m[i-1] &= 0xffff;\n }\n m[15] = t[15] - 0x7fff - ((m[14] >> 16) & 1);\n b = (m[15] >> 16) & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1 - b);\n }\n for (i = 0; i < 16; i++) {\n o[2 * i] = t[i] & 0xff;\n o[2 * i + 1] = t[i] >> 8;\n }\n}\n\nfunction unpackneg(r, p) {\n var t = gf(), chk = gf(), num = gf(),\n den = gf(), den2 = gf(), den4 = gf(),\n den6 = gf();\n\n set25519(r[2], gf1);\n unpack25519(r[1], p);\n S(num, r[1]);\n M(den, num, D);\n Z(num, num, r[2]);\n A(den, r[2], den);\n\n S(den2, den);\n S(den4, den2);\n M(den6, den4, den2);\n M(t, den6, num);\n M(t, t, den);\n\n pow2523(t, t);\n M(t, t, num);\n M(t, t, den);\n M(t, t, den);\n M(r[0], t, den);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if(neq25519(chk, num)) {\n M(r[0], r[0], I);\n }\n\n S(chk, r[0]);\n M(chk, chk, den);\n if(neq25519(chk, num)) {\n return -1;\n }\n\n if(par25519(r[0]) === (p[31] >> 7)) {\n Z(r[0], gf0, r[0]);\n }\n\n M(r[3], r[0], r[1]);\n return 0;\n}\n\nfunction unpack25519(o, n) {\n var i;\n for(i = 0; i < 16; ++i) {\n o[i] = n[2 * i] + (n[2 * i + 1] << 8);\n }\n o[15] &= 0x7fff;\n}\n\nfunction pow2523(o, i) {\n var c = gf();\n var a;\n for(a = 0; a < 16; ++a) {\n c[a] = i[a];\n }\n for(a = 250; a >= 0; --a) {\n S(c, c);\n if(a !== 1) {\n M(c, c, i);\n }\n }\n for(a = 0; a < 16; ++a) {\n o[a] = c[a];\n }\n}\n\nfunction neq25519(a, b) {\n var c = new NativeBuffer(32);\n var d = new NativeBuffer(32);\n pack25519(c, a);\n pack25519(d, b);\n return crypto_verify_32(c, 0, d, 0);\n}\n\nfunction crypto_verify_32(x, xi, y, yi) {\n return vn(x, xi, y, yi, 32);\n}\n\nfunction vn(x, xi, y, yi, n) {\n var i, d = 0;\n for(i = 0; i < n; ++i) {\n d |= x[xi + i] ^ y[yi + i];\n }\n return (1 & ((d - 1) >>> 8)) - 1;\n}\n\nfunction par25519(a) {\n var d = new NativeBuffer(32);\n pack25519(d, a);\n return d[0] & 1;\n}\n\nfunction scalarmult(p, q, s) {\n var b, i;\n set25519(p[0], gf0);\n set25519(p[1], gf1);\n set25519(p[2], gf1);\n set25519(p[3], gf0);\n for(i = 255; i >= 0; --i) {\n b = (s[(i / 8)|0] >> (i & 7)) & 1;\n cswap(p, q, b);\n add(q, p);\n add(p, p);\n cswap(p, q, b);\n }\n}\n\nfunction scalarbase(p, s) {\n var q = [gf(), gf(), gf(), gf()];\n set25519(q[0], X);\n set25519(q[1], Y);\n set25519(q[2], gf1);\n M(q[3], X, Y);\n scalarmult(p, q, s);\n}\n\nfunction set25519(r, a) {\n var i;\n for(i = 0; i < 16; i++) {\n r[i] = a[i] | 0;\n }\n}\n\nfunction inv25519(o, i) {\n var c = gf();\n var a;\n for(a = 0; a < 16; ++a) {\n c[a] = i[a];\n }\n for(a = 253; a >= 0; --a) {\n S(c, c);\n if(a !== 2 && a !== 4) {\n M(c, c, i);\n }\n }\n for(a = 0; a < 16; ++a) {\n o[a] = c[a];\n }\n}\n\nfunction car25519(o) {\n var i, v, c = 1;\n for(i = 0; i < 16; ++i) {\n v = o[i] + c + 65535;\n c = Math.floor(v / 65536);\n o[i] = v - c * 65536;\n }\n o[0] += c - 1 + 37 * (c - 1);\n}\n\nfunction sel25519(p, q, b) {\n var t, c = ~(b - 1);\n for(var i = 0; i < 16; ++i) {\n t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n}\n\nfunction gf(init) {\n var i, r = new Float64Array(16);\n if(init) {\n for(i = 0; i < init.length; ++i) {\n r[i] = init[i];\n }\n }\n return r;\n}\n\nfunction A(o, a, b) {\n for(var i = 0; i < 16; ++i) {\n o[i] = a[i] + b[i];\n }\n}\n\nfunction Z(o, a, b) {\n for(var i = 0; i < 16; ++i) {\n o[i] = a[i] - b[i];\n }\n}\n\nfunction S(o, a) {\n M(o, a, a);\n}\n\nfunction M(o, a, b) {\n var v, c,\n t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0,\n t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0,\n t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0,\n t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0,\n b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3],\n b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7],\n b8 = b[8],\n b9 = b[9],\n b10 = b[10],\n b11 = b[11],\n b12 = b[12],\n b13 = b[13],\n b14 = b[14],\n b15 = b[15];\n\n v = a[0];\n t0 += v * b0;\n t1 += v * b1;\n t2 += v * b2;\n t3 += v * b3;\n t4 += v * b4;\n t5 += v * b5;\n t6 += v * b6;\n t7 += v * b7;\n t8 += v * b8;\n t9 += v * b9;\n t10 += v * b10;\n t11 += v * b11;\n t12 += v * b12;\n t13 += v * b13;\n t14 += v * b14;\n t15 += v * b15;\n v = a[1];\n t1 += v * b0;\n t2 += v * b1;\n t3 += v * b2;\n t4 += v * b3;\n t5 += v * b4;\n t6 += v * b5;\n t7 += v * b6;\n t8 += v * b7;\n t9 += v * b8;\n t10 += v * b9;\n t11 += v * b10;\n t12 += v * b11;\n t13 += v * b12;\n t14 += v * b13;\n t15 += v * b14;\n t16 += v * b15;\n v = a[2];\n t2 += v * b0;\n t3 += v * b1;\n t4 += v * b2;\n t5 += v * b3;\n t6 += v * b4;\n t7 += v * b5;\n t8 += v * b6;\n t9 += v * b7;\n t10 += v * b8;\n t11 += v * b9;\n t12 += v * b10;\n t13 += v * b11;\n t14 += v * b12;\n t15 += v * b13;\n t16 += v * b14;\n t17 += v * b15;\n v = a[3];\n t3 += v * b0;\n t4 += v * b1;\n t5 += v * b2;\n t6 += v * b3;\n t7 += v * b4;\n t8 += v * b5;\n t9 += v * b6;\n t10 += v * b7;\n t11 += v * b8;\n t12 += v * b9;\n t13 += v * b10;\n t14 += v * b11;\n t15 += v * b12;\n t16 += v * b13;\n t17 += v * b14;\n t18 += v * b15;\n v = a[4];\n t4 += v * b0;\n t5 += v * b1;\n t6 += v * b2;\n t7 += v * b3;\n t8 += v * b4;\n t9 += v * b5;\n t10 += v * b6;\n t11 += v * b7;\n t12 += v * b8;\n t13 += v * b9;\n t14 += v * b10;\n t15 += v * b11;\n t16 += v * b12;\n t17 += v * b13;\n t18 += v * b14;\n t19 += v * b15;\n v = a[5];\n t5 += v * b0;\n t6 += v * b1;\n t7 += v * b2;\n t8 += v * b3;\n t9 += v * b4;\n t10 += v * b5;\n t11 += v * b6;\n t12 += v * b7;\n t13 += v * b8;\n t14 += v * b9;\n t15 += v * b10;\n t16 += v * b11;\n t17 += v * b12;\n t18 += v * b13;\n t19 += v * b14;\n t20 += v * b15;\n v = a[6];\n t6 += v * b0;\n t7 += v * b1;\n t8 += v * b2;\n t9 += v * b3;\n t10 += v * b4;\n t11 += v * b5;\n t12 += v * b6;\n t13 += v * b7;\n t14 += v * b8;\n t15 += v * b9;\n t16 += v * b10;\n t17 += v * b11;\n t18 += v * b12;\n t19 += v * b13;\n t20 += v * b14;\n t21 += v * b15;\n v = a[7];\n t7 += v * b0;\n t8 += v * b1;\n t9 += v * b2;\n t10 += v * b3;\n t11 += v * b4;\n t12 += v * b5;\n t13 += v * b6;\n t14 += v * b7;\n t15 += v * b8;\n t16 += v * b9;\n t17 += v * b10;\n t18 += v * b11;\n t19 += v * b12;\n t20 += v * b13;\n t21 += v * b14;\n t22 += v * b15;\n v = a[8];\n t8 += v * b0;\n t9 += v * b1;\n t10 += v * b2;\n t11 += v * b3;\n t12 += v * b4;\n t13 += v * b5;\n t14 += v * b6;\n t15 += v * b7;\n t16 += v * b8;\n t17 += v * b9;\n t18 += v * b10;\n t19 += v * b11;\n t20 += v * b12;\n t21 += v * b13;\n t22 += v * b14;\n t23 += v * b15;\n v = a[9];\n t9 += v * b0;\n t10 += v * b1;\n t11 += v * b2;\n t12 += v * b3;\n t13 += v * b4;\n t14 += v * b5;\n t15 += v * b6;\n t16 += v * b7;\n t17 += v * b8;\n t18 += v * b9;\n t19 += v * b10;\n t20 += v * b11;\n t21 += v * b12;\n t22 += v * b13;\n t23 += v * b14;\n t24 += v * b15;\n v = a[10];\n t10 += v * b0;\n t11 += v * b1;\n t12 += v * b2;\n t13 += v * b3;\n t14 += v * b4;\n t15 += v * b5;\n t16 += v * b6;\n t17 += v * b7;\n t18 += v * b8;\n t19 += v * b9;\n t20 += v * b10;\n t21 += v * b11;\n t22 += v * b12;\n t23 += v * b13;\n t24 += v * b14;\n t25 += v * b15;\n v = a[11];\n t11 += v * b0;\n t12 += v * b1;\n t13 += v * b2;\n t14 += v * b3;\n t15 += v * b4;\n t16 += v * b5;\n t17 += v * b6;\n t18 += v * b7;\n t19 += v * b8;\n t20 += v * b9;\n t21 += v * b10;\n t22 += v * b11;\n t23 += v * b12;\n t24 += v * b13;\n t25 += v * b14;\n t26 += v * b15;\n v = a[12];\n t12 += v * b0;\n t13 += v * b1;\n t14 += v * b2;\n t15 += v * b3;\n t16 += v * b4;\n t17 += v * b5;\n t18 += v * b6;\n t19 += v * b7;\n t20 += v * b8;\n t21 += v * b9;\n t22 += v * b10;\n t23 += v * b11;\n t24 += v * b12;\n t25 += v * b13;\n t26 += v * b14;\n t27 += v * b15;\n v = a[13];\n t13 += v * b0;\n t14 += v * b1;\n t15 += v * b2;\n t16 += v * b3;\n t17 += v * b4;\n t18 += v * b5;\n t19 += v * b6;\n t20 += v * b7;\n t21 += v * b8;\n t22 += v * b9;\n t23 += v * b10;\n t24 += v * b11;\n t25 += v * b12;\n t26 += v * b13;\n t27 += v * b14;\n t28 += v * b15;\n v = a[14];\n t14 += v * b0;\n t15 += v * b1;\n t16 += v * b2;\n t17 += v * b3;\n t18 += v * b4;\n t19 += v * b5;\n t20 += v * b6;\n t21 += v * b7;\n t22 += v * b8;\n t23 += v * b9;\n t24 += v * b10;\n t25 += v * b11;\n t26 += v * b12;\n t27 += v * b13;\n t28 += v * b14;\n t29 += v * b15;\n v = a[15];\n t15 += v * b0;\n t16 += v * b1;\n t17 += v * b2;\n t18 += v * b3;\n t19 += v * b4;\n t20 += v * b5;\n t21 += v * b6;\n t22 += v * b7;\n t23 += v * b8;\n t24 += v * b9;\n t25 += v * b10;\n t26 += v * b11;\n t27 += v * b12;\n t28 += v * b13;\n t29 += v * b14;\n t30 += v * b15;\n\n t0 += 38 * t16;\n t1 += 38 * t17;\n t2 += 38 * t18;\n t3 += 38 * t19;\n t4 += 38 * t20;\n t5 += 38 * t21;\n t6 += 38 * t22;\n t7 += 38 * t23;\n t8 += 38 * t24;\n t9 += 38 * t25;\n t10 += 38 * t26;\n t11 += 38 * t27;\n t12 += 38 * t28;\n t13 += 38 * t29;\n t14 += 38 * t30;\n // t15 left as is\n\n // first car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n // second car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n o[ 0] = t0;\n o[ 1] = t1;\n o[ 2] = t2;\n o[ 3] = t3;\n o[ 4] = t4;\n o[ 5] = t5;\n o[ 6] = t6;\n o[ 7] = t7;\n o[ 8] = t8;\n o[ 9] = t9;\n o[10] = t10;\n o[11] = t11;\n o[12] = t12;\n o[13] = t13;\n o[14] = t14;\n o[15] = t15;\n}\n","/**\n * Javascript implementation of RSA-KEM.\n *\n * @author Lautaro Cozzani Rodriguez\n * @author Dave Longley\n *\n * Copyright (c) 2014 Lautaro Cozzani \n * Copyright (c) 2014 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./util');\nrequire('./random');\nrequire('./jsbn');\n\nmodule.exports = forge.kem = forge.kem || {};\n\nvar BigInteger = forge.jsbn.BigInteger;\n\n/**\n * The API for the RSA Key Encapsulation Mechanism (RSA-KEM) from ISO 18033-2.\n */\nforge.kem.rsa = {};\n\n/**\n * Creates an RSA KEM API object for generating a secret asymmetric key.\n *\n * The symmetric key may be generated via a call to 'encrypt', which will\n * produce a ciphertext to be transmitted to the recipient and a key to be\n * kept secret. The ciphertext is a parameter to be passed to 'decrypt' which\n * will produce the same secret key for the recipient to use to decrypt a\n * message that was encrypted with the secret key.\n *\n * @param kdf the KDF API to use (eg: new forge.kem.kdf1()).\n * @param options the options to use.\n * [prng] a custom crypto-secure pseudo-random number generator to use,\n * that must define \"getBytesSync\".\n */\nforge.kem.rsa.create = function(kdf, options) {\n options = options || {};\n var prng = options.prng || forge.random;\n\n var kem = {};\n\n /**\n * Generates a secret key and its encapsulation.\n *\n * @param publicKey the RSA public key to encrypt with.\n * @param keyLength the length, in bytes, of the secret key to generate.\n *\n * @return an object with:\n * encapsulation: the ciphertext for generating the secret key, as a\n * binary-encoded string of bytes.\n * key: the secret key to use for encrypting a message.\n */\n kem.encrypt = function(publicKey, keyLength) {\n // generate a random r where 1 < r < n\n var byteLength = Math.ceil(publicKey.n.bitLength() / 8);\n var r;\n do {\n r = new BigInteger(\n forge.util.bytesToHex(prng.getBytesSync(byteLength)),\n 16).mod(publicKey.n);\n } while(r.compareTo(BigInteger.ONE) <= 0);\n\n // prepend r with zeros\n r = forge.util.hexToBytes(r.toString(16));\n var zeros = byteLength - r.length;\n if(zeros > 0) {\n r = forge.util.fillString(String.fromCharCode(0), zeros) + r;\n }\n\n // encrypt the random\n var encapsulation = publicKey.encrypt(r, 'NONE');\n\n // generate the secret key\n var key = kdf.generate(r, keyLength);\n\n return {encapsulation: encapsulation, key: key};\n };\n\n /**\n * Decrypts an encapsulated secret key.\n *\n * @param privateKey the RSA private key to decrypt with.\n * @param encapsulation the ciphertext for generating the secret key, as\n * a binary-encoded string of bytes.\n * @param keyLength the length, in bytes, of the secret key to generate.\n *\n * @return the secret key as a binary-encoded string of bytes.\n */\n kem.decrypt = function(privateKey, encapsulation, keyLength) {\n // decrypt the encapsulation and generate the secret key\n var r = privateKey.decrypt(encapsulation, 'NONE');\n return kdf.generate(r, keyLength);\n };\n\n return kem;\n};\n\n// TODO: add forge.kem.kdf.create('KDF1', {md: ..., ...}) API?\n\n/**\n * Creates a key derivation API object that implements KDF1 per ISO 18033-2.\n *\n * @param md the hash API to use.\n * @param [digestLength] an optional digest length that must be positive and\n * less than or equal to md.digestLength.\n *\n * @return a KDF1 API object.\n */\nforge.kem.kdf1 = function(md, digestLength) {\n _createKDF(this, md, 0, digestLength || md.digestLength);\n};\n\n/**\n * Creates a key derivation API object that implements KDF2 per ISO 18033-2.\n *\n * @param md the hash API to use.\n * @param [digestLength] an optional digest length that must be positive and\n * less than or equal to md.digestLength.\n *\n * @return a KDF2 API object.\n */\nforge.kem.kdf2 = function(md, digestLength) {\n _createKDF(this, md, 1, digestLength || md.digestLength);\n};\n\n/**\n * Creates a KDF1 or KDF2 API object.\n *\n * @param md the hash API to use.\n * @param counterStart the starting index for the counter.\n * @param digestLength the digest length to use.\n *\n * @return the KDF API object.\n */\nfunction _createKDF(kdf, md, counterStart, digestLength) {\n /**\n * Generate a key of the specified length.\n *\n * @param x the binary-encoded byte string to generate a key from.\n * @param length the number of bytes to generate (the size of the key).\n *\n * @return the key as a binary-encoded string.\n */\n kdf.generate = function(x, length) {\n var key = new forge.util.ByteBuffer();\n\n // run counter from counterStart to ceil(length / Hash.len)\n var k = Math.ceil(length / digestLength) + counterStart;\n\n var c = new forge.util.ByteBuffer();\n for(var i = counterStart; i < k; ++i) {\n // I2OSP(i, 4): convert counter to an octet string of 4 octets\n c.putInt32(i);\n\n // digest 'x' and the counter and add the result to the key\n md.start();\n md.update(x + c.getBytes());\n var hash = md.digest();\n key.putBytes(hash.getBytes(digestLength));\n }\n\n // truncate to the correct key length\n key.truncate(key.length() - length);\n return key.getBytes();\n };\n}\n","/**\n * Cross-browser support for logging in a web application.\n *\n * @author David I. Lehn \n *\n * Copyright (c) 2008-2013 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./util');\n\n/* LOG API */\nmodule.exports = forge.log = forge.log || {};\n\n/**\n * Application logging system.\n *\n * Each logger level available as it's own function of the form:\n * forge.log.level(category, args...)\n * The category is an arbitrary string, and the args are the same as\n * Firebug's console.log API. By default the call will be output as:\n * 'LEVEL [category] , args[1], ...'\n * This enables proper % formatting via the first argument.\n * Each category is enabled by default but can be enabled or disabled with\n * the setCategoryEnabled() function.\n */\n// list of known levels\nforge.log.levels = [\n 'none', 'error', 'warning', 'info', 'debug', 'verbose', 'max'];\n// info on the levels indexed by name:\n// index: level index\n// name: uppercased display name\nvar sLevelInfo = {};\n// list of loggers\nvar sLoggers = [];\n/**\n * Standard console logger. If no console support is enabled this will\n * remain null. Check before using.\n */\nvar sConsoleLogger = null;\n\n// logger flags\n/**\n * Lock the level at the current value. Used in cases where user config may\n * set the level such that only critical messages are seen but more verbose\n * messages are needed for debugging or other purposes.\n */\nforge.log.LEVEL_LOCKED = (1 << 1);\n/**\n * Always call log function. By default, the logging system will check the\n * message level against logger.level before calling the log function. This\n * flag allows the function to do its own check.\n */\nforge.log.NO_LEVEL_CHECK = (1 << 2);\n/**\n * Perform message interpolation with the passed arguments. \"%\" style\n * fields in log messages will be replaced by arguments as needed. Some\n * loggers, such as Firebug, may do this automatically. The original log\n * message will be available as 'message' and the interpolated version will\n * be available as 'fullMessage'.\n */\nforge.log.INTERPOLATE = (1 << 3);\n\n// setup each log level\nfor(var i = 0; i < forge.log.levels.length; ++i) {\n var level = forge.log.levels[i];\n sLevelInfo[level] = {\n index: i,\n name: level.toUpperCase()\n };\n}\n\n/**\n * Message logger. Will dispatch a message to registered loggers as needed.\n *\n * @param message message object\n */\nforge.log.logMessage = function(message) {\n var messageLevelIndex = sLevelInfo[message.level].index;\n for(var i = 0; i < sLoggers.length; ++i) {\n var logger = sLoggers[i];\n if(logger.flags & forge.log.NO_LEVEL_CHECK) {\n logger.f(message);\n } else {\n // get logger level\n var loggerLevelIndex = sLevelInfo[logger.level].index;\n // check level\n if(messageLevelIndex <= loggerLevelIndex) {\n // message critical enough, call logger\n logger.f(logger, message);\n }\n }\n }\n};\n\n/**\n * Sets the 'standard' key on a message object to:\n * \"LEVEL [category] \" + message\n *\n * @param message a message log object\n */\nforge.log.prepareStandard = function(message) {\n if(!('standard' in message)) {\n message.standard =\n sLevelInfo[message.level].name +\n //' ' + +message.timestamp +\n ' [' + message.category + '] ' +\n message.message;\n }\n};\n\n/**\n * Sets the 'full' key on a message object to the original message\n * interpolated via % formatting with the message arguments.\n *\n * @param message a message log object.\n */\nforge.log.prepareFull = function(message) {\n if(!('full' in message)) {\n // copy args and insert message at the front\n var args = [message.message];\n args = args.concat([] || message['arguments']);\n // format the message\n message.full = forge.util.format.apply(this, args);\n }\n};\n\n/**\n * Applies both preparseStandard() and prepareFull() to a message object and\n * store result in 'standardFull'.\n *\n * @param message a message log object.\n */\nforge.log.prepareStandardFull = function(message) {\n if(!('standardFull' in message)) {\n // FIXME implement 'standardFull' logging\n forge.log.prepareStandard(message);\n message.standardFull = message.standard;\n }\n};\n\n// create log level functions\nif(true) {\n // levels for which we want functions\n var levels = ['error', 'warning', 'info', 'debug', 'verbose'];\n for(var i = 0; i < levels.length; ++i) {\n // wrap in a function to ensure proper level var is passed\n (function(level) {\n // create function for this level\n forge.log[level] = function(category, message/*, args...*/) {\n // convert arguments to real array, remove category and message\n var args = Array.prototype.slice.call(arguments).slice(2);\n // create message object\n // Note: interpolation and standard formatting is done lazily\n var msg = {\n timestamp: new Date(),\n level: level,\n category: category,\n message: message,\n 'arguments': args\n /*standard*/\n /*full*/\n /*fullMessage*/\n };\n // process this message\n forge.log.logMessage(msg);\n };\n })(levels[i]);\n }\n}\n\n/**\n * Creates a new logger with specified custom logging function.\n *\n * The logging function has a signature of:\n * function(logger, message)\n * logger: current logger\n * message: object:\n * level: level id\n * category: category\n * message: string message\n * arguments: Array of extra arguments\n * fullMessage: interpolated message and arguments if INTERPOLATE flag set\n *\n * @param logFunction a logging function which takes a log message object\n * as a parameter.\n *\n * @return a logger object.\n */\nforge.log.makeLogger = function(logFunction) {\n var logger = {\n flags: 0,\n f: logFunction\n };\n forge.log.setLevel(logger, 'none');\n return logger;\n};\n\n/**\n * Sets the current log level on a logger.\n *\n * @param logger the target logger.\n * @param level the new maximum log level as a string.\n *\n * @return true if set, false if not.\n */\nforge.log.setLevel = function(logger, level) {\n var rval = false;\n if(logger && !(logger.flags & forge.log.LEVEL_LOCKED)) {\n for(var i = 0; i < forge.log.levels.length; ++i) {\n var aValidLevel = forge.log.levels[i];\n if(level == aValidLevel) {\n // set level\n logger.level = level;\n rval = true;\n break;\n }\n }\n }\n\n return rval;\n};\n\n/**\n * Locks the log level at its current value.\n *\n * @param logger the target logger.\n * @param lock boolean lock value, default to true.\n */\nforge.log.lock = function(logger, lock) {\n if(typeof lock === 'undefined' || lock) {\n logger.flags |= forge.log.LEVEL_LOCKED;\n } else {\n logger.flags &= ~forge.log.LEVEL_LOCKED;\n }\n};\n\n/**\n * Adds a logger.\n *\n * @param logger the logger object.\n */\nforge.log.addLogger = function(logger) {\n sLoggers.push(logger);\n};\n\n// setup the console logger if possible, else create fake console.log\nif(typeof(console) !== 'undefined' && 'log' in console) {\n var logger;\n if(console.error && console.warn && console.info && console.debug) {\n // looks like Firebug-style logging is available\n // level handlers map\n var levelHandlers = {\n error: console.error,\n warning: console.warn,\n info: console.info,\n debug: console.debug,\n verbose: console.debug\n };\n var f = function(logger, message) {\n forge.log.prepareStandard(message);\n var handler = levelHandlers[message.level];\n // prepend standard message and concat args\n var args = [message.standard];\n args = args.concat(message['arguments'].slice());\n // apply to low-level console function\n handler.apply(console, args);\n };\n logger = forge.log.makeLogger(f);\n } else {\n // only appear to have basic console.log\n var f = function(logger, message) {\n forge.log.prepareStandardFull(message);\n console.log(message.standardFull);\n };\n logger = forge.log.makeLogger(f);\n }\n forge.log.setLevel(logger, 'debug');\n forge.log.addLogger(logger);\n sConsoleLogger = logger;\n} else {\n // define fake console.log to avoid potential script errors on\n // browsers that do not have console logging\n console = {\n log: function() {}\n };\n}\n\n/*\n * Check for logging control query vars in current URL.\n *\n * console.level=\n * Set's the console log level by name. Useful to override defaults and\n * allow more verbose logging before a user config is loaded.\n *\n * console.lock=\n * Lock the console log level at whatever level it is set at. This is run\n * after console.level is processed. Useful to force a level of verbosity\n * that could otherwise be limited by a user config.\n */\nif(sConsoleLogger !== null &&\n typeof window !== 'undefined' && window.location\n) {\n var query = new URL(window.location.href).searchParams;\n if(query.has('console.level')) {\n // set with last value\n forge.log.setLevel(\n sConsoleLogger, query.get('console.level').slice(-1)[0]);\n }\n if(query.has('console.lock')) {\n // set with last value\n var lock = query.get('console.lock').slice(-1)[0];\n if(lock == 'true') {\n forge.log.lock(sConsoleLogger);\n }\n }\n}\n\n// provide public access to console logger\nforge.log.consoleLogger = sConsoleLogger;\n","/**\n * Javascript implementation of PKCS#7 v1.5.\n *\n * @author Stefan Siegl\n * @author Dave Longley\n *\n * Copyright (c) 2012 Stefan Siegl \n * Copyright (c) 2012-2015 Digital Bazaar, Inc.\n *\n * Currently this implementation only supports ContentType of EnvelopedData,\n * EncryptedData, or SignedData at the root level. The top level elements may\n * contain only a ContentInfo of ContentType Data, i.e. plain data. Further\n * nesting is not (yet) supported.\n *\n * The Forge validators for PKCS #7's ASN.1 structures are available from\n * a separate file pkcs7asn1.js, since those are referenced from other\n * PKCS standards like PKCS #12.\n */\nvar forge = require('./forge');\nrequire('./aes');\nrequire('./asn1');\nrequire('./des');\nrequire('./oids');\nrequire('./pem');\nrequire('./pkcs7asn1');\nrequire('./random');\nrequire('./util');\nrequire('./x509');\n\n// shortcut for ASN.1 API\nvar asn1 = forge.asn1;\n\n// shortcut for PKCS#7 API\nvar p7 = module.exports = forge.pkcs7 = forge.pkcs7 || {};\n\n/**\n * Converts a PKCS#7 message from PEM format.\n *\n * @param pem the PEM-formatted PKCS#7 message.\n *\n * @return the PKCS#7 message.\n */\np7.messageFromPem = function(pem) {\n var msg = forge.pem.decode(pem)[0];\n\n if(msg.type !== 'PKCS7') {\n var error = new Error('Could not convert PKCS#7 message from PEM; PEM ' +\n 'header type is not \"PKCS#7\".');\n error.headerType = msg.type;\n throw error;\n }\n if(msg.procType && msg.procType.type === 'ENCRYPTED') {\n throw new Error('Could not convert PKCS#7 message from PEM; PEM is encrypted.');\n }\n\n // convert DER to ASN.1 object\n var obj = asn1.fromDer(msg.body);\n\n return p7.messageFromAsn1(obj);\n};\n\n/**\n * Converts a PKCS#7 message to PEM format.\n *\n * @param msg The PKCS#7 message object\n * @param maxline The maximum characters per line, defaults to 64.\n *\n * @return The PEM-formatted PKCS#7 message.\n */\np7.messageToPem = function(msg, maxline) {\n // convert to ASN.1, then DER, then PEM-encode\n var pemObj = {\n type: 'PKCS7',\n body: asn1.toDer(msg.toAsn1()).getBytes()\n };\n return forge.pem.encode(pemObj, {maxline: maxline});\n};\n\n/**\n * Converts a PKCS#7 message from an ASN.1 object.\n *\n * @param obj the ASN.1 representation of a ContentInfo.\n *\n * @return the PKCS#7 message.\n */\np7.messageFromAsn1 = function(obj) {\n // validate root level ContentInfo and capture data\n var capture = {};\n var errors = [];\n if(!asn1.validate(obj, p7.asn1.contentInfoValidator, capture, errors)) {\n var error = new Error('Cannot read PKCS#7 message. ' +\n 'ASN.1 object is not an PKCS#7 ContentInfo.');\n error.errors = errors;\n throw error;\n }\n\n var contentType = asn1.derToOid(capture.contentType);\n var msg;\n\n switch(contentType) {\n case forge.pki.oids.envelopedData:\n msg = p7.createEnvelopedData();\n break;\n\n case forge.pki.oids.encryptedData:\n msg = p7.createEncryptedData();\n break;\n\n case forge.pki.oids.signedData:\n msg = p7.createSignedData();\n break;\n\n default:\n throw new Error('Cannot read PKCS#7 message. ContentType with OID ' +\n contentType + ' is not (yet) supported.');\n }\n\n msg.fromAsn1(capture.content.value[0]);\n return msg;\n};\n\np7.createSignedData = function() {\n var msg = null;\n msg = {\n type: forge.pki.oids.signedData,\n version: 1,\n certificates: [],\n crls: [],\n // TODO: add json-formatted signer stuff here?\n signers: [],\n // populated during sign()\n digestAlgorithmIdentifiers: [],\n contentInfo: null,\n signerInfos: [],\n\n fromAsn1: function(obj) {\n // validate SignedData content block and capture data.\n _fromAsn1(msg, obj, p7.asn1.signedDataValidator);\n msg.certificates = [];\n msg.crls = [];\n msg.digestAlgorithmIdentifiers = [];\n msg.contentInfo = null;\n msg.signerInfos = [];\n\n if(msg.rawCapture.certificates) {\n var certs = msg.rawCapture.certificates.value;\n for(var i = 0; i < certs.length; ++i) {\n msg.certificates.push(forge.pki.certificateFromAsn1(certs[i]));\n }\n }\n\n // TODO: parse crls\n },\n\n toAsn1: function() {\n // degenerate case with no content\n if(!msg.contentInfo) {\n msg.sign();\n }\n\n var certs = [];\n for(var i = 0; i < msg.certificates.length; ++i) {\n certs.push(forge.pki.certificateToAsn1(msg.certificates[i]));\n }\n\n var crls = [];\n // TODO: implement CRLs\n\n // [0] SignedData\n var signedData = asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // Version\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n asn1.integerToDer(msg.version).getBytes()),\n // DigestAlgorithmIdentifiers\n asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.SET, true,\n msg.digestAlgorithmIdentifiers),\n // ContentInfo\n msg.contentInfo\n ])\n ]);\n if(certs.length > 0) {\n // [0] IMPLICIT ExtendedCertificatesAndCertificates OPTIONAL\n signedData.value[0].value.push(\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, certs));\n }\n if(crls.length > 0) {\n // [1] IMPLICIT CertificateRevocationLists OPTIONAL\n signedData.value[0].value.push(\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 1, true, crls));\n }\n // SignerInfos\n signedData.value[0].value.push(\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SET, true,\n msg.signerInfos));\n\n // ContentInfo\n return asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // ContentType\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(msg.type).getBytes()),\n // [0] SignedData\n signedData\n ]);\n },\n\n /**\n * Add (another) entity to list of signers.\n *\n * Note: If authenticatedAttributes are provided, then, per RFC 2315,\n * they must include at least two attributes: content type and\n * message digest. The message digest attribute value will be\n * auto-calculated during signing and will be ignored if provided.\n *\n * Here's an example of providing these two attributes:\n *\n * forge.pkcs7.createSignedData();\n * p7.addSigner({\n * issuer: cert.issuer.attributes,\n * serialNumber: cert.serialNumber,\n * key: privateKey,\n * digestAlgorithm: forge.pki.oids.sha1,\n * authenticatedAttributes: [{\n * type: forge.pki.oids.contentType,\n * value: forge.pki.oids.data\n * }, {\n * type: forge.pki.oids.messageDigest\n * }]\n * });\n *\n * TODO: Support [subjectKeyIdentifier] as signer's ID.\n *\n * @param signer the signer information:\n * key the signer's private key.\n * [certificate] a certificate containing the public key\n * associated with the signer's private key; use this option as\n * an alternative to specifying signer.issuer and\n * signer.serialNumber.\n * [issuer] the issuer attributes (eg: cert.issuer.attributes).\n * [serialNumber] the signer's certificate's serial number in\n * hexadecimal (eg: cert.serialNumber).\n * [digestAlgorithm] the message digest OID, as a string, to use\n * (eg: forge.pki.oids.sha1).\n * [authenticatedAttributes] an optional array of attributes\n * to also sign along with the content.\n */\n addSigner: function(signer) {\n var issuer = signer.issuer;\n var serialNumber = signer.serialNumber;\n if(signer.certificate) {\n var cert = signer.certificate;\n if(typeof cert === 'string') {\n cert = forge.pki.certificateFromPem(cert);\n }\n issuer = cert.issuer.attributes;\n serialNumber = cert.serialNumber;\n }\n var key = signer.key;\n if(!key) {\n throw new Error(\n 'Could not add PKCS#7 signer; no private key specified.');\n }\n if(typeof key === 'string') {\n key = forge.pki.privateKeyFromPem(key);\n }\n\n // ensure OID known for digest algorithm\n var digestAlgorithm = signer.digestAlgorithm || forge.pki.oids.sha1;\n switch(digestAlgorithm) {\n case forge.pki.oids.sha1:\n case forge.pki.oids.sha256:\n case forge.pki.oids.sha384:\n case forge.pki.oids.sha512:\n case forge.pki.oids.md5:\n break;\n default:\n throw new Error(\n 'Could not add PKCS#7 signer; unknown message digest algorithm: ' +\n digestAlgorithm);\n }\n\n // if authenticatedAttributes is present, then the attributes\n // must contain at least PKCS #9 content-type and message-digest\n var authenticatedAttributes = signer.authenticatedAttributes || [];\n if(authenticatedAttributes.length > 0) {\n var contentType = false;\n var messageDigest = false;\n for(var i = 0; i < authenticatedAttributes.length; ++i) {\n var attr = authenticatedAttributes[i];\n if(!contentType && attr.type === forge.pki.oids.contentType) {\n contentType = true;\n if(messageDigest) {\n break;\n }\n continue;\n }\n if(!messageDigest && attr.type === forge.pki.oids.messageDigest) {\n messageDigest = true;\n if(contentType) {\n break;\n }\n continue;\n }\n }\n\n if(!contentType || !messageDigest) {\n throw new Error('Invalid signer.authenticatedAttributes. If ' +\n 'signer.authenticatedAttributes is specified, then it must ' +\n 'contain at least two attributes, PKCS #9 content-type and ' +\n 'PKCS #9 message-digest.');\n }\n }\n\n msg.signers.push({\n key: key,\n version: 1,\n issuer: issuer,\n serialNumber: serialNumber,\n digestAlgorithm: digestAlgorithm,\n signatureAlgorithm: forge.pki.oids.rsaEncryption,\n signature: null,\n authenticatedAttributes: authenticatedAttributes,\n unauthenticatedAttributes: []\n });\n },\n\n /**\n * Signs the content.\n * @param options Options to apply when signing:\n * [detached] boolean. If signing should be done in detached mode. Defaults to false.\n */\n sign: function(options) {\n options = options || {};\n // auto-generate content info\n if(typeof msg.content !== 'object' || msg.contentInfo === null) {\n // use Data ContentInfo\n msg.contentInfo = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // ContentType\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(forge.pki.oids.data).getBytes())\n ]);\n\n // add actual content, if present\n if('content' in msg) {\n var content;\n if(msg.content instanceof forge.util.ByteBuffer) {\n content = msg.content.bytes();\n } else if(typeof msg.content === 'string') {\n content = forge.util.encodeUtf8(msg.content);\n }\n\n if (options.detached) {\n msg.detachedContent = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, content);\n } else {\n msg.contentInfo.value.push(\n // [0] EXPLICIT content\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false,\n content)\n ]));\n }\n }\n }\n\n // no signers, return early (degenerate case for certificate container)\n if(msg.signers.length === 0) {\n return;\n }\n\n // generate digest algorithm identifiers\n var mds = addDigestAlgorithmIds();\n\n // generate signerInfos\n addSignerInfos(mds);\n },\n\n verify: function() {\n throw new Error('PKCS#7 signature verification not yet implemented.');\n },\n\n /**\n * Add a certificate.\n *\n * @param cert the certificate to add.\n */\n addCertificate: function(cert) {\n // convert from PEM\n if(typeof cert === 'string') {\n cert = forge.pki.certificateFromPem(cert);\n }\n msg.certificates.push(cert);\n },\n\n /**\n * Add a certificate revokation list.\n *\n * @param crl the certificate revokation list to add.\n */\n addCertificateRevokationList: function(crl) {\n throw new Error('PKCS#7 CRL support not yet implemented.');\n }\n };\n return msg;\n\n function addDigestAlgorithmIds() {\n var mds = {};\n\n for(var i = 0; i < msg.signers.length; ++i) {\n var signer = msg.signers[i];\n var oid = signer.digestAlgorithm;\n if(!(oid in mds)) {\n // content digest\n mds[oid] = forge.md[forge.pki.oids[oid]].create();\n }\n if(signer.authenticatedAttributes.length === 0) {\n // no custom attributes to digest; use content message digest\n signer.md = mds[oid];\n } else {\n // custom attributes to be digested; use own message digest\n // TODO: optimize to just copy message digest state if that\n // feature is ever supported with message digests\n signer.md = forge.md[forge.pki.oids[oid]].create();\n }\n }\n\n // add unique digest algorithm identifiers\n msg.digestAlgorithmIdentifiers = [];\n for(var oid in mds) {\n msg.digestAlgorithmIdentifiers.push(\n // AlgorithmIdentifier\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // algorithm\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(oid).getBytes()),\n // parameters (null)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, '')\n ]));\n }\n\n return mds;\n }\n\n function addSignerInfos(mds) {\n var content;\n\n if (msg.detachedContent) {\n // Signature has been made in detached mode.\n content = msg.detachedContent;\n } else {\n // Note: ContentInfo is a SEQUENCE with 2 values, second value is\n // the content field and is optional for a ContentInfo but required here\n // since signers are present\n // get ContentInfo content\n content = msg.contentInfo.value[1];\n // skip [0] EXPLICIT content wrapper\n content = content.value[0];\n }\n\n if(!content) {\n throw new Error(\n 'Could not sign PKCS#7 message; there is no content to sign.');\n }\n\n // get ContentInfo content type\n var contentType = asn1.derToOid(msg.contentInfo.value[0].value);\n\n // serialize content\n var bytes = asn1.toDer(content);\n\n // skip identifier and length per RFC 2315 9.3\n // skip identifier (1 byte)\n bytes.getByte();\n // read and discard length bytes\n asn1.getBerValueLength(bytes);\n bytes = bytes.getBytes();\n\n // digest content DER value bytes\n for(var oid in mds) {\n mds[oid].start().update(bytes);\n }\n\n // sign content\n var signingTime = new Date();\n for(var i = 0; i < msg.signers.length; ++i) {\n var signer = msg.signers[i];\n\n if(signer.authenticatedAttributes.length === 0) {\n // if ContentInfo content type is not \"Data\", then\n // authenticatedAttributes must be present per RFC 2315\n if(contentType !== forge.pki.oids.data) {\n throw new Error(\n 'Invalid signer; authenticatedAttributes must be present ' +\n 'when the ContentInfo content type is not PKCS#7 Data.');\n }\n } else {\n // process authenticated attributes\n // [0] IMPLICIT\n signer.authenticatedAttributesAsn1 = asn1.create(\n asn1.Class.CONTEXT_SPECIFIC, 0, true, []);\n\n // per RFC 2315, attributes are to be digested using a SET container\n // not the above [0] IMPLICIT container\n var attrsAsn1 = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.SET, true, []);\n\n for(var ai = 0; ai < signer.authenticatedAttributes.length; ++ai) {\n var attr = signer.authenticatedAttributes[ai];\n if(attr.type === forge.pki.oids.messageDigest) {\n // use content message digest as value\n attr.value = mds[signer.digestAlgorithm].digest();\n } else if(attr.type === forge.pki.oids.signingTime) {\n // auto-populate signing time if not already set\n if(!attr.value) {\n attr.value = signingTime;\n }\n }\n\n // convert to ASN.1 and push onto Attributes SET (for signing) and\n // onto authenticatedAttributesAsn1 to complete SignedData ASN.1\n // TODO: optimize away duplication\n attrsAsn1.value.push(_attributeToAsn1(attr));\n signer.authenticatedAttributesAsn1.value.push(_attributeToAsn1(attr));\n }\n\n // DER-serialize and digest SET OF attributes only\n bytes = asn1.toDer(attrsAsn1).getBytes();\n signer.md.start().update(bytes);\n }\n\n // sign digest\n signer.signature = signer.key.sign(signer.md, 'RSASSA-PKCS1-V1_5');\n }\n\n // add signer info\n msg.signerInfos = _signersToAsn1(msg.signers);\n }\n};\n\n/**\n * Creates an empty PKCS#7 message of type EncryptedData.\n *\n * @return the message.\n */\np7.createEncryptedData = function() {\n var msg = null;\n msg = {\n type: forge.pki.oids.encryptedData,\n version: 0,\n encryptedContent: {\n algorithm: forge.pki.oids['aes256-CBC']\n },\n\n /**\n * Reads an EncryptedData content block (in ASN.1 format)\n *\n * @param obj The ASN.1 representation of the EncryptedData content block\n */\n fromAsn1: function(obj) {\n // Validate EncryptedData content block and capture data.\n _fromAsn1(msg, obj, p7.asn1.encryptedDataValidator);\n },\n\n /**\n * Decrypt encrypted content\n *\n * @param key The (symmetric) key as a byte buffer\n */\n decrypt: function(key) {\n if(key !== undefined) {\n msg.encryptedContent.key = key;\n }\n _decryptContent(msg);\n }\n };\n return msg;\n};\n\n/**\n * Creates an empty PKCS#7 message of type EnvelopedData.\n *\n * @return the message.\n */\np7.createEnvelopedData = function() {\n var msg = null;\n msg = {\n type: forge.pki.oids.envelopedData,\n version: 0,\n recipients: [],\n encryptedContent: {\n algorithm: forge.pki.oids['aes256-CBC']\n },\n\n /**\n * Reads an EnvelopedData content block (in ASN.1 format)\n *\n * @param obj the ASN.1 representation of the EnvelopedData content block.\n */\n fromAsn1: function(obj) {\n // validate EnvelopedData content block and capture data\n var capture = _fromAsn1(msg, obj, p7.asn1.envelopedDataValidator);\n msg.recipients = _recipientsFromAsn1(capture.recipientInfos.value);\n },\n\n toAsn1: function() {\n // ContentInfo\n return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // ContentType\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(msg.type).getBytes()),\n // [0] EnvelopedData\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // Version\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n asn1.integerToDer(msg.version).getBytes()),\n // RecipientInfos\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SET, true,\n _recipientsToAsn1(msg.recipients)),\n // EncryptedContentInfo\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true,\n _encryptedContentToAsn1(msg.encryptedContent))\n ])\n ])\n ]);\n },\n\n /**\n * Find recipient by X.509 certificate's issuer.\n *\n * @param cert the certificate with the issuer to look for.\n *\n * @return the recipient object.\n */\n findRecipient: function(cert) {\n var sAttr = cert.issuer.attributes;\n\n for(var i = 0; i < msg.recipients.length; ++i) {\n var r = msg.recipients[i];\n var rAttr = r.issuer;\n\n if(r.serialNumber !== cert.serialNumber) {\n continue;\n }\n\n if(rAttr.length !== sAttr.length) {\n continue;\n }\n\n var match = true;\n for(var j = 0; j < sAttr.length; ++j) {\n if(rAttr[j].type !== sAttr[j].type ||\n rAttr[j].value !== sAttr[j].value) {\n match = false;\n break;\n }\n }\n\n if(match) {\n return r;\n }\n }\n\n return null;\n },\n\n /**\n * Decrypt enveloped content\n *\n * @param recipient The recipient object related to the private key\n * @param privKey The (RSA) private key object\n */\n decrypt: function(recipient, privKey) {\n if(msg.encryptedContent.key === undefined && recipient !== undefined &&\n privKey !== undefined) {\n switch(recipient.encryptedContent.algorithm) {\n case forge.pki.oids.rsaEncryption:\n case forge.pki.oids.desCBC:\n var key = privKey.decrypt(recipient.encryptedContent.content);\n msg.encryptedContent.key = forge.util.createBuffer(key);\n break;\n\n default:\n throw new Error('Unsupported asymmetric cipher, ' +\n 'OID ' + recipient.encryptedContent.algorithm);\n }\n }\n\n _decryptContent(msg);\n },\n\n /**\n * Add (another) entity to list of recipients.\n *\n * @param cert The certificate of the entity to add.\n */\n addRecipient: function(cert) {\n msg.recipients.push({\n version: 0,\n issuer: cert.issuer.attributes,\n serialNumber: cert.serialNumber,\n encryptedContent: {\n // We simply assume rsaEncryption here, since forge.pki only\n // supports RSA so far. If the PKI module supports other\n // ciphers one day, we need to modify this one as well.\n algorithm: forge.pki.oids.rsaEncryption,\n key: cert.publicKey\n }\n });\n },\n\n /**\n * Encrypt enveloped content.\n *\n * This function supports two optional arguments, cipher and key, which\n * can be used to influence symmetric encryption. Unless cipher is\n * provided, the cipher specified in encryptedContent.algorithm is used\n * (defaults to AES-256-CBC). If no key is provided, encryptedContent.key\n * is (re-)used. If that one's not set, a random key will be generated\n * automatically.\n *\n * @param [key] The key to be used for symmetric encryption.\n * @param [cipher] The OID of the symmetric cipher to use.\n */\n encrypt: function(key, cipher) {\n // Part 1: Symmetric encryption\n if(msg.encryptedContent.content === undefined) {\n cipher = cipher || msg.encryptedContent.algorithm;\n key = key || msg.encryptedContent.key;\n\n var keyLen, ivLen, ciphFn;\n switch(cipher) {\n case forge.pki.oids['aes128-CBC']:\n keyLen = 16;\n ivLen = 16;\n ciphFn = forge.aes.createEncryptionCipher;\n break;\n\n case forge.pki.oids['aes192-CBC']:\n keyLen = 24;\n ivLen = 16;\n ciphFn = forge.aes.createEncryptionCipher;\n break;\n\n case forge.pki.oids['aes256-CBC']:\n keyLen = 32;\n ivLen = 16;\n ciphFn = forge.aes.createEncryptionCipher;\n break;\n\n case forge.pki.oids['des-EDE3-CBC']:\n keyLen = 24;\n ivLen = 8;\n ciphFn = forge.des.createEncryptionCipher;\n break;\n\n default:\n throw new Error('Unsupported symmetric cipher, OID ' + cipher);\n }\n\n if(key === undefined) {\n key = forge.util.createBuffer(forge.random.getBytes(keyLen));\n } else if(key.length() != keyLen) {\n throw new Error('Symmetric key has wrong length; ' +\n 'got ' + key.length() + ' bytes, expected ' + keyLen + '.');\n }\n\n // Keep a copy of the key & IV in the object, so the caller can\n // use it for whatever reason.\n msg.encryptedContent.algorithm = cipher;\n msg.encryptedContent.key = key;\n msg.encryptedContent.parameter = forge.util.createBuffer(\n forge.random.getBytes(ivLen));\n\n var ciph = ciphFn(key);\n ciph.start(msg.encryptedContent.parameter.copy());\n ciph.update(msg.content);\n\n // The finish function does PKCS#7 padding by default, therefore\n // no action required by us.\n if(!ciph.finish()) {\n throw new Error('Symmetric encryption failed.');\n }\n\n msg.encryptedContent.content = ciph.output;\n }\n\n // Part 2: asymmetric encryption for each recipient\n for(var i = 0; i < msg.recipients.length; ++i) {\n var recipient = msg.recipients[i];\n\n // Nothing to do, encryption already done.\n if(recipient.encryptedContent.content !== undefined) {\n continue;\n }\n\n switch(recipient.encryptedContent.algorithm) {\n case forge.pki.oids.rsaEncryption:\n recipient.encryptedContent.content =\n recipient.encryptedContent.key.encrypt(\n msg.encryptedContent.key.data);\n break;\n\n default:\n throw new Error('Unsupported asymmetric cipher, OID ' +\n recipient.encryptedContent.algorithm);\n }\n }\n }\n };\n return msg;\n};\n\n/**\n * Converts a single recipient from an ASN.1 object.\n *\n * @param obj the ASN.1 RecipientInfo.\n *\n * @return the recipient object.\n */\nfunction _recipientFromAsn1(obj) {\n // validate EnvelopedData content block and capture data\n var capture = {};\n var errors = [];\n if(!asn1.validate(obj, p7.asn1.recipientInfoValidator, capture, errors)) {\n var error = new Error('Cannot read PKCS#7 RecipientInfo. ' +\n 'ASN.1 object is not an PKCS#7 RecipientInfo.');\n error.errors = errors;\n throw error;\n }\n\n return {\n version: capture.version.charCodeAt(0),\n issuer: forge.pki.RDNAttributesAsArray(capture.issuer),\n serialNumber: forge.util.createBuffer(capture.serial).toHex(),\n encryptedContent: {\n algorithm: asn1.derToOid(capture.encAlgorithm),\n parameter: capture.encParameter ? capture.encParameter.value : undefined,\n content: capture.encKey\n }\n };\n}\n\n/**\n * Converts a single recipient object to an ASN.1 object.\n *\n * @param obj the recipient object.\n *\n * @return the ASN.1 RecipientInfo.\n */\nfunction _recipientToAsn1(obj) {\n return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // Version\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n asn1.integerToDer(obj.version).getBytes()),\n // IssuerAndSerialNumber\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // Name\n forge.pki.distinguishedNameToAsn1({attributes: obj.issuer}),\n // Serial\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n forge.util.hexToBytes(obj.serialNumber))\n ]),\n // KeyEncryptionAlgorithmIdentifier\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // Algorithm\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(obj.encryptedContent.algorithm).getBytes()),\n // Parameter, force NULL, only RSA supported for now.\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, '')\n ]),\n // EncryptedKey\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false,\n obj.encryptedContent.content)\n ]);\n}\n\n/**\n * Map a set of RecipientInfo ASN.1 objects to recipient objects.\n *\n * @param infos an array of ASN.1 representations RecipientInfo (i.e. SET OF).\n *\n * @return an array of recipient objects.\n */\nfunction _recipientsFromAsn1(infos) {\n var ret = [];\n for(var i = 0; i < infos.length; ++i) {\n ret.push(_recipientFromAsn1(infos[i]));\n }\n return ret;\n}\n\n/**\n * Map an array of recipient objects to ASN.1 RecipientInfo objects.\n *\n * @param recipients an array of recipientInfo objects.\n *\n * @return an array of ASN.1 RecipientInfos.\n */\nfunction _recipientsToAsn1(recipients) {\n var ret = [];\n for(var i = 0; i < recipients.length; ++i) {\n ret.push(_recipientToAsn1(recipients[i]));\n }\n return ret;\n}\n\n/**\n * Converts a single signer from an ASN.1 object.\n *\n * @param obj the ASN.1 representation of a SignerInfo.\n *\n * @return the signer object.\n */\nfunction _signerFromAsn1(obj) {\n // validate EnvelopedData content block and capture data\n var capture = {};\n var errors = [];\n if(!asn1.validate(obj, p7.asn1.signerInfoValidator, capture, errors)) {\n var error = new Error('Cannot read PKCS#7 SignerInfo. ' +\n 'ASN.1 object is not an PKCS#7 SignerInfo.');\n error.errors = errors;\n throw error;\n }\n\n var rval = {\n version: capture.version.charCodeAt(0),\n issuer: forge.pki.RDNAttributesAsArray(capture.issuer),\n serialNumber: forge.util.createBuffer(capture.serial).toHex(),\n digestAlgorithm: asn1.derToOid(capture.digestAlgorithm),\n signatureAlgorithm: asn1.derToOid(capture.signatureAlgorithm),\n signature: capture.signature,\n authenticatedAttributes: [],\n unauthenticatedAttributes: []\n };\n\n // TODO: convert attributes\n var authenticatedAttributes = capture.authenticatedAttributes || [];\n var unauthenticatedAttributes = capture.unauthenticatedAttributes || [];\n\n return rval;\n}\n\n/**\n * Converts a single signerInfo object to an ASN.1 object.\n *\n * @param obj the signerInfo object.\n *\n * @return the ASN.1 representation of a SignerInfo.\n */\nfunction _signerToAsn1(obj) {\n // SignerInfo\n var rval = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // version\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n asn1.integerToDer(obj.version).getBytes()),\n // issuerAndSerialNumber\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // name\n forge.pki.distinguishedNameToAsn1({attributes: obj.issuer}),\n // serial\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.INTEGER, false,\n forge.util.hexToBytes(obj.serialNumber))\n ]),\n // digestAlgorithm\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // algorithm\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(obj.digestAlgorithm).getBytes()),\n // parameters (null)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, '')\n ])\n ]);\n\n // authenticatedAttributes (OPTIONAL)\n if(obj.authenticatedAttributesAsn1) {\n // add ASN.1 previously generated during signing\n rval.value.push(obj.authenticatedAttributesAsn1);\n }\n\n // digestEncryptionAlgorithm\n rval.value.push(asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // algorithm\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(obj.signatureAlgorithm).getBytes()),\n // parameters (null)\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.NULL, false, '')\n ]));\n\n // encryptedDigest\n rval.value.push(asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false, obj.signature));\n\n // unauthenticatedAttributes (OPTIONAL)\n if(obj.unauthenticatedAttributes.length > 0) {\n // [1] IMPLICIT\n var attrsAsn1 = asn1.create(asn1.Class.CONTEXT_SPECIFIC, 1, true, []);\n for(var i = 0; i < obj.unauthenticatedAttributes.length; ++i) {\n var attr = obj.unauthenticatedAttributes[i];\n attrsAsn1.values.push(_attributeToAsn1(attr));\n }\n rval.value.push(attrsAsn1);\n }\n\n return rval;\n}\n\n/**\n * Map a set of SignerInfo ASN.1 objects to an array of signer objects.\n *\n * @param signerInfoAsn1s an array of ASN.1 SignerInfos (i.e. SET OF).\n *\n * @return an array of signers objects.\n */\nfunction _signersFromAsn1(signerInfoAsn1s) {\n var ret = [];\n for(var i = 0; i < signerInfoAsn1s.length; ++i) {\n ret.push(_signerFromAsn1(signerInfoAsn1s[i]));\n }\n return ret;\n}\n\n/**\n * Map an array of signer objects to ASN.1 objects.\n *\n * @param signers an array of signer objects.\n *\n * @return an array of ASN.1 SignerInfos.\n */\nfunction _signersToAsn1(signers) {\n var ret = [];\n for(var i = 0; i < signers.length; ++i) {\n ret.push(_signerToAsn1(signers[i]));\n }\n return ret;\n}\n\n/**\n * Convert an attribute object to an ASN.1 Attribute.\n *\n * @param attr the attribute object.\n *\n * @return the ASN.1 Attribute.\n */\nfunction _attributeToAsn1(attr) {\n var value;\n\n // TODO: generalize to support more attributes\n if(attr.type === forge.pki.oids.contentType) {\n value = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(attr.value).getBytes());\n } else if(attr.type === forge.pki.oids.messageDigest) {\n value = asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false,\n attr.value.bytes());\n } else if(attr.type === forge.pki.oids.signingTime) {\n /* Note per RFC 2985: Dates between 1 January 1950 and 31 December 2049\n (inclusive) MUST be encoded as UTCTime. Any dates with year values\n before 1950 or after 2049 MUST be encoded as GeneralizedTime. [Further,]\n UTCTime values MUST be expressed in Greenwich Mean Time (Zulu) and MUST\n include seconds (i.e., times are YYMMDDHHMMSSZ), even where the\n number of seconds is zero. Midnight (GMT) must be represented as\n \"YYMMDD000000Z\". */\n // TODO: make these module-level constants\n var jan_1_1950 = new Date('1950-01-01T00:00:00Z');\n var jan_1_2050 = new Date('2050-01-01T00:00:00Z');\n var date = attr.value;\n if(typeof date === 'string') {\n // try to parse date\n var timestamp = Date.parse(date);\n if(!isNaN(timestamp)) {\n date = new Date(timestamp);\n } else if(date.length === 13) {\n // YYMMDDHHMMSSZ (13 chars for UTCTime)\n date = asn1.utcTimeToDate(date);\n } else {\n // assume generalized time\n date = asn1.generalizedTimeToDate(date);\n }\n }\n\n if(date >= jan_1_1950 && date < jan_1_2050) {\n value = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.UTCTIME, false,\n asn1.dateToUtcTime(date));\n } else {\n value = asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.GENERALIZEDTIME, false,\n asn1.dateToGeneralizedTime(date));\n }\n }\n\n // TODO: expose as common API call\n // create a RelativeDistinguishedName set\n // each value in the set is an AttributeTypeAndValue first\n // containing the type (an OID) and second the value\n return asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // AttributeType\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(attr.type).getBytes()),\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SET, true, [\n // AttributeValue\n value\n ])\n ]);\n}\n\n/**\n * Map messages encrypted content to ASN.1 objects.\n *\n * @param ec The encryptedContent object of the message.\n *\n * @return ASN.1 representation of the encryptedContent object (SEQUENCE).\n */\nfunction _encryptedContentToAsn1(ec) {\n return [\n // ContentType, always Data for the moment\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(forge.pki.oids.data).getBytes()),\n // ContentEncryptionAlgorithmIdentifier\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.SEQUENCE, true, [\n // Algorithm\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OID, false,\n asn1.oidToDer(ec.algorithm).getBytes()),\n // Parameters (IV)\n !ec.parameter ?\n undefined :\n asn1.create(\n asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false,\n ec.parameter.getBytes())\n ]),\n // [0] EncryptedContent\n asn1.create(asn1.Class.CONTEXT_SPECIFIC, 0, true, [\n asn1.create(asn1.Class.UNIVERSAL, asn1.Type.OCTETSTRING, false,\n ec.content.getBytes())\n ])\n ];\n}\n\n/**\n * Reads the \"common part\" of an PKCS#7 content block (in ASN.1 format)\n *\n * This function reads the \"common part\" of the PKCS#7 content blocks\n * EncryptedData and EnvelopedData, i.e. version number and symmetrically\n * encrypted content block.\n *\n * The result of the ASN.1 validate and capture process is returned\n * to allow the caller to extract further data, e.g. the list of recipients\n * in case of a EnvelopedData object.\n *\n * @param msg the PKCS#7 object to read the data to.\n * @param obj the ASN.1 representation of the content block.\n * @param validator the ASN.1 structure validator object to use.\n *\n * @return the value map captured by validator object.\n */\nfunction _fromAsn1(msg, obj, validator) {\n var capture = {};\n var errors = [];\n if(!asn1.validate(obj, validator, capture, errors)) {\n var error = new Error('Cannot read PKCS#7 message. ' +\n 'ASN.1 object is not a supported PKCS#7 message.');\n error.errors = error;\n throw error;\n }\n\n // Check contentType, so far we only support (raw) Data.\n var contentType = asn1.derToOid(capture.contentType);\n if(contentType !== forge.pki.oids.data) {\n throw new Error('Unsupported PKCS#7 message. ' +\n 'Only wrapped ContentType Data supported.');\n }\n\n if(capture.encryptedContent) {\n var content = '';\n if(forge.util.isArray(capture.encryptedContent)) {\n for(var i = 0; i < capture.encryptedContent.length; ++i) {\n if(capture.encryptedContent[i].type !== asn1.Type.OCTETSTRING) {\n throw new Error('Malformed PKCS#7 message, expecting encrypted ' +\n 'content constructed of only OCTET STRING objects.');\n }\n content += capture.encryptedContent[i].value;\n }\n } else {\n content = capture.encryptedContent;\n }\n msg.encryptedContent = {\n algorithm: asn1.derToOid(capture.encAlgorithm),\n parameter: forge.util.createBuffer(capture.encParameter.value),\n content: forge.util.createBuffer(content)\n };\n }\n\n if(capture.content) {\n var content = '';\n if(forge.util.isArray(capture.content)) {\n for(var i = 0; i < capture.content.length; ++i) {\n if(capture.content[i].type !== asn1.Type.OCTETSTRING) {\n throw new Error('Malformed PKCS#7 message, expecting ' +\n 'content constructed of only OCTET STRING objects.');\n }\n content += capture.content[i].value;\n }\n } else {\n content = capture.content;\n }\n msg.content = forge.util.createBuffer(content);\n }\n\n msg.version = capture.version.charCodeAt(0);\n msg.rawCapture = capture;\n\n return capture;\n}\n\n/**\n * Decrypt the symmetrically encrypted content block of the PKCS#7 message.\n *\n * Decryption is skipped in case the PKCS#7 message object already has a\n * (decrypted) content attribute. The algorithm, key and cipher parameters\n * (probably the iv) are taken from the encryptedContent attribute of the\n * message object.\n *\n * @param The PKCS#7 message object.\n */\nfunction _decryptContent(msg) {\n if(msg.encryptedContent.key === undefined) {\n throw new Error('Symmetric key not available.');\n }\n\n if(msg.content === undefined) {\n var ciph;\n\n switch(msg.encryptedContent.algorithm) {\n case forge.pki.oids['aes128-CBC']:\n case forge.pki.oids['aes192-CBC']:\n case forge.pki.oids['aes256-CBC']:\n ciph = forge.aes.createDecryptionCipher(msg.encryptedContent.key);\n break;\n\n case forge.pki.oids['desCBC']:\n case forge.pki.oids['des-EDE3-CBC']:\n ciph = forge.des.createDecryptionCipher(msg.encryptedContent.key);\n break;\n\n default:\n throw new Error('Unsupported symmetric cipher, OID ' +\n msg.encryptedContent.algorithm);\n }\n ciph.start(msg.encryptedContent.parameter);\n ciph.update(msg.encryptedContent.content);\n\n if(!ciph.finish()) {\n throw new Error('Symmetric decryption failed.');\n }\n\n msg.content = ciph.output;\n }\n}\n","/**\n * Functions to output keys in SSH-friendly formats.\n *\n * This is part of the Forge project which may be used under the terms of\n * either the BSD License or the GNU General Public License (GPL) Version 2.\n *\n * See: https://github.com/digitalbazaar/forge/blob/cbebca3780658703d925b61b2caffb1d263a6c1d/LICENSE\n *\n * @author https://github.com/shellac\n */\nvar forge = require('./forge');\nrequire('./aes');\nrequire('./hmac');\nrequire('./md5');\nrequire('./sha1');\nrequire('./util');\n\nvar ssh = module.exports = forge.ssh = forge.ssh || {};\n\n/**\n * Encodes (and optionally encrypts) a private RSA key as a Putty PPK file.\n *\n * @param privateKey the key.\n * @param passphrase a passphrase to protect the key (falsy for no encryption).\n * @param comment a comment to include in the key file.\n *\n * @return the PPK file as a string.\n */\nssh.privateKeyToPutty = function(privateKey, passphrase, comment) {\n comment = comment || '';\n passphrase = passphrase || '';\n var algorithm = 'ssh-rsa';\n var encryptionAlgorithm = (passphrase === '') ? 'none' : 'aes256-cbc';\n\n var ppk = 'PuTTY-User-Key-File-2: ' + algorithm + '\\r\\n';\n ppk += 'Encryption: ' + encryptionAlgorithm + '\\r\\n';\n ppk += 'Comment: ' + comment + '\\r\\n';\n\n // public key into buffer for ppk\n var pubbuffer = forge.util.createBuffer();\n _addStringToBuffer(pubbuffer, algorithm);\n _addBigIntegerToBuffer(pubbuffer, privateKey.e);\n _addBigIntegerToBuffer(pubbuffer, privateKey.n);\n\n // write public key\n var pub = forge.util.encode64(pubbuffer.bytes(), 64);\n var length = Math.floor(pub.length / 66) + 1; // 66 = 64 + \\r\\n\n ppk += 'Public-Lines: ' + length + '\\r\\n';\n ppk += pub;\n\n // private key into a buffer\n var privbuffer = forge.util.createBuffer();\n _addBigIntegerToBuffer(privbuffer, privateKey.d);\n _addBigIntegerToBuffer(privbuffer, privateKey.p);\n _addBigIntegerToBuffer(privbuffer, privateKey.q);\n _addBigIntegerToBuffer(privbuffer, privateKey.qInv);\n\n // optionally encrypt the private key\n var priv;\n if(!passphrase) {\n // use the unencrypted buffer\n priv = forge.util.encode64(privbuffer.bytes(), 64);\n } else {\n // encrypt RSA key using passphrase\n var encLen = privbuffer.length() + 16 - 1;\n encLen -= encLen % 16;\n\n // pad private key with sha1-d data -- needs to be a multiple of 16\n var padding = _sha1(privbuffer.bytes());\n\n padding.truncate(padding.length() - encLen + privbuffer.length());\n privbuffer.putBuffer(padding);\n\n var aeskey = forge.util.createBuffer();\n aeskey.putBuffer(_sha1('\\x00\\x00\\x00\\x00', passphrase));\n aeskey.putBuffer(_sha1('\\x00\\x00\\x00\\x01', passphrase));\n\n // encrypt some bytes using CBC mode\n // key is 40 bytes, so truncate *by* 8 bytes\n var cipher = forge.aes.createEncryptionCipher(aeskey.truncate(8), 'CBC');\n cipher.start(forge.util.createBuffer().fillWithByte(0, 16));\n cipher.update(privbuffer.copy());\n cipher.finish();\n var encrypted = cipher.output;\n\n // Note: this appears to differ from Putty -- is forge wrong, or putty?\n // due to padding we finish as an exact multiple of 16\n encrypted.truncate(16); // all padding\n\n priv = forge.util.encode64(encrypted.bytes(), 64);\n }\n\n // output private key\n length = Math.floor(priv.length / 66) + 1; // 64 + \\r\\n\n ppk += '\\r\\nPrivate-Lines: ' + length + '\\r\\n';\n ppk += priv;\n\n // MAC\n var mackey = _sha1('putty-private-key-file-mac-key', passphrase);\n\n var macbuffer = forge.util.createBuffer();\n _addStringToBuffer(macbuffer, algorithm);\n _addStringToBuffer(macbuffer, encryptionAlgorithm);\n _addStringToBuffer(macbuffer, comment);\n macbuffer.putInt32(pubbuffer.length());\n macbuffer.putBuffer(pubbuffer);\n macbuffer.putInt32(privbuffer.length());\n macbuffer.putBuffer(privbuffer);\n\n var hmac = forge.hmac.create();\n hmac.start('sha1', mackey);\n hmac.update(macbuffer.bytes());\n\n ppk += '\\r\\nPrivate-MAC: ' + hmac.digest().toHex() + '\\r\\n';\n\n return ppk;\n};\n\n/**\n * Encodes a public RSA key as an OpenSSH file.\n *\n * @param key the key.\n * @param comment a comment.\n *\n * @return the public key in OpenSSH format.\n */\nssh.publicKeyToOpenSSH = function(key, comment) {\n var type = 'ssh-rsa';\n comment = comment || '';\n\n var buffer = forge.util.createBuffer();\n _addStringToBuffer(buffer, type);\n _addBigIntegerToBuffer(buffer, key.e);\n _addBigIntegerToBuffer(buffer, key.n);\n\n return type + ' ' + forge.util.encode64(buffer.bytes()) + ' ' + comment;\n};\n\n/**\n * Encodes a private RSA key as an OpenSSH file.\n *\n * @param key the key.\n * @param passphrase a passphrase to protect the key (falsy for no encryption).\n *\n * @return the public key in OpenSSH format.\n */\nssh.privateKeyToOpenSSH = function(privateKey, passphrase) {\n if(!passphrase) {\n return forge.pki.privateKeyToPem(privateKey);\n }\n // OpenSSH private key is just a legacy format, it seems\n return forge.pki.encryptRsaPrivateKey(privateKey, passphrase,\n {legacy: true, algorithm: 'aes128'});\n};\n\n/**\n * Gets the SSH fingerprint for the given public key.\n *\n * @param options the options to use.\n * [md] the message digest object to use (defaults to forge.md.md5).\n * [encoding] an alternative output encoding, such as 'hex'\n * (defaults to none, outputs a byte buffer).\n * [delimiter] the delimiter to use between bytes for 'hex' encoded\n * output, eg: ':' (defaults to none).\n *\n * @return the fingerprint as a byte buffer or other encoding based on options.\n */\nssh.getPublicKeyFingerprint = function(key, options) {\n options = options || {};\n var md = options.md || forge.md.md5.create();\n\n var type = 'ssh-rsa';\n var buffer = forge.util.createBuffer();\n _addStringToBuffer(buffer, type);\n _addBigIntegerToBuffer(buffer, key.e);\n _addBigIntegerToBuffer(buffer, key.n);\n\n // hash public key bytes\n md.start();\n md.update(buffer.getBytes());\n var digest = md.digest();\n if(options.encoding === 'hex') {\n var hex = digest.toHex();\n if(options.delimiter) {\n return hex.match(/.{2}/g).join(options.delimiter);\n }\n return hex;\n } else if(options.encoding === 'binary') {\n return digest.getBytes();\n } else if(options.encoding) {\n throw new Error('Unknown encoding \"' + options.encoding + '\".');\n }\n return digest;\n};\n\n/**\n * Adds len(val) then val to a buffer.\n *\n * @param buffer the buffer to add to.\n * @param val a big integer.\n */\nfunction _addBigIntegerToBuffer(buffer, val) {\n var hexVal = val.toString(16);\n // ensure 2s complement +ve\n if(hexVal[0] >= '8') {\n hexVal = '00' + hexVal;\n }\n var bytes = forge.util.hexToBytes(hexVal);\n buffer.putInt32(bytes.length);\n buffer.putBytes(bytes);\n}\n\n/**\n * Adds len(val) then val to a buffer.\n *\n * @param buffer the buffer to add to.\n * @param val a string.\n */\nfunction _addStringToBuffer(buffer, val) {\n buffer.putInt32(val.length);\n buffer.putString(val);\n}\n\n/**\n * Hashes the arguments into one value using SHA-1.\n *\n * @return the sha1 hash of the provided arguments.\n */\nfunction _sha1() {\n var sha = forge.md.sha1.create();\n var num = arguments.length;\n for (var i = 0; i < num; ++i) {\n sha.update(arguments[i]);\n }\n return sha.digest();\n}\n","/**\n * Node.js module for Forge.\n *\n * @author Dave Longley\n *\n * Copyright 2011-2016 Digital Bazaar, Inc.\n */\nmodule.exports = require('./forge');\nrequire('./aes');\nrequire('./aesCipherSuites');\nrequire('./asn1');\nrequire('./cipher');\nrequire('./des');\nrequire('./ed25519');\nrequire('./hmac');\nrequire('./kem');\nrequire('./log');\nrequire('./md.all');\nrequire('./mgf1');\nrequire('./pbkdf2');\nrequire('./pem');\nrequire('./pkcs1');\nrequire('./pkcs12');\nrequire('./pkcs7');\nrequire('./pki');\nrequire('./prime');\nrequire('./prng');\nrequire('./pss');\nrequire('./random');\nrequire('./rc2');\nrequire('./ssh');\nrequire('./tls');\nrequire('./util');\n","import Key from \"./Key.js\";\nimport BadKeyError from \"./BadKeyError.js\";\nimport nacl from \"tweetnacl\";\nimport { arrayEqual } from \"./util/array.js\";\nimport * as hex from \"./encoding/hex.js\";\nimport forge from \"node-forge\";\n\nconst derPrefix = \"302a300506032b6570032100\";\nconst derPrefixBytes = hex.decode(derPrefix);\n\n/**\n * An public key on the Hedera™ network.\n */\nexport default class Ed25519PublicKey extends Key {\n /**\n * @internal\n * @hideconstructor\n * @param {Uint8Array} keyData\n */\n constructor(keyData) {\n super();\n\n /**\n * @type {Uint8Array}\n * @private\n * @readonly\n */\n this._keyData = keyData;\n }\n\n /**\n * @returns {string}\n */\n get _type() {\n return \"ED25519\";\n }\n\n /**\n * @param {Uint8Array} data\n * @returns {Ed25519PublicKey}\n */\n static fromBytes(data) {\n switch (data.length) {\n case 32:\n return Ed25519PublicKey.fromBytesRaw(data);\n case 44:\n return Ed25519PublicKey.fromBytesDer(data);\n default:\n throw new BadKeyError(\n `invalid public key length: ${data.length} bytes`,\n );\n }\n }\n\n /**\n * @param {Uint8Array} data\n * @returns {Ed25519PublicKey}\n */\n static fromBytesDer(data) {\n const asn = forge.asn1.fromDer(new forge.util.ByteStringBuffer(data));\n\n /** * @type {Uint8Array} */\n let publicKey;\n\n try {\n publicKey = forge.pki.ed25519.publicKeyFromAsn1(asn);\n } catch (error) {\n const message =\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n error != null && /** @type {Error} */ (error).message != null\n ? // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n /** @type {Error} */ (error).message\n : \"\";\n throw new BadKeyError(\n `cannot decode ED25519 public key data from DER format: ${message}`,\n );\n }\n\n return new Ed25519PublicKey(publicKey);\n }\n\n /**\n * @param {Uint8Array} data\n * @returns {Ed25519PublicKey}\n */\n static fromBytesRaw(data) {\n if (data.length != 32) {\n throw new BadKeyError(\n `invalid public key length: ${data.length} bytes`,\n );\n }\n\n return new Ed25519PublicKey(data);\n }\n\n /**\n * Parse a public key from a string of hexadecimal digits.\n *\n * The public key may optionally be prefixed with\n * the DER header.\n * @param {string} text\n * @returns {Ed25519PublicKey}\n */\n static fromString(text) {\n return Ed25519PublicKey.fromBytes(hex.decode(text));\n }\n\n /**\n * Verify a signature on a message with this public key.\n * @param {Uint8Array} message\n * @param {Uint8Array} signature\n * @returns {boolean}\n */\n verify(message, signature) {\n return nacl.sign.detached.verify(message, signature, this._keyData);\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytesDer() {\n const bytes = new Uint8Array(derPrefixBytes.length + 32);\n\n bytes.set(derPrefixBytes, 0);\n bytes.set(this._keyData.subarray(0, 32), derPrefixBytes.length);\n\n return bytes;\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytesRaw() {\n return this._keyData.slice();\n }\n\n /**\n * @param {Ed25519PublicKey} other\n * @returns {boolean}\n */\n equals(other) {\n return arrayEqual(this._keyData, other._keyData);\n }\n}\n","import nacl from \"tweetnacl\";\n\n/**\n * @param {number} count\n * @returns {Uint8Array}\n */\nexport function bytes(count) {\n return nacl.randomBytes(count);\n}\n\n/**\n * @param {number} count\n * @returns {Promise}\n */\nexport function bytesAsync(count) {\n return Promise.resolve(nacl.randomBytes(count));\n}\n","/**\n * @param {Uint8Array} data\n * @returns {string}\n */\nexport function decode(data) {\n // eslint-disable-next-line n/no-unsupported-features/node-builtins\n return new TextDecoder().decode(data);\n}\n\n/**\n * @param {string} text\n * @returns {Uint8Array}\n */\nexport function encode(text) {\n // eslint-disable-next-line n/no-unsupported-features/node-builtins\n return new TextEncoder().encode(text);\n}\n","import * as utf8 from \"../encoding/utf8.js\";\n\n/**\n * @enum {string}\n */\nexport const HashAlgorithm = {\n Sha256: \"SHA-256\",\n Sha384: \"SHA-384\",\n Sha512: \"SHA-512\",\n};\n\n/**\n * @param {HashAlgorithm} algorithm\n * @param {Uint8Array | string} secretKey\n * @param {Uint8Array | string} data\n * @returns {Promise}\n */\nexport async function hash(algorithm, secretKey, data) {\n const key =\n typeof secretKey === \"string\" ? utf8.encode(secretKey) : secretKey;\n const value = typeof data === \"string\" ? utf8.encode(data) : data;\n\n try {\n const key_ = await window.crypto.subtle.importKey(\n \"raw\",\n key,\n {\n name: \"HMAC\",\n hash: algorithm,\n },\n false,\n [\"sign\"],\n );\n\n return new Uint8Array(\n await window.crypto.subtle.sign(\"HMAC\", key_, value),\n );\n } catch {\n throw new Error(\"Fallback if SubtleCrypto fails is not implemented\");\n }\n}\n","import * as hmac from \"./hmac.js\";\nimport * as hex from \"../encoding/hex.js\";\nimport elliptic from \"elliptic\";\nimport BN from \"bn.js\";\n\nconst secp256k1 = new elliptic.ec(\"secp256k1\");\n\n// https://github.com/ethers-io/ethers.js/blob/master/packages/hdnode/src.ts/index.ts#L23\nconst N = new BN(\n \"fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141\",\n \"hex\",\n);\nconst HARDENED_BIT = 0x80000000;\n\n/**\n * Mostly copied from https://github.com/bitcoinjs/bip32/blob/master/ts-src/bip32.ts\n * We cannot use that library directly because it uses `Buffer` and we want to avoid\n * polyfills as much as possible. Also, we only need the `derive` function.\n * @param {Uint8Array} parentKey\n * @param {Uint8Array} chainCode\n * @param {number} index\n * @returns {Promise<{ keyData: Uint8Array; chainCode: Uint8Array }>}\n */\nexport async function derive(parentKey, chainCode, index) {\n const isHardened = isHardenedIndex(index);\n const data = new Uint8Array(37);\n\n const publicKey = hex.decode(\n secp256k1.keyFromPrivate(parentKey).getPublic(true, \"hex\"),\n );\n\n // Hardened child\n if (isHardened) {\n // data = 0x00 || ser256(kpar) || ser32(index)\n data[0] = 0x00;\n data.set(parentKey, 1);\n\n // Normal child\n } else {\n // data = serP(point(kpar)) || ser32(index)\n // = serP(Kpar) || ser32(index)\n data.set(publicKey, 0);\n }\n\n new DataView(data.buffer, data.byteOffset, data.byteLength).setUint32(\n 33,\n index,\n false,\n );\n\n const I = await hmac.hash(hmac.HashAlgorithm.Sha512, chainCode, data);\n const IL = I.subarray(0, 32);\n const IR = I.subarray(32);\n\n // if parse256(IL) >= n, proceed with the next value for i\n try {\n // ki = parse256(IL) + kpar (mod n)\n const ki = secp256k1\n .keyFromPrivate(parentKey)\n .getPrivate()\n .add(secp256k1.keyFromPrivate(IL).getPrivate())\n .mod(N);\n const hexZeroPadded = hex.hexZeroPadded(\n Uint8Array.from(ki.toArray()),\n 32,\n );\n // const ki = Buffer.from(ecc.privateAdd(this.privateKey!, IL)!);\n\n // In case ki == 0, proceed with the next value for i\n if (ki.eqn(0)) {\n return derive(parentKey, chainCode, index + 1);\n }\n\n return {\n keyData: hex.decode(hexZeroPadded),\n chainCode: IR,\n };\n } catch {\n return derive(parentKey, chainCode, index + 1);\n }\n}\n\n/**\n * @param {Uint8Array} seed\n * @returns {Promise<{ keyData: Uint8Array; chainCode: Uint8Array }>}\n */\nexport async function fromSeed(seed) {\n if (seed.length < 16)\n throw new TypeError(\"Seed should be at least 128 bits\");\n if (seed.length > 64)\n throw new TypeError(\"Seed should be at most 512 bits\");\n\n const I = await hmac.hash(hmac.HashAlgorithm.Sha512, \"Bitcoin seed\", seed);\n\n const IL = I.subarray(0, 32);\n const IR = I.subarray(32);\n\n return { keyData: IL, chainCode: IR };\n}\n\n/**\n * Harden the index\n * @param {number} index the derivation index\n * @returns {number} the hardened index\n */\nexport function toHardenedIndex(index) {\n return index | HARDENED_BIT;\n}\n\n/**\n * Check if the index is hardened\n * @param {number} index the derivation index\n * @returns {boolean} true if the index is hardened\n */\nexport function isHardenedIndex(index) {\n return (index & HARDENED_BIT) !== 0;\n}\n","import * as hmac from \"../primitive/hmac.js\";\nimport * as bip32 from \"../primitive/bip32.js\";\n\n/**\n * @param {Uint8Array} parentKey\n * @param {Uint8Array} chainCode\n * @param {number} index\n * @returns {Promise<{ keyData: Uint8Array; chainCode: Uint8Array }>}\n */\nexport async function derive(parentKey, chainCode, index) {\n if (bip32.isHardenedIndex(index)) {\n throw new Error(\"the index should not be pre-hardened\");\n }\n\n const input = new Uint8Array(37);\n\n // 0x00 + parentKey + index(BE)\n input[0] = 0;\n input.set(parentKey, 1);\n new DataView(input.buffer, input.byteOffset, input.byteLength).setUint32(\n 33,\n index,\n false,\n );\n\n // set the index to hardened\n input[33] |= 128;\n\n const digest = await hmac.hash(hmac.HashAlgorithm.Sha512, chainCode, input);\n\n return { keyData: digest.subarray(0, 32), chainCode: digest.subarray(32) };\n}\n\n/**\n * @param {Uint8Array} seed\n * @returns {Promise<{ keyData: Uint8Array; chainCode: Uint8Array }>}\n */\nexport async function fromSeed(seed) {\n const digest = await hmac.hash(\n hmac.HashAlgorithm.Sha512,\n \"ed25519 seed\",\n seed,\n );\n\n return { keyData: digest.subarray(0, 32), chainCode: digest.subarray(32) };\n}\n","import BadKeyError from \"./BadKeyError.js\";\nimport Ed25519PublicKey from \"./Ed25519PublicKey.js\";\nimport nacl from \"tweetnacl\";\nimport * as hex from \"./encoding/hex.js\";\nimport * as random from \"./primitive/random.js\";\nimport * as slip10 from \"./primitive/slip10.js\";\nimport forge from \"node-forge\";\n\nexport const derPrefix = \"302e020100300506032b657004220420\";\nexport const derPrefixBytes = hex.decode(derPrefix);\n\nexport default class Ed25519PrivateKey {\n /**\n * @hideconstructor\n * @internal\n * @param {nacl.SignKeyPair | Uint8Array} keyPair\n * @param {Uint8Array=} chainCode\n */\n constructor(keyPair, chainCode) {\n /**\n * @type {nacl.SignKeyPair}\n * @readonly\n * @private\n */\n this._keyPair =\n keyPair instanceof Uint8Array\n ? nacl.sign.keyPair.fromSeed(keyPair)\n : keyPair;\n\n /**\n * @type {?Uint8Array}\n * @readonly\n */\n this._chainCode = chainCode != null ? chainCode : null;\n }\n\n /**\n * @returns {string}\n */\n get _type() {\n return \"ED25519\";\n }\n\n /**\n * Generate a random Ed25519 private key.\n * @returns {Ed25519PrivateKey}\n */\n static generate() {\n // 32 bytes for the secret key\n // 32 bytes for the chain code (to support derivation)\n const entropy = random.bytes(64);\n\n return new Ed25519PrivateKey(\n nacl.sign.keyPair.fromSeed(entropy.subarray(0, 32)),\n entropy.subarray(32),\n );\n }\n\n /**\n * Generate a random Ed25519 private key.\n * @returns {Promise}\n */\n static async generateAsync() {\n // 32 bytes for the secret key\n // 32 bytes for the chain code (to support derivation)\n const entropy = await random.bytesAsync(64);\n\n return new Ed25519PrivateKey(\n nacl.sign.keyPair.fromSeed(entropy.subarray(0, 32)),\n entropy.subarray(32),\n );\n }\n\n /**\n * Construct a private key from bytes.\n * @param {Uint8Array} data\n * @returns {Ed25519PrivateKey}\n */\n static fromBytes(data) {\n switch (data.length) {\n case 48:\n return Ed25519PrivateKey.fromBytesDer(data);\n case 32:\n case 64:\n return Ed25519PrivateKey.fromBytesRaw(data);\n default:\n throw new BadKeyError(\n `invalid private key length: ${data.length} bytes`,\n );\n }\n }\n\n /**\n * Construct a private key from bytes with DER header.\n * @param {Uint8Array} data\n * @returns {Ed25519PrivateKey}\n */\n static fromBytesDer(data) {\n const asn = forge.asn1.fromDer(new forge.util.ByteStringBuffer(data));\n\n /** * @type {Uint8Array} */\n let privateKey;\n\n try {\n privateKey =\n forge.pki.ed25519.privateKeyFromAsn1(asn).privateKeyBytes;\n } catch (error) {\n const message =\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n error != null && /** @type {Error} */ (error).message != null\n ? // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n /** @type {Error} */ (error).message\n : \"\";\n throw new BadKeyError(\n `cannot decode ED25519 private key data from DER format: ${message}`,\n );\n }\n\n const keyPair = nacl.sign.keyPair.fromSeed(privateKey);\n return new Ed25519PrivateKey(keyPair);\n }\n\n /**\n * Construct a private key from bytes without DER header.\n * @param {Uint8Array} data\n * @returns {Ed25519PrivateKey}\n */\n static fromBytesRaw(data) {\n switch (data.length) {\n case 32:\n return new Ed25519PrivateKey(nacl.sign.keyPair.fromSeed(data));\n\n case 64:\n // priv + pub key\n return new Ed25519PrivateKey(\n nacl.sign.keyPair.fromSecretKey(data),\n );\n\n default:\n }\n\n throw new BadKeyError(\n `invalid private key length: ${data.length} bytes`,\n );\n }\n\n /**\n * Construct a private key from a hex-encoded string.\n * @param {string} text\n * @returns {Ed25519PrivateKey}\n */\n static fromString(text) {\n return Ed25519PrivateKey.fromBytes(hex.decode(text));\n }\n\n /**\n * Construct a private key from a hex-encoded string.\n * @param {string} text\n * @returns {Ed25519PrivateKey}\n */\n static fromStringDer(text) {\n return Ed25519PrivateKey.fromBytesDer(hex.decode(text));\n }\n\n /**\n * Construct a private key from a hex-encoded string.\n * @param {string} text\n * @returns {Ed25519PrivateKey}\n */\n static fromStringRaw(text) {\n return Ed25519PrivateKey.fromBytesRaw(hex.decode(text));\n }\n\n /**\n * Construct a ED25519 private key from a Uint8Array seed.\n * @param {Uint8Array} seed\n * @returns {Promise}\n */\n static async fromSeed(seed) {\n const { keyData, chainCode } = await slip10.fromSeed(seed);\n return new Ed25519PrivateKey(keyData, chainCode);\n }\n\n /**\n * Get the public key associated with this private key.\n *\n * The public key can be freely given and used by other parties to verify\n * the signatures generated by this private key.\n * @returns {Ed25519PublicKey}\n */\n get publicKey() {\n return new Ed25519PublicKey(this._keyPair.publicKey);\n }\n\n /**\n * Sign a message with this private key.\n * @param {Uint8Array} bytes\n * @returns {Uint8Array} - The signature bytes without the message\n */\n sign(bytes) {\n return nacl.sign.detached(bytes, this._keyPair.secretKey);\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytesDer() {\n const bytes = new Uint8Array(derPrefixBytes.length + 32);\n const privateKey = this._keyPair.secretKey.subarray(0, 32);\n const leadingZeroes = 32 - privateKey.length;\n const privateKeyOffset = derPrefixBytes.length + leadingZeroes;\n\n bytes.set(derPrefixBytes, 0);\n bytes.set(privateKey, privateKeyOffset);\n\n return bytes;\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytesRaw() {\n // copy the bytes so they can't be modified accidentally\n return this._keyPair.secretKey.slice(0, 32);\n }\n}\n","// Originally sourced from:\n// https://github.com/MaiaVictor/eth-lib/blob/da0971f5b09964d9c8449975fa87933f0c9fef35/src/hash.js\n// - added type declarations\n// - switched to es6 module syntax\n//\n// Disable linting for entire file because it's nearly all pure JS\n// eslint-disable\n\nconst HEX_CHARS = \"0123456789abcdef\".split(\"\");\nconst KECCAK_PADDING = [1, 256, 65536, 16777216];\nconst SHIFT = [0, 8, 16, 24];\nconst RC = [\n 1, 0, 32898, 0, 32906, 2147483648, 2147516416, 2147483648, 32907, 0,\n 2147483649, 0, 2147516545, 2147483648, 32777, 2147483648, 138, 0, 136, 0,\n 2147516425, 0, 2147483658, 0, 2147516555, 0, 139, 2147483648, 32905,\n 2147483648, 32771, 2147483648, 32770, 2147483648, 128, 2147483648, 32778, 0,\n 2147483658, 2147483648, 2147516545, 2147483648, 32896, 2147483648,\n 2147483649, 0, 2147516424, 2147483648,\n];\n\n/**\n * @typedef {object} KeccakT\n * @property {number[]} blocks\n * @property {number} blockCount\n * @property {number} outputBlocks\n * @property {number[]} s\n * @property {number} start\n * @property {number} block\n * @property {boolean} reset\n * @property {number=} lastByteIndex\n */\n\n/** @type {(bits: number) => KeccakT} */\nconst Keccak = (bits) => ({\n blocks: [],\n reset: true,\n block: 0,\n start: 0,\n blockCount: (1600 - (bits << 1)) >> 5,\n outputBlocks: bits >> 5,\n // @ts-ignore\n s: ((s) => [].concat(s, s, s, s, s))([0, 0, 0, 0, 0, 0, 0, 0, 0, 0]),\n});\n\n/** @type {(state: KeccakT, message: string | number[]) => string} */\nconst update = (state, /** @type {string | number[]} */ message) => {\n var length = message.length,\n blocks = state.blocks,\n byteCount = state.blockCount << 2,\n blockCount = state.blockCount,\n outputBlocks = state.outputBlocks,\n s = state.s,\n index = 0,\n i,\n code;\n\n // update\n while (index < length) {\n if (state.reset) {\n state.reset = false;\n blocks[0] = state.block;\n for (i = 1; i < blockCount + 1; ++i) {\n blocks[i] = 0;\n }\n }\n if (typeof message !== \"string\") {\n for (i = state.start; index < length && i < byteCount; ++index) {\n blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];\n }\n } else {\n for (i = state.start; index < length && i < byteCount; ++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] |=\n (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else {\n code =\n 0x10000 +\n (((code & 0x3ff) << 10) |\n (message.charCodeAt(++index) & 0x3ff));\n blocks[i >> 2] |= (0xf0 | (code >> 18)) << SHIFT[i++ & 3];\n blocks[i >> 2] |=\n (0x80 | ((code >> 12) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |=\n (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n }\n }\n }\n state.lastByteIndex = i;\n if (i >= byteCount) {\n state.start = i - byteCount;\n state.block = blocks[blockCount];\n for (i = 0; i < blockCount; ++i) {\n s[i] ^= blocks[i];\n }\n f(s);\n state.reset = true;\n } else {\n state.start = i;\n }\n }\n\n // finalize\n i = state.lastByteIndex;\n // @ts-ignore\n blocks[i >> 2] |= KECCAK_PADDING[i & 3];\n if (state.lastByteIndex === byteCount) {\n blocks[0] = blocks[blockCount];\n for (i = 1; i < blockCount + 1; ++i) {\n blocks[i] = 0;\n }\n }\n blocks[blockCount - 1] |= 0x80000000;\n for (i = 0; i < blockCount; ++i) {\n s[i] ^= blocks[i];\n }\n f(s);\n\n // toString\n var hex = \"\";\n var block;\n var j = 0;\n i = 0;\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n block = s[i];\n hex +=\n HEX_CHARS[(block >> 4) & 0x0f] +\n HEX_CHARS[block & 0x0f] +\n HEX_CHARS[(block >> 12) & 0x0f] +\n HEX_CHARS[(block >> 8) & 0x0f] +\n HEX_CHARS[(block >> 20) & 0x0f] +\n HEX_CHARS[(block >> 16) & 0x0f] +\n HEX_CHARS[(block >> 28) & 0x0f] +\n HEX_CHARS[(block >> 24) & 0x0f];\n }\n if (j % blockCount === 0) {\n f(s);\n i = 0;\n }\n }\n // @ts-ignore\n return \"0x\" + hex;\n};\n\n/** @type {(s: number[]) => void} */\nconst f = (s) => {\n var h,\n l,\n n,\n c0,\n c1,\n c2,\n c3,\n c4,\n c5,\n c6,\n c7,\n c8,\n c9,\n b0,\n b1,\n b2,\n b3,\n b4,\n b5,\n b6,\n b7,\n b8,\n b9,\n b10,\n b11,\n b12,\n b13,\n b14,\n b15,\n b16,\n b17,\n b18,\n b19,\n b20,\n b21,\n b22,\n b23,\n b24,\n b25,\n b26,\n b27,\n b28,\n b29,\n b30,\n b31,\n b32,\n b33,\n b34,\n b35,\n b36,\n b37,\n b38,\n b39,\n b40,\n b41,\n b42,\n b43,\n b44,\n b45,\n b46,\n b47,\n b48,\n b49;\n\n for (n = 0; n < 48; n += 2) {\n c0 = s[0] ^ s[10] ^ s[20] ^ s[30] ^ s[40];\n c1 = s[1] ^ s[11] ^ s[21] ^ s[31] ^ s[41];\n c2 = s[2] ^ s[12] ^ s[22] ^ s[32] ^ s[42];\n c3 = s[3] ^ s[13] ^ s[23] ^ s[33] ^ s[43];\n c4 = s[4] ^ s[14] ^ s[24] ^ s[34] ^ s[44];\n c5 = s[5] ^ s[15] ^ s[25] ^ s[35] ^ s[45];\n c6 = s[6] ^ s[16] ^ s[26] ^ s[36] ^ s[46];\n c7 = s[7] ^ s[17] ^ s[27] ^ s[37] ^ s[47];\n c8 = s[8] ^ s[18] ^ s[28] ^ s[38] ^ s[48];\n c9 = s[9] ^ s[19] ^ s[29] ^ s[39] ^ s[49];\n\n h = c8 ^ ((c2 << 1) | (c3 >>> 31));\n l = c9 ^ ((c3 << 1) | (c2 >>> 31));\n s[0] ^= h;\n s[1] ^= l;\n s[10] ^= h;\n s[11] ^= l;\n s[20] ^= h;\n s[21] ^= l;\n s[30] ^= h;\n s[31] ^= l;\n s[40] ^= h;\n s[41] ^= l;\n h = c0 ^ ((c4 << 1) | (c5 >>> 31));\n l = c1 ^ ((c5 << 1) | (c4 >>> 31));\n s[2] ^= h;\n s[3] ^= l;\n s[12] ^= h;\n s[13] ^= l;\n s[22] ^= h;\n s[23] ^= l;\n s[32] ^= h;\n s[33] ^= l;\n s[42] ^= h;\n s[43] ^= l;\n h = c2 ^ ((c6 << 1) | (c7 >>> 31));\n l = c3 ^ ((c7 << 1) | (c6 >>> 31));\n s[4] ^= h;\n s[5] ^= l;\n s[14] ^= h;\n s[15] ^= l;\n s[24] ^= h;\n s[25] ^= l;\n s[34] ^= h;\n s[35] ^= l;\n s[44] ^= h;\n s[45] ^= l;\n h = c4 ^ ((c8 << 1) | (c9 >>> 31));\n l = c5 ^ ((c9 << 1) | (c8 >>> 31));\n s[6] ^= h;\n s[7] ^= l;\n s[16] ^= h;\n s[17] ^= l;\n s[26] ^= h;\n s[27] ^= l;\n s[36] ^= h;\n s[37] ^= l;\n s[46] ^= h;\n s[47] ^= l;\n h = c6 ^ ((c0 << 1) | (c1 >>> 31));\n l = c7 ^ ((c1 << 1) | (c0 >>> 31));\n s[8] ^= h;\n s[9] ^= l;\n s[18] ^= h;\n s[19] ^= l;\n s[28] ^= h;\n s[29] ^= l;\n s[38] ^= h;\n s[39] ^= l;\n s[48] ^= h;\n s[49] ^= l;\n\n b0 = s[0];\n b1 = s[1];\n b32 = (s[11] << 4) | (s[10] >>> 28);\n b33 = (s[10] << 4) | (s[11] >>> 28);\n b14 = (s[20] << 3) | (s[21] >>> 29);\n b15 = (s[21] << 3) | (s[20] >>> 29);\n b46 = (s[31] << 9) | (s[30] >>> 23);\n b47 = (s[30] << 9) | (s[31] >>> 23);\n b28 = (s[40] << 18) | (s[41] >>> 14);\n b29 = (s[41] << 18) | (s[40] >>> 14);\n b20 = (s[2] << 1) | (s[3] >>> 31);\n b21 = (s[3] << 1) | (s[2] >>> 31);\n b2 = (s[13] << 12) | (s[12] >>> 20);\n b3 = (s[12] << 12) | (s[13] >>> 20);\n b34 = (s[22] << 10) | (s[23] >>> 22);\n b35 = (s[23] << 10) | (s[22] >>> 22);\n b16 = (s[33] << 13) | (s[32] >>> 19);\n b17 = (s[32] << 13) | (s[33] >>> 19);\n b48 = (s[42] << 2) | (s[43] >>> 30);\n b49 = (s[43] << 2) | (s[42] >>> 30);\n b40 = (s[5] << 30) | (s[4] >>> 2);\n b41 = (s[4] << 30) | (s[5] >>> 2);\n b22 = (s[14] << 6) | (s[15] >>> 26);\n b23 = (s[15] << 6) | (s[14] >>> 26);\n b4 = (s[25] << 11) | (s[24] >>> 21);\n b5 = (s[24] << 11) | (s[25] >>> 21);\n b36 = (s[34] << 15) | (s[35] >>> 17);\n b37 = (s[35] << 15) | (s[34] >>> 17);\n b18 = (s[45] << 29) | (s[44] >>> 3);\n b19 = (s[44] << 29) | (s[45] >>> 3);\n b10 = (s[6] << 28) | (s[7] >>> 4);\n b11 = (s[7] << 28) | (s[6] >>> 4);\n b42 = (s[17] << 23) | (s[16] >>> 9);\n b43 = (s[16] << 23) | (s[17] >>> 9);\n b24 = (s[26] << 25) | (s[27] >>> 7);\n b25 = (s[27] << 25) | (s[26] >>> 7);\n b6 = (s[36] << 21) | (s[37] >>> 11);\n b7 = (s[37] << 21) | (s[36] >>> 11);\n b38 = (s[47] << 24) | (s[46] >>> 8);\n b39 = (s[46] << 24) | (s[47] >>> 8);\n b30 = (s[8] << 27) | (s[9] >>> 5);\n b31 = (s[9] << 27) | (s[8] >>> 5);\n b12 = (s[18] << 20) | (s[19] >>> 12);\n b13 = (s[19] << 20) | (s[18] >>> 12);\n b44 = (s[29] << 7) | (s[28] >>> 25);\n b45 = (s[28] << 7) | (s[29] >>> 25);\n b26 = (s[38] << 8) | (s[39] >>> 24);\n b27 = (s[39] << 8) | (s[38] >>> 24);\n b8 = (s[48] << 14) | (s[49] >>> 18);\n b9 = (s[49] << 14) | (s[48] >>> 18);\n\n s[0] = b0 ^ (~b2 & b4);\n s[1] = b1 ^ (~b3 & b5);\n s[10] = b10 ^ (~b12 & b14);\n s[11] = b11 ^ (~b13 & b15);\n s[20] = b20 ^ (~b22 & b24);\n s[21] = b21 ^ (~b23 & b25);\n s[30] = b30 ^ (~b32 & b34);\n s[31] = b31 ^ (~b33 & b35);\n s[40] = b40 ^ (~b42 & b44);\n s[41] = b41 ^ (~b43 & b45);\n s[2] = b2 ^ (~b4 & b6);\n s[3] = b3 ^ (~b5 & b7);\n s[12] = b12 ^ (~b14 & b16);\n s[13] = b13 ^ (~b15 & b17);\n s[22] = b22 ^ (~b24 & b26);\n s[23] = b23 ^ (~b25 & b27);\n s[32] = b32 ^ (~b34 & b36);\n s[33] = b33 ^ (~b35 & b37);\n s[42] = b42 ^ (~b44 & b46);\n s[43] = b43 ^ (~b45 & b47);\n s[4] = b4 ^ (~b6 & b8);\n s[5] = b5 ^ (~b7 & b9);\n s[14] = b14 ^ (~b16 & b18);\n s[15] = b15 ^ (~b17 & b19);\n s[24] = b24 ^ (~b26 & b28);\n s[25] = b25 ^ (~b27 & b29);\n s[34] = b34 ^ (~b36 & b38);\n s[35] = b35 ^ (~b37 & b39);\n s[44] = b44 ^ (~b46 & b48);\n s[45] = b45 ^ (~b47 & b49);\n s[6] = b6 ^ (~b8 & b0);\n s[7] = b7 ^ (~b9 & b1);\n s[16] = b16 ^ (~b18 & b10);\n s[17] = b17 ^ (~b19 & b11);\n s[26] = b26 ^ (~b28 & b20);\n s[27] = b27 ^ (~b29 & b21);\n s[36] = b36 ^ (~b38 & b30);\n s[37] = b37 ^ (~b39 & b31);\n s[46] = b46 ^ (~b48 & b40);\n s[47] = b47 ^ (~b49 & b41);\n s[8] = b8 ^ (~b0 & b2);\n s[9] = b9 ^ (~b1 & b3);\n s[18] = b18 ^ (~b10 & b12);\n s[19] = b19 ^ (~b11 & b13);\n s[28] = b28 ^ (~b20 & b22);\n s[29] = b29 ^ (~b21 & b23);\n s[38] = b38 ^ (~b30 & b32);\n s[39] = b39 ^ (~b31 & b33);\n s[48] = b48 ^ (~b40 & b42);\n s[49] = b49 ^ (~b41 & b43);\n\n s[0] ^= RC[n];\n s[1] ^= RC[n + 1];\n }\n};\n\nconst keccak = (/** @type {number} */ bits) => (/** @type {string} */ str) => {\n var msg;\n if (str.slice(0, 2) === \"0x\") {\n msg = [];\n for (var i = 2, l = str.length; i < l; i += 2)\n msg.push(parseInt(str.slice(i, i + 2), 16));\n } else {\n msg = str;\n }\n // @ts-ignore\n return update(Keccak(bits), msg);\n};\n\n/**\n * @type {(message: string) => string}\n */\nexport const keccak256 = keccak(256);\n","import { keccak256 } from \"./keccak.js\";\nimport * as hex from \"../encoding/hex.js\";\nimport elliptic from \"elliptic\";\n\nconst secp256k1 = new elliptic.ec(\"secp256k1\");\n\n/**\n * @typedef {import(\"../EcdsaPrivateKey.js\").KeyPair} KeyPair\n */\n\n/**\n * @returns {KeyPair}\n */\nexport function generate() {\n const keypair = secp256k1.genKeyPair();\n\n return {\n privateKey: hex.decode(keypair.getPrivate(\"hex\")),\n publicKey: hex.decode(keypair.getPublic(true, \"hex\")),\n };\n}\n\n/**\n * @returns {Promise}\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport async function generateAsync() {\n return Promise.resolve(generate());\n}\n\n/**\n * @param {Uint8Array} data\n * @returns {KeyPair}\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function fromBytes(data) {\n const keypair = secp256k1.keyFromPrivate(data);\n\n return {\n privateKey: hex.decode(keypair.getPrivate(\"hex\")),\n publicKey: hex.decode(keypair.getPublic(true, \"hex\")),\n };\n}\n\n/**\n * @param {Uint8Array} data\n * @returns {Uint8Array}\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function getFullPublicKey(data) {\n const keypair = secp256k1.keyFromPublic(data);\n\n return hex.decode(keypair.getPublic(false, \"hex\"));\n}\n\n/**\n * @param {Uint8Array} keydata\n * @param {Uint8Array} message\n * @returns {Uint8Array}\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function sign(keydata, message) {\n const msg = hex.encode(message);\n const data = hex.decode(keccak256(`0x${msg}`));\n const keypair = secp256k1.keyFromPrivate(keydata);\n const signature = keypair.sign(data);\n\n const r = signature.r.toArray(\"be\", 32);\n const s = signature.s.toArray(\"be\", 32);\n\n const result = new Uint8Array(64);\n result.set(r, 0);\n result.set(s, 32);\n return result;\n}\n\n/**\n * @param {Uint8Array} keydata\n * @param {Uint8Array} message\n * @param {Uint8Array} signature\n * @returns {boolean}\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function verify(keydata, message, signature) {\n const msg = hex.encode(message);\n const data = hex.decode(keccak256(`0x${msg}`));\n const keypair = secp256k1.keyFromPublic(keydata);\n\n return keypair.verify(data, {\n r: signature.subarray(0, 32),\n s: signature.subarray(32, 64),\n });\n}\n","import Key from \"./Key.js\";\nimport BadKeyError from \"./BadKeyError.js\";\nimport { arrayEqual } from \"./util/array.js\";\nimport * as hex from \"./encoding/hex.js\";\nimport * as ecdsa from \"./primitive/ecdsa.js\";\nimport { keccak256 } from \"./primitive/keccak.js\";\nimport elliptic from \"elliptic\";\nconst ec = new elliptic.ec(\"secp256k1\");\n\nconst legacyDerPrefix = \"302d300706052b8104000a032200\";\nconst legacyDerPrefixBytes = hex.decode(legacyDerPrefix);\n\nconst derPrefix = \"3036301006072a8648ce3d020106052b8104000a032200\";\nconst derPrefixBytes = hex.decode(derPrefix);\n\n/**\n * An public key on the Hedera™ network.\n */\nexport default class EcdsaPublicKey extends Key {\n /**\n * @internal\n * @hideconstructor\n * @param {Uint8Array} keyData\n */\n constructor(keyData) {\n super();\n\n /**\n * @type {Uint8Array}\n * @private\n * @readonly\n */\n this._keyData = keyData;\n }\n\n /**\n * @returns {string}\n */\n get _type() {\n return \"secp256k1\";\n }\n\n /**\n * @param {Uint8Array} data\n * @returns {EcdsaPublicKey}\n */\n static fromBytes(data) {\n switch (data.length) {\n case 33:\n return EcdsaPublicKey.fromBytesRaw(data);\n default:\n return EcdsaPublicKey.fromBytesDer(data);\n }\n }\n\n /**\n * @param {Uint8Array} data\n * @returns {EcdsaPublicKey}\n */\n static fromBytesDer(data) {\n let ecdsaPublicKeyBytes = new Uint8Array();\n\n switch (data.length) {\n case 47: // In the case of legace DER prefix\n ecdsaPublicKeyBytes = data.subarray(\n legacyDerPrefixBytes.length,\n );\n break;\n case 56: // The lengths of all other bytePrefixes is equal, so we treat them equally\n ecdsaPublicKeyBytes = data.subarray(\n derPrefixBytes.length,\n derPrefixBytes.length + 33,\n );\n break;\n default: // In the case of uncompressed DER prefix public keys\n /* eslint-disable no-case-declarations */\n const keyPair = ec.keyFromPublic(\n data.subarray(derPrefixBytes.length),\n \"der\",\n );\n\n const pk = keyPair.getPublic();\n\n const compressedPublicKeyBytes = pk.encodeCompressed(\"hex\");\n ecdsaPublicKeyBytes = hex.decode(compressedPublicKeyBytes);\n break;\n /* eslint-enable no-case-declarations */\n }\n if (ecdsaPublicKeyBytes.length == 0) {\n throw new BadKeyError(\n `cannot decode ECDSA private key data from DER format`,\n );\n }\n return new EcdsaPublicKey(ecdsaPublicKeyBytes);\n }\n\n /**\n * @param {Uint8Array} data\n * @returns {EcdsaPublicKey}\n */\n static fromBytesRaw(data) {\n if (data.length != 33) {\n throw new BadKeyError(\n `invalid public key length: ${data.length} bytes`,\n );\n }\n\n return new EcdsaPublicKey(data);\n }\n\n /**\n * Parse a public key from a string of hexadecimal digits.\n *\n * The public key may optionally be prefixed with\n * the DER header.\n * @param {string} text\n * @returns {EcdsaPublicKey}\n */\n static fromString(text) {\n return EcdsaPublicKey.fromBytes(hex.decode(text));\n }\n\n /**\n * Verify a signature on a message with this public key.\n * @param {Uint8Array} message\n * @param {Uint8Array} signature\n * @returns {boolean}\n */\n verify(message, signature) {\n return ecdsa.verify(this._keyData, message, signature);\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytesDer() {\n const bytes = new Uint8Array(\n legacyDerPrefixBytes.length + this._keyData.length,\n );\n\n bytes.set(legacyDerPrefixBytes, 0);\n bytes.set(this._keyData, legacyDerPrefixBytes.length);\n\n return bytes;\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytesRaw() {\n return new Uint8Array(this._keyData.subarray());\n }\n\n /**\n * @returns {string}\n */\n toEthereumAddress() {\n const hash = hex.decode(\n keccak256(\n `0x${hex.encode(\n ecdsa.getFullPublicKey(this.toBytesRaw()).subarray(1),\n )}`,\n ),\n );\n return hex.encode(hash.subarray(12));\n }\n\n /**\n * @param {EcdsaPublicKey} other\n * @returns {boolean}\n */\n equals(other) {\n return arrayEqual(this._keyData, other._keyData);\n }\n}\n","import EcdsaPublicKey from \"./EcdsaPublicKey.js\";\nimport * as hex from \"./encoding/hex.js\";\nimport * as ecdsa from \"./primitive/ecdsa.js\";\nimport * as bip32 from \"./primitive/bip32.js\";\nimport { arrayStartsWith } from \"./util/array.js\";\n\nconst derPrefix = \"3030020100300706052b8104000a04220420\";\nconst derPrefixBytes = hex.decode(derPrefix);\n\nconst derPrefix2 = \"30540201010420\";\nconst derPrefixBytes2 = hex.decode(derPrefix2);\n\n/**\n * @typedef {object} KeyPair\n * @property {Uint8Array} publicKey\n * @property {Uint8Array} privateKey\n */\n\nexport default class EcdsaPrivateKey {\n /**\n * @hideconstructor\n * @internal\n * @param {KeyPair} keyPair\n * @param {(Uint8Array)=} chainCode\n */\n constructor(keyPair, chainCode) {\n /**\n * @type {KeyPair}\n * @readonly\n * @private\n */\n this._keyPair = keyPair;\n\n /**\n * @type {?Uint8Array}\n * @readonly\n */\n this._chainCode = chainCode != null ? chainCode : null;\n }\n\n /**\n * @returns {string}\n */\n get _type() {\n return \"secp256k1\";\n }\n\n /**\n * Generate a random ECDSA private key.\n * @returns {EcdsaPrivateKey}\n */\n static generate() {\n return new EcdsaPrivateKey(ecdsa.generate());\n }\n\n /**\n * Generate a random Ed25519 private key.\n * @returns {Promise}\n */\n static async generateAsync() {\n return new EcdsaPrivateKey(await ecdsa.generateAsync());\n }\n\n /**\n * Construct a private key from bytes.\n * @param {Uint8Array} data\n * @returns {EcdsaPrivateKey}\n */\n static fromBytes(data) {\n switch (data.length) {\n case 32:\n return EcdsaPrivateKey.fromBytesRaw(data);\n default:\n return EcdsaPrivateKey.fromBytesDer(data);\n }\n }\n\n /**\n * Construct a private key from bytes.\n * @param {Uint8Array} data\n * @returns {EcdsaPrivateKey}\n */\n static fromBytesDer(data) {\n let ecdsaPrivateKeyBytes = new Uint8Array();\n\n if (arrayStartsWith(data, derPrefixBytes)) {\n ecdsaPrivateKeyBytes = data.subarray(derPrefixBytes.length);\n } else {\n // For now, we assume that if we get to the `else` statement\n // the lengths of all other bytePrefixes is equal, so we treat them equally\n ecdsaPrivateKeyBytes = data.subarray(\n derPrefixBytes2.length,\n derPrefixBytes2.length + 32,\n );\n }\n\n return new EcdsaPrivateKey(ecdsa.fromBytes(ecdsaPrivateKeyBytes));\n }\n\n /**\n * Construct a private key from bytes.\n * @param {Uint8Array} data\n * @returns {EcdsaPrivateKey}\n */\n static fromBytesRaw(data) {\n return new EcdsaPrivateKey(ecdsa.fromBytes(data));\n }\n\n /**\n * Construct a private key from a hex-encoded string.\n * @param {string} text\n * @returns {EcdsaPrivateKey}\n */\n static fromString(text) {\n return EcdsaPrivateKey.fromBytes(hex.decode(text));\n }\n\n /**\n * Construct a private key from a hex-encoded string.\n * @param {string} text\n * @returns {EcdsaPrivateKey}\n */\n static fromStringDer(text) {\n return EcdsaPrivateKey.fromBytesDer(hex.decode(text));\n }\n\n /**\n * Construct a private key from a hex-encoded string.\n * @param {string} text\n * @returns {EcdsaPrivateKey}\n */\n static fromStringRaw(text) {\n return EcdsaPrivateKey.fromBytesRaw(hex.decode(text));\n }\n\n /**\n * Construct a ECDSA private key from a Uint8Array seed.\n * @param {Uint8Array} seed\n * @returns {Promise}\n */\n static async fromSeed(seed) {\n const { keyData, chainCode } = await bip32.fromSeed(seed);\n return new EcdsaPrivateKey(ecdsa.fromBytes(keyData), chainCode);\n }\n\n /**\n * Get the public key associated with this private key.\n *\n * The public key can be freely given and used by other parties to verify\n * the signatures generated by this private key.\n * @returns {EcdsaPublicKey}\n */\n get publicKey() {\n return new EcdsaPublicKey(this._keyPair.publicKey);\n }\n\n /**\n * Sign a message with this private key.\n * @param {Uint8Array} bytes\n * @returns {Uint8Array} - The signature bytes without the message\n */\n sign(bytes) {\n return ecdsa.sign(this._keyPair.privateKey, bytes);\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytesDer() {\n const bytes = new Uint8Array(derPrefixBytes.length + 32);\n const privateKey = this._keyPair.privateKey.subarray(0, 32);\n const leadingZeroes = 32 - privateKey.length;\n const privateKeyOffset = derPrefixBytes.length + leadingZeroes;\n bytes.set(derPrefixBytes, 0);\n bytes.set(privateKey, privateKeyOffset);\n return bytes;\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytesRaw() {\n const bytes = new Uint8Array(32);\n bytes.set(this._keyPair.privateKey.slice(0, 32), 0);\n return bytes;\n }\n}\n","import Key from \"./Key.js\";\nimport BadKeyError from \"./BadKeyError.js\";\nimport Ed25519PublicKey from \"./Ed25519PublicKey.js\";\nimport EcdsaPublicKey from \"./EcdsaPublicKey.js\";\nimport { arrayEqual } from \"./util/array.js\";\nimport * as hex from \"./encoding/hex.js\";\n\n/**\n * @typedef {import(\"./PrivateKey.js\").Transaction} Transaction\n */\n\n/**\n * An public key on the Hedera™ network.\n */\nexport default class PublicKey extends Key {\n /**\n * @internal\n * @hideconstructor\n * @param {Ed25519PublicKey | EcdsaPublicKey} key\n */\n constructor(key) {\n super();\n\n /**\n * @type {Ed25519PublicKey | EcdsaPublicKey}\n * @private\n * @readonly\n */\n this._key = key;\n }\n\n /**\n * @returns {string}\n */\n get _type() {\n return this._key._type;\n }\n\n /**\n * @param {Uint8Array} data\n * @returns {PublicKey}\n */\n static fromBytes(data) {\n let message;\n try {\n return new PublicKey(Ed25519PublicKey.fromBytes(data));\n } catch (error) {\n message =\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n error != null && /** @type {Error} */ (error).message != null\n ? // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n /** @type {Error} */ (error).message\n : \"\";\n }\n\n try {\n return new PublicKey(EcdsaPublicKey.fromBytes(data));\n } catch (error) {\n message =\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n error != null && /** @type {Error} */ (error).message != null\n ? // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n /** @type {Error} */ (error).message\n : \"\";\n }\n\n throw new BadKeyError(\n `public key cannot be decoded from bytes: ${message}`,\n );\n }\n\n /**\n * @param {Uint8Array} data\n * @returns {PublicKey}\n */\n static fromBytesED25519(data) {\n return new PublicKey(Ed25519PublicKey.fromBytes(data));\n }\n\n /**\n * @param {Uint8Array} data\n * @returns {PublicKey}\n */\n static fromBytesECDSA(data) {\n return new PublicKey(EcdsaPublicKey.fromBytes(data));\n }\n\n /**\n * Parse a public key from a string of hexadecimal digits.\n *\n * The public key may optionally be prefixed with\n * the DER header.\n * @param {string} text\n * @returns {PublicKey}\n */\n static fromString(text) {\n return PublicKey.fromBytes(hex.decode(text));\n }\n\n /**\n * @param {string} text\n * @returns {PublicKey}\n */\n static fromStringED25519(text) {\n return PublicKey.fromBytesED25519(hex.decode(text));\n }\n\n /**\n * @param {string} text\n * @returns {PublicKey}\n */\n static fromStringECDSA(text) {\n return PublicKey.fromBytesECDSA(hex.decode(text));\n }\n\n /**\n * Verify a signature on a message with this public key.\n * @param {Uint8Array} message\n * @param {Uint8Array} signature\n * @returns {boolean}\n */\n verify(message, signature) {\n return this._key.verify(message, signature);\n }\n\n /**\n * @deprecated - use `@hashgraph/sdk`.PublicKey instead\n * @param {Transaction} transaction\n * @returns {boolean}\n */\n verifyTransaction(transaction) {\n //NOSONAR\n console.log(\"Deprecated: use `@hashgraph/sdk`.PublicKey instead\");\n\n transaction._requireFrozen();\n\n if (!transaction.isFrozen()) {\n transaction.freeze();\n }\n\n for (const signedTransaction of transaction._signedTransactions) {\n if (\n signedTransaction.sigMap != null &&\n signedTransaction.sigMap.sigPair != null\n ) {\n let found = false;\n for (const sigPair of signedTransaction.sigMap.sigPair) {\n const pubKeyPrefix = /** @type {Uint8Array} */ (\n sigPair.pubKeyPrefix\n );\n if (arrayEqual(pubKeyPrefix, this.toBytesRaw())) {\n found = true;\n const bodyBytes = /** @type {Uint8Array} */ (\n signedTransaction.bodyBytes\n );\n const signature =\n sigPair.ed25519 != null\n ? sigPair.ed25519\n : /** @type {Uint8Array} */ (\n sigPair.ECDSASecp256k1\n );\n if (!this.verify(bodyBytes, signature)) {\n return false;\n }\n }\n }\n\n if (!found) {\n return false;\n }\n }\n }\n\n return true;\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytes() {\n if (this._key instanceof Ed25519PublicKey) {\n return this.toBytesRaw();\n } else {\n return this.toBytesDer();\n }\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytesDer() {\n return this._key.toBytesDer();\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytesRaw() {\n return this._key.toBytesRaw();\n }\n\n /**\n * @returns {string}\n */\n toString() {\n return this.toStringDer();\n }\n\n /**\n * @returns {string}\n */\n toStringDer() {\n return hex.encode(this.toBytesDer());\n }\n\n /**\n * @returns {string}\n */\n toStringRaw() {\n return hex.encode(this.toBytesRaw());\n }\n\n /**\n * @returns {string}\n */\n toEthereumAddress() {\n if (this._key instanceof EcdsaPublicKey) {\n return this._key.toEthereumAddress();\n } else {\n throw new Error(\"unsupported operation on Ed25519PublicKey\");\n }\n }\n\n /**\n * @param {PublicKey} other\n * @returns {boolean}\n */\n equals(other) {\n if (\n this._key instanceof Ed25519PublicKey &&\n other._key instanceof Ed25519PublicKey\n ) {\n return this._key.equals(other._key);\n } else if (\n this._key instanceof EcdsaPublicKey &&\n other._key instanceof EcdsaPublicKey\n ) {\n return this._key.equals(other._key);\n } else {\n return false;\n }\n }\n}\n","(function (factory) {\n if (typeof exports === 'object') {\n // Node/CommonJS\n module.exports = factory();\n } else if (typeof define === 'function' && define.amd) {\n // AMD\n define(factory);\n } else {\n // Browser globals (with support for web workers)\n var glob;\n\n try {\n glob = window;\n } catch (e) {\n glob = self;\n }\n\n glob.SparkMD5 = factory();\n }\n}(function (undefined) {\n\n 'use strict';\n\n /*\n * Fastest md5 implementation around (JKM md5).\n * Credits: Joseph Myers\n *\n * @see http://www.myersdaily.org/joseph/javascript/md5-text.html\n * @see http://jsperf.com/md5-shootout/7\n */\n\n /* this function is much faster,\n so if possible we use it. Some IEs\n are the only ones I know of that\n need the idiotic second function,\n generated by an if clause. */\n var add32 = function (a, b) {\n return (a + b) & 0xFFFFFFFF;\n },\n hex_chr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'];\n\n\n function cmn(q, a, b, x, s, t) {\n a = add32(add32(a, q), add32(x, t));\n return add32((a << s) | (a >>> (32 - s)), b);\n }\n\n function md5cycle(x, k) {\n var a = x[0],\n b = x[1],\n c = x[2],\n d = x[3];\n\n a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[10] - 42063 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n\n a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n\n a += (b ^ c ^ d) + k[5] - 378558 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n\n a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n b = (b << 21 |b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n b = (b << 21 |b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n b = (b << 21 |b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n\n x[0] = a + x[0] | 0;\n x[1] = b + x[1] | 0;\n x[2] = c + x[2] | 0;\n x[3] = d + x[3] | 0;\n }\n\n function md5blk(s) {\n var md5blks = [],\n i; /* Andy King said do it this way. */\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n }\n return md5blks;\n }\n\n function md5blk_array(a) {\n var md5blks = [],\n i; /* Andy King said do it this way. */\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n }\n return md5blks;\n }\n\n function md51(s) {\n var n = s.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\n s = s.substring(i - 64);\n length = s.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= s.charCodeAt(i) << ((i % 4) << 3);\n }\n tail[i >> 2] |= 0x80 << ((i % 4) << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n // Beware that the final length might not fit in 32 bits so we take care of that\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n\n tail[14] = lo;\n tail[15] = hi;\n\n md5cycle(state, tail);\n return state;\n }\n\n function md51_array(a) {\n var n = a.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n }\n\n // Not sure if it is a bug, however IE10 will always produce a sub array of length 1\n // containing the last element of the parent array if the sub array specified starts\n // beyond the length of the parent array - weird.\n // https://connect.microsoft.com/IE/feedback/details/771452/typed-array-subarray-issue\n a = (i - 64) < n ? a.subarray(i - 64) : new Uint8Array(0);\n\n length = a.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= a[i] << ((i % 4) << 3);\n }\n\n tail[i >> 2] |= 0x80 << ((i % 4) << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n // Beware that the final length might not fit in 32 bits so we take care of that\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n\n tail[14] = lo;\n tail[15] = hi;\n\n md5cycle(state, tail);\n\n return state;\n }\n\n function rhex(n) {\n var s = '',\n j;\n for (j = 0; j < 4; j += 1) {\n s += hex_chr[(n >> (j * 8 + 4)) & 0x0F] + hex_chr[(n >> (j * 8)) & 0x0F];\n }\n return s;\n }\n\n function hex(x) {\n var i;\n for (i = 0; i < x.length; i += 1) {\n x[i] = rhex(x[i]);\n }\n return x.join('');\n }\n\n // In some cases the fast add32 function cannot be used..\n if (hex(md51('hello')) !== '5d41402abc4b2a76b9719d911017c592') {\n add32 = function (x, y) {\n var lsw = (x & 0xFFFF) + (y & 0xFFFF),\n msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return (msw << 16) | (lsw & 0xFFFF);\n };\n }\n\n // ---------------------------------------------------\n\n /**\n * ArrayBuffer slice polyfill.\n *\n * @see https://github.com/ttaubert/node-arraybuffer-slice\n */\n\n if (typeof ArrayBuffer !== 'undefined' && !ArrayBuffer.prototype.slice) {\n (function () {\n function clamp(val, length) {\n val = (val | 0) || 0;\n\n if (val < 0) {\n return Math.max(val + length, 0);\n }\n\n return Math.min(val, length);\n }\n\n ArrayBuffer.prototype.slice = function (from, to) {\n var length = this.byteLength,\n begin = clamp(from, length),\n end = length,\n num,\n target,\n targetArray,\n sourceArray;\n\n if (to !== undefined) {\n end = clamp(to, length);\n }\n\n if (begin > end) {\n return new ArrayBuffer(0);\n }\n\n num = end - begin;\n target = new ArrayBuffer(num);\n targetArray = new Uint8Array(target);\n\n sourceArray = new Uint8Array(this, begin, num);\n targetArray.set(sourceArray);\n\n return target;\n };\n })();\n }\n\n // ---------------------------------------------------\n\n /**\n * Helpers.\n */\n\n function toUtf8(str) {\n if (/[\\u0080-\\uFFFF]/.test(str)) {\n str = unescape(encodeURIComponent(str));\n }\n\n return str;\n }\n\n function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n var length = str.length,\n buff = new ArrayBuffer(length),\n arr = new Uint8Array(buff),\n i;\n\n for (i = 0; i < length; i += 1) {\n arr[i] = str.charCodeAt(i);\n }\n\n return returnUInt8Array ? arr : buff;\n }\n\n function arrayBuffer2Utf8Str(buff) {\n return String.fromCharCode.apply(null, new Uint8Array(buff));\n }\n\n function concatenateArrayBuffers(first, second, returnUInt8Array) {\n var result = new Uint8Array(first.byteLength + second.byteLength);\n\n result.set(new Uint8Array(first));\n result.set(new Uint8Array(second), first.byteLength);\n\n return returnUInt8Array ? result : result.buffer;\n }\n\n function hexToBinaryString(hex) {\n var bytes = [],\n length = hex.length,\n x;\n\n for (x = 0; x < length - 1; x += 2) {\n bytes.push(parseInt(hex.substr(x, 2), 16));\n }\n\n return String.fromCharCode.apply(String, bytes);\n }\n\n // ---------------------------------------------------\n\n /**\n * SparkMD5 OOP implementation.\n *\n * Use this class to perform an incremental md5, otherwise use the\n * static methods instead.\n */\n\n function SparkMD5() {\n // call reset to init the instance\n this.reset();\n }\n\n /**\n * Appends a string.\n * A conversion will be applied if an utf8 string is detected.\n *\n * @param {String} str The string to be appended\n *\n * @return {SparkMD5} The instance itself\n */\n SparkMD5.prototype.append = function (str) {\n // Converts the string to utf8 bytes if necessary\n // Then append as binary\n this.appendBinary(toUtf8(str));\n\n return this;\n };\n\n /**\n * Appends a binary string.\n *\n * @param {String} contents The binary string to be appended\n *\n * @return {SparkMD5} The instance itself\n */\n SparkMD5.prototype.appendBinary = function (contents) {\n this._buff += contents;\n this._length += contents.length;\n\n var length = this._buff.length,\n i;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n }\n\n this._buff = this._buff.substring(i - 64);\n\n return this;\n };\n\n /**\n * Finishes the incremental computation, reseting the internal state and\n * returning the result.\n *\n * @param {Boolean} raw True to get the raw string, false to get the hex string\n *\n * @return {String} The result\n */\n SparkMD5.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n i,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff.charCodeAt(i) << ((i % 4) << 3);\n }\n\n this._finish(tail, length);\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n\n return ret;\n };\n\n /**\n * Resets the internal state of the computation.\n *\n * @return {SparkMD5} The instance itself\n */\n SparkMD5.prototype.reset = function () {\n this._buff = '';\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n\n return this;\n };\n\n /**\n * Gets the internal state of the computation.\n *\n * @return {Object} The state\n */\n SparkMD5.prototype.getState = function () {\n return {\n buff: this._buff,\n length: this._length,\n hash: this._hash.slice()\n };\n };\n\n /**\n * Gets the internal state of the computation.\n *\n * @param {Object} state The state\n *\n * @return {SparkMD5} The instance itself\n */\n SparkMD5.prototype.setState = function (state) {\n this._buff = state.buff;\n this._length = state.length;\n this._hash = state.hash;\n\n return this;\n };\n\n /**\n * Releases memory used by the incremental buffer and other additional\n * resources. If you plan to use the instance again, use reset instead.\n */\n SparkMD5.prototype.destroy = function () {\n delete this._hash;\n delete this._buff;\n delete this._length;\n };\n\n /**\n * Finish the final calculation based on the tail.\n *\n * @param {Array} tail The tail (will be modified)\n * @param {Number} length The length of the remaining buffer\n */\n SparkMD5.prototype._finish = function (tail, length) {\n var i = length,\n tmp,\n lo,\n hi;\n\n tail[i >> 2] |= 0x80 << ((i % 4) << 3);\n if (i > 55) {\n md5cycle(this._hash, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n // Do the final computation based on the tail and length\n // Beware that the final length may not fit in 32 bits so we take care of that\n tmp = this._length * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(this._hash, tail);\n };\n\n /**\n * Performs the md5 hash on a string.\n * A conversion will be applied if utf8 string is detected.\n *\n * @param {String} str The string\n * @param {Boolean} [raw] True to get the raw string, false to get the hex string\n *\n * @return {String} The result\n */\n SparkMD5.hash = function (str, raw) {\n // Converts the string to utf8 bytes if necessary\n // Then compute it using the binary function\n return SparkMD5.hashBinary(toUtf8(str), raw);\n };\n\n /**\n * Performs the md5 hash on a binary string.\n *\n * @param {String} content The binary string\n * @param {Boolean} [raw] True to get the raw string, false to get the hex string\n *\n * @return {String} The result\n */\n SparkMD5.hashBinary = function (content, raw) {\n var hash = md51(content),\n ret = hex(hash);\n\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n // ---------------------------------------------------\n\n /**\n * SparkMD5 OOP implementation for array buffers.\n *\n * Use this class to perform an incremental md5 ONLY for array buffers.\n */\n SparkMD5.ArrayBuffer = function () {\n // call reset to init the instance\n this.reset();\n };\n\n /**\n * Appends an array buffer.\n *\n * @param {ArrayBuffer} arr The array to be appended\n *\n * @return {SparkMD5.ArrayBuffer} The instance itself\n */\n SparkMD5.ArrayBuffer.prototype.append = function (arr) {\n var buff = concatenateArrayBuffers(this._buff.buffer, arr, true),\n length = buff.length,\n i;\n\n this._length += arr.byteLength;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n }\n\n this._buff = (i - 64) < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n\n return this;\n };\n\n /**\n * Finishes the incremental computation, reseting the internal state and\n * returning the result.\n *\n * @param {Boolean} raw True to get the raw string, false to get the hex string\n *\n * @return {String} The result\n */\n SparkMD5.ArrayBuffer.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n i,\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff[i] << ((i % 4) << 3);\n }\n\n this._finish(tail, length);\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n\n return ret;\n };\n\n /**\n * Resets the internal state of the computation.\n *\n * @return {SparkMD5.ArrayBuffer} The instance itself\n */\n SparkMD5.ArrayBuffer.prototype.reset = function () {\n this._buff = new Uint8Array(0);\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n\n return this;\n };\n\n /**\n * Gets the internal state of the computation.\n *\n * @return {Object} The state\n */\n SparkMD5.ArrayBuffer.prototype.getState = function () {\n var state = SparkMD5.prototype.getState.call(this);\n\n // Convert buffer to a string\n state.buff = arrayBuffer2Utf8Str(state.buff);\n\n return state;\n };\n\n /**\n * Gets the internal state of the computation.\n *\n * @param {Object} state The state\n *\n * @return {SparkMD5.ArrayBuffer} The instance itself\n */\n SparkMD5.ArrayBuffer.prototype.setState = function (state) {\n // Convert string to buffer\n state.buff = utf8Str2ArrayBuffer(state.buff, true);\n\n return SparkMD5.prototype.setState.call(this, state);\n };\n\n SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n\n SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n\n /**\n * Performs the md5 hash on an array buffer.\n *\n * @param {ArrayBuffer} arr The array buffer\n * @param {Boolean} [raw] True to get the raw string, false to get the hex one\n *\n * @return {String} The result\n */\n SparkMD5.ArrayBuffer.hash = function (arr, raw) {\n var hash = md51_array(new Uint8Array(arr)),\n ret = hex(hash);\n\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n return SparkMD5;\n}));\n","import * as hex from \"../encoding/hex.js\";\nimport * as utf8 from \"../encoding/utf8.js\";\nimport SparkMD5 from \"spark-md5\";\nimport { Buffer } from \"buffer\";\n\nexport const CipherAlgorithm = {\n Aes128Ctr: \"AES-128-CTR\",\n Aes128Cbc: \"AES-128-CBC\",\n};\n\n/**\n * @param {string} algorithm\n * @param {Uint8Array} key\n * @param {Uint8Array} iv\n * @param {Uint8Array} data\n * @returns {Promise}\n */\nexport async function createCipheriv(algorithm, key, iv, data) {\n let algorithm_;\n\n switch (algorithm.toUpperCase()) {\n case CipherAlgorithm.Aes128Ctr:\n algorithm_ = {\n name: \"AES-CTR\",\n counter: iv,\n length: 128,\n };\n break;\n case CipherAlgorithm.Aes128Cbc:\n algorithm_ = {\n name: \"AES-CBC\",\n iv: iv,\n };\n break;\n default:\n throw new Error(\n \"(BUG) non-exhaustive switch statement for CipherAlgorithm\",\n );\n }\n\n const key_ = await window.crypto.subtle.importKey(\n \"raw\",\n key,\n algorithm_.name,\n false,\n [\"encrypt\"],\n );\n\n return new Uint8Array(\n // https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/encrypt#return_value\n /** @type {ArrayBuffer} */ (\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n await window.crypto.subtle.encrypt(algorithm_, key_, data)\n ),\n );\n}\n\n/**\n * @param {string} algorithm\n * @param {Uint8Array} key\n * @param {Uint8Array} iv\n * @param {Uint8Array} data\n * @returns {Promise}\n */\nexport async function createDecipheriv(algorithm, key, iv, data) {\n let algorithm_;\n\n switch (algorithm.toUpperCase()) {\n case CipherAlgorithm.Aes128Ctr:\n algorithm_ = {\n name: \"AES-CTR\",\n counter: iv,\n length: 128,\n };\n break;\n case CipherAlgorithm.Aes128Cbc:\n algorithm_ = {\n name: \"AES-CBC\",\n iv,\n };\n break;\n default:\n throw new Error(\n \"(BUG) non-exhaustive switch statement for CipherAlgorithm\",\n );\n }\n\n const key_ = await window.crypto.subtle.importKey(\n \"raw\",\n key,\n algorithm_.name,\n false,\n [\"decrypt\"],\n );\n let decrypted;\n try {\n decrypted = await window.crypto.subtle.decrypt(algorithm_, key_, data);\n } catch (error) {\n const message =\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n error != null && /** @type {Error} */ (error).message != null\n ? // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n /** @type {Error} */ (error).message\n : \"\";\n\n throw new Error(`Unable to decrypt: ${message}`);\n }\n return new Uint8Array(\n // https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/encrypt#return_value\n /** @type {ArrayBuffer} */ (\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n decrypted\n ),\n );\n}\n\n/**\n * @param {string} passphrase\n * @param {string} iv\n * @returns {Promise}\n */\nexport async function messageDigest(passphrase, iv) {\n const pass = utf8.encode(passphrase);\n const sliced = hex.decode(iv).slice(0, 8);\n const result = SparkMD5.ArrayBuffer.hash(\n Buffer.concat([Buffer.from(pass), Buffer.from(sliced)]),\n );\n\n return Promise.resolve(hex.decode(result));\n}\n","import * as utf8 from \"../encoding/utf8.js\";\n\n/**\n * @typedef {import(\"./hmac.js\").HashAlgorithm} HashAlgorithm\n */\n\n/**\n * @param {HashAlgorithm} algorithm\n * @param {Uint8Array | string} password\n * @param {Uint8Array | string} salt\n * @param {number} iterations\n * @param {number} length\n * @returns {Promise}\n */\nexport async function deriveKey(algorithm, password, salt, iterations, length) {\n const pass =\n typeof password === \"string\"\n ? // Valid ASCII is also valid UTF-8 so encoding the password as UTF-8\n // should be fine if only valid ASCII characters are used in the password\n utf8.encode(password)\n : password;\n\n const nacl = typeof salt === \"string\" ? utf8.encode(salt) : salt;\n\n try {\n const key = await window.crypto.subtle.importKey(\n \"raw\",\n pass,\n {\n name: \"PBKDF2\",\n hash: algorithm,\n },\n false,\n [\"deriveBits\"],\n );\n\n return new Uint8Array(\n await window.crypto.subtle.deriveBits(\n {\n name: \"PBKDF2\",\n hash: algorithm,\n salt: nacl,\n iterations,\n },\n key,\n length << 3,\n ),\n );\n } catch {\n throw new Error(\"(BUG) Non-Exhaustive switch statement for algorithms\");\n }\n}\n","import BadKeyError from \"../BadKeyError.js\";\nimport * as crypto from \"./aes.js\";\nimport * as hex from \"../encoding/hex.js\";\nimport * as utf8 from \"../encoding/utf8.js\";\nimport * as hmac from \"./hmac.js\";\nimport * as pbkdf2 from \"./pbkdf2.js\";\nimport * as random from \"./random.js\";\n\nconst HMAC_SHA256 = \"hmac-sha256\";\n\n/**\n * @typedef {object} KeystoreKdfParams\n * @property {number} dkLen\n * @property {string} salt\n * @property {number} c\n * @property {string} prf\n */\n\n/**\n * @typedef {object} KeystoreCipherParams\n * @property {string} iv\n */\n\n/**\n * @typedef {object} KeystoreCrypto\n * @property {string} ciphertext\n * @property {KeystoreCipherParams} cipherparams\n * @property {string} cipher\n * @property {string} kdf\n * @property {KeystoreKdfParams} kdfparams\n * @property {string} mac\n */\n\n/**\n * @typedef {object} Keystore\n * @property {number} version\n * @property {KeystoreCrypto} crypto\n */\n\n/**\n * @param {Uint8Array} privateKey\n * @param {string} passphrase\n * @returns {Promise}\n */\nexport async function createKeystore(privateKey, passphrase) {\n // all values taken from https://github.com/ethereumjs/ethereumjs-wallet/blob/de3a92e752673ada1d78f95cf80bc56ae1f59775/src/index.ts#L25\n const dkLen = 32;\n const c = 262144;\n const saltLen = 32;\n const salt = await random.bytesAsync(saltLen);\n\n const key = await pbkdf2.deriveKey(\n hmac.HashAlgorithm.Sha256,\n passphrase,\n salt,\n c,\n dkLen,\n );\n\n const iv = await random.bytesAsync(16);\n\n // AES-128-CTR with the first half of the derived key and a random IV\n const cipherText = await crypto.createCipheriv(\n crypto.CipherAlgorithm.Aes128Ctr,\n key.slice(0, 16),\n iv,\n privateKey,\n );\n\n const mac = await hmac.hash(\n hmac.HashAlgorithm.Sha384,\n key.slice(16),\n cipherText,\n );\n\n /**\n * @type {Keystore}\n */\n const keystore = {\n version: 1,\n crypto: {\n ciphertext: hex.encode(cipherText),\n cipherparams: { iv: hex.encode(iv) },\n cipher: crypto.CipherAlgorithm.Aes128Ctr,\n kdf: \"pbkdf2\",\n kdfparams: {\n dkLen,\n salt: hex.encode(salt),\n c,\n prf: HMAC_SHA256,\n },\n mac: hex.encode(mac),\n },\n };\n\n return utf8.encode(JSON.stringify(keystore));\n}\n\n/**\n * @param {Uint8Array} keystoreBytes\n * @param {string} passphrase\n * @returns {Promise}\n */\nexport async function loadKeystore(keystoreBytes, passphrase) {\n /**\n * @type {Keystore}\n */\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const keystore = JSON.parse(utf8.decode(keystoreBytes));\n\n if (keystore.version !== 1) {\n throw new BadKeyError(\n `unsupported keystore version: ${keystore.version}`,\n );\n }\n\n const {\n ciphertext,\n cipherparams: { iv },\n cipher,\n kdf,\n kdfparams: { dkLen, salt, c, prf },\n mac,\n } = keystore.crypto;\n\n if (kdf !== \"pbkdf2\") {\n throw new BadKeyError(`unsupported key derivation function:\" + ${kdf}`);\n }\n\n if (prf !== HMAC_SHA256) {\n throw new BadKeyError(\n `unsupported key derivation hash function: ${prf}`,\n );\n }\n\n const saltBytes = hex.decode(salt);\n const ivBytes = hex.decode(iv);\n const cipherBytes = hex.decode(ciphertext);\n\n const key = await pbkdf2.deriveKey(\n hmac.HashAlgorithm.Sha256,\n passphrase,\n saltBytes,\n c,\n dkLen,\n );\n\n const macHex = hex.decode(mac);\n const verifyHmac = await hmac.hash(\n hmac.HashAlgorithm.Sha384,\n key.slice(16),\n cipherBytes,\n );\n\n // compare that these two Uint8Arrays are equivalent\n if (!macHex.every((b, i) => b === verifyHmac[i])) {\n throw new BadKeyError(\"HMAC mismatch; passphrase is incorrect\");\n }\n\n return crypto.createDecipheriv(\n cipher,\n key.slice(0, 16),\n ivBytes,\n cipherBytes,\n );\n}\n","/**\n * @typedef {object} AsnSeq\n * @property {AsnType[]} seq\n */\n\n/**\n * @typedef {object} AsnInt\n * @property {number} int\n */\n\n/**\n * @typedef {object} AsnBytes\n * @property {Uint8Array} bytes\n */\n\n/**\n * @typedef {object} AsnIdent\n * @property {string} ident\n */\n\n/**\n * @typedef {{}} AsnNull\n */\n\n/**\n * @typedef {AsnSeq | AsnInt | AsnBytes | AsnIdent | AsnNull} AsnType\n */\n\n/**\n * Note: may throw weird errors on malformed input. Catch and rethrow with, e.g. `BadKeyError`.\n *@param {Uint8Array} data\n *@returns {AsnType}\n */\nexport function decode(data) {\n return decodeIncremental(data)[0];\n}\n\n/**\n * @param {Uint8Array} bytes\n * @returns {[AsnType, Uint8Array]}\n */\nfunction decodeIncremental(bytes) {\n // slice off the initial tag byte, `decodeLength` returns a slice of the remaining data\n const [len, rem] = decodeLength(bytes.subarray(1));\n const data = rem.subarray(0, len);\n const tail = rem.subarray(len);\n\n switch (bytes[0]) {\n case 2:\n return [{ int: decodeInt(data) }, tail];\n case 4: // must always be primitive form in DER; for OCTET STRING this is literal bytes\n return [{ bytes: data }, tail];\n case 5: // empty\n return [{}, tail];\n case 6:\n return [{ ident: decodeObjectIdent(data) }, tail];\n case 48:\n return [{ seq: decodeSeq(data) }, tail];\n default:\n throw new Error(`unsupported DER type tag: ${bytes[0]}`);\n }\n}\n\n/**\n * @param {Uint8Array} seqBytes\n * @returns {AsnType[]}\n */\nfunction decodeSeq(seqBytes) {\n let data = seqBytes;\n\n const seq = [];\n\n while (data.length !== 0) {\n const [decoded, remaining] = decodeIncremental(data);\n seq.push(decoded);\n data = remaining;\n }\n\n return seq;\n}\n\n/**\n * @param {Uint8Array} idBytes\n * @returns {string}\n */\nfunction decodeObjectIdent(idBytes) {\n const id = [\n // first octet is 40 * value1 + value2\n Math.floor(idBytes[0] / 40),\n idBytes[0] % 40,\n ];\n\n // each following ID component is big-endian base128 where the MSB is set if another byte\n // follows for the same value\n let val = 0;\n\n for (const byte of idBytes.subarray(1)) {\n // shift the entire value left by 7 bits\n val *= 128;\n\n if (byte < 128) {\n // no more octets follow for this value, finish it off\n val += byte;\n id.push(val);\n val = 0;\n } else {\n // zero the MSB\n val += byte & 127;\n }\n }\n\n return id.join(\".\");\n}\n\n/**\n * @param {Uint8Array} lenBytes\n * @returns {[number, Uint8Array]}\n */\nfunction decodeLength(lenBytes) {\n if (lenBytes[0] < 128) {\n // definite, short form\n return [lenBytes[0], lenBytes.subarray(1)];\n }\n\n const numBytes = lenBytes[0] - 128;\n\n const intBytes = lenBytes.subarray(1, numBytes + 1);\n const rem = lenBytes.subarray(numBytes + 1);\n\n return [decodeInt(intBytes), rem];\n}\n\n/**\n * @param {Uint8Array} intBytes\n * @returns {number}\n */\nfunction decodeInt(intBytes) {\n const len = intBytes.length;\n if (len === 1) {\n return intBytes[0];\n }\n\n let view = new DataView(\n intBytes.buffer,\n intBytes.byteOffset,\n intBytes.byteLength,\n );\n\n if (len === 2) return view.getUint16(0, false);\n\n if (len === 3) {\n // prefix a zero byte and we'll treat it as a 32-bit int\n const data = Uint8Array.of(0, ...intBytes);\n view = new DataView(data.buffer, data.byteOffset, data.byteLength);\n }\n\n if (len > 4) {\n // this probably means a bug in the decoding as this would mean a >4GB structure\n throw new Error(`unsupported DER integer length of ${len} bytes`);\n }\n\n return view.getUint32(0, false);\n}\n","import * as crypto from \"./aes.js\";\nimport * as der from \"../encoding/der.js\";\nimport * as pbkdf2 from \"./pbkdf2.js\";\nimport * as hmac from \"./hmac.js\";\n\nexport class AlgorithmIdentifier {\n /**\n * @param {import(\"../encoding/der.js\").AsnType} asn\n */\n constructor(asn) {\n if (\"seq\" in asn && asn.seq.length >= 1 && \"ident\" in asn.seq[0]) {\n /**\n * @type {string}\n */\n this.algIdent = asn.seq[0].ident;\n\n /**\n * @type {import(\"../encoding/der.js\").AsnType | undefined}\n */\n this.parameters = asn.seq[1];\n } else {\n throw new Error(\n `error parsing AlgorithmIdentifier from ${JSON.stringify(asn)}`,\n );\n }\n }\n\n /**\n * @returns {string}\n */\n toString() {\n return JSON.stringify(this);\n }\n}\n\nclass PBES2Params {\n /**\n * @param {import(\"../encoding/der.js\").AsnType} asn\n */\n constructor(asn) {\n if (\"seq\" in asn && asn.seq.length === 2) {\n /**\n * @type {AlgorithmIdentifier}\n */\n this.kdf = new AlgorithmIdentifier(asn.seq[0]);\n\n /**\n * @type {AlgorithmIdentifier}\n */\n this.encScheme = new AlgorithmIdentifier(asn.seq[1]);\n } else {\n throw new Error(\n `error parsing PBES2Params from ${JSON.stringify(asn)}`,\n );\n }\n }\n}\n\nclass PBKDF2Params {\n /**\n * @param {import(\"../encoding/der.js\").AsnType} asn\n */\n constructor(asn) {\n if (\n \"seq\" in asn &&\n asn.seq.length >= 2 &&\n \"bytes\" in asn.seq[0] &&\n \"int\" in asn.seq[1]\n ) {\n /**\n * @type {Uint8Array}\n */\n this.salt = asn.seq[0].bytes;\n\n /**\n * @type {number}\n */\n this.iterCount = asn.seq[1][\"int\"];\n\n if (asn.seq.length > 2) {\n if (\"seq\" in asn.seq[2]) {\n this.prf = new AlgorithmIdentifier(asn.seq[2]);\n return;\n } else if (\"int\" in asn.seq[2]) {\n /**\n * @type {number | undefined}\n */\n this.keyLength = asn.seq[2][\"int\"];\n }\n\n if (asn.seq.length === 4) {\n /**\n * @type {AlgorithmIdentifier | undefined}\n */\n this.prf = new AlgorithmIdentifier(asn.seq[3]);\n }\n\n return;\n }\n }\n\n throw new Error(\n `error parsing PBKDF2Params from ${JSON.stringify(asn)}`,\n );\n }\n}\n\nexport class PrivateKeyInfo {\n /**\n * @param {import(\"../encoding/der.js\").AsnType} asn\n */\n constructor(asn) {\n if (\"seq\" in asn && asn.seq.length === 3) {\n if (\"int\" in asn.seq[0] && asn.seq[0][\"int\"] === 0) {\n /**\n * @type {number}\n */\n this.version = 0;\n } else {\n throw new Error(\n `expected version = 0, got ${JSON.stringify(asn.seq[0])}`,\n );\n }\n\n /**\n * @type {AlgorithmIdentifier}\n */\n this.algId = new AlgorithmIdentifier(asn.seq[1]);\n\n if (\"bytes\" in asn.seq[2]) {\n /**\n * @type {Uint8Array}\n */\n this.privateKey = asn.seq[2].bytes;\n } else {\n throw new Error(\n `expected octet string as 3rd element, got ${JSON.stringify(\n asn.seq[2],\n )}`,\n );\n }\n\n return;\n }\n\n throw new Error(\n `error parsing PrivateKeyInfo from ${JSON.stringify(asn)}`,\n );\n }\n\n /**\n * @param {Uint8Array} encoded\n * @returns {PrivateKeyInfo}\n */\n static parse(encoded) {\n return new PrivateKeyInfo(der.decode(encoded));\n }\n}\n\nexport class EncryptedPrivateKeyInfo {\n /**\n * @param {import(\"../encoding/der.js\").AsnType} asn\n */\n constructor(asn) {\n if (\"seq\" in asn && asn.seq.length === 2 && \"bytes\" in asn.seq[1]) {\n /**\n * @type {AlgorithmIdentifier}\n */\n this.algId = new AlgorithmIdentifier(asn.seq[0]);\n\n /**\n * @type {Uint8Array}\n */\n this.data = asn.seq[1].bytes;\n return;\n }\n\n throw new Error(\n `error parsing EncryptedPrivateKeyInfo from ${JSON.stringify(asn)}`,\n );\n }\n\n /**\n * @param {Uint8Array} encoded\n * @returns {EncryptedPrivateKeyInfo}\n */\n static parse(encoded) {\n return new EncryptedPrivateKeyInfo(der.decode(encoded));\n }\n\n /**\n * @param {string} passphrase\n * @returns {Promise}\n */\n async decrypt(passphrase) {\n if (\n this.algId.algIdent !== \"1.2.840.113549.1.5.13\" ||\n !this.algId.parameters\n ) {\n // PBES2\n throw new Error(\n `unsupported key encryption algorithm: ${this.algId.toString()}`,\n );\n }\n\n const pbes2Params = new PBES2Params(this.algId.parameters);\n\n if (\n pbes2Params.kdf.algIdent !== \"1.2.840.113549.1.5.12\" ||\n !pbes2Params.kdf.parameters\n ) {\n // PBKDF2\n throw new Error(\n `unsupported key derivation function: ${pbes2Params.kdf.toString()}`,\n );\n }\n\n const pbkdf2Params = new PBKDF2Params(pbes2Params.kdf.parameters);\n\n if (!pbkdf2Params.prf) {\n throw new Error(\"unsupported PRF HMAC-SHA-1\");\n } else if (pbkdf2Params.prf.algIdent !== \"1.2.840.113549.2.9\") {\n // HMAC-SHA-256\n throw new Error(`unsupported PRF ${pbkdf2Params.prf.toString()}`);\n }\n\n if (pbes2Params.encScheme.algIdent !== \"2.16.840.1.101.3.4.1.2\") {\n // AES-128-CBC\n throw new Error(\n `unsupported encryption scheme: ${pbes2Params.encScheme.toString()}`,\n );\n }\n\n if (\n !pbes2Params.encScheme.parameters ||\n !(\"bytes\" in pbes2Params.encScheme.parameters)\n ) {\n throw new Error(\n \"expected IV as bytes for AES-128-CBC, \" +\n `got: ${JSON.stringify(pbes2Params.encScheme.parameters)}`,\n );\n }\n\n const keyLen = pbkdf2Params.keyLength || 16;\n const iv = pbes2Params.encScheme.parameters.bytes;\n\n const key = await pbkdf2.deriveKey(\n hmac.HashAlgorithm.Sha256,\n passphrase,\n pbkdf2Params.salt,\n pbkdf2Params.iterCount,\n keyLen,\n );\n\n const decrypted = await crypto.createDecipheriv(\n crypto.CipherAlgorithm.Aes128Cbc,\n key,\n iv,\n this.data,\n );\n\n return PrivateKeyInfo.parse(decrypted);\n }\n}\n","import { Buffer } from \"buffer\";\n\n/**\n * @param {string} text\n * @returns {Uint8Array}\n */\nexport function decode(text) {\n return Uint8Array.from(Buffer.from(text, \"base64\"));\n}\n\n/**\n * @param {Uint8Array} data\n * @returns {string};\n */\nexport function encode(data) {\n return Buffer.from(data).toString(\"base64\");\n}\n","/*!\n * MIT License\n * \n * Copyright (c) 2017-2024 Peculiar Ventures, LLC\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n * \n */\n\nconst ARRAY_BUFFER_NAME = \"[object ArrayBuffer]\";\nclass BufferSourceConverter {\n static isArrayBuffer(data) {\n return Object.prototype.toString.call(data) === ARRAY_BUFFER_NAME;\n }\n static toArrayBuffer(data) {\n if (this.isArrayBuffer(data)) {\n return data;\n }\n if (data.byteLength === data.buffer.byteLength) {\n return data.buffer;\n }\n if (data.byteOffset === 0 && data.byteLength === data.buffer.byteLength) {\n return data.buffer;\n }\n return this.toUint8Array(data.buffer)\n .slice(data.byteOffset, data.byteOffset + data.byteLength)\n .buffer;\n }\n static toUint8Array(data) {\n return this.toView(data, Uint8Array);\n }\n static toView(data, type) {\n if (data.constructor === type) {\n return data;\n }\n if (this.isArrayBuffer(data)) {\n return new type(data);\n }\n if (this.isArrayBufferView(data)) {\n return new type(data.buffer, data.byteOffset, data.byteLength);\n }\n throw new TypeError(\"The provided value is not of type '(ArrayBuffer or ArrayBufferView)'\");\n }\n static isBufferSource(data) {\n return this.isArrayBufferView(data)\n || this.isArrayBuffer(data);\n }\n static isArrayBufferView(data) {\n return ArrayBuffer.isView(data)\n || (data && this.isArrayBuffer(data.buffer));\n }\n static isEqual(a, b) {\n const aView = BufferSourceConverter.toUint8Array(a);\n const bView = BufferSourceConverter.toUint8Array(b);\n if (aView.length !== bView.byteLength) {\n return false;\n }\n for (let i = 0; i < aView.length; i++) {\n if (aView[i] !== bView[i]) {\n return false;\n }\n }\n return true;\n }\n static concat(...args) {\n let buffers;\n if (Array.isArray(args[0]) && !(args[1] instanceof Function)) {\n buffers = args[0];\n }\n else if (Array.isArray(args[0]) && args[1] instanceof Function) {\n buffers = args[0];\n }\n else {\n if (args[args.length - 1] instanceof Function) {\n buffers = args.slice(0, args.length - 1);\n }\n else {\n buffers = args;\n }\n }\n let size = 0;\n for (const buffer of buffers) {\n size += buffer.byteLength;\n }\n const res = new Uint8Array(size);\n let offset = 0;\n for (const buffer of buffers) {\n const view = this.toUint8Array(buffer);\n res.set(view, offset);\n offset += view.length;\n }\n if (args[args.length - 1] instanceof Function) {\n return this.toView(res, args[args.length - 1]);\n }\n return res.buffer;\n }\n}\n\nconst STRING_TYPE = \"string\";\nconst HEX_REGEX = /^[0-9a-f\\s]+$/i;\nconst BASE64_REGEX = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/;\nconst BASE64URL_REGEX = /^[a-zA-Z0-9-_]+$/;\nclass Utf8Converter {\n static fromString(text) {\n const s = unescape(encodeURIComponent(text));\n const uintArray = new Uint8Array(s.length);\n for (let i = 0; i < s.length; i++) {\n uintArray[i] = s.charCodeAt(i);\n }\n return uintArray.buffer;\n }\n static toString(buffer) {\n const buf = BufferSourceConverter.toUint8Array(buffer);\n let encodedString = \"\";\n for (let i = 0; i < buf.length; i++) {\n encodedString += String.fromCharCode(buf[i]);\n }\n const decodedString = decodeURIComponent(escape(encodedString));\n return decodedString;\n }\n}\nclass Utf16Converter {\n static toString(buffer, littleEndian = false) {\n const arrayBuffer = BufferSourceConverter.toArrayBuffer(buffer);\n const dataView = new DataView(arrayBuffer);\n let res = \"\";\n for (let i = 0; i < arrayBuffer.byteLength; i += 2) {\n const code = dataView.getUint16(i, littleEndian);\n res += String.fromCharCode(code);\n }\n return res;\n }\n static fromString(text, littleEndian = false) {\n const res = new ArrayBuffer(text.length * 2);\n const dataView = new DataView(res);\n for (let i = 0; i < text.length; i++) {\n dataView.setUint16(i * 2, text.charCodeAt(i), littleEndian);\n }\n return res;\n }\n}\nclass Convert {\n static isHex(data) {\n return typeof data === STRING_TYPE\n && HEX_REGEX.test(data);\n }\n static isBase64(data) {\n return typeof data === STRING_TYPE\n && BASE64_REGEX.test(data);\n }\n static isBase64Url(data) {\n return typeof data === STRING_TYPE\n && BASE64URL_REGEX.test(data);\n }\n static ToString(buffer, enc = \"utf8\") {\n const buf = BufferSourceConverter.toUint8Array(buffer);\n switch (enc.toLowerCase()) {\n case \"utf8\":\n return this.ToUtf8String(buf);\n case \"binary\":\n return this.ToBinary(buf);\n case \"hex\":\n return this.ToHex(buf);\n case \"base64\":\n return this.ToBase64(buf);\n case \"base64url\":\n return this.ToBase64Url(buf);\n case \"utf16le\":\n return Utf16Converter.toString(buf, true);\n case \"utf16\":\n case \"utf16be\":\n return Utf16Converter.toString(buf);\n default:\n throw new Error(`Unknown type of encoding '${enc}'`);\n }\n }\n static FromString(str, enc = \"utf8\") {\n if (!str) {\n return new ArrayBuffer(0);\n }\n switch (enc.toLowerCase()) {\n case \"utf8\":\n return this.FromUtf8String(str);\n case \"binary\":\n return this.FromBinary(str);\n case \"hex\":\n return this.FromHex(str);\n case \"base64\":\n return this.FromBase64(str);\n case \"base64url\":\n return this.FromBase64Url(str);\n case \"utf16le\":\n return Utf16Converter.fromString(str, true);\n case \"utf16\":\n case \"utf16be\":\n return Utf16Converter.fromString(str);\n default:\n throw new Error(`Unknown type of encoding '${enc}'`);\n }\n }\n static ToBase64(buffer) {\n const buf = BufferSourceConverter.toUint8Array(buffer);\n if (typeof btoa !== \"undefined\") {\n const binary = this.ToString(buf, \"binary\");\n return btoa(binary);\n }\n else {\n return Buffer.from(buf).toString(\"base64\");\n }\n }\n static FromBase64(base64) {\n const formatted = this.formatString(base64);\n if (!formatted) {\n return new ArrayBuffer(0);\n }\n if (!Convert.isBase64(formatted)) {\n throw new TypeError(\"Argument 'base64Text' is not Base64 encoded\");\n }\n if (typeof atob !== \"undefined\") {\n return this.FromBinary(atob(formatted));\n }\n else {\n return new Uint8Array(Buffer.from(formatted, \"base64\")).buffer;\n }\n }\n static FromBase64Url(base64url) {\n const formatted = this.formatString(base64url);\n if (!formatted) {\n return new ArrayBuffer(0);\n }\n if (!Convert.isBase64Url(formatted)) {\n throw new TypeError(\"Argument 'base64url' is not Base64Url encoded\");\n }\n return this.FromBase64(this.Base64Padding(formatted.replace(/\\-/g, \"+\").replace(/\\_/g, \"/\")));\n }\n static ToBase64Url(data) {\n return this.ToBase64(data).replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/\\=/g, \"\");\n }\n static FromUtf8String(text, encoding = Convert.DEFAULT_UTF8_ENCODING) {\n switch (encoding) {\n case \"ascii\":\n return this.FromBinary(text);\n case \"utf8\":\n return Utf8Converter.fromString(text);\n case \"utf16\":\n case \"utf16be\":\n return Utf16Converter.fromString(text);\n case \"utf16le\":\n case \"usc2\":\n return Utf16Converter.fromString(text, true);\n default:\n throw new Error(`Unknown type of encoding '${encoding}'`);\n }\n }\n static ToUtf8String(buffer, encoding = Convert.DEFAULT_UTF8_ENCODING) {\n switch (encoding) {\n case \"ascii\":\n return this.ToBinary(buffer);\n case \"utf8\":\n return Utf8Converter.toString(buffer);\n case \"utf16\":\n case \"utf16be\":\n return Utf16Converter.toString(buffer);\n case \"utf16le\":\n case \"usc2\":\n return Utf16Converter.toString(buffer, true);\n default:\n throw new Error(`Unknown type of encoding '${encoding}'`);\n }\n }\n static FromBinary(text) {\n const stringLength = text.length;\n const resultView = new Uint8Array(stringLength);\n for (let i = 0; i < stringLength; i++) {\n resultView[i] = text.charCodeAt(i);\n }\n return resultView.buffer;\n }\n static ToBinary(buffer) {\n const buf = BufferSourceConverter.toUint8Array(buffer);\n let res = \"\";\n for (let i = 0; i < buf.length; i++) {\n res += String.fromCharCode(buf[i]);\n }\n return res;\n }\n static ToHex(buffer) {\n const buf = BufferSourceConverter.toUint8Array(buffer);\n let result = \"\";\n const len = buf.length;\n for (let i = 0; i < len; i++) {\n const byte = buf[i];\n if (byte < 16) {\n result += \"0\";\n }\n result += byte.toString(16);\n }\n return result;\n }\n static FromHex(hexString) {\n let formatted = this.formatString(hexString);\n if (!formatted) {\n return new ArrayBuffer(0);\n }\n if (!Convert.isHex(formatted)) {\n throw new TypeError(\"Argument 'hexString' is not HEX encoded\");\n }\n if (formatted.length % 2) {\n formatted = `0${formatted}`;\n }\n const res = new Uint8Array(formatted.length / 2);\n for (let i = 0; i < formatted.length; i = i + 2) {\n const c = formatted.slice(i, i + 2);\n res[i / 2] = parseInt(c, 16);\n }\n return res.buffer;\n }\n static ToUtf16String(buffer, littleEndian = false) {\n return Utf16Converter.toString(buffer, littleEndian);\n }\n static FromUtf16String(text, littleEndian = false) {\n return Utf16Converter.fromString(text, littleEndian);\n }\n static Base64Padding(base64) {\n const padCount = 4 - (base64.length % 4);\n if (padCount < 4) {\n for (let i = 0; i < padCount; i++) {\n base64 += \"=\";\n }\n }\n return base64;\n }\n static formatString(data) {\n return (data === null || data === void 0 ? void 0 : data.replace(/[\\n\\r\\t ]/g, \"\")) || \"\";\n }\n}\nConvert.DEFAULT_UTF8_ENCODING = \"utf8\";\n\nfunction assign(target, ...sources) {\n const res = arguments[0];\n for (let i = 1; i < arguments.length; i++) {\n const obj = arguments[i];\n for (const prop in obj) {\n res[prop] = obj[prop];\n }\n }\n return res;\n}\nfunction combine(...buf) {\n const totalByteLength = buf.map((item) => item.byteLength).reduce((prev, cur) => prev + cur);\n const res = new Uint8Array(totalByteLength);\n let currentPos = 0;\n buf.map((item) => new Uint8Array(item)).forEach((arr) => {\n for (const item2 of arr) {\n res[currentPos++] = item2;\n }\n });\n return res.buffer;\n}\nfunction isEqual(bytes1, bytes2) {\n if (!(bytes1 && bytes2)) {\n return false;\n }\n if (bytes1.byteLength !== bytes2.byteLength) {\n return false;\n }\n const b1 = new Uint8Array(bytes1);\n const b2 = new Uint8Array(bytes2);\n for (let i = 0; i < bytes1.byteLength; i++) {\n if (b1[i] !== b2[i]) {\n return false;\n }\n }\n return true;\n}\n\nexport { BufferSourceConverter, Convert, assign, combine, isEqual };\n","/*!\n Copyright (c) Peculiar Ventures, LLC\n*/\n\nfunction getUTCDate(date) {\r\n return new Date(date.getTime() + (date.getTimezoneOffset() * 60000));\r\n}\r\nfunction getParametersValue(parameters, name, defaultValue) {\r\n var _a;\r\n if ((parameters instanceof Object) === false) {\r\n return defaultValue;\r\n }\r\n return (_a = parameters[name]) !== null && _a !== void 0 ? _a : defaultValue;\r\n}\r\nfunction bufferToHexCodes(inputBuffer, inputOffset = 0, inputLength = (inputBuffer.byteLength - inputOffset), insertSpace = false) {\r\n let result = \"\";\r\n for (const item of (new Uint8Array(inputBuffer, inputOffset, inputLength))) {\r\n const str = item.toString(16).toUpperCase();\r\n if (str.length === 1) {\r\n result += \"0\";\r\n }\r\n result += str;\r\n if (insertSpace) {\r\n result += \" \";\r\n }\r\n }\r\n return result.trim();\r\n}\r\nfunction checkBufferParams(baseBlock, inputBuffer, inputOffset, inputLength) {\r\n if (!(inputBuffer instanceof ArrayBuffer)) {\r\n baseBlock.error = \"Wrong parameter: inputBuffer must be \\\"ArrayBuffer\\\"\";\r\n return false;\r\n }\r\n if (!inputBuffer.byteLength) {\r\n baseBlock.error = \"Wrong parameter: inputBuffer has zero length\";\r\n return false;\r\n }\r\n if (inputOffset < 0) {\r\n baseBlock.error = \"Wrong parameter: inputOffset less than zero\";\r\n return false;\r\n }\r\n if (inputLength < 0) {\r\n baseBlock.error = \"Wrong parameter: inputLength less than zero\";\r\n return false;\r\n }\r\n if ((inputBuffer.byteLength - inputOffset - inputLength) < 0) {\r\n baseBlock.error = \"End of input reached before message was fully decoded (inconsistent offset and length values)\";\r\n return false;\r\n }\r\n return true;\r\n}\r\nfunction utilFromBase(inputBuffer, inputBase) {\r\n let result = 0;\r\n if (inputBuffer.length === 1) {\r\n return inputBuffer[0];\r\n }\r\n for (let i = (inputBuffer.length - 1); i >= 0; i--) {\r\n result += inputBuffer[(inputBuffer.length - 1) - i] * Math.pow(2, inputBase * i);\r\n }\r\n return result;\r\n}\r\nfunction utilToBase(value, base, reserved = (-1)) {\r\n const internalReserved = reserved;\r\n let internalValue = value;\r\n let result = 0;\r\n let biggest = Math.pow(2, base);\r\n for (let i = 1; i < 8; i++) {\r\n if (value < biggest) {\r\n let retBuf;\r\n if (internalReserved < 0) {\r\n retBuf = new ArrayBuffer(i);\r\n result = i;\r\n }\r\n else {\r\n if (internalReserved < i) {\r\n return (new ArrayBuffer(0));\r\n }\r\n retBuf = new ArrayBuffer(internalReserved);\r\n result = internalReserved;\r\n }\r\n const retView = new Uint8Array(retBuf);\r\n for (let j = (i - 1); j >= 0; j--) {\r\n const basis = Math.pow(2, j * base);\r\n retView[result - j - 1] = Math.floor(internalValue / basis);\r\n internalValue -= (retView[result - j - 1]) * basis;\r\n }\r\n return retBuf;\r\n }\r\n biggest *= Math.pow(2, base);\r\n }\r\n return new ArrayBuffer(0);\r\n}\r\nfunction utilConcatBuf(...buffers) {\r\n let outputLength = 0;\r\n let prevLength = 0;\r\n for (const buffer of buffers) {\r\n outputLength += buffer.byteLength;\r\n }\r\n const retBuf = new ArrayBuffer(outputLength);\r\n const retView = new Uint8Array(retBuf);\r\n for (const buffer of buffers) {\r\n retView.set(new Uint8Array(buffer), prevLength);\r\n prevLength += buffer.byteLength;\r\n }\r\n return retBuf;\r\n}\r\nfunction utilConcatView(...views) {\r\n let outputLength = 0;\r\n let prevLength = 0;\r\n for (const view of views) {\r\n outputLength += view.length;\r\n }\r\n const retBuf = new ArrayBuffer(outputLength);\r\n const retView = new Uint8Array(retBuf);\r\n for (const view of views) {\r\n retView.set(view, prevLength);\r\n prevLength += view.length;\r\n }\r\n return retView;\r\n}\r\nfunction utilDecodeTC() {\r\n const buf = new Uint8Array(this.valueHex);\r\n if (this.valueHex.byteLength >= 2) {\r\n const condition1 = (buf[0] === 0xFF) && (buf[1] & 0x80);\r\n const condition2 = (buf[0] === 0x00) && ((buf[1] & 0x80) === 0x00);\r\n if (condition1 || condition2) {\r\n this.warnings.push(\"Needlessly long format\");\r\n }\r\n }\r\n const bigIntBuffer = new ArrayBuffer(this.valueHex.byteLength);\r\n const bigIntView = new Uint8Array(bigIntBuffer);\r\n for (let i = 0; i < this.valueHex.byteLength; i++) {\r\n bigIntView[i] = 0;\r\n }\r\n bigIntView[0] = (buf[0] & 0x80);\r\n const bigInt = utilFromBase(bigIntView, 8);\r\n const smallIntBuffer = new ArrayBuffer(this.valueHex.byteLength);\r\n const smallIntView = new Uint8Array(smallIntBuffer);\r\n for (let j = 0; j < this.valueHex.byteLength; j++) {\r\n smallIntView[j] = buf[j];\r\n }\r\n smallIntView[0] &= 0x7F;\r\n const smallInt = utilFromBase(smallIntView, 8);\r\n return (smallInt - bigInt);\r\n}\r\nfunction utilEncodeTC(value) {\r\n const modValue = (value < 0) ? (value * (-1)) : value;\r\n let bigInt = 128;\r\n for (let i = 1; i < 8; i++) {\r\n if (modValue <= bigInt) {\r\n if (value < 0) {\r\n const smallInt = bigInt - modValue;\r\n const retBuf = utilToBase(smallInt, 8, i);\r\n const retView = new Uint8Array(retBuf);\r\n retView[0] |= 0x80;\r\n return retBuf;\r\n }\r\n let retBuf = utilToBase(modValue, 8, i);\r\n let retView = new Uint8Array(retBuf);\r\n if (retView[0] & 0x80) {\r\n const tempBuf = retBuf.slice(0);\r\n const tempView = new Uint8Array(tempBuf);\r\n retBuf = new ArrayBuffer(retBuf.byteLength + 1);\r\n retView = new Uint8Array(retBuf);\r\n for (let k = 0; k < tempBuf.byteLength; k++) {\r\n retView[k + 1] = tempView[k];\r\n }\r\n retView[0] = 0x00;\r\n }\r\n return retBuf;\r\n }\r\n bigInt *= Math.pow(2, 8);\r\n }\r\n return (new ArrayBuffer(0));\r\n}\r\nfunction isEqualBuffer(inputBuffer1, inputBuffer2) {\r\n if (inputBuffer1.byteLength !== inputBuffer2.byteLength) {\r\n return false;\r\n }\r\n const view1 = new Uint8Array(inputBuffer1);\r\n const view2 = new Uint8Array(inputBuffer2);\r\n for (let i = 0; i < view1.length; i++) {\r\n if (view1[i] !== view2[i]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction padNumber(inputNumber, fullLength) {\r\n const str = inputNumber.toString(10);\r\n if (fullLength < str.length) {\r\n return \"\";\r\n }\r\n const dif = fullLength - str.length;\r\n const padding = new Array(dif);\r\n for (let i = 0; i < dif; i++) {\r\n padding[i] = \"0\";\r\n }\r\n const paddingString = padding.join(\"\");\r\n return paddingString.concat(str);\r\n}\r\nconst base64Template = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\r\nconst base64UrlTemplate = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=\";\r\nfunction toBase64(input, useUrlTemplate = false, skipPadding = false, skipLeadingZeros = false) {\r\n let i = 0;\r\n let flag1 = 0;\r\n let flag2 = 0;\r\n let output = \"\";\r\n const template = (useUrlTemplate) ? base64UrlTemplate : base64Template;\r\n if (skipLeadingZeros) {\r\n let nonZeroPosition = 0;\r\n for (let i = 0; i < input.length; i++) {\r\n if (input.charCodeAt(i) !== 0) {\r\n nonZeroPosition = i;\r\n break;\r\n }\r\n }\r\n input = input.slice(nonZeroPosition);\r\n }\r\n while (i < input.length) {\r\n const chr1 = input.charCodeAt(i++);\r\n if (i >= input.length) {\r\n flag1 = 1;\r\n }\r\n const chr2 = input.charCodeAt(i++);\r\n if (i >= input.length) {\r\n flag2 = 1;\r\n }\r\n const chr3 = input.charCodeAt(i++);\r\n const enc1 = chr1 >> 2;\r\n const enc2 = ((chr1 & 0x03) << 4) | (chr2 >> 4);\r\n let enc3 = ((chr2 & 0x0F) << 2) | (chr3 >> 6);\r\n let enc4 = chr3 & 0x3F;\r\n if (flag1 === 1) {\r\n enc3 = enc4 = 64;\r\n }\r\n else {\r\n if (flag2 === 1) {\r\n enc4 = 64;\r\n }\r\n }\r\n if (skipPadding) {\r\n if (enc3 === 64) {\r\n output += `${template.charAt(enc1)}${template.charAt(enc2)}`;\r\n }\r\n else {\r\n if (enc4 === 64) {\r\n output += `${template.charAt(enc1)}${template.charAt(enc2)}${template.charAt(enc3)}`;\r\n }\r\n else {\r\n output += `${template.charAt(enc1)}${template.charAt(enc2)}${template.charAt(enc3)}${template.charAt(enc4)}`;\r\n }\r\n }\r\n }\r\n else {\r\n output += `${template.charAt(enc1)}${template.charAt(enc2)}${template.charAt(enc3)}${template.charAt(enc4)}`;\r\n }\r\n }\r\n return output;\r\n}\r\nfunction fromBase64(input, useUrlTemplate = false, cutTailZeros = false) {\r\n const template = (useUrlTemplate) ? base64UrlTemplate : base64Template;\r\n function indexOf(toSearch) {\r\n for (let i = 0; i < 64; i++) {\r\n if (template.charAt(i) === toSearch)\r\n return i;\r\n }\r\n return 64;\r\n }\r\n function test(incoming) {\r\n return ((incoming === 64) ? 0x00 : incoming);\r\n }\r\n let i = 0;\r\n let output = \"\";\r\n while (i < input.length) {\r\n const enc1 = indexOf(input.charAt(i++));\r\n const enc2 = (i >= input.length) ? 0x00 : indexOf(input.charAt(i++));\r\n const enc3 = (i >= input.length) ? 0x00 : indexOf(input.charAt(i++));\r\n const enc4 = (i >= input.length) ? 0x00 : indexOf(input.charAt(i++));\r\n const chr1 = (test(enc1) << 2) | (test(enc2) >> 4);\r\n const chr2 = ((test(enc2) & 0x0F) << 4) | (test(enc3) >> 2);\r\n const chr3 = ((test(enc3) & 0x03) << 6) | test(enc4);\r\n output += String.fromCharCode(chr1);\r\n if (enc3 !== 64) {\r\n output += String.fromCharCode(chr2);\r\n }\r\n if (enc4 !== 64) {\r\n output += String.fromCharCode(chr3);\r\n }\r\n }\r\n if (cutTailZeros) {\r\n const outputLength = output.length;\r\n let nonZeroStart = (-1);\r\n for (let i = (outputLength - 1); i >= 0; i--) {\r\n if (output.charCodeAt(i) !== 0) {\r\n nonZeroStart = i;\r\n break;\r\n }\r\n }\r\n if (nonZeroStart !== (-1)) {\r\n output = output.slice(0, nonZeroStart + 1);\r\n }\r\n else {\r\n output = \"\";\r\n }\r\n }\r\n return output;\r\n}\r\nfunction arrayBufferToString(buffer) {\r\n let resultString = \"\";\r\n const view = new Uint8Array(buffer);\r\n for (const element of view) {\r\n resultString += String.fromCharCode(element);\r\n }\r\n return resultString;\r\n}\r\nfunction stringToArrayBuffer(str) {\r\n const stringLength = str.length;\r\n const resultBuffer = new ArrayBuffer(stringLength);\r\n const resultView = new Uint8Array(resultBuffer);\r\n for (let i = 0; i < stringLength; i++) {\r\n resultView[i] = str.charCodeAt(i);\r\n }\r\n return resultBuffer;\r\n}\r\nconst log2 = Math.log(2);\r\nfunction nearestPowerOf2(length) {\r\n const base = (Math.log(length) / log2);\r\n const floor = Math.floor(base);\r\n const round = Math.round(base);\r\n return ((floor === round) ? floor : round);\r\n}\r\nfunction clearProps(object, propsArray) {\r\n for (const prop of propsArray) {\r\n delete object[prop];\r\n }\r\n}\n\nexport { arrayBufferToString, bufferToHexCodes, checkBufferParams, clearProps, fromBase64, getParametersValue, getUTCDate, isEqualBuffer, nearestPowerOf2, padNumber, stringToArrayBuffer, toBase64, utilConcatBuf, utilConcatView, utilDecodeTC, utilEncodeTC, utilFromBase, utilToBase };\n","/*!\n * Copyright (c) 2014, GMO GlobalSign\n * Copyright (c) 2015-2022, Peculiar Ventures\n * All rights reserved.\n * \n * Author 2014-2019, Yury Strozhevsky\n * \n * Redistribution and use in source and binary forms, with or without modification,\n * are permitted provided that the following conditions are met:\n * \n * * Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer.\n * \n * * Redistributions in binary form must reproduce the above copyright notice, this\n * list of conditions and the following disclaimer in the documentation and/or\n * other materials provided with the distribution.\n * \n * * Neither the name of the copyright holder nor the names of its\n * contributors may be used to endorse or promote products derived from\n * this software without specific prior written permission.\n * \n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\n * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n * \n */\n\nimport * as pvtsutils from 'pvtsutils';\nimport * as pvutils from 'pvutils';\n\nfunction assertBigInt() {\r\n if (typeof BigInt === \"undefined\") {\r\n throw new Error(\"BigInt is not defined. Your environment doesn't implement BigInt.\");\r\n }\r\n}\r\nfunction concat(buffers) {\r\n let outputLength = 0;\r\n let prevLength = 0;\r\n for (let i = 0; i < buffers.length; i++) {\r\n const buffer = buffers[i];\r\n outputLength += buffer.byteLength;\r\n }\r\n const retView = new Uint8Array(outputLength);\r\n for (let i = 0; i < buffers.length; i++) {\r\n const buffer = buffers[i];\r\n retView.set(new Uint8Array(buffer), prevLength);\r\n prevLength += buffer.byteLength;\r\n }\r\n return retView.buffer;\r\n}\r\nfunction checkBufferParams(baseBlock, inputBuffer, inputOffset, inputLength) {\r\n if (!(inputBuffer instanceof Uint8Array)) {\r\n baseBlock.error = \"Wrong parameter: inputBuffer must be 'Uint8Array'\";\r\n return false;\r\n }\r\n if (!inputBuffer.byteLength) {\r\n baseBlock.error = \"Wrong parameter: inputBuffer has zero length\";\r\n return false;\r\n }\r\n if (inputOffset < 0) {\r\n baseBlock.error = \"Wrong parameter: inputOffset less than zero\";\r\n return false;\r\n }\r\n if (inputLength < 0) {\r\n baseBlock.error = \"Wrong parameter: inputLength less than zero\";\r\n return false;\r\n }\r\n if ((inputBuffer.byteLength - inputOffset - inputLength) < 0) {\r\n baseBlock.error = \"End of input reached before message was fully decoded (inconsistent offset and length values)\";\r\n return false;\r\n }\r\n return true;\r\n}\n\nclass ViewWriter {\r\n constructor() {\r\n this.items = [];\r\n }\r\n write(buf) {\r\n this.items.push(buf);\r\n }\r\n final() {\r\n return concat(this.items);\r\n }\r\n}\n\nconst powers2 = [new Uint8Array([1])];\r\nconst digitsString = \"0123456789\";\r\nconst NAME = \"name\";\r\nconst VALUE_HEX_VIEW = \"valueHexView\";\r\nconst IS_HEX_ONLY = \"isHexOnly\";\r\nconst ID_BLOCK = \"idBlock\";\r\nconst TAG_CLASS = \"tagClass\";\r\nconst TAG_NUMBER = \"tagNumber\";\r\nconst IS_CONSTRUCTED = \"isConstructed\";\r\nconst FROM_BER = \"fromBER\";\r\nconst TO_BER = \"toBER\";\r\nconst LOCAL = \"local\";\r\nconst EMPTY_STRING = \"\";\r\nconst EMPTY_BUFFER = new ArrayBuffer(0);\r\nconst EMPTY_VIEW = new Uint8Array(0);\r\nconst END_OF_CONTENT_NAME = \"EndOfContent\";\r\nconst OCTET_STRING_NAME = \"OCTET STRING\";\r\nconst BIT_STRING_NAME = \"BIT STRING\";\n\nfunction HexBlock(BaseClass) {\r\n var _a;\r\n return _a = class Some extends BaseClass {\r\n constructor(...args) {\r\n var _a;\r\n super(...args);\r\n const params = args[0] || {};\r\n this.isHexOnly = (_a = params.isHexOnly) !== null && _a !== void 0 ? _a : false;\r\n this.valueHexView = params.valueHex ? pvtsutils.BufferSourceConverter.toUint8Array(params.valueHex) : EMPTY_VIEW;\r\n }\r\n get valueHex() {\r\n return this.valueHexView.slice().buffer;\r\n }\r\n set valueHex(value) {\r\n this.valueHexView = new Uint8Array(value);\r\n }\r\n fromBER(inputBuffer, inputOffset, inputLength) {\r\n const view = inputBuffer instanceof ArrayBuffer ? new Uint8Array(inputBuffer) : inputBuffer;\r\n if (!checkBufferParams(this, view, inputOffset, inputLength)) {\r\n return -1;\r\n }\r\n const endLength = inputOffset + inputLength;\r\n this.valueHexView = view.subarray(inputOffset, endLength);\r\n if (!this.valueHexView.length) {\r\n this.warnings.push(\"Zero buffer length\");\r\n return inputOffset;\r\n }\r\n this.blockLength = inputLength;\r\n return endLength;\r\n }\r\n toBER(sizeOnly = false) {\r\n if (!this.isHexOnly) {\r\n this.error = \"Flag 'isHexOnly' is not set, abort\";\r\n return EMPTY_BUFFER;\r\n }\r\n if (sizeOnly) {\r\n return new ArrayBuffer(this.valueHexView.byteLength);\r\n }\r\n return (this.valueHexView.byteLength === this.valueHexView.buffer.byteLength)\r\n ? this.valueHexView.buffer\r\n : this.valueHexView.slice().buffer;\r\n }\r\n toJSON() {\r\n return {\r\n ...super.toJSON(),\r\n isHexOnly: this.isHexOnly,\r\n valueHex: pvtsutils.Convert.ToHex(this.valueHexView),\r\n };\r\n }\r\n },\r\n _a.NAME = \"hexBlock\",\r\n _a;\r\n}\n\nclass LocalBaseBlock {\r\n constructor({ blockLength = 0, error = EMPTY_STRING, warnings = [], valueBeforeDecode = EMPTY_VIEW, } = {}) {\r\n this.blockLength = blockLength;\r\n this.error = error;\r\n this.warnings = warnings;\r\n this.valueBeforeDecodeView = pvtsutils.BufferSourceConverter.toUint8Array(valueBeforeDecode);\r\n }\r\n static blockName() {\r\n return this.NAME;\r\n }\r\n get valueBeforeDecode() {\r\n return this.valueBeforeDecodeView.slice().buffer;\r\n }\r\n set valueBeforeDecode(value) {\r\n this.valueBeforeDecodeView = new Uint8Array(value);\r\n }\r\n toJSON() {\r\n return {\r\n blockName: this.constructor.NAME,\r\n blockLength: this.blockLength,\r\n error: this.error,\r\n warnings: this.warnings,\r\n valueBeforeDecode: pvtsutils.Convert.ToHex(this.valueBeforeDecodeView),\r\n };\r\n }\r\n}\r\nLocalBaseBlock.NAME = \"baseBlock\";\n\nclass ValueBlock extends LocalBaseBlock {\r\n fromBER(inputBuffer, inputOffset, inputLength) {\r\n throw TypeError(\"User need to make a specific function in a class which extends 'ValueBlock'\");\r\n }\r\n toBER(sizeOnly, writer) {\r\n throw TypeError(\"User need to make a specific function in a class which extends 'ValueBlock'\");\r\n }\r\n}\r\nValueBlock.NAME = \"valueBlock\";\n\nclass LocalIdentificationBlock extends HexBlock(LocalBaseBlock) {\r\n constructor({ idBlock = {}, } = {}) {\r\n var _a, _b, _c, _d;\r\n super();\r\n if (idBlock) {\r\n this.isHexOnly = (_a = idBlock.isHexOnly) !== null && _a !== void 0 ? _a : false;\r\n this.valueHexView = idBlock.valueHex ? pvtsutils.BufferSourceConverter.toUint8Array(idBlock.valueHex) : EMPTY_VIEW;\r\n this.tagClass = (_b = idBlock.tagClass) !== null && _b !== void 0 ? _b : -1;\r\n this.tagNumber = (_c = idBlock.tagNumber) !== null && _c !== void 0 ? _c : -1;\r\n this.isConstructed = (_d = idBlock.isConstructed) !== null && _d !== void 0 ? _d : false;\r\n }\r\n else {\r\n this.tagClass = -1;\r\n this.tagNumber = -1;\r\n this.isConstructed = false;\r\n }\r\n }\r\n toBER(sizeOnly = false) {\r\n let firstOctet = 0;\r\n switch (this.tagClass) {\r\n case 1:\r\n firstOctet |= 0x00;\r\n break;\r\n case 2:\r\n firstOctet |= 0x40;\r\n break;\r\n case 3:\r\n firstOctet |= 0x80;\r\n break;\r\n case 4:\r\n firstOctet |= 0xC0;\r\n break;\r\n default:\r\n this.error = \"Unknown tag class\";\r\n return EMPTY_BUFFER;\r\n }\r\n if (this.isConstructed)\r\n firstOctet |= 0x20;\r\n if (this.tagNumber < 31 && !this.isHexOnly) {\r\n const retView = new Uint8Array(1);\r\n if (!sizeOnly) {\r\n let number = this.tagNumber;\r\n number &= 0x1F;\r\n firstOctet |= number;\r\n retView[0] = firstOctet;\r\n }\r\n return retView.buffer;\r\n }\r\n if (!this.isHexOnly) {\r\n const encodedBuf = pvutils.utilToBase(this.tagNumber, 7);\r\n const encodedView = new Uint8Array(encodedBuf);\r\n const size = encodedBuf.byteLength;\r\n const retView = new Uint8Array(size + 1);\r\n retView[0] = (firstOctet | 0x1F);\r\n if (!sizeOnly) {\r\n for (let i = 0; i < (size - 1); i++)\r\n retView[i + 1] = encodedView[i] | 0x80;\r\n retView[size] = encodedView[size - 1];\r\n }\r\n return retView.buffer;\r\n }\r\n const retView = new Uint8Array(this.valueHexView.byteLength + 1);\r\n retView[0] = (firstOctet | 0x1F);\r\n if (!sizeOnly) {\r\n const curView = this.valueHexView;\r\n for (let i = 0; i < (curView.length - 1); i++)\r\n retView[i + 1] = curView[i] | 0x80;\r\n retView[this.valueHexView.byteLength] = curView[curView.length - 1];\r\n }\r\n return retView.buffer;\r\n }\r\n fromBER(inputBuffer, inputOffset, inputLength) {\r\n const inputView = pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer);\r\n if (!checkBufferParams(this, inputView, inputOffset, inputLength)) {\r\n return -1;\r\n }\r\n const intBuffer = inputView.subarray(inputOffset, inputOffset + inputLength);\r\n if (intBuffer.length === 0) {\r\n this.error = \"Zero buffer length\";\r\n return -1;\r\n }\r\n const tagClassMask = intBuffer[0] & 0xC0;\r\n switch (tagClassMask) {\r\n case 0x00:\r\n this.tagClass = (1);\r\n break;\r\n case 0x40:\r\n this.tagClass = (2);\r\n break;\r\n case 0x80:\r\n this.tagClass = (3);\r\n break;\r\n case 0xC0:\r\n this.tagClass = (4);\r\n break;\r\n default:\r\n this.error = \"Unknown tag class\";\r\n return -1;\r\n }\r\n this.isConstructed = (intBuffer[0] & 0x20) === 0x20;\r\n this.isHexOnly = false;\r\n const tagNumberMask = intBuffer[0] & 0x1F;\r\n if (tagNumberMask !== 0x1F) {\r\n this.tagNumber = (tagNumberMask);\r\n this.blockLength = 1;\r\n }\r\n else {\r\n let count = 1;\r\n let intTagNumberBuffer = this.valueHexView = new Uint8Array(255);\r\n let tagNumberBufferMaxLength = 255;\r\n while (intBuffer[count] & 0x80) {\r\n intTagNumberBuffer[count - 1] = intBuffer[count] & 0x7F;\r\n count++;\r\n if (count >= intBuffer.length) {\r\n this.error = \"End of input reached before message was fully decoded\";\r\n return -1;\r\n }\r\n if (count === tagNumberBufferMaxLength) {\r\n tagNumberBufferMaxLength += 255;\r\n const tempBufferView = new Uint8Array(tagNumberBufferMaxLength);\r\n for (let i = 0; i < intTagNumberBuffer.length; i++)\r\n tempBufferView[i] = intTagNumberBuffer[i];\r\n intTagNumberBuffer = this.valueHexView = new Uint8Array(tagNumberBufferMaxLength);\r\n }\r\n }\r\n this.blockLength = (count + 1);\r\n intTagNumberBuffer[count - 1] = intBuffer[count] & 0x7F;\r\n const tempBufferView = new Uint8Array(count);\r\n for (let i = 0; i < count; i++)\r\n tempBufferView[i] = intTagNumberBuffer[i];\r\n intTagNumberBuffer = this.valueHexView = new Uint8Array(count);\r\n intTagNumberBuffer.set(tempBufferView);\r\n if (this.blockLength <= 9)\r\n this.tagNumber = pvutils.utilFromBase(intTagNumberBuffer, 7);\r\n else {\r\n this.isHexOnly = true;\r\n this.warnings.push(\"Tag too long, represented as hex-coded\");\r\n }\r\n }\r\n if (((this.tagClass === 1)) &&\r\n (this.isConstructed)) {\r\n switch (this.tagNumber) {\r\n case 1:\r\n case 2:\r\n case 5:\r\n case 6:\r\n case 9:\r\n case 13:\r\n case 14:\r\n case 23:\r\n case 24:\r\n case 31:\r\n case 32:\r\n case 33:\r\n case 34:\r\n this.error = \"Constructed encoding used for primitive type\";\r\n return -1;\r\n }\r\n }\r\n return (inputOffset + this.blockLength);\r\n }\r\n toJSON() {\r\n return {\r\n ...super.toJSON(),\r\n tagClass: this.tagClass,\r\n tagNumber: this.tagNumber,\r\n isConstructed: this.isConstructed,\r\n };\r\n }\r\n}\r\nLocalIdentificationBlock.NAME = \"identificationBlock\";\n\nclass LocalLengthBlock extends LocalBaseBlock {\r\n constructor({ lenBlock = {}, } = {}) {\r\n var _a, _b, _c;\r\n super();\r\n this.isIndefiniteForm = (_a = lenBlock.isIndefiniteForm) !== null && _a !== void 0 ? _a : false;\r\n this.longFormUsed = (_b = lenBlock.longFormUsed) !== null && _b !== void 0 ? _b : false;\r\n this.length = (_c = lenBlock.length) !== null && _c !== void 0 ? _c : 0;\r\n }\r\n fromBER(inputBuffer, inputOffset, inputLength) {\r\n const view = pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer);\r\n if (!checkBufferParams(this, view, inputOffset, inputLength)) {\r\n return -1;\r\n }\r\n const intBuffer = view.subarray(inputOffset, inputOffset + inputLength);\r\n if (intBuffer.length === 0) {\r\n this.error = \"Zero buffer length\";\r\n return -1;\r\n }\r\n if (intBuffer[0] === 0xFF) {\r\n this.error = \"Length block 0xFF is reserved by standard\";\r\n return -1;\r\n }\r\n this.isIndefiniteForm = intBuffer[0] === 0x80;\r\n if (this.isIndefiniteForm) {\r\n this.blockLength = 1;\r\n return (inputOffset + this.blockLength);\r\n }\r\n this.longFormUsed = !!(intBuffer[0] & 0x80);\r\n if (this.longFormUsed === false) {\r\n this.length = (intBuffer[0]);\r\n this.blockLength = 1;\r\n return (inputOffset + this.blockLength);\r\n }\r\n const count = intBuffer[0] & 0x7F;\r\n if (count > 8) {\r\n this.error = \"Too big integer\";\r\n return -1;\r\n }\r\n if ((count + 1) > intBuffer.length) {\r\n this.error = \"End of input reached before message was fully decoded\";\r\n return -1;\r\n }\r\n const lenOffset = inputOffset + 1;\r\n const lengthBufferView = view.subarray(lenOffset, lenOffset + count);\r\n if (lengthBufferView[count - 1] === 0x00)\r\n this.warnings.push(\"Needlessly long encoded length\");\r\n this.length = pvutils.utilFromBase(lengthBufferView, 8);\r\n if (this.longFormUsed && (this.length <= 127))\r\n this.warnings.push(\"Unnecessary usage of long length form\");\r\n this.blockLength = count + 1;\r\n return (inputOffset + this.blockLength);\r\n }\r\n toBER(sizeOnly = false) {\r\n let retBuf;\r\n let retView;\r\n if (this.length > 127)\r\n this.longFormUsed = true;\r\n if (this.isIndefiniteForm) {\r\n retBuf = new ArrayBuffer(1);\r\n if (sizeOnly === false) {\r\n retView = new Uint8Array(retBuf);\r\n retView[0] = 0x80;\r\n }\r\n return retBuf;\r\n }\r\n if (this.longFormUsed) {\r\n const encodedBuf = pvutils.utilToBase(this.length, 8);\r\n if (encodedBuf.byteLength > 127) {\r\n this.error = \"Too big length\";\r\n return (EMPTY_BUFFER);\r\n }\r\n retBuf = new ArrayBuffer(encodedBuf.byteLength + 1);\r\n if (sizeOnly)\r\n return retBuf;\r\n const encodedView = new Uint8Array(encodedBuf);\r\n retView = new Uint8Array(retBuf);\r\n retView[0] = encodedBuf.byteLength | 0x80;\r\n for (let i = 0; i < encodedBuf.byteLength; i++)\r\n retView[i + 1] = encodedView[i];\r\n return retBuf;\r\n }\r\n retBuf = new ArrayBuffer(1);\r\n if (sizeOnly === false) {\r\n retView = new Uint8Array(retBuf);\r\n retView[0] = this.length;\r\n }\r\n return retBuf;\r\n }\r\n toJSON() {\r\n return {\r\n ...super.toJSON(),\r\n isIndefiniteForm: this.isIndefiniteForm,\r\n longFormUsed: this.longFormUsed,\r\n length: this.length,\r\n };\r\n }\r\n}\r\nLocalLengthBlock.NAME = \"lengthBlock\";\n\nconst typeStore = {};\n\nclass BaseBlock extends LocalBaseBlock {\r\n constructor({ name = EMPTY_STRING, optional = false, primitiveSchema, ...parameters } = {}, valueBlockType) {\r\n super(parameters);\r\n this.name = name;\r\n this.optional = optional;\r\n if (primitiveSchema) {\r\n this.primitiveSchema = primitiveSchema;\r\n }\r\n this.idBlock = new LocalIdentificationBlock(parameters);\r\n this.lenBlock = new LocalLengthBlock(parameters);\r\n this.valueBlock = valueBlockType ? new valueBlockType(parameters) : new ValueBlock(parameters);\r\n }\r\n fromBER(inputBuffer, inputOffset, inputLength) {\r\n const resultOffset = this.valueBlock.fromBER(inputBuffer, inputOffset, (this.lenBlock.isIndefiniteForm) ? inputLength : this.lenBlock.length);\r\n if (resultOffset === -1) {\r\n this.error = this.valueBlock.error;\r\n return resultOffset;\r\n }\r\n if (!this.idBlock.error.length)\r\n this.blockLength += this.idBlock.blockLength;\r\n if (!this.lenBlock.error.length)\r\n this.blockLength += this.lenBlock.blockLength;\r\n if (!this.valueBlock.error.length)\r\n this.blockLength += this.valueBlock.blockLength;\r\n return resultOffset;\r\n }\r\n toBER(sizeOnly, writer) {\r\n const _writer = writer || new ViewWriter();\r\n if (!writer) {\r\n prepareIndefiniteForm(this);\r\n }\r\n const idBlockBuf = this.idBlock.toBER(sizeOnly);\r\n _writer.write(idBlockBuf);\r\n if (this.lenBlock.isIndefiniteForm) {\r\n _writer.write(new Uint8Array([0x80]).buffer);\r\n this.valueBlock.toBER(sizeOnly, _writer);\r\n _writer.write(new ArrayBuffer(2));\r\n }\r\n else {\r\n const valueBlockBuf = this.valueBlock.toBER(sizeOnly);\r\n this.lenBlock.length = valueBlockBuf.byteLength;\r\n const lenBlockBuf = this.lenBlock.toBER(sizeOnly);\r\n _writer.write(lenBlockBuf);\r\n _writer.write(valueBlockBuf);\r\n }\r\n if (!writer) {\r\n return _writer.final();\r\n }\r\n return EMPTY_BUFFER;\r\n }\r\n toJSON() {\r\n const object = {\r\n ...super.toJSON(),\r\n idBlock: this.idBlock.toJSON(),\r\n lenBlock: this.lenBlock.toJSON(),\r\n valueBlock: this.valueBlock.toJSON(),\r\n name: this.name,\r\n optional: this.optional,\r\n };\r\n if (this.primitiveSchema)\r\n object.primitiveSchema = this.primitiveSchema.toJSON();\r\n return object;\r\n }\r\n toString(encoding = \"ascii\") {\r\n if (encoding === \"ascii\") {\r\n return this.onAsciiEncoding();\r\n }\r\n return pvtsutils.Convert.ToHex(this.toBER());\r\n }\r\n onAsciiEncoding() {\r\n return `${this.constructor.NAME} : ${pvtsutils.Convert.ToHex(this.valueBlock.valueBeforeDecodeView)}`;\r\n }\r\n isEqual(other) {\r\n if (this === other) {\r\n return true;\r\n }\r\n if (!(other instanceof this.constructor)) {\r\n return false;\r\n }\r\n const thisRaw = this.toBER();\r\n const otherRaw = other.toBER();\r\n return pvutils.isEqualBuffer(thisRaw, otherRaw);\r\n }\r\n}\r\nBaseBlock.NAME = \"BaseBlock\";\r\nfunction prepareIndefiniteForm(baseBlock) {\r\n if (baseBlock instanceof typeStore.Constructed) {\r\n for (const value of baseBlock.valueBlock.value) {\r\n if (prepareIndefiniteForm(value)) {\r\n baseBlock.lenBlock.isIndefiniteForm = true;\r\n }\r\n }\r\n }\r\n return !!baseBlock.lenBlock.isIndefiniteForm;\r\n}\n\nclass BaseStringBlock extends BaseBlock {\r\n constructor({ value = EMPTY_STRING, ...parameters } = {}, stringValueBlockType) {\r\n super(parameters, stringValueBlockType);\r\n if (value) {\r\n this.fromString(value);\r\n }\r\n }\r\n getValue() {\r\n return this.valueBlock.value;\r\n }\r\n setValue(value) {\r\n this.valueBlock.value = value;\r\n }\r\n fromBER(inputBuffer, inputOffset, inputLength) {\r\n const resultOffset = this.valueBlock.fromBER(inputBuffer, inputOffset, (this.lenBlock.isIndefiniteForm) ? inputLength : this.lenBlock.length);\r\n if (resultOffset === -1) {\r\n this.error = this.valueBlock.error;\r\n return resultOffset;\r\n }\r\n this.fromBuffer(this.valueBlock.valueHexView);\r\n if (!this.idBlock.error.length)\r\n this.blockLength += this.idBlock.blockLength;\r\n if (!this.lenBlock.error.length)\r\n this.blockLength += this.lenBlock.blockLength;\r\n if (!this.valueBlock.error.length)\r\n this.blockLength += this.valueBlock.blockLength;\r\n return resultOffset;\r\n }\r\n onAsciiEncoding() {\r\n return `${this.constructor.NAME} : '${this.valueBlock.value}'`;\r\n }\r\n}\r\nBaseStringBlock.NAME = \"BaseStringBlock\";\n\nclass LocalPrimitiveValueBlock extends HexBlock(ValueBlock) {\r\n constructor({ isHexOnly = true, ...parameters } = {}) {\r\n super(parameters);\r\n this.isHexOnly = isHexOnly;\r\n }\r\n}\r\nLocalPrimitiveValueBlock.NAME = \"PrimitiveValueBlock\";\n\nvar _a$w;\r\nclass Primitive extends BaseBlock {\r\n constructor(parameters = {}) {\r\n super(parameters, LocalPrimitiveValueBlock);\r\n this.idBlock.isConstructed = false;\r\n }\r\n}\r\n_a$w = Primitive;\r\n(() => {\r\n typeStore.Primitive = _a$w;\r\n})();\r\nPrimitive.NAME = \"PRIMITIVE\";\n\nfunction localChangeType(inputObject, newType) {\r\n if (inputObject instanceof newType) {\r\n return inputObject;\r\n }\r\n const newObject = new newType();\r\n newObject.idBlock = inputObject.idBlock;\r\n newObject.lenBlock = inputObject.lenBlock;\r\n newObject.warnings = inputObject.warnings;\r\n newObject.valueBeforeDecodeView = inputObject.valueBeforeDecodeView;\r\n return newObject;\r\n}\r\nfunction localFromBER(inputBuffer, inputOffset = 0, inputLength = inputBuffer.length) {\r\n const incomingOffset = inputOffset;\r\n let returnObject = new BaseBlock({}, ValueBlock);\r\n const baseBlock = new LocalBaseBlock();\r\n if (!checkBufferParams(baseBlock, inputBuffer, inputOffset, inputLength)) {\r\n returnObject.error = baseBlock.error;\r\n return {\r\n offset: -1,\r\n result: returnObject\r\n };\r\n }\r\n const intBuffer = inputBuffer.subarray(inputOffset, inputOffset + inputLength);\r\n if (!intBuffer.length) {\r\n returnObject.error = \"Zero buffer length\";\r\n return {\r\n offset: -1,\r\n result: returnObject\r\n };\r\n }\r\n let resultOffset = returnObject.idBlock.fromBER(inputBuffer, inputOffset, inputLength);\r\n if (returnObject.idBlock.warnings.length) {\r\n returnObject.warnings.concat(returnObject.idBlock.warnings);\r\n }\r\n if (resultOffset === -1) {\r\n returnObject.error = returnObject.idBlock.error;\r\n return {\r\n offset: -1,\r\n result: returnObject\r\n };\r\n }\r\n inputOffset = resultOffset;\r\n inputLength -= returnObject.idBlock.blockLength;\r\n resultOffset = returnObject.lenBlock.fromBER(inputBuffer, inputOffset, inputLength);\r\n if (returnObject.lenBlock.warnings.length) {\r\n returnObject.warnings.concat(returnObject.lenBlock.warnings);\r\n }\r\n if (resultOffset === -1) {\r\n returnObject.error = returnObject.lenBlock.error;\r\n return {\r\n offset: -1,\r\n result: returnObject\r\n };\r\n }\r\n inputOffset = resultOffset;\r\n inputLength -= returnObject.lenBlock.blockLength;\r\n if (!returnObject.idBlock.isConstructed &&\r\n returnObject.lenBlock.isIndefiniteForm) {\r\n returnObject.error = \"Indefinite length form used for primitive encoding form\";\r\n return {\r\n offset: -1,\r\n result: returnObject\r\n };\r\n }\r\n let newASN1Type = BaseBlock;\r\n switch (returnObject.idBlock.tagClass) {\r\n case 1:\r\n if ((returnObject.idBlock.tagNumber >= 37) &&\r\n (returnObject.idBlock.isHexOnly === false)) {\r\n returnObject.error = \"UNIVERSAL 37 and upper tags are reserved by ASN.1 standard\";\r\n return {\r\n offset: -1,\r\n result: returnObject\r\n };\r\n }\r\n switch (returnObject.idBlock.tagNumber) {\r\n case 0:\r\n if ((returnObject.idBlock.isConstructed) &&\r\n (returnObject.lenBlock.length > 0)) {\r\n returnObject.error = \"Type [UNIVERSAL 0] is reserved\";\r\n return {\r\n offset: -1,\r\n result: returnObject\r\n };\r\n }\r\n newASN1Type = typeStore.EndOfContent;\r\n break;\r\n case 1:\r\n newASN1Type = typeStore.Boolean;\r\n break;\r\n case 2:\r\n newASN1Type = typeStore.Integer;\r\n break;\r\n case 3:\r\n newASN1Type = typeStore.BitString;\r\n break;\r\n case 4:\r\n newASN1Type = typeStore.OctetString;\r\n break;\r\n case 5:\r\n newASN1Type = typeStore.Null;\r\n break;\r\n case 6:\r\n newASN1Type = typeStore.ObjectIdentifier;\r\n break;\r\n case 10:\r\n newASN1Type = typeStore.Enumerated;\r\n break;\r\n case 12:\r\n newASN1Type = typeStore.Utf8String;\r\n break;\r\n case 13:\r\n newASN1Type = typeStore.RelativeObjectIdentifier;\r\n break;\r\n case 14:\r\n newASN1Type = typeStore.TIME;\r\n break;\r\n case 15:\r\n returnObject.error = \"[UNIVERSAL 15] is reserved by ASN.1 standard\";\r\n return {\r\n offset: -1,\r\n result: returnObject\r\n };\r\n case 16:\r\n newASN1Type = typeStore.Sequence;\r\n break;\r\n case 17:\r\n newASN1Type = typeStore.Set;\r\n break;\r\n case 18:\r\n newASN1Type = typeStore.NumericString;\r\n break;\r\n case 19:\r\n newASN1Type = typeStore.PrintableString;\r\n break;\r\n case 20:\r\n newASN1Type = typeStore.TeletexString;\r\n break;\r\n case 21:\r\n newASN1Type = typeStore.VideotexString;\r\n break;\r\n case 22:\r\n newASN1Type = typeStore.IA5String;\r\n break;\r\n case 23:\r\n newASN1Type = typeStore.UTCTime;\r\n break;\r\n case 24:\r\n newASN1Type = typeStore.GeneralizedTime;\r\n break;\r\n case 25:\r\n newASN1Type = typeStore.GraphicString;\r\n break;\r\n case 26:\r\n newASN1Type = typeStore.VisibleString;\r\n break;\r\n case 27:\r\n newASN1Type = typeStore.GeneralString;\r\n break;\r\n case 28:\r\n newASN1Type = typeStore.UniversalString;\r\n break;\r\n case 29:\r\n newASN1Type = typeStore.CharacterString;\r\n break;\r\n case 30:\r\n newASN1Type = typeStore.BmpString;\r\n break;\r\n case 31:\r\n newASN1Type = typeStore.DATE;\r\n break;\r\n case 32:\r\n newASN1Type = typeStore.TimeOfDay;\r\n break;\r\n case 33:\r\n newASN1Type = typeStore.DateTime;\r\n break;\r\n case 34:\r\n newASN1Type = typeStore.Duration;\r\n break;\r\n default: {\r\n const newObject = returnObject.idBlock.isConstructed\r\n ? new typeStore.Constructed()\r\n : new typeStore.Primitive();\r\n newObject.idBlock = returnObject.idBlock;\r\n newObject.lenBlock = returnObject.lenBlock;\r\n newObject.warnings = returnObject.warnings;\r\n returnObject = newObject;\r\n }\r\n }\r\n break;\r\n case 2:\r\n case 3:\r\n case 4:\r\n default: {\r\n newASN1Type = returnObject.idBlock.isConstructed\r\n ? typeStore.Constructed\r\n : typeStore.Primitive;\r\n }\r\n }\r\n returnObject = localChangeType(returnObject, newASN1Type);\r\n resultOffset = returnObject.fromBER(inputBuffer, inputOffset, returnObject.lenBlock.isIndefiniteForm ? inputLength : returnObject.lenBlock.length);\r\n returnObject.valueBeforeDecodeView = inputBuffer.subarray(incomingOffset, incomingOffset + returnObject.blockLength);\r\n return {\r\n offset: resultOffset,\r\n result: returnObject\r\n };\r\n}\r\nfunction fromBER(inputBuffer) {\r\n if (!inputBuffer.byteLength) {\r\n const result = new BaseBlock({}, ValueBlock);\r\n result.error = \"Input buffer has zero length\";\r\n return {\r\n offset: -1,\r\n result\r\n };\r\n }\r\n return localFromBER(pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer).slice(), 0, inputBuffer.byteLength);\r\n}\n\nfunction checkLen(indefiniteLength, length) {\r\n if (indefiniteLength) {\r\n return 1;\r\n }\r\n return length;\r\n}\r\nclass LocalConstructedValueBlock extends ValueBlock {\r\n constructor({ value = [], isIndefiniteForm = false, ...parameters } = {}) {\r\n super(parameters);\r\n this.value = value;\r\n this.isIndefiniteForm = isIndefiniteForm;\r\n }\r\n fromBER(inputBuffer, inputOffset, inputLength) {\r\n const view = pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer);\r\n if (!checkBufferParams(this, view, inputOffset, inputLength)) {\r\n return -1;\r\n }\r\n this.valueBeforeDecodeView = view.subarray(inputOffset, inputOffset + inputLength);\r\n if (this.valueBeforeDecodeView.length === 0) {\r\n this.warnings.push(\"Zero buffer length\");\r\n return inputOffset;\r\n }\r\n let currentOffset = inputOffset;\r\n while (checkLen(this.isIndefiniteForm, inputLength) > 0) {\r\n const returnObject = localFromBER(view, currentOffset, inputLength);\r\n if (returnObject.offset === -1) {\r\n this.error = returnObject.result.error;\r\n this.warnings.concat(returnObject.result.warnings);\r\n return -1;\r\n }\r\n currentOffset = returnObject.offset;\r\n this.blockLength += returnObject.result.blockLength;\r\n inputLength -= returnObject.result.blockLength;\r\n this.value.push(returnObject.result);\r\n if (this.isIndefiniteForm && returnObject.result.constructor.NAME === END_OF_CONTENT_NAME) {\r\n break;\r\n }\r\n }\r\n if (this.isIndefiniteForm) {\r\n if (this.value[this.value.length - 1].constructor.NAME === END_OF_CONTENT_NAME) {\r\n this.value.pop();\r\n }\r\n else {\r\n this.warnings.push(\"No EndOfContent block encoded\");\r\n }\r\n }\r\n return currentOffset;\r\n }\r\n toBER(sizeOnly, writer) {\r\n const _writer = writer || new ViewWriter();\r\n for (let i = 0; i < this.value.length; i++) {\r\n this.value[i].toBER(sizeOnly, _writer);\r\n }\r\n if (!writer) {\r\n return _writer.final();\r\n }\r\n return EMPTY_BUFFER;\r\n }\r\n toJSON() {\r\n const object = {\r\n ...super.toJSON(),\r\n isIndefiniteForm: this.isIndefiniteForm,\r\n value: [],\r\n };\r\n for (const value of this.value) {\r\n object.value.push(value.toJSON());\r\n }\r\n return object;\r\n }\r\n}\r\nLocalConstructedValueBlock.NAME = \"ConstructedValueBlock\";\n\nvar _a$v;\r\nclass Constructed extends BaseBlock {\r\n constructor(parameters = {}) {\r\n super(parameters, LocalConstructedValueBlock);\r\n this.idBlock.isConstructed = true;\r\n }\r\n fromBER(inputBuffer, inputOffset, inputLength) {\r\n this.valueBlock.isIndefiniteForm = this.lenBlock.isIndefiniteForm;\r\n const resultOffset = this.valueBlock.fromBER(inputBuffer, inputOffset, (this.lenBlock.isIndefiniteForm) ? inputLength : this.lenBlock.length);\r\n if (resultOffset === -1) {\r\n this.error = this.valueBlock.error;\r\n return resultOffset;\r\n }\r\n if (!this.idBlock.error.length)\r\n this.blockLength += this.idBlock.blockLength;\r\n if (!this.lenBlock.error.length)\r\n this.blockLength += this.lenBlock.blockLength;\r\n if (!this.valueBlock.error.length)\r\n this.blockLength += this.valueBlock.blockLength;\r\n return resultOffset;\r\n }\r\n onAsciiEncoding() {\r\n const values = [];\r\n for (const value of this.valueBlock.value) {\r\n values.push(value.toString(\"ascii\").split(\"\\n\").map(o => ` ${o}`).join(\"\\n\"));\r\n }\r\n const blockName = this.idBlock.tagClass === 3\r\n ? `[${this.idBlock.tagNumber}]`\r\n : this.constructor.NAME;\r\n return values.length\r\n ? `${blockName} :\\n${values.join(\"\\n\")}`\r\n : `${blockName} :`;\r\n }\r\n}\r\n_a$v = Constructed;\r\n(() => {\r\n typeStore.Constructed = _a$v;\r\n})();\r\nConstructed.NAME = \"CONSTRUCTED\";\n\nclass LocalEndOfContentValueBlock extends ValueBlock {\r\n fromBER(inputBuffer, inputOffset, inputLength) {\r\n return inputOffset;\r\n }\r\n toBER(sizeOnly) {\r\n return EMPTY_BUFFER;\r\n }\r\n}\r\nLocalEndOfContentValueBlock.override = \"EndOfContentValueBlock\";\n\nvar _a$u;\r\nclass EndOfContent extends BaseBlock {\r\n constructor(parameters = {}) {\r\n super(parameters, LocalEndOfContentValueBlock);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 0;\r\n }\r\n}\r\n_a$u = EndOfContent;\r\n(() => {\r\n typeStore.EndOfContent = _a$u;\r\n})();\r\nEndOfContent.NAME = END_OF_CONTENT_NAME;\n\nvar _a$t;\r\nclass Null extends BaseBlock {\r\n constructor(parameters = {}) {\r\n super(parameters, ValueBlock);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 5;\r\n }\r\n fromBER(inputBuffer, inputOffset, inputLength) {\r\n if (this.lenBlock.length > 0)\r\n this.warnings.push(\"Non-zero length of value block for Null type\");\r\n if (!this.idBlock.error.length)\r\n this.blockLength += this.idBlock.blockLength;\r\n if (!this.lenBlock.error.length)\r\n this.blockLength += this.lenBlock.blockLength;\r\n this.blockLength += inputLength;\r\n if ((inputOffset + inputLength) > inputBuffer.byteLength) {\r\n this.error = \"End of input reached before message was fully decoded (inconsistent offset and length values)\";\r\n return -1;\r\n }\r\n return (inputOffset + inputLength);\r\n }\r\n toBER(sizeOnly, writer) {\r\n const retBuf = new ArrayBuffer(2);\r\n if (!sizeOnly) {\r\n const retView = new Uint8Array(retBuf);\r\n retView[0] = 0x05;\r\n retView[1] = 0x00;\r\n }\r\n if (writer) {\r\n writer.write(retBuf);\r\n }\r\n return retBuf;\r\n }\r\n onAsciiEncoding() {\r\n return `${this.constructor.NAME}`;\r\n }\r\n}\r\n_a$t = Null;\r\n(() => {\r\n typeStore.Null = _a$t;\r\n})();\r\nNull.NAME = \"NULL\";\n\nclass LocalBooleanValueBlock extends HexBlock(ValueBlock) {\r\n constructor({ value, ...parameters } = {}) {\r\n super(parameters);\r\n if (parameters.valueHex) {\r\n this.valueHexView = pvtsutils.BufferSourceConverter.toUint8Array(parameters.valueHex);\r\n }\r\n else {\r\n this.valueHexView = new Uint8Array(1);\r\n }\r\n if (value) {\r\n this.value = value;\r\n }\r\n }\r\n get value() {\r\n for (const octet of this.valueHexView) {\r\n if (octet > 0) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n set value(value) {\r\n this.valueHexView[0] = value ? 0xFF : 0x00;\r\n }\r\n fromBER(inputBuffer, inputOffset, inputLength) {\r\n const inputView = pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer);\r\n if (!checkBufferParams(this, inputView, inputOffset, inputLength)) {\r\n return -1;\r\n }\r\n this.valueHexView = inputView.subarray(inputOffset, inputOffset + inputLength);\r\n if (inputLength > 1)\r\n this.warnings.push(\"Boolean value encoded in more then 1 octet\");\r\n this.isHexOnly = true;\r\n pvutils.utilDecodeTC.call(this);\r\n this.blockLength = inputLength;\r\n return (inputOffset + inputLength);\r\n }\r\n toBER() {\r\n return this.valueHexView.slice();\r\n }\r\n toJSON() {\r\n return {\r\n ...super.toJSON(),\r\n value: this.value,\r\n };\r\n }\r\n}\r\nLocalBooleanValueBlock.NAME = \"BooleanValueBlock\";\n\nvar _a$s;\r\nclass Boolean extends BaseBlock {\r\n constructor(parameters = {}) {\r\n super(parameters, LocalBooleanValueBlock);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 1;\r\n }\r\n getValue() {\r\n return this.valueBlock.value;\r\n }\r\n setValue(value) {\r\n this.valueBlock.value = value;\r\n }\r\n onAsciiEncoding() {\r\n return `${this.constructor.NAME} : ${this.getValue}`;\r\n }\r\n}\r\n_a$s = Boolean;\r\n(() => {\r\n typeStore.Boolean = _a$s;\r\n})();\r\nBoolean.NAME = \"BOOLEAN\";\n\nclass LocalOctetStringValueBlock extends HexBlock(LocalConstructedValueBlock) {\r\n constructor({ isConstructed = false, ...parameters } = {}) {\r\n super(parameters);\r\n this.isConstructed = isConstructed;\r\n }\r\n fromBER(inputBuffer, inputOffset, inputLength) {\r\n let resultOffset = 0;\r\n if (this.isConstructed) {\r\n this.isHexOnly = false;\r\n resultOffset = LocalConstructedValueBlock.prototype.fromBER.call(this, inputBuffer, inputOffset, inputLength);\r\n if (resultOffset === -1)\r\n return resultOffset;\r\n for (let i = 0; i < this.value.length; i++) {\r\n const currentBlockName = this.value[i].constructor.NAME;\r\n if (currentBlockName === END_OF_CONTENT_NAME) {\r\n if (this.isIndefiniteForm)\r\n break;\r\n else {\r\n this.error = \"EndOfContent is unexpected, OCTET STRING may consists of OCTET STRINGs only\";\r\n return -1;\r\n }\r\n }\r\n if (currentBlockName !== OCTET_STRING_NAME) {\r\n this.error = \"OCTET STRING may consists of OCTET STRINGs only\";\r\n return -1;\r\n }\r\n }\r\n }\r\n else {\r\n this.isHexOnly = true;\r\n resultOffset = super.fromBER(inputBuffer, inputOffset, inputLength);\r\n this.blockLength = inputLength;\r\n }\r\n return resultOffset;\r\n }\r\n toBER(sizeOnly, writer) {\r\n if (this.isConstructed)\r\n return LocalConstructedValueBlock.prototype.toBER.call(this, sizeOnly, writer);\r\n return sizeOnly\r\n ? new ArrayBuffer(this.valueHexView.byteLength)\r\n : this.valueHexView.slice().buffer;\r\n }\r\n toJSON() {\r\n return {\r\n ...super.toJSON(),\r\n isConstructed: this.isConstructed,\r\n };\r\n }\r\n}\r\nLocalOctetStringValueBlock.NAME = \"OctetStringValueBlock\";\n\nvar _a$r;\r\nclass OctetString extends BaseBlock {\r\n constructor({ idBlock = {}, lenBlock = {}, ...parameters } = {}) {\r\n var _b, _c;\r\n (_b = parameters.isConstructed) !== null && _b !== void 0 ? _b : (parameters.isConstructed = !!((_c = parameters.value) === null || _c === void 0 ? void 0 : _c.length));\r\n super({\r\n idBlock: {\r\n isConstructed: parameters.isConstructed,\r\n ...idBlock,\r\n },\r\n lenBlock: {\r\n ...lenBlock,\r\n isIndefiniteForm: !!parameters.isIndefiniteForm,\r\n },\r\n ...parameters,\r\n }, LocalOctetStringValueBlock);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 4;\r\n }\r\n fromBER(inputBuffer, inputOffset, inputLength) {\r\n this.valueBlock.isConstructed = this.idBlock.isConstructed;\r\n this.valueBlock.isIndefiniteForm = this.lenBlock.isIndefiniteForm;\r\n if (inputLength === 0) {\r\n if (this.idBlock.error.length === 0)\r\n this.blockLength += this.idBlock.blockLength;\r\n if (this.lenBlock.error.length === 0)\r\n this.blockLength += this.lenBlock.blockLength;\r\n return inputOffset;\r\n }\r\n if (!this.valueBlock.isConstructed) {\r\n const view = inputBuffer instanceof ArrayBuffer ? new Uint8Array(inputBuffer) : inputBuffer;\r\n const buf = view.subarray(inputOffset, inputOffset + inputLength);\r\n try {\r\n if (buf.byteLength) {\r\n const asn = localFromBER(buf, 0, buf.byteLength);\r\n if (asn.offset !== -1 && asn.offset === inputLength) {\r\n this.valueBlock.value = [asn.result];\r\n }\r\n }\r\n }\r\n catch (e) {\r\n }\r\n }\r\n return super.fromBER(inputBuffer, inputOffset, inputLength);\r\n }\r\n onAsciiEncoding() {\r\n if (this.valueBlock.isConstructed || (this.valueBlock.value && this.valueBlock.value.length)) {\r\n return Constructed.prototype.onAsciiEncoding.call(this);\r\n }\r\n return `${this.constructor.NAME} : ${pvtsutils.Convert.ToHex(this.valueBlock.valueHexView)}`;\r\n }\r\n getValue() {\r\n if (!this.idBlock.isConstructed) {\r\n return this.valueBlock.valueHexView.slice().buffer;\r\n }\r\n const array = [];\r\n for (const content of this.valueBlock.value) {\r\n if (content instanceof OctetString) {\r\n array.push(content.valueBlock.valueHexView);\r\n }\r\n }\r\n return pvtsutils.BufferSourceConverter.concat(array);\r\n }\r\n}\r\n_a$r = OctetString;\r\n(() => {\r\n typeStore.OctetString = _a$r;\r\n})();\r\nOctetString.NAME = OCTET_STRING_NAME;\n\nclass LocalBitStringValueBlock extends HexBlock(LocalConstructedValueBlock) {\r\n constructor({ unusedBits = 0, isConstructed = false, ...parameters } = {}) {\r\n super(parameters);\r\n this.unusedBits = unusedBits;\r\n this.isConstructed = isConstructed;\r\n this.blockLength = this.valueHexView.byteLength;\r\n }\r\n fromBER(inputBuffer, inputOffset, inputLength) {\r\n if (!inputLength) {\r\n return inputOffset;\r\n }\r\n let resultOffset = -1;\r\n if (this.isConstructed) {\r\n resultOffset = LocalConstructedValueBlock.prototype.fromBER.call(this, inputBuffer, inputOffset, inputLength);\r\n if (resultOffset === -1)\r\n return resultOffset;\r\n for (const value of this.value) {\r\n const currentBlockName = value.constructor.NAME;\r\n if (currentBlockName === END_OF_CONTENT_NAME) {\r\n if (this.isIndefiniteForm)\r\n break;\r\n else {\r\n this.error = \"EndOfContent is unexpected, BIT STRING may consists of BIT STRINGs only\";\r\n return -1;\r\n }\r\n }\r\n if (currentBlockName !== BIT_STRING_NAME) {\r\n this.error = \"BIT STRING may consists of BIT STRINGs only\";\r\n return -1;\r\n }\r\n const valueBlock = value.valueBlock;\r\n if ((this.unusedBits > 0) && (valueBlock.unusedBits > 0)) {\r\n this.error = \"Using of \\\"unused bits\\\" inside constructive BIT STRING allowed for least one only\";\r\n return -1;\r\n }\r\n this.unusedBits = valueBlock.unusedBits;\r\n }\r\n return resultOffset;\r\n }\r\n const inputView = pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer);\r\n if (!checkBufferParams(this, inputView, inputOffset, inputLength)) {\r\n return -1;\r\n }\r\n const intBuffer = inputView.subarray(inputOffset, inputOffset + inputLength);\r\n this.unusedBits = intBuffer[0];\r\n if (this.unusedBits > 7) {\r\n this.error = \"Unused bits for BitString must be in range 0-7\";\r\n return -1;\r\n }\r\n if (!this.unusedBits) {\r\n const buf = intBuffer.subarray(1);\r\n try {\r\n if (buf.byteLength) {\r\n const asn = localFromBER(buf, 0, buf.byteLength);\r\n if (asn.offset !== -1 && asn.offset === (inputLength - 1)) {\r\n this.value = [asn.result];\r\n }\r\n }\r\n }\r\n catch (e) {\r\n }\r\n }\r\n this.valueHexView = intBuffer.subarray(1);\r\n this.blockLength = intBuffer.length;\r\n return (inputOffset + inputLength);\r\n }\r\n toBER(sizeOnly, writer) {\r\n if (this.isConstructed) {\r\n return LocalConstructedValueBlock.prototype.toBER.call(this, sizeOnly, writer);\r\n }\r\n if (sizeOnly) {\r\n return new ArrayBuffer(this.valueHexView.byteLength + 1);\r\n }\r\n if (!this.valueHexView.byteLength) {\r\n return EMPTY_BUFFER;\r\n }\r\n const retView = new Uint8Array(this.valueHexView.length + 1);\r\n retView[0] = this.unusedBits;\r\n retView.set(this.valueHexView, 1);\r\n return retView.buffer;\r\n }\r\n toJSON() {\r\n return {\r\n ...super.toJSON(),\r\n unusedBits: this.unusedBits,\r\n isConstructed: this.isConstructed,\r\n };\r\n }\r\n}\r\nLocalBitStringValueBlock.NAME = \"BitStringValueBlock\";\n\nvar _a$q;\r\nclass BitString extends BaseBlock {\r\n constructor({ idBlock = {}, lenBlock = {}, ...parameters } = {}) {\r\n var _b, _c;\r\n (_b = parameters.isConstructed) !== null && _b !== void 0 ? _b : (parameters.isConstructed = !!((_c = parameters.value) === null || _c === void 0 ? void 0 : _c.length));\r\n super({\r\n idBlock: {\r\n isConstructed: parameters.isConstructed,\r\n ...idBlock,\r\n },\r\n lenBlock: {\r\n ...lenBlock,\r\n isIndefiniteForm: !!parameters.isIndefiniteForm,\r\n },\r\n ...parameters,\r\n }, LocalBitStringValueBlock);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 3;\r\n }\r\n fromBER(inputBuffer, inputOffset, inputLength) {\r\n this.valueBlock.isConstructed = this.idBlock.isConstructed;\r\n this.valueBlock.isIndefiniteForm = this.lenBlock.isIndefiniteForm;\r\n return super.fromBER(inputBuffer, inputOffset, inputLength);\r\n }\r\n onAsciiEncoding() {\r\n if (this.valueBlock.isConstructed || (this.valueBlock.value && this.valueBlock.value.length)) {\r\n return Constructed.prototype.onAsciiEncoding.call(this);\r\n }\r\n else {\r\n const bits = [];\r\n const valueHex = this.valueBlock.valueHexView;\r\n for (const byte of valueHex) {\r\n bits.push(byte.toString(2).padStart(8, \"0\"));\r\n }\r\n const bitsStr = bits.join(\"\");\r\n return `${this.constructor.NAME} : ${bitsStr.substring(0, bitsStr.length - this.valueBlock.unusedBits)}`;\r\n }\r\n }\r\n}\r\n_a$q = BitString;\r\n(() => {\r\n typeStore.BitString = _a$q;\r\n})();\r\nBitString.NAME = BIT_STRING_NAME;\n\nvar _a$p;\r\nfunction viewAdd(first, second) {\r\n const c = new Uint8Array([0]);\r\n const firstView = new Uint8Array(first);\r\n const secondView = new Uint8Array(second);\r\n let firstViewCopy = firstView.slice(0);\r\n const firstViewCopyLength = firstViewCopy.length - 1;\r\n const secondViewCopy = secondView.slice(0);\r\n const secondViewCopyLength = secondViewCopy.length - 1;\r\n let value = 0;\r\n const max = (secondViewCopyLength < firstViewCopyLength) ? firstViewCopyLength : secondViewCopyLength;\r\n let counter = 0;\r\n for (let i = max; i >= 0; i--, counter++) {\r\n switch (true) {\r\n case (counter < secondViewCopy.length):\r\n value = firstViewCopy[firstViewCopyLength - counter] + secondViewCopy[secondViewCopyLength - counter] + c[0];\r\n break;\r\n default:\r\n value = firstViewCopy[firstViewCopyLength - counter] + c[0];\r\n }\r\n c[0] = value / 10;\r\n switch (true) {\r\n case (counter >= firstViewCopy.length):\r\n firstViewCopy = pvutils.utilConcatView(new Uint8Array([value % 10]), firstViewCopy);\r\n break;\r\n default:\r\n firstViewCopy[firstViewCopyLength - counter] = value % 10;\r\n }\r\n }\r\n if (c[0] > 0)\r\n firstViewCopy = pvutils.utilConcatView(c, firstViewCopy);\r\n return firstViewCopy;\r\n}\r\nfunction power2(n) {\r\n if (n >= powers2.length) {\r\n for (let p = powers2.length; p <= n; p++) {\r\n const c = new Uint8Array([0]);\r\n let digits = (powers2[p - 1]).slice(0);\r\n for (let i = (digits.length - 1); i >= 0; i--) {\r\n const newValue = new Uint8Array([(digits[i] << 1) + c[0]]);\r\n c[0] = newValue[0] / 10;\r\n digits[i] = newValue[0] % 10;\r\n }\r\n if (c[0] > 0)\r\n digits = pvutils.utilConcatView(c, digits);\r\n powers2.push(digits);\r\n }\r\n }\r\n return powers2[n];\r\n}\r\nfunction viewSub(first, second) {\r\n let b = 0;\r\n const firstView = new Uint8Array(first);\r\n const secondView = new Uint8Array(second);\r\n const firstViewCopy = firstView.slice(0);\r\n const firstViewCopyLength = firstViewCopy.length - 1;\r\n const secondViewCopy = secondView.slice(0);\r\n const secondViewCopyLength = secondViewCopy.length - 1;\r\n let value;\r\n let counter = 0;\r\n for (let i = secondViewCopyLength; i >= 0; i--, counter++) {\r\n value = firstViewCopy[firstViewCopyLength - counter] - secondViewCopy[secondViewCopyLength - counter] - b;\r\n switch (true) {\r\n case (value < 0):\r\n b = 1;\r\n firstViewCopy[firstViewCopyLength - counter] = value + 10;\r\n break;\r\n default:\r\n b = 0;\r\n firstViewCopy[firstViewCopyLength - counter] = value;\r\n }\r\n }\r\n if (b > 0) {\r\n for (let i = (firstViewCopyLength - secondViewCopyLength + 1); i >= 0; i--, counter++) {\r\n value = firstViewCopy[firstViewCopyLength - counter] - b;\r\n if (value < 0) {\r\n b = 1;\r\n firstViewCopy[firstViewCopyLength - counter] = value + 10;\r\n }\r\n else {\r\n b = 0;\r\n firstViewCopy[firstViewCopyLength - counter] = value;\r\n break;\r\n }\r\n }\r\n }\r\n return firstViewCopy.slice();\r\n}\r\nclass LocalIntegerValueBlock extends HexBlock(ValueBlock) {\r\n constructor({ value, ...parameters } = {}) {\r\n super(parameters);\r\n this._valueDec = 0;\r\n if (parameters.valueHex) {\r\n this.setValueHex();\r\n }\r\n if (value !== undefined) {\r\n this.valueDec = value;\r\n }\r\n }\r\n setValueHex() {\r\n if (this.valueHexView.length >= 4) {\r\n this.warnings.push(\"Too big Integer for decoding, hex only\");\r\n this.isHexOnly = true;\r\n this._valueDec = 0;\r\n }\r\n else {\r\n this.isHexOnly = false;\r\n if (this.valueHexView.length > 0) {\r\n this._valueDec = pvutils.utilDecodeTC.call(this);\r\n }\r\n }\r\n }\r\n set valueDec(v) {\r\n this._valueDec = v;\r\n this.isHexOnly = false;\r\n this.valueHexView = new Uint8Array(pvutils.utilEncodeTC(v));\r\n }\r\n get valueDec() {\r\n return this._valueDec;\r\n }\r\n fromDER(inputBuffer, inputOffset, inputLength, expectedLength = 0) {\r\n const offset = this.fromBER(inputBuffer, inputOffset, inputLength);\r\n if (offset === -1)\r\n return offset;\r\n const view = this.valueHexView;\r\n if ((view[0] === 0x00) && ((view[1] & 0x80) !== 0)) {\r\n this.valueHexView = view.subarray(1);\r\n }\r\n else {\r\n if (expectedLength !== 0) {\r\n if (view.length < expectedLength) {\r\n if ((expectedLength - view.length) > 1)\r\n expectedLength = view.length + 1;\r\n this.valueHexView = view.subarray(expectedLength - view.length);\r\n }\r\n }\r\n }\r\n return offset;\r\n }\r\n toDER(sizeOnly = false) {\r\n const view = this.valueHexView;\r\n switch (true) {\r\n case ((view[0] & 0x80) !== 0):\r\n {\r\n const updatedView = new Uint8Array(this.valueHexView.length + 1);\r\n updatedView[0] = 0x00;\r\n updatedView.set(view, 1);\r\n this.valueHexView = updatedView;\r\n }\r\n break;\r\n case ((view[0] === 0x00) && ((view[1] & 0x80) === 0)):\r\n {\r\n this.valueHexView = this.valueHexView.subarray(1);\r\n }\r\n break;\r\n }\r\n return this.toBER(sizeOnly);\r\n }\r\n fromBER(inputBuffer, inputOffset, inputLength) {\r\n const resultOffset = super.fromBER(inputBuffer, inputOffset, inputLength);\r\n if (resultOffset === -1) {\r\n return resultOffset;\r\n }\r\n this.setValueHex();\r\n return resultOffset;\r\n }\r\n toBER(sizeOnly) {\r\n return sizeOnly\r\n ? new ArrayBuffer(this.valueHexView.length)\r\n : this.valueHexView.slice().buffer;\r\n }\r\n toJSON() {\r\n return {\r\n ...super.toJSON(),\r\n valueDec: this.valueDec,\r\n };\r\n }\r\n toString() {\r\n const firstBit = (this.valueHexView.length * 8) - 1;\r\n let digits = new Uint8Array((this.valueHexView.length * 8) / 3);\r\n let bitNumber = 0;\r\n let currentByte;\r\n const asn1View = this.valueHexView;\r\n let result = \"\";\r\n let flag = false;\r\n for (let byteNumber = (asn1View.byteLength - 1); byteNumber >= 0; byteNumber--) {\r\n currentByte = asn1View[byteNumber];\r\n for (let i = 0; i < 8; i++) {\r\n if ((currentByte & 1) === 1) {\r\n switch (bitNumber) {\r\n case firstBit:\r\n digits = viewSub(power2(bitNumber), digits);\r\n result = \"-\";\r\n break;\r\n default:\r\n digits = viewAdd(digits, power2(bitNumber));\r\n }\r\n }\r\n bitNumber++;\r\n currentByte >>= 1;\r\n }\r\n }\r\n for (let i = 0; i < digits.length; i++) {\r\n if (digits[i])\r\n flag = true;\r\n if (flag)\r\n result += digitsString.charAt(digits[i]);\r\n }\r\n if (flag === false)\r\n result += digitsString.charAt(0);\r\n return result;\r\n }\r\n}\r\n_a$p = LocalIntegerValueBlock;\r\nLocalIntegerValueBlock.NAME = \"IntegerValueBlock\";\r\n(() => {\r\n Object.defineProperty(_a$p.prototype, \"valueHex\", {\r\n set: function (v) {\r\n this.valueHexView = new Uint8Array(v);\r\n this.setValueHex();\r\n },\r\n get: function () {\r\n return this.valueHexView.slice().buffer;\r\n },\r\n });\r\n})();\n\nvar _a$o;\r\nclass Integer extends BaseBlock {\r\n constructor(parameters = {}) {\r\n super(parameters, LocalIntegerValueBlock);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 2;\r\n }\r\n toBigInt() {\r\n assertBigInt();\r\n return BigInt(this.valueBlock.toString());\r\n }\r\n static fromBigInt(value) {\r\n assertBigInt();\r\n const bigIntValue = BigInt(value);\r\n const writer = new ViewWriter();\r\n const hex = bigIntValue.toString(16).replace(/^-/, \"\");\r\n const view = new Uint8Array(pvtsutils.Convert.FromHex(hex));\r\n if (bigIntValue < 0) {\r\n const first = new Uint8Array(view.length + (view[0] & 0x80 ? 1 : 0));\r\n first[0] |= 0x80;\r\n const firstInt = BigInt(`0x${pvtsutils.Convert.ToHex(first)}`);\r\n const secondInt = firstInt + bigIntValue;\r\n const second = pvtsutils.BufferSourceConverter.toUint8Array(pvtsutils.Convert.FromHex(secondInt.toString(16)));\r\n second[0] |= 0x80;\r\n writer.write(second);\r\n }\r\n else {\r\n if (view[0] & 0x80) {\r\n writer.write(new Uint8Array([0]));\r\n }\r\n writer.write(view);\r\n }\r\n const res = new Integer({\r\n valueHex: writer.final(),\r\n });\r\n return res;\r\n }\r\n convertToDER() {\r\n const integer = new Integer({ valueHex: this.valueBlock.valueHexView });\r\n integer.valueBlock.toDER();\r\n return integer;\r\n }\r\n convertFromDER() {\r\n return new Integer({\r\n valueHex: this.valueBlock.valueHexView[0] === 0\r\n ? this.valueBlock.valueHexView.subarray(1)\r\n : this.valueBlock.valueHexView,\r\n });\r\n }\r\n onAsciiEncoding() {\r\n return `${this.constructor.NAME} : ${this.valueBlock.toString()}`;\r\n }\r\n}\r\n_a$o = Integer;\r\n(() => {\r\n typeStore.Integer = _a$o;\r\n})();\r\nInteger.NAME = \"INTEGER\";\n\nvar _a$n;\r\nclass Enumerated extends Integer {\r\n constructor(parameters = {}) {\r\n super(parameters);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 10;\r\n }\r\n}\r\n_a$n = Enumerated;\r\n(() => {\r\n typeStore.Enumerated = _a$n;\r\n})();\r\nEnumerated.NAME = \"ENUMERATED\";\n\nclass LocalSidValueBlock extends HexBlock(ValueBlock) {\r\n constructor({ valueDec = -1, isFirstSid = false, ...parameters } = {}) {\r\n super(parameters);\r\n this.valueDec = valueDec;\r\n this.isFirstSid = isFirstSid;\r\n }\r\n fromBER(inputBuffer, inputOffset, inputLength) {\r\n if (!inputLength) {\r\n return inputOffset;\r\n }\r\n const inputView = pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer);\r\n if (!checkBufferParams(this, inputView, inputOffset, inputLength)) {\r\n return -1;\r\n }\r\n const intBuffer = inputView.subarray(inputOffset, inputOffset + inputLength);\r\n this.valueHexView = new Uint8Array(inputLength);\r\n for (let i = 0; i < inputLength; i++) {\r\n this.valueHexView[i] = intBuffer[i] & 0x7F;\r\n this.blockLength++;\r\n if ((intBuffer[i] & 0x80) === 0x00)\r\n break;\r\n }\r\n const tempView = new Uint8Array(this.blockLength);\r\n for (let i = 0; i < this.blockLength; i++) {\r\n tempView[i] = this.valueHexView[i];\r\n }\r\n this.valueHexView = tempView;\r\n if ((intBuffer[this.blockLength - 1] & 0x80) !== 0x00) {\r\n this.error = \"End of input reached before message was fully decoded\";\r\n return -1;\r\n }\r\n if (this.valueHexView[0] === 0x00)\r\n this.warnings.push(\"Needlessly long format of SID encoding\");\r\n if (this.blockLength <= 8)\r\n this.valueDec = pvutils.utilFromBase(this.valueHexView, 7);\r\n else {\r\n this.isHexOnly = true;\r\n this.warnings.push(\"Too big SID for decoding, hex only\");\r\n }\r\n return (inputOffset + this.blockLength);\r\n }\r\n set valueBigInt(value) {\r\n assertBigInt();\r\n let bits = BigInt(value).toString(2);\r\n while (bits.length % 7) {\r\n bits = \"0\" + bits;\r\n }\r\n const bytes = new Uint8Array(bits.length / 7);\r\n for (let i = 0; i < bytes.length; i++) {\r\n bytes[i] = parseInt(bits.slice(i * 7, i * 7 + 7), 2) + (i + 1 < bytes.length ? 0x80 : 0);\r\n }\r\n this.fromBER(bytes.buffer, 0, bytes.length);\r\n }\r\n toBER(sizeOnly) {\r\n if (this.isHexOnly) {\r\n if (sizeOnly)\r\n return (new ArrayBuffer(this.valueHexView.byteLength));\r\n const curView = this.valueHexView;\r\n const retView = new Uint8Array(this.blockLength);\r\n for (let i = 0; i < (this.blockLength - 1); i++)\r\n retView[i] = curView[i] | 0x80;\r\n retView[this.blockLength - 1] = curView[this.blockLength - 1];\r\n return retView.buffer;\r\n }\r\n const encodedBuf = pvutils.utilToBase(this.valueDec, 7);\r\n if (encodedBuf.byteLength === 0) {\r\n this.error = \"Error during encoding SID value\";\r\n return EMPTY_BUFFER;\r\n }\r\n const retView = new Uint8Array(encodedBuf.byteLength);\r\n if (!sizeOnly) {\r\n const encodedView = new Uint8Array(encodedBuf);\r\n const len = encodedBuf.byteLength - 1;\r\n for (let i = 0; i < len; i++)\r\n retView[i] = encodedView[i] | 0x80;\r\n retView[len] = encodedView[len];\r\n }\r\n return retView;\r\n }\r\n toString() {\r\n let result = \"\";\r\n if (this.isHexOnly)\r\n result = pvtsutils.Convert.ToHex(this.valueHexView);\r\n else {\r\n if (this.isFirstSid) {\r\n let sidValue = this.valueDec;\r\n if (this.valueDec <= 39)\r\n result = \"0.\";\r\n else {\r\n if (this.valueDec <= 79) {\r\n result = \"1.\";\r\n sidValue -= 40;\r\n }\r\n else {\r\n result = \"2.\";\r\n sidValue -= 80;\r\n }\r\n }\r\n result += sidValue.toString();\r\n }\r\n else\r\n result = this.valueDec.toString();\r\n }\r\n return result;\r\n }\r\n toJSON() {\r\n return {\r\n ...super.toJSON(),\r\n valueDec: this.valueDec,\r\n isFirstSid: this.isFirstSid,\r\n };\r\n }\r\n}\r\nLocalSidValueBlock.NAME = \"sidBlock\";\n\nclass LocalObjectIdentifierValueBlock extends ValueBlock {\r\n constructor({ value = EMPTY_STRING, ...parameters } = {}) {\r\n super(parameters);\r\n this.value = [];\r\n if (value) {\r\n this.fromString(value);\r\n }\r\n }\r\n fromBER(inputBuffer, inputOffset, inputLength) {\r\n let resultOffset = inputOffset;\r\n while (inputLength > 0) {\r\n const sidBlock = new LocalSidValueBlock();\r\n resultOffset = sidBlock.fromBER(inputBuffer, resultOffset, inputLength);\r\n if (resultOffset === -1) {\r\n this.blockLength = 0;\r\n this.error = sidBlock.error;\r\n return resultOffset;\r\n }\r\n if (this.value.length === 0)\r\n sidBlock.isFirstSid = true;\r\n this.blockLength += sidBlock.blockLength;\r\n inputLength -= sidBlock.blockLength;\r\n this.value.push(sidBlock);\r\n }\r\n return resultOffset;\r\n }\r\n toBER(sizeOnly) {\r\n const retBuffers = [];\r\n for (let i = 0; i < this.value.length; i++) {\r\n const valueBuf = this.value[i].toBER(sizeOnly);\r\n if (valueBuf.byteLength === 0) {\r\n this.error = this.value[i].error;\r\n return EMPTY_BUFFER;\r\n }\r\n retBuffers.push(valueBuf);\r\n }\r\n return concat(retBuffers);\r\n }\r\n fromString(string) {\r\n this.value = [];\r\n let pos1 = 0;\r\n let pos2 = 0;\r\n let sid = \"\";\r\n let flag = false;\r\n do {\r\n pos2 = string.indexOf(\".\", pos1);\r\n if (pos2 === -1)\r\n sid = string.substring(pos1);\r\n else\r\n sid = string.substring(pos1, pos2);\r\n pos1 = pos2 + 1;\r\n if (flag) {\r\n const sidBlock = this.value[0];\r\n let plus = 0;\r\n switch (sidBlock.valueDec) {\r\n case 0:\r\n break;\r\n case 1:\r\n plus = 40;\r\n break;\r\n case 2:\r\n plus = 80;\r\n break;\r\n default:\r\n this.value = [];\r\n return;\r\n }\r\n const parsedSID = parseInt(sid, 10);\r\n if (isNaN(parsedSID))\r\n return;\r\n sidBlock.valueDec = parsedSID + plus;\r\n flag = false;\r\n }\r\n else {\r\n const sidBlock = new LocalSidValueBlock();\r\n if (sid > Number.MAX_SAFE_INTEGER) {\r\n assertBigInt();\r\n const sidValue = BigInt(sid);\r\n sidBlock.valueBigInt = sidValue;\r\n }\r\n else {\r\n sidBlock.valueDec = parseInt(sid, 10);\r\n if (isNaN(sidBlock.valueDec))\r\n return;\r\n }\r\n if (!this.value.length) {\r\n sidBlock.isFirstSid = true;\r\n flag = true;\r\n }\r\n this.value.push(sidBlock);\r\n }\r\n } while (pos2 !== -1);\r\n }\r\n toString() {\r\n let result = \"\";\r\n let isHexOnly = false;\r\n for (let i = 0; i < this.value.length; i++) {\r\n isHexOnly = this.value[i].isHexOnly;\r\n let sidStr = this.value[i].toString();\r\n if (i !== 0)\r\n result = `${result}.`;\r\n if (isHexOnly) {\r\n sidStr = `{${sidStr}}`;\r\n if (this.value[i].isFirstSid)\r\n result = `2.{${sidStr} - 80}`;\r\n else\r\n result += sidStr;\r\n }\r\n else\r\n result += sidStr;\r\n }\r\n return result;\r\n }\r\n toJSON() {\r\n const object = {\r\n ...super.toJSON(),\r\n value: this.toString(),\r\n sidArray: [],\r\n };\r\n for (let i = 0; i < this.value.length; i++) {\r\n object.sidArray.push(this.value[i].toJSON());\r\n }\r\n return object;\r\n }\r\n}\r\nLocalObjectIdentifierValueBlock.NAME = \"ObjectIdentifierValueBlock\";\n\nvar _a$m;\r\nclass ObjectIdentifier extends BaseBlock {\r\n constructor(parameters = {}) {\r\n super(parameters, LocalObjectIdentifierValueBlock);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 6;\r\n }\r\n getValue() {\r\n return this.valueBlock.toString();\r\n }\r\n setValue(value) {\r\n this.valueBlock.fromString(value);\r\n }\r\n onAsciiEncoding() {\r\n return `${this.constructor.NAME} : ${this.valueBlock.toString() || \"empty\"}`;\r\n }\r\n toJSON() {\r\n return {\r\n ...super.toJSON(),\r\n value: this.getValue(),\r\n };\r\n }\r\n}\r\n_a$m = ObjectIdentifier;\r\n(() => {\r\n typeStore.ObjectIdentifier = _a$m;\r\n})();\r\nObjectIdentifier.NAME = \"OBJECT IDENTIFIER\";\n\nclass LocalRelativeSidValueBlock extends HexBlock(LocalBaseBlock) {\r\n constructor({ valueDec = 0, ...parameters } = {}) {\r\n super(parameters);\r\n this.valueDec = valueDec;\r\n }\r\n fromBER(inputBuffer, inputOffset, inputLength) {\r\n if (inputLength === 0)\r\n return inputOffset;\r\n const inputView = pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer);\r\n if (!checkBufferParams(this, inputView, inputOffset, inputLength))\r\n return -1;\r\n const intBuffer = inputView.subarray(inputOffset, inputOffset + inputLength);\r\n this.valueHexView = new Uint8Array(inputLength);\r\n for (let i = 0; i < inputLength; i++) {\r\n this.valueHexView[i] = intBuffer[i] & 0x7F;\r\n this.blockLength++;\r\n if ((intBuffer[i] & 0x80) === 0x00)\r\n break;\r\n }\r\n const tempView = new Uint8Array(this.blockLength);\r\n for (let i = 0; i < this.blockLength; i++)\r\n tempView[i] = this.valueHexView[i];\r\n this.valueHexView = tempView;\r\n if ((intBuffer[this.blockLength - 1] & 0x80) !== 0x00) {\r\n this.error = \"End of input reached before message was fully decoded\";\r\n return -1;\r\n }\r\n if (this.valueHexView[0] === 0x00)\r\n this.warnings.push(\"Needlessly long format of SID encoding\");\r\n if (this.blockLength <= 8)\r\n this.valueDec = pvutils.utilFromBase(this.valueHexView, 7);\r\n else {\r\n this.isHexOnly = true;\r\n this.warnings.push(\"Too big SID for decoding, hex only\");\r\n }\r\n return (inputOffset + this.blockLength);\r\n }\r\n toBER(sizeOnly) {\r\n if (this.isHexOnly) {\r\n if (sizeOnly)\r\n return (new ArrayBuffer(this.valueHexView.byteLength));\r\n const curView = this.valueHexView;\r\n const retView = new Uint8Array(this.blockLength);\r\n for (let i = 0; i < (this.blockLength - 1); i++)\r\n retView[i] = curView[i] | 0x80;\r\n retView[this.blockLength - 1] = curView[this.blockLength - 1];\r\n return retView.buffer;\r\n }\r\n const encodedBuf = pvutils.utilToBase(this.valueDec, 7);\r\n if (encodedBuf.byteLength === 0) {\r\n this.error = \"Error during encoding SID value\";\r\n return EMPTY_BUFFER;\r\n }\r\n const retView = new Uint8Array(encodedBuf.byteLength);\r\n if (!sizeOnly) {\r\n const encodedView = new Uint8Array(encodedBuf);\r\n const len = encodedBuf.byteLength - 1;\r\n for (let i = 0; i < len; i++)\r\n retView[i] = encodedView[i] | 0x80;\r\n retView[len] = encodedView[len];\r\n }\r\n return retView.buffer;\r\n }\r\n toString() {\r\n let result = \"\";\r\n if (this.isHexOnly)\r\n result = pvtsutils.Convert.ToHex(this.valueHexView);\r\n else {\r\n result = this.valueDec.toString();\r\n }\r\n return result;\r\n }\r\n toJSON() {\r\n return {\r\n ...super.toJSON(),\r\n valueDec: this.valueDec,\r\n };\r\n }\r\n}\r\nLocalRelativeSidValueBlock.NAME = \"relativeSidBlock\";\n\nclass LocalRelativeObjectIdentifierValueBlock extends ValueBlock {\r\n constructor({ value = EMPTY_STRING, ...parameters } = {}) {\r\n super(parameters);\r\n this.value = [];\r\n if (value) {\r\n this.fromString(value);\r\n }\r\n }\r\n fromBER(inputBuffer, inputOffset, inputLength) {\r\n let resultOffset = inputOffset;\r\n while (inputLength > 0) {\r\n const sidBlock = new LocalRelativeSidValueBlock();\r\n resultOffset = sidBlock.fromBER(inputBuffer, resultOffset, inputLength);\r\n if (resultOffset === -1) {\r\n this.blockLength = 0;\r\n this.error = sidBlock.error;\r\n return resultOffset;\r\n }\r\n this.blockLength += sidBlock.blockLength;\r\n inputLength -= sidBlock.blockLength;\r\n this.value.push(sidBlock);\r\n }\r\n return resultOffset;\r\n }\r\n toBER(sizeOnly, writer) {\r\n const retBuffers = [];\r\n for (let i = 0; i < this.value.length; i++) {\r\n const valueBuf = this.value[i].toBER(sizeOnly);\r\n if (valueBuf.byteLength === 0) {\r\n this.error = this.value[i].error;\r\n return EMPTY_BUFFER;\r\n }\r\n retBuffers.push(valueBuf);\r\n }\r\n return concat(retBuffers);\r\n }\r\n fromString(string) {\r\n this.value = [];\r\n let pos1 = 0;\r\n let pos2 = 0;\r\n let sid = \"\";\r\n do {\r\n pos2 = string.indexOf(\".\", pos1);\r\n if (pos2 === -1)\r\n sid = string.substring(pos1);\r\n else\r\n sid = string.substring(pos1, pos2);\r\n pos1 = pos2 + 1;\r\n const sidBlock = new LocalRelativeSidValueBlock();\r\n sidBlock.valueDec = parseInt(sid, 10);\r\n if (isNaN(sidBlock.valueDec))\r\n return true;\r\n this.value.push(sidBlock);\r\n } while (pos2 !== -1);\r\n return true;\r\n }\r\n toString() {\r\n let result = \"\";\r\n let isHexOnly = false;\r\n for (let i = 0; i < this.value.length; i++) {\r\n isHexOnly = this.value[i].isHexOnly;\r\n let sidStr = this.value[i].toString();\r\n if (i !== 0)\r\n result = `${result}.`;\r\n if (isHexOnly) {\r\n sidStr = `{${sidStr}}`;\r\n result += sidStr;\r\n }\r\n else\r\n result += sidStr;\r\n }\r\n return result;\r\n }\r\n toJSON() {\r\n const object = {\r\n ...super.toJSON(),\r\n value: this.toString(),\r\n sidArray: [],\r\n };\r\n for (let i = 0; i < this.value.length; i++)\r\n object.sidArray.push(this.value[i].toJSON());\r\n return object;\r\n }\r\n}\r\nLocalRelativeObjectIdentifierValueBlock.NAME = \"RelativeObjectIdentifierValueBlock\";\n\nvar _a$l;\r\nclass RelativeObjectIdentifier extends BaseBlock {\r\n constructor(parameters = {}) {\r\n super(parameters, LocalRelativeObjectIdentifierValueBlock);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 13;\r\n }\r\n getValue() {\r\n return this.valueBlock.toString();\r\n }\r\n setValue(value) {\r\n this.valueBlock.fromString(value);\r\n }\r\n onAsciiEncoding() {\r\n return `${this.constructor.NAME} : ${this.valueBlock.toString() || \"empty\"}`;\r\n }\r\n toJSON() {\r\n return {\r\n ...super.toJSON(),\r\n value: this.getValue(),\r\n };\r\n }\r\n}\r\n_a$l = RelativeObjectIdentifier;\r\n(() => {\r\n typeStore.RelativeObjectIdentifier = _a$l;\r\n})();\r\nRelativeObjectIdentifier.NAME = \"RelativeObjectIdentifier\";\n\nvar _a$k;\r\nclass Sequence extends Constructed {\r\n constructor(parameters = {}) {\r\n super(parameters);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 16;\r\n }\r\n}\r\n_a$k = Sequence;\r\n(() => {\r\n typeStore.Sequence = _a$k;\r\n})();\r\nSequence.NAME = \"SEQUENCE\";\n\nvar _a$j;\r\nclass Set extends Constructed {\r\n constructor(parameters = {}) {\r\n super(parameters);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 17;\r\n }\r\n}\r\n_a$j = Set;\r\n(() => {\r\n typeStore.Set = _a$j;\r\n})();\r\nSet.NAME = \"SET\";\n\nclass LocalStringValueBlock extends HexBlock(ValueBlock) {\r\n constructor({ ...parameters } = {}) {\r\n super(parameters);\r\n this.isHexOnly = true;\r\n this.value = EMPTY_STRING;\r\n }\r\n toJSON() {\r\n return {\r\n ...super.toJSON(),\r\n value: this.value,\r\n };\r\n }\r\n}\r\nLocalStringValueBlock.NAME = \"StringValueBlock\";\n\nclass LocalSimpleStringValueBlock extends LocalStringValueBlock {\r\n}\r\nLocalSimpleStringValueBlock.NAME = \"SimpleStringValueBlock\";\n\nclass LocalSimpleStringBlock extends BaseStringBlock {\r\n constructor({ ...parameters } = {}) {\r\n super(parameters, LocalSimpleStringValueBlock);\r\n }\r\n fromBuffer(inputBuffer) {\r\n this.valueBlock.value = String.fromCharCode.apply(null, pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer));\r\n }\r\n fromString(inputString) {\r\n const strLen = inputString.length;\r\n const view = this.valueBlock.valueHexView = new Uint8Array(strLen);\r\n for (let i = 0; i < strLen; i++)\r\n view[i] = inputString.charCodeAt(i);\r\n this.valueBlock.value = inputString;\r\n }\r\n}\r\nLocalSimpleStringBlock.NAME = \"SIMPLE STRING\";\n\nclass LocalUtf8StringValueBlock extends LocalSimpleStringBlock {\r\n fromBuffer(inputBuffer) {\r\n this.valueBlock.valueHexView = pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer);\r\n try {\r\n this.valueBlock.value = pvtsutils.Convert.ToUtf8String(inputBuffer);\r\n }\r\n catch (ex) {\r\n this.warnings.push(`Error during \"decodeURIComponent\": ${ex}, using raw string`);\r\n this.valueBlock.value = pvtsutils.Convert.ToBinary(inputBuffer);\r\n }\r\n }\r\n fromString(inputString) {\r\n this.valueBlock.valueHexView = new Uint8Array(pvtsutils.Convert.FromUtf8String(inputString));\r\n this.valueBlock.value = inputString;\r\n }\r\n}\r\nLocalUtf8StringValueBlock.NAME = \"Utf8StringValueBlock\";\n\nvar _a$i;\r\nclass Utf8String extends LocalUtf8StringValueBlock {\r\n constructor(parameters = {}) {\r\n super(parameters);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 12;\r\n }\r\n}\r\n_a$i = Utf8String;\r\n(() => {\r\n typeStore.Utf8String = _a$i;\r\n})();\r\nUtf8String.NAME = \"UTF8String\";\n\nclass LocalBmpStringValueBlock extends LocalSimpleStringBlock {\r\n fromBuffer(inputBuffer) {\r\n this.valueBlock.value = pvtsutils.Convert.ToUtf16String(inputBuffer);\r\n this.valueBlock.valueHexView = pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer);\r\n }\r\n fromString(inputString) {\r\n this.valueBlock.value = inputString;\r\n this.valueBlock.valueHexView = new Uint8Array(pvtsutils.Convert.FromUtf16String(inputString));\r\n }\r\n}\r\nLocalBmpStringValueBlock.NAME = \"BmpStringValueBlock\";\n\nvar _a$h;\r\nclass BmpString extends LocalBmpStringValueBlock {\r\n constructor({ ...parameters } = {}) {\r\n super(parameters);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 30;\r\n }\r\n}\r\n_a$h = BmpString;\r\n(() => {\r\n typeStore.BmpString = _a$h;\r\n})();\r\nBmpString.NAME = \"BMPString\";\n\nclass LocalUniversalStringValueBlock extends LocalSimpleStringBlock {\r\n fromBuffer(inputBuffer) {\r\n const copyBuffer = ArrayBuffer.isView(inputBuffer) ? inputBuffer.slice().buffer : inputBuffer.slice(0);\r\n const valueView = new Uint8Array(copyBuffer);\r\n for (let i = 0; i < valueView.length; i += 4) {\r\n valueView[i] = valueView[i + 3];\r\n valueView[i + 1] = valueView[i + 2];\r\n valueView[i + 2] = 0x00;\r\n valueView[i + 3] = 0x00;\r\n }\r\n this.valueBlock.value = String.fromCharCode.apply(null, new Uint32Array(copyBuffer));\r\n }\r\n fromString(inputString) {\r\n const strLength = inputString.length;\r\n const valueHexView = this.valueBlock.valueHexView = new Uint8Array(strLength * 4);\r\n for (let i = 0; i < strLength; i++) {\r\n const codeBuf = pvutils.utilToBase(inputString.charCodeAt(i), 8);\r\n const codeView = new Uint8Array(codeBuf);\r\n if (codeView.length > 4)\r\n continue;\r\n const dif = 4 - codeView.length;\r\n for (let j = (codeView.length - 1); j >= 0; j--)\r\n valueHexView[i * 4 + j + dif] = codeView[j];\r\n }\r\n this.valueBlock.value = inputString;\r\n }\r\n}\r\nLocalUniversalStringValueBlock.NAME = \"UniversalStringValueBlock\";\n\nvar _a$g;\r\nclass UniversalString extends LocalUniversalStringValueBlock {\r\n constructor({ ...parameters } = {}) {\r\n super(parameters);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 28;\r\n }\r\n}\r\n_a$g = UniversalString;\r\n(() => {\r\n typeStore.UniversalString = _a$g;\r\n})();\r\nUniversalString.NAME = \"UniversalString\";\n\nvar _a$f;\r\nclass NumericString extends LocalSimpleStringBlock {\r\n constructor(parameters = {}) {\r\n super(parameters);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 18;\r\n }\r\n}\r\n_a$f = NumericString;\r\n(() => {\r\n typeStore.NumericString = _a$f;\r\n})();\r\nNumericString.NAME = \"NumericString\";\n\nvar _a$e;\r\nclass PrintableString extends LocalSimpleStringBlock {\r\n constructor(parameters = {}) {\r\n super(parameters);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 19;\r\n }\r\n}\r\n_a$e = PrintableString;\r\n(() => {\r\n typeStore.PrintableString = _a$e;\r\n})();\r\nPrintableString.NAME = \"PrintableString\";\n\nvar _a$d;\r\nclass TeletexString extends LocalSimpleStringBlock {\r\n constructor(parameters = {}) {\r\n super(parameters);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 20;\r\n }\r\n}\r\n_a$d = TeletexString;\r\n(() => {\r\n typeStore.TeletexString = _a$d;\r\n})();\r\nTeletexString.NAME = \"TeletexString\";\n\nvar _a$c;\r\nclass VideotexString extends LocalSimpleStringBlock {\r\n constructor(parameters = {}) {\r\n super(parameters);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 21;\r\n }\r\n}\r\n_a$c = VideotexString;\r\n(() => {\r\n typeStore.VideotexString = _a$c;\r\n})();\r\nVideotexString.NAME = \"VideotexString\";\n\nvar _a$b;\r\nclass IA5String extends LocalSimpleStringBlock {\r\n constructor(parameters = {}) {\r\n super(parameters);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 22;\r\n }\r\n}\r\n_a$b = IA5String;\r\n(() => {\r\n typeStore.IA5String = _a$b;\r\n})();\r\nIA5String.NAME = \"IA5String\";\n\nvar _a$a;\r\nclass GraphicString extends LocalSimpleStringBlock {\r\n constructor(parameters = {}) {\r\n super(parameters);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 25;\r\n }\r\n}\r\n_a$a = GraphicString;\r\n(() => {\r\n typeStore.GraphicString = _a$a;\r\n})();\r\nGraphicString.NAME = \"GraphicString\";\n\nvar _a$9;\r\nclass VisibleString extends LocalSimpleStringBlock {\r\n constructor(parameters = {}) {\r\n super(parameters);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 26;\r\n }\r\n}\r\n_a$9 = VisibleString;\r\n(() => {\r\n typeStore.VisibleString = _a$9;\r\n})();\r\nVisibleString.NAME = \"VisibleString\";\n\nvar _a$8;\r\nclass GeneralString extends LocalSimpleStringBlock {\r\n constructor(parameters = {}) {\r\n super(parameters);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 27;\r\n }\r\n}\r\n_a$8 = GeneralString;\r\n(() => {\r\n typeStore.GeneralString = _a$8;\r\n})();\r\nGeneralString.NAME = \"GeneralString\";\n\nvar _a$7;\r\nclass CharacterString extends LocalSimpleStringBlock {\r\n constructor(parameters = {}) {\r\n super(parameters);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 29;\r\n }\r\n}\r\n_a$7 = CharacterString;\r\n(() => {\r\n typeStore.CharacterString = _a$7;\r\n})();\r\nCharacterString.NAME = \"CharacterString\";\n\nvar _a$6;\r\nclass UTCTime extends VisibleString {\r\n constructor({ value, valueDate, ...parameters } = {}) {\r\n super(parameters);\r\n this.year = 0;\r\n this.month = 0;\r\n this.day = 0;\r\n this.hour = 0;\r\n this.minute = 0;\r\n this.second = 0;\r\n if (value) {\r\n this.fromString(value);\r\n this.valueBlock.valueHexView = new Uint8Array(value.length);\r\n for (let i = 0; i < value.length; i++)\r\n this.valueBlock.valueHexView[i] = value.charCodeAt(i);\r\n }\r\n if (valueDate) {\r\n this.fromDate(valueDate);\r\n this.valueBlock.valueHexView = new Uint8Array(this.toBuffer());\r\n }\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 23;\r\n }\r\n fromBuffer(inputBuffer) {\r\n this.fromString(String.fromCharCode.apply(null, pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer)));\r\n }\r\n toBuffer() {\r\n const str = this.toString();\r\n const buffer = new ArrayBuffer(str.length);\r\n const view = new Uint8Array(buffer);\r\n for (let i = 0; i < str.length; i++)\r\n view[i] = str.charCodeAt(i);\r\n return buffer;\r\n }\r\n fromDate(inputDate) {\r\n this.year = inputDate.getUTCFullYear();\r\n this.month = inputDate.getUTCMonth() + 1;\r\n this.day = inputDate.getUTCDate();\r\n this.hour = inputDate.getUTCHours();\r\n this.minute = inputDate.getUTCMinutes();\r\n this.second = inputDate.getUTCSeconds();\r\n }\r\n toDate() {\r\n return (new Date(Date.UTC(this.year, this.month - 1, this.day, this.hour, this.minute, this.second)));\r\n }\r\n fromString(inputString) {\r\n const parser = /(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{2})Z/ig;\r\n const parserArray = parser.exec(inputString);\r\n if (parserArray === null) {\r\n this.error = \"Wrong input string for conversion\";\r\n return;\r\n }\r\n const year = parseInt(parserArray[1], 10);\r\n if (year >= 50)\r\n this.year = 1900 + year;\r\n else\r\n this.year = 2000 + year;\r\n this.month = parseInt(parserArray[2], 10);\r\n this.day = parseInt(parserArray[3], 10);\r\n this.hour = parseInt(parserArray[4], 10);\r\n this.minute = parseInt(parserArray[5], 10);\r\n this.second = parseInt(parserArray[6], 10);\r\n }\r\n toString(encoding = \"iso\") {\r\n if (encoding === \"iso\") {\r\n const outputArray = new Array(7);\r\n outputArray[0] = pvutils.padNumber(((this.year < 2000) ? (this.year - 1900) : (this.year - 2000)), 2);\r\n outputArray[1] = pvutils.padNumber(this.month, 2);\r\n outputArray[2] = pvutils.padNumber(this.day, 2);\r\n outputArray[3] = pvutils.padNumber(this.hour, 2);\r\n outputArray[4] = pvutils.padNumber(this.minute, 2);\r\n outputArray[5] = pvutils.padNumber(this.second, 2);\r\n outputArray[6] = \"Z\";\r\n return outputArray.join(\"\");\r\n }\r\n return super.toString(encoding);\r\n }\r\n onAsciiEncoding() {\r\n return `${this.constructor.NAME} : ${this.toDate().toISOString()}`;\r\n }\r\n toJSON() {\r\n return {\r\n ...super.toJSON(),\r\n year: this.year,\r\n month: this.month,\r\n day: this.day,\r\n hour: this.hour,\r\n minute: this.minute,\r\n second: this.second,\r\n };\r\n }\r\n}\r\n_a$6 = UTCTime;\r\n(() => {\r\n typeStore.UTCTime = _a$6;\r\n})();\r\nUTCTime.NAME = \"UTCTime\";\n\nvar _a$5;\r\nclass GeneralizedTime extends UTCTime {\r\n constructor(parameters = {}) {\r\n var _b;\r\n super(parameters);\r\n (_b = this.millisecond) !== null && _b !== void 0 ? _b : (this.millisecond = 0);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 24;\r\n }\r\n fromDate(inputDate) {\r\n super.fromDate(inputDate);\r\n this.millisecond = inputDate.getUTCMilliseconds();\r\n }\r\n toDate() {\r\n return (new Date(Date.UTC(this.year, this.month - 1, this.day, this.hour, this.minute, this.second, this.millisecond)));\r\n }\r\n fromString(inputString) {\r\n let isUTC = false;\r\n let timeString = \"\";\r\n let dateTimeString = \"\";\r\n let fractionPart = 0;\r\n let parser;\r\n let hourDifference = 0;\r\n let minuteDifference = 0;\r\n if (inputString[inputString.length - 1] === \"Z\") {\r\n timeString = inputString.substring(0, inputString.length - 1);\r\n isUTC = true;\r\n }\r\n else {\r\n const number = new Number(inputString[inputString.length - 1]);\r\n if (isNaN(number.valueOf()))\r\n throw new Error(\"Wrong input string for conversion\");\r\n timeString = inputString;\r\n }\r\n if (isUTC) {\r\n if (timeString.indexOf(\"+\") !== -1)\r\n throw new Error(\"Wrong input string for conversion\");\r\n if (timeString.indexOf(\"-\") !== -1)\r\n throw new Error(\"Wrong input string for conversion\");\r\n }\r\n else {\r\n let multiplier = 1;\r\n let differencePosition = timeString.indexOf(\"+\");\r\n let differenceString = \"\";\r\n if (differencePosition === -1) {\r\n differencePosition = timeString.indexOf(\"-\");\r\n multiplier = -1;\r\n }\r\n if (differencePosition !== -1) {\r\n differenceString = timeString.substring(differencePosition + 1);\r\n timeString = timeString.substring(0, differencePosition);\r\n if ((differenceString.length !== 2) && (differenceString.length !== 4))\r\n throw new Error(\"Wrong input string for conversion\");\r\n let number = parseInt(differenceString.substring(0, 2), 10);\r\n if (isNaN(number.valueOf()))\r\n throw new Error(\"Wrong input string for conversion\");\r\n hourDifference = multiplier * number;\r\n if (differenceString.length === 4) {\r\n number = parseInt(differenceString.substring(2, 4), 10);\r\n if (isNaN(number.valueOf()))\r\n throw new Error(\"Wrong input string for conversion\");\r\n minuteDifference = multiplier * number;\r\n }\r\n }\r\n }\r\n let fractionPointPosition = timeString.indexOf(\".\");\r\n if (fractionPointPosition === -1)\r\n fractionPointPosition = timeString.indexOf(\",\");\r\n if (fractionPointPosition !== -1) {\r\n const fractionPartCheck = new Number(`0${timeString.substring(fractionPointPosition)}`);\r\n if (isNaN(fractionPartCheck.valueOf()))\r\n throw new Error(\"Wrong input string for conversion\");\r\n fractionPart = fractionPartCheck.valueOf();\r\n dateTimeString = timeString.substring(0, fractionPointPosition);\r\n }\r\n else\r\n dateTimeString = timeString;\r\n switch (true) {\r\n case (dateTimeString.length === 8):\r\n parser = /(\\d{4})(\\d{2})(\\d{2})/ig;\r\n if (fractionPointPosition !== -1)\r\n throw new Error(\"Wrong input string for conversion\");\r\n break;\r\n case (dateTimeString.length === 10):\r\n parser = /(\\d{4})(\\d{2})(\\d{2})(\\d{2})/ig;\r\n if (fractionPointPosition !== -1) {\r\n let fractionResult = 60 * fractionPart;\r\n this.minute = Math.floor(fractionResult);\r\n fractionResult = 60 * (fractionResult - this.minute);\r\n this.second = Math.floor(fractionResult);\r\n fractionResult = 1000 * (fractionResult - this.second);\r\n this.millisecond = Math.floor(fractionResult);\r\n }\r\n break;\r\n case (dateTimeString.length === 12):\r\n parser = /(\\d{4})(\\d{2})(\\d{2})(\\d{2})(\\d{2})/ig;\r\n if (fractionPointPosition !== -1) {\r\n let fractionResult = 60 * fractionPart;\r\n this.second = Math.floor(fractionResult);\r\n fractionResult = 1000 * (fractionResult - this.second);\r\n this.millisecond = Math.floor(fractionResult);\r\n }\r\n break;\r\n case (dateTimeString.length === 14):\r\n parser = /(\\d{4})(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{2})/ig;\r\n if (fractionPointPosition !== -1) {\r\n const fractionResult = 1000 * fractionPart;\r\n this.millisecond = Math.floor(fractionResult);\r\n }\r\n break;\r\n default:\r\n throw new Error(\"Wrong input string for conversion\");\r\n }\r\n const parserArray = parser.exec(dateTimeString);\r\n if (parserArray === null)\r\n throw new Error(\"Wrong input string for conversion\");\r\n for (let j = 1; j < parserArray.length; j++) {\r\n switch (j) {\r\n case 1:\r\n this.year = parseInt(parserArray[j], 10);\r\n break;\r\n case 2:\r\n this.month = parseInt(parserArray[j], 10);\r\n break;\r\n case 3:\r\n this.day = parseInt(parserArray[j], 10);\r\n break;\r\n case 4:\r\n this.hour = parseInt(parserArray[j], 10) + hourDifference;\r\n break;\r\n case 5:\r\n this.minute = parseInt(parserArray[j], 10) + minuteDifference;\r\n break;\r\n case 6:\r\n this.second = parseInt(parserArray[j], 10);\r\n break;\r\n default:\r\n throw new Error(\"Wrong input string for conversion\");\r\n }\r\n }\r\n if (isUTC === false) {\r\n const tempDate = new Date(this.year, this.month, this.day, this.hour, this.minute, this.second, this.millisecond);\r\n this.year = tempDate.getUTCFullYear();\r\n this.month = tempDate.getUTCMonth();\r\n this.day = tempDate.getUTCDay();\r\n this.hour = tempDate.getUTCHours();\r\n this.minute = tempDate.getUTCMinutes();\r\n this.second = tempDate.getUTCSeconds();\r\n this.millisecond = tempDate.getUTCMilliseconds();\r\n }\r\n }\r\n toString(encoding = \"iso\") {\r\n if (encoding === \"iso\") {\r\n const outputArray = [];\r\n outputArray.push(pvutils.padNumber(this.year, 4));\r\n outputArray.push(pvutils.padNumber(this.month, 2));\r\n outputArray.push(pvutils.padNumber(this.day, 2));\r\n outputArray.push(pvutils.padNumber(this.hour, 2));\r\n outputArray.push(pvutils.padNumber(this.minute, 2));\r\n outputArray.push(pvutils.padNumber(this.second, 2));\r\n if (this.millisecond !== 0) {\r\n outputArray.push(\".\");\r\n outputArray.push(pvutils.padNumber(this.millisecond, 3));\r\n }\r\n outputArray.push(\"Z\");\r\n return outputArray.join(\"\");\r\n }\r\n return super.toString(encoding);\r\n }\r\n toJSON() {\r\n return {\r\n ...super.toJSON(),\r\n millisecond: this.millisecond,\r\n };\r\n }\r\n}\r\n_a$5 = GeneralizedTime;\r\n(() => {\r\n typeStore.GeneralizedTime = _a$5;\r\n})();\r\nGeneralizedTime.NAME = \"GeneralizedTime\";\n\nvar _a$4;\r\nclass DATE extends Utf8String {\r\n constructor(parameters = {}) {\r\n super(parameters);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 31;\r\n }\r\n}\r\n_a$4 = DATE;\r\n(() => {\r\n typeStore.DATE = _a$4;\r\n})();\r\nDATE.NAME = \"DATE\";\n\nvar _a$3;\r\nclass TimeOfDay extends Utf8String {\r\n constructor(parameters = {}) {\r\n super(parameters);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 32;\r\n }\r\n}\r\n_a$3 = TimeOfDay;\r\n(() => {\r\n typeStore.TimeOfDay = _a$3;\r\n})();\r\nTimeOfDay.NAME = \"TimeOfDay\";\n\nvar _a$2;\r\nclass DateTime extends Utf8String {\r\n constructor(parameters = {}) {\r\n super(parameters);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 33;\r\n }\r\n}\r\n_a$2 = DateTime;\r\n(() => {\r\n typeStore.DateTime = _a$2;\r\n})();\r\nDateTime.NAME = \"DateTime\";\n\nvar _a$1;\r\nclass Duration extends Utf8String {\r\n constructor(parameters = {}) {\r\n super(parameters);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 34;\r\n }\r\n}\r\n_a$1 = Duration;\r\n(() => {\r\n typeStore.Duration = _a$1;\r\n})();\r\nDuration.NAME = \"Duration\";\n\nvar _a;\r\nclass TIME extends Utf8String {\r\n constructor(parameters = {}) {\r\n super(parameters);\r\n this.idBlock.tagClass = 1;\r\n this.idBlock.tagNumber = 14;\r\n }\r\n}\r\n_a = TIME;\r\n(() => {\r\n typeStore.TIME = _a;\r\n})();\r\nTIME.NAME = \"TIME\";\n\nclass Any {\r\n constructor({ name = EMPTY_STRING, optional = false, } = {}) {\r\n this.name = name;\r\n this.optional = optional;\r\n }\r\n}\n\nclass Choice extends Any {\r\n constructor({ value = [], ...parameters } = {}) {\r\n super(parameters);\r\n this.value = value;\r\n }\r\n}\n\nclass Repeated extends Any {\r\n constructor({ value = new Any(), local = false, ...parameters } = {}) {\r\n super(parameters);\r\n this.value = value;\r\n this.local = local;\r\n }\r\n}\n\nclass RawData {\r\n constructor({ data = EMPTY_VIEW } = {}) {\r\n this.dataView = pvtsutils.BufferSourceConverter.toUint8Array(data);\r\n }\r\n get data() {\r\n return this.dataView.slice().buffer;\r\n }\r\n set data(value) {\r\n this.dataView = pvtsutils.BufferSourceConverter.toUint8Array(value);\r\n }\r\n fromBER(inputBuffer, inputOffset, inputLength) {\r\n const endLength = inputOffset + inputLength;\r\n this.dataView = pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer).subarray(inputOffset, endLength);\r\n return endLength;\r\n }\r\n toBER(sizeOnly) {\r\n return this.dataView.slice().buffer;\r\n }\r\n}\n\nfunction compareSchema(root, inputData, inputSchema) {\r\n if (inputSchema instanceof Choice) {\r\n for (let j = 0; j < inputSchema.value.length; j++) {\r\n const result = compareSchema(root, inputData, inputSchema.value[j]);\r\n if (result.verified) {\r\n return {\r\n verified: true,\r\n result: root\r\n };\r\n }\r\n }\r\n {\r\n const _result = {\r\n verified: false,\r\n result: {\r\n error: \"Wrong values for Choice type\"\r\n },\r\n };\r\n if (inputSchema.hasOwnProperty(NAME))\r\n _result.name = inputSchema.name;\r\n return _result;\r\n }\r\n }\r\n if (inputSchema instanceof Any) {\r\n if (inputSchema.hasOwnProperty(NAME))\r\n root[inputSchema.name] = inputData;\r\n return {\r\n verified: true,\r\n result: root\r\n };\r\n }\r\n if ((root instanceof Object) === false) {\r\n return {\r\n verified: false,\r\n result: { error: \"Wrong root object\" }\r\n };\r\n }\r\n if ((inputData instanceof Object) === false) {\r\n return {\r\n verified: false,\r\n result: { error: \"Wrong ASN.1 data\" }\r\n };\r\n }\r\n if ((inputSchema instanceof Object) === false) {\r\n return {\r\n verified: false,\r\n result: { error: \"Wrong ASN.1 schema\" }\r\n };\r\n }\r\n if ((ID_BLOCK in inputSchema) === false) {\r\n return {\r\n verified: false,\r\n result: { error: \"Wrong ASN.1 schema\" }\r\n };\r\n }\r\n if ((FROM_BER in inputSchema.idBlock) === false) {\r\n return {\r\n verified: false,\r\n result: { error: \"Wrong ASN.1 schema\" }\r\n };\r\n }\r\n if ((TO_BER in inputSchema.idBlock) === false) {\r\n return {\r\n verified: false,\r\n result: { error: \"Wrong ASN.1 schema\" }\r\n };\r\n }\r\n const encodedId = inputSchema.idBlock.toBER(false);\r\n if (encodedId.byteLength === 0) {\r\n return {\r\n verified: false,\r\n result: { error: \"Error encoding idBlock for ASN.1 schema\" }\r\n };\r\n }\r\n const decodedOffset = inputSchema.idBlock.fromBER(encodedId, 0, encodedId.byteLength);\r\n if (decodedOffset === -1) {\r\n return {\r\n verified: false,\r\n result: { error: \"Error decoding idBlock for ASN.1 schema\" }\r\n };\r\n }\r\n if (inputSchema.idBlock.hasOwnProperty(TAG_CLASS) === false) {\r\n return {\r\n verified: false,\r\n result: { error: \"Wrong ASN.1 schema\" }\r\n };\r\n }\r\n if (inputSchema.idBlock.tagClass !== inputData.idBlock.tagClass) {\r\n return {\r\n verified: false,\r\n result: root\r\n };\r\n }\r\n if (inputSchema.idBlock.hasOwnProperty(TAG_NUMBER) === false) {\r\n return {\r\n verified: false,\r\n result: { error: \"Wrong ASN.1 schema\" }\r\n };\r\n }\r\n if (inputSchema.idBlock.tagNumber !== inputData.idBlock.tagNumber) {\r\n return {\r\n verified: false,\r\n result: root\r\n };\r\n }\r\n if (inputSchema.idBlock.hasOwnProperty(IS_CONSTRUCTED) === false) {\r\n return {\r\n verified: false,\r\n result: { error: \"Wrong ASN.1 schema\" }\r\n };\r\n }\r\n if (inputSchema.idBlock.isConstructed !== inputData.idBlock.isConstructed) {\r\n return {\r\n verified: false,\r\n result: root\r\n };\r\n }\r\n if (!(IS_HEX_ONLY in inputSchema.idBlock)) {\r\n return {\r\n verified: false,\r\n result: { error: \"Wrong ASN.1 schema\" }\r\n };\r\n }\r\n if (inputSchema.idBlock.isHexOnly !== inputData.idBlock.isHexOnly) {\r\n return {\r\n verified: false,\r\n result: root\r\n };\r\n }\r\n if (inputSchema.idBlock.isHexOnly) {\r\n if ((VALUE_HEX_VIEW in inputSchema.idBlock) === false) {\r\n return {\r\n verified: false,\r\n result: { error: \"Wrong ASN.1 schema\" }\r\n };\r\n }\r\n const schemaView = inputSchema.idBlock.valueHexView;\r\n const asn1View = inputData.idBlock.valueHexView;\r\n if (schemaView.length !== asn1View.length) {\r\n return {\r\n verified: false,\r\n result: root\r\n };\r\n }\r\n for (let i = 0; i < schemaView.length; i++) {\r\n if (schemaView[i] !== asn1View[1]) {\r\n return {\r\n verified: false,\r\n result: root\r\n };\r\n }\r\n }\r\n }\r\n if (inputSchema.name) {\r\n inputSchema.name = inputSchema.name.replace(/^\\s+|\\s+$/g, EMPTY_STRING);\r\n if (inputSchema.name)\r\n root[inputSchema.name] = inputData;\r\n }\r\n if (inputSchema instanceof typeStore.Constructed) {\r\n let admission = 0;\r\n let result = {\r\n verified: false,\r\n result: {\r\n error: \"Unknown error\",\r\n }\r\n };\r\n let maxLength = inputSchema.valueBlock.value.length;\r\n if (maxLength > 0) {\r\n if (inputSchema.valueBlock.value[0] instanceof Repeated) {\r\n maxLength = inputData.valueBlock.value.length;\r\n }\r\n }\r\n if (maxLength === 0) {\r\n return {\r\n verified: true,\r\n result: root\r\n };\r\n }\r\n if ((inputData.valueBlock.value.length === 0) &&\r\n (inputSchema.valueBlock.value.length !== 0)) {\r\n let _optional = true;\r\n for (let i = 0; i < inputSchema.valueBlock.value.length; i++)\r\n _optional = _optional && (inputSchema.valueBlock.value[i].optional || false);\r\n if (_optional) {\r\n return {\r\n verified: true,\r\n result: root\r\n };\r\n }\r\n if (inputSchema.name) {\r\n inputSchema.name = inputSchema.name.replace(/^\\s+|\\s+$/g, EMPTY_STRING);\r\n if (inputSchema.name)\r\n delete root[inputSchema.name];\r\n }\r\n root.error = \"Inconsistent object length\";\r\n return {\r\n verified: false,\r\n result: root\r\n };\r\n }\r\n for (let i = 0; i < maxLength; i++) {\r\n if ((i - admission) >= inputData.valueBlock.value.length) {\r\n if (inputSchema.valueBlock.value[i].optional === false) {\r\n const _result = {\r\n verified: false,\r\n result: root\r\n };\r\n root.error = \"Inconsistent length between ASN.1 data and schema\";\r\n if (inputSchema.name) {\r\n inputSchema.name = inputSchema.name.replace(/^\\s+|\\s+$/g, EMPTY_STRING);\r\n if (inputSchema.name) {\r\n delete root[inputSchema.name];\r\n _result.name = inputSchema.name;\r\n }\r\n }\r\n return _result;\r\n }\r\n }\r\n else {\r\n if (inputSchema.valueBlock.value[0] instanceof Repeated) {\r\n result = compareSchema(root, inputData.valueBlock.value[i], inputSchema.valueBlock.value[0].value);\r\n if (result.verified === false) {\r\n if (inputSchema.valueBlock.value[0].optional)\r\n admission++;\r\n else {\r\n if (inputSchema.name) {\r\n inputSchema.name = inputSchema.name.replace(/^\\s+|\\s+$/g, EMPTY_STRING);\r\n if (inputSchema.name)\r\n delete root[inputSchema.name];\r\n }\r\n return result;\r\n }\r\n }\r\n if ((NAME in inputSchema.valueBlock.value[0]) && (inputSchema.valueBlock.value[0].name.length > 0)) {\r\n let arrayRoot = {};\r\n if ((LOCAL in inputSchema.valueBlock.value[0]) && (inputSchema.valueBlock.value[0].local))\r\n arrayRoot = inputData;\r\n else\r\n arrayRoot = root;\r\n if (typeof arrayRoot[inputSchema.valueBlock.value[0].name] === \"undefined\")\r\n arrayRoot[inputSchema.valueBlock.value[0].name] = [];\r\n arrayRoot[inputSchema.valueBlock.value[0].name].push(inputData.valueBlock.value[i]);\r\n }\r\n }\r\n else {\r\n result = compareSchema(root, inputData.valueBlock.value[i - admission], inputSchema.valueBlock.value[i]);\r\n if (result.verified === false) {\r\n if (inputSchema.valueBlock.value[i].optional)\r\n admission++;\r\n else {\r\n if (inputSchema.name) {\r\n inputSchema.name = inputSchema.name.replace(/^\\s+|\\s+$/g, EMPTY_STRING);\r\n if (inputSchema.name)\r\n delete root[inputSchema.name];\r\n }\r\n return result;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (result.verified === false) {\r\n const _result = {\r\n verified: false,\r\n result: root\r\n };\r\n if (inputSchema.name) {\r\n inputSchema.name = inputSchema.name.replace(/^\\s+|\\s+$/g, EMPTY_STRING);\r\n if (inputSchema.name) {\r\n delete root[inputSchema.name];\r\n _result.name = inputSchema.name;\r\n }\r\n }\r\n return _result;\r\n }\r\n return {\r\n verified: true,\r\n result: root\r\n };\r\n }\r\n if (inputSchema.primitiveSchema &&\r\n (VALUE_HEX_VIEW in inputData.valueBlock)) {\r\n const asn1 = localFromBER(inputData.valueBlock.valueHexView);\r\n if (asn1.offset === -1) {\r\n const _result = {\r\n verified: false,\r\n result: asn1.result\r\n };\r\n if (inputSchema.name) {\r\n inputSchema.name = inputSchema.name.replace(/^\\s+|\\s+$/g, EMPTY_STRING);\r\n if (inputSchema.name) {\r\n delete root[inputSchema.name];\r\n _result.name = inputSchema.name;\r\n }\r\n }\r\n return _result;\r\n }\r\n return compareSchema(root, asn1.result, inputSchema.primitiveSchema);\r\n }\r\n return {\r\n verified: true,\r\n result: root\r\n };\r\n}\r\nfunction verifySchema(inputBuffer, inputSchema) {\r\n if ((inputSchema instanceof Object) === false) {\r\n return {\r\n verified: false,\r\n result: { error: \"Wrong ASN.1 schema type\" }\r\n };\r\n }\r\n const asn1 = localFromBER(pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer));\r\n if (asn1.offset === -1) {\r\n return {\r\n verified: false,\r\n result: asn1.result\r\n };\r\n }\r\n return compareSchema(asn1.result, asn1.result, inputSchema);\r\n}\n\nexport { Any, BaseBlock, BaseStringBlock, BitString, BmpString, Boolean, CharacterString, Choice, Constructed, DATE, DateTime, Duration, EndOfContent, Enumerated, GeneralString, GeneralizedTime, GraphicString, HexBlock, IA5String, Integer, Null, NumericString, ObjectIdentifier, OctetString, Primitive, PrintableString, RawData, RelativeObjectIdentifier, Repeated, Sequence, Set, TIME, TeletexString, TimeOfDay, UTCTime, UniversalString, Utf8String, ValueBlock, VideotexString, ViewWriter, VisibleString, compareSchema, fromBER, verifySchema };\n","import BadKeyError from \"../BadKeyError.js\";\nimport { EncryptedPrivateKeyInfo } from \"../primitive/pkcs.js\";\nimport * as der from \"./der.js\";\nimport * as base64 from \"./base64.js\";\nimport Ed25519PrivateKey from \"../Ed25519PrivateKey.js\";\nimport EcdsaPrivateKey from \"../EcdsaPrivateKey.js\";\nimport * as asn1 from \"asn1js\";\nimport forge from \"node-forge\";\nimport * as hex from \"./hex.js\";\nimport * as aes from \"../primitive/aes.js\";\nimport { Buffer } from \"buffer\";\n\nconst ID_ED25519 = \"1.3.101.112\";\n\n/**\n * @param {string} pem\n * @param {string} [passphrase]\n * @returns {Promise}\n */\nexport async function readPemED25519(pem, passphrase) {\n const pemKeyData = pem.replace(\n /-----BEGIN (.*)-----|-----END (.*)-----|\\n|\\r/g,\n \"\",\n );\n\n const key = base64.decode(pemKeyData);\n if (passphrase) {\n let encrypted;\n\n try {\n encrypted = EncryptedPrivateKeyInfo.parse(key);\n } catch (error) {\n const message =\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n error != null && /** @type {Error} */ (error).message != null\n ? // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n /** @type {Error} */ (error).message\n : \"\";\n\n throw new BadKeyError(\n `failed to parse encrypted private key: ${message}`,\n );\n }\n\n const decrypted = await encrypted.decrypt(passphrase);\n\n let privateKey = null;\n\n if (decrypted.algId.algIdent === ID_ED25519) {\n privateKey = Ed25519PrivateKey;\n } else {\n throw new BadKeyError(\n `unknown private key algorithm ${decrypted.algId.toString()}`,\n );\n }\n\n const keyData = der.decode(decrypted.privateKey);\n\n if (!(\"bytes\" in keyData)) {\n throw new BadKeyError(\n `expected ASN bytes, got ${JSON.stringify(keyData)}`,\n );\n }\n\n return privateKey.fromBytes(keyData.bytes);\n }\n\n return key.subarray(16);\n}\n\n/**\n * @param {string} pem\n * @param {string} [passphrase]\n * @returns {Promise}\n */\nexport async function readPemECDSA(pem, passphrase) {\n const pemKeyData = pem.replace(\n /-----BEGIN (.*)-----|-----END (.*)-----|\\n|\\r/g,\n \"\",\n );\n const key = base64.decode(pemKeyData);\n\n if (passphrase) {\n const decodedPem = forge.pem.decode(pem)[0];\n /** @type {string} */\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment\n const ivString = decodedPem.dekInfo.parameters;\n const iv = hex.decode(ivString);\n const pemLines = pem.split(\"\\n\");\n const key = await aes.messageDigest(passphrase, ivString);\n const dataToDecrypt = Buffer.from(\n pemLines.slice(4, pemLines.length - 1).join(\"\"),\n \"base64\",\n );\n const keyDerBytes = await aes.createDecipheriv(\n aes.CipherAlgorithm.Aes128Cbc,\n key,\n iv,\n dataToDecrypt,\n );\n\n return EcdsaPrivateKey.fromBytesDer(keyDerBytes);\n } else {\n const asnData = asn1.fromBER(key);\n const parsedKey = asnData.result;\n\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return\n return parsedKey.valueBlock.value[1].valueBlock.valueHexView;\n }\n}\n\n/**\n * @param {string} pem\n * @param {string} [passphrase]\n * @returns {Promise}\n */\nexport async function read(pem, passphrase) {\n // If not then it is ED25519 type\n const isEcdsa = pem.includes(\"BEGIN EC PRIVATE KEY\") ? true : false;\n if (isEcdsa) {\n return readPemECDSA(pem, passphrase);\n } else {\n return readPemED25519(pem, passphrase);\n }\n}\n","import * as pbkdf2 from \"../primitive/pbkdf2.js\";\nimport * as hmac from \"../primitive/hmac.js\";\n\n/**\n * @param {Uint8Array} seed\n * @param {number} index\n * @returns {Promise}\n */\nexport function legacy(seed, index) {\n const password = new Uint8Array(seed.length + 8);\n password.set(seed, 0);\n\n const view = new DataView(\n password.buffer,\n password.byteOffset,\n password.byteLength,\n );\n\n if (index === 0xffffffffff) {\n view.setInt32(seed.length + 0, 0xff);\n view.setInt32(seed.length + 4, -1); // 0xffffffff\n } else {\n view.setInt32(seed.length + 0, index < 0 ? -1 : 0);\n view.setInt32(seed.length + 4, index);\n }\n\n const salt = Uint8Array.from([0xff]);\n return pbkdf2.deriveKey(\n hmac.HashAlgorithm.Sha512,\n password,\n salt,\n 2048,\n 32,\n );\n}\n","/**\n * @typedef {import(\"./PrivateKey.js\").default} PrivateKey\n * @typedef {import(\"./Ed25519PrivateKey.js\").default} Ed25519PrivateKey\n * @typedef {import(\"./EcdsaPrivateKey.js\").default} EcdsaPrivateKey\n * @typedef {import(\"./Mnemonic.js\").default} Mnemonic\n */\n\nconst CACHE = {\n /** @type {((key: Ed25519PrivateKey | EcdsaPrivateKey) => PrivateKey) | null} */\n privateKeyConstructor: null,\n\n /** @type {((bytes: Uint8Array) => PrivateKey) | null} */\n privateKeyFromBytes: null,\n\n /** @type {((words: string) => Mnemonic) | null} */\n mnemonicFromString: null,\n};\n\nexport default CACHE;\n","import BadKeyError from \"./BadKeyError.js\";\nimport Key from \"./Key.js\";\nimport Ed25519PrivateKey from \"./Ed25519PrivateKey.js\";\nimport EcdsaPrivateKey from \"./EcdsaPrivateKey.js\";\nimport PublicKey from \"./PublicKey.js\";\nimport { createKeystore, loadKeystore } from \"./primitive/keystore.js\";\nimport { read } from \"./encoding/pem.js\";\nimport * as hex from \"./encoding/hex.js\";\nimport * as slip10 from \"./primitive/slip10.js\";\nimport * as bip32 from \"./primitive/bip32.js\";\nimport * as derive from \"./util/derive.js\";\nimport * as ecdsa from \"./primitive/ecdsa.js\";\nimport CACHE from \"./Cache.js\";\n\n/**\n * @typedef {object} ProtoSignaturePair\n * @property {(Uint8Array | null)=} pubKeyPrefix\n * @property {(Uint8Array | null)=} ed25519\n * @property {(Uint8Array | null)=} ECDSASecp256k1\n */\n\n/**\n * @typedef {object} ProtoSigMap\n * @property {(ProtoSignaturePair[] | null)=} sigPair\n */\n\n/**\n * @typedef {object} ProtoSignedTransaction\n * @property {(Uint8Array | null)=} bodyBytes\n * @property {(ProtoSigMap | null)=} sigMap\n */\n\n/**\n * @typedef {object} Transaction\n * @property {() => boolean} isFrozen\n * @property {ProtoSignedTransaction[]} _signedTransactions\n * @property {Set} _signerPublicKeys\n * @property {(publicKey: PublicKey, signature: Uint8Array) => Transaction} addSignature\n * @property {() => void} _requireFrozen\n * @property {() => Transaction} freeze\n */\n\n/**\n * @typedef {import(\"./Mnemonic.js\").default} Mnemonic\n */\n\n/**\n * A private key on the Hedera™ network.\n */\nexport default class PrivateKey extends Key {\n /**\n * @hideconstructor\n * @internal\n * @param {Ed25519PrivateKey | EcdsaPrivateKey} key\n */\n constructor(key) {\n super();\n\n /**\n * @type {Ed25519PrivateKey | EcdsaPrivateKey}\n * @readonly\n * @private\n */\n this._key = key;\n }\n\n /**\n * @returns {string}\n */\n get _type() {\n return this._key._type;\n }\n\n /**\n * @returns {Uint8Array | null}\n */\n get _chainCode() {\n return this._key._chainCode;\n }\n\n /**\n * Generate a random Ed25519 private key.\n * @returns {PrivateKey}\n */\n static generateED25519() {\n return new PrivateKey(Ed25519PrivateKey.generate());\n }\n\n /**\n * Generate a random EDSA private key.\n * @returns {PrivateKey}\n */\n static generateECDSA() {\n return new PrivateKey(EcdsaPrivateKey.generate());\n }\n\n /**\n * Depredated - Use `generateED25519()` instead\n * Generate a random Ed25519 private key.\n * @returns {PrivateKey}\n */\n static generate() {\n return PrivateKey.generateED25519();\n }\n\n /**\n * Depredated - Use `generateED25519Async()` instead\n * Generate a random Ed25519 private key.\n * @returns {Promise}\n */\n static async generateAsync() {\n return PrivateKey.generateED25519Async();\n }\n\n /**\n * Generate a random Ed25519 private key.\n * @returns {Promise}\n */\n static async generateED25519Async() {\n return new PrivateKey(await Ed25519PrivateKey.generateAsync());\n }\n\n /**\n * Generate a random ECDSA private key.\n * @returns {Promise}\n */\n static async generateECDSAAsync() {\n return new PrivateKey(await EcdsaPrivateKey.generateAsync());\n }\n\n /**\n * Construct a private key from bytes. Requires DER header.\n * @param {Uint8Array} data\n * @returns {PrivateKey}\n */\n static fromBytes(data) {\n let message;\n\n if (data.length == 32) {\n console.warn(\n \"WARNING: Consider using fromStringECDSA() or fromStringED25519() on a HEX-encoded string and fromStringDer() on a HEX-encoded string with DER prefix instead.\",\n );\n }\n\n try {\n return new PrivateKey(Ed25519PrivateKey.fromBytes(data));\n } catch (error) {\n message =\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n error != null && /** @type {Error} */ (error).message != null\n ? // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n /** @type {Error} */ (error).message\n : \"\";\n }\n\n try {\n return new PrivateKey(EcdsaPrivateKey.fromBytes(data));\n } catch (error) {\n message =\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n error != null && /** @type {Error} */ (error).message != null\n ? // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n /** @type {Error} */ (error).message\n : \"\";\n }\n\n throw new BadKeyError(\n `private key cannot be decoded from bytes: ${message}`,\n );\n }\n\n /**\n * Construct a ECDSA private key from bytes.\n * @param {Uint8Array} data\n * @returns {PrivateKey}\n */\n static fromBytesECDSA(data) {\n return new PrivateKey(EcdsaPrivateKey.fromBytes(data));\n }\n\n /**\n * Construct a ED25519 private key from bytes.\n * @param {Uint8Array} data\n * @returns {PrivateKey}\n */\n static fromBytesED25519(data) {\n return new PrivateKey(Ed25519PrivateKey.fromBytes(data));\n }\n\n /**\n * Construct a private key from a hex-encoded string. Requires DER header.\n * @param {string} text\n * @returns {PrivateKey}\n */\n static fromString(text) {\n return PrivateKey.fromBytes(hex.decode(text));\n }\n\n /**\n * Construct a ECDSA private key from a hex-encoded string.\n * @param {string} text\n * @returns {PrivateKey}\n */\n static fromStringECDSA(text) {\n return PrivateKey.fromBytesECDSA(hex.decode(text));\n }\n\n /**\n * Construct a Ed25519 private key from a hex-encoded string.\n * @param {string} text\n * @returns {PrivateKey}\n */\n static fromStringED25519(text) {\n return PrivateKey.fromBytesED25519(hex.decode(text));\n }\n\n /**\n * Construct a Ed25519 private key from a Uint8Array seed.\n * @param {Uint8Array} seed\n * @returns {Promise}\n */\n static async fromSeedED25519(seed) {\n const ed25519Key = await Ed25519PrivateKey.fromSeed(seed);\n return new PrivateKey(ed25519Key);\n }\n\n /**\n * Construct a ECDSA private key from a Uint8Array seed.\n * @param {Uint8Array} seed\n * @returns {Promise}\n */\n static async fromSeedECDSAsecp256k1(seed) {\n const ecdsaKey = await EcdsaPrivateKey.fromSeed(seed);\n return new PrivateKey(ecdsaKey);\n }\n\n /**\n * @deprecated - Use `Mnemonic.from[Words|String]().toStandard[Ed25519|ECDSAsecp256k1]PrivateKey()` instead\n *\n * Recover a private key from a mnemonic phrase (and optionally a password).\n * @param {Mnemonic | string} mnemonic\n * @param {string} [passphrase]\n * @returns {Promise}\n */\n static async fromMnemonic(mnemonic, passphrase = \"\") {\n if (CACHE.mnemonicFromString == null) {\n throw new Error(\"Mnemonic not found in cache\");\n }\n\n return (\n (\n typeof mnemonic === \"string\"\n ? CACHE.mnemonicFromString(mnemonic)\n : mnemonic\n )\n // eslint-disable-next-line deprecation/deprecation\n .toEd25519PrivateKey(passphrase)\n );\n }\n\n /**\n * Recover a private key from a keystore, previously created by `.toKeystore()`.\n *\n * This key will _not_ support child key derivation.\n * @param {Uint8Array} data\n * @param {string} [passphrase]\n * @returns {Promise}\n * @throws {BadKeyError} If the passphrase is incorrect or the hash fails to validate.\n */\n static async fromKeystore(data, passphrase = \"\") {\n return PrivateKey.fromBytes(await loadKeystore(data, passphrase));\n }\n\n /**\n * Recover a private key from a pem string; the private key may be encrypted.\n *\n * This method assumes the .pem file has been converted to a string already.\n *\n * If `passphrase` is not null or empty, this looks for the first `ENCRYPTED PRIVATE KEY`\n * section and uses `passphrase` to decrypt it; otherwise, it looks for the first `PRIVATE KEY`\n * section and decodes that as a DER-encoded private key.\n * @param {string} data\n * @param {string} [passphrase]\n * @returns {Promise}\n */\n static async fromPem(data, passphrase = \"\") {\n const pem = await read(data, passphrase);\n\n if (\n pem instanceof Ed25519PrivateKey ||\n pem instanceof EcdsaPrivateKey\n ) {\n return new PrivateKey(pem);\n }\n\n const isEcdsa = data.includes(\"BEGIN EC PRIVATE KEY\") ? true : false;\n if (isEcdsa) {\n return new PrivateKey(EcdsaPrivateKey.fromBytes(pem));\n } else {\n return new PrivateKey(Ed25519PrivateKey.fromBytes(pem));\n }\n }\n\n /**\n * Derive a new private key at the given wallet index.\n *\n * Only currently supported for keys created with from mnemonics; other keys will throw\n * an error.\n *\n * You can check if a key supports derivation with `.supportsDerivation()`\n * @param {number} index\n * @returns {Promise}\n * @throws If this key does not support derivation.\n */\n async derive(index) {\n if (this._key._chainCode == null) {\n throw new Error(\"this private key does not support key derivation\");\n }\n\n if (this._key instanceof Ed25519PrivateKey) {\n const { keyData, chainCode } = await slip10.derive(\n this.toBytesRaw(),\n this._key._chainCode,\n index,\n );\n\n return new PrivateKey(new Ed25519PrivateKey(keyData, chainCode));\n } else {\n const { keyData, chainCode } = await bip32.derive(\n this.toBytesRaw(),\n this._key._chainCode,\n index,\n );\n\n return new PrivateKey(\n new EcdsaPrivateKey(ecdsa.fromBytes(keyData), chainCode),\n );\n }\n }\n\n /**\n * @param {number} index\n * @returns {Promise}\n * @throws If this key does not support derivation.\n */\n async legacyDerive(index) {\n const keyBytes = await derive.legacy(\n this.toBytesRaw().subarray(0, 32),\n index,\n );\n\n /** @type {new (bytes: Uint8Array) => Ed25519PrivateKey | EcdsaPrivateKey} */\n const constructor = /** @type {any} */ (this._key.constructor);\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n return new PrivateKey(new constructor(keyBytes));\n }\n\n /**\n * Get the public key associated with this private key.\n *\n * The public key can be freely given and used by other parties to verify\n * the signatures generated by this private key.\n * @returns {PublicKey}\n */\n get publicKey() {\n return new PublicKey(this._key.publicKey);\n }\n\n /**\n * Sign a message with this private key.\n * @param {Uint8Array} bytes\n * @returns {Uint8Array} - The signature bytes without the message\n */\n sign(bytes) {\n return this._key.sign(bytes);\n }\n\n /**\n * @param {Transaction} transaction\n * @returns {Uint8Array}\n */\n signTransaction(transaction) {\n if (!transaction.isFrozen()) {\n transaction.freeze();\n }\n\n if (transaction._signedTransactions.length != 1) {\n throw new Error(\n \"`PrivateKey.signTransaction()` requires `Transaction` to have a single node `AccountId` set\",\n );\n }\n\n const tx = /** @type {ProtoSignedTransaction} */ (\n transaction._signedTransactions[0]\n );\n\n const publicKeyHex = hex.encode(this.publicKey.toBytesRaw());\n\n if (tx.sigMap == null) {\n tx.sigMap = {};\n }\n\n if (tx.sigMap.sigPair == null) {\n tx.sigMap.sigPair = [];\n }\n\n for (const sigPair of tx.sigMap.sigPair) {\n if (\n sigPair.pubKeyPrefix != null &&\n hex.encode(sigPair.pubKeyPrefix) === publicKeyHex\n ) {\n switch (this._type) {\n case \"ED25519\":\n return /** @type {Uint8Array} */ (sigPair.ed25519);\n case \"secp256k1\":\n return /** @type {Uint8Array} */ (\n sigPair.ECDSASecp256k1\n );\n }\n }\n }\n\n const siganture = this.sign(\n tx.bodyBytes != null ? tx.bodyBytes : new Uint8Array(),\n );\n\n /** @type {ProtoSignaturePair} */\n const protoSignature = {\n pubKeyPrefix: this.publicKey.toBytesRaw(),\n };\n\n switch (this._type) {\n case \"ED25519\":\n protoSignature.ed25519 = siganture;\n break;\n case \"secp256k1\":\n protoSignature.ECDSASecp256k1 = siganture;\n break;\n }\n\n tx.sigMap.sigPair.push(protoSignature);\n transaction._signerPublicKeys.add(publicKeyHex);\n\n return siganture;\n }\n\n /**\n * Check if `derive` can be called on this private key.\n *\n * This is only the case if the key was created from a mnemonic.\n * @returns {boolean}\n */\n isDerivable() {\n return this._key._chainCode != null;\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytes() {\n if (this._key instanceof Ed25519PrivateKey) {\n return this.toBytesRaw();\n } else {\n return this.toBytesDer();\n }\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytesDer() {\n return this._key.toBytesDer();\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytesRaw() {\n return this._key.toBytesRaw();\n }\n\n /**\n * @returns {string}\n */\n toString() {\n return this.toStringDer();\n }\n\n /**\n * @returns {string}\n */\n toStringDer() {\n return hex.encode(this.toBytesDer());\n }\n\n /**\n * @returns {string}\n */\n toStringRaw() {\n return hex.encode(this.toBytesRaw());\n }\n\n /**\n * Create a keystore with a given passphrase.\n *\n * The key can be recovered later with `fromKeystore()`.\n *\n * Note that this will not retain the ancillary data used for\n * deriving child keys, thus `.derive()` on the restored key will\n * throw even if this instance supports derivation.\n * @param {string} [passphrase]\n * @returns {Promise}\n */\n toKeystore(passphrase = \"\") {\n return createKeystore(this.toBytesRaw(), passphrase);\n }\n}\n\nCACHE.privateKeyConstructor = (key) => new PrivateKey(key);\nCACHE.privateKeyFromBytes = (bytes) => PrivateKey.fromBytes(bytes);\n","/**\n * Possible statuses for {@link Mnemonic#validate()}.\n * @readonly\n * @enum {string}\n */\nconst BadMnemonicReason = Object.freeze({\n /**\n * The mnemonic did not have a supported number of words (12 or 24 for regular and 22 for legacy).\n */\n BadLength: \"BadLength\",\n\n /**\n * The mnemonic contained words which were not found in the word list.\n */\n UnknownWords: \"UnknownWords\",\n\n /**\n * The checksum encoded in the mnemonic did not match the checksum we just calculated for\n * that mnemonic.\n *\n * 24-word mnemonics have an 8-bit checksum that is appended to the 32 bytes of source entropy\n * after being calculated from it, before being encoded into words.\n *\n * This could happen if two or more of the words were entered out of the original order or\n * replaced with another from the standard word list (as this is only returned if all the words\n * exist in the word list).\n */\n ChecksumMismatch: \"ChecksumMismatch\",\n});\n\nexport default BadMnemonicReason;\n","/** @typedef {import(\"./Mnemonic.js\").default} Mnemonic */\nimport BadMnemonicReason from \"./BadMnemonicReason.js\";\n\nexport default class BadMnemonicError extends Error {\n /**\n * @param {Mnemonic} mnemonic\n * @param {string} reason\n * @param {number[]} unknownWordIndices\n * @hideconstructor\n */\n constructor(mnemonic, reason, unknownWordIndices) {\n let reasonMessage;\n\n switch (reason) {\n case BadMnemonicReason.BadLength:\n reasonMessage = \"mnemonic is of an unexpected number of words\";\n break;\n\n case BadMnemonicReason.ChecksumMismatch:\n reasonMessage =\n \"checksum byte in mnemonic did not match the rest of the mnemonic\";\n break;\n\n case BadMnemonicReason.UnknownWords:\n reasonMessage =\n \"mnemonic contained words that are not in the standard word list\";\n break;\n\n default:\n throw new Error(\n `unexpected value ${reason.toString()} for 'reason'`,\n );\n }\n\n super(`invalid mnemonic: ${reasonMessage}`);\n\n if (typeof Error.captureStackTrace !== \"undefined\") {\n Error.captureStackTrace(this, BadMnemonicError);\n }\n\n this.name = \"BadMnemonicError\";\n\n /** The reason for which the mnemonic failed validation. */\n this.reason = reason;\n\n /** The mnemonic that failed validation. */\n this.mnemonic = mnemonic;\n\n /**\n * The indices in the mnemonic that were not found in the BIP-39\n * standard English word list.\n */\n this.unknownWordIndices = unknownWordIndices;\n }\n}\n","export default [\n \"aback\",\n \"abbey\",\n \"abbot\",\n \"abide\",\n \"ablaze\",\n \"able\",\n \"aboard\",\n \"abode\",\n \"abort\",\n \"abound\",\n \"about\",\n \"above\",\n \"abroad\",\n \"abrupt\",\n \"absent\",\n \"absorb\",\n \"absurd\",\n \"abuse\",\n \"accent\",\n \"accept\",\n \"access\",\n \"accord\",\n \"accuse\",\n \"ace\",\n \"ache\",\n \"aching\",\n \"acid\",\n \"acidic\",\n \"acorn\",\n \"acre\",\n \"across\",\n \"act\",\n \"action\",\n \"active\",\n \"actor\",\n \"actual\",\n \"acute\",\n \"adam\",\n \"adapt\",\n \"add\",\n \"added\",\n \"addict\",\n \"adept\",\n \"adhere\",\n \"adjust\",\n \"admire\",\n \"admit\",\n \"adobe\",\n \"adopt\",\n \"adrift\",\n \"adult\",\n \"adverb\",\n \"advice\",\n \"aerial\",\n \"afar\",\n \"affair\",\n \"affect\",\n \"afford\",\n \"afghan\",\n \"afield\",\n \"afloat\",\n \"afraid\",\n \"afresh\",\n \"after\",\n \"again\",\n \"age\",\n \"agency\",\n \"agenda\",\n \"agent\",\n \"aghast\",\n \"agile\",\n \"ago\",\n \"agony\",\n \"agree\",\n \"agreed\",\n \"ahead\",\n \"aid\",\n \"aide\",\n \"aim\",\n \"air\",\n \"airman\",\n \"airy\",\n \"akin\",\n \"alarm\",\n \"alaska\",\n \"albeit\",\n \"album\",\n \"ale\",\n \"alert\",\n \"alibi\",\n \"alice\",\n \"alien\",\n \"alight\",\n \"align\",\n \"alike\",\n \"alive\",\n \"alkali\",\n \"all\",\n \"alley\",\n \"allied\",\n \"allow\",\n \"alloy\",\n \"ally\",\n \"almond\",\n \"almost\",\n \"aloft\",\n \"alone\",\n \"along\",\n \"aloof\",\n \"aloud\",\n \"alpha\",\n \"alpine\",\n \"also\",\n \"altar\",\n \"alter\",\n \"always\",\n \"amaze\",\n \"amazon\",\n \"amber\",\n \"ambush\",\n \"amen\",\n \"amend\",\n \"amid\",\n \"amidst\",\n \"amiss\",\n \"among\",\n \"amount\",\n \"ample\",\n \"amuse\",\n \"anchor\",\n \"and\",\n \"andrew\",\n \"anew\",\n \"angel\",\n \"anger\",\n \"angle\",\n \"angry\",\n \"animal\",\n \"ankle\",\n \"annoy\",\n \"annual\",\n \"answer\",\n \"anthem\",\n \"any\",\n \"anyhow\",\n \"anyway\",\n \"apart\",\n \"apathy\",\n \"apex\",\n \"apiece\",\n \"appeal\",\n \"appear\",\n \"apple\",\n \"apply\",\n \"april\",\n \"apron\",\n \"arab\",\n \"arcade\",\n \"arcane\",\n \"arch\",\n \"arctic\",\n \"ardent\",\n \"are\",\n \"area\",\n \"argue\",\n \"arid\",\n \"arise\",\n \"ark\",\n \"arm\",\n \"armful\",\n \"army\",\n \"aroma\",\n \"around\",\n \"arouse\",\n \"array\",\n \"arrest\",\n \"arrive\",\n \"arrow\",\n \"arson\",\n \"art\",\n \"artery\",\n \"artful\",\n \"artist\",\n \"ascent\",\n \"ash\",\n \"ashen\",\n \"ashore\",\n \"aside\",\n \"ask\",\n \"asleep\",\n \"aspect\",\n \"assay\",\n \"assent\",\n \"assert\",\n \"assess\",\n \"asset\",\n \"assign\",\n \"assist\",\n \"assume\",\n \"assure\",\n \"asthma\",\n \"astute\",\n \"asylum\",\n \"ate\",\n \"athens\",\n \"atlas\",\n \"atom\",\n \"atomic\",\n \"attach\",\n \"attack\",\n \"attain\",\n \"attend\",\n \"attic\",\n \"auburn\",\n \"audio\",\n \"audit\",\n \"august\",\n \"aunt\",\n \"auntie\",\n \"aura\",\n \"austin\",\n \"author\",\n \"auto\",\n \"autumn\",\n \"avail\",\n \"avenge\",\n \"avenue\",\n \"avert\",\n \"avid\",\n \"avoid\",\n \"await\",\n \"awake\",\n \"awaken\",\n \"award\",\n \"aware\",\n \"awash\",\n \"away\",\n \"awful\",\n \"awhile\",\n \"axe\",\n \"axes\",\n \"axiom\",\n \"axis\",\n \"axle\",\n \"aye\",\n \"babe\",\n \"baby\",\n \"bach\",\n \"back\",\n \"backup\",\n \"bacon\",\n \"bad\",\n \"badge\",\n \"badly\",\n \"bag\",\n \"baggy\",\n \"bail\",\n \"bait\",\n \"bake\",\n \"baker\",\n \"bakery\",\n \"bald\",\n \"ball\",\n \"ballad\",\n \"ballet\",\n \"ballot\",\n \"baltic\",\n \"bamboo\",\n \"ban\",\n \"banal\",\n \"banana\",\n \"band\",\n \"bang\",\n \"bank\",\n \"bar\",\n \"barber\",\n \"bare\",\n \"barely\",\n \"barge\",\n \"bark\",\n \"barley\",\n \"barn\",\n \"baron\",\n \"barrel\",\n \"barren\",\n \"basalt\",\n \"base\",\n \"basic\",\n \"basil\",\n \"basin\",\n \"basis\",\n \"basket\",\n \"bass\",\n \"bat\",\n \"batch\",\n \"bath\",\n \"baton\",\n \"battle\",\n \"bay\",\n \"beach\",\n \"beacon\",\n \"beak\",\n \"beam\",\n \"bean\",\n \"bear\",\n \"beard\",\n \"beast\",\n \"beat\",\n \"beauty\",\n \"become\",\n \"bed\",\n \"beech\",\n \"beef\",\n \"beefy\",\n \"beep\",\n \"beer\",\n \"beet\",\n \"beetle\",\n \"before\",\n \"beg\",\n \"beggar\",\n \"begin\",\n \"behalf\",\n \"behave\",\n \"behind\",\n \"beige\",\n \"being\",\n \"belief\",\n \"bell\",\n \"belly\",\n \"belong\",\n \"below\",\n \"belt\",\n \"bench\",\n \"bend\",\n \"benign\",\n \"bent\",\n \"berlin\",\n \"berry\",\n \"berth\",\n \"beset\",\n \"beside\",\n \"best\",\n \"bestow\",\n \"bet\",\n \"beta\",\n \"betray\",\n \"better\",\n \"beware\",\n \"beyond\",\n \"bias\",\n \"biceps\",\n \"bicker\",\n \"bid\",\n \"big\",\n \"bigger\",\n \"bike\",\n \"bile\",\n \"bill\",\n \"bin\",\n \"binary\",\n \"bind\",\n \"biopsy\",\n \"birch\",\n \"bird\",\n \"birdie\",\n \"birth\",\n \"bishop\",\n \"bit\",\n \"bitch\",\n \"bite\",\n \"bitter\",\n \"black\",\n \"blade\",\n \"blame\",\n \"bland\",\n \"blast\",\n \"blaze\",\n \"bleak\",\n \"blend\",\n \"bless\",\n \"blew\",\n \"blind\",\n \"blink\",\n \"blip\",\n \"bliss\",\n \"blitz\",\n \"block\",\n \"blond\",\n \"blood\",\n \"bloody\",\n \"bloom\",\n \"blot\",\n \"blouse\",\n \"blow\",\n \"blue\",\n \"bluff\",\n \"blunt\",\n \"blur\",\n \"blush\",\n \"boar\",\n \"board\",\n \"boast\",\n \"boat\",\n \"bob\",\n \"bodily\",\n \"body\",\n \"bogus\",\n \"boil\",\n \"bold\",\n \"bolt\",\n \"bomb\",\n \"bombay\",\n \"bond\",\n \"bone\",\n \"bonn\",\n \"bonnet\",\n \"bonus\",\n \"bony\",\n \"book\",\n \"boom\",\n \"boost\",\n \"boot\",\n \"booth\",\n \"booze\",\n \"border\",\n \"bore\",\n \"borrow\",\n \"bosom\",\n \"boss\",\n \"boston\",\n \"both\",\n \"bother\",\n \"bottle\",\n \"bottom\",\n \"bought\",\n \"bounce\",\n \"bound\",\n \"bounty\",\n \"bout\",\n \"bovine\",\n \"bow\",\n \"bowel\",\n \"bowl\",\n \"box\",\n \"boy\",\n \"boyish\",\n \"brace\",\n \"brain\",\n \"brainy\",\n \"brake\",\n \"bran\",\n \"branch\",\n \"brand\",\n \"brandy\",\n \"brass\",\n \"brave\",\n \"bravo\",\n \"brazil\",\n \"breach\",\n \"bread\",\n \"break\",\n \"breast\",\n \"breath\",\n \"bred\",\n \"breed\",\n \"breeze\",\n \"brew\",\n \"bribe\",\n \"brick\",\n \"bride\",\n \"bridge\",\n \"brief\",\n \"bright\",\n \"brim\",\n \"brine\",\n \"bring\",\n \"brink\",\n \"brisk\",\n \"broad\",\n \"broke\",\n \"broken\",\n \"bronze\",\n \"brook\",\n \"broom\",\n \"brown\",\n \"bruise\",\n \"brush\",\n \"brutal\",\n \"brute\",\n \"bubble\",\n \"buck\",\n \"bucket\",\n \"buckle\",\n \"budget\",\n \"buffet\",\n \"buggy\",\n \"build\",\n \"bulb\",\n \"bulge\",\n \"bulk\",\n \"bulky\",\n \"bull\",\n \"bullet\",\n \"bully\",\n \"bump\",\n \"bumpy\",\n \"bunch\",\n \"bundle\",\n \"bunk\",\n \"bunny\",\n \"burden\",\n \"bureau\",\n \"burial\",\n \"buried\",\n \"burly\",\n \"burn\",\n \"burnt\",\n \"burrow\",\n \"burst\",\n \"bury\",\n \"bus\",\n \"bush\",\n \"bust\",\n \"bustle\",\n \"busy\",\n \"but\",\n \"butler\",\n \"butt\",\n \"butter\",\n \"button\",\n \"buy\",\n \"buyer\",\n \"buzz\",\n \"bye\",\n \"byte\",\n \"cab\",\n \"cabin\",\n \"cable\",\n \"cache\",\n \"cactus\",\n \"caesar\",\n \"cage\",\n \"cairo\",\n \"cajun\",\n \"cajole\",\n \"cake\",\n \"calf\",\n \"call\",\n \"caller\",\n \"calm\",\n \"calmly\",\n \"came\",\n \"camel\",\n \"camera\",\n \"camp\",\n \"campus\",\n \"can\",\n \"canada\",\n \"canal\",\n \"canary\",\n \"cancel\",\n \"cancer\",\n \"candid\",\n \"candle\",\n \"candy\",\n \"cane\",\n \"canine\",\n \"canoe\",\n \"canopy\",\n \"canvas\",\n \"canyon\",\n \"cap\",\n \"cape\",\n \"car\",\n \"carbon\",\n \"card\",\n \"care\",\n \"career\",\n \"caress\",\n \"cargo\",\n \"carl\",\n \"carnal\",\n \"carol\",\n \"carp\",\n \"carpet\",\n \"carrot\",\n \"carry\",\n \"cart\",\n \"cartel\",\n \"case\",\n \"cash\",\n \"cask\",\n \"cast\",\n \"castle\",\n \"casual\",\n \"cat\",\n \"catch\",\n \"cater\",\n \"cattle\",\n \"caught\",\n \"causal\",\n \"cause\",\n \"cave\",\n \"cease\",\n \"celery\",\n \"cell\",\n \"cellar\",\n \"celtic\",\n \"cement\",\n \"censor\",\n \"census\",\n \"cent\",\n \"cereal\",\n \"chain\",\n \"chair\",\n \"chalk\",\n \"chalky\",\n \"champ\",\n \"chance\",\n \"change\",\n \"chant\",\n \"chaos\",\n \"chap\",\n \"chapel\",\n \"charge\",\n \"charm\",\n \"chart\",\n \"chase\",\n \"chat\",\n \"cheap\",\n \"cheat\",\n \"check\",\n \"cheek\",\n \"cheeky\",\n \"cheer\",\n \"cheery\",\n \"cheese\",\n \"chef\",\n \"cheque\",\n \"cherry\",\n \"chess\",\n \"chest\",\n \"chew\",\n \"chic\",\n \"chick\",\n \"chief\",\n \"child\",\n \"chile\",\n \"chill\",\n \"chilly\",\n \"chin\",\n \"china\",\n \"chip\",\n \"choice\",\n \"choir\",\n \"choose\",\n \"chop\",\n \"choppy\",\n \"chord\",\n \"chorus\",\n \"chose\",\n \"chosen\",\n \"chris\",\n \"chrome\",\n \"chunk\",\n \"chunky\",\n \"church\",\n \"cider\",\n \"cigar\",\n \"cinema\",\n \"circa\",\n \"circle\",\n \"circus\",\n \"cite\",\n \"city\",\n \"civic\",\n \"civil\",\n \"clad\",\n \"claim\",\n \"clammy\",\n \"clan\",\n \"clap\",\n \"clash\",\n \"clasp\",\n \"class\",\n \"clause\",\n \"claw\",\n \"clay\",\n \"clean\",\n \"clear\",\n \"clergy\",\n \"clerk\",\n \"clever\",\n \"click\",\n \"client\",\n \"cliff\",\n \"climax\",\n \"climb\",\n \"clinch\",\n \"cling\",\n \"clinic\",\n \"clip\",\n \"cloak\",\n \"clock\",\n \"clone\",\n \"close\",\n \"closer\",\n \"closet\",\n \"cloth\",\n \"cloud\",\n \"cloudy\",\n \"clout\",\n \"clown\",\n \"club\",\n \"clue\",\n \"clumsy\",\n \"clung\",\n \"clutch\",\n \"coach\",\n \"coal\",\n \"coarse\",\n \"coast\",\n \"coat\",\n \"coax\",\n \"cobalt\",\n \"cobra\",\n \"coca\",\n \"cock\",\n \"cocoa\",\n \"code\",\n \"coffee\",\n \"coffin\",\n \"cohort\",\n \"coil\",\n \"coin\",\n \"coke\",\n \"cold\",\n \"collar\",\n \"colon\",\n \"colony\",\n \"colt\",\n \"column\",\n \"comb\",\n \"combat\",\n \"come\",\n \"comedy\",\n \"comic\",\n \"commit\",\n \"common\",\n \"compel\",\n \"comply\",\n \"concur\",\n \"cone\",\n \"confer\",\n \"congo\",\n \"consul\",\n \"convex\",\n \"convey\",\n \"convoy\",\n \"cook\",\n \"cool\",\n \"cope\",\n \"copper\",\n \"copy\",\n \"coral\",\n \"cord\",\n \"core\",\n \"cork\",\n \"corn\",\n \"corner\",\n \"corps\",\n \"corpse\",\n \"corpus\",\n \"cortex\",\n \"cosmic\",\n \"cosmos\",\n \"cost\",\n \"costly\",\n \"cotton\",\n \"couch\",\n \"cough\",\n \"could\",\n \"count\",\n \"county\",\n \"coup\",\n \"couple\",\n \"coupon\",\n \"course\",\n \"court\",\n \"cousin\",\n \"cove\",\n \"cover\",\n \"covert\",\n \"cow\",\n \"coward\",\n \"cowboy\",\n \"cozy\",\n \"crab\",\n \"crack\",\n \"cradle\",\n \"craft\",\n \"crafty\",\n \"crag\",\n \"crane\",\n \"crash\",\n \"crate\",\n \"crater\",\n \"crawl\",\n \"crazy\",\n \"creak\",\n \"cream\",\n \"creamy\",\n \"create\",\n \"credit\",\n \"creed\",\n \"creek\",\n \"creep\",\n \"creepy\",\n \"crept\",\n \"crest\",\n \"crew\",\n \"cried\",\n \"crime\",\n \"crisis\",\n \"crisp\",\n \"critic\",\n \"crook\",\n \"crop\",\n \"cross\",\n \"crow\",\n \"crowd\",\n \"crown\",\n \"crude\",\n \"cruel\",\n \"cruise\",\n \"crunch\",\n \"crush\",\n \"crust\",\n \"crux\",\n \"cry\",\n \"crypt\",\n \"cuba\",\n \"cube\",\n \"cubic\",\n \"cuckoo\",\n \"cuff\",\n \"cult\",\n \"cup\",\n \"curb\",\n \"cure\",\n \"curfew\",\n \"curl\",\n \"curry\",\n \"curse\",\n \"cursor\",\n \"curve\",\n \"cuss\",\n \"custom\",\n \"cut\",\n \"cute\",\n \"cycle\",\n \"cyclic\",\n \"cynic\",\n \"czech\",\n \"dad\",\n \"daddy\",\n \"dagger\",\n \"daily\",\n \"dairy\",\n \"daisy\",\n \"dale\",\n \"dam\",\n \"damage\",\n \"damp\",\n \"dampen\",\n \"dance\",\n \"danger\",\n \"danish\",\n \"dare\",\n \"dark\",\n \"darken\",\n \"darn\",\n \"dart\",\n \"dash\",\n \"data\",\n \"date\",\n \"david\",\n \"dawn\",\n \"day\",\n \"dead\",\n \"deadly\",\n \"deaf\",\n \"deal\",\n \"dealer\",\n \"dean\",\n \"dear\",\n \"death\",\n \"debate\",\n \"debit\",\n \"debris\",\n \"debt\",\n \"debtor\",\n \"decade\",\n \"decay\",\n \"decent\",\n \"decide\",\n \"deck\",\n \"decor\",\n \"decree\",\n \"deduce\",\n \"deed\",\n \"deep\",\n \"deeply\",\n \"deer\",\n \"defeat\",\n \"defect\",\n \"defend\",\n \"defer\",\n \"define\",\n \"defy\",\n \"degree\",\n \"deity\",\n \"delay\",\n \"delete\",\n \"delhi\",\n \"delta\",\n \"demand\",\n \"demise\",\n \"demo\",\n \"demure\",\n \"denial\",\n \"denote\",\n \"dense\",\n \"dental\",\n \"deny\",\n \"depart\",\n \"depend\",\n \"depict\",\n \"deploy\",\n \"depot\",\n \"depth\",\n \"deputy\",\n \"derive\",\n \"desert\",\n \"design\",\n \"desire\",\n \"desist\",\n \"desk\",\n \"detail\",\n \"detect\",\n \"deter\",\n \"detest\",\n \"detour\",\n \"device\",\n \"devise\",\n \"devoid\",\n \"devote\",\n \"devour\",\n \"dial\",\n \"diana\",\n \"diary\",\n \"dice\",\n \"dictum\",\n \"did\",\n \"die\",\n \"diesel\",\n \"diet\",\n \"differ\",\n \"dig\",\n \"digest\",\n \"digit\",\n \"dine\",\n \"dinghy\",\n \"dinner\",\n \"diode\",\n \"dip\",\n \"dire\",\n \"direct\",\n \"dirt\",\n \"dirty\",\n \"disc\",\n \"disco\",\n \"dish\",\n \"disk\",\n \"dismal\",\n \"dispel\",\n \"ditch\",\n \"dive\",\n \"divert\",\n \"divide\",\n \"divine\",\n \"dizzy\",\n \"docile\",\n \"dock\",\n \"doctor\",\n \"dog\",\n \"dogma\",\n \"dole\",\n \"doll\",\n \"dollar\",\n \"dolly\",\n \"domain\",\n \"dome\",\n \"domino\",\n \"donate\",\n \"done\",\n \"donkey\",\n \"donor\",\n \"doom\",\n \"door\",\n \"dorsal\",\n \"dose\",\n \"dot\",\n \"double\",\n \"doubt\",\n \"dough\",\n \"dour\",\n \"dove\",\n \"down\",\n \"dozen\",\n \"draft\",\n \"drag\",\n \"dragon\",\n \"drain\",\n \"drama\",\n \"drank\",\n \"draw\",\n \"drawer\",\n \"dread\",\n \"dream\",\n \"dreary\",\n \"dress\",\n \"drew\",\n \"dried\",\n \"drift\",\n \"drill\",\n \"drink\",\n \"drip\",\n \"drive\",\n \"driver\",\n \"drop\",\n \"drove\",\n \"drown\",\n \"drug\",\n \"drum\",\n \"drunk\",\n \"dry\",\n \"dual\",\n \"duck\",\n \"duct\",\n \"due\",\n \"duel\",\n \"duet\",\n \"duke\",\n \"dull\",\n \"duly\",\n \"dumb\",\n \"dummy\",\n \"dump\",\n \"dune\",\n \"dung\",\n \"duress\",\n \"during\",\n \"dusk\",\n \"dust\",\n \"dusty\",\n \"dutch\",\n \"duty\",\n \"dwarf\",\n \"dwell\",\n \"dyer\",\n \"dying\",\n \"dynamo\",\n \"each\",\n \"eager\",\n \"eagle\",\n \"ear\",\n \"earl\",\n \"early\",\n \"earn\",\n \"earth\",\n \"ease\",\n \"easel\",\n \"easily\",\n \"east\",\n \"easter\",\n \"easy\",\n \"eat\",\n \"eaten\",\n \"eater\",\n \"echo\",\n \"eddy\",\n \"eden\",\n \"edge\",\n \"edible\",\n \"edict\",\n \"edit\",\n \"editor\",\n \"eel\",\n \"eerie\",\n \"eerily\",\n \"effect\",\n \"effort\",\n \"egg\",\n \"ego\",\n \"eight\",\n \"eighth\",\n \"eighty\",\n \"either\",\n \"elbow\",\n \"elder\",\n \"eldest\",\n \"elect\",\n \"eleven\",\n \"elicit\",\n \"elite\",\n \"else\",\n \"elude\",\n \"elves\",\n \"embark\",\n \"emblem\",\n \"embryo\",\n \"emerge\",\n \"emit\",\n \"empire\",\n \"employ\",\n \"empty\",\n \"enable\",\n \"enamel\",\n \"end\",\n \"endure\",\n \"enemy\",\n \"energy\",\n \"engage\",\n \"engine\",\n \"enjoy\",\n \"enlist\",\n \"enough\",\n \"ensure\",\n \"entail\",\n \"enter\",\n \"entire\",\n \"entry\",\n \"envoy\",\n \"envy\",\n \"enzyme\",\n \"epic\",\n \"epoch\",\n \"equal\",\n \"equate\",\n \"equip\",\n \"equity\",\n \"era\",\n \"erect\",\n \"eric\",\n \"erode\",\n \"erotic\",\n \"errant\",\n \"error\",\n \"escape\",\n \"escort\",\n \"essay\",\n \"essex\",\n \"estate\",\n \"esteem\",\n \"ethic\",\n \"ethnic\",\n \"europe\",\n \"evade\",\n \"eve\",\n \"even\",\n \"event\",\n \"ever\",\n \"every\",\n \"evict\",\n \"evil\",\n \"evoke\",\n \"evolve\",\n \"exact\",\n \"exam\",\n \"exceed\",\n \"excel\",\n \"except\",\n \"excess\",\n \"excise\",\n \"excite\",\n \"excuse\",\n \"exempt\",\n \"exert\",\n \"exile\",\n \"exist\",\n \"exit\",\n \"exodus\",\n \"exotic\",\n \"expand\",\n \"expect\",\n \"expert\",\n \"expire\",\n \"export\",\n \"expose\",\n \"extend\",\n \"extra\",\n \"eye\",\n \"eyed\",\n \"fabric\",\n \"face\",\n \"facial\",\n \"fact\",\n \"factor\",\n \"fade\",\n \"fail\",\n \"faint\",\n \"fair\",\n \"fairly\",\n \"fairy\",\n \"faith\",\n \"fake\",\n \"falcon\",\n \"fall\",\n \"false\",\n \"falter\",\n \"fame\",\n \"family\",\n \"famine\",\n \"famous\",\n \"fan\",\n \"fancy\",\n \"far\",\n \"farce\",\n \"fare\",\n \"farm\",\n \"farmer\",\n \"fast\",\n \"fasten\",\n \"faster\",\n \"fat\",\n \"fatal\",\n \"fate\",\n \"father\",\n \"fatty\",\n \"fault\",\n \"faulty\",\n \"fauna\",\n \"fear\",\n \"feast\",\n \"feat\",\n \"fed\",\n \"fee\",\n \"feeble\",\n \"feed\",\n \"feel\",\n \"feet\",\n \"fell\",\n \"fellow\",\n \"felt\",\n \"female\",\n \"fence\",\n \"fend\",\n \"ferry\",\n \"fetal\",\n \"fetch\",\n \"feudal\",\n \"fever\",\n \"few\",\n \"fewer\",\n \"fiasco\",\n \"fiddle\",\n \"field\",\n \"fiend\",\n \"fierce\",\n \"fiery\",\n \"fifth\",\n \"fifty\",\n \"fig\",\n \"fight\",\n \"figure\",\n \"file\",\n \"fill\",\n \"filled\",\n \"filler\",\n \"film\",\n \"filter\",\n \"filth\",\n \"filthy\",\n \"final\",\n \"finale\",\n \"find\",\n \"fine\",\n \"finery\",\n \"finger\",\n \"finish\",\n \"finite\",\n \"fire\",\n \"firm\",\n \"firmly\",\n \"first\",\n \"fiscal\",\n \"fish\",\n \"fisher\",\n \"fist\",\n \"fit\",\n \"fitful\",\n \"five\",\n \"fix\",\n \"flag\",\n \"flair\",\n \"flak\",\n \"flame\",\n \"flank\",\n \"flap\",\n \"flare\",\n \"flash\",\n \"flask\",\n \"flat\",\n \"flavor\",\n \"flaw\",\n \"fled\",\n \"flee\",\n \"fleece\",\n \"fleet\",\n \"flesh\",\n \"fleshy\",\n \"flew\",\n \"flick\",\n \"flight\",\n \"flimsy\",\n \"flint\",\n \"flirt\",\n \"float\",\n \"flock\",\n \"flood\",\n \"floor\",\n \"floppy\",\n \"flora\",\n \"floral\",\n \"flour\",\n \"flow\",\n \"flower\",\n \"fluent\",\n \"fluffy\",\n \"fluid\",\n \"flung\",\n \"flurry\",\n \"flush\",\n \"flute\",\n \"flux\",\n \"fly\",\n \"flyer\",\n \"foal\",\n \"foam\",\n \"focal\",\n \"focus\",\n \"fog\",\n \"foil\",\n \"fold\",\n \"folk\",\n \"follow\",\n \"folly\",\n \"fond\",\n \"fondly\",\n \"font\",\n \"food\",\n \"fool\",\n \"foot\",\n \"for\",\n \"forbid\",\n \"force\",\n \"ford\",\n \"forest\",\n \"forge\",\n \"forget\",\n \"fork\",\n \"form\",\n \"formal\",\n \"format\",\n \"former\",\n \"fort\",\n \"forth\",\n \"forty\",\n \"forum\",\n \"fossil\",\n \"foster\",\n \"foul\",\n \"found\",\n \"four\",\n \"fourth\",\n \"fox\",\n \"foyer\",\n \"frail\",\n \"frame\",\n \"franc\",\n \"france\",\n \"frank\",\n \"fraud\",\n \"fred\",\n \"free\",\n \"freed\",\n \"freely\",\n \"freeze\",\n \"french\",\n \"frenzy\",\n \"fresh\",\n \"friar\",\n \"friday\",\n \"fridge\",\n \"fried\",\n \"friend\",\n \"fright\",\n \"fringe\",\n \"frock\",\n \"frog\",\n \"from\",\n \"front\",\n \"frost\",\n \"frosty\",\n \"frown\",\n \"frozen\",\n \"frugal\",\n \"fruit\",\n \"fry\",\n \"fudge\",\n \"fuel\",\n \"full\",\n \"fully\",\n \"fumes\",\n \"fun\",\n \"fund\",\n \"funny\",\n \"fur\",\n \"furry\",\n \"fury\",\n \"fuse\",\n \"fusion\",\n \"fuss\",\n \"fussy\",\n \"futile\",\n \"future\",\n \"fuzzy\",\n \"gadget\",\n \"gain\",\n \"gala\",\n \"galaxy\",\n \"gale\",\n \"gall\",\n \"galley\",\n \"gallon\",\n \"gallop\",\n \"gamble\",\n \"game\",\n \"gamma\",\n \"gandhi\",\n \"gang\",\n \"gap\",\n \"garage\",\n \"garden\",\n \"garlic\",\n \"gas\",\n \"gasp\",\n \"gate\",\n \"gather\",\n \"gauge\",\n \"gaunt\",\n \"gave\",\n \"gaze\",\n \"gear\",\n \"geese\",\n \"gem\",\n \"gemini\",\n \"gender\",\n \"gene\",\n \"geneva\",\n \"genial\",\n \"genius\",\n \"genre\",\n \"gentle\",\n \"gently\",\n \"gentry\",\n \"genus\",\n \"george\",\n \"germ\",\n \"get\",\n \"ghetto\",\n \"ghost\",\n \"giant\",\n \"gift\",\n \"giggle\",\n \"gill\",\n \"gilt\",\n \"ginger\",\n \"girl\",\n \"give\",\n \"given\",\n \"glad\",\n \"glade\",\n \"glance\",\n \"gland\",\n \"glare\",\n \"glass\",\n \"glassy\",\n \"gleam\",\n \"glee\",\n \"glide\",\n \"global\",\n \"globe\",\n \"gloom\",\n \"gloomy\",\n \"gloria\",\n \"glory\",\n \"gloss\",\n \"glossy\",\n \"glove\",\n \"glow\",\n \"glue\",\n \"gnat\",\n \"gnu\",\n \"goal\",\n \"goat\",\n \"gold\",\n \"golden\",\n \"golf\",\n \"gone\",\n \"gong\",\n \"goo\",\n \"good\",\n \"goose\",\n \"gore\",\n \"gorge\",\n \"gory\",\n \"gosh\",\n \"gospel\",\n \"gossip\",\n \"got\",\n \"gothic\",\n \"govern\",\n \"gown\",\n \"grab\",\n \"grace\",\n \"grade\",\n \"grail\",\n \"grain\",\n \"grand\",\n \"grant\",\n \"grape\",\n \"graph\",\n \"grasp\",\n \"grass\",\n \"grassy\",\n \"grate\",\n \"grave\",\n \"gravel\",\n \"gravy\",\n \"grease\",\n \"greasy\",\n \"great\",\n \"greece\",\n \"greed\",\n \"greedy\",\n \"greek\",\n \"green\",\n \"greet\",\n \"grew\",\n \"grey\",\n \"grid\",\n \"grief\",\n \"grill\",\n \"grim\",\n \"grin\",\n \"grind\",\n \"grip\",\n \"grit\",\n \"gritty\",\n \"groan\",\n \"groin\",\n \"groom\",\n \"groove\",\n \"gross\",\n \"ground\",\n \"group\",\n \"grove\",\n \"grow\",\n \"grown\",\n \"growth\",\n \"grudge\",\n \"grunt\",\n \"guard\",\n \"guess\",\n \"guest\",\n \"guide\",\n \"guild\",\n \"guilt\",\n \"guilty\",\n \"guise\",\n \"guitar\",\n \"gulf\",\n \"gully\",\n \"gun\",\n \"gunman\",\n \"guru\",\n \"gut\",\n \"guy\",\n \"gypsy\",\n \"habit\",\n \"hack\",\n \"had\",\n \"hail\",\n \"hair\",\n \"hairy\",\n \"haiti\",\n \"hale\",\n \"half\",\n \"hall\",\n \"halt\",\n \"hamlet\",\n \"hammer\",\n \"hand\",\n \"handle\",\n \"handy\",\n \"hang\",\n \"hangar\",\n \"hanoi\",\n \"happen\",\n \"happy\",\n \"harass\",\n \"harbor\",\n \"hard\",\n \"harder\",\n \"hardly\",\n \"hare\",\n \"harem\",\n \"harm\",\n \"harp\",\n \"harry\",\n \"harsh\",\n \"has\",\n \"hash\",\n \"hassle\",\n \"haste\",\n \"hasten\",\n \"hasty\",\n \"hat\",\n \"hatch\",\n \"hate\",\n \"haul\",\n \"haunt\",\n \"havana\",\n \"have\",\n \"haven\",\n \"havoc\",\n \"hawaii\",\n \"hawk\",\n \"hay\",\n \"hazard\",\n \"haze\",\n \"hazel\",\n \"hazy\",\n \"head\",\n \"heal\",\n \"health\",\n \"heap\",\n \"hear\",\n \"heard\",\n \"heart\",\n \"hearth\",\n \"hearty\",\n \"heat\",\n \"heater\",\n \"heaven\",\n \"heavy\",\n \"hebrew\",\n \"heck\",\n \"hectic\",\n \"hedge\",\n \"heel\",\n \"hefty\",\n \"height\",\n \"heir\",\n \"held\",\n \"helium\",\n \"helix\",\n \"hell\",\n \"hello\",\n \"helm\",\n \"helmet\",\n \"help\",\n \"hemp\",\n \"hence\",\n \"henry\",\n \"her\",\n \"herald\",\n \"herb\",\n \"herd\",\n \"here\",\n \"hereby\",\n \"hermes\",\n \"hernia\",\n \"hero\",\n \"heroic\",\n \"heroin\",\n \"hey\",\n \"heyday\",\n \"hick\",\n \"hidden\",\n \"hide\",\n \"high\",\n \"higher\",\n \"highly\",\n \"hill\",\n \"him\",\n \"hind\",\n \"hinder\",\n \"hint\",\n \"hippie\",\n \"hire\",\n \"his\",\n \"hiss\",\n \"hit\",\n \"hive\",\n \"hoard\",\n \"hoarse\",\n \"hobby\",\n \"hockey\",\n \"hold\",\n \"holder\",\n \"hole\",\n \"hollow\",\n \"holly\",\n \"holy\",\n \"home\",\n \"honest\",\n \"honey\",\n \"hood\",\n \"hook\",\n \"hope\",\n \"horn\",\n \"horrid\",\n \"horror\",\n \"horse\",\n \"hose\",\n \"host\",\n \"hot\",\n \"hotel\",\n \"hound\",\n \"hour\",\n \"house\",\n \"hover\",\n \"how\",\n \"huge\",\n \"hull\",\n \"human\",\n \"humane\",\n \"humble\",\n \"humid\",\n \"hung\",\n \"hunger\",\n \"hungry\",\n \"hunt\",\n \"hurdle\",\n \"hurl\",\n \"hurry\",\n \"hurt\",\n \"hush\",\n \"hut\",\n \"hybrid\",\n \"hymn\",\n \"hyphen\",\n \"ice\",\n \"icing\",\n \"icon\",\n \"idaho\",\n \"idea\",\n \"ideal\",\n \"idiom\",\n \"idiot\",\n \"idle\",\n \"idly\",\n \"idol\",\n \"ignite\",\n \"ignore\",\n \"ill\",\n \"image\",\n \"immune\",\n \"impact\",\n \"imply\",\n \"import\",\n \"impose\",\n \"inca\",\n \"incest\",\n \"inch\",\n \"income\",\n \"incur\",\n \"indeed\",\n \"index\",\n \"india\",\n \"indian\",\n \"indoor\",\n \"induce\",\n \"inept\",\n \"inert\",\n \"infant\",\n \"infect\",\n \"infer\",\n \"influx\",\n \"inform\",\n \"inject\",\n \"injure\",\n \"injury\",\n \"ink\",\n \"inlaid\",\n \"inland\",\n \"inlet\",\n \"inmate\",\n \"inn\",\n \"innate\",\n \"inner\",\n \"input\",\n \"insane\",\n \"insect\",\n \"insert\",\n \"inset\",\n \"inside\",\n \"insist\",\n \"insult\",\n \"insure\",\n \"intact\",\n \"intake\",\n \"intend\",\n \"inter\",\n \"into\",\n \"invade\",\n \"invent\",\n \"invest\",\n \"invite\",\n \"invoke\",\n \"inward\",\n \"iowa\",\n \"iran\",\n \"iraq\",\n \"irish\",\n \"iron\",\n \"ironic\",\n \"irony\",\n \"isaac\",\n \"isabel\",\n \"island\",\n \"isle\",\n \"israel\",\n \"issue\",\n \"italy\",\n \"itch\",\n \"item\",\n \"itself\",\n \"ivan\",\n \"ivory\",\n \"jack\",\n \"jacket\",\n \"jacob\",\n \"jade\",\n \"jaguar\",\n \"jail\",\n \"james\",\n \"jane\",\n \"japan\",\n \"jargon\",\n \"java\",\n \"jaw\",\n \"jazz\",\n \"jeep\",\n \"jelly\",\n \"jerky\",\n \"jest\",\n \"jet\",\n \"jewel\",\n \"jewish\",\n \"jim\",\n \"job\",\n \"jock\",\n \"jockey\",\n \"joe\",\n \"john\",\n \"join\",\n \"joint\",\n \"joke\",\n \"jolly\",\n \"jolt\",\n \"jordan\",\n \"joseph\",\n \"joy\",\n \"joyful\",\n \"joyous\",\n \"judge\",\n \"judy\",\n \"juice\",\n \"juicy\",\n \"july\",\n \"jumble\",\n \"jumbo\",\n \"jump\",\n \"june\",\n \"jungle\",\n \"junior\",\n \"junk\",\n \"junta\",\n \"jury\",\n \"just\",\n \"kansas\",\n \"karate\",\n \"karl\",\n \"keel\",\n \"keen\",\n \"keep\",\n \"keeper\",\n \"kenya\",\n \"kept\",\n \"kernel\",\n \"kettle\",\n \"key\",\n \"khaki\",\n \"kick\",\n \"kid\",\n \"kidnap\",\n \"kidney\",\n \"kill\",\n \"killer\",\n \"kin\",\n \"kind\",\n \"kindly\",\n \"king\",\n \"kiss\",\n \"kite\",\n \"kitten\",\n \"knack\",\n \"knee\",\n \"kneel\",\n \"knew\",\n \"knife\",\n \"knight\",\n \"knit\",\n \"knob\",\n \"knock\",\n \"knot\",\n \"know\",\n \"known\",\n \"koran\",\n \"korea\",\n \"kuwait\",\n \"label\",\n \"lace\",\n \"lack\",\n \"lad\",\n \"ladder\",\n \"laden\",\n \"lady\",\n \"lagoon\",\n \"laity\",\n \"lake\",\n \"lamb\",\n \"lame\",\n \"lamp\",\n \"lance\",\n \"land\",\n \"lane\",\n \"lap\",\n \"lapse\",\n \"large\",\n \"larval\",\n \"laser\",\n \"last\",\n \"latch\",\n \"late\",\n \"lately\",\n \"latent\",\n \"later\",\n \"latest\",\n \"latin\",\n \"latter\",\n \"laugh\",\n \"launch\",\n \"lava\",\n \"lavish\",\n \"law\",\n \"lawful\",\n \"lawn\",\n \"lawyer\",\n \"lay\",\n \"layer\",\n \"layman\",\n \"lazy\",\n \"lead\",\n \"leader\",\n \"leaf\",\n \"leafy\",\n \"league\",\n \"leak\",\n \"leaky\",\n \"lean\",\n \"leap\",\n \"learn\",\n \"lease\",\n \"leash\",\n \"least\",\n \"leave\",\n \"led\",\n \"ledge\",\n \"left\",\n \"leg\",\n \"legacy\",\n \"legal\",\n \"legend\",\n \"legion\",\n \"lemon\",\n \"lend\",\n \"length\",\n \"lens\",\n \"lent\",\n \"leo\",\n \"leper\",\n \"lesion\",\n \"less\",\n \"lessen\",\n \"lesser\",\n \"lesson\",\n \"lest\",\n \"let\",\n \"lethal\",\n \"letter\",\n \"level\",\n \"lever\",\n \"levy\",\n \"lewis\",\n \"liable\",\n \"liar\",\n \"libel\",\n \"libya\",\n \"lice\",\n \"lick\",\n \"lid\",\n \"lie\",\n \"lied\",\n \"lier\",\n \"life\",\n \"lift\",\n \"light\",\n \"like\",\n \"likely\",\n \"limb\",\n \"lime\",\n \"limit\",\n \"limp\",\n \"line\",\n \"linear\",\n \"linen\",\n \"linger\",\n \"link\",\n \"lint\",\n \"lion\",\n \"lip\",\n \"liquid\",\n \"liquor\",\n \"list\",\n \"listen\",\n \"lit\",\n \"live\",\n \"lively\",\n \"liver\",\n \"liz\",\n \"lizard\",\n \"load\",\n \"loaf\",\n \"loan\",\n \"lobby\",\n \"lobe\",\n \"local\",\n \"locate\",\n \"lock\",\n \"locus\",\n \"lodge\",\n \"loft\",\n \"lofty\",\n \"log\",\n \"logic\",\n \"logo\",\n \"london\",\n \"lone\",\n \"lonely\",\n \"long\",\n \"longer\",\n \"look\",\n \"loop\",\n \"loose\",\n \"loosen\",\n \"loot\",\n \"lord\",\n \"lorry\",\n \"lose\",\n \"loss\",\n \"lost\",\n \"lot\",\n \"lotion\",\n \"lotus\",\n \"loud\",\n \"loudly\",\n \"lounge\",\n \"lousy\",\n \"love\",\n \"lovely\",\n \"lover\",\n \"low\",\n \"lower\",\n \"lowest\",\n \"loyal\",\n \"lucid\",\n \"luck\",\n \"lucky\",\n \"lucy\",\n \"lull\",\n \"lump\",\n \"lumpy\",\n \"lunacy\",\n \"lunar\",\n \"lunch\",\n \"lung\",\n \"lure\",\n \"lurid\",\n \"lush\",\n \"lust\",\n \"lute\",\n \"luther\",\n \"luxury\",\n \"lying\",\n \"lymph\",\n \"lynch\",\n \"lyric\",\n \"macho\",\n \"macro\",\n \"mad\",\n \"madam\",\n \"made\",\n \"mafia\",\n \"magic\",\n \"magma\",\n \"magnet\",\n \"magnum\",\n \"magpie\",\n \"maid\",\n \"maiden\",\n \"mail\",\n \"main\",\n \"mainly\",\n \"major\",\n \"make\",\n \"maker\",\n \"male\",\n \"malice\",\n \"mall\",\n \"malt\",\n \"mammal\",\n \"manage\",\n \"mane\",\n \"mania\",\n \"manic\",\n \"manner\",\n \"manor\",\n \"mantle\",\n \"manual\",\n \"manure\",\n \"many\",\n \"map\",\n \"maple\",\n \"marble\",\n \"march\",\n \"mare\",\n \"margin\",\n \"maria\",\n \"marina\",\n \"mark\",\n \"market\",\n \"marry\",\n \"mars\",\n \"marsh\",\n \"martin\",\n \"martyr\",\n \"mary\",\n \"mask\",\n \"mason\",\n \"mass\",\n \"mast\",\n \"master\",\n \"mat\",\n \"match\",\n \"mate\",\n \"matrix\",\n \"matter\",\n \"mature\",\n \"maxim\",\n \"may\",\n \"maybe\",\n \"mayor\",\n \"maze\",\n \"mead\",\n \"meadow\",\n \"meal\",\n \"mean\",\n \"meant\",\n \"meat\",\n \"medal\",\n \"media\",\n \"median\",\n \"medic\",\n \"medium\",\n \"meet\",\n \"mellow\",\n \"melody\",\n \"melon\",\n \"melt\",\n \"member\",\n \"memo\",\n \"memory\",\n \"menace\",\n \"mend\",\n \"mental\",\n \"mentor\",\n \"menu\",\n \"mercy\",\n \"mere\",\n \"merely\",\n \"merge\",\n \"merger\",\n \"merit\",\n \"merry\",\n \"mesh\",\n \"mess\",\n \"messy\",\n \"met\",\n \"metal\",\n \"meter\",\n \"method\",\n \"methyl\",\n \"metric\",\n \"metro\",\n \"mexico\",\n \"miami\",\n \"mickey\",\n \"mid\",\n \"midday\",\n \"middle\",\n \"midst\",\n \"midway\",\n \"might\",\n \"mighty\",\n \"mild\",\n \"mildew\",\n \"mile\",\n \"milk\",\n \"milky\",\n \"mill\",\n \"mimic\",\n \"mince\",\n \"mind\",\n \"mine\",\n \"mini\",\n \"mink\",\n \"minor\",\n \"mint\",\n \"minus\",\n \"minute\",\n \"mire\",\n \"mirror\",\n \"mirth\",\n \"misery\",\n \"miss\",\n \"mist\",\n \"misty\",\n \"mite\",\n \"mix\",\n \"moan\",\n \"moat\",\n \"mob\",\n \"mobile\",\n \"mock\",\n \"mode\",\n \"model\",\n \"modem\",\n \"modern\",\n \"modest\",\n \"modify\",\n \"module\",\n \"moist\",\n \"molar\",\n \"mold\",\n \"mole\",\n \"molten\",\n \"moment\",\n \"monday\",\n \"money\",\n \"monk\",\n \"monkey\",\n \"month\",\n \"mood\",\n \"moody\",\n \"moon\",\n \"moor\",\n \"moral\",\n \"morale\",\n \"morbid\",\n \"more\",\n \"morgue\",\n \"mortal\",\n \"mortar\",\n \"mosaic\",\n \"moscow\",\n \"moses\",\n \"mosque\",\n \"moss\",\n \"most\",\n \"mostly\",\n \"moth\",\n \"mother\",\n \"motion\",\n \"motive\",\n \"motor\",\n \"mount\",\n \"mourn\",\n \"mouse\",\n \"mouth\",\n \"move\",\n \"movie\",\n \"mrs\",\n \"much\",\n \"muck\",\n \"mucus\",\n \"mud\",\n \"muddle\",\n \"muddy\",\n \"mule\",\n \"mummy\",\n \"munich\",\n \"murder\",\n \"murky\",\n \"murmur\",\n \"muscle\",\n \"museum\",\n \"music\",\n \"mussel\",\n \"must\",\n \"mutant\",\n \"mute\",\n \"mutiny\",\n \"mutter\",\n \"mutton\",\n \"mutual\",\n \"muzzle\",\n \"myopic\",\n \"myriad\",\n \"myself\",\n \"mystic\",\n \"myth\",\n \"nadir\",\n \"nail\",\n \"naked\",\n \"name\",\n \"namely\",\n \"nape\",\n \"napkin\",\n \"naples\",\n \"narrow\",\n \"nasal\",\n \"nasty\",\n \"nathan\",\n \"nation\",\n \"native\",\n \"nature\",\n \"nausea\",\n \"naval\",\n \"nave\",\n \"navy\",\n \"near\",\n \"nearer\",\n \"nearly\",\n \"neat\",\n \"neatly\",\n \"neck\",\n \"need\",\n \"needle\",\n \"needy\",\n \"negate\",\n \"neon\",\n \"nepal\",\n \"nephew\",\n \"nerve\",\n \"nest\",\n \"net\",\n \"neural\",\n \"never\",\n \"newly\",\n \"next\",\n \"nice\",\n \"nicely\",\n \"niche\",\n \"nickel\",\n \"niece\",\n \"night\",\n \"nile\",\n \"nimble\",\n \"nine\",\n \"ninety\",\n \"ninth\",\n \"nobel\",\n \"noble\",\n \"nobody\",\n \"node\",\n \"noise\",\n \"noisy\",\n \"none\",\n \"noon\",\n \"nor\",\n \"norm\",\n \"normal\",\n \"north\",\n \"norway\",\n \"nose\",\n \"nosy\",\n \"not\",\n \"note\",\n \"notice\",\n \"notify\",\n \"notion\",\n \"noun\",\n \"novel\",\n \"novice\",\n \"now\",\n \"nozzle\",\n \"null\",\n \"numb\",\n \"number\",\n \"nurse\",\n \"nut\",\n \"nylon\",\n \"nymph\",\n \"oak\",\n \"oar\",\n \"oasis\",\n \"oath\",\n \"obese\",\n \"obey\",\n \"object\",\n \"oblige\",\n \"oboe\",\n \"obtain\",\n \"obtuse\",\n \"occult\",\n \"occupy\",\n \"occur\",\n \"ocean\",\n \"octave\",\n \"odd\",\n \"off\",\n \"offend\",\n \"offer\",\n \"office\",\n \"offset\",\n \"often\",\n \"ohio\",\n \"oil\",\n \"oily\",\n \"okay\",\n \"old\",\n \"older\",\n \"oldest\",\n \"olive\",\n \"omega\",\n \"omen\",\n \"omit\",\n \"once\",\n \"one\",\n \"onion\",\n \"only\",\n \"onset\",\n \"onto\",\n \"onus\",\n \"onward\",\n \"opaque\",\n \"open\",\n \"openly\",\n \"opera\",\n \"opium\",\n \"oppose\",\n \"optic\",\n \"option\",\n \"oracle\",\n \"oral\",\n \"orange\",\n \"orbit\",\n \"orchid\",\n \"ordeal\",\n \"order\",\n \"organ\",\n \"orgasm\",\n \"orient\",\n \"origin\",\n \"ornate\",\n \"orphan\",\n \"oscar\",\n \"other\",\n \"otter\",\n \"ought\",\n \"ounce\",\n \"our\",\n \"out\",\n \"outer\",\n \"output\",\n \"outset\",\n \"oval\",\n \"oven\",\n \"over\",\n \"overt\",\n \"owe\",\n \"owing\",\n \"owl\",\n \"own\",\n \"owner\",\n \"oxford\",\n \"oxide\",\n \"oxygen\",\n \"oyster\",\n \"ozone\",\n \"pace\",\n \"pack\",\n \"packet\",\n \"pact\",\n \"pad\",\n \"paddle\",\n \"paddy\",\n \"pagan\",\n \"page\",\n \"paid\",\n \"pain\",\n \"paint\",\n \"pair\",\n \"palace\",\n \"pale\",\n \"palm\",\n \"pan\",\n \"panama\",\n \"panel\",\n \"panic\",\n \"papa\",\n \"papal\",\n \"paper\",\n \"parade\",\n \"parcel\",\n \"pardon\",\n \"parent\",\n \"paris\",\n \"parish\",\n \"park\",\n \"parody\",\n \"parrot\",\n \"part\",\n \"partly\",\n \"party\",\n \"pascal\",\n \"pass\",\n \"past\",\n \"paste\",\n \"pastel\",\n \"pastor\",\n \"pastry\",\n \"pat\",\n \"patch\",\n \"patent\",\n \"path\",\n \"patio\",\n \"patrol\",\n \"patron\",\n \"paul\",\n \"pause\",\n \"pave\",\n \"paw\",\n \"pawn\",\n \"pay\",\n \"peace\",\n \"peach\",\n \"peak\",\n \"pear\",\n \"pearl\",\n \"pedal\",\n \"peel\",\n \"peer\",\n \"peking\",\n \"pelvic\",\n \"pelvis\",\n \"pen\",\n \"penal\",\n \"pence\",\n \"pencil\",\n \"penny\",\n \"people\",\n \"pepper\",\n \"per\",\n \"perch\",\n \"peril\",\n \"period\",\n \"perish\",\n \"permit\",\n \"person\",\n \"peru\",\n \"pest\",\n \"pet\",\n \"peter\",\n \"petite\",\n \"petrol\",\n \"petty\",\n \"phase\",\n \"philip\",\n \"phone\",\n \"photo\",\n \"phrase\",\n \"piano\",\n \"pick\",\n \"picket\",\n \"picnic\",\n \"pie\",\n \"piece\",\n \"pier\",\n \"pierce\",\n \"piety\",\n \"pig\",\n \"pigeon\",\n \"piggy\",\n \"pike\",\n \"pile\",\n \"pill\",\n \"pillar\",\n \"pillow\",\n \"pilot\",\n \"pin\",\n \"pinch\",\n \"pine\",\n \"pink\",\n \"pint\",\n \"pious\",\n \"pipe\",\n \"pirate\",\n \"piss\",\n \"pistol\",\n \"piston\",\n \"pit\",\n \"pitch\",\n \"pity\",\n \"pivot\",\n \"pixel\",\n \"pizza\",\n \"place\",\n \"placid\",\n \"plague\",\n \"plain\",\n \"plan\",\n \"plane\",\n \"planet\",\n \"plank\",\n \"plant\",\n \"plasma\",\n \"plate\",\n \"play\",\n \"player\",\n \"plea\",\n \"plead\",\n \"please\",\n \"pledge\",\n \"plenty\",\n \"plight\",\n \"plot\",\n \"plough\",\n \"ploy\",\n \"plug\",\n \"plum\",\n \"plump\",\n \"plunge\",\n \"plural\",\n \"plus\",\n \"plush\",\n \"pocket\",\n \"poem\",\n \"poet\",\n \"poetic\",\n \"poetry\",\n \"point\",\n \"poison\",\n \"poland\",\n \"polar\",\n \"pole\",\n \"police\",\n \"policy\",\n \"polish\",\n \"polite\",\n \"poll\",\n \"pollen\",\n \"polo\",\n \"pond\",\n \"ponder\",\n \"pony\",\n \"pool\",\n \"poor\",\n \"poorly\",\n \"pop\",\n \"poppy\",\n \"pore\",\n \"pork\",\n \"port\",\n \"portal\",\n \"pose\",\n \"posh\",\n \"post\",\n \"postal\",\n \"pot\",\n \"potato\",\n \"potent\",\n \"pouch\",\n \"pound\",\n \"pour\",\n \"powder\",\n \"power\",\n \"praise\",\n \"pray\",\n \"prayer\",\n \"preach\",\n \"prefer\",\n \"prefix\",\n \"press\",\n \"pretty\",\n \"price\",\n \"pride\",\n \"priest\",\n \"primal\",\n \"prime\",\n \"prince\",\n \"print\",\n \"prior\",\n \"prism\",\n \"prison\",\n \"privy\",\n \"prize\",\n \"probe\",\n \"profit\",\n \"prompt\",\n \"prone\",\n \"proof\",\n \"propel\",\n \"proper\",\n \"prose\",\n \"proton\",\n \"proud\",\n \"prove\",\n \"proven\",\n \"proxy\",\n \"prune\",\n \"pry\",\n \"psalm\",\n \"pseudo\",\n \"psyche\",\n \"pub\",\n \"public\",\n \"puff\",\n \"pull\",\n \"pulp\",\n \"pulpit\",\n \"pulsar\",\n \"pulse\",\n \"pump\",\n \"punch\",\n \"punish\",\n \"punk\",\n \"pupil\",\n \"puppet\",\n \"puppy\",\n \"pure\",\n \"purely\",\n \"purge\",\n \"purify\",\n \"purple\",\n \"purse\",\n \"pursue\",\n \"push\",\n \"pushy\",\n \"put\",\n \"putt\",\n \"puzzle\",\n \"quaint\",\n \"quake\",\n \"quarry\",\n \"quart\",\n \"quartz\",\n \"quebec\",\n \"queen\",\n \"queer\",\n \"query\",\n \"quest\",\n \"queue\",\n \"quick\",\n \"quid\",\n \"quiet\",\n \"quilt\",\n \"quirk\",\n \"quit\",\n \"quite\",\n \"quiver\",\n \"quiz\",\n \"quota\",\n \"quote\",\n \"rabbit\",\n \"race\",\n \"racial\",\n \"racism\",\n \"rack\",\n \"racket\",\n \"radar\",\n \"radio\",\n \"radish\",\n \"radius\",\n \"raffle\",\n \"raft\",\n \"rage\",\n \"raid\",\n \"rail\",\n \"rain\",\n \"rainy\",\n \"raise\",\n \"rake\",\n \"rally\",\n \"ramp\",\n \"random\",\n \"range\",\n \"rank\",\n \"ransom\",\n \"rape\",\n \"rapid\",\n \"rare\",\n \"rarely\",\n \"rarity\",\n \"rash\",\n \"rat\",\n \"rate\",\n \"rather\",\n \"ratify\",\n \"ratio\",\n \"rattle\",\n \"rave\",\n \"raven\",\n \"raw\",\n \"ray\",\n \"razor\",\n \"reach\",\n \"react\",\n \"read\",\n \"reader\",\n \"ready\",\n \"real\",\n \"really\",\n \"realm\",\n \"reap\",\n \"rear\",\n \"reason\",\n \"rebel\",\n \"recall\",\n \"recent\",\n \"recess\",\n \"recipe\",\n \"reckon\",\n \"record\",\n \"recoup\",\n \"rector\",\n \"red\",\n \"redeem\",\n \"redo\",\n \"reduce\",\n \"reed\",\n \"reef\",\n \"reek\",\n \"refer\",\n \"reform\",\n \"refuge\",\n \"refuse\",\n \"regal\",\n \"regard\",\n \"regent\",\n \"regime\",\n \"region\",\n \"regret\",\n \"reign\",\n \"reject\",\n \"relate\",\n \"relax\",\n \"relay\",\n \"relic\",\n \"relief\",\n \"relish\",\n \"rely\",\n \"remain\",\n \"remark\",\n \"remedy\",\n \"remind\",\n \"remit\",\n \"remote\",\n \"remove\",\n \"renal\",\n \"render\",\n \"rent\",\n \"rental\",\n \"repair\",\n \"repeal\",\n \"repeat\",\n \"repent\",\n \"reply\",\n \"report\",\n \"rescue\",\n \"resent\",\n \"reside\",\n \"resign\",\n \"resin\",\n \"resist\",\n \"resort\",\n \"rest\",\n \"result\",\n \"resume\",\n \"retail\",\n \"retain\",\n \"retina\",\n \"retire\",\n \"return\",\n \"reveal\",\n \"review\",\n \"revise\",\n \"revive\",\n \"revolt\",\n \"reward\",\n \"rex\",\n \"rhine\",\n \"rhino\",\n \"rhyme\",\n \"rhythm\",\n \"ribbon\",\n \"rice\",\n \"rich\",\n \"rick\",\n \"rid\",\n \"ride\",\n \"rider\",\n \"ridge\",\n \"rife\",\n \"rifle\",\n \"rift\",\n \"right\",\n \"rigid\",\n \"rile\",\n \"rim\",\n \"ring\",\n \"rinse\",\n \"riot\",\n \"ripe\",\n \"ripen\",\n \"ripple\",\n \"rise\",\n \"risk\",\n \"risky\",\n \"rite\",\n \"ritual\",\n \"ritz\",\n \"rival\",\n \"river\",\n \"road\",\n \"roar\",\n \"roast\",\n \"rob\",\n \"robe\",\n \"robert\",\n \"robin\",\n \"robot\",\n \"robust\",\n \"rock\",\n \"rocket\",\n \"rocky\",\n \"rod\",\n \"rode\",\n \"rodent\",\n \"rogue\",\n \"role\",\n \"roll\",\n \"roman\",\n \"rome\",\n \"roof\",\n \"room\",\n \"root\",\n \"rope\",\n \"rose\",\n \"rosy\",\n \"rot\",\n \"rotate\",\n \"rotor\",\n \"rotten\",\n \"rouge\",\n \"rough\",\n \"round\",\n \"route\",\n \"rover\",\n \"row\",\n \"royal\",\n \"rub\",\n \"rubber\",\n \"rubble\",\n \"ruby\",\n \"rudder\",\n \"rude\",\n \"rug\",\n \"rugby\",\n \"ruin\",\n \"rule\",\n \"ruler\",\n \"rumble\",\n \"rump\",\n \"run\",\n \"rune\",\n \"rung\",\n \"runway\",\n \"rural\",\n \"rush\",\n \"russia\",\n \"rust\",\n \"rustic\",\n \"rusty\",\n \"sack\",\n \"sacred\",\n \"sad\",\n \"saddle\",\n \"sadism\",\n \"sadly\",\n \"safari\",\n \"safe\",\n \"safely\",\n \"safer\",\n \"safety\",\n \"saga\",\n \"sage\",\n \"sahara\",\n \"said\",\n \"sail\",\n \"sailor\",\n \"saint\",\n \"sake\",\n \"salad\",\n \"salary\",\n \"sale\",\n \"saline\",\n \"saliva\",\n \"salmon\",\n \"saloon\",\n \"salt\",\n \"salty\",\n \"salute\",\n \"sam\",\n \"same\",\n \"sample\",\n \"sand\",\n \"sandy\",\n \"sane\",\n \"sash\",\n \"satin\",\n \"satire\",\n \"saturn\",\n \"sauce\",\n \"saucer\",\n \"saudi\",\n \"sauna\",\n \"savage\",\n \"save\",\n \"saw\",\n \"say\",\n \"scale\",\n \"scalp\",\n \"scan\",\n \"scant\",\n \"scar\",\n \"scarce\",\n \"scare\",\n \"scarf\",\n \"scary\",\n \"scene\",\n \"scenic\",\n \"scent\",\n \"school\",\n \"scold\",\n \"scope\",\n \"score\",\n \"scorn\",\n \"scotch\",\n \"scott\",\n \"scout\",\n \"scrap\",\n \"scrape\",\n \"scream\",\n \"screen\",\n \"screw\",\n \"script\",\n \"scroll\",\n \"scrub\",\n \"scum\",\n \"sea\",\n \"seal\",\n \"seam\",\n \"seaman\",\n \"search\",\n \"season\",\n \"seat\",\n \"second\",\n \"secret\",\n \"sect\",\n \"sector\",\n \"secure\",\n \"see\",\n \"seed\",\n \"seeing\",\n \"seek\",\n \"seem\",\n \"seize\",\n \"seldom\",\n \"select\",\n \"self\",\n \"sell\",\n \"seller\",\n \"semi\",\n \"senate\",\n \"send\",\n \"senile\",\n \"senior\",\n \"sense\",\n \"sensor\",\n \"sent\",\n \"sentry\",\n \"seoul\",\n \"sequel\",\n \"serene\",\n \"serial\",\n \"series\",\n \"sermon\",\n \"serum\",\n \"serve\",\n \"server\",\n \"set\",\n \"settle\",\n \"seven\",\n \"severe\",\n \"sew\",\n \"sewage\",\n \"shabby\",\n \"shade\",\n \"shadow\",\n \"shady\",\n \"shaft\",\n \"shaggy\",\n \"shah\",\n \"shake\",\n \"shaky\",\n \"shall\",\n \"sham\",\n \"shame\",\n \"shape\",\n \"share\",\n \"shark\",\n \"sharp\",\n \"shawl\",\n \"she\",\n \"shear\",\n \"sheen\",\n \"sheep\",\n \"sheer\",\n \"sheet\",\n \"shelf\",\n \"shell\",\n \"sherry\",\n \"shield\",\n \"shift\",\n \"shine\",\n \"shiny\",\n \"ship\",\n \"shire\",\n \"shirk\",\n \"shirt\",\n \"shiver\",\n \"shock\",\n \"shoe\",\n \"shook\",\n \"shoot\",\n \"shop\",\n \"shore\",\n \"short\",\n \"shot\",\n \"should\",\n \"shout\",\n \"show\",\n \"shower\",\n \"shrank\",\n \"shrewd\",\n \"shrill\",\n \"shrimp\",\n \"shrine\",\n \"shrink\",\n \"shrub\",\n \"shrug\",\n \"shut\",\n \"shy\",\n \"shyly\",\n \"sick\",\n \"side\",\n \"siege\",\n \"sigh\",\n \"sight\",\n \"sigma\",\n \"sign\",\n \"signal\",\n \"silent\",\n \"silk\",\n \"silken\",\n \"silky\",\n \"sill\",\n \"silly\",\n \"silo\",\n \"silver\",\n \"simple\",\n \"simply\",\n \"since\",\n \"sinful\",\n \"sing\",\n \"singer\",\n \"single\",\n \"sink\",\n \"sir\",\n \"sire\",\n \"siren\",\n \"sister\",\n \"sit\",\n \"site\",\n \"sitter\",\n \"six\",\n \"sixth\",\n \"sixty\",\n \"size\",\n \"sketch\",\n \"skill\",\n \"skin\",\n \"skinny\",\n \"skip\",\n \"skirt\",\n \"skull\",\n \"sky\",\n \"slab\",\n \"slack\",\n \"slain\",\n \"slam\",\n \"slang\",\n \"slap\",\n \"slat\",\n \"slate\",\n \"slave\",\n \"sleek\",\n \"sleep\",\n \"sleepy\",\n \"sleeve\",\n \"slice\",\n \"slick\",\n \"slid\",\n \"slide\",\n \"slight\",\n \"slim\",\n \"slimy\",\n \"sling\",\n \"slip\",\n \"slit\",\n \"slogan\",\n \"slope\",\n \"sloppy\",\n \"slot\",\n \"slow\",\n \"slowly\",\n \"slug\",\n \"slum\",\n \"slump\",\n \"smack\",\n \"small\",\n \"smart\",\n \"smash\",\n \"smear\",\n \"smell\",\n \"smelly\",\n \"smelt\",\n \"smile\",\n \"smite\",\n \"smoke\",\n \"smoky\",\n \"smooth\",\n \"smug\",\n \"snack\",\n \"snail\",\n \"snake\",\n \"snap\",\n \"snatch\",\n \"sneak\",\n \"snow\",\n \"snowy\",\n \"snug\",\n \"soak\",\n \"soap\",\n \"sober\",\n \"soccer\",\n \"social\",\n \"sock\",\n \"socket\",\n \"socks\",\n \"soda\",\n \"sodden\",\n \"sodium\",\n \"sofa\",\n \"soft\",\n \"soften\",\n \"softly\",\n \"soggy\",\n \"soil\",\n \"solar\",\n \"sold\",\n \"sole\",\n \"solely\",\n \"solemn\",\n \"solid\",\n \"solo\",\n \"solve\",\n \"some\",\n \"son\",\n \"sonar\",\n \"sonata\",\n \"song\",\n \"sonic\",\n \"sony\",\n \"soon\",\n \"sooner\",\n \"soot\",\n \"soothe\",\n \"sordid\",\n \"sore\",\n \"sorrow\",\n \"sorry\",\n \"sort\",\n \"soul\",\n \"sound\",\n \"soup\",\n \"sour\",\n \"source\",\n \"soviet\",\n \"sow\",\n \"space\",\n \"spade\",\n \"spain\",\n \"span\",\n \"spare\",\n \"spark\",\n \"sparse\",\n \"spasm\",\n \"spat\",\n \"spate\",\n \"speak\",\n \"spear\",\n \"speech\",\n \"speed\",\n \"speedy\",\n \"spell\",\n \"spend\",\n \"sphere\",\n \"spice\",\n \"spicy\",\n \"spider\",\n \"spiky\",\n \"spill\",\n \"spin\",\n \"spinal\",\n \"spine\",\n \"spiral\",\n \"spirit\",\n \"spit\",\n \"spite\",\n \"splash\",\n \"split\",\n \"spoil\",\n \"spoke\",\n \"sponge\",\n \"spoon\",\n \"sport\",\n \"spot\",\n \"spouse\",\n \"spray\",\n \"spread\",\n \"spree\",\n \"spring\",\n \"sprint\",\n \"spur\",\n \"squad\",\n \"square\",\n \"squash\",\n \"squat\",\n \"squid\",\n \"stab\",\n \"stable\",\n \"stack\",\n \"staff\",\n \"stage\",\n \"stain\",\n \"stair\",\n \"stairs\",\n \"stake\",\n \"stale\",\n \"stall\",\n \"stamp\",\n \"stance\",\n \"stand\",\n \"staple\",\n \"star\",\n \"starch\",\n \"stare\",\n \"stark\",\n \"start\",\n \"starve\",\n \"state\",\n \"static\",\n \"statue\",\n \"status\",\n \"stay\",\n \"stead\",\n \"steady\",\n \"steak\",\n \"steal\",\n \"steam\",\n \"steel\",\n \"steep\",\n \"steer\",\n \"stem\",\n \"stench\",\n \"step\",\n \"stereo\",\n \"stern\",\n \"stew\",\n \"stick\",\n \"sticky\",\n \"stiff\",\n \"stifle\",\n \"stigma\",\n \"still\",\n \"sting\",\n \"stint\",\n \"stir\",\n \"stitch\",\n \"stock\",\n \"stocky\",\n \"stone\",\n \"stony\",\n \"stool\",\n \"stop\",\n \"store\",\n \"storm\",\n \"stormy\",\n \"story\",\n \"stout\",\n \"stove\",\n \"stow\",\n \"strain\",\n \"strait\",\n \"strand\",\n \"strap\",\n \"strata\",\n \"straw\",\n \"stray\",\n \"streak\",\n \"stream\",\n \"street\",\n \"stress\",\n \"strict\",\n \"stride\",\n \"strife\",\n \"strike\",\n \"string\",\n \"strip\",\n \"stripe\",\n \"strive\",\n \"stroke\",\n \"stroll\",\n \"strong\",\n \"stud\",\n \"studio\",\n \"study\",\n \"stuff\",\n \"stuffy\",\n \"stunt\",\n \"stupid\",\n \"sturdy\",\n \"style\",\n \"submit\",\n \"subtle\",\n \"subtly\",\n \"suburb\",\n \"such\",\n \"sudden\",\n \"sue\",\n \"suez\",\n \"suffer\",\n \"sugar\",\n \"suit\",\n \"suite\",\n \"suitor\",\n \"sullen\",\n \"sultan\",\n \"sum\",\n \"summer\",\n \"summit\",\n \"summon\",\n \"sun\",\n \"sunday\",\n \"sunny\",\n \"sunset\",\n \"super\",\n \"superb\",\n \"supper\",\n \"supple\",\n \"supply\",\n \"sure\",\n \"surely\",\n \"surf\",\n \"surge\",\n \"survey\",\n \"suture\",\n \"swamp\",\n \"swan\",\n \"swap\",\n \"swarm\",\n \"sway\",\n \"swear\",\n \"sweat\",\n \"sweaty\",\n \"sweden\",\n \"sweep\",\n \"sweet\",\n \"swell\",\n \"swift\",\n \"swim\",\n \"swine\",\n \"swing\",\n \"swirl\",\n \"swiss\",\n \"switch\",\n \"sword\",\n \"swore\",\n \"sydney\",\n \"symbol\",\n \"synod\",\n \"syntax\",\n \"syria\",\n \"syrup\",\n \"system\",\n \"table\",\n \"tablet\",\n \"taboo\",\n \"tacit\",\n \"tackle\",\n \"tact\",\n \"tactic\",\n \"tail\",\n \"tailor\",\n \"taiwan\",\n \"take\",\n \"tale\",\n \"talent\",\n \"talk\",\n \"tall\",\n \"tally\",\n \"tame\",\n \"tampa\",\n \"tan\",\n \"tandem\",\n \"tangle\",\n \"tank\",\n \"tap\",\n \"tape\",\n \"target\",\n \"tariff\",\n \"tarp\",\n \"tart\",\n \"tarzan\",\n \"task\",\n \"taste\",\n \"tasty\",\n \"tattoo\",\n \"taurus\",\n \"taut\",\n \"tavern\",\n \"tax\",\n \"taxi\",\n \"tea\",\n \"teach\",\n \"teak\",\n \"team\",\n \"tear\",\n \"tease\",\n \"tech\",\n \"teeth\",\n \"tell\",\n \"temper\",\n \"temple\",\n \"tempo\",\n \"tempt\",\n \"ten\",\n \"tenant\",\n \"tend\",\n \"tender\",\n \"tendon\",\n \"tennis\",\n \"tenor\",\n \"tense\",\n \"tent\",\n \"tenth\",\n \"tenure\",\n \"teresa\",\n \"term\",\n \"terror\",\n \"terse\",\n \"test\",\n \"texas\",\n \"text\",\n \"thank\",\n \"thaw\",\n \"them\",\n \"theme\",\n \"thence\",\n \"theory\",\n \"there\",\n \"these\",\n \"thesis\",\n \"they\",\n \"thick\",\n \"thief\",\n \"thigh\",\n \"thin\",\n \"thing\",\n \"think\",\n \"third\",\n \"thirst\",\n \"thirty\",\n \"this\",\n \"thomas\",\n \"thorn\",\n \"those\",\n \"though\",\n \"thread\",\n \"threat\",\n \"three\",\n \"thrill\",\n \"thrive\",\n \"throat\",\n \"throne\",\n \"throng\",\n \"throw\",\n \"thrust\",\n \"thud\",\n \"thug\",\n \"thumb\",\n \"thus\",\n \"thyme\",\n \"tibet\",\n \"tick\",\n \"ticket\",\n \"tidal\",\n \"tide\",\n \"tidy\",\n \"tie\",\n \"tier\",\n \"tiger\",\n \"tight\",\n \"tile\",\n \"till\",\n \"tilt\",\n \"timber\",\n \"time\",\n \"timid\",\n \"tin\",\n \"tiny\",\n \"tip\",\n \"tire\",\n \"tissue\",\n \"title\",\n \"toad\",\n \"toast\",\n \"today\",\n \"toe\",\n \"toilet\",\n \"token\",\n \"tokyo\",\n \"told\",\n \"toll\",\n \"tom\",\n \"tomato\",\n \"tomb\",\n \"tonal\",\n \"tone\",\n \"tongue\",\n \"tonic\",\n \"too\",\n \"took\",\n \"tool\",\n \"tooth\",\n \"top\",\n \"topaz\",\n \"topic\",\n \"torch\",\n \"torque\",\n \"torso\",\n \"tort\",\n \"toss\",\n \"total\",\n \"touch\",\n \"tough\",\n \"tour\",\n \"toward\",\n \"towel\",\n \"tower\",\n \"town\",\n \"toxic\",\n \"toxin\",\n \"toy\",\n \"trace\",\n \"track\",\n \"tract\",\n \"trade\",\n \"tragic\",\n \"trail\",\n \"train\",\n \"trait\",\n \"tram\",\n \"trance\",\n \"trap\",\n \"trauma\",\n \"travel\",\n \"tray\",\n \"tread\",\n \"treat\",\n \"treaty\",\n \"treble\",\n \"tree\",\n \"trek\",\n \"tremor\",\n \"trench\",\n \"trend\",\n \"trendy\",\n \"trial\",\n \"tribal\",\n \"tribe\",\n \"trick\",\n \"tricky\",\n \"tried\",\n \"trifle\",\n \"trim\",\n \"trio\",\n \"trip\",\n \"triple\",\n \"troop\",\n \"trophy\",\n \"trot\",\n \"trough\",\n \"trout\",\n \"truce\",\n \"truck\",\n \"true\",\n \"truly\",\n \"trunk\",\n \"trust\",\n \"truth\",\n \"try\",\n \"tube\",\n \"tumble\",\n \"tuna\",\n \"tundra\",\n \"tune\",\n \"tunic\",\n \"tunnel\",\n \"turban\",\n \"turf\",\n \"turk\",\n \"turkey\",\n \"turn\",\n \"turtle\",\n \"tutor\",\n \"tweed\",\n \"twelve\",\n \"twenty\",\n \"twice\",\n \"twin\",\n \"twist\",\n \"two\",\n \"tycoon\",\n \"tying\",\n \"type\",\n \"tyrant\",\n \"ugly\",\n \"ulcer\",\n \"ultra\",\n \"umpire\",\n \"unable\",\n \"uncle\",\n \"under\",\n \"uneasy\",\n \"unfair\",\n \"unify\",\n \"union\",\n \"unique\",\n \"unit\",\n \"unite\",\n \"unity\",\n \"unlike\",\n \"unrest\",\n \"unruly\",\n \"until\",\n \"update\",\n \"upheld\",\n \"uphill\",\n \"uphold\",\n \"upon\",\n \"upper\",\n \"uproar\",\n \"upset\",\n \"upshot\",\n \"uptake\",\n \"upturn\",\n \"upward\",\n \"urban\",\n \"urge\",\n \"urgent\",\n \"urging\",\n \"urine\",\n \"usable\",\n \"usage\",\n \"use\",\n \"useful\",\n \"user\",\n \"usual\",\n \"utmost\",\n \"utter\",\n \"vacant\",\n \"vacuum\",\n \"vague\",\n \"vain\",\n \"valet\",\n \"valid\",\n \"valley\",\n \"value\",\n \"valve\",\n \"van\",\n \"vanish\",\n \"vanity\",\n \"vary\",\n \"vase\",\n \"vast\",\n \"vat\",\n \"vault\",\n \"vector\",\n \"veil\",\n \"vein\",\n \"velvet\",\n \"vendor\",\n \"veneer\",\n \"venice\",\n \"venom\",\n \"vent\",\n \"venue\",\n \"venus\",\n \"verb\",\n \"verbal\",\n \"verge\",\n \"verify\",\n \"verity\",\n \"verse\",\n \"versus\",\n \"very\",\n \"vessel\",\n \"vest\",\n \"vet\",\n \"veto\",\n \"via\",\n \"viable\",\n \"vicar\",\n \"vice\",\n \"victim\",\n \"victor\",\n \"video\",\n \"vienna\",\n \"view\",\n \"vigil\",\n \"viking\",\n \"vile\",\n \"villa\",\n \"vine\",\n \"vinyl\",\n \"viola\",\n \"violet\",\n \"violin\",\n \"viral\",\n \"virgo\",\n \"virtue\",\n \"virus\",\n \"visa\",\n \"vision\",\n \"visit\",\n \"visual\",\n \"vital\",\n \"vivid\",\n \"vocal\",\n \"vodka\",\n \"vogue\",\n \"voice\",\n \"void\",\n \"volley\",\n \"volume\",\n \"vote\",\n \"vowel\",\n \"voyage\",\n \"vulgar\",\n \"wade\",\n \"wage\",\n \"waist\",\n \"wait\",\n \"waiter\",\n \"wake\",\n \"walk\",\n \"walker\",\n \"wall\",\n \"wallet\",\n \"walnut\",\n \"wander\",\n \"want\",\n \"war\",\n \"warden\",\n \"warm\",\n \"warmth\",\n \"warn\",\n \"warp\",\n \"warsaw\",\n \"wary\",\n \"was\",\n \"wash\",\n \"wasp\",\n \"waste\",\n \"watch\",\n \"water\",\n \"watery\",\n \"wave\",\n \"wax\",\n \"way\",\n \"weak\",\n \"weaken\",\n \"wealth\",\n \"weapon\",\n \"wear\",\n \"weary\",\n \"weave\",\n \"wedge\",\n \"wee\",\n \"weed\",\n \"week\",\n \"weekly\",\n \"weep\",\n \"weigh\",\n \"weight\",\n \"weird\",\n \"well\",\n \"were\",\n \"west\",\n \"wet\",\n \"whale\",\n \"wharf\",\n \"what\",\n \"wheat\",\n \"wheel\",\n \"when\",\n \"whence\",\n \"where\",\n \"which\",\n \"whiff\",\n \"while\",\n \"whim\",\n \"whip\",\n \"whisky\",\n \"white\",\n \"who\",\n \"whole\",\n \"wholly\",\n \"whom\",\n \"whose\",\n \"why\",\n \"wicked\",\n \"wide\",\n \"widely\",\n \"widen\",\n \"wider\",\n \"widow\",\n \"width\",\n \"wife\",\n \"wig\",\n \"wild\",\n \"wildly\",\n \"will\",\n \"willow\",\n \"wily\",\n \"win\",\n \"wind\",\n \"window\",\n \"windy\",\n \"wine\",\n \"wing\",\n \"wink\",\n \"winner\",\n \"winter\",\n \"wipe\",\n \"wire\",\n \"wisdom\",\n \"wise\",\n \"wish\",\n \"wit\",\n \"witch\",\n \"with\",\n \"within\",\n \"witty\",\n \"wizard\",\n \"woke\",\n \"wolf\",\n \"wolves\",\n \"woman\",\n \"womb\",\n \"won\",\n \"wonder\",\n \"wood\",\n \"wooden\",\n \"woods\",\n \"woody\",\n \"wool\",\n \"word\",\n \"work\",\n \"worker\",\n \"world\",\n \"worm\",\n \"worry\",\n \"worse\",\n \"worst\",\n \"worth\",\n \"worthy\",\n \"would\",\n \"wound\",\n \"wrap\",\n \"wrath\",\n \"wreath\",\n \"wreck\",\n \"wring\",\n \"wrist\",\n \"writ\",\n \"write\",\n \"writer\",\n \"wrong\",\n \"xerox\",\n \"yacht\",\n \"yale\",\n \"yard\",\n \"yarn\",\n \"yeah\",\n \"year\",\n \"yeard\",\n \"yeast\",\n \"yellow\",\n \"yet\",\n \"yield\",\n \"yogurt\",\n \"yolk\",\n \"you\",\n \"young\",\n \"your\",\n \"youth\",\n \"zaire\",\n \"zeal\",\n \"zebra\",\n \"zenith\",\n \"zero\",\n \"zeus\",\n \"zigzag\",\n \"zinc\",\n \"zombie\",\n \"zone\",\n];\n","export default [\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];\n","/**\n * @param {Uint8Array} data\n * @returns {Promise}\n */\nexport async function digest(data) {\n // https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/digest\n return new Uint8Array(await crypto.subtle.digest(\"SHA-256\", data));\n}\n","import * as hmac from \"../primitive/hmac.js\";\nimport * as pbkdf2 from \"./pbkdf2.js\";\n\n/**\n * @param {string[]} words\n * @param {string} passphrase\n * @returns {Promise}\n */\nexport async function toSeed(words, passphrase) {\n const input = words.join(\" \");\n const salt = `mnemonic${passphrase}`.normalize(\"NFKD\");\n\n return pbkdf2.deriveKey(hmac.HashAlgorithm.Sha512, input, salt, 2048, 64);\n}\n","import BigNumber from \"bignumber.js\";\nimport * as sha256 from \"../primitive/sha256.js\";\n\n/**\n * @param {string[]} words\n * @param {string[]} wordlist\n * @returns {[Uint8Array, number]}\n */\nexport function legacy1(words, wordlist) {\n const indicies = words.map((word) => wordlist.indexOf(word.toLowerCase()));\n\n const data = convertRadix(indicies, wordlist.length, 256, 33);\n const checksum = data[data.length - 1];\n const result = new Uint8Array(data.length - 1);\n\n for (let i = 0; i < data.length - 1; i += 1) {\n result[i] = data[i] ^ checksum;\n }\n\n return [result, checksum];\n}\n\n/**\n * @param {string[]} words\n * @param {string[]} wordlist\n * @returns {Promise}\n */\nexport async function legacy2(words, wordlist) {\n const concatBitsLen = words.length * 11;\n /** @type {boolean[]} */\n const concatBits = [];\n concatBits.fill(false, 0, concatBitsLen);\n\n for (const [wordIndex, word] of words.entries()) {\n const index = wordlist.indexOf(word.toLowerCase());\n\n if (index < 0) {\n throw new Error(`Word not found in wordlist: ${word}`);\n }\n\n for (let i = 0; i < 11; i += 1) {\n concatBits[wordIndex * 11 + i] = (index & (1 << (10 - i))) !== 0;\n }\n }\n\n const checksumBitsLen = concatBitsLen / 33;\n const entropyBitsLen = concatBitsLen - checksumBitsLen;\n const entropy = new Uint8Array(entropyBitsLen / 8);\n\n for (let i = 0; i < entropy.length; i += 1) {\n for (let j = 0; j < 8; j += 1) {\n if (concatBits[i * 8 + j]) {\n entropy[i] |= 1 << (7 - j);\n }\n }\n }\n\n // Checksum validation\n const hash = await sha256.digest(entropy);\n const hashBits = bytesToBits(hash);\n\n for (let i = 0; i < checksumBitsLen; i += 1) {\n if (concatBits[entropyBitsLen + i] !== hashBits[i]) {\n throw new Error(\"Checksum mismatch\");\n }\n }\n\n return entropy;\n}\n\n/**\n * @param {Uint8Array} data\n * @returns {number}\n */\nexport function crc8(data) {\n let crc = 0xff;\n\n for (let i = 0; i < data.length - 1; i += 1) {\n crc ^= data[i];\n for (let j = 0; j < 8; j += 1) {\n crc = (crc >>> 1) ^ ((crc & 1) === 0 ? 0 : 0xb2);\n }\n }\n\n return crc ^ 0xff;\n}\n\n/**\n * @param {number[]} nums\n * @param {number} fromRadix\n * @param {number} toRadix\n * @param {number} toLength\n * @returns {Uint8Array}\n */\nexport function convertRadix(nums, fromRadix, toRadix, toLength) {\n let num = new BigNumber(0);\n\n for (const element of nums) {\n num = num.times(fromRadix);\n num = num.plus(element);\n }\n\n const result = new Uint8Array(toLength);\n\n for (let i = toLength - 1; i >= 0; i -= 1) {\n const tem = num.dividedToIntegerBy(toRadix);\n const rem = num.modulo(toRadix);\n num = tem;\n result[i] = rem.toNumber();\n }\n\n return result;\n}\n\n/**\n * @param {Uint8Array} data\n * @returns {boolean[]}\n */\nexport function bytesToBits(data) {\n /** @type {boolean[]} */\n const bits = [];\n bits.fill(false, 0, data.length * 8);\n\n for (let i = 0; i < data.length; i += 1) {\n for (let j = 0; j < 8; j += 1) {\n bits[i * 8 + j] = (data[i] & (1 << (7 - j))) !== 0;\n }\n }\n\n return bits;\n}\n","import CACHE from \"./Cache.js\";\nimport Ed25519PrivateKey from \"./Ed25519PrivateKey.js\";\nimport BadMnemonicError from \"./BadMnemonicError.js\";\nimport BadMnemonicReason from \"./BadMnemonicReason.js\";\nimport legacyWords from \"./words/legacy.js\";\nimport bip39Words from \"./words/bip39.js\";\nimport nacl from \"tweetnacl\";\nimport * as sha256 from \"./primitive/sha256.js\";\nimport * as hmac from \"./primitive/hmac.js\";\nimport * as slip10 from \"./primitive/slip10.js\";\nimport * as bip32 from \"./primitive/bip32.js\";\nimport * as bip39 from \"./primitive/bip39.js\";\nimport * as entropy from \"./util/entropy.js\";\nimport * as random from \"./primitive/random.js\";\nimport EcdsaPrivateKey from \"./EcdsaPrivateKey.js\";\nimport PrivateKey from \"./PrivateKey.js\";\nimport * as ecdsa from \"./primitive/ecdsa.js\";\n\nconst ED25519_SEED_TEXT = \"ed25519 seed\";\nconst ECDSA_SEED_TEXT = \"Bitcoin seed\";\n\nexport const HARDENED = 0x80000000;\n\n/// m/44'/3030'/0'/0' - All paths in EdDSA derivation are implicitly hardened.\nexport const HEDERA_PATH = [44, 3030, 0, 0];\n\n/// m/44'/3030'/0'/0\nexport const SLIP44_ECDSA_HEDERA_PATH = [\n 44 | HARDENED,\n 3030 | HARDENED,\n 0 | HARDENED,\n 0,\n];\n\n/// m/44'/60'/0'/0\nexport const SLIP44_ECDSA_ETH_PATH = [\n 44 | HARDENED,\n 60 | HARDENED,\n 0 | HARDENED,\n 0,\n 0,\n];\n\n/**\n * Multi-word mnemonic phrase (BIP-39).\n *\n * Compatible with the official Hedera mobile\n * wallets (24-words or 22-words) and BRD (12-words).\n */\nexport default class Mnemonic {\n /**\n * @param {object} props\n * @param {string[]} props.words\n * @throws {BadMnemonicError}\n * @hideconstructor\n * @private\n */\n constructor({ words }) {\n this.words = words;\n }\n\n /**\n * Returns a new random 24-word mnemonic from the BIP-39\n * standard English word list.\n * @returns {Promise}\n */\n static generate() {\n return Mnemonic._generate(24);\n }\n\n /**\n * Returns a new random 12-word mnemonic from the BIP-39\n * standard English word list.\n * @returns {Promise}\n */\n static generate12() {\n return Mnemonic._generate(12);\n }\n\n /**\n * @param {number} length\n * @returns {Promise}\n */\n static async _generate(length) {\n // only 12-word or 24-word lengths are supported\n let neededEntropy;\n\n if (length === 12) neededEntropy = 16;\n else if (length === 24) neededEntropy = 32;\n else {\n throw new Error(\n `unsupported phrase length ${length}, only 12 or 24 are supported`,\n );\n }\n\n // inlined from (ISC) with heavy alternations for modern crypto\n // https://github.com/bitcoinjs/bip39/blob/8461e83677a1d2c685d0d5a9ba2a76bd228f74c6/ts_src/index.ts#L125\n const seed = await random.bytesAsync(neededEntropy);\n const entropyBits = bytesToBinary(Array.from(seed));\n const checksumBits = await deriveChecksumBits(seed);\n const bits = entropyBits + checksumBits;\n const chunks = bits.match(/(.{1,11})/g);\n\n const words = (chunks != null ? chunks : []).map(\n (binary) => bip39Words[binaryToByte(binary)],\n );\n\n return new Mnemonic({ words });\n }\n\n /**\n * Construct a mnemonic from a list of words. Handles 12, 22 (legacy), and 24 words.\n *\n * An exception of BadMnemonicError will be thrown if the mnemonic\n * contains unknown words or fails the checksum. An invalid mnemonic\n * can still be used to create private keys, the exception will\n * contain the failing mnemonic in case you wish to ignore the\n * validation error and continue.\n * @param {string[]} words\n * @throws {BadMnemonicError}\n * @returns {Promise}\n */\n static fromWords(words) {\n return new Mnemonic({\n words,\n })._validate();\n }\n\n /**\n * @deprecated - Use `toStandardEd25519PrivateKey()` or `toStandardECDSAsecp256k1PrivateKey()` instead\n * Recover a private key from this mnemonic phrase, with an\n * optional passphrase.\n * @param {string} [passphrase]\n * @returns {Promise}\n */\n toPrivateKey(passphrase = \"\") {\n // eslint-disable-next-line deprecation/deprecation\n return this.toEd25519PrivateKey(passphrase);\n }\n\n /**\n * @deprecated - Use `toStandardEd25519PrivateKey()` or `toStandardECDSAsecp256k1PrivateKey()` instead\n * Recover an Ed25519 private key from this mnemonic phrase, with an\n * optional passphrase.\n * @param {string} [passphrase]\n * @param {number[]} [path]\n * @returns {Promise}\n */\n async toEd25519PrivateKey(passphrase = \"\", path = HEDERA_PATH) {\n let { keyData, chainCode } = await this._toKeyData(\n passphrase,\n ED25519_SEED_TEXT,\n );\n\n for (const index of path) {\n ({ keyData, chainCode } = await slip10.derive(\n keyData,\n chainCode,\n index,\n ));\n }\n\n const keyPair = nacl.sign.keyPair.fromSeed(keyData);\n\n if (CACHE.privateKeyConstructor == null) {\n throw new Error(\"PrivateKey not found in cache\");\n }\n\n return CACHE.privateKeyConstructor(\n new Ed25519PrivateKey(keyPair, chainCode),\n );\n }\n\n /**\n * Recover an Ed25519 private key from this mnemonic phrase, with an\n * optional passphrase.\n * @param {string} [passphrase]\n * @param {number} [index]\n * @returns {Promise}\n */\n async toStandardEd25519PrivateKey(passphrase = \"\", index) {\n const seed = await Mnemonic.toSeed(this.words, passphrase);\n let derivedKey = await PrivateKey.fromSeedED25519(seed);\n index = index == null ? 0 : index;\n\n for (const currentIndex of [44, 3030, 0, 0, index]) {\n derivedKey = await derivedKey.derive(currentIndex);\n }\n\n return derivedKey;\n }\n\n /**\n * @deprecated - Use `toStandardEd25519PrivateKey()` or `toStandardECDSAsecp256k1PrivateKey()` instead\n * Recover an ECDSA private key from this mnemonic phrase, with an\n * optional passphrase.\n * @param {string} [passphrase]\n * @param {number[]} [path]\n * @returns {Promise}\n */\n async toEcdsaPrivateKey(passphrase = \"\", path = HEDERA_PATH) {\n let { keyData, chainCode } = await this._toKeyData(\n passphrase,\n ECDSA_SEED_TEXT,\n );\n\n for (const index of path) {\n ({ keyData, chainCode } = await bip32.derive(\n keyData,\n chainCode,\n index,\n ));\n }\n\n if (CACHE.privateKeyConstructor == null) {\n throw new Error(\"PrivateKey not found in cache\");\n }\n\n return CACHE.privateKeyConstructor(\n new EcdsaPrivateKey(ecdsa.fromBytes(keyData), chainCode),\n );\n }\n\n /**\n * Recover an ECDSA private key from this mnemonic phrase, with an\n * optional passphrase.\n * @param {string} [passphrase]\n * @param {number} [index]\n * @returns {Promise}\n */\n async toStandardECDSAsecp256k1PrivateKey(passphrase = \"\", index) {\n const seed = await Mnemonic.toSeed(this.words, passphrase);\n let derivedKey = await PrivateKey.fromSeedECDSAsecp256k1(seed);\n index = index == null ? 0 : index;\n\n for (const currentIndex of [\n bip32.toHardenedIndex(44),\n bip32.toHardenedIndex(3030),\n bip32.toHardenedIndex(0),\n 0,\n index,\n ]) {\n derivedKey = await derivedKey.derive(currentIndex);\n }\n\n return derivedKey;\n }\n\n /**\n * @param {string[]} words\n * @param {string} passphrase\n * @returns {Promise}\n */\n static async toSeed(words, passphrase) {\n return await bip39.toSeed(words, passphrase);\n }\n\n /**\n * @param {string} passphrase\n * @param {string} seedText\n * @returns {Promise<{ keyData: Uint8Array; chainCode: Uint8Array }>} seedText\n */\n async _toKeyData(passphrase, seedText) {\n const seed = await bip39.toSeed(this.words, passphrase);\n const digest = await hmac.hash(\n hmac.HashAlgorithm.Sha512,\n seedText,\n seed,\n );\n\n return {\n keyData: digest.subarray(0, 32),\n chainCode: digest.subarray(32),\n };\n }\n\n /**\n * Recover a mnemonic phrase from a string, splitting on spaces. Handles 12, 22 (legacy), and 24 words.\n * @param {string} mnemonic\n * @returns {Promise}\n */\n static async fromString(mnemonic) {\n return Mnemonic.fromWords(mnemonic.split(/\\s|,/));\n }\n\n /**\n * @returns {Promise}\n * @private\n */\n async _validate() {\n //NOSONAR\n // Validate that this is a valid BIP-39 mnemonic\n // as generated by BIP-39's rules.\n\n // Technically, invalid mnemonics can still be used to generate valid private keys,\n // but if they became invalid due to user error then it will be difficult for the user\n // to tell the difference unless they compare the generated keys.\n\n // During validation, the following conditions are checked in order\n\n // 1)) 24 or 12 words\n\n // 2) All strings in {@link this.words} exist in the BIP-39\n // standard English word list (no normalization is done)\n\n // 3) The calculated checksum for the mnemonic equals the\n // checksum encoded in the mnemonic\n\n // If words count is 22, it means that this is a legacy private key\n if (this.words.length === 22) {\n const unknownWordIndices = this.words.reduce(\n (/** @type {number[]} */ unknowns, word, index) =>\n legacyWords.includes(word.toLowerCase())\n ? unknowns\n : [...unknowns, index],\n [],\n );\n\n if (unknownWordIndices.length > 0) {\n throw new BadMnemonicError(\n this,\n BadMnemonicReason.UnknownWords,\n unknownWordIndices,\n );\n }\n\n const [seed, checksum] = entropy.legacy1(this.words, legacyWords);\n const newChecksum = entropy.crc8(seed);\n\n if (checksum !== newChecksum) {\n throw new BadMnemonicError(\n this,\n BadMnemonicReason.ChecksumMismatch,\n [],\n );\n }\n } else {\n if (!(this.words.length === 12 || this.words.length === 24)) {\n throw new BadMnemonicError(\n this,\n BadMnemonicReason.BadLength,\n [],\n );\n }\n\n const unknownWordIndices = this.words.reduce(\n (/** @type {number[]} */ unknowns, word, index) =>\n bip39Words.includes(word) ? unknowns : [...unknowns, index],\n [],\n );\n\n if (unknownWordIndices.length > 0) {\n throw new BadMnemonicError(\n this,\n BadMnemonicReason.UnknownWords,\n unknownWordIndices,\n );\n }\n\n // FIXME: calculate checksum and compare\n // https://github.com/bitcoinjs/bip39/blob/master/ts_src/index.ts#L112\n\n const bits = this.words\n .map((word) => {\n return bip39Words\n .indexOf(word)\n .toString(2)\n .padStart(11, \"0\");\n })\n .join(\"\");\n\n const dividerIndex = Math.floor(bits.length / 33) * 32;\n const entropyBits = bits.slice(0, dividerIndex);\n const checksumBits = bits.slice(dividerIndex);\n const entropyBitsRegex = entropyBits.match(/(.{1,8})/g);\n const entropyBytes = /** @type {RegExpMatchArray} */ (\n entropyBitsRegex\n ).map(binaryToByte);\n\n const newChecksum = await deriveChecksumBits(\n Uint8Array.from(entropyBytes),\n );\n\n if (newChecksum !== checksumBits) {\n throw new BadMnemonicError(\n this,\n BadMnemonicReason.ChecksumMismatch,\n [],\n );\n }\n }\n\n return this;\n }\n\n /**\n * @returns {Promise}\n */\n async toLegacyPrivateKey() {\n let seed;\n if (this.words.length === 22) {\n [seed] = entropy.legacy1(this.words, legacyWords);\n } else {\n seed = await entropy.legacy2(this.words, bip39Words);\n }\n\n if (CACHE.privateKeyFromBytes == null) {\n throw new Error(\"PrivateKey not found in cache\");\n }\n\n return CACHE.privateKeyFromBytes(seed);\n }\n\n /**\n * @returns {string}\n */\n toString() {\n return this.words.join(\" \");\n }\n}\n\n/**\n * @param {string} bin\n * @returns {number}\n */\nfunction binaryToByte(bin) {\n return parseInt(bin, 2);\n}\n\n/**\n * @param {number[]} bytes\n * @returns {string}\n */\nfunction bytesToBinary(bytes) {\n return bytes.map((x) => x.toString(2).padStart(8, \"0\")).join(\"\");\n}\n\n/**\n * @param {Uint8Array} entropyBuffer\n * @returns {Promise}\n */\nasync function deriveChecksumBits(entropyBuffer) {\n const ENT = entropyBuffer.length * 8;\n const CS = ENT / 32;\n const hash = await sha256.digest(entropyBuffer);\n\n return bytesToBinary(Array.from(hash)).slice(0, CS);\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\n/**\n * A simple efficient function for comparing byte arrays\n *\n * @param {Uint8Array} array1\n * @param {Uint8Array} array2\n * @returns {boolean}\n */\nexport function arrayEqual(array1, array2) {\n if (array1 === array2) {\n return true;\n }\n\n if (array1.byteLength !== array2.byteLength) {\n return false;\n }\n\n const view1 = new DataView(\n array1.buffer,\n array1.byteOffset,\n array1.byteLength,\n );\n const view2 = new DataView(\n array2.buffer,\n array2.byteOffset,\n array2.byteLength,\n );\n\n let i = array1.byteLength;\n\n while (i--) {\n if (view1.getUint8(i) !== view2.getUint8(i)) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * @param {Uint8Array} array\n * @param {Uint8Array} arrayPrefix\n * @returns {boolean}\n */\nexport function arrayStartsWith(array, arrayPrefix) {\n if (array.byteLength < arrayPrefix.byteLength) {\n return false;\n }\n\n let i = arrayPrefix.byteLength;\n\n while (i--) {\n if (array[i] !== arrayPrefix[i]) {\n return false;\n }\n }\n\n return true;\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\n/**\n * @typedef {import(\"./contract/ContractId.js\").default} ContractId\n * @typedef {import(\"./account/AccountId.js\").default} AccountId\n * @typedef {import(\"./KeyList.js\").default} KeyList\n * @typedef {import(\"./PublicKey.js\").default} PublicKey\n * @typedef {import(\"./PrivateKey.js\").default} PrivateKey\n * @typedef {import(\"./Mnemonic.js\").default} Mnemonic\n * @typedef {import(\"./EvmAddress.js\").default} EvmAddress\n * @typedef {import(\"./EthereumTransactionData.js\").default} EthereumTransactionData\n * @typedef {import(\"./transaction/TransactionReceiptQuery.js\").default} TransactionReceiptQuery\n * @typedef {import(\"./transaction/TransactionRecordQuery.js\").default} TransactionRecordQuery\n * @typedef {import(\"./network/AddressBookQuery.js\").default} AddressBookQuery\n */\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.IKey} HashgraphProto.proto.IKey\n * @typedef {import(\"@hashgraph/proto\").proto.IKeyList} HashgraphProto.proto.IKeyList\n * @typedef {import(\"@hashgraph/proto\").proto.IThresholdKey} HashgraphProto.proto.IThresholdKey\n * @typedef {import(\"@hashgraph/proto\").proto.IContractID} HashgraphProto.proto.IContractID\n */\n\n/**\n * @namespace cryptography\n * @typedef {import(\"@hashgraph/cryptography\").PrivateKey} cryptography.PrivateKey\n * @typedef {import(\"@hashgraph/cryptography\").Mnemonic} cryptography.Mnemonic\n */\n\n/**\n * @template {object} ProtobufT\n * @template {object} SdkT\n * @typedef {{ (proto: ProtobufT): SdkT }} FromProtobufKeyFuncT\n */\n\n/**\n * This variable is strictly designed to prevent cyclic dependencies.\n */\nclass Cache {\n constructor() {\n /** @type {number} */\n this._timeDrift = 0;\n\n /** @type {FromProtobufKeyFuncT | null} */\n this._contractId = null;\n\n /** @type {FromProtobufKeyFuncT | null} */\n this._keyList = null;\n\n /** @type {FromProtobufKeyFuncT | null} */\n this._thresholdKey = null;\n\n /** @type {FromProtobufKeyFuncT | null} */\n this._publicKeyED25519 = null;\n\n /** @type {FromProtobufKeyFuncT | null} */\n this._publicKeyECDSA = null;\n\n /** @type {((key: cryptography.PrivateKey) => PrivateKey) | null} */\n this._privateKeyConstructor = null;\n\n /** @type {((key: cryptography.Mnemonic) => Mnemonic) | null} */\n this._mnemonicFromString = null;\n\n /** @type {((shard: Long | number, realm: Long | number, key: PublicKey) => AccountId) | null} */\n this._accountIdConstructor = null;\n\n /** @type {FromProtobufKeyFuncT | null} */\n this._delegateContractId = null;\n\n /** @type {FromProtobufKeyFuncT | null} */\n this._evmAddress = null;\n\n /** @type {((bytes: Uint8Array) => EthereumTransactionData) | null} */\n this._ethereumTransactionDataLegacyFromBytes = null;\n\n /** @type {((bytes: Uint8Array) => EthereumTransactionData) | null} */\n this._ethereumTransactionDataEip1559FromBytes = null;\n\n /** @type {((bytes: Uint8Array) => EthereumTransactionData) | null} */\n this._ethereumTransactionDataEip2930FromBytes = null;\n\n /** @type {(() => TransactionReceiptQuery) | null} */\n this._transactionReceiptQueryConstructor = null;\n\n /** @type {(() => TransactionRecordQuery) | null} */\n this._transactionRecordQueryConstructor = null;\n }\n\n /**\n * @param {number} timeDrift\n */\n setTimeDrift(timeDrift) {\n this._timeDrift = timeDrift;\n }\n\n /**\n * @returns {number}\n */\n get timeDrift() {\n if (this._timeDrift == null) {\n throw new Error(\"Cache.timeDrift was used before it was set\");\n }\n\n return this._timeDrift;\n }\n\n /**\n * @param {FromProtobufKeyFuncT} contractId\n */\n setContractId(contractId) {\n this._contractId = contractId;\n }\n\n /**\n * @returns {FromProtobufKeyFuncT}\n */\n get contractId() {\n if (this._contractId == null) {\n throw new Error(\"Cache.contractId was used before it was set\");\n }\n\n return this._contractId;\n }\n\n /**\n * @param {FromProtobufKeyFuncT} keyList\n */\n setKeyList(keyList) {\n this._keyList = keyList;\n }\n\n /**\n * @returns {FromProtobufKeyFuncT}\n */\n get keyList() {\n if (this._keyList == null) {\n throw new Error(\"Cache.keyList was used before it was set\");\n }\n\n return this._keyList;\n }\n\n /**\n * @param {FromProtobufKeyFuncT} thresholdKey\n */\n setThresholdKey(thresholdKey) {\n this._thresholdKey = thresholdKey;\n }\n\n /**\n * @returns {FromProtobufKeyFuncT}\n */\n get thresholdKey() {\n if (this._thresholdKey == null) {\n throw new Error(\"Cache.thresholdKey was used before it was set\");\n }\n\n return this._thresholdKey;\n }\n\n /**\n * @param {FromProtobufKeyFuncT} publicKeyED25519\n */\n setPublicKeyED25519(publicKeyED25519) {\n this._publicKeyED25519 = publicKeyED25519;\n }\n\n /**\n * @returns {FromProtobufKeyFuncT}\n */\n get publicKeyED25519() {\n if (this._publicKeyED25519 == null) {\n throw new Error(\n \"Cache.publicKeyED25519 was used before it was set\",\n );\n }\n\n return this._publicKeyED25519;\n }\n\n /**\n * @param {FromProtobufKeyFuncT} publicKeyECDSA\n */\n setPublicKeyECDSA(publicKeyECDSA) {\n this._publicKeyECDSA = publicKeyECDSA;\n }\n\n /**\n * @returns {FromProtobufKeyFuncT}\n */\n get publicKeyECDSA() {\n if (this._publicKeyECDSA == null) {\n throw new Error(\"Cache.publicKeyECDSA was used before it was set\");\n }\n\n return this._publicKeyECDSA;\n }\n\n /**\n * @param {((key: cryptography.PrivateKey) => PrivateKey)} privateKeyConstructor\n */\n setPrivateKeyConstructor(privateKeyConstructor) {\n this._privateKeyConstructor = privateKeyConstructor;\n }\n\n /**\n * @returns {((key: cryptography.PrivateKey) => PrivateKey)}\n */\n get privateKeyConstructor() {\n if (this._privateKeyConstructor == null) {\n throw new Error(\n \"Cache.privateKeyConstructor was used before it was set\",\n );\n }\n\n return this._privateKeyConstructor;\n }\n\n /**\n * @param {((key: cryptography.Mnemonic) => Mnemonic)} mnemonicFromString\n */\n setMnemonicFromString(mnemonicFromString) {\n this._mnemonicFromString = mnemonicFromString;\n }\n\n /**\n * @returns {((key: cryptography.PrivateKey) => PrivateKey)}\n */\n get mnemonicFromString() {\n if (this._mnemonicFromString == null) {\n throw new Error(\n \"Cache.mnemonicFromString was used before it was set\",\n );\n }\n\n return this.mnemonicFromString;\n }\n\n /**\n * @param {((shard: Long | number, realm: Long | number, key: PublicKey) => AccountId)} accountIdConstructor\n */\n setAccountIdConstructor(accountIdConstructor) {\n this._accountIdConstructor = accountIdConstructor;\n }\n\n /**\n * @returns {((shard: Long | number, realm: Long | number, key: PublicKey) => AccountId)}\n */\n get accountIdConstructor() {\n if (this._accountIdConstructor == null) {\n throw new Error(\n \"Cache.accountIdConstructor was used before it was set\",\n );\n }\n\n return this._accountIdConstructor;\n }\n\n /**\n * @param {FromProtobufKeyFuncT} delegateContractId\n */\n setDelegateContractId(delegateContractId) {\n this._delegateContractId = delegateContractId;\n }\n\n /**\n * @returns {FromProtobufKeyFuncT}\n */\n get delegateContractId() {\n if (this._delegateContractId == null) {\n throw new Error(\n \"Cache.delegateContractId was used before it was set\",\n );\n }\n\n return this._delegateContractId;\n }\n\n /**\n * @param {FromProtobufKeyFuncT} evmAddress\n */\n setEvmAddress(evmAddress) {\n this._evmAddress = evmAddress;\n }\n\n /**\n * @returns {FromProtobufKeyFuncT}\n */\n get evmAddress() {\n if (this._evmAddress == null) {\n throw new Error(\"Cache.evmAddress was used before it was set\");\n }\n\n return this._evmAddress;\n }\n\n /**\n * @param {((bytes: Uint8Array) => EthereumTransactionData)} ethereumTransactionDataLegacyFromBytes\n */\n setEthereumTransactionDataLegacyFromBytes(\n ethereumTransactionDataLegacyFromBytes,\n ) {\n this._ethereumTransactionDataLegacyFromBytes =\n ethereumTransactionDataLegacyFromBytes;\n }\n\n /**\n * @returns {((bytes: Uint8Array) => EthereumTransactionData)}\n */\n get ethereumTransactionDataLegacyFromBytes() {\n if (this._ethereumTransactionDataLegacyFromBytes == null) {\n throw new Error(\n \"Cache.ethereumTransactionDataLegacyFromBytes was used before it was set\",\n );\n }\n\n return this._ethereumTransactionDataLegacyFromBytes;\n }\n\n /**\n * @param {((bytes: Uint8Array) => EthereumTransactionData)} ethereumTransactionDataEip1559FromBytes\n */\n setEthereumTransactionDataEip1559FromBytes(\n ethereumTransactionDataEip1559FromBytes,\n ) {\n this._ethereumTransactionDataEip1559FromBytes =\n ethereumTransactionDataEip1559FromBytes;\n }\n\n /**\n * @returns {((bytes: Uint8Array) => EthereumTransactionData)}\n */\n get ethereumTransactionDataEip1559FromBytes() {\n if (this._ethereumTransactionDataEip1559FromBytes == null) {\n throw new Error(\n \"Cache.ethereumTransactionDataEip1559FromBytes was used before it was set\",\n );\n }\n\n return this._ethereumTransactionDataEip1559FromBytes;\n }\n\n /**\n * @param {((bytes: Uint8Array) => EthereumTransactionData)} ethereumTransactionDataEip2930FromBytes\n */\n setEthereumTransactionDataEip2930FromBytes(\n ethereumTransactionDataEip2930FromBytes,\n ) {\n this._ethereumTransactionDataEip2930FromBytes =\n ethereumTransactionDataEip2930FromBytes;\n }\n\n /**\n * @returns {((bytes: Uint8Array) => EthereumTransactionData)}\n */\n get ethereumTransactionDataEip2930FromBytes() {\n if (this._ethereumTransactionDataEip2930FromBytes == null) {\n throw new Error(\n \"Cache.ethereumTransactionDataEip2930FromBytes was used before it was set\",\n );\n }\n\n return this._ethereumTransactionDataEip2930FromBytes;\n }\n\n /**\n * @param {(() => TransactionReceiptQuery)} transactionReceiptQueryConstructor\n */\n setTransactionReceiptQueryConstructor(transactionReceiptQueryConstructor) {\n this._transactionReceiptQueryConstructor =\n transactionReceiptQueryConstructor;\n }\n\n /**\n * @returns {(() => TransactionReceiptQuery)}\n */\n get transactionReceiptQueryConstructor() {\n if (this._transactionReceiptQueryConstructor == null) {\n throw new Error(\n \"Cache.transactionReceiptQueryConstructor was used before it was set\",\n );\n }\n\n return this._transactionReceiptQueryConstructor;\n }\n\n /**\n * @param {(() => TransactionRecordQuery)} transactionRecordQueryConstructor\n */\n setTransactionRecordQueryConstructor(transactionRecordQueryConstructor) {\n this._transactionRecordQueryConstructor =\n transactionRecordQueryConstructor;\n }\n\n /**\n * @returns {(() => TransactionRecordQuery)}\n */\n get transactionRecordQueryConstructor() {\n if (this._transactionRecordQueryConstructor == null) {\n throw new Error(\n \"Cache.transactionRecordQueryConstructor was used before it was set\",\n );\n }\n\n return this._transactionRecordQueryConstructor;\n }\n\n /**\n * @param {() => AddressBookQuery} addressBookQueryConstructor\n */\n setAddressBookQueryConstructor(addressBookQueryConstructor) {\n this._addressBookQueryConstructor = addressBookQueryConstructor;\n }\n\n /**\n * @returns {() => AddressBookQuery}\n */\n get addressBookQueryConstructor() {\n if (this._addressBookQueryConstructor == null) {\n throw new Error(\n \"Cache.addressBookQueryConstructor was used before it was set\",\n );\n }\n\n return this._addressBookQueryConstructor;\n }\n}\n\nconst CACHE = new Cache();\n\nexport default CACHE;\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport CACHE from \"./Cache.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.IKey} HashgraphProto.proto.IKey\n */\n\nexport default class Key {\n /**\n * @internal\n * @abstract\n * @returns {HashgraphProto.proto.IKey}\n */\n // eslint-disable-next-line jsdoc/require-returns-check\n _toProtobufKey() {\n throw new Error(\"not implemented\");\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.IKey} key\n * @returns {Key}\n */\n static _fromProtobufKey(key) {\n if (key.contractID != null) {\n return CACHE.contractId(key.contractID);\n }\n\n if (key.delegatableContractId != null) {\n return CACHE.delegateContractId(key.delegatableContractId);\n }\n\n if (key.ed25519 != null && key.ed25519.byteLength > 0) {\n return CACHE.publicKeyED25519(key.ed25519);\n }\n\n if (key.ECDSASecp256k1 != null && key.ECDSASecp256k1.byteLength > 0) {\n return CACHE.publicKeyECDSA(key.ECDSASecp256k1);\n }\n\n if (key.thresholdKey != null && key.thresholdKey.threshold != null) {\n return CACHE.thresholdKey(key.thresholdKey);\n }\n\n if (key.keyList != null) {\n return CACHE.keyList(key.keyList);\n }\n\n // @ts-ignore\n return null;\n\n /* throw new Error(\n `(BUG) keyFromProtobuf: not implemented key case: ${JSON.stringify(\n key\n )}`\n ); */\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport * as cryptography from \"@hashgraph/cryptography\";\nimport { arrayEqual } from \"./array.js\";\nimport Key from \"./Key.js\";\nimport CACHE from \"./Cache.js\";\n\n/**\n * @typedef {import(\"./transaction/Transaction.js\").default} Transaction\n * @typedef {import(\"./account/AccountId.js\").default} AccountId\n */\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.IKey} HashgraphProto.proto.IKey\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ISignaturePair} HashgraphProto.proto.ISignaturePair\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HashgraphProto.proto.ISignedTransaction\n */\n\nexport default class PublicKey extends Key {\n /**\n * @internal\n * @hideconstructor\n * @param {cryptography.PublicKey} key\n */\n constructor(key) {\n super();\n\n this._key = key;\n }\n\n /**\n * @param {Uint8Array} data\n * @returns {PublicKey}\n */\n static fromBytes(data) {\n return new PublicKey(cryptography.PublicKey.fromBytes(data));\n }\n\n /**\n * @param {Uint8Array} data\n * @returns {PublicKey}\n */\n static fromBytesED25519(data) {\n return new PublicKey(cryptography.PublicKey.fromBytesED25519(data));\n }\n\n /**\n * @param {Uint8Array} data\n * @returns {PublicKey}\n */\n static fromBytesECDSA(data) {\n return new PublicKey(cryptography.PublicKey.fromBytesECDSA(data));\n }\n\n /**\n * Parse a public key from a string of hexadecimal digits.\n *\n * The public key may optionally be prefixed with\n * the DER header.\n *\n * @param {string} text\n * @returns {PublicKey}\n */\n static fromString(text) {\n return new PublicKey(cryptography.PublicKey.fromString(text));\n }\n\n /**\n * Parse an ECDSA public key from a string of hexadecimal digits.\n *\n * @param {string} text\n * @returns {PublicKey}\n */\n static fromStringECDSA(text) {\n return new PublicKey(cryptography.PublicKey.fromStringECDSA(text));\n }\n\n /**\n * Parse an ED25519 public key from a string of hexadecimal digits.\n *\n * @param {string} text\n * @returns {PublicKey}\n */\n static fromStringED25519(text) {\n return new PublicKey(cryptography.PublicKey.fromStringED25519(text));\n }\n\n /**\n * Verify a signature on a message with this public key.\n *\n * @param {Uint8Array} message\n * @param {Uint8Array} signature\n * @returns {boolean}\n */\n verify(message, signature) {\n return this._key.verify(message, signature);\n }\n\n /**\n * @param {Transaction} transaction\n * @returns {boolean}\n */\n verifyTransaction(transaction) {\n transaction._requireFrozen();\n\n if (!transaction.isFrozen()) {\n transaction.freeze();\n }\n\n for (const signedTransaction of transaction._signedTransactions.list) {\n if (\n signedTransaction.sigMap != null &&\n signedTransaction.sigMap.sigPair != null\n ) {\n let found = false;\n for (const sigPair of signedTransaction.sigMap.sigPair) {\n const pubKeyPrefix = /** @type {Uint8Array} */ (\n sigPair.pubKeyPrefix\n );\n if (arrayEqual(pubKeyPrefix, this.toBytesRaw())) {\n found = true;\n\n const bodyBytes = /** @type {Uint8Array} */ (\n signedTransaction.bodyBytes\n );\n\n let signature = null;\n if (sigPair.ed25519 != null) {\n signature = sigPair.ed25519;\n } else if (sigPair.ECDSASecp256k1 != null) {\n signature = sigPair.ECDSASecp256k1;\n }\n\n if (signature == null) {\n continue;\n }\n\n if (!this.verify(bodyBytes, signature)) {\n return false;\n }\n }\n }\n\n if (!found) {\n return false;\n }\n }\n }\n\n return true;\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytes() {\n return this._key.toBytes();\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytesDer() {\n return this._key.toBytesDer();\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytesRaw() {\n return this._key.toBytesRaw();\n }\n\n /**\n * @deprecated Use `toEvmAddress()` instead.\n * @returns {string}\n */\n toEthereumAddress() {\n return this._key.toEthereumAddress();\n }\n\n /**\n * @returns {string}\n */\n toEvmAddress() {\n return this._key.toEthereumAddress();\n }\n\n /**\n * @returns {string}\n */\n toString() {\n return this._key.toString();\n }\n\n /**\n * @returns {string}\n */\n toStringDer() {\n return this._key.toStringDer();\n }\n\n /**\n * @returns {string}\n */\n toStringRaw() {\n return this._key.toStringRaw();\n }\n\n /**\n * @param {PublicKey} other\n * @returns {boolean}\n */\n equals(other) {\n return this._key.equals(other._key);\n }\n\n /**\n * @returns {HashgraphProto.proto.IKey}\n */\n _toProtobufKey() {\n switch (this._key._type) {\n case \"ED25519\":\n return {\n ed25519: this._key.toBytesRaw(),\n };\n case \"secp256k1\":\n return {\n ECDSASecp256k1: this._key.toBytesRaw(),\n };\n default:\n throw new Error(`unrecognized key type ${this._key._type}`);\n }\n }\n\n /**\n * @param {Uint8Array} signature\n * @returns {HashgraphProto.proto.ISignaturePair}\n */\n _toProtobufSignature(signature) {\n switch (this._key._type) {\n case \"ED25519\":\n return {\n pubKeyPrefix: this._key.toBytesRaw(),\n ed25519: signature,\n };\n case \"secp256k1\":\n return {\n pubKeyPrefix: this._key.toBytesRaw(),\n ECDSASecp256k1: signature,\n };\n default:\n throw new Error(`unrecognized key type ${this._key._type}`);\n }\n }\n\n /**\n * @param {Long | number} shard\n * @param {Long | number} realm\n * @returns {AccountId}\n */\n toAccountId(shard, realm) {\n return CACHE.accountIdConstructor(shard, realm, this);\n }\n\n /**\n * Returns an \"unusable\" public key.\n * “Unusable” refers to a key such as an Ed25519 0x00000... public key,\n * since it is (presumably) impossible to find the 32-byte string whose SHA-512 hash begins with 32 bytes of zeros.\n *\n * @returns {PublicKey}\n */\n static unusableKey() {\n return PublicKey.fromStringED25519(\n \"0000000000000000000000000000000000000000000000000000000000000000\",\n );\n }\n}\n\nCACHE.setPublicKeyED25519((key) => PublicKey.fromBytesED25519(key));\nCACHE.setPublicKeyECDSA((key) => PublicKey.fromBytesECDSA(key));\n","export const version = \"logger/5.7.0\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nlet _permanentCensorErrors = false;\nlet _censorErrors = false;\nconst LogLevels = { debug: 1, \"default\": 2, info: 2, warning: 3, error: 4, off: 5 };\nlet _logLevel = LogLevels[\"default\"];\nimport { version } from \"./_version\";\nlet _globalLogger = null;\nfunction _checkNormalize() {\n try {\n const missing = [];\n // Make sure all forms of normalization are supported\n [\"NFD\", \"NFC\", \"NFKD\", \"NFKC\"].forEach((form) => {\n try {\n if (\"test\".normalize(form) !== \"test\") {\n throw new Error(\"bad normalize\");\n }\n ;\n }\n catch (error) {\n missing.push(form);\n }\n });\n if (missing.length) {\n throw new Error(\"missing \" + missing.join(\", \"));\n }\n if (String.fromCharCode(0xe9).normalize(\"NFD\") !== String.fromCharCode(0x65, 0x0301)) {\n throw new Error(\"broken implementation\");\n }\n }\n catch (error) {\n return error.message;\n }\n return null;\n}\nconst _normalizeError = _checkNormalize();\nexport var LogLevel;\n(function (LogLevel) {\n LogLevel[\"DEBUG\"] = \"DEBUG\";\n LogLevel[\"INFO\"] = \"INFO\";\n LogLevel[\"WARNING\"] = \"WARNING\";\n LogLevel[\"ERROR\"] = \"ERROR\";\n LogLevel[\"OFF\"] = \"OFF\";\n})(LogLevel || (LogLevel = {}));\nexport var ErrorCode;\n(function (ErrorCode) {\n ///////////////////\n // Generic Errors\n // Unknown Error\n ErrorCode[\"UNKNOWN_ERROR\"] = \"UNKNOWN_ERROR\";\n // Not Implemented\n ErrorCode[\"NOT_IMPLEMENTED\"] = \"NOT_IMPLEMENTED\";\n // Unsupported Operation\n // - operation\n ErrorCode[\"UNSUPPORTED_OPERATION\"] = \"UNSUPPORTED_OPERATION\";\n // Network Error (i.e. Ethereum Network, such as an invalid chain ID)\n // - event (\"noNetwork\" is not re-thrown in provider.ready; otherwise thrown)\n ErrorCode[\"NETWORK_ERROR\"] = \"NETWORK_ERROR\";\n // Some sort of bad response from the server\n ErrorCode[\"SERVER_ERROR\"] = \"SERVER_ERROR\";\n // Timeout\n ErrorCode[\"TIMEOUT\"] = \"TIMEOUT\";\n ///////////////////\n // Operational Errors\n // Buffer Overrun\n ErrorCode[\"BUFFER_OVERRUN\"] = \"BUFFER_OVERRUN\";\n // Numeric Fault\n // - operation: the operation being executed\n // - fault: the reason this faulted\n ErrorCode[\"NUMERIC_FAULT\"] = \"NUMERIC_FAULT\";\n ///////////////////\n // Argument Errors\n // Missing new operator to an object\n // - name: The name of the class\n ErrorCode[\"MISSING_NEW\"] = \"MISSING_NEW\";\n // Invalid argument (e.g. value is incompatible with type) to a function:\n // - argument: The argument name that was invalid\n // - value: The value of the argument\n ErrorCode[\"INVALID_ARGUMENT\"] = \"INVALID_ARGUMENT\";\n // Missing argument to a function:\n // - count: The number of arguments received\n // - expectedCount: The number of arguments expected\n ErrorCode[\"MISSING_ARGUMENT\"] = \"MISSING_ARGUMENT\";\n // Too many arguments\n // - count: The number of arguments received\n // - expectedCount: The number of arguments expected\n ErrorCode[\"UNEXPECTED_ARGUMENT\"] = \"UNEXPECTED_ARGUMENT\";\n ///////////////////\n // Blockchain Errors\n // Call exception\n // - transaction: the transaction\n // - address?: the contract address\n // - args?: The arguments passed into the function\n // - method?: The Solidity method signature\n // - errorSignature?: The EIP848 error signature\n // - errorArgs?: The EIP848 error parameters\n // - reason: The reason (only for EIP848 \"Error(string)\")\n ErrorCode[\"CALL_EXCEPTION\"] = \"CALL_EXCEPTION\";\n // Insufficient funds (< value + gasLimit * gasPrice)\n // - transaction: the transaction attempted\n ErrorCode[\"INSUFFICIENT_FUNDS\"] = \"INSUFFICIENT_FUNDS\";\n // Nonce has already been used\n // - transaction: the transaction attempted\n ErrorCode[\"NONCE_EXPIRED\"] = \"NONCE_EXPIRED\";\n // The replacement fee for the transaction is too low\n // - transaction: the transaction attempted\n ErrorCode[\"REPLACEMENT_UNDERPRICED\"] = \"REPLACEMENT_UNDERPRICED\";\n // The gas limit could not be estimated\n // - transaction: the transaction passed to estimateGas\n ErrorCode[\"UNPREDICTABLE_GAS_LIMIT\"] = \"UNPREDICTABLE_GAS_LIMIT\";\n // The transaction was replaced by one with a higher gas price\n // - reason: \"cancelled\", \"replaced\" or \"repriced\"\n // - cancelled: true if reason == \"cancelled\" or reason == \"replaced\")\n // - hash: original transaction hash\n // - replacement: the full TransactionsResponse for the replacement\n // - receipt: the receipt of the replacement\n ErrorCode[\"TRANSACTION_REPLACED\"] = \"TRANSACTION_REPLACED\";\n ///////////////////\n // Interaction Errors\n // The user rejected the action, such as signing a message or sending\n // a transaction\n ErrorCode[\"ACTION_REJECTED\"] = \"ACTION_REJECTED\";\n})(ErrorCode || (ErrorCode = {}));\n;\nconst HEX = \"0123456789abcdef\";\nexport class Logger {\n constructor(version) {\n Object.defineProperty(this, \"version\", {\n enumerable: true,\n value: version,\n writable: false\n });\n }\n _log(logLevel, args) {\n const level = logLevel.toLowerCase();\n if (LogLevels[level] == null) {\n this.throwArgumentError(\"invalid log level name\", \"logLevel\", logLevel);\n }\n if (_logLevel > LogLevels[level]) {\n return;\n }\n console.log.apply(console, args);\n }\n debug(...args) {\n this._log(Logger.levels.DEBUG, args);\n }\n info(...args) {\n this._log(Logger.levels.INFO, args);\n }\n warn(...args) {\n this._log(Logger.levels.WARNING, args);\n }\n makeError(message, code, params) {\n // Errors are being censored\n if (_censorErrors) {\n return this.makeError(\"censored error\", code, {});\n }\n if (!code) {\n code = Logger.errors.UNKNOWN_ERROR;\n }\n if (!params) {\n params = {};\n }\n const messageDetails = [];\n Object.keys(params).forEach((key) => {\n const value = params[key];\n try {\n if (value instanceof Uint8Array) {\n let hex = \"\";\n for (let i = 0; i < value.length; i++) {\n hex += HEX[value[i] >> 4];\n hex += HEX[value[i] & 0x0f];\n }\n messageDetails.push(key + \"=Uint8Array(0x\" + hex + \")\");\n }\n else {\n messageDetails.push(key + \"=\" + JSON.stringify(value));\n }\n }\n catch (error) {\n messageDetails.push(key + \"=\" + JSON.stringify(params[key].toString()));\n }\n });\n messageDetails.push(`code=${code}`);\n messageDetails.push(`version=${this.version}`);\n const reason = message;\n let url = \"\";\n switch (code) {\n case ErrorCode.NUMERIC_FAULT: {\n url = \"NUMERIC_FAULT\";\n const fault = message;\n switch (fault) {\n case \"overflow\":\n case \"underflow\":\n case \"division-by-zero\":\n url += \"-\" + fault;\n break;\n case \"negative-power\":\n case \"negative-width\":\n url += \"-unsupported\";\n break;\n case \"unbound-bitwise-result\":\n url += \"-unbound-result\";\n break;\n }\n break;\n }\n case ErrorCode.CALL_EXCEPTION:\n case ErrorCode.INSUFFICIENT_FUNDS:\n case ErrorCode.MISSING_NEW:\n case ErrorCode.NONCE_EXPIRED:\n case ErrorCode.REPLACEMENT_UNDERPRICED:\n case ErrorCode.TRANSACTION_REPLACED:\n case ErrorCode.UNPREDICTABLE_GAS_LIMIT:\n url = code;\n break;\n }\n if (url) {\n message += \" [ See: https:/\\/links.ethers.org/v5-errors-\" + url + \" ]\";\n }\n if (messageDetails.length) {\n message += \" (\" + messageDetails.join(\", \") + \")\";\n }\n // @TODO: Any??\n const error = new Error(message);\n error.reason = reason;\n error.code = code;\n Object.keys(params).forEach(function (key) {\n error[key] = params[key];\n });\n return error;\n }\n throwError(message, code, params) {\n throw this.makeError(message, code, params);\n }\n throwArgumentError(message, name, value) {\n return this.throwError(message, Logger.errors.INVALID_ARGUMENT, {\n argument: name,\n value: value\n });\n }\n assert(condition, message, code, params) {\n if (!!condition) {\n return;\n }\n this.throwError(message, code, params);\n }\n assertArgument(condition, message, name, value) {\n if (!!condition) {\n return;\n }\n this.throwArgumentError(message, name, value);\n }\n checkNormalize(message) {\n if (message == null) {\n message = \"platform missing String.prototype.normalize\";\n }\n if (_normalizeError) {\n this.throwError(\"platform missing String.prototype.normalize\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"String.prototype.normalize\", form: _normalizeError\n });\n }\n }\n checkSafeUint53(value, message) {\n if (typeof (value) !== \"number\") {\n return;\n }\n if (message == null) {\n message = \"value not safe\";\n }\n if (value < 0 || value >= 0x1fffffffffffff) {\n this.throwError(message, Logger.errors.NUMERIC_FAULT, {\n operation: \"checkSafeInteger\",\n fault: \"out-of-safe-range\",\n value: value\n });\n }\n if (value % 1) {\n this.throwError(message, Logger.errors.NUMERIC_FAULT, {\n operation: \"checkSafeInteger\",\n fault: \"non-integer\",\n value: value\n });\n }\n }\n checkArgumentCount(count, expectedCount, message) {\n if (message) {\n message = \": \" + message;\n }\n else {\n message = \"\";\n }\n if (count < expectedCount) {\n this.throwError(\"missing argument\" + message, Logger.errors.MISSING_ARGUMENT, {\n count: count,\n expectedCount: expectedCount\n });\n }\n if (count > expectedCount) {\n this.throwError(\"too many arguments\" + message, Logger.errors.UNEXPECTED_ARGUMENT, {\n count: count,\n expectedCount: expectedCount\n });\n }\n }\n checkNew(target, kind) {\n if (target === Object || target == null) {\n this.throwError(\"missing new\", Logger.errors.MISSING_NEW, { name: kind.name });\n }\n }\n checkAbstract(target, kind) {\n if (target === kind) {\n this.throwError(\"cannot instantiate abstract class \" + JSON.stringify(kind.name) + \" directly; use a sub-class\", Logger.errors.UNSUPPORTED_OPERATION, { name: target.name, operation: \"new\" });\n }\n else if (target === Object || target == null) {\n this.throwError(\"missing new\", Logger.errors.MISSING_NEW, { name: kind.name });\n }\n }\n static globalLogger() {\n if (!_globalLogger) {\n _globalLogger = new Logger(version);\n }\n return _globalLogger;\n }\n static setCensorship(censorship, permanent) {\n if (!censorship && permanent) {\n this.globalLogger().throwError(\"cannot permanently disable censorship\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setCensorship\"\n });\n }\n if (_permanentCensorErrors) {\n if (!censorship) {\n return;\n }\n this.globalLogger().throwError(\"error censorship permanent\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setCensorship\"\n });\n }\n _censorErrors = !!censorship;\n _permanentCensorErrors = !!permanent;\n }\n static setLogLevel(logLevel) {\n const level = LogLevels[logLevel.toLowerCase()];\n if (level == null) {\n Logger.globalLogger().warn(\"invalid log level - \" + logLevel);\n return;\n }\n _logLevel = level;\n }\n static from(version) {\n return new Logger(version);\n }\n}\nLogger.errors = ErrorCode;\nLogger.levels = LogLevel;\n//# sourceMappingURL=index.js.map","export const version = \"bytes/5.7.0\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n///////////////////////////////\nfunction isHexable(value) {\n return !!(value.toHexString);\n}\nfunction addSlice(array) {\n if (array.slice) {\n return array;\n }\n array.slice = function () {\n const args = Array.prototype.slice.call(arguments);\n return addSlice(new Uint8Array(Array.prototype.slice.apply(array, args)));\n };\n return array;\n}\nexport function isBytesLike(value) {\n return ((isHexString(value) && !(value.length % 2)) || isBytes(value));\n}\nfunction isInteger(value) {\n return (typeof (value) === \"number\" && value == value && (value % 1) === 0);\n}\nexport function isBytes(value) {\n if (value == null) {\n return false;\n }\n if (value.constructor === Uint8Array) {\n return true;\n }\n if (typeof (value) === \"string\") {\n return false;\n }\n if (!isInteger(value.length) || value.length < 0) {\n return false;\n }\n for (let i = 0; i < value.length; i++) {\n const v = value[i];\n if (!isInteger(v) || v < 0 || v >= 256) {\n return false;\n }\n }\n return true;\n}\nexport function arrayify(value, options) {\n if (!options) {\n options = {};\n }\n if (typeof (value) === \"number\") {\n logger.checkSafeUint53(value, \"invalid arrayify value\");\n const result = [];\n while (value) {\n result.unshift(value & 0xff);\n value = parseInt(String(value / 256));\n }\n if (result.length === 0) {\n result.push(0);\n }\n return addSlice(new Uint8Array(result));\n }\n if (options.allowMissingPrefix && typeof (value) === \"string\" && value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n if (isHexable(value)) {\n value = value.toHexString();\n }\n if (isHexString(value)) {\n let hex = value.substring(2);\n if (hex.length % 2) {\n if (options.hexPad === \"left\") {\n hex = \"0\" + hex;\n }\n else if (options.hexPad === \"right\") {\n hex += \"0\";\n }\n else {\n logger.throwArgumentError(\"hex data is odd-length\", \"value\", value);\n }\n }\n const result = [];\n for (let i = 0; i < hex.length; i += 2) {\n result.push(parseInt(hex.substring(i, i + 2), 16));\n }\n return addSlice(new Uint8Array(result));\n }\n if (isBytes(value)) {\n return addSlice(new Uint8Array(value));\n }\n return logger.throwArgumentError(\"invalid arrayify value\", \"value\", value);\n}\nexport function concat(items) {\n const objects = items.map(item => arrayify(item));\n const length = objects.reduce((accum, item) => (accum + item.length), 0);\n const result = new Uint8Array(length);\n objects.reduce((offset, object) => {\n result.set(object, offset);\n return offset + object.length;\n }, 0);\n return addSlice(result);\n}\nexport function stripZeros(value) {\n let result = arrayify(value);\n if (result.length === 0) {\n return result;\n }\n // Find the first non-zero entry\n let start = 0;\n while (start < result.length && result[start] === 0) {\n start++;\n }\n // If we started with zeros, strip them\n if (start) {\n result = result.slice(start);\n }\n return result;\n}\nexport function zeroPad(value, length) {\n value = arrayify(value);\n if (value.length > length) {\n logger.throwArgumentError(\"value out of range\", \"value\", arguments[0]);\n }\n const result = new Uint8Array(length);\n result.set(value, length - value.length);\n return addSlice(result);\n}\nexport function isHexString(value, length) {\n if (typeof (value) !== \"string\" || !value.match(/^0x[0-9A-Fa-f]*$/)) {\n return false;\n }\n if (length && value.length !== 2 + 2 * length) {\n return false;\n }\n return true;\n}\nconst HexCharacters = \"0123456789abcdef\";\nexport function hexlify(value, options) {\n if (!options) {\n options = {};\n }\n if (typeof (value) === \"number\") {\n logger.checkSafeUint53(value, \"invalid hexlify value\");\n let hex = \"\";\n while (value) {\n hex = HexCharacters[value & 0xf] + hex;\n value = Math.floor(value / 16);\n }\n if (hex.length) {\n if (hex.length % 2) {\n hex = \"0\" + hex;\n }\n return \"0x\" + hex;\n }\n return \"0x00\";\n }\n if (typeof (value) === \"bigint\") {\n value = value.toString(16);\n if (value.length % 2) {\n return (\"0x0\" + value);\n }\n return \"0x\" + value;\n }\n if (options.allowMissingPrefix && typeof (value) === \"string\" && value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n if (isHexable(value)) {\n return value.toHexString();\n }\n if (isHexString(value)) {\n if (value.length % 2) {\n if (options.hexPad === \"left\") {\n value = \"0x0\" + value.substring(2);\n }\n else if (options.hexPad === \"right\") {\n value += \"0\";\n }\n else {\n logger.throwArgumentError(\"hex data is odd-length\", \"value\", value);\n }\n }\n return value.toLowerCase();\n }\n if (isBytes(value)) {\n let result = \"0x\";\n for (let i = 0; i < value.length; i++) {\n let v = value[i];\n result += HexCharacters[(v & 0xf0) >> 4] + HexCharacters[v & 0x0f];\n }\n return result;\n }\n return logger.throwArgumentError(\"invalid hexlify value\", \"value\", value);\n}\n/*\nfunction unoddify(value: BytesLike | Hexable | number): BytesLike | Hexable | number {\n if (typeof(value) === \"string\" && value.length % 2 && value.substring(0, 2) === \"0x\") {\n return \"0x0\" + value.substring(2);\n }\n return value;\n}\n*/\nexport function hexDataLength(data) {\n if (typeof (data) !== \"string\") {\n data = hexlify(data);\n }\n else if (!isHexString(data) || (data.length % 2)) {\n return null;\n }\n return (data.length - 2) / 2;\n}\nexport function hexDataSlice(data, offset, endOffset) {\n if (typeof (data) !== \"string\") {\n data = hexlify(data);\n }\n else if (!isHexString(data) || (data.length % 2)) {\n logger.throwArgumentError(\"invalid hexData\", \"value\", data);\n }\n offset = 2 + 2 * offset;\n if (endOffset != null) {\n return \"0x\" + data.substring(offset, 2 + 2 * endOffset);\n }\n return \"0x\" + data.substring(offset);\n}\nexport function hexConcat(items) {\n let result = \"0x\";\n items.forEach((item) => {\n result += hexlify(item).substring(2);\n });\n return result;\n}\nexport function hexValue(value) {\n const trimmed = hexStripZeros(hexlify(value, { hexPad: \"left\" }));\n if (trimmed === \"0x\") {\n return \"0x0\";\n }\n return trimmed;\n}\nexport function hexStripZeros(value) {\n if (typeof (value) !== \"string\") {\n value = hexlify(value);\n }\n if (!isHexString(value)) {\n logger.throwArgumentError(\"invalid hex string\", \"value\", value);\n }\n value = value.substring(2);\n let offset = 0;\n while (offset < value.length && value[offset] === \"0\") {\n offset++;\n }\n return \"0x\" + value.substring(offset);\n}\nexport function hexZeroPad(value, length) {\n if (typeof (value) !== \"string\") {\n value = hexlify(value);\n }\n else if (!isHexString(value)) {\n logger.throwArgumentError(\"invalid hex string\", \"value\", value);\n }\n if (value.length > 2 * length + 2) {\n logger.throwArgumentError(\"value out of range\", \"value\", arguments[1]);\n }\n while (value.length < 2 * length + 2) {\n value = \"0x0\" + value.substring(2);\n }\n return value;\n}\nexport function splitSignature(signature) {\n const result = {\n r: \"0x\",\n s: \"0x\",\n _vs: \"0x\",\n recoveryParam: 0,\n v: 0,\n yParityAndS: \"0x\",\n compact: \"0x\"\n };\n if (isBytesLike(signature)) {\n let bytes = arrayify(signature);\n // Get the r, s and v\n if (bytes.length === 64) {\n // EIP-2098; pull the v from the top bit of s and clear it\n result.v = 27 + (bytes[32] >> 7);\n bytes[32] &= 0x7f;\n result.r = hexlify(bytes.slice(0, 32));\n result.s = hexlify(bytes.slice(32, 64));\n }\n else if (bytes.length === 65) {\n result.r = hexlify(bytes.slice(0, 32));\n result.s = hexlify(bytes.slice(32, 64));\n result.v = bytes[64];\n }\n else {\n logger.throwArgumentError(\"invalid signature string\", \"signature\", signature);\n }\n // Allow a recid to be used as the v\n if (result.v < 27) {\n if (result.v === 0 || result.v === 1) {\n result.v += 27;\n }\n else {\n logger.throwArgumentError(\"signature invalid v byte\", \"signature\", signature);\n }\n }\n // Compute recoveryParam from v\n result.recoveryParam = 1 - (result.v % 2);\n // Compute _vs from recoveryParam and s\n if (result.recoveryParam) {\n bytes[32] |= 0x80;\n }\n result._vs = hexlify(bytes.slice(32, 64));\n }\n else {\n result.r = signature.r;\n result.s = signature.s;\n result.v = signature.v;\n result.recoveryParam = signature.recoveryParam;\n result._vs = signature._vs;\n // If the _vs is available, use it to populate missing s, v and recoveryParam\n // and verify non-missing s, v and recoveryParam\n if (result._vs != null) {\n const vs = zeroPad(arrayify(result._vs), 32);\n result._vs = hexlify(vs);\n // Set or check the recid\n const recoveryParam = ((vs[0] >= 128) ? 1 : 0);\n if (result.recoveryParam == null) {\n result.recoveryParam = recoveryParam;\n }\n else if (result.recoveryParam !== recoveryParam) {\n logger.throwArgumentError(\"signature recoveryParam mismatch _vs\", \"signature\", signature);\n }\n // Set or check the s\n vs[0] &= 0x7f;\n const s = hexlify(vs);\n if (result.s == null) {\n result.s = s;\n }\n else if (result.s !== s) {\n logger.throwArgumentError(\"signature v mismatch _vs\", \"signature\", signature);\n }\n }\n // Use recid and v to populate each other\n if (result.recoveryParam == null) {\n if (result.v == null) {\n logger.throwArgumentError(\"signature missing v and recoveryParam\", \"signature\", signature);\n }\n else if (result.v === 0 || result.v === 1) {\n result.recoveryParam = result.v;\n }\n else {\n result.recoveryParam = 1 - (result.v % 2);\n }\n }\n else {\n if (result.v == null) {\n result.v = 27 + result.recoveryParam;\n }\n else {\n const recId = (result.v === 0 || result.v === 1) ? result.v : (1 - (result.v % 2));\n if (result.recoveryParam !== recId) {\n logger.throwArgumentError(\"signature recoveryParam mismatch v\", \"signature\", signature);\n }\n }\n }\n if (result.r == null || !isHexString(result.r)) {\n logger.throwArgumentError(\"signature missing or invalid r\", \"signature\", signature);\n }\n else {\n result.r = hexZeroPad(result.r, 32);\n }\n if (result.s == null || !isHexString(result.s)) {\n logger.throwArgumentError(\"signature missing or invalid s\", \"signature\", signature);\n }\n else {\n result.s = hexZeroPad(result.s, 32);\n }\n const vs = arrayify(result.s);\n if (vs[0] >= 128) {\n logger.throwArgumentError(\"signature s out of range\", \"signature\", signature);\n }\n if (result.recoveryParam) {\n vs[0] |= 0x80;\n }\n const _vs = hexlify(vs);\n if (result._vs) {\n if (!isHexString(result._vs)) {\n logger.throwArgumentError(\"signature invalid _vs\", \"signature\", signature);\n }\n result._vs = hexZeroPad(result._vs, 32);\n }\n // Set or check the _vs\n if (result._vs == null) {\n result._vs = _vs;\n }\n else if (result._vs !== _vs) {\n logger.throwArgumentError(\"signature _vs mismatch v and s\", \"signature\", signature);\n }\n }\n result.yParityAndS = result._vs;\n result.compact = result.r + result.yParityAndS.substring(2);\n return result;\n}\nexport function joinSignature(signature) {\n signature = splitSignature(signature);\n return hexlify(concat([\n signature.r,\n signature.s,\n (signature.recoveryParam ? \"0x1c\" : \"0x1b\")\n ]));\n}\n//# sourceMappingURL=index.js.map","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Long from \"long\";\nimport * as hex from \"./encoding/hex.js\";\nimport BadEntityIdError from \"./BadEntityIdError.js\";\nimport * as util from \"./util.js\";\nimport base32 from \"./base32.js\";\nimport * as HashgraphProto from \"@hashgraph/proto\";\nimport PublicKey from \"./PublicKey.js\";\nimport { arrayify } from \"@ethersproject/bytes\";\n\n/**\n * @typedef {import(\"./client/Client.js\").default<*, *>} Client\n */\n\n/**\n * @typedef {object} IEntityId\n * @property {number | Long} num\n * @property {(number | Long)=} shard\n * @property {(number | Long)=} realm\n */\n\n/**\n * @typedef {object} IEntityIdResult\n * @property {Long} shard\n * @property {Long} realm\n * @property {Long} num\n */\n\n/**\n * @typedef {object} IEntityIdParts\n * @property {string?} shard\n * @property {string?} realm\n * @property {string} numOrHex\n * @property {string?} checksum\n */\n\n/**\n * @typedef {object} IEntityIdResultWithChecksum\n * @property {Long} shard\n * @property {Long} realm\n * @property {Long} num\n * @property {string | null} checksum\n */\n\nconst regex =\n /\"^(0|(?:[1-9]\\\\d*))\\\\.(0|(?:[1-9]\\\\d*))\\\\.(0|(?:[1-9]\\\\d*))(?:-([a-z]{5}))?$/;\n\n/**\n * This regex supports entity IDs\n * - as stand alone nubmers\n * - as shard.realm.num\n * - as shard.realm.hex\n * - can optionally provide checksum for any of the above\n */\nconst ENTITY_ID_REGEX = /^(\\d+)(?:\\.(\\d+)\\.([a-fA-F0-9]+))?(?:-([a-z]{5}))?$/;\n\n/**\n * This method is called by most entity ID constructors. It's purpose is to\n * deduplicate the constuctors.\n *\n * @param {number | Long | IEntityId} props\n * @param {(number | null | Long)=} realmOrNull\n * @param {(number | null | Long)=} numOrNull\n * @returns {IEntityIdResult}\n */\nexport function constructor(props, realmOrNull, numOrNull) {\n // Make sure either both the second and third parameter are\n // set or not set; we shouldn't have one set, but the other not set.\n //\n //NOSONAR\n if (\n (realmOrNull == null && numOrNull != null) ||\n (realmOrNull != null && numOrNull == null)\n ) {\n throw new Error(\"invalid entity ID\");\n }\n\n // If the first parameter is a number then we need to convert the\n // first, second, and third parameters into numbers. Otherwise,\n // we should look at the fields `shard`, `realm`, and `num` on\n // `props`\n const [shard, realm, num] =\n typeof props === \"number\" || Long.isLong(props)\n ? [\n numOrNull != null\n ? Long.fromValue(/** @type {Long | number} */ (props))\n : Long.ZERO,\n realmOrNull != null ? Long.fromValue(realmOrNull) : Long.ZERO,\n numOrNull != null\n ? Long.fromValue(numOrNull)\n : Long.fromValue(/** @type {Long | number} */ (props)),\n ]\n : [\n props.shard != null ? Long.fromValue(props.shard) : Long.ZERO,\n props.realm != null ? Long.fromValue(props.realm) : Long.ZERO,\n Long.fromValue(props.num),\n ];\n\n // Make sure none of the numbers are negative\n if (shard.isNegative() || realm.isNegative() || num.isNegative()) {\n throw new Error(\"negative numbers are not allowed in IDs\");\n }\n\n return {\n shard,\n realm,\n num,\n };\n}\n\n/**\n * A simple comparison function for comparing entity IDs\n *\n * @param {[Long, Long, Long]} a\n * @param {[Long, Long, Long]} b\n * @returns {number}\n */\nexport function compare(a, b) {\n let comparison = a[0].compare(b[0]);\n if (comparison != 0) {\n return comparison;\n }\n\n comparison = a[1].compare(b[1]);\n if (comparison != 0) {\n return comparison;\n }\n\n return a[2].compare(b[2]);\n}\n\n/**\n * This type is part of the entity ID checksums feature which\n * is responsible for checking if an entity ID was created on\n * the same ledger ID as the client is currently using.\n *\n * @typedef {object} ParseAddressResult\n * @property {number} status\n * @property {Long} [num1]\n * @property {Long} [num2]\n * @property {Long} [num3]\n * @property {string} [correctChecksum]\n * @property {string} [givenChecksum]\n * @property {string} [noChecksumFormat]\n * @property {string} [withChecksumFormat]\n */\n\n/**\n * @param {string} text\n * @returns {IEntityIdParts}\n */\nexport function fromStringSplitter(text) {\n const match = ENTITY_ID_REGEX.exec(text);\n\n if (match == null) {\n throw new Error(`failed to parse entity id: ${text}`);\n }\n\n if (match[2] == null && match[3] == null) {\n return {\n shard: \"0\",\n realm: \"0\",\n numOrHex: match[1],\n checksum: match[4],\n };\n } else {\n return {\n shard: match[1],\n realm: match[2],\n numOrHex: match[3],\n checksum: match[4],\n };\n }\n}\n\n/**\n * @param {string} text\n * @returns {IEntityIdResultWithChecksum}\n */\nexport function fromString(text) {\n const result = fromStringSplitter(text);\n\n if (\n Number.isNaN(result.shard) ||\n Number.isNaN(result.realm) ||\n Number.isNaN(result.numOrHex)\n ) {\n throw new Error(\"invalid format for entity ID\");\n }\n\n return {\n shard: result.shard != null ? Long.fromString(result.shard) : Long.ZERO,\n realm: result.realm != null ? Long.fromString(result.realm) : Long.ZERO,\n num: Long.fromString(result.numOrHex),\n checksum: result.checksum,\n };\n}\n\n/**\n * Return the shard, realm, and num from a solidity address.\n *\n * Solidity addresses are 20 bytes long and hex encoded, where the first 4\n * bytes represent the shard, the next 8 bytes represent the realm, and\n * the last 8 bytes represent the num. All in Big Endian format\n *\n * @param {string} address\n * @returns {[Long, Long, Long]}\n */\nexport function fromSolidityAddress(address) {\n const addr = address.startsWith(\"0x\")\n ? hex.decode(address.slice(2))\n : hex.decode(address);\n\n if (addr.length !== 20) {\n throw new Error(`Invalid hex encoded solidity address length:\n expected length 40, got length ${address.length}`);\n }\n\n const shard = Long.fromBytesBE([0, 0, 0, 0, ...addr.slice(0, 4)]);\n const realm = Long.fromBytesBE(Array.from(addr.slice(4, 12)));\n const num = Long.fromBytesBE(Array.from(addr.slice(12, 20)));\n\n return [shard, realm, num];\n}\n\n/**\n * Convert shard, realm, and num into a solidity address.\n *\n * See `fromSolidityAddress()` for more documentation.\n *\n * @param {[Long,Long,Long] | [number,number,number]} address\n * @returns {string}\n */\nexport function toSolidityAddress(address) {\n const buffer = new Uint8Array(20);\n const view = util.safeView(buffer);\n const [shard, realm, num] = address;\n\n view.setUint32(0, util.convertToNumber(shard));\n view.setUint32(8, util.convertToNumber(realm));\n view.setUint32(16, util.convertToNumber(num));\n\n return hex.encode(buffer);\n}\n\n/**\n * Parse the address string addr and return an object with the results (8 fields).\n * The first four fields are numbers, which could be implemented as signed 32 bit\n * integers, and the last four are strings.\n *\n * status; //the status of the parsed address\n * // 0 = syntax error\n * // 1 = an invalid with-checksum address (bad checksum)\n * // 2 = a valid no-checksum address\n * // 3 = a valid with-checksum address\n * num1; //the 3 numbers in the address, such as 1.2.3, with leading zeros removed\n * num2;\n * num3;\n * correctchecksum; //the correct checksum\n * givenChecksum; //the checksum in the address that was parsed\n * noChecksumFormat; //the address in no-checksum format\n * withChecksumFormat; //the address in with-checksum format\n *\n * @param {Uint8Array} ledgerId\n * @param {string} addr\n * @returns {ParseAddressResult}\n */\nexport function _parseAddress(ledgerId, addr) {\n let match = regex.exec(addr);\n if (match === null) {\n let result = { status: 0 }; // When status == 0, the rest of the fields should be ignored\n return result;\n }\n let a = [\n Long.fromString(match[1]),\n Long.fromString(match[2]),\n Long.fromString(match[3]),\n ];\n let ad = `${a[0].toString()}.${a[1].toString()}.${a[2].toString()}`;\n let c = _checksum(ledgerId, ad);\n let s = match[4] === undefined ? 2 : c == match[4] ? 3 : 1; //NOSONAR\n return {\n status: s,\n num1: a[0],\n num2: a[1],\n num3: a[2],\n givenChecksum: match[4],\n correctChecksum: c,\n noChecksumFormat: ad,\n withChecksumFormat: `${ad}-${c}`,\n };\n}\n\n/**\n * Given an address like \"0.0.123\", return a checksum like \"laujm\"\n *\n * @param {Uint8Array} ledgerId\n * @param {string} addr\n * @returns {string}\n */\nexport function _checksum(ledgerId, addr) {\n let answer = \"\";\n let d = []; // Digits with 10 for \".\", so if addr == \"0.0.123\" then d == [0, 10, 0, 10, 1, 2, 3]\n let s0 = 0; // Sum of even positions (mod 11)\n let s1 = 0; // Sum of odd positions (mod 11)\n let s = 0; // Weighted sum of all positions (mod p3)\n let sh = 0; // Hash of the ledger ID\n let c = 0; // The checksum, as a single number\n const p3 = 26 * 26 * 26; // 3 digits in base 26\n const p5 = 26 * 26 * 26 * 26 * 26; // 5 digits in base 26\n const ascii_a = \"a\".charCodeAt(0); // 97\n const m = 1000003; // Min prime greater than a million. Used for the final permutation.\n const w = 31; // Sum s of digit values weights them by powers of w. Should be coprime to p5.\n\n let h = new Uint8Array(ledgerId.length + 6);\n h.set(ledgerId, 0);\n h.set([0, 0, 0, 0, 0, 0], ledgerId.length);\n for (let i = 0; i < addr.length; i++) {\n //NOSONAR\n d.push(addr[i] === \".\" ? 10 : parseInt(addr[i], 10));\n }\n for (let i = 0; i < d.length; i++) {\n s = (w * s + d[i]) % p3;\n if (i % 2 === 0) {\n s0 = (s0 + d[i]) % 11;\n } else {\n s1 = (s1 + d[i]) % 11;\n }\n }\n for (let i = 0; i < h.length; i++) {\n sh = (w * sh + h[i]) % p5;\n }\n c = ((((addr.length % 5) * 11 + s0) * 11 + s1) * p3 + s + sh) % p5;\n c = (c * m) % p5;\n\n for (let i = 0; i < 5; i++) {\n answer = String.fromCharCode(ascii_a + (c % 26)) + answer;\n c /= 26;\n }\n\n return answer;\n}\n\n/**\n * Validate an entity ID checksum against a client\n *\n * @param {Long} shard\n * @param {Long} realm\n * @param {Long} num\n * @param {string | null} checksum\n * @param {Client} client\n */\nexport function validateChecksum(shard, realm, num, checksum, client) {\n if (client._network._ledgerId == null || checksum == null) {\n return;\n }\n\n const expectedChecksum = _checksum(\n client._network._ledgerId._ledgerId,\n `${shard.toString()}.${realm.toString()}.${num.toString()}`,\n );\n\n if (checksum != expectedChecksum) {\n throw new BadEntityIdError(\n shard,\n realm,\n num,\n checksum,\n expectedChecksum,\n );\n }\n}\n\n/**\n * Stringify the entity ID with a checksum.\n *\n * @param {string} string\n * @param {Client} client\n * @returns {string}\n */\nexport function toStringWithChecksum(string, client) {\n if (client == null) {\n throw new Error(\"client cannot be null\");\n }\n\n if (client._network._ledgerId == null) {\n throw new Error(\n \"cannot calculate checksum with a client that does not contain a recognzied ledger ID\",\n );\n }\n\n const checksum = _checksum(client._network._ledgerId._ledgerId, string);\n\n return `${string}-${checksum}`;\n}\n\n/**\n * Append Buffers.\n * @param {Uint8Array} buffer1\n * @param {Uint8Array} buffer2\n * @returns {Uint8Array}\n */\nfunction appendBuffer(buffer1, buffer2) {\n var tmp = new Uint8Array(buffer1.byteLength + buffer2.byteLength);\n tmp.set(new Uint8Array(buffer1), 0);\n tmp.set(new Uint8Array(buffer2), buffer1.byteLength);\n return tmp;\n}\n\n/**\n * Convert bytes to hex string.\n * @param {Uint8Array} bytes\n * @returns {string}\n */\nfunction toHexString(bytes) {\n var s = \"0x\";\n bytes.forEach(function (byte) {\n s += (\"0\" + (byte & 0xff).toString(16)).slice(-2);\n });\n return s;\n}\n\n/**\n * Deserialize the alias to public key.\n * Alias is created from ed25519 or ECDSASecp256k1 types of accounts. If hollow account is used, the alias is created from evm address.\n * For hollow accounts, please use aliasToEvmAddress.\n *\n * @param {string} alias\n * @returns {PublicKey | null}\n */\nexport function aliasToPublicKey(alias) {\n const bytes = base32.decode(alias);\n if (!bytes) {\n return null;\n }\n let key;\n try {\n key = HashgraphProto.proto.Key.decode(bytes);\n } catch (e) {\n throw new Error(\n \"The alias is created with hollow account. Please use aliasToEvmAddress!\",\n );\n }\n\n if (key.ed25519 != null && key.ed25519.byteLength > 0) {\n return PublicKey.fromBytes(key.ed25519);\n }\n\n if (key.ECDSASecp256k1 != null && key.ECDSASecp256k1.byteLength > 0) {\n return PublicKey.fromBytes(key.ECDSASecp256k1);\n }\n\n return null;\n}\n\n/**\n * Deserialize the alias to evm address.\n * Alias is created from hollow account.\n * For ed25519 or ECDSASecp256k1 accounts, please use aliasToPublicKey.\n *\n * @param {string} alias\n * @returns {string | null}\n */\nexport function aliasToEvmAddress(alias) {\n const bytes = base32.decode(alias);\n if (!bytes) {\n return null;\n }\n try {\n HashgraphProto.proto.Key.decode(bytes);\n throw new Error(\n \"The alias is created with ed25519 or ECDSASecp256k1 account. Please use aliasToPublicKey!\",\n );\n } catch (e) {\n return toHexString(bytes);\n }\n}\n\n/**\n * Serialize the public key to alias.\n * Alias is created from ed25519 or ECDSASecp256k1 types of accounts. If hollow account is used, the alias is created from evm address.\n *\n * @param {string | PublicKey} publicKey\n * @returns {string | null}\n */\nexport function publicKeyToAlias(publicKey) {\n if (\n typeof publicKey === \"string\" &&\n ((publicKey.startsWith(\"0x\") && publicKey.length == 42) ||\n publicKey.length == 40)\n ) {\n if (!publicKey.startsWith(\"0x\")) {\n publicKey = `0x${publicKey}`;\n }\n\n const bytes = arrayify(publicKey);\n if (!bytes) {\n return null;\n }\n return base32.encode(bytes);\n }\n\n const publicKeyRaw =\n typeof publicKey === \"string\"\n ? PublicKey.fromString(publicKey)\n : publicKey;\n let publicKeyHex = publicKeyRaw.toStringRaw();\n let leadingHex = \"\";\n\n if (publicKeyRaw._key._type === \"secp256k1\") {\n leadingHex = \"0x3A21\"; // LEADING BYTES FROM PROTOBUFS\n }\n\n if (publicKeyRaw._key._type === \"ED25519\") {\n leadingHex = \"0x1220\"; // LEADING BYTES FROM PROTOBUFS\n }\n\n if (!publicKeyHex.startsWith(\"0x\")) {\n publicKeyHex = `0x${publicKeyHex}`;\n }\n\n const leadingBytes = arrayify(leadingHex);\n const publicKeyBytes = arrayify(publicKeyHex);\n const publicKeyInBytes = appendBuffer(leadingBytes, publicKeyBytes);\n const alias = base32.encode(publicKeyInBytes);\n return alias;\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport * as cryptography from \"@hashgraph/cryptography\";\nimport CACHE from \"./Cache.js\";\n\n/**\n * @typedef {import(\"./PrivateKey.js\").default} PrivateKey\n */\n\nconst HARDENED_BIT = 0x80000000;\n\n/**\n * Multi-word mnemonic phrase (BIP-39).\n *\n * Compatible with the official Hedera mobile\n * wallets (24-words or 22-words) and BRD (12-words).\n */\nexport default class Mnemonic {\n /**\n * @param {cryptography.Mnemonic} mnemonic\n * @hideconstructor\n * @private\n */\n constructor(mnemonic) {\n this._mnemonic = mnemonic;\n }\n\n /**\n * Returns a new random 24-word mnemonic from the BIP-39\n * standard English word list.\n *\n * @returns {Promise}\n */\n static async generate() {\n return new Mnemonic(await cryptography.Mnemonic._generate(24));\n }\n\n /**\n * Returns a new random 12-word mnemonic from the BIP-39\n * standard English word list.\n *\n * @returns {Promise}\n */\n static async generate12() {\n return new Mnemonic(await cryptography.Mnemonic._generate(12));\n }\n\n /**\n * Construct a mnemonic from a list of words. Handles 12, 22 (legacy), and 24 words.\n *\n * An exception of BadMnemonicError will be thrown if the mnemonic\n * contains unknown words or fails the checksum. An invalid mnemonic\n * can still be used to create private keys, the exception will\n * contain the failing mnemonic in case you wish to ignore the\n * validation error and continue.\n *\n * @param {string[]} words\n * @throws {cryptography.BadMnemonicError}\n * @returns {Promise}\n */\n static async fromWords(words) {\n return new Mnemonic(await cryptography.Mnemonic.fromWords(words));\n }\n\n /**\n * @deprecated - Use `toStandardEd25519PrivateKey()` or `toStandardECDSAsecp256k1PrivateKey()` instead\n * Recover a private key from this mnemonic phrase, with an\n * optional passphrase.\n * @param {string} [passphrase]\n * @returns {Promise}\n */\n async toPrivateKey(passphrase = \"\") {\n return CACHE.privateKeyConstructor(\n // eslint-disable-next-line deprecation/deprecation\n await this._mnemonic.toPrivateKey(passphrase),\n );\n }\n\n /**\n * @deprecated - Use `toStandardEd25519PrivateKey()` or `toStandardECDSAsecp256k1PrivateKey()` instead\n * Recover an Ed25519 private key from this mnemonic phrase, with an\n * optional passphrase.\n * @param {string} [passphrase]\n * @param {number[]} [path]\n * @returns {Promise}\n */\n async toEd25519PrivateKey(passphrase = \"\", path) {\n return CACHE.privateKeyConstructor(\n // eslint-disable-next-line deprecation/deprecation\n await this._mnemonic.toEd25519PrivateKey(passphrase, path),\n );\n }\n\n /**\n * Recover an Ed25519 private key from this mnemonic phrase, with an\n * optional passphrase.\n *\n * @param {string} [passphrase]\n * @param {number} [index]\n * @returns {Promise}\n */\n async toStandardEd25519PrivateKey(passphrase = \"\", index) {\n return CACHE.privateKeyConstructor(\n await this._mnemonic.toStandardEd25519PrivateKey(passphrase, index),\n );\n }\n\n /**\n * @deprecated - Use `toStandardEd25519PrivateKey()` or `toStandardECDSAsecp256k1PrivateKey()` instead\n * Recover an ECDSA private key from this mnemonic phrase, with an\n * optional passphrase.\n * @param {string} [passphrase]\n * @param {number[]} [path]\n * @returns {Promise}\n */\n async toEcdsaPrivateKey(passphrase = \"\", path) {\n return CACHE.privateKeyConstructor(\n // eslint-disable-next-line deprecation/deprecation\n await this._mnemonic.toEcdsaPrivateKey(passphrase, path),\n );\n }\n\n /**\n * Converts a derivation path from string to an array of integers.\n * Note that this expects precisely 5 components in the derivation path,\n * as per BIP-44:\n * `m / purpose' / coin_type' / account' / change / address_index`\n * Takes into account `'` for hardening as per BIP-32,\n * and does not prescribe which components should be hardened.\n *\n * @param {string} derivationPath the derivation path in BIP-44 format,\n * e.g. \"m/44'/60'/0'/0/0\"\n * @returns {Array} to be used with PrivateKey#derive\n */\n calculateDerivationPathValues(derivationPath) {\n // Parse the derivation path from string into values\n const pattern = /m\\/(\\d+'?)\\/(\\d+'?)\\/(\\d+'?)\\/(\\d+'?)\\/(\\d+'?)/;\n const matches = pattern.exec(derivationPath);\n const values = new Array(5); // as Array;\n if (matches) {\n // Extract numbers and use apostrophe to select if is hardened\n for (let i = 1; i <= 5; i++) {\n let value = matches[i];\n if (value.endsWith(\"'\")) {\n value = value.substring(0, value.length - 1);\n values[i - 1] = parseInt(value, 10) | HARDENED_BIT;\n } else {\n values[i - 1] = parseInt(value, 10);\n }\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return values;\n }\n\n /**\n * Common implementation for both `toStandardECDSAsecp256k1PrivateKey`\n * functions.\n *\n * @param {string} passphrase the passphrase used to protect the\n * mnemonic, use \"\" for none\n * @param {Array} derivationPathValues derivation path as an\n * integer array,\n * see: `calculateDerivationPathValues`\n * @returns {Promise} a private key\n */\n async toStandardECDSAsecp256k1PrivateKeyImpl(\n passphrase,\n derivationPathValues,\n ) {\n // eslint-disable-next-line deprecation/deprecation\n return await this.toEcdsaPrivateKey(passphrase, derivationPathValues);\n }\n\n /**\n * Recover an ECDSA private key from this mnemonic phrase, with an\n * optional passphrase.\n *\n * @param {string} [passphrase]\n * @param {number} [index]\n * @returns {Promise}\n */\n async toStandardECDSAsecp256k1PrivateKey(passphrase = \"\", index) {\n return CACHE.privateKeyConstructor(\n await this._mnemonic.toStandardECDSAsecp256k1PrivateKey(\n passphrase,\n index,\n ),\n );\n }\n\n /**\n * Recover an ECDSAsecp256k1 private key from this mnemonic phrase and\n * derivation path, with an optional passphrase\n *\n * @param {string} passphrase the passphrase used to protect the mnemonic,\n * use \"\" for none\n * @param {string} derivationPath the derivation path in BIP-44 format,\n * e.g. \"m/44'/60'/0'/0/0\"\n * @returns {Promise} the private key\n */\n async toStandardECDSAsecp256k1PrivateKeyCustomDerivationPath(\n passphrase = \"\",\n derivationPath,\n ) {\n const derivationPathValues =\n this.calculateDerivationPathValues(derivationPath);\n return await this.toStandardECDSAsecp256k1PrivateKeyImpl(\n passphrase,\n derivationPathValues,\n );\n }\n\n /**\n * Recover a mnemonic phrase from a string, splitting on spaces. Handles 12, 22 (legacy), and 24 words.\n *\n * @param {string} mnemonic\n * @returns {Promise}\n */\n static async fromString(mnemonic) {\n return new Mnemonic(await cryptography.Mnemonic.fromString(mnemonic));\n }\n\n /**\n * @returns {Promise}\n */\n async toLegacyPrivateKey() {\n return CACHE.privateKeyConstructor(\n await this._mnemonic.toLegacyPrivateKey(),\n );\n }\n\n /**\n * @param {string} passphrase\n * @returns {Promise}\n */\n async toSeed(passphrase) {\n return await cryptography.Mnemonic.toSeed(\n this._mnemonic.words,\n passphrase,\n );\n }\n\n /**\n * @returns {string}\n */\n toString() {\n return this._mnemonic.toString();\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\n/**\n * A simple \"map\" type that allows indexing by objects other than\n * strings, numbers, or booleans, and doesn't use the object pointer.\n *\n * @abstract\n * @template {{ toString(): string }} KeyT\n * @template {any} ValueT\n */\nexport default class ObjectMap {\n /**\n * @param {(s: string) => KeyT} fromString\n */\n constructor(fromString) {\n /**\n * This map is from the stringified version of the key, to the value\n *\n * @type {Map}\n */\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n this._map = new Map();\n\n /**\n * This map is from the key, to the value\n *\n * @type {Map}\n */\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n this.__map = new Map();\n\n /**\n * A function pointer to convert a key into a string. So we can set each\n * value in both maps.\n */\n this._fromString = fromString;\n }\n\n /**\n * Get a value by key or string.\n *\n * This is the main benefit of this class. If a user provides a `KeyT` we\n * implicitly serialize it to a string and use the string version. Otherwise\n * the user will get `undefined` even for a key that exists in the map since\n * the `KeyT` the provided has a different pointer than the one we have stored.\n * The string version doesn't have this issue since JS hashes the string and\n * that would result in both `KeyT` hitting the same value even if they're\n * different pointers.\n *\n * @param {KeyT | string} key\n * @returns {?ValueT}\n */\n get(key) {\n const k = typeof key === \"string\" ? key : key.toString();\n\n const value = this._map.get(k);\n return value != null ? value : null;\n }\n\n /**\n * Set the key to a value in both maps\n *\n * @internal\n * @param {KeyT} key\n * @param {ValueT} value\n */\n _set(key, value) {\n const k = typeof key === \"string\" ? key : key.toString();\n\n this._map.set(k, value);\n this.__map.set(key, value);\n }\n\n /**\n * Create iterator of values\n *\n * @returns {IterableIterator}\n */\n values() {\n return this._map.values();\n }\n\n /**\n * Get the size of the map\n *\n * @returns {number}\n */\n get size() {\n return this._map.size;\n }\n\n /**\n * Get the keys of the map.\n *\n * @returns {IterableIterator}\n */\n keys() {\n return this.__map.keys();\n }\n\n /**\n * Create an iterator over key, value pairs\n *\n * @returns {IterableIterator<[KeyT, ValueT]>}\n */\n [Symbol.iterator]() {\n return this.__map[Symbol.iterator]();\n }\n\n /**\n * Stringify the map into _something_ readable.\n * **NOTE**: This implementation is not stable and can change.\n *\n * @returns {string}\n */\n toString() {\n /** @type {{[key: string]: any}} */\n const map = {};\n\n for (const [key, value] of this._map) {\n map[key] = value;\n }\n\n return JSON.stringify(map);\n }\n\n toJSON() {\n const obj = {};\n\n this._map.forEach((value, key) => {\n // @ts-ignore\n obj[key] = value;\n });\n\n return obj;\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Key from \"./Key.js\";\nimport * as hex from \"./encoding/hex.js\";\nimport { arrayEqual } from \"./util.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.IKey} HashgraphProto.proto.IKey\n */\n\n/**\n * @typedef {import(\"./client/Client.js\").default<*, *>} Client\n */\n\nexport default class EvmAddress extends Key {\n /**\n * @internal\n * @param {Uint8Array} bytes\n */\n constructor(bytes) {\n super();\n this._bytes = bytes;\n }\n\n /**\n * @param {string} text\n * @returns {EvmAddress}\n */\n static fromString(text) {\n return new EvmAddress(hex.decode(text));\n }\n\n /**\n * @param {Uint8Array} bytes\n * @returns {EvmAddress}\n */\n static fromBytes(bytes) {\n return new EvmAddress(bytes);\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytes() {\n return this._bytes;\n }\n\n /**\n * @returns {string}\n */\n toString() {\n return hex.encode(this._bytes);\n }\n\n /**\n * @param {EvmAddress} other\n * @returns {boolean}\n */\n equals(other) {\n return arrayEqual(this._bytes, other._bytes);\n }\n}\n","const global = globalThis || void 0 || self;\n\nexport { global as default, global };\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status ? response.status : null;\n }\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.status\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n if (utils.isFunction(options)) {\n options = {\n serialize: options\n };\n } \n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isHeaders(header)) {\n for (const [key, value] of header.entries()) {\n setHeader(value, key, rewrite);\n }\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn.apply(null, args);\n }\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs)\n }, threshold - passed);\n }\n }\n }\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\nimport utils from \"../utils.js\";\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n}\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n}\n\nexport const asyncDecorator = (fn) => (...args) => utils.asap(() => fn(...args));\n","import platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n})(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n) : () => true;\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, prop , caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, prop , caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, prop , caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b , prop) => mergeDeepProperties(headersToObject(a), headersToObject(b),prop, true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n let contentType;\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // Let the browser set it\n } else if ((contentType = headers.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {progressEventReducer} from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n }\n\n let timer = timeout && setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n }, timeout)\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n }\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n }\n}\n\nexport default composeSignals;\n","\nexport const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n}\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n}\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const {done, value} = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n }\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n}\n\nconst supportsRequestStream = isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n});\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n\nconst resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = utils.isFunction(res[type]) ? (res) => res[type]() :\n (_, config) => {\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n })\n });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if(utils.isBlob(body)) {\n return body.size;\n }\n\n if(utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if(utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if(utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if(utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n}\n\nconst resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n}\n\nexport default isFetchSupported && (async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = \"credentials\" in Request.prototype;\n request = new Request(url, {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: isCredentialsSupported ? withCredentials : undefined\n });\n\n let response = await fetch(request);\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n })\n })\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n});\n\n\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: fetchAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","export const VERSION = \"1.7.9\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n }\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n validator.assertOptions(config, {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken')\n }, true);\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Long from \"long\";\nimport * as entity_id from \"../EntityIdHelper.js\";\nimport * as HashgraphProto from \"@hashgraph/proto\";\nimport Key from \"../Key.js\";\nimport PublicKey from \"../PublicKey.js\";\nimport CACHE from \"../Cache.js\";\nimport EvmAddress from \"../EvmAddress.js\";\nimport * as hex from \".././encoding/hex.js\";\nimport { isLongZeroAddress } from \"../util.js\";\nimport axios from \"axios\";\n\n/**\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n */\n\n/**\n * The ID for a crypto-currency account on Hedera.\n */\nexport default class AccountId {\n /**\n * @param {number | Long | import(\"../EntityIdHelper\").IEntityId} props\n * @param {(number | Long)=} realm\n * @param {(number | Long)=} num\n * @param {(PublicKey)=} aliasKey\n * @param {(EvmAddress)=} evmAddress\n */\n constructor(props, realm, num, aliasKey, evmAddress) {\n const result = entity_id.constructor(props, realm, num);\n\n this.shard = result.shard;\n this.realm = result.realm;\n this.num = result.num;\n this.aliasKey = aliasKey != null ? aliasKey : null;\n this.evmAddress = evmAddress != null ? evmAddress : null;\n\n /**\n * @type {string | null}\n */\n this._checksum = null;\n }\n\n /**\n * @description Accepts the following formats as string:\n * - as stand alone nubmers\n * - as shard.realm.num\n * - as shard.realm.hex (wo 0x prefix)\n * - hex (w/wo 0x prefix)\n * @param {string} text\n * @returns {AccountId}\n */\n static fromString(text) {\n let shard = Long.ZERO;\n let realm = Long.ZERO;\n let num = Long.ZERO;\n let aliasKey = undefined;\n let evmAddress = undefined;\n\n if ((text.startsWith(\"0x\") && text.length == 42) || text.length == 40) {\n evmAddress = EvmAddress.fromString(text);\n } else {\n const result = entity_id.fromStringSplitter(text);\n\n if (Number.isNaN(result.shard) || Number.isNaN(result.realm)) {\n throw new Error(\"invalid format for entity ID\");\n }\n\n if (result.shard != null) shard = Long.fromString(result.shard);\n if (result.realm != null) realm = Long.fromString(result.realm);\n\n if (result.numOrHex.length < 20) {\n num = Long.fromString(result.numOrHex);\n } else if (result.numOrHex.length == 40) {\n evmAddress = EvmAddress.fromString(result.numOrHex);\n } else {\n aliasKey = PublicKey.fromString(result.numOrHex);\n }\n }\n\n return new AccountId(shard, realm, num, aliasKey, evmAddress);\n }\n\n /**\n * @description This handles both long-zero format and evm address format addresses.\n * If an actual evm address is passed, please use `AccountId.populateAccountNum(client)` method\n * to get the actual `num` value, since there is no cryptographic relation to the evm address\n * and cannot be populated directly\n * @param {Long | number} shard\n * @param {Long | number} realm\n * @param {EvmAddress | string} evmAddress\n * @returns {AccountId}\n */\n static fromEvmAddress(shard, realm, evmAddress) {\n const evmAddressObj =\n typeof evmAddress === \"string\"\n ? EvmAddress.fromString(evmAddress)\n : evmAddress;\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n if (isLongZeroAddress(evmAddressObj.toBytes())) {\n // eslint-disable-next-line deprecation/deprecation\n return this.fromSolidityAddress(evmAddressObj.toString());\n } else {\n return new AccountId(shard, realm, 0, undefined, evmAddressObj);\n }\n }\n\n /**\n * @deprecated - Use `fromEvmAddress` instead\n * @summary Accepts an evm address only as `EvmAddress` type\n * @param {EvmAddress} evmAddress\n * @returns {AccountId}\n */\n static fromEvmPublicAddress(evmAddress) {\n return new AccountId(0, 0, 0, undefined, evmAddress);\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.IAccountID} id\n * @returns {AccountId}\n */\n static _fromProtobuf(id) {\n let aliasKey = undefined;\n let evmAddress = undefined;\n\n if (id.alias != null) {\n if (id.alias.length === 20) {\n evmAddress = EvmAddress.fromBytes(id.alias);\n } else {\n aliasKey = Key._fromProtobufKey(\n HashgraphProto.proto.Key.decode(id.alias),\n );\n }\n }\n\n if (!(aliasKey instanceof PublicKey)) {\n aliasKey = undefined;\n }\n\n return new AccountId(\n id.shardNum != null ? id.shardNum : 0,\n id.realmNum != null ? id.realmNum : 0,\n id.accountNum != null ? id.accountNum : 0,\n aliasKey,\n evmAddress,\n );\n }\n\n /**\n * @returns {string | null}\n */\n get checksum() {\n return this._checksum;\n }\n\n /**\n * @returns {?EvmAddress}\n */\n getEvmAddress() {\n return this.evmAddress;\n }\n\n /**\n * @description Gets the actual `num` field of the `AccountId` from the Mirror Node.\n * Should be used after generating `AccountId.fromEvmAddress()` because it sets the `num` field to `0`\n * automatically since there is no connection between the `num` and the `evmAddress`\n * @param {Client} client\n * @returns {Promise}\n */\n async populateAccountNum(client) {\n if (this.evmAddress === null) {\n throw new Error(\"field `evmAddress` should not be null\");\n }\n const mirrorUrl = client.mirrorNetwork[0].slice(\n 0,\n client.mirrorNetwork[0].indexOf(\":\"),\n );\n\n await new Promise((resolve) => {\n setTimeout(resolve, 3000);\n });\n\n /* eslint-disable */\n const url = `https://${mirrorUrl}/api/v1/accounts/${this.evmAddress.toString()}`;\n const mirrorAccountId = (await axios.get(url)).data.account;\n\n this.num = Long.fromString(\n mirrorAccountId.slice(mirrorAccountId.lastIndexOf(\".\") + 1),\n );\n /* eslint-enable */\n\n return this;\n }\n\n /**\n * @description Populates `evmAddress` field of the `AccountId` extracted from the Mirror Node.\n * @param {Client} client\n * @returns {Promise}\n */\n async populateAccountEvmAddress(client) {\n if (this.num === null) {\n throw new Error(\"field `num` should not be null\");\n }\n const mirrorUrl = client.mirrorNetwork[0].slice(\n 0,\n client.mirrorNetwork[0].indexOf(\":\"),\n );\n\n await new Promise((resolve) => {\n setTimeout(resolve, 3000);\n });\n\n /* eslint-disable */\n const url = `https://${mirrorUrl}/api/v1/accounts/${this.num.toString()}`;\n const mirrorAccountId = (await axios.get(url)).data.evm_address;\n\n this.evmAddress = EvmAddress.fromString(mirrorAccountId);\n /* eslint-enable */\n\n return this;\n }\n\n /**\n * @deprecated - Use `validateChecksum` instead\n * @param {Client} client\n */\n validate(client) {\n console.warn(\"Deprecated: Use `validateChecksum` instead\");\n this.validateChecksum(client);\n }\n\n /**\n * @param {Client} client\n */\n validateChecksum(client) {\n if (this.aliasKey != null) {\n throw new Error(\n \"cannot calculate checksum with an account ID that has a aliasKey\",\n );\n }\n\n entity_id.validateChecksum(\n this.shard,\n this.realm,\n this.num,\n this._checksum,\n client,\n );\n }\n\n /**\n * @param {Uint8Array} bytes\n * @returns {AccountId}\n */\n static fromBytes(bytes) {\n return AccountId._fromProtobuf(\n HashgraphProto.proto.AccountID.decode(bytes),\n );\n }\n\n /**\n * @deprecated - Use `fromEvmAddress` instead\n * @param {string} address\n * @returns {AccountId}\n */\n static fromSolidityAddress(address) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n if (isLongZeroAddress(hex.decode(address))) {\n return new AccountId(...entity_id.fromSolidityAddress(address));\n } else {\n return this.fromEvmAddress(0, 0, address);\n }\n }\n\n /**\n * @returns {string}\n */\n toSolidityAddress() {\n if (this.evmAddress != null) {\n return this.evmAddress.toString();\n } else if (\n this.aliasKey != null &&\n this.aliasKey._key._type == \"secp256k1\"\n ) {\n return this.aliasKey.toEvmAddress();\n } else {\n return entity_id.toSolidityAddress([\n this.shard,\n this.realm,\n this.num,\n ]);\n }\n }\n\n //TODO remove the comments after we get to HIP-631\n /**\n * @internal\n * @returns {HashgraphProto.proto.IAccountID}\n */\n _toProtobuf() {\n let alias = null;\n //let evmAddress = null;\n\n if (this.aliasKey != null) {\n alias = HashgraphProto.proto.Key.encode(\n this.aliasKey._toProtobufKey(),\n ).finish();\n } else if (this.evmAddress != null) {\n alias = this.evmAddress._bytes;\n }\n\n /* if (this.evmAddress != null) {\n evmAddress = this.evmAddress._bytes;\n } */\n\n return {\n alias,\n accountNum: this.aliasKey != null ? null : this.num,\n shardNum: this.shard,\n realmNum: this.realm,\n //evmAddress,\n };\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytes() {\n return HashgraphProto.proto.AccountID.encode(\n this._toProtobuf(),\n ).finish();\n }\n\n /**\n * @returns {string}\n */\n toString() {\n let account = this.num.toString();\n\n if (this.aliasKey != null) {\n account = this.aliasKey.toString();\n } else if (this.evmAddress != null) {\n account = this.evmAddress.toString();\n }\n\n return `${this.shard.toString()}.${this.realm.toString()}.${account}`;\n }\n\n /**\n * @param {Client} client\n * @returns {string}\n */\n toStringWithChecksum(client) {\n if (this.aliasKey != null) {\n throw new Error(\n \"cannot calculate checksum with an account ID that has a aliasKey\",\n );\n }\n\n return entity_id.toStringWithChecksum(this.toString(), client);\n }\n\n /**\n * @param {this} other\n * @returns {boolean}\n */\n equals(other) {\n let account = false;\n\n if (this.aliasKey != null && other.aliasKey != null) {\n account = this.aliasKey.equals(other.aliasKey);\n } else if (this.evmAddress != null && other.evmAddress != null) {\n account = this.evmAddress.equals(other.evmAddress);\n } else if (\n this.aliasKey == null &&\n other.aliasKey == null &&\n this.evmAddress == null &&\n other.evmAddress == null\n ) {\n account = this.num.eq(other.num);\n }\n\n return (\n this.shard.eq(other.shard) && this.realm.eq(other.realm) && account\n );\n }\n\n /**\n * @returns {AccountId}\n */\n clone() {\n const id = new AccountId(this);\n id._checksum = this._checksum;\n id.aliasKey = this.aliasKey;\n id.evmAddress = this.evmAddress;\n return id;\n }\n\n /**\n * @param {AccountId} other\n * @returns {number}\n */\n compare(other) {\n let comparison = this.shard.compare(other.shard);\n if (comparison != 0) {\n return comparison;\n }\n\n comparison = this.realm.compare(other.realm);\n if (comparison != 0) {\n return comparison;\n }\n\n if (this.aliasKey != null && other.aliasKey != null) {\n const t = this.aliasKey.toString();\n const o = other.aliasKey.toString();\n\n if (t > o) {\n return 1;\n } else if (t < o) {\n return -1;\n } else {\n return 0;\n }\n } else if (this.evmAddress != null && other.evmAddress != null) {\n const t = this.evmAddress.toString();\n const o = other.evmAddress.toString();\n\n if (t > o) {\n return 1;\n } else if (t < o) {\n return -1;\n } else {\n return 0;\n }\n } else if (\n this.aliasKey == null &&\n other.aliasKey == null &&\n this.evmAddress == null &&\n other.evmAddress == null\n ) {\n return this.num.compare(other.num);\n } else {\n return 1;\n }\n }\n}\n\nCACHE.setAccountIdConstructor(\n (shard, realm, key) => new AccountId(shard, realm, Long.ZERO, key),\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Long from \"long\";\nimport Cache from \"./Cache.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITimestamp} HashgraphProto.proto.ITimestamp\n */\n\nconst MAX_NS = Long.fromNumber(1000000000);\nconst generatedIds = new Set();\n\nexport default class Timestamp {\n /**\n * @param {Long | number} seconds\n * @param {Long | number} nanos\n */\n constructor(seconds, nanos) {\n /**\n * @readonly\n * @type {Long}\n */\n this.seconds =\n seconds instanceof Long ? seconds : Long.fromNumber(seconds);\n\n /**\n * @readonly\n * @type {Long}\n */\n this.nanos = nanos instanceof Long ? nanos : Long.fromNumber(nanos);\n\n Object.freeze(this);\n }\n\n /**\n * @param {boolean} hasJitter\n * @returns {Timestamp}\n */\n static generate(hasJitter = true) {\n let jitter;\n if (hasJitter) {\n jitter = Math.floor(Math.random() * 5000) + 3000;\n } else {\n jitter = 0;\n }\n const now = Date.now() - jitter;\n const seconds = Math.floor(now / 1000) + Cache.timeDrift;\n const nanos =\n Math.floor(now % 1000) * 1000000 +\n Math.floor(Math.random() * 1000000);\n\n const timestamp = new Timestamp(seconds, nanos);\n if (generatedIds.has(timestamp.toString())) {\n return this.generate();\n } else {\n generatedIds.add(timestamp.toString());\n return timestamp;\n }\n }\n\n /**\n * @param {string | number | Date} date\n * @returns {Timestamp}\n */\n static fromDate(date) {\n let nanos;\n\n if (typeof date === \"number\") {\n nanos = Long.fromNumber(date);\n } else if (typeof date === \"string\") {\n nanos = Long.fromNumber(Date.parse(date)).mul(1000000);\n } else if (date instanceof Date) {\n nanos = Long.fromNumber(date.getTime()).mul(1000000);\n } else {\n throw new TypeError(\n `invalid type '${typeof date}' for 'data', expected 'Date'`,\n );\n }\n\n return new Timestamp(0, 0).plusNanos(nanos);\n }\n\n /**\n * @returns {Date}\n */\n toDate() {\n return new Date(\n this.seconds.toInt() * 1000 +\n Math.floor(this.nanos.toInt() / 1000000),\n );\n }\n\n /**\n * @param {Long | number} nanos\n * @returns {Timestamp}\n */\n plusNanos(nanos) {\n const ns = this.nanos.add(nanos);\n\n return new Timestamp(this.seconds.add(ns.div(MAX_NS)), ns.mod(MAX_NS));\n }\n\n /**\n * @internal\n * @returns {HashgraphProto.proto.ITimestamp}\n */\n _toProtobuf() {\n return {\n seconds: this.seconds,\n nanos: this.nanos.toInt(),\n };\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITimestamp} timestamp\n * @returns {Timestamp}\n */\n static _fromProtobuf(timestamp) {\n return new Timestamp(\n timestamp.seconds instanceof Long\n ? timestamp.seconds.toInt()\n : timestamp.seconds != null\n ? timestamp.seconds\n : 0,\n\n timestamp.nanos != null ? timestamp.nanos : 0,\n );\n }\n\n /**\n * @returns {string}\n */\n toString() {\n const zeroPaddedNanos = String(this.nanos).padStart(9, \"0\");\n return `${this.seconds.toString()}.${zeroPaddedNanos}`;\n }\n\n /**\n * @param {Timestamp} other\n * @returns {number}\n */\n compare(other) {\n const comparison = this.seconds.compare(other.seconds);\n\n if (comparison != 0) {\n return comparison;\n }\n\n return this.nanos.compare(other.nanos);\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport AccountId from \"../account/AccountId.js\";\nimport Timestamp from \"../Timestamp.js\";\nimport * as HashgraphProto from \"@hashgraph/proto\";\nimport Long from \"long\";\nimport CACHE from \"../Cache.js\";\n\n/**\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"./TransactionReceipt.js\").default} TransactionReceipt\n * @typedef {import(\"./TransactionRecord.js\").default} TransactionRecord\n */\n\n/**\n * The client-generated ID for a transaction.\n *\n * This is used for retrieving receipts and records for a transaction, for appending to a file\n * right after creating it, for instantiating a smart contract with bytecode in a file just created,\n * and internally by the network for detecting when duplicate transactions are submitted.\n */\nexport default class TransactionId {\n /**\n * Don't use this method directly.\n * Use `TransactionId.[generate|withNonce|withValidStart]()` instead.\n *\n * @param {?AccountId} accountId\n * @param {?Timestamp} validStart\n * @param {?boolean} scheduled\n * @param {?Long | number} nonce\n */\n constructor(accountId, validStart, scheduled = false, nonce = null) {\n /**\n * The Account ID that paid for this transaction.\n *\n * @readonly\n */\n this.accountId = accountId;\n\n /**\n * The time from when this transaction is valid.\n *\n * When a transaction is submitted there is additionally a validDuration (defaults to 120s)\n * and together they define a time window that a transaction may be processed in.\n *\n * @readonly\n */\n this.validStart = validStart;\n\n this.scheduled = scheduled;\n\n this.nonce = null;\n if (nonce != null && nonce != 0) {\n this.setNonce(nonce);\n }\n\n Object.seal(this);\n }\n\n /**\n * @param {Long | number} nonce\n * @returns {TransactionId}\n */\n setNonce(nonce) {\n this.nonce = typeof nonce === \"number\" ? Long.fromNumber(nonce) : nonce;\n return this;\n }\n\n /**\n * @param {AccountId} accountId\n * @param {Timestamp} validStart\n * @returns {TransactionId}\n */\n static withValidStart(accountId, validStart) {\n return new TransactionId(accountId, validStart);\n }\n\n /**\n * Generates a new transaction ID for the given account ID.\n *\n * Note that transaction IDs are made of the valid start of the transaction and the account\n * that will be charged the transaction fees for the transaction.\n *\n * @param {AccountId | string} id\n * @returns {TransactionId}\n */\n static generate(id) {\n return new TransactionId(\n typeof id === \"string\"\n ? AccountId.fromString(id)\n : new AccountId(id),\n Timestamp.generate(),\n );\n }\n\n /**\n * @param {string} wholeId\n * @returns {TransactionId}\n */\n static fromString(wholeId) {\n let account, seconds, nanos, isScheduled, nonce;\n let rest;\n // 1.1.1@5.4?scheduled/117\n\n [account, rest] = wholeId.split(\"@\");\n [seconds, rest] = rest.split(\".\");\n if (rest.includes(\"?\")) {\n [nanos, rest] = rest.split(\"?scheduled\");\n isScheduled = true;\n if (rest.includes(\"/\")) {\n nonce = rest.replace(\"/\", \"\");\n } else {\n nonce = null;\n }\n } else if (rest.includes(\"/\")) {\n [nanos, nonce] = rest.split(\"/\");\n isScheduled = false;\n } else {\n nanos = rest;\n }\n\n return new TransactionId(\n AccountId.fromString(account),\n new Timestamp(Long.fromValue(seconds), Long.fromValue(nanos)),\n isScheduled,\n nonce != null ? Long.fromString(nonce) : null,\n );\n }\n\n /**\n * @param {boolean} scheduled\n * @returns {this}\n */\n setScheduled(scheduled) {\n this.scheduled = scheduled;\n return this;\n }\n\n /**\n * @returns {string}\n */\n toString() {\n if (this.accountId != null && this.validStart != null) {\n const zeroPaddedNanos = String(this.validStart.nanos).padStart(\n 9,\n \"0\",\n );\n const nonce =\n this.nonce != null ? \"/\".concat(this.nonce.toString()) : \"\";\n const scheduled = this.scheduled ? \"?scheduled\" : \"\";\n return `${this.accountId.toString()}@${this.validStart.seconds.toString()}.${zeroPaddedNanos}${scheduled}${nonce}`;\n } else {\n throw new Error(\"neither `accountId` nor `validStart` are set\");\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransactionID} id\n * @returns {TransactionId}\n */\n static _fromProtobuf(id) {\n if (id.accountID != null && id.transactionValidStart != null) {\n return new TransactionId(\n AccountId._fromProtobuf(id.accountID),\n Timestamp._fromProtobuf(id.transactionValidStart),\n id.scheduled != null ? id.scheduled : undefined,\n id.nonce != null ? id.nonce : undefined,\n );\n } else {\n throw new Error(\n \"Neither `nonce` or `accountID` and `transactionValidStart` are set\",\n );\n }\n }\n\n /**\n * @internal\n * @returns {HashgraphProto.proto.ITransactionID}\n */\n _toProtobuf() {\n return {\n accountID:\n this.accountId != null ? this.accountId._toProtobuf() : null,\n transactionValidStart:\n this.validStart != null ? this.validStart._toProtobuf() : null,\n scheduled: this.scheduled,\n nonce: this.nonce != null ? this.nonce.toInt() : null,\n };\n }\n\n /**\n * @param {Uint8Array} bytes\n * @returns {TransactionId}\n */\n static fromBytes(bytes) {\n return TransactionId._fromProtobuf(\n HashgraphProto.proto.TransactionID.decode(bytes),\n );\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytes() {\n return HashgraphProto.proto.TransactionID.encode(\n this._toProtobuf(),\n ).finish();\n }\n\n /**\n * @returns {TransactionId}\n */\n clone() {\n return new TransactionId(\n this.accountId,\n this.validStart,\n this.scheduled,\n this.nonce,\n );\n }\n\n /**\n * @param {TransactionId} other\n * @returns {number}\n */\n compare(other) {\n const comparison = /** @type {AccountId} */ (this.accountId).compare(\n /** @type {AccountId} */ (other.accountId),\n );\n\n if (comparison != 0) {\n return comparison;\n }\n\n return /** @type {Timestamp} */ (this.validStart).compare(\n /** @type {Timestamp} */ (other.validStart),\n );\n }\n\n /**\n * @param {Client} client\n * @returns {Promise}\n */\n getReceipt(client) {\n return CACHE.transactionReceiptQueryConstructor()\n .setTransactionId(this)\n .execute(client);\n }\n\n /**\n * @param {Client} client\n * @returns {Promise}\n */\n async getRecord(client) {\n await this.getReceipt(client);\n\n return CACHE.transactionRecordQueryConstructor()\n .setTransactionId(this)\n .execute(client);\n }\n}\n","import ObjectMap from \"../ObjectMap.js\";\nimport PublicKey from \"../PublicKey.js\";\n\n/**\n * @augments {ObjectMap}\n */\nexport default class SignaturePairMap extends ObjectMap {\n constructor() {\n super((s) => PublicKey.fromString(s));\n }\n\n /**\n * This function is used to create a SignaturePairMap from an already built transaction.\n * @param {import(\"@hashgraph/proto\").proto.ISignatureMap} sigMap\n * @returns {SignaturePairMap}\n */\n static _fromTransactionSigMap(sigMap) {\n const signatures = new SignaturePairMap();\n\n const sigPairs = sigMap.sigPair != null ? sigMap.sigPair : [];\n\n for (const sigPair of sigPairs) {\n if (sigPair.pubKeyPrefix == null) {\n continue;\n }\n\n if (sigPair.ed25519 != null) {\n signatures._set(\n PublicKey.fromBytesED25519(sigPair.pubKeyPrefix),\n sigPair.ed25519,\n );\n } else if (sigPair.ECDSASecp256k1 != null) {\n signatures._set(\n PublicKey.fromBytesECDSA(sigPair.pubKeyPrefix),\n sigPair.ECDSASecp256k1,\n );\n }\n }\n\n return signatures;\n }\n\n /**\n *\n * @param {PublicKey} pubKey\n * @param {Uint8Array} signature\n * @returns {SignaturePairMap}\n */\n addSignature(pubKey, signature) {\n this._set(pubKey, signature);\n return this;\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport ObjectMap from \"../ObjectMap.js\";\nimport TransactionId from \"./TransactionId.js\";\nimport SignaturePairMap from \"./SignaturePairMap.js\";\nimport * as HashgraphProto from \"@hashgraph/proto\";\n\n/**\n * @augments {ObjectMap}\n */\nexport default class NodeAccountIdSignatureMap extends ObjectMap {\n constructor() {\n super((s) => TransactionId.fromString(s));\n }\n\n /**\n * This function is used to create a NodeAccountIdSignaturemap from an already built transaction.\n * @param { import('./List.js').default} signedTransactions\n * @returns {NodeAccountIdSignatureMap}\n */\n static _fromSignedTransactions(signedTransactions) {\n const signatures = new NodeAccountIdSignatureMap();\n\n for (const { bodyBytes, sigMap } of signedTransactions.list) {\n if (bodyBytes != null && sigMap != null) {\n const body =\n HashgraphProto.proto.TransactionBody.decode(bodyBytes);\n\n if (body.transactionID != null) {\n const transactionId = TransactionId._fromProtobuf(\n body.transactionID,\n );\n\n signatures._set(\n transactionId,\n SignaturePairMap._fromTransactionSigMap(sigMap),\n );\n }\n }\n }\n\n return signatures;\n }\n\n /**\n *\n * Adds a signature pair for this transaction id.\n * @param {TransactionId} txId\n * @param {import(\"../SignerSignature.js\").PublicKey} publicKey\n * @param {Uint8Array} signature\n */\n addSignature(txId, publicKey, signature) {\n const sigPairMap = this.get(txId);\n if (sigPairMap) {\n sigPairMap.addSignature(publicKey, signature);\n } else {\n this._set(\n txId,\n new SignaturePairMap().addSignature(publicKey, signature),\n );\n }\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\n/**\n * A custom list type which round robins, supports locking, and as additional\n * QoL improvements.\n *\n * @template {any} T\n */\nexport default class List {\n constructor() {\n /** @type {T[]} */\n this.list = [];\n this.locked = false;\n this.index = 0;\n }\n\n /**\n * Overwrite the entire list.\n *\n * @throws if the list is locked\n * @param {T[]} list\n * @returns {this}\n */\n setList(list) {\n if (this.locked) {\n throw new Error(\"list is locked\");\n }\n\n this.list = list;\n this.index = 0;\n\n return this;\n }\n\n /**\n * Push items to the end of the list.\n *\n * @throws if the list is locked\n * @param {T[]} items\n * @returns {this}\n */\n push(...items) {\n if (this.locked) {\n throw new Error(\"list is locked\");\n }\n\n this.list.push(...items);\n return this;\n }\n\n /**\n * Locks the list.\n *\n * @returns {this}\n */\n setLocked() {\n this.locked = true;\n return this;\n }\n\n /**\n * Clear the list\n */\n clear() {\n this.list = [];\n this.index = 0;\n }\n\n /**\n * The get value at a particular index.\n *\n * @param {number} index\n * @returns {T}\n */\n get(index) {\n return this.list[index];\n }\n\n /**\n * Set value at index\n *\n * @param {number} index\n * @param {T} item\n * @returns {this}\n */\n set(index, item) {\n // QoL: If the index is at the end simply push the element to the end\n if (index === this.length) {\n this.list.push(item);\n } else {\n this.list[index] = item;\n }\n\n return this;\n }\n\n /**\n * Set value at index if it's not already set\n *\n * @throws if the list is locked\n * @param {number} index\n * @param {() => T} lambda\n * @returns {this}\n */\n setIfAbsent(index, lambda) {\n if (index == this.length || this.list[index] == null) {\n this.set(index, lambda());\n }\n\n return this;\n }\n\n /**\n * Get the current value, and advance the index\n *\n * @returns {T}\n */\n get next() {\n return this.get(this.advance());\n }\n\n /**\n * Get the current value.\n *\n * @returns {T}\n */\n get current() {\n return this.get(this.index);\n }\n\n /**\n * Advance the index to the next element in a round robin fashion\n *\n * @returns {number}\n */\n advance() {\n const index = this.index;\n this.index = (this.index + 1) % this.list.length;\n return index;\n }\n\n /**\n * Is the list empty\n *\n * @returns {boolean}\n */\n get isEmpty() {\n return this.length === 0;\n }\n\n /**\n * Get the length of the list\n *\n * @returns {number}\n */\n get length() {\n return this.list.length;\n }\n\n /**\n * Shallow clone this list.\n * Perhaps we should explicitly call this `shallowClone()` since it doesn't\n * clone the list inside?\n *\n * @returns {List}\n */\n clone() {\n /** @type {List} */\n const list = new List();\n list.list = this.list;\n list.locked = this.locked;\n return list;\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport NodeAccountIdSignatureMap from \"./NodeAccountIdSignatureMap.js\";\nimport ObjectMap from \"../ObjectMap.js\";\nimport AccountId from \"../account/AccountId.js\";\nimport List from \"./List.js\";\n\n/**\n * @augments {ObjectMap}\n */\nexport default class SignatureMap extends ObjectMap {\n /**\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n * @typedef {import(\"../transaction/SignaturePairMap.js\").default} SignaturePairMap\n */\n constructor() {\n super((s) => AccountId.fromString(s));\n }\n\n /**\n * This function is used to create a SignatureMap from an already built transaction.\n * @param {import(\"./Transaction.js\").default} transaction\n * @returns {SignatureMap}\n */\n static _fromTransaction(transaction) {\n const signatures = new SignatureMap();\n\n const rowLength = transaction._nodeAccountIds.length;\n const columns = transaction._signedTransactions.length / rowLength;\n\n /*\n this setup implies that the signed transactions are stored sequentially\n in the signed transactions list. This means that the first rowLength\n signed transactions are for the first node account id, the next rowLength\n signed transactions are for the second node account id and so on.\n */\n for (let row = 0; row < rowLength; row++) {\n /** @type { List } */\n const signedTransactions = new List();\n\n for (let col = 0; col < columns; col++) {\n signedTransactions.push(\n transaction._signedTransactions.get(col * rowLength + row),\n );\n }\n\n signatures._set(\n transaction._nodeAccountIds.list[row],\n NodeAccountIdSignatureMap._fromSignedTransactions(\n signedTransactions,\n ),\n );\n }\n\n return signatures;\n }\n\n /**\n * Updates the signature map with the given signature.\n * by generating a new node account id signature map if it does not exist\n * or adding the signature to the existing node account id signature map.\n *\n * @param {AccountId} nodeId\n * @param {TransactionId} txId\n * @param {import(\"../SignerSignature.js\").PublicKey} publicKey\n * @param {Uint8Array} signature\n * @returns {SignatureMap}\n */\n addSignature(nodeId, txId, publicKey, signature) {\n let nodeAccountIdSigdMap = this.get(nodeId);\n\n if (!nodeAccountIdSigdMap) {\n nodeAccountIdSigdMap = new NodeAccountIdSignatureMap();\n this._set(nodeId, nodeAccountIdSigdMap);\n }\n\n nodeAccountIdSigdMap.addSignature(txId, publicKey, signature);\n this._set(nodeId, nodeAccountIdSigdMap);\n\n return this;\n }\n /**\n * @returns {SignaturePairMap[]}\n */\n getFlatSignatureList() {\n const flatSignatureList = [];\n\n for (const nodeAccountIdSignatureMap of this.values()) {\n for (const tx of nodeAccountIdSignatureMap.values()) {\n flatSignatureList.push(tx);\n }\n }\n\n return flatSignatureList;\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport * as cryptography from \"@hashgraph/cryptography\";\nimport Mnemonic from \"./Mnemonic.js\";\nimport PublicKey from \"./PublicKey.js\";\nimport Key from \"./Key.js\";\nimport CACHE from \"./Cache.js\";\nimport SignatureMap from \"./transaction/SignatureMap.js\";\n\nimport AccountId from \"./account/AccountId.js\";\nimport TransactionId from \"./transaction/TransactionId.js\";\nimport { proto } from \"@hashgraph/proto\";\n\n/**\n * @typedef {import(\"./transaction/Transaction.js\").default} Transaction\n */\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.IKey} HashgraphProto.proto.IKey\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ISignaturePair} HashgraphProto.proto.ISignaturePair\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HashgraphProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HashgraphProto.proto.TransactionBody\n */\n\nexport default class PrivateKey extends Key {\n /**\n * @internal\n * @hideconstructor\n * @param {cryptography.PrivateKey} key\n */\n constructor(key) {\n super();\n\n this._key = key;\n }\n\n /**\n * Generate a random Ed25519 private key.\n *\n * @returns {PrivateKey}\n */\n static generateED25519() {\n return new PrivateKey(cryptography.PrivateKey.generateED25519());\n }\n\n /**\n * Generate a random EDSA private key.\n *\n * @returns {PrivateKey}\n */\n static generateECDSA() {\n return new PrivateKey(cryptography.PrivateKey.generateECDSA());\n }\n\n /**\n * Depredated - Use `generateED25519()` instead\n * Generate a random Ed25519 private key.\n *\n * @returns {PrivateKey}\n */\n static generate() {\n return PrivateKey.generateED25519();\n }\n\n /**\n * Depredated - Use `generateED25519Async()` instead\n * Generate a random Ed25519 private key.\n *\n * @returns {Promise}\n */\n static async generateAsync() {\n return new PrivateKey(await cryptography.PrivateKey.generateAsync());\n }\n\n /**\n * Generate a random Ed25519 private key.\n *\n * @returns {Promise}\n */\n static async generateED25519Async() {\n return new PrivateKey(\n await cryptography.PrivateKey.generateED25519Async(),\n );\n }\n\n /**\n * Generate a random ECDSA private key.\n *\n * @returns {Promise}\n */\n static async generateECDSAAsync() {\n return new PrivateKey(\n await cryptography.PrivateKey.generateECDSAAsync(),\n );\n }\n\n /**\n * Construct a private key from bytes. Requires DER header.\n *\n * @param {Uint8Array} data\n * @returns {PrivateKey}\n */\n static fromBytes(data) {\n return new PrivateKey(cryptography.PrivateKey.fromBytes(data));\n }\n\n /**\n * Construct a ECDSA private key from bytes.\n *\n * @param {Uint8Array} data\n * @returns {PrivateKey}\n */\n static fromBytesECDSA(data) {\n return new PrivateKey(cryptography.PrivateKey.fromBytesECDSA(data));\n }\n\n /**\n * Construct a ED25519 private key from bytes.\n *\n * @param {Uint8Array} data\n * @returns {PrivateKey}\n */\n static fromBytesED25519(data) {\n return new PrivateKey(cryptography.PrivateKey.fromBytesED25519(data));\n }\n\n /**\n * @deprecated - Use fromStringECDSA() or fromStringED2551() on a HEX-encoded string\n * and fromStringDer() on a HEX-encoded string with DER prefix instead.\n * Construct a private key from a hex-encoded string. Requires DER header.\n * @param {string} text\n * @returns {PrivateKey}\n */\n static fromString(text) {\n return new PrivateKey(cryptography.PrivateKey.fromString(text));\n }\n\n /**\n * Construct a private key from a HEX-encoded string with a der prefix\n *\n * @param {string} text\n * @returns {PrivateKey}\n */\n static fromStringDer(text) {\n return new PrivateKey(cryptography.PrivateKey.fromString(text));\n }\n\n /**\n * Construct a ECDSA private key from a hex-encoded string.\n *\n * @param {string} text\n * @returns {PrivateKey}\n */\n static fromStringECDSA(text) {\n return new PrivateKey(cryptography.PrivateKey.fromStringECDSA(text));\n }\n\n /**\n * Construct a Ed25519 private key from a hex-encoded string.\n *\n * @param {string} text\n * @returns {PrivateKey}\n */\n static fromStringED25519(text) {\n return new PrivateKey(cryptography.PrivateKey.fromStringED25519(text));\n }\n\n /**\n * Construct a Ed25519 private key from a Uint8Array seed.\n *\n * @param {Uint8Array} seed\n * @returns {Promise}\n */\n static async fromSeedED25519(seed) {\n return new PrivateKey(\n await cryptography.PrivateKey.fromSeedED25519(seed),\n );\n }\n\n /**\n * Construct a Ed25519 private key from a Uint8Array seed.\n *\n * @param {Uint8Array} seed\n * @returns {Promise}\n */\n static async fromSeedECDSAsecp256k1(seed) {\n return new PrivateKey(\n await cryptography.PrivateKey.fromSeedECDSAsecp256k1(seed),\n );\n }\n\n /**\n * @deprecated - Use `Mnemonic.from[Words|String]().to[Ed25519|Ecdsa]PrivateKey()` instead\n *\n * Recover a private key from a mnemonic phrase (and optionally a password).\n * @param {Mnemonic | cryptography.Mnemonic | string} mnemonic\n * @param {string} [passphrase]\n * @returns {Promise}\n */\n static async fromMnemonic(mnemonic, passphrase = \"\") {\n if (mnemonic instanceof Mnemonic) {\n return new PrivateKey(\n // eslint-disable-next-line deprecation/deprecation\n await cryptography.PrivateKey.fromMnemonic(\n mnemonic._mnemonic,\n passphrase,\n ),\n );\n }\n\n return new PrivateKey(\n // eslint-disable-next-line deprecation/deprecation\n await cryptography.PrivateKey.fromMnemonic(mnemonic, passphrase),\n );\n }\n\n /**\n * Recover a private key from a keystore, previously created by `.toKeystore()`.\n *\n * This key will _not_ support child key derivation.\n *\n * @param {Uint8Array} data\n * @param {string} [passphrase]\n * @returns {Promise}\n * @throws {cryptography.BadKeyError} If the passphrase is incorrect or the hash fails to validate.\n */\n static async fromKeystore(data, passphrase = \"\") {\n return new PrivateKey(\n await cryptography.PrivateKey.fromKeystore(data, passphrase),\n );\n }\n\n /**\n * Recover a private key from a pem string; the private key may be encrypted.\n *\n * This method assumes the .pem file has been converted to a string already.\n *\n * If `passphrase` is not null or empty, this looks for the first `ENCRYPTED PRIVATE KEY`\n * section and uses `passphrase` to decrypt it; otherwise, it looks for the first `PRIVATE KEY`\n * section and decodes that as a DER-encoded private key.\n *\n * @param {string} data\n * @param {string} [passphrase]\n * @returns {Promise}\n */\n static async fromPem(data, passphrase = \"\") {\n return new PrivateKey(\n await cryptography.PrivateKey.fromPem(data, passphrase),\n );\n }\n\n /**\n * Derive a new private key at the given wallet index.\n *\n * Only currently supported for keys created with `fromMnemonic()`; other keys will throw\n * an error.\n *\n * You can check if a key supports derivation with `.supportsDerivation()`\n *\n * @param {number} index\n * @returns {Promise}\n * @throws If this key does not support derivation.\n */\n async derive(index) {\n return new PrivateKey(await this._key.derive(index));\n }\n\n /**\n * @param {number} index\n * @returns {Promise}\n * @throws If this key does not support derivation.\n */\n async legacyDerive(index) {\n return new PrivateKey(await this._key.legacyDerive(index));\n }\n\n /**\n * Get the public key associated with this private key.\n *\n * The public key can be freely given and used by other parties to verify\n * the signatures generated by this private key.\n *\n * @returns {PublicKey}\n */\n get publicKey() {\n return new PublicKey(this._key.publicKey);\n }\n\n /**\n * Get the public key associated with this private key.\n *\n * The public key can be freely given and used by other parties to verify\n * the signatures generated by this private key.\n *\n * @returns {?Uint8Array}\n */\n get chainCode() {\n return this._key._chainCode;\n }\n\n /**\n * Sign a message with this private key.\n *\n * @param {Uint8Array} bytes\n * @returns {Uint8Array} - The signature bytes without the message\n */\n sign(bytes) {\n return this._key.sign(bytes);\n }\n\n /**\n * @param {Transaction} transaction\n * @returns {SignatureMap}\n */\n signTransaction(transaction) {\n const sigMap = new SignatureMap();\n\n for (const signedTx of transaction._signedTransactions.list) {\n const bodyBytes = signedTx.bodyBytes;\n if (!bodyBytes) throw new Error(\"Body bytes are missing\");\n\n const body = proto.TransactionBody.decode(bodyBytes);\n if (!body.transactionID || !body.nodeAccountID) {\n throw new Error(\n \"Transaction ID or Node Account ID not found in the signed transaction\",\n );\n }\n\n const nodeId = AccountId._fromProtobuf(body.nodeAccountID);\n const transactionId = TransactionId._fromProtobuf(\n body.transactionID,\n );\n const sig = this._key.sign(bodyBytes);\n sigMap.addSignature(nodeId, transactionId, this.publicKey, sig);\n }\n\n transaction.addSignature(this.publicKey, sigMap);\n return sigMap;\n }\n /**\n * Check if `derive` can be called on this private key.\n *\n * This is only the case if the key was created from a mnemonic.\n *\n * @returns {boolean}\n */\n isDerivable() {\n return this._key.isDerivable();\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytes() {\n return this._key.toBytes();\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytesDer() {\n return this._key.toBytesDer();\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytesRaw() {\n return this._key.toBytesRaw();\n }\n\n /**\n * @returns {string}\n */\n toString() {\n return this._key.toStringDer();\n }\n\n /**\n * @returns {string}\n */\n toStringDer() {\n return this._key.toStringDer();\n }\n\n /**\n * @returns {string}\n */\n toStringRaw() {\n return this._key.toStringRaw();\n }\n\n /**\n * Create a keystore with a given passphrase.\n *\n * The key can be recovered later with `fromKeystore()`.\n *\n * Note that this will not retain the ancillary data used for\n * deriving child keys, thus `.derive()` on the restored key will\n * throw even if this instance supports derivation.\n *\n * @param {string} [passphrase]\n * @returns {Promise}\n */\n toKeystore(passphrase = \"\") {\n return this._key.toKeystore(passphrase);\n }\n\n /**\n * @returns {HashgraphProto.proto.IKey}\n */\n _toProtobufKey() {\n return this.publicKey._toProtobufKey();\n }\n\n /**\n * @param {Long | number} shard\n * @param {Long | number} realm\n * @returns {AccountId}\n */\n toAccountId(shard, realm) {\n return this.publicKey.toAccountId(shard, realm);\n }\n\n /**\n * @returns {string}\n */\n get type() {\n return this._key._type;\n }\n}\n\nCACHE.setPrivateKeyConstructor((key) => new PrivateKey(key));\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Key from \"./Key.js\";\nimport CACHE from \"./Cache.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.IKey} HashgraphProto.proto.IKey\n * @typedef {import(\"@hashgraph/proto\").proto.IKeyList} HashgraphProto.proto.IKeyList\n * @typedef {import(\"@hashgraph/proto\").proto.IThresholdKey} HashgraphProto.proto.IThresholdKey\n */\n\n/**\n * A list of Keys (`Key`) with an optional threshold.\n */\nexport default class KeyList extends Key {\n /**\n * @param {?Key[]} [keys]\n * @param {?number} [threshold]\n */\n constructor(keys, threshold) {\n super();\n\n /**\n * @private\n * @type {Key[]}\n */\n // @ts-ignore\n if (keys == null) this._keys = [];\n //checks if the value for `keys` is passed as a single key\n //rather than a list that contains just one key\n else if (keys instanceof Key) this._keys = [keys];\n else this._keys = keys;\n\n /**\n * @type {?number}\n */\n this._threshold = threshold == null ? null : threshold;\n }\n\n /**\n * @param {Key[]} keys\n * @returns {KeyList}\n */\n static of(...keys) {\n return new KeyList(keys, null);\n }\n\n /**\n * @template T\n * @param {ArrayLike} arrayLike\n * @param {((key: Key) => Key)} [mapFn]\n * @param {T} [thisArg]\n * @returns {KeyList}\n */\n static from(arrayLike, mapFn, thisArg) {\n if (mapFn == null) {\n return new KeyList(Array.from(arrayLike));\n }\n\n return new KeyList(Array.from(arrayLike, mapFn, thisArg));\n }\n\n /**\n * @returns {?number}\n */\n get threshold() {\n return this._threshold;\n }\n\n /**\n * @param {number} threshold\n * @returns {this}\n */\n setThreshold(threshold) {\n this._threshold = threshold;\n return this;\n }\n\n /**\n * @param {Key[]} keys\n * @returns {number}\n */\n push(...keys) {\n return this._keys.push(...keys);\n }\n\n /**\n * @param {number} start\n * @param {number} deleteCount\n * @param {Key[]} items\n * @returns {KeyList}\n */\n splice(start, deleteCount, ...items) {\n return new KeyList(\n this._keys.splice(start, deleteCount, ...items),\n this.threshold,\n );\n }\n\n /**\n * @param {number=} start\n * @param {number=} end\n * @returns {KeyList}\n */\n slice(start, end) {\n return new KeyList(this._keys.slice(start, end), this.threshold);\n }\n\n /**\n * @returns {Iterator}\n */\n [Symbol.iterator]() {\n return this._keys[Symbol.iterator]();\n }\n\n /**\n * @returns {Key[]}\n */\n toArray() {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return this._keys.slice();\n }\n\n /**\n * @returns {string}\n */\n toString() {\n return JSON.stringify({\n threshold: this._threshold,\n keys: this._keys.toString(),\n });\n }\n\n /**\n * @returns {HashgraphProto.proto.IKey}\n */\n _toProtobufKey() {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-return\n const keys = this._keys.map((key) => key._toProtobufKey());\n\n if (this.threshold == null) {\n return { keyList: { keys } };\n } else {\n return {\n thresholdKey: {\n threshold: this.threshold,\n keys: { keys },\n },\n };\n }\n }\n\n /**\n * @param {HashgraphProto.proto.IKeyList} key\n * @returns {KeyList}\n */\n static __fromProtobufKeyList(key) {\n const keys = (key.keys != null ? key.keys : []).map((key) =>\n Key._fromProtobufKey(key),\n );\n return new KeyList(keys);\n }\n\n /**\n * @param {HashgraphProto.proto.IThresholdKey} key\n * @returns {KeyList}\n */\n static __fromProtobufThresoldKey(key) {\n const list = KeyList.__fromProtobufKeyList(\n key.keys != null ? key.keys : {},\n );\n list.setThreshold(key.threshold != null ? key.threshold : 0);\n return list;\n }\n}\n\nCACHE.setKeyList((key) => KeyList.__fromProtobufKeyList(key));\nCACHE.setThresholdKey((key) => KeyList.__fromProtobufThresoldKey(key));\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport BigNumber from \"bignumber.js\";\n\n/**\n * @typedef {{low: number, high: number, unsigned: boolean}} LongObject\n * @typedef {import(\"long\")} Long\n */\n\n/**\n * @param {Long | number | string | LongObject | BigNumber} value\n * @returns {BigNumber}\n */\nexport function valueToLong(value) {\n if (BigNumber.isBigNumber(value)) {\n return value;\n } else {\n return new BigNumber(value.toString());\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport BigNumber from \"bignumber.js\";\n\nexport default class HbarUnit {\n /**\n * @internal\n * @param {string} name\n * @param {string} symbol\n * @param {BigNumber} tinybar\n */\n constructor(name, symbol, tinybar) {\n /**\n * @internal\n * @readonly\n */\n this._name = name;\n\n /**\n * @internal\n * @readonly\n */\n this._symbol = symbol;\n\n /**\n * @internal\n * @readonly\n */\n this._tinybar = tinybar;\n\n Object.freeze(this);\n }\n\n /**\n * @param {string} unit\n * @returns {HbarUnit}\n */\n static fromString(unit) {\n switch (unit) {\n case HbarUnit.Hbar._symbol:\n return HbarUnit.Hbar;\n case HbarUnit.Tinybar._symbol:\n return HbarUnit.Tinybar;\n case HbarUnit.Microbar._symbol:\n return HbarUnit.Microbar;\n case HbarUnit.Millibar._symbol:\n return HbarUnit.Millibar;\n case HbarUnit.Kilobar._symbol:\n return HbarUnit.Kilobar;\n case HbarUnit.Megabar._symbol:\n return HbarUnit.Megabar;\n case HbarUnit.Gigabar._symbol:\n return HbarUnit.Gigabar;\n default:\n throw new Error(\"Unknown unit.\");\n }\n }\n}\n\nHbarUnit.Tinybar = new HbarUnit(\"tinybar\", \"tℏ\", new BigNumber(1));\n\nHbarUnit.Microbar = new HbarUnit(\"microbar\", \"μℏ\", new BigNumber(100));\n\nHbarUnit.Millibar = new HbarUnit(\"millibar\", \"mℏ\", new BigNumber(100000));\n\nHbarUnit.Hbar = new HbarUnit(\"hbar\", \"ℏ\", new BigNumber(\"100000000\"));\n\nHbarUnit.Kilobar = new HbarUnit(\n \"kilobar\",\n \"kℏ\",\n new BigNumber(1000).multipliedBy(new BigNumber(\"100000000\")),\n);\n\nHbarUnit.Megabar = new HbarUnit(\n \"megabar\",\n \"Mℏ\",\n new BigNumber(1000000).multipliedBy(new BigNumber(\"100000000\")),\n);\n\nHbarUnit.Gigabar = new HbarUnit(\n \"gigabar\",\n \"Gℏ\",\n new BigNumber(\"1000000000\").multipliedBy(new BigNumber(\"100000000\")),\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport BigNumber from \"bignumber.js\";\nimport { valueToLong } from \"./long.js\";\nimport HbarUnit from \"./HbarUnit.js\";\n\nimport Long from \"long\";\n\n/**\n * @typedef {import(\"./long.js\").LongObject} LongObject\n */\n\nexport default class Hbar {\n /**\n * @param {number | string | Long | LongObject | BigNumber} amount\n * @param {HbarUnit=} unit\n */\n constructor(amount, unit = HbarUnit.Hbar) {\n if (unit === HbarUnit.Tinybar) {\n this._valueInTinybar = valueToLong(amount);\n } else {\n /** @type {BigNumber} */\n let bigAmount;\n\n if (Long.isLong(amount)) {\n bigAmount = new BigNumber(amount.toString(10));\n } else if (\n BigNumber.isBigNumber(amount) ||\n typeof amount === \"string\" ||\n typeof amount === \"number\"\n ) {\n bigAmount = new BigNumber(amount);\n } else {\n bigAmount = new BigNumber(0);\n }\n\n /**\n * @type {BigNumber}\n */\n this._valueInTinybar = bigAmount.multipliedBy(unit._tinybar);\n }\n if (!this._valueInTinybar.isInteger()) {\n throw new Error(\"Hbar in tinybars contains decimals\");\n }\n }\n\n /**\n * @param {number | Long | BigNumber} amount\n * @param {HbarUnit} unit\n * @returns {Hbar}\n */\n static from(amount, unit) {\n return new Hbar(amount, unit);\n }\n\n /**\n * @param {number | Long | string | BigNumber} amount\n * @returns {Hbar}\n */\n static fromTinybars(amount) {\n if (typeof amount === \"string\") {\n return this.fromString(amount, HbarUnit.Tinybar);\n }\n return new Hbar(amount, HbarUnit.Tinybar);\n }\n\n /**\n * @param {string} str\n * @param {HbarUnit=} unit\n * @returns {Hbar}\n */\n static fromString(str, unit = HbarUnit.Hbar) {\n const pattern = /^((?:\\+|-)?\\d+(?:\\.\\d+)?)(?: (tℏ|μℏ|mℏ|ℏ|kℏ|Mℏ|Gℏ))?$/;\n if (pattern.test(str)) {\n let [amount, symbol] = str.split(\" \");\n if (symbol != null) {\n unit = HbarUnit.fromString(symbol);\n }\n return new Hbar(new BigNumber(amount), unit);\n } else {\n throw new Error(\"invalid argument provided\");\n }\n }\n\n /**\n * @param {HbarUnit} unit\n * @returns {BigNumber}\n */\n to(unit) {\n return this._valueInTinybar.dividedBy(unit._tinybar);\n }\n\n /**\n * @returns {BigNumber}\n */\n toBigNumber() {\n return this.to(HbarUnit.Hbar);\n }\n\n /**\n * @returns {Long}\n */\n toTinybars() {\n return Long.fromValue(this._valueInTinybar.toFixed());\n }\n\n /**\n * @returns {Hbar}\n */\n negated() {\n return Hbar.fromTinybars(this._valueInTinybar.negated());\n }\n\n /**\n * @returns {boolean}\n */\n isNegative() {\n return this._valueInTinybar.isNegative();\n }\n\n /**\n * @param {HbarUnit=} unit\n * @returns {string}\n */\n toString(unit) {\n if (unit != null) {\n return `${this._valueInTinybar\n .dividedBy(unit._tinybar)\n .toString()} ${unit._symbol}`;\n }\n\n if (\n this._valueInTinybar.isLessThan(10000) &&\n this._valueInTinybar.isGreaterThan(-10000)\n ) {\n return `${this._valueInTinybar.toFixed()} ${\n HbarUnit.Tinybar._symbol\n }`;\n }\n\n return `${this.to(HbarUnit.Hbar).toString()} ${HbarUnit.Hbar._symbol}`;\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\n/**\n * @typedef {import(\"./Status.js\").default} Status\n * @typedef {import(\"./transaction/TransactionId.js\").default} TransactionId\n */\n\n/**\n * @typedef {object} StatusErrorJSON\n * @property {string} name\n * @property {string} status\n * @property {string} transactionId\n * @property {string} message\n */\n\nexport default class StatusError extends Error {\n /**\n * @param {object} props\n * @param {Status} props.status\n * @param {TransactionId} props.transactionId\n * @param {string} message\n */\n constructor(props, message) {\n super(message);\n\n this.name = \"StatusError\";\n\n this.status = props.status;\n\n this.transactionId = props.transactionId;\n\n this.message = message;\n\n if (typeof Error.captureStackTrace !== \"undefined\") {\n Error.captureStackTrace(this, StatusError);\n }\n }\n\n /**\n * @returns {StatusErrorJSON}\n */\n toJSON() {\n return {\n name: this.name,\n status: this.status.toString(),\n transactionId: this.transactionId.toString(),\n message: this.message,\n };\n }\n\n /**\n * @returns {string}\n */\n toString() {\n return JSON.stringify(this.toJSON());\n }\n\n /**\n * @returns {StatusErrorJSON}\n */\n valueOf() {\n return this.toJSON();\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport StatusError from \"./StatusError.js\";\n\n/**\n * @typedef {import(\"./Status.js\").default} Status\n * @typedef {import(\"./transaction/TransactionId.js\").default} TransactionId\n * @typedef {import(\"./transaction/TransactionReceipt.js\").default} TransactionReceipt\n */\n\nexport default class ReceiptStatusError extends StatusError {\n /**\n * @param {object} props\n * @param {TransactionReceipt} props.transactionReceipt\n * @param {Status} props.status\n * @param {TransactionId} props.transactionId\n */\n constructor(props) {\n super(\n props,\n `receipt for transaction ${props.transactionId.toString()} contained error status ${props.status.toString()}`,\n );\n\n /**\n * @type {TransactionReceipt}\n * @readonly\n */\n this.transactionReceipt = props.transactionReceipt;\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ResponseCodeEnum} HashgraphProto.proto.ResponseCodeEnum\n */\n\nexport default class Status {\n /**\n * @hideconstructor\n * @internal\n * @param {number} code\n */\n constructor(code) {\n /** @readonly */\n this._code = code;\n\n Object.freeze(this);\n }\n\n /**\n * @returns {string}\n */\n toString() {\n switch (this) {\n case Status.Ok:\n return \"OK\";\n case Status.InvalidTransaction:\n return \"INVALID_TRANSACTION\";\n case Status.PayerAccountNotFound:\n return \"PAYER_ACCOUNT_NOT_FOUND\";\n case Status.InvalidNodeAccount:\n return \"INVALID_NODE_ACCOUNT\";\n case Status.TransactionExpired:\n return \"TRANSACTION_EXPIRED\";\n case Status.InvalidTransactionStart:\n return \"INVALID_TRANSACTION_START\";\n case Status.InvalidTransactionDuration:\n return \"INVALID_TRANSACTION_DURATION\";\n case Status.InvalidSignature:\n return \"INVALID_SIGNATURE\";\n case Status.MemoTooLong:\n return \"MEMO_TOO_LONG\";\n case Status.InsufficientTxFee:\n return \"INSUFFICIENT_TX_FEE\";\n case Status.InsufficientPayerBalance:\n return \"INSUFFICIENT_PAYER_BALANCE\";\n case Status.DuplicateTransaction:\n return \"DUPLICATE_TRANSACTION\";\n case Status.Busy:\n return \"BUSY\";\n case Status.NotSupported:\n return \"NOT_SUPPORTED\";\n case Status.InvalidFileId:\n return \"INVALID_FILE_ID\";\n case Status.InvalidAccountId:\n return \"INVALID_ACCOUNT_ID\";\n case Status.InvalidContractId:\n return \"INVALID_CONTRACT_ID\";\n case Status.InvalidTransactionId:\n return \"INVALID_TRANSACTION_ID\";\n case Status.ReceiptNotFound:\n return \"RECEIPT_NOT_FOUND\";\n case Status.RecordNotFound:\n return \"RECORD_NOT_FOUND\";\n case Status.InvalidSolidityId:\n return \"INVALID_SOLIDITY_ID\";\n case Status.Unknown:\n return \"UNKNOWN\";\n case Status.Success:\n return \"SUCCESS\";\n case Status.FailInvalid:\n return \"FAIL_INVALID\";\n case Status.FailFee:\n return \"FAIL_FEE\";\n case Status.FailBalance:\n return \"FAIL_BALANCE\";\n case Status.KeyRequired:\n return \"KEY_REQUIRED\";\n case Status.BadEncoding:\n return \"BAD_ENCODING\";\n case Status.InsufficientAccountBalance:\n return \"INSUFFICIENT_ACCOUNT_BALANCE\";\n case Status.InvalidSolidityAddress:\n return \"INVALID_SOLIDITY_ADDRESS\";\n case Status.InsufficientGas:\n return \"INSUFFICIENT_GAS\";\n case Status.ContractSizeLimitExceeded:\n return \"CONTRACT_SIZE_LIMIT_EXCEEDED\";\n case Status.LocalCallModificationException:\n return \"LOCAL_CALL_MODIFICATION_EXCEPTION\";\n case Status.ContractRevertExecuted:\n return \"CONTRACT_REVERT_EXECUTED\";\n case Status.ContractExecutionException:\n return \"CONTRACT_EXECUTION_EXCEPTION\";\n case Status.InvalidReceivingNodeAccount:\n return \"INVALID_RECEIVING_NODE_ACCOUNT\";\n case Status.MissingQueryHeader:\n return \"MISSING_QUERY_HEADER\";\n case Status.AccountUpdateFailed:\n return \"ACCOUNT_UPDATE_FAILED\";\n case Status.InvalidKeyEncoding:\n return \"INVALID_KEY_ENCODING\";\n case Status.NullSolidityAddress:\n return \"NULL_SOLIDITY_ADDRESS\";\n case Status.ContractUpdateFailed:\n return \"CONTRACT_UPDATE_FAILED\";\n case Status.InvalidQueryHeader:\n return \"INVALID_QUERY_HEADER\";\n case Status.InvalidFeeSubmitted:\n return \"INVALID_FEE_SUBMITTED\";\n case Status.InvalidPayerSignature:\n return \"INVALID_PAYER_SIGNATURE\";\n case Status.KeyNotProvided:\n return \"KEY_NOT_PROVIDED\";\n case Status.InvalidExpirationTime:\n return \"INVALID_EXPIRATION_TIME\";\n case Status.NoWaclKey:\n return \"NO_WACL_KEY\";\n case Status.FileContentEmpty:\n return \"FILE_CONTENT_EMPTY\";\n case Status.InvalidAccountAmounts:\n return \"INVALID_ACCOUNT_AMOUNTS\";\n case Status.EmptyTransactionBody:\n return \"EMPTY_TRANSACTION_BODY\";\n case Status.InvalidTransactionBody:\n return \"INVALID_TRANSACTION_BODY\";\n case Status.InvalidSignatureTypeMismatchingKey:\n return \"INVALID_SIGNATURE_TYPE_MISMATCHING_KEY\";\n case Status.InvalidSignatureCountMismatchingKey:\n return \"INVALID_SIGNATURE_COUNT_MISMATCHING_KEY\";\n case Status.EmptyLiveHashBody:\n return \"EMPTY_LIVE_HASH_BODY\";\n case Status.EmptyLiveHash:\n return \"EMPTY_LIVE_HASH\";\n case Status.EmptyLiveHashKeys:\n return \"EMPTY_LIVE_HASH_KEYS\";\n case Status.InvalidLiveHashSize:\n return \"INVALID_LIVE_HASH_SIZE\";\n case Status.EmptyQueryBody:\n return \"EMPTY_QUERY_BODY\";\n case Status.EmptyLiveHashQuery:\n return \"EMPTY_LIVE_HASH_QUERY\";\n case Status.LiveHashNotFound:\n return \"LIVE_HASH_NOT_FOUND\";\n case Status.AccountIdDoesNotExist:\n return \"ACCOUNT_ID_DOES_NOT_EXIST\";\n case Status.LiveHashAlreadyExists:\n return \"LIVE_HASH_ALREADY_EXISTS\";\n case Status.InvalidFileWacl:\n return \"INVALID_FILE_WACL\";\n case Status.SerializationFailed:\n return \"SERIALIZATION_FAILED\";\n case Status.TransactionOversize:\n return \"TRANSACTION_OVERSIZE\";\n case Status.TransactionTooManyLayers:\n return \"TRANSACTION_TOO_MANY_LAYERS\";\n case Status.ContractDeleted:\n return \"CONTRACT_DELETED\";\n case Status.PlatformNotActive:\n return \"PLATFORM_NOT_ACTIVE\";\n case Status.KeyPrefixMismatch:\n return \"KEY_PREFIX_MISMATCH\";\n case Status.PlatformTransactionNotCreated:\n return \"PLATFORM_TRANSACTION_NOT_CREATED\";\n case Status.InvalidRenewalPeriod:\n return \"INVALID_RENEWAL_PERIOD\";\n case Status.InvalidPayerAccountId:\n return \"INVALID_PAYER_ACCOUNT_ID\";\n case Status.AccountDeleted:\n return \"ACCOUNT_DELETED\";\n case Status.FileDeleted:\n return \"FILE_DELETED\";\n case Status.AccountRepeatedInAccountAmounts:\n return \"ACCOUNT_REPEATED_IN_ACCOUNT_AMOUNTS\";\n case Status.SettingNegativeAccountBalance:\n return \"SETTING_NEGATIVE_ACCOUNT_BALANCE\";\n case Status.ObtainerRequired:\n return \"OBTAINER_REQUIRED\";\n case Status.ObtainerSameContractId:\n return \"OBTAINER_SAME_CONTRACT_ID\";\n case Status.ObtainerDoesNotExist:\n return \"OBTAINER_DOES_NOT_EXIST\";\n case Status.ModifyingImmutableContract:\n return \"MODIFYING_IMMUTABLE_CONTRACT\";\n case Status.FileSystemException:\n return \"FILE_SYSTEM_EXCEPTION\";\n case Status.AutorenewDurationNotInRange:\n return \"AUTORENEW_DURATION_NOT_IN_RANGE\";\n case Status.ErrorDecodingBytestring:\n return \"ERROR_DECODING_BYTESTRING\";\n case Status.ContractFileEmpty:\n return \"CONTRACT_FILE_EMPTY\";\n case Status.ContractBytecodeEmpty:\n return \"CONTRACT_BYTECODE_EMPTY\";\n case Status.InvalidInitialBalance:\n return \"INVALID_INITIAL_BALANCE\";\n case Status.InvalidReceiveRecordThreshold:\n return \"INVALID_RECEIVE_RECORD_THRESHOLD\";\n case Status.InvalidSendRecordThreshold:\n return \"INVALID_SEND_RECORD_THRESHOLD\";\n case Status.AccountIsNotGenesisAccount:\n return \"ACCOUNT_IS_NOT_GENESIS_ACCOUNT\";\n case Status.PayerAccountUnauthorized:\n return \"PAYER_ACCOUNT_UNAUTHORIZED\";\n case Status.InvalidFreezeTransactionBody:\n return \"INVALID_FREEZE_TRANSACTION_BODY\";\n case Status.FreezeTransactionBodyNotFound:\n return \"FREEZE_TRANSACTION_BODY_NOT_FOUND\";\n case Status.TransferListSizeLimitExceeded:\n return \"TRANSFER_LIST_SIZE_LIMIT_EXCEEDED\";\n case Status.ResultSizeLimitExceeded:\n return \"RESULT_SIZE_LIMIT_EXCEEDED\";\n case Status.NotSpecialAccount:\n return \"NOT_SPECIAL_ACCOUNT\";\n case Status.ContractNegativeGas:\n return \"CONTRACT_NEGATIVE_GAS\";\n case Status.ContractNegativeValue:\n return \"CONTRACT_NEGATIVE_VALUE\";\n case Status.InvalidFeeFile:\n return \"INVALID_FEE_FILE\";\n case Status.InvalidExchangeRateFile:\n return \"INVALID_EXCHANGE_RATE_FILE\";\n case Status.InsufficientLocalCallGas:\n return \"INSUFFICIENT_LOCAL_CALL_GAS\";\n case Status.EntityNotAllowedToDelete:\n return \"ENTITY_NOT_ALLOWED_TO_DELETE\";\n case Status.AuthorizationFailed:\n return \"AUTHORIZATION_FAILED\";\n case Status.FileUploadedProtoInvalid:\n return \"FILE_UPLOADED_PROTO_INVALID\";\n case Status.FileUploadedProtoNotSavedToDisk:\n return \"FILE_UPLOADED_PROTO_NOT_SAVED_TO_DISK\";\n case Status.FeeScheduleFilePartUploaded:\n return \"FEE_SCHEDULE_FILE_PART_UPLOADED\";\n case Status.ExchangeRateChangeLimitExceeded:\n return \"EXCHANGE_RATE_CHANGE_LIMIT_EXCEEDED\";\n case Status.MaxContractStorageExceeded:\n return \"MAX_CONTRACT_STORAGE_EXCEEDED\";\n case Status.TransferAccountSameAsDeleteAccount:\n return \"TRANSFER_ACCOUNT_SAME_AS_DELETE_ACCOUNT\";\n case Status.TotalLedgerBalanceInvalid:\n return \"TOTAL_LEDGER_BALANCE_INVALID\";\n case Status.ExpirationReductionNotAllowed:\n return \"EXPIRATION_REDUCTION_NOT_ALLOWED\";\n case Status.MaxGasLimitExceeded:\n return \"MAX_GAS_LIMIT_EXCEEDED\";\n case Status.MaxFileSizeExceeded:\n return \"MAX_FILE_SIZE_EXCEEDED\";\n case Status.ReceiverSigRequired:\n return \"RECEIVER_SIG_REQUIRED\";\n case Status.InvalidTopicId:\n return \"INVALID_TOPIC_ID\";\n case Status.InvalidAdminKey:\n return \"INVALID_ADMIN_KEY\";\n case Status.InvalidSubmitKey:\n return \"INVALID_SUBMIT_KEY\";\n case Status.Unauthorized:\n return \"UNAUTHORIZED\";\n case Status.InvalidTopicMessage:\n return \"INVALID_TOPIC_MESSAGE\";\n case Status.InvalidAutorenewAccount:\n return \"INVALID_AUTORENEW_ACCOUNT\";\n case Status.AutorenewAccountNotAllowed:\n return \"AUTORENEW_ACCOUNT_NOT_ALLOWED\";\n case Status.TopicExpired:\n return \"TOPIC_EXPIRED\";\n case Status.InvalidChunkNumber:\n return \"INVALID_CHUNK_NUMBER\";\n case Status.InvalidChunkTransactionId:\n return \"INVALID_CHUNK_TRANSACTION_ID\";\n case Status.AccountFrozenForToken:\n return \"ACCOUNT_FROZEN_FOR_TOKEN\";\n case Status.TokensPerAccountLimitExceeded:\n return \"TOKENS_PER_ACCOUNT_LIMIT_EXCEEDED\";\n case Status.InvalidTokenId:\n return \"INVALID_TOKEN_ID\";\n case Status.InvalidTokenDecimals:\n return \"INVALID_TOKEN_DECIMALS\";\n case Status.InvalidTokenInitialSupply:\n return \"INVALID_TOKEN_INITIAL_SUPPLY\";\n case Status.InvalidTreasuryAccountForToken:\n return \"INVALID_TREASURY_ACCOUNT_FOR_TOKEN\";\n case Status.InvalidTokenSymbol:\n return \"INVALID_TOKEN_SYMBOL\";\n case Status.TokenHasNoFreezeKey:\n return \"TOKEN_HAS_NO_FREEZE_KEY\";\n case Status.TransfersNotZeroSumForToken:\n return \"TRANSFERS_NOT_ZERO_SUM_FOR_TOKEN\";\n case Status.MissingTokenSymbol:\n return \"MISSING_TOKEN_SYMBOL\";\n case Status.TokenSymbolTooLong:\n return \"TOKEN_SYMBOL_TOO_LONG\";\n case Status.AccountKycNotGrantedForToken:\n return \"ACCOUNT_KYC_NOT_GRANTED_FOR_TOKEN\";\n case Status.TokenHasNoKycKey:\n return \"TOKEN_HAS_NO_KYC_KEY\";\n case Status.InsufficientTokenBalance:\n return \"INSUFFICIENT_TOKEN_BALANCE\";\n case Status.TokenWasDeleted:\n return \"TOKEN_WAS_DELETED\";\n case Status.TokenHasNoSupplyKey:\n return \"TOKEN_HAS_NO_SUPPLY_KEY\";\n case Status.TokenHasNoWipeKey:\n return \"TOKEN_HAS_NO_WIPE_KEY\";\n case Status.InvalidTokenMintAmount:\n return \"INVALID_TOKEN_MINT_AMOUNT\";\n case Status.InvalidTokenBurnAmount:\n return \"INVALID_TOKEN_BURN_AMOUNT\";\n case Status.TokenNotAssociatedToAccount:\n return \"TOKEN_NOT_ASSOCIATED_TO_ACCOUNT\";\n case Status.CannotWipeTokenTreasuryAccount:\n return \"CANNOT_WIPE_TOKEN_TREASURY_ACCOUNT\";\n case Status.InvalidKycKey:\n return \"INVALID_KYC_KEY\";\n case Status.InvalidWipeKey:\n return \"INVALID_WIPE_KEY\";\n case Status.InvalidFreezeKey:\n return \"INVALID_FREEZE_KEY\";\n case Status.InvalidSupplyKey:\n return \"INVALID_SUPPLY_KEY\";\n case Status.MissingTokenName:\n return \"MISSING_TOKEN_NAME\";\n case Status.TokenNameTooLong:\n return \"TOKEN_NAME_TOO_LONG\";\n case Status.InvalidWipingAmount:\n return \"INVALID_WIPING_AMOUNT\";\n case Status.TokenIsImmutable:\n return \"TOKEN_IS_IMMUTABLE\";\n case Status.TokenAlreadyAssociatedToAccount:\n return \"TOKEN_ALREADY_ASSOCIATED_TO_ACCOUNT\";\n case Status.TransactionRequiresZeroTokenBalances:\n return \"TRANSACTION_REQUIRES_ZERO_TOKEN_BALANCES\";\n case Status.AccountIsTreasury:\n return \"ACCOUNT_IS_TREASURY\";\n case Status.TokenIdRepeatedInTokenList:\n return \"TOKEN_ID_REPEATED_IN_TOKEN_LIST\";\n case Status.TokenTransferListSizeLimitExceeded:\n return \"TOKEN_TRANSFER_LIST_SIZE_LIMIT_EXCEEDED\";\n case Status.EmptyTokenTransferBody:\n return \"EMPTY_TOKEN_TRANSFER_BODY\";\n case Status.EmptyTokenTransferAccountAmounts:\n return \"EMPTY_TOKEN_TRANSFER_ACCOUNT_AMOUNTS\";\n case Status.InvalidScheduleId:\n return \"INVALID_SCHEDULE_ID\";\n case Status.ScheduleIsImmutable:\n return \"SCHEDULE_IS_IMMUTABLE\";\n case Status.InvalidSchedulePayerId:\n return \"INVALID_SCHEDULE_PAYER_ID\";\n case Status.InvalidScheduleAccountId:\n return \"INVALID_SCHEDULE_ACCOUNT_ID\";\n case Status.NoNewValidSignatures:\n return \"NO_NEW_VALID_SIGNATURES\";\n case Status.UnresolvableRequiredSigners:\n return \"UNRESOLVABLE_REQUIRED_SIGNERS\";\n case Status.ScheduledTransactionNotInWhitelist:\n return \"SCHEDULED_TRANSACTION_NOT_IN_WHITELIST\";\n case Status.SomeSignaturesWereInvalid:\n return \"SOME_SIGNATURES_WERE_INVALID\";\n case Status.TransactionIdFieldNotAllowed:\n return \"TRANSACTION_ID_FIELD_NOT_ALLOWED\";\n case Status.IdenticalScheduleAlreadyCreated:\n return \"IDENTICAL_SCHEDULE_ALREADY_CREATED\";\n case Status.InvalidZeroByteInString:\n return \"INVALID_ZERO_BYTE_IN_STRING\";\n case Status.ScheduleAlreadyDeleted:\n return \"SCHEDULE_ALREADY_DELETED\";\n case Status.ScheduleAlreadyExecuted:\n return \"SCHEDULE_ALREADY_EXECUTED\";\n case Status.MessageSizeTooLarge:\n return \"MESSAGE_SIZE_TOO_LARGE\";\n case Status.OperationRepeatedInBucketGroups:\n return \"OPERATION_REPEATED_IN_BUCKET_GROUPS\";\n case Status.BucketCapacityOverflow:\n return \"BUCKET_CAPACITY_OVERFLOW\";\n case Status.NodeCapacityNotSufficientForOperation:\n return \"NODE_CAPACITY_NOT_SUFFICIENT_FOR_OPERATION\";\n case Status.BucketHasNoThrottleGroups:\n return \"BUCKET_HAS_NO_THROTTLE_GROUPS\";\n case Status.ThrottleGroupHasZeroOpsPerSec:\n return \"THROTTLE_GROUP_HAS_ZERO_OPS_PER_SEC\";\n case Status.SuccessButMissingExpectedOperation:\n return \"SUCCESS_BUT_MISSING_EXPECTED_OPERATION\";\n case Status.UnparseableThrottleDefinitions:\n return \"UNPARSEABLE_THROTTLE_DEFINITIONS\";\n case Status.InvalidThrottleDefinitions:\n return \"INVALID_THROTTLE_DEFINITIONS\";\n case Status.AccountExpiredAndPendingRemoval:\n return \"ACCOUNT_EXPIRED_AND_PENDING_REMOVAL\";\n case Status.InvalidTokenMaxSupply:\n return \"INVALID_TOKEN_MAX_SUPPLY\";\n case Status.InvalidTokenNftSerialNumber:\n return \"INVALID_TOKEN_NFT_SERIAL_NUMBER\";\n case Status.InvalidNftId:\n return \"INVALID_NFT_ID\";\n case Status.MetadataTooLong:\n return \"METADATA_TOO_LONG\";\n case Status.BatchSizeLimitExceeded:\n return \"BATCH_SIZE_LIMIT_EXCEEDED\";\n case Status.InvalidQueryRange:\n return \"INVALID_QUERY_RANGE\";\n case Status.FractionDividesByZero:\n return \"FRACTION_DIVIDES_BY_ZERO\";\n case Status.InsufficientPayerBalanceForCustomFee:\n return \"INSUFFICIENT_PAYER_BALANCE_FOR_CUSTOM_FEE\";\n case Status.CustomFeesListTooLong:\n return \"CUSTOM_FEES_LIST_TOO_LONG\";\n case Status.InvalidCustomFeeCollector:\n return \"INVALID_CUSTOM_FEE_COLLECTOR\";\n case Status.InvalidTokenIdInCustomFees:\n return \"INVALID_TOKEN_ID_IN_CUSTOM_FEES\";\n case Status.TokenNotAssociatedToFeeCollector:\n return \"TOKEN_NOT_ASSOCIATED_TO_FEE_COLLECTOR\";\n case Status.TokenMaxSupplyReached:\n return \"TOKEN_MAX_SUPPLY_REACHED\";\n case Status.SenderDoesNotOwnNftSerialNo:\n return \"SENDER_DOES_NOT_OWN_NFT_SERIAL_NO\";\n case Status.CustomFeeNotFullySpecified:\n return \"CUSTOM_FEE_NOT_FULLY_SPECIFIED\";\n case Status.CustomFeeMustBePositive:\n return \"CUSTOM_FEE_MUST_BE_POSITIVE\";\n case Status.TokenHasNoFeeScheduleKey:\n return \"TOKEN_HAS_NO_FEE_SCHEDULE_KEY\";\n case Status.CustomFeeOutsideNumericRange:\n return \"CUSTOM_FEE_OUTSIDE_NUMERIC_RANGE\";\n case Status.RoyaltyFractionCannotExceedOne:\n return \"ROYALTY_FRACTION_CANNOT_EXCEED_ONE\";\n case Status.FractionalFeeMaxAmountLessThanMinAmount:\n return \"FRACTIONAL_FEE_MAX_AMOUNT_LESS_THAN_MIN_AMOUNT\";\n case Status.CustomScheduleAlreadyHasNoFees:\n return \"CUSTOM_SCHEDULE_ALREADY_HAS_NO_FEES\";\n case Status.CustomFeeDenominationMustBeFungibleCommon:\n return \"CUSTOM_FEE_DENOMINATION_MUST_BE_FUNGIBLE_COMMON\";\n case Status.CustomFractionalFeeOnlyAllowedForFungibleCommon:\n return \"CUSTOM_FRACTIONAL_FEE_ONLY_ALLOWED_FOR_FUNGIBLE_COMMON\";\n case Status.InvalidCustomFeeScheduleKey:\n return \"INVALID_CUSTOM_FEE_SCHEDULE_KEY\";\n case Status.InvalidTokenMintMetadata:\n return \"INVALID_TOKEN_MINT_METADATA\";\n case Status.InvalidTokenBurnMetadata:\n return \"INVALID_TOKEN_BURN_METADATA\";\n case Status.CurrentTreasuryStillOwnsNfts:\n return \"CURRENT_TREASURY_STILL_OWNS_NFTS\";\n case Status.AccountStillOwnsNfts:\n return \"ACCOUNT_STILL_OWNS_NFTS\";\n case Status.TreasuryMustOwnBurnedNft:\n return \"TREASURY_MUST_OWN_BURNED_NFT\";\n case Status.AccountDoesNotOwnWipedNft:\n return \"ACCOUNT_DOES_NOT_OWN_WIPED_NFT\";\n case Status.AccountAmountTransfersOnlyAllowedForFungibleCommon:\n return \"ACCOUNT_AMOUNT_TRANSFERS_ONLY_ALLOWED_FOR_FUNGIBLE_COMMON\";\n case Status.MaxNftsInPriceRegimeHaveBeenMinted:\n return \"MAX_NFTS_IN_PRICE_REGIME_HAVE_BEEN_MINTED\";\n case Status.PayerAccountDeleted:\n return \"PAYER_ACCOUNT_DELETED\";\n case Status.CustomFeeChargingExceededMaxRecursionDepth:\n return \"CUSTOM_FEE_CHARGING_EXCEEDED_MAX_RECURSION_DEPTH\";\n case Status.CustomFeeChargingExceededMaxAccountAmounts:\n return \"CUSTOM_FEE_CHARGING_EXCEEDED_MAX_ACCOUNT_AMOUNTS\";\n case Status.InsufficientSenderAccountBalanceForCustomFee:\n return \"INSUFFICIENT_SENDER_ACCOUNT_BALANCE_FOR_CUSTOM_FEE\";\n case Status.SerialNumberLimitReached:\n return \"SERIAL_NUMBER_LIMIT_REACHED\";\n case Status.CustomRoyaltyFeeOnlyAllowedForNonFungibleUnique:\n return \"CUSTOM_ROYALTY_FEE_ONLY_ALLOWED_FOR_NON_FUNGIBLE_UNIQUE\";\n case Status.NoRemainingAutomaticAssociations:\n return \"NO_REMAINING_AUTOMATIC_ASSOCIATIONS\";\n case Status.ExistingAutomaticAssociationsExceedGivenLimit:\n return \"EXISTING_AUTOMATIC_ASSOCIATIONS_EXCEED_GIVEN_LIMIT\";\n case Status.RequestedNumAutomaticAssociationsExceedsAssociationLimit:\n return \"REQUESTED_NUM_AUTOMATIC_ASSOCIATIONS_EXCEEDS_ASSOCIATION_LIMIT\";\n case Status.TokenIsPaused:\n return \"TOKEN_IS_PAUSED\";\n case Status.TokenHasNoPauseKey:\n return \"TOKEN_HAS_NO_PAUSE_KEY\";\n case Status.InvalidPauseKey:\n return \"INVALID_PAUSE_KEY\";\n case Status.FreezeUpdateFileDoesNotExist:\n return \"FREEZE_UPDATE_FILE_DOES_NOT_EXIST\";\n case Status.FreezeUpdateFileHashDoesNotMatch:\n return \"FREEZE_UPDATE_FILE_HASH_DOES_NOT_MATCH\";\n case Status.NoUpgradeHasBeenPrepared:\n return \"NO_UPGRADE_HAS_BEEN_PREPARED\";\n case Status.NoFreezeIsScheduled:\n return \"NO_FREEZE_IS_SCHEDULED\";\n case Status.UpdateFileHashChangedSincePrepareUpgrade:\n return \"UPDATE_FILE_HASH_CHANGED_SINCE_PREPARE_UPGRADE\";\n case Status.FreezeStartTimeMustBeFuture:\n return \"FREEZE_START_TIME_MUST_BE_FUTURE\";\n case Status.PreparedUpdateFileIsImmutable:\n return \"PREPARED_UPDATE_FILE_IS_IMMUTABLE\";\n case Status.FreezeAlreadyScheduled:\n return \"FREEZE_ALREADY_SCHEDULED\";\n case Status.FreezeUpgradeInProgress:\n return \"FREEZE_UPGRADE_IN_PROGRESS\";\n case Status.UpdateFileIdDoesNotMatchPrepared:\n return \"UPDATE_FILE_ID_DOES_NOT_MATCH_PREPARED\";\n case Status.UpdateFileHashDoesNotMatchPrepared:\n return \"UPDATE_FILE_HASH_DOES_NOT_MATCH_PREPARED\";\n case Status.ConsensusGasExhausted:\n return \"CONSENSUS_GAS_EXHAUSTED\";\n case Status.RevertedSuccess:\n return \"REVERTED_SUCCESS\";\n case Status.MaxStorageInPriceRegimeHasBeenUsed:\n return \"MAX_STORAGE_IN_PRICE_REGIME_HAS_BEEN_USED\";\n case Status.InvalidAliasKey:\n return \"INVALID_ALIAS_KEY\";\n case Status.UnexpectedTokenDecimals:\n return \"UNEXPECTED_TOKEN_DECIMALS\";\n case Status.InvalidProxyAccountId:\n return \"INVALID_PROXY_ACCOUNT_ID\";\n case Status.InvalidTransferAccountId:\n return \"INVALID_TRANSFER_ACCOUNT_ID\";\n case Status.InvalidFeeCollectorAccountId:\n return \"INVALID_FEE_COLLECTOR_ACCOUNT_ID\";\n case Status.AliasIsImmutable:\n return \"ALIAS_IS_IMMUTABLE\";\n case Status.SpenderAccountSameAsOwner:\n return \"SPENDER_ACCOUNT_SAME_AS_OWNER\";\n case Status.AmountExceedsTokenMaxSupply:\n return \"AMOUNT_EXCEEDS_TOKEN_MAX_SUPPLY\";\n case Status.NegativeAllowanceAmount:\n return \"NEGATIVE_ALLOWANCE_AMOUNT\";\n case Status.CannotApproveForAllFungibleCommon:\n return \"CANNOT_APPROVE_FOR_ALL_FUNGIBLE_COMMON\";\n case Status.SpenderDoesNotHaveAllowance:\n return \"SPENDER_DOES_NOT_HAVE_ALLOWANCE\";\n case Status.AmountExceedsAllowance:\n return \"AMOUNT_EXCEEDS_ALLOWANCE\";\n case Status.MaxAllowancesExceeded:\n return \"MAX_ALLOWANCES_EXCEEDED\";\n case Status.EmptyAllowances:\n return \"EMPTY_ALLOWANCES\";\n case Status.SpenderAccountRepeatedInAllowances:\n return \"SPENDER_ACCOUNT_REPEATED_IN_ALLOWANCES\";\n case Status.RepeatedSerialNumsInNftAllowances:\n return \"REPEATED_SERIAL_NUMS_IN_NFT_ALLOWANCES\";\n case Status.FungibleTokenInNftAllowances:\n return \"FUNGIBLE_TOKEN_IN_NFT_ALLOWANCES\";\n case Status.NftInFungibleTokenAllowances:\n return \"NFT_IN_FUNGIBLE_TOKEN_ALLOWANCES\";\n case Status.InvalidAllowanceOwnerId:\n return \"INVALID_ALLOWANCE_OWNER_ID\";\n case Status.InvalidAllowanceSpenderId:\n return \"INVALID_ALLOWANCE_SPENDER_ID\";\n case Status.RepeatedAllowancesToDelete:\n return \"REPEATED_ALLOWANCES_TO_DELETE\";\n case Status.InvalidDelegatingSpender:\n return \"INVALID_DELEGATING_SPENDER\";\n case Status.DelegatingSpenderCannotGrantApproveForAll:\n return \"DELEGATING_SPENDER_CANNOT_GRANT_APPROVE_FOR_ALL\";\n case Status.DelegatingSpenderDoesNotHaveApproveForAll:\n return \"DELEGATING_SPENDER_DOES_NOT_HAVE_APPROVE_FOR_ALL\";\n case Status.ScheduleExpirationTimeTooFarInFuture:\n return \"SCHEDULE_EXPIRATION_TIME_TOO_FAR_IN_FUTURE\";\n case Status.ScheduleExpirationTimeMustBeHigherThanConsensusTime:\n return \"SCHEDULE_EXPIRATION_TIME_MUST_BE_HIGHER_THAN_CONSENSUS_TIME\";\n case Status.ScheduleFutureThrottleExceeded:\n return \"SCHEDULE_FUTURE_THROTTLE_EXCEEDED\";\n case Status.ScheduleFutureGasLimitExceeded:\n return \"SCHEDULE_FUTURE_GAS_LIMIT_EXCEEDED\";\n case Status.InvalidEthereumTransaction:\n return \"INVALID_ETHEREUM_TRANSACTION\";\n case Status.WrongChainId:\n return \"WRONG_CHAIN_ID\";\n case Status.WrongNonce:\n return \"WRONG_NONCE\";\n case Status.AccessListUnsupported:\n return \"ACCESS_LIST_UNSUPPORTED\";\n case Status.SchedulePendingExpiration:\n return \"SCHEDULE_PENDING_EXPIRATION\";\n case Status.ContractIsTokenTreasury:\n return \"CONTRACT_IS_TOKEN_TREASURY\";\n case Status.ContractHasNonZeroTokenBalances:\n return \"CONTRACT_HAS_NON_ZERO_TOKEN_BALANCES\";\n case Status.ContractExpiredAndPendingRemoval:\n return \"CONTRACT_EXPIRED_AND_PENDING_REMOVAL\";\n case Status.ContractHasNoAutoRenewAccount:\n return \"CONTRACT_HAS_NO_AUTO_RENEW_ACCOUNT\";\n case Status.PermanentRemovalRequiresSystemInitiation:\n return \"PERMANENT_REMOVAL_REQUIRES_SYSTEM_INITIATION\";\n case Status.ProxyAccountIdFieldIsDeprecated:\n return \"PROXY_ACCOUNT_ID_FIELD_IS_DEPRECATED\";\n case Status.SelfStakingIsNotAllowed:\n return \"SELF_STAKING_IS_NOT_ALLOWED\";\n case Status.InvalidStakingId:\n return \"INVALID_STAKING_ID\";\n case Status.StakingNotEnabled:\n return \"STAKING_NOT_ENABLED\";\n case Status.InvalidPrngRange:\n return \"INVALID_PRNG_RANGE\";\n case Status.MaxEntitiesInPriceRegimeHaveBeenCreated:\n return \"MAX_ENTITIES_IN_PRICE_REGIME_HAVE_BEEN_CREATED\";\n case Status.InvalidFullPrefixSignatureForPrecompile:\n return \"INVALID_FULL_PREFIX_SIGNATURE_FOR_PRECOMPILE\";\n case Status.InsufficientBalancesForStorageRent:\n return \"INSUFFICIENT_BALANCES_FOR_STORAGE_RENT\";\n case Status.MaxChildRecordsExceeded:\n return \"MAX_CHILD_RECORDS_EXCEEDED\";\n case Status.InsufficientBalancesForRenewalFees:\n return \"INSUFFICIENT_BALANCES_FOR_RENEWAL_FEES\";\n case Status.TransactionHasUnknownFields:\n return \"TRANSACTION_HAS_UNKNOWN_FIELDS\";\n case Status.AccountIsImmutable:\n return \"ACCOUNT_IS_IMMUTABLE\";\n case Status.AliasAlreadyAssigned:\n return \"ALIAS_ALREADY_ASSIGNED\";\n case Status.InvalidMetadataKey:\n return \"INVALID_METADATA_KEY\";\n case Status.TokenHasNoMetadataKey:\n return \"TOKEN_HAS_NO_METADATA_KEY\";\n case Status.MissingTokenMetadata:\n return \"MISSING_TOKEN_METADATA\";\n case Status.MissingSerialNumbers:\n return \"MISSING_SERIAL_NUMBERS\";\n case Status.TokenHasNoAdminKey:\n return \"TOKEN_HAS_NO_ADMIN_KEY\";\n case Status.NodeDeleted:\n return \"NODE_DELETED\";\n case Status.InvalidNodeId:\n return \"INVALID_NODE_ID\";\n case Status.InvalidGossipEndpoint:\n return \"INVALID_GOSSIP_ENDPOINT\";\n case Status.InvalidNodeAccountId:\n return \"INVALID_NODE_ACCOUNT_ID\";\n case Status.InvalidNodeDescription:\n return \"INVALID_NODE_DESCRIPTION\";\n case Status.InvalidServiceEndpoint:\n return \"INVALID_SERVICE_ENDPOINT\";\n case Status.InvalidGossipCaCertificate:\n return \"INVALID_GOSSIP_CA_CERTIFICATE\";\n case Status.InvalidGrpcCertificate:\n return \"INVALID_GRPC_CERTIFICATE\";\n case Status.InvalidMaxAutoAssociations:\n return \"INVALID_MAX_AUTO_ASSOCIATIONS\";\n case Status.MaxNodesCreated:\n return \"MAX_NODES_CREATED\";\n case Status.IpFqdnCannotBeSetForSameEndpoint:\n return \"IP_FQDN_CANNOT_BE_SET_FOR_SAME_ENDPOINT\";\n case Status.GossipEndpointCannotHaveFqdn:\n return \"GOSSIP_ENDPOINT_CANNOT_HAVE_FQDN\";\n case Status.FqdnSizeTooLarge:\n return \"FQDN_SIZE_TOO_LARGE\";\n case Status.InvalidEndpoint:\n return \"INVALID_ENDPOINT\";\n case Status.GossipEndpointsExceededLimit:\n return \"GOSSIP_ENDPOINTS_EXCEEDED_LIMIT\";\n case Status.ServiceEndpointsExceededLimit:\n return \"SERVICE_ENDPOINTS_EXCEEDED_LIMIT\";\n case Status.InvalidIpv4Address:\n return \"INVALID_IPV4_ADDRESS\";\n case Status.TokenReferenceRepeated:\n return \"TOKEN_REFERENCE_REPEATED\";\n case Status.InvalidOwnerId:\n return \"INVALID_OWNER_ID\";\n case Status.TokenReferenceListSizeLimitExceeded:\n return \"TOKEN_REFERENCE_LIST_SIZE_LIMIT_EXCEEDED\";\n case Status.EmptyTokenReferenceList:\n return \"EMPTY_TOKEN_REFERENCE_LIST\";\n case Status.UpdateNodeAccountNotAllowed:\n return \"UPDATE_NODE_ACCOUNT_NOT_ALLOWED\";\n case Status.TokenHasNoMetadataOrSupplyKey:\n return \"TOKEN_HAS_NO_METADATA_OR_SUPPLY_KEY\";\n case Status.EmptyPendingAirdropIdList:\n return \"EMPTY_PENDING_AIRDROP_ID_LIST\";\n case Status.PendingAirdropIdRepeated:\n return \"PENDING_AIRDROP_ID_REPEATED\";\n case Status.MaxPendingAirdropIdExceeded:\n return \"PENDING_AIRDROP_ID_LIST_TOO_LONG\";\n case Status.PendingNftAirdropAlreadyExists:\n return \"PENDING_NFT_AIRDROP_ALREADY_EXISTS\";\n case Status.AccountHasPendingAirdrops:\n return \"ACCOUNT_HAS_PENDING_AIRDROPS\";\n case Status.ThrottledAtConsensus:\n return \"THROTTLED_AT_CONSENSUS\";\n case Status.InvalidPendingAirdropId:\n return \"INVALID_PENDING_AIRDROP_ID\";\n case Status.TokenAirdropWithFallbackRoyalty:\n return \"TOKEN_AIRDROP_WITH_FALLBACK_ROYALTY\";\n case Status.InvalidTokenInPendingAirdrop:\n return \"INVALID_TOKEN_IN_PENDING_AIRDROP\";\n case Status.ScheduleExpiryIsBusy:\n return \"SCHEDULE_EXPIRY_IS_BUSY\";\n case Status.InvalidGrpcCertificateHash:\n return \"INVALID_GRPC_CERTIFICATE_HASH\";\n case Status.MissingExpiryTime:\n return \"MISSING_EXPIRY_TIME\";\n case Status.NoSchedulingAllowedAfterScheduledRecursion:\n return \"NO_SCHEDULING_ALLOWED_AFTER_SCHEDULED_RECURSION\";\n case Status.RecursiveSchedulingLimitReached:\n return \"RECURSIVE_SCHEDULING_LIMIT_REACHED\";\n default:\n return `UNKNOWN (${this._code})`;\n }\n }\n\n /**\n * @internal\n * @param {number} code\n * @returns {Status}\n */\n static _fromCode(code) {\n switch (code) {\n case 0:\n return Status.Ok;\n case 1:\n return Status.InvalidTransaction;\n case 2:\n return Status.PayerAccountNotFound;\n case 3:\n return Status.InvalidNodeAccount;\n case 4:\n return Status.TransactionExpired;\n case 5:\n return Status.InvalidTransactionStart;\n case 6:\n return Status.InvalidTransactionDuration;\n case 7:\n return Status.InvalidSignature;\n case 8:\n return Status.MemoTooLong;\n case 9:\n return Status.InsufficientTxFee;\n case 10:\n return Status.InsufficientPayerBalance;\n case 11:\n return Status.DuplicateTransaction;\n case 12:\n return Status.Busy;\n case 13:\n return Status.NotSupported;\n case 14:\n return Status.InvalidFileId;\n case 15:\n return Status.InvalidAccountId;\n case 16:\n return Status.InvalidContractId;\n case 17:\n return Status.InvalidTransactionId;\n case 18:\n return Status.ReceiptNotFound;\n case 19:\n return Status.RecordNotFound;\n case 20:\n return Status.InvalidSolidityId;\n case 21:\n return Status.Unknown;\n case 22:\n return Status.Success;\n case 23:\n return Status.FailInvalid;\n case 24:\n return Status.FailFee;\n case 25:\n return Status.FailBalance;\n case 26:\n return Status.KeyRequired;\n case 27:\n return Status.BadEncoding;\n case 28:\n return Status.InsufficientAccountBalance;\n case 29:\n return Status.InvalidSolidityAddress;\n case 30:\n return Status.InsufficientGas;\n case 31:\n return Status.ContractSizeLimitExceeded;\n case 32:\n return Status.LocalCallModificationException;\n case 33:\n return Status.ContractRevertExecuted;\n case 34:\n return Status.ContractExecutionException;\n case 35:\n return Status.InvalidReceivingNodeAccount;\n case 36:\n return Status.MissingQueryHeader;\n case 37:\n return Status.AccountUpdateFailed;\n case 38:\n return Status.InvalidKeyEncoding;\n case 39:\n return Status.NullSolidityAddress;\n case 40:\n return Status.ContractUpdateFailed;\n case 41:\n return Status.InvalidQueryHeader;\n case 42:\n return Status.InvalidFeeSubmitted;\n case 43:\n return Status.InvalidPayerSignature;\n case 44:\n return Status.KeyNotProvided;\n case 45:\n return Status.InvalidExpirationTime;\n case 46:\n return Status.NoWaclKey;\n case 47:\n return Status.FileContentEmpty;\n case 48:\n return Status.InvalidAccountAmounts;\n case 49:\n return Status.EmptyTransactionBody;\n case 50:\n return Status.InvalidTransactionBody;\n case 51:\n return Status.InvalidSignatureTypeMismatchingKey;\n case 52:\n return Status.InvalidSignatureCountMismatchingKey;\n case 53:\n return Status.EmptyLiveHashBody;\n case 54:\n return Status.EmptyLiveHash;\n case 55:\n return Status.EmptyLiveHashKeys;\n case 56:\n return Status.InvalidLiveHashSize;\n case 57:\n return Status.EmptyQueryBody;\n case 58:\n return Status.EmptyLiveHashQuery;\n case 59:\n return Status.LiveHashNotFound;\n case 60:\n return Status.AccountIdDoesNotExist;\n case 61:\n return Status.LiveHashAlreadyExists;\n case 62:\n return Status.InvalidFileWacl;\n case 63:\n return Status.SerializationFailed;\n case 64:\n return Status.TransactionOversize;\n case 65:\n return Status.TransactionTooManyLayers;\n case 66:\n return Status.ContractDeleted;\n case 67:\n return Status.PlatformNotActive;\n case 68:\n return Status.KeyPrefixMismatch;\n case 69:\n return Status.PlatformTransactionNotCreated;\n case 70:\n return Status.InvalidRenewalPeriod;\n case 71:\n return Status.InvalidPayerAccountId;\n case 72:\n return Status.AccountDeleted;\n case 73:\n return Status.FileDeleted;\n case 74:\n return Status.AccountRepeatedInAccountAmounts;\n case 75:\n return Status.SettingNegativeAccountBalance;\n case 76:\n return Status.ObtainerRequired;\n case 77:\n return Status.ObtainerSameContractId;\n case 78:\n return Status.ObtainerDoesNotExist;\n case 79:\n return Status.ModifyingImmutableContract;\n case 80:\n return Status.FileSystemException;\n case 81:\n return Status.AutorenewDurationNotInRange;\n case 82:\n return Status.ErrorDecodingBytestring;\n case 83:\n return Status.ContractFileEmpty;\n case 84:\n return Status.ContractBytecodeEmpty;\n case 85:\n return Status.InvalidInitialBalance;\n case 86:\n return Status.InvalidReceiveRecordThreshold;\n case 87:\n return Status.InvalidSendRecordThreshold;\n case 88:\n return Status.AccountIsNotGenesisAccount;\n case 89:\n return Status.PayerAccountUnauthorized;\n case 90:\n return Status.InvalidFreezeTransactionBody;\n case 91:\n return Status.FreezeTransactionBodyNotFound;\n case 92:\n return Status.TransferListSizeLimitExceeded;\n case 93:\n return Status.ResultSizeLimitExceeded;\n case 94:\n return Status.NotSpecialAccount;\n case 95:\n return Status.ContractNegativeGas;\n case 96:\n return Status.ContractNegativeValue;\n case 97:\n return Status.InvalidFeeFile;\n case 98:\n return Status.InvalidExchangeRateFile;\n case 99:\n return Status.InsufficientLocalCallGas;\n case 100:\n return Status.EntityNotAllowedToDelete;\n case 101:\n return Status.AuthorizationFailed;\n case 102:\n return Status.FileUploadedProtoInvalid;\n case 103:\n return Status.FileUploadedProtoNotSavedToDisk;\n case 104:\n return Status.FeeScheduleFilePartUploaded;\n case 105:\n return Status.ExchangeRateChangeLimitExceeded;\n case 106:\n return Status.MaxContractStorageExceeded;\n case 107:\n return Status.TransferAccountSameAsDeleteAccount;\n case 108:\n return Status.TotalLedgerBalanceInvalid;\n case 110:\n return Status.ExpirationReductionNotAllowed;\n case 111:\n return Status.MaxGasLimitExceeded;\n case 112:\n return Status.MaxFileSizeExceeded;\n case 113:\n return Status.ReceiverSigRequired;\n case 150:\n return Status.InvalidTopicId;\n case 155:\n return Status.InvalidAdminKey;\n case 156:\n return Status.InvalidSubmitKey;\n case 157:\n return Status.Unauthorized;\n case 158:\n return Status.InvalidTopicMessage;\n case 159:\n return Status.InvalidAutorenewAccount;\n case 160:\n return Status.AutorenewAccountNotAllowed;\n case 162:\n return Status.TopicExpired;\n case 163:\n return Status.InvalidChunkNumber;\n case 164:\n return Status.InvalidChunkTransactionId;\n case 165:\n return Status.AccountFrozenForToken;\n case 166:\n return Status.TokensPerAccountLimitExceeded;\n case 167:\n return Status.InvalidTokenId;\n case 168:\n return Status.InvalidTokenDecimals;\n case 169:\n return Status.InvalidTokenInitialSupply;\n case 170:\n return Status.InvalidTreasuryAccountForToken;\n case 171:\n return Status.InvalidTokenSymbol;\n case 172:\n return Status.TokenHasNoFreezeKey;\n case 173:\n return Status.TransfersNotZeroSumForToken;\n case 174:\n return Status.MissingTokenSymbol;\n case 175:\n return Status.TokenSymbolTooLong;\n case 176:\n return Status.AccountKycNotGrantedForToken;\n case 177:\n return Status.TokenHasNoKycKey;\n case 178:\n return Status.InsufficientTokenBalance;\n case 179:\n return Status.TokenWasDeleted;\n case 180:\n return Status.TokenHasNoSupplyKey;\n case 181:\n return Status.TokenHasNoWipeKey;\n case 182:\n return Status.InvalidTokenMintAmount;\n case 183:\n return Status.InvalidTokenBurnAmount;\n case 184:\n return Status.TokenNotAssociatedToAccount;\n case 185:\n return Status.CannotWipeTokenTreasuryAccount;\n case 186:\n return Status.InvalidKycKey;\n case 187:\n return Status.InvalidWipeKey;\n case 188:\n return Status.InvalidFreezeKey;\n case 189:\n return Status.InvalidSupplyKey;\n case 190:\n return Status.MissingTokenName;\n case 191:\n return Status.TokenNameTooLong;\n case 192:\n return Status.InvalidWipingAmount;\n case 193:\n return Status.TokenIsImmutable;\n case 194:\n return Status.TokenAlreadyAssociatedToAccount;\n case 195:\n return Status.TransactionRequiresZeroTokenBalances;\n case 196:\n return Status.AccountIsTreasury;\n case 197:\n return Status.TokenIdRepeatedInTokenList;\n case 198:\n return Status.TokenTransferListSizeLimitExceeded;\n case 199:\n return Status.EmptyTokenTransferBody;\n case 200:\n return Status.EmptyTokenTransferAccountAmounts;\n case 201:\n return Status.InvalidScheduleId;\n case 202:\n return Status.ScheduleIsImmutable;\n case 203:\n return Status.InvalidSchedulePayerId;\n case 204:\n return Status.InvalidScheduleAccountId;\n case 205:\n return Status.NoNewValidSignatures;\n case 206:\n return Status.UnresolvableRequiredSigners;\n case 207:\n return Status.ScheduledTransactionNotInWhitelist;\n case 208:\n return Status.SomeSignaturesWereInvalid;\n case 209:\n return Status.TransactionIdFieldNotAllowed;\n case 210:\n return Status.IdenticalScheduleAlreadyCreated;\n case 211:\n return Status.InvalidZeroByteInString;\n case 212:\n return Status.ScheduleAlreadyDeleted;\n case 213:\n return Status.ScheduleAlreadyExecuted;\n case 214:\n return Status.MessageSizeTooLarge;\n case 215:\n return Status.OperationRepeatedInBucketGroups;\n case 216:\n return Status.BucketCapacityOverflow;\n case 217:\n return Status.NodeCapacityNotSufficientForOperation;\n case 218:\n return Status.BucketHasNoThrottleGroups;\n case 219:\n return Status.ThrottleGroupHasZeroOpsPerSec;\n case 220:\n return Status.SuccessButMissingExpectedOperation;\n case 221:\n return Status.UnparseableThrottleDefinitions;\n case 222:\n return Status.InvalidThrottleDefinitions;\n case 223:\n return Status.AccountExpiredAndPendingRemoval;\n case 224:\n return Status.InvalidTokenMaxSupply;\n case 225:\n return Status.InvalidTokenNftSerialNumber;\n case 226:\n return Status.InvalidNftId;\n case 227:\n return Status.MetadataTooLong;\n case 228:\n return Status.BatchSizeLimitExceeded;\n case 229:\n return Status.InvalidQueryRange;\n case 230:\n return Status.FractionDividesByZero;\n case 231:\n return Status.InsufficientPayerBalanceForCustomFee;\n case 232:\n return Status.CustomFeesListTooLong;\n case 233:\n return Status.InvalidCustomFeeCollector;\n case 234:\n return Status.InvalidTokenIdInCustomFees;\n case 235:\n return Status.TokenNotAssociatedToFeeCollector;\n case 236:\n return Status.TokenMaxSupplyReached;\n case 237:\n return Status.SenderDoesNotOwnNftSerialNo;\n case 238:\n return Status.CustomFeeNotFullySpecified;\n case 239:\n return Status.CustomFeeMustBePositive;\n case 240:\n return Status.TokenHasNoFeeScheduleKey;\n case 241:\n return Status.CustomFeeOutsideNumericRange;\n case 242:\n return Status.RoyaltyFractionCannotExceedOne;\n case 243:\n return Status.FractionalFeeMaxAmountLessThanMinAmount;\n case 244:\n return Status.CustomScheduleAlreadyHasNoFees;\n case 245:\n return Status.CustomFeeDenominationMustBeFungibleCommon;\n case 246:\n return Status.CustomFractionalFeeOnlyAllowedForFungibleCommon;\n case 247:\n return Status.InvalidCustomFeeScheduleKey;\n case 248:\n return Status.InvalidTokenMintMetadata;\n case 249:\n return Status.InvalidTokenBurnMetadata;\n case 250:\n return Status.CurrentTreasuryStillOwnsNfts;\n case 251:\n return Status.AccountStillOwnsNfts;\n case 252:\n return Status.TreasuryMustOwnBurnedNft;\n case 253:\n return Status.AccountDoesNotOwnWipedNft;\n case 254:\n return Status.AccountAmountTransfersOnlyAllowedForFungibleCommon;\n case 255:\n return Status.MaxNftsInPriceRegimeHaveBeenMinted;\n case 256:\n return Status.PayerAccountDeleted;\n case 257:\n return Status.CustomFeeChargingExceededMaxRecursionDepth;\n case 258:\n return Status.CustomFeeChargingExceededMaxAccountAmounts;\n case 259:\n return Status.InsufficientSenderAccountBalanceForCustomFee;\n case 260:\n return Status.SerialNumberLimitReached;\n case 261:\n return Status.CustomRoyaltyFeeOnlyAllowedForNonFungibleUnique;\n case 262:\n return Status.NoRemainingAutomaticAssociations;\n case 263:\n return Status.ExistingAutomaticAssociationsExceedGivenLimit;\n case 264:\n return Status.RequestedNumAutomaticAssociationsExceedsAssociationLimit;\n case 265:\n return Status.TokenIsPaused;\n case 266:\n return Status.TokenHasNoPauseKey;\n case 267:\n return Status.InvalidPauseKey;\n case 268:\n return Status.FreezeUpdateFileDoesNotExist;\n case 269:\n return Status.FreezeUpdateFileHashDoesNotMatch;\n case 270:\n return Status.NoUpgradeHasBeenPrepared;\n case 271:\n return Status.NoFreezeIsScheduled;\n case 272:\n return Status.UpdateFileHashChangedSincePrepareUpgrade;\n case 273:\n return Status.FreezeStartTimeMustBeFuture;\n case 274:\n return Status.PreparedUpdateFileIsImmutable;\n case 275:\n return Status.FreezeAlreadyScheduled;\n case 276:\n return Status.FreezeUpgradeInProgress;\n case 277:\n return Status.UpdateFileIdDoesNotMatchPrepared;\n case 278:\n return Status.UpdateFileHashDoesNotMatchPrepared;\n case 279:\n return Status.ConsensusGasExhausted;\n case 280:\n return Status.RevertedSuccess;\n case 281:\n return Status.MaxStorageInPriceRegimeHasBeenUsed;\n case 282:\n return Status.InvalidAliasKey;\n case 283:\n return Status.UnexpectedTokenDecimals;\n case 284:\n return Status.InvalidProxyAccountId;\n case 285:\n return Status.InvalidTransferAccountId;\n case 286:\n return Status.InvalidFeeCollectorAccountId;\n case 287:\n return Status.AliasIsImmutable;\n case 288:\n return Status.SpenderAccountSameAsOwner;\n case 289:\n return Status.AmountExceedsTokenMaxSupply;\n case 290:\n return Status.NegativeAllowanceAmount;\n case 291:\n return Status.CannotApproveForAllFungibleCommon;\n case 292:\n return Status.SpenderDoesNotHaveAllowance;\n case 293:\n return Status.AmountExceedsAllowance;\n case 294:\n return Status.MaxAllowancesExceeded;\n case 295:\n return Status.EmptyAllowances;\n case 296:\n return Status.SpenderAccountRepeatedInAllowances;\n case 297:\n return Status.RepeatedSerialNumsInNftAllowances;\n case 298:\n return Status.FungibleTokenInNftAllowances;\n case 299:\n return Status.NftInFungibleTokenAllowances;\n case 300:\n return Status.InvalidAllowanceOwnerId;\n case 301:\n return Status.InvalidAllowanceSpenderId;\n case 302:\n return Status.RepeatedAllowancesToDelete;\n case 303:\n return Status.InvalidDelegatingSpender;\n case 304:\n return Status.DelegatingSpenderCannotGrantApproveForAll;\n case 305:\n return Status.DelegatingSpenderDoesNotHaveApproveForAll;\n case 306:\n return Status.ScheduleExpirationTimeTooFarInFuture;\n case 307:\n return Status.ScheduleExpirationTimeMustBeHigherThanConsensusTime;\n case 308:\n return Status.ScheduleFutureThrottleExceeded;\n case 309:\n return Status.ScheduleFutureGasLimitExceeded;\n case 310:\n return Status.InvalidEthereumTransaction;\n case 311:\n return Status.WrongChainId;\n case 312:\n return Status.WrongNonce;\n case 313:\n return Status.AccessListUnsupported;\n case 314:\n return Status.SchedulePendingExpiration;\n case 315:\n return Status.ContractIsTokenTreasury;\n case 316:\n return Status.ContractHasNonZeroTokenBalances;\n case 317:\n return Status.ContractExpiredAndPendingRemoval;\n case 318:\n return Status.ContractHasNoAutoRenewAccount;\n case 319:\n return Status.PermanentRemovalRequiresSystemInitiation;\n case 320:\n return Status.ProxyAccountIdFieldIsDeprecated;\n case 321:\n return Status.SelfStakingIsNotAllowed;\n case 322:\n return Status.InvalidStakingId;\n case 323:\n return Status.StakingNotEnabled;\n case 324:\n return Status.InvalidPrngRange;\n case 325:\n return Status.MaxEntitiesInPriceRegimeHaveBeenCreated;\n case 326:\n return Status.InvalidFullPrefixSignatureForPrecompile;\n case 327:\n return Status.InsufficientBalancesForStorageRent;\n case 328:\n return Status.MaxChildRecordsExceeded;\n case 329:\n return Status.InsufficientBalancesForRenewalFees;\n case 330:\n return Status.TransactionHasUnknownFields;\n case 331:\n return Status.AccountIsImmutable;\n case 332:\n return Status.AliasAlreadyAssigned;\n case 333:\n return Status.InvalidMetadataKey;\n case 334:\n return Status.TokenHasNoMetadataKey;\n case 335:\n return Status.MissingTokenMetadata;\n case 336:\n return Status.MissingSerialNumbers;\n case 337:\n return Status.TokenHasNoAdminKey;\n case 338:\n return Status.NodeDeleted;\n case 339:\n return Status.InvalidNodeId;\n case 340:\n return Status.InvalidGossipEndpoint;\n case 341:\n return Status.InvalidNodeAccountId;\n case 342:\n return Status.InvalidNodeDescription;\n case 343:\n return Status.InvalidServiceEndpoint;\n case 344:\n return Status.InvalidGossipCaCertificate;\n case 345:\n return Status.InvalidGrpcCertificate;\n case 346:\n return Status.InvalidMaxAutoAssociations;\n case 347:\n return Status.MaxNodesCreated;\n case 348:\n return Status.IpFqdnCannotBeSetForSameEndpoint;\n case 349:\n return Status.GossipEndpointCannotHaveFqdn;\n case 350:\n return Status.FqdnSizeTooLarge;\n case 351:\n return Status.InvalidEndpoint;\n case 352:\n return Status.GossipEndpointsExceededLimit;\n case 353:\n return Status.TokenReferenceRepeated;\n case 354:\n return Status.InvalidOwnerId;\n case 355:\n return Status.TokenReferenceListSizeLimitExceeded;\n case 356:\n return Status.ServiceEndpointsExceededLimit;\n case 357:\n return Status.InvalidIpv4Address;\n case 358:\n return Status.EmptyTokenReferenceList;\n case 359:\n return Status.UpdateNodeAccountNotAllowed;\n case 360:\n return Status.TokenHasNoMetadataOrSupplyKey;\n case 361:\n return Status.EmptyPendingAirdropIdList;\n case 362:\n return Status.PendingAirdropIdRepeated;\n case 363:\n return Status.MaxPendingAirdropIdExceeded;\n case 364:\n return Status.PendingNftAirdropAlreadyExists;\n case 365:\n return Status.AccountHasPendingAirdrops;\n case 366:\n return Status.ThrottledAtConsensus;\n case 367:\n return Status.InvalidPendingAirdropId;\n case 368:\n return Status.TokenAirdropWithFallbackRoyalty;\n case 369:\n return Status.InvalidTokenInPendingAirdrop;\n case 370:\n return Status.ScheduleExpiryIsBusy;\n case 371:\n return Status.InvalidGrpcCertificateHash;\n case 372:\n return Status.MissingExpiryTime;\n case 373:\n return Status.NoSchedulingAllowedAfterScheduledRecursion;\n case 374:\n return Status.RecursiveSchedulingLimitReached;\n default:\n throw new Error(\n `(BUG) Status.fromCode() does not handle code: ${code}`,\n );\n }\n }\n\n /**\n * @returns {HashgraphProto.proto.ResponseCodeEnum}\n */\n valueOf() {\n return this._code;\n }\n}\n\n/**\n * The transaction passed the precheck validations.\n */\nStatus.Ok = new Status(0);\n\n/**\n * For any error not handled by specific error codes listed below.\n */\nStatus.InvalidTransaction = new Status(1);\n\n/**\n * Payer account does not exist.\n */\nStatus.PayerAccountNotFound = new Status(2);\n\n/**\n * Node Account provided does not match the node account of the node the transaction was submitted\n * to.\n */\nStatus.InvalidNodeAccount = new Status(3);\n\n/**\n * Pre-Check error when TransactionValidStart + transactionValidDuration is less than current\n * consensus time.\n */\nStatus.TransactionExpired = new Status(4);\n\n/**\n * Transaction start time is greater than current consensus time\n */\nStatus.InvalidTransactionStart = new Status(5);\n\n/**\n * The given transactionValidDuration was either non-positive, or greater than the maximum\n * valid duration of 180 secs.\n *\n */\nStatus.InvalidTransactionDuration = new Status(6);\n\n/**\n * The transaction signature is not valid\n */\nStatus.InvalidSignature = new Status(7);\n\n/**\n * Transaction memo size exceeded 100 bytes\n */\nStatus.MemoTooLong = new Status(8);\n\n/**\n * The fee provided in the transaction is insufficient for this type of transaction\n */\nStatus.InsufficientTxFee = new Status(9);\n\n/**\n * The payer account has insufficient cryptocurrency to pay the transaction fee\n */\nStatus.InsufficientPayerBalance = new Status(10);\n\n/**\n * This transaction ID is a duplicate of one that was submitted to this node or reached consensus\n * in the last 180 seconds (receipt period)\n */\nStatus.DuplicateTransaction = new Status(11);\n\n/**\n * If API is throttled out\n */\nStatus.Busy = new Status(12);\n\n/**\n * The API is not currently supported\n */\nStatus.NotSupported = new Status(13);\n\n/**\n * The file id is invalid or does not exist\n */\nStatus.InvalidFileId = new Status(14);\n\n/**\n * The account id is invalid or does not exist\n */\nStatus.InvalidAccountId = new Status(15);\n\n/**\n * The contract id is invalid or does not exist\n */\nStatus.InvalidContractId = new Status(16);\n\n/**\n * Transaction id is not valid\n */\nStatus.InvalidTransactionId = new Status(17);\n\n/**\n * Receipt for given transaction id does not exist\n */\nStatus.ReceiptNotFound = new Status(18);\n\n/**\n * Record for given transaction id does not exist\n */\nStatus.RecordNotFound = new Status(19);\n\n/**\n * The solidity id is invalid or entity with this solidity id does not exist\n */\nStatus.InvalidSolidityId = new Status(20);\n\n/**\n * The responding node has submitted the transaction to the network. Its final status is still\n * unknown.\n */\nStatus.Unknown = new Status(21);\n\n/**\n * The transaction succeeded\n */\nStatus.Success = new Status(22);\n\n/**\n * There was a system error and the transaction failed because of invalid request parameters.\n */\nStatus.FailInvalid = new Status(23);\n\n/**\n * There was a system error while performing fee calculation, reserved for future.\n */\nStatus.FailFee = new Status(24);\n\n/**\n * There was a system error while performing balance checks, reserved for future.\n */\nStatus.FailBalance = new Status(25);\n\n/**\n * Key not provided in the transaction body\n */\nStatus.KeyRequired = new Status(26);\n\n/**\n * Unsupported algorithm/encoding used for keys in the transaction\n */\nStatus.BadEncoding = new Status(27);\n\n/**\n * When the account balance is not sufficient for the transfer\n */\nStatus.InsufficientAccountBalance = new Status(28);\n\n/**\n * During an update transaction when the system is not able to find the Users Solidity address\n */\nStatus.InvalidSolidityAddress = new Status(29);\n\n/**\n * Not enough gas was supplied to execute transaction\n */\nStatus.InsufficientGas = new Status(30);\n\n/**\n * contract byte code size is over the limit\n */\nStatus.ContractSizeLimitExceeded = new Status(31);\n\n/**\n * local execution (query) is requested for a function which changes state\n */\nStatus.LocalCallModificationException = new Status(32);\n\n/**\n * Contract REVERT OPCODE executed\n */\nStatus.ContractRevertExecuted = new Status(33);\n\n/**\n * For any contract execution related error not handled by specific error codes listed above.\n */\nStatus.ContractExecutionException = new Status(34);\n\n/**\n * In Query validation, account with +ve(amount) value should be Receiving node account, the\n * receiver account should be only one account in the list\n */\nStatus.InvalidReceivingNodeAccount = new Status(35);\n\n/**\n * Header is missing in Query request\n */\nStatus.MissingQueryHeader = new Status(36);\n\n/**\n * The update of the account failed\n */\nStatus.AccountUpdateFailed = new Status(37);\n\n/**\n * Provided key encoding was not supported by the system\n */\nStatus.InvalidKeyEncoding = new Status(38);\n\n/**\n * null solidity address\n */\nStatus.NullSolidityAddress = new Status(39);\n\n/**\n * update of the contract failed\n */\nStatus.ContractUpdateFailed = new Status(40);\n\n/**\n * the query header is invalid\n */\nStatus.InvalidQueryHeader = new Status(41);\n\n/**\n * Invalid fee submitted\n */\nStatus.InvalidFeeSubmitted = new Status(42);\n\n/**\n * Payer signature is invalid\n */\nStatus.InvalidPayerSignature = new Status(43);\n\n/**\n * The keys were not provided in the request.\n */\nStatus.KeyNotProvided = new Status(44);\n\n/**\n * Expiration time provided in the transaction was invalid.\n */\nStatus.InvalidExpirationTime = new Status(45);\n\n/**\n * WriteAccess Control Keys are not provided for the file\n */\nStatus.NoWaclKey = new Status(46);\n\n/**\n * The contents of file are provided as empty.\n */\nStatus.FileContentEmpty = new Status(47);\n\n/**\n * The crypto transfer credit and debit do not sum equal to 0\n */\nStatus.InvalidAccountAmounts = new Status(48);\n\n/**\n * Transaction body provided is empty\n */\nStatus.EmptyTransactionBody = new Status(49);\n\n/**\n * Invalid transaction body provided\n */\nStatus.InvalidTransactionBody = new Status(50);\n\n/**\n * the type of key (base ed25519 key, KeyList, or ThresholdKey) does not match the type of\n * signature (base ed25519 signature, SignatureList, or ThresholdKeySignature)\n */\nStatus.InvalidSignatureTypeMismatchingKey = new Status(51);\n\n/**\n * the number of key (KeyList, or ThresholdKey) does not match that of signature (SignatureList,\n * or ThresholdKeySignature). e.g. if a keyList has 3 base keys, then the corresponding\n * signatureList should also have 3 base signatures.\n */\nStatus.InvalidSignatureCountMismatchingKey = new Status(52);\n\n/**\n * the livehash body is empty\n */\nStatus.EmptyLiveHashBody = new Status(53);\n\n/**\n * the livehash data is missing\n */\nStatus.EmptyLiveHash = new Status(54);\n\n/**\n * the keys for a livehash are missing\n */\nStatus.EmptyLiveHashKeys = new Status(55);\n\n/**\n * the livehash data is not the output of a SHA-384 digest\n */\nStatus.InvalidLiveHashSize = new Status(56);\n\n/**\n * the query body is empty\n */\nStatus.EmptyQueryBody = new Status(57);\n\n/**\n * the crypto livehash query is empty\n */\nStatus.EmptyLiveHashQuery = new Status(58);\n\n/**\n * the livehash is not present\n */\nStatus.LiveHashNotFound = new Status(59);\n\n/**\n * the account id passed has not yet been created.\n */\nStatus.AccountIdDoesNotExist = new Status(60);\n\n/**\n * the livehash already exists for a given account\n */\nStatus.LiveHashAlreadyExists = new Status(61);\n\n/**\n * File WACL keys are invalid\n */\nStatus.InvalidFileWacl = new Status(62);\n\n/**\n * Serialization failure\n */\nStatus.SerializationFailed = new Status(63);\n\n/**\n * The size of the Transaction is greater than transactionMaxBytes\n */\nStatus.TransactionOversize = new Status(64);\n\n/**\n * The Transaction has more than 50 levels\n */\nStatus.TransactionTooManyLayers = new Status(65);\n\n/**\n * Contract is marked as deleted\n */\nStatus.ContractDeleted = new Status(66);\n\n/**\n * the platform node is either disconnected or lagging behind.\n */\nStatus.PlatformNotActive = new Status(67);\n\n/**\n * one public key matches more than one prefixes on the signature map\n */\nStatus.KeyPrefixMismatch = new Status(68);\n\n/**\n * transaction not created by platform due to large backlog\n */\nStatus.PlatformTransactionNotCreated = new Status(69);\n\n/**\n * auto renewal period is not a positive number of seconds\n */\nStatus.InvalidRenewalPeriod = new Status(70);\n\n/**\n * the response code when a smart contract id is passed for a crypto API request\n */\nStatus.InvalidPayerAccountId = new Status(71);\n\n/**\n * the account has been marked as deleted\n */\nStatus.AccountDeleted = new Status(72);\n\n/**\n * the file has been marked as deleted\n */\nStatus.FileDeleted = new Status(73);\n\n/**\n * same accounts repeated in the transfer account list\n */\nStatus.AccountRepeatedInAccountAmounts = new Status(74);\n\n/**\n * attempting to set negative balance value for crypto account\n */\nStatus.SettingNegativeAccountBalance = new Status(75);\n\n/**\n * when deleting smart contract that has crypto balance either transfer account or transfer smart\n * contract is required\n */\nStatus.ObtainerRequired = new Status(76);\n\n/**\n * when deleting smart contract that has crypto balance you can not use the same contract id as\n * transferContractId as the one being deleted\n */\nStatus.ObtainerSameContractId = new Status(77);\n\n/**\n * transferAccountId or transferContractId specified for contract delete does not exist\n */\nStatus.ObtainerDoesNotExist = new Status(78);\n\n/**\n * attempting to modify (update or delete a immutable smart contract, i.e. one created without a\n * admin key)\n */\nStatus.ModifyingImmutableContract = new Status(79);\n\n/**\n * Unexpected exception thrown by file system functions\n */\nStatus.FileSystemException = new Status(80);\n\n/**\n * the duration is not a subset of [MINIMUM_AUTORENEW_DURATION,MAXIMUM_AUTORENEW_DURATION]\n */\nStatus.AutorenewDurationNotInRange = new Status(81);\n\n/**\n * Decoding the smart contract binary to a byte array failed. Check that the input is a valid hex\n * string.\n */\nStatus.ErrorDecodingBytestring = new Status(82);\n\n/**\n * File to create a smart contract was of length zero\n */\nStatus.ContractFileEmpty = new Status(83);\n\n/**\n * Bytecode for smart contract is of length zero\n */\nStatus.ContractBytecodeEmpty = new Status(84);\n\n/**\n * Attempt to set negative initial balance\n */\nStatus.InvalidInitialBalance = new Status(85);\n\n/**\n * [Deprecated]. attempt to set negative receive record threshold\n */\nStatus.InvalidReceiveRecordThreshold = new Status(86);\n\n/**\n * [Deprecated]. attempt to set negative send record threshold\n */\nStatus.InvalidSendRecordThreshold = new Status(87);\n\n/**\n * Special Account Operations should be performed by only Genesis account, return this code if it\n * is not Genesis Account\n */\nStatus.AccountIsNotGenesisAccount = new Status(88);\n\n/**\n * The fee payer account doesn't have permission to submit such Transaction\n */\nStatus.PayerAccountUnauthorized = new Status(89);\n\n/**\n * FreezeTransactionBody is invalid\n */\nStatus.InvalidFreezeTransactionBody = new Status(90);\n\n/**\n * FreezeTransactionBody does not exist\n */\nStatus.FreezeTransactionBodyNotFound = new Status(91);\n\n/**\n * Exceeded the number of accounts (both from and to) allowed for crypto transfer list\n */\nStatus.TransferListSizeLimitExceeded = new Status(92);\n\n/**\n * Smart contract result size greater than specified maxResultSize\n */\nStatus.ResultSizeLimitExceeded = new Status(93);\n\n/**\n * The payer account is not a special account(account 0.0.55)\n */\nStatus.NotSpecialAccount = new Status(94);\n\n/**\n * Negative gas was offered in smart contract call\n */\nStatus.ContractNegativeGas = new Status(95);\n\n/**\n * Negative value / initial balance was specified in a smart contract call / create\n */\nStatus.ContractNegativeValue = new Status(96);\n\n/**\n * Failed to update fee file\n */\nStatus.InvalidFeeFile = new Status(97);\n\n/**\n * Failed to update exchange rate file\n */\nStatus.InvalidExchangeRateFile = new Status(98);\n\n/**\n * Payment tendered for contract local call cannot cover both the fee and the gas\n */\nStatus.InsufficientLocalCallGas = new Status(99);\n\n/**\n * Entities with Entity ID below 1000 are not allowed to be deleted\n */\nStatus.EntityNotAllowedToDelete = new Status(100);\n\n/**\n * Violating one of these rules: 1) treasury account can update all entities below 0.0.1000, 2)\n * account 0.0.50 can update all entities from 0.0.51 - 0.0.80, 3) Network Function Master Account\n * A/c 0.0.50 - Update all Network Function accounts & perform all the Network Functions listed\n * below, 4) Network Function Accounts: i) A/c 0.0.55 - Update Address Book files (0.0.101/102),\n * ii) A/c 0.0.56 - Update Fee schedule (0.0.111), iii) A/c 0.0.57 - Update Exchange Rate\n * (0.0.112).\n */\nStatus.AuthorizationFailed = new Status(101);\n\n/**\n * Fee Schedule Proto uploaded but not valid (append or update is required)\n */\nStatus.FileUploadedProtoInvalid = new Status(102);\n\n/**\n * Fee Schedule Proto uploaded but not valid (append or update is required)\n */\nStatus.FileUploadedProtoNotSavedToDisk = new Status(103);\n\n/**\n * Fee Schedule Proto File Part uploaded\n */\nStatus.FeeScheduleFilePartUploaded = new Status(104);\n\n/**\n * The change on Exchange Rate exceeds Exchange_Rate_Allowed_Percentage\n */\nStatus.ExchangeRateChangeLimitExceeded = new Status(105);\n\n/**\n * Contract permanent storage exceeded the currently allowable limit\n */\nStatus.MaxContractStorageExceeded = new Status(106);\n\n/**\n * Transfer Account should not be same as Account to be deleted\n */\nStatus.TransferAccountSameAsDeleteAccount = new Status(107);\n\nStatus.TotalLedgerBalanceInvalid = new Status(108);\n/**\n * The expiration date/time on a smart contract may not be reduced\n */\nStatus.ExpirationReductionNotAllowed = new Status(110);\n\n/**\n * Gas exceeded currently allowable gas limit per transaction\n */\nStatus.MaxGasLimitExceeded = new Status(111);\n\n/**\n * File size exceeded the currently allowable limit\n */\nStatus.MaxFileSizeExceeded = new Status(112);\n\n/**\n * When a valid signature is not provided for operations on account with receiverSigRequired=true\n */\nStatus.ReceiverSigRequired = new Status(113);\n\n/**\n * The Topic ID specified is not in the system.\n */\nStatus.InvalidTopicId = new Status(150);\n\n/**\n * A provided admin key was invalid.\n */\nStatus.InvalidAdminKey = new Status(155);\n\n/**\n * A provided submit key was invalid.\n */\nStatus.InvalidSubmitKey = new Status(156);\n\n/**\n * An attempted operation was not authorized (ie - a deleteTopic for a topic with no adminKey).\n */\nStatus.Unauthorized = new Status(157);\n\n/**\n * A ConsensusService message is empty.\n */\nStatus.InvalidTopicMessage = new Status(158);\n\n/**\n * The autoRenewAccount specified is not a valid, active account.\n */\nStatus.InvalidAutorenewAccount = new Status(159);\n\n/**\n * An adminKey was not specified on the topic, so there must not be an autoRenewAccount.\n */\nStatus.AutorenewAccountNotAllowed = new Status(160);\n\n/**\n * The topic has expired, was not automatically renewed, and is in a 7 day grace period before the\n * topic will be deleted unrecoverably. This error response code will not be returned until\n * autoRenew functionality is supported by HAPI.\n */\nStatus.TopicExpired = new Status(162);\n\n/**\n * chunk number must be from 1 to total (chunks) inclusive.\n */\nStatus.InvalidChunkNumber = new Status(163);\n\n/**\n * For every chunk, the payer account that is part of initialTransactionID must match the Payer Account of this transaction. The entire initialTransactionID should match the transactionID of the first chunk, but this is not checked or enforced by Hedera except when the chunk number is 1.\n */\nStatus.InvalidChunkTransactionId = new Status(164);\n\n/**\n * Account is frozen and cannot transact with the token\n */\nStatus.AccountFrozenForToken = new Status(165);\n\n/**\n * An involved account already has more than tokens.maxPerAccount associations with non-deleted tokens.\n */\nStatus.TokensPerAccountLimitExceeded = new Status(166);\n\n/**\n * The token is invalid or does not exist\n */\nStatus.InvalidTokenId = new Status(167);\n\n/**\n * Invalid token decimals\n */\nStatus.InvalidTokenDecimals = new Status(168);\n\n/**\n * Invalid token initial supply\n */\nStatus.InvalidTokenInitialSupply = new Status(169);\n\n/**\n * Treasury Account does not exist or is deleted\n */\nStatus.InvalidTreasuryAccountForToken = new Status(170);\n\n/**\n * Token Symbol is not UTF-8 capitalized alphabetical string\n */\nStatus.InvalidTokenSymbol = new Status(171);\n\n/**\n * Freeze key is not set on token\n */\nStatus.TokenHasNoFreezeKey = new Status(172);\n\n/**\n * Amounts in transfer list are not net zero\n */\nStatus.TransfersNotZeroSumForToken = new Status(173);\n\n/**\n * A token symbol was not provided\n */\nStatus.MissingTokenSymbol = new Status(174);\n\n/**\n * The provided token symbol was too long\n */\nStatus.TokenSymbolTooLong = new Status(175);\n\n/**\n * KYC must be granted and account does not have KYC granted\n */\nStatus.AccountKycNotGrantedForToken = new Status(176);\n\n/**\n * KYC key is not set on token\n */\nStatus.TokenHasNoKycKey = new Status(177);\n\n/**\n * Token balance is not sufficient for the transaction\n */\nStatus.InsufficientTokenBalance = new Status(178);\n\n/**\n * Token transactions cannot be executed on deleted token\n */\nStatus.TokenWasDeleted = new Status(179);\n\n/**\n * Supply key is not set on token\n */\nStatus.TokenHasNoSupplyKey = new Status(180);\n\n/**\n * Wipe key is not set on token\n */\nStatus.TokenHasNoWipeKey = new Status(181);\n\n/**\n * The requested token mint amount would cause an invalid total supply\n */\nStatus.InvalidTokenMintAmount = new Status(182);\n\n/**\n * The requested token burn amount would cause an invalid total supply\n */\nStatus.InvalidTokenBurnAmount = new Status(183);\n\n/**\n * A required token-account relationship is missing\n */\nStatus.TokenNotAssociatedToAccount = new Status(184);\n\n/**\n * The target of a wipe operation was the token treasury account\n */\nStatus.CannotWipeTokenTreasuryAccount = new Status(185);\n\n/**\n * The provided KYC key was invalid.\n */\nStatus.InvalidKycKey = new Status(186);\n\n/**\n * The provided wipe key was invalid.\n */\nStatus.InvalidWipeKey = new Status(187);\n\n/**\n * The provided freeze key was invalid.\n */\nStatus.InvalidFreezeKey = new Status(188);\n\n/**\n * The provided supply key was invalid.\n */\nStatus.InvalidSupplyKey = new Status(189);\n\n/**\n * Token Name is not provided\n */\nStatus.MissingTokenName = new Status(190);\n\n/**\n * Token Name is too long\n */\nStatus.TokenNameTooLong = new Status(191);\n\n/**\n * The provided wipe amount must not be negative, zero or bigger than the token holder balance\n */\nStatus.InvalidWipingAmount = new Status(192);\n\n/**\n * Token does not have Admin key set, thus update/delete transactions cannot be performed\n */\nStatus.TokenIsImmutable = new Status(193);\n\n/**\n * An associateToken operation specified a token already associated to the account\n */\nStatus.TokenAlreadyAssociatedToAccount = new Status(194);\n\n/**\n * An attempted operation is invalid until all token balances for the target account are zero\n */\nStatus.TransactionRequiresZeroTokenBalances = new Status(195);\n\n/**\n * An attempted operation is invalid because the account is a treasury\n */\nStatus.AccountIsTreasury = new Status(196);\n\n/**\n * Same TokenIDs present in the token list\n */\nStatus.TokenIdRepeatedInTokenList = new Status(197);\n\n/**\n * Exceeded the number of token transfers (both from and to) allowed for token transfer list\n */\nStatus.TokenTransferListSizeLimitExceeded = new Status(198);\n\n/**\n * TokenTransfersTransactionBody has no TokenTransferList\n */\nStatus.EmptyTokenTransferBody = new Status(199);\n\n/**\n * TokenTransfersTransactionBody has a TokenTransferList with no AccountAmounts\n */\nStatus.EmptyTokenTransferAccountAmounts = new Status(200);\n\n/**\n * The Scheduled entity does not exist; or has now expired, been deleted, or been executed\n */\nStatus.InvalidScheduleId = new Status(201);\n\n/**\n * The Scheduled entity cannot be modified. Admin key not set\n */\nStatus.ScheduleIsImmutable = new Status(202);\n\n/**\n * The provided Scheduled Payer does not exist\n */\nStatus.InvalidSchedulePayerId = new Status(203);\n\n/**\n * The Schedule Create Transaction TransactionID account does not exist\n */\nStatus.InvalidScheduleAccountId = new Status(204);\n\n/**\n * The provided sig map did not contain any new valid signatures from required signers of the scheduled transaction\n */\nStatus.NoNewValidSignatures = new Status(205);\n\n/**\n * The required signers for a scheduled transaction cannot be resolved, for example because they do not exist or have been deleted\n */\nStatus.UnresolvableRequiredSigners = new Status(206);\n\n/**\n * Only whitelisted transaction types may be scheduled\n */\nStatus.ScheduledTransactionNotInWhitelist = new Status(207);\n\n/**\n * At least one of the signatures in the provided sig map did not represent a valid signature for any required signer\n */\nStatus.SomeSignaturesWereInvalid = new Status(208);\n\n/**\n * The scheduled field in the TransactionID may not be set to true\n */\nStatus.TransactionIdFieldNotAllowed = new Status(209);\n\n/**\n * A schedule already exists with the same identifying fields of an attempted ScheduleCreate (that is, all fields other than scheduledPayerAccountID)\n */\nStatus.IdenticalScheduleAlreadyCreated = new Status(210);\n\n/**\n * A string field in the transaction has a UTF-8 encoding with the prohibited zero byte\n */\nStatus.InvalidZeroByteInString = new Status(211);\n\n/**\n * A schedule being signed or deleted has already been deleted\n */\nStatus.ScheduleAlreadyDeleted = new Status(212);\n\n/**\n * A schedule being signed or deleted has already been executed\n */\nStatus.ScheduleAlreadyExecuted = new Status(213);\n\n/**\n * ConsensusSubmitMessage request's message size is larger than allowed.\n */\nStatus.MessageSizeTooLarge = new Status(214);\n\n/**\n * An operation was assigned to more than one throttle group in a given bucket\n */\nStatus.OperationRepeatedInBucketGroups = new Status(215);\n\n/**\n * The capacity needed to satisfy all opsPerSec groups in a bucket overflowed a signed 8-byte integral type\n */\nStatus.BucketCapacityOverflow = new Status(216);\n\n/**\n * Given the network size in the address book, the node-level capacity for an operation would never be enough to accept a single request; usually means a bucket burstPeriod should be increased\n */\nStatus.NodeCapacityNotSufficientForOperation = new Status(217);\n\n/**\n * A bucket was defined without any throttle groups\n */\nStatus.BucketHasNoThrottleGroups = new Status(218);\n\n/**\n * A throttle group was granted zero opsPerSec\n */\nStatus.ThrottleGroupHasZeroOpsPerSec = new Status(219);\n\n/**\n * The throttle definitions file was updated, but some supported operations were not assigned a bucket\n */\nStatus.SuccessButMissingExpectedOperation = new Status(220);\n\n/**\n * The new contents for the throttle definitions system file were not valid protobuf\n */\nStatus.UnparseableThrottleDefinitions = new Status(221);\n\n/**\n * The new throttle definitions system file were invalid, and no more specific error could be divined\n */\nStatus.InvalidThrottleDefinitions = new Status(222);\n\n/**\n * The transaction references an account which has passed its expiration without renewal funds available, and currently remains in the ledger only because of the grace period given to expired entities\n */\nStatus.AccountExpiredAndPendingRemoval = new Status(223);\n\n/**\n * Invalid token max supply\n */\nStatus.InvalidTokenMaxSupply = new Status(224);\n\n/**\n * Invalid token nft serial number\n */\nStatus.InvalidTokenNftSerialNumber = new Status(225);\n\n/**\n * Invalid nft id\n */\nStatus.InvalidNftId = new Status(226);\n\n/**\n * Nft metadata is too long\n */\nStatus.MetadataTooLong = new Status(227);\n\n/**\n * Repeated operations count exceeds the limit\n */\nStatus.BatchSizeLimitExceeded = new Status(228);\n\n/**\n * The range of data to be gathered is out of the set boundaries\n */\nStatus.InvalidQueryRange = new Status(229);\n\n/**\n * A custom fractional fee set a denominator of zero\n */\nStatus.FractionDividesByZero = new Status(230);\n\n/**\n * The transaction payer could not afford a custom fee\n */\nStatus.InsufficientPayerBalanceForCustomFee = new Status(231);\n\n/**\n * More than 10 custom fees were specified\n */\nStatus.CustomFeesListTooLong = new Status(232);\n\n/**\n * Any of the feeCollector accounts for customFees is invalid\n */\nStatus.InvalidCustomFeeCollector = new Status(233);\n\n/**\n * Any of the token Ids in customFees is invalid\n */\nStatus.InvalidTokenIdInCustomFees = new Status(234);\n\n/**\n * Any of the token Ids in customFees are not associated to feeCollector\n */\nStatus.TokenNotAssociatedToFeeCollector = new Status(235);\n\n/**\n * A token cannot have more units minted due to its configured supply ceiling\n */\nStatus.TokenMaxSupplyReached = new Status(236);\n\n/**\n * The transaction attempted to move an NFT serial number from an account other than its owner\n */\nStatus.SenderDoesNotOwnNftSerialNo = new Status(237);\n\n/**\n * A custom fee schedule entry did not specify either a fixed or fractional fee\n */\nStatus.CustomFeeNotFullySpecified = new Status(238);\n\n/**\n * Only positive fees may be assessed at this time\n */\nStatus.CustomFeeMustBePositive = new Status(239);\n\n/**\n * Fee schedule key is not set on token\n */\nStatus.TokenHasNoFeeScheduleKey = new Status(240);\n\n/**\n * A fractional custom fee exceeded the range of a 64-bit signed integer\n */\nStatus.CustomFeeOutsideNumericRange = new Status(241);\n\n/**\n * A royalty cannot exceed the total fungible value exchanged for an NFT\n */\nStatus.RoyaltyFractionCannotExceedOne = new Status(242);\n\n/**\n * Each fractional custom fee must have its maximum_amount, if specified, at least its minimum_amount\n */\nStatus.FractionalFeeMaxAmountLessThanMinAmount = new Status(243);\n\n/**\n * A fee schedule update tried to clear the custom fees from a token whose fee schedule was already empty\n */\nStatus.CustomScheduleAlreadyHasNoFees = new Status(244);\n\n/**\n * Only tokens of type FUNGIBLE_COMMON can be used to as fee schedule denominations\n */\nStatus.CustomFeeDenominationMustBeFungibleCommon = new Status(245);\n\n/**\n * Only tokens of type FUNGIBLE_COMMON can have fractional fees\n */\nStatus.CustomFractionalFeeOnlyAllowedForFungibleCommon = new Status(246);\n\n/**\n * The provided custom fee schedule key was invalid\n */\nStatus.InvalidCustomFeeScheduleKey = new Status(247);\n\n/**\n * The requested token mint metadata was invalid\n */\nStatus.InvalidTokenMintMetadata = new Status(248);\n\n/**\n * The requested token burn metadata was invalid\n */\nStatus.InvalidTokenBurnMetadata = new Status(249);\n\n/**\n * The treasury for a unique token cannot be changed until it owns no NFTs\n */\nStatus.CurrentTreasuryStillOwnsNfts = new Status(250);\n\n/**\n * An account cannot be dissociated from a unique token if it owns NFTs for the token\n */\nStatus.AccountStillOwnsNfts = new Status(251);\n\n/**\n * A NFT can only be burned when owned by the unique token's treasury\n */\nStatus.TreasuryMustOwnBurnedNft = new Status(252);\n\n/**\n * An account did not own the NFT to be wiped\n */\nStatus.AccountDoesNotOwnWipedNft = new Status(253);\n\n/**\n * An AccountAmount token transfers list referenced a token type other than FUNGIBLE_COMMON\n */\nStatus.AccountAmountTransfersOnlyAllowedForFungibleCommon = new Status(254);\n\n/**\n * All the NFTs allowed in the current price regime have already been minted\n */\nStatus.MaxNftsInPriceRegimeHaveBeenMinted = new Status(255);\n\n/**\n * The payer account has been marked as deleted\n */\nStatus.PayerAccountDeleted = new Status(256);\n\n/**\n * The reference chain of custom fees for a transferred token exceeded the maximum length of 2\n */\nStatus.CustomFeeChargingExceededMaxRecursionDepth = new Status(257);\n\n/**\n * More than 20 balance adjustments were to satisfy a CryptoTransfer and its implied custom fee payments\n */\nStatus.CustomFeeChargingExceededMaxAccountAmounts = new Status(258);\n\n/**\n * The sender account in the token transfer transaction could not afford a custom fee\n */\nStatus.InsufficientSenderAccountBalanceForCustomFee = new Status(259);\n\n/**\n * Currently no more than 4,294,967,295 NFTs may be minted for a given unique token type\n */\nStatus.SerialNumberLimitReached = new Status(260);\n\n/**\n * Only tokens of type NON_FUNGIBLE_UNIQUE can have royalty fees\n */\nStatus.CustomRoyaltyFeeOnlyAllowedForNonFungibleUnique = new Status(261);\n\n/**\n * The account has reached the limit on the automatic associations count.\n */\nStatus.NoRemainingAutomaticAssociations = new Status(262);\n\n/**\n * Already existing automatic associations are more than the new maximum automatic associations.\n */\nStatus.ExistingAutomaticAssociationsExceedGivenLimit = new Status(263);\n\n/**\n * Cannot set the number of automatic associations for an account more than the maximum allowed\n * token associations tokens.maxPerAccount.\n */\nStatus.RequestedNumAutomaticAssociationsExceedsAssociationLimit = new Status(\n 264,\n);\n\n/**\n * Token is paused. This Token cannot be a part of any kind of Transaction until unpaused.\n */\nStatus.TokenIsPaused = new Status(265);\n\n/**\n * Pause key is not set on token\n */\nStatus.TokenHasNoPauseKey = new Status(266);\n\n/**\n * The provided pause key was invalid\n */\nStatus.InvalidPauseKey = new Status(267);\n\n/**\n * The update file in a freeze transaction body must exist.\n */\nStatus.FreezeUpdateFileDoesNotExist = new Status(268);\n\n/**\n * The hash of the update file in a freeze transaction body must match the in-memory hash.\n */\nStatus.FreezeUpdateFileHashDoesNotMatch = new Status(269);\n\n/**\n * A FREEZE_UPGRADE transaction was handled with no previous update prepared.\n */\nStatus.NoUpgradeHasBeenPrepared = new Status(270);\n\n/**\n * A FREEZE_ABORT transaction was handled with no scheduled freeze.\n */\nStatus.NoFreezeIsScheduled = new Status(271);\n\n/**\n * The update file hash when handling a FREEZE_UPGRADE transaction differs from the file\n * hash at the time of handling the PREPARE_UPGRADE transaction.\n */\nStatus.UpdateFileHashChangedSincePrepareUpgrade = new Status(272);\n\n/**\n * The given freeze start time was in the (consensus) past.\n */\nStatus.FreezeStartTimeMustBeFuture = new Status(273);\n\n/**\n * The prepared update file cannot be updated or appended until either the upgrade has\n * been completed, or a FREEZE_ABORT has been handled.\n */\nStatus.PreparedUpdateFileIsImmutable = new Status(274);\n\n/**\n * Once a freeze is scheduled, it must be aborted before any other type of freeze can\n * can be performed.\n */\nStatus.FreezeAlreadyScheduled = new Status(275);\n\n/**\n * If an NMT upgrade has been prepared, the following operation must be a FREEZE_UPGRADE.\n * (To issue a FREEZE_ONLY, submit a FREEZE_ABORT first.)\n */\nStatus.FreezeUpgradeInProgress = new Status(276);\n\n/**\n * If an NMT upgrade has been prepared, the subsequent FREEZE_UPGRADE transaction must\n * confirm the id of the file to be used in the upgrade.\n */\nStatus.UpdateFileIdDoesNotMatchPrepared = new Status(277);\n\n/**\n * If an NMT upgrade has been prepared, the subsequent FREEZE_UPGRADE transaction must\n * confirm the hash of the file to be used in the upgrade.\n */\nStatus.UpdateFileHashDoesNotMatchPrepared = new Status(278);\n\n/**\n * Consensus throttle did not allow execution of this transaction. System is throttled at\n * consensus level.\n */\nStatus.ConsensusGasExhausted = new Status(279);\n\n/**\n * A precompiled contract succeeded, but was later reverted.\n */\nStatus.RevertedSuccess = new Status(280);\n\n/**\n * All contract storage allocated to the current price regime has been consumed.\n */\nStatus.MaxStorageInPriceRegimeHasBeenUsed = new Status(281);\n\n/**\n * An alias used in a CryptoTransfer transaction is not the serialization of a primitive Key\n * message--that is, a Key with a single Ed25519 or ECDSA(secp256k1) public key and no\n * unknown protobuf fields.\n */\nStatus.InvalidAliasKey = new Status(282);\n\n/**\n * A fungible token transfer expected a different number of decimals than the involved\n * type actually has.\n */\nStatus.UnexpectedTokenDecimals = new Status(283);\n\n/**\n * The proxy account id is invalid or does not exist.\n */\nStatus.InvalidProxyAccountId = new Status(284);\n\n/**\n * The transfer account id in CryptoDelete transaction is invalid or does not exist.\n */\nStatus.InvalidTransferAccountId = new Status(285);\n\n/**\n * The fee collector account id in TokenFeeScheduleUpdate is invalid or does not exist.\n */\nStatus.InvalidFeeCollectorAccountId = new Status(286);\n\n/**\n * The alias already set on an account cannot be updated using CryptoUpdate transaction.\n */\nStatus.AliasIsImmutable = new Status(287);\n\n/**\n * An approved allowance specifies a spender account that is the same as the hbar/token\n * owner account.\n */\nStatus.SpenderAccountSameAsOwner = new Status(288);\n\n/**\n * The establishment or adjustment of an approved allowance cause the token allowance\n * to exceed the token maximum supply.\n */\nStatus.AmountExceedsTokenMaxSupply = new Status(289);\n\n/**\n * The specified amount for an approved allowance cannot be negative.\n */\nStatus.NegativeAllowanceAmount = new Status(290);\n\n/**\n * The approveForAll flag cannot be set for a fungible token.\n */\nStatus.CannotApproveForAllFungibleCommon = new Status(291);\n\n/**\n * The spender does not have an existing approved allowance with the hbar/token owner.\n */\nStatus.SpenderDoesNotHaveAllowance = new Status(292);\n\n/**\n * The transfer amount exceeds the current approved allowance for the spender account.\n */\nStatus.AmountExceedsAllowance = new Status(293);\n\n/**\n * The payer account of an approveAllowances or adjustAllowance transaction is attempting\n * to go beyond the maximum allowed number of allowances.\n */\nStatus.MaxAllowancesExceeded = new Status(294);\n\n/**\n * No allowances have been specified in the approval/adjust transaction.\n */\nStatus.EmptyAllowances = new Status(295);\n\n/**\n * Spender is repeated more than once in Crypto or Token or NFT allowance lists in a single\n * CryptoApproveAllowance or CryptoAdjustAllowance transaction.\n */\nStatus.SpenderAccountRepeatedInAllowances = new Status(296);\n\n/**\n * Serial numbers are repeated in nft allowance for a single spender account\n */\nStatus.RepeatedSerialNumsInNftAllowances = new Status(297);\n\n/**\n * Fungible common token used in NFT allowances\n */\nStatus.FungibleTokenInNftAllowances = new Status(298);\n\n/**\n * Non fungible token used in fungible token allowances\n */\nStatus.NftInFungibleTokenAllowances = new Status(299);\n\n/**\n * The account id specified as the owner is invalid or does not exist.\n */\nStatus.InvalidAllowanceOwnerId = new Status(300);\n\n/**\n * The account id specified as the spender is invalid or does not exist.\n */\nStatus.InvalidAllowanceSpenderId = new Status(301);\n\n/**\n * If the CryptoDeleteAllowance transaction has repeated crypto or token or Nft allowances to delete.\n */\nStatus.RepeatedAllowancesToDelete = new Status(302);\n\n/**\n * If the account Id specified as the delegating spender is invalid or does not exist.\n */\nStatus.InvalidDelegatingSpender = new Status(303);\n\n/**\n * The delegating Spender cannot grant approveForAll allowance on a NFT token type for another spender.\n */\nStatus.DelegatingSpenderCannotGrantApproveForAll = new Status(304);\n\n/**\n * The delegating Spender cannot grant allowance on a NFT serial for another spender as it doesnt not have approveForAll\n * granted on token-owner.\n */\nStatus.DelegatingSpenderDoesNotHaveApproveForAll = new Status(305);\n\n/**\n * The scheduled transaction could not be created because it's expiration_time was too far in the future.\n */\nStatus.ScheduleExpirationTimeTooFarInFuture = new Status(306);\n\n/**\n * The scheduled transaction could not be created because it's expiration_time was less than or equal to the consensus time.\n */\nStatus.ScheduleExpirationTimeMustBeHigherThanConsensusTime = new Status(307);\n\n/**\n * The scheduled transaction could not be created because it would cause throttles to be violated on the specified expiration_time.\n */\nStatus.ScheduleFutureThrottleExceeded = new Status(308);\n\n/**\n * The scheduled transaction could not be created because it would cause the gas limit to be violated on the specified expiration_time.\n */\nStatus.ScheduleFutureGasLimitExceeded = new Status(309);\n\n/**\n * The ethereum transaction either failed parsing or failed signature validation, or some other EthereumTransaction error not covered by another response code.\n */\nStatus.InvalidEthereumTransaction = new Status(310);\n\n/**\n * EthereumTransaction was signed against a chainId that this network does not support.\n */\nStatus.WrongChainId = new Status(311);\n\n/**\n * This transaction specified an ethereumNonce that is not the current ethereumNonce of the account.\n */\nStatus.WrongNonce = new Status(312);\n\n/**\n * The ethereum transaction specified an access list, which the network does not support.\n */\nStatus.AccessListUnsupported = new Status(313);\n\n/**\n * The scheduled transaction is pending expiration.\n */\nStatus.SchedulePendingExpiration = new Status(314);\n\n/**\n * A selfdestruct or ContractDelete targeted a contract that is a token treasury.\n */\nStatus.ContractIsTokenTreasury = new Status(315);\n\n/**\n * A selfdestruct or ContractDelete targeted a contract with non-zero token balances.\n */\nStatus.ContractHasNonZeroTokenBalances = new Status(316);\n\n/**\n * A contract referenced by a transaction is \"detached\"; that is, expired and lacking any\n * hbar funds for auto-renewal payment---but still within its post-expiry grace period.\n */\nStatus.ContractExpiredAndPendingRemoval = new Status(317);\n\n/**\n * A ContractUpdate requested removal of a contract's auto-renew account, but that contract has\n * no auto-renew account.\n */\nStatus.ContractHasNoAutoRenewAccount = new Status(318);\n\n/**\n * A delete transaction submitted via HAPI set permanent_removal=true\n */\nStatus.PermanentRemovalRequiresSystemInitiation = new Status(319);\n\n/*\n * A CryptoCreate or ContractCreate used the deprecated proxyAccountID field.\n */\nStatus.ProxyAccountIdFieldIsDeprecated = new Status(320);\n\n/**\n * An account set the staked_account_id to itself in CryptoUpdate or ContractUpdate transactions.\n */\nStatus.SelfStakingIsNotAllowed = new Status(321);\n\n/**\n * The staking account id or staking node id given is invalid or does not exist.\n */\nStatus.InvalidStakingId = new Status(322);\n\n/**\n * Native staking, while implemented, has not yet enabled by the council.\n */\nStatus.StakingNotEnabled = new Status(323);\n\n/**\n * The range provided in PRNG transaction is negative.\n */\nStatus.InvalidPrngRange = new Status(324);\n\n/**\n * The maximum number of entities allowed in the current price regime have been created.\n */\nStatus.MaxEntitiesInPriceRegimeHaveBeenCreated = new Status(325);\n\n/**\n * The full prefix signature for precompile is not valid\n */\nStatus.InvalidFullPrefixSignatureForPrecompile = new Status(326);\n\n/**\n * The combined balances of a contract and its auto-renew account (if any) did not cover\n * the rent charged for net new storage used in a transaction.\n */\nStatus.InsufficientBalancesForStorageRent = new Status(327);\n\n/**\n * A contract transaction tried to use more than the allowed number of child records, via\n * either system contract records or internal contract creations.\n */\nStatus.MaxChildRecordsExceeded = new Status(328);\n\n/**\n * The combined balances of a contract and its auto-renew account (if any) or balance of an account did not cover\n * the auto-renewal fees in a transaction.\n */\nStatus.InsufficientBalancesForRenewalFees = new Status(329);\n\n/**\n * A transaction's protobuf message includes unknown fields; could mean that a client\n * expects not-yet-released functionality to be available.\n */\nStatus.TransactionHasUnknownFields = new Status(330);\n\n/**\n * The account cannot be modified. Account's key is not set\n */\nStatus.AccountIsImmutable = new Status(331);\n\n/**\n * An alias that is assigned to an account or contract cannot be assigned to another account or contract.\n */\nStatus.AliasAlreadyAssigned = new Status(332);\n\n/**\n * A provided metadata key was invalid. Verification includes, for example, checking the size of Ed25519 and ECDSA(secp256k1) public keys.\n */\nStatus.InvalidMetadataKey = new Status(333);\n\n/**\n * Metadata key is not set on token\n */\nStatus.TokenHasNoMetadataKey = new Status(334);\n\n/**\n * Token Metadata is not provided\n */\nStatus.MissingTokenMetadata = new Status(335);\n\n/**\n * NFT serial numbers are missing in the TokenUpdateNftsTransactionBody\n */\nStatus.MissingSerialNumbers = new Status(336);\n\n/**\n * Admin key is not set on token\n */\nStatus.TokenHasNoAdminKey = new Status(337);\n\n/**\n * The node has been marked as deleted\n */\nStatus.NodeDeleted = new Status(338);\n\n/**\n * A node is not found during update and delete node transaction\n */\nStatus.InvalidNodeId = new Status(339);\n\n/**\n * gossip_endpoint has a fully qualified domain name instead of ip\n */\nStatus.InvalidGossipEndpoint = new Status(340);\n\n/**\n * The node account_id is invalid\n */\nStatus.InvalidNodeAccountId = new Status(341);\n\n/**\n * The node description is invalid\n */\nStatus.InvalidNodeDescription = new Status(342);\n\n/**\n * service_endpoint is invalid\n */\nStatus.InvalidServiceEndpoint = new Status(343);\n\n/**\n * gossip_ca_certificate is invalid\n */\nStatus.InvalidGossipCaCertificate = new Status(344);\n\n/**\n * grpc_certificate_hash is invalid\n */\nStatus.InvalidGrpcCertificate = new Status(345);\n\n/**\n * The maximum automatic associations value is not valid.\n * The most common cause for this error is a value less than `-1`.\n */\nStatus.InvalidMaxAutoAssociations = new Status(346);\n\n/**\n * The maximum number of nodes allowed in the address book have been created.\n */\nStatus.MaxNodesCreated = new Status(347);\n\n/**\n * In ServiceEndpoint, domain_name and ipAddressV4 are mutually exclusive\n */\nStatus.IpFqdnCannotBeSetForSameEndpoint = new Status(348);\n\n/**\n * Fully qualified domain name is not allowed in gossip_endpoint\n */\nStatus.GossipEndpointCannotHaveFqdn = new Status(349);\n\n/**\n * In ServiceEndpoint, domain_name size too large\n */\nStatus.FqdnSizeTooLarge = new Status(350);\n\n/**\n * ServiceEndpoint is invalid\n */\nStatus.InvalidEndpoint = new Status(351);\n\n/**\n * The number of gossip endpoints exceeds the limit\n */\nStatus.GossipEndpointsExceededLimit = new Status(352);\n\n/**\n * The transaction attempted to use duplicate `TokenReference`.
\n * This affects `TokenReject` attempting to reject same token reference more than once.\n */\nStatus.TokenReferenceRepeated = new Status(353);\n\n/**\n * The account id specified as the owner in `TokenReject` is invalid or does not exist.\n */\nStatus.InvalidOwnerId = new Status(354);\n\n/**\n * The transaction attempted to use more than the allowed number of `TokenReference`.\n */\nStatus.TokenReferenceListSizeLimitExceeded = new Status(355);\n\n/**\n * The number of service endpoints exceeds the limit\n */\nStatus.ServiceEndpointsExceededLimit = new Status(356);\n\n/*\n * The IPv4 address is invalid\n */\nStatus.InvalidIpv4Address = new Status(357);\n\n/**\n * The transaction attempted to use empty `TokenReference` list.\n */\nStatus.EmptyTokenReferenceList = new Status(358);\n\n/*\n * The node account is not allowed to be updated\n */\nStatus.UpdateNodeAccountNotAllowed = new Status(359);\n\n/*\n * The token has no metadata or supply key\n */\nStatus.TokenHasNoMetadataOrSupplyKey = new Status(360);\n\n/**\n * The transaction attempted to the use an empty List of `PendingAirdropId`.\n */\nStatus.EmptyPendingAirdropIdList = new Status(361);\n\n/**\n * The transaction attempted to the same `PendingAirdropId` twice.\n */\nStatus.PendingAirdropIdRepeated = new Status(362);\n\n/**\n * The transaction attempted to use more than the allowed number of `PendingAirdropId`.\n */\nStatus.MaxPendingAirdropIdExceeded = new Status(363);\n\n/*\n * A pending airdrop already exists for the specified NFT.\n */\nStatus.PendingNftAirdropAlreadyExists = new Status(364);\n\n/*\n * The identified account is sender for one or more pending airdrop(s)\n * and cannot be deleted.
\n * Requester should cancel all pending airdrops before resending\n * this transaction.\n */\nStatus.AccountHasPendingAirdrops = new Status(365);\n\n/**\n * Consensus throttle did not allow execution of this transaction.
\n * The transaction should be retried after a modest delay.\n */\nStatus.ThrottledAtConsensus = new Status(366);\n\n/**\n * The provided pending airdrop id is invalid.
\n * This pending airdrop MAY already be claimed or cancelled.\n *

\n * The client SHOULD query a mirror node to determine the current status of\n * the pending airdrop.\n */\nStatus.InvalidPendingAirdropId = new Status(367);\n\n/**\n * The token to be airdropped has a fallback royalty fee and cannot be\n * sent or claimed via an airdrop transaction.\n */\nStatus.TokenAirdropWithFallbackRoyalty = new Status(368);\n\n/**\n * This airdrop claim is for a pending airdrop with an invalid token.
\n * The token might be deleted, or the sender may not have enough tokens\n * to fulfill the offer.\n *

\n * The client SHOULD query mirror node to determine the status of the pending\n * airdrop and whether the sender can fulfill the offer.\n */\nStatus.InvalidTokenInPendingAirdrop = new Status(369);\n\n/**\n * A scheduled transaction configured to wait for expiry to execute was given\n * an expiry time at which there is already too many transactions scheduled to\n * expire; its creation must be retried with a different expiry.\n */\nStatus.ScheduleExpiryIsBusy = new Status(370);\n\n/**\n * The provided gRPC certificate hash is invalid.\n */\nStatus.InvalidGrpcCertificateHash = new Status(371);\n\n/**\n * A scheduled transaction configured to wait for expiry to execute was not\n * given an explicit expiration time.\n */\nStatus.MissingExpiryTime = new Status(372);\n\n/**\n * A contract operation attempted to schedule another transaction after it\n * had already scheduled a recursive contract call.\n */\nStatus.NoSchedulingAllowedAfterScheduledRecursion = new Status(373);\n\n/**\n * A contract can schedule recursive calls a finite number of times (this is\n * approximately four million times with typical network configuration.)\n */\nStatus.RecursiveSchedulingLimitReached = new Status(374);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nexport default class GrpcStatus {\n /**\n * @hideconstructor\n * @internal\n * @param {number} code\n */\n constructor(code) {\n /** @readonly */\n this._code = code;\n\n Object.freeze(this);\n }\n\n /**\n * @internal\n * @param {number} code\n * @returns {GrpcStatus}\n */\n static _fromValue(code) {\n switch (code) {\n case 0:\n return GrpcStatus.Ok;\n case 1:\n return GrpcStatus.Cancelled;\n case 2:\n return GrpcStatus.Unknown;\n case 3:\n return GrpcStatus.InvalidArgument;\n case 4:\n return GrpcStatus.DeadlineExceeded;\n case 5:\n return GrpcStatus.NotFound;\n case 6:\n return GrpcStatus.AlreadyExists;\n case 7:\n return GrpcStatus.PermissionDenied;\n case 8:\n return GrpcStatus.ResourceExhausted;\n case 9:\n return GrpcStatus.FailedPrecondition;\n case 10:\n return GrpcStatus.Aborted;\n case 11:\n return GrpcStatus.OutOfRange;\n case 12:\n return GrpcStatus.Unimplemented;\n case 13:\n return GrpcStatus.Internal;\n case 14:\n return GrpcStatus.Unavailable;\n case 15:\n return GrpcStatus.DataLoss;\n case 16:\n return GrpcStatus.Unauthenticated;\n case 17:\n return GrpcStatus.Timeout;\n case 18:\n return GrpcStatus.GrpcWeb;\n default:\n throw new Error(\n \"(BUG) non-exhaustive GrpcStatus switch statement\",\n );\n }\n }\n\n /**\n * @returns {string}\n */\n toString() {\n switch (this) {\n case GrpcStatus.Ok:\n return \"OK\";\n case GrpcStatus.Cancelled:\n return \"CANCELLED\";\n case GrpcStatus.Unknown:\n return \"UNKNOWN\";\n case GrpcStatus.InvalidArgument:\n return \"INVALID_ARGUMENT\";\n case GrpcStatus.DeadlineExceeded:\n return \"DEADLINE_EXCEEDED\";\n case GrpcStatus.NotFound:\n return \"NOT_FOUND\";\n case GrpcStatus.AlreadyExists:\n return \"ALREADY_EXISTS\";\n case GrpcStatus.PermissionDenied:\n return \"PERMISSION_DENIED\";\n case GrpcStatus.Unauthenticated:\n return \"UNAUTHENTICATED\";\n case GrpcStatus.ResourceExhausted:\n return \"RESOURCE_EXHAUSTED\";\n case GrpcStatus.FailedPrecondition:\n return \"FAILED_PRECONDITION\";\n case GrpcStatus.Aborted:\n return \"ABORTED\";\n case GrpcStatus.OutOfRange:\n return \"OUT_OF_RANGE\";\n case GrpcStatus.Unimplemented:\n return \"UNIMPLEMENTED\";\n case GrpcStatus.Internal:\n return \"INTERNAL\";\n case GrpcStatus.Unavailable:\n return \"UNAVAILABLE\";\n case GrpcStatus.DataLoss:\n return \"DATA_LOSS\";\n case GrpcStatus.Timeout:\n return \"TIMEOUT\";\n case GrpcStatus.GrpcWeb:\n return \"GRPC_WEB\";\n default:\n return `UNKNOWN (${this._code})`;\n }\n }\n\n /**\n * @returns {number}\n */\n valueOf() {\n return this._code;\n }\n}\n\nGrpcStatus.Ok = new GrpcStatus(0);\nGrpcStatus.Cancelled = new GrpcStatus(1);\nGrpcStatus.Unknown = new GrpcStatus(2);\nGrpcStatus.InvalidArgument = new GrpcStatus(3);\nGrpcStatus.DeadlineExceeded = new GrpcStatus(4);\nGrpcStatus.NotFound = new GrpcStatus(5);\nGrpcStatus.AlreadyExists = new GrpcStatus(6);\nGrpcStatus.PermissionDenied = new GrpcStatus(7);\nGrpcStatus.ResourceExhausted = new GrpcStatus(8);\nGrpcStatus.FailedPrecondition = new GrpcStatus(9);\nGrpcStatus.Aborted = new GrpcStatus(10);\nGrpcStatus.OutOfRange = new GrpcStatus(11);\nGrpcStatus.Unimplemented = new GrpcStatus(12);\nGrpcStatus.Internal = new GrpcStatus(13);\nGrpcStatus.Unavailable = new GrpcStatus(14);\nGrpcStatus.DataLoss = new GrpcStatus(15);\nGrpcStatus.Unauthenticated = new GrpcStatus(16);\nGrpcStatus.Timeout = new GrpcStatus(17);\nGrpcStatus.GrpcWeb = new GrpcStatus(18);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport GrpcStatus from \"./GrpcStatus.js\";\n\n/**\n * Describes how the gRPC request failed.\n *\n * Exists in order for the Hedera JavaScript SDK to produce the same error type for gRPC errors regardless of\n * operating in node or the browser.\n *\n * Definition taken from .\n */\nexport default class GrpcServiceError extends Error {\n /**\n * @param {GrpcStatus} status\n * @param {string} [nodeAccountId]\n */\n constructor(status, nodeAccountId) {\n super(\n `gRPC service failed with: Status: ${status.toString()}, Code: ${status.valueOf()}`,\n );\n\n /**\n * @readonly\n */\n this.status = status;\n\n /**\n * Optional: node account ID associated with the error\n */\n this.nodeAccountId = nodeAccountId;\n\n this.name = \"GrpcServiceError\";\n\n if (typeof Error.captureStackTrace !== \"undefined\") {\n Error.captureStackTrace(this, GrpcServiceError);\n }\n }\n\n /**\n * @param {Error & { code?: number; details?: string }} obj\n * @returns {Error}\n */\n static _fromResponse(obj) {\n if (obj.code != null && obj.details != null) {\n const status = GrpcStatus._fromValue(obj.code);\n const err = new GrpcServiceError(status);\n err.stack += `\\nCaused by: ${\n obj.stack ? obj.stack.toString() : \"\"\n }`;\n err.message += `: ${obj.details}`;\n return err;\n } else {\n return /** @type {Error} */ (obj);\n }\n }\n\n /**\n * @returns {string}\n */\n toString() {\n return `${this.name}: ${this.message}`;\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nexport default class HttpStatus {\n /**\n * @hideconstructor\n * @internal\n * @param {number} code\n */\n constructor(code) {\n /** @readonly */\n this._code = code;\n\n Object.freeze(this);\n }\n\n /**\n * @internal\n * @param {number} code\n * @returns {HttpStatus}\n */\n static _fromValue(code) {\n return new HttpStatus(code);\n }\n\n /**\n * @returns {string}\n */\n toString() {\n return this._code.toString();\n }\n\n /**\n * @returns {number}\n */\n valueOf() {\n return this._code;\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport HttpStatus from \"./HttpStatus.js\";\n\n/**\n * Describes how the http request failed.\n */\nexport default class HttpError extends Error {\n /**\n * @param {HttpStatus} status\n */\n constructor(status) {\n super(`failed with error code: ${status.toString()}`);\n\n /**\n * @readonly\n */\n this.status = status;\n\n this.name = \"HttpError\";\n\n if (typeof Error.captureStackTrace !== \"undefined\") {\n Error.captureStackTrace(this, HttpError);\n }\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2024 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\n/**\n * @typedef {object} MaxAttemptsOrTimeoutErrorJSON\n * @property {string} message\n * @property {string} nodeAccountId\n *\n */\n\nexport default class MaxAttemptsOrTimeoutError extends Error {\n /**\n * @param {string} message\n * @param {string} nodeAccountId\n */\n constructor(message, nodeAccountId) {\n // Call the Error constructor with the message\n super(message);\n\n // Assign the nodeAccountId as a custom property\n this.nodeAccountId = nodeAccountId;\n }\n\n toJSON() {\n return {\n message: this.message,\n nodeAccountId: this.nodeAccountId,\n };\n }\n\n /**\n * @returns {string}\n */\n toString() {\n return JSON.stringify(this.toJSON());\n }\n\n /**\n * @returns {MaxAttemptsOrTimeoutErrorJSON}\n */\n valueOf() {\n return this.toJSON();\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport GrpcServiceError from \"./grpc/GrpcServiceError.js\";\nimport GrpcStatus from \"./grpc/GrpcStatus.js\";\nimport List from \"./transaction/List.js\";\nimport * as hex from \"./encoding/hex.js\";\nimport HttpError from \"./http/HttpError.js\";\nimport Status from \"./Status.js\";\nimport MaxAttemptsOrTimeoutError from \"./MaxAttemptsOrTimeoutError.js\";\n\n/**\n * @typedef {import(\"./account/AccountId.js\").default} AccountId\n * @typedef {import(\"./channel/Channel.js\").default} Channel\n * @typedef {import(\"./channel/MirrorChannel.js\").default} MirrorChannel\n * @typedef {import(\"./transaction/TransactionId.js\").default} TransactionId\n * @typedef {import(\"./client/Client.js\").ClientOperator} ClientOperator\n * @typedef {import(\"./Signer.js\").Signer} Signer\n * @typedef {import(\"./PublicKey.js\").default} PublicKey\n * @typedef {import(\"./logger/Logger.js\").default} Logger\n */\n\n/**\n * @enum {string}\n */\nexport const ExecutionState = {\n Finished: \"Finished\",\n Retry: \"Retry\",\n Error: \"Error\",\n};\n\nexport const RST_STREAM = /\\brst[^0-9a-zA-Z]stream\\b/i;\nexport const DEFAULT_MAX_ATTEMPTS = 10;\n\n/**\n * @abstract\n * @internal\n * @template RequestT\n * @template ResponseT\n * @template OutputT\n */\nexport default class Executable {\n constructor() {\n /**\n * The number of times we can retry the grpc call\n *\n * @internal\n * @type {number}\n */\n this._maxAttempts = DEFAULT_MAX_ATTEMPTS;\n\n /**\n * List of node account IDs for each transaction that has been\n * built.\n *\n * @internal\n * @type {List}\n */\n this._nodeAccountIds = new List();\n\n /**\n * List of the transaction node account IDs to check if\n * the node account ID of the request is in the list\n *\n * @protected\n * @type {Array}\n */\n this.transactionNodeIds = [];\n\n /**\n * @internal\n */\n this._signOnDemand = false;\n\n /**\n * This is the request's min backoff\n *\n * @internal\n * @type {number | null}\n */\n this._minBackoff = null;\n\n /**\n * This is the request's max backoff\n *\n * @internal\n * @type {number}\n */\n this._maxBackoff = 8000;\n\n /**\n * The operator that was used to execute this request.\n * The reason we save the operator in the request is because of the signing on\n * demand feature. This feature requires us to sign new request on each attempt\n * meaning if a client with an operator was used we'd need to sign with the operator\n * on each attempt.\n *\n * @internal\n * @type {ClientOperator | null}\n */\n this._operator = null;\n\n /**\n * The complete timeout for running the `execute()` method\n *\n * @internal\n * @type {number | null}\n */\n this._requestTimeout = null;\n\n /**\n * The grpc request timeout aka deadline.\n *\n * The reason we have this is because there were times that consensus nodes held the grpc\n * connection, but didn't return anything; not error nor regular response. This resulted\n * in some weird behavior in the SDKs. To fix this we've added a grpc deadline to prevent\n * nodes from stalling the executing of a request.\n *\n * @internal\n * @type {number | null}\n */\n this._grpcDeadline = null;\n\n /**\n * Logger\n *\n * @protected\n * @type {Logger | null}\n */\n this._logger = null;\n }\n\n /**\n * Get the list of node account IDs on the request. If no nodes are set, then null is returned.\n * The reasoning for this is simply \"legacy behavior\".\n *\n * @returns {?AccountId[]}\n */\n get nodeAccountIds() {\n if (this._nodeAccountIds.isEmpty) {\n return null;\n } else {\n this._nodeAccountIds.setLocked();\n return this._nodeAccountIds.list;\n }\n }\n\n /**\n * Set the node account IDs on the request\n *\n * @param {AccountId[]} nodeIds\n * @returns {this}\n */\n setNodeAccountIds(nodeIds) {\n // Set the node account IDs, and lock the list. This will require `execute`\n // to use these nodes instead of random nodes from the network.\n this._nodeAccountIds.setList(nodeIds).setLocked();\n return this;\n }\n\n /**\n * @deprecated\n * @returns {number}\n */\n get maxRetries() {\n console.warn(\"Deprecated: use maxAttempts instead\");\n return this.maxAttempts;\n }\n\n /**\n * @param {number} maxRetries\n * @returns {this}\n */\n setMaxRetries(maxRetries) {\n console.warn(\"Deprecated: use setMaxAttempts() instead\");\n return this.setMaxAttempts(maxRetries);\n }\n\n /**\n * Get the max attempts on the request\n *\n * @returns {number}\n */\n get maxAttempts() {\n return this._maxAttempts;\n }\n\n /**\n * Set the max attempts on the request\n *\n * @param {number} maxAttempts\n * @returns {this}\n */\n setMaxAttempts(maxAttempts) {\n this._maxAttempts = maxAttempts;\n\n return this;\n }\n\n /**\n * Get the grpc deadline\n *\n * @returns {?number}\n */\n get grpcDeadline() {\n return this._grpcDeadline;\n }\n\n /**\n * Set the grpc deadline\n *\n * @param {number} grpcDeadline\n * @returns {this}\n */\n setGrpcDeadline(grpcDeadline) {\n this._grpcDeadline = grpcDeadline;\n\n return this;\n }\n\n /**\n * Set the min backoff for the request\n *\n * @param {number} minBackoff\n * @returns {this}\n */\n setMinBackoff(minBackoff) {\n // Honestly we shouldn't be checking for null since that should be TypeScript's job.\n // Also verify that min backoff is not greater than max backoff.\n if (minBackoff == null) {\n throw new Error(\"minBackoff cannot be null.\");\n } else if (this._maxBackoff != null && minBackoff > this._maxBackoff) {\n throw new Error(\"minBackoff cannot be larger than maxBackoff.\");\n }\n this._minBackoff = minBackoff;\n return this;\n }\n\n /**\n * Get the min backoff\n *\n * @returns {number | null}\n */\n get minBackoff() {\n return this._minBackoff;\n }\n\n /**\n * Set the max backoff for the request\n *\n * @param {?number} maxBackoff\n * @returns {this}\n */\n setMaxBackoff(maxBackoff) {\n // Honestly we shouldn't be checking for null since that should be TypeScript's job.\n // Also verify that max backoff is not less than min backoff.\n if (maxBackoff == null) {\n throw new Error(\"maxBackoff cannot be null.\");\n } else if (this._minBackoff != null && maxBackoff < this._minBackoff) {\n throw new Error(\"maxBackoff cannot be smaller than minBackoff.\");\n }\n this._maxBackoff = maxBackoff;\n return this;\n }\n\n /**\n * Get the max backoff\n *\n * @returns {number}\n */\n get maxBackoff() {\n return this._maxBackoff;\n }\n\n /**\n * This method is responsible for doing any work before the executing process begins.\n * For paid queries this will result in executing a cost query, for transactions this\n * will make sure we save the operator and sign any requests that need to be signed\n * in case signing on demand is disabled.\n *\n * @abstract\n * @protected\n * @param {import(\"./client/Client.js\").default} client\n * @returns {Promise}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _beforeExecute(client) {\n throw new Error(\"not implemented\");\n }\n\n /**\n * Create a protobuf request which will be passed into the `_execute()` method\n *\n * @abstract\n * @protected\n * @returns {Promise}\n */\n _makeRequestAsync() {\n throw new Error(\"not implemented\");\n }\n\n /**\n * This name is a bit wrong now, but the purpose of this method is to map the\n * request and response into an error. This method will only be called when\n * `_shouldRetry` returned `ExecutionState.Error`\n *\n * @abstract\n * @internal\n * @param {RequestT} request\n * @param {ResponseT} response\n * @param {AccountId} nodeId\n * @returns {Error}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _mapStatusError(request, response, nodeId) {\n throw new Error(\"not implemented\");\n }\n\n /**\n * Map the request, response, and the node account ID used for this attempt into a response.\n * This method will only be called when `_shouldRetry` returned `ExecutionState.Finished`\n *\n * @abstract\n * @protected\n * @param {ResponseT} response\n * @param {AccountId} nodeAccountId\n * @param {RequestT} request\n * @returns {Promise}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _mapResponse(response, nodeAccountId, request) {\n throw new Error(\"not implemented\");\n }\n\n /**\n * Perform a single grpc call with the given request. Each request has it's own\n * required service so we just pass in channel, and it'$ the request's responsiblity\n * to use the right service and call the right grpc method.\n *\n * @abstract\n * @internal\n * @param {Channel} channel\n * @param {RequestT} request\n * @returns {Promise}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _execute(channel, request) {\n throw new Error(\"not implemented\");\n }\n\n /**\n * Return the current transaction ID for the request. All requests which are\n * use the same transaction ID for each node, but the catch is that `Transaction`\n * implicitly supports chunked transactions. Meaning there could be multiple\n * transaction IDs stored in the request, and a different transaction ID will be used\n * on subsequent calls to `execute()`\n *\n * FIXME: This method can most likely be removed, although some further inspection\n * is required.\n *\n * @abstract\n * @protected\n * @returns {TransactionId}\n */\n _getTransactionId() {\n throw new Error(\"not implemented\");\n }\n\n /**\n * Return the log ID for this particular request\n *\n * Log IDs are simply a string constructed to make it easy to track each request's\n * execution even when mulitple requests are executing in parallel. Typically, this\n * method returns the format of `[.]`\n *\n * Maybe we should deduplicate this using ${this.consturtor.name}\n *\n * @abstract\n * @internal\n * @returns {string}\n */\n _getLogId() {\n throw new Error(\"not implemented\");\n }\n\n /**\n * Serialize the request into bytes\n *\n * @abstract\n * @param {RequestT} request\n * @returns {Uint8Array}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _requestToBytes(request) {\n throw new Error(\"not implemented\");\n }\n\n /**\n * Serialize the response into bytes\n *\n * @abstract\n * @param {ResponseT} response\n * @returns {Uint8Array}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _responseToBytes(response) {\n throw new Error(\"not implemented\");\n }\n\n /**\n * Advance the request to the next node\n *\n * FIXME: This method used to perform different code depending on if we're\n * executing a query or transaction, but that is no longer the case\n * and hence could be removed.\n *\n * @protected\n * @returns {void}\n */\n _advanceRequest() {\n this._nodeAccountIds.advance();\n }\n\n /**\n * Determine if we should continue the execution process, error, or finish.\n *\n * FIXME: This method should really be called something else. Initially it returned\n * a boolean so `shouldRetry` made sense, but now it returns an enum, so the name\n * no longer makes sense.\n *\n * @abstract\n * @protected\n * @param {RequestT} request\n * @param {ResponseT} response\n * @returns {[Status, ExecutionState]}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _shouldRetry(request, response) {\n throw new Error(\"not implemented\");\n }\n\n /**\n * Determine if we should error based on the gRPC status\n *\n * Unlike `shouldRetry` this method does in fact still return a boolean\n *\n * @protected\n * @param {Error} error\n * @returns {boolean}\n */\n _shouldRetryExceptionally(error) {\n if (error instanceof GrpcServiceError) {\n return (\n error.status._code === GrpcStatus.Timeout._code ||\n error.status._code === GrpcStatus.Unavailable._code ||\n error.status._code === GrpcStatus.ResourceExhausted._code ||\n error.status._code === GrpcStatus.GrpcWeb._code ||\n (error.status._code === GrpcStatus.Internal._code &&\n RST_STREAM.test(error.message))\n );\n } else {\n // if we get to the 'else' statement, the 'error' is instanceof 'HttpError'\n // and in this case, we have to retry always\n return true;\n }\n }\n\n /**\n * A helper method for setting the operator on the request\n *\n * @internal\n * @param {AccountId} accountId\n * @param {PublicKey} publicKey\n * @param {(message: Uint8Array) => Promise} transactionSigner\n * @returns {this}\n */\n _setOperatorWith(accountId, publicKey, transactionSigner) {\n this._operator = {\n transactionSigner,\n accountId,\n publicKey,\n };\n return this;\n }\n\n /**\n * Execute this request using the signer\n *\n * This method is part of the signature providers feature\n * https://hips.hedera.com/hip/hip-338\n *\n * @param {Signer} signer\n * @returns {Promise}\n */\n async executeWithSigner(signer) {\n return signer.call(this);\n }\n\n /**\n * Execute the request using a client and an optional request timeout\n *\n * @template {Channel} ChannelT\n * @template {MirrorChannel} MirrorChannelT\n * @param {import(\"./client/Client.js\").default} client\n * @param {number=} requestTimeout\n * @returns {Promise}\n */\n async execute(client, requestTimeout) {\n // If the logger on the request is not set, use the logger in client\n // (if set, otherwise do not use logger)\n this._logger =\n this._logger == null\n ? client._logger != null\n ? client._logger\n : null\n : this._logger;\n\n // If the request timeout is set on the request we'll prioritize that instead\n // of the parameter provided, and if the parameter isn't provided we'll\n // use the default request timeout on client\n if (this._requestTimeout == null) {\n this._requestTimeout =\n requestTimeout != null ? requestTimeout : client.requestTimeout;\n }\n\n // Some request need to perform additional requests before the executing\n // such as paid queries need to fetch the cost of the query before\n // finally executing the actual query.\n await this._beforeExecute(client);\n\n // If the max backoff on the request is not set, use the default value in client\n if (this._maxBackoff == null) {\n this._maxBackoff = client.maxBackoff;\n }\n\n // If the min backoff on the request is not set, use the default value in client\n if (this._minBackoff == null) {\n this._minBackoff = client.minBackoff;\n }\n\n // If the max attempts on the request is not set, use the default value in client\n // If the default value in client is not set, use a default of 10.\n //\n // FIXME: current implementation is wrong, update to follow comment above.\n const maxAttempts =\n client._maxAttempts != null\n ? client._maxAttempts\n : this._maxAttempts;\n\n // Save the start time to be used later with request timeout\n const startTime = Date.now();\n\n // Saves each error we get so when we err due to max attempts exceeded we'll have\n // the last error that was returned by the consensus node\n let persistentError = null;\n\n // Checks if has a valid nodes to which the TX can be sent\n if (this.transactionNodeIds.length) {\n const nodeAccountIds = this._nodeAccountIds.list.map((nodeId) =>\n nodeId.toString(),\n );\n\n const hasValidNodes = this.transactionNodeIds.some((nodeId) =>\n nodeAccountIds.includes(nodeId),\n );\n\n if (!hasValidNodes) {\n const displayNodeAccountIds =\n nodeAccountIds.length > 2\n ? `${nodeAccountIds.slice(0, 2).join(\", \")} ...`\n : nodeAccountIds.join(\", \");\n const isSingleNode = nodeAccountIds.length === 1;\n\n throw new Error(\n `Attempting to execute a transaction against node${isSingleNode ? \"\" : \"s\"} ${displayNodeAccountIds}, ` +\n `which ${isSingleNode ? \"is\" : \"are\"} not included in the Client's node list. Please review your Client configuration.`,\n );\n }\n }\n\n // The retry loop\n for (let attempt = 1; attempt <= maxAttempts; attempt += 1) {\n // Determine if we've exceeded request timeout\n if (\n this._requestTimeout != null &&\n startTime + this._requestTimeout <= Date.now()\n ) {\n throw new MaxAttemptsOrTimeoutError(\n `timeout exceeded`,\n this._nodeAccountIds.isEmpty\n ? \"No node account ID set\"\n : this._nodeAccountIds.current.toString(),\n );\n }\n\n let nodeAccountId;\n let node;\n\n if (this._nodeAccountIds.isEmpty) {\n node = client._network.getNode();\n nodeAccountId = node.accountId;\n this._nodeAccountIds.setList([nodeAccountId]);\n } else {\n nodeAccountId = this._nodeAccountIds.current;\n node = client._network.getNode(nodeAccountId);\n }\n\n if (node == null) {\n throw new Error(\n `NodeAccountId not recognized: ${nodeAccountId.toString()}`,\n );\n }\n\n if (this.transactionNodeIds.length) {\n const isNodeAccountIdValid = this.transactionNodeIds.includes(\n nodeAccountId.toString(),\n );\n\n if (!isNodeAccountIdValid) {\n console.error(\n `Attempting to execute a transaction against node ${nodeAccountId.toString()}, which is not included in the Client's node list. Please review your Client configuration.`,\n );\n\n this._nodeAccountIds.advance();\n continue;\n }\n }\n\n // Get the log ID for the request.\n const logId = this._getLogId();\n if (this._logger) {\n this._logger.debug(\n `[${logId}] Node AccountID: ${node.accountId.toString()}, IP: ${node.address.toString()}`,\n );\n }\n\n const channel = node.getChannel();\n const request = await this._makeRequestAsync();\n\n // advance the internal index\n // non-free queries and transactions map to more than 1 actual transaction and this will cause\n // the next invocation of makeRequest to return the _next_ transaction\n // FIXME: This is likely no longer relavent after we've transitioned to using our `List` type\n // can be replaced with `this._nodeAccountIds.advance();`\n this._advanceRequest();\n\n let response;\n\n // If the node is unhealthy, wait for it to be healthy\n // FIXME: This is wrong, we should skip to the next node, and only perform\n // a request backoff after we've tried all nodes in the current list.\n if (!node.isHealthy() && this._nodeAccountIds.length > 1) {\n if (this._logger) {\n this._logger.debug(\n `[${logId}] node is not healthy, skipping waiting ${node.getRemainingTime()}`,\n );\n }\n\n // We don't need to wait, we can proceed to the next attempt.\n continue;\n }\n\n try {\n // Race the execution promise against the grpc timeout to prevent grpc connections\n // from blocking this request\n const promises = [];\n\n // If a grpc deadline is est, we should race it, otherwise the only thing in the\n // list of promises will be the execution promise.\n if (this._grpcDeadline != null) {\n promises.push(\n // eslint-disable-next-line ie11/no-loop-func\n new Promise((_, reject) =>\n setTimeout(\n // eslint-disable-next-line ie11/no-loop-func\n () =>\n reject(new Error(\"grpc deadline exceeded\")),\n /** @type {number=} */ (this._grpcDeadline),\n ),\n ),\n );\n }\n if (this._logger) {\n this._logger.trace(\n `[${this._getLogId()}] sending protobuf ${hex.encode(\n this._requestToBytes(request),\n )}`,\n );\n }\n\n promises.push(this._execute(channel, request));\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n response = /** @type {ResponseT} */ (\n await Promise.race(promises)\n );\n } catch (err) {\n // If we received a grpc status error we need to determine if\n // we should retry on this error, or err from the request entirely.\n const error = GrpcServiceError._fromResponse(\n /** @type {Error} */ (err),\n );\n\n // Save the error in case we retry\n persistentError = error;\n if (this._logger) {\n this._logger.debug(\n `[${logId}] received error ${JSON.stringify(error)}`,\n );\n }\n\n if (\n (error instanceof GrpcServiceError ||\n error instanceof HttpError) &&\n this._shouldRetryExceptionally(error) &&\n attempt <= maxAttempts\n ) {\n // Increase the backoff for the particular node and remove it from\n // the healthy node list\n if (this._logger) {\n this._logger.debug(\n `[${this._getLogId()}] node with accountId: ${node.accountId.toString()} and proxy IP: ${node.address.toString()} is unhealthy`,\n );\n }\n\n client._network.increaseBackoff(node);\n continue;\n }\n\n throw err;\n }\n if (this._logger) {\n this._logger.trace(\n `[${this._getLogId()}] sending protobuf ${hex.encode(\n this._responseToBytes(response),\n )}`,\n );\n }\n\n // If we didn't receive an error we should decrease the current nodes backoff\n // in case it is a recovering node\n client._network.decreaseBackoff(node);\n\n // Determine what execution state we're in by the response\n // For transactions this would be as simple as checking the response status is `OK`\n // while for _most_ queries it would check if the response status is `SUCCESS`\n // The only odd balls are `TransactionReceiptQuery` and `TransactionRecordQuery`\n const [status, shouldRetry] = this._shouldRetry(request, response);\n if (\n status.toString() !== Status.Ok.toString() &&\n status.toString() !== Status.Success.toString()\n ) {\n persistentError = status;\n }\n\n // Determine by the executing state what we should do\n switch (shouldRetry) {\n case ExecutionState.Retry:\n await delayForAttempt(\n attempt,\n this._minBackoff,\n this._maxBackoff,\n );\n continue;\n case ExecutionState.Finished:\n return this._mapResponse(response, nodeAccountId, request);\n case ExecutionState.Error:\n throw this._mapStatusError(\n request,\n response,\n nodeAccountId,\n );\n default:\n throw new Error(\n \"(BUG) non-exhaustive switch statement for `ExecutionState`\",\n );\n }\n }\n\n // We'll only get here if we've run out of attempts, so we return an error wrapping the\n // persistent error we saved before.\n\n throw new MaxAttemptsOrTimeoutError(\n `max attempts of ${maxAttempts.toString()} was reached for request with last error being: ${\n persistentError != null ? persistentError.toString() : \"\"\n }`,\n this._nodeAccountIds.current.toString(),\n );\n }\n\n /**\n * The current purpose of this method is to easily support signature providers since\n * signature providers need to serialize _any_ request into bytes. `Query` and `Transaction`\n * already implement `toBytes()` so it only made sense to make it available here too.\n *\n * @abstract\n * @returns {Uint8Array}\n */\n toBytes() {\n throw new Error(\"not implemented\");\n }\n\n /**\n * Set logger\n *\n * @param {Logger} logger\n * @returns {this}\n */\n setLogger(logger) {\n this._logger = logger;\n return this;\n }\n\n /**\n * Get logger if set\n *\n * @returns {?Logger}\n */\n get logger() {\n return this._logger;\n }\n}\n\n/**\n * A simple function that returns a promise timeout for a specific period of time\n *\n * @param {number} attempt\n * @param {number} minBackoff\n * @param {number} maxBackoff\n * @returns {Promise}\n */\nfunction delayForAttempt(attempt, minBackoff, maxBackoff) {\n // 0.1s, 0.2s, 0.4s, 0.8s, ...\n const ms = Math.min(\n Math.floor(minBackoff * Math.pow(2, attempt)),\n maxBackoff,\n );\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport StatusError from \"./StatusError.js\";\n\n/**\n * @typedef {import(\"./Status.js\").default} Status\n * @typedef {import(\"./transaction/TransactionId.js\").default} TransactionId\n * @typedef {import(\"./contract/ContractFunctionResult.js\").default} ContractFunctionResult\n * @typedef {import(\"./account/AccountId.js\").default} AccountId\n */\n\n/**\n * @typedef {object} PrecheckStatusErrorJSON\n * @property {string} name\n * @property {string} status\n * @property {string} transactionId\n * @property {?string | null} nodeId\n * @property {string} message\n * @property {?ContractFunctionResult} contractFunctionResult\n */\n\nexport default class PrecheckStatusError extends StatusError {\n /**\n * @param {object} props\n * @param {Status} props.status\n * @param {TransactionId} props.transactionId\n * @param {AccountId} props.nodeId\n * @param {?ContractFunctionResult} props.contractFunctionResult\n */\n constructor(props) {\n super(\n props,\n `transaction ${props.transactionId.toString()} failed precheck with status ${props.status.toString()} against node account id ${props.nodeId.toString()}`,\n );\n\n /**\n * @type {?ContractFunctionResult}\n * @readonly\n */\n this.contractFunctionResult = props.contractFunctionResult;\n\n /**\n * @type {AccountId}\n * @readonly\n */\n this.nodeId = props.nodeId;\n }\n\n /**\n * @returns {PrecheckStatusErrorJSON}\n */\n toJSON() {\n return {\n name: this.name,\n status: this.status.toString(),\n transactionId: this.transactionId.toString(),\n nodeId: this.nodeId.toString(),\n message: this.message,\n contractFunctionResult: this.contractFunctionResult,\n };\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\n/**\n * @typedef {import(\"./Hbar.js\").default} Hbar\n */\n\nexport default class MaxQueryPaymentExceeded extends Error {\n /**\n * @param {Hbar} queryCost\n * @param {Hbar} maxQueryPayment\n */\n constructor(queryCost, maxQueryPayment) {\n super();\n\n this.message = `query cost of ${queryCost.toString()} HBAR exceeds max set on client: ${maxQueryPayment.toString()} HBAR`;\n this.name = \"MaxQueryPaymentExceededError\";\n this.queryCost = queryCost;\n this.maxQueryPayment = maxQueryPayment;\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Status from \"../Status.js\";\nimport AccountId from \"../account/AccountId.js\";\nimport Hbar from \"../Hbar.js\";\nimport Executable, { ExecutionState } from \"../Executable.js\";\nimport TransactionId from \"../transaction/TransactionId.js\";\nimport * as HashgraphProto from \"@hashgraph/proto\";\nimport PrecheckStatusError from \"../PrecheckStatusError.js\";\nimport MaxQueryPaymentExceeded from \"../MaxQueryPaymentExceeded.js\";\nimport Long from \"long\";\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../channel/MirrorChannel.js\").default} MirrorChannel\n * @typedef {import(\"../PublicKey.js\").default} PublicKey\n * @typedef {import(\"../client/Client.js\").ClientOperator} ClientOperator\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../logger/Logger.js\").default} Logger\n */\n\n/**\n * This registry holds a bunch of callbacks for `fromProtobuf()` implementations\n * Since this is essentially aa cache, perhaps we should move this variable into the `Cache`\n * type for consistency?\n *\n * @type {Map Query<*>>}\n */\nexport const QUERY_REGISTRY = new Map();\n\n/**\n * Base class for all queries that can be submitted to Hedera.\n *\n * @abstract\n * @template OutputT\n * @augments {Executable}\n */\nexport default class Query extends Executable {\n constructor() {\n super();\n\n /**\n * The payment transaction ID\n *\n * @type {?TransactionId}\n */\n this._paymentTransactionId = null;\n\n /**\n * The payment transactions list where each index points to a different node\n *\n * @type {HashgraphProto.proto.ITransaction[]}\n */\n this._paymentTransactions = [];\n\n /**\n * The amount being paid to the node for this query.\n * A user can set this field explicitly, or we'll query the value during execution.\n *\n * @type {?Hbar}\n */\n this._queryPayment = null;\n\n /**\n * The maximum query payment a user is willing to pay. Unlike `Transaction.maxTransactionFee`\n * this field only exists in the SDK; there is no protobuf field equivalent. If and when\n * we query the actual cost of the query and the cost is greater than the max query payment\n * we'll throw a `MaxQueryPaymentExceeded` error.\n *\n * @type {?Hbar}\n */\n this._maxQueryPayment = null;\n\n /**\n * This is strictly used for `_getLogId()` which requires a timestamp. The timestamp it typically\n * uses comes from the payment transaction ID, but that field is not set if this query is free.\n * For those occasions we use this timestamp field generated at query construction instead.\n *\n * @type {number}\n */\n this._timestamp = Date.now();\n }\n\n /**\n * Deserialize a query from bytes. The bytes should be a `proto.Query`.\n *\n * @template T\n * @param {Uint8Array} bytes\n * @returns {Query}\n */\n static fromBytes(bytes) {\n const query = HashgraphProto.proto.Query.decode(bytes);\n\n if (query.query == null) {\n throw new Error(\"(BUG) query.query was not set in the protobuf\");\n }\n\n const fromProtobuf =\n /** @type {(query: HashgraphProto.proto.IQuery) => Query} */ (\n QUERY_REGISTRY.get(query.query)\n );\n\n if (fromProtobuf == null) {\n throw new Error(\n `(BUG) Query.fromBytes() not implemented for type ${query.query}`,\n );\n }\n\n return fromProtobuf(query);\n }\n\n /**\n * Serialize the query into bytes.\n *\n * **NOTE**: Does not preserve payment transactions\n *\n * @returns {Uint8Array}\n */\n toBytes() {\n return HashgraphProto.proto.Query.encode(this._makeRequest()).finish();\n }\n\n /**\n * Set an explicit payment amount for this query.\n *\n * The client will submit exactly this amount for the payment of this query. Hedera\n * will not return any remainder.\n *\n * @param {Hbar} queryPayment\n * @returns {this}\n */\n setQueryPayment(queryPayment) {\n this._queryPayment = queryPayment;\n\n return this;\n }\n\n /**\n * Set the maximum payment allowable for this query.\n *\n * @param {Hbar} maxQueryPayment\n * @returns {this}\n */\n setMaxQueryPayment(maxQueryPayment) {\n this._maxQueryPayment = maxQueryPayment;\n\n return this;\n }\n\n /**\n * Fetch the cost of this query from a consensus node\n *\n * @param {import(\"../client/Client.js\").default} client\n * @returns {Promise}\n */\n async getCost(client) {\n // The node account IDs must be set to execute a cost query\n if (this._nodeAccountIds.isEmpty) {\n this._nodeAccountIds.setList(\n client._network.getNodeAccountIdsForExecute(),\n );\n }\n\n if (COST_QUERY.length != 1) {\n throw new Error(\"CostQuery has not been loaded yet\");\n }\n\n // Change the timestamp. Should we be doing this?\n this._timestamp = Date.now();\n const cost = await COST_QUERY[0](this).execute(client);\n return Hbar.fromTinybars(\n cost._valueInTinybar.multipliedBy(1.1).toFixed(0),\n );\n }\n\n /**\n * Set he payment transaction explicitly\n *\n * @param {TransactionId} paymentTransactionId\n * @returns {this}\n */\n setPaymentTransactionId(paymentTransactionId) {\n this._paymentTransactionId = paymentTransactionId;\n return this;\n }\n\n /**\n * Get the payment transaction ID\n *\n * @returns {?TransactionId}\n */\n get paymentTransactionId() {\n return this._paymentTransactionId;\n }\n\n /**\n * Get the current transaction ID, and make sure it's not null\n *\n * @returns {TransactionId}\n */\n _getTransactionId() {\n if (this._paymentTransactionId == null) {\n throw new Error(\n \"Query.PaymentTransactionId was not set duration execution\",\n );\n }\n\n return this._paymentTransactionId;\n }\n\n /**\n * Is payment required for this query. By default most queries require payment\n * so the default implementation returns true.\n *\n * @protected\n * @returns {boolean}\n */\n _isPaymentRequired() {\n return true;\n }\n\n /**\n * Validate checksums of the query.\n *\n * @param {Client} client\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars,@typescript-eslint/no-empty-function\n _validateChecksums(client) {\n // Shouldn't we be checking `paymentTransactionId` here sine it contains an `accountId`?\n // Do nothing\n }\n\n /**\n * Before we proceed exeuction, we need to do a couple checks\n *\n * @template {MirrorChannel} MirrorChannelT\n * @param {import(\"../client/Client.js\").default} client\n * @returns {Promise}\n */\n async _beforeExecute(client) {\n // If we're executing this query multiple times the the payment transaction ID list\n // will already be set\n if (this._paymentTransactions.length > 0) {\n return;\n }\n\n // Check checksums if enabled\n if (client.isAutoValidateChecksumsEnabled()) {\n this._validateChecksums(client);\n }\n\n // If the nodes aren't set, set them.\n if (this._nodeAccountIds.isEmpty) {\n this._nodeAccountIds.setList(\n client._network.getNodeAccountIdsForExecute(),\n );\n }\n\n // Save the operator\n this._operator =\n this._operator != null ? this._operator : client._operator;\n\n // If the payment transaction ID is not set\n if (this._paymentTransactionId == null) {\n // And payment is required\n if (this._isPaymentRequired()) {\n // Assign the account IDs to which the transaction should be sent.\n this.transactionNodeIds = Object.values(client.network).map(\n (accountNodeId) => accountNodeId.toString(),\n );\n\n // And the client has an operator\n if (this._operator != null) {\n // Generate the payment transaction ID\n this._paymentTransactionId = TransactionId.generate(\n this._operator.accountId,\n );\n } else {\n // If payment is required, but an operator did not exist, throw an error\n throw new Error(\n \"`client` must have an `operator` or an explicit payment transaction must be provided\",\n );\n }\n } else {\n // If the payment transaction ID is not set, but this query doesn't require a payment\n // set the payment transaction ID to an empty transaction ID.\n // FIXME: Should use `TransactionId.withValidStart()` instead\n this._paymentTransactionId = TransactionId.generate(\n new AccountId(0),\n );\n }\n }\n\n let cost = new Hbar(0);\n\n const maxQueryPayment =\n this._maxQueryPayment != null\n ? this._maxQueryPayment\n : client.defaultMaxQueryPayment;\n\n if (this._queryPayment != null) {\n cost = this._queryPayment;\n } else if (\n this._paymentTransactions.length === 0 &&\n this._isPaymentRequired()\n ) {\n // If the query payment was not explictly set, fetch the actual cost.\n const actualCost = await this.getCost(client);\n\n // Confirm it's less than max query payment\n if (\n maxQueryPayment.toTinybars().toInt() <\n actualCost.toTinybars().toInt()\n ) {\n throw new MaxQueryPaymentExceeded(actualCost, maxQueryPayment);\n }\n\n cost = actualCost;\n if (this._logger) {\n this._logger.debug(\n `[${this._getLogId()}] received cost for query ${cost.toString()}`,\n );\n }\n }\n\n // Set the either queried cost, or the original value back into `queryPayment`\n // in case a user executes same query multiple times. However, users should\n // really not be executing the same query multiple times meaning this is\n // typically not needed.\n this._queryPayment = cost;\n\n // Not sure if we should be overwritting this field tbh.\n this._timestamp = Date.now();\n\n this._nodeAccountIds.setLocked();\n\n // Generate the payment transactions\n for (const nodeId of this._nodeAccountIds.list) {\n const logId = this._getLogId();\n const paymentTransactionId =\n /** @type {import(\"../transaction/TransactionId.js\").default} */ (\n this._paymentTransactionId\n );\n const paymentAmount = /** @type {Hbar} */ (this._queryPayment);\n\n if (this._logger) {\n this._logger.debug(\n `[${logId}] making a payment transaction for node ${nodeId.toString()} and transaction ID ${paymentTransactionId.toString()} with amount ${paymentAmount.toString()}`,\n );\n }\n\n this._paymentTransactions.push(\n await _makePaymentTransaction(\n paymentTransactionId,\n nodeId,\n this._isPaymentRequired() ? this._operator : null,\n paymentAmount,\n ),\n );\n }\n }\n\n /**\n * @abstract\n * @internal\n * @param {HashgraphProto.proto.IResponse} response\n * @returns {HashgraphProto.proto.IResponseHeader}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _mapResponseHeader(response) {\n throw new Error(\"not implemented\");\n }\n\n /**\n * @protected\n * @returns {HashgraphProto.proto.IQueryHeader}\n */\n _makeRequestHeader() {\n /** @type {HashgraphProto.proto.IQueryHeader} */\n let header = {};\n\n if (this._isPaymentRequired() && this._paymentTransactions.length > 0) {\n header = {\n responseType: HashgraphProto.proto.ResponseType.ANSWER_ONLY,\n payment: this._paymentTransactions[this._nodeAccountIds.index],\n };\n }\n\n return header;\n }\n\n /**\n * @abstract\n * @internal\n * @param {HashgraphProto.proto.IQueryHeader} header\n * @returns {HashgraphProto.proto.IQuery}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _onMakeRequest(header) {\n throw new Error(\"not implemented\");\n }\n\n /**\n * @internal\n * @returns {HashgraphProto.proto.IQuery}\n */\n _makeRequest() {\n /** @type {HashgraphProto.proto.IQueryHeader} */\n let header = {};\n\n if (this._isPaymentRequired() && this._paymentTransactions != null) {\n header = {\n payment: this._paymentTransactions[this._nodeAccountIds.index],\n responseType: HashgraphProto.proto.ResponseType.ANSWER_ONLY,\n };\n }\n\n return this._onMakeRequest(header);\n }\n\n /**\n * @override\n * @internal\n * @returns {Promise}\n */\n async _makeRequestAsync() {\n /** @type {HashgraphProto.proto.IQueryHeader} */\n let header = {\n responseType: HashgraphProto.proto.ResponseType.ANSWER_ONLY,\n };\n\n const logId = this._getLogId();\n const nodeId = this._nodeAccountIds.current;\n const paymentTransactionId = TransactionId.generate(\n this._operator ? this._operator.accountId : new AccountId(0),\n );\n const paymentAmount = /** @type {Hbar} */ (this._queryPayment);\n\n if (this._logger) {\n this._logger.debug(\n `[${logId}] making a payment transaction for node ${nodeId.toString()} and transaction ID ${paymentTransactionId.toString()} with amount ${paymentAmount.toString()}`,\n );\n }\n\n header.payment = await _makePaymentTransaction(\n paymentTransactionId,\n nodeId,\n this._isPaymentRequired() ? this._operator : null,\n paymentAmount,\n );\n\n return this._onMakeRequest(header);\n }\n\n /**\n * @override\n * @internal\n * @param {HashgraphProto.proto.IQuery} request\n * @param {HashgraphProto.proto.IResponse} response\n * @returns {[Status, ExecutionState]}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _shouldRetry(request, response) {\n const { nodeTransactionPrecheckCode } =\n this._mapResponseHeader(response);\n\n const status = Status._fromCode(\n nodeTransactionPrecheckCode != null\n ? nodeTransactionPrecheckCode\n : HashgraphProto.proto.ResponseCodeEnum.OK,\n );\n if (this._logger) {\n this._logger.debug(\n `[${this._getLogId()}] received status ${status.toString()}`,\n );\n }\n\n switch (status) {\n case Status.Busy:\n case Status.Unknown:\n case Status.PlatformTransactionNotCreated:\n case Status.PlatformNotActive:\n return [status, ExecutionState.Retry];\n case Status.Ok:\n return [status, ExecutionState.Finished];\n default:\n return [status, ExecutionState.Error];\n }\n }\n\n /**\n * @override\n * @internal\n * @param {HashgraphProto.proto.IQuery} request\n * @param {HashgraphProto.proto.IResponse} response\n * @param {AccountId} nodeId\n * @returns {Error}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _mapStatusError(request, response, nodeId) {\n const { nodeTransactionPrecheckCode } =\n this._mapResponseHeader(response);\n\n const status = Status._fromCode(\n nodeTransactionPrecheckCode != null\n ? nodeTransactionPrecheckCode\n : HashgraphProto.proto.ResponseCodeEnum.OK,\n );\n\n return new PrecheckStatusError({\n nodeId,\n status,\n transactionId: this._getTransactionId(),\n contractFunctionResult: null,\n });\n }\n\n /**\n * @param {HashgraphProto.proto.Query} request\n * @returns {Uint8Array}\n */\n _requestToBytes(request) {\n return HashgraphProto.proto.Query.encode(request).finish();\n }\n\n /**\n * @param {HashgraphProto.proto.Response} response\n * @returns {Uint8Array}\n */\n _responseToBytes(response) {\n return HashgraphProto.proto.Response.encode(response).finish();\n }\n}\n\n/**\n * Generate a payment transaction given, aka. `TransferTransaction`\n *\n * @param {TransactionId} paymentTransactionId\n * @param {AccountId} nodeId\n * @param {?ClientOperator} operator\n * @param {Hbar} paymentAmount\n * @returns {Promise}\n */\nexport async function _makePaymentTransaction(\n paymentTransactionId,\n nodeId,\n operator,\n paymentAmount,\n) {\n const accountAmounts = [];\n\n // If an operator is provided then we should make sure we transfer\n // from the operator to the node.\n // If an operator is not provided we simply create an effectively\n // empty account amounts\n if (operator != null) {\n accountAmounts.push({\n accountID: operator.accountId._toProtobuf(),\n amount: paymentAmount.negated().toTinybars(),\n });\n accountAmounts.push({\n accountID: nodeId._toProtobuf(),\n amount: paymentAmount.toTinybars(),\n });\n } else {\n accountAmounts.push({\n accountID: new AccountId(0)._toProtobuf(),\n // If the account ID is 0, shouldn't we just hard\n // code this value to 0? Same for the latter.\n amount: paymentAmount.negated().toTinybars(),\n });\n accountAmounts.push({\n accountID: nodeId._toProtobuf(),\n amount: paymentAmount.toTinybars(),\n });\n }\n /**\n * @type {HashgraphProto.proto.ITransactionBody}\n */\n const body = {\n transactionID: paymentTransactionId._toProtobuf(),\n nodeAccountID: nodeId._toProtobuf(),\n transactionFee: new Hbar(1).toTinybars(),\n transactionValidDuration: {\n seconds: Long.fromNumber(120),\n },\n cryptoTransfer: {\n transfers: {\n accountAmounts,\n },\n },\n };\n\n /** @type {HashgraphProto.proto.ISignedTransaction} */\n const signedTransaction = {\n bodyBytes: HashgraphProto.proto.TransactionBody.encode(body).finish(),\n };\n\n // Sign the transaction if an operator is provided\n //\n // We have _several_ places where we build the transactions, maybe this is\n // something we can deduplicate?\n if (operator != null) {\n const signature = await operator.transactionSigner(\n /** @type {Uint8Array} */ (signedTransaction.bodyBytes),\n );\n\n signedTransaction.sigMap = {\n sigPair: [operator.publicKey._toProtobufSignature(signature)],\n };\n }\n\n // Create and return a `proto.Transaction`\n return {\n signedTransactionBytes:\n HashgraphProto.proto.SignedTransaction.encode(\n signedTransaction,\n ).finish(),\n };\n}\n\n/**\n * Cache for the cost query constructor. This prevents cyclic dependencies.\n *\n * @type {((query: Query<*>) => import(\"./CostQuery.js\").default<*>)[]}\n */\nexport const COST_QUERY = [];\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport * as entity_id from \"../EntityIdHelper.js\";\nimport Key from \"../Key.js\";\nimport * as HashgraphProto from \"@hashgraph/proto\";\nimport CACHE from \"../Cache.js\";\nimport * as hex from \"../encoding/hex.js\";\nimport { arrayEqual } from \"../array.js\";\nimport Long from \"long\";\nimport { isLongZeroAddress } from \"../util.js\";\nimport axios from \"axios\";\n\n/**\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n */\n\n/**\n * The ID for a crypto-currency contract on Hedera.\n */\nexport default class ContractId extends Key {\n /**\n * @param {number | Long | import(\"../EntityIdHelper\").IEntityId} props\n * @param {(number | Long)=} realm\n * @param {(number | Long)=} num\n * @param {Uint8Array=} evmAddress\n */\n constructor(props, realm, num, evmAddress) {\n super();\n\n const result = entity_id.constructor(props, realm, num);\n\n this.shard = result.shard;\n this.realm = result.realm;\n this.num = result.num;\n\n this.evmAddress = evmAddress != null ? evmAddress : null;\n\n /**\n * @type {string | null}\n */\n this._checksum = null;\n }\n\n /**\n * @description This handles both long-zero format and evm address format addresses.\n * If an actual evm address is passed, please use `ContractId.populateAccountNum(client)` method\n * to get the actual `num` value, since there is no cryptographic relation to the evm address\n * and cannot be populated directly\n * @param {Long | number} shard\n * @param {Long | number} realm\n * @param {string} evmAddress\n * @returns {ContractId}\n */\n static fromEvmAddress(shard, realm, evmAddress) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n if (isLongZeroAddress(hex.decode(evmAddress))) {\n return new ContractId(...entity_id.fromSolidityAddress(evmAddress));\n } else {\n return new ContractId(shard, realm, 0, hex.decode(evmAddress));\n }\n }\n\n /**\n * @param {string} text\n * @returns {ContractId}\n */\n static fromString(text) {\n const result = entity_id.fromStringSplitter(text);\n\n if (Number.isNaN(result.shard) || Number.isNaN(result.realm)) {\n throw new Error(\"invalid format for entity ID\");\n }\n\n const shard =\n result.shard != null ? Long.fromString(result.shard) : Long.ZERO;\n const realm =\n result.realm != null ? Long.fromString(result.realm) : Long.ZERO;\n const [num, evmAddress] =\n result.numOrHex.length < 40\n ? [Long.fromString(result.numOrHex), undefined]\n : [Long.ZERO, hex.decode(result.numOrHex)];\n\n return new ContractId(shard, realm, num, evmAddress);\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.IContractID} id\n * @returns {ContractId}\n */\n static _fromProtobuf(id) {\n const contractId = new ContractId(\n id.shardNum != null ? id.shardNum : 0,\n id.realmNum != null ? id.realmNum : 0,\n id.contractNum != null ? id.contractNum : 0,\n );\n\n return contractId;\n }\n\n /**\n * @returns {string | null}\n */\n get checksum() {\n return this._checksum;\n }\n\n /**\n * @description Gets the actual `num` field of the `ContractId` from the Mirror Node.\n * Should be used after generating `ContractId.fromEvmAddress()` because it sets the `num` field to `0`\n * automatically since there is no connection between the `num` and the `evmAddress`\n * @param {Client} client\n * @returns {Promise}\n */\n async populateAccountNum(client) {\n if (this.evmAddress === null) {\n throw new Error(\"field `evmAddress` should not be null\");\n }\n const mirrorUrl = client.mirrorNetwork[0].slice(\n 0,\n client.mirrorNetwork[0].indexOf(\":\"),\n );\n\n /* eslint-disable */\n const url = `https://${mirrorUrl}/api/v1/contracts/${hex.encode(\n this.evmAddress,\n )}`;\n const mirrorAccountId = (await axios.get(url)).data.contract_id;\n\n this.num = Long.fromString(\n mirrorAccountId.slice(mirrorAccountId.lastIndexOf(\".\") + 1),\n );\n /* eslint-enable */\n\n return this;\n }\n\n /**\n * @deprecated - Use `validateChecksum` instead\n * @param {Client} client\n */\n validate(client) {\n console.warn(\"Deprecated: Use `validateChecksum` instead\");\n this.validateChecksum(client);\n }\n\n /**\n * @param {Client} client\n */\n validateChecksum(client) {\n entity_id.validateChecksum(\n this.shard,\n this.realm,\n this.num,\n this._checksum,\n client,\n );\n }\n\n /**\n * @param {Uint8Array} bytes\n * @returns {ContractId}\n */\n static fromBytes(bytes) {\n return ContractId._fromProtobuf(\n HashgraphProto.proto.ContractID.decode(bytes),\n );\n }\n\n /**\n * @deprecated - Use `fromEvmAddress` instead\n * @param {string} address\n * @returns {ContractId}\n */\n static fromSolidityAddress(address) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n if (isLongZeroAddress(hex.decode(address))) {\n return new ContractId(...entity_id.fromSolidityAddress(address));\n } else {\n return this.fromEvmAddress(0, 0, address);\n }\n }\n\n /**\n * @returns {string}\n */\n toSolidityAddress() {\n if (this.evmAddress != null) {\n return hex.encode(this.evmAddress);\n } else {\n return entity_id.toSolidityAddress([\n this.shard,\n this.realm,\n this.num,\n ]);\n }\n }\n\n /**\n * @internal\n * @returns {HashgraphProto.proto.IContractID}\n */\n _toProtobuf() {\n return {\n contractNum: this.num,\n shardNum: this.shard,\n realmNum: this.realm,\n evmAddress: this.evmAddress,\n };\n }\n\n /**\n * @returns {string}\n */\n toString() {\n if (this.evmAddress != null) {\n return `${this.shard.toString()}.${this.realm.toString()}.${hex.encode(\n this.evmAddress,\n )}`;\n } else {\n return `${this.shard.toString()}.${this.realm.toString()}.${this.num.toString()}`;\n }\n }\n\n /**\n * @param {Client} client\n * @returns {string}\n */\n toStringWithChecksum(client) {\n return entity_id.toStringWithChecksum(this.toString(), client);\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytes() {\n return HashgraphProto.proto.ContractID.encode(\n this._toProtobuf(),\n ).finish();\n }\n\n /**\n * @returns {ContractId}\n */\n clone() {\n const id = new ContractId(this);\n id._checksum = this._checksum;\n id.evmAddress = this.evmAddress;\n return id;\n }\n\n /**\n * @param {ContractId} other\n * @returns {number}\n */\n compare(other) {\n return entity_id.compare(\n [this.shard, this.realm, this.num],\n [other.shard, other.realm, other.num],\n );\n }\n\n /**\n * @param {this} other\n * @returns {boolean}\n */\n equals(other) {\n let evmAddresses = false;\n if (this.evmAddress != null && other.evmAddress != null) {\n evmAddresses = arrayEqual(this.evmAddress, other.evmAddress);\n }\n\n return (\n this.shard.eq(other.shard) &&\n this.realm.eq(other.realm) &&\n this.num.eq(other.num) &&\n evmAddresses\n );\n }\n\n /**\n * @returns {HashgraphProto.proto.IKey}\n */\n _toProtobufKey() {\n return {\n contractID: this._toProtobuf(),\n };\n }\n\n /**\n * @param {HashgraphProto.proto.IContractID} key\n * @returns {ContractId}\n */\n static __fromProtobufKey(key) {\n return ContractId._fromProtobuf(key);\n }\n}\n\nCACHE.setContractId((key) => ContractId.__fromProtobufKey(key));\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport * as entity_id from \"../EntityIdHelper.js\";\nimport * as HashgraphProto from \"@hashgraph/proto\";\nimport Long from \"long\";\n\n/**\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n */\n\n/**\n * The ID for a crypto-currency file on Hedera.\n */\nexport default class FileId {\n /**\n * @param {number | Long | import(\"../EntityIdHelper\").IEntityId} props\n * @param {(number | Long)=} realm\n * @param {(number | Long)=} num\n */\n constructor(props, realm, num) {\n const result = entity_id.constructor(props, realm, num);\n\n this.shard = result.shard;\n this.realm = result.realm;\n this.num = result.num;\n\n /**\n * @type {string | null}\n */\n this._checksum = null;\n }\n\n /**\n * @param {string} text\n * @returns {FileId}\n */\n static fromString(text) {\n const result = entity_id.fromString(text);\n const id = new FileId(result);\n id._checksum = result.checksum;\n return id;\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.IFileID} id\n * @returns {FileId}\n */\n static _fromProtobuf(id) {\n const fileId = new FileId(\n id.shardNum != null ? Long.fromString(id.shardNum.toString()) : 0,\n id.realmNum != null ? Long.fromString(id.realmNum.toString()) : 0,\n id.fileNum != null ? Long.fromString(id.fileNum.toString()) : 0,\n );\n\n return fileId;\n }\n\n /**\n * @returns {string | null}\n */\n get checksum() {\n return this._checksum;\n }\n\n /**\n * @deprecated - Use `validateChecksum` instead\n * @param {Client} client\n */\n validate(client) {\n console.warn(\"Deprecated: Use `validateChecksum` instead\");\n this.validateChecksum(client);\n }\n\n /**\n * @param {Client} client\n */\n validateChecksum(client) {\n entity_id.validateChecksum(\n this.shard,\n this.realm,\n this.num,\n this._checksum,\n client,\n );\n }\n\n /**\n * @param {Uint8Array} bytes\n * @returns {FileId}\n */\n static fromBytes(bytes) {\n return FileId._fromProtobuf(HashgraphProto.proto.FileID.decode(bytes));\n }\n\n /**\n * @param {string} address\n * @returns {FileId}\n */\n static fromSolidityAddress(address) {\n const [shard, realm, file] = entity_id.fromSolidityAddress(address);\n return new FileId(shard, realm, file);\n }\n\n /**\n * @returns {string} solidity address\n */\n toSolidityAddress() {\n return entity_id.toSolidityAddress([this.shard, this.realm, this.num]);\n }\n\n /**\n * @internal\n * @returns {HashgraphProto.proto.IFileID}\n */\n _toProtobuf() {\n return {\n fileNum: this.num,\n shardNum: this.shard,\n realmNum: this.realm,\n };\n }\n\n /**\n * @returns {string}\n */\n toString() {\n return `${this.shard.toString()}.${this.realm.toString()}.${this.num.toString()}`;\n }\n\n /**\n * @param {Client} client\n * @returns {string}\n */\n toStringWithChecksum(client) {\n return entity_id.toStringWithChecksum(this.toString(), client);\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytes() {\n return HashgraphProto.proto.FileID.encode(this._toProtobuf()).finish();\n }\n\n /**\n * @returns {FileId}\n */\n clone() {\n const id = new FileId(this);\n id._checksum = this._checksum;\n return id;\n }\n\n /**\n * @param {FileId} other\n * @returns {number}\n */\n compare(other) {\n return entity_id.compare(\n [this.shard, this.realm, this.num],\n [other.shard, other.realm, other.num],\n );\n }\n}\n\n/**\n * The public node address book for the current network.\n */\nFileId.ADDRESS_BOOK = new FileId(102);\n\n/**\n * The current fee schedule for the network.\n */\nFileId.FEE_SCHEDULE = new FileId(111);\n\n/**\n * The current exchange rate of HBAR to USD.\n */\nFileId.EXCHANGE_RATES = new FileId(112);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport * as entity_id from \"../EntityIdHelper.js\";\nimport * as HashgraphProto from \"@hashgraph/proto\";\n\n/**\n * @typedef {import(\"long\")} Long\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n */\n\n/**\n * Unique identifier for a topic (used by the consensus service).\n */\nexport default class TopicId {\n /**\n * @param {number | Long | import(\"../EntityIdHelper\").IEntityId} props\n * @param {(number | Long)=} realm\n * @param {(number | Long)=} num\n */\n constructor(props, realm, num) {\n const result = entity_id.constructor(props, realm, num);\n\n this.shard = result.shard;\n this.realm = result.realm;\n this.num = result.num;\n\n /**\n * @type {string | null}\n */\n this._checksum = null;\n }\n\n /**\n * @param {string} text\n * @returns {TopicId}\n */\n static fromString(text) {\n const result = entity_id.fromString(text);\n const id = new TopicId(result);\n id._checksum = result.checksum;\n return id;\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITopicID} id\n * @returns {TopicId}\n */\n static _fromProtobuf(id) {\n const topicId = new TopicId(\n id.shardNum != null ? id.shardNum : 0,\n id.realmNum != null ? id.realmNum : 0,\n id.topicNum != null ? id.topicNum : 0,\n );\n\n return topicId;\n }\n\n /**\n * @returns {string | null}\n */\n get checksum() {\n return this._checksum;\n }\n\n /**\n * @deprecated - Use `validateChecksum` instead\n * @param {Client} client\n */\n validate(client) {\n console.warn(\"Deprecated: Use `validateChecksum` instead\");\n this.validateChecksum(client);\n }\n\n /**\n * @param {Client} client\n */\n validateChecksum(client) {\n entity_id.validateChecksum(\n this.shard,\n this.realm,\n this.num,\n this._checksum,\n client,\n );\n }\n\n /**\n * @param {Uint8Array} bytes\n * @returns {TopicId}\n */\n static fromBytes(bytes) {\n return TopicId._fromProtobuf(\n HashgraphProto.proto.TopicID.decode(bytes),\n );\n }\n\n /**\n * @param {string} address\n * @returns {TopicId}\n */\n static fromSolidityAddress(address) {\n const [shard, realm, topic] = entity_id.fromSolidityAddress(address);\n return new TopicId(shard, realm, topic);\n }\n\n /**\n * @returns {string}\n */\n toSolidityAddress() {\n return entity_id.toSolidityAddress([this.shard, this.realm, this.num]);\n }\n\n /**\n * @returns {HashgraphProto.proto.ITopicID}\n */\n _toProtobuf() {\n return {\n topicNum: this.num,\n shardNum: this.shard,\n realmNum: this.realm,\n };\n }\n\n /**\n * @returns {string}\n */\n toString() {\n return `${this.shard.toString()}.${this.realm.toString()}.${this.num.toString()}`;\n }\n\n /**\n * @param {Client} client\n * @returns {string}\n */\n toStringWithChecksum(client) {\n return entity_id.toStringWithChecksum(this.toString(), client);\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytes() {\n return HashgraphProto.proto.TopicID.encode(this._toProtobuf()).finish();\n }\n\n /**\n * @returns {TopicId}\n */\n clone() {\n const id = new TopicId(this);\n id._checksum = this._checksum;\n return id;\n }\n\n /**\n * @param {TopicId} other\n * @returns {number}\n */\n compare(other) {\n return entity_id.compare(\n [this.shard, this.realm, this.num],\n [other.shard, other.realm, other.num],\n );\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport * as entity_id from \"../EntityIdHelper.js\";\nimport * as HashgraphProto from \"@hashgraph/proto\";\n\n/**\n * @typedef {import(\"long\")} Long\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n */\n\n/**\n * The ID for a crypto-currency token on Hedera.\n */\nexport default class TokenId {\n /**\n * @param {number | Long | import(\"../EntityIdHelper\").IEntityId} props\n * @param {(number | Long)=} realm\n * @param {(number | Long)=} num\n */\n constructor(props, realm, num) {\n const result = entity_id.constructor(props, realm, num);\n\n this.shard = result.shard;\n this.realm = result.realm;\n this.num = result.num;\n\n /**\n * @type {string | null}\n */\n this._checksum = null;\n }\n\n /**\n * @param {string} text\n * @returns {TokenId}\n */\n static fromString(text) {\n const result = entity_id.fromString(text);\n const id = new TokenId(result);\n id._checksum = result.checksum;\n return id;\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITokenID} id\n * @returns {TokenId}\n */\n static _fromProtobuf(id) {\n const tokenId = new TokenId(\n id.shardNum != null ? id.shardNum : 0,\n id.realmNum != null ? id.realmNum : 0,\n id.tokenNum != null ? id.tokenNum : 0,\n );\n\n return tokenId;\n }\n\n /**\n * @returns {string | null}\n */\n get checksum() {\n return this._checksum;\n }\n\n /**\n * @deprecated - Use `validateChecksum` instead\n * @param {Client} client\n */\n validate(client) {\n console.warn(\"Deprecated: Use `validateChecksum` instead\");\n this.validateChecksum(client);\n }\n\n /**\n * @param {Client} client\n */\n validateChecksum(client) {\n entity_id.validateChecksum(\n this.shard,\n this.realm,\n this.num,\n this._checksum,\n client,\n );\n }\n\n /**\n * @param {Uint8Array} bytes\n * @returns {TokenId}\n */\n static fromBytes(bytes) {\n return TokenId._fromProtobuf(\n HashgraphProto.proto.TokenID.decode(bytes),\n );\n }\n\n /**\n * @param {string} address\n * @returns {TokenId}\n */\n static fromSolidityAddress(address) {\n return new TokenId(...entity_id.fromSolidityAddress(address));\n }\n\n /**\n * @returns {string}\n */\n toSolidityAddress() {\n return entity_id.toSolidityAddress([this.shard, this.realm, this.num]);\n }\n\n /**\n * @internal\n * @returns {HashgraphProto.proto.ITokenID}\n */\n _toProtobuf() {\n return {\n tokenNum: this.num,\n shardNum: this.shard,\n realmNum: this.realm,\n };\n }\n\n /**\n * @returns {string}\n */\n toString() {\n return `${this.shard.toString()}.${this.realm.toString()}.${this.num.toString()}`;\n }\n\n /**\n * @param {Client} client\n * @returns {string}\n */\n toStringWithChecksum(client) {\n return entity_id.toStringWithChecksum(this.toString(), client);\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytes() {\n return HashgraphProto.proto.TokenID.encode(this._toProtobuf()).finish();\n }\n\n /**\n * @returns {TokenId}\n */\n clone() {\n const id = new TokenId(this);\n id._checksum = this._checksum;\n return id;\n }\n\n /**\n * @param {TokenId} other\n * @returns {number}\n */\n compare(other) {\n return entity_id.compare(\n [this.shard, this.realm, this.num],\n [other.shard, other.realm, other.num],\n );\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport * as entity_id from \"../EntityIdHelper.js\";\nimport * as HashgraphProto from \"@hashgraph/proto\";\n\n/**\n * @typedef {import(\"long\")} Long\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n */\n\n/**\n *\n * @augments {EntityId}\n */\n\nexport default class ScheduleId {\n /**\n * @param {number | Long | import(\"../EntityIdHelper\").IEntityId} props\n * @param {(number | Long)=} realm\n * @param {(number | Long)=} num\n */\n constructor(props, realm, num) {\n const result = entity_id.constructor(props, realm, num);\n\n this.shard = result.shard;\n this.realm = result.realm;\n this.num = result.num;\n\n /**\n * @type {string | null}\n */\n this._checksum = null;\n }\n\n /**\n * @param {string} text\n * @returns {ScheduleId}\n */\n static fromString(text) {\n const result = entity_id.fromString(text);\n const id = new ScheduleId(result);\n id._checksum = result.checksum;\n return id;\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.IScheduleID} id\n * @returns {ScheduleId}\n */\n static _fromProtobuf(id) {\n const scheduleId = new ScheduleId(\n id.shardNum != null ? id.shardNum : 0,\n id.realmNum != null ? id.realmNum : 0,\n id.scheduleNum != null ? id.scheduleNum : 0,\n );\n\n return scheduleId;\n }\n\n /**\n * @returns {string | null}\n */\n get checksum() {\n return this._checksum;\n }\n\n /**\n * @deprecated - Use `validateChecksum` instead\n * @param {Client} client\n */\n validate(client) {\n console.warn(\"Deprecated: Use `validateChecksum` instead\");\n this.validateChecksum(client);\n }\n\n /**\n * @param {Client} client\n */\n validateChecksum(client) {\n entity_id.validateChecksum(\n this.shard,\n this.realm,\n this.num,\n this._checksum,\n client,\n );\n }\n\n /**\n * @param {Uint8Array} bytes\n * @returns {ScheduleId}\n */\n static fromBytes(bytes) {\n return ScheduleId._fromProtobuf(\n HashgraphProto.proto.ScheduleID.decode(bytes),\n );\n }\n\n /**\n * @param {string} address\n * @returns {ScheduleId}\n */\n static fromSolidityAddress(address) {\n return new ScheduleId(...entity_id.fromSolidityAddress(address));\n }\n\n /**\n * @returns {string}\n */\n toSolidityAddress() {\n return entity_id.toSolidityAddress([this.shard, this.realm, this.num]);\n }\n\n /**\n * @internal\n * @returns {HashgraphProto.proto.ScheduleID}\n */\n _toProtobuf() {\n return {\n scheduleNum: this.num,\n shardNum: this.shard,\n realmNum: this.realm,\n };\n }\n\n /**\n * @returns {string}\n */\n toString() {\n return `${this.shard.toString()}.${this.realm.toString()}.${this.num.toString()}`;\n }\n\n /**\n * @param {Client} client\n * @returns {string}\n */\n toStringWithChecksum(client) {\n return entity_id.toStringWithChecksum(this.toString(), client);\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytes() {\n return HashgraphProto.proto.ScheduleID.encode(\n this._toProtobuf(),\n ).finish();\n }\n\n /**\n * @returns {ScheduleId}\n */\n clone() {\n const id = new ScheduleId(this);\n id._checksum = this._checksum;\n return id;\n }\n\n /**\n * @param {ScheduleId} other\n * @returns {number}\n */\n compare(other) {\n return entity_id.compare(\n [this.shard, this.realm, this.num],\n [other.shard, other.realm, other.num],\n );\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Long from \"long\";\n\n/**\n * @typedef {object} ExchangeRateJSON\n * @property {number} hbars\n * @property {number} cents\n * @property {Date} expirationTime\n * @property {number} exchangeRateInCents\n */\n\nexport default class ExchangeRate {\n /**\n * @private\n * @param {object} props\n * @param {number} props.hbars\n * @param {number} props.cents\n * @param {Date} props.expirationTime\n */\n constructor(props) {\n /**\n * Denotes Hbar equivalent to cents (USD)\n *\n * @readonly\n * @type {number}\n */\n this.hbars = props.hbars;\n\n /**\n * Denotes cents (USD) equivalent to Hbar\n *\n * @readonly\n * @type {number}\n */\n this.cents = props.cents;\n\n /**\n * Expiration time of this exchange rate\n *\n * @readonly\n * @type {Date}\n */\n this.expirationTime = props.expirationTime;\n\n /**\n * Calculated exchange rate\n *\n * @readonly\n * @type {number}\n */\n this.exchangeRateInCents = props.cents / props.hbars;\n\n Object.freeze(this);\n }\n\n /**\n * @internal\n * @param {import(\"@hashgraph/proto\").proto.IExchangeRate} rate\n * @returns {ExchangeRate}\n */\n static _fromProtobuf(rate) {\n return new ExchangeRate({\n hbars: /** @type {number} */ (rate.hbarEquiv),\n cents: /** @type {number} */ (rate.centEquiv),\n expirationTime: new Date(\n rate.expirationTime != null\n ? rate.expirationTime.seconds != null\n ? Long.isLong(rate.expirationTime.seconds)\n ? rate.expirationTime.seconds.toInt() * 1000\n : rate.expirationTime.seconds\n : 0\n : 0,\n ),\n });\n }\n\n /**\n * @internal\n * @returns {import(\"@hashgraph/proto\").proto.IExchangeRate}\n */\n _toProtobuf() {\n return {\n hbarEquiv: this.hbars,\n centEquiv: this.cents,\n expirationTime: {\n seconds: Long.fromNumber(\n Math.trunc(this.expirationTime.getTime() / 1000),\n ),\n },\n };\n }\n\n /**\n * @returns {ExchangeRateJSON}\n */\n toJSON() {\n return {\n hbars: this.hbars,\n cents: this.cents,\n expirationTime: this.expirationTime,\n exchangeRateInCents: this.exchangeRateInCents,\n };\n }\n\n /**\n * @returns {string}\n */\n toString() {\n return JSON.stringify(this.toJSON());\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport AccountId from \"../account/AccountId.js\";\nimport ContractId from \"../contract/ContractId.js\";\nimport FileId from \"../file/FileId.js\";\nimport TopicId from \"../topic/TopicId.js\";\nimport TokenId from \"../token/TokenId.js\";\nimport ScheduleId from \"../schedule/ScheduleId.js\";\nimport ExchangeRate from \"../ExchangeRate.js\";\nimport Status from \"../Status.js\";\nimport Long from \"long\";\nimport * as HashgraphProto from \"@hashgraph/proto\";\nimport TransactionId from \"../transaction/TransactionId.js\";\nimport * as hex from \"../encoding/hex.js\";\n\n/**\n * @typedef {import(\"../ExchangeRate.js\").ExchangeRateJSON} ExchangeRateJSON\n */\n\n/**\n * @typedef {object} TransactionReceiptJSON\n * @property {string} status\n * @property {?string} accountId\n * @property {?string} filedId\n * @property {?string} contractId\n * @property {?string} topicId\n * @property {?string} tokenId\n * @property {?string} scheduleId\n * @property {?ExchangeRateJSON} exchangeRate\n * @property {?string} topicSequenceNumber\n * @property {?string} topicRunningHash\n * @property {?string} totalSupply\n * @property {?string} scheduledTransactionId\n * @property {string[]} serials\n * @property {TransactionReceiptJSON[]} duplicates\n * @property {TransactionReceiptJSON[]} children\n * @property {?string} nodeId\n */\n\n/**\n * The consensus result for a transaction, which might not be currently known,\n * or may succeed or fail.\n */\nexport default class TransactionReceipt {\n /**\n * @private\n * @param {object} props\n * @param {Status} props.status\n * @param {?AccountId} props.accountId\n * @param {?FileId} props.fileId\n * @param {?ContractId} props.contractId\n * @param {?TopicId} props.topicId\n * @param {?TokenId} props.tokenId\n * @param {?ScheduleId} props.scheduleId\n * @param {?ExchangeRate} props.exchangeRate\n * @param {?Long} props.topicSequenceNumber\n * @param {?Uint8Array} props.topicRunningHash\n * @param {?Long} props.totalSupply\n * @param {?TransactionId} props.scheduledTransactionId\n * @param {Long[]} props.serials\n * @param {TransactionReceipt[]} props.duplicates\n * @param {TransactionReceipt[]} props.children\n * @param {?Long} props.nodeId\n */\n constructor(props) {\n /**\n * Whether the transaction succeeded or failed (or is unknown).\n *\n * @readonly\n */\n this.status = props.status;\n\n /**\n * The account ID, if a new account was created.\n *\n * @readonly\n */\n this.accountId = props.accountId;\n\n /**\n * The file ID, if a new file was created.\n *\n * @readonly\n */\n this.fileId = props.fileId;\n\n /**\n * The contract ID, if a new contract was created.\n *\n * @readonly\n */\n this.contractId = props.contractId;\n\n /**\n * The topic ID, if a new topic was created.\n *\n * @readonly\n */\n this.topicId = props.topicId;\n\n /**\n * The token ID, if a new token was created.\n *\n * @readonly\n */\n this.tokenId = props.tokenId;\n\n /**\n * The schedule ID, if a new schedule was created.\n *\n * @readonly\n */\n this.scheduleId = props.scheduleId;\n\n /**\n * The exchange rate of Hbars to cents (USD).\n *\n * @readonly\n */\n this.exchangeRate = props.exchangeRate;\n\n /**\n * Updated sequence number for a consensus service topic.\n *\n * @readonly\n */\n this.topicSequenceNumber = props.topicSequenceNumber;\n\n /**\n * Updated running hash for a consensus service topic.\n *\n * @readonly\n */\n this.topicRunningHash = props.topicRunningHash;\n\n /**\n * Updated total supply for a token\n *\n * @readonly\n */\n this.totalSupply = props.totalSupply;\n\n this.scheduledTransactionId = props.scheduledTransactionId;\n\n this.serials = props.serials ?? [];\n\n /**\n * @readonly\n */\n this.duplicates = props.duplicates ?? [];\n\n /**\n * @readonly\n */\n this.children = props.children ?? [];\n\n /**\n * @readonly\n * @description In the receipt of a NodeCreate, NodeUpdate, NodeDelete, the id of the newly created node.\n * An affected node identifier.\n * This value SHALL be set following a `createNode` transaction.\n * This value SHALL be set following a `updateNode` transaction.\n * This value SHALL be set following a `deleteNode` transaction.\n * This value SHALL NOT be set following any other transaction.\n */\n this.nodeId = props.nodeId;\n\n Object.freeze(this);\n }\n\n /**\n * @internal\n * @returns {HashgraphProto.proto.ITransactionGetReceiptResponse}\n */\n _toProtobuf() {\n const duplicates = this.duplicates.map(\n (receipt) =>\n /** @type {HashgraphProto.proto.ITransactionReceipt} */ (\n receipt._toProtobuf().receipt\n ),\n );\n const children = this.children.map(\n (receipt) =>\n /** @type {HashgraphProto.proto.ITransactionReceipt} */ (\n receipt._toProtobuf().receipt\n ),\n );\n\n return {\n duplicateTransactionReceipts: duplicates,\n childTransactionReceipts: children,\n receipt: {\n status: this.status.valueOf(),\n\n accountID:\n this.accountId != null\n ? this.accountId._toProtobuf()\n : null,\n fileID: this.fileId != null ? this.fileId._toProtobuf() : null,\n contractID:\n this.contractId != null\n ? this.contractId._toProtobuf()\n : null,\n topicID:\n this.topicId != null ? this.topicId._toProtobuf() : null,\n tokenID:\n this.tokenId != null ? this.tokenId._toProtobuf() : null,\n scheduleID:\n this.scheduleId != null\n ? this.scheduleId._toProtobuf()\n : null,\n\n topicRunningHash:\n this.topicRunningHash == null\n ? null\n : this.topicRunningHash,\n\n topicSequenceNumber: this.topicSequenceNumber,\n\n exchangeRate: {\n nextRate: null,\n currentRate:\n this.exchangeRate != null\n ? this.exchangeRate._toProtobuf()\n : null,\n },\n\n scheduledTransactionID:\n this.scheduledTransactionId != null\n ? this.scheduledTransactionId._toProtobuf()\n : null,\n\n serialNumbers: this.serials,\n newTotalSupply: this.totalSupply,\n nodeId: this.nodeId,\n },\n };\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransactionGetReceiptResponse} response\n * @returns {TransactionReceipt}\n */\n static _fromProtobuf(response) {\n const receipt =\n /** @type {HashgraphProto.proto.ITransactionReceipt} */ (\n response.receipt\n );\n\n const exchangeRateSet =\n /** @type {HashgraphProto.proto.IExchangeRateSet} */ (\n receipt.exchangeRate\n );\n\n const children =\n response.childTransactionReceipts != null\n ? response.childTransactionReceipts.map((child) =>\n TransactionReceipt._fromProtobuf({ receipt: child }),\n )\n : [];\n\n const duplicates =\n response.duplicateTransactionReceipts != null\n ? response.duplicateTransactionReceipts.map((duplicate) =>\n TransactionReceipt._fromProtobuf({ receipt: duplicate }),\n )\n : [];\n\n return new TransactionReceipt({\n status: Status._fromCode(\n receipt.status != null ? receipt.status : 0,\n ),\n\n accountId:\n receipt.accountID != null\n ? AccountId._fromProtobuf(receipt.accountID)\n : null,\n\n fileId:\n receipt.fileID != null\n ? FileId._fromProtobuf(receipt.fileID)\n : null,\n\n contractId:\n receipt.contractID != null\n ? ContractId._fromProtobuf(receipt.contractID)\n : null,\n\n topicId:\n receipt.topicID != null\n ? TopicId._fromProtobuf(receipt.topicID)\n : null,\n\n tokenId:\n receipt.tokenID != null\n ? TokenId._fromProtobuf(receipt.tokenID)\n : null,\n\n scheduleId:\n receipt.scheduleID != null\n ? ScheduleId._fromProtobuf(receipt.scheduleID)\n : null,\n\n exchangeRate:\n receipt.exchangeRate != null\n ? ExchangeRate._fromProtobuf(\n /** @type {HashgraphProto.proto.IExchangeRate} */\n (exchangeRateSet.currentRate),\n )\n : null,\n\n topicSequenceNumber:\n receipt.topicSequenceNumber == null\n ? null\n : Long.fromString(receipt.topicSequenceNumber.toString()),\n\n topicRunningHash:\n receipt.topicRunningHash != null\n ? new Uint8Array(receipt.topicRunningHash)\n : null,\n\n totalSupply:\n receipt.newTotalSupply != null\n ? Long.fromString(receipt.newTotalSupply.toString())\n : null,\n\n scheduledTransactionId:\n receipt.scheduledTransactionID != null\n ? TransactionId._fromProtobuf(\n receipt.scheduledTransactionID,\n )\n : null,\n serials:\n receipt.serialNumbers != null\n ? receipt.serialNumbers.map((serial) =>\n Long.fromValue(serial),\n )\n : [],\n children,\n duplicates,\n nodeId: receipt.nodeId != null ? receipt.nodeId : null,\n });\n }\n\n /**\n * @param {Uint8Array} bytes\n * @returns {TransactionReceipt}\n */\n static fromBytes(bytes) {\n return TransactionReceipt._fromProtobuf(\n HashgraphProto.proto.TransactionGetReceiptResponse.decode(bytes),\n );\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytes() {\n return HashgraphProto.proto.TransactionGetReceiptResponse.encode(\n this._toProtobuf(),\n ).finish();\n }\n\n /**\n * @returns {TransactionReceiptJSON}\n */\n toJSON() {\n return {\n status: this.status.toString(),\n accountId: this.accountId?.toString() || null,\n filedId: this.fileId?.toString() || null,\n contractId: this.contractId?.toString() || null,\n topicId: this.topicId?.toString() || null,\n tokenId: this.tokenId?.toString() || null,\n scheduleId: this.scheduleId?.toString() || null,\n exchangeRate: this.exchangeRate?.toJSON() || null,\n topicSequenceNumber: this.topicSequenceNumber?.toString() || null,\n topicRunningHash:\n this.topicRunningHash != null\n ? hex.encode(this.topicRunningHash)\n : null,\n totalSupply: this.totalSupply?.toString() || null,\n scheduledTransactionId:\n this.scheduledTransactionId?.toString() || null,\n serials: this.serials.map((serial) => serial.toString()),\n duplicates: this.duplicates.map((receipt) => receipt.toJSON()),\n children: this.children.map((receipt) => receipt.toJSON()),\n nodeId: this.nodeId?.toString() || null,\n };\n }\n\n /**\n * @returns {string}\n */\n toString() {\n return JSON.stringify(this.toJSON());\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Query, { QUERY_REGISTRY } from \"../query/Query.js\";\nimport Status from \"../Status.js\";\nimport TransactionReceipt from \"./TransactionReceipt.js\";\nimport TransactionId from \"./TransactionId.js\";\nimport PrecheckStatusError from \"../PrecheckStatusError.js\";\nimport ReceiptStatusError from \"../ReceiptStatusError.js\";\nimport { ExecutionState } from \"../Executable.js\";\nimport * as HashgraphProto from \"@hashgraph/proto\";\n\nconst { proto } = HashgraphProto;\n\n/**\n * @typedef {import(\"../account/AccountId.js\").default} AccountId\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n */\n\n/**\n * @augments {Query}\n */\nexport default class TransactionReceiptQuery extends Query {\n /**\n * @param {object} [props]\n * @param {TransactionId | string} [props.transactionId]\n * @param {boolean} [props.includeDuplicates]\n * @param {boolean} [props.includeChildren]\n * @param {boolean} [props.validateStatus]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {?TransactionId}\n */\n this._transactionId = null;\n\n /**\n * @private\n * @type {?boolean}\n */\n this._includeChildren = null;\n\n /**\n * @private\n * @type {?boolean}\n */\n this._includeDuplicates = null;\n\n this._validateStatus = true;\n\n if (props.transactionId != null) {\n this.setTransactionId(props.transactionId);\n }\n\n if (props.includeChildren != null) {\n this.setIncludeChildren(props.includeChildren);\n }\n\n if (props.includeDuplicates != null) {\n this.setIncludeDuplicates(props.includeDuplicates);\n }\n\n if (props.validateStatus != null) {\n this.setValidateStatus(props.validateStatus);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.IQuery} query\n * @returns {TransactionReceiptQuery}\n */\n static _fromProtobuf(query) {\n const receipt =\n /** @type {HashgraphProto.proto.ITransactionGetReceiptQuery} */ (\n query.transactionGetReceipt\n );\n\n return new TransactionReceiptQuery({\n transactionId: receipt.transactionID\n ? TransactionId._fromProtobuf(receipt.transactionID)\n : undefined,\n includeDuplicates:\n receipt.includeDuplicates != null\n ? receipt.includeDuplicates\n : undefined,\n includeChildren:\n receipt.includeChildReceipts != null\n ? receipt.includeChildReceipts\n : undefined,\n });\n }\n\n /**\n * @returns {?TransactionId}\n */\n get transactionId() {\n return this._transactionId;\n }\n\n /**\n * Set the transaction ID for which the receipt is being requested.\n *\n * @param {TransactionId | string} transactionId\n * @returns {this}\n */\n setTransactionId(transactionId) {\n this._transactionId =\n typeof transactionId === \"string\"\n ? TransactionId.fromString(transactionId)\n : transactionId.clone();\n\n return this;\n }\n\n /**\n * @param {boolean} includeDuplicates\n * @returns {TransactionReceiptQuery}\n */\n setIncludeDuplicates(includeDuplicates) {\n this._includeDuplicates = includeDuplicates;\n return this;\n }\n\n /**\n * @returns {boolean}\n */\n get includeDuplicates() {\n return this._includeDuplicates != null\n ? this._includeDuplicates\n : false;\n }\n\n /**\n * @param {boolean} includeChildren\n * @returns {TransactionReceiptQuery}\n */\n setIncludeChildren(includeChildren) {\n this._includeChildren = includeChildren;\n return this;\n }\n\n /**\n * @returns {boolean}\n */\n get includeChildren() {\n return this._includeChildren != null ? this._includeChildren : false;\n }\n\n /**\n * @param {boolean} validateStatus\n * @returns {this}\n */\n setValidateStatus(validateStatus) {\n this._validateStatus = validateStatus;\n return this;\n }\n\n /**\n * @returns {boolean}\n */\n get validateStatus() {\n return this._validateStatus;\n }\n\n /**\n * @override\n * @protected\n * @returns {boolean}\n */\n _isPaymentRequired() {\n return false;\n }\n\n /**\n * @override\n * @internal\n * @param {HashgraphProto.proto.IQuery} request\n * @param {HashgraphProto.proto.IResponse} response\n * @returns {[Status, ExecutionState]}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _shouldRetry(request, response) {\n const { nodeTransactionPrecheckCode } =\n this._mapResponseHeader(response);\n\n let status = Status._fromCode(\n nodeTransactionPrecheckCode != null\n ? nodeTransactionPrecheckCode\n : proto.ResponseCodeEnum.OK,\n );\n\n if (this._logger) {\n this._logger.debug(\n `[${this._getLogId()}] received node precheck status ${status.toString()}`,\n );\n }\n\n switch (status) {\n case Status.Busy:\n case Status.Unknown:\n case Status.ReceiptNotFound:\n case Status.PlatformNotActive:\n return [status, ExecutionState.Retry];\n case Status.Ok:\n break;\n default:\n return [status, ExecutionState.Error];\n }\n\n const transactionGetReceipt =\n /** @type {HashgraphProto.proto.ITransactionGetReceiptResponse} */ (\n response.transactionGetReceipt\n );\n const receipt =\n /** @type {HashgraphProto.proto.ITransactionReceipt} */ (\n transactionGetReceipt.receipt\n );\n const receiptStatusCode =\n /** @type {HashgraphProto.proto.ResponseCodeEnum} */ (\n receipt.status\n );\n\n status = Status._fromCode(receiptStatusCode);\n\n if (this._logger) {\n this._logger.debug(\n `[${this._getLogId()}] received receipt status ${status.toString()}`,\n );\n }\n\n switch (status) {\n case Status.Busy:\n case Status.Unknown:\n case Status.ReceiptNotFound:\n return [status, ExecutionState.Retry];\n case Status.Success:\n case Status.FeeScheduleFilePartUploaded:\n return [status, ExecutionState.Finished];\n default:\n return [\n status,\n this._validateStatus\n ? ExecutionState.Error\n : ExecutionState.Finished,\n ];\n }\n }\n\n /**\n * @returns {TransactionId}\n */\n _getTransactionId() {\n if (this._transactionId != null) {\n return this._transactionId;\n }\n\n return super._getTransactionId();\n }\n\n /**\n * @override\n * @internal\n * @param {HashgraphProto.proto.IQuery} request\n * @param {HashgraphProto.proto.IResponse} response\n * @param {AccountId} nodeId\n * @returns {Error}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _mapStatusError(request, response, nodeId) {\n const { nodeTransactionPrecheckCode } =\n this._mapResponseHeader(response);\n\n let status = Status._fromCode(\n nodeTransactionPrecheckCode != null\n ? nodeTransactionPrecheckCode\n : proto.ResponseCodeEnum.OK,\n );\n\n switch (status) {\n case Status.Ok:\n // Do nothing\n break;\n\n default:\n return new PrecheckStatusError({\n nodeId,\n status,\n transactionId: this._getTransactionId(),\n contractFunctionResult: null,\n });\n }\n\n const transactionGetReceipt =\n /** @type {HashgraphProto.proto.ITransactionGetReceiptResponse} */ (\n response.transactionGetReceipt\n );\n const receipt =\n /** @type {HashgraphProto.proto.ITransactionReceipt} */ (\n transactionGetReceipt.receipt\n );\n const receiptStatusCode =\n /** @type {HashgraphProto.proto.ResponseCodeEnum} */ (\n receipt.status\n );\n\n status = Status._fromCode(receiptStatusCode);\n\n if (this._transactionId == null) {\n throw new Error(\n \"Failed to construct `ReceiptStatusError` because `transactionId` is `null`\",\n );\n }\n\n return new ReceiptStatusError({\n status,\n transactionId: this._transactionId,\n transactionReceipt: TransactionReceipt._fromProtobuf(\n transactionGetReceipt,\n ),\n });\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (\n this._transactionId != null &&\n this._transactionId.accountId != null\n ) {\n this._transactionId.accountId.validateChecksum(client);\n }\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.IQuery} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.crypto.getTransactionReceipts(request);\n }\n\n /**\n * @override\n * @internal\n * @param {HashgraphProto.proto.IResponse} response\n * @returns {HashgraphProto.proto.IResponseHeader}\n */\n _mapResponseHeader(response) {\n const transactionGetReceipt =\n /** @type {HashgraphProto.proto.ITransactionGetReceiptResponse} */ (\n response.transactionGetReceipt\n );\n return /** @type {HashgraphProto.proto.IResponseHeader} */ (\n transactionGetReceipt.header\n );\n }\n\n /**\n * @protected\n * @override\n * @param {HashgraphProto.proto.IResponse} response\n * @param {AccountId} nodeAccountId\n * @param {HashgraphProto.proto.IQuery} request\n * @returns {Promise}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _mapResponse(response, nodeAccountId, request) {\n const transactionGetReceipt =\n /** @type {HashgraphProto.proto.ITransactionGetReceiptResponse} */ (\n response.transactionGetReceipt\n );\n\n return Promise.resolve(\n TransactionReceipt._fromProtobuf(transactionGetReceipt),\n );\n }\n\n /**\n * @override\n * @internal\n * @param {HashgraphProto.proto.IQueryHeader} header\n * @returns {HashgraphProto.proto.IQuery}\n */\n _onMakeRequest(header) {\n return {\n transactionGetReceipt: {\n header,\n transactionID:\n this._transactionId != null\n ? this._transactionId._toProtobuf()\n : null,\n includeDuplicates: this._includeDuplicates,\n includeChildReceipts: this._includeChildren,\n },\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n return `TransactionReceiptQuery:${this._timestamp.toString()}`;\n }\n}\n\nQUERY_REGISTRY.set(\n \"transactionGetReceipt\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n TransactionReceiptQuery._fromProtobuf,\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport AccountId from \"./account/AccountId.js\";\nimport Hbar from \"./Hbar.js\";\n\n/**\n * @typedef {object} TransferJSON\n * @property {string} accountId\n * @property {string} amount\n * @property {boolean} isApproved\n */\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.IAccountAmount} HashgraphProto.proto.IAccountAmount\n * @typedef {import(\"@hashgraph/proto\").proto.IAccountID} HashgraphProto.proto.IAccountID\n */\n\n/**\n * @typedef {import(\"bignumber.js\").default} BigNumber\n * @typedef {import(\"long\")} Long\n */\n\n/**\n * An account, and the amount that it sends or receives during a cryptocurrency transfer.\n */\nexport default class Transfer {\n /**\n * @internal\n * @param {object} props\n * @param {AccountId | string} props.accountId\n * @param {number | string | Long | BigNumber | Hbar} props.amount\n * @param {boolean} props.isApproved\n */\n constructor(props) {\n /**\n * The Account ID that sends or receives cryptocurrency.\n *\n * @readonly\n */\n this.accountId =\n props.accountId instanceof AccountId\n ? props.accountId\n : AccountId.fromString(props.accountId);\n\n /**\n * The amount of tinybars that the account sends(negative) or receives(positive).\n */\n this.amount =\n props.amount instanceof Hbar\n ? props.amount\n : new Hbar(props.amount);\n\n this.isApproved = props.isApproved;\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.IAccountAmount[]} accountAmounts\n * @returns {Transfer[]}\n */\n static _fromProtobuf(accountAmounts) {\n const transfers = [];\n\n for (const transfer of accountAmounts) {\n transfers.push(\n new Transfer({\n accountId: AccountId._fromProtobuf(\n /** @type {HashgraphProto.proto.IAccountID} */ (\n transfer.accountID\n ),\n ),\n amount: Hbar.fromTinybars(\n transfer.amount != null ? transfer.amount : 0,\n ),\n isApproved: /** @type {boolean} */ (transfer.isApproval),\n }),\n );\n }\n\n return transfers;\n }\n\n /**\n * @internal\n * @returns {HashgraphProto.proto.IAccountAmount}\n */\n _toProtobuf() {\n return {\n accountID: this.accountId._toProtobuf(),\n amount: this.amount.toTinybars(),\n isApproval: this.isApproved,\n };\n }\n\n /**\n * @returns {TransferJSON}\n */\n toJSON() {\n return {\n accountId: this.accountId.toString(),\n amount: this.amount.toTinybars().toString(),\n isApproved: this.isApproved,\n };\n }\n\n /**\n * @returns {string}\n */\n toString() {\n return JSON.stringify(this.toJSON());\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport ContractId from \"./ContractId.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.IContractLoginfo} HashgraphProto.proto.IContractLoginfo\n * @typedef {import(\"@hashgraph/proto\").proto.IContractID} HashgraphProto.proto.IContractID\n */\n\n/**\n * The log information for an event returned by a smart contract function call. One function call\n * may return several such events.\n */\nexport default class ContractLogInfo {\n /**\n * @param {object} props\n * @param {ContractId} props.contractId\n * @param {Uint8Array} props.bloom\n * @param {Uint8Array[]} props.topics\n * @param {Uint8Array} props.data\n */\n constructor(props) {\n /**\n * Address of a contract that emitted the event.\n *\n * @readonly\n */\n this.contractId = props.contractId;\n\n /**\n * Bloom filter for a particular log.\n *\n * @readonly\n */\n this.bloom = props.bloom;\n\n /**\n * Topics of a particular event.\n *\n * @readonly\n */\n this.topics = props.topics;\n\n /**\n * Event data.\n *\n * @readonly\n */\n this.data = props.data;\n\n Object.freeze(this);\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.IContractLoginfo} info\n * @returns {ContractLogInfo}\n */\n static _fromProtobuf(info) {\n return new ContractLogInfo({\n contractId: ContractId._fromProtobuf(\n /** @type {HashgraphProto.proto.IContractID} */ (\n info.contractID\n ),\n ),\n bloom: info.bloom != null ? info.bloom : new Uint8Array(),\n topics: info.topic != null ? info.topic : [],\n data: info.data != null ? info.data : new Uint8Array(),\n });\n }\n\n /**\n * @internal\n * @returns {HashgraphProto.proto.IContractLoginfo}\n */\n _toProtobuf() {\n return {\n contractID: this.contractId._toProtobuf(),\n bloom: this.bloom,\n topic: this.topics,\n data: this.data,\n };\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\n/**\n * @param {Uint8Array} data\n * @returns {string}\n */\nexport function decode(data) {\n // eslint-disable-next-line n/no-unsupported-features/node-builtins\n return new TextDecoder().decode(data);\n}\n\n/**\n * @param {string} text\n * @returns {Uint8Array}\n */\nexport function encode(text) {\n // eslint-disable-next-line n/no-unsupported-features/node-builtins\n return new TextEncoder().encode(text);\n}\n","export const version = \"bignumber/5.7.0\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\n/**\n * BigNumber\n *\n * A wrapper around the BN.js object. We use the BN.js library\n * because it is used by elliptic, so it is required regardless.\n *\n */\nimport _BN from \"bn.js\";\nvar BN = _BN.BN;\nimport { hexlify, isBytes, isHexString } from \"@ethersproject/bytes\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nconst _constructorGuard = {};\nconst MAX_SAFE = 0x1fffffffffffff;\nexport function isBigNumberish(value) {\n return (value != null) && (BigNumber.isBigNumber(value) ||\n (typeof (value) === \"number\" && (value % 1) === 0) ||\n (typeof (value) === \"string\" && !!value.match(/^-?[0-9]+$/)) ||\n isHexString(value) ||\n (typeof (value) === \"bigint\") ||\n isBytes(value));\n}\n// Only warn about passing 10 into radix once\nlet _warnedToStringRadix = false;\nexport class BigNumber {\n constructor(constructorGuard, hex) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"cannot call constructor directly; use BigNumber.from\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new (BigNumber)\"\n });\n }\n this._hex = hex;\n this._isBigNumber = true;\n Object.freeze(this);\n }\n fromTwos(value) {\n return toBigNumber(toBN(this).fromTwos(value));\n }\n toTwos(value) {\n return toBigNumber(toBN(this).toTwos(value));\n }\n abs() {\n if (this._hex[0] === \"-\") {\n return BigNumber.from(this._hex.substring(1));\n }\n return this;\n }\n add(other) {\n return toBigNumber(toBN(this).add(toBN(other)));\n }\n sub(other) {\n return toBigNumber(toBN(this).sub(toBN(other)));\n }\n div(other) {\n const o = BigNumber.from(other);\n if (o.isZero()) {\n throwFault(\"division-by-zero\", \"div\");\n }\n return toBigNumber(toBN(this).div(toBN(other)));\n }\n mul(other) {\n return toBigNumber(toBN(this).mul(toBN(other)));\n }\n mod(other) {\n const value = toBN(other);\n if (value.isNeg()) {\n throwFault(\"division-by-zero\", \"mod\");\n }\n return toBigNumber(toBN(this).umod(value));\n }\n pow(other) {\n const value = toBN(other);\n if (value.isNeg()) {\n throwFault(\"negative-power\", \"pow\");\n }\n return toBigNumber(toBN(this).pow(value));\n }\n and(other) {\n const value = toBN(other);\n if (this.isNegative() || value.isNeg()) {\n throwFault(\"unbound-bitwise-result\", \"and\");\n }\n return toBigNumber(toBN(this).and(value));\n }\n or(other) {\n const value = toBN(other);\n if (this.isNegative() || value.isNeg()) {\n throwFault(\"unbound-bitwise-result\", \"or\");\n }\n return toBigNumber(toBN(this).or(value));\n }\n xor(other) {\n const value = toBN(other);\n if (this.isNegative() || value.isNeg()) {\n throwFault(\"unbound-bitwise-result\", \"xor\");\n }\n return toBigNumber(toBN(this).xor(value));\n }\n mask(value) {\n if (this.isNegative() || value < 0) {\n throwFault(\"negative-width\", \"mask\");\n }\n return toBigNumber(toBN(this).maskn(value));\n }\n shl(value) {\n if (this.isNegative() || value < 0) {\n throwFault(\"negative-width\", \"shl\");\n }\n return toBigNumber(toBN(this).shln(value));\n }\n shr(value) {\n if (this.isNegative() || value < 0) {\n throwFault(\"negative-width\", \"shr\");\n }\n return toBigNumber(toBN(this).shrn(value));\n }\n eq(other) {\n return toBN(this).eq(toBN(other));\n }\n lt(other) {\n return toBN(this).lt(toBN(other));\n }\n lte(other) {\n return toBN(this).lte(toBN(other));\n }\n gt(other) {\n return toBN(this).gt(toBN(other));\n }\n gte(other) {\n return toBN(this).gte(toBN(other));\n }\n isNegative() {\n return (this._hex[0] === \"-\");\n }\n isZero() {\n return toBN(this).isZero();\n }\n toNumber() {\n try {\n return toBN(this).toNumber();\n }\n catch (error) {\n throwFault(\"overflow\", \"toNumber\", this.toString());\n }\n return null;\n }\n toBigInt() {\n try {\n return BigInt(this.toString());\n }\n catch (e) { }\n return logger.throwError(\"this platform does not support BigInt\", Logger.errors.UNSUPPORTED_OPERATION, {\n value: this.toString()\n });\n }\n toString() {\n // Lots of people expect this, which we do not support, so check (See: #889)\n if (arguments.length > 0) {\n if (arguments[0] === 10) {\n if (!_warnedToStringRadix) {\n _warnedToStringRadix = true;\n logger.warn(\"BigNumber.toString does not accept any parameters; base-10 is assumed\");\n }\n }\n else if (arguments[0] === 16) {\n logger.throwError(\"BigNumber.toString does not accept any parameters; use bigNumber.toHexString()\", Logger.errors.UNEXPECTED_ARGUMENT, {});\n }\n else {\n logger.throwError(\"BigNumber.toString does not accept parameters\", Logger.errors.UNEXPECTED_ARGUMENT, {});\n }\n }\n return toBN(this).toString(10);\n }\n toHexString() {\n return this._hex;\n }\n toJSON(key) {\n return { type: \"BigNumber\", hex: this.toHexString() };\n }\n static from(value) {\n if (value instanceof BigNumber) {\n return value;\n }\n if (typeof (value) === \"string\") {\n if (value.match(/^-?0x[0-9a-f]+$/i)) {\n return new BigNumber(_constructorGuard, toHex(value));\n }\n if (value.match(/^-?[0-9]+$/)) {\n return new BigNumber(_constructorGuard, toHex(new BN(value)));\n }\n return logger.throwArgumentError(\"invalid BigNumber string\", \"value\", value);\n }\n if (typeof (value) === \"number\") {\n if (value % 1) {\n throwFault(\"underflow\", \"BigNumber.from\", value);\n }\n if (value >= MAX_SAFE || value <= -MAX_SAFE) {\n throwFault(\"overflow\", \"BigNumber.from\", value);\n }\n return BigNumber.from(String(value));\n }\n const anyValue = value;\n if (typeof (anyValue) === \"bigint\") {\n return BigNumber.from(anyValue.toString());\n }\n if (isBytes(anyValue)) {\n return BigNumber.from(hexlify(anyValue));\n }\n if (anyValue) {\n // Hexable interface (takes priority)\n if (anyValue.toHexString) {\n const hex = anyValue.toHexString();\n if (typeof (hex) === \"string\") {\n return BigNumber.from(hex);\n }\n }\n else {\n // For now, handle legacy JSON-ified values (goes away in v6)\n let hex = anyValue._hex;\n // New-form JSON\n if (hex == null && anyValue.type === \"BigNumber\") {\n hex = anyValue.hex;\n }\n if (typeof (hex) === \"string\") {\n if (isHexString(hex) || (hex[0] === \"-\" && isHexString(hex.substring(1)))) {\n return BigNumber.from(hex);\n }\n }\n }\n }\n return logger.throwArgumentError(\"invalid BigNumber value\", \"value\", value);\n }\n static isBigNumber(value) {\n return !!(value && value._isBigNumber);\n }\n}\n// Normalize the hex string\nfunction toHex(value) {\n // For BN, call on the hex string\n if (typeof (value) !== \"string\") {\n return toHex(value.toString(16));\n }\n // If negative, prepend the negative sign to the normalized positive value\n if (value[0] === \"-\") {\n // Strip off the negative sign\n value = value.substring(1);\n // Cannot have multiple negative signs (e.g. \"--0x04\")\n if (value[0] === \"-\") {\n logger.throwArgumentError(\"invalid hex\", \"value\", value);\n }\n // Call toHex on the positive component\n value = toHex(value);\n // Do not allow \"-0x00\"\n if (value === \"0x00\") {\n return value;\n }\n // Negate the value\n return \"-\" + value;\n }\n // Add a \"0x\" prefix if missing\n if (value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n // Normalize zero\n if (value === \"0x\") {\n return \"0x00\";\n }\n // Make the string even length\n if (value.length % 2) {\n value = \"0x0\" + value.substring(2);\n }\n // Trim to smallest even-length string\n while (value.length > 4 && value.substring(0, 4) === \"0x00\") {\n value = \"0x\" + value.substring(4);\n }\n return value;\n}\nfunction toBigNumber(value) {\n return BigNumber.from(toHex(value));\n}\nfunction toBN(value) {\n const hex = BigNumber.from(value).toHexString();\n if (hex[0] === \"-\") {\n return (new BN(\"-\" + hex.substring(3), 16));\n }\n return new BN(hex.substring(2), 16);\n}\nfunction throwFault(fault, operation, value) {\n const params = { fault: fault, operation: operation };\n if (value != null) {\n params.value = value;\n }\n return logger.throwError(fault, Logger.errors.NUMERIC_FAULT, params);\n}\n// value should have no prefix\nexport function _base36To16(value) {\n return (new BN(value, 36)).toString(16);\n}\n// value should have no prefix\nexport function _base16To36(value) {\n return (new BN(value, 16)).toString(36);\n}\n//# sourceMappingURL=bignumber.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nexport function defineReadOnly(object, name, value) {\n Object.defineProperty(object, name, {\n enumerable: true,\n value: value,\n writable: false,\n });\n}\n// Crawl up the constructor chain to find a static method\nexport function getStatic(ctor, key) {\n for (let i = 0; i < 32; i++) {\n if (ctor[key]) {\n return ctor[key];\n }\n if (!ctor.prototype || typeof (ctor.prototype) !== \"object\") {\n break;\n }\n ctor = Object.getPrototypeOf(ctor.prototype).constructor;\n }\n return null;\n}\nexport function resolveProperties(object) {\n return __awaiter(this, void 0, void 0, function* () {\n const promises = Object.keys(object).map((key) => {\n const value = object[key];\n return Promise.resolve(value).then((v) => ({ key: key, value: v }));\n });\n const results = yield Promise.all(promises);\n return results.reduce((accum, result) => {\n accum[(result.key)] = result.value;\n return accum;\n }, {});\n });\n}\nexport function checkProperties(object, properties) {\n if (!object || typeof (object) !== \"object\") {\n logger.throwArgumentError(\"invalid object\", \"object\", object);\n }\n Object.keys(object).forEach((key) => {\n if (!properties[key]) {\n logger.throwArgumentError(\"invalid object key - \" + key, \"transaction:\" + key, object);\n }\n });\n}\nexport function shallowCopy(object) {\n const result = {};\n for (const key in object) {\n result[key] = object[key];\n }\n return result;\n}\nconst opaque = { bigint: true, boolean: true, \"function\": true, number: true, string: true };\nfunction _isFrozen(object) {\n // Opaque objects are not mutable, so safe to copy by assignment\n if (object === undefined || object === null || opaque[typeof (object)]) {\n return true;\n }\n if (Array.isArray(object) || typeof (object) === \"object\") {\n if (!Object.isFrozen(object)) {\n return false;\n }\n const keys = Object.keys(object);\n for (let i = 0; i < keys.length; i++) {\n let value = null;\n try {\n value = object[keys[i]];\n }\n catch (error) {\n // If accessing a value triggers an error, it is a getter\n // designed to do so (e.g. Result) and is therefore \"frozen\"\n continue;\n }\n if (!_isFrozen(value)) {\n return false;\n }\n }\n return true;\n }\n return logger.throwArgumentError(`Cannot deepCopy ${typeof (object)}`, \"object\", object);\n}\n// Returns a new copy of object, such that no properties may be replaced.\n// New properties may be added only to objects.\nfunction _deepCopy(object) {\n if (_isFrozen(object)) {\n return object;\n }\n // Arrays are mutable, so we need to create a copy\n if (Array.isArray(object)) {\n return Object.freeze(object.map((item) => deepCopy(item)));\n }\n if (typeof (object) === \"object\") {\n const result = {};\n for (const key in object) {\n const value = object[key];\n if (value === undefined) {\n continue;\n }\n defineReadOnly(result, key, deepCopy(value));\n }\n return result;\n }\n return logger.throwArgumentError(`Cannot deepCopy ${typeof (object)}`, \"object\", object);\n}\nexport function deepCopy(object) {\n return _deepCopy(object);\n}\nexport class Description {\n constructor(info) {\n for (const key in info) {\n this[key] = deepCopy(info[key]);\n }\n }\n}\n//# sourceMappingURL=index.js.map","export const version = \"abi/5.7.0\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n;\nconst _constructorGuard = {};\nlet ModifiersBytes = { calldata: true, memory: true, storage: true };\nlet ModifiersNest = { calldata: true, memory: true };\nfunction checkModifier(type, name) {\n if (type === \"bytes\" || type === \"string\") {\n if (ModifiersBytes[name]) {\n return true;\n }\n }\n else if (type === \"address\") {\n if (name === \"payable\") {\n return true;\n }\n }\n else if (type.indexOf(\"[\") >= 0 || type === \"tuple\") {\n if (ModifiersNest[name]) {\n return true;\n }\n }\n if (ModifiersBytes[name] || name === \"payable\") {\n logger.throwArgumentError(\"invalid modifier\", \"name\", name);\n }\n return false;\n}\n// @TODO: Make sure that children of an indexed tuple are marked with a null indexed\nfunction parseParamType(param, allowIndexed) {\n let originalParam = param;\n function throwError(i) {\n logger.throwArgumentError(`unexpected character at position ${i}`, \"param\", param);\n }\n param = param.replace(/\\s/g, \" \");\n function newNode(parent) {\n let node = { type: \"\", name: \"\", parent: parent, state: { allowType: true } };\n if (allowIndexed) {\n node.indexed = false;\n }\n return node;\n }\n let parent = { type: \"\", name: \"\", state: { allowType: true } };\n let node = parent;\n for (let i = 0; i < param.length; i++) {\n let c = param[i];\n switch (c) {\n case \"(\":\n if (node.state.allowType && node.type === \"\") {\n node.type = \"tuple\";\n }\n else if (!node.state.allowParams) {\n throwError(i);\n }\n node.state.allowType = false;\n node.type = verifyType(node.type);\n node.components = [newNode(node)];\n node = node.components[0];\n break;\n case \")\":\n delete node.state;\n if (node.name === \"indexed\") {\n if (!allowIndexed) {\n throwError(i);\n }\n node.indexed = true;\n node.name = \"\";\n }\n if (checkModifier(node.type, node.name)) {\n node.name = \"\";\n }\n node.type = verifyType(node.type);\n let child = node;\n node = node.parent;\n if (!node) {\n throwError(i);\n }\n delete child.parent;\n node.state.allowParams = false;\n node.state.allowName = true;\n node.state.allowArray = true;\n break;\n case \",\":\n delete node.state;\n if (node.name === \"indexed\") {\n if (!allowIndexed) {\n throwError(i);\n }\n node.indexed = true;\n node.name = \"\";\n }\n if (checkModifier(node.type, node.name)) {\n node.name = \"\";\n }\n node.type = verifyType(node.type);\n let sibling = newNode(node.parent);\n //{ type: \"\", name: \"\", parent: node.parent, state: { allowType: true } };\n node.parent.components.push(sibling);\n delete node.parent;\n node = sibling;\n break;\n // Hit a space...\n case \" \":\n // If reading type, the type is done and may read a param or name\n if (node.state.allowType) {\n if (node.type !== \"\") {\n node.type = verifyType(node.type);\n delete node.state.allowType;\n node.state.allowName = true;\n node.state.allowParams = true;\n }\n }\n // If reading name, the name is done\n if (node.state.allowName) {\n if (node.name !== \"\") {\n if (node.name === \"indexed\") {\n if (!allowIndexed) {\n throwError(i);\n }\n if (node.indexed) {\n throwError(i);\n }\n node.indexed = true;\n node.name = \"\";\n }\n else if (checkModifier(node.type, node.name)) {\n node.name = \"\";\n }\n else {\n node.state.allowName = false;\n }\n }\n }\n break;\n case \"[\":\n if (!node.state.allowArray) {\n throwError(i);\n }\n node.type += c;\n node.state.allowArray = false;\n node.state.allowName = false;\n node.state.readArray = true;\n break;\n case \"]\":\n if (!node.state.readArray) {\n throwError(i);\n }\n node.type += c;\n node.state.readArray = false;\n node.state.allowArray = true;\n node.state.allowName = true;\n break;\n default:\n if (node.state.allowType) {\n node.type += c;\n node.state.allowParams = true;\n node.state.allowArray = true;\n }\n else if (node.state.allowName) {\n node.name += c;\n delete node.state.allowArray;\n }\n else if (node.state.readArray) {\n node.type += c;\n }\n else {\n throwError(i);\n }\n }\n }\n if (node.parent) {\n logger.throwArgumentError(\"unexpected eof\", \"param\", param);\n }\n delete parent.state;\n if (node.name === \"indexed\") {\n if (!allowIndexed) {\n throwError(originalParam.length - 7);\n }\n if (node.indexed) {\n throwError(originalParam.length - 7);\n }\n node.indexed = true;\n node.name = \"\";\n }\n else if (checkModifier(node.type, node.name)) {\n node.name = \"\";\n }\n parent.type = verifyType(parent.type);\n return parent;\n}\nfunction populate(object, params) {\n for (let key in params) {\n defineReadOnly(object, key, params[key]);\n }\n}\nexport const FormatTypes = Object.freeze({\n // Bare formatting, as is needed for computing a sighash of an event or function\n sighash: \"sighash\",\n // Human-Readable with Minimal spacing and without names (compact human-readable)\n minimal: \"minimal\",\n // Human-Readable with nice spacing, including all names\n full: \"full\",\n // JSON-format a la Solidity\n json: \"json\"\n});\nconst paramTypeArray = new RegExp(/^(.*)\\[([0-9]*)\\]$/);\nexport class ParamType {\n constructor(constructorGuard, params) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"use fromString\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new ParamType()\"\n });\n }\n populate(this, params);\n let match = this.type.match(paramTypeArray);\n if (match) {\n populate(this, {\n arrayLength: parseInt(match[2] || \"-1\"),\n arrayChildren: ParamType.fromObject({\n type: match[1],\n components: this.components\n }),\n baseType: \"array\"\n });\n }\n else {\n populate(this, {\n arrayLength: null,\n arrayChildren: null,\n baseType: ((this.components != null) ? \"tuple\" : this.type)\n });\n }\n this._isParamType = true;\n Object.freeze(this);\n }\n // Format the parameter fragment\n // - sighash: \"(uint256,address)\"\n // - minimal: \"tuple(uint256,address) indexed\"\n // - full: \"tuple(uint256 foo, address bar) indexed baz\"\n format(format) {\n if (!format) {\n format = FormatTypes.sighash;\n }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n if (format === FormatTypes.json) {\n let result = {\n type: ((this.baseType === \"tuple\") ? \"tuple\" : this.type),\n name: (this.name || undefined)\n };\n if (typeof (this.indexed) === \"boolean\") {\n result.indexed = this.indexed;\n }\n if (this.components) {\n result.components = this.components.map((comp) => JSON.parse(comp.format(format)));\n }\n return JSON.stringify(result);\n }\n let result = \"\";\n // Array\n if (this.baseType === \"array\") {\n result += this.arrayChildren.format(format);\n result += \"[\" + (this.arrayLength < 0 ? \"\" : String(this.arrayLength)) + \"]\";\n }\n else {\n if (this.baseType === \"tuple\") {\n if (format !== FormatTypes.sighash) {\n result += this.type;\n }\n result += \"(\" + this.components.map((comp) => comp.format(format)).join((format === FormatTypes.full) ? \", \" : \",\") + \")\";\n }\n else {\n result += this.type;\n }\n }\n if (format !== FormatTypes.sighash) {\n if (this.indexed === true) {\n result += \" indexed\";\n }\n if (format === FormatTypes.full && this.name) {\n result += \" \" + this.name;\n }\n }\n return result;\n }\n static from(value, allowIndexed) {\n if (typeof (value) === \"string\") {\n return ParamType.fromString(value, allowIndexed);\n }\n return ParamType.fromObject(value);\n }\n static fromObject(value) {\n if (ParamType.isParamType(value)) {\n return value;\n }\n return new ParamType(_constructorGuard, {\n name: (value.name || null),\n type: verifyType(value.type),\n indexed: ((value.indexed == null) ? null : !!value.indexed),\n components: (value.components ? value.components.map(ParamType.fromObject) : null)\n });\n }\n static fromString(value, allowIndexed) {\n function ParamTypify(node) {\n return ParamType.fromObject({\n name: node.name,\n type: node.type,\n indexed: node.indexed,\n components: node.components\n });\n }\n return ParamTypify(parseParamType(value, !!allowIndexed));\n }\n static isParamType(value) {\n return !!(value != null && value._isParamType);\n }\n}\n;\nfunction parseParams(value, allowIndex) {\n return splitNesting(value).map((param) => ParamType.fromString(param, allowIndex));\n}\nexport class Fragment {\n constructor(constructorGuard, params) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"use a static from method\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new Fragment()\"\n });\n }\n populate(this, params);\n this._isFragment = true;\n Object.freeze(this);\n }\n static from(value) {\n if (Fragment.isFragment(value)) {\n return value;\n }\n if (typeof (value) === \"string\") {\n return Fragment.fromString(value);\n }\n return Fragment.fromObject(value);\n }\n static fromObject(value) {\n if (Fragment.isFragment(value)) {\n return value;\n }\n switch (value.type) {\n case \"function\":\n return FunctionFragment.fromObject(value);\n case \"event\":\n return EventFragment.fromObject(value);\n case \"constructor\":\n return ConstructorFragment.fromObject(value);\n case \"error\":\n return ErrorFragment.fromObject(value);\n case \"fallback\":\n case \"receive\":\n // @TODO: Something? Maybe return a FunctionFragment? A custom DefaultFunctionFragment?\n return null;\n }\n return logger.throwArgumentError(\"invalid fragment object\", \"value\", value);\n }\n static fromString(value) {\n // Make sure the \"returns\" is surrounded by a space and all whitespace is exactly one space\n value = value.replace(/\\s/g, \" \");\n value = value.replace(/\\(/g, \" (\").replace(/\\)/g, \") \").replace(/\\s+/g, \" \");\n value = value.trim();\n if (value.split(\" \")[0] === \"event\") {\n return EventFragment.fromString(value.substring(5).trim());\n }\n else if (value.split(\" \")[0] === \"function\") {\n return FunctionFragment.fromString(value.substring(8).trim());\n }\n else if (value.split(\"(\")[0].trim() === \"constructor\") {\n return ConstructorFragment.fromString(value.trim());\n }\n else if (value.split(\" \")[0] === \"error\") {\n return ErrorFragment.fromString(value.substring(5).trim());\n }\n return logger.throwArgumentError(\"unsupported fragment\", \"value\", value);\n }\n static isFragment(value) {\n return !!(value && value._isFragment);\n }\n}\nexport class EventFragment extends Fragment {\n format(format) {\n if (!format) {\n format = FormatTypes.sighash;\n }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n if (format === FormatTypes.json) {\n return JSON.stringify({\n type: \"event\",\n anonymous: this.anonymous,\n name: this.name,\n inputs: this.inputs.map((input) => JSON.parse(input.format(format)))\n });\n }\n let result = \"\";\n if (format !== FormatTypes.sighash) {\n result += \"event \";\n }\n result += this.name + \"(\" + this.inputs.map((input) => input.format(format)).join((format === FormatTypes.full) ? \", \" : \",\") + \") \";\n if (format !== FormatTypes.sighash) {\n if (this.anonymous) {\n result += \"anonymous \";\n }\n }\n return result.trim();\n }\n static from(value) {\n if (typeof (value) === \"string\") {\n return EventFragment.fromString(value);\n }\n return EventFragment.fromObject(value);\n }\n static fromObject(value) {\n if (EventFragment.isEventFragment(value)) {\n return value;\n }\n if (value.type !== \"event\") {\n logger.throwArgumentError(\"invalid event object\", \"value\", value);\n }\n const params = {\n name: verifyIdentifier(value.name),\n anonymous: value.anonymous,\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject) : []),\n type: \"event\"\n };\n return new EventFragment(_constructorGuard, params);\n }\n static fromString(value) {\n let match = value.match(regexParen);\n if (!match) {\n logger.throwArgumentError(\"invalid event string\", \"value\", value);\n }\n let anonymous = false;\n match[3].split(\" \").forEach((modifier) => {\n switch (modifier.trim()) {\n case \"anonymous\":\n anonymous = true;\n break;\n case \"\":\n break;\n default:\n logger.warn(\"unknown modifier: \" + modifier);\n }\n });\n return EventFragment.fromObject({\n name: match[1].trim(),\n anonymous: anonymous,\n inputs: parseParams(match[2], true),\n type: \"event\"\n });\n }\n static isEventFragment(value) {\n return (value && value._isFragment && value.type === \"event\");\n }\n}\nfunction parseGas(value, params) {\n params.gas = null;\n let comps = value.split(\"@\");\n if (comps.length !== 1) {\n if (comps.length > 2) {\n logger.throwArgumentError(\"invalid human-readable ABI signature\", \"value\", value);\n }\n if (!comps[1].match(/^[0-9]+$/)) {\n logger.throwArgumentError(\"invalid human-readable ABI signature gas\", \"value\", value);\n }\n params.gas = BigNumber.from(comps[1]);\n return comps[0];\n }\n return value;\n}\nfunction parseModifiers(value, params) {\n params.constant = false;\n params.payable = false;\n params.stateMutability = \"nonpayable\";\n value.split(\" \").forEach((modifier) => {\n switch (modifier.trim()) {\n case \"constant\":\n params.constant = true;\n break;\n case \"payable\":\n params.payable = true;\n params.stateMutability = \"payable\";\n break;\n case \"nonpayable\":\n params.payable = false;\n params.stateMutability = \"nonpayable\";\n break;\n case \"pure\":\n params.constant = true;\n params.stateMutability = \"pure\";\n break;\n case \"view\":\n params.constant = true;\n params.stateMutability = \"view\";\n break;\n case \"external\":\n case \"public\":\n case \"\":\n break;\n default:\n console.log(\"unknown modifier: \" + modifier);\n }\n });\n}\nfunction verifyState(value) {\n let result = {\n constant: false,\n payable: true,\n stateMutability: \"payable\"\n };\n if (value.stateMutability != null) {\n result.stateMutability = value.stateMutability;\n // Set (and check things are consistent) the constant property\n result.constant = (result.stateMutability === \"view\" || result.stateMutability === \"pure\");\n if (value.constant != null) {\n if ((!!value.constant) !== result.constant) {\n logger.throwArgumentError(\"cannot have constant function with mutability \" + result.stateMutability, \"value\", value);\n }\n }\n // Set (and check things are consistent) the payable property\n result.payable = (result.stateMutability === \"payable\");\n if (value.payable != null) {\n if ((!!value.payable) !== result.payable) {\n logger.throwArgumentError(\"cannot have payable function with mutability \" + result.stateMutability, \"value\", value);\n }\n }\n }\n else if (value.payable != null) {\n result.payable = !!value.payable;\n // If payable we can assume non-constant; otherwise we can't assume\n if (value.constant == null && !result.payable && value.type !== \"constructor\") {\n logger.throwArgumentError(\"unable to determine stateMutability\", \"value\", value);\n }\n result.constant = !!value.constant;\n if (result.constant) {\n result.stateMutability = \"view\";\n }\n else {\n result.stateMutability = (result.payable ? \"payable\" : \"nonpayable\");\n }\n if (result.payable && result.constant) {\n logger.throwArgumentError(\"cannot have constant payable function\", \"value\", value);\n }\n }\n else if (value.constant != null) {\n result.constant = !!value.constant;\n result.payable = !result.constant;\n result.stateMutability = (result.constant ? \"view\" : \"payable\");\n }\n else if (value.type !== \"constructor\") {\n logger.throwArgumentError(\"unable to determine stateMutability\", \"value\", value);\n }\n return result;\n}\nexport class ConstructorFragment extends Fragment {\n format(format) {\n if (!format) {\n format = FormatTypes.sighash;\n }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n if (format === FormatTypes.json) {\n return JSON.stringify({\n type: \"constructor\",\n stateMutability: ((this.stateMutability !== \"nonpayable\") ? this.stateMutability : undefined),\n payable: this.payable,\n gas: (this.gas ? this.gas.toNumber() : undefined),\n inputs: this.inputs.map((input) => JSON.parse(input.format(format)))\n });\n }\n if (format === FormatTypes.sighash) {\n logger.throwError(\"cannot format a constructor for sighash\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"format(sighash)\"\n });\n }\n let result = \"constructor(\" + this.inputs.map((input) => input.format(format)).join((format === FormatTypes.full) ? \", \" : \",\") + \") \";\n if (this.stateMutability && this.stateMutability !== \"nonpayable\") {\n result += this.stateMutability + \" \";\n }\n return result.trim();\n }\n static from(value) {\n if (typeof (value) === \"string\") {\n return ConstructorFragment.fromString(value);\n }\n return ConstructorFragment.fromObject(value);\n }\n static fromObject(value) {\n if (ConstructorFragment.isConstructorFragment(value)) {\n return value;\n }\n if (value.type !== \"constructor\") {\n logger.throwArgumentError(\"invalid constructor object\", \"value\", value);\n }\n let state = verifyState(value);\n if (state.constant) {\n logger.throwArgumentError(\"constructor cannot be constant\", \"value\", value);\n }\n const params = {\n name: null,\n type: value.type,\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject) : []),\n payable: state.payable,\n stateMutability: state.stateMutability,\n gas: (value.gas ? BigNumber.from(value.gas) : null)\n };\n return new ConstructorFragment(_constructorGuard, params);\n }\n static fromString(value) {\n let params = { type: \"constructor\" };\n value = parseGas(value, params);\n let parens = value.match(regexParen);\n if (!parens || parens[1].trim() !== \"constructor\") {\n logger.throwArgumentError(\"invalid constructor string\", \"value\", value);\n }\n params.inputs = parseParams(parens[2].trim(), false);\n parseModifiers(parens[3].trim(), params);\n return ConstructorFragment.fromObject(params);\n }\n static isConstructorFragment(value) {\n return (value && value._isFragment && value.type === \"constructor\");\n }\n}\nexport class FunctionFragment extends ConstructorFragment {\n format(format) {\n if (!format) {\n format = FormatTypes.sighash;\n }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n if (format === FormatTypes.json) {\n return JSON.stringify({\n type: \"function\",\n name: this.name,\n constant: this.constant,\n stateMutability: ((this.stateMutability !== \"nonpayable\") ? this.stateMutability : undefined),\n payable: this.payable,\n gas: (this.gas ? this.gas.toNumber() : undefined),\n inputs: this.inputs.map((input) => JSON.parse(input.format(format))),\n outputs: this.outputs.map((output) => JSON.parse(output.format(format))),\n });\n }\n let result = \"\";\n if (format !== FormatTypes.sighash) {\n result += \"function \";\n }\n result += this.name + \"(\" + this.inputs.map((input) => input.format(format)).join((format === FormatTypes.full) ? \", \" : \",\") + \") \";\n if (format !== FormatTypes.sighash) {\n if (this.stateMutability) {\n if (this.stateMutability !== \"nonpayable\") {\n result += (this.stateMutability + \" \");\n }\n }\n else if (this.constant) {\n result += \"view \";\n }\n if (this.outputs && this.outputs.length) {\n result += \"returns (\" + this.outputs.map((output) => output.format(format)).join(\", \") + \") \";\n }\n if (this.gas != null) {\n result += \"@\" + this.gas.toString() + \" \";\n }\n }\n return result.trim();\n }\n static from(value) {\n if (typeof (value) === \"string\") {\n return FunctionFragment.fromString(value);\n }\n return FunctionFragment.fromObject(value);\n }\n static fromObject(value) {\n if (FunctionFragment.isFunctionFragment(value)) {\n return value;\n }\n if (value.type !== \"function\") {\n logger.throwArgumentError(\"invalid function object\", \"value\", value);\n }\n let state = verifyState(value);\n const params = {\n type: value.type,\n name: verifyIdentifier(value.name),\n constant: state.constant,\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject) : []),\n outputs: (value.outputs ? value.outputs.map(ParamType.fromObject) : []),\n payable: state.payable,\n stateMutability: state.stateMutability,\n gas: (value.gas ? BigNumber.from(value.gas) : null)\n };\n return new FunctionFragment(_constructorGuard, params);\n }\n static fromString(value) {\n let params = { type: \"function\" };\n value = parseGas(value, params);\n let comps = value.split(\" returns \");\n if (comps.length > 2) {\n logger.throwArgumentError(\"invalid function string\", \"value\", value);\n }\n let parens = comps[0].match(regexParen);\n if (!parens) {\n logger.throwArgumentError(\"invalid function signature\", \"value\", value);\n }\n params.name = parens[1].trim();\n if (params.name) {\n verifyIdentifier(params.name);\n }\n params.inputs = parseParams(parens[2], false);\n parseModifiers(parens[3].trim(), params);\n // We have outputs\n if (comps.length > 1) {\n let returns = comps[1].match(regexParen);\n if (returns[1].trim() != \"\" || returns[3].trim() != \"\") {\n logger.throwArgumentError(\"unexpected tokens\", \"value\", value);\n }\n params.outputs = parseParams(returns[2], false);\n }\n else {\n params.outputs = [];\n }\n return FunctionFragment.fromObject(params);\n }\n static isFunctionFragment(value) {\n return (value && value._isFragment && value.type === \"function\");\n }\n}\n//export class StructFragment extends Fragment {\n//}\nfunction checkForbidden(fragment) {\n const sig = fragment.format();\n if (sig === \"Error(string)\" || sig === \"Panic(uint256)\") {\n logger.throwArgumentError(`cannot specify user defined ${sig} error`, \"fragment\", fragment);\n }\n return fragment;\n}\nexport class ErrorFragment extends Fragment {\n format(format) {\n if (!format) {\n format = FormatTypes.sighash;\n }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n if (format === FormatTypes.json) {\n return JSON.stringify({\n type: \"error\",\n name: this.name,\n inputs: this.inputs.map((input) => JSON.parse(input.format(format))),\n });\n }\n let result = \"\";\n if (format !== FormatTypes.sighash) {\n result += \"error \";\n }\n result += this.name + \"(\" + this.inputs.map((input) => input.format(format)).join((format === FormatTypes.full) ? \", \" : \",\") + \") \";\n return result.trim();\n }\n static from(value) {\n if (typeof (value) === \"string\") {\n return ErrorFragment.fromString(value);\n }\n return ErrorFragment.fromObject(value);\n }\n static fromObject(value) {\n if (ErrorFragment.isErrorFragment(value)) {\n return value;\n }\n if (value.type !== \"error\") {\n logger.throwArgumentError(\"invalid error object\", \"value\", value);\n }\n const params = {\n type: value.type,\n name: verifyIdentifier(value.name),\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject) : [])\n };\n return checkForbidden(new ErrorFragment(_constructorGuard, params));\n }\n static fromString(value) {\n let params = { type: \"error\" };\n let parens = value.match(regexParen);\n if (!parens) {\n logger.throwArgumentError(\"invalid error signature\", \"value\", value);\n }\n params.name = parens[1].trim();\n if (params.name) {\n verifyIdentifier(params.name);\n }\n params.inputs = parseParams(parens[2], false);\n return checkForbidden(ErrorFragment.fromObject(params));\n }\n static isErrorFragment(value) {\n return (value && value._isFragment && value.type === \"error\");\n }\n}\nfunction verifyType(type) {\n // These need to be transformed to their full description\n if (type.match(/^uint($|[^1-9])/)) {\n type = \"uint256\" + type.substring(4);\n }\n else if (type.match(/^int($|[^1-9])/)) {\n type = \"int256\" + type.substring(3);\n }\n // @TODO: more verification\n return type;\n}\n// See: https://github.com/ethereum/solidity/blob/1f8f1a3db93a548d0555e3e14cfc55a10e25b60e/docs/grammar/SolidityLexer.g4#L234\nconst regexIdentifier = new RegExp(\"^[a-zA-Z$_][a-zA-Z0-9$_]*$\");\nfunction verifyIdentifier(value) {\n if (!value || !value.match(regexIdentifier)) {\n logger.throwArgumentError(`invalid identifier \"${value}\"`, \"value\", value);\n }\n return value;\n}\nconst regexParen = new RegExp(\"^([^)(]*)\\\\((.*)\\\\)([^)(]*)$\");\nfunction splitNesting(value) {\n value = value.trim();\n let result = [];\n let accum = \"\";\n let depth = 0;\n for (let offset = 0; offset < value.length; offset++) {\n let c = value[offset];\n if (c === \",\" && depth === 0) {\n result.push(accum);\n accum = \"\";\n }\n else {\n accum += c;\n if (c === \"(\") {\n depth++;\n }\n else if (c === \")\") {\n depth--;\n if (depth === -1) {\n logger.throwArgumentError(\"unbalanced parenthesis\", \"value\", value);\n }\n }\n }\n }\n if (accum) {\n result.push(accum);\n }\n return result;\n}\n//# sourceMappingURL=fragments.js.map","\"use strict\";\nimport { arrayify, concat, hexConcat, hexlify } from \"@ethersproject/bytes\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"../_version\";\nconst logger = new Logger(version);\nexport function checkResultErrors(result) {\n // Find the first error (if any)\n const errors = [];\n const checkErrors = function (path, object) {\n if (!Array.isArray(object)) {\n return;\n }\n for (let key in object) {\n const childPath = path.slice();\n childPath.push(key);\n try {\n checkErrors(childPath, object[key]);\n }\n catch (error) {\n errors.push({ path: childPath, error: error });\n }\n }\n };\n checkErrors([], result);\n return errors;\n}\nexport class Coder {\n constructor(name, type, localName, dynamic) {\n // @TODO: defineReadOnly these\n this.name = name;\n this.type = type;\n this.localName = localName;\n this.dynamic = dynamic;\n }\n _throwError(message, value) {\n logger.throwArgumentError(message, this.localName, value);\n }\n}\nexport class Writer {\n constructor(wordSize) {\n defineReadOnly(this, \"wordSize\", wordSize || 32);\n this._data = [];\n this._dataLength = 0;\n this._padding = new Uint8Array(wordSize);\n }\n get data() {\n return hexConcat(this._data);\n }\n get length() { return this._dataLength; }\n _writeData(data) {\n this._data.push(data);\n this._dataLength += data.length;\n return data.length;\n }\n appendWriter(writer) {\n return this._writeData(concat(writer._data));\n }\n // Arrayish items; padded on the right to wordSize\n writeBytes(value) {\n let bytes = arrayify(value);\n const paddingOffset = bytes.length % this.wordSize;\n if (paddingOffset) {\n bytes = concat([bytes, this._padding.slice(paddingOffset)]);\n }\n return this._writeData(bytes);\n }\n _getValue(value) {\n let bytes = arrayify(BigNumber.from(value));\n if (bytes.length > this.wordSize) {\n logger.throwError(\"value out-of-bounds\", Logger.errors.BUFFER_OVERRUN, {\n length: this.wordSize,\n offset: bytes.length\n });\n }\n if (bytes.length % this.wordSize) {\n bytes = concat([this._padding.slice(bytes.length % this.wordSize), bytes]);\n }\n return bytes;\n }\n // BigNumberish items; padded on the left to wordSize\n writeValue(value) {\n return this._writeData(this._getValue(value));\n }\n writeUpdatableValue() {\n const offset = this._data.length;\n this._data.push(this._padding);\n this._dataLength += this.wordSize;\n return (value) => {\n this._data[offset] = this._getValue(value);\n };\n }\n}\nexport class Reader {\n constructor(data, wordSize, coerceFunc, allowLoose) {\n defineReadOnly(this, \"_data\", arrayify(data));\n defineReadOnly(this, \"wordSize\", wordSize || 32);\n defineReadOnly(this, \"_coerceFunc\", coerceFunc);\n defineReadOnly(this, \"allowLoose\", allowLoose);\n this._offset = 0;\n }\n get data() { return hexlify(this._data); }\n get consumed() { return this._offset; }\n // The default Coerce function\n static coerce(name, value) {\n let match = name.match(\"^u?int([0-9]+)$\");\n if (match && parseInt(match[1]) <= 48) {\n value = value.toNumber();\n }\n return value;\n }\n coerce(name, value) {\n if (this._coerceFunc) {\n return this._coerceFunc(name, value);\n }\n return Reader.coerce(name, value);\n }\n _peekBytes(offset, length, loose) {\n let alignedLength = Math.ceil(length / this.wordSize) * this.wordSize;\n if (this._offset + alignedLength > this._data.length) {\n if (this.allowLoose && loose && this._offset + length <= this._data.length) {\n alignedLength = length;\n }\n else {\n logger.throwError(\"data out-of-bounds\", Logger.errors.BUFFER_OVERRUN, {\n length: this._data.length,\n offset: this._offset + alignedLength\n });\n }\n }\n return this._data.slice(this._offset, this._offset + alignedLength);\n }\n subReader(offset) {\n return new Reader(this._data.slice(this._offset + offset), this.wordSize, this._coerceFunc, this.allowLoose);\n }\n readBytes(length, loose) {\n let bytes = this._peekBytes(0, length, !!loose);\n this._offset += bytes.length;\n // @TODO: Make sure the length..end bytes are all 0?\n return bytes.slice(0, length);\n }\n readValue() {\n return BigNumber.from(this.readBytes(this.wordSize));\n }\n}\n//# sourceMappingURL=abstract-coder.js.map","/**\n * [js-sha3]{@link https://github.com/emn178/js-sha3}\n *\n * @version 0.8.0\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\n * @copyright Chen, Yi-Cyuan 2015-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_SHA3_NO_WINDOW) {\n WINDOW = false;\n }\n var WEB_WORKER = !WINDOW && typeof self === 'object';\n var NODE_JS = !root.JS_SHA3_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_SHA3_NO_COMMON_JS && typeof module === 'object' && module.exports;\n var AMD = typeof define === 'function' && define.amd;\n var ARRAY_BUFFER = !root.JS_SHA3_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';\n var HEX_CHARS = '0123456789abcdef'.split('');\n var SHAKE_PADDING = [31, 7936, 2031616, 520093696];\n var CSHAKE_PADDING = [4, 1024, 262144, 67108864];\n var KECCAK_PADDING = [1, 256, 65536, 16777216];\n var PADDING = [6, 1536, 393216, 100663296];\n var SHIFT = [0, 8, 16, 24];\n var RC = [1, 0, 32898, 0, 32906, 2147483648, 2147516416, 2147483648, 32907, 0, 2147483649,\n 0, 2147516545, 2147483648, 32777, 2147483648, 138, 0, 136, 0, 2147516425, 0,\n 2147483658, 0, 2147516555, 0, 139, 2147483648, 32905, 2147483648, 32771,\n 2147483648, 32770, 2147483648, 128, 2147483648, 32778, 0, 2147483658, 2147483648,\n 2147516545, 2147483648, 32896, 2147483648, 2147483649, 0, 2147516424, 2147483648];\n var BITS = [224, 256, 384, 512];\n var SHAKE_BITS = [128, 256];\n var OUTPUT_TYPES = ['hex', 'buffer', 'arrayBuffer', 'array', 'digest'];\n var CSHAKE_BYTEPAD = {\n '128': 168,\n '256': 136\n };\n\n if (root.JS_SHA3_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_SHA3_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 (bits, padding, outputType) {\n return function (message) {\n return new Keccak(bits, padding, bits).update(message)[outputType]();\n };\n };\n\n var createShakeOutputMethod = function (bits, padding, outputType) {\n return function (message, outputBits) {\n return new Keccak(bits, padding, outputBits).update(message)[outputType]();\n };\n };\n\n var createCshakeOutputMethod = function (bits, padding, outputType) {\n return function (message, outputBits, n, s) {\n return methods['cshake' + bits].update(message, outputBits, n, s)[outputType]();\n };\n };\n\n var createKmacOutputMethod = function (bits, padding, outputType) {\n return function (key, message, outputBits, s) {\n return methods['kmac' + bits].update(key, message, outputBits, s)[outputType]();\n };\n };\n\n var createOutputMethods = function (method, createMethod, bits, padding) {\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createMethod(bits, padding, type);\n }\n return method;\n };\n\n var createMethod = function (bits, padding) {\n var method = createOutputMethod(bits, padding, 'hex');\n method.create = function () {\n return new Keccak(bits, padding, bits);\n };\n method.update = function (message) {\n return method.create().update(message);\n };\n return createOutputMethods(method, createOutputMethod, bits, padding);\n };\n\n var createShakeMethod = function (bits, padding) {\n var method = createShakeOutputMethod(bits, padding, 'hex');\n method.create = function (outputBits) {\n return new Keccak(bits, padding, outputBits);\n };\n method.update = function (message, outputBits) {\n return method.create(outputBits).update(message);\n };\n return createOutputMethods(method, createShakeOutputMethod, bits, padding);\n };\n\n var createCshakeMethod = function (bits, padding) {\n var w = CSHAKE_BYTEPAD[bits];\n var method = createCshakeOutputMethod(bits, padding, 'hex');\n method.create = function (outputBits, n, s) {\n if (!n && !s) {\n return methods['shake' + bits].create(outputBits);\n } else {\n return new Keccak(bits, padding, outputBits).bytepad([n, s], w);\n }\n };\n method.update = function (message, outputBits, n, s) {\n return method.create(outputBits, n, s).update(message);\n };\n return createOutputMethods(method, createCshakeOutputMethod, bits, padding);\n };\n\n var createKmacMethod = function (bits, padding) {\n var w = CSHAKE_BYTEPAD[bits];\n var method = createKmacOutputMethod(bits, padding, 'hex');\n method.create = function (key, outputBits, s) {\n return new Kmac(bits, padding, outputBits).bytepad(['KMAC', s], w).bytepad([key], w);\n };\n method.update = function (key, message, outputBits, s) {\n return method.create(key, outputBits, s).update(message);\n };\n return createOutputMethods(method, createKmacOutputMethod, bits, padding);\n };\n\n var algorithms = [\n { name: 'keccak', padding: KECCAK_PADDING, bits: BITS, createMethod: createMethod },\n { name: 'sha3', padding: PADDING, bits: BITS, createMethod: createMethod },\n { name: 'shake', padding: SHAKE_PADDING, bits: SHAKE_BITS, createMethod: createShakeMethod },\n { name: 'cshake', padding: CSHAKE_PADDING, bits: SHAKE_BITS, createMethod: createCshakeMethod },\n { name: 'kmac', padding: CSHAKE_PADDING, bits: SHAKE_BITS, createMethod: createKmacMethod }\n ];\n\n var methods = {}, methodNames = [];\n\n for (var i = 0; i < algorithms.length; ++i) {\n var algorithm = algorithms[i];\n var bits = algorithm.bits;\n for (var j = 0; j < bits.length; ++j) {\n var methodName = algorithm.name + '_' + bits[j];\n methodNames.push(methodName);\n methods[methodName] = algorithm.createMethod(bits[j], algorithm.padding);\n if (algorithm.name !== 'sha3') {\n var newMethodName = algorithm.name + bits[j];\n methodNames.push(newMethodName);\n methods[newMethodName] = methods[methodName];\n }\n }\n }\n\n function Keccak(bits, padding, outputBits) {\n this.blocks = [];\n this.s = [];\n this.padding = padding;\n this.outputBits = outputBits;\n this.reset = true;\n this.finalized = false;\n this.block = 0;\n this.start = 0;\n this.blockCount = (1600 - (bits << 1)) >> 5;\n this.byteCount = this.blockCount << 2;\n this.outputBlocks = outputBits >> 5;\n this.extraBytes = (outputBits & 31) >> 3;\n\n for (var i = 0; i < 50; ++i) {\n this.s[i] = 0;\n }\n }\n\n Keccak.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 blocks = this.blocks, byteCount = this.byteCount, length = message.length,\n blockCount = this.blockCount, index = 0, s = this.s, i, code;\n\n while (index < length) {\n if (this.reset) {\n this.reset = false;\n blocks[0] = this.block;\n for (i = 1; i < blockCount + 1; ++i) {\n blocks[i] = 0;\n }\n }\n if (notString) {\n for (i = this.start; index < length && i < byteCount; ++index) {\n blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];\n }\n } else {\n for (i = this.start; index < length && i < byteCount; ++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 this.lastByteIndex = i;\n if (i >= byteCount) {\n this.start = i - byteCount;\n this.block = blocks[blockCount];\n for (i = 0; i < blockCount; ++i) {\n s[i] ^= blocks[i];\n }\n f(s);\n this.reset = true;\n } else {\n this.start = i;\n }\n }\n return this;\n };\n\n Keccak.prototype.encode = function (x, right) {\n var o = x & 255, n = 1;\n var bytes = [o];\n x = x >> 8;\n o = x & 255;\n while (o > 0) {\n bytes.unshift(o);\n x = x >> 8;\n o = x & 255;\n ++n;\n }\n if (right) {\n bytes.push(n);\n } else {\n bytes.unshift(n);\n }\n this.update(bytes);\n return bytes.length;\n };\n\n Keccak.prototype.encodeString = function (str) {\n var notString, type = typeof str;\n if (type !== 'string') {\n if (type === 'object') {\n if (str === null) {\n throw new Error(INPUT_ERROR);\n } else if (ARRAY_BUFFER && str.constructor === ArrayBuffer) {\n str = new Uint8Array(str);\n } else if (!Array.isArray(str)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(str)) {\n throw new Error(INPUT_ERROR);\n }\n }\n } else {\n throw new Error(INPUT_ERROR);\n }\n notString = true;\n }\n var bytes = 0, length = str.length;\n if (notString) {\n bytes = length;\n } else {\n for (var i = 0; i < str.length; ++i) {\n var code = str.charCodeAt(i);\n if (code < 0x80) {\n bytes += 1;\n } else if (code < 0x800) {\n bytes += 2;\n } else if (code < 0xd800 || code >= 0xe000) {\n bytes += 3;\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (str.charCodeAt(++i) & 0x3ff));\n bytes += 4;\n }\n }\n }\n bytes += this.encode(bytes * 8);\n this.update(str);\n return bytes;\n };\n\n Keccak.prototype.bytepad = function (strs, w) {\n var bytes = this.encode(w);\n for (var i = 0; i < strs.length; ++i) {\n bytes += this.encodeString(strs[i]);\n }\n var paddingBytes = w - bytes % w;\n var zeros = [];\n zeros.length = paddingBytes;\n this.update(zeros);\n return this;\n };\n\n Keccak.prototype.finalize = function () {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n var blocks = this.blocks, i = this.lastByteIndex, blockCount = this.blockCount, s = this.s;\n blocks[i >> 2] |= this.padding[i & 3];\n if (this.lastByteIndex === this.byteCount) {\n blocks[0] = blocks[blockCount];\n for (i = 1; i < blockCount + 1; ++i) {\n blocks[i] = 0;\n }\n }\n blocks[blockCount - 1] |= 0x80000000;\n for (i = 0; i < blockCount; ++i) {\n s[i] ^= blocks[i];\n }\n f(s);\n };\n\n Keccak.prototype.toString = Keccak.prototype.hex = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var hex = '', block;\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n block = s[i];\n hex += HEX_CHARS[(block >> 4) & 0x0F] + HEX_CHARS[block & 0x0F] +\n HEX_CHARS[(block >> 12) & 0x0F] + HEX_CHARS[(block >> 8) & 0x0F] +\n HEX_CHARS[(block >> 20) & 0x0F] + HEX_CHARS[(block >> 16) & 0x0F] +\n HEX_CHARS[(block >> 28) & 0x0F] + HEX_CHARS[(block >> 24) & 0x0F];\n }\n if (j % blockCount === 0) {\n f(s);\n i = 0;\n }\n }\n if (extraBytes) {\n block = s[i];\n hex += HEX_CHARS[(block >> 4) & 0x0F] + HEX_CHARS[block & 0x0F];\n if (extraBytes > 1) {\n hex += HEX_CHARS[(block >> 12) & 0x0F] + HEX_CHARS[(block >> 8) & 0x0F];\n }\n if (extraBytes > 2) {\n hex += HEX_CHARS[(block >> 20) & 0x0F] + HEX_CHARS[(block >> 16) & 0x0F];\n }\n }\n return hex;\n };\n\n Keccak.prototype.arrayBuffer = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var bytes = this.outputBits >> 3;\n var buffer;\n if (extraBytes) {\n buffer = new ArrayBuffer((outputBlocks + 1) << 2);\n } else {\n buffer = new ArrayBuffer(bytes);\n }\n var array = new Uint32Array(buffer);\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n array[j] = s[i];\n }\n if (j % blockCount === 0) {\n f(s);\n }\n }\n if (extraBytes) {\n array[i] = s[i];\n buffer = buffer.slice(0, bytes);\n }\n return buffer;\n };\n\n Keccak.prototype.buffer = Keccak.prototype.arrayBuffer;\n\n Keccak.prototype.digest = Keccak.prototype.array = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var array = [], offset, block;\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n offset = j << 2;\n block = s[i];\n array[offset] = block & 0xFF;\n array[offset + 1] = (block >> 8) & 0xFF;\n array[offset + 2] = (block >> 16) & 0xFF;\n array[offset + 3] = (block >> 24) & 0xFF;\n }\n if (j % blockCount === 0) {\n f(s);\n }\n }\n if (extraBytes) {\n offset = j << 2;\n block = s[i];\n array[offset] = block & 0xFF;\n if (extraBytes > 1) {\n array[offset + 1] = (block >> 8) & 0xFF;\n }\n if (extraBytes > 2) {\n array[offset + 2] = (block >> 16) & 0xFF;\n }\n }\n return array;\n };\n\n function Kmac(bits, padding, outputBits) {\n Keccak.call(this, bits, padding, outputBits);\n }\n\n Kmac.prototype = new Keccak();\n\n Kmac.prototype.finalize = function () {\n this.encode(this.outputBits, true);\n return Keccak.prototype.finalize.call(this);\n };\n\n var f = function (s) {\n var h, l, n, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9,\n b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16, b17,\n b18, b19, b20, b21, b22, b23, b24, b25, b26, b27, b28, b29, b30, b31, b32, b33,\n b34, b35, b36, b37, b38, b39, b40, b41, b42, b43, b44, b45, b46, b47, b48, b49;\n for (n = 0; n < 48; n += 2) {\n c0 = s[0] ^ s[10] ^ s[20] ^ s[30] ^ s[40];\n c1 = s[1] ^ s[11] ^ s[21] ^ s[31] ^ s[41];\n c2 = s[2] ^ s[12] ^ s[22] ^ s[32] ^ s[42];\n c3 = s[3] ^ s[13] ^ s[23] ^ s[33] ^ s[43];\n c4 = s[4] ^ s[14] ^ s[24] ^ s[34] ^ s[44];\n c5 = s[5] ^ s[15] ^ s[25] ^ s[35] ^ s[45];\n c6 = s[6] ^ s[16] ^ s[26] ^ s[36] ^ s[46];\n c7 = s[7] ^ s[17] ^ s[27] ^ s[37] ^ s[47];\n c8 = s[8] ^ s[18] ^ s[28] ^ s[38] ^ s[48];\n c9 = s[9] ^ s[19] ^ s[29] ^ s[39] ^ s[49];\n\n h = c8 ^ ((c2 << 1) | (c3 >>> 31));\n l = c9 ^ ((c3 << 1) | (c2 >>> 31));\n s[0] ^= h;\n s[1] ^= l;\n s[10] ^= h;\n s[11] ^= l;\n s[20] ^= h;\n s[21] ^= l;\n s[30] ^= h;\n s[31] ^= l;\n s[40] ^= h;\n s[41] ^= l;\n h = c0 ^ ((c4 << 1) | (c5 >>> 31));\n l = c1 ^ ((c5 << 1) | (c4 >>> 31));\n s[2] ^= h;\n s[3] ^= l;\n s[12] ^= h;\n s[13] ^= l;\n s[22] ^= h;\n s[23] ^= l;\n s[32] ^= h;\n s[33] ^= l;\n s[42] ^= h;\n s[43] ^= l;\n h = c2 ^ ((c6 << 1) | (c7 >>> 31));\n l = c3 ^ ((c7 << 1) | (c6 >>> 31));\n s[4] ^= h;\n s[5] ^= l;\n s[14] ^= h;\n s[15] ^= l;\n s[24] ^= h;\n s[25] ^= l;\n s[34] ^= h;\n s[35] ^= l;\n s[44] ^= h;\n s[45] ^= l;\n h = c4 ^ ((c8 << 1) | (c9 >>> 31));\n l = c5 ^ ((c9 << 1) | (c8 >>> 31));\n s[6] ^= h;\n s[7] ^= l;\n s[16] ^= h;\n s[17] ^= l;\n s[26] ^= h;\n s[27] ^= l;\n s[36] ^= h;\n s[37] ^= l;\n s[46] ^= h;\n s[47] ^= l;\n h = c6 ^ ((c0 << 1) | (c1 >>> 31));\n l = c7 ^ ((c1 << 1) | (c0 >>> 31));\n s[8] ^= h;\n s[9] ^= l;\n s[18] ^= h;\n s[19] ^= l;\n s[28] ^= h;\n s[29] ^= l;\n s[38] ^= h;\n s[39] ^= l;\n s[48] ^= h;\n s[49] ^= l;\n\n b0 = s[0];\n b1 = s[1];\n b32 = (s[11] << 4) | (s[10] >>> 28);\n b33 = (s[10] << 4) | (s[11] >>> 28);\n b14 = (s[20] << 3) | (s[21] >>> 29);\n b15 = (s[21] << 3) | (s[20] >>> 29);\n b46 = (s[31] << 9) | (s[30] >>> 23);\n b47 = (s[30] << 9) | (s[31] >>> 23);\n b28 = (s[40] << 18) | (s[41] >>> 14);\n b29 = (s[41] << 18) | (s[40] >>> 14);\n b20 = (s[2] << 1) | (s[3] >>> 31);\n b21 = (s[3] << 1) | (s[2] >>> 31);\n b2 = (s[13] << 12) | (s[12] >>> 20);\n b3 = (s[12] << 12) | (s[13] >>> 20);\n b34 = (s[22] << 10) | (s[23] >>> 22);\n b35 = (s[23] << 10) | (s[22] >>> 22);\n b16 = (s[33] << 13) | (s[32] >>> 19);\n b17 = (s[32] << 13) | (s[33] >>> 19);\n b48 = (s[42] << 2) | (s[43] >>> 30);\n b49 = (s[43] << 2) | (s[42] >>> 30);\n b40 = (s[5] << 30) | (s[4] >>> 2);\n b41 = (s[4] << 30) | (s[5] >>> 2);\n b22 = (s[14] << 6) | (s[15] >>> 26);\n b23 = (s[15] << 6) | (s[14] >>> 26);\n b4 = (s[25] << 11) | (s[24] >>> 21);\n b5 = (s[24] << 11) | (s[25] >>> 21);\n b36 = (s[34] << 15) | (s[35] >>> 17);\n b37 = (s[35] << 15) | (s[34] >>> 17);\n b18 = (s[45] << 29) | (s[44] >>> 3);\n b19 = (s[44] << 29) | (s[45] >>> 3);\n b10 = (s[6] << 28) | (s[7] >>> 4);\n b11 = (s[7] << 28) | (s[6] >>> 4);\n b42 = (s[17] << 23) | (s[16] >>> 9);\n b43 = (s[16] << 23) | (s[17] >>> 9);\n b24 = (s[26] << 25) | (s[27] >>> 7);\n b25 = (s[27] << 25) | (s[26] >>> 7);\n b6 = (s[36] << 21) | (s[37] >>> 11);\n b7 = (s[37] << 21) | (s[36] >>> 11);\n b38 = (s[47] << 24) | (s[46] >>> 8);\n b39 = (s[46] << 24) | (s[47] >>> 8);\n b30 = (s[8] << 27) | (s[9] >>> 5);\n b31 = (s[9] << 27) | (s[8] >>> 5);\n b12 = (s[18] << 20) | (s[19] >>> 12);\n b13 = (s[19] << 20) | (s[18] >>> 12);\n b44 = (s[29] << 7) | (s[28] >>> 25);\n b45 = (s[28] << 7) | (s[29] >>> 25);\n b26 = (s[38] << 8) | (s[39] >>> 24);\n b27 = (s[39] << 8) | (s[38] >>> 24);\n b8 = (s[48] << 14) | (s[49] >>> 18);\n b9 = (s[49] << 14) | (s[48] >>> 18);\n\n s[0] = b0 ^ (~b2 & b4);\n s[1] = b1 ^ (~b3 & b5);\n s[10] = b10 ^ (~b12 & b14);\n s[11] = b11 ^ (~b13 & b15);\n s[20] = b20 ^ (~b22 & b24);\n s[21] = b21 ^ (~b23 & b25);\n s[30] = b30 ^ (~b32 & b34);\n s[31] = b31 ^ (~b33 & b35);\n s[40] = b40 ^ (~b42 & b44);\n s[41] = b41 ^ (~b43 & b45);\n s[2] = b2 ^ (~b4 & b6);\n s[3] = b3 ^ (~b5 & b7);\n s[12] = b12 ^ (~b14 & b16);\n s[13] = b13 ^ (~b15 & b17);\n s[22] = b22 ^ (~b24 & b26);\n s[23] = b23 ^ (~b25 & b27);\n s[32] = b32 ^ (~b34 & b36);\n s[33] = b33 ^ (~b35 & b37);\n s[42] = b42 ^ (~b44 & b46);\n s[43] = b43 ^ (~b45 & b47);\n s[4] = b4 ^ (~b6 & b8);\n s[5] = b5 ^ (~b7 & b9);\n s[14] = b14 ^ (~b16 & b18);\n s[15] = b15 ^ (~b17 & b19);\n s[24] = b24 ^ (~b26 & b28);\n s[25] = b25 ^ (~b27 & b29);\n s[34] = b34 ^ (~b36 & b38);\n s[35] = b35 ^ (~b37 & b39);\n s[44] = b44 ^ (~b46 & b48);\n s[45] = b45 ^ (~b47 & b49);\n s[6] = b6 ^ (~b8 & b0);\n s[7] = b7 ^ (~b9 & b1);\n s[16] = b16 ^ (~b18 & b10);\n s[17] = b17 ^ (~b19 & b11);\n s[26] = b26 ^ (~b28 & b20);\n s[27] = b27 ^ (~b29 & b21);\n s[36] = b36 ^ (~b38 & b30);\n s[37] = b37 ^ (~b39 & b31);\n s[46] = b46 ^ (~b48 & b40);\n s[47] = b47 ^ (~b49 & b41);\n s[8] = b8 ^ (~b0 & b2);\n s[9] = b9 ^ (~b1 & b3);\n s[18] = b18 ^ (~b10 & b12);\n s[19] = b19 ^ (~b11 & b13);\n s[28] = b28 ^ (~b20 & b22);\n s[29] = b29 ^ (~b21 & b23);\n s[38] = b38 ^ (~b30 & b32);\n s[39] = b39 ^ (~b31 & b33);\n s[48] = b48 ^ (~b40 & b42);\n s[49] = b49 ^ (~b41 & b43);\n\n s[0] ^= RC[n];\n s[1] ^= RC[n + 1];\n }\n };\n\n if (COMMON_JS) {\n module.exports = methods;\n } else {\n for (i = 0; i < methodNames.length; ++i) {\n root[methodNames[i]] = methods[methodNames[i]];\n }\n if (AMD) {\n define(function () {\n return methods;\n });\n }\n }\n})();\n","\"use strict\";\nimport sha3 from \"js-sha3\";\nimport { arrayify } from \"@ethersproject/bytes\";\nexport function keccak256(data) {\n return '0x' + sha3.keccak_256(arrayify(data));\n}\n//# sourceMappingURL=index.js.map","export const version = \"rlp/5.7.0\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\n//See: https://github.com/ethereum/wiki/wiki/RLP\nimport { arrayify, hexlify, isBytesLike } from \"@ethersproject/bytes\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nfunction arrayifyInteger(value) {\n const result = [];\n while (value) {\n result.unshift(value & 0xff);\n value >>= 8;\n }\n return result;\n}\nfunction unarrayifyInteger(data, offset, length) {\n let result = 0;\n for (let i = 0; i < length; i++) {\n result = (result * 256) + data[offset + i];\n }\n return result;\n}\nfunction _encode(object) {\n if (Array.isArray(object)) {\n let payload = [];\n object.forEach(function (child) {\n payload = payload.concat(_encode(child));\n });\n if (payload.length <= 55) {\n payload.unshift(0xc0 + payload.length);\n return payload;\n }\n const length = arrayifyInteger(payload.length);\n length.unshift(0xf7 + length.length);\n return length.concat(payload);\n }\n if (!isBytesLike(object)) {\n logger.throwArgumentError(\"RLP object must be BytesLike\", \"object\", object);\n }\n const data = Array.prototype.slice.call(arrayify(object));\n if (data.length === 1 && data[0] <= 0x7f) {\n return data;\n }\n else if (data.length <= 55) {\n data.unshift(0x80 + data.length);\n return data;\n }\n const length = arrayifyInteger(data.length);\n length.unshift(0xb7 + length.length);\n return length.concat(data);\n}\nexport function encode(object) {\n return hexlify(_encode(object));\n}\nfunction _decodeChildren(data, offset, childOffset, length) {\n const result = [];\n while (childOffset < offset + 1 + length) {\n const decoded = _decode(data, childOffset);\n result.push(decoded.result);\n childOffset += decoded.consumed;\n if (childOffset > offset + 1 + length) {\n logger.throwError(\"child data too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n }\n return { consumed: (1 + length), result: result };\n}\n// returns { consumed: number, result: Object }\nfunction _decode(data, offset) {\n if (data.length === 0) {\n logger.throwError(\"data too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n // Array with extra length prefix\n if (data[offset] >= 0xf8) {\n const lengthLength = data[offset] - 0xf7;\n if (offset + 1 + lengthLength > data.length) {\n logger.throwError(\"data short segment too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n const length = unarrayifyInteger(data, offset + 1, lengthLength);\n if (offset + 1 + lengthLength + length > data.length) {\n logger.throwError(\"data long segment too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n return _decodeChildren(data, offset, offset + 1 + lengthLength, lengthLength + length);\n }\n else if (data[offset] >= 0xc0) {\n const length = data[offset] - 0xc0;\n if (offset + 1 + length > data.length) {\n logger.throwError(\"data array too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n return _decodeChildren(data, offset, offset + 1, length);\n }\n else if (data[offset] >= 0xb8) {\n const lengthLength = data[offset] - 0xb7;\n if (offset + 1 + lengthLength > data.length) {\n logger.throwError(\"data array too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n const length = unarrayifyInteger(data, offset + 1, lengthLength);\n if (offset + 1 + lengthLength + length > data.length) {\n logger.throwError(\"data array too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n const result = hexlify(data.slice(offset + 1 + lengthLength, offset + 1 + lengthLength + length));\n return { consumed: (1 + lengthLength + length), result: result };\n }\n else if (data[offset] >= 0x80) {\n const length = data[offset] - 0x80;\n if (offset + 1 + length > data.length) {\n logger.throwError(\"data too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n const result = hexlify(data.slice(offset + 1, offset + 1 + length));\n return { consumed: (1 + length), result: result };\n }\n return { consumed: 1, result: hexlify(data[offset]) };\n}\nexport function decode(data) {\n const bytes = arrayify(data);\n const decoded = _decode(bytes, 0);\n if (decoded.consumed !== bytes.length) {\n logger.throwArgumentError(\"invalid rlp data\", \"data\", data);\n }\n return decoded.result;\n}\n//# sourceMappingURL=index.js.map","export const version = \"address/5.7.0\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nimport { arrayify, concat, hexDataLength, hexDataSlice, isHexString, stripZeros } from \"@ethersproject/bytes\";\nimport { BigNumber, _base16To36, _base36To16 } from \"@ethersproject/bignumber\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { encode } from \"@ethersproject/rlp\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nfunction getChecksumAddress(address) {\n if (!isHexString(address, 20)) {\n logger.throwArgumentError(\"invalid address\", \"address\", address);\n }\n address = address.toLowerCase();\n const chars = address.substring(2).split(\"\");\n const expanded = new Uint8Array(40);\n for (let i = 0; i < 40; i++) {\n expanded[i] = chars[i].charCodeAt(0);\n }\n const hashed = arrayify(keccak256(expanded));\n for (let i = 0; i < 40; i += 2) {\n if ((hashed[i >> 1] >> 4) >= 8) {\n chars[i] = chars[i].toUpperCase();\n }\n if ((hashed[i >> 1] & 0x0f) >= 8) {\n chars[i + 1] = chars[i + 1].toUpperCase();\n }\n }\n return \"0x\" + chars.join(\"\");\n}\n// Shims for environments that are missing some required constants and functions\nconst MAX_SAFE_INTEGER = 0x1fffffffffffff;\nfunction log10(x) {\n if (Math.log10) {\n return Math.log10(x);\n }\n return Math.log(x) / Math.LN10;\n}\n// See: https://en.wikipedia.org/wiki/International_Bank_Account_Number\n// Create lookup table\nconst ibanLookup = {};\nfor (let i = 0; i < 10; i++) {\n ibanLookup[String(i)] = String(i);\n}\nfor (let i = 0; i < 26; i++) {\n ibanLookup[String.fromCharCode(65 + i)] = String(10 + i);\n}\n// How many decimal digits can we process? (for 64-bit float, this is 15)\nconst safeDigits = Math.floor(log10(MAX_SAFE_INTEGER));\nfunction ibanChecksum(address) {\n address = address.toUpperCase();\n address = address.substring(4) + address.substring(0, 2) + \"00\";\n let expanded = address.split(\"\").map((c) => { return ibanLookup[c]; }).join(\"\");\n // Javascript can handle integers safely up to 15 (decimal) digits\n while (expanded.length >= safeDigits) {\n let block = expanded.substring(0, safeDigits);\n expanded = parseInt(block, 10) % 97 + expanded.substring(block.length);\n }\n let checksum = String(98 - (parseInt(expanded, 10) % 97));\n while (checksum.length < 2) {\n checksum = \"0\" + checksum;\n }\n return checksum;\n}\n;\nexport function getAddress(address) {\n let result = null;\n if (typeof (address) !== \"string\") {\n logger.throwArgumentError(\"invalid address\", \"address\", address);\n }\n if (address.match(/^(0x)?[0-9a-fA-F]{40}$/)) {\n // Missing the 0x prefix\n if (address.substring(0, 2) !== \"0x\") {\n address = \"0x\" + address;\n }\n result = getChecksumAddress(address);\n // It is a checksummed address with a bad checksum\n if (address.match(/([A-F].*[a-f])|([a-f].*[A-F])/) && result !== address) {\n logger.throwArgumentError(\"bad address checksum\", \"address\", address);\n }\n // Maybe ICAP? (we only support direct mode)\n }\n else if (address.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)) {\n // It is an ICAP address with a bad checksum\n if (address.substring(2, 4) !== ibanChecksum(address)) {\n logger.throwArgumentError(\"bad icap checksum\", \"address\", address);\n }\n result = _base36To16(address.substring(4));\n while (result.length < 40) {\n result = \"0\" + result;\n }\n result = getChecksumAddress(\"0x\" + result);\n }\n else {\n logger.throwArgumentError(\"invalid address\", \"address\", address);\n }\n return result;\n}\nexport function isAddress(address) {\n try {\n getAddress(address);\n return true;\n }\n catch (error) { }\n return false;\n}\nexport function getIcapAddress(address) {\n let base36 = _base16To36(getAddress(address).substring(2)).toUpperCase();\n while (base36.length < 30) {\n base36 = \"0\" + base36;\n }\n return \"XE\" + ibanChecksum(\"XE00\" + base36) + base36;\n}\n// http://ethereum.stackexchange.com/questions/760/how-is-the-address-of-an-ethereum-contract-computed\nexport function getContractAddress(transaction) {\n let from = null;\n try {\n from = getAddress(transaction.from);\n }\n catch (error) {\n logger.throwArgumentError(\"missing from address\", \"transaction\", transaction);\n }\n const nonce = stripZeros(arrayify(BigNumber.from(transaction.nonce).toHexString()));\n return getAddress(hexDataSlice(keccak256(encode([from, nonce])), 12));\n}\nexport function getCreate2Address(from, salt, initCodeHash) {\n if (hexDataLength(salt) !== 32) {\n logger.throwArgumentError(\"salt must be 32 bytes\", \"salt\", salt);\n }\n if (hexDataLength(initCodeHash) !== 32) {\n logger.throwArgumentError(\"initCodeHash must be 32 bytes\", \"initCodeHash\", initCodeHash);\n }\n return getAddress(hexDataSlice(keccak256(concat([\"0xff\", getAddress(from), salt, initCodeHash])), 12));\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nimport { getAddress } from \"@ethersproject/address\";\nimport { hexZeroPad } from \"@ethersproject/bytes\";\nimport { Coder } from \"./abstract-coder\";\nexport class AddressCoder extends Coder {\n constructor(localName) {\n super(\"address\", \"address\", localName, false);\n }\n defaultValue() {\n return \"0x0000000000000000000000000000000000000000\";\n }\n encode(writer, value) {\n try {\n value = getAddress(value);\n }\n catch (error) {\n this._throwError(error.message, value);\n }\n return writer.writeValue(value);\n }\n decode(reader) {\n return getAddress(hexZeroPad(reader.readValue().toHexString(), 20));\n }\n}\n//# sourceMappingURL=address.js.map","\"use strict\";\nimport { Coder } from \"./abstract-coder\";\n// Clones the functionality of an existing Coder, but without a localName\nexport class AnonymousCoder extends Coder {\n constructor(coder) {\n super(coder.name, coder.type, undefined, coder.dynamic);\n this.coder = coder;\n }\n defaultValue() {\n return this.coder.defaultValue();\n }\n encode(writer, value) {\n return this.coder.encode(writer, value);\n }\n decode(reader) {\n return this.coder.decode(reader);\n }\n}\n//# sourceMappingURL=anonymous.js.map","\"use strict\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"../_version\";\nconst logger = new Logger(version);\nimport { Coder, Writer } from \"./abstract-coder\";\nimport { AnonymousCoder } from \"./anonymous\";\nexport function pack(writer, coders, values) {\n let arrayValues = null;\n if (Array.isArray(values)) {\n arrayValues = values;\n }\n else if (values && typeof (values) === \"object\") {\n let unique = {};\n arrayValues = coders.map((coder) => {\n const name = coder.localName;\n if (!name) {\n logger.throwError(\"cannot encode object for signature with missing names\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"values\",\n coder: coder,\n value: values\n });\n }\n if (unique[name]) {\n logger.throwError(\"cannot encode object for signature with duplicate names\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"values\",\n coder: coder,\n value: values\n });\n }\n unique[name] = true;\n return values[name];\n });\n }\n else {\n logger.throwArgumentError(\"invalid tuple value\", \"tuple\", values);\n }\n if (coders.length !== arrayValues.length) {\n logger.throwArgumentError(\"types/value length mismatch\", \"tuple\", values);\n }\n let staticWriter = new Writer(writer.wordSize);\n let dynamicWriter = new Writer(writer.wordSize);\n let updateFuncs = [];\n coders.forEach((coder, index) => {\n let value = arrayValues[index];\n if (coder.dynamic) {\n // Get current dynamic offset (for the future pointer)\n let dynamicOffset = dynamicWriter.length;\n // Encode the dynamic value into the dynamicWriter\n coder.encode(dynamicWriter, value);\n // Prepare to populate the correct offset once we are done\n let updateFunc = staticWriter.writeUpdatableValue();\n updateFuncs.push((baseOffset) => {\n updateFunc(baseOffset + dynamicOffset);\n });\n }\n else {\n coder.encode(staticWriter, value);\n }\n });\n // Backfill all the dynamic offsets, now that we know the static length\n updateFuncs.forEach((func) => { func(staticWriter.length); });\n let length = writer.appendWriter(staticWriter);\n length += writer.appendWriter(dynamicWriter);\n return length;\n}\nexport function unpack(reader, coders) {\n let values = [];\n // A reader anchored to this base\n let baseReader = reader.subReader(0);\n coders.forEach((coder) => {\n let value = null;\n if (coder.dynamic) {\n let offset = reader.readValue();\n let offsetReader = baseReader.subReader(offset.toNumber());\n try {\n value = coder.decode(offsetReader);\n }\n catch (error) {\n // Cannot recover from this\n if (error.code === Logger.errors.BUFFER_OVERRUN) {\n throw error;\n }\n value = error;\n value.baseType = coder.name;\n value.name = coder.localName;\n value.type = coder.type;\n }\n }\n else {\n try {\n value = coder.decode(reader);\n }\n catch (error) {\n // Cannot recover from this\n if (error.code === Logger.errors.BUFFER_OVERRUN) {\n throw error;\n }\n value = error;\n value.baseType = coder.name;\n value.name = coder.localName;\n value.type = coder.type;\n }\n }\n if (value != undefined) {\n values.push(value);\n }\n });\n // We only output named properties for uniquely named coders\n const uniqueNames = coders.reduce((accum, coder) => {\n const name = coder.localName;\n if (name) {\n if (!accum[name]) {\n accum[name] = 0;\n }\n accum[name]++;\n }\n return accum;\n }, {});\n // Add any named parameters (i.e. tuples)\n coders.forEach((coder, index) => {\n let name = coder.localName;\n if (!name || uniqueNames[name] !== 1) {\n return;\n }\n if (name === \"length\") {\n name = \"_length\";\n }\n if (values[name] != null) {\n return;\n }\n const value = values[index];\n if (value instanceof Error) {\n Object.defineProperty(values, name, {\n enumerable: true,\n get: () => { throw value; }\n });\n }\n else {\n values[name] = value;\n }\n });\n for (let i = 0; i < values.length; i++) {\n const value = values[i];\n if (value instanceof Error) {\n Object.defineProperty(values, i, {\n enumerable: true,\n get: () => { throw value; }\n });\n }\n }\n return Object.freeze(values);\n}\nexport class ArrayCoder extends Coder {\n constructor(coder, length, localName) {\n const type = (coder.type + \"[\" + (length >= 0 ? length : \"\") + \"]\");\n const dynamic = (length === -1 || coder.dynamic);\n super(\"array\", type, localName, dynamic);\n this.coder = coder;\n this.length = length;\n }\n defaultValue() {\n // Verifies the child coder is valid (even if the array is dynamic or 0-length)\n const defaultChild = this.coder.defaultValue();\n const result = [];\n for (let i = 0; i < this.length; i++) {\n result.push(defaultChild);\n }\n return result;\n }\n encode(writer, value) {\n if (!Array.isArray(value)) {\n this._throwError(\"expected array value\", value);\n }\n let count = this.length;\n if (count === -1) {\n count = value.length;\n writer.writeValue(value.length);\n }\n logger.checkArgumentCount(value.length, count, \"coder array\" + (this.localName ? (\" \" + this.localName) : \"\"));\n let coders = [];\n for (let i = 0; i < value.length; i++) {\n coders.push(this.coder);\n }\n return pack(writer, coders, value);\n }\n decode(reader) {\n let count = this.length;\n if (count === -1) {\n count = reader.readValue().toNumber();\n // Check that there is *roughly* enough data to ensure\n // stray random data is not being read as a length. Each\n // slot requires at least 32 bytes for their value (or 32\n // bytes as a link to the data). This could use a much\n // tighter bound, but we are erroring on the side of safety.\n if (count * 32 > reader._data.length) {\n logger.throwError(\"insufficient data length\", Logger.errors.BUFFER_OVERRUN, {\n length: reader._data.length,\n count: count\n });\n }\n }\n let coders = [];\n for (let i = 0; i < count; i++) {\n coders.push(new AnonymousCoder(this.coder));\n }\n return reader.coerce(this.name, unpack(reader, coders));\n }\n}\n//# sourceMappingURL=array.js.map","\"use strict\";\nimport { Coder } from \"./abstract-coder\";\nexport class BooleanCoder extends Coder {\n constructor(localName) {\n super(\"bool\", \"bool\", localName, false);\n }\n defaultValue() {\n return false;\n }\n encode(writer, value) {\n return writer.writeValue(value ? 1 : 0);\n }\n decode(reader) {\n return reader.coerce(this.type, !reader.readValue().isZero());\n }\n}\n//# sourceMappingURL=boolean.js.map","\"use strict\";\nimport { arrayify, hexlify } from \"@ethersproject/bytes\";\nimport { Coder } from \"./abstract-coder\";\nexport class DynamicBytesCoder extends Coder {\n constructor(type, localName) {\n super(type, type, localName, true);\n }\n defaultValue() {\n return \"0x\";\n }\n encode(writer, value) {\n value = arrayify(value);\n let length = writer.writeValue(value.length);\n length += writer.writeBytes(value);\n return length;\n }\n decode(reader) {\n return reader.readBytes(reader.readValue().toNumber(), true);\n }\n}\nexport class BytesCoder extends DynamicBytesCoder {\n constructor(localName) {\n super(\"bytes\", localName);\n }\n decode(reader) {\n return reader.coerce(this.name, hexlify(super.decode(reader)));\n }\n}\n//# sourceMappingURL=bytes.js.map","\"use strict\";\nimport { arrayify, hexlify } from \"@ethersproject/bytes\";\nimport { Coder } from \"./abstract-coder\";\n// @TODO: Merge this with bytes\nexport class FixedBytesCoder extends Coder {\n constructor(size, localName) {\n let name = \"bytes\" + String(size);\n super(name, name, localName, false);\n this.size = size;\n }\n defaultValue() {\n return (\"0x0000000000000000000000000000000000000000000000000000000000000000\").substring(0, 2 + this.size * 2);\n }\n encode(writer, value) {\n let data = arrayify(value);\n if (data.length !== this.size) {\n this._throwError(\"incorrect data length\", value);\n }\n return writer.writeBytes(data);\n }\n decode(reader) {\n return reader.coerce(this.name, hexlify(reader.readBytes(this.size)));\n }\n}\n//# sourceMappingURL=fixed-bytes.js.map","\"use strict\";\nimport { Coder } from \"./abstract-coder\";\nexport class NullCoder extends Coder {\n constructor(localName) {\n super(\"null\", \"\", localName, false);\n }\n defaultValue() {\n return null;\n }\n encode(writer, value) {\n if (value != null) {\n this._throwError(\"not null\", value);\n }\n return writer.writeBytes([]);\n }\n decode(reader) {\n reader.readBytes(0);\n return reader.coerce(this.name, null);\n }\n}\n//# sourceMappingURL=null.js.map","import { BigNumber } from \"@ethersproject/bignumber\";\nconst NegativeOne = ( /*#__PURE__*/BigNumber.from(-1));\nconst Zero = ( /*#__PURE__*/BigNumber.from(0));\nconst One = ( /*#__PURE__*/BigNumber.from(1));\nconst Two = ( /*#__PURE__*/BigNumber.from(2));\nconst WeiPerEther = ( /*#__PURE__*/BigNumber.from(\"1000000000000000000\"));\nconst MaxUint256 = ( /*#__PURE__*/BigNumber.from(\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"));\nconst MinInt256 = ( /*#__PURE__*/BigNumber.from(\"-0x8000000000000000000000000000000000000000000000000000000000000000\"));\nconst MaxInt256 = ( /*#__PURE__*/BigNumber.from(\"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"));\nexport { NegativeOne, Zero, One, Two, WeiPerEther, MaxUint256, MinInt256, MaxInt256, };\n//# sourceMappingURL=bignumbers.js.map","\"use strict\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { MaxUint256, NegativeOne, One, Zero } from \"@ethersproject/constants\";\nimport { Coder } from \"./abstract-coder\";\nexport class NumberCoder extends Coder {\n constructor(size, signed, localName) {\n const name = ((signed ? \"int\" : \"uint\") + (size * 8));\n super(name, name, localName, false);\n this.size = size;\n this.signed = signed;\n }\n defaultValue() {\n return 0;\n }\n encode(writer, value) {\n let v = BigNumber.from(value);\n // Check bounds are safe for encoding\n let maxUintValue = MaxUint256.mask(writer.wordSize * 8);\n if (this.signed) {\n let bounds = maxUintValue.mask(this.size * 8 - 1);\n if (v.gt(bounds) || v.lt(bounds.add(One).mul(NegativeOne))) {\n this._throwError(\"value out-of-bounds\", value);\n }\n }\n else if (v.lt(Zero) || v.gt(maxUintValue.mask(this.size * 8))) {\n this._throwError(\"value out-of-bounds\", value);\n }\n v = v.toTwos(this.size * 8).mask(this.size * 8);\n if (this.signed) {\n v = v.fromTwos(this.size * 8).toTwos(8 * writer.wordSize);\n }\n return writer.writeValue(v);\n }\n decode(reader) {\n let value = reader.readValue().mask(this.size * 8);\n if (this.signed) {\n value = value.fromTwos(this.size * 8);\n }\n return reader.coerce(this.name, value);\n }\n}\n//# sourceMappingURL=number.js.map","export const version = \"strings/5.7.0\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nimport { arrayify } from \"@ethersproject/bytes\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n///////////////////////////////\nexport var UnicodeNormalizationForm;\n(function (UnicodeNormalizationForm) {\n UnicodeNormalizationForm[\"current\"] = \"\";\n UnicodeNormalizationForm[\"NFC\"] = \"NFC\";\n UnicodeNormalizationForm[\"NFD\"] = \"NFD\";\n UnicodeNormalizationForm[\"NFKC\"] = \"NFKC\";\n UnicodeNormalizationForm[\"NFKD\"] = \"NFKD\";\n})(UnicodeNormalizationForm || (UnicodeNormalizationForm = {}));\n;\nexport var Utf8ErrorReason;\n(function (Utf8ErrorReason) {\n // A continuation byte was present where there was nothing to continue\n // - offset = the index the codepoint began in\n Utf8ErrorReason[\"UNEXPECTED_CONTINUE\"] = \"unexpected continuation byte\";\n // An invalid (non-continuation) byte to start a UTF-8 codepoint was found\n // - offset = the index the codepoint began in\n Utf8ErrorReason[\"BAD_PREFIX\"] = \"bad codepoint prefix\";\n // The string is too short to process the expected codepoint\n // - offset = the index the codepoint began in\n Utf8ErrorReason[\"OVERRUN\"] = \"string overrun\";\n // A missing continuation byte was expected but not found\n // - offset = the index the continuation byte was expected at\n Utf8ErrorReason[\"MISSING_CONTINUE\"] = \"missing continuation byte\";\n // The computed code point is outside the range for UTF-8\n // - offset = start of this codepoint\n // - badCodepoint = the computed codepoint; outside the UTF-8 range\n Utf8ErrorReason[\"OUT_OF_RANGE\"] = \"out of UTF-8 range\";\n // UTF-8 strings may not contain UTF-16 surrogate pairs\n // - offset = start of this codepoint\n // - badCodepoint = the computed codepoint; inside the UTF-16 surrogate range\n Utf8ErrorReason[\"UTF16_SURROGATE\"] = \"UTF-16 surrogate\";\n // The string is an overlong representation\n // - offset = start of this codepoint\n // - badCodepoint = the computed codepoint; already bounds checked\n Utf8ErrorReason[\"OVERLONG\"] = \"overlong representation\";\n})(Utf8ErrorReason || (Utf8ErrorReason = {}));\n;\nfunction errorFunc(reason, offset, bytes, output, badCodepoint) {\n return logger.throwArgumentError(`invalid codepoint at offset ${offset}; ${reason}`, \"bytes\", bytes);\n}\nfunction ignoreFunc(reason, offset, bytes, output, badCodepoint) {\n // If there is an invalid prefix (including stray continuation), skip any additional continuation bytes\n if (reason === Utf8ErrorReason.BAD_PREFIX || reason === Utf8ErrorReason.UNEXPECTED_CONTINUE) {\n let i = 0;\n for (let o = offset + 1; o < bytes.length; o++) {\n if (bytes[o] >> 6 !== 0x02) {\n break;\n }\n i++;\n }\n return i;\n }\n // This byte runs us past the end of the string, so just jump to the end\n // (but the first byte was read already read and therefore skipped)\n if (reason === Utf8ErrorReason.OVERRUN) {\n return bytes.length - offset - 1;\n }\n // Nothing to skip\n return 0;\n}\nfunction replaceFunc(reason, offset, bytes, output, badCodepoint) {\n // Overlong representations are otherwise \"valid\" code points; just non-deistingtished\n if (reason === Utf8ErrorReason.OVERLONG) {\n output.push(badCodepoint);\n return 0;\n }\n // Put the replacement character into the output\n output.push(0xfffd);\n // Otherwise, process as if ignoring errors\n return ignoreFunc(reason, offset, bytes, output, badCodepoint);\n}\n// Common error handing strategies\nexport const Utf8ErrorFuncs = Object.freeze({\n error: errorFunc,\n ignore: ignoreFunc,\n replace: replaceFunc\n});\n// http://stackoverflow.com/questions/13356493/decode-utf-8-with-javascript#13691499\nfunction getUtf8CodePoints(bytes, onError) {\n if (onError == null) {\n onError = Utf8ErrorFuncs.error;\n }\n bytes = arrayify(bytes);\n const result = [];\n let i = 0;\n // Invalid bytes are ignored\n while (i < bytes.length) {\n const c = bytes[i++];\n // 0xxx xxxx\n if (c >> 7 === 0) {\n result.push(c);\n continue;\n }\n // Multibyte; how many bytes left for this character?\n let extraLength = null;\n let overlongMask = null;\n // 110x xxxx 10xx xxxx\n if ((c & 0xe0) === 0xc0) {\n extraLength = 1;\n overlongMask = 0x7f;\n // 1110 xxxx 10xx xxxx 10xx xxxx\n }\n else if ((c & 0xf0) === 0xe0) {\n extraLength = 2;\n overlongMask = 0x7ff;\n // 1111 0xxx 10xx xxxx 10xx xxxx 10xx xxxx\n }\n else if ((c & 0xf8) === 0xf0) {\n extraLength = 3;\n overlongMask = 0xffff;\n }\n else {\n if ((c & 0xc0) === 0x80) {\n i += onError(Utf8ErrorReason.UNEXPECTED_CONTINUE, i - 1, bytes, result);\n }\n else {\n i += onError(Utf8ErrorReason.BAD_PREFIX, i - 1, bytes, result);\n }\n continue;\n }\n // Do we have enough bytes in our data?\n if (i - 1 + extraLength >= bytes.length) {\n i += onError(Utf8ErrorReason.OVERRUN, i - 1, bytes, result);\n continue;\n }\n // Remove the length prefix from the char\n let res = c & ((1 << (8 - extraLength - 1)) - 1);\n for (let j = 0; j < extraLength; j++) {\n let nextChar = bytes[i];\n // Invalid continuation byte\n if ((nextChar & 0xc0) != 0x80) {\n i += onError(Utf8ErrorReason.MISSING_CONTINUE, i, bytes, result);\n res = null;\n break;\n }\n ;\n res = (res << 6) | (nextChar & 0x3f);\n i++;\n }\n // See above loop for invalid continuation byte\n if (res === null) {\n continue;\n }\n // Maximum code point\n if (res > 0x10ffff) {\n i += onError(Utf8ErrorReason.OUT_OF_RANGE, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n // Reserved for UTF-16 surrogate halves\n if (res >= 0xd800 && res <= 0xdfff) {\n i += onError(Utf8ErrorReason.UTF16_SURROGATE, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n // Check for overlong sequences (more bytes than needed)\n if (res <= overlongMask) {\n i += onError(Utf8ErrorReason.OVERLONG, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n result.push(res);\n }\n return result;\n}\n// http://stackoverflow.com/questions/18729405/how-to-convert-utf8-string-to-byte-array\nexport function toUtf8Bytes(str, form = UnicodeNormalizationForm.current) {\n if (form != UnicodeNormalizationForm.current) {\n logger.checkNormalize();\n str = str.normalize(form);\n }\n let result = [];\n for (let i = 0; i < str.length; i++) {\n const c = str.charCodeAt(i);\n if (c < 0x80) {\n result.push(c);\n }\n else if (c < 0x800) {\n result.push((c >> 6) | 0xc0);\n result.push((c & 0x3f) | 0x80);\n }\n else if ((c & 0xfc00) == 0xd800) {\n i++;\n const c2 = str.charCodeAt(i);\n if (i >= str.length || (c2 & 0xfc00) !== 0xdc00) {\n throw new Error(\"invalid utf-8 string\");\n }\n // Surrogate Pair\n const pair = 0x10000 + ((c & 0x03ff) << 10) + (c2 & 0x03ff);\n result.push((pair >> 18) | 0xf0);\n result.push(((pair >> 12) & 0x3f) | 0x80);\n result.push(((pair >> 6) & 0x3f) | 0x80);\n result.push((pair & 0x3f) | 0x80);\n }\n else {\n result.push((c >> 12) | 0xe0);\n result.push(((c >> 6) & 0x3f) | 0x80);\n result.push((c & 0x3f) | 0x80);\n }\n }\n return arrayify(result);\n}\n;\nfunction escapeChar(value) {\n const hex = (\"0000\" + value.toString(16));\n return \"\\\\u\" + hex.substring(hex.length - 4);\n}\nexport function _toEscapedUtf8String(bytes, onError) {\n return '\"' + getUtf8CodePoints(bytes, onError).map((codePoint) => {\n if (codePoint < 256) {\n switch (codePoint) {\n case 8: return \"\\\\b\";\n case 9: return \"\\\\t\";\n case 10: return \"\\\\n\";\n case 13: return \"\\\\r\";\n case 34: return \"\\\\\\\"\";\n case 92: return \"\\\\\\\\\";\n }\n if (codePoint >= 32 && codePoint < 127) {\n return String.fromCharCode(codePoint);\n }\n }\n if (codePoint <= 0xffff) {\n return escapeChar(codePoint);\n }\n codePoint -= 0x10000;\n return escapeChar(((codePoint >> 10) & 0x3ff) + 0xd800) + escapeChar((codePoint & 0x3ff) + 0xdc00);\n }).join(\"\") + '\"';\n}\nexport function _toUtf8String(codePoints) {\n return codePoints.map((codePoint) => {\n if (codePoint <= 0xffff) {\n return String.fromCharCode(codePoint);\n }\n codePoint -= 0x10000;\n return String.fromCharCode((((codePoint >> 10) & 0x3ff) + 0xd800), ((codePoint & 0x3ff) + 0xdc00));\n }).join(\"\");\n}\nexport function toUtf8String(bytes, onError) {\n return _toUtf8String(getUtf8CodePoints(bytes, onError));\n}\nexport function toUtf8CodePoints(str, form = UnicodeNormalizationForm.current) {\n return getUtf8CodePoints(toUtf8Bytes(str, form));\n}\n//# sourceMappingURL=utf8.js.map","\"use strict\";\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\nimport { DynamicBytesCoder } from \"./bytes\";\nexport class StringCoder extends DynamicBytesCoder {\n constructor(localName) {\n super(\"string\", localName);\n }\n defaultValue() {\n return \"\";\n }\n encode(writer, value) {\n return super.encode(writer, toUtf8Bytes(value));\n }\n decode(reader) {\n return toUtf8String(super.decode(reader));\n }\n}\n//# sourceMappingURL=string.js.map","\"use strict\";\nimport { Coder } from \"./abstract-coder\";\nimport { pack, unpack } from \"./array\";\nexport class TupleCoder extends Coder {\n constructor(coders, localName) {\n let dynamic = false;\n const types = [];\n coders.forEach((coder) => {\n if (coder.dynamic) {\n dynamic = true;\n }\n types.push(coder.type);\n });\n const type = (\"tuple(\" + types.join(\",\") + \")\");\n super(\"tuple\", type, localName, dynamic);\n this.coders = coders;\n }\n defaultValue() {\n const values = [];\n this.coders.forEach((coder) => {\n values.push(coder.defaultValue());\n });\n // We only output named properties for uniquely named coders\n const uniqueNames = this.coders.reduce((accum, coder) => {\n const name = coder.localName;\n if (name) {\n if (!accum[name]) {\n accum[name] = 0;\n }\n accum[name]++;\n }\n return accum;\n }, {});\n // Add named values\n this.coders.forEach((coder, index) => {\n let name = coder.localName;\n if (!name || uniqueNames[name] !== 1) {\n return;\n }\n if (name === \"length\") {\n name = \"_length\";\n }\n if (values[name] != null) {\n return;\n }\n values[name] = values[index];\n });\n return Object.freeze(values);\n }\n encode(writer, value) {\n return pack(writer, this.coders, value);\n }\n decode(reader) {\n return reader.coerce(this.name, unpack(reader, this.coders));\n }\n}\n//# sourceMappingURL=tuple.js.map","\"use strict\";\n// See: https://github.com/ethereum/wiki/wiki/Ethereum-Contract-ABI\nimport { arrayify } from \"@ethersproject/bytes\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { Reader, Writer } from \"./coders/abstract-coder\";\nimport { AddressCoder } from \"./coders/address\";\nimport { ArrayCoder } from \"./coders/array\";\nimport { BooleanCoder } from \"./coders/boolean\";\nimport { BytesCoder } from \"./coders/bytes\";\nimport { FixedBytesCoder } from \"./coders/fixed-bytes\";\nimport { NullCoder } from \"./coders/null\";\nimport { NumberCoder } from \"./coders/number\";\nimport { StringCoder } from \"./coders/string\";\nimport { TupleCoder } from \"./coders/tuple\";\nimport { ParamType } from \"./fragments\";\nconst paramTypeBytes = new RegExp(/^bytes([0-9]*)$/);\nconst paramTypeNumber = new RegExp(/^(u?int)([0-9]*)$/);\nexport class AbiCoder {\n constructor(coerceFunc) {\n defineReadOnly(this, \"coerceFunc\", coerceFunc || null);\n }\n _getCoder(param) {\n switch (param.baseType) {\n case \"address\":\n return new AddressCoder(param.name);\n case \"bool\":\n return new BooleanCoder(param.name);\n case \"string\":\n return new StringCoder(param.name);\n case \"bytes\":\n return new BytesCoder(param.name);\n case \"array\":\n return new ArrayCoder(this._getCoder(param.arrayChildren), param.arrayLength, param.name);\n case \"tuple\":\n return new TupleCoder((param.components || []).map((component) => {\n return this._getCoder(component);\n }), param.name);\n case \"\":\n return new NullCoder(param.name);\n }\n // u?int[0-9]*\n let match = param.type.match(paramTypeNumber);\n if (match) {\n let size = parseInt(match[2] || \"256\");\n if (size === 0 || size > 256 || (size % 8) !== 0) {\n logger.throwArgumentError(\"invalid \" + match[1] + \" bit length\", \"param\", param);\n }\n return new NumberCoder(size / 8, (match[1] === \"int\"), param.name);\n }\n // bytes[0-9]+\n match = param.type.match(paramTypeBytes);\n if (match) {\n let size = parseInt(match[1]);\n if (size === 0 || size > 32) {\n logger.throwArgumentError(\"invalid bytes length\", \"param\", param);\n }\n return new FixedBytesCoder(size, param.name);\n }\n return logger.throwArgumentError(\"invalid type\", \"type\", param.type);\n }\n _getWordSize() { return 32; }\n _getReader(data, allowLoose) {\n return new Reader(data, this._getWordSize(), this.coerceFunc, allowLoose);\n }\n _getWriter() {\n return new Writer(this._getWordSize());\n }\n getDefaultValue(types) {\n const coders = types.map((type) => this._getCoder(ParamType.from(type)));\n const coder = new TupleCoder(coders, \"_\");\n return coder.defaultValue();\n }\n encode(types, values) {\n if (types.length !== values.length) {\n logger.throwError(\"types/values length mismatch\", Logger.errors.INVALID_ARGUMENT, {\n count: { types: types.length, values: values.length },\n value: { types: types, values: values }\n });\n }\n const coders = types.map((type) => this._getCoder(ParamType.from(type)));\n const coder = (new TupleCoder(coders, \"_\"));\n const writer = this._getWriter();\n coder.encode(writer, values);\n return writer.data;\n }\n decode(types, data, loose) {\n const coders = types.map((type) => this._getCoder(ParamType.from(type)));\n const coder = new TupleCoder(coders, \"_\");\n return coder.decode(this._getReader(arrayify(data), loose));\n }\n}\nexport const defaultAbiCoder = new AbiCoder();\n//# sourceMappingURL=abi-coder.js.map","import { concat } from \"@ethersproject/bytes\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\nexport const messagePrefix = \"\\x19Ethereum Signed Message:\\n\";\nexport function hashMessage(message) {\n if (typeof (message) === \"string\") {\n message = toUtf8Bytes(message);\n }\n return keccak256(concat([\n toUtf8Bytes(messagePrefix),\n toUtf8Bytes(String(message.length)),\n message\n ]));\n}\n//# sourceMappingURL=message.js.map","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport ContractId from \"./ContractId.js\";\nimport Long from \"long\";\nimport * as protos from \"@hashgraph/proto\";\nconst { proto } = protos;\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.IContractNonceInfo} HashgraphProto.proto.IContractNonceInfo\n * @typedef {import(\"@hashgraph/proto\").proto.IContractID} HashgraphProto.proto.IContractID\n * @typedef {object} ContractNonceInfoJSON\n * @property {string} contractId\n * @property {number} nonce\n */\n\n/**\n * Info about a contract account's nonce value.\n * A nonce of a contract is only incremented when that contract creates another contract.\n */\nexport default class ContractNonceInfo {\n /**\n * @param {object} props\n * @param {ContractId} props.contractId\n * @param {Long} props.nonce\n */\n constructor(props) {\n /**\n * Id of the contract\n *\n * @readonly\n */\n this.contractId = props.contractId;\n\n /**\n * The current value of the contract account's nonce property\n *\n * @readonly\n */\n this.nonce = props.nonce;\n\n Object.freeze(this);\n }\n\n /**\n * Extract the contractNonce from the protobuf.\n *\n * @internal\n * @param {HashgraphProto.proto.IContractNonceInfo} contractNonceInfo the protobuf\n * @returns {ContractNonceInfo} the contract object\n */\n static _fromProtobuf(contractNonceInfo) {\n return new ContractNonceInfo({\n contractId: ContractId._fromProtobuf(\n /** @type {HashgraphProto.proto.IContractID} */ (\n contractNonceInfo.contractId\n ),\n ),\n nonce:\n contractNonceInfo.nonce != null\n ? contractNonceInfo.nonce\n : Long.ZERO,\n });\n }\n\n /**\n * Build the protobuf\n *\n * @internal\n * @returns {HashgraphProto.proto.IContractNonceInfo} the protobuf representation\n */\n _toProtobuf() {\n return {\n contractId: this.contractId._toProtobuf(),\n nonce: this.nonce,\n };\n }\n\n /**\n * Extract the contractNonce from a byte array.\n *\n * @param {Uint8Array} bytes the byte array\n * @returns {ContractNonceInfo} the extracted contract nonce info\n */\n static fromBytes(bytes) {\n return ContractNonceInfo._fromProtobuf(\n proto.ContractNonceInfo.decode(bytes),\n );\n }\n\n /**\n * Create a byte array representation.\n *\n * @returns {Uint8Array} the byte array representation\n */\n toBytes() {\n return proto.ContractNonceInfo.encode(this._toProtobuf()).finish();\n }\n\n /**\n * Create a JSON representation.\n *\n * @returns {ContractNonceInfoJSON} the JSON representation\n */\n toJSON() {\n return {\n contractId: this.contractId.toString(),\n nonce: this.nonce.toNumber(),\n };\n }\n\n /**\n * @returns {string}\n */\n toString() {\n return JSON.stringify(this.toJSON());\n }\n\n /**\n * @param {this} other\n * @returns {boolean}\n */\n equals(other) {\n return (\n this.contractId.equals(other.contractId) &&\n this.nonce.eq(other.nonce)\n );\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport ContractLogInfo from \"./ContractLogInfo.js\";\nimport ContractId from \"./ContractId.js\";\nimport AccountId from \"../account/AccountId.js\";\nimport BigNumber from \"bignumber.js\";\nimport * as hex from \"../encoding/hex.js\";\nimport * as utf8 from \"../encoding/utf8.js\";\nimport * as util from \"../util.js\";\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport { ParamType, defaultAbiCoder } from \"@ethersproject/abi\";\nimport Long from \"long\";\nimport ContractNonceInfo from \"./ContractNonceInfo.js\";\n\n/**\n * @typedef {import(\"./ContractStateChange.js\").default} ContractStateChange\n */\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.IContractFunctionResult} HashgraphProto.proto.IContractFunctionResult\n * @typedef {import(\"@hashgraph/proto\").proto.IContractID} HashgraphProto.proto.IContractID\n */\n\n/**\n * The result returned by a call to a smart contract function. This is part of the response to\n * a ContractCallLocal query, and is in the record for a ContractCall or ContractCreateInstance\n * transaction. The ContractCreateInstance transaction record has the results of the call to\n * the constructor.\n */\nexport default class ContractFunctionResult {\n /**\n * Constructor isn't part of the stable API\n *\n * @param {object} result\n * @param {boolean} result._createResult\n * @param {?ContractId} result.contractId\n * @param {?string} result.errorMessage\n * @param {Uint8Array} result.bloom\n * @param {Long} result.gasUsed\n * @param {ContractLogInfo[]} result.logs\n * @param {ContractId[]} result.createdContractIds\n * @param {Uint8Array | null} result.evmAddress\n * @param {Uint8Array} result.bytes\n * @param {Long} result.gas\n * @param {Long} result.amount\n * @param {Uint8Array} result.functionParameters\n * @param {?AccountId} result.senderAccountId\n * @param {ContractStateChange[]} result.stateChanges\n * @param {ContractNonceInfo[]} result.contractNonces\n * @param {Long | null} result.signerNonce\n */\n constructor(result) {\n /**\n * Determines if this result came from `record.contractCreateResult` if true\n * or `record.contractCallResult` if false\n */\n this._createResult = result._createResult;\n\n /**\n * The smart contract instance whose function was called.\n */\n this.contractId = result.contractId;\n\n this.bytes = result.bytes;\n\n /**\n * Message In case there was an error during smart contract execution.\n */\n this.errorMessage = result.errorMessage;\n\n /**\n * Bloom filter for record\n */\n this.bloom = result.bloom;\n\n /**\n * Units of gas used to execute contract.\n */\n this.gasUsed = result.gasUsed;\n\n /**\n * The log info for events returned by the function.\n */\n this.logs = result.logs;\n\n /**\n * @deprecated the list of smart contracts that were created by the function call.\n *\n * The created ids will now _also_ be externalized through internal transaction\n * records, where each record has its alias field populated with the new contract's\n * EVM address. (This is needed for contracts created with CREATE2, since\n * there is no longer a simple relationship between the new contract's 0.0.X id\n * and its Solidity address.)\n */\n // eslint-disable-next-line deprecation/deprecation\n this.createdContractIds = result.createdContractIds;\n\n this.evmAddress = result.evmAddress;\n\n /**\n * @deprecated - Use mirror node for contract traceability instead\n */\n // eslint-disable-next-line deprecation/deprecation\n this.stateChanges = result.stateChanges;\n\n /**\n * The amount of gas available for the call, aka the gasLimit.\n */\n this.gas = result.gas;\n\n /**\n * Number of tinybars sent (the function must be payable if this is nonzero).\n */\n this.amount = result.amount;\n\n /**\n * The parameters passed into the contract call.\n */\n this.functionParameters = result.functionParameters;\n\n /**\n * The account that is the \"sender.\" If not present it is the accountId from the transactionId.\n *\n * This field should only be populated when the paired TransactionBody in the record stream is not a\n * ContractCreateTransactionBody or a ContractCallTransactionBody.\n */\n this.senderAccountId = result.senderAccountId;\n\n /**\n * A list of updated contract account nonces containing the new nonce value for each contract account.\n * This is always empty in a ContractCallLocalResponse#ContractFunctionResult message, since no internal creations can happen in a static EVM call.\n */\n this.contractNonces = result.contractNonces;\n\n /**\n * If not null this field specifies what the value of the signer account nonce is post transaction execution.\n * For transactions that don't update the signer nonce (like HAPI ContractCall and ContractCreate transactions) this field should be null.\n */\n this.signerNonce = result.signerNonce;\n }\n\n /**\n * @param {HashgraphProto.proto.IContractFunctionResult} result\n * @param {boolean} _createResult\n * @returns {ContractFunctionResult}\n */\n static _fromProtobuf(result, _createResult) {\n const contractId =\n /** @type {HashgraphProto.proto.IContractID | null} */ (\n result.contractID\n );\n const gasUsed = /** @type {Long} */ (result.gasUsed);\n const gas = /** @type {Long} */ (result.gas ? result.gas : -1);\n const amount = /** @type {Long} */ (result.amount ? result.amount : -1);\n\n return new ContractFunctionResult({\n _createResult,\n bytes: /** @type {Uint8Array} */ (result.contractCallResult),\n contractId:\n contractId != null\n ? ContractId._fromProtobuf(contractId)\n : null,\n errorMessage:\n result.errorMessage != null ? result.errorMessage : null,\n bloom: /** @type {Uint8Array} */ (result.bloom),\n gasUsed:\n gasUsed instanceof Long ? gasUsed : Long.fromValue(gasUsed),\n logs: (result.logInfo != null ? result.logInfo : []).map((info) =>\n ContractLogInfo._fromProtobuf(info),\n ),\n createdContractIds: (result.createdContractIDs != null\n ? result.createdContractIDs\n : []\n ).map((contractId) => ContractId._fromProtobuf(contractId)),\n evmAddress:\n result.evmAddress != null &&\n Object.hasOwn(result.evmAddress, \"value\") &&\n result.evmAddress.value != null\n ? result.evmAddress.value\n : null,\n stateChanges: [],\n gas: gas instanceof Long ? gas : Long.fromValue(gas),\n amount: amount instanceof Long ? amount : Long.fromValue(amount),\n functionParameters: /** @type {Uint8Array} */ (\n result.functionParameters\n ),\n senderAccountId:\n result.senderId != null\n ? AccountId._fromProtobuf(result.senderId)\n : null,\n contractNonces: (result.contractNonces != null\n ? result.contractNonces\n : []\n ).map((contractNonce) =>\n ContractNonceInfo._fromProtobuf(contractNonce),\n ),\n signerNonce:\n result.signerNonce != null\n ? Object.hasOwn(result.signerNonce, \"value\")\n ? result.signerNonce.value || null\n : null\n : null,\n });\n }\n\n /**\n * @returns {Uint8Array}\n */\n asBytes() {\n return this.bytes;\n }\n\n /**\n * @param {number} [index]\n * @returns {string}\n */\n getString(index) {\n return utf8.decode(this.getBytes(index));\n }\n\n /**\n * @private\n * @param {number} [index]\n * @returns {Uint8Array}\n */\n getBytes(index) {\n // Len should never be larger than Number.MAX\n // index * 32 is the position of the lenth\n // (index + 1) * 32 onward to (index + 1) * 32 + len will be the elements of the array\n // Arrays in solidity cannot be longer than 1024:\n // https://solidity.readthedocs.io/en/v0.4.21/introduction-to-smart-contracts.html\n const offset = this.getInt32(index);\n const len = util.safeView(this.bytes).getInt32(offset + 28);\n\n return this.bytes.subarray(offset + 32, offset + 32 + len);\n }\n\n /**\n * @param {number} [index]\n * @returns {Uint8Array}\n */\n getBytes32(index) {\n return this.bytes.subarray(\n (index != null ? index : 0) * 32,\n (index != null ? index : 0) * 32 + 32,\n );\n }\n\n /**\n * @param {number} [index]\n * @returns {boolean}\n */\n getBool(index) {\n return this.bytes[(index != null ? index : 0) * 32 + 31] !== 0;\n }\n\n /**\n * @param {number} [index]\n * @returns {number}\n */\n getInt8(index) {\n const position = (index != null ? index : 0) * 32 + 31;\n return util.safeView(this.bytes).getInt8(position);\n }\n\n /**\n * @param {number} [index]\n * @returns {number}\n */\n getUint8(index) {\n return this.bytes[(index != null ? index : 0) * 32 + 31];\n }\n\n /**\n * @param {number} [index]\n * @returns {number}\n */\n getInt16(index) {\n // .getInt32() interprets as big-endian\n // Using DataView instead of Uint32Array because the latter interprets\n // using platform endianness which is little-endian on x86\n const position = (index != null ? index : 0) * 32 + 28;\n return util.safeView(this.bytes).getInt32(position);\n }\n\n /**\n * @param {number} [index]\n * @returns {number}\n */\n getUint16(index) {\n // .getUint32() interprets as big-endian\n // Using DataView instead of Uint32Array because the latter interprets\n // using platform endianness which is little-endian on x86\n const position = (index != null ? index : 0) * 32 + 28;\n return util.safeView(this.bytes).getUint32(position);\n }\n\n /**\n * @param {number} [index]\n * @returns {number}\n */\n getInt24(index) {\n // .getInt32() interprets as big-endian\n // Using DataView instead of Uint32Array because the latter interprets\n // using platform endianness which is little-endian on x86\n const position = (index != null ? index : 0) * 32 + 28;\n return util.safeView(this.bytes).getInt32(position);\n }\n\n /**\n * @param {number} [index]\n * @returns {number}\n */\n getUint24(index) {\n // .getUint32() interprets as big-endian\n // Using DataView instead of Uint32Array because the latter interprets\n // using platform endianness which is little-endian on x86\n const position = (index != null ? index : 0) * 32 + 28;\n return util.safeView(this.bytes).getUint32(position);\n }\n\n /**\n * @param {number} [index]\n * @returns {number}\n */\n getInt32(index) {\n // .getInt32() interprets as big-endian\n // Using DataView instead of Uint32Array because the latter interprets\n // using platform endianness which is little-endian on x86\n const position = (index != null ? index : 0) * 32 + 28;\n return util.safeView(this.bytes).getInt32(position);\n }\n\n /**\n * @param {number} [index]\n * @returns {number}\n */\n getUint32(index) {\n // .getUint32() interprets as big-endian\n // Using DataView instead of Uint32Array because the latter interprets\n // using platform endianness which is little-endian on x86\n const position = (index != null ? index : 0) * 32 + 28;\n return util.safeView(this.bytes).getUint32(position);\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getInt40(index) {\n const result = defaultAbiCoder.decode(\n [\"int40\"],\n this._getBytes32(index != null ? index : 0),\n );\n return new BigNumber(result.toString());\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getUint40(index) {\n return new BigNumber(\n hex.encode(this._getBytes32(index).subarray(27, 32)),\n 16,\n );\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getInt48(index) {\n const result = defaultAbiCoder.decode(\n [\"int48\"],\n this._getBytes32(index != null ? index : 0),\n );\n return new BigNumber(result.toString());\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getUint48(index) {\n return new BigNumber(\n hex.encode(this._getBytes32(index).subarray(26, 32)),\n 16,\n );\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getInt56(index) {\n const result = defaultAbiCoder.decode(\n [\"int56\"],\n this._getBytes32(index != null ? index : 0),\n );\n return new BigNumber(result.toString());\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getUint56(index) {\n return new BigNumber(\n hex.encode(this._getBytes32(index).subarray(25, 32)),\n 16,\n );\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getInt64(index) {\n const result = defaultAbiCoder.decode(\n [\"int64\"],\n this._getBytes32(index != null ? index : 0),\n );\n return new BigNumber(result.toString());\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getUint64(index) {\n return new BigNumber(\n hex.encode(this._getBytes32(index).subarray(24, 32)),\n 16,\n );\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getInt72(index) {\n const result = defaultAbiCoder.decode(\n [\"int72\"],\n this._getBytes32(index != null ? index : 0),\n );\n return new BigNumber(result.toString());\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getUint72(index) {\n return new BigNumber(\n hex.encode(this._getBytes32(index).subarray(23, 32)),\n 16,\n );\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getInt80(index) {\n const result = defaultAbiCoder.decode(\n [\"int80\"],\n this._getBytes32(index != null ? index : 0),\n );\n return new BigNumber(result.toString());\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getUint80(index) {\n return new BigNumber(\n hex.encode(this._getBytes32(index).subarray(22, 32)),\n 16,\n );\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getInt88(index) {\n const result = defaultAbiCoder.decode(\n [\"int88\"],\n this._getBytes32(index != null ? index : 0),\n );\n return new BigNumber(result.toString());\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getUint88(index) {\n return new BigNumber(\n hex.encode(this._getBytes32(index).subarray(21, 32)),\n 16,\n );\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getInt96(index) {\n const result = defaultAbiCoder.decode(\n [\"int96\"],\n this._getBytes32(index != null ? index : 0),\n );\n return new BigNumber(result.toString());\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getUint96(index) {\n return new BigNumber(\n hex.encode(this._getBytes32(index).subarray(20, 32)),\n 16,\n );\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getInt104(index) {\n const result = defaultAbiCoder.decode(\n [\"int104\"],\n this._getBytes32(index != null ? index : 0),\n );\n return new BigNumber(result.toString());\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getUint104(index) {\n return new BigNumber(\n hex.encode(this._getBytes32(index).subarray(19, 32)),\n 16,\n );\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getInt112(index) {\n const result = defaultAbiCoder.decode(\n [\"int112\"],\n this._getBytes32(index != null ? index : 0),\n );\n return new BigNumber(result.toString());\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getUint112(index) {\n return new BigNumber(\n hex.encode(this._getBytes32(index).subarray(18, 32)),\n 16,\n );\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getInt120(index) {\n const result = defaultAbiCoder.decode(\n [\"int120\"],\n this._getBytes32(index != null ? index : 0),\n );\n return new BigNumber(result.toString());\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getUint120(index) {\n return new BigNumber(\n hex.encode(this._getBytes32(index).subarray(17, 32)),\n 16,\n );\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getInt128(index) {\n const result = defaultAbiCoder.decode(\n [\"int128\"],\n this._getBytes32(index != null ? index : 0),\n );\n return new BigNumber(result.toString());\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getUint128(index) {\n return new BigNumber(\n hex.encode(this._getBytes32(index).subarray(16, 32)),\n 16,\n );\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getInt136(index) {\n const result = defaultAbiCoder.decode(\n [\"int136\"],\n this._getBytes32(index != null ? index : 0),\n );\n return new BigNumber(result.toString());\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getUint136(index) {\n return new BigNumber(\n hex.encode(this._getBytes32(index).subarray(15, 32)),\n 16,\n );\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getInt144(index) {\n const result = defaultAbiCoder.decode(\n [\"int144\"],\n this._getBytes32(index != null ? index : 0),\n );\n return new BigNumber(result.toString());\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getUint144(index) {\n return new BigNumber(\n hex.encode(this._getBytes32(index).subarray(14, 32)),\n 16,\n );\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getInt152(index) {\n const result = defaultAbiCoder.decode(\n [\"int152\"],\n this._getBytes32(index != null ? index : 0),\n );\n return new BigNumber(result.toString());\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getUint152(index) {\n return new BigNumber(\n hex.encode(this._getBytes32(index).subarray(13, 32)),\n 16,\n );\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getInt160(index) {\n const result = defaultAbiCoder.decode(\n [\"int160\"],\n this._getBytes32(index != null ? index : 0),\n );\n return new BigNumber(result.toString());\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getUint160(index) {\n return new BigNumber(\n hex.encode(this._getBytes32(index).subarray(12, 32)),\n 16,\n );\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getInt168(index) {\n const result = defaultAbiCoder.decode(\n [\"int168\"],\n this._getBytes32(index != null ? index : 0),\n );\n return new BigNumber(result.toString());\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getUint168(index) {\n return new BigNumber(\n hex.encode(this._getBytes32(index).subarray(11, 32)),\n 16,\n );\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getInt176(index) {\n const result = defaultAbiCoder.decode(\n [\"int176\"],\n this._getBytes32(index != null ? index : 0),\n );\n return new BigNumber(result.toString());\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getUint176(index) {\n return new BigNumber(\n hex.encode(this._getBytes32(index).subarray(10, 32)),\n 16,\n );\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getInt184(index) {\n const result = defaultAbiCoder.decode(\n [\"int184\"],\n this._getBytes32(index != null ? index : 0),\n );\n return new BigNumber(result.toString());\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getUint184(index) {\n return new BigNumber(\n hex.encode(this._getBytes32(index).subarray(9, 32)),\n 16,\n );\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getInt192(index) {\n const result = defaultAbiCoder.decode(\n [\"int192\"],\n this._getBytes32(index != null ? index : 0),\n );\n return new BigNumber(result.toString());\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getUint192(index) {\n return new BigNumber(\n hex.encode(this._getBytes32(index).subarray(8, 32)),\n 16,\n );\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getInt200(index) {\n const result = defaultAbiCoder.decode(\n [\"int200\"],\n this._getBytes32(index != null ? index : 0),\n );\n return new BigNumber(result.toString());\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getUint200(index) {\n return new BigNumber(\n hex.encode(this._getBytes32(index).subarray(7, 32)),\n 16,\n );\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getInt208(index) {\n const result = defaultAbiCoder.decode(\n [\"int208\"],\n this._getBytes32(index != null ? index : 0),\n );\n return new BigNumber(result.toString());\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getUint208(index) {\n return new BigNumber(\n hex.encode(this._getBytes32(index).subarray(6, 32)),\n 16,\n );\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getInt216(index) {\n const result = defaultAbiCoder.decode(\n [\"int216\"],\n this._getBytes32(index != null ? index : 0),\n );\n return new BigNumber(result.toString());\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getUint216(index) {\n return new BigNumber(\n hex.encode(this._getBytes32(index).subarray(5, 32)),\n 16,\n );\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getInt224(index) {\n const result = defaultAbiCoder.decode(\n [\"int224\"],\n this._getBytes32(index != null ? index : 0),\n );\n return new BigNumber(result.toString());\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getUint224(index) {\n return new BigNumber(\n hex.encode(this._getBytes32(index).subarray(4, 32)),\n 16,\n );\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getInt232(index) {\n const result = defaultAbiCoder.decode(\n [\"int232\"],\n this._getBytes32(index != null ? index : 0),\n );\n return new BigNumber(result.toString());\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getUint232(index) {\n return new BigNumber(\n hex.encode(this._getBytes32(index).subarray(3, 32)),\n 16,\n );\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getInt240(index) {\n const result = defaultAbiCoder.decode(\n [\"int240\"],\n this._getBytes32(index != null ? index : 0),\n );\n return new BigNumber(result.toString());\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getUint240(index) {\n return new BigNumber(\n hex.encode(this._getBytes32(index).subarray(2, 32)),\n 16,\n );\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getInt248(index) {\n const result = defaultAbiCoder.decode(\n [\"int248\"],\n this._getBytes32(index != null ? index : 0),\n );\n return new BigNumber(result.toString());\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getUint248(index) {\n return new BigNumber(\n hex.encode(this._getBytes32(index).subarray(1, 32)),\n 16,\n );\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getInt256(index) {\n const result = defaultAbiCoder.decode(\n [\"int256\"],\n this._getBytes32(index != null ? index : 0),\n );\n return new BigNumber(result.toString());\n }\n\n /**\n * @param {number} [index]\n * @returns {BigNumber}\n */\n getUint256(index) {\n return new BigNumber(hex.encode(this._getBytes32(index)), 16);\n }\n\n /**\n * @param {number} [index]\n * @returns {string}\n */\n getAddress(index) {\n return hex.encode(\n this.bytes.subarray(\n (index != null ? index : 0) * 32 + 12,\n (index != null ? index : 0) * 32 + 32,\n ),\n );\n }\n\n /**\n * @description Decode the data according to the array of types, each of which may be a string or ParamType.\n * @param {Array} types\n * @returns {string | any}\n */\n getResult(types) {\n return defaultAbiCoder.decode(types, this.bytes);\n }\n\n /**\n * @param {number} [index]\n * @returns {Uint8Array}\n */\n _getBytes32(index) {\n return this.bytes.subarray(\n (index != null ? index : 0) * 32,\n (index != null ? index : 0) * 32 + 32,\n );\n }\n\n /**\n * @returns {HashgraphProto.proto.IContractFunctionResult}\n */\n _toProtobuf() {\n return {\n contractID:\n this.contractId != null ? this.contractId._toProtobuf() : null,\n contractCallResult: this.bytes,\n errorMessage: this.errorMessage,\n bloom: this.bloom,\n gasUsed: this.gasUsed,\n logInfo: this.logs.map((log) => log._toProtobuf()),\n // eslint-disable-next-line deprecation/deprecation\n createdContractIDs: this.createdContractIds.map((id) =>\n id._toProtobuf(),\n ),\n evmAddress:\n this.evmAddress != null\n ? {\n value: this.evmAddress,\n }\n : null,\n gas: this.gas,\n amount: this.amount,\n functionParameters: this.functionParameters,\n senderId:\n this.senderAccountId != null\n ? this.senderAccountId._toProtobuf()\n : null,\n contractNonces: this.contractNonces.map((contractNonce) =>\n contractNonce._toProtobuf(),\n ),\n signerNonce:\n this.signerNonce != null\n ? {\n value: this.signerNonce,\n }\n : null,\n };\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport AccountId from \"../account/AccountId.js\";\nimport ObjectMap from \"../ObjectMap.js\";\n\n/**\n * @augments {ObjectMap}\n */\nexport default class TokenTransferAccountMap extends ObjectMap {\n constructor() {\n super((s) => AccountId.fromString(s));\n }\n\n toJSON() {\n const obj = {};\n\n this._map.forEach((value, key) => {\n // @ts-ignore\n obj[key] = value.toString();\n });\n\n return obj;\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport TokenId from \"../token/TokenId.js\";\nimport AccountId from \"../account/AccountId.js\";\nimport TokenTransferAccountMap from \"./TokenTransferAccountMap.js\";\nimport ObjectMap from \"../ObjectMap.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenTransferList} HashgraphProto.proto.ITokenTransferList\n * @typedef {import(\"@hashgraph/proto\").proto.IAccountAmount} HashgraphProto.proto.IAccountAmount\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenID} HashgraphProto.proto.ITokenID\n * @typedef {import(\"@hashgraph/proto\").proto.IAccountID} HashgraphProto.proto.IAccountID\n */\n\n/**\n * @augments {ObjectMap}\n */\nexport default class TokenTransferMap extends ObjectMap {\n constructor() {\n super((s) => TokenId.fromString(s));\n }\n\n /**\n * @internal\n * @param {TokenId} tokenId\n * @param {AccountId} accountId\n * @param {Long} amount\n */\n __set(tokenId, accountId, amount) {\n const token = tokenId.toString();\n\n let _map = this._map.get(token);\n if (_map == null) {\n _map = new TokenTransferAccountMap();\n this._map.set(token, _map);\n this.__map.set(tokenId, _map);\n }\n\n _map._set(accountId, amount);\n }\n\n /**\n * @param {HashgraphProto.proto.ITokenTransferList[]} transfers\n * @returns {TokenTransferMap}\n */\n static _fromProtobuf(transfers) {\n const tokenTransfersMap = new TokenTransferMap();\n\n for (const transfer of transfers) {\n const token = TokenId._fromProtobuf(\n /** @type {HashgraphProto.proto.ITokenID} */ (transfer.token),\n );\n\n for (const aa of transfer.transfers != null\n ? transfer.transfers\n : []) {\n const account = AccountId._fromProtobuf(\n /** @type {HashgraphProto.proto.IAccountID} */ (\n aa.accountID\n ),\n );\n\n tokenTransfersMap.__set(\n token,\n account,\n /** @type {Long} */ (aa.amount),\n );\n }\n }\n\n return tokenTransfersMap;\n }\n\n /**\n * @returns {HashgraphProto.proto.ITokenTransferList[]}\n */\n _toProtobuf() {\n /** @type {HashgraphProto.proto.ITokenTransferList[]} */\n const tokenTransferList = [];\n\n for (const [tokenId, value] of this) {\n /** @type {HashgraphProto.proto.IAccountAmount[]} */\n const transfers = [];\n\n for (const [accountId, amount] of value) {\n transfers.push({\n accountID: accountId._toProtobuf(),\n amount: amount,\n });\n }\n\n tokenTransferList.push({\n token: tokenId._toProtobuf(),\n transfers: transfers,\n });\n }\n\n return tokenTransferList;\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Long from \"long\";\nimport TokenId from \"../token/TokenId.js\";\nimport AccountId from \"../account/AccountId.js\";\nimport ObjectMap from \"../ObjectMap.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenTransferList} HashgraphProto.proto.ITokenTransferList\n * @typedef {import(\"@hashgraph/proto\").proto.INftTransfer} HashgraphProto.proto.INftTransfer\n * @typedef {import(\"@hashgraph/proto\").proto.IAccountAmount} HashgraphProto.proto.IAccountAmount\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenID} HashgraphProto.proto.ITokenID\n * @typedef {import(\"@hashgraph/proto\").proto.IAccountID} HashgraphProto.proto.IAccountID\n */\n\n/**\n * @typedef {object} NftTransfer\n * @property {AccountId} sender\n * @property {AccountId} recipient\n * @property {Long} serial\n * @property {boolean} isApproved\n */\n\n/**\n * @augments {ObjectMap}\n */\nexport default class TokenNftTransferMap extends ObjectMap {\n constructor() {\n super((s) => TokenId.fromString(s));\n }\n\n /**\n * @internal\n * @param {TokenId} tokenId\n * @param {NftTransfer} nftTransfer\n */\n __set(tokenId, nftTransfer) {\n const token = tokenId.toString();\n\n let _map = this._map.get(token);\n if (_map == null) {\n _map = [];\n this._map.set(token, _map);\n this.__map.set(tokenId, _map);\n }\n\n _map.push(nftTransfer);\n }\n\n /**\n * @param {HashgraphProto.proto.ITokenTransferList[]} transfers\n * @returns {TokenNftTransferMap}\n */\n static _fromProtobuf(transfers) {\n const tokenTransfersMap = new TokenNftTransferMap();\n\n for (const transfer of transfers) {\n const token = TokenId._fromProtobuf(\n /** @type {HashgraphProto.proto.ITokenID} */ (transfer.token),\n );\n\n for (const aa of transfer.nftTransfers != null\n ? transfer.nftTransfers\n : []) {\n const sender = AccountId._fromProtobuf(\n /** @type {HashgraphProto.proto.IAccountID} */ (\n aa.senderAccountID\n ),\n );\n const recipient = AccountId._fromProtobuf(\n /** @type {HashgraphProto.proto.IAccountID} */ (\n aa.receiverAccountID\n ),\n );\n\n tokenTransfersMap.__set(token, {\n sender,\n recipient,\n serial: Long.fromValue(\n /** @type {Long} */ (aa.serialNumber),\n ),\n isApproved: false,\n });\n }\n }\n\n return tokenTransfersMap;\n }\n\n /**\n * @returns {HashgraphProto.proto.ITokenTransferList[]}\n */\n _toProtobuf() {\n /** @type {HashgraphProto.proto.ITokenTransferList[]} */\n const tokenTransferList = [];\n\n for (const [tokenId, value] of this) {\n /** @type {HashgraphProto.proto.INftTransfer[]} */\n const transfers = [];\n\n for (const transfer of value) {\n transfers.push({\n senderAccountID: transfer.sender._toProtobuf(),\n receiverAccountID: transfer.recipient._toProtobuf(),\n serialNumber: transfer.serial,\n });\n }\n\n tokenTransferList.push({\n token: tokenId._toProtobuf(),\n nftTransfers: transfers,\n });\n }\n\n return tokenTransferList;\n }\n\n toJSON() {\n const obj = {};\n\n this._map.forEach((value, key) => {\n // @ts-ignore\n obj[key] = value.map((nftTransfer) => ({\n sender: nftTransfer.sender.toString(),\n recipient: nftTransfer.recipient.toString(),\n serial: nftTransfer.serial,\n isApproved: nftTransfer.isApproved,\n }));\n });\n\n return obj;\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport TokenId from \"./TokenId.js\";\nimport AccountId from \"../account/AccountId.js\";\nimport Long from \"long\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.IAssessedCustomFee} HashgraphProto.proto.IAssessedCustomFee\n */\n\n/**\n * @typedef {object} AssessedCustomFeeJSON\n * @property {?string} feeCollectorAccountId\n * @property {?string} tokenId\n * @property {?string} amount\n * @property {string[]} payerAccountIds\n */\n\nexport default class AssessedCustomFee {\n /**\n * @param {object} props\n * @param {AccountId | string} [props.feeCollectorAccountId]\n * @param {TokenId | string} [props.tokenId]\n * @param {Long | number} [props.amount]\n * @param {AccountId[]} [props.payerAccountIds]\n */\n constructor(props = {}) {\n /**\n * @type {?AccountId}\n */\n this._feeCollectorAccountId = null;\n\n if (props.feeCollectorAccountId != null) {\n this.setFeeCollectorAccountId(props.feeCollectorAccountId);\n }\n\n /**\n * @type {?TokenId}\n */\n this._tokenId = null;\n\n if (props.tokenId != null) {\n this.setTokenId(props.tokenId);\n }\n\n /**\n * @type {?Long}\n */\n this._amount = null;\n\n if (props.amount != null) {\n this.setAmount(props.amount);\n }\n\n /**\n * @type {?AccountId[]}\n */\n this._payerAccountIds = null;\n\n if (props.payerAccountIds != null) {\n this.setPayerAccountIds(props.payerAccountIds);\n }\n }\n\n /**\n * @returns {?AccountId}\n */\n get feeCollectorAccountId() {\n return this._feeCollectorAccountId;\n }\n\n /**\n * @param {AccountId | string} feeCollectorAccountId\n * @returns {this}\n */\n setFeeCollectorAccountId(feeCollectorAccountId) {\n this._feeCollectorAccountId =\n typeof feeCollectorAccountId === \"string\"\n ? AccountId.fromString(feeCollectorAccountId)\n : feeCollectorAccountId;\n return this;\n }\n\n /**\n * @returns {?TokenId}\n */\n get tokenId() {\n return this._tokenId;\n }\n\n /**\n * @param {TokenId | string} tokenId\n * @returns {this}\n */\n setTokenId(tokenId) {\n this._tokenId =\n typeof tokenId === \"string\" ? TokenId.fromString(tokenId) : tokenId;\n return this;\n }\n\n /**\n * @returns {?Long}\n */\n get amount() {\n return this._amount;\n }\n\n /**\n * @param {Long | number} amount\n * @returns {AssessedCustomFee}\n */\n setAmount(amount) {\n this._amount =\n typeof amount === \"number\" ? Long.fromNumber(amount) : amount;\n return this;\n }\n\n /**\n * @returns {?AccountId[]}\n */\n get payerAccountIds() {\n return this._payerAccountIds;\n }\n\n /**\n * @param {AccountId[]} payerAccountIds\n * @returns {AssessedCustomFee}\n */\n setPayerAccountIds(payerAccountIds) {\n this._payerAccountIds = payerAccountIds;\n return this;\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.IAssessedCustomFee} fee\n * @returns {AssessedCustomFee}\n */\n static _fromProtobuf(fee) {\n return new AssessedCustomFee({\n feeCollectorAccountId:\n fee.feeCollectorAccountId != null\n ? AccountId._fromProtobuf(fee.feeCollectorAccountId)\n : undefined,\n tokenId:\n fee.tokenId != null\n ? TokenId._fromProtobuf(fee.tokenId)\n : undefined,\n amount: fee.amount != null ? fee.amount : undefined,\n payerAccountIds:\n fee.effectivePayerAccountId != null\n ? fee.effectivePayerAccountId.map((id) =>\n AccountId._fromProtobuf(id),\n )\n : undefined,\n });\n }\n\n /**\n * @internal\n * @abstract\n * @returns {HashgraphProto.proto.IAssessedCustomFee}\n */\n _toProtobuf() {\n return {\n feeCollectorAccountId:\n this.feeCollectorAccountId != null\n ? this.feeCollectorAccountId._toProtobuf()\n : null,\n tokenId: this._tokenId != null ? this._tokenId._toProtobuf() : null,\n amount: this._amount,\n effectivePayerAccountId:\n this._payerAccountIds != null\n ? this._payerAccountIds.map((id) => id._toProtobuf())\n : null,\n };\n }\n\n /**\n * @returns {AssessedCustomFeeJSON}\n */\n toJSON() {\n return {\n feeCollectorAccountId:\n this.feeCollectorAccountId?.toString() || null,\n tokenId: this._tokenId?.toString() || null,\n amount: this._amount?.toString() || null,\n payerAccountIds:\n this._payerAccountIds?.map((id) => id.toString()) || [],\n };\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport AccountId from \"../account/AccountId.js\";\nimport TokenId from \"../token/TokenId.js\";\nimport Hbar from \"../Hbar.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenAssociation} HashgraphProto.proto.ITokenAssociation\n */\n\n/**\n * @typedef {object} TokenAssociationJSON\n * @property {?string} accountId\n * @property {?string} tokenId\n */\n\nexport default class TokenAssociation {\n /**\n * @param {object} props\n * @param {AccountId | string} [props.accountId]\n * @param {TokenId | string} [props.tokenId]\n */\n constructor(props = {}) {\n /**\n * @type {?AccountId}\n */\n this._accountId = null;\n\n if (props.accountId != null) {\n this.setAccountId(props.accountId);\n }\n\n /**\n * @type {?TokenId}\n */\n this._tokenId = null;\n\n if (props.tokenId != null) {\n this.setTokenId(props.tokenId);\n }\n\n this._defaultMaxTransactionFee = new Hbar(5);\n }\n\n /**\n * @returns {?AccountId}\n */\n get accountId() {\n return this._accountId;\n }\n\n /**\n * @param {AccountId | string} accountId\n * @returns {this}\n */\n setAccountId(accountId) {\n this._accountId =\n typeof accountId === \"string\"\n ? AccountId.fromString(accountId)\n : accountId;\n return this;\n }\n\n /**\n * @returns {?TokenId}\n */\n get tokenId() {\n return this._tokenId;\n }\n\n /**\n * @param {TokenId | string} tokenId\n * @returns {this}\n */\n setTokenId(tokenId) {\n this._tokenId =\n typeof tokenId === \"string\" ? TokenId.fromString(tokenId) : tokenId;\n return this;\n }\n\n /**\n * @internal\n * @abstract\n * @param {HashgraphProto.proto.ITokenAssociation} association\n * @returns {TokenAssociation}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n static _fromProtobuf(association) {\n return new TokenAssociation({\n accountId:\n association.accountId != null\n ? AccountId._fromProtobuf(association.accountId)\n : undefined,\n tokenId:\n association.tokenId != null\n ? TokenId._fromProtobuf(association.tokenId)\n : undefined,\n });\n }\n\n /**\n * @internal\n * @abstract\n * @returns {HashgraphProto.proto.ITokenAssociation}\n */\n _toProtobuf() {\n return {\n accountId:\n this._accountId != null\n ? this._accountId._toProtobuf()\n : undefined,\n tokenId:\n this._tokenId != null ? this._tokenId._toProtobuf() : undefined,\n };\n }\n\n /**\n * @returns {TokenAssociationJSON}\n */\n toJSON() {\n return {\n accountId: this._accountId?.toString() || null,\n tokenId: this._tokenId?.toString() || null,\n };\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Long from \"long\";\nimport AccountId from \"../account/AccountId.js\";\nimport TokenId from \"./TokenId.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenTransferList} HashgraphProto.proto.ITokenTransferList\n * @typedef {import(\"@hashgraph/proto\").proto.IAccountAmount} HashgraphProto.proto.IAccountAmount\n * @typedef {import(\"@hashgraph/proto\").proto.IAccountID} HashgraphProto.proto.IAccountID\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenID} HashgraphProto.proto.ITokenID\n */\n\n/**\n * @typedef {import(\"bignumber.js\").default} BigNumber\n */\n\n/**\n * @typedef {object} TokenTransferJSON\n * @property {string} tokenId\n * @property {string} accountId\n * @property {?number} expectedDecimals\n * @property {string} amount\n * @property {boolean} isApproved\n */\n\n/**\n * An account, and the amount that it sends or receives during a cryptocurrency tokentransfer.\n */\nexport default class TokenTransfer {\n /**\n * @internal\n * @param {object} props\n * @param {TokenId | string} props.tokenId\n * @param {AccountId | string} props.accountId\n * @param {number | null} props.expectedDecimals\n * @param {Long | number} props.amount\n * @param {boolean} props.isApproved\n */\n constructor(props) {\n /**\n * The Token ID that sends or receives cryptocurrency.\n *\n * @readonly\n */\n this.tokenId =\n props.tokenId instanceof TokenId\n ? props.tokenId\n : TokenId.fromString(props.tokenId);\n\n /**\n * The Account ID that sends or receives cryptocurrency.\n *\n * @readonly\n */\n this.accountId =\n props.accountId instanceof AccountId\n ? props.accountId\n : AccountId.fromString(props.accountId);\n\n this.expectedDecimals = props.expectedDecimals;\n this.amount = Long.fromValue(props.amount);\n this.isApproved = props.isApproved;\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITokenTransferList[]} tokenTransfers\n * @returns {TokenTransfer[]}\n */\n static _fromProtobuf(tokenTransfers) {\n const transfers = [];\n\n for (const tokenTransfer of tokenTransfers) {\n const tokenId = TokenId._fromProtobuf(\n /** @type {HashgraphProto.proto.ITokenID} */ (\n tokenTransfer.token\n ),\n );\n const expectedDecimals =\n tokenTransfer.expectedDecimals != null\n ? Object.hasOwn(tokenTransfer.expectedDecimals, \"value\")\n ? tokenTransfer.expectedDecimals.value\n : null\n : null;\n\n for (const transfer of tokenTransfer.transfers != null\n ? tokenTransfer.transfers\n : []) {\n transfers.push(\n new TokenTransfer({\n tokenId,\n accountId: AccountId._fromProtobuf(\n /** @type {HashgraphProto.proto.IAccountID} */ (\n transfer.accountID\n ),\n ),\n expectedDecimals: expectedDecimals || null,\n amount:\n transfer.amount != null\n ? transfer.amount\n : Long.ZERO,\n isApproved: transfer.isApproval == true,\n }),\n );\n }\n }\n\n return transfers;\n }\n\n /**\n * @internal\n * @returns {HashgraphProto.proto.IAccountAmount}\n */\n _toProtobuf() {\n return {\n accountID: this.accountId._toProtobuf(),\n amount: this.amount,\n isApproval: this.isApproved,\n };\n }\n\n /**\n * @returns {TokenTransferJSON}\n */\n toJSON() {\n return {\n tokenId: this.tokenId.toString(),\n accountId: this.accountId.toString(),\n expectedDecimals: this.expectedDecimals,\n amount: this.amount.toString(),\n isApproved: this.isApproved,\n };\n }\n\n /**\n * @returns {string}\n */\n toString() {\n return JSON.stringify(this.toJSON());\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport * as HashgraphProto from \"@hashgraph/proto\";\nimport TokenId from \"../token/TokenId.js\";\nimport Long from \"long\";\n\n/**\n * The ID for a crypto-currency token on Hedera.\n *\n * @augments {EntityId}\n */\nexport default class NftId {\n /**\n * @param {TokenId} token\n * @param {number | Long} serial\n */\n constructor(token, serial) {\n this.tokenId = token;\n this.serial =\n typeof serial === \"number\" ? Long.fromNumber(serial) : serial;\n\n Object.freeze(this);\n }\n\n /**\n * @param {string} text\n * @returns {NftId}\n */\n static fromString(text) {\n const strings =\n text.split(\"/\").length > 1 ? text.split(\"/\") : text.split(\"@\");\n\n for (const string of strings) {\n if (string === \"\") {\n throw new Error(\n \"invalid format for NftId: use [token]/[serial] or [token]@[serial]\",\n );\n }\n }\n\n const token = TokenId.fromString(strings[0]);\n const serial = Long.fromString(strings[1]);\n\n return new NftId(token, serial);\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.INftID} id\n * @returns {NftId}\n */\n static _fromProtobuf(id) {\n return new NftId(\n TokenId._fromProtobuf(\n /** @type {HashgraphProto.proto.ITokenID} */ (id.token_ID),\n ),\n id.serialNumber != null ? id.serialNumber : Long.ZERO,\n );\n }\n\n /**\n * @param {Uint8Array} bytes\n * @returns {NftId}\n */\n static fromBytes(bytes) {\n return NftId._fromProtobuf(HashgraphProto.proto.NftID.decode(bytes));\n }\n\n /**\n * @internal\n * @returns {HashgraphProto.proto.INftID}\n */\n _toProtobuf() {\n return {\n token_ID: this.tokenId._toProtobuf(),\n serialNumber: Long.fromValue(\n this.serial !== undefined ? this.serial : 0,\n ),\n };\n }\n\n /**\n * @returns {string}\n */\n toString() {\n return `${this.tokenId.toString()}/${this.serial.toString()}`;\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytes() {\n return HashgraphProto.proto.NftID.encode(this._toProtobuf()).finish();\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2024 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.PendingAirdropId} HashgraphProto.proto.PendingAirdropId\n */\n\nimport AccountId from \"../account/AccountId.js\";\nimport TokenId from \"./TokenId.js\";\nimport NftId from \"./NftId.js\";\n\nexport default class PendingAirdropId {\n /**\n *\n * @param {object} props\n * @param {AccountId} [props.senderId]\n * @param {AccountId} [props.receiverId]\n * @param {TokenId?} [props.tokenId]\n * @param {NftId?} [props.nftId]\n */\n constructor(props = {}) {\n this._senderId = null;\n this._receiverId = null;\n this._tokenId = null;\n this._nftId = null;\n\n if (props.receiverId) {\n this._receiverId = props.receiverId;\n }\n if (props.senderId) {\n this._senderId = props.senderId;\n }\n if (props.tokenId) {\n this._tokenId = new TokenId(props.tokenId);\n } else if (props.nftId) {\n this._nftId = new NftId(props.nftId?.tokenId, props.nftId?.serial);\n }\n }\n\n /**\n * @param {HashgraphProto.proto.PendingAirdropId} pb\n * @returns {PendingAirdropId}\n */\n static fromBytes(pb) {\n if (pb.senderId == null) {\n throw new Error(\"senderId is required\");\n }\n\n if (pb.receiverId == null) {\n throw new Error(\"receiverId is required\");\n }\n\n if (pb.fungibleTokenType == null && pb.nonFungibleToken == null) {\n throw new Error(\n \"Either fungibleTokenType or nonFungibleToken is required\",\n );\n }\n\n return new PendingAirdropId({\n senderId: AccountId._fromProtobuf(pb.senderId),\n receiverId: AccountId._fromProtobuf(pb.receiverId),\n nftId:\n pb.nonFungibleToken != null\n ? NftId._fromProtobuf(pb.nonFungibleToken)\n : null,\n tokenId:\n pb.fungibleTokenType != null\n ? TokenId._fromProtobuf(pb.fungibleTokenType)\n : null,\n });\n }\n\n /**\n *\n * @param {AccountId} senderId\n * @returns {this}\n */\n setSenderid(senderId) {\n this._senderId = senderId;\n return this;\n }\n\n /**\n * @param {AccountId} receiverId\n * @returns {this}\n */\n setReceiverId(receiverId) {\n this._receiverId = receiverId;\n return this;\n }\n\n /**\n * @param {TokenId} tokenId\n * @returns {this}\n */\n setTokenId(tokenId) {\n this._nftId = null;\n this._tokenId = tokenId;\n return this;\n }\n\n /**\n * @param {NftId} nftId\n * @returns {this}\n */\n setNftId(nftId) {\n this._tokenId = null;\n this._nftId = nftId;\n return this;\n }\n\n /**\n * @returns {?AccountId}\n */\n get senderId() {\n return this._senderId;\n }\n\n /**\n * @returns {?AccountId}\n */\n get receiverId() {\n return this._receiverId;\n }\n\n /**\n * @returns {?TokenId}\n */\n get tokenId() {\n return this._tokenId;\n }\n\n /**\n * @returns {?NftId}\n */\n get nftId() {\n return this._nftId;\n }\n\n /**\n * @returns {HashgraphProto.proto.PendingAirdropId}\n */\n toBytes() {\n return {\n senderId: this.senderId?._toProtobuf(),\n receiverId: this._receiverId?._toProtobuf(),\n fungibleTokenType: this._tokenId?._toProtobuf(),\n nonFungibleToken: this._nftId?._toProtobuf(),\n };\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2024 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.PendingAirdropRecord} HashgraphProto.proto.PendingAirdropRecord\n */\n\nimport Long from \"long\";\nimport PendingAirdropId from \"./PendingAirdropId.js\";\n\nexport default class PendingAirdropRecord {\n /**\n * @param {object} props\n * @param {PendingAirdropId} props.airdropId\n * @param {Long} props.amount\n */\n constructor(props) {\n this.airdropId = props.airdropId;\n this.amount = props.amount;\n }\n\n /**\n * @returns {HashgraphProto.proto.PendingAirdropRecord}\n */\n toBytes() {\n return {\n pendingAirdropId: this.airdropId.toBytes(),\n pendingAirdropValue: {\n amount: this.amount,\n },\n };\n }\n\n /**\n * @param {HashgraphProto.proto.PendingAirdropRecord} pb\n * @returns {PendingAirdropRecord}\n */\n static fromBytes(pb) {\n if (pb.pendingAirdropId == null) {\n throw new Error(\"pendingAirdropId is required\");\n }\n\n const airdropId = PendingAirdropId.fromBytes(pb.pendingAirdropId);\n const amount = pb.pendingAirdropValue?.amount;\n\n return new PendingAirdropRecord({\n airdropId: airdropId,\n amount: amount ? amount : Long.ZERO,\n });\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport TransactionReceipt from \"./TransactionReceipt.js\";\nimport TransactionId from \"./TransactionId.js\";\nimport Timestamp from \"../Timestamp.js\";\nimport Hbar from \"../Hbar.js\";\nimport Transfer from \"../Transfer.js\";\nimport ContractFunctionResult from \"../contract/ContractFunctionResult.js\";\nimport TokenTransferMap from \"../account/TokenTransferMap.js\";\nimport TokenNftTransferMap from \"../account/TokenNftTransferMap.js\";\nimport * as HashgraphProto from \"@hashgraph/proto\";\nimport ScheduleId from \"../schedule/ScheduleId.js\";\nimport AssessedCustomFee from \"../token/AssessedCustomFee.js\";\nimport TokenAssocation from \"../token/TokenAssociation.js\";\nimport Key from \"../Key.js\";\nimport PublicKey from \"../PublicKey.js\";\nimport TokenTransfer from \"../token/TokenTransfer.js\";\nimport EvmAddress from \"../EvmAddress.js\";\nimport * as hex from \"../encoding/hex.js\";\nimport PendingAirdropRecord from \"../token/PendingAirdropRecord.js\";\n\n/**\n * @typedef {import(\"../token/TokenId.js\").default} TokenId\n * @typedef {import(\"../token/TokenTransfer.js\").TokenTransferJSON} TokenTransferJSON\n * @typedef {import(\"../account/HbarAllowance.js\").default} HbarAllowance\n * @typedef {import(\"../account/TokenAllowance.js\").default} TokenAllowance\n * @typedef {import(\"../account/TokenNftAllowance.js\").default} TokenNftAllowance\n * @typedef {import(\"./TransactionReceipt.js\").TransactionReceiptJSON} TransactionReceiptJSON\n * @typedef {import(\"../Transfer.js\").TransferJSON} TransferJSON\n */\n\n/**\n * @typedef {object} TransactionRecordJSON\n * @property {TransactionReceiptJSON} receipt\n * @property {?string} transactionHash\n * @property {Date} consensusTimestamp\n * @property {string} transactionId\n * @property {string} transactionMemo\n * @property {string} transactionFee\n * @property {TransferJSON[]} transfers\n * @property {TokenTransferMap} tokenTransfers\n * @property {TokenTransferJSON[]} tokenTransfersList\n * @property {?string} scheduleRef\n * @property {AssessedCustomFee[]} assessedCustomFees\n * @property {TokenNftTransferMap} nftTransfers\n * @property {TokenAssocation[]} automaticTokenAssociations\n * @property {Date | null} parentConsensusTimestamp\n * @property {?string} aliasKey\n * @property {TransactionRecord[]} duplicates\n * @property {TransactionRecord[]} children\n * @property {?string} ethereumHash\n * @property {Transfer[]} paidStakingRewards\n * @property {?string} prngBytes\n * @property {?number} prngNumber\n * @property {?string} evmAddress\n */\n\n/**\n * Either the record of processing the first consensus transaction with the given id whose\n * status was neither INVALID_NODE_ACCOUNT nor INVALID_PAYER_SIGNATURE;\n * or, if no such record exists, the record of processing the first transaction to reach\n * consensus with the given transaction id.\n */\nexport default class TransactionRecord {\n /**\n * @private\n * @param {object} props\n * @param {ContractFunctionResult} [props.contractFunctionResult]\n * @param {TransactionReceipt} props.receipt\n * @param {Uint8Array} props.transactionHash\n * @param {Timestamp} props.consensusTimestamp\n * @param {TransactionId} props.transactionId\n * @param {string} props.transactionMemo\n * @param {Hbar} props.transactionFee\n * @param {Transfer[]} props.transfers\n * @param {TokenTransferMap} props.tokenTransfers\n * @param {TokenTransfer[]} props.tokenTransfersList\n * @param {?ScheduleId} props.scheduleRef\n * @param {AssessedCustomFee[]} props.assessedCustomFees\n * @param {TokenNftTransferMap} props.nftTransfers\n * @param {TokenAssocation[]} props.automaticTokenAssociations\n * @param {Timestamp | null} props.parentConsensusTimestamp\n * @param {PublicKey | null} props.aliasKey\n * @param {TransactionRecord[]} props.duplicates\n * @param {TransactionRecord[]} props.children\n * @param {HbarAllowance[]} props.hbarAllowanceAdjustments\n * @param {TokenAllowance[]} props.tokenAllowanceAdjustments\n * @param {TokenNftAllowance[]} props.nftAllowanceAdjustments\n * @param {?Uint8Array} props.ethereumHash\n * @param {Transfer[]} props.paidStakingRewards\n * @param {?Uint8Array} props.prngBytes\n * @param {?number} props.prngNumber\n * @param {?EvmAddress} props.evmAddress\n * @param {PendingAirdropRecord[]} props.newPendingAirdrops\n */\n constructor(props) {\n /**\n * The status (reach consensus, or failed, or is unknown) and the ID of\n * any new account/file/instance created.\n *\n * @readonly\n */\n this.receipt = props.receipt;\n\n /**\n * The hash of the Transaction that executed (not the hash of any Transaction that failed\n * for having a duplicate TransactionID).\n *\n * @readonly\n */\n this.transactionHash = props.transactionHash;\n\n /**\n * The consensus timestamp (or null if didn't reach consensus yet).\n *\n * @readonly\n */\n this.consensusTimestamp = props.consensusTimestamp;\n\n /**\n * The ID of the transaction this record represents.\n *\n * @readonly\n */\n this.transactionId = props.transactionId;\n\n /**\n * The memo that was submitted as part of the transaction (max 100 bytes).\n *\n * @readonly\n */\n this.transactionMemo = props.transactionMemo;\n\n /**\n * The actual transaction fee charged,\n * not the original transactionFee value from TransactionBody.\n *\n * @readonly\n */\n this.transactionFee = props.transactionFee;\n\n /**\n * All hbar transfers as a result of this transaction, such as fees, or transfers performed\n * by the transaction, or by a smart contract it calls, or by the creation of threshold\n * records that it triggers.\n *\n * @readonly\n */\n this.transfers = props.transfers;\n\n /**\n * Record of the value returned by the smart contract function or constructor.\n *\n * @readonly\n */\n this.contractFunctionResult =\n props.contractFunctionResult != null\n ? props.contractFunctionResult\n : null;\n\n /**\n * All the token transfers from this account\n *\n * @readonly\n */\n this.tokenTransfers = props.tokenTransfers;\n\n /**\n * All the token transfers from this account\n *\n * @readonly\n */\n this.tokenTransfersList = props.tokenTransfersList;\n\n /**\n * Reference to the scheduled transaction ID that this transaction record represent\n *\n * @readonly\n */\n this.scheduleRef = props.scheduleRef;\n\n /**\n * All custom fees that were assessed during a CryptoTransfer, and must be paid if the\n * transaction status resolved to SUCCESS\n *\n * @readonly\n */\n this.assessedCustomFees = props.assessedCustomFees;\n\n /** @readonly */\n this.nftTransfers = props.nftTransfers;\n\n /**\n * All token associations implicitly created while handling this transaction\n *\n * @readonly\n */\n this.automaticTokenAssociations = props.automaticTokenAssociations;\n\n /**\n * In the record of an internal transaction, the consensus timestamp of the user\n * transaction that spawned it.\n *\n * @readonly\n */\n this.parentConsensusTimestamp = props.parentConsensusTimestamp;\n\n /**\n * In the record of an internal CryptoCreate transaction triggered by a user\n * transaction with a (previously unused) alias, the new account's alias.\n *\n * @readonly\n */\n this.aliasKey = props.aliasKey;\n\n /**\n * The records of processing all consensus transaction with the same id as the distinguished\n * record above, in chronological order.\n *\n * @readonly\n */\n this.duplicates = props.duplicates;\n\n /**\n * The records of processing all child transaction spawned by the transaction with the given\n * top-level id, in consensus order. Always empty if the top-level status is UNKNOWN.\n *\n * @readonly\n */\n this.children = props.children;\n\n /**\n * @deprecated\n * @readonly\n */\n // eslint-disable-next-line deprecation/deprecation\n this.hbarAllowanceAdjustments = props.hbarAllowanceAdjustments;\n\n /**\n * @deprecated\n * @readonly\n */\n // eslint-disable-next-line deprecation/deprecation\n this.tokenAllowanceAdjustments = props.tokenAllowanceAdjustments;\n\n /**\n * @deprecated\n * @readonly\n */\n // eslint-disable-next-line deprecation/deprecation\n this.nftAllowanceAdjustments = props.nftAllowanceAdjustments;\n\n /**\n * The keccak256 hash of the ethereumData. This field will only be populated for\n * EthereumTransaction.\n *\n * @readonly\n */\n this.ethereumHash = props.ethereumHash;\n\n /**\n * List of accounts with the corresponding staking rewards paid as a result of a transaction.\n *\n * @readonly\n */\n this.paidStakingRewards = props.paidStakingRewards;\n\n /**\n * In the record of a PRNG transaction with no output range, a pseudorandom 384-bit string.\n *\n * @readonly\n */\n this.prngBytes = props.prngBytes;\n\n /**\n * In the record of a PRNG transaction with an output range, the output of a PRNG whose input was a 384-bit string.\n *\n * @readonly\n */\n this.prngNumber = props.prngNumber;\n\n /**\n * The new default EVM address of the account created by this transaction.\n * This field is populated only when the EVM address is not specified in the related transaction body.\n *\n * @readonly\n */\n this.evmAddress = props.evmAddress;\n\n /**\n * The new default EVM address of the account created by this transaction.\n * This field is populated only when the EVM address is not specified in the related transaction body.\n *\n * @readonly\n */\n this.newPendingAirdrops = props.newPendingAirdrops;\n\n Object.freeze(this);\n }\n\n /**\n * @internal\n * @returns {HashgraphProto.proto.ITransactionGetRecordResponse}\n */\n _toProtobuf() {\n const tokenTransfers = this.tokenTransfers._toProtobuf();\n const nftTransfers = this.nftTransfers._toProtobuf();\n\n const tokenTransferLists = [];\n\n for (const tokenTransfer of tokenTransfers) {\n for (const nftTransfer of nftTransfers) {\n if (\n tokenTransfer.token != null &&\n nftTransfer.token != null &&\n tokenTransfer.token.shardNum ===\n nftTransfer.token.shardNum &&\n tokenTransfer.token.realmNum ===\n nftTransfer.token.realmNum &&\n tokenTransfer.token.tokenNum === nftTransfer.token.tokenNum\n ) {\n tokenTransferLists.push({\n token: tokenTransfer.token,\n transfers: tokenTransfer.transfers,\n nftTransfers: tokenTransfer.nftTransfers,\n });\n } else {\n tokenTransferLists.push(tokenTransfer);\n tokenTransferLists.push(nftTransfer);\n }\n }\n }\n\n const duplicates = this.duplicates.map(\n (record) =>\n /** @type {HashgraphProto.proto.ITransactionRecord} */ (\n record._toProtobuf().transactionRecord\n ),\n );\n const children = this.children.map(\n (record) =>\n /** @type {HashgraphProto.proto.ITransactionRecord} */ (\n record._toProtobuf().transactionRecord\n ),\n );\n\n return {\n duplicateTransactionRecords: duplicates,\n childTransactionRecords: children,\n transactionRecord: {\n receipt: this.receipt._toProtobuf().receipt,\n\n transactionHash:\n this.transactionHash != null ? this.transactionHash : null,\n consensusTimestamp:\n this.consensusTimestamp != null\n ? this.consensusTimestamp._toProtobuf()\n : null,\n transactionID:\n this.transactionId != null\n ? this.transactionId._toProtobuf()\n : null,\n memo:\n this.transactionMemo != null ? this.transactionMemo : null,\n\n transactionFee:\n this.transactionFee != null\n ? this.transactionFee.toTinybars()\n : null,\n\n contractCallResult:\n this.contractFunctionResult != null &&\n !this.contractFunctionResult._createResult\n ? this.contractFunctionResult._toProtobuf()\n : null,\n\n contractCreateResult:\n this.contractFunctionResult != null &&\n this.contractFunctionResult._createResult\n ? this.contractFunctionResult._toProtobuf()\n : null,\n\n transferList:\n this.transfers != null\n ? {\n accountAmounts: this.transfers.map((transfer) =>\n transfer._toProtobuf(),\n ),\n }\n : null,\n tokenTransferLists,\n scheduleRef:\n this.scheduleRef != null\n ? this.scheduleRef._toProtobuf()\n : null,\n assessedCustomFees: this.assessedCustomFees.map((fee) =>\n fee._toProtobuf(),\n ),\n automaticTokenAssociations: this.automaticTokenAssociations.map(\n (association) => association._toProtobuf(),\n ),\n parentConsensusTimestamp:\n this.parentConsensusTimestamp != null\n ? this.parentConsensusTimestamp._toProtobuf()\n : null,\n alias:\n this.aliasKey != null\n ? HashgraphProto.proto.Key.encode(\n this.aliasKey._toProtobufKey(),\n ).finish()\n : null,\n ethereumHash: this.ethereumHash,\n\n paidStakingRewards: this.paidStakingRewards.map((transfer) =>\n transfer._toProtobuf(),\n ),\n\n prngBytes: this.prngBytes,\n prngNumber: this.prngNumber != null ? this.prngNumber : null,\n evmAddress:\n this.evmAddress != null ? this.evmAddress.toBytes() : null,\n newPendingAirdrops: this.newPendingAirdrops.map((airdrop) =>\n airdrop.toBytes(),\n ),\n },\n };\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransactionGetRecordResponse} response\n * @returns {TransactionRecord}\n */\n static _fromProtobuf(response) {\n const record = /** @type {HashgraphProto.proto.ITransactionRecord} */ (\n response.transactionRecord\n );\n\n let aliasKey =\n record.alias != null && record.alias.length > 0\n ? Key._fromProtobufKey(\n HashgraphProto.proto.Key.decode(record.alias),\n )\n : null;\n\n if (!(aliasKey instanceof PublicKey)) {\n aliasKey = null;\n }\n\n const children =\n response.childTransactionRecords != null\n ? response.childTransactionRecords.map((child) =>\n TransactionRecord._fromProtobuf({\n transactionRecord: child,\n }),\n )\n : [];\n\n const duplicates =\n response.duplicateTransactionRecords != null\n ? response.duplicateTransactionRecords.map((duplicate) =>\n TransactionRecord._fromProtobuf({\n transactionRecord: duplicate,\n }),\n )\n : [];\n\n const contractFunctionResult =\n record.contractCallResult != null\n ? ContractFunctionResult._fromProtobuf(\n record.contractCallResult,\n false,\n )\n : record.contractCreateResult != null\n ? ContractFunctionResult._fromProtobuf(\n record.contractCreateResult,\n true,\n )\n : undefined;\n\n const newPendingAirdrops =\n record.newPendingAirdrops != null\n ? record.newPendingAirdrops.map((airdrop) =>\n PendingAirdropRecord.fromBytes(airdrop),\n )\n : [];\n\n return new TransactionRecord({\n receipt: TransactionReceipt._fromProtobuf({\n receipt:\n /** @type {HashgraphProto.proto.ITransactionReceipt} */ (\n record.receipt\n ),\n }),\n transactionHash:\n record.transactionHash != null\n ? record.transactionHash\n : new Uint8Array(),\n consensusTimestamp: Timestamp._fromProtobuf(\n /** @type {HashgraphProto.proto.ITimestamp} */\n (record.consensusTimestamp),\n ),\n transactionId: TransactionId._fromProtobuf(\n /** @type {HashgraphProto.proto.ITransactionID} */ (\n record.transactionID\n ),\n ),\n transactionMemo: record.memo != null ? record.memo : \"\",\n transactionFee: Hbar.fromTinybars(\n record.transactionFee != null ? record.transactionFee : 0,\n ),\n transfers: Transfer._fromProtobuf(\n record.transferList != null\n ? record.transferList.accountAmounts != null\n ? record.transferList.accountAmounts\n : []\n : [],\n ),\n contractFunctionResult,\n tokenTransfers: TokenTransferMap._fromProtobuf(\n record.tokenTransferLists != null\n ? record.tokenTransferLists\n : [],\n ),\n tokenTransfersList: TokenTransfer._fromProtobuf(\n record.tokenTransferLists != null\n ? record.tokenTransferLists\n : [],\n ),\n scheduleRef:\n record.scheduleRef != null\n ? ScheduleId._fromProtobuf(record.scheduleRef)\n : null,\n assessedCustomFees:\n record.assessedCustomFees != null\n ? record.assessedCustomFees.map((fee) =>\n AssessedCustomFee._fromProtobuf(fee),\n )\n : [],\n nftTransfers: TokenNftTransferMap._fromProtobuf(\n record.tokenTransferLists != null\n ? record.tokenTransferLists\n : [],\n ),\n automaticTokenAssociations:\n record.automaticTokenAssociations != null\n ? record.automaticTokenAssociations.map((association) =>\n TokenAssocation._fromProtobuf(association),\n )\n : [],\n parentConsensusTimestamp:\n record.parentConsensusTimestamp != null\n ? Timestamp._fromProtobuf(record.parentConsensusTimestamp)\n : null,\n aliasKey,\n duplicates,\n children,\n hbarAllowanceAdjustments: [],\n tokenAllowanceAdjustments: [],\n nftAllowanceAdjustments: [],\n ethereumHash:\n record.ethereumHash != null ? record.ethereumHash : null,\n paidStakingRewards:\n record.paidStakingRewards != null\n ? Transfer._fromProtobuf(record.paidStakingRewards)\n : [],\n prngBytes: record.prngBytes != null ? record.prngBytes : null,\n prngNumber: record.prngNumber != null ? record.prngNumber : null,\n evmAddress:\n record.evmAddress != null\n ? EvmAddress.fromBytes(record.evmAddress)\n : null,\n newPendingAirdrops: newPendingAirdrops,\n });\n }\n\n /**\n * @param {Uint8Array} bytes\n * @returns {TransactionRecord}\n */\n static fromBytes(bytes) {\n return TransactionRecord._fromProtobuf(\n HashgraphProto.proto.TransactionGetRecordResponse.decode(bytes),\n );\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytes() {\n return HashgraphProto.proto.TransactionGetRecordResponse.encode(\n this._toProtobuf(),\n ).finish();\n }\n\n /**\n * @returns {TransactionRecordJSON}\n */\n toJSON() {\n return {\n receipt: this.receipt.toJSON(),\n transactionHash: hex.encode(this.transactionHash),\n consensusTimestamp: this.consensusTimestamp.toDate(),\n transactionId: this.transactionId.toString(),\n transactionMemo: this.transactionMemo,\n transactionFee: this.transactionFee.toTinybars().toString(),\n transfers: this.transfers.map((transfer) => transfer.toJSON()),\n tokenTransfers: this.tokenTransfers,\n tokenTransfersList: this.tokenTransfersList.map((transfer) =>\n transfer.toJSON(),\n ),\n scheduleRef: this.scheduleRef?.toString() || null,\n assessedCustomFees: this.assessedCustomFees,\n nftTransfers: this.nftTransfers,\n automaticTokenAssociations: this.automaticTokenAssociations,\n parentConsensusTimestamp:\n this.parentConsensusTimestamp?.toDate() || null,\n aliasKey: this.aliasKey?.toString() || null,\n duplicates: this.duplicates,\n children: this.children,\n ethereumHash:\n this.ethereumHash != null\n ? hex.encode(this.ethereumHash)\n : null,\n paidStakingRewards: this.paidStakingRewards,\n prngBytes:\n this.prngBytes != null ? hex.encode(this.prngBytes) : null,\n prngNumber: this.prngNumber,\n evmAddress: this.evmAddress?.toString() || null,\n };\n }\n\n /**\n * @returns {string}\n */\n toString() {\n return JSON.stringify(this.toJSON());\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport StatusError from \"./StatusError.js\";\n\n/**\n * @typedef {import(\"./Status.js\").default} Status\n * @typedef {import(\"./transaction/TransactionId.js\").default} TransactionId\n * @typedef {import(\"./transaction/TransactionRecord\").default} TransactionRecord\n */\n\nexport default class RecordStatusError extends StatusError {\n /**\n * @param {object} props\n * @param {TransactionRecord} props.transactionRecord\n * @param {Status} props.status\n * @param {TransactionId} props.transactionId\n */\n constructor(props) {\n super(\n props,\n `Record for transaction ${props.transactionId.toString()} contained error status ${props.status.toString()}`,\n );\n\n /**\n * @type {TransactionRecord}\n * @readonly\n */\n this.transactionRecord = props.transactionRecord;\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Query, { QUERY_REGISTRY } from \"../query/Query.js\";\nimport TransactionRecord from \"./TransactionRecord.js\";\nimport TransactionReceipt from \"./TransactionReceipt.js\";\nimport TransactionId from \"./TransactionId.js\";\nimport Status from \"../Status.js\";\nimport PrecheckStatusError from \"../PrecheckStatusError.js\";\nimport ReceiptStatusError from \"../ReceiptStatusError.js\";\nimport RecordStatusError from \"../RecordStatusError.js\";\nimport { ExecutionState } from \"../Executable.js\";\nimport * as HashgraphProto from \"@hashgraph/proto\";\n\nconst { proto } = HashgraphProto;\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../account/AccountId.js\").default} AccountId\n */\n\n/**\n * @augments {Query}\n */\nexport default class TransactionRecordQuery extends Query {\n /**\n * @param {object} [props]\n * @param {TransactionId} [props.transactionId]\n * @param {boolean} [props.includeChildren]\n * @param {boolean} [props.includeDuplicates]\n * @param {boolean} [props.validateReceiptStatus]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {?TransactionId}\n */\n this._transactionId = null;\n\n /**\n * @private\n * @type {?boolean}\n */\n this._includeChildren = null;\n\n /**\n * @private\n * @type {?boolean}\n */\n this._includeDuplicates = null;\n\n this._validateReceiptStatus = true;\n\n if (props.transactionId != null) {\n this.setTransactionId(props.transactionId);\n }\n\n if (props.includeChildren != null) {\n this.setIncludeChildren(props.includeChildren);\n }\n\n if (props.includeDuplicates != null) {\n this.setIncludeDuplicates(props.includeDuplicates);\n }\n\n if (props.validateReceiptStatus != null) {\n this.setValidateReceiptStatus(props.validateReceiptStatus);\n }\n }\n\n /**\n * @returns {?TransactionId}\n */\n get transactionId() {\n return this._transactionId;\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.IQuery} query\n * @returns {TransactionRecordQuery}\n */\n static _fromProtobuf(query) {\n const record =\n /** @type {HashgraphProto.proto.ITransactionGetRecordQuery} */ (\n query.transactionGetRecord\n );\n\n return new TransactionRecordQuery({\n transactionId: record.transactionID\n ? TransactionId._fromProtobuf(record.transactionID)\n : undefined,\n includeChildren:\n record.includeChildRecords != null\n ? record.includeChildRecords\n : undefined,\n includeDuplicates:\n record.includeDuplicates != null\n ? record.includeDuplicates\n : undefined,\n });\n }\n\n /**\n * Set the transaction ID for which the record is being requested.\n *\n * @param {TransactionId | string} transactionId\n * @returns {TransactionRecordQuery}\n */\n setTransactionId(transactionId) {\n this._transactionId =\n typeof transactionId === \"string\"\n ? TransactionId.fromString(transactionId)\n : transactionId.clone();\n\n return this;\n }\n\n /**\n * @param {boolean} includeChildren\n * @returns {TransactionRecordQuery}\n */\n setIncludeChildren(includeChildren) {\n this._includeChildren = includeChildren;\n return this;\n }\n\n /**\n * @returns {boolean}\n */\n get includeChildren() {\n return this._includeChildren != null ? this._includeChildren : false;\n }\n\n /**\n * @param {boolean} includeDuplicates\n * @returns {TransactionRecordQuery}\n */\n setIncludeDuplicates(includeDuplicates) {\n this._duplicates = includeDuplicates;\n return this;\n }\n\n /**\n * @returns {boolean}\n */\n get includeDuplicates() {\n return this._duplicates != null ? this._duplicates : false;\n }\n\n /**\n * @param {boolean} validateReceiptStatus\n * @returns {this}\n */\n setValidateReceiptStatus(validateReceiptStatus) {\n this._validateReceiptStatus = validateReceiptStatus;\n return this;\n }\n\n /**\n * @returns {boolean}\n */\n get validateReceiptStatus() {\n return this._validateReceiptStatus;\n }\n\n /**\n * @override\n * @internal\n * @param {HashgraphProto.proto.IQuery} request\n * @param {HashgraphProto.proto.IResponse} response\n * @returns {[Status, ExecutionState]}\n */\n _shouldRetry(request, response) {\n const { nodeTransactionPrecheckCode } =\n this._mapResponseHeader(response);\n\n let status = Status._fromCode(\n nodeTransactionPrecheckCode != null\n ? nodeTransactionPrecheckCode\n : proto.ResponseCodeEnum.OK,\n );\n\n if (this._logger) {\n this._logger.debug(\n `[${this._getLogId()}] received node precheck status ${status.toString()}`,\n );\n }\n\n switch (status) {\n case Status.Busy:\n case Status.Unknown:\n case Status.ReceiptNotFound:\n case Status.RecordNotFound:\n case Status.PlatformNotActive:\n return [status, ExecutionState.Retry];\n\n case Status.Ok:\n break;\n\n default:\n return [status, ExecutionState.Error];\n }\n\n const transactionGetRecord =\n /** @type {HashgraphProto.proto.ITransactionGetRecordResponse} */ (\n response.transactionGetRecord\n );\n const header = /** @type {HashgraphProto.proto.IResponseHeader} */ (\n transactionGetRecord.header\n );\n\n if (\n header.responseType ===\n HashgraphProto.proto.ResponseType.COST_ANSWER\n ) {\n return [status, ExecutionState.Finished];\n }\n\n const record = /** @type {HashgraphProto.proto.ITransactionRecord} */ (\n transactionGetRecord.transactionRecord\n );\n const receipt =\n /** @type {HashgraphProto.proto.ITransactionReceipt} */ (\n record.receipt\n );\n const receiptStatusCode =\n /** @type {HashgraphProto.proto.ResponseCodeEnum} */ (\n receipt.status\n );\n status = Status._fromCode(receiptStatusCode);\n\n if (this._logger) {\n this._logger.debug(\n `[${this._getLogId()}] received record's receipt ${status.toString()}`,\n );\n }\n\n switch (status) {\n case Status.Ok:\n case Status.Busy:\n case Status.Unknown:\n case Status.ReceiptNotFound:\n case Status.RecordNotFound:\n return [status, ExecutionState.Retry];\n\n case Status.Success:\n return [status, ExecutionState.Finished];\n\n default:\n return [\n status,\n this._validateReceiptStatus\n ? ExecutionState.Error\n : ExecutionState.Finished,\n ];\n }\n }\n\n /**\n * @override\n * @internal\n * @param {HashgraphProto.proto.IQuery} request\n * @param {HashgraphProto.proto.IResponse} response\n * @param {AccountId} nodeId\n * @returns {Error}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _mapStatusError(request, response, nodeId) {\n const { nodeTransactionPrecheckCode } =\n this._mapResponseHeader(response);\n\n let status = Status._fromCode(\n nodeTransactionPrecheckCode != null\n ? nodeTransactionPrecheckCode\n : proto.ResponseCodeEnum.OK,\n );\n switch (status) {\n case Status.Ok:\n // Do nothing\n break;\n\n case Status.ContractRevertExecuted:\n return new RecordStatusError({\n status,\n transactionId: this._getTransactionId(),\n transactionRecord: TransactionRecord._fromProtobuf({\n transactionRecord:\n // @ts-ignore\n response.transactionGetRecord.transactionRecord,\n }),\n });\n\n default:\n return new PrecheckStatusError({\n nodeId,\n status,\n transactionId: this._getTransactionId(),\n contractFunctionResult: null,\n });\n }\n\n const transactionGetRecord =\n /** @type {HashgraphProto.proto.ITransactionGetRecordResponse} */ (\n response.transactionGetRecord\n );\n const record = /** @type {HashgraphProto.proto.ITransactionRecord} */ (\n transactionGetRecord.transactionRecord\n );\n const receipt =\n /** @type {HashgraphProto.proto.ITransactionReceipt} */ (\n record.receipt\n );\n const receiptStatusError =\n /** @type {HashgraphProto.proto.ResponseCodeEnum} */ (\n receipt.status\n );\n\n status = Status._fromCode(receiptStatusError);\n\n switch (status) {\n case Status.ContractRevertExecuted:\n return new RecordStatusError({\n status,\n transactionId: this._getTransactionId(),\n transactionRecord: TransactionRecord._fromProtobuf({\n transactionRecord:\n // @ts-ignore\n response.transactionGetRecord.transactionRecord,\n }),\n });\n\n default:\n return new ReceiptStatusError({\n status,\n transactionId: this._getTransactionId(),\n transactionReceipt: TransactionReceipt._fromProtobuf({\n receipt,\n }),\n });\n }\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (\n this._transactionId != null &&\n this._transactionId.accountId != null\n ) {\n this._transactionId.accountId.validateChecksum(client);\n }\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.IQuery} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.crypto.getTxRecordByTxID(request);\n }\n\n /**\n * @override\n * @override\n * @internal\n * @param {HashgraphProto.proto.IResponse} response\n * @returns {HashgraphProto.proto.IResponseHeader}\n */\n _mapResponseHeader(response) {\n const transactionGetRecord =\n /** @type {HashgraphProto.proto.ITransactionGetRecordResponse} */ (\n response.transactionGetRecord\n );\n return /** @type {HashgraphProto.proto.IResponseHeader} */ (\n transactionGetRecord.header\n );\n }\n\n /**\n * @override\n * @internal\n * @param {HashgraphProto.proto.IResponse} response\n * @param {AccountId} nodeAccountId\n * @param {HashgraphProto.proto.IQuery} request\n * @returns {Promise}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _mapResponse(response, nodeAccountId, request) {\n const record =\n /** @type {HashgraphProto.proto.ITransactionGetRecordResponse} */ (\n response.transactionGetRecord\n );\n return Promise.resolve(TransactionRecord._fromProtobuf(record));\n }\n\n /**\n * @override\n * @internal\n * @param {HashgraphProto.proto.IQueryHeader} header\n * @returns {HashgraphProto.proto.IQuery}\n */\n _onMakeRequest(header) {\n return {\n transactionGetRecord: {\n header,\n transactionID:\n this._transactionId != null\n ? this._transactionId._toProtobuf()\n : null,\n includeChildRecords: this._includeChildren,\n includeDuplicates: this._includeDuplicates,\n },\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp =\n this._paymentTransactionId != null &&\n this._paymentTransactionId.validStart != null\n ? this._paymentTransactionId.validStart\n : this._timestamp;\n\n return `TransactionRecordQuery:${timestamp.toString()}`;\n }\n}\n\nQUERY_REGISTRY.set(\n \"transactionGetRecord\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n TransactionRecordQuery._fromProtobuf,\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport ReceiptStatusError from \"../ReceiptStatusError.js\";\nimport Status from \"../Status.js\";\nimport TransactionReceiptQuery from \"./TransactionReceiptQuery.js\";\nimport TransactionRecordQuery from \"./TransactionRecordQuery.js\";\nimport AccountId from \"../account/AccountId.js\";\nimport TransactionId from \"./TransactionId.js\";\nimport * as hex from \"../encoding/hex.js\";\n\n/**\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"./TransactionReceipt.js\").default} TransactionReceipt\n * @typedef {import(\"./TransactionRecord.js\").default} TransactionRecord\n * @typedef {import(\"../Signer.js\").Signer} Signer\n */\n\n/**\n * @typedef {object} TransactionResponseJSON\n * @property {string} nodeId\n * @property {string} transactionHash\n * @property {string} transactionId\n */\n\nexport default class TransactionResponse {\n /**\n * @internal\n * @param {object} props\n * @param {AccountId} props.nodeId\n * @param {Uint8Array} props.transactionHash\n * @param {TransactionId} props.transactionId\n */\n constructor(props) {\n /** @readonly */\n this.nodeId = props.nodeId;\n\n /** @readonly */\n this.transactionHash = props.transactionHash;\n\n /** @readonly */\n this.transactionId = props.transactionId;\n\n Object.freeze(this);\n }\n\n /**\n * @param {TransactionResponseJSON} json\n * @returns {TransactionResponse}\n */\n static fromJSON(json) {\n return new TransactionResponse({\n nodeId: AccountId.fromString(json.nodeId),\n transactionHash: hex.decode(json.transactionHash),\n transactionId: TransactionId.fromString(json.transactionId),\n });\n }\n\n /**\n * @param {Client} client\n * @returns {Promise}\n */\n async getReceipt(client) {\n const receipt = await this.getReceiptQuery().execute(client);\n\n if (\n receipt.status !== Status.Success &&\n receipt.status !== Status.FeeScheduleFilePartUploaded\n ) {\n throw new ReceiptStatusError({\n transactionReceipt: receipt,\n status: receipt.status,\n transactionId: this.transactionId,\n });\n }\n\n return receipt;\n }\n\n /**\n * getRecord is calling getReceipt and in case the receipt status code is not OK, only the receipt is returned.\n *\n * @param {Client} client\n * @returns {Promise}\n */\n async getRecord(client) {\n await this.getReceipt(client);\n\n return this.getRecordQuery().execute(client);\n }\n\n /**\n * getVerboseRecord is calling getReceipt and in case the receipt status code is not OK, the record is returned.\n *\n * @param {Client} client\n * @returns {Promise}\n */\n async getVerboseRecord(client) {\n try {\n // The receipt needs to be called in order to wait for transaction to be included in the consensus. Otherwise we are going to get \"DUPLICATE_TRANSACTION\".\n await this.getReceiptQuery().execute(client);\n return this.getRecordQuery().execute(client);\n } catch (e) {\n return this.getRecordQuery().execute(client);\n }\n }\n\n /**\n * @param {Signer} signer\n * @returns {Promise}\n */\n async getReceiptWithSigner(signer) {\n const receipt = await this.getReceiptQuery().executeWithSigner(signer);\n\n if (receipt.status !== Status.Success) {\n throw new ReceiptStatusError({\n transactionReceipt: receipt,\n status: receipt.status,\n transactionId: this.transactionId,\n });\n }\n\n return receipt;\n }\n\n /**\n * @param {Signer} signer\n * @returns {Promise}\n */\n async getRecordWithSigner(signer) {\n await this.getReceiptWithSigner(signer);\n\n return this.getRecordQuery().executeWithSigner(signer);\n }\n\n /**\n * @returns {TransactionReceiptQuery}\n */\n getReceiptQuery() {\n return new TransactionReceiptQuery()\n .setTransactionId(this.transactionId)\n .setNodeAccountIds([this.nodeId]);\n }\n\n /**\n * @returns {TransactionRecordQuery}\n */\n getRecordQuery() {\n return new TransactionRecordQuery()\n .setTransactionId(this.transactionId)\n .setNodeAccountIds([this.nodeId]);\n }\n\n /**\n * @returns {TransactionResponseJSON}\n */\n toJSON() {\n return {\n nodeId: this.nodeId.toString(),\n transactionHash: hex.encode(this.transactionHash),\n transactionId: this.transactionId.toString(),\n };\n }\n\n /**\n * @returns {string}\n */\n toString() {\n return JSON.stringify(this.toJSON());\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\n/**\n * @param {Uint8Array} data\n * @returns {Promise}\n */\nexport async function digest(data) {\n // https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/digest\n return new Uint8Array(await window.crypto.subtle.digest(\"SHA-384\", data));\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport AccountId from \"../account/AccountId.js\";\nimport * as sha384 from \"../cryptography/sha384.js\";\nimport ObjectMap from \"../ObjectMap.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n */\n\n/**\n * @augments {ObjectMap}\n */\nexport default class TransactionHashMap extends ObjectMap {\n constructor() {\n super((s) => AccountId.fromString(s));\n }\n\n /**\n * @param {import(\"./Transaction.js\").default} transaction\n * @returns {Promise}\n */\n static async _fromTransaction(transaction) {\n const hashes = new TransactionHashMap();\n\n for (let i = 0; i < transaction._nodeAccountIds.length; i++) {\n const nodeAccountId = transaction._nodeAccountIds.list[i];\n const tx = /** @type {HashgraphProto.proto.ITransaction} */ (\n transaction._transactions.get(i)\n );\n const hash = await sha384.digest(\n /** @type {Uint8Array} */ (tx.signedTransactionBytes),\n );\n\n hashes._set(nodeAccountId, hash);\n }\n\n return hashes;\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Hbar from \"../Hbar.js\";\nimport TransactionResponse from \"./TransactionResponse.js\";\nimport TransactionId from \"./TransactionId.js\";\nimport TransactionHashMap from \"./TransactionHashMap.js\";\nimport SignatureMap from \"./SignatureMap.js\";\nimport Executable, { ExecutionState } from \"../Executable.js\";\nimport Status from \"../Status.js\";\nimport Long from \"long\";\nimport * as sha384 from \"../cryptography/sha384.js\";\nimport * as hex from \"../encoding/hex.js\";\nimport * as HashgraphProto from \"@hashgraph/proto\";\nimport PrecheckStatusError from \"../PrecheckStatusError.js\";\nimport AccountId from \"../account/AccountId.js\";\nimport PublicKey from \"../PublicKey.js\";\nimport List from \"./List.js\";\nimport Timestamp from \"../Timestamp.js\";\nimport * as util from \"../util.js\";\n\n/**\n * @typedef {import(\"bignumber.js\").default} BigNumber\n */\n\n/**\n * @typedef {import(\"../schedule/ScheduleCreateTransaction.js\").default} ScheduleCreateTransaction\n * @typedef {import(\"../PrivateKey.js\").default} PrivateKey\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../Signer.js\").Signer} Signer\n */\n\n// 90 days (in seconds)\nexport const DEFAULT_AUTO_RENEW_PERIOD = Long.fromValue(7776000);\n\n// maximum value of i64 (so there is never a record generated)\nexport const DEFAULT_RECORD_THRESHOLD = Hbar.fromTinybars(\n Long.fromString(\"9223372036854775807\"),\n);\n\n// 120 seconds\nconst DEFAULT_TRANSACTION_VALID_DURATION = 120;\n\nexport const CHUNK_SIZE = 1024;\n\n/**\n * @type {Map, (transactions: HashgraphProto.proto.ITransaction[], signedTransactions: HashgraphProto.proto.ISignedTransaction[], transactionIds: TransactionId[], nodeIds: AccountId[], bodies: HashgraphProto.proto.TransactionBody[]) => Transaction>}\n */\nexport const TRANSACTION_REGISTRY = new Map();\n\n/**\n * Base class for all transactions that may be submitted to Hedera.\n *\n * @abstract\n * @augments {Executable}\n */\nexport default class Transaction extends Executable {\n // A SDK transaction is composed of multiple, raw protobuf transactions.\n // These should be functionally identical, with the exception of pointing to\n // different nodes.\n\n // When retrying a transaction after a network error or retry-able\n // status response, we try a different transaction and thus a different node.\n\n constructor() {\n super();\n\n /**\n * List of proto transactions that have been built from this SDK\n * transaction.\n *\n * This is a 2-D array built into one, meaning to\n * get to the next row you'd index into this array `row * rowLength + column`\n * where `rowLength` is `nodeAccountIds.length`\n *\n * @internal\n * @type {List}\n */\n this._transactions = new List();\n\n /**\n * List of proto transactions that have been built from this SDK\n * transaction.\n *\n * This is a 2-D array built into one, meaning to\n * get to the next row you'd index into this array `row * rowLength + column`\n * where `rowLength` is `nodeAccountIds.length`\n *\n * @internal\n * @type {List}\n */\n this._signedTransactions = new List();\n\n /**\n * Set of public keys (as string) who have signed this transaction so\n * we do not allow them to sign it again.\n *\n * @internal\n * @type {Set}\n */\n this._signerPublicKeys = new Set();\n\n /**\n * The transaction valid duration\n *\n * @private\n * @type {number}\n */\n this._transactionValidDuration = DEFAULT_TRANSACTION_VALID_DURATION;\n\n /**\n * The default max transaction fee for this particular transaction type.\n * Most transactions use the default of 2 Hbars, but some requests such\n * as `TokenCreateTransaction` need to use a different default value.\n *\n * @protected\n * @type {Hbar}\n */\n this._defaultMaxTransactionFee = new Hbar(2);\n\n /**\n * The max transaction fee on the request. This field is what users are able\n * to set, not the `defaultMaxTransactionFee`. The purpose of this field is\n * to allow us to determine if the user set the field explicitly, or if we're\n * using the default max transation fee for the request.\n *\n * @private\n * @type {Hbar | null}\n */\n this._maxTransactionFee = null;\n\n /**\n * The transaction's memo\n *\n * @private\n * @type {string}\n */\n this._transactionMemo = \"\";\n\n /**\n * The list of transaction IDs. This list will almost always be of length 1.\n * The only time this list will be a different length is for chunked transactions.\n * The only two chunked transactions supported right now are `FileAppendTransaction`\n * and `TopicMessageSubmitTransaction`\n *\n * @protected\n * @type {List}\n */\n this._transactionIds = new List();\n\n /**\n * A list of public keys that will be added to the requests signatures\n *\n * @private\n * @type {PublicKey[]}\n */\n this._publicKeys = [];\n\n /**\n * The list of signing function 1-1 with `_publicKeys` which sign the request.\n * The reason this list allows `null` is because if we go from bytes into\n * a transaction, then we know the public key, but we don't have the signing function.\n *\n * @private\n * @type {(((message: Uint8Array) => Promise) | null)[]}\n */\n this._transactionSigners = [];\n\n /**\n * Determine if we should regenerate transaction IDs when we receive `TRANSACITON_EXPIRED`\n *\n * @private\n * @type {?boolean}\n */\n this._regenerateTransactionId = null;\n }\n\n /**\n * Deserialize a transaction from bytes. The bytes can either be a `proto.Transaction` or\n * `proto.TransactionList`.\n *\n * @param {Uint8Array} bytes\n * @returns {Transaction}\n */\n static fromBytes(bytes) {\n /** @type {HashgraphProto.proto.ISignedTransaction[]} */\n const signedTransactions = [];\n\n /** @type {TransactionId[]} */\n const transactionIds = [];\n\n /** @type {AccountId[]} */\n const nodeIds = [];\n\n /** @type {string[]} */\n const transactionIdStrings = [];\n\n /** @type {string[]} */\n const nodeIdStrings = [];\n\n /** @type {HashgraphProto.proto.TransactionBody[]} */\n const bodies = [];\n\n const list =\n HashgraphProto.proto.TransactionList.decode(bytes).transactionList;\n\n // If the list is of length 0, then teh bytes provided were not a\n // `proto.TransactionList`\n //\n // FIXME: We should also check to make sure the bytes length is greater than\n // 0 otherwise this check is wrong?\n if (list.length === 0) {\n const transaction = HashgraphProto.proto.Transaction.decode(bytes);\n\n // We support `Transaction.signedTransactionBytes` and\n // `Transaction.bodyBytes` + `Transaction.sigMap`. If the bytes represent the\n // latter, convert them into `signedTransactionBytes`\n if (transaction.signedTransactionBytes.length !== 0) {\n list.push(transaction);\n } else {\n list.push({\n signedTransactionBytes:\n HashgraphProto.proto.SignedTransaction.encode({\n sigMap: transaction.sigMap,\n bodyBytes: transaction.bodyBytes,\n }).finish(),\n });\n }\n }\n\n // This loop is responsible for fill out the `signedTransactions`, `transactionIds`,\n // `nodeIds`, and `bodies` variables.\n for (const transaction of list) {\n // The `bodyBytes` or `signedTransactionBytes` should not be null\n if (\n transaction.bodyBytes == null &&\n transaction.signedTransactionBytes == null\n ) {\n throw new Error(\n \"bodyBytes and signedTransactionBytes are null\",\n );\n }\n\n if (transaction.bodyBytes && transaction.bodyBytes.length != 0) {\n // Decode a transaction\n const body = HashgraphProto.proto.TransactionBody.decode(\n transaction.bodyBytes,\n );\n\n // Make sure the transaction ID within the body is set\n if (body.transactionID != null) {\n const transactionId = TransactionId._fromProtobuf(\n /** @type {HashgraphProto.proto.ITransactionID} */ (\n body.transactionID\n ),\n );\n\n // If we haven't already seen this transaction ID in the list, add it\n if (\n !transactionIdStrings.includes(transactionId.toString())\n ) {\n transactionIds.push(transactionId);\n transactionIdStrings.push(transactionId.toString());\n }\n }\n\n // Make sure the node account ID within the body is set\n if (body.nodeAccountID != null) {\n const nodeAccountId = AccountId._fromProtobuf(\n /** @type {HashgraphProto.proto.IAccountID} */ (\n body.nodeAccountID\n ),\n );\n\n // If we haven't already seen this node account ID in the list, add it\n if (!nodeIdStrings.includes(nodeAccountId.toString())) {\n nodeIds.push(nodeAccountId);\n nodeIdStrings.push(nodeAccountId.toString());\n }\n }\n\n // Make sure the body is set\n if (body.data == null) {\n throw new Error(\n \"(BUG) body.data was not set in the protobuf\",\n );\n }\n\n bodies.push(body);\n }\n\n if (\n transaction.signedTransactionBytes &&\n transaction.signedTransactionBytes.length != 0\n ) {\n // Decode a signed transaction\n const signedTransaction =\n HashgraphProto.proto.SignedTransaction.decode(\n transaction.signedTransactionBytes,\n );\n\n signedTransactions.push(signedTransaction);\n\n // Decode a transaction body\n const body = HashgraphProto.proto.TransactionBody.decode(\n signedTransaction.bodyBytes,\n );\n\n // Make sure the transaction ID within the body is set\n if (body.transactionID != null) {\n const transactionId = TransactionId._fromProtobuf(\n /** @type {HashgraphProto.proto.ITransactionID} */ (\n body.transactionID\n ),\n );\n\n // If we haven't already seen this transaction ID in the list, add it\n if (\n !transactionIdStrings.includes(transactionId.toString())\n ) {\n transactionIds.push(transactionId);\n transactionIdStrings.push(transactionId.toString());\n }\n }\n\n // Make sure the node account ID within the body is set\n if (body.nodeAccountID != null) {\n const nodeAccountId = AccountId._fromProtobuf(\n /** @type {HashgraphProto.proto.IAccountID} */ (\n body.nodeAccountID\n ),\n );\n\n // If we haven't already seen this node account ID in the list, add it\n if (!nodeIdStrings.includes(nodeAccountId.toString())) {\n nodeIds.push(nodeAccountId);\n nodeIdStrings.push(nodeAccountId.toString());\n }\n }\n\n // Make sure the body is set\n if (body.data == null) {\n throw new Error(\n \"(BUG) body.data was not set in the protobuf\",\n );\n }\n\n bodies.push(body);\n }\n }\n\n // FIXME: We should have a length check before we access `0` since that would error\n const body = bodies[0];\n\n // We should have at least more than one body\n if (body == null || body.data == null) {\n throw new Error(\n \"No transaction found in bytes or failed to decode TransactionBody\",\n );\n }\n\n // Use the registry to call the right transaction's `fromProtobuf` method based\n // on the `body.data` string\n const fromProtobuf = TRANSACTION_REGISTRY.get(body.data); //NOSONAR\n\n // If we forgot to update the registry we should error\n if (fromProtobuf == null) {\n throw new Error(\n `(BUG) Transaction.fromBytes() not implemented for type ${body.data}`,\n );\n }\n\n // That the specific transaction type from protobuf implementation and pass in all the\n // information we've gathered.\n return fromProtobuf(\n list,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * Convert this transaction a `ScheduleCreateTransaction`\n *\n * @returns {ScheduleCreateTransaction}\n */\n schedule() {\n this._requireNotFrozen();\n\n if (SCHEDULE_CREATE_TRANSACTION.length != 1) {\n throw new Error(\n \"ScheduleCreateTransaction has not been loaded yet\",\n );\n }\n\n return SCHEDULE_CREATE_TRANSACTION[0]()._setScheduledTransaction(this);\n }\n\n /**\n * This method is called by each `*Transaction._fromProtobuf()` method. It does\n * all the finalization before the user gets hold of a complete `Transaction`\n *\n * @template {Transaction} TransactionT\n * @param {TransactionT} transaction\n * @param {HashgraphProto.proto.ITransaction[]} transactions\n * @param {HashgraphProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HashgraphProto.proto.ITransactionBody[]} bodies\n * @returns {TransactionT}\n */\n static _fromProtobufTransactions(\n transaction,\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n\n // \"row\" of the 2-D `bodies` array has all the same contents except for `nodeAccountID`\n for (let i = 0; i < transactionIds.length; i++) {\n for (let j = 0; j < nodeIds.length - 1; j++) {\n if (\n !util.compare(\n bodies[i * nodeIds.length + j],\n bodies[i * nodeIds.length + j + 1],\n // eslint-disable-next-line ie11/no-collection-args\n new Set([\"nodeAccountID\"]),\n )\n ) {\n throw new Error(\"failed to validate transaction bodies\");\n }\n }\n }\n\n // Remove node account IDs of 0\n // _IIRC_ this was initial due to some funny behavior with `ScheduleCreateTransaction`\n // We may be able to remove this.\n const zero = new AccountId(0);\n for (let i = 0; i < nodeIds.length; i++) {\n if (nodeIds[i].equals(zero)) {\n nodeIds.splice(i--, 1);\n }\n }\n\n // Set the transactions accordingly, but don't lock the list because transactions can\n // be regenerated if more signatures are added\n transaction._transactions.setList(transactions);\n\n // Set the signed transactions accordingly. Although, they\n // can be manipulated if for instance more signatures are added\n transaction._signedTransactions.setList(signedTransactions);\n\n // Set the transaction IDs accordingly\n transaction._transactionIds.setList(transactionIds);\n\n // Set the node account IDs accordingly\n transaction._nodeAccountIds.setList(nodeIds);\n\n // Make sure to update the rest of the fields\n transaction._transactionValidDuration =\n body.transactionValidDuration != null &&\n body.transactionValidDuration.seconds != null\n ? Long.fromValue(body.transactionValidDuration.seconds).toInt()\n : DEFAULT_TRANSACTION_VALID_DURATION;\n transaction._maxTransactionFee =\n body.transactionFee != null &&\n body.transactionFee > new Long(0, 0, true)\n ? Hbar.fromTinybars(body.transactionFee)\n : null;\n transaction._transactionMemo = body.memo != null ? body.memo : \"\";\n\n // Loop over a single row of `signedTransactions` and add all the public\n // keys to the `signerPublicKeys` set, and `publicKeys` list with\n // `null` in the `transactionSigners` at the same index.\n for (let i = 0; i < nodeIds.length; i++) {\n const tx = signedTransactions[i] || transactions[i];\n if (tx.sigMap != null && tx.sigMap.sigPair != null) {\n for (const sigPair of tx.sigMap.sigPair) {\n transaction._signerPublicKeys.add(\n hex.encode(\n /** @type {Uint8Array} */ (sigPair.pubKeyPrefix),\n ),\n );\n\n transaction._publicKeys.push(\n PublicKey.fromBytes(\n /** @type {Uint8Array} */ (sigPair.pubKeyPrefix),\n ),\n );\n transaction._transactionSigners.push(null);\n }\n }\n }\n\n return transaction;\n }\n\n /**\n * Set the node account IDs\n *\n * @override\n * @param {AccountId[]} nodeIds\n * @returns {this}\n */\n setNodeAccountIds(nodeIds) {\n // The reason we overwrite this method is simply because we need to call `requireNotFrozen()`\n // Now that I think of it, we could just add an abstract method `setterPrerequiest()` which\n // by default does nothing, and `Executable` can call. Then we'd only need to overwrite that\n // method once.\n this._requireNotFrozen();\n super.setNodeAccountIds(nodeIds);\n return this;\n }\n\n /**\n * Get the transaction valid duration\n *\n * @returns {number}\n */\n get transactionValidDuration() {\n return this._transactionValidDuration;\n }\n\n /**\n * Sets the duration (in seconds) that this transaction is valid for.\n *\n * This is defaulted to 120 seconds (from the time its executed).\n *\n * @param {number} validDuration\n * @returns {this}\n */\n setTransactionValidDuration(validDuration) {\n this._requireNotFrozen();\n this._transactionValidDuration = validDuration;\n\n return this;\n }\n\n /**\n * Get the max transaction fee\n *\n * @returns {?Hbar}\n */\n get maxTransactionFee() {\n return this._maxTransactionFee;\n }\n\n /**\n * Set the maximum transaction fee the operator (paying account)\n * is willing to pay.\n *\n * @param {number | string | Long | BigNumber | Hbar} maxTransactionFee\n * @returns {this}\n */\n setMaxTransactionFee(maxTransactionFee) {\n this._requireNotFrozen();\n this._maxTransactionFee =\n maxTransactionFee instanceof Hbar\n ? maxTransactionFee\n : new Hbar(maxTransactionFee);\n\n return this;\n }\n\n /**\n * Is transaction ID regeneration enabled\n *\n * @returns {?boolean}\n */\n get regenerateTransactionId() {\n return this._regenerateTransactionId;\n }\n\n /**\n * Set the maximum transaction fee the operator (paying account)\n * is willing to pay.\n *\n * @param {boolean} regenerateTransactionId\n * @returns {this}\n */\n setRegenerateTransactionId(regenerateTransactionId) {\n this._requireNotFrozen();\n this._regenerateTransactionId = regenerateTransactionId;\n\n return this;\n }\n\n /**\n * Get the transaction memo\n *\n * @returns {string}\n */\n get transactionMemo() {\n return this._transactionMemo;\n }\n\n /**\n * Set a note or description to be recorded in the transaction\n * record (maximum length of 100 bytes).\n *\n * @param {string} transactionMemo\n * @returns {this}\n */\n setTransactionMemo(transactionMemo) {\n this._requireNotFrozen();\n this._transactionMemo = transactionMemo;\n\n return this;\n }\n\n /**\n * Get the curent transaction ID\n *\n * @returns {?TransactionId}\n */\n get transactionId() {\n if (this._transactionIds.isEmpty) {\n return null;\n }\n\n // If a user calls `.transactionId` that means we need to use that transaction ID\n // and **not** regenerate it. To do this, we simply lock the transaction ID list.\n //\n // This may be a little conffusing since a user can enable transaction ID regenration\n // explicity, but if they call `.transactionId` then we will not regenerate transaction\n // IDs.\n this._transactionIds.setLocked();\n\n return this._transactionIds.current;\n }\n\n /**\n * Set the ID for this transaction.\n *\n * The transaction ID includes the operator's account ( the account paying the transaction\n * fee). If two transactions have the same transaction ID, they won't both have an effect. One\n * will complete normally and the other will fail with a duplicate transaction status.\n *\n * Normally, you should not use this method. Just before a transaction is executed, a\n * transaction ID will be generated from the operator on the client.\n *\n * @param {TransactionId} transactionId\n * @returns {this}\n */\n setTransactionId(transactionId) {\n this._requireNotFrozen();\n this._transactionIds.setList([transactionId]).setLocked();\n\n return this;\n }\n\n /**\n * How many chunk sizes are expected\n * @abstract\n * @internal\n * @returns {number}\n */\n getRequiredChunks() {\n return 1;\n }\n\n /**\n * Sign the transaction with the private key\n * **NOTE**: This is a thin wrapper around `.signWith()`\n *\n * @param {PrivateKey} privateKey\n * @returns {Promise}\n */\n sign(privateKey) {\n return this.signWith(privateKey.publicKey, (message) =>\n Promise.resolve(privateKey.sign(message)),\n );\n }\n\n /**\n * Sign the transaction with the public key and signer function\n *\n * If sign on demand is enabled no signing will be done immediately, instead\n * the private key signing function and public key are saved to be used when\n * a user calls an exit condition method (not sure what a better name for this is)\n * such as `toBytes[Async]()`, `getTransactionHash[PerNode]()` or `execute()`.\n *\n * @param {PublicKey} publicKey\n * @param {(message: Uint8Array) => Promise} transactionSigner\n * @returns {Promise}\n */\n async signWith(publicKey, transactionSigner) {\n // If signing on demand is disabled, we need to make sure\n // the request is frozen\n if (!this._signOnDemand) {\n this._requireFrozen();\n }\n const publicKeyData = publicKey.toBytesRaw();\n\n // note: this omits the DER prefix on purpose because Hedera doesn't\n // support that in the protobuf. this means that we would fail\n // to re-inflate [this._signerPublicKeys] during [fromBytes] if we used DER\n // prefixes here\n const publicKeyHex = hex.encode(publicKeyData);\n\n if (this._signerPublicKeys.has(publicKeyHex)) {\n // this public key has already signed this transaction\n return this;\n }\n\n // If we add a new signer, then we need to re-create all transactions\n this._transactions.clear();\n\n // Save the current public key so we don't attempt to sign twice\n this._signerPublicKeys.add(publicKeyHex);\n\n // If signing on demand is enabled we will save the public key and signer and return\n if (this._signOnDemand) {\n this._publicKeys.push(publicKey);\n this._transactionSigners.push(transactionSigner);\n\n return this;\n }\n\n // If we get here, signing on demand is disabled, this means the transaction\n // is frozen and we need to sign all the transactions immediately. If we're\n // signing all the transactions immediately, we need to lock the node account IDs\n // and transaction IDs.\n // Now that I think of it, this code should likely exist in `freezeWith()`?\n this._transactionIds.setLocked();\n this._nodeAccountIds.setLocked();\n\n // Sign each signed transatcion\n for (const signedTransaction of this._signedTransactions.list) {\n const bodyBytes = /** @type {Uint8Array} */ (\n signedTransaction.bodyBytes\n );\n const signature = await transactionSigner(bodyBytes);\n\n if (signedTransaction.sigMap == null) {\n signedTransaction.sigMap = {};\n }\n\n if (signedTransaction.sigMap.sigPair == null) {\n signedTransaction.sigMap.sigPair = [];\n }\n\n signedTransaction.sigMap.sigPair.push(\n publicKey._toProtobufSignature(signature),\n );\n }\n\n return this;\n }\n\n /**\n * Sign the transaction with the client operator. This is a thin wrapper\n * around `.signWith()`\n *\n * **NOTE**: If client does not have an operator set, this method will throw\n *\n * @param {import(\"../client/Client.js\").default} client\n * @returns {Promise}\n */\n signWithOperator(client) {\n const operator = client._operator;\n\n if (operator == null) {\n throw new Error(\n \"`client` must have an operator to sign with the operator\",\n );\n }\n\n if (!this._isFrozen()) {\n this.freezeWith(client);\n }\n\n return this.signWith(operator.publicKey, operator.transactionSigner);\n }\n\n /**\n * Add a signature explicitly\n *\n * @param {PublicKey} publicKey\n * @param {SignatureMap} signatureMap\n * @returns {this}\n */\n addSignature(publicKey, signatureMap) {\n // If the transaction isn't frozen, freeze it.\n if (!this.isFrozen()) {\n this.freeze();\n }\n\n const publicKeyData = publicKey.toBytesRaw();\n const publicKeyHex = hex.encode(publicKeyData);\n\n if (this._signerPublicKeys.has(publicKeyHex)) {\n // this public key has already signed this transaction\n return this;\n }\n\n // If we add a new signer, then we need to re-create all transactions\n this._transactions.clear();\n\n // Locking the transaction IDs and node account IDs is necessary for consistency\n // between before and after execution\n this._transactionIds.setLocked();\n this._nodeAccountIds.setLocked();\n this._signedTransactions.setLocked();\n\n // Add the signature to the signed transaction list\n for (let index = 0; index < this._signedTransactions.length; index++) {\n const signedTransaction = this._signedTransactions.get(index);\n if (signedTransaction.sigMap == null) {\n signedTransaction.sigMap = {};\n }\n\n if (signedTransaction.sigMap.sigPair == null) {\n signedTransaction.sigMap.sigPair = [];\n }\n\n if (signedTransaction.bodyBytes) {\n const { transactionID, nodeAccountID } =\n HashgraphProto.proto.TransactionBody.decode(\n signedTransaction.bodyBytes,\n );\n\n if (!transactionID || !nodeAccountID) {\n throw new Error(\n \"Transaction ID or Node Account ID not found in the signed transaction\",\n );\n }\n\n const transactionId =\n TransactionId._fromProtobuf(transactionID);\n const nodeAccountId = AccountId._fromProtobuf(nodeAccountID);\n\n const nodeSignatures = signatureMap.get(nodeAccountId);\n const transactionSignatures =\n nodeSignatures?.get(transactionId);\n const signature = transactionSignatures?.get(publicKey);\n\n if (!signature) {\n throw new Error(\n \"Signature not found for the transaction and public key\",\n );\n }\n const sigPair = publicKey._toProtobufSignature(signature);\n signedTransaction.sigMap?.sigPair?.push(sigPair);\n }\n }\n\n this._signerPublicKeys.add(publicKeyHex);\n this._publicKeys.push(publicKey);\n this._transactionSigners.push(null);\n\n return this;\n }\n\n /**\n * This method removes all signatures from the transaction based on the public key provided.\n *\n * @param {PublicKey} publicKey - The public key associated with the signature to remove.\n * @returns {Uint8Array[]} The removed signatures.\n */\n removeSignature(publicKey) {\n if (!this.isFrozen()) {\n this.freeze();\n }\n\n const publicKeyData = publicKey.toBytesRaw();\n const publicKeyHex = hex.encode(publicKeyData);\n\n if (!this._signerPublicKeys.has(publicKeyHex)) {\n throw new Error(\"The public key has not signed this transaction\");\n }\n\n /** @type {Uint8Array[]} */\n const removedSignatures = [];\n\n // Iterate over the signed transactions and remove matching signatures\n for (const transaction of this._signedTransactions.list) {\n const removedSignaturesFromTransaction =\n this._removeSignaturesFromTransaction(\n transaction,\n publicKeyHex,\n );\n\n removedSignatures.push(...removedSignaturesFromTransaction);\n }\n\n // Remove the public key from internal tracking if no signatures remain\n this._signerPublicKeys.delete(publicKeyHex);\n this._publicKeys = this._publicKeys.filter(\n (key) => !key.equals(publicKey),\n );\n\n // Update transaction signers array\n this._transactionSigners.pop();\n\n return removedSignatures;\n }\n\n /**\n * This method clears all signatures from the transaction and returns them in a specific format.\n *\n * It will call collectSignatures to get the removed signatures, then clear all signatures\n * from the internal tracking.\n *\n * @returns { Map } The removed signatures in the specified format.\n */\n removeAllSignatures() {\n if (!this.isFrozen()) {\n this.freeze();\n }\n\n const removedSignatures = this._collectSignaturesByPublicKey();\n\n // Iterate over the signed transactions and clear all signatures\n for (const transaction of this._signedTransactions.list) {\n if (transaction.sigMap && transaction.sigMap.sigPair) {\n // Clear all signature pairs from the transaction's signature map\n transaction.sigMap.sigPair = [];\n }\n }\n\n // Clear the internal tracking of signer public keys and other relevant arrays\n this._signerPublicKeys.clear();\n this._publicKeys = [];\n this._transactionSigners = [];\n\n return removedSignatures;\n }\n\n /**\n * Get the current signatures on the request\n *\n * **NOTE**: Does NOT support sign on demand\n *\n * @returns {SignatureMap}\n */\n getSignatures() {\n // If a user is attempting to get signatures for a transaction, then the\n // transaction must be frozen.\n this._requireFrozen();\n\n // Sign on demand must be disabled because this is the non-async version and\n // signing requires awaiting callbacks.\n this._requireNotSignOnDemand();\n\n // Build all the transactions\n this._buildAllTransactions();\n\n // Lock transaction IDs, and node account IDs\n this._transactionIds.setLocked();\n this._nodeAccountIds.setLocked();\n\n // Construct a signature map from this transaction\n return SignatureMap._fromTransaction(this);\n }\n\n /**\n * Get the current signatures on the request\n *\n * **NOTE**: Supports sign on demand\n *\n * @returns {Promise}\n */\n async getSignaturesAsync() {\n // If sign on demand is enabled, we don't need to care about being frozen\n // since we can just regenerate and resign later if some field of the transaction\n // changes.\n\n // Locking the transaction IDs and node account IDs is necessary for consistency\n // between before and after execution\n this._transactionIds.setLocked();\n this._nodeAccountIds.setLocked();\n\n // Build all transactions, and sign them\n await this._buildAllTransactionsAsync();\n\n // Lock transaction IDs, and node account IDs\n this._transactions.setLocked();\n this._signedTransactions.setLocked();\n\n // Construct a signature map from this transaction\n return SignatureMap._fromTransaction(this);\n }\n\n /**\n * Not sure why this is called `setTransactionId()` when it doesn't set anything...\n * FIXME: Remove this?\n */\n _setTransactionId() {\n if (this._operatorAccountId == null && this._transactionIds.isEmpty) {\n throw new Error(\n \"`transactionId` must be set or `client` must be provided with `freezeWith`\",\n );\n }\n }\n\n /**\n * Set the node account IDs using the client\n *\n * @param {?import(\"../client/Client.js\").default} client\n */\n _setNodeAccountIds(client) {\n if (!this._nodeAccountIds.isEmpty) {\n return;\n }\n\n if (client == null) {\n throw new Error(\n \"`nodeAccountId` must be set or `client` must be provided with `freezeWith`\",\n );\n }\n\n this._nodeAccountIds.setList(\n client._network.getNodeAccountIdsForExecute(),\n );\n }\n\n /**\n * Build all the signed transactions from the node account IDs\n *\n * @private\n */\n _buildSignedTransactions() {\n if (this._signedTransactions.locked) {\n return;\n }\n\n this._signedTransactions.setList(\n this._nodeAccountIds.list.map((nodeId) =>\n this._makeSignedTransaction(nodeId),\n ),\n );\n }\n\n /**\n * Build all the signed transactions from the node account IDs\n *\n * @internal\n */\n _buildIncompleteTransactions() {\n if (this._nodeAccountIds.length == 0) {\n this._transactions.setList([this._makeSignedTransaction(null)]);\n } else {\n // In case the node account ids are set\n this._transactions.setList(\n this._nodeAccountIds.list.map((nodeId) =>\n this._makeSignedTransaction(nodeId),\n ),\n );\n }\n }\n\n /**\n * Freeze this transaction from future modification to prepare for\n * signing or serialization.\n *\n * @returns {this}\n */\n freeze() {\n return this.freezeWith(null);\n }\n\n /**\n * @param {?AccountId} accountId\n */\n _freezeWithAccountId(accountId) {\n if (this._operatorAccountId == null) {\n this._operatorAccountId = accountId;\n }\n }\n\n /**\n * Freeze this transaction from further modification to prepare for\n * signing or serialization.\n *\n * Will use the `Client`, if available, to generate a default Transaction ID and select 1/3\n * nodes to prepare this transaction for.\n *\n * @param {?import(\"../client/Client.js\").default} client\n * @returns {this}\n */\n freezeWith(client) {\n // Set sign on demand based on client\n this._signOnDemand = client != null ? client.signOnDemand : false;\n\n // Save the operator\n this._operator = client != null ? client._operator : null;\n this._freezeWithAccountId(\n client != null ? client.operatorAccountId : null,\n );\n\n // Set max transaction fee to either `this._maxTransactionFee`,\n // `client._defaultMaxTransactionFee`, or `this._defaultMaxTransactionFee`\n // in that priority order depending on if `this._maxTransactionFee` has\n // been set or if `client._defaultMaxTransactionFee` has been set.\n this._maxTransactionFee =\n this._maxTransactionFee == null\n ? client != null && client.defaultMaxTransactionFee != null\n ? client.defaultMaxTransactionFee\n : this._defaultMaxTransactionFee\n : this._maxTransactionFee;\n\n // Determine if transaction ID generation should be enabled.\n this._regenerateTransactionId =\n client != null && this._regenerateTransactionId == null\n ? client.defaultRegenerateTransactionId\n : this._regenerateTransactionId;\n\n // Set the node account IDs via client\n this._setNodeAccountIds(client);\n\n // Make sure a transaction ID or operator is set.\n this._setTransactionId();\n\n // If a client was not provided, we need to make sure the transaction ID already set\n // validates aginst the client.\n if (client != null) {\n for (const transactionId of this._transactionIds.list) {\n if (transactionId.accountId != null) {\n transactionId.accountId.validateChecksum(client);\n }\n }\n }\n\n // Build a list of transaction IDs so that if a user calls `.transactionId` they'll\n // get a value, but if they dont' we'll just regenerate transaction IDs during execution\n this._buildNewTransactionIdList();\n\n // If sign on demand is disabled we need to build out all the signed transactions\n if (!this._signOnDemand) {\n this._buildSignedTransactions();\n }\n\n return this;\n }\n\n /**\n * Sign the transaction using a signer\n *\n * This is part of the signature provider feature\n *\n * @param {Signer} signer\n * @returns {Promise}\n */\n async signWithSigner(signer) {\n await signer.signTransaction(this);\n return this;\n }\n\n /**\n * Freeze the transaction using a signer\n *\n * This is part of the signature provider feature.\n *\n * @param {Signer} signer\n * @returns {Promise}\n */\n async freezeWithSigner(signer) {\n await signer.populateTransaction(this);\n this.freeze();\n return this;\n }\n\n /**\n * Serialize the request into bytes. This will encode all the transactions\n * into a `proto.TransactionList` and return the encoded protobuf.\n *\n * **NOTE**: Does not support sign on demand\n *\n * @returns {Uint8Array}\n */\n toBytes() {\n // Sign on demand must be disabled because this is the non-async version and\n // signing requires awaiting callbacks.\n this._requireNotSignOnDemand();\n\n if (this._isFrozen()) {\n // Locking the transaction IDs and node account IDs is necessary for consistency\n // between before and after execution\n this._transactionIds.setLocked();\n this._nodeAccountIds.setLocked();\n\n // Build all the transactions without signing\n this._buildAllTransactions();\n } else {\n this._buildIncompleteTransactions();\n }\n\n // Construct and encode the transaction list\n return HashgraphProto.proto.TransactionList.encode({\n transactionList:\n /** @type {HashgraphProto.proto.ITransaction[]} */ (\n this._transactions.list\n ),\n }).finish();\n }\n\n /**\n * Serialize the transaction into bytes\n *\n * **NOTE**: Supports sign on demand\n *\n * @returns {Promise}\n */\n async toBytesAsync() {\n // If sign on demand is enabled, we don't need to care about being frozen\n // since we can just regenerate and resign later if some field of the transaction\n // changes.\n\n // Locking the transaction IDs and node account IDs is necessary for consistency\n // between before and after execution\n this._transactionIds.setLocked();\n this._nodeAccountIds.setLocked();\n\n // Build all transactions, and sign them\n await this._buildAllTransactionsAsync();\n\n // Lock transaction IDs, and node account IDs\n this._transactions.setLocked();\n this._signedTransactions.setLocked();\n\n // Construct and encode the transaction list\n return HashgraphProto.proto.TransactionList.encode({\n transactionList:\n /** @type {HashgraphProto.proto.ITransaction[]} */ (\n this._transactions.list\n ),\n }).finish();\n }\n\n /**\n * Get the transaction hash\n *\n * @returns {Promise}\n */\n async getTransactionHash() {\n this._requireFrozen();\n\n // Locking the transaction IDs and node account IDs is necessary for consistency\n // between before and after execution\n this._transactionIds.setLocked();\n this._nodeAccountIds.setLocked();\n\n await this._buildAllTransactionsAsync();\n\n this._transactions.setLocked();\n this._signedTransactions.setLocked();\n\n return sha384.digest(\n /** @type {Uint8Array} */ (\n /** @type {HashgraphProto.proto.ITransaction} */ (\n this._transactions.get(0)\n ).signedTransactionBytes\n ),\n );\n }\n\n /**\n * Get all the transaction hashes\n *\n * @returns {Promise}\n */\n async getTransactionHashPerNode() {\n this._requireFrozen();\n\n // Locking the transaction IDs and node account IDs is necessary for consistency\n // between before and after execution\n this._transactionIds.setLocked();\n this._nodeAccountIds.setLocked();\n\n await this._buildAllTransactionsAsync();\n\n return await TransactionHashMap._fromTransaction(this);\n }\n\n /**\n * Is transaction frozen\n *\n * @returns {boolean}\n */\n isFrozen() {\n return this._signedTransactions.length > 0;\n }\n\n /**\n * Get the current transaction ID, and make sure it's not null\n *\n * @protected\n * @returns {TransactionId}\n */\n _getTransactionId() {\n const transactionId = this.transactionId;\n if (transactionId == null) {\n throw new Error(\n \"transaction must have been frozen before getting the transaction ID, try calling `freeze`\",\n );\n }\n return transactionId;\n }\n\n /**\n * @param {Client} client\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars,@typescript-eslint/no-empty-function\n _validateChecksums(client) {\n // Do nothing\n }\n\n /**\n * Before we proceed execution, we need to do a couple checks\n *\n * @override\n * @protected\n * @param {import(\"../client/Client.js\").default} client\n * @returns {Promise}\n */\n async _beforeExecute(client) {\n // Assign the account IDs to which the transaction should be sent.\n this.transactionNodeIds = Object.values(client.network).map(\n (accountNodeId) => accountNodeId.toString(),\n );\n\n if (this._logger) {\n this._logger.info(\n `Network used: ${client._network.networkName}`, // eslint-disable-line @typescript-eslint/restrict-template-expressions\n );\n }\n\n // Make sure we're frozen\n if (!this._isFrozen()) {\n this.freezeWith(client);\n }\n\n // Valid checksums if the option is enabled\n if (client.isAutoValidateChecksumsEnabled()) {\n this._validateChecksums(client);\n }\n\n // Set the operator if the client has one and the current operator is nullish\n if (this._operator == null || this._operator == undefined) {\n this._operator = client != null ? client._operator : null;\n }\n\n if (\n this._operatorAccountId == null ||\n this._operatorAccountId == undefined\n ) {\n this._operatorAccountId =\n client != null && client._operator != null\n ? client._operator.accountId\n : null;\n }\n\n // If the client has an operator, sign this request with the operator\n if (this._operator != null) {\n await this.signWith(\n this._operator.publicKey,\n this._operator.transactionSigner,\n );\n }\n }\n\n /**\n * Construct a protobuf transaction\n *\n * @override\n * @internal\n * @returns {Promise}\n */\n async _makeRequestAsync() {\n // The index for the transaction\n const index =\n this._transactionIds.index * this._nodeAccountIds.length +\n this._nodeAccountIds.index;\n\n // If sign on demand is disabled we need to simply build that transaction\n // and return the result, without signing\n if (!this._signOnDemand) {\n this._buildTransaction(index);\n return /** @type {HashgraphProto.proto.ITransaction} */ (\n this._transactions.get(index)\n );\n }\n\n // Build and sign a transaction\n return await this._buildTransactionAsync();\n }\n\n /**\n * Sign a `proto.SignedTransaction` with all the keys\n *\n * @private\n * @returns {Promise}\n */\n async _signTransaction() {\n const signedTransaction = this._makeSignedTransaction(\n this._nodeAccountIds.next,\n );\n\n const bodyBytes = /** @type {Uint8Array} */ (\n signedTransaction.bodyBytes\n );\n\n for (let j = 0; j < this._publicKeys.length; j++) {\n const publicKey = this._publicKeys[j];\n const transactionSigner = this._transactionSigners[j];\n\n if (transactionSigner == null) {\n continue;\n }\n\n const signature = await transactionSigner(bodyBytes);\n\n if (signedTransaction.sigMap == null) {\n signedTransaction.sigMap = {};\n }\n\n if (signedTransaction.sigMap.sigPair == null) {\n signedTransaction.sigMap.sigPair = [];\n }\n\n signedTransaction.sigMap.sigPair.push(\n publicKey._toProtobufSignature(signature),\n );\n }\n\n return signedTransaction;\n }\n\n /**\n * Construct a new transaction ID at the current index\n *\n * @private\n */\n _buildNewTransactionIdList() {\n if (this._transactionIds.locked || this._operatorAccountId == null) {\n return;\n }\n\n const transactionId = TransactionId.withValidStart(\n this._operatorAccountId,\n Timestamp.generate(),\n );\n\n this._transactionIds.set(this._transactionIds.index, transactionId);\n }\n\n /**\n * Build each signed transaction in a loop\n *\n * @internal\n */\n _buildAllTransactions() {\n for (let i = 0; i < this._signedTransactions.length; i++) {\n this._buildTransaction(i);\n }\n }\n\n /**\n * Build and and sign each transaction in a loop\n *\n * This method is primary used in the exist condition methods\n * which are not `execute()`, e.g. `toBytesAsync()` and `getSignaturesAsync()`\n *\n * @private\n */\n async _buildAllTransactionsAsync() {\n if (!this._signOnDemand) {\n this._buildAllTransactions();\n return;\n }\n\n this._buildSignedTransactions();\n\n if (this._transactions.locked) {\n return;\n }\n\n for (let i = 0; i < this._signedTransactions.length; i++) {\n this._transactions.push(await this._buildTransactionAsync());\n }\n }\n\n /**\n * Build a transaction at a particular index\n *\n * @internal\n * @param {number} index\n */\n _buildTransaction(index) {\n if (this._transactions.length < index) {\n for (let i = this._transactions.length; i < index; i++) {\n this._transactions.push(null);\n }\n }\n\n // In case when an incomplete transaction is created, serialized and\n // deserialized,and then the transaction being frozen, the copy of the\n // incomplete transaction must be updated in order to be prepared for execution\n if (this._transactions.list[index] != null) {\n this._transactions.set(index, {\n signedTransactionBytes:\n HashgraphProto.proto.SignedTransaction.encode(\n this._signedTransactions.get(index),\n ).finish(),\n });\n }\n\n this._transactions.setIfAbsent(index, () => {\n return {\n signedTransactionBytes:\n HashgraphProto.proto.SignedTransaction.encode(\n this._signedTransactions.get(index),\n ).finish(),\n };\n });\n }\n\n /**\n * Build a trransaction using the current index, where the current\n * index is determined by `this._nodeAccountIds.index` and\n * `this._transactionIds.index`\n *\n * @private\n * @returns {Promise}\n */\n async _buildTransactionAsync() {\n return {\n signedTransactionBytes:\n HashgraphProto.proto.SignedTransaction.encode(\n await this._signTransaction(),\n ).finish(),\n };\n }\n\n /**\n * Determine what execution state we're in.\n *\n * @override\n * @internal\n * @param {HashgraphProto.proto.ITransaction} request\n * @param {HashgraphProto.proto.ITransactionResponse} response\n * @returns {[Status, ExecutionState]}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _shouldRetry(request, response) {\n const { nodeTransactionPrecheckCode } = response;\n\n // Get the node precheck code, and convert it into an SDK `Status`\n const status = Status._fromCode(\n nodeTransactionPrecheckCode != null\n ? nodeTransactionPrecheckCode\n : HashgraphProto.proto.ResponseCodeEnum.OK,\n );\n\n if (this._logger) {\n this._logger.debug(\n `[${this._getLogId()}] received status ${status.toString()}`,\n );\n this._logger.info(\n `SDK Transaction Status Response: ${status.toString()}`,\n );\n }\n\n // Based on the status what execution state are we in\n switch (status) {\n case Status.Busy:\n case Status.Unknown:\n case Status.PlatformTransactionNotCreated:\n case Status.PlatformNotActive:\n return [status, ExecutionState.Retry];\n case Status.Ok:\n return [status, ExecutionState.Finished];\n case Status.TransactionExpired:\n if (\n this._transactionIds.locked ||\n (this._regenerateTransactionId != null &&\n !this._regenerateTransactionId)\n ) {\n return [status, ExecutionState.Error];\n } else {\n this._buildNewTransactionIdList();\n return [status, ExecutionState.Retry];\n }\n default:\n return [status, ExecutionState.Error];\n }\n }\n\n /**\n * Map the request and response into a precheck status error\n *\n * @override\n * @internal\n * @param {HashgraphProto.proto.ITransaction} request\n * @param {HashgraphProto.proto.ITransactionResponse} response\n * @param {AccountId} nodeId\n * @returns {Error}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _mapStatusError(request, response, nodeId) {\n const { nodeTransactionPrecheckCode } = response;\n\n const status = Status._fromCode(\n nodeTransactionPrecheckCode != null\n ? nodeTransactionPrecheckCode\n : HashgraphProto.proto.ResponseCodeEnum.OK,\n );\n if (this._logger) {\n this._logger.info(\n // @ts-ignore\n `Transaction Error Info: ${status.toString()}, ${this.transactionId.toString()}`, // eslint-disable-line @typescript-eslint/restrict-template-expressions\n );\n }\n\n return new PrecheckStatusError({\n nodeId,\n status,\n transactionId: this._getTransactionId(),\n contractFunctionResult: null,\n });\n }\n\n /**\n * Map the request, response, and node account ID into a `TransactionResponse`\n *\n * @override\n * @protected\n * @param {HashgraphProto.proto.ITransactionResponse} response\n * @param {AccountId} nodeId\n * @param {HashgraphProto.proto.ITransaction} request\n * @returns {Promise}\n */\n async _mapResponse(response, nodeId, request) {\n const transactionHash = await sha384.digest(\n /** @type {Uint8Array} */ (request.signedTransactionBytes),\n );\n const transactionId = this._getTransactionId();\n\n this._transactionIds.advance();\n if (this._logger) {\n this._logger.info(\n `Transaction Info: ${JSON.stringify(\n new TransactionResponse({\n nodeId,\n transactionHash,\n transactionId,\n }).toJSON(),\n )}`,\n );\n }\n\n return new TransactionResponse({\n nodeId,\n transactionHash,\n transactionId,\n });\n }\n\n /**\n * Make a signed transaction given a node account ID\n *\n * @internal\n * @param {?AccountId} nodeId\n * @returns {HashgraphProto.proto.ISignedTransaction}\n */\n _makeSignedTransaction(nodeId) {\n const body = this._makeTransactionBody(nodeId);\n if (this._logger) {\n this._logger.info(`Transaction Body: ${JSON.stringify(body)}`);\n }\n const bodyBytes =\n HashgraphProto.proto.TransactionBody.encode(body).finish();\n\n return {\n sigMap: {\n sigPair: [],\n },\n bodyBytes,\n };\n }\n\n /**\n * Make a protobuf transaction body\n *\n * @private\n * @param {?AccountId} nodeId\n * @returns {HashgraphProto.proto.ITransactionBody}\n */\n _makeTransactionBody(nodeId) {\n return {\n [this._getTransactionDataCase()]: this._makeTransactionData(),\n transactionFee:\n this._maxTransactionFee != null\n ? this._maxTransactionFee.toTinybars()\n : null,\n memo: this._transactionMemo,\n transactionID:\n this._transactionIds.current != null\n ? this._transactionIds.current._toProtobuf()\n : null,\n nodeAccountID: nodeId != null ? nodeId._toProtobuf() : null,\n transactionValidDuration: {\n seconds: Long.fromNumber(this._transactionValidDuration),\n },\n };\n }\n\n /**\n * This method returns a key for the `data` field in a transaction body.\n * Each transaction overwrite this to make sure when we build the transaction body\n * we set the right data field.\n *\n * @abstract\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n throw new Error(\"not implemented\");\n }\n\n /**\n * Make a scheduled transaction body\n * FIXME: Should really call this `makeScheduledTransactionBody` to be consistent\n *\n * @internal\n * @returns {HashgraphProto.proto.ISchedulableTransactionBody}\n */\n _getScheduledTransactionBody() {\n return {\n memo: this.transactionMemo,\n transactionFee:\n this._maxTransactionFee == null\n ? this._defaultMaxTransactionFee.toTinybars()\n : this._maxTransactionFee.toTinybars(),\n [this._getTransactionDataCase()]: this._makeTransactionData(),\n };\n }\n\n /**\n * Make the transaction body data.\n *\n * @abstract\n * @protected\n * @returns {object}\n */\n _makeTransactionData() {\n throw new Error(\"not implemented\");\n }\n\n /**\n * FIXME: Why do we have `isFrozen` and `_isFrozen()`?\n *\n * @protected\n * @returns {boolean}\n */\n _isFrozen() {\n return this._signOnDemand || this._signedTransactions.length > 0;\n }\n\n /**\n * Require the transaction to NOT be frozen\n *\n * @internal\n */\n _requireNotFrozen() {\n if (this._isFrozen()) {\n throw new Error(\n \"transaction is immutable; it has at least one signature or has been explicitly frozen\",\n );\n }\n }\n\n /**\n * Require the transaction to have sign on demand disabled\n *\n * @internal\n */\n _requireNotSignOnDemand() {\n if (this._signOnDemand) {\n throw new Error(\n \"Please use `toBytesAsync()` if `signOnDemand` is enabled\",\n );\n }\n }\n\n /**\n * Require the transaction to be frozen\n *\n * @internal\n */\n _requireFrozen() {\n if (!this._isFrozen()) {\n throw new Error(\n \"transaction must have been frozen before calculating the hash will be stable, try calling `freeze`\",\n );\n }\n }\n\n /**\n * Require the transaction to have a single node account ID set\n *\n * @internal\n * @protected\n */\n _requireOneNodeAccountId() {\n if (this._nodeAccountIds.length != 1) {\n throw \"transaction did not have exactly one node ID set\";\n }\n }\n\n /**\n * @param {HashgraphProto.proto.Transaction} request\n * @returns {Uint8Array}\n */\n _requestToBytes(request) {\n return HashgraphProto.proto.Transaction.encode(request).finish();\n }\n\n /**\n * @param {HashgraphProto.proto.TransactionResponse} response\n * @returns {Uint8Array}\n */\n _responseToBytes(response) {\n return HashgraphProto.proto.TransactionResponse.encode(\n response,\n ).finish();\n }\n\n /**\n * Removes all signatures from a transaction and collects the removed signatures.\n *\n * @param {HashgraphProto.proto.ISignedTransaction} transaction - The transaction object to process.\n * @param {string} publicKeyHex - The hexadecimal representation of the public key.\n * @returns {Uint8Array[]} An array of removed signatures.\n */\n _removeSignaturesFromTransaction(transaction, publicKeyHex) {\n /** @type {Uint8Array[]} */\n const removedSignatures = [];\n\n if (!transaction.sigMap || !transaction.sigMap.sigPair) {\n return [];\n }\n\n transaction.sigMap.sigPair = transaction.sigMap.sigPair.filter(\n (sigPair) => {\n const shouldRemove = this._shouldRemoveSignature(\n sigPair,\n publicKeyHex,\n );\n const signature = sigPair.ed25519 ?? sigPair.ECDSASecp256k1;\n\n if (shouldRemove && signature) {\n removedSignatures.push(signature);\n }\n\n return !shouldRemove;\n },\n );\n\n return removedSignatures;\n }\n\n /**\n * Determines whether a signature should be removed based on the provided public key.\n *\n * @param {HashgraphProto.proto.ISignaturePair} sigPair - The signature pair object that contains\n * the public key prefix and signature to be evaluated.\n * @param {string} publicKeyHex - The hexadecimal representation of the public key to compare against.\n * @returns {boolean} `true` if the public key prefix in the signature pair matches the provided public key,\n * indicating that the signature should be removed; otherwise, `false`.\n */\n _shouldRemoveSignature = (sigPair, publicKeyHex) => {\n const sigPairPublicKeyHex = hex.encode(\n sigPair?.pubKeyPrefix || new Uint8Array(),\n );\n\n const matchesPublicKey = sigPairPublicKeyHex === publicKeyHex;\n\n return matchesPublicKey;\n };\n\n /**\n * Collects all signatures from signed transactions and returns them in a format keyed by PublicKey.\n *\n * @returns { Map } The collected signatures keyed by PublicKey.\n */\n _collectSignaturesByPublicKey() {\n /** @type { Map} */\n const collectedSignatures = new Map();\n /** @type { Record } */\n const publicKeyMap = {}; // Map to hold string representation of the PublicKey object\n\n // Iterate over the signed transactions and collect signatures\n for (const transaction of this._signedTransactions.list) {\n if (!(transaction.sigMap && transaction.sigMap.sigPair)) {\n return new Map();\n }\n\n // Collect the signatures\n for (const sigPair of transaction.sigMap.sigPair) {\n const signature = sigPair.ed25519 ?? sigPair.ECDSASecp256k1;\n\n if (!signature || !sigPair.pubKeyPrefix) {\n return new Map();\n }\n\n const publicKeyStr = hex.encode(sigPair.pubKeyPrefix);\n let publicKeyObj = publicKeyMap[publicKeyStr];\n\n // If the PublicKey instance for this string representation doesn't exist, create and store it\n if (!publicKeyObj) {\n publicKeyObj = PublicKey.fromString(publicKeyStr);\n publicKeyMap[publicKeyStr] = publicKeyObj;\n }\n\n // Initialize the structure for this publicKey if it doesn't exist\n if (!collectedSignatures.has(publicKeyObj)) {\n collectedSignatures.set(publicKeyObj, []);\n }\n\n const existingSignatures =\n collectedSignatures.get(publicKeyObj);\n\n // Add the signature to the corresponding public key\n if (existingSignatures) {\n existingSignatures.push(signature);\n }\n }\n }\n\n return collectedSignatures;\n }\n}\n\n/**\n * This is essentially a registry/cache for a callback that creates a `ScheduleCreateTransaction`\n *\n * @type {(() => ScheduleCreateTransaction)[]}\n */\nexport const SCHEDULE_CREATE_TRANSACTION = [];\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Long from \"long\";\nimport AccountId from \"../account/AccountId.js\";\nimport TokenId from \"./TokenId.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenTransferList} HashgraphProto.proto.ITokenTransferList\n * @typedef {import(\"@hashgraph/proto\").proto.IAccountAmount} HashgraphProto.proto.IAccountAmount\n * @typedef {import(\"@hashgraph/proto\").proto.INftTransfer} HashgraphProto.proto.INftTransfer\n * @typedef {import(\"@hashgraph/proto\").proto.IAccountID} HashgraphProto.proto.IAccountID\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenID} HashgraphProto.proto.ITokenID\n */\n\n/**\n * @typedef {import(\"bignumber.js\").default} BigNumber\n */\n\n/**\n * An account, and the amount that it sends or receives during a cryptocurrency tokentransfer.\n */\nexport default class TokenNftTransfer {\n /**\n * @internal\n * @param {object} props\n * @param {TokenId | string} props.tokenId\n * @param {AccountId | string} props.senderAccountId\n * @param {AccountId | string} props.receiverAccountId\n * @param {Long | number} props.serialNumber\n * @param {boolean} props.isApproved\n */\n constructor(props) {\n /**\n * The Token ID that sends or receives cryptocurrency.\n */\n this.tokenId =\n props.tokenId instanceof TokenId\n ? props.tokenId\n : TokenId.fromString(props.tokenId);\n\n /**\n * The Account ID that sends or receives cryptocurrency.\n */\n this.senderAccountId =\n props.senderAccountId instanceof AccountId\n ? props.senderAccountId\n : AccountId.fromString(props.senderAccountId);\n\n /**\n * The Account ID that sends or receives cryptocurrency.\n */\n this.receiverAccountId =\n props.receiverAccountId instanceof AccountId\n ? props.receiverAccountId\n : AccountId.fromString(props.receiverAccountId);\n\n this.serialNumber = Long.fromValue(props.serialNumber);\n this.isApproved = props.isApproved;\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITokenTransferList[]} tokenTransfers\n * @returns {TokenNftTransfer[]}\n */\n static _fromProtobuf(tokenTransfers) {\n const transfers = [];\n\n for (const tokenTransfer of tokenTransfers) {\n const tokenId = TokenId._fromProtobuf(\n /** @type {HashgraphProto.proto.ITokenID} */ (\n tokenTransfer.token\n ),\n );\n for (const transfer of tokenTransfer.nftTransfers != null\n ? tokenTransfer.nftTransfers\n : []) {\n transfers.push(\n new TokenNftTransfer({\n tokenId,\n senderAccountId: AccountId._fromProtobuf(\n /** @type {HashgraphProto.proto.IAccountID} */ (\n transfer.senderAccountID\n ),\n ),\n receiverAccountId: AccountId._fromProtobuf(\n /** @type {HashgraphProto.proto.IAccountID} */ (\n transfer.receiverAccountID\n ),\n ),\n serialNumber:\n transfer.serialNumber != null\n ? transfer.serialNumber\n : Long.ZERO,\n isApproved: transfer.isApproval == true,\n }),\n );\n }\n }\n\n return transfers;\n }\n\n /**\n * @internal\n * @returns {HashgraphProto.proto.INftTransfer}\n */\n _toProtobuf() {\n return {\n senderAccountID: this.senderAccountId._toProtobuf(),\n receiverAccountID: this.receiverAccountId._toProtobuf(),\n serialNumber: this.serialNumber,\n isApproval: this.isApproved,\n };\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport TokenId from \"../token/TokenId.js\";\nimport ObjectMap from \"../ObjectMap.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenBalance} HashgraphProto.proto.ITokenBalance\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenID} HashgraphProto.proto.ITokenID\n */\n\n/**\n * @augments {ObjectMap}\n */\nexport default class NullableTokenDecimalMap extends ObjectMap {\n constructor() {\n super((s) => TokenId.fromString(s));\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2024 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport TokenTransfer from \"./TokenTransfer.js\";\nimport TokenNftTransfer from \"../token/TokenNftTransfer.js\";\nimport TokenId from \"./TokenId.js\";\nimport NftId from \"./NftId.js\";\nimport AccountId from \"../account/AccountId.js\";\nimport Transaction from \"../transaction/Transaction.js\";\nimport Long from \"long\";\nimport NullableTokenDecimalMap from \"../account/NullableTokenDecimalMap.js\";\nimport TokenNftTransferMap from \"../account/TokenNftTransferMap.js\";\nimport TokenTransferMap from \"../account/TokenTransferMap.js\";\nimport TokenTransferAccountMap from \"../account/TokenTransferAccountMap.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenAirdropTransactionBody} HashgraphProto.proto.ITokenAirdropTransactionBody\n */\n\n/**\n * @typedef {object} TransferTokensInput\n * @property {TokenId | string} tokenId\n * @property {AccountId | string} accountId\n * @property {Long | number} amount\n */\n\n/**\n * @typedef {object} TransferNftInput\n * @property {TokenId | string} tokenId\n * @property {AccountId | string} sender\n * @property {AccountId | string} recipient\n * @property {Long | number} serial\n */\n\nexport default class AbstractTokenTransferTransaction extends Transaction {\n /**\n * @param {object} [props]\n * @param {(TransferTokensInput)[]} [props.tokenTransfers]\n * @param {(TransferNftInput)[]} [props.nftTransfers]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @protected\n * @type {TokenTransfer[]}\n */\n this._tokenTransfers = [];\n\n /**\n * @protected\n * @type {TokenNftTransfer[]}\n */\n this._nftTransfers = [];\n\n for (const transfer of props.tokenTransfers != null\n ? props.tokenTransfers\n : []) {\n this.addTokenTransfer(\n transfer.tokenId,\n transfer.accountId,\n transfer.amount,\n );\n }\n\n for (const transfer of props.nftTransfers != null\n ? props.nftTransfers\n : []) {\n this.addNftTransfer(\n transfer.tokenId,\n transfer.serial,\n transfer.sender,\n transfer.recipient,\n );\n }\n }\n\n /**\n * @param {NftId | TokenId | string} tokenIdOrNftId\n * @param {AccountId | string | Long | number} senderAccountIdOrSerialNumber\n * @param {AccountId | string} receiverAccountIdOrSenderAccountId\n * @param {(AccountId | string)=} receiver\n * @returns {this}\n */\n addNftTransfer(\n tokenIdOrNftId,\n senderAccountIdOrSerialNumber,\n receiverAccountIdOrSenderAccountId,\n receiver,\n ) {\n return this._addNftTransfer(\n false,\n tokenIdOrNftId,\n senderAccountIdOrSerialNumber,\n receiverAccountIdOrSenderAccountId,\n receiver,\n );\n }\n\n /**\n * @param {TokenId | string} tokenId\n * @param {AccountId | string} accountId\n * @param {number | Long} amount\n * @param {boolean} isApproved\n * @param {number | null} expectedDecimals\n * @returns {this}\n */\n _addTokenTransfer(\n tokenId,\n accountId,\n amount,\n isApproved,\n expectedDecimals,\n ) {\n this._requireNotFrozen();\n\n const token =\n tokenId instanceof TokenId ? tokenId : TokenId.fromString(tokenId);\n const account =\n accountId instanceof AccountId\n ? accountId\n : AccountId.fromString(accountId);\n const value = amount instanceof Long ? amount : Long.fromNumber(amount);\n\n for (const tokenTransfer of this._tokenTransfers) {\n if (\n tokenTransfer.tokenId.compare(token) === 0 &&\n tokenTransfer.accountId.compare(account) === 0\n ) {\n tokenTransfer.amount = tokenTransfer.amount.add(value);\n tokenTransfer.expectedDecimals = expectedDecimals;\n return this;\n }\n }\n\n this._tokenTransfers.push(\n new TokenTransfer({\n tokenId,\n accountId,\n expectedDecimals: expectedDecimals,\n amount,\n isApproved,\n }),\n );\n\n return this;\n }\n\n /**\n * @param {TokenId | string} tokenId\n * @param {AccountId | string} accountId\n * @param {number | Long} amount\n * @returns {this}\n */\n addTokenTransfer(tokenId, accountId, amount) {\n return this._addTokenTransfer(tokenId, accountId, amount, false, null);\n }\n\n /**\n * @param {boolean} isApproved\n * @param {NftId | TokenId | string} tokenIdOrNftId\n * @param {AccountId | string | Long | number} senderAccountIdOrSerialNumber\n * @param {AccountId | string} receiverAccountIdOrSenderAccountId\n * @param {(AccountId | string)=} receiver\n * @returns {this}\n */\n _addNftTransfer(\n isApproved,\n tokenIdOrNftId,\n senderAccountIdOrSerialNumber,\n receiverAccountIdOrSenderAccountId,\n receiver,\n ) {\n this._requireNotFrozen();\n\n let nftId;\n let senderAccountId;\n let receiverAccountId;\n\n if (tokenIdOrNftId instanceof NftId) {\n nftId = tokenIdOrNftId;\n senderAccountId =\n typeof senderAccountIdOrSerialNumber === \"string\"\n ? AccountId.fromString(senderAccountIdOrSerialNumber)\n : /** @type {AccountId} */ (senderAccountIdOrSerialNumber);\n receiverAccountId =\n typeof receiverAccountIdOrSenderAccountId === \"string\"\n ? AccountId.fromString(receiverAccountIdOrSenderAccountId)\n : /** @type {AccountId} */ (\n receiverAccountIdOrSenderAccountId\n );\n } else if (tokenIdOrNftId instanceof TokenId) {\n nftId = new NftId(\n tokenIdOrNftId,\n /** @type {Long} */ (senderAccountIdOrSerialNumber),\n );\n senderAccountId =\n typeof receiverAccountIdOrSenderAccountId === \"string\"\n ? AccountId.fromString(receiverAccountIdOrSenderAccountId)\n : /** @type {AccountId} */ (\n receiverAccountIdOrSenderAccountId\n );\n receiverAccountId =\n typeof receiver === \"string\"\n ? AccountId.fromString(receiver)\n : /** @type {AccountId} */ (receiver);\n } else {\n try {\n nftId = NftId.fromString(tokenIdOrNftId);\n senderAccountId =\n typeof senderAccountIdOrSerialNumber === \"string\"\n ? AccountId.fromString(senderAccountIdOrSerialNumber)\n : /** @type {AccountId} */ (\n senderAccountIdOrSerialNumber\n );\n receiverAccountId =\n typeof receiverAccountIdOrSenderAccountId === \"string\"\n ? AccountId.fromString(\n receiverAccountIdOrSenderAccountId,\n )\n : /** @type {AccountId} */ (\n receiverAccountIdOrSenderAccountId\n );\n } catch (_) {\n const tokenId = TokenId.fromString(tokenIdOrNftId);\n nftId = new NftId(\n tokenId,\n /** @type {Long} */ (senderAccountIdOrSerialNumber),\n );\n senderAccountId =\n typeof receiverAccountIdOrSenderAccountId === \"string\"\n ? AccountId.fromString(\n receiverAccountIdOrSenderAccountId,\n )\n : /** @type {AccountId} */ (\n receiverAccountIdOrSenderAccountId\n );\n receiverAccountId =\n typeof receiver === \"string\"\n ? AccountId.fromString(receiver)\n : /** @type {AccountId} */ (receiver);\n }\n }\n\n for (const nftTransfer of this._nftTransfers) {\n if (\n nftTransfer.tokenId.compare(nftId.tokenId) === 0 &&\n nftTransfer.serialNumber.compare(nftId.serial) === 0\n ) {\n nftTransfer.senderAccountId = senderAccountId;\n nftTransfer.receiverAccountId = receiverAccountId;\n return this;\n }\n }\n\n this._nftTransfers.push(\n new TokenNftTransfer({\n tokenId: nftId.tokenId,\n serialNumber: nftId.serial,\n senderAccountId,\n receiverAccountId,\n isApproved,\n }),\n );\n\n return this;\n }\n\n /**\n * @param {NftId | TokenId | string} tokenIdOrNftId\n * @param {AccountId | string | Long | number} senderAccountIdOrSerialNumber\n * @param {AccountId | string} receiverAccountIdOrSenderAccountId\n * @param {(AccountId | string)=} receiver\n * @returns {this}\n */\n addApprovedNftTransfer(\n tokenIdOrNftId,\n senderAccountIdOrSerialNumber,\n receiverAccountIdOrSenderAccountId,\n receiver,\n ) {\n return this._addNftTransfer(\n true,\n tokenIdOrNftId,\n senderAccountIdOrSerialNumber,\n receiverAccountIdOrSenderAccountId,\n receiver,\n );\n }\n\n /**\n * @param {TokenId | string} tokenId\n * @param {AccountId | string} accountId\n * @param {number | Long} amount\n * @returns {this}\n */\n addApprovedTokenTransfer(tokenId, accountId, amount) {\n return this._addTokenTransfer(tokenId, accountId, amount, true, null);\n }\n\n /**\n * @param {TokenId | string} tokenId\n * @param {AccountId | string} accountId\n * @param {number | Long} amount\n * @param {number} decimals\n * @returns {this}\n */\n addTokenTransferWithDecimals(tokenId, accountId, amount, decimals) {\n this._requireNotFrozen();\n\n const token =\n tokenId instanceof TokenId ? tokenId : TokenId.fromString(tokenId);\n const account =\n accountId instanceof AccountId\n ? accountId\n : AccountId.fromString(accountId);\n const value = amount instanceof Long ? amount : Long.fromNumber(amount);\n\n let found = false;\n\n for (const tokenTransfer of this._tokenTransfers) {\n if (tokenTransfer.tokenId.compare(token) === 0) {\n if (\n tokenTransfer.expectedDecimals != null &&\n tokenTransfer.expectedDecimals !== decimals\n ) {\n throw new Error(\"expected decimals mis-match\");\n } else {\n tokenTransfer.expectedDecimals = decimals;\n }\n\n if (tokenTransfer.accountId.compare(account) === 0) {\n tokenTransfer.amount = tokenTransfer.amount.add(value);\n tokenTransfer.expectedDecimals = decimals;\n found = true;\n }\n }\n }\n\n if (found) {\n return this;\n }\n\n this._tokenTransfers.push(\n new TokenTransfer({\n tokenId,\n accountId,\n expectedDecimals: decimals,\n amount,\n isApproved: false,\n }),\n );\n\n return this;\n }\n\n /**\n * @returns {NullableTokenDecimalMap}\n */\n get tokenIdDecimals() {\n const map = new NullableTokenDecimalMap();\n\n for (const transfer of this._tokenTransfers) {\n map._set(transfer.tokenId, transfer.expectedDecimals);\n }\n\n return map;\n }\n\n /**\n * @returns {TokenNftTransferMap}\n */\n get nftTransfers() {\n const map = new TokenNftTransferMap();\n\n for (const transfer of this._nftTransfers) {\n const transferList = map.get(transfer.tokenId);\n\n const nftTransfer = {\n sender: transfer.senderAccountId,\n recipient: transfer.receiverAccountId,\n serial: transfer.serialNumber,\n isApproved: transfer.isApproved,\n };\n\n if (transferList != null) {\n transferList.push(nftTransfer);\n } else {\n map._set(transfer.tokenId, [nftTransfer]);\n }\n }\n\n return map;\n }\n\n /**\n * @returns {TokenTransferMap}\n */\n get tokenTransfers() {\n const map = new TokenTransferMap();\n\n for (const transfer of this._tokenTransfers) {\n let transferMap = map.get(transfer.tokenId);\n\n if (transferMap != null) {\n transferMap._set(transfer.accountId, transfer.amount);\n } else {\n transferMap = new TokenTransferAccountMap();\n transferMap._set(transfer.accountId, transfer.amount);\n map._set(transfer.tokenId, transferMap);\n }\n }\n\n return map;\n }\n\n /**\n * @override\n * @protected\n * @returns {HashgraphProto.proto.ITokenAirdropTransactionBody}\n */\n _makeTransactionData() {\n /** @type {{tokenId: TokenId; expectedDecimals: number | null; transfers: TokenTransfer[]; nftTransfers: TokenNftTransfer[];}[]} */\n const tokenTransferList = [];\n\n this._tokenTransfers.sort((a, b) => {\n const compare = a.tokenId.compare(b.tokenId);\n\n if (compare !== 0) {\n return compare;\n }\n\n return a.accountId.compare(b.accountId);\n });\n\n this._nftTransfers.sort((a, b) => {\n const senderComparision = a.senderAccountId.compare(\n b.senderAccountId,\n );\n if (senderComparision != 0) {\n return senderComparision;\n }\n\n const recipientComparision = a.receiverAccountId.compare(\n b.receiverAccountId,\n );\n if (recipientComparision != 0) {\n return recipientComparision;\n }\n\n return a.serialNumber.compare(b.serialNumber);\n });\n\n let i = 0;\n let j = 0;\n while (\n i < this._tokenTransfers.length ||\n j < this._nftTransfers.length\n ) {\n if (\n i < this._tokenTransfers.length &&\n j < this._nftTransfers.length\n ) {\n const iTokenId = this._tokenTransfers[i].tokenId;\n const jTokenId = this._nftTransfers[j].tokenId;\n\n const last =\n tokenTransferList.length > 0\n ? tokenTransferList[tokenTransferList.length - 1]\n : null;\n const lastTokenId = last != null ? last.tokenId : null;\n\n if (\n last != null &&\n lastTokenId != null &&\n lastTokenId.compare(iTokenId) === 0\n ) {\n last.transfers.push(this._tokenTransfers[i++]);\n continue;\n }\n\n if (\n last != null &&\n lastTokenId != null &&\n lastTokenId.compare(jTokenId) === 0\n ) {\n last.nftTransfers.push(this._nftTransfers[j++]);\n continue;\n }\n\n const result = iTokenId.compare(jTokenId);\n\n if (result === 0) {\n tokenTransferList.push({\n tokenId: iTokenId,\n expectedDecimals:\n this._tokenTransfers[i].expectedDecimals,\n transfers: [this._tokenTransfers[i++]],\n nftTransfers: [this._nftTransfers[j++]],\n });\n } else if (result < 0) {\n tokenTransferList.push({\n tokenId: iTokenId,\n expectedDecimals:\n this._tokenTransfers[i].expectedDecimals,\n transfers: [this._tokenTransfers[i++]],\n nftTransfers: [],\n });\n } else {\n tokenTransferList.push({\n tokenId: jTokenId,\n expectedDecimals: null,\n transfers: [],\n nftTransfers: [this._nftTransfers[j++]],\n });\n }\n } else if (i < this._tokenTransfers.length) {\n const iTokenId = this._tokenTransfers[i].tokenId;\n\n let last;\n for (const transfer of tokenTransferList) {\n if (transfer.tokenId.compare(iTokenId) === 0) {\n last = transfer;\n }\n }\n const lastTokenId = last != null ? last.tokenId : null;\n\n if (\n last != null &&\n lastTokenId != null &&\n lastTokenId.compare(iTokenId) === 0\n ) {\n last.transfers.push(this._tokenTransfers[i++]);\n continue;\n }\n\n tokenTransferList.push({\n tokenId: iTokenId,\n expectedDecimals: this._tokenTransfers[i].expectedDecimals,\n transfers: [this._tokenTransfers[i++]],\n nftTransfers: [],\n });\n } else if (j < this._nftTransfers.length) {\n const jTokenId = this._nftTransfers[j].tokenId;\n\n let last;\n for (const transfer of tokenTransferList) {\n if (transfer.tokenId.compare(jTokenId) === 0) {\n last = transfer;\n }\n }\n const lastTokenId = last != null ? last.tokenId : null;\n\n if (\n last != null &&\n lastTokenId != null &&\n lastTokenId.compare(jTokenId) === 0\n ) {\n last.nftTransfers.push(this._nftTransfers[j++]);\n continue;\n }\n\n tokenTransferList.push({\n tokenId: jTokenId,\n expectedDecimals: null,\n transfers: [],\n nftTransfers: [this._nftTransfers[j++]],\n });\n }\n }\n\n return {\n tokenTransfers: tokenTransferList.map((tokenTransfer) => {\n return {\n token: tokenTransfer.tokenId._toProtobuf(),\n expectedDecimals:\n tokenTransfer.expectedDecimals != null\n ? { value: tokenTransfer.expectedDecimals }\n : null,\n transfers: tokenTransfer.transfers.map((transfer) =>\n transfer._toProtobuf(),\n ),\n nftTransfers: tokenTransfer.nftTransfers.map((transfer) =>\n transfer._toProtobuf(),\n ),\n };\n }),\n };\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2024 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Transaction, {\n TRANSACTION_REGISTRY,\n} from \"../transaction/Transaction.js\";\nimport TokenTransfer from \"./TokenTransfer.js\";\nimport NftTransfer from \"./TokenNftTransfer.js\";\nimport AbstractTokenTransferTransaction from \"./AbstractTokenTransferTransaction.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenAirdropTransactionBody} HashgraphProto.proto.ITokenAirdropTransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionID} HashgraphProto.proto.TransactionID\n * @typedef {import(\"@hashgraph/proto\").proto.AccountID} HashgraphProto.proto.AccountID\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HashgraphProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HashgraphProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HashgraphProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} HashgraphProto.proto.ITransactionResponse\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n * @typedef {import(\"../account/AccountId.js\").default} AccountId\n * @typedef {import(\"./NftId.js\").default} NftId\n * @typedef {import(\"./TokenId.js\").default} TokenId\n */\nexport default class TokenAirdropTransaction extends AbstractTokenTransferTransaction {\n /**\n * @param {object} props\n * @param {TokenTransfer[]} [props.tokenTransfers]\n * @param {NftTransfer[]} [props.nftTransfers]\n */\n constructor(props = {}) {\n super();\n\n if (props.tokenTransfers != null) {\n for (const tokenTransfer of props.tokenTransfers) {\n this._addTokenTransfer(\n tokenTransfer.tokenId,\n tokenTransfer.accountId,\n tokenTransfer.amount,\n tokenTransfer.isApproved,\n tokenTransfer.expectedDecimals,\n );\n }\n }\n /**\n * @private\n * @type {NftTransfer[]}\n */\n this._nftTransfers = [];\n if (props.nftTransfers != null) {\n for (const nftTransfer of props.nftTransfers) {\n this._addNftTransfer(\n nftTransfer.isApproved,\n nftTransfer.tokenId,\n nftTransfer.serialNumber,\n nftTransfer.senderAccountId,\n nftTransfer.receiverAccountId,\n );\n }\n }\n }\n\n /**\n *\n * @param {TokenId} tokenId\n * @param {AccountId} accountId\n * @param {Long} amount\n * @param {number} expectedDecimals\n * @returns {this}\n */\n addApprovedTokenTransferWithDecimals(\n tokenId,\n accountId,\n amount,\n expectedDecimals,\n ) {\n this._requireNotFrozen();\n this._addTokenTransfer(\n tokenId,\n accountId,\n amount,\n true,\n expectedDecimals,\n );\n return this;\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransaction[]} transactions\n * @param {HashgraphProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HashgraphProto.proto.ITransactionBody[]} bodies\n * @returns {TokenAirdropTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const tokenAirdrop =\n /** @type {HashgraphProto.proto.ITokenAirdropTransactionBody} */ (\n body.tokenAirdrop\n );\n\n const tokenTransfers = TokenTransfer._fromProtobuf(\n tokenAirdrop.tokenTransfers ?? [],\n );\n const nftTransfers = NftTransfer._fromProtobuf(\n tokenAirdrop.tokenTransfers ?? [],\n );\n\n return Transaction._fromProtobufTransactions(\n new TokenAirdropTransaction({\n nftTransfers: nftTransfers,\n tokenTransfers: tokenTransfers,\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.token.airdropTokens(request);\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"tokenAirdrop\";\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `TokenAirdropTransaction:${timestamp.toString()}`;\n }\n}\n\nTRANSACTION_REGISTRY.set(\n \"tokenAirdrop\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n TokenAirdropTransaction._fromProtobuf,\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2024 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Transaction from \"../transaction/Transaction.js\";\n\n/**\n * @typedef {import(\"../token/PendingAirdropId.js\").default} PendingAirdropId\n */\nexport default class AirdropPendingTransaction extends Transaction {\n /**\n * @param {object} [props]\n * @param {PendingAirdropId[]} [props.pendingAirdropIds]\n */\n constructor(props) {\n /**\n * @private\n * @type {PendingAirdropId[]}\n */\n super();\n\n /**\n * @private\n * @type {PendingAirdropId[]}\n */\n this._pendingAirdropIds = [];\n\n if (props?.pendingAirdropIds != null) {\n this._pendingAirdropIds = props.pendingAirdropIds;\n }\n }\n\n /**\n * @returns {PendingAirdropId[]}\n */\n get pendingAirdropIds() {\n return this._pendingAirdropIds;\n }\n\n /**\n *\n * @param {PendingAirdropId} pendingAirdropId\n * @returns {this}\n */\n addPendingAirdropId(pendingAirdropId) {\n this._requireNotFrozen();\n this._pendingAirdropIds.push(pendingAirdropId);\n return this;\n }\n\n /**\n *\n * @param {PendingAirdropId[]} pendingAirdropIds\n * @returns {this}\n */\n setPendingAirdropIds(pendingAirdropIds) {\n this._requireNotFrozen();\n this._pendingAirdropIds = pendingAirdropIds;\n return this;\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2024 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport PendingAirdropId from \"../token/PendingAirdropId.js\";\nimport AirdropPendingTransaction from \"./AirdropPendingTransaction.js\";\nimport Transaction, {\n TRANSACTION_REGISTRY,\n} from \"../transaction/Transaction.js\";\n\n/**\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} HashgraphProto.proto.ITransactionResponse\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HashgraphProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HashgraphProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HashgraphProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenClaimAirdropTransactionBody} HashgraphProto.proto.ITokenClaimAirdropTransactionBody\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n * @typedef {import(\"../account/AccountId.js\").default} AccountId\n */\n\nexport default class TokenClaimAirdropTransaction extends AirdropPendingTransaction {\n /**\n * @param {object} props\n * @param {PendingAirdropId[]} [props.pendingAirdropIds]\n */\n constructor(props = {}) {\n super(props);\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.token.claimAirdrop(request);\n }\n\n /**\n * @override\n * @internal\n * @returns {HashgraphProto.proto.ITokenClaimAirdropTransactionBody}\n */\n _makeTransactionData() {\n return {\n pendingAirdrops: this.pendingAirdropIds.map((pendingAirdropId) =>\n pendingAirdropId.toBytes(),\n ),\n };\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransaction[]} transactions\n * @param {HashgraphProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HashgraphProto.proto.ITransactionBody[]} bodies\n * @returns {TokenClaimAirdropTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const { pendingAirdrops } =\n /** @type {HashgraphProto.proto.ITokenClaimAirdropTransactionBody} */ (\n body.tokenClaimAirdrop\n );\n\n return Transaction._fromProtobufTransactions(\n new TokenClaimAirdropTransaction({\n pendingAirdropIds: pendingAirdrops?.map((pendingAirdrop) => {\n return PendingAirdropId.fromBytes(pendingAirdrop);\n }),\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"tokenClaimAirdrop\";\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `TokenClaimAirdropTransaction:${timestamp.toString()}`;\n }\n}\n\nTRANSACTION_REGISTRY.set(\n \"tokenClaimAirdrop\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n TokenClaimAirdropTransaction._fromProtobuf,\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2024 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport PendingAirdropId from \"../token/PendingAirdropId.js\";\nimport { TRANSACTION_REGISTRY } from \"../transaction/Transaction.js\";\nimport Transaction from \"../transaction/Transaction.js\";\nimport AirdropPendingTransaction from \"./AirdropPendingTransaction.js\";\n\n/**\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} HashgraphProto.proto.ITransactionResponse\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HashgraphProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HashgraphProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HashgraphProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenCancelAirdropTransactionBody} HashgraphProto.proto.ITokenCancelAirdropTransactionBody\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n * @typedef {import(\"../account/AccountId.js\").default} AccountId\n */\nexport default class TokenCancelAirdropTransaction extends AirdropPendingTransaction {\n /**\n * @param {object} props\n * @param {PendingAirdropId[]} [props.pendingAirdropIds]\n */\n constructor(props = {}) {\n super(props);\n }\n\n /**\n * @override\n * @internal\n * @returns {HashgraphProto.proto.ITokenCancelAirdropTransactionBody}\n */\n _makeTransactionData() {\n return {\n pendingAirdrops: this.pendingAirdropIds.map((pendingAirdropId) =>\n pendingAirdropId.toBytes(),\n ),\n };\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.token.cancelAirdrop(request);\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"tokenCancelAirdrop\";\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransaction[]} transactions\n * @param {HashgraphProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HashgraphProto.proto.ITransactionBody[]} bodies\n * @returns {TokenCancelAirdropTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const { pendingAirdrops } =\n /** @type {HashgraphProto.proto.ITokenCancelAirdropTransactionBody} */ (\n body.tokenCancelAirdrop\n );\n\n return Transaction._fromProtobufTransactions(\n new TokenCancelAirdropTransaction({\n pendingAirdropIds: pendingAirdrops?.map((pendingAirdrop) => {\n return PendingAirdropId.fromBytes(pendingAirdrop);\n }),\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `TokenCancelAirdrop:${timestamp.toString()}`;\n }\n}\n\nTRANSACTION_REGISTRY.set(\n \"tokenCancelAirdrop\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n TokenCancelAirdropTransaction._fromProtobuf,\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport AccountId from \"./AccountId.js\";\nimport Hbar from \"../Hbar.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.IGrantedCryptoAllowance} HashgraphProto.proto.IGrantedCryptoAllowance\n * @typedef {import(\"@hashgraph/proto\").proto.ICryptoAllowance} HashgraphProto.proto.ICryptoAllowance\n * @typedef {import(\"@hashgraph/proto\").proto.IAccountID} HashgraphProto.proto.IAccountID\n */\n\n/**\n * @typedef {import(\"long\")} Long\n */\n\n/**\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n */\n\nexport default class HbarAllowance {\n /**\n * @internal\n * @param {object} props\n * @param {AccountId | null} props.spenderAccountId\n * @param {AccountId | null} props.ownerAccountId\n * @param {Hbar | null} props.amount\n */\n constructor(props) {\n /**\n * The account ID of the hbar allowance spender.\n *\n * @readonly\n */\n this.spenderAccountId = props.spenderAccountId;\n\n /**\n * The account ID of the hbar allowance owner.\n *\n * @readonly\n */\n this.ownerAccountId = props.ownerAccountId;\n\n /**\n * The current balance of the spender's allowance in tinybars.\n *\n * @readonly\n */\n this.amount = props.amount;\n\n Object.freeze(this);\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ICryptoAllowance} allowance\n * @returns {HbarAllowance}\n */\n static _fromProtobuf(allowance) {\n return new HbarAllowance({\n spenderAccountId: AccountId._fromProtobuf(\n /** @type {HashgraphProto.proto.IAccountID} */ (\n allowance.spender\n ),\n ),\n ownerAccountId:\n allowance.owner != null\n ? AccountId._fromProtobuf(\n /**@type {HashgraphProto.proto.IAccountID}*/ (\n allowance.owner\n ),\n )\n : null,\n amount: Hbar.fromTinybars(\n allowance.amount != null ? allowance.amount : 0,\n ),\n });\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.IGrantedCryptoAllowance} allowance\n * @param {AccountId} ownerAccountId\n * @returns {HbarAllowance}\n */\n static _fromGrantedProtobuf(allowance, ownerAccountId) {\n return new HbarAllowance({\n spenderAccountId: AccountId._fromProtobuf(\n /** @type {HashgraphProto.proto.IAccountID} */ (\n allowance.spender\n ),\n ),\n ownerAccountId,\n amount: Hbar.fromTinybars(\n allowance.amount != null ? allowance.amount : 0,\n ),\n });\n }\n\n /**\n * @internal\n * @returns {HashgraphProto.proto.ICryptoAllowance}\n */\n _toProtobuf() {\n return {\n owner:\n this.ownerAccountId != null\n ? this.ownerAccountId._toProtobuf()\n : null,\n spender:\n this.spenderAccountId != null\n ? this.spenderAccountId._toProtobuf()\n : null,\n amount: this.amount != null ? this.amount.toTinybars() : null,\n };\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (this.spenderAccountId != null) {\n this.spenderAccountId.validateChecksum(client);\n }\n\n if (this.spenderAccountId != null) {\n this.spenderAccountId.validateChecksum(client);\n }\n }\n\n /**\n * @returns {object}\n */\n toJSON() {\n return {\n ownerAccountId:\n this.ownerAccountId != null\n ? this.ownerAccountId.toString()\n : null,\n spenderAccountId:\n this.spenderAccountId != null\n ? this.spenderAccountId.toString()\n : null,\n amount: this.amount != null ? this.amount.toString() : null,\n };\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport TokenId from \"../token/TokenId.js\";\nimport AccountId from \"./AccountId.js\";\nimport Long from \"long\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.IGrantedTokenAllowance} HashgraphProto.proto.IGrantedTokenAllowance\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenAllowance} HashgraphProto.proto.ITokenAllowance\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenID} HashgraphProto.proto.ITokenID\n * @typedef {import(\"@hashgraph/proto\").proto.IAccountID} HashgraphProto.proto.IAccountID\n */\n\n/**\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n */\n\nexport default class TokenAllowance {\n /**\n * @internal\n * @param {object} props\n * @param {TokenId} props.tokenId\n * @param {AccountId | null} props.spenderAccountId\n * @param {AccountId | null} props.ownerAccountId\n * @param {Long | null} props.amount\n */\n constructor(props) {\n /**\n * The token that the allowance pertains to.\n *\n * @readonly\n */\n this.tokenId = props.tokenId;\n\n /**\n * The account ID of the spender of the hbar allowance.\n *\n * @readonly\n */\n this.spenderAccountId = props.spenderAccountId;\n\n /**\n * The account ID of the owner of the hbar allowance.\n *\n * @readonly\n */\n this.ownerAccountId = props.ownerAccountId;\n\n /**\n * The current balance of the spender's token allowance.\n * **NOTE**: If `null`, the spender has access to all of the account owner's NFT instances\n * (currently owned and any in the future).\n *\n * @readonly\n */\n this.amount = props.amount;\n\n Object.freeze(this);\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITokenAllowance} allowance\n * @returns {TokenAllowance}\n */\n static _fromProtobuf(allowance) {\n return new TokenAllowance({\n tokenId: TokenId._fromProtobuf(\n /** @type {HashgraphProto.proto.ITokenID} */ (\n allowance.tokenId\n ),\n ),\n spenderAccountId: AccountId._fromProtobuf(\n /** @type {HashgraphProto.proto.IAccountID} */ (\n allowance.spender\n ),\n ),\n ownerAccountId:\n allowance.owner != null\n ? AccountId._fromProtobuf(\n /**@type {HashgraphProto.proto.IAccountID}*/ (\n allowance.owner\n ),\n )\n : null,\n amount:\n allowance.amount != null\n ? Long.fromValue(/** @type {Long} */ (allowance.amount))\n : null,\n });\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.IGrantedTokenAllowance} allowance\n * @param {AccountId} ownerAccountId\n * @returns {TokenAllowance}\n */\n static _fromGrantedProtobuf(allowance, ownerAccountId) {\n return new TokenAllowance({\n tokenId: TokenId._fromProtobuf(\n /** @type {HashgraphProto.proto.ITokenID} */ (\n allowance.tokenId\n ),\n ),\n spenderAccountId: AccountId._fromProtobuf(\n /** @type {HashgraphProto.proto.IAccountID} */ (\n allowance.spender\n ),\n ),\n ownerAccountId,\n amount:\n allowance.amount != null\n ? Long.fromValue(/** @type {Long} */ (allowance.amount))\n : null,\n });\n }\n\n /**\n * @internal\n * @returns {HashgraphProto.proto.ITokenAllowance}\n */\n _toProtobuf() {\n return {\n tokenId: this.tokenId._toProtobuf(),\n spender:\n this.spenderAccountId != null\n ? this.spenderAccountId._toProtobuf()\n : null,\n owner:\n this.ownerAccountId != null\n ? this.ownerAccountId._toProtobuf()\n : null,\n amount: this.amount,\n };\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n this.tokenId.validateChecksum(client);\n\n if (this.ownerAccountId != null) {\n this.ownerAccountId.validateChecksum(client);\n }\n\n if (this.spenderAccountId != null) {\n this.spenderAccountId.validateChecksum(client);\n }\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport TokenId from \"../token/TokenId.js\";\nimport AccountId from \"./AccountId.js\";\nimport Long from \"long\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.IGrantedNftAllowance} HashgraphProto.proto.IGrantedNftAllowance\n * @typedef {import(\"@hashgraph/proto\").proto.INftRemoveAllowance} HashgraphProto.proto.INftRemoveAllowance\n * @typedef {import(\"@hashgraph/proto\").proto.INftAllowance} HashgraphProto.proto.INftAllowance\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenID} HashgraphProto.proto.ITokenID\n * @typedef {import(\"@hashgraph/proto\").proto.IAccountID} HashgraphProto.proto.IAccountID\n */\n\n/**\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n */\n\nexport default class TokenNftAllowance {\n /**\n * @internal\n * @param {object} props\n * @param {TokenId} props.tokenId\n * @param {AccountId | null} props.spenderAccountId\n * @param {AccountId | null} props.ownerAccountId\n * @param {Long[] | null} props.serialNumbers\n * @param {boolean | null} props.allSerials\n * @param {AccountId | null} props.delegatingSpender\n */\n constructor(props) {\n /**\n * The token that the allowance pertains to.\n *\n * @readonly\n */\n this.tokenId = props.tokenId;\n\n /**\n * The account ID of the spender of the hbar allowance.\n *\n * @readonly\n */\n this.spenderAccountId = props.spenderAccountId;\n\n /**\n * The account ID of the owner of the hbar allowance.\n *\n * @readonly\n */\n this.ownerAccountId = props.ownerAccountId;\n\n /**\n * The current balance of the spender's token allowance.\n * **NOTE**: If `null`, the spender has access to all of the account owner's NFT instances\n * (currently owned and any in the future).\n *\n * @readonly\n */\n this.serialNumbers = props.serialNumbers;\n\n /**\n * @readonly\n */\n this.allSerials = props.allSerials;\n\n /**\n * The account ID of the spender who is granted approvedForAll allowance and granting\n * approval on an NFT serial to another spender.\n *\n * @readonly\n */\n this.delegatingSpender = props.delegatingSpender;\n\n Object.freeze(this);\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.INftAllowance} allowance\n * @returns {TokenNftAllowance}\n */\n static _fromProtobuf(allowance) {\n const allSerials =\n allowance.approvedForAll != null &&\n allowance.approvedForAll.value == true;\n return new TokenNftAllowance({\n tokenId: TokenId._fromProtobuf(\n /** @type {HashgraphProto.proto.ITokenID} */ (\n allowance.tokenId\n ),\n ),\n spenderAccountId:\n allowance.spender != null\n ? AccountId._fromProtobuf(\n /** @type {HashgraphProto.proto.IAccountID} */ (\n allowance.spender\n ),\n )\n : null,\n ownerAccountId:\n allowance.owner != null\n ? AccountId._fromProtobuf(\n /**@type {HashgraphProto.proto.IAccountID}*/ (\n allowance.owner\n ),\n )\n : null,\n serialNumbers: allSerials\n ? null\n : allowance.serialNumbers != null\n ? allowance.serialNumbers.map((serialNumber) =>\n Long.fromValue(serialNumber),\n )\n : [],\n allSerials,\n delegatingSpender:\n allowance.delegatingSpender != null\n ? AccountId._fromProtobuf(\n /**@type {HashgraphProto.proto.IAccountID}*/ (\n allowance.delegatingSpender\n ),\n )\n : null,\n });\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.IGrantedNftAllowance} allowance\n * @param {AccountId} ownerAccountId\n * @returns {TokenNftAllowance}\n */\n static _fromGrantedProtobuf(allowance, ownerAccountId) {\n return new TokenNftAllowance({\n tokenId: TokenId._fromProtobuf(\n /** @type {HashgraphProto.proto.ITokenID} */ (\n allowance.tokenId\n ),\n ),\n spenderAccountId: AccountId._fromProtobuf(\n /** @type {HashgraphProto.proto.IAccountID} */ (\n allowance.spender\n ),\n ),\n ownerAccountId,\n serialNumbers: [],\n allSerials: null,\n delegatingSpender: null,\n });\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.INftRemoveAllowance} allowance\n * @returns {TokenNftAllowance}\n */\n static _fromRemoveProtobuf(allowance) {\n return new TokenNftAllowance({\n tokenId: TokenId._fromProtobuf(\n /** @type {HashgraphProto.proto.ITokenID} */ (\n allowance.tokenId\n ),\n ),\n spenderAccountId: null,\n ownerAccountId:\n allowance.owner != null\n ? AccountId._fromProtobuf(\n /**@type {HashgraphProto.proto.IAccountID}*/ (\n allowance.owner\n ),\n )\n : null,\n serialNumbers:\n allowance.serialNumbers != null\n ? allowance.serialNumbers.map((serialNumber) =>\n Long.fromValue(serialNumber),\n )\n : [],\n allSerials: null,\n delegatingSpender: null,\n });\n }\n\n /**\n * @internal\n * @returns {HashgraphProto.proto.INftAllowance}\n */\n _toProtobuf() {\n return {\n tokenId: this.tokenId._toProtobuf(),\n spender:\n this.spenderAccountId != null\n ? this.spenderAccountId._toProtobuf()\n : null,\n owner:\n this.ownerAccountId != null\n ? this.ownerAccountId._toProtobuf()\n : null,\n approvedForAll:\n this.serialNumbers == null ? { value: this.allSerials } : null,\n serialNumbers: this.serialNumbers,\n delegatingSpender:\n this.delegatingSpender != null\n ? this.delegatingSpender._toProtobuf()\n : null,\n };\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n this.tokenId.validateChecksum(client);\n\n if (this.ownerAccountId != null) {\n this.ownerAccountId.validateChecksum(client);\n }\n\n if (this.spenderAccountId != null) {\n this.spenderAccountId.validateChecksum(client);\n }\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Transaction from \"../transaction/Transaction.js\";\nimport AccountId from \"./AccountId.js\";\nimport ContractId from \"../contract/ContractId.js\";\nimport TokenId from \"../token/TokenId.js\";\nimport NftId from \"../token/NftId.js\";\nimport Long from \"long\";\nimport Hbar from \"../Hbar.js\";\nimport HbarAllowance from \"./HbarAllowance.js\";\nimport TokenAllowance from \"./TokenAllowance.js\";\nimport TokenNftAllowance from \"./TokenNftAllowance.js\";\nimport * as util from \"../util.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HashgraphProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HashgraphProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HashgraphProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} HashgraphProto.proto.ITransactionResponse\n * @typedef {import(\"@hashgraph/proto\").proto.IAccountID} HashgraphProto.proto.IAccountID\n * @typedef {import(\"@hashgraph/proto\").proto.IContractID} HashgraphProto.proto.IContractID\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n * @typedef {import(\"bignumber.js\").default} BigNumber\n * @typedef {import(\"../long.js\").LongObject} LongObject\n */\n\n/**\n * @deprecated - No longer supported via Hedera Protobufs\n * Change properties for the given account.\n */\nexport default class AccountAllowanceAdjustTransaction extends Transaction {\n /**\n * @param {object} [props]\n * @param {HbarAllowance[]} [props.hbarAllowances]\n * @param {TokenAllowance[]} [props.tokenAllowances]\n * @param {TokenNftAllowance[]} [props.nftAllowances]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {HbarAllowance[]}\n */\n this._hbarAllowances =\n props.hbarAllowances != null ? props.hbarAllowances : [];\n\n /**\n * @private\n * @type {TokenAllowance[]}\n */\n this._tokenAllowances =\n props.tokenAllowances != null ? props.tokenAllowances : [];\n\n /**\n * @private\n * @type {TokenNftAllowance[]}\n */\n this._nftAllowances =\n props.nftAllowances != null ? props.nftAllowances : [];\n }\n\n /**\n * @returns {HbarAllowance[]}\n */\n get hbarAllowances() {\n return this._hbarAllowances;\n }\n\n /**\n * @deprecated\n * @param {AccountId | string} spenderAccountId\n * @param {number | string | Long | LongObject | BigNumber | Hbar} amount\n * @returns {AccountAllowanceAdjustTransaction}\n */\n addHbarAllowance(spenderAccountId, amount) {\n const value = amount instanceof Hbar ? amount : new Hbar(amount);\n return this._adjustHbarAllowance(\n null,\n spenderAccountId,\n util.requireNotNegative(value),\n );\n }\n\n /**\n * @param {AccountId | string | null} ownerAccountId\n * @param {AccountId | ContractId | string} spenderAccountId\n * @param {Hbar} amount\n * @returns {AccountAllowanceAdjustTransaction}\n */\n _adjustHbarAllowance(ownerAccountId, spenderAccountId, amount) {\n this._requireNotFrozen();\n\n this._hbarAllowances.push(\n new HbarAllowance({\n spenderAccountId:\n typeof spenderAccountId === \"string\"\n ? AccountId.fromString(spenderAccountId)\n : spenderAccountId instanceof ContractId\n ? AccountId.fromEvmAddress(\n 0,\n 0,\n spenderAccountId.toSolidityAddress(),\n )\n : spenderAccountId,\n ownerAccountId:\n typeof ownerAccountId === \"string\"\n ? AccountId.fromString(ownerAccountId)\n : ownerAccountId instanceof ContractId\n ? AccountId.fromEvmAddress(\n 0,\n 0,\n ownerAccountId.toSolidityAddress(),\n )\n : ownerAccountId,\n amount: amount,\n }),\n );\n\n return this;\n }\n\n /**\n * @deprecated\n * @param {AccountId | string} ownerAccountId\n * @param {AccountId | string} spenderAccountId\n * @param {number | string | Long | LongObject | BigNumber | Hbar} amount\n * @returns {AccountAllowanceAdjustTransaction}\n */\n grantHbarAllowance(ownerAccountId, spenderAccountId, amount) {\n const value = amount instanceof Hbar ? amount : new Hbar(amount);\n return this._adjustHbarAllowance(\n ownerAccountId,\n spenderAccountId,\n util.requireNotNegative(value),\n );\n }\n\n /**\n * @deprecated\n * @param {AccountId | string} ownerAccountId\n * @param {AccountId | string} spenderAccountId\n * @param {number | string | Long | LongObject | BigNumber | Hbar} amount\n * @returns {AccountAllowanceAdjustTransaction}\n */\n revokeHbarAllowance(ownerAccountId, spenderAccountId, amount) {\n const value = amount instanceof Hbar ? amount : new Hbar(amount);\n return this._adjustHbarAllowance(\n ownerAccountId,\n spenderAccountId,\n util.requireNotNegative(value).negated(),\n );\n }\n\n /**\n * @returns {TokenAllowance[]}\n */\n get tokenAllowances() {\n return this._tokenAllowances;\n }\n\n /**\n * @deprecated\n * @param {TokenId | string} tokenId\n * @param {AccountId | string} spenderAccountId\n * @param {Long | number} amount\n * @returns {AccountAllowanceAdjustTransaction}\n */\n addTokenAllowance(tokenId, spenderAccountId, amount) {\n return this._adjustTokenAllowance(\n tokenId,\n null,\n spenderAccountId,\n util.requireNotNegative(Long.fromValue(amount)),\n );\n }\n\n /**\n * @param {TokenId | string} tokenId\n * @param {AccountId | string | null} ownerAccountId\n * @param {AccountId | ContractId | string} spenderAccountId\n * @param {Long | number} amount\n * @returns {AccountAllowanceAdjustTransaction}\n */\n _adjustTokenAllowance(tokenId, ownerAccountId, spenderAccountId, amount) {\n this._requireNotFrozen();\n\n this._tokenAllowances.push(\n new TokenAllowance({\n tokenId:\n typeof tokenId === \"string\"\n ? TokenId.fromString(tokenId)\n : tokenId,\n spenderAccountId:\n typeof spenderAccountId === \"string\"\n ? AccountId.fromString(spenderAccountId)\n : spenderAccountId instanceof ContractId\n ? AccountId.fromEvmAddress(\n 0,\n 0,\n spenderAccountId.toSolidityAddress(),\n )\n : spenderAccountId,\n ownerAccountId:\n typeof ownerAccountId === \"string\"\n ? AccountId.fromString(ownerAccountId)\n : ownerAccountId instanceof ContractId\n ? AccountId.fromEvmAddress(\n 0,\n 0,\n ownerAccountId.toSolidityAddress(),\n )\n : ownerAccountId,\n amount:\n typeof amount === \"number\"\n ? Long.fromNumber(amount)\n : amount,\n }),\n );\n\n return this;\n }\n\n /**\n * @deprecated\n * @param {TokenId | string} tokenId\n * @param {AccountId | string} ownerAccountId\n * @param {AccountId | string} spenderAccountId\n * @param {Long | number} amount\n * @returns {AccountAllowanceAdjustTransaction}\n */\n grantTokenAllowance(tokenId, ownerAccountId, spenderAccountId, amount) {\n return this._adjustTokenAllowance(\n tokenId,\n ownerAccountId,\n spenderAccountId,\n util.requireNotNegative(Long.fromValue(amount)),\n );\n }\n\n /**\n * @deprecated\n * @param {TokenId | string} tokenId\n * @param {AccountId | string} ownerAccountId\n * @param {AccountId | string} spenderAccountId\n * @param {Long | number} amount\n * @returns {AccountAllowanceAdjustTransaction}\n */\n revokeTokenAllowance(tokenId, ownerAccountId, spenderAccountId, amount) {\n return this._adjustTokenAllowance(\n tokenId,\n ownerAccountId,\n spenderAccountId,\n util.requireNotNegative(Long.fromValue(amount)),\n );\n }\n\n /**\n * @deprecated\n * @param {NftId | string} nftId\n * @param {AccountId | string} spenderAccountId\n * @returns {AccountAllowanceAdjustTransaction}\n */\n addTokenNftAllowance(nftId, spenderAccountId) {\n const id = typeof nftId === \"string\" ? NftId.fromString(nftId) : nftId;\n return this._adjustTokenNftAllowance(id, null, spenderAccountId);\n }\n\n /**\n * @param {NftId} nftId\n * @param {AccountId | string | null} ownerAccountId\n * @param {AccountId | ContractId | string} spenderAccountId\n * @returns {AccountAllowanceAdjustTransaction}\n */\n _adjustTokenNftAllowance(nftId, ownerAccountId, spenderAccountId) {\n this._requireNotFrozen();\n\n const spender =\n typeof spenderAccountId === \"string\"\n ? AccountId.fromString(spenderAccountId)\n : spenderAccountId instanceof ContractId\n ? AccountId.fromEvmAddress(\n 0,\n 0,\n spenderAccountId.toSolidityAddress(),\n )\n : spenderAccountId;\n const owner =\n typeof ownerAccountId === \"string\"\n ? AccountId.fromString(ownerAccountId)\n : ownerAccountId instanceof ContractId\n ? AccountId.fromEvmAddress(\n 0,\n 0,\n ownerAccountId.toSolidityAddress(),\n )\n : ownerAccountId;\n let found = false;\n\n for (const allowance of this._nftAllowances) {\n if (\n allowance.tokenId.compare(nftId.tokenId) === 0 &&\n allowance.spenderAccountId != null &&\n allowance.spenderAccountId.compare(spender) === 0\n ) {\n if (allowance.serialNumbers != null) {\n allowance.serialNumbers.push(nftId.serial);\n }\n found = true;\n break;\n }\n }\n\n if (!found) {\n this._nftAllowances.push(\n new TokenNftAllowance({\n tokenId: nftId.tokenId,\n spenderAccountId: spender,\n serialNumbers: [nftId.serial],\n ownerAccountId: owner,\n allSerials: false,\n delegatingSpender: null,\n }),\n );\n }\n\n return this;\n }\n\n /**\n * @deprecated\n * @param {NftId | string} nftId\n * @param {AccountId | string} ownerAccountId\n * @param {AccountId | string} spenderAccountId\n * @returns {AccountAllowanceAdjustTransaction}\n */\n grantTokenNftAllowance(nftId, ownerAccountId, spenderAccountId) {\n const id = typeof nftId === \"string\" ? NftId.fromString(nftId) : nftId;\n\n util.requireNotNegative(id.serial);\n\n return this._adjustTokenNftAllowance(\n id,\n ownerAccountId,\n spenderAccountId,\n );\n }\n\n /**\n * @deprecated\n * @param {NftId | string} nftId\n * @param {AccountId | string} ownerAccountId\n * @param {AccountId | string} spenderAccountId\n * @returns {AccountAllowanceAdjustTransaction}\n */\n revokeTokenNftAllowance(nftId, ownerAccountId, spenderAccountId) {\n const id = typeof nftId === \"string\" ? NftId.fromString(nftId) : nftId;\n\n util.requireNotNegative(id.serial);\n return this._adjustTokenNftAllowance(\n new NftId(id.tokenId, id.serial.negate()),\n ownerAccountId,\n spenderAccountId,\n );\n }\n\n /**\n * @deprecated - use `grantTokenNftAllowanceAllSerials()` instead\n * @param {TokenId | string} tokenId\n * @param {AccountId | string} spenderAccountId\n * @returns {AccountAllowanceAdjustTransaction}\n */\n addAllTokenNftAllowance(tokenId, spenderAccountId) {\n return this._adjustTokenNftAllowanceAllSerials(\n tokenId,\n null,\n spenderAccountId,\n true,\n );\n }\n\n /**\n * @deprecated\n * @param {TokenId | string} tokenId\n * @param {AccountId | string} ownerAccountId\n * @param {AccountId | string} spenderAccountId\n * @returns {AccountAllowanceAdjustTransaction}\n */\n grantTokenNftAllowanceAllSerials(\n tokenId,\n ownerAccountId,\n spenderAccountId,\n ) {\n return this._adjustTokenNftAllowanceAllSerials(\n tokenId,\n ownerAccountId,\n spenderAccountId,\n true,\n );\n }\n\n /**\n * @deprecated\n * @param {TokenId | string} tokenId\n * @param {AccountId | string} ownerAccountId\n * @param {AccountId | string} spenderAccountId\n * @returns {AccountAllowanceAdjustTransaction}\n */\n revokeTokenNftAllowanceAllSerials(\n tokenId,\n ownerAccountId,\n spenderAccountId,\n ) {\n return this._adjustTokenNftAllowanceAllSerials(\n tokenId,\n ownerAccountId,\n spenderAccountId,\n false,\n );\n }\n\n /**\n * @param {TokenId | string} tokenId\n * @param {AccountId | string | null} ownerAccountId\n * @param {AccountId | ContractId | string} spenderAccountId\n * @param {boolean} allSerials\n * @returns {AccountAllowanceAdjustTransaction}\n */\n _adjustTokenNftAllowanceAllSerials(\n tokenId,\n ownerAccountId,\n spenderAccountId,\n allSerials,\n ) {\n this._requireNotFrozen();\n\n this._nftAllowances.push(\n new TokenNftAllowance({\n tokenId:\n typeof tokenId === \"string\"\n ? TokenId.fromString(tokenId)\n : tokenId,\n ownerAccountId:\n ownerAccountId != null\n ? typeof ownerAccountId === \"string\"\n ? AccountId.fromString(ownerAccountId)\n : ownerAccountId instanceof ContractId\n ? AccountId.fromEvmAddress(\n 0,\n 0,\n ownerAccountId.toSolidityAddress(),\n )\n : ownerAccountId\n : null,\n spenderAccountId:\n typeof spenderAccountId === \"string\"\n ? AccountId.fromString(spenderAccountId)\n : spenderAccountId instanceof ContractId\n ? AccountId.fromEvmAddress(\n 0,\n 0,\n spenderAccountId.toSolidityAddress(),\n )\n : spenderAccountId,\n serialNumbers: null,\n allSerials,\n delegatingSpender: null,\n }),\n );\n\n return this;\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n this._hbarAllowances.map((allowance) =>\n allowance._validateChecksums(client),\n );\n this._tokenAllowances.map((allowance) =>\n allowance._validateChecksums(client),\n );\n this._nftAllowances.map((allowance) =>\n allowance._validateChecksums(client),\n );\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.ITransaction} request\n * @returns {Promise}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _execute(channel, request) {\n return Promise.reject(\n new Error(\"This feature has been deprecated for this class.\"),\n );\n }\n\n // eslint-disable-next-line jsdoc/require-returns-check\n /**\n * @deprecated\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n throw new Error(\"This feature has been deprecated for this class.\");\n }\n\n // eslint-disable-next-line jsdoc/require-returns-check\n /**\n * @override\n * @protected\n * @returns {object}\n */\n _makeTransactionData() {\n throw new Error(\"This feature has been deprecated.\");\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `AccountAllowanceAdjustTransaction:${timestamp.toString()}`;\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Transaction, {\n TRANSACTION_REGISTRY,\n} from \"../transaction/Transaction.js\";\nimport AccountId from \"./AccountId.js\";\nimport ContractId from \"../contract/ContractId.js\";\nimport TokenId from \"../token/TokenId.js\";\nimport NftId from \"../token/NftId.js\";\nimport Long from \"long\";\nimport Hbar from \"../Hbar.js\";\nimport HbarAllowance from \"./HbarAllowance.js\";\nimport TokenAllowance from \"./TokenAllowance.js\";\nimport TokenNftAllowance from \"./TokenNftAllowance.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HashgraphProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HashgraphProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HashgraphProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} HashgraphProto.proto.ITransactionResponse\n * @typedef {import(\"@hashgraph/proto\").proto.ICryptoApproveAllowanceTransactionBody} HashgraphProto.proto.ICryptoApproveAllowanceTransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.IAccountID} HashgraphProto.proto.IAccountID\n * @typedef {import(\"@hashgraph/proto\").proto.IContractID} HashgraphProto.proto.IContractID\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n * @typedef {import(\"bignumber.js\").default} BigNumber\n * @typedef {import(\"../long.js\").LongObject} LongObject\n */\n\n/**\n * Change properties for the given account.\n */\nexport default class AccountAllowanceApproveTransaction extends Transaction {\n /**\n * @param {object} [props]\n * @param {HbarAllowance[]} [props.hbarApprovals]\n * @param {TokenAllowance[]} [props.tokenApprovals]\n * @param {TokenNftAllowance[]} [props.nftApprovals]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {HbarAllowance[]}\n */\n this._hbarApprovals =\n props.hbarApprovals != null ? props.hbarApprovals : [];\n\n /**\n * @private\n * @type {TokenAllowance[]}\n */\n this._tokenApprovals =\n props.tokenApprovals != null ? props.tokenApprovals : [];\n\n /**\n * @private\n * @type {TokenNftAllowance[]}\n */\n this._nftApprovals =\n props.nftApprovals != null ? props.nftApprovals : [];\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransaction[]} transactions\n * @param {HashgraphProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HashgraphProto.proto.ITransactionBody[]} bodies\n * @returns {AccountAllowanceApproveTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const allowanceApproval =\n /** @type {HashgraphProto.proto.ICryptoApproveAllowanceTransactionBody} */ (\n body.cryptoApproveAllowance\n );\n\n return Transaction._fromProtobufTransactions(\n new AccountAllowanceApproveTransaction({\n hbarApprovals: (allowanceApproval.cryptoAllowances != null\n ? allowanceApproval.cryptoAllowances\n : []\n ).map((approval) => HbarAllowance._fromProtobuf(approval)),\n tokenApprovals: (allowanceApproval.tokenAllowances != null\n ? allowanceApproval.tokenAllowances\n : []\n ).map((approval) => TokenAllowance._fromProtobuf(approval)),\n nftApprovals: (allowanceApproval.nftAllowances != null\n ? allowanceApproval.nftAllowances\n : []\n ).map((approval) => TokenNftAllowance._fromProtobuf(approval)),\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @returns {HbarAllowance[]}\n */\n get hbarApprovals() {\n return this._hbarApprovals;\n }\n\n /**\n * @param {AccountId | string} ownerAccountId\n * @param {AccountId | ContractId | string} spenderAccountId\n * @param {number | string | Long | LongObject | BigNumber | Hbar} amount\n * @returns {AccountAllowanceApproveTransaction}\n */\n approveHbarAllowance(ownerAccountId, spenderAccountId, amount) {\n this._requireNotFrozen();\n\n this._hbarApprovals.push(\n new HbarAllowance({\n spenderAccountId:\n typeof spenderAccountId === \"string\"\n ? AccountId.fromString(spenderAccountId)\n : spenderAccountId instanceof ContractId\n ? AccountId.fromEvmAddress(\n 0,\n 0,\n spenderAccountId.toSolidityAddress(),\n )\n : spenderAccountId,\n ownerAccountId:\n typeof ownerAccountId === \"string\"\n ? AccountId.fromString(ownerAccountId)\n : ownerAccountId instanceof ContractId\n ? AccountId.fromEvmAddress(\n 0,\n 0,\n ownerAccountId.toSolidityAddress(),\n )\n : ownerAccountId,\n amount: amount instanceof Hbar ? amount : new Hbar(amount),\n }),\n );\n\n return this;\n }\n\n /**\n * @deprecated - Use `approveHbarAllowance()` instead\n * @param {AccountId | string} spenderAccountId\n * @param {number | string | Long | LongObject | BigNumber | Hbar} amount\n * @returns {AccountAllowanceApproveTransaction}\n */\n addHbarAllowance(spenderAccountId, amount) {\n this._requireNotFrozen();\n\n this._hbarApprovals.push(\n new HbarAllowance({\n spenderAccountId:\n typeof spenderAccountId === \"string\"\n ? AccountId.fromString(spenderAccountId)\n : spenderAccountId,\n amount: amount instanceof Hbar ? amount : new Hbar(amount),\n ownerAccountId: null,\n }),\n );\n\n return this;\n }\n\n /**\n * @returns {TokenAllowance[]}\n */\n get tokenApprovals() {\n return this._tokenApprovals;\n }\n\n /**\n * @param {TokenId | string} tokenId\n * @param {AccountId | string} ownerAccountId\n * @param {AccountId | ContractId | string} spenderAccountId\n * @param {Long | number} amount\n * @returns {AccountAllowanceApproveTransaction}\n */\n approveTokenAllowance(tokenId, ownerAccountId, spenderAccountId, amount) {\n this._requireNotFrozen();\n\n this._tokenApprovals.push(\n new TokenAllowance({\n tokenId:\n typeof tokenId === \"string\"\n ? TokenId.fromString(tokenId)\n : tokenId,\n spenderAccountId:\n typeof spenderAccountId === \"string\"\n ? AccountId.fromString(spenderAccountId)\n : spenderAccountId instanceof ContractId\n ? AccountId.fromEvmAddress(\n 0,\n 0,\n spenderAccountId.toSolidityAddress(),\n )\n : spenderAccountId,\n ownerAccountId:\n typeof ownerAccountId === \"string\"\n ? AccountId.fromString(ownerAccountId)\n : ownerAccountId instanceof ContractId\n ? AccountId.fromEvmAddress(\n 0,\n 0,\n ownerAccountId.toSolidityAddress(),\n )\n : ownerAccountId,\n amount:\n typeof amount === \"number\"\n ? Long.fromNumber(amount)\n : amount,\n }),\n );\n\n return this;\n }\n\n /**\n * @deprecated - Use `approveTokenAllowance()` instead\n * @param {TokenId | string} tokenId\n * @param {AccountId | string} spenderAccountId\n * @param {Long | number} amount\n * @returns {AccountAllowanceApproveTransaction}\n */\n addTokenAllowance(tokenId, spenderAccountId, amount) {\n this._requireNotFrozen();\n\n this._tokenApprovals.push(\n new TokenAllowance({\n tokenId:\n typeof tokenId === \"string\"\n ? TokenId.fromString(tokenId)\n : tokenId,\n spenderAccountId:\n typeof spenderAccountId === \"string\"\n ? AccountId.fromString(spenderAccountId)\n : spenderAccountId,\n amount:\n typeof amount === \"number\"\n ? Long.fromNumber(amount)\n : amount,\n ownerAccountId: null,\n }),\n );\n\n return this;\n }\n\n /**\n * @deprecated - Use `approveTokenNftAllowance()` instead\n * @param {NftId | string} nftId\n * @param {AccountId | ContractId | string} spenderAccountId\n * @returns {AccountAllowanceApproveTransaction}\n */\n addTokenNftAllowance(nftId, spenderAccountId) {\n return this._approveTokenNftAllowance(\n nftId,\n null,\n spenderAccountId,\n null,\n );\n }\n\n /**\n * @returns {TokenNftAllowance[]}\n */\n get tokenNftApprovals() {\n return this._nftApprovals;\n }\n\n /**\n * @param {NftId | string} nftId\n * @param {AccountId | string | null} ownerAccountId\n * @param {AccountId | ContractId | string} spenderAccountId\n * @param {AccountId | string | null} delegatingSpender\n * @returns {AccountAllowanceApproveTransaction}\n */\n _approveTokenNftAllowance(\n nftId,\n ownerAccountId,\n spenderAccountId,\n delegatingSpender,\n ) {\n this._requireNotFrozen();\n\n const id = typeof nftId === \"string\" ? NftId.fromString(nftId) : nftId;\n const spender =\n typeof spenderAccountId === \"string\"\n ? AccountId.fromString(spenderAccountId)\n : spenderAccountId instanceof ContractId\n ? AccountId.fromEvmAddress(\n 0,\n 0,\n spenderAccountId.toSolidityAddress(),\n )\n : spenderAccountId;\n let found = false;\n\n for (const allowance of this._nftApprovals) {\n if (\n allowance.tokenId.compare(id.tokenId) === 0 &&\n allowance.spenderAccountId != null &&\n allowance.spenderAccountId.compare(spender) === 0\n ) {\n if (allowance.serialNumbers != null) {\n allowance.serialNumbers.push(id.serial);\n }\n found = true;\n break;\n }\n }\n\n if (!found) {\n this._nftApprovals.push(\n new TokenNftAllowance({\n tokenId: id.tokenId,\n spenderAccountId: spender,\n ownerAccountId:\n typeof ownerAccountId === \"string\"\n ? AccountId.fromString(ownerAccountId)\n : ownerAccountId instanceof ContractId\n ? AccountId.fromEvmAddress(\n 0,\n 0,\n ownerAccountId.toSolidityAddress(),\n )\n : ownerAccountId,\n serialNumbers: [id.serial],\n allSerials: false,\n delegatingSpender:\n typeof delegatingSpender === \"string\"\n ? AccountId.fromString(delegatingSpender)\n : delegatingSpender,\n }),\n );\n }\n\n return this;\n }\n\n /**\n * @param {NftId | string} nftId\n * @param {AccountId | string} ownerAccountId\n * @param {AccountId | ContractId | string} spenderAccountId\n * @returns {AccountAllowanceApproveTransaction}\n */\n approveTokenNftAllowance(nftId, ownerAccountId, spenderAccountId) {\n return this._approveTokenNftAllowance(\n nftId,\n ownerAccountId,\n spenderAccountId,\n null,\n );\n }\n\n /**\n * @param {NftId | string} nftId\n * @param {AccountId | string} ownerAccountId\n * @param {AccountId | ContractId | string} spenderAccountId\n * @param {AccountId | string} delegatingSpender\n * @returns {AccountAllowanceApproveTransaction}\n */\n approveTokenNftAllowanceWithDelegatingSpender(\n nftId,\n ownerAccountId,\n spenderAccountId,\n delegatingSpender,\n ) {\n return this._approveTokenNftAllowance(\n nftId,\n ownerAccountId,\n spenderAccountId,\n delegatingSpender,\n );\n }\n\n /**\n * @param {TokenId | string} tokenId\n * @param {AccountId | string | null} ownerAccountId\n * @param {AccountId | ContractId | string} spenderAccountId\n * @param {boolean} allSerials\n * @returns {AccountAllowanceApproveTransaction}\n */\n _approveAllTokenNftAllowance(\n tokenId,\n ownerAccountId,\n spenderAccountId,\n allSerials,\n ) {\n this._requireNotFrozen();\n\n this._nftApprovals.push(\n new TokenNftAllowance({\n tokenId:\n typeof tokenId === \"string\"\n ? TokenId.fromString(tokenId)\n : tokenId,\n spenderAccountId:\n typeof spenderAccountId === \"string\"\n ? AccountId.fromString(spenderAccountId)\n : spenderAccountId instanceof ContractId\n ? AccountId.fromEvmAddress(\n 0,\n 0,\n spenderAccountId.toSolidityAddress(),\n )\n : spenderAccountId,\n ownerAccountId:\n typeof ownerAccountId === \"string\"\n ? AccountId.fromString(ownerAccountId)\n : ownerAccountId instanceof ContractId\n ? AccountId.fromEvmAddress(\n 0,\n 0,\n ownerAccountId.toSolidityAddress(),\n )\n : ownerAccountId,\n serialNumbers: null,\n allSerials,\n delegatingSpender: null,\n }),\n );\n\n return this;\n }\n\n /**\n * @deprecated - Use `approveTokenNftAllowanceAllSerials()` instead\n * @param {TokenId | string} tokenId\n * @param {AccountId | string} ownerAccountId\n * @param {AccountId | string} spenderAccountId\n * @returns {AccountAllowanceApproveTransaction}\n */\n addAllTokenNftAllowance(tokenId, ownerAccountId, spenderAccountId) {\n return this._approveAllTokenNftAllowance(\n tokenId,\n ownerAccountId,\n spenderAccountId,\n true,\n );\n }\n\n /**\n * @param {TokenId | string} tokenId\n * @param {AccountId | string} ownerAccountId\n * @param {AccountId | ContractId | string} spenderAccountId\n * @returns {AccountAllowanceApproveTransaction}\n */\n approveTokenNftAllowanceAllSerials(\n tokenId,\n ownerAccountId,\n spenderAccountId,\n ) {\n return this._approveAllTokenNftAllowance(\n tokenId,\n ownerAccountId,\n spenderAccountId,\n true,\n );\n }\n\n /**\n * @param {TokenId | string} tokenId\n * @param {AccountId | string} ownerAccountId\n * @param {AccountId | ContractId | string} spenderAccountId\n * @returns {AccountAllowanceApproveTransaction}\n */\n deleteTokenNftAllowanceAllSerials(\n tokenId,\n ownerAccountId,\n spenderAccountId,\n ) {\n return this._approveAllTokenNftAllowance(\n tokenId,\n ownerAccountId,\n spenderAccountId,\n false,\n );\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n this._hbarApprovals.map((approval) =>\n approval._validateChecksums(client),\n );\n this._tokenApprovals.map((approval) =>\n approval._validateChecksums(client),\n );\n this._nftApprovals.map((approval) =>\n approval._validateChecksums(client),\n );\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.crypto.approveAllowances(request);\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"cryptoApproveAllowance\";\n }\n\n /**\n * @override\n * @protected\n * @returns {HashgraphProto.proto.ICryptoApproveAllowanceTransactionBody}\n */\n _makeTransactionData() {\n return {\n cryptoAllowances: this._hbarApprovals.map((approval) =>\n approval._toProtobuf(),\n ),\n tokenAllowances: this._tokenApprovals.map((approval) =>\n approval._toProtobuf(),\n ),\n nftAllowances: this._nftApprovals.map((approval) =>\n approval._toProtobuf(),\n ),\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `AccountAllowanceApproveTransaction:${timestamp.toString()}`;\n }\n}\n\nTRANSACTION_REGISTRY.set(\n \"cryptoApproveAllowance\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n AccountAllowanceApproveTransaction._fromProtobuf,\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Transaction, {\n TRANSACTION_REGISTRY,\n} from \"../transaction/Transaction.js\";\nimport AccountId from \"./AccountId.js\";\nimport NftId from \"../token/NftId.js\";\nimport TokenNftAllowance from \"./TokenNftAllowance.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HashgraphProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HashgraphProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HashgraphProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} HashgraphProto.proto.ITransactionResponse\n * @typedef {import(\"@hashgraph/proto\").proto.ICryptoDeleteAllowanceTransactionBody} HashgraphProto.proto.ICryptoDeleteAllowanceTransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.IAccountID} HashgraphProto.proto.IAccountID\n */\n\n/**\n * @typedef {import(\"./HbarAllowance.js\").default} HbarAllowance\n * @typedef {import(\"./TokenAllowance.js\").default} TokenAllowance\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n * @typedef {import(\"bignumber.js\").default} BigNumber\n * @typedef {import(\"../long.js\").LongObject} LongObject\n */\n\n/**\n * Change properties for the given account.\n */\nexport default class AccountAllowanceDeleteTransaction extends Transaction {\n /**\n * @param {object} [props]\n * @param {HbarAllowance[]} [props.hbarAllowances]\n * @param {TokenAllowance[]} [props.tokenAllowances]\n * @param {TokenNftAllowance[]} [props.nftAllowances]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {TokenNftAllowance[]}\n */\n this._nftAllowances =\n props.nftAllowances != null ? props.nftAllowances : [];\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransaction[]} transactions\n * @param {HashgraphProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HashgraphProto.proto.ITransactionBody[]} bodies\n * @returns {AccountAllowanceDeleteTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const allowance =\n /** @type {HashgraphProto.proto.ICryptoDeleteAllowanceTransactionBody} */ (\n body.cryptoDeleteAllowance\n );\n\n return Transaction._fromProtobufTransactions(\n new AccountAllowanceDeleteTransaction({\n nftAllowances: (allowance.nftAllowances != null\n ? allowance.nftAllowances\n : []\n ).map((allowance) =>\n TokenNftAllowance._fromProtobuf(allowance),\n ),\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @returns {TokenNftAllowance[]}\n */\n get tokenNftAllowanceDeletions() {\n return this._nftAllowances;\n }\n\n /**\n * @description If you want to remove allowance for all serials of a NFT\n * - use AccountAllowanceApproveTransaction().deleteTokenNftAllowanceAllSerials()\n * @param {NftId | string} nftId\n * @param {AccountId | string} ownerAccountId\n * @returns {AccountAllowanceDeleteTransaction}\n */\n deleteAllTokenNftAllowances(nftId, ownerAccountId) {\n this._requireNotFrozen();\n\n const id = typeof nftId === \"string\" ? NftId.fromString(nftId) : nftId;\n\n const owner =\n typeof ownerAccountId === \"string\"\n ? AccountId.fromString(ownerAccountId)\n : ownerAccountId;\n let found = false;\n\n for (const allowance of this._nftAllowances) {\n if (allowance.tokenId.compare(id.tokenId) === 0) {\n if (allowance.serialNumbers != null) {\n allowance.serialNumbers.push(id.serial);\n }\n found = true;\n break;\n }\n }\n\n if (!found) {\n this._nftAllowances.push(\n new TokenNftAllowance({\n tokenId: id.tokenId,\n spenderAccountId: null,\n serialNumbers: [id.serial],\n ownerAccountId: owner,\n allSerials: false,\n delegatingSpender: null,\n }),\n );\n }\n\n return this;\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n this._nftAllowances.map((allowance) =>\n allowance._validateChecksums(client),\n );\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.crypto.deleteAllowances(request);\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"cryptoDeleteAllowance\";\n }\n\n /**\n * @override\n * @protected\n * @returns {HashgraphProto.proto.ICryptoDeleteAllowanceTransactionBody}\n */\n _makeTransactionData() {\n return {\n nftAllowances: this._nftAllowances.map((allowance) =>\n allowance._toProtobuf(),\n ),\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `AccountAllowanceDeleteTransaction:${timestamp.toString()}`;\n }\n}\n\nTRANSACTION_REGISTRY.set(\n \"cryptoDeleteAllowance\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n AccountAllowanceDeleteTransaction._fromProtobuf,\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport TokenId from \"../token/TokenId.js\";\nimport ObjectMap from \"../ObjectMap.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenBalance} HashgraphProto.proto.ITokenBalance\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenID} HashgraphProto.proto.ITokenID\n */\n\n/**\n * @typedef {import(\"long\")} Long\n */\n\n/**\n * @augments {ObjectMap}\n */\nexport default class TokenBalanceMap extends ObjectMap {\n constructor() {\n super((s) => TokenId.fromString(s));\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport TokenId from \"../token/TokenId.js\";\nimport ObjectMap from \"../ObjectMap.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenBalance} HashgraphProto.proto.ITokenBalance\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenID} HashgraphProto.proto.ITokenID\n */\n\n/**\n * @augments {ObjectMap}\n */\nexport default class TokenDecimalMap extends ObjectMap {\n constructor() {\n super((s) => TokenId.fromString(s));\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Long from \"long\";\nimport Hbar from \"../Hbar.js\";\nimport TokenId from \"../token/TokenId.js\";\nimport TokenBalanceMap from \"./TokenBalanceMap.js\";\nimport TokenDecimalMap from \"./TokenDecimalMap.js\";\nimport * as HashgraphProto from \"@hashgraph/proto\";\n\n/**\n * @typedef {object} TokenBalanceJson\n * @property {string} tokenId\n * @property {string} balance\n * @property {number} decimals\n */\n\n/**\n * @typedef {object} AccountBalanceJson\n * @property {string} hbars\n * @property {TokenBalanceJson[]} tokens\n */\n\nexport default class AccountBalance {\n /**\n * @private\n * @param {object} props\n * @param {Hbar} props.hbars\n * @param {?TokenBalanceMap} props.tokens\n * @param {?TokenDecimalMap} props.tokenDecimals\n */\n constructor(props) {\n /**\n * The Hbar balance of the account\n *\n * @readonly\n */\n this.hbars = props.hbars;\n\n this.tokens = props.tokens;\n\n this.tokenDecimals = props.tokenDecimals;\n\n Object.freeze(this);\n }\n\n /**\n * @param {Uint8Array} bytes\n * @returns {AccountBalance}\n */\n static fromBytes(bytes) {\n return AccountBalance._fromProtobuf(\n HashgraphProto.proto.CryptoGetAccountBalanceResponse.decode(bytes),\n );\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ICryptoGetAccountBalanceResponse} accountBalance\n * @returns {AccountBalance}\n */\n static _fromProtobuf(accountBalance) {\n const tokenBalances = new TokenBalanceMap();\n const tokenDecimals = new TokenDecimalMap();\n\n if (accountBalance.tokenBalances != null) {\n for (const balance of accountBalance.tokenBalances) {\n const tokenId = TokenId._fromProtobuf(\n /** @type {HashgraphProto.proto.ITokenID} */ (\n balance.tokenId\n ),\n );\n\n tokenDecimals._set(\n tokenId,\n balance.decimals != null ? balance.decimals : 0,\n );\n tokenBalances._set(\n tokenId,\n Long.fromValue(/** @type {Long} */ (balance.balance)),\n );\n }\n }\n\n return new AccountBalance({\n hbars: Hbar.fromTinybars(\n /** @type {Long} */ (accountBalance.balance),\n ),\n tokens: tokenBalances,\n tokenDecimals,\n });\n }\n\n /**\n * @returns {HashgraphProto.proto.ICryptoGetAccountBalanceResponse}\n */\n _toProtobuf() {\n /** @type {HashgraphProto.proto.ITokenBalance[]} */\n const list = [];\n\n // eslint-disable-next-line deprecation/deprecation\n for (const [key, value] of this.tokens != null ? this.tokens : []) {\n list.push({\n tokenId: key._toProtobuf(),\n balance: value,\n decimals:\n // eslint-disable-next-line deprecation/deprecation\n this.tokenDecimals != null\n ? // eslint-disable-next-line deprecation/deprecation\n this.tokenDecimals.get(key)\n : null,\n });\n }\n\n return {\n balance: this.hbars.toTinybars(),\n tokenBalances: list,\n };\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytes() {\n return HashgraphProto.proto.CryptoGetAccountBalanceResponse.encode(\n this._toProtobuf(),\n ).finish();\n }\n\n /**\n * @returns {string}\n */\n toString() {\n return JSON.stringify(this.toJSON());\n }\n\n /**\n * @returns {AccountBalanceJson}\n */\n toJSON() {\n const tokens = [];\n // eslint-disable-next-line deprecation/deprecation\n for (const [key, value] of this.tokens != null ? this.tokens : []) {\n const decimals =\n // eslint-disable-next-line deprecation/deprecation\n this.tokenDecimals != null ? this.tokenDecimals.get(key) : null;\n\n tokens.push({\n tokenId: key.toString(),\n balance: value.toString(),\n decimals: decimals != null ? decimals : 0,\n });\n }\n\n return {\n hbars: this.hbars.toString(),\n tokens,\n };\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Query, { QUERY_REGISTRY } from \"../query/Query.js\";\nimport AccountId from \"./AccountId.js\";\nimport ContractId from \"../contract/ContractId.js\";\nimport AccountBalance from \"./AccountBalance.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.IQuery} HashgraphProto.proto.IQuery\n * @typedef {import(\"@hashgraph/proto\").proto.IQueryHeader} HashgraphProto.proto.IQueryHeader\n * @typedef {import(\"@hashgraph/proto\").proto.IResponse} HashgraphProto.proto.IResponse\n * @typedef {import(\"@hashgraph/proto\").proto.IResponseHeader} HashgraphProto.proto.IResponseHeader\n * @typedef {import(\"@hashgraph/proto\").proto.ICryptoGetAccountBalanceQuery} HashgraphProto.proto.ICryptoGetAccountBalanceQuery\n * @typedef {import(\"@hashgraph/proto\").proto.ICryptoGetAccountBalanceResponse} HashgraphProto.proto.ICryptoGetAccountBalanceResponse\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n */\n\n/**\n * Get the balance of a Hedera™ crypto-currency account.\n *\n * This returns only the balance, so its a smaller and faster reply\n * than AccountInfoQuery.\n *\n * This query is free.\n *\n * @augments {Query}\n */\nexport default class AccountBalanceQuery extends Query {\n /**\n * @param {object} [props]\n * @param {AccountId | string} [props.accountId]\n * @param {ContractId | string} [props.contractId]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @type {?AccountId}\n * @private\n */\n this._accountId = null;\n\n /**\n * @type {?ContractId}\n * @private\n */\n this._contractId = null;\n\n if (props.accountId != null) {\n this.setAccountId(props.accountId);\n }\n\n if (props.contractId != null) {\n this.setContractId(props.contractId);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.IQuery} query\n * @returns {AccountBalanceQuery}\n */\n static _fromProtobuf(query) {\n const balance =\n /** @type {HashgraphProto.proto.ICryptoGetAccountBalanceQuery} */ (\n query.cryptogetAccountBalance\n );\n\n return new AccountBalanceQuery({\n accountId:\n balance.accountID != null\n ? AccountId._fromProtobuf(balance.accountID)\n : undefined,\n contractId:\n balance.contractID != null\n ? ContractId._fromProtobuf(balance.contractID)\n : undefined,\n });\n }\n\n /**\n * @returns {?AccountId}\n */\n get accountId() {\n return this._accountId;\n }\n\n /**\n * Set the account ID for which the balance is being requested.\n *\n * This is mutually exclusive with `setContractId`.\n *\n * @param {AccountId | string} accountId\n * @returns {this}\n */\n setAccountId(accountId) {\n this._accountId =\n typeof accountId === \"string\"\n ? AccountId.fromString(accountId)\n : accountId.clone();\n\n return this;\n }\n\n /**\n * @returns {?ContractId}\n */\n get contractId() {\n return this._contractId;\n }\n\n /**\n * Set the contract ID for which the balance is being requested.\n *\n * This is mutually exclusive with `setAccountId`.\n *\n * @param {ContractId | string} contractId\n * @returns {this}\n */\n setContractId(contractId) {\n this._contractId =\n typeof contractId === \"string\"\n ? ContractId.fromString(contractId)\n : contractId.clone();\n\n return this;\n }\n\n /**\n * @protected\n * @override\n * @returns {boolean}\n */\n _isPaymentRequired() {\n return false;\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (this._accountId != null) {\n this._accountId.validateChecksum(client);\n }\n\n if (this._contractId != null) {\n this._contractId.validateChecksum(client);\n }\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.IQuery} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.crypto.cryptoGetBalance(request);\n }\n\n /**\n * @override\n * @override\n * @internal\n * @param {HashgraphProto.proto.IResponse} response\n * @returns {HashgraphProto.proto.IResponseHeader}\n */\n _mapResponseHeader(response) {\n const cryptogetAccountBalance =\n /** @type {HashgraphProto.proto.ICryptoGetAccountBalanceResponse} */ (\n response.cryptogetAccountBalance\n );\n return /** @type {HashgraphProto.proto.IResponseHeader} */ (\n cryptogetAccountBalance.header\n );\n }\n\n /**\n * @override\n * @override\n * @internal\n * @param {HashgraphProto.proto.IResponse} response\n * @param {AccountId} nodeAccountId\n * @param {HashgraphProto.proto.IQuery} request\n * @returns {Promise}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _mapResponse(response, nodeAccountId, request) {\n const cryptogetAccountBalance =\n /** @type {HashgraphProto.proto.ICryptoGetAccountBalanceResponse} */ (\n response.cryptogetAccountBalance\n );\n return Promise.resolve(\n AccountBalance._fromProtobuf(cryptogetAccountBalance),\n );\n }\n\n /**\n * @override\n * @internal\n * @param {HashgraphProto.proto.IQueryHeader} header\n * @returns {HashgraphProto.proto.IQuery}\n */\n _onMakeRequest(header) {\n return {\n cryptogetAccountBalance: {\n header,\n accountID:\n this._accountId != null\n ? this._accountId._toProtobuf()\n : null,\n contractID:\n this._contractId != null\n ? this._contractId._toProtobuf()\n : null,\n },\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n return `AccountBalanceQuery:${this._timestamp.toString()}`;\n }\n}\n\nQUERY_REGISTRY.set(\n \"cryptogetAccountBalance\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n AccountBalanceQuery._fromProtobuf,\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Long from \"long\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.IDuration} HashgraphProto.proto.IDuration\n */\n\n/**\n * A duration type.\n *\n * The main point of this tyope is for encapsulating the `[to|from]Protobuf()` implementations\n */\nexport default class Duration {\n /**\n * @param {Long | number} seconds\n */\n constructor(seconds) {\n /**\n * @readonly\n * @type {Long}\n */\n this.seconds =\n seconds instanceof Long ? seconds : Long.fromNumber(seconds);\n\n Object.freeze(this);\n }\n\n /**\n * @internal\n * @returns {HashgraphProto.proto.IDuration}\n */\n _toProtobuf() {\n return {\n seconds: this.seconds,\n };\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.IDuration} duration\n * @returns {Duration}\n */\n static _fromProtobuf(duration) {\n return new Duration(/** @type {Long} */ (duration.seconds));\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport * as HashgraphProto from \"@hashgraph/proto\";\nimport Hbar from \"../Hbar.js\";\nimport AccountId from \"./AccountId.js\";\nimport Transaction, {\n DEFAULT_AUTO_RENEW_PERIOD,\n DEFAULT_RECORD_THRESHOLD,\n TRANSACTION_REGISTRY,\n} from \"../transaction/Transaction.js\";\nimport Duration from \"../Duration.js\";\nimport Long from \"long\";\nimport Key from \"../Key.js\";\nimport EvmAddress from \"../EvmAddress.js\";\n\n/**\n * @typedef {import(\"bignumber.js\").default} BigNumber\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../Timestamp.js\").default} Timestamp\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n */\n\n/**\n * Create a new Hedera™ crypto-currency account.\n */\nexport default class AccountCreateTransaction extends Transaction {\n /**\n * @param {object} [props]\n * @param {Key} [props.key]\n * @param {number | string | Long | BigNumber | Hbar} [props.initialBalance]\n * @param {boolean} [props.receiverSignatureRequired]\n * @param {AccountId} [props.proxyAccountId]\n * @param {Duration | Long | number} [props.autoRenewPeriod]\n * @param {string} [props.accountMemo]\n * @param {Long | number} [props.maxAutomaticTokenAssociations]\n * @param {AccountId | string} [props.stakedAccountId]\n * @param {Long | number} [props.stakedNodeId]\n * @param {boolean} [props.declineStakingReward]\n * @param {EvmAddress} [props.alias]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {?Key}\n */\n this._key = null;\n\n /**\n * @private\n * @type {?Hbar}\n */\n this._initialBalance = null;\n\n /**\n * @private\n * @type {Hbar}\n */\n this._sendRecordThreshold = DEFAULT_RECORD_THRESHOLD;\n\n /**\n * @private\n * @type {Hbar}\n */\n this._receiveRecordThreshold = DEFAULT_RECORD_THRESHOLD;\n\n /**\n * @private\n * @type {boolean}\n */\n this._receiverSignatureRequired = false;\n\n /**\n * @private\n * @type {?AccountId}\n */\n this._proxyAccountId = null;\n\n /**\n * @private\n * @type {Duration}\n */\n this._autoRenewPeriod = new Duration(DEFAULT_AUTO_RENEW_PERIOD);\n\n /**\n * @private\n * @type {?string}\n */\n this._accountMemo = null;\n\n /**\n * @private\n * @type {?Long}\n */\n this._maxAutomaticTokenAssociations = null;\n\n /**\n * @private\n * @type {?AccountId}\n */\n this._stakedAccountId = null;\n\n /**\n * @private\n * @type {?Long}\n */\n this._stakedNodeId = null;\n\n /**\n * @private\n * @type {boolean}\n */\n this._declineStakingReward = false;\n\n /**\n * @private\n * @type {?EvmAddress}\n */\n this._alias = null;\n\n if (props.key != null) {\n this.setKey(props.key);\n }\n\n if (props.receiverSignatureRequired != null) {\n this.setReceiverSignatureRequired(props.receiverSignatureRequired);\n }\n\n if (props.initialBalance != null) {\n this.setInitialBalance(props.initialBalance);\n }\n\n if (props.proxyAccountId != null) {\n // eslint-disable-next-line deprecation/deprecation\n this.setProxyAccountId(props.proxyAccountId);\n }\n\n if (props.autoRenewPeriod != null) {\n this.setAutoRenewPeriod(props.autoRenewPeriod);\n }\n\n if (props.accountMemo != null) {\n this.setAccountMemo(props.accountMemo);\n }\n\n if (props.maxAutomaticTokenAssociations != null) {\n this.setMaxAutomaticTokenAssociations(\n props.maxAutomaticTokenAssociations,\n );\n }\n\n if (props.stakedAccountId != null) {\n this.setStakedAccountId(props.stakedAccountId);\n }\n\n if (props.stakedNodeId != null) {\n this.setStakedNodeId(props.stakedNodeId);\n }\n\n if (props.declineStakingReward != null) {\n this.setDeclineStakingReward(props.declineStakingReward);\n }\n\n if (props.alias != null) {\n this.setAlias(props.alias);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransaction[]} transactions\n * @param {HashgraphProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HashgraphProto.proto.ITransactionBody[]} bodies\n * @returns {AccountCreateTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const create =\n /** @type {HashgraphProto.proto.ICryptoCreateTransactionBody} */ (\n body.cryptoCreateAccount\n );\n\n let alias = undefined;\n if (create.alias != null && create.alias.length > 0) {\n if (create.alias.length === 20) {\n alias = EvmAddress.fromBytes(create.alias);\n }\n }\n\n return Transaction._fromProtobufTransactions(\n new AccountCreateTransaction({\n key:\n create.key != null\n ? Key._fromProtobufKey(create.key)\n : undefined,\n initialBalance:\n create.initialBalance != null\n ? Hbar.fromTinybars(create.initialBalance)\n : undefined,\n receiverSignatureRequired:\n create.receiverSigRequired != null\n ? create.receiverSigRequired\n : undefined,\n proxyAccountId:\n create.proxyAccountID != null\n ? AccountId._fromProtobuf(\n /** @type {HashgraphProto.proto.IAccountID} */ (\n create.proxyAccountID\n ),\n )\n : undefined,\n autoRenewPeriod:\n create.autoRenewPeriod != null\n ? create.autoRenewPeriod.seconds != null\n ? create.autoRenewPeriod.seconds\n : undefined\n : undefined,\n accountMemo: create.memo != null ? create.memo : undefined,\n maxAutomaticTokenAssociations:\n create.maxAutomaticTokenAssociations != null\n ? create.maxAutomaticTokenAssociations\n : undefined,\n stakedAccountId:\n create.stakedAccountId != null\n ? AccountId._fromProtobuf(create.stakedAccountId)\n : undefined,\n stakedNodeId:\n create.stakedNodeId != null\n ? create.stakedNodeId\n : undefined,\n declineStakingReward: create.declineReward == true,\n alias,\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @returns {?Key}\n */\n get key() {\n return this._key;\n }\n\n /**\n * Set the key for this account.\n *\n * This is the key that must sign each transfer out of the account.\n *\n * If `receiverSignatureRequired` is true, then the key must also sign\n * any transfer into the account.\n *\n * @param {Key} key\n * @returns {this}\n */\n setKey(key) {\n this._requireNotFrozen();\n this._key = key;\n\n return this;\n }\n\n /**\n * @returns {?Hbar}\n */\n get initialBalance() {\n return this._initialBalance;\n }\n\n /**\n * Set the initial amount to transfer into this account.\n *\n * @param {number | string | Long | BigNumber | Hbar} initialBalance\n * @returns {this}\n */\n setInitialBalance(initialBalance) {\n this._requireNotFrozen();\n this._initialBalance =\n initialBalance instanceof Hbar\n ? initialBalance\n : new Hbar(initialBalance);\n\n return this;\n }\n\n /**\n * @returns {boolean}\n */\n get receiverSignatureRequired() {\n return this._receiverSignatureRequired;\n }\n\n /**\n * Set to true to require the key for this account to sign any transfer of\n * hbars to this account.\n *\n * @param {boolean} receiverSignatureRequired\n * @returns {this}\n */\n setReceiverSignatureRequired(receiverSignatureRequired) {\n this._requireNotFrozen();\n this._receiverSignatureRequired = receiverSignatureRequired;\n\n return this;\n }\n\n /**\n * @deprecated\n * @returns {?AccountId}\n */\n get proxyAccountId() {\n return this._proxyAccountId;\n }\n\n /**\n * @deprecated\n *\n * Set the ID of the account to which this account is proxy staked.\n * @param {AccountId} proxyAccountId\n * @returns {this}\n */\n setProxyAccountId(proxyAccountId) {\n this._requireNotFrozen();\n this._proxyAccountId = proxyAccountId;\n\n return this;\n }\n\n /**\n * @returns {Duration}\n */\n get autoRenewPeriod() {\n return this._autoRenewPeriod;\n }\n\n /**\n * Set the auto renew period for this account.\n *\n * @param {Duration | Long | number} autoRenewPeriod\n * @returns {this}\n */\n setAutoRenewPeriod(autoRenewPeriod) {\n this._requireNotFrozen();\n this._autoRenewPeriod =\n autoRenewPeriod instanceof Duration\n ? autoRenewPeriod\n : new Duration(autoRenewPeriod);\n\n return this;\n }\n\n /**\n * @returns {?string}\n */\n get accountMemo() {\n return this._accountMemo;\n }\n\n /**\n * @param {string} memo\n * @returns {this}\n */\n setAccountMemo(memo) {\n this._requireNotFrozen();\n this._accountMemo = memo;\n\n return this;\n }\n\n /**\n * @returns {?Long}\n */\n get maxAutomaticTokenAssociations() {\n return this._maxAutomaticTokenAssociations;\n }\n\n /**\n * @param {Long | number} maxAutomaticTokenAssociations\n * @returns {this}\n */\n setMaxAutomaticTokenAssociations(maxAutomaticTokenAssociations) {\n this._requireNotFrozen();\n this._maxAutomaticTokenAssociations =\n typeof maxAutomaticTokenAssociations === \"number\"\n ? Long.fromNumber(maxAutomaticTokenAssociations)\n : maxAutomaticTokenAssociations;\n\n return this;\n }\n\n /**\n * @returns {?AccountId}\n */\n get stakedAccountId() {\n return this._stakedAccountId;\n }\n\n /**\n * @param {AccountId | string} stakedAccountId\n * @returns {this}\n */\n setStakedAccountId(stakedAccountId) {\n this._requireNotFrozen();\n this._stakedAccountId =\n typeof stakedAccountId === \"string\"\n ? AccountId.fromString(stakedAccountId)\n : stakedAccountId;\n\n return this;\n }\n\n /**\n * @returns {?Long}\n */\n get stakedNodeId() {\n return this._stakedNodeId;\n }\n\n /**\n * @param {Long | number} stakedNodeId\n * @returns {this}\n */\n setStakedNodeId(stakedNodeId) {\n this._requireNotFrozen();\n this._stakedNodeId = Long.fromValue(stakedNodeId);\n\n return this;\n }\n\n /**\n * @returns {boolean}\n */\n get declineStakingRewards() {\n return this._declineStakingReward;\n }\n\n /**\n * @param {boolean} declineStakingReward\n * @returns {this}\n */\n setDeclineStakingReward(declineStakingReward) {\n this._requireNotFrozen();\n this._declineStakingReward = declineStakingReward;\n\n return this;\n }\n\n /**\n * The bytes to be used as the account's alias.\n *\n * The bytes must be formatted as the calcluated last 20 bytes of the\n * keccak-256 of the ECDSA primitive key.\n *\n * All other types of keys, including but not limited to ED25519, ThresholdKey, KeyList, ContractID, and\n * delegatable_contract_id, are not supported.\n *\n * At most only one account can ever have a given alias on the network.\n *\n * @returns {?EvmAddress}\n */\n get alias() {\n return this._alias;\n }\n\n /**\n * The bytes to be used as the account's alias.\n *\n * The bytes must be formatted as the calcluated last 20 bytes of the\n * keccak-256 of the ECDSA primitive key.\n *\n * All other types of keys, including but not limited to ED25519, ThresholdKey, KeyList, ContractID, and\n * delegatable_contract_id, are not supported.\n *\n * At most only one account can ever have a given alias on the network.\n *\n * @param {string | EvmAddress} alias\n * @returns {this}\n */\n setAlias(alias) {\n if (typeof alias === \"string\") {\n if (\n (alias.startsWith(\"0x\") && alias.length == 42) ||\n alias.length == 40\n ) {\n this._alias = EvmAddress.fromString(alias);\n } else {\n throw new Error(\n 'evmAddress must be a valid EVM address with or without \"0x\" prefix',\n );\n }\n } else {\n this._alias = alias;\n }\n\n return this;\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (this._proxyAccountId != null) {\n this._proxyAccountId.validateChecksum(client);\n }\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.crypto.createAccount(request);\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"cryptoCreateAccount\";\n }\n\n /**\n * @override\n * @protected\n * @returns {HashgraphProto.proto.ICryptoCreateTransactionBody}\n */\n _makeTransactionData() {\n let alias = null;\n if (this._alias != null) {\n alias = this._alias.toBytes();\n }\n\n return {\n key: this._key != null ? this._key._toProtobufKey() : null,\n initialBalance:\n this._initialBalance != null\n ? this._initialBalance.toTinybars()\n : null,\n autoRenewPeriod: this._autoRenewPeriod._toProtobuf(),\n proxyAccountID:\n this._proxyAccountId != null\n ? this._proxyAccountId._toProtobuf()\n : null,\n receiveRecordThreshold: this._receiveRecordThreshold.toTinybars(),\n sendRecordThreshold: this._sendRecordThreshold.toTinybars(),\n receiverSigRequired: this._receiverSignatureRequired,\n memo: this._accountMemo,\n maxAutomaticTokenAssociations:\n this._maxAutomaticTokenAssociations != null\n ? this._maxAutomaticTokenAssociations.toInt()\n : null,\n stakedAccountId:\n this.stakedAccountId != null\n ? this.stakedAccountId._toProtobuf()\n : null,\n stakedNodeId: this.stakedNodeId,\n declineReward: this.declineStakingRewards,\n alias,\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `AccountCreateTransaction:${timestamp.toString()}`;\n }\n}\n\nTRANSACTION_REGISTRY.set(\n \"cryptoCreateAccount\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n AccountCreateTransaction._fromProtobuf,\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport AccountId from \"./AccountId.js\";\nimport Transaction, {\n TRANSACTION_REGISTRY,\n} from \"../transaction/Transaction.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HashgraphProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HashgraphProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HashgraphProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} HashgraphProto.proto.ITransactionResponse\n * @typedef {import(\"@hashgraph/proto\").proto.ICryptoDeleteTransactionBody} HashgraphProto.proto.ICryptoDeleteTransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.IAccountID} HashgraphProto.proto.IAccountID\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n */\n\n/**\n * Marks an account as deleted, moving all its current hbars to another account.\n *\n * It will remain in the ledger, marked as deleted, until it expires.\n * Transfers into it a deleted account fail. But a deleted account can still have its\n * expiration extended in the normal way.\n */\nexport default class AccountDeleteTransaction extends Transaction {\n /**\n * @param {object} props\n * @param {AccountId} [props.accountId]\n * @param {AccountId} [props.transferAccountId]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {?AccountId}\n */\n this._accountId = null;\n\n /**\n * @private\n * @type {?AccountId}\n */\n this._transferAccountId = null;\n\n if (props.accountId != null) {\n this.setAccountId(props.accountId);\n }\n\n if (props.transferAccountId != null) {\n this.setTransferAccountId(props.transferAccountId);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransaction[]} transactions\n * @param {HashgraphProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HashgraphProto.proto.ITransactionBody[]} bodies\n * @returns {AccountDeleteTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const accountDelete =\n /** @type {HashgraphProto.proto.ICryptoDeleteTransactionBody} */ (\n body.cryptoDelete\n );\n\n return Transaction._fromProtobufTransactions(\n new AccountDeleteTransaction({\n accountId:\n accountDelete.deleteAccountID != null\n ? AccountId._fromProtobuf(\n /** @type {HashgraphProto.proto.IAccountID} */ (\n accountDelete.deleteAccountID\n ),\n )\n : undefined,\n transferAccountId:\n accountDelete.transferAccountID != null\n ? AccountId._fromProtobuf(\n /** @type {HashgraphProto.proto.IAccountID} */ (\n accountDelete.transferAccountID\n ),\n )\n : undefined,\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @returns {?AccountId}\n */\n get accountId() {\n return this._accountId;\n }\n\n /**\n * Set the account ID which is being deleted in this transaction.\n *\n * @param {AccountId | string} accountId\n * @returns {AccountDeleteTransaction}\n */\n setAccountId(accountId) {\n this._requireNotFrozen();\n this._accountId =\n typeof accountId === \"string\"\n ? AccountId.fromString(accountId)\n : accountId.clone();\n\n return this;\n }\n\n /**\n * @returns {?AccountId}\n */\n get transferAccountId() {\n return this._transferAccountId;\n }\n\n /**\n * Set the account ID which will receive all remaining hbars.\n *\n * @param {AccountId | string} transferAccountId\n * @returns {AccountDeleteTransaction}\n */\n setTransferAccountId(transferAccountId) {\n this._requireNotFrozen();\n this._transferAccountId =\n typeof transferAccountId === \"string\"\n ? AccountId.fromString(transferAccountId)\n : transferAccountId.clone();\n\n return this;\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (this._accountId != null) {\n this._accountId.validateChecksum(client);\n }\n\n if (this._transferAccountId != null) {\n this._transferAccountId.validateChecksum(client);\n }\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.crypto.cryptoDelete(request);\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"cryptoDelete\";\n }\n\n /**\n * @override\n * @protected\n * @returns {HashgraphProto.proto.ICryptoDeleteTransactionBody}\n */\n _makeTransactionData() {\n return {\n deleteAccountID:\n this._accountId != null ? this._accountId._toProtobuf() : null,\n transferAccountID:\n this._transferAccountId != null\n ? this._transferAccountId._toProtobuf()\n : null,\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `AccountDeleteTransaction:${timestamp.toString()}`;\n }\n}\n\nTRANSACTION_REGISTRY.set(\n \"cryptoDelete\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n AccountDeleteTransaction._fromProtobuf,\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport AccountId from \"./account/AccountId.js\";\nimport Hbar from \"./Hbar.js\";\nimport Timestamp from \"./Timestamp.js\";\nimport * as HashgraphProto from \"@hashgraph/proto\";\n\n/**\n * @typedef {import(\"long\")} Long\n */\n\n/**\n * @typedef {object} StakingInfoJson\n * @property {boolean} declineStakingReward\n * @property {?string} stakePeriodStart\n * @property {?string} pendingReward\n * @property {?string} stakedToMe\n * @property {?string} stakedAccountId\n * @property {?string} stakedNodeId\n */\n\n/**\n * Staking metadata for an account or a contract returned in CryptoGetInfo or ContractGetInfo queries\n */\nexport default class StakingInfo {\n /**\n * @private\n * @param {object} props\n * @param {boolean} props.declineStakingReward\n * @param {?Timestamp} props.stakePeriodStart\n * @param {?Hbar} props.pendingReward\n * @param {?Hbar} props.stakedToMe\n * @param {?AccountId} props.stakedAccountId\n * @param {?Long} props.stakedNodeId\n */\n constructor(props) {\n /**\n * If true, this account or contract declined to receive a staking reward.\n *\n * @readonly\n */\n this.declineStakingReward = props.declineStakingReward;\n\n /**\n * The staking period during which either the staking settings for this\n * account or contract changed (such as starting staking or changing\n * staked_node_id) or the most recent reward was earned, whichever is\n * later. If this account or contract is not currently staked to a\n * node, then this field is not set.\n *\n * @readonly\n */\n this.stakePeriodStart = props.stakePeriodStart;\n\n /**\n * The amount in tinybars that will be received in the next reward\n * situation.\n *\n * @readonly\n */\n this.pendingReward = props.pendingReward;\n\n /**\n * The total of balance of all accounts staked to this account or contract.\n *\n * @readonly\n */\n this.stakedToMe = props.stakedToMe;\n\n /**\n * The account to which this account or contract is staking.\n *\n * @readonly\n */\n this.stakedAccountId = props.stakedAccountId;\n\n /**\n * The ID of the node this account or contract is staked to.\n *\n * @readonly\n */\n this.stakedNodeId = props.stakedNodeId;\n\n Object.freeze(this);\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.IStakingInfo} info\n * @returns {StakingInfo}\n */\n static _fromProtobuf(info) {\n return new StakingInfo({\n declineStakingReward: info.declineReward == true,\n stakePeriodStart:\n info.stakePeriodStart != null\n ? Timestamp._fromProtobuf(info.stakePeriodStart)\n : null,\n pendingReward:\n info.pendingReward != null\n ? Hbar.fromTinybars(info.pendingReward)\n : null,\n stakedToMe:\n info.stakedToMe != null\n ? Hbar.fromTinybars(info.stakedToMe)\n : null,\n stakedAccountId:\n info.stakedAccountId != null\n ? AccountId._fromProtobuf(info.stakedAccountId)\n : null,\n stakedNodeId: info.stakedNodeId != null ? info.stakedNodeId : null,\n });\n }\n\n /**\n * @returns {HashgraphProto.proto.IStakingInfo}\n */\n _toProtobuf() {\n return {\n declineReward: this.declineStakingReward,\n stakePeriodStart:\n this.stakePeriodStart != null\n ? this.stakePeriodStart._toProtobuf()\n : null,\n pendingReward:\n this.pendingReward != null\n ? this.pendingReward.toTinybars()\n : null,\n stakedToMe:\n this.stakedToMe != null ? this.stakedToMe.toTinybars() : null,\n stakedAccountId:\n this.stakedAccountId != null\n ? this.stakedAccountId._toProtobuf()\n : null,\n stakedNodeId: this.stakedNodeId,\n };\n }\n\n /**\n * @param {Uint8Array} bytes\n * @returns {StakingInfo}\n */\n static fromBytes(bytes) {\n return StakingInfo._fromProtobuf(\n HashgraphProto.proto.StakingInfo.decode(bytes),\n );\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytes() {\n return HashgraphProto.proto.StakingInfo.encode(\n this._toProtobuf(),\n ).finish();\n }\n\n /**\n * @returns {string}\n */\n toString() {\n return JSON.stringify(this.toJSON());\n }\n\n /**\n * @returns {StakingInfoJson}\n */\n toJSON() {\n return {\n declineStakingReward: this.declineStakingReward,\n stakePeriodStart:\n this.stakePeriodStart != null\n ? this.stakePeriodStart.toString()\n : null,\n pendingReward:\n this.pendingReward != null\n ? this.pendingReward.toString()\n : null,\n stakedToMe:\n this.stakedToMe != null ? this.stakedToMe.toString() : null,\n stakedAccountId:\n this.stakedAccountId != null\n ? this.stakedAccountId.toString()\n : null,\n stakedNodeId:\n this.stakedNodeId != null ? this.stakedNodeId.toString() : null,\n };\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport AccountId from \"./AccountId.js\";\nimport Duration from \"../Duration.js\";\nimport KeyList from \"../KeyList.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.IAccountID} HashgraphProto.proto.IAccountID\n * @typedef {import(\"@hashgraph/proto\").proto.ILiveHash} HashgraphProto.proto.ILiveHash\n * @typedef {import(\"@hashgraph/proto\").proto.IDuration} HashgraphProto.proto.IDuration\n */\n\n/**\n * Response when the client sends the node CryptoGetInfoQuery.\n */\nexport default class LiveHash {\n /**\n * @private\n * @param {object} props\n * @param {AccountId} props.accountId\n * @param {Uint8Array} props.hash\n * @param {KeyList} props.keys\n * @param {Duration} props.duration\n */\n constructor(props) {\n /** @readonly */\n this.accountId = props.accountId;\n\n /** @readonly */\n this.hash = props.hash;\n\n /** @readonly */\n this.keys = props.keys;\n\n /** @readonly */\n this.duration = props.duration;\n\n Object.freeze(this);\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ILiveHash} liveHash\n * @returns {LiveHash}\n */\n static _fromProtobuf(liveHash) {\n const liveHash_ = /** @type {HashgraphProto.proto.ILiveHash} */ (\n liveHash\n );\n\n return new LiveHash({\n accountId: AccountId._fromProtobuf(\n /** @type {HashgraphProto.proto.IAccountID} */ (\n liveHash_.accountId\n ),\n ),\n hash: liveHash_.hash != null ? liveHash_.hash : new Uint8Array(),\n keys:\n liveHash_.keys != null\n ? KeyList.__fromProtobufKeyList(liveHash_.keys)\n : new KeyList(),\n duration: Duration._fromProtobuf(\n /** @type {HashgraphProto.proto.IDuration} */ (\n liveHash_.duration\n ),\n ),\n });\n }\n\n /**\n * @internal\n * @returns {HashgraphProto.proto.ILiveHash}\n */\n _toProtobuf() {\n return {\n accountId: this.accountId._toProtobuf(),\n hash: this.hash,\n keys: this.keys._toProtobufKey().keyList,\n duration: this.duration._toProtobuf(),\n };\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Long from \"long\";\nimport TokenId from \"../token/TokenId.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenRelationship} HashgraphProto.proto.ITokenRelationship\n * @typedef {import(\"@hashgraph/proto\").proto.TokenKycStatus} HashgraphProto.proto.TokenKycStatus\n * @typedef {import(\"@hashgraph/proto\").proto.TokenFreezeStatus} HashgraphProto.proto.TokenFreezeStatus\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenID} HashgraphProto.proto.ITokenID\n */\n\n/**\n * Token's information related to the given Account\n */\nexport default class TokenRelationship {\n /**\n * @param {object} props\n * @param {TokenId} props.tokenId\n * @param {string} props.symbol\n * @param {Long} props.balance\n * @param {boolean | null} props.isKycGranted\n * @param {boolean | null} props.isFrozen\n * @param {boolean | null} props.automaticAssociation\n */\n constructor(props) {\n /**\n * The ID of the token\n *\n * @readonly\n */\n this.tokenId = props.tokenId;\n\n /**\n * The Symbol of the token\n *\n * @readonly\n */\n this.symbol = props.symbol;\n\n /**\n * The balance that the Account holds in the smallest denomination\n *\n * @readonly\n */\n this.balance = props.balance;\n\n /**\n * The KYC status of the account (KycNotApplicable, Granted or Revoked). If the token does\n * not have KYC key, KycNotApplicable is returned\n *\n * @readonly\n */\n this.isKycGranted = props.isKycGranted;\n\n /**\n * The Freeze status of the account (FreezeNotApplicable, Frozen or Unfrozen). If the token\n * does not have Freeze key, FreezeNotApplicable is returned\n *\n * @readonly\n */\n this.isFrozen = props.isFrozen;\n\n /**\n * Specifies if the relationship is created implicitly. False : explicitly associated, True :\n * implicitly associated.\n *\n * @readonly\n */\n this.automaticAssociation = props.automaticAssociation;\n\n Object.freeze(this);\n }\n\n /**\n * @param {HashgraphProto.proto.ITokenRelationship} relationship\n * @returns {TokenRelationship}\n */\n static _fromProtobuf(relationship) {\n const tokenId = TokenId._fromProtobuf(\n /** @type {HashgraphProto.proto.ITokenID} */ (relationship.tokenId),\n );\n const isKycGranted =\n relationship.kycStatus == null || relationship.kycStatus === 0\n ? null\n : relationship.kycStatus === 1;\n const isFrozen =\n relationship.freezeStatus == null || relationship.freezeStatus === 0\n ? null\n : relationship.freezeStatus === 1;\n\n return new TokenRelationship({\n tokenId,\n symbol: /** @type {string} */ (relationship.symbol),\n balance:\n relationship.balance != null\n ? relationship.balance instanceof Long\n ? relationship.balance\n : Long.fromValue(relationship.balance)\n : Long.ZERO,\n isKycGranted,\n isFrozen,\n automaticAssociation:\n relationship.automaticAssociation != null\n ? relationship.automaticAssociation\n : null,\n });\n }\n\n /**\n * @returns {HashgraphProto.proto.ITokenRelationship}\n */\n _toProtobuf() {\n return {\n tokenId: this.tokenId._toProtobuf(),\n symbol: this.symbol,\n balance: this.balance,\n kycStatus:\n this.isKycGranted == null ? 0 : this.isKycGranted ? 1 : 2,\n freezeStatus: this.isFrozen == null ? 0 : this.isFrozen ? 1 : 2,\n automaticAssociation: this.automaticAssociation,\n };\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport TokenId from \"../token/TokenId.js\";\nimport TokenRelationship from \"./TokenRelationship.js\";\nimport ObjectMap from \"../ObjectMap.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenRelationship} HashgraphProto.proto.ITokenRelationship\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenID} HashgraphProto.proto.ITokenID\n */\n\n/**\n * @typedef {import(\"long\")} Long\n */\n\n/**\n * @augments {ObjectMap}\n */\nexport default class TokenRelationshipMap extends ObjectMap {\n constructor() {\n super((s) => TokenId.fromString(s));\n }\n\n /**\n * @param {HashgraphProto.proto.ITokenRelationship[]} relationships\n * @returns {TokenRelationshipMap}\n */\n static _fromProtobuf(relationships) {\n const tokenRelationships = new TokenRelationshipMap();\n\n for (const relationship of relationships) {\n const tokenId = TokenId._fromProtobuf(\n /** @type {HashgraphProto.proto.ITokenID} */ (\n relationship.tokenId\n ),\n );\n\n tokenRelationships._set(\n tokenId,\n TokenRelationship._fromProtobuf(relationship),\n );\n }\n\n return tokenRelationships;\n }\n\n /**\n * @returns {HashgraphProto.proto.ITokenRelationship[]}\n */\n _toProtobuf() {\n const list = [];\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n for (const [_, relationship] of this) {\n list.push(relationship._toProtobuf());\n }\n\n return list;\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport * as hex from \"./encoding/hex.js\";\n\n/**\n * Represents the ID of a network.\n */\nexport default class LedgerId {\n /**\n * @hideconstructor\n * @internal\n * @param {Uint8Array} ledgerId\n */\n constructor(ledgerId) {\n /**\n * @readonly\n * @type {Uint8Array}\n */\n this._ledgerId = ledgerId;\n\n Object.freeze(this);\n }\n\n /**\n * @param {string} ledgerId\n * @returns {LedgerId}\n */\n static fromString(ledgerId) {\n switch (ledgerId) {\n case NETNAMES[0]:\n case \"0\":\n return LedgerId.MAINNET;\n case NETNAMES[1]:\n case \"1\":\n return LedgerId.TESTNET;\n case NETNAMES[2]:\n case \"2\":\n return LedgerId.PREVIEWNET;\n case NETNAMES[3]:\n case \"3\":\n return LedgerId.LOCAL_NODE;\n default: {\n let ledgerIdDecoded = hex.decode(ledgerId);\n if (ledgerIdDecoded.length == 0 && ledgerId.length != 0) {\n throw new Error(\"Default reached for fromString\");\n } else {\n return new LedgerId(ledgerIdDecoded);\n }\n }\n }\n }\n\n /**\n * If the ledger ID is a known value such as `[0]`, `[1]`, `[2]` this method\n * will instead return \"mainnet\", \"testnet\", or \"previewnet\", otherwise it will\n * hex encode the bytes.\n *\n * @returns {string}\n */\n toString() {\n if (this._ledgerId.length == 1) {\n switch (this._ledgerId[0]) {\n case 0:\n return NETNAMES[0];\n case 1:\n return NETNAMES[1];\n case 2:\n return NETNAMES[2];\n case 3:\n return NETNAMES[3];\n default:\n return hex.encode(this._ledgerId);\n }\n } else {\n return hex.encode(this._ledgerId);\n }\n }\n\n /**\n * Using the UTF-8 byte representation of \"mainnet\", \"testnet\",\n * or \"previewnet\" is NOT supported.\n *\n * @param {Uint8Array} bytes\n * @returns {LedgerId}\n */\n static fromBytes(bytes) {\n return new LedgerId(bytes);\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytes() {\n return this._ledgerId;\n }\n\n /**\n * @returns {boolean}\n */\n isMainnet() {\n return this.toString() == NETNAMES[0];\n }\n\n /**\n * @returns {boolean}\n */\n isTestnet() {\n return this.toString() == NETNAMES[1];\n }\n\n /**\n * @returns {boolean}\n */\n isPreviewnet() {\n return this.toString() == NETNAMES[2];\n }\n\n /**\n * @returns {boolean}\n */\n isLocalNode() {\n return this.toString() == NETNAMES[3];\n }\n}\n\nconst NETNAMES = [\"mainnet\", \"testnet\", \"previewnet\", \"local-node\"];\n\nLedgerId.MAINNET = new LedgerId(new Uint8Array([0]));\n\nLedgerId.TESTNET = new LedgerId(new Uint8Array([1]));\n\nLedgerId.PREVIEWNET = new LedgerId(new Uint8Array([2]));\n\nLedgerId.LOCAL_NODE = new LedgerId(new Uint8Array([3]));\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport AccountId from \"./AccountId.js\";\nimport StakingInfo from \"../StakingInfo.js\";\nimport LiveHash from \"./LiveHash.js\";\nimport Hbar from \"../Hbar.js\";\nimport Timestamp from \"../Timestamp.js\";\nimport Long from \"long\";\nimport TokenRelationshipMap from \"./TokenRelationshipMap.js\";\nimport * as HashgraphProto from \"@hashgraph/proto\";\nimport Duration from \"../Duration.js\";\nimport Key from \"../Key.js\";\nimport PublicKey from \"../PublicKey.js\";\nimport LedgerId from \"../LedgerId.js\";\n\n/**\n * @typedef {import(\"./HbarAllowance.js\").default} HbarAllowance\n * @typedef {import(\"./TokenAllowance.js\").default} TokenAllowance\n * @typedef {import(\"./TokenNftAllowance.js\").default} TokenNftAllowance\n * @typedef {import(\"../StakingInfo.js\").StakingInfoJson} StakingInfoJson\n */\n\n/**\n * @typedef {object} AccountInfoJson\n * @property {string} accountId\n * @property {?string} contractAccountId\n * @property {boolean} isDeleted\n * @property {?string} proxyAccountId\n * @property {string} proxyReceived\n * @property {?string} key\n * @property {string} balance\n * @property {string} sendRecordThreshold\n * @property {string} receiveRecordThreshold\n * @property {boolean} isReceiverSignatureRequired\n * @property {string} expirationTime\n * @property {string} autoRenewPeriod\n * @property {string} accountMemo\n * @property {string} ownedNfts\n * @property {string} maxAutomaticTokenAssociations\n * @property {?string} aliasKey\n * @property {?string} ledgerId\n * @property {?string} ethereumNonce\n * @property {?StakingInfoJson} stakingInfo\n */\n\n/**\n * Current information about an account, including the balance.\n */\nexport default class AccountInfo {\n /**\n * @private\n * @param {object} props\n * @param {AccountId} props.accountId\n * @param {?string} props.contractAccountId\n * @param {boolean} props.isDeleted\n * @param {?AccountId} props.proxyAccountId\n * @param {Hbar} props.proxyReceived\n * @param {Key} props.key\n * @param {Hbar} props.balance\n * @param {Hbar} props.sendRecordThreshold\n * @param {Hbar} props.receiveRecordThreshold\n * @param {boolean} props.isReceiverSignatureRequired\n * @param {Timestamp} props.expirationTime\n * @param {Duration} props.autoRenewPeriod\n * @param {LiveHash[]} props.liveHashes\n * @param {TokenRelationshipMap} props.tokenRelationships\n * @param {string} props.accountMemo\n * @param {Long} props.ownedNfts\n * @param {Long} props.maxAutomaticTokenAssociations\n * @param {PublicKey | null} props.aliasKey\n * @param {LedgerId | null} props.ledgerId\n * @param {HbarAllowance[]} props.hbarAllowances\n * @param {TokenAllowance[]} props.tokenAllowances\n * @param {TokenNftAllowance[]} props.nftAllowances\n * @param {?Long} props.ethereumNonce\n * @param {?StakingInfo} props.stakingInfo\n */\n constructor(props) {\n /**\n * The account ID for which this information applies.\n *\n * @readonly\n */\n this.accountId = props.accountId;\n\n /**\n * The Contract Account ID comprising of both the contract instance and the cryptocurrency\n * account owned by the contract instance, in the format used by Solidity.\n *\n * @readonly\n */\n this.contractAccountId = props.contractAccountId;\n\n /**\n * If true, then this account has been deleted, it will disappear when it expires, and\n * all transactions for it will fail except the transaction to extend its expiration date.\n *\n * @readonly\n */\n this.isDeleted = props.isDeleted;\n\n /**\n * @deprecated\n *\n * The Account ID of the account to which this is proxy staked. If proxyAccountID is null,\n * or is an invalid account, or is an account that isn't a node, then this account is\n * automatically proxy staked to a node chosen by the network, but without earning payments.\n * If the proxyAccountID account refuses to accept proxy staking , or if it is not currently\n * running a node, then it will behave as if proxyAccountID was null.\n * @readonly\n */\n // eslint-disable-next-line deprecation/deprecation\n this.proxyAccountId = props.proxyAccountId;\n\n /**\n * The total number of tinybars proxy staked to this account.\n *\n * @readonly\n */\n this.proxyReceived = props.proxyReceived;\n\n /**\n * The key for the account, which must sign in order to transfer out, or to modify the account\n * in any way other than extending its expiration date.\n *\n * @readonly\n */\n this.key = props.key;\n\n /**\n * The current balance of account.\n *\n * @readonly\n */\n this.balance = props.balance;\n\n /**\n * The threshold amount (in tinybars) for which an account record is created (and this account\n * charged for them) for any send/withdraw transaction.\n *\n * @readonly\n */\n this.sendRecordThreshold = props.sendRecordThreshold;\n\n /**\n * The threshold amount (in tinybars) for which an account record is created\n * (and this account charged for them) for any transaction above this amount.\n *\n * @readonly\n */\n this.receiveRecordThreshold = props.receiveRecordThreshold;\n\n /**\n * If true, no transaction can transfer to this account unless signed by this account's key.\n *\n * @readonly\n */\n this.isReceiverSignatureRequired = props.isReceiverSignatureRequired;\n\n /**\n * The TimeStamp time at which this account is set to expire.\n *\n * @readonly\n */\n this.expirationTime = props.expirationTime;\n\n /**\n * The duration for expiration time will extend every this many seconds. If there are\n * insufficient funds, then it extends as long as possible. If it is empty when it\n * expires, then it is deleted.\n *\n * @readonly\n */\n this.autoRenewPeriod = props.autoRenewPeriod;\n\n /** @readonly */\n this.liveHashes = props.liveHashes;\n\n /** @readonly */\n this.tokenRelationships = props.tokenRelationships;\n\n /** @readonly */\n this.accountMemo = props.accountMemo;\n\n /** @readonly */\n this.ownedNfts = props.ownedNfts;\n\n /** @readonly */\n this.maxAutomaticTokenAssociations =\n props.maxAutomaticTokenAssociations;\n\n this.aliasKey = props.aliasKey;\n\n this.ledgerId = props.ledgerId;\n /*\n * @deprecated - no longer supported\n */\n this.hbarAllowances = props.hbarAllowances;\n /*\n * @deprecated - no longer supported\n */\n this.tokenAllowances = props.tokenAllowances;\n /*\n * @deprecated - no longer supported\n */\n this.nftAllowances = props.nftAllowances;\n\n /**\n * The ethereum transaction nonce associated with this account.\n */\n this.ethereumNonce = props.ethereumNonce;\n\n /**\n * Staking metadata for this account.\n */\n this.stakingInfo = props.stakingInfo;\n\n Object.freeze(this);\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.CryptoGetInfoResponse.IAccountInfo} info\n * @returns {AccountInfo}\n */\n static _fromProtobuf(info) {\n let aliasKey =\n info.alias != null && info.alias.length > 0\n ? Key._fromProtobufKey(\n HashgraphProto.proto.Key.decode(info.alias),\n )\n : null;\n\n if (!(aliasKey instanceof PublicKey)) {\n aliasKey = null;\n }\n\n const accountId = AccountId._fromProtobuf(\n /** @type {HashgraphProto.proto.IAccountID} */ (info.accountID),\n );\n\n return new AccountInfo({\n accountId,\n contractAccountId:\n info.contractAccountID != null ? info.contractAccountID : null,\n isDeleted: info.deleted != null ? info.deleted : false,\n key: Key._fromProtobufKey(\n /** @type {HashgraphProto.proto.IKey} */ (info.key),\n ),\n balance: Hbar.fromTinybars(info.balance != null ? info.balance : 0),\n sendRecordThreshold: Hbar.fromTinybars(\n info.generateSendRecordThreshold != null\n ? info.generateSendRecordThreshold\n : 0,\n ),\n receiveRecordThreshold: Hbar.fromTinybars(\n info.generateReceiveRecordThreshold != null\n ? info.generateReceiveRecordThreshold\n : 0,\n ),\n isReceiverSignatureRequired:\n info.receiverSigRequired != null\n ? info.receiverSigRequired\n : false,\n expirationTime: Timestamp._fromProtobuf(\n /** @type {HashgraphProto.proto.ITimestamp} */ (\n info.expirationTime\n ),\n ),\n autoRenewPeriod:\n info.autoRenewPeriod != null\n ? new Duration(\n /** @type {Long} */ (info.autoRenewPeriod.seconds),\n )\n : new Duration(0),\n proxyAccountId:\n info.proxyAccountID != null &&\n Long.fromValue(\n /** @type {Long | number} */ (info.proxyAccountID.shardNum),\n ).toInt() !== 0 &&\n Long.fromValue(\n /** @type {Long | number} */ (info.proxyAccountID.realmNum),\n ).toInt() !== 0 &&\n Long.fromValue(\n /** @type {Long | number} */ (\n info.proxyAccountID.accountNum\n ),\n ).toInt() !== 0\n ? AccountId._fromProtobuf(info.proxyAccountID)\n : null,\n proxyReceived: Hbar.fromTinybars(\n info.proxyReceived != null ? info.proxyReceived : 0,\n ),\n liveHashes: (info.liveHashes != null ? info.liveHashes : []).map(\n (hash) => LiveHash._fromProtobuf(hash),\n ),\n tokenRelationships: TokenRelationshipMap._fromProtobuf(\n info.tokenRelationships != null ? info.tokenRelationships : [],\n ),\n accountMemo: info.memo != null ? info.memo : \"\",\n ownedNfts: info.ownedNfts ? info.ownedNfts : Long.ZERO,\n maxAutomaticTokenAssociations: info.maxAutomaticTokenAssociations\n ? Long.fromNumber(info.maxAutomaticTokenAssociations)\n : Long.ZERO,\n aliasKey,\n ledgerId:\n info.ledgerId != null\n ? LedgerId.fromBytes(info.ledgerId)\n : null,\n hbarAllowances: [],\n tokenAllowances: [],\n nftAllowances: [],\n ethereumNonce:\n info.ethereumNonce != null ? info.ethereumNonce : null,\n stakingInfo:\n info.stakingInfo != null\n ? StakingInfo._fromProtobuf(info.stakingInfo)\n : null,\n });\n }\n\n /**\n * @returns {HashgraphProto.proto.CryptoGetInfoResponse.IAccountInfo}\n */\n _toProtobuf() {\n return {\n accountID: this.accountId._toProtobuf(),\n contractAccountID: this.contractAccountId,\n deleted: this.isDeleted,\n proxyAccountID:\n // eslint-disable-next-line deprecation/deprecation\n this.proxyAccountId != null\n ? // eslint-disable-next-line deprecation/deprecation\n this.proxyAccountId._toProtobuf()\n : null,\n proxyReceived: this.proxyReceived.toTinybars(),\n key: this.key._toProtobufKey(),\n balance: this.balance.toTinybars(),\n generateSendRecordThreshold: this.sendRecordThreshold.toTinybars(),\n generateReceiveRecordThreshold:\n this.receiveRecordThreshold.toTinybars(),\n receiverSigRequired: this.isReceiverSignatureRequired,\n expirationTime: this.expirationTime._toProtobuf(),\n autoRenewPeriod: this.autoRenewPeriod._toProtobuf(),\n liveHashes: this.liveHashes.map((hash) => hash._toProtobuf()),\n tokenRelationships:\n this.tokenRelationships != null\n ? this.tokenRelationships._toProtobuf()\n : null,\n memo: this.accountMemo,\n ownedNfts: this.ownedNfts,\n maxAutomaticTokenAssociations:\n this.maxAutomaticTokenAssociations.toInt(),\n alias:\n this.aliasKey != null\n ? HashgraphProto.proto.Key.encode(\n this.aliasKey._toProtobufKey(),\n ).finish()\n : null,\n ledgerId: this.ledgerId != null ? this.ledgerId.toBytes() : null,\n ethereumNonce: this.ethereumNonce,\n stakingInfo:\n this.stakingInfo != null\n ? this.stakingInfo._toProtobuf()\n : null,\n };\n }\n\n /**\n * @param {Uint8Array} bytes\n * @returns {AccountInfo}\n */\n static fromBytes(bytes) {\n return AccountInfo._fromProtobuf(\n HashgraphProto.proto.CryptoGetInfoResponse.AccountInfo.decode(\n bytes,\n ),\n );\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytes() {\n return HashgraphProto.proto.CryptoGetInfoResponse.AccountInfo.encode(\n this._toProtobuf(),\n ).finish();\n }\n\n /**\n * @returns {string}\n */\n toString() {\n return JSON.stringify(this.toJSON());\n }\n\n /**\n * @returns {AccountInfoJson}\n */\n toJSON() {\n return {\n balance: this.balance.toString(),\n accountId: this.accountId.toString(),\n contractAccountId: this.contractAccountId,\n isDeleted: this.isDeleted,\n proxyAccountId:\n // eslint-disable-next-line deprecation/deprecation\n this.proxyAccountId != null\n ? // eslint-disable-next-line deprecation/deprecation\n this.proxyAccountId.toString()\n : null,\n proxyReceived: this.proxyReceived.toString(),\n key: this.key != null ? this.key.toString() : null,\n sendRecordThreshold: this.sendRecordThreshold.toString(),\n receiveRecordThreshold: this.receiveRecordThreshold.toString(),\n isReceiverSignatureRequired: this.isReceiverSignatureRequired,\n expirationTime: this.expirationTime.toString(),\n autoRenewPeriod: this.autoRenewPeriod.toString(),\n accountMemo: this.accountMemo,\n ownedNfts: this.ownedNfts.toString(),\n maxAutomaticTokenAssociations:\n this.maxAutomaticTokenAssociations.toString(),\n aliasKey: this.aliasKey != null ? this.aliasKey.toString() : null,\n ledgerId: this.ledgerId != null ? this.ledgerId.toString() : null,\n ethereumNonce:\n this.ethereumNonce != null\n ? this.ethereumNonce.toString()\n : null,\n stakingInfo:\n this.stakingInfo != null ? this.stakingInfo.toJSON() : null,\n };\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Query, { QUERY_REGISTRY } from \"../query/Query.js\";\nimport AccountId from \"./AccountId.js\";\nimport AccountInfo from \"./AccountInfo.js\";\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport Hbar from \"../Hbar.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.IQuery} HashgraphProto.proto.IQuery\n * @typedef {import(\"@hashgraph/proto\").proto.IQueryHeader} HashgraphProto.proto.IQueryHeader\n * @typedef {import(\"@hashgraph/proto\").proto.IResponse} HashgraphProto.proto.IResponse\n * @typedef {import(\"@hashgraph/proto\").proto.IResponseHeader} HashgraphProto.proto.IResponseHeader\n * @typedef {import(\"@hashgraph/proto\").proto.CryptoGetInfoResponse.IAccountInfo} HashgraphProto.proto.CryptoGetInfoResponse.IAccountInfo\n * @typedef {import(\"@hashgraph/proto\").proto.ICryptoGetInfoQuery} HashgraphProto.proto.ICryptoGetInfoQuery\n * @typedef {import(\"@hashgraph/proto\").proto.ICryptoGetInfoResponse} HashgraphProto.proto.ICryptoGetInfoResponse\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n */\n\n/**\n * @augments {Query}\n */\nexport default class AccountInfoQuery extends Query {\n /**\n * @param {object} props\n * @param {AccountId | string} [props.accountId]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {?AccountId}\n */\n this._accountId = null;\n if (props.accountId != null) {\n this.setAccountId(props.accountId);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.IQuery} query\n * @returns {AccountInfoQuery}\n */\n static _fromProtobuf(query) {\n const info = /** @type {HashgraphProto.proto.ICryptoGetInfoQuery} */ (\n query.cryptoGetInfo\n );\n\n return new AccountInfoQuery({\n accountId:\n info.accountID != null\n ? AccountId._fromProtobuf(info.accountID)\n : undefined,\n });\n }\n\n /**\n * @returns {?AccountId}\n */\n get accountId() {\n return this._accountId;\n }\n\n /**\n * Set the account ID for which the info is being requested.\n *\n * @param {AccountId | string} accountId\n * @returns {AccountInfoQuery}\n */\n setAccountId(accountId) {\n this._accountId =\n typeof accountId === \"string\"\n ? AccountId.fromString(accountId)\n : accountId.clone();\n\n return this;\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (this._accountId != null) {\n this._accountId.validateChecksum(client);\n }\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.IQuery} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.crypto.getAccountInfo(request);\n }\n\n /**\n * @override\n * @param {import(\"../client/Client.js\").default} client\n * @returns {Promise}\n */\n async getCost(client) {\n return super.getCost(client);\n }\n\n /**\n * @override\n * @internal\n * @param {HashgraphProto.proto.IResponse} response\n * @returns {HashgraphProto.proto.IResponseHeader}\n */\n _mapResponseHeader(response) {\n const cryptoGetInfo =\n /** @type {HashgraphProto.proto.ICryptoGetInfoResponse} */ (\n response.cryptoGetInfo\n );\n return /** @type {HashgraphProto.proto.IResponseHeader} */ (\n cryptoGetInfo.header\n );\n }\n\n /**\n * @override\n * @internal\n * @param {HashgraphProto.proto.IResponse} response\n * @param {AccountId} nodeAccountId\n * @param {HashgraphProto.proto.IQuery} request\n * @returns {Promise}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _mapResponse(response, nodeAccountId, request) {\n const info =\n /** @type {HashgraphProto.proto.ICryptoGetInfoResponse} */ (\n response.cryptoGetInfo\n );\n\n return Promise.resolve(\n AccountInfo._fromProtobuf(\n /** @type {HashgraphProto.proto.CryptoGetInfoResponse.IAccountInfo} */ (\n info.accountInfo\n ),\n ),\n );\n }\n\n /**\n * @override\n * @internal\n * @param {HashgraphProto.proto.IQueryHeader} header\n * @returns {HashgraphProto.proto.IQuery}\n */\n _onMakeRequest(header) {\n return {\n cryptoGetInfo: {\n header,\n accountID:\n this._accountId != null\n ? this._accountId._toProtobuf()\n : null,\n },\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp =\n this._paymentTransactionId != null &&\n this._paymentTransactionId.validStart != null\n ? this._paymentTransactionId.validStart\n : this._timestamp;\n return `AccountInfoQuery:${timestamp.toString()}`;\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/unbound-method\nQUERY_REGISTRY.set(\"cryptoGetInfo\", AccountInfoQuery._fromProtobuf);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport AccountInfoQuery from \"./AccountInfoQuery.js\";\nimport KeyList from \"../KeyList.js\";\n\n/**\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../transaction/Transaction.js\").default} Transaction\n * @typedef {import(\"../PublicKey.js\").default} PublicKey\n * @typedef {import(\"./AccountId.js\").default} AccountId\n * @typedef {import(\"../Signer.js\").Signer} Signer\n */\n\nexport default class AccountInfoFlow {\n /**\n * @param {Client} client\n * @param {AccountId | string} accountId\n * @param {Uint8Array} message\n * @param {Uint8Array} signature\n * @returns {Promise}\n */\n static async verifySignature(client, accountId, message, signature) {\n const info = await new AccountInfoQuery()\n .setAccountId(accountId)\n .execute(client);\n\n if (info.key instanceof KeyList) {\n return false;\n }\n\n return /** @type {PublicKey} */ (info.key).verify(message, signature);\n }\n\n /**\n * @param {Client} client\n * @param {AccountId | string} accountId\n * @param {Transaction} transaction\n * @returns {Promise}\n */\n static async verifyTransaction(client, accountId, transaction) {\n const info = await new AccountInfoQuery()\n .setAccountId(accountId)\n .execute(client);\n\n if (info.key instanceof KeyList) {\n return false;\n }\n\n return /** @type {PublicKey} */ (info.key).verifyTransaction(\n transaction,\n );\n }\n\n /**\n * @param {Signer} signer\n * @param {AccountId | string} accountId\n * @param {Uint8Array} message\n * @param {Uint8Array} signature\n * @returns {Promise}\n */\n static async verifySignatureWithSigner(\n signer,\n accountId,\n message,\n signature,\n ) {\n const info = await new AccountInfoQuery()\n .setAccountId(accountId)\n .executeWithSigner(signer);\n\n if (info.key instanceof KeyList) {\n return false;\n }\n\n return /** @type {PublicKey} */ (info.key).verify(message, signature);\n }\n\n /**\n * @param {Signer} signer\n * @param {AccountId | string} accountId\n * @param {Transaction} transaction\n * @returns {Promise}\n */\n static async verifyTransactionWithSigner(signer, accountId, transaction) {\n const info = await new AccountInfoQuery()\n .setAccountId(accountId)\n .executeWithSigner(signer);\n\n if (info.key instanceof KeyList) {\n return false;\n }\n\n return /** @type {PublicKey} */ (info.key).verifyTransaction(\n transaction,\n );\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Query, { QUERY_REGISTRY } from \"../query/Query.js\";\nimport AccountId from \"./AccountId.js\";\nimport TransactionRecord from \"../transaction/TransactionRecord.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.IQuery} HashgraphProto.proto.IQuery\n * @typedef {import(\"@hashgraph/proto\").proto.IQueryHeader} HashgraphProto.proto.IQueryHeader\n * @typedef {import(\"@hashgraph/proto\").proto.IResponse} HashgraphProto.proto.IResponse\n * @typedef {import(\"@hashgraph/proto\").proto.IResponseHeader} HashgraphProto.proto.IResponseHeader\n * @typedef {import(\"@hashgraph/proto\").proto.ICryptoGetAccountRecordsQuery} HashgraphProto.proto.ICryptoGetAccountRecordsQuery\n * @typedef {import(\"@hashgraph/proto\").proto.ICryptoGetAccountRecordsResponse} HashgraphProto.proto.ICryptoGetAccountRecordsResponse\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionRecord} HashgraphProto.proto.ITransactionRecord\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n */\n\n/**\n * Get all the records for an account for any transfers into it and out of it,\n * that were above the threshold, during the last 25 hours.\n *\n * @augments {Query}\n */\nexport default class AccountRecordsQuery extends Query {\n /**\n * @param {object} [props]\n * @param {AccountId | string} [props.accountId]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @type {?AccountId}\n * @private\n */\n this._accountId = null;\n\n if (props.accountId != null) {\n this.setAccountId(props.accountId);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.IQuery} query\n * @returns {AccountRecordsQuery}\n */\n static _fromProtobuf(query) {\n const records =\n /** @type {HashgraphProto.proto.ICryptoGetAccountRecordsQuery} */ (\n query.cryptoGetAccountRecords\n );\n\n return new AccountRecordsQuery({\n accountId:\n records.accountID != null\n ? AccountId._fromProtobuf(records.accountID)\n : undefined,\n });\n }\n\n /**\n * @returns {?AccountId}\n */\n get accountId() {\n return this._accountId;\n }\n\n /**\n * Set the account ID for which the records are being requested.\n *\n * @param {AccountId | string} accountId\n * @returns {this}\n */\n setAccountId(accountId) {\n this._accountId =\n typeof accountId === \"string\"\n ? AccountId.fromString(accountId)\n : accountId.clone();\n\n return this;\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (this._accountId != null) {\n this._accountId.validateChecksum(client);\n }\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.IQuery} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.crypto.getAccountRecords(request);\n }\n\n /**\n * @override\n * @internal\n * @param {HashgraphProto.proto.IResponse} response\n * @returns {HashgraphProto.proto.IResponseHeader}\n */\n _mapResponseHeader(response) {\n const cryptoGetAccountRecords =\n /** @type {HashgraphProto.proto.ICryptoGetAccountRecordsResponse} */ (\n response.cryptoGetAccountRecords\n );\n return /** @type {HashgraphProto.proto.IResponseHeader} */ (\n cryptoGetAccountRecords.header\n );\n }\n\n /**\n * @protected\n * @override\n * @param {HashgraphProto.proto.IResponse} response\n * @param {AccountId} nodeAccountId\n * @param {HashgraphProto.proto.IQuery} request\n * @returns {Promise}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _mapResponse(response, nodeAccountId, request) {\n const cryptoGetAccountRecords =\n /** @type {HashgraphProto.proto.ICryptoGetAccountRecordsResponse} */ (\n response.cryptoGetAccountRecords\n );\n const records =\n /** @type {HashgraphProto.proto.ITransactionRecord[]} */ (\n cryptoGetAccountRecords.records\n );\n\n return Promise.resolve(\n records.map((record) =>\n TransactionRecord._fromProtobuf({ transactionRecord: record }),\n ),\n );\n }\n\n /**\n * @override\n * @internal\n * @param {HashgraphProto.proto.IQueryHeader} header\n * @returns {HashgraphProto.proto.IQuery}\n */\n _onMakeRequest(header) {\n return {\n cryptoGetAccountRecords: {\n header,\n accountID:\n this._accountId != null\n ? this._accountId._toProtobuf()\n : null,\n },\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp =\n this._paymentTransactionId != null &&\n this._paymentTransactionId.validStart != null\n ? this._paymentTransactionId.validStart\n : this._timestamp;\n\n return `AccountRecordsQuery:${timestamp.toString()}`;\n }\n}\n\nQUERY_REGISTRY.set(\n \"cryptoGetAccountRecords\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n AccountRecordsQuery._fromProtobuf,\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport AccountId from \"./AccountId.js\";\nimport Hbar from \"../Hbar.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.IProxyStaker} HashgraphProto.proto.IProxyStaker\n * @typedef {import(\"@hashgraph/proto\").proto.IAccountID} HashgraphProto.proto.IAccountID\n */\n\n/**\n * @typedef {import(\"bignumber.js\").default} BigNumber\n */\n\n/**\n * An account, and the amount that it sends or receives during a cryptocurrency transfer.\n */\nexport default class ProxyStaker {\n /**\n * @private\n * @param {object} props\n * @param {AccountId} props.accountId\n * @param {number | string | Long | BigNumber | Hbar} props.amount\n */\n constructor(props) {\n /**\n * The Account ID that sends or receives cryptocurrency.\n *\n * @readonly\n */\n this.accountId = props.accountId;\n\n /**\n * The amount of tinybars that the account sends(negative)\n * or receives(positive).\n *\n * @readonly\n */\n this.amount =\n props.amount instanceof Hbar\n ? props.amount\n : new Hbar(props.amount);\n\n Object.freeze(this);\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.IProxyStaker} transfer\n * @returns {ProxyStaker}\n */\n static _fromProtobuf(transfer) {\n return new ProxyStaker({\n accountId: AccountId._fromProtobuf(\n /** @type {HashgraphProto.proto.IAccountID} */ (\n transfer.accountID\n ),\n ),\n amount: Hbar.fromTinybars(\n transfer.amount != null ? transfer.amount : 0,\n ),\n });\n }\n\n /**\n * @internal\n * @returns {HashgraphProto.proto.IProxyStaker}\n */\n _toProtobuf() {\n return {\n accountID: this.accountId._toProtobuf(),\n amount: this.amount.toTinybars(),\n };\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Query, { QUERY_REGISTRY } from \"../query/Query.js\";\nimport AccountId from \"./AccountId.js\";\nimport ProxyStaker from \"./ProxyStaker.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.IQuery} HashgraphProto.proto.IQuery\n * @typedef {import(\"@hashgraph/proto\").proto.IQueryHeader} HashgraphProto.proto.IQueryHeader\n * @typedef {import(\"@hashgraph/proto\").proto.IResponse} HashgraphProto.proto.IResponse\n * @typedef {import(\"@hashgraph/proto\").proto.IResponseHeader} HashgraphProto.proto.IResponseHeader\n * @typedef {import(\"@hashgraph/proto\").proto.ICryptoGetStakersQuery} HashgraphProto.proto.ICryptoGetStakersQuery\n * @typedef {import(\"@hashgraph/proto\").proto.ICryptoGetStakersResponse} HashgraphProto.proto.ICryptoGetStakersResponse\n * @typedef {import(\"@hashgraph/proto\").proto.IAllProxyStakers} HashgraphProto.proto.IAllProxyStakers\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n */\n\n/**\n * Get all the accounts that are proxy staking to this account.\n * For each of them, give the amount currently staked.\n *\n * This is not yet implemented, but will be in a future version of the API.\n *\n * @augments {Query}\n */\nexport default class AccountStakersQuery extends Query {\n /**\n * @param {object} [props]\n * @param {(AccountId | string)=} props.accountId\n */\n constructor(props = {}) {\n super();\n\n /**\n * @type {?AccountId}\n * @private\n */\n this._accountId = null;\n\n if (props.accountId != null) {\n this.setAccountId(props.accountId);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.IQuery} query\n * @returns {AccountStakersQuery}\n */\n static _fromProtobuf(query) {\n const stakers =\n /** @type {HashgraphProto.proto.ICryptoGetStakersQuery} */ (\n query.cryptoGetProxyStakers\n );\n\n return new AccountStakersQuery({\n accountId:\n stakers.accountID != null\n ? AccountId._fromProtobuf(stakers.accountID)\n : undefined,\n });\n }\n\n /**\n * @returns {?AccountId}\n */\n get accountId() {\n return this._accountId;\n }\n\n /**\n * Set the account ID for which the stakers are being requested.\n *\n * @param {AccountId | string} accountId\n * @returns {this}\n */\n setAccountId(accountId) {\n this._accountId =\n typeof accountId === \"string\"\n ? AccountId.fromString(accountId)\n : accountId.clone();\n\n return this;\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (this._accountId != null) {\n this._accountId.validateChecksum(client);\n }\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.IQuery} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.crypto.getStakersByAccountID(request);\n }\n\n /**\n * @override\n * @internal\n * @param {HashgraphProto.proto.IResponse} response\n * @returns {HashgraphProto.proto.IResponseHeader}\n */\n _mapResponseHeader(response) {\n const cryptoGetProxyStakers =\n /** @type {HashgraphProto.proto.ICryptoGetStakersResponse} */ (\n response.cryptoGetProxyStakers\n );\n return /** @type {HashgraphProto.proto.IResponseHeader} */ (\n cryptoGetProxyStakers.header\n );\n }\n\n /**\n * @protected\n * @override\n * @param {HashgraphProto.proto.IResponse} response\n * @returns {Promise}\n */\n _mapResponse(response) {\n const cryptoGetProxyStakers =\n /** @type {HashgraphProto.proto.ICryptoGetStakersResponse} */ (\n response.cryptoGetProxyStakers\n );\n const stakers = /** @type {HashgraphProto.proto.IAllProxyStakers} */ (\n cryptoGetProxyStakers.stakers\n );\n\n return Promise.resolve(\n (stakers.proxyStaker != null ? stakers.proxyStaker : []).map(\n (staker) => ProxyStaker._fromProtobuf(staker),\n ),\n );\n }\n\n /**\n * @override\n * @internal\n * @param {HashgraphProto.proto.IQueryHeader} header\n * @returns {HashgraphProto.proto.IQuery}\n */\n _onMakeRequest(header) {\n return {\n cryptoGetProxyStakers: {\n header,\n accountID:\n this._accountId != null\n ? this._accountId._toProtobuf()\n : null,\n },\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp =\n this._paymentTransactionId != null &&\n this._paymentTransactionId.validStart != null\n ? this._paymentTransactionId.validStart\n : this._timestamp;\n\n return `AccountStakersQuery:${timestamp.toString()}`;\n }\n}\n\n// @ts-ignore\n// eslint-disable-next-line @typescript-eslint/unbound-method\nQUERY_REGISTRY.set(\"cryptoGetProxyStakers\", AccountStakersQuery._fromProtobuf);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Transaction, {\n TRANSACTION_REGISTRY,\n} from \"../transaction/Transaction.js\";\nimport AccountId from \"./AccountId.js\";\nimport Timestamp from \"../Timestamp.js\";\nimport Duration from \"../Duration.js\";\nimport Long from \"long\";\nimport Key from \"../Key.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HashgraphProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HashgraphProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HashgraphProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} HashgraphProto.proto.ITransactionResponse\n * @typedef {import(\"@hashgraph/proto\").proto.ICryptoUpdateTransactionBody} HashgraphProto.proto.ICryptoUpdateTransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.IAccountID} HashgraphProto.proto.IAccountID\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n */\n\n/**\n * Change properties for the given account.\n */\nexport default class AccountUpdateTransaction extends Transaction {\n /**\n * @param {object} props\n * @param {AccountId} [props.accountId]\n * @param {Key} [props.key]\n * @param {?boolean} [props.receiverSignatureRequired]\n * @param {AccountId} [props.proxyAccountId]\n * @param {Duration | Long | number} [props.autoRenewPeriod]\n * @param {Timestamp | Date} [props.expirationTime]\n * @param {?string} [props.accountMemo]\n * @param {Long | number} [props.maxAutomaticTokenAssociations]\n * @param {Key} [props.aliasKey]\n * @param {AccountId | string} [props.stakedAccountId]\n * @param {Long | number} [props.stakedNodeId]\n * @param {?boolean} [props.declineStakingReward]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {?AccountId}\n */\n this._accountId = null;\n\n /**\n * @private\n * @type {?Key}\n */\n this._key = null;\n\n /**\n * @private\n * @type {?boolean}\n */\n this._receiverSignatureRequired = null;\n\n /**\n * @private\n * @type {?AccountId}\n */\n this._proxyAccountId = null;\n\n /**\n * @private\n * @type {?Duration}\n */\n this._autoRenewPeriod = null;\n\n /**\n * @private\n * @type {?Timestamp}\n */\n this._expirationTime = null;\n\n /**\n * @private\n * @type {?string}\n */\n this._accountMemo = null;\n\n /**\n * @private\n * @type {?Long}\n */\n this._maxAutomaticTokenAssociations = null;\n\n /**\n * @private\n * @type {?Key}\n */\n this._aliasKey = null;\n\n /**\n * @private\n * @type {?AccountId}\n */\n this._stakedAccountId = null;\n\n /**\n * @private\n * @type {?Long}\n */\n this._stakedNodeId = null;\n\n /**\n * @private\n * @type {?boolean}\n */\n this._declineStakingReward = null;\n\n if (props.accountId != null) {\n this.setAccountId(props.accountId);\n }\n\n if (props.key != null) {\n this.setKey(props.key);\n }\n\n if (props.receiverSignatureRequired != null) {\n this.setReceiverSignatureRequired(props.receiverSignatureRequired);\n }\n\n if (props.proxyAccountId != null) {\n // eslint-disable-next-line deprecation/deprecation\n this.setProxyAccountId(props.proxyAccountId);\n }\n\n if (props.autoRenewPeriod != null) {\n this.setAutoRenewPeriod(props.autoRenewPeriod);\n }\n\n if (props.expirationTime != null) {\n this.setExpirationTime(props.expirationTime);\n }\n\n if (props.accountMemo != null) {\n this.setAccountMemo(props.accountMemo);\n }\n\n if (props.maxAutomaticTokenAssociations != null) {\n this.setMaxAutomaticTokenAssociations(\n props.maxAutomaticTokenAssociations,\n );\n }\n\n if (props.stakedAccountId != null) {\n this.setStakedAccountId(props.stakedAccountId);\n }\n\n if (props.stakedNodeId != null) {\n this.setStakedNodeId(props.stakedNodeId);\n }\n\n if (props.declineStakingReward != null) {\n this.setDeclineStakingReward(props.declineStakingReward);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransaction[]} transactions\n * @param {HashgraphProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HashgraphProto.proto.ITransactionBody[]} bodies\n * @returns {AccountUpdateTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const update =\n /** @type {HashgraphProto.proto.ICryptoUpdateTransactionBody} */ (\n body.cryptoUpdateAccount\n );\n\n return Transaction._fromProtobufTransactions(\n new AccountUpdateTransaction({\n accountId:\n update.accountIDToUpdate != null\n ? AccountId._fromProtobuf(\n /** @type {HashgraphProto.proto.IAccountID} */ (\n update.accountIDToUpdate\n ),\n )\n : undefined,\n key:\n update.key != null\n ? Key._fromProtobufKey(update.key)\n : undefined,\n receiverSignatureRequired:\n update.receiverSigRequiredWrapper != null\n ? Object.hasOwn(\n update.receiverSigRequiredWrapper,\n \"value\",\n )\n ? update.receiverSigRequiredWrapper.value\n : undefined\n : undefined,\n proxyAccountId:\n update.proxyAccountID != null\n ? AccountId._fromProtobuf(\n /** @type {HashgraphProto.proto.IAccountID} */ (\n update.proxyAccountID\n ),\n )\n : undefined,\n autoRenewPeriod:\n update.autoRenewPeriod != null\n ? update.autoRenewPeriod.seconds != null\n ? update.autoRenewPeriod.seconds\n : undefined\n : undefined,\n expirationTime:\n update.expirationTime != null\n ? Timestamp._fromProtobuf(update.expirationTime)\n : undefined,\n accountMemo:\n update.memo != null\n ? Object.hasOwn(update.memo, \"value\")\n ? update.memo.value\n : undefined\n : undefined,\n maxAutomaticTokenAssociations:\n update.maxAutomaticTokenAssociations != null &&\n update.maxAutomaticTokenAssociations.value != null &&\n Object.hasOwn(update.maxAutomaticTokenAssociations, \"value\")\n ? Long.fromNumber(\n update.maxAutomaticTokenAssociations.value,\n )\n : undefined,\n stakedAccountId:\n update.stakedAccountId != null\n ? AccountId._fromProtobuf(update.stakedAccountId)\n : undefined,\n stakedNodeId:\n update.stakedNodeId != null\n ? update.stakedNodeId\n : undefined,\n declineStakingReward:\n update.declineReward != null\n ? Object.hasOwn(update.declineReward, \"value\")\n ? update.declineReward.value\n : undefined\n : undefined,\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @returns {?AccountId}\n */\n get accountId() {\n return this._accountId;\n }\n\n /**\n * Sets the account ID which is being updated in this transaction.\n *\n * @param {AccountId | string} accountId\n * @returns {AccountUpdateTransaction}\n */\n setAccountId(accountId) {\n this._requireNotFrozen();\n this._accountId =\n typeof accountId === \"string\"\n ? AccountId.fromString(accountId)\n : accountId.clone();\n\n return this;\n }\n\n /**\n * @returns {?Key}\n */\n get key() {\n return this._key;\n }\n\n /**\n * @param {Key} key\n * @returns {this}\n */\n setKey(key) {\n this._requireNotFrozen();\n this._key = key;\n\n return this;\n }\n\n /**\n * @returns {?boolean}\n */\n get receiverSignatureRequired() {\n return this._receiverSignatureRequired;\n }\n\n /**\n * @param {boolean} receiverSignatureRequired\n * @returns {this}\n */\n setReceiverSignatureRequired(receiverSignatureRequired) {\n this._requireNotFrozen();\n this._receiverSignatureRequired = receiverSignatureRequired;\n\n return this;\n }\n\n /**\n * @deprecated\n * @returns {?AccountId}\n */\n get proxyAccountId() {\n return this._proxyAccountId;\n }\n\n /**\n * @deprecated\n * @param {AccountId} proxyAccountId\n * @returns {this}\n */\n setProxyAccountId(proxyAccountId) {\n this._requireNotFrozen();\n this._proxyAccountId = proxyAccountId;\n\n return this;\n }\n\n /**\n * @returns {?Duration}\n */\n get autoRenewPeriod() {\n return this._autoRenewPeriod;\n }\n\n /**\n * @param {Duration | Long | number} autoRenewPeriod\n * @returns {this}\n */\n setAutoRenewPeriod(autoRenewPeriod) {\n this._requireNotFrozen();\n this._autoRenewPeriod =\n autoRenewPeriod instanceof Duration\n ? autoRenewPeriod\n : new Duration(autoRenewPeriod);\n\n return this;\n }\n\n /**\n * @returns {?Timestamp}\n */\n get expirationTime() {\n return this._expirationTime;\n }\n\n /**\n * @param {Timestamp | Date} expirationTime\n * @returns {this}\n */\n setExpirationTime(expirationTime) {\n this._requireNotFrozen();\n this._expirationTime =\n expirationTime instanceof Date\n ? Timestamp.fromDate(expirationTime)\n : expirationTime;\n\n return this;\n }\n\n /**\n * @returns {?string}\n */\n get accountMemo() {\n return this._accountMemo;\n }\n\n /**\n * @param {string} memo\n * @returns {this}\n */\n setAccountMemo(memo) {\n this._requireNotFrozen();\n this._accountMemo = memo;\n\n return this;\n }\n\n /**\n * @returns {this}\n */\n clearAccountMemo() {\n this._requireNotFrozen();\n this._accountMemo = null;\n\n return this;\n }\n\n /**\n * @returns {?Long}\n */\n get maxAutomaticTokenAssociations() {\n return this._maxAutomaticTokenAssociations;\n }\n\n /**\n * @param {Long | number} maxAutomaticTokenAssociations\n * @returns {this}\n */\n setMaxAutomaticTokenAssociations(maxAutomaticTokenAssociations) {\n this._requireNotFrozen();\n this._maxAutomaticTokenAssociations =\n typeof maxAutomaticTokenAssociations === \"number\"\n ? Long.fromNumber(maxAutomaticTokenAssociations)\n : maxAutomaticTokenAssociations;\n\n return this;\n }\n\n /**\n * @deprecated - no longer supported\n * @returns {?Key}\n */\n get aliasKey() {\n return null;\n }\n\n /**\n * @deprecated - no longer supported\n * @param {Key} _\n * @returns {this}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n setAliasKey(_) {\n return this;\n }\n\n /**\n * @returns {?AccountId}\n */\n get stakedAccountId() {\n return this._stakedAccountId;\n }\n\n /**\n * @param {AccountId | string} stakedAccountId\n * @returns {this}\n */\n setStakedAccountId(stakedAccountId) {\n this._requireNotFrozen();\n this._stakedAccountId =\n typeof stakedAccountId === \"string\"\n ? AccountId.fromString(stakedAccountId)\n : stakedAccountId;\n\n return this;\n }\n\n /**\n * @returns {this}\n */\n clearStakedAccountId() {\n this._requireNotFrozen();\n this._stakedAccountId = new AccountId(0, 0, 0);\n\n return this;\n }\n\n /**\n * @returns {?Long}\n */\n get stakedNodeId() {\n return this._stakedNodeId;\n }\n\n /**\n * @param {Long | number} stakedNodeId\n * @returns {this}\n */\n setStakedNodeId(stakedNodeId) {\n this._requireNotFrozen();\n this._stakedNodeId = Long.fromValue(stakedNodeId);\n\n return this;\n }\n\n /**\n * @returns {this}\n */\n clearStakedNodeId() {\n this._requireNotFrozen();\n this._stakedNodeId = Long.fromNumber(-1);\n\n return this;\n }\n\n /**\n * @returns {?boolean}\n */\n get declineStakingRewards() {\n return this._declineStakingReward;\n }\n\n /**\n * @param {boolean} declineStakingReward\n * @returns {this}\n */\n setDeclineStakingReward(declineStakingReward) {\n this._requireNotFrozen();\n this._declineStakingReward = declineStakingReward;\n\n return this;\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (this._accountId != null) {\n this._accountId.validateChecksum(client);\n }\n\n if (this._proxyAccountId != null) {\n this._proxyAccountId.validateChecksum(client);\n }\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.crypto.updateAccount(request);\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"cryptoUpdateAccount\";\n }\n\n /**\n * @override\n * @protected\n * @returns {HashgraphProto.proto.ICryptoUpdateTransactionBody}\n */\n _makeTransactionData() {\n return {\n accountIDToUpdate:\n this._accountId != null ? this._accountId._toProtobuf() : null,\n key: this._key != null ? this._key._toProtobufKey() : null,\n expirationTime:\n this._expirationTime != null\n ? this._expirationTime._toProtobuf()\n : null,\n proxyAccountID:\n this._proxyAccountId != null\n ? this._proxyAccountId._toProtobuf()\n : null,\n autoRenewPeriod:\n this._autoRenewPeriod != null\n ? this._autoRenewPeriod._toProtobuf()\n : null,\n receiverSigRequiredWrapper:\n this._receiverSignatureRequired == null\n ? null\n : {\n value: this._receiverSignatureRequired,\n },\n memo:\n this._accountMemo != null\n ? {\n value: this._accountMemo,\n }\n : null,\n maxAutomaticTokenAssociations:\n this._maxAutomaticTokenAssociations != null\n ? { value: this._maxAutomaticTokenAssociations.toInt() }\n : null,\n stakedAccountId:\n this.stakedAccountId != null\n ? this.stakedAccountId._toProtobuf()\n : null,\n stakedNodeId: this.stakedNodeId,\n declineReward:\n this.declineStakingRewards != null\n ? { value: this.declineStakingRewards }\n : null,\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `AccountUpdateTransaction:${timestamp.toString()}`;\n }\n}\n\nTRANSACTION_REGISTRY.set(\n \"cryptoUpdateAccount\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n AccountUpdateTransaction._fromProtobuf,\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nexport default class IPv4AddressPart {\n /**\n * @param {object} props\n * @param {number} [props.left]\n * @param {number} [props.right]\n */\n constructor(props = {}) {\n /**\n * @type {number | null}\n */\n this._left = null;\n\n if (props.left != null) {\n this.setLeft(props.left);\n }\n\n /**\n * @type {number | null}\n */\n this._right = null;\n\n if (props.right != null) {\n this.setRight(props.right);\n }\n }\n\n /**\n * @returns {?number}\n */\n get left() {\n return this._left;\n }\n\n /**\n * @param {number} part\n * @returns {this}\n */\n setLeft(part) {\n this._left = part;\n return this;\n }\n\n /**\n * @returns {?number}\n */\n get right() {\n return this._right;\n }\n\n /**\n * @param {number} part\n * @returns {this}\n */\n setRight(part) {\n this._right = part;\n return this;\n }\n\n /**\n * @returns {string}\n */\n toString() {\n if (this._left != null && this._right != null) {\n return `${this._left.toString()}.${this._right.toString()}`;\n } else {\n return \"\";\n }\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport IPv4AddressPart from \"./IPv4AddressPart.js\";\n\nexport default class IPv4Address {\n /**\n * @param {object} props\n * @param {IPv4AddressPart} [props.network]\n * @param {IPv4AddressPart} [props.host]\n */\n constructor(props = {}) {\n /**\n * @type {IPv4AddressPart | null}\n */\n this._network = null;\n\n if (props.network != null) {\n this.setNetwork(props.network);\n }\n\n /**\n * @type {IPv4AddressPart | null}\n */\n this._host = null;\n\n if (props.host != null) {\n this.setHost(props.host);\n }\n }\n\n /**\n * @returns {?IPv4AddressPart}\n */\n get newtork() {\n return this._network;\n }\n\n /**\n * @param {IPv4AddressPart} part\n * @returns {this}\n */\n setNetwork(part) {\n this._network = part;\n return this;\n }\n\n /**\n * @returns {?IPv4AddressPart}\n */\n get host() {\n return this._host;\n }\n\n /**\n * @param {IPv4AddressPart} part\n * @returns {this}\n */\n setHost(part) {\n this._host = part;\n return this;\n }\n\n /**\n * @internal\n * @param {Uint8Array} bytes\n * @returns {IPv4Address}\n */\n static _fromProtobuf(bytes) {\n return new IPv4Address({\n network: new IPv4AddressPart().setLeft(bytes[0]).setRight(bytes[1]),\n host: new IPv4AddressPart().setLeft(bytes[2]).setRight(bytes[3]),\n });\n }\n\n /**\n * @returns {Uint8Array}\n */\n _toProtobuf() {\n return Uint8Array.of(\n this._network != null && this._network._left != null\n ? this._network._left\n : 0,\n this._network != null && this._network.right != null\n ? this._network.right\n : 0,\n this._host != null && this._host.left != null ? this._host.left : 0,\n this._host != null && this._host.right != null\n ? this._host.right\n : 0,\n );\n }\n\n /**\n * @returns {string}\n */\n toString() {\n if (this._network != null && this._host != null) {\n return `${this._network.toString()}.${this._host.toString()}`;\n } else {\n return \"\";\n }\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport IPv4Address from \"./IPv4Address.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.IServiceEndpoint} HashgraphProto.proto.IServiceEndpoint\n */\n\n/**\n * @typedef {object} EndPointJson\n * @property {string | null} address\n * @property {string | null} port\n */\n\nexport default class EndPoint {\n /**\n * @param {object} props\n * @param {IPv4Address} [props.address]\n * @param {number} [props.port]\n */\n constructor(props = {}) {\n /**\n * @type {IPv4Address | null}\n */\n this._address = null;\n\n if (props.address != null) {\n this.setAddress(props.address);\n }\n\n /**\n * @type {number | null}\n */\n this._port = null;\n\n if (props.port != null) {\n this.setPort(props.port);\n }\n }\n\n /**\n * @returns {?IPv4Address}\n */\n get address() {\n return this.address;\n }\n\n /**\n * @param {IPv4Address} address\n * @returns {this}\n */\n setAddress(address) {\n this._address = address;\n return this;\n }\n\n /**\n * @returns {?number}\n */\n get port() {\n return this._port;\n }\n\n /**\n * @param {number} port\n * @returns {this}\n */\n setPort(port) {\n this._port = port;\n return this;\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.IServiceEndpoint} endpoint\n * @returns {EndPoint}\n */\n static _fromProtobuf(endpoint) {\n return new EndPoint({\n address:\n endpoint.ipAddressV4 != null\n ? IPv4Address._fromProtobuf(endpoint.ipAddressV4)\n : undefined,\n port: endpoint.port != null ? endpoint.port : undefined,\n });\n }\n\n /**\n * @returns {HashgraphProto.proto.IServiceEndpoint}\n */\n _toProtobuf() {\n return {\n ipAddressV4:\n this._address != null ? this._address._toProtobuf() : null,\n port: this._port,\n };\n }\n\n /**\n * @returns {string}\n */\n toString() {\n return `${this._address != null ? this._address.toString() : \"\"}:${\n this._port != null ? this._port.toString() : \"\"\n }`;\n }\n\n /**\n * @returns {EndPointJson}\n */\n toJSON() {\n return {\n address: this._address != null ? this._address.toString() : null,\n port: this._port != null ? this._port.toString() : null,\n };\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport AccountId from \"../account/AccountId.js\";\nimport Endpoint from \"./Endpoint.js\";\nimport * as utf8 from \"../encoding/utf8.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.INodeAddress} HashgraphProto.proto.INodeAddress\n */\n\n/**\n * @typedef {import(\"./Endpoint.js\").EndPointJson} EndpointJson\n * @typedef {import(\"long\")} Long\n */\n\n/**\n * @typedef {object} NodeAddressJson\n * @property {string | null} publicKey\n * @property {string | null} nodeId\n * @property {string | null} accountId\n * @property {string | null} certHash\n * @property {EndpointJson[] | null} addresses\n * @property {string | null} description\n * @property {string | null} stake\n */\n\nexport default class NodeAddress {\n /**\n * @param {object} props\n * @param {string} [props.publicKey]\n * @param {Long} [props.nodeId]\n * @param {AccountId | string} [props.accountId]\n * @param {Uint8Array} [props.certHash]\n * @param {Endpoint[]} [props.addresses]\n * @param {string} [props.description]\n * @param {Long} [props.stake]\n */\n constructor(props = {}) {\n /**\n * @type {string | null}\n */\n this._publicKey = null;\n\n if (props.publicKey != null) {\n this.setPublicKey(props.publicKey);\n }\n\n /**\n * @type {Long |null}\n */\n this._nodeId = null;\n\n if (props.nodeId != null) {\n this.setNodeId(props.nodeId);\n }\n\n /**\n * @type {AccountId | null}\n */\n this._accountId = null;\n\n if (props.accountId != null) {\n this.setAccountId(props.accountId);\n }\n\n /**\n * @type {Uint8Array | null}\n */\n this._certHash = null;\n\n if (props.certHash != null) {\n this.setCertHash(props.certHash);\n }\n\n /**\n * @type {Endpoint[]}\n */\n this._addresses = [];\n\n if (props.addresses != null) {\n this.setAddresses(props.addresses);\n }\n\n /**\n * @type {string | null}\n */\n this._description = null;\n\n if (props.description != null) {\n this.setDescription(props.description);\n }\n\n /**\n * @type {Long | null}\n */\n this._stake = null;\n\n if (props.stake != null) {\n this.setStake(props.stake);\n }\n }\n\n /**\n * @returns {?string}\n */\n get publicKey() {\n return this._publicKey;\n }\n\n /**\n * @param {string} publicKey\n * @returns {this}\n */\n setPublicKey(publicKey) {\n this._publicKey = publicKey;\n return this;\n }\n\n /**\n * @returns {?Long}\n */\n get nodeId() {\n return this._nodeId;\n }\n\n /**\n * @param {Long} nodeId\n * @returns {this}\n */\n setNodeId(nodeId) {\n this._nodeId = nodeId;\n return this;\n }\n\n /**\n * @returns {?AccountId}\n */\n get accountId() {\n return this._accountId;\n }\n\n /**\n * @param {AccountId | string} accountId\n * @returns {this}\n */\n setAccountId(accountId) {\n this._accountId =\n typeof accountId === \"string\"\n ? AccountId.fromString(accountId)\n : accountId.clone();\n return this;\n }\n\n /**\n * @returns {?Uint8Array}\n */\n get certHash() {\n return this._certHash;\n }\n\n /**\n * @param {Uint8Array} certHash\n * @returns {this}\n */\n setCertHash(certHash) {\n this._certHash = certHash;\n return this;\n }\n\n /**\n * @returns {Endpoint[]}\n */\n get addresses() {\n return this._addresses;\n }\n\n /**\n * @param {Endpoint[]} addresses\n * @returns {this}\n */\n setAddresses(addresses) {\n this._addresses = addresses;\n return this;\n }\n\n /**\n * @returns {?string}\n */\n get description() {\n return this._description;\n }\n\n /**\n * @param {string} description\n * @returns {this}\n */\n setDescription(description) {\n this._description = description;\n return this;\n }\n\n /**\n * @returns {?Long}\n */\n get stake() {\n return this._stake;\n }\n\n /**\n * @param {Long} stake\n * @returns {this}\n */\n setStake(stake) {\n this._stake = stake;\n return this;\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.INodeAddress} nodeAddress\n * @returns {NodeAddress}\n */\n static _fromProtobuf(nodeAddress) {\n return new NodeAddress({\n publicKey:\n nodeAddress.RSA_PubKey != null\n ? nodeAddress.RSA_PubKey\n : undefined,\n nodeId: nodeAddress.nodeId != null ? nodeAddress.nodeId : undefined,\n accountId:\n nodeAddress.nodeAccountId != null\n ? AccountId._fromProtobuf(nodeAddress.nodeAccountId)\n : undefined,\n certHash:\n nodeAddress.nodeCertHash != null\n ? nodeAddress.nodeCertHash\n : undefined,\n addresses:\n nodeAddress.serviceEndpoint != null\n ? nodeAddress.serviceEndpoint.map((address) =>\n Endpoint._fromProtobuf(address),\n )\n : undefined,\n description:\n nodeAddress.description != null\n ? nodeAddress.description\n : undefined,\n stake: nodeAddress.stake != null ? nodeAddress.stake : undefined,\n });\n }\n\n /**\n * @returns {HashgraphProto.proto.INodeAddress}\n */\n _toProtobuf() {\n return {\n RSA_PubKey: this._publicKey,\n nodeId: this._nodeId,\n nodeAccountId:\n this._accountId != null ? this._accountId._toProtobuf() : null,\n nodeCertHash: this._certHash,\n serviceEndpoint: this._addresses.map((address) =>\n address._toProtobuf(),\n ),\n description: this._description,\n stake: this._stake,\n };\n }\n\n /**\n * @returns {string}\n */\n toString() {\n return JSON.stringify(this.toJSON());\n }\n\n /**\n * @returns {NodeAddressJson}\n */\n toJSON() {\n return {\n publicKey: this._publicKey,\n nodeId: this._nodeId != null ? this._nodeId.toString() : null,\n accountId:\n this._accountId != null ? this._accountId.toString() : null,\n certHash:\n this._certHash != null ? utf8.decode(this._certHash) : null,\n addresses: this._addresses.map((address) => address.toJSON()),\n description: this._description,\n stake: this._stake != null ? this._stake.toString() : null,\n };\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport NodeAddress from \"./NodeAddress.js\";\nimport * as HashgraphProto from \"@hashgraph/proto\";\n\n/**\n * @typedef {import(\"./NodeAddress.js\").NodeAddressJson} NodeAddressJson\n */\n\n/**\n * @typedef {object} NodeAddressBookJson\n * @property {NodeAddressJson[]} nodeAddresses\n */\n\nexport default class NodeAddressBook {\n /**\n * @param {object} props\n * @param {NodeAddress[]} [props.nodeAddresses]\n */\n constructor(props = {}) {\n /**\n * @type {NodeAddress[]}\n */\n this._nodeAddresses = [];\n\n if (props.nodeAddresses != null) {\n this.setNodeAddresses(props.nodeAddresses);\n }\n }\n\n /**\n * @returns {NodeAddress[]}\n */\n get nodeAddresses() {\n return this._nodeAddresses;\n }\n\n /**\n * @param {NodeAddress[]} nodeAddresses\n * @returns {this}\n */\n setNodeAddresses(nodeAddresses) {\n this._nodeAddresses = nodeAddresses;\n return this;\n }\n\n /**\n * @param {Uint8Array} bytes\n * @returns {NodeAddressBook}\n */\n static fromBytes(bytes) {\n return NodeAddressBook._fromProtobuf(\n HashgraphProto.proto.NodeAddressBook.decode(bytes),\n );\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.INodeAddressBook} nodeAddressBook\n * @returns {NodeAddressBook}\n */\n static _fromProtobuf(nodeAddressBook) {\n return new NodeAddressBook({\n nodeAddresses:\n nodeAddressBook.nodeAddress != null\n ? nodeAddressBook.nodeAddress.map((nodeAddress) =>\n NodeAddress._fromProtobuf(nodeAddress),\n )\n : undefined,\n });\n }\n\n /**\n * @returns {HashgraphProto.proto.INodeAddressBook}\n */\n _toProtobuf() {\n return {\n nodeAddress: this._nodeAddresses.map((nodeAddress) =>\n nodeAddress._toProtobuf(),\n ),\n };\n }\n\n /**\n * @returns {string}\n */\n toString() {\n return JSON.stringify(this.toJSON());\n }\n\n /**\n * @returns {NodeAddressBookJson}\n */\n toJSON() {\n return {\n nodeAddresses: this._nodeAddresses.map((nodeAddress) =>\n nodeAddress.toJSON(),\n ),\n };\n }\n\n toBytes() {\n return HashgraphProto.proto.NodeAddressBook.encode(\n this._toProtobuf(),\n ).finish();\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Query from \"../query/Query.js\";\nimport NodeAddress from \"../address_book/NodeAddress.js\";\nimport NodeAddressBook from \"../address_book/NodeAddressBook.js\";\nimport * as HashgraphProto from \"@hashgraph/proto\";\nimport FileId from \"../file/FileId.js\";\nimport { RST_STREAM } from \"../Executable.js\";\nimport CACHE from \"../Cache.js\";\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../channel/MirrorChannel.js\").default} MirrorChannel\n * @typedef {import(\"../channel/MirrorChannel.js\").MirrorError} MirrorError\n */\n\n/**\n * @template {Channel} ChannelT\n * @typedef {import(\"../client/Client.js\").default} Client\n */\n\n/**\n * @augments {Query}\n */\nexport default class AddressBookQuery extends Query {\n /**\n * @param {object} props\n * @param {FileId | string} [props.fileId]\n * @param {number} [props.limit]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {?FileId}\n */\n this._fileId = null;\n if (props.fileId != null) {\n this.setFileId(props.fileId);\n }\n\n /**\n * @private\n * @type {?number}\n */\n this._limit = null;\n if (props.limit != null) {\n this.setLimit(props.limit);\n }\n\n /**\n * @private\n * @type {(error: MirrorError | Error | null) => boolean}\n */\n this._retryHandler = (error) => {\n if (error != null) {\n if (error instanceof Error) {\n // Retry on all errors which are not `MirrorError` because they're\n // likely lower level HTTP/2 errors\n return true;\n } else {\n // Retry on `NOT_FOUND`, `RESOURCE_EXHAUSTED`, `UNAVAILABLE`, and conditionally on `INTERNAL`\n // if the message matches the right regex.\n switch (error.code) {\n // INTERNAL\n // eslint-disable-next-line no-fallthrough\n case 13:\n return RST_STREAM.test(error.details.toString());\n // NOT_FOUND\n // eslint-disable-next-line no-fallthrough\n case 5:\n // RESOURCE_EXHAUSTED\n // eslint-disable-next-line no-fallthrough\n case 8:\n // UNAVAILABLE\n // eslint-disable-next-line no-fallthrough\n case 14:\n case 17:\n return true;\n default:\n return false;\n }\n }\n }\n\n return false;\n };\n\n /** @type {NodeAddress[]} */\n this._addresses = [];\n\n /**\n * @private\n * @type {number}\n */\n this._attempt = 0;\n }\n\n /**\n * @returns {?FileId}\n */\n get fileId() {\n return this._fileId;\n }\n\n /**\n * @param {FileId | string} fileId\n * @returns {AddressBookQuery}\n */\n setFileId(fileId) {\n this._fileId =\n typeof fileId === \"string\"\n ? FileId.fromString(fileId)\n : fileId.clone();\n\n return this;\n }\n\n /**\n * @returns {?number}\n */\n get limit() {\n return this._limit;\n }\n\n /**\n * @param {number} limit\n * @returns {AddressBookQuery}\n */\n setLimit(limit) {\n this._limit = limit;\n\n return this;\n }\n\n /**\n * @param {number} attempts\n * @returns {this}\n */\n setMaxAttempts(attempts) {\n this._maxAttempts = attempts;\n return this;\n }\n\n /**\n * @param {number} backoff\n * @returns {this}\n */\n setMaxBackoff(backoff) {\n this._maxBackoff = backoff;\n return this;\n }\n\n /**\n * @param {Client} client\n * @param {number=} requestTimeout\n * @returns {Promise}\n */\n execute(client, requestTimeout) {\n // Extra validation when initializing the client with only a mirror network\n if (client._network._network.size === 0 && !client._timer) {\n throw new Error(\n \"The client's network update period is required. Please set it using the setNetworkUpdatePeriod method.\",\n );\n }\n\n return new Promise((resolve, reject) => {\n this._makeServerStreamRequest(\n client,\n /** @type {(value: NodeAddressBook) => void} */ (resolve),\n reject,\n requestTimeout,\n );\n });\n }\n\n /**\n * @private\n * @param {Client} client\n * @param {(value: NodeAddressBook) => void} resolve\n * @param {(error: Error) => void} reject\n * @param {number=} requestTimeout\n */\n _makeServerStreamRequest(client, resolve, reject, requestTimeout) {\n const request =\n HashgraphProto.com.hedera.mirror.api.proto.AddressBookQuery.encode({\n fileId:\n this._fileId != null ? this._fileId._toProtobuf() : null,\n limit: this._limit,\n }).finish();\n\n client._mirrorNetwork\n .getNextMirrorNode()\n .getChannel()\n .makeServerStreamRequest(\n \"NetworkService\",\n \"getNodes\",\n request,\n (data) => {\n this._addresses.push(\n NodeAddress._fromProtobuf(\n HashgraphProto.proto.NodeAddress.decode(data),\n ),\n );\n\n if (this._limit != null && this._limit > 0) {\n this._limit = this._limit - 1;\n }\n },\n (error) => {\n const message =\n error instanceof Error ? error.message : error.details;\n if (\n this._attempt < this._maxAttempts &&\n !client.isClientShutDown &&\n this._retryHandler(error)\n ) {\n const delay = Math.min(\n 250 * 2 ** this._attempt,\n this._maxBackoff,\n );\n if (this._attempt >= this._maxAttempts) {\n console.warn(\n `Error getting nodes from mirror for file ${\n this._fileId != null\n ? this._fileId.toString()\n : \"UNKNOWN\"\n } during attempt ${\n this._attempt\n }. Waiting ${delay} ms before next attempt: ${message}`,\n );\n }\n if (this._logger) {\n this._logger.debug(\n `Error getting nodes from mirror for file ${\n this._fileId != null\n ? this._fileId.toString()\n : \"UNKNOWN\"\n } during attempt ${\n this._attempt\n }. Waiting ${delay} ms before next attempt: ${message}`,\n );\n }\n\n this._attempt += 1;\n\n setTimeout(() => {\n this._makeServerStreamRequest(\n client,\n resolve,\n reject,\n requestTimeout,\n );\n }, delay);\n } else {\n reject(new Error(\"failed to query address book\"));\n }\n },\n () => {\n resolve(\n new NodeAddressBook({ nodeAddresses: this._addresses }),\n );\n },\n );\n }\n}\n\nCACHE.setAddressBookQueryConstructor(() => new AddressBookQuery());\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Query, { QUERY_REGISTRY } from \"../query/Query.js\";\nimport ContractId from \"./ContractId.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.IQuery} HashgraphProto.proto.IQuery\n * @typedef {import(\"@hashgraph/proto\").proto.IQueryHeader} HashgraphProto.proto.IQueryHeader\n * @typedef {import(\"@hashgraph/proto\").proto.IResponse} HashgraphProto.proto.IResponse\n * @typedef {import(\"@hashgraph/proto\").proto.IResponseHeader} HashgraphProto.proto.IResponseHeader\n * @typedef {import(\"@hashgraph/proto\").proto.IContractGetBytecodeQuery} HashgraphProto.proto.IContractGetBytecodeQuery\n * @typedef {import(\"@hashgraph/proto\").proto.IContractGetBytecodeResponse} HashgraphProto.proto.IContractGetBytecodeResponse\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../account/AccountId.js\").default} AccountId\n */\n\n/**\n * @augments {Query}\n */\nexport default class ContractByteCodeQuery extends Query {\n /**\n * @param {object} props\n * @param {ContractId | string} [props.contractId]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @type {?ContractId}\n * @private\n */\n this._contractId = null;\n if (props.contractId != null) {\n this.setContractId(props.contractId);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.IQuery} query\n * @returns {ContractByteCodeQuery}\n */\n static _fromProtobuf(query) {\n const bytecode =\n /** @type {HashgraphProto.proto.IContractGetBytecodeQuery} */ (\n query.contractGetBytecode\n );\n\n return new ContractByteCodeQuery({\n contractId:\n bytecode.contractID != null\n ? ContractId._fromProtobuf(bytecode.contractID)\n : undefined,\n });\n }\n\n /**\n * @returns {?ContractId}\n */\n get contractId() {\n return this._contractId;\n }\n\n /**\n * Set the contract ID for which the info is being requested.\n *\n * @param {ContractId | string} contractId\n * @returns {ContractByteCodeQuery}\n */\n setContractId(contractId) {\n this._contractId =\n typeof contractId === \"string\"\n ? ContractId.fromString(contractId)\n : contractId.clone();\n\n return this;\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (this._contractId != null) {\n this._contractId.validateChecksum(client);\n }\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.IQuery} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.smartContract.contractGetBytecode(request);\n }\n\n /**\n * @override\n * @internal\n * @param {HashgraphProto.proto.IResponse} response\n * @returns {HashgraphProto.proto.IResponseHeader}\n */\n _mapResponseHeader(response) {\n const contractGetBytecodeResponse =\n /** @type {HashgraphProto.proto.IContractGetBytecodeResponse} */ (\n response.contractGetBytecodeResponse\n );\n return /** @type {HashgraphProto.proto.IResponseHeader} */ (\n contractGetBytecodeResponse.header\n );\n }\n\n /**\n * @protected\n * @override\n * @param {HashgraphProto.proto.IResponse} response\n * @returns {Promise}\n */\n _mapResponse(response) {\n const contractGetBytecodeResponse =\n /** @type {HashgraphProto.proto.IContractGetBytecodeResponse} */ (\n response.contractGetBytecodeResponse\n );\n\n return Promise.resolve(\n contractGetBytecodeResponse.bytecode != null\n ? contractGetBytecodeResponse.bytecode\n : new Uint8Array(),\n );\n }\n\n /**\n * @override\n * @internal\n * @param {HashgraphProto.proto.IQueryHeader} header\n * @returns {HashgraphProto.proto.IQuery}\n */\n _onMakeRequest(header) {\n return {\n contractGetBytecode: {\n header,\n contractID:\n this._contractId != null\n ? this._contractId._toProtobuf()\n : null,\n },\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp =\n this._paymentTransactionId != null &&\n this._paymentTransactionId.validStart != null\n ? this._paymentTransactionId.validStart\n : this._timestamp;\n\n return `ContractByteCodeQuery:${timestamp.toString()}`;\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/unbound-method\nQUERY_REGISTRY.set(\"contractGetBytecode\", ContractByteCodeQuery._fromProtobuf);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\n// Originally sourced from:\n// https://github.com/MaiaVictor/eth-lib/blob/da0971f5b09964d9c8449975fa87933f0c9fef35/src/hash.js\n// - added type declarations\n// - switched to es6 module syntax\n//\n// Disable linting for entire file because it's nearly all pure JS\n// eslint-disable\n\nconst HEX_CHARS = \"0123456789abcdef\".split(\"\");\nconst KECCAK_PADDING = [1, 256, 65536, 16777216];\nconst SHIFT = [0, 8, 16, 24];\nconst RC = [\n 1, 0, 32898, 0, 32906, 2147483648, 2147516416, 2147483648, 32907, 0,\n 2147483649, 0, 2147516545, 2147483648, 32777, 2147483648, 138, 0, 136, 0,\n 2147516425, 0, 2147483658, 0, 2147516555, 0, 139, 2147483648, 32905,\n 2147483648, 32771, 2147483648, 32770, 2147483648, 128, 2147483648, 32778, 0,\n 2147483658, 2147483648, 2147516545, 2147483648, 32896, 2147483648,\n 2147483649, 0, 2147516424, 2147483648,\n];\n\n/**\n * @typedef {object} KeccakT\n * @property {number[]} blocks\n * @property {number} blockCount\n * @property {number} outputBlocks\n * @property {number[]} s\n * @property {number} start\n * @property {number} block\n * @property {boolean} reset\n * @property {number=} lastByteIndex\n */\n\n/** @type {(bits: number) => KeccakT} */\nconst Keccak = (bits) => ({\n blocks: [],\n reset: true,\n block: 0,\n start: 0,\n blockCount: (1600 - (bits << 1)) >> 5,\n outputBlocks: bits >> 5,\n // @ts-ignore\n s: ((s) => [].concat(s, s, s, s, s))([0, 0, 0, 0, 0, 0, 0, 0, 0, 0]),\n});\n\n/** @type {(state: KeccakT, message: string | number[]) => string} */\n//NOSONAR\nconst update = (state, /** @type {string | number[]} */ message) => {\n var length = message.length,\n blocks = state.blocks,\n byteCount = state.blockCount << 2,\n blockCount = state.blockCount,\n outputBlocks = state.outputBlocks,\n s = state.s,\n index = 0,\n i,\n code;\n\n // update\n while (index < length) {\n if (state.reset) {\n state.reset = false;\n blocks[0] = state.block;\n for (i = 1; i < blockCount + 1; ++i) {\n blocks[i] = 0;\n }\n }\n if (typeof message !== \"string\") {\n for (i = state.start; index < length && i < byteCount; ++index) {\n blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];\n }\n } else {\n for (i = state.start; index < length && i < byteCount; ++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] |=\n (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else {\n code =\n 0x10000 +\n (((code & 0x3ff) << 10) |\n (message.charCodeAt(++index) & 0x3ff)); //NOSONAR\n blocks[i >> 2] |= (0xf0 | (code >> 18)) << SHIFT[i++ & 3];\n blocks[i >> 2] |=\n (0x80 | ((code >> 12) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |=\n (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n }\n }\n }\n state.lastByteIndex = i;\n if (i >= byteCount) {\n state.start = i - byteCount;\n state.block = blocks[blockCount];\n for (i = 0; i < blockCount; ++i) {\n s[i] ^= blocks[i];\n }\n f(s);\n state.reset = true;\n } else {\n state.start = i;\n }\n }\n\n // finalize\n i = state.lastByteIndex;\n // @ts-ignore\n blocks[i >> 2] |= KECCAK_PADDING[i & 3];\n if (state.lastByteIndex === byteCount) {\n blocks[0] = blocks[blockCount];\n for (i = 1; i < blockCount + 1; ++i) {\n blocks[i] = 0;\n }\n }\n blocks[blockCount - 1] |= 0x80000000;\n for (i = 0; i < blockCount; ++i) {\n s[i] ^= blocks[i];\n }\n f(s);\n\n // toString\n var hex = \"\";\n var block;\n var j = 0;\n i = 0; //NOSONAR\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n block = s[i];\n hex +=\n HEX_CHARS[(block >> 4) & 0x0f] +\n HEX_CHARS[block & 0x0f] +\n HEX_CHARS[(block >> 12) & 0x0f] +\n HEX_CHARS[(block >> 8) & 0x0f] +\n HEX_CHARS[(block >> 20) & 0x0f] +\n HEX_CHARS[(block >> 16) & 0x0f] +\n HEX_CHARS[(block >> 28) & 0x0f] +\n HEX_CHARS[(block >> 24) & 0x0f];\n }\n if (j % blockCount === 0) {\n f(s);\n i = 0; //NOSONAR\n }\n }\n // @ts-ignore\n return \"0x\" + hex;\n};\n\n/** @type {(s: number[]) => void} */\nconst f = (s) => {\n var h,\n l,\n n,\n c0,\n c1,\n c2,\n c3,\n c4,\n c5,\n c6,\n c7,\n c8,\n c9,\n b0,\n b1,\n b2,\n b3,\n b4,\n b5,\n b6,\n b7,\n b8,\n b9,\n b10,\n b11,\n b12,\n b13,\n b14,\n b15,\n b16,\n b17,\n b18,\n b19,\n b20,\n b21,\n b22,\n b23,\n b24,\n b25,\n b26,\n b27,\n b28,\n b29,\n b30,\n b31,\n b32,\n b33,\n b34,\n b35,\n b36,\n b37,\n b38,\n b39,\n b40,\n b41,\n b42,\n b43,\n b44,\n b45,\n b46,\n b47,\n b48,\n b49;\n\n for (n = 0; n < 48; n += 2) {\n c0 = s[0] ^ s[10] ^ s[20] ^ s[30] ^ s[40];\n c1 = s[1] ^ s[11] ^ s[21] ^ s[31] ^ s[41];\n c2 = s[2] ^ s[12] ^ s[22] ^ s[32] ^ s[42];\n c3 = s[3] ^ s[13] ^ s[23] ^ s[33] ^ s[43];\n c4 = s[4] ^ s[14] ^ s[24] ^ s[34] ^ s[44];\n c5 = s[5] ^ s[15] ^ s[25] ^ s[35] ^ s[45];\n c6 = s[6] ^ s[16] ^ s[26] ^ s[36] ^ s[46];\n c7 = s[7] ^ s[17] ^ s[27] ^ s[37] ^ s[47];\n c8 = s[8] ^ s[18] ^ s[28] ^ s[38] ^ s[48];\n c9 = s[9] ^ s[19] ^ s[29] ^ s[39] ^ s[49];\n\n h = c8 ^ ((c2 << 1) | (c3 >>> 31));\n l = c9 ^ ((c3 << 1) | (c2 >>> 31));\n s[0] ^= h;\n s[1] ^= l;\n s[10] ^= h;\n s[11] ^= l;\n s[20] ^= h;\n s[21] ^= l;\n s[30] ^= h;\n s[31] ^= l;\n s[40] ^= h;\n s[41] ^= l;\n h = c0 ^ ((c4 << 1) | (c5 >>> 31));\n l = c1 ^ ((c5 << 1) | (c4 >>> 31));\n s[2] ^= h;\n s[3] ^= l;\n s[12] ^= h;\n s[13] ^= l;\n s[22] ^= h;\n s[23] ^= l;\n s[32] ^= h;\n s[33] ^= l;\n s[42] ^= h;\n s[43] ^= l;\n h = c2 ^ ((c6 << 1) | (c7 >>> 31));\n l = c3 ^ ((c7 << 1) | (c6 >>> 31));\n s[4] ^= h;\n s[5] ^= l;\n s[14] ^= h;\n s[15] ^= l;\n s[24] ^= h;\n s[25] ^= l;\n s[34] ^= h;\n s[35] ^= l;\n s[44] ^= h;\n s[45] ^= l;\n h = c4 ^ ((c8 << 1) | (c9 >>> 31));\n l = c5 ^ ((c9 << 1) | (c8 >>> 31));\n s[6] ^= h;\n s[7] ^= l;\n s[16] ^= h;\n s[17] ^= l;\n s[26] ^= h;\n s[27] ^= l;\n s[36] ^= h;\n s[37] ^= l;\n s[46] ^= h;\n s[47] ^= l;\n h = c6 ^ ((c0 << 1) | (c1 >>> 31));\n l = c7 ^ ((c1 << 1) | (c0 >>> 31));\n s[8] ^= h;\n s[9] ^= l;\n s[18] ^= h;\n s[19] ^= l;\n s[28] ^= h;\n s[29] ^= l;\n s[38] ^= h;\n s[39] ^= l;\n s[48] ^= h;\n s[49] ^= l;\n\n b0 = s[0];\n b1 = s[1];\n b32 = (s[11] << 4) | (s[10] >>> 28);\n b33 = (s[10] << 4) | (s[11] >>> 28);\n b14 = (s[20] << 3) | (s[21] >>> 29);\n b15 = (s[21] << 3) | (s[20] >>> 29);\n b46 = (s[31] << 9) | (s[30] >>> 23);\n b47 = (s[30] << 9) | (s[31] >>> 23);\n b28 = (s[40] << 18) | (s[41] >>> 14);\n b29 = (s[41] << 18) | (s[40] >>> 14);\n b20 = (s[2] << 1) | (s[3] >>> 31);\n b21 = (s[3] << 1) | (s[2] >>> 31);\n b2 = (s[13] << 12) | (s[12] >>> 20);\n b3 = (s[12] << 12) | (s[13] >>> 20);\n b34 = (s[22] << 10) | (s[23] >>> 22);\n b35 = (s[23] << 10) | (s[22] >>> 22);\n b16 = (s[33] << 13) | (s[32] >>> 19);\n b17 = (s[32] << 13) | (s[33] >>> 19);\n b48 = (s[42] << 2) | (s[43] >>> 30);\n b49 = (s[43] << 2) | (s[42] >>> 30);\n b40 = (s[5] << 30) | (s[4] >>> 2);\n b41 = (s[4] << 30) | (s[5] >>> 2);\n b22 = (s[14] << 6) | (s[15] >>> 26);\n b23 = (s[15] << 6) | (s[14] >>> 26);\n b4 = (s[25] << 11) | (s[24] >>> 21);\n b5 = (s[24] << 11) | (s[25] >>> 21);\n b36 = (s[34] << 15) | (s[35] >>> 17);\n b37 = (s[35] << 15) | (s[34] >>> 17);\n b18 = (s[45] << 29) | (s[44] >>> 3);\n b19 = (s[44] << 29) | (s[45] >>> 3);\n b10 = (s[6] << 28) | (s[7] >>> 4);\n b11 = (s[7] << 28) | (s[6] >>> 4);\n b42 = (s[17] << 23) | (s[16] >>> 9);\n b43 = (s[16] << 23) | (s[17] >>> 9);\n b24 = (s[26] << 25) | (s[27] >>> 7);\n b25 = (s[27] << 25) | (s[26] >>> 7);\n b6 = (s[36] << 21) | (s[37] >>> 11);\n b7 = (s[37] << 21) | (s[36] >>> 11);\n b38 = (s[47] << 24) | (s[46] >>> 8);\n b39 = (s[46] << 24) | (s[47] >>> 8);\n b30 = (s[8] << 27) | (s[9] >>> 5);\n b31 = (s[9] << 27) | (s[8] >>> 5);\n b12 = (s[18] << 20) | (s[19] >>> 12);\n b13 = (s[19] << 20) | (s[18] >>> 12);\n b44 = (s[29] << 7) | (s[28] >>> 25);\n b45 = (s[28] << 7) | (s[29] >>> 25);\n b26 = (s[38] << 8) | (s[39] >>> 24);\n b27 = (s[39] << 8) | (s[38] >>> 24);\n b8 = (s[48] << 14) | (s[49] >>> 18);\n b9 = (s[49] << 14) | (s[48] >>> 18);\n\n s[0] = b0 ^ (~b2 & b4);\n s[1] = b1 ^ (~b3 & b5);\n s[10] = b10 ^ (~b12 & b14);\n s[11] = b11 ^ (~b13 & b15);\n s[20] = b20 ^ (~b22 & b24);\n s[21] = b21 ^ (~b23 & b25);\n s[30] = b30 ^ (~b32 & b34);\n s[31] = b31 ^ (~b33 & b35);\n s[40] = b40 ^ (~b42 & b44);\n s[41] = b41 ^ (~b43 & b45);\n s[2] = b2 ^ (~b4 & b6);\n s[3] = b3 ^ (~b5 & b7);\n s[12] = b12 ^ (~b14 & b16);\n s[13] = b13 ^ (~b15 & b17);\n s[22] = b22 ^ (~b24 & b26);\n s[23] = b23 ^ (~b25 & b27);\n s[32] = b32 ^ (~b34 & b36);\n s[33] = b33 ^ (~b35 & b37);\n s[42] = b42 ^ (~b44 & b46);\n s[43] = b43 ^ (~b45 & b47);\n s[4] = b4 ^ (~b6 & b8);\n s[5] = b5 ^ (~b7 & b9);\n s[14] = b14 ^ (~b16 & b18);\n s[15] = b15 ^ (~b17 & b19);\n s[24] = b24 ^ (~b26 & b28);\n s[25] = b25 ^ (~b27 & b29);\n s[34] = b34 ^ (~b36 & b38);\n s[35] = b35 ^ (~b37 & b39);\n s[44] = b44 ^ (~b46 & b48);\n s[45] = b45 ^ (~b47 & b49);\n s[6] = b6 ^ (~b8 & b0);\n s[7] = b7 ^ (~b9 & b1);\n s[16] = b16 ^ (~b18 & b10);\n s[17] = b17 ^ (~b19 & b11);\n s[26] = b26 ^ (~b28 & b20);\n s[27] = b27 ^ (~b29 & b21);\n s[36] = b36 ^ (~b38 & b30);\n s[37] = b37 ^ (~b39 & b31);\n s[46] = b46 ^ (~b48 & b40);\n s[47] = b47 ^ (~b49 & b41);\n s[8] = b8 ^ (~b0 & b2);\n s[9] = b9 ^ (~b1 & b3);\n s[18] = b18 ^ (~b10 & b12);\n s[19] = b19 ^ (~b11 & b13);\n s[28] = b28 ^ (~b20 & b22);\n s[29] = b29 ^ (~b21 & b23);\n s[38] = b38 ^ (~b30 & b32);\n s[39] = b39 ^ (~b31 & b33);\n s[48] = b48 ^ (~b40 & b42);\n s[49] = b49 ^ (~b41 & b43);\n\n s[0] ^= RC[n];\n s[1] ^= RC[n + 1];\n }\n};\n\nconst keccak = (/** @type {number} */ bits) => (/** @type {string} */ str) => {\n var msg;\n if (str.slice(0, 2) === \"0x\") {\n msg = [];\n for (var i = 2, l = str.length; i < l; i += 2)\n msg.push(parseInt(str.slice(i, i + 2), 16));\n } else {\n msg = str;\n }\n // @ts-ignore\n return update(Keccak(bits), msg);\n};\n\n/**\n * @type {(message: string) => string}\n */\nexport const keccak256 = keccak(256);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport { keccak256 } from \"../cryptography/keccak.js\";\nimport * as hex from \"../encoding/hex.js\";\nimport * as utf8 from \"../encoding/utf8.js\";\n\n/**\n * @enum {number}\n */\nexport const ArgumentType = {\n uint8: 0,\n int8: 1,\n uint16: 2,\n int16: 3,\n uint24: 4,\n int24: 5,\n uint32: 6,\n int32: 7,\n uint40: 8,\n int40: 9,\n uint48: 10,\n int48: 11,\n uint56: 12,\n int56: 13,\n uint64: 14,\n int64: 15,\n uint72: 16,\n int72: 17,\n uint80: 18,\n int80: 19,\n uint88: 20,\n int88: 21,\n uint96: 22,\n int96: 23,\n uint104: 24,\n int104: 25,\n uint112: 26,\n int112: 27,\n uint120: 28,\n int120: 29,\n uint128: 30,\n int128: 31,\n uint136: 32,\n int136: 33,\n uint144: 34,\n int144: 35,\n uint152: 36,\n int152: 37,\n uint160: 38,\n int160: 39,\n uint168: 40,\n int168: 41,\n uint176: 42,\n int176: 43,\n uint184: 44,\n int184: 45,\n uint192: 46,\n int192: 47,\n uint200: 48,\n int200: 49,\n uint208: 50,\n int208: 51,\n uint216: 52,\n int216: 53,\n uint224: 54,\n int224: 55,\n uint232: 56,\n int232: 57,\n uint240: 58,\n int240: 59,\n uint248: 60,\n int248: 61,\n uint256: 62,\n int256: 63,\n string: 64,\n bool: 65,\n bytes: 66,\n bytes32: 67,\n address: 68,\n func: 69,\n};\n\n/**\n * @typedef {object} Argument\n * @property {boolean} dynamic\n * @property {Uint8Array} value\n */\n\n/**\n * @typedef {object} SolidityType\n * @property {ArgumentType} ty\n * @property {boolean} array\n */\n\nexport default class ContractFunctionSelector {\n /**\n * @param {string} [name]\n */\n constructor(name) {\n /**\n * @type {?string}\n */\n this.name = null;\n\n /**\n * @type {string}\n */\n this._params = \"\";\n\n /**\n * @type {SolidityType[]}\n */\n this._paramTypes = [];\n\n if (name != null) {\n this._name = name;\n }\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addString() {\n return this._addParam({ ty: ArgumentType.string, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addStringArray() {\n return this._addParam({ ty: ArgumentType.string, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addBytes() {\n return this._addParam({ ty: ArgumentType.bytes, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addBytes32() {\n return this._addParam({ ty: ArgumentType.bytes32, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addBytesArray() {\n return this._addParam({ ty: ArgumentType.bytes, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addBytes32Array() {\n return this._addParam({ ty: ArgumentType.bytes32, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt8() {\n return this._addParam({ ty: ArgumentType.int8, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint8() {\n return this._addParam({ ty: ArgumentType.uint8, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt16() {\n return this._addParam({ ty: ArgumentType.int16, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint16() {\n return this._addParam({ ty: ArgumentType.uint16, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt24() {\n return this._addParam({ ty: ArgumentType.int24, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint24() {\n return this._addParam({ ty: ArgumentType.uint24, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt32() {\n return this._addParam({ ty: ArgumentType.int32, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint32() {\n return this._addParam({ ty: ArgumentType.uint32, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt40() {\n return this._addParam({ ty: ArgumentType.int40, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint40() {\n return this._addParam({ ty: ArgumentType.uint40, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt48() {\n return this._addParam({ ty: ArgumentType.int48, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint48() {\n return this._addParam({ ty: ArgumentType.uint48, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt56() {\n return this._addParam({ ty: ArgumentType.int56, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint56() {\n return this._addParam({ ty: ArgumentType.uint56, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt64() {\n return this._addParam({ ty: ArgumentType.int64, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint64() {\n return this._addParam({ ty: ArgumentType.uint64, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt72() {\n return this._addParam({ ty: ArgumentType.int72, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint72() {\n return this._addParam({ ty: ArgumentType.uint72, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt80() {\n return this._addParam({ ty: ArgumentType.int80, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint80() {\n return this._addParam({ ty: ArgumentType.uint80, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt88() {\n return this._addParam({ ty: ArgumentType.int88, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint88() {\n return this._addParam({ ty: ArgumentType.uint88, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt96() {\n return this._addParam({ ty: ArgumentType.int96, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint96() {\n return this._addParam({ ty: ArgumentType.uint96, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt104() {\n return this._addParam({ ty: ArgumentType.int104, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint104() {\n return this._addParam({ ty: ArgumentType.uint104, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt112() {\n return this._addParam({ ty: ArgumentType.int112, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint112() {\n return this._addParam({ ty: ArgumentType.uint112, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt120() {\n return this._addParam({ ty: ArgumentType.int120, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint120() {\n return this._addParam({ ty: ArgumentType.uint120, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt128() {\n return this._addParam({ ty: ArgumentType.int128, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint128() {\n return this._addParam({ ty: ArgumentType.uint128, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt136() {\n return this._addParam({ ty: ArgumentType.int136, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint136() {\n return this._addParam({ ty: ArgumentType.uint136, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt144() {\n return this._addParam({ ty: ArgumentType.int144, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint144() {\n return this._addParam({ ty: ArgumentType.uint144, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt152() {\n return this._addParam({ ty: ArgumentType.int152, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint152() {\n return this._addParam({ ty: ArgumentType.uint152, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt160() {\n return this._addParam({ ty: ArgumentType.int160, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint160() {\n return this._addParam({ ty: ArgumentType.uint160, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt168() {\n return this._addParam({ ty: ArgumentType.int168, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint168() {\n return this._addParam({ ty: ArgumentType.uint168, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt176() {\n return this._addParam({ ty: ArgumentType.int176, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint176() {\n return this._addParam({ ty: ArgumentType.uint176, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt184() {\n return this._addParam({ ty: ArgumentType.int184, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint184() {\n return this._addParam({ ty: ArgumentType.uint184, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt192() {\n return this._addParam({ ty: ArgumentType.int192, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint192() {\n return this._addParam({ ty: ArgumentType.uint192, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt200() {\n return this._addParam({ ty: ArgumentType.int200, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint200() {\n return this._addParam({ ty: ArgumentType.uint200, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt208() {\n return this._addParam({ ty: ArgumentType.int208, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint208() {\n return this._addParam({ ty: ArgumentType.uint208, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt216() {\n return this._addParam({ ty: ArgumentType.int216, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint216() {\n return this._addParam({ ty: ArgumentType.uint216, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt224() {\n return this._addParam({ ty: ArgumentType.int224, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint224() {\n return this._addParam({ ty: ArgumentType.uint224, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt232() {\n return this._addParam({ ty: ArgumentType.int232, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint232() {\n return this._addParam({ ty: ArgumentType.uint232, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt240() {\n return this._addParam({ ty: ArgumentType.int240, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint240() {\n return this._addParam({ ty: ArgumentType.uint240, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt248() {\n return this._addParam({ ty: ArgumentType.int248, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint248() {\n return this._addParam({ ty: ArgumentType.uint248, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt256() {\n return this._addParam({ ty: ArgumentType.int256, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint256() {\n return this._addParam({ ty: ArgumentType.uint256, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt8Array() {\n return this._addParam({ ty: ArgumentType.int8, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint8Array() {\n return this._addParam({ ty: ArgumentType.uint8, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt16Array() {\n return this._addParam({ ty: ArgumentType.int16, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint16Array() {\n return this._addParam({ ty: ArgumentType.uint16, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt24Array() {\n return this._addParam({ ty: ArgumentType.int24, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint24Array() {\n return this._addParam({ ty: ArgumentType.uint24, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt32Array() {\n return this._addParam({ ty: ArgumentType.int32, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint32Array() {\n return this._addParam({ ty: ArgumentType.uint32, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt40Array() {\n return this._addParam({ ty: ArgumentType.int40, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint40Array() {\n return this._addParam({ ty: ArgumentType.uint40, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt48Array() {\n return this._addParam({ ty: ArgumentType.int48, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint48Array() {\n return this._addParam({ ty: ArgumentType.uint48, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt56Array() {\n return this._addParam({ ty: ArgumentType.int56, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint56Array() {\n return this._addParam({ ty: ArgumentType.uint56, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt64Array() {\n return this._addParam({ ty: ArgumentType.int64, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint64Array() {\n return this._addParam({ ty: ArgumentType.uint64, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt72Array() {\n return this._addParam({ ty: ArgumentType.int72, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint72Array() {\n return this._addParam({ ty: ArgumentType.uint72, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt80Array() {\n return this._addParam({ ty: ArgumentType.int80, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint80Array() {\n return this._addParam({ ty: ArgumentType.uint80, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt88Array() {\n return this._addParam({ ty: ArgumentType.int88, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint88Array() {\n return this._addParam({ ty: ArgumentType.uint88, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt96Array() {\n return this._addParam({ ty: ArgumentType.int96, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint96Array() {\n return this._addParam({ ty: ArgumentType.uint96, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt104Array() {\n return this._addParam({ ty: ArgumentType.int104, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint104Array() {\n return this._addParam({ ty: ArgumentType.uint104, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt112Array() {\n return this._addParam({ ty: ArgumentType.int112, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint112Array() {\n return this._addParam({ ty: ArgumentType.uint112, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt120Array() {\n return this._addParam({ ty: ArgumentType.int120, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint120Array() {\n return this._addParam({ ty: ArgumentType.uint120, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt128Array() {\n return this._addParam({ ty: ArgumentType.int128, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint128Array() {\n return this._addParam({ ty: ArgumentType.uint128, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt136Array() {\n return this._addParam({ ty: ArgumentType.int136, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint136Array() {\n return this._addParam({ ty: ArgumentType.uint136, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt144Array() {\n return this._addParam({ ty: ArgumentType.int144, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint144Array() {\n return this._addParam({ ty: ArgumentType.uint144, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt152Array() {\n return this._addParam({ ty: ArgumentType.int152, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint152Array() {\n return this._addParam({ ty: ArgumentType.uint152, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt160Array() {\n return this._addParam({ ty: ArgumentType.int160, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint160Array() {\n return this._addParam({ ty: ArgumentType.uint160, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt168Array() {\n return this._addParam({ ty: ArgumentType.int168, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint168Array() {\n return this._addParam({ ty: ArgumentType.uint168, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt176Array() {\n return this._addParam({ ty: ArgumentType.int176, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint176Array() {\n return this._addParam({ ty: ArgumentType.uint176, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt184Array() {\n return this._addParam({ ty: ArgumentType.int184, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint184Array() {\n return this._addParam({ ty: ArgumentType.uint184, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt192Array() {\n return this._addParam({ ty: ArgumentType.int192, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint192Array() {\n return this._addParam({ ty: ArgumentType.uint192, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt200Array() {\n return this._addParam({ ty: ArgumentType.int200, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint200Array() {\n return this._addParam({ ty: ArgumentType.uint200, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt208Array() {\n return this._addParam({ ty: ArgumentType.int208, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint208Array() {\n return this._addParam({ ty: ArgumentType.uint208, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt216Array() {\n return this._addParam({ ty: ArgumentType.int216, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint216Array() {\n return this._addParam({ ty: ArgumentType.uint216, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt224Array() {\n return this._addParam({ ty: ArgumentType.int224, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint224Array() {\n return this._addParam({ ty: ArgumentType.uint224, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt232Array() {\n return this._addParam({ ty: ArgumentType.int232, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint232Array() {\n return this._addParam({ ty: ArgumentType.uint232, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt240Array() {\n return this._addParam({ ty: ArgumentType.int240, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint240Array() {\n return this._addParam({ ty: ArgumentType.uint240, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt248Array() {\n return this._addParam({ ty: ArgumentType.int248, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint248Array() {\n return this._addParam({ ty: ArgumentType.uint248, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addInt256Array() {\n return this._addParam({ ty: ArgumentType.int256, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addUint256Array() {\n return this._addParam({ ty: ArgumentType.uint256, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addBool() {\n return this._addParam({ ty: ArgumentType.bool, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addAddress() {\n return this._addParam({ ty: ArgumentType.address, array: false });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addAddressArray() {\n return this._addParam({ ty: ArgumentType.address, array: true });\n }\n\n /**\n * @returns {ContractFunctionSelector}\n */\n addFunction() {\n return this._addParam({ ty: ArgumentType.func, array: false });\n }\n\n /**\n * @param {SolidityType} ty\n * @returns {ContractFunctionSelector}\n */\n _addParam(ty) {\n if (this._paramTypes.length > 0) {\n this._params += \",\";\n }\n\n this._params += solidityTypeToString(ty);\n this._paramTypes.push(ty);\n\n return this;\n }\n\n /**\n * @param {string} [name]\n * @returns {Uint8Array}\n */\n _build(name) {\n if (name != null) {\n this._name = name;\n } else if (this._name == null) {\n throw new Error(\"`name` required for ContractFunctionSelector\");\n }\n\n const func = hex.encode(utf8.encode(this.toString()));\n return hex.decode(keccak256(`0x${func}`)).slice(0, 4);\n }\n\n /**\n * @returns {string}\n */\n toString() {\n return `${this._name != null ? this._name.toString() : \"\"}(${\n this._params\n })`;\n }\n}\n\n/**\n * @param {SolidityType} ty\n * @returns {string}\n */\nexport function solidityTypeToString(ty) {\n let s = \"\";\n switch (ty.ty) {\n case ArgumentType.uint8:\n s = \"uint8\";\n break;\n case ArgumentType.int8:\n s = \"int8\";\n break;\n case ArgumentType.uint16:\n s = \"uint16\";\n break;\n case ArgumentType.int16:\n s = \"int16\";\n break;\n case ArgumentType.uint24:\n s = \"uint24\";\n break;\n case ArgumentType.int24:\n s = \"int24\";\n break;\n case ArgumentType.uint32:\n s = \"uint32\";\n break;\n case ArgumentType.int32:\n s = \"int32\";\n break;\n case ArgumentType.uint40:\n s = \"uint40\";\n break;\n case ArgumentType.int40:\n s = \"int40\";\n break;\n case ArgumentType.uint48:\n s = \"uint48\";\n break;\n case ArgumentType.int48:\n s = \"int48\";\n break;\n case ArgumentType.uint56:\n s = \"uint56\";\n break;\n case ArgumentType.int56:\n s = \"int56\";\n break;\n case ArgumentType.uint64:\n s = \"uint64\";\n break;\n case ArgumentType.int64:\n s = \"int64\";\n break;\n case ArgumentType.uint72:\n s = \"uint72\";\n break;\n case ArgumentType.int72:\n s = \"int72\";\n break;\n case ArgumentType.uint80:\n s = \"uint80\";\n break;\n case ArgumentType.int80:\n s = \"int80\";\n break;\n case ArgumentType.uint88:\n s = \"uint88\";\n break;\n case ArgumentType.int88:\n s = \"int88\";\n break;\n case ArgumentType.uint96:\n s = \"uint96\";\n break;\n case ArgumentType.int96:\n s = \"int96\";\n break;\n case ArgumentType.uint104:\n s = \"uint104\";\n break;\n case ArgumentType.int104:\n s = \"int104\";\n break;\n case ArgumentType.uint112:\n s = \"uint112\";\n break;\n case ArgumentType.int112:\n s = \"int112\";\n break;\n case ArgumentType.uint120:\n s = \"uint120\";\n break;\n case ArgumentType.int120:\n s = \"int120\";\n break;\n case ArgumentType.uint128:\n s = \"uint128\";\n break;\n case ArgumentType.int128:\n s = \"int128\";\n break;\n case ArgumentType.uint136:\n s = \"uint136\";\n break;\n case ArgumentType.int136:\n s = \"int136\";\n break;\n case ArgumentType.uint144:\n s = \"uint144\";\n break;\n case ArgumentType.int144:\n s = \"int144\";\n break;\n case ArgumentType.uint152:\n s = \"uint152\";\n break;\n case ArgumentType.int152:\n s = \"int152\";\n break;\n case ArgumentType.uint160:\n s = \"uint160\";\n break;\n case ArgumentType.int160:\n s = \"int160\";\n break;\n case ArgumentType.uint168:\n s = \"uint168\";\n break;\n case ArgumentType.int168:\n s = \"int168\";\n break;\n case ArgumentType.uint176:\n s = \"uint176\";\n break;\n case ArgumentType.int176:\n s = \"int176\";\n break;\n case ArgumentType.uint184:\n s = \"uint184\";\n break;\n case ArgumentType.int184:\n s = \"int184\";\n break;\n case ArgumentType.uint192:\n s = \"uint192\";\n break;\n case ArgumentType.int192:\n s = \"int192\";\n break;\n case ArgumentType.uint200:\n s = \"uint200\";\n break;\n case ArgumentType.int200:\n s = \"int200\";\n break;\n case ArgumentType.uint208:\n s = \"uint208\";\n break;\n case ArgumentType.int208:\n s = \"int208\";\n break;\n case ArgumentType.uint216:\n s = \"uint216\";\n break;\n case ArgumentType.int216:\n s = \"int216\";\n break;\n case ArgumentType.uint224:\n s = \"uint224\";\n break;\n case ArgumentType.int224:\n s = \"int224\";\n break;\n case ArgumentType.uint232:\n s = \"uint232\";\n break;\n case ArgumentType.int232:\n s = \"int232\";\n break;\n case ArgumentType.uint240:\n s = \"uint240\";\n break;\n case ArgumentType.int240:\n s = \"int240\";\n break;\n case ArgumentType.uint248:\n s = \"uint248\";\n break;\n case ArgumentType.int248:\n s = \"int248\";\n break;\n case ArgumentType.uint256:\n s = \"uint256\";\n break;\n case ArgumentType.int256:\n s = \"int256\";\n break;\n case ArgumentType.string:\n s = \"string\";\n break;\n case ArgumentType.bool:\n s = \"bool\";\n break;\n case ArgumentType.bytes:\n s = \"bytes\";\n break;\n case ArgumentType.bytes32:\n s = \"bytes32\";\n break;\n case ArgumentType.address:\n s = \"address\";\n break;\n case ArgumentType.func:\n s = \"function\";\n break;\n default:\n s = \"\";\n break;\n }\n\n if (ty.array) {\n s += \"[]\";\n }\n\n return s;\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport ContractFunctionSelector, {\n ArgumentType,\n solidityTypeToString,\n} from \"./ContractFunctionSelector.js\";\nimport * as utf8 from \"../encoding/utf8.js\";\nimport * as hex from \"../encoding/hex.js\";\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport BigNumber from \"bignumber.js\";\nimport * as util from \"../util.js\";\nimport { defaultAbiCoder } from \"@ethersproject/abi\";\nimport { arrayify } from \"@ethersproject/bytes\";\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport EvmAddress from \"../EvmAddress.js\";\n\nexport default class ContractFunctionParameters {\n constructor() {\n /**\n * @type {ContractFunctionSelector}\n */\n this._selector = new ContractFunctionSelector();\n\n /**\n * @type {import(\"./ContractFunctionSelector.js\").Argument[]}\n */\n this._arguments = [];\n }\n\n /**\n * @param {string} value\n * @returns {ContractFunctionParameters}\n */\n addString(value) {\n this._selector.addString();\n return this._addParam(value, true);\n }\n\n /**\n * @param {string[]} value\n * @returns {ContractFunctionParameters}\n */\n addStringArray(value) {\n this._selector.addStringArray();\n return this._addParam(value, true);\n }\n\n /**\n * @param {Uint8Array} value\n * @returns {ContractFunctionParameters}\n */\n addBytes(value) {\n this._selector.addBytes();\n return this._addParam(value, true);\n }\n\n /**\n * @param {Uint8Array} value\n * @returns {ContractFunctionParameters}\n */\n addBytes32(value) {\n if (value.length !== 32) {\n throw new Error(\n `addBytes32 expected array to be of length 32, but received ${value.length}`,\n );\n }\n\n this._selector.addBytes32();\n return this._addParam(value, false);\n }\n\n /**\n * @param {Uint8Array[]} value\n * @returns {ContractFunctionParameters}\n */\n addBytesArray(value) {\n this._selector.addBytesArray();\n return this._addParam(value, true);\n }\n\n /**\n * @param {Uint8Array[]} value\n * @returns {ContractFunctionParameters}\n */\n addBytes32Array(value) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n for (const [_, entry] of value.entries()) {\n if (entry.length !== 32) {\n throw new Error(\n `addBytes32 expected array to be of length 32, but received ${entry.length}`,\n );\n }\n }\n\n this._selector.addBytes32Array();\n return this._addParam(value, true);\n }\n\n /**\n * @param {boolean} value\n * @returns {ContractFunctionParameters}\n */\n addBool(value) {\n this._selector.addBool();\n return this._addParam(value, false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addInt8(value) {\n this._selector.addInt8();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addUint8(value) {\n this._selector.addUint8();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addInt16(value) {\n this._selector.addInt16();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addUint16(value) {\n this._selector.addUint16();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addInt24(value) {\n this._selector.addInt24();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addUint24(value) {\n this._selector.addUint24();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addInt32(value) {\n this._selector.addInt32();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addUint32(value) {\n this._selector.addUint32();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addInt40(value) {\n this._selector.addInt40();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addUint40(value) {\n this._selector.addUint40();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addInt48(value) {\n this._selector.addInt48();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addUint48(value) {\n this._selector.addUint48();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addInt56(value) {\n this._selector.addInt56();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addUint56(value) {\n this._selector.addUint56();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addInt64(value) {\n this._selector.addInt64();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addUint64(value) {\n this._selector.addUint64();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addInt72(value) {\n this._selector.addInt72();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addUint72(value) {\n this._selector.addUint72();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addInt80(value) {\n this._selector.addInt80();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addUint80(value) {\n this._selector.addUint80();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addInt88(value) {\n this._selector.addInt88();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addUint88(value) {\n this._selector.addUint88();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addInt96(value) {\n this._selector.addInt96();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addUint96(value) {\n this._selector.addUint96();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addInt104(value) {\n this._selector.addInt104();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addUint104(value) {\n this._selector.addUint104();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addInt112(value) {\n this._selector.addInt112();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addUint112(value) {\n this._selector.addUint112();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addInt120(value) {\n this._selector.addInt120();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addUint120(value) {\n this._selector.addUint120();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addInt128(value) {\n this._selector.addInt128();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addUint128(value) {\n this._selector.addUint128();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addInt136(value) {\n this._selector.addInt136();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addUint136(value) {\n this._selector.addUint136();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addInt144(value) {\n this._selector.addInt144();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addUint144(value) {\n this._selector.addUint144();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addInt152(value) {\n this._selector.addInt152();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addUint152(value) {\n this._selector.addUint152();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addInt160(value) {\n this._selector.addInt160();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addUint160(value) {\n this._selector.addUint160();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addInt168(value) {\n this._selector.addInt168();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addUint168(value) {\n this._selector.addUint168();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addInt176(value) {\n this._selector.addInt176();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addUint176(value) {\n this._selector.addUint176();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addInt184(value) {\n this._selector.addInt184();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addUint184(value) {\n this._selector.addUint184();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addInt192(value) {\n this._selector.addInt192();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addUint192(value) {\n this._selector.addUint192();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addInt200(value) {\n this._selector.addInt200();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addUint200(value) {\n this._selector.addUint200();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addInt208(value) {\n this._selector.addInt208();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addUint208(value) {\n this._selector.addUint208();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addInt216(value) {\n this._selector.addInt216();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addUint216(value) {\n this._selector.addUint216();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addInt224(value) {\n this._selector.addInt224();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addUint224(value) {\n this._selector.addUint224();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addInt232(value) {\n this._selector.addInt232();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addUint232(value) {\n this._selector.addUint232();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addInt240(value) {\n this._selector.addInt240();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addUint240(value) {\n this._selector.addUint240();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addInt248(value) {\n this._selector.addInt248();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addUint248(value) {\n this._selector.addUint248();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addInt256(value) {\n this._selector.addInt256();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number | BigNumber | Long} value\n * @returns {ContractFunctionParameters}\n */\n addUint256(value) {\n this._selector.addUint256();\n return this._addParam(util.convertToBigNumber(value), false);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addInt8Array(value) {\n this._selector.addInt8Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addUint8Array(value) {\n this._selector.addUint8Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addInt16Array(value) {\n this._selector.addInt16Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addUint16Array(value) {\n this._selector.addUint16Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addInt24Array(value) {\n this._selector.addInt24Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addUint24Array(value) {\n this._selector.addUint24Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addInt32Array(value) {\n this._selector.addInt32Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addUint32Array(value) {\n this._selector.addUint32Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addInt40Array(value) {\n this._selector.addInt40Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addUint40Array(value) {\n this._selector.addUint40Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addInt48Array(value) {\n this._selector.addInt48Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addUint48Array(value) {\n this._selector.addUint48Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addInt56Array(value) {\n this._selector.addInt56Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addUint56Array(value) {\n this._selector.addUint56Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addInt64Array(value) {\n this._selector.addInt64Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addUint64Array(value) {\n this._selector.addUint64Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addInt72Array(value) {\n this._selector.addInt72Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addUint72Array(value) {\n this._selector.addUint72Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addInt80Array(value) {\n this._selector.addInt80Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addUint80Array(value) {\n this._selector.addUint80Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addInt88Array(value) {\n this._selector.addInt88Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addUint88Array(value) {\n this._selector.addUint88Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addInt96Array(value) {\n this._selector.addInt96Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addUint96Array(value) {\n this._selector.addUint96Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addInt104Array(value) {\n this._selector.addInt104Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addUint104Array(value) {\n this._selector.addUint104Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addInt112Array(value) {\n this._selector.addInt112Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addUint112Array(value) {\n this._selector.addUint112Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addInt120Array(value) {\n this._selector.addInt120Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addUint120Array(value) {\n this._selector.addUint120Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addInt128Array(value) {\n this._selector.addInt128Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addUint128Array(value) {\n this._selector.addUint128Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addInt136Array(value) {\n this._selector.addInt136Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addUint136Array(value) {\n this._selector.addUint136Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addInt144Array(value) {\n this._selector.addInt144Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addUint144Array(value) {\n this._selector.addUint144Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addInt152Array(value) {\n this._selector.addInt152Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addUint152Array(value) {\n this._selector.addUint152Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addInt160Array(value) {\n this._selector.addInt160Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addUint160Array(value) {\n this._selector.addUint160Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addInt168Array(value) {\n this._selector.addInt168Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addUint168Array(value) {\n this._selector.addUint168Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addInt176Array(value) {\n this._selector.addInt176Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addUint176Array(value) {\n this._selector.addUint176Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addInt184Array(value) {\n this._selector.addInt184Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addUint184Array(value) {\n this._selector.addUint184Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addInt192Array(value) {\n this._selector.addInt192Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addUint192Array(value) {\n this._selector.addUint192Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addInt200Array(value) {\n this._selector.addInt200Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addUint200Array(value) {\n this._selector.addUint200Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addInt208Array(value) {\n this._selector.addInt208Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addUint208Array(value) {\n this._selector.addUint208Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addInt216Array(value) {\n this._selector.addInt216Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addUint216Array(value) {\n this._selector.addUint216Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addInt224Array(value) {\n this._selector.addInt224Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addUint224Array(value) {\n this._selector.addUint224Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addInt232Array(value) {\n this._selector.addInt232Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addUint232Array(value) {\n this._selector.addUint232Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addInt240Array(value) {\n this._selector.addInt240Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addUint240Array(value) {\n this._selector.addUint240Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addInt248Array(value) {\n this._selector.addInt248Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addUint248Array(value) {\n this._selector.addUint248Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addInt256Array(value) {\n this._selector.addInt256Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {number[] | BigNumber[] | Long[]} value\n * @returns {ContractFunctionParameters}\n */\n addUint256Array(value) {\n this._selector.addUint256Array();\n return this._addParam(util.convertToBigNumberArray(value), true);\n }\n\n /**\n * @param {string | EvmAddress} value\n * @returns {ContractFunctionParameters}\n */\n addAddress(value) {\n let address;\n if (typeof value === \"string\") {\n // Allow `0x` prefix\n if (value.length !== 40 && value.length !== 42) {\n throw new Error(\n \"`address` type requires parameter to be 40 or 42 characters\",\n );\n }\n address = value;\n } else {\n address = value.toString();\n }\n\n const par =\n address.length === 40\n ? hex.decode(address)\n : hex.decode(address.substring(2));\n\n this._selector.addAddress();\n\n return this._addParam(par, false);\n }\n\n /**\n * @param {string[] | EvmAddress[]} value\n * @returns {ContractFunctionParameters}\n */\n addAddressArray(value) {\n /**\n * @type {Uint8Array[]}\n */\n const par = [];\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n for (const [_, entry] of value.entries()) {\n let address;\n if (typeof entry === \"string\") {\n if (entry.length !== 40 && entry.length !== 42) {\n throw new Error(\n \"`address` type requires parameter to be 40 or 42 characters\",\n );\n }\n address = entry;\n } else {\n address = entry.toString();\n }\n\n const buf =\n address.length === 40\n ? hex.decode(address)\n : hex.decode(address.substring(2));\n\n par.push(buf);\n }\n\n this._selector.addAddressArray();\n\n return this._addParam(par, true);\n }\n\n /**\n * @param {string} address\n * @param {ContractFunctionSelector} selector\n * @returns {ContractFunctionParameters}\n */\n addFunction(address, selector) {\n const addressParam = hex.decode(address);\n const functionSelector = selector._build();\n\n if (addressParam.length !== 20) {\n throw new Error(\n \"`function` type requires parameter `address` to be exactly 20 bytes\",\n );\n }\n\n this._selector.addFunction();\n\n const proto = new Uint8Array(24);\n proto.set(addressParam, 0);\n proto.set(functionSelector, 20);\n\n return this._addParam(proto, false);\n }\n\n /**\n * @internal\n * @param {string | boolean | number | Uint8Array | BigNumber | string[] | boolean[] | number[] | Uint8Array[] | BigNumber[]} param\n * @param {boolean} dynamic\n * @returns {ContractFunctionParameters}\n */\n _addParam(param, dynamic) {\n const index = this._selector._paramTypes.length - 1;\n const value = argumentToBytes(param, this._selector._paramTypes[index]);\n\n this._arguments.push({ dynamic, value });\n return this;\n }\n\n /**\n * @internal\n * @param {string=} name\n * @returns {Uint8Array}\n */\n _build(name) {\n const includeId = name != null;\n const nameOffset = includeId ? 4 : 0;\n\n const length =\n this._arguments.length === 0\n ? nameOffset\n : this._arguments.length * 32 +\n this._arguments\n .map((arg) => (arg.dynamic ? arg.value.length : 0))\n .reduce((sum, value) => sum + value) +\n nameOffset;\n\n const func = new Uint8Array(length);\n\n if (includeId) {\n func.set(this._selector._build(name), 0);\n }\n\n let offset = 32 * this._arguments.length;\n\n for (const [i, { dynamic, value }] of this._arguments.entries()) {\n if (dynamic) {\n const view = util.safeView(func, nameOffset + i * 32 + 28);\n view.setUint32(0, offset);\n func.set(value, view.getUint32(0) + nameOffset);\n offset += value.length;\n } else {\n func.set(value, nameOffset + i * 32);\n }\n }\n\n return func;\n }\n}\n\n/**\n * @param {string | boolean | number | Uint8Array | BigNumber | string[] | boolean[] | number[] | Uint8Array[] | BigNumber[]} param\n * @param {import(\"./ContractFunctionSelector.js\").SolidityType} ty\n * @returns {Uint8Array}\n */\nfunction argumentToBytes(param, ty) {\n let value = new Uint8Array(32);\n let valueView = util.safeView(value);\n /** @type {Uint8Array} */\n let par;\n\n if (ty.array) {\n if (!Array.isArray(param)) {\n throw new TypeError(\n \"SolidityType indicates type is array, but parameter is not an array\",\n );\n }\n\n /**\n * @type {Uint8Array[]}\n */\n const values = [];\n\n // Generic over any type of array\n // Destructuring required so the first variable must be assigned\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n for (const [_, p] of param.entries()) {\n const arg = argumentToBytes(p, { ty: ty.ty, array: false });\n values.push(arg);\n }\n\n const totalLengthOfValues = values\n .map((a) => a.length)\n .reduce((total, current) => total + current, 0);\n\n switch (ty.ty) {\n case ArgumentType.uint8:\n case ArgumentType.int8:\n case ArgumentType.uint16:\n case ArgumentType.int16:\n case ArgumentType.uint24:\n case ArgumentType.int24:\n case ArgumentType.uint32:\n case ArgumentType.int32:\n case ArgumentType.uint40:\n case ArgumentType.int40:\n case ArgumentType.uint48:\n case ArgumentType.int48:\n case ArgumentType.uint56:\n case ArgumentType.int56:\n case ArgumentType.uint64:\n case ArgumentType.int64:\n case ArgumentType.uint72:\n case ArgumentType.int72:\n case ArgumentType.uint80:\n case ArgumentType.int80:\n case ArgumentType.uint88:\n case ArgumentType.int88:\n case ArgumentType.uint96:\n case ArgumentType.int96:\n case ArgumentType.uint104:\n case ArgumentType.int104:\n case ArgumentType.uint112:\n case ArgumentType.int112:\n case ArgumentType.uint120:\n case ArgumentType.int120:\n case ArgumentType.uint128:\n case ArgumentType.int128:\n case ArgumentType.uint136:\n case ArgumentType.int136:\n case ArgumentType.uint144:\n case ArgumentType.int144:\n case ArgumentType.uint152:\n case ArgumentType.int152:\n case ArgumentType.uint160:\n case ArgumentType.int160:\n case ArgumentType.uint168:\n case ArgumentType.int168:\n case ArgumentType.uint176:\n case ArgumentType.int176:\n case ArgumentType.uint184:\n case ArgumentType.int184:\n case ArgumentType.uint192:\n case ArgumentType.int192:\n case ArgumentType.uint200:\n case ArgumentType.int200:\n case ArgumentType.uint208:\n case ArgumentType.int208:\n case ArgumentType.uint216:\n case ArgumentType.int216:\n case ArgumentType.uint224:\n case ArgumentType.int224:\n case ArgumentType.uint232:\n case ArgumentType.int232:\n case ArgumentType.uint240:\n case ArgumentType.int240:\n case ArgumentType.uint248:\n case ArgumentType.int248:\n case ArgumentType.uint256:\n case ArgumentType.int256:\n case ArgumentType.bool:\n case ArgumentType.bytes32:\n case ArgumentType.address:\n case ArgumentType.func:\n value = new Uint8Array(totalLengthOfValues + 32);\n break;\n case ArgumentType.bytes:\n case ArgumentType.string:\n value = new Uint8Array(\n values.length * 32 + totalLengthOfValues + 32,\n );\n break;\n default:\n throw new TypeError(\n `Expected param type to be ArgumentType, but received ${ty.ty}`,\n );\n }\n\n valueView = util.safeView(value, 28);\n valueView.setUint32(0, values.length);\n\n let offset = 32 * values.length;\n\n for (const [i, e] of values.entries()) {\n switch (ty.ty) {\n case ArgumentType.uint8:\n case ArgumentType.int8:\n case ArgumentType.uint16:\n case ArgumentType.int16:\n case ArgumentType.uint24:\n case ArgumentType.int24:\n case ArgumentType.uint32:\n case ArgumentType.int32:\n case ArgumentType.uint40:\n case ArgumentType.int40:\n case ArgumentType.uint48:\n case ArgumentType.int48:\n case ArgumentType.uint56:\n case ArgumentType.int56:\n case ArgumentType.uint64:\n case ArgumentType.int64:\n case ArgumentType.uint72:\n case ArgumentType.int72:\n case ArgumentType.uint80:\n case ArgumentType.int80:\n case ArgumentType.uint88:\n case ArgumentType.int88:\n case ArgumentType.uint96:\n case ArgumentType.int96:\n case ArgumentType.uint104:\n case ArgumentType.int104:\n case ArgumentType.uint112:\n case ArgumentType.int112:\n case ArgumentType.uint120:\n case ArgumentType.int120:\n case ArgumentType.uint128:\n case ArgumentType.int128:\n case ArgumentType.uint136:\n case ArgumentType.int136:\n case ArgumentType.uint144:\n case ArgumentType.int144:\n case ArgumentType.uint152:\n case ArgumentType.int152:\n case ArgumentType.uint160:\n case ArgumentType.int160:\n case ArgumentType.uint168:\n case ArgumentType.int168:\n case ArgumentType.uint176:\n case ArgumentType.int176:\n case ArgumentType.uint184:\n case ArgumentType.int184:\n case ArgumentType.uint192:\n case ArgumentType.int192:\n case ArgumentType.uint200:\n case ArgumentType.int200:\n case ArgumentType.uint208:\n case ArgumentType.int208:\n case ArgumentType.uint216:\n case ArgumentType.int216:\n case ArgumentType.uint224:\n case ArgumentType.int224:\n case ArgumentType.uint232:\n case ArgumentType.int232:\n case ArgumentType.uint240:\n case ArgumentType.int240:\n case ArgumentType.uint248:\n case ArgumentType.int248:\n case ArgumentType.uint256:\n case ArgumentType.int256:\n case ArgumentType.bool:\n case ArgumentType.bytes32:\n case ArgumentType.address:\n case ArgumentType.func:\n value.set(e, i * 32 + 32);\n break;\n case ArgumentType.bytes:\n case ArgumentType.string:\n // eslint-disable-next-line no-case-declarations\n const view = util.safeView(value, (i + 1) * 32 + 28);\n view.setUint32(0, offset);\n value.set(e, view.getUint32(0) + 32);\n offset += e.length;\n break;\n default:\n throw new TypeError(\n `Expected param type to be ArgumentType, but received ${ty.ty}`,\n );\n }\n }\n\n return value;\n }\n\n switch (ty.ty) {\n case ArgumentType.uint8:\n case ArgumentType.int8:\n case ArgumentType.uint16:\n case ArgumentType.int16:\n case ArgumentType.uint24:\n case ArgumentType.int24:\n case ArgumentType.uint32:\n case ArgumentType.int32:\n case ArgumentType.uint40:\n case ArgumentType.int40:\n case ArgumentType.uint48:\n case ArgumentType.int48:\n case ArgumentType.uint56:\n case ArgumentType.int56:\n case ArgumentType.uint64:\n case ArgumentType.int64:\n case ArgumentType.uint72:\n case ArgumentType.int72:\n case ArgumentType.uint80:\n case ArgumentType.int80:\n case ArgumentType.uint88:\n case ArgumentType.int88:\n case ArgumentType.uint96:\n case ArgumentType.int96:\n case ArgumentType.uint104:\n case ArgumentType.int104:\n case ArgumentType.uint112:\n case ArgumentType.int112:\n case ArgumentType.uint120:\n case ArgumentType.int120:\n case ArgumentType.uint128:\n case ArgumentType.int128:\n case ArgumentType.uint136:\n case ArgumentType.int136:\n case ArgumentType.uint144:\n case ArgumentType.int144:\n case ArgumentType.uint152:\n case ArgumentType.int152:\n case ArgumentType.uint160:\n case ArgumentType.int160:\n case ArgumentType.uint168:\n case ArgumentType.int168:\n case ArgumentType.uint176:\n case ArgumentType.int176:\n case ArgumentType.uint184:\n case ArgumentType.int184:\n case ArgumentType.uint192:\n case ArgumentType.int192:\n case ArgumentType.uint200:\n case ArgumentType.int200:\n case ArgumentType.uint208:\n case ArgumentType.int208:\n case ArgumentType.uint216:\n case ArgumentType.int216:\n case ArgumentType.uint224:\n case ArgumentType.int224:\n case ArgumentType.uint232:\n case ArgumentType.int232:\n case ArgumentType.uint240:\n case ArgumentType.int240:\n case ArgumentType.uint248:\n case ArgumentType.int248:\n case ArgumentType.int256:\n case ArgumentType.uint256: {\n let paramToHex = param.toString(16);\n\n // @ts-ignore\n if (param > 0 || param == 0) {\n paramToHex = \"0x\" + paramToHex;\n } else {\n paramToHex =\n paramToHex.slice(0, 1) + \"0x\" + paramToHex.slice(1);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call\n const encodedData = defaultAbiCoder.encode(\n [solidityTypeToString(ty)],\n [paramToHex],\n );\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n const dataToArrayify = arrayify(encodedData);\n return dataToArrayify;\n }\n case ArgumentType.address:\n value.set(/** @type {Uint8Array} */ (param), 32 - 20);\n return value;\n case ArgumentType.bool:\n value[31] = /** @type {boolean} */ (param) ? 1 : 0;\n return value;\n case ArgumentType.func:\n value.set(/** @type {Uint8Array} */ (param), 32 - 24);\n return value;\n case ArgumentType.bytes32:\n value.set(/** @type {Uint8Array} */ (param), 0);\n return value;\n // Bytes should have not the length already encoded\n // JS String type is encoded as UTF-16 whilst Solidity `string` type is UTF-8 encoded.\n // So if will assume is already correctly updated to being a Uint8Array of UTF-8 string\n case ArgumentType.bytes:\n case ArgumentType.string: {\n // If value is of type string, encode it in UTF-8 format and conver it to Uint8Array\n // Required because JS Strings are UTF-16\n // eslint-disable-next-line no-case-declarations\n par =\n param instanceof Uint8Array\n ? param\n : utf8.encode(/** @type {string} */ (param));\n\n // Resize value to a 32 byte boundary if needed\n if (Math.floor(par.length / 32) >= 0) {\n if (Math.floor(par.length % 32) !== 0) {\n value = new Uint8Array(\n (Math.floor(par.length / 32) + 1) * 32 + 32,\n );\n } else {\n value = new Uint8Array(\n Math.floor(par.length / 32) * 32 + 32,\n );\n }\n } else {\n value = new Uint8Array(64);\n }\n\n value.set(par, 32);\n\n valueView = util.safeView(value, 28);\n valueView.setUint32(0, par.length);\n return value;\n }\n default:\n throw new Error(`Unsupported argument type: ${ty.toString()}`);\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Query, { QUERY_REGISTRY } from \"../query/Query.js\";\nimport ContractId from \"./ContractId.js\";\nimport AccountId from \"../account/AccountId.js\";\nimport ContractFunctionParameters from \"./ContractFunctionParameters.js\";\nimport ContractFunctionResult from \"./ContractFunctionResult.js\";\nimport Long from \"long\";\nimport * as HashgraphProto from \"@hashgraph/proto\";\nimport PrecheckStatusError from \"../PrecheckStatusError.js\";\nimport Status from \"../Status.js\";\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n */\n\n/**\n * @typedef {object} FunctionParameters\n * @property {ContractFunctionParameters} parameters\n * @property {string} name\n */\n\n/**\n * @augments {Query}\n */\nexport default class ContractCallQuery extends Query {\n /**\n * @param {object} [props]\n * @param {ContractId | string} [props.contractId]\n * @param {number | Long} [props.gas]\n * @param {FunctionParameters | Uint8Array} [props.functionParameters]\n * @param {number | Long} [props.maxResultSize]\n * @param {AccountId | string} [props.senderAccountId]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {?ContractId}\n */\n this._contractId = null;\n if (props.contractId != null) {\n this.setContractId(props.contractId);\n }\n\n /**\n * @private\n * @type {?Long}\n */\n this._gas = null;\n if (props.gas != null) {\n this.setGas(props.gas);\n }\n\n /**\n * @private\n * @type {?Uint8Array}\n */\n this._functionParameters = null;\n if (props.functionParameters != null) {\n if (props.functionParameters instanceof Uint8Array) {\n this.setFunctionParameters(props.functionParameters);\n } else {\n this.setFunction(\n props.functionParameters.name,\n props.functionParameters.parameters,\n );\n }\n }\n\n /**\n * @private\n * @type {?Long}\n */\n this._maxResultSize = null;\n if (props.maxResultSize != null) {\n this.setMaxResultSize(props.maxResultSize);\n }\n\n /**\n * @private\n * @type {?AccountId}\n */\n this._senderAccountId = null;\n if (props.senderAccountId != null) {\n this.setSenderAccountId(props.senderAccountId);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.IQuery} query\n * @returns {ContractCallQuery}\n */\n static _fromProtobuf(query) {\n const call =\n /** @type {HashgraphProto.proto.IContractCallLocalQuery} */ (\n query.contractCallLocal\n );\n\n return new ContractCallQuery({\n contractId:\n call.contractID != null\n ? ContractId._fromProtobuf(call.contractID)\n : undefined,\n gas: call.gas != null ? call.gas : undefined,\n functionParameters:\n call.functionParameters != null\n ? call.functionParameters\n : undefined,\n maxResultSize:\n call.maxResultSize != null ? call.maxResultSize : undefined,\n });\n }\n\n /**\n * @returns {?ContractId}\n */\n get contractId() {\n return this._contractId;\n }\n\n /**\n * Set the contract ID for which the call is being requested.\n *\n * @param {ContractId | string} contractId\n * @returns {ContractCallQuery}\n */\n setContractId(contractId) {\n this._contractId =\n typeof contractId === \"string\"\n ? ContractId.fromString(contractId)\n : contractId.clone();\n\n return this;\n }\n\n /**\n * @returns {?Long}\n */\n get gas() {\n return this._gas;\n }\n\n /**\n * @param {number | Long} gas\n * @returns {ContractCallQuery}\n */\n setGas(gas) {\n this._gas = gas instanceof Long ? gas : Long.fromValue(gas);\n return this;\n }\n\n /**\n * @returns {?AccountId}\n */\n get senderAccountId() {\n return this._senderAccountId;\n }\n\n /**\n * @param {AccountId | string} senderAccountId\n * @returns {ContractCallQuery}\n */\n setSenderAccountId(senderAccountId) {\n this._senderAccountId =\n typeof senderAccountId === \"string\"\n ? AccountId.fromString(senderAccountId)\n : senderAccountId;\n return this;\n }\n\n /**\n * @returns {?Uint8Array}\n */\n get functionParameters() {\n return this._functionParameters;\n }\n\n /**\n * @param {Uint8Array} params\n * @returns {ContractCallQuery}\n */\n setFunctionParameters(params) {\n this._functionParameters = params;\n return this;\n }\n\n /**\n * @param {string} name\n * @param {?ContractFunctionParameters} [params]\n * @returns {ContractCallQuery}\n */\n setFunction(name, params) {\n this._functionParameters = (\n params != null ? params : new ContractFunctionParameters()\n )._build(name);\n\n return this;\n }\n\n /**\n * @param {number | Long} size\n * @returns {ContractCallQuery}\n */\n setMaxResultSize(size) {\n this._maxResultSize =\n size instanceof Long ? size : Long.fromValue(size);\n return this;\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (this._contractId != null) {\n this._contractId.validateChecksum(client);\n }\n }\n\n /**\n * @override\n * @internal\n * @param {HashgraphProto.proto.IQuery} request\n * @param {HashgraphProto.proto.IResponse} response\n * @param {AccountId} nodeId\n * @returns {Error}\n */\n _mapStatusError(request, response, nodeId) {\n const { nodeTransactionPrecheckCode } =\n this._mapResponseHeader(response);\n\n const status = Status._fromCode(\n nodeTransactionPrecheckCode != null\n ? nodeTransactionPrecheckCode\n : HashgraphProto.proto.ResponseCodeEnum.OK,\n );\n\n const call =\n /**\n *@type {HashgraphProto.proto.IContractCallLocalResponse}\n */\n (response.contractCallLocal);\n if (!call.functionResult) {\n return new PrecheckStatusError({\n nodeId,\n status,\n transactionId: this._getTransactionId(),\n contractFunctionResult: null,\n });\n }\n\n const contractFunctionResult = this._mapResponseSync(response);\n\n return new PrecheckStatusError({\n nodeId,\n status,\n transactionId: this._getTransactionId(),\n contractFunctionResult,\n });\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.IQuery} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.smartContract.contractCallLocalMethod(request);\n }\n\n /**\n * @override\n * @internal\n * @param {HashgraphProto.proto.IResponse} response\n * @returns {HashgraphProto.proto.IResponseHeader}\n */\n _mapResponseHeader(response) {\n const contractCallLocal =\n /** @type {HashgraphProto.proto.IContractCallLocalResponse} */ (\n response.contractCallLocal\n );\n return /** @type {HashgraphProto.proto.IResponseHeader} */ (\n contractCallLocal.header\n );\n }\n\n /**\n * @protected\n * @override\n * @param {HashgraphProto.proto.IResponse} response\n * @returns {Promise}\n */\n _mapResponse(response) {\n const call =\n /**\n *@type {HashgraphProto.proto.IContractCallLocalResponse}\n */\n (response.contractCallLocal);\n\n return Promise.resolve(\n ContractFunctionResult._fromProtobuf(\n /**\n * @type {HashgraphProto.proto.IContractFunctionResult}\n */\n (call.functionResult),\n false,\n ),\n );\n }\n\n /**\n * @private\n * @param {HashgraphProto.proto.IResponse} response\n * @returns {ContractFunctionResult}\n */\n _mapResponseSync(response) {\n const call =\n /**\n *@type {HashgraphProto.proto.IContractCallLocalResponse}\n */\n (response.contractCallLocal);\n\n return ContractFunctionResult._fromProtobuf(\n /**\n * @type {HashgraphProto.proto.IContractFunctionResult}\n */\n (call.functionResult),\n false,\n );\n }\n\n /**\n * @override\n * @internal\n * @param {HashgraphProto.proto.IQueryHeader} header\n * @returns {HashgraphProto.proto.IQuery}\n */\n _onMakeRequest(header) {\n return {\n contractCallLocal: {\n header,\n contractID:\n this._contractId != null\n ? this._contractId._toProtobuf()\n : null,\n gas: this._gas,\n maxResultSize: this._maxResultSize,\n functionParameters: this._functionParameters,\n senderId:\n this._senderAccountId != null\n ? this._senderAccountId._toProtobuf()\n : null,\n },\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp =\n this._paymentTransactionId != null &&\n this._paymentTransactionId.validStart != null\n ? this._paymentTransactionId.validStart\n : this._timestamp;\n\n return `ContractCallQuery:${timestamp.toString()}`;\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/unbound-method\nQUERY_REGISTRY.set(\"contractCallLocal\", ContractCallQuery._fromProtobuf);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Hbar from \"../Hbar.js\";\nimport Transaction, {\n TRANSACTION_REGISTRY,\n DEFAULT_AUTO_RENEW_PERIOD,\n} from \"../transaction/Transaction.js\";\nimport * as utf8 from \"../encoding/utf8.js\";\nimport Timestamp from \"../Timestamp.js\";\nimport Key from \"../Key.js\";\nimport KeyList from \"../KeyList.js\";\nimport Long from \"long\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HashgraphProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HashgraphProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HashgraphProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} HashgraphProto.proto.ITransactionResponse\n * @typedef {import(\"@hashgraph/proto\").proto.IFileCreateTransactionBody} HashgraphProto.proto.IFileCreateTransactionBody\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../account/AccountId.js\").default} AccountId\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n */\n\n/**\n * Create a new Hedera™ crypto-currency file.\n */\nexport default class FileCreateTransaction extends Transaction {\n /**\n * @param {object} [props]\n * @param {Key[] | KeyList} [props.keys]\n * @param {Timestamp | Date} [props.expirationTime]\n * @param {Uint8Array | string} [props.contents]\n * @param {string} [props.fileMemo]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {?Key[]}\n */\n this._keys = null;\n\n /**\n * @private\n * @type {Timestamp}\n */\n this._expirationTime = new Timestamp(0, 0).plusNanos(\n Long.fromNumber(Date.now())\n .mul(1000000)\n .add(DEFAULT_AUTO_RENEW_PERIOD.mul(1000000000)),\n );\n\n /**\n * @private\n * @type {?Uint8Array}\n */\n this._contents = null;\n\n /**\n * @private\n * @type {?string}\n */\n this._fileMemo = null;\n\n this._defaultMaxTransactionFee = new Hbar(5);\n\n if (props.keys != null) {\n this.setKeys(props.keys);\n }\n\n if (props.expirationTime != null) {\n this.setExpirationTime(props.expirationTime);\n }\n\n if (props.contents != null) {\n this.setContents(props.contents);\n }\n\n if (props.fileMemo && props.fileMemo != null) {\n this.setFileMemo(props.fileMemo);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransaction[]} transactions\n * @param {HashgraphProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HashgraphProto.proto.ITransactionBody[]} bodies\n * @returns {FileCreateTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const create =\n /** @type {HashgraphProto.proto.IFileCreateTransactionBody} */ (\n body.fileCreate\n );\n\n return Transaction._fromProtobufTransactions(\n new FileCreateTransaction({\n keys:\n create.keys != null\n ? create.keys.keys != null\n ? create.keys.keys.map((key) =>\n Key._fromProtobufKey(key),\n )\n : undefined\n : undefined,\n expirationTime:\n create.expirationTime != null\n ? Timestamp._fromProtobuf(create.expirationTime)\n : undefined,\n contents: create.contents != null ? create.contents : undefined,\n fileMemo: create.memo != null ? create.memo : undefined,\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @returns {?Key[]}\n */\n get keys() {\n return this._keys;\n }\n\n /**\n * Set the keys which must sign any transactions modifying this file. Required.\n *\n * All keys must sign to modify the file's contents or keys. No key is required\n * to sign for extending the expiration time (except the one for the operator account\n * paying for the transaction). Only one key must sign to delete the file, however.\n *\n * To require more than one key to sign to delete a file, add them to a\n * KeyList and pass that here.\n *\n * The network currently requires a file to have at least one key (or key list or threshold key)\n * but this requirement may be lifted in the future.\n *\n * @param {Key[] | KeyList} keys\n * @returns {this}\n */\n setKeys(keys) {\n this._requireNotFrozen();\n if (keys instanceof KeyList && keys.threshold != null) {\n throw new Error(\"Cannot set threshold key as file key\");\n }\n\n this._keys = keys instanceof KeyList ? keys.toArray() : keys;\n\n return this;\n }\n\n /**\n * @returns {Timestamp}\n */\n get expirationTime() {\n return this._expirationTime;\n }\n\n /**\n * Set the instant at which this file will expire, after which its contents will no longer be\n * available.\n *\n * Defaults to 1/4 of a Julian year from the instant FileCreateTransaction\n * was invoked.\n *\n * May be extended using FileUpdateTransaction#setExpirationTime(Timestamp).\n *\n * @param {Timestamp | Date} expirationTime\n * @returns {this}\n */\n setExpirationTime(expirationTime) {\n this._requireNotFrozen();\n this._expirationTime =\n expirationTime instanceof Timestamp\n ? expirationTime\n : Timestamp.fromDate(expirationTime);\n\n return this;\n }\n\n /**\n * @returns {?Uint8Array}\n */\n get contents() {\n return this._contents;\n }\n\n /**\n * Set the given byte array as the file's contents.\n *\n * This may be omitted to create an empty file.\n *\n * Note that total size for a given transaction is limited to 6KiB (as of March 2020) by the\n * network; if you exceed this you may receive a HederaPreCheckStatusException\n * with Status#TransactionOversize.\n *\n * In this case, you will need to break the data into chunks of less than ~6KiB and execute this\n * transaction with the first chunk and then use FileAppendTransaction with\n * FileAppendTransaction#setContents(Uint8Array) for the remaining chunks.\n *\n * @param {Uint8Array | string} contents\n * @returns {this}\n */\n setContents(contents) {\n this._requireNotFrozen();\n this._contents =\n contents instanceof Uint8Array ? contents : utf8.encode(contents);\n\n return this;\n }\n\n /**\n * @returns {?string}\n */\n get fileMemo() {\n return this._fileMemo;\n }\n\n /**\n * @param {string} memo\n * @returns {this}\n */\n setFileMemo(memo) {\n this._requireNotFrozen();\n this._fileMemo = memo;\n\n return this;\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.file.createFile(request);\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"fileCreate\";\n }\n\n /**\n * @override\n * @protected\n * @returns {HashgraphProto.proto.IFileCreateTransactionBody}\n */\n _makeTransactionData() {\n return {\n keys:\n this._keys != null\n ? {\n keys: this._keys.map((key) => key._toProtobufKey()),\n }\n : null,\n expirationTime: this._expirationTime._toProtobuf(),\n contents: this._contents,\n memo: this._fileMemo,\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `FileCreateTransaction:${timestamp.toString()}`;\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/unbound-method\nTRANSACTION_REGISTRY.set(\"fileCreate\", FileCreateTransaction._fromProtobuf);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Hbar from \"../Hbar.js\";\nimport Transaction, {\n TRANSACTION_REGISTRY,\n} from \"../transaction/Transaction.js\";\nimport * as utf8 from \"../encoding/utf8.js\";\nimport FileId from \"./FileId.js\";\nimport TransactionId from \"../transaction/TransactionId.js\";\nimport Timestamp from \"../Timestamp.js\";\nimport List from \"../transaction/List.js\";\nimport AccountId from \"../account/AccountId.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HashgraphProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HashgraphProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HashgraphProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} HashgraphProto.proto.ITransactionResponse\n * @typedef {import(\"@hashgraph/proto\").proto.IFileAppendTransactionBody} HashgraphProto.proto.IFileAppendTransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.IFileID} HashgraphProto.proto.IFileID\n */\n\n/**\n * @typedef {import(\"../PublicKey.js\").default} PublicKey\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default} Client\n * @typedef {import(\"../transaction/TransactionResponse.js\").default} TransactionResponse\n * @typedef {import(\"../schedule/ScheduleCreateTransaction.js\").default} ScheduleCreateTransaction\n */\n\n/**\n * A transaction specifically to append data to a file on the network.\n *\n * If a file has multiple keys, all keys must sign to modify its contents.\n */\nexport default class FileAppendTransaction extends Transaction {\n /**\n * @param {object} [props]\n * @param {FileId | string} [props.fileId]\n * @param {Uint8Array | string} [props.contents]\n * @param {number} [props.maxChunks]\n * @param {number} [props.chunkSize]\n * @param {number} [props.chunkInterval]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {?FileId}\n */\n this._fileId = null;\n\n /**\n * @private\n * @type {?Uint8Array}\n */\n this._contents = null;\n\n /**\n * @private\n * @type {number}\n */\n this._maxChunks = 20;\n\n /**\n * @private\n * @type {number}\n */\n this._chunkSize = 4096;\n\n /**\n * @private\n * @type {number}\n */\n this._chunkInterval = 10;\n\n this._defaultMaxTransactionFee = new Hbar(5);\n\n if (props.fileId != null) {\n this.setFileId(props.fileId);\n }\n\n if (props.contents != null) {\n this.setContents(props.contents);\n }\n\n if (props.maxChunks != null) {\n this.setMaxChunks(props.maxChunks);\n }\n\n if (props.chunkSize != null) {\n this.setChunkSize(props.chunkSize);\n }\n\n if (props.chunkInterval != null) {\n this.setChunkInterval(props.chunkInterval);\n }\n\n /** @type {List} */\n this._transactionIds = new List();\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransaction[]} transactions\n * @param {HashgraphProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HashgraphProto.proto.ITransactionBody[]} bodies\n * @returns {FileAppendTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const append =\n /** @type {HashgraphProto.proto.IFileAppendTransactionBody} */ (\n body.fileAppend\n );\n\n let contents;\n\n // The increment value depends on whether the node IDs list is empty or not.\n // The node IDs list is not empty if the transaction has been frozen\n // before serialization and deserialization, otherwise, it's empty.\n const incrementValue = nodeIds.length > 0 ? nodeIds.length : 1;\n\n for (let i = 0; i < bodies.length; i += incrementValue) {\n const fileAppend =\n /** @type {HashgraphProto.proto.IFileAppendTransactionBody} */ (\n bodies[i].fileAppend\n );\n if (fileAppend.contents == null) {\n break;\n }\n\n if (contents == null) {\n contents = new Uint8Array(\n /** @type {Uint8Array} */ (fileAppend.contents),\n );\n continue;\n }\n\n /** @type {Uint8Array} */\n const concat = new Uint8Array(\n contents.length +\n /** @type {Uint8Array} */ (fileAppend.contents).length,\n );\n concat.set(contents, 0);\n concat.set(\n /** @type {Uint8Array} */ (fileAppend.contents),\n contents.length,\n );\n contents = concat;\n }\n const chunkSize = append.contents?.length || undefined;\n const maxChunks = bodies.length\n ? bodies.length / incrementValue\n : undefined;\n let chunkInterval;\n if (transactionIds.length > 1) {\n const firstValidStart = transactionIds[0].validStart;\n const secondValidStart = transactionIds[1].validStart;\n if (firstValidStart && secondValidStart) {\n chunkInterval = secondValidStart.nanos\n .sub(firstValidStart.nanos)\n .toNumber();\n }\n }\n\n return Transaction._fromProtobufTransactions(\n new FileAppendTransaction({\n fileId:\n append.fileID != null\n ? FileId._fromProtobuf(\n /** @type {HashgraphProto.proto.IFileID} */ (\n append.fileID\n ),\n )\n : undefined,\n contents,\n chunkSize,\n maxChunks,\n chunkInterval,\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @returns {?FileId}\n */\n get fileId() {\n return this._fileId;\n }\n\n /**\n * Set the keys which must sign any transactions modifying this file. Required.\n *\n * All keys must sign to modify the file's contents or keys. No key is required\n * to sign for extending the expiration time (except the one for the operator account\n * paying for the transaction). Only one key must sign to delete the file, however.\n *\n * To require more than one key to sign to delete a file, add them to a\n * KeyList and pass that here.\n *\n * The network currently requires a file to have at least one key (or key list or threshold key)\n * but this requirement may be lifted in the future.\n *\n * @param {FileId | string} fileId\n * @returns {this}\n */\n setFileId(fileId) {\n this._requireNotFrozen();\n this._fileId =\n typeof fileId === \"string\"\n ? FileId.fromString(fileId)\n : fileId.clone();\n\n return this;\n }\n\n /**\n * @override\n * @returns {number}\n */\n getRequiredChunks() {\n if (this._contents == null) {\n return 1;\n }\n\n const result = Math.ceil(this._contents.length / this._chunkSize);\n\n return result;\n }\n\n /**\n * @returns {?Uint8Array}\n */\n get contents() {\n return this._contents;\n }\n\n /**\n * Set the given byte array as the file's contents.\n *\n * This may be omitted to append an empty file.\n *\n * Note that total size for a given transaction is limited to 6KiB (as of March 2020) by the\n * network; if you exceed this you may receive a HederaPreCheckStatusException\n * with Status#TransactionOversize.\n *\n * In this case, you will need to break the data into chunks of less than ~6KiB and execute this\n * transaction with the first chunk and then use FileAppendTransaction with\n * FileAppendTransaction#setContents(Uint8Array) for the remaining chunks.\n *\n * @param {Uint8Array | string} contents\n * @returns {this}\n */\n setContents(contents) {\n this._requireNotFrozen();\n this._contents =\n contents instanceof Uint8Array ? contents : utf8.encode(contents);\n\n return this;\n }\n\n /**\n * @returns {?number}\n */\n get maxChunks() {\n return this._maxChunks;\n }\n\n /**\n * @param {number} maxChunks\n * @returns {this}\n */\n setMaxChunks(maxChunks) {\n this._requireNotFrozen();\n this._maxChunks = maxChunks;\n return this;\n }\n\n /**\n * @returns {?number}\n */\n get chunkSize() {\n return this._chunkSize;\n }\n\n /**\n * @param {number} chunkSize\n * @returns {this}\n */\n setChunkSize(chunkSize) {\n this._chunkSize = chunkSize;\n return this;\n }\n\n /**\n * @returns {number}\n */\n get chunkInterval() {\n return this._chunkInterval;\n }\n\n /**\n * @param {number} chunkInterval The valid start interval between chunks in nanoseconds\n * @returns {this}\n */\n setChunkInterval(chunkInterval) {\n this._chunkInterval = chunkInterval;\n return this;\n }\n\n /**\n * Freeze this transaction from further modification to prepare for\n * signing or serialization.\n *\n * Will use the `Client`, if available, to generate a default Transaction ID and select 1/3\n * nodes to prepare this transaction for.\n *\n * @param {?import(\"../client/Client.js\").default} client\n * @returns {this}\n */\n freezeWith(client) {\n super.freezeWith(client);\n\n if (this._contents == null) {\n return this;\n }\n\n let nextTransactionId = this._getTransactionId();\n\n // Hack around the locked list. Should refactor a bit to remove such code\n this._transactionIds.locked = false;\n\n this._transactions.clear();\n this._transactionIds.clear();\n this._signedTransactions.clear();\n\n for (let chunk = 0; chunk < this.getRequiredChunks(); chunk++) {\n this._transactionIds.push(nextTransactionId);\n this._transactionIds.advance();\n\n for (const nodeAccountId of this._nodeAccountIds.list) {\n this._signedTransactions.push(\n this._makeSignedTransaction(nodeAccountId),\n );\n }\n\n nextTransactionId = new TransactionId(\n /** @type {AccountId} */ (nextTransactionId.accountId),\n new Timestamp(\n /** @type {Timestamp} */ (\n nextTransactionId.validStart\n ).seconds,\n /** @type {Timestamp} */ (\n nextTransactionId.validStart\n ).nanos.add(this._chunkInterval),\n ),\n );\n }\n\n this._transactionIds.advance();\n this._transactionIds.setLocked();\n\n return this;\n }\n\n /**\n * @returns {ScheduleCreateTransaction}\n */\n schedule() {\n this._requireNotFrozen();\n\n if (this._contents != null && this._contents.length > this._chunkSize) {\n throw new Error(\n `cannot schedule \\`FileAppendTransaction\\` with message over ${this._chunkSize} bytes`,\n );\n }\n\n return super.schedule();\n }\n\n /**\n * @param {import(\"../client/Client.js\").default} client\n * @param {number=} requestTimeout\n * @returns {Promise}\n */\n async execute(client, requestTimeout) {\n return (await this.executeAll(client, requestTimeout))[0];\n }\n\n /**\n * @param {import(\"../client/Client.js\").default} client\n * @param {number=} requestTimeout\n * @returns {Promise}\n */\n async executeAll(client, requestTimeout) {\n if (this.maxChunks && this.getRequiredChunks() > this.maxChunks) {\n throw new Error(\n `cannot execute \\`FileAppendTransaction\\` with more than ${this.maxChunks} chunks`,\n );\n }\n\n if (!super._isFrozen()) {\n this.freezeWith(client);\n }\n\n // on execute, sign each transaction with the operator, if present\n // and we are signing a transaction that used the default transaction ID\n\n const transactionId = this._getTransactionId();\n const operatorAccountId = client.operatorAccountId;\n\n if (\n operatorAccountId != null &&\n operatorAccountId.equals(\n /** @type {AccountId} */ (transactionId.accountId),\n )\n ) {\n await super.signWithOperator(client);\n }\n\n const responses = [];\n let remainingTimeout = requestTimeout;\n\n for (let i = 0; i < this._transactionIds.length; i++) {\n const startTimestamp = Date.now();\n const response = await super.execute(client, remainingTimeout);\n\n if (remainingTimeout != null) {\n remainingTimeout = Date.now() - startTimestamp;\n }\n\n await response.getReceipt(client);\n responses.push(response);\n }\n\n return responses;\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (this._fileId != null) {\n this._fileId.validateChecksum(client);\n }\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.file.appendContent(request);\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"fileAppend\";\n }\n\n /**\n * Build all the transactions\n * when transactions are not complete.\n * @override\n * @internal\n */\n _buildIncompleteTransactions() {\n const dummyAccountId = AccountId.fromString(\"0.0.0\");\n const accountId = this.transactionId?.accountId || dummyAccountId;\n const validStart =\n this.transactionId?.validStart || Timestamp.fromDate(new Date());\n\n if (this.maxChunks && this.getRequiredChunks() > this.maxChunks) {\n throw new Error(\n `cannot build \\`FileAppendTransaction\\` with more than ${this.maxChunks} chunks`,\n );\n }\n\n // Hack around the locked list. Should refactor a bit to remove such code\n this._transactionIds.locked = false;\n\n this._transactions.clear();\n this._transactionIds.clear();\n this._signedTransactions.clear();\n\n for (let chunk = 0; chunk < this.getRequiredChunks(); chunk++) {\n let nextTransactionId = TransactionId.withValidStart(\n accountId,\n validStart.plusNanos(this._chunkInterval * chunk),\n );\n this._transactionIds.push(nextTransactionId);\n this._transactionIds.advance();\n\n if (this._nodeAccountIds.list.length === 0) {\n this._transactions.push(this._makeSignedTransaction(null));\n } else {\n for (const nodeAccountId of this._nodeAccountIds.list) {\n this._transactions.push(\n this._makeSignedTransaction(nodeAccountId),\n );\n }\n }\n }\n\n this._transactionIds.advance();\n this._transactionIds.setLocked();\n }\n\n /**\n * Build all the signed transactions\n * @override\n * @internal\n */\n _buildAllTransactions() {\n if (this.maxChunks && this.getRequiredChunks() > this.maxChunks) {\n throw new Error(\n `cannot build \\`FileAppendTransaction\\` with more than ${this.maxChunks} chunks`,\n );\n }\n for (let i = 0; i < this._signedTransactions.length; i++) {\n this._buildTransaction(i);\n }\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `FileAppendTransaction:${timestamp.toString()}`;\n }\n\n /**\n * @override\n * @protected\n * @returns {HashgraphProto.proto.IFileAppendTransactionBody}\n */\n _makeTransactionData() {\n const length = this._contents != null ? this._contents.length : 0;\n const startIndex = this._transactionIds.index * this._chunkSize;\n const endIndex = Math.min(startIndex + this._chunkSize, length);\n\n return {\n fileID: this._fileId != null ? this._fileId._toProtobuf() : null,\n contents:\n this._contents != null\n ? this._contents.slice(startIndex, endIndex)\n : null,\n };\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/unbound-method\nTRANSACTION_REGISTRY.set(\"fileAppend\", FileAppendTransaction._fromProtobuf);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Transaction, {\n TRANSACTION_REGISTRY,\n} from \"../transaction/Transaction.js\";\nimport FileId from \"./FileId.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HashgraphProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HashgraphProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HashgraphProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} HashgraphProto.proto.ITransactionResponse\n * @typedef {import(\"@hashgraph/proto\").proto.IFileDeleteTransactionBody} HashgraphProto.proto.IFileDeleteTransactionBody\n */\n\n/**\n * @typedef {import(\"@hashgraph/cryptography\").Key} Key\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../account/AccountId.js\").default} AccountId\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n */\n\n/**\n * A transaction to delete a file on the Hedera network.\n *\n * When deleted, a file's contents are truncated to zero length and it can no longer be updated\n * or appended to, or its expiration time extended. FileContentsQuery and FileInfoQuery\n * will throw HederaPreCheckStatusException with a status of Status#FileDeleted.\n *\n * Only one of the file's keys needs to sign to delete the file, unless the key you have is part\n * of a KeyList.\n */\nexport default class FileDeleteTransaction extends Transaction {\n /**\n * @param {object} [props]\n * @param {FileId | string} [props.fileId]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {?FileId}\n */\n this._fileId = null;\n\n if (props.fileId != null) {\n this.setFileId(props.fileId);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransaction[]} transactions\n * @param {HashgraphProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HashgraphProto.proto.ITransactionBody[]} bodies\n * @returns {FileDeleteTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const fileDelete =\n /** @type {HashgraphProto.proto.IFileDeleteTransactionBody} */ (\n body.fileDelete\n );\n\n return Transaction._fromProtobufTransactions(\n new FileDeleteTransaction({\n fileId:\n fileDelete.fileID != null\n ? FileId._fromProtobuf(fileDelete.fileID)\n : undefined,\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @returns {?FileId}\n */\n get fileId() {\n return this._fileId;\n }\n\n /**\n * Set the file ID which is being deleted in this transaction.\n *\n * @param {FileId | string} fileId\n * @returns {FileDeleteTransaction}\n */\n setFileId(fileId) {\n this._requireNotFrozen();\n this._fileId =\n typeof fileId === \"string\"\n ? FileId.fromString(fileId)\n : fileId.clone();\n\n return this;\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (this._fileId != null) {\n this._fileId.validateChecksum(client);\n }\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.file.deleteFile(request);\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"fileDelete\";\n }\n\n /**\n * @override\n * @protected\n * @returns {HashgraphProto.proto.IFileDeleteTransactionBody}\n */\n _makeTransactionData() {\n return {\n fileID: this._fileId != null ? this._fileId._toProtobuf() : null,\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `FileDeleteTransaction:${timestamp.toString()}`;\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/unbound-method\nTRANSACTION_REGISTRY.set(\"fileDelete\", FileDeleteTransaction._fromProtobuf);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Hbar from \"../Hbar.js\";\nimport AccountId from \"../account/AccountId.js\";\nimport FileId from \"../file/FileId.js\";\nimport ContractFunctionParameters from \"./ContractFunctionParameters.js\";\nimport Transaction, {\n DEFAULT_AUTO_RENEW_PERIOD,\n TRANSACTION_REGISTRY,\n} from \"../transaction/Transaction.js\";\nimport Long from \"long\";\nimport Duration from \"../Duration.js\";\nimport Key from \"../Key.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HashgraphProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HashgraphProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HashgraphProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} HashgraphProto.proto.ITransactionResponse\n * @typedef {import(\"@hashgraph/proto\").proto.IContractCreateTransactionBody} HashgraphProto.proto.IContractCreateTransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.IAccountID} HashgraphProto.proto.IAccountID\n * @typedef {import(\"@hashgraph/proto\").proto.IFileID} HashgraphProto.proto.IFileID\n */\n\n/**\n * @typedef {import(\"bignumber.js\").default} BigNumber\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n */\n\nexport default class ContractCreateTransaction extends Transaction {\n /**\n * @param {object} [props]\n * @param {FileId | string} [props.bytecodeFileId]\n * @param {Uint8Array} [props.bytecode]\n * @param {Key} [props.adminKey]\n * @param {number | Long} [props.gas]\n * @param {number | string | Long | BigNumber | Hbar} [props.initialBalance]\n * @param {AccountId | string} [props.proxyAccountId]\n * @param {Duration | Long | number} [props.autoRenewPeriod]\n * @param {Uint8Array} [props.constructorParameters]\n * @param {string} [props.contractMemo]\n * @param {number} [props.maxAutomaticTokenAssociations]\n * @param {AccountId | string} [props.stakedAccountId]\n * @param {Long | number} [props.stakedNodeId]\n * @param {boolean} [props.declineStakingReward]\n * @param {AccountId} [props.autoRenewAccountId]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {?FileId}\n */\n this._bytecodeFileId = null;\n\n /**\n * @private\n * @type {?Uint8Array}\n */\n this._bytecode = null;\n\n /**\n * @private\n * @type {?Key}\n */\n this._adminKey = null;\n\n /**\n * @private\n * @type {?Long}\n */\n this._gas = null;\n\n /**\n * @private\n * @type {?Hbar}\n */\n this._initialBalance = null;\n\n /**\n * @private\n * @type {?AccountId}\n */\n this._proxyAccountId = null;\n\n /**\n * @private\n * @type {Duration}\n */\n this._autoRenewPeriod = new Duration(DEFAULT_AUTO_RENEW_PERIOD);\n\n /**\n * @private\n * @type {?Uint8Array}\n */\n this._constructorParameters = null;\n\n /**\n * @private\n * @type {?string}\n */\n this._contractMemo = null;\n\n /**\n * @private\n * @type {?number}\n */\n this._maxAutomaticTokenAssociations = null;\n\n this._defaultMaxTransactionFee = new Hbar(20);\n\n /**\n * @private\n * @type {?AccountId}\n */\n this._stakedAccountId = null;\n\n /**\n * @private\n * @type {?Long}\n */\n this._stakedNodeId = null;\n\n /**\n * @private\n * @type {boolean}\n */\n this._declineStakingReward = false;\n\n /**\n * @type {?AccountId}\n */\n this._autoRenewAccountId = null;\n\n if (props.bytecodeFileId != null) {\n this.setBytecodeFileId(props.bytecodeFileId);\n }\n\n if (props.bytecode != null) {\n this.setBytecode(props.bytecode);\n }\n\n if (props.adminKey != null) {\n this.setAdminKey(props.adminKey);\n }\n\n if (props.gas != null) {\n this.setGas(props.gas);\n }\n\n if (props.initialBalance != null) {\n this.setInitialBalance(props.initialBalance);\n }\n\n if (props.proxyAccountId != null) {\n // eslint-disable-next-line deprecation/deprecation\n this.setProxyAccountId(props.proxyAccountId);\n }\n\n if (props.autoRenewPeriod != null) {\n this.setAutoRenewPeriod(props.autoRenewPeriod);\n }\n\n if (props.constructorParameters != null) {\n this.setConstructorParameters(props.constructorParameters);\n }\n\n if (props.contractMemo != null) {\n this.setContractMemo(props.contractMemo);\n }\n\n if (props.maxAutomaticTokenAssociations != null) {\n this.setMaxAutomaticTokenAssociations(\n props.maxAutomaticTokenAssociations,\n );\n }\n\n if (props.stakedAccountId != null) {\n this.setStakedAccountId(props.stakedAccountId);\n }\n\n if (props.stakedNodeId != null) {\n this.setStakedNodeId(props.stakedNodeId);\n }\n\n if (props.declineStakingReward != null) {\n this.setDeclineStakingReward(props.declineStakingReward);\n }\n\n if (props.autoRenewAccountId != null) {\n this.setAutoRenewAccountId(props.autoRenewAccountId);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransaction[]} transactions\n * @param {HashgraphProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HashgraphProto.proto.ITransactionBody[]} bodies\n * @returns {ContractCreateTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const create =\n /** @type {HashgraphProto.proto.IContractCreateTransactionBody} */ (\n body.contractCreateInstance\n );\n\n return Transaction._fromProtobufTransactions(\n new ContractCreateTransaction({\n bytecodeFileId:\n create.fileID != null\n ? FileId._fromProtobuf(\n /** @type {HashgraphProto.proto.IFileID} */ (\n create.fileID\n ),\n )\n : undefined,\n adminKey:\n create.adminKey != null\n ? Key._fromProtobufKey(create.adminKey)\n : undefined,\n gas: create.gas != null ? create.gas : undefined,\n initialBalance:\n create.initialBalance != null\n ? Hbar.fromTinybars(create.initialBalance)\n : undefined,\n proxyAccountId:\n create.proxyAccountID != null\n ? AccountId._fromProtobuf(\n /** @type {HashgraphProto.proto.IAccountID} */ (\n create.proxyAccountID\n ),\n )\n : undefined,\n autoRenewPeriod:\n create.autoRenewPeriod != null\n ? create.autoRenewPeriod.seconds != null\n ? create.autoRenewPeriod.seconds\n : undefined\n : undefined,\n constructorParameters:\n create.constructorParameters != null\n ? create.constructorParameters\n : undefined,\n contractMemo: create.memo != null ? create.memo : undefined,\n maxAutomaticTokenAssociations:\n create.maxAutomaticTokenAssociations != null\n ? create.maxAutomaticTokenAssociations\n : undefined,\n stakedAccountId:\n create.stakedAccountId != null\n ? AccountId._fromProtobuf(create.stakedAccountId)\n : undefined,\n stakedNodeId:\n create.stakedNodeId != null\n ? create.stakedNodeId\n : undefined,\n declineStakingReward: create.declineReward == true,\n autoRenewAccountId:\n create.autoRenewAccountId != null\n ? AccountId._fromProtobuf(create.autoRenewAccountId)\n : undefined,\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @returns {?FileId}\n */\n get bytecodeFileId() {\n return this._bytecodeFileId;\n }\n\n /**\n * @param {FileId | string} bytecodeFileId\n * @returns {this}\n */\n setBytecodeFileId(bytecodeFileId) {\n this._requireNotFrozen();\n this._bytecodeFileId =\n typeof bytecodeFileId === \"string\"\n ? FileId.fromString(bytecodeFileId)\n : bytecodeFileId.clone();\n this._bytecode = null;\n\n return this;\n }\n\n /**\n * @returns {?Uint8Array}\n */\n get bytecode() {\n return this._bytecode;\n }\n\n /**\n * @param {Uint8Array} bytecode\n * @returns {this}\n */\n setBytecode(bytecode) {\n this._requireNotFrozen();\n this._bytecode = bytecode;\n this._bytecodeFileId = null;\n\n return this;\n }\n\n /**\n * @returns {?Key}\n */\n get adminKey() {\n return this._adminKey;\n }\n\n /**\n * @param {Key} adminKey\n * @returns {this}\n */\n setAdminKey(adminKey) {\n this._requireNotFrozen();\n this._adminKey = adminKey;\n\n return this;\n }\n\n /**\n * @returns {?Long}\n */\n get gas() {\n return this._gas;\n }\n\n /**\n * @param {number | Long} gas\n * @returns {this}\n */\n setGas(gas) {\n this._requireNotFrozen();\n this._gas = gas instanceof Long ? gas : Long.fromValue(gas);\n\n return this;\n }\n\n /**\n * @returns {?Hbar}\n */\n get initialBalance() {\n return this._initialBalance;\n }\n\n /**\n * Set the initial amount to transfer into this contract.\n *\n * @param {number | string | Long | BigNumber | Hbar} initialBalance\n * @returns {this}\n */\n setInitialBalance(initialBalance) {\n this._requireNotFrozen();\n this._initialBalance =\n initialBalance instanceof Hbar\n ? initialBalance\n : new Hbar(initialBalance);\n\n return this;\n }\n\n /**\n * @deprecated\n * @returns {?AccountId}\n */\n get proxyAccountId() {\n return this._proxyAccountId;\n }\n\n /**\n * @deprecated\n * @param {AccountId | string} proxyAccountId\n * @returns {this}\n */\n setProxyAccountId(proxyAccountId) {\n this._requireNotFrozen();\n this._proxyAccountId =\n proxyAccountId instanceof AccountId\n ? proxyAccountId\n : AccountId.fromString(proxyAccountId);\n\n return this;\n }\n\n /**\n * @returns {Duration}\n */\n get autoRenewPeriod() {\n return this._autoRenewPeriod;\n }\n\n /**\n * An account to charge for auto-renewal of this contract. If not set, or set to an\n * account with zero hbar balance, the contract's own hbar balance will be used to\n * cover auto-renewal fees.\n *\n * @param {Duration | Long | number} autoRenewPeriod\n * @returns {this}\n */\n setAutoRenewPeriod(autoRenewPeriod) {\n this._requireNotFrozen();\n this._autoRenewPeriod =\n autoRenewPeriod instanceof Duration\n ? autoRenewPeriod\n : new Duration(autoRenewPeriod);\n\n return this;\n }\n\n /**\n * @returns {?Uint8Array}\n */\n get constructorParameters() {\n return this._constructorParameters;\n }\n\n /**\n * @param {Uint8Array | ContractFunctionParameters} constructorParameters\n * @returns {this}\n */\n setConstructorParameters(constructorParameters) {\n this._requireNotFrozen();\n this._constructorParameters =\n constructorParameters instanceof ContractFunctionParameters\n ? constructorParameters._build()\n : constructorParameters;\n\n return this;\n }\n\n /**\n * @returns {?string}\n */\n get contractMemo() {\n return this._contractMemo;\n }\n\n /**\n * @param {string} contractMemo\n * @returns {this}\n */\n setContractMemo(contractMemo) {\n this._requireNotFrozen();\n this._contractMemo = contractMemo;\n\n return this;\n }\n\n /**\n * @returns {?number}\n */\n get maxAutomaticTokenAssociations() {\n return this._maxAutomaticTokenAssociations;\n }\n\n /**\n * @param {number} maxAutomaticTokenAssociations\n * @returns {this}\n */\n setMaxAutomaticTokenAssociations(maxAutomaticTokenAssociations) {\n this._maxAutomaticTokenAssociations = maxAutomaticTokenAssociations;\n\n return this;\n }\n\n /**\n * @returns {?AccountId}\n */\n get stakedAccountId() {\n return this._stakedAccountId;\n }\n\n /**\n * @param {AccountId | string} stakedAccountId\n * @returns {this}\n */\n setStakedAccountId(stakedAccountId) {\n this._requireNotFrozen();\n this._stakedAccountId =\n typeof stakedAccountId === \"string\"\n ? AccountId.fromString(stakedAccountId)\n : stakedAccountId;\n\n return this;\n }\n\n /**\n * @returns {?Long}\n */\n get stakedNodeId() {\n return this._stakedNodeId;\n }\n\n /**\n * @param {Long | number} stakedNodeId\n * @returns {this}\n */\n setStakedNodeId(stakedNodeId) {\n this._requireNotFrozen();\n this._stakedNodeId = Long.fromValue(stakedNodeId);\n\n return this;\n }\n\n /**\n * @returns {boolean}\n */\n get declineStakingRewards() {\n return this._declineStakingReward;\n }\n\n /**\n * @param {boolean} declineStakingReward\n * @returns {this}\n */\n setDeclineStakingReward(declineStakingReward) {\n this._requireNotFrozen();\n this._declineStakingReward = declineStakingReward;\n\n return this;\n }\n\n /**\n * @returns {?AccountId}\n */\n get autoRenewAccountId() {\n return this._autoRenewAccountId;\n }\n\n /**\n * @param {string | AccountId} autoRenewAccountId\n * @returns {this}\n */\n setAutoRenewAccountId(autoRenewAccountId) {\n this._requireNotFrozen();\n this._autoRenewAccountId =\n typeof autoRenewAccountId === \"string\"\n ? AccountId.fromString(autoRenewAccountId)\n : autoRenewAccountId;\n\n return this;\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (this._bytecodeFileId != null) {\n this._bytecodeFileId.validateChecksum(client);\n }\n\n if (this._proxyAccountId != null) {\n this._proxyAccountId.validateChecksum(client);\n }\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.smartContract.createContract(request);\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"contractCreateInstance\";\n }\n\n /**\n * @override\n * @protected\n * @returns {HashgraphProto.proto.IContractCreateTransactionBody}\n */\n _makeTransactionData() {\n return {\n fileID:\n this._bytecodeFileId != null\n ? this._bytecodeFileId._toProtobuf()\n : null,\n initcode: this._bytecode,\n adminKey:\n this._adminKey != null ? this._adminKey._toProtobufKey() : null,\n gas: this._gas,\n initialBalance:\n this._initialBalance != null\n ? this._initialBalance.toTinybars()\n : null,\n proxyAccountID:\n this._proxyAccountId != null\n ? this._proxyAccountId._toProtobuf()\n : null,\n autoRenewPeriod: this._autoRenewPeriod._toProtobuf(),\n constructorParameters: this._constructorParameters,\n memo: this._contractMemo,\n maxAutomaticTokenAssociations: this._maxAutomaticTokenAssociations,\n stakedAccountId:\n this.stakedAccountId != null\n ? this.stakedAccountId._toProtobuf()\n : null,\n stakedNodeId: this.stakedNodeId,\n declineReward: this.declineStakingRewards,\n autoRenewAccountId:\n this._autoRenewAccountId != null\n ? this._autoRenewAccountId._toProtobuf()\n : null,\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `ContractCreateTransaction:${timestamp.toString()}`;\n }\n}\n\nTRANSACTION_REGISTRY.set(\n \"contractCreateInstance\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n ContractCreateTransaction._fromProtobuf,\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport FileCreateTransaction from \"../file/FileCreateTransaction.js\";\nimport FileAppendTransaction from \"../file/FileAppendTransaction.js\";\nimport FileDeleteTransaction from \"../file/FileDeleteTransaction.js\";\nimport ContractCreateTransaction from \"./ContractCreateTransaction.js\";\nimport * as utf8 from \"../encoding/utf8.js\";\nimport * as hex from \"../encoding/hex.js\";\nimport PublicKey from \"../PublicKey.js\";\n\n/**\n * @typedef {import(\"../account/AccountId.js\").default} AccountId\n * @typedef {import(\"../file/FileId.js\").default} FileId\n * @typedef {import(\"../Key.js\").default} Key\n * @typedef {import(\"./ContractFunctionParameters.js\").default} ContractFunctionParameters\n * @typedef {import(\"../Hbar.js\").default} Hbar\n * @typedef {import(\"../Duration.js\").default} Duration\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../channel/MirrorChannel.js\").default} MirrorChannel\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n * @typedef {import(\"../transaction/TransactionResponse.js\").default} TransactionResponse\n * @typedef {import(\"../transaction/TransactionReceipt.js\").default} TransactionReceipt\n * @typedef {import(\"../client/Client.js\").ClientOperator} ClientOperator\n * @typedef {import(\"../Signer.js\").Signer} Signer\n * @typedef {import(\"../PrivateKey.js\").default} PrivateKey\n * @typedef {import(\"../transaction/Transaction.js\").default} Transaction\n */\n\n/**\n * @typedef {import(\"bignumber.js\").BigNumber} BigNumber\n * @typedef {import(\"long\")} Long\n */\n\nexport default class ContractCreateFlow {\n constructor() {\n /** @type {Uint8Array | null} */\n this._bytecode = null;\n this._contractCreate = new ContractCreateTransaction();\n\n /**\n * Read `Transaction._signerPublicKeys`\n *\n * @internal\n * @type {Set}\n */\n this._signerPublicKeys = new Set();\n\n /**\n * Read `Transaction._publicKeys`\n *\n * @private\n * @type {PublicKey[]}\n */\n this._publicKeys = [];\n\n /**\n * Read `Transaction._transactionSigners`\n *\n * @private\n * @type {((message: Uint8Array) => Promise)[]}\n */\n this._transactionSigners = [];\n\n this._maxChunks = null;\n }\n\n /**\n * @returns {number | null}\n */\n get maxChunks() {\n return this._maxChunks;\n }\n\n /**\n * @param {number} maxChunks\n * @returns {this}\n */\n setMaxChunks(maxChunks) {\n this._maxChunks = maxChunks;\n return this;\n }\n\n /**\n * @returns {?Uint8Array}\n */\n get bytecode() {\n return this._bytecode;\n }\n\n /**\n * @param {string | Uint8Array} bytecode\n * @returns {this}\n */\n setBytecode(bytecode) {\n this._bytecode =\n bytecode instanceof Uint8Array ? bytecode : utf8.encode(bytecode);\n\n return this;\n }\n\n /**\n * @returns {?Key}\n */\n get adminKey() {\n return this._contractCreate.adminKey;\n }\n\n /**\n * @param {Key} adminKey\n * @returns {this}\n */\n setAdminKey(adminKey) {\n this._contractCreate.setAdminKey(adminKey);\n return this;\n }\n\n /**\n * @returns {?Long}\n */\n get gas() {\n return this._contractCreate.gas;\n }\n\n /**\n * @param {number | Long} gas\n * @returns {this}\n */\n setGas(gas) {\n this._contractCreate.setGas(gas);\n return this;\n }\n\n /**\n * @returns {?Hbar}\n */\n get initialBalance() {\n return this._contractCreate.initialBalance;\n }\n\n /**\n * Set the initial amount to transfer into this contract.\n *\n * @param {number | string | Long | BigNumber | Hbar} initialBalance\n * @returns {this}\n */\n setInitialBalance(initialBalance) {\n this._contractCreate.setInitialBalance(initialBalance);\n return this;\n }\n\n /**\n * @deprecated\n * @returns {?AccountId}\n */\n get proxyAccountId() {\n // eslint-disable-next-line deprecation/deprecation\n return this._contractCreate.proxyAccountId;\n }\n\n /**\n * @deprecated\n * @param {AccountId | string} proxyAccountId\n * @returns {this}\n */\n setProxyAccountId(proxyAccountId) {\n // eslint-disable-next-line deprecation/deprecation\n this._contractCreate.setProxyAccountId(proxyAccountId);\n return this;\n }\n\n /**\n * @returns {Duration}\n */\n get autoRenewPeriod() {\n return this._contractCreate.autoRenewPeriod;\n }\n\n /**\n * @param {Duration | Long | number} autoRenewPeriod\n * @returns {this}\n */\n setAutoRenewPeriod(autoRenewPeriod) {\n this._contractCreate.setAutoRenewPeriod(autoRenewPeriod);\n return this;\n }\n\n /**\n * @returns {?Uint8Array}\n */\n get constructorParameters() {\n return this._contractCreate.constructorParameters;\n }\n\n /**\n * @param {Uint8Array | ContractFunctionParameters} constructorParameters\n * @returns {this}\n */\n setConstructorParameters(constructorParameters) {\n this._contractCreate.setConstructorParameters(constructorParameters);\n return this;\n }\n\n /**\n * @returns {?string}\n */\n get contractMemo() {\n return this._contractCreate.contractMemo;\n }\n\n /**\n * @param {string} contractMemo\n * @returns {this}\n */\n setContractMemo(contractMemo) {\n this._contractCreate.setContractMemo(contractMemo);\n return this;\n }\n\n /**\n * @returns {?number}\n */\n get maxAutomaticTokenAssociation() {\n return this._contractCreate.maxAutomaticTokenAssociations;\n }\n\n /**\n * @param {number} maxAutomaticTokenAssociation\n * @returns {this}\n */\n setMaxAutomaticTokenAssociations(maxAutomaticTokenAssociation) {\n this._contractCreate.setMaxAutomaticTokenAssociations(\n maxAutomaticTokenAssociation,\n );\n\n return this;\n }\n\n /**\n * @returns {?AccountId}\n */\n get stakedAccountId() {\n return this._contractCreate.stakedAccountId;\n }\n\n /**\n * @param {AccountId | string} stakedAccountId\n * @returns {this}\n */\n setStakedAccountId(stakedAccountId) {\n this._contractCreate.setStakedAccountId(stakedAccountId);\n return this;\n }\n\n /**\n * @returns {?Long}\n */\n get stakedNodeId() {\n return this._contractCreate.stakedNodeId;\n }\n\n /**\n * @param {Long | number} stakedNodeId\n * @returns {this}\n */\n setStakedNodeId(stakedNodeId) {\n this._contractCreate.setStakedNodeId(stakedNodeId);\n return this;\n }\n\n /**\n * @returns {boolean}\n */\n get declineStakingRewards() {\n return this._contractCreate.declineStakingRewards;\n }\n\n /**\n * @param {boolean} declineStakingReward\n * @returns {this}\n */\n setDeclineStakingReward(declineStakingReward) {\n this._contractCreate.setDeclineStakingReward(declineStakingReward);\n return this;\n }\n\n /**\n * @returns {?AccountId}\n */\n get autoRenewAccountId() {\n return this._contractCreate.autoRenewAccountId;\n }\n\n /**\n * @param {string | AccountId} autoRenewAccountId\n * @returns {this}\n */\n setAutoRenewAccountId(autoRenewAccountId) {\n this._contractCreate.setAutoRenewAccountId(autoRenewAccountId);\n return this;\n }\n\n /**\n * Sign the transaction with the private key\n * **NOTE**: This is a thin wrapper around `.signWith()`\n *\n * @param {PrivateKey} privateKey\n * @returns {this}\n */\n sign(privateKey) {\n return this.signWith(privateKey.publicKey, (message) =>\n Promise.resolve(privateKey.sign(message)),\n );\n }\n\n /**\n * Sign the transaction with the public key and signer function\n *\n * If sign on demand is enabled no signing will be done immediately, instead\n * the private key signing function and public key are saved to be used when\n * a user calls an exit condition method (not sure what a better name for this is)\n * such as `toBytes[Async]()`, `getTransactionHash[PerNode]()` or `execute()`.\n *\n * @param {PublicKey} publicKey\n * @param {(message: Uint8Array) => Promise} transactionSigner\n * @returns {this}\n */\n signWith(publicKey, transactionSigner) {\n const publicKeyData = publicKey.toBytesRaw();\n const publicKeyHex = hex.encode(publicKeyData);\n\n if (this._signerPublicKeys.has(publicKeyHex)) {\n // this public key has already signed this transaction\n return this;\n }\n\n this._publicKeys.push(publicKey);\n this._transactionSigners.push(transactionSigner);\n\n return this;\n }\n\n /**\n * @template {Channel} ChannelT\n * @template {MirrorChannel} MirrorChannelT\n * @param {import(\"../client/Client.js\").default} client\n * @param {number=} requestTimeout\n * @returns {Promise}\n */\n async execute(client, requestTimeout) {\n if (this._bytecode == null) {\n throw new Error(\"cannot create contract with no bytecode\");\n }\n\n const key = client.operatorPublicKey;\n\n const fileCreateTransaction = new FileCreateTransaction()\n .setKeys(key != null ? [key] : [])\n .setContents(\n this._bytecode.subarray(\n 0,\n Math.min(this._bytecode.length, 2048),\n ),\n )\n .freezeWith(client);\n await addSignersToTransaction(\n fileCreateTransaction,\n this._publicKeys,\n this._transactionSigners,\n );\n\n let response = await fileCreateTransaction.execute(\n client,\n requestTimeout,\n );\n const receipt = await response.getReceipt(client);\n\n const fileId = /** @type {FileId} */ (receipt.fileId);\n\n if (this._bytecode.length > 2048) {\n const fileAppendTransaction = new FileAppendTransaction()\n .setFileId(fileId)\n .setContents(this._bytecode.subarray(2048))\n .freezeWith(client);\n await addSignersToTransaction(\n fileAppendTransaction,\n this._publicKeys,\n this._transactionSigners,\n );\n await fileAppendTransaction.execute(client, requestTimeout);\n }\n\n this._contractCreate.setBytecodeFileId(fileId).freezeWith(client);\n\n await addSignersToTransaction(\n this._contractCreate,\n this._publicKeys,\n this._transactionSigners,\n );\n\n response = await this._contractCreate.execute(client, requestTimeout);\n await response.getReceipt(client);\n\n if (key != null) {\n const fileDeleteTransaction = new FileDeleteTransaction()\n .setFileId(fileId)\n .freezeWith(client);\n await addSignersToTransaction(\n fileDeleteTransaction,\n this._publicKeys,\n this._transactionSigners,\n );\n await (\n await fileDeleteTransaction.execute(client, requestTimeout)\n ).getReceipt(client);\n }\n\n return response;\n }\n\n /**\n * @param {Signer} signer\n * @returns {Promise}\n */\n async executeWithSigner(signer) {\n if (this._bytecode == null) {\n throw new Error(\"cannot create contract with no bytecode\");\n }\n\n if (signer.getAccountKey == null) {\n throw new Error(\n \"`Signer.getAccountKey()` is not implemented, but is required for `ContractCreateFlow`\",\n );\n }\n // eslint-disable-next-line @typescript-eslint/await-thenable\n const key = await signer.getAccountKey();\n let formattedPublicKey;\n\n if (key instanceof PublicKey) {\n formattedPublicKey = key;\n } else {\n const propertyValues = Object.values(\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n key._key._key._keyData,\n );\n const keyArray = new Uint8Array(propertyValues);\n\n formattedPublicKey = PublicKey.fromBytes(keyArray);\n }\n\n const fileCreateTransaction = await new FileCreateTransaction()\n .setKeys(formattedPublicKey != null ? [formattedPublicKey] : [])\n .setContents(\n this._bytecode.subarray(\n 0,\n Math.min(this._bytecode.length, 2048),\n ),\n )\n .freezeWithSigner(signer);\n await fileCreateTransaction.signWithSigner(signer);\n await addSignersToTransaction(\n fileCreateTransaction,\n this._publicKeys,\n this._transactionSigners,\n );\n\n let response = await fileCreateTransaction.executeWithSigner(signer);\n const receipt = await response.getReceiptWithSigner(signer);\n\n const fileId = /** @type {FileId} */ (receipt.fileId);\n\n if (this._bytecode.length > 2048) {\n let fileAppendTransaction = new FileAppendTransaction()\n .setFileId(fileId)\n .setContents(this._bytecode.subarray(2048));\n if (this._maxChunks != null) {\n fileAppendTransaction.setMaxChunks(this._maxChunks);\n }\n fileAppendTransaction =\n await fileAppendTransaction.freezeWithSigner(signer);\n await fileAppendTransaction.signWithSigner(signer);\n await addSignersToTransaction(\n fileAppendTransaction,\n this._publicKeys,\n this._transactionSigners,\n );\n await fileAppendTransaction.executeWithSigner(signer);\n }\n\n this._contractCreate = await this._contractCreate\n .setBytecodeFileId(fileId)\n .freezeWithSigner(signer);\n this._contractCreate =\n await this._contractCreate.signWithSigner(signer);\n await addSignersToTransaction(\n this._contractCreate,\n this._publicKeys,\n this._transactionSigners,\n );\n\n response = await this._contractCreate.executeWithSigner(signer);\n\n await response.getReceiptWithSigner(signer);\n\n if (key != null) {\n const fileDeleteTransaction = await new FileDeleteTransaction()\n .setFileId(fileId)\n .freezeWithSigner(signer);\n await fileDeleteTransaction.signWithSigner(signer);\n await addSignersToTransaction(\n fileDeleteTransaction,\n this._publicKeys,\n this._transactionSigners,\n );\n await (\n await fileDeleteTransaction.executeWithSigner(signer)\n ).getReceiptWithSigner(signer);\n }\n\n return response;\n }\n}\n\n/**\n * @template {Transaction} T\n * @param {T} transaction\n * @param {PublicKey[]} publicKeys\n * @param {((message: Uint8Array) => Promise)[]} transactionSigners\n * @returns {Promise}\n */\nasync function addSignersToTransaction(\n transaction,\n publicKeys,\n transactionSigners,\n) {\n for (let i = 0; i < publicKeys.length; i++) {\n await transaction.signWith(publicKeys[i], transactionSigners[i]);\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Transaction, {\n TRANSACTION_REGISTRY,\n} from \"../transaction/Transaction.js\";\nimport ContractId from \"./ContractId.js\";\nimport AccountId from \"../account/AccountId.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HashgraphProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HashgraphProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HashgraphProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} HashgraphProto.proto.ITransactionResponse\n * @typedef {import(\"@hashgraph/proto\").proto.IContractDeleteTransactionBody} HashgraphProto.proto.IContractDeleteTransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.IContractID} HashgraphProto.proto.IContractID\n * @typedef {import(\"@hashgraph/proto\").proto.IAccountID} HashgraphProto.proto.IAccountID\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n */\n\nexport default class ContractDeleteTransaction extends Transaction {\n /**\n * @param {object} [props]\n * @param {ContractId | string} [props.contractId]\n * @param {ContractId | string} [props.transferContractId]\n * @param {AccountId | string} [props.transferAccountId]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {?ContractId}\n */\n this._contractId = null;\n\n /**\n * @private\n * @type {?AccountId}\n */\n this._transferAccountId = null;\n\n /**\n * @private\n * @type {?ContractId}\n */\n this._transferContractId = null;\n\n if (props.contractId != null) {\n this.setContractId(props.contractId);\n }\n\n if (props.transferAccountId != null) {\n this.setTransferAccountId(props.transferAccountId);\n }\n\n if (props.transferContractId != null) {\n this.setTransferContractId(props.transferContractId);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransaction[]} transactions\n * @param {HashgraphProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HashgraphProto.proto.ITransactionBody[]} bodies\n * @returns {ContractDeleteTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const contractDelete =\n /** @type {HashgraphProto.proto.IContractDeleteTransactionBody} */ (\n body.contractDeleteInstance\n );\n\n return Transaction._fromProtobufTransactions(\n new ContractDeleteTransaction({\n contractId:\n contractDelete.contractID != null\n ? ContractId._fromProtobuf(\n /** @type {HashgraphProto.proto.IContractID} */ (\n contractDelete.contractID\n ),\n )\n : undefined,\n transferAccountId:\n contractDelete.transferAccountID != null\n ? AccountId._fromProtobuf(\n /** @type {HashgraphProto.proto.IAccountID} */ (\n contractDelete.transferAccountID\n ),\n )\n : undefined,\n transferContractId:\n contractDelete.transferContractID != null\n ? ContractId._fromProtobuf(\n /** @type {HashgraphProto.proto.IContractID} */ (\n contractDelete.transferContractID\n ),\n )\n : undefined,\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @returns {?ContractId}\n */\n get contractId() {\n return this._contractId;\n }\n\n /**\n * Sets the contract ID which is being deleted in this transaction.\n *\n * @param {ContractId | string} contractId\n * @returns {ContractDeleteTransaction}\n */\n setContractId(contractId) {\n this._requireNotFrozen();\n this._contractId =\n typeof contractId === \"string\"\n ? ContractId.fromString(contractId)\n : contractId.clone();\n\n return this;\n }\n\n /**\n * @returns {?ContractId}\n */\n get transferContractId() {\n return this._transferContractId;\n }\n\n /**\n * Sets the contract ID which will receive all remaining hbars.\n *\n * @param {ContractId | string} transferContractId\n * @returns {ContractDeleteTransaction}\n */\n setTransferContractId(transferContractId) {\n this._requireNotFrozen();\n this._transferContractId =\n transferContractId instanceof ContractId\n ? transferContractId\n : ContractId.fromString(transferContractId);\n\n return this;\n }\n\n /**\n * @returns {?AccountId}\n */\n get transferAccountId() {\n return this._transferAccountId;\n }\n\n /**\n * Sets the account ID which will receive all remaining hbars.\n *\n * @param {AccountId | string} transferAccountId\n * @returns {ContractDeleteTransaction}\n */\n setTransferAccountId(transferAccountId) {\n this._requireNotFrozen();\n this._transferAccountId =\n transferAccountId instanceof AccountId\n ? transferAccountId\n : AccountId.fromString(transferAccountId);\n\n return this;\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (this._contractId != null) {\n this._contractId.validateChecksum(client);\n }\n\n if (this._transferAccountId != null) {\n this._transferAccountId.validateChecksum(client);\n }\n\n if (this._transferContractId != null) {\n this._transferContractId.validateChecksum(client);\n }\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.smartContract.deleteContract(request);\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"contractDeleteInstance\";\n }\n\n /**\n * @override\n * @protected\n * @returns {HashgraphProto.proto.IContractDeleteTransactionBody}\n */\n _makeTransactionData() {\n return {\n contractID:\n this._contractId != null\n ? this._contractId._toProtobuf()\n : null,\n transferAccountID: this._transferAccountId\n ? this._transferAccountId._toProtobuf()\n : null,\n transferContractID:\n this._transferContractId != null\n ? this._transferContractId._toProtobuf()\n : null,\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `ContractDeleteTransaction:${timestamp.toString()}`;\n }\n}\n\nTRANSACTION_REGISTRY.set(\n \"contractDeleteInstance\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n ContractDeleteTransaction._fromProtobuf,\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Hbar from \"../Hbar.js\";\nimport Transaction, {\n TRANSACTION_REGISTRY,\n} from \"../transaction/Transaction.js\";\nimport ContractId from \"./ContractId.js\";\nimport ContractFunctionParameters from \"./ContractFunctionParameters.js\";\nimport Long from \"long\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HashgraphProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HashgraphProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HashgraphProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} HashgraphProto.proto.ITransactionResponse\n * @typedef {import(\"@hashgraph/proto\").proto.IContractCallTransactionBody} HashgraphProto.proto.IContractCallTransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.IAccountID} HashgraphProto.proto.IAccountID\n * @typedef {import(\"@hashgraph/proto\").proto.IContractID} HashgraphProto.proto.IContractID\n * @typedef {import(\"@hashgraph/proto\").proto.IFileID} HashgraphProto.proto.IFileID\n */\n\n/**\n * @typedef {import(\"bignumber.js\").default} BigNumber\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../account/AccountId.js\").default} AccountId\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n */\n\n/**\n * @typedef {object} FunctionParameters\n * @property {string} name\n * @property {ContractFunctionParameters} parameters\n */\n\nexport default class ContractExecuteTransaction extends Transaction {\n /**\n * @param {object} [props]\n * @param {ContractId | string} [props.contractId]\n * @param {number | Long} [props.gas]\n * @param {number | string | Long | BigNumber | Hbar} [props.amount]\n * @param {Uint8Array} [props.functionParameters]\n * @param {FunctionParameters} [props.function]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {?ContractId}\n */\n this._contractId = null;\n\n /**\n * @private\n * @type {?Long}\n */\n this._gas = null;\n\n /**\n * @private\n * @type {?Hbar}\n */\n this._amount = null;\n\n /**\n * @private\n * @type {?Uint8Array}\n */\n this._functionParameters = null;\n\n if (props.contractId != null) {\n this.setContractId(props.contractId);\n }\n\n if (props.gas != null) {\n this.setGas(props.gas);\n }\n\n if (props.amount != null) {\n this.setPayableAmount(props.amount);\n }\n\n if (props.functionParameters != null) {\n this.setFunctionParameters(props.functionParameters);\n } else if (props.function != null) {\n this.setFunction(props.function.name, props.function.parameters);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransaction[]} transactions\n * @param {HashgraphProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HashgraphProto.proto.ITransactionBody[]} bodies\n * @returns {ContractExecuteTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const call =\n /** @type {HashgraphProto.proto.IContractCallTransactionBody} */ (\n body.contractCall\n );\n\n return Transaction._fromProtobufTransactions(\n new ContractExecuteTransaction({\n contractId:\n call.contractID != null\n ? ContractId._fromProtobuf(\n /** @type {HashgraphProto.proto.IContractID} */ (\n call.contractID\n ),\n )\n : undefined,\n gas: call.gas != null ? call.gas : undefined,\n amount:\n call.amount != null\n ? Hbar.fromTinybars(call.amount)\n : undefined,\n functionParameters:\n call.functionParameters != null\n ? call.functionParameters\n : undefined,\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @returns {?ContractId}\n */\n get contractId() {\n return this._contractId;\n }\n\n /**\n * Sets the contract ID which is being executed in this transaction.\n *\n * @param {ContractId | string} contractId\n * @returns {ContractExecuteTransaction}\n */\n setContractId(contractId) {\n this._requireNotFrozen();\n this._contractId =\n typeof contractId === \"string\"\n ? ContractId.fromString(contractId)\n : contractId.clone();\n\n return this;\n }\n\n /**\n * @returns {?Long}\n */\n get gas() {\n return this._gas;\n }\n\n /**\n * Sets the amount of gas to use for the call.\n *\n * @param {number | Long} gas\n * @returns {ContractExecuteTransaction}\n */\n setGas(gas) {\n this._requireNotFrozen();\n this._gas = gas instanceof Long ? gas : Long.fromValue(gas);\n\n return this;\n }\n\n /**\n * @returns {?Hbar}\n */\n get payableAmount() {\n return this._amount;\n }\n\n /**\n * Sets the number of hbars to be sent with this function call.\n *\n * @param {number | string | Long | BigNumber | Hbar} amount\n * @returns {ContractExecuteTransaction}\n */\n setPayableAmount(amount) {\n this._requireNotFrozen();\n this._amount = amount instanceof Hbar ? amount : new Hbar(amount);\n\n return this;\n }\n\n /**\n * @returns {?Uint8Array}\n */\n get functionParameters() {\n return this._functionParameters;\n }\n\n /**\n * @param {Uint8Array} functionParameters\n * @returns {this}\n */\n setFunctionParameters(functionParameters) {\n this._requireNotFrozen();\n this._functionParameters = functionParameters;\n\n return this;\n }\n\n /**\n * @param {string} name\n * @param {ContractFunctionParameters} [functionParameters]\n * @returns {this}\n */\n setFunction(name, functionParameters) {\n this._requireNotFrozen();\n this._functionParameters =\n functionParameters != null\n ? functionParameters._build(name)\n : new ContractFunctionParameters()._build(name);\n\n return this;\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (this._contractId != null) {\n this._contractId.validateChecksum(client);\n }\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.smartContract.contractCallMethod(request);\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"contractCall\";\n }\n\n /**\n * @override\n * @protected\n * @returns {HashgraphProto.proto.IContractCallTransactionBody}\n */\n _makeTransactionData() {\n return {\n contractID:\n this._contractId != null\n ? this._contractId._toProtobuf()\n : null,\n gas: this._gas,\n amount: this._amount != null ? this._amount.toTinybars() : null,\n functionParameters: this._functionParameters,\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `ContractExecuteTransaction:${timestamp.toString()}`;\n }\n}\n\nTRANSACTION_REGISTRY.set(\n \"contractCall\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n ContractExecuteTransaction._fromProtobuf,\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport ContractId from \"./ContractId.js\";\nimport AccountId from \"../account/AccountId.js\";\nimport StakingInfo from \"../StakingInfo.js\";\nimport Timestamp from \"../Timestamp.js\";\nimport Duration from \"../Duration.js\";\nimport Hbar from \"../Hbar.js\";\nimport Long from \"long\";\nimport * as HashgraphProto from \"@hashgraph/proto\";\nimport TokenRelationshipMap from \"../account/TokenRelationshipMap.js\";\nimport Key from \"../Key.js\";\nimport LedgerId from \"../LedgerId.js\";\n\nconst { proto } = HashgraphProto;\n\n/**\n * @typedef {import(\"../StakingInfo.js\").StakingInfoJson} StakingInfoJson\n */\n\n/**\n * Response when the client sends the node CryptoGetInfoQuery.\n */\nexport default class ContractInfo {\n /**\n * @private\n * @param {object} props\n * @param {ContractId} props.contractId\n * @param {AccountId} props.accountId\n * @param {string} props.contractAccountId\n * @param {?Key} props.adminKey\n * @param {Timestamp} props.expirationTime\n * @param {Duration} props.autoRenewPeriod\n * @param {?AccountId} props.autoRenewAccountId\n * @param {Long} props.storage\n * @param {string} props.contractMemo\n * @param {Hbar} props.balance\n * @param {boolean} props.isDeleted\n * @param {TokenRelationshipMap} props.tokenRelationships\n * @param {LedgerId|null} props.ledgerId\n * @param {?StakingInfo} props.stakingInfo\n */\n constructor(props) {\n /**\n * ID of the contract instance, in the format used in transactions.\n *\n * @readonly\n */\n this.contractId = props.contractId;\n\n /**\n * ID of the cryptocurrency account owned by the contract instance,\n * in the format used in transactions.\n *\n * @readonly\n */\n this.accountId = props.accountId;\n\n /**\n * ID of both the contract instance and the cryptocurrency account owned by the contract\n * instance, in the format used by Solidity.\n *\n * @readonly\n */\n this.contractAccountId = props.contractAccountId;\n\n /**\n * The state of the instance and its fields can be modified arbitrarily if this key signs a\n * transaction to modify it. If this is null, then such modifications are not possible,\n * and there is no administrator that can override the normal operation of this smart\n * contract instance. Note that if it is created with no admin keys, then there is no\n * administrator to authorize changing the admin keys, so there can never be any admin keys\n * for that instance.\n *\n * @readonly\n */\n this.adminKey = props.adminKey != null ? props.adminKey : null;\n\n /**\n * The current time at which this contract instance (and its account) is set to expire.\n *\n * @readonly\n */\n this.expirationTime = props.expirationTime;\n\n /**\n * The expiration time will extend every this many seconds. If there are insufficient funds,\n * then it extends as long as possible. If the account is empty when it expires,\n * then it is deleted.\n *\n * @readonly\n */\n this.autoRenewPeriod = props.autoRenewPeriod;\n\n /**\n * ID of the an account to charge for auto-renewal of this contract. If not set, or set\n * to an account with zero hbar balance, the contract's own hbar balance will be used\n * to cover auto-renewal fees.\n *\n * @readonly\n */\n this.autoRenewAccountId = props.autoRenewAccountId;\n\n /**\n * Number of bytes of storage being used by this instance (which affects the cost to\n * extend the expiration time).\n *\n * @readonly\n */\n this.storage = props.storage;\n\n /**\n * The memo associated with the contract (max 100 bytes).\n *\n * @readonly\n */\n this.contractMemo = props.contractMemo;\n\n /**\n * The current balance of the contract.\n *\n * @readonly\n */\n this.balance = props.balance;\n\n /**\n * Whether the contract has been deleted\n *\n * @readonly\n */\n this.isDeleted = props.isDeleted;\n\n /**\n * The tokens associated to the contract\n *\n * @readonly\n */\n this.tokenRelationships = props.tokenRelationships;\n\n /**\n * The ledger ID the response was returned from; please see HIP-198 for the network-specific IDs.\n */\n this.ledgerId = props.ledgerId;\n\n /**\n * Staking metadata for this account.\n */\n this.stakingInfo = props.stakingInfo;\n\n Object.freeze(this);\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ContractGetInfoResponse.IContractInfo} info\n * @returns {ContractInfo}\n */\n static _fromProtobuf(info) {\n const autoRenewPeriod = /** @type {Long | number} */ (\n /** @type {HashgraphProto.proto.IDuration} */ (info.autoRenewPeriod)\n .seconds\n );\n\n return new ContractInfo({\n contractId: ContractId._fromProtobuf(\n /** @type {HashgraphProto.proto.IContractID} */ (\n info.contractID\n ),\n ),\n accountId: AccountId._fromProtobuf(\n /** @type {HashgraphProto.proto.IAccountID} */ (info.accountID),\n ),\n contractAccountId:\n info.contractAccountID != null ? info.contractAccountID : \"\",\n adminKey:\n info.adminKey != null\n ? Key._fromProtobufKey(info.adminKey)\n : null,\n expirationTime: Timestamp._fromProtobuf(\n /** @type {HashgraphProto.proto.ITimestamp} */ (\n info.expirationTime\n ),\n ),\n autoRenewPeriod: new Duration(autoRenewPeriod),\n autoRenewAccountId:\n info.autoRenewAccountId != null\n ? AccountId._fromProtobuf(info.autoRenewAccountId)\n : null,\n storage:\n info.storage != null\n ? info.storage instanceof Long\n ? info.storage\n : Long.fromValue(info.storage)\n : Long.ZERO,\n contractMemo: info.memo != null ? info.memo : \"\",\n balance: Hbar.fromTinybars(info.balance != null ? info.balance : 0),\n isDeleted: /** @type {boolean} */ (info.deleted),\n tokenRelationships: TokenRelationshipMap._fromProtobuf(\n info.tokenRelationships != null ? info.tokenRelationships : [],\n ),\n ledgerId:\n info.ledgerId != null\n ? LedgerId.fromBytes(info.ledgerId)\n : null,\n stakingInfo:\n info.stakingInfo != null\n ? StakingInfo._fromProtobuf(info.stakingInfo)\n : null,\n });\n }\n\n /**\n * @internal\n * @returns {HashgraphProto.proto.ContractGetInfoResponse.IContractInfo}\n */\n _toProtobuf() {\n return {\n contractID: this.contractId._toProtobuf(),\n accountID: this.accountId._toProtobuf(),\n contractAccountID: this.contractAccountId,\n adminKey:\n this.adminKey != null ? this.adminKey._toProtobufKey() : null,\n expirationTime: this.expirationTime._toProtobuf(),\n autoRenewPeriod:\n this.autoRenewPeriod != null\n ? this.autoRenewPeriod._toProtobuf()\n : null,\n autoRenewAccountId:\n this.autoRenewAccountId != null\n ? this.autoRenewAccountId._toProtobuf()\n : null,\n storage: this.storage,\n memo: this.contractMemo,\n balance: this.balance.toTinybars(),\n deleted: this.isDeleted,\n tokenRelationships:\n this.tokenRelationships != null\n ? this.tokenRelationships._toProtobuf()\n : null,\n ledgerId: this.ledgerId != null ? this.ledgerId.toBytes() : null,\n stakingInfo:\n this.stakingInfo != null\n ? this.stakingInfo._toProtobuf()\n : null,\n };\n }\n\n /**\n * @param {Uint8Array} bytes\n * @returns {ContractInfo}\n */\n static fromBytes(bytes) {\n return ContractInfo._fromProtobuf(\n proto.ContractGetInfoResponse.ContractInfo.decode(bytes),\n );\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytes() {\n return proto.ContractGetInfoResponse.ContractInfo.encode(\n this._toProtobuf(),\n ).finish();\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Query, { QUERY_REGISTRY } from \"../query/Query.js\";\nimport ContractId from \"./ContractId.js\";\nimport ContractInfo from \"./ContractInfo.js\";\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport Hbar from \"../Hbar.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.IQuery} HashgraphProto.proto.IQuery\n * @typedef {import(\"@hashgraph/proto\").proto.IQueryHeader} HashgraphProto.proto.IQueryHeader\n * @typedef {import(\"@hashgraph/proto\").proto.IResponse} HashgraphProto.proto.IResponse\n * @typedef {import(\"@hashgraph/proto\").proto.IResponseHeader} HashgraphProto.proto.IResponseHeader\n * @typedef {import(\"@hashgraph/proto\").proto.IContractGetInfoQuery} HashgraphProto.proto.IContractGetInfoQuery\n * @typedef {import(\"@hashgraph/proto\").proto.IContractGetInfoResponse} HashgraphProto.proto.IContractGetInfoResponse\n * @typedef {import(\"@hashgraph/proto\").proto.ContractGetInfoResponse.IContractInfo} HashgraphProto.proto.ContractGetInfoResponse.IContractInfo\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../account/AccountId.js\").default} AccountId\n */\n\n/**\n * @augments {Query}\n */\nexport default class ContractInfoQuery extends Query {\n /**\n * @param {object} [props]\n * @param {ContractId | string} [props.contractId]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @type {?ContractId}\n * @private\n */\n this._contractId = null;\n if (props.contractId != null) {\n this.setContractId(props.contractId);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.IQuery} query\n * @returns {ContractInfoQuery}\n */\n static _fromProtobuf(query) {\n const info = /** @type {HashgraphProto.proto.IContractGetInfoQuery} */ (\n query.contractGetInfo\n );\n\n return new ContractInfoQuery({\n contractId:\n info.contractID != null\n ? ContractId._fromProtobuf(info.contractID)\n : undefined,\n });\n }\n\n /**\n * @returns {?ContractId}\n */\n get contractId() {\n return this._contractId;\n }\n\n /**\n * Set the contract ID for which the info is being requested.\n *\n * @param {ContractId | string} contractId\n * @returns {ContractInfoQuery}\n */\n setContractId(contractId) {\n this._contractId =\n typeof contractId === \"string\"\n ? ContractId.fromString(contractId)\n : contractId.clone();\n\n return this;\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (this._contractId != null) {\n this._contractId.validateChecksum(client);\n }\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.IQuery} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.smartContract.getContractInfo(request);\n }\n\n /**\n * @override\n * @param {import(\"../client/Client.js\").default} client\n * @returns {Promise}\n */\n async getCost(client) {\n return super.getCost(client);\n }\n\n /**\n * @override\n * @internal\n * @param {HashgraphProto.proto.IResponse} response\n * @returns {HashgraphProto.proto.IResponseHeader}\n */\n _mapResponseHeader(response) {\n const contractGetInfo =\n /** @type {HashgraphProto.proto.IContractGetInfoResponse} */ (\n response.contractGetInfo\n );\n return /** @type {HashgraphProto.proto.IResponseHeader} */ (\n contractGetInfo.header\n );\n }\n\n /**\n * @protected\n * @override\n * @param {HashgraphProto.proto.IResponse} response\n * @param {AccountId} nodeAccountId\n * @param {HashgraphProto.proto.IQuery} request\n * @returns {Promise}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _mapResponse(response, nodeAccountId, request) {\n const info =\n /** @type {HashgraphProto.proto.IContractGetInfoResponse} */ (\n response.contractGetInfo\n );\n\n return Promise.resolve(\n ContractInfo._fromProtobuf(\n /** @type {HashgraphProto.proto.ContractGetInfoResponse.IContractInfo} */ (\n info.contractInfo\n ),\n ),\n );\n }\n\n /**\n * @override\n * @internal\n * @param {HashgraphProto.proto.IQueryHeader} header\n * @returns {HashgraphProto.proto.IQuery}\n */\n _onMakeRequest(header) {\n return {\n contractGetInfo: {\n header,\n contractID:\n this._contractId != null\n ? this._contractId._toProtobuf()\n : null,\n },\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp =\n this._paymentTransactionId != null &&\n this._paymentTransactionId.validStart != null\n ? this._paymentTransactionId.validStart\n : this._timestamp;\n\n return `ContractInfoQuery:${timestamp.toString()}`;\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/unbound-method\nQUERY_REGISTRY.set(\"contractGetInfo\", ContractInfoQuery._fromProtobuf);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport AccountId from \"../account/AccountId.js\";\nimport ContractId from \"./ContractId.js\";\nimport FileId from \"../file/FileId.js\";\nimport Transaction, {\n TRANSACTION_REGISTRY,\n} from \"../transaction/Transaction.js\";\nimport Duration from \"../Duration.js\";\nimport Timestamp from \"../Timestamp.js\";\nimport Key from \"../Key.js\";\nimport Long from \"long\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HashgraphProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HashgraphProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HashgraphProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} HashgraphProto.proto.ITransactionResponse\n * @typedef {import(\"@hashgraph/proto\").proto.IContractUpdateTransactionBody} HashgraphProto.proto.IContractUpdateTransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.IAccountID} HashgraphProto.proto.IAccountID\n * @typedef {import(\"@hashgraph/proto\").proto.IContractID} HashgraphProto.proto.IContractID\n * @typedef {import(\"@hashgraph/proto\").proto.IFileID} HashgraphProto.proto.IFileID\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n */\n\nexport default class ContractUpdateTransaction extends Transaction {\n /**\n * @param {object} props\n * @param {ContractId | string} [props.contractId]\n * @param {FileId | string} [props.bytecodeFileId]\n * @param {Timestamp | Date} [props.expirationTime]\n * @param {Key} [props.adminKey]\n * @param {AccountId | string} [props.proxyAccountId]\n * @param {Duration | Long | number} [props.autoRenewPeriod]\n * @param {string} [props.contractMemo]\n * @param {number} [props.maxAutomaticTokenAssociations]\n * @param {AccountId | string} [props.stakedAccountId]\n * @param {Long | number} [props.stakedNodeId]\n * @param {boolean} [props.declineStakingReward]\n * @param {AccountId} [props.autoRenewAccountId]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {?ContractId}\n */\n this._contractId = null;\n\n /**\n * @private\n * @type {?Timestamp}\n */\n this._expirationTime = null;\n\n /**\n * @private\n * @type {?Key}\n */\n this._adminKey = null;\n\n /**\n * @private\n * @type {?AccountId}\n */\n this._proxyAccountId = null;\n\n /**\n * @private\n * @type {?Duration}\n */\n this._autoRenewPeriod = null;\n\n /**\n * @private\n * @type {?FileId}\n */\n this._bytecodeFileId = null;\n\n /**\n * @private\n * @type {?string}\n */\n this._contractMemo = null;\n\n /**\n * @private\n * @type {?number}\n */\n this._maxAutomaticTokenAssociations = null;\n\n /**\n * @private\n * @type {?AccountId}\n */\n this._stakedAccountId = null;\n\n /**\n * @private\n * @type {?Long}\n */\n this._stakedNodeId = null;\n\n /**\n * @private\n * @type {?boolean}\n */\n this._declineStakingReward = null;\n\n /**\n * @type {?AccountId}\n */\n this._autoRenewAccountId = null;\n\n if (props.contractId != null) {\n this.setContractId(props.contractId);\n }\n\n if (props.expirationTime != null) {\n this.setExpirationTime(props.expirationTime);\n }\n\n if (props.adminKey != null) {\n this.setAdminKey(props.adminKey);\n }\n\n if (props.proxyAccountId != null) {\n // eslint-disable-next-line deprecation/deprecation\n this.setProxyAccountId(props.proxyAccountId);\n }\n\n if (props.autoRenewPeriod != null) {\n this.setAutoRenewPeriod(props.autoRenewPeriod);\n }\n\n if (props.bytecodeFileId != null) {\n this.setBytecodeFileId(props.bytecodeFileId);\n }\n\n if (props.contractMemo != null) {\n this.setContractMemo(props.contractMemo);\n }\n\n if (props.maxAutomaticTokenAssociations != null) {\n this.setMaxAutomaticTokenAssociations(\n props.maxAutomaticTokenAssociations,\n );\n }\n\n if (props.stakedAccountId != null) {\n this.setStakedAccountId(props.stakedAccountId);\n }\n\n if (props.stakedNodeId != null) {\n this.setStakedNodeId(props.stakedNodeId);\n }\n\n if (props.declineStakingReward != null) {\n this.setDeclineStakingReward(props.declineStakingReward);\n }\n\n if (props.autoRenewAccountId != null) {\n this.setAutoRenewAccountId(props.autoRenewAccountId);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransaction[]} transactions\n * @param {HashgraphProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HashgraphProto.proto.ITransactionBody[]} bodies\n * @returns {ContractUpdateTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const update =\n /** @type {HashgraphProto.proto.IContractUpdateTransactionBody} */ (\n body.contractUpdateInstance\n );\n\n let autoRenewPeriod = undefined;\n if (\n update.autoRenewPeriod != null &&\n update.autoRenewPeriod.seconds != null\n ) {\n autoRenewPeriod = update.autoRenewPeriod.seconds;\n }\n\n let contractMemo = undefined;\n if (\n update.memoWrapper != null &&\n Object.hasOwn(update.memoWrapper, \"value\") &&\n update.memoWrapper.value != null\n ) {\n contractMemo = update.memoWrapper.value;\n }\n\n let maxAutomaticTokenAssociations = undefined;\n if (\n update.maxAutomaticTokenAssociations != null &&\n update.maxAutomaticTokenAssociations.value != null\n ) {\n maxAutomaticTokenAssociations =\n update.maxAutomaticTokenAssociations.value;\n }\n\n return Transaction._fromProtobufTransactions(\n new ContractUpdateTransaction({\n contractId:\n update.contractID != null\n ? ContractId._fromProtobuf(\n /** @type {HashgraphProto.proto.IContractID} */ (\n update.contractID\n ),\n )\n : undefined,\n bytecodeFileId:\n update.fileID != null\n ? FileId._fromProtobuf(\n /** @type {HashgraphProto.proto.IFileID} */ (\n update.fileID\n ),\n )\n : undefined,\n expirationTime:\n update.expirationTime != null\n ? Timestamp._fromProtobuf(update.expirationTime)\n : undefined,\n adminKey:\n update.adminKey != null\n ? Key._fromProtobufKey(update.adminKey)\n : undefined,\n proxyAccountId:\n update.proxyAccountID != null\n ? AccountId._fromProtobuf(\n /** @type {HashgraphProto.proto.IAccountID} */ (\n update.proxyAccountID\n ),\n )\n : undefined,\n autoRenewPeriod,\n contractMemo,\n maxAutomaticTokenAssociations,\n stakedAccountId:\n update.stakedAccountId != null\n ? AccountId._fromProtobuf(update.stakedAccountId)\n : undefined,\n stakedNodeId:\n update.stakedNodeId != null\n ? update.stakedNodeId\n : undefined,\n declineStakingReward:\n update.declineReward != null &&\n Boolean(update.declineReward) == true,\n autoRenewAccountId:\n update.autoRenewAccountId != null\n ? AccountId._fromProtobuf(update.autoRenewAccountId)\n : undefined,\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @returns {?ContractId}\n */\n get contractId() {\n return this._contractId;\n }\n\n /**\n * Sets the contract ID which is being deleted in this transaction.\n *\n * @param {ContractId | string} contractId\n * @returns {ContractUpdateTransaction}\n */\n setContractId(contractId) {\n this._requireNotFrozen();\n this._contractId =\n typeof contractId === \"string\"\n ? ContractId.fromString(contractId)\n : contractId.clone();\n\n return this;\n }\n\n /**\n * @returns {?Timestamp}\n */\n get expirationTime() {\n return this._expirationTime;\n }\n\n /**\n * Sets the contract ID which is being deleted in this transaction.\n *\n * @param {Timestamp | Date} expirationTime\n * @returns {ContractUpdateTransaction}\n */\n setExpirationTime(expirationTime) {\n this._requireNotFrozen();\n this._expirationTime =\n expirationTime instanceof Timestamp\n ? expirationTime\n : Timestamp.fromDate(expirationTime);\n\n return this;\n }\n\n /**\n * @returns {?Key}\n */\n get adminKey() {\n return this._adminKey;\n }\n\n /**\n * @param {Key} adminKey\n * @returns {this}\n */\n setAdminKey(adminKey) {\n this._requireNotFrozen();\n this._adminKey = adminKey;\n\n return this;\n }\n\n /**\n * @deprecated\n * @returns {?AccountId}\n */\n get proxyAccountId() {\n return this._proxyAccountId;\n }\n\n /**\n * @deprecated\n * @param {AccountId | string} proxyAccountId\n * @returns {this}\n */\n setProxyAccountId(proxyAccountId) {\n this._requireNotFrozen();\n this._proxyAccountId =\n typeof proxyAccountId === \"string\"\n ? AccountId.fromString(proxyAccountId)\n : proxyAccountId.clone();\n\n return this;\n }\n\n /**\n * @returns {?Duration}\n */\n get autoRenewPeriod() {\n return this._autoRenewPeriod;\n }\n\n /**\n * @param {Duration | Long | number} autoRenewPeriod\n * @returns {this}\n */\n setAutoRenewPeriod(autoRenewPeriod) {\n this._requireNotFrozen();\n this._autoRenewPeriod =\n autoRenewPeriod instanceof Duration\n ? autoRenewPeriod\n : new Duration(autoRenewPeriod);\n\n return this;\n }\n\n /**\n * @returns {?FileId}\n */\n get bytecodeFileId() {\n return this._bytecodeFileId;\n }\n\n /**\n * @param {FileId | string} bytecodeFileId\n * @returns {this}\n */\n setBytecodeFileId(bytecodeFileId) {\n console.warn(\"Deprecated: there is no replacement\");\n this._requireNotFrozen();\n this._bytecodeFileId =\n typeof bytecodeFileId === \"string\"\n ? FileId.fromString(bytecodeFileId)\n : bytecodeFileId.clone();\n\n return this;\n }\n\n /**\n * @returns {?string}\n */\n get contractMemo() {\n return this._contractMemo;\n }\n\n /**\n * @param {string} contractMemo\n * @returns {this}\n */\n setContractMemo(contractMemo) {\n this._requireNotFrozen();\n this._contractMemo = contractMemo;\n\n return this;\n }\n\n /**\n * @returns {this}\n */\n clearContractMemo() {\n this._requireNotFrozen();\n this._contractMemo = null;\n\n return this;\n }\n\n /**\n * @returns {number | null}\n */\n get maxAutomaticTokenAssociations() {\n return this._maxAutomaticTokenAssociations;\n }\n\n /**\n * @param {number} maxAutomaticTokenAssociations\n * @returns {this}\n */\n setMaxAutomaticTokenAssociations(maxAutomaticTokenAssociations) {\n this._requireNotFrozen();\n this._maxAutomaticTokenAssociations = maxAutomaticTokenAssociations;\n\n return this;\n }\n\n /**\n * @returns {?AccountId}\n */\n get stakedAccountId() {\n return this._stakedAccountId;\n }\n\n /**\n * @param {AccountId | string} stakedAccountId\n * @returns {this}\n */\n setStakedAccountId(stakedAccountId) {\n this._requireNotFrozen();\n this._stakedAccountId =\n typeof stakedAccountId === \"string\"\n ? AccountId.fromString(stakedAccountId)\n : stakedAccountId;\n\n return this;\n }\n\n /**\n * @returns {?Long}\n */\n get stakedNodeId() {\n return this._stakedNodeId;\n }\n\n /**\n * @param {Long | number} stakedNodeId\n * @returns {this}\n */\n setStakedNodeId(stakedNodeId) {\n this._requireNotFrozen();\n this._stakedNodeId = Long.fromValue(stakedNodeId);\n\n return this;\n }\n\n /**\n * @returns {?boolean}\n */\n get declineStakingRewards() {\n return this._declineStakingReward;\n }\n\n /**\n * @param {boolean} declineStakingReward\n * @returns {this}\n */\n setDeclineStakingReward(declineStakingReward) {\n this._requireNotFrozen();\n this._declineStakingReward = declineStakingReward;\n\n return this;\n }\n\n /**\n * @returns {?AccountId}\n */\n get autoRenewAccountId() {\n return this._autoRenewAccountId;\n }\n\n /**\n * If set to the sentinel 0.0.0 AccountID, this field removes the contract's auto-renew\n * account. Otherwise it updates the contract's auto-renew account to the referenced account.\n *\n * @param {string | AccountId} autoRenewAccountId\n * @returns {this}\n */\n setAutoRenewAccountId(autoRenewAccountId) {\n this._requireNotFrozen();\n this._autoRenewAccountId =\n typeof autoRenewAccountId === \"string\"\n ? AccountId.fromString(autoRenewAccountId)\n : autoRenewAccountId;\n\n return this;\n }\n\n /**\n * @returns {this}\n */\n clearAutoRenewAccountId() {\n this._autoRenewAccountId = new AccountId(0);\n return this;\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (this._contractId != null) {\n this._contractId.validateChecksum(client);\n }\n\n if (this._bytecodeFileId != null) {\n this._bytecodeFileId.validateChecksum(client);\n }\n\n if (this._proxyAccountId != null) {\n this._proxyAccountId.validateChecksum(client);\n }\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.smartContract.updateContract(request);\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"contractUpdateInstance\";\n }\n\n /**\n * @override\n * @protected\n * @returns {HashgraphProto.proto.IContractUpdateTransactionBody}\n */\n _makeTransactionData() {\n return {\n contractID:\n this._contractId != null\n ? this._contractId._toProtobuf()\n : null,\n expirationTime:\n this._expirationTime != null\n ? this._expirationTime._toProtobuf()\n : null,\n adminKey:\n this._adminKey != null ? this._adminKey._toProtobufKey() : null,\n proxyAccountID:\n this._proxyAccountId != null\n ? this._proxyAccountId._toProtobuf()\n : null,\n autoRenewPeriod:\n this._autoRenewPeriod != null\n ? this._autoRenewPeriod._toProtobuf()\n : null,\n fileID: this._bytecodeFileId\n ? this._bytecodeFileId._toProtobuf()\n : null,\n memoWrapper:\n this._contractMemo != null\n ? {\n value: this._contractMemo,\n }\n : null,\n maxAutomaticTokenAssociations:\n this._maxAutomaticTokenAssociations != null\n ? {\n value: this._maxAutomaticTokenAssociations,\n }\n : null,\n stakedAccountId:\n this.stakedAccountId != null\n ? this.stakedAccountId._toProtobuf()\n : null,\n stakedNodeId: this.stakedNodeId,\n declineReward:\n this.declineStakingRewards != null\n ? { value: this.declineStakingRewards }\n : null,\n autoRenewAccountId:\n this._autoRenewAccountId != null\n ? this._autoRenewAccountId._toProtobuf()\n : null,\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `ContractUpdateTransaction:${timestamp.toString()}`;\n }\n}\n\nTRANSACTION_REGISTRY.set(\n \"contractUpdateInstance\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n ContractUpdateTransaction._fromProtobuf,\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport AccountId from \"../account/AccountId.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ICustomFee} HashgraphProto.proto.ICustomFee\n */\n\nexport default class CustomFee {\n /**\n * @param {object} props\n * @param {AccountId | string} [props.feeCollectorAccountId]\n * @param {boolean} [props.allCollectorsAreExempt]\n */\n constructor(props = {}) {\n /**\n * @type {?AccountId}\n */\n this._feeCollectorAccountId = null;\n\n this._allCollectorsAreExempt = false;\n\n if (props.feeCollectorAccountId != null) {\n this.setFeeCollectorAccountId(props.feeCollectorAccountId);\n }\n\n if (props.allCollectorsAreExempt != null) {\n this.setAllCollectorsAreExempt(props.allCollectorsAreExempt);\n }\n }\n\n /**\n * @returns {?AccountId}\n */\n get feeCollectorAccountId() {\n return this._feeCollectorAccountId;\n }\n\n /**\n * @param {AccountId | string} feeCollectorAccountId\n * @returns {this}\n */\n setFeeCollectorAccountId(feeCollectorAccountId) {\n this._feeCollectorAccountId =\n typeof feeCollectorAccountId === \"string\"\n ? AccountId.fromString(feeCollectorAccountId)\n : feeCollectorAccountId;\n return this;\n }\n\n /**\n * @returns {boolean}\n */\n get allCollectorsAreExempt() {\n return this._allCollectorsAreExempt;\n }\n\n /**\n * @param {boolean} allCollectorsAreExempt\n * @returns {this}\n */\n setAllCollectorsAreExempt(allCollectorsAreExempt) {\n this._allCollectorsAreExempt = allCollectorsAreExempt;\n return this;\n }\n\n /**\n * @internal\n * @abstract\n * @param {HashgraphProto.proto.ICustomFee} info\n * @returns {CustomFee}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n static _fromProtobuf(info) {\n throw new Error(\"not implemented\");\n }\n\n /**\n * @internal\n * @abstract\n * @returns {HashgraphProto.proto.ICustomFee}\n */\n _toProtobuf() {\n throw new Error(\"not implemented\");\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport TokenId from \"./TokenId.js\";\nimport CustomFee from \"./CustomFee.js\";\nimport AccountId from \"../account/AccountId.js\";\nimport Long from \"long\";\nimport Hbar from \"../Hbar.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ICustomFee} HashgraphProto.proto.ICustomFee\n * @typedef {import(\"@hashgraph/proto\").proto.IFixedFee} HashgraphProto.proto.IFixedFee\n */\n\nexport default class CustomFixedFee extends CustomFee {\n /**\n * @param {object} props\n * @param {AccountId | string} [props.feeCollectorAccountId]\n * @param {boolean} [props.allCollectorsAreExempt]\n * @param {TokenId | string} [props.denominatingTokenId]\n * @param {Long | number} [props.amount]\n */\n constructor(props = {}) {\n super(props);\n\n /**\n * @type {?TokenId}\n */\n this._denominatingTokenId = null;\n\n if (props.denominatingTokenId != null) {\n this.setDenominatingTokenId(props.denominatingTokenId);\n }\n\n /**\n * @type {?Long}\n */\n this._amount = null;\n\n if (props.amount != null) {\n this.setAmount(props.amount);\n }\n }\n\n /**\n * @param {Hbar} amount\n * @returns {CustomFixedFee}\n */\n setHbarAmount(amount) {\n this._amount = amount.toTinybars();\n this._denominatingTokenId = null;\n return this;\n }\n\n /**\n * @returns {TokenId | Hbar | null}\n */\n get hbarAmount() {\n return this._denominatingTokenId != null\n ? null\n : Hbar.fromTinybars(this._amount != null ? this._amount : 0);\n }\n\n /**\n * @returns {CustomFixedFee}\n */\n setDenominatingTokenToSameToken() {\n this._denominatingTokenId = new TokenId(0, 0, 0);\n return this;\n }\n\n /**\n * @returns {?TokenId}\n */\n get denominatingTokenId() {\n return this._denominatingTokenId;\n }\n\n /**\n * @param {TokenId | string} denominatingTokenId\n * @returns {CustomFixedFee}\n */\n setDenominatingTokenId(denominatingTokenId) {\n this._denominatingTokenId =\n typeof denominatingTokenId === \"string\"\n ? TokenId.fromString(denominatingTokenId)\n : denominatingTokenId;\n return this;\n }\n\n /**\n * @returns {?Long}\n */\n get amount() {\n return this._amount;\n }\n\n /**\n * @param {Long | number} amount\n * @returns {CustomFixedFee}\n */\n setAmount(amount) {\n this._amount =\n typeof amount === \"number\" ? Long.fromNumber(amount) : amount;\n return this;\n }\n\n /**\n * @internal\n * @override\n * @param {HashgraphProto.proto.ICustomFee} info\n * @returns {CustomFee}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n static _fromProtobuf(info) {\n const fee = /** @type {HashgraphProto.proto.IFixedFee} */ (\n info.fixedFee\n );\n\n return new CustomFixedFee({\n feeCollectorAccountId:\n info.feeCollectorAccountId != null\n ? AccountId._fromProtobuf(info.feeCollectorAccountId)\n : undefined,\n allCollectorsAreExempt:\n info.allCollectorsAreExempt != null\n ? info.allCollectorsAreExempt\n : undefined,\n denominatingTokenId:\n fee.denominatingTokenId != null\n ? TokenId._fromProtobuf(fee.denominatingTokenId)\n : undefined,\n amount: fee.amount != null ? fee.amount : undefined,\n });\n }\n\n /**\n * @internal\n * @abstract\n * @returns {HashgraphProto.proto.ICustomFee}\n */\n _toProtobuf() {\n return {\n feeCollectorAccountId:\n this.feeCollectorAccountId != null\n ? this.feeCollectorAccountId._toProtobuf()\n : null,\n allCollectorsAreExempt: this.allCollectorsAreExempt,\n fixedFee: {\n denominatingTokenId:\n this._denominatingTokenId != null\n ? this._denominatingTokenId._toProtobuf()\n : null,\n amount: this._amount,\n },\n };\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nexport default class FeeAssessmentMethod {\n /**\n * @hideconstructor\n * @internal\n * @param {boolean} value\n */\n constructor(value) {\n /** @readonly */\n this._value = value;\n\n Object.freeze(this);\n }\n\n /**\n * @returns {string}\n */\n toString() {\n switch (this) {\n case FeeAssessmentMethod.Inclusive:\n return \"INCLUSIVE\";\n case FeeAssessmentMethod.Exclusive:\n return \"EXCLUSIVE\";\n default:\n return `UNKNOWN (${this._value.toString()})`;\n }\n }\n\n /**\n * @internal\n * @param {boolean} value\n * @returns {FeeAssessmentMethod}\n */\n static _fromValue(value) {\n switch (value) {\n case false:\n return FeeAssessmentMethod.Inclusive;\n case true:\n return FeeAssessmentMethod.Exclusive;\n }\n }\n\n /**\n * @returns {boolean}\n */\n valueOf() {\n return this._value;\n }\n}\n\nFeeAssessmentMethod.Inclusive = new FeeAssessmentMethod(false);\nFeeAssessmentMethod.Exclusive = new FeeAssessmentMethod(true);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport CustomFee from \"./CustomFee.js\";\nimport AccountId from \"../account/AccountId.js\";\nimport FeeAssessmentMethod from \"./FeeAssessmentMethod.js\";\nimport Long from \"long\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ICustomFee} HashgraphProto.proto.ICustomFee\n * @typedef {import(\"@hashgraph/proto\").proto.IFractionalFee} HashgraphProto.proto.IFractionalFee\n * @typedef {import(\"@hashgraph/proto\").proto.IFraction} HashgraphProto.proto.IFraction\n */\n\nexport default class CustomFractionalFee extends CustomFee {\n /**\n * @param {object} props\n * @param {AccountId | string} [props.feeCollectorAccountId]\n * @param {boolean} [props.allCollectorsAreExempt]\n * @param {Long | number} [props.numerator]\n * @param {Long | number} [props.denominator]\n * @param {Long | number} [props.min]\n * @param {Long | number} [props.max]\n * @param {FeeAssessmentMethod} [props.assessmentMethod]\n */\n constructor(props = {}) {\n super(props);\n\n /**\n * @type {?Long}\n */\n this._numerator = null;\n\n if (props.numerator != null) {\n this.setNumerator(props.numerator);\n }\n\n /**\n * @type {?Long}\n */\n this._denominator = null;\n\n if (props.denominator != null) {\n this.setDenominator(props.denominator);\n }\n\n /**\n * @type {?Long}\n */\n this._min = null;\n\n if (props.min != null) {\n this.setMin(props.min);\n }\n\n /**\n * @type {?Long}\n */\n this._max;\n\n if (props.max != null) {\n this.setMax(props.max);\n }\n\n /**\n * @type {?FeeAssessmentMethod}\n */\n this._assessmentMethod;\n\n if (props.assessmentMethod != null) {\n this.setAssessmentMethod(props.assessmentMethod);\n }\n }\n\n /**\n * @returns {?Long}\n */\n get numerator() {\n return this._numerator;\n }\n\n /**\n * @param {Long | number} numerator\n * @returns {CustomFractionalFee}\n */\n setNumerator(numerator) {\n this._numerator =\n typeof numerator === \"number\"\n ? Long.fromNumber(numerator)\n : numerator;\n return this;\n }\n\n /**\n * @returns {?Long}\n */\n get denominator() {\n return this._denominator;\n }\n\n /**\n * @param {Long | number} denominator\n * @returns {CustomFractionalFee}\n */\n setDenominator(denominator) {\n this._denominator =\n typeof denominator === \"number\"\n ? Long.fromNumber(denominator)\n : denominator;\n return this;\n }\n\n /**\n * @returns {?Long}\n */\n get min() {\n return this._min;\n }\n\n /**\n * @param {Long | number} min\n * @returns {CustomFractionalFee}\n */\n setMin(min) {\n this._min = typeof min === \"number\" ? Long.fromNumber(min) : min;\n return this;\n }\n\n /**\n * @returns {?Long}\n */\n get max() {\n return this._max;\n }\n\n /**\n * @param {Long | number} max\n * @returns {CustomFractionalFee}\n */\n setMax(max) {\n this._max = typeof max === \"number\" ? Long.fromNumber(max) : max;\n return this;\n }\n\n /**\n * @returns {?FeeAssessmentMethod}\n */\n get assessmentMethod() {\n return this._assessmentMethod;\n }\n\n /**\n * @param {FeeAssessmentMethod} assessmentMethod\n * @returns {CustomFractionalFee}\n */\n setAssessmentMethod(assessmentMethod) {\n this._assessmentMethod = assessmentMethod;\n return this;\n }\n\n /**\n * @internal\n * @override\n * @param {HashgraphProto.proto.ICustomFee} info\n * @returns {CustomFee}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n static _fromProtobuf(info) {\n const fee = /** @type {HashgraphProto.proto.IFractionalFee} */ (\n info.fractionalFee\n );\n const fractional = /** @type {HashgraphProto.proto.IFraction} */ (\n fee.fractionalAmount\n );\n\n return new CustomFractionalFee({\n feeCollectorAccountId:\n info.feeCollectorAccountId != null\n ? AccountId._fromProtobuf(info.feeCollectorAccountId)\n : undefined,\n allCollectorsAreExempt:\n info.allCollectorsAreExempt != null\n ? info.allCollectorsAreExempt\n : undefined,\n numerator:\n fractional.numerator != null ? fractional.numerator : undefined,\n denominator:\n fractional.denominator != null\n ? fractional.denominator\n : undefined,\n min: fee.minimumAmount != null ? fee.minimumAmount : undefined,\n max: fee.maximumAmount != null ? fee.maximumAmount : undefined,\n assessmentMethod:\n fee.netOfTransfers != null\n ? new FeeAssessmentMethod(fee.netOfTransfers)\n : undefined,\n });\n }\n\n /**\n * @internal\n * @abstract\n * @returns {HashgraphProto.proto.ICustomFee}\n */\n _toProtobuf() {\n return {\n feeCollectorAccountId:\n this.feeCollectorAccountId != null\n ? this.feeCollectorAccountId._toProtobuf()\n : null,\n allCollectorsAreExempt: this.allCollectorsAreExempt,\n fractionalFee: {\n fractionalAmount: {\n numerator: this._numerator,\n denominator: this._denominator,\n },\n minimumAmount: this._min,\n maximumAmount: this._max,\n netOfTransfers:\n this._assessmentMethod != null\n ? this._assessmentMethod.valueOf()\n : false,\n },\n };\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport CustomFee from \"./CustomFee.js\";\nimport AccountId from \"../account/AccountId.js\";\nimport Long from \"long\";\nimport CustomFixedFee from \"./CustomFixedFee.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.IFraction} HashgraphProto.proto.IFraction\n * @typedef {import(\"@hashgraph/proto\").proto.IRoyaltyFee} HashgraphProto.proto.IRoyaltyFee\n * @typedef {import(\"@hashgraph/proto\").proto.ICustomFee} HashgraphProto.proto.ICustomFee\n * @typedef {import(\"@hashgraph/proto\").proto.IFixedFee} HashgraphProto.proto.IFixedFee\n */\n\nexport default class CustomRoyalyFee extends CustomFee {\n /**\n * @param {object} props\n * @param {AccountId | string} [props.feeCollectorAccountId]\n * @param {boolean} [props.allCollectorsAreExempt]\n * @param {Long | number} [props.numerator]\n * @param {Long | number} [props.denominator]\n * @param {CustomFixedFee} [props.fallbackFee]\n */\n constructor(props = {}) {\n super(props);\n\n /**\n * @type {?CustomFixedFee}\n */\n this._fallbackFee = null;\n\n if (props.fallbackFee != null) {\n this.setFallbackFee(props.fallbackFee);\n }\n\n /**\n * @type {?Long}\n */\n this._numerator = null;\n\n if (props.numerator != null) {\n this.setNumerator(props.numerator);\n }\n\n /**\n * @type {?Long}\n */\n this._denominator = null;\n\n if (props.denominator != null) {\n this.setDenominator(props.denominator);\n }\n }\n\n /**\n * @returns {?CustomFixedFee}\n */\n get fallbackFee() {\n return this._fallbackFee;\n }\n\n /**\n * @param {CustomFixedFee} fallbackFee\n * @returns {CustomRoyalyFee}\n */\n setFallbackFee(fallbackFee) {\n this._fallbackFee = fallbackFee;\n return this;\n }\n\n /**\n * @returns {?Long}\n */\n get numerator() {\n return this._numerator;\n }\n\n /**\n * @param {Long | number} numerator\n * @returns {CustomRoyalyFee}\n */\n setNumerator(numerator) {\n this._numerator =\n typeof numerator === \"number\"\n ? Long.fromNumber(numerator)\n : numerator;\n return this;\n }\n\n /**\n * @returns {?Long}\n */\n get denominator() {\n return this._denominator;\n }\n\n /**\n * @param {Long | number} denominator\n * @returns {CustomRoyalyFee}\n */\n setDenominator(denominator) {\n this._denominator =\n typeof denominator === \"number\"\n ? Long.fromNumber(denominator)\n : denominator;\n return this;\n }\n\n /**\n * @internal\n * @override\n * @param {HashgraphProto.proto.ICustomFee} info\n * @returns {CustomFee}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n static _fromProtobuf(info) {\n const fee = /** @type {HashgraphProto.proto.IRoyaltyFee} */ (\n info.royaltyFee\n );\n const fraction = /** @type {HashgraphProto.proto.IFraction} */ (\n fee.exchangeValueFraction\n );\n\n return new CustomRoyalyFee({\n feeCollectorAccountId:\n info.feeCollectorAccountId != null\n ? AccountId._fromProtobuf(info.feeCollectorAccountId)\n : undefined,\n allCollectorsAreExempt:\n info.allCollectorsAreExempt != null\n ? info.allCollectorsAreExempt\n : undefined,\n fallbackFee:\n fee.fallbackFee != null\n ? /** @type {CustomFixedFee} */ (\n CustomFixedFee._fromProtobuf({\n fixedFee: fee.fallbackFee,\n })\n )\n : undefined,\n numerator:\n fraction.numerator != null ? fraction.numerator : undefined,\n denominator:\n fraction.denominator != null ? fraction.denominator : undefined,\n });\n }\n\n /**\n * @internal\n * @abstract\n * @returns {HashgraphProto.proto.ICustomFee}\n */\n _toProtobuf() {\n return {\n feeCollectorAccountId:\n this.feeCollectorAccountId != null\n ? this.feeCollectorAccountId._toProtobuf()\n : null,\n allCollectorsAreExempt: this.allCollectorsAreExempt,\n royaltyFee: {\n exchangeValueFraction: {\n numerator: this._numerator,\n denominator: this._denominator,\n },\n fallbackFee:\n this._fallbackFee != null\n ? this._fallbackFee._toProtobuf().fixedFee\n : null,\n },\n };\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport CACHE from \"../Cache.js\";\nimport ContractId from \"./ContractId.js\";\nimport * as hex from \"../encoding/hex.js\";\n\n/**\n * @namespace {proto}\n * @typedef {import(\"@hashgraph/proto\").proto.IContractID} HashgraphProto.proto.IContractID\n * @typedef {import(\"@hashgraph/proto\").proto.IKey} HashgraphProto.proto.IKey\n */\n\n/**\n * @typedef {import(\"long\")} Long\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n */\n\nexport default class DelegateContractId extends ContractId {\n /**\n * @param {number | Long | import(\"../EntityIdHelper\").IEntityId} props\n * @param {(number | Long)=} realm\n * @param {(number | Long)=} num\n * @param {Uint8Array=} evmAddress\n */\n constructor(props, realm, num, evmAddress) {\n super(props, realm, num, evmAddress);\n }\n\n /**\n * @param {Long | number} shard\n * @param {Long | number} realm\n * @param {string} evmAddress\n * @returns {ContractId}\n */\n static fromEvmAddress(shard, realm, evmAddress) {\n return new DelegateContractId(shard, realm, 0, hex.decode(evmAddress));\n }\n\n /**\n * @param {string} text\n * @returns {DelegateContractId}\n */\n static fromString(text) {\n return new DelegateContractId(ContractId.fromString(text));\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.IContractID} id\n * @returns {DelegateContractId}\n */\n static _fromProtobuf(id) {\n return new DelegateContractId(ContractId._fromProtobuf(id));\n }\n\n /**\n * @param {Uint8Array} bytes\n * @returns {DelegateContractId}\n */\n static fromBytes(bytes) {\n return new DelegateContractId(ContractId.fromBytes(bytes));\n }\n\n /**\n * @param {string} address\n * @returns {DelegateContractId}\n */\n static fromSolidityAddress(address) {\n // eslint-disable-next-line deprecation/deprecation\n return new DelegateContractId(ContractId.fromSolidityAddress(address));\n }\n\n /**\n * @returns {DelegateContractId}\n */\n clone() {\n const id = new DelegateContractId(this);\n id._checksum = this._checksum;\n return id;\n }\n\n /**\n * @returns {HashgraphProto.proto.IKey}\n */\n _toProtobufKey() {\n return {\n delegatableContractId: this._toProtobuf(),\n };\n }\n\n /**\n * @param {HashgraphProto.proto.IContractID} key\n * @returns {DelegateContractId}\n */\n static __fromProtobufKey(key) {\n return DelegateContractId._fromProtobuf(key);\n }\n}\n\nCACHE.setDelegateContractId((key) => DelegateContractId.__fromProtobufKey(key));\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Hbar from \"./Hbar.js\";\nimport FileId from \"./file/FileId.js\";\nimport Transaction, {\n TRANSACTION_REGISTRY,\n} from \"./transaction/Transaction.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HashgraphProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HashgraphProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HashgraphProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} HashgraphProto.proto.ITransactionResponse\n * @typedef {import(\"@hashgraph/proto\").proto.IEthereumTransactionBody} HashgraphProto.proto.IEthereumTransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.IAccountID} HashgraphProto.proto.IAccountID\n */\n\n/**\n * @typedef {import(\"bignumber.js\").default} BigNumber\n * @typedef {import(\"./account/AccountId.js\").default} AccountId\n * @typedef {import(\"./channel/Channel.js\").default} Channel\n * @typedef {import(\"./client/Client.js\").default<*, *>} Client\n * @typedef {import(\"./Timestamp.js\").default} Timestamp\n * @typedef {import(\"./transaction/TransactionId.js\").default} TransactionId\n * @typedef {import(\"long\")} Long\n */\n\n/**\n * Create a new Hedera™ transaction wrapped ethereum transaction.\n */\nexport default class EthereumTransaction extends Transaction {\n /**\n * @param {object} [props]\n * @param {Uint8Array} [props.ethereumData]\n * @param {FileId} [props.callData]\n * @param {FileId} [props.callDataFileId]\n * @param {number | string | Long | BigNumber | Hbar} [props.maxGasAllowance]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {?Uint8Array}\n */\n this._ethereumData = null;\n\n /**\n * @private\n * @type {?FileId}\n */\n this._callDataFileId = null;\n\n /**\n * @private\n * @type {?Hbar}\n */\n this._maxGasAllowance = null;\n\n if (props.ethereumData != null) {\n this.setEthereumData(props.ethereumData);\n }\n\n if (props.callData != null) {\n this.setCallDataFileId(props.callData);\n }\n\n if (props.callDataFileId != null) {\n this.setCallDataFileId(props.callDataFileId);\n }\n\n if (props.maxGasAllowance != null) {\n this.setMaxGasAllowanceHbar(props.maxGasAllowance);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransaction[]} transactions\n * @param {HashgraphProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HashgraphProto.proto.ITransactionBody[]} bodies\n * @returns {EthereumTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const transaction =\n /** @type {HashgraphProto.proto.IEthereumTransactionBody} */ (\n body.ethereumTransaction\n );\n\n return Transaction._fromProtobufTransactions(\n new EthereumTransaction({\n ethereumData:\n transaction.ethereumData != null\n ? transaction.ethereumData\n : undefined,\n callData:\n transaction.callData != null\n ? FileId._fromProtobuf(transaction.callData)\n : undefined,\n maxGasAllowance:\n transaction.maxGasAllowance != null\n ? Hbar.fromTinybars(transaction.maxGasAllowance)\n : undefined,\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @returns {?(Uint8Array | FileId)}\n */\n get ethereumData() {\n return this._ethereumData;\n }\n\n /**\n * The raw Ethereum transaction (RLP encoded type 0, 1, and 2). Complete\n * unless the callData field is set.\n *\n * @param {Uint8Array} ethereumData\n * @returns {this}\n */\n setEthereumData(ethereumData) {\n this._requireNotFrozen();\n this._ethereumData = ethereumData;\n return this;\n }\n\n /**\n * @deprecated - Use `callDataFileId` instead\n * @returns {?FileId}\n */\n get callData() {\n return this.callDataFileId;\n }\n\n /**\n * @deprecated - Use `setCallDataFileId()` instead\n *\n * For large transactions (for example contract create) this is the callData\n * of the callData. The data in the callData will be re-written with\n * the callData element as a zero length string with the original contents in\n * the referenced file at time of execution. The callData will need to be\n * \"rehydrated\" with the callData for signature validation to pass.\n * @param {FileId} callDataFileId\n * @returns {this}\n */\n setCallData(callDataFileId) {\n return this.setCallDataFileId(callDataFileId);\n }\n\n /**\n * @returns {?FileId}\n */\n get callDataFileId() {\n return this._callDataFileId;\n }\n\n /**\n * For large transactions (for example contract create) this is the callData\n * of the callData. The data in the callData will be re-written with\n * the callData element as a zero length string with the original contents in\n * the referenced file at time of execution. The callData will need to be\n * \"rehydrated\" with the callData for signature validation to pass.\n *\n * @param {FileId} callDataFileId\n * @returns {this}\n */\n setCallDataFileId(callDataFileId) {\n this._requireNotFrozen();\n this._callDataFileId = callDataFileId;\n return this;\n }\n\n /**\n * @returns {?Hbar}\n */\n get maxGasAllowance() {\n return this._maxGasAllowance;\n }\n\n /**\n * @deprecated -- use setMaxGasAllowanceHbar instead\n * @param {number | string | Long | BigNumber | Hbar} maxGasAllowance\n * @returns {this}\n */\n setMaxGasAllowance(maxGasAllowance) {\n return this.setMaxGasAllowanceHbar(maxGasAllowance);\n }\n\n /**\n * The maximum amount, in tinybars, that the payer of the hedera transaction\n * is willing to pay to complete the transaction.\n *\n * Ordinarily the account with the ECDSA alias corresponding to the public\n * key that is extracted from the ethereum_data signature is responsible for\n * fees that result from the execution of the transaction. If that amount of\n * authorized fees is not sufficient then the payer of the transaction can be\n * charged, up to but not exceeding this amount. If the ethereum_data\n * transaction authorized an amount that was insufficient then the payer will\n * only be charged the amount needed to make up the difference. If the gas\n * price in the transaction was set to zero then the payer will be assessed\n * the entire fee.\n *\n * @param {number | string | Long | BigNumber | Hbar} maxGasAllowance\n * @returns {this}\n */\n setMaxGasAllowanceHbar(maxGasAllowance) {\n this._requireNotFrozen();\n this._maxGasAllowance =\n maxGasAllowance instanceof Hbar\n ? maxGasAllowance\n : new Hbar(maxGasAllowance);\n return this;\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (\n this._ethereumData != null &&\n this._ethereumData instanceof FileId\n ) {\n this._ethereumData.validateChecksum(client);\n }\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.smartContract.callEthereum(request);\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"ethereumTransaction\";\n }\n\n /**\n * @override\n * @protected\n * @returns {HashgraphProto.proto.IEthereumTransactionBody}\n */\n _makeTransactionData() {\n return {\n ethereumData: this._ethereumData,\n callData:\n this._callDataFileId != null\n ? this._callDataFileId._toProtobuf()\n : null,\n maxGasAllowance:\n this._maxGasAllowance != null\n ? this._maxGasAllowance.toTinybars()\n : null,\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"./Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `EthereumTransaction:${timestamp.toString()}`;\n }\n}\n\nTRANSACTION_REGISTRY.set(\n \"ethereumTransaction\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n EthereumTransaction._fromProtobuf,\n);\n","import CACHE from \"./Cache.js\";\n\nexport default class EthereumTransactionData {\n /**\n * @protected\n * @param {object} props\n * @param {Uint8Array} props.callData\n */\n constructor(props) {\n this.callData = props.callData;\n }\n\n /**\n * @param {Uint8Array} bytes\n * @returns {EthereumTransactionData}\n */\n static fromBytes(bytes) {\n if (bytes.length === 0) {\n throw new Error(\"empty bytes\");\n }\n\n switch (bytes[0]) {\n case 1:\n return CACHE.ethereumTransactionDataEip2930FromBytes(bytes);\n case 2:\n return CACHE.ethereumTransactionDataEip1559FromBytes(bytes);\n default:\n return CACHE.ethereumTransactionDataLegacyFromBytes(bytes);\n }\n }\n\n // eslint-disable-next-line jsdoc/require-returns-check\n /**\n * @returns {Uint8Array}\n */\n toBytes() {\n throw new Error(\"not implemented\");\n }\n\n // eslint-disable-next-line jsdoc/require-returns-check\n /**\n * @returns {string}\n */\n toString() {\n throw new Error(\"not implemented\");\n }\n\n // eslint-disable-next-line jsdoc/require-returns-check\n /**\n * @returns {{[key: string]: any}}\n */\n toJSON() {\n throw new Error(\"not implemented\");\n }\n}\n","import * as rlp from \"@ethersproject/rlp\";\nimport * as hex from \"./encoding/hex.js\";\nimport EthereumTransactionData from \"./EthereumTransactionData.js\";\nimport CACHE from \"./Cache.js\";\n\n/**\n * @typedef {object} EthereumTransactionDataLegacyJSON\n * @property {string} nonce\n * @property {string} gasPrice\n * @property {string} gasLimit\n * @property {string} to\n * @property {string} value\n * @property {string} callData\n * @property {string} v\n * @property {string} r\n * @property {string} s\n */\n\nexport default class EthereumTransactionDataLegacy extends EthereumTransactionData {\n /**\n * @private\n * @param {object} props\n * @param {Uint8Array} props.nonce\n * @param {Uint8Array} props.gasPrice\n * @param {Uint8Array} props.gasLimit\n * @param {Uint8Array} props.to\n * @param {Uint8Array} props.value\n * @param {Uint8Array} props.callData\n * @param {Uint8Array} props.v\n * @param {Uint8Array} props.r\n * @param {Uint8Array} props.s\n */\n constructor(props) {\n super(props);\n\n this.nonce = props.nonce;\n this.gasPrice = props.gasPrice;\n this.gasLimit = props.gasLimit;\n this.to = props.to;\n this.value = props.value;\n this.v = props.v;\n this.r = props.r;\n this.s = props.s;\n }\n\n /**\n * @param {Uint8Array} bytes\n * @returns {EthereumTransactionData}\n */\n static fromBytes(bytes) {\n if (bytes.length === 0) {\n throw new Error(\"empty bytes\");\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const decoded = /** @type {string[]} */ (rlp.decode(bytes));\n\n if (decoded.length != 9) {\n throw new Error(\"invalid ethereum transaction data\");\n }\n\n return new EthereumTransactionDataLegacy({\n nonce: hex.decode(/** @type {string} */ (decoded[0])),\n gasPrice: hex.decode(/** @type {string} */ (decoded[1])),\n gasLimit: hex.decode(/** @type {string} */ (decoded[2])),\n to: hex.decode(/** @type {string} */ (decoded[3])),\n value: hex.decode(/** @type {string} */ (decoded[4])),\n callData: hex.decode(/** @type {string} */ (decoded[5])),\n v: hex.decode(/** @type {string} */ (decoded[6])),\n r: hex.decode(/** @type {string} */ (decoded[7])),\n s: hex.decode(/** @type {string} */ (decoded[8])),\n });\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytes() {\n return hex.decode(\n rlp.encode([\n this.nonce,\n this.gasPrice,\n this.gasLimit,\n this.to,\n this.value,\n this.callData,\n this.v,\n this.r,\n this.s,\n ]),\n );\n }\n\n /**\n * @returns {string}\n */\n toString() {\n return JSON.stringify(this.toJSON(), null, 2);\n }\n\n /**\n * @returns {EthereumTransactionDataLegacyJSON}\n */\n toJSON() {\n return {\n nonce: hex.encode(this.nonce),\n gasPrice: hex.encode(this.gasPrice),\n gasLimit: hex.encode(this.gasLimit),\n to: hex.encode(this.to),\n value: hex.encode(this.value),\n callData: hex.encode(this.callData),\n v: hex.encode(this.v),\n r: hex.encode(this.r),\n s: hex.encode(this.s),\n };\n }\n}\n\nCACHE.setEthereumTransactionDataLegacyFromBytes((bytes) =>\n EthereumTransactionDataLegacy.fromBytes(bytes),\n);\n","import * as rlp from \"@ethersproject/rlp\";\nimport * as hex from \"./encoding/hex.js\";\nimport EthereumTransactionData from \"./EthereumTransactionData.js\";\nimport CACHE from \"./Cache.js\";\n\n/**\n * @typedef {object} EthereumTransactionDataEip1559JSON\n * @property {string} chainId\n * @property {string} nonce\n * @property {string} maxPriorityGas\n * @property {string} maxGas\n * @property {string} gasLimit\n * @property {string} to\n * @property {string} value\n * @property {string} callData\n * @property {string[]} accessList\n * @property {string} recId\n * @property {string} r\n * @property {string} s\n */\n\nexport default class EthereumTransactionDataEip1559 extends EthereumTransactionData {\n /**\n * @private\n * @param {object} props\n * @param {Uint8Array} props.chainId\n * @param {Uint8Array} props.nonce\n * @param {Uint8Array} props.maxPriorityGas\n * @param {Uint8Array} props.maxGas\n * @param {Uint8Array} props.gasLimit\n * @param {Uint8Array} props.to\n * @param {Uint8Array} props.value\n * @param {Uint8Array} props.callData\n * @param {Uint8Array[]} props.accessList\n * @param {Uint8Array} props.recId\n * @param {Uint8Array} props.r\n * @param {Uint8Array} props.s\n */\n constructor(props) {\n super(props);\n\n this.chainId = props.chainId;\n this.nonce = props.nonce;\n this.maxPriorityGas = props.maxPriorityGas;\n this.maxGas = props.maxGas;\n this.gasLimit = props.gasLimit;\n this.to = props.to;\n this.value = props.value;\n this.accessList = props.accessList;\n this.recId = props.recId;\n this.r = props.r;\n this.s = props.s;\n }\n\n /**\n * @param {Uint8Array} bytes\n * @returns {EthereumTransactionData}\n */\n static fromBytes(bytes) {\n if (bytes.length === 0) {\n throw new Error(\"empty bytes\");\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const decoded = /** @type {string[]} */ (rlp.decode(bytes.subarray(1)));\n\n if (!Array.isArray(decoded)) {\n throw new Error(\"ethereum data is not a list\");\n }\n\n if (decoded.length != 12) {\n throw new Error(\"invalid ethereum transaction data\");\n }\n\n // TODO\n return new EthereumTransactionDataEip1559({\n chainId: hex.decode(/** @type {string} */ (decoded[0])),\n nonce: hex.decode(/** @type {string} */ (decoded[1])),\n maxPriorityGas: hex.decode(/** @type {string} */ (decoded[2])),\n maxGas: hex.decode(/** @type {string} */ (decoded[3])),\n gasLimit: hex.decode(/** @type {string} */ (decoded[4])),\n to: hex.decode(/** @type {string} */ (decoded[5])),\n value: hex.decode(/** @type {string} */ (decoded[6])),\n callData: hex.decode(/** @type {string} */ (decoded[7])),\n // @ts-ignore\n accessList: /** @type {string[]} */ (decoded[8]).map((v) =>\n hex.decode(v),\n ),\n recId: hex.decode(/** @type {string} */ (decoded[9])),\n r: hex.decode(/** @type {string} */ (decoded[10])),\n s: hex.decode(/** @type {string} */ (decoded[11])),\n });\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytes() {\n const encoded = rlp.encode([\n this.chainId,\n this.nonce,\n this.maxPriorityGas,\n this.maxGas,\n this.gasLimit,\n this.to,\n this.value,\n this.callData,\n this.accessList,\n this.recId,\n this.r,\n this.s,\n ]);\n return hex.decode(\"02\" + encoded.substring(2));\n }\n\n /**\n * @returns {string}\n */\n toString() {\n return JSON.stringify(this.toJSON(), null, 2);\n }\n\n /**\n * @returns {EthereumTransactionDataEip1559JSON}\n */\n toJSON() {\n return {\n chainId: hex.encode(this.chainId),\n nonce: hex.encode(this.nonce),\n maxPriorityGas: hex.encode(this.maxPriorityGas),\n maxGas: hex.encode(this.maxGas),\n gasLimit: hex.encode(this.gasLimit),\n to: hex.encode(this.to),\n value: hex.encode(this.value),\n callData: hex.encode(this.callData),\n accessList: this.accessList.map((v) => hex.encode(v)),\n recId: hex.encode(this.recId),\n r: hex.encode(this.r),\n s: hex.encode(this.s),\n };\n }\n}\n\nCACHE.setEthereumTransactionDataEip1559FromBytes((bytes) =>\n EthereumTransactionDataEip1559.fromBytes(bytes),\n);\n","import * as rlp from \"@ethersproject/rlp\";\nimport * as hex from \"./encoding/hex.js\";\nimport EthereumTransactionData from \"./EthereumTransactionData.js\";\nimport CACHE from \"./Cache.js\";\n\n/**\n * @typedef {object} EthereumTransactionDataEip2930JSON\n * @property {string} chainId\n * @property {string} nonce\n * @property {string} gasPrice\n * @property {string} gasLimit\n * @property {string} to\n * @property {string} value\n * @property {string} callData\n * @property {string[]} accessList\n * @property {string} recId\n * @property {string} r\n * @property {string} s\n */\n\nexport default class EthereumTransactionDataEip2930 extends EthereumTransactionData {\n /**\n * @private\n * @param {object} props\n * @param {Uint8Array} props.chainId\n * @param {Uint8Array} props.nonce\n * @param {Uint8Array} props.gasPrice\n * @param {Uint8Array} props.gasLimit\n * @param {Uint8Array} props.to\n * @param {Uint8Array} props.value\n * @param {Uint8Array} props.callData\n * @param {Uint8Array[]} props.accessList\n * @param {Uint8Array} props.recId\n * @param {Uint8Array} props.r\n * @param {Uint8Array} props.s\n */\n constructor(props) {\n super(props);\n\n this.chainId = props.chainId;\n this.nonce = props.nonce;\n this.gasPrice = props.gasPrice;\n this.gasLimit = props.gasLimit;\n this.to = props.to;\n this.value = props.value;\n this.accessList = props.accessList;\n this.recId = props.recId;\n this.r = props.r;\n this.s = props.s;\n }\n\n /**\n * @param {Uint8Array} bytes\n * @returns {EthereumTransactionData}\n */\n static fromBytes(bytes) {\n if (bytes.length === 0) {\n throw new Error(\"empty bytes\");\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const decoded = /** @type {string[]} */ (rlp.decode(bytes.subarray(1)));\n\n if (!Array.isArray(decoded)) {\n throw new Error(\"ethereum data is not a list\");\n }\n\n if (decoded.length !== 11) {\n throw new Error(\"invalid ethereum transaction data\");\n }\n\n // TODO\n return new EthereumTransactionDataEip2930({\n chainId: hex.decode(/** @type {string} */ (decoded[0])),\n nonce: hex.decode(/** @type {string} */ (decoded[1])),\n gasPrice: hex.decode(/** @type {string} */ (decoded[2])),\n gasLimit: hex.decode(/** @type {string} */ (decoded[3])),\n to: hex.decode(/** @type {string} */ (decoded[4])),\n value: hex.decode(/** @type {string} */ (decoded[5])),\n callData: hex.decode(/** @type {string} */ (decoded[6])),\n // @ts-ignore\n accessList: /** @type {string[]} */ (decoded[7]).map((v) =>\n hex.decode(v),\n ),\n recId: hex.decode(/** @type {string} */ (decoded[8])),\n r: hex.decode(/** @type {string} */ (decoded[9])),\n s: hex.decode(/** @type {string} */ (decoded[10])),\n });\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytes() {\n const encoded = rlp.encode([\n this.chainId,\n this.nonce,\n this.gasPrice,\n this.gasLimit,\n this.to,\n this.value,\n this.callData,\n this.accessList,\n this.recId,\n this.r,\n this.s,\n ]);\n return hex.decode(\"01\" + encoded.substring(2));\n }\n\n /**\n * @returns {string}\n */\n toString() {\n return JSON.stringify(this.toJSON(), null, 2);\n }\n\n /**\n * @returns {EthereumTransactionDataEip2930JSON}\n */\n toJSON() {\n return {\n chainId: hex.encode(this.chainId),\n nonce: hex.encode(this.nonce),\n gasPrice: hex.encode(this.gasPrice),\n gasLimit: hex.encode(this.gasLimit),\n to: hex.encode(this.to),\n value: hex.encode(this.value),\n callData: hex.encode(this.callData),\n accessList: this.accessList.map((v) => hex.encode(v)),\n recId: hex.encode(this.recId),\n r: hex.encode(this.r),\n s: hex.encode(this.s),\n };\n }\n}\n\nCACHE.setEthereumTransactionDataEip2930FromBytes((bytes) =>\n EthereumTransactionDataEip2930.fromBytes(bytes),\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Hbar from \"./Hbar.js\";\nimport EthereumTransaction from \"./EthereumTransaction.js\";\nimport EthereumTransactionData from \"./EthereumTransactionData.js\";\nimport FileCreateTransaction from \"./file/FileCreateTransaction.js\";\nimport FileAppendTransaction from \"./file/FileAppendTransaction.js\";\nimport * as hex from \"./encoding/hex.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HashgraphProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HashgraphProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HashgraphProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} HashgraphProto.proto.ITransactionResponse\n * @typedef {import(\"@hashgraph/proto\").proto.IEthereumTransactionBody} HashgraphProto.proto.IEthereumTransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.IAccountID} HashgraphProto.proto.IAccountID\n */\n\n/**\n * @typedef {import(\"bignumber.js\").default} BigNumber\n * @typedef {import(\"./account/AccountId.js\").default} AccountId\n * @typedef {import(\"./file/FileId.js\").default} FileId\n * @typedef {import(\"./channel/Channel.js\").default} Channel\n * @typedef {import(\"./channel/MirrorChannel.js\").default} MirrorChannel\n * @typedef {import(\"./client/Client.js\").default<*, *>} Client\n * @typedef {import(\"./Timestamp.js\").default} Timestamp\n * @typedef {import(\"./transaction/TransactionId.js\").default} TransactionId\n * @typedef {import(\"./transaction/TransactionResponse.js\").default} TransactionResponse\n * @typedef {import(\"long\")} Long\n */\n\n/**\n * Create a new Hedera™ transaction wrapped ethereum transaction.\n */\nexport default class EthereumFlow {\n /**\n * @param {object} [props]\n * @param {Uint8Array} [props.ethereumData]\n * @param {FileId} [props.callData]\n * @param {number | string | Long | BigNumber | Hbar} [props.maxGasAllowance]\n */\n constructor(props = {}) {\n /**\n * @private\n * @type {?EthereumTransactionData}\n */\n this._ethereumData = null;\n\n /**\n * @private\n * @type {?FileId}\n */\n this._callDataFileId = null;\n\n /**\n * @private\n * @type {?Hbar}\n */\n this._maxGasAllowance = null;\n\n if (props.ethereumData != null) {\n this.setEthereumData(props.ethereumData);\n }\n\n if (props.maxGasAllowance != null) {\n this.setMaxGasAllowanceHbar(props.maxGasAllowance);\n }\n\n this._maxChunks = null;\n }\n\n /**\n * @returns {number | null}\n */\n get maxChunks() {\n return this._maxChunks;\n }\n\n /**\n * @param {number} maxChunks\n * @returns {this}\n */\n setMaxChunks(maxChunks) {\n this._maxChunks = maxChunks;\n return this;\n }\n\n /**\n * @returns {?EthereumTransactionData}\n */\n get ethereumData() {\n return this._ethereumData;\n }\n\n /**\n * The raw Ethereum transaction (RLP encoded type 0, 1, and 2). Complete\n * unless the callData field is set.\n *\n * @param {EthereumTransactionData | Uint8Array} ethereumData\n * @returns {this}\n */\n setEthereumData(ethereumData) {\n this._ethereumData =\n ethereumData instanceof Uint8Array\n ? EthereumTransactionData.fromBytes(ethereumData)\n : ethereumData;\n return this;\n }\n\n /**\n * @returns {?Hbar}\n */\n get maxGasAllowance() {\n return this._maxGasAllowance;\n }\n\n /**\n * @deprecated - use masGasAllowanceHbar instead.\n * @param {number | string | Long | BigNumber | Hbar} maxGasAllowance\n * @returns {this}\n */\n setMaxGasAllowance(maxGasAllowance) {\n return this.setMaxGasAllowanceHbar(maxGasAllowance);\n }\n\n /**\n * The maximum amount, in tinybars, that the payer of the hedera transaction\n * is willing to pay to complete the transaction.\n *\n * Ordinarily the account with the ECDSA alias corresponding to the public\n * key that is extracted from the ethereum_data signature is responsible for\n * fees that result from the execution of the transaction. If that amount of\n * authorized fees is not sufficient then the payer of the transaction can be\n * charged, up to but not exceeding this amount. If the ethereum_data\n * transaction authorized an amount that was insufficient then the payer will\n * only be charged the amount needed to make up the difference. If the gas\n * price in the transaction was set to zero then the payer will be assessed\n * the entire fee.\n *\n * @param {number | string | Long | BigNumber | Hbar} maxGasAllowance\n * @returns {this}\n */\n setMaxGasAllowanceHbar(maxGasAllowance) {\n this._maxGasAllowance =\n maxGasAllowance instanceof Hbar\n ? maxGasAllowance\n : new Hbar(maxGasAllowance);\n return this;\n }\n\n /**\n * @template {Channel} ChannelT\n * @template {MirrorChannel} MirrorChannelT\n * @param {import(\"./client/Client.js\").default} client\n * @returns {Promise}\n */\n async execute(client) {\n if (this._ethereumData == null) {\n throw new Error(\n \"cannot submit ethereum transaction with no ethereum data\",\n );\n }\n\n const ethereumTransaction = new EthereumTransaction();\n const ethereumTransactionDataBytes = this._ethereumData.toBytes();\n\n if (this._maxGasAllowance != null) {\n ethereumTransaction.setMaxGasAllowanceHbar(this._maxGasAllowance);\n }\n\n if (this._callDataFileId != null) {\n if (this._ethereumData.callData.length === 0) {\n throw new Error(\n \"call data file ID provided, but ethereum data already contains call data\",\n );\n }\n\n ethereumTransaction\n .setEthereumData(ethereumTransactionDataBytes)\n .setCallDataFileId(this._callDataFileId);\n } else if (ethereumTransactionDataBytes.length <= 5120) {\n ethereumTransaction.setEthereumData(ethereumTransactionDataBytes);\n } else {\n const fileId = await createFile(\n this._ethereumData.callData,\n client,\n this._maxChunks,\n );\n\n this._ethereumData.callData = new Uint8Array();\n\n ethereumTransaction\n .setEthereumData(this._ethereumData.toBytes())\n .setCallDataFileId(fileId);\n }\n\n return ethereumTransaction.execute(client);\n }\n}\n\n/**\n * @template {Channel} ChannelT\n * @template {MirrorChannel} MirrorChannelT\n * @param {Uint8Array} callData\n * @param {import(\"./client/Client.js\").default} client\n * @param {?number} maxChunks\n * @returns {Promise}\n */\nasync function createFile(callData, client, maxChunks) {\n const hexedCallData = hex.encode(callData);\n\n const fileId = /** @type {FileId} */ (\n (\n await (\n await new FileCreateTransaction()\n .setContents(hexedCallData.substring(0, 4096))\n .setKeys(\n client.operatorPublicKey\n ? [client.operatorPublicKey]\n : [],\n )\n .execute(client)\n ).getReceipt(client)\n ).fileId\n );\n\n if (callData.length > 4096) {\n let fileAppendTransaction = new FileAppendTransaction()\n .setFileId(fileId)\n .setContents(hexedCallData.substring(4096, hexedCallData.length));\n if (maxChunks != null) {\n fileAppendTransaction.setMaxChunks(maxChunks);\n }\n\n await (await fileAppendTransaction.execute(client)).getReceipt(client);\n }\n\n return fileId;\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport ExchangeRate from \"./ExchangeRate.js\";\nimport * as HashgraphProto from \"@hashgraph/proto\";\n\nconst { proto } = HashgraphProto;\n\nexport default class ExchangeRates {\n /**\n * @private\n * @param {object} props\n * @param {ExchangeRate} props.currentRate\n * @param {ExchangeRate} props.nextRate\n */\n constructor(props) {\n /**\n * @readonly\n */\n this.currentRate = props.currentRate;\n\n /**\n * @readonly\n */\n this.nextRate = props.nextRate;\n\n Object.freeze(this);\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.IExchangeRateSet} rateSet\n * @returns {ExchangeRates}\n */\n static _fromProtobuf(rateSet) {\n return new ExchangeRates({\n currentRate: ExchangeRate._fromProtobuf(\n /** @type {HashgraphProto.proto.IExchangeRate} */ (\n rateSet.currentRate\n ),\n ),\n nextRate: ExchangeRate._fromProtobuf(\n /** @type {HashgraphProto.proto.IExchangeRate} */ (\n rateSet.nextRate\n ),\n ),\n });\n }\n\n /**\n * @internal\n * @returns {HashgraphProto.proto.IExchangeRateSet}\n */\n _toProtobuf() {\n return {\n currentRate: this.currentRate._toProtobuf(),\n nextRate: this.nextRate._toProtobuf(),\n };\n }\n\n /**\n * @param {Uint8Array} bytes\n * @returns {ExchangeRates}\n */\n static fromBytes(bytes) {\n return ExchangeRates._fromProtobuf(proto.ExchangeRateSet.decode(bytes));\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport * as HashgraphProto from \"@hashgraph/proto\";\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport Long from \"long\";\nexport default class FeeComponents {\n /**\n * @param {object} [props]\n * @param {Long} [props.min]\n * @param {Long} [props.max]\n * @param {Long} [props.constant]\n * @param {Long} [props.transactionBandwidthByte]\n * @param {Long} [props.transactionVerification]\n * @param {Long} [props.transactionRamByteHour]\n * @param {Long} [props.transactionStorageByteHour]\n * @param {Long} [props.contractTransactionGas]\n * @param {Long} [props.transferVolumeHbar]\n * @param {Long} [props.responseMemoryByte]\n * @param {Long} [props.responseDiskByte]\n */\n constructor(props = {}) {\n /*\n * A minimum, the calculated fee must be greater than this value\n *\n * @type {Long}\n */\n this.min = props.min;\n\n /*\n * A maximum, the calculated fee must be less than this value\n *\n * @type {Long}\n */\n this.max = props.max;\n\n /*\n * A constant contribution to the fee\n *\n * @type {Long}\n */\n this.constant = props.constant;\n\n /*\n * The price of bandwidth consumed by a transaction, measured in bytes\n *\n * @type {Long}\n */\n this.transactionBandwidthByte = props.transactionBandwidthByte;\n\n /*\n * The price per signature verification for a transaction\n *\n * @type {Long}\n */\n this.transactionVerification = props.transactionVerification;\n\n /*\n * The price of RAM consumed by a transaction, measured in byte-hours\n *\n * @type {Long}\n */\n this.transactionRamByteHour = props.transactionRamByteHour;\n\n /*\n * The price of storage consumed by a transaction, measured in byte-hours\n *\n * @type {Long}\n */\n this.transactionStorageByteHour = props.transactionStorageByteHour;\n\n /*\n * The price of computation for a smart contract transaction, measured in gas\n *\n * @type {Long}\n */\n this.contractTransactionGas = props.contractTransactionGas;\n\n /*\n * The price per hbar transferred for a transfer\n *\n * @type {Long}\n */\n this.transferVolumeHbar = props.transferVolumeHbar;\n\n /*\n * The price of bandwidth for data retrieved from memory for a response, measured in bytes\n *\n * @type {Long}\n */\n this.responseMemoryByte = props.responseMemoryByte;\n\n /*\n * The price of bandwidth for data retrieved from disk for a response, measured in bytes\n *\n * @type {Long}\n */\n this.responseDiskByte = props.responseDiskByte;\n }\n\n /**\n * @param {Uint8Array} bytes\n * @returns {FeeComponents}\n */\n static fromBytes(bytes) {\n return FeeComponents._fromProtobuf(\n HashgraphProto.proto.FeeComponents.decode(bytes),\n );\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.IFeeComponents} feeComponents\n * @returns {FeeComponents}\n */\n static _fromProtobuf(feeComponents) {\n return new FeeComponents({\n min: feeComponents.min != null ? feeComponents.min : undefined,\n max: feeComponents.max != null ? feeComponents.max : undefined,\n constant:\n feeComponents.constant != null\n ? feeComponents.constant\n : undefined,\n transactionBandwidthByte:\n feeComponents.bpt != null ? feeComponents.bpt : undefined,\n transactionVerification:\n feeComponents.vpt != null ? feeComponents.vpt : undefined,\n transactionRamByteHour:\n feeComponents.rbh != null ? feeComponents.rbh : undefined,\n transactionStorageByteHour:\n feeComponents.sbh != null ? feeComponents.sbh : undefined,\n contractTransactionGas:\n feeComponents.gas != null ? feeComponents.gas : undefined,\n transferVolumeHbar:\n feeComponents.tv != null ? feeComponents.tv : undefined,\n responseMemoryByte:\n feeComponents.bpr != null ? feeComponents.bpr : undefined,\n responseDiskByte:\n feeComponents.sbpr != null ? feeComponents.sbpr : undefined,\n });\n }\n\n /**\n * @internal\n * @returns {HashgraphProto.proto.IFeeComponents}\n */\n _toProtobuf() {\n return {\n min: this.min != null ? this.min : undefined,\n max: this.max != null ? this.max : undefined,\n constant: this.constant != null ? this.constant : undefined,\n bpt:\n this.transactionBandwidthByte != null\n ? this.transactionBandwidthByte\n : undefined,\n vpt:\n this.transactionVerification != null\n ? this.transactionVerification\n : undefined,\n rbh:\n this.transactionRamByteHour != null\n ? this.transactionRamByteHour\n : undefined,\n sbh:\n this.transactionStorageByteHour != null\n ? this.transactionStorageByteHour\n : undefined,\n gas:\n this.contractTransactionGas != null\n ? this.contractTransactionGas\n : undefined,\n tv:\n this.transferVolumeHbar != null\n ? this.transferVolumeHbar\n : undefined,\n bpr:\n this.responseMemoryByte != null\n ? this.responseMemoryByte\n : undefined,\n sbpr:\n this.responseDiskByte != null\n ? this.responseDiskByte\n : undefined,\n };\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytes() {\n return HashgraphProto.proto.FeeComponents.encode(\n this._toProtobuf(),\n ).finish();\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.SubType} HashgraphProto.proto.SubType\n */\n\nexport default class FeeDataType {\n /**\n * @hideconstructor\n * @internal\n * @param {number} code\n */\n constructor(code) {\n /** @readonly */\n this._code = code;\n\n Object.freeze(this);\n }\n\n /**\n * @returns {string}\n */\n toString() {\n switch (this) {\n case FeeDataType.Default:\n return \"DEFAULT\";\n case FeeDataType.TokenFungibleCommon:\n return \"TOKEN_FUNGIBLE_COMMON\";\n case FeeDataType.TokenNonFungibleUnique:\n return \"TOKEN_NON_FUNGIBLE_UNIQUE\";\n case FeeDataType.TokenFungibleCommonWithCustomFees:\n return \"TOKEN_FUNGIBLE_COMMON_WITH_CUSTOM_FEES\";\n case FeeDataType.TokenNonFungibleUniqueWithCustomFees:\n return \"TOKEN_NON_FUNGIBLE_UNIQUE_WITH_CUSTOM_FEES\";\n case FeeDataType.ScheduleCreateContractCall:\n return \"SCHEDULE_CREATE_CONTRACT_CALL\";\n default:\n return `UNKNOWN (${this._code})`;\n }\n }\n\n /**\n * @internal\n * @param {number} code\n * @returns {FeeDataType}\n */\n static _fromCode(code) {\n switch (code) {\n case 0:\n return FeeDataType.Default;\n case 1:\n return FeeDataType.TokenFungibleCommon;\n case 2:\n return FeeDataType.TokenNonFungibleUnique;\n case 3:\n return FeeDataType.TokenFungibleCommonWithCustomFees;\n case 4:\n return FeeDataType.TokenNonFungibleUniqueWithCustomFees;\n case 5:\n return FeeDataType.ScheduleCreateContractCall;\n }\n\n throw new Error(\n `(BUG) SubType.fromCode() does not handle code: ${code}`,\n );\n }\n\n /**\n * @returns {HashgraphProto.proto.SubType}\n */\n valueOf() {\n return this._code;\n }\n}\n\n/**\n * The resource prices have no special scope\n */\nFeeDataType.Default = new FeeDataType(0);\n\n/**\n * The resource prices are scoped to an operation on a fungible common token\n */\nFeeDataType.TokenFungibleCommon = new FeeDataType(1);\n\n/**\n * The resource prices are scoped to an operation on a non-fungible unique token\n */\nFeeDataType.TokenNonFungibleUnique = new FeeDataType(2);\n\n/**\n * The resource prices are scoped to an operation on a fungible common token with a custom fee schedule\n */\nFeeDataType.TokenFungibleCommonWithCustomFees = new FeeDataType(3);\n\n/**\n * The resource prices are scoped to an operation on a non-fungible unique token with a custom fee schedule\n */\nFeeDataType.TokenNonFungibleUniqueWithCustomFees = new FeeDataType(4);\n\n/**\n * The resource prices are scoped to a ScheduleCreate containing a ContractCall.\n */\nFeeDataType.ScheduleCreateContractCall = new FeeDataType(5);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport * as HashgraphProto from \"@hashgraph/proto\";\nimport FeeComponents from \"./FeeComponents.js\";\nimport FeeDataType from \"./FeeDataType.js\";\n\nexport default class FeeData {\n /**\n * @param {object} [props]\n * @param {FeeComponents} [props.nodedata]\n * @param {FeeComponents} [props.networkdata]\n * @param {FeeComponents} [props.servicedata]\n * @param {FeeDataType} [props.feeDataType]\n */\n constructor(props = {}) {\n /*\n * Fee paid to the submitting node\n *\n * @type {FeeComponents}\n */\n this.nodedata = props.nodedata;\n\n /*\n * Fee paid to the network for processing a transaction into consensus\n *\n * @type {FeeComponents}\n */\n this.networkdata = props.networkdata;\n\n /*\n * Fee paid to the network for providing the service associated with the transaction; for instance, storing a file\n *\n * @type {FeeComponents}\n */\n this.servicedata = props.servicedata;\n\n /*\n * SubType distinguishing between different types of FeeData, correlating to the same HederaFunctionality\n *\n * @type {SubType}\n */\n this.feeDataType = props.feeDataType;\n }\n\n /**\n * @param {Uint8Array} bytes\n * @returns {FeeData}\n */\n static fromBytes(bytes) {\n return FeeData._fromProtobuf(\n HashgraphProto.proto.FeeData.decode(bytes),\n );\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.IFeeData} feeData\n * @returns {FeeData}\n */\n static _fromProtobuf(feeData) {\n return new FeeData({\n nodedata:\n feeData.nodedata != null\n ? FeeComponents._fromProtobuf(feeData.nodedata)\n : undefined,\n networkdata:\n feeData.networkdata != null\n ? FeeComponents._fromProtobuf(feeData.networkdata)\n : undefined,\n servicedata:\n feeData.servicedata != null\n ? FeeComponents._fromProtobuf(feeData.servicedata)\n : undefined,\n feeDataType:\n feeData.subType != null\n ? FeeDataType._fromCode(feeData.subType)\n : undefined,\n });\n }\n\n /**\n * @internal\n * @returns {HashgraphProto.proto.IFeeData}\n */\n _toProtobuf() {\n return {\n nodedata:\n this.nodedata != null ? this.nodedata._toProtobuf() : undefined,\n\n networkdata:\n this.networkdata != null\n ? this.networkdata._toProtobuf()\n : undefined,\n\n servicedata:\n this.servicedata != null\n ? this.servicedata._toProtobuf()\n : undefined,\n\n subType:\n this.feeDataType != null\n ? this.feeDataType.valueOf()\n : undefined,\n };\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytes() {\n return HashgraphProto.proto.FeeData.encode(this._toProtobuf()).finish();\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.HederaFunctionality} HashgraphProto.proto.HederaFunctionality\n */\n\nexport default class RequestType {\n /**\n * @hideconstructor\n * @internal\n * @param {number} code\n */\n constructor(code) {\n /** @readonly */\n this._code = code;\n\n Object.freeze(this);\n }\n\n /**\n * @returns {string}\n */\n toString() {\n switch (this) {\n case RequestType.None:\n return \"NONE\";\n case RequestType.CryptoTransfer:\n return \"CryptoTransfer\";\n case RequestType.CryptoUpdate:\n return \"CryptoUpdate\";\n case RequestType.CryptoDelete:\n return \"CryptoDelete\";\n case RequestType.CryptoAddLiveHash:\n return \"CryptoAddLiveHash\";\n case RequestType.CryptoDeleteLiveHash:\n return \"CryptoDeleteLiveHash\";\n case RequestType.ContractCall:\n return \"ContractCall\";\n case RequestType.ContractCreate:\n return \"ContractCreate\";\n case RequestType.ContractUpdate:\n return \"ContractUpdate\";\n case RequestType.FileCreate:\n return \"FileCreate\";\n case RequestType.FileAppend:\n return \"FileAppend\";\n case RequestType.FileUpdate:\n return \"FileUpdate\";\n case RequestType.FileDelete:\n return \"FileDelete\";\n case RequestType.CryptoGetAccountBalance:\n return \"CryptoGetAccountBalance\";\n case RequestType.CryptoGetAccountRecords:\n return \"CryptoGetAccountRecords\";\n case RequestType.CryptoGetInfo:\n return \"CryptoGetInfo\";\n case RequestType.ContractCallLocal:\n return \"ContractCallLocal\";\n case RequestType.ContractGetInfo:\n return \"ContractGetInfo\";\n case RequestType.ContractGetBytecode:\n return \"ContractGetBytecode\";\n case RequestType.GetBySolidityID:\n return \"GetBySolidityID\";\n case RequestType.GetByKey:\n return \"GetByKey\";\n case RequestType.CryptoGetLiveHash:\n return \"CryptoGetLiveHash\";\n case RequestType.CryptoGetStakers:\n return \"CryptoGetStakers\";\n case RequestType.FileGetContents:\n return \"FileGetContents\";\n case RequestType.FileGetInfo:\n return \"FileGetInfo\";\n case RequestType.TransactionGetRecord:\n return \"TransactionGetRecord\";\n case RequestType.ContractGetRecords:\n return \"ContractGetRecords\";\n case RequestType.CryptoCreate:\n return \"CryptoCreate\";\n case RequestType.SystemDelete:\n return \"SystemDelete\";\n case RequestType.SystemUndelete:\n return \"SystemUndelete\";\n case RequestType.ContractDelete:\n return \"ContractDelete\";\n case RequestType.Freeze:\n return \"Freeze\";\n case RequestType.CreateTransactionRecord:\n return \"CreateTransactionRecord\";\n case RequestType.CryptoAccountAutoRenew:\n return \"CryptoAccountAutoRenew\";\n case RequestType.ContractAutoRenew:\n return \"ContractAutoRenew\";\n case RequestType.GetVersionInfo:\n return \"GetVersionInfo\";\n case RequestType.TransactionGetReceipt:\n return \"TransactionGetReceipt\";\n case RequestType.ConsensusCreateTopic:\n return \"ConsensusCreateTopic\";\n case RequestType.ConsensusUpdateTopic:\n return \"ConsensusUpdateTopic\";\n case RequestType.ConsensusDeleteTopic:\n return \"ConsensusDeleteTopic\";\n case RequestType.ConsensusGetTopicInfo:\n return \"ConsensusGetTopicInfo\";\n case RequestType.ConsensusSubmitMessage:\n return \"ConsensusSubmitMessage\";\n case RequestType.UncheckedSubmit:\n return \"UncheckedSubmit\";\n case RequestType.TokenCreate:\n return \"TokenCreate\";\n case RequestType.TokenGetInfo:\n return \"TokenGetInfo\";\n case RequestType.TokenFreezeAccount:\n return \"TokenFreezeAccount\";\n case RequestType.TokenUnfreezeAccount:\n return \"TokenUnfreezeAccount\";\n case RequestType.TokenGrantKycToAccount:\n return \"TokenGrantKycToAccount\";\n case RequestType.TokenRevokeKycFromAccount:\n return \"TokenRevokeKycFromAccount\";\n case RequestType.TokenDelete:\n return \"TokenDelete\";\n case RequestType.TokenUpdate:\n return \"TokenUpdate\";\n case RequestType.TokenMint:\n return \"TokenMint\";\n case RequestType.TokenBurn:\n return \"TokenBurn\";\n case RequestType.TokenAccountWipe:\n return \"TokenAccountWipe\";\n case RequestType.TokenAssociateToAccount:\n return \"TokenAssociateToAccount\";\n case RequestType.TokenDissociateFromAccount:\n return \"TokenDissociateFromAccount\";\n case RequestType.ScheduleCreate:\n return \"ScheduleCreate\";\n case RequestType.ScheduleDelete:\n return \"ScheduleDelete\";\n case RequestType.ScheduleSign:\n return \"ScheduleSign\";\n case RequestType.ScheduleGetInfo:\n return \"ScheduleGetInfo\";\n case RequestType.TokenGetAccountNftInfos:\n return \"TokenGetAccountNftInfos\";\n case RequestType.TokenGetNftInfo:\n return \"TokenGetNftInfo\";\n case RequestType.TokenGetNftInfos:\n return \"TokenGetNftInfos\";\n case RequestType.TokenFeeScheduleUpdate:\n return \"TokenFeeScheduleUpdate\";\n case RequestType.NetworkGetExecutionTime:\n return \"NetworkGetExecutionTime\";\n case RequestType.TokenPause:\n return \"TokenPause\";\n case RequestType.TokenUnpause:\n return \"TokenUnpause\";\n case RequestType.CryptoApproveAllowance:\n return \"CryptoApproveAllowance\";\n case RequestType.CryptoDeleteAllowance:\n return \"CryptoDeleteAllowance\";\n case RequestType.GetAccountDetails:\n return \"GetAccountDetails\";\n case RequestType.EthereumTransaction:\n return \"EthereumTransaction\";\n case RequestType.NodeStakeUpdate:\n return \"NodeStakeUpdate\";\n case RequestType.Prng:\n return \"UtilPrng\";\n case RequestType.TransactionGetFastRecord:\n return \"TransactionGetFastRecord\";\n case RequestType.TokenUpdateNfts:\n return \"TokenUpdateNfts\";\n case RequestType.NodeCreate:\n return \"NodeCreate\";\n case RequestType.NodeUpdate:\n return \"NodeUpdate\";\n case RequestType.NodeDelete:\n return \"NodeDelete\";\n case RequestType.TokenReject:\n return \"TokenReject\";\n case RequestType.TokenAirdrop:\n return \"TokenAirdrop\";\n case RequestType.TokenCancelAirdrop:\n return \"TokenCancelAirdrop\";\n case RequestType.TokenClaimAirdrop:\n return \"TokenClaimAirdrop\";\n case RequestType.TssMessage:\n return \"TssMessage\";\n case RequestType.TssVote:\n return \"TssVote\";\n case RequestType.TssShareSignature:\n return \"TssShareSignature\";\n case RequestType.TssEncryptionKey:\n return \"TssEncryptionKey\";\n case RequestType.StateSignatureTransaction:\n return \"StateSignatureTransaction\";\n default:\n return `UNKNOWN (${this._code})`;\n }\n }\n\n /**\n * @internal\n * @param {number} code\n * @returns {RequestType}\n */\n static _fromCode(code) {\n switch (code) {\n case 0:\n return RequestType.None;\n case 1:\n return RequestType.CryptoTransfer;\n case 2:\n return RequestType.CryptoUpdate;\n case 3:\n return RequestType.CryptoDelete;\n case 4:\n return RequestType.CryptoAddLiveHash;\n case 5:\n return RequestType.CryptoDeleteLiveHash;\n case 6:\n return RequestType.ContractCall;\n case 7:\n return RequestType.ContractCreate;\n case 8:\n return RequestType.ContractUpdate;\n case 9:\n return RequestType.FileCreate;\n case 10:\n return RequestType.FileAppend;\n case 11:\n return RequestType.FileUpdate;\n case 12:\n return RequestType.FileDelete;\n case 13:\n return RequestType.CryptoGetAccountBalance;\n case 14:\n return RequestType.CryptoGetAccountRecords;\n case 15:\n return RequestType.CryptoGetInfo;\n case 16:\n return RequestType.ContractCallLocal;\n case 17:\n return RequestType.ContractGetInfo;\n case 18:\n return RequestType.ContractGetBytecode;\n case 19:\n return RequestType.GetBySolidityID;\n case 20:\n return RequestType.GetByKey;\n case 21:\n return RequestType.CryptoGetLiveHash;\n case 22:\n return RequestType.CryptoGetStakers;\n case 23:\n return RequestType.FileGetContents;\n case 24:\n return RequestType.FileGetInfo;\n case 25:\n return RequestType.TransactionGetRecord;\n case 26:\n return RequestType.ContractGetRecords;\n case 27:\n return RequestType.CryptoCreate;\n case 28:\n return RequestType.SystemDelete;\n case 29:\n return RequestType.SystemUndelete;\n case 30:\n return RequestType.ContractDelete;\n case 31:\n return RequestType.Freeze;\n case 32:\n return RequestType.CreateTransactionRecord;\n case 33:\n return RequestType.CryptoAccountAutoRenew;\n case 34:\n return RequestType.ContractAutoRenew;\n case 35:\n return RequestType.GetVersionInfo;\n case 36:\n return RequestType.TransactionGetReceipt;\n case 50:\n return RequestType.ConsensusCreateTopic;\n case 51:\n return RequestType.ConsensusUpdateTopic;\n case 52:\n return RequestType.ConsensusDeleteTopic;\n case 53:\n return RequestType.ConsensusGetTopicInfo;\n case 54:\n return RequestType.ConsensusSubmitMessage;\n case 55:\n return RequestType.UncheckedSubmit;\n case 56:\n return RequestType.TokenCreate;\n case 58:\n return RequestType.TokenGetInfo;\n case 59:\n return RequestType.TokenFreezeAccount;\n case 60:\n return RequestType.TokenUnfreezeAccount;\n case 61:\n return RequestType.TokenGrantKycToAccount;\n case 62:\n return RequestType.TokenRevokeKycFromAccount;\n case 63:\n return RequestType.TokenDelete;\n case 64:\n return RequestType.TokenUpdate;\n case 65:\n return RequestType.TokenMint;\n case 66:\n return RequestType.TokenBurn;\n case 67:\n return RequestType.TokenAccountWipe;\n case 68:\n return RequestType.TokenAssociateToAccount;\n case 69:\n return RequestType.TokenDissociateFromAccount;\n case 70:\n return RequestType.ScheduleCreate;\n case 71:\n return RequestType.ScheduleDelete;\n case 72:\n return RequestType.ScheduleSign;\n case 73:\n return RequestType.ScheduleGetInfo;\n case 74:\n return RequestType.TokenGetAccountNftInfos;\n case 75:\n return RequestType.TokenGetNftInfo;\n case 76:\n return RequestType.TokenGetNftInfos;\n case 77:\n return RequestType.TokenFeeScheduleUpdate;\n case 78:\n return RequestType.NetworkGetExecutionTime;\n case 79:\n return RequestType.TokenPause;\n case 80:\n return RequestType.TokenUnpause;\n case 81:\n return RequestType.CryptoApproveAllowance;\n case 82:\n return RequestType.CryptoDeleteAllowance;\n case 83:\n return RequestType.GetAccountDetails;\n case 84:\n return RequestType.EthereumTransaction;\n case 85:\n return RequestType.NodeStakeUpdate;\n case 86:\n return RequestType.Prng;\n case 87:\n return RequestType.TransactionGetFastRecord;\n case 88:\n return RequestType.TokenUpdateNfts;\n case 89:\n return RequestType.NodeCreate;\n case 90:\n return RequestType.NodeUpdate;\n case 91:\n return RequestType.NodeDelete;\n case 92:\n return RequestType.TokenReject;\n case 93:\n return RequestType.TokenAirdrop;\n case 94:\n return RequestType.TokenCancelAirdrop;\n case 95:\n return RequestType.TokenClaimAirdrop;\n case 96:\n return RequestType.TssMessage;\n case 97:\n return RequestType.TssVote;\n case 98:\n return RequestType.TssShareSignature;\n case 99:\n return RequestType.TssEncryptionKey;\n case 100:\n return RequestType.StateSignatureTransaction;\n }\n\n throw new Error(\n `(BUG) RequestType.fromCode() does not handle code: ${code}`,\n );\n }\n\n /**\n * @returns {HashgraphProto.proto.HederaFunctionality}\n */\n valueOf() {\n return this._code;\n }\n}\n\n/**\n * UNSPECIFIED - Need to keep first value as unspecified because first element is ignored and\n * not parsed (0 is ignored by parser)\n */\nRequestType.None = new RequestType(0);\n\n/**\n * crypto transfer\n */\nRequestType.CryptoTransfer = new RequestType(1);\n\n/**\n * crypto update account\n */\nRequestType.CryptoUpdate = new RequestType(2);\n\n/**\n * crypto delete account\n */\nRequestType.CryptoDelete = new RequestType(3);\n\n/**\n * Add a livehash to a crypto account\n */\nRequestType.CryptoAddLiveHash = new RequestType(4);\n\n/**\n * Delete a livehash from a crypto account\n */\nRequestType.CryptoDeleteLiveHash = new RequestType(5);\n\n/**\n * Smart Contract Call\n */\nRequestType.ContractCall = new RequestType(6);\n\n/**\n * Smart Contract Create Contract\n */\nRequestType.ContractCreate = new RequestType(7);\n\n/**\n * Smart Contract update contract\n */\nRequestType.ContractUpdate = new RequestType(8);\n\n/**\n * File Operation create file\n */\nRequestType.FileCreate = new RequestType(9);\n\n/**\n * File Operation append file\n */\nRequestType.FileAppend = new RequestType(10);\n\n/**\n * File Operation update file\n */\nRequestType.FileUpdate = new RequestType(11);\n\n/**\n * File Operation delete file\n */\nRequestType.FileDelete = new RequestType(12);\n\n/**\n * crypto get account balance\n */\nRequestType.CryptoGetAccountBalance = new RequestType(13);\n\n/**\n * crypto get account record\n */\nRequestType.CryptoGetAccountRecords = new RequestType(14);\n\n/**\n * Crypto get info\n */\nRequestType.CryptoGetInfo = new RequestType(15);\n\n/**\n * Smart Contract Call\n */\nRequestType.ContractCallLocal = new RequestType(16);\n\n/**\n * Smart Contract get info\n */\nRequestType.ContractGetInfo = new RequestType(17);\n\n/**\n * Smart Contract, get the runtime code\n */\nRequestType.ContractGetBytecode = new RequestType(18);\n\n/**\n * Smart Contract, get by solidity ID\n */\nRequestType.GetBySolidityID = new RequestType(19);\n\n/**\n * Smart Contract, get by key\n */\nRequestType.GetByKey = new RequestType(20);\n\n/**\n * Get a live hash from a crypto account\n */\nRequestType.CryptoGetLiveHash = new RequestType(21);\n\n/**\n * Crypto, get the stakers for the node\n */\nRequestType.CryptoGetStakers = new RequestType(22);\n\n/**\n * File Operations get file contents\n */\nRequestType.FileGetContents = new RequestType(23);\n\n/**\n * File Operations get the info of the file\n */\nRequestType.FileGetInfo = new RequestType(24);\n\n/**\n * Crypto get the transaction records\n */\nRequestType.TransactionGetRecord = new RequestType(25);\n\n/**\n * Contract get the transaction records\n */\nRequestType.ContractGetRecords = new RequestType(26);\n\n/**\n * crypto create account\n */\nRequestType.CryptoCreate = new RequestType(27);\n\n/**\n * system delete file\n */\nRequestType.SystemDelete = new RequestType(28);\n\n/**\n * system undelete file\n */\nRequestType.SystemUndelete = new RequestType(29);\n\n/**\n * delete contract\n */\nRequestType.ContractDelete = new RequestType(30);\n\n/**\n * freeze\n */\nRequestType.Freeze = new RequestType(31);\n\n/**\n * Create Tx Record\n */\nRequestType.CreateTransactionRecord = new RequestType(32);\n\n/**\n * Crypto Auto Renew\n */\nRequestType.CryptoAccountAutoRenew = new RequestType(33);\n\n/**\n * Contract Auto Renew\n */\nRequestType.ContractAutoRenew = new RequestType(34);\n\n/**\n * Get Version\n */\nRequestType.GetVersionInfo = new RequestType(35);\n\n/**\n * Transaction Get Receipt\n */\nRequestType.TransactionGetReceipt = new RequestType(36);\n\n/**\n * Create Topic\n */\nRequestType.ConsensusCreateTopic = new RequestType(50);\n\n/**\n * Update Topic\n */\nRequestType.ConsensusUpdateTopic = new RequestType(51);\n\n/**\n * Delete Topic\n */\nRequestType.ConsensusDeleteTopic = new RequestType(52);\n\n/**\n * Get Topic information\n */\nRequestType.ConsensusGetTopicInfo = new RequestType(53);\n\n/**\n * Submit message to topic\n */\nRequestType.ConsensusSubmitMessage = new RequestType(54);\n\nRequestType.UncheckedSubmit = new RequestType(55);\n/**\n * Create Token\n */\nRequestType.TokenCreate = new RequestType(56);\n\n/**\n * Get Token information\n */\nRequestType.TokenGetInfo = new RequestType(58);\n\n/**\n * Freeze Account\n */\nRequestType.TokenFreezeAccount = new RequestType(59);\n\n/**\n * Unfreeze Account\n */\nRequestType.TokenUnfreezeAccount = new RequestType(60);\n\n/**\n * Grant KYC to Account\n */\nRequestType.TokenGrantKycToAccount = new RequestType(61);\n\n/**\n * Revoke KYC from Account\n */\nRequestType.TokenRevokeKycFromAccount = new RequestType(62);\n\n/**\n * Delete Token\n */\nRequestType.TokenDelete = new RequestType(63);\n\n/**\n * Update Token\n */\nRequestType.TokenUpdate = new RequestType(64);\n\n/**\n * Mint tokens to treasury\n */\nRequestType.TokenMint = new RequestType(65);\n\n/**\n * Burn tokens from treasury\n */\nRequestType.TokenBurn = new RequestType(66);\n\n/**\n * Wipe token amount from Account holder\n */\nRequestType.TokenAccountWipe = new RequestType(67);\n\n/**\n * Associate tokens to an account\n */\nRequestType.TokenAssociateToAccount = new RequestType(68);\n\n/**\n * Dissociate tokens from an account\n */\nRequestType.TokenDissociateFromAccount = new RequestType(69);\n\n/**\n * Create Scheduled Transaction\n */\nRequestType.ScheduleCreate = new RequestType(70);\n\n/**\n * Delete Scheduled Transaction\n */\nRequestType.ScheduleDelete = new RequestType(71);\n\n/**\n * Sign Scheduled Transaction\n */\nRequestType.ScheduleSign = new RequestType(72);\n\n/**\n * Get Scheduled Transaction Information\n */\nRequestType.ScheduleGetInfo = new RequestType(73);\n\n/**\n * Get Token Account Nft Information\n */\nRequestType.TokenGetAccountNftInfos = new RequestType(74);\n\n/**\n * Get Token Nft Information\n */\nRequestType.TokenGetNftInfo = new RequestType(75);\n\n/**\n * Get Token Nft List Information\n */\nRequestType.TokenGetNftInfos = new RequestType(76);\n\n/**\n * Update a token's custom fee schedule, if permissible\n */\nRequestType.TokenFeeScheduleUpdate = new RequestType(77);\n\n/**\n * Get execution time(s) by TransactionID, if available\n */\nRequestType.NetworkGetExecutionTime = new RequestType(78);\n\n/**\n * Pause the Token\n */\nRequestType.TokenPause = new RequestType(79);\n\n/**\n * Unpause the Token\n */\nRequestType.TokenUnpause = new RequestType(80);\n\n/**\n * Approve allowance for a spender relative to the owner account\n */\nRequestType.CryptoApproveAllowance = new RequestType(81);\n\n/**\n * Deletes granted allowances on owner account\n */\nRequestType.CryptoDeleteAllowance = new RequestType(82);\n\n/**\n * Gets all the information about an account, including balance and allowances. This does not get the list of\n * account records.\n */\nRequestType.GetAccountDetails = new RequestType(83);\n\n/**\n * Ethereum Transaction\n */\nRequestType.EthereumTransaction = new RequestType(84);\n\n/**\n * Updates the staking info at the end of staking period to indicate new staking period has started.\n */\nRequestType.NodeStakeUpdate = new RequestType(85);\n\n/**\n * Generates a pseudorandom number.\n */\nRequestType.Prng = new RequestType(86);\n\n/**\n * Get a record for a transaction (lasts 180 seconds)\n */\nRequestType.TransactionGetFastRecord = new RequestType(87);\n\n/**\n * Update the metadata of one or more NFT's of a specific token type.\n */\nRequestType.TokenUpdateNfts = new RequestType(88);\n\n/**\n * A transaction body for a `createNode` request.\n */\nRequestType.NodeCreate = new RequestType(89);\n\n/**\n * A transaction body for an `updateNode` request.\n */\nRequestType.NodeUpdate = new RequestType(90);\n\n/**\n * A transaction body for a `deleteNode` request.\n */\nRequestType.NodeDelete = new RequestType(91);\n\n/**\n * Transfer one or more token balances held by the requesting account to the treasury for each token type.\n */\nRequestType.TokenReject = new RequestType(92);\n\n/**\n * Airdrop one or more tokens to one or more accounts.\n */\nRequestType.TokenAirdrop = new RequestType(93);\n\n/**\n * Remove one or more pending airdrops from state on behalf of the sender(s) for each airdrop.\n */\nRequestType.TokenCancelAirdrop = new RequestType(94);\n\n/**\n * Claim one or more pending airdrops\n */\nRequestType.TokenClaimAirdrop = new RequestType(95);\n\n/**\n * (TSS) Messages for a candidate roster.\n */\nRequestType.TssMessage = new RequestType(96);\n\n/**\n * Vote on the validity of Threshold Signature Scheme (TSS)\n */\nRequestType.TssVote = new RequestType(97);\n\n/**\n * Communicates a node's signature of a block hash\n * using its private share within the TSS process\n */\nRequestType.TssShareSignature = new RequestType(98);\n\n/**\n * Submit a node public tss encryption key as part of the Threshold Signature Scheme (TSS).\n */\nRequestType.TssEncryptionKey = new RequestType(99);\n\n/**\n * Submit a signature of a state root hash gossiped to other nodes\n */\nRequestType.StateSignatureTransaction = new RequestType(100);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport * as HashgraphProto from \"@hashgraph/proto\";\nimport RequestType from \"./RequestType.js\";\nimport FeeData from \"./FeeData.js\";\n\nexport default class TransactionFeeSchedule {\n /**\n * @param {object} [props]\n * @param {RequestType} [props.hederaFunctionality]\n * @param {FeeData} [props.feeData]\n * @param {FeeData[]} [props.fees]\n */\n constructor(props = {}) {\n /*\n * A particular transaction or query\n *\n * @type {RequestType}\n */\n this.hederaFunctionality = props.hederaFunctionality;\n\n /*\n * Resource price coefficients\n *\n * @type {FeeData}\n */\n this.feeData = props.feeData;\n\n /*\n * Resource price coefficients\n *\n * @type {FeeData[]}\n */\n this.fees = props.fees;\n }\n\n /**\n * @param {Uint8Array} bytes\n * @returns {TransactionFeeSchedule}\n */\n static fromBytes(bytes) {\n return TransactionFeeSchedule._fromProtobuf(\n HashgraphProto.proto.TransactionFeeSchedule.decode(bytes),\n );\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransactionFeeSchedule} transactionFeeSchedule\n * @returns {TransactionFeeSchedule}\n */\n static _fromProtobuf(transactionFeeSchedule) {\n return new TransactionFeeSchedule({\n hederaFunctionality:\n transactionFeeSchedule.hederaFunctionality != null\n ? RequestType._fromCode(\n transactionFeeSchedule.hederaFunctionality,\n )\n : undefined,\n feeData:\n transactionFeeSchedule.feeData != null\n ? FeeData._fromProtobuf(transactionFeeSchedule.feeData)\n : undefined,\n fees:\n transactionFeeSchedule.fees != null\n ? transactionFeeSchedule.fees.map((fee) =>\n FeeData._fromProtobuf(fee),\n )\n : undefined,\n });\n }\n\n /**\n * @internal\n * @returns {HashgraphProto.proto.ITransactionFeeSchedule}\n */\n _toProtobuf() {\n return {\n hederaFunctionality:\n this.hederaFunctionality != null\n ? this.hederaFunctionality.valueOf()\n : undefined,\n feeData:\n this.feeData != null ? this.feeData._toProtobuf() : undefined,\n fees:\n this.fees != null\n ? this.fees.map((fee) => fee._toProtobuf())\n : undefined,\n };\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytes() {\n return HashgraphProto.proto.TransactionFeeSchedule.encode(\n this._toProtobuf(),\n ).finish();\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport * as HashgraphProto from \"@hashgraph/proto\";\nimport TransactionFeeSchedule from \"./TransactionFeeSchedule.js\";\nimport Timestamp from \"./Timestamp.js\";\n\nexport default class FeeSchedule {\n /**\n * @param {object} [props]\n * @param {TransactionFeeSchedule[]} [props.transactionFeeSchedule]\n * @param {Timestamp} [props.expirationTime]\n */\n constructor(props = {}) {\n /*\n * List of price coefficients for network resources\n *\n * @type {TransactionFeeSchedule}\n */\n this.transactionFeeSchedule = props.transactionFeeSchedule;\n\n /*\n * FeeSchedule expiry time\n *\n * @type {Timestamp}\n */\n this.expirationTime = props.expirationTime;\n }\n\n /**\n * @param {Uint8Array} bytes\n * @returns {FeeSchedule}\n */\n static fromBytes(bytes) {\n return FeeSchedule._fromProtobuf(\n HashgraphProto.proto.FeeSchedule.decode(bytes),\n );\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.IFeeSchedule} feeSchedule\n * @returns {FeeSchedule}\n */\n static _fromProtobuf(feeSchedule) {\n return new FeeSchedule({\n transactionFeeSchedule:\n feeSchedule.transactionFeeSchedule != null\n ? feeSchedule.transactionFeeSchedule.map((schedule) =>\n TransactionFeeSchedule._fromProtobuf(schedule),\n )\n : undefined,\n expirationTime:\n feeSchedule.expiryTime != null\n ? Timestamp._fromProtobuf(feeSchedule.expiryTime)\n : undefined,\n });\n }\n\n /**\n * @internal\n * @returns {HashgraphProto.proto.IFeeSchedule}\n */\n _toProtobuf() {\n return {\n transactionFeeSchedule:\n this.transactionFeeSchedule != null\n ? this.transactionFeeSchedule.map((transaction) =>\n transaction._toProtobuf(),\n )\n : undefined,\n expiryTime:\n this.expirationTime != null\n ? this.expirationTime._toProtobuf()\n : undefined,\n };\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytes() {\n return HashgraphProto.proto.FeeSchedule.encode(\n this._toProtobuf(),\n ).finish();\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport * as HashgraphProto from \"@hashgraph/proto\";\nimport FeeSchedule from \"./FeeSchedule.js\";\n\nexport default class FeeSchedules {\n /**\n * @param {object} [props]\n * @param {FeeSchedule} [props.currentFeeSchedule]\n * @param {FeeSchedule} [props.nextFeeSchedule]\n */\n constructor(props = {}) {\n /*\n * Contains current Fee Schedule\n *\n * @type {FeeSchedule}\n */\n this.current = props.currentFeeSchedule;\n\n /*\n * Contains next Fee Schedule\n *\n * @type {FeeSchedule}\n */\n this.next = props.nextFeeSchedule;\n }\n\n /**\n * @param {Uint8Array} bytes\n * @returns {FeeSchedules}\n */\n static fromBytes(bytes) {\n return FeeSchedules._fromProtobuf(\n HashgraphProto.proto.CurrentAndNextFeeSchedule.decode(bytes),\n );\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ICurrentAndNextFeeSchedule} feeSchedules\n * @returns {FeeSchedules}\n */\n static _fromProtobuf(feeSchedules) {\n return new FeeSchedules({\n currentFeeSchedule:\n feeSchedules.currentFeeSchedule != null\n ? FeeSchedule._fromProtobuf(feeSchedules.currentFeeSchedule)\n : undefined,\n nextFeeSchedule:\n feeSchedules.nextFeeSchedule != null\n ? FeeSchedule._fromProtobuf(feeSchedules.nextFeeSchedule)\n : undefined,\n });\n }\n\n /**\n * @internal\n * @returns {HashgraphProto.proto.ICurrentAndNextFeeSchedule}\n */\n _toProtobuf() {\n return {\n currentFeeSchedule:\n this.current != null ? this.current._toProtobuf() : undefined,\n nextFeeSchedule:\n this.next != null ? this.next._toProtobuf() : undefined,\n };\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytes() {\n return HashgraphProto.proto.CurrentAndNextFeeSchedule.encode(\n this._toProtobuf(),\n ).finish();\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Query, { QUERY_REGISTRY } from \"../query/Query.js\";\nimport FileId from \"./FileId.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.IQuery} HashgraphProto.proto.IQuery\n * @typedef {import(\"@hashgraph/proto\").proto.IQueryHeader} HashgraphProto.proto.IQueryHeader\n * @typedef {import(\"@hashgraph/proto\").proto.IResponse} HashgraphProto.proto.IResponse\n * @typedef {import(\"@hashgraph/proto\").proto.IResponseHeader} HashgraphProto.proto.IResponseHeader\n * @typedef {import(\"@hashgraph/proto\").proto.IFileGetContentsQuery} HashgraphProto.proto.IFileGetContentsQuery\n * @typedef {import(\"@hashgraph/proto\").proto.IFileGetContentsResponse} HashgraphProto.proto.IFileGetContentsResponse\n * @typedef {import(\"@hashgraph/proto\").proto.FileGetContentsResponse.IFileContents} HashgraphProto.proto.FileGetContentsResponse.IFileContents\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../account/AccountId.js\").default} AccountId\n */\n\n/**\n * @augments {Query}\n */\nexport default class FileContentsQuery extends Query {\n /**\n * @param {object} [props]\n * @param {FileId | string} [props.fileId]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @type {?FileId}\n * @private\n */\n this._fileId = null;\n if (props.fileId != null) {\n this.setFileId(props.fileId);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.IQuery} query\n * @returns {FileContentsQuery}\n */\n static _fromProtobuf(query) {\n const contents =\n /** @type {HashgraphProto.proto.IFileGetContentsQuery} */ (\n query.fileGetContents\n );\n\n return new FileContentsQuery({\n fileId:\n contents.fileID != null\n ? FileId._fromProtobuf(contents.fileID)\n : undefined,\n });\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (this._fileId != null) {\n this._fileId.validateChecksum(client);\n }\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.IQuery} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.file.getFileContent(request);\n }\n\n /**\n * @returns {?FileId}\n */\n get fileId() {\n return this._fileId;\n }\n\n /**\n * Set the file ID for which the info is being requested.\n *\n * @param {FileId | string} fileId\n * @returns {FileContentsQuery}\n */\n setFileId(fileId) {\n this._fileId =\n typeof fileId === \"string\"\n ? FileId.fromString(fileId)\n : fileId.clone();\n\n return this;\n }\n\n /**\n * @override\n * @internal\n * @param {HashgraphProto.proto.IResponse} response\n * @returns {HashgraphProto.proto.IResponseHeader}\n */\n _mapResponseHeader(response) {\n const fileGetContents =\n /** @type {HashgraphProto.proto.IFileGetContentsResponse} */ (\n response.fileGetContents\n );\n return /** @type {HashgraphProto.proto.IResponseHeader} */ (\n fileGetContents.header\n );\n }\n\n /**\n * @protected\n * @override\n * @param {HashgraphProto.proto.IResponse} response\n * @returns {Promise}\n */\n _mapResponse(response) {\n const fileContentsResponse =\n /** @type {HashgraphProto.proto.IFileGetContentsResponse} */ (\n response.fileGetContents\n );\n const fileConents =\n /** @type {HashgraphProto.proto.FileGetContentsResponse.IFileContents} */ (\n fileContentsResponse.fileContents\n );\n const contents = /** @type {Uint8Array} */ (fileConents.contents);\n\n return Promise.resolve(contents);\n }\n\n /**\n * @override\n * @internal\n * @param {HashgraphProto.proto.IQueryHeader} header\n * @returns {HashgraphProto.proto.IQuery}\n */\n _onMakeRequest(header) {\n return {\n fileGetContents: {\n header,\n fileID:\n this._fileId != null ? this._fileId._toProtobuf() : null,\n },\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp =\n this._paymentTransactionId != null &&\n this._paymentTransactionId.validStart != null\n ? this._paymentTransactionId.validStart\n : this._timestamp;\n\n return `FileContentsQuery:${timestamp.toString()}`;\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/unbound-method\nQUERY_REGISTRY.set(\"fileGetContents\", FileContentsQuery._fromProtobuf);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport FileId from \"./FileId.js\";\nimport Timestamp from \"../Timestamp.js\";\nimport Long from \"long\";\nimport KeyList from \"../KeyList.js\";\nimport LedgerId from \"../LedgerId.js\";\nimport * as HashgraphProto from \"@hashgraph/proto\";\n\nconst { proto } = HashgraphProto;\n\n/**\n * Response when the client sends the node CryptoGetInfoQuery.\n */\nexport default class FileInfo {\n /**\n * @private\n * @param {object} props\n * @param {FileId} props.fileId\n * @param {Long} props.size\n * @param {Timestamp} props.expirationTime\n * @param {boolean} props.isDeleted\n * @param {KeyList} props.keys\n * @param {string} props.fileMemo\n * @param {LedgerId|null} props.ledgerId\n */\n constructor(props) {\n /**\n * The ID of the file for which information is requested.\n *\n * @readonly\n */\n this.fileId = props.fileId;\n\n /**\n * Number of bytes in contents.\n *\n * @readonly\n */\n this.size = props.size;\n\n /**\n * The current time at which this account is set to expire.\n *\n * @readonly\n */\n this.expirationTime = props.expirationTime;\n\n /**\n * True if deleted but not yet expired.\n *\n * @readonly\n */\n this.isDeleted = props.isDeleted;\n\n /**\n * One of these keys must sign in order to delete the file.\n * All of these keys must sign in order to update the file.\n *\n * @readonly\n */\n this.keys = props.keys;\n\n this.fileMemo = props.fileMemo;\n\n this.ledgerId = props.ledgerId;\n\n Object.freeze(this);\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.FileGetInfoResponse.IFileInfo} info\n * @returns {FileInfo}\n */\n static _fromProtobuf(info) {\n const size = /** @type {Long | number} */ (info.size);\n\n return new FileInfo({\n fileId: FileId._fromProtobuf(\n /** @type {HashgraphProto.proto.IFileID} */ (info.fileID),\n ),\n size: size instanceof Long ? size : Long.fromValue(size),\n expirationTime: Timestamp._fromProtobuf(\n /** @type {HashgraphProto.proto.ITimestamp} */ (\n info.expirationTime\n ),\n ),\n isDeleted: /** @type {boolean} */ (info.deleted),\n keys:\n info.keys != null\n ? KeyList.__fromProtobufKeyList(info.keys)\n : new KeyList(),\n fileMemo: info.memo != null ? info.memo : \"\",\n ledgerId:\n info.ledgerId != null\n ? LedgerId.fromBytes(info.ledgerId)\n : null,\n });\n }\n\n /**\n * @internal\n * @returns {HashgraphProto.proto.FileGetInfoResponse.IFileInfo}\n */\n _toProtobuf() {\n return {\n fileID: this.fileId._toProtobuf(),\n size: this.size,\n expirationTime: this.expirationTime._toProtobuf(),\n deleted: this.isDeleted,\n keys: this.keys._toProtobufKey().keyList,\n memo: this.fileMemo,\n ledgerId: this.ledgerId != null ? this.ledgerId.toBytes() : null,\n };\n }\n\n /**\n * @param {Uint8Array} bytes\n * @returns {FileInfo}\n */\n static fromBytes(bytes) {\n return FileInfo._fromProtobuf(\n HashgraphProto.proto.FileGetInfoResponse.FileInfo.decode(bytes),\n );\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytes() {\n return proto.FileGetInfoResponse.FileInfo.encode(\n this._toProtobuf(),\n ).finish();\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Query, { QUERY_REGISTRY } from \"../query/Query.js\";\nimport FileId from \"./FileId.js\";\nimport FileInfo from \"./FileInfo.js\";\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport Hbar from \"../Hbar.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.IQuery} HashgraphProto.proto.IQuery\n * @typedef {import(\"@hashgraph/proto\").proto.IQueryHeader} HashgraphProto.proto.IQueryHeader\n * @typedef {import(\"@hashgraph/proto\").proto.IResponse} HashgraphProto.proto.IResponse\n * @typedef {import(\"@hashgraph/proto\").proto.IResponseHeader} HashgraphProto.proto.IResponseHeader\n * @typedef {import(\"@hashgraph/proto\").proto.IFileGetInfoQuery} HashgraphProto.proto.IFileGetInfoQuery\n * @typedef {import(\"@hashgraph/proto\").proto.IFileGetInfoResponse} HashgraphProto.proto.IFileGetInfoResponse\n * @typedef {import(\"@hashgraph/proto\").proto.FileGetInfoResponse.IFileInfo} HashgraphProto.proto.IFileInfo\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../account/AccountId.js\").default} AccountId\n */\n\n/**\n * @augments {Query}\n */\nexport default class FileInfoQuery extends Query {\n /**\n * @param {object} [props]\n * @param {FileId | string} [props.fileId]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @type {?FileId}\n * @private\n */\n this._fileId = null;\n if (props.fileId != null) {\n this.setFileId(props.fileId);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.IQuery} query\n * @returns {FileInfoQuery}\n */\n static _fromProtobuf(query) {\n const info = /** @type {HashgraphProto.proto.IFileGetInfoQuery} */ (\n query.fileGetInfo\n );\n\n return new FileInfoQuery({\n fileId:\n info.fileID != null\n ? FileId._fromProtobuf(info.fileID)\n : undefined,\n });\n }\n\n /**\n * @returns {?FileId}\n */\n get fileId() {\n return this._fileId;\n }\n\n /**\n * Set the file ID for which the info is being requested.\n *\n * @param {FileId | string} fileId\n * @returns {FileInfoQuery}\n */\n setFileId(fileId) {\n this._fileId =\n typeof fileId === \"string\"\n ? FileId.fromString(fileId)\n : fileId.clone();\n\n return this;\n }\n\n /**\n * @override\n * @param {import(\"../client/Client.js\").default} client\n * @returns {Promise}\n */\n async getCost(client) {\n return super.getCost(client);\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (this._fileId != null) {\n this._fileId.validateChecksum(client);\n }\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.IQuery} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.file.getFileInfo(request);\n }\n\n /**\n * @override\n * @internal\n * @param {HashgraphProto.proto.IResponse} response\n * @returns {HashgraphProto.proto.IResponseHeader}\n */\n _mapResponseHeader(response) {\n const fileGetInfo =\n /** @type {HashgraphProto.proto.IFileGetInfoResponse} */ (\n response.fileGetInfo\n );\n return /** @type {HashgraphProto.proto.IResponseHeader} */ (\n fileGetInfo.header\n );\n }\n\n /**\n * @protected\n * @override\n * @param {HashgraphProto.proto.IResponse} response\n * @param {AccountId} nodeAccountId\n * @param {HashgraphProto.proto.IQuery} request\n * @returns {Promise}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _mapResponse(response, nodeAccountId, request) {\n const info = /** @type {HashgraphProto.proto.IFileGetInfoResponse} */ (\n response.fileGetInfo\n );\n\n return Promise.resolve(\n FileInfo._fromProtobuf(\n /** @type {HashgraphProto.proto.IFileInfo} */ (info.fileInfo),\n ),\n );\n }\n\n /**\n * @override\n * @internal\n * @param {HashgraphProto.proto.IQueryHeader} header\n * @returns {HashgraphProto.proto.IQuery}\n */\n _onMakeRequest(header) {\n return {\n fileGetInfo: {\n header,\n fileID:\n this._fileId != null ? this._fileId._toProtobuf() : null,\n },\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp =\n this._paymentTransactionId != null &&\n this._paymentTransactionId.validStart != null\n ? this._paymentTransactionId.validStart\n : this._timestamp;\n\n return `FileInfoQuery:${timestamp.toString()}`;\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/unbound-method\nQUERY_REGISTRY.set(\"fileGetInfo\", FileInfoQuery._fromProtobuf);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Transaction, {\n TRANSACTION_REGISTRY,\n} from \"../transaction/Transaction.js\";\nimport Timestamp from \"../Timestamp.js\";\nimport * as utf8 from \"../encoding/utf8.js\";\nimport FileId from \"./FileId.js\";\nimport Key from \"../Key.js\";\nimport KeyList from \"../KeyList.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HashgraphProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HashgraphProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HashgraphProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} HashgraphProto.proto.ITransactionResponse\n * @typedef {import(\"@hashgraph/proto\").proto.IFileUpdateTransactionBody} HashgraphProto.proto.IFileUpdateTransactionBody\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../account/AccountId.js\").default} AccountId\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n */\n\n/**\n * Update a new Hedera™ crypto-currency file.\n */\nexport default class FileUpdateTransaction extends Transaction {\n /**\n * @param {object} props\n * @param {FileId | string} [props.fileId]\n * @param {Key[] | KeyList} [props.keys]\n * @param {Timestamp | Date} [props.expirationTime]\n * @param {Uint8Array | string} [props.contents]\n * @param {?string} [props.fileMemo]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {?FileId}\n */\n this._fileId = null;\n\n /**\n * @private\n * @type {?Key[]}\n */\n this._keys = null;\n\n /**\n * @private\n * @type {?Timestamp}\n */\n this._expirationTime = null;\n\n /**\n * @private\n * @type {?Uint8Array}\n */\n this._contents = null;\n\n /**\n * @private\n * @type {?string}\n */\n this._fileMemo = null;\n\n if (props.fileId != null) {\n this.setFileId(props.fileId);\n }\n\n if (props.keys != null) {\n this.setKeys(props.keys);\n }\n\n if (props.expirationTime != null) {\n this.setExpirationTime(props.expirationTime);\n }\n\n if (props.contents != null) {\n this.setContents(props.contents);\n }\n\n if (props.fileMemo && props.fileMemo != null) {\n this.setFileMemo(props.fileMemo);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransaction[]} transactions\n * @param {HashgraphProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HashgraphProto.proto.ITransactionBody[]} bodies\n * @returns {FileUpdateTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const update =\n /** @type {HashgraphProto.proto.IFileUpdateTransactionBody} */ (\n body.fileUpdate\n );\n\n return Transaction._fromProtobufTransactions(\n new FileUpdateTransaction({\n fileId:\n update.fileID != null\n ? FileId._fromProtobuf(update.fileID)\n : undefined,\n keys:\n update.keys != null\n ? update.keys.keys != null\n ? update.keys.keys.map((key) =>\n Key._fromProtobufKey(key),\n )\n : undefined\n : undefined,\n expirationTime:\n update.expirationTime != null\n ? Timestamp._fromProtobuf(update.expirationTime)\n : undefined,\n contents: update.contents != null ? update.contents : undefined,\n fileMemo:\n update.memo != null\n ? Object.hasOwn(update.memo, \"value\")\n ? update.memo.value\n : undefined\n : undefined,\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @returns {?FileId}\n */\n get fileId() {\n return this._fileId;\n }\n\n /**\n * Set the keys which must sign any transactions modifying this file. Required.\n *\n * All keys must sign to modify the file's contents or keys. No key is required\n * to sign for extending the expiration time (except the one for the operator account\n * paying for the transaction). Only one key must sign to delete the file, however.\n *\n * To require more than one key to sign to delete a file, add them to a\n * KeyList and pass that here.\n *\n * The network currently requires a file to have at least one key (or key list or threshold key)\n * but this requirement may be lifted in the future.\n *\n * @param {FileId | string} fileId\n * @returns {this}\n */\n setFileId(fileId) {\n this._requireNotFrozen();\n this._fileId =\n typeof fileId === \"string\"\n ? FileId.fromString(fileId)\n : fileId.clone();\n\n return this;\n }\n\n /**\n * @returns {?Key[]}\n */\n get keys() {\n return this._keys;\n }\n\n /**\n * Set the keys which must sign any transactions modifying this file. Required.\n *\n * All keys must sign to modify the file's contents or keys. No key is required\n * to sign for extending the expiration time (except the one for the operator account\n * paying for the transaction). Only one key must sign to delete the file, however.\n *\n * To require more than one key to sign to delete a file, add them to a\n * KeyList and pass that here.\n *\n * The network currently requires a file to have at least one key (or key list or threshold key)\n * but this requirement may be lifted in the future.\n *\n * @param {Key[] | KeyList} keys\n * @returns {this}\n */\n setKeys(keys) {\n this._requireNotFrozen();\n if (keys instanceof KeyList && keys.threshold != null) {\n throw new Error(\"Cannot set threshold key as file key\");\n }\n\n this._keys = keys instanceof KeyList ? keys.toArray() : keys;\n\n return this;\n }\n\n /**\n * @returns {?Timestamp}\n */\n get expirationTime() {\n return this._expirationTime;\n }\n\n /**\n * Set the instant at which this file will expire, after which its contents will no longer be\n * available.\n *\n * Defaults to 1/4 of a Julian year from the instant FileUpdateTransaction\n * was invoked.\n *\n * May be extended using FileUpdateTransaction#setExpirationTime(Timestamp).\n *\n * @param {Timestamp | Date} expirationTime\n * @returns {this}\n */\n setExpirationTime(expirationTime) {\n this._requireNotFrozen();\n this._expirationTime =\n expirationTime instanceof Timestamp\n ? expirationTime\n : Timestamp.fromDate(expirationTime);\n\n return this;\n }\n\n /**\n * @returns {?Uint8Array}\n */\n get contents() {\n return this._contents;\n }\n\n /**\n * Set the given byte array as the file's contents.\n *\n * This may be omitted to update an empty file.\n *\n * Note that total size for a given transaction is limited to 6KiB (as of March 2020) by the\n * network; if you exceed this you may receive a HederaPreCheckStatusException\n * with Status#TransactionOversize.\n *\n * In this case, you will need to break the data into chunks of less than ~6KiB and execute this\n * transaction with the first chunk and then use FileAppendTransaction with\n * FileAppendTransaction#setContents(Uint8Array) for the remaining chunks.\n *\n * @param {Uint8Array | string} contents\n * @returns {this}\n */\n setContents(contents) {\n this._requireNotFrozen();\n this._contents =\n contents instanceof Uint8Array ? contents : utf8.encode(contents);\n\n return this;\n }\n\n /**\n * @returns {?string}\n */\n get fileMemo() {\n return this._fileMemo;\n }\n\n /**\n * @param {string} memo\n * @returns {this}\n */\n setFileMemo(memo) {\n this._requireNotFrozen();\n this._fileMemo = memo;\n\n return this;\n }\n\n /**\n * @returns {this}\n */\n clearFileMemo() {\n this._requireNotFrozen();\n this._fileMemo = null;\n\n return this;\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (this._fileId != null) {\n this._fileId.validateChecksum(client);\n }\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.file.updateFile(request);\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"fileUpdate\";\n }\n\n /**\n * @override\n * @protected\n * @returns {HashgraphProto.proto.IFileUpdateTransactionBody}\n */\n _makeTransactionData() {\n return {\n fileID: this._fileId != null ? this._fileId._toProtobuf() : null,\n keys:\n this._keys != null\n ? {\n keys: this._keys.map((key) => key._toProtobufKey()),\n }\n : null,\n expirationTime:\n this._expirationTime != null\n ? this._expirationTime._toProtobuf()\n : null,\n contents: this._contents,\n memo:\n this._fileMemo != null\n ? {\n value: this._fileMemo,\n }\n : null,\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `FileUpdateTransaction:${timestamp.toString()}`;\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/unbound-method\nTRANSACTION_REGISTRY.set(\"fileUpdate\", FileUpdateTransaction._fromProtobuf);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.FreezeType} HashgraphProto.proto.FreezeType\n */\n\nexport default class FreezeType {\n /**\n * @hideconstructor\n * @internal\n * @param {number} code\n */\n constructor(code) {\n /** @readonly */\n this._code = code;\n\n Object.freeze(this);\n }\n\n /**\n * @returns {string}\n */\n toString() {\n switch (this) {\n case FreezeType.UnknownFreezeType:\n return \"UNKNOWN_FREEZE_TYPE\";\n case FreezeType.FreezeOnly:\n return \"FREEZE_ONLY\";\n case FreezeType.PrepareUpgrade:\n return \"PREPARE_UPGRADE\";\n case FreezeType.FreezeUpgrade:\n return \"FREEZE_UPGRADE\";\n case FreezeType.FreezeAbort:\n return \"FREEZE_ABORT\";\n case FreezeType.TelemetryUpgrade:\n return \"TELEMETRY_UPGRADE\";\n default:\n return `UNKNOWN (${this._code})`;\n }\n }\n\n /**\n * @internal\n * @param {number} code\n * @returns {FreezeType}\n */\n static _fromCode(code) {\n switch (code) {\n case 0:\n return FreezeType.UnknownFreezeType;\n case 1:\n return FreezeType.FreezeOnly;\n case 2:\n return FreezeType.PrepareUpgrade;\n case 3:\n return FreezeType.FreezeUpgrade;\n case 4:\n return FreezeType.FreezeAbort;\n case 5:\n return FreezeType.TelemetryUpgrade;\n default:\n throw new Error(\n `(BUG) Status.fromCode() does not handle code: ${code}`,\n );\n }\n }\n\n /**\n * @returns {HashgraphProto.proto.FreezeType}\n */\n valueOf() {\n return this._code;\n }\n}\n\n/**\n * An (invalid) default value for this enum, to ensure the client explicitly sets\n * the intended type of freeze transaction.\n */\nFreezeType.UnknownFreezeType = new FreezeType(0);\n\n/**\n * Freezes the network at the specified time. The start_time field must be provided and\n * must reference a future time. Any values specified for the update_file and file_hash\n * fields will be ignored. This transaction does not perform any network changes or\n * upgrades and requires manual intervention to restart the network.\n */\nFreezeType.FreezeOnly = new FreezeType(1);\n\n/**\n * A non-freezing operation that initiates network wide preparation in advance of a\n * scheduled freeze upgrade. The update_file and file_hash fields must be provided and\n * valid. The start_time field may be omitted and any value present will be ignored.\n */\nFreezeType.PrepareUpgrade = new FreezeType(2);\n\n/**\n * Freezes the network at the specified time and performs the previously prepared\n * automatic upgrade across the entire network.\n */\nFreezeType.FreezeUpgrade = new FreezeType(3);\n\n/**\n * Aborts a pending network freeze operation.\n */\nFreezeType.FreezeAbort = new FreezeType(4);\n\n/**\n * Performs an immediate upgrade on auxilary services and containers providing\n * telemetry/metrics. Does not impact network operations.\n */\nFreezeType.TelemetryUpgrade = new FreezeType(5);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Transaction, {\n TRANSACTION_REGISTRY,\n} from \"../transaction/Transaction.js\";\nimport Timestamp from \"../Timestamp.js\";\nimport FileId from \"../file/FileId.js\";\nimport * as hex from \"../encoding/hex.js\";\nimport FreezeType from \"../FreezeType.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HashgraphProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HashgraphProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HashgraphProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} HashgraphProto.proto.ITransactionResponse\n * @typedef {import(\"@hashgraph/proto\").proto.IFreezeTransactionBody} HashgraphProto.proto.IFreezeTransactionBody\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../account/AccountId.js\").default} AccountId\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n */\n\n/**\n * @typedef {object} HourMinute\n * @property {number} hour\n * @property {number} minute\n */\n\nexport default class FreezeTransaction extends Transaction {\n /**\n * @param {object} [props]\n * @param {HourMinute} [props.startTime]\n * @param {HourMinute} [props.endTime]\n * @param {Timestamp} [props.startTimestamp]\n * @param {FileId} [props.updateFileId]\n * @param {FileId} [props.fileId]\n * @param {Uint8Array | string} [props.fileHash]\n * @param { FreezeType } [props.freezeType]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {?HourMinute}\n */\n this._startTime = null;\n\n /**\n * @private\n * @type {?Timestamp}\n */\n this._startTimestamp = null;\n\n /**\n * @private\n * @type {?HourMinute}\n */\n this._endTime = null;\n\n /**\n * @private\n * @type {?FileId}\n */\n this._fileId = null;\n\n /**\n * @private\n * @type {?Uint8Array}\n */\n this._fileHash = null;\n\n /**\n * @private\n * @type {?FreezeType}\n */\n this._freezeType = null;\n\n if (props.startTime != null) {\n // eslint-disable-next-line deprecation/deprecation\n this.setStartTime(props.startTime.hour, props.startTime.minute);\n }\n\n if (props.endTime != null) {\n // eslint-disable-next-line deprecation/deprecation\n this.setEndTime(props.endTime.hour, props.endTime.minute);\n }\n\n if (props.startTimestamp != null) {\n this.setStartTimestamp(props.startTimestamp);\n }\n\n if (props.updateFileId != null) {\n // eslint-disable-next-line deprecation/deprecation\n this.setUpdateFileId(props.updateFileId);\n }\n\n if (props.fileId != null) {\n this.setFileId(props.fileId);\n }\n\n if (props.fileHash != null) {\n this.setFileHash(props.fileHash);\n }\n\n if (props.freezeType != null) {\n this.setFreezeType(props.freezeType);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransaction[]} transactions\n * @param {HashgraphProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HashgraphProto.proto.ITransactionBody[]} bodies\n * @returns {FreezeTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const freeze =\n /** @type {HashgraphProto.proto.IFreezeTransactionBody} */ (\n body.freeze\n );\n\n return Transaction._fromProtobufTransactions(\n new FreezeTransaction({\n startTime:\n freeze.startHour != null && freeze.startMin != null\n ? {\n hour: freeze.startHour,\n minute: freeze.startMin,\n }\n : undefined,\n endTime:\n freeze.endHour != null && freeze.endMin != null\n ? {\n hour: freeze.endHour,\n minute: freeze.endMin,\n }\n : undefined,\n startTimestamp:\n freeze.startTime != null\n ? Timestamp._fromProtobuf(freeze.startTime)\n : undefined,\n updateFileId:\n freeze.updateFile != null\n ? FileId._fromProtobuf(freeze.updateFile)\n : undefined,\n fileHash: freeze.fileHash != null ? freeze.fileHash : undefined,\n freezeType:\n freeze.freezeType != null\n ? FreezeType._fromCode(freeze.freezeType)\n : undefined,\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @deprecated - Use `startTimestamp` instead\n * @returns {?HourMinute}\n */\n get startTime() {\n return null;\n }\n\n /**\n * @deprecated - Use `startTimestamp` instead\n * @param {number | string} startHourOrString\n * @param {?number} startMinute\n * @returns {FreezeTransaction}\n */\n setStartTime(startHourOrString, startMinute) {\n this._requireNotFrozen();\n if (typeof startHourOrString === \"string\") {\n const split = startHourOrString.split(\":\");\n this._startTime = {\n hour: Number(split[0]),\n minute: Number(split[1]),\n };\n } else {\n this._startTime = {\n hour: startHourOrString,\n minute: /** @type {number} */ (startMinute),\n };\n }\n\n return this;\n }\n\n /**\n * @returns {?Timestamp}\n */\n get startTimestamp() {\n return this._startTimestamp;\n }\n\n /**\n * @param {Timestamp} startTimestamp\n * @returns {FreezeTransaction}\n */\n setStartTimestamp(startTimestamp) {\n this._requireNotFrozen();\n this._startTimestamp = startTimestamp;\n\n return this;\n }\n\n /**\n * @deprecated\n * @returns {?HourMinute}\n */\n get endTime() {\n console.warn(\"`FreezeTransaction.endTime` is deprecated\");\n return this._endTime;\n }\n\n /**\n * @deprecated\n * @param {number | string} endHourOrString\n * @param {?number} endMinute\n * @returns {FreezeTransaction}\n */\n setEndTime(endHourOrString, endMinute) {\n console.warn(\"`FreezeTransaction.endTime` is deprecated\");\n this._requireNotFrozen();\n if (typeof endHourOrString === \"string\") {\n const split = endHourOrString.split(\":\");\n this._endTime = {\n hour: Number(split[0]),\n minute: Number(split[1]),\n };\n } else {\n this._endTime = {\n hour: endHourOrString,\n minute: /** @type {number} */ (endMinute),\n };\n }\n\n return this;\n }\n\n /**\n * @deprecated - Use `fileId` instead\n * @returns {?FileId}\n */\n get updateFileId() {\n return this.fileId;\n }\n\n /**\n * @deprecated - Use `setFileId()` instead\n * @param {FileId} updateFileId\n * @returns {FreezeTransaction}\n */\n setUpdateFileId(updateFileId) {\n return this.setFileId(updateFileId);\n }\n\n /**\n * @returns {?FileId}\n */\n get fileId() {\n return this._fileId;\n }\n\n /**\n * @param {FileId} fileId\n * @returns {FreezeTransaction}\n */\n setFileId(fileId) {\n this._requireNotFrozen();\n this._fileId = fileId;\n\n return this;\n }\n\n /**\n * @returns {?Uint8Array}\n */\n get fileHash() {\n return this._fileHash;\n }\n\n /**\n * @param {Uint8Array | string} fileHash\n * @returns {FreezeTransaction}\n */\n setFileHash(fileHash) {\n this._requireNotFrozen();\n this._fileHash =\n typeof fileHash === \"string\" ? hex.decode(fileHash) : fileHash;\n\n return this;\n }\n\n /**\n * @returns {?FreezeType}\n */\n get freezeType() {\n return this._freezeType;\n }\n\n /**\n * @param {FreezeType} freezeType\n * @returns {FreezeTransaction}\n */\n setFreezeType(freezeType) {\n this._requireNotFrozen();\n this._freezeType = freezeType;\n return this;\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"freeze\";\n }\n\n /**\n * @override\n * @protected\n * @returns {HashgraphProto.proto.IFreezeTransactionBody}\n */\n _makeTransactionData() {\n return {\n startTime:\n this._startTimestamp != null\n ? this._startTimestamp._toProtobuf()\n : null,\n updateFile:\n this._fileId != null ? this._fileId._toProtobuf() : null,\n fileHash: this._fileHash,\n freezeType:\n this._freezeType != null ? this._freezeType.valueOf() : null,\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `FreezeTransaction:${timestamp.toString()}`;\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.freeze.freeze(request);\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/unbound-method\nTRANSACTION_REGISTRY.set(\"freeze\", FreezeTransaction._fromProtobuf);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Transaction, {\n TRANSACTION_REGISTRY,\n} from \"../transaction/Transaction.js\";\nimport AccountId from \"./AccountId.js\";\nimport Duration from \"../Duration.js\";\nimport Key from \"../Key.js\";\nimport KeyList from \"../KeyList.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HashgraphProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HashgraphProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HashgraphProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} HashgraphProto.proto.ITransactionResponse\n * @typedef {import(\"@hashgraph/proto\").proto.ICryptoAddLiveHashTransactionBody} HashgraphProto.proto.ICryptoAddLiveHashTransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ILiveHash} HashgraphProto.proto.ILiveHash\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n */\n\nexport default class LiveHashAddTransaction extends Transaction {\n /**\n * @param {object} [props]\n * @param {Uint8Array} [props.hash]\n * @param {Key[]} [props.keys]\n * @param {Duration | Long | number} [props.duration]\n * @param {AccountId | string} [props.accountId]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {?Uint8Array}\n */\n this._hash = null;\n\n /**\n * @private\n * @type {?Key[]}\n */\n this._keys = null;\n\n /**\n * @private\n * @type {?Duration}\n */\n this._duration = null;\n\n /**\n * @private\n * @type {?AccountId}\n */\n this._accountId = null;\n\n if (props.hash != null) {\n this.setHash(props.hash);\n }\n\n if (props.keys != null) {\n this.setKeys(props.keys);\n }\n\n if (props.duration != null) {\n this.setDuration(props.duration);\n }\n\n if (props.accountId != null) {\n this.setAccountId(props.accountId);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransaction[]} transactions\n * @param {HashgraphProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HashgraphProto.proto.ITransactionBody[]} bodies\n * @returns {LiveHashAddTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const hashes =\n /** @type {HashgraphProto.proto.ICryptoAddLiveHashTransactionBody} */ (\n body.cryptoAddLiveHash\n );\n const liveHash_ = /** @type {HashgraphProto.proto.ILiveHash} */ (\n hashes.liveHash\n );\n\n return Transaction._fromProtobufTransactions(\n new LiveHashAddTransaction({\n hash: liveHash_.hash != null ? liveHash_.hash : undefined,\n keys:\n liveHash_.keys != null\n ? liveHash_.keys.keys != null\n ? liveHash_.keys.keys.map((key) =>\n Key._fromProtobufKey(key),\n )\n : undefined\n : undefined,\n duration:\n liveHash_.duration != null\n ? liveHash_.duration.seconds != null\n ? liveHash_.duration.seconds\n : undefined\n : undefined,\n accountId:\n liveHash_.accountId != null\n ? AccountId._fromProtobuf(liveHash_.accountId)\n : undefined,\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @returns {?Uint8Array}\n */\n get hash() {\n return this._hash;\n }\n\n /**\n * @param {Uint8Array} hash\n * @returns {LiveHashAddTransaction}\n */\n setHash(hash) {\n this._requireNotFrozen();\n this._hash = hash;\n\n return this;\n }\n\n /**\n * @returns {?Key[]}\n */\n get keys() {\n return this._keys;\n }\n\n /**\n * @param {Key[] | KeyList} keys\n * @returns {LiveHashAddTransaction}\n */\n setKeys(keys) {\n this._requireNotFrozen();\n this._keys = keys instanceof KeyList ? keys.toArray() : keys;\n\n return this;\n }\n\n /**\n * @returns {?Duration}\n */\n get duration() {\n return this._duration;\n }\n\n /**\n * @param {Duration | Long | number} duration\n * @returns {LiveHashAddTransaction}\n */\n setDuration(duration) {\n this._requireNotFrozen();\n this._duration =\n duration instanceof Duration ? duration : new Duration(duration);\n\n return this;\n }\n\n /**\n * @returns {?AccountId}\n */\n get accountId() {\n return this._accountId;\n }\n\n /**\n * @param {AccountId | string} accountId\n * @returns {LiveHashAddTransaction}\n */\n setAccountId(accountId) {\n this._requireNotFrozen();\n this._accountId =\n typeof accountId === \"string\"\n ? AccountId.fromString(accountId)\n : accountId.clone();\n\n return this;\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (this._accountId != null) {\n this._accountId.validateChecksum(client);\n }\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.crypto.addLiveHash(request);\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"cryptoAddLiveHash\";\n }\n\n /**\n * @override\n * @protected\n * @returns {HashgraphProto.proto.ICryptoAddLiveHashTransactionBody}\n */\n _makeTransactionData() {\n return {\n liveHash: {\n hash: this._hash,\n keys:\n this._keys != null\n ? {\n keys: this._keys.map((key) =>\n key._toProtobufKey(),\n ),\n }\n : undefined,\n duration:\n this._duration != null\n ? this._duration._toProtobuf()\n : null,\n accountId:\n this._accountId != null\n ? this._accountId._toProtobuf()\n : null,\n },\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `LiveHashAddTransaction:${timestamp.toString()}`;\n }\n}\n\nTRANSACTION_REGISTRY.set(\n \"cryptoAddLiveHash\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n LiveHashAddTransaction._fromProtobuf,\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Transaction, {\n TRANSACTION_REGISTRY,\n} from \"../transaction/Transaction.js\";\nimport AccountId from \"./AccountId.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HashgraphProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HashgraphProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HashgraphProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} HashgraphProto.proto.ITransactionResponse\n * @typedef {import(\"@hashgraph/proto\").proto.ICryptoDeleteLiveHashTransactionBody} HashgraphProto.proto.ICryptoDeleteLiveHashTransactionBody\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n */\n\nexport default class LiveHashDeleteTransaction extends Transaction {\n /**\n * @param {object} [props]\n * @param {Uint8Array} [props.hash]\n * @param {AccountId | string} [props.accountId]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {?Uint8Array}\n */\n this._hash = null;\n\n /**\n * @private\n * @type {?AccountId}\n */\n this._accountId = null;\n\n if (props.hash != null) {\n this.setHash(props.hash);\n }\n\n if (props.accountId != null) {\n this.setAccountId(props.accountId);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransaction[]} transactions\n * @param {HashgraphProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HashgraphProto.proto.ITransactionBody[]} bodies\n * @returns {LiveHashDeleteTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const hashes =\n /** @type {HashgraphProto.proto.ICryptoDeleteLiveHashTransactionBody} */ (\n body.cryptoDeleteLiveHash\n );\n\n return Transaction._fromProtobufTransactions(\n new LiveHashDeleteTransaction({\n hash:\n hashes.liveHashToDelete != null\n ? hashes.liveHashToDelete\n : undefined,\n accountId:\n hashes.accountOfLiveHash != null\n ? AccountId._fromProtobuf(hashes.accountOfLiveHash)\n : undefined,\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @returns {?Uint8Array}\n */\n get hash() {\n return this._hash;\n }\n\n /**\n * @param {Uint8Array} hash\n * @returns {LiveHashDeleteTransaction}\n */\n setHash(hash) {\n this._requireNotFrozen();\n this._hash = hash;\n\n return this;\n }\n\n /**\n * @returns {?AccountId}\n */\n get accountId() {\n return this._accountId;\n }\n\n /**\n * @param {AccountId | string} accountId\n * @returns {LiveHashDeleteTransaction}\n */\n setAccountId(accountId) {\n this._requireNotFrozen();\n this._accountId =\n typeof accountId === \"string\"\n ? AccountId.fromString(accountId)\n : accountId.clone();\n\n return this;\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (this._accountId != null) {\n this._accountId.validateChecksum(client);\n }\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.crypto.deleteLiveHash(request);\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"cryptoDeleteLiveHash\";\n }\n\n /**\n * @override\n * @protected\n * @returns {HashgraphProto.proto.ICryptoDeleteLiveHashTransactionBody}\n */\n _makeTransactionData() {\n return {\n liveHashToDelete: this._hash,\n accountOfLiveHash:\n this._accountId != null ? this._accountId._toProtobuf() : null,\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `LiveHashDeleteTransaction:${timestamp.toString()}`;\n }\n}\n\nTRANSACTION_REGISTRY.set(\n \"cryptoDeleteLiveHash\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n LiveHashDeleteTransaction._fromProtobuf,\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Query, { QUERY_REGISTRY } from \"../query/Query.js\";\nimport AccountId from \"./AccountId.js\";\nimport LiveHash from \"./LiveHash.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.IQuery} HashgraphProto.proto.IQuery\n * @typedef {import(\"@hashgraph/proto\").proto.IQueryHeader} HashgraphProto.proto.IQueryHeader\n * @typedef {import(\"@hashgraph/proto\").proto.IResponse} HashgraphProto.proto.IResponse\n * @typedef {import(\"@hashgraph/proto\").proto.IResponseHeader} HashgraphProto.proto.IResponseHeader\n * @typedef {import(\"@hashgraph/proto\").proto.ICryptoGetLiveHashQuery} HashgraphProto.proto.ICryptoGetLiveHashQuery\n * @typedef {import(\"@hashgraph/proto\").proto.ICryptoGetLiveHashResponse} HashgraphProto.proto.ICryptoGetLiveHashResponse\n * @typedef {import(\"@hashgraph/proto\").proto.ILiveHash} HashgraphProto.proto.ILiveHash\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n */\n\n/**\n * @augments {Query}\n */\nexport default class LiveHashQuery extends Query {\n /**\n * @param {object} [props]\n * @param {AccountId | string} [props.accountId]\n * @param {Uint8Array} [props.hash]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @type {?AccountId}\n * @private\n */\n this._accountId = null;\n\n if (props.accountId != null) {\n this.setAccountId(props.accountId);\n }\n\n /**\n * @type {?Uint8Array}\n * @private\n */\n this._hash = null;\n\n if (props.hash != null) {\n this.setHash(props.hash);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.IQuery} query\n * @returns {LiveHashQuery}\n */\n static _fromProtobuf(query) {\n const hash =\n /** @type {HashgraphProto.proto.ICryptoGetLiveHashQuery} */ (\n query.cryptoGetLiveHash\n );\n\n return new LiveHashQuery({\n accountId:\n hash.accountID != null\n ? AccountId._fromProtobuf(hash.accountID)\n : undefined,\n hash: hash.hash != null ? hash.hash : undefined,\n });\n }\n\n /**\n * @returns {?AccountId}\n */\n get accountId() {\n return this._accountId;\n }\n\n /**\n * Set the account to which the livehash is associated.\n *\n * @param {AccountId | string} accountId\n * @returns {this}\n */\n setAccountId(accountId) {\n this._accountId =\n accountId instanceof AccountId\n ? accountId\n : AccountId.fromString(accountId);\n\n return this;\n }\n\n /**\n * @returns {?Uint8Array}\n */\n get liveHash() {\n return this._hash;\n }\n\n /**\n * Set the SHA-384 data in the livehash.\n *\n * @param {Uint8Array} hash\n * @returns {this}\n */\n setHash(hash) {\n this._hash = hash;\n\n return this;\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (this._accountId != null) {\n this._accountId.validateChecksum(client);\n }\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.IQuery} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.crypto.getLiveHash(request);\n }\n\n /**\n * @override\n * @internal\n * @param {HashgraphProto.proto.IResponse} response\n * @returns {HashgraphProto.proto.IResponseHeader}\n */\n _mapResponseHeader(response) {\n const cryptoGetLiveHash =\n /** @type {HashgraphProto.proto.ICryptoGetLiveHashResponse} */ (\n response.cryptoGetLiveHash\n );\n return /** @type {HashgraphProto.proto.IResponseHeader} */ (\n cryptoGetLiveHash.header\n );\n }\n\n /**\n * @protected\n * @override\n * @param {HashgraphProto.proto.IResponse} response\n * @returns {Promise}\n */\n _mapResponse(response) {\n const hashes =\n /** @type {HashgraphProto.proto.ICryptoGetLiveHashResponse} */ (\n response.cryptoGetLiveHash\n );\n\n return Promise.resolve(\n LiveHash._fromProtobuf(\n /** @type {HashgraphProto.proto.ILiveHash} */ (hashes.liveHash),\n ),\n );\n }\n\n /**\n * @override\n * @internal\n * @param {HashgraphProto.proto.IQueryHeader} header\n * @returns {HashgraphProto.proto.IQuery}\n */\n _onMakeRequest(header) {\n return {\n cryptoGetLiveHash: {\n header,\n accountID:\n this._accountId != null\n ? this._accountId._toProtobuf()\n : null,\n hash: this._hash,\n },\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp =\n this._paymentTransactionId != null &&\n this._paymentTransactionId.validStart != null\n ? this._paymentTransactionId.validStart\n : this._timestamp;\n\n return `LiveHashQuery:${timestamp.toString()}`;\n }\n}\n\n// @ts-ignore\n// eslint-disable-next-line @typescript-eslint/unbound-method\nQUERY_REGISTRY.set(\"cryptoGetLiveHash\", LiveHashQuery._fromProtobuf);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport * as HashgraphProto from \"@hashgraph/proto\";\n\nexport default class SemanticVersion {\n /**\n * @private\n * @param {object} props\n * @param {number} props.major\n * @param {number} props.minor\n * @param {number} props.patch\n */\n constructor(props) {\n /** @readonly */\n this.major = props.major;\n /** @readonly */\n this.minor = props.minor;\n /** @readonly */\n this.patch = props.patch;\n\n Object.freeze(this);\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ISemanticVersion} version\n * @returns {SemanticVersion}\n */\n static _fromProtobuf(version) {\n return new SemanticVersion({\n major: /** @type {number} */ (version.major),\n minor: /** @type {number} */ (version.minor),\n patch: /** @type {number} */ (version.patch),\n });\n }\n\n /**\n * @internal\n * @returns {HashgraphProto.proto.ISemanticVersion}\n */\n _toProtobuf() {\n return {\n major: this.major,\n minor: this.minor,\n patch: this.patch,\n };\n }\n\n /**\n * @param {Uint8Array} bytes\n * @returns {SemanticVersion}\n */\n static fromBytes(bytes) {\n return SemanticVersion._fromProtobuf(\n HashgraphProto.proto.SemanticVersion.decode(bytes),\n );\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytes() {\n return HashgraphProto.proto.SemanticVersion.encode(\n this._toProtobuf(),\n ).finish();\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport SemanticVersion from \"./SemanticVersion.js\";\nimport * as HashgraphProto from \"@hashgraph/proto\";\n\n/**\n * Response when the client sends the node CryptoGetVersionInfoQuery.\n */\nexport default class NetworkVersionInfo {\n /**\n * @private\n * @param {object} props\n * @param {SemanticVersion} props.protobufVersion\n * @param {SemanticVersion} props.servicesVersion\n */\n constructor(props) {\n /**\n * The account ID for which this information applies.\n *\n * @readonly\n */\n this.protobufVersion = props.protobufVersion;\n\n /**\n * The account ID for which this information applies.\n *\n * @readonly\n */\n this.servicesVersion = props.servicesVersion;\n\n Object.freeze(this);\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.INetworkGetVersionInfoResponse} info\n * @returns {NetworkVersionInfo}\n */\n static _fromProtobuf(info) {\n return new NetworkVersionInfo({\n protobufVersion: SemanticVersion._fromProtobuf(\n /** @type {HashgraphProto.proto.ISemanticVersion} */\n (info.hapiProtoVersion),\n ),\n servicesVersion: SemanticVersion._fromProtobuf(\n /** @type {HashgraphProto.proto.ISemanticVersion} */\n (info.hederaServicesVersion),\n ),\n });\n }\n\n /**\n * @internal\n * @returns {HashgraphProto.proto.INetworkGetVersionInfoResponse}\n */\n _toProtobuf() {\n return {\n hapiProtoVersion: this.protobufVersion._toProtobuf(),\n hederaServicesVersion: this.servicesVersion._toProtobuf(),\n };\n }\n\n /**\n * @param {Uint8Array} bytes\n * @returns {NetworkVersionInfo}\n */\n static fromBytes(bytes) {\n return NetworkVersionInfo._fromProtobuf(\n HashgraphProto.proto.NetworkGetVersionInfoResponse.decode(bytes),\n );\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytes() {\n return HashgraphProto.proto.NetworkGetVersionInfoResponse.encode(\n this._toProtobuf(),\n ).finish();\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Query, { QUERY_REGISTRY } from \"../query/Query.js\";\nimport NetworkVersionInfo from \"./NetworkVersionInfo.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.IQuery} HashgraphProto.proto.IQuery\n * @typedef {import(\"@hashgraph/proto\").proto.IQueryHeader} HashgraphProto.proto.IQueryHeader\n * @typedef {import(\"@hashgraph/proto\").proto.IResponse} HashgraphProto.proto.IResponse\n * @typedef {import(\"@hashgraph/proto\").proto.IResponseHeader} HashgraphProto.proto.IResponseHeader\n * @typedef {import(\"@hashgraph/proto\").proto.INetworkGetVersionInfoQuery} HashgraphProto.proto.INetworkGetVersionInfoQuery\n * @typedef {import(\"@hashgraph/proto\").proto.INetworkGetVersionInfoResponse} HashgraphProto.proto.INetworkGetVersionInfoResponse\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n */\n\n/**\n * @augments {Query}\n */\nexport default class NetworkVersionInfoQuery extends Query {\n constructor() {\n super();\n }\n\n /**\n * @param {HashgraphProto.proto.IQuery} query\n * @returns {NetworkVersionInfoQuery}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n static _fromProtobuf(query) {\n return new NetworkVersionInfoQuery();\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.IQuery} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.network.getVersionInfo(request);\n }\n\n /**\n * @override\n * @internal\n * @param {HashgraphProto.proto.IResponse} response\n * @returns {HashgraphProto.proto.IResponseHeader}\n */\n _mapResponseHeader(response) {\n const networkGetVersionInfo =\n /** @type {HashgraphProto.proto.INetworkGetVersionInfoResponse} */ (\n response.networkGetVersionInfo\n );\n return /** @type {HashgraphProto.proto.IResponseHeader} */ (\n networkGetVersionInfo.header\n );\n }\n\n /**\n * @protected\n * @override\n * @param {HashgraphProto.proto.IResponse} response\n * @returns {Promise}\n */\n _mapResponse(response) {\n const info =\n /** @type {HashgraphProto.proto.INetworkGetVersionInfoResponse} */ (\n response.networkGetVersionInfo\n );\n return Promise.resolve(NetworkVersionInfo._fromProtobuf(info));\n }\n\n /**\n * @override\n * @internal\n * @param {HashgraphProto.proto.IQueryHeader} header\n * @returns {HashgraphProto.proto.IQuery}\n */\n _onMakeRequest(header) {\n return {\n networkGetVersionInfo: {\n header,\n },\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp =\n this._paymentTransactionId != null &&\n this._paymentTransactionId.validStart != null\n ? this._paymentTransactionId.validStart\n : this._timestamp;\n\n return `NetworkVersionInfoQuery:${timestamp.toString()}`;\n }\n}\n\nQUERY_REGISTRY.set(\n \"networkGetVersionInfo\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n NetworkVersionInfoQuery._fromProtobuf,\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\n/**\n * @typedef {import(\"./LedgerId.js\").default} LedgerId\n * @typedef {import(\"./transaction/TransactionId.js\").default} TransactionId\n * @typedef {import(\"./transaction/Transaction.js\").default} Transaction\n * @typedef {import(\"./transaction/TransactionResponse.js\").default} TransactionResponse\n * @typedef {import(\"./transaction/TransactionReceipt.js\").default} TransactionReceipt\n * @typedef {import(\"./transaction/TransactionRecord.js\").default} TransactionRecord\n * @typedef {import(\"./account/AccountId.js\").default} AccountId\n * @typedef {import(\"./account/AccountBalance.js\").default} AccountBalance\n * @typedef {import(\"./account/AccountInfo.js\").default} AccountInfo\n */\n\n/**\n * @template O\n * @typedef {import(\"./query/Query.js\").default} Query\n */\n\n/**\n * @template RequestT\n * @template ResponseT\n * @template OutputT\n * @typedef {import(\"./Executable.js\").default} Executable\n */\n\n/**\n * @typedef {object} Provider\n * @property {() => LedgerId?} getLedgerId\n * @property {() => {[key: string]: (string | AccountId)}} getNetwork\n * @property {() => string[]} getMirrorNetwork\n * @property {(accountId: AccountId | string) => Promise} getAccountBalance\n * @property {(accountId: AccountId | string) => Promise} getAccountInfo\n * @property {(accountId: AccountId | string) => Promise} getAccountRecords\n * @property {(transactionId: TransactionId | string) => Promise} getTransactionReceipt\n * @property {(response: TransactionResponse) => Promise} waitForReceipt\n * @property {(request: Executable) => Promise} call\n */\n\nexport default {};\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Transaction, {\n TRANSACTION_REGISTRY,\n} from \"./transaction/Transaction.js\";\nimport { isNumber } from \"./util.js\";\n\n/**\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.Transaction} HashgraphProto.proto.Transaction\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HashgraphProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.SignedTransaction} HashgraphProto.proto.SignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.IUtilPrngTransactionBody } HashgraphProto.proto.IUtilPrngTransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.UtilPrngTransactionBody} HashgraphProto.proto.UtilPrngTransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} HashgraphProto.proto.TransactionResponse\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HashgraphProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HashgraphProto.proto.ITransactionBody\n * @typedef {import(\"./account/AccountId.js\").default} AccountId\n * @typedef {import(\"./transaction/TransactionId.js\").default} TransactionId\n */\n\n/**\n * @typedef {import(\"./client/Client.js\").default<*, *>} Client\n * @typedef {import(\"./channel/Channel.js\").default} Channel\n */\n\n/**\n * Gets a pseudorandom 32-bit number. Not cryptographically secure. See HIP-351 https://hips.hedera.com/hip/hip-351\n */\nexport default class PrngTransaction extends Transaction {\n /**\n * @param {object} props\n * @param {?number } [props.range]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {?number}\n */\n this._range = null;\n\n if (props.range != null) {\n this.setRange(props.range);\n }\n }\n\n /**\n * @param {number} newRange\n * @returns {this}\n */\n setRange(newRange) {\n this._range = newRange;\n return this;\n }\n\n get range() {\n return this._range;\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (this._range != null && isNumber(this._range)) {\n this._validateChecksums(client);\n }\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.util.prng(request);\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransaction[]} transactions\n * @param {HashgraphProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HashgraphProto.proto.ITransactionBody[]} bodies\n * @returns {PrngTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = /** @type {HashgraphProto.proto.ITransactionBody} */ (\n bodies[0]\n );\n const transactionRange =\n /** @type {HashgraphProto.proto.IUtilPrngTransactionBody} */ (\n body.utilPrng\n );\n return Transaction._fromProtobufTransactions(\n new PrngTransaction({\n range: transactionRange.range,\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"utilPrng\";\n }\n\n /**\n * @override\n * @protected\n * @returns {HashgraphProto.proto.IUtilPrngTransactionBody}\n */\n _makeTransactionData() {\n return {\n range: this.range,\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"./Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `RandomGenerate:${timestamp.toString()}`;\n }\n}\n\nTRANSACTION_REGISTRY.set(\n \"utilPrng\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n PrngTransaction._fromProtobuf,\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Timestamp from \"../Timestamp.js\";\nimport AccountId from \"../account/AccountId.js\";\nimport Transaction, {\n TRANSACTION_REGISTRY,\n SCHEDULE_CREATE_TRANSACTION,\n} from \"../transaction/Transaction.js\";\nimport Key from \"../Key.js\";\nimport Hbar from \"../Hbar.js\";\nimport * as HashgraphProto from \"@hashgraph/proto\";\n\n/**\n * @typedef {import(\"bignumber.js\").default} BigNumber\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n * @typedef {import(\"../PublicKey.js\").default} PublicKey\n * @typedef {import(\"../PrivateKey.js\").default} PrivateKey\n */\n\n/**\n * Create a new Hedera™ crypto-currency account.\n */\nexport default class ScheduleCreateTransaction extends Transaction {\n /**\n * @param {object} [props]\n * @param {Key} [props.adminKey]\n * @param {AccountId} [props.payerAccountID]\n * @param {string} [props.scheduleMemo]\n * @param {Timestamp} [props.expirationTime]\n * @param {boolean} [props.waitForExpiry]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {?Key}\n */\n this._adminKey = null;\n\n /**\n * @private\n * @type {?Transaction}\n */\n this._scheduledTransaction = null;\n\n /**\n * @private\n * @type {?AccountId}\n */\n this._payerAccountId = null;\n\n /**\n * @private\n * @type {?string}\n */\n this._scheduleMemo = null;\n\n /**\n * @private\n * @type {Set}\n */\n this._scheduledSignerPublicKeys = new Set();\n\n /**\n * @private\n * @type {?Timestamp}\n */\n this._expirationTime = null;\n\n /**\n * @private\n * @type {?boolean}\n */\n this._waitForExpiry = null;\n\n if (props.adminKey != null) {\n this.setAdminKey(props.adminKey);\n }\n\n if (props.payerAccountID != null) {\n this.setPayerAccountId(props.payerAccountID);\n }\n\n if (props.scheduleMemo != null) {\n this.setScheduleMemo(props.scheduleMemo);\n }\n\n this._defaultMaxTransactionFee = new Hbar(5);\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransaction[]} transactions\n * @param {HashgraphProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HashgraphProto.proto.ITransactionBody[]} bodies\n * @returns {ScheduleCreateTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const create =\n /** @type {HashgraphProto.proto.IScheduleCreateTransactionBody} */ (\n body.scheduleCreate\n );\n\n const scheduledTransaction = new ScheduleCreateTransaction({\n adminKey:\n create.adminKey != null\n ? Key._fromProtobufKey(create.adminKey)\n : undefined,\n payerAccountID:\n create.payerAccountID != null\n ? AccountId._fromProtobuf(\n /** @type {HashgraphProto.proto.IAccountID} */ (\n create.payerAccountID\n ),\n )\n : undefined,\n scheduleMemo: create.memo != null ? create.memo : undefined,\n waitForExpiry:\n create.waitForExpiry != null ? create.waitForExpiry : undefined,\n expirationTime:\n create.expirationTime != null\n ? Timestamp._fromProtobuf(create.expirationTime)\n : undefined,\n });\n if (body.scheduleCreate != null) {\n const scheduleCreateBody =\n body.scheduleCreate.scheduledTransactionBody;\n\n const scheduleCreateBodyBytes =\n HashgraphProto.proto.TransactionBody.encode(\n // @ts-ignore\n scheduleCreateBody,\n ).finish();\n\n const signedScheduledCreateTransaction =\n HashgraphProto.proto.SignedTransaction.encode({\n bodyBytes: scheduleCreateBodyBytes,\n }).finish();\n\n const scheduleCreatetransaction = {\n signedTransactionBytes: signedScheduledCreateTransaction,\n };\n\n const txlist = HashgraphProto.proto.TransactionList.encode({\n transactionList: [scheduleCreatetransaction],\n }).finish();\n\n const finalScheduledDecodedTx = Transaction.fromBytes(txlist);\n\n scheduledTransaction._setScheduledTransaction(\n finalScheduledDecodedTx,\n );\n }\n\n return Transaction._fromProtobufTransactions(\n scheduledTransaction,\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @internal\n * @param {Transaction} tx\n * @returns {this}\n */\n _setScheduledTransaction(tx) {\n this._scheduledTransaction = tx;\n\n return this;\n }\n\n /**\n * @returns {?Key}\n */\n get adminKey() {\n return this._adminKey;\n }\n\n /**\n * Set the key for this account.\n *\n * This is the key that must sign each transfer out of the account.\n *\n * If `receiverSignatureRequired` is true, then the key must also sign\n * any transfer into the account.\n *\n * @param {Key} key\n * @returns {this}\n */\n setAdminKey(key) {\n this._requireNotFrozen();\n this._adminKey = key;\n\n return this;\n }\n\n /**\n * @returns {?AccountId}\n */\n get payerAccountId() {\n return this._payerAccountId;\n }\n\n /**\n * @param {AccountId} account\n * @returns {this}\n */\n setPayerAccountId(account) {\n this._requireNotFrozen();\n this._payerAccountId = account;\n\n return this;\n }\n\n /**\n * @param {string} memo\n * @returns {this}\n */\n setScheduleMemo(memo) {\n this._requireNotFrozen();\n this._scheduleMemo = memo;\n\n return this;\n }\n\n /**\n * @returns {?string}\n */\n get getScheduleMemo() {\n this._requireNotFrozen();\n return this._scheduleMemo;\n }\n\n /**\n * @param {Transaction} transaction\n * @returns {this}\n */\n setScheduledTransaction(transaction) {\n this._requireNotFrozen();\n transaction._requireNotFrozen();\n\n this._scheduledTransaction =\n transaction.schedule()._scheduledTransaction;\n\n return this;\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (this._payerAccountId != null) {\n this._payerAccountId.validateChecksum(client);\n }\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.schedule.createSchedule(request);\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"scheduleCreate\";\n }\n\n /**\n * @override\n * @protected\n * @returns {HashgraphProto.proto.IScheduleCreateTransactionBody}\n */\n _makeTransactionData() {\n return {\n adminKey:\n this._adminKey != null ? this._adminKey._toProtobufKey() : null,\n payerAccountID:\n this._payerAccountId != null\n ? this._payerAccountId._toProtobuf()\n : null,\n scheduledTransactionBody:\n this._scheduledTransaction != null\n ? this._scheduledTransaction._getScheduledTransactionBody()\n : null,\n memo: this._scheduleMemo,\n waitForExpiry: this._waitForExpiry,\n expirationTime:\n this._expirationTime != null\n ? this._expirationTime._toProtobuf()\n : null,\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `ScheduleCreateTransaction:${timestamp.toString()}`;\n }\n\n /**\n * @param {?Timestamp} expirationTime\n * @returns {this}\n */\n setExpirationTime(expirationTime) {\n this._expirationTime = expirationTime;\n return this;\n }\n\n /**\n * @returns {?Timestamp}\n */\n get expirationTime() {\n this._requireNotFrozen();\n return this._expirationTime;\n }\n\n /**\n * @param {boolean} waitForExpiry\n * @returns {this}\n */\n setWaitForExpiry(waitForExpiry) {\n this._waitForExpiry = waitForExpiry;\n\n return this;\n }\n\n /**\n * @returns {?boolean}\n */\n get waitForExpiry() {\n this._requireNotFrozen();\n return this._waitForExpiry;\n }\n}\n\nTRANSACTION_REGISTRY.set(\n \"scheduleCreate\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n ScheduleCreateTransaction._fromProtobuf,\n);\n\nSCHEDULE_CREATE_TRANSACTION.push(() => new ScheduleCreateTransaction());\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport ScheduleId from \"./ScheduleId.js\";\nimport Transaction, {\n TRANSACTION_REGISTRY,\n} from \"../transaction/Transaction.js\";\nimport Hbar from \"../Hbar.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HashgraphProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HashgraphProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HashgraphProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} HashgraphProto.proto.ITransactionResponse\n * @typedef {import(\"@hashgraph/proto\").proto.IScheduleDeleteTransactionBody} HashgraphProto.proto.IScheduleDeleteTransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.IScheduleID} HashgraphProto.proto.IScheduleID\n */\n\n/**\n * @typedef {import(\"bignumber.js\").default} BigNumber\n * @typedef {import(\"@hashgraph/cryptography\").Key} Key\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../Timestamp.js\").default} Timestamp\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n * @typedef {import(\"../account/AccountId.js\").default} AccountId\n */\n\n/**\n * Create a new Hedera™ crypto-currency account.\n */\nexport default class ScheduleDeleteTransaction extends Transaction {\n /**\n * @param {object} [props]\n * @param {ScheduleId | string} [props.scheduleId]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {?ScheduleId}\n */\n this._scheduleId = null;\n\n if (props.scheduleId != null) {\n this.setScheduleId(props.scheduleId);\n }\n\n this._defaultMaxTransactionFee = new Hbar(5);\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransaction[]} transactions\n * @param {HashgraphProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HashgraphProto.proto.ITransactionBody[]} bodies\n * @returns {ScheduleDeleteTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const scheduleDelete =\n /** @type {HashgraphProto.proto.IScheduleDeleteTransactionBody} */ (\n body.scheduleDelete\n );\n\n return Transaction._fromProtobufTransactions(\n new ScheduleDeleteTransaction({\n scheduleId:\n scheduleDelete.scheduleID != null\n ? ScheduleId._fromProtobuf(\n /** @type {HashgraphProto.proto.IScheduleID} */ (\n scheduleDelete.scheduleID\n ),\n )\n : undefined,\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @returns {?ScheduleId}\n */\n get scheduleId() {\n return this._scheduleId;\n }\n\n /**\n * @param {ScheduleId | string} scheduleId\n * @returns {this}\n */\n setScheduleId(scheduleId) {\n this._requireNotFrozen();\n this._scheduleId =\n typeof scheduleId === \"string\"\n ? ScheduleId.fromString(scheduleId)\n : scheduleId.clone();\n\n return this;\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (this._scheduleId != null) {\n this._scheduleId.validateChecksum(client);\n }\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.schedule.deleteSchedule(request);\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"scheduleDelete\";\n }\n\n /**\n * @override\n * @protected\n * @returns {HashgraphProto.proto.IScheduleDeleteTransactionBody}\n */\n _makeTransactionData() {\n return {\n scheduleID:\n this._scheduleId != null\n ? this._scheduleId._toProtobuf()\n : null,\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `ScheduleDeleteTransaction:${timestamp.toString()}`;\n }\n}\n\nTRANSACTION_REGISTRY.set(\n \"scheduleDelete\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n ScheduleDeleteTransaction._fromProtobuf,\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport ScheduleId from \"./ScheduleId.js\";\nimport AccountId from \"../account/AccountId.js\";\nimport Timestamp from \"../Timestamp.js\";\nimport Transaction from \"../transaction/Transaction.js\";\nimport * as HashgraphProto from \"@hashgraph/proto\";\nimport TransactionId from \"../transaction/TransactionId.js\";\nimport Key from \"../Key.js\";\nimport KeyList from \"../KeyList.js\";\n\nconst { proto } = HashgraphProto;\n\n/**\n * Response when the client sends the node ScheduleGetInfoQuery.\n */\nexport default class ScheduleInfo {\n /**\n * @private\n * @param {object} props\n * @param {ScheduleId} props.scheduleId;\n * @param {?AccountId} props.creatorAccountID;\n * @param {?AccountId} props.payerAccountID;\n * @param {?HashgraphProto.proto.ISchedulableTransactionBody} props.schedulableTransactionBody;\n * @param {?Key} props.adminKey\n * @param {?KeyList} props.signers;\n * @param {?string} props.scheduleMemo;\n * @param {?Timestamp} props.expirationTime;\n * @param {?Timestamp} props.executed;\n * @param {?Timestamp} props.deleted;\n * @param {?TransactionId} props.scheduledTransactionId;\n * @param {boolean} props.waitForExpiry;\n */\n constructor(props) {\n /**\n * @readonly\n */\n this.scheduleId = props.scheduleId;\n\n /**\n * @readonly\n */\n this.creatorAccountId = props.creatorAccountID;\n\n /**\n * @readonly\n */\n this.payerAccountId = props.payerAccountID;\n\n /**\n * @readonly\n */\n this.schedulableTransactionBody = props.schedulableTransactionBody;\n\n /**\n * @readonly\n */\n this.signers = props.signers;\n\n /**\n * @readonly\n */\n this.scheduleMemo = props.scheduleMemo;\n\n /**\n * @readonly\n */\n this.adminKey = props.adminKey != null ? props.adminKey : null;\n\n /**\n * @readonly\n */\n this.expirationTime = props.expirationTime;\n\n /**\n * @readonly\n */\n this.executed = props.executed;\n\n /**\n * @readonly\n */\n this.deleted = props.deleted;\n\n /**\n * @readonly\n */\n this.scheduledTransactionId = props.scheduledTransactionId;\n\n /**\n *\n * @readonly\n */\n this.waitForExpiry = props.waitForExpiry;\n\n Object.freeze(this);\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.IScheduleInfo} info\n * @returns {ScheduleInfo}\n */\n static _fromProtobuf(info) {\n return new ScheduleInfo({\n scheduleId: ScheduleId._fromProtobuf(\n /** @type {HashgraphProto.proto.IScheduleID} */ (\n info.scheduleID\n ),\n ),\n creatorAccountID:\n info.creatorAccountID != null\n ? AccountId._fromProtobuf(\n /** @type {HashgraphProto.proto.IAccountID} */ (\n info.creatorAccountID\n ),\n )\n : null,\n payerAccountID:\n info.payerAccountID != null\n ? AccountId._fromProtobuf(\n /** @type {HashgraphProto.proto.IAccountID} */ (\n info.payerAccountID\n ),\n )\n : null,\n schedulableTransactionBody:\n info.scheduledTransactionBody != null\n ? info.scheduledTransactionBody\n : null,\n adminKey:\n info.adminKey != null\n ? Key._fromProtobufKey(info.adminKey)\n : null,\n signers:\n info.signers != null\n ? KeyList.__fromProtobufKeyList(info.signers)\n : null,\n scheduleMemo: info.memo != null ? info.memo : null,\n expirationTime:\n info.expirationTime != null\n ? Timestamp._fromProtobuf(\n /** @type {HashgraphProto.proto.ITimestamp} */ (\n info.expirationTime\n ),\n )\n : null,\n executed:\n info.executionTime != null\n ? Timestamp._fromProtobuf(\n /** @type {HashgraphProto.proto.ITimestamp} */ (\n info.executionTime\n ),\n )\n : null,\n deleted:\n info.deletionTime != null\n ? Timestamp._fromProtobuf(\n /** @type {HashgraphProto.proto.ITimestamp} */ (\n info.deletionTime\n ),\n )\n : null,\n scheduledTransactionId:\n info.scheduledTransactionID != null\n ? TransactionId._fromProtobuf(info.scheduledTransactionID)\n : null,\n waitForExpiry:\n info.waitForExpiry != null ? info.waitForExpiry : false,\n });\n }\n\n /**\n * @returns {HashgraphProto.proto.IScheduleInfo}\n */\n _toProtobuf() {\n return {\n scheduleID:\n this.scheduleId != null ? this.scheduleId._toProtobuf() : null,\n creatorAccountID:\n this.creatorAccountId != null\n ? this.creatorAccountId._toProtobuf()\n : null,\n payerAccountID:\n this.payerAccountId != null\n ? this.payerAccountId._toProtobuf()\n : null,\n scheduledTransactionBody:\n this.schedulableTransactionBody != null\n ? this.schedulableTransactionBody\n : null,\n adminKey:\n this.adminKey != null ? this.adminKey._toProtobufKey() : null,\n signers:\n this.signers != null\n ? this.signers._toProtobufKey().keyList\n : null,\n memo: this.scheduleMemo != null ? this.scheduleMemo : \"\",\n expirationTime:\n this.expirationTime != null\n ? this.expirationTime._toProtobuf()\n : null,\n scheduledTransactionID:\n this.scheduledTransactionId != null\n ? this.scheduledTransactionId._toProtobuf()\n : null,\n waitForExpiry: this.waitForExpiry,\n };\n }\n\n /**\n * @returns {Transaction}\n */\n get scheduledTransaction() {\n if (this.schedulableTransactionBody == null) {\n throw new Error(\"Scheduled transaction body is empty\");\n }\n\n const scheduled = new proto.SchedulableTransactionBody(\n this.schedulableTransactionBody,\n );\n const data =\n /** @type {NonNullable} */ (\n scheduled.data\n );\n\n return Transaction.fromBytes(\n proto.TransactionList.encode({\n transactionList: [\n {\n signedTransactionBytes: proto.SignedTransaction.encode({\n bodyBytes: proto.TransactionBody.encode({\n transactionFee:\n this.schedulableTransactionBody\n .transactionFee,\n memo: this.schedulableTransactionBody.memo,\n [data]: scheduled[data],\n }).finish(),\n }).finish(),\n },\n ],\n }).finish(),\n );\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Query, { QUERY_REGISTRY } from \"../query/Query.js\";\nimport ScheduleId from \"./ScheduleId.js\";\nimport ScheduleInfo from \"./ScheduleInfo.js\";\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport Hbar from \"../Hbar.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.IQuery} HashgraphProto.proto.IQuery\n * @typedef {import(\"@hashgraph/proto\").proto.IQueryHeader} HashgraphProto.proto.IQueryHeader\n * @typedef {import(\"@hashgraph/proto\").proto.IResponse} HashgraphProto.proto.IResponse\n * @typedef {import(\"@hashgraph/proto\").proto.IResponseHeader} HashgraphProto.proto.IResponseHeader\n * @typedef {import(\"@hashgraph/proto\").proto.IScheduleInfo} HashgraphProto.proto.IScheduleInfo\n * @typedef {import(\"@hashgraph/proto\").proto.IScheduleGetInfoQuery} HashgraphProto.proto.IScheduleGetInfoQuery\n * @typedef {import(\"@hashgraph/proto\").proto.IScheduleGetInfoResponse} HashgraphProto.proto.IScheduleGetInfoResponse\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../account/AccountId.js\").default} AccountId\n */\n\n/**\n * @augments {Query}\n */\nexport default class ScheduleInfoQuery extends Query {\n /**\n * @param {object} properties\n * @param {ScheduleId | string} [properties.scheduleId]\n */\n constructor(properties = {}) {\n super();\n\n /**\n * @private\n * @type {?ScheduleId}\n */\n this._scheduleId = null;\n\n if (properties.scheduleId != null) {\n this.setScheduleId(properties.scheduleId);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.IQuery} query\n * @returns {ScheduleInfoQuery}\n */\n static _fromProtobuf(query) {\n const info = /** @type {HashgraphProto.proto.IScheduleGetInfoQuery} */ (\n query.scheduleGetInfo\n );\n\n return new ScheduleInfoQuery({\n scheduleId:\n info.scheduleID != null\n ? ScheduleId._fromProtobuf(info.scheduleID)\n : undefined,\n });\n }\n\n /**\n * @returns {?ScheduleId}\n */\n get scheduleId() {\n return this._scheduleId;\n }\n\n /**\n *\n * @param {ScheduleId | string} scheduleId\n * @returns {ScheduleInfoQuery}\n */\n setScheduleId(scheduleId) {\n this._scheduleId =\n typeof scheduleId === \"string\"\n ? ScheduleId.fromString(scheduleId)\n : scheduleId.clone();\n\n return this;\n }\n\n /**\n * @override\n * @param {import(\"../client/Client.js\").default} client\n * @returns {Promise}\n */\n async getCost(client) {\n return super.getCost(client);\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (this._scheduleId != null) {\n this._scheduleId.validateChecksum(client);\n }\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.IQuery} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.schedule.getScheduleInfo(request);\n }\n\n /**\n * @override\n * @internal\n * @param {HashgraphProto.proto.IResponse} response\n * @returns {HashgraphProto.proto.IResponseHeader}\n */\n _mapResponseHeader(response) {\n const scheduleGetInfo =\n /** @type {HashgraphProto.proto.IScheduleGetInfoResponse} */ (\n response.scheduleGetInfo\n );\n return /** @type {HashgraphProto.proto.IResponseHeader} */ (\n scheduleGetInfo.header\n );\n }\n\n /**\n * @override\n * @internal\n * @param {HashgraphProto.proto.IResponse} response\n * @param {AccountId} nodeAccountId\n * @param {HashgraphProto.proto.IQuery} request\n * @returns {Promise}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _mapResponse(response, nodeAccountId, request) {\n const info =\n /** @type {HashgraphProto.proto.IScheduleGetInfoResponse} */ (\n response.scheduleGetInfo\n );\n\n return Promise.resolve(\n ScheduleInfo._fromProtobuf(\n /** @type {HashgraphProto.proto.IScheduleInfo} */ (\n info.scheduleInfo\n ),\n ),\n );\n }\n\n /**\n * @override\n * @internal\n * @param {HashgraphProto.proto.IQueryHeader} header\n * @returns {HashgraphProto.proto.IQuery}\n */\n _onMakeRequest(header) {\n return {\n scheduleGetInfo: {\n header,\n scheduleID:\n this._scheduleId != null\n ? this._scheduleId._toProtobuf()\n : null,\n },\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp =\n this._paymentTransactionId != null &&\n this._paymentTransactionId.validStart != null\n ? this._paymentTransactionId.validStart\n : this._timestamp;\n\n return `ScheduleInfoQuery:${timestamp.toString()}`;\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/unbound-method\nQUERY_REGISTRY.set(\"scheduleGetInfo\", ScheduleInfoQuery._fromProtobuf);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport ScheduleId from \"./ScheduleId.js\";\nimport Hbar from \"../Hbar.js\";\nimport Transaction, {\n TRANSACTION_REGISTRY,\n} from \"../transaction/Transaction.js\";\n\n/**\n * @typedef {object} ProtoSignaturePair\n * @property {(Uint8Array | null)=} pubKeyPrefix\n * @property {(Uint8Array | null)=} ed25519\n */\n\n/**\n * @typedef {object} ProtoSigMap\n * @property {(ProtoSignaturePair[] | null)=} sigPair\n */\n\n/**\n * @typedef {object} ProtoSignedTransaction\n * @property {(Uint8Array | null)=} bodyBytes\n * @property {(ProtoSigMap | null)=} sigMap\n */\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HashgraphProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HashgraphProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HashgraphProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} HashgraphProto.proto.ITransactionResponse\n * @typedef {import(\"@hashgraph/proto\").proto.IScheduleSignTransactionBody} HashgraphProto.proto.IScheduleSignTransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.IAccountID} HashgraphProto.proto.IAccountID\n * @typedef {import(\"@hashgraph/proto\").proto.ISignatureMap} HashgraphProto.proto.ISignatureMap\n */\n\n/**\n * @typedef {import(\"bignumber.js\").default} BigNumber\n * @typedef {import(\"@hashgraph/cryptography\").Key} Key\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../Timestamp.js\").default} Timestamp\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n * @typedef {import(\"../account/AccountId.js\").default} AccountId\n * @typedef {import(\"@hashgraph/cryptography\").PublicKey} PublicKey\n */\n\n/**\n * Create a new Hedera™ crypto-currency account.\n */\nexport default class ScheduleSignTransaction extends Transaction {\n /**\n * @param {object} [props]\n * @param {ScheduleId | string} [props.scheduleId]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {?ScheduleId}\n */\n this._scheduleId = null;\n\n if (props.scheduleId != null) {\n this.setScheduleId(props.scheduleId);\n }\n\n this._defaultMaxTransactionFee = new Hbar(5);\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransaction[]} transactions\n * @param {HashgraphProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HashgraphProto.proto.ITransactionBody[]} bodies\n * @returns {ScheduleSignTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const sign =\n /** @type {HashgraphProto.proto.IScheduleSignTransactionBody} */ (\n body.scheduleSign\n );\n\n return Transaction._fromProtobufTransactions(\n new ScheduleSignTransaction({\n scheduleId:\n sign.scheduleID != null\n ? ScheduleId._fromProtobuf(sign.scheduleID)\n : undefined,\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @returns {?ScheduleId}\n */\n get scheduleId() {\n return this._scheduleId;\n }\n\n /**\n * @param {ScheduleId | string} scheduleId\n * @returns {this}\n */\n setScheduleId(scheduleId) {\n this._requireNotFrozen();\n this._scheduleId =\n typeof scheduleId === \"string\"\n ? ScheduleId.fromString(scheduleId)\n : scheduleId.clone();\n\n return this;\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (this._scheduleId != null) {\n this._scheduleId.validateChecksum(client);\n }\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.schedule.signSchedule(request);\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"scheduleSign\";\n }\n\n /**\n * @override\n * @protected\n * @returns {HashgraphProto.proto.IScheduleSignTransactionBody}\n */\n _makeTransactionData() {\n return {\n scheduleID:\n this._scheduleId != null\n ? this._scheduleId._toProtobuf()\n : null,\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `ScheduleSignTransaction:${timestamp.toString()}`;\n }\n}\n\nTRANSACTION_REGISTRY.set(\n \"scheduleSign\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n ScheduleSignTransaction._fromProtobuf,\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\n/**\n * @typedef {import(\"./LedgerId.js\").default} LedgerId\n * @typedef {import(\"./SignerSignature.js\").default} SignerSignature\n * @typedef {import(\"./transaction/TransactionId.js\").default} TransactionId\n * @typedef {import(\"./transaction/Transaction.js\").default} Transaction\n * @typedef {import(\"./transaction/TransactionResponse.js\").default} TransactionResponse\n * @typedef {import(\"./transaction/TransactionReceipt.js\").default} TransactionReceipt\n * @typedef {import(\"./transaction/TransactionRecord.js\").default} TransactionRecord\n * @typedef {import(\"./account/AccountId.js\").default} AccountId\n * @typedef {import(\"./account/AccountBalance.js\").default} AccountBalance\n * @typedef {import(\"./account/AccountInfo.js\").default} AccountInfo\n * @typedef {import(\"./Key.js\").default} Key\n */\n\n/**\n * @template {any} O\n * @typedef {import(\"./query/Query.js\").default} Query\n */\n\n/**\n * @template RequestT\n * @template ResponseT\n * @template OutputT\n * @typedef {import(\"./Executable.js\").default} Executable\n */\n\n/**\n * @typedef {object} Signer\n * @property {() => LedgerId?} getLedgerId\n * @property {() => AccountId} getAccountId\n * @property {() => Key} [getAccountKey]\n * @property {() => {[key: string]: (string | AccountId)}} getNetwork\n * @property {() => string[]} getMirrorNetwork\n * @property {(messages: Uint8Array[]) => Promise} sign\n * @property {() => Promise} getAccountBalance\n * @property {() => Promise} getAccountInfo\n * @property {() => Promise} getAccountRecords\n * @property {(transaction: T) => Promise} signTransaction\n * @property {(transaction: T) => Promise} checkTransaction\n * @property {(transaction: T) => Promise} populateTransaction\n * @property {(request: Executable) => Promise} call\n */\n\nexport default {};\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\n/**\n * @typedef {import(\"./PublicKey.js\").default} PublicKey\n * @typedef {import(\"./account/AccountId.js\").default} AccountId\n */\n\nexport default class SignerSignature {\n /**\n * @param {object} props\n * @param {PublicKey} props.publicKey\n * @param {Uint8Array} props.signature\n * @param {AccountId} props.accountId\n */\n constructor(props) {\n this.publicKey = props.publicKey;\n this.signature = props.signature;\n this.accountId = props.accountId;\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nexport default class SubscriptionHandle {\n constructor() {\n /** @type {{(): void} | null} */\n this._call = null;\n\n /** @type {boolean} */\n this._unsubscribed = false;\n }\n\n /**\n * @param {() => void} call\n * @returns {void}\n */\n _setCall(call) {\n this._call = call;\n }\n\n unsubscribe() {\n if (this._call != null) {\n this._unsubscribed = true;\n this._call();\n }\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Transaction, {\n TRANSACTION_REGISTRY,\n} from \"../transaction/Transaction.js\";\nimport FileId from \"../file/FileId.js\";\nimport ContractId from \"../contract/ContractId.js\";\nimport Timestamp from \"../Timestamp.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HashgraphProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HashgraphProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HashgraphProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} HashgraphProto.proto.ITransactionResponse\n * @typedef {import(\"@hashgraph/proto\").proto.ISystemDeleteTransactionBody} HashgraphProto.proto.ISystemDeleteTransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.IContractID} HashgraphProto.proto.IContractID\n * @typedef {import(\"@hashgraph/proto\").proto.IFileID} HashgraphProto.proto.IFileID\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../account/AccountId.js\").default} AccountId\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n */\n\nexport default class SystemDeleteTransaction extends Transaction {\n /**\n * @param {object} [props]\n * @param {FileId | string} [props.fileId]\n * @param {ContractId | string} [props.contractId]\n * @param {Timestamp} [props.expirationTime]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {?FileId}\n */\n this._fileId = null;\n\n /**\n * @private\n * @type {?ContractId}\n */\n this._contractId = null;\n\n /**\n * @private\n * @type {?Timestamp}\n */\n this._expirationTime = null;\n\n if (props.fileId != null) {\n this.setFileId(props.fileId);\n }\n\n if (props.contractId != null) {\n this.setContractId(props.contractId);\n }\n\n if (props.expirationTime != null) {\n this.setExpirationTime(props.expirationTime);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransaction[]} transactions\n * @param {HashgraphProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HashgraphProto.proto.ITransactionBody[]} bodies\n * @returns {SystemDeleteTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const systemDelete =\n /** @type {HashgraphProto.proto.ISystemDeleteTransactionBody} */ (\n body.systemDelete\n );\n\n return Transaction._fromProtobufTransactions(\n new SystemDeleteTransaction({\n fileId:\n systemDelete.fileID != null\n ? FileId._fromProtobuf(\n /** @type {HashgraphProto.proto.IFileID} */ (\n systemDelete.fileID\n ),\n )\n : undefined,\n contractId:\n systemDelete.contractID != null\n ? ContractId._fromProtobuf(\n /** @type {HashgraphProto.proto.IContractID} */ (\n systemDelete.contractID\n ),\n )\n : undefined,\n expirationTime:\n systemDelete.expirationTime != null\n ? Timestamp._fromProtobuf(systemDelete.expirationTime)\n : undefined,\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @returns {?FileId}\n */\n get fileId() {\n return this._fileId;\n }\n\n /**\n * @param {FileId | string} fileId\n * @returns {this}\n */\n setFileId(fileId) {\n this._requireNotFrozen();\n this._fileId =\n fileId instanceof FileId ? fileId : FileId.fromString(fileId);\n\n return this;\n }\n\n /**\n * @returns {?ContractId}\n */\n get contractId() {\n return this._contractId;\n }\n\n /**\n * @param {ContractId | string} contractId\n * @returns {this}\n */\n setContractId(contractId) {\n this._requireNotFrozen();\n this._contractId =\n contractId instanceof ContractId\n ? contractId\n : ContractId.fromString(contractId);\n\n return this;\n }\n\n /**\n * @returns {?Timestamp}\n */\n get expirationTime() {\n return this._expirationTime;\n }\n\n /**\n * @param {Timestamp} expirationTime\n * @returns {SystemDeleteTransaction}\n */\n setExpirationTime(expirationTime) {\n this._requireNotFrozen();\n this._expirationTime = expirationTime;\n return this;\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n if (this._fileId != null) {\n return channel.file.systemDelete(request);\n } else {\n return channel.smartContract.systemDelete(request);\n }\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"systemDelete\";\n }\n\n /**\n * @override\n * @protected\n * @returns {HashgraphProto.proto.ISystemDeleteTransactionBody}\n */\n _makeTransactionData() {\n return {\n fileID: this._fileId != null ? this._fileId._toProtobuf() : null,\n contractID:\n this._contractId != null\n ? this._contractId._toProtobuf()\n : null,\n expirationTime:\n this._expirationTime != null\n ? this._expirationTime._toProtobuf()\n : null,\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `SystemDeleteTransaction:${timestamp.toString()}`;\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/unbound-method\nTRANSACTION_REGISTRY.set(\"systemDelete\", SystemDeleteTransaction._fromProtobuf);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Transaction, {\n TRANSACTION_REGISTRY,\n} from \"../transaction/Transaction.js\";\nimport FileId from \"../file/FileId.js\";\nimport ContractId from \"../contract/ContractId.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HashgraphProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HashgraphProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HashgraphProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} HashgraphProto.proto.ITransactionResponse\n * @typedef {import(\"@hashgraph/proto\").proto.ISystemUndeleteTransactionBody} HashgraphProto.proto.ISystemUndeleteTransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.IContractID} HashgraphProto.proto.IContractID\n * @typedef {import(\"@hashgraph/proto\").proto.IFileID} HashgraphProto.proto.IFileID\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../Timestamp.js\").default} Timestamp\n * @typedef {import(\"../account/AccountId.js\").default} AccountId\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n */\n\nexport default class SystemUndeleteTransaction extends Transaction {\n /**\n * @param {object} [props]\n * @param {FileId | string} [props.fileId]\n * @param {ContractId | string} [props.contractId]\n * @param {Timestamp} [props.expirationTime]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {?FileId}\n */\n this._fileId = null;\n\n /**\n * @private\n * @type {?ContractId}\n */\n this._contractId = null;\n\n if (props.fileId != null) {\n this.setFileId(props.fileId);\n }\n\n if (props.contractId != null) {\n this.setContractId(props.contractId);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransaction[]} transactions\n * @param {HashgraphProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HashgraphProto.proto.ITransactionBody[]} bodies\n * @returns {SystemUndeleteTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const systemUndelete =\n /** @type {HashgraphProto.proto.ISystemUndeleteTransactionBody} */ (\n body.systemUndelete\n );\n\n return Transaction._fromProtobufTransactions(\n new SystemUndeleteTransaction({\n fileId:\n systemUndelete.fileID != null\n ? FileId._fromProtobuf(\n /** @type {HashgraphProto.proto.IFileID} */ (\n systemUndelete.fileID\n ),\n )\n : undefined,\n contractId:\n systemUndelete.contractID != null\n ? ContractId._fromProtobuf(\n /** @type {HashgraphProto.proto.IContractID} */ (\n systemUndelete.contractID\n ),\n )\n : undefined,\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @returns {?FileId}\n */\n get fileId() {\n return this._fileId;\n }\n\n /**\n * @param {FileId | string} fileId\n * @returns {this}\n */\n setFileId(fileId) {\n this._requireNotFrozen();\n this._fileId =\n fileId instanceof FileId ? fileId : FileId.fromString(fileId);\n\n return this;\n }\n\n /**\n * @returns {?ContractId}\n */\n get contractId() {\n return this._contractId;\n }\n\n /**\n * @param {ContractId | string} contractId\n * @returns {this}\n */\n setContractId(contractId) {\n this._requireNotFrozen();\n this._contractId =\n contractId instanceof ContractId\n ? contractId\n : ContractId.fromString(contractId);\n\n return this;\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n if (this._fileId != null) {\n return channel.file.systemUndelete(request);\n } else {\n return channel.smartContract.systemUndelete(request);\n }\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"systemUndelete\";\n }\n\n /**\n * @override\n * @protected\n * @returns {HashgraphProto.proto.ISystemUndeleteTransactionBody}\n */\n _makeTransactionData() {\n return {\n fileID: this._fileId != null ? this._fileId._toProtobuf() : null,\n contractID:\n this._contractId != null\n ? this._contractId._toProtobuf()\n : null,\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `SystemUndeleteTransaction:${timestamp.toString()}`;\n }\n}\n\nTRANSACTION_REGISTRY.set(\n \"systemUndelete\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n SystemUndeleteTransaction._fromProtobuf,\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Hbar from \"../Hbar.js\";\nimport TokenId from \"./TokenId.js\";\nimport AccountId from \"../account/AccountId.js\";\nimport Transaction, {\n TRANSACTION_REGISTRY,\n} from \"../transaction/Transaction.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HashgraphProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HashgraphProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HashgraphProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} HashgraphProto.proto.ITransactionResponse\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenAssociateTransactionBody} HashgraphProto.proto.ITokenAssociateTransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenID} HashgraphProto.proto.ITokenID\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n */\n\n/**\n * Associate a new Hedera™ crypto-currency token.\n */\nexport default class TokenAssociateTransaction extends Transaction {\n /**\n * @param {object} [props]\n * @param {(TokenId | string)[]} [props.tokenIds]\n * @param {AccountId | string} [props.accountId]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {?TokenId[]}\n */\n this._tokenIds = null;\n\n /**\n * @private\n * @type {?AccountId}\n */\n this._accountId = null;\n\n this._defaultMaxTransactionFee = new Hbar(5);\n\n if (props.tokenIds != null) {\n this.setTokenIds(props.tokenIds);\n }\n\n if (props.accountId != null) {\n this.setAccountId(props.accountId);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransaction[]} transactions\n * @param {HashgraphProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HashgraphProto.proto.ITransactionBody[]} bodies\n * @returns {TokenAssociateTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const associateToken =\n /** @type {HashgraphProto.proto.ITokenAssociateTransactionBody} */ (\n body.tokenAssociate\n );\n\n return Transaction._fromProtobufTransactions(\n new TokenAssociateTransaction({\n tokenIds:\n associateToken.tokens != null\n ? associateToken.tokens.map((token) =>\n TokenId._fromProtobuf(token),\n )\n : undefined,\n accountId:\n associateToken.account != null\n ? AccountId._fromProtobuf(associateToken.account)\n : undefined,\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @returns {?TokenId[]}\n */\n get tokenIds() {\n return this._tokenIds;\n }\n\n /**\n * @param {(TokenId | string)[]} tokenIds\n * @returns {this}\n */\n setTokenIds(tokenIds) {\n this._requireNotFrozen();\n this._tokenIds = tokenIds.map((tokenId) =>\n typeof tokenId === \"string\"\n ? TokenId.fromString(tokenId)\n : tokenId.clone(),\n );\n\n return this;\n }\n\n /**\n * @returns {?AccountId}\n */\n get accountId() {\n return this._accountId;\n }\n\n /**\n * @param {AccountId | string} accountId\n * @returns {this}\n */\n setAccountId(accountId) {\n this._requireNotFrozen();\n this._accountId =\n typeof accountId === \"string\"\n ? AccountId.fromString(accountId)\n : accountId.clone();\n\n return this;\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (this._accountId != null) {\n this._accountId.validateChecksum(client);\n }\n\n for (const tokenId of this._tokenIds != null ? this._tokenIds : []) {\n if (tokenId != null) {\n tokenId.validateChecksum(client);\n }\n }\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.token.associateTokens(request);\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"tokenAssociate\";\n }\n\n /**\n * @override\n * @protected\n * @returns {HashgraphProto.proto.ITokenAssociateTransactionBody}\n */\n _makeTransactionData() {\n return {\n tokens:\n this._tokenIds != null\n ? this._tokenIds.map((tokenId) => tokenId._toProtobuf())\n : null,\n account:\n this._accountId != null ? this._accountId._toProtobuf() : null,\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `TokenAssociateTransaction:${timestamp.toString()}`;\n }\n}\n\nTRANSACTION_REGISTRY.set(\n \"tokenAssociate\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n TokenAssociateTransaction._fromProtobuf,\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport TokenId from \"./TokenId.js\";\nimport Transaction, {\n TRANSACTION_REGISTRY,\n} from \"../transaction/Transaction.js\";\nimport Long from \"long\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HashgraphProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HashgraphProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HashgraphProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} HashgraphProto.proto.ITransactionResponse\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenBurnTransactionBody} HashgraphProto.proto.ITokenBurnTransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenID} HashgraphProto.proto.ITokenID\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../account/AccountId.js\").default} AccountId\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n */\n\n/**\n * Burn a new Hedera™ crypto-currency token.\n */\nexport default class TokenBurnTransaction extends Transaction {\n /**\n * @param {object} [props]\n * @param {TokenId | string} [props.tokenId]\n * @param {Long | number} [props.amount]\n * @param {(Long | number)[]} [props.serials]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {?TokenId}\n */\n this._tokenId = null;\n\n /**\n * @private\n * @type {?Long}\n */\n this._amount = null;\n\n /**\n * @private\n * @type {Long[]}\n */\n this._serials = [];\n\n if (props.tokenId != null) {\n this.setTokenId(props.tokenId);\n }\n\n if (props.amount != null) {\n this.setAmount(props.amount);\n }\n\n if (props.serials != null) {\n this.setSerials(props.serials);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransaction[]} transactions\n * @param {HashgraphProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HashgraphProto.proto.ITransactionBody[]} bodies\n * @returns {TokenBurnTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const burnToken =\n /** @type {HashgraphProto.proto.ITokenBurnTransactionBody} */ (\n body.tokenBurn\n );\n\n return Transaction._fromProtobufTransactions(\n new TokenBurnTransaction({\n tokenId:\n burnToken.token != null\n ? TokenId._fromProtobuf(burnToken.token)\n : undefined,\n amount: burnToken.amount != null ? burnToken.amount : undefined,\n serials:\n burnToken.serialNumbers != null\n ? burnToken.serialNumbers\n : undefined,\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @returns {?TokenId}\n */\n get tokenId() {\n return this._tokenId;\n }\n\n /**\n * @param {TokenId | string} tokenId\n * @returns {this}\n */\n setTokenId(tokenId) {\n this._requireNotFrozen();\n this._tokenId =\n typeof tokenId === \"string\"\n ? TokenId.fromString(tokenId)\n : tokenId.clone();\n\n return this;\n }\n\n /**\n * @returns {?Long}\n */\n get amount() {\n return this._amount;\n }\n\n /**\n * @param {Long | number} amount\n * @returns {this}\n */\n setAmount(amount) {\n this._requireNotFrozen();\n this._amount = amount instanceof Long ? amount : Long.fromValue(amount);\n\n return this;\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (this._tokenId != null) {\n this._tokenId.validateChecksum(client);\n }\n }\n\n /**\n * @returns {Long[]}\n */\n get serials() {\n return this._serials;\n }\n\n /**\n * @param {(Long | number)[]} serials\n * @returns {this}\n */\n setSerials(serials) {\n this._requireNotFrozen();\n this._serials = serials.map((serial) =>\n serial instanceof Long ? serial : Long.fromValue(serial),\n );\n\n return this;\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.token.burnToken(request);\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"tokenBurn\";\n }\n\n /**\n * @override\n * @protected\n * @returns {HashgraphProto.proto.ITokenBurnTransactionBody}\n */\n _makeTransactionData() {\n return {\n amount: this._amount,\n serialNumbers: this._serials,\n token: this._tokenId != null ? this._tokenId._toProtobuf() : null,\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `TokenBurnTransaction:${timestamp.toString()}`;\n }\n}\n\nTRANSACTION_REGISTRY.set(\n \"tokenBurn\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n TokenBurnTransaction._fromProtobuf,\n);\n","import NftId from \"./NftId.js\";\nimport TokenId from \"./TokenId.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.TokenReference} HashgraphProto.proto.TokenReference\n */\n\nexport default class TokenReference {\n constructor() {\n /**\n * @public\n * @type {?TokenId}\n */\n this.fungibleToken = null;\n /**\n * @public\n * @type {?NftId}\n */\n this.nft = null;\n }\n\n /**\n * @public\n * @param {HashgraphProto.proto.TokenReference} reference\n * @returns {TokenReference}\n */\n static _fromProtobuf(reference) {\n return {\n fungibleToken:\n reference.fungibleToken != undefined\n ? TokenId._fromProtobuf(reference.fungibleToken)\n : null,\n nft:\n reference.nft != undefined\n ? NftId._fromProtobuf(reference.nft)\n : null,\n };\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\nimport AccountId from \"../account/AccountId.js\";\nimport Transaction from \"../transaction/Transaction.js\";\nimport { TRANSACTION_REGISTRY } from \"../transaction/Transaction.js\";\nimport TokenReference from \"../token/TokenReference.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HashgraphProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HashgraphProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} HashgraphProto.proto.ITransactionResponse\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HashgraphProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenRejectTransactionBody} HashgraphProto.proto.ITokenRejectTransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.TokenReference} HashgraphProto.proto.TokenReference\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n * @typedef {import(\"../token/TokenId.js\").default} TokenId\n * @typedef {import(\"../token/NftId.js\").default} NftId\n */\n\n/**\n * Reject a new Hedera™ crypto-currency token.\n */\nexport default class TokenRejectTransaction extends Transaction {\n /**\n *\n * @param {object} [props]\n * @param {?AccountId} [props.owner]\n * @param {NftId[]} [props.nftIds]\n * @param {TokenId[]} [props.tokenIds]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {?AccountId}\n */\n this._owner = null;\n\n if (props.owner != null) {\n this.setOwnerId(props.owner);\n }\n\n /**\n * @private\n * @type {TokenId[]}\n */\n this._tokenIds = [];\n\n /**\n * @private\n * @type {NftId[]}\n */\n this._nftIds = [];\n\n if (props.tokenIds != null) {\n this.setTokenIds(props.tokenIds);\n }\n\n if (props.nftIds != null) {\n this.setNftIds(props.nftIds);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransaction[]} transactions\n * @param {HashgraphProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HashgraphProto.proto.ITransactionBody[]} bodies\n * @returns {TokenRejectTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const rejectToken =\n /** @type {HashgraphProto.proto.ITokenRejectTransactionBody} */ (\n body.tokenReject\n );\n\n const tokenIds = rejectToken.rejections?.map((rejection) =>\n TokenReference._fromProtobuf(rejection),\n );\n const ftIds = tokenIds\n ?.filter((token) => token.fungibleToken)\n .map(({ fungibleToken }) => {\n if (fungibleToken == null) {\n throw new Error(\"Fungible Token cannot be null\");\n }\n return fungibleToken;\n });\n\n const nftIds = tokenIds\n ?.filter((token) => token.nft)\n .map(({ nft }) => {\n if (nft == null) {\n throw new Error(\"Nft cannot be null\");\n }\n return nft;\n });\n\n return Transaction._fromProtobufTransactions(\n new TokenRejectTransaction({\n owner:\n rejectToken.owner != null\n ? AccountId._fromProtobuf(rejectToken.owner)\n : undefined,\n\n tokenIds: ftIds,\n nftIds: nftIds,\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @returns {TokenId[]}\n */\n get tokenIds() {\n return this._tokenIds;\n }\n\n /**\n * @param {TokenId[]} tokenIds\n * @returns {this}\n */\n setTokenIds(tokenIds) {\n this._requireNotFrozen();\n this._tokenIds = tokenIds;\n return this;\n }\n\n /**\n * @param {TokenId} tokenId\n * @returns {this}\n */\n addTokenId(tokenId) {\n this._requireNotFrozen();\n this._tokenIds?.push(tokenId);\n return this;\n }\n\n /**\n * @returns {NftId[]}\n *\n */\n get nftIds() {\n return this._nftIds;\n }\n\n /**\n *\n * @param {NftId[]} nftIds\n * @returns {this}\n */\n setNftIds(nftIds) {\n this._requireNotFrozen();\n this._nftIds = nftIds;\n return this;\n }\n\n /**\n * @param {NftId} nftId\n * @returns {this}\n */\n addNftId(nftId) {\n this._requireNotFrozen();\n this._nftIds?.push(nftId);\n return this;\n }\n\n /**\n * @returns {?AccountId}\n */\n get ownerId() {\n return this._owner;\n }\n\n /**\n * @param {AccountId} owner\n * @returns {this}\n */\n setOwnerId(owner) {\n this._requireNotFrozen();\n this._owner = owner;\n return this;\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.token.rejectToken(request);\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"tokenReject\";\n }\n\n /**\n * @returns {HashgraphProto.proto.ITokenRejectTransactionBody}\n */\n _makeTransactionData() {\n /** @type {HashgraphProto.proto.TokenReference[]} */\n const rejections = [];\n for (const tokenId of this._tokenIds) {\n rejections.push({\n fungibleToken: tokenId._toProtobuf(),\n });\n }\n\n for (const nftId of this._nftIds) {\n rejections.push({\n nft: nftId._toProtobuf(),\n });\n }\n return {\n owner: this.ownerId?._toProtobuf() ?? null,\n rejections,\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `TokenRejectTransaction:${timestamp.toString()}`;\n }\n}\nTRANSACTION_REGISTRY.set(\n \"tokenReject\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n TokenRejectTransaction._fromProtobuf,\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Hbar from \"../Hbar.js\";\nimport TokenId from \"./TokenId.js\";\nimport AccountId from \"../account/AccountId.js\";\nimport Transaction, {\n TRANSACTION_REGISTRY,\n} from \"../transaction/Transaction.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HashgraphProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HashgraphProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HashgraphProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} HashgraphProto.proto.ITransactionResponse\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenDissociateTransactionBody} HashgraphProto.proto.ITokenDissociateTransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenID} HashgraphProto.proto.ITokenID\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n */\n\n/**\n * Dissociate a new Hedera™ crypto-currency token.\n */\nexport default class TokenDissociateTransaction extends Transaction {\n /**\n * @param {object} [props]\n * @param {(TokenId | string)[]} [props.tokenIds]\n * @param {AccountId | string} [props.accountId]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {?TokenId[]}\n */\n this._tokenIds = null;\n\n /**\n * @private\n * @type {?AccountId}\n */\n this._accountId = null;\n\n this._defaultMaxTransactionFee = new Hbar(5);\n\n if (props.tokenIds != null) {\n this.setTokenIds(props.tokenIds);\n }\n\n if (props.accountId != null) {\n this.setAccountId(props.accountId);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransaction[]} transactions\n * @param {HashgraphProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HashgraphProto.proto.ITransactionBody[]} bodies\n * @returns {TokenDissociateTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const dissociateToken =\n /** @type {HashgraphProto.proto.ITokenDissociateTransactionBody} */ (\n body.tokenDissociate\n );\n\n return Transaction._fromProtobufTransactions(\n new TokenDissociateTransaction({\n tokenIds:\n dissociateToken.tokens != null\n ? dissociateToken.tokens.map((token) =>\n TokenId._fromProtobuf(token),\n )\n : undefined,\n accountId:\n dissociateToken.account != null\n ? AccountId._fromProtobuf(dissociateToken.account)\n : undefined,\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @returns {?TokenId[]}\n */\n get tokenIds() {\n return this._tokenIds;\n }\n\n /**\n * @param {(TokenId | string)[]} tokenIds\n * @returns {this}\n */\n setTokenIds(tokenIds) {\n this._requireNotFrozen();\n this._tokenIds = tokenIds.map((tokenId) =>\n typeof tokenId === \"string\"\n ? TokenId.fromString(tokenId)\n : tokenId.clone(),\n );\n\n return this;\n }\n\n /**\n * @returns {?AccountId}\n */\n get accountId() {\n return this._accountId;\n }\n\n /**\n * @param {AccountId | string} accountId\n * @returns {this}\n */\n setAccountId(accountId) {\n this._requireNotFrozen();\n this._accountId =\n typeof accountId === \"string\"\n ? AccountId.fromString(accountId)\n : accountId.clone();\n\n return this;\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (this._accountId != null) {\n this._accountId.validateChecksum(client);\n }\n\n for (const tokenId of this._tokenIds != null ? this._tokenIds : []) {\n if (tokenId != null) {\n tokenId.validateChecksum(client);\n }\n }\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.token.dissociateTokens(request);\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"tokenDissociate\";\n }\n\n /**\n * @override\n * @protected\n * @returns {HashgraphProto.proto.ITokenDissociateTransactionBody}\n */\n _makeTransactionData() {\n return {\n tokens:\n this._tokenIds != null\n ? this._tokenIds.map((tokenId) => tokenId._toProtobuf())\n : null,\n account:\n this._accountId != null ? this._accountId._toProtobuf() : null,\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `TokenDissociateTransaction:${timestamp.toString()}`;\n }\n}\n\nTRANSACTION_REGISTRY.set(\n \"tokenDissociate\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n TokenDissociateTransaction._fromProtobuf,\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\nimport TokenRejectTransaction from \"../token/TokenRejectTransaction.js\";\nimport TokenDissociateTransaction from \"../token/TokenDissociateTransaction.js\";\n\n/**\n * @typedef {import(\"../PrivateKey.js\").default} PrivateKey\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../Signer.js\").default} Signer\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n * @typedef {import(\"../transaction/Transaction.js\").default} Transaction\n * @typedef {import(\"../transaction/TransactionResponse.js\").default} TransactionResponse\n * @typedef {import(\"../token/TokenId.js\").default} TokenId\n * @typedef {import(\"../token/NftId.js\").default} NftId\n * @typedef {import(\"../PublicKey.js\").default} PublicKey\n * @typedef {import(\"../account/AccountId.js\").default} AccountId\n */\n\n/**\n * Reject undesired token(s) and dissociate in a single flow.\n */\nexport default class TokenRejectFlow {\n constructor() {\n /**\n * @private\n * @type {?AccountId}\n */\n this._ownerId = null;\n\n /**\n * @private\n * @type {TokenId[]}\n */\n this._tokenIds = [];\n\n /**\n * @private\n * @type {NftId[]}\n */\n this._nftIds = [];\n\n /**\n * @private\n * @type {?Client}\n */\n this._freezeWithClient = null;\n\n /**\n * @private\n * @type {?PrivateKey}\n */\n this._signPrivateKey = null;\n\n /**\n * @private\n * @type {?PublicKey}\n */\n this._signPublicKey = null;\n\n /**\n * @private\n * @type {?(message: Uint8Array) => Promise}\n */\n this._transactionSigner = null;\n }\n\n /**\n *\n * @param {AccountId} ownerId\n * @returns {this}\n */\n setOwnerId(ownerId) {\n this.requireNotFrozen();\n this._ownerId = ownerId;\n return this;\n }\n\n /**\n * @returns {?AccountId}\n */\n get ownerId() {\n return this._ownerId;\n }\n\n /**\n *\n * @param {TokenId[]} ids\n * @returns {this}\n */\n setTokenIds(ids) {\n this.requireNotFrozen();\n this._tokenIds = ids;\n return this;\n }\n\n /**\n *\n * @param {TokenId} id\n * @returns {this}\n */\n addTokenId(id) {\n this.requireNotFrozen();\n this._tokenIds.push(id);\n return this;\n }\n\n /**\n *\n * @returns {TokenId[]}\n */\n get tokenIds() {\n return this._tokenIds;\n }\n\n /**\n *\n * @param {NftId[]} ids\n * @returns {this}\n */\n setNftIds(ids) {\n this.requireNotFrozen();\n this._nftIds = ids;\n return this;\n }\n\n /**\n *\n * @param {NftId} id\n * @returns {this}\n */\n addNftId(id) {\n this.requireNotFrozen();\n this._nftIds.push(id);\n return this;\n }\n\n /**\n *\n * @returns {NftId[]}\n */\n get nftIds() {\n return this._nftIds;\n }\n\n /**\n *\n * @param {PrivateKey} privateKey\n * @returns {this}\n */\n sign(privateKey) {\n this._signPrivateKey = privateKey;\n this._signPublicKey = null;\n this._transactionSigner = null;\n return this;\n }\n\n /**\n *\n * @param {PublicKey} publicKey\n * @param {((message: Uint8Array) => Promise)} signer\n * @returns {this}\n */\n signWith(publicKey, signer) {\n this._signPublicKey = publicKey;\n this._transactionSigner = signer;\n this._signPrivateKey = null;\n return this;\n }\n\n /**\n * @param {Client} client\n * @returns {this}\n */\n signWithOperator(client) {\n const operator = client.getOperator();\n if (operator == null) {\n throw new Error(\"Client operator must be set\");\n }\n this._signPublicKey = operator.publicKey;\n this._transactionSigner = operator.transactionSigner;\n this._signPrivateKey = null;\n return this;\n }\n\n /**\n * @private\n * @param {Transaction} transaction\n */\n fillOutTransaction(transaction) {\n if (this._freezeWithClient) {\n transaction.freezeWith(this._freezeWithClient);\n }\n if (this._signPrivateKey) {\n void transaction.sign(this._signPrivateKey);\n } else if (this._signPublicKey && this._transactionSigner) {\n void transaction.signWith(\n this._signPublicKey,\n this._transactionSigner,\n );\n }\n }\n /**\n *\n * @param {Client} client\n * @returns {this}\n */\n freezeWith(client) {\n this._freezeWithClient = client;\n return this;\n }\n\n /**\n * @param {Client} client\n * @returns {Promise}\n */\n async execute(client) {\n const tokenRejectTxn = new TokenRejectTransaction()\n .setTokenIds(this.tokenIds)\n .setNftIds(this.nftIds);\n\n if (this.ownerId) {\n tokenRejectTxn.setOwnerId(this.ownerId);\n }\n\n this.fillOutTransaction(tokenRejectTxn);\n\n /* Get all token ids from NFT and remove duplicates as duplicated IDs \n will trigger a TOKEN_REFERENCE_REPEATED error. */\n const nftTokenIds = this.nftIds\n .map((nftId) => nftId.tokenId)\n .filter(function (value, index, array) {\n return array.indexOf(value) === index;\n });\n\n const tokenDissociateTxn = new TokenDissociateTransaction().setTokenIds(\n [...this.tokenIds, ...nftTokenIds],\n );\n\n if (this.ownerId != null) {\n tokenDissociateTxn.setAccountId(this.ownerId);\n }\n\n this.fillOutTransaction(tokenDissociateTxn);\n\n const tokenRejectResponse = await tokenRejectTxn.execute(client);\n await tokenRejectResponse.getReceipt(client);\n\n const tokenDissociateResponse =\n await tokenDissociateTxn.execute(client);\n await tokenDissociateResponse.getReceipt(client);\n\n return tokenRejectResponse;\n }\n\n requireNotFrozen() {\n if (this._freezeWithClient != null) {\n throw new Error(\n \"Transaction is already frozen and cannot be modified\",\n );\n }\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.TokenType} HashgraphProto.proto.TokenType\n */\n\nexport default class TokenType {\n /**\n * @hideconstructor\n * @internal\n * @param {number} code\n */\n constructor(code) {\n /** @readonly */\n this._code = code;\n\n Object.freeze(this);\n }\n\n /**\n * @returns {string}\n */\n toString() {\n switch (this) {\n case TokenType.FungibleCommon:\n return \"FUNGIBLE_COMMON\";\n case TokenType.NonFungibleUnique:\n return \"NON_FUNGIBLE_UNIQUE\";\n default:\n return `UNKNOWN (${this._code})`;\n }\n }\n\n /**\n * @internal\n * @param {number} code\n * @returns {TokenType}\n */\n static _fromCode(code) {\n switch (code) {\n case 0:\n return TokenType.FungibleCommon;\n case 1:\n return TokenType.NonFungibleUnique;\n }\n\n throw new Error(\n `(BUG) TokenType.fromCode() does not handle code: ${code}`,\n );\n }\n\n /**\n * @returns {HashgraphProto.proto.TokenType}\n */\n valueOf() {\n return this._code;\n }\n}\n\n/**\n * Interchangeable value with one another, where any quantity of them has the\n * same value as another equal quantity if they are in the same class. Share\n * a single set of properties, not distinct from one another. Simply represented\n * as a balance or quantity to a given Hedera account.\n */\nTokenType.FungibleCommon = new TokenType(0);\n\n/**\n * Unique, not interchangeable with other tokens of the same type as they\n * typically have different values. Individually traced and can carry unique\n * properties (e.g. serial number).\n */\nTokenType.NonFungibleUnique = new TokenType(1);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.TokenSupplyType} HashgraphProto.proto.TokenSupplyType\n */\n\nexport default class TokenSupplyType {\n /**\n * @hideconstructor\n * @internal\n * @param {number} code\n */\n constructor(code) {\n /** @readonly */\n this._code = code;\n\n Object.freeze(this);\n }\n\n /**\n * @returns {string}\n */\n toString() {\n switch (this) {\n case TokenSupplyType.Infinite:\n return \"INFINITE\";\n case TokenSupplyType.Finite:\n return \"FINITE\";\n default:\n return `UNKNOWN (${this._code})`;\n }\n }\n\n /**\n * @internal\n * @param {number} code\n * @returns {TokenSupplyType}\n */\n static _fromCode(code) {\n switch (code) {\n case 0:\n return TokenSupplyType.Infinite;\n case 1:\n return TokenSupplyType.Finite;\n }\n\n throw new Error(\n `(BUG) TokenSupplyType.fromCode() does not handle code: ${code}`,\n );\n }\n\n /**\n * @returns {HashgraphProto.proto.TokenSupplyType}\n */\n valueOf() {\n return this._code;\n }\n}\n\n/**\n * Interchangeable value with one another, where any quantity of them has the\n * same value as another equal quantity if they are in the same class. Share\n * a single set of properties, not distinct from one another. Simply represented\n * as a balance or quantity to a given Hedera account.\n */\nTokenSupplyType.Infinite = new TokenSupplyType(0);\n\n/**\n * Unique, not interchangeable with other tokens of the same type as they\n * typically have different values. Individually traced and can carry unique\n * properties (e.g. serial number).\n */\nTokenSupplyType.Finite = new TokenSupplyType(1);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Hbar from \"../Hbar.js\";\nimport Transaction, {\n DEFAULT_AUTO_RENEW_PERIOD,\n TRANSACTION_REGISTRY,\n} from \"../transaction/Transaction.js\";\nimport Long from \"long\";\nimport AccountId from \"../account/AccountId.js\";\nimport Timestamp from \"../Timestamp.js\";\nimport Duration from \"../Duration.js\";\nimport CustomFixedFee from \"./CustomFixedFee.js\";\nimport CustomFractionalFee from \"./CustomFractionalFee.js\";\nimport CustomRoyaltyFee from \"./CustomRoyaltyFee.js\";\nimport TokenType from \"./TokenType.js\";\nimport TokenSupplyType from \"./TokenSupplyType.js\";\nimport Key from \"../Key.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HashgraphProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HashgraphProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HashgraphProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} HashgraphProto.proto.ITransactionResponse\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenCreateTransactionBody} HashgraphProto.proto.ITokenCreateTransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenID} HashgraphProto.proto.ITokenID\n */\n\n/**\n * @typedef {import(\"bignumber.js\").default} BigNumber\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n * @typedef {import(\"./CustomFee.js\").default} CustomFee\n */\n\n/**\n * Create a new Hedera™ crypto-currency token.\n */\nexport default class TokenCreateTransaction extends Transaction {\n /**\n * @param {object} [props]\n * @param {string} [props.tokenName]\n * @param {string} [props.tokenSymbol]\n * @param {Long | number} [props.decimals]\n * @param {Long | number} [props.initialSupply]\n * @param {AccountId | string} [props.treasuryAccountId]\n * @param {Key} [props.adminKey]\n * @param {Key} [props.kycKey]\n * @param {Key} [props.freezeKey]\n * @param {Key} [props.pauseKey]\n * @param {Key} [props.wipeKey]\n * @param {Key} [props.supplyKey]\n * @param {Key} [props.feeScheduleKey]\n * @param {boolean} [props.freezeDefault]\n * @param {AccountId | string} [props.autoRenewAccountId]\n * @param {Timestamp | Date} [props.expirationTime]\n * @param {Duration | Long | number} [props.autoRenewPeriod]\n * @param {string} [props.tokenMemo]\n * @param {CustomFee[]} [props.customFees]\n * @param {TokenType} [props.tokenType]\n * @param {TokenSupplyType} [props.supplyType]\n * @param {Long | number} [props.maxSupply]\n * @param {Key} [props.metadataKey]\n * @param {Uint8Array} [props.metadata]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {?string}\n */\n this._tokenName = null;\n\n /**\n * @private\n * @type {?string}\n */\n this._tokenSymbol = null;\n\n /**\n * @private\n * @type {?Long}\n */\n this._decimals = null;\n\n /**\n * @private\n * @type {?Long}\n */\n this._initialSupply = null;\n\n /**\n * @private\n * @type {?AccountId}\n */\n this._treasuryAccountId = null;\n\n /**\n * @private\n * @type {?Key}\n */\n this._adminKey = null;\n\n /**\n * @private\n * @type {?Key}\n */\n this._kycKey = null;\n\n /**\n * @private\n * @type {?Key}\n */\n this._freezeKey = null;\n\n /**\n * @private\n * @type {?Key}\n */\n this._pauseKey = null;\n\n /**\n * @private\n * @type {?Key}\n */\n this._wipeKey = null;\n\n /**\n * @private\n * @type {?Key}\n */\n this._supplyKey = null;\n\n /**\n * @private\n * @type {?Key}\n */\n this._feeScheduleKey = null;\n\n /**\n * @private\n * @type {?boolean}\n */\n this._freezeDefault = null;\n\n /**\n * @private\n * @type {?AccountId}\n */\n this._autoRenewAccountId = null;\n\n /**\n * @private\n * @type {?Timestamp}\n */\n this._expirationTime = new Timestamp(\n Math.floor(\n Date.now() / 1000 + DEFAULT_AUTO_RENEW_PERIOD.toNumber(),\n ),\n 0,\n );\n\n /**\n * @private\n * @type {?Duration}\n */\n this._autoRenewPeriod = new Duration(DEFAULT_AUTO_RENEW_PERIOD);\n\n /**\n * @private\n * @type {?string}\n */\n this._tokenMemo = null;\n\n /**\n * @private\n * @type {CustomFee[]}\n */\n this._customFees = [];\n\n /**\n * @private\n * @type {?TokenType}\n */\n this._tokenType = null;\n\n /**\n * @private\n * @type {?TokenSupplyType}\n */\n this._supplyType = null;\n\n /**\n * @private\n * @type {?Long}\n */\n this._maxSupply = null;\n\n this._defaultMaxTransactionFee = new Hbar(30);\n\n /**\n * @private\n * @type {?Key}\n */\n this._metadataKey = null;\n\n /**\n * @private\n * @description Metadata of the created token definition.\n * @type {?Uint8Array}\n */\n this._metadata = null;\n\n if (props.tokenName != null) {\n this.setTokenName(props.tokenName);\n }\n\n if (props.tokenSymbol != null) {\n this.setTokenSymbol(props.tokenSymbol);\n }\n\n if (props.decimals != null) {\n this.setDecimals(props.decimals);\n }\n\n if (props.initialSupply != null) {\n this.setInitialSupply(props.initialSupply);\n }\n\n if (props.treasuryAccountId != null) {\n this.setTreasuryAccountId(props.treasuryAccountId);\n }\n\n if (props.adminKey != null) {\n this.setAdminKey(props.adminKey);\n }\n\n if (props.kycKey != null) {\n this.setKycKey(props.kycKey);\n }\n\n if (props.freezeKey != null) {\n this.setFreezeKey(props.freezeKey);\n }\n\n if (props.pauseKey != null) {\n this.setPauseKey(props.pauseKey);\n }\n\n if (props.wipeKey != null) {\n this.setWipeKey(props.wipeKey);\n }\n\n if (props.supplyKey != null) {\n this.setSupplyKey(props.supplyKey);\n }\n\n if (props.feeScheduleKey != null) {\n this.setFeeScheduleKey(props.feeScheduleKey);\n }\n\n if (props.freezeDefault != null) {\n this.setFreezeDefault(props.freezeDefault);\n }\n\n if (props.autoRenewAccountId != null) {\n this.setAutoRenewAccountId(props.autoRenewAccountId);\n }\n\n if (props.expirationTime != null) {\n this.setExpirationTime(props.expirationTime);\n }\n\n if (props.autoRenewPeriod != null) {\n this.setAutoRenewPeriod(props.autoRenewPeriod);\n }\n\n if (props.tokenMemo != null) {\n this.setTokenMemo(props.tokenMemo);\n }\n\n if (props.customFees != null) {\n this.setCustomFees(props.customFees);\n }\n\n if (props.tokenType != null) {\n this.setTokenType(props.tokenType);\n }\n\n if (props.supplyType != null) {\n this.setSupplyType(props.supplyType);\n }\n\n if (props.maxSupply != null) {\n this.setMaxSupply(props.maxSupply);\n }\n\n if (props.metadataKey != null) {\n this.setMetadataKey(props.metadataKey);\n }\n\n if (props.metadata != null) {\n this.setMetadata(props.metadata);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransaction[]} transactions\n * @param {HashgraphProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HashgraphProto.proto.ITransactionBody[]} bodies\n * @returns {TokenCreateTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const create =\n /** @type {HashgraphProto.proto.ITokenCreateTransactionBody} */ (\n body.tokenCreation\n );\n\n return Transaction._fromProtobufTransactions(\n new TokenCreateTransaction({\n tokenName: create.name != null ? create.name : undefined,\n tokenSymbol: create.symbol != null ? create.symbol : undefined,\n decimals: create.decimals != null ? create.decimals : undefined,\n initialSupply:\n create.initialSupply != null\n ? create.initialSupply\n : undefined,\n treasuryAccountId:\n create.treasury != null\n ? AccountId._fromProtobuf(create.treasury)\n : undefined,\n adminKey:\n create.adminKey != null\n ? Key._fromProtobufKey(create.adminKey)\n : undefined,\n kycKey:\n create.kycKey != null\n ? Key._fromProtobufKey(create.kycKey)\n : undefined,\n freezeKey:\n create.freezeKey != null\n ? Key._fromProtobufKey(create.freezeKey)\n : undefined,\n pauseKey:\n create.pauseKey != null\n ? Key._fromProtobufKey(create.pauseKey)\n : undefined,\n wipeKey:\n create.wipeKey != null\n ? Key._fromProtobufKey(create.wipeKey)\n : undefined,\n supplyKey:\n create.supplyKey != null\n ? Key._fromProtobufKey(create.supplyKey)\n : undefined,\n feeScheduleKey:\n create.feeScheduleKey != null\n ? Key._fromProtobufKey(create.feeScheduleKey)\n : undefined,\n freezeDefault:\n create.freezeDefault != null\n ? create.freezeDefault\n : undefined,\n autoRenewAccountId:\n create.autoRenewAccount != null\n ? AccountId._fromProtobuf(create.autoRenewAccount)\n : undefined,\n expirationTime:\n create.expiry != null\n ? Timestamp._fromProtobuf(create.expiry)\n : undefined,\n autoRenewPeriod:\n create.autoRenewPeriod != null\n ? Duration._fromProtobuf(create.autoRenewPeriod)\n : undefined,\n tokenMemo: create.memo != null ? create.memo : undefined,\n customFees:\n create.customFees != null\n ? create.customFees.map((fee) => {\n if (fee.fixedFee != null) {\n return CustomFixedFee._fromProtobuf(fee);\n } else if (fee.fractionalFee != null) {\n return CustomFractionalFee._fromProtobuf(fee);\n } else {\n return CustomRoyaltyFee._fromProtobuf(fee);\n }\n })\n : undefined,\n tokenType:\n create.tokenType != null\n ? TokenType._fromCode(create.tokenType)\n : undefined,\n supplyType:\n create.supplyType != null\n ? TokenSupplyType._fromCode(create.supplyType)\n : undefined,\n maxSupply:\n create.maxSupply != null ? create.maxSupply : undefined,\n metadataKey:\n create.metadataKey != null\n ? Key._fromProtobufKey(create.metadataKey)\n : undefined,\n metadata: create.metadata != null ? create.metadata : undefined,\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @returns {?string}\n */\n get tokenName() {\n return this._tokenName;\n }\n\n /**\n * @param {string} name\n * @returns {this}\n */\n setTokenName(name) {\n this._requireNotFrozen();\n this._tokenName = name;\n\n return this;\n }\n\n /**\n * @returns {?string}\n */\n get tokenSymbol() {\n return this._tokenSymbol;\n }\n\n /**\n * @param {string} symbol\n * @returns {this}\n */\n setTokenSymbol(symbol) {\n this._requireNotFrozen();\n this._tokenSymbol = symbol;\n\n return this;\n }\n\n /**\n * @returns {?Long}\n */\n get decimals() {\n return this._decimals;\n }\n\n /**\n * @param {Long | number} decimals\n * @returns {this}\n */\n setDecimals(decimals) {\n this._requireNotFrozen();\n this._decimals =\n decimals instanceof Long ? decimals : Long.fromValue(decimals);\n\n return this;\n }\n\n /**\n * @returns {?Long}\n */\n get initialSupply() {\n return this._initialSupply;\n }\n\n /**\n * @param {Long | number} initialSupply\n * @returns {this}\n */\n setInitialSupply(initialSupply) {\n this._requireNotFrozen();\n this._initialSupply = Long.fromValue(initialSupply);\n\n return this;\n }\n\n /**\n * @returns {?AccountId}\n */\n get treasuryAccountId() {\n return this._treasuryAccountId;\n }\n\n /**\n * @param {AccountId | string} id\n * @returns {this}\n */\n setTreasuryAccountId(id) {\n this._requireNotFrozen();\n this._treasuryAccountId =\n typeof id === \"string\" ? AccountId.fromString(id) : id.clone();\n\n return this;\n }\n\n /**\n * @returns {?Key}\n */\n get adminKey() {\n return this._adminKey;\n }\n\n /**\n * @param {Key} key\n * @returns {this}\n */\n setAdminKey(key) {\n this._requireNotFrozen();\n this._adminKey = key;\n\n return this;\n }\n\n /**\n * @returns {?Key}\n */\n get kycKey() {\n return this._kycKey;\n }\n\n /**\n * @param {Key} key\n * @returns {this}\n */\n setKycKey(key) {\n this._requireNotFrozen();\n this._kycKey = key;\n\n return this;\n }\n\n /**\n * @returns {?Key}\n */\n get freezeKey() {\n return this._freezeKey;\n }\n\n /**\n * @param {Key} key\n * @returns {this}\n */\n setFreezeKey(key) {\n this._requireNotFrozen();\n this._freezeKey = key;\n\n return this;\n }\n\n /**\n * @returns {?Key}\n */\n get pauseKey() {\n return this._pauseKey;\n }\n\n /**\n * @param {Key} key\n * @returns {this}\n */\n setPauseKey(key) {\n this._requireNotFrozen();\n this._pauseKey = key;\n\n return this;\n }\n\n /**\n * @returns {?Key}\n */\n get wipeKey() {\n return this._wipeKey;\n }\n\n /**\n * @param {Key} key\n * @returns {this}\n */\n setWipeKey(key) {\n this._requireNotFrozen();\n this._wipeKey = key;\n\n return this;\n }\n\n /**\n * @returns {?Key}\n */\n get supplyKey() {\n return this._supplyKey;\n }\n\n /**\n * @param {Key} key\n * @returns {this}\n */\n setSupplyKey(key) {\n this._requireNotFrozen();\n this._supplyKey = key;\n\n return this;\n }\n\n /**\n * @returns {?Key}\n */\n get feeScheduleKey() {\n return this._feeScheduleKey;\n }\n\n /**\n * @param {Key} key\n * @returns {this}\n */\n setFeeScheduleKey(key) {\n this._requireNotFrozen();\n this._feeScheduleKey = key;\n\n return this;\n }\n\n /**\n * @returns {?boolean}\n */\n get freezeDefault() {\n return this._freezeDefault;\n }\n\n /**\n * @param {boolean} freeze\n * @returns {this}\n */\n setFreezeDefault(freeze) {\n this._requireNotFrozen();\n this._freezeDefault = freeze;\n\n return this;\n }\n\n /**\n * @returns {?Timestamp}\n */\n get expirationTime() {\n return this._expirationTime;\n }\n\n /**\n * @param {Timestamp | Date} time\n * @returns {this}\n */\n setExpirationTime(time) {\n this._requireNotFrozen();\n this._expirationTime =\n time instanceof Timestamp ? time : Timestamp.fromDate(time);\n\n return this;\n }\n\n /**\n * @returns {?AccountId}\n */\n get autoRenewAccountId() {\n return this._autoRenewAccountId;\n }\n\n /**\n * @param {AccountId | string} id\n * @returns {this}\n */\n setAutoRenewAccountId(id) {\n this._requireNotFrozen();\n this._autoRenewAccountId =\n id instanceof AccountId ? id : AccountId.fromString(id);\n\n return this;\n }\n\n /**\n * @returns {?Duration}\n */\n get autoRenewPeriod() {\n return this._autoRenewPeriod;\n }\n\n /**\n * Set the auto renew period for this token.\n *\n * @param {Duration | Long | number} autoRenewPeriod\n * @returns {this}\n */\n setAutoRenewPeriod(autoRenewPeriod) {\n this._requireNotFrozen();\n this._autoRenewPeriod =\n autoRenewPeriod instanceof Duration\n ? autoRenewPeriod\n : new Duration(autoRenewPeriod);\n\n return this;\n }\n\n /**\n * @returns {?string}\n */\n get tokenMemo() {\n return this._tokenMemo;\n }\n\n /**\n * @param {string} memo\n * @returns {this}\n */\n setTokenMemo(memo) {\n this._requireNotFrozen();\n this._tokenMemo = memo;\n\n return this;\n }\n\n /**\n * @returns {CustomFee[]}\n */\n get customFees() {\n return this._customFees;\n }\n\n /**\n * @param {CustomFee[]} customFees\n * @returns {this}\n */\n setCustomFees(customFees) {\n this._customFees = customFees;\n return this;\n }\n\n /**\n * @returns {?TokenType}\n */\n get tokenType() {\n return this._tokenType;\n }\n\n /**\n * @param {TokenType} tokenType\n * @returns {this}\n */\n setTokenType(tokenType) {\n this._tokenType = tokenType;\n return this;\n }\n\n /**\n * @returns {?TokenSupplyType}\n */\n get supplyType() {\n return this._supplyType;\n }\n\n /**\n * @param {TokenSupplyType} supplyType\n * @returns {this}\n */\n setSupplyType(supplyType) {\n this._supplyType = supplyType;\n return this;\n }\n\n /**\n * @returns {?Long}\n */\n get maxSupply() {\n return this._maxSupply;\n }\n\n /**\n * @param {Long | number} maxSupply\n * @returns {this}\n */\n setMaxSupply(maxSupply) {\n this._maxSupply =\n typeof maxSupply === \"number\"\n ? Long.fromNumber(maxSupply)\n : maxSupply;\n return this;\n }\n\n /**\n * @returns {?Key}\n */\n get metadataKey() {\n return this._metadataKey;\n }\n\n /**\n * @param {Key} key\n * @returns {this}\n */\n setMetadataKey(key) {\n this._requireNotFrozen();\n this._metadataKey = key;\n\n return this;\n }\n\n /**\n * @returns {?Uint8Array}\n */\n get metadata() {\n return this._metadata;\n }\n\n /**\n * @param {Uint8Array} metadata\n * @returns {this}\n */\n setMetadata(metadata) {\n this._requireNotFrozen();\n this._metadata = metadata;\n\n return this;\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (this._treasuryAccountId != null) {\n this._treasuryAccountId.validateChecksum(client);\n }\n\n if (this._autoRenewAccountId != null) {\n this._autoRenewAccountId.validateChecksum(client);\n }\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.token.createToken(request);\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"tokenCreation\";\n }\n\n /**\n * @override\n * @protected\n * @returns {HashgraphProto.proto.ITokenCreateTransactionBody}\n */\n _makeTransactionData() {\n return {\n name: this._tokenName,\n symbol: this._tokenSymbol,\n decimals: this._decimals != null ? this._decimals.toInt() : null,\n initialSupply: this._initialSupply,\n treasury:\n this._treasuryAccountId != null\n ? this._treasuryAccountId._toProtobuf()\n : null,\n adminKey:\n this._adminKey != null ? this._adminKey._toProtobufKey() : null,\n kycKey: this._kycKey != null ? this._kycKey._toProtobufKey() : null,\n freezeKey:\n this._freezeKey != null\n ? this._freezeKey._toProtobufKey()\n : null,\n pauseKey:\n this._pauseKey != null ? this._pauseKey._toProtobufKey() : null,\n wipeKey:\n this._wipeKey != null ? this._wipeKey._toProtobufKey() : null,\n supplyKey:\n this._supplyKey != null\n ? this._supplyKey._toProtobufKey()\n : null,\n feeScheduleKey:\n this._feeScheduleKey != null\n ? this._feeScheduleKey._toProtobufKey()\n : null,\n freezeDefault: this._freezeDefault,\n autoRenewAccount:\n this._autoRenewAccountId != null\n ? this._autoRenewAccountId._toProtobuf()\n : null,\n expiry:\n this._expirationTime != null\n ? this._expirationTime._toProtobuf()\n : null,\n autoRenewPeriod:\n this._autoRenewPeriod != null\n ? this._autoRenewPeriod._toProtobuf()\n : null,\n memo: this._tokenMemo,\n customFees: this.customFees.map((fee) => fee._toProtobuf()),\n tokenType: this._tokenType != null ? this._tokenType._code : null,\n supplyType:\n this._supplyType != null ? this._supplyType._code : null,\n maxSupply: this.maxSupply,\n metadataKey:\n this._metadataKey != null\n ? this._metadataKey._toProtobufKey()\n : null,\n metadata: this._metadata != null ? this._metadata : undefined,\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `TokenCreateTransaction:${timestamp.toString()}`;\n }\n}\n\nTRANSACTION_REGISTRY.set(\n \"tokenCreation\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n TokenCreateTransaction._fromProtobuf,\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport TokenId from \"./TokenId.js\";\nimport Transaction, {\n TRANSACTION_REGISTRY,\n} from \"../transaction/Transaction.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HashgraphProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HashgraphProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HashgraphProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} HashgraphProto.proto.ITransactionResponse\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenDeleteTransactionBody} HashgraphProto.proto.ITokenDeleteTransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenID} HashgraphProto.proto.ITokenID\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../account/AccountId.js\").default} AccountId\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n */\n\n/**\n * Delete a new Hedera™ crypto-currency token.\n */\nexport default class TokenDeleteTransaction extends Transaction {\n /**\n * @param {object} [props]\n * @param {TokenId | string} [props.tokenId]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {?TokenId}\n */\n this._tokenId = null;\n\n if (props.tokenId != null) {\n this.setTokenId(props.tokenId);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransaction[]} transactions\n * @param {HashgraphProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HashgraphProto.proto.ITransactionBody[]} bodies\n * @returns {TokenDeleteTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const deleteToken =\n /** @type {HashgraphProto.proto.ITokenDeleteTransactionBody} */ (\n body.tokenDeletion\n );\n\n return Transaction._fromProtobufTransactions(\n new TokenDeleteTransaction({\n tokenId:\n deleteToken.token != null\n ? TokenId._fromProtobuf(deleteToken.token)\n : undefined,\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @returns {?TokenId}\n */\n get tokenId() {\n return this._tokenId;\n }\n\n /**\n * @param {TokenId | string} tokenId\n * @returns {this}\n */\n setTokenId(tokenId) {\n this._requireNotFrozen();\n this._tokenId =\n typeof tokenId === \"string\"\n ? TokenId.fromString(tokenId)\n : tokenId.clone();\n\n return this;\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (this._tokenId != null) {\n this._tokenId.validateChecksum(client);\n }\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.token.deleteToken(request);\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"tokenDeletion\";\n }\n\n /**\n * @override\n * @protected\n * @returns {HashgraphProto.proto.ITokenDeleteTransactionBody}\n */\n _makeTransactionData() {\n return {\n token: this._tokenId != null ? this._tokenId._toProtobuf() : null,\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `TokenDeleteTransaction:${timestamp.toString()}`;\n }\n}\n\nTRANSACTION_REGISTRY.set(\n \"tokenDeletion\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n TokenDeleteTransaction._fromProtobuf,\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport TokenId from \"./TokenId.js\";\nimport Transaction, {\n TRANSACTION_REGISTRY,\n} from \"../transaction/Transaction.js\";\nimport CustomFixedFee from \"./CustomFixedFee.js\";\nimport CustomFractionalFee from \"./CustomFractionalFee.js\";\nimport CustomRoyaltyFee from \"./CustomRoyaltyFee.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HashgraphProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HashgraphProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HashgraphProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} HashgraphProto.proto.ITransactionResponse\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenFeeScheduleUpdateTransactionBody} HashgraphProto.proto.ITokenFeeScheduleUpdateTransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenID} HashgraphProto.proto.ITokenID\n */\n\n/**\n * @typedef {import(\"bignumber.js\").default} BigNumber\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n * @typedef {import(\"./CustomFee.js\").default} CustomFee\n * @typedef {import(\"../account/AccountId.js\").default} AccountId\n */\n\n/**\n * FeeScheduleUpdate a new Hedera™ crypto-currency token.\n */\nexport default class TokenFeeScheduleUpdateTransaction extends Transaction {\n /**\n * @param {object} [props]\n * @param {TokenId | string} [props.tokenId]\n * @param {CustomFee[]} [props.customFees]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {?TokenId}\n */\n this._tokenId = null;\n\n /**\n * @private\n * @type {CustomFee[]}\n */\n this._customFees = [];\n\n if (props.tokenId != null) {\n this.setTokenId(props.tokenId);\n }\n\n if (props.customFees != null) {\n this.setCustomFees(props.customFees);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransaction[]} transactions\n * @param {HashgraphProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HashgraphProto.proto.ITransactionBody[]} bodies\n * @returns {TokenFeeScheduleUpdateTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const feeScheduleUpdate =\n /** @type {HashgraphProto.proto.ITokenFeeScheduleUpdateTransactionBody} */ (\n body.tokenFeeScheduleUpdate\n );\n\n return Transaction._fromProtobufTransactions(\n new TokenFeeScheduleUpdateTransaction({\n tokenId:\n feeScheduleUpdate.tokenId != null\n ? TokenId._fromProtobuf(feeScheduleUpdate.tokenId)\n : undefined,\n customFees:\n feeScheduleUpdate.customFees != null\n ? feeScheduleUpdate.customFees.map((fee) => {\n if (fee.fixedFee != null) {\n return CustomFixedFee._fromProtobuf(fee);\n } else if (fee.fractionalFee != null) {\n return CustomFractionalFee._fromProtobuf(fee);\n } else {\n return CustomRoyaltyFee._fromProtobuf(fee);\n }\n })\n : undefined,\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @returns {?TokenId}\n */\n get tokenId() {\n return this._tokenId;\n }\n\n /**\n * @param {TokenId | string} tokenId\n * @returns {this}\n */\n setTokenId(tokenId) {\n this._requireNotFrozen();\n this._tokenId =\n typeof tokenId === \"string\"\n ? TokenId.fromString(tokenId)\n : TokenId._fromProtobuf(tokenId._toProtobuf());\n\n return this;\n }\n\n /**\n * @returns {CustomFee[]}\n */\n get customFees() {\n return this._customFees;\n }\n\n /**\n * @param {CustomFee[]} fees\n * @returns {this}\n */\n setCustomFees(fees) {\n this._requireNotFrozen();\n this._customFees = fees;\n\n return this;\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.token.updateTokenFeeSchedule(request);\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"tokenFeeScheduleUpdate\";\n }\n\n /**\n * @override\n * @protected\n * @returns {HashgraphProto.proto.ITokenFeeScheduleUpdateTransactionBody}\n */\n _makeTransactionData() {\n return {\n tokenId: this._tokenId != null ? this._tokenId._toProtobuf() : null,\n customFees: this._customFees.map((fee) => fee._toProtobuf()),\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `TokenFeeScheduleUpdateTransaction:${timestamp.toString()}`;\n }\n}\n\nTRANSACTION_REGISTRY.set(\n \"tokenFeeScheduleUpdate\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n TokenFeeScheduleUpdateTransaction._fromProtobuf,\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport TokenId from \"./TokenId.js\";\nimport AccountId from \"../account/AccountId.js\";\nimport Transaction, {\n TRANSACTION_REGISTRY,\n} from \"../transaction/Transaction.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HashgraphProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HashgraphProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HashgraphProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} HashgraphProto.proto.ITransactionResponse\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenFreezeAccountTransactionBody} HashgraphProto.proto.ITokenFreezeAccountTransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenID} HashgraphProto.proto.ITokenID\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n */\n\n/**\n * Freeze a new Hedera™ crypto-currency token.\n */\nexport default class TokenFreezeTransaction extends Transaction {\n /**\n * @param {object} [props]\n * @param {TokenId | string} [props.tokenId]\n * @param {AccountId | string} [props.accountId]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {?TokenId}\n */\n this._tokenId = null;\n\n /**\n * @private\n * @type {?AccountId}\n */\n this._accountId = null;\n\n if (props.tokenId != null) {\n this.setTokenId(props.tokenId);\n }\n\n if (props.accountId != null) {\n this.setAccountId(props.accountId);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransaction[]} transactions\n * @param {HashgraphProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HashgraphProto.proto.ITransactionBody[]} bodies\n * @returns {TokenFreezeTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const freezeToken =\n /** @type {HashgraphProto.proto.ITokenFreezeAccountTransactionBody} */ (\n body.tokenFreeze\n );\n\n return Transaction._fromProtobufTransactions(\n new TokenFreezeTransaction({\n tokenId:\n freezeToken.token != null\n ? TokenId._fromProtobuf(freezeToken.token)\n : undefined,\n accountId:\n freezeToken.account != null\n ? AccountId._fromProtobuf(freezeToken.account)\n : undefined,\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @returns {?TokenId}\n */\n get tokenId() {\n return this._tokenId;\n }\n\n /**\n * @param {TokenId | string} tokenId\n * @returns {this}\n */\n setTokenId(tokenId) {\n this._requireNotFrozen();\n this._tokenId =\n typeof tokenId === \"string\"\n ? TokenId.fromString(tokenId)\n : tokenId.clone();\n\n return this;\n }\n\n /**\n * @returns {?AccountId}\n */\n get accountId() {\n return this._accountId;\n }\n\n /**\n * @param {AccountId | string} accountId\n * @returns {this}\n */\n setAccountId(accountId) {\n this._requireNotFrozen();\n this._accountId =\n typeof accountId === \"string\"\n ? AccountId.fromString(accountId)\n : accountId.clone();\n\n return this;\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (this._tokenId != null) {\n this._tokenId.validateChecksum(client);\n }\n\n if (this._accountId != null) {\n this._accountId.validateChecksum(client);\n }\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.token.freezeTokenAccount(request);\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"tokenFreeze\";\n }\n\n /**\n * @override\n * @protected\n * @returns {HashgraphProto.proto.ITokenFreezeAccountTransactionBody}\n */\n _makeTransactionData() {\n return {\n token: this._tokenId != null ? this._tokenId._toProtobuf() : null,\n account:\n this._accountId != null ? this._accountId._toProtobuf() : null,\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `TokenFreezeTransaction:${timestamp.toString()}`;\n }\n}\n\nTRANSACTION_REGISTRY.set(\n \"tokenFreeze\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n TokenFreezeTransaction._fromProtobuf,\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport TokenId from \"./TokenId.js\";\nimport AccountId from \"../account/AccountId.js\";\nimport Transaction, {\n TRANSACTION_REGISTRY,\n} from \"../transaction/Transaction.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HashgraphProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HashgraphProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HashgraphProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} HashgraphProto.proto.ITransactionResponse\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenGrantKycTransactionBody} HashgraphProto.proto.ITokenGrantKycTransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenID} HashgraphProto.proto.ITokenID\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n */\n\n/**\n * GrantKyc a new Hedera™ crypto-currency token.\n */\nexport default class TokenGrantKycTransaction extends Transaction {\n /**\n * @param {object} [props]\n * @param {TokenId | string} [props.tokenId]\n * @param {AccountId | string} [props.accountId]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {?TokenId}\n */\n this._tokenId = null;\n\n /**\n * @private\n * @type {?AccountId}\n */\n this._accountId = null;\n\n if (props.tokenId != null) {\n this.setTokenId(props.tokenId);\n }\n\n if (props.accountId != null) {\n this.setAccountId(props.accountId);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransaction[]} transactions\n * @param {HashgraphProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HashgraphProto.proto.ITransactionBody[]} bodies\n * @returns {TokenGrantKycTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const grantKycToken =\n /** @type {HashgraphProto.proto.ITokenGrantKycTransactionBody} */ (\n body.tokenGrantKyc\n );\n\n return Transaction._fromProtobufTransactions(\n new TokenGrantKycTransaction({\n tokenId:\n grantKycToken.token != null\n ? TokenId._fromProtobuf(grantKycToken.token)\n : undefined,\n accountId:\n grantKycToken.account != null\n ? AccountId._fromProtobuf(grantKycToken.account)\n : undefined,\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @returns {?TokenId}\n */\n get tokenId() {\n return this._tokenId;\n }\n\n /**\n * @param {TokenId | string} tokenId\n * @returns {this}\n */\n setTokenId(tokenId) {\n this._requireNotFrozen();\n this._tokenId =\n typeof tokenId === \"string\"\n ? TokenId.fromString(tokenId)\n : tokenId.clone();\n\n return this;\n }\n\n /**\n * @returns {?AccountId}\n */\n get accountId() {\n return this._accountId;\n }\n\n /**\n * @param {AccountId | string} accountId\n * @returns {this}\n */\n setAccountId(accountId) {\n this._requireNotFrozen();\n this._accountId =\n typeof accountId === \"string\"\n ? AccountId.fromString(accountId)\n : accountId.clone();\n\n return this;\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (this._tokenId != null) {\n this._tokenId.validateChecksum(client);\n }\n\n if (this._accountId != null) {\n this._accountId.validateChecksum(client);\n }\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.token.grantKycToTokenAccount(request);\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"tokenGrantKyc\";\n }\n\n /**\n * @override\n * @protected\n * @returns {HashgraphProto.proto.ITokenGrantKycTransactionBody}\n */\n _makeTransactionData() {\n return {\n token: this._tokenId != null ? this._tokenId._toProtobuf() : null,\n account:\n this._accountId != null ? this._accountId._toProtobuf() : null,\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `TokenGrantKycTransaction:${timestamp.toString()}`;\n }\n}\n\nTRANSACTION_REGISTRY.set(\n \"tokenGrantKyc\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n TokenGrantKycTransaction._fromProtobuf,\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport TokenId from \"./TokenId.js\";\nimport AccountId from \"../account/AccountId.js\";\nimport Duration from \"../Duration.js\";\nimport Timestamp from \"../Timestamp.js\";\nimport Long from \"long\";\nimport * as HashgraphProto from \"@hashgraph/proto\";\nimport TokenType from \"./TokenType.js\";\nimport TokenSupplyType from \"./TokenSupplyType.js\";\nimport CustomFixedFee from \"./CustomFixedFee.js\";\nimport CustomFractionalFee from \"./CustomFractionalFee.js\";\nimport CustomRoyaltyFee from \"./CustomRoyaltyFee.js\";\nimport Key from \"../Key.js\";\nimport LedgerId from \"../LedgerId.js\";\n\n/**\n * @typedef {import(\"./CustomFee.js\").default} CustomFee\n */\n\n/**\n * Response when the client sends the node TokenGetInfoQuery.\n */\nexport default class TokenInfo {\n /**\n * @private\n * @param {object} props\n * @param {TokenId} props.tokenId;\n * @param {string} props.name;\n * @param {string} props.symbol;\n * @param {number} props.decimals;\n * @param {Long} props.totalSupply;\n * @param {AccountId | null} props.treasuryAccountId;\n * @param {Key | null} props.adminKey;\n * @param {Key | null} props.kycKey;\n * @param {Key | null} props.freezeKey;\n * @param {Key | null} props.pauseKey;\n * @param {Key | null} props.wipeKey;\n * @param {Key | null} props.supplyKey;\n * @param {Key | null} props.feeScheduleKey;\n * @param {boolean | null} props.defaultFreezeStatus;\n * @param {boolean | null} props.defaultKycStatus;\n * @param {boolean | null} props.pauseStatus;\n * @param {boolean} props.isDeleted;\n * @param {AccountId | null} props.autoRenewAccountId;\n * @param {Duration | null} props.autoRenewPeriod;\n * @param {Timestamp | null} props.expirationTime;\n * @param {string} props.tokenMemo;\n * @param {CustomFee[]} props.customFees;\n * @param {TokenType | null} props.tokenType;\n * @param {TokenSupplyType | null} props.supplyType;\n * @param {Long | null} props.maxSupply;\n * @param {LedgerId|null} props.ledgerId;\n * @param {Key | null} props.metadataKey;\n * @param {Uint8Array | null} props.metadata;\n */\n constructor(props) {\n /**\n * ID of the token instance\n *\n * @readonly\n */\n this.tokenId = props.tokenId;\n\n /**\n * The name of the token. It is a string of ASCII only characters\n *\n * @readonly\n */\n this.name = props.name;\n\n /**\n * The symbol of the token. It is a UTF-8 capitalized alphabetical string\n *\n * @readonly\n */\n this.symbol = props.symbol;\n\n /**\n * The number of decimal places a token is divisible by\n *\n * @readonly\n */\n this.decimals = props.decimals;\n\n /**\n * The total supply of tokens that are currently in circulation\n *\n * @readonly\n */\n this.totalSupply = props.totalSupply;\n\n /**\n * The ID of the account which is set as treasuryAccountId\n *\n * @readonly\n */\n this.treasuryAccountId = props.treasuryAccountId;\n\n /**\n * The key which can perform update/delete operations on the token. If empty, the token can be perceived as\n * immutable (not being able to be updated/deleted)\n *\n * @readonly\n */\n this.adminKey = props.adminKey;\n\n /**\n * The key which can grant or revoke KYC of an account for the token's transactions. If empty, KYC is not required,\n * and KYC grant or revoke operations are not possible.\n *\n * @readonly\n */\n this.kycKey = props.kycKey;\n\n /**\n * The key which can freeze or unfreeze an account for token transactions. If empty, freezing is not possible\n *\n * @readonly\n */\n this.freezeKey = props.freezeKey;\n\n /**\n * The Key which can pause and unpause the Token.\n *\n * @readonly\n */\n this.pauseKey = props.pauseKey;\n\n /**\n * The key which can wipe token balance of an account. If empty, wipe is not possible\n *\n * @readonly\n */\n this.wipeKey = props.wipeKey;\n\n /**\n * The key which can change the supply of a token. The key is used to sign Token Mint/Burn operations\n *\n * @readonly\n */\n this.supplyKey = props.supplyKey;\n\n this.feeScheduleKey = props.feeScheduleKey;\n\n /**\n * The default Freeze status (not applicable = null, frozen = false, or unfrozen = true) of Hedera accounts relative to this token.\n * FreezeNotApplicable is returned if Token Freeze Key is empty. Frozen is returned if Token Freeze Key is set and\n * defaultFreeze is set to true. Unfrozen is returned if Token Freeze Key is set and defaultFreeze is set to false\n * FreezeNotApplicable = null;\n * Frozen = true;\n * Unfrozen = false;\n *\n * @readonly\n */\n this.defaultFreezeStatus = props.defaultFreezeStatus;\n\n /**\n * The default KYC status (KycNotApplicable or Revoked) of Hedera accounts relative to this token. KycNotApplicable\n * is returned if KYC key is not set, otherwise Revoked\n * KycNotApplicable = null;\n * Granted = true;\n * Revoked = false;\n *\n * @readonly\n */\n this.defaultKycStatus = props.defaultKycStatus;\n\n /**\n * The default pause status of Hedera accounts relative to this token.\n * PauseNotApplicable is returned if pauseKey is not set\n * PauseNotApplicable = null;\n * Paused = true;\n * Unpaused = false;\n *\n * @readonly\n */\n this.pauseStatus = props.pauseStatus;\n\n /**\n * Specifies whether the token was deleted or not\n *\n * @readonly\n */\n this.isDeleted = props.isDeleted;\n\n /**\n * An account which will be automatically charged to renew the token's expiration, at autoRenewPeriod interval\n *\n * @readonly\n */\n this.autoRenewAccountId = props.autoRenewAccountId;\n\n /**\n * The interval at which the auto-renew account will be charged to extend the token's expiry\n *\n * @readonly\n */\n this.autoRenewPeriod = props.autoRenewPeriod;\n\n /**\n * The epoch second at which the token expire: will; if an auto-renew account and period are specified,\n * this is coerced to the current epoch second plus the autoRenewPeriod\n *\n * @readonly\n */\n this.expirationTime = props.expirationTime;\n\n /**\n * The memo associated with the token.\n *\n * @readonly\n */\n this.tokenMemo = props.tokenMemo;\n\n this.customFees = props.customFees;\n\n this.tokenType = props.tokenType;\n\n this.supplyType = props.supplyType;\n\n this.maxSupply = props.maxSupply;\n\n this.ledgerId = props.ledgerId;\n\n /**\n * @description The key which can change the metadata of a token (token definition and individual NFTs).\n *\n * @readonly\n */\n this.metadataKey = props.metadataKey;\n\n /**\n * @description Metadata of the created token definition.\n * @readonly\n */\n this.metadata = props.metadata;\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITokenInfo} info\n * @returns {TokenInfo}\n */\n static _fromProtobuf(info) {\n const defaultFreezeStatus =\n /** @type {HashgraphProto.proto.TokenFreezeStatus} */ (\n info.defaultFreezeStatus\n );\n const defaultKycStatus =\n /** @type {HashgraphProto.proto.TokenKycStatus} */ (\n info.defaultKycStatus\n );\n const pauseStatus =\n /**@type {HashgraphProto.proto.TokenPauseStatus} */ (\n info.pauseStatus\n );\n\n const autoRenewAccountId =\n info.autoRenewAccount != null\n ? AccountId._fromProtobuf(info.autoRenewAccount)\n : new AccountId(0);\n\n return new TokenInfo({\n tokenId: TokenId._fromProtobuf(\n /** @type {HashgraphProto.proto.ITokenID} */ (info.tokenId),\n ),\n name: /** @type {string} */ (info.name),\n symbol: /** @type {string} */ (info.symbol),\n decimals: /** @type {number} */ (info.decimals),\n totalSupply: Long.fromValue(/** @type {Long} */ (info.totalSupply)),\n treasuryAccountId:\n info.treasury != null\n ? AccountId._fromProtobuf(\n /** @type {HashgraphProto.proto.IAccountID} */ (\n info.treasury\n ),\n )\n : null,\n adminKey:\n info.adminKey != null\n ? Key._fromProtobufKey(info.adminKey)\n : null,\n kycKey:\n info.kycKey != null ? Key._fromProtobufKey(info.kycKey) : null,\n freezeKey:\n info.freezeKey != null\n ? Key._fromProtobufKey(info.freezeKey)\n : null,\n pauseKey:\n info.pauseKey != null\n ? Key._fromProtobufKey(info.pauseKey)\n : null,\n wipeKey:\n info.wipeKey != null\n ? Key._fromProtobufKey(info.wipeKey)\n : null,\n supplyKey:\n info.supplyKey != null\n ? Key._fromProtobufKey(info.supplyKey)\n : null,\n feeScheduleKey:\n info.feeScheduleKey != null\n ? Key._fromProtobufKey(info.feeScheduleKey)\n : null,\n defaultFreezeStatus:\n defaultFreezeStatus === 0 ? null : defaultFreezeStatus == 1,\n defaultKycStatus:\n defaultKycStatus === 0 ? null : defaultKycStatus == 1,\n pauseStatus: pauseStatus === 0 ? null : pauseStatus == 1,\n isDeleted: /** @type {boolean} */ (info.deleted),\n autoRenewAccountId: !(\n autoRenewAccountId.shard.toInt() == 0 &&\n autoRenewAccountId.realm.toInt() == 0 &&\n autoRenewAccountId.num.toInt() == 0\n )\n ? autoRenewAccountId\n : null,\n autoRenewPeriod:\n info.autoRenewPeriod != null\n ? Duration._fromProtobuf(\n /** @type {HashgraphProto.proto.IDuration} */ (\n info.autoRenewPeriod\n ),\n )\n : null,\n expirationTime:\n info.expiry != null\n ? Timestamp._fromProtobuf(\n /** @type {HashgraphProto.proto.ITimestamp} */ (\n info.expiry\n ),\n )\n : null,\n tokenMemo: info.memo != null ? info.memo : \"\",\n customFees:\n info.customFees != null\n ? info.customFees.map((fee) => {\n if (fee.fixedFee != null) {\n return CustomFixedFee._fromProtobuf(fee);\n } else if (fee.fractionalFee != null) {\n return CustomFractionalFee._fromProtobuf(fee);\n } else {\n return CustomRoyaltyFee._fromProtobuf(fee);\n }\n })\n : [],\n tokenType:\n info.tokenType != null\n ? TokenType._fromCode(info.tokenType)\n : null,\n supplyType:\n info.supplyType != null\n ? TokenSupplyType._fromCode(info.supplyType)\n : null,\n maxSupply: info.maxSupply != null ? info.maxSupply : null,\n ledgerId:\n info.ledgerId != null\n ? LedgerId.fromBytes(info.ledgerId)\n : null,\n metadataKey:\n info.metadataKey != null\n ? Key._fromProtobufKey(info.metadataKey)\n : null,\n metadata: info.metadata != null ? info.metadata : new Uint8Array(),\n });\n }\n\n /**\n * @returns {HashgraphProto.proto.ITokenInfo}\n */\n _toProtobuf() {\n return {\n tokenId: this.tokenId._toProtobuf(),\n name: this.name,\n symbol: this.symbol,\n decimals: this.decimals,\n totalSupply: this.totalSupply,\n treasury:\n this.treasuryAccountId != null\n ? this.treasuryAccountId._toProtobuf()\n : null,\n adminKey:\n this.adminKey != null ? this.adminKey._toProtobufKey() : null,\n kycKey: this.kycKey != null ? this.kycKey._toProtobufKey() : null,\n freezeKey:\n this.freezeKey != null ? this.freezeKey._toProtobufKey() : null,\n pauseKey:\n this.pauseKey != null ? this.pauseKey._toProtobufKey() : null,\n wipeKey:\n this.wipeKey != null ? this.wipeKey._toProtobufKey() : null,\n supplyKey:\n this.supplyKey != null ? this.supplyKey._toProtobufKey() : null,\n feeScheduleKey:\n this.feeScheduleKey != null\n ? this.feeScheduleKey._toProtobufKey()\n : null,\n defaultFreezeStatus:\n this.defaultFreezeStatus == null\n ? 0\n : this.defaultFreezeStatus\n ? 1\n : 2,\n defaultKycStatus:\n this.defaultKycStatus == null\n ? 0\n : this.defaultKycStatus\n ? 1\n : 2,\n pauseStatus:\n this.pauseStatus == null ? 0 : this.pauseStatus ? 1 : 2,\n deleted: this.isDeleted,\n autoRenewAccount:\n this.autoRenewAccountId != null\n ? this.autoRenewAccountId._toProtobuf()\n : undefined,\n autoRenewPeriod:\n this.autoRenewPeriod != null\n ? this.autoRenewPeriod._toProtobuf()\n : null,\n expiry:\n this.expirationTime != null\n ? this.expirationTime._toProtobuf()\n : null,\n memo: this.tokenMemo,\n customFees: this.customFees.map((fee) => fee._toProtobuf()),\n tokenType: this.tokenType != null ? this.tokenType._code : null,\n supplyType: this.supplyType != null ? this.supplyType._code : null,\n maxSupply: this.maxSupply,\n ledgerId: this.ledgerId != null ? this.ledgerId.toBytes() : null,\n metadataKey:\n this.metadataKey != null\n ? this.metadataKey._toProtobufKey()\n : null,\n metadata: this.metadata != null ? this.metadata : null,\n };\n }\n\n /**\n * @param {Uint8Array} bytes\n * @returns {TokenInfo}\n */\n static fromBytes(bytes) {\n return TokenInfo._fromProtobuf(\n HashgraphProto.proto.TokenInfo.decode(bytes),\n );\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytes() {\n return HashgraphProto.proto.TokenInfo.encode(\n this._toProtobuf(),\n ).finish();\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Query, { QUERY_REGISTRY } from \"../query/Query.js\";\nimport TokenId from \"./TokenId.js\";\nimport TokenInfo from \"./TokenInfo.js\";\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport Hbar from \"../Hbar.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.IQuery} HashgraphProto.proto.IQuery\n * @typedef {import(\"@hashgraph/proto\").proto.IQueryHeader} HashgraphProto.proto.IQueryHeader\n * @typedef {import(\"@hashgraph/proto\").proto.IResponse} HashgraphProto.proto.IResponse\n * @typedef {import(\"@hashgraph/proto\").proto.IResponseHeader} HashgraphProto.proto.IResponseHeader\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenInfo} HashgraphProto.proto.ITokenInfo\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenGetInfoQuery} HashgraphProto.proto.ITokenGetInfoQuery\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenGetInfoResponse} HashgraphProto.proto.ITokenGetInfoResponse\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../account/AccountId.js\").default} AccountId\n */\n\n/**\n * @augments {Query}\n */\nexport default class TokenInfoQuery extends Query {\n /**\n * @param {object} properties\n * @param {TokenId | string} [properties.tokenId]\n */\n constructor(properties = {}) {\n super();\n\n /**\n * @private\n * @type {?TokenId}\n */\n this._tokenId = null;\n if (properties.tokenId != null) {\n this.setTokenId(properties.tokenId);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.IQuery} query\n * @returns {TokenInfoQuery}\n */\n static _fromProtobuf(query) {\n const info = /** @type {HashgraphProto.proto.ITokenGetInfoQuery} */ (\n query.tokenGetInfo\n );\n\n return new TokenInfoQuery({\n tokenId:\n info.token != null\n ? TokenId._fromProtobuf(info.token)\n : undefined,\n });\n }\n\n /**\n * @returns {?TokenId}\n */\n get tokenId() {\n return this._tokenId;\n }\n\n /**\n * Set the token ID for which the info is being requested.\n *\n * @param {TokenId | string} tokenId\n * @returns {TokenInfoQuery}\n */\n setTokenId(tokenId) {\n this._tokenId =\n typeof tokenId === \"string\"\n ? TokenId.fromString(tokenId)\n : tokenId.clone();\n\n return this;\n }\n\n /**\n * @override\n * @param {import(\"../client/Client.js\").default} client\n * @returns {Promise}\n */\n async getCost(client) {\n return super.getCost(client);\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (this._tokenId != null) {\n this._tokenId.validateChecksum(client);\n }\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.IQuery} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.token.getTokenInfo(request);\n }\n\n /**\n * @override\n * @internal\n * @param {HashgraphProto.proto.IResponse} response\n * @returns {HashgraphProto.proto.IResponseHeader}\n */\n _mapResponseHeader(response) {\n const tokenGetInfo =\n /** @type {HashgraphProto.proto.ITokenGetInfoResponse} */ (\n response.tokenGetInfo\n );\n return /** @type {HashgraphProto.proto.IResponseHeader} */ (\n tokenGetInfo.header\n );\n }\n\n /**\n * @override\n * @internal\n * @param {HashgraphProto.proto.IResponse} response\n * @param {AccountId} nodeAccountId\n * @param {HashgraphProto.proto.IQuery} request\n * @returns {Promise}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _mapResponse(response, nodeAccountId, request) {\n const info = /** @type {HashgraphProto.proto.ITokenGetInfoResponse} */ (\n response.tokenGetInfo\n );\n\n return Promise.resolve(\n TokenInfo._fromProtobuf(\n /** @type {HashgraphProto.proto.ITokenInfo} */ (info.tokenInfo),\n ),\n );\n }\n\n /**\n * @override\n * @internal\n * @param {HashgraphProto.proto.IQueryHeader} header\n * @returns {HashgraphProto.proto.IQuery}\n */\n _onMakeRequest(header) {\n return {\n tokenGetInfo: {\n header,\n token:\n this._tokenId != null ? this._tokenId._toProtobuf() : null,\n },\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp =\n this._paymentTransactionId != null &&\n this._paymentTransactionId.validStart != null\n ? this._paymentTransactionId.validStart\n : this._timestamp;\n\n return `TokenInfoQuery:${timestamp.toString()}`;\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/unbound-method\nQUERY_REGISTRY.set(\"tokenGetInfo\", TokenInfoQuery._fromProtobuf);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport TokenId from \"./TokenId.js\";\nimport Transaction, {\n TRANSACTION_REGISTRY,\n} from \"../transaction/Transaction.js\";\nimport Long from \"long\";\nimport * as hex from \"../encoding/hex.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HashgraphProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HashgraphProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HashgraphProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} HashgraphProto.proto.ITransactionResponse\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenMintTransactionBody} HashgraphProto.proto.ITokenMintTransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenID} HashgraphProto.proto.ITokenID\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../account/AccountId.js\").default} AccountId\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n */\n\n/**\n * Mint a new Hedera™ crypto-currency token.\n */\nexport default class TokenMintTransaction extends Transaction {\n /**\n * @param {object} [props]\n * @param {TokenId | string} [props.tokenId]\n * @param {Long | number} [props.amount]\n * @param {Uint8Array[]} [props.metadata]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {?TokenId}\n */\n this._tokenId = null;\n\n /**\n * @private\n * @type {?Long}\n */\n this._amount = null;\n\n /**\n * @private\n * @type {Uint8Array[]}\n */\n this._metadata = [];\n\n if (props.tokenId != null) {\n this.setTokenId(props.tokenId);\n }\n\n if (props.amount != null) {\n this.setAmount(props.amount);\n }\n\n if (props.metadata != null) {\n this.setMetadata(props.metadata);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransaction[]} transactions\n * @param {HashgraphProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HashgraphProto.proto.ITransactionBody[]} bodies\n * @returns {TokenMintTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const mintToken =\n /** @type {HashgraphProto.proto.ITokenMintTransactionBody} */ (\n body.tokenMint\n );\n\n return Transaction._fromProtobufTransactions(\n new TokenMintTransaction({\n tokenId:\n mintToken.token != null\n ? TokenId._fromProtobuf(mintToken.token)\n : undefined,\n amount: mintToken.amount != null ? mintToken.amount : undefined,\n metadata:\n mintToken.metadata != null ? mintToken.metadata : undefined,\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @returns {?TokenId}\n */\n get tokenId() {\n return this._tokenId;\n }\n\n /**\n * @param {TokenId | string} tokenId\n * @returns {this}\n */\n setTokenId(tokenId) {\n this._requireNotFrozen();\n this._tokenId =\n typeof tokenId === \"string\"\n ? TokenId.fromString(tokenId)\n : tokenId.clone();\n\n return this;\n }\n\n /**\n * @returns {?Long}\n */\n get amount() {\n return this._amount;\n }\n\n /**\n * @param {Long | number} amount\n * @returns {this}\n */\n setAmount(amount) {\n this._requireNotFrozen();\n this._amount = amount instanceof Long ? amount : Long.fromValue(amount);\n\n return this;\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (this._tokenId != null) {\n this._tokenId.validateChecksum(client);\n }\n }\n\n /**\n * @returns {Uint8Array[]}\n */\n get metadata() {\n return this._metadata;\n }\n\n /**\n * @param {Uint8Array | string} metadata\n * @returns {this}\n */\n addMetadata(metadata) {\n this._requireNotFrozen();\n\n if (typeof metadata === \"string\") {\n console.warn(\n \"Passing a `string` for token metadata is considered a bug, and has been removed. Please provide a `Uint8Array` instead.\",\n );\n }\n\n this._metadata.push(\n typeof metadata === \"string\" ? hex.decode(metadata) : metadata,\n );\n\n return this;\n }\n\n /**\n * @param {Uint8Array[]} metadata\n * @returns {this}\n */\n setMetadata(metadata) {\n this._requireNotFrozen();\n\n for (const data of metadata) {\n if (typeof data === \"string\") {\n console.warn(\n \"Passing a `string` for token metadata is considered a bug, and has been removed. Please provide a `Uint8Array` instead.\",\n );\n break;\n }\n }\n\n this._metadata = metadata.map((data) =>\n typeof data === \"string\" ? hex.decode(data) : data,\n );\n\n return this;\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.token.mintToken(request);\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"tokenMint\";\n }\n\n /**\n * @override\n * @protected\n * @returns {HashgraphProto.proto.ITokenMintTransactionBody}\n */\n _makeTransactionData() {\n return {\n amount: this._amount,\n token: this._tokenId != null ? this._tokenId._toProtobuf() : null,\n metadata: this._metadata,\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `TokenMintTransaction:${timestamp.toString()}`;\n }\n}\n\nTRANSACTION_REGISTRY.set(\n \"tokenMint\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n TokenMintTransaction._fromProtobuf,\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport NftId from \"./NftId.js\";\nimport AccountId from \"../account/AccountId.js\";\nimport Timestamp from \"../Timestamp.js\";\nimport * as hex from \"../encoding/hex.js\";\nimport LedgerId from \"../LedgerId.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.TokenFreezeStatus} HashgraphProto.proto.TokenFreezeStatus\n * @typedef {import(\"@hashgraph/proto\").proto.TokenKycStatus} HashgraphProto.proto.TokenKycStatus\n * @typedef {import(\"@hashgraph/proto\").proto.TokenPauseStatus} HashgraphProto.proto.TokenPauseStatus\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenNftInfo} HashgraphProto.proto.ITokenNftInfo\n * @typedef {import(\"@hashgraph/proto\").proto.INftID} HashgraphProto.proto.INftID\n * @typedef {import(\"@hashgraph/proto\").proto.ITimestamp} HashgraphProto.proto.ITimestamp\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenID} HashgraphProto.proto.ITokenID\n * @typedef {import(\"@hashgraph/proto\").proto.IAccountID} HashgraphProto.proto.IAccountID\n * @typedef {import(\"@hashgraph/proto\").proto.IKey} HashgraphProto.proto.IKey\n * @typedef {import(\"@hashgraph/proto\").proto.IDuration} HashgraphProto.proto.IDuration\n */\n\nexport default class TokenNftInfo {\n /**\n * @private\n * @param {object} props\n * @param {NftId} props.nftId\n * @param {AccountId} props.accountId\n * @param {Timestamp} props.creationTime\n * @param {Uint8Array | null} props.metadata\n * @param {LedgerId|null} props.ledgerId\n * @param {AccountId|null} props.spenderId\n */\n constructor(props) {\n /**\n * ID of the nft instance\n *\n * @readonly\n */\n this.nftId = props.nftId;\n\n /**\n * @readonly\n */\n this.accountId = props.accountId;\n\n /**\n * @readonly\n */\n this.creationTime = props.creationTime;\n\n /**\n * @readonly\n */\n this.metadata = props.metadata;\n\n this.ledgerId = props.ledgerId;\n\n this.spenderId = props.spenderId;\n\n Object.freeze(this);\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITokenNftInfo} info\n * @returns {TokenNftInfo}\n */\n static _fromProtobuf(info) {\n return new TokenNftInfo({\n nftId: NftId._fromProtobuf(\n /** @type {HashgraphProto.proto.INftID} */ (info.nftID),\n ),\n accountId: AccountId._fromProtobuf(\n /** @type {HashgraphProto.proto.IAccountID} */ (info.accountID),\n ),\n creationTime: Timestamp._fromProtobuf(\n /** @type {HashgraphProto.proto.ITimestamp} */ (\n info.creationTime\n ),\n ),\n metadata: info.metadata !== undefined ? info.metadata : null,\n ledgerId:\n info.ledgerId != null\n ? LedgerId.fromBytes(info.ledgerId)\n : null,\n spenderId:\n info.spenderId != null\n ? AccountId._fromProtobuf(info.spenderId)\n : null,\n });\n }\n\n /**\n * @returns {HashgraphProto.proto.ITokenNftInfo}\n */\n _toProtobuf() {\n return {\n nftID: this.nftId._toProtobuf(),\n accountID: this.accountId._toProtobuf(),\n creationTime: this.creationTime._toProtobuf(),\n metadata: this.metadata,\n ledgerId: this.ledgerId != null ? this.ledgerId.toBytes() : null,\n spenderId:\n this.spenderId != null ? this.spenderId._toProtobuf() : null,\n };\n }\n\n /**\n * @typedef {object} TokenNftInfoJson\n * @property {string} nftId\n * @property {string} accountId\n * @property {string} creationTime\n * @property {string | null} metadata\n * @property {string | null} ledgerId\n * @property {string | null} spenderId\n * @returns {TokenNftInfoJson}\n */\n toJson() {\n return {\n nftId: this.nftId.toString(),\n accountId: this.accountId.toString(),\n creationTime: this.creationTime.toString(),\n metadata: this.metadata != null ? hex.encode(this.metadata) : null,\n ledgerId: this.ledgerId != null ? this.ledgerId.toString() : null,\n spenderId:\n this.spenderId != null ? this.spenderId.toString() : null,\n };\n }\n\n /**\n * @returns {string}\n */\n toString() {\n return JSON.stringify(this.toJson());\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Query, { QUERY_REGISTRY } from \"../query/Query.js\";\nimport NftId from \"./NftId.js\";\nimport AccountId from \"../account/AccountId.js\";\nimport TokenId from \"../token/TokenId.js\";\nimport TokenNftInfo from \"./TokenNftInfo.js\";\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport Hbar from \"../Hbar.js\";\nimport Long from \"long\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.IQuery} HashgraphProto.proto.IQuery\n * @typedef {import(\"@hashgraph/proto\").proto.IQueryHeader} HashgraphProto.proto.IQueryHeader\n * @typedef {import(\"@hashgraph/proto\").proto.IResponse} HashgraphProto.proto.IResponse\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenNftInfo} HashgraphProto.proto.ITokenNftInfo\n * @typedef {import(\"@hashgraph/proto\").proto.IResponseHeader} HashgraphProto.proto.IResponseHeader\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenGetNftInfoQuery} HashgraphProto.proto.ITokenGetNftInfoQuery\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenGetNftInfosQuery} HashgraphProto.proto.ITokenGetNftInfosQuery\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenGetAccountNftInfosQuery} HashgraphProto.proto.ITokenGetAccountNftInfosQuery\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenGetNftInfoResponse} HashgraphProto.proto.ITokenGetNftInfoResponse\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenGetNftInfosResponse} HashgraphProto.proto.ITokenGetNftInfosResponse\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenGetAccountNftInfosResponse} HashgraphProto.proto.ITokenGetAccountNftInfosResponse\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n */\n\n/**\n * @augments {Query}\n */\nexport default class TokenNftInfoQuery extends Query {\n /**\n * @param {object} properties\n * @param {NftId | string} [properties.nftId]\n * @param {AccountId | string} [properties.accountId]\n * @param {TokenId | string} [properties.tokenId]\n * @param {Long | number} [properties.start]\n * @param {Long | number} [properties.end]\n */\n constructor(properties = {}) {\n super();\n\n /**\n * @private\n * @type {?NftId}\n */\n this._nftId = null;\n if (properties.nftId != null) {\n this.setNftId(properties.nftId);\n }\n\n /**\n * @private\n * @type {?AccountId}\n */\n this._accountId = null;\n if (properties.accountId != null) {\n // eslint-disable-next-line deprecation/deprecation\n this.setAccountId(properties.accountId);\n }\n\n /**\n * @private\n * @type {?TokenId}\n */\n this._tokenId = null;\n if (properties.tokenId != null) {\n // eslint-disable-next-line deprecation/deprecation\n this.setTokenId(properties.tokenId);\n }\n\n /**\n * @private\n * @type {?Long}\n */\n this._start = null;\n if (properties.start != null) {\n // eslint-disable-next-line deprecation/deprecation\n this.setStart(properties.start);\n }\n\n /**\n * @private\n * @type {?Long}\n */\n this._end = null;\n if (properties.end != null) {\n // eslint-disable-next-line deprecation/deprecation\n this.setEnd(properties.end);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.IQuery} query\n * @returns {TokenNftInfoQuery}\n */\n static _fromProtobuf(query) {\n if (query.tokenGetNftInfo != null) {\n const info =\n /** @type {HashgraphProto.proto.ITokenGetNftInfoQuery} */ (\n query.tokenGetNftInfo\n );\n\n return new TokenNftInfoQuery({\n nftId:\n info.nftID != null\n ? NftId._fromProtobuf(info.nftID)\n : undefined,\n });\n } else if (query.tokenGetAccountNftInfos != null) {\n const info =\n /** @type {HashgraphProto.proto.ITokenGetAccountNftInfosQuery} */ (\n query.tokenGetAccountNftInfos\n );\n\n return new TokenNftInfoQuery({\n accountId:\n info.accountID != null\n ? AccountId._fromProtobuf(info.accountID)\n : undefined,\n start: info.start != null ? info.start : undefined,\n end: info.end != null ? info.end : undefined,\n });\n } else {\n const info =\n /** @type {HashgraphProto.proto.ITokenGetNftInfosQuery} */ (\n query.tokenGetNftInfos\n );\n\n return new TokenNftInfoQuery({\n tokenId:\n info.tokenID != null\n ? TokenId._fromProtobuf(info.tokenID)\n : undefined,\n start: info.start != null ? info.start : undefined,\n end: info.end != null ? info.end : undefined,\n });\n }\n }\n\n /**\n * @returns {?NftId}\n */\n get nftId() {\n return this._nftId;\n }\n\n /**\n * Set the token ID for which the info is being requested.\n *\n * @param {NftId | string} nftId\n * @returns {TokenNftInfoQuery}\n */\n setNftId(nftId) {\n this._nftId =\n typeof nftId === \"string\"\n ? NftId.fromString(nftId)\n : NftId._fromProtobuf(nftId._toProtobuf());\n\n return this;\n }\n\n /**\n * @deprecated with no replacement\n * @returns {?AccountId}\n */\n get accountId() {\n console.warn(\n \"`TokenNftInfoQuery.accountId` is deprecated with no replacement\",\n );\n return this._accountId;\n }\n\n /**\n * @deprecated with no replacement\n * Set the token ID for which the info is being requested.\n * @param {AccountId | string} accountId\n * @returns {TokenNftInfoQuery}\n */\n setAccountId(accountId) {\n console.warn(\n \"`TokenNftInfoQuery.setAccountId()` is deprecated with no replacement\",\n );\n this._accountId =\n typeof accountId === \"string\"\n ? AccountId.fromString(accountId)\n : AccountId._fromProtobuf(accountId._toProtobuf());\n\n return this;\n }\n\n /**\n * @deprecated with no replacement\n * @returns {?TokenId}\n */\n get tokenId() {\n console.warn(\n \"`TokenNftInfoQuery.tokenId` is deprecated with no replacement\",\n );\n return this._tokenId;\n }\n\n /**\n * @deprecated with no replacement\n * Set the token ID for which the info is being requested.\n * @param {TokenId | string} tokenId\n * @returns {TokenNftInfoQuery}\n */\n setTokenId(tokenId) {\n console.warn(\n \"`TokenNftInfoQuery.setTokenId()` is deprecated with no replacement\",\n );\n this._tokenId =\n typeof tokenId === \"string\"\n ? TokenId.fromString(tokenId)\n : TokenId._fromProtobuf(tokenId._toProtobuf());\n\n return this;\n }\n\n /**\n * @deprecated with no replacement\n * @returns {?Long}\n */\n get start() {\n console.warn(\n \"`TokenNftInfoQuery.start` is deprecated with no replacement\",\n );\n return this._start;\n }\n\n /**\n * @deprecated with no replacement\n * Set the token ID for which the info is being requested.\n * @param {Long | number} start\n * @returns {TokenNftInfoQuery}\n */\n setStart(start) {\n console.warn(\n \"`TokenNftInfoQuery.setStart()` is deprecated with no replacement\",\n );\n this._start =\n typeof start === \"number\" ? Long.fromNumber(start) : start;\n\n return this;\n }\n\n /**\n * @deprecated with no replacement\n * @returns {?Long}\n */\n get end() {\n console.warn(\n \"`TokenNftInfoQuery.end` is deprecated with no replacement\",\n );\n return this._end;\n }\n\n /**\n * @deprecated with no replacement\n * Set the token ID for which the info is being requested.\n * @param {Long | number} end\n * @returns {TokenNftInfoQuery}\n */\n setEnd(end) {\n console.warn(\n \"`TokenNftInfoQuery.setEnd()` is deprecated with no replacement\",\n );\n this._end = typeof end === \"number\" ? Long.fromNumber(end) : end;\n\n return this;\n }\n\n /**\n * @override\n * @param {import(\"../client/Client.js\").default} client\n * @returns {Promise}\n */\n async getCost(client) {\n return super.getCost(client);\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.IQuery} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.token.getTokenNftInfo(request);\n }\n\n /**\n * @override\n * @internal\n * @param {HashgraphProto.proto.IResponse} response\n * @returns {HashgraphProto.proto.IResponseHeader}\n */\n _mapResponseHeader(response) {\n const infos =\n /** @type {HashgraphProto.proto.ITokenGetNftInfoResponse} */ (\n response.tokenGetNftInfo\n );\n\n return /** @type {HashgraphProto.proto.IResponseHeader} */ (\n infos.header\n );\n }\n\n /**\n * @override\n * @internal\n * @param {HashgraphProto.proto.IResponse} response\n * @param {AccountId} nodeAccountId\n * @param {HashgraphProto.proto.IQuery} request\n * @returns {Promise}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _mapResponse(response, nodeAccountId, request) {\n const nfts = [\n /** @type {HashgraphProto.proto.ITokenNftInfo} */\n (\n /** @type {HashgraphProto.proto.ITokenGetNftInfoResponse} */ (\n response.tokenGetNftInfo\n ).nft\n ),\n ];\n\n return Promise.resolve(\n nfts.map((nft) =>\n TokenNftInfo._fromProtobuf(\n /** @type {HashgraphProto.proto.ITokenNftInfo} */ (nft),\n ),\n ),\n );\n }\n\n /**\n * @override\n * @internal\n * @param {HashgraphProto.proto.IQueryHeader} header\n * @returns {HashgraphProto.proto.IQuery}\n */\n _onMakeRequest(header) {\n return {\n tokenGetNftInfo: {\n header,\n nftID: this._nftId != null ? this._nftId._toProtobuf() : null,\n },\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp =\n this._paymentTransactionId != null &&\n this._paymentTransactionId.validStart != null\n ? this._paymentTransactionId.validStart\n : this._timestamp;\n\n return `TokenNftInfoQuery:${timestamp.toString()}`;\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/unbound-method\nQUERY_REGISTRY.set(\"tokenGetNftInfo\", TokenNftInfoQuery._fromProtobuf);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport TokenId from \"./TokenId.js\";\nimport Transaction, {\n TRANSACTION_REGISTRY,\n} from \"../transaction/Transaction.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HashgraphProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HashgraphProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HashgraphProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} HashgraphProto.proto.ITransactionResponse\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenPauseTransactionBody} HashgraphProto.proto.ITokenPauseTransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenID} HashgraphProto.proto.ITokenID\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n * @typedef {import(\"../account/AccountId.js\").default} AccountId\n */\n\n/**\n * Pause a new Hedera™ crypto-currency token.\n */\nexport default class TokenPauseTransaction extends Transaction {\n /**\n * @param {object} [props]\n * @param {TokenId | string} [props.tokenId]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {?TokenId}\n */\n this._tokenId = null;\n\n if (props.tokenId != null) {\n this.setTokenId(props.tokenId);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransaction[]} transactions\n * @param {HashgraphProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HashgraphProto.proto.ITransactionBody[]} bodies\n * @returns {TokenPauseTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const pauseToken =\n /** @type {HashgraphProto.proto.ITokenPauseTransactionBody} */ (\n body.tokenPause\n );\n\n return Transaction._fromProtobufTransactions(\n new TokenPauseTransaction({\n tokenId:\n pauseToken.token != null\n ? TokenId._fromProtobuf(pauseToken.token)\n : undefined,\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @returns {?TokenId}\n */\n get tokenId() {\n return this._tokenId;\n }\n\n /**\n * @param {TokenId | string} tokenId\n * @returns {this}\n */\n setTokenId(tokenId) {\n this._requireNotFrozen();\n this._tokenId =\n typeof tokenId === \"string\"\n ? TokenId.fromString(tokenId)\n : tokenId.clone();\n\n return this;\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (this._tokenId != null) {\n this._tokenId.validateChecksum(client);\n }\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.token.pauseToken(request);\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"tokenPause\";\n }\n\n /**\n * @override\n * @protected\n * @returns {HashgraphProto.proto.ITokenPauseTransactionBody}\n */\n _makeTransactionData() {\n return {\n token: this._tokenId != null ? this._tokenId._toProtobuf() : null,\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `TokenPauseTransaction:${timestamp.toString()}`;\n }\n}\n\nTRANSACTION_REGISTRY.set(\n \"tokenPause\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n TokenPauseTransaction._fromProtobuf,\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport TokenId from \"./TokenId.js\";\nimport AccountId from \"../account/AccountId.js\";\nimport Transaction, {\n TRANSACTION_REGISTRY,\n} from \"../transaction/Transaction.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HashgraphProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HashgraphProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HashgraphProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} HashgraphProto.proto.ITransactionResponse\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenRevokeKycTransactionBody} HashgraphProto.proto.ITokenRevokeKycTransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenID} HashgraphProto.proto.ITokenID\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n */\n\n/**\n * RevokeKyc a new Hedera™ crypto-currency token.\n */\nexport default class TokenRevokeKycTransaction extends Transaction {\n /**\n * @param {object} [props]\n * @param {TokenId | string} [props.tokenId]\n * @param {AccountId | string} [props.accountId]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {?TokenId}\n */\n this._tokenId = null;\n\n /**\n * @private\n * @type {?AccountId}\n */\n this._accountId = null;\n\n if (props.tokenId != null) {\n this.setTokenId(props.tokenId);\n }\n\n if (props.accountId != null) {\n this.setAccountId(props.accountId);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransaction[]} transactions\n * @param {HashgraphProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HashgraphProto.proto.ITransactionBody[]} bodies\n * @returns {TokenRevokeKycTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const revokeKycToken =\n /** @type {HashgraphProto.proto.ITokenRevokeKycTransactionBody} */ (\n body.tokenRevokeKyc\n );\n\n return Transaction._fromProtobufTransactions(\n new TokenRevokeKycTransaction({\n tokenId:\n revokeKycToken.token != null\n ? TokenId._fromProtobuf(revokeKycToken.token)\n : undefined,\n accountId:\n revokeKycToken.account != null\n ? AccountId._fromProtobuf(revokeKycToken.account)\n : undefined,\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @returns {?TokenId}\n */\n get tokenId() {\n return this._tokenId;\n }\n\n /**\n * @param {TokenId | string} tokenId\n * @returns {this}\n */\n setTokenId(tokenId) {\n this._requireNotFrozen();\n this._tokenId =\n typeof tokenId === \"string\"\n ? TokenId.fromString(tokenId)\n : tokenId.clone();\n\n return this;\n }\n\n /**\n * @returns {?AccountId}\n */\n get accountId() {\n return this._accountId;\n }\n\n /**\n * @param {AccountId | string} accountId\n * @returns {this}\n */\n setAccountId(accountId) {\n this._requireNotFrozen();\n this._accountId =\n typeof accountId === \"string\"\n ? AccountId.fromString(accountId)\n : accountId.clone();\n\n return this;\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (this._tokenId != null) {\n this._tokenId.validateChecksum(client);\n }\n\n if (this._accountId != null) {\n this._accountId.validateChecksum(client);\n }\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.token.revokeKycFromTokenAccount(request);\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"tokenRevokeKyc\";\n }\n\n /**\n * @override\n * @protected\n * @returns {HashgraphProto.proto.ITokenRevokeKycTransactionBody}\n */\n _makeTransactionData() {\n return {\n token: this._tokenId != null ? this._tokenId._toProtobuf() : null,\n account:\n this._accountId != null ? this._accountId._toProtobuf() : null,\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `TokenRevokeKycTransaction:${timestamp.toString()}`;\n }\n}\n\nTRANSACTION_REGISTRY.set(\n \"tokenRevokeKyc\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n TokenRevokeKycTransaction._fromProtobuf,\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport TokenId from \"./TokenId.js\";\nimport AccountId from \"../account/AccountId.js\";\nimport Transaction, {\n TRANSACTION_REGISTRY,\n} from \"../transaction/Transaction.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HashgraphProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HashgraphProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HashgraphProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} HashgraphProto.proto.ITransactionResponse\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenUnfreezeAccountTransactionBody} HashgraphProto.proto.ITokenUnfreezeAccountTransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenID} HashgraphProto.proto.ITokenID\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n */\n\n/**\n * Unfreeze a new Hedera™ crypto-currency token.\n */\nexport default class TokenUnfreezeTransaction extends Transaction {\n /**\n * @param {object} [props]\n * @param {TokenId | string} [props.tokenId]\n * @param {AccountId | string} [props.accountId]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {?TokenId}\n */\n this._tokenId = null;\n\n /**\n * @private\n * @type {?AccountId}\n */\n this._accountId = null;\n\n if (props.tokenId != null) {\n this.setTokenId(props.tokenId);\n }\n\n if (props.accountId != null) {\n this.setAccountId(props.accountId);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransaction[]} transactions\n * @param {HashgraphProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HashgraphProto.proto.ITransactionBody[]} bodies\n * @returns {TokenUnfreezeTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const unfreezeToken =\n /** @type {HashgraphProto.proto.ITokenUnfreezeAccountTransactionBody} */ (\n body.tokenUnfreeze\n );\n\n return Transaction._fromProtobufTransactions(\n new TokenUnfreezeTransaction({\n tokenId:\n unfreezeToken.token != null\n ? TokenId._fromProtobuf(unfreezeToken.token)\n : undefined,\n accountId:\n unfreezeToken.account != null\n ? AccountId._fromProtobuf(unfreezeToken.account)\n : undefined,\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @returns {?TokenId}\n */\n get tokenId() {\n return this._tokenId;\n }\n\n /**\n * @param {TokenId | string} tokenId\n * @returns {this}\n */\n setTokenId(tokenId) {\n this._requireNotFrozen();\n this._tokenId =\n typeof tokenId === \"string\"\n ? TokenId.fromString(tokenId)\n : tokenId.clone();\n\n return this;\n }\n\n /**\n * @returns {?AccountId}\n */\n get accountId() {\n return this._accountId;\n }\n\n /**\n * @param {AccountId | string} accountId\n * @returns {this}\n */\n setAccountId(accountId) {\n this._requireNotFrozen();\n this._accountId =\n typeof accountId === \"string\"\n ? AccountId.fromString(accountId)\n : accountId.clone();\n\n return this;\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (this._tokenId != null) {\n this._tokenId.validateChecksum(client);\n }\n\n if (this._accountId != null) {\n this._accountId.validateChecksum(client);\n }\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.token.unfreezeTokenAccount(request);\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"tokenUnfreeze\";\n }\n\n /**\n * @override\n * @protected\n * @returns {HashgraphProto.proto.ITokenUnfreezeAccountTransactionBody}\n */\n _makeTransactionData() {\n return {\n token: this._tokenId != null ? this._tokenId._toProtobuf() : null,\n account:\n this._accountId != null ? this._accountId._toProtobuf() : null,\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `TokenUnfreezeTransaction:${timestamp.toString()}`;\n }\n}\n\nTRANSACTION_REGISTRY.set(\n \"tokenUnfreeze\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n TokenUnfreezeTransaction._fromProtobuf,\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport TokenId from \"./TokenId.js\";\nimport Transaction, {\n TRANSACTION_REGISTRY,\n} from \"../transaction/Transaction.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HashgraphProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HashgraphProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HashgraphProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} HashgraphProto.proto.ITransactionResponse\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenUnpauseTransactionBody} HashgraphProto.proto.ITokenUnpauseTransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenID} HashgraphProto.proto.ITokenID\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n * @typedef {import(\"../account/AccountId.js\").default} AccountId\n */\n\n/**\n * Unpause a new Hedera™ crypto-currency token.\n */\nexport default class TokenUnpauseTransaction extends Transaction {\n /**\n * @param {object} [props]\n * @param {TokenId | string} [props.tokenId]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {?TokenId}\n */\n this._tokenId = null;\n\n if (props.tokenId != null) {\n this.setTokenId(props.tokenId);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransaction[]} transactions\n * @param {HashgraphProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HashgraphProto.proto.ITransactionBody[]} bodies\n * @returns {TokenUnpauseTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const unpauseToken =\n /** @type {HashgraphProto.proto.ITokenUnpauseTransactionBody} */ (\n body.tokenUnpause\n );\n\n return Transaction._fromProtobufTransactions(\n new TokenUnpauseTransaction({\n tokenId:\n unpauseToken.token != null\n ? TokenId._fromProtobuf(unpauseToken.token)\n : undefined,\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @returns {?TokenId}\n */\n get tokenId() {\n return this._tokenId;\n }\n\n /**\n * @param {TokenId | string} tokenId\n * @returns {this}\n */\n setTokenId(tokenId) {\n this._requireNotFrozen();\n this._tokenId =\n typeof tokenId === \"string\"\n ? TokenId.fromString(tokenId)\n : tokenId.clone();\n\n return this;\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (this._tokenId != null) {\n this._tokenId.validateChecksum(client);\n }\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.token.unpauseToken(request);\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"tokenUnpause\";\n }\n\n /**\n * @override\n * @protected\n * @returns {HashgraphProto.proto.ITokenUnpauseTransactionBody}\n */\n _makeTransactionData() {\n return {\n token: this._tokenId != null ? this._tokenId._toProtobuf() : null,\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `TokenUnpauseTransaction:${timestamp.toString()}`;\n }\n}\n\nTRANSACTION_REGISTRY.set(\n \"tokenUnpause\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n TokenUnpauseTransaction._fromProtobuf,\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.TokenKeyValidation} HashgraphProto.proto.TokenKeyValidation\n */\n\n/** Types of validation strategies for token keys. */\nexport default class TokenKeyValidation {\n /**\n * @hideconstructor\n * @internal\n * @param {number} code\n */\n constructor(code) {\n /** @readonly */\n this._code = code;\n\n Object.freeze(this);\n }\n\n /**\n * @returns {string}\n */\n toString() {\n switch (this) {\n case TokenKeyValidation.FullValidation:\n return \"FULL_VALIDATION\";\n case TokenKeyValidation.NoValidation:\n return \"NO_VALIDATION\";\n default:\n return `UNKNOWN (${this._code})`;\n }\n }\n\n /**\n * @internal\n * @param {number} code\n * @returns {TokenKeyValidation}\n */\n static _fromCode(code) {\n switch (code) {\n case 0:\n return TokenKeyValidation.FullValidation;\n case 1:\n return TokenKeyValidation.NoValidation;\n }\n\n throw new Error(\n `(BUG) TokenKeyValidation.fromCode() does not handle code: ${code}`,\n );\n }\n\n /**\n * @returns {HashgraphProto.proto.TokenKeyValidation}\n */\n valueOf() {\n return this._code;\n }\n}\n\n/**\n * Currently the default behaviour. It will perform all token key validations.\n */\nTokenKeyValidation.FullValidation = new TokenKeyValidation(0);\n\n/**\n * Perform no validations at all for all passed token keys.\n */\nTokenKeyValidation.NoValidation = new TokenKeyValidation(1);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport TokenId from \"./TokenId.js\";\nimport Transaction, {\n TRANSACTION_REGISTRY,\n} from \"../transaction/Transaction.js\";\nimport AccountId from \"../account/AccountId.js\";\nimport Timestamp from \"../Timestamp.js\";\nimport Duration from \"../Duration.js\";\nimport Key from \"../Key.js\";\nimport TokenKeyValidation from \"./TokenKeyValidation.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HashgraphProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HashgraphProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HashgraphProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} HashgraphProto.proto.ITransactionResponse\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenUpdateTransactionBody} HashgraphProto.proto.ITokenUpdateTransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenID} HashgraphProto.proto.ITokenID\n */\n\n/**\n * @typedef {import(\"bignumber.js\").default} BigNumber\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n */\n\n/**\n * Update a new Hedera™ crypto-currency token.\n */\nexport default class TokenUpdateTransaction extends Transaction {\n /**\n * @param {object} [props]\n * @param {TokenId | string} [props.tokenId]\n * @param {?string} [props.tokenName]\n * @param {?string} [props.tokenSymbol]\n * @param {AccountId | string} [props.treasuryAccountId]\n * @param {Key} [props.adminKey]\n * @param {Key} [props.kycKey]\n * @param {Key} [props.freezeKey]\n * @param {Key} [props.wipeKey]\n * @param {Key} [props.supplyKey]\n * @param {AccountId | string} [props.autoRenewAccountId]\n * @param {Timestamp | Date} [props.expirationTime]\n * @param {Duration | Long | number} [props.autoRenewPeriod]\n * @param {?string} [props.tokenMemo]\n * @param {Key} [props.feeScheduleKey]\n * @param {Key} [props.pauseKey]\n * @param {Key} [props.metadataKey]\n * @param {?Uint8Array} [props.metadata]\n * @param {TokenKeyValidation} [props.keyVerificationMode]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {?TokenId}\n */\n this._tokenId = null;\n\n /**\n * @private\n * @type {?string}\n */\n this._tokenName = null;\n\n /**\n * @private\n * @type {?string}\n */\n this._tokenSymbol = null;\n\n /**\n * @private\n * @type {?AccountId}\n */\n this._treasuryAccountId = null;\n\n /**\n * @private\n * @type {?Key}\n */\n this._adminKey = null;\n\n /**\n * @private\n * @type {?Key}\n */\n this._kycKey = null;\n\n /**\n * @private\n * @type {?Key}\n */\n this._freezeKey = null;\n\n /**\n * @private\n * @type {?Key}\n */\n this._wipeKey = null;\n\n /**\n * @private\n * @type {?Key}\n */\n this._supplyKey = null;\n\n /**\n * @private\n * @type {?AccountId}\n */\n this._autoRenewAccountId = null;\n\n /**\n * @private\n * @type {?Timestamp}\n */\n this._expirationTime = null;\n\n /**\n * @private\n * @type {?Duration}\n */\n this._autoRenewPeriod = null;\n\n /**\n * @private\n * @type {?string}\n */\n this._tokenMemo = null;\n\n /**\n * @private\n * @type {?Key}\n */\n this._feeScheduleKey = null;\n\n /**\n * @private\n * @type {?Key}\n */\n this._pauseKey = null;\n\n /**\n * @private\n * @type {?Key}\n */\n this._metadataKey = null;\n\n /**\n * @private\n * @type {?Uint8Array}\n */\n this._metadata = null;\n\n /**\n * @private\n * @type {?TokenKeyValidation}\n * Determines whether the system should check the validity of the passed keys for update.\n * Defaults to FULL_VALIDATION\n */\n this._keyVerificationMode = TokenKeyValidation.FullValidation;\n\n if (props.tokenId != null) {\n this.setTokenId(props.tokenId);\n }\n\n if (props.tokenName != null) {\n this.setTokenName(props.tokenName);\n }\n\n if (props.tokenSymbol != null) {\n this.setTokenSymbol(props.tokenSymbol);\n }\n\n if (props.treasuryAccountId != null) {\n this.setTreasuryAccountId(props.treasuryAccountId);\n }\n\n if (props.adminKey != null) {\n this.setAdminKey(props.adminKey);\n }\n\n if (props.kycKey != null) {\n this.setKycKey(props.kycKey);\n }\n\n if (props.freezeKey != null) {\n this.setFreezeKey(props.freezeKey);\n }\n\n if (props.wipeKey != null) {\n this.setWipeKey(props.wipeKey);\n }\n\n if (props.supplyKey != null) {\n this.setSupplyKey(props.supplyKey);\n }\n\n if (props.autoRenewAccountId != null) {\n this.setAutoRenewAccountId(props.autoRenewAccountId);\n }\n\n if (props.expirationTime != null) {\n this.setExpirationTime(props.expirationTime);\n }\n\n if (props.autoRenewPeriod != null) {\n this.setAutoRenewPeriod(props.autoRenewPeriod);\n }\n\n if (props.tokenMemo != null) {\n this.setTokenMemo(props.tokenMemo);\n }\n\n if (props.feeScheduleKey != null) {\n this.setFeeScheduleKey(props.feeScheduleKey);\n }\n\n if (props.pauseKey != null) {\n this.setPauseKey(props.pauseKey);\n }\n\n if (props.metadataKey != null) {\n this.setMetadataKey(props.metadataKey);\n }\n\n if (props.metadata != null) {\n this.setMetadata(props.metadata);\n }\n\n if (props.keyVerificationMode != null) {\n this.setKeyVerificationMode(props.keyVerificationMode);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransaction[]} transactions\n * @param {HashgraphProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HashgraphProto.proto.ITransactionBody[]} bodies\n * @returns {TokenUpdateTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const update =\n /** @type {HashgraphProto.proto.ITokenUpdateTransactionBody} */ (\n body.tokenUpdate\n );\n\n return Transaction._fromProtobufTransactions(\n new TokenUpdateTransaction({\n tokenId:\n update.token != null\n ? TokenId._fromProtobuf(update.token)\n : undefined,\n tokenName: Object.hasOwn(update, \"name\")\n ? update.name\n : undefined,\n tokenSymbol: Object.hasOwn(update, \"symbol\")\n ? update.symbol\n : undefined,\n treasuryAccountId:\n update.treasury != null\n ? AccountId._fromProtobuf(update.treasury)\n : undefined,\n adminKey:\n update.adminKey != null\n ? Key._fromProtobufKey(update.adminKey)\n : undefined,\n kycKey:\n update.kycKey != null\n ? Key._fromProtobufKey(update.kycKey)\n : undefined,\n freezeKey:\n update.freezeKey != null\n ? Key._fromProtobufKey(update.freezeKey)\n : undefined,\n wipeKey:\n update.wipeKey != null\n ? Key._fromProtobufKey(update.wipeKey)\n : undefined,\n supplyKey:\n update.supplyKey != null\n ? Key._fromProtobufKey(update.supplyKey)\n : undefined,\n autoRenewAccountId:\n update.autoRenewAccount != null\n ? AccountId._fromProtobuf(update.autoRenewAccount)\n : undefined,\n expirationTime:\n update.expiry != null\n ? Timestamp._fromProtobuf(update.expiry)\n : undefined,\n autoRenewPeriod:\n update.autoRenewPeriod != null\n ? Duration._fromProtobuf(update.autoRenewPeriod)\n : undefined,\n tokenMemo:\n update.memo != null\n ? Object.hasOwn(update.memo, \"value\")\n ? update.memo.value\n : undefined\n : undefined,\n feeScheduleKey:\n update.feeScheduleKey != null\n ? Key._fromProtobufKey(update.feeScheduleKey)\n : undefined,\n pauseKey:\n update.pauseKey != null\n ? Key._fromProtobufKey(update.pauseKey)\n : undefined,\n metadataKey:\n update.metadataKey != null\n ? Key._fromProtobufKey(update.metadataKey)\n : undefined,\n metadata:\n update.metadata != null\n ? Object.hasOwn(update.metadata, \"value\")\n ? update.metadata.value\n : undefined\n : undefined,\n keyVerificationMode:\n update.keyVerificationMode != null\n ? TokenKeyValidation._fromCode(\n update.keyVerificationMode,\n )\n : undefined,\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @returns {?TokenId}\n */\n get tokenId() {\n return this._tokenId;\n }\n\n /**\n * @param {TokenId | string} tokenId\n * @returns {this}\n */\n setTokenId(tokenId) {\n this._requireNotFrozen();\n this._tokenId =\n typeof tokenId === \"string\"\n ? TokenId.fromString(tokenId)\n : tokenId.clone();\n\n return this;\n }\n\n /**\n * @returns {?string}\n */\n get tokenName() {\n return this._tokenName;\n }\n\n /**\n * @param {string} name\n * @returns {this}\n */\n setTokenName(name) {\n this._requireNotFrozen();\n this._tokenName = name;\n\n return this;\n }\n\n /**\n * @returns {?string}\n */\n get tokenSymbol() {\n return this._tokenSymbol;\n }\n\n /**\n * @param {string} symbol\n * @returns {this}\n */\n setTokenSymbol(symbol) {\n this._requireNotFrozen();\n this._tokenSymbol = symbol;\n\n return this;\n }\n\n /**\n * @returns {?AccountId}\n */\n get treasuryAccountId() {\n return this._treasuryAccountId;\n }\n\n /**\n * @param {AccountId | string} id\n * @returns {this}\n */\n setTreasuryAccountId(id) {\n this._requireNotFrozen();\n this._treasuryAccountId =\n typeof id === \"string\" ? AccountId.fromString(id) : id.clone();\n\n return this;\n }\n\n /**\n * @returns {?Key}\n */\n get adminKey() {\n return this._adminKey;\n }\n\n /**\n * @param {Key} key\n * @returns {this}\n */\n setAdminKey(key) {\n this._requireNotFrozen();\n this._adminKey = key;\n\n return this;\n }\n\n /**\n * @returns {?Key}\n */\n get kycKey() {\n return this._kycKey;\n }\n\n /**\n * @param {Key} key\n * @returns {this}\n */\n setKycKey(key) {\n this._requireNotFrozen();\n this._kycKey = key;\n\n return this;\n }\n\n /**\n * @returns {?Key}\n */\n get freezeKey() {\n return this._freezeKey;\n }\n\n /**\n * @param {Key} key\n * @returns {this}\n */\n setFreezeKey(key) {\n this._requireNotFrozen();\n this._freezeKey = key;\n\n return this;\n }\n\n /**\n * @returns {?Key}\n */\n get wipeKey() {\n return this._wipeKey;\n }\n\n /**\n * @param {Key} key\n * @returns {this}\n */\n setWipeKey(key) {\n this._requireNotFrozen();\n this._wipeKey = key;\n\n return this;\n }\n\n /**\n * @returns {?Key}\n */\n get supplyKey() {\n return this._supplyKey;\n }\n\n /**\n * @param {Key} key\n * @returns {this}\n */\n setSupplyKey(key) {\n this._requireNotFrozen();\n this._supplyKey = key;\n\n return this;\n }\n\n /**\n * @deprecated\n * @param {Key} key\n * @returns {this}\n */\n setsupplyKey(key) {\n this._requireNotFrozen();\n this._supplyKey = key;\n\n return this;\n }\n\n /**\n * @returns {?Timestamp}\n */\n get expirationTime() {\n return this._expirationTime;\n }\n\n /**\n * @param {Timestamp | Date} time\n * @returns {this}\n */\n setExpirationTime(time) {\n this._requireNotFrozen();\n this._expirationTime =\n time instanceof Timestamp ? time : Timestamp.fromDate(time);\n\n return this;\n }\n\n /**\n * @returns {?AccountId}\n */\n get autoRenewAccountId() {\n return this._autoRenewAccountId;\n }\n\n /**\n * @param {AccountId | string} id\n * @returns {this}\n */\n setAutoRenewAccountId(id) {\n this._requireNotFrozen();\n this._autoRenewAccountId =\n id instanceof AccountId ? id : AccountId.fromString(id);\n\n return this;\n }\n\n /**\n * @returns {?Duration}\n */\n get autoRenewPeriod() {\n return this._autoRenewPeriod;\n }\n\n /**\n * Set the auto renew period for this token.\n *\n * @param {Duration | Long | number} autoRenewPeriod\n * @returns {this}\n */\n setAutoRenewPeriod(autoRenewPeriod) {\n this._requireNotFrozen();\n this._autoRenewPeriod =\n autoRenewPeriod instanceof Duration\n ? autoRenewPeriod\n : new Duration(autoRenewPeriod);\n\n return this;\n }\n\n /**\n * @returns {?string}\n */\n get tokenMemo() {\n return this._tokenMemo;\n }\n\n /**\n * @param {string} tokenMemo\n * @returns {this}\n */\n setTokenMemo(tokenMemo) {\n this._requireNotFrozen();\n this._tokenMemo = tokenMemo;\n\n return this;\n }\n\n /**\n * @returns {?Key}\n */\n get feeScheduleKey() {\n return this._feeScheduleKey;\n }\n\n /**\n * @param {Key} feeScheduleKey\n * @returns {this}\n */\n setFeeScheduleKey(feeScheduleKey) {\n this._requireNotFrozen();\n this._feeScheduleKey = feeScheduleKey;\n\n return this;\n }\n\n /**\n * @returns {?Key}\n */\n get pauseKey() {\n return this._pauseKey;\n }\n\n /**\n * @param {Key} pauseKey\n * @returns {this}\n */\n setPauseKey(pauseKey) {\n this._requireNotFrozen();\n this._pauseKey = pauseKey;\n return this;\n }\n\n /**\n * @returns {?Key}\n */\n get metadataKey() {\n return this._metadataKey;\n }\n\n /**\n * @param {Key} metadataKey\n * @returns {this}\n */\n setMetadataKey(metadataKey) {\n this._requireNotFrozen();\n this._metadataKey = metadataKey;\n\n return this;\n }\n\n /**\n * @returns {?Uint8Array}\n */\n get metadata() {\n return this._metadata;\n }\n\n /**\n * @param {Uint8Array} metadata\n * @returns {this}\n */\n setMetadata(metadata) {\n this._requireNotFrozen();\n this._metadata = metadata;\n\n return this;\n }\n\n /**\n * @returns {?TokenKeyValidation}\n */\n get keyVerificationMode() {\n return this._keyVerificationMode;\n }\n\n /**\n * @param {TokenKeyValidation} keyVerificationMode\n * @returns {this}\n */\n setKeyVerificationMode(keyVerificationMode) {\n this._requireNotFrozen();\n this._keyVerificationMode = keyVerificationMode;\n\n return this;\n }\n\n /**\n * @returns {this}\n */\n clearTokenMemo() {\n this._requireNotFrozen();\n this._tokenMemo = null;\n\n return this;\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (this._tokenId != null) {\n this._tokenId.validateChecksum(client);\n }\n\n if (this._treasuryAccountId != null) {\n this._treasuryAccountId.validateChecksum(client);\n }\n\n if (this._autoRenewAccountId != null) {\n this._autoRenewAccountId.validateChecksum(client);\n }\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.token.updateToken(request);\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"tokenUpdate\";\n }\n\n /**\n * @override\n * @protected\n * @returns {HashgraphProto.proto.ITokenUpdateTransactionBody}\n */\n _makeTransactionData() {\n return {\n token: this._tokenId != null ? this._tokenId._toProtobuf() : null,\n name: this.tokenName != null ? this.tokenName : null,\n symbol: this.tokenSymbol,\n treasury:\n this._treasuryAccountId != null\n ? this._treasuryAccountId._toProtobuf()\n : null,\n adminKey:\n this._adminKey != null ? this._adminKey._toProtobufKey() : null,\n kycKey: this._kycKey != null ? this._kycKey._toProtobufKey() : null,\n freezeKey:\n this._freezeKey != null\n ? this._freezeKey._toProtobufKey()\n : null,\n pauseKey:\n this._pauseKey != null ? this._pauseKey._toProtobufKey() : null,\n wipeKey:\n this._wipeKey != null ? this._wipeKey._toProtobufKey() : null,\n supplyKey:\n this._supplyKey != null\n ? this._supplyKey._toProtobufKey()\n : null,\n autoRenewAccount:\n this._autoRenewAccountId != null\n ? this._autoRenewAccountId._toProtobuf()\n : null,\n expiry:\n this._expirationTime != null\n ? this._expirationTime._toProtobuf()\n : null,\n autoRenewPeriod:\n this._autoRenewPeriod != null\n ? this._autoRenewPeriod._toProtobuf()\n : null,\n memo:\n this._tokenMemo != null\n ? {\n value: this._tokenMemo,\n }\n : null,\n feeScheduleKey:\n this._feeScheduleKey != null\n ? this._feeScheduleKey._toProtobufKey()\n : null,\n metadataKey:\n this._metadataKey != null\n ? this._metadataKey._toProtobufKey()\n : null,\n metadata:\n this._metadata != null\n ? {\n value: this._metadata,\n }\n : null,\n keyVerificationMode:\n this._keyVerificationMode != null\n ? this._keyVerificationMode._code\n : undefined,\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `TokenUpdateTransaction:${timestamp.toString()}`;\n }\n}\n\nTRANSACTION_REGISTRY.set(\n \"tokenUpdate\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n TokenUpdateTransaction._fromProtobuf,\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport TokenId from \"./TokenId.js\";\nimport AccountId from \"../account/AccountId.js\";\nimport Transaction, {\n TRANSACTION_REGISTRY,\n} from \"../transaction/Transaction.js\";\nimport Long from \"long\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HashgraphProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HashgraphProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HashgraphProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} HashgraphProto.proto.ITransactionResponse\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenWipeAccountTransactionBody} HashgraphProto.proto.ITokenWipeAccountTransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenID} HashgraphProto.proto.ITokenID\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n */\n\n/**\n * Wipe a new Hedera™ crypto-currency token.\n */\nexport default class TokenWipeTransaction extends Transaction {\n /**\n * @param {object} [props]\n * @param {TokenId | string} [props.tokenId]\n * @param {AccountId | string} [props.accountId]\n * @param {Long | number} [props.amount]\n * @param {(Long | number)[]} [props.serials]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {?TokenId}\n */\n this._tokenId = null;\n\n /**\n * @private\n * @type {?AccountId}\n */\n this._accountId = null;\n\n /**\n * @private\n * @type {?Long[]}\n */\n this._serials = [];\n\n /**\n * @private\n * @type {?Long}\n */\n this._amount = null;\n\n if (props.tokenId != null) {\n this.setTokenId(props.tokenId);\n }\n\n if (props.accountId != null) {\n this.setAccountId(props.accountId);\n }\n\n if (props.amount != null) {\n this.setAmount(props.amount);\n }\n\n if (props.serials != null) {\n this.setSerials(props.serials);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransaction[]} transactions\n * @param {HashgraphProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HashgraphProto.proto.ITransactionBody[]} bodies\n * @returns {TokenWipeTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const wipeToken =\n /** @type {HashgraphProto.proto.ITokenWipeAccountTransactionBody} */ (\n body.tokenWipe\n );\n\n return Transaction._fromProtobufTransactions(\n new TokenWipeTransaction({\n tokenId:\n wipeToken.token != null\n ? TokenId._fromProtobuf(wipeToken.token)\n : undefined,\n accountId:\n wipeToken.account != null\n ? AccountId._fromProtobuf(wipeToken.account)\n : undefined,\n amount: wipeToken.amount != null ? wipeToken.amount : undefined,\n serials:\n wipeToken.serialNumbers != null\n ? wipeToken.serialNumbers\n : undefined,\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @returns {?TokenId}\n */\n get tokenId() {\n return this._tokenId;\n }\n\n /**\n * @param {TokenId | string} tokenId\n * @returns {this}\n */\n setTokenId(tokenId) {\n this._requireNotFrozen();\n this._tokenId =\n typeof tokenId === \"string\"\n ? TokenId.fromString(tokenId)\n : tokenId.clone();\n\n return this;\n }\n\n /**\n * @returns {?AccountId}\n */\n get accountId() {\n return this._accountId;\n }\n\n /**\n * @param {AccountId | string} accountId\n * @returns {this}\n */\n setAccountId(accountId) {\n this._requireNotFrozen();\n this._accountId =\n typeof accountId === \"string\"\n ? AccountId.fromString(accountId)\n : accountId.clone();\n\n return this;\n }\n\n /**\n * @returns {?Long}\n */\n get amount() {\n return this._amount;\n }\n\n /**\n * @param {Long | number} amount\n * @returns {this}\n */\n setAmount(amount) {\n this._requireNotFrozen();\n this._amount = amount instanceof Long ? amount : Long.fromValue(amount);\n\n return this;\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (this._tokenId != null) {\n this._tokenId.validateChecksum(client);\n }\n\n if (this._accountId != null) {\n this._accountId.validateChecksum(client);\n }\n }\n\n /**\n * @returns {?Long[]}\n */\n get serials() {\n return this._serials;\n }\n\n /**\n * @param {(Long | number)[]} serials\n * @returns {this}\n */\n setSerials(serials) {\n this._requireNotFrozen();\n this._serials = serials.map((serial) =>\n typeof serial === \"number\" ? Long.fromNumber(serial) : serial,\n );\n\n return this;\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.token.wipeTokenAccount(request);\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"tokenWipe\";\n }\n\n /**\n * @override\n * @protected\n * @returns {HashgraphProto.proto.ITokenWipeAccountTransactionBody}\n */\n _makeTransactionData() {\n return {\n amount: this._amount,\n token: this._tokenId != null ? this._tokenId._toProtobuf() : null,\n account:\n this._accountId != null ? this._accountId._toProtobuf() : null,\n serialNumbers: this.serials,\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `TokenWipeTransaction:${timestamp.toString()}`;\n }\n}\n\nTRANSACTION_REGISTRY.set(\n \"tokenWipe\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n TokenWipeTransaction._fromProtobuf,\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport AccountId from \"../account/AccountId.js\";\nimport Transaction, {\n DEFAULT_AUTO_RENEW_PERIOD,\n TRANSACTION_REGISTRY,\n} from \"../transaction/Transaction.js\";\nimport Duration from \"../Duration.js\";\nimport Key from \"../Key.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.IConsensusCreateTopicTransactionBody} HashgraphProto.proto.IConsensusCreateTopicTransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HashgraphProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HashgraphProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HashgraphProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} HashgraphProto.proto.ITransactionResponse\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n */\n\n/**\n * Create a topic to be used for consensus.\n */\nexport default class TopicCreateTransaction extends Transaction {\n /**\n * @param {object} props\n * @param {Key} [props.adminKey]\n * @param {Key} [props.submitKey]\n * @param {Duration | Long | number} [props.autoRenewPeriod]\n * @param {AccountId | string} [props.autoRenewAccountId]\n * @param {string} [props.topicMemo]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {?Key}\n */\n this._adminKey = null;\n\n /**\n * @private\n * @type {?Key}\n */\n this._submitKey = null;\n\n /**\n * @private\n * @type {?AccountId}\n */\n this._autoRenewAccountId = null;\n\n /**\n * @private\n * @type {Duration}\n */\n this._autoRenewPeriod = new Duration(DEFAULT_AUTO_RENEW_PERIOD);\n\n /**\n * @private\n * @type {?string}\n */\n this._topicMemo = null;\n\n if (props.adminKey != null) {\n this.setAdminKey(props.adminKey);\n }\n\n if (props.submitKey != null) {\n this.setSubmitKey(props.submitKey);\n }\n\n if (props.autoRenewAccountId != null) {\n this.setAutoRenewAccountId(props.autoRenewAccountId);\n }\n\n if (props.autoRenewPeriod != null) {\n this.setAutoRenewPeriod(props.autoRenewPeriod);\n }\n\n if (props.topicMemo != null) {\n this.setTopicMemo(props.topicMemo);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransaction[]} transactions\n * @param {HashgraphProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HashgraphProto.proto.ITransactionBody[]} bodies\n * @returns {TopicCreateTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const create =\n /** @type {HashgraphProto.proto.IConsensusCreateTopicTransactionBody} */ (\n body.consensusCreateTopic\n );\n\n return Transaction._fromProtobufTransactions(\n new TopicCreateTransaction({\n adminKey:\n create.adminKey != null\n ? Key._fromProtobufKey(create.adminKey)\n : undefined,\n submitKey:\n create.submitKey != null\n ? Key._fromProtobufKey(create.submitKey)\n : undefined,\n autoRenewAccountId:\n create.autoRenewAccount != null\n ? AccountId._fromProtobuf(create.autoRenewAccount)\n : undefined,\n autoRenewPeriod:\n create.autoRenewPeriod != null\n ? create.autoRenewPeriod.seconds != null\n ? create.autoRenewPeriod.seconds\n : undefined\n : undefined,\n topicMemo: create.memo != null ? create.memo : undefined,\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @deprecated - Use `getTopicMemo()` instead\n * @returns {?string}\n */\n get topicMemo() {\n return this._topicMemo;\n }\n\n /**\n * @returns {?string}\n */\n getTopicMemo() {\n return this._topicMemo;\n }\n\n /**\n * @param {string} topicMemo\n * @returns {this}\n */\n setTopicMemo(topicMemo) {\n this._requireNotFrozen();\n this._topicMemo = topicMemo;\n\n return this;\n }\n\n /**\n * @deprecated - Use `getAdminKey()` instead\n * @returns {?Key}\n */\n get adminKey() {\n return this._adminKey;\n }\n\n /**\n * @returns {?Key}\n */\n getAdminKey() {\n return this._adminKey;\n }\n\n /**\n * @param {Key} adminKey\n * @returns {this}\n */\n setAdminKey(adminKey) {\n this._requireNotFrozen();\n this._adminKey = adminKey;\n\n return this;\n }\n\n /**\n * @deprecated - Use `getSubmitKey()` instead\n * @returns {?Key}\n */\n get submitKey() {\n return this._submitKey;\n }\n\n /**\n * @returns {?Key}\n */\n getSubmitKey() {\n return this._submitKey;\n }\n\n /**\n * @param {Key} submitKey\n * @returns {this}\n */\n setSubmitKey(submitKey) {\n this._requireNotFrozen();\n this._submitKey = submitKey;\n\n return this;\n }\n\n /**\n * @deprecated - Use `getAutoRenewAccountId()` instead\n * @returns {?AccountId}\n */\n get autoRenewAccountId() {\n return this._autoRenewAccountId;\n }\n\n /**\n * @returns {?AccountId}\n */\n getAutoRenewAccountId() {\n return this._autoRenewAccountId;\n }\n\n /**\n * @param {AccountId | string} autoRenewAccountId\n * @returns {this}\n */\n setAutoRenewAccountId(autoRenewAccountId) {\n this._requireNotFrozen();\n this._autoRenewAccountId =\n autoRenewAccountId instanceof AccountId\n ? autoRenewAccountId\n : AccountId.fromString(autoRenewAccountId);\n\n return this;\n }\n\n /**\n * @deprecated - Use `getAutoRenewPeriod()` instead\n * @returns {Duration}\n */\n get autoRenewPeriod() {\n return this._autoRenewPeriod;\n }\n\n /**\n * @returns {Duration}\n */\n getAutoRenewPeriod() {\n return this._autoRenewPeriod;\n }\n\n /**\n * Set the auto renew period for this account.\n *\n * @param {Duration | Long | number} autoRenewPeriod\n * @returns {this}\n */\n setAutoRenewPeriod(autoRenewPeriod) {\n this._requireNotFrozen();\n this._autoRenewPeriod =\n autoRenewPeriod instanceof Duration\n ? autoRenewPeriod\n : new Duration(autoRenewPeriod);\n\n return this;\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (this._autoRenewAccountId != null) {\n this._autoRenewAccountId.validateChecksum(client);\n }\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.consensus.createTopic(request);\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"consensusCreateTopic\";\n }\n\n /**\n * @override\n * @protected\n * @returns {HashgraphProto.proto.IConsensusCreateTopicTransactionBody}\n */\n _makeTransactionData() {\n return {\n adminKey:\n this._adminKey != null ? this._adminKey._toProtobufKey() : null,\n submitKey:\n this._submitKey != null\n ? this._submitKey._toProtobufKey()\n : null,\n autoRenewAccount:\n this._autoRenewAccountId != null\n ? this._autoRenewAccountId._toProtobuf()\n : null,\n autoRenewPeriod: this._autoRenewPeriod._toProtobuf(),\n memo: this._topicMemo,\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `TopicCreateTransaction:${timestamp.toString()}`;\n }\n}\n\nTRANSACTION_REGISTRY.set(\n \"consensusCreateTopic\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n TopicCreateTransaction._fromProtobuf,\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Transaction, {\n TRANSACTION_REGISTRY,\n} from \"../transaction/Transaction.js\";\nimport TopicId from \"./TopicId.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.IConsensusDeleteTopicTransactionBody} HashgraphProto.proto.IConsensusDeleteTopicTransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HashgraphProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HashgraphProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HashgraphProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} HashgraphProto.proto.ITransactionResponse\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../account/AccountId.js\").default} AccountId\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n */\n\n/**\n * Delete a topic.\n *\n * No more transactions or queries on the topic will succeed.\n *\n * If an adminKey is set, this transaction must be signed by that key.\n * If there is no adminKey, this transaction will fail with Status#Unautorized.\n */\nexport default class TopicDeleteTransaction extends Transaction {\n /**\n * @param {object} props\n * @param {TopicId | string} [props.topicId]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {?TopicId}\n */\n this._topicId = null;\n\n if (props.topicId != null) {\n this.setTopicId(props.topicId);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransaction[]} transactions\n * @param {HashgraphProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HashgraphProto.proto.ITransactionBody[]} bodies\n * @returns {TopicDeleteTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const topicDelete =\n /** @type {HashgraphProto.proto.IConsensusDeleteTopicTransactionBody} */ (\n body.consensusDeleteTopic\n );\n\n return Transaction._fromProtobufTransactions(\n new TopicDeleteTransaction({\n topicId:\n topicDelete.topicID != null\n ? TopicId._fromProtobuf(topicDelete.topicID)\n : undefined,\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @returns {?TopicId}\n */\n get topicId() {\n return this._topicId;\n }\n\n /**\n * Set the topic ID which is being deleted in this transaction.\n *\n * @param {TopicId | string} topicId\n * @returns {TopicDeleteTransaction}\n */\n setTopicId(topicId) {\n this._requireNotFrozen();\n this._topicId =\n typeof topicId === \"string\"\n ? TopicId.fromString(topicId)\n : topicId.clone();\n\n return this;\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (this._topicId != null) {\n this._topicId.validateChecksum(client);\n }\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.consensus.deleteTopic(request);\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"consensusDeleteTopic\";\n }\n\n /**\n * @override\n * @protected\n * @returns {HashgraphProto.proto.IConsensusDeleteTopicTransactionBody}\n */\n _makeTransactionData() {\n return {\n topicID: this._topicId != null ? this._topicId._toProtobuf() : null,\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `TopicDeleteTransaction:${timestamp.toString()}`;\n }\n}\n\nTRANSACTION_REGISTRY.set(\n \"consensusDeleteTopic\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n TopicDeleteTransaction._fromProtobuf,\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport TopicId from \"./TopicId.js\";\nimport AccountId from \"../account/AccountId.js\";\nimport Timestamp from \"../Timestamp.js\";\nimport Long from \"long\";\nimport Duration from \"../Duration.js\";\nimport * as HashgraphProto from \"@hashgraph/proto\";\nimport Key from \"../Key.js\";\nimport LedgerId from \"../LedgerId.js\";\n\n/**\n * Current state of a topic.\n */\nexport default class TopicInfo {\n /**\n * @private\n * @param {object} props\n * @param {TopicId} props.topicId\n * @param {string} props.topicMemo\n * @param {Uint8Array} props.runningHash\n * @param {Long} props.sequenceNumber\n * @param {?Timestamp} props.expirationTime\n * @param {?Key} props.adminKey\n * @param {?Key} props.submitKey\n * @param {?Duration} props.autoRenewPeriod\n * @param {?AccountId} props.autoRenewAccountId\n * @param {LedgerId|null} props.ledgerId\n */\n constructor(props) {\n /**\n * The ID of the topic for which information is requested.\n *\n * @readonly\n */\n this.topicId = props.topicId;\n\n /**\n * Short publicly visible memo about the topic. No guarantee of uniqueness.\n *\n * @readonly\n */\n this.topicMemo = props.topicMemo;\n\n /**\n * SHA-384 running hash of (previousRunningHash, topicId, consensusTimestamp, sequenceNumber, message).\n *\n * @readonly\n */\n this.runningHash = props.runningHash;\n\n /**\n * Sequence number (starting at 1 for the first submitMessage) of messages on the topic.\n *\n * @readonly\n */\n this.sequenceNumber = props.sequenceNumber;\n\n /**\n * Effective consensus timestamp at (and after) which submitMessage calls will no longer succeed on the topic.\n *\n * @readonly\n */\n this.expirationTime = props.expirationTime;\n\n /**\n * Access control for update/delete of the topic. Null if there is no key.\n *\n * @readonly\n */\n this.adminKey = props.adminKey;\n\n /**\n * Access control for ConsensusService.submitMessage. Null if there is no key.\n *\n * @readonly\n */\n this.submitKey = props.submitKey;\n\n /**\n * @readonly\n */\n this.autoRenewPeriod = props.autoRenewPeriod;\n\n /**\n * @readonly\n */\n this.autoRenewAccountId = props.autoRenewAccountId;\n\n this.ledgerId = props.ledgerId;\n\n Object.freeze(this);\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.IConsensusGetTopicInfoResponse} infoResponse\n * @returns {TopicInfo}\n */\n static _fromProtobuf(infoResponse) {\n const info = /** @type {HashgraphProto.proto.IConsensusTopicInfo} */ (\n infoResponse.topicInfo\n );\n\n return new TopicInfo({\n topicId: TopicId._fromProtobuf(\n /** @type {HashgraphProto.proto.ITopicID} */ (\n infoResponse.topicID\n ),\n ),\n topicMemo: info.memo != null ? info.memo : \"\",\n runningHash:\n info.runningHash != null ? info.runningHash : new Uint8Array(),\n sequenceNumber:\n info.sequenceNumber != null\n ? info.sequenceNumber instanceof Long\n ? info.sequenceNumber\n : Long.fromValue(info.sequenceNumber)\n : Long.ZERO,\n expirationTime:\n info.expirationTime != null\n ? Timestamp._fromProtobuf(info.expirationTime)\n : null,\n adminKey:\n info.adminKey != null\n ? Key._fromProtobufKey(info.adminKey)\n : null,\n submitKey:\n info.submitKey != null\n ? Key._fromProtobufKey(info.submitKey)\n : null,\n autoRenewPeriod:\n info.autoRenewPeriod != null\n ? new Duration(\n /** @type {Long} */ (info.autoRenewPeriod.seconds),\n )\n : null,\n autoRenewAccountId:\n info.autoRenewAccount != null\n ? AccountId._fromProtobuf(info.autoRenewAccount)\n : null,\n ledgerId:\n info.ledgerId != null\n ? LedgerId.fromBytes(info.ledgerId)\n : null,\n });\n }\n\n /**\n * @internal\n * @returns {HashgraphProto.proto.IConsensusGetTopicInfoResponse}\n */\n _toProtobuf() {\n return {\n topicID: this.topicId._toProtobuf(),\n topicInfo: {\n memo: this.topicMemo,\n runningHash: this.runningHash,\n sequenceNumber: this.sequenceNumber,\n expirationTime:\n this.expirationTime != null\n ? this.expirationTime._toProtobuf()\n : null,\n adminKey:\n this.adminKey != null\n ? this.adminKey._toProtobufKey()\n : null,\n submitKey:\n this.submitKey != null\n ? this.submitKey._toProtobufKey()\n : null,\n autoRenewPeriod:\n this.autoRenewPeriod != null\n ? this.autoRenewPeriod._toProtobuf()\n : null,\n autoRenewAccount:\n this.autoRenewAccountId != null\n ? this.autoRenewAccountId._toProtobuf()\n : null,\n },\n };\n }\n\n /**\n * @param {Uint8Array} bytes\n * @returns {TopicInfo}\n */\n static fromBytes(bytes) {\n return TopicInfo._fromProtobuf({\n topicInfo: HashgraphProto.proto.ConsensusTopicInfo.decode(bytes),\n });\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytes() {\n return HashgraphProto.proto.ConsensusTopicInfo.encode(\n /** @type {HashgraphProto.proto.IConsensusTopicInfo} */ (\n this._toProtobuf().topicInfo\n ),\n ).finish();\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Query, { QUERY_REGISTRY } from \"../query/Query.js\";\nimport TopicId from \"./TopicId.js\";\nimport TopicInfo from \"./TopicInfo.js\";\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport Hbar from \"../Hbar.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.IQuery} HashgraphProto.proto.IQuery\n * @typedef {import(\"@hashgraph/proto\").proto.IQueryHeader} HashgraphProto.proto.IQueryHeader\n * @typedef {import(\"@hashgraph/proto\").proto.IResponse} HashgraphProto.proto.IResponse\n * @typedef {import(\"@hashgraph/proto\").proto.IResponseHeader} HashgraphProto.proto.IResponseHeader\n * @typedef {import(\"@hashgraph/proto\").proto.IConsensusGetTopicInfoResponse} HashgraphProto.proto.IConsensusGetTopicInfoResponse\n * @typedef {import(\"@hashgraph/proto\").proto.IConsensusGetTopicInfoQuery} HashgraphProto.proto.IConsensusGetTopicInfoQuery\n */\n\n/**\n * @namespace com\n * @typedef {import(\"@hashgraph/proto\").com.hedera.mirror.api.proto.IConsensusTopicResponse} com.hedera.mirror.api.proto.IConsensusTopicResponse\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../account/AccountId.js\").default} AccountId\n */\n\n/**\n * Retrieve the latest state of a topic.\n *\n * @augments {Query}\n */\nexport default class TopicInfoQuery extends Query {\n /**\n * @param {object} [props]\n * @param {TopicId | string} [props.topicId]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {?TopicId}\n */\n this._topicId = null;\n\n if (props.topicId != null) {\n this.setTopicId(props.topicId);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.IQuery} query\n * @returns {TopicInfoQuery}\n */\n static _fromProtobuf(query) {\n const info =\n /** @type {HashgraphProto.proto.IConsensusGetTopicInfoQuery} */ (\n query.consensusGetTopicInfo\n );\n\n return new TopicInfoQuery({\n topicId:\n info.topicID != null\n ? TopicId._fromProtobuf(info.topicID)\n : undefined,\n });\n }\n\n /**\n * @returns {?TopicId}\n */\n get topicId() {\n return this._topicId;\n }\n\n /**\n * Set the topic ID for which the info is being requested.\n *\n * @param {TopicId | string} topicId\n * @returns {TopicInfoQuery}\n */\n setTopicId(topicId) {\n this._topicId =\n typeof topicId === \"string\"\n ? TopicId.fromString(topicId)\n : topicId.clone();\n\n return this;\n }\n\n /**\n * @override\n * @param {import(\"../client/Client.js\").default} client\n * @returns {Promise}\n */\n async getCost(client) {\n return super.getCost(client);\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (this._topicId != null) {\n this._topicId.validateChecksum(client);\n }\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.IQuery} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.consensus.getTopicInfo(request);\n }\n\n /**\n * @override\n * @internal\n * @param {HashgraphProto.proto.IResponse} response\n * @returns {HashgraphProto.proto.IResponseHeader}\n */\n _mapResponseHeader(response) {\n const consensusGetTopicInfo =\n /** @type {HashgraphProto.proto.IConsensusGetTopicInfoResponse} */ (\n response.consensusGetTopicInfo\n );\n return /** @type {HashgraphProto.proto.IResponseHeader} */ (\n consensusGetTopicInfo.header\n );\n }\n\n /**\n * @protected\n * @override\n * @param {HashgraphProto.proto.IResponse} response\n * @param {AccountId} nodeAccountId\n * @param {HashgraphProto.proto.IQuery} request\n * @returns {Promise}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _mapResponse(response, nodeAccountId, request) {\n return Promise.resolve(\n TopicInfo._fromProtobuf(\n /** @type {HashgraphProto.proto.IConsensusGetTopicInfoResponse} */ (\n response.consensusGetTopicInfo\n ),\n ),\n );\n }\n\n /**\n * @override\n * @internal\n * @param {HashgraphProto.proto.IQueryHeader} header\n * @returns {HashgraphProto.proto.IQuery}\n */\n _onMakeRequest(header) {\n return {\n consensusGetTopicInfo: {\n header,\n topicID:\n this._topicId != null ? this._topicId._toProtobuf() : null,\n },\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp =\n this._paymentTransactionId != null &&\n this._paymentTransactionId.validStart != null\n ? this._paymentTransactionId.validStart\n : this._timestamp;\n\n return `TopicInfoQuery:${timestamp.toString()}`;\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/unbound-method\nQUERY_REGISTRY.set(\"consensusGetTopicInfo\", TopicInfoQuery._fromProtobuf);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Timestamp from \"../Timestamp.js\";\nimport Long from \"long\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITimestamp} HashgraphProto.proto.ITimestamp\n */\n\n/**\n * @namespace com\n * @typedef {import(\"@hashgraph/proto\").com.hedera.mirror.api.proto.IConsensusTopicResponse} com.hedera.mirror.api.proto.IConsensusTopicResponse\n */\n\nexport default class TopicMessageChunk {\n /**\n * @private\n * @param {object} props\n * @param {Timestamp} props.consensusTimestamp\n * @param {Uint8Array} props.contents\n * @param {Uint8Array} props.runningHash\n * @param {Long} props.sequenceNumber\n */\n constructor(props) {\n /** @readonly */\n this.consensusTimestamp = props.consensusTimestamp;\n /** @readonly */\n this.contents = props.contents;\n /** @readonly */\n this.runningHash = props.runningHash;\n /** @readonly */\n this.sequenceNumber = props.sequenceNumber;\n\n Object.freeze(this);\n }\n\n /**\n * @internal\n * @param {com.hedera.mirror.api.proto.IConsensusTopicResponse} response\n * @returns {TopicMessageChunk}\n */\n static _fromProtobuf(response) {\n return new TopicMessageChunk({\n consensusTimestamp: Timestamp._fromProtobuf(\n /** @type {HashgraphProto.proto.ITimestamp} */\n (response.consensusTimestamp),\n ),\n contents:\n response.message != null ? response.message : new Uint8Array(),\n runningHash:\n response.runningHash != null\n ? response.runningHash\n : new Uint8Array(),\n sequenceNumber:\n response.sequenceNumber != null\n ? response.sequenceNumber instanceof Long\n ? response.sequenceNumber\n : Long.fromValue(response.sequenceNumber)\n : Long.ZERO,\n });\n }\n\n /**\n * @internal\n * @returns {com.hedera.mirror.api.proto.IConsensusTopicResponse}\n */\n _toProtobuf() {\n return {\n consensusTimestamp: this.consensusTimestamp._toProtobuf(),\n message: this.contents,\n runningHash: this.runningHash,\n sequenceNumber: this.sequenceNumber,\n };\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Timestamp from \"../Timestamp.js\";\nimport TopicMessageChunk from \"./TopicMessageChunk.js\";\nimport Long from \"long\";\nimport TransactionId from \"../transaction/TransactionId.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITimestamp} HashgraphProto.proto.ITimestamp\n */\n\n/**\n * @namespace com\n * @typedef {import(\"@hashgraph/proto\").com.hedera.mirror.api.proto.IConsensusTopicResponse} com.hedera.mirror.api.proto.IConsensusTopicResponse\n */\n\nexport default class TopicMessage {\n /**\n * @private\n * @param {object} props\n * @param {Timestamp} props.consensusTimestamp\n * @param {Uint8Array} props.contents\n * @param {Uint8Array} props.runningHash\n * @param {Long} props.sequenceNumber\n * @param {?TransactionId} props.initialTransactionId\n * @param {TopicMessageChunk[]} props.chunks\n */\n constructor(props) {\n /** @readonly */\n this.consensusTimestamp = props.consensusTimestamp;\n /** @readonly */\n this.contents = props.contents;\n /** @readonly */\n this.runningHash = props.runningHash;\n /** @readonly */\n this.sequenceNumber = props.sequenceNumber;\n /** @readonly */\n this.chunks = props.chunks;\n /** @readonly */\n this.initialTransactionId = props.initialTransactionId;\n\n Object.freeze(this);\n }\n\n /**\n * @internal\n * @param {com.hedera.mirror.api.proto.IConsensusTopicResponse} response\n * @returns {TopicMessage}\n */\n static _ofSingle(response) {\n return new TopicMessage({\n consensusTimestamp: Timestamp._fromProtobuf(\n /** @type {HashgraphProto.proto.ITimestamp} */\n (response.consensusTimestamp),\n ),\n contents:\n response.message != null ? response.message : new Uint8Array(),\n runningHash:\n response.runningHash != null\n ? response.runningHash\n : new Uint8Array(),\n sequenceNumber:\n response.sequenceNumber != null\n ? response.sequenceNumber instanceof Long\n ? response.sequenceNumber\n : Long.fromNumber(response.sequenceNumber)\n : Long.ZERO,\n initialTransactionId:\n response.chunkInfo != null &&\n response.chunkInfo.initialTransactionID != null\n ? TransactionId._fromProtobuf(\n response.chunkInfo.initialTransactionID,\n )\n : null,\n chunks: [TopicMessageChunk._fromProtobuf(response)],\n });\n }\n\n /**\n * @internal\n * @param {com.hedera.mirror.api.proto.IConsensusTopicResponse[]} responses\n * @returns {TopicMessage}\n */\n static _ofMany(responses) {\n const length = responses.length;\n\n const last =\n /** @type {com.hedera.mirror.api.proto.IConsensusTopicResponse} */ (\n responses[length - 1]\n );\n\n const consensusTimestamp = Timestamp._fromProtobuf(\n /** @type {HashgraphProto.proto.ITimestamp} */\n (last.consensusTimestamp),\n );\n\n const runningHash = /** @type {Uint8Array} */ (last.runningHash);\n\n /**\n * @type {Long}\n */\n const sequenceNumber =\n last.sequenceNumber != null\n ? last.sequenceNumber instanceof Long\n ? last.sequenceNumber\n : Long.fromValue(last.sequenceNumber)\n : Long.ZERO;\n\n responses.sort((a, b) =>\n (a != null\n ? a.chunkInfo != null\n ? a.chunkInfo.number != null\n ? a.chunkInfo.number\n : 0\n : 0\n : 0) <\n (b != null\n ? b.chunkInfo != null\n ? b.chunkInfo.number != null\n ? b.chunkInfo.number\n : 0\n : 0\n : 0)\n ? -1\n : 1,\n );\n\n /**\n * @type {TopicMessageChunk[]}\n */\n const chunks = responses.map(\n /**\n * @type {com.hedera.mirror.api.proto.IConsensusTopicResponse}\n */ (m) => TopicMessageChunk._fromProtobuf(m),\n );\n\n const size = chunks\n .map((chunk) => chunk.contents.length)\n .reduce((sum, current) => sum + current, 0);\n\n const contents = new Uint8Array(size);\n let offset = 0;\n\n responses.forEach((value) => {\n contents.set(/** @type {Uint8Array} */ (value.message), offset);\n offset += /** @type {Uint8Array} */ (value.message).length;\n });\n\n let initialTransactionId = null;\n if (\n responses.length > 0 &&\n responses[0].chunkInfo != null &&\n responses[0].chunkInfo.initialTransactionID != null\n ) {\n initialTransactionId = TransactionId._fromProtobuf(\n responses[0].chunkInfo.initialTransactionID,\n );\n }\n\n return new TopicMessage({\n consensusTimestamp,\n contents,\n runningHash,\n sequenceNumber,\n chunks,\n initialTransactionId,\n });\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Query from \"../query/Query.js\";\nimport TransactionId from \"../transaction/TransactionId.js\";\nimport SubscriptionHandle from \"./SubscriptionHandle.js\";\nimport TopicMessage from \"./TopicMessage.js\";\nimport * as HashgraphProto from \"@hashgraph/proto\";\nimport TopicId from \"./TopicId.js\";\nimport Long from \"long\";\nimport Timestamp from \"../Timestamp.js\";\nimport { RST_STREAM } from \"../Executable.js\";\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../channel/MirrorChannel.js\").default} MirrorChannel\n * @typedef {import(\"../channel/MirrorChannel.js\").MirrorError} MirrorError\n */\n\n/**\n * @template {Channel} ChannelT\n * @typedef {import(\"../client/Client.js\").default} Client\n */\n\n/**\n * @augments {Query}\n */\nexport default class TopicMessageQuery extends Query {\n /**\n * @param {object} props\n * @param {TopicId | string} [props.topicId]\n * @param {Timestamp} [props.startTime]\n * @param {Timestamp} [props.endTime]\n * @param {(message: TopicMessage | null, error: Error)=> void} [props.errorHandler]\n * @param {() => void} [props.completionHandler]\n * @param {(error: MirrorError | Error | null) => boolean} [props.retryHandler]\n * @param {Long | number} [props.limit]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {?TopicId}\n */\n this._topicId = null;\n if (props.topicId != null) {\n this.setTopicId(props.topicId);\n }\n\n /**\n * @private\n * @type {?Timestamp}\n */\n this._startTime = null;\n if (props.startTime != null) {\n this.setStartTime(props.startTime);\n }\n\n /**\n * @private\n * @type {?Timestamp}\n */\n this._endTime = null;\n if (props.endTime != null) {\n this.setEndTime(props.endTime);\n }\n\n /**\n * @private\n * @type {?Long}\n */\n this._limit = null;\n if (props.limit != null) {\n this.setLimit(props.limit);\n }\n\n /**\n * @private\n * @type {(message: TopicMessage | null, error: Error) => void}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n this._errorHandler = (message, error) => {\n console.error(\n `Error attempting to subscribe to topic: ${\n this._topicId != null ? this._topicId.toString() : \"\"\n }`,\n );\n };\n\n if (props.errorHandler != null) {\n this._errorHandler = props.errorHandler;\n }\n\n /*\n * @private\n * @type {((message: TopicMessage) => void) | null}\n */\n this._listener = null;\n\n /**\n * @private\n * @type {() => void}\n */\n this._completionHandler = () => {\n if (this._logger) {\n this._logger.info(\n `Subscription to topic ${\n this._topicId != null ? this._topicId.toString() : \"\"\n } complete`,\n );\n }\n };\n\n if (props.completionHandler != null) {\n this._completionHandler = props.completionHandler;\n }\n\n /**\n * @private\n * @type {(error: MirrorError | Error | null) => boolean}\n */\n this._retryHandler = (error) => {\n if (error != null) {\n if (error instanceof Error) {\n // Retry on all errors which are not `MirrorError` because they're\n // likely lower level HTTP/2 errors\n return true;\n } else {\n // Retry on `NOT_FOUND`, `RESOURCE_EXHAUSTED`, `UNAVAILABLE`, and conditionally on `INTERNAL`\n // if the message matches the right regex.\n switch (error.code) {\n // INTERNAL\n // eslint-disable-next-line no-fallthrough\n case 13:\n return RST_STREAM.test(error.details.toString());\n // NOT_FOUND\n // eslint-disable-next-line no-fallthrough\n case 5:\n // RESOURCE_EXHAUSTED\n // eslint-disable-next-line no-fallthrough\n case 8:\n // UNAVAILABLE\n // eslint-disable-next-line no-fallthrough\n case 14:\n case 17:\n return true;\n default:\n return false;\n }\n }\n }\n\n return false;\n };\n\n if (props.retryHandler != null) {\n this._retryHandler = props.retryHandler;\n }\n\n /**\n * @private\n * @type {number}\n */\n this._attempt = 0;\n\n /**\n * @private\n * @type {SubscriptionHandle | null}\n */\n this._handle = null;\n\n this.setMaxBackoff(8000);\n }\n\n /**\n * @returns {?TopicId}\n */\n get topicId() {\n return this._topicId;\n }\n\n /**\n * @param {TopicId | string} topicId\n * @returns {TopicMessageQuery}\n */\n setTopicId(topicId) {\n this.requireNotSubscribed();\n\n this._topicId =\n typeof topicId === \"string\"\n ? TopicId.fromString(topicId)\n : topicId.clone();\n\n return this;\n }\n\n /**\n * @returns {?Timestamp}\n */\n get startTime() {\n return this._startTime;\n }\n\n /**\n * @param {Timestamp | Date | number} startTime\n * @returns {TopicMessageQuery}\n */\n setStartTime(startTime) {\n this.requireNotSubscribed();\n\n this._startTime =\n startTime instanceof Timestamp\n ? startTime\n : startTime instanceof Date\n ? Timestamp.fromDate(startTime)\n : new Timestamp(startTime, 0);\n return this;\n }\n\n /**\n * @returns {?Timestamp}\n */\n get endTime() {\n return this._endTime;\n }\n\n /**\n * @param {Timestamp | Date | number} endTime\n * @returns {TopicMessageQuery}\n */\n setEndTime(endTime) {\n this.requireNotSubscribed();\n\n this._endTime =\n endTime instanceof Timestamp\n ? endTime\n : endTime instanceof Date\n ? Timestamp.fromDate(endTime)\n : new Timestamp(endTime, 0);\n return this;\n }\n\n /**\n * @returns {?Long}\n */\n get limit() {\n return this._limit;\n }\n\n /**\n * @param {Long | number} limit\n * @returns {TopicMessageQuery}\n */\n setLimit(limit) {\n this.requireNotSubscribed();\n\n this._limit = limit instanceof Long ? limit : Long.fromValue(limit);\n\n return this;\n }\n\n /**\n * @param {(message: TopicMessage | null, error: Error)=> void} errorHandler\n * @returns {TopicMessageQuery}\n */\n setErrorHandler(errorHandler) {\n this._errorHandler = errorHandler;\n\n return this;\n }\n\n /**\n * @param {() => void} completionHandler\n * @returns {TopicMessageQuery}\n */\n setCompletionHandler(completionHandler) {\n this.requireNotSubscribed();\n\n this._completionHandler = completionHandler;\n\n return this;\n }\n\n /**\n * @param {number} attempts\n * @returns {this}\n */\n setMaxAttempts(attempts) {\n this.requireNotSubscribed();\n this._maxAttempts = attempts;\n return this;\n }\n\n /**\n * @param {number} backoff\n * @returns {this}\n */\n setMaxBackoff(backoff) {\n this.requireNotSubscribed();\n this._maxBackoff = backoff;\n return this;\n }\n\n /**\n * @param {Client} client\n * @param {((message: TopicMessage | null, error: Error) => void) | null} errorHandler\n * @param {(message: TopicMessage) => void} listener\n * @returns {SubscriptionHandle}\n */\n subscribe(client, errorHandler, listener) {\n this._handle = new SubscriptionHandle();\n this._listener = listener;\n\n if (errorHandler != null) {\n this._errorHandler = errorHandler;\n }\n\n this._makeServerStreamRequest(client);\n\n return this._handle;\n }\n\n /**\n * @private\n * @param {Client} client\n * @returns {void}\n */\n _makeServerStreamRequest(client) {\n /** @type {Map} */\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const list = new Map();\n\n const request =\n HashgraphProto.com.hedera.mirror.api.proto.ConsensusTopicQuery.encode(\n {\n topicID:\n this._topicId != null\n ? this._topicId._toProtobuf()\n : null,\n consensusStartTime:\n this._startTime != null\n ? this._startTime._toProtobuf()\n : null,\n consensusEndTime:\n this._endTime != null\n ? this._endTime._toProtobuf()\n : null,\n limit: this._limit,\n },\n ).finish();\n\n const cancel = client._mirrorNetwork\n .getNextMirrorNode()\n .getChannel()\n .makeServerStreamRequest(\n \"ConsensusService\",\n \"subscribeTopic\",\n request,\n (data) => {\n const message =\n HashgraphProto.com.hedera.mirror.api.proto.ConsensusTopicResponse.decode(\n data,\n );\n\n if (this._limit != null && this._limit.gt(0)) {\n this._limit = this._limit.sub(1);\n }\n\n this._startTime = Timestamp._fromProtobuf(\n /** @type {HashgraphProto.proto.ITimestamp} */ (\n message.consensusTimestamp\n ),\n ).plusNanos(1);\n\n if (\n message.chunkInfo == null ||\n (message.chunkInfo != null &&\n message.chunkInfo.total === 1)\n ) {\n this._passTopicMessage(TopicMessage._ofSingle(message));\n } else {\n const chunkInfo =\n /** @type {HashgraphProto.proto.IConsensusMessageChunkInfo} */ (\n message.chunkInfo\n );\n const initialTransactionID =\n /** @type {HashgraphProto.proto.ITransactionID} */ (\n chunkInfo.initialTransactionID\n );\n const total = /** @type {number} */ (chunkInfo.total);\n const transactionId =\n TransactionId._fromProtobuf(\n initialTransactionID,\n ).toString();\n\n /** @type {HashgraphProto.com.hedera.mirror.api.proto.ConsensusTopicResponse[]} */\n let responses = [];\n\n const temp = list.get(transactionId);\n if (temp == null) {\n list.set(transactionId, responses);\n } else {\n responses = temp;\n }\n\n responses.push(message);\n\n if (responses.length === total) {\n const topicMessage =\n TopicMessage._ofMany(responses);\n\n list.delete(transactionId);\n\n this._passTopicMessage(topicMessage);\n }\n }\n },\n (error) => {\n const message =\n error instanceof Error ? error.message : error.details;\n\n if (this._handle?._unsubscribed) {\n return;\n }\n\n if (\n this._attempt < this._maxAttempts &&\n this._retryHandler(error)\n ) {\n const delay = Math.min(\n 250 * 2 ** this._attempt,\n this._maxBackoff,\n );\n console.warn(\n `Error subscribing to topic ${\n this._topicId != null\n ? this._topicId.toString()\n : \"UNKNOWN\"\n } during attempt ${\n this._attempt\n }. Waiting ${delay} ms before next attempt: ${message}`,\n );\n\n this._attempt += 1;\n\n setTimeout(() => {\n this._makeServerStreamRequest(client);\n }, delay);\n } else {\n this._errorHandler(null, new Error(message));\n }\n },\n this._completionHandler,\n );\n\n if (this._handle != null) {\n this._handle._setCall(() => cancel());\n }\n }\n\n requireNotSubscribed() {\n if (this._handle != null) {\n throw new Error(\n \"Cannot change fields on an already subscribed query\",\n );\n }\n }\n\n /**\n * @private\n * @param {TopicMessage} topicMessage\n */\n _passTopicMessage(topicMessage) {\n try {\n if (this._listener != null) {\n this._listener(topicMessage);\n } else {\n throw new Error(\"(BUG) listener is unexpectedly not set\");\n }\n } catch (error) {\n this._errorHandler(topicMessage, /** @type {Error} */ (error));\n }\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Transaction, {\n TRANSACTION_REGISTRY,\n CHUNK_SIZE,\n} from \"../transaction/Transaction.js\";\nimport TopicId from \"./TopicId.js\";\nimport * as utf8 from \"../encoding/utf8.js\";\nimport TransactionId from \"../transaction/TransactionId.js\";\nimport Timestamp from \"../Timestamp.js\";\nimport * as util from \"../util.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.IConsensusSubmitMessageTransactionBody} HashgraphProto.proto.IConsensusSubmitMessageTransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HashgraphProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HashgraphProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HashgraphProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} HashgraphProto.proto.ITransactionResponse\n * @typedef {import(\"@hashgraph/proto\").proto.IConsensusMessageChunkInfo} HashgraphProto.proto.IConsensusMessageChunkInfo\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../account/AccountId.js\").default} AccountId\n * @typedef {import(\"../transaction/TransactionResponse.js\").default} TransactionResponse\n * @typedef {import(\"../schedule/ScheduleCreateTransaction.js\").default} ScheduleCreateTransaction\n */\n\nexport default class TopicMessageSubmitTransaction extends Transaction {\n /**\n * @param {object} props\n * @param {TopicId | string} [props.topicId]\n * @param {Uint8Array | string} [props.message]\n * @param {number} [props.maxChunks]\n * @param {number} [props.chunkSize]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {?TopicId}\n */\n this._topicId = null;\n\n if (props.topicId != null) {\n this.setTopicId(props.topicId);\n }\n\n /**\n * @private\n * @type {?Uint8Array}\n */\n this._message = null;\n\n if (props.message != null) {\n this.setMessage(props.message);\n }\n\n /**\n * @private\n * @type {number}\n */\n this._maxChunks = 20;\n\n /**\n * @private\n * @type {number}\n */\n this._chunkSize = CHUNK_SIZE;\n\n if (props.maxChunks != null) {\n this.setMaxChunks(props.maxChunks);\n }\n\n if (props.chunkSize != null) {\n this.setChunkSize(props.chunkSize);\n }\n\n /** @type {HashgraphProto.proto.IConsensusMessageChunkInfo | null} */\n this._chunkInfo = null;\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransaction[]} transactions\n * @param {HashgraphProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HashgraphProto.proto.ITransactionBody[]} bodies\n * @returns {TopicMessageSubmitTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const message =\n /** @type {HashgraphProto.proto.IConsensusSubmitMessageTransactionBody} */ (\n body.consensusSubmitMessage\n );\n\n return Transaction._fromProtobufTransactions(\n new TopicMessageSubmitTransaction({\n topicId:\n message.topicID != null\n ? TopicId._fromProtobuf(message.topicID)\n : undefined,\n message: message.message != null ? message.message : undefined,\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @returns {?TopicId}\n */\n get topicId() {\n return this._topicId;\n }\n\n /**\n * @param {TopicId | string} topicId\n * @returns {this}\n */\n setTopicId(topicId) {\n this._requireNotFrozen();\n\n this._topicId =\n typeof topicId === \"string\"\n ? TopicId.fromString(topicId)\n : topicId.clone();\n\n return this;\n }\n\n /**\n * @deprecated - Use `getMessage()` instead\n * @returns {?Uint8Array}\n */\n get message() {\n return this._message;\n }\n\n /**\n * @returns {?Uint8Array}\n */\n getMessage() {\n return this._message;\n }\n\n /**\n * @param {string | Uint8Array} message\n * @returns {this}\n */\n setMessage(message) {\n this._requireNotFrozen();\n message = util.requireStringOrUint8Array(message);\n this._message =\n message instanceof Uint8Array ? message : utf8.encode(message);\n return this;\n }\n\n /**\n * @deprecated - Use `getMaxChunks()` instead\n * @returns {?number}\n */\n get maxChunks() {\n return this._maxChunks;\n }\n\n /**\n * @returns {?number}\n */\n getMaxChunks() {\n return this._maxChunks;\n }\n\n /**\n * @param {number} maxChunks\n * @returns {this}\n */\n setMaxChunks(maxChunks) {\n this._requireNotFrozen();\n this._maxChunks = maxChunks;\n return this;\n }\n\n /**\n * @deprecated - Use `getChunkSize()` instead\n * @returns {?number}\n */\n get chunkSize() {\n return this._chunkSize;\n }\n\n /**\n * @returns {?number}\n */\n getChunkSize() {\n return this._chunkSize;\n }\n\n /**\n * @param {number} chunkSize\n * @returns {this}\n */\n setChunkSize(chunkSize) {\n this._chunkSize = chunkSize;\n return this;\n }\n\n /**\n * Freeze this transaction from further modification to prepare for\n * signing or serialization.\n *\n * Will use the `Client`, if available, to generate a default Transaction ID and select 1/3\n * nodes to prepare this transaction for.\n *\n * @param {?import(\"../client/Client.js\").default} client\n * @returns {this}\n */\n freezeWith(client) {\n super.freezeWith(client);\n\n if (this._message == null) {\n return this;\n }\n\n const chunks = Math.floor(\n (this._message.length + (this._chunkSize - 1)) / this._chunkSize,\n );\n\n if (chunks > this._maxChunks) {\n throw new Error(\n `Message with size ${this._message.length} too long for ${this._maxChunks} chunks`,\n );\n }\n\n const initialTransactionId = this._getTransactionId()._toProtobuf();\n let nextTransactionId = this._getTransactionId();\n\n // Hack around the locked list. Should refactor a bit to remove such code\n this._transactionIds.locked = false;\n\n this._transactions.clear();\n this._transactionIds.clear();\n this._signedTransactions.clear();\n\n for (let chunk = 0; chunk < chunks; chunk++) {\n this._chunkInfo = {\n initialTransactionID: initialTransactionId,\n total: chunks,\n number: chunk + 1,\n };\n\n this._transactionIds.push(nextTransactionId);\n this._transactionIds.advance();\n\n for (const nodeAccountId of this._nodeAccountIds.list) {\n this._signedTransactions.push(\n this._makeSignedTransaction(nodeAccountId),\n );\n }\n\n nextTransactionId = new TransactionId(\n /** @type {AccountId} */ (nextTransactionId.accountId),\n new Timestamp(\n /** @type {Timestamp} */ (\n nextTransactionId.validStart\n ).seconds,\n /** @type {Timestamp} */ (\n nextTransactionId.validStart\n ).nanos.add(1),\n ),\n );\n }\n\n this._transactionIds.advance();\n this._chunkInfo = null;\n\n return this;\n }\n\n /**\n * @returns {ScheduleCreateTransaction}\n */\n schedule() {\n this._requireNotFrozen();\n\n if (this._message != null && this._message.length > this._chunkSize) {\n throw new Error(\n `cannot schedule \\`TopicMessageSubmitTransaction\\` with message over ${this._chunkSize} bytes`,\n );\n }\n\n return super.schedule();\n }\n\n /**\n * @param {import(\"../client/Client.js\").default} client\n * @param {number=} requestTimeout\n * @returns {Promise}\n */\n async execute(client, requestTimeout) {\n return (await this.executeAll(client, requestTimeout))[0];\n }\n\n /**\n * @param {import(\"../client/Client.js\").default} client\n * @param {number=} requestTimeout\n * @returns {Promise}\n */\n async executeAll(client, requestTimeout) {\n if (!super._isFrozen()) {\n this.freezeWith(client);\n }\n\n // on execute, sign each transaction with the operator, if present\n // and we are signing a transaction that used the default transaction ID\n\n const transactionId = this._getTransactionId();\n const operatorAccountId = client.operatorAccountId;\n\n if (\n operatorAccountId != null &&\n operatorAccountId.equals(\n /** @type {AccountId} */ (transactionId.accountId),\n )\n ) {\n await super.signWithOperator(client);\n }\n\n const responses = [];\n let remainingTimeout = requestTimeout;\n for (let i = 0; i < this._transactionIds.length; i++) {\n const startTimestamp = Date.now();\n responses.push(await super.execute(client, remainingTimeout));\n\n if (remainingTimeout != null) {\n remainingTimeout = Date.now() - startTimestamp;\n }\n }\n\n return responses;\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.consensus.submitMessage(request);\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"consensusSubmitMessage\";\n }\n\n /**\n * @override\n * @protected\n * @returns {HashgraphProto.proto.IConsensusSubmitMessageTransactionBody}\n */\n _makeTransactionData() {\n if (this._chunkInfo != null && this._message != null) {\n const num = /** @type {number} */ (this._chunkInfo.number);\n const startIndex = (num - 1) * this._chunkSize;\n let endIndex = startIndex + this._chunkSize;\n\n if (endIndex > this._message.length) {\n endIndex = this._message.length;\n }\n\n return {\n topicID:\n this._topicId != null ? this._topicId._toProtobuf() : null,\n message: this._message.slice(startIndex, endIndex),\n chunkInfo: this._chunkInfo,\n };\n } else {\n return {\n topicID:\n this._topicId != null ? this._topicId._toProtobuf() : null,\n message: this._message,\n };\n }\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `TopicMessageSubmitTransaction:${timestamp.toString()}`;\n }\n}\n\nTRANSACTION_REGISTRY.set(\n \"consensusSubmitMessage\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n TopicMessageSubmitTransaction._fromProtobuf,\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Transaction, {\n TRANSACTION_REGISTRY,\n} from \"../transaction/Transaction.js\";\nimport AccountId from \"../account/AccountId.js\";\nimport TopicId from \"./TopicId.js\";\nimport Duration from \"../Duration.js\";\nimport Key from \"../Key.js\";\nimport Timestamp from \"../Timestamp.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.IConsensusUpdateTopicTransactionBody} HashgraphProto.proto.IConsensusUpdateTopicTransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HashgraphProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HashgraphProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HashgraphProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} HashgraphProto.proto.ITransactionResponse\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n */\n\n/**\n * Update a topic.\n *\n * If there is no adminKey, the only authorized update (available to anyone) is to extend the expirationTime.\n * Otherwise transaction must be signed by the adminKey.\n *\n * If an adminKey is updated, the transaction must be signed by the pre-update adminKey and post-update adminKey.\n *\n * If a new autoRenewAccount is specified (not just being removed), that account must also sign the transaction.\n */\nexport default class TopicUpdateTransaction extends Transaction {\n /**\n * @param {object} props\n * @param {TopicId | string} [props.topicId]\n * @param {Key} [props.adminKey]\n * @param {Key} [props.submitKey]\n * @param {Duration | Long | number} [props.autoRenewPeriod]\n * @param {AccountId | string} [props.autoRenewAccountId]\n * @param {?string} [props.topicMemo]\n * @param {Timestamp | Date} [props.expirationTime]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {?TopicId}\n */\n this._topicId = null;\n\n if (props.topicId != null) {\n this.setTopicId(props.topicId);\n }\n\n /**\n * @private\n * @type {?string}\n */\n this._topicMemo = null;\n\n if (props.topicMemo != null) {\n this.setTopicMemo(props.topicMemo);\n }\n\n /**\n * @private\n * @type {?Key}\n */\n this._submitKey = null;\n\n if (props.submitKey != null) {\n this.setSubmitKey(props.submitKey);\n }\n\n /**\n * @private\n * @type {?Key}\n */\n this._adminKey = null;\n\n if (props.adminKey != null) {\n this.setAdminKey(props.adminKey);\n }\n\n /**\n * @private\n * @type {?AccountId}\n */\n this._autoRenewAccountId = null;\n\n if (props.autoRenewAccountId != null) {\n this.setAutoRenewAccountId(props.autoRenewAccountId);\n }\n\n /**\n * @private\n * @type {?Duration}\n */\n this._autoRenewPeriod = null;\n\n if (props.autoRenewPeriod != null) {\n this.setAutoRenewPeriod(props.autoRenewPeriod);\n }\n\n /**\n * @private\n * @type {?Timestamp}\n */\n this._expirationTime = null;\n\n if (props.expirationTime != null) {\n this.setExpirationTime(props.expirationTime);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransaction[]} transactions\n * @param {HashgraphProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HashgraphProto.proto.ITransactionBody[]} bodies\n * @returns {TopicUpdateTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const update =\n /** @type {HashgraphProto.proto.IConsensusUpdateTopicTransactionBody} */ (\n body.consensusUpdateTopic\n );\n\n return Transaction._fromProtobufTransactions(\n new TopicUpdateTransaction({\n topicId:\n update.topicID != null\n ? TopicId._fromProtobuf(update.topicID)\n : undefined,\n adminKey:\n update.adminKey != null\n ? Key._fromProtobufKey(update.adminKey)\n : undefined,\n submitKey:\n update.submitKey != null\n ? Key._fromProtobufKey(update.submitKey)\n : undefined,\n autoRenewAccountId:\n update.autoRenewAccount != null\n ? AccountId._fromProtobuf(update.autoRenewAccount)\n : undefined,\n autoRenewPeriod:\n update.autoRenewPeriod != null\n ? update.autoRenewPeriod.seconds != null\n ? update.autoRenewPeriod.seconds\n : undefined\n : undefined,\n topicMemo:\n update.memo != null\n ? Object.hasOwn(update.memo, \"value\")\n ? update.memo.value\n : undefined\n : undefined,\n expirationTime:\n update.expirationTime != null\n ? Timestamp._fromProtobuf(update.expirationTime)\n : undefined,\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @returns {?Timestamp}\n */\n get expirationTime() {\n return this._expirationTime;\n }\n\n /**\n * @param {Timestamp | Date | null} expirationTime\n * @returns {TopicUpdateTransaction}\n */\n setExpirationTime(expirationTime) {\n this._requireNotFrozen();\n\n this._expirationTime =\n expirationTime instanceof Date\n ? Timestamp.fromDate(expirationTime)\n : expirationTime;\n\n return this;\n }\n\n /**\n * @returns {?TopicId}\n */\n get topicId() {\n return this._topicId;\n }\n\n /**\n * @param {TopicId | string} topicId\n * @returns {TopicUpdateTransaction}\n */\n setTopicId(topicId) {\n this._requireNotFrozen();\n this._topicId =\n typeof topicId === \"string\"\n ? TopicId.fromString(topicId)\n : topicId.clone();\n\n return this;\n }\n\n /**\n * @returns {TopicUpdateTransaction}\n */\n clearTopicId() {\n this._requireNotFrozen();\n this._topicId = null;\n\n return this;\n }\n\n /**\n * @returns {?string}\n */\n get topicMemo() {\n return this._topicMemo;\n }\n\n /**\n * @param {string} topicMemo\n * @returns {TopicUpdateTransaction}\n */\n setTopicMemo(topicMemo) {\n this._requireNotFrozen();\n this._topicMemo = topicMemo;\n\n return this;\n }\n\n /**\n * @returns {TopicUpdateTransaction}\n */\n clearTopicMemo() {\n this._requireNotFrozen();\n this._topicMemo = null;\n\n return this;\n }\n\n /**\n * @returns {?Key}\n */\n get adminKey() {\n return this._adminKey;\n }\n\n /**\n * @param {Key} adminKey\n * @returns {TopicUpdateTransaction}\n */\n setAdminKey(adminKey) {\n this._requireNotFrozen();\n this._adminKey = adminKey;\n\n return this;\n }\n\n /**\n * @returns {TopicUpdateTransaction}\n */\n clearAdminKey() {\n this._requireNotFrozen();\n this._adminKey = null;\n\n return this;\n }\n\n /**\n * @returns {?Key}\n */\n get submitKey() {\n return this._submitKey;\n }\n\n /**\n * @param {Key} submitKey\n * @returns {TopicUpdateTransaction}\n */\n setSubmitKey(submitKey) {\n this._requireNotFrozen();\n this._submitKey = submitKey;\n\n return this;\n }\n\n /**\n * @returns {TopicUpdateTransaction}\n */\n clearSubmitKey() {\n this._requireNotFrozen();\n this._submitKey = null;\n\n return this;\n }\n\n /**\n * @returns {?AccountId}\n */\n get autoRenewAccountId() {\n return this._autoRenewAccountId;\n }\n\n /**\n * @param {AccountId | string} autoRenewAccountId\n * @returns {TopicUpdateTransaction}\n */\n setAutoRenewAccountId(autoRenewAccountId) {\n this._requireNotFrozen();\n this._autoRenewAccountId =\n autoRenewAccountId instanceof AccountId\n ? autoRenewAccountId\n : AccountId.fromString(autoRenewAccountId);\n\n return this;\n }\n\n /**\n * @returns {TopicUpdateTransaction}\n */\n clearAutoRenewAccountId() {\n this._requireNotFrozen();\n this._autoRenewAccountId = null;\n\n return this;\n }\n\n /**\n * @returns {?Duration}\n */\n get autoRenewPeriod() {\n return this._autoRenewPeriod;\n }\n\n /**\n * Set the auto renew period for this account.\n *\n * @param {Duration | Long | number} autoRenewPeriod\n * @returns {TopicUpdateTransaction}\n */\n setAutoRenewPeriod(autoRenewPeriod) {\n this._requireNotFrozen();\n this._autoRenewPeriod =\n autoRenewPeriod instanceof Duration\n ? autoRenewPeriod\n : new Duration(autoRenewPeriod);\n\n return this;\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (this._topicId != null) {\n this._topicId.validateChecksum(client);\n }\n\n if (this._autoRenewAccountId != null) {\n this._autoRenewAccountId.validateChecksum(client);\n }\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.consensus.updateTopic(request);\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"consensusUpdateTopic\";\n }\n\n /**\n * @override\n * @protected\n * @returns {HashgraphProto.proto.IConsensusUpdateTopicTransactionBody}\n */\n _makeTransactionData() {\n return {\n topicID: this._topicId != null ? this._topicId._toProtobuf() : null,\n adminKey:\n this._adminKey != null ? this._adminKey._toProtobufKey() : null,\n submitKey:\n this._submitKey != null\n ? this._submitKey._toProtobufKey()\n : null,\n memo:\n this._topicMemo != null\n ? {\n value: this._topicMemo,\n }\n : null,\n autoRenewAccount:\n this._autoRenewAccountId != null\n ? this._autoRenewAccountId._toProtobuf()\n : null,\n autoRenewPeriod:\n this._autoRenewPeriod != null\n ? this._autoRenewPeriod._toProtobuf()\n : null,\n expirationTime:\n this._expirationTime != null\n ? this._expirationTime._toProtobuf()\n : null,\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `TopicUpdateTransaction:${timestamp.toString()}`;\n }\n}\n\nTRANSACTION_REGISTRY.set(\n \"consensusUpdateTopic\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n TopicUpdateTransaction._fromProtobuf,\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport AccountId from \"./AccountId.js\";\nimport Hbar from \"../Hbar.js\";\nimport ObjectMap from \"../ObjectMap.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITransferList} HashgraphProto.proto.ITransferList\n * @typedef {import(\"@hashgraph/proto\").proto.IAccountID} HashgraphProto.proto.IAccountID\n */\n\n/**\n * @typedef {import(\"../long.js\").LongObject} LongObject\n * @typedef {import(\"bignumber.js\").default} BigNumber\n */\n\n/**\n * @augments {ObjectMap}\n */\nexport default class HbarTransferMap extends ObjectMap {\n constructor() {\n super((s) => AccountId.fromString(s));\n }\n\n /**\n * @param {HashgraphProto.proto.ITransferList} transfers\n * @returns {HbarTransferMap}\n */\n static _fromProtobuf(transfers) {\n const accountTransfers = new HbarTransferMap();\n\n for (const transfer of transfers.accountAmounts != null\n ? transfers.accountAmounts\n : []) {\n const account = AccountId._fromProtobuf(\n /** @type {HashgraphProto.proto.IAccountID} */ (\n transfer.accountID\n ),\n );\n\n accountTransfers._set(\n account,\n Hbar.fromTinybars(/** @type {Long} */ (transfer.amount)),\n );\n }\n\n return accountTransfers;\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Hbar from \"../Hbar.js\";\nimport TokenId from \"../token/TokenId.js\";\nimport AccountId from \"./AccountId.js\";\nimport Transaction, {\n TRANSACTION_REGISTRY,\n} from \"../transaction/Transaction.js\";\nimport Transfer from \"../Transfer.js\";\nimport TokenTransfer from \"../token/TokenTransfer.js\";\nimport HbarTransferMap from \"./HbarTransferMap.js\";\nimport TokenNftTransfer from \"../token/TokenNftTransfer.js\";\nimport NftId from \"../token/NftId.js\";\nimport AbstractTokenTransferTransaction from \"../token/AbstractTokenTransferTransaction.js\";\n\n/**\n * @typedef {import(\"../long.js\").LongObject} LongObject\n * @typedef {import(\"bignumber.js\").default} BigNumber\n */\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HashgraphProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HashgraphProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HashgraphProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} HashgraphProto.proto.ITransactionResponse\n * @typedef {import(\"@hashgraph/proto\").proto.ICryptoTransferTransactionBody} HashgraphProto.proto.ICryptoTransferTransactionBody\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n */\n\n/**\n * @typedef {object} TransferTokensInput\n * @property {TokenId | string} tokenId\n * @property {AccountId | string} accountId\n * @property {Long | number} amount\n */\n\n/**\n * @typedef {object} TransferTokenObject\n * @property {TokenId} tokenId\n * @property {AccountId} accountId\n * @property {Long} amount\n */\n\n/**\n * @typedef {object} TransferHbarInput\n * @property {AccountId | string} accountId\n * @property {number | string | Long | BigNumber | Hbar} amount\n */\n\n/**\n * @typedef {object} TransferNftInput\n * @property {TokenId | string} tokenId\n * @property {AccountId | string} sender\n * @property {AccountId | string} recipient\n * @property {Long | number} serial\n */\n\n/**\n * Transfers a new Hedera™ crypto-currency token.\n */\nexport default class TransferTransaction extends AbstractTokenTransferTransaction {\n /**\n * @param {object} [props]\n * @param {(TransferTokensInput)[]} [props.tokenTransfers]\n * @param {(TransferHbarInput)[]} [props.hbarTransfers]\n * @param {(TransferNftInput)[]} [props.nftTransfers]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {Transfer[]}\n */\n this._hbarTransfers = [];\n\n this._defaultMaxTransactionFee = new Hbar(1);\n\n for (const transfer of props.hbarTransfers != null\n ? props.hbarTransfers\n : []) {\n this.addHbarTransfer(transfer.accountId, transfer.amount);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransaction[]} transactions\n * @param {HashgraphProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HashgraphProto.proto.ITransactionBody[]} bodies\n * @returns {TransferTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const cryptoTransfer =\n /** @type {HashgraphProto.proto.ICryptoTransferTransactionBody} */ (\n body.cryptoTransfer\n );\n\n const transfers = new TransferTransaction();\n\n transfers._tokenTransfers = TokenTransfer._fromProtobuf(\n cryptoTransfer.tokenTransfers != null\n ? cryptoTransfer.tokenTransfers\n : [],\n );\n\n transfers._hbarTransfers = Transfer._fromProtobuf(\n cryptoTransfer.transfers != null\n ? cryptoTransfer.transfers.accountAmounts != null\n ? cryptoTransfer.transfers.accountAmounts\n : []\n : [],\n );\n\n transfers._nftTransfers = TokenNftTransfer._fromProtobuf(\n cryptoTransfer.tokenTransfers != null\n ? cryptoTransfer.tokenTransfers\n : [],\n );\n\n return Transaction._fromProtobufTransactions(\n transfers,\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @returns {HbarTransferMap}\n */\n get hbarTransfers() {\n const map = new HbarTransferMap();\n\n for (const transfer of this._hbarTransfers) {\n map._set(transfer.accountId, transfer.amount);\n }\n\n return map;\n }\n\n /**\n * @returns {Transfer[]}\n */\n get hbarTransfersList() {\n return this._hbarTransfers;\n }\n\n /**\n * @internal\n * @param {AccountId | string} accountId\n * @param {number | string | Long | LongObject | BigNumber | Hbar} amount\n * @param {boolean} isApproved\n * @returns {TransferTransaction}\n */\n _addHbarTransfer(accountId, amount, isApproved) {\n this._requireNotFrozen();\n\n const account =\n accountId instanceof AccountId\n ? accountId.clone()\n : AccountId.fromString(accountId);\n const hbars = amount instanceof Hbar ? amount : new Hbar(amount);\n\n for (const transfer of this._hbarTransfers) {\n if (transfer.accountId.compare(account) === 0) {\n transfer.amount = Hbar.fromTinybars(\n transfer.amount.toTinybars().add(hbars.toTinybars()),\n );\n return this;\n }\n }\n\n this._hbarTransfers.push(\n new Transfer({\n accountId: account,\n amount: hbars,\n isApproved,\n }),\n );\n\n return this;\n }\n\n /**\n * @internal\n * @param {AccountId | string} accountId\n * @param {number | string | Long | LongObject | BigNumber | Hbar} amount\n * @returns {TransferTransaction}\n */\n addHbarTransfer(accountId, amount) {\n return this._addHbarTransfer(accountId, amount, false);\n }\n\n /**\n * @internal\n * @param {AccountId | string} accountId\n * @param {number | string | Long | LongObject | BigNumber | Hbar} amount\n * @returns {TransferTransaction}\n */\n addApprovedHbarTransfer(accountId, amount) {\n return this._addHbarTransfer(accountId, amount, true);\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n for (const transfer of this._hbarTransfers) {\n transfer.accountId.validateChecksum(client);\n }\n\n for (const transfer of this._tokenTransfers) {\n transfer.tokenId.validateChecksum(client);\n transfer.accountId.validateChecksum(client);\n }\n\n for (const transfer of this._nftTransfers) {\n transfer.tokenId.validateChecksum(client);\n transfer.senderAccountId.validateChecksum(client);\n transfer.receiverAccountId.validateChecksum(client);\n }\n }\n\n /**\n * @deprecated - Use `addApprovedHbarTransfer()` instead\n * @param {AccountId | string} accountId\n * @param {boolean} isApproved\n * @returns {TransferTransaction}\n */\n setHbarTransferApproval(accountId, isApproved) {\n const account =\n typeof accountId === \"string\"\n ? AccountId.fromString(accountId)\n : accountId;\n\n for (const transfer of this._hbarTransfers) {\n if (transfer.accountId.compare(account) === 0) {\n transfer.isApproved = isApproved;\n }\n }\n\n return this;\n }\n\n /**\n * @deprecated - Use `addApprovedTokenTransfer()` instead\n * @param {TokenId | string} tokenId\n * @param {AccountId | string} accountId\n * @param {boolean} isApproved\n * @returns {TransferTransaction}\n */\n setTokenTransferApproval(tokenId, accountId, isApproved) {\n const token =\n typeof tokenId === \"string\" ? TokenId.fromString(tokenId) : tokenId;\n const account =\n typeof accountId === \"string\"\n ? AccountId.fromString(accountId)\n : accountId;\n\n for (const tokenTransfer of this._tokenTransfers) {\n if (\n tokenTransfer.tokenId.compare(token) === 0 &&\n tokenTransfer.accountId.compare(account) === 0\n ) {\n tokenTransfer.isApproved = isApproved;\n }\n }\n\n return this;\n }\n\n /**\n * @deprecated - Use `addApprovedNftTransfer()` instead\n * @param {NftId | string} nftId\n * @param {boolean} isApproved\n * @returns {TransferTransaction}\n */\n setNftTransferApproval(nftId, isApproved) {\n const nft = typeof nftId === \"string\" ? NftId.fromString(nftId) : nftId;\n\n for (const transfer of this._nftTransfers) {\n if (\n transfer.tokenId.compare(nft.tokenId) === 0 &&\n transfer.serialNumber.compare(nft.serial) === 0\n ) {\n transfer.isApproved = isApproved;\n }\n }\n\n return this;\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.crypto.cryptoTransfer(request);\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"cryptoTransfer\";\n }\n\n /**\n * @override\n * @protected\n * @returns {HashgraphProto.proto.ICryptoTransferTransactionBody}\n */\n _makeTransactionData() {\n const { tokenTransfers } = super._makeTransactionData();\n\n this._hbarTransfers.sort((a, b) => a.accountId.compare(b.accountId));\n\n return {\n transfers: {\n accountAmounts: this._hbarTransfers.map((transfer) => {\n return {\n accountID: transfer.accountId._toProtobuf(),\n amount: transfer.amount.toTinybars(),\n isApproval: transfer.isApproved,\n };\n }),\n },\n tokenTransfers,\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `TransferTransaction:${timestamp.toString()}`;\n }\n}\n\nTRANSACTION_REGISTRY.set(\n \"cryptoTransfer\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n TransferTransaction._fromProtobuf,\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport PrivateKey from \"./PrivateKey.js\";\nimport AccountId from \"./account/AccountId.js\";\nimport SignerSignature from \"./SignerSignature.js\";\nimport AccountBalanceQuery from \"./account/AccountBalanceQuery.js\";\nimport AccountInfoQuery from \"./account/AccountInfoQuery.js\";\nimport AccountRecordsQuery from \"./account/AccountRecordsQuery.js\";\nimport TransactionId from \"./transaction/TransactionId.js\";\nimport * as util from \"./util.js\";\n\n/**\n * @template RequestT\n * @template ResponseT\n * @template OutputT\n * @typedef {import(\"./Executable.js\").default} Executable\n */\n\n/**\n * @typedef {import(\"./Signer.js\").Signer} Signer\n * @typedef {import(\"./Provider.js\").Provider} Provider\n * @typedef {import(\"./LedgerId.js\").default} LedgerId\n * @typedef {import(\"./Key.js\").default} Key\n * @typedef {import(\"./transaction/Transaction.js\").default} Transaction\n * @typedef {import(\"./transaction/TransactionResponse.js\").default} TransactionResponse\n * @typedef {import(\"./transaction/TransactionReceipt.js\").default} TransactionReceipt\n * @typedef {import(\"./transaction/TransactionRecord.js\").default} TransactionRecord\n * @typedef {import(\"./account/AccountBalance.js\").default} AccountBalance\n * @typedef {import(\"./account/AccountInfo.js\").default} AccountInfo\n */\n\n/**\n * @template {any} O\n * @typedef {import(\"./query/Query.js\").default} Query\n */\n\n/**\n * @implements {Signer}\n */\nexport default class Wallet {\n /**\n * NOTE: When using string for private key, the string needs to contain DER headers\n *\n * @param {AccountId | string} accountId\n * @param {PrivateKey | string} privateKey\n * @param {Provider=} provider\n */\n constructor(accountId, privateKey, provider) {\n const key =\n typeof privateKey === \"string\"\n ? PrivateKey.fromStringDer(privateKey)\n : privateKey;\n\n this.publicKey = key.publicKey;\n /**\n * @type {(message: Uint8Array) => Promise}\n */\n this.signer = (message) => Promise.resolve(key.sign(message));\n this.provider = provider;\n this.accountId =\n typeof accountId === \"string\"\n ? AccountId.fromString(accountId)\n : accountId;\n }\n\n /**\n * @returns {Promise}\n */\n static createRandomED25519() {\n const privateKey = PrivateKey.generateED25519();\n const publicKey = privateKey.publicKey;\n const accountId = publicKey.toAccountId(0, 0);\n return Promise.resolve(new Wallet(accountId, privateKey));\n }\n\n /**\n * @returns {Promise}\n */\n static createRandomECDSA() {\n const privateKey = PrivateKey.generateECDSA();\n const publicKey = privateKey.publicKey;\n const accountId = publicKey.toAccountId(0, 0);\n return Promise.resolve(new Wallet(accountId, privateKey));\n }\n\n /**\n * @returns {Provider=}\n */\n getProvider() {\n return this.provider;\n }\n\n /**\n * @abstract\n * @returns {AccountId}\n */\n getAccountId() {\n return this.accountId;\n }\n\n /**\n * @returns {Key}\n */\n getAccountKey() {\n return this.publicKey;\n }\n\n /**\n * @returns {LedgerId?}\n */\n getLedgerId() {\n return this.provider == null ? null : this.provider.getLedgerId();\n }\n\n /**\n * @abstract\n * @returns {{[key: string]: (string | AccountId)}}\n */\n getNetwork() {\n return this.provider == null ? {} : this.provider.getNetwork();\n }\n\n /**\n * @abstract\n * @returns {string[]}\n */\n getMirrorNetwork() {\n return this.provider == null ? [] : this.provider.getMirrorNetwork();\n }\n\n /**\n * @param {Uint8Array[]} messages\n * @returns {Promise}\n */\n async sign(messages) {\n const sigantures = [];\n\n for (const message of messages) {\n sigantures.push(\n new SignerSignature({\n publicKey: this.publicKey,\n signature: await this.signer(message),\n accountId: this.accountId,\n }),\n );\n }\n\n return sigantures;\n }\n\n /**\n * @returns {Promise}\n */\n getAccountBalance() {\n return this.call(\n new AccountBalanceQuery().setAccountId(this.accountId),\n );\n }\n\n /**\n * @abstract\n * @returns {Promise}\n */\n getAccountInfo() {\n return this.call(new AccountInfoQuery().setAccountId(this.accountId));\n }\n\n /**\n * @abstract\n * @returns {Promise}\n */\n getAccountRecords() {\n return this.call(\n new AccountRecordsQuery().setAccountId(this.accountId),\n );\n }\n\n /**\n * @template {Transaction} T\n * @param {T} transaction\n * @returns {Promise}\n */\n signTransaction(transaction) {\n return transaction.signWith(this.publicKey, this.signer);\n }\n\n /**\n * @template {Transaction} T\n * @param {T} transaction\n * @returns {Promise}\n */\n checkTransaction(transaction) {\n const transactionId = transaction.transactionId;\n if (\n transactionId != null &&\n transactionId.accountId != null &&\n transactionId.accountId.compare(this.accountId) != 0\n ) {\n throw new Error(\n \"transaction's ID constructed with a different account ID\",\n );\n }\n\n if (this.provider == null) {\n return Promise.resolve(transaction);\n }\n\n const nodeAccountIds = (\n transaction.nodeAccountIds != null ? transaction.nodeAccountIds : []\n ).map((nodeAccountId) => nodeAccountId.toString());\n const network = Object.values(this.provider.getNetwork()).map(\n (nodeAccountId) => nodeAccountId.toString(),\n );\n\n if (\n !nodeAccountIds.reduce(\n (previous, current) => previous && network.includes(current),\n true,\n )\n ) {\n throw new Error(\n \"Transaction already set node account IDs to values not within the current network\",\n );\n }\n\n return Promise.resolve(transaction);\n }\n\n /**\n * @template {Transaction} T\n * @param {T} transaction\n * @returns {Promise}\n */\n populateTransaction(transaction) {\n transaction._freezeWithAccountId(this.accountId);\n\n if (transaction.transactionId == null) {\n transaction.setTransactionId(\n TransactionId.generate(this.accountId),\n );\n }\n\n if (\n transaction.nodeAccountIds != null &&\n transaction.nodeAccountIds.length != 0\n ) {\n return Promise.resolve(transaction.freeze());\n }\n\n if (this.provider == null) {\n return Promise.resolve(transaction);\n }\n\n const nodeAccountIds = Object.values(this.provider.getNetwork()).map(\n (id) => (typeof id === \"string\" ? AccountId.fromString(id) : id),\n );\n util.shuffle(nodeAccountIds);\n transaction.setNodeAccountIds(\n nodeAccountIds.slice(0, (nodeAccountIds.length + 3 - 1) / 3),\n );\n\n return Promise.resolve(transaction.freeze());\n }\n\n /**\n * @template RequestT\n * @template ResponseT\n * @template OutputT\n * @param {Executable} request\n * @returns {Promise}\n */\n call(request) {\n if (this.provider == null) {\n throw new Error(\n \"cannot send request with an wallet that doesn't contain a provider\",\n );\n }\n\n return this.provider.call(\n request._setOperatorWith(\n this.accountId,\n this.publicKey,\n this.signer,\n ),\n );\n }\n}\n","'use strict'\nfunction tryStringify (o) {\n try { return JSON.stringify(o) } catch(e) { return '\"[Circular]\"' }\n}\n\nmodule.exports = format\n\nfunction format(f, args, opts) {\n var ss = (opts && opts.stringify) || tryStringify\n var offset = 1\n if (typeof f === 'object' && f !== null) {\n var len = args.length + offset\n if (len === 1) return f\n var objects = new Array(len)\n objects[0] = ss(f)\n for (var index = 1; index < len; index++) {\n objects[index] = ss(args[index])\n }\n return objects.join(' ')\n }\n if (typeof f !== 'string') {\n return f\n }\n var argLen = args.length\n if (argLen === 0) return f\n var str = ''\n var a = 1 - offset\n var lastPos = -1\n var flen = (f && f.length) || 0\n for (var i = 0; i < flen;) {\n if (f.charCodeAt(i) === 37 && i + 1 < flen) {\n lastPos = lastPos > -1 ? lastPos : 0\n switch (f.charCodeAt(i + 1)) {\n case 100: // 'd'\n case 102: // 'f'\n if (a >= argLen)\n break\n if (args[a] == null) break\n if (lastPos < i)\n str += f.slice(lastPos, i)\n str += Number(args[a])\n lastPos = i + 2\n i++\n break\n case 105: // 'i'\n if (a >= argLen)\n break\n if (args[a] == null) break\n if (lastPos < i)\n str += f.slice(lastPos, i)\n str += Math.floor(Number(args[a]))\n lastPos = i + 2\n i++\n break\n case 79: // 'O'\n case 111: // 'o'\n case 106: // 'j'\n if (a >= argLen)\n break\n if (args[a] === undefined) break\n if (lastPos < i)\n str += f.slice(lastPos, i)\n var type = typeof args[a]\n if (type === 'string') {\n str += '\\'' + args[a] + '\\''\n lastPos = i + 2\n i++\n break\n }\n if (type === 'function') {\n str += args[a].name || ''\n lastPos = i + 2\n i++\n break\n }\n str += ss(args[a])\n lastPos = i + 2\n i++\n break\n case 115: // 's'\n if (a >= argLen)\n break\n if (lastPos < i)\n str += f.slice(lastPos, i)\n str += String(args[a])\n lastPos = i + 2\n i++\n break\n case 37: // '%'\n if (lastPos < i)\n str += f.slice(lastPos, i)\n str += '%'\n lastPos = i + 2\n i++\n a--\n break\n }\n ++a\n }\n ++i\n }\n if (lastPos === -1)\n return f\n else if (lastPos < flen) {\n str += f.slice(lastPos)\n }\n\n return str\n}\n","'use strict'\n\nconst format = require('quick-format-unescaped')\n\nmodule.exports = pino\n\nconst _console = pfGlobalThisOrFallback().console || {}\nconst stdSerializers = {\n mapHttpRequest: mock,\n mapHttpResponse: mock,\n wrapRequestSerializer: passthrough,\n wrapResponseSerializer: passthrough,\n wrapErrorSerializer: passthrough,\n req: mock,\n res: mock,\n err: asErrValue,\n errWithCause: asErrValue\n}\nfunction levelToValue (level, logger) {\n return level === 'silent'\n ? Infinity\n : logger.levels.values[level]\n}\nconst baseLogFunctionSymbol = Symbol('pino.logFuncs')\nconst hierarchySymbol = Symbol('pino.hierarchy')\n\nconst logFallbackMap = {\n error: 'log',\n fatal: 'error',\n warn: 'error',\n info: 'log',\n debug: 'log',\n trace: 'log'\n}\n\nfunction appendChildLogger (parentLogger, childLogger) {\n const newEntry = {\n logger: childLogger,\n parent: parentLogger[hierarchySymbol]\n }\n childLogger[hierarchySymbol] = newEntry\n}\n\nfunction setupBaseLogFunctions (logger, levels, proto) {\n const logFunctions = {}\n levels.forEach(level => {\n logFunctions[level] = proto[level] ? proto[level] : (_console[level] || _console[logFallbackMap[level] || 'log'] || noop)\n })\n logger[baseLogFunctionSymbol] = logFunctions\n}\n\nfunction shouldSerialize (serialize, serializers) {\n if (Array.isArray(serialize)) {\n const hasToFilter = serialize.filter(function (k) {\n return k !== '!stdSerializers.err'\n })\n return hasToFilter\n } else if (serialize === true) {\n return Object.keys(serializers)\n }\n\n return false\n}\n\nfunction pino (opts) {\n opts = opts || {}\n opts.browser = opts.browser || {}\n\n const transmit = opts.browser.transmit\n if (transmit && typeof transmit.send !== 'function') { throw Error('pino: transmit option must have a send function') }\n\n const proto = opts.browser.write || _console\n if (opts.browser.write) opts.browser.asObject = true\n const serializers = opts.serializers || {}\n const serialize = shouldSerialize(opts.browser.serialize, serializers)\n let stdErrSerialize = opts.browser.serialize\n\n if (\n Array.isArray(opts.browser.serialize) &&\n opts.browser.serialize.indexOf('!stdSerializers.err') > -1\n ) stdErrSerialize = false\n\n const customLevels = Object.keys(opts.customLevels || {})\n const levels = ['error', 'fatal', 'warn', 'info', 'debug', 'trace'].concat(customLevels)\n\n if (typeof proto === 'function') {\n levels.forEach(function (level) {\n proto[level] = proto\n })\n }\n if (opts.enabled === false || opts.browser.disabled) opts.level = 'silent'\n const level = opts.level || 'info'\n const logger = Object.create(proto)\n if (!logger.log) logger.log = noop\n\n setupBaseLogFunctions(logger, levels, proto)\n // setup root hierarchy entry\n appendChildLogger({}, logger)\n\n Object.defineProperty(logger, 'levelVal', {\n get: getLevelVal\n })\n Object.defineProperty(logger, 'level', {\n get: getLevel,\n set: setLevel\n })\n\n const setOpts = {\n transmit,\n serialize,\n asObject: opts.browser.asObject,\n formatters: opts.browser.formatters,\n levels,\n timestamp: getTimeFunction(opts)\n }\n logger.levels = getLevels(opts)\n logger.level = level\n\n logger.setMaxListeners = logger.getMaxListeners =\n logger.emit = logger.addListener = logger.on =\n logger.prependListener = logger.once =\n logger.prependOnceListener = logger.removeListener =\n logger.removeAllListeners = logger.listeners =\n logger.listenerCount = logger.eventNames =\n logger.write = logger.flush = noop\n logger.serializers = serializers\n logger._serialize = serialize\n logger._stdErrSerialize = stdErrSerialize\n logger.child = child\n\n if (transmit) logger._logEvent = createLogEventShape()\n\n function getLevelVal () {\n return levelToValue(this.level, this)\n }\n\n function getLevel () {\n return this._level\n }\n function setLevel (level) {\n if (level !== 'silent' && !this.levels.values[level]) {\n throw Error('unknown level ' + level)\n }\n this._level = level\n\n set(this, setOpts, logger, 'error') // <-- must stay first\n set(this, setOpts, logger, 'fatal')\n set(this, setOpts, logger, 'warn')\n set(this, setOpts, logger, 'info')\n set(this, setOpts, logger, 'debug')\n set(this, setOpts, logger, 'trace')\n\n customLevels.forEach((level) => {\n set(this, setOpts, logger, level)\n })\n }\n\n function child (bindings, childOptions) {\n if (!bindings) {\n throw new Error('missing bindings for child Pino')\n }\n childOptions = childOptions || {}\n if (serialize && bindings.serializers) {\n childOptions.serializers = bindings.serializers\n }\n const childOptionsSerializers = childOptions.serializers\n if (serialize && childOptionsSerializers) {\n var childSerializers = Object.assign({}, serializers, childOptionsSerializers)\n var childSerialize = opts.browser.serialize === true\n ? Object.keys(childSerializers)\n : serialize\n delete bindings.serializers\n applySerializers([bindings], childSerialize, childSerializers, this._stdErrSerialize)\n }\n function Child (parent) {\n this._childLevel = (parent._childLevel | 0) + 1\n\n // make sure bindings are available in the `set` function\n this.bindings = bindings\n\n if (childSerializers) {\n this.serializers = childSerializers\n this._serialize = childSerialize\n }\n if (transmit) {\n this._logEvent = createLogEventShape(\n [].concat(parent._logEvent.bindings, bindings)\n )\n }\n }\n Child.prototype = this\n const newLogger = new Child(this)\n\n // must happen before the level is assigned\n appendChildLogger(this, newLogger)\n // required to actually initialize the logger functions for any given child\n newLogger.level = this.level\n\n return newLogger\n }\n return logger\n}\n\nfunction getLevels (opts) {\n const customLevels = opts.customLevels || {}\n\n const values = Object.assign({}, pino.levels.values, customLevels)\n const labels = Object.assign({}, pino.levels.labels, invertObject(customLevels))\n\n return {\n values,\n labels\n }\n}\n\nfunction invertObject (obj) {\n const inverted = {}\n Object.keys(obj).forEach(function (key) {\n inverted[obj[key]] = key\n })\n return inverted\n}\n\npino.levels = {\n values: {\n fatal: 60,\n error: 50,\n warn: 40,\n info: 30,\n debug: 20,\n trace: 10\n },\n labels: {\n 10: 'trace',\n 20: 'debug',\n 30: 'info',\n 40: 'warn',\n 50: 'error',\n 60: 'fatal'\n }\n}\n\npino.stdSerializers = stdSerializers\npino.stdTimeFunctions = Object.assign({}, { nullTime, epochTime, unixTime, isoTime })\n\nfunction getBindingChain (logger) {\n const bindings = []\n if (logger.bindings) {\n bindings.push(logger.bindings)\n }\n\n // traverse up the tree to get all bindings\n let hierarchy = logger[hierarchySymbol]\n while (hierarchy.parent) {\n hierarchy = hierarchy.parent\n if (hierarchy.logger.bindings) {\n bindings.push(hierarchy.logger.bindings)\n }\n }\n\n return bindings.reverse()\n}\n\nfunction set (self, opts, rootLogger, level) {\n // override the current log functions with either `noop` or the base log function\n Object.defineProperty(self, level, {\n value: (levelToValue(self.level, rootLogger) > levelToValue(level, rootLogger)\n ? noop\n : rootLogger[baseLogFunctionSymbol][level]),\n writable: true,\n enumerable: true,\n configurable: true\n })\n\n if (!opts.transmit && self[level] === noop) {\n return\n }\n\n // make sure the log format is correct\n self[level] = createWrap(self, opts, rootLogger, level)\n\n // prepend bindings if it is not the root logger\n const bindings = getBindingChain(self)\n if (bindings.length === 0) {\n // early exit in case for rootLogger\n return\n }\n self[level] = prependBindingsInArguments(bindings, self[level])\n}\n\nfunction prependBindingsInArguments (bindings, logFunc) {\n return function () {\n return logFunc.apply(this, [...bindings, ...arguments])\n }\n}\n\nfunction createWrap (self, opts, rootLogger, level) {\n return (function (write) {\n return function LOG () {\n const ts = opts.timestamp()\n const args = new Array(arguments.length)\n const proto = (Object.getPrototypeOf && Object.getPrototypeOf(this) === _console) ? _console : this\n for (var i = 0; i < args.length; i++) args[i] = arguments[i]\n\n if (opts.serialize && !opts.asObject) {\n applySerializers(args, this._serialize, this.serializers, this._stdErrSerialize)\n }\n if (opts.asObject || opts.formatters) {\n write.call(proto, asObject(this, level, args, ts, opts.formatters))\n } else write.apply(proto, args)\n\n if (opts.transmit) {\n const transmitLevel = opts.transmit.level || self._level\n const transmitValue = rootLogger.levels.values[transmitLevel]\n const methodValue = rootLogger.levels.values[level]\n if (methodValue < transmitValue) return\n transmit(this, {\n ts,\n methodLevel: level,\n methodValue,\n transmitLevel,\n transmitValue: rootLogger.levels.values[opts.transmit.level || self._level],\n send: opts.transmit.send,\n val: levelToValue(self._level, rootLogger)\n }, args)\n }\n }\n })(self[baseLogFunctionSymbol][level])\n}\n\nfunction asObject (logger, level, args, ts, formatters = {}) {\n const {\n level: levelFormatter = () => logger.levels.values[level],\n log: logObjectFormatter = (obj) => obj\n } = formatters\n if (logger._serialize) applySerializers(args, logger._serialize, logger.serializers, logger._stdErrSerialize)\n const argsCloned = args.slice()\n let msg = argsCloned[0]\n const logObject = {}\n if (ts) {\n logObject.time = ts\n }\n logObject.level = levelFormatter(level, logger.levels.values[level])\n\n let lvl = (logger._childLevel | 0) + 1\n if (lvl < 1) lvl = 1\n // deliberate, catching objects, arrays\n if (msg !== null && typeof msg === 'object') {\n while (lvl-- && typeof argsCloned[0] === 'object') {\n Object.assign(logObject, argsCloned.shift())\n }\n msg = argsCloned.length ? format(argsCloned.shift(), argsCloned) : undefined\n } else if (typeof msg === 'string') msg = format(argsCloned.shift(), argsCloned)\n if (msg !== undefined) logObject.msg = msg\n\n const formattedLogObject = logObjectFormatter(logObject)\n return formattedLogObject\n}\n\nfunction applySerializers (args, serialize, serializers, stdErrSerialize) {\n for (const i in args) {\n if (stdErrSerialize && args[i] instanceof Error) {\n args[i] = pino.stdSerializers.err(args[i])\n } else if (typeof args[i] === 'object' && !Array.isArray(args[i])) {\n for (const k in args[i]) {\n if (serialize && serialize.indexOf(k) > -1 && k in serializers) {\n args[i][k] = serializers[k](args[i][k])\n }\n }\n }\n }\n}\n\nfunction transmit (logger, opts, args) {\n const send = opts.send\n const ts = opts.ts\n const methodLevel = opts.methodLevel\n const methodValue = opts.methodValue\n const val = opts.val\n const bindings = logger._logEvent.bindings\n\n applySerializers(\n args,\n logger._serialize || Object.keys(logger.serializers),\n logger.serializers,\n logger._stdErrSerialize === undefined ? true : logger._stdErrSerialize\n )\n logger._logEvent.ts = ts\n logger._logEvent.messages = args.filter(function (arg) {\n // bindings can only be objects, so reference equality check via indexOf is fine\n return bindings.indexOf(arg) === -1\n })\n\n logger._logEvent.level.label = methodLevel\n logger._logEvent.level.value = methodValue\n\n send(methodLevel, logger._logEvent, val)\n\n logger._logEvent = createLogEventShape(bindings)\n}\n\nfunction createLogEventShape (bindings) {\n return {\n ts: 0,\n messages: [],\n bindings: bindings || [],\n level: { label: '', value: 0 }\n }\n}\n\nfunction asErrValue (err) {\n const obj = {\n type: err.constructor.name,\n msg: err.message,\n stack: err.stack\n }\n for (const key in err) {\n if (obj[key] === undefined) {\n obj[key] = err[key]\n }\n }\n return obj\n}\n\nfunction getTimeFunction (opts) {\n if (typeof opts.timestamp === 'function') {\n return opts.timestamp\n }\n if (opts.timestamp === false) {\n return nullTime\n }\n return epochTime\n}\n\nfunction mock () { return {} }\nfunction passthrough (a) { return a }\nfunction noop () {}\n\nfunction nullTime () { return false }\nfunction epochTime () { return Date.now() }\nfunction unixTime () { return Math.round(Date.now() / 1000.0) }\nfunction isoTime () { return new Date(Date.now()).toISOString() } // using Date.now() for testability\n\n/* eslint-disable */\n/* istanbul ignore next */\nfunction pfGlobalThisOrFallback () {\n function defd (o) { return typeof o !== 'undefined' && o }\n try {\n if (typeof globalThis !== 'undefined') return globalThis\n Object.defineProperty(Object.prototype, 'globalThis', {\n get: function () {\n delete Object.prototype.globalThis\n return (this.globalThis = this)\n },\n configurable: true\n })\n return globalThis\n } catch (e) {\n return defd(self) || defd(window) || defd(this) || {}\n }\n}\n/* eslint-enable */\n\nmodule.exports.default = pino\nmodule.exports.pino = pino\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nexport default class LogLevel {\n /**\n * @hideconstructor\n * @internal\n * @param {string} name\n */\n constructor(name) {\n /** @readonly */\n this._name = name;\n\n Object.freeze(this);\n }\n\n /**\n * @returns {string}\n */\n toString() {\n switch (this) {\n case LogLevel.Silent:\n return \"silent\";\n case LogLevel.Trace:\n return \"trace\";\n case LogLevel.Debug:\n return \"debug\";\n case LogLevel.Info:\n return \"info\";\n case LogLevel.Warn:\n return \"warn\";\n case LogLevel.Error:\n return \"error\";\n case LogLevel.Fatal:\n return \"fatal\";\n default:\n return `Unknown log level (${this._name})`;\n }\n }\n\n /**\n * @param {string} level\n * @returns {LogLevel}\n */\n static _fromString(level) {\n switch (level) {\n case \"silent\":\n return LogLevel.Silent;\n case \"trace\":\n return LogLevel.Trace;\n case \"debug\":\n return LogLevel.Debug;\n case \"info\":\n return LogLevel.Info;\n case \"warn\":\n return LogLevel.Warn;\n case \"error\":\n return LogLevel.Error;\n case \"fatal\":\n return LogLevel.Fatal;\n default:\n throw new Error(`Unknown log level: ${level}`);\n }\n }\n}\n\nLogLevel.Silent = new LogLevel(\"silent\");\nLogLevel.Trace = new LogLevel(\"trace\");\nLogLevel.Debug = new LogLevel(\"debug\");\nLogLevel.Info = new LogLevel(\"info\");\nLogLevel.Warn = new LogLevel(\"warn\");\nLogLevel.Error = new LogLevel(\"error\");\nLogLevel.Fatal = new LogLevel(\"fatal\");\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\nimport pino from \"pino\";\nimport LogLevel from \"./LogLevel.js\";\n\nexport default class Logger {\n /**\n * @param {LogLevel} level\n * @param {string} logFile the file to log to, if empty, logs to console\n * @param {boolean} sync perform writes synchronously (similar to console.log)\n * @param {boolean} fsync perform a fsyncSync every time a write is completed\n * @param {boolean} mkdir ensure directory for dest file exists when true (default false)\n * @param {number} minLength the minimum length of the internal buffer that is required to be full before flushing\n */\n constructor(\n level,\n logFile = \"\",\n sync = true,\n fsync = true,\n mkdir = true,\n minLength = 0,\n ) {\n const fileTransport = logFile\n ? pino.destination({\n dest: logFile,\n sync,\n fsync,\n mkdir,\n minLength,\n })\n : null;\n\n const loggerOptions = fileTransport\n ? {\n level: level.toString(),\n timestamp: pino.stdTimeFunctions.isoTime,\n formatters: {\n bindings: () => {\n return {};\n },\n // @ts-ignore\n level: (label) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access\n return { level: label.toUpperCase() };\n },\n },\n }\n : {\n level: level.toString(),\n transport: {\n target: \"pino-pretty\",\n options: {\n translateTime: \"SYS:dd-mm-yyyy HH:MM:ss\",\n ignore: \"pid,hostname\",\n },\n },\n };\n\n /**\n * @private\n * @type {import(\"pino\").Logger}\n */\n this._logger = fileTransport\n ? pino(loggerOptions, fileTransport)\n : pino(loggerOptions);\n\n /**\n * @private\n * @type {LogLevel}\n */\n this._previousLevel = level;\n }\n\n /**\n * Set logger\n *\n * @public\n * @param {import(\"pino\").Logger} logger\n * @returns {this}\n */\n setLogger(logger) {\n this._logger = logger;\n return this;\n }\n\n /**\n * Set log level\n *\n * @public\n * @param {LogLevel} level\n * @returns {this}\n */\n setLevel(level) {\n this._previousLevel = LogLevel._fromString(this._logger.level);\n this._logger.level = level.toString();\n return this;\n }\n\n /**\n * Get logging level\n *\n * @public\n * @returns {LogLevel}\n */\n get level() {\n return LogLevel._fromString(this._logger.level);\n }\n\n /**\n * Get logging level\n *\n * @public\n * @returns {{[level: number]: string}}\n */\n get levels() {\n return this._logger.levels.labels;\n }\n\n /**\n * Set silent mode on/off\n *\n * @public\n * @description If set to true, the logger will not display any log messages\n * - This can also be achieved by calling `.setLevel(LogLevel.Silent)`\n * @param {boolean} silent\n * @returns {this}\n */\n setSilent(silent) {\n if (silent) {\n this._logger.level = LogLevel.Silent.toString();\n } else {\n // Here we are setting the level to the previous level, before silencing the logger\n this._logger.level = this._previousLevel.toString();\n }\n return this;\n }\n\n /**\n * Get silent mode\n *\n * @public\n * @returns {boolean}\n */\n get silent() {\n return this._logger.level == LogLevel.Silent.toString();\n }\n\n /**\n * Log trace\n *\n * @public\n * @param {string} message\n * @returns {void}\n */\n trace(message) {\n this._logger.trace(message);\n }\n\n /**\n * Log debug\n *\n * @public\n * @param {string} message\n * @returns {void}\n */\n debug(message) {\n this._logger.debug(message);\n }\n\n /**\n * Log info\n *\n * @public\n * @param {string} message\n * @returns {void}\n */\n info(message) {\n this._logger.info(message);\n }\n\n /**\n * Log warn\n *\n * @public\n * @param {string} message\n * @returns {void}\n */\n warn(message) {\n this._logger.warn(message);\n }\n\n /**\n * Log error\n *\n * @public\n * @param {string} message\n * @returns {void}\n */\n error(message) {\n this._logger.error(message);\n }\n\n /**\n * Log fatal\n *\n * @public\n * @param {string} message\n * @returns {void}\n */\n fatal(message) {\n this._logger.fatal(message);\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport TokenId from \"./TokenId.js\";\nimport Transaction, {\n TRANSACTION_REGISTRY,\n} from \"../transaction/Transaction.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HashgraphProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HashgraphProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HashgraphProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HashgraphProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} HashgraphProto.proto.ITransactionResponse\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenUpdateNftsTransactionBody} HashgraphProto.proto.ITokenUpdateNftsTransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITokenID} HashgraphProto.proto.ITokenID\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n * @typedef {import(\"../account/AccountId.js\").default} AccountId\n */\n\nexport default class TokenUpdateNftsTransaction extends Transaction {\n /**\n * @param {object} [props]\n * @param {TokenId | string} [props.tokenId]\n * @param {Long[]} [props.serialNumbers]\n * @param {?Uint8Array} [props.metadata]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @private\n * @type {?TokenId}\n */\n this._tokenId = null;\n\n /**\n * @private\n * @type {?Long[]}\n */\n this._serialNumbers = [];\n\n /**\n * @private\n * @type {?Uint8Array}\n */\n this._metadata = null;\n\n if (props.tokenId != null) {\n this.setTokenId(props.tokenId);\n }\n\n if (props.serialNumbers != null) {\n this.setSerialNumbers(props.serialNumbers);\n }\n\n if (props.metadata != null) {\n this.setMetadata(props.metadata);\n }\n }\n\n /**\n * @internal\n * @param {HashgraphProto.proto.ITransaction[]} transactions\n * @param {HashgraphProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HashgraphProto.proto.ITransactionBody[]} bodies\n * @returns {TokenUpdateNftsTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const tokenUpdate =\n /** @type {HashgraphProto.proto.ITokenUpdateNftsTransactionBody} */ (\n body.tokenUpdateNfts\n );\n\n return Transaction._fromProtobufTransactions(\n new TokenUpdateNftsTransaction({\n tokenId:\n tokenUpdate.token != null\n ? TokenId._fromProtobuf(tokenUpdate.token)\n : undefined,\n serialNumbers:\n tokenUpdate.serialNumbers != null\n ? tokenUpdate.serialNumbers\n : [],\n metadata:\n tokenUpdate.metadata != null\n ? Object.hasOwn(tokenUpdate.metadata, \"value\")\n ? tokenUpdate.metadata.value\n : undefined\n : undefined,\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @description Assign the token id.\n * @param {TokenId | string} tokenId\n * @returns {this}\n */\n setTokenId(tokenId) {\n this._requireNotFrozen();\n this._tokenId =\n typeof tokenId === \"string\"\n ? TokenId.fromString(tokenId)\n : tokenId.clone();\n\n return this;\n }\n\n /**\n * @description Assign the list of serial numbers.\n * @param {Long[]} serialNumbers\n * @returns {this}\n */\n setSerialNumbers(serialNumbers) {\n this._requireNotFrozen();\n this._serialNumbers = serialNumbers;\n\n return this;\n }\n\n /**\n * @param {Uint8Array} metadata\n * @returns {this}\n */\n setMetadata(metadata) {\n this._requireNotFrozen();\n this._metadata = metadata;\n\n return this;\n }\n\n /**\n * @param {Client} client\n */\n _validateChecksums(client) {\n if (this._tokenId != null) {\n this._tokenId.validateChecksum(client);\n }\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.token.pauseToken(request);\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"tokenUpdateNfts\";\n }\n\n /**\n * @override\n * @protected\n * @returns {HashgraphProto.proto.ITokenUpdateNftsTransactionBody}\n */\n _makeTransactionData() {\n return {\n token: this._tokenId != null ? this._tokenId._toProtobuf() : null,\n serialNumbers:\n this._serialNumbers != null ? this._serialNumbers : [],\n ...(this._metadata != null\n ? {\n metadata: {\n value: this._metadata,\n },\n }\n : null),\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `TokenUpdateNftsTransaction:${timestamp.toString()}`;\n }\n}\n\nTRANSACTION_REGISTRY.set(\n \"tokenUpdateNfts\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n TokenUpdateNftsTransaction._fromProtobuf,\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.IServiceEndpoint} IServiceEndpoint\n */\n\nexport default class ServiceEndpoint {\n /**\n * @param {object} [props]\n * @param {?Uint8Array} [props.ipAddressV4]\n * @param {?number} [props.port]\n * @param {?string} [props.domainName]\n */\n constructor(props) {\n /**\n * @type {?Uint8Array}\n * @description The 4-byte IPv4 address of the endpoint\n * encoded in left to right order\n * (e.g. 127.0.0.1 has bytes [127, 0, 0, 1]).\n */\n this._ipAddressV4 =\n props?.ipAddressV4 != null ? props.ipAddressV4 : null;\n\n /**\n * @type {?number}\n * @description The port of the service endpoint. It's required.\n */\n this._port = props?.port != null ? props.port : null;\n\n /**\n * @type {?string}\n * @description A node domain name. This MUST be the\n * fully qualified domain(DNS) name of the node. This\n * value MUST NOT be more than 253 characters.\n * domain_name and ipAddressV4 are mutually exclusive.\n * When the `domain_name` field is set, the `ipAddressV4`\n * field MUST NOT be set. When the `ipAddressV4` field\n * is set, the `domain_name` field MUST NOT be set.\n */\n this._domainName = props?.domainName != null ? props.domainName : null;\n }\n\n /**\n * @param {Uint8Array} ipAddressV4\n * @description Set 4-byte IPv4 address of the endpoint.\n * @returns {ServiceEndpoint}\n *\n */\n setIpAddressV4(ipAddressV4) {\n if (this._domainName != null) {\n throw new Error(\n \"Cannot set IP address when domain name is already set.\",\n );\n }\n this._ipAddressV4 = ipAddressV4;\n return this;\n }\n\n /**\n * @description Get 4-byte IPv4 address of the endpoint.\n * @returns {?Uint8Array}\n *\n */\n get getIpAddressV4() {\n return this._ipAddressV4;\n }\n\n /**\n * @param {number} port\n * @description Set port of the endpoint.\n * @returns {ServiceEndpoint}\n *\n */\n setPort(port) {\n this._port = port;\n return this;\n }\n\n /**\n * @description Get port of the endpoint.\n * @returns {?number}\n *\n */\n get getPort() {\n return this._port;\n }\n\n /**\n * @param {string} domainName\n * @description Set domain name of the endpoint.\n * @returns {ServiceEndpoint}\n *\n */\n setDomainName(domainName) {\n if (this._ipAddressV4 != null) {\n throw new Error(\n \"Cannot set domain name when IP address is already set.\",\n );\n }\n this._domainName = domainName;\n return this;\n }\n\n /**\n * @description Get domain name of the endpoint.\n * @returns {?string}\n *\n */\n get getDomainName() {\n return this._domainName;\n }\n\n /**\n * @internal\n * @param {IServiceEndpoint} serviceEndpoint\n * @returns {ServiceEndpoint}\n */\n static _fromProtobuf(serviceEndpoint) {\n return new ServiceEndpoint({\n ipAddressV4:\n serviceEndpoint.ipAddressV4 != null\n ? serviceEndpoint.ipAddressV4\n : undefined,\n port:\n serviceEndpoint.port != null ? serviceEndpoint.port : undefined,\n domainName:\n serviceEndpoint.domainName != null\n ? serviceEndpoint.domainName\n : undefined,\n });\n }\n\n /**\n * @internal\n * @returns {IServiceEndpoint}\n */\n _toProtobuf() {\n return {\n ipAddressV4: this._ipAddressV4,\n port: this._port,\n domainName: this._domainName,\n };\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport AccountId from \"../account/AccountId.js\";\nimport Key from \"../Key.js\";\nimport Transaction, {\n TRANSACTION_REGISTRY,\n} from \"../transaction/Transaction.js\";\nimport ServiceEndpoint from \"./ServiceEndpoint.js\";\n\nconst DESCRIPTION_MAX_LENGTH = 100;\nconst GOSSIP_ENDPOINTS_MAX_LENGTH = 10;\nconst SERVICE_ENDPOINTS_MAX_LENGTH = 8;\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} ITransactionResponse\n */\n\n/**\n * @namespace com.hedera.hapi.node.addressbook\n * @typedef {import(\"@hashgraph/proto\").com.hedera.hapi.node.addressbook.INodeCreateTransactionBody} INodeCreateTransactionBody\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n */\n\n/**\n * A transaction to create a new consensus node in the network.\n */\nexport default class NodeCreateTransaction extends Transaction {\n /**\n * @param {object} [props]\n * @param {AccountId} [props.accountId]\n * @param {?string} [props.description]\n * @param {Array} [props.gossipEndpoints]\n * @param {?Array} [props.serviceEndpoints]\n * @param {Uint8Array} [props.gossipCaCertificate]\n * @param {Uint8Array} [props.grpcCertificateHash]\n * @param {Key} [props.adminKey]\n */\n constructor(props) {\n super();\n\n /**\n * @private\n * @type {?AccountId}\n * @description Node account identifier. It's required.\n */\n this._accountId = props?.accountId != null ? props.accountId : null;\n\n /**\n * @private\n * @type {?string}\n * @description Short description of the node.\n */\n this._description =\n props?.description != null ? props.description : null;\n\n /**\n * @private\n * @type {?Array}\n * @description List of service endpoints for gossip. It's required.\n */\n this._gossipEndpoints =\n props?.gossipEndpoints != null ? props.gossipEndpoints : null;\n\n /**\n * @private\n * @type {?Array}\n * @description List of service endpoints for gRPC calls.\n */\n this._serviceEndpoints =\n props?.serviceEndpoints != null ? props.serviceEndpoints : null;\n\n /**\n * @private\n * @type {?Uint8Array}\n * @description Certificate used to sign gossip events. It's required.\n */\n this._gossipCaCertificate =\n props?.gossipCaCertificate != null\n ? props.gossipCaCertificate\n : null;\n\n /**\n * @private\n * @type {?Uint8Array}\n * @description Hash of the node gRPC TLS certificate.\n */\n this._grpcCertificateHash =\n props?.grpcCertificateHash != null\n ? props.grpcCertificateHash\n : null;\n\n /**\n * @private\n * @type {?Key}\n * @description Administrative key controlled by the node operator. It's required.\n */\n this._adminKey = props?.adminKey != null ? props.adminKey : null;\n }\n\n /**\n * @internal\n * @param {ITransaction[]} transactions\n * @param {ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {ITransactionBody[]} bodies\n * @returns {NodeCreateTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const nodeCreate = /** @type {INodeCreateTransactionBody} */ (\n body.nodeCreate\n );\n\n return Transaction._fromProtobufTransactions(\n new NodeCreateTransaction({\n accountId:\n nodeCreate.accountId != null\n ? AccountId._fromProtobuf(nodeCreate.accountId)\n : undefined,\n description:\n nodeCreate.description != null\n ? nodeCreate.description\n : undefined,\n gossipEndpoints:\n nodeCreate.gossipEndpoint != null\n ? nodeCreate.gossipEndpoint.map((endpoint) =>\n ServiceEndpoint._fromProtobuf(endpoint),\n )\n : undefined,\n serviceEndpoints:\n nodeCreate.serviceEndpoint != null\n ? nodeCreate.serviceEndpoint.map((endpoint) =>\n ServiceEndpoint._fromProtobuf(endpoint),\n )\n : undefined,\n gossipCaCertificate:\n nodeCreate.gossipCaCertificate != null\n ? nodeCreate.gossipCaCertificate\n : undefined,\n grpcCertificateHash:\n nodeCreate.grpcCertificateHash != null\n ? nodeCreate.grpcCertificateHash\n : undefined,\n adminKey:\n nodeCreate.adminKey != null\n ? Key._fromProtobufKey(nodeCreate.adminKey)\n : undefined,\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @param {AccountId | string} accountId\n * @description Set node account identifier.\n * @returns {NodeCreateTransaction}\n */\n setAccountId(accountId) {\n this._requireNotFrozen();\n this._accountId =\n accountId instanceof AccountId\n ? accountId\n : AccountId.fromString(accountId);\n\n return this;\n }\n\n /**\n * @description Get node account identifier.\n * @returns {?AccountId}\n */\n get accountId() {\n return this._accountId;\n }\n\n /**\n * @param {string} description\n * @description Set description of the node.\n * @returns {NodeCreateTransaction}\n */\n setDescription(description) {\n this._requireNotFrozen();\n if (description.length > DESCRIPTION_MAX_LENGTH) {\n throw new Error(\n `Description must be at most ${DESCRIPTION_MAX_LENGTH} characters.`,\n );\n }\n this._description = description;\n\n return this;\n }\n\n /**\n * @description Get description of the node.\n * @returns {?string}\n */\n get description() {\n return this._description;\n }\n\n /**\n * @param {ServiceEndpoint[]} gossipEndpoints\n * @description Set list of service endpoints for gossip.\n * @returns {NodeCreateTransaction}\n */\n setGossipEndpoints(gossipEndpoints) {\n this._requireNotFrozen();\n if (gossipEndpoints.length == 0) {\n throw new Error(\"GossipEndpoints list must not be empty.\");\n }\n\n if (gossipEndpoints.length > GOSSIP_ENDPOINTS_MAX_LENGTH) {\n throw new Error(\n `GossipEndpoints list must not contain more than ${GOSSIP_ENDPOINTS_MAX_LENGTH} entries.`,\n );\n }\n\n this._gossipEndpoints = [...gossipEndpoints];\n\n return this;\n }\n\n /**\n * @description Get list of service endpoints for gossip.\n * @returns {?Array}\n */\n get gossipEndpoints() {\n return this._gossipEndpoints;\n }\n\n /**\n * @param {ServiceEndpoint} endpoint\n * @description Add an endpoint to the list of service endpoints for gossip.\n * @returns {NodeCreateTransaction}\n */\n addGossipEndpoint(endpoint) {\n if (this._gossipEndpoints != null) {\n this._gossipEndpoints.push(endpoint);\n }\n return this;\n }\n\n /**\n * @param {ServiceEndpoint[]} serviceEndpoints\n * @description Set list of service endpoints for gRPC calls.\n * @returns {NodeCreateTransaction}\n */\n setServiceEndpoints(serviceEndpoints) {\n this._requireNotFrozen();\n if (serviceEndpoints.length == 0) {\n throw new Error(\"ServiceEndpoints list must not be empty.\");\n }\n\n if (serviceEndpoints.length > SERVICE_ENDPOINTS_MAX_LENGTH) {\n throw new Error(\n `ServiceEndpoints list must not contain more than ${SERVICE_ENDPOINTS_MAX_LENGTH} entries.`,\n );\n }\n\n this._serviceEndpoints = [...serviceEndpoints];\n\n return this;\n }\n\n /**\n * @description Get list of service endpoints for gRPC calls.\n * @returns {?Array}\n */\n get serviceEndpoints() {\n return this._serviceEndpoints;\n }\n\n /**\n * @param {ServiceEndpoint} endpoint\n * @description Add an endpoint to the list of service endpoints for gRPC calls.\n * @returns {NodeCreateTransaction}\n */\n addServiceEndpoint(endpoint) {\n if (this._serviceEndpoints != null) {\n this._serviceEndpoints.push(endpoint);\n }\n return this;\n }\n\n /**\n * @param {Uint8Array} bytes\n * @description Set certificate used to sign gossip events.\n * @returns {NodeCreateTransaction}\n */\n setGossipCaCertificate(bytes) {\n this._requireNotFrozen();\n if (bytes.length == 0) {\n throw new Error(\"GossipCaCertificate must not be empty.\");\n }\n\n this._gossipCaCertificate = bytes;\n\n return this;\n }\n\n /**\n * @description Get certificate used to sign gossip events.\n * @returns {?Uint8Array}\n */\n get gossipCaCertificate() {\n return this._gossipCaCertificate;\n }\n\n /**\n * @param {Uint8Array} bytes\n * @description Set hash of the node gRPC TLS certificate.\n * @returns {NodeCreateTransaction}\n */\n setCertificateHash(bytes) {\n this._requireNotFrozen();\n this._grpcCertificateHash = bytes;\n\n return this;\n }\n\n /**\n * @description Get hash of the node gRPC TLS certificate.\n * @returns {?Uint8Array}\n */\n get certificateHash() {\n return this._grpcCertificateHash;\n }\n\n /**\n * @param {Key} adminKey\n * @description Set administrative key controlled by the node operator.\n * @returns {NodeCreateTransaction}\n */\n setAdminKey(adminKey) {\n this._requireNotFrozen();\n this._adminKey = adminKey;\n\n return this;\n }\n\n /**\n * @description Get administrative key controlled by the node operator.\n * @returns {?Key}\n */\n get adminKey() {\n return this._adminKey;\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.addressBook.createNode(request);\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"nodeCreate\";\n }\n\n /**\n * @override\n * @protected\n * @returns {INodeCreateTransactionBody}\n */\n _makeTransactionData() {\n return {\n accountId:\n this._accountId != null ? this._accountId._toProtobuf() : null,\n description: this._description != null ? this._description : null,\n gossipEndpoint:\n this._gossipEndpoints != null\n ? this._gossipEndpoints.map(\n (/** @type {ServiceEndpoint} */ endpoint) =>\n endpoint._toProtobuf(),\n )\n : null,\n serviceEndpoint:\n this._serviceEndpoints != null\n ? this._serviceEndpoints.map(\n (/** @type {ServiceEndpoint} */ endpoint) =>\n endpoint._toProtobuf(),\n )\n : null,\n gossipCaCertificate:\n this._gossipCaCertificate != null\n ? this._gossipCaCertificate\n : null,\n grpcCertificateHash:\n this._grpcCertificateHash != null\n ? this._grpcCertificateHash\n : null,\n adminKey:\n this._adminKey != null ? this._adminKey._toProtobufKey() : null,\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `NodeCreateTransaction:${timestamp.toString()}`;\n }\n}\n\nTRANSACTION_REGISTRY.set(\n \"nodeCreate\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n NodeCreateTransaction._fromProtobuf,\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Transaction, {\n TRANSACTION_REGISTRY,\n} from \"../transaction/Transaction.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} ITransactionResponse\n */\n\n/**\n * @namespace com.hedera.hapi.node.addressbook\n * @typedef {import(\"@hashgraph/proto\").com.hedera.hapi.node.addressbook.INodeDeleteTransactionBody} INodeDeleteTransactionBody\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n * @typedef {import(\"../account/AccountId.js\").default} AccountId\n */\n\n/**\n * A transaction to delete a consensus node in the network.\n */\nexport default class NodeDeleteTransaction extends Transaction {\n /**\n * @param {object} [props]\n * @param {Long} [props.nodeId]\n */\n constructor(props) {\n super();\n\n /**\n * @private\n * @type {?Long}\n * @description Consensus node identifier in the network state. It's required.\n */\n this._nodeId = props?.nodeId != null ? props.nodeId : null;\n }\n\n /**\n * @internal\n * @param {ITransaction[]} transactions\n * @param {ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {ITransactionBody[]} bodies\n * @returns {NodeDeleteTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const nodeDelete = /** @type {INodeDeleteTransactionBody} */ (\n body.nodeDelete\n );\n\n return Transaction._fromProtobufTransactions(\n new NodeDeleteTransaction({\n nodeId:\n nodeDelete.nodeId != null ? nodeDelete.nodeId : undefined,\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @param {Long} nodeId\n * @description Set consensus node identifier.\n * @returns {NodeDeleteTransaction}\n */\n setNodeId(nodeId) {\n this._nodeId = nodeId;\n\n return this;\n }\n\n /**\n * @description Get consensus node identifier.\n * @returns {?Long}\n */\n get nodeId() {\n return this._nodeId;\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.addressBook.deleteNode(request);\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"nodeDelete\";\n }\n\n /**\n * @override\n * @protected\n * @returns {INodeDeleteTransactionBody}\n */\n _makeTransactionData() {\n return {\n nodeId: this._nodeId != null ? this._nodeId : null,\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `NodeDeleteTransaction:${timestamp.toString()}`;\n }\n}\n\nTRANSACTION_REGISTRY.set(\n \"nodeDelete\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n NodeDeleteTransaction._fromProtobuf,\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport AccountId from \"../account/AccountId.js\";\nimport Key from \"../Key.js\";\nimport Transaction, {\n TRANSACTION_REGISTRY,\n} from \"../transaction/Transaction.js\";\nimport ServiceEndpoint from \"./ServiceEndpoint.js\";\n\nconst DESCRIPTION_MAX_LENGTH = 100;\nconst GOSSIP_ENDPOINTS_MAX_LENGTH = 10;\nconst SERVICE_ENDPOINTS_MAX_LENGTH = 8;\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} TransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionResponse} ITransactionResponse\n */\n\n/**\n * @namespace com.hedera.hapi.node.addressbook\n * @typedef {import(\"@hashgraph/proto\").com.hedera.hapi.node.addressbook.INodeUpdateTransactionBody} INodeUpdateTransactionBody\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n */\n\n/**\n * @description A transaction to update a consensus node in the network.\n */\nexport default class NodeUpdateTransaction extends Transaction {\n /**\n * @param {object} [props]\n * @param {Long} [props.nodeId]\n * @param {AccountId} [props.accountId]\n * @param {?string} [props.description]\n * @param {Array} [props.gossipEndpoints]\n * @param {?Array} [props.serviceEndpoints]\n * @param {?Uint8Array} [props.gossipCaCertificate]\n * @param {?Uint8Array} [props.grpcCertificateHash]\n * @param {Key} [props.adminKey]\n */\n constructor(props) {\n super();\n\n /**\n * @private\n * @type {?Long}\n * @description A consensus node identifier in the network state. It's required.\n */\n this._nodeId = props?.nodeId != null ? props.nodeId : null;\n\n /**\n * @private\n * @type {?AccountId}\n * @description Desired new account identifier of the node.\n */\n this._accountId = props?.accountId != null ? props.accountId : null;\n\n /**\n * @private\n * @type {?string}\n * @description Short description of the node. If set, this value SHALL replace the previous value.\n */\n this._description =\n props?.description != null ? props.description : null;\n\n /**\n * @private\n * @type {?Array}\n * @description List of service endpoints for gossip.\n */\n this._gossipEndpoints =\n props?.gossipEndpoints != null ? props.gossipEndpoints : null;\n\n /**\n * @private\n * @type {?Array}\n * @description List of service endpoints for gRPC calls.\n */\n this._serviceEndpoints =\n props?.serviceEndpoints != null ? props.serviceEndpoints : null;\n\n /**\n * @private\n * @type {?Uint8Array}\n * @description Certificate used to sign gossip events.\n */\n this._gossipCaCertificate =\n props?.gossipCaCertificate != null\n ? props.gossipCaCertificate\n : null;\n\n /**\n * @private\n * @type {?Uint8Array}\n * @description Hash of the node gRPC TLS certificate.\n */\n this._grpcCertificateHash =\n props?.grpcCertificateHash != null\n ? props.grpcCertificateHash\n : null;\n\n /**\n * @private\n * @type {?Key}\n * @description Administrative key controlled by the node operator.\n */\n this._adminKey = props?.adminKey != null ? props.adminKey : null;\n }\n\n /**\n * @internal\n * @param {ITransaction[]} transactions\n * @param {ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {ITransactionBody[]} bodies\n * @returns {NodeUpdateTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const nodeUpdate = /** @type {INodeUpdateTransactionBody} */ (\n body.nodeUpdate\n );\n\n return Transaction._fromProtobufTransactions(\n new NodeUpdateTransaction({\n nodeId:\n nodeUpdate.nodeId != null ? nodeUpdate.nodeId : undefined,\n accountId:\n nodeUpdate.accountId != null\n ? AccountId._fromProtobuf(nodeUpdate.accountId)\n : undefined,\n description:\n nodeUpdate.description != null\n ? Object.hasOwn(nodeUpdate.description, \"value\")\n ? nodeUpdate.description.value\n : undefined\n : undefined,\n gossipEndpoints:\n nodeUpdate.gossipEndpoint != null\n ? nodeUpdate.gossipEndpoint.map((endpoint) =>\n ServiceEndpoint._fromProtobuf(endpoint),\n )\n : undefined,\n serviceEndpoints:\n nodeUpdate.serviceEndpoint != null\n ? nodeUpdate.serviceEndpoint.map((endpoint) =>\n ServiceEndpoint._fromProtobuf(endpoint),\n )\n : undefined,\n gossipCaCertificate:\n nodeUpdate.gossipCaCertificate != null\n ? Object.hasOwn(nodeUpdate.gossipCaCertificate, \"value\")\n ? nodeUpdate.gossipCaCertificate.value\n : undefined\n : undefined,\n grpcCertificateHash:\n nodeUpdate.grpcCertificateHash != null\n ? Object.hasOwn(nodeUpdate.grpcCertificateHash, \"value\")\n ? nodeUpdate.grpcCertificateHash.value\n : undefined\n : undefined,\n adminKey:\n nodeUpdate.adminKey != null\n ? Key._fromProtobufKey(nodeUpdate.adminKey)\n : undefined,\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @param {Long} nodeId\n * @description Set consensus node identifier in the network state.\n * @returns {NodeUpdateTransaction}\n */\n setNodeId(nodeId) {\n this._requireNotFrozen();\n this._nodeId = nodeId;\n\n return this;\n }\n\n /**\n * @description Get consensus node identifier in the network state.\n * @returns {?Long}\n */\n get nodeId() {\n return this._nodeId;\n }\n\n /**\n * @param {AccountId | string} accountId\n * @description Set desired new account identifier of the node.\n * @returns {NodeUpdateTransaction}\n */\n setAccountId(accountId) {\n this._requireNotFrozen();\n this._accountId =\n accountId instanceof AccountId\n ? accountId\n : AccountId.fromString(accountId);\n\n return this;\n }\n\n /**\n * @description Get desired new account identifier of the node.\n * @returns {?AccountId}\n */\n get accountId() {\n return this._accountId;\n }\n\n /**\n * @param {string} description\n * @description Set description of the node.\n * @returns {NodeUpdateTransaction}\n */\n setDescription(description) {\n this._requireNotFrozen();\n if (description.length > DESCRIPTION_MAX_LENGTH) {\n throw new Error(\n `Description must be at most ${DESCRIPTION_MAX_LENGTH} characters.`,\n );\n }\n this._description = description;\n\n return this;\n }\n\n /**\n * @description Clear description of the node.\n * @returns {void}\n */\n clearDescription() {\n this._description = \"\";\n }\n\n /**\n * @description Get description of the node.\n * @returns {?string}\n */\n get description() {\n return this._description;\n }\n\n /**\n * @param {ServiceEndpoint[]} gossipEndpoints\n * @description Set list of service endpoints for gossip.\n * @returns {NodeUpdateTransaction}\n */\n setGossipEndpoints(gossipEndpoints) {\n this._requireNotFrozen();\n if (gossipEndpoints.length == 0) {\n throw new Error(\"GossipEndpoints list must not be empty.\");\n }\n\n if (gossipEndpoints.length > GOSSIP_ENDPOINTS_MAX_LENGTH) {\n throw new Error(\n `GossipEndpoints list must not contain more than ${GOSSIP_ENDPOINTS_MAX_LENGTH} entries.`,\n );\n }\n\n this._gossipEndpoints = [...gossipEndpoints];\n\n return this;\n }\n\n /**\n * @description Get list of service endpoints for gossip.\n * @returns {?Array}\n */\n get gossipEndpoints() {\n return this._gossipEndpoints;\n }\n\n /**\n * @param {ServiceEndpoint} endpoint\n * @description Add an endpoint to the list of service endpoints for gossip.\n * @returns {NodeUpdateTransaction}\n */\n addGossipEndpoint(endpoint) {\n this._requireNotFrozen();\n if (this._gossipEndpoints != null) {\n this._gossipEndpoints.push(endpoint);\n }\n return this;\n }\n\n /**\n * @param {ServiceEndpoint[]} serviceEndpoints\n * @description Set list of service endpoints for gRPC calls.\n * @returns {NodeUpdateTransaction}\n */\n setServiceEndpoints(serviceEndpoints) {\n this._requireNotFrozen();\n if (serviceEndpoints.length == 0) {\n throw new Error(\"ServiceEndpoints list must not be empty.\");\n }\n\n if (serviceEndpoints.length > SERVICE_ENDPOINTS_MAX_LENGTH) {\n throw new Error(\n `ServiceEndpoints list must not contain more than ${SERVICE_ENDPOINTS_MAX_LENGTH} entries.`,\n );\n }\n\n this._serviceEndpoints = [...serviceEndpoints];\n\n return this;\n }\n\n /**\n * @description Get list of service endpoints for gRPC calls.\n * @returns {?Array}\n */\n get serviceEndpoints() {\n return this._serviceEndpoints;\n }\n\n /**\n * @param {ServiceEndpoint} endpoint\n * @description Add an endpoint to the list of service endpoints for gRPC calls.\n * @returns {NodeUpdateTransaction}\n */\n addServiceEndpoint(endpoint) {\n this._requireNotFrozen();\n if (this._serviceEndpoints != null) {\n this._serviceEndpoints.push(endpoint);\n }\n return this;\n }\n\n /**\n * @param {Uint8Array} bytes\n * @description Set certificate used to sign gossip events.\n * @returns {NodeUpdateTransaction}\n */\n setGossipCaCertificate(bytes) {\n this._requireNotFrozen();\n if (bytes.length == 0) {\n throw new Error(\"GossipCaCertificate must not be empty.\");\n }\n\n this._gossipCaCertificate = bytes;\n\n return this;\n }\n\n /**\n * @description Get certificate used to sign gossip events.\n * @returns {?Uint8Array}\n */\n get gossipCaCertificate() {\n return this._gossipCaCertificate;\n }\n\n /**\n * @param {Uint8Array} bytes\n * @description Set hash of the node gRPC TLS certificate.\n * @returns {NodeUpdateTransaction}\n */\n setCertificateHash(bytes) {\n this._requireNotFrozen();\n this._grpcCertificateHash = bytes;\n\n return this;\n }\n\n /**\n * @description Get hash of the node gRPC TLS certificate.\n * @returns {?Uint8Array}\n */\n get certificateHash() {\n return this._grpcCertificateHash;\n }\n\n /**\n * @param {Key} adminKey\n * @description Set administrative key controlled by the node operator.\n * @returns {NodeUpdateTransaction}\n */\n setAdminKey(adminKey) {\n this._requireNotFrozen();\n this._adminKey = adminKey;\n\n return this;\n }\n\n /**\n * @description Get administrative key controlled by the node operator.\n * @returns {?Key}\n */\n get adminKey() {\n return this._adminKey;\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {ITransaction} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return channel.addressBook.updateNode(request);\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable}\n */\n _getTransactionDataCase() {\n return \"nodeUpdate\";\n }\n\n /**\n * @override\n * @protected\n * @returns {INodeUpdateTransactionBody}\n */\n _makeTransactionData() {\n return {\n accountId:\n this._accountId != null ? this._accountId._toProtobuf() : null,\n description: {\n value: this._description != null ? this._description : null,\n },\n gossipEndpoint:\n this._gossipEndpoints != null\n ? this._gossipEndpoints.map(\n (/** @type {ServiceEndpoint} */ endpoint) =>\n endpoint._toProtobuf(),\n )\n : null,\n serviceEndpoint:\n this._serviceEndpoints != null\n ? this._serviceEndpoints.map(\n (/** @type {ServiceEndpoint} */ endpoint) =>\n endpoint._toProtobuf(),\n )\n : null,\n gossipCaCertificate:\n this._gossipCaCertificate != null\n ? {\n value: this._gossipCaCertificate,\n }\n : null,\n grpcCertificateHash:\n this._grpcCertificateHash != null\n ? {\n value: this._grpcCertificateHash,\n }\n : null,\n adminKey:\n this._adminKey != null ? this._adminKey._toProtobufKey() : null,\n nodeId: this._nodeId != null ? this._nodeId : null,\n };\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `NodeUpdateTransaction:${timestamp.toString()}`;\n }\n}\n\nTRANSACTION_REGISTRY.set(\n \"nodeUpdate\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n NodeUpdateTransaction._fromProtobuf,\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\n/**\n * @typedef {import(\"./account/AccountId.js\").default} AccountId\n * @typedef {import(\"./channel/Channel.js\").default} Channel\n * @typedef {import(\"./channel/MirrorChannel.js\").default} MirrorChannel\n * @typedef {import(\"./address_book/NodeAddress.js\").default} NodeAddress\n */\n\nexport const HOST_AND_PORT = /^(\\S+):(\\d+)$/;\n\nexport default class ManagedNodeAddress {\n /**\n * @param {object} props\n * @param {string} [props.address]\n * @param {string} [props.host]\n * @param {number | null} [props.port]\n */\n constructor(props = {}) {\n if (props.address != null) {\n const hostAndPortResult = HOST_AND_PORT.exec(props.address);\n\n if (hostAndPortResult == null) {\n throw new Error(`failed to parse address: ${props.address}`);\n }\n\n /** @type {string} */\n this._address = /** @type {string} */ (hostAndPortResult[1]);\n\n /** @type {number | null} */\n this._port =\n hostAndPortResult[2] != null\n ? parseInt(/** @type {string }*/ (hostAndPortResult[2]))\n : null;\n } else if (props.host != null && props.port != null) {\n /** @type {string} */\n this._address = props.host;\n\n /** @type {number | null} */\n this._port = props.port;\n } else {\n throw new Error(\n `failed to create a managed node address: ${JSON.stringify(\n props,\n )}`,\n );\n }\n\n Object.freeze(this);\n }\n\n /**\n * @param {string} address\n * @returns {ManagedNodeAddress};\n */\n static fromString(address) {\n return new ManagedNodeAddress({ address });\n }\n\n toInsecure() {\n let port = this.port === 50212 ? 50211 : this.port;\n return new ManagedNodeAddress({ host: this.address, port });\n }\n\n toSecure() {\n let port = this.port === 50211 ? 50212 : this.port;\n return new ManagedNodeAddress({ host: this.address, port });\n }\n\n /**\n * @returns {string}\n */\n get address() {\n return this._address;\n }\n\n /**\n * @returns {number | null}\n */\n get port() {\n return this._port;\n }\n\n /**\n * @returns {boolean}\n */\n isTransportSecurity() {\n return this._port == 50212 || this._port == 443;\n }\n\n /**\n * @returns {string}\n */\n toString() {\n if (this.port == null) {\n return this.address;\n } else {\n return `${this.address}:${this.port}`;\n }\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport ManagedNodeAddress from \"./ManagedNodeAddress.js\";\n\n/**\n * @typedef {import(\"./account/AccountId.js\").default} AccountId\n * @typedef {import(\"./channel/Channel.js\").default} Channel\n * @typedef {import(\"./channel/MirrorChannel.js\").default} MirrorChannel\n * @typedef {import(\"./address_book/NodeAddress.js\").default} NodeAddress\n */\n\n/**\n * @template {Channel | MirrorChannel} ChannelT\n * @typedef {object} NewNode\n * @property {string | ManagedNodeAddress} address\n * @property {(address: string, cert?: string) => ChannelT} channelInitFunction\n */\n\n/**\n * @template {Channel | MirrorChannel} ChannelT\n * @typedef {object} CloneNode\n * @property {ManagedNode} node\n * @property {ManagedNodeAddress} address\n */\n\n/**\n * @abstract\n * @template {Channel | MirrorChannel} ChannelT\n */\nexport default class ManagedNode {\n /**\n * @param {object} props\n * @param {NewNode=} [props.newNode]\n * @param {CloneNode=} [props.cloneNode]\n */\n constructor(props = {}) {\n if (props.newNode != null) {\n this._address =\n typeof props.newNode.address === \"string\"\n ? ManagedNodeAddress.fromString(props.newNode.address)\n : props.newNode.address;\n\n /** @type {string=} */\n this._cert = undefined;\n\n /** @type {ChannelT | null} */\n this._channel = null;\n\n /** @type {(address: string, cert?: string) => ChannelT} */\n this._channelInitFunction = props.newNode.channelInitFunction;\n\n this._lastUsed = Date.now();\n this._readmitTime = Date.now();\n this._useCount = 0;\n this._badGrpcStatusCount = 0;\n this._minBackoff = 8000;\n this._maxBackoff = 1000 * 60 * 60;\n this._currentBackoff = this._minBackoff;\n } else if (props.cloneNode != null) {\n /** @type {ManagedNodeAddress} */\n this._address = props.cloneNode.address;\n\n /** @type {string=} */\n this._cert = props.cloneNode.node._cert;\n\n /** @type {ChannelT | null} */\n this._channel = props.cloneNode.node._channel;\n\n /** @type {(address: string, cert?: string) => ChannelT} */\n this._channelInitFunction =\n props.cloneNode.node._channelInitFunction;\n\n /** @type {number} */\n this._currentBackoff = props.cloneNode.node._currentBackoff;\n\n /** @type {number} */\n this._lastUsed = props.cloneNode.node._lastUsed;\n\n /** @type {number} */\n this._readmitTime = props.cloneNode.node._readmitTime;\n\n /** @type {number} */\n this._useCount = props.cloneNode.node._useCount;\n\n /** @type {number} */\n this._badGrpcStatusCount = props.cloneNode.node._badGrpcStatusCount;\n\n /** @type {number} */\n this._minBackoff = props.cloneNode.node._minBackoff;\n\n /** @type {number} */\n this._maxBackoff = props.cloneNode.node._minBackoff;\n } else {\n throw new Error(\n `failed to create ManagedNode: ${JSON.stringify(props)}`,\n );\n }\n }\n\n /**\n * @abstract\n * @returns {string}\n */\n // eslint-disable-next-line jsdoc/require-returns-check\n getKey() {\n throw new Error(\"not implemented\");\n }\n\n /**\n * @param {string} ledgerId\n * @returns {this}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n setCert(ledgerId) {\n return this;\n }\n\n /**\n * @returns {ManagedNodeAddress}\n */\n get address() {\n return this._address;\n }\n\n /**\n * @returns {number}\n */\n get attempts() {\n return this._badGrpcStatusCount;\n }\n\n /**\n * @returns {number}\n */\n get minBackoff() {\n return this._minBackoff;\n }\n\n /**\n * @param {number} minBackoff\n * @returns {this}\n */\n setMinBackoff(minBackoff) {\n if (this._currentBackoff <= minBackoff) {\n this._currentBackoff = minBackoff;\n }\n\n this._minBackoff = minBackoff;\n return this;\n }\n\n /**\n * @returns {number}\n */\n get maxBackoff() {\n return this._maxBackoff;\n }\n\n /**\n * @param {number} maxBackoff\n * @returns {this}\n */\n setMaxBackoff(maxBackoff) {\n if (this._currentBackoff <= maxBackoff) {\n this._currentBackoff = maxBackoff;\n }\n\n this._maxBackoff = maxBackoff;\n return this;\n }\n\n getChannel() {\n this._useCount++;\n this.__lastUsed = Date.now();\n\n if (this._channel != null) {\n return this._channel;\n }\n\n this._channel = this._channelInitFunction(\n this.address.toString(),\n this._cert,\n );\n return this._channel;\n }\n\n /**\n * Determines if this node is healthy by checking if this node hasn't been\n * in use for a the required `_currentBackoff` period. Since this looks at `this._lastUsed`\n * and that value is only set in the `wait()` method, any node that has not\n * returned a bad gRPC status will always be considered healthy.\n *\n * @returns {boolean}\n */\n isHealthy() {\n return this._readmitTime <= Date.now();\n }\n\n increaseBackoff() {\n this._currentBackoff = Math.min(\n this._currentBackoff * 2,\n this._maxBackoff,\n );\n this._readmitTime = Date.now() + this._currentBackoff;\n }\n\n decreaseBackoff() {\n this._currentBackoff = Math.max(\n this._currentBackoff / 2,\n this._minBackoff,\n );\n }\n\n /**\n * @returns {number}\n */\n getRemainingTime() {\n return this._readmitTime - this._lastUsed;\n }\n\n /**\n * This is only ever called if the node itself is down.\n * A node returning a transaction with a bad status code does not indicate\n * the node is down, and hence this method will not be called.\n *\n * @returns {Promise}\n */\n backoff() {\n return new Promise((resolve) =>\n setTimeout(resolve, this.getRemainingTime()),\n );\n }\n\n /**\n * @param {ManagedNode<*>} node\n * @returns {number}\n */\n compare(node) {\n let comparison = this.getRemainingTime() - node.getRemainingTime();\n if (comparison != 0) {\n return comparison;\n }\n\n comparison = this._currentBackoff - node._currentBackoff;\n if (comparison != 0) {\n return comparison;\n }\n\n comparison = this._badGrpcStatusCount - node._badGrpcStatusCount;\n if (comparison != 0) {\n return comparison;\n }\n\n comparison = this._useCount - node._useCount;\n if (comparison != 0) {\n return comparison;\n }\n\n return this._lastUsed - node._lastUsed;\n }\n\n close() {\n if (this._channel != null) {\n this._channel.close();\n }\n\n this._channel = null;\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport ManagedNode from \"./ManagedNode.js\";\n\n/**\n * @typedef {import(\"./account/AccountId.js\").default} AccountId\n * @typedef {import(\"./address_book/NodeAddress.js\").default} NodeAddress\n * @typedef {import(\"./channel/Channel.js\").default} Channel\n * @typedef {import(\"./ManagedNodeAddress.js\").default} ManagedNodeAddress\n * @typedef {import(\"./LedgerId.js\").default} LedgerId\n */\n\n/**\n * @typedef {object} NewNode\n * @property {AccountId} accountId\n * @property {string} address\n * @property {(address: string) => Channel} channelInitFunction\n */\n\n/**\n * @typedef {object} CloneNode\n * @property {Node} node\n * @property {ManagedNodeAddress} address\n */\n\n/**\n * @augments {ManagedNode}\n */\nexport default class Node extends ManagedNode {\n /**\n * @param {object} props\n * @param {NewNode=} [props.newNode]\n * @param {CloneNode=} [props.cloneNode]\n */\n constructor(props = {}) {\n super(props);\n\n if (props.newNode != null) {\n /** @type {AccountId} */\n this._accountId = props.newNode.accountId;\n\n /** @type {NodeAddress | null} */\n this._nodeAddress = null;\n } else if (props.cloneNode != null) {\n /** @type {AccountId} */\n this._accountId = props.cloneNode.node._accountId;\n\n /** @type {NodeAddress | null} */\n this._nodeAddress = props.cloneNode.node._nodeAddress;\n } else {\n throw new Error(`failed to create node: ${JSON.stringify(props)}`);\n }\n }\n\n /**\n * @returns {string}\n */\n getKey() {\n return this._accountId.toString();\n }\n\n /**\n * @returns {ManagedNode}\n */\n toInsecure() {\n return /** @type {this} */ (\n new Node({\n cloneNode: { node: this, address: this._address.toInsecure() },\n })\n );\n }\n\n /**\n * @returns {ManagedNode}\n */\n toSecure() {\n return /** @type {this} */ (\n new Node({\n cloneNode: { node: this, address: this._address.toSecure() },\n })\n );\n }\n\n /**\n * @returns {AccountId}\n */\n get accountId() {\n return this._accountId;\n }\n\n /**\n * @returns {NodeAddress | null}\n */\n get nodeAddress() {\n return this._nodeAddress;\n }\n\n /**\n * @param {NodeAddress} nodeAddress\n * @returns {this}\n */\n setNodeAddress(nodeAddress) {\n this._nodeAddress = nodeAddress;\n return this;\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport NodeAddressBook from \"./NodeAddressBook.js\";\nimport * as hex from \"../encoding/hex.js\";\nimport * as HashgraphProto from \"@hashgraph/proto\";\n\nexport const PREVIEWNET_ADDRESS_BOOK = NodeAddressBook._fromProtobuf(\n HashgraphProto.proto.NodeAddressBook.decode(\n hex.decode(\n \"0ad0070a0e33352e3233312e3230382e31343810a388031a05302e302e3322cc0633303832303161323330306430363039326138363438383666373064303130313031303530303033383230313866303033303832303138613032383230313831303039663166386131323163326664366337366664353038643365343239663063363462636234346338326137303537333535326161646361643037313536396537323139353866356135643039663935383766666166636662653533343161326630313134616361653334366566336339303231336433343336656262323766343335306339393063356338633366386531653336373037626330386434323536303832336533663234653039613033616430393535613530393830313936323964643034623237623235316463653035356633646463623061343164363666303934316230623837636466653334393864343630333861623564663036663632613561646530383539383537336138386338663538363064633134393261366531383634383561396231333235306536643137623830636433396335633831393130396537336361373332646232336566386261613737366563383563653030393162656362326564656662616135656433653564626662643166383835613466613838316166336631343461386135363538353335333364383933393335393230383662326431643336326534356266653166623435363833616261366336343039373961643662343638373731383437323663366562643538623265616538356337636665336662616265663566366363656438353030333462333834373230366332643637386333363138373630323662386433353165303032616635653066666536663562316632393566646332663436396361613264323338316561306234386361393837636332633865363335653862313963653565313732613933373631613864343930613961343531386437323535383830613134643737623762613737343839326239326134306262383133363265333466633664353137386439623330313132393334323035636237376662396132383234323733393435363461383535346561343732383661343766383632333965373563393437383963653938633939383434373832343632393434663631333136376437623530323033303130303031320218033a606666643661646137346133613334613930346265613437363033303836663862656633623662653138616265643434633464343065313266623133306239376264366238353561656335643062393062306238633733353464356633623065340acf070a0d332e3231312e3234382e31373210a388031a05302e302e3322cc0633303832303161323330306430363039326138363438383666373064303130313031303530303033383230313866303033303832303138613032383230313831303039663166386131323163326664366337366664353038643365343239663063363462636234346338326137303537333535326161646361643037313536396537323139353866356135643039663935383766666166636662653533343161326630313134616361653334366566336339303231336433343336656262323766343335306339393063356338633366386531653336373037626330386434323536303832336533663234653039613033616430393535613530393830313936323964643034623237623235316463653035356633646463623061343164363666303934316230623837636466653334393864343630333861623564663036663632613561646530383539383537336138386338663538363064633134393261366531383634383561396231333235306536643137623830636433396335633831393130396537336361373332646232336566386261613737366563383563653030393162656362326564656662616135656433653564626662643166383835613466613838316166336631343461386135363538353335333364383933393335393230383662326431643336326534356266653166623435363833616261366336343039373961643662343638373731383437323663366562643538623265616538356337636665336662616265663566366363656438353030333462333834373230366332643637386333363138373630323662386433353165303032616635653066666536663562316632393566646332663436396361613264323338316561306234386361393837636332633865363335653862313963653565313732613933373631613864343930613961343531386437323535383830613134643737623762613737343839326239326134306262383133363265333466633664353137386439623330313132393334323035636237376662396132383234323733393435363461383535346561343732383661343766383632333965373563393437383963653938633939383434373832343632393434663631333136376437623530323033303130303031320218033a606666643661646137346133613334613930346265613437363033303836663862656633623662653138616265643434633464343065313266623133306239376264366238353561656335643062393062306238633733353464356633623065340ace070a0c34302e3132312e36342e343810a388031a05302e302e3322cc0633303832303161323330306430363039326138363438383666373064303130313031303530303033383230313866303033303832303138613032383230313831303039663166386131323163326664366337366664353038643365343239663063363462636234346338326137303537333535326161646361643037313536396537323139353866356135643039663935383766666166636662653533343161326630313134616361653334366566336339303231336433343336656262323766343335306339393063356338633366386531653336373037626330386434323536303832336533663234653039613033616430393535613530393830313936323964643034623237623235316463653035356633646463623061343164363666303934316230623837636466653334393864343630333861623564663036663632613561646530383539383537336138386338663538363064633134393261366531383634383561396231333235306536643137623830636433396335633831393130396537336361373332646232336566386261613737366563383563653030393162656362326564656662616135656433653564626662643166383835613466613838316166336631343461386135363538353335333364383933393335393230383662326431643336326534356266653166623435363833616261366336343039373961643662343638373731383437323663366562643538623265616538356337636665336662616265663566366363656438353030333462333834373230366332643637386333363138373630323662386433353165303032616635653066666536663562316632393566646332663436396361613264323338316561306234386361393837636332633865363335653862313963653565313732613933373631613864343930613961343531386437323535383830613134643737623762613737343839326239326134306262383133363265333466633664353137386439623330313132393334323035636237376662396132383234323733393435363461383535346561343732383661343766383632333965373563393437383963653938633939383434373832343632393434663631333136376437623530323033303130303031320218033a606666643661646137346133613334613930346265613437363033303836663862656633623662653138616265643434633464343065313266623133306239376264366238353561656335643062393062306238633733353464356633623065340ad1070a0d33352e3139392e31352e31373710a388031a05302e302e3422cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030633535376166353739666138333530316265383939623238393037373635626664666364353261623433326230313935613166316563643836666330306162366335353039623066646439376564643363623563656135366132393566333132616262353530383331646266393633663435303131386234666363366532326366343637363230306365396363386564666262663535386463363966303234323634616437643364616232336265643231333363323734653639333434383931353564623130383766393033373039303563363431383561363231316463373432666239613639303964383231383639343762323737343633646662336666306163643437656666313265616431663639373265663263313230333739336334356537373537356265346661313130633765343066613864623963363138376431313366343730343031343137393037316162663539626537643262306465383264653432313564633235353036623163396332366534393137343031633939373530366533373765366266303362363838373237653739343066616436396335653064613363643563626432626537373733353061656132643064343765393761343438633834626536636531333464363462656530393835633239313632663463316535363763636139336430366133633162653861626365333562353537666237376634666536373161363664656337393037353664306538383138313635663262616361613839316161653761633734333766633731373562366562366465623734373233373837353162623662663962306531343833663936363865396664626435363034633339623134643965326265646565633834366139383064373034643137316537626134623766636431613330643934356361313266343761333235643933393861613138663937303636303534643464313566633839393465326465626537336539323731643534383638336636316561343466623235303731653335313861373865643365623337653731613036393166323637303230333031303030312801320218043a606630643934616363663664666633373238373463396462643864373939326562333137616635303031636134313936616261323635383039636233643230306261393631613534333863336135656430356338336264663963643131356432320ad1070a0d332e3133332e3231332e31343610a388031a05302e302e3422cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030633535376166353739666138333530316265383939623238393037373635626664666364353261623433326230313935613166316563643836666330306162366335353039623066646439376564643363623563656135366132393566333132616262353530383331646266393633663435303131386234666363366532326366343637363230306365396363386564666262663535386463363966303234323634616437643364616232336265643231333363323734653639333434383931353564623130383766393033373039303563363431383561363231316463373432666239613639303964383231383639343762323737343633646662336666306163643437656666313265616431663639373265663263313230333739336334356537373537356265346661313130633765343066613864623963363138376431313366343730343031343137393037316162663539626537643262306465383264653432313564633235353036623163396332366534393137343031633939373530366533373765366266303362363838373237653739343066616436396335653064613363643563626432626537373733353061656132643064343765393761343438633834626536636531333464363462656530393835633239313632663463316535363763636139336430366133633162653861626365333562353537666237376634666536373161363664656337393037353664306538383138313635663262616361613839316161653761633734333766633731373562366562366465623734373233373837353162623662663962306531343833663936363865396664626435363034633339623134643965326265646565633834366139383064373034643137316537626134623766636431613330643934356361313266343761333235643933393861613138663937303636303534643464313566633839393465326465626537336539323731643534383638336636316561343466623235303731653335313861373865643365623337653731613036393166323637303230333031303030312801320218043a606630643934616363663664666633373238373463396462643864373939326562333137616635303031636134313936616261323635383039636233643230306261393631613534333863336135656430356338336264663963643131356432320ad0070a0c34302e37302e31312e32303210a388031a05302e302e3422cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030633535376166353739666138333530316265383939623238393037373635626664666364353261623433326230313935613166316563643836666330306162366335353039623066646439376564643363623563656135366132393566333132616262353530383331646266393633663435303131386234666363366532326366343637363230306365396363386564666262663535386463363966303234323634616437643364616232336265643231333363323734653639333434383931353564623130383766393033373039303563363431383561363231316463373432666239613639303964383231383639343762323737343633646662336666306163643437656666313265616431663639373265663263313230333739336334356537373537356265346661313130633765343066613864623963363138376431313366343730343031343137393037316162663539626537643262306465383264653432313564633235353036623163396332366534393137343031633939373530366533373765366266303362363838373237653739343066616436396335653064613363643563626432626537373733353061656132643064343765393761343438633834626536636531333464363462656530393835633239313632663463316535363763636139336430366133633162653861626365333562353537666237376634666536373161363664656337393037353664306538383138313635663262616361613839316161653761633734333766633731373562366562366465623734373233373837353162623662663962306531343833663936363865396664626435363034633339623134643965326265646565633834366139383064373034643137316537626134623766636431613330643934356361313266343761333235643933393861613138663937303636303534643464313566633839393465326465626537336539323731643534383638336636316561343466623235303731653335313861373865643365623337653731613036393166323637303230333031303030312801320218043a606630643934616363663664666633373238373463396462643864373939326562333137616635303031636134313936616261323635383039636233643230306261393631613534333863336135656430356338336264663963643131356432320ad2070a0e33352e3232352e3230312e31393510a388031a05302e302e3522cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030396261343537623733333035663034613931636334366231623936356334653834313735316162633862313431356130626164666431663332633234383233383661323237323565623765633734646561323165353036313764363438656135616333393337343161623031623865666233323132333962386434666462316466626562396533663339616134363538306464303435643138636134346430303263333764646235323763636534646463333262666337333431393637316634636134343634613366326138346663383563373161636630653561383936323664663639613831343734656431363532396638303161386166613937653433356334653034613936346133353735323732383838343365353866306130356366353135336565343530376232633638623364376662353461653661393561393539633837613132663633306539356337623162336333363935653835383636323431373932366437366331363938336661663631323235303338373435393037653963663133643637633261636435303363613435316338353933336163343131386163633237393830316362393638333439393033313435636564323736323964643038393136333137303933353837613737633232303563666135323534336235336333623665613135623834653364326333306331656437353261343633336333366232356239383933656130326164353632656239623738363862336234663437663461323565333536303634393632616337623235653538323934346630306433303739386132363266393231346438633565373464306138333736636332643662613634653138663565346134306166616336323530363264326361323363643238303037303833323164333833343331346630653538343438353932333236373361333265373061653064373131653331303538316263646231346538373133343639346336653039333066343662333762393664343961363435373339343733333165376535303764396535366465356536313436663266303230333031303030312802320218053a606361363738656263626433646338363438663765643033666235396630653231616636373531336561656535313331386536623534396265356163653930366564633166666132366439336135376163656339626537376634306561656564370ad1070a0d35322e31352e3130352e31333010a388031a05302e302e3522cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030396261343537623733333035663034613931636334366231623936356334653834313735316162633862313431356130626164666431663332633234383233383661323237323565623765633734646561323165353036313764363438656135616333393337343161623031623865666233323132333962386434666462316466626562396533663339616134363538306464303435643138636134346430303263333764646235323763636534646463333262666337333431393637316634636134343634613366326138346663383563373161636630653561383936323664663639613831343734656431363532396638303161386166613937653433356334653034613936346133353735323732383838343365353866306130356366353135336565343530376232633638623364376662353461653661393561393539633837613132663633306539356337623162336333363935653835383636323431373932366437366331363938336661663631323235303338373435393037653963663133643637633261636435303363613435316338353933336163343131386163633237393830316362393638333439393033313435636564323736323964643038393136333137303933353837613737633232303563666135323534336235336333623665613135623834653364326333306331656437353261343633336333366232356239383933656130326164353632656239623738363862336234663437663461323565333536303634393632616337623235653538323934346630306433303739386132363266393231346438633565373464306138333736636332643662613634653138663565346134306166616336323530363264326361323363643238303037303833323164333833343331346630653538343438353932333236373361333265373061653064373131653331303538316263646231346538373133343639346336653039333066343662333762393664343961363435373339343733333165376535303764396535366465356536313436663266303230333031303030312802320218053a606361363738656263626433646338363438663765643033666235396630653231616636373531336561656535313331386536623534396265356163653930366564633166666132366439336135376163656339626537376634306561656564370ad1070a0d3130342e34332e3234382e363310a388031a05302e302e3522cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030396261343537623733333035663034613931636334366231623936356334653834313735316162633862313431356130626164666431663332633234383233383661323237323565623765633734646561323165353036313764363438656135616333393337343161623031623865666233323132333962386434666462316466626562396533663339616134363538306464303435643138636134346430303263333764646235323763636534646463333262666337333431393637316634636134343634613366326138346663383563373161636630653561383936323664663639613831343734656431363532396638303161386166613937653433356334653034613936346133353735323732383838343365353866306130356366353135336565343530376232633638623364376662353461653661393561393539633837613132663633306539356337623162336333363935653835383636323431373932366437366331363938336661663631323235303338373435393037653963663133643637633261636435303363613435316338353933336163343131386163633237393830316362393638333439393033313435636564323736323964643038393136333137303933353837613737633232303563666135323534336235336333623665613135623834653364326333306331656437353261343633336333366232356239383933656130326164353632656239623738363862336234663437663461323565333536303634393632616337623235653538323934346630306433303739386132363266393231346438633565373464306138333736636332643662613634653138663565346134306166616336323530363264326361323363643238303037303833323164333833343331346630653538343438353932333236373361333265373061653064373131653331303538316263646231346538373133343639346336653039333066343662333762393664343961363435373339343733333165376535303764396535366465356536313436663266303230333031303030312802320218053a606361363738656263626433646338363438663765643033666235396630653231616636373531336561656535313331386536623534396265356163653930366564633166666132366439336135376163656339626537376634306561656564370ad2070a0e33352e3234372e3130392e31333510a388031a05302e302e3622cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030633432636361633566626336393166626265626461383766666431653735626463643839323234393463663434666462636365653439373838353231633337386266373764623039333465633064323138336437633531646236366638363463313161623764653161633363346366646331663039336132643666333765326233346362653463383133316639363833616434323837386338336433353534633634356161313637626366623036346138336463343563356231313538343939663964393235383766666637616263643566323231636438313530353438343133303030666136653536353930383962316466643635373636656137386561656466636136623435343535666438616235393834646265333565353739356432633633356561373937346434336538656165346665626666653439326537303762343862316230666336343831616539653039643339313333303039623764323634303265366535326535653931623262333830643838663062653766623462333033653730323139373835303537616139346365393234633439323665393136353639323836653836623362613635316361326130613633646634663639303766656665333438336439336234636531643464303363373134323131313337356232633263353164346562383339653337616635333062326362643666353064346362333665323739333731373064396364646163306163653263633234623830346230613237333531636638333062373635323565323664666239646266343961303536363234613736383632343934653732363364306437306365626165393532393433653535383432663563616431336663663630613265366463663761316435333366336135626235346563323139313863373665353235626132393134363637353833316531376533366336316665383534393838323864303962373632303135343132623265353237383439626165633163666663373764653463323934633535303831316535393866663234646131356133343536396464303230333031303030312803320218063a603234373166336665383134303638316665393139313364326363303633663036356534343930616536326666356435343861356162653133316432616639366362653361633235626265323433363663613466386630653736636639343566330acf070a0b35342e3234312e33382e3110a388031a05302e302e3622cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030633432636361633566626336393166626265626461383766666431653735626463643839323234393463663434666462636365653439373838353231633337386266373764623039333465633064323138336437633531646236366638363463313161623764653161633363346366646331663039336132643666333765326233346362653463383133316639363833616434323837386338336433353534633634356161313637626366623036346138336463343563356231313538343939663964393235383766666637616263643566323231636438313530353438343133303030666136653536353930383962316466643635373636656137386561656466636136623435343535666438616235393834646265333565353739356432633633356561373937346434336538656165346665626666653439326537303762343862316230666336343831616539653039643339313333303039623764323634303265366535326535653931623262333830643838663062653766623462333033653730323139373835303537616139346365393234633439323665393136353639323836653836623362613635316361326130613633646634663639303766656665333438336439336234636531643464303363373134323131313337356232633263353164346562383339653337616635333062326362643666353064346362333665323739333731373064396364646163306163653263633234623830346230613237333531636638333062373635323565323664666239646266343961303536363234613736383632343934653732363364306437306365626165393532393433653535383432663563616431336663663630613265366463663761316435333366336135626235346563323139313863373665353235626132393134363637353833316531376533366336316665383534393838323864303962373632303135343132623265353237383439626165633163666663373764653463323934633535303831316535393866663234646131356133343536396464303230333031303030312803320218063a603234373166336665383134303638316665393139313364326363303633663036356534343930616536326666356435343861356162653133316432616639366362653361633235626265323433363663613466386630653736636639343566330acf070a0b31332e38382e32322e343710a388031a05302e302e3622cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030633432636361633566626336393166626265626461383766666431653735626463643839323234393463663434666462636365653439373838353231633337386266373764623039333465633064323138336437633531646236366638363463313161623764653161633363346366646331663039336132643666333765326233346362653463383133316639363833616434323837386338336433353534633634356161313637626366623036346138336463343563356231313538343939663964393235383766666637616263643566323231636438313530353438343133303030666136653536353930383962316466643635373636656137386561656466636136623435343535666438616235393834646265333565353739356432633633356561373937346434336538656165346665626666653439326537303762343862316230666336343831616539653039643339313333303039623764323634303265366535326535653931623262333830643838663062653766623462333033653730323139373835303537616139346365393234633439323665393136353639323836653836623362613635316361326130613633646634663639303766656665333438336439336234636531643464303363373134323131313337356232633263353164346562383339653337616635333062326362643666353064346362333665323739333731373064396364646163306163653263633234623830346230613237333531636638333062373635323565323664666239646266343961303536363234613736383632343934653732363364306437306365626165393532393433653535383432663563616431336663663630613265366463663761316435333366336135626235346563323139313863373665353235626132393134363637353833316531376533366336316665383534393838323864303962373632303135343132623265353237383439626165633163666663373764653463323934633535303831316535393866663234646131356133343536396464303230333031303030312803320218063a603234373166336665383134303638316665393139313364326363303633663036356534343930616536326666356435343861356162653133316432616639366362653361633235626265323433363663613466386630653736636639343566330ad0070a0c33352e3233352e36352e353110a388031a05302e302e3722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030393032663034393061396237663564326364316330643936633661363939306635373362356630656235626462626133393636316566303233303932343139333434363639393639613638613463373037316433323939393066623137393265393030316362353539386561373163326436363736383234333230656534636162663164643335376165376632616462656463316231623061396439353632333737396234633463376234376334373837613136656537313838633732313731373736323461393236346162333963343166376666306234356138396264613430633461643037633464353936643566303964373035366263623561333566343466393561353963323636653039383932646362653436616435316632643262336539393161386636363538653166326362393463373733656234346334346538393264316535356331303736663136303833313965653635376534306631393239363735343361623432616232323233383664313735383665323533373438646162643032356535306235306165363035303732306532333964363465653666623435303763303631346464346265376166646231333330383930666633613665313736353237633331313661663132396139616335653333366439663630316537313237613664376438323061643266393032646163396232343836363861316261623038643130333432656136396137303937313332666637313230636336346663646537383430633635366261313733326261393565396333363735313137356534656333643834613765306432383834326234316262626264366632386534366333613636333365313832373936356335353832306435306461653262303436356363306434326531393562396431353332653632323565623939386436613439303739613861316364346430313735646533633837663937363134383437623363626231376161333462653832306237623361643938616333666165663939336136373738393734373832633063346165336661626263633433303230333031303030312804320218073a606633353738373364343131346131616566303361646336626136396566616632363930653232376162633136613666633665353034396136336662643936383830303462313465343633633230653338343336613361323464333138326464380ad1070a0d35342e3137372e35312e31323710a388031a05302e302e3722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030393032663034393061396237663564326364316330643936633661363939306635373362356630656235626462626133393636316566303233303932343139333434363639393639613638613463373037316433323939393066623137393265393030316362353539386561373163326436363736383234333230656534636162663164643335376165376632616462656463316231623061396439353632333737396234633463376234376334373837613136656537313838633732313731373736323461393236346162333963343166376666306234356138396264613430633461643037633464353936643566303964373035366263623561333566343466393561353963323636653039383932646362653436616435316632643262336539393161386636363538653166326362393463373733656234346334346538393264316535356331303736663136303833313965653635376534306631393239363735343361623432616232323233383664313735383665323533373438646162643032356535306235306165363035303732306532333964363465653666623435303763303631346464346265376166646231333330383930666633613665313736353237633331313661663132396139616335653333366439663630316537313237613664376438323061643266393032646163396232343836363861316261623038643130333432656136396137303937313332666637313230636336346663646537383430633635366261313733326261393565396333363735313137356534656333643834613765306432383834326234316262626264366632386534366333613636333365313832373936356335353832306435306461653262303436356363306434326531393562396431353332653632323565623939386436613439303739613861316364346430313735646533633837663937363134383437623363626231376161333462653832306237623361643938616333666165663939336136373738393734373832633063346165336661626263633433303230333031303030312804320218073a606633353738373364343131346131616566303361646336626136396566616632363930653232376162633136613666633665353034396136336662643936383830303462313465343633633230653338343336613361323464333138326464380ad0070a0c31332e36342e3137302e343010a388031a05302e302e3722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030393032663034393061396237663564326364316330643936633661363939306635373362356630656235626462626133393636316566303233303932343139333434363639393639613638613463373037316433323939393066623137393265393030316362353539386561373163326436363736383234333230656534636162663164643335376165376632616462656463316231623061396439353632333737396234633463376234376334373837613136656537313838633732313731373736323461393236346162333963343166376666306234356138396264613430633461643037633464353936643566303964373035366263623561333566343466393561353963323636653039383932646362653436616435316632643262336539393161386636363538653166326362393463373733656234346334346538393264316535356331303736663136303833313965653635376534306631393239363735343361623432616232323233383664313735383665323533373438646162643032356535306235306165363035303732306532333964363465653666623435303763303631346464346265376166646231333330383930666633613665313736353237633331313661663132396139616335653333366439663630316537313237613664376438323061643266393032646163396232343836363861316261623038643130333432656136396137303937313332666637313230636336346663646537383430633635366261313733326261393565396333363735313137356534656333643834613765306432383834326234316262626264366632386534366333613636333365313832373936356335353832306435306461653262303436356363306434326531393562396431353332653632323565623939386436613439303739613861316364346430313735646533633837663937363134383437623363626231376161333462653832306237623361643938616333666165663939336136373738393734373832633063346165336661626263633433303230333031303030312804320218073a606633353738373364343131346131616566303361646336626136396566616632363930653232376162633136613666633665353034396136336662643936383830303462313465343633633230653338343336613361323464333138326464380ad1070a0d33342e3130362e3234372e363510a388031a05302e302e3822cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030393164376466666637386634656662653538393034353063356263396533353334626666616461643933666237616662313562633762636636376433643362343133626439393934306464383235363461646130346162326534656466306131633062386662376531613830393265393133386539363062653263633638623562393766353764323831633538373265393761343739666338343833363331363065333836336235376233336534383639623138356163653565333662643433616535666136373863396562363666316634303134373836383236623266386661376530303630663434303563306138663964613732303566663436383361323433666130663331356631616662623461346431343064303232333465343437336662393266636233386633656232386336306366376362666236346530363963313830383665346464363139333839323061653066643763313933653665313034653635623831376564393339386532333232333766646630383332326339636563303964343039393237326137633031356432326234646363393639663665613166353138393032313035646636303039326235356134316234663332623935376235376438346535623232333930356538363938393531373333656139663265323436316563306436353232656538313664353835306661636665623431326366663962393939343361383764633064303436343437636539336239376531366437336239366234323633393632663831666366393435386535373537376337383061366631363135616137613132333236373338653236396262373331663839653839313632326535373765613534343230626630636134366265366663346637316366323638316163303235326161383835653133626536373263643238343539303432376463643133376366333131363235653862656533623038666463616166343635623338376365376362333338313666326331346136623939616337643733343331386366633539623765643933396261666566383739303230333031303030312805320218083a603439333161373832303264353566313062333135373537383563336634333964623638313962643131303033646637626332636539326532396135313762376332313838306465623463303137393537343462353736636434336238343938640ad0070a0c33352e38332e38392e31373110a388031a05302e302e3822cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030393164376466666637386634656662653538393034353063356263396533353334626666616461643933666237616662313562633762636636376433643362343133626439393934306464383235363461646130346162326534656466306131633062386662376531613830393265393133386539363062653263633638623562393766353764323831633538373265393761343739666338343833363331363065333836336235376233336534383639623138356163653565333662643433616535666136373863396562363666316634303134373836383236623266386661376530303630663434303563306138663964613732303566663436383361323433666130663331356631616662623461346431343064303232333465343437336662393266636233386633656232386336306366376362666236346530363963313830383665346464363139333839323061653066643763313933653665313034653635623831376564393339386532333232333766646630383332326339636563303964343039393237326137633031356432326234646363393639663665613166353138393032313035646636303039326235356134316234663332623935376235376438346535623232333930356538363938393531373333656139663265323436316563306436353232656538313664353835306661636665623431326366663962393939343361383764633064303436343437636539336239376531366437336239366234323633393632663831666366393435386535373537376337383061366631363135616137613132333236373338653236396262373331663839653839313632326535373765613534343230626630636134366265366663346637316366323638316163303235326161383835653133626536373263643238343539303432376463643133376366333131363235653862656533623038666463616166343635623338376365376362333338313666326331346136623939616337643733343331386366633539623765643933396261666566383739303230333031303030312805320218083a603439333161373832303264353566313062333135373537383563336634333964623638313962643131303033646637626332636539326532396135313762376332313838306465623463303137393537343462353736636434336238343938640ad1070a0d31332e37382e3233322e31393210a388031a05302e302e3822cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030393164376466666637386634656662653538393034353063356263396533353334626666616461643933666237616662313562633762636636376433643362343133626439393934306464383235363461646130346162326534656466306131633062386662376531613830393265393133386539363062653263633638623562393766353764323831633538373265393761343739666338343833363331363065333836336235376233336534383639623138356163653565333662643433616535666136373863396562363666316634303134373836383236623266386661376530303630663434303563306138663964613732303566663436383361323433666130663331356631616662623461346431343064303232333465343437336662393266636233386633656232386336306366376362666236346530363963313830383665346464363139333839323061653066643763313933653665313034653635623831376564393339386532333232333766646630383332326339636563303964343039393237326137633031356432326234646363393639663665613166353138393032313035646636303039326235356134316234663332623935376235376438346535623232333930356538363938393531373333656139663265323436316563306436353232656538313664353835306661636665623431326366663962393939343361383764633064303436343437636539336239376531366437336239366234323633393632663831666366393435386535373537376337383061366631363135616137613132333236373338653236396262373331663839653839313632326535373765613534343230626630636134366265366663346637316366323638316163303235326161383835653133626536373263643238343539303432376463643133376366333131363235653862656533623038666463616166343635623338376365376362333338313666326331346136623939616337643733343331386366633539623765643933396261666566383739303230333031303030312805320218083a603439333161373832303264353566313062333135373537383563336634333964623638313962643131303033646637626332636539326532396135313762376332313838306465623463303137393537343462353736636434336238343938640ad0070a0c33342e3132352e32332e343910a388031a05302e302e3922cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030633665313863386662663463643465623130343534326362323061616161323532643935663035326631303836643538316334346164373337626636363736633063336637383961663532363562386166623739623530393132646138346530616663663735343763623166666630386430353237303137656236646335636466383362353139363964343433333661363338376364373062393462663463396261663230323938343065356634663836336437303831663066613831653038363361646564623862383961356461633262623535326436653762396662613232326163323863353730373535333866633935373939323934326433343166613238373665366235303765396365376564353732653863666461356465666133363466646638643865323338323961346363626234373866313165656533623332616238356530373239353163356439343230313135666261333237303733343934663433623566366265626638343135326533353665376231366261373634623761336235326362323733343634303136336265313436356536643166613463366536663636363834613633356339613535366161373130306462653634356466386634633432336165343561303863623335623462633138373838366532323939623563303231306135666261336239343439663438336566393465643932326531653938633131336265313636623839633733353832323433313335643434323330366162653561373162373730313866663333356436646437393534323639376231363832333862393637323766643133333962356638326133623661353937643937363033376165323530363435366338623334653966626633626333323431303434316334626663386562613538353937323534656665626661613738383039613563383835343732396135626137386563653139666338343037646438383934613662633738343430333764383738636163653663313532633265383965386136346230363861366332333765303939393362653830363839303230333031303030312806320218093a603634653039383631356266343035663765643561343031333434366238396334383863666364366262323561346136373664633737656561313164333364373032363832663061363961383033306538633537373764306534323230333739390acf070a0b35302e31382e31372e393310a388031a05302e302e3922cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030633665313863386662663463643465623130343534326362323061616161323532643935663035326631303836643538316334346164373337626636363736633063336637383961663532363562386166623739623530393132646138346530616663663735343763623166666630386430353237303137656236646335636466383362353139363964343433333661363338376364373062393462663463396261663230323938343065356634663836336437303831663066613831653038363361646564623862383961356461633262623535326436653762396662613232326163323863353730373535333866633935373939323934326433343166613238373665366235303765396365376564353732653863666461356465666133363466646638643865323338323961346363626234373866313165656533623332616238356530373239353163356439343230313135666261333237303733343934663433623566366265626638343135326533353665376231366261373634623761336235326362323733343634303136336265313436356536643166613463366536663636363834613633356339613535366161373130306462653634356466386634633432336165343561303863623335623462633138373838366532323939623563303231306135666261336239343439663438336566393465643932326531653938633131336265313636623839633733353832323433313335643434323330366162653561373162373730313866663333356436646437393534323639376231363832333862393637323766643133333962356638326133623661353937643937363033376165323530363435366338623334653966626633626333323431303434316334626663386562613538353937323534656665626661613738383039613563383835343732396135626137386563653139666338343037646438383934613662633738343430333764383738636163653663313532633265383965386136346230363861366332333765303939393362653830363839303230333031303030312806320218093a603634653039383631356266343035663765643561343031333434366238396334383863666364366262323561346136373664633737656561313164333364373032363832663061363961383033306538633537373764306534323230333739390ad1070a0d32302e3135302e3133362e383910a388031a05302e302e3922cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030633665313863386662663463643465623130343534326362323061616161323532643935663035326631303836643538316334346164373337626636363736633063336637383961663532363562386166623739623530393132646138346530616663663735343763623166666630386430353237303137656236646335636466383362353139363964343433333661363338376364373062393462663463396261663230323938343065356634663836336437303831663066613831653038363361646564623862383961356461633262623535326436653762396662613232326163323863353730373535333866633935373939323934326433343166613238373665366235303765396365376564353732653863666461356465666133363466646638643865323338323961346363626234373866313165656533623332616238356530373239353163356439343230313135666261333237303733343934663433623566366265626638343135326533353665376231366261373634623761336235326362323733343634303136336265313436356536643166613463366536663636363834613633356339613535366161373130306462653634356466386634633432336165343561303863623335623462633138373838366532323939623563303231306135666261336239343439663438336566393465643932326531653938633131336265313636623839633733353832323433313335643434323330366162653561373162373730313866663333356436646437393534323639376231363832333862393637323766643133333962356638326133623661353937643937363033376165323530363435366338623334653966626633626333323431303434316334626663386562613538353937323534656665626661613738383039613563383835343732396135626137386563653139666338343037646438383934613662633738343430333764383738636163653663313532633265383965386136346230363861366332333765303939393362653830363839303230333031303030312806320218093a60363465303938363135626634303566376564356134303133343436623839633438386366636436626232356134613637366463373765656131316433336437303236383266306136396138303330653863353737376430653432323033373939\",\n ),\n ),\n);\nexport const TESTNET_ADDRESS_BOOK = NodeAddressBook._fromProtobuf(\n HashgraphProto.proto.NodeAddressBook.decode(\n hex.decode(\n \"0a7f0a0c33342e39342e3130362e363110a388031a05302e302e33320218033a606131373165336261383334373637343761656232653261633464306531313563616161623931383230336230646665316364656162343433343338666332383961626338626138613661666638336462356631623333343034366461383863380a80010a0d35302e31382e3133322e32313110a388031a05302e302e33320218033a606131373165336261383334373637343761656232653261633464306531313563616161623931383230336230646665316364656162343433343338666332383961626338626138613661666638336462356631623333343034366461383863380a81010a0e3133382e39312e3134322e32313910a388031a05302e302e33320218033a606131373165336261383334373637343761656232653261633464306531313563616161623931383230336230646665316364656162343433343338666332383961626338626138613661666638336462356631623333343034366461383863380a82010a0d33352e3233372e3131392e353510a388031a05302e302e342801320218043a603734303964656332653439346236323765653439633639623239346265316365616562636133666463616633363738396538386663376435623065656635353631663532623832643335313931613339633266626564363032373236373136360a7f0a0a332e3231322e362e313310a388031a05302e302e342801320218043a603734303964656332653439346236323765653439633639623239346265316365616562636133666463616633363738396538386663376435623065656635353631663532623832643335313931613339633266626564363032373236373136360a82010a0d35322e3136382e37362e32343110a388031a05302e302e342801320218043a603734303964656332653439346236323765653439633639623239346265316365616562636133666463616633363738396538386663376435623065656635353631663532623832643335313931613339633266626564363032373236373136360a82010a0d33352e3234352e32372e31393310a388031a05302e302e352802320218053a603962313431363538346134613338306262383661366337643732303764386165646462633362363365613330353939383235356263653833353162613462356463613532633932383261353461366265643630646536336365303361616132340a80010a0b35322e32302e31382e383610a388031a05302e302e352802320218053a603962313431363538346134613338306262383661366337643732303764386165646462633362363365613330353939383235356263653833353162613462356463613532633932383261353461366265643630646536336365303361616132340a81010a0c34302e37392e38332e31323410a388031a05302e302e352802320218053a603962313431363538346134613338306262383661366337643732303764386165646462633362363365613330353939383235356263653833353162613462356463613532633932383261353461366265643630646536336365303361616132340a82010a0d33342e38332e3131322e31313610a388031a05302e302e362803320218063a603634383636383562346536653063623936333437326330316665393939333166643965346334343838376261383334323361653766656564323264363438343834636638613362633563636361366133373338376266393664333836373238300a81010a0c35342e37302e3139322e333310a388031a05302e302e362803320218063a603634383636383562346536653063623936333437326330316665393939333166643965346334343838376261383334323361653766656564323264363438343834636638613362633563636361366133373338376266393664333836373238300a81010a0c35322e3138332e34352e363510a388031a05302e302e362803320218063a603634383636383562346536653063623936333437326330316665393939333166643965346334343838376261383334323361653766656564323264363438343834636638613362633563636361366133373338376266393664333836373238300a80010a0b33342e39342e3136302e3410a388031a05302e302e372804320218073a603339653930393931356138353238303330313534613663373730393530633762343737376261343031333537633065363138373635343231356363323061616363646438653566663239653963346439356366343130316661363862653435630a83010a0e35342e3137362e3139392e31303910a388031a05302e302e372804320218073a603339653930393931356138353238303330313534613663373730393530633762343737376261343031333537633065363138373635343231356363323061616363646438653566663239653963346439356366343130316661363862653435630a82010a0d31332e36342e3138312e31333610a388031a05302e302e372804320218073a603339653930393931356138353238303330313534613663373730393530633762343737376261343031333537633065363138373635343231356363323061616363646438653566663239653963346439356366343130316661363862653435630a83010a0e33342e3130362e3130322e32313810a388031a05302e302e382805320218083a606134343837346137616131623337373431613037316164616165373866623135326236393664316335386438646566626531643832333034353332613063303139656539366363313964373536383635373864333961316536633331613165650a82010a0d33352e3135352e34392e31343710a388031a05302e302e382805320218083a606134343837346137616131623337373431613037316164616165373866623135326236393664316335386438646566626531643832333034353332613063303139656539366363313964373536383635373864333961316536633331613165650a81010a0c31332e37382e3233382e333210a388031a05302e302e382805320218083a606134343837346137616131623337373431613037316164616165373866623135326236393664316335386438646566626531643832333034353332613063303139656539366363313964373536383635373864333961316536633331613165650a83010a0e33342e3133332e3139372e32333010a388031a05302e302e392806320218093a603639383332613733613336303265386431666265356164353864316332363337613162363732643731656538376166313064623634386562393161666232323832353362316634376535376433643461343466663534376233333934616132320a82010a0d35322e31342e3235322e32303710a388031a05302e302e392806320218093a603639383332613733613336303265386431666265356164353864316332363337613162363732643731656538376166313064623634386562393161666232323832353362316634376535376433643461343466663534376233333934616132320a82010a0d35322e3136352e31372e32333110a388031a05302e302e392806320218093a60363938333261373361333630326538643166626535616435386431633236333761316236373264373165653837616631306462363438656239316166623232383235336231663437653537643364346134346666353437623333393461613232\",\n ),\n ),\n);\nexport const MAINNET_ADDRESS_BOOK = NodeAddressBook._fromProtobuf(\n HashgraphProto.proto.NodeAddressBook.decode(\n hex.decode(\n \"0ab70722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030633435363165336332373863643635306538306334313363613434343233633163336331336366313437356636663639373664353937616534333262343961623432303836623739623834313332363035346238623364636635376438666364373962666330353831383363613234636434633163626335373465643131313765326635623762336336336365376230366439623465666366373337353633376234316665366635336338313162396465363134336633613532393537636466393536373735313230623333373033666635373632313430376162393537356263326433356330643434663039383366633165663633613466663532303966303730633932616631303632393536303163393662636564303634656331393031393730313963363831316334633864643830636234663461633731663961643736653761633839343536666266346630313166393061626432643930353336653832333436353166366265663932376533643564386237626634353930353039383362656361336162656632613964393761663334353737326137373430653936393932373562303138656130646632383661646436636539323365663930386662653736326137356632313131363836326462343464336463613164343462346432653864633130363663353030366262356137643935346164323535643462363033323733343735653531316165623438356430363961303637633061623563323435333863393333633036623561366165666139343030356332393135323133653463636461653663393432663632373266396464353238326436623839306631663230656664323339396364363734393234666135373034366163366461333265373339353161373331313365393166633262376666323965343835316238336666333966383362613965633666303863656664626236636262626666616266646661613931643933306637323030646134383133376333393463626431336537303165636463323631366664323162616436383161613466303031303230333031303030312804320218073a603665396138616263646364653665313134396133656265313766643538643839303538333961383664623732623036613365613230616131373666383638623235343838353261653432336437613963366237636666396537313436323961320ab70722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030613163343037373135343330336363373263346662373639326333663934323531626465633132333961316637613839373261626539316133353332336662656361363235613766666165363430366338353564633261663231313039303062306466306536653664623736333634646661316666653835656461353637393336653239383562383536333461333261613532613635393964643663333062653166376136633562386635656563616632363231643861343539363832666364326462616164313536316431316633336663636237663535303061633536386431363564626561616365333238366432383934663634313239643738316436633732666437643539396339653164336166346161343333633233623931306661653463343834313634316636313532366164373837656265613533393837343136376539643361373363633066623135363432396431356563373633613664306630363131356137396239616637383364373762393864383330393661613437343366393734303864396531346263663464646666653435393137363838343762343063623864613763613337353235366432623933356430393566653235326661653831666636653337663834643761393064376535373061346638656633633764373636656564613437326630393230313939303135613839303832353961383733633534353466636262646361643265353238646538353435356234303833633764633461646335613938386530636464666463313539643564373132616264353434616137336563303239303839383134633938613434663236666330363434363539633138336533313834616132373266386431646330626661336530613536303438346362303535626134646262356363333339656338306264313164363432646333613730326538633730336162323139333038346439626436336630646665313261343333633235373665616637383163666164383637656637306264613631373638623262656631346635306336633362386230393666303230333031303030312805320218083a606464336233653763643361323537643832373665343635333533363162303138623730303931663438363635653832303031306538316563303539326236396264346265316662643765636435303964303730313364643034313238343266640ab70722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030623263636163363561643066633736343561383137626661626334383761643765343133313165376133313938623337666238343264383463333935623366363764366264383438663130633666303363323930653866376461613864303031613834343164633335326131393136306133313933653638623832656466313961653637363933613961333364346362383765373839613130373037313535313565613737326361613862383661353639623931633534353038333564396333353466306461636563393766653737303931623435623134373639386237663836303134323264636432323631653932386465346461633963343264636261666466393663303732333362613330323730373666333763393639653865643330623662356438663530333462653764393263353936663862653836316535316663633361323432626639643862653965326139653865306631353565626366663233656666613763643537633130353432383131643830373736633935383535323666646230656161333465653139353564353131313933393066653837336534633034646564643239313635383834623938623436333038373838616537666334643461613461386663396263323637346261333231343933623632343435356164343130633164653731626339356431643931666130663230313431386137393565333039656166323937623639396266323763396661323736336364353963656230323165313662383230306331303630663238313766643833636663373637313833343839343631653335393932393162333830643665393339626161346231393233326136613237326464653635316638303436666463333464623237366137373764366662326265633332353562326363323434623461663536366231303566333063363530366464616530656233646564646366393437626362396336306530303039383466336234613863366334656434626639306263313933326237663934646333616536623336303030386562393032303430663962303230333031303030312802320218053a603561383634313561303861306138323566336232656237353031303135353230326533313234336665343161303333333834653738633138633131653565386632303964343933623062326664343565303662333734663262363964663564370ab70722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030613365333762373663366364356636363232643639323434343464313263363737633339356632623539303266336262393862386138623530353561373037373036636130323863643735303630613264383730326432643862303439343762646366653061386331343161613238343462316530366536363139303031326538623633323661623066613331373937336263376362346432393439663231303861613034633462306339316261613537323866356235363232656337356162663537386131663762343165646532613637656264363963313865353831666466396336303230616330646539636132633331663063363436393030333331316662623563653764623439633738376531613764323761613432356565376238346461376536363933396639633830643065383266636535356530326466633862356337383431386132366161343336353036393837313962616663656366306264343930303061646463666134303537303862646265666262313937343964323264616230303765343464343565613233623130366638383334633135326532353036326434636632346666323533353663376562333732393130353339336662343962616239303461303266306630626234313763643931396433353238393031323865366262666634666163396639306465313138613937346632613664643031653033326137396231373866363066613166636262643032623537303466623436323935633135313930383136333733656464363633356338353639373866316239353033663166373362346230626538616261326564316665656164353939353362663832656664653933613334373161626435356364613362613861363733666262333739393734396662303036643030336630653633663636356333343631643261376232396463386232303462613539613635363638613436616532383738663030643166393439306466396532383066656266343331356561303465616135363861336139666434386336326336336236656364613639303230333031303030312803320218063a606434363430333938303337393230373965636364356134343331316361306463323262353065633839356235366535336431326232396637326463366462613363616665326535623831303466626461303338616635623434376430666231320ab70722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030393361323135636334613761373232636165396331336162643633366466393963636565633661663964623436623639666135313637313665663530636532343930613938316530396162303139636132636234363831316235623631396431626431643565653666343661343263373737636264656536343261313438346563646635646464333732393634326333386336643433613838353838373434373566353832343434333636346330346466656439623839303435666230383565323563336566636234383431373333656666376335323963313339653639333530633263643739623263386431393637396137313265346538636166643332363735343162383332623365313061303132353564656636396466316539643362386438656166303331316465363764356531326232366464303164626264396433653432643335643964653237313330326530663166363964383763626337616361396538383637653964343238643363616230363636656234393064356662616233306266663366373835643033663230373261343362623962356535343635366135393263623631656166643561356566323834633763616563363666376634373332356363306434633164323766363631643861373438636135303731633036656631333464666639366634303836363838333636643436386132343738303031376530623536616261376661623433623362376330623737393036666165353438326633323831316332393265366231343435346531346238393438303161383661303363633437373934646430643734353237613732653432346564336166613034383939656362396136336632613961653732626537666139383961646630643635613332633835316439383031666334313034386466333335363466633762333137303765633866623830313430666537623761316661313230626131636236363033323463656666623462636332643962623764653063663534633831396632646433626365616465633963323566356531396463396231303230333031303030312806320218093a603365303261363732306334343636353965383633303564353562666565383230623335653635306665636163633535333039373435356532633465303332636339646564313662316262343464336235393262626163623663326266663165360ab70722cc063330383230316132333030643036303932613836343838366637306430313031303130353030303338323031386630303330383230313861303238323031383130303930323539663465336439663066333934323536353438653963373330386231306237333430336363393039346439376164313531623737303631373062393737326365623634643636326563656639303161386437643135643331396135396338623731303731616363643839356237633933363130646336393736663637633465313732396261383337336162376535326133663363386632363534393164646536396436653039393934373065373434353938313133316264393663333665363836353230336662326562643564353065616461666237323633393664656331643931373438393862346539626530346337346433303466656164643963626433323334633362376633333036633939636230633333396663323539363962343164353861326237636663313833326532323664383163313936333939336532323535613038376431363938633033643432313062643634353830363434643039356361373661613137393465646434306331633837623566383261386533396636303365393731313662613034353738653765383033343634393564373835643465663763663737313462396562366635663965306239613934663462373338383436313962393237346434613935656631353735346138396439376566356331613838623664363933653061383065626435333766633963663063613931643163363264393135646537656438313862393532653634633230303239336565386532383461343136613732613365313266633764343233623135386639623439363630636263323436366662656430666564326532346531303266646539343265623463666439346265633436643364393066633038633339666563626130336530636132343634616536363462393739353135626132396531663730326333666537303262653739333739366438656462313761613438633039323930623032343534396630363131663561653233656437653136343432646637643164616432323836633262623039643535323264643365643639386332663032303330313030303128093202180c3a606339373462623938326338313931336237333236643561336639646363343836313261313566376161643032663230376230663130636432303137613666626666353830336537636139626662343730396162323862366230396435623133660ab70722cc063330383230316132333030643036303932613836343838366637306430313031303130353030303338323031386630303330383230313861303238323031383130303962646438653834666164616133353332666334636530316138613137643463336232333266353061393739306532363236383465646334383233653831356131626435623230656365613762663536653239663662623762383331666233626636656663643134373566306238656435666662306231333835623936643136366236323966303339366138666566356630366534626361323565653461313334306565323633613464396262303230643866343732333036663364383836313338646537613031396530353962643061666339303263636261316132313361653264616136306338613031333735356665306134386530333466356234303233613264616465616138386335343836383335336163376137613364663132623266623634313837373465396231346265366561623863633237623838303132616436313632646137346530656562313631333539303566343337333734646162383538366437353061323662626433616332346165643837386334643533653635313037326338373165393464376163633537356339363733383137333461353366656166346437626136626364643234316363363435386336303837643836333032616132353163303466366435366239633332643764393636323437353065643035353738356430373733663433646330393962323863393232383131343865366338316632393766663964313636653030306163303462333132343138363737356663656637356635656261306331303332626631333064663663643761343632313164306466336530353834643932656136373334396438343930353038656234656638386635346338633364343836646538373139663130666139366665623835636337393630373663613738313331386565326439656439303363613133333630343063353961643931613464326636393865393130386165306564623962316362393561643333623139376666623138626431626138623536636265653261616539353835656365323038613165313462343835363436333032303330313030303128083202180b3a603937303834333033333130373866353638326337663332343464383263336233653238316139313837393537386465656163646363326132656265353431616631383831313561643265383338363565356635643234376234613138633165650ab50722cc0633303832303161323330306430363039326138363438383666373064303130313031303530303033383230313866303033303832303138613032383230313831303039303938383635646566326632616233373663376630663733386331643837613237616330316166643030383632306333356362366562666362623063333330303331393361333838633334366433303233313732373031323139336262373666643330303462383634333132633638396566353231336362623930313130313530396465616239346632366137333265363337393239646134633463623332353137653361646262333831316435306163346337376331666365386236353136303632313566333437303766336537323635353435653538633839343630396532383337366264623737373566653330343339653065313539326664636230633365653163333035373733643037326136623839353765616663653161313162653936356564616666333834333336366362366134346563323561383930313036653632343735363766373662353530666461343832626165633633303764363938656338383834316664363666323366323130653437623861396463626136626134653166613731366462333363383065333038313934393664636235653536303966623665376336313533373962646465643432376539323331623932353463326261663934333630386138366436393861653961336338363339646638383764366636623561373133383564323433333864393131613231326266373166316532616363386231383662393665633865363963383662366430353832313737373661303963396336383935336564623539313635373862356132363362326634363965336230633037656164613731613434376565613766386663316262383037343235353536376237663062643165366166623033353837313863393862343239653234623232393835393666633736636636616633393663613934333464373932366563376433376434623932616635366434356665666638313936303935323234613931366331666665366236363765323535666333616338636363656639323064633034346232353030333133326238373830363734326630323033303130303031320218033a603333373339306438666561313434616663313265383132353461323864616336656138323839333833366163303732656666643835653061373734383538306566323830393636343863356137663864626234636538313437363831353133370ab70722cc063330383230316132333030643036303932613836343838366637306430313031303130353030303338323031386630303330383230313861303238323031383130306335376564623966663237366530323362323830323163623164383763646631393636623639386366343865346561616137633639323037376365656538636362323339613463393231353937653865383966376363303564336633313331353738393736633465333134343035643461346530336137323431306335633039636135323761643561383562393938363337653732613332653166626330643535343662323436356539653830366332646435303965623035306162356662323730363366643932383135623164643236383965323131316361656236663534396539346139663030663038323164346361366336613631313766356135333363393236336266303734613330643563626566353064316338633233383762636139373265646564613039383362356430613662353764636230303230303036383238623430653430373662343837306232346261643834303536656535326235663432326538383430303238633235303036333832643865396336363132323566346637366561373265333430363037653966633666336332303433333037366131636138636231356564303361633839363664303530376263646536383165346530323331656539663837643131316537623438616338663934643264383432623532646637336635373363633534313439363437393763363236393638666661653734313866336236313039623561306630396533323233663461346435653335303964643235303133386636626331376266366365636531373539343433306466313830613338653930616466326166666266616430633662386331623837663137386130363164636662666638623932633931363664383734633166663561663466626364626665386539643039393337306464663630626537343736333364333665653465623563643531663665336333333965313531653431626462356135636532633863393761306134336233636434636330383138383463383739663964326633373438343238633835373366313763393066336362643032303330313030303128073202180a3a603734306166366266373339653838336338386633333434633961306638623330316533396463393831633531363365306465326133666634326239396534323665643765353662363766343231383530333834356466363266343963396662300ab70722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030393133316161333638663933343532323966393762363235396363636166666561323365303063643565616430326533663639366331653731346565333933396461643836306533386266393561323937346639656234386539333433663861616334303565613935356430353332336531313762336231633934383133613361663432666538303832633364343362616631626434643833363765393364623030616436393665363237613130333661653533346630313165616435653536663337613666666534346236623965303939343031313932616435363061303334366234316138313030393566356632643766643332643665656236353562613735386336623532366331323933383661663731393763376135336165363033643632323833323235343936316631366430656661383037396137363835363138383862653733333439323231373935366262636166616562623631333563356662623234383464356234613566646630333336616330326532366331363532633162643865616633306461653164366433656230306637623466616238643634373866653864393565623931316466393636613064656134653532326462373662383936363537306563633561663039353136343234663061663566386565363665333836643536353037313339393731363961633337353733626635326664303538646539356162326666363865363831313161623233343035656139363462326262383864303263306631636165643731656364643465346534303835393438373666646238353030626335356337626130323036366530356162393864396637653034363664393730326562353765653337323266386663633835613735353035666633323632313730323838623738383732336164623937653464653536323063633930656164313338326663643735373138383966656662313165363737316263336636663366656231396337616335343238373864303361393032373035323663336565643234393465666635346531353363613966363839303230333031303030312801320218043a603765616236393661623935343336363538626331346666366234626534643932356364353162323230646632613164356336656531363061646166323961353165363934646533656531383463653232656164386437646239333231383266330ab70722cc0633303832303161323330306430363039326138363438383666373064303130313031303530303033383230313866303033303832303138613032383230313831303038326465373330363566333466666332393334306435393439643232323062316534333636656435636637633665626436313663663934313661353365613030313766366262313136626664336633646566636331356237613464646630653434643032666536393536383830353365373961373730653230316263663731393333393030333965653866303836643466613734366337653035363931383330316639623565383465333932363238323830383561373962333232626361306235643835666539373232316132366262646532353863363230663064636561303261623165646431366363343961336632616239323838653364643166333764633462366136663731333366663932653534316337316237306432613266363664353537323561623138626638366430303965633364323466356431326530623565363830326431313531333732643462373634656265636234616638326636343934383565633537623561303164633637393538663561303363636161623763626139333534613137333732633133313662613437633935336161663934393031623366386332346536613361666436373538653766336231343363653264643363623037316232613734633932316365653934396134623561366265383739663163373930613662386436336231393264376565323961393439316664643638396139386330613763336436303332306631623461633264363232396466643934653432663361363034386137366265316562393538633861313837336265386433333861656339666335396162376633373632363738393430326331666435393566313930383735373565306265383237666334633061346662336433393361643734613934396363393836626662363463616264646165353339333566366463353630373464623933643737656133623831366264643662653533343439373237323238393835396666333463653531383630616666623632316431303438376463333834336631663836643534303334613633653438613161306430323033303130303031280a3202180d3a606132656363316232616539386264323862633161303864386633373161306434663734356337363864306337373339363235363265333433623235643833343235656565613765663865613134323935333432623865623738643332656333660ab70722cc0633303832303161323330306430363039326138363438383666373064303130313031303530303033383230313866303033303832303138613032383230313831303039383735356134303862353332316532363330353230303064366437643461326333613535346435653133383461396362356562663437346165383832633633623438366264303864313434646466316139346365396137643632353139363330303661666461616334353838343666313736343031393566653235333961363536393330656661383534663231343865363865633161303863316334396432303063336633303435666537313437663036643533346334626432363231303063623164643339373339643736306438316130626432306638336632353564323530376434636362313130366235333631386336613934343039633838376361653236326434636565396338363233323134376365633134303465306335376262613733313731333065653339363433383838616633643539386564643832623863363165363561653831613465316135366263303664333937313433613938643431636138376433656634333365663061656162363830313139316233653338343830393638663636623665383836363261663435613965323132393934663638623238386562393637626562393834373863323433653231333663316131353931663036316635626330346232316666326261343862323966313834333130383838373362646665393966386135326539343038393731383536653830346465613630326133313137383663393835363532393633633361333737303332396234303966373466646663373436623232613566383431383931323037316334636538343663396234623332306665646636653962363465326362653338346639613832623661616164346232303930373433316466316133336636393230376135363536303062653831303730643038333239303039393538353961343439386435623539333135626365626566656538303765623061336139343266316364663333363764643434343466646232393838366566636464306265346162653961313838383033393533383735656461333364623732393839663736336230323033303130303031280b3202180e3a603139366237623132303739376364623361396430303362393833643537646131303331303662313733306531376636376532633762616161646234333738396166313639366461313031316232353362636263383630333333383566303332380ab70722cc0633303832303161323330306430363039326138363438383666373064303130313031303530303033383230313866303033303832303138613032383230313831303061396462376638626161313236383938666162373839313135613362356438393734346631393765323830343161653039386633653838366336393837313732316531316262306164313166336365393132346161393631643661306463383435663439373635633366616231393935383430323637366635363434363262663238316462613535383837383066303365393035373938653138343236396161613630663761313437323333316532666231646561646438373763383463626362363431636139653563386164366534356263313539636230373966636230643434396364636438643932333963316130343765376234343864613063646361323636313061323566323936643936653734363962363736643461343434353136653761353965383532393361383038366638343063303532383534653032613863623230303264616433353832356265346438336235326661393165386337336666303439373436313438383632373837633131313866393234643331636261633162343466656666323264343336623339373965616466396234336134626661373265313562343735356663616232363065303661323739633362623733626337663136613036306434643532326664343930353830333838616135393564383034343733366535323266363432343931356637383033623735383365303935636466373863333235313936393764653831623839666235303035343735336231613137663961616662303634643834633939326639616231316363626338636231303831346463616635323634616134356632316264656661633832636361636161663335386533313337336565316261346537343032666438613730656130633238636135636337346463343235313063393639636432633435396231656333363838613031656133396139393237313063643232393763393861383462363334386135373738303466646332333464336665313930336532633231653137326461323862353961653665346337653865646438623731633439643730323033303130303031280c3202180f3a603538343661353366343437353239666439636462373830346364333136383865643665656265336236336461326635663231316666626337333731393763663366316366626664613631626537643135313066306539323339383131376637340ab70722cc0633303832303161323330306430363039326138363438383666373064303130313031303530303033383230313866303033303832303138613032383230313831303061386365616333363765623166316465356630643965663365616630646639623938343438666532303830383437363536326130363063353163323839373730623463616366653932636236353536393832336539363263326132633966656435336264333663613361313232646531633532356135383266323561346437643632386331613364356264623839333661656365373531306537353534656537303333303235633039326338323865656235373338626530326564393633646138316135393230353633346365393435343537376162383266343066313366316565353565306165373237653233633330323834623166343462393961636534646463356639616337616438386439666132323535393335623234646362613834303036343265313663663235333263306230643638393239303436303837313563343037366634366438346130653066656433366537366363646339363335356537613236313630393435633262353461653236636330306664303832333236333436656565656137646437356639313931316539396462636239396561346163366261303536633333323238643838316438353833316439636338373935393364613137343664643065653935646332623936666539336261666366663263643764393239353864373864663333663230356437313135656439666163346462366634636336306535366135343431646135623562353566613539393939303265393538613662366334346438313064646335363138313234316238376632326630353961363838306538303231373336643031383937646236353434396365383137613233373564303335353163623064653530376336303961306338303330656366346266646562323133633033646161373634613138323162373234333334663731663736386437616563623237373035326137303333373635663037323138303536633738663261383761663138333836643866363161356366636233663262613464643539393135663133643338363334643136393537353730323033303130303031280d320218103a603030306162636435396133306135333838633530306265363832663663613239343034363239356339323735383831633230643334626230643639306564613762333862366262643037613364643166646662366137303434626230396366660ab70722cc0633303832303161323330306430363039326138363438383666373064303130313031303530303033383230313866303033303832303138613032383230313831303061663062393134323537626637613436353563346135306430636164356530613165343538316564363632336630653837333066373936623866323963353831373862636363363933326331666333316633396566343462383264336334336233393837333733373366656362313239353232386130346664353061313466333634366438346665316634363763616562393864343633653239373565393935623864326531653339663362663661646463323561653335643635643032363038653033343535333739363665326162636534396238313462656164336331623735373137346165333063303062306334336539396238303439366237326433633133316631633665346663646130356632383131376566396532386334333033626534643863376530343264353862383363633132313934356132633635653739363263616139313835393338663337353764663763636139356366303262356533313934346133613631396130616333663165333462396230313364346332323463346631653730666439666433363938336566383661646535313833363263633833323263306637623631613961633735666238326537623836643638626330663039396130396131346361633561316438643338663961386137306363333766663563633362626432373432666664313436323535633137316536613137383038333237316463653066646536383165643439326362353962303739366432373031373538333864633539303831303765336136656133663961343036623364313133306363656333623437393165343962626332333136303362343661623264306639336434336265373561623961346437313065613934306532383561376231353362306361376364646565366439646365306164383335306334316439306332313562393538383531356166613061633333363561653037653831663362626233366264626561633462333162636231616134653832353635623937376639646164383564363236656566396161613965663864376533666230323033303130303031280e320218113a603933653238313031303462326231376230303935326235613431303264333365646230343363623136646533616433643364363832363066353562623065353837333765613539343463333338663763386362383863373833336663383630630ab70722cc0633303832303161323330306430363039326138363438383666373064303130313031303530303033383230313866303033303832303138613032383230313831303038633037626533303561643630623930626132646162333962306565373736306531613232663835373532323534306437306230336233663965343837356133613239616230383038386631343466353765623235326534366261353933383564306536643432373031313764613061626331623362383036393463396135303538623836643631646661303665373136373039633838653866656163376333613065316432356663306165626636613866373666636239396638343566653138313436316361623638353862393763336134303237666233373132623134653663303738396465313764343137363435373765353131343137656231363236393265623037616531653733353532333565396262343339303437623663303136313337383265376464366636303464616134363734363631643533393631663436633366616136623765373637363264333733623562353432623739656139363365666266333361633638313938626232623636316366663637363931366566333732616434633236633231366334626334373837633834656333326431383464373763373531383663303963663364396639313433336361393835333131396261623331666136616432366634353365353936643962646563613638613537363962633866656537613533356438306338633666336566623164666232383861623661393739383534623763653833313234656330643130326166663934633362373466396333373839353863323565623933336464353363316538303561313836353464366439313836393930663635373034323966393630663334653862346637666439393732646362666539323430653037346461326433353561356637656639633161663632656635393832613831373435373862396331356334396563353636626461636233306363666365663039636466653730386164343837343234653963316265363533663965653736363065376439343263316566613564613238366531616464616230366139613333663964653934363739356230323033303130303031280f320218123a603934383235313739643163333934303137306233356432363665346366613830643737386335653966356261653764653833666638636334373431663362653336616336336431653761653439373261656466366263316533636632303638390ab70722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030626531376339393634376365633635613434343037623533353835366233633362616566356235346635363561663538623834353662613863376365353335643561633732633631633434633736623363353763386538363438343136333762653130613833636665333963303932343736643064626534643663646364636437323061333062356266656235316130316131386635383263343566366338363939336663663764663138323933356465316438363930363034346463663335313836393335643962643765656137393532333532626562623465663961653066373636316537306134323337616661393839393636383763613438666366633562303064333830376630353462653066613863336266613432353033386265366566323935313634663232663733623765383863393465613962653861613466336132343563383962396431666435313932663761353062393538623265663831303462333666316266386664326366623238633134323138303063316334376534656639386166313530303730636336643639643137653865623932663138613661613161363532363661343935323338643130336638663639356235376563663337333635306130353230303837343537323162656138313536323739363763383037363336356466386334633761376434646438663263333835306331386662613731656236306536653864666264313936653035333766643730623334346563626363353330646663383364613666656466343964353161393034313935303262613964373063643335663163663363303639346532333534663930363466646266353335656232336332376330613433643062373863316638363763363164393836393564386465663762633261313062623636373463323266363661616230613931383133646466323763646238353263353965663739653162396531613037356661366565323761376533373734646266346232363436353432376536643561623931666537663066336137313738346563613138326235303230333031303030312810320218133a603038393039376465663031623037633764393734613537353532353161366161613061666236623332613534353334336432393138653732626164303433323163313131633234643432373538306633626131653236616139643735653632360ab70722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030613561643262373634336130346330353564326638636432353131623135313339666334353537353632313338386534396331313962326633393861636131313066363133393662306338363664653530363335323262623835343032373365313366366439346365316536303433386636616662303061616136343631326637313435653962636538626331613533623934313931336161373663396633613238333366616437636632383563376163326433376639396633633263646234396465346431353165363136373835363466323831663534313432346234316661376335316232613936303232383363376433326565303065623833386461313563333861666339366530363164393763656465323231363566663161613935396631633432373562326430393863343035383661353537396662623363623930303732373034313230613861363661353237306634666366643130383663393233363930613335653766643434356533336163303366313339633638363835353635373063646334616166323231303761366331613434323435366137633663373965653034303930653765356434663636626361363063613166343762366466623534336461633363626631396137373139613866353562366638336234613362386136366436303235366430613436353531666137303234626430353633316238613535383038373732353463326632663236386364633333643264626263666237333365396662653233336262396362353961623331613031343862323365386334323638306666313061663463373961346430383334366662373961393364393632393534386561663162623132343639386661656661346364643732343432633033613034623733333433326637343839303361333235633238336434353661623961653932316165376564333339316535643137383765666463323335343061376238356336393161653837306130376639306231316331336233326365343365616564313562333639363835636534393137376363393835303230333031303030312811320218143a603939666162633461646534653636326336653238323366346139366562323134343034383465356136643064333132623730633036386432326236323936333830376332333361343964626239383361376562623330653737303637373261340ab70722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030386434356332316330633935656636356130323964353263393537666430663835663230313233646130333465363136373164646565353437356630373338326136366336366362346463353035303464646664333735383130383364663864313735373733306564386436663336346466346333366132363531353931393535646132303161323430376661386162396232333133383131323235613064613233306662653338306530393061613536656661346632303265633962343832336636353031643936616336393865626632366161636633656532643166333261373231633934376531303736636633356233373364613164383761333661313532653030653731303131373932323832653832356666313731633538333362383835373062666336646138343439653666393566386231323635616235353531393430333135353364316435373666393363343263306361363061616261633463386464313632643831313466326232313531313538336337323533396665353663343939613932396465336134306130643435633137633538396332643739383863653236656166633932613364333762376561303034326434336530336166613632373162323632353561366363636661653533373138323164383165306230356332353062353966306139303734316130653065383861303965643536633562393738306430393566303930366630623831643531323633393832616165303131333663303732643834346131316436646134623261363163363434653161623137663136666634386565323366656465383435326631653432653264333061303739306332356434323036306531643434613637316132656232336431313466363863373165333366313736646235386136386234333030353462633164323938336132336133326561366666393566613763346438653338306562323936653938623739363865636638343534643831376337333765656135646439323165623836633136633762323933303461346137656362653561336131303230333031303030312812320218153a606537396165396337313933643164326263393433383436346338616135663632323461653835323936366134336239383235383833663766373432633533393562643330393935383761393638363662393233396431656666336165353037610ab70722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030623035616265326162303066646430366339353565383637313062306530366631613932363234613438616431636263386466633666323231323936326230633330666462643238346133376335613337363538623633633336656138313632353631613865346639343663626535373232633032383830316630663238316337306638643838633763303061326632653239663539376237393938363965643833353664663537633437626539393434613261616666363530663962346262613064626335336463383830666462623639656134353139303564323830323230326638653239633034613736643237616632656237633534383438356266336634363934633930633431383130383838383433373932383438383335663738313637303764336538643736663465363766353738306263663038383133633535656336333961396264363234313738663565623134376435303061663335316539656631623165333432343834636132363064623763636261653438366631336366323635623562316162363838303636303038303533623230633364656463653737316339613038613033323061613963653435316562396439383361376234396361613130393666386164633039383331386463333865306537636566306438653564353537613036373536383561316339653235366132626339646261333232623362623331373263663731343037376263333830663861306134333361386266613766626663353966366230393365633862663665393339376330396231386531383034306331623536363836343733376338666137653239373935663361343538386464613763326261623439353636356363346139623833366532656239306336326133666361663539316662356638313830346337363138306536323666613236343461376465333435313164366334363637643938393337653237373333663464316539313338383333353465353466643733353137323165373666376235366333343833333838663461366238376232386165626562303230333031303030312813320218163a603962343038383566313362366163316337353336393262613366313739303061333838333165363934613061663937343934623834333838323039636235656662646339386136646162623265316337313833393166633133356264616163330ab70722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030396463643863306135336539306333353539353734663636323034313137643362353033653530613336643330393766616338343239653663656364333762623534303731383038663265653938323033356638353161306339626532313736333833613232653338633161626131363866333266393035373063623332333363666536323539383736363661663637623531346361656632316662386466366430666364333363663236303662393264646561353533366236303638643836373832653339626435633338343435393931643431396237643165633038353939343132633039343964316332343062333563313464633535323734646261373166666165393336313235613566383139663534313332653234333964346163353539373939366563653835653133646666333336316639313331663536636561633562396635353262343963663666396139616336653564636532646233363934363266393361663830653562353662366538626566613136326130363162346137363839326264633834363437333036633630303835386664643237303332373663326337303434303139386566643766653335343563663261623538306337346366643634343561616637626437663734356363323532656162643236356561626565383632343137313034653639343861353537353666646332323264663061313031353234646531633363303863636630343330313165633766653936346564643834353161313330313437633037333633613335663131666465656638663261326237363137353762343335386666383962373561343864363762646336303930363933653062623836373965636262393366666462336633656439366265633933656634363536653337313661623837636534366361386531323539633866656464653866326631656130663365623263343865393635353164653132333330333435373235663435656436396338353735623531363833616661343732363231383236646232326262326431633466316533363436346139303230333031303030312814320218173a60346630613033333466393737363738313632663830643936376637323139313431333630633062376637663033316233376336396536323137333933336564616434366263626139373636376565373262666435613933346261313532326330\",\n ),\n ),\n);\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport LedgerId from \"../LedgerId.js\";\nimport * as util from \"../util.js\";\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../channel/MirrorChannel.js\").default} MirrorChannel\n * @typedef {import(\"../Node.js\").default} Node\n * @typedef {import(\"../MirrorNode.js\").default} MirrorNode\n * @typedef {import(\"../address_book/NodeAddressBook.js\").default} NodeAddressBook\n */\n\n/**\n * @template {Channel | MirrorChannel} ChannelT\n * @typedef {import(\"../ManagedNode.js\").default} ManagedNode\n */\n\n/**\n * @template {Channel | MirrorChannel} ChannelT\n * @template {ManagedNode} NetworkNodeT\n * @template {{ toString: () => string }} KeyT\n */\nexport default class ManagedNetwork {\n /**\n * @param {(address: string) => ChannelT} createNetworkChannel\n */\n constructor(createNetworkChannel) {\n /**\n * Map of node account ID (as a string)\n * to the node URL.\n *\n * @internal\n * @type {Map}\n */\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n this._network = new Map();\n\n /**\n * List of node account IDs.\n *\n * @protected\n * @type {NetworkNodeT[]}\n */\n this._nodes = [];\n\n /**\n * List of node account IDs.\n *\n * @protected\n * @type {NetworkNodeT[]}\n */\n this._healthyNodes = [];\n\n /** @type {(address: string, cert?: string) => ChannelT} */\n this._createNetworkChannel = createNetworkChannel;\n\n /** @type {LedgerId | null} */\n this._ledgerId = null;\n\n this._minBackoff = 8000;\n this._maxBackoff = 1000 * 60 * 60;\n\n /** @type {number} */\n this._maxNodeAttempts = -1;\n\n this._nodeMinReadmitPeriod = this._minBackoff;\n this._nodeMaxReadmitPeriod = this._maxBackoff;\n\n this._earliestReadmitTime = Date.now() + this._nodeMinReadmitPeriod;\n }\n\n /**\n * @deprecated\n * @param {string} networkName\n * @returns {this}\n */\n setNetworkName(networkName) {\n console.warn(\"Deprecated: Use `setLedgerId` instead\");\n return this.setLedgerId(networkName);\n }\n\n /**\n * @deprecated\n * @returns {string | null}\n */\n get networkName() {\n console.warn(\"Deprecated: Use `ledgerId` instead\");\n return this.ledgerId != null ? this.ledgerId.toString() : null;\n }\n\n /**\n * @param {string|LedgerId} ledgerId\n * @returns {this}\n */\n setLedgerId(ledgerId) {\n this._ledgerId =\n typeof ledgerId === \"string\"\n ? LedgerId.fromString(ledgerId)\n : ledgerId;\n return this;\n }\n\n /**\n * @returns {LedgerId | null}\n */\n get ledgerId() {\n return this._ledgerId != null ? this._ledgerId : null;\n }\n\n /**\n * @abstract\n * @param {[string, KeyT]} entry\n * @returns {NetworkNodeT}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _createNodeFromNetworkEntry(entry) {\n throw new Error(\"not implemented\");\n }\n\n /**\n * @abstract\n * @param {Map} network\n * @returns {number[]}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _getNodesToRemove(network) {\n throw new Error(\"not implemented\");\n }\n\n _removeDeadNodes() {\n if (this._maxNodeAttempts > 0) {\n for (let i = this._nodes.length - 1; i >= 0; i--) {\n const node = this._nodes[i];\n\n if (node._badGrpcStatusCount < this._maxNodeAttempts) {\n continue;\n }\n\n this._closeNode(i);\n }\n }\n }\n\n _readmitNodes() {\n const now = Date.now();\n\n if (this._earliestReadmitTime <= now) {\n let nextEarliestReadmitTime = Number.MAX_SAFE_INTEGER;\n let searchForNextEarliestReadmitTime = true;\n\n outer: for (let i = 0; i < this._nodes.length; i++) {\n for (let j = 0; j < this._healthyNodes.length; j++) {\n if (\n searchForNextEarliestReadmitTime &&\n this._nodes[i]._readmitTime > now\n ) {\n nextEarliestReadmitTime = Math.min(\n this._nodes[i]._readmitTime,\n nextEarliestReadmitTime,\n );\n }\n\n if (this._nodes[i] == this._healthyNodes[j]) {\n continue outer;\n }\n }\n\n searchForNextEarliestReadmitTime = false;\n\n if (this._nodes[i]._readmitTime <= now) {\n this._healthyNodes.push(this._nodes[i]);\n }\n }\n\n this._earliestReadmitTime = Math.min(\n Math.max(nextEarliestReadmitTime, this._nodeMinReadmitPeriod),\n this._nodeMaxReadmitPeriod,\n );\n }\n }\n\n /**\n * @param {number} count\n * @returns {NetworkNodeT[]}\n */\n _getNumberOfMostHealthyNodes(count) {\n this._removeDeadNodes();\n this._readmitNodes();\n\n const nodes = [];\n // Create a shallow for safe iteration\n let healthyNodes = this._healthyNodes.slice();\n count = Math.min(count, healthyNodes.length);\n\n for (let i = 0; i < count; i++) {\n // Select a random index\n const nodeIndex = Math.floor(Math.random() * healthyNodes.length);\n const selectedNode = healthyNodes[nodeIndex];\n\n // Check if the node exists\n if (!selectedNode) {\n break; // Break out of the loop if undefined node is selected\n }\n\n // Add the selected node in array for execution\n nodes.push(selectedNode);\n // Remove all nodes with the same account id as\n // the selected node account id from the array\n healthyNodes = healthyNodes.filter(\n // eslint-disable-next-line ie11/no-loop-func\n (node) => node.getKey() !== selectedNode.getKey(),\n );\n }\n\n return nodes;\n }\n\n /**\n * @param {number} i\n */\n _closeNode(i) {\n const node = this._nodes[i];\n\n node.close();\n this._removeNodeFromNetwork(node);\n this._nodes.splice(i, 1);\n }\n\n /**\n * @param {NetworkNodeT} node\n */\n _removeNodeFromNetwork(node) {\n const network = /** @type {NetworkNodeT[]} */ (\n this._network.get(node.getKey())\n );\n\n for (let j = 0; j < network.length; j++) {\n if (network[j] === node) {\n network.splice(j, 1);\n break;\n }\n }\n\n if (network.length === 0) {\n this._network.delete(node.getKey());\n }\n }\n\n /**\n * @param {Map} network\n * @returns {this}\n */\n _setNetwork(network) {\n /** @type {NetworkNodeT[]} */\n const newNodes = [];\n const newNodeKeys = new Set();\n const newNodeAddresses = new Set();\n\n /** @type {NetworkNodeT[]} */\n const newHealthyNodes = [];\n\n /** @type {Map} */\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const newNetwork = new Map();\n\n // Remove nodes that are not in the new network\n for (const i of this._getNodesToRemove(network)) {\n this._closeNode(i);\n }\n\n // Copy all the unclosed nodes\n for (const node of this._nodes) {\n newNodes.push(node);\n newNodeKeys.add(node.getKey());\n newNodeAddresses.add(node.address.toString());\n }\n\n // Add new nodes\n for (const [key, value] of network) {\n if (\n newNodeKeys.has(value.toString()) &&\n newNodeAddresses.has(key)\n ) {\n continue;\n }\n newNodes.push(this._createNodeFromNetworkEntry([key, value]));\n }\n\n // Shuffle the nodes so we don't immediately pick the first nodes\n util.shuffle(newNodes);\n\n // Copy all the nodes into the healhty nodes list initially\n // and push the nodes into the network; this maintains the\n // shuffled state from `newNodes`\n for (const node of newNodes) {\n if (!node.isHealthy()) {\n continue;\n }\n\n newHealthyNodes.push(node);\n\n const newNetworkNodes = newNetwork.has(node.getKey())\n ? /** @type {NetworkNodeT[]} */ (newNetwork.get(node.getKey()))\n : [];\n newNetworkNodes.push(node);\n newNetwork.set(node.getKey(), newNetworkNodes);\n }\n\n // console.log(JSON.stringify(newNodes, null, 2));\n this._nodes = newNodes;\n this._healthyNodes = newHealthyNodes;\n this._network = newNetwork;\n this._ledgerId = null;\n\n return this;\n }\n\n /**\n * @returns {number}\n */\n get maxNodeAttempts() {\n return this._maxNodeAttempts;\n }\n\n /**\n * @param {number} maxNodeAttempts\n * @returns {this}\n */\n setMaxNodeAttempts(maxNodeAttempts) {\n this._maxNodeAttempts = maxNodeAttempts;\n return this;\n }\n\n /**\n * @returns {number}\n */\n get minBackoff() {\n return this._minBackoff;\n }\n\n /**\n * @param {number} minBackoff\n * @returns {this}\n */\n setMinBackoff(minBackoff) {\n this._minBackoff = minBackoff;\n for (const node of this._nodes) {\n node.setMinBackoff(minBackoff);\n }\n return this;\n }\n\n /**\n * @returns {number}\n */\n get maxBackoff() {\n return this._maxBackoff;\n }\n\n /**\n * @param {number} maxBackoff\n * @returns {this}\n */\n setMaxBackoff(maxBackoff) {\n this._maxBackoff = maxBackoff;\n for (const node of this._nodes) {\n node.setMaxBackoff(maxBackoff);\n }\n return this;\n }\n\n /**\n * @returns {number}\n */\n get nodeMinReadmitPeriod() {\n return this._nodeMinReadmitPeriod;\n }\n\n /**\n * @param {number} nodeMinReadmitPeriod\n * @returns {this}\n */\n setNodeMinReadmitPeriod(nodeMinReadmitPeriod) {\n this._nodeMinReadmitPeriod = nodeMinReadmitPeriod;\n this._earliestReadmitTime = Date.now() + this._nodeMinReadmitPeriod;\n return this;\n }\n\n /**\n * @returns {number}\n */\n get nodeMaxReadmitPeriod() {\n return this._nodeMaxReadmitPeriod;\n }\n\n /**\n * @param {number} nodeMaxReadmitPeriod\n * @returns {this}\n */\n setNodeMaxReadmitPeriod(nodeMaxReadmitPeriod) {\n this._nodeMaxReadmitPeriod = nodeMaxReadmitPeriod;\n return this;\n }\n\n /**\n * @param {KeyT=} key\n * @returns {NetworkNodeT}\n */\n getNode(key) {\n this._readmitNodes();\n if (key != null && key != undefined) {\n const lockedNodes = this._network.get(key.toString());\n if (lockedNodes) {\n const randomNodeAddress = Math.floor(\n Math.random() * lockedNodes.length,\n );\n return /** @type {NetworkNodeT[]} */ (lockedNodes)[\n randomNodeAddress\n ];\n } else {\n const nodes = Array.from(this._network.keys());\n const randomNodeAccountId =\n nodes[Math.floor(Math.random() * nodes.length)];\n\n const randomNode = this._network.get(randomNodeAccountId);\n // We get the `randomNodeAccountId` from the network mapping,\n // so it cannot be `undefined`\n const randomNodeAddress = Math.floor(\n // @ts-ignore\n Math.random() * randomNode.length,\n );\n // @ts-ignore\n return randomNode[randomNodeAddress];\n }\n } else {\n if (this._healthyNodes.length == 0) {\n throw new Error(\"failed to find a healthy working node\");\n }\n\n return this._healthyNodes[\n Math.floor(Math.random() * this._healthyNodes.length)\n ];\n }\n }\n\n /**\n * @param {NetworkNodeT} node\n */\n increaseBackoff(node) {\n node.increaseBackoff();\n\n for (let i = 0; i < this._healthyNodes.length; i++) {\n if (this._healthyNodes[i] == node) {\n this._healthyNodes.splice(i, 1);\n }\n }\n }\n\n /**\n * @param {NetworkNodeT} node\n */\n decreaseBackoff(node) {\n node.decreaseBackoff();\n }\n\n close() {\n for (const node of this._nodes) {\n node.close();\n }\n\n this._network.clear();\n this._nodes = [];\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport AccountId from \"../account/AccountId.js\";\nimport Node from \"../Node.js\";\nimport {\n PREVIEWNET_ADDRESS_BOOK,\n TESTNET_ADDRESS_BOOK,\n MAINNET_ADDRESS_BOOK,\n} from \"../address_book/AddressBooks.js\";\nimport ManagedNetwork from \"./ManagedNetwork.js\";\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../address_book/NodeAddressBook.js\").default} NodeAddressBook\n */\n\n/**\n * @augments {ManagedNetwork}\n */\nexport default class Network extends ManagedNetwork {\n /**\n * @param {(address: string) => Channel} createNetworkChannel\n */\n constructor(createNetworkChannel) {\n super(createNetworkChannel);\n\n this._maxNodesPerTransaction = -1;\n\n /** @type {NodeAddressBook | null} */\n this._addressBook = null;\n\n /** @type {boolean} */\n this._transportSecurity = false;\n }\n\n /**\n * @param {{[key: string]: (string | AccountId)}} network\n */\n setNetwork(network) {\n this._setNetwork(\n // eslint-disable-next-line ie11/no-collection-args\n new Map(\n // eslint-disable-next-line ie11/no-collection-args\n Object.entries(network).map(([key, value]) => {\n return [\n key,\n typeof value === \"string\"\n ? AccountId.fromString(value)\n : value,\n ];\n }),\n ),\n );\n }\n\n /**\n * @param {NodeAddressBook} addressBook\n * @returns {this}\n */\n setNetworkFromAddressBook(addressBook) {\n /** @type {Record} */\n const network = {};\n const port = this.isTransportSecurity() ? 50212 : 50211;\n\n for (const nodeAddress of addressBook.nodeAddresses) {\n for (const endpoint of nodeAddress.addresses) {\n // TODO: We hard code ports too much, should fix\n if (endpoint.port === port && nodeAddress.accountId != null) {\n network[endpoint.toString()] = nodeAddress.accountId;\n }\n }\n }\n\n this.setNetwork(network);\n return this;\n }\n\n /**\n * @returns {{[key: string]: (string | AccountId)}}\n */\n get network() {\n /**\n * @type {{[key: string]: (string | AccountId)}}\n */\n var n = {};\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n for (const node of this._nodes) {\n n[node.address.toString()] = node.accountId;\n }\n\n return n;\n }\n\n /**\n * @param {string} networkName\n * @returns {this}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n setNetworkName(networkName) {\n super.setLedgerId(networkName);\n\n switch (networkName) {\n case \"mainnet\":\n this._addressBook = MAINNET_ADDRESS_BOOK;\n break;\n case \"testnet\":\n this._addressBook = TESTNET_ADDRESS_BOOK;\n break;\n case \"previewnet\":\n this._addressBook = PREVIEWNET_ADDRESS_BOOK;\n break;\n }\n\n if (this._addressBook != null) {\n for (const node of this._nodes) {\n for (const address of this._addressBook.nodeAddresses) {\n if (\n address.accountId != null &&\n address.accountId.toString() ===\n node.accountId.toString()\n ) {\n node.setNodeAddress(address);\n }\n }\n }\n }\n\n return this;\n }\n\n /**\n * @returns {string | null}\n */\n get networkName() {\n return this._ledgerId != null ? this._ledgerId.toString() : null;\n }\n\n /**\n * @abstract\n * @param {[string, (string | AccountId)]} entry\n * @returns {Node}\n */\n _createNodeFromNetworkEntry(entry) {\n const accountId =\n typeof entry[1] === \"string\"\n ? AccountId.fromString(entry[1])\n : entry[1];\n\n return new Node({\n newNode: {\n address: entry[0],\n accountId,\n channelInitFunction: this._createNetworkChannel,\n },\n }).setMinBackoff(this._minBackoff);\n }\n\n /**\n * @abstract\n * @param {Map} network\n * @returns {number[]}\n */\n _getNodesToRemove(network) {\n const indexes = [];\n\n for (let i = this._nodes.length - 1; i >= 0; i--) {\n const node = this._nodes[i];\n const accountId = network.get(node.address.toString());\n\n if (\n accountId == null ||\n accountId.toString() !== node.accountId.toString()\n ) {\n indexes.push(i);\n }\n }\n\n return indexes;\n }\n\n /**\n * @abstract\n * @param {[string, (string | AccountId)]} entry\n * @returns {boolean}\n */\n _checkNetworkContainsEntry(entry) {\n for (const node of this._nodes) {\n if (node.address.toString() === entry[0]) {\n return true;\n }\n }\n\n return false;\n }\n\n /**\n * @returns {number}\n */\n get maxNodesPerTransaction() {\n return this._maxNodesPerTransaction;\n }\n\n /**\n * @param {number} maxNodesPerTransaction\n * @returns {this}\n */\n setMaxNodesPerTransaction(maxNodesPerTransaction) {\n this._maxNodesPerTransaction = maxNodesPerTransaction;\n return this;\n }\n\n /**\n * @returns {number}\n */\n get maxNodeAttempts() {\n return this._maxNodeAttempts;\n }\n\n /**\n * @param {number} maxNodeAttempts\n * @returns {this}\n */\n setMaxNodeAttempts(maxNodeAttempts) {\n this._maxNodeAttempts = maxNodeAttempts;\n return this;\n }\n\n /**\n * @returns {boolean}\n */\n isTransportSecurity() {\n return this._transportSecurity;\n }\n\n /**\n * @param {boolean} transportSecurity\n * @returns {this}\n */\n setTransportSecurity(transportSecurity) {\n if (this._transportSecurity == transportSecurity) {\n return this;\n }\n\n this._network.clear();\n\n for (let i = 0; i < this._nodes.length; i++) {\n let node = this._nodes[i];\n node.close();\n\n node = /** @type {Node} */ (\n transportSecurity\n ? node\n .toSecure()\n .setCert(\n this._ledgerId != null\n ? this._ledgerId.toString()\n : \"\",\n )\n : node.toInsecure()\n );\n this._nodes[i] = node;\n\n const nodes =\n this._network.get(node.getKey()) != null\n ? /** @type {Node[]} */ (this._network.get(node.getKey()))\n : [];\n nodes.push(node);\n this._network.set(node.getKey(), nodes);\n }\n\n // Overwrite healthy node list since new ports might make the node work again\n this._healthyNodes = [...this._nodes];\n\n this._transportSecurity = transportSecurity;\n return this;\n }\n\n /**\n * @internal\n * @returns {number}\n */\n getNumberOfNodesForTransaction() {\n if (this._maxNodesPerTransaction > 0) {\n return this._maxNodesPerTransaction;\n }\n // ultimately it does not matter if we round up or down\n // if we round up, we will eventually take one more healthy node for execution\n // and we would hit the 'nodes.length == count' check in _getNumberOfMostHealthyNodes() less often\n return this._nodes.length <= 9\n ? this._nodes.length\n : Math.floor((this._nodes.length + 3 - 1) / 3);\n }\n\n /**\n * @internal\n * @returns {AccountId[]}\n */\n getNodeAccountIdsForExecute() {\n return this._getNumberOfMostHealthyNodes(\n this.getNumberOfNodesForTransaction(),\n ).map((node) => node.accountId);\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport ManagedNode from \"./ManagedNode.js\";\n\n/**\n * @typedef {import(\"./channel/MirrorChannel.js\").default} MirrorChannel\n * @typedef {import(\"./ManagedNodeAddress.js\").default} ManagedNodeAddress\n */\n\n/**\n * @typedef {object} NewNode\n * @property {string} address\n * @property {(address: string, cert?: string) => MirrorChannel} channelInitFunction\n */\n\n/**\n * @typedef {object} CloneNode\n * @property {MirrorNode} node\n * @property {ManagedNodeAddress} address\n */\n\n/**\n * @augments {ManagedNode}\n */\nexport default class MirrorNode extends ManagedNode {\n /**\n * @param {object} props\n * @param {NewNode=} [props.newNode]\n * @param {CloneNode=} [props.cloneNode]\n */\n constructor(props = {}) {\n super(props);\n }\n\n /**\n * @returns {string}\n */\n getKey() {\n return this._address.toString();\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport MirrorNode from \"../MirrorNode.js\";\nimport ManagedNetwork from \"./ManagedNetwork.js\";\n\n/**\n * @typedef {import(\"../channel/MirrorChannel.js\").default} MirrorChannel\n */\n\n/**\n * @augments {ManagedNetwork}\n */\nexport default class MirrorNetwork extends ManagedNetwork {\n /**\n * @param {(address: string) => MirrorChannel} channelInitFunction\n */\n constructor(channelInitFunction) {\n super(channelInitFunction);\n }\n\n /**\n * @param {string[]} network\n */\n setNetwork(network) {\n // eslint-disable-next-line ie11/no-collection-args\n this._setNetwork(new Map(network.map((address) => [address, address])));\n }\n\n /**\n * @returns {string[]}\n */\n get network() {\n /**\n * @type {string[]}\n */\n var n = [];\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n for (const node of this._nodes) {\n n.push(node.address.toString());\n }\n\n return n;\n }\n\n /**\n * @abstract\n * @param {[string, string]} entry\n * @returns {MirrorNode}\n */\n _createNodeFromNetworkEntry(entry) {\n return new MirrorNode({\n newNode: {\n address: entry[1],\n channelInitFunction: this._createNetworkChannel,\n },\n }).setMinBackoff(this._minBackoff);\n }\n\n /**\n * @abstract\n * @param {Map} network\n * @returns {number[]}\n */\n _getNodesToRemove(network) {\n const indexes = [];\n\n const values = Object.values(network);\n\n for (let i = this._nodes.length - 1; i >= 0; i--) {\n const node = this._nodes[i];\n\n if (!values.includes(node.address.toString())) {\n indexes.push(i);\n }\n }\n\n return indexes;\n }\n\n /**\n * @returns {MirrorNode}\n */\n getNextMirrorNode() {\n if (this._createNetworkChannel == null) {\n throw new Error(\"mirror network not supported on browser\");\n }\n\n return this._getNumberOfMostHealthyNodes(1)[0];\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport AccountId from \"../account/AccountId.js\";\nimport AccountBalanceQuery from \"../account/AccountBalanceQuery.js\";\nimport Hbar from \"../Hbar.js\";\nimport Network from \"./Network.js\";\nimport MirrorNetwork from \"./MirrorNetwork.js\";\nimport PublicKey from \"../PublicKey.js\";\nimport PrivateKey from \"../PrivateKey.js\";\nimport LedgerId from \"../LedgerId.js\";\nimport FileId from \"../file/FileId.js\";\nimport CACHE from \"../Cache.js\";\nimport Logger from \"../logger/Logger.js\"; // eslint-disable-line\nimport { convertToNumber } from \"../util.js\";\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../channel/MirrorChannel.js\").default} MirrorChannel\n * @typedef {import(\"../address_book/NodeAddressBook.js\").default} NodeAddressBook\n */\n\n/**\n * @typedef {object} Operator\n * @property {string | PrivateKey} privateKey\n * @property {string | AccountId} accountId\n */\n\n/**\n * @typedef {object} ClientOperator\n * @property {PublicKey} publicKey\n * @property {AccountId} accountId\n * @property {(message: Uint8Array) => Promise} transactionSigner\n */\n\n/**\n * @typedef {object} ClientConfiguration\n * @property {{[key: string]: (string | AccountId)} | string} network\n * @property {string[] | string} [mirrorNetwork]\n * @property {Operator} [operator]\n * @property {boolean} [scheduleNetworkUpdate]\n */\n\n/**\n * @typedef {\"mainnet\" | \"testnet\" | \"previewnet\"} NetworkName\n */\n\n/**\n * @abstract\n * @template {Channel} ChannelT\n * @template {MirrorChannel} MirrorChannelT\n */\nexport default class Client {\n /**\n * @protected\n * @hideconstructor\n * @param {ClientConfiguration} [props]\n */\n constructor(props) {\n /**\n * List of mirror network URLs.\n *\n * @internal\n * @type {MirrorNetwork}\n */\n this._mirrorNetwork = new MirrorNetwork(\n this._createMirrorNetworkChannel(),\n );\n\n /**\n * Map of node account ID (as a string)\n * to the node URL.\n *\n * @internal\n * @type {Network}\n */\n this._network = new Network(this._createNetworkChannel());\n\n /**\n * @internal\n * @type {?ClientOperator}\n */\n this._operator = null;\n\n /**\n * @private\n * @type {?Hbar}\n */\n this._defaultMaxTransactionFee = null;\n\n /**\n * @private\n * @type {Hbar}\n */\n this._defaultMaxQueryPayment = new Hbar(1);\n\n if (props != null) {\n if (props.operator != null) {\n this.setOperator(\n props.operator.accountId,\n props.operator.privateKey,\n );\n }\n }\n\n /** @type {number | null} */\n this._maxAttempts = null;\n\n /** @private */\n this._signOnDemand = false;\n\n /** @private */\n this._autoValidateChecksums = false;\n\n /** @private */\n this._minBackoff = 250;\n\n /** @private */\n this._maxBackoff = 8000;\n\n /** @private */\n this._defaultRegenerateTransactionId = true;\n\n /** @private */\n this._requestTimeout = null;\n\n /** @private */\n this._networkUpdatePeriod = 24 * 60 * 60 * 1000;\n\n /** @private */\n this._isShutdown = false;\n\n if (props != null && props.scheduleNetworkUpdate !== false) {\n this._scheduleNetworkUpdate();\n }\n\n /** @internal */\n /** @type {NodeJS.Timeout} */\n this._timer;\n\n /**\n * Logger\n *\n * @external\n * @type {Logger | null}\n */\n this._logger = null;\n }\n\n /**\n * @deprecated\n * @param {NetworkName} networkName\n * @returns {this}\n */\n setNetworkName(networkName) {\n // uses custom NetworkName type\n // remove if phasing out set|get NetworkName\n console.warn(\"Deprecated: Use `setLedgerId` instead\");\n return this.setLedgerId(networkName);\n }\n\n /**\n * @deprecated\n * @returns {string | null}\n */\n get networkName() {\n console.warn(\"Deprecated: Use `ledgerId` instead\");\n return this.ledgerId != null ? this.ledgerId.toString() : null;\n }\n\n /**\n * @param {string|LedgerId} ledgerId\n * @returns {this}\n */\n setLedgerId(ledgerId) {\n this._network.setLedgerId(\n typeof ledgerId === \"string\"\n ? LedgerId.fromString(ledgerId)\n : ledgerId,\n );\n\n return this;\n }\n\n /**\n * @returns {LedgerId | null}\n */\n get ledgerId() {\n return this._network._ledgerId != null ? this._network.ledgerId : null;\n }\n\n /**\n * @param {{[key: string]: (string | AccountId)} | string} network\n * @returns {void}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n setNetwork(network) {\n // TODO: This logic _can_ be de-duplicated and likely should\n throw new Error(\"not implemented\");\n }\n\n /**\n * @param {NodeAddressBook} addressBook\n * @returns {this}\n */\n setNetworkFromAddressBook(addressBook) {\n this._network.setNetworkFromAddressBook(addressBook);\n return this;\n }\n\n /**\n * @returns {{[key: string]: (string | AccountId)}}\n */\n get network() {\n return this._network.network;\n }\n\n /**\n * @param {string[] | string} mirrorNetwork\n * @returns {void}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n setMirrorNetwork(mirrorNetwork) {\n throw new Error(\"not implemented\");\n }\n\n /**\n * @returns {string[]}\n */\n get mirrorNetwork() {\n return this._mirrorNetwork.network;\n }\n\n /**\n * @returns {boolean}\n */\n get signOnDemand() {\n return this._signOnDemand;\n }\n\n /**\n * @param {boolean} signOnDemand\n */\n setSignOnDemand(signOnDemand) {\n this._signOnDemand = signOnDemand;\n }\n\n /**\n * @returns {boolean}\n */\n isTransportSecurity() {\n return this._network.isTransportSecurity();\n }\n\n /**\n * @param {boolean} transportSecurity\n * @returns {this}\n */\n setTransportSecurity(transportSecurity) {\n this._network.setTransportSecurity(transportSecurity);\n return this;\n }\n\n /**\n * Set the account that will, by default, pay for transactions and queries built with this client.\n * NOTE: When using string for private key, the string needs to contain DER headers\n *\n * @param {AccountId | string} accountId\n * @param {PrivateKey | string} privateKey\n * @returns {this}\n */\n setOperator(accountId, privateKey) {\n const key =\n typeof privateKey === \"string\"\n ? PrivateKey.fromStringDer(privateKey)\n : privateKey;\n\n return this.setOperatorWith(accountId, key.publicKey, (message) =>\n Promise.resolve(key.sign(message)),\n );\n }\n\n /**\n * @returns {?ClientOperator}\n */\n getOperator() {\n return this._operator;\n }\n\n /**\n * Sets the account that will, by default, pay for transactions and queries built with\n * this client.\n *\n * @param {AccountId | string} accountId\n * @param {PublicKey | string} publicKey\n * @param {(message: Uint8Array) => Promise} transactionSigner\n * @returns {this}\n */\n setOperatorWith(accountId, publicKey, transactionSigner) {\n const accountId_ =\n accountId instanceof AccountId\n ? accountId\n : AccountId.fromString(accountId);\n\n if (this._network._ledgerId != null) {\n accountId_.validateChecksum(this);\n }\n\n this._operator = {\n transactionSigner,\n\n accountId: accountId_,\n\n publicKey:\n publicKey instanceof PublicKey\n ? publicKey\n : PublicKey.fromString(publicKey),\n };\n\n return this;\n }\n\n /**\n * @param {boolean} value\n * @returns {this}\n */\n setAutoValidateChecksums(value) {\n this._autoValidateChecksums = value;\n return this;\n }\n\n /**\n * @returns {boolean}\n */\n isAutoValidateChecksumsEnabled() {\n return this._autoValidateChecksums;\n }\n\n /**\n * @returns {?AccountId}\n */\n get operatorAccountId() {\n return this._operator != null ? this._operator.accountId : null;\n }\n\n /**\n * @returns {?PublicKey}\n */\n get operatorPublicKey() {\n return this._operator != null ? this._operator.publicKey : null;\n }\n\n /**\n * @returns {?Hbar}\n */\n get defaultMaxTransactionFee() {\n return this._defaultMaxTransactionFee;\n }\n\n /**\n * @deprecated - Use `defaultMaxTransactionFee` instead\n * @returns {?Hbar}\n */\n get maxTransactionFee() {\n return this.defaultMaxTransactionFee;\n }\n\n /**\n * Set the defaultimum fee to be paid for transactions\n * executed by this client.\n *\n * @param {Hbar} defaultMaxTransactionFee\n * @returns {this}\n */\n setDefaultMaxTransactionFee(defaultMaxTransactionFee) {\n if (defaultMaxTransactionFee.toTinybars().toInt() < 0) {\n throw new Error(\"defaultMaxTransactionFee must be non-negative\");\n }\n this._defaultMaxTransactionFee = defaultMaxTransactionFee;\n return this;\n }\n\n /**\n * @deprecated - Use `setDefaultMaxTransactionFee()` instead\n * Set the maximum fee to be paid for transactions\n * executed by this client.\n * @param {Hbar} maxTransactionFee\n * @returns {this}\n */\n setMaxTransactionFee(maxTransactionFee) {\n return this.setDefaultMaxTransactionFee(maxTransactionFee);\n }\n\n /**\n * @returns {boolean}\n */\n get defaultRegenerateTransactionId() {\n return this._defaultRegenerateTransactionId;\n }\n\n /**\n * Set if a new transaction ID should be generated when a `TRANSACTION_EXPIRED` status\n * is returned.\n *\n * @param {boolean} defaultRegenerateTransactionId\n * @returns {this}\n */\n setDefaultRegenerateTransactionId(defaultRegenerateTransactionId) {\n this._defaultRegenerateTransactionId = defaultRegenerateTransactionId;\n return this;\n }\n\n /**\n * @returns {Hbar}\n */\n get defaultMaxQueryPayment() {\n return this._defaultMaxQueryPayment;\n }\n\n /**\n * @deprecated in a favor of defaultMaxQueryPayment\n * @returns {Hbar}\n */\n get maxQueryPayment() {\n return this.defaultMaxQueryPayment;\n }\n\n /**\n * Set the maximum payment allowable for queries.\n *\n * @param {Hbar} defaultMaxQueryPayment\n * @returns {Client}\n */\n setDefaultMaxQueryPayment(defaultMaxQueryPayment) {\n const isMaxQueryPaymentNegative =\n convertToNumber(defaultMaxQueryPayment.toTinybars()) < 0;\n if (isMaxQueryPaymentNegative) {\n throw new Error(\"defaultMaxQueryPayment must be non-negative\");\n }\n this._defaultMaxQueryPayment = defaultMaxQueryPayment;\n return this;\n }\n /**\n * @deprecated in a favor of setDefaultMaxQueryPayment()\n * Set the maximum payment allowable for queries.\n * @param {Hbar} maxQueryPayment\n * @returns {Client}\n */\n setMaxQueryPayment(maxQueryPayment) {\n return this.setDefaultMaxQueryPayment(maxQueryPayment);\n }\n\n /**\n * @returns {number}\n */\n get maxAttempts() {\n return this._maxAttempts != null ? this._maxAttempts : 10;\n }\n\n /**\n * @param {number} maxAttempts\n * @returns {this}\n */\n setMaxAttempts(maxAttempts) {\n this._maxAttempts = maxAttempts;\n return this;\n }\n\n /**\n * @returns {number}\n */\n get maxNodeAttempts() {\n return this._network.maxNodeAttempts;\n }\n\n /**\n * @param {number} maxNodeAttempts\n * @returns {this}\n */\n setMaxNodeAttempts(maxNodeAttempts) {\n this._network.setMaxNodeAttempts(maxNodeAttempts);\n return this;\n }\n\n /**\n * @returns {number}\n */\n get nodeWaitTime() {\n return this._network.minBackoff;\n }\n\n /**\n * @param {number} nodeWaitTime\n * @returns {this}\n */\n setNodeWaitTime(nodeWaitTime) {\n this._network.setMinBackoff(nodeWaitTime);\n return this;\n }\n\n /**\n * @returns {number}\n */\n get maxNodesPerTransaction() {\n return this._network.maxNodesPerTransaction;\n }\n\n /**\n * @param {number} maxNodesPerTransaction\n * @returns {this}\n */\n setMaxNodesPerTransaction(maxNodesPerTransaction) {\n this._network.setMaxNodesPerTransaction(maxNodesPerTransaction);\n return this;\n }\n\n /**\n * @param {?number} minBackoff\n * @returns {this}\n */\n setMinBackoff(minBackoff) {\n if (minBackoff == null) {\n throw new Error(\"minBackoff cannot be null.\");\n }\n if (minBackoff > this._maxBackoff) {\n throw new Error(\"minBackoff cannot be larger than maxBackoff.\");\n }\n this._minBackoff = minBackoff;\n return this;\n }\n\n /**\n * @returns {number}\n */\n get minBackoff() {\n return this._minBackoff;\n }\n\n /**\n * @param {?number} maxBackoff\n * @returns {this}\n */\n setMaxBackoff(maxBackoff) {\n if (maxBackoff == null) {\n throw new Error(\"maxBackoff cannot be null.\");\n } else if (maxBackoff < this._minBackoff) {\n throw new Error(\"maxBackoff cannot be smaller than minBackoff.\");\n }\n this._maxBackoff = maxBackoff;\n return this;\n }\n\n /**\n * @returns {number}\n */\n get maxBackoff() {\n return this._maxBackoff;\n }\n\n /**\n * @param {number} nodeMinBackoff\n * @returns {this}\n */\n setNodeMinBackoff(nodeMinBackoff) {\n this._network.setMinBackoff(nodeMinBackoff);\n return this;\n }\n\n /**\n * @returns {number}\n */\n get nodeMinBackoff() {\n return this._network.minBackoff;\n }\n\n /**\n * @param {number} nodeMaxBackoff\n * @returns {this}\n */\n setNodeMaxBackoff(nodeMaxBackoff) {\n this._network.setMaxBackoff(nodeMaxBackoff);\n return this;\n }\n\n /**\n * @returns {number}\n */\n get nodeMaxBackoff() {\n return this._network.maxBackoff;\n }\n\n /**\n * @param {number} nodeMinReadmitPeriod\n * @returns {this}\n */\n setNodeMinReadmitPeriod(nodeMinReadmitPeriod) {\n this._network.setNodeMinReadmitPeriod(nodeMinReadmitPeriod);\n return this;\n }\n\n /**\n * @returns {number}\n */\n get nodeMinReadmitPeriod() {\n return this._network.nodeMinReadmitPeriod;\n }\n\n /**\n * @param {number} nodeMaxReadmitPeriod\n * @returns {this}\n */\n setNodeMaxReadmitPeriod(nodeMaxReadmitPeriod) {\n this._network.setNodeMaxReadmitPeriod(nodeMaxReadmitPeriod);\n return this;\n }\n\n /**\n * @returns {number}\n */\n get nodeMaxReadmitPeriod() {\n return this._network.nodeMaxReadmitPeriod;\n }\n\n /**\n * @param {number} requestTimeout - Number of milliseconds\n * @returns {this}\n */\n setRequestTimeout(requestTimeout) {\n this._requestTimeout = requestTimeout;\n return this;\n }\n\n /**\n * @returns {?number}\n */\n get requestTimeout() {\n return this._requestTimeout;\n }\n\n /**\n * @returns {number}\n */\n get networkUpdatePeriod() {\n return this._networkUpdatePeriod;\n }\n\n /**\n * @param {number} networkUpdatePeriod\n * @returns {this}\n */\n setNetworkUpdatePeriod(networkUpdatePeriod) {\n clearTimeout(this._timer);\n this._networkUpdatePeriod = networkUpdatePeriod;\n this._scheduleNetworkUpdate();\n return this;\n }\n /**\n * Set logger\n *\n * @param {Logger} logger\n * @returns {this}\n */\n setLogger(logger) {\n this._logger = logger;\n return this;\n }\n\n /**\n * Get logger if set\n *\n * @returns {?Logger}\n */\n get logger() {\n return this._logger;\n }\n\n /**\n * @param {AccountId | string} accountId\n */\n async ping(accountId) {\n await new AccountBalanceQuery({ accountId })\n .setNodeAccountIds([\n accountId instanceof AccountId\n ? accountId\n : AccountId.fromString(accountId),\n ])\n .execute(this);\n }\n\n async pingAll() {\n for (const nodeAccountId of Object.values(this._network.network)) {\n await this.ping(nodeAccountId);\n }\n }\n\n /**\n * @returns {void}\n */\n close() {\n this._network.close();\n this._mirrorNetwork.close();\n this._isShutdown = true;\n clearTimeout(this._timer);\n }\n\n /**\n * @abstract\n * @returns {(address: string) => ChannelT}\n */\n _createNetworkChannel() {\n throw new Error(\"not implemented\");\n }\n\n /**\n * @abstract\n * @returns {(address: string) => MirrorChannelT}\n */\n _createMirrorNetworkChannel() {\n throw new Error(\"not implemented\");\n }\n\n /**\n * @private\n */\n _scheduleNetworkUpdate() {\n // This is the automatic network update promise that _eventually_ completes\n // eslint-disable-next-line @typescript-eslint/no-floating-promises,@typescript-eslint/no-misused-promises\n this._timer = setTimeout(async () => {\n try {\n const addressBook = await CACHE.addressBookQueryConstructor()\n .setFileId(FileId.ADDRESS_BOOK)\n .execute(this);\n this.setNetworkFromAddressBook(addressBook);\n\n if (!this._isShutdown) {\n // Recall this method to continuously update the network\n // every `networkUpdatePeriod` amount of itme\n this._scheduleNetworkUpdate();\n }\n } catch (error) {\n if (this._logger) {\n this._logger.trace(\n `failed to update client address book: ${\n /** @type {Error} */ (error).toString()\n }`,\n );\n }\n }\n }, this._networkUpdatePeriod);\n }\n\n /**\n * @returns {boolean}\n */\n get isClientShutDown() {\n return this._isShutdown;\n }\n}\n","/* NOSONAR */\nimport AccountId from \"../account/AccountId.js\";\n\n// MAINNET node proxies are the same for both 'WebClient' and 'NativeClient'\nexport const MAINNET = {\n \"https://grpc-web.myhbarwallet.com:443\": new AccountId(3),\n \"https://node00.swirldslabs.com:443\": new AccountId(3),\n \"https://node01-00-grpc.swirlds.com:443\": new AccountId(4),\n \"https://node02.swirldslabs.com:443\": new AccountId(5),\n \"https://node03.swirldslabs.com:443\": new AccountId(6),\n \"https://node04.swirldslabs.com:443\": new AccountId(7),\n \"https://node05.swirldslabs.com:443\": new AccountId(8),\n \"https://node06.swirldslabs.com:443\": new AccountId(9),\n \"https://node07.swirldslabs.com:443\": new AccountId(10),\n \"https://node08.swirldslabs.com:443\": new AccountId(11),\n \"https://node09.swirldslabs.com:443\": new AccountId(12),\n \"https://node10.swirldslabs.com:443\": new AccountId(13),\n \"https://node11.swirldslabs.com:443\": new AccountId(14),\n \"https://node12.swirldslabs.com:443\": new AccountId(15),\n \"https://node13.swirldslabs.com:443\": new AccountId(16),\n \"https://node14.swirldslabs.com:443\": new AccountId(17),\n \"https://node15.swirldslabs.com:443\": new AccountId(18),\n \"https://node16.swirldslabs.com:443\": new AccountId(19),\n \"https://node17.swirldslabs.com:443\": new AccountId(20),\n \"https://node18.swirldslabs.com:443\": new AccountId(21),\n \"https://node19.swirldslabs.com:443\": new AccountId(22),\n \"https://node20.swirldslabs.com:443\": new AccountId(23),\n \"https://node21.swirldslabs.com:443\": new AccountId(24),\n \"https://node22.swirldslabs.com:443\": new AccountId(25),\n \"https://node23.swirldslabs.com:443\": new AccountId(26),\n \"https://node24.swirldslabs.com:443\": new AccountId(27),\n \"https://node25.swirldslabs.com:443\": new AccountId(28),\n \"https://node26.swirldslabs.com:443\": new AccountId(29),\n \"https://node27.swirldslabs.com:443\": new AccountId(30),\n \"https://node28.swirldslabs.com:443\": new AccountId(31),\n \"https://node29.swirldslabs.com:443\": new AccountId(32),\n \"https://node30.swirldslabs.com:443\": new AccountId(33),\n \"https://node31.swirldslabs.com:443\": new AccountId(34),\n};\n\nexport const WEB_TESTNET = {\n \"https://testnet-node00-00-grpc.hedera.com:443\": new AccountId(3),\n \"https://testnet-node01-00-grpc.hedera.com:443\": new AccountId(4),\n \"https://testnet-node02-00-grpc.hedera.com:443\": new AccountId(5),\n \"https://testnet-node03-00-grpc.hedera.com:443\": new AccountId(6),\n \"https://testnet-node04-00-grpc.hedera.com:443\": new AccountId(7),\n \"https://testnet-node05-00-grpc.hedera.com:443\": new AccountId(8),\n \"https://testnet-node06-00-grpc.hedera.com:443\": new AccountId(9),\n};\n\nexport const WEB_PREVIEWNET = {\n \"https://previewnet-node00-00-grpc.hedera.com:443\": new AccountId(3),\n \"https://previewnet-node01-00-grpc.hedera.com:443\": new AccountId(4),\n \"https://previewnet-node02-00-grpc.hedera.com:443\": new AccountId(5),\n \"https://previewnet-node03-00-grpc.hedera.com:443\": new AccountId(6),\n \"https://previewnet-node04-00-grpc.hedera.com:443\": new AccountId(7),\n \"https://previewnet-node05-00-grpc.hedera.com:443\": new AccountId(8),\n \"https://previewnet-node06-00-grpc.hedera.com:443\": new AccountId(9),\n};\n\nexport const NATIVE_TESTNET = {\n \"https://grpc-web.testnet.myhbarwallet.com:443\": new AccountId(3),\n};\n\nexport const NATIVE_PREVIEWNET = {\n \"https://grpc-web.previewnet.myhbarwallet.com:443\": new AccountId(3),\n};\n\n/**\n * @type {Record}\n */\nexport const ALL_WEB_NETWORK_NODES = {\n ...MAINNET,\n ...WEB_TESTNET,\n ...WEB_PREVIEWNET,\n};\n\n/**\n * @type {Record}\n */\nexport const ALL_NETWORK_IPS = {\n // MAINNET\n \"34.239.82.6:\": \"0.0.3\",\n \"35.237.200.180:\": \"0.0.3\",\n \"3.130.52.236:\": \"0.0.4\",\n \"35.186.191.247:\": \"0.0.4\",\n \"3.18.18.254:\": \"0.0.5\",\n \"35.192.2.25:\": \"0.0.5\",\n \"74.50.117.35:\": \"0.0.5\",\n \"23.111.186.250:\": \"0.0.5\",\n \"107.155.64.98:\": \"0.0.5\",\n \"13.52.108.243:\": \"0.0.6\",\n \"35.199.161.108:\": \"0.0.6\",\n \"3.114.54.4:\": \"0.0.7\",\n \"35.203.82.240:\": \"0.0.7\",\n \"35.236.5.219:\": \"0.0.8\",\n \"35.183.66.150:\": \"0.0.8\",\n \"35.181.158.250:\": \"0.0.9\",\n \"35.197.192.225:\": \"0.0.9\",\n \"177.154.62.234:\": \"0.0.10\",\n \"3.248.27.48:\": \"0.0.10\",\n \"35.242.233.154:\": \"0.0.10\",\n \"13.53.119.185:\": \"0.0.11\",\n \"35.240.118.96:\": \"0.0.11\",\n \"35.204.86.32:\": \"0.0.12\",\n \"35.177.162.180:\": \"0.0.12\",\n \"34.215.192.104:\": \"0.0.13\",\n \"35.234.132.107:\": \"0.0.13\",\n \"52.8.21.141:\": \"0.0.14\",\n \"35.236.2.27:\": \"0.0.14\",\n \"35.228.11.53:\": \"0.0.15\",\n \"3.121.238.26:\": \"0.0.15\",\n \"34.91.181.183:\": \"0.0.16\",\n \"18.157.223.230:\": \"0.0.16\",\n \"34.86.212.247:\": \"0.0.17\",\n \"18.232.251.19:\": \"0.0.17\",\n \"141.94.175.187:\": \"0.0.18\",\n \"34.89.87.138:\": \"0.0.19\",\n \"18.168.4.59:\": \"0.0.19\",\n \"34.82.78.255:\": \"0.0.20\",\n \"52.39.162.216:\": \"0.0.20\",\n \"34.76.140.109:\": \"0.0.21\",\n \"13.36.123.209:\": \"0.0.21\",\n \"52.78.202.34:\": \"0.0.22\",\n \"34.64.141.166:\": \"0.0.22\",\n \"3.18.91.176:\": \"0.0.23\",\n \"35.232.244.145:\": \"0.0.23\",\n \"69.167.169.208:\": \"0.0.23\",\n \"34.89.103.38:\": \"0.0.24\",\n \"18.135.7.211:\": \"0.0.24\",\n \"34.93.112.7:\": \"0.0.25\",\n \"13.232.240.207:\": \"0.0.25\",\n \"13.228.103.14:\": \"0.0.26\",\n \"34.87.150.174:\": \"0.0.26\",\n \"13.56.4.96:\": \"0.0.27\",\n \"34.125.200.96:\": \"0.0.27\",\n \"35.198.220.75:\": \"0.0.28\",\n \"18.139.47.5:\": \"0.0.28\",\n \"54.74.60.120:\": \"0.0.29\",\n \"34.142.71.129:\": \"0.0.29\",\n \"80.85.70.197:\": \"0.0.29\",\n \"35.234.249.150:\": \"0.0.30\",\n \"34.201.177.212:\": \"0.0.30\",\n \"217.76.57.165:\": \"0.0.31\",\n \"3.77.94.254:\": \"0.0.31\",\n \"34.107.78.179:\": \"0.0.31\",\n \"34.86.186.151:\": \"0.0.32\",\n \"3.20.81.230:\": \"0.0.32\",\n \"18.136.65.22:\": \"0.0.33\",\n \"34.142.172.228:\": \"0.0.33\",\n \"34.16.139.248:\": \"0.0.34\",\n \"35.155.212.90:\": \"0.0.34\",\n // TESTNET\n \"34.94.106.61:\": \"0.0.3\",\n \"50.18.132.211:\": \"0.0.3\",\n \"3.212.6.13:\": \"0.0.4\",\n \"35.237.119.55:\": \"0.0.4\",\n \"35.245.27.193:\": \"0.0.5\",\n \"52.20.18.86:\": \"0.0.5\",\n \"34.83.112.116:\": \"0.0.6\",\n \"54.70.192.33:\": \"0.0.6\",\n \"34.94.160.4:\": \"0.0.7\",\n \"54.176.199.109:\": \"0.0.7\",\n \"35.155.49.147:\": \"0.0.8\",\n \"34.106.102.218:\": \"0.0.8\",\n \"34.133.197.230:\": \"0.0.9\",\n \"52.14.252.207:\": \"0.0.9\",\n // LOCAL NODE\n \"127.0.0.1:\": \"0.0.3\",\n // PREVIEW NET\n \"3.211.248.172:\": \"0.0.3\",\n \"35.231.208.148:\": \"0.0.3\",\n \"35.199.15.177:\": \"0.0.4\",\n \"3.133.213.146:\": \"0.0.4\",\n \"35.225.201.195:\": \"0.0.5\",\n \"52.15.105.130:\": \"0.0.5\",\n \"54.241.38.1:\": \"0.0.6\",\n \"35.247.109.135:\": \"0.0.6\",\n \"54.177.51.127:\": \"0.0.7\",\n \"35.235.65.51:\": \"0.0.7\",\n \"34.106.247.65:\": \"0.0.8\",\n \"35.83.89.171:\": \"0.0.8\",\n \"50.18.17.93:\": \"0.0.9\",\n \"34.125.23.49:\": \"0.0.9\",\n};\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport * as HashgraphProto from \"@hashgraph/proto\";\nimport * as utf8 from \"../encoding/utf8.js\";\n\nconst { proto } = HashgraphProto;\n\n/**\n * @internal\n * @abstract\n */\nexport default class Channel {\n /**\n * @protected\n */\n constructor() {\n /**\n * @protected\n * @type {?HashgraphProto.proto.CryptoService}\n */\n this._crypto = null;\n\n /**\n * @protected\n * @type {?HashgraphProto.proto.SmartContractService}\n */\n this._smartContract = null;\n\n /**\n * @protected\n * @type {?HashgraphProto.proto.FileService}\n */\n this._file = null;\n\n /**\n * @protected\n * @type {?HashgraphProto.proto.ConsensusService}\n */\n this._consensus = null;\n\n /**\n * @protected\n * @type {?HashgraphProto.proto.FreezeService}\n */\n this._freeze = null;\n\n /**\n * @protected\n * @type {?HashgraphProto.proto.NetworkService}\n */\n this._network = null;\n\n /**\n * @protected\n * @type {?HashgraphProto.proto.TokenService}\n */\n this._token = null;\n\n /**\n * @protected\n * @type {?HashgraphProto.proto.ScheduleService}\n */\n this._schedule = null;\n\n /**\n * @protected\n * @type {?HashgraphProto.proto.UtilService}\n */\n this._util = null;\n\n /**\n * @protected\n * @type {?HashgraphProto.proto.AddressBookService}\n */\n this._addressBook = null;\n }\n\n /**\n * @abstract\n * @returns {void}\n */\n close() {\n throw new Error(\"not implemented\");\n }\n\n /**\n * @returns {HashgraphProto.proto.CryptoService}\n */\n get crypto() {\n if (this._crypto != null) {\n return this._crypto;\n }\n\n this._crypto = proto.CryptoService.create(\n this._createUnaryClient(\"CryptoService\"),\n );\n\n return this._crypto;\n }\n\n /**\n * @returns {HashgraphProto.proto.SmartContractService}\n */\n get smartContract() {\n if (this._smartContract != null) {\n return this._smartContract;\n }\n\n this._smartContract = proto.SmartContractService.create(\n this._createUnaryClient(\"SmartContractService\"),\n );\n\n return this._smartContract;\n }\n\n /**\n * @returns {HashgraphProto.proto.FileService}\n */\n get file() {\n if (this._file != null) {\n return this._file;\n }\n\n this._file = proto.FileService.create(\n this._createUnaryClient(\"FileService\"),\n );\n\n return this._file;\n }\n\n /**\n * @returns {HashgraphProto.proto.ConsensusService}\n */\n get consensus() {\n if (this._consensus != null) {\n return this._consensus;\n }\n\n this._consensus = proto.ConsensusService.create(\n this._createUnaryClient(\"ConsensusService\"),\n );\n\n return this._consensus;\n }\n\n /**\n * @returns {HashgraphProto.proto.FreezeService}\n */\n get freeze() {\n if (this._freeze != null) {\n return this._freeze;\n }\n\n this._freeze = proto.FreezeService.create(\n this._createUnaryClient(\"FreezeService\"),\n );\n\n return this._freeze;\n }\n\n /**\n * @returns {HashgraphProto.proto.NetworkService}\n */\n get network() {\n if (this._network != null) {\n return this._network;\n }\n\n this._network = proto.NetworkService.create(\n this._createUnaryClient(\"NetworkService\"),\n );\n\n return this._network;\n }\n\n /**\n * @returns {HashgraphProto.proto.TokenService}\n */\n get token() {\n if (this._token != null) {\n return this._token;\n }\n\n this._token = proto.TokenService.create(\n this._createUnaryClient(\"TokenService\"),\n );\n\n return this._token;\n }\n\n /**\n * @returns {HashgraphProto.proto.ScheduleService}\n */\n get schedule() {\n if (this._schedule != null) {\n return this._schedule;\n }\n\n this._schedule = proto.ScheduleService.create(\n this._createUnaryClient(\"ScheduleService\"),\n );\n\n return this._schedule;\n }\n\n /**\n * @returns {HashgraphProto.proto.UtilService}\n */\n get util() {\n if (this._util != null) {\n return this._util;\n }\n\n this._util = proto.UtilService.create(\n this._createUnaryClient(\"UtilService\"),\n );\n\n return this._util;\n }\n\n /**\n * @returns {HashgraphProto.proto.AddressBookService}\n */\n get addressBook() {\n if (this._addressBook != null) {\n return this._addressBook;\n }\n\n this._addressBook = proto.AddressBookService.create(\n this._createUnaryClient(\"AddressBookService\"),\n );\n\n return this._addressBook;\n }\n\n /**\n * @abstract\n * @protected\n * @param {string} serviceName\n * @returns {import(\"protobufjs\").RPCImpl}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _createUnaryClient(serviceName) {\n throw new Error(\"not implemented\");\n }\n}\n\n// grpc-web+proto is a series of data or trailer frames\n\n// a frame is identified by a single byte (0 = data or 1 = trailer) followed by 4 bytes for the\n// length of the frame, followed by the frame data\n\n/**\n * @param {Uint8Array} data\n * @returns {ArrayBuffer}\n */\nexport function encodeRequest(data) {\n // for our requests, we want to transfer a single data frame\n\n const frame = new ArrayBuffer(data.byteLength + 5);\n\n // the frame type (data) is zero and can be left default-initialized\n\n // the length of the frame data\n new DataView(frame, 1, 4).setUint32(0, data.length);\n\n // copy in the frame data\n new Uint8Array(frame, 5).set(data);\n\n return frame;\n}\n\n/**\n * @param {ArrayBuffer} data\n * @param {number} byteOffset\n * @param {number} byteLength\n * @returns {Uint8Array}\n */\nexport function decodeUnaryResponse(\n data,\n byteOffset = 0,\n byteLength = data.byteLength,\n) {\n const dataView = new DataView(data, byteOffset, byteLength);\n let dataOffset = 0;\n\n /** @type {?Uint8Array} */\n let unaryResponse = null;\n\n // 0 = successful\n let status = 0;\n\n while (dataOffset < dataView.byteLength) {\n const frameByte = dataView.getUint8(dataOffset + 0);\n const frameType = frameByte >> 7;\n const frameByteLength = dataView.getUint32(dataOffset + 1);\n const frameOffset = dataOffset + 5; // offset from the start of the dataView\n if (frameOffset + frameByteLength > dataView.byteLength) {\n throw new Error(\"(BUG) unexpected frame length past the boundary\");\n }\n const frameData = new Uint8Array(\n data,\n dataView.byteOffset + frameOffset,\n frameByteLength,\n );\n\n if (frameType === 0) {\n if (unaryResponse != null) {\n throw new Error(\n \"(BUG) unexpectedly received more than one data frame\",\n );\n }\n\n unaryResponse = frameData;\n } else if (frameType === 1) {\n const trailer = utf8.decode(frameData);\n const [trailerName, trailerValue] = trailer.split(\":\");\n\n if (trailerName === \"grpc-status\") {\n status = parseInt(trailerValue);\n } else {\n throw new Error(`(BUG) unhandled trailer, ${trailer}`);\n }\n } else {\n throw new Error(`(BUG) unexpected frame type: ${frameType}`);\n }\n\n dataOffset += frameByteLength + 5;\n }\n\n if (status !== 0) {\n throw new Error(`(BUG) unhandled grpc-status: ${status}`);\n }\n\n if (unaryResponse == null) {\n throw new Error(\"(BUG) unexpectedly received no response\");\n }\n\n return unaryResponse;\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport { ALL_WEB_NETWORK_NODES } from \"../constants/ClientConstants.js\";\nimport GrpcServiceError from \"../grpc/GrpcServiceError.js\";\nimport GrpcStatus from \"../grpc/GrpcStatus.js\";\nimport HttpError from \"../http/HttpError.js\";\nimport HttpStatus from \"../http/HttpStatus.js\";\nimport Channel, { encodeRequest, decodeUnaryResponse } from \"./Channel.js\";\n\nexport default class WebChannel extends Channel {\n /**\n * @param {string} address\n */\n constructor(address) {\n super();\n\n /**\n * @type {string}\n * @private\n */\n this._address = address;\n }\n\n /**\n * @override\n * @returns {void}\n */\n close() {\n // do nothing\n }\n\n /**\n * @override\n * @protected\n * @param {string} serviceName\n * @returns {import(\"protobufjs\").RPCImpl}\n */\n _createUnaryClient(serviceName) {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n return async (method, requestData, callback) => {\n try {\n const response = await fetch(\n `${this._address}/proto.${serviceName}/${method.name}`,\n {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/grpc-web+proto\",\n \"x-user-agent\": \"hedera-sdk-js/v2\",\n \"x-grpc-web\": \"1\",\n },\n body: encodeRequest(requestData),\n },\n );\n\n if (!response.ok) {\n const error = new HttpError(\n HttpStatus._fromValue(response.status),\n );\n callback(error, null);\n }\n\n // Check headers for gRPC errors\n const grpcStatus = response.headers.get(\"grpc-status\");\n const grpcMessage = response.headers.get(\"grpc-message\");\n\n if (grpcStatus != null && grpcMessage != null) {\n const error = new GrpcServiceError(\n GrpcStatus._fromValue(parseInt(grpcStatus)),\n ALL_WEB_NETWORK_NODES[this._address].toString(),\n );\n error.message = grpcMessage;\n callback(error, null);\n }\n\n const responseBuffer = await response.arrayBuffer();\n const unaryResponse = decodeUnaryResponse(responseBuffer);\n\n callback(null, unaryResponse);\n } catch (error) {\n const err = new GrpcServiceError(\n // retry on grpc web errors\n GrpcStatus._fromValue(18),\n ALL_WEB_NETWORK_NODES[this._address].toString(),\n );\n callback(err, null);\n }\n };\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport Client from \"./Client.js\";\nimport WebChannel from \"../channel/WebChannel.js\";\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport AccountId from \"../account/AccountId.js\";\nimport LedgerId from \"../LedgerId.js\";\nimport {\n MAINNET,\n WEB_TESTNET,\n WEB_PREVIEWNET,\n} from \"../constants/ClientConstants.js\";\n\n/**\n * @typedef {import(\"./Client.js\").ClientConfiguration} ClientConfiguration\n */\n\nexport const Network = {\n /**\n * @param {string} name\n * @returns {{[key: string]: (string | AccountId)}}\n */\n fromName(name) {\n switch (name) {\n case \"mainnet\":\n return Network.MAINNET;\n\n case \"testnet\":\n return Network.TESTNET;\n\n case \"previewnet\":\n return Network.PREVIEWNET;\n\n default:\n throw new Error(`unknown network name: ${name}`);\n }\n },\n\n MAINNET: MAINNET,\n TESTNET: WEB_TESTNET,\n PREVIEWNET: WEB_PREVIEWNET,\n};\n\n/**\n * @augments {Client}\n */\nexport default class WebClient extends Client {\n /**\n * @param {ClientConfiguration} [props]\n */\n constructor(props) {\n super(props);\n if (props != null) {\n if (typeof props.network === \"string\") {\n switch (props.network) {\n case \"mainnet\":\n this.setNetwork(Network.MAINNET);\n this.setLedgerId(LedgerId.MAINNET);\n break;\n\n case \"testnet\":\n this.setNetwork(Network.TESTNET);\n this.setLedgerId(LedgerId.TESTNET);\n break;\n\n case \"previewnet\":\n this.setNetwork(Network.PREVIEWNET);\n this.setLedgerId(LedgerId.PREVIEWNET);\n break;\n\n default:\n throw new Error(\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n `unknown network: ${props.network}`,\n );\n }\n } else if (props.network != null) {\n this.setNetwork(props.network);\n }\n }\n }\n\n /**\n * @param {string | ClientConfiguration} data\n * @returns {WebClient}\n */\n static fromConfig(data) {\n return new WebClient(\n typeof data === \"string\"\n ? /** @type {ClientConfiguration | undefined} */ (\n JSON.parse(data)\n )\n : data,\n );\n }\n\n /**\n * Construct a client for a specific network.\n *\n * It is the responsibility of the caller to ensure that all nodes in the map are part of the\n * same Hedera network. Failure to do so will result in undefined behavior.\n *\n * The client will load balance all requests to Hedera using a simple round-robin scheme to\n * chose nodes to send transactions to. For one transaction, at most 1/3 of the nodes will be\n * tried.\n *\n * @param {{[key: string]: (string | AccountId)} | string} network\n * @returns {WebClient}\n */\n static forNetwork(network) {\n return new WebClient({ network, scheduleNetworkUpdate: false });\n }\n\n /**\n * @param {string} network\n * @returns {WebClient}\n */\n static forName(network) {\n return new WebClient({ network, scheduleNetworkUpdate: false });\n }\n\n /**\n * Construct a Hedera client pre-configured for Mainnet access.\n *\n * @returns {WebClient}\n */\n static forMainnet() {\n return new WebClient({\n network: \"mainnet\",\n scheduleNetworkUpdate: false,\n });\n }\n\n /**\n * Construct a Hedera client pre-configured for Testnet access.\n *\n * @returns {WebClient}\n */\n static forTestnet() {\n return new WebClient({\n network: \"testnet\",\n scheduleNetworkUpdate: false,\n });\n }\n\n /**\n * Construct a Hedera client pre-configured for Previewnet access.\n *\n * @returns {WebClient}\n */\n static forPreviewnet() {\n return new WebClient({\n network: \"previewnet\",\n scheduleNetworkUpdate: false,\n });\n }\n\n /**\n * @param {{[key: string]: (string | AccountId)} | string} network\n * @returns {void}\n */\n setNetwork(network) {\n if (typeof network === \"string\") {\n switch (network) {\n case \"previewnet\":\n this._network.setNetwork(Network.PREVIEWNET);\n break;\n case \"testnet\":\n this._network.setNetwork(Network.TESTNET);\n break;\n case \"mainnet\":\n this._network.setNetwork(Network.MAINNET);\n }\n } else {\n this._network.setNetwork(network);\n }\n }\n\n /**\n * @param {string[] | string} mirrorNetwork\n * @returns {this}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n setMirrorNetwork(mirrorNetwork) {\n if (typeof mirrorNetwork === \"string\") {\n this._mirrorNetwork.setNetwork([]);\n } else {\n this._mirrorNetwork.setNetwork(mirrorNetwork);\n }\n\n return this;\n }\n\n /**\n * @override\n * @returns {(address: string) => WebChannel}\n */\n _createNetworkChannel() {\n return (address) => new WebChannel(address);\n }\n\n /**\n * @override\n * @returns {(address: string) => *}\n */\n _createMirrorNetworkChannel() {\n return () => {\n throw new Error(\"mirror support is not supported in browsers\");\n };\n }\n}\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\n\nimport TransactionId from \"../transaction/TransactionId.js\";\nimport Hbar from \"../Hbar.js\";\nimport Executable from \"../Executable.js\";\nimport AccountId from \"../account/AccountId.js\";\nimport { _makePaymentTransaction, COST_QUERY } from \"./Query.js\";\nimport * as HashgraphProto from \"@hashgraph/proto\";\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../Status.js\").default} Status\n * @typedef {import(\"../Executable.js\").ExecutionState} ExecutionState\n */\n\n/**\n * @template OutputT\n * @augments {Executable}\n */\nexport default class CostQuery extends Executable {\n /**\n * @param {import(\"./Query.js\").default} query\n */\n constructor(query) {\n super();\n\n this._query = query;\n this._grpcDeadline = query._grpcDeadline;\n this._requestTimeout = query._requestTimeout;\n this._nodeAccountIds = query._nodeAccountIds.clone();\n this._operator = query._operator;\n\n /**\n * @type {HashgraphProto.proto.IQueryHeader | null}\n */\n this._header = null;\n }\n\n /**\n * @returns {TransactionId}\n */\n _getTransactionId() {\n return this._query._getTransactionId();\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n return `CostQuery:${this._query._getLogId()}`;\n }\n\n /**\n * @abstract\n * @protected\n * @param {import(\"../client/Client.js\").default<*, *>} client\n * @returns {Promise}\n */\n async _beforeExecute(client) {\n if (client == null) {\n throw new Error(\"Cannot do CostQuery without Client\");\n }\n\n const operator =\n this._operator != null ? this._operator : client._operator;\n\n if (operator == null) {\n throw new Error(\n \"`client` must have an `operator` or an explicit payment transaction must be provided\",\n );\n }\n\n if (this._query._nodeAccountIds.isEmpty) {\n this._query._nodeAccountIds.setList(\n client._network.getNodeAccountIdsForExecute(),\n );\n }\n\n // operator.accountId\n const transactionId = TransactionId.generate(operator.accountId);\n if (this._query.paymentTransactionId == null) {\n this._query.setPaymentTransactionId(transactionId);\n }\n\n const logId = this._getLogId();\n const nodeId = new AccountId(0);\n const paymentTransactionId =\n /** @type {import(\"../transaction/TransactionId.js\").default} */\n (TransactionId.generate(new AccountId(0)));\n const paymentAmount = new Hbar(0);\n if (this._logger) {\n this._logger.debug(\n `[${logId}] making a payment transaction for node ${nodeId.toString()} and transaction ID ${paymentTransactionId.toString()} with amount ${paymentAmount.toString()}`,\n );\n }\n\n this._header = {\n payment: await _makePaymentTransaction(\n paymentTransactionId,\n new AccountId(0),\n operator,\n paymentAmount,\n ),\n responseType: HashgraphProto.proto.ResponseType.COST_ANSWER,\n };\n }\n\n /**\n * @abstract\n * @internal\n * @returns {Promise}\n */\n _makeRequestAsync() {\n return Promise.resolve(\n this._query._onMakeRequest(\n /** @type {HashgraphProto.proto.IQueryHeader} */ (this._header),\n ),\n );\n }\n\n /**\n * @abstract\n * @internal\n * @param {HashgraphProto.proto.IQuery} request\n * @param {HashgraphProto.proto.IResponse} response\n * @returns {[Status, ExecutionState]}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _shouldRetry(request, response) {\n return this._query._shouldRetry(request, response);\n }\n\n /**\n * @abstract\n * @internal\n * @param {HashgraphProto.proto.IQuery} request\n * @param {HashgraphProto.proto.IResponse} response\n * @param {AccountId} nodeId\n * @returns {Error}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _mapStatusError(request, response, nodeId) {\n return this._query._mapStatusError(request, response, nodeId);\n }\n\n /**\n * @override\n * @internal\n * @param {HashgraphProto.proto.IResponse} response\n * @param {AccountId} nodeAccountId\n * @param {HashgraphProto.proto.IQuery} request\n * @returns {Promise}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _mapResponse(response, nodeAccountId, request) {\n const cost = this._query._mapResponseHeader(response).cost;\n return Promise.resolve(\n Hbar.fromTinybars(/** @type {Long | number} */ (cost)),\n );\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HashgraphProto.proto.IQuery} request\n * @returns {Promise}\n */\n _execute(channel, request) {\n return this._query._execute(channel, request);\n }\n\n /**\n * @param {HashgraphProto.proto.Query} request\n * @returns {Uint8Array}\n */\n _requestToBytes(request) {\n return this._query._requestToBytes(request);\n }\n\n /**\n * @param {HashgraphProto.proto.Response} response\n * @returns {Uint8Array}\n */\n _responseToBytes(response) {\n return this._query._responseToBytes(response);\n }\n}\n\nCOST_QUERY.push((query) => new CostQuery(query));\n","/*-\n * ‌\n * Hedera JavaScript SDK\n * ​\n * Copyright (C) 2020 - 2023 Hedera Hashgraph, LLC\n * ​\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ‍\n */\nimport * as EntityIdHelper from \"./EntityIdHelper.js\";\n\nexport { default as Cache } from \"./Cache.js\";\nexport {\n BadKeyError,\n BadMnemonicError,\n BadMnemonicReason,\n HEDERA_PATH,\n SLIP44_ECDSA_ETH_PATH,\n SLIP44_ECDSA_HEDERA_PATH,\n} from \"@hashgraph/cryptography\";\nexport { default as PrivateKey } from \"./PrivateKey.js\";\nexport { default as PublicKey } from \"./PublicKey.js\";\nexport { default as KeyList } from \"./KeyList.js\";\nexport { default as Key } from \"./Key.js\";\nexport { default as Mnemonic } from \"./Mnemonic.js\";\nexport { default as TokenAirdropTransaction } from \"./token/TokenAirdropTransaction.js\";\nexport { default as TokenClaimAirdropTransaction } from \"./token/TokenClaimAirdropTransaction.js\";\nexport { default as TokenCancelAirdropTransaction } from \"./token/TokenCancelAirdropTransaction.js\";\n// eslint-disable-next-line deprecation/deprecation\nexport { default as AccountAllowanceAdjustTransaction } from \"./account/AccountAllowanceAdjustTransaction.js\";\nexport { default as AccountAllowanceApproveTransaction } from \"./account/AccountAllowanceApproveTransaction.js\";\nexport { default as AccountAllowanceDeleteTransaction } from \"./account/AccountAllowanceDeleteTransaction.js\";\nexport { default as AccountBalance } from \"./account/AccountBalance.js\";\nexport { default as AccountBalanceQuery } from \"./account/AccountBalanceQuery.js\";\nexport { default as AccountCreateTransaction } from \"./account/AccountCreateTransaction.js\";\nexport { default as AccountDeleteTransaction } from \"./account/AccountDeleteTransaction.js\";\nexport { default as AccountId } from \"./account/AccountId.js\";\nexport { default as AccountInfo } from \"./account/AccountInfo.js\";\nexport { default as AccountInfoFlow } from \"./account/AccountInfoFlow.js\";\nexport { default as AccountInfoQuery } from \"./account/AccountInfoQuery.js\";\nexport { default as AccountRecordsQuery } from \"./account/AccountRecordsQuery.js\";\nexport { default as AccountStakersQuery } from \"./account/AccountStakersQuery.js\";\nexport { default as AccountUpdateTransaction } from \"./account/AccountUpdateTransaction.js\";\nexport { default as AddressBookQuery } from \"./network/AddressBookQuery.js\";\nexport { default as AssessedCustomFee } from \"./token/AssessedCustomFee.js\";\nexport { default as ContractByteCodeQuery } from \"./contract/ContractByteCodeQuery.js\";\nexport { default as ContractCallQuery } from \"./contract/ContractCallQuery.js\";\nexport { default as ContractCreateFlow } from \"./contract/ContractCreateFlow.js\";\nexport { default as ContractCreateTransaction } from \"./contract/ContractCreateTransaction.js\";\nexport { default as ContractDeleteTransaction } from \"./contract/ContractDeleteTransaction.js\";\nexport { default as ContractExecuteTransaction } from \"./contract/ContractExecuteTransaction.js\";\nexport { default as ContractFunctionParameters } from \"./contract/ContractFunctionParameters.js\";\nexport { default as ContractFunctionResult } from \"./contract/ContractFunctionResult.js\";\nexport { default as ContractFunctionSelector } from \"./contract/ContractFunctionSelector.js\";\nexport { default as ContractId } from \"./contract/ContractId.js\";\nexport { default as ContractInfo } from \"./contract/ContractInfo.js\";\nexport { default as ContractInfoQuery } from \"./contract/ContractInfoQuery.js\";\nexport { default as ContractLogInfo } from \"./contract/ContractLogInfo.js\";\nexport { default as ContractNonceInfo } from \"./contract/ContractNonceInfo.js\";\nexport { default as ContractUpdateTransaction } from \"./contract/ContractUpdateTransaction.js\";\nexport { default as CustomFee } from \"./token/CustomFee.js\";\nexport { default as CustomFixedFee } from \"./token/CustomFixedFee.js\";\nexport { default as CustomFractionalFee } from \"./token/CustomFractionalFee.js\";\nexport { default as CustomRoyaltyFee } from \"./token/CustomRoyaltyFee.js\";\nexport { default as DelegateContractId } from \"./contract/DelegateContractId.js\";\nexport { default as EthereumTransaction } from \"./EthereumTransaction.js\";\nexport { default as EthereumTransactionDataLegacy } from \"./EthereumTransactionDataLegacy.js\";\nexport { default as EthereumTransactionDataEip1559 } from \"./EthereumTransactionDataEip1559.js\";\nexport { default as EthereumTransactionDataEip2930 } from \"./EthereumTransactionDataEip2930.js\";\nexport { default as EthereumTransactionData } from \"./EthereumTransactionData.js\";\nexport { default as EthereumFlow } from \"./EthereumFlow.js\";\nexport { default as EvmAddress } from \"./EvmAddress.js\";\nexport { default as ExchangeRate } from \"./ExchangeRate.js\";\nexport { default as ExchangeRates } from \"./ExchangeRates.js\";\nexport { default as Executable } from \"./Executable.js\";\nexport { default as FeeAssessmentMethod } from \"./token/FeeAssessmentMethod.js\";\nexport { default as FeeComponents } from \"./FeeComponents.js\";\nexport { default as FeeData } from \"./FeeData.js\";\nexport { default as FeeDataType } from \"./FeeDataType.js\";\nexport { default as FeeSchedule } from \"./FeeSchedule.js\";\nexport { default as FeeSchedules } from \"./FeeSchedules.js\";\nexport { default as FileAppendTransaction } from \"./file/FileAppendTransaction.js\";\nexport { default as FileContentsQuery } from \"./file/FileContentsQuery.js\";\nexport { default as FileCreateTransaction } from \"./file/FileCreateTransaction.js\";\nexport { default as FileDeleteTransaction } from \"./file/FileDeleteTransaction.js\";\nexport { default as FileId } from \"./file/FileId.js\";\nexport { default as FileInfo } from \"./file/FileInfo.js\";\nexport { default as FileInfoQuery } from \"./file/FileInfoQuery.js\";\nexport { default as FileUpdateTransaction } from \"./file/FileUpdateTransaction.js\";\nexport { default as FreezeTransaction } from \"./system/FreezeTransaction.js\";\nexport { default as Hbar } from \"./Hbar.js\";\nexport { default as HbarAllowance } from \"./account/HbarAllowance.js\";\nexport { default as HbarUnit } from \"./HbarUnit.js\";\nexport { default as LiveHash } from \"./account/LiveHash.js\";\nexport { default as LiveHashAddTransaction } from \"./account/LiveHashAddTransaction.js\";\nexport { default as LiveHashDeleteTransaction } from \"./account/LiveHashDeleteTransaction.js\";\nexport { default as LiveHashQuery } from \"./account/LiveHashQuery.js\";\nexport { default as MaxQueryPaymentExceeded } from \"./MaxQueryPaymentExceeded.js\";\nexport { default as NodeAddressBook } from \"./address_book/NodeAddressBook.js\";\nexport { default as NetworkVersionInfo } from \"./network/NetworkVersionInfo.js\";\nexport { default as NetworkVersionInfoQuery } from \"./network/NetworkVersionInfoQuery.js\";\nexport { default as NftId } from \"./token/NftId.js\";\nexport { default as PendingAirdropId } from \"./token/PendingAirdropId.js\";\nexport { default as Provider } from \"./Provider.js\";\nexport { default as PrngTransaction } from \"./PrngTransaction.js\";\nexport { default as ProxyStaker } from \"./account/ProxyStaker.js\";\nexport { default as Query } from \"./query/Query.js\";\nexport { default as RequestType } from \"./RequestType.js\";\nexport { default as ScheduleCreateTransaction } from \"./schedule/ScheduleCreateTransaction.js\";\nexport { default as ScheduleDeleteTransaction } from \"./schedule/ScheduleDeleteTransaction.js\";\nexport { default as ScheduleId } from \"./schedule/ScheduleId.js\";\nexport { default as ScheduleInfo } from \"./schedule/ScheduleInfo.js\";\nexport { default as ScheduleInfoQuery } from \"./schedule/ScheduleInfoQuery.js\";\nexport { default as ScheduleSignTransaction } from \"./schedule/ScheduleSignTransaction.js\";\nexport { default as SemanticVersion } from \"./network/SemanticVersion.js\";\nexport { default as SignatureMap } from \"./transaction/SignatureMap.js\";\nexport { default as Signer } from \"./Signer.js\";\nexport { default as SignerSignature } from \"./SignerSignature.js\";\nexport { default as Status } from \"./Status.js\";\nexport { default as SubscriptionHandle } from \"./topic/SubscriptionHandle.js\";\nexport { default as SystemDeleteTransaction } from \"./system/SystemDeleteTransaction.js\";\nexport { default as SystemUndeleteTransaction } from \"./system/SystemUndeleteTransaction.js\";\nexport { default as Timestamp } from \"./Timestamp.js\";\nexport { default as TokenAllowance } from \"./account/TokenAllowance.js\";\nexport { default as TokenAssociateTransaction } from \"./token/TokenAssociateTransaction.js\";\nexport { default as TokenBurnTransaction } from \"./token/TokenBurnTransaction.js\";\nexport { default as TokenRejectTransaction } from \"./token/TokenRejectTransaction.js\";\nexport { default as TokenRejectFlow } from \"./token/TokenRejectFlow.js\";\nexport { default as TokenCreateTransaction } from \"./token/TokenCreateTransaction.js\";\nexport { default as TokenDeleteTransaction } from \"./token/TokenDeleteTransaction.js\";\nexport { default as TokenDissociateTransaction } from \"./token/TokenDissociateTransaction.js\";\nexport { default as TokenFeeScheduleUpdateTransaction } from \"./token/TokenFeeScheduleUpdateTransaction.js\";\nexport { default as TokenFreezeTransaction } from \"./token/TokenFreezeTransaction.js\";\nexport { default as TokenGrantKycTransaction } from \"./token/TokenGrantKycTransaction.js\";\nexport { default as TokenId } from \"./token/TokenId.js\";\nexport { default as TokenInfo } from \"./token/TokenInfo.js\";\nexport { default as TokenInfoQuery } from \"./token/TokenInfoQuery.js\";\nexport { default as TokenMintTransaction } from \"./token/TokenMintTransaction.js\";\nexport { default as TokenNftAllowance } from \"./account/TokenNftAllowance.js\";\nexport { default as TokenNftInfo } from \"./token/TokenNftInfo.js\";\nexport { default as TokenNftInfoQuery } from \"./token/TokenNftInfoQuery.js\";\nexport { default as TokenPauseTransaction } from \"./token/TokenPauseTransaction.js\";\nexport { default as TokenRevokeKycTransaction } from \"./token/TokenRevokeKycTransaction.js\";\nexport { default as TokenSupplyType } from \"./token/TokenSupplyType.js\";\nexport { default as TokenType } from \"./token/TokenType.js\";\nexport { default as TokenUnfreezeTransaction } from \"./token/TokenUnfreezeTransaction.js\";\nexport { default as TokenUnpauseTransaction } from \"./token/TokenUnpauseTransaction.js\";\nexport { default as TokenUpdateTransaction } from \"./token/TokenUpdateTransaction.js\";\nexport { default as TokenWipeTransaction } from \"./token/TokenWipeTransaction.js\";\nexport { default as TopicCreateTransaction } from \"./topic/TopicCreateTransaction.js\";\nexport { default as TopicDeleteTransaction } from \"./topic/TopicDeleteTransaction.js\";\nexport { default as TopicId } from \"./topic/TopicId.js\";\nexport { default as TopicInfo } from \"./topic/TopicInfo.js\";\nexport { default as TopicInfoQuery } from \"./topic/TopicInfoQuery.js\";\nexport { default as TopicMessage } from \"./topic/TopicMessage.js\";\nexport { default as TopicMessageChunk } from \"./topic/TopicMessageChunk.js\";\nexport { default as TopicMessageQuery } from \"./topic/TopicMessageQuery.js\";\nexport { default as TopicMessageSubmitTransaction } from \"./topic/TopicMessageSubmitTransaction.js\";\nexport { default as TopicUpdateTransaction } from \"./topic/TopicUpdateTransaction.js\";\nexport { default as Transaction } from \"./transaction/Transaction.js\";\nexport { default as TransactionFeeSchedule } from \"./TransactionFeeSchedule.js\";\nexport { default as TransactionId } from \"./transaction/TransactionId.js\";\nexport { default as TransactionReceipt } from \"./transaction/TransactionReceipt.js\";\nexport { default as TransactionReceiptQuery } from \"./transaction/TransactionReceiptQuery.js\";\nexport { default as TransactionRecord } from \"./transaction/TransactionRecord.js\";\nexport { default as TransactionRecordQuery } from \"./transaction/TransactionRecordQuery.js\";\nexport { default as TransactionResponse } from \"./transaction/TransactionResponse.js\";\nexport { default as Transfer } from \"./Transfer.js\";\nexport { default as TransferTransaction } from \"./account/TransferTransaction.js\";\nexport { default as Wallet } from \"./Wallet.js\";\nexport { default as Logger } from \"./logger/Logger.js\";\nexport { default as LogLevel } from \"./logger/LogLevel.js\";\nexport { EntityIdHelper };\nexport { default as Long } from \"long\";\nexport { default as FreezeType } from \"./FreezeType.js\";\nexport { default as TokenKeyValidation } from \"./token/TokenKeyValidation.js\";\n\nexport { default as StatusError } from \"./StatusError.js\";\nexport { default as MaxAttemptsOrTimeoutError } from \"./MaxAttemptsOrTimeoutError.js\";\nexport { default as PrecheckStatusError } from \"./PrecheckStatusError.js\";\nexport { default as ReceiptStatusError } from \"./ReceiptStatusError.js\";\nexport { default as LedgerId } from \"./LedgerId.js\";\nexport { default as TokenUpdateNftsTransaction } from \"./token/TokenUpdateNftsTransaction.js\";\nexport { default as NodeCreateTransaction } from \"./node/NodeCreateTransaction.js\";\nexport { default as ServiceEndpoint } from \"./node/ServiceEndpoint.js\";\nexport { default as NodeDeleteTransaction } from \"./node/NodeDeleteTransaction.js\";\nexport { default as NodeUpdateTransaction } from \"./node/NodeUpdateTransaction.js\";\n\nexport { default as WebClient } from \"./client/WebClient.js\";\n\n/**\n * @typedef {import(\"./client/Client.js\").NetworkName} ClientNetworkName\n * @typedef {import(\"./Provider.js\").Provider} Provider\n * @typedef {import(\"./Signer.js\").Signer} Signer\n * @typedef {import(\"./account/AccountBalance.js\").AccountBalanceJson} AccountBalanceJson\n * @typedef {import(\"./account/AccountBalance.js\").TokenBalanceJson} TokenBalanceJson\n * @typedef {import(\"./transaction/TransactionResponse.js\").TransactionResponseJSON} TransactionResponseJSON\n */\n\n/**\n * @typedef {object} NetworkNameType\n * @property {ClientNetworkName} Mainnet\n * @property {ClientNetworkName} Testnet\n * @property {ClientNetworkName} Previewnet\n */\n/**\n * @type {NetworkNameType}\n */\nexport const NetworkName = {\n Mainnet: \"mainnet\",\n Testnet: \"testnet\",\n Previewnet: \"previewnet\",\n};\n\nimport \"./query/CostQuery.js\";\n","/*\n *\n * Hedera Wallet Connect\n *\n * Copyright (C) 2023 Hedera Hashgraph, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n/**\n * Enum representing different Hedera network chain IDs.\n *\n * @see {@link https://github.com/hashgraph/hedera-improvement-proposal/blob/main/HIP/hip-820.md#specification | HIP-820 Specification}\n */\nexport var HederaChainId;\n(function (HederaChainId) {\n HederaChainId[\"Mainnet\"] = \"hedera:mainnet\";\n HederaChainId[\"Testnet\"] = \"hedera:testnet\";\n HederaChainId[\"Previewnet\"] = \"hedera:previewnet\";\n HederaChainId[\"Devnet\"] = \"hedera:devnet\";\n})(HederaChainId || (HederaChainId = {}));\n","/*\n *\n * Hedera Wallet Connect\n *\n * Copyright (C) 2023 Hedera Hashgraph, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n/**\n * Represents different events related to a Hedera session.\n */\nexport var HederaSessionEvent;\n(function (HederaSessionEvent) {\n HederaSessionEvent[\"AccountsChanged\"] = \"accountsChanged\";\n HederaSessionEvent[\"ChainChanged\"] = \"chainChanged\";\n})(HederaSessionEvent || (HederaSessionEvent = {}));\n","/*\n *\n * Hedera Wallet Connect\n *\n * Copyright (C) 2023 Hedera Hashgraph, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n/**\n * Enum representing different JSON-RPC methods related to Hedera.\n * The methods are ordered alphabetically for ease of use and readability.\n */\nexport var HederaJsonRpcMethod;\n(function (HederaJsonRpcMethod) {\n HederaJsonRpcMethod[\"GetNodeAddresses\"] = \"hedera_getNodeAddresses\";\n HederaJsonRpcMethod[\"ExecuteTransaction\"] = \"hedera_executeTransaction\";\n HederaJsonRpcMethod[\"SignMessage\"] = \"hedera_signMessage\";\n HederaJsonRpcMethod[\"SignAndExecuteQuery\"] = \"hedera_signAndExecuteQuery\";\n HederaJsonRpcMethod[\"SignAndExecuteTransaction\"] = \"hedera_signAndExecuteTransaction\";\n HederaJsonRpcMethod[\"SignTransaction\"] = \"hedera_signTransaction\";\n})(HederaJsonRpcMethod || (HederaJsonRpcMethod = {}));\n","\"use strict\";\nmodule.exports = LongBits;\n\nvar util = require(\"../util/minimal\");\n\n/**\n * Constructs new long bits.\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\n * @memberof util\n * @constructor\n * @param {number} lo Low 32 bits, unsigned\n * @param {number} hi High 32 bits, unsigned\n */\nfunction LongBits(lo, hi) {\n\n // note that the casts below are theoretically unnecessary as of today, but older statically\n // generated converter code might still call the ctor with signed 32bits. kept for compat.\n\n /**\n * Low bits.\n * @type {number}\n */\n this.lo = lo >>> 0;\n\n /**\n * High bits.\n * @type {number}\n */\n this.hi = hi >>> 0;\n}\n\n/**\n * Zero bits.\n * @memberof util.LongBits\n * @type {util.LongBits}\n */\nvar zero = LongBits.zero = new LongBits(0, 0);\n\nzero.toNumber = function() { return 0; };\nzero.zzEncode = zero.zzDecode = function() { return this; };\nzero.length = function() { return 1; };\n\n/**\n * Zero hash.\n * @memberof util.LongBits\n * @type {string}\n */\nvar zeroHash = LongBits.zeroHash = \"\\0\\0\\0\\0\\0\\0\\0\\0\";\n\n/**\n * Constructs new long bits from the specified number.\n * @param {number} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.fromNumber = function fromNumber(value) {\n if (value === 0)\n return zero;\n var sign = value < 0;\n if (sign)\n value = -value;\n var lo = value >>> 0,\n hi = (value - lo) / 4294967296 >>> 0;\n if (sign) {\n hi = ~hi >>> 0;\n lo = ~lo >>> 0;\n if (++lo > 4294967295) {\n lo = 0;\n if (++hi > 4294967295)\n hi = 0;\n }\n }\n return new LongBits(lo, hi);\n};\n\n/**\n * Constructs new long bits from a number, long or string.\n * @param {Long|number|string} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.from = function from(value) {\n if (typeof value === \"number\")\n return LongBits.fromNumber(value);\n if (util.isString(value)) {\n /* istanbul ignore else */\n if (util.Long)\n value = util.Long.fromString(value);\n else\n return LongBits.fromNumber(parseInt(value, 10));\n }\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\n};\n\n/**\n * Converts this long bits to a possibly unsafe JavaScript number.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {number} Possibly unsafe number\n */\nLongBits.prototype.toNumber = function toNumber(unsigned) {\n if (!unsigned && this.hi >>> 31) {\n var lo = ~this.lo + 1 >>> 0,\n hi = ~this.hi >>> 0;\n if (!lo)\n hi = hi + 1 >>> 0;\n return -(lo + hi * 4294967296);\n }\n return this.lo + this.hi * 4294967296;\n};\n\n/**\n * Converts this long bits to a long.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long} Long\n */\nLongBits.prototype.toLong = function toLong(unsigned) {\n return util.Long\n ? new util.Long(this.lo | 0, this.hi | 0, Boolean(unsigned))\n /* istanbul ignore next */\n : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) };\n};\n\nvar charCodeAt = String.prototype.charCodeAt;\n\n/**\n * Constructs new long bits from the specified 8 characters long hash.\n * @param {string} hash Hash\n * @returns {util.LongBits} Bits\n */\nLongBits.fromHash = function fromHash(hash) {\n if (hash === zeroHash)\n return zero;\n return new LongBits(\n ( charCodeAt.call(hash, 0)\n | charCodeAt.call(hash, 1) << 8\n | charCodeAt.call(hash, 2) << 16\n | charCodeAt.call(hash, 3) << 24) >>> 0\n ,\n ( charCodeAt.call(hash, 4)\n | charCodeAt.call(hash, 5) << 8\n | charCodeAt.call(hash, 6) << 16\n | charCodeAt.call(hash, 7) << 24) >>> 0\n );\n};\n\n/**\n * Converts this long bits to a 8 characters long hash.\n * @returns {string} Hash\n */\nLongBits.prototype.toHash = function toHash() {\n return String.fromCharCode(\n this.lo & 255,\n this.lo >>> 8 & 255,\n this.lo >>> 16 & 255,\n this.lo >>> 24 ,\n this.hi & 255,\n this.hi >>> 8 & 255,\n this.hi >>> 16 & 255,\n this.hi >>> 24\n );\n};\n\n/**\n * Zig-zag encodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzEncode = function zzEncode() {\n var mask = this.hi >> 31;\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Zig-zag decodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzDecode = function zzDecode() {\n var mask = -(this.lo & 1);\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Calculates the length of this longbits when encoded as a varint.\n * @returns {number} Length\n */\nLongBits.prototype.length = function length() {\n var part0 = this.lo,\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\n part2 = this.hi >>> 24;\n return part2 === 0\n ? part1 === 0\n ? part0 < 16384\n ? part0 < 128 ? 1 : 2\n : part0 < 2097152 ? 3 : 4\n : part1 < 16384\n ? part1 < 128 ? 5 : 6\n : part1 < 2097152 ? 7 : 8\n : part2 < 128 ? 9 : 10;\n};\n","\"use strict\";\nvar util = exports;\n\n// used to return a Promise where callback is omitted\nutil.asPromise = require(\"@protobufjs/aspromise\");\n\n// converts to / from base64 encoded strings\nutil.base64 = require(\"@protobufjs/base64\");\n\n// base class of rpc.Service\nutil.EventEmitter = require(\"@protobufjs/eventemitter\");\n\n// float handling accross browsers\nutil.float = require(\"@protobufjs/float\");\n\n// requires modules optionally and hides the call from bundlers\nutil.inquire = require(\"@protobufjs/inquire\");\n\n// converts to / from utf8 encoded strings\nutil.utf8 = require(\"@protobufjs/utf8\");\n\n// provides a node-like buffer pool in the browser\nutil.pool = require(\"@protobufjs/pool\");\n\n// utility to work with the low and high bits of a 64 bit value\nutil.LongBits = require(\"./longbits\");\n\n/**\n * Whether running within node or not.\n * @memberof util\n * @type {boolean}\n */\nutil.isNode = Boolean(typeof global !== \"undefined\"\n && global\n && global.process\n && global.process.versions\n && global.process.versions.node);\n\n/**\n * Global object reference.\n * @memberof util\n * @type {Object}\n */\nutil.global = util.isNode && global\n || typeof window !== \"undefined\" && window\n || typeof self !== \"undefined\" && self\n || this; // eslint-disable-line no-invalid-this\n\n/**\n * An immuable empty array.\n * @memberof util\n * @type {Array.<*>}\n * @const\n */\nutil.emptyArray = Object.freeze ? Object.freeze([]) : /* istanbul ignore next */ []; // used on prototypes\n\n/**\n * An immutable empty object.\n * @type {Object}\n * @const\n */\nutil.emptyObject = Object.freeze ? Object.freeze({}) : /* istanbul ignore next */ {}; // used on prototypes\n\n/**\n * Tests if the specified value is an integer.\n * @function\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is an integer\n */\nutil.isInteger = Number.isInteger || /* istanbul ignore next */ function isInteger(value) {\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\n};\n\n/**\n * Tests if the specified value is a string.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a string\n */\nutil.isString = function isString(value) {\n return typeof value === \"string\" || value instanceof String;\n};\n\n/**\n * Tests if the specified value is a non-null object.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a non-null object\n */\nutil.isObject = function isObject(value) {\n return value && typeof value === \"object\";\n};\n\n/**\n * Checks if a property on a message is considered to be present.\n * This is an alias of {@link util.isSet}.\n * @function\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isset =\n\n/**\n * Checks if a property on a message is considered to be present.\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isSet = function isSet(obj, prop) {\n var value = obj[prop];\n if (value != null && obj.hasOwnProperty(prop)) // eslint-disable-line eqeqeq, no-prototype-builtins\n return typeof value !== \"object\" || (Array.isArray(value) ? value.length : Object.keys(value).length) > 0;\n return false;\n};\n\n/**\n * Any compatible Buffer instance.\n * This is a minimal stand-alone definition of a Buffer instance. The actual type is that exported by node's typings.\n * @interface Buffer\n * @extends Uint8Array\n */\n\n/**\n * Node's Buffer class if available.\n * @type {Constructor}\n */\nutil.Buffer = (function() {\n try {\n var Buffer = util.inquire(\"buffer\").Buffer;\n // refuse to use non-node buffers if not explicitly assigned (perf reasons):\n return Buffer.prototype.utf8Write ? Buffer : /* istanbul ignore next */ null;\n } catch (e) {\n /* istanbul ignore next */\n return null;\n }\n})();\n\n// Internal alias of or polyfull for Buffer.from.\nutil._Buffer_from = null;\n\n// Internal alias of or polyfill for Buffer.allocUnsafe.\nutil._Buffer_allocUnsafe = null;\n\n/**\n * Creates a new buffer of whatever type supported by the environment.\n * @param {number|number[]} [sizeOrArray=0] Buffer size or number array\n * @returns {Uint8Array|Buffer} Buffer\n */\nutil.newBuffer = function newBuffer(sizeOrArray) {\n /* istanbul ignore next */\n return typeof sizeOrArray === \"number\"\n ? util.Buffer\n ? util._Buffer_allocUnsafe(sizeOrArray)\n : new util.Array(sizeOrArray)\n : util.Buffer\n ? util._Buffer_from(sizeOrArray)\n : typeof Uint8Array === \"undefined\"\n ? sizeOrArray\n : new Uint8Array(sizeOrArray);\n};\n\n/**\n * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`.\n * @type {Constructor}\n */\nutil.Array = typeof Uint8Array !== \"undefined\" ? Uint8Array /* istanbul ignore next */ : Array;\n\n/**\n * Any compatible Long instance.\n * This is a minimal stand-alone definition of a Long instance. The actual type is that exported by long.js.\n * @interface Long\n * @property {number} low Low bits\n * @property {number} high High bits\n * @property {boolean} unsigned Whether unsigned or not\n */\n\n/**\n * Long.js's Long class if available.\n * @type {Constructor}\n */\nutil.Long = /* istanbul ignore next */ util.global.dcodeIO && /* istanbul ignore next */ util.global.dcodeIO.Long\n || /* istanbul ignore next */ util.global.Long\n || util.inquire(\"long\");\n\n/**\n * Regular expression used to verify 2 bit (`bool`) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key2Re = /^true|false|0|1$/;\n\n/**\n * Regular expression used to verify 32 bit (`int32` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key32Re = /^-?(?:0|[1-9][0-9]*)$/;\n\n/**\n * Regular expression used to verify 64 bit (`int64` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key64Re = /^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;\n\n/**\n * Converts a number or long to an 8 characters long hash string.\n * @param {Long|number} value Value to convert\n * @returns {string} Hash\n */\nutil.longToHash = function longToHash(value) {\n return value\n ? util.LongBits.from(value).toHash()\n : util.LongBits.zeroHash;\n};\n\n/**\n * Converts an 8 characters long hash string to a long or number.\n * @param {string} hash Hash\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long|number} Original value\n */\nutil.longFromHash = function longFromHash(hash, unsigned) {\n var bits = util.LongBits.fromHash(hash);\n if (util.Long)\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\n return bits.toNumber(Boolean(unsigned));\n};\n\n/**\n * Merges the properties of the source object into the destination object.\n * @memberof util\n * @param {Object.} dst Destination object\n * @param {Object.} src Source object\n * @param {boolean} [ifNotSet=false] Merges only if the key is not already set\n * @returns {Object.} Destination object\n */\nfunction merge(dst, src, ifNotSet) { // used by converters\n for (var keys = Object.keys(src), i = 0; i < keys.length; ++i)\n if (dst[keys[i]] === undefined || !ifNotSet)\n dst[keys[i]] = src[keys[i]];\n return dst;\n}\n\nutil.merge = merge;\n\n/**\n * Converts the first character of a string to lower case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.lcFirst = function lcFirst(str) {\n return str.charAt(0).toLowerCase() + str.substring(1);\n};\n\n/**\n * Creates a custom error constructor.\n * @memberof util\n * @param {string} name Error name\n * @returns {Constructor} Custom error constructor\n */\nfunction newError(name) {\n\n function CustomError(message, properties) {\n\n if (!(this instanceof CustomError))\n return new CustomError(message, properties);\n\n // Error.call(this, message);\n // ^ just returns a new error instance because the ctor can be called as a function\n\n Object.defineProperty(this, \"message\", { get: function() { return message; } });\n\n /* istanbul ignore next */\n if (Error.captureStackTrace) // node\n Error.captureStackTrace(this, CustomError);\n else\n Object.defineProperty(this, \"stack\", { value: new Error().stack || \"\" });\n\n if (properties)\n merge(this, properties);\n }\n\n CustomError.prototype = Object.create(Error.prototype, {\n constructor: {\n value: CustomError,\n writable: true,\n enumerable: false,\n configurable: true,\n },\n name: {\n get: function get() { return name; },\n set: undefined,\n enumerable: false,\n // configurable: false would accurately preserve the behavior of\n // the original, but I'm guessing that was not intentional.\n // For an actual error subclass, this property would\n // be configurable.\n configurable: true,\n },\n toString: {\n value: function value() { return this.name + \": \" + this.message; },\n writable: true,\n enumerable: false,\n configurable: true,\n },\n });\n\n return CustomError;\n}\n\nutil.newError = newError;\n\n/**\n * Constructs a new protocol error.\n * @classdesc Error subclass indicating a protocol specifc error.\n * @memberof util\n * @extends Error\n * @template T extends Message\n * @constructor\n * @param {string} message Error message\n * @param {Object.} [properties] Additional properties\n * @example\n * try {\n * MyMessage.decode(someBuffer); // throws if required fields are missing\n * } catch (e) {\n * if (e instanceof ProtocolError && e.instance)\n * console.log(\"decoded so far: \" + JSON.stringify(e.instance));\n * }\n */\nutil.ProtocolError = newError(\"ProtocolError\");\n\n/**\n * So far decoded message instance.\n * @name util.ProtocolError#instance\n * @type {Message}\n */\n\n/**\n * A OneOf getter as returned by {@link util.oneOfGetter}.\n * @typedef OneOfGetter\n * @type {function}\n * @returns {string|undefined} Set field name, if any\n */\n\n/**\n * Builds a getter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfGetter} Unbound getter\n */\nutil.oneOfGetter = function getOneOf(fieldNames) {\n var fieldMap = {};\n for (var i = 0; i < fieldNames.length; ++i)\n fieldMap[fieldNames[i]] = 1;\n\n /**\n * @returns {string|undefined} Set field name, if any\n * @this Object\n * @ignore\n */\n return function() { // eslint-disable-line consistent-return\n for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\n if (fieldMap[keys[i]] === 1 && this[keys[i]] !== undefined && this[keys[i]] !== null)\n return keys[i];\n };\n};\n\n/**\n * A OneOf setter as returned by {@link util.oneOfSetter}.\n * @typedef OneOfSetter\n * @type {function}\n * @param {string|undefined} value Field name\n * @returns {undefined}\n */\n\n/**\n * Builds a setter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfSetter} Unbound setter\n */\nutil.oneOfSetter = function setOneOf(fieldNames) {\n\n /**\n * @param {string} name Field name\n * @returns {undefined}\n * @this Object\n * @ignore\n */\n return function(name) {\n for (var i = 0; i < fieldNames.length; ++i)\n if (fieldNames[i] !== name)\n delete this[fieldNames[i]];\n };\n};\n\n/**\n * Default conversion options used for {@link Message#toJSON} implementations.\n *\n * These options are close to proto3's JSON mapping with the exception that internal types like Any are handled just like messages. More precisely:\n *\n * - Longs become strings\n * - Enums become string keys\n * - Bytes become base64 encoded strings\n * - (Sub-)Messages become plain objects\n * - Maps become plain objects with all string keys\n * - Repeated fields become arrays\n * - NaN and Infinity for float and double fields become strings\n *\n * @type {IConversionOptions}\n * @see https://developers.google.com/protocol-buffers/docs/proto3?hl=en#json\n */\nutil.toJSONOptions = {\n longs: String,\n enums: String,\n bytes: String,\n json: true\n};\n\n// Sets up buffer utility according to the environment (called in index-minimal)\nutil._configure = function() {\n var Buffer = util.Buffer;\n /* istanbul ignore if */\n if (!Buffer) {\n util._Buffer_from = util._Buffer_allocUnsafe = null;\n return;\n }\n // because node 4.x buffers are incompatible & immutable\n // see: https://github.com/dcodeIO/protobuf.js/pull/665\n util._Buffer_from = Buffer.from !== Uint8Array.from && Buffer.from ||\n /* istanbul ignore next */\n function Buffer_from(value, encoding) {\n return new Buffer(value, encoding);\n };\n util._Buffer_allocUnsafe = Buffer.allocUnsafe ||\n /* istanbul ignore next */\n function Buffer_allocUnsafe(size) {\n return new Buffer(size);\n };\n};\n","\"use strict\";\nmodule.exports = Writer;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferWriter; // cyclic\n\nvar LongBits = util.LongBits,\n base64 = util.base64,\n utf8 = util.utf8;\n\n/**\n * Constructs a new writer operation instance.\n * @classdesc Scheduled writer operation.\n * @constructor\n * @param {function(*, Uint8Array, number)} fn Function to call\n * @param {number} len Value byte length\n * @param {*} val Value to write\n * @ignore\n */\nfunction Op(fn, len, val) {\n\n /**\n * Function to call.\n * @type {function(Uint8Array, number, *)}\n */\n this.fn = fn;\n\n /**\n * Value byte length.\n * @type {number}\n */\n this.len = len;\n\n /**\n * Next operation.\n * @type {Writer.Op|undefined}\n */\n this.next = undefined;\n\n /**\n * Value to write.\n * @type {*}\n */\n this.val = val; // type varies\n}\n\n/* istanbul ignore next */\nfunction noop() {} // eslint-disable-line no-empty-function\n\n/**\n * Constructs a new writer state instance.\n * @classdesc Copied writer state.\n * @memberof Writer\n * @constructor\n * @param {Writer} writer Writer to copy state from\n * @ignore\n */\nfunction State(writer) {\n\n /**\n * Current head.\n * @type {Writer.Op}\n */\n this.head = writer.head;\n\n /**\n * Current tail.\n * @type {Writer.Op}\n */\n this.tail = writer.tail;\n\n /**\n * Current buffer length.\n * @type {number}\n */\n this.len = writer.len;\n\n /**\n * Next state.\n * @type {State|null}\n */\n this.next = writer.states;\n}\n\n/**\n * Constructs a new writer instance.\n * @classdesc Wire format writer using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n */\nfunction Writer() {\n\n /**\n * Current length.\n * @type {number}\n */\n this.len = 0;\n\n /**\n * Operations head.\n * @type {Object}\n */\n this.head = new Op(noop, 0, 0);\n\n /**\n * Operations tail\n * @type {Object}\n */\n this.tail = this.head;\n\n /**\n * Linked forked states.\n * @type {Object|null}\n */\n this.states = null;\n\n // When a value is written, the writer calculates its byte length and puts it into a linked\n // list of operations to perform when finish() is called. This both allows us to allocate\n // buffers of the exact required size and reduces the amount of work we have to do compared\n // to first calculating over objects and then encoding over objects. In our case, the encoding\n // part is just a linked list walk calling operations with already prepared values.\n}\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup() {\n return (Writer.create = function create_buffer() {\n return new BufferWriter();\n })();\n }\n /* istanbul ignore next */\n : function create_array() {\n return new Writer();\n };\n};\n\n/**\n * Creates a new writer.\n * @function\n * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer}\n */\nWriter.create = create();\n\n/**\n * Allocates a buffer of the specified size.\n * @param {number} size Buffer size\n * @returns {Uint8Array} Buffer\n */\nWriter.alloc = function alloc(size) {\n return new util.Array(size);\n};\n\n// Use Uint8Array buffer pool in the browser, just like node does with buffers\n/* istanbul ignore else */\nif (util.Array !== Array)\n Writer.alloc = util.pool(Writer.alloc, util.Array.prototype.subarray);\n\n/**\n * Pushes a new operation to the queue.\n * @param {function(Uint8Array, number, *)} fn Function to call\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @returns {Writer} `this`\n * @private\n */\nWriter.prototype._push = function push(fn, len, val) {\n this.tail = this.tail.next = new Op(fn, len, val);\n this.len += len;\n return this;\n};\n\nfunction writeByte(val, buf, pos) {\n buf[pos] = val & 255;\n}\n\nfunction writeVarint32(val, buf, pos) {\n while (val > 127) {\n buf[pos++] = val & 127 | 128;\n val >>>= 7;\n }\n buf[pos] = val;\n}\n\n/**\n * Constructs a new varint writer operation instance.\n * @classdesc Scheduled varint writer operation.\n * @extends Op\n * @constructor\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @ignore\n */\nfunction VarintOp(len, val) {\n this.len = len;\n this.next = undefined;\n this.val = val;\n}\n\nVarintOp.prototype = Object.create(Op.prototype);\nVarintOp.prototype.fn = writeVarint32;\n\n/**\n * Writes an unsigned 32 bit value as a varint.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.uint32 = function write_uint32(value) {\n // here, the call to this.push has been inlined and a varint specific Op subclass is used.\n // uint32 is by far the most frequently used operation and benefits significantly from this.\n this.len += (this.tail = this.tail.next = new VarintOp(\n (value = value >>> 0)\n < 128 ? 1\n : value < 16384 ? 2\n : value < 2097152 ? 3\n : value < 268435456 ? 4\n : 5,\n value)).len;\n return this;\n};\n\n/**\n * Writes a signed 32 bit value as a varint.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.int32 = function write_int32(value) {\n return value < 0\n ? this._push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\n : this.uint32(value);\n};\n\n/**\n * Writes a 32 bit value as a varint, zig-zag encoded.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sint32 = function write_sint32(value) {\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\n};\n\nfunction writeVarint64(val, buf, pos) {\n while (val.hi) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\n val.hi >>>= 7;\n }\n while (val.lo > 127) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = val.lo >>> 7;\n }\n buf[pos++] = val.lo;\n}\n\n/**\n * Writes an unsigned 64 bit value as a varint.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.uint64 = function write_uint64(value) {\n var bits = LongBits.from(value);\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a signed 64 bit value as a varint.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.int64 = Writer.prototype.uint64;\n\n/**\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sint64 = function write_sint64(value) {\n var bits = LongBits.from(value).zzEncode();\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a boolish value as a varint.\n * @param {boolean} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bool = function write_bool(value) {\n return this._push(writeByte, 1, value ? 1 : 0);\n};\n\nfunction writeFixed32(val, buf, pos) {\n buf[pos ] = val & 255;\n buf[pos + 1] = val >>> 8 & 255;\n buf[pos + 2] = val >>> 16 & 255;\n buf[pos + 3] = val >>> 24;\n}\n\n/**\n * Writes an unsigned 32 bit value as fixed 32 bits.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.fixed32 = function write_fixed32(value) {\n return this._push(writeFixed32, 4, value >>> 0);\n};\n\n/**\n * Writes a signed 32 bit value as fixed 32 bits.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sfixed32 = Writer.prototype.fixed32;\n\n/**\n * Writes an unsigned 64 bit value as fixed 64 bits.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.fixed64 = function write_fixed64(value) {\n var bits = LongBits.from(value);\n return this._push(writeFixed32, 4, bits.lo)._push(writeFixed32, 4, bits.hi);\n};\n\n/**\n * Writes a signed 64 bit value as fixed 64 bits.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sfixed64 = Writer.prototype.fixed64;\n\n/**\n * Writes a float (32 bit).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.float = function write_float(value) {\n return this._push(util.float.writeFloatLE, 4, value);\n};\n\n/**\n * Writes a double (64 bit float).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.double = function write_double(value) {\n return this._push(util.float.writeDoubleLE, 8, value);\n};\n\nvar writeBytes = util.Array.prototype.set\n ? function writeBytes_set(val, buf, pos) {\n buf.set(val, pos); // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytes_for(val, buf, pos) {\n for (var i = 0; i < val.length; ++i)\n buf[pos + i] = val[i];\n };\n\n/**\n * Writes a sequence of bytes.\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bytes = function write_bytes(value) {\n var len = value.length >>> 0;\n if (!len)\n return this._push(writeByte, 1, 0);\n if (util.isString(value)) {\n var buf = Writer.alloc(len = base64.length(value));\n base64.decode(value, buf, 0);\n value = buf;\n }\n return this.uint32(len)._push(writeBytes, len, value);\n};\n\n/**\n * Writes a string.\n * @param {string} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.string = function write_string(value) {\n var len = utf8.length(value);\n return len\n ? this.uint32(len)._push(utf8.write, len, value)\n : this._push(writeByte, 1, 0);\n};\n\n/**\n * Forks this writer's state by pushing it to a stack.\n * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state.\n * @returns {Writer} `this`\n */\nWriter.prototype.fork = function fork() {\n this.states = new State(this);\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n return this;\n};\n\n/**\n * Resets this instance to the last state.\n * @returns {Writer} `this`\n */\nWriter.prototype.reset = function reset() {\n if (this.states) {\n this.head = this.states.head;\n this.tail = this.states.tail;\n this.len = this.states.len;\n this.states = this.states.next;\n } else {\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n }\n return this;\n};\n\n/**\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\n * @returns {Writer} `this`\n */\nWriter.prototype.ldelim = function ldelim() {\n var head = this.head,\n tail = this.tail,\n len = this.len;\n this.reset().uint32(len);\n if (len) {\n this.tail.next = head.next; // skip noop\n this.tail = tail;\n this.len += len;\n }\n return this;\n};\n\n/**\n * Finishes the write operation.\n * @returns {Uint8Array} Finished buffer\n */\nWriter.prototype.finish = function finish() {\n var head = this.head.next, // skip noop\n buf = this.constructor.alloc(this.len),\n pos = 0;\n while (head) {\n head.fn(head.val, buf, pos);\n pos += head.len;\n head = head.next;\n }\n // this.head = this.tail = null;\n return buf;\n};\n\nWriter._configure = function(BufferWriter_) {\n BufferWriter = BufferWriter_;\n Writer.create = create();\n BufferWriter._configure();\n};\n","\"use strict\";\nmodule.exports = BufferWriter;\n\n// extends Writer\nvar Writer = require(\"./writer\");\n(BufferWriter.prototype = Object.create(Writer.prototype)).constructor = BufferWriter;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer writer instance.\n * @classdesc Wire format writer using node buffers.\n * @extends Writer\n * @constructor\n */\nfunction BufferWriter() {\n Writer.call(this);\n}\n\nBufferWriter._configure = function () {\n /**\n * Allocates a buffer of the specified size.\n * @function\n * @param {number} size Buffer size\n * @returns {Buffer} Buffer\n */\n BufferWriter.alloc = util._Buffer_allocUnsafe;\n\n BufferWriter.writeBytesBuffer = util.Buffer && util.Buffer.prototype instanceof Uint8Array && util.Buffer.prototype.set.name === \"set\"\n ? function writeBytesBuffer_set(val, buf, pos) {\n buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited)\n // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytesBuffer_copy(val, buf, pos) {\n if (val.copy) // Buffer values\n val.copy(buf, pos, 0, val.length);\n else for (var i = 0; i < val.length;) // plain array values\n buf[pos++] = val[i++];\n };\n};\n\n\n/**\n * @override\n */\nBufferWriter.prototype.bytes = function write_bytes_buffer(value) {\n if (util.isString(value))\n value = util._Buffer_from(value, \"base64\");\n var len = value.length >>> 0;\n this.uint32(len);\n if (len)\n this._push(BufferWriter.writeBytesBuffer, len, value);\n return this;\n};\n\nfunction writeStringBuffer(val, buf, pos) {\n if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions)\n util.utf8.write(val, buf, pos);\n else if (buf.utf8Write)\n buf.utf8Write(val, pos);\n else\n buf.write(val, pos);\n}\n\n/**\n * @override\n */\nBufferWriter.prototype.string = function write_string_buffer(value) {\n var len = util.Buffer.byteLength(value);\n this.uint32(len);\n if (len)\n this._push(writeStringBuffer, len, value);\n return this;\n};\n\n\n/**\n * Finishes the write operation.\n * @name BufferWriter#finish\n * @function\n * @returns {Buffer} Finished buffer\n */\n\nBufferWriter._configure();\n","\"use strict\";\nmodule.exports = Reader;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferReader; // cyclic\n\nvar LongBits = util.LongBits,\n utf8 = util.utf8;\n\n/* istanbul ignore next */\nfunction indexOutOfRange(reader, writeLength) {\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\n}\n\n/**\n * Constructs a new reader instance using the specified buffer.\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n * @param {Uint8Array} buffer Buffer to read from\n */\nfunction Reader(buffer) {\n\n /**\n * Read buffer.\n * @type {Uint8Array}\n */\n this.buf = buffer;\n\n /**\n * Read buffer position.\n * @type {number}\n */\n this.pos = 0;\n\n /**\n * Read buffer length.\n * @type {number}\n */\n this.len = buffer.length;\n}\n\nvar create_array = typeof Uint8Array !== \"undefined\"\n ? function create_typed_array(buffer) {\n if (buffer instanceof Uint8Array || Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n }\n /* istanbul ignore next */\n : function create_array(buffer) {\n if (Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n };\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup(buffer) {\n return (Reader.create = function create_buffer(buffer) {\n return util.Buffer.isBuffer(buffer)\n ? new BufferReader(buffer)\n /* istanbul ignore next */\n : create_array(buffer);\n })(buffer);\n }\n /* istanbul ignore next */\n : create_array;\n};\n\n/**\n * Creates a new reader using the specified buffer.\n * @function\n * @param {Uint8Array|Buffer} buffer Buffer to read from\n * @returns {Reader|BufferReader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\n * @throws {Error} If `buffer` is not a valid buffer\n */\nReader.create = create();\n\nReader.prototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice;\n\n/**\n * Reads a varint as an unsigned 32 bit value.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.uint32 = (function read_uint32_setup() {\n var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!)\n return function read_uint32() {\n value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\n\n /* istanbul ignore if */\n if ((this.pos += 5) > this.len) {\n this.pos = this.len;\n throw indexOutOfRange(this, 10);\n }\n return value;\n };\n})();\n\n/**\n * Reads a varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.int32 = function read_int32() {\n return this.uint32() | 0;\n};\n\n/**\n * Reads a zig-zag encoded varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.sint32 = function read_sint32() {\n var value = this.uint32();\n return value >>> 1 ^ -(value & 1) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readLongVarint() {\n // tends to deopt with local vars for octet etc.\n var bits = new LongBits(0, 0);\n var i = 0;\n if (this.len - this.pos > 4) { // fast route (lo)\n for (; i < 4; ++i) {\n // 1st..4th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 5th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n i = 0;\n } else {\n for (; i < 3; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 1st..3th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 4th\n bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0;\n return bits;\n }\n if (this.len - this.pos > 4) { // fast route (hi)\n for (; i < 5; ++i) {\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n } else {\n for (; i < 5; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n }\n /* istanbul ignore next */\n throw Error(\"invalid varint encoding\");\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads a varint as a signed 64 bit value.\n * @name Reader#int64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as an unsigned 64 bit value.\n * @name Reader#uint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a zig-zag encoded varint as a signed 64 bit value.\n * @name Reader#sint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as a boolean.\n * @returns {boolean} Value read\n */\nReader.prototype.bool = function read_bool() {\n return this.uint32() !== 0;\n};\n\nfunction readFixed32_end(buf, end) { // note that this uses `end`, not `pos`\n return (buf[end - 4]\n | buf[end - 3] << 8\n | buf[end - 2] << 16\n | buf[end - 1] << 24) >>> 0;\n}\n\n/**\n * Reads fixed 32 bits as an unsigned 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.fixed32 = function read_fixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4);\n};\n\n/**\n * Reads fixed 32 bits as a signed 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.sfixed32 = function read_sfixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readFixed64(/* this: Reader */) {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 8);\n\n return new LongBits(readFixed32_end(this.buf, this.pos += 4), readFixed32_end(this.buf, this.pos += 4));\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads fixed 64 bits.\n * @name Reader#fixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads zig-zag encoded fixed 64 bits.\n * @name Reader#sfixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a float (32 bit) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.float = function read_float() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readFloatLE(this.buf, this.pos);\n this.pos += 4;\n return value;\n};\n\n/**\n * Reads a double (64 bit float) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.double = function read_double() {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readDoubleLE(this.buf, this.pos);\n this.pos += 8;\n return value;\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @returns {Uint8Array} Value read\n */\nReader.prototype.bytes = function read_bytes() {\n var length = this.uint32(),\n start = this.pos,\n end = this.pos + length;\n\n /* istanbul ignore if */\n if (end > this.len)\n throw indexOutOfRange(this, length);\n\n this.pos += length;\n if (Array.isArray(this.buf)) // plain array\n return this.buf.slice(start, end);\n\n if (start === end) { // fix for IE 10/Win8 and others' subarray returning array of size 1\n var nativeBuffer = util.Buffer;\n return nativeBuffer\n ? nativeBuffer.alloc(0)\n : new this.buf.constructor(0);\n }\n return this._slice.call(this.buf, start, end);\n};\n\n/**\n * Reads a string preceeded by its byte length as a varint.\n * @returns {string} Value read\n */\nReader.prototype.string = function read_string() {\n var bytes = this.bytes();\n return utf8.read(bytes, 0, bytes.length);\n};\n\n/**\n * Skips the specified number of bytes if specified, otherwise skips a varint.\n * @param {number} [length] Length if known, otherwise a varint is assumed\n * @returns {Reader} `this`\n */\nReader.prototype.skip = function skip(length) {\n if (typeof length === \"number\") {\n /* istanbul ignore if */\n if (this.pos + length > this.len)\n throw indexOutOfRange(this, length);\n this.pos += length;\n } else {\n do {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n } while (this.buf[this.pos++] & 128);\n }\n return this;\n};\n\n/**\n * Skips the next element of the specified wire type.\n * @param {number} wireType Wire type received\n * @returns {Reader} `this`\n */\nReader.prototype.skipType = function(wireType) {\n switch (wireType) {\n case 0:\n this.skip();\n break;\n case 1:\n this.skip(8);\n break;\n case 2:\n this.skip(this.uint32());\n break;\n case 3:\n while ((wireType = this.uint32() & 7) !== 4) {\n this.skipType(wireType);\n }\n break;\n case 5:\n this.skip(4);\n break;\n\n /* istanbul ignore next */\n default:\n throw Error(\"invalid wire type \" + wireType + \" at offset \" + this.pos);\n }\n return this;\n};\n\nReader._configure = function(BufferReader_) {\n BufferReader = BufferReader_;\n Reader.create = create();\n BufferReader._configure();\n\n var fn = util.Long ? \"toLong\" : /* istanbul ignore next */ \"toNumber\";\n util.merge(Reader.prototype, {\n\n int64: function read_int64() {\n return readLongVarint.call(this)[fn](false);\n },\n\n uint64: function read_uint64() {\n return readLongVarint.call(this)[fn](true);\n },\n\n sint64: function read_sint64() {\n return readLongVarint.call(this).zzDecode()[fn](false);\n },\n\n fixed64: function read_fixed64() {\n return readFixed64.call(this)[fn](true);\n },\n\n sfixed64: function read_sfixed64() {\n return readFixed64.call(this)[fn](false);\n }\n\n });\n};\n","\"use strict\";\nmodule.exports = BufferReader;\n\n// extends Reader\nvar Reader = require(\"./reader\");\n(BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer reader instance.\n * @classdesc Wire format reader using node buffers.\n * @extends Reader\n * @constructor\n * @param {Buffer} buffer Buffer to read from\n */\nfunction BufferReader(buffer) {\n Reader.call(this, buffer);\n\n /**\n * Read buffer.\n * @name BufferReader#buf\n * @type {Buffer}\n */\n}\n\nBufferReader._configure = function () {\n /* istanbul ignore else */\n if (util.Buffer)\n BufferReader.prototype._slice = util.Buffer.prototype.slice;\n};\n\n\n/**\n * @override\n */\nBufferReader.prototype.string = function read_string_buffer() {\n var len = this.uint32(); // modifies pos\n return this.buf.utf8Slice\n ? this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len))\n : this.buf.toString(\"utf-8\", this.pos, this.pos = Math.min(this.pos + len, this.len));\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @name BufferReader#bytes\n * @function\n * @returns {Buffer} Value read\n */\n\nBufferReader._configure();\n","\"use strict\";\nmodule.exports = Service;\n\nvar util = require(\"../util/minimal\");\n\n// Extends EventEmitter\n(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service;\n\n/**\n * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}.\n *\n * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`.\n * @typedef rpc.ServiceMethodCallback\n * @template TRes extends Message\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {TRes} [response] Response message\n * @returns {undefined}\n */\n\n/**\n * A service method part of a {@link rpc.Service} as created by {@link Service.create}.\n * @typedef rpc.ServiceMethod\n * @template TReq extends Message\n * @template TRes extends Message\n * @type {function}\n * @param {TReq|Properties} request Request message or plain object\n * @param {rpc.ServiceMethodCallback} [callback] Node-style callback called with the error, if any, and the response message\n * @returns {Promise>} Promise if `callback` has been omitted, otherwise `undefined`\n */\n\n/**\n * Constructs a new RPC service instance.\n * @classdesc An RPC service as returned by {@link Service#create}.\n * @exports rpc.Service\n * @extends util.EventEmitter\n * @constructor\n * @param {RPCImpl} rpcImpl RPC implementation\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\n */\nfunction Service(rpcImpl, requestDelimited, responseDelimited) {\n\n if (typeof rpcImpl !== \"function\")\n throw TypeError(\"rpcImpl must be a function\");\n\n util.EventEmitter.call(this);\n\n /**\n * RPC implementation. Becomes `null` once the service is ended.\n * @type {RPCImpl|null}\n */\n this.rpcImpl = rpcImpl;\n\n /**\n * Whether requests are length-delimited.\n * @type {boolean}\n */\n this.requestDelimited = Boolean(requestDelimited);\n\n /**\n * Whether responses are length-delimited.\n * @type {boolean}\n */\n this.responseDelimited = Boolean(responseDelimited);\n}\n\n/**\n * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}.\n * @param {Method|rpc.ServiceMethod} method Reflected or static method\n * @param {Constructor} requestCtor Request constructor\n * @param {Constructor} responseCtor Response constructor\n * @param {TReq|Properties} request Request message or plain object\n * @param {rpc.ServiceMethodCallback} callback Service callback\n * @returns {undefined}\n * @template TReq extends Message\n * @template TRes extends Message\n */\nService.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) {\n\n if (!request)\n throw TypeError(\"request must be specified\");\n\n var self = this;\n if (!callback)\n return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request);\n\n if (!self.rpcImpl) {\n setTimeout(function() { callback(Error(\"already ended\")); }, 0);\n return undefined;\n }\n\n try {\n return self.rpcImpl(\n method,\n requestCtor[self.requestDelimited ? \"encodeDelimited\" : \"encode\"](request).finish(),\n function rpcCallback(err, response) {\n\n if (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n\n if (response === null) {\n self.end(/* endedByRPC */ true);\n return undefined;\n }\n\n if (!(response instanceof responseCtor)) {\n try {\n response = responseCtor[self.responseDelimited ? \"decodeDelimited\" : \"decode\"](response);\n } catch (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n }\n\n self.emit(\"data\", response, method);\n return callback(null, response);\n }\n );\n } catch (err) {\n self.emit(\"error\", err, method);\n setTimeout(function() { callback(err); }, 0);\n return undefined;\n }\n};\n\n/**\n * Ends this service and emits the `end` event.\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\n * @returns {rpc.Service} `this`\n */\nService.prototype.end = function end(endedByRPC) {\n if (this.rpcImpl) {\n if (!endedByRPC) // signal end to rpcImpl\n this.rpcImpl(null, null, null);\n this.rpcImpl = null;\n this.emit(\"end\").off();\n }\n return this;\n};\n","\"use strict\";\n\n/**\n * Streaming RPC helpers.\n * @namespace\n */\nvar rpc = exports;\n\n/**\n * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets.\n * @typedef RPCImpl\n * @type {function}\n * @param {Method|rpc.ServiceMethod,Message<{}>>} method Reflected or static method being called\n * @param {Uint8Array} requestData Request data\n * @param {RPCImplCallback} callback Callback function\n * @returns {undefined}\n * @example\n * function rpcImpl(method, requestData, callback) {\n * if (protobuf.util.lcFirst(method.name) !== \"myMethod\") // compatible with static code\n * throw Error(\"no such method\");\n * asynchronouslyObtainAResponse(requestData, function(err, responseData) {\n * callback(err, responseData);\n * });\n * }\n */\n\n/**\n * Node-style callback as used by {@link RPCImpl}.\n * @typedef RPCImplCallback\n * @type {function}\n * @param {Error|null} error Error, if any, otherwise `null`\n * @param {Uint8Array|null} [response] Response data or `null` to signal end of stream, if there hasn't been an error\n * @returns {undefined}\n */\n\nrpc.Service = require(\"./rpc/service\");\n","\"use strict\";\nmodule.exports = {};\n\n/**\n * Named roots.\n * This is where pbjs stores generated structures (the option `-r, --root` specifies a name).\n * Can also be used manually to make roots available across modules.\n * @name roots\n * @type {Object.}\n * @example\n * // pbjs -r myroot -o compiled.js ...\n *\n * // in another module:\n * require(\"./compiled.js\");\n *\n * // in any subsequent module:\n * var root = protobuf.roots[\"myroot\"];\n */\n","\"use strict\";\nvar protobuf = exports;\n\n/**\n * Build type, one of `\"full\"`, `\"light\"` or `\"minimal\"`.\n * @name build\n * @type {string}\n * @const\n */\nprotobuf.build = \"minimal\";\n\n// Serialization\nprotobuf.Writer = require(\"./writer\");\nprotobuf.BufferWriter = require(\"./writer_buffer\");\nprotobuf.Reader = require(\"./reader\");\nprotobuf.BufferReader = require(\"./reader_buffer\");\n\n// Utility\nprotobuf.util = require(\"./util/minimal\");\nprotobuf.rpc = require(\"./rpc\");\nprotobuf.roots = require(\"./roots\");\nprotobuf.configure = configure;\n\n/* istanbul ignore next */\n/**\n * Reconfigures the library according to the environment.\n * @returns {undefined}\n */\nfunction configure() {\n protobuf.util._configure();\n protobuf.Writer._configure(protobuf.BufferWriter);\n protobuf.Reader._configure(protobuf.BufferReader);\n}\n\n// Set up buffer utility according to the environment\nconfigure();\n","// minimal library entry point.\n\n\"use strict\";\nmodule.exports = require(\"./src/index-minimal\");\n","module.exports = Long;\r\n\r\n/**\r\n * wasm optimizations, to do native i64 multiplication and divide\r\n */\r\nvar wasm = null;\r\n\r\ntry {\r\n wasm = new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([\r\n 0, 97, 115, 109, 1, 0, 0, 0, 1, 13, 2, 96, 0, 1, 127, 96, 4, 127, 127, 127, 127, 1, 127, 3, 7, 6, 0, 1, 1, 1, 1, 1, 6, 6, 1, 127, 1, 65, 0, 11, 7, 50, 6, 3, 109, 117, 108, 0, 1, 5, 100, 105, 118, 95, 115, 0, 2, 5, 100, 105, 118, 95, 117, 0, 3, 5, 114, 101, 109, 95, 115, 0, 4, 5, 114, 101, 109, 95, 117, 0, 5, 8, 103, 101, 116, 95, 104, 105, 103, 104, 0, 0, 10, 191, 1, 6, 4, 0, 35, 0, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 126, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 127, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 128, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 129, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 130, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11\r\n ])), {}).exports;\r\n} catch (e) {\r\n // no wasm support :(\r\n}\r\n\r\n/**\r\n * Constructs a 64 bit two's-complement integer, given its low and high 32 bit values as *signed* integers.\r\n * See the from* functions below for more convenient ways of constructing Longs.\r\n * @exports Long\r\n * @class A Long class for representing a 64 bit two's-complement integer value.\r\n * @param {number} low The low (signed) 32 bits of the long\r\n * @param {number} high The high (signed) 32 bits of the long\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @constructor\r\n */\r\nfunction Long(low, high, unsigned) {\r\n\r\n /**\r\n * The low 32 bits as a signed value.\r\n * @type {number}\r\n */\r\n this.low = low | 0;\r\n\r\n /**\r\n * The high 32 bits as a signed value.\r\n * @type {number}\r\n */\r\n this.high = high | 0;\r\n\r\n /**\r\n * Whether unsigned or not.\r\n * @type {boolean}\r\n */\r\n this.unsigned = !!unsigned;\r\n}\r\n\r\n// The internal representation of a long is the two given signed, 32-bit values.\r\n// We use 32-bit pieces because these are the size of integers on which\r\n// Javascript performs bit-operations. For operations like addition and\r\n// multiplication, we split each number into 16 bit pieces, which can easily be\r\n// multiplied within Javascript's floating-point representation without overflow\r\n// or change in sign.\r\n//\r\n// In the algorithms below, we frequently reduce the negative case to the\r\n// positive case by negating the input(s) and then post-processing the result.\r\n// Note that we must ALWAYS check specially whether those values are MIN_VALUE\r\n// (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as\r\n// a positive number, it overflows back into a negative). Not handling this\r\n// case would often result in infinite recursion.\r\n//\r\n// Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the from*\r\n// methods on which they depend.\r\n\r\n/**\r\n * An indicator used to reliably determine if an object is a Long or not.\r\n * @type {boolean}\r\n * @const\r\n * @private\r\n */\r\nLong.prototype.__isLong__;\r\n\r\nObject.defineProperty(Long.prototype, \"__isLong__\", { value: true });\r\n\r\n/**\r\n * @function\r\n * @param {*} obj Object\r\n * @returns {boolean}\r\n * @inner\r\n */\r\nfunction isLong(obj) {\r\n return (obj && obj[\"__isLong__\"]) === true;\r\n}\r\n\r\n/**\r\n * Tests if the specified object is a Long.\r\n * @function\r\n * @param {*} obj Object\r\n * @returns {boolean}\r\n */\r\nLong.isLong = isLong;\r\n\r\n/**\r\n * A cache of the Long representations of small integer values.\r\n * @type {!Object}\r\n * @inner\r\n */\r\nvar INT_CACHE = {};\r\n\r\n/**\r\n * A cache of the Long representations of small unsigned integer values.\r\n * @type {!Object}\r\n * @inner\r\n */\r\nvar UINT_CACHE = {};\r\n\r\n/**\r\n * @param {number} value\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromInt(value, unsigned) {\r\n var obj, cachedObj, cache;\r\n if (unsigned) {\r\n value >>>= 0;\r\n if (cache = (0 <= value && value < 256)) {\r\n cachedObj = UINT_CACHE[value];\r\n if (cachedObj)\r\n return cachedObj;\r\n }\r\n obj = fromBits(value, (value | 0) < 0 ? -1 : 0, true);\r\n if (cache)\r\n UINT_CACHE[value] = obj;\r\n return obj;\r\n } else {\r\n value |= 0;\r\n if (cache = (-128 <= value && value < 128)) {\r\n cachedObj = INT_CACHE[value];\r\n if (cachedObj)\r\n return cachedObj;\r\n }\r\n obj = fromBits(value, value < 0 ? -1 : 0, false);\r\n if (cache)\r\n INT_CACHE[value] = obj;\r\n return obj;\r\n }\r\n}\r\n\r\n/**\r\n * Returns a Long representing the given 32 bit integer value.\r\n * @function\r\n * @param {number} value The 32 bit integer in question\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromInt = fromInt;\r\n\r\n/**\r\n * @param {number} value\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromNumber(value, unsigned) {\r\n if (isNaN(value))\r\n return unsigned ? UZERO : ZERO;\r\n if (unsigned) {\r\n if (value < 0)\r\n return UZERO;\r\n if (value >= TWO_PWR_64_DBL)\r\n return MAX_UNSIGNED_VALUE;\r\n } else {\r\n if (value <= -TWO_PWR_63_DBL)\r\n return MIN_VALUE;\r\n if (value + 1 >= TWO_PWR_63_DBL)\r\n return MAX_VALUE;\r\n }\r\n if (value < 0)\r\n return fromNumber(-value, unsigned).neg();\r\n return fromBits((value % TWO_PWR_32_DBL) | 0, (value / TWO_PWR_32_DBL) | 0, unsigned);\r\n}\r\n\r\n/**\r\n * Returns a Long representing the given value, provided that it is a finite number. Otherwise, zero is returned.\r\n * @function\r\n * @param {number} value The number in question\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromNumber = fromNumber;\r\n\r\n/**\r\n * @param {number} lowBits\r\n * @param {number} highBits\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromBits(lowBits, highBits, unsigned) {\r\n return new Long(lowBits, highBits, unsigned);\r\n}\r\n\r\n/**\r\n * Returns a Long representing the 64 bit integer that comes by concatenating the given low and high bits. Each is\r\n * assumed to use 32 bits.\r\n * @function\r\n * @param {number} lowBits The low 32 bits\r\n * @param {number} highBits The high 32 bits\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromBits = fromBits;\r\n\r\n/**\r\n * @function\r\n * @param {number} base\r\n * @param {number} exponent\r\n * @returns {number}\r\n * @inner\r\n */\r\nvar pow_dbl = Math.pow; // Used 4 times (4*8 to 15+4)\r\n\r\n/**\r\n * @param {string} str\r\n * @param {(boolean|number)=} unsigned\r\n * @param {number=} radix\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromString(str, unsigned, radix) {\r\n if (str.length === 0)\r\n throw Error('empty string');\r\n if (str === \"NaN\" || str === \"Infinity\" || str === \"+Infinity\" || str === \"-Infinity\")\r\n return ZERO;\r\n if (typeof unsigned === 'number') {\r\n // For goog.math.long compatibility\r\n radix = unsigned,\r\n unsigned = false;\r\n } else {\r\n unsigned = !! unsigned;\r\n }\r\n radix = radix || 10;\r\n if (radix < 2 || 36 < radix)\r\n throw RangeError('radix');\r\n\r\n var p;\r\n if ((p = str.indexOf('-')) > 0)\r\n throw Error('interior hyphen');\r\n else if (p === 0) {\r\n return fromString(str.substring(1), unsigned, radix).neg();\r\n }\r\n\r\n // Do several (8) digits each time through the loop, so as to\r\n // minimize the calls to the very expensive emulated div.\r\n var radixToPower = fromNumber(pow_dbl(radix, 8));\r\n\r\n var result = ZERO;\r\n for (var i = 0; i < str.length; i += 8) {\r\n var size = Math.min(8, str.length - i),\r\n value = parseInt(str.substring(i, i + size), radix);\r\n if (size < 8) {\r\n var power = fromNumber(pow_dbl(radix, size));\r\n result = result.mul(power).add(fromNumber(value));\r\n } else {\r\n result = result.mul(radixToPower);\r\n result = result.add(fromNumber(value));\r\n }\r\n }\r\n result.unsigned = unsigned;\r\n return result;\r\n}\r\n\r\n/**\r\n * Returns a Long representation of the given string, written using the specified radix.\r\n * @function\r\n * @param {string} str The textual representation of the Long\r\n * @param {(boolean|number)=} unsigned Whether unsigned or not, defaults to signed\r\n * @param {number=} radix The radix in which the text is written (2-36), defaults to 10\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromString = fromString;\r\n\r\n/**\r\n * @function\r\n * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromValue(val, unsigned) {\r\n if (typeof val === 'number')\r\n return fromNumber(val, unsigned);\r\n if (typeof val === 'string')\r\n return fromString(val, unsigned);\r\n // Throws for non-objects, converts non-instanceof Long:\r\n return fromBits(val.low, val.high, typeof unsigned === 'boolean' ? unsigned : val.unsigned);\r\n}\r\n\r\n/**\r\n * Converts the specified value to a Long using the appropriate from* function for its type.\r\n * @function\r\n * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val Value\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long}\r\n */\r\nLong.fromValue = fromValue;\r\n\r\n// NOTE: the compiler should inline these constant values below and then remove these variables, so there should be\r\n// no runtime penalty for these.\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_16_DBL = 1 << 16;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_24_DBL = 1 << 24;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_32_DBL = TWO_PWR_16_DBL * TWO_PWR_16_DBL;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_64_DBL = TWO_PWR_32_DBL * TWO_PWR_32_DBL;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_63_DBL = TWO_PWR_64_DBL / 2;\r\n\r\n/**\r\n * @type {!Long}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_24 = fromInt(TWO_PWR_24_DBL);\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar ZERO = fromInt(0);\r\n\r\n/**\r\n * Signed zero.\r\n * @type {!Long}\r\n */\r\nLong.ZERO = ZERO;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar UZERO = fromInt(0, true);\r\n\r\n/**\r\n * Unsigned zero.\r\n * @type {!Long}\r\n */\r\nLong.UZERO = UZERO;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar ONE = fromInt(1);\r\n\r\n/**\r\n * Signed one.\r\n * @type {!Long}\r\n */\r\nLong.ONE = ONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar UONE = fromInt(1, true);\r\n\r\n/**\r\n * Unsigned one.\r\n * @type {!Long}\r\n */\r\nLong.UONE = UONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar NEG_ONE = fromInt(-1);\r\n\r\n/**\r\n * Signed negative one.\r\n * @type {!Long}\r\n */\r\nLong.NEG_ONE = NEG_ONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MAX_VALUE = fromBits(0xFFFFFFFF|0, 0x7FFFFFFF|0, false);\r\n\r\n/**\r\n * Maximum signed value.\r\n * @type {!Long}\r\n */\r\nLong.MAX_VALUE = MAX_VALUE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MAX_UNSIGNED_VALUE = fromBits(0xFFFFFFFF|0, 0xFFFFFFFF|0, true);\r\n\r\n/**\r\n * Maximum unsigned value.\r\n * @type {!Long}\r\n */\r\nLong.MAX_UNSIGNED_VALUE = MAX_UNSIGNED_VALUE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MIN_VALUE = fromBits(0, 0x80000000|0, false);\r\n\r\n/**\r\n * Minimum signed value.\r\n * @type {!Long}\r\n */\r\nLong.MIN_VALUE = MIN_VALUE;\r\n\r\n/**\r\n * @alias Long.prototype\r\n * @inner\r\n */\r\nvar LongPrototype = Long.prototype;\r\n\r\n/**\r\n * Converts the Long to a 32 bit integer, assuming it is a 32 bit integer.\r\n * @returns {number}\r\n */\r\nLongPrototype.toInt = function toInt() {\r\n return this.unsigned ? this.low >>> 0 : this.low;\r\n};\r\n\r\n/**\r\n * Converts the Long to a the nearest floating-point representation of this value (double, 53 bit mantissa).\r\n * @returns {number}\r\n */\r\nLongPrototype.toNumber = function toNumber() {\r\n if (this.unsigned)\r\n return ((this.high >>> 0) * TWO_PWR_32_DBL) + (this.low >>> 0);\r\n return this.high * TWO_PWR_32_DBL + (this.low >>> 0);\r\n};\r\n\r\n/**\r\n * Converts the Long to a string written in the specified radix.\r\n * @param {number=} radix Radix (2-36), defaults to 10\r\n * @returns {string}\r\n * @override\r\n * @throws {RangeError} If `radix` is out of range\r\n */\r\nLongPrototype.toString = function toString(radix) {\r\n radix = radix || 10;\r\n if (radix < 2 || 36 < radix)\r\n throw RangeError('radix');\r\n if (this.isZero())\r\n return '0';\r\n if (this.isNegative()) { // Unsigned Longs are never negative\r\n if (this.eq(MIN_VALUE)) {\r\n // We need to change the Long value before it can be negated, so we remove\r\n // the bottom-most digit in this base and then recurse to do the rest.\r\n var radixLong = fromNumber(radix),\r\n div = this.div(radixLong),\r\n rem1 = div.mul(radixLong).sub(this);\r\n return div.toString(radix) + rem1.toInt().toString(radix);\r\n } else\r\n return '-' + this.neg().toString(radix);\r\n }\r\n\r\n // Do several (6) digits each time through the loop, so as to\r\n // minimize the calls to the very expensive emulated div.\r\n var radixToPower = fromNumber(pow_dbl(radix, 6), this.unsigned),\r\n rem = this;\r\n var result = '';\r\n while (true) {\r\n var remDiv = rem.div(radixToPower),\r\n intval = rem.sub(remDiv.mul(radixToPower)).toInt() >>> 0,\r\n digits = intval.toString(radix);\r\n rem = remDiv;\r\n if (rem.isZero())\r\n return digits + result;\r\n else {\r\n while (digits.length < 6)\r\n digits = '0' + digits;\r\n result = '' + digits + result;\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * Gets the high 32 bits as a signed integer.\r\n * @returns {number} Signed high bits\r\n */\r\nLongPrototype.getHighBits = function getHighBits() {\r\n return this.high;\r\n};\r\n\r\n/**\r\n * Gets the high 32 bits as an unsigned integer.\r\n * @returns {number} Unsigned high bits\r\n */\r\nLongPrototype.getHighBitsUnsigned = function getHighBitsUnsigned() {\r\n return this.high >>> 0;\r\n};\r\n\r\n/**\r\n * Gets the low 32 bits as a signed integer.\r\n * @returns {number} Signed low bits\r\n */\r\nLongPrototype.getLowBits = function getLowBits() {\r\n return this.low;\r\n};\r\n\r\n/**\r\n * Gets the low 32 bits as an unsigned integer.\r\n * @returns {number} Unsigned low bits\r\n */\r\nLongPrototype.getLowBitsUnsigned = function getLowBitsUnsigned() {\r\n return this.low >>> 0;\r\n};\r\n\r\n/**\r\n * Gets the number of bits needed to represent the absolute value of this Long.\r\n * @returns {number}\r\n */\r\nLongPrototype.getNumBitsAbs = function getNumBitsAbs() {\r\n if (this.isNegative()) // Unsigned Longs are never negative\r\n return this.eq(MIN_VALUE) ? 64 : this.neg().getNumBitsAbs();\r\n var val = this.high != 0 ? this.high : this.low;\r\n for (var bit = 31; bit > 0; bit--)\r\n if ((val & (1 << bit)) != 0)\r\n break;\r\n return this.high != 0 ? bit + 33 : bit + 1;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals zero.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isZero = function isZero() {\r\n return this.high === 0 && this.low === 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals zero. This is an alias of {@link Long#isZero}.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.eqz = LongPrototype.isZero;\r\n\r\n/**\r\n * Tests if this Long's value is negative.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isNegative = function isNegative() {\r\n return !this.unsigned && this.high < 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is positive.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isPositive = function isPositive() {\r\n return this.unsigned || this.high >= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is odd.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isOdd = function isOdd() {\r\n return (this.low & 1) === 1;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is even.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isEven = function isEven() {\r\n return (this.low & 1) === 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.equals = function equals(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n if (this.unsigned !== other.unsigned && (this.high >>> 31) === 1 && (other.high >>> 31) === 1)\r\n return false;\r\n return this.high === other.high && this.low === other.low;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals the specified's. This is an alias of {@link Long#equals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.eq = LongPrototype.equals;\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.notEquals = function notEquals(other) {\r\n return !this.eq(/* validates */ other);\r\n};\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.neq = LongPrototype.notEquals;\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.ne = LongPrototype.notEquals;\r\n\r\n/**\r\n * Tests if this Long's value is less than the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lessThan = function lessThan(other) {\r\n return this.comp(/* validates */ other) < 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is less than the specified's. This is an alias of {@link Long#lessThan}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lt = LongPrototype.lessThan;\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lessThanOrEqual = function lessThanOrEqual(other) {\r\n return this.comp(/* validates */ other) <= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lte = LongPrototype.lessThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.le = LongPrototype.lessThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is greater than the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.greaterThan = function greaterThan(other) {\r\n return this.comp(/* validates */ other) > 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is greater than the specified's. This is an alias of {@link Long#greaterThan}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.gt = LongPrototype.greaterThan;\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.greaterThanOrEqual = function greaterThanOrEqual(other) {\r\n return this.comp(/* validates */ other) >= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.gte = LongPrototype.greaterThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.ge = LongPrototype.greaterThanOrEqual;\r\n\r\n/**\r\n * Compares this Long's value with the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\r\n * if the given one is greater\r\n */\r\nLongPrototype.compare = function compare(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n if (this.eq(other))\r\n return 0;\r\n var thisNeg = this.isNegative(),\r\n otherNeg = other.isNegative();\r\n if (thisNeg && !otherNeg)\r\n return -1;\r\n if (!thisNeg && otherNeg)\r\n return 1;\r\n // At this point the sign bits are the same\r\n if (!this.unsigned)\r\n return this.sub(other).isNegative() ? -1 : 1;\r\n // Both are positive if at least one is unsigned\r\n return (other.high >>> 0) > (this.high >>> 0) || (other.high === this.high && (other.low >>> 0) > (this.low >>> 0)) ? -1 : 1;\r\n};\r\n\r\n/**\r\n * Compares this Long's value with the specified's. This is an alias of {@link Long#compare}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\r\n * if the given one is greater\r\n */\r\nLongPrototype.comp = LongPrototype.compare;\r\n\r\n/**\r\n * Negates this Long's value.\r\n * @returns {!Long} Negated Long\r\n */\r\nLongPrototype.negate = function negate() {\r\n if (!this.unsigned && this.eq(MIN_VALUE))\r\n return MIN_VALUE;\r\n return this.not().add(ONE);\r\n};\r\n\r\n/**\r\n * Negates this Long's value. This is an alias of {@link Long#negate}.\r\n * @function\r\n * @returns {!Long} Negated Long\r\n */\r\nLongPrototype.neg = LongPrototype.negate;\r\n\r\n/**\r\n * Returns the sum of this and the specified Long.\r\n * @param {!Long|number|string} addend Addend\r\n * @returns {!Long} Sum\r\n */\r\nLongPrototype.add = function add(addend) {\r\n if (!isLong(addend))\r\n addend = fromValue(addend);\r\n\r\n // Divide each number into 4 chunks of 16 bits, and then sum the chunks.\r\n\r\n var a48 = this.high >>> 16;\r\n var a32 = this.high & 0xFFFF;\r\n var a16 = this.low >>> 16;\r\n var a00 = this.low & 0xFFFF;\r\n\r\n var b48 = addend.high >>> 16;\r\n var b32 = addend.high & 0xFFFF;\r\n var b16 = addend.low >>> 16;\r\n var b00 = addend.low & 0xFFFF;\r\n\r\n var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\r\n c00 += a00 + b00;\r\n c16 += c00 >>> 16;\r\n c00 &= 0xFFFF;\r\n c16 += a16 + b16;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c32 += a32 + b32;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c48 += a48 + b48;\r\n c48 &= 0xFFFF;\r\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the difference of this and the specified Long.\r\n * @param {!Long|number|string} subtrahend Subtrahend\r\n * @returns {!Long} Difference\r\n */\r\nLongPrototype.subtract = function subtract(subtrahend) {\r\n if (!isLong(subtrahend))\r\n subtrahend = fromValue(subtrahend);\r\n return this.add(subtrahend.neg());\r\n};\r\n\r\n/**\r\n * Returns the difference of this and the specified Long. This is an alias of {@link Long#subtract}.\r\n * @function\r\n * @param {!Long|number|string} subtrahend Subtrahend\r\n * @returns {!Long} Difference\r\n */\r\nLongPrototype.sub = LongPrototype.subtract;\r\n\r\n/**\r\n * Returns the product of this and the specified Long.\r\n * @param {!Long|number|string} multiplier Multiplier\r\n * @returns {!Long} Product\r\n */\r\nLongPrototype.multiply = function multiply(multiplier) {\r\n if (this.isZero())\r\n return ZERO;\r\n if (!isLong(multiplier))\r\n multiplier = fromValue(multiplier);\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n var low = wasm.mul(this.low,\r\n this.high,\r\n multiplier.low,\r\n multiplier.high);\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n if (multiplier.isZero())\r\n return ZERO;\r\n if (this.eq(MIN_VALUE))\r\n return multiplier.isOdd() ? MIN_VALUE : ZERO;\r\n if (multiplier.eq(MIN_VALUE))\r\n return this.isOdd() ? MIN_VALUE : ZERO;\r\n\r\n if (this.isNegative()) {\r\n if (multiplier.isNegative())\r\n return this.neg().mul(multiplier.neg());\r\n else\r\n return this.neg().mul(multiplier).neg();\r\n } else if (multiplier.isNegative())\r\n return this.mul(multiplier.neg()).neg();\r\n\r\n // If both longs are small, use float multiplication\r\n if (this.lt(TWO_PWR_24) && multiplier.lt(TWO_PWR_24))\r\n return fromNumber(this.toNumber() * multiplier.toNumber(), this.unsigned);\r\n\r\n // Divide each long into 4 chunks of 16 bits, and then add up 4x4 products.\r\n // We can skip products that would overflow.\r\n\r\n var a48 = this.high >>> 16;\r\n var a32 = this.high & 0xFFFF;\r\n var a16 = this.low >>> 16;\r\n var a00 = this.low & 0xFFFF;\r\n\r\n var b48 = multiplier.high >>> 16;\r\n var b32 = multiplier.high & 0xFFFF;\r\n var b16 = multiplier.low >>> 16;\r\n var b00 = multiplier.low & 0xFFFF;\r\n\r\n var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\r\n c00 += a00 * b00;\r\n c16 += c00 >>> 16;\r\n c00 &= 0xFFFF;\r\n c16 += a16 * b00;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c16 += a00 * b16;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c32 += a32 * b00;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c32 += a16 * b16;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c32 += a00 * b32;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48;\r\n c48 &= 0xFFFF;\r\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the product of this and the specified Long. This is an alias of {@link Long#multiply}.\r\n * @function\r\n * @param {!Long|number|string} multiplier Multiplier\r\n * @returns {!Long} Product\r\n */\r\nLongPrototype.mul = LongPrototype.multiply;\r\n\r\n/**\r\n * Returns this Long divided by the specified. The result is signed if this Long is signed or\r\n * unsigned if this Long is unsigned.\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Quotient\r\n */\r\nLongPrototype.divide = function divide(divisor) {\r\n if (!isLong(divisor))\r\n divisor = fromValue(divisor);\r\n if (divisor.isZero())\r\n throw Error('division by zero');\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n // guard against signed division overflow: the largest\r\n // negative number / -1 would be 1 larger than the largest\r\n // positive number, due to two's complement.\r\n if (!this.unsigned &&\r\n this.high === -0x80000000 &&\r\n divisor.low === -1 && divisor.high === -1) {\r\n // be consistent with non-wasm code path\r\n return this;\r\n }\r\n var low = (this.unsigned ? wasm.div_u : wasm.div_s)(\r\n this.low,\r\n this.high,\r\n divisor.low,\r\n divisor.high\r\n );\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n if (this.isZero())\r\n return this.unsigned ? UZERO : ZERO;\r\n var approx, rem, res;\r\n if (!this.unsigned) {\r\n // This section is only relevant for signed longs and is derived from the\r\n // closure library as a whole.\r\n if (this.eq(MIN_VALUE)) {\r\n if (divisor.eq(ONE) || divisor.eq(NEG_ONE))\r\n return MIN_VALUE; // recall that -MIN_VALUE == MIN_VALUE\r\n else if (divisor.eq(MIN_VALUE))\r\n return ONE;\r\n else {\r\n // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|.\r\n var halfThis = this.shr(1);\r\n approx = halfThis.div(divisor).shl(1);\r\n if (approx.eq(ZERO)) {\r\n return divisor.isNegative() ? ONE : NEG_ONE;\r\n } else {\r\n rem = this.sub(divisor.mul(approx));\r\n res = approx.add(rem.div(divisor));\r\n return res;\r\n }\r\n }\r\n } else if (divisor.eq(MIN_VALUE))\r\n return this.unsigned ? UZERO : ZERO;\r\n if (this.isNegative()) {\r\n if (divisor.isNegative())\r\n return this.neg().div(divisor.neg());\r\n return this.neg().div(divisor).neg();\r\n } else if (divisor.isNegative())\r\n return this.div(divisor.neg()).neg();\r\n res = ZERO;\r\n } else {\r\n // The algorithm below has not been made for unsigned longs. It's therefore\r\n // required to take special care of the MSB prior to running it.\r\n if (!divisor.unsigned)\r\n divisor = divisor.toUnsigned();\r\n if (divisor.gt(this))\r\n return UZERO;\r\n if (divisor.gt(this.shru(1))) // 15 >>> 1 = 7 ; with divisor = 8 ; true\r\n return UONE;\r\n res = UZERO;\r\n }\r\n\r\n // Repeat the following until the remainder is less than other: find a\r\n // floating-point that approximates remainder / other *from below*, add this\r\n // into the result, and subtract it from the remainder. It is critical that\r\n // the approximate value is less than or equal to the real value so that the\r\n // remainder never becomes negative.\r\n rem = this;\r\n while (rem.gte(divisor)) {\r\n // Approximate the result of division. This may be a little greater or\r\n // smaller than the actual value.\r\n approx = Math.max(1, Math.floor(rem.toNumber() / divisor.toNumber()));\r\n\r\n // We will tweak the approximate result by changing it in the 48-th digit or\r\n // the smallest non-fractional digit, whichever is larger.\r\n var log2 = Math.ceil(Math.log(approx) / Math.LN2),\r\n delta = (log2 <= 48) ? 1 : pow_dbl(2, log2 - 48),\r\n\r\n // Decrease the approximation until it is smaller than the remainder. Note\r\n // that if it is too large, the product overflows and is negative.\r\n approxRes = fromNumber(approx),\r\n approxRem = approxRes.mul(divisor);\r\n while (approxRem.isNegative() || approxRem.gt(rem)) {\r\n approx -= delta;\r\n approxRes = fromNumber(approx, this.unsigned);\r\n approxRem = approxRes.mul(divisor);\r\n }\r\n\r\n // We know the answer can't be zero... and actually, zero would cause\r\n // infinite recursion since we would make no progress.\r\n if (approxRes.isZero())\r\n approxRes = ONE;\r\n\r\n res = res.add(approxRes);\r\n rem = rem.sub(approxRem);\r\n }\r\n return res;\r\n};\r\n\r\n/**\r\n * Returns this Long divided by the specified. This is an alias of {@link Long#divide}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Quotient\r\n */\r\nLongPrototype.div = LongPrototype.divide;\r\n\r\n/**\r\n * Returns this Long modulo the specified.\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.modulo = function modulo(divisor) {\r\n if (!isLong(divisor))\r\n divisor = fromValue(divisor);\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n var low = (this.unsigned ? wasm.rem_u : wasm.rem_s)(\r\n this.low,\r\n this.high,\r\n divisor.low,\r\n divisor.high\r\n );\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n return this.sub(this.div(divisor).mul(divisor));\r\n};\r\n\r\n/**\r\n * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.mod = LongPrototype.modulo;\r\n\r\n/**\r\n * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.rem = LongPrototype.modulo;\r\n\r\n/**\r\n * Returns the bitwise NOT of this Long.\r\n * @returns {!Long}\r\n */\r\nLongPrototype.not = function not() {\r\n return fromBits(~this.low, ~this.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise AND of this Long and the specified.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.and = function and(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low & other.low, this.high & other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise OR of this Long and the specified.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.or = function or(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low | other.low, this.high | other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise XOR of this Long and the given one.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.xor = function xor(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low ^ other.low, this.high ^ other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits shifted to the left by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftLeft = function shiftLeft(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n if ((numBits &= 63) === 0)\r\n return this;\r\n else if (numBits < 32)\r\n return fromBits(this.low << numBits, (this.high << numBits) | (this.low >>> (32 - numBits)), this.unsigned);\r\n else\r\n return fromBits(0, this.low << (numBits - 32), this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits shifted to the left by the given amount. This is an alias of {@link Long#shiftLeft}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shl = LongPrototype.shiftLeft;\r\n\r\n/**\r\n * Returns this Long with bits arithmetically shifted to the right by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftRight = function shiftRight(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n if ((numBits &= 63) === 0)\r\n return this;\r\n else if (numBits < 32)\r\n return fromBits((this.low >>> numBits) | (this.high << (32 - numBits)), this.high >> numBits, this.unsigned);\r\n else\r\n return fromBits(this.high >> (numBits - 32), this.high >= 0 ? 0 : -1, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits arithmetically shifted to the right by the given amount. This is an alias of {@link Long#shiftRight}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shr = LongPrototype.shiftRight;\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftRightUnsigned = function shiftRightUnsigned(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n numBits &= 63;\r\n if (numBits === 0)\r\n return this;\r\n else {\r\n var high = this.high;\r\n if (numBits < 32) {\r\n var low = this.low;\r\n return fromBits((low >>> numBits) | (high << (32 - numBits)), high >>> numBits, this.unsigned);\r\n } else if (numBits === 32)\r\n return fromBits(high, 0, this.unsigned);\r\n else\r\n return fromBits(high >>> (numBits - 32), 0, this.unsigned);\r\n }\r\n};\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shru = LongPrototype.shiftRightUnsigned;\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shr_u = LongPrototype.shiftRightUnsigned;\r\n\r\n/**\r\n * Converts this Long to signed.\r\n * @returns {!Long} Signed long\r\n */\r\nLongPrototype.toSigned = function toSigned() {\r\n if (!this.unsigned)\r\n return this;\r\n return fromBits(this.low, this.high, false);\r\n};\r\n\r\n/**\r\n * Converts this Long to unsigned.\r\n * @returns {!Long} Unsigned long\r\n */\r\nLongPrototype.toUnsigned = function toUnsigned() {\r\n if (this.unsigned)\r\n return this;\r\n return fromBits(this.low, this.high, true);\r\n};\r\n\r\n/**\r\n * Converts this Long to its byte representation.\r\n * @param {boolean=} le Whether little or big endian, defaults to big endian\r\n * @returns {!Array.} Byte representation\r\n */\r\nLongPrototype.toBytes = function toBytes(le) {\r\n return le ? this.toBytesLE() : this.toBytesBE();\r\n};\r\n\r\n/**\r\n * Converts this Long to its little endian byte representation.\r\n * @returns {!Array.} Little endian byte representation\r\n */\r\nLongPrototype.toBytesLE = function toBytesLE() {\r\n var hi = this.high,\r\n lo = this.low;\r\n return [\r\n lo & 0xff,\r\n lo >>> 8 & 0xff,\r\n lo >>> 16 & 0xff,\r\n lo >>> 24 ,\r\n hi & 0xff,\r\n hi >>> 8 & 0xff,\r\n hi >>> 16 & 0xff,\r\n hi >>> 24\r\n ];\r\n};\r\n\r\n/**\r\n * Converts this Long to its big endian byte representation.\r\n * @returns {!Array.} Big endian byte representation\r\n */\r\nLongPrototype.toBytesBE = function toBytesBE() {\r\n var hi = this.high,\r\n lo = this.low;\r\n return [\r\n hi >>> 24 ,\r\n hi >>> 16 & 0xff,\r\n hi >>> 8 & 0xff,\r\n hi & 0xff,\r\n lo >>> 24 ,\r\n lo >>> 16 & 0xff,\r\n lo >>> 8 & 0xff,\r\n lo & 0xff\r\n ];\r\n};\r\n\r\n/**\r\n * Creates a Long from its byte representation.\r\n * @param {!Array.} bytes Byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @param {boolean=} le Whether little or big endian, defaults to big endian\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytes = function fromBytes(bytes, unsigned, le) {\r\n return le ? Long.fromBytesLE(bytes, unsigned) : Long.fromBytesBE(bytes, unsigned);\r\n};\r\n\r\n/**\r\n * Creates a Long from its little endian byte representation.\r\n * @param {!Array.} bytes Little endian byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytesLE = function fromBytesLE(bytes, unsigned) {\r\n return new Long(\r\n bytes[0] |\r\n bytes[1] << 8 |\r\n bytes[2] << 16 |\r\n bytes[3] << 24,\r\n bytes[4] |\r\n bytes[5] << 8 |\r\n bytes[6] << 16 |\r\n bytes[7] << 24,\r\n unsigned\r\n );\r\n};\r\n\r\n/**\r\n * Creates a Long from its big endian byte representation.\r\n * @param {!Array.} bytes Big endian byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytesBE = function fromBytesBE(bytes, unsigned) {\r\n return new Long(\r\n bytes[4] << 24 |\r\n bytes[5] << 16 |\r\n bytes[6] << 8 |\r\n bytes[7],\r\n bytes[0] << 24 |\r\n bytes[1] << 16 |\r\n bytes[2] << 8 |\r\n bytes[3],\r\n unsigned\r\n );\r\n};\r\n","/*\n *\n * Hedera Wallet Connect\n *\n * Copyright (C) 2023 Hedera Hashgraph, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nimport { Buffer } from 'buffer';\nimport { AccountId, Transaction, LedgerId, Query, } from '@hashgraph/sdk';\nimport { proto } from '@hashgraph/proto';\n/**\n * Freezes a transaction if it is not already frozen. Transactions must\n * be frozen before they can be converted to bytes.\n *\n * @param transaction - Any instance of a class that extends `Transaction`\n */\nexport function freezeTransaction(transaction) {\n if (!transaction.isFrozen())\n transaction.freeze();\n}\n/**\n * Sets default consensus nodes that a transaction will be submitted to. Node Account ID(s)\n * must be set before a transaction can be frozen. If they have already been set, this\n * function will not modify the transaction.\n * @param transaction - any instance of a class that extends `Transaction`\n *\n * @see {@link https://docs.hedera.com/hedera/networks/testnet/testnet-nodes | Full list of Testnet-nodes}\n * @see {@link https://docs.hedera.com/hedera/networks/mainnet/mainnet-nodes | Full list of Mainnet-nodes}\n */\nexport function setDefaultNodeAccountIds(transaction) {\n const isNodeAccountIdNotSet = !transaction.nodeAccountIds || transaction.nodeAccountIds.length === 0;\n if (!transaction.isFrozen() && isNodeAccountIdNotSet)\n transaction.setNodeAccountIds([new AccountId(3), new AccountId(4), new AccountId(5)]);\n}\n/**\n * Converts `Transaction` to a Base64-string.\n *\n * First converts a transaction to bytes and then encodes it as a Base64-string. Will attempt\n * to set default Node Account ID and freeze the transaction before converting.\n * @param transaction - Any instance of a class that extends `Transaction`\n * @returns Base64 encoded representation of the input `Transaction` object\n */\nexport function transactionToBase64String(transaction) {\n setDefaultNodeAccountIds(transaction);\n freezeTransaction(transaction);\n const transactionBytes = transaction.toBytes();\n return Buffer.from(transactionBytes).toString('base64');\n}\n/**\n * Recreates a `Transaction` from a base64 encoded string.\n *\n * Decodes the string to a buffer,\n * then passes to `Transaction.fromBytes`. For greater flexibility, this function uses the base\n * `Transaction` class, but takes an optional type parameter if the type of transaction is known,\n * allowing stronger typeing.\n * @param transactionBytes - a base64 encoded string\n * @returns `Transaction`\n * @example\n * ```ts\n * const txn1 = base64StringToTransaction(bytesString)\n * const txn2 = base64StringToTransaction(bytesString)\n * // txn1 type: Transaction\n * // txn2 type: TransferTransaction\n * ```\n */\nexport function base64StringToTransaction(transactionBytes) {\n const decoded = Buffer.from(transactionBytes, 'base64');\n return Transaction.fromBytes(decoded);\n}\n/**\n * @param transaction - a base64 encoded string of proto.TransactionBody.encode().finish()\n * @returns `string`\n * */\nexport function transactionToTransactionBody(transaction, nodeAccountId) {\n // This is a private function, though provides the capabilities to construct a proto.TransactionBody\n //@ts-ignore\n return transaction._makeTransactionBody(nodeAccountId);\n}\nexport function transactionBodyToBase64String(transactionBody) {\n return Uint8ArrayToBase64String(proto.TransactionBody.encode(transactionBody).finish());\n}\n/**\n * @param transactionList - a proto.TransactionList object\n * @returns `string`\n * */\nexport function transactionListToBase64String(transactionList) {\n const encoded = proto.TransactionList.encode(transactionList).finish();\n return Uint8ArrayToBase64String(encoded);\n}\n/**\n * Extracts the first signature from a proto.SignatureMap object.\n * @param signatureMap - a proto.SignatureMap object\n * @returns `Uint8Array`\n * */\nexport const extractFirstSignature = (signatureMap) => {\n var _a;\n const firstPair = (_a = signatureMap === null || signatureMap === void 0 ? void 0 : signatureMap.sigPair) === null || _a === void 0 ? void 0 : _a[0];\n const firstSignature = (firstPair === null || firstPair === void 0 ? void 0 : firstPair.ed25519) || (firstPair === null || firstPair === void 0 ? void 0 : firstPair.ECDSASecp256k1) || (firstPair === null || firstPair === void 0 ? void 0 : firstPair.ECDSA_384);\n if (!firstSignature) {\n throw new Error('No signatures found in response');\n }\n return firstSignature;\n};\n/**\n * Decodes base64 encoded proto.TransactionBody bytes to a `proto.TransactionBody` object.\n *\n * @param transactionBody - a base64 encoded string of proto.TransactionBody.encode().finish()\n * @returns `Transaction`\n *\n * */\nexport function base64StringToTransactionBody(transactionBody) {\n const bytes = Buffer.from(transactionBody, 'base64');\n return proto.TransactionBody.decode(bytes);\n}\n/**\n * Converts a `proto.SignatureMap` to a base64 encoded string.\n *\n * First converts the `proto.SignatureMap` object to a JSON.\n * Then encodes the JSON to a base64 encoded string.\n * @param signatureMap - The `proto.SignatureMap` object to be converted\n * @returns Base64-encoded string representation of the input `proto.SignatureMap`\n */\nexport function signatureMapToBase64String(signatureMap) {\n const encoded = proto.SignatureMap.encode(signatureMap).finish();\n return Uint8ArrayToBase64String(encoded);\n}\n/**\n * Converts a Base64-encoded string to a `proto.SignatureMap`.\n * @param base64string - Base64-encoded string\n * @returns `proto.SignatureMap`\n */\nexport function base64StringToSignatureMap(base64string) {\n const encoded = Buffer.from(base64string, 'base64');\n return proto.SignatureMap.decode(encoded);\n}\n/**\n * Encodes the binary data represented by the `Uint8Array` to a Base64 string.\n * @param binary - The `Uint8Array` containing binary data to be converted\n * @returns Base64-encoded string representation of the input `Uint8Array`\n */\nexport function Uint8ArrayToBase64String(binary) {\n return Buffer.from(binary).toString('base64');\n}\n/**\n * Encodes the binary data represented by the `Uint8Array` to a UTF-8 string.\n * @param binary - The `Uint8Array` containing binary data to be converted\n * @returns UTF-8 string representation of the input `Uint8Array`\n */\nexport function Uint8ArrayToString(binary) {\n return Buffer.from(binary).toString('utf-8');\n}\n/**\n * Converts a Base64-encoded string to a `Uint8Array`.\n * @param base64string - Base64-encoded string to be converted\n * @returns A `Uint8Array` representing the decoded binary data\n */\nexport function base64StringToUint8Array(base64string) {\n const encoded = Buffer.from(base64string, 'base64');\n return new Uint8Array(encoded);\n}\n/**\n * Converts a `Query` object to a Base64-encoded string.\n * First utilizes the `toBytes` method of the `Query` instance to obtain its binary `Uint8Array` representation.\n * Then encodes the binary `Uint8Array` to a Base64 string representation.\n * @param query - A `Query` object to be converted\n * @returns Base64 encoded representation of the input `Query` object\n */\nexport function queryToBase64String(query) {\n const queryBytes = query.toBytes();\n return Buffer.from(queryBytes).toString('base64');\n}\n/**\n * Recreates a `Query` from a Base64-encoded string. First decodes the string to a buffer,\n * then passes to `Query.fromBytes`. For greater flexibility, this function uses the base\n * `Query` class, but takes an optional type parameter if the type of query is known,\n * allowing stronger typeing.\n * @param bytesString - Base64-encoded string\n * @returns `Query`\n * @example\n * ```ts\n * const query1 = base64StringToQuery(bytesString)\n * const query2 = base64StringToQuery(bytesString)\n * // query1 type: Query\n * // query2 type: AccountInfoQuery\n * ```\n */\nexport function base64StringToQuery(bytesString) {\n const decoded = Buffer.from(bytesString, 'base64');\n return Query.fromBytes(decoded);\n}\nexport function prefixMessageToSign(message) {\n return '\\x19Hedera Signed Message:\\n' + message.length + message;\n}\n/**\n * Incorporates additional data (salt) into the message to alter the output signature.\n * This alteration ensures that passing a transaction here for signing will yield an invalid signature,\n * as the additional data modifies the signature text.\n *\n * @param message - A plain text string\n * @returns An array of Uint8Array containing the prepared message for signing\n */\nexport function stringToSignerMessage(message) {\n return [Buffer.from(prefixMessageToSign(message))];\n}\n/**\n * This implementation expects a plain text string, which is prefixed and then signed by a wallet.\n * Because the spec calls for 1 message to be signed and 1 signer, this function expects a single\n * signature and used the first item in the sigPair array.\n *\n * @param message - A plain text string\n * @param base64SignatureMap - A base64 encoded proto.SignatureMap object\n * @param publicKey - A PublicKey object use to verify the signature\n * @returns boolean - whether or not the first signature in the sigPair is valid for the message and public key\n */\nexport function verifyMessageSignature(message, base64SignatureMap, publicKey) {\n const signatureMap = base64StringToSignatureMap(base64SignatureMap);\n const signature = signatureMap.sigPair[0].ed25519 || signatureMap.sigPair[0].ECDSASecp256k1;\n if (!signature)\n throw new Error('Signature not found in signature map');\n return publicKey.verify(Buffer.from(prefixMessageToSign(message)), signature);\n}\n/**\n * This implementation expects a plain text string, which is prefixed and then signed by a wallet.\n * Because the spec calls for 1 message to be signed and 1 signer, this function expects a single\n * signature and used the first item in the sigPair array.\n *\n * @param message - A plain text string\n * @param signerSignature - A SignerSignature object\n * @param publicKey - A PublicKey object use to verify the signature\n * @returns boolean - whether or not the first signature in the sigPair is valid for the message and public key\n */\nexport function verifySignerSignature(message, signerSignature, publicKey) {\n const signature = signerSignature.signature;\n if (!signature)\n throw new Error('Signature not found in signature map');\n return publicKey.verify(Buffer.from(prefixMessageToSign(message)), signature);\n}\n/**\n *\n * https://github.com/hashgraph/hedera-sdk-js/blob/c78512b1d43eedf1d8bf2926a5b7ed3368fc39d1/src/PublicKey.js#L258\n * a signature pair is a protobuf object with a signature and a public key, it is the responsibility of a dApp to ensure the public key matches the account id\n * @param signerSignatures - An array of `SignerSignature` objects\n * @returns `proto.SignatureMap` object\n */\nexport function signerSignaturesToSignatureMap(signerSignatures) {\n const signatureMap = proto.SignatureMap.create({\n sigPair: signerSignatures.map((s) => s.publicKey._toProtobufSignature(s.signature)),\n });\n return signatureMap;\n}\n/**\n * A mapping of `LedgerId` to EIP chain id and CAIP-2 network name.\n *\n * Structure: [`LedgerId`, `number` (EIP155 chain id), `string` (CAIP-2 chain id)][]\n *\n * @see {@link https://namespaces.chainagnostic.org/hedera/README | Hedera Namespaces}\n * @see {@link https://hips.hedera.com/hip/hip-30 | CAIP Identifiers for the Hedera Network (HIP-30)}\n */\nexport const LEDGER_ID_MAPPINGS = [\n [LedgerId.MAINNET, 295, 'hedera:mainnet'],\n [LedgerId.TESTNET, 296, 'hedera:testnet'],\n [LedgerId.PREVIEWNET, 297, 'hedera:previewnet'],\n [LedgerId.LOCAL_NODE, 298, 'hedera:devnet'],\n];\nconst DEFAULT_LEDGER_ID = LedgerId.LOCAL_NODE;\nconst DEFAULT_EIP = LEDGER_ID_MAPPINGS[3][1];\nconst DEFAULT_CAIP = LEDGER_ID_MAPPINGS[3][2];\n/**\n * Converts an EIP chain id to a LedgerId object.\n *\n * If no mapping is found, returns `LedgerId.LOCAL_NODE`.\n *\n * @param chainId - The EIP chain ID (number) to be converted\n * @returns A `LedgerId` corresponding to the provided chain ID\n * @example\n * ```ts\n * const localnodeLedgerId = EIPChainIdToLedgerId(298)\n * console.log(localnodeLedgerId) // LedgerId.LOCAL_NODE\n * const mainnetLedgerId = EIPChainIdToLedgerId(295)\n * console.log(mainnetLedgerId) // LedgerId.MAINNET\n * ```\n */\nexport function EIPChainIdToLedgerId(chainId) {\n for (let i = 0; i < LEDGER_ID_MAPPINGS.length; i++) {\n const [ledgerId, chainId_] = LEDGER_ID_MAPPINGS[i];\n if (chainId === chainId_) {\n return ledgerId;\n }\n }\n return DEFAULT_LEDGER_ID;\n}\n/**\n * Converts a LedgerId object to an EIP chain id.\n *\n * If no mapping is found, returns the EIP chain id for `LedgerId.LOCAL_NODE`.\n *\n * @param ledgerId - The `LedgerId` object to be converted\n * @returns A `number` representing the EIP chain id for the provided `LedgerId`\n * @example\n * ```ts\n * const previewnetChainId = ledgerIdToEIPChainId(LedgerId.PREVIEWNET)\n * console.log(previewnetChainId) // 297\n * const testnetChainId = ledgerIdToEIPChainId(LedgerId.TESTNET)\n * console.log(testnetChainId) // 296\n * ```\n */\nexport function ledgerIdToEIPChainId(ledgerId) {\n for (let i = 0; i < LEDGER_ID_MAPPINGS.length; i++) {\n const [ledgerId_, chainId] = LEDGER_ID_MAPPINGS[i];\n if (ledgerId === ledgerId_) {\n return chainId;\n }\n }\n return DEFAULT_EIP;\n}\n/**\n * Converts a network name to an EIP chain id.\n * If no mapping is found, returns the EIP chain id for `LedgerId.LOCAL_NODE`.\n *\n * @param networkName - The network name (string) to be converted\n * @returns A `number` representing the EIP chain id for the provided network name\n * @example\n * ```ts\n * const mainnetChainId = networkNameToEIPChainId('mainnet')\n * console.log(mainnetChainId) // 295\n * const testnetChainId = networkNameToEIPChainId('testnet')\n * console.log(mainnetChainId) // 296\n * ```\n */\nexport function networkNameToEIPChainId(networkName) {\n const ledgerId = LedgerId.fromString(networkName.toLowerCase());\n return ledgerIdToEIPChainId(ledgerId);\n}\n/**\n * Converts a CAIP chain id to a LedgerId object.\n *\n * If no mapping is found, returns `LedgerId.LOCAL_NODE`.\n *\n * @param chainId - The CAIP chain ID (string) to be converted\n * @returns A `LedgerId` corresponding to the provided CAIP chain ID\n * @example\n * ```ts\n * const previewnetLedgerId = CAIPChainIdToLedgerId(HederaChainId.Previewnet)\n * console.log(previewnetLedgerId) // LedgerId.PREVIEWNET\n * const testnetLedgerId = CAIPChainIdToLedgerId(HederaChainId.Testnet)\n * console.log(testnetLedgerId) // LedgerId.TESTNET\n * ```\n */\nexport function CAIPChainIdToLedgerId(chainId) {\n for (let i = 0; i < LEDGER_ID_MAPPINGS.length; i++) {\n const [ledgerId, _, chainId_] = LEDGER_ID_MAPPINGS[i];\n if (chainId === chainId_) {\n return ledgerId;\n }\n }\n return DEFAULT_LEDGER_ID;\n}\n/**\n * Converts a LedgerId object to a CAIP chain id.\n *\n * If no mapping is found, returns the CAIP chain id for `LedgerId.LOCAL_NODE`.\n *\n * @param ledgerId - The `LedgerId` object to be converted\n * @returns A `string` representing the CAIP chain id for the provided `LedgerId`\n * @example\n * ```ts\n * const mainnetChainId = ledgerIdToCAIPChainId(HederaChainId.Mainnet)\n * console.log(mainnetChainId) // LedgerId.PREVIEWNET\n * const testnetChainId = ledgerIdToCAIPChainId(HederaChainId.Testnet)\n * console.log(testnetChainId) // LedgerId.TESTNET\n * ```\n */\nexport function ledgerIdToCAIPChainId(ledgerId) {\n for (let i = 0; i < LEDGER_ID_MAPPINGS.length; i++) {\n const [ledgerId_, _, chainId] = LEDGER_ID_MAPPINGS[i];\n if (ledgerId.toString() === ledgerId_.toString()) {\n return chainId;\n }\n }\n return DEFAULT_CAIP;\n}\n/**\n * Converts a network name to a CAIP chain id.\n *\n * If no mapping is found, returns the CAIP chain id for `LedgerId.LOCAL_NODE`.\n *\n * @param networkName - The network name (string) to be converted\n * @returns A `string` representing the CAIP chain id for the provided network name\n * @example\n * ```ts\n * const previewnetChainId = networkNameToCAIPChainId('previewnet')\n * console.log(previewnetChainId) // HederaChainId.Previewnet\n * const devnetChainId = networkNameToCAIPChainId('devnet')\n * console.log(devnetChainId) // HederaChainId.Devnet\n * ```\n */\nexport function networkNameToCAIPChainId(networkName) {\n const ledgerId = LedgerId.fromString(networkName.toLowerCase());\n const chainId = ledgerIdToCAIPChainId(ledgerId);\n return chainId;\n}\n/**\n * Create a `ProposalTypes.RequiredNamespaces` object for a given ledgerId.\n *\n * @param ledgerId - The `LedgerId` for which the namespaces are created\n * @param methods - An array of strings representing methods\n * @param events - An array of strings representing events\n * @returns A `ProposalTypes.RequiredNamespaces` object\n */\nexport const networkNamespaces = (ledgerId, methods, events) => ({\n hedera: {\n chains: [ledgerIdToCAIPChainId(ledgerId)],\n methods,\n events,\n },\n});\n/**\n * Get the account and ledger from a `SessionTypes.Struct` object.\n *\n * @param session - The `SessionTypes.Struct` object containing namespaces\n * @returns `ProposalTypes.RequiredNamespaces` - an array of objects containing network (LedgerId) and account (AccountId)\n */\nexport const accountAndLedgerFromSession = (session) => {\n const hederaNamespace = session.namespaces.hedera;\n if (!hederaNamespace)\n throw new Error('No hedera namespace found');\n return hederaNamespace.accounts.map((account) => {\n const [chain, network, acc] = account.split(':');\n return {\n network: CAIPChainIdToLedgerId(chain + ':' + network),\n account: AccountId.fromString(acc),\n };\n });\n};\n","\"use strict\";var $protobuf=_interopRequireWildcard(require(\"protobufjs/minimal\"));Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.proto=exports.google=exports.default=exports.com=void 0;function _getRequireWildcardCache(o){if(\"function\"!=typeof WeakMap)return null;var n=new WeakMap,r=new WeakMap;return(_getRequireWildcardCache=function(o){return o?r:n})(o)}function _interopRequireWildcard(o,e){if(!e&&o&&o.__esModule)return o;if(null===o||\"object\"!=typeof o&&\"function\"!=typeof o)return{default:o};var r=_getRequireWildcardCache(e);if(r&&r.has(o))return r.get(o);var t={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var d in o)if(\"default\"!=d&&Object.prototype.hasOwnProperty.call(o,d)){var a=n?Object.getOwnPropertyDescriptor(o,d):null;a&&(a.get||a.set)?Object.defineProperty(t,d,a):t[d]=o[d]}return t.default=o,r&&r.set(o,t),t}const $Reader=$protobuf.Reader,$Writer=$protobuf.Writer,$util=$protobuf.util,$root=$protobuf.roots.hashgraph||($protobuf.roots.hashgraph={});exports.default=$root;const com=$root.com=(()=>{const e={hedera:function(){const e={mirror:function(){const e={api:function(){const e={proto:function(){const e={ConsensusTopicQuery:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.topicID=$root.proto.TopicID.decode(e,e.uint32());break}case 2:{d.consensusStartTime=$root.proto.Timestamp.decode(e,e.uint32());break}case 3:{d.consensusEndTime=$root.proto.Timestamp.decode(e,e.uint32());break}case 4:{d.limit=e.uint64();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/com.hedera.mirror.api.proto.ConsensusTopicQuery\"},e}(),ConsensusTopicResponse:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.consensusTimestamp=$root.proto.Timestamp.decode(e,e.uint32());break}case 2:{d.message=e.bytes();break}case 3:{d.runningHash=e.bytes();break}case 4:{d.sequenceNumber=e.uint64();break}case 5:{d.runningHashVersion=e.uint64();break}case 6:{d.chunkInfo=$root.proto.ConsensusMessageChunkInfo.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/com.hedera.mirror.api.proto.ConsensusTopicResponse\"},e}(),ConsensusService:function(){function e(e,o,t){$protobuf.rpc.Service.call(this,e,o,t)}return(e.prototype=Object.create($protobuf.rpc.Service.prototype)).constructor=e,e.create=function(e,o,t){return new this(e,o,t)},Object.defineProperty(e.prototype.subscribeTopic=function t(e,o){return this.rpcCall(t,$root.com.hedera.mirror.api.proto.ConsensusTopicQuery,$root.com.hedera.mirror.api.proto.ConsensusTopicResponse,e,o)},\"name\",{value:\"subscribeTopic\"}),e}(),AddressBookQuery:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.fileId=$root.proto.FileID.decode(e,e.uint32());break}case 2:{d.limit=e.int32();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/com.hedera.mirror.api.proto.AddressBookQuery\"},e}(),NetworkService:function(){function e(e,o,t){$protobuf.rpc.Service.call(this,e,o,t)}return(e.prototype=Object.create($protobuf.rpc.Service.prototype)).constructor=e,e.create=function(e,o,t){return new this(e,o,t)},Object.defineProperty(e.prototype.getNodes=function t(e,o){return this.rpcCall(t,$root.com.hedera.mirror.api.proto.AddressBookQuery,$root.proto.NodeAddress,e,o)},\"name\",{value:\"getNodes\"}),e}()};return e}()};return e}()};return e}()};return e}()};return e})();exports.com=com;const proto=$root.proto=(()=>{const e={TransactionList:function(){function e(e){if(this.transactionList=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.transactionList&&d.transactionList.length||(d.transactionList=[]),d.transactionList.push($root.proto.Transaction.decode(e,e.uint32()));break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.TransactionList\"},e}(),AddressBookService:function(){function e(e,o,t){$protobuf.rpc.Service.call(this,e,o,t)}return(e.prototype=Object.create($protobuf.rpc.Service.prototype)).constructor=e,e.create=function(e,o,t){return new this(e,o,t)},Object.defineProperty(e.prototype.createNode=function t(e,o){return this.rpcCall(t,$root.proto.Transaction,$root.proto.TransactionResponse,e,o)},\"name\",{value:\"createNode\"}),Object.defineProperty(e.prototype.deleteNode=function t(e,o){return this.rpcCall(t,$root.proto.Transaction,$root.proto.TransactionResponse,e,o)},\"name\",{value:\"deleteNode\"}),Object.defineProperty(e.prototype.updateNode=function t(e,o){return this.rpcCall(t,$root.proto.Transaction,$root.proto.TransactionResponse,e,o)},\"name\",{value:\"updateNode\"}),Object.defineProperty(e.prototype.getNodeInfo=function t(e,o){return this.rpcCall(t,$root.proto.Query,$root.proto.Response,e,o)},\"name\",{value:\"getNodeInfo\"}),e}(),Query:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.getByKey=$root.proto.GetByKeyQuery.decode(e,e.uint32());break}case 2:{d.getBySolidityID=$root.proto.GetBySolidityIDQuery.decode(e,e.uint32());break}case 3:{d.contractCallLocal=$root.proto.ContractCallLocalQuery.decode(e,e.uint32());break}case 4:{d.contractGetInfo=$root.proto.ContractGetInfoQuery.decode(e,e.uint32());break}case 5:{d.contractGetBytecode=$root.proto.ContractGetBytecodeQuery.decode(e,e.uint32());break}case 6:{d.ContractGetRecords=$root.proto.ContractGetRecordsQuery.decode(e,e.uint32());break}case 7:{d.cryptogetAccountBalance=$root.proto.CryptoGetAccountBalanceQuery.decode(e,e.uint32());break}case 8:{d.cryptoGetAccountRecords=$root.proto.CryptoGetAccountRecordsQuery.decode(e,e.uint32());break}case 9:{d.cryptoGetInfo=$root.proto.CryptoGetInfoQuery.decode(e,e.uint32());break}case 10:{d.cryptoGetLiveHash=$root.proto.CryptoGetLiveHashQuery.decode(e,e.uint32());break}case 11:{d.cryptoGetProxyStakers=$root.proto.CryptoGetStakersQuery.decode(e,e.uint32());break}case 12:{d.fileGetContents=$root.proto.FileGetContentsQuery.decode(e,e.uint32());break}case 13:{d.fileGetInfo=$root.proto.FileGetInfoQuery.decode(e,e.uint32());break}case 14:{d.transactionGetReceipt=$root.proto.TransactionGetReceiptQuery.decode(e,e.uint32());break}case 15:{d.transactionGetRecord=$root.proto.TransactionGetRecordQuery.decode(e,e.uint32());break}case 16:{d.transactionGetFastRecord=$root.proto.TransactionGetFastRecordQuery.decode(e,e.uint32());break}case 50:{d.consensusGetTopicInfo=$root.proto.ConsensusGetTopicInfoQuery.decode(e,e.uint32());break}case 51:{d.networkGetVersionInfo=$root.proto.NetworkGetVersionInfoQuery.decode(e,e.uint32());break}case 52:{d.tokenGetInfo=$root.proto.TokenGetInfoQuery.decode(e,e.uint32());break}case 53:{d.scheduleGetInfo=$root.proto.ScheduleGetInfoQuery.decode(e,e.uint32());break}case 54:{d.tokenGetAccountNftInfos=$root.proto.TokenGetAccountNftInfosQuery.decode(e,e.uint32());break}case 55:{d.tokenGetNftInfo=$root.proto.TokenGetNftInfoQuery.decode(e,e.uint32());break}case 56:{d.tokenGetNftInfos=$root.proto.TokenGetNftInfosQuery.decode(e,e.uint32());break}case 57:{d.networkGetExecutionTime=$root.proto.NetworkGetExecutionTimeQuery.decode(e,e.uint32());break}case 58:{d.accountDetails=$root.proto.GetAccountDetailsQuery.decode(e,e.uint32());break}case 59:{d.nodeGetInfo=$root.proto.NodeGetInfoQuery.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.Query\"},e}(),GetByKeyQuery:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.QueryHeader.decode(e,e.uint32());break}case 2:{d.key=$root.proto.Key.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.GetByKeyQuery\"},e}(),EntityID:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.accountID=$root.proto.AccountID.decode(e,e.uint32());break}case 2:{d.liveHash=$root.proto.LiveHash.decode(e,e.uint32());break}case 3:{d.fileID=$root.proto.FileID.decode(e,e.uint32());break}case 4:{d.contractID=$root.proto.ContractID.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.EntityID\"},e}(),GetByKeyResponse:function(){function e(e){if(this.entities=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.ResponseHeader.decode(e,e.uint32());break}case 2:{d.entities&&d.entities.length||(d.entities=[]),d.entities.push($root.proto.EntityID.decode(e,e.uint32()));break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.GetByKeyResponse\"},e}(),ShardID:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.shardNum=e.int64();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.ShardID\"},e}(),RealmID:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.shardNum=e.int64();break}case 2:{d.realmNum=e.int64();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.RealmID\"},e}(),AccountID:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.shardNum=e.int64();break}case 2:{d.realmNum=e.int64();break}case 3:{d.accountNum=e.int64();break}case 4:{d.alias=e.bytes();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.AccountID\"},e}(),NftID:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.token_ID=$root.proto.TokenID.decode(e,e.uint32());break}case 2:{d.serialNumber=e.int64();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.NftID\"},e}(),FileID:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.shardNum=e.int64();break}case 2:{d.realmNum=e.int64();break}case 3:{d.fileNum=e.int64();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.FileID\"},e}(),ContractID:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.shardNum=e.int64();break}case 2:{d.realmNum=e.int64();break}case 3:{d.contractNum=e.int64();break}case 4:{d.evmAddress=e.bytes();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.ContractID\"},e}(),TransactionID:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.transactionValidStart=$root.proto.Timestamp.decode(e,e.uint32());break}case 2:{d.accountID=$root.proto.AccountID.decode(e,e.uint32());break}case 3:{d.scheduled=e.bool();break}case 4:{d.nonce=e.int32();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.TransactionID\"},e}(),AccountAmount:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.accountID=$root.proto.AccountID.decode(e,e.uint32());break}case 2:{d.amount=e.sint64();break}case 3:{d.isApproval=e.bool();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.AccountAmount\"},e}(),TransferList:function(){function e(e){if(this.accountAmounts=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.accountAmounts&&d.accountAmounts.length||(d.accountAmounts=[]),d.accountAmounts.push($root.proto.AccountAmount.decode(e,e.uint32()));break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.TransferList\"},e}(),NftTransfer:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.senderAccountID=$root.proto.AccountID.decode(e,e.uint32());break}case 2:{d.receiverAccountID=$root.proto.AccountID.decode(e,e.uint32());break}case 3:{d.serialNumber=e.int64();break}case 4:{d.isApproval=e.bool();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.NftTransfer\"},e}(),TokenTransferList:function(){function e(e){if(this.transfers=[],this.nftTransfers=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.token=$root.proto.TokenID.decode(e,e.uint32());break}case 2:{d.transfers&&d.transfers.length||(d.transfers=[]),d.transfers.push($root.proto.AccountAmount.decode(e,e.uint32()));break}case 3:{d.nftTransfers&&d.nftTransfers.length||(d.nftTransfers=[]),d.nftTransfers.push($root.proto.NftTransfer.decode(e,e.uint32()));break}case 4:{d.expectedDecimals=$root.google.protobuf.UInt32Value.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.TokenTransferList\"},e}(),Fraction:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.numerator=e.int64();break}case 2:{d.denominator=e.int64();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.Fraction\"},e}(),TopicID:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.shardNum=e.int64();break}case 2:{d.realmNum=e.int64();break}case 3:{d.topicNum=e.int64();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.TopicID\"},e}(),TokenID:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.shardNum=e.int64();break}case 2:{d.realmNum=e.int64();break}case 3:{d.tokenNum=e.int64();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.TokenID\"},e}(),ScheduleID:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.shardNum=e.int64();break}case 2:{d.realmNum=e.int64();break}case 3:{d.scheduleNum=e.int64();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.ScheduleID\"},e}(),TokenType:function(){const e={},o=Object.create(e);return o[e[0]=\"FUNGIBLE_COMMON\"]=0,o[e[1]=\"NON_FUNGIBLE_UNIQUE\"]=1,o}(),SubType:function(){const e={},o=Object.create(e);return o[e[0]=\"DEFAULT\"]=0,o[e[1]=\"TOKEN_FUNGIBLE_COMMON\"]=1,o[e[2]=\"TOKEN_NON_FUNGIBLE_UNIQUE\"]=2,o[e[3]=\"TOKEN_FUNGIBLE_COMMON_WITH_CUSTOM_FEES\"]=3,o[e[4]=\"TOKEN_NON_FUNGIBLE_UNIQUE_WITH_CUSTOM_FEES\"]=4,o[e[5]=\"SCHEDULE_CREATE_CONTRACT_CALL\"]=5,o}(),TokenSupplyType:function(){const e={},o=Object.create(e);return o[e[0]=\"INFINITE\"]=0,o[e[1]=\"FINITE\"]=1,o}(),TokenKeyValidation:function(){const e={},o=Object.create(e);return o[e[0]=\"FULL_VALIDATION\"]=0,o[e[1]=\"NO_VALIDATION\"]=1,o}(),TokenFreezeStatus:function(){const e={},o=Object.create(e);return o[e[0]=\"FreezeNotApplicable\"]=0,o[e[1]=\"Frozen\"]=1,o[e[2]=\"Unfrozen\"]=2,o}(),TokenKycStatus:function(){const e={},o=Object.create(e);return o[e[0]=\"KycNotApplicable\"]=0,o[e[1]=\"Granted\"]=1,o[e[2]=\"Revoked\"]=2,o}(),TokenPauseStatus:function(){const e={},o=Object.create(e);return o[e[0]=\"PauseNotApplicable\"]=0,o[e[1]=\"Paused\"]=1,o[e[2]=\"Unpaused\"]=2,o}(),Key:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.contractID=$root.proto.ContractID.decode(e,e.uint32());break}case 2:{d.ed25519=e.bytes();break}case 3:{d.RSA_3072=e.bytes();break}case 4:{d.ECDSA_384=e.bytes();break}case 5:{d.thresholdKey=$root.proto.ThresholdKey.decode(e,e.uint32());break}case 6:{d.keyList=$root.proto.KeyList.decode(e,e.uint32());break}case 7:{d.ECDSASecp256k1=e.bytes();break}case 8:{d.delegatableContractId=$root.proto.ContractID.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.Key\"},e}(),ThresholdKey:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.threshold=e.uint32();break}case 2:{d.keys=$root.proto.KeyList.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.ThresholdKey\"},e}(),KeyList:function(){function e(e){if(this.keys=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.keys&&d.keys.length||(d.keys=[]),d.keys.push($root.proto.Key.decode(e,e.uint32()));break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.KeyList\"},e}(),Signature:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.contract=e.bytes();break}case 2:{d.ed25519=e.bytes();break}case 3:{d.RSA_3072=e.bytes();break}case 4:{d.ECDSA_384=e.bytes();break}case 5:{d.thresholdSignature=$root.proto.ThresholdSignature.decode(e,e.uint32());break}case 6:{d.signatureList=$root.proto.SignatureList.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.Signature\"},e}(),ThresholdSignature:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 2:{d.sigs=$root.proto.SignatureList.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.ThresholdSignature\"},e}(),SignatureList:function(){function e(e){if(this.sigs=[],e)for(var o=Object.keys(e),t=0;t>>3){case 2:{d.sigs&&d.sigs.length||(d.sigs=[]),d.sigs.push($root.proto.Signature.decode(e,e.uint32()));break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.SignatureList\"},e}(),SignaturePair:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.pubKeyPrefix=e.bytes();break}case 2:{d.contract=e.bytes();break}case 3:{d.ed25519=e.bytes();break}case 4:{d.RSA_3072=e.bytes();break}case 5:{d.ECDSA_384=e.bytes();break}case 6:{d.ECDSASecp256k1=e.bytes();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.SignaturePair\"},e}(),SignatureMap:function(){function e(e){if(this.sigPair=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.sigPair&&d.sigPair.length||(d.sigPair=[]),d.sigPair.push($root.proto.SignaturePair.decode(e,e.uint32()));break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.SignatureMap\"},e}(),HederaFunctionality:function(){const e={},o=Object.create(e);return o[e[0]=\"NONE\"]=0,o[e[1]=\"CryptoTransfer\"]=1,o[e[2]=\"CryptoUpdate\"]=2,o[e[3]=\"CryptoDelete\"]=3,o[e[4]=\"CryptoAddLiveHash\"]=4,o[e[5]=\"CryptoDeleteLiveHash\"]=5,o[e[6]=\"ContractCall\"]=6,o[e[7]=\"ContractCreate\"]=7,o[e[8]=\"ContractUpdate\"]=8,o[e[9]=\"FileCreate\"]=9,o[e[10]=\"FileAppend\"]=10,o[e[11]=\"FileUpdate\"]=11,o[e[12]=\"FileDelete\"]=12,o[e[13]=\"CryptoGetAccountBalance\"]=13,o[e[14]=\"CryptoGetAccountRecords\"]=14,o[e[15]=\"CryptoGetInfo\"]=15,o[e[16]=\"ContractCallLocal\"]=16,o[e[17]=\"ContractGetInfo\"]=17,o[e[18]=\"ContractGetBytecode\"]=18,o[e[19]=\"GetBySolidityID\"]=19,o[e[20]=\"GetByKey\"]=20,o[e[21]=\"CryptoGetLiveHash\"]=21,o[e[22]=\"CryptoGetStakers\"]=22,o[e[23]=\"FileGetContents\"]=23,o[e[24]=\"FileGetInfo\"]=24,o[e[25]=\"TransactionGetRecord\"]=25,o[e[26]=\"ContractGetRecords\"]=26,o[e[27]=\"CryptoCreate\"]=27,o[e[28]=\"SystemDelete\"]=28,o[e[29]=\"SystemUndelete\"]=29,o[e[30]=\"ContractDelete\"]=30,o[e[31]=\"Freeze\"]=31,o[e[32]=\"CreateTransactionRecord\"]=32,o[e[33]=\"CryptoAccountAutoRenew\"]=33,o[e[34]=\"ContractAutoRenew\"]=34,o[e[35]=\"GetVersionInfo\"]=35,o[e[36]=\"TransactionGetReceipt\"]=36,o[e[50]=\"ConsensusCreateTopic\"]=50,o[e[51]=\"ConsensusUpdateTopic\"]=51,o[e[52]=\"ConsensusDeleteTopic\"]=52,o[e[53]=\"ConsensusGetTopicInfo\"]=53,o[e[54]=\"ConsensusSubmitMessage\"]=54,o[e[55]=\"UncheckedSubmit\"]=55,o[e[56]=\"TokenCreate\"]=56,o[e[58]=\"TokenGetInfo\"]=58,o[e[59]=\"TokenFreezeAccount\"]=59,o[e[60]=\"TokenUnfreezeAccount\"]=60,o[e[61]=\"TokenGrantKycToAccount\"]=61,o[e[62]=\"TokenRevokeKycFromAccount\"]=62,o[e[63]=\"TokenDelete\"]=63,o[e[64]=\"TokenUpdate\"]=64,o[e[65]=\"TokenMint\"]=65,o[e[66]=\"TokenBurn\"]=66,o[e[67]=\"TokenAccountWipe\"]=67,o[e[68]=\"TokenAssociateToAccount\"]=68,o[e[69]=\"TokenDissociateFromAccount\"]=69,o[e[70]=\"ScheduleCreate\"]=70,o[e[71]=\"ScheduleDelete\"]=71,o[e[72]=\"ScheduleSign\"]=72,o[e[73]=\"ScheduleGetInfo\"]=73,o[e[74]=\"TokenGetAccountNftInfos\"]=74,o[e[75]=\"TokenGetNftInfo\"]=75,o[e[76]=\"TokenGetNftInfos\"]=76,o[e[77]=\"TokenFeeScheduleUpdate\"]=77,o[e[78]=\"NetworkGetExecutionTime\"]=78,o[e[79]=\"TokenPause\"]=79,o[e[80]=\"TokenUnpause\"]=80,o[e[81]=\"CryptoApproveAllowance\"]=81,o[e[82]=\"CryptoDeleteAllowance\"]=82,o[e[83]=\"GetAccountDetails\"]=83,o[e[84]=\"EthereumTransaction\"]=84,o[e[85]=\"NodeStakeUpdate\"]=85,o[e[86]=\"UtilPrng\"]=86,o[e[87]=\"TransactionGetFastRecord\"]=87,o[e[88]=\"TokenUpdateNfts\"]=88,o[e[89]=\"NodeCreate\"]=89,o[e[90]=\"NodeUpdate\"]=90,o[e[91]=\"NodeDelete\"]=91,o[e[92]=\"NodeGetInfo\"]=92,o}(),FeeComponents:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.min=e.int64();break}case 2:{d.max=e.int64();break}case 3:{d.constant=e.int64();break}case 4:{d.bpt=e.int64();break}case 5:{d.vpt=e.int64();break}case 6:{d.rbh=e.int64();break}case 7:{d.sbh=e.int64();break}case 8:{d.gas=e.int64();break}case 9:{d.tv=e.int64();break}case 10:{d.bpr=e.int64();break}case 11:{d.sbpr=e.int64();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.FeeComponents\"},e}(),TransactionFeeSchedule:function(){function e(e){if(this.fees=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.hederaFunctionality=e.int32();break}case 2:{d.feeData=$root.proto.FeeData.decode(e,e.uint32());break}case 3:{d.fees&&d.fees.length||(d.fees=[]),d.fees.push($root.proto.FeeData.decode(e,e.uint32()));break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.TransactionFeeSchedule\"},e}(),FeeData:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.nodedata=$root.proto.FeeComponents.decode(e,e.uint32());break}case 2:{d.networkdata=$root.proto.FeeComponents.decode(e,e.uint32());break}case 3:{d.servicedata=$root.proto.FeeComponents.decode(e,e.uint32());break}case 4:{d.subType=e.int32();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.FeeData\"},e}(),FeeSchedule:function(){function e(e){if(this.transactionFeeSchedule=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.transactionFeeSchedule&&d.transactionFeeSchedule.length||(d.transactionFeeSchedule=[]),d.transactionFeeSchedule.push($root.proto.TransactionFeeSchedule.decode(e,e.uint32()));break}case 2:{d.expiryTime=$root.proto.TimestampSeconds.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.FeeSchedule\"},e}(),CurrentAndNextFeeSchedule:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.currentFeeSchedule=$root.proto.FeeSchedule.decode(e,e.uint32());break}case 2:{d.nextFeeSchedule=$root.proto.FeeSchedule.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.CurrentAndNextFeeSchedule\"},e}(),ServiceEndpoint:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.ipAddressV4=e.bytes();break}case 2:{d.port=e.int32();break}case 3:{d.domainName=e.string();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.ServiceEndpoint\"},e}(),NodeAddress:function(){function e(e){if(this.serviceEndpoint=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.ipAddress=e.bytes();break}case 2:{d.portno=e.int32();break}case 3:{d.memo=e.bytes();break}case 4:{d.RSA_PubKey=e.string();break}case 5:{d.nodeId=e.int64();break}case 6:{d.nodeAccountId=$root.proto.AccountID.decode(e,e.uint32());break}case 7:{d.nodeCertHash=e.bytes();break}case 8:{d.serviceEndpoint&&d.serviceEndpoint.length||(d.serviceEndpoint=[]),d.serviceEndpoint.push($root.proto.ServiceEndpoint.decode(e,e.uint32()));break}case 9:{d.description=e.string();break}case 10:{d.stake=e.int64();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.NodeAddress\"},e}(),NodeAddressBook:function(){function e(e){if(this.nodeAddress=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.nodeAddress&&d.nodeAddress.length||(d.nodeAddress=[]),d.nodeAddress.push($root.proto.NodeAddress.decode(e,e.uint32()));break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.NodeAddressBook\"},e}(),SemanticVersion:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.major=e.int32();break}case 2:{d.minor=e.int32();break}case 3:{d.patch=e.int32();break}case 4:{d.pre=e.string();break}case 5:{d.build=e.string();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.SemanticVersion\"},e}(),Setting:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.name=e.string();break}case 2:{d.value=e.string();break}case 3:{d.data=e.bytes();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.Setting\"},e}(),ServicesConfigurationList:function(){function e(e){if(this.nameValue=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.nameValue&&d.nameValue.length||(d.nameValue=[]),d.nameValue.push($root.proto.Setting.decode(e,e.uint32()));break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.ServicesConfigurationList\"},e}(),TokenRelationship:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.tokenId=$root.proto.TokenID.decode(e,e.uint32());break}case 2:{d.symbol=e.string();break}case 3:{d.balance=e.uint64();break}case 4:{d.kycStatus=e.int32();break}case 5:{d.freezeStatus=e.int32();break}case 6:{d.decimals=e.uint32();break}case 7:{d.automaticAssociation=e.bool();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.TokenRelationship\"},e}(),TokenBalance:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.tokenId=$root.proto.TokenID.decode(e,e.uint32());break}case 2:{d.balance=e.uint64();break}case 3:{d.decimals=e.uint32();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.TokenBalance\"},e}(),TokenBalances:function(){function e(e){if(this.tokenBalances=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.tokenBalances&&d.tokenBalances.length||(d.tokenBalances=[]),d.tokenBalances.push($root.proto.TokenBalance.decode(e,e.uint32()));break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.TokenBalances\"},e}(),TokenAssociation:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.tokenId=$root.proto.TokenID.decode(e,e.uint32());break}case 2:{d.accountId=$root.proto.AccountID.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.TokenAssociation\"},e}(),StakingInfo:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.declineReward=e.bool();break}case 2:{d.stakePeriodStart=$root.proto.Timestamp.decode(e,e.uint32());break}case 3:{d.pendingReward=e.int64();break}case 4:{d.stakedToMe=e.int64();break}case 5:{d.stakedAccountId=$root.proto.AccountID.decode(e,e.uint32());break}case 6:{d.stakedNodeId=e.int64();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.StakingInfo\"},e}(),Timestamp:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.seconds=e.int64();break}case 2:{d.nanos=e.int32();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.Timestamp\"},e}(),TimestampSeconds:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.seconds=e.int64();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.TimestampSeconds\"},e}(),ResponseType:function(){const e={},o=Object.create(e);return o[e[0]=\"ANSWER_ONLY\"]=0,o[e[1]=\"ANSWER_STATE_PROOF\"]=1,o[e[2]=\"COST_ANSWER\"]=2,o[e[3]=\"COST_ANSWER_STATE_PROOF\"]=3,o}(),QueryHeader:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.payment=$root.proto.Transaction.decode(e,e.uint32());break}case 2:{d.responseType=e.int32();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.QueryHeader\"},e}(),Transaction:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.body=$root.proto.TransactionBody.decode(e,e.uint32());break}case 2:{d.sigs=$root.proto.SignatureList.decode(e,e.uint32());break}case 3:{d.sigMap=$root.proto.SignatureMap.decode(e,e.uint32());break}case 4:{d.bodyBytes=e.bytes();break}case 5:{d.signedTransactionBytes=e.bytes();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.Transaction\"},e}(),TransactionBody:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.transactionID=$root.proto.TransactionID.decode(e,e.uint32());break}case 2:{d.nodeAccountID=$root.proto.AccountID.decode(e,e.uint32());break}case 3:{d.transactionFee=e.uint64();break}case 4:{d.transactionValidDuration=$root.proto.Duration.decode(e,e.uint32());break}case 5:{d.generateRecord=e.bool();break}case 6:{d.memo=e.string();break}case 7:{d.contractCall=$root.proto.ContractCallTransactionBody.decode(e,e.uint32());break}case 8:{d.contractCreateInstance=$root.proto.ContractCreateTransactionBody.decode(e,e.uint32());break}case 9:{d.contractUpdateInstance=$root.proto.ContractUpdateTransactionBody.decode(e,e.uint32());break}case 22:{d.contractDeleteInstance=$root.proto.ContractDeleteTransactionBody.decode(e,e.uint32());break}case 50:{d.ethereumTransaction=$root.proto.EthereumTransactionBody.decode(e,e.uint32());break}case 10:{d.cryptoAddLiveHash=$root.proto.CryptoAddLiveHashTransactionBody.decode(e,e.uint32());break}case 48:{d.cryptoApproveAllowance=$root.proto.CryptoApproveAllowanceTransactionBody.decode(e,e.uint32());break}case 49:{d.cryptoDeleteAllowance=$root.proto.CryptoDeleteAllowanceTransactionBody.decode(e,e.uint32());break}case 11:{d.cryptoCreateAccount=$root.proto.CryptoCreateTransactionBody.decode(e,e.uint32());break}case 12:{d.cryptoDelete=$root.proto.CryptoDeleteTransactionBody.decode(e,e.uint32());break}case 13:{d.cryptoDeleteLiveHash=$root.proto.CryptoDeleteLiveHashTransactionBody.decode(e,e.uint32());break}case 14:{d.cryptoTransfer=$root.proto.CryptoTransferTransactionBody.decode(e,e.uint32());break}case 15:{d.cryptoUpdateAccount=$root.proto.CryptoUpdateTransactionBody.decode(e,e.uint32());break}case 16:{d.fileAppend=$root.proto.FileAppendTransactionBody.decode(e,e.uint32());break}case 17:{d.fileCreate=$root.proto.FileCreateTransactionBody.decode(e,e.uint32());break}case 18:{d.fileDelete=$root.proto.FileDeleteTransactionBody.decode(e,e.uint32());break}case 19:{d.fileUpdate=$root.proto.FileUpdateTransactionBody.decode(e,e.uint32());break}case 20:{d.systemDelete=$root.proto.SystemDeleteTransactionBody.decode(e,e.uint32());break}case 21:{d.systemUndelete=$root.proto.SystemUndeleteTransactionBody.decode(e,e.uint32());break}case 23:{d.freeze=$root.proto.FreezeTransactionBody.decode(e,e.uint32());break}case 24:{d.consensusCreateTopic=$root.proto.ConsensusCreateTopicTransactionBody.decode(e,e.uint32());break}case 25:{d.consensusUpdateTopic=$root.proto.ConsensusUpdateTopicTransactionBody.decode(e,e.uint32());break}case 26:{d.consensusDeleteTopic=$root.proto.ConsensusDeleteTopicTransactionBody.decode(e,e.uint32());break}case 27:{d.consensusSubmitMessage=$root.proto.ConsensusSubmitMessageTransactionBody.decode(e,e.uint32());break}case 28:{d.uncheckedSubmit=$root.proto.UncheckedSubmitBody.decode(e,e.uint32());break}case 29:{d.tokenCreation=$root.proto.TokenCreateTransactionBody.decode(e,e.uint32());break}case 31:{d.tokenFreeze=$root.proto.TokenFreezeAccountTransactionBody.decode(e,e.uint32());break}case 32:{d.tokenUnfreeze=$root.proto.TokenUnfreezeAccountTransactionBody.decode(e,e.uint32());break}case 33:{d.tokenGrantKyc=$root.proto.TokenGrantKycTransactionBody.decode(e,e.uint32());break}case 34:{d.tokenRevokeKyc=$root.proto.TokenRevokeKycTransactionBody.decode(e,e.uint32());break}case 35:{d.tokenDeletion=$root.proto.TokenDeleteTransactionBody.decode(e,e.uint32());break}case 36:{d.tokenUpdate=$root.proto.TokenUpdateTransactionBody.decode(e,e.uint32());break}case 37:{d.tokenMint=$root.proto.TokenMintTransactionBody.decode(e,e.uint32());break}case 38:{d.tokenBurn=$root.proto.TokenBurnTransactionBody.decode(e,e.uint32());break}case 39:{d.tokenWipe=$root.proto.TokenWipeAccountTransactionBody.decode(e,e.uint32());break}case 40:{d.tokenAssociate=$root.proto.TokenAssociateTransactionBody.decode(e,e.uint32());break}case 41:{d.tokenDissociate=$root.proto.TokenDissociateTransactionBody.decode(e,e.uint32());break}case 45:{d.tokenFeeScheduleUpdate=$root.proto.TokenFeeScheduleUpdateTransactionBody.decode(e,e.uint32());break}case 46:{d.tokenPause=$root.proto.TokenPauseTransactionBody.decode(e,e.uint32());break}case 47:{d.tokenUnpause=$root.proto.TokenUnpauseTransactionBody.decode(e,e.uint32());break}case 42:{d.scheduleCreate=$root.proto.ScheduleCreateTransactionBody.decode(e,e.uint32());break}case 43:{d.scheduleDelete=$root.proto.ScheduleDeleteTransactionBody.decode(e,e.uint32());break}case 44:{d.scheduleSign=$root.proto.ScheduleSignTransactionBody.decode(e,e.uint32());break}case 51:{d.nodeStakeUpdate=$root.proto.NodeStakeUpdateTransactionBody.decode(e,e.uint32());break}case 52:{d.utilPrng=$root.proto.UtilPrngTransactionBody.decode(e,e.uint32());break}case 53:{d.tokenUpdateNfts=$root.proto.TokenUpdateNftsTransactionBody.decode(e,e.uint32());break}case 54:{d.nodeCreate=$root.proto.NodeCreateTransactionBody.decode(e,e.uint32());break}case 55:{d.nodeUpdate=$root.proto.NodeUpdateTransactionBody.decode(e,e.uint32());break}case 56:{d.nodeDelete=$root.proto.NodeDeleteTransactionBody.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.TransactionBody\"},e}(),SystemDeleteTransactionBody:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.fileID=$root.proto.FileID.decode(e,e.uint32());break}case 2:{d.contractID=$root.proto.ContractID.decode(e,e.uint32());break}case 3:{d.expirationTime=$root.proto.TimestampSeconds.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.SystemDeleteTransactionBody\"},e}(),SystemUndeleteTransactionBody:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.fileID=$root.proto.FileID.decode(e,e.uint32());break}case 2:{d.contractID=$root.proto.ContractID.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.SystemUndeleteTransactionBody\"},e}(),FreezeTransactionBody:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.startHour=e.int32();break}case 2:{d.startMin=e.int32();break}case 3:{d.endHour=e.int32();break}case 4:{d.endMin=e.int32();break}case 5:{d.updateFile=$root.proto.FileID.decode(e,e.uint32());break}case 6:{d.fileHash=e.bytes();break}case 7:{d.startTime=$root.proto.Timestamp.decode(e,e.uint32());break}case 8:{d.freezeType=e.int32();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.FreezeTransactionBody\"},e}(),FreezeType:function(){const e={},o=Object.create(e);return o[e[0]=\"UNKNOWN_FREEZE_TYPE\"]=0,o[e[1]=\"FREEZE_ONLY\"]=1,o[e[2]=\"PREPARE_UPGRADE\"]=2,o[e[3]=\"FREEZE_UPGRADE\"]=3,o[e[4]=\"FREEZE_ABORT\"]=4,o[e[5]=\"TELEMETRY_UPGRADE\"]=5,o}(),ContractCallTransactionBody:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.contractID=$root.proto.ContractID.decode(e,e.uint32());break}case 2:{d.gas=e.int64();break}case 3:{d.amount=e.int64();break}case 4:{d.functionParameters=e.bytes();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.ContractCallTransactionBody\"},e}(),ContractCreateTransactionBody:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.fileID=$root.proto.FileID.decode(e,e.uint32());break}case 16:{d.initcode=e.bytes();break}case 3:{d.adminKey=$root.proto.Key.decode(e,e.uint32());break}case 4:{d.gas=e.int64();break}case 5:{d.initialBalance=e.int64();break}case 6:{d.proxyAccountID=$root.proto.AccountID.decode(e,e.uint32());break}case 8:{d.autoRenewPeriod=$root.proto.Duration.decode(e,e.uint32());break}case 9:{d.constructorParameters=e.bytes();break}case 10:{d.shardID=$root.proto.ShardID.decode(e,e.uint32());break}case 11:{d.realmID=$root.proto.RealmID.decode(e,e.uint32());break}case 12:{d.newRealmAdminKey=$root.proto.Key.decode(e,e.uint32());break}case 13:{d.memo=e.string();break}case 14:{d.maxAutomaticTokenAssociations=e.int32();break}case 15:{d.autoRenewAccountId=$root.proto.AccountID.decode(e,e.uint32());break}case 17:{d.stakedAccountId=$root.proto.AccountID.decode(e,e.uint32());break}case 18:{d.stakedNodeId=e.int64();break}case 19:{d.declineReward=e.bool();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.ContractCreateTransactionBody\"},e}(),Duration:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.seconds=e.int64();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.Duration\"},e}(),ContractUpdateTransactionBody:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.contractID=$root.proto.ContractID.decode(e,e.uint32());break}case 2:{d.expirationTime=$root.proto.Timestamp.decode(e,e.uint32());break}case 3:{d.adminKey=$root.proto.Key.decode(e,e.uint32());break}case 6:{d.proxyAccountID=$root.proto.AccountID.decode(e,e.uint32());break}case 7:{d.autoRenewPeriod=$root.proto.Duration.decode(e,e.uint32());break}case 8:{d.fileID=$root.proto.FileID.decode(e,e.uint32());break}case 9:{d.memo=e.string();break}case 10:{d.memoWrapper=$root.google.protobuf.StringValue.decode(e,e.uint32());break}case 11:{d.maxAutomaticTokenAssociations=$root.google.protobuf.Int32Value.decode(e,e.uint32());break}case 12:{d.autoRenewAccountId=$root.proto.AccountID.decode(e,e.uint32());break}case 13:{d.stakedAccountId=$root.proto.AccountID.decode(e,e.uint32());break}case 14:{d.stakedNodeId=e.int64();break}case 15:{d.declineReward=$root.google.protobuf.BoolValue.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.ContractUpdateTransactionBody\"},e}(),LiveHash:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.accountId=$root.proto.AccountID.decode(e,e.uint32());break}case 2:{d.hash=e.bytes();break}case 3:{d.keys=$root.proto.KeyList.decode(e,e.uint32());break}case 5:{d.duration=$root.proto.Duration.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.LiveHash\"},e}(),CryptoAddLiveHashTransactionBody:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 3:{d.liveHash=$root.proto.LiveHash.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.CryptoAddLiveHashTransactionBody\"},e}(),CryptoCreateTransactionBody:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.key=$root.proto.Key.decode(e,e.uint32());break}case 2:{d.initialBalance=e.uint64();break}case 3:{d.proxyAccountID=$root.proto.AccountID.decode(e,e.uint32());break}case 6:{d.sendRecordThreshold=e.uint64();break}case 7:{d.receiveRecordThreshold=e.uint64();break}case 8:{d.receiverSigRequired=e.bool();break}case 9:{d.autoRenewPeriod=$root.proto.Duration.decode(e,e.uint32());break}case 10:{d.shardID=$root.proto.ShardID.decode(e,e.uint32());break}case 11:{d.realmID=$root.proto.RealmID.decode(e,e.uint32());break}case 12:{d.newRealmAdminKey=$root.proto.Key.decode(e,e.uint32());break}case 13:{d.memo=e.string();break}case 14:{d.maxAutomaticTokenAssociations=e.int32();break}case 15:{d.stakedAccountId=$root.proto.AccountID.decode(e,e.uint32());break}case 16:{d.stakedNodeId=e.int64();break}case 17:{d.declineReward=e.bool();break}case 18:{d.alias=e.bytes();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.CryptoCreateTransactionBody\"},e}(),CryptoDeleteTransactionBody:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.transferAccountID=$root.proto.AccountID.decode(e,e.uint32());break}case 2:{d.deleteAccountID=$root.proto.AccountID.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.CryptoDeleteTransactionBody\"},e}(),CryptoDeleteLiveHashTransactionBody:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.accountOfLiveHash=$root.proto.AccountID.decode(e,e.uint32());break}case 2:{d.liveHashToDelete=e.bytes();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.CryptoDeleteLiveHashTransactionBody\"},e}(),CryptoTransferTransactionBody:function(){function e(e){if(this.tokenTransfers=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.transfers=$root.proto.TransferList.decode(e,e.uint32());break}case 2:{d.tokenTransfers&&d.tokenTransfers.length||(d.tokenTransfers=[]),d.tokenTransfers.push($root.proto.TokenTransferList.decode(e,e.uint32()));break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.CryptoTransferTransactionBody\"},e}(),CryptoUpdateTransactionBody:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 2:{d.accountIDToUpdate=$root.proto.AccountID.decode(e,e.uint32());break}case 3:{d.key=$root.proto.Key.decode(e,e.uint32());break}case 4:{d.proxyAccountID=$root.proto.AccountID.decode(e,e.uint32());break}case 5:{d.proxyFraction=e.int32();break}case 6:{d.sendRecordThreshold=e.uint64();break}case 11:{d.sendRecordThresholdWrapper=$root.google.protobuf.UInt64Value.decode(e,e.uint32());break}case 7:{d.receiveRecordThreshold=e.uint64();break}case 12:{d.receiveRecordThresholdWrapper=$root.google.protobuf.UInt64Value.decode(e,e.uint32());break}case 8:{d.autoRenewPeriod=$root.proto.Duration.decode(e,e.uint32());break}case 9:{d.expirationTime=$root.proto.Timestamp.decode(e,e.uint32());break}case 10:{d.receiverSigRequired=e.bool();break}case 13:{d.receiverSigRequiredWrapper=$root.google.protobuf.BoolValue.decode(e,e.uint32());break}case 14:{d.memo=$root.google.protobuf.StringValue.decode(e,e.uint32());break}case 15:{d.maxAutomaticTokenAssociations=$root.google.protobuf.Int32Value.decode(e,e.uint32());break}case 16:{d.stakedAccountId=$root.proto.AccountID.decode(e,e.uint32());break}case 17:{d.stakedNodeId=e.int64();break}case 18:{d.declineReward=$root.google.protobuf.BoolValue.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.CryptoUpdateTransactionBody\"},e}(),CryptoApproveAllowanceTransactionBody:function(){function e(e){if(this.cryptoAllowances=[],this.nftAllowances=[],this.tokenAllowances=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.cryptoAllowances&&d.cryptoAllowances.length||(d.cryptoAllowances=[]),d.cryptoAllowances.push($root.proto.CryptoAllowance.decode(e,e.uint32()));break}case 2:{d.nftAllowances&&d.nftAllowances.length||(d.nftAllowances=[]),d.nftAllowances.push($root.proto.NftAllowance.decode(e,e.uint32()));break}case 3:{d.tokenAllowances&&d.tokenAllowances.length||(d.tokenAllowances=[]),d.tokenAllowances.push($root.proto.TokenAllowance.decode(e,e.uint32()));break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.CryptoApproveAllowanceTransactionBody\"},e}(),CryptoAllowance:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.owner=$root.proto.AccountID.decode(e,e.uint32());break}case 2:{d.spender=$root.proto.AccountID.decode(e,e.uint32());break}case 3:{d.amount=e.int64();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.CryptoAllowance\"},e}(),NftAllowance:function(){function e(e){if(this.serialNumbers=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.tokenId=$root.proto.TokenID.decode(e,e.uint32());break}case 2:{d.owner=$root.proto.AccountID.decode(e,e.uint32());break}case 3:{d.spender=$root.proto.AccountID.decode(e,e.uint32());break}case 4:{if(d.serialNumbers&&d.serialNumbers.length||(d.serialNumbers=[]),2==(7&i))for(var a=e.uint32()+e.pos;e.pos>>3){case 1:{d.tokenId=$root.proto.TokenID.decode(e,e.uint32());break}case 2:{d.owner=$root.proto.AccountID.decode(e,e.uint32());break}case 3:{d.spender=$root.proto.AccountID.decode(e,e.uint32());break}case 4:{d.amount=e.int64();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.TokenAllowance\"},e}(),CryptoDeleteAllowanceTransactionBody:function(){function e(e){if(this.nftAllowances=[],e)for(var o=Object.keys(e),t=0;t>>3){case 2:{d.nftAllowances&&d.nftAllowances.length||(d.nftAllowances=[]),d.nftAllowances.push($root.proto.NftRemoveAllowance.decode(e,e.uint32()));break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.CryptoDeleteAllowanceTransactionBody\"},e}(),NftRemoveAllowance:function(){function e(e){if(this.serialNumbers=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.tokenId=$root.proto.TokenID.decode(e,e.uint32());break}case 2:{d.owner=$root.proto.AccountID.decode(e,e.uint32());break}case 3:{if(d.serialNumbers&&d.serialNumbers.length||(d.serialNumbers=[]),2==(7&i))for(var a=e.uint32()+e.pos;e.pos>>3){case 1:{d.ethereumData=e.bytes();break}case 2:{d.callData=$root.proto.FileID.decode(e,e.uint32());break}case 3:{d.maxGasAllowance=e.int64();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.EthereumTransactionBody\"},e}(),FileAppendTransactionBody:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 2:{d.fileID=$root.proto.FileID.decode(e,e.uint32());break}case 4:{d.contents=e.bytes();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.FileAppendTransactionBody\"},e}(),FileCreateTransactionBody:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 2:{d.expirationTime=$root.proto.Timestamp.decode(e,e.uint32());break}case 3:{d.keys=$root.proto.KeyList.decode(e,e.uint32());break}case 4:{d.contents=e.bytes();break}case 5:{d.shardID=$root.proto.ShardID.decode(e,e.uint32());break}case 6:{d.realmID=$root.proto.RealmID.decode(e,e.uint32());break}case 7:{d.newRealmAdminKey=$root.proto.Key.decode(e,e.uint32());break}case 8:{d.memo=e.string();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.FileCreateTransactionBody\"},e}(),FileDeleteTransactionBody:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 2:{d.fileID=$root.proto.FileID.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.FileDeleteTransactionBody\"},e}(),FileUpdateTransactionBody:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.fileID=$root.proto.FileID.decode(e,e.uint32());break}case 2:{d.expirationTime=$root.proto.Timestamp.decode(e,e.uint32());break}case 3:{d.keys=$root.proto.KeyList.decode(e,e.uint32());break}case 4:{d.contents=e.bytes();break}case 5:{d.memo=$root.google.protobuf.StringValue.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.FileUpdateTransactionBody\"},e}(),ContractDeleteTransactionBody:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.contractID=$root.proto.ContractID.decode(e,e.uint32());break}case 2:{d.transferAccountID=$root.proto.AccountID.decode(e,e.uint32());break}case 3:{d.transferContractID=$root.proto.ContractID.decode(e,e.uint32());break}case 4:{d.permanentRemoval=e.bool();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.ContractDeleteTransactionBody\"},e}(),ConsensusCreateTopicTransactionBody:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.memo=e.string();break}case 2:{d.adminKey=$root.proto.Key.decode(e,e.uint32());break}case 3:{d.submitKey=$root.proto.Key.decode(e,e.uint32());break}case 6:{d.autoRenewPeriod=$root.proto.Duration.decode(e,e.uint32());break}case 7:{d.autoRenewAccount=$root.proto.AccountID.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.ConsensusCreateTopicTransactionBody\"},e}(),ConsensusUpdateTopicTransactionBody:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.topicID=$root.proto.TopicID.decode(e,e.uint32());break}case 2:{d.memo=$root.google.protobuf.StringValue.decode(e,e.uint32());break}case 4:{d.expirationTime=$root.proto.Timestamp.decode(e,e.uint32());break}case 6:{d.adminKey=$root.proto.Key.decode(e,e.uint32());break}case 7:{d.submitKey=$root.proto.Key.decode(e,e.uint32());break}case 8:{d.autoRenewPeriod=$root.proto.Duration.decode(e,e.uint32());break}case 9:{d.autoRenewAccount=$root.proto.AccountID.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.ConsensusUpdateTopicTransactionBody\"},e}(),ConsensusDeleteTopicTransactionBody:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.topicID=$root.proto.TopicID.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.ConsensusDeleteTopicTransactionBody\"},e}(),ConsensusMessageChunkInfo:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.initialTransactionID=$root.proto.TransactionID.decode(e,e.uint32());break}case 2:{d.total=e.int32();break}case 3:{d.number=e.int32();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.ConsensusMessageChunkInfo\"},e}(),ConsensusSubmitMessageTransactionBody:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.topicID=$root.proto.TopicID.decode(e,e.uint32());break}case 2:{d.message=e.bytes();break}case 3:{d.chunkInfo=$root.proto.ConsensusMessageChunkInfo.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.ConsensusSubmitMessageTransactionBody\"},e}(),UncheckedSubmitBody:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.transactionBytes=e.bytes();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.UncheckedSubmitBody\"},e}(),TokenCreateTransactionBody:function(){function e(e){if(this.customFees=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.name=e.string();break}case 2:{d.symbol=e.string();break}case 3:{d.decimals=e.uint32();break}case 4:{d.initialSupply=e.uint64();break}case 5:{d.treasury=$root.proto.AccountID.decode(e,e.uint32());break}case 6:{d.adminKey=$root.proto.Key.decode(e,e.uint32());break}case 7:{d.kycKey=$root.proto.Key.decode(e,e.uint32());break}case 8:{d.freezeKey=$root.proto.Key.decode(e,e.uint32());break}case 9:{d.wipeKey=$root.proto.Key.decode(e,e.uint32());break}case 10:{d.supplyKey=$root.proto.Key.decode(e,e.uint32());break}case 11:{d.freezeDefault=e.bool();break}case 13:{d.expiry=$root.proto.Timestamp.decode(e,e.uint32());break}case 14:{d.autoRenewAccount=$root.proto.AccountID.decode(e,e.uint32());break}case 15:{d.autoRenewPeriod=$root.proto.Duration.decode(e,e.uint32());break}case 16:{d.memo=e.string();break}case 17:{d.tokenType=e.int32();break}case 18:{d.supplyType=e.int32();break}case 19:{d.maxSupply=e.int64();break}case 20:{d.feeScheduleKey=$root.proto.Key.decode(e,e.uint32());break}case 21:{d.customFees&&d.customFees.length||(d.customFees=[]),d.customFees.push($root.proto.CustomFee.decode(e,e.uint32()));break}case 22:{d.pauseKey=$root.proto.Key.decode(e,e.uint32());break}case 23:{d.metadata=e.bytes();break}case 24:{d.metadataKey=$root.proto.Key.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.TokenCreateTransactionBody\"},e}(),FractionalFee:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.fractionalAmount=$root.proto.Fraction.decode(e,e.uint32());break}case 2:{d.minimumAmount=e.int64();break}case 3:{d.maximumAmount=e.int64();break}case 4:{d.netOfTransfers=e.bool();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.FractionalFee\"},e}(),FixedFee:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.amount=e.int64();break}case 2:{d.denominatingTokenId=$root.proto.TokenID.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.FixedFee\"},e}(),RoyaltyFee:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.exchangeValueFraction=$root.proto.Fraction.decode(e,e.uint32());break}case 2:{d.fallbackFee=$root.proto.FixedFee.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.RoyaltyFee\"},e}(),CustomFee:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.fixedFee=$root.proto.FixedFee.decode(e,e.uint32());break}case 2:{d.fractionalFee=$root.proto.FractionalFee.decode(e,e.uint32());break}case 4:{d.royaltyFee=$root.proto.RoyaltyFee.decode(e,e.uint32());break}case 3:{d.feeCollectorAccountId=$root.proto.AccountID.decode(e,e.uint32());break}case 5:{d.allCollectorsAreExempt=e.bool();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.CustomFee\"},e}(),AssessedCustomFee:function(){function e(e){if(this.effectivePayerAccountId=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.amount=e.int64();break}case 2:{d.tokenId=$root.proto.TokenID.decode(e,e.uint32());break}case 3:{d.feeCollectorAccountId=$root.proto.AccountID.decode(e,e.uint32());break}case 4:{d.effectivePayerAccountId&&d.effectivePayerAccountId.length||(d.effectivePayerAccountId=[]),d.effectivePayerAccountId.push($root.proto.AccountID.decode(e,e.uint32()));break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.AssessedCustomFee\"},e}(),TokenFreezeAccountTransactionBody:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.token=$root.proto.TokenID.decode(e,e.uint32());break}case 2:{d.account=$root.proto.AccountID.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.TokenFreezeAccountTransactionBody\"},e}(),TokenUnfreezeAccountTransactionBody:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.token=$root.proto.TokenID.decode(e,e.uint32());break}case 2:{d.account=$root.proto.AccountID.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.TokenUnfreezeAccountTransactionBody\"},e}(),TokenGrantKycTransactionBody:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.token=$root.proto.TokenID.decode(e,e.uint32());break}case 2:{d.account=$root.proto.AccountID.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.TokenGrantKycTransactionBody\"},e}(),TokenRevokeKycTransactionBody:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.token=$root.proto.TokenID.decode(e,e.uint32());break}case 2:{d.account=$root.proto.AccountID.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.TokenRevokeKycTransactionBody\"},e}(),TokenDeleteTransactionBody:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.token=$root.proto.TokenID.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.TokenDeleteTransactionBody\"},e}(),TokenUpdateTransactionBody:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.token=$root.proto.TokenID.decode(e,e.uint32());break}case 2:{d.symbol=e.string();break}case 3:{d.name=e.string();break}case 4:{d.treasury=$root.proto.AccountID.decode(e,e.uint32());break}case 5:{d.adminKey=$root.proto.Key.decode(e,e.uint32());break}case 6:{d.kycKey=$root.proto.Key.decode(e,e.uint32());break}case 7:{d.freezeKey=$root.proto.Key.decode(e,e.uint32());break}case 8:{d.wipeKey=$root.proto.Key.decode(e,e.uint32());break}case 9:{d.supplyKey=$root.proto.Key.decode(e,e.uint32());break}case 10:{d.autoRenewAccount=$root.proto.AccountID.decode(e,e.uint32());break}case 11:{d.autoRenewPeriod=$root.proto.Duration.decode(e,e.uint32());break}case 12:{d.expiry=$root.proto.Timestamp.decode(e,e.uint32());break}case 13:{d.memo=$root.google.protobuf.StringValue.decode(e,e.uint32());break}case 14:{d.feeScheduleKey=$root.proto.Key.decode(e,e.uint32());break}case 15:{d.pauseKey=$root.proto.Key.decode(e,e.uint32());break}case 16:{d.metadata=$root.google.protobuf.BytesValue.decode(e,e.uint32());break}case 17:{d.metadataKey=$root.proto.Key.decode(e,e.uint32());break}case 18:{d.keyVerificationMode=e.int32();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.TokenUpdateTransactionBody\"},e}(),TokenMintTransactionBody:function(){function e(e){if(this.metadata=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.token=$root.proto.TokenID.decode(e,e.uint32());break}case 2:{d.amount=e.uint64();break}case 3:{d.metadata&&d.metadata.length||(d.metadata=[]),d.metadata.push(e.bytes());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.TokenMintTransactionBody\"},e}(),TokenBurnTransactionBody:function(){function e(e){if(this.serialNumbers=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.token=$root.proto.TokenID.decode(e,e.uint32());break}case 2:{d.amount=e.uint64();break}case 3:{if(d.serialNumbers&&d.serialNumbers.length||(d.serialNumbers=[]),2==(7&i))for(var a=e.uint32()+e.pos;e.pos>>3){case 1:{d.token=$root.proto.TokenID.decode(e,e.uint32());break}case 2:{d.account=$root.proto.AccountID.decode(e,e.uint32());break}case 3:{d.amount=e.uint64();break}case 4:{if(d.serialNumbers&&d.serialNumbers.length||(d.serialNumbers=[]),2==(7&i))for(var a=e.uint32()+e.pos;e.pos>>3){case 1:{d.account=$root.proto.AccountID.decode(e,e.uint32());break}case 2:{d.tokens&&d.tokens.length||(d.tokens=[]),d.tokens.push($root.proto.TokenID.decode(e,e.uint32()));break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.TokenAssociateTransactionBody\"},e}(),TokenDissociateTransactionBody:function(){function e(e){if(this.tokens=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.account=$root.proto.AccountID.decode(e,e.uint32());break}case 2:{d.tokens&&d.tokens.length||(d.tokens=[]),d.tokens.push($root.proto.TokenID.decode(e,e.uint32()));break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.TokenDissociateTransactionBody\"},e}(),TokenFeeScheduleUpdateTransactionBody:function(){function e(e){if(this.customFees=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.tokenId=$root.proto.TokenID.decode(e,e.uint32());break}case 2:{d.customFees&&d.customFees.length||(d.customFees=[]),d.customFees.push($root.proto.CustomFee.decode(e,e.uint32()));break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.TokenFeeScheduleUpdateTransactionBody\"},e}(),TokenPauseTransactionBody:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.token=$root.proto.TokenID.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.TokenPauseTransactionBody\"},e}(),TokenUnpauseTransactionBody:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.token=$root.proto.TokenID.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.TokenUnpauseTransactionBody\"},e}(),TokenUpdateNftsTransactionBody:function(){function e(e){if(this.serialNumbers=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.token=$root.proto.TokenID.decode(e,e.uint32());break}case 2:{if(d.serialNumbers&&d.serialNumbers.length||(d.serialNumbers=[]),2==(7&i))for(var a=e.uint32()+e.pos;e.pos>>3){case 1:{d.scheduledTransactionBody=$root.proto.SchedulableTransactionBody.decode(e,e.uint32());break}case 2:{d.memo=e.string();break}case 3:{d.adminKey=$root.proto.Key.decode(e,e.uint32());break}case 4:{d.payerAccountID=$root.proto.AccountID.decode(e,e.uint32());break}case 5:{d.expirationTime=$root.proto.Timestamp.decode(e,e.uint32());break}case 13:{d.waitForExpiry=e.bool();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.ScheduleCreateTransactionBody\"},e}(),SchedulableTransactionBody:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.transactionFee=e.uint64();break}case 2:{d.memo=e.string();break}case 3:{d.contractCall=$root.proto.ContractCallTransactionBody.decode(e,e.uint32());break}case 4:{d.contractCreateInstance=$root.proto.ContractCreateTransactionBody.decode(e,e.uint32());break}case 5:{d.contractUpdateInstance=$root.proto.ContractUpdateTransactionBody.decode(e,e.uint32());break}case 6:{d.contractDeleteInstance=$root.proto.ContractDeleteTransactionBody.decode(e,e.uint32());break}case 37:{d.cryptoApproveAllowance=$root.proto.CryptoApproveAllowanceTransactionBody.decode(e,e.uint32());break}case 38:{d.cryptoDeleteAllowance=$root.proto.CryptoDeleteAllowanceTransactionBody.decode(e,e.uint32());break}case 7:{d.cryptoCreateAccount=$root.proto.CryptoCreateTransactionBody.decode(e,e.uint32());break}case 8:{d.cryptoDelete=$root.proto.CryptoDeleteTransactionBody.decode(e,e.uint32());break}case 9:{d.cryptoTransfer=$root.proto.CryptoTransferTransactionBody.decode(e,e.uint32());break}case 10:{d.cryptoUpdateAccount=$root.proto.CryptoUpdateTransactionBody.decode(e,e.uint32());break}case 11:{d.fileAppend=$root.proto.FileAppendTransactionBody.decode(e,e.uint32());break}case 12:{d.fileCreate=$root.proto.FileCreateTransactionBody.decode(e,e.uint32());break}case 13:{d.fileDelete=$root.proto.FileDeleteTransactionBody.decode(e,e.uint32());break}case 14:{d.fileUpdate=$root.proto.FileUpdateTransactionBody.decode(e,e.uint32());break}case 15:{d.systemDelete=$root.proto.SystemDeleteTransactionBody.decode(e,e.uint32());break}case 16:{d.systemUndelete=$root.proto.SystemUndeleteTransactionBody.decode(e,e.uint32());break}case 17:{d.freeze=$root.proto.FreezeTransactionBody.decode(e,e.uint32());break}case 18:{d.consensusCreateTopic=$root.proto.ConsensusCreateTopicTransactionBody.decode(e,e.uint32());break}case 19:{d.consensusUpdateTopic=$root.proto.ConsensusUpdateTopicTransactionBody.decode(e,e.uint32());break}case 20:{d.consensusDeleteTopic=$root.proto.ConsensusDeleteTopicTransactionBody.decode(e,e.uint32());break}case 21:{d.consensusSubmitMessage=$root.proto.ConsensusSubmitMessageTransactionBody.decode(e,e.uint32());break}case 22:{d.tokenCreation=$root.proto.TokenCreateTransactionBody.decode(e,e.uint32());break}case 23:{d.tokenFreeze=$root.proto.TokenFreezeAccountTransactionBody.decode(e,e.uint32());break}case 24:{d.tokenUnfreeze=$root.proto.TokenUnfreezeAccountTransactionBody.decode(e,e.uint32());break}case 25:{d.tokenGrantKyc=$root.proto.TokenGrantKycTransactionBody.decode(e,e.uint32());break}case 26:{d.tokenRevokeKyc=$root.proto.TokenRevokeKycTransactionBody.decode(e,e.uint32());break}case 27:{d.tokenDeletion=$root.proto.TokenDeleteTransactionBody.decode(e,e.uint32());break}case 28:{d.tokenUpdate=$root.proto.TokenUpdateTransactionBody.decode(e,e.uint32());break}case 29:{d.tokenMint=$root.proto.TokenMintTransactionBody.decode(e,e.uint32());break}case 30:{d.tokenBurn=$root.proto.TokenBurnTransactionBody.decode(e,e.uint32());break}case 31:{d.tokenWipe=$root.proto.TokenWipeAccountTransactionBody.decode(e,e.uint32());break}case 32:{d.tokenAssociate=$root.proto.TokenAssociateTransactionBody.decode(e,e.uint32());break}case 33:{d.tokenDissociate=$root.proto.TokenDissociateTransactionBody.decode(e,e.uint32());break}case 39:{d.tokenFeeScheduleUpdate=$root.proto.TokenFeeScheduleUpdateTransactionBody.decode(e,e.uint32());break}case 35:{d.tokenPause=$root.proto.TokenPauseTransactionBody.decode(e,e.uint32());break}case 36:{d.tokenUnpause=$root.proto.TokenUnpauseTransactionBody.decode(e,e.uint32());break}case 34:{d.scheduleDelete=$root.proto.ScheduleDeleteTransactionBody.decode(e,e.uint32());break}case 40:{d.utilPrng=$root.proto.UtilPrngTransactionBody.decode(e,e.uint32());break}case 41:{d.tokenUpdateNfts=$root.proto.TokenUpdateNftsTransactionBody.decode(e,e.uint32());break}case 42:{d.nodeCreate=$root.proto.NodeCreateTransactionBody.decode(e,e.uint32());break}case 43:{d.nodeUpdate=$root.proto.NodeUpdateTransactionBody.decode(e,e.uint32());break}case 44:{d.nodeDelete=$root.proto.NodeDeleteTransactionBody.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.SchedulableTransactionBody\"},e}(),ScheduleDeleteTransactionBody:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.scheduleID=$root.proto.ScheduleID.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.ScheduleDeleteTransactionBody\"},e}(),UtilPrngTransactionBody:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.range=e.int32();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.UtilPrngTransactionBody\"},e}(),NodeCreateTransactionBody:function(){function e(e){if(this.gossipEndpoint=[],this.serviceEndpoint=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.accountId=$root.proto.AccountID.decode(e,e.uint32());break}case 2:{d.description=e.string();break}case 3:{d.gossipEndpoint&&d.gossipEndpoint.length||(d.gossipEndpoint=[]),d.gossipEndpoint.push($root.proto.ServiceEndpoint.decode(e,e.uint32()));break}case 4:{d.serviceEndpoint&&d.serviceEndpoint.length||(d.serviceEndpoint=[]),d.serviceEndpoint.push($root.proto.ServiceEndpoint.decode(e,e.uint32()));break}case 5:{d.gossipCaCertificate=e.bytes();break}case 6:{d.grpcCertificateHash=e.bytes();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.NodeCreateTransactionBody\"},e}(),NodeUpdateTransactionBody:function(){function e(e){if(this.gossipEndpoint=[],this.serviceEndpoint=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.nodeId=e.uint64();break}case 2:{d.accountId=$root.proto.AccountID.decode(e,e.uint32());break}case 3:{d.description=$root.google.protobuf.StringValue.decode(e,e.uint32());break}case 4:{d.gossipEndpoint&&d.gossipEndpoint.length||(d.gossipEndpoint=[]),d.gossipEndpoint.push($root.proto.ServiceEndpoint.decode(e,e.uint32()));break}case 5:{d.serviceEndpoint&&d.serviceEndpoint.length||(d.serviceEndpoint=[]),d.serviceEndpoint.push($root.proto.ServiceEndpoint.decode(e,e.uint32()));break}case 6:{d.gossipCaCertificate=$root.google.protobuf.BytesValue.decode(e,e.uint32());break}case 7:{d.grpcCertificateHash=$root.google.protobuf.BytesValue.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.NodeUpdateTransactionBody\"},e}(),NodeDeleteTransactionBody:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.nodeId=e.uint64();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.NodeDeleteTransactionBody\"},e}(),ScheduleSignTransactionBody:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.scheduleID=$root.proto.ScheduleID.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.ScheduleSignTransactionBody\"},e}(),NodeStakeUpdateTransactionBody:function(){function e(e){if(this.nodeStake=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.endOfStakingPeriod=$root.proto.Timestamp.decode(e,e.uint32());break}case 2:{d.nodeStake&&d.nodeStake.length||(d.nodeStake=[]),d.nodeStake.push($root.proto.NodeStake.decode(e,e.uint32()));break}case 3:{d.maxStakingRewardRatePerHbar=e.int64();break}case 4:{d.nodeRewardFeeFraction=$root.proto.Fraction.decode(e,e.uint32());break}case 5:{d.stakingPeriodsStored=e.int64();break}case 6:{d.stakingPeriod=e.int64();break}case 7:{d.stakingRewardFeeFraction=$root.proto.Fraction.decode(e,e.uint32());break}case 8:{d.stakingStartThreshold=e.int64();break}case 9:{d.stakingRewardRate=e.int64();break}case 10:{d.reservedStakingRewards=e.int64();break}case 11:{d.unreservedStakingRewardBalance=e.int64();break}case 12:{d.rewardBalanceThreshold=e.int64();break}case 13:{d.maxStakeRewarded=e.int64();break}case 14:{d.maxTotalReward=e.int64();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.NodeStakeUpdateTransactionBody\"},e}(),NodeStake:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.maxStake=e.int64();break}case 2:{d.minStake=e.int64();break}case 3:{d.nodeId=e.int64();break}case 4:{d.rewardRate=e.int64();break}case 5:{d.stake=e.int64();break}case 6:{d.stakeNotRewarded=e.int64();break}case 7:{d.stakeRewarded=e.int64();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.NodeStake\"},e}(),ResponseHeader:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.nodeTransactionPrecheckCode=e.int32();break}case 2:{d.responseType=e.int32();break}case 3:{d.cost=e.uint64();break}case 4:{d.stateProof=e.bytes();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.ResponseHeader\"},e}(),ResponseCodeEnum:function(){const e={},o=Object.create(e);return o[e[0]=\"OK\"]=0,o[e[1]=\"INVALID_TRANSACTION\"]=1,o[e[2]=\"PAYER_ACCOUNT_NOT_FOUND\"]=2,o[e[3]=\"INVALID_NODE_ACCOUNT\"]=3,o[e[4]=\"TRANSACTION_EXPIRED\"]=4,o[e[5]=\"INVALID_TRANSACTION_START\"]=5,o[e[6]=\"INVALID_TRANSACTION_DURATION\"]=6,o[e[7]=\"INVALID_SIGNATURE\"]=7,o[e[8]=\"MEMO_TOO_LONG\"]=8,o[e[9]=\"INSUFFICIENT_TX_FEE\"]=9,o[e[10]=\"INSUFFICIENT_PAYER_BALANCE\"]=10,o[e[11]=\"DUPLICATE_TRANSACTION\"]=11,o[e[12]=\"BUSY\"]=12,o[e[13]=\"NOT_SUPPORTED\"]=13,o[e[14]=\"INVALID_FILE_ID\"]=14,o[e[15]=\"INVALID_ACCOUNT_ID\"]=15,o[e[16]=\"INVALID_CONTRACT_ID\"]=16,o[e[17]=\"INVALID_TRANSACTION_ID\"]=17,o[e[18]=\"RECEIPT_NOT_FOUND\"]=18,o[e[19]=\"RECORD_NOT_FOUND\"]=19,o[e[20]=\"INVALID_SOLIDITY_ID\"]=20,o[e[21]=\"UNKNOWN\"]=21,o[e[22]=\"SUCCESS\"]=22,o[e[23]=\"FAIL_INVALID\"]=23,o[e[24]=\"FAIL_FEE\"]=24,o[e[25]=\"FAIL_BALANCE\"]=25,o[e[26]=\"KEY_REQUIRED\"]=26,o[e[27]=\"BAD_ENCODING\"]=27,o[e[28]=\"INSUFFICIENT_ACCOUNT_BALANCE\"]=28,o[e[29]=\"INVALID_SOLIDITY_ADDRESS\"]=29,o[e[30]=\"INSUFFICIENT_GAS\"]=30,o[e[31]=\"CONTRACT_SIZE_LIMIT_EXCEEDED\"]=31,o[e[32]=\"LOCAL_CALL_MODIFICATION_EXCEPTION\"]=32,o[e[33]=\"CONTRACT_REVERT_EXECUTED\"]=33,o[e[34]=\"CONTRACT_EXECUTION_EXCEPTION\"]=34,o[e[35]=\"INVALID_RECEIVING_NODE_ACCOUNT\"]=35,o[e[36]=\"MISSING_QUERY_HEADER\"]=36,o[e[37]=\"ACCOUNT_UPDATE_FAILED\"]=37,o[e[38]=\"INVALID_KEY_ENCODING\"]=38,o[e[39]=\"NULL_SOLIDITY_ADDRESS\"]=39,o[e[40]=\"CONTRACT_UPDATE_FAILED\"]=40,o[e[41]=\"INVALID_QUERY_HEADER\"]=41,o[e[42]=\"INVALID_FEE_SUBMITTED\"]=42,o[e[43]=\"INVALID_PAYER_SIGNATURE\"]=43,o[e[44]=\"KEY_NOT_PROVIDED\"]=44,o[e[45]=\"INVALID_EXPIRATION_TIME\"]=45,o[e[46]=\"NO_WACL_KEY\"]=46,o[e[47]=\"FILE_CONTENT_EMPTY\"]=47,o[e[48]=\"INVALID_ACCOUNT_AMOUNTS\"]=48,o[e[49]=\"EMPTY_TRANSACTION_BODY\"]=49,o[e[50]=\"INVALID_TRANSACTION_BODY\"]=50,o[e[51]=\"INVALID_SIGNATURE_TYPE_MISMATCHING_KEY\"]=51,o[e[52]=\"INVALID_SIGNATURE_COUNT_MISMATCHING_KEY\"]=52,o[e[53]=\"EMPTY_LIVE_HASH_BODY\"]=53,o[e[54]=\"EMPTY_LIVE_HASH\"]=54,o[e[55]=\"EMPTY_LIVE_HASH_KEYS\"]=55,o[e[56]=\"INVALID_LIVE_HASH_SIZE\"]=56,o[e[57]=\"EMPTY_QUERY_BODY\"]=57,o[e[58]=\"EMPTY_LIVE_HASH_QUERY\"]=58,o[e[59]=\"LIVE_HASH_NOT_FOUND\"]=59,o[e[60]=\"ACCOUNT_ID_DOES_NOT_EXIST\"]=60,o[e[61]=\"LIVE_HASH_ALREADY_EXISTS\"]=61,o[e[62]=\"INVALID_FILE_WACL\"]=62,o[e[63]=\"SERIALIZATION_FAILED\"]=63,o[e[64]=\"TRANSACTION_OVERSIZE\"]=64,o[e[65]=\"TRANSACTION_TOO_MANY_LAYERS\"]=65,o[e[66]=\"CONTRACT_DELETED\"]=66,o[e[67]=\"PLATFORM_NOT_ACTIVE\"]=67,o[e[68]=\"KEY_PREFIX_MISMATCH\"]=68,o[e[69]=\"PLATFORM_TRANSACTION_NOT_CREATED\"]=69,o[e[70]=\"INVALID_RENEWAL_PERIOD\"]=70,o[e[71]=\"INVALID_PAYER_ACCOUNT_ID\"]=71,o[e[72]=\"ACCOUNT_DELETED\"]=72,o[e[73]=\"FILE_DELETED\"]=73,o[e[74]=\"ACCOUNT_REPEATED_IN_ACCOUNT_AMOUNTS\"]=74,o[e[75]=\"SETTING_NEGATIVE_ACCOUNT_BALANCE\"]=75,o[e[76]=\"OBTAINER_REQUIRED\"]=76,o[e[77]=\"OBTAINER_SAME_CONTRACT_ID\"]=77,o[e[78]=\"OBTAINER_DOES_NOT_EXIST\"]=78,o[e[79]=\"MODIFYING_IMMUTABLE_CONTRACT\"]=79,o[e[80]=\"FILE_SYSTEM_EXCEPTION\"]=80,o[e[81]=\"AUTORENEW_DURATION_NOT_IN_RANGE\"]=81,o[e[82]=\"ERROR_DECODING_BYTESTRING\"]=82,o[e[83]=\"CONTRACT_FILE_EMPTY\"]=83,o[e[84]=\"CONTRACT_BYTECODE_EMPTY\"]=84,o[e[85]=\"INVALID_INITIAL_BALANCE\"]=85,o[e[86]=\"INVALID_RECEIVE_RECORD_THRESHOLD\"]=86,o[e[87]=\"INVALID_SEND_RECORD_THRESHOLD\"]=87,o[e[88]=\"ACCOUNT_IS_NOT_GENESIS_ACCOUNT\"]=88,o[e[89]=\"PAYER_ACCOUNT_UNAUTHORIZED\"]=89,o[e[90]=\"INVALID_FREEZE_TRANSACTION_BODY\"]=90,o[e[91]=\"FREEZE_TRANSACTION_BODY_NOT_FOUND\"]=91,o[e[92]=\"TRANSFER_LIST_SIZE_LIMIT_EXCEEDED\"]=92,o[e[93]=\"RESULT_SIZE_LIMIT_EXCEEDED\"]=93,o[e[94]=\"NOT_SPECIAL_ACCOUNT\"]=94,o[e[95]=\"CONTRACT_NEGATIVE_GAS\"]=95,o[e[96]=\"CONTRACT_NEGATIVE_VALUE\"]=96,o[e[97]=\"INVALID_FEE_FILE\"]=97,o[e[98]=\"INVALID_EXCHANGE_RATE_FILE\"]=98,o[e[99]=\"INSUFFICIENT_LOCAL_CALL_GAS\"]=99,o[e[100]=\"ENTITY_NOT_ALLOWED_TO_DELETE\"]=100,o[e[101]=\"AUTHORIZATION_FAILED\"]=101,o[e[102]=\"FILE_UPLOADED_PROTO_INVALID\"]=102,o[e[103]=\"FILE_UPLOADED_PROTO_NOT_SAVED_TO_DISK\"]=103,o[e[104]=\"FEE_SCHEDULE_FILE_PART_UPLOADED\"]=104,o[e[105]=\"EXCHANGE_RATE_CHANGE_LIMIT_EXCEEDED\"]=105,o[e[106]=\"MAX_CONTRACT_STORAGE_EXCEEDED\"]=106,o[e[107]=\"TRANSFER_ACCOUNT_SAME_AS_DELETE_ACCOUNT\"]=107,o[e[108]=\"TOTAL_LEDGER_BALANCE_INVALID\"]=108,o[e[110]=\"EXPIRATION_REDUCTION_NOT_ALLOWED\"]=110,o[e[111]=\"MAX_GAS_LIMIT_EXCEEDED\"]=111,o[e[112]=\"MAX_FILE_SIZE_EXCEEDED\"]=112,o[e[113]=\"RECEIVER_SIG_REQUIRED\"]=113,o[e[150]=\"INVALID_TOPIC_ID\"]=150,o[e[155]=\"INVALID_ADMIN_KEY\"]=155,o[e[156]=\"INVALID_SUBMIT_KEY\"]=156,o[e[157]=\"UNAUTHORIZED\"]=157,o[e[158]=\"INVALID_TOPIC_MESSAGE\"]=158,o[e[159]=\"INVALID_AUTORENEW_ACCOUNT\"]=159,o[e[160]=\"AUTORENEW_ACCOUNT_NOT_ALLOWED\"]=160,o[e[162]=\"TOPIC_EXPIRED\"]=162,o[e[163]=\"INVALID_CHUNK_NUMBER\"]=163,o[e[164]=\"INVALID_CHUNK_TRANSACTION_ID\"]=164,o[e[165]=\"ACCOUNT_FROZEN_FOR_TOKEN\"]=165,o[e[166]=\"TOKENS_PER_ACCOUNT_LIMIT_EXCEEDED\"]=166,o[e[167]=\"INVALID_TOKEN_ID\"]=167,o[e[168]=\"INVALID_TOKEN_DECIMALS\"]=168,o[e[169]=\"INVALID_TOKEN_INITIAL_SUPPLY\"]=169,o[e[170]=\"INVALID_TREASURY_ACCOUNT_FOR_TOKEN\"]=170,o[e[171]=\"INVALID_TOKEN_SYMBOL\"]=171,o[e[172]=\"TOKEN_HAS_NO_FREEZE_KEY\"]=172,o[e[173]=\"TRANSFERS_NOT_ZERO_SUM_FOR_TOKEN\"]=173,o[e[174]=\"MISSING_TOKEN_SYMBOL\"]=174,o[e[175]=\"TOKEN_SYMBOL_TOO_LONG\"]=175,o[e[176]=\"ACCOUNT_KYC_NOT_GRANTED_FOR_TOKEN\"]=176,o[e[177]=\"TOKEN_HAS_NO_KYC_KEY\"]=177,o[e[178]=\"INSUFFICIENT_TOKEN_BALANCE\"]=178,o[e[179]=\"TOKEN_WAS_DELETED\"]=179,o[e[180]=\"TOKEN_HAS_NO_SUPPLY_KEY\"]=180,o[e[181]=\"TOKEN_HAS_NO_WIPE_KEY\"]=181,o[e[182]=\"INVALID_TOKEN_MINT_AMOUNT\"]=182,o[e[183]=\"INVALID_TOKEN_BURN_AMOUNT\"]=183,o[e[184]=\"TOKEN_NOT_ASSOCIATED_TO_ACCOUNT\"]=184,o[e[185]=\"CANNOT_WIPE_TOKEN_TREASURY_ACCOUNT\"]=185,o[e[186]=\"INVALID_KYC_KEY\"]=186,o[e[187]=\"INVALID_WIPE_KEY\"]=187,o[e[188]=\"INVALID_FREEZE_KEY\"]=188,o[e[189]=\"INVALID_SUPPLY_KEY\"]=189,o[e[190]=\"MISSING_TOKEN_NAME\"]=190,o[e[191]=\"TOKEN_NAME_TOO_LONG\"]=191,o[e[192]=\"INVALID_WIPING_AMOUNT\"]=192,o[e[193]=\"TOKEN_IS_IMMUTABLE\"]=193,o[e[194]=\"TOKEN_ALREADY_ASSOCIATED_TO_ACCOUNT\"]=194,o[e[195]=\"TRANSACTION_REQUIRES_ZERO_TOKEN_BALANCES\"]=195,o[e[196]=\"ACCOUNT_IS_TREASURY\"]=196,o[e[197]=\"TOKEN_ID_REPEATED_IN_TOKEN_LIST\"]=197,o[e[198]=\"TOKEN_TRANSFER_LIST_SIZE_LIMIT_EXCEEDED\"]=198,o[e[199]=\"EMPTY_TOKEN_TRANSFER_BODY\"]=199,o[e[200]=\"EMPTY_TOKEN_TRANSFER_ACCOUNT_AMOUNTS\"]=200,o[e[201]=\"INVALID_SCHEDULE_ID\"]=201,o[e[202]=\"SCHEDULE_IS_IMMUTABLE\"]=202,o[e[203]=\"INVALID_SCHEDULE_PAYER_ID\"]=203,o[e[204]=\"INVALID_SCHEDULE_ACCOUNT_ID\"]=204,o[e[205]=\"NO_NEW_VALID_SIGNATURES\"]=205,o[e[206]=\"UNRESOLVABLE_REQUIRED_SIGNERS\"]=206,o[e[207]=\"SCHEDULED_TRANSACTION_NOT_IN_WHITELIST\"]=207,o[e[208]=\"SOME_SIGNATURES_WERE_INVALID\"]=208,o[e[209]=\"TRANSACTION_ID_FIELD_NOT_ALLOWED\"]=209,o[e[210]=\"IDENTICAL_SCHEDULE_ALREADY_CREATED\"]=210,o[e[211]=\"INVALID_ZERO_BYTE_IN_STRING\"]=211,o[e[212]=\"SCHEDULE_ALREADY_DELETED\"]=212,o[e[213]=\"SCHEDULE_ALREADY_EXECUTED\"]=213,o[e[214]=\"MESSAGE_SIZE_TOO_LARGE\"]=214,o[e[215]=\"OPERATION_REPEATED_IN_BUCKET_GROUPS\"]=215,o[e[216]=\"BUCKET_CAPACITY_OVERFLOW\"]=216,o[e[217]=\"NODE_CAPACITY_NOT_SUFFICIENT_FOR_OPERATION\"]=217,o[e[218]=\"BUCKET_HAS_NO_THROTTLE_GROUPS\"]=218,o[e[219]=\"THROTTLE_GROUP_HAS_ZERO_OPS_PER_SEC\"]=219,o[e[220]=\"SUCCESS_BUT_MISSING_EXPECTED_OPERATION\"]=220,o[e[221]=\"UNPARSEABLE_THROTTLE_DEFINITIONS\"]=221,o[e[222]=\"INVALID_THROTTLE_DEFINITIONS\"]=222,o[e[223]=\"ACCOUNT_EXPIRED_AND_PENDING_REMOVAL\"]=223,o[e[224]=\"INVALID_TOKEN_MAX_SUPPLY\"]=224,o[e[225]=\"INVALID_TOKEN_NFT_SERIAL_NUMBER\"]=225,o[e[226]=\"INVALID_NFT_ID\"]=226,o[e[227]=\"METADATA_TOO_LONG\"]=227,o[e[228]=\"BATCH_SIZE_LIMIT_EXCEEDED\"]=228,o[e[229]=\"INVALID_QUERY_RANGE\"]=229,o[e[230]=\"FRACTION_DIVIDES_BY_ZERO\"]=230,o[e[231]=\"INSUFFICIENT_PAYER_BALANCE_FOR_CUSTOM_FEE\"]=231,o[e[232]=\"CUSTOM_FEES_LIST_TOO_LONG\"]=232,o[e[233]=\"INVALID_CUSTOM_FEE_COLLECTOR\"]=233,o[e[234]=\"INVALID_TOKEN_ID_IN_CUSTOM_FEES\"]=234,o[e[235]=\"TOKEN_NOT_ASSOCIATED_TO_FEE_COLLECTOR\"]=235,o[e[236]=\"TOKEN_MAX_SUPPLY_REACHED\"]=236,o[e[237]=\"SENDER_DOES_NOT_OWN_NFT_SERIAL_NO\"]=237,o[e[238]=\"CUSTOM_FEE_NOT_FULLY_SPECIFIED\"]=238,o[e[239]=\"CUSTOM_FEE_MUST_BE_POSITIVE\"]=239,o[e[240]=\"TOKEN_HAS_NO_FEE_SCHEDULE_KEY\"]=240,o[e[241]=\"CUSTOM_FEE_OUTSIDE_NUMERIC_RANGE\"]=241,o[e[242]=\"ROYALTY_FRACTION_CANNOT_EXCEED_ONE\"]=242,o[e[243]=\"FRACTIONAL_FEE_MAX_AMOUNT_LESS_THAN_MIN_AMOUNT\"]=243,o[e[244]=\"CUSTOM_SCHEDULE_ALREADY_HAS_NO_FEES\"]=244,o[e[245]=\"CUSTOM_FEE_DENOMINATION_MUST_BE_FUNGIBLE_COMMON\"]=245,o[e[246]=\"CUSTOM_FRACTIONAL_FEE_ONLY_ALLOWED_FOR_FUNGIBLE_COMMON\"]=246,o[e[247]=\"INVALID_CUSTOM_FEE_SCHEDULE_KEY\"]=247,o[e[248]=\"INVALID_TOKEN_MINT_METADATA\"]=248,o[e[249]=\"INVALID_TOKEN_BURN_METADATA\"]=249,o[e[250]=\"CURRENT_TREASURY_STILL_OWNS_NFTS\"]=250,o[e[251]=\"ACCOUNT_STILL_OWNS_NFTS\"]=251,o[e[252]=\"TREASURY_MUST_OWN_BURNED_NFT\"]=252,o[e[253]=\"ACCOUNT_DOES_NOT_OWN_WIPED_NFT\"]=253,o[e[254]=\"ACCOUNT_AMOUNT_TRANSFERS_ONLY_ALLOWED_FOR_FUNGIBLE_COMMON\"]=254,o[e[255]=\"MAX_NFTS_IN_PRICE_REGIME_HAVE_BEEN_MINTED\"]=255,o[e[256]=\"PAYER_ACCOUNT_DELETED\"]=256,o[e[257]=\"CUSTOM_FEE_CHARGING_EXCEEDED_MAX_RECURSION_DEPTH\"]=257,o[e[258]=\"CUSTOM_FEE_CHARGING_EXCEEDED_MAX_ACCOUNT_AMOUNTS\"]=258,o[e[259]=\"INSUFFICIENT_SENDER_ACCOUNT_BALANCE_FOR_CUSTOM_FEE\"]=259,o[e[260]=\"SERIAL_NUMBER_LIMIT_REACHED\"]=260,o[e[261]=\"CUSTOM_ROYALTY_FEE_ONLY_ALLOWED_FOR_NON_FUNGIBLE_UNIQUE\"]=261,o[e[262]=\"NO_REMAINING_AUTOMATIC_ASSOCIATIONS\"]=262,o[e[263]=\"EXISTING_AUTOMATIC_ASSOCIATIONS_EXCEED_GIVEN_LIMIT\"]=263,o[e[264]=\"REQUESTED_NUM_AUTOMATIC_ASSOCIATIONS_EXCEEDS_ASSOCIATION_LIMIT\"]=264,o[e[265]=\"TOKEN_IS_PAUSED\"]=265,o[e[266]=\"TOKEN_HAS_NO_PAUSE_KEY\"]=266,o[e[267]=\"INVALID_PAUSE_KEY\"]=267,o[e[268]=\"FREEZE_UPDATE_FILE_DOES_NOT_EXIST\"]=268,o[e[269]=\"FREEZE_UPDATE_FILE_HASH_DOES_NOT_MATCH\"]=269,o[e[270]=\"NO_UPGRADE_HAS_BEEN_PREPARED\"]=270,o[e[271]=\"NO_FREEZE_IS_SCHEDULED\"]=271,o[e[272]=\"UPDATE_FILE_HASH_CHANGED_SINCE_PREPARE_UPGRADE\"]=272,o[e[273]=\"FREEZE_START_TIME_MUST_BE_FUTURE\"]=273,o[e[274]=\"PREPARED_UPDATE_FILE_IS_IMMUTABLE\"]=274,o[e[275]=\"FREEZE_ALREADY_SCHEDULED\"]=275,o[e[276]=\"FREEZE_UPGRADE_IN_PROGRESS\"]=276,o[e[277]=\"UPDATE_FILE_ID_DOES_NOT_MATCH_PREPARED\"]=277,o[e[278]=\"UPDATE_FILE_HASH_DOES_NOT_MATCH_PREPARED\"]=278,o[e[279]=\"CONSENSUS_GAS_EXHAUSTED\"]=279,o[e[280]=\"REVERTED_SUCCESS\"]=280,o[e[281]=\"MAX_STORAGE_IN_PRICE_REGIME_HAS_BEEN_USED\"]=281,o[e[282]=\"INVALID_ALIAS_KEY\"]=282,o[e[283]=\"UNEXPECTED_TOKEN_DECIMALS\"]=283,o[e[284]=\"INVALID_PROXY_ACCOUNT_ID\"]=284,o[e[285]=\"INVALID_TRANSFER_ACCOUNT_ID\"]=285,o[e[286]=\"INVALID_FEE_COLLECTOR_ACCOUNT_ID\"]=286,o[e[287]=\"ALIAS_IS_IMMUTABLE\"]=287,o[e[288]=\"SPENDER_ACCOUNT_SAME_AS_OWNER\"]=288,o[e[289]=\"AMOUNT_EXCEEDS_TOKEN_MAX_SUPPLY\"]=289,o[e[290]=\"NEGATIVE_ALLOWANCE_AMOUNT\"]=290,o[e[291]=\"CANNOT_APPROVE_FOR_ALL_FUNGIBLE_COMMON\"]=291,o[e[292]=\"SPENDER_DOES_NOT_HAVE_ALLOWANCE\"]=292,o[e[293]=\"AMOUNT_EXCEEDS_ALLOWANCE\"]=293,o[e[294]=\"MAX_ALLOWANCES_EXCEEDED\"]=294,o[e[295]=\"EMPTY_ALLOWANCES\"]=295,o[e[296]=\"SPENDER_ACCOUNT_REPEATED_IN_ALLOWANCES\"]=296,o[e[297]=\"REPEATED_SERIAL_NUMS_IN_NFT_ALLOWANCES\"]=297,o[e[298]=\"FUNGIBLE_TOKEN_IN_NFT_ALLOWANCES\"]=298,o[e[299]=\"NFT_IN_FUNGIBLE_TOKEN_ALLOWANCES\"]=299,o[e[300]=\"INVALID_ALLOWANCE_OWNER_ID\"]=300,o[e[301]=\"INVALID_ALLOWANCE_SPENDER_ID\"]=301,o[e[302]=\"REPEATED_ALLOWANCES_TO_DELETE\"]=302,o[e[303]=\"INVALID_DELEGATING_SPENDER\"]=303,o[e[304]=\"DELEGATING_SPENDER_CANNOT_GRANT_APPROVE_FOR_ALL\"]=304,o[e[305]=\"DELEGATING_SPENDER_DOES_NOT_HAVE_APPROVE_FOR_ALL\"]=305,o[e[306]=\"SCHEDULE_EXPIRATION_TIME_TOO_FAR_IN_FUTURE\"]=306,o[e[307]=\"SCHEDULE_EXPIRATION_TIME_MUST_BE_HIGHER_THAN_CONSENSUS_TIME\"]=307,o[e[308]=\"SCHEDULE_FUTURE_THROTTLE_EXCEEDED\"]=308,o[e[309]=\"SCHEDULE_FUTURE_GAS_LIMIT_EXCEEDED\"]=309,o[e[310]=\"INVALID_ETHEREUM_TRANSACTION\"]=310,o[e[311]=\"WRONG_CHAIN_ID\"]=311,o[e[312]=\"WRONG_NONCE\"]=312,o[e[313]=\"ACCESS_LIST_UNSUPPORTED\"]=313,o[e[314]=\"SCHEDULE_PENDING_EXPIRATION\"]=314,o[e[315]=\"CONTRACT_IS_TOKEN_TREASURY\"]=315,o[e[316]=\"CONTRACT_HAS_NON_ZERO_TOKEN_BALANCES\"]=316,o[e[317]=\"CONTRACT_EXPIRED_AND_PENDING_REMOVAL\"]=317,o[e[318]=\"CONTRACT_HAS_NO_AUTO_RENEW_ACCOUNT\"]=318,o[e[319]=\"PERMANENT_REMOVAL_REQUIRES_SYSTEM_INITIATION\"]=319,o[e[320]=\"PROXY_ACCOUNT_ID_FIELD_IS_DEPRECATED\"]=320,o[e[321]=\"SELF_STAKING_IS_NOT_ALLOWED\"]=321,o[e[322]=\"INVALID_STAKING_ID\"]=322,o[e[323]=\"STAKING_NOT_ENABLED\"]=323,o[e[324]=\"INVALID_PRNG_RANGE\"]=324,o[e[325]=\"MAX_ENTITIES_IN_PRICE_REGIME_HAVE_BEEN_CREATED\"]=325,o[e[326]=\"INVALID_FULL_PREFIX_SIGNATURE_FOR_PRECOMPILE\"]=326,o[e[327]=\"INSUFFICIENT_BALANCES_FOR_STORAGE_RENT\"]=327,o[e[328]=\"MAX_CHILD_RECORDS_EXCEEDED\"]=328,o[e[329]=\"INSUFFICIENT_BALANCES_FOR_RENEWAL_FEES\"]=329,o[e[330]=\"TRANSACTION_HAS_UNKNOWN_FIELDS\"]=330,o[e[331]=\"ACCOUNT_IS_IMMUTABLE\"]=331,o[e[332]=\"ALIAS_ALREADY_ASSIGNED\"]=332,o[e[333]=\"INVALID_METADATA_KEY\"]=333,o[e[334]=\"TOKEN_HAS_NO_METADATA_KEY\"]=334,o[e[335]=\"MISSING_TOKEN_METADATA\"]=335,o[e[336]=\"MISSING_SERIAL_NUMBERS\"]=336,o[e[337]=\"TOKEN_HAS_NO_ADMIN_KEY\"]=337,o[e[338]=\"NODE_DELETED\"]=338,o[e[339]=\"INVALID_NODE_ID\"]=339,o[e[340]=\"INVALID_GOSSIP_ENDPOINT\"]=340,o[e[341]=\"INVALID_NODE_ACCOUNT_ID\"]=341,o[e[342]=\"INVALID_NODE_DESCRIPTION\"]=342,o[e[343]=\"INVALID_SERVICE_ENDPOINT\"]=343,o[e[344]=\"INVALID_GOSSIP_CAE_CERTIFICATE\"]=344,o[e[345]=\"INVALID_GRPC_CERTIFICATE\"]=345,o[e[346]=\"INVALID_MAX_AUTO_ASSOCIATIONS\"]=346,o[e[347]=\"MAX_NODES_CREATED\"]=347,o[e[348]=\"IP_FQDN_CANNOT_BE_SET_FOR_SAME_ENDPOINT\"]=348,o[e[349]=\"GOSSIP_ENDPOINT_CANNOT_HAVE_FQDN\"]=349,o[e[350]=\"FQDN_SIZE_TOO_LARGE\"]=350,o[e[351]=\"INVALID_ENDPOINT\"]=351,o[e[352]=\"GOSSIP_ENDPOINTS_EXCEEDED_LIMIT\"]=352,o}(),GetBySolidityIDQuery:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.QueryHeader.decode(e,e.uint32());break}case 2:{d.solidityID=e.string();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.GetBySolidityIDQuery\"},e}(),GetBySolidityIDResponse:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.ResponseHeader.decode(e,e.uint32());break}case 2:{d.accountID=$root.proto.AccountID.decode(e,e.uint32());break}case 3:{d.fileID=$root.proto.FileID.decode(e,e.uint32());break}case 4:{d.contractID=$root.proto.ContractID.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.GetBySolidityIDResponse\"},e}(),ContractLoginfo:function(){function e(e){if(this.topic=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.contractID=$root.proto.ContractID.decode(e,e.uint32());break}case 2:{d.bloom=e.bytes();break}case 3:{d.topic&&d.topic.length||(d.topic=[]),d.topic.push(e.bytes());break}case 4:{d.data=e.bytes();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.ContractLoginfo\"},e}(),ContractFunctionResult:function(){function e(e){if(this.logInfo=[],this.createdContractIDs=[],this.contractNonces=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.contractID=$root.proto.ContractID.decode(e,e.uint32());break}case 2:{d.contractCallResult=e.bytes();break}case 3:{d.errorMessage=e.string();break}case 4:{d.bloom=e.bytes();break}case 5:{d.gasUsed=e.uint64();break}case 6:{d.logInfo&&d.logInfo.length||(d.logInfo=[]),d.logInfo.push($root.proto.ContractLoginfo.decode(e,e.uint32()));break}case 7:{d.createdContractIDs&&d.createdContractIDs.length||(d.createdContractIDs=[]),d.createdContractIDs.push($root.proto.ContractID.decode(e,e.uint32()));break}case 9:{d.evmAddress=$root.google.protobuf.BytesValue.decode(e,e.uint32());break}case 10:{d.gas=e.int64();break}case 11:{d.amount=e.int64();break}case 12:{d.functionParameters=e.bytes();break}case 13:{d.senderId=$root.proto.AccountID.decode(e,e.uint32());break}case 14:{d.contractNonces&&d.contractNonces.length||(d.contractNonces=[]),d.contractNonces.push($root.proto.ContractNonceInfo.decode(e,e.uint32()));break}case 15:{d.signerNonce=$root.google.protobuf.Int64Value.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.ContractFunctionResult\"},e}(),ContractCallLocalQuery:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.QueryHeader.decode(e,e.uint32());break}case 2:{d.contractID=$root.proto.ContractID.decode(e,e.uint32());break}case 3:{d.gas=e.int64();break}case 4:{d.functionParameters=e.bytes();break}case 5:{d.maxResultSize=e.int64();break}case 6:{d.senderId=$root.proto.AccountID.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.ContractCallLocalQuery\"},e}(),ContractCallLocalResponse:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.ResponseHeader.decode(e,e.uint32());break}case 2:{d.functionResult=$root.proto.ContractFunctionResult.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.ContractCallLocalResponse\"},e}(),ContractNonceInfo:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.contractId=$root.proto.ContractID.decode(e,e.uint32());break}case 2:{d.nonce=e.int64();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.ContractNonceInfo\"},e}(),ContractGetInfoQuery:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.QueryHeader.decode(e,e.uint32());break}case 2:{d.contractID=$root.proto.ContractID.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.ContractGetInfoQuery\"},e}(),ContractGetInfoResponse:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.ResponseHeader.decode(e,e.uint32());break}case 2:{d.contractInfo=$root.proto.ContractGetInfoResponse.ContractInfo.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.ContractGetInfoResponse\"},e.ContractInfo=function(){function e(e){if(this.tokenRelationships=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.contractID=$root.proto.ContractID.decode(e,e.uint32());break}case 2:{d.accountID=$root.proto.AccountID.decode(e,e.uint32());break}case 3:{d.contractAccountID=e.string();break}case 4:{d.adminKey=$root.proto.Key.decode(e,e.uint32());break}case 5:{d.expirationTime=$root.proto.Timestamp.decode(e,e.uint32());break}case 6:{d.autoRenewPeriod=$root.proto.Duration.decode(e,e.uint32());break}case 7:{d.storage=e.int64();break}case 8:{d.memo=e.string();break}case 9:{d.balance=e.uint64();break}case 10:{d.deleted=e.bool();break}case 11:{d.tokenRelationships&&d.tokenRelationships.length||(d.tokenRelationships=[]),d.tokenRelationships.push($root.proto.TokenRelationship.decode(e,e.uint32()));break}case 12:{d.ledgerId=e.bytes();break}case 13:{d.autoRenewAccountId=$root.proto.AccountID.decode(e,e.uint32());break}case 14:{d.maxAutomaticTokenAssociations=e.int32();break}case 15:{d.stakingInfo=$root.proto.StakingInfo.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.ContractGetInfoResponse.ContractInfo\"},e}(),e}(),ContractGetBytecodeQuery:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.QueryHeader.decode(e,e.uint32());break}case 2:{d.contractID=$root.proto.ContractID.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.ContractGetBytecodeQuery\"},e}(),ContractGetBytecodeResponse:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.ResponseHeader.decode(e,e.uint32());break}case 6:{d.bytecode=e.bytes();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.ContractGetBytecodeResponse\"},e}(),ContractGetRecordsQuery:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.QueryHeader.decode(e,e.uint32());break}case 2:{d.contractID=$root.proto.ContractID.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.ContractGetRecordsQuery\"},e}(),ContractGetRecordsResponse:function(){function e(e){if(this.records=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.ResponseHeader.decode(e,e.uint32());break}case 2:{d.contractID=$root.proto.ContractID.decode(e,e.uint32());break}case 3:{d.records&&d.records.length||(d.records=[]),d.records.push($root.proto.TransactionRecord.decode(e,e.uint32()));break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.ContractGetRecordsResponse\"},e}(),TransactionRecord:function(){function e(e){if(this.tokenTransferLists=[],this.assessedCustomFees=[],this.automaticTokenAssociations=[],this.paidStakingRewards=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.receipt=$root.proto.TransactionReceipt.decode(e,e.uint32());break}case 2:{d.transactionHash=e.bytes();break}case 3:{d.consensusTimestamp=$root.proto.Timestamp.decode(e,e.uint32());break}case 4:{d.transactionID=$root.proto.TransactionID.decode(e,e.uint32());break}case 5:{d.memo=e.string();break}case 6:{d.transactionFee=e.uint64();break}case 7:{d.contractCallResult=$root.proto.ContractFunctionResult.decode(e,e.uint32());break}case 8:{d.contractCreateResult=$root.proto.ContractFunctionResult.decode(e,e.uint32());break}case 10:{d.transferList=$root.proto.TransferList.decode(e,e.uint32());break}case 11:{d.tokenTransferLists&&d.tokenTransferLists.length||(d.tokenTransferLists=[]),d.tokenTransferLists.push($root.proto.TokenTransferList.decode(e,e.uint32()));break}case 12:{d.scheduleRef=$root.proto.ScheduleID.decode(e,e.uint32());break}case 13:{d.assessedCustomFees&&d.assessedCustomFees.length||(d.assessedCustomFees=[]),d.assessedCustomFees.push($root.proto.AssessedCustomFee.decode(e,e.uint32()));break}case 14:{d.automaticTokenAssociations&&d.automaticTokenAssociations.length||(d.automaticTokenAssociations=[]),d.automaticTokenAssociations.push($root.proto.TokenAssociation.decode(e,e.uint32()));break}case 15:{d.parentConsensusTimestamp=$root.proto.Timestamp.decode(e,e.uint32());break}case 16:{d.alias=e.bytes();break}case 17:{d.ethereumHash=e.bytes();break}case 18:{d.paidStakingRewards&&d.paidStakingRewards.length||(d.paidStakingRewards=[]),d.paidStakingRewards.push($root.proto.AccountAmount.decode(e,e.uint32()));break}case 19:{d.prngBytes=e.bytes();break}case 20:{d.prngNumber=e.int32();break}case 21:{d.evmAddress=e.bytes();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.TransactionRecord\"},e}(),TransactionReceipt:function(){function e(e){if(this.serialNumbers=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.status=e.int32();break}case 2:{d.accountID=$root.proto.AccountID.decode(e,e.uint32());break}case 3:{d.fileID=$root.proto.FileID.decode(e,e.uint32());break}case 4:{d.contractID=$root.proto.ContractID.decode(e,e.uint32());break}case 5:{d.exchangeRate=$root.proto.ExchangeRateSet.decode(e,e.uint32());break}case 6:{d.topicID=$root.proto.TopicID.decode(e,e.uint32());break}case 7:{d.topicSequenceNumber=e.uint64();break}case 8:{d.topicRunningHash=e.bytes();break}case 9:{d.topicRunningHashVersion=e.uint64();break}case 10:{d.tokenID=$root.proto.TokenID.decode(e,e.uint32());break}case 11:{d.newTotalSupply=e.uint64();break}case 12:{d.scheduleID=$root.proto.ScheduleID.decode(e,e.uint32());break}case 13:{d.scheduledTransactionID=$root.proto.TransactionID.decode(e,e.uint32());break}case 14:{if(d.serialNumbers&&d.serialNumbers.length||(d.serialNumbers=[]),2==(7&i))for(var a=e.uint32()+e.pos;e.pos>>3){case 1:{d.hbarEquiv=e.int32();break}case 2:{d.centEquiv=e.int32();break}case 3:{d.expirationTime=$root.proto.TimestampSeconds.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.ExchangeRate\"},e}(),ExchangeRateSet:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.currentRate=$root.proto.ExchangeRate.decode(e,e.uint32());break}case 2:{d.nextRate=$root.proto.ExchangeRate.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.ExchangeRateSet\"},e}(),CryptoGetAccountBalanceQuery:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.QueryHeader.decode(e,e.uint32());break}case 2:{d.accountID=$root.proto.AccountID.decode(e,e.uint32());break}case 3:{d.contractID=$root.proto.ContractID.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.CryptoGetAccountBalanceQuery\"},e}(),CryptoGetAccountBalanceResponse:function(){function e(e){if(this.tokenBalances=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.ResponseHeader.decode(e,e.uint32());break}case 2:{d.accountID=$root.proto.AccountID.decode(e,e.uint32());break}case 3:{d.balance=e.uint64();break}case 4:{d.tokenBalances&&d.tokenBalances.length||(d.tokenBalances=[]),d.tokenBalances.push($root.proto.TokenBalance.decode(e,e.uint32()));break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.CryptoGetAccountBalanceResponse\"},e}(),CryptoGetAccountRecordsQuery:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.QueryHeader.decode(e,e.uint32());break}case 2:{d.accountID=$root.proto.AccountID.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.CryptoGetAccountRecordsQuery\"},e}(),CryptoGetAccountRecordsResponse:function(){function e(e){if(this.records=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.ResponseHeader.decode(e,e.uint32());break}case 2:{d.accountID=$root.proto.AccountID.decode(e,e.uint32());break}case 3:{d.records&&d.records.length||(d.records=[]),d.records.push($root.proto.TransactionRecord.decode(e,e.uint32()));break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.CryptoGetAccountRecordsResponse\"},e}(),CryptoGetInfoQuery:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.QueryHeader.decode(e,e.uint32());break}case 2:{d.accountID=$root.proto.AccountID.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.CryptoGetInfoQuery\"},e}(),CryptoGetInfoResponse:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.ResponseHeader.decode(e,e.uint32());break}case 2:{d.accountInfo=$root.proto.CryptoGetInfoResponse.AccountInfo.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.CryptoGetInfoResponse\"},e.AccountInfo=function(){function e(e){if(this.liveHashes=[],this.tokenRelationships=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.accountID=$root.proto.AccountID.decode(e,e.uint32());break}case 2:{d.contractAccountID=e.string();break}case 3:{d.deleted=e.bool();break}case 4:{d.proxyAccountID=$root.proto.AccountID.decode(e,e.uint32());break}case 6:{d.proxyReceived=e.int64();break}case 7:{d.key=$root.proto.Key.decode(e,e.uint32());break}case 8:{d.balance=e.uint64();break}case 9:{d.generateSendRecordThreshold=e.uint64();break}case 10:{d.generateReceiveRecordThreshold=e.uint64();break}case 11:{d.receiverSigRequired=e.bool();break}case 12:{d.expirationTime=$root.proto.Timestamp.decode(e,e.uint32());break}case 13:{d.autoRenewPeriod=$root.proto.Duration.decode(e,e.uint32());break}case 14:{d.liveHashes&&d.liveHashes.length||(d.liveHashes=[]),d.liveHashes.push($root.proto.LiveHash.decode(e,e.uint32()));break}case 15:{d.tokenRelationships&&d.tokenRelationships.length||(d.tokenRelationships=[]),d.tokenRelationships.push($root.proto.TokenRelationship.decode(e,e.uint32()));break}case 16:{d.memo=e.string();break}case 17:{d.ownedNfts=e.int64();break}case 18:{d.maxAutomaticTokenAssociations=e.int32();break}case 19:{d.alias=e.bytes();break}case 20:{d.ledgerId=e.bytes();break}case 21:{d.ethereumNonce=e.int64();break}case 22:{d.stakingInfo=$root.proto.StakingInfo.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.CryptoGetInfoResponse.AccountInfo\"},e}(),e}(),CryptoGetLiveHashQuery:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.QueryHeader.decode(e,e.uint32());break}case 2:{d.accountID=$root.proto.AccountID.decode(e,e.uint32());break}case 3:{d.hash=e.bytes();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.CryptoGetLiveHashQuery\"},e}(),CryptoGetLiveHashResponse:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.ResponseHeader.decode(e,e.uint32());break}case 2:{d.liveHash=$root.proto.LiveHash.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.CryptoGetLiveHashResponse\"},e}(),CryptoGetStakersQuery:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.QueryHeader.decode(e,e.uint32());break}case 2:{d.accountID=$root.proto.AccountID.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.CryptoGetStakersQuery\"},e}(),ProxyStaker:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.accountID=$root.proto.AccountID.decode(e,e.uint32());break}case 2:{d.amount=e.int64();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.ProxyStaker\"},e}(),AllProxyStakers:function(){function e(e){if(this.proxyStaker=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.accountID=$root.proto.AccountID.decode(e,e.uint32());break}case 2:{d.proxyStaker&&d.proxyStaker.length||(d.proxyStaker=[]),d.proxyStaker.push($root.proto.ProxyStaker.decode(e,e.uint32()));break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.AllProxyStakers\"},e}(),CryptoGetStakersResponse:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.ResponseHeader.decode(e,e.uint32());break}case 3:{d.stakers=$root.proto.AllProxyStakers.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.CryptoGetStakersResponse\"},e}(),FileGetContentsQuery:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.QueryHeader.decode(e,e.uint32());break}case 2:{d.fileID=$root.proto.FileID.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.FileGetContentsQuery\"},e}(),FileGetContentsResponse:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.ResponseHeader.decode(e,e.uint32());break}case 2:{d.fileContents=$root.proto.FileGetContentsResponse.FileContents.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.FileGetContentsResponse\"},e.FileContents=function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.fileID=$root.proto.FileID.decode(e,e.uint32());break}case 2:{d.contents=e.bytes();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.FileGetContentsResponse.FileContents\"},e}(),e}(),FileGetInfoQuery:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.QueryHeader.decode(e,e.uint32());break}case 2:{d.fileID=$root.proto.FileID.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.FileGetInfoQuery\"},e}(),FileGetInfoResponse:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.ResponseHeader.decode(e,e.uint32());break}case 2:{d.fileInfo=$root.proto.FileGetInfoResponse.FileInfo.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.FileGetInfoResponse\"},e.FileInfo=function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.fileID=$root.proto.FileID.decode(e,e.uint32());break}case 2:{d.size=e.int64();break}case 3:{d.expirationTime=$root.proto.Timestamp.decode(e,e.uint32());break}case 4:{d.deleted=e.bool();break}case 5:{d.keys=$root.proto.KeyList.decode(e,e.uint32());break}case 6:{d.memo=e.string();break}case 7:{d.ledgerId=e.bytes();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.FileGetInfoResponse.FileInfo\"},e}(),e}(),TransactionGetReceiptQuery:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.QueryHeader.decode(e,e.uint32());break}case 2:{d.transactionID=$root.proto.TransactionID.decode(e,e.uint32());break}case 3:{d.includeDuplicates=e.bool();break}case 4:{d.includeChildReceipts=e.bool();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.TransactionGetReceiptQuery\"},e}(),TransactionGetReceiptResponse:function(){function e(e){if(this.duplicateTransactionReceipts=[],this.childTransactionReceipts=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.ResponseHeader.decode(e,e.uint32());break}case 2:{d.receipt=$root.proto.TransactionReceipt.decode(e,e.uint32());break}case 4:{d.duplicateTransactionReceipts&&d.duplicateTransactionReceipts.length||(d.duplicateTransactionReceipts=[]),d.duplicateTransactionReceipts.push($root.proto.TransactionReceipt.decode(e,e.uint32()));break}case 5:{d.childTransactionReceipts&&d.childTransactionReceipts.length||(d.childTransactionReceipts=[]),d.childTransactionReceipts.push($root.proto.TransactionReceipt.decode(e,e.uint32()));break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.TransactionGetReceiptResponse\"},e}(),TransactionGetRecordQuery:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.QueryHeader.decode(e,e.uint32());break}case 2:{d.transactionID=$root.proto.TransactionID.decode(e,e.uint32());break}case 3:{d.includeDuplicates=e.bool();break}case 4:{d.includeChildRecords=e.bool();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.TransactionGetRecordQuery\"},e}(),TransactionGetRecordResponse:function(){function e(e){if(this.duplicateTransactionRecords=[],this.childTransactionRecords=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.ResponseHeader.decode(e,e.uint32());break}case 3:{d.transactionRecord=$root.proto.TransactionRecord.decode(e,e.uint32());break}case 4:{d.duplicateTransactionRecords&&d.duplicateTransactionRecords.length||(d.duplicateTransactionRecords=[]),d.duplicateTransactionRecords.push($root.proto.TransactionRecord.decode(e,e.uint32()));break}case 5:{d.childTransactionRecords&&d.childTransactionRecords.length||(d.childTransactionRecords=[]),d.childTransactionRecords.push($root.proto.TransactionRecord.decode(e,e.uint32()));break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.TransactionGetRecordResponse\"},e}(),TransactionGetFastRecordQuery:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.QueryHeader.decode(e,e.uint32());break}case 2:{d.transactionID=$root.proto.TransactionID.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.TransactionGetFastRecordQuery\"},e}(),TransactionGetFastRecordResponse:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.ResponseHeader.decode(e,e.uint32());break}case 2:{d.transactionRecord=$root.proto.TransactionRecord.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.TransactionGetFastRecordResponse\"},e}(),ConsensusGetTopicInfoQuery:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.QueryHeader.decode(e,e.uint32());break}case 2:{d.topicID=$root.proto.TopicID.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.ConsensusGetTopicInfoQuery\"},e}(),ConsensusGetTopicInfoResponse:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.ResponseHeader.decode(e,e.uint32());break}case 2:{d.topicID=$root.proto.TopicID.decode(e,e.uint32());break}case 5:{d.topicInfo=$root.proto.ConsensusTopicInfo.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.ConsensusGetTopicInfoResponse\"},e}(),ConsensusTopicInfo:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.memo=e.string();break}case 2:{d.runningHash=e.bytes();break}case 3:{d.sequenceNumber=e.uint64();break}case 4:{d.expirationTime=$root.proto.Timestamp.decode(e,e.uint32());break}case 5:{d.adminKey=$root.proto.Key.decode(e,e.uint32());break}case 6:{d.submitKey=$root.proto.Key.decode(e,e.uint32());break}case 7:{d.autoRenewPeriod=$root.proto.Duration.decode(e,e.uint32());break}case 8:{d.autoRenewAccount=$root.proto.AccountID.decode(e,e.uint32());break}case 9:{d.ledgerId=e.bytes();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.ConsensusTopicInfo\"},e}(),NetworkGetVersionInfoQuery:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.QueryHeader.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.NetworkGetVersionInfoQuery\"},e}(),NetworkGetVersionInfoResponse:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.ResponseHeader.decode(e,e.uint32());break}case 2:{d.hapiProtoVersion=$root.proto.SemanticVersion.decode(e,e.uint32());break}case 3:{d.hederaServicesVersion=$root.proto.SemanticVersion.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.NetworkGetVersionInfoResponse\"},e}(),NetworkGetExecutionTimeQuery:function(){function e(e){if(this.transactionIds=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.QueryHeader.decode(e,e.uint32());break}case 2:{d.transactionIds&&d.transactionIds.length||(d.transactionIds=[]),d.transactionIds.push($root.proto.TransactionID.decode(e,e.uint32()));break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.NetworkGetExecutionTimeQuery\"},e}(),NetworkGetExecutionTimeResponse:function(){function e(e){if(this.executionTimes=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.ResponseHeader.decode(e,e.uint32());break}case 2:{if(d.executionTimes&&d.executionTimes.length||(d.executionTimes=[]),2==(7&i))for(var a=e.uint32()+e.pos;e.pos>>3){case 1:{d.header=$root.proto.QueryHeader.decode(e,e.uint32());break}case 2:{d.token=$root.proto.TokenID.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.TokenGetInfoQuery\"},e}(),TokenInfo:function(){function e(e){if(this.customFees=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.tokenId=$root.proto.TokenID.decode(e,e.uint32());break}case 2:{d.name=e.string();break}case 3:{d.symbol=e.string();break}case 4:{d.decimals=e.uint32();break}case 5:{d.totalSupply=e.uint64();break}case 6:{d.treasury=$root.proto.AccountID.decode(e,e.uint32());break}case 7:{d.adminKey=$root.proto.Key.decode(e,e.uint32());break}case 8:{d.kycKey=$root.proto.Key.decode(e,e.uint32());break}case 9:{d.freezeKey=$root.proto.Key.decode(e,e.uint32());break}case 10:{d.wipeKey=$root.proto.Key.decode(e,e.uint32());break}case 11:{d.supplyKey=$root.proto.Key.decode(e,e.uint32());break}case 12:{d.defaultFreezeStatus=e.int32();break}case 13:{d.defaultKycStatus=e.int32();break}case 14:{d.deleted=e.bool();break}case 15:{d.autoRenewAccount=$root.proto.AccountID.decode(e,e.uint32());break}case 16:{d.autoRenewPeriod=$root.proto.Duration.decode(e,e.uint32());break}case 17:{d.expiry=$root.proto.Timestamp.decode(e,e.uint32());break}case 18:{d.memo=e.string();break}case 19:{d.tokenType=e.int32();break}case 20:{d.supplyType=e.int32();break}case 21:{d.maxSupply=e.int64();break}case 22:{d.feeScheduleKey=$root.proto.Key.decode(e,e.uint32());break}case 23:{d.customFees&&d.customFees.length||(d.customFees=[]),d.customFees.push($root.proto.CustomFee.decode(e,e.uint32()));break}case 24:{d.pauseKey=$root.proto.Key.decode(e,e.uint32());break}case 25:{d.pauseStatus=e.int32();break}case 26:{d.ledgerId=e.bytes();break}case 27:{d.metadata=e.bytes();break}case 28:{d.metadataKey=$root.proto.Key.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.TokenInfo\"},e}(),TokenGetInfoResponse:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.ResponseHeader.decode(e,e.uint32());break}case 2:{d.tokenInfo=$root.proto.TokenInfo.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.TokenGetInfoResponse\"},e}(),ScheduleGetInfoQuery:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.QueryHeader.decode(e,e.uint32());break}case 2:{d.scheduleID=$root.proto.ScheduleID.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.ScheduleGetInfoQuery\"},e}(),ScheduleInfo:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.scheduleID=$root.proto.ScheduleID.decode(e,e.uint32());break}case 2:{d.deletionTime=$root.proto.Timestamp.decode(e,e.uint32());break}case 3:{d.executionTime=$root.proto.Timestamp.decode(e,e.uint32());break}case 4:{d.expirationTime=$root.proto.Timestamp.decode(e,e.uint32());break}case 5:{d.scheduledTransactionBody=$root.proto.SchedulableTransactionBody.decode(e,e.uint32());break}case 6:{d.memo=e.string();break}case 7:{d.adminKey=$root.proto.Key.decode(e,e.uint32());break}case 8:{d.signers=$root.proto.KeyList.decode(e,e.uint32());break}case 9:{d.creatorAccountID=$root.proto.AccountID.decode(e,e.uint32());break}case 10:{d.payerAccountID=$root.proto.AccountID.decode(e,e.uint32());break}case 11:{d.scheduledTransactionID=$root.proto.TransactionID.decode(e,e.uint32());break}case 12:{d.ledgerId=e.bytes();break}case 13:{d.waitForExpiry=e.bool();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.ScheduleInfo\"},e}(),ScheduleGetInfoResponse:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.ResponseHeader.decode(e,e.uint32());break}case 2:{d.scheduleInfo=$root.proto.ScheduleInfo.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.ScheduleGetInfoResponse\"},e}(),TokenGetAccountNftInfosQuery:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.QueryHeader.decode(e,e.uint32());break}case 2:{d.accountID=$root.proto.AccountID.decode(e,e.uint32());break}case 3:{d.start=e.int64();break}case 4:{d.end=e.int64();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.TokenGetAccountNftInfosQuery\"},e}(),TokenGetAccountNftInfosResponse:function(){function e(e){if(this.nfts=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.ResponseHeader.decode(e,e.uint32());break}case 2:{d.nfts&&d.nfts.length||(d.nfts=[]),d.nfts.push($root.proto.TokenNftInfo.decode(e,e.uint32()));break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.TokenGetAccountNftInfosResponse\"},e}(),TokenGetNftInfoQuery:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.QueryHeader.decode(e,e.uint32());break}case 2:{d.nftID=$root.proto.NftID.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.TokenGetNftInfoQuery\"},e}(),TokenNftInfo:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.nftID=$root.proto.NftID.decode(e,e.uint32());break}case 2:{d.accountID=$root.proto.AccountID.decode(e,e.uint32());break}case 3:{d.creationTime=$root.proto.Timestamp.decode(e,e.uint32());break}case 4:{d.metadata=e.bytes();break}case 5:{d.ledgerId=e.bytes();break}case 6:{d.spenderId=$root.proto.AccountID.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.TokenNftInfo\"},e}(),TokenGetNftInfoResponse:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.ResponseHeader.decode(e,e.uint32());break}case 2:{d.nft=$root.proto.TokenNftInfo.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.TokenGetNftInfoResponse\"},e}(),TokenGetNftInfosQuery:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.QueryHeader.decode(e,e.uint32());break}case 2:{d.tokenID=$root.proto.TokenID.decode(e,e.uint32());break}case 3:{d.start=e.int64();break}case 4:{d.end=e.int64();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.TokenGetNftInfosQuery\"},e}(),TokenGetNftInfosResponse:function(){function e(e){if(this.nfts=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.ResponseHeader.decode(e,e.uint32());break}case 2:{d.tokenID=$root.proto.TokenID.decode(e,e.uint32());break}case 3:{d.nfts&&d.nfts.length||(d.nfts=[]),d.nfts.push($root.proto.TokenNftInfo.decode(e,e.uint32()));break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.TokenGetNftInfosResponse\"},e}(),GetAccountDetailsQuery:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.QueryHeader.decode(e,e.uint32());break}case 2:{d.accountId=$root.proto.AccountID.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.GetAccountDetailsQuery\"},e}(),GetAccountDetailsResponse:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.ResponseHeader.decode(e,e.uint32());break}case 2:{d.accountDetails=$root.proto.GetAccountDetailsResponse.AccountDetails.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.GetAccountDetailsResponse\"},e.AccountDetails=function(){function e(e){if(this.tokenRelationships=[],this.grantedCryptoAllowances=[],this.grantedNftAllowances=[],this.grantedTokenAllowances=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.accountId=$root.proto.AccountID.decode(e,e.uint32());break}case 2:{d.contractAccountId=e.string();break}case 3:{d.deleted=e.bool();break}case 4:{d.proxyAccountId=$root.proto.AccountID.decode(e,e.uint32());break}case 5:{d.proxyReceived=e.int64();break}case 6:{d.key=$root.proto.Key.decode(e,e.uint32());break}case 7:{d.balance=e.uint64();break}case 8:{d.receiverSigRequired=e.bool();break}case 9:{d.expirationTime=$root.proto.Timestamp.decode(e,e.uint32());break}case 10:{d.autoRenewPeriod=$root.proto.Duration.decode(e,e.uint32());break}case 11:{d.tokenRelationships&&d.tokenRelationships.length||(d.tokenRelationships=[]),d.tokenRelationships.push($root.proto.TokenRelationship.decode(e,e.uint32()));break}case 12:{d.memo=e.string();break}case 13:{d.ownedNfts=e.int64();break}case 14:{d.maxAutomaticTokenAssociations=e.int32();break}case 15:{d.alias=e.bytes();break}case 16:{d.ledgerId=e.bytes();break}case 17:{d.grantedCryptoAllowances&&d.grantedCryptoAllowances.length||(d.grantedCryptoAllowances=[]),d.grantedCryptoAllowances.push($root.proto.GrantedCryptoAllowance.decode(e,e.uint32()));break}case 18:{d.grantedNftAllowances&&d.grantedNftAllowances.length||(d.grantedNftAllowances=[]),d.grantedNftAllowances.push($root.proto.GrantedNftAllowance.decode(e,e.uint32()));break}case 19:{d.grantedTokenAllowances&&d.grantedTokenAllowances.length||(d.grantedTokenAllowances=[]),d.grantedTokenAllowances.push($root.proto.GrantedTokenAllowance.decode(e,e.uint32()));break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.GetAccountDetailsResponse.AccountDetails\"},e}(),e}(),GrantedCryptoAllowance:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.spender=$root.proto.AccountID.decode(e,e.uint32());break}case 2:{d.amount=e.int64();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.GrantedCryptoAllowance\"},e}(),GrantedNftAllowance:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.tokenId=$root.proto.TokenID.decode(e,e.uint32());break}case 2:{d.spender=$root.proto.AccountID.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.GrantedNftAllowance\"},e}(),GrantedTokenAllowance:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.tokenId=$root.proto.TokenID.decode(e,e.uint32());break}case 2:{d.spender=$root.proto.AccountID.decode(e,e.uint32());break}case 3:{d.amount=e.int64();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.GrantedTokenAllowance\"},e}(),NodeGetInfoQuery:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.QueryHeader.decode(e,e.uint32());break}case 2:{d.nodeId=e.uint64();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.NodeGetInfoQuery\"},e}(),NodeInfo:function(){function e(e){if(this.gossipEndpoint=[],this.serviceEndpoint=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.nodeId=e.uint64();break}case 2:{d.accountId=$root.proto.AccountID.decode(e,e.uint32());break}case 3:{d.description=e.string();break}case 4:{d.gossipEndpoint&&d.gossipEndpoint.length||(d.gossipEndpoint=[]),d.gossipEndpoint.push($root.proto.ServiceEndpoint.decode(e,e.uint32()));break}case 5:{d.serviceEndpoint&&d.serviceEndpoint.length||(d.serviceEndpoint=[]),d.serviceEndpoint.push($root.proto.ServiceEndpoint.decode(e,e.uint32()));break}case 6:{d.gossipCaCertificate=e.bytes();break}case 7:{d.grpcCertificateHash=e.bytes();break}case 8:{d.weight=e.uint64();break}case 10:{d.deleted=e.bool();break}case 9:{d.ledgerId=e.bytes();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.NodeInfo\"},e}(),NodeGetInfoResponse:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.header=$root.proto.ResponseHeader.decode(e,e.uint32());break}case 2:{d.nodeInfo=$root.proto.NodeInfo.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.NodeGetInfoResponse\"},e}(),Response:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.getByKey=$root.proto.GetByKeyResponse.decode(e,e.uint32());break}case 2:{d.getBySolidityID=$root.proto.GetBySolidityIDResponse.decode(e,e.uint32());break}case 3:{d.contractCallLocal=$root.proto.ContractCallLocalResponse.decode(e,e.uint32());break}case 5:{d.contractGetBytecodeResponse=$root.proto.ContractGetBytecodeResponse.decode(e,e.uint32());break}case 4:{d.contractGetInfo=$root.proto.ContractGetInfoResponse.decode(e,e.uint32());break}case 6:{d.contractGetRecordsResponse=$root.proto.ContractGetRecordsResponse.decode(e,e.uint32());break}case 7:{d.cryptogetAccountBalance=$root.proto.CryptoGetAccountBalanceResponse.decode(e,e.uint32());break}case 8:{d.cryptoGetAccountRecords=$root.proto.CryptoGetAccountRecordsResponse.decode(e,e.uint32());break}case 9:{d.cryptoGetInfo=$root.proto.CryptoGetInfoResponse.decode(e,e.uint32());break}case 10:{d.cryptoGetLiveHash=$root.proto.CryptoGetLiveHashResponse.decode(e,e.uint32());break}case 11:{d.cryptoGetProxyStakers=$root.proto.CryptoGetStakersResponse.decode(e,e.uint32());break}case 12:{d.fileGetContents=$root.proto.FileGetContentsResponse.decode(e,e.uint32());break}case 13:{d.fileGetInfo=$root.proto.FileGetInfoResponse.decode(e,e.uint32());break}case 14:{d.transactionGetReceipt=$root.proto.TransactionGetReceiptResponse.decode(e,e.uint32());break}case 15:{d.transactionGetRecord=$root.proto.TransactionGetRecordResponse.decode(e,e.uint32());break}case 16:{d.transactionGetFastRecord=$root.proto.TransactionGetFastRecordResponse.decode(e,e.uint32());break}case 150:{d.consensusGetTopicInfo=$root.proto.ConsensusGetTopicInfoResponse.decode(e,e.uint32());break}case 151:{d.networkGetVersionInfo=$root.proto.NetworkGetVersionInfoResponse.decode(e,e.uint32());break}case 152:{d.tokenGetInfo=$root.proto.TokenGetInfoResponse.decode(e,e.uint32());break}case 153:{d.scheduleGetInfo=$root.proto.ScheduleGetInfoResponse.decode(e,e.uint32());break}case 154:{d.tokenGetAccountNftInfos=$root.proto.TokenGetAccountNftInfosResponse.decode(e,e.uint32());break}case 155:{d.tokenGetNftInfo=$root.proto.TokenGetNftInfoResponse.decode(e,e.uint32());break}case 156:{d.tokenGetNftInfos=$root.proto.TokenGetNftInfosResponse.decode(e,e.uint32());break}case 157:{d.networkGetExecutionTime=$root.proto.NetworkGetExecutionTimeResponse.decode(e,e.uint32());break}case 158:{d.accountDetails=$root.proto.GetAccountDetailsResponse.decode(e,e.uint32());break}case 159:{d.nodeGetInfo=$root.proto.NodeGetInfoResponse.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.Response\"},e}(),TransactionResponse:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.nodeTransactionPrecheckCode=e.int32();break}case 2:{d.cost=e.uint64();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.TransactionResponse\"},e}(),ConsensusService:function(){function e(e,o,t){$protobuf.rpc.Service.call(this,e,o,t)}return(e.prototype=Object.create($protobuf.rpc.Service.prototype)).constructor=e,e.create=function(e,o,t){return new this(e,o,t)},Object.defineProperty(e.prototype.createTopic=function t(e,o){return this.rpcCall(t,$root.proto.Transaction,$root.proto.TransactionResponse,e,o)},\"name\",{value:\"createTopic\"}),Object.defineProperty(e.prototype.updateTopic=function t(e,o){return this.rpcCall(t,$root.proto.Transaction,$root.proto.TransactionResponse,e,o)},\"name\",{value:\"updateTopic\"}),Object.defineProperty(e.prototype.deleteTopic=function t(e,o){return this.rpcCall(t,$root.proto.Transaction,$root.proto.TransactionResponse,e,o)},\"name\",{value:\"deleteTopic\"}),Object.defineProperty(e.prototype.getTopicInfo=function t(e,o){return this.rpcCall(t,$root.proto.Query,$root.proto.Response,e,o)},\"name\",{value:\"getTopicInfo\"}),Object.defineProperty(e.prototype.submitMessage=function t(e,o){return this.rpcCall(t,$root.proto.Transaction,$root.proto.TransactionResponse,e,o)},\"name\",{value:\"submitMessage\"}),e}(),CryptoService:function(){function e(e,o,t){$protobuf.rpc.Service.call(this,e,o,t)}return(e.prototype=Object.create($protobuf.rpc.Service.prototype)).constructor=e,e.create=function(e,o,t){return new this(e,o,t)},Object.defineProperty(e.prototype.createAccount=function t(e,o){return this.rpcCall(t,$root.proto.Transaction,$root.proto.TransactionResponse,e,o)},\"name\",{value:\"createAccount\"}),Object.defineProperty(e.prototype.updateAccount=function t(e,o){return this.rpcCall(t,$root.proto.Transaction,$root.proto.TransactionResponse,e,o)},\"name\",{value:\"updateAccount\"}),Object.defineProperty(e.prototype.cryptoTransfer=function t(e,o){return this.rpcCall(t,$root.proto.Transaction,$root.proto.TransactionResponse,e,o)},\"name\",{value:\"cryptoTransfer\"}),Object.defineProperty(e.prototype.cryptoDelete=function t(e,o){return this.rpcCall(t,$root.proto.Transaction,$root.proto.TransactionResponse,e,o)},\"name\",{value:\"cryptoDelete\"}),Object.defineProperty(e.prototype.approveAllowances=function t(e,o){return this.rpcCall(t,$root.proto.Transaction,$root.proto.TransactionResponse,e,o)},\"name\",{value:\"approveAllowances\"}),Object.defineProperty(e.prototype.deleteAllowances=function t(e,o){return this.rpcCall(t,$root.proto.Transaction,$root.proto.TransactionResponse,e,o)},\"name\",{value:\"deleteAllowances\"}),Object.defineProperty(e.prototype.addLiveHash=function t(e,o){return this.rpcCall(t,$root.proto.Transaction,$root.proto.TransactionResponse,e,o)},\"name\",{value:\"addLiveHash\"}),Object.defineProperty(e.prototype.deleteLiveHash=function t(e,o){return this.rpcCall(t,$root.proto.Transaction,$root.proto.TransactionResponse,e,o)},\"name\",{value:\"deleteLiveHash\"}),Object.defineProperty(e.prototype.getLiveHash=function t(e,o){return this.rpcCall(t,$root.proto.Query,$root.proto.Response,e,o)},\"name\",{value:\"getLiveHash\"}),Object.defineProperty(e.prototype.getAccountRecords=function t(e,o){return this.rpcCall(t,$root.proto.Query,$root.proto.Response,e,o)},\"name\",{value:\"getAccountRecords\"}),Object.defineProperty(e.prototype.cryptoGetBalance=function t(e,o){return this.rpcCall(t,$root.proto.Query,$root.proto.Response,e,o)},\"name\",{value:\"cryptoGetBalance\"}),Object.defineProperty(e.prototype.getAccountInfo=function t(e,o){return this.rpcCall(t,$root.proto.Query,$root.proto.Response,e,o)},\"name\",{value:\"getAccountInfo\"}),Object.defineProperty(e.prototype.getTransactionReceipts=function t(e,o){return this.rpcCall(t,$root.proto.Query,$root.proto.Response,e,o)},\"name\",{value:\"getTransactionReceipts\"}),Object.defineProperty(e.prototype.getFastTransactionRecord=function t(e,o){return this.rpcCall(t,$root.proto.Query,$root.proto.Response,e,o)},\"name\",{value:\"getFastTransactionRecord\"}),Object.defineProperty(e.prototype.getTxRecordByTxID=function t(e,o){return this.rpcCall(t,$root.proto.Query,$root.proto.Response,e,o)},\"name\",{value:\"getTxRecordByTxID\"}),Object.defineProperty(e.prototype.getStakersByAccountID=function t(e,o){return this.rpcCall(t,$root.proto.Query,$root.proto.Response,e,o)},\"name\",{value:\"getStakersByAccountID\"}),e}(),FileService:function(){function e(e,o,t){$protobuf.rpc.Service.call(this,e,o,t)}return(e.prototype=Object.create($protobuf.rpc.Service.prototype)).constructor=e,e.create=function(e,o,t){return new this(e,o,t)},Object.defineProperty(e.prototype.createFile=function t(e,o){return this.rpcCall(t,$root.proto.Transaction,$root.proto.TransactionResponse,e,o)},\"name\",{value:\"createFile\"}),Object.defineProperty(e.prototype.updateFile=function t(e,o){return this.rpcCall(t,$root.proto.Transaction,$root.proto.TransactionResponse,e,o)},\"name\",{value:\"updateFile\"}),Object.defineProperty(e.prototype.deleteFile=function t(e,o){return this.rpcCall(t,$root.proto.Transaction,$root.proto.TransactionResponse,e,o)},\"name\",{value:\"deleteFile\"}),Object.defineProperty(e.prototype.appendContent=function t(e,o){return this.rpcCall(t,$root.proto.Transaction,$root.proto.TransactionResponse,e,o)},\"name\",{value:\"appendContent\"}),Object.defineProperty(e.prototype.getFileContent=function t(e,o){return this.rpcCall(t,$root.proto.Query,$root.proto.Response,e,o)},\"name\",{value:\"getFileContent\"}),Object.defineProperty(e.prototype.getFileInfo=function t(e,o){return this.rpcCall(t,$root.proto.Query,$root.proto.Response,e,o)},\"name\",{value:\"getFileInfo\"}),Object.defineProperty(e.prototype.systemDelete=function t(e,o){return this.rpcCall(t,$root.proto.Transaction,$root.proto.TransactionResponse,e,o)},\"name\",{value:\"systemDelete\"}),Object.defineProperty(e.prototype.systemUndelete=function t(e,o){return this.rpcCall(t,$root.proto.Transaction,$root.proto.TransactionResponse,e,o)},\"name\",{value:\"systemUndelete\"}),e}(),FreezeService:function(){function e(e,o,t){$protobuf.rpc.Service.call(this,e,o,t)}return(e.prototype=Object.create($protobuf.rpc.Service.prototype)).constructor=e,e.create=function(e,o,t){return new this(e,o,t)},Object.defineProperty(e.prototype.freeze=function t(e,o){return this.rpcCall(t,$root.proto.Transaction,$root.proto.TransactionResponse,e,o)},\"name\",{value:\"freeze\"}),e}(),NetworkService:function(){function e(e,o,t){$protobuf.rpc.Service.call(this,e,o,t)}return(e.prototype=Object.create($protobuf.rpc.Service.prototype)).constructor=e,e.create=function(e,o,t){return new this(e,o,t)},Object.defineProperty(e.prototype.getVersionInfo=function t(e,o){return this.rpcCall(t,$root.proto.Query,$root.proto.Response,e,o)},\"name\",{value:\"getVersionInfo\"}),Object.defineProperty(e.prototype.getExecutionTime=function t(e,o){return this.rpcCall(t,$root.proto.Query,$root.proto.Response,e,o)},\"name\",{value:\"getExecutionTime\"}),Object.defineProperty(e.prototype.uncheckedSubmit=function t(e,o){return this.rpcCall(t,$root.proto.Transaction,$root.proto.TransactionResponse,e,o)},\"name\",{value:\"uncheckedSubmit\"}),Object.defineProperty(e.prototype.getAccountDetails=function t(e,o){return this.rpcCall(t,$root.proto.Query,$root.proto.Response,e,o)},\"name\",{value:\"getAccountDetails\"}),e}(),ScheduleService:function(){function e(e,o,t){$protobuf.rpc.Service.call(this,e,o,t)}return(e.prototype=Object.create($protobuf.rpc.Service.prototype)).constructor=e,e.create=function(e,o,t){return new this(e,o,t)},Object.defineProperty(e.prototype.createSchedule=function t(e,o){return this.rpcCall(t,$root.proto.Transaction,$root.proto.TransactionResponse,e,o)},\"name\",{value:\"createSchedule\"}),Object.defineProperty(e.prototype.signSchedule=function t(e,o){return this.rpcCall(t,$root.proto.Transaction,$root.proto.TransactionResponse,e,o)},\"name\",{value:\"signSchedule\"}),Object.defineProperty(e.prototype.deleteSchedule=function t(e,o){return this.rpcCall(t,$root.proto.Transaction,$root.proto.TransactionResponse,e,o)},\"name\",{value:\"deleteSchedule\"}),Object.defineProperty(e.prototype.getScheduleInfo=function t(e,o){return this.rpcCall(t,$root.proto.Query,$root.proto.Response,e,o)},\"name\",{value:\"getScheduleInfo\"}),e}(),SmartContractService:function(){function e(e,o,t){$protobuf.rpc.Service.call(this,e,o,t)}return(e.prototype=Object.create($protobuf.rpc.Service.prototype)).constructor=e,e.create=function(e,o,t){return new this(e,o,t)},Object.defineProperty(e.prototype.createContract=function t(e,o){return this.rpcCall(t,$root.proto.Transaction,$root.proto.TransactionResponse,e,o)},\"name\",{value:\"createContract\"}),Object.defineProperty(e.prototype.updateContract=function t(e,o){return this.rpcCall(t,$root.proto.Transaction,$root.proto.TransactionResponse,e,o)},\"name\",{value:\"updateContract\"}),Object.defineProperty(e.prototype.contractCallMethod=function t(e,o){return this.rpcCall(t,$root.proto.Transaction,$root.proto.TransactionResponse,e,o)},\"name\",{value:\"contractCallMethod\"}),Object.defineProperty(e.prototype.getContractInfo=function t(e,o){return this.rpcCall(t,$root.proto.Query,$root.proto.Response,e,o)},\"name\",{value:\"getContractInfo\"}),Object.defineProperty(e.prototype.contractCallLocalMethod=function t(e,o){return this.rpcCall(t,$root.proto.Query,$root.proto.Response,e,o)},\"name\",{value:\"contractCallLocalMethod\"}),Object.defineProperty(e.prototype.contractGetBytecode=function t(e,o){return this.rpcCall(t,$root.proto.Query,$root.proto.Response,e,o)},\"name\",{value:\"ContractGetBytecode\"}),Object.defineProperty(e.prototype.getBySolidityID=function t(e,o){return this.rpcCall(t,$root.proto.Query,$root.proto.Response,e,o)},\"name\",{value:\"getBySolidityID\"}),Object.defineProperty(e.prototype.getTxRecordByContractID=function t(e,o){return this.rpcCall(t,$root.proto.Query,$root.proto.Response,e,o)},\"name\",{value:\"getTxRecordByContractID\"}),Object.defineProperty(e.prototype.deleteContract=function t(e,o){return this.rpcCall(t,$root.proto.Transaction,$root.proto.TransactionResponse,e,o)},\"name\",{value:\"deleteContract\"}),Object.defineProperty(e.prototype.systemDelete=function t(e,o){return this.rpcCall(t,$root.proto.Transaction,$root.proto.TransactionResponse,e,o)},\"name\",{value:\"systemDelete\"}),Object.defineProperty(e.prototype.systemUndelete=function t(e,o){return this.rpcCall(t,$root.proto.Transaction,$root.proto.TransactionResponse,e,o)},\"name\",{value:\"systemUndelete\"}),Object.defineProperty(e.prototype.callEthereum=function t(e,o){return this.rpcCall(t,$root.proto.Transaction,$root.proto.TransactionResponse,e,o)},\"name\",{value:\"callEthereum\"}),e}(),ThrottleGroup:function(){function e(e){if(this.operations=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{if(d.operations&&d.operations.length||(d.operations=[]),2==(7&i))for(var a=e.uint32()+e.pos;e.pos>>3){case 1:{d.name=e.string();break}case 2:{d.burstPeriodMs=e.uint64();break}case 3:{d.throttleGroups&&d.throttleGroups.length||(d.throttleGroups=[]),d.throttleGroups.push($root.proto.ThrottleGroup.decode(e,e.uint32()));break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.ThrottleBucket\"},e}(),ThrottleDefinitions:function(){function e(e){if(this.throttleBuckets=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.throttleBuckets&&d.throttleBuckets.length||(d.throttleBuckets=[]),d.throttleBuckets.push($root.proto.ThrottleBucket.decode(e,e.uint32()));break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.ThrottleDefinitions\"},e}(),TokenService:function(){function e(e,o,t){$protobuf.rpc.Service.call(this,e,o,t)}return(e.prototype=Object.create($protobuf.rpc.Service.prototype)).constructor=e,e.create=function(e,o,t){return new this(e,o,t)},Object.defineProperty(e.prototype.createToken=function t(e,o){return this.rpcCall(t,$root.proto.Transaction,$root.proto.TransactionResponse,e,o)},\"name\",{value:\"createToken\"}),Object.defineProperty(e.prototype.updateToken=function t(e,o){return this.rpcCall(t,$root.proto.Transaction,$root.proto.TransactionResponse,e,o)},\"name\",{value:\"updateToken\"}),Object.defineProperty(e.prototype.mintToken=function t(e,o){return this.rpcCall(t,$root.proto.Transaction,$root.proto.TransactionResponse,e,o)},\"name\",{value:\"mintToken\"}),Object.defineProperty(e.prototype.burnToken=function t(e,o){return this.rpcCall(t,$root.proto.Transaction,$root.proto.TransactionResponse,e,o)},\"name\",{value:\"burnToken\"}),Object.defineProperty(e.prototype.deleteToken=function t(e,o){return this.rpcCall(t,$root.proto.Transaction,$root.proto.TransactionResponse,e,o)},\"name\",{value:\"deleteToken\"}),Object.defineProperty(e.prototype.wipeTokenAccount=function t(e,o){return this.rpcCall(t,$root.proto.Transaction,$root.proto.TransactionResponse,e,o)},\"name\",{value:\"wipeTokenAccount\"}),Object.defineProperty(e.prototype.freezeTokenAccount=function t(e,o){return this.rpcCall(t,$root.proto.Transaction,$root.proto.TransactionResponse,e,o)},\"name\",{value:\"freezeTokenAccount\"}),Object.defineProperty(e.prototype.unfreezeTokenAccount=function t(e,o){return this.rpcCall(t,$root.proto.Transaction,$root.proto.TransactionResponse,e,o)},\"name\",{value:\"unfreezeTokenAccount\"}),Object.defineProperty(e.prototype.grantKycToTokenAccount=function t(e,o){return this.rpcCall(t,$root.proto.Transaction,$root.proto.TransactionResponse,e,o)},\"name\",{value:\"grantKycToTokenAccount\"}),Object.defineProperty(e.prototype.revokeKycFromTokenAccount=function t(e,o){return this.rpcCall(t,$root.proto.Transaction,$root.proto.TransactionResponse,e,o)},\"name\",{value:\"revokeKycFromTokenAccount\"}),Object.defineProperty(e.prototype.associateTokens=function t(e,o){return this.rpcCall(t,$root.proto.Transaction,$root.proto.TransactionResponse,e,o)},\"name\",{value:\"associateTokens\"}),Object.defineProperty(e.prototype.dissociateTokens=function t(e,o){return this.rpcCall(t,$root.proto.Transaction,$root.proto.TransactionResponse,e,o)},\"name\",{value:\"dissociateTokens\"}),Object.defineProperty(e.prototype.updateTokenFeeSchedule=function t(e,o){return this.rpcCall(t,$root.proto.Transaction,$root.proto.TransactionResponse,e,o)},\"name\",{value:\"updateTokenFeeSchedule\"}),Object.defineProperty(e.prototype.getTokenInfo=function t(e,o){return this.rpcCall(t,$root.proto.Query,$root.proto.Response,e,o)},\"name\",{value:\"getTokenInfo\"}),Object.defineProperty(e.prototype.getAccountNftInfos=function t(e,o){return this.rpcCall(t,$root.proto.Query,$root.proto.Response,e,o)},\"name\",{value:\"getAccountNftInfos\"}),Object.defineProperty(e.prototype.getTokenNftInfo=function t(e,o){return this.rpcCall(t,$root.proto.Query,$root.proto.Response,e,o)},\"name\",{value:\"getTokenNftInfo\"}),Object.defineProperty(e.prototype.getTokenNftInfos=function t(e,o){return this.rpcCall(t,$root.proto.Query,$root.proto.Response,e,o)},\"name\",{value:\"getTokenNftInfos\"}),Object.defineProperty(e.prototype.pauseToken=function t(e,o){return this.rpcCall(t,$root.proto.Transaction,$root.proto.TransactionResponse,e,o)},\"name\",{value:\"pauseToken\"}),Object.defineProperty(e.prototype.unpauseToken=function t(e,o){return this.rpcCall(t,$root.proto.Transaction,$root.proto.TransactionResponse,e,o)},\"name\",{value:\"unpauseToken\"}),Object.defineProperty(e.prototype.updateNfts=function t(e,o){return this.rpcCall(t,$root.proto.Transaction,$root.proto.TransactionResponse,e,o)},\"name\",{value:\"updateNfts\"}),e}(),SignedTransaction:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.bodyBytes=e.bytes();break}case 2:{d.sigMap=$root.proto.SignatureMap.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.SignedTransaction\"},e}(),UtilService:function(){function e(e,o,t){$protobuf.rpc.Service.call(this,e,o,t)}return(e.prototype=Object.create($protobuf.rpc.Service.prototype)).constructor=e,e.create=function(e,o,t){return new this(e,o,t)},Object.defineProperty(e.prototype.prng=function t(e,o){return this.rpcCall(t,$root.proto.Transaction,$root.proto.TransactionResponse,e,o)},\"name\",{value:\"prng\"}),e}(),TokenUnitBalance:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.tokenId=$root.proto.TokenID.decode(e,e.uint32());break}case 2:{d.balance=e.uint64();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.TokenUnitBalance\"},e}(),SingleAccountBalances:function(){function e(e){if(this.tokenUnitBalances=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.accountID=$root.proto.AccountID.decode(e,e.uint32());break}case 2:{d.hbarBalance=e.uint64();break}case 3:{d.tokenUnitBalances&&d.tokenUnitBalances.length||(d.tokenUnitBalances=[]),d.tokenUnitBalances.push($root.proto.TokenUnitBalance.decode(e,e.uint32()));break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.SingleAccountBalances\"},e}(),AllAccountBalances:function(){function e(e){if(this.allAccounts=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.consensusTimestamp=$root.proto.Timestamp.decode(e,e.uint32());break}case 2:{d.allAccounts&&d.allAccounts.length||(d.allAccounts=[]),d.allAccounts.push($root.proto.SingleAccountBalances.decode(e,e.uint32()));break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.AllAccountBalances\"},e}(),ContractActions:function(){function e(e){if(this.contractActions=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.contractActions&&d.contractActions.length||(d.contractActions=[]),d.contractActions.push($root.proto.ContractAction.decode(e,e.uint32()));break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.ContractActions\"},e}(),ContractActionType:function(){const e={},o=Object.create(e);return o[e[0]=\"NO_ACTION\"]=0,o[e[1]=\"CALL\"]=1,o[e[2]=\"CREATE\"]=2,o[e[3]=\"PRECOMPILE\"]=3,o[e[4]=\"SYSTEM\"]=4,o}(),CallOperationType:function(){const e={},o=Object.create(e);return o[e[0]=\"OP_UNKNOWN\"]=0,o[e[1]=\"OP_CALL\"]=1,o[e[2]=\"OP_CALLCODE\"]=2,o[e[3]=\"OP_DELEGATECALL\"]=3,o[e[4]=\"OP_STATICCALL\"]=4,o[e[5]=\"OP_CREATE\"]=5,o[e[6]=\"OP_CREATE2\"]=6,o}(),ContractAction:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.callType=e.int32();break}case 2:{d.callingAccount=$root.proto.AccountID.decode(e,e.uint32());break}case 3:{d.callingContract=$root.proto.ContractID.decode(e,e.uint32());break}case 4:{d.gas=e.int64();break}case 5:{d.input=e.bytes();break}case 6:{d.recipientAccount=$root.proto.AccountID.decode(e,e.uint32());break}case 7:{d.recipientContract=$root.proto.ContractID.decode(e,e.uint32());break}case 8:{d.targetedAddress=e.bytes();break}case 9:{d.value=e.int64();break}case 10:{d.gasUsed=e.int64();break}case 11:{d.output=e.bytes();break}case 12:{d.revertReason=e.bytes();break}case 13:{d.error=e.bytes();break}case 14:{d.callDepth=e.int32();break}case 15:{d.callOperationType=e.int32();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.ContractAction\"},e}(),ContractBytecode:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.contractId=$root.proto.ContractID.decode(e,e.uint32());break}case 2:{d.initcode=e.bytes();break}case 3:{d.runtimeBytecode=e.bytes();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.ContractBytecode\"},e}(),ContractStateChanges:function(){function e(e){if(this.contractStateChanges=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.contractStateChanges&&d.contractStateChanges.length||(d.contractStateChanges=[]),d.contractStateChanges.push($root.proto.ContractStateChange.decode(e,e.uint32()));break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.ContractStateChanges\"},e}(),ContractStateChange:function(){function e(e){if(this.storageChanges=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.contractId=$root.proto.ContractID.decode(e,e.uint32());break}case 2:{d.storageChanges&&d.storageChanges.length||(d.storageChanges=[]),d.storageChanges.push($root.proto.StorageChange.decode(e,e.uint32()));break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.ContractStateChange\"},e}(),StorageChange:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.slot=e.bytes();break}case 2:{d.valueRead=e.bytes();break}case 3:{d.valueWritten=$root.google.protobuf.BytesValue.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.StorageChange\"},e}(),HashAlgorithm:function(){const e={},o=Object.create(e);return o[e[0]=\"HASH_ALGORITHM_UNKNOWN\"]=0,o[e[1]=\"SHA_384\"]=1,o}(),HashObject:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.algorithm=e.int32();break}case 2:{d.length=e.int32();break}case 3:{d.hash=e.bytes();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.HashObject\"},e}(),RecordStreamFile:function(){function e(e){if(this.recordStreamItems=[],this.sidecars=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.hapiProtoVersion=$root.proto.SemanticVersion.decode(e,e.uint32());break}case 2:{d.startObjectRunningHash=$root.proto.HashObject.decode(e,e.uint32());break}case 3:{d.recordStreamItems&&d.recordStreamItems.length||(d.recordStreamItems=[]),d.recordStreamItems.push($root.proto.RecordStreamItem.decode(e,e.uint32()));break}case 4:{d.endObjectRunningHash=$root.proto.HashObject.decode(e,e.uint32());break}case 5:{d.blockNumber=e.int64();break}case 6:{d.sidecars&&d.sidecars.length||(d.sidecars=[]),d.sidecars.push($root.proto.SidecarMetadata.decode(e,e.uint32()));break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.RecordStreamFile\"},e}(),RecordStreamItem:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.transaction=$root.proto.Transaction.decode(e,e.uint32());break}case 2:{d.record=$root.proto.TransactionRecord.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.RecordStreamItem\"},e}(),SidecarMetadata:function(){function e(e){if(this.types=[],e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.hash=$root.proto.HashObject.decode(e,e.uint32());break}case 2:{d.id=e.int32();break}case 3:{if(d.types&&d.types.length||(d.types=[]),2==(7&i))for(var a=e.uint32()+e.pos;e.pos>>3){case 1:{d.sidecarRecords&&d.sidecarRecords.length||(d.sidecarRecords=[]),d.sidecarRecords.push($root.proto.TransactionSidecarRecord.decode(e,e.uint32()));break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.SidecarFile\"},e}(),TransactionSidecarRecord:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.consensusTimestamp=$root.proto.Timestamp.decode(e,e.uint32());break}case 2:{d.migration=e.bool();break}case 3:{d.stateChanges=$root.proto.ContractStateChanges.decode(e,e.uint32());break}case 4:{d.actions=$root.proto.ContractActions.decode(e,e.uint32());break}case 5:{d.bytecode=$root.proto.ContractBytecode.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.TransactionSidecarRecord\"},e}(),SignatureFile:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.fileSignature=$root.proto.SignatureObject.decode(e,e.uint32());break}case 2:{d.metadataSignature=$root.proto.SignatureObject.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.SignatureFile\"},e}(),SignatureObject:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.type=e.int32();break}case 2:{d.length=e.int32();break}case 3:{d.checksum=e.int32();break}case 4:{d.signature=e.bytes();break}case 5:{d.hashObject=$root.proto.HashObject.decode(e,e.uint32());break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/proto.SignatureObject\"},e}(),SignatureType:function(){const e={},o=Object.create(e);return o[e[0]=\"SIGNATURE_TYPE_UNKNOWN\"]=0,o[e[1]=\"SHA_384_WITH_RSA\"]=1,o}()};return e})();exports.proto=proto;const google=$root.google=(()=>{const e={protobuf:function(){const e={DoubleValue:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.value=e.double();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/google.protobuf.DoubleValue\"},e}(),FloatValue:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.value=e.float();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/google.protobuf.FloatValue\"},e}(),Int64Value:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.value=e.int64();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/google.protobuf.Int64Value\"},e}(),UInt64Value:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.value=e.uint64();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/google.protobuf.UInt64Value\"},e}(),Int32Value:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.value=e.int32();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/google.protobuf.Int32Value\"},e}(),UInt32Value:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.value=e.uint32();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/google.protobuf.UInt32Value\"},e}(),BoolValue:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.value=e.bool();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/google.protobuf.BoolValue\"},e}(),StringValue:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.value=e.string();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/google.protobuf.StringValue\"},e}(),BytesValue:function(){function e(e){if(e)for(var o=Object.keys(e),t=0;t>>3){case 1:{d.value=e.bytes();break}default:e.skipType(7&i)}return d},e.getTypeUrl=function(e){return void 0===e&&(e=\"type.googleapis.com\"),e+\"/google.protobuf.BytesValue\"},e}()};return e}()};return e})();exports.google=google;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.proto=exports.google=exports.com=exports.Writer=exports.Reader=void 0;var $protobuf=_interopRequireWildcard(require(\"protobufjs/minimal.js\")),_long=_interopRequireDefault(require(\"long\")),$proto=_interopRequireWildcard(require(\"./proto.js\"));function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}function _getRequireWildcardCache(a){if(\"function\"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(_getRequireWildcardCache=function(a){return a?c:b})(a)}function _interopRequireWildcard(b,c){if(!c&&b&&b.__esModule)return b;if(null===b||\"object\"!=typeof b&&\"function\"!=typeof b)return{default:b};var d=_getRequireWildcardCache(c);if(d&&d.has(b))return d.get(b);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in b)if(\"default\"!=a&&Object.prototype.hasOwnProperty.call(b,a)){var g=f?Object.getOwnPropertyDescriptor(b,a):null;g&&(g.get||g.set)?Object.defineProperty(e,a,g):e[a]=b[a]}return e.default=b,d&&d.set(b,e),e}(()=>{var a=$protobuf.util;null==a.Long&&(console.log(`Patching Protobuf Long.js instance...`),a.Long=_long.default,null!=$protobuf.Reader._configure&&$protobuf.Reader._configure($protobuf.BufferReader))})();const Reader=$protobuf.Reader;exports.Reader=Reader;const Writer=$protobuf.Writer;exports.Writer=Writer;const proto=$proto.proto;exports.proto=proto;const com=$proto.com;exports.com=com;const google=$proto.google;exports.google=google;","export var EVENTS;\n(function (EVENTS) {\n EVENTS[\"extensionQuery\"] = \"hedera-extension-query\";\n EVENTS[\"extensionConnect\"] = \"hedera-extension-connect-\";\n EVENTS[\"extensionOpen\"] = \"hedera-extension-open-\";\n EVENTS[\"extensionResponse\"] = \"hedera-extension-response\";\n EVENTS[\"iframeQuery\"] = \"hedera-iframe-query\";\n EVENTS[\"iframeQueryResponse\"] = \"hedera-iframe-response\";\n EVENTS[\"iframeConnect\"] = \"hedera-iframe-connect\";\n})(EVENTS || (EVENTS = {}));\nexport const findExtensions = (onFound) => {\n if (typeof window === 'undefined')\n return;\n window.addEventListener('message', (event) => {\n var _a, _b;\n if (((_a = event === null || event === void 0 ? void 0 : event.data) === null || _a === void 0 ? void 0 : _a.type) == EVENTS.extensionResponse && event.data.metadata) {\n onFound(event.data.metadata, false);\n }\n if (((_b = event === null || event === void 0 ? void 0 : event.data) === null || _b === void 0 ? void 0 : _b.type) == EVENTS.iframeQueryResponse && event.data.metadata) {\n onFound(event.data.metadata, true);\n }\n });\n setTimeout(() => {\n extensionQuery();\n }, 200);\n};\nexport const extensionQuery = () => {\n window.postMessage({ type: EVENTS.extensionQuery }, '*');\n if (window.parent) {\n window.parent.postMessage({ type: EVENTS.iframeQuery }, '*');\n }\n};\nexport const extensionConnect = (id, isIframe, pairingString) => {\n if (isIframe) {\n window.parent.postMessage({ type: EVENTS.iframeConnect, pairingString }, '*');\n return;\n }\n window.postMessage({ type: EVENTS.extensionConnect + id, pairingString }, '*');\n};\nexport const extensionOpen = (id) => {\n window.postMessage({ type: EVENTS.extensionOpen + id }, '*');\n};\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.delay = void 0;\nfunction delay(timeout) {\n return new Promise(resolve => {\n setTimeout(() => {\n resolve(true);\n }, timeout);\n });\n}\nexports.delay = delay;\n//# sourceMappingURL=delay.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ONE_THOUSAND = exports.ONE_HUNDRED = void 0;\nexports.ONE_HUNDRED = 100;\nexports.ONE_THOUSAND = 1000;\n//# sourceMappingURL=misc.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ONE_YEAR = exports.FOUR_WEEKS = exports.THREE_WEEKS = exports.TWO_WEEKS = exports.ONE_WEEK = exports.THIRTY_DAYS = exports.SEVEN_DAYS = exports.FIVE_DAYS = exports.THREE_DAYS = exports.ONE_DAY = exports.TWENTY_FOUR_HOURS = exports.TWELVE_HOURS = exports.SIX_HOURS = exports.THREE_HOURS = exports.ONE_HOUR = exports.SIXTY_MINUTES = exports.THIRTY_MINUTES = exports.TEN_MINUTES = exports.FIVE_MINUTES = exports.ONE_MINUTE = exports.SIXTY_SECONDS = exports.THIRTY_SECONDS = exports.TEN_SECONDS = exports.FIVE_SECONDS = exports.ONE_SECOND = void 0;\nexports.ONE_SECOND = 1;\nexports.FIVE_SECONDS = 5;\nexports.TEN_SECONDS = 10;\nexports.THIRTY_SECONDS = 30;\nexports.SIXTY_SECONDS = 60;\nexports.ONE_MINUTE = exports.SIXTY_SECONDS;\nexports.FIVE_MINUTES = exports.ONE_MINUTE * 5;\nexports.TEN_MINUTES = exports.ONE_MINUTE * 10;\nexports.THIRTY_MINUTES = exports.ONE_MINUTE * 30;\nexports.SIXTY_MINUTES = exports.ONE_MINUTE * 60;\nexports.ONE_HOUR = exports.SIXTY_MINUTES;\nexports.THREE_HOURS = exports.ONE_HOUR * 3;\nexports.SIX_HOURS = exports.ONE_HOUR * 6;\nexports.TWELVE_HOURS = exports.ONE_HOUR * 12;\nexports.TWENTY_FOUR_HOURS = exports.ONE_HOUR * 24;\nexports.ONE_DAY = exports.TWENTY_FOUR_HOURS;\nexports.THREE_DAYS = exports.ONE_DAY * 3;\nexports.FIVE_DAYS = exports.ONE_DAY * 5;\nexports.SEVEN_DAYS = exports.ONE_DAY * 7;\nexports.THIRTY_DAYS = exports.ONE_DAY * 30;\nexports.ONE_WEEK = exports.SEVEN_DAYS;\nexports.TWO_WEEKS = exports.ONE_WEEK * 2;\nexports.THREE_WEEKS = exports.ONE_WEEK * 3;\nexports.FOUR_WEEKS = exports.ONE_WEEK * 4;\nexports.ONE_YEAR = exports.ONE_DAY * 365;\n//# sourceMappingURL=time.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./misc\"), exports);\ntslib_1.__exportStar(require(\"./time\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromMiliseconds = exports.toMiliseconds = void 0;\nconst constants_1 = require(\"../constants\");\nfunction toMiliseconds(seconds) {\n return seconds * constants_1.ONE_THOUSAND;\n}\nexports.toMiliseconds = toMiliseconds;\nfunction fromMiliseconds(miliseconds) {\n return Math.floor(miliseconds / constants_1.ONE_THOUSAND);\n}\nexports.fromMiliseconds = fromMiliseconds;\n//# sourceMappingURL=convert.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./delay\"), exports);\ntslib_1.__exportStar(require(\"./convert\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Watch = void 0;\nclass Watch {\n constructor() {\n this.timestamps = new Map();\n }\n start(label) {\n if (this.timestamps.has(label)) {\n throw new Error(`Watch already started for label: ${label}`);\n }\n this.timestamps.set(label, { started: Date.now() });\n }\n stop(label) {\n const timestamp = this.get(label);\n if (typeof timestamp.elapsed !== \"undefined\") {\n throw new Error(`Watch already stopped for label: ${label}`);\n }\n const elapsed = Date.now() - timestamp.started;\n this.timestamps.set(label, { started: timestamp.started, elapsed });\n }\n get(label) {\n const timestamp = this.timestamps.get(label);\n if (typeof timestamp === \"undefined\") {\n throw new Error(`No timestamp found for label: ${label}`);\n }\n return timestamp;\n }\n elapsed(label) {\n const timestamp = this.get(label);\n const elapsed = timestamp.elapsed || Date.now() - timestamp.started;\n return elapsed;\n }\n}\nexports.Watch = Watch;\nexports.default = Watch;\n//# sourceMappingURL=watch.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IWatch = void 0;\nclass IWatch {\n}\nexports.IWatch = IWatch;\n//# sourceMappingURL=watch.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./watch\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./utils\"), exports);\ntslib_1.__exportStar(require(\"./watch\"), exports);\ntslib_1.__exportStar(require(\"./types\"), exports);\ntslib_1.__exportStar(require(\"./constants\"), exports);\n//# sourceMappingURL=index.js.map","export class IEvents {\n}\n//# sourceMappingURL=events.js.map","import{EventEmitter as a}from\"events\";import{FIVE_SECONDS as o,toMiliseconds as l}from\"@walletconnect/time\";import{IEvents as v}from\"@walletconnect/events\";class n extends v{constructor(e){super()}}const s=o,r={pulse:\"heartbeat_pulse\"};class i extends n{constructor(e){super(e),this.events=new a,this.interval=s,this.interval=e?.interval||s}static async init(e){const t=new i(e);return await t.init(),t}async init(){await this.initialize()}stop(){clearInterval(this.intervalRef)}on(e,t){this.events.on(e,t)}once(e,t){this.events.once(e,t)}off(e,t){this.events.off(e,t)}removeListener(e,t){this.events.removeListener(e,t)}async initialize(){this.intervalRef=setInterval(()=>this.pulse(),l(this.interval))}pulse(){this.events.emit(r.pulse)}}export{r as HEARTBEAT_EVENTS,s as HEARTBEAT_INTERVAL,i as HeartBeat,n as IHeartBeat};\n//# sourceMappingURL=index.es.js.map\n","const suspectProtoRx = /\"(?:_|\\\\u0{2}5[Ff]){2}(?:p|\\\\u0{2}70)(?:r|\\\\u0{2}72)(?:o|\\\\u0{2}6[Ff])(?:t|\\\\u0{2}74)(?:o|\\\\u0{2}6[Ff])(?:_|\\\\u0{2}5[Ff]){2}\"\\s*:/;\nconst suspectConstructorRx = /\"(?:c|\\\\u0063)(?:o|\\\\u006[Ff])(?:n|\\\\u006[Ee])(?:s|\\\\u0073)(?:t|\\\\u0074)(?:r|\\\\u0072)(?:u|\\\\u0075)(?:c|\\\\u0063)(?:t|\\\\u0074)(?:o|\\\\u006[Ff])(?:r|\\\\u0072)\"\\s*:/;\nconst JsonSigRx = /^\\s*[\"[{]|^\\s*-?\\d{1,16}(\\.\\d{1,17})?([Ee][+-]?\\d+)?\\s*$/;\nfunction jsonParseTransform(key, value) {\n if (key === \"__proto__\" || key === \"constructor\" && value && typeof value === \"object\" && \"prototype\" in value) {\n warnKeyDropped(key);\n return;\n }\n return value;\n}\nfunction warnKeyDropped(key) {\n console.warn(`[destr] Dropping \"${key}\" key to prevent prototype pollution.`);\n}\nfunction destr(value, options = {}) {\n if (typeof value !== \"string\") {\n return value;\n }\n const _value = value.trim();\n if (\n // eslint-disable-next-line unicorn/prefer-at\n value[0] === '\"' && value.endsWith('\"') && !value.includes(\"\\\\\")\n ) {\n return _value.slice(1, -1);\n }\n if (_value.length <= 9) {\n const _lval = _value.toLowerCase();\n if (_lval === \"true\") {\n return true;\n }\n if (_lval === \"false\") {\n return false;\n }\n if (_lval === \"undefined\") {\n return void 0;\n }\n if (_lval === \"null\") {\n return null;\n }\n if (_lval === \"nan\") {\n return Number.NaN;\n }\n if (_lval === \"infinity\") {\n return Number.POSITIVE_INFINITY;\n }\n if (_lval === \"-infinity\") {\n return Number.NEGATIVE_INFINITY;\n }\n }\n if (!JsonSigRx.test(value)) {\n if (options.strict) {\n throw new SyntaxError(\"[destr] Invalid JSON\");\n }\n return value;\n }\n try {\n if (suspectProtoRx.test(value) || suspectConstructorRx.test(value)) {\n if (options.strict) {\n throw new Error(\"[destr] Possible prototype pollution\");\n }\n return JSON.parse(value, jsonParseTransform);\n }\n return JSON.parse(value);\n } catch (error) {\n if (options.strict) {\n throw error;\n }\n return value;\n }\n}\nfunction safeDestr(value, options = {}) {\n return destr(value, { ...options, strict: true });\n}\n\nexport { destr as default, destr, safeDestr };\n","function wrapToPromise(value) {\n if (!value || typeof value.then !== \"function\") {\n return Promise.resolve(value);\n }\n return value;\n}\nfunction asyncCall(function_, ...arguments_) {\n try {\n return wrapToPromise(function_(...arguments_));\n } catch (error) {\n return Promise.reject(error);\n }\n}\nfunction isPrimitive(value) {\n const type = typeof value;\n return value === null || type !== \"object\" && type !== \"function\";\n}\nfunction isPureObject(value) {\n const proto = Object.getPrototypeOf(value);\n return !proto || proto.isPrototypeOf(Object);\n}\nfunction stringify(value) {\n if (isPrimitive(value)) {\n return String(value);\n }\n if (isPureObject(value) || Array.isArray(value)) {\n return JSON.stringify(value);\n }\n if (typeof value.toJSON === \"function\") {\n return stringify(value.toJSON());\n }\n throw new Error(\"[unstorage] Cannot stringify value!\");\n}\nconst BASE64_PREFIX = \"base64:\";\nfunction serializeRaw(value) {\n if (typeof value === \"string\") {\n return value;\n }\n return BASE64_PREFIX + base64Encode(value);\n}\nfunction deserializeRaw(value) {\n if (typeof value !== \"string\") {\n return value;\n }\n if (!value.startsWith(BASE64_PREFIX)) {\n return value;\n }\n return base64Decode(value.slice(BASE64_PREFIX.length));\n}\nfunction base64Decode(input) {\n if (globalThis.Buffer) {\n return Buffer.from(input, \"base64\");\n }\n return Uint8Array.from(\n globalThis.atob(input),\n (c) => c.codePointAt(0)\n );\n}\nfunction base64Encode(input) {\n if (globalThis.Buffer) {\n return Buffer.from(input).toString(\"base64\");\n }\n return globalThis.btoa(String.fromCodePoint(...input));\n}\n\nconst storageKeyProperties = [\n \"hasItem\",\n \"getItem\",\n \"getItemRaw\",\n \"setItem\",\n \"setItemRaw\",\n \"removeItem\",\n \"getMeta\",\n \"setMeta\",\n \"removeMeta\",\n \"getKeys\",\n \"clear\",\n \"mount\",\n \"unmount\"\n];\nfunction prefixStorage(storage, base) {\n base = normalizeBaseKey(base);\n if (!base) {\n return storage;\n }\n const nsStorage = { ...storage };\n for (const property of storageKeyProperties) {\n nsStorage[property] = (key = \"\", ...args) => (\n // @ts-ignore\n storage[property](base + key, ...args)\n );\n }\n nsStorage.getKeys = (key = \"\", ...arguments_) => storage.getKeys(base + key, ...arguments_).then((keys) => keys.map((key2) => key2.slice(base.length)));\n return nsStorage;\n}\nfunction normalizeKey(key) {\n if (!key) {\n return \"\";\n }\n return key.split(\"?\")[0]?.replace(/[/\\\\]/g, \":\").replace(/:+/g, \":\").replace(/^:|:$/g, \"\") || \"\";\n}\nfunction joinKeys(...keys) {\n return normalizeKey(keys.join(\":\"));\n}\nfunction normalizeBaseKey(base) {\n base = normalizeKey(base);\n return base ? base + \":\" : \"\";\n}\n\nexport { normalizeKey as a, asyncCall as b, serializeRaw as c, deserializeRaw as d, joinKeys as j, normalizeBaseKey as n, prefixStorage as p, stringify as s };\n","import destr from 'destr';\nimport { n as normalizeBaseKey, a as normalizeKey, b as asyncCall, d as deserializeRaw, s as stringify, c as serializeRaw, j as joinKeys } from './shared/unstorage.BqzpVTXx.mjs';\nexport { p as prefixStorage } from './shared/unstorage.BqzpVTXx.mjs';\n\nfunction defineDriver(factory) {\n return factory;\n}\n\nconst DRIVER_NAME = \"memory\";\nconst memory = defineDriver(() => {\n const data = /* @__PURE__ */ new Map();\n return {\n name: DRIVER_NAME,\n getInstance: () => data,\n hasItem(key) {\n return data.has(key);\n },\n getItem(key) {\n return data.get(key) ?? null;\n },\n getItemRaw(key) {\n return data.get(key) ?? null;\n },\n setItem(key, value) {\n data.set(key, value);\n },\n setItemRaw(key, value) {\n data.set(key, value);\n },\n removeItem(key) {\n data.delete(key);\n },\n getKeys() {\n return [...data.keys()];\n },\n clear() {\n data.clear();\n },\n dispose() {\n data.clear();\n }\n };\n});\n\nfunction createStorage(options = {}) {\n const context = {\n mounts: { \"\": options.driver || memory() },\n mountpoints: [\"\"],\n watching: false,\n watchListeners: [],\n unwatch: {}\n };\n const getMount = (key) => {\n for (const base of context.mountpoints) {\n if (key.startsWith(base)) {\n return {\n base,\n relativeKey: key.slice(base.length),\n driver: context.mounts[base]\n };\n }\n }\n return {\n base: \"\",\n relativeKey: key,\n driver: context.mounts[\"\"]\n };\n };\n const getMounts = (base, includeParent) => {\n return context.mountpoints.filter(\n (mountpoint) => mountpoint.startsWith(base) || includeParent && base.startsWith(mountpoint)\n ).map((mountpoint) => ({\n relativeBase: base.length > mountpoint.length ? base.slice(mountpoint.length) : void 0,\n mountpoint,\n driver: context.mounts[mountpoint]\n }));\n };\n const onChange = (event, key) => {\n if (!context.watching) {\n return;\n }\n key = normalizeKey(key);\n for (const listener of context.watchListeners) {\n listener(event, key);\n }\n };\n const startWatch = async () => {\n if (context.watching) {\n return;\n }\n context.watching = true;\n for (const mountpoint in context.mounts) {\n context.unwatch[mountpoint] = await watch(\n context.mounts[mountpoint],\n onChange,\n mountpoint\n );\n }\n };\n const stopWatch = async () => {\n if (!context.watching) {\n return;\n }\n for (const mountpoint in context.unwatch) {\n await context.unwatch[mountpoint]();\n }\n context.unwatch = {};\n context.watching = false;\n };\n const runBatch = (items, commonOptions, cb) => {\n const batches = /* @__PURE__ */ new Map();\n const getBatch = (mount) => {\n let batch = batches.get(mount.base);\n if (!batch) {\n batch = {\n driver: mount.driver,\n base: mount.base,\n items: []\n };\n batches.set(mount.base, batch);\n }\n return batch;\n };\n for (const item of items) {\n const isStringItem = typeof item === \"string\";\n const key = normalizeKey(isStringItem ? item : item.key);\n const value = isStringItem ? void 0 : item.value;\n const options2 = isStringItem || !item.options ? commonOptions : { ...commonOptions, ...item.options };\n const mount = getMount(key);\n getBatch(mount).items.push({\n key,\n value,\n relativeKey: mount.relativeKey,\n options: options2\n });\n }\n return Promise.all([...batches.values()].map((batch) => cb(batch))).then(\n (r) => r.flat()\n );\n };\n const storage = {\n // Item\n hasItem(key, opts = {}) {\n key = normalizeKey(key);\n const { relativeKey, driver } = getMount(key);\n return asyncCall(driver.hasItem, relativeKey, opts);\n },\n getItem(key, opts = {}) {\n key = normalizeKey(key);\n const { relativeKey, driver } = getMount(key);\n return asyncCall(driver.getItem, relativeKey, opts).then(\n (value) => destr(value)\n );\n },\n getItems(items, commonOptions = {}) {\n return runBatch(items, commonOptions, (batch) => {\n if (batch.driver.getItems) {\n return asyncCall(\n batch.driver.getItems,\n batch.items.map((item) => ({\n key: item.relativeKey,\n options: item.options\n })),\n commonOptions\n ).then(\n (r) => r.map((item) => ({\n key: joinKeys(batch.base, item.key),\n value: destr(item.value)\n }))\n );\n }\n return Promise.all(\n batch.items.map((item) => {\n return asyncCall(\n batch.driver.getItem,\n item.relativeKey,\n item.options\n ).then((value) => ({\n key: item.key,\n value: destr(value)\n }));\n })\n );\n });\n },\n getItemRaw(key, opts = {}) {\n key = normalizeKey(key);\n const { relativeKey, driver } = getMount(key);\n if (driver.getItemRaw) {\n return asyncCall(driver.getItemRaw, relativeKey, opts);\n }\n return asyncCall(driver.getItem, relativeKey, opts).then(\n (value) => deserializeRaw(value)\n );\n },\n async setItem(key, value, opts = {}) {\n if (value === void 0) {\n return storage.removeItem(key);\n }\n key = normalizeKey(key);\n const { relativeKey, driver } = getMount(key);\n if (!driver.setItem) {\n return;\n }\n await asyncCall(driver.setItem, relativeKey, stringify(value), opts);\n if (!driver.watch) {\n onChange(\"update\", key);\n }\n },\n async setItems(items, commonOptions) {\n await runBatch(items, commonOptions, async (batch) => {\n if (batch.driver.setItems) {\n return asyncCall(\n batch.driver.setItems,\n batch.items.map((item) => ({\n key: item.relativeKey,\n value: stringify(item.value),\n options: item.options\n })),\n commonOptions\n );\n }\n if (!batch.driver.setItem) {\n return;\n }\n await Promise.all(\n batch.items.map((item) => {\n return asyncCall(\n batch.driver.setItem,\n item.relativeKey,\n stringify(item.value),\n item.options\n );\n })\n );\n });\n },\n async setItemRaw(key, value, opts = {}) {\n if (value === void 0) {\n return storage.removeItem(key, opts);\n }\n key = normalizeKey(key);\n const { relativeKey, driver } = getMount(key);\n if (driver.setItemRaw) {\n await asyncCall(driver.setItemRaw, relativeKey, value, opts);\n } else if (driver.setItem) {\n await asyncCall(driver.setItem, relativeKey, serializeRaw(value), opts);\n } else {\n return;\n }\n if (!driver.watch) {\n onChange(\"update\", key);\n }\n },\n async removeItem(key, opts = {}) {\n if (typeof opts === \"boolean\") {\n opts = { removeMeta: opts };\n }\n key = normalizeKey(key);\n const { relativeKey, driver } = getMount(key);\n if (!driver.removeItem) {\n return;\n }\n await asyncCall(driver.removeItem, relativeKey, opts);\n if (opts.removeMeta || opts.removeMata) {\n await asyncCall(driver.removeItem, relativeKey + \"$\", opts);\n }\n if (!driver.watch) {\n onChange(\"remove\", key);\n }\n },\n // Meta\n async getMeta(key, opts = {}) {\n if (typeof opts === \"boolean\") {\n opts = { nativeOnly: opts };\n }\n key = normalizeKey(key);\n const { relativeKey, driver } = getMount(key);\n const meta = /* @__PURE__ */ Object.create(null);\n if (driver.getMeta) {\n Object.assign(meta, await asyncCall(driver.getMeta, relativeKey, opts));\n }\n if (!opts.nativeOnly) {\n const value = await asyncCall(\n driver.getItem,\n relativeKey + \"$\",\n opts\n ).then((value_) => destr(value_));\n if (value && typeof value === \"object\") {\n if (typeof value.atime === \"string\") {\n value.atime = new Date(value.atime);\n }\n if (typeof value.mtime === \"string\") {\n value.mtime = new Date(value.mtime);\n }\n Object.assign(meta, value);\n }\n }\n return meta;\n },\n setMeta(key, value, opts = {}) {\n return this.setItem(key + \"$\", value, opts);\n },\n removeMeta(key, opts = {}) {\n return this.removeItem(key + \"$\", opts);\n },\n // Keys\n async getKeys(base, opts = {}) {\n base = normalizeBaseKey(base);\n const mounts = getMounts(base, true);\n let maskedMounts = [];\n const allKeys = [];\n for (const mount of mounts) {\n const rawKeys = await asyncCall(\n mount.driver.getKeys,\n mount.relativeBase,\n opts\n );\n for (const key of rawKeys) {\n const fullKey = mount.mountpoint + normalizeKey(key);\n if (!maskedMounts.some((p) => fullKey.startsWith(p))) {\n allKeys.push(fullKey);\n }\n }\n maskedMounts = [\n mount.mountpoint,\n ...maskedMounts.filter((p) => !p.startsWith(mount.mountpoint))\n ];\n }\n return base ? allKeys.filter(\n (key) => key.startsWith(base) && key[key.length - 1] !== \"$\"\n ) : allKeys.filter((key) => key[key.length - 1] !== \"$\");\n },\n // Utils\n async clear(base, opts = {}) {\n base = normalizeBaseKey(base);\n await Promise.all(\n getMounts(base, false).map(async (m) => {\n if (m.driver.clear) {\n return asyncCall(m.driver.clear, m.relativeBase, opts);\n }\n if (m.driver.removeItem) {\n const keys = await m.driver.getKeys(m.relativeBase || \"\", opts);\n return Promise.all(\n keys.map((key) => m.driver.removeItem(key, opts))\n );\n }\n })\n );\n },\n async dispose() {\n await Promise.all(\n Object.values(context.mounts).map((driver) => dispose(driver))\n );\n },\n async watch(callback) {\n await startWatch();\n context.watchListeners.push(callback);\n return async () => {\n context.watchListeners = context.watchListeners.filter(\n (listener) => listener !== callback\n );\n if (context.watchListeners.length === 0) {\n await stopWatch();\n }\n };\n },\n async unwatch() {\n context.watchListeners = [];\n await stopWatch();\n },\n // Mount\n mount(base, driver) {\n base = normalizeBaseKey(base);\n if (base && context.mounts[base]) {\n throw new Error(`already mounted at ${base}`);\n }\n if (base) {\n context.mountpoints.push(base);\n context.mountpoints.sort((a, b) => b.length - a.length);\n }\n context.mounts[base] = driver;\n if (context.watching) {\n Promise.resolve(watch(driver, onChange, base)).then((unwatcher) => {\n context.unwatch[base] = unwatcher;\n }).catch(console.error);\n }\n return storage;\n },\n async unmount(base, _dispose = true) {\n base = normalizeBaseKey(base);\n if (!base || !context.mounts[base]) {\n return;\n }\n if (context.watching && base in context.unwatch) {\n context.unwatch[base]?.();\n delete context.unwatch[base];\n }\n if (_dispose) {\n await dispose(context.mounts[base]);\n }\n context.mountpoints = context.mountpoints.filter((key) => key !== base);\n delete context.mounts[base];\n },\n getMount(key = \"\") {\n key = normalizeKey(key) + \":\";\n const m = getMount(key);\n return {\n driver: m.driver,\n base: m.base\n };\n },\n getMounts(base = \"\", opts = {}) {\n base = normalizeKey(base);\n const mounts = getMounts(base, opts.parents);\n return mounts.map((m) => ({\n driver: m.driver,\n base: m.mountpoint\n }));\n },\n // Aliases\n keys: (base, opts = {}) => storage.getKeys(base, opts),\n get: (key, opts = {}) => storage.getItem(key, opts),\n set: (key, value, opts = {}) => storage.setItem(key, value, opts),\n has: (key, opts = {}) => storage.hasItem(key, opts),\n del: (key, opts = {}) => storage.removeItem(key, opts),\n remove: (key, opts = {}) => storage.removeItem(key, opts)\n };\n return storage;\n}\nasync function snapshot(storage, base) {\n base = normalizeBaseKey(base);\n const keys = await storage.getKeys(base);\n const snapshot2 = {};\n await Promise.all(\n keys.map(async (key) => {\n snapshot2[key.slice(base.length)] = await storage.getItem(key);\n })\n );\n return snapshot2;\n}\nasync function restoreSnapshot(driver, snapshot2, base = \"\") {\n base = normalizeBaseKey(base);\n await Promise.all(\n Object.entries(snapshot2).map((e) => driver.setItem(base + e[0], e[1]))\n );\n}\nfunction watch(driver, onChange, base) {\n return driver.watch ? driver.watch((event, key) => onChange(event, base + key)) : () => {\n };\n}\nasync function dispose(driver) {\n if (typeof driver.dispose === \"function\") {\n await asyncCall(driver.dispose);\n }\n}\n\nconst builtinDrivers = {\n \"azure-app-configuration\": \"unstorage/drivers/azure-app-configuration\",\n \"azureAppConfiguration\": \"unstorage/drivers/azure-app-configuration\",\n \"azure-cosmos\": \"unstorage/drivers/azure-cosmos\",\n \"azureCosmos\": \"unstorage/drivers/azure-cosmos\",\n \"azure-key-vault\": \"unstorage/drivers/azure-key-vault\",\n \"azureKeyVault\": \"unstorage/drivers/azure-key-vault\",\n \"azure-storage-blob\": \"unstorage/drivers/azure-storage-blob\",\n \"azureStorageBlob\": \"unstorage/drivers/azure-storage-blob\",\n \"azure-storage-table\": \"unstorage/drivers/azure-storage-table\",\n \"azureStorageTable\": \"unstorage/drivers/azure-storage-table\",\n \"capacitor-preferences\": \"unstorage/drivers/capacitor-preferences\",\n \"capacitorPreferences\": \"unstorage/drivers/capacitor-preferences\",\n \"cloudflare-kv-binding\": \"unstorage/drivers/cloudflare-kv-binding\",\n \"cloudflareKVBinding\": \"unstorage/drivers/cloudflare-kv-binding\",\n \"cloudflare-kv-http\": \"unstorage/drivers/cloudflare-kv-http\",\n \"cloudflareKVHttp\": \"unstorage/drivers/cloudflare-kv-http\",\n \"cloudflare-r2-binding\": \"unstorage/drivers/cloudflare-r2-binding\",\n \"cloudflareR2Binding\": \"unstorage/drivers/cloudflare-r2-binding\",\n \"db0\": \"unstorage/drivers/db0\",\n \"deno-kv-node\": \"unstorage/drivers/deno-kv-node\",\n \"denoKVNode\": \"unstorage/drivers/deno-kv-node\",\n \"deno-kv\": \"unstorage/drivers/deno-kv\",\n \"denoKV\": \"unstorage/drivers/deno-kv\",\n \"fs-lite\": \"unstorage/drivers/fs-lite\",\n \"fsLite\": \"unstorage/drivers/fs-lite\",\n \"fs\": \"unstorage/drivers/fs\",\n \"github\": \"unstorage/drivers/github\",\n \"http\": \"unstorage/drivers/http\",\n \"indexedb\": \"unstorage/drivers/indexedb\",\n \"localstorage\": \"unstorage/drivers/localstorage\",\n \"lru-cache\": \"unstorage/drivers/lru-cache\",\n \"lruCache\": \"unstorage/drivers/lru-cache\",\n \"memory\": \"unstorage/drivers/memory\",\n \"mongodb\": \"unstorage/drivers/mongodb\",\n \"netlify-blobs\": \"unstorage/drivers/netlify-blobs\",\n \"netlifyBlobs\": \"unstorage/drivers/netlify-blobs\",\n \"null\": \"unstorage/drivers/null\",\n \"overlay\": \"unstorage/drivers/overlay\",\n \"planetscale\": \"unstorage/drivers/planetscale\",\n \"redis\": \"unstorage/drivers/redis\",\n \"s3\": \"unstorage/drivers/s3\",\n \"session-storage\": \"unstorage/drivers/session-storage\",\n \"sessionStorage\": \"unstorage/drivers/session-storage\",\n \"uploadthing\": \"unstorage/drivers/uploadthing\",\n \"upstash\": \"unstorage/drivers/upstash\",\n \"vercel-blob\": \"unstorage/drivers/vercel-blob\",\n \"vercelBlob\": \"unstorage/drivers/vercel-blob\",\n \"vercel-kv\": \"unstorage/drivers/vercel-kv\",\n \"vercelKV\": \"unstorage/drivers/vercel-kv\"\n};\n\nexport { builtinDrivers, createStorage, defineDriver, joinKeys, normalizeBaseKey, normalizeKey, restoreSnapshot, snapshot };\n","function promisifyRequest(request) {\n return new Promise((resolve, reject) => {\n // @ts-ignore - file size hacks\n request.oncomplete = request.onsuccess = () => resolve(request.result);\n // @ts-ignore - file size hacks\n request.onabort = request.onerror = () => reject(request.error);\n });\n}\nfunction createStore(dbName, storeName) {\n const request = indexedDB.open(dbName);\n request.onupgradeneeded = () => request.result.createObjectStore(storeName);\n const dbp = promisifyRequest(request);\n return (txMode, callback) => dbp.then((db) => callback(db.transaction(storeName, txMode).objectStore(storeName)));\n}\nlet defaultGetStoreFunc;\nfunction defaultGetStore() {\n if (!defaultGetStoreFunc) {\n defaultGetStoreFunc = createStore('keyval-store', 'keyval');\n }\n return defaultGetStoreFunc;\n}\n/**\n * Get a value by its key.\n *\n * @param key\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction get(key, customStore = defaultGetStore()) {\n return customStore('readonly', (store) => promisifyRequest(store.get(key)));\n}\n/**\n * Set a value with a key.\n *\n * @param key\n * @param value\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction set(key, value, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n store.put(value, key);\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Set multiple values at once. This is faster than calling set() multiple times.\n * It's also atomic – if one of the pairs can't be added, none will be added.\n *\n * @param entries Array of entries, where each entry is an array of `[key, value]`.\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction setMany(entries, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n entries.forEach((entry) => store.put(entry[1], entry[0]));\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Get multiple values by their keys\n *\n * @param keys\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction getMany(keys, customStore = defaultGetStore()) {\n return customStore('readonly', (store) => Promise.all(keys.map((key) => promisifyRequest(store.get(key)))));\n}\n/**\n * Update a value. This lets you see the old value and update it as an atomic operation.\n *\n * @param key\n * @param updater A callback that takes the old value and returns a new value.\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction update(key, updater, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => \n // Need to create the promise manually.\n // If I try to chain promises, the transaction closes in browsers\n // that use a promise polyfill (IE10/11).\n new Promise((resolve, reject) => {\n store.get(key).onsuccess = function () {\n try {\n store.put(updater(this.result), key);\n resolve(promisifyRequest(store.transaction));\n }\n catch (err) {\n reject(err);\n }\n };\n }));\n}\n/**\n * Delete a particular key from the store.\n *\n * @param key\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction del(key, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n store.delete(key);\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Delete multiple keys at once.\n *\n * @param keys List of keys to delete.\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction delMany(keys, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n keys.forEach((key) => store.delete(key));\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Clear all values in the store.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction clear(customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n store.clear();\n return promisifyRequest(store.transaction);\n });\n}\nfunction eachCursor(store, callback) {\n store.openCursor().onsuccess = function () {\n if (!this.result)\n return;\n callback(this.result);\n this.result.continue();\n };\n return promisifyRequest(store.transaction);\n}\n/**\n * Get all keys in the store.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction keys(customStore = defaultGetStore()) {\n return customStore('readonly', (store) => {\n // Fast path for modern browsers\n if (store.getAllKeys) {\n return promisifyRequest(store.getAllKeys());\n }\n const items = [];\n return eachCursor(store, (cursor) => items.push(cursor.key)).then(() => items);\n });\n}\n/**\n * Get all values in the store.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction values(customStore = defaultGetStore()) {\n return customStore('readonly', (store) => {\n // Fast path for modern browsers\n if (store.getAll) {\n return promisifyRequest(store.getAll());\n }\n const items = [];\n return eachCursor(store, (cursor) => items.push(cursor.value)).then(() => items);\n });\n}\n/**\n * Get all entries in the store. Each entry is an array of `[key, value]`.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction entries(customStore = defaultGetStore()) {\n return customStore('readonly', (store) => {\n // Fast path for modern browsers\n // (although, hopefully we'll get a simpler path some day)\n if (store.getAll && store.getAllKeys) {\n return Promise.all([\n promisifyRequest(store.getAllKeys()),\n promisifyRequest(store.getAll()),\n ]).then(([keys, values]) => keys.map((key, i) => [key, values[i]]));\n }\n const items = [];\n return customStore('readonly', (store) => eachCursor(store, (cursor) => items.push([cursor.key, cursor.value])).then(() => items));\n });\n}\n\nexport { clear, createStore, del, delMany, entries, get, getMany, keys, promisifyRequest, set, setMany, update, values };\n","const JSONStringify = data => JSON.stringify(data, (_, value) => typeof value === \"bigint\" ? value.toString() + \"n\" : value);\nconst JSONParse = json => {\n const numbersBiggerThanMaxInt = /([\\[:])?(\\d{17,}|(?:[9](?:[1-9]07199254740991|0[1-9]7199254740991|00[8-9]199254740991|007[2-9]99254740991|007199[3-9]54740991|0071992[6-9]4740991|00719925[5-9]740991|007199254[8-9]40991|0071992547[5-9]0991|00719925474[1-9]991|00719925474099[2-9])))([,\\}\\]])/g;\n const serializedData = json.replace(numbersBiggerThanMaxInt, \"$1\\\"$2n\\\"$3\");\n return JSON.parse(serializedData, (_, value) => {\n const isCustomFormatBigInt = typeof value === \"string\" && value.match(/^\\d+n$/);\n if (isCustomFormatBigInt)\n return BigInt(value.substring(0, value.length - 1));\n return value;\n });\n};\nexport function safeJsonParse(value) {\n if (typeof value !== \"string\") {\n throw new Error(`Cannot safe json parse value of type ${typeof value}`);\n }\n try {\n return JSONParse(value);\n }\n catch (_a) {\n return value;\n }\n}\nexport function safeJsonStringify(value) {\n return typeof value === \"string\" ? value : JSONStringify(value) || \"\";\n}\n//# sourceMappingURL=index.js.map","import{createStorage as w}from\"unstorage\";import{createStore as I,get as u,set as p,del as b,keys as v,clear as S}from\"idb-keyval\";import{safeJsonStringify as g,safeJsonParse as d}from\"@walletconnect/safe-json\";function C(i){return i}const x=\"idb-keyval\";var z=(i={})=>{const t=i.base&&i.base.length>0?`${i.base}:`:\"\",e=s=>t+s;let n;return i.dbName&&i.storeName&&(n=I(i.dbName,i.storeName)),{name:x,options:i,async hasItem(s){return!(typeof await u(e(s),n)>\"u\")},async getItem(s){return await u(e(s),n)??null},setItem(s,a){return p(e(s),a,n)},removeItem(s){return b(e(s),n)},getKeys(){return v(n)},clear(){return S(n)}}};const D=\"WALLET_CONNECT_V2_INDEXED_DB\",E=\"keyvaluestorage\";class _{constructor(){this.indexedDb=w({driver:z({dbName:D,storeName:E})})}async getKeys(){return this.indexedDb.getKeys()}async getEntries(){return(await this.indexedDb.getItems(await this.indexedDb.getKeys())).map(t=>[t.key,t.value])}async getItem(t){const e=await this.indexedDb.getItem(t);if(e!==null)return e}async setItem(t,e){await this.indexedDb.setItem(t,g(e))}async removeItem(t){await this.indexedDb.removeItem(t)}}var l=typeof globalThis<\"u\"?globalThis:typeof window<\"u\"?window:typeof global<\"u\"?global:typeof self<\"u\"?self:{},c={exports:{}};(function(){let i;function t(){}i=t,i.prototype.getItem=function(e){return this.hasOwnProperty(e)?String(this[e]):null},i.prototype.setItem=function(e,n){this[e]=String(n)},i.prototype.removeItem=function(e){delete this[e]},i.prototype.clear=function(){const e=this;Object.keys(e).forEach(function(n){e[n]=void 0,delete e[n]})},i.prototype.key=function(e){return e=e||0,Object.keys(this)[e]},i.prototype.__defineGetter__(\"length\",function(){return Object.keys(this).length}),typeof l<\"u\"&&l.localStorage?c.exports=l.localStorage:typeof window<\"u\"&&window.localStorage?c.exports=window.localStorage:c.exports=new t})();function k(i){var t;return[i[0],d((t=i[1])!=null?t:\"\")]}class K{constructor(){this.localStorage=c.exports}async getKeys(){return Object.keys(this.localStorage)}async getEntries(){return Object.entries(this.localStorage).map(k)}async getItem(t){const e=this.localStorage.getItem(t);if(e!==null)return d(e)}async setItem(t,e){this.localStorage.setItem(t,g(e))}async removeItem(t){this.localStorage.removeItem(t)}}const N=\"wc_storage_version\",y=1,O=async(i,t,e)=>{const n=N,s=await t.getItem(n);if(s&&s>=y){e(t);return}const a=await i.getKeys();if(!a.length){e(t);return}const m=[];for(;a.length;){const r=a.shift();if(!r)continue;const o=r.toLowerCase();if(o.includes(\"wc@\")||o.includes(\"walletconnect\")||o.includes(\"wc_\")||o.includes(\"wallet_connect\")){const f=await i.getItem(r);await t.setItem(r,f),m.push(r)}}await t.setItem(n,y),e(t),j(i,m)},j=async(i,t)=>{t.length&&t.forEach(async e=>{await i.removeItem(e)})};class h{constructor(){this.initialized=!1,this.setInitialized=e=>{this.storage=e,this.initialized=!0};const t=new K;this.storage=t;try{const e=new _;O(t,e,this.setInitialized)}catch{this.initialized=!0}}async getKeys(){return await this.initialize(),this.storage.getKeys()}async getEntries(){return await this.initialize(),this.storage.getEntries()}async getItem(t){return await this.initialize(),this.storage.getItem(t)}async setItem(t,e){return await this.initialize(),this.storage.setItem(t,e)}async removeItem(t){return await this.initialize(),this.storage.removeItem(t)}async initialize(){this.initialized||await new Promise(t=>{const e=setInterval(()=>{this.initialized&&(clearInterval(e),t())},20)})}}export{h as KeyValueStorage,h as default};\n//# sourceMappingURL=index.es.js.map\n","'use strict'\n\nconst format = require('quick-format-unescaped')\n\nmodule.exports = pino\n\nconst _console = pfGlobalThisOrFallback().console || {}\nconst stdSerializers = {\n mapHttpRequest: mock,\n mapHttpResponse: mock,\n wrapRequestSerializer: passthrough,\n wrapResponseSerializer: passthrough,\n wrapErrorSerializer: passthrough,\n req: mock,\n res: mock,\n err: asErrValue\n}\n\nfunction shouldSerialize (serialize, serializers) {\n if (Array.isArray(serialize)) {\n const hasToFilter = serialize.filter(function (k) {\n return k !== '!stdSerializers.err'\n })\n return hasToFilter\n } else if (serialize === true) {\n return Object.keys(serializers)\n }\n\n return false\n}\n\nfunction pino (opts) {\n opts = opts || {}\n opts.browser = opts.browser || {}\n\n const transmit = opts.browser.transmit\n if (transmit && typeof transmit.send !== 'function') { throw Error('pino: transmit option must have a send function') }\n\n const proto = opts.browser.write || _console\n if (opts.browser.write) opts.browser.asObject = true\n const serializers = opts.serializers || {}\n const serialize = shouldSerialize(opts.browser.serialize, serializers)\n let stdErrSerialize = opts.browser.serialize\n\n if (\n Array.isArray(opts.browser.serialize) &&\n opts.browser.serialize.indexOf('!stdSerializers.err') > -1\n ) stdErrSerialize = false\n\n const levels = ['error', 'fatal', 'warn', 'info', 'debug', 'trace']\n\n if (typeof proto === 'function') {\n proto.error = proto.fatal = proto.warn =\n proto.info = proto.debug = proto.trace = proto\n }\n if (opts.enabled === false) opts.level = 'silent'\n const level = opts.level || 'info'\n const logger = Object.create(proto)\n if (!logger.log) logger.log = noop\n\n Object.defineProperty(logger, 'levelVal', {\n get: getLevelVal\n })\n Object.defineProperty(logger, 'level', {\n get: getLevel,\n set: setLevel\n })\n\n const setOpts = {\n transmit,\n serialize,\n asObject: opts.browser.asObject,\n levels,\n timestamp: getTimeFunction(opts)\n }\n logger.levels = pino.levels\n logger.level = level\n\n logger.setMaxListeners = logger.getMaxListeners =\n logger.emit = logger.addListener = logger.on =\n logger.prependListener = logger.once =\n logger.prependOnceListener = logger.removeListener =\n logger.removeAllListeners = logger.listeners =\n logger.listenerCount = logger.eventNames =\n logger.write = logger.flush = noop\n logger.serializers = serializers\n logger._serialize = serialize\n logger._stdErrSerialize = stdErrSerialize\n logger.child = child\n\n if (transmit) logger._logEvent = createLogEventShape()\n\n function getLevelVal () {\n return this.level === 'silent'\n ? Infinity\n : this.levels.values[this.level]\n }\n\n function getLevel () {\n return this._level\n }\n function setLevel (level) {\n if (level !== 'silent' && !this.levels.values[level]) {\n throw Error('unknown level ' + level)\n }\n this._level = level\n\n set(setOpts, logger, 'error', 'log') // <-- must stay first\n set(setOpts, logger, 'fatal', 'error')\n set(setOpts, logger, 'warn', 'error')\n set(setOpts, logger, 'info', 'log')\n set(setOpts, logger, 'debug', 'log')\n set(setOpts, logger, 'trace', 'log')\n }\n\n function child (bindings, childOptions) {\n if (!bindings) {\n throw new Error('missing bindings for child Pino')\n }\n childOptions = childOptions || {}\n if (serialize && bindings.serializers) {\n childOptions.serializers = bindings.serializers\n }\n const childOptionsSerializers = childOptions.serializers\n if (serialize && childOptionsSerializers) {\n var childSerializers = Object.assign({}, serializers, childOptionsSerializers)\n var childSerialize = opts.browser.serialize === true\n ? Object.keys(childSerializers)\n : serialize\n delete bindings.serializers\n applySerializers([bindings], childSerialize, childSerializers, this._stdErrSerialize)\n }\n function Child (parent) {\n this._childLevel = (parent._childLevel | 0) + 1\n this.error = bind(parent, bindings, 'error')\n this.fatal = bind(parent, bindings, 'fatal')\n this.warn = bind(parent, bindings, 'warn')\n this.info = bind(parent, bindings, 'info')\n this.debug = bind(parent, bindings, 'debug')\n this.trace = bind(parent, bindings, 'trace')\n if (childSerializers) {\n this.serializers = childSerializers\n this._serialize = childSerialize\n }\n if (transmit) {\n this._logEvent = createLogEventShape(\n [].concat(parent._logEvent.bindings, bindings)\n )\n }\n }\n Child.prototype = this\n return new Child(this)\n }\n return logger\n}\n\npino.levels = {\n values: {\n fatal: 60,\n error: 50,\n warn: 40,\n info: 30,\n debug: 20,\n trace: 10\n },\n labels: {\n 10: 'trace',\n 20: 'debug',\n 30: 'info',\n 40: 'warn',\n 50: 'error',\n 60: 'fatal'\n }\n}\n\npino.stdSerializers = stdSerializers\npino.stdTimeFunctions = Object.assign({}, { nullTime, epochTime, unixTime, isoTime })\n\nfunction set (opts, logger, level, fallback) {\n const proto = Object.getPrototypeOf(logger)\n logger[level] = logger.levelVal > logger.levels.values[level]\n ? noop\n : (proto[level] ? proto[level] : (_console[level] || _console[fallback] || noop))\n\n wrap(opts, logger, level)\n}\n\nfunction wrap (opts, logger, level) {\n if (!opts.transmit && logger[level] === noop) return\n\n logger[level] = (function (write) {\n return function LOG () {\n const ts = opts.timestamp()\n const args = new Array(arguments.length)\n const proto = (Object.getPrototypeOf && Object.getPrototypeOf(this) === _console) ? _console : this\n for (var i = 0; i < args.length; i++) args[i] = arguments[i]\n\n if (opts.serialize && !opts.asObject) {\n applySerializers(args, this._serialize, this.serializers, this._stdErrSerialize)\n }\n if (opts.asObject) write.call(proto, asObject(this, level, args, ts))\n else write.apply(proto, args)\n\n if (opts.transmit) {\n const transmitLevel = opts.transmit.level || logger.level\n const transmitValue = pino.levels.values[transmitLevel]\n const methodValue = pino.levels.values[level]\n if (methodValue < transmitValue) return\n transmit(this, {\n ts,\n methodLevel: level,\n methodValue,\n transmitLevel,\n transmitValue: pino.levels.values[opts.transmit.level || logger.level],\n send: opts.transmit.send,\n val: logger.levelVal\n }, args)\n }\n }\n })(logger[level])\n}\n\nfunction asObject (logger, level, args, ts) {\n if (logger._serialize) applySerializers(args, logger._serialize, logger.serializers, logger._stdErrSerialize)\n const argsCloned = args.slice()\n let msg = argsCloned[0]\n const o = {}\n if (ts) {\n o.time = ts\n }\n o.level = pino.levels.values[level]\n let lvl = (logger._childLevel | 0) + 1\n if (lvl < 1) lvl = 1\n // deliberate, catching objects, arrays\n if (msg !== null && typeof msg === 'object') {\n while (lvl-- && typeof argsCloned[0] === 'object') {\n Object.assign(o, argsCloned.shift())\n }\n msg = argsCloned.length ? format(argsCloned.shift(), argsCloned) : undefined\n } else if (typeof msg === 'string') msg = format(argsCloned.shift(), argsCloned)\n if (msg !== undefined) o.msg = msg\n return o\n}\n\nfunction applySerializers (args, serialize, serializers, stdErrSerialize) {\n for (const i in args) {\n if (stdErrSerialize && args[i] instanceof Error) {\n args[i] = pino.stdSerializers.err(args[i])\n } else if (typeof args[i] === 'object' && !Array.isArray(args[i])) {\n for (const k in args[i]) {\n if (serialize && serialize.indexOf(k) > -1 && k in serializers) {\n args[i][k] = serializers[k](args[i][k])\n }\n }\n }\n }\n}\n\nfunction bind (parent, bindings, level) {\n return function () {\n const args = new Array(1 + arguments.length)\n args[0] = bindings\n for (var i = 1; i < args.length; i++) {\n args[i] = arguments[i - 1]\n }\n return parent[level].apply(this, args)\n }\n}\n\nfunction transmit (logger, opts, args) {\n const send = opts.send\n const ts = opts.ts\n const methodLevel = opts.methodLevel\n const methodValue = opts.methodValue\n const val = opts.val\n const bindings = logger._logEvent.bindings\n\n applySerializers(\n args,\n logger._serialize || Object.keys(logger.serializers),\n logger.serializers,\n logger._stdErrSerialize === undefined ? true : logger._stdErrSerialize\n )\n logger._logEvent.ts = ts\n logger._logEvent.messages = args.filter(function (arg) {\n // bindings can only be objects, so reference equality check via indexOf is fine\n return bindings.indexOf(arg) === -1\n })\n\n logger._logEvent.level.label = methodLevel\n logger._logEvent.level.value = methodValue\n\n send(methodLevel, logger._logEvent, val)\n\n logger._logEvent = createLogEventShape(bindings)\n}\n\nfunction createLogEventShape (bindings) {\n return {\n ts: 0,\n messages: [],\n bindings: bindings || [],\n level: { label: '', value: 0 }\n }\n}\n\nfunction asErrValue (err) {\n const obj = {\n type: err.constructor.name,\n msg: err.message,\n stack: err.stack\n }\n for (const key in err) {\n if (obj[key] === undefined) {\n obj[key] = err[key]\n }\n }\n return obj\n}\n\nfunction getTimeFunction (opts) {\n if (typeof opts.timestamp === 'function') {\n return opts.timestamp\n }\n if (opts.timestamp === false) {\n return nullTime\n }\n return epochTime\n}\n\nfunction mock () { return {} }\nfunction passthrough (a) { return a }\nfunction noop () {}\n\nfunction nullTime () { return false }\nfunction epochTime () { return Date.now() }\nfunction unixTime () { return Math.round(Date.now() / 1000.0) }\nfunction isoTime () { return new Date(Date.now()).toISOString() } // using Date.now() for testability\n\n/* eslint-disable */\n/* istanbul ignore next */\nfunction pfGlobalThisOrFallback () {\n function defd (o) { return typeof o !== 'undefined' && o }\n try {\n if (typeof globalThis !== 'undefined') return globalThis\n Object.defineProperty(Object.prototype, 'globalThis', {\n get: function () {\n delete Object.prototype.globalThis\n return (this.globalThis = this)\n },\n configurable: true\n })\n return globalThis\n } catch (e) {\n return defd(self) || defd(window) || defd(this) || {}\n }\n}\n/* eslint-enable */\n","import h,{levels as s}from\"pino\";import{default as U}from\"pino\";import{safeJsonStringify as u}from\"@walletconnect/safe-json\";const c={level:\"info\"},n=\"custom_context\",l=1e3*1024;class O{constructor(e){this.nodeValue=e,this.sizeInBytes=new TextEncoder().encode(this.nodeValue).length,this.next=null}get value(){return this.nodeValue}get size(){return this.sizeInBytes}}class d{constructor(e){this.head=null,this.tail=null,this.lengthInNodes=0,this.maxSizeInBytes=e,this.sizeInBytes=0}append(e){const t=new O(e);if(t.size>this.maxSizeInBytes)throw new Error(`[LinkedList] Value too big to insert into list: ${e} with size ${t.size}`);for(;this.size+t.size>this.maxSizeInBytes;)this.shift();this.head?(this.tail&&(this.tail.next=t),this.tail=t):(this.head=t,this.tail=t),this.lengthInNodes++,this.sizeInBytes+=t.size}shift(){if(!this.head)return;const e=this.head;this.head=this.head.next,this.head||(this.tail=null),this.lengthInNodes--,this.sizeInBytes-=e.size}toArray(){const e=[];let t=this.head;for(;t!==null;)e.push(t.value),t=t.next;return e}get length(){return this.lengthInNodes}get size(){return this.sizeInBytes}toOrderedArray(){return Array.from(this)}[Symbol.iterator](){let e=this.head;return{next:()=>{if(!e)return{done:!0,value:null};const t=e.value;return e=e.next,{done:!1,value:t}}}}}class L{constructor(e,t=l){this.level=e??\"error\",this.levelValue=s.values[this.level],this.MAX_LOG_SIZE_IN_BYTES=t,this.logs=new d(this.MAX_LOG_SIZE_IN_BYTES)}forwardToConsole(e,t){t===s.values.error?console.error(e):t===s.values.warn?console.warn(e):t===s.values.debug?console.debug(e):t===s.values.trace?console.trace(e):console.log(e)}appendToLogs(e){this.logs.append(u({timestamp:new Date().toISOString(),log:e}));const t=typeof e==\"string\"?JSON.parse(e).level:e.level;t>=this.levelValue&&this.forwardToConsole(e,t)}getLogs(){return this.logs}clearLogs(){this.logs=new d(this.MAX_LOG_SIZE_IN_BYTES)}getLogArray(){return Array.from(this.logs)}logsToBlob(e){const t=this.getLogArray();return t.push(u({extraMetadata:e})),new Blob(t,{type:\"application/json\"})}}class m{constructor(e,t=l){this.baseChunkLogger=new L(e,t)}write(e){this.baseChunkLogger.appendToLogs(e)}getLogs(){return this.baseChunkLogger.getLogs()}clearLogs(){this.baseChunkLogger.clearLogs()}getLogArray(){return this.baseChunkLogger.getLogArray()}logsToBlob(e){return this.baseChunkLogger.logsToBlob(e)}downloadLogsBlobInBrowser(e){const t=URL.createObjectURL(this.logsToBlob(e)),o=document.createElement(\"a\");o.href=t,o.download=`walletconnect-logs-${new Date().toISOString()}.txt`,document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(t)}}class B{constructor(e,t=l){this.baseChunkLogger=new L(e,t)}write(e){this.baseChunkLogger.appendToLogs(e)}getLogs(){return this.baseChunkLogger.getLogs()}clearLogs(){this.baseChunkLogger.clearLogs()}getLogArray(){return this.baseChunkLogger.getLogArray()}logsToBlob(e){return this.baseChunkLogger.logsToBlob(e)}}var x=Object.defineProperty,S=Object.defineProperties,_=Object.getOwnPropertyDescriptors,p=Object.getOwnPropertySymbols,T=Object.prototype.hasOwnProperty,z=Object.prototype.propertyIsEnumerable,f=(r,e,t)=>e in r?x(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,i=(r,e)=>{for(var t in e||(e={}))T.call(e,t)&&f(r,t,e[t]);if(p)for(var t of p(e))z.call(e,t)&&f(r,t,e[t]);return r},g=(r,e)=>S(r,_(e));function k(r){return g(i({},r),{level:r?.level||c.level})}function v(r,e=n){return r[e]||\"\"}function b(r,e,t=n){return r[t]=e,r}function y(r,e=n){let t=\"\";return typeof r.bindings>\"u\"?t=v(r,e):t=r.bindings().context||\"\",t}function w(r,e,t=n){const o=y(r,t);return o.trim()?`${o}/${e}`:e}function E(r,e,t=n){const o=w(r,e,t),a=r.child({context:o});return b(a,o,t)}function C(r){var e,t;const o=new m((e=r.opts)==null?void 0:e.level,r.maxSizeInBytes);return{logger:h(g(i({},r.opts),{level:\"trace\",browser:g(i({},(t=r.opts)==null?void 0:t.browser),{write:a=>o.write(a)})})),chunkLoggerController:o}}function I(r){var e;const t=new B((e=r.opts)==null?void 0:e.level,r.maxSizeInBytes);return{logger:h(g(i({},r.opts),{level:\"trace\"}),t),chunkLoggerController:t}}function A(r){return typeof r.loggerOverride<\"u\"&&typeof r.loggerOverride!=\"string\"?{logger:r.loggerOverride,chunkLoggerController:null}:typeof window<\"u\"?C(r):I(r)}export{l as MAX_LOG_SIZE_IN_BYTES_DEFAULT,n as PINO_CUSTOM_CONTEXT_KEY,c as PINO_LOGGER_DEFAULTS,w as formatChildLoggerContext,E as generateChildLogger,C as generateClientLogger,A as generatePlatformLogger,I as generateServerLogger,v as getBrowserLoggerContext,k as getDefaultLoggerOptions,y as getLoggerContext,U as pino,b as setBrowserLoggerContext};\n//# sourceMappingURL=index.es.js.map\n","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BrowserRandomSource = void 0;\nconst QUOTA = 65536;\nclass BrowserRandomSource {\n constructor() {\n this.isAvailable = false;\n this.isInstantiated = false;\n const browserCrypto = typeof self !== 'undefined'\n ? (self.crypto || self.msCrypto) // IE11 has msCrypto\n : null;\n if (browserCrypto && browserCrypto.getRandomValues !== undefined) {\n this._crypto = browserCrypto;\n this.isAvailable = true;\n this.isInstantiated = true;\n }\n }\n randomBytes(length) {\n if (!this.isAvailable || !this._crypto) {\n throw new Error(\"Browser random byte generator is not available.\");\n }\n const out = new Uint8Array(length);\n for (let i = 0; i < out.length; i += QUOTA) {\n this._crypto.getRandomValues(out.subarray(i, i + Math.min(out.length - i, QUOTA)));\n }\n return out;\n }\n}\nexports.BrowserRandomSource = BrowserRandomSource;\n//# sourceMappingURL=browser.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Sets all values in the given array to zero and returns it.\n *\n * The fact that it sets bytes to zero can be relied on.\n *\n * There is no guarantee that this function makes data disappear from memory,\n * as runtime implementation can, for example, have copying garbage collector\n * that will make copies of sensitive data before we wipe it. Or that an\n * operating system will write our data to swap or sleep image. Another thing\n * is that an optimizing compiler can remove calls to this function or make it\n * no-op. There's nothing we can do with it, so we just do our best and hope\n * that everything will be okay and good will triumph over evil.\n */\nfunction wipe(array) {\n // Right now it's similar to array.fill(0). If it turns\n // out that runtimes optimize this call away, maybe\n // we can try something else.\n for (var i = 0; i < array.length; i++) {\n array[i] = 0;\n }\n return array;\n}\nexports.wipe = wipe;\n//# sourceMappingURL=wipe.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeRandomSource = void 0;\nconst wipe_1 = require(\"@stablelib/wipe\");\nclass NodeRandomSource {\n constructor() {\n this.isAvailable = false;\n this.isInstantiated = false;\n if (typeof require !== \"undefined\") {\n const nodeCrypto = require(\"crypto\");\n if (nodeCrypto && nodeCrypto.randomBytes) {\n this._crypto = nodeCrypto;\n this.isAvailable = true;\n this.isInstantiated = true;\n }\n }\n }\n randomBytes(length) {\n if (!this.isAvailable || !this._crypto) {\n throw new Error(\"Node.js random byte generator is not available.\");\n }\n // Get random bytes (result is Buffer).\n let buffer = this._crypto.randomBytes(length);\n // Make sure we got the length that we requested.\n if (buffer.length !== length) {\n throw new Error(\"NodeRandomSource: got fewer bytes than requested\");\n }\n // Allocate output array.\n const out = new Uint8Array(length);\n // Copy bytes from buffer to output.\n for (let i = 0; i < out.length; i++) {\n out[i] = buffer[i];\n }\n // Cleanup.\n (0, wipe_1.wipe)(buffer);\n return out;\n }\n}\nexports.NodeRandomSource = NodeRandomSource;\n//# sourceMappingURL=node.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SystemRandomSource = void 0;\nconst browser_1 = require(\"./browser\");\nconst node_1 = require(\"./node\");\nclass SystemRandomSource {\n constructor() {\n this.isAvailable = false;\n this.name = \"\";\n // Try browser.\n this._source = new browser_1.BrowserRandomSource();\n if (this._source.isAvailable) {\n this.isAvailable = true;\n this.name = \"Browser\";\n return;\n }\n // If no browser source, try Node.\n this._source = new node_1.NodeRandomSource();\n if (this._source.isAvailable) {\n this.isAvailable = true;\n this.name = \"Node\";\n return;\n }\n // No sources, we're out of options.\n }\n randomBytes(length) {\n if (!this.isAvailable) {\n throw new Error(\"System random byte generator is not available.\");\n }\n return this._source.randomBytes(length);\n }\n}\nexports.SystemRandomSource = SystemRandomSource;\n//# sourceMappingURL=system.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Package int provides helper functions for integerss.\n */\n// Shim using 16-bit pieces.\nfunction imulShim(a, b) {\n var ah = (a >>> 16) & 0xffff, al = a & 0xffff;\n var bh = (b >>> 16) & 0xffff, bl = b & 0xffff;\n return ((al * bl) + (((ah * bl + al * bh) << 16) >>> 0) | 0);\n}\n/** 32-bit integer multiplication. */\n// Use system Math.imul if available, otherwise use our shim.\nexports.mul = Math.imul || imulShim;\n/** 32-bit integer addition. */\nfunction add(a, b) {\n return (a + b) | 0;\n}\nexports.add = add;\n/** 32-bit integer subtraction. */\nfunction sub(a, b) {\n return (a - b) | 0;\n}\nexports.sub = sub;\n/** 32-bit integer left rotation */\nfunction rotl(x, n) {\n return x << n | x >>> (32 - n);\n}\nexports.rotl = rotl;\n/** 32-bit integer left rotation */\nfunction rotr(x, n) {\n return x << (32 - n) | x >>> n;\n}\nexports.rotr = rotr;\nfunction isIntegerShim(n) {\n return typeof n === \"number\" && isFinite(n) && Math.floor(n) === n;\n}\n/**\n * Returns true if the argument is an integer number.\n *\n * In ES2015, Number.isInteger.\n */\nexports.isInteger = Number.isInteger || isIntegerShim;\n/**\n * Math.pow(2, 53) - 1\n *\n * In ES2015 Number.MAX_SAFE_INTEGER.\n */\nexports.MAX_SAFE_INTEGER = 9007199254740991;\n/**\n * Returns true if the argument is a safe integer number\n * (-MIN_SAFE_INTEGER < number <= MAX_SAFE_INTEGER)\n *\n * In ES2015, Number.isSafeInteger.\n */\nexports.isSafeInteger = function (n) {\n return exports.isInteger(n) && (n >= -exports.MAX_SAFE_INTEGER && n <= exports.MAX_SAFE_INTEGER);\n};\n//# sourceMappingURL=int.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Package binary provides functions for encoding and decoding numbers in byte arrays.\n */\nvar int_1 = require(\"@stablelib/int\");\n// TODO(dchest): add asserts for correct value ranges and array offsets.\n/**\n * Reads 2 bytes from array starting at offset as big-endian\n * signed 16-bit integer and returns it.\n */\nfunction readInt16BE(array, offset) {\n if (offset === void 0) { offset = 0; }\n return (((array[offset + 0] << 8) | array[offset + 1]) << 16) >> 16;\n}\nexports.readInt16BE = readInt16BE;\n/**\n * Reads 2 bytes from array starting at offset as big-endian\n * unsigned 16-bit integer and returns it.\n */\nfunction readUint16BE(array, offset) {\n if (offset === void 0) { offset = 0; }\n return ((array[offset + 0] << 8) | array[offset + 1]) >>> 0;\n}\nexports.readUint16BE = readUint16BE;\n/**\n * Reads 2 bytes from array starting at offset as little-endian\n * signed 16-bit integer and returns it.\n */\nfunction readInt16LE(array, offset) {\n if (offset === void 0) { offset = 0; }\n return (((array[offset + 1] << 8) | array[offset]) << 16) >> 16;\n}\nexports.readInt16LE = readInt16LE;\n/**\n * Reads 2 bytes from array starting at offset as little-endian\n * unsigned 16-bit integer and returns it.\n */\nfunction readUint16LE(array, offset) {\n if (offset === void 0) { offset = 0; }\n return ((array[offset + 1] << 8) | array[offset]) >>> 0;\n}\nexports.readUint16LE = readUint16LE;\n/**\n * Writes 2-byte big-endian representation of 16-bit unsigned\n * value to byte array starting at offset.\n *\n * If byte array is not given, creates a new 2-byte one.\n *\n * Returns the output byte array.\n */\nfunction writeUint16BE(value, out, offset) {\n if (out === void 0) { out = new Uint8Array(2); }\n if (offset === void 0) { offset = 0; }\n out[offset + 0] = value >>> 8;\n out[offset + 1] = value >>> 0;\n return out;\n}\nexports.writeUint16BE = writeUint16BE;\nexports.writeInt16BE = writeUint16BE;\n/**\n * Writes 2-byte little-endian representation of 16-bit unsigned\n * value to array starting at offset.\n *\n * If byte array is not given, creates a new 2-byte one.\n *\n * Returns the output byte array.\n */\nfunction writeUint16LE(value, out, offset) {\n if (out === void 0) { out = new Uint8Array(2); }\n if (offset === void 0) { offset = 0; }\n out[offset + 0] = value >>> 0;\n out[offset + 1] = value >>> 8;\n return out;\n}\nexports.writeUint16LE = writeUint16LE;\nexports.writeInt16LE = writeUint16LE;\n/**\n * Reads 4 bytes from array starting at offset as big-endian\n * signed 32-bit integer and returns it.\n */\nfunction readInt32BE(array, offset) {\n if (offset === void 0) { offset = 0; }\n return (array[offset] << 24) |\n (array[offset + 1] << 16) |\n (array[offset + 2] << 8) |\n array[offset + 3];\n}\nexports.readInt32BE = readInt32BE;\n/**\n * Reads 4 bytes from array starting at offset as big-endian\n * unsigned 32-bit integer and returns it.\n */\nfunction readUint32BE(array, offset) {\n if (offset === void 0) { offset = 0; }\n return ((array[offset] << 24) |\n (array[offset + 1] << 16) |\n (array[offset + 2] << 8) |\n array[offset + 3]) >>> 0;\n}\nexports.readUint32BE = readUint32BE;\n/**\n * Reads 4 bytes from array starting at offset as little-endian\n * signed 32-bit integer and returns it.\n */\nfunction readInt32LE(array, offset) {\n if (offset === void 0) { offset = 0; }\n return (array[offset + 3] << 24) |\n (array[offset + 2] << 16) |\n (array[offset + 1] << 8) |\n array[offset];\n}\nexports.readInt32LE = readInt32LE;\n/**\n * Reads 4 bytes from array starting at offset as little-endian\n * unsigned 32-bit integer and returns it.\n */\nfunction readUint32LE(array, offset) {\n if (offset === void 0) { offset = 0; }\n return ((array[offset + 3] << 24) |\n (array[offset + 2] << 16) |\n (array[offset + 1] << 8) |\n array[offset]) >>> 0;\n}\nexports.readUint32LE = readUint32LE;\n/**\n * Writes 4-byte big-endian representation of 32-bit unsigned\n * value to byte array starting at offset.\n *\n * If byte array is not given, creates a new 4-byte one.\n *\n * Returns the output byte array.\n */\nfunction writeUint32BE(value, out, offset) {\n if (out === void 0) { out = new Uint8Array(4); }\n if (offset === void 0) { offset = 0; }\n out[offset + 0] = value >>> 24;\n out[offset + 1] = value >>> 16;\n out[offset + 2] = value >>> 8;\n out[offset + 3] = value >>> 0;\n return out;\n}\nexports.writeUint32BE = writeUint32BE;\nexports.writeInt32BE = writeUint32BE;\n/**\n * Writes 4-byte little-endian representation of 32-bit unsigned\n * value to array starting at offset.\n *\n * If byte array is not given, creates a new 4-byte one.\n *\n * Returns the output byte array.\n */\nfunction writeUint32LE(value, out, offset) {\n if (out === void 0) { out = new Uint8Array(4); }\n if (offset === void 0) { offset = 0; }\n out[offset + 0] = value >>> 0;\n out[offset + 1] = value >>> 8;\n out[offset + 2] = value >>> 16;\n out[offset + 3] = value >>> 24;\n return out;\n}\nexports.writeUint32LE = writeUint32LE;\nexports.writeInt32LE = writeUint32LE;\n/**\n * Reads 8 bytes from array starting at offset as big-endian\n * signed 64-bit integer and returns it.\n *\n * IMPORTANT: due to JavaScript limitation, supports exact\n * numbers in range -9007199254740991 to 9007199254740991.\n * If the number stored in the byte array is outside this range,\n * the result is not exact.\n */\nfunction readInt64BE(array, offset) {\n if (offset === void 0) { offset = 0; }\n var hi = readInt32BE(array, offset);\n var lo = readInt32BE(array, offset + 4);\n return hi * 0x100000000 + lo - ((lo >> 31) * 0x100000000);\n}\nexports.readInt64BE = readInt64BE;\n/**\n * Reads 8 bytes from array starting at offset as big-endian\n * unsigned 64-bit integer and returns it.\n *\n * IMPORTANT: due to JavaScript limitation, supports values up to 2^53-1.\n */\nfunction readUint64BE(array, offset) {\n if (offset === void 0) { offset = 0; }\n var hi = readUint32BE(array, offset);\n var lo = readUint32BE(array, offset + 4);\n return hi * 0x100000000 + lo;\n}\nexports.readUint64BE = readUint64BE;\n/**\n * Reads 8 bytes from array starting at offset as little-endian\n * signed 64-bit integer and returns it.\n *\n * IMPORTANT: due to JavaScript limitation, supports exact\n * numbers in range -9007199254740991 to 9007199254740991.\n * If the number stored in the byte array is outside this range,\n * the result is not exact.\n */\nfunction readInt64LE(array, offset) {\n if (offset === void 0) { offset = 0; }\n var lo = readInt32LE(array, offset);\n var hi = readInt32LE(array, offset + 4);\n return hi * 0x100000000 + lo - ((lo >> 31) * 0x100000000);\n}\nexports.readInt64LE = readInt64LE;\n/**\n * Reads 8 bytes from array starting at offset as little-endian\n * unsigned 64-bit integer and returns it.\n *\n * IMPORTANT: due to JavaScript limitation, supports values up to 2^53-1.\n */\nfunction readUint64LE(array, offset) {\n if (offset === void 0) { offset = 0; }\n var lo = readUint32LE(array, offset);\n var hi = readUint32LE(array, offset + 4);\n return hi * 0x100000000 + lo;\n}\nexports.readUint64LE = readUint64LE;\n/**\n * Writes 8-byte big-endian representation of 64-bit unsigned\n * value to byte array starting at offset.\n *\n * Due to JavaScript limitation, supports values up to 2^53-1.\n *\n * If byte array is not given, creates a new 8-byte one.\n *\n * Returns the output byte array.\n */\nfunction writeUint64BE(value, out, offset) {\n if (out === void 0) { out = new Uint8Array(8); }\n if (offset === void 0) { offset = 0; }\n writeUint32BE(value / 0x100000000 >>> 0, out, offset);\n writeUint32BE(value >>> 0, out, offset + 4);\n return out;\n}\nexports.writeUint64BE = writeUint64BE;\nexports.writeInt64BE = writeUint64BE;\n/**\n * Writes 8-byte little-endian representation of 64-bit unsigned\n * value to byte array starting at offset.\n *\n * Due to JavaScript limitation, supports values up to 2^53-1.\n *\n * If byte array is not given, creates a new 8-byte one.\n *\n * Returns the output byte array.\n */\nfunction writeUint64LE(value, out, offset) {\n if (out === void 0) { out = new Uint8Array(8); }\n if (offset === void 0) { offset = 0; }\n writeUint32LE(value >>> 0, out, offset);\n writeUint32LE(value / 0x100000000 >>> 0, out, offset + 4);\n return out;\n}\nexports.writeUint64LE = writeUint64LE;\nexports.writeInt64LE = writeUint64LE;\n/**\n * Reads bytes from array starting at offset as big-endian\n * unsigned bitLen-bit integer and returns it.\n *\n * Supports bit lengths divisible by 8, up to 48.\n */\nfunction readUintBE(bitLength, array, offset) {\n if (offset === void 0) { offset = 0; }\n // TODO(dchest): implement support for bitLengths non-divisible by 8\n if (bitLength % 8 !== 0) {\n throw new Error(\"readUintBE supports only bitLengths divisible by 8\");\n }\n if (bitLength / 8 > array.length - offset) {\n throw new Error(\"readUintBE: array is too short for the given bitLength\");\n }\n var result = 0;\n var mul = 1;\n for (var i = bitLength / 8 + offset - 1; i >= offset; i--) {\n result += array[i] * mul;\n mul *= 256;\n }\n return result;\n}\nexports.readUintBE = readUintBE;\n/**\n * Reads bytes from array starting at offset as little-endian\n * unsigned bitLen-bit integer and returns it.\n *\n * Supports bit lengths divisible by 8, up to 48.\n */\nfunction readUintLE(bitLength, array, offset) {\n if (offset === void 0) { offset = 0; }\n // TODO(dchest): implement support for bitLengths non-divisible by 8\n if (bitLength % 8 !== 0) {\n throw new Error(\"readUintLE supports only bitLengths divisible by 8\");\n }\n if (bitLength / 8 > array.length - offset) {\n throw new Error(\"readUintLE: array is too short for the given bitLength\");\n }\n var result = 0;\n var mul = 1;\n for (var i = offset; i < offset + bitLength / 8; i++) {\n result += array[i] * mul;\n mul *= 256;\n }\n return result;\n}\nexports.readUintLE = readUintLE;\n/**\n * Writes a big-endian representation of bitLen-bit unsigned\n * value to array starting at offset.\n *\n * Supports bit lengths divisible by 8, up to 48.\n *\n * If byte array is not given, creates a new one.\n *\n * Returns the output byte array.\n */\nfunction writeUintBE(bitLength, value, out, offset) {\n if (out === void 0) { out = new Uint8Array(bitLength / 8); }\n if (offset === void 0) { offset = 0; }\n // TODO(dchest): implement support for bitLengths non-divisible by 8\n if (bitLength % 8 !== 0) {\n throw new Error(\"writeUintBE supports only bitLengths divisible by 8\");\n }\n if (!int_1.isSafeInteger(value)) {\n throw new Error(\"writeUintBE value must be an integer\");\n }\n var div = 1;\n for (var i = bitLength / 8 + offset - 1; i >= offset; i--) {\n out[i] = (value / div) & 0xff;\n div *= 256;\n }\n return out;\n}\nexports.writeUintBE = writeUintBE;\n/**\n * Writes a little-endian representation of bitLen-bit unsigned\n * value to array starting at offset.\n *\n * Supports bit lengths divisible by 8, up to 48.\n *\n * If byte array is not given, creates a new one.\n *\n * Returns the output byte array.\n */\nfunction writeUintLE(bitLength, value, out, offset) {\n if (out === void 0) { out = new Uint8Array(bitLength / 8); }\n if (offset === void 0) { offset = 0; }\n // TODO(dchest): implement support for bitLengths non-divisible by 8\n if (bitLength % 8 !== 0) {\n throw new Error(\"writeUintLE supports only bitLengths divisible by 8\");\n }\n if (!int_1.isSafeInteger(value)) {\n throw new Error(\"writeUintLE value must be an integer\");\n }\n var div = 1;\n for (var i = offset; i < offset + bitLength / 8; i++) {\n out[i] = (value / div) & 0xff;\n div *= 256;\n }\n return out;\n}\nexports.writeUintLE = writeUintLE;\n/**\n * Reads 4 bytes from array starting at offset as big-endian\n * 32-bit floating-point number and returns it.\n */\nfunction readFloat32BE(array, offset) {\n if (offset === void 0) { offset = 0; }\n var view = new DataView(array.buffer, array.byteOffset, array.byteLength);\n return view.getFloat32(offset);\n}\nexports.readFloat32BE = readFloat32BE;\n/**\n * Reads 4 bytes from array starting at offset as little-endian\n * 32-bit floating-point number and returns it.\n */\nfunction readFloat32LE(array, offset) {\n if (offset === void 0) { offset = 0; }\n var view = new DataView(array.buffer, array.byteOffset, array.byteLength);\n return view.getFloat32(offset, true);\n}\nexports.readFloat32LE = readFloat32LE;\n/**\n * Reads 8 bytes from array starting at offset as big-endian\n * 64-bit floating-point number (\"double\") and returns it.\n */\nfunction readFloat64BE(array, offset) {\n if (offset === void 0) { offset = 0; }\n var view = new DataView(array.buffer, array.byteOffset, array.byteLength);\n return view.getFloat64(offset);\n}\nexports.readFloat64BE = readFloat64BE;\n/**\n * Reads 8 bytes from array starting at offset as little-endian\n * 64-bit floating-point number (\"double\") and returns it.\n */\nfunction readFloat64LE(array, offset) {\n if (offset === void 0) { offset = 0; }\n var view = new DataView(array.buffer, array.byteOffset, array.byteLength);\n return view.getFloat64(offset, true);\n}\nexports.readFloat64LE = readFloat64LE;\n/**\n * Writes 4-byte big-endian floating-point representation of value\n * to byte array starting at offset.\n *\n * If byte array is not given, creates a new 4-byte one.\n *\n * Returns the output byte array.\n */\nfunction writeFloat32BE(value, out, offset) {\n if (out === void 0) { out = new Uint8Array(4); }\n if (offset === void 0) { offset = 0; }\n var view = new DataView(out.buffer, out.byteOffset, out.byteLength);\n view.setFloat32(offset, value);\n return out;\n}\nexports.writeFloat32BE = writeFloat32BE;\n/**\n * Writes 4-byte little-endian floating-point representation of value\n * to byte array starting at offset.\n *\n * If byte array is not given, creates a new 4-byte one.\n *\n * Returns the output byte array.\n */\nfunction writeFloat32LE(value, out, offset) {\n if (out === void 0) { out = new Uint8Array(4); }\n if (offset === void 0) { offset = 0; }\n var view = new DataView(out.buffer, out.byteOffset, out.byteLength);\n view.setFloat32(offset, value, true);\n return out;\n}\nexports.writeFloat32LE = writeFloat32LE;\n/**\n * Writes 8-byte big-endian floating-point representation of value\n * to byte array starting at offset.\n *\n * If byte array is not given, creates a new 8-byte one.\n *\n * Returns the output byte array.\n */\nfunction writeFloat64BE(value, out, offset) {\n if (out === void 0) { out = new Uint8Array(8); }\n if (offset === void 0) { offset = 0; }\n var view = new DataView(out.buffer, out.byteOffset, out.byteLength);\n view.setFloat64(offset, value);\n return out;\n}\nexports.writeFloat64BE = writeFloat64BE;\n/**\n * Writes 8-byte little-endian floating-point representation of value\n * to byte array starting at offset.\n *\n * If byte array is not given, creates a new 8-byte one.\n *\n * Returns the output byte array.\n */\nfunction writeFloat64LE(value, out, offset) {\n if (out === void 0) { out = new Uint8Array(8); }\n if (offset === void 0) { offset = 0; }\n var view = new DataView(out.buffer, out.byteOffset, out.byteLength);\n view.setFloat64(offset, value, true);\n return out;\n}\nexports.writeFloat64LE = writeFloat64LE;\n//# sourceMappingURL=binary.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.randomStringForEntropy = exports.randomString = exports.randomUint32 = exports.randomBytes = exports.defaultRandomSource = void 0;\nconst system_1 = require(\"./source/system\");\nconst binary_1 = require(\"@stablelib/binary\");\nconst wipe_1 = require(\"@stablelib/wipe\");\nexports.defaultRandomSource = new system_1.SystemRandomSource();\nfunction randomBytes(length, prng = exports.defaultRandomSource) {\n return prng.randomBytes(length);\n}\nexports.randomBytes = randomBytes;\n/**\n * Returns a uniformly random unsigned 32-bit integer.\n */\nfunction randomUint32(prng = exports.defaultRandomSource) {\n // Generate 4-byte random buffer.\n const buf = randomBytes(4, prng);\n // Convert bytes from buffer into a 32-bit integer.\n // It's not important which byte order to use, since\n // the result is random.\n const result = (0, binary_1.readUint32LE)(buf);\n // Clean the buffer.\n (0, wipe_1.wipe)(buf);\n return result;\n}\nexports.randomUint32 = randomUint32;\n/** 62 alphanumeric characters for default charset of randomString() */\nconst ALPHANUMERIC = \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\";\n/**\n * Returns a uniform random string of the given length\n * with characters from the given charset.\n *\n * Charset must not have more than 256 characters.\n *\n * Default charset generates case-sensitive alphanumeric\n * strings (0-9, A-Z, a-z).\n */\nfunction randomString(length, charset = ALPHANUMERIC, prng = exports.defaultRandomSource) {\n if (charset.length < 2) {\n throw new Error(\"randomString charset is too short\");\n }\n if (charset.length > 256) {\n throw new Error(\"randomString charset is too long\");\n }\n let out = '';\n const charsLen = charset.length;\n const maxByte = 256 - (256 % charsLen);\n while (length > 0) {\n const buf = randomBytes(Math.ceil(length * 256 / maxByte), prng);\n for (let i = 0; i < buf.length && length > 0; i++) {\n const randomByte = buf[i];\n if (randomByte < maxByte) {\n out += charset.charAt(randomByte % charsLen);\n length--;\n }\n }\n (0, wipe_1.wipe)(buf);\n }\n return out;\n}\nexports.randomString = randomString;\n/**\n * Returns uniform random string containing at least the given\n * number of bits of entropy.\n *\n * For example, randomStringForEntropy(128) will return a 22-character\n * alphanumeric string, while randomStringForEntropy(128, \"0123456789\")\n * will return a 39-character numeric string, both will contain at\n * least 128 bits of entropy.\n *\n * Default charset generates case-sensitive alphanumeric\n * strings (0-9, A-Z, a-z).\n */\nfunction randomStringForEntropy(bits, charset = ALPHANUMERIC, prng = exports.defaultRandomSource) {\n const length = Math.ceil(bits / (Math.log(charset.length) / Math.LN2));\n return randomString(length, charset, prng);\n}\nexports.randomStringForEntropy = randomStringForEntropy;\n//# sourceMappingURL=random.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar binary_1 = require(\"@stablelib/binary\");\nvar wipe_1 = require(\"@stablelib/wipe\");\nexports.DIGEST_LENGTH = 64;\nexports.BLOCK_SIZE = 128;\n/**\n * SHA-2-512 cryptographic hash algorithm.\n */\nvar SHA512 = /** @class */ (function () {\n function SHA512() {\n /** Length of hash output */\n this.digestLength = exports.DIGEST_LENGTH;\n /** Block size */\n this.blockSize = exports.BLOCK_SIZE;\n // Note: Int32Array is used instead of Uint32Array for performance reasons.\n this._stateHi = new Int32Array(8); // hash state, high bytes\n this._stateLo = new Int32Array(8); // hash state, low bytes\n this._tempHi = new Int32Array(16); // temporary state, high bytes\n this._tempLo = new Int32Array(16); // temporary state, low bytes\n this._buffer = new Uint8Array(256); // buffer for data to hash\n this._bufferLength = 0; // number of bytes in buffer\n this._bytesHashed = 0; // number of total bytes hashed\n this._finished = false; // indicates whether the hash was finalized\n this.reset();\n }\n SHA512.prototype._initState = function () {\n this._stateHi[0] = 0x6a09e667;\n this._stateHi[1] = 0xbb67ae85;\n this._stateHi[2] = 0x3c6ef372;\n this._stateHi[3] = 0xa54ff53a;\n this._stateHi[4] = 0x510e527f;\n this._stateHi[5] = 0x9b05688c;\n this._stateHi[6] = 0x1f83d9ab;\n this._stateHi[7] = 0x5be0cd19;\n this._stateLo[0] = 0xf3bcc908;\n this._stateLo[1] = 0x84caa73b;\n this._stateLo[2] = 0xfe94f82b;\n this._stateLo[3] = 0x5f1d36f1;\n this._stateLo[4] = 0xade682d1;\n this._stateLo[5] = 0x2b3e6c1f;\n this._stateLo[6] = 0xfb41bd6b;\n this._stateLo[7] = 0x137e2179;\n };\n /**\n * Resets hash state making it possible\n * to re-use this instance to hash other data.\n */\n SHA512.prototype.reset = function () {\n this._initState();\n this._bufferLength = 0;\n this._bytesHashed = 0;\n this._finished = false;\n return this;\n };\n /**\n * Cleans internal buffers and resets hash state.\n */\n SHA512.prototype.clean = function () {\n wipe_1.wipe(this._buffer);\n wipe_1.wipe(this._tempHi);\n wipe_1.wipe(this._tempLo);\n this.reset();\n };\n /**\n * Updates hash state with the given data.\n *\n * Throws error when trying to update already finalized hash:\n * instance must be reset to update it again.\n */\n SHA512.prototype.update = function (data, dataLength) {\n if (dataLength === void 0) { dataLength = data.length; }\n if (this._finished) {\n throw new Error(\"SHA512: can't update because hash was finished.\");\n }\n var dataPos = 0;\n this._bytesHashed += dataLength;\n if (this._bufferLength > 0) {\n while (this._bufferLength < exports.BLOCK_SIZE && dataLength > 0) {\n this._buffer[this._bufferLength++] = data[dataPos++];\n dataLength--;\n }\n if (this._bufferLength === this.blockSize) {\n hashBlocks(this._tempHi, this._tempLo, this._stateHi, this._stateLo, this._buffer, 0, this.blockSize);\n this._bufferLength = 0;\n }\n }\n if (dataLength >= this.blockSize) {\n dataPos = hashBlocks(this._tempHi, this._tempLo, this._stateHi, this._stateLo, data, dataPos, dataLength);\n dataLength %= this.blockSize;\n }\n while (dataLength > 0) {\n this._buffer[this._bufferLength++] = data[dataPos++];\n dataLength--;\n }\n return this;\n };\n /**\n * Finalizes hash state and puts hash into out.\n * If hash was already finalized, puts the same value.\n */\n SHA512.prototype.finish = function (out) {\n if (!this._finished) {\n var bytesHashed = this._bytesHashed;\n var left = this._bufferLength;\n var bitLenHi = (bytesHashed / 0x20000000) | 0;\n var bitLenLo = bytesHashed << 3;\n var padLength = (bytesHashed % 128 < 112) ? 128 : 256;\n this._buffer[left] = 0x80;\n for (var i = left + 1; i < padLength - 8; i++) {\n this._buffer[i] = 0;\n }\n binary_1.writeUint32BE(bitLenHi, this._buffer, padLength - 8);\n binary_1.writeUint32BE(bitLenLo, this._buffer, padLength - 4);\n hashBlocks(this._tempHi, this._tempLo, this._stateHi, this._stateLo, this._buffer, 0, padLength);\n this._finished = true;\n }\n for (var i = 0; i < this.digestLength / 8; i++) {\n binary_1.writeUint32BE(this._stateHi[i], out, i * 8);\n binary_1.writeUint32BE(this._stateLo[i], out, i * 8 + 4);\n }\n return this;\n };\n /**\n * Returns the final hash digest.\n */\n SHA512.prototype.digest = function () {\n var out = new Uint8Array(this.digestLength);\n this.finish(out);\n return out;\n };\n /**\n * Function useful for HMAC/PBKDF2 optimization. Returns hash state to be\n * used with restoreState(). Only chain value is saved, not buffers or\n * other state variables.\n */\n SHA512.prototype.saveState = function () {\n if (this._finished) {\n throw new Error(\"SHA256: cannot save finished state\");\n }\n return {\n stateHi: new Int32Array(this._stateHi),\n stateLo: new Int32Array(this._stateLo),\n buffer: this._bufferLength > 0 ? new Uint8Array(this._buffer) : undefined,\n bufferLength: this._bufferLength,\n bytesHashed: this._bytesHashed\n };\n };\n /**\n * Function useful for HMAC/PBKDF2 optimization. Restores state saved by\n * saveState() and sets bytesHashed to the given value.\n */\n SHA512.prototype.restoreState = function (savedState) {\n this._stateHi.set(savedState.stateHi);\n this._stateLo.set(savedState.stateLo);\n this._bufferLength = savedState.bufferLength;\n if (savedState.buffer) {\n this._buffer.set(savedState.buffer);\n }\n this._bytesHashed = savedState.bytesHashed;\n this._finished = false;\n return this;\n };\n /**\n * Cleans state returned by saveState().\n */\n SHA512.prototype.cleanSavedState = function (savedState) {\n wipe_1.wipe(savedState.stateHi);\n wipe_1.wipe(savedState.stateLo);\n if (savedState.buffer) {\n wipe_1.wipe(savedState.buffer);\n }\n savedState.bufferLength = 0;\n savedState.bytesHashed = 0;\n };\n return SHA512;\n}());\nexports.SHA512 = SHA512;\n// Constants\nvar K = new Int32Array([\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]);\nfunction hashBlocks(wh, wl, hh, hl, m, pos, len) {\n var ah0 = hh[0], ah1 = hh[1], ah2 = hh[2], ah3 = hh[3], ah4 = hh[4], ah5 = hh[5], ah6 = hh[6], ah7 = hh[7], al0 = hl[0], al1 = hl[1], al2 = hl[2], al3 = hl[3], al4 = hl[4], al5 = hl[5], al6 = hl[6], al7 = hl[7];\n var h, l;\n var th, tl;\n var a, b, c, d;\n while (len >= 128) {\n for (var i = 0; i < 16; i++) {\n var j = 8 * i + pos;\n wh[i] = binary_1.readUint32BE(m, j);\n wl[i] = binary_1.readUint32BE(m, j + 4);\n }\n for (var i = 0; i < 80; i++) {\n var bh0 = ah0;\n var bh1 = ah1;\n var bh2 = ah2;\n var bh3 = ah3;\n var bh4 = ah4;\n var bh5 = ah5;\n var bh6 = ah6;\n var bh7 = ah7;\n var bl0 = al0;\n var bl1 = al1;\n var bl2 = al2;\n var bl3 = al3;\n var bl4 = al4;\n var bl5 = al5;\n var bl6 = al6;\n var bl7 = al7;\n // add\n h = ah7;\n l = al7;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n // Sigma1\n h = ((ah4 >>> 14) | (al4 << (32 - 14))) ^ ((ah4 >>> 18) |\n (al4 << (32 - 18))) ^ ((al4 >>> (41 - 32)) | (ah4 << (32 - (41 - 32))));\n l = ((al4 >>> 14) | (ah4 << (32 - 14))) ^ ((al4 >>> 18) |\n (ah4 << (32 - 18))) ^ ((ah4 >>> (41 - 32)) | (al4 << (32 - (41 - 32))));\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n // Ch\n h = (ah4 & ah5) ^ (~ah4 & ah6);\n l = (al4 & al5) ^ (~al4 & al6);\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n // K\n h = K[i * 2];\n l = K[i * 2 + 1];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n // w\n h = wh[i % 16];\n l = wl[i % 16];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n th = c & 0xffff | d << 16;\n tl = a & 0xffff | b << 16;\n // add\n h = th;\n l = tl;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n // Sigma0\n h = ((ah0 >>> 28) | (al0 << (32 - 28))) ^ ((al0 >>> (34 - 32)) |\n (ah0 << (32 - (34 - 32)))) ^ ((al0 >>> (39 - 32)) | (ah0 << (32 - (39 - 32))));\n l = ((al0 >>> 28) | (ah0 << (32 - 28))) ^ ((ah0 >>> (34 - 32)) |\n (al0 << (32 - (34 - 32)))) ^ ((ah0 >>> (39 - 32)) | (al0 << (32 - (39 - 32))));\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n // Maj\n h = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);\n l = (al0 & al1) ^ (al0 & al2) ^ (al1 & al2);\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n bh7 = (c & 0xffff) | (d << 16);\n bl7 = (a & 0xffff) | (b << 16);\n // add\n h = bh3;\n l = bl3;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = th;\n l = tl;\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n bh3 = (c & 0xffff) | (d << 16);\n bl3 = (a & 0xffff) | (b << 16);\n ah1 = bh0;\n ah2 = bh1;\n ah3 = bh2;\n ah4 = bh3;\n ah5 = bh4;\n ah6 = bh5;\n ah7 = bh6;\n ah0 = bh7;\n al1 = bl0;\n al2 = bl1;\n al3 = bl2;\n al4 = bl3;\n al5 = bl4;\n al6 = bl5;\n al7 = bl6;\n al0 = bl7;\n if (i % 16 === 15) {\n for (var j = 0; j < 16; j++) {\n // add\n h = wh[j];\n l = wl[j];\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = wh[(j + 9) % 16];\n l = wl[(j + 9) % 16];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n // sigma0\n th = wh[(j + 1) % 16];\n tl = wl[(j + 1) % 16];\n h = ((th >>> 1) | (tl << (32 - 1))) ^ ((th >>> 8) |\n (tl << (32 - 8))) ^ (th >>> 7);\n l = ((tl >>> 1) | (th << (32 - 1))) ^ ((tl >>> 8) |\n (th << (32 - 8))) ^ ((tl >>> 7) | (th << (32 - 7)));\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n // sigma1\n th = wh[(j + 14) % 16];\n tl = wl[(j + 14) % 16];\n h = ((th >>> 19) | (tl << (32 - 19))) ^ ((tl >>> (61 - 32)) |\n (th << (32 - (61 - 32)))) ^ (th >>> 6);\n l = ((tl >>> 19) | (th << (32 - 19))) ^ ((th >>> (61 - 32)) |\n (tl << (32 - (61 - 32)))) ^ ((tl >>> 6) | (th << (32 - 6)));\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n wh[j] = (c & 0xffff) | (d << 16);\n wl[j] = (a & 0xffff) | (b << 16);\n }\n }\n }\n // add\n h = ah0;\n l = al0;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = hh[0];\n l = hl[0];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n hh[0] = ah0 = (c & 0xffff) | (d << 16);\n hl[0] = al0 = (a & 0xffff) | (b << 16);\n h = ah1;\n l = al1;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = hh[1];\n l = hl[1];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n hh[1] = ah1 = (c & 0xffff) | (d << 16);\n hl[1] = al1 = (a & 0xffff) | (b << 16);\n h = ah2;\n l = al2;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = hh[2];\n l = hl[2];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n hh[2] = ah2 = (c & 0xffff) | (d << 16);\n hl[2] = al2 = (a & 0xffff) | (b << 16);\n h = ah3;\n l = al3;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = hh[3];\n l = hl[3];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n hh[3] = ah3 = (c & 0xffff) | (d << 16);\n hl[3] = al3 = (a & 0xffff) | (b << 16);\n h = ah4;\n l = al4;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = hh[4];\n l = hl[4];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n hh[4] = ah4 = (c & 0xffff) | (d << 16);\n hl[4] = al4 = (a & 0xffff) | (b << 16);\n h = ah5;\n l = al5;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = hh[5];\n l = hl[5];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n hh[5] = ah5 = (c & 0xffff) | (d << 16);\n hl[5] = al5 = (a & 0xffff) | (b << 16);\n h = ah6;\n l = al6;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = hh[6];\n l = hl[6];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n hh[6] = ah6 = (c & 0xffff) | (d << 16);\n hl[6] = al6 = (a & 0xffff) | (b << 16);\n h = ah7;\n l = al7;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = hh[7];\n l = hl[7];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n hh[7] = ah7 = (c & 0xffff) | (d << 16);\n hl[7] = al7 = (a & 0xffff) | (b << 16);\n pos += 128;\n len -= 128;\n }\n return pos;\n}\nfunction hash(data) {\n var h = new SHA512();\n h.update(data);\n var digest = h.digest();\n h.clean();\n return digest;\n}\nexports.hash = hash;\n//# sourceMappingURL=sha512.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertSecretKeyToX25519 = exports.convertPublicKeyToX25519 = exports.verify = exports.sign = exports.extractPublicKeyFromSecretKey = exports.generateKeyPair = exports.generateKeyPairFromSeed = exports.SEED_LENGTH = exports.SECRET_KEY_LENGTH = exports.PUBLIC_KEY_LENGTH = exports.SIGNATURE_LENGTH = void 0;\n/**\n * Package ed25519 implements Ed25519 public-key signature algorithm.\n */\nconst random_1 = require(\"@stablelib/random\");\nconst sha512_1 = require(\"@stablelib/sha512\");\nconst wipe_1 = require(\"@stablelib/wipe\");\nexports.SIGNATURE_LENGTH = 64;\nexports.PUBLIC_KEY_LENGTH = 32;\nexports.SECRET_KEY_LENGTH = 64;\nexports.SEED_LENGTH = 32;\n// Returns new zero-filled 16-element GF (Float64Array).\n// If passed an array of numbers, prefills the returned\n// array with them.\n//\n// We use Float64Array, because we need 48-bit numbers\n// for this implementation.\nfunction gf(init) {\n const r = new Float64Array(16);\n if (init) {\n for (let i = 0; i < init.length; i++) {\n r[i] = init[i];\n }\n }\n return r;\n}\n// Base point.\nconst _9 = new Uint8Array(32);\n_9[0] = 9;\nconst gf0 = gf();\nconst gf1 = gf([1]);\nconst D = gf([\n 0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070,\n 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203\n]);\nconst D2 = gf([\n 0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0,\n 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406\n]);\nconst X = gf([\n 0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c,\n 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169\n]);\nconst Y = gf([\n 0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666,\n 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666\n]);\nconst I = gf([\n 0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43,\n 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83\n]);\nfunction set25519(r, a) {\n for (let i = 0; i < 16; i++) {\n r[i] = a[i] | 0;\n }\n}\nfunction car25519(o) {\n let c = 1;\n for (let i = 0; i < 16; i++) {\n let v = o[i] + c + 65535;\n c = Math.floor(v / 65536);\n o[i] = v - c * 65536;\n }\n o[0] += c - 1 + 37 * (c - 1);\n}\nfunction sel25519(p, q, b) {\n const c = ~(b - 1);\n for (let i = 0; i < 16; i++) {\n const t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n}\nfunction pack25519(o, n) {\n const m = gf();\n const t = gf();\n for (let i = 0; i < 16; i++) {\n t[i] = n[i];\n }\n car25519(t);\n car25519(t);\n car25519(t);\n for (let j = 0; j < 2; j++) {\n m[0] = t[0] - 0xffed;\n for (let i = 1; i < 15; i++) {\n m[i] = t[i] - 0xffff - ((m[i - 1] >> 16) & 1);\n m[i - 1] &= 0xffff;\n }\n m[15] = t[15] - 0x7fff - ((m[14] >> 16) & 1);\n const b = (m[15] >> 16) & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1 - b);\n }\n for (let i = 0; i < 16; i++) {\n o[2 * i] = t[i] & 0xff;\n o[2 * i + 1] = t[i] >> 8;\n }\n}\nfunction verify32(x, y) {\n let d = 0;\n for (let i = 0; i < 32; i++) {\n d |= x[i] ^ y[i];\n }\n return (1 & ((d - 1) >>> 8)) - 1;\n}\nfunction neq25519(a, b) {\n const c = new Uint8Array(32);\n const d = new Uint8Array(32);\n pack25519(c, a);\n pack25519(d, b);\n return verify32(c, d);\n}\nfunction par25519(a) {\n const d = new Uint8Array(32);\n pack25519(d, a);\n return d[0] & 1;\n}\nfunction unpack25519(o, n) {\n for (let i = 0; i < 16; i++) {\n o[i] = n[2 * i] + (n[2 * i + 1] << 8);\n }\n o[15] &= 0x7fff;\n}\nfunction add(o, a, b) {\n for (let i = 0; i < 16; i++) {\n o[i] = a[i] + b[i];\n }\n}\nfunction sub(o, a, b) {\n for (let i = 0; i < 16; i++) {\n o[i] = a[i] - b[i];\n }\n}\nfunction mul(o, a, b) {\n let v, c, t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0, t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0, t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0, b0 = b[0], b1 = b[1], b2 = b[2], b3 = b[3], b4 = b[4], b5 = b[5], b6 = b[6], b7 = b[7], b8 = b[8], b9 = b[9], b10 = b[10], b11 = b[11], b12 = b[12], b13 = b[13], b14 = b[14], b15 = b[15];\n v = a[0];\n t0 += v * b0;\n t1 += v * b1;\n t2 += v * b2;\n t3 += v * b3;\n t4 += v * b4;\n t5 += v * b5;\n t6 += v * b6;\n t7 += v * b7;\n t8 += v * b8;\n t9 += v * b9;\n t10 += v * b10;\n t11 += v * b11;\n t12 += v * b12;\n t13 += v * b13;\n t14 += v * b14;\n t15 += v * b15;\n v = a[1];\n t1 += v * b0;\n t2 += v * b1;\n t3 += v * b2;\n t4 += v * b3;\n t5 += v * b4;\n t6 += v * b5;\n t7 += v * b6;\n t8 += v * b7;\n t9 += v * b8;\n t10 += v * b9;\n t11 += v * b10;\n t12 += v * b11;\n t13 += v * b12;\n t14 += v * b13;\n t15 += v * b14;\n t16 += v * b15;\n v = a[2];\n t2 += v * b0;\n t3 += v * b1;\n t4 += v * b2;\n t5 += v * b3;\n t6 += v * b4;\n t7 += v * b5;\n t8 += v * b6;\n t9 += v * b7;\n t10 += v * b8;\n t11 += v * b9;\n t12 += v * b10;\n t13 += v * b11;\n t14 += v * b12;\n t15 += v * b13;\n t16 += v * b14;\n t17 += v * b15;\n v = a[3];\n t3 += v * b0;\n t4 += v * b1;\n t5 += v * b2;\n t6 += v * b3;\n t7 += v * b4;\n t8 += v * b5;\n t9 += v * b6;\n t10 += v * b7;\n t11 += v * b8;\n t12 += v * b9;\n t13 += v * b10;\n t14 += v * b11;\n t15 += v * b12;\n t16 += v * b13;\n t17 += v * b14;\n t18 += v * b15;\n v = a[4];\n t4 += v * b0;\n t5 += v * b1;\n t6 += v * b2;\n t7 += v * b3;\n t8 += v * b4;\n t9 += v * b5;\n t10 += v * b6;\n t11 += v * b7;\n t12 += v * b8;\n t13 += v * b9;\n t14 += v * b10;\n t15 += v * b11;\n t16 += v * b12;\n t17 += v * b13;\n t18 += v * b14;\n t19 += v * b15;\n v = a[5];\n t5 += v * b0;\n t6 += v * b1;\n t7 += v * b2;\n t8 += v * b3;\n t9 += v * b4;\n t10 += v * b5;\n t11 += v * b6;\n t12 += v * b7;\n t13 += v * b8;\n t14 += v * b9;\n t15 += v * b10;\n t16 += v * b11;\n t17 += v * b12;\n t18 += v * b13;\n t19 += v * b14;\n t20 += v * b15;\n v = a[6];\n t6 += v * b0;\n t7 += v * b1;\n t8 += v * b2;\n t9 += v * b3;\n t10 += v * b4;\n t11 += v * b5;\n t12 += v * b6;\n t13 += v * b7;\n t14 += v * b8;\n t15 += v * b9;\n t16 += v * b10;\n t17 += v * b11;\n t18 += v * b12;\n t19 += v * b13;\n t20 += v * b14;\n t21 += v * b15;\n v = a[7];\n t7 += v * b0;\n t8 += v * b1;\n t9 += v * b2;\n t10 += v * b3;\n t11 += v * b4;\n t12 += v * b5;\n t13 += v * b6;\n t14 += v * b7;\n t15 += v * b8;\n t16 += v * b9;\n t17 += v * b10;\n t18 += v * b11;\n t19 += v * b12;\n t20 += v * b13;\n t21 += v * b14;\n t22 += v * b15;\n v = a[8];\n t8 += v * b0;\n t9 += v * b1;\n t10 += v * b2;\n t11 += v * b3;\n t12 += v * b4;\n t13 += v * b5;\n t14 += v * b6;\n t15 += v * b7;\n t16 += v * b8;\n t17 += v * b9;\n t18 += v * b10;\n t19 += v * b11;\n t20 += v * b12;\n t21 += v * b13;\n t22 += v * b14;\n t23 += v * b15;\n v = a[9];\n t9 += v * b0;\n t10 += v * b1;\n t11 += v * b2;\n t12 += v * b3;\n t13 += v * b4;\n t14 += v * b5;\n t15 += v * b6;\n t16 += v * b7;\n t17 += v * b8;\n t18 += v * b9;\n t19 += v * b10;\n t20 += v * b11;\n t21 += v * b12;\n t22 += v * b13;\n t23 += v * b14;\n t24 += v * b15;\n v = a[10];\n t10 += v * b0;\n t11 += v * b1;\n t12 += v * b2;\n t13 += v * b3;\n t14 += v * b4;\n t15 += v * b5;\n t16 += v * b6;\n t17 += v * b7;\n t18 += v * b8;\n t19 += v * b9;\n t20 += v * b10;\n t21 += v * b11;\n t22 += v * b12;\n t23 += v * b13;\n t24 += v * b14;\n t25 += v * b15;\n v = a[11];\n t11 += v * b0;\n t12 += v * b1;\n t13 += v * b2;\n t14 += v * b3;\n t15 += v * b4;\n t16 += v * b5;\n t17 += v * b6;\n t18 += v * b7;\n t19 += v * b8;\n t20 += v * b9;\n t21 += v * b10;\n t22 += v * b11;\n t23 += v * b12;\n t24 += v * b13;\n t25 += v * b14;\n t26 += v * b15;\n v = a[12];\n t12 += v * b0;\n t13 += v * b1;\n t14 += v * b2;\n t15 += v * b3;\n t16 += v * b4;\n t17 += v * b5;\n t18 += v * b6;\n t19 += v * b7;\n t20 += v * b8;\n t21 += v * b9;\n t22 += v * b10;\n t23 += v * b11;\n t24 += v * b12;\n t25 += v * b13;\n t26 += v * b14;\n t27 += v * b15;\n v = a[13];\n t13 += v * b0;\n t14 += v * b1;\n t15 += v * b2;\n t16 += v * b3;\n t17 += v * b4;\n t18 += v * b5;\n t19 += v * b6;\n t20 += v * b7;\n t21 += v * b8;\n t22 += v * b9;\n t23 += v * b10;\n t24 += v * b11;\n t25 += v * b12;\n t26 += v * b13;\n t27 += v * b14;\n t28 += v * b15;\n v = a[14];\n t14 += v * b0;\n t15 += v * b1;\n t16 += v * b2;\n t17 += v * b3;\n t18 += v * b4;\n t19 += v * b5;\n t20 += v * b6;\n t21 += v * b7;\n t22 += v * b8;\n t23 += v * b9;\n t24 += v * b10;\n t25 += v * b11;\n t26 += v * b12;\n t27 += v * b13;\n t28 += v * b14;\n t29 += v * b15;\n v = a[15];\n t15 += v * b0;\n t16 += v * b1;\n t17 += v * b2;\n t18 += v * b3;\n t19 += v * b4;\n t20 += v * b5;\n t21 += v * b6;\n t22 += v * b7;\n t23 += v * b8;\n t24 += v * b9;\n t25 += v * b10;\n t26 += v * b11;\n t27 += v * b12;\n t28 += v * b13;\n t29 += v * b14;\n t30 += v * b15;\n t0 += 38 * t16;\n t1 += 38 * t17;\n t2 += 38 * t18;\n t3 += 38 * t19;\n t4 += 38 * t20;\n t5 += 38 * t21;\n t6 += 38 * t22;\n t7 += 38 * t23;\n t8 += 38 * t24;\n t9 += 38 * t25;\n t10 += 38 * t26;\n t11 += 38 * t27;\n t12 += 38 * t28;\n t13 += 38 * t29;\n t14 += 38 * t30;\n // t15 left as is\n // first car\n c = 1;\n v = t0 + c + 65535;\n c = Math.floor(v / 65536);\n t0 = v - c * 65536;\n v = t1 + c + 65535;\n c = Math.floor(v / 65536);\n t1 = v - c * 65536;\n v = t2 + c + 65535;\n c = Math.floor(v / 65536);\n t2 = v - c * 65536;\n v = t3 + c + 65535;\n c = Math.floor(v / 65536);\n t3 = v - c * 65536;\n v = t4 + c + 65535;\n c = Math.floor(v / 65536);\n t4 = v - c * 65536;\n v = t5 + c + 65535;\n c = Math.floor(v / 65536);\n t5 = v - c * 65536;\n v = t6 + c + 65535;\n c = Math.floor(v / 65536);\n t6 = v - c * 65536;\n v = t7 + c + 65535;\n c = Math.floor(v / 65536);\n t7 = v - c * 65536;\n v = t8 + c + 65535;\n c = Math.floor(v / 65536);\n t8 = v - c * 65536;\n v = t9 + c + 65535;\n c = Math.floor(v / 65536);\n t9 = v - c * 65536;\n v = t10 + c + 65535;\n c = Math.floor(v / 65536);\n t10 = v - c * 65536;\n v = t11 + c + 65535;\n c = Math.floor(v / 65536);\n t11 = v - c * 65536;\n v = t12 + c + 65535;\n c = Math.floor(v / 65536);\n t12 = v - c * 65536;\n v = t13 + c + 65535;\n c = Math.floor(v / 65536);\n t13 = v - c * 65536;\n v = t14 + c + 65535;\n c = Math.floor(v / 65536);\n t14 = v - c * 65536;\n v = t15 + c + 65535;\n c = Math.floor(v / 65536);\n t15 = v - c * 65536;\n t0 += c - 1 + 37 * (c - 1);\n // second car\n c = 1;\n v = t0 + c + 65535;\n c = Math.floor(v / 65536);\n t0 = v - c * 65536;\n v = t1 + c + 65535;\n c = Math.floor(v / 65536);\n t1 = v - c * 65536;\n v = t2 + c + 65535;\n c = Math.floor(v / 65536);\n t2 = v - c * 65536;\n v = t3 + c + 65535;\n c = Math.floor(v / 65536);\n t3 = v - c * 65536;\n v = t4 + c + 65535;\n c = Math.floor(v / 65536);\n t4 = v - c * 65536;\n v = t5 + c + 65535;\n c = Math.floor(v / 65536);\n t5 = v - c * 65536;\n v = t6 + c + 65535;\n c = Math.floor(v / 65536);\n t6 = v - c * 65536;\n v = t7 + c + 65535;\n c = Math.floor(v / 65536);\n t7 = v - c * 65536;\n v = t8 + c + 65535;\n c = Math.floor(v / 65536);\n t8 = v - c * 65536;\n v = t9 + c + 65535;\n c = Math.floor(v / 65536);\n t9 = v - c * 65536;\n v = t10 + c + 65535;\n c = Math.floor(v / 65536);\n t10 = v - c * 65536;\n v = t11 + c + 65535;\n c = Math.floor(v / 65536);\n t11 = v - c * 65536;\n v = t12 + c + 65535;\n c = Math.floor(v / 65536);\n t12 = v - c * 65536;\n v = t13 + c + 65535;\n c = Math.floor(v / 65536);\n t13 = v - c * 65536;\n v = t14 + c + 65535;\n c = Math.floor(v / 65536);\n t14 = v - c * 65536;\n v = t15 + c + 65535;\n c = Math.floor(v / 65536);\n t15 = v - c * 65536;\n t0 += c - 1 + 37 * (c - 1);\n o[0] = t0;\n o[1] = t1;\n o[2] = t2;\n o[3] = t3;\n o[4] = t4;\n o[5] = t5;\n o[6] = t6;\n o[7] = t7;\n o[8] = t8;\n o[9] = t9;\n o[10] = t10;\n o[11] = t11;\n o[12] = t12;\n o[13] = t13;\n o[14] = t14;\n o[15] = t15;\n}\nfunction square(o, a) {\n mul(o, a, a);\n}\nfunction inv25519(o, i) {\n const c = gf();\n let a;\n for (a = 0; a < 16; a++) {\n c[a] = i[a];\n }\n for (a = 253; a >= 0; a--) {\n square(c, c);\n if (a !== 2 && a !== 4) {\n mul(c, c, i);\n }\n }\n for (a = 0; a < 16; a++) {\n o[a] = c[a];\n }\n}\nfunction pow2523(o, i) {\n const c = gf();\n let a;\n for (a = 0; a < 16; a++) {\n c[a] = i[a];\n }\n for (a = 250; a >= 0; a--) {\n square(c, c);\n if (a !== 1) {\n mul(c, c, i);\n }\n }\n for (a = 0; a < 16; a++) {\n o[a] = c[a];\n }\n}\nfunction edadd(p, q) {\n const a = gf(), b = gf(), c = gf(), d = gf(), e = gf(), f = gf(), g = gf(), h = gf(), t = gf();\n sub(a, p[1], p[0]);\n sub(t, q[1], q[0]);\n mul(a, a, t);\n add(b, p[0], p[1]);\n add(t, q[0], q[1]);\n mul(b, b, t);\n mul(c, p[3], q[3]);\n mul(c, c, D2);\n mul(d, p[2], q[2]);\n add(d, d, d);\n sub(e, b, a);\n sub(f, d, c);\n add(g, d, c);\n add(h, b, a);\n mul(p[0], e, f);\n mul(p[1], h, g);\n mul(p[2], g, f);\n mul(p[3], e, h);\n}\nfunction cswap(p, q, b) {\n for (let i = 0; i < 4; i++) {\n sel25519(p[i], q[i], b);\n }\n}\nfunction pack(r, p) {\n const tx = gf(), ty = gf(), zi = gf();\n inv25519(zi, p[2]);\n mul(tx, p[0], zi);\n mul(ty, p[1], zi);\n pack25519(r, ty);\n r[31] ^= par25519(tx) << 7;\n}\nfunction scalarmult(p, q, s) {\n set25519(p[0], gf0);\n set25519(p[1], gf1);\n set25519(p[2], gf1);\n set25519(p[3], gf0);\n for (let i = 255; i >= 0; --i) {\n const b = (s[(i / 8) | 0] >> (i & 7)) & 1;\n cswap(p, q, b);\n edadd(q, p);\n edadd(p, p);\n cswap(p, q, b);\n }\n}\nfunction scalarbase(p, s) {\n const q = [gf(), gf(), gf(), gf()];\n set25519(q[0], X);\n set25519(q[1], Y);\n set25519(q[2], gf1);\n mul(q[3], X, Y);\n scalarmult(p, q, s);\n}\n// Generates key pair from secret 32-byte seed.\nfunction generateKeyPairFromSeed(seed) {\n if (seed.length !== exports.SEED_LENGTH) {\n throw new Error(`ed25519: seed must be ${exports.SEED_LENGTH} bytes`);\n }\n const d = (0, sha512_1.hash)(seed);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n const publicKey = new Uint8Array(32);\n const p = [gf(), gf(), gf(), gf()];\n scalarbase(p, d);\n pack(publicKey, p);\n const secretKey = new Uint8Array(64);\n secretKey.set(seed);\n secretKey.set(publicKey, 32);\n return {\n publicKey,\n secretKey\n };\n}\nexports.generateKeyPairFromSeed = generateKeyPairFromSeed;\nfunction generateKeyPair(prng) {\n const seed = (0, random_1.randomBytes)(32, prng);\n const result = generateKeyPairFromSeed(seed);\n (0, wipe_1.wipe)(seed);\n return result;\n}\nexports.generateKeyPair = generateKeyPair;\nfunction extractPublicKeyFromSecretKey(secretKey) {\n if (secretKey.length !== exports.SECRET_KEY_LENGTH) {\n throw new Error(`ed25519: secret key must be ${exports.SECRET_KEY_LENGTH} bytes`);\n }\n return new Uint8Array(secretKey.subarray(32));\n}\nexports.extractPublicKeyFromSecretKey = extractPublicKeyFromSecretKey;\nconst L = new Float64Array([\n 0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2,\n 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10\n]);\nfunction modL(r, x) {\n let carry;\n let i;\n let j;\n let k;\n for (i = 63; i >= 32; --i) {\n carry = 0;\n for (j = i - 32, k = i - 12; j < k; ++j) {\n x[j] += carry - 16 * x[i] * L[j - (i - 32)];\n carry = Math.floor((x[j] + 128) / 256);\n x[j] -= carry * 256;\n }\n x[j] += carry;\n x[i] = 0;\n }\n carry = 0;\n for (j = 0; j < 32; j++) {\n x[j] += carry - (x[31] >> 4) * L[j];\n carry = x[j] >> 8;\n x[j] &= 255;\n }\n for (j = 0; j < 32; j++) {\n x[j] -= carry * L[j];\n }\n for (i = 0; i < 32; i++) {\n x[i + 1] += x[i] >> 8;\n r[i] = x[i] & 255;\n }\n}\nfunction reduce(r) {\n const x = new Float64Array(64);\n for (let i = 0; i < 64; i++) {\n x[i] = r[i];\n }\n for (let i = 0; i < 64; i++) {\n r[i] = 0;\n }\n modL(r, x);\n}\n// Returns 64-byte signature of the message under the 64-byte secret key.\nfunction sign(secretKey, message) {\n const x = new Float64Array(64);\n const p = [gf(), gf(), gf(), gf()];\n const d = (0, sha512_1.hash)(secretKey.subarray(0, 32));\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n const signature = new Uint8Array(64);\n signature.set(d.subarray(32), 32);\n const hs = new sha512_1.SHA512();\n hs.update(signature.subarray(32));\n hs.update(message);\n const r = hs.digest();\n hs.clean();\n reduce(r);\n scalarbase(p, r);\n pack(signature, p);\n hs.reset();\n hs.update(signature.subarray(0, 32));\n hs.update(secretKey.subarray(32));\n hs.update(message);\n const h = hs.digest();\n reduce(h);\n for (let i = 0; i < 32; i++) {\n x[i] = r[i];\n }\n for (let i = 0; i < 32; i++) {\n for (let j = 0; j < 32; j++) {\n x[i + j] += h[i] * d[j];\n }\n }\n modL(signature.subarray(32), x);\n return signature;\n}\nexports.sign = sign;\nfunction unpackneg(r, p) {\n const t = gf(), chk = gf(), num = gf(), den = gf(), den2 = gf(), den4 = gf(), den6 = gf();\n set25519(r[2], gf1);\n unpack25519(r[1], p);\n square(num, r[1]);\n mul(den, num, D);\n sub(num, num, r[2]);\n add(den, r[2], den);\n square(den2, den);\n square(den4, den2);\n mul(den6, den4, den2);\n mul(t, den6, num);\n mul(t, t, den);\n pow2523(t, t);\n mul(t, t, num);\n mul(t, t, den);\n mul(t, t, den);\n mul(r[0], t, den);\n square(chk, r[0]);\n mul(chk, chk, den);\n if (neq25519(chk, num)) {\n mul(r[0], r[0], I);\n }\n square(chk, r[0]);\n mul(chk, chk, den);\n if (neq25519(chk, num)) {\n return -1;\n }\n if (par25519(r[0]) === (p[31] >> 7)) {\n sub(r[0], gf0, r[0]);\n }\n mul(r[3], r[0], r[1]);\n return 0;\n}\nfunction verify(publicKey, message, signature) {\n const t = new Uint8Array(32);\n const p = [gf(), gf(), gf(), gf()];\n const q = [gf(), gf(), gf(), gf()];\n if (signature.length !== exports.SIGNATURE_LENGTH) {\n throw new Error(`ed25519: signature must be ${exports.SIGNATURE_LENGTH} bytes`);\n }\n if (unpackneg(q, publicKey)) {\n return false;\n }\n const hs = new sha512_1.SHA512();\n hs.update(signature.subarray(0, 32));\n hs.update(publicKey);\n hs.update(message);\n const h = hs.digest();\n reduce(h);\n scalarmult(p, q, h);\n scalarbase(q, signature.subarray(32));\n edadd(p, q);\n pack(t, p);\n if (verify32(signature, t)) {\n return false;\n }\n return true;\n}\nexports.verify = verify;\n/**\n * Convert Ed25519 public key to X25519 public key.\n *\n * Throws if given an invalid public key.\n */\nfunction convertPublicKeyToX25519(publicKey) {\n let q = [gf(), gf(), gf(), gf()];\n if (unpackneg(q, publicKey)) {\n throw new Error(\"Ed25519: invalid public key\");\n }\n // Formula: montgomeryX = (edwardsY + 1)*inverse(1 - edwardsY) mod p\n let a = gf();\n let b = gf();\n let y = q[1];\n add(a, gf1, y);\n sub(b, gf1, y);\n inv25519(b, b);\n mul(a, a, b);\n let z = new Uint8Array(32);\n pack25519(z, a);\n return z;\n}\nexports.convertPublicKeyToX25519 = convertPublicKeyToX25519;\n/**\n * Convert Ed25519 secret (private) key to X25519 secret key.\n */\nfunction convertSecretKeyToX25519(secretKey) {\n const d = (0, sha512_1.hash)(secretKey.subarray(0, 32));\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n const o = new Uint8Array(d.subarray(0, 32));\n (0, wipe_1.wipe)(d);\n return o;\n}\nexports.convertSecretKeyToX25519 = convertSecretKeyToX25519;\n//# sourceMappingURL=ed25519.js.map","export const JWT_IRIDIUM_ALG = \"EdDSA\";\nexport const JWT_IRIDIUM_TYP = \"JWT\";\nexport const JWT_DELIMITER = \".\";\nexport const JWT_ENCODING = \"base64url\";\nexport const JSON_ENCODING = \"utf8\";\nexport const DATA_ENCODING = \"utf8\";\nexport const DID_DELIMITER = \":\";\nexport const DID_PREFIX = \"did\";\nexport const DID_METHOD = \"key\";\nexport const MULTICODEC_ED25519_ENCODING = \"base58btc\";\nexport const MULTICODEC_ED25519_BASE = \"z\";\nexport const MULTICODEC_ED25519_HEADER = \"K36\";\nexport const MULTICODEC_ED25519_LENGTH = 32;\nexport const KEY_PAIR_SEED_LENGTH = 32;\n//# sourceMappingURL=constants.js.map","export function alloc(size = 0) {\n if (globalThis.Buffer != null && globalThis.Buffer.alloc != null) {\n return globalThis.Buffer.alloc(size);\n }\n return new Uint8Array(size);\n}\nexport function allocUnsafe(size = 0) {\n if (globalThis.Buffer != null && globalThis.Buffer.allocUnsafe != null) {\n return globalThis.Buffer.allocUnsafe(size);\n }\n return new Uint8Array(size);\n}","import { allocUnsafe } from './alloc.js';\nexport function concat(arrays, length) {\n if (!length) {\n length = arrays.reduce((acc, curr) => acc + curr.length, 0);\n }\n const output = allocUnsafe(length);\n let offset = 0;\n for (const arr of arrays) {\n output.set(arr, offset);\n offset += arr.length;\n }\n return output;\n}","function base(ALPHABET, name) {\n if (ALPHABET.length >= 255) {\n throw new TypeError('Alphabet too long');\n }\n var BASE_MAP = new Uint8Array(256);\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255;\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i);\n var xc = x.charCodeAt(0);\n if (BASE_MAP[xc] !== 255) {\n throw new TypeError(x + ' is ambiguous');\n }\n BASE_MAP[xc] = i;\n }\n var BASE = ALPHABET.length;\n var LEADER = ALPHABET.charAt(0);\n var FACTOR = Math.log(BASE) / Math.log(256);\n var iFACTOR = Math.log(256) / Math.log(BASE);\n function encode(source) {\n if (source instanceof Uint8Array);\n else if (ArrayBuffer.isView(source)) {\n source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength);\n } else if (Array.isArray(source)) {\n source = Uint8Array.from(source);\n }\n if (!(source instanceof Uint8Array)) {\n throw new TypeError('Expected Uint8Array');\n }\n if (source.length === 0) {\n return '';\n }\n var zeroes = 0;\n var length = 0;\n var pbegin = 0;\n var pend = source.length;\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++;\n zeroes++;\n }\n var size = (pend - pbegin) * iFACTOR + 1 >>> 0;\n var b58 = new Uint8Array(size);\n while (pbegin !== pend) {\n var carry = source[pbegin];\n var i = 0;\n for (var it1 = size - 1; (carry !== 0 || i < length) && it1 !== -1; it1--, i++) {\n carry += 256 * b58[it1] >>> 0;\n b58[it1] = carry % BASE >>> 0;\n carry = carry / BASE >>> 0;\n }\n if (carry !== 0) {\n throw new Error('Non-zero carry');\n }\n length = i;\n pbegin++;\n }\n var it2 = size - length;\n while (it2 !== size && b58[it2] === 0) {\n it2++;\n }\n var str = LEADER.repeat(zeroes);\n for (; it2 < size; ++it2) {\n str += ALPHABET.charAt(b58[it2]);\n }\n return str;\n }\n function decodeUnsafe(source) {\n if (typeof source !== 'string') {\n throw new TypeError('Expected String');\n }\n if (source.length === 0) {\n return new Uint8Array();\n }\n var psz = 0;\n if (source[psz] === ' ') {\n return;\n }\n var zeroes = 0;\n var length = 0;\n while (source[psz] === LEADER) {\n zeroes++;\n psz++;\n }\n var size = (source.length - psz) * FACTOR + 1 >>> 0;\n var b256 = new Uint8Array(size);\n while (source[psz]) {\n var carry = BASE_MAP[source.charCodeAt(psz)];\n if (carry === 255) {\n return;\n }\n var i = 0;\n for (var it3 = size - 1; (carry !== 0 || i < length) && it3 !== -1; it3--, i++) {\n carry += BASE * b256[it3] >>> 0;\n b256[it3] = carry % 256 >>> 0;\n carry = carry / 256 >>> 0;\n }\n if (carry !== 0) {\n throw new Error('Non-zero carry');\n }\n length = i;\n psz++;\n }\n if (source[psz] === ' ') {\n return;\n }\n var it4 = size - length;\n while (it4 !== size && b256[it4] === 0) {\n it4++;\n }\n var vch = new Uint8Array(zeroes + (size - it4));\n var j = zeroes;\n while (it4 !== size) {\n vch[j++] = b256[it4++];\n }\n return vch;\n }\n function decode(string) {\n var buffer = decodeUnsafe(string);\n if (buffer) {\n return buffer;\n }\n throw new Error(`Non-${ name } character`);\n }\n return {\n encode: encode,\n decodeUnsafe: decodeUnsafe,\n decode: decode\n };\n}\nvar src = base;\nvar _brrp__multiformats_scope_baseX = src;\nexport default _brrp__multiformats_scope_baseX;","const empty = new Uint8Array(0);\nconst toHex = d => d.reduce((hex, byte) => hex + byte.toString(16).padStart(2, '0'), '');\nconst fromHex = hex => {\n const hexes = hex.match(/../g);\n return hexes ? new Uint8Array(hexes.map(b => parseInt(b, 16))) : empty;\n};\nconst equals = (aa, bb) => {\n if (aa === bb)\n return true;\n if (aa.byteLength !== bb.byteLength) {\n return false;\n }\n for (let ii = 0; ii < aa.byteLength; ii++) {\n if (aa[ii] !== bb[ii]) {\n return false;\n }\n }\n return true;\n};\nconst coerce = o => {\n if (o instanceof Uint8Array && o.constructor.name === 'Uint8Array')\n return o;\n if (o instanceof ArrayBuffer)\n return new Uint8Array(o);\n if (ArrayBuffer.isView(o)) {\n return new Uint8Array(o.buffer, o.byteOffset, o.byteLength);\n }\n throw new Error('Unknown type, must be binary type');\n};\nconst isBinary = o => o instanceof ArrayBuffer || ArrayBuffer.isView(o);\nconst fromString = str => new TextEncoder().encode(str);\nconst toString = b => new TextDecoder().decode(b);\nexport {\n equals,\n coerce,\n isBinary,\n fromHex,\n toHex,\n fromString,\n toString,\n empty\n};","import basex from '../../vendor/base-x.js';\nimport { coerce } from '../bytes.js';\nclass Encoder {\n constructor(name, prefix, baseEncode) {\n this.name = name;\n this.prefix = prefix;\n this.baseEncode = baseEncode;\n }\n encode(bytes) {\n if (bytes instanceof Uint8Array) {\n return `${ this.prefix }${ this.baseEncode(bytes) }`;\n } else {\n throw Error('Unknown type, must be binary type');\n }\n }\n}\nclass Decoder {\n constructor(name, prefix, baseDecode) {\n this.name = name;\n this.prefix = prefix;\n if (prefix.codePointAt(0) === undefined) {\n throw new Error('Invalid prefix character');\n }\n this.prefixCodePoint = prefix.codePointAt(0);\n this.baseDecode = baseDecode;\n }\n decode(text) {\n if (typeof text === 'string') {\n if (text.codePointAt(0) !== this.prefixCodePoint) {\n throw Error(`Unable to decode multibase string ${ JSON.stringify(text) }, ${ this.name } decoder only supports inputs prefixed with ${ this.prefix }`);\n }\n return this.baseDecode(text.slice(this.prefix.length));\n } else {\n throw Error('Can only multibase decode strings');\n }\n }\n or(decoder) {\n return or(this, decoder);\n }\n}\nclass ComposedDecoder {\n constructor(decoders) {\n this.decoders = decoders;\n }\n or(decoder) {\n return or(this, decoder);\n }\n decode(input) {\n const prefix = input[0];\n const decoder = this.decoders[prefix];\n if (decoder) {\n return decoder.decode(input);\n } else {\n throw RangeError(`Unable to decode multibase string ${ JSON.stringify(input) }, only inputs prefixed with ${ Object.keys(this.decoders) } are supported`);\n }\n }\n}\nexport const or = (left, right) => new ComposedDecoder({\n ...left.decoders || { [left.prefix]: left },\n ...right.decoders || { [right.prefix]: right }\n});\nexport class Codec {\n constructor(name, prefix, baseEncode, baseDecode) {\n this.name = name;\n this.prefix = prefix;\n this.baseEncode = baseEncode;\n this.baseDecode = baseDecode;\n this.encoder = new Encoder(name, prefix, baseEncode);\n this.decoder = new Decoder(name, prefix, baseDecode);\n }\n encode(input) {\n return this.encoder.encode(input);\n }\n decode(input) {\n return this.decoder.decode(input);\n }\n}\nexport const from = ({name, prefix, encode, decode}) => new Codec(name, prefix, encode, decode);\nexport const baseX = ({prefix, name, alphabet}) => {\n const {encode, decode} = basex(alphabet, name);\n return from({\n prefix,\n name,\n encode,\n decode: text => coerce(decode(text))\n });\n};\nconst decode = (string, alphabet, bitsPerChar, name) => {\n const codes = {};\n for (let i = 0; i < alphabet.length; ++i) {\n codes[alphabet[i]] = i;\n }\n let end = string.length;\n while (string[end - 1] === '=') {\n --end;\n }\n const out = new Uint8Array(end * bitsPerChar / 8 | 0);\n let bits = 0;\n let buffer = 0;\n let written = 0;\n for (let i = 0; i < end; ++i) {\n const value = codes[string[i]];\n if (value === undefined) {\n throw new SyntaxError(`Non-${ name } character`);\n }\n buffer = buffer << bitsPerChar | value;\n bits += bitsPerChar;\n if (bits >= 8) {\n bits -= 8;\n out[written++] = 255 & buffer >> bits;\n }\n }\n if (bits >= bitsPerChar || 255 & buffer << 8 - bits) {\n throw new SyntaxError('Unexpected end of data');\n }\n return out;\n};\nconst encode = (data, alphabet, bitsPerChar) => {\n const pad = alphabet[alphabet.length - 1] === '=';\n const mask = (1 << bitsPerChar) - 1;\n let out = '';\n let bits = 0;\n let buffer = 0;\n for (let i = 0; i < data.length; ++i) {\n buffer = buffer << 8 | data[i];\n bits += 8;\n while (bits > bitsPerChar) {\n bits -= bitsPerChar;\n out += alphabet[mask & buffer >> bits];\n }\n }\n if (bits) {\n out += alphabet[mask & buffer << bitsPerChar - bits];\n }\n if (pad) {\n while (out.length * bitsPerChar & 7) {\n out += '=';\n }\n }\n return out;\n};\nexport const rfc4648 = ({name, prefix, bitsPerChar, alphabet}) => {\n return from({\n prefix,\n name,\n encode(input) {\n return encode(input, alphabet, bitsPerChar);\n },\n decode(input) {\n return decode(input, alphabet, bitsPerChar, name);\n }\n });\n};","import { from } from './base.js';\nimport {\n fromString,\n toString\n} from '../bytes.js';\nexport const identity = from({\n prefix: '\\0',\n name: 'identity',\n encode: buf => toString(buf),\n decode: str => fromString(str)\n});","import { rfc4648 } from './base.js';\nexport const base2 = rfc4648({\n prefix: '0',\n name: 'base2',\n alphabet: '01',\n bitsPerChar: 1\n});","import { rfc4648 } from './base.js';\nexport const base8 = rfc4648({\n prefix: '7',\n name: 'base8',\n alphabet: '01234567',\n bitsPerChar: 3\n});","import { baseX } from './base.js';\nexport const base10 = baseX({\n prefix: '9',\n name: 'base10',\n alphabet: '0123456789'\n});","import { rfc4648 } from './base.js';\nexport const base16 = rfc4648({\n prefix: 'f',\n name: 'base16',\n alphabet: '0123456789abcdef',\n bitsPerChar: 4\n});\nexport const base16upper = rfc4648({\n prefix: 'F',\n name: 'base16upper',\n alphabet: '0123456789ABCDEF',\n bitsPerChar: 4\n});","import { rfc4648 } from './base.js';\nexport const base32 = rfc4648({\n prefix: 'b',\n name: 'base32',\n alphabet: 'abcdefghijklmnopqrstuvwxyz234567',\n bitsPerChar: 5\n});\nexport const base32upper = rfc4648({\n prefix: 'B',\n name: 'base32upper',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567',\n bitsPerChar: 5\n});\nexport const base32pad = rfc4648({\n prefix: 'c',\n name: 'base32pad',\n alphabet: 'abcdefghijklmnopqrstuvwxyz234567=',\n bitsPerChar: 5\n});\nexport const base32padupper = rfc4648({\n prefix: 'C',\n name: 'base32padupper',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=',\n bitsPerChar: 5\n});\nexport const base32hex = rfc4648({\n prefix: 'v',\n name: 'base32hex',\n alphabet: '0123456789abcdefghijklmnopqrstuv',\n bitsPerChar: 5\n});\nexport const base32hexupper = rfc4648({\n prefix: 'V',\n name: 'base32hexupper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUV',\n bitsPerChar: 5\n});\nexport const base32hexpad = rfc4648({\n prefix: 't',\n name: 'base32hexpad',\n alphabet: '0123456789abcdefghijklmnopqrstuv=',\n bitsPerChar: 5\n});\nexport const base32hexpadupper = rfc4648({\n prefix: 'T',\n name: 'base32hexpadupper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUV=',\n bitsPerChar: 5\n});\nexport const base32z = rfc4648({\n prefix: 'h',\n name: 'base32z',\n alphabet: 'ybndrfg8ejkmcpqxot1uwisza345h769',\n bitsPerChar: 5\n});","import { baseX } from './base.js';\nexport const base36 = baseX({\n prefix: 'k',\n name: 'base36',\n alphabet: '0123456789abcdefghijklmnopqrstuvwxyz'\n});\nexport const base36upper = baseX({\n prefix: 'K',\n name: 'base36upper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'\n});","import { baseX } from './base.js';\nexport const base58btc = baseX({\n name: 'base58btc',\n prefix: 'z',\n alphabet: '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\n});\nexport const base58flickr = baseX({\n name: 'base58flickr',\n prefix: 'Z',\n alphabet: '123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ'\n});","import { rfc4648 } from './base.js';\nexport const base64 = rfc4648({\n prefix: 'm',\n name: 'base64',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n bitsPerChar: 6\n});\nexport const base64pad = rfc4648({\n prefix: 'M',\n name: 'base64pad',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',\n bitsPerChar: 6\n});\nexport const base64url = rfc4648({\n prefix: 'u',\n name: 'base64url',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_',\n bitsPerChar: 6\n});\nexport const base64urlpad = rfc4648({\n prefix: 'U',\n name: 'base64urlpad',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=',\n bitsPerChar: 6\n});","import { from } from './base.js';\nconst alphabet = Array.from('\\uD83D\\uDE80\\uD83E\\uDE90\\u2604\\uD83D\\uDEF0\\uD83C\\uDF0C\\uD83C\\uDF11\\uD83C\\uDF12\\uD83C\\uDF13\\uD83C\\uDF14\\uD83C\\uDF15\\uD83C\\uDF16\\uD83C\\uDF17\\uD83C\\uDF18\\uD83C\\uDF0D\\uD83C\\uDF0F\\uD83C\\uDF0E\\uD83D\\uDC09\\u2600\\uD83D\\uDCBB\\uD83D\\uDDA5\\uD83D\\uDCBE\\uD83D\\uDCBF\\uD83D\\uDE02\\u2764\\uD83D\\uDE0D\\uD83E\\uDD23\\uD83D\\uDE0A\\uD83D\\uDE4F\\uD83D\\uDC95\\uD83D\\uDE2D\\uD83D\\uDE18\\uD83D\\uDC4D\\uD83D\\uDE05\\uD83D\\uDC4F\\uD83D\\uDE01\\uD83D\\uDD25\\uD83E\\uDD70\\uD83D\\uDC94\\uD83D\\uDC96\\uD83D\\uDC99\\uD83D\\uDE22\\uD83E\\uDD14\\uD83D\\uDE06\\uD83D\\uDE44\\uD83D\\uDCAA\\uD83D\\uDE09\\u263A\\uD83D\\uDC4C\\uD83E\\uDD17\\uD83D\\uDC9C\\uD83D\\uDE14\\uD83D\\uDE0E\\uD83D\\uDE07\\uD83C\\uDF39\\uD83E\\uDD26\\uD83C\\uDF89\\uD83D\\uDC9E\\u270C\\u2728\\uD83E\\uDD37\\uD83D\\uDE31\\uD83D\\uDE0C\\uD83C\\uDF38\\uD83D\\uDE4C\\uD83D\\uDE0B\\uD83D\\uDC97\\uD83D\\uDC9A\\uD83D\\uDE0F\\uD83D\\uDC9B\\uD83D\\uDE42\\uD83D\\uDC93\\uD83E\\uDD29\\uD83D\\uDE04\\uD83D\\uDE00\\uD83D\\uDDA4\\uD83D\\uDE03\\uD83D\\uDCAF\\uD83D\\uDE48\\uD83D\\uDC47\\uD83C\\uDFB6\\uD83D\\uDE12\\uD83E\\uDD2D\\u2763\\uD83D\\uDE1C\\uD83D\\uDC8B\\uD83D\\uDC40\\uD83D\\uDE2A\\uD83D\\uDE11\\uD83D\\uDCA5\\uD83D\\uDE4B\\uD83D\\uDE1E\\uD83D\\uDE29\\uD83D\\uDE21\\uD83E\\uDD2A\\uD83D\\uDC4A\\uD83E\\uDD73\\uD83D\\uDE25\\uD83E\\uDD24\\uD83D\\uDC49\\uD83D\\uDC83\\uD83D\\uDE33\\u270B\\uD83D\\uDE1A\\uD83D\\uDE1D\\uD83D\\uDE34\\uD83C\\uDF1F\\uD83D\\uDE2C\\uD83D\\uDE43\\uD83C\\uDF40\\uD83C\\uDF37\\uD83D\\uDE3B\\uD83D\\uDE13\\u2B50\\u2705\\uD83E\\uDD7A\\uD83C\\uDF08\\uD83D\\uDE08\\uD83E\\uDD18\\uD83D\\uDCA6\\u2714\\uD83D\\uDE23\\uD83C\\uDFC3\\uD83D\\uDC90\\u2639\\uD83C\\uDF8A\\uD83D\\uDC98\\uD83D\\uDE20\\u261D\\uD83D\\uDE15\\uD83C\\uDF3A\\uD83C\\uDF82\\uD83C\\uDF3B\\uD83D\\uDE10\\uD83D\\uDD95\\uD83D\\uDC9D\\uD83D\\uDE4A\\uD83D\\uDE39\\uD83D\\uDDE3\\uD83D\\uDCAB\\uD83D\\uDC80\\uD83D\\uDC51\\uD83C\\uDFB5\\uD83E\\uDD1E\\uD83D\\uDE1B\\uD83D\\uDD34\\uD83D\\uDE24\\uD83C\\uDF3C\\uD83D\\uDE2B\\u26BD\\uD83E\\uDD19\\u2615\\uD83C\\uDFC6\\uD83E\\uDD2B\\uD83D\\uDC48\\uD83D\\uDE2E\\uD83D\\uDE46\\uD83C\\uDF7B\\uD83C\\uDF43\\uD83D\\uDC36\\uD83D\\uDC81\\uD83D\\uDE32\\uD83C\\uDF3F\\uD83E\\uDDE1\\uD83C\\uDF81\\u26A1\\uD83C\\uDF1E\\uD83C\\uDF88\\u274C\\u270A\\uD83D\\uDC4B\\uD83D\\uDE30\\uD83E\\uDD28\\uD83D\\uDE36\\uD83E\\uDD1D\\uD83D\\uDEB6\\uD83D\\uDCB0\\uD83C\\uDF53\\uD83D\\uDCA2\\uD83E\\uDD1F\\uD83D\\uDE41\\uD83D\\uDEA8\\uD83D\\uDCA8\\uD83E\\uDD2C\\u2708\\uD83C\\uDF80\\uD83C\\uDF7A\\uD83E\\uDD13\\uD83D\\uDE19\\uD83D\\uDC9F\\uD83C\\uDF31\\uD83D\\uDE16\\uD83D\\uDC76\\uD83E\\uDD74\\u25B6\\u27A1\\u2753\\uD83D\\uDC8E\\uD83D\\uDCB8\\u2B07\\uD83D\\uDE28\\uD83C\\uDF1A\\uD83E\\uDD8B\\uD83D\\uDE37\\uD83D\\uDD7A\\u26A0\\uD83D\\uDE45\\uD83D\\uDE1F\\uD83D\\uDE35\\uD83D\\uDC4E\\uD83E\\uDD32\\uD83E\\uDD20\\uD83E\\uDD27\\uD83D\\uDCCC\\uD83D\\uDD35\\uD83D\\uDC85\\uD83E\\uDDD0\\uD83D\\uDC3E\\uD83C\\uDF52\\uD83D\\uDE17\\uD83E\\uDD11\\uD83C\\uDF0A\\uD83E\\uDD2F\\uD83D\\uDC37\\u260E\\uD83D\\uDCA7\\uD83D\\uDE2F\\uD83D\\uDC86\\uD83D\\uDC46\\uD83C\\uDFA4\\uD83D\\uDE47\\uD83C\\uDF51\\u2744\\uD83C\\uDF34\\uD83D\\uDCA3\\uD83D\\uDC38\\uD83D\\uDC8C\\uD83D\\uDCCD\\uD83E\\uDD40\\uD83E\\uDD22\\uD83D\\uDC45\\uD83D\\uDCA1\\uD83D\\uDCA9\\uD83D\\uDC50\\uD83D\\uDCF8\\uD83D\\uDC7B\\uD83E\\uDD10\\uD83E\\uDD2E\\uD83C\\uDFBC\\uD83E\\uDD75\\uD83D\\uDEA9\\uD83C\\uDF4E\\uD83C\\uDF4A\\uD83D\\uDC7C\\uD83D\\uDC8D\\uD83D\\uDCE3\\uD83E\\uDD42');\nconst alphabetBytesToChars = alphabet.reduce((p, c, i) => {\n p[i] = c;\n return p;\n}, []);\nconst alphabetCharsToBytes = alphabet.reduce((p, c, i) => {\n p[c.codePointAt(0)] = i;\n return p;\n}, []);\nfunction encode(data) {\n return data.reduce((p, c) => {\n p += alphabetBytesToChars[c];\n return p;\n }, '');\n}\nfunction decode(str) {\n const byts = [];\n for (const char of str) {\n const byt = alphabetCharsToBytes[char.codePointAt(0)];\n if (byt === undefined) {\n throw new Error(`Non-base256emoji character: ${ char }`);\n }\n byts.push(byt);\n }\n return new Uint8Array(byts);\n}\nexport const base256emoji = from({\n prefix: '\\uD83D\\uDE80',\n name: 'base256emoji',\n encode,\n decode\n});","const textEncoder = new TextEncoder();\nconst textDecoder = new TextDecoder();\nexport const name = 'json';\nexport const code = 512;\nexport const encode = node => textEncoder.encode(JSON.stringify(node));\nexport const decode = data => JSON.parse(textDecoder.decode(data));","import * as identityBase from './bases/identity.js';\nimport * as base2 from './bases/base2.js';\nimport * as base8 from './bases/base8.js';\nimport * as base10 from './bases/base10.js';\nimport * as base16 from './bases/base16.js';\nimport * as base32 from './bases/base32.js';\nimport * as base36 from './bases/base36.js';\nimport * as base58 from './bases/base58.js';\nimport * as base64 from './bases/base64.js';\nimport * as base256emoji from './bases/base256emoji.js';\nimport * as sha2 from './hashes/sha2.js';\nimport * as identity from './hashes/identity.js';\nimport * as raw from './codecs/raw.js';\nimport * as json from './codecs/json.js';\nimport {\n CID,\n hasher,\n digest,\n varint,\n bytes\n} from './index.js';\nconst bases = {\n ...identityBase,\n ...base2,\n ...base8,\n ...base10,\n ...base16,\n ...base32,\n ...base36,\n ...base58,\n ...base64,\n ...base256emoji\n};\nconst hashes = {\n ...sha2,\n ...identity\n};\nconst codecs = {\n raw,\n json\n};\nexport {\n CID,\n hasher,\n digest,\n varint,\n bytes,\n hashes,\n bases,\n codecs\n};","import { bases } from 'multiformats/basics';\nimport { allocUnsafe } from '../alloc.js';\nfunction createCodec(name, prefix, encode, decode) {\n return {\n name,\n prefix,\n encoder: {\n name,\n prefix,\n encode\n },\n decoder: { decode }\n };\n}\nconst string = createCodec('utf8', 'u', buf => {\n const decoder = new TextDecoder('utf8');\n return 'u' + decoder.decode(buf);\n}, str => {\n const encoder = new TextEncoder();\n return encoder.encode(str.substring(1));\n});\nconst ascii = createCodec('ascii', 'a', buf => {\n let string = 'a';\n for (let i = 0; i < buf.length; i++) {\n string += String.fromCharCode(buf[i]);\n }\n return string;\n}, str => {\n str = str.substring(1);\n const buf = allocUnsafe(str.length);\n for (let i = 0; i < str.length; i++) {\n buf[i] = str.charCodeAt(i);\n }\n return buf;\n});\nconst BASES = {\n utf8: string,\n 'utf-8': string,\n hex: bases.base16,\n latin1: ascii,\n ascii: ascii,\n binary: ascii,\n ...bases\n};\nexport default BASES;","import bases from './util/bases.js';\nexport function toString(array, encoding = 'utf8') {\n const base = bases[encoding];\n if (!base) {\n throw new Error(`Unsupported encoding \"${ encoding }\"`);\n }\n if ((encoding === 'utf8' || encoding === 'utf-8') && globalThis.Buffer != null && globalThis.Buffer.from != null) {\n return globalThis.Buffer.from(array.buffer, array.byteOffset, array.byteLength).toString('utf8');\n }\n return base.encoder.encode(array).substring(1);\n}","import bases from './util/bases.js';\nexport function fromString(string, encoding = 'utf8') {\n const base = bases[encoding];\n if (!base) {\n throw new Error(`Unsupported encoding \"${ encoding }\"`);\n }\n if ((encoding === 'utf8' || encoding === 'utf-8') && globalThis.Buffer != null && globalThis.Buffer.from != null) {\n return globalThis.Buffer.from(string, 'utf8');\n }\n return base.decoder.decode(`${ base.prefix }${ string }`);\n}","import { concat } from \"uint8arrays/concat\";\nimport { toString } from \"uint8arrays/to-string\";\nimport { fromString } from \"uint8arrays/from-string\";\nimport { safeJsonParse, safeJsonStringify } from \"@walletconnect/safe-json\";\nimport { DATA_ENCODING, DID_DELIMITER, DID_METHOD, DID_PREFIX, JSON_ENCODING, JWT_DELIMITER, JWT_ENCODING, MULTICODEC_ED25519_BASE, MULTICODEC_ED25519_ENCODING, MULTICODEC_ED25519_HEADER, MULTICODEC_ED25519_LENGTH, } from \"./constants\";\nexport function decodeJSON(str) {\n return safeJsonParse(toString(fromString(str, JWT_ENCODING), JSON_ENCODING));\n}\nexport function encodeJSON(val) {\n return toString(fromString(safeJsonStringify(val), JSON_ENCODING), JWT_ENCODING);\n}\nexport function encodeIss(publicKey) {\n const header = fromString(MULTICODEC_ED25519_HEADER, MULTICODEC_ED25519_ENCODING);\n const multicodec = MULTICODEC_ED25519_BASE +\n toString(concat([header, publicKey]), MULTICODEC_ED25519_ENCODING);\n return [DID_PREFIX, DID_METHOD, multicodec].join(DID_DELIMITER);\n}\nexport function decodeIss(issuer) {\n const [prefix, method, multicodec] = issuer.split(DID_DELIMITER);\n if (prefix !== DID_PREFIX || method !== DID_METHOD) {\n throw new Error(`Issuer must be a DID with method \"key\"`);\n }\n const base = multicodec.slice(0, 1);\n if (base !== MULTICODEC_ED25519_BASE) {\n throw new Error(`Issuer must be a key in mulicodec format`);\n }\n const bytes = fromString(multicodec.slice(1), MULTICODEC_ED25519_ENCODING);\n const type = toString(bytes.slice(0, 2), MULTICODEC_ED25519_ENCODING);\n if (type !== MULTICODEC_ED25519_HEADER) {\n throw new Error(`Issuer must be a public key with type \"Ed25519\"`);\n }\n const publicKey = bytes.slice(2);\n if (publicKey.length !== MULTICODEC_ED25519_LENGTH) {\n throw new Error(`Issuer must be a public key with length 32 bytes`);\n }\n return publicKey;\n}\nexport function encodeSig(bytes) {\n return toString(bytes, JWT_ENCODING);\n}\nexport function decodeSig(encoded) {\n return fromString(encoded, JWT_ENCODING);\n}\nexport function encodeData(params) {\n return fromString([encodeJSON(params.header), encodeJSON(params.payload)].join(JWT_DELIMITER), DATA_ENCODING);\n}\nexport function decodeData(data) {\n const params = toString(data, DATA_ENCODING).split(JWT_DELIMITER);\n const header = decodeJSON(params[0]);\n const payload = decodeJSON(params[1]);\n return { header, payload };\n}\nexport function encodeJWT(params) {\n return [\n encodeJSON(params.header),\n encodeJSON(params.payload),\n encodeSig(params.signature),\n ].join(JWT_DELIMITER);\n}\nexport function decodeJWT(jwt) {\n const params = jwt.split(JWT_DELIMITER);\n const header = decodeJSON(params[0]);\n const payload = decodeJSON(params[1]);\n const signature = decodeSig(params[2]);\n const data = fromString(params.slice(0, 2).join(JWT_DELIMITER), DATA_ENCODING);\n return { header, payload, signature, data };\n}\n//# sourceMappingURL=utils.js.map","import * as ed25519 from \"@stablelib/ed25519\";\nimport { randomBytes } from \"@stablelib/random\";\nimport { fromMiliseconds } from \"@walletconnect/time\";\nimport { JWT_IRIDIUM_ALG, JWT_IRIDIUM_TYP, KEY_PAIR_SEED_LENGTH, } from \"./constants\";\nimport { decodeIss, decodeJWT, encodeData, encodeIss, encodeJWT, } from \"./utils\";\nexport function generateKeyPair(seed = randomBytes(KEY_PAIR_SEED_LENGTH)) {\n return ed25519.generateKeyPairFromSeed(seed);\n}\nexport async function signJWT(sub, aud, ttl, keyPair, iat = fromMiliseconds(Date.now())) {\n const header = { alg: JWT_IRIDIUM_ALG, typ: JWT_IRIDIUM_TYP };\n const iss = encodeIss(keyPair.publicKey);\n const exp = iat + ttl;\n const payload = { iss, sub, aud, iat, exp };\n const data = encodeData({ header, payload });\n const signature = ed25519.sign(keyPair.secretKey, data);\n return encodeJWT({ header, payload, signature });\n}\nexport async function verifyJWT(jwt) {\n const { header, payload, data, signature } = decodeJWT(jwt);\n if (header.alg !== JWT_IRIDIUM_ALG || header.typ !== JWT_IRIDIUM_TYP) {\n throw new Error(\"JWT must use EdDSA algorithm\");\n }\n const publicKey = decodeIss(payload.iss);\n return ed25519.verify(publicKey, data, signature);\n}\n//# sourceMappingURL=api.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getLocalStorage = exports.getLocalStorageOrThrow = exports.getCrypto = exports.getCryptoOrThrow = exports.getLocation = exports.getLocationOrThrow = exports.getNavigator = exports.getNavigatorOrThrow = exports.getDocument = exports.getDocumentOrThrow = exports.getFromWindowOrThrow = exports.getFromWindow = void 0;\nfunction getFromWindow(name) {\n let res = undefined;\n if (typeof window !== \"undefined\" && typeof window[name] !== \"undefined\") {\n res = window[name];\n }\n return res;\n}\nexports.getFromWindow = getFromWindow;\nfunction getFromWindowOrThrow(name) {\n const res = getFromWindow(name);\n if (!res) {\n throw new Error(`${name} is not defined in Window`);\n }\n return res;\n}\nexports.getFromWindowOrThrow = getFromWindowOrThrow;\nfunction getDocumentOrThrow() {\n return getFromWindowOrThrow(\"document\");\n}\nexports.getDocumentOrThrow = getDocumentOrThrow;\nfunction getDocument() {\n return getFromWindow(\"document\");\n}\nexports.getDocument = getDocument;\nfunction getNavigatorOrThrow() {\n return getFromWindowOrThrow(\"navigator\");\n}\nexports.getNavigatorOrThrow = getNavigatorOrThrow;\nfunction getNavigator() {\n return getFromWindow(\"navigator\");\n}\nexports.getNavigator = getNavigator;\nfunction getLocationOrThrow() {\n return getFromWindowOrThrow(\"location\");\n}\nexports.getLocationOrThrow = getLocationOrThrow;\nfunction getLocation() {\n return getFromWindow(\"location\");\n}\nexports.getLocation = getLocation;\nfunction getCryptoOrThrow() {\n return getFromWindowOrThrow(\"crypto\");\n}\nexports.getCryptoOrThrow = getCryptoOrThrow;\nfunction getCrypto() {\n return getFromWindow(\"crypto\");\n}\nexports.getCrypto = getCrypto;\nfunction getLocalStorageOrThrow() {\n return getFromWindowOrThrow(\"localStorage\");\n}\nexports.getLocalStorageOrThrow = getLocalStorageOrThrow;\nfunction getLocalStorage() {\n return getFromWindow(\"localStorage\");\n}\nexports.getLocalStorage = getLocalStorage;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getWindowMetadata = void 0;\nconst window_getters_1 = require(\"@walletconnect/window-getters\");\nfunction getWindowMetadata() {\n let doc;\n let loc;\n try {\n doc = window_getters_1.getDocumentOrThrow();\n loc = window_getters_1.getLocationOrThrow();\n }\n catch (e) {\n return null;\n }\n function getIcons() {\n const links = doc.getElementsByTagName(\"link\");\n const icons = [];\n for (let i = 0; i < links.length; i++) {\n const link = links[i];\n const rel = link.getAttribute(\"rel\");\n if (rel) {\n if (rel.toLowerCase().indexOf(\"icon\") > -1) {\n const href = link.getAttribute(\"href\");\n if (href) {\n if (href.toLowerCase().indexOf(\"https:\") === -1 &&\n href.toLowerCase().indexOf(\"http:\") === -1 &&\n href.indexOf(\"//\") !== 0) {\n let absoluteHref = loc.protocol + \"//\" + loc.host;\n if (href.indexOf(\"/\") === 0) {\n absoluteHref += href;\n }\n else {\n const path = loc.pathname.split(\"/\");\n path.pop();\n const finalPath = path.join(\"/\");\n absoluteHref += finalPath + \"/\" + href;\n }\n icons.push(absoluteHref);\n }\n else if (href.indexOf(\"//\") === 0) {\n const absoluteUrl = loc.protocol + href;\n icons.push(absoluteUrl);\n }\n else {\n icons.push(href);\n }\n }\n }\n }\n }\n return icons;\n }\n function getWindowMetadataOfAny(...args) {\n const metaTags = doc.getElementsByTagName(\"meta\");\n for (let i = 0; i < metaTags.length; i++) {\n const tag = metaTags[i];\n const attributes = [\"itemprop\", \"property\", \"name\"]\n .map((target) => tag.getAttribute(target))\n .filter((attr) => {\n if (attr) {\n return args.includes(attr);\n }\n return false;\n });\n if (attributes.length && attributes) {\n const content = tag.getAttribute(\"content\");\n if (content) {\n return content;\n }\n }\n }\n return \"\";\n }\n function getName() {\n let name = getWindowMetadataOfAny(\"name\", \"og:site_name\", \"og:title\", \"twitter:title\");\n if (!name) {\n name = doc.title;\n }\n return name;\n }\n function getDescription() {\n const description = getWindowMetadataOfAny(\"description\", \"og:description\", \"twitter:description\", \"keywords\");\n return description;\n }\n const name = getName();\n const description = getDescription();\n const url = loc.origin;\n const icons = getIcons();\n const meta = {\n description,\n url,\n icons,\n name,\n };\n return meta;\n}\nexports.getWindowMetadata = getWindowMetadata;\n//# sourceMappingURL=index.js.map","'use strict';\nmodule.exports = str => encodeURIComponent(str).replace(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\n","'use strict';\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp('(' + token + ')|([^%]+?)', 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn [decodeURIComponent(components.join(''))];\n\t} catch (err) {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tvar left = components.slice(0, split);\n\tvar right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch (err) {\n\t\tvar tokens = input.match(singleMatcher) || [];\n\n\t\tfor (var i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher) || [];\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tvar replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD'\n\t};\n\n\tvar match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch (err) {\n\t\t\tvar result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tvar entries = Object.keys(replaceMap);\n\n\tfor (var i = 0; i < entries.length; i++) {\n\t\t// Replace all decoded components\n\t\tvar key = entries[i];\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nmodule.exports = function (encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\tencodedURI = encodedURI.replace(/\\+/g, ' ');\n\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch (err) {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n};\n","'use strict';\n\nmodule.exports = (string, separator) => {\n\tif (!(typeof string === 'string' && typeof separator === 'string')) {\n\t\tthrow new TypeError('Expected the arguments to be of type `string`');\n\t}\n\n\tif (separator === '') {\n\t\treturn [string];\n\t}\n\n\tconst separatorIndex = string.indexOf(separator);\n\n\tif (separatorIndex === -1) {\n\t\treturn [string];\n\t}\n\n\treturn [\n\t\tstring.slice(0, separatorIndex),\n\t\tstring.slice(separatorIndex + separator.length)\n\t];\n};\n","'use strict';\nmodule.exports = function (obj, predicate) {\n\tvar ret = {};\n\tvar keys = Object.keys(obj);\n\tvar isArr = Array.isArray(predicate);\n\n\tfor (var i = 0; i < keys.length; i++) {\n\t\tvar key = keys[i];\n\t\tvar val = obj[key];\n\n\t\tif (isArr ? predicate.indexOf(key) !== -1 : predicate(key, val, obj)) {\n\t\t\tret[key] = val;\n\t\t}\n\t}\n\n\treturn ret;\n};\n","import BN from 'bn.js';\nimport hash from 'hash.js';\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nfunction createCommonjsModule(fn, basedir, module) {\n\treturn module = {\n\t\tpath: basedir,\n\t\texports: {},\n\t\trequire: function (path, base) {\n\t\t\treturn commonjsRequire(path, (base === undefined || base === null) ? module.path : base);\n\t\t}\n\t}, fn(module, module.exports), module.exports;\n}\n\nfunction getDefaultExportFromNamespaceIfPresent (n) {\n\treturn n && Object.prototype.hasOwnProperty.call(n, 'default') ? n['default'] : n;\n}\n\nfunction getDefaultExportFromNamespaceIfNotNamed (n) {\n\treturn n && Object.prototype.hasOwnProperty.call(n, 'default') && Object.keys(n).length === 1 ? n['default'] : n;\n}\n\nfunction getAugmentedNamespace(n) {\n\tif (n.__esModule) return n;\n\tvar a = Object.defineProperty({}, '__esModule', {value: true});\n\tObject.keys(n).forEach(function (k) {\n\t\tvar d = Object.getOwnPropertyDescriptor(n, k);\n\t\tObject.defineProperty(a, k, d.get ? d : {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\treturn n[k];\n\t\t\t}\n\t\t});\n\t});\n\treturn a;\n}\n\nfunction commonjsRequire () {\n\tthrow new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs');\n}\n\nvar minimalisticAssert = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n\nvar utils_1 = createCommonjsModule(function (module, exports) {\n'use strict';\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg !== 'string') {\n for (var i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n return res;\n }\n if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (var i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n } else {\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n var hi = c >> 8;\n var lo = c & 0xff;\n if (hi)\n res.push(hi, lo);\n else\n res.push(lo);\n }\n }\n return res;\n}\nutils.toArray = toArray;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n if (enc === 'hex')\n return toHex(arr);\n else\n return arr;\n};\n});\n\nvar utils_1$1 = createCommonjsModule(function (module, exports) {\n'use strict';\n\nvar utils = exports;\n\n\n\n\nutils.assert = minimalisticAssert;\nutils.toArray = utils_1.toArray;\nutils.zero2 = utils_1.zero2;\nutils.toHex = utils_1.toHex;\nutils.encode = utils_1.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n naf.fill(0);\n\n var ws = 1 << (w + 1);\n var k = num.clone();\n\n for (var i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n [],\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n var m8;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n});\n\n'use strict';\n\n\n\nvar getNAF = utils_1$1.getNAF;\nvar getJSF = utils_1$1.getJSF;\nvar assert$1 = utils_1$1.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nvar base = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert$1(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n var j;\n var nafW;\n for (j = 0; j < naf.length; j += doubles.step) {\n nafW = 0;\n for (var l = j + doubles.step - 1; l >= j; l--)\n nafW = (nafW << 1) + naf[l];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (j = 0; j < repr.length; j++) {\n nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var l = 0; i >= 0 && naf[i] === 0; i--)\n l++;\n if (i >= 0)\n l++;\n acc = acc.dblp(l);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert$1(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n var i;\n var j;\n var p;\n for (i = 0; i < len; i++) {\n p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b], /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3, /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (j = 0; j < len; j++) {\n var z = tmp[j];\n p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils_1$1.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert$1(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert$1(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len));\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils_1$1.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null,\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles,\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res,\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n\nvar inherits_browser = createCommonjsModule(function (module) {\nif (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n };\n}\n});\n\n'use strict';\n\n\n\n\n\n\nvar assert$2 = utils_1$1.assert;\n\nfunction ShortCurve(conf) {\n base.call(this, 'short', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n\n // If the curve is endomorphic, precalculate beta and lambda\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits_browser(ShortCurve, base);\nvar short_1 = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n\n // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n // Choose the smallest beta\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert$2(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n\n // Get basis vectors, used for balanced length-two representation\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16),\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis,\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [ l1, l2 ];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n\n // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1);\n\n // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n var a0;\n var b0;\n // First vector\n var a1;\n var b1;\n // Second vector\n var a2;\n var b2;\n\n var prevR;\n var i = 0;\n var r;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r;\n\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r.neg();\n b2 = x;\n\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n\n // Normalize signs\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 },\n ];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n\n // Calculate answer\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1: k1, k2: k2 };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf)\n return true;\n\n var x = point.x;\n var y = point.y;\n\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd =\n function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n\n // Clean-up references to points and coefficients\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n };\n\nfunction Point(curve, x, y, isRed) {\n base.BasePoint.call(this, curve, 'affine');\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n // Force redgomery representation when loading from JSON\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits_browser(Point, base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo)\n return;\n\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul),\n },\n };\n }\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [ this.x, this.y ];\n\n return [ this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1),\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1),\n },\n } ];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string')\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [ res ].concat(pre.doubles.points.map(obj2point)),\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [ res ].concat(pre.naf.points.map(obj2point)),\n },\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf)\n return p;\n\n // P + O = P\n if (p.inf)\n return this;\n\n // P + P = 2P\n if (this.eq(p))\n return this.dbl();\n\n // P + (-P) = O\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n\n // P + Q = O\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n\n // 2P = O\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n\n var a = this.curve.a;\n\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([ this ], [ k ]);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p ||\n this.inf === p.inf &&\n (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate),\n },\n };\n }\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n base.BasePoint.call(this, curve, 'jacobian');\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n\n this.zOne = this.z === this.curve.one;\n}\ninherits_browser(JPoint, base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity())\n return p;\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 12M + 4S + 7A\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity())\n return p.toJ();\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 8M + 3S + 7A\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n\n var i;\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n for (i = 0; i < pow; i++)\n r = r.dbl();\n return r;\n }\n\n // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n // Reuse results\n var jyd = jy.redAdd(jy);\n for (i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // T = M ^ 2 - 2*S\n var t = m.redSqr().redISub(s).redISub(s);\n\n // 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2*Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = B^2\n var c = b.redSqr();\n // D = 2 * ((X1 + B)^2 - A - C)\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n // E = 3 * A\n var e = a.redAdd(a).redIAdd(a);\n // F = E^2\n var f = e.redSqr();\n\n // 8 * C\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n\n // X3 = F - 2 * D\n nx = f.redISub(d).redISub(d);\n // Y3 = E * (D - X3) - 8 * C\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n // Z3 = 2 * Y1 * Z1\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n // T = M^2 - 2 * S\n var t = m.redSqr().redISub(s).redISub(s);\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2 * Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n\n // delta = Z1^2\n var delta = this.z.redSqr();\n // gamma = Y1^2\n var gamma = this.y.redSqr();\n // beta = X1 * gamma\n var beta = this.x.redMul(gamma);\n // alpha = 3 * (X1 - delta) * (X1 + delta)\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n // X3 = alpha^2 - 8 * beta\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n // Z3 = (Y1 + Z1)^2 - gamma - delta\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n\n // 4M + 6S + 10A\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // ZZ = Z1^2\n var zz = this.z.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // M = 3 * XX + a * ZZ2; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // MM = M^2\n var mm = m.redSqr();\n // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n // EE = E^2\n var ee = e.redSqr();\n // T = 16*YYYY\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n // U = (M + E)^2 - MM - EE - T\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n // X3 = 4 * (X1 * EE - 4 * YY * U)\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n // Z3 = (Z1 + E)^2 - ZZ - EE\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine')\n return this.eq(p.toJ());\n\n if (this === p)\n return true;\n\n // x1 * z2^2 == x2 * z1^2\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n\n // y1 * z2^3 == y2 * z1^3\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n\nvar curve_1 = createCommonjsModule(function (module, exports) {\n'use strict';\n\nvar curve = exports;\n\ncurve.base = base;\ncurve.short = short_1;\ncurve.mont = /*RicMoo:ethers:require(./mont)*/(null);\ncurve.edwards = /*RicMoo:ethers:require(./edwards)*/(null);\n});\n\nvar curves_1 = createCommonjsModule(function (module, exports) {\n'use strict';\n\nvar curves = exports;\n\n\n\n\n\nvar assert = utils_1$1.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve_1.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve_1.edwards(options);\n else\n this.curve = new curve_1.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve,\n });\n return curve;\n },\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811',\n ],\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34',\n ],\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5',\n ],\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f',\n ],\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650',\n ],\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9',\n ],\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658',\n ],\n});\n\nvar pre;\ntry {\n pre = /*RicMoo:ethers:require(./precomputed/secp256k1)*/(null).crash();\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3',\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15',\n },\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre,\n ],\n});\n});\n\n'use strict';\n\n\n\n\n\nfunction HmacDRBG(options) {\n if (!(this instanceof HmacDRBG))\n return new HmacDRBG(options);\n this.hash = options.hash;\n this.predResist = !!options.predResist;\n\n this.outLen = this.hash.outSize;\n this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n\n this._reseed = null;\n this.reseedInterval = null;\n this.K = null;\n this.V = null;\n\n var entropy = utils_1.toArray(options.entropy, options.entropyEnc || 'hex');\n var nonce = utils_1.toArray(options.nonce, options.nonceEnc || 'hex');\n var pers = utils_1.toArray(options.pers, options.persEnc || 'hex');\n minimalisticAssert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n this._init(entropy, nonce, pers);\n}\nvar hmacDrbg = HmacDRBG;\n\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n var seed = entropy.concat(nonce).concat(pers);\n\n this.K = new Array(this.outLen / 8);\n this.V = new Array(this.outLen / 8);\n for (var i = 0; i < this.V.length; i++) {\n this.K[i] = 0x00;\n this.V[i] = 0x01;\n }\n\n this._update(seed);\n this._reseed = 1;\n this.reseedInterval = 0x1000000000000; // 2^48\n};\n\nHmacDRBG.prototype._hmac = function hmac() {\n return new hash.hmac(this.hash, this.K);\n};\n\nHmacDRBG.prototype._update = function update(seed) {\n var kmac = this._hmac()\n .update(this.V)\n .update([ 0x00 ]);\n if (seed)\n kmac = kmac.update(seed);\n this.K = kmac.digest();\n this.V = this._hmac().update(this.V).digest();\n if (!seed)\n return;\n\n this.K = this._hmac()\n .update(this.V)\n .update([ 0x01 ])\n .update(seed)\n .digest();\n this.V = this._hmac().update(this.V).digest();\n};\n\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {\n // Optional entropy enc\n if (typeof entropyEnc !== 'string') {\n addEnc = add;\n add = entropyEnc;\n entropyEnc = null;\n }\n\n entropy = utils_1.toArray(entropy, entropyEnc);\n add = utils_1.toArray(add, addEnc);\n\n minimalisticAssert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n this._update(entropy.concat(add || []));\n this._reseed = 1;\n};\n\nHmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {\n if (this._reseed > this.reseedInterval)\n throw new Error('Reseed is required');\n\n // Optional encoding\n if (typeof enc !== 'string') {\n addEnc = add;\n add = enc;\n enc = null;\n }\n\n // Optional additional data\n if (add) {\n add = utils_1.toArray(add, addEnc || 'hex');\n this._update(add);\n }\n\n var temp = [];\n while (temp.length < len) {\n this.V = this._hmac().update(this.V).digest();\n temp = temp.concat(this.V);\n }\n\n var res = temp.slice(0, len);\n this._update(add);\n this._reseed++;\n return utils_1.encode(res, enc);\n};\n\n'use strict';\n\n\n\nvar assert$3 = utils_1$1.assert;\n\nfunction KeyPair(ec, options) {\n this.ec = ec;\n this.priv = null;\n this.pub = null;\n\n // KeyPair(ec, { priv: ..., pub: ... })\n if (options.priv)\n this._importPrivate(options.priv, options.privEnc);\n if (options.pub)\n this._importPublic(options.pub, options.pubEnc);\n}\nvar key = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n if (pub instanceof KeyPair)\n return pub;\n\n return new KeyPair(ec, {\n pub: pub,\n pubEnc: enc,\n });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n if (priv instanceof KeyPair)\n return priv;\n\n return new KeyPair(ec, {\n priv: priv,\n privEnc: enc,\n });\n};\n\nKeyPair.prototype.validate = function validate() {\n var pub = this.getPublic();\n\n if (pub.isInfinity())\n return { result: false, reason: 'Invalid public key' };\n if (!pub.validate())\n return { result: false, reason: 'Public key is not a point' };\n if (!pub.mul(this.ec.curve.n).isInfinity())\n return { result: false, reason: 'Public key * N != O' };\n\n return { result: true, reason: null };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n // compact is optional argument\n if (typeof compact === 'string') {\n enc = compact;\n compact = null;\n }\n\n if (!this.pub)\n this.pub = this.ec.g.mul(this.priv);\n\n if (!enc)\n return this.pub;\n\n return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n if (enc === 'hex')\n return this.priv.toString(16, 2);\n else\n return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n this.priv = new BN(key, enc || 16);\n\n // Ensure that the priv won't be bigger than n, otherwise we may fail\n // in fixed multiplication method\n this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n if (key.x || key.y) {\n // Montgomery points only have an `x` coordinate.\n // Weierstrass/Edwards points on the other hand have both `x` and\n // `y` coordinates.\n if (this.ec.curve.type === 'mont') {\n assert$3(key.x, 'Need x coordinate');\n } else if (this.ec.curve.type === 'short' ||\n this.ec.curve.type === 'edwards') {\n assert$3(key.x && key.y, 'Need both x and y coordinate');\n }\n this.pub = this.ec.curve.point(key.x, key.y);\n return;\n }\n this.pub = this.ec.curve.decodePoint(key, enc);\n};\n\n// ECDH\nKeyPair.prototype.derive = function derive(pub) {\n if(!pub.validate()) {\n assert$3(pub.validate(), 'public point not validated');\n }\n return pub.mul(this.priv).getX();\n};\n\n// ECDSA\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature) {\n return this.ec.verify(msg, signature, this);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n return '';\n};\n\n'use strict';\n\n\n\n\nvar assert$4 = utils_1$1.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature)\n return options;\n\n if (this._importDER(options, enc))\n return;\n\n assert$4(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined)\n this.recoveryParam = null;\n else\n this.recoveryParam = options.recoveryParam;\n}\nvar signature = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n if (!(initial & 0x80)) {\n return initial;\n }\n var octetLen = initial & 0xf;\n\n // Indefinite length or overflow\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n\n var val = 0;\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n }\n\n // Leading zeroes\n if (val <= 0x7f) {\n return false;\n }\n\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n if (i === 0) {\n return buf;\n }\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils_1$1.toArray(data, enc);\n var p = new Position();\n if (data[p.place++] !== 0x30) {\n return false;\n }\n var len = getLength(data, p);\n if (len === false) {\n return false;\n }\n if ((len + p.place) !== data.length) {\n return false;\n }\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var rlen = getLength(data, p);\n if (rlen === false) {\n return false;\n }\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var slen = getLength(data, p);\n if (slen === false) {\n return false;\n }\n if (data.length !== slen + p.place) {\n return false;\n }\n var s = data.slice(p.place, slen + p.place);\n if (r[0] === 0) {\n if (r[1] & 0x80) {\n r = r.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n if (s[0] === 0) {\n if (s[1] & 0x80) {\n s = s.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n while (--octets) {\n arr.push((len >>> (octets << 3)) & 0xff);\n }\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray();\n\n // Pad values\n if (r[0] & 0x80)\n r = [ 0 ].concat(r);\n // Pad values\n if (s[0] & 0x80)\n s = [ 0 ].concat(s);\n\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n var arr = [ 0x02 ];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [ 0x30 ];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils_1$1.encode(res, enc);\n};\n\n'use strict';\n\n\n\n\n\nvar rand = /*RicMoo:ethers:require(brorand)*/(function() { throw new Error('unsupported'); });\nvar assert$5 = utils_1$1.assert;\n\n\n\n\nfunction EC(options) {\n if (!(this instanceof EC))\n return new EC(options);\n\n // Shortcut `elliptic.ec(curve-name)`\n if (typeof options === 'string') {\n assert$5(Object.prototype.hasOwnProperty.call(curves_1, options),\n 'Unknown curve ' + options);\n\n options = curves_1[options];\n }\n\n // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n if (options instanceof curves_1.PresetCurve)\n options = { curve: options };\n\n this.curve = options.curve.curve;\n this.n = this.curve.n;\n this.nh = this.n.ushrn(1);\n this.g = this.curve.g;\n\n // Point on curve\n this.g = options.curve.g;\n this.g.precompute(options.curve.n.bitLength() + 1);\n\n // Hash for function for DRBG\n this.hash = options.hash || options.curve.hash;\n}\nvar ec = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n return new key(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n return key.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n return key.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n if (!options)\n options = {};\n\n // Instantiate Hmac_DRBG\n var drbg = new hmacDrbg({\n hash: this.hash,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n entropy: options.entropy || rand(this.hash.hmacStrength),\n entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n nonce: this.n.toArray(),\n });\n\n var bytes = this.n.byteLength();\n var ns2 = this.n.sub(new BN(2));\n for (;;) {\n var priv = new BN(drbg.generate(bytes));\n if (priv.cmp(ns2) > 0)\n continue;\n\n priv.iaddn(1);\n return this.keyFromPrivate(priv);\n }\n};\n\nEC.prototype._truncateToN = function _truncateToN(msg, truncOnly) {\n var delta = msg.byteLength() * 8 - this.n.bitLength();\n if (delta > 0)\n msg = msg.ushrn(delta);\n if (!truncOnly && msg.cmp(this.n) >= 0)\n return msg.sub(this.n);\n else\n return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n if (typeof enc === 'object') {\n options = enc;\n enc = null;\n }\n if (!options)\n options = {};\n\n key = this.keyFromPrivate(key, enc);\n msg = this._truncateToN(new BN(msg, 16));\n\n // Zero-extend key to provide enough entropy\n var bytes = this.n.byteLength();\n var bkey = key.getPrivate().toArray('be', bytes);\n\n // Zero-extend nonce to have the same byte size as N\n var nonce = msg.toArray('be', bytes);\n\n // Instantiate Hmac_DRBG\n var drbg = new hmacDrbg({\n hash: this.hash,\n entropy: bkey,\n nonce: nonce,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n });\n\n // Number of bytes to generate\n var ns1 = this.n.sub(new BN(1));\n\n for (var iter = 0; ; iter++) {\n var k = options.k ?\n options.k(iter) :\n new BN(drbg.generate(this.n.byteLength()));\n k = this._truncateToN(k, true);\n if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)\n continue;\n\n var kp = this.g.mul(k);\n if (kp.isInfinity())\n continue;\n\n var kpX = kp.getX();\n var r = kpX.umod(this.n);\n if (r.cmpn(0) === 0)\n continue;\n\n var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n s = s.umod(this.n);\n if (s.cmpn(0) === 0)\n continue;\n\n var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |\n (kpX.cmp(r) !== 0 ? 2 : 0);\n\n // Use complement of `s`, if it is > `n / 2`\n if (options.canonical && s.cmp(this.nh) > 0) {\n s = this.n.sub(s);\n recoveryParam ^= 1;\n }\n\n return new signature({ r: r, s: s, recoveryParam: recoveryParam });\n }\n};\n\nEC.prototype.verify = function verify(msg, signature$1, key, enc) {\n msg = this._truncateToN(new BN(msg, 16));\n key = this.keyFromPublic(key, enc);\n signature$1 = new signature(signature$1, 'hex');\n\n // Perform primitive values validation\n var r = signature$1.r;\n var s = signature$1.s;\n if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)\n return false;\n if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)\n return false;\n\n // Validate signature\n var sinv = s.invm(this.n);\n var u1 = sinv.mul(msg).umod(this.n);\n var u2 = sinv.mul(r).umod(this.n);\n var p;\n\n if (!this.curve._maxwellTrick) {\n p = this.g.mulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n return p.getX().umod(this.n).cmp(r) === 0;\n }\n\n // NOTE: Greg Maxwell's trick, inspired by:\n // https://git.io/vad3K\n\n p = this.g.jmulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n // Compare `p.x` of Jacobian point with `r`,\n // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n // inverse of `p.z^2`\n return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function(msg, signature$1, j, enc) {\n assert$5((3 & j) === j, 'The recovery param is more than two bits');\n signature$1 = new signature(signature$1, enc);\n\n var n = this.n;\n var e = new BN(msg);\n var r = signature$1.r;\n var s = signature$1.s;\n\n // A set LSB signifies that the y-coordinate is odd\n var isYOdd = j & 1;\n var isSecondKey = j >> 1;\n if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)\n throw new Error('Unable to find sencond key candinate');\n\n // 1.1. Let x = r + jn.\n if (isSecondKey)\n r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);\n else\n r = this.curve.pointFromX(r, isYOdd);\n\n var rInv = signature$1.r.invm(n);\n var s1 = n.sub(e).mul(rInv).umod(n);\n var s2 = s.mul(rInv).umod(n);\n\n // 1.6.1 Compute Q = r^-1 (sR - eG)\n // Q = r^-1 (sR + -eG)\n return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function(e, signature$1, Q, enc) {\n signature$1 = new signature(signature$1, enc);\n if (signature$1.recoveryParam !== null)\n return signature$1.recoveryParam;\n\n for (var i = 0; i < 4; i++) {\n var Qprime;\n try {\n Qprime = this.recoverPubKey(e, signature$1, i);\n } catch (e) {\n continue;\n }\n\n if (Qprime.eq(Q))\n return i;\n }\n throw new Error('Unable to find valid recovery factor');\n};\n\nvar elliptic_1 = createCommonjsModule(function (module, exports) {\n'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = /*RicMoo:ethers*/{ version: \"6.5.4\" }.version;\nelliptic.utils = utils_1$1;\nelliptic.rand = /*RicMoo:ethers:require(brorand)*/(function() { throw new Error('unsupported'); });\nelliptic.curve = curve_1;\nelliptic.curves = curves_1;\n\n// Protocols\nelliptic.ec = ec;\nelliptic.eddsa = /*RicMoo:ethers:require(./elliptic/eddsa)*/(null);\n});\n\nvar EC$1 = elliptic_1.ec;\n\nexport { EC$1 as EC };\n//# sourceMappingURL=elliptic.js.map\n","'use strict';\nconst strictUriEncode = require('strict-uri-encode');\nconst decodeComponent = require('decode-uri-component');\nconst splitOnFirst = require('split-on-first');\nconst filterObject = require('filter-obj');\n\nconst isNullOrUndefined = value => value === null || value === undefined;\n\nconst encodeFragmentIdentifier = Symbol('encodeFragmentIdentifier');\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[', index, ']'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('')\n\t\t\t\t];\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[]'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '[]=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'colon-list-separator':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), ':list='].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), ':list=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\tcase 'bracket-separator': {\n\t\t\tconst keyValueSep = options.arrayFormat === 'bracket-separator' ?\n\t\t\t\t'[]=' :\n\t\t\t\t'=';\n\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\t// Translate null to an empty string so that it doesn't serialize as 'null'\n\t\t\t\tvalue = value === null ? '' : value;\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\treturn [[encode(key, options), keyValueSep, encode(value, options)].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n\t\t\t};\n\t\t}\n\n\t\tdefault:\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, encode(key, options)];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'colon-list-separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(:list)$/.exec(key);\n\t\t\t\tkey = key.replace(/:list$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);\n\t\t\t\tconst isEncodedArray = (typeof value === 'string' && !isArray && decode(value, options).includes(options.arrayFormatSeparator));\n\t\t\t\tvalue = isEncodedArray ? decode(value, options) : value;\n\t\t\t\tconst newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(item => decode(item, options)) : value === null ? value : decode(value, options);\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\n\t\tcase 'bracket-separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = /(\\[\\])$/.test(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!isArray) {\n\t\t\t\t\taccumulator[key] = value ? decode(value, options) : value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst arrayValue = value === null ?\n\t\t\t\t\t[] :\n\t\t\t\t\tvalue.split(options.arrayFormatSeparator).map(item => decode(item, options));\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = arrayValue;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], arrayValue);\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction validateArrayFormatSeparator(value) {\n\tif (typeof value !== 'string' || value.length !== 1) {\n\t\tthrow new TypeError('arrayFormatSeparator must be single character string');\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction getHash(url) {\n\tlet hash = '';\n\tconst hashStart = url.indexOf('#');\n\tif (hashStart !== -1) {\n\t\thash = url.slice(hashStart);\n\t}\n\n\treturn hash;\n}\n\nfunction extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nfunction parseValue(value, options) {\n\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\tvalue = Number(value);\n\t} else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\tvalue = value.toLowerCase() === 'true';\n\t}\n\n\treturn value;\n}\n\nfunction parse(query, options) {\n\toptions = Object.assign({\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst ret = Object.create(null);\n\n\tif (typeof query !== 'string') {\n\t\treturn ret;\n\t}\n\n\tquery = query.trim().replace(/^[?#&]/, '');\n\n\tif (!query) {\n\t\treturn ret;\n\t}\n\n\tfor (const param of query.split('&')) {\n\t\tif (param === '') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet [key, value] = splitOnFirst(options.decode ? param.replace(/\\+/g, ' ') : param, '=');\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : ['comma', 'separator', 'bracket-separator'].includes(options.arrayFormat) ? value : decode(value, options);\n\t\tformatter(decode(key, options), value, ret);\n\t}\n\n\tfor (const key of Object.keys(ret)) {\n\t\tconst value = ret[key];\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tfor (const k of Object.keys(value)) {\n\t\t\t\tvalue[k] = parseValue(value[k], options);\n\t\t\t}\n\t\t} else {\n\t\t\tret[key] = parseValue(value, options);\n\t\t}\n\t}\n\n\tif (options.sort === false) {\n\t\treturn ret;\n\t}\n\n\treturn (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = ret[key];\n\t\tif (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(value);\n\t\t} else {\n\t\t\tresult[key] = value;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = (object, options) => {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ','\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst shouldFilter = key => (\n\t\t(options.skipNull && isNullOrUndefined(object[key])) ||\n\t\t(options.skipEmptyString && object[key] === '')\n\t);\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\tconst objectCopy = {};\n\n\tfor (const key of Object.keys(object)) {\n\t\tif (!shouldFilter(key)) {\n\t\t\tobjectCopy[key] = object[key];\n\t\t}\n\t}\n\n\tconst keys = Object.keys(objectCopy);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tconst value = object[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\tif (value.length === 0 && options.arrayFormat === 'bracket-separator') {\n\t\t\t\treturn encode(key, options) + '[]';\n\t\t\t}\n\n\t\t\treturn value\n\t\t\t\t.reduce(formatter(key), [])\n\t\t\t\t.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n};\n\nexports.parseUrl = (url, options) => {\n\toptions = Object.assign({\n\t\tdecode: true\n\t}, options);\n\n\tconst [url_, hash] = splitOnFirst(url, '#');\n\n\treturn Object.assign(\n\t\t{\n\t\t\turl: url_.split('?')[0] || '',\n\t\t\tquery: parse(extract(url), options)\n\t\t},\n\t\toptions && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: decode(hash, options)} : {}\n\t);\n};\n\nexports.stringifyUrl = (object, options) => {\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\t[encodeFragmentIdentifier]: true\n\t}, options);\n\n\tconst url = removeHash(object.url).split('?')[0] || '';\n\tconst queryFromUrl = exports.extract(object.url);\n\tconst parsedQueryFromUrl = exports.parse(queryFromUrl, {sort: false});\n\n\tconst query = Object.assign(parsedQueryFromUrl, object.query);\n\tlet queryString = exports.stringify(query, options);\n\tif (queryString) {\n\t\tqueryString = `?${queryString}`;\n\t}\n\n\tlet hash = getHash(object.url);\n\tif (object.fragmentIdentifier) {\n\t\thash = `#${options[encodeFragmentIdentifier] ? encode(object.fragmentIdentifier, options) : object.fragmentIdentifier}`;\n\t}\n\n\treturn `${url}${queryString}${hash}`;\n};\n\nexports.pick = (input, filter, options) => {\n\toptions = Object.assign({\n\t\tparseFragmentIdentifier: true,\n\t\t[encodeFragmentIdentifier]: false\n\t}, options);\n\n\tconst {url, query, fragmentIdentifier} = exports.parseUrl(input, options);\n\treturn exports.stringifyUrl({\n\t\turl,\n\t\tquery: filterObject(query, filter),\n\t\tfragmentIdentifier\n\t}, options);\n};\n\nexports.exclude = (input, filter, options) => {\n\tconst exclusionFilter = Array.isArray(filter) ? key => !filter.includes(key) : (key, value) => !filter(key, value);\n\n\treturn exports.pick(input, exclusionFilter, options);\n};\n","export const version = \"signing-key/5.7.0\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nimport { EC } from \"./elliptic\";\nimport { arrayify, hexDataLength, hexlify, hexZeroPad, splitSignature } from \"@ethersproject/bytes\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nlet _curve = null;\nfunction getCurve() {\n if (!_curve) {\n _curve = new EC(\"secp256k1\");\n }\n return _curve;\n}\nexport class SigningKey {\n constructor(privateKey) {\n defineReadOnly(this, \"curve\", \"secp256k1\");\n defineReadOnly(this, \"privateKey\", hexlify(privateKey));\n if (hexDataLength(this.privateKey) !== 32) {\n logger.throwArgumentError(\"invalid private key\", \"privateKey\", \"[[ REDACTED ]]\");\n }\n const keyPair = getCurve().keyFromPrivate(arrayify(this.privateKey));\n defineReadOnly(this, \"publicKey\", \"0x\" + keyPair.getPublic(false, \"hex\"));\n defineReadOnly(this, \"compressedPublicKey\", \"0x\" + keyPair.getPublic(true, \"hex\"));\n defineReadOnly(this, \"_isSigningKey\", true);\n }\n _addPoint(other) {\n const p0 = getCurve().keyFromPublic(arrayify(this.publicKey));\n const p1 = getCurve().keyFromPublic(arrayify(other));\n return \"0x\" + p0.pub.add(p1.pub).encodeCompressed(\"hex\");\n }\n signDigest(digest) {\n const keyPair = getCurve().keyFromPrivate(arrayify(this.privateKey));\n const digestBytes = arrayify(digest);\n if (digestBytes.length !== 32) {\n logger.throwArgumentError(\"bad digest length\", \"digest\", digest);\n }\n const signature = keyPair.sign(digestBytes, { canonical: true });\n return splitSignature({\n recoveryParam: signature.recoveryParam,\n r: hexZeroPad(\"0x\" + signature.r.toString(16), 32),\n s: hexZeroPad(\"0x\" + signature.s.toString(16), 32),\n });\n }\n computeSharedSecret(otherKey) {\n const keyPair = getCurve().keyFromPrivate(arrayify(this.privateKey));\n const otherKeyPair = getCurve().keyFromPublic(arrayify(computePublicKey(otherKey)));\n return hexZeroPad(\"0x\" + keyPair.derive(otherKeyPair.getPublic()).toString(16), 32);\n }\n static isSigningKey(value) {\n return !!(value && value._isSigningKey);\n }\n}\nexport function recoverPublicKey(digest, signature) {\n const sig = splitSignature(signature);\n const rs = { r: arrayify(sig.r), s: arrayify(sig.s) };\n return \"0x\" + getCurve().recoverPubKey(arrayify(digest), rs, sig.recoveryParam).encode(\"hex\", false);\n}\nexport function computePublicKey(key, compressed) {\n const bytes = arrayify(key);\n if (bytes.length === 32) {\n const signingKey = new SigningKey(bytes);\n if (compressed) {\n return \"0x\" + getCurve().keyFromPrivate(bytes).getPublic(true, \"hex\");\n }\n return signingKey.publicKey;\n }\n else if (bytes.length === 33) {\n if (compressed) {\n return hexlify(bytes);\n }\n return \"0x\" + getCurve().keyFromPublic(bytes).getPublic(false, \"hex\");\n }\n else if (bytes.length === 65) {\n if (!compressed) {\n return hexlify(bytes);\n }\n return \"0x\" + getCurve().keyFromPublic(bytes).getPublic(true, \"hex\");\n }\n return logger.throwArgumentError(\"invalid public or private key\", \"key\", \"[REDACTED]\");\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nimport { getAddress } from \"@ethersproject/address\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { arrayify, hexConcat, hexDataLength, hexDataSlice, hexlify, hexZeroPad, isBytesLike, splitSignature, stripZeros, } from \"@ethersproject/bytes\";\nimport { Zero } from \"@ethersproject/constants\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { checkProperties } from \"@ethersproject/properties\";\nimport * as RLP from \"@ethersproject/rlp\";\nimport { computePublicKey, recoverPublicKey } from \"@ethersproject/signing-key\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nexport var TransactionTypes;\n(function (TransactionTypes) {\n TransactionTypes[TransactionTypes[\"legacy\"] = 0] = \"legacy\";\n TransactionTypes[TransactionTypes[\"eip2930\"] = 1] = \"eip2930\";\n TransactionTypes[TransactionTypes[\"eip1559\"] = 2] = \"eip1559\";\n})(TransactionTypes || (TransactionTypes = {}));\n;\n///////////////////////////////\nfunction handleAddress(value) {\n if (value === \"0x\") {\n return null;\n }\n return getAddress(value);\n}\nfunction handleNumber(value) {\n if (value === \"0x\") {\n return Zero;\n }\n return BigNumber.from(value);\n}\n// Legacy Transaction Fields\nconst transactionFields = [\n { name: \"nonce\", maxLength: 32, numeric: true },\n { name: \"gasPrice\", maxLength: 32, numeric: true },\n { name: \"gasLimit\", maxLength: 32, numeric: true },\n { name: \"to\", length: 20 },\n { name: \"value\", maxLength: 32, numeric: true },\n { name: \"data\" },\n];\nconst allowedTransactionKeys = {\n chainId: true, data: true, gasLimit: true, gasPrice: true, nonce: true, to: true, type: true, value: true\n};\nexport function computeAddress(key) {\n const publicKey = computePublicKey(key);\n return getAddress(hexDataSlice(keccak256(hexDataSlice(publicKey, 1)), 12));\n}\nexport function recoverAddress(digest, signature) {\n return computeAddress(recoverPublicKey(arrayify(digest), signature));\n}\nfunction formatNumber(value, name) {\n const result = stripZeros(BigNumber.from(value).toHexString());\n if (result.length > 32) {\n logger.throwArgumentError(\"invalid length for \" + name, (\"transaction:\" + name), value);\n }\n return result;\n}\nfunction accessSetify(addr, storageKeys) {\n return {\n address: getAddress(addr),\n storageKeys: (storageKeys || []).map((storageKey, index) => {\n if (hexDataLength(storageKey) !== 32) {\n logger.throwArgumentError(\"invalid access list storageKey\", `accessList[${addr}:${index}]`, storageKey);\n }\n return storageKey.toLowerCase();\n })\n };\n}\nexport function accessListify(value) {\n if (Array.isArray(value)) {\n return value.map((set, index) => {\n if (Array.isArray(set)) {\n if (set.length > 2) {\n logger.throwArgumentError(\"access list expected to be [ address, storageKeys[] ]\", `value[${index}]`, set);\n }\n return accessSetify(set[0], set[1]);\n }\n return accessSetify(set.address, set.storageKeys);\n });\n }\n const result = Object.keys(value).map((addr) => {\n const storageKeys = value[addr].reduce((accum, storageKey) => {\n accum[storageKey] = true;\n return accum;\n }, {});\n return accessSetify(addr, Object.keys(storageKeys).sort());\n });\n result.sort((a, b) => (a.address.localeCompare(b.address)));\n return result;\n}\nfunction formatAccessList(value) {\n return accessListify(value).map((set) => [set.address, set.storageKeys]);\n}\nfunction _serializeEip1559(transaction, signature) {\n // If there is an explicit gasPrice, make sure it matches the\n // EIP-1559 fees; otherwise they may not understand what they\n // think they are setting in terms of fee.\n if (transaction.gasPrice != null) {\n const gasPrice = BigNumber.from(transaction.gasPrice);\n const maxFeePerGas = BigNumber.from(transaction.maxFeePerGas || 0);\n if (!gasPrice.eq(maxFeePerGas)) {\n logger.throwArgumentError(\"mismatch EIP-1559 gasPrice != maxFeePerGas\", \"tx\", {\n gasPrice, maxFeePerGas\n });\n }\n }\n const fields = [\n formatNumber(transaction.chainId || 0, \"chainId\"),\n formatNumber(transaction.nonce || 0, \"nonce\"),\n formatNumber(transaction.maxPriorityFeePerGas || 0, \"maxPriorityFeePerGas\"),\n formatNumber(transaction.maxFeePerGas || 0, \"maxFeePerGas\"),\n formatNumber(transaction.gasLimit || 0, \"gasLimit\"),\n ((transaction.to != null) ? getAddress(transaction.to) : \"0x\"),\n formatNumber(transaction.value || 0, \"value\"),\n (transaction.data || \"0x\"),\n (formatAccessList(transaction.accessList || []))\n ];\n if (signature) {\n const sig = splitSignature(signature);\n fields.push(formatNumber(sig.recoveryParam, \"recoveryParam\"));\n fields.push(stripZeros(sig.r));\n fields.push(stripZeros(sig.s));\n }\n return hexConcat([\"0x02\", RLP.encode(fields)]);\n}\nfunction _serializeEip2930(transaction, signature) {\n const fields = [\n formatNumber(transaction.chainId || 0, \"chainId\"),\n formatNumber(transaction.nonce || 0, \"nonce\"),\n formatNumber(transaction.gasPrice || 0, \"gasPrice\"),\n formatNumber(transaction.gasLimit || 0, \"gasLimit\"),\n ((transaction.to != null) ? getAddress(transaction.to) : \"0x\"),\n formatNumber(transaction.value || 0, \"value\"),\n (transaction.data || \"0x\"),\n (formatAccessList(transaction.accessList || []))\n ];\n if (signature) {\n const sig = splitSignature(signature);\n fields.push(formatNumber(sig.recoveryParam, \"recoveryParam\"));\n fields.push(stripZeros(sig.r));\n fields.push(stripZeros(sig.s));\n }\n return hexConcat([\"0x01\", RLP.encode(fields)]);\n}\n// Legacy Transactions and EIP-155\nfunction _serialize(transaction, signature) {\n checkProperties(transaction, allowedTransactionKeys);\n const raw = [];\n transactionFields.forEach(function (fieldInfo) {\n let value = transaction[fieldInfo.name] || ([]);\n const options = {};\n if (fieldInfo.numeric) {\n options.hexPad = \"left\";\n }\n value = arrayify(hexlify(value, options));\n // Fixed-width field\n if (fieldInfo.length && value.length !== fieldInfo.length && value.length > 0) {\n logger.throwArgumentError(\"invalid length for \" + fieldInfo.name, (\"transaction:\" + fieldInfo.name), value);\n }\n // Variable-width (with a maximum)\n if (fieldInfo.maxLength) {\n value = stripZeros(value);\n if (value.length > fieldInfo.maxLength) {\n logger.throwArgumentError(\"invalid length for \" + fieldInfo.name, (\"transaction:\" + fieldInfo.name), value);\n }\n }\n raw.push(hexlify(value));\n });\n let chainId = 0;\n if (transaction.chainId != null) {\n // A chainId was provided; if non-zero we'll use EIP-155\n chainId = transaction.chainId;\n if (typeof (chainId) !== \"number\") {\n logger.throwArgumentError(\"invalid transaction.chainId\", \"transaction\", transaction);\n }\n }\n else if (signature && !isBytesLike(signature) && signature.v > 28) {\n // No chainId provided, but the signature is signing with EIP-155; derive chainId\n chainId = Math.floor((signature.v - 35) / 2);\n }\n // We have an EIP-155 transaction (chainId was specified and non-zero)\n if (chainId !== 0) {\n raw.push(hexlify(chainId)); // @TODO: hexValue?\n raw.push(\"0x\");\n raw.push(\"0x\");\n }\n // Requesting an unsigned transaction\n if (!signature) {\n return RLP.encode(raw);\n }\n // The splitSignature will ensure the transaction has a recoveryParam in the\n // case that the signTransaction function only adds a v.\n const sig = splitSignature(signature);\n // We pushed a chainId and null r, s on for hashing only; remove those\n let v = 27 + sig.recoveryParam;\n if (chainId !== 0) {\n raw.pop();\n raw.pop();\n raw.pop();\n v += chainId * 2 + 8;\n // If an EIP-155 v (directly or indirectly; maybe _vs) was provided, check it!\n if (sig.v > 28 && sig.v !== v) {\n logger.throwArgumentError(\"transaction.chainId/signature.v mismatch\", \"signature\", signature);\n }\n }\n else if (sig.v !== v) {\n logger.throwArgumentError(\"transaction.chainId/signature.v mismatch\", \"signature\", signature);\n }\n raw.push(hexlify(v));\n raw.push(stripZeros(arrayify(sig.r)));\n raw.push(stripZeros(arrayify(sig.s)));\n return RLP.encode(raw);\n}\nexport function serialize(transaction, signature) {\n // Legacy and EIP-155 Transactions\n if (transaction.type == null || transaction.type === 0) {\n if (transaction.accessList != null) {\n logger.throwArgumentError(\"untyped transactions do not support accessList; include type: 1\", \"transaction\", transaction);\n }\n return _serialize(transaction, signature);\n }\n // Typed Transactions (EIP-2718)\n switch (transaction.type) {\n case 1:\n return _serializeEip2930(transaction, signature);\n case 2:\n return _serializeEip1559(transaction, signature);\n default:\n break;\n }\n return logger.throwError(`unsupported transaction type: ${transaction.type}`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"serializeTransaction\",\n transactionType: transaction.type\n });\n}\nfunction _parseEipSignature(tx, fields, serialize) {\n try {\n const recid = handleNumber(fields[0]).toNumber();\n if (recid !== 0 && recid !== 1) {\n throw new Error(\"bad recid\");\n }\n tx.v = recid;\n }\n catch (error) {\n logger.throwArgumentError(\"invalid v for transaction type: 1\", \"v\", fields[0]);\n }\n tx.r = hexZeroPad(fields[1], 32);\n tx.s = hexZeroPad(fields[2], 32);\n try {\n const digest = keccak256(serialize(tx));\n tx.from = recoverAddress(digest, { r: tx.r, s: tx.s, recoveryParam: tx.v });\n }\n catch (error) { }\n}\nfunction _parseEip1559(payload) {\n const transaction = RLP.decode(payload.slice(1));\n if (transaction.length !== 9 && transaction.length !== 12) {\n logger.throwArgumentError(\"invalid component count for transaction type: 2\", \"payload\", hexlify(payload));\n }\n const maxPriorityFeePerGas = handleNumber(transaction[2]);\n const maxFeePerGas = handleNumber(transaction[3]);\n const tx = {\n type: 2,\n chainId: handleNumber(transaction[0]).toNumber(),\n nonce: handleNumber(transaction[1]).toNumber(),\n maxPriorityFeePerGas: maxPriorityFeePerGas,\n maxFeePerGas: maxFeePerGas,\n gasPrice: null,\n gasLimit: handleNumber(transaction[4]),\n to: handleAddress(transaction[5]),\n value: handleNumber(transaction[6]),\n data: transaction[7],\n accessList: accessListify(transaction[8]),\n };\n // Unsigned EIP-1559 Transaction\n if (transaction.length === 9) {\n return tx;\n }\n tx.hash = keccak256(payload);\n _parseEipSignature(tx, transaction.slice(9), _serializeEip1559);\n return tx;\n}\nfunction _parseEip2930(payload) {\n const transaction = RLP.decode(payload.slice(1));\n if (transaction.length !== 8 && transaction.length !== 11) {\n logger.throwArgumentError(\"invalid component count for transaction type: 1\", \"payload\", hexlify(payload));\n }\n const tx = {\n type: 1,\n chainId: handleNumber(transaction[0]).toNumber(),\n nonce: handleNumber(transaction[1]).toNumber(),\n gasPrice: handleNumber(transaction[2]),\n gasLimit: handleNumber(transaction[3]),\n to: handleAddress(transaction[4]),\n value: handleNumber(transaction[5]),\n data: transaction[6],\n accessList: accessListify(transaction[7])\n };\n // Unsigned EIP-2930 Transaction\n if (transaction.length === 8) {\n return tx;\n }\n tx.hash = keccak256(payload);\n _parseEipSignature(tx, transaction.slice(8), _serializeEip2930);\n return tx;\n}\n// Legacy Transactions and EIP-155\nfunction _parse(rawTransaction) {\n const transaction = RLP.decode(rawTransaction);\n if (transaction.length !== 9 && transaction.length !== 6) {\n logger.throwArgumentError(\"invalid raw transaction\", \"rawTransaction\", rawTransaction);\n }\n const tx = {\n nonce: handleNumber(transaction[0]).toNumber(),\n gasPrice: handleNumber(transaction[1]),\n gasLimit: handleNumber(transaction[2]),\n to: handleAddress(transaction[3]),\n value: handleNumber(transaction[4]),\n data: transaction[5],\n chainId: 0\n };\n // Legacy unsigned transaction\n if (transaction.length === 6) {\n return tx;\n }\n try {\n tx.v = BigNumber.from(transaction[6]).toNumber();\n }\n catch (error) {\n // @TODO: What makes snese to do? The v is too big\n return tx;\n }\n tx.r = hexZeroPad(transaction[7], 32);\n tx.s = hexZeroPad(transaction[8], 32);\n if (BigNumber.from(tx.r).isZero() && BigNumber.from(tx.s).isZero()) {\n // EIP-155 unsigned transaction\n tx.chainId = tx.v;\n tx.v = 0;\n }\n else {\n // Signed Transaction\n tx.chainId = Math.floor((tx.v - 35) / 2);\n if (tx.chainId < 0) {\n tx.chainId = 0;\n }\n let recoveryParam = tx.v - 27;\n const raw = transaction.slice(0, 6);\n if (tx.chainId !== 0) {\n raw.push(hexlify(tx.chainId));\n raw.push(\"0x\");\n raw.push(\"0x\");\n recoveryParam -= tx.chainId * 2 + 8;\n }\n const digest = keccak256(RLP.encode(raw));\n try {\n tx.from = recoverAddress(digest, { r: hexlify(tx.r), s: hexlify(tx.s), recoveryParam: recoveryParam });\n }\n catch (error) { }\n tx.hash = keccak256(rawTransaction);\n }\n tx.type = null;\n return tx;\n}\nexport function parse(rawTransaction) {\n const payload = arrayify(rawTransaction);\n // Legacy and EIP-155 Transactions\n if (payload[0] > 0x7f) {\n return _parse(payload);\n }\n // Typed Transaction (EIP-2718)\n switch (payload[0]) {\n case 1:\n return _parseEip2930(payload);\n case 2:\n return _parseEip1559(payload);\n default:\n break;\n }\n return logger.throwError(`unsupported transaction type: ${payload[0]}`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"parseTransaction\",\n transactionType: payload[0]\n });\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Package chacha implements ChaCha stream cipher.\n */\nvar binary_1 = require(\"@stablelib/binary\");\nvar wipe_1 = require(\"@stablelib/wipe\");\n// Number of ChaCha rounds (ChaCha20).\nvar ROUNDS = 20;\n// Applies the ChaCha core function to 16-byte input,\n// 32-byte key key, and puts the result into 64-byte array out.\nfunction core(out, input, key) {\n var j0 = 0x61707865; // \"expa\" -- ChaCha's \"sigma\" constant\n var j1 = 0x3320646E; // \"nd 3\" for 32-byte keys\n var j2 = 0x79622D32; // \"2-by\"\n var j3 = 0x6B206574; // \"te k\"\n var j4 = (key[3] << 24) | (key[2] << 16) | (key[1] << 8) | key[0];\n var j5 = (key[7] << 24) | (key[6] << 16) | (key[5] << 8) | key[4];\n var j6 = (key[11] << 24) | (key[10] << 16) | (key[9] << 8) | key[8];\n var j7 = (key[15] << 24) | (key[14] << 16) | (key[13] << 8) | key[12];\n var j8 = (key[19] << 24) | (key[18] << 16) | (key[17] << 8) | key[16];\n var j9 = (key[23] << 24) | (key[22] << 16) | (key[21] << 8) | key[20];\n var j10 = (key[27] << 24) | (key[26] << 16) | (key[25] << 8) | key[24];\n var j11 = (key[31] << 24) | (key[30] << 16) | (key[29] << 8) | key[28];\n var j12 = (input[3] << 24) | (input[2] << 16) | (input[1] << 8) | input[0];\n var j13 = (input[7] << 24) | (input[6] << 16) | (input[5] << 8) | input[4];\n var j14 = (input[11] << 24) | (input[10] << 16) | (input[9] << 8) | input[8];\n var j15 = (input[15] << 24) | (input[14] << 16) | (input[13] << 8) | input[12];\n var x0 = j0;\n var x1 = j1;\n var x2 = j2;\n var x3 = j3;\n var x4 = j4;\n var x5 = j5;\n var x6 = j6;\n var x7 = j7;\n var x8 = j8;\n var x9 = j9;\n var x10 = j10;\n var x11 = j11;\n var x12 = j12;\n var x13 = j13;\n var x14 = j14;\n var x15 = j15;\n for (var i = 0; i < ROUNDS; i += 2) {\n x0 = x0 + x4 | 0;\n x12 ^= x0;\n x12 = x12 >>> (32 - 16) | x12 << 16;\n x8 = x8 + x12 | 0;\n x4 ^= x8;\n x4 = x4 >>> (32 - 12) | x4 << 12;\n x1 = x1 + x5 | 0;\n x13 ^= x1;\n x13 = x13 >>> (32 - 16) | x13 << 16;\n x9 = x9 + x13 | 0;\n x5 ^= x9;\n x5 = x5 >>> (32 - 12) | x5 << 12;\n x2 = x2 + x6 | 0;\n x14 ^= x2;\n x14 = x14 >>> (32 - 16) | x14 << 16;\n x10 = x10 + x14 | 0;\n x6 ^= x10;\n x6 = x6 >>> (32 - 12) | x6 << 12;\n x3 = x3 + x7 | 0;\n x15 ^= x3;\n x15 = x15 >>> (32 - 16) | x15 << 16;\n x11 = x11 + x15 | 0;\n x7 ^= x11;\n x7 = x7 >>> (32 - 12) | x7 << 12;\n x2 = x2 + x6 | 0;\n x14 ^= x2;\n x14 = x14 >>> (32 - 8) | x14 << 8;\n x10 = x10 + x14 | 0;\n x6 ^= x10;\n x6 = x6 >>> (32 - 7) | x6 << 7;\n x3 = x3 + x7 | 0;\n x15 ^= x3;\n x15 = x15 >>> (32 - 8) | x15 << 8;\n x11 = x11 + x15 | 0;\n x7 ^= x11;\n x7 = x7 >>> (32 - 7) | x7 << 7;\n x1 = x1 + x5 | 0;\n x13 ^= x1;\n x13 = x13 >>> (32 - 8) | x13 << 8;\n x9 = x9 + x13 | 0;\n x5 ^= x9;\n x5 = x5 >>> (32 - 7) | x5 << 7;\n x0 = x0 + x4 | 0;\n x12 ^= x0;\n x12 = x12 >>> (32 - 8) | x12 << 8;\n x8 = x8 + x12 | 0;\n x4 ^= x8;\n x4 = x4 >>> (32 - 7) | x4 << 7;\n x0 = x0 + x5 | 0;\n x15 ^= x0;\n x15 = x15 >>> (32 - 16) | x15 << 16;\n x10 = x10 + x15 | 0;\n x5 ^= x10;\n x5 = x5 >>> (32 - 12) | x5 << 12;\n x1 = x1 + x6 | 0;\n x12 ^= x1;\n x12 = x12 >>> (32 - 16) | x12 << 16;\n x11 = x11 + x12 | 0;\n x6 ^= x11;\n x6 = x6 >>> (32 - 12) | x6 << 12;\n x2 = x2 + x7 | 0;\n x13 ^= x2;\n x13 = x13 >>> (32 - 16) | x13 << 16;\n x8 = x8 + x13 | 0;\n x7 ^= x8;\n x7 = x7 >>> (32 - 12) | x7 << 12;\n x3 = x3 + x4 | 0;\n x14 ^= x3;\n x14 = x14 >>> (32 - 16) | x14 << 16;\n x9 = x9 + x14 | 0;\n x4 ^= x9;\n x4 = x4 >>> (32 - 12) | x4 << 12;\n x2 = x2 + x7 | 0;\n x13 ^= x2;\n x13 = x13 >>> (32 - 8) | x13 << 8;\n x8 = x8 + x13 | 0;\n x7 ^= x8;\n x7 = x7 >>> (32 - 7) | x7 << 7;\n x3 = x3 + x4 | 0;\n x14 ^= x3;\n x14 = x14 >>> (32 - 8) | x14 << 8;\n x9 = x9 + x14 | 0;\n x4 ^= x9;\n x4 = x4 >>> (32 - 7) | x4 << 7;\n x1 = x1 + x6 | 0;\n x12 ^= x1;\n x12 = x12 >>> (32 - 8) | x12 << 8;\n x11 = x11 + x12 | 0;\n x6 ^= x11;\n x6 = x6 >>> (32 - 7) | x6 << 7;\n x0 = x0 + x5 | 0;\n x15 ^= x0;\n x15 = x15 >>> (32 - 8) | x15 << 8;\n x10 = x10 + x15 | 0;\n x5 ^= x10;\n x5 = x5 >>> (32 - 7) | x5 << 7;\n }\n binary_1.writeUint32LE(x0 + j0 | 0, out, 0);\n binary_1.writeUint32LE(x1 + j1 | 0, out, 4);\n binary_1.writeUint32LE(x2 + j2 | 0, out, 8);\n binary_1.writeUint32LE(x3 + j3 | 0, out, 12);\n binary_1.writeUint32LE(x4 + j4 | 0, out, 16);\n binary_1.writeUint32LE(x5 + j5 | 0, out, 20);\n binary_1.writeUint32LE(x6 + j6 | 0, out, 24);\n binary_1.writeUint32LE(x7 + j7 | 0, out, 28);\n binary_1.writeUint32LE(x8 + j8 | 0, out, 32);\n binary_1.writeUint32LE(x9 + j9 | 0, out, 36);\n binary_1.writeUint32LE(x10 + j10 | 0, out, 40);\n binary_1.writeUint32LE(x11 + j11 | 0, out, 44);\n binary_1.writeUint32LE(x12 + j12 | 0, out, 48);\n binary_1.writeUint32LE(x13 + j13 | 0, out, 52);\n binary_1.writeUint32LE(x14 + j14 | 0, out, 56);\n binary_1.writeUint32LE(x15 + j15 | 0, out, 60);\n}\n/**\n * Encrypt src with ChaCha20 stream generated for the given 32-byte key and\n * 8-byte (as in original implementation) or 12-byte (as in RFC7539) nonce and\n * write the result into dst and return it.\n *\n * dst and src may be the same, but otherwise must not overlap.\n *\n * If nonce is 12 bytes, users should not encrypt more than 256 GiB with the\n * same key and nonce, otherwise the stream will repeat. The function will\n * throw error if counter overflows to prevent this.\n *\n * If nonce is 8 bytes, the output is practically unlimited (2^70 bytes, which\n * is more than a million petabytes). However, it is not recommended to\n * generate 8-byte nonces randomly, as the chance of collision is high.\n *\n * Never use the same key and nonce to encrypt more than one message.\n *\n * If nonceInplaceCounterLength is not 0, the nonce is assumed to be a 16-byte\n * array with stream counter in first nonceInplaceCounterLength bytes and nonce\n * in the last remaining bytes. The counter will be incremented inplace for\n * each ChaCha block. This is useful if you need to encrypt one stream of data\n * in chunks.\n */\nfunction streamXOR(key, nonce, src, dst, nonceInplaceCounterLength) {\n if (nonceInplaceCounterLength === void 0) { nonceInplaceCounterLength = 0; }\n // We only support 256-bit keys.\n if (key.length !== 32) {\n throw new Error(\"ChaCha: key size must be 32 bytes\");\n }\n if (dst.length < src.length) {\n throw new Error(\"ChaCha: destination is shorter than source\");\n }\n var nc;\n var counterLength;\n if (nonceInplaceCounterLength === 0) {\n if (nonce.length !== 8 && nonce.length !== 12) {\n throw new Error(\"ChaCha nonce must be 8 or 12 bytes\");\n }\n nc = new Uint8Array(16);\n // First counterLength bytes of nc are counter, starting with zero.\n counterLength = nc.length - nonce.length;\n // Last bytes of nc after counterLength are nonce, set them.\n nc.set(nonce, counterLength);\n }\n else {\n if (nonce.length !== 16) {\n throw new Error(\"ChaCha nonce with counter must be 16 bytes\");\n }\n // This will update passed nonce with counter inplace.\n nc = nonce;\n counterLength = nonceInplaceCounterLength;\n }\n // Allocate temporary space for ChaCha block.\n var block = new Uint8Array(64);\n for (var i = 0; i < src.length; i += 64) {\n // Generate a block.\n core(block, nc, key);\n // XOR block bytes with src into dst.\n for (var j = i; j < i + 64 && j < src.length; j++) {\n dst[j] = src[j] ^ block[j - i];\n }\n // Increment counter.\n incrementCounter(nc, 0, counterLength);\n }\n // Cleanup temporary space.\n wipe_1.wipe(block);\n if (nonceInplaceCounterLength === 0) {\n // Cleanup counter.\n wipe_1.wipe(nc);\n }\n return dst;\n}\nexports.streamXOR = streamXOR;\n/**\n * Generate ChaCha20 stream for the given 32-byte key and 8-byte or 12-byte\n * nonce and write it into dst and return it.\n *\n * Never use the same key and nonce to generate more than one stream.\n *\n * If nonceInplaceCounterLength is not 0, it behaves the same with respect to\n * the nonce as described in the streamXOR documentation.\n *\n * stream is like streamXOR with all-zero src.\n */\nfunction stream(key, nonce, dst, nonceInplaceCounterLength) {\n if (nonceInplaceCounterLength === void 0) { nonceInplaceCounterLength = 0; }\n wipe_1.wipe(dst);\n return streamXOR(key, nonce, dst, dst, nonceInplaceCounterLength);\n}\nexports.stream = stream;\nfunction incrementCounter(counter, pos, len) {\n var carry = 1;\n while (len--) {\n carry = carry + (counter[pos] & 0xff) | 0;\n counter[pos] = carry & 0xff;\n carry >>>= 8;\n pos++;\n }\n if (carry > 0) {\n throw new Error(\"ChaCha: counter overflow\");\n }\n}\n//# sourceMappingURL=chacha.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Package constant-time provides functions for performing algorithmically constant-time operations.\n */\n/**\n * NOTE! Due to the inability to guarantee real constant time evaluation of\n * anything in JavaScript VM, this is module is the best effort.\n */\n/**\n * Returns resultIfOne if subject is 1, or resultIfZero if subject is 0.\n *\n * Supports only 32-bit integers, so resultIfOne or resultIfZero are not\n * integers, they'll be converted to them with bitwise operations.\n */\nfunction select(subject, resultIfOne, resultIfZero) {\n return (~(subject - 1) & resultIfOne) | ((subject - 1) & resultIfZero);\n}\nexports.select = select;\n/**\n * Returns 1 if a <= b, or 0 if not.\n * Arguments must be positive 32-bit integers less than or equal to 2^31 - 1.\n */\nfunction lessOrEqual(a, b) {\n return (((a | 0) - (b | 0) - 1) >>> 31) & 1;\n}\nexports.lessOrEqual = lessOrEqual;\n/**\n * Returns 1 if a and b are of equal length and their contents\n * are equal, or 0 otherwise.\n *\n * Note that unlike in equal(), zero-length inputs are considered\n * the same, so this function will return 1.\n */\nfunction compare(a, b) {\n if (a.length !== b.length) {\n return 0;\n }\n var result = 0;\n for (var i = 0; i < a.length; i++) {\n result |= a[i] ^ b[i];\n }\n return (1 & ((result - 1) >>> 8));\n}\nexports.compare = compare;\n/**\n * Returns true if a and b are of equal non-zero length,\n * and their contents are equal, or false otherwise.\n *\n * Note that unlike in compare() zero-length inputs are considered\n * _not_ equal, so this function will return false.\n */\nfunction equal(a, b) {\n if (a.length === 0 || b.length === 0) {\n return false;\n }\n return compare(a, b) !== 0;\n}\nexports.equal = equal;\n//# sourceMappingURL=constant-time.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Package poly1305 implements Poly1305 one-time message authentication algorithm.\n */\nvar constant_time_1 = require(\"@stablelib/constant-time\");\nvar wipe_1 = require(\"@stablelib/wipe\");\nexports.DIGEST_LENGTH = 16;\n// Port of Andrew Moon's Poly1305-donna-16. Public domain.\n// https://github.com/floodyberry/poly1305-donna\n/**\n * Poly1305 computes 16-byte authenticator of message using\n * a one-time 32-byte key.\n *\n * Important: key should be used for only one message,\n * it should never repeat.\n */\nvar Poly1305 = /** @class */ (function () {\n function Poly1305(key) {\n this.digestLength = exports.DIGEST_LENGTH;\n this._buffer = new Uint8Array(16);\n this._r = new Uint16Array(10);\n this._h = new Uint16Array(10);\n this._pad = new Uint16Array(8);\n this._leftover = 0;\n this._fin = 0;\n this._finished = false;\n var t0 = key[0] | key[1] << 8;\n this._r[0] = (t0) & 0x1fff;\n var t1 = key[2] | key[3] << 8;\n this._r[1] = ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n var t2 = key[4] | key[5] << 8;\n this._r[2] = ((t1 >>> 10) | (t2 << 6)) & 0x1f03;\n var t3 = key[6] | key[7] << 8;\n this._r[3] = ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n var t4 = key[8] | key[9] << 8;\n this._r[4] = ((t3 >>> 4) | (t4 << 12)) & 0x00ff;\n this._r[5] = ((t4 >>> 1)) & 0x1ffe;\n var t5 = key[10] | key[11] << 8;\n this._r[6] = ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n var t6 = key[12] | key[13] << 8;\n this._r[7] = ((t5 >>> 11) | (t6 << 5)) & 0x1f81;\n var t7 = key[14] | key[15] << 8;\n this._r[8] = ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n this._r[9] = ((t7 >>> 5)) & 0x007f;\n this._pad[0] = key[16] | key[17] << 8;\n this._pad[1] = key[18] | key[19] << 8;\n this._pad[2] = key[20] | key[21] << 8;\n this._pad[3] = key[22] | key[23] << 8;\n this._pad[4] = key[24] | key[25] << 8;\n this._pad[5] = key[26] | key[27] << 8;\n this._pad[6] = key[28] | key[29] << 8;\n this._pad[7] = key[30] | key[31] << 8;\n }\n Poly1305.prototype._blocks = function (m, mpos, bytes) {\n var hibit = this._fin ? 0 : 1 << 11;\n var h0 = this._h[0], h1 = this._h[1], h2 = this._h[2], h3 = this._h[3], h4 = this._h[4], h5 = this._h[5], h6 = this._h[6], h7 = this._h[7], h8 = this._h[8], h9 = this._h[9];\n var r0 = this._r[0], r1 = this._r[1], r2 = this._r[2], r3 = this._r[3], r4 = this._r[4], r5 = this._r[5], r6 = this._r[6], r7 = this._r[7], r8 = this._r[8], r9 = this._r[9];\n while (bytes >= 16) {\n var t0 = m[mpos + 0] | m[mpos + 1] << 8;\n h0 += (t0) & 0x1fff;\n var t1 = m[mpos + 2] | m[mpos + 3] << 8;\n h1 += ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n var t2 = m[mpos + 4] | m[mpos + 5] << 8;\n h2 += ((t1 >>> 10) | (t2 << 6)) & 0x1fff;\n var t3 = m[mpos + 6] | m[mpos + 7] << 8;\n h3 += ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n var t4 = m[mpos + 8] | m[mpos + 9] << 8;\n h4 += ((t3 >>> 4) | (t4 << 12)) & 0x1fff;\n h5 += ((t4 >>> 1)) & 0x1fff;\n var t5 = m[mpos + 10] | m[mpos + 11] << 8;\n h6 += ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n var t6 = m[mpos + 12] | m[mpos + 13] << 8;\n h7 += ((t5 >>> 11) | (t6 << 5)) & 0x1fff;\n var t7 = m[mpos + 14] | m[mpos + 15] << 8;\n h8 += ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n h9 += ((t7 >>> 5)) | hibit;\n var c = 0;\n var d0 = c;\n d0 += h0 * r0;\n d0 += h1 * (5 * r9);\n d0 += h2 * (5 * r8);\n d0 += h3 * (5 * r7);\n d0 += h4 * (5 * r6);\n c = (d0 >>> 13);\n d0 &= 0x1fff;\n d0 += h5 * (5 * r5);\n d0 += h6 * (5 * r4);\n d0 += h7 * (5 * r3);\n d0 += h8 * (5 * r2);\n d0 += h9 * (5 * r1);\n c += (d0 >>> 13);\n d0 &= 0x1fff;\n var d1 = c;\n d1 += h0 * r1;\n d1 += h1 * r0;\n d1 += h2 * (5 * r9);\n d1 += h3 * (5 * r8);\n d1 += h4 * (5 * r7);\n c = (d1 >>> 13);\n d1 &= 0x1fff;\n d1 += h5 * (5 * r6);\n d1 += h6 * (5 * r5);\n d1 += h7 * (5 * r4);\n d1 += h8 * (5 * r3);\n d1 += h9 * (5 * r2);\n c += (d1 >>> 13);\n d1 &= 0x1fff;\n var d2 = c;\n d2 += h0 * r2;\n d2 += h1 * r1;\n d2 += h2 * r0;\n d2 += h3 * (5 * r9);\n d2 += h4 * (5 * r8);\n c = (d2 >>> 13);\n d2 &= 0x1fff;\n d2 += h5 * (5 * r7);\n d2 += h6 * (5 * r6);\n d2 += h7 * (5 * r5);\n d2 += h8 * (5 * r4);\n d2 += h9 * (5 * r3);\n c += (d2 >>> 13);\n d2 &= 0x1fff;\n var d3 = c;\n d3 += h0 * r3;\n d3 += h1 * r2;\n d3 += h2 * r1;\n d3 += h3 * r0;\n d3 += h4 * (5 * r9);\n c = (d3 >>> 13);\n d3 &= 0x1fff;\n d3 += h5 * (5 * r8);\n d3 += h6 * (5 * r7);\n d3 += h7 * (5 * r6);\n d3 += h8 * (5 * r5);\n d3 += h9 * (5 * r4);\n c += (d3 >>> 13);\n d3 &= 0x1fff;\n var d4 = c;\n d4 += h0 * r4;\n d4 += h1 * r3;\n d4 += h2 * r2;\n d4 += h3 * r1;\n d4 += h4 * r0;\n c = (d4 >>> 13);\n d4 &= 0x1fff;\n d4 += h5 * (5 * r9);\n d4 += h6 * (5 * r8);\n d4 += h7 * (5 * r7);\n d4 += h8 * (5 * r6);\n d4 += h9 * (5 * r5);\n c += (d4 >>> 13);\n d4 &= 0x1fff;\n var d5 = c;\n d5 += h0 * r5;\n d5 += h1 * r4;\n d5 += h2 * r3;\n d5 += h3 * r2;\n d5 += h4 * r1;\n c = (d5 >>> 13);\n d5 &= 0x1fff;\n d5 += h5 * r0;\n d5 += h6 * (5 * r9);\n d5 += h7 * (5 * r8);\n d5 += h8 * (5 * r7);\n d5 += h9 * (5 * r6);\n c += (d5 >>> 13);\n d5 &= 0x1fff;\n var d6 = c;\n d6 += h0 * r6;\n d6 += h1 * r5;\n d6 += h2 * r4;\n d6 += h3 * r3;\n d6 += h4 * r2;\n c = (d6 >>> 13);\n d6 &= 0x1fff;\n d6 += h5 * r1;\n d6 += h6 * r0;\n d6 += h7 * (5 * r9);\n d6 += h8 * (5 * r8);\n d6 += h9 * (5 * r7);\n c += (d6 >>> 13);\n d6 &= 0x1fff;\n var d7 = c;\n d7 += h0 * r7;\n d7 += h1 * r6;\n d7 += h2 * r5;\n d7 += h3 * r4;\n d7 += h4 * r3;\n c = (d7 >>> 13);\n d7 &= 0x1fff;\n d7 += h5 * r2;\n d7 += h6 * r1;\n d7 += h7 * r0;\n d7 += h8 * (5 * r9);\n d7 += h9 * (5 * r8);\n c += (d7 >>> 13);\n d7 &= 0x1fff;\n var d8 = c;\n d8 += h0 * r8;\n d8 += h1 * r7;\n d8 += h2 * r6;\n d8 += h3 * r5;\n d8 += h4 * r4;\n c = (d8 >>> 13);\n d8 &= 0x1fff;\n d8 += h5 * r3;\n d8 += h6 * r2;\n d8 += h7 * r1;\n d8 += h8 * r0;\n d8 += h9 * (5 * r9);\n c += (d8 >>> 13);\n d8 &= 0x1fff;\n var d9 = c;\n d9 += h0 * r9;\n d9 += h1 * r8;\n d9 += h2 * r7;\n d9 += h3 * r6;\n d9 += h4 * r5;\n c = (d9 >>> 13);\n d9 &= 0x1fff;\n d9 += h5 * r4;\n d9 += h6 * r3;\n d9 += h7 * r2;\n d9 += h8 * r1;\n d9 += h9 * r0;\n c += (d9 >>> 13);\n d9 &= 0x1fff;\n c = (((c << 2) + c)) | 0;\n c = (c + d0) | 0;\n d0 = c & 0x1fff;\n c = (c >>> 13);\n d1 += c;\n h0 = d0;\n h1 = d1;\n h2 = d2;\n h3 = d3;\n h4 = d4;\n h5 = d5;\n h6 = d6;\n h7 = d7;\n h8 = d8;\n h9 = d9;\n mpos += 16;\n bytes -= 16;\n }\n this._h[0] = h0;\n this._h[1] = h1;\n this._h[2] = h2;\n this._h[3] = h3;\n this._h[4] = h4;\n this._h[5] = h5;\n this._h[6] = h6;\n this._h[7] = h7;\n this._h[8] = h8;\n this._h[9] = h9;\n };\n Poly1305.prototype.finish = function (mac, macpos) {\n if (macpos === void 0) { macpos = 0; }\n var g = new Uint16Array(10);\n var c;\n var mask;\n var f;\n var i;\n if (this._leftover) {\n i = this._leftover;\n this._buffer[i++] = 1;\n for (; i < 16; i++) {\n this._buffer[i] = 0;\n }\n this._fin = 1;\n this._blocks(this._buffer, 0, 16);\n }\n c = this._h[1] >>> 13;\n this._h[1] &= 0x1fff;\n for (i = 2; i < 10; i++) {\n this._h[i] += c;\n c = this._h[i] >>> 13;\n this._h[i] &= 0x1fff;\n }\n this._h[0] += (c * 5);\n c = this._h[0] >>> 13;\n this._h[0] &= 0x1fff;\n this._h[1] += c;\n c = this._h[1] >>> 13;\n this._h[1] &= 0x1fff;\n this._h[2] += c;\n g[0] = this._h[0] + 5;\n c = g[0] >>> 13;\n g[0] &= 0x1fff;\n for (i = 1; i < 10; i++) {\n g[i] = this._h[i] + c;\n c = g[i] >>> 13;\n g[i] &= 0x1fff;\n }\n g[9] -= (1 << 13);\n mask = (c ^ 1) - 1;\n for (i = 0; i < 10; i++) {\n g[i] &= mask;\n }\n mask = ~mask;\n for (i = 0; i < 10; i++) {\n this._h[i] = (this._h[i] & mask) | g[i];\n }\n this._h[0] = ((this._h[0]) | (this._h[1] << 13)) & 0xffff;\n this._h[1] = ((this._h[1] >>> 3) | (this._h[2] << 10)) & 0xffff;\n this._h[2] = ((this._h[2] >>> 6) | (this._h[3] << 7)) & 0xffff;\n this._h[3] = ((this._h[3] >>> 9) | (this._h[4] << 4)) & 0xffff;\n this._h[4] = ((this._h[4] >>> 12) | (this._h[5] << 1) | (this._h[6] << 14)) & 0xffff;\n this._h[5] = ((this._h[6] >>> 2) | (this._h[7] << 11)) & 0xffff;\n this._h[6] = ((this._h[7] >>> 5) | (this._h[8] << 8)) & 0xffff;\n this._h[7] = ((this._h[8] >>> 8) | (this._h[9] << 5)) & 0xffff;\n f = this._h[0] + this._pad[0];\n this._h[0] = f & 0xffff;\n for (i = 1; i < 8; i++) {\n f = (((this._h[i] + this._pad[i]) | 0) + (f >>> 16)) | 0;\n this._h[i] = f & 0xffff;\n }\n mac[macpos + 0] = this._h[0] >>> 0;\n mac[macpos + 1] = this._h[0] >>> 8;\n mac[macpos + 2] = this._h[1] >>> 0;\n mac[macpos + 3] = this._h[1] >>> 8;\n mac[macpos + 4] = this._h[2] >>> 0;\n mac[macpos + 5] = this._h[2] >>> 8;\n mac[macpos + 6] = this._h[3] >>> 0;\n mac[macpos + 7] = this._h[3] >>> 8;\n mac[macpos + 8] = this._h[4] >>> 0;\n mac[macpos + 9] = this._h[4] >>> 8;\n mac[macpos + 10] = this._h[5] >>> 0;\n mac[macpos + 11] = this._h[5] >>> 8;\n mac[macpos + 12] = this._h[6] >>> 0;\n mac[macpos + 13] = this._h[6] >>> 8;\n mac[macpos + 14] = this._h[7] >>> 0;\n mac[macpos + 15] = this._h[7] >>> 8;\n this._finished = true;\n return this;\n };\n Poly1305.prototype.update = function (m) {\n var mpos = 0;\n var bytes = m.length;\n var want;\n if (this._leftover) {\n want = (16 - this._leftover);\n if (want > bytes) {\n want = bytes;\n }\n for (var i = 0; i < want; i++) {\n this._buffer[this._leftover + i] = m[mpos + i];\n }\n bytes -= want;\n mpos += want;\n this._leftover += want;\n if (this._leftover < 16) {\n return this;\n }\n this._blocks(this._buffer, 0, 16);\n this._leftover = 0;\n }\n if (bytes >= 16) {\n want = bytes - (bytes % 16);\n this._blocks(m, mpos, want);\n mpos += want;\n bytes -= want;\n }\n if (bytes) {\n for (var i = 0; i < bytes; i++) {\n this._buffer[this._leftover + i] = m[mpos + i];\n }\n this._leftover += bytes;\n }\n return this;\n };\n Poly1305.prototype.digest = function () {\n // TODO(dchest): it behaves differently than other hashes/HMAC,\n // because it throws when finished — others just return saved result.\n if (this._finished) {\n throw new Error(\"Poly1305 was finished\");\n }\n var mac = new Uint8Array(16);\n this.finish(mac);\n return mac;\n };\n Poly1305.prototype.clean = function () {\n wipe_1.wipe(this._buffer);\n wipe_1.wipe(this._r);\n wipe_1.wipe(this._h);\n wipe_1.wipe(this._pad);\n this._leftover = 0;\n this._fin = 0;\n this._finished = true; // mark as finished even if not\n return this;\n };\n return Poly1305;\n}());\nexports.Poly1305 = Poly1305;\n/**\n * Returns 16-byte authenticator of data using a one-time 32-byte key.\n *\n * Important: key should be used for only one message, it should never repeat.\n */\nfunction oneTimeAuth(key, data) {\n var h = new Poly1305(key);\n h.update(data);\n var digest = h.digest();\n h.clean();\n return digest;\n}\nexports.oneTimeAuth = oneTimeAuth;\n/**\n * Returns true if two authenticators are 16-byte long and equal.\n * Uses contant-time comparison to avoid leaking timing information.\n */\nfunction equal(a, b) {\n if (a.length !== exports.DIGEST_LENGTH || b.length !== exports.DIGEST_LENGTH) {\n return false;\n }\n return constant_time_1.equal(a, b);\n}\nexports.equal = equal;\n//# sourceMappingURL=poly1305.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar chacha_1 = require(\"@stablelib/chacha\");\nvar poly1305_1 = require(\"@stablelib/poly1305\");\nvar wipe_1 = require(\"@stablelib/wipe\");\nvar binary_1 = require(\"@stablelib/binary\");\nvar constant_time_1 = require(\"@stablelib/constant-time\");\nexports.KEY_LENGTH = 32;\nexports.NONCE_LENGTH = 12;\nexports.TAG_LENGTH = 16;\nvar ZEROS = new Uint8Array(16);\n/**\n * ChaCha20-Poly1305 Authenticated Encryption with Associated Data.\n *\n * Defined in RFC7539.\n */\nvar ChaCha20Poly1305 = /** @class */ (function () {\n /**\n * Creates a new instance with the given 32-byte key.\n */\n function ChaCha20Poly1305(key) {\n this.nonceLength = exports.NONCE_LENGTH;\n this.tagLength = exports.TAG_LENGTH;\n if (key.length !== exports.KEY_LENGTH) {\n throw new Error(\"ChaCha20Poly1305 needs 32-byte key\");\n }\n // Copy key.\n this._key = new Uint8Array(key);\n }\n /**\n * Encrypts and authenticates plaintext, authenticates associated data,\n * and returns sealed ciphertext, which includes authentication tag.\n *\n * RFC7539 specifies 12 bytes for nonce. It may be this 12-byte nonce\n * (\"IV\"), or full 16-byte counter (called \"32-bit fixed-common part\")\n * and nonce.\n *\n * If dst is given (it must be the size of plaintext + the size of tag\n * length) the result will be put into it. Dst and plaintext must not\n * overlap.\n */\n ChaCha20Poly1305.prototype.seal = function (nonce, plaintext, associatedData, dst) {\n if (nonce.length > 16) {\n throw new Error(\"ChaCha20Poly1305: incorrect nonce length\");\n }\n // Allocate space for counter, and set nonce as last bytes of it.\n var counter = new Uint8Array(16);\n counter.set(nonce, counter.length - nonce.length);\n // Generate authentication key by taking first 32-bytes of stream.\n // We pass full counter, which has 12-byte nonce and 4-byte block counter,\n // and it will get incremented after generating the block, which is\n // exactly what we need: we only use the first 32 bytes of 64-byte\n // ChaCha block and discard the next 32 bytes.\n var authKey = new Uint8Array(32);\n chacha_1.stream(this._key, counter, authKey, 4);\n // Allocate space for sealed ciphertext.\n var resultLength = plaintext.length + this.tagLength;\n var result;\n if (dst) {\n if (dst.length !== resultLength) {\n throw new Error(\"ChaCha20Poly1305: incorrect destination length\");\n }\n result = dst;\n }\n else {\n result = new Uint8Array(resultLength);\n }\n // Encrypt plaintext.\n chacha_1.streamXOR(this._key, counter, plaintext, result, 4);\n // Authenticate.\n // XXX: can \"simplify\" here: pass full result (which is already padded\n // due to zeroes prepared for tag), and ciphertext length instead of\n // subarray of result.\n this._authenticate(result.subarray(result.length - this.tagLength, result.length), authKey, result.subarray(0, result.length - this.tagLength), associatedData);\n // Cleanup.\n wipe_1.wipe(counter);\n return result;\n };\n /**\n * Authenticates sealed ciphertext (which includes authentication tag) and\n * associated data, decrypts ciphertext and returns decrypted plaintext.\n *\n * RFC7539 specifies 12 bytes for nonce. It may be this 12-byte nonce\n * (\"IV\"), or full 16-byte counter (called \"32-bit fixed-common part\")\n * and nonce.\n *\n * If authentication fails, it returns null.\n *\n * If dst is given (it must be of ciphertext length minus tag length),\n * the result will be put into it. Dst and plaintext must not overlap.\n */\n ChaCha20Poly1305.prototype.open = function (nonce, sealed, associatedData, dst) {\n if (nonce.length > 16) {\n throw new Error(\"ChaCha20Poly1305: incorrect nonce length\");\n }\n // Sealed ciphertext should at least contain tag.\n if (sealed.length < this.tagLength) {\n // TODO(dchest): should we throw here instead?\n return null;\n }\n // Allocate space for counter, and set nonce as last bytes of it.\n var counter = new Uint8Array(16);\n counter.set(nonce, counter.length - nonce.length);\n // Generate authentication key by taking first 32-bytes of stream.\n var authKey = new Uint8Array(32);\n chacha_1.stream(this._key, counter, authKey, 4);\n // Authenticate.\n // XXX: can simplify and avoid allocation: since authenticate()\n // already allocates tag (from Poly1305.digest(), it can return)\n // it instead of copying to calculatedTag. But then in seal()\n // we'll need to copy it.\n var calculatedTag = new Uint8Array(this.tagLength);\n this._authenticate(calculatedTag, authKey, sealed.subarray(0, sealed.length - this.tagLength), associatedData);\n // Constant-time compare tags and return null if they differ.\n if (!constant_time_1.equal(calculatedTag, sealed.subarray(sealed.length - this.tagLength, sealed.length))) {\n return null;\n }\n // Allocate space for decrypted plaintext.\n var resultLength = sealed.length - this.tagLength;\n var result;\n if (dst) {\n if (dst.length !== resultLength) {\n throw new Error(\"ChaCha20Poly1305: incorrect destination length\");\n }\n result = dst;\n }\n else {\n result = new Uint8Array(resultLength);\n }\n // Decrypt.\n chacha_1.streamXOR(this._key, counter, sealed.subarray(0, sealed.length - this.tagLength), result, 4);\n // Cleanup.\n wipe_1.wipe(counter);\n return result;\n };\n ChaCha20Poly1305.prototype.clean = function () {\n wipe_1.wipe(this._key);\n return this;\n };\n ChaCha20Poly1305.prototype._authenticate = function (tagOut, authKey, ciphertext, associatedData) {\n // Initialize Poly1305 with authKey.\n var h = new poly1305_1.Poly1305(authKey);\n // Authenticate padded associated data.\n if (associatedData) {\n h.update(associatedData);\n if (associatedData.length % 16 > 0) {\n h.update(ZEROS.subarray(associatedData.length % 16));\n }\n }\n // Authenticate padded ciphertext.\n h.update(ciphertext);\n if (ciphertext.length % 16 > 0) {\n h.update(ZEROS.subarray(ciphertext.length % 16));\n }\n // Authenticate length of associated data.\n // XXX: can avoid allocation here?\n var length = new Uint8Array(8);\n if (associatedData) {\n binary_1.writeUint64LE(associatedData.length, length);\n }\n h.update(length);\n // Authenticate length of ciphertext.\n binary_1.writeUint64LE(ciphertext.length, length);\n h.update(length);\n // Get tag and copy it into tagOut.\n var tag = h.digest();\n for (var i = 0; i < tag.length; i++) {\n tagOut[i] = tag[i];\n }\n // Cleanup.\n h.clean();\n wipe_1.wipe(tag);\n wipe_1.wipe(length);\n };\n return ChaCha20Poly1305;\n}());\nexports.ChaCha20Poly1305 = ChaCha20Poly1305;\n//# sourceMappingURL=chacha20poly1305.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction isSerializableHash(h) {\n return (typeof h.saveState !== \"undefined\" &&\n typeof h.restoreState !== \"undefined\" &&\n typeof h.cleanSavedState !== \"undefined\");\n}\nexports.isSerializableHash = isSerializableHash;\n// TODO(dchest): figure out the standardized interface for XOF such as\n// SHAKE and BLAKE2X.\n//# sourceMappingURL=hash.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Package hmac implements HMAC algorithm.\n */\nvar hash_1 = require(\"@stablelib/hash\");\nvar constant_time_1 = require(\"@stablelib/constant-time\");\nvar wipe_1 = require(\"@stablelib/wipe\");\n/**\n * HMAC implements hash-based message authentication algorithm.\n */\nvar HMAC = /** @class */ (function () {\n /**\n * Constructs a new HMAC with the given Hash and secret key.\n */\n function HMAC(hash, key) {\n this._finished = false; // true if HMAC was finalized\n // Initialize inner and outer hashes.\n this._inner = new hash();\n this._outer = new hash();\n // Set block and digest sizes for this HMAC\n // instance to values from the hash.\n this.blockSize = this._outer.blockSize;\n this.digestLength = this._outer.digestLength;\n // Pad temporary stores a key (or its hash) padded with zeroes.\n var pad = new Uint8Array(this.blockSize);\n if (key.length > this.blockSize) {\n // If key is bigger than hash block size, it must be\n // hashed and this hash is used as a key instead.\n this._inner.update(key).finish(pad).clean();\n }\n else {\n // Otherwise, copy the key into pad.\n pad.set(key);\n }\n // Now two different keys are derived from padded key\n // by xoring a different byte value to each.\n // To make inner hash key, xor byte 0x36 into pad.\n for (var i = 0; i < pad.length; i++) {\n pad[i] ^= 0x36;\n }\n // Update inner hash with the result.\n this._inner.update(pad);\n // To make outer hash key, xor byte 0x5c into pad.\n // But since we already xored 0x36 there, we must\n // first undo this by xoring it again.\n for (var i = 0; i < pad.length; i++) {\n pad[i] ^= 0x36 ^ 0x5c;\n }\n // Update outer hash with the result.\n this._outer.update(pad);\n // Save states of both hashes, so that we can quickly restore\n // them later in reset() without the need to remember the actual\n // key and perform this initialization again.\n if (hash_1.isSerializableHash(this._inner) && hash_1.isSerializableHash(this._outer)) {\n this._innerKeyedState = this._inner.saveState();\n this._outerKeyedState = this._outer.saveState();\n }\n // Clean pad.\n wipe_1.wipe(pad);\n }\n /**\n * Returns HMAC state to the state initialized with key\n * to make it possible to run HMAC over the other data with the same\n * key without creating a new instance.\n */\n HMAC.prototype.reset = function () {\n if (!hash_1.isSerializableHash(this._inner) || !hash_1.isSerializableHash(this._outer)) {\n throw new Error(\"hmac: can't reset() because hash doesn't implement restoreState()\");\n }\n // Restore keyed states of inner and outer hashes.\n this._inner.restoreState(this._innerKeyedState);\n this._outer.restoreState(this._outerKeyedState);\n this._finished = false;\n return this;\n };\n /**\n * Cleans HMAC state.\n */\n HMAC.prototype.clean = function () {\n if (hash_1.isSerializableHash(this._inner)) {\n this._inner.cleanSavedState(this._innerKeyedState);\n }\n if (hash_1.isSerializableHash(this._outer)) {\n this._outer.cleanSavedState(this._outerKeyedState);\n }\n this._inner.clean();\n this._outer.clean();\n };\n /**\n * Updates state with provided data.\n */\n HMAC.prototype.update = function (data) {\n this._inner.update(data);\n return this;\n };\n /**\n * Finalizes HMAC and puts the result in out.\n */\n HMAC.prototype.finish = function (out) {\n if (this._finished) {\n // If HMAC was finalized, outer hash is also finalized,\n // so it produces the same digest it produced when it\n // was finalized.\n this._outer.finish(out);\n return this;\n }\n // Finalize inner hash and store the result temporarily.\n this._inner.finish(out);\n // Update outer hash with digest of inner hash and and finalize it.\n this._outer.update(out.subarray(0, this.digestLength)).finish(out);\n this._finished = true;\n return this;\n };\n /**\n * Returns the computed message authentication code.\n */\n HMAC.prototype.digest = function () {\n var out = new Uint8Array(this.digestLength);\n this.finish(out);\n return out;\n };\n /**\n * Saves HMAC state.\n * This function is needed for PBKDF2 optimization.\n */\n HMAC.prototype.saveState = function () {\n if (!hash_1.isSerializableHash(this._inner)) {\n throw new Error(\"hmac: can't saveState() because hash doesn't implement it\");\n }\n return this._inner.saveState();\n };\n HMAC.prototype.restoreState = function (savedState) {\n if (!hash_1.isSerializableHash(this._inner) || !hash_1.isSerializableHash(this._outer)) {\n throw new Error(\"hmac: can't restoreState() because hash doesn't implement it\");\n }\n this._inner.restoreState(savedState);\n this._outer.restoreState(this._outerKeyedState);\n this._finished = false;\n return this;\n };\n HMAC.prototype.cleanSavedState = function (savedState) {\n if (!hash_1.isSerializableHash(this._inner)) {\n throw new Error(\"hmac: can't cleanSavedState() because hash doesn't implement it\");\n }\n this._inner.cleanSavedState(savedState);\n };\n return HMAC;\n}());\nexports.HMAC = HMAC;\n/**\n * Returns HMAC using the given hash constructor for the key over data.\n */\nfunction hmac(hash, key, data) {\n var h = new HMAC(hash, key);\n h.update(data);\n var digest = h.digest();\n h.clean();\n return digest;\n}\nexports.hmac = hmac;\n/**\n * Returns true if two HMAC digests are equal.\n * Uses constant-time comparison to avoid leaking timing information.\n *\n * Example:\n *\n * const receivedDigest = ...\n * const realDigest = hmac(SHA256, key, data);\n * if (!equal(receivedDigest, realDigest)) {\n * throw new Error(\"Authentication error\");\n * }\n */\nexports.equal = constant_time_1.equal;\n//# sourceMappingURL=hmac.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar hmac_1 = require(\"@stablelib/hmac\");\nvar wipe_1 = require(\"@stablelib/wipe\");\n/**\n * HMAC-based Extract-and-Expand Key Derivation Function.\n *\n * Implements HKDF from RFC5869.\n *\n * Expands the given master key with salt and info into\n * a limited stream of key material.\n */\nvar HKDF = /** @class */ (function () {\n /**\n * Create a new HKDF instance for the given hash function\n * with the master key, optional salt, and info.\n *\n * - Master key is a high-entropy secret key (not a password).\n * - Salt is a non-secret random value.\n * - Info is application- and/or context-specific information.\n */\n function HKDF(hash, key, salt, info) {\n if (salt === void 0) { salt = new Uint8Array(0); }\n this._counter = new Uint8Array(1); // starts with zero\n this._hash = hash;\n this._info = info;\n // HKDF-Extract uses salt as HMAC key, and key as data.\n var okm = hmac_1.hmac(this._hash, salt, key);\n // Initialize HMAC for expanding with extracted key.\n this._hmac = new hmac_1.HMAC(hash, okm);\n // Allocate buffer.\n this._buffer = new Uint8Array(this._hmac.digestLength);\n this._bufpos = this._buffer.length;\n }\n // Fill buffer with new block of HKDF-Extract output.\n HKDF.prototype._fillBuffer = function () {\n // Increment counter.\n this._counter[0]++;\n var ctr = this._counter[0];\n // Check if counter overflowed.\n if (ctr === 0) {\n throw new Error(\"hkdf: cannot expand more\");\n }\n // Prepare HMAC instance for new data with old key.\n this._hmac.reset();\n // Hash in previous output if it was generated\n // (i.e. counter is greater than 1).\n if (ctr > 1) {\n this._hmac.update(this._buffer);\n }\n // Hash in info if it exists.\n if (this._info) {\n this._hmac.update(this._info);\n }\n // Hash in the counter.\n this._hmac.update(this._counter);\n // Output result to buffer and clean HMAC instance.\n this._hmac.finish(this._buffer);\n // Reset buffer position.\n this._bufpos = 0;\n };\n /**\n * Expand returns next key material of the given length.\n *\n * It throws if expansion limit is reached (which is\n * 254 digests of the underlying HMAC function).\n */\n HKDF.prototype.expand = function (length) {\n var out = new Uint8Array(length);\n for (var i = 0; i < out.length; i++) {\n if (this._bufpos === this._buffer.length) {\n this._fillBuffer();\n }\n out[i] = this._buffer[this._bufpos++];\n }\n return out;\n };\n HKDF.prototype.clean = function () {\n this._hmac.clean();\n wipe_1.wipe(this._buffer);\n wipe_1.wipe(this._counter);\n this._bufpos = 0;\n };\n return HKDF;\n}());\nexports.HKDF = HKDF;\n// TODO(dchest): maybe implement deriveKey?\n//# sourceMappingURL=hkdf.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar binary_1 = require(\"@stablelib/binary\");\nvar wipe_1 = require(\"@stablelib/wipe\");\nexports.DIGEST_LENGTH = 32;\nexports.BLOCK_SIZE = 64;\n/**\n * SHA2-256 cryptographic hash algorithm.\n */\nvar SHA256 = /** @class */ (function () {\n function SHA256() {\n /** Length of hash output */\n this.digestLength = exports.DIGEST_LENGTH;\n /** Block size */\n this.blockSize = exports.BLOCK_SIZE;\n // Note: Int32Array is used instead of Uint32Array for performance reasons.\n this._state = new Int32Array(8); // hash state\n this._temp = new Int32Array(64); // temporary state\n this._buffer = new Uint8Array(128); // buffer for data to hash\n this._bufferLength = 0; // number of bytes in buffer\n this._bytesHashed = 0; // number of total bytes hashed\n this._finished = false; // indicates whether the hash was finalized\n this.reset();\n }\n SHA256.prototype._initState = function () {\n this._state[0] = 0x6a09e667;\n this._state[1] = 0xbb67ae85;\n this._state[2] = 0x3c6ef372;\n this._state[3] = 0xa54ff53a;\n this._state[4] = 0x510e527f;\n this._state[5] = 0x9b05688c;\n this._state[6] = 0x1f83d9ab;\n this._state[7] = 0x5be0cd19;\n };\n /**\n * Resets hash state making it possible\n * to re-use this instance to hash other data.\n */\n SHA256.prototype.reset = function () {\n this._initState();\n this._bufferLength = 0;\n this._bytesHashed = 0;\n this._finished = false;\n return this;\n };\n /**\n * Cleans internal buffers and resets hash state.\n */\n SHA256.prototype.clean = function () {\n wipe_1.wipe(this._buffer);\n wipe_1.wipe(this._temp);\n this.reset();\n };\n /**\n * Updates hash state with the given data.\n *\n * Throws error when trying to update already finalized hash:\n * instance must be reset to update it again.\n */\n SHA256.prototype.update = function (data, dataLength) {\n if (dataLength === void 0) { dataLength = data.length; }\n if (this._finished) {\n throw new Error(\"SHA256: can't update because hash was finished.\");\n }\n var dataPos = 0;\n this._bytesHashed += dataLength;\n if (this._bufferLength > 0) {\n while (this._bufferLength < this.blockSize && dataLength > 0) {\n this._buffer[this._bufferLength++] = data[dataPos++];\n dataLength--;\n }\n if (this._bufferLength === this.blockSize) {\n hashBlocks(this._temp, this._state, this._buffer, 0, this.blockSize);\n this._bufferLength = 0;\n }\n }\n if (dataLength >= this.blockSize) {\n dataPos = hashBlocks(this._temp, this._state, data, dataPos, dataLength);\n dataLength %= this.blockSize;\n }\n while (dataLength > 0) {\n this._buffer[this._bufferLength++] = data[dataPos++];\n dataLength--;\n }\n return this;\n };\n /**\n * Finalizes hash state and puts hash into out.\n * If hash was already finalized, puts the same value.\n */\n SHA256.prototype.finish = function (out) {\n if (!this._finished) {\n var bytesHashed = this._bytesHashed;\n var left = this._bufferLength;\n var bitLenHi = (bytesHashed / 0x20000000) | 0;\n var bitLenLo = bytesHashed << 3;\n var padLength = (bytesHashed % 64 < 56) ? 64 : 128;\n this._buffer[left] = 0x80;\n for (var i = left + 1; i < padLength - 8; i++) {\n this._buffer[i] = 0;\n }\n binary_1.writeUint32BE(bitLenHi, this._buffer, padLength - 8);\n binary_1.writeUint32BE(bitLenLo, this._buffer, padLength - 4);\n hashBlocks(this._temp, this._state, this._buffer, 0, padLength);\n this._finished = true;\n }\n for (var i = 0; i < this.digestLength / 4; i++) {\n binary_1.writeUint32BE(this._state[i], out, i * 4);\n }\n return this;\n };\n /**\n * Returns the final hash digest.\n */\n SHA256.prototype.digest = function () {\n var out = new Uint8Array(this.digestLength);\n this.finish(out);\n return out;\n };\n /**\n * Function useful for HMAC/PBKDF2 optimization.\n * Returns hash state to be used with restoreState().\n * Only chain value is saved, not buffers or other\n * state variables.\n */\n SHA256.prototype.saveState = function () {\n if (this._finished) {\n throw new Error(\"SHA256: cannot save finished state\");\n }\n return {\n state: new Int32Array(this._state),\n buffer: this._bufferLength > 0 ? new Uint8Array(this._buffer) : undefined,\n bufferLength: this._bufferLength,\n bytesHashed: this._bytesHashed\n };\n };\n /**\n * Function useful for HMAC/PBKDF2 optimization.\n * Restores state saved by saveState() and sets bytesHashed\n * to the given value.\n */\n SHA256.prototype.restoreState = function (savedState) {\n this._state.set(savedState.state);\n this._bufferLength = savedState.bufferLength;\n if (savedState.buffer) {\n this._buffer.set(savedState.buffer);\n }\n this._bytesHashed = savedState.bytesHashed;\n this._finished = false;\n return this;\n };\n /**\n * Cleans state returned by saveState().\n */\n SHA256.prototype.cleanSavedState = function (savedState) {\n wipe_1.wipe(savedState.state);\n if (savedState.buffer) {\n wipe_1.wipe(savedState.buffer);\n }\n savedState.bufferLength = 0;\n savedState.bytesHashed = 0;\n };\n return SHA256;\n}());\nexports.SHA256 = SHA256;\n// Constants\nvar K = new Int32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b,\n 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01,\n 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7,\n 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152,\n 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147,\n 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc,\n 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819,\n 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08,\n 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f,\n 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\nfunction hashBlocks(w, v, p, pos, len) {\n while (len >= 64) {\n var a = v[0];\n var b = v[1];\n var c = v[2];\n var d = v[3];\n var e = v[4];\n var f = v[5];\n var g = v[6];\n var h = v[7];\n for (var i = 0; i < 16; i++) {\n var j = pos + i * 4;\n w[i] = binary_1.readUint32BE(p, j);\n }\n for (var i = 16; i < 64; i++) {\n var u = w[i - 2];\n var t1 = (u >>> 17 | u << (32 - 17)) ^ (u >>> 19 | u << (32 - 19)) ^ (u >>> 10);\n u = w[i - 15];\n var t2 = (u >>> 7 | u << (32 - 7)) ^ (u >>> 18 | u << (32 - 18)) ^ (u >>> 3);\n w[i] = (t1 + w[i - 7] | 0) + (t2 + w[i - 16] | 0);\n }\n for (var i = 0; i < 64; i++) {\n var t1 = (((((e >>> 6 | e << (32 - 6)) ^ (e >>> 11 | e << (32 - 11)) ^\n (e >>> 25 | e << (32 - 25))) + ((e & f) ^ (~e & g))) | 0) +\n ((h + ((K[i] + w[i]) | 0)) | 0)) | 0;\n var t2 = (((a >>> 2 | a << (32 - 2)) ^ (a >>> 13 | a << (32 - 13)) ^\n (a >>> 22 | a << (32 - 22))) + ((a & b) ^ (a & c) ^ (b & c))) | 0;\n h = g;\n g = f;\n f = e;\n e = (d + t1) | 0;\n d = c;\n c = b;\n b = a;\n a = (t1 + t2) | 0;\n }\n v[0] += a;\n v[1] += b;\n v[2] += c;\n v[3] += d;\n v[4] += e;\n v[5] += f;\n v[6] += g;\n v[7] += h;\n pos += 64;\n len -= 64;\n }\n return pos;\n}\nfunction hash(data) {\n var h = new SHA256();\n h.update(data);\n var digest = h.digest();\n h.clean();\n return digest;\n}\nexports.hash = hash;\n//# sourceMappingURL=sha256.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sharedKey = exports.generateKeyPair = exports.generateKeyPairFromSeed = exports.scalarMultBase = exports.scalarMult = exports.SHARED_KEY_LENGTH = exports.SECRET_KEY_LENGTH = exports.PUBLIC_KEY_LENGTH = void 0;\n/**\n * Package x25519 implements X25519 key agreement.\n */\nconst random_1 = require(\"@stablelib/random\");\nconst wipe_1 = require(\"@stablelib/wipe\");\nexports.PUBLIC_KEY_LENGTH = 32;\nexports.SECRET_KEY_LENGTH = 32;\nexports.SHARED_KEY_LENGTH = 32;\n// Returns new zero-filled 16-element GF (Float64Array).\n// If passed an array of numbers, prefills the returned\n// array with them.\n//\n// We use Float64Array, because we need 48-bit numbers\n// for this implementation.\nfunction gf(init) {\n const r = new Float64Array(16);\n if (init) {\n for (let i = 0; i < init.length; i++) {\n r[i] = init[i];\n }\n }\n return r;\n}\n// Base point.\nconst _9 = new Uint8Array(32);\n_9[0] = 9;\nconst _121665 = gf([0xdb41, 1]);\nfunction car25519(o) {\n let c = 1;\n for (let i = 0; i < 16; i++) {\n let v = o[i] + c + 65535;\n c = Math.floor(v / 65536);\n o[i] = v - c * 65536;\n }\n o[0] += c - 1 + 37 * (c - 1);\n}\nfunction sel25519(p, q, b) {\n const c = ~(b - 1);\n for (let i = 0; i < 16; i++) {\n const t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n}\nfunction pack25519(o, n) {\n const m = gf();\n const t = gf();\n for (let i = 0; i < 16; i++) {\n t[i] = n[i];\n }\n car25519(t);\n car25519(t);\n car25519(t);\n for (let j = 0; j < 2; j++) {\n m[0] = t[0] - 0xffed;\n for (let i = 1; i < 15; i++) {\n m[i] = t[i] - 0xffff - ((m[i - 1] >> 16) & 1);\n m[i - 1] &= 0xffff;\n }\n m[15] = t[15] - 0x7fff - ((m[14] >> 16) & 1);\n const b = (m[15] >> 16) & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1 - b);\n }\n for (let i = 0; i < 16; i++) {\n o[2 * i] = t[i] & 0xff;\n o[2 * i + 1] = t[i] >> 8;\n }\n}\nfunction unpack25519(o, n) {\n for (let i = 0; i < 16; i++) {\n o[i] = n[2 * i] + (n[2 * i + 1] << 8);\n }\n o[15] &= 0x7fff;\n}\nfunction add(o, a, b) {\n for (let i = 0; i < 16; i++) {\n o[i] = a[i] + b[i];\n }\n}\nfunction sub(o, a, b) {\n for (let i = 0; i < 16; i++) {\n o[i] = a[i] - b[i];\n }\n}\nfunction mul(o, a, b) {\n let v, c, t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0, t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0, t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0, b0 = b[0], b1 = b[1], b2 = b[2], b3 = b[3], b4 = b[4], b5 = b[5], b6 = b[6], b7 = b[7], b8 = b[8], b9 = b[9], b10 = b[10], b11 = b[11], b12 = b[12], b13 = b[13], b14 = b[14], b15 = b[15];\n v = a[0];\n t0 += v * b0;\n t1 += v * b1;\n t2 += v * b2;\n t3 += v * b3;\n t4 += v * b4;\n t5 += v * b5;\n t6 += v * b6;\n t7 += v * b7;\n t8 += v * b8;\n t9 += v * b9;\n t10 += v * b10;\n t11 += v * b11;\n t12 += v * b12;\n t13 += v * b13;\n t14 += v * b14;\n t15 += v * b15;\n v = a[1];\n t1 += v * b0;\n t2 += v * b1;\n t3 += v * b2;\n t4 += v * b3;\n t5 += v * b4;\n t6 += v * b5;\n t7 += v * b6;\n t8 += v * b7;\n t9 += v * b8;\n t10 += v * b9;\n t11 += v * b10;\n t12 += v * b11;\n t13 += v * b12;\n t14 += v * b13;\n t15 += v * b14;\n t16 += v * b15;\n v = a[2];\n t2 += v * b0;\n t3 += v * b1;\n t4 += v * b2;\n t5 += v * b3;\n t6 += v * b4;\n t7 += v * b5;\n t8 += v * b6;\n t9 += v * b7;\n t10 += v * b8;\n t11 += v * b9;\n t12 += v * b10;\n t13 += v * b11;\n t14 += v * b12;\n t15 += v * b13;\n t16 += v * b14;\n t17 += v * b15;\n v = a[3];\n t3 += v * b0;\n t4 += v * b1;\n t5 += v * b2;\n t6 += v * b3;\n t7 += v * b4;\n t8 += v * b5;\n t9 += v * b6;\n t10 += v * b7;\n t11 += v * b8;\n t12 += v * b9;\n t13 += v * b10;\n t14 += v * b11;\n t15 += v * b12;\n t16 += v * b13;\n t17 += v * b14;\n t18 += v * b15;\n v = a[4];\n t4 += v * b0;\n t5 += v * b1;\n t6 += v * b2;\n t7 += v * b3;\n t8 += v * b4;\n t9 += v * b5;\n t10 += v * b6;\n t11 += v * b7;\n t12 += v * b8;\n t13 += v * b9;\n t14 += v * b10;\n t15 += v * b11;\n t16 += v * b12;\n t17 += v * b13;\n t18 += v * b14;\n t19 += v * b15;\n v = a[5];\n t5 += v * b0;\n t6 += v * b1;\n t7 += v * b2;\n t8 += v * b3;\n t9 += v * b4;\n t10 += v * b5;\n t11 += v * b6;\n t12 += v * b7;\n t13 += v * b8;\n t14 += v * b9;\n t15 += v * b10;\n t16 += v * b11;\n t17 += v * b12;\n t18 += v * b13;\n t19 += v * b14;\n t20 += v * b15;\n v = a[6];\n t6 += v * b0;\n t7 += v * b1;\n t8 += v * b2;\n t9 += v * b3;\n t10 += v * b4;\n t11 += v * b5;\n t12 += v * b6;\n t13 += v * b7;\n t14 += v * b8;\n t15 += v * b9;\n t16 += v * b10;\n t17 += v * b11;\n t18 += v * b12;\n t19 += v * b13;\n t20 += v * b14;\n t21 += v * b15;\n v = a[7];\n t7 += v * b0;\n t8 += v * b1;\n t9 += v * b2;\n t10 += v * b3;\n t11 += v * b4;\n t12 += v * b5;\n t13 += v * b6;\n t14 += v * b7;\n t15 += v * b8;\n t16 += v * b9;\n t17 += v * b10;\n t18 += v * b11;\n t19 += v * b12;\n t20 += v * b13;\n t21 += v * b14;\n t22 += v * b15;\n v = a[8];\n t8 += v * b0;\n t9 += v * b1;\n t10 += v * b2;\n t11 += v * b3;\n t12 += v * b4;\n t13 += v * b5;\n t14 += v * b6;\n t15 += v * b7;\n t16 += v * b8;\n t17 += v * b9;\n t18 += v * b10;\n t19 += v * b11;\n t20 += v * b12;\n t21 += v * b13;\n t22 += v * b14;\n t23 += v * b15;\n v = a[9];\n t9 += v * b0;\n t10 += v * b1;\n t11 += v * b2;\n t12 += v * b3;\n t13 += v * b4;\n t14 += v * b5;\n t15 += v * b6;\n t16 += v * b7;\n t17 += v * b8;\n t18 += v * b9;\n t19 += v * b10;\n t20 += v * b11;\n t21 += v * b12;\n t22 += v * b13;\n t23 += v * b14;\n t24 += v * b15;\n v = a[10];\n t10 += v * b0;\n t11 += v * b1;\n t12 += v * b2;\n t13 += v * b3;\n t14 += v * b4;\n t15 += v * b5;\n t16 += v * b6;\n t17 += v * b7;\n t18 += v * b8;\n t19 += v * b9;\n t20 += v * b10;\n t21 += v * b11;\n t22 += v * b12;\n t23 += v * b13;\n t24 += v * b14;\n t25 += v * b15;\n v = a[11];\n t11 += v * b0;\n t12 += v * b1;\n t13 += v * b2;\n t14 += v * b3;\n t15 += v * b4;\n t16 += v * b5;\n t17 += v * b6;\n t18 += v * b7;\n t19 += v * b8;\n t20 += v * b9;\n t21 += v * b10;\n t22 += v * b11;\n t23 += v * b12;\n t24 += v * b13;\n t25 += v * b14;\n t26 += v * b15;\n v = a[12];\n t12 += v * b0;\n t13 += v * b1;\n t14 += v * b2;\n t15 += v * b3;\n t16 += v * b4;\n t17 += v * b5;\n t18 += v * b6;\n t19 += v * b7;\n t20 += v * b8;\n t21 += v * b9;\n t22 += v * b10;\n t23 += v * b11;\n t24 += v * b12;\n t25 += v * b13;\n t26 += v * b14;\n t27 += v * b15;\n v = a[13];\n t13 += v * b0;\n t14 += v * b1;\n t15 += v * b2;\n t16 += v * b3;\n t17 += v * b4;\n t18 += v * b5;\n t19 += v * b6;\n t20 += v * b7;\n t21 += v * b8;\n t22 += v * b9;\n t23 += v * b10;\n t24 += v * b11;\n t25 += v * b12;\n t26 += v * b13;\n t27 += v * b14;\n t28 += v * b15;\n v = a[14];\n t14 += v * b0;\n t15 += v * b1;\n t16 += v * b2;\n t17 += v * b3;\n t18 += v * b4;\n t19 += v * b5;\n t20 += v * b6;\n t21 += v * b7;\n t22 += v * b8;\n t23 += v * b9;\n t24 += v * b10;\n t25 += v * b11;\n t26 += v * b12;\n t27 += v * b13;\n t28 += v * b14;\n t29 += v * b15;\n v = a[15];\n t15 += v * b0;\n t16 += v * b1;\n t17 += v * b2;\n t18 += v * b3;\n t19 += v * b4;\n t20 += v * b5;\n t21 += v * b6;\n t22 += v * b7;\n t23 += v * b8;\n t24 += v * b9;\n t25 += v * b10;\n t26 += v * b11;\n t27 += v * b12;\n t28 += v * b13;\n t29 += v * b14;\n t30 += v * b15;\n t0 += 38 * t16;\n t1 += 38 * t17;\n t2 += 38 * t18;\n t3 += 38 * t19;\n t4 += 38 * t20;\n t5 += 38 * t21;\n t6 += 38 * t22;\n t7 += 38 * t23;\n t8 += 38 * t24;\n t9 += 38 * t25;\n t10 += 38 * t26;\n t11 += 38 * t27;\n t12 += 38 * t28;\n t13 += 38 * t29;\n t14 += 38 * t30;\n // t15 left as is\n // first car\n c = 1;\n v = t0 + c + 65535;\n c = Math.floor(v / 65536);\n t0 = v - c * 65536;\n v = t1 + c + 65535;\n c = Math.floor(v / 65536);\n t1 = v - c * 65536;\n v = t2 + c + 65535;\n c = Math.floor(v / 65536);\n t2 = v - c * 65536;\n v = t3 + c + 65535;\n c = Math.floor(v / 65536);\n t3 = v - c * 65536;\n v = t4 + c + 65535;\n c = Math.floor(v / 65536);\n t4 = v - c * 65536;\n v = t5 + c + 65535;\n c = Math.floor(v / 65536);\n t5 = v - c * 65536;\n v = t6 + c + 65535;\n c = Math.floor(v / 65536);\n t6 = v - c * 65536;\n v = t7 + c + 65535;\n c = Math.floor(v / 65536);\n t7 = v - c * 65536;\n v = t8 + c + 65535;\n c = Math.floor(v / 65536);\n t8 = v - c * 65536;\n v = t9 + c + 65535;\n c = Math.floor(v / 65536);\n t9 = v - c * 65536;\n v = t10 + c + 65535;\n c = Math.floor(v / 65536);\n t10 = v - c * 65536;\n v = t11 + c + 65535;\n c = Math.floor(v / 65536);\n t11 = v - c * 65536;\n v = t12 + c + 65535;\n c = Math.floor(v / 65536);\n t12 = v - c * 65536;\n v = t13 + c + 65535;\n c = Math.floor(v / 65536);\n t13 = v - c * 65536;\n v = t14 + c + 65535;\n c = Math.floor(v / 65536);\n t14 = v - c * 65536;\n v = t15 + c + 65535;\n c = Math.floor(v / 65536);\n t15 = v - c * 65536;\n t0 += c - 1 + 37 * (c - 1);\n // second car\n c = 1;\n v = t0 + c + 65535;\n c = Math.floor(v / 65536);\n t0 = v - c * 65536;\n v = t1 + c + 65535;\n c = Math.floor(v / 65536);\n t1 = v - c * 65536;\n v = t2 + c + 65535;\n c = Math.floor(v / 65536);\n t2 = v - c * 65536;\n v = t3 + c + 65535;\n c = Math.floor(v / 65536);\n t3 = v - c * 65536;\n v = t4 + c + 65535;\n c = Math.floor(v / 65536);\n t4 = v - c * 65536;\n v = t5 + c + 65535;\n c = Math.floor(v / 65536);\n t5 = v - c * 65536;\n v = t6 + c + 65535;\n c = Math.floor(v / 65536);\n t6 = v - c * 65536;\n v = t7 + c + 65535;\n c = Math.floor(v / 65536);\n t7 = v - c * 65536;\n v = t8 + c + 65535;\n c = Math.floor(v / 65536);\n t8 = v - c * 65536;\n v = t9 + c + 65535;\n c = Math.floor(v / 65536);\n t9 = v - c * 65536;\n v = t10 + c + 65535;\n c = Math.floor(v / 65536);\n t10 = v - c * 65536;\n v = t11 + c + 65535;\n c = Math.floor(v / 65536);\n t11 = v - c * 65536;\n v = t12 + c + 65535;\n c = Math.floor(v / 65536);\n t12 = v - c * 65536;\n v = t13 + c + 65535;\n c = Math.floor(v / 65536);\n t13 = v - c * 65536;\n v = t14 + c + 65535;\n c = Math.floor(v / 65536);\n t14 = v - c * 65536;\n v = t15 + c + 65535;\n c = Math.floor(v / 65536);\n t15 = v - c * 65536;\n t0 += c - 1 + 37 * (c - 1);\n o[0] = t0;\n o[1] = t1;\n o[2] = t2;\n o[3] = t3;\n o[4] = t4;\n o[5] = t5;\n o[6] = t6;\n o[7] = t7;\n o[8] = t8;\n o[9] = t9;\n o[10] = t10;\n o[11] = t11;\n o[12] = t12;\n o[13] = t13;\n o[14] = t14;\n o[15] = t15;\n}\nfunction square(o, a) {\n mul(o, a, a);\n}\nfunction inv25519(o, inp) {\n const c = gf();\n for (let i = 0; i < 16; i++) {\n c[i] = inp[i];\n }\n for (let i = 253; i >= 0; i--) {\n square(c, c);\n if (i !== 2 && i !== 4) {\n mul(c, c, inp);\n }\n }\n for (let i = 0; i < 16; i++) {\n o[i] = c[i];\n }\n}\nfunction scalarMult(n, p) {\n const z = new Uint8Array(32);\n const x = new Float64Array(80);\n const a = gf(), b = gf(), c = gf(), d = gf(), e = gf(), f = gf();\n for (let i = 0; i < 31; i++) {\n z[i] = n[i];\n }\n z[31] = (n[31] & 127) | 64;\n z[0] &= 248;\n unpack25519(x, p);\n for (let i = 0; i < 16; i++) {\n b[i] = x[i];\n }\n a[0] = d[0] = 1;\n for (let i = 254; i >= 0; --i) {\n const r = (z[i >>> 3] >>> (i & 7)) & 1;\n sel25519(a, b, r);\n sel25519(c, d, r);\n add(e, a, c);\n sub(a, a, c);\n add(c, b, d);\n sub(b, b, d);\n square(d, e);\n square(f, a);\n mul(a, c, a);\n mul(c, b, e);\n add(e, a, c);\n sub(a, a, c);\n square(b, a);\n sub(c, d, f);\n mul(a, c, _121665);\n add(a, a, d);\n mul(c, c, a);\n mul(a, d, f);\n mul(d, b, x);\n square(b, e);\n sel25519(a, b, r);\n sel25519(c, d, r);\n }\n for (let i = 0; i < 16; i++) {\n x[i + 16] = a[i];\n x[i + 32] = c[i];\n x[i + 48] = b[i];\n x[i + 64] = d[i];\n }\n const x32 = x.subarray(32);\n const x16 = x.subarray(16);\n inv25519(x32, x32);\n mul(x16, x16, x32);\n const q = new Uint8Array(32);\n pack25519(q, x16);\n return q;\n}\nexports.scalarMult = scalarMult;\nfunction scalarMultBase(n) {\n return scalarMult(n, _9);\n}\nexports.scalarMultBase = scalarMultBase;\nfunction generateKeyPairFromSeed(seed) {\n if (seed.length !== exports.SECRET_KEY_LENGTH) {\n throw new Error(`x25519: seed must be ${exports.SECRET_KEY_LENGTH} bytes`);\n }\n const secretKey = new Uint8Array(seed);\n const publicKey = scalarMultBase(secretKey);\n return {\n publicKey,\n secretKey\n };\n}\nexports.generateKeyPairFromSeed = generateKeyPairFromSeed;\nfunction generateKeyPair(prng) {\n const seed = (0, random_1.randomBytes)(32, prng);\n const result = generateKeyPairFromSeed(seed);\n (0, wipe_1.wipe)(seed);\n return result;\n}\nexports.generateKeyPair = generateKeyPair;\n/**\n * Returns a shared key between our secret key and a peer's public key.\n *\n * Throws an error if the given keys are of wrong length.\n *\n * If rejectZero is true throws if the calculated shared key is all-zero.\n * From RFC 7748:\n *\n * > Protocol designers using Diffie-Hellman over the curves defined in\n * > this document must not assume \"contributory behavior\". Specially,\n * > contributory behavior means that both parties' private keys\n * > contribute to the resulting shared key. Since curve25519 and\n * > curve448 have cofactors of 8 and 4 (respectively), an input point of\n * > small order will eliminate any contribution from the other party's\n * > private key. This situation can be detected by checking for the all-\n * > zero output, which implementations MAY do, as specified in Section 6.\n * > However, a large number of existing implementations do not do this.\n *\n * IMPORTANT: the returned key is a raw result of scalar multiplication.\n * To use it as a key material, hash it with a cryptographic hash function.\n */\nfunction sharedKey(mySecretKey, theirPublicKey, rejectZero = false) {\n if (mySecretKey.length !== exports.PUBLIC_KEY_LENGTH) {\n throw new Error(\"X25519: incorrect secret key length\");\n }\n if (theirPublicKey.length !== exports.PUBLIC_KEY_LENGTH) {\n throw new Error(\"X25519: incorrect public key length\");\n }\n const result = scalarMult(mySecretKey, theirPublicKey);\n if (rejectZero) {\n let zeros = 0;\n for (let i = 0; i < result.length; i++) {\n zeros |= result[i];\n }\n if (zeros === 0) {\n throw new Error(\"X25519: invalid shared key\");\n }\n }\n return result;\n}\nexports.sharedKey = sharedKey;\n//# sourceMappingURL=x25519.js.map","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\n\nvar utils = exports;\nvar BN = require('bn.js');\nvar minAssert = require('minimalistic-assert');\nvar minUtils = require('minimalistic-crypto-utils');\n\nutils.assert = minAssert;\nutils.toArray = minUtils.toArray;\nutils.zero2 = minUtils.zero2;\nutils.toHex = minUtils.toHex;\nutils.encode = minUtils.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n var i;\n for (i = 0; i < naf.length; i += 1) {\n naf[i] = 0;\n }\n\n var ws = 1 << (w + 1);\n var k = num.clone();\n\n for (i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n [],\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n var m8;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n var j;\n var nafW;\n for (j = 0; j < naf.length; j += doubles.step) {\n nafW = 0;\n for (var l = j + doubles.step - 1; l >= j; l--)\n nafW = (nafW << 1) + naf[l];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (j = 0; j < repr.length; j++) {\n nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var l = 0; i >= 0 && naf[i] === 0; i--)\n l++;\n if (i >= 0)\n l++;\n acc = acc.dblp(l);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n var i;\n var j;\n var p;\n for (i = 0; i < len; i++) {\n p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b], /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3, /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (j = 0; j < len; j++) {\n var z = tmp[j];\n p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len));\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null,\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles,\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res,\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction ShortCurve(conf) {\n Base.call(this, 'short', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n\n // If the curve is endomorphic, precalculate beta and lambda\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits(ShortCurve, Base);\nmodule.exports = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n\n // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n // Choose the smallest beta\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n\n // Get basis vectors, used for balanced length-two representation\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16),\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis,\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [ l1, l2 ];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n\n // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1);\n\n // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n var a0;\n var b0;\n // First vector\n var a1;\n var b1;\n // Second vector\n var a2;\n var b2;\n\n var prevR;\n var i = 0;\n var r;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r;\n\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r.neg();\n b2 = x;\n\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n\n // Normalize signs\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 },\n ];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n\n // Calculate answer\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1: k1, k2: k2 };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf)\n return true;\n\n var x = point.x;\n var y = point.y;\n\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd =\n function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n\n // Clean-up references to points and coefficients\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n };\n\nfunction Point(curve, x, y, isRed) {\n Base.BasePoint.call(this, curve, 'affine');\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n // Force redgomery representation when loading from JSON\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits(Point, Base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo)\n return;\n\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul),\n },\n };\n }\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [ this.x, this.y ];\n\n return [ this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1),\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1),\n },\n } ];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string')\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [ res ].concat(pre.doubles.points.map(obj2point)),\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [ res ].concat(pre.naf.points.map(obj2point)),\n },\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf)\n return p;\n\n // P + O = P\n if (p.inf)\n return this;\n\n // P + P = 2P\n if (this.eq(p))\n return this.dbl();\n\n // P + (-P) = O\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n\n // P + Q = O\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n\n // 2P = O\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n\n var a = this.curve.a;\n\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([ this ], [ k ]);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p ||\n this.inf === p.inf &&\n (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate),\n },\n };\n }\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n Base.BasePoint.call(this, curve, 'jacobian');\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n\n this.zOne = this.z === this.curve.one;\n}\ninherits(JPoint, Base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity())\n return p;\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 12M + 4S + 7A\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity())\n return p.toJ();\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 8M + 3S + 7A\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n\n var i;\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n for (i = 0; i < pow; i++)\n r = r.dbl();\n return r;\n }\n\n // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n // Reuse results\n var jyd = jy.redAdd(jy);\n for (i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // T = M ^ 2 - 2*S\n var t = m.redSqr().redISub(s).redISub(s);\n\n // 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2*Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = B^2\n var c = b.redSqr();\n // D = 2 * ((X1 + B)^2 - A - C)\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n // E = 3 * A\n var e = a.redAdd(a).redIAdd(a);\n // F = E^2\n var f = e.redSqr();\n\n // 8 * C\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n\n // X3 = F - 2 * D\n nx = f.redISub(d).redISub(d);\n // Y3 = E * (D - X3) - 8 * C\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n // Z3 = 2 * Y1 * Z1\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n // T = M^2 - 2 * S\n var t = m.redSqr().redISub(s).redISub(s);\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2 * Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n\n // delta = Z1^2\n var delta = this.z.redSqr();\n // gamma = Y1^2\n var gamma = this.y.redSqr();\n // beta = X1 * gamma\n var beta = this.x.redMul(gamma);\n // alpha = 3 * (X1 - delta) * (X1 + delta)\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n // X3 = alpha^2 - 8 * beta\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n // Z3 = (Y1 + Z1)^2 - gamma - delta\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n\n // 4M + 6S + 10A\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // ZZ = Z1^2\n var zz = this.z.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // M = 3 * XX + a * ZZ2; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // MM = M^2\n var mm = m.redSqr();\n // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n // EE = E^2\n var ee = e.redSqr();\n // T = 16*YYYY\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n // U = (M + E)^2 - MM - EE - T\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n // X3 = 4 * (X1 * EE - 4 * YY * U)\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n // Z3 = (Z1 + E)^2 - ZZ - EE\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine')\n return this.eq(p.toJ());\n\n if (this === p)\n return true;\n\n // x1 * z2^2 == x2 * z1^2\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n\n // y1 * z2^3 == y2 * z1^3\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar utils = require('../utils');\n\nfunction MontCurve(conf) {\n Base.call(this, 'mont', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.i4 = new BN(4).toRed(this.red).redInvm();\n this.two = new BN(2).toRed(this.red);\n this.a24 = this.i4.redMul(this.a.redAdd(this.two));\n}\ninherits(MontCurve, Base);\nmodule.exports = MontCurve;\n\nMontCurve.prototype.validate = function validate(point) {\n var x = point.normalize().x;\n var x2 = x.redSqr();\n var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);\n var y = rhs.redSqrt();\n\n return y.redSqr().cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, z) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && z === null) {\n this.x = this.curve.one;\n this.z = this.curve.zero;\n } else {\n this.x = new BN(x, 16);\n this.z = new BN(z, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n }\n}\ninherits(Point, Base.BasePoint);\n\nMontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n return this.point(utils.toArray(bytes, enc), 1);\n};\n\nMontCurve.prototype.point = function point(x, z) {\n return new Point(this, x, z);\n};\n\nMontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nPoint.prototype.precompute = function precompute() {\n // No-op\n};\n\nPoint.prototype._encode = function _encode() {\n return this.getX().toArray('be', this.curve.p.byteLength());\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1] || curve.one);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n\nPoint.prototype.dbl = function dbl() {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-1987-m-3\n // 2M + 2S + 4A\n\n // A = X1 + Z1\n var a = this.x.redAdd(this.z);\n // AA = A^2\n var aa = a.redSqr();\n // B = X1 - Z1\n var b = this.x.redSub(this.z);\n // BB = B^2\n var bb = b.redSqr();\n // C = AA - BB\n var c = aa.redSub(bb);\n // X3 = AA * BB\n var nx = aa.redMul(bb);\n // Z3 = C * (BB + A24 * C)\n var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.add = function add() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.diffAdd = function diffAdd(p, diff) {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-1987-m-3\n // 4M + 2S + 6A\n\n // A = X2 + Z2\n var a = this.x.redAdd(this.z);\n // B = X2 - Z2\n var b = this.x.redSub(this.z);\n // C = X3 + Z3\n var c = p.x.redAdd(p.z);\n // D = X3 - Z3\n var d = p.x.redSub(p.z);\n // DA = D * A\n var da = d.redMul(a);\n // CB = C * B\n var cb = c.redMul(b);\n // X5 = Z1 * (DA + CB)^2\n var nx = diff.z.redMul(da.redAdd(cb).redSqr());\n // Z5 = X1 * (DA - CB)^2\n var nz = diff.x.redMul(da.redISub(cb).redSqr());\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.mul = function mul(k) {\n var t = k.clone();\n var a = this; // (N / 2) * Q + Q\n var b = this.curve.point(null, null); // (N / 2) * Q\n var c = this; // Q\n\n for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1))\n bits.push(t.andln(1));\n\n for (var i = bits.length - 1; i >= 0; i--) {\n if (bits[i] === 0) {\n // N * Q + Q = ((N / 2) * Q + Q)) + (N / 2) * Q\n a = a.diffAdd(b, c);\n // N * Q = 2 * ((N / 2) * Q + Q))\n b = b.dbl();\n } else {\n // N * Q = ((N / 2) * Q + Q) + ((N / 2) * Q)\n b = a.diffAdd(b, c);\n // N * Q + Q = 2 * ((N / 2) * Q + Q)\n a = a.dbl();\n }\n }\n return b;\n};\n\nPoint.prototype.mulAdd = function mulAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.jumlAdd = function jumlAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.eq = function eq(other) {\n return this.getX().cmp(other.getX()) === 0;\n};\n\nPoint.prototype.normalize = function normalize() {\n this.x = this.x.redMul(this.z.redInvm());\n this.z = this.curve.one;\n return this;\n};\n\nPoint.prototype.getX = function getX() {\n // Normalize coordinates\n this.normalize();\n\n return this.x.fromRed();\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction EdwardsCurve(conf) {\n // NOTE: Important as we are creating point in Base.call()\n this.twisted = (conf.a | 0) !== 1;\n this.mOneA = this.twisted && (conf.a | 0) === -1;\n this.extended = this.mOneA;\n\n Base.call(this, 'edwards', conf);\n\n this.a = new BN(conf.a, 16).umod(this.red.m);\n this.a = this.a.toRed(this.red);\n this.c = new BN(conf.c, 16).toRed(this.red);\n this.c2 = this.c.redSqr();\n this.d = new BN(conf.d, 16).toRed(this.red);\n this.dd = this.d.redAdd(this.d);\n\n assert(!this.twisted || this.c.fromRed().cmpn(1) === 0);\n this.oneC = (conf.c | 0) === 1;\n}\ninherits(EdwardsCurve, Base);\nmodule.exports = EdwardsCurve;\n\nEdwardsCurve.prototype._mulA = function _mulA(num) {\n if (this.mOneA)\n return num.redNeg();\n else\n return this.a.redMul(num);\n};\n\nEdwardsCurve.prototype._mulC = function _mulC(num) {\n if (this.oneC)\n return num;\n else\n return this.c.redMul(num);\n};\n\n// Just for compatibility with Short curve\nEdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {\n return this.point(x, y, z, t);\n};\n\nEdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var x2 = x.redSqr();\n var rhs = this.c2.redSub(this.a.redMul(x2));\n var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));\n\n var y2 = rhs.redMul(lhs.redInvm());\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {\n y = new BN(y, 16);\n if (!y.red)\n y = y.toRed(this.red);\n\n // x^2 = (y^2 - c^2) / (c^2 d y^2 - a)\n var y2 = y.redSqr();\n var lhs = y2.redSub(this.c2);\n var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a);\n var x2 = lhs.redMul(rhs.redInvm());\n\n if (x2.cmp(this.zero) === 0) {\n if (odd)\n throw new Error('invalid point');\n else\n return this.point(this.zero, y);\n }\n\n var x = x2.redSqrt();\n if (x.redSqr().redSub(x2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n if (x.fromRed().isOdd() !== odd)\n x = x.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.validate = function validate(point) {\n if (point.isInfinity())\n return true;\n\n // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2)\n point.normalize();\n\n var x2 = point.x.redSqr();\n var y2 = point.y.redSqr();\n var lhs = x2.redMul(this.a).redAdd(y2);\n var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));\n\n return lhs.cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, y, z, t) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && y === null && z === null) {\n this.x = this.curve.zero;\n this.y = this.curve.one;\n this.z = this.curve.one;\n this.t = this.curve.zero;\n this.zOne = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = z ? new BN(z, 16) : this.curve.one;\n this.t = t && new BN(t, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n if (this.t && !this.t.red)\n this.t = this.t.toRed(this.curve.red);\n this.zOne = this.z === this.curve.one;\n\n // Use extended coordinates\n if (this.curve.extended && !this.t) {\n this.t = this.x.redMul(this.y);\n if (!this.zOne)\n this.t = this.t.redMul(this.z.redInvm());\n }\n }\n}\ninherits(Point, Base.BasePoint);\n\nEdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nEdwardsCurve.prototype.point = function point(x, y, z, t) {\n return new Point(this, x, y, z, t);\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1], obj[2]);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.x.cmpn(0) === 0 &&\n (this.y.cmp(this.z) === 0 ||\n (this.zOne && this.y.cmp(this.curve.c) === 0));\n};\n\nPoint.prototype._extDbl = function _extDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #doubling-dbl-2008-hwcd\n // 4M + 4S\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = 2 * Z1^2\n var c = this.z.redSqr();\n c = c.redIAdd(c);\n // D = a * A\n var d = this.curve._mulA(a);\n // E = (X1 + Y1)^2 - A - B\n var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);\n // G = D + B\n var g = d.redAdd(b);\n // F = G - C\n var f = g.redSub(c);\n // H = D - B\n var h = d.redSub(b);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projDbl = function _projDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #doubling-dbl-2008-bbjlp\n // #doubling-dbl-2007-bl\n // and others\n // Generally 3M + 4S or 2M + 4S\n\n // B = (X1 + Y1)^2\n var b = this.x.redAdd(this.y).redSqr();\n // C = X1^2\n var c = this.x.redSqr();\n // D = Y1^2\n var d = this.y.redSqr();\n\n var nx;\n var ny;\n var nz;\n var e;\n var h;\n var j;\n if (this.curve.twisted) {\n // E = a * C\n e = this.curve._mulA(c);\n // F = E + D\n var f = e.redAdd(d);\n if (this.zOne) {\n // X3 = (B - C - D) * (F - 2)\n nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F^2 - 2 * F\n nz = f.redSqr().redSub(f).redSub(f);\n } else {\n // H = Z1^2\n h = this.z.redSqr();\n // J = F - 2 * H\n j = f.redSub(h).redISub(h);\n // X3 = (B-C-D)*J\n nx = b.redSub(c).redISub(d).redMul(j);\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F * J\n nz = f.redMul(j);\n }\n } else {\n // E = C + D\n e = c.redAdd(d);\n // H = (c * Z1)^2\n h = this.curve._mulC(this.z).redSqr();\n // J = E - 2 * H\n j = e.redSub(h).redSub(h);\n // X3 = c * (B - E) * J\n nx = this.curve._mulC(b.redISub(e)).redMul(j);\n // Y3 = c * E * (C - D)\n ny = this.curve._mulC(e).redMul(c.redISub(d));\n // Z3 = E * J\n nz = e.redMul(j);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n // Double in extended coordinates\n if (this.curve.extended)\n return this._extDbl();\n else\n return this._projDbl();\n};\n\nPoint.prototype._extAdd = function _extAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #addition-add-2008-hwcd-3\n // 8M\n\n // A = (Y1 - X1) * (Y2 - X2)\n var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));\n // B = (Y1 + X1) * (Y2 + X2)\n var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));\n // C = T1 * k * T2\n var c = this.t.redMul(this.curve.dd).redMul(p.t);\n // D = Z1 * 2 * Z2\n var d = this.z.redMul(p.z.redAdd(p.z));\n // E = B - A\n var e = b.redSub(a);\n // F = D - C\n var f = d.redSub(c);\n // G = D + C\n var g = d.redAdd(c);\n // H = B + A\n var h = b.redAdd(a);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projAdd = function _projAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #addition-add-2008-bbjlp\n // #addition-add-2007-bl\n // 10M + 1S\n\n // A = Z1 * Z2\n var a = this.z.redMul(p.z);\n // B = A^2\n var b = a.redSqr();\n // C = X1 * X2\n var c = this.x.redMul(p.x);\n // D = Y1 * Y2\n var d = this.y.redMul(p.y);\n // E = d * C * D\n var e = this.curve.d.redMul(c).redMul(d);\n // F = B - E\n var f = b.redSub(e);\n // G = B + E\n var g = b.redAdd(e);\n // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)\n var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);\n var nx = a.redMul(f).redMul(tmp);\n var ny;\n var nz;\n if (this.curve.twisted) {\n // Y3 = A * G * (D - a * C)\n ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));\n // Z3 = F * G\n nz = f.redMul(g);\n } else {\n // Y3 = A * G * (D - C)\n ny = a.redMul(g).redMul(d.redSub(c));\n // Z3 = c * F * G\n nz = this.curve._mulC(f).redMul(g);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.add = function add(p) {\n if (this.isInfinity())\n return p;\n if (p.isInfinity())\n return this;\n\n if (this.curve.extended)\n return this._extAdd(p);\n else\n return this._projAdd(p);\n};\n\nPoint.prototype.mul = function mul(k) {\n if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, false);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, true);\n};\n\nPoint.prototype.normalize = function normalize() {\n if (this.zOne)\n return this;\n\n // Normalize coordinates\n var zi = this.z.redInvm();\n this.x = this.x.redMul(zi);\n this.y = this.y.redMul(zi);\n if (this.t)\n this.t = this.t.redMul(zi);\n this.z = this.curve.one;\n this.zOne = true;\n return this;\n};\n\nPoint.prototype.neg = function neg() {\n return this.curve.point(this.x.redNeg(),\n this.y,\n this.z,\n this.t && this.t.redNeg());\n};\n\nPoint.prototype.getX = function getX() {\n this.normalize();\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n this.normalize();\n return this.y.fromRed();\n};\n\nPoint.prototype.eq = function eq(other) {\n return this === other ||\n this.getX().cmp(other.getX()) === 0 &&\n this.getY().cmp(other.getY()) === 0;\n};\n\nPoint.prototype.eqXToP = function eqXToP(x) {\n var rx = x.toRed(this.curve.red).redMul(this.z);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(this.z);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\n// Compatibility with BaseCurve\nPoint.prototype.toP = Point.prototype.normalize;\nPoint.prototype.mixedAdd = Point.prototype.add;\n","'use strict';\n\nvar curve = exports;\n\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');\n","module.exports = {\n doubles: {\n step: 4,\n points: [\n [\n 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',\n 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821',\n ],\n [\n '8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',\n '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf',\n ],\n [\n '175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',\n 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695',\n ],\n [\n '363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',\n '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9',\n ],\n [\n '8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',\n '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36',\n ],\n [\n '723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',\n '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f',\n ],\n [\n 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',\n '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999',\n ],\n [\n '100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',\n 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09',\n ],\n [\n 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',\n '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d',\n ],\n [\n 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',\n 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088',\n ],\n [\n 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',\n '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d',\n ],\n [\n '53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',\n '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8',\n ],\n [\n '8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',\n '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a',\n ],\n [\n '385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',\n '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453',\n ],\n [\n '6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',\n '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160',\n ],\n [\n '3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',\n '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0',\n ],\n [\n '85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',\n '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6',\n ],\n [\n '948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',\n '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589',\n ],\n [\n '6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',\n 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17',\n ],\n [\n 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',\n '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda',\n ],\n [\n 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',\n '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd',\n ],\n [\n '213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',\n '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2',\n ],\n [\n '4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',\n '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6',\n ],\n [\n 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',\n '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f',\n ],\n [\n '76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',\n 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01',\n ],\n [\n 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',\n '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3',\n ],\n [\n 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',\n 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f',\n ],\n [\n 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',\n '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7',\n ],\n [\n 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',\n 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78',\n ],\n [\n 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',\n '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1',\n ],\n [\n '90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',\n 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150',\n ],\n [\n '8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',\n '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82',\n ],\n [\n 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',\n '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc',\n ],\n [\n '8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',\n 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b',\n ],\n [\n 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',\n '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51',\n ],\n [\n 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',\n '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45',\n ],\n [\n 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',\n 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120',\n ],\n [\n '324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',\n '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84',\n ],\n [\n '4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',\n '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d',\n ],\n [\n '9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',\n 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d',\n ],\n [\n '6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',\n '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8',\n ],\n [\n 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',\n '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8',\n ],\n [\n '7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',\n '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac',\n ],\n [\n '928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',\n 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f',\n ],\n [\n '85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',\n '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962',\n ],\n [\n 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',\n '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907',\n ],\n [\n '827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',\n 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec',\n ],\n [\n 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',\n 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d',\n ],\n [\n 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',\n '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414',\n ],\n [\n '1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',\n 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd',\n ],\n [\n '146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',\n 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0',\n ],\n [\n 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',\n '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811',\n ],\n [\n 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',\n '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1',\n ],\n [\n 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',\n '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c',\n ],\n [\n '174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',\n 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73',\n ],\n [\n '959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',\n '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd',\n ],\n [\n 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',\n 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405',\n ],\n [\n '64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',\n 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589',\n ],\n [\n '8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',\n '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e',\n ],\n [\n '13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',\n '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27',\n ],\n [\n 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',\n 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1',\n ],\n [\n '8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',\n '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482',\n ],\n [\n '8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',\n '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945',\n ],\n [\n 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',\n '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573',\n ],\n [\n 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',\n 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82',\n ],\n ],\n },\n naf: {\n wnd: 7,\n points: [\n [\n 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',\n '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672',\n ],\n [\n '2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',\n 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6',\n ],\n [\n '5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',\n '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da',\n ],\n [\n 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',\n 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37',\n ],\n [\n '774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',\n 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b',\n ],\n [\n 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',\n 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81',\n ],\n [\n 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',\n '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58',\n ],\n [\n 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',\n '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77',\n ],\n [\n '2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',\n '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a',\n ],\n [\n '352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',\n '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c',\n ],\n [\n '2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',\n '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67',\n ],\n [\n '9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',\n '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402',\n ],\n [\n 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',\n 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55',\n ],\n [\n 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',\n '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482',\n ],\n [\n '6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',\n 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82',\n ],\n [\n '1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',\n 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396',\n ],\n [\n '605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',\n '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49',\n ],\n [\n '62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',\n '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf',\n ],\n [\n '80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',\n '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a',\n ],\n [\n '7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',\n 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7',\n ],\n [\n 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',\n 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933',\n ],\n [\n '49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',\n '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a',\n ],\n [\n '77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',\n '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6',\n ],\n [\n 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',\n 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37',\n ],\n [\n '463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',\n '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e',\n ],\n [\n 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',\n 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6',\n ],\n [\n 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',\n 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476',\n ],\n [\n '2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',\n '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40',\n ],\n [\n '7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',\n '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61',\n ],\n [\n '754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',\n '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683',\n ],\n [\n 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',\n '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5',\n ],\n [\n '186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',\n '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b',\n ],\n [\n 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',\n '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417',\n ],\n [\n '5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',\n 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868',\n ],\n [\n '290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',\n 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a',\n ],\n [\n 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',\n 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6',\n ],\n [\n '766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',\n '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996',\n ],\n [\n '59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',\n 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e',\n ],\n [\n 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',\n 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d',\n ],\n [\n '7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',\n '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2',\n ],\n [\n '948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',\n 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e',\n ],\n [\n '7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',\n '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437',\n ],\n [\n '3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',\n 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311',\n ],\n [\n 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',\n '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4',\n ],\n [\n '1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',\n '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575',\n ],\n [\n '733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',\n 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d',\n ],\n [\n '15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',\n 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d',\n ],\n [\n 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',\n 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629',\n ],\n [\n 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',\n 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06',\n ],\n [\n '311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',\n '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374',\n ],\n [\n '34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',\n '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee',\n ],\n [\n 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',\n '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1',\n ],\n [\n 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',\n 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b',\n ],\n [\n '32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',\n '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661',\n ],\n [\n '7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',\n '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6',\n ],\n [\n 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',\n '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e',\n ],\n [\n '16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',\n '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d',\n ],\n [\n 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',\n 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc',\n ],\n [\n '78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',\n 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4',\n ],\n [\n '494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',\n '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c',\n ],\n [\n 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',\n '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b',\n ],\n [\n 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',\n '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913',\n ],\n [\n '841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',\n '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154',\n ],\n [\n '5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',\n '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865',\n ],\n [\n '36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',\n 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc',\n ],\n [\n '336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',\n 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224',\n ],\n [\n '8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',\n '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e',\n ],\n [\n '1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',\n '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6',\n ],\n [\n '85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',\n '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511',\n ],\n [\n '29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',\n 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b',\n ],\n [\n 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',\n 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2',\n ],\n [\n '4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',\n 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c',\n ],\n [\n 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',\n '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3',\n ],\n [\n 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',\n '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d',\n ],\n [\n 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',\n '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700',\n ],\n [\n 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',\n '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4',\n ],\n [\n '591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',\n 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196',\n ],\n [\n '11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',\n '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4',\n ],\n [\n '3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',\n 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257',\n ],\n [\n 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',\n 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13',\n ],\n [\n 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',\n '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096',\n ],\n [\n 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',\n 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38',\n ],\n [\n 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',\n '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f',\n ],\n [\n '347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',\n '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448',\n ],\n [\n 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',\n '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a',\n ],\n [\n 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',\n '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4',\n ],\n [\n '4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',\n '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437',\n ],\n [\n '3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',\n 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7',\n ],\n [\n 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',\n '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d',\n ],\n [\n 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',\n '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a',\n ],\n [\n 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',\n '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54',\n ],\n [\n '48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',\n '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77',\n ],\n [\n 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',\n 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517',\n ],\n [\n '6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',\n 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10',\n ],\n [\n 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',\n 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125',\n ],\n [\n 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',\n '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e',\n ],\n [\n '13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',\n 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1',\n ],\n [\n 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',\n '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2',\n ],\n [\n 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',\n '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423',\n ],\n [\n 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',\n '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8',\n ],\n [\n '8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',\n 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758',\n ],\n [\n '52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',\n 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375',\n ],\n [\n 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',\n '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d',\n ],\n [\n '7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',\n 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec',\n ],\n [\n '5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',\n '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0',\n ],\n [\n '32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',\n 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c',\n ],\n [\n 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',\n 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4',\n ],\n [\n '8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',\n 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f',\n ],\n [\n '4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',\n '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649',\n ],\n [\n '3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',\n 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826',\n ],\n [\n '674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',\n '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5',\n ],\n [\n 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',\n 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87',\n ],\n [\n '30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',\n '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b',\n ],\n [\n 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',\n '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc',\n ],\n [\n '93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',\n '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c',\n ],\n [\n 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',\n 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f',\n ],\n [\n 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',\n '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a',\n ],\n [\n 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',\n 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46',\n ],\n [\n '463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',\n 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f',\n ],\n [\n '7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',\n '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03',\n ],\n [\n '74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',\n 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08',\n ],\n [\n '30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',\n '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8',\n ],\n [\n '9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',\n '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373',\n ],\n [\n '176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',\n 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3',\n ],\n [\n '75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',\n '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8',\n ],\n [\n '809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',\n '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1',\n ],\n [\n '1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',\n '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9',\n ],\n ],\n },\n};\n","'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\nvar curve = require('./curve');\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve.edwards(options);\n else\n this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve,\n });\n return curve;\n },\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811',\n ],\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34',\n ],\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5',\n ],\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f',\n ],\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650',\n ],\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9',\n ],\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658',\n ],\n});\n\nvar pre;\ntry {\n pre = require('./precomputed/secp256k1');\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3',\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15',\n },\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre,\n ],\n});\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction KeyPair(ec, options) {\n this.ec = ec;\n this.priv = null;\n this.pub = null;\n\n // KeyPair(ec, { priv: ..., pub: ... })\n if (options.priv)\n this._importPrivate(options.priv, options.privEnc);\n if (options.pub)\n this._importPublic(options.pub, options.pubEnc);\n}\nmodule.exports = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n if (pub instanceof KeyPair)\n return pub;\n\n return new KeyPair(ec, {\n pub: pub,\n pubEnc: enc,\n });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n if (priv instanceof KeyPair)\n return priv;\n\n return new KeyPair(ec, {\n priv: priv,\n privEnc: enc,\n });\n};\n\nKeyPair.prototype.validate = function validate() {\n var pub = this.getPublic();\n\n if (pub.isInfinity())\n return { result: false, reason: 'Invalid public key' };\n if (!pub.validate())\n return { result: false, reason: 'Public key is not a point' };\n if (!pub.mul(this.ec.curve.n).isInfinity())\n return { result: false, reason: 'Public key * N != O' };\n\n return { result: true, reason: null };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n // compact is optional argument\n if (typeof compact === 'string') {\n enc = compact;\n compact = null;\n }\n\n if (!this.pub)\n this.pub = this.ec.g.mul(this.priv);\n\n if (!enc)\n return this.pub;\n\n return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n if (enc === 'hex')\n return this.priv.toString(16, 2);\n else\n return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n this.priv = new BN(key, enc || 16);\n\n // Ensure that the priv won't be bigger than n, otherwise we may fail\n // in fixed multiplication method\n this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n if (key.x || key.y) {\n // Montgomery points only have an `x` coordinate.\n // Weierstrass/Edwards points on the other hand have both `x` and\n // `y` coordinates.\n if (this.ec.curve.type === 'mont') {\n assert(key.x, 'Need x coordinate');\n } else if (this.ec.curve.type === 'short' ||\n this.ec.curve.type === 'edwards') {\n assert(key.x && key.y, 'Need both x and y coordinate');\n }\n this.pub = this.ec.curve.point(key.x, key.y);\n return;\n }\n this.pub = this.ec.curve.decodePoint(key, enc);\n};\n\n// ECDH\nKeyPair.prototype.derive = function derive(pub) {\n if(!pub.validate()) {\n assert(pub.validate(), 'public point not validated');\n }\n return pub.mul(this.priv).getX();\n};\n\n// ECDSA\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature, options) {\n return this.ec.verify(msg, signature, this, undefined, options);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n return '';\n};\n","'use strict';\n\nvar BN = require('bn.js');\n\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature)\n return options;\n\n if (this._importDER(options, enc))\n return;\n\n assert(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined)\n this.recoveryParam = null;\n else\n this.recoveryParam = options.recoveryParam;\n}\nmodule.exports = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n if (!(initial & 0x80)) {\n return initial;\n }\n var octetLen = initial & 0xf;\n\n // Indefinite length or overflow\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n\n if(buf[p.place] === 0x00) {\n return false;\n }\n\n var val = 0;\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n }\n\n // Leading zeroes\n if (val <= 0x7f) {\n return false;\n }\n\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n if (i === 0) {\n return buf;\n }\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils.toArray(data, enc);\n var p = new Position();\n if (data[p.place++] !== 0x30) {\n return false;\n }\n var len = getLength(data, p);\n if (len === false) {\n return false;\n }\n if ((len + p.place) !== data.length) {\n return false;\n }\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var rlen = getLength(data, p);\n if (rlen === false) {\n return false;\n }\n if ((data[p.place] & 128) !== 0) {\n return false;\n }\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var slen = getLength(data, p);\n if (slen === false) {\n return false;\n }\n if (data.length !== slen + p.place) {\n return false;\n }\n if ((data[p.place] & 128) !== 0) {\n return false;\n }\n var s = data.slice(p.place, slen + p.place);\n if (r[0] === 0) {\n if (r[1] & 0x80) {\n r = r.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n if (s[0] === 0) {\n if (s[1] & 0x80) {\n s = s.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n while (--octets) {\n arr.push((len >>> (octets << 3)) & 0xff);\n }\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray();\n\n // Pad values\n if (r[0] & 0x80)\n r = [ 0 ].concat(r);\n // Pad values\n if (s[0] & 0x80)\n s = [ 0 ].concat(s);\n\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n var arr = [ 0x02 ];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [ 0x30 ];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils.encode(res, enc);\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar HmacDRBG = require('hmac-drbg');\nvar utils = require('../utils');\nvar curves = require('../curves');\nvar rand = require('brorand');\nvar assert = utils.assert;\n\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EC(options) {\n if (!(this instanceof EC))\n return new EC(options);\n\n // Shortcut `elliptic.ec(curve-name)`\n if (typeof options === 'string') {\n assert(Object.prototype.hasOwnProperty.call(curves, options),\n 'Unknown curve ' + options);\n\n options = curves[options];\n }\n\n // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n if (options instanceof curves.PresetCurve)\n options = { curve: options };\n\n this.curve = options.curve.curve;\n this.n = this.curve.n;\n this.nh = this.n.ushrn(1);\n this.g = this.curve.g;\n\n // Point on curve\n this.g = options.curve.g;\n this.g.precompute(options.curve.n.bitLength() + 1);\n\n // Hash for function for DRBG\n this.hash = options.hash || options.curve.hash;\n}\nmodule.exports = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n return new KeyPair(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n return KeyPair.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n return KeyPair.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n if (!options)\n options = {};\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n entropy: options.entropy || rand(this.hash.hmacStrength),\n entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n nonce: this.n.toArray(),\n });\n\n var bytes = this.n.byteLength();\n var ns2 = this.n.sub(new BN(2));\n for (;;) {\n var priv = new BN(drbg.generate(bytes));\n if (priv.cmp(ns2) > 0)\n continue;\n\n priv.iaddn(1);\n return this.keyFromPrivate(priv);\n }\n};\n\nEC.prototype._truncateToN = function _truncateToN(msg, truncOnly, bitLength) {\n var byteLength;\n if (BN.isBN(msg) || typeof msg === 'number') {\n msg = new BN(msg, 16);\n byteLength = msg.byteLength();\n } else if (typeof msg === 'object') {\n // BN assumes an array-like input and asserts length\n byteLength = msg.length;\n msg = new BN(msg, 16);\n } else {\n // BN converts the value to string\n var str = msg.toString();\n // HEX encoding\n byteLength = (str.length + 1) >>> 1;\n msg = new BN(str, 16);\n }\n // Allow overriding\n if (typeof bitLength !== 'number') {\n bitLength = byteLength * 8;\n }\n var delta = bitLength - this.n.bitLength();\n if (delta > 0)\n msg = msg.ushrn(delta);\n if (!truncOnly && msg.cmp(this.n) >= 0)\n return msg.sub(this.n);\n else\n return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n if (typeof enc === 'object') {\n options = enc;\n enc = null;\n }\n if (!options)\n options = {};\n\n if (typeof msg !== 'string' && typeof msg !== 'number' && !BN.isBN(msg)) {\n assert(typeof msg === 'object' && msg && typeof msg.length === 'number',\n 'Expected message to be an array-like, a hex string, or a BN instance');\n assert((msg.length >>> 0) === msg.length); // non-negative 32-bit integer\n for (var i = 0; i < msg.length; i++) assert((msg[i] & 255) === msg[i]);\n }\n\n key = this.keyFromPrivate(key, enc);\n msg = this._truncateToN(msg, false, options.msgBitLength);\n\n // Would fail further checks, but let's make the error message clear\n assert(!msg.isNeg(), 'Can not sign a negative message');\n\n // Zero-extend key to provide enough entropy\n var bytes = this.n.byteLength();\n var bkey = key.getPrivate().toArray('be', bytes);\n\n // Zero-extend nonce to have the same byte size as N\n var nonce = msg.toArray('be', bytes);\n\n // Recheck nonce to be bijective to msg\n assert((new BN(nonce)).eq(msg), 'Can not sign message');\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n entropy: bkey,\n nonce: nonce,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n });\n\n // Number of bytes to generate\n var ns1 = this.n.sub(new BN(1));\n\n for (var iter = 0; ; iter++) {\n var k = options.k ?\n options.k(iter) :\n new BN(drbg.generate(this.n.byteLength()));\n k = this._truncateToN(k, true);\n if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)\n continue;\n\n var kp = this.g.mul(k);\n if (kp.isInfinity())\n continue;\n\n var kpX = kp.getX();\n var r = kpX.umod(this.n);\n if (r.cmpn(0) === 0)\n continue;\n\n var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n s = s.umod(this.n);\n if (s.cmpn(0) === 0)\n continue;\n\n var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |\n (kpX.cmp(r) !== 0 ? 2 : 0);\n\n // Use complement of `s`, if it is > `n / 2`\n if (options.canonical && s.cmp(this.nh) > 0) {\n s = this.n.sub(s);\n recoveryParam ^= 1;\n }\n\n return new Signature({ r: r, s: s, recoveryParam: recoveryParam });\n }\n};\n\nEC.prototype.verify = function verify(msg, signature, key, enc, options) {\n if (!options)\n options = {};\n\n msg = this._truncateToN(msg, false, options.msgBitLength);\n key = this.keyFromPublic(key, enc);\n signature = new Signature(signature, 'hex');\n\n // Perform primitive values validation\n var r = signature.r;\n var s = signature.s;\n if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)\n return false;\n if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)\n return false;\n\n // Validate signature\n var sinv = s.invm(this.n);\n var u1 = sinv.mul(msg).umod(this.n);\n var u2 = sinv.mul(r).umod(this.n);\n var p;\n\n if (!this.curve._maxwellTrick) {\n p = this.g.mulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n return p.getX().umod(this.n).cmp(r) === 0;\n }\n\n // NOTE: Greg Maxwell's trick, inspired by:\n // https://git.io/vad3K\n\n p = this.g.jmulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n // Compare `p.x` of Jacobian point with `r`,\n // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n // inverse of `p.z^2`\n return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function(msg, signature, j, enc) {\n assert((3 & j) === j, 'The recovery param is more than two bits');\n signature = new Signature(signature, enc);\n\n var n = this.n;\n var e = new BN(msg);\n var r = signature.r;\n var s = signature.s;\n\n // A set LSB signifies that the y-coordinate is odd\n var isYOdd = j & 1;\n var isSecondKey = j >> 1;\n if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)\n throw new Error('Unable to find sencond key candinate');\n\n // 1.1. Let x = r + jn.\n if (isSecondKey)\n r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);\n else\n r = this.curve.pointFromX(r, isYOdd);\n\n var rInv = signature.r.invm(n);\n var s1 = n.sub(e).mul(rInv).umod(n);\n var s2 = s.mul(rInv).umod(n);\n\n // 1.6.1 Compute Q = r^-1 (sR - eG)\n // Q = r^-1 (sR + -eG)\n return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {\n signature = new Signature(signature, enc);\n if (signature.recoveryParam !== null)\n return signature.recoveryParam;\n\n for (var i = 0; i < 4; i++) {\n var Qprime;\n try {\n Qprime = this.recoverPubKey(e, signature, i);\n } catch (e) {\n continue;\n }\n\n if (Qprime.eq(Q))\n return i;\n }\n throw new Error('Unable to find valid recovery factor');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar cachedProperty = utils.cachedProperty;\n\n/**\n* @param {EDDSA} eddsa - instance\n* @param {Object} params - public/private key parameters\n*\n* @param {Array} [params.secret] - secret seed bytes\n* @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)\n* @param {Array} [params.pub] - public key point encoded as bytes\n*\n*/\nfunction KeyPair(eddsa, params) {\n this.eddsa = eddsa;\n this._secret = parseBytes(params.secret);\n if (eddsa.isPoint(params.pub))\n this._pub = params.pub;\n else\n this._pubBytes = parseBytes(params.pub);\n}\n\nKeyPair.fromPublic = function fromPublic(eddsa, pub) {\n if (pub instanceof KeyPair)\n return pub;\n return new KeyPair(eddsa, { pub: pub });\n};\n\nKeyPair.fromSecret = function fromSecret(eddsa, secret) {\n if (secret instanceof KeyPair)\n return secret;\n return new KeyPair(eddsa, { secret: secret });\n};\n\nKeyPair.prototype.secret = function secret() {\n return this._secret;\n};\n\ncachedProperty(KeyPair, 'pubBytes', function pubBytes() {\n return this.eddsa.encodePoint(this.pub());\n});\n\ncachedProperty(KeyPair, 'pub', function pub() {\n if (this._pubBytes)\n return this.eddsa.decodePoint(this._pubBytes);\n return this.eddsa.g.mul(this.priv());\n});\n\ncachedProperty(KeyPair, 'privBytes', function privBytes() {\n var eddsa = this.eddsa;\n var hash = this.hash();\n var lastIx = eddsa.encodingLength - 1;\n\n var a = hash.slice(0, eddsa.encodingLength);\n a[0] &= 248;\n a[lastIx] &= 127;\n a[lastIx] |= 64;\n\n return a;\n});\n\ncachedProperty(KeyPair, 'priv', function priv() {\n return this.eddsa.decodeInt(this.privBytes());\n});\n\ncachedProperty(KeyPair, 'hash', function hash() {\n return this.eddsa.hash().update(this.secret()).digest();\n});\n\ncachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {\n return this.hash().slice(this.eddsa.encodingLength);\n});\n\nKeyPair.prototype.sign = function sign(message) {\n assert(this._secret, 'KeyPair can only verify');\n return this.eddsa.sign(message, this);\n};\n\nKeyPair.prototype.verify = function verify(message, sig) {\n return this.eddsa.verify(message, sig, this);\n};\n\nKeyPair.prototype.getSecret = function getSecret(enc) {\n assert(this._secret, 'KeyPair is public only');\n return utils.encode(this.secret(), enc);\n};\n\nKeyPair.prototype.getPublic = function getPublic(enc) {\n return utils.encode(this.pubBytes(), enc);\n};\n\nmodule.exports = KeyPair;\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar cachedProperty = utils.cachedProperty;\nvar parseBytes = utils.parseBytes;\n\n/**\n* @param {EDDSA} eddsa - eddsa instance\n* @param {Array|Object} sig -\n* @param {Array|Point} [sig.R] - R point as Point or bytes\n* @param {Array|bn} [sig.S] - S scalar as bn or bytes\n* @param {Array} [sig.Rencoded] - R point encoded\n* @param {Array} [sig.Sencoded] - S scalar encoded\n*/\nfunction Signature(eddsa, sig) {\n this.eddsa = eddsa;\n\n if (typeof sig !== 'object')\n sig = parseBytes(sig);\n\n if (Array.isArray(sig)) {\n assert(sig.length === eddsa.encodingLength * 2, 'Signature has invalid size');\n sig = {\n R: sig.slice(0, eddsa.encodingLength),\n S: sig.slice(eddsa.encodingLength),\n };\n }\n\n assert(sig.R && sig.S, 'Signature without R or S');\n\n if (eddsa.isPoint(sig.R))\n this._R = sig.R;\n if (sig.S instanceof BN)\n this._S = sig.S;\n\n this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;\n this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;\n}\n\ncachedProperty(Signature, 'S', function S() {\n return this.eddsa.decodeInt(this.Sencoded());\n});\n\ncachedProperty(Signature, 'R', function R() {\n return this.eddsa.decodePoint(this.Rencoded());\n});\n\ncachedProperty(Signature, 'Rencoded', function Rencoded() {\n return this.eddsa.encodePoint(this.R());\n});\n\ncachedProperty(Signature, 'Sencoded', function Sencoded() {\n return this.eddsa.encodeInt(this.S());\n});\n\nSignature.prototype.toBytes = function toBytes() {\n return this.Rencoded().concat(this.Sencoded());\n};\n\nSignature.prototype.toHex = function toHex() {\n return utils.encode(this.toBytes(), 'hex').toUpperCase();\n};\n\nmodule.exports = Signature;\n","'use strict';\n\nvar hash = require('hash.js');\nvar curves = require('../curves');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EDDSA(curve) {\n assert(curve === 'ed25519', 'only tested with ed25519 so far');\n\n if (!(this instanceof EDDSA))\n return new EDDSA(curve);\n\n curve = curves[curve].curve;\n this.curve = curve;\n this.g = curve.g;\n this.g.precompute(curve.n.bitLength() + 1);\n\n this.pointClass = curve.point().constructor;\n this.encodingLength = Math.ceil(curve.n.bitLength() / 8);\n this.hash = hash.sha512;\n}\n\nmodule.exports = EDDSA;\n\n/**\n* @param {Array|String} message - message bytes\n* @param {Array|String|KeyPair} secret - secret bytes or a keypair\n* @returns {Signature} - signature\n*/\nEDDSA.prototype.sign = function sign(message, secret) {\n message = parseBytes(message);\n var key = this.keyFromSecret(secret);\n var r = this.hashInt(key.messagePrefix(), message);\n var R = this.g.mul(r);\n var Rencoded = this.encodePoint(R);\n var s_ = this.hashInt(Rencoded, key.pubBytes(), message)\n .mul(key.priv());\n var S = r.add(s_).umod(this.curve.n);\n return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });\n};\n\n/**\n* @param {Array} message - message bytes\n* @param {Array|String|Signature} sig - sig bytes\n* @param {Array|String|Point|KeyPair} pub - public key\n* @returns {Boolean} - true if public key matches sig of message\n*/\nEDDSA.prototype.verify = function verify(message, sig, pub) {\n message = parseBytes(message);\n sig = this.makeSignature(sig);\n if (sig.S().gte(sig.eddsa.curve.n) || sig.S().isNeg()) {\n return false;\n }\n var key = this.keyFromPublic(pub);\n var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);\n var SG = this.g.mul(sig.S());\n var RplusAh = sig.R().add(key.pub().mul(h));\n return RplusAh.eq(SG);\n};\n\nEDDSA.prototype.hashInt = function hashInt() {\n var hash = this.hash();\n for (var i = 0; i < arguments.length; i++)\n hash.update(arguments[i]);\n return utils.intFromLE(hash.digest()).umod(this.curve.n);\n};\n\nEDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {\n return KeyPair.fromPublic(this, pub);\n};\n\nEDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {\n return KeyPair.fromSecret(this, secret);\n};\n\nEDDSA.prototype.makeSignature = function makeSignature(sig) {\n if (sig instanceof Signature)\n return sig;\n return new Signature(this, sig);\n};\n\n/**\n* * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2\n*\n* EDDSA defines methods for encoding and decoding points and integers. These are\n* helper convenience methods, that pass along to utility functions implied\n* parameters.\n*\n*/\nEDDSA.prototype.encodePoint = function encodePoint(point) {\n var enc = point.getY().toArray('le', this.encodingLength);\n enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0;\n return enc;\n};\n\nEDDSA.prototype.decodePoint = function decodePoint(bytes) {\n bytes = utils.parseBytes(bytes);\n\n var lastIx = bytes.length - 1;\n var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80);\n var xIsOdd = (bytes[lastIx] & 0x80) !== 0;\n\n var y = utils.intFromLE(normed);\n return this.curve.pointFromY(y, xIsOdd);\n};\n\nEDDSA.prototype.encodeInt = function encodeInt(num) {\n return num.toArray('le', this.encodingLength);\n};\n\nEDDSA.prototype.decodeInt = function decodeInt(bytes) {\n return utils.intFromLE(bytes);\n};\n\nEDDSA.prototype.isPoint = function isPoint(val) {\n return val instanceof this.pointClass;\n};\n","'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = require('../package.json').version;\nelliptic.utils = require('./elliptic/utils');\nelliptic.rand = require('brorand');\nelliptic.curve = require('./elliptic/curve');\nelliptic.curves = require('./elliptic/curves');\n\n// Protocols\nelliptic.ec = require('./elliptic/ec');\nelliptic.eddsa = require('./elliptic/eddsa');\n","function e(s,r,i=\"string\"){if(!s[r]||typeof s[r]!==i)throw new Error(`Missing or invalid \"${r}\" param`)}function l(s,r){let i=!0;return r.forEach(t=>{t in s||(i=!1)}),i}function f(s,r){return Array.isArray(s)?s.length===r:Object.keys(s).length===r}function w(s,r){return Array.isArray(s)?s.length>=r:Object.keys(s).length>=r}function u(s,r,i){return(i.length?w(s,r.length):f(s,r.length))?l(s,r):!1}function n(s,r,i=\"_\"){const t=s.split(i);return t[t.length-1].trim().toLowerCase()===r.trim().toLowerCase()}function R(s){return b(s.method)&&a(s.params)}function b(s){return n(s,\"subscribe\")}function a(s){return u(s,[\"topic\"],[])}function P(s){return c(s.method)&&h(s.params)}function c(s){return n(s,\"publish\")}function h(s){return u(s,[\"message\",\"topic\",\"ttl\"],[\"prompt\",\"tag\"])}function _(s){return o(s.method)&&p(s.params)}function o(s){return n(s,\"unsubscribe\")}function p(s){return u(s,[\"id\",\"topic\"],[])}function S(s){return m(s.method)&&d(s.params)}function m(s){return n(s,\"subscription\")}function d(s){return u(s,[\"id\",\"data\"],[])}function g(s){if(!b(s.method))throw new Error(\"JSON-RPC Request has invalid subscribe method\");if(!a(s.params))throw new Error(\"JSON-RPC Request has invalid subscribe params\");const r=s.params;return e(r,\"topic\"),r}function q(s){if(!c(s.method))throw new Error(\"JSON-RPC Request has invalid publish method\");if(!h(s.params))throw new Error(\"JSON-RPC Request has invalid publish params\");const r=s.params;return e(r,\"topic\"),e(r,\"message\"),e(r,\"ttl\",\"number\"),r}function E(s){if(!o(s.method))throw new Error(\"JSON-RPC Request has invalid unsubscribe method\");if(!p(s.params))throw new Error(\"JSON-RPC Request has invalid unsubscribe params\");const r=s.params;return e(r,\"id\"),r}function k(s){if(!m(s.method))throw new Error(\"JSON-RPC Request has invalid subscription method\");if(!d(s.params))throw new Error(\"JSON-RPC Request has invalid subscription params\");const r=s.params;return e(r,\"id\"),e(r,\"data\"),r}const C={waku:{publish:\"waku_publish\",batchPublish:\"waku_batchPublish\",subscribe:\"waku_subscribe\",batchSubscribe:\"waku_batchSubscribe\",subscription:\"waku_subscription\",unsubscribe:\"waku_unsubscribe\",batchUnsubscribe:\"waku_batchUnsubscribe\",batchFetchMessages:\"waku_batchFetchMessages\"},irn:{publish:\"irn_publish\",batchPublish:\"irn_batchPublish\",subscribe:\"irn_subscribe\",batchSubscribe:\"irn_batchSubscribe\",subscription:\"irn_subscription\",unsubscribe:\"irn_unsubscribe\",batchUnsubscribe:\"irn_batchUnsubscribe\",batchFetchMessages:\"irn_batchFetchMessages\"},iridium:{publish:\"iridium_publish\",batchPublish:\"iridium_batchPublish\",subscribe:\"iridium_subscribe\",batchSubscribe:\"iridium_batchSubscribe\",subscription:\"iridium_subscription\",unsubscribe:\"iridium_unsubscribe\",batchUnsubscribe:\"iridium_batchUnsubscribe\",batchFetchMessages:\"iridium_batchFetchMessages\"}};export{C as RELAY_JSONRPC,c as isPublishMethod,h as isPublishParams,P as isPublishRequest,b as isSubscribeMethod,a as isSubscribeParams,R as isSubscribeRequest,m as isSubscriptionMethod,d as isSubscriptionParams,S as isSubscriptionRequest,o as isUnsubscribeMethod,p as isUnsubscribeParams,_ as isUnsubscribeRequest,q as parsePublishRequest,g as parseSubscribeRequest,k as parseSubscriptionRequest,E as parseUnsubscribeRequest};\n//# sourceMappingURL=index.es.js.map\n","import{detect as ot}from\"detect-browser\";import{toMiliseconds as ee,FIVE_MINUTES as Ie,fromMiliseconds as st}from\"@walletconnect/time\";import{getDocument as ne,getNavigator as Pe,getLocation as je}from\"@walletconnect/window-getters\";import{getWindowMetadata as it}from\"@walletconnect/window-metadata\";import*as q from\"query-string\";import{hashMessage as Te}from\"@ethersproject/hash\";import{recoverAddress as ct}from\"@ethersproject/transactions\";import{ChaCha20Poly1305 as Ae}from\"@stablelib/chacha20poly1305\";import{HKDF as at}from\"@stablelib/hkdf\";import{randomBytes as B}from\"@stablelib/random\";import{SHA256 as Ce,hash as Ue}from\"@stablelib/sha256\";import*as _e from\"@stablelib/x25519\";import{toString as v,fromString as w,concat as te}from\"uint8arrays\";import{ec as ut}from\"elliptic\";import{decodeJWT as lt}from\"@walletconnect/relay-auth\";import{RELAY_JSONRPC as dt}from\"@walletconnect/relay-api\";const H=\":\";function re(e){const[n,t]=e.split(H);return{namespace:n,reference:t}}function ke(e){const{namespace:n,reference:t}=e;return[n,t].join(H)}function oe(e){const[n,t,r]=e.split(H);return{namespace:n,reference:t,address:r}}function De(e){const{namespace:n,reference:t,address:r}=e;return[n,t,r].join(H)}function se(e,n){const t=[];return e.forEach(r=>{const o=n(r);t.includes(o)||t.push(o)}),t}function xe(e){const{address:n}=oe(e);return n}function Ve(e){const{namespace:n,reference:t}=oe(e);return ke({namespace:n,reference:t})}function ft(e,n){const{namespace:t,reference:r}=re(n);return De({namespace:t,reference:r,address:e})}function pt(e){return se(e,xe)}function Me(e){return se(e,Ve)}function mt(e,n=[]){const t=[];return Object.keys(e).forEach(r=>{if(n.length&&!n.includes(r))return;const o=e[r];t.push(...o.accounts)}),t}function ht(e,n=[]){const t=[];return Object.keys(e).forEach(r=>{if(n.length&&!n.includes(r))return;const o=e[r];t.push(...Me(o.accounts))}),t}function yt(e,n=[]){const t=[];return Object.keys(e).forEach(r=>{if(n.length&&!n.includes(r))return;const o=e[r];t.push(...W(r,o))}),t}function W(e,n){return e.includes(\":\")?[e]:n.chains||[]}var gt=Object.defineProperty,Ke=Object.getOwnPropertySymbols,vt=Object.prototype.hasOwnProperty,bt=Object.prototype.propertyIsEnumerable,Le=(e,n,t)=>n in e?gt(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,Fe=(e,n)=>{for(var t in n||(n={}))vt.call(n,t)&&Le(e,t,n[t]);if(Ke)for(var t of Ke(n))bt.call(n,t)&&Le(e,t,n[t]);return e};const qe=\"ReactNative\",y={reactNative:\"react-native\",node:\"node\",browser:\"browser\",unknown:\"unknown\"},J=\" \",Et=\":\",Be=\"/\",ie=2,wt=1e3,He=\"js\";function ce(){return typeof process<\"u\"&&typeof process.versions<\"u\"&&typeof process.versions.node<\"u\"}function $(){return!ne()&&!!Pe()&&navigator.product===qe}function Ot(){return $()&&typeof global<\"u\"&&typeof(global==null?void 0:global.Platform)<\"u\"&&(global==null?void 0:global.Platform.OS)===\"android\"}function Nt(){return $()&&typeof global<\"u\"&&typeof(global==null?void 0:global.Platform)<\"u\"&&(global==null?void 0:global.Platform.OS)===\"ios\"}function V(){return!ce()&&!!Pe()&&!!ne()}function A(){return $()?y.reactNative:ce()?y.node:V()?y.browser:y.unknown}function St(){var e;try{return $()&&typeof global<\"u\"&&typeof(global==null?void 0:global.Application)<\"u\"?(e=global.Application)==null?void 0:e.applicationId:void 0}catch{return}}function We(e,n){let t=q.parse(e);return t=Fe(Fe({},t),n),e=q.stringify(t),e}function $t(){return it()||{name:\"\",description:\"\",url:\"\",icons:[\"\"]}}function Rt(e,n){var t;const r=A(),o={protocol:e,version:n,env:r};return r===\"browser\"&&(o.host=((t=je())==null?void 0:t.host)||\"unknown\"),o}function Je(){if(A()===y.reactNative&&typeof global<\"u\"&&typeof(global==null?void 0:global.Platform)<\"u\"){const{OS:t,Version:r}=global.Platform;return[t,r].join(\"-\")}const e=ot();if(e===null)return\"unknown\";const n=e.os?e.os.replace(\" \",\"\").toLowerCase():\"unknown\";return e.type===\"browser\"?[n,e.name,e.version].join(\"-\"):[n,e.version].join(\"-\")}function ze(){var e;const n=A();return n===y.browser?[n,((e=je())==null?void 0:e.host)||\"unknown\"].join(\":\"):n}function Ge(e,n,t){const r=Je(),o=ze();return[[e,n].join(\"-\"),[He,t].join(\"-\"),r,o].join(\"/\")}function It({protocol:e,version:n,relayUrl:t,sdkVersion:r,auth:o,projectId:s,useOnCloseEvent:i,bundleId:u,packageName:l}){const c=t.split(\"?\"),d=Ge(e,n,r),a={auth:o,ua:d,projectId:s,useOnCloseEvent:i||void 0,packageName:l||void 0,bundleId:u||void 0},f=We(c[1]||\"\",a);return c[0]+\"?\"+f}function Pt(e){let n=(e.match(/^[^:]+(?=:\\/\\/)/gi)||[])[0];const t=typeof n<\"u\"?e.split(\"://\")[1]:e;return n=n===\"wss\"?\"https\":\"http\",[n,t].join(\"://\")}function jt(e,n,t){if(!e[n]||typeof e[n]!==t)throw new Error(`Missing or invalid \"${n}\" param`)}function Ye(e,n=ie){return Qe(e.split(Be),n)}function Tt(e){return Ye(e).join(J)}function R(e,n){return e.filter(t=>n.includes(t)).length===e.length}function Qe(e,n=ie){return e.slice(Math.max(e.length-n,0))}function At(e){return Object.fromEntries(e.entries())}function Ct(e){return new Map(Object.entries(e))}function Ut(e,n){const t={};return Object.keys(e).forEach(r=>{t[r]=n(e[r])}),t}const _t=e=>e;function Ze(e){return e.trim().replace(/^\\w/,n=>n.toUpperCase())}function kt(e){return e.split(J).map(n=>Ze(n)).join(J)}function Dt(e=Ie,n){const t=ee(e||Ie);let r,o,s,i;return{resolve:u=>{s&&r&&(clearTimeout(s),r(u),i=Promise.resolve(u))},reject:u=>{s&&o&&(clearTimeout(s),o(u))},done:()=>new Promise((u,l)=>{if(i)return u(i);s=setTimeout(()=>{const c=new Error(n);i=Promise.reject(c),l(c)},t),r=u,o=l})}}function xt(e,n,t){return new Promise(async(r,o)=>{const s=setTimeout(()=>o(new Error(t)),n);try{const i=await e;r(i)}catch(i){o(i)}clearTimeout(s)})}function ae(e,n){if(typeof n==\"string\"&&n.startsWith(`${e}:`))return n;if(e.toLowerCase()===\"topic\"){if(typeof n!=\"string\")throw new Error('Value must be \"string\" for expirer target type: topic');return`topic:${n}`}else if(e.toLowerCase()===\"id\"){if(typeof n!=\"number\")throw new Error('Value must be \"number\" for expirer target type: id');return`id:${n}`}throw new Error(`Unknown expirer target type: ${e}`)}function Vt(e){return ae(\"topic\",e)}function Mt(e){return ae(\"id\",e)}function Kt(e){const[n,t]=e.split(\":\"),r={id:void 0,topic:void 0};if(n===\"topic\"&&typeof t==\"string\")r.topic=t;else if(n===\"id\"&&Number.isInteger(Number(t)))r.id=Number(t);else throw new Error(`Invalid target, expected id:number or topic:string, got ${n}:${t}`);return r}function Lt(e,n){return st((n||Date.now())+ee(e))}function Ft(e){return Date.now()>=ee(e)}function qt(e,n){return`${e}${n?`:${n}`:\"\"}`}function N(e=[],n=[]){return[...new Set([...e,...n])]}async function Bt({id:e,topic:n,wcDeepLink:t}){var r;try{if(!t)return;const o=typeof t==\"string\"?JSON.parse(t):t,s=o?.href;if(typeof s!=\"string\")return;const i=Xe(s,e,n),u=A();if(u===y.browser){if(!((r=ne())!=null&&r.hasFocus())){console.warn(\"Document does not have focus, skipping deeplink.\");return}i.startsWith(\"https://\")||i.startsWith(\"http://\")?window.open(i,\"_blank\",\"noreferrer noopener\"):window.open(i,en()?\"_blank\":\"_self\",\"noreferrer noopener\")}else u===y.reactNative&&typeof(global==null?void 0:global.Linking)<\"u\"&&await global.Linking.openURL(i)}catch(o){console.error(o)}}function Xe(e,n,t){const r=`requestId=${n}&sessionTopic=${t}`;e.endsWith(\"/\")&&(e=e.slice(0,-1));let o=`${e}`;if(e.startsWith(\"https://t.me\")){const s=e.includes(\"?\")?\"&startapp=\":\"?startapp=\";o=`${o}${s}${nn(r,!0)}`}else o=`${o}/wc?${r}`;return o}async function Ht(e,n){let t=\"\";try{if(V()&&(t=localStorage.getItem(n),t))return t;t=await e.getItem(n)}catch(r){console.error(r)}return t}function ue(e,n){return e.filter(t=>n.includes(t))}function Wt(e,n){if(!e.includes(n))return null;const t=e.split(/([&,?,=])/),r=t.indexOf(n);return t[r+2]}function Jt(){return typeof crypto<\"u\"&&crypto!=null&&crypto.randomUUID?crypto.randomUUID():\"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/gu,e=>{const n=Math.random()*16|0;return(e===\"x\"?n:n&3|8).toString(16)})}function zt(){return typeof process<\"u\"&&process.env.IS_VITEST===\"true\"}function en(){return typeof window<\"u\"&&(!!window.TelegramWebviewProxy||!!window.Telegram||!!window.TelegramWebviewProxyProto)}function nn(e,n=!1){const t=Buffer.from(e).toString(\"base64\");return n?t.replace(/[=]/g,\"\"):t}function le(e){return Buffer.from(e,\"base64\").toString(\"utf-8\")}function Gt(e){return new Promise(n=>setTimeout(n,e))}const Yt=\"https://rpc.walletconnect.org/v1\";async function tn(e,n,t,r,o,s){switch(t.t){case\"eip191\":return rn(e,n,t.s);case\"eip1271\":return await on(e,n,t.s,r,o,s);default:throw new Error(`verifySignature failed: Attempted to verify CacaoSignature with unknown type: ${t.t}`)}}function rn(e,n,t){return ct(Te(n),t).toLowerCase()===e.toLowerCase()}async function on(e,n,t,r,o,s){const i=re(r);if(!i.namespace||!i.reference)throw new Error(`isValidEip1271Signature failed: chainId must be in CAIP-2 format, received: ${r}`);try{const u=\"0x1626ba7e\",l=\"0000000000000000000000000000000000000000000000000000000000000040\",c=\"0000000000000000000000000000000000000000000000000000000000000041\",d=t.substring(2),a=Te(n).substring(2),f=u+a+l+c+d,h=await fetch(`${s||Yt}/?chainId=${r}&projectId=${o}`,{method:\"POST\",body:JSON.stringify({id:Qt(),jsonrpc:\"2.0\",method:\"eth_call\",params:[{to:e,data:f},\"latest\"]})}),{result:p}=await h.json();return p?p.slice(0,u.length).toLowerCase()===u.toLowerCase():!1}catch(u){return console.error(\"isValidEip1271Signature: \",u),!1}}function Qt(){return Date.now()+Math.floor(Math.random()*1e3)}var Zt=Object.defineProperty,Xt=Object.defineProperties,er=Object.getOwnPropertyDescriptors,sn=Object.getOwnPropertySymbols,nr=Object.prototype.hasOwnProperty,tr=Object.prototype.propertyIsEnumerable,cn=(e,n,t)=>n in e?Zt(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,de=(e,n)=>{for(var t in n||(n={}))nr.call(n,t)&&cn(e,t,n[t]);if(sn)for(var t of sn(n))tr.call(n,t)&&cn(e,t,n[t]);return e},an=(e,n)=>Xt(e,er(n));const rr=\"did:pkh:\",z=e=>e?.split(\":\"),un=e=>{const n=e&&z(e);if(n)return e.includes(rr)?n[3]:n[1]},ln=e=>{const n=e&&z(e);if(n)return n[2]+\":\"+n[3]},fe=e=>{const n=e&&z(e);if(n)return n.pop()};async function or(e){const{cacao:n,projectId:t}=e,{s:r,p:o}=n,s=dn(o,o.iss),i=fe(o.iss);return await tn(i,s,r,ln(o.iss),t)}const dn=(e,n)=>{const t=`${e.domain} wants you to sign in with your Ethereum account:`,r=fe(n);if(!e.aud&&!e.uri)throw new Error(\"Either `aud` or `uri` is required to construct the message\");let o=e.statement||void 0;const s=`URI: ${e.aud||e.uri}`,i=`Version: ${e.version}`,u=`Chain ID: ${un(n)}`,l=`Nonce: ${e.nonce}`,c=`Issued At: ${e.iat}`,d=e.exp?`Expiration Time: ${e.exp}`:void 0,a=e.nbf?`Not Before: ${e.nbf}`:void 0,f=e.requestId?`Request ID: ${e.requestId}`:void 0,h=e.resources?`Resources:${e.resources.map(m=>`\n- ${m}`).join(\"\")}`:void 0,p=Y(e.resources);if(p){const m=I(p);o=he(o,m)}return[t,r,\"\",o,\"\",s,i,u,l,c,d,a,f,h].filter(m=>m!=null).join(`\n`)};function sr(e,n,t){return t.includes(\"did:pkh:\")||(t=`did:pkh:${t}`),{h:{t:\"caip122\"},p:{iss:t,domain:e.domain,aud:e.aud,version:e.version,nonce:e.nonce,iat:e.iat,statement:e.statement,requestId:e.requestId,resources:e.resources,nbf:e.nbf,exp:e.exp},s:n}}function ir(e){var n;const{authPayload:t,chains:r,methods:o}=e,s=t.statement||\"\";if(!(r!=null&&r.length))return t;const i=t.chains,u=ue(i,r);if(!(u!=null&&u.length))throw new Error(\"No supported chains\");const l=fn(t.resources);if(!l)return t;O(l);const c=pn(l,\"eip155\");let d=t?.resources||[];if(c!=null&&c.length){const a=mn(c),f=ue(a,o);if(!(f!=null&&f.length))throw new Error(`Supported methods don't satisfy the requested: ${JSON.stringify(a)}, supported: ${JSON.stringify(o)}`);const h=pe(\"request\",f,{chains:u}),p=vn(l,\"eip155\",h);d=((n=t?.resources)==null?void 0:n.slice(0,-1))||[],d.push(G(p))}return an(de({},t),{statement:En(s,Y(d)),chains:u,resources:t!=null&&t.resources||d.length>0?d:void 0})}function fn(e){const n=Y(e);if(n&&me(n))return I(n)}function cr(e,n){var t;return(t=e?.att)==null?void 0:t.hasOwnProperty(n)}function pn(e,n){var t,r;return(t=e?.att)!=null&&t[n]?Object.keys((r=e?.att)==null?void 0:r[n]):[]}function ar(e){return e?.map(n=>Object.keys(n))||[]}function mn(e){return e?.map(n=>{var t;return(t=n.split(\"/\"))==null?void 0:t[1]})||[]}function hn(e){return Buffer.from(JSON.stringify(e)).toString(\"base64\")}function yn(e){return JSON.parse(Buffer.from(e,\"base64\").toString(\"utf-8\"))}function O(e){if(!e)throw new Error(\"No recap provided, value is undefined\");if(!e.att)throw new Error(\"No `att` property found\");const n=Object.keys(e.att);if(!(n!=null&&n.length))throw new Error(\"No resources found in `att` property\");n.forEach(t=>{const r=e.att[t];if(Array.isArray(r))throw new Error(`Resource must be an object: ${t}`);if(typeof r!=\"object\")throw new Error(`Resource must be an object: ${t}`);if(!Object.keys(r).length)throw new Error(`Resource object is empty: ${t}`);Object.keys(r).forEach(o=>{const s=r[o];if(!Array.isArray(s))throw new Error(`Ability limits ${o} must be an array of objects, found: ${s}`);if(!s.length)throw new Error(`Value of ${o} is empty array, must be an array with objects`);s.forEach(i=>{if(typeof i!=\"object\")throw new Error(`Ability limits (${o}) must be an array of objects, found: ${i}`)})})})}function gn(e,n,t,r={}){return t?.sort((o,s)=>o.localeCompare(s)),{att:{[e]:pe(n,t,r)}}}function vn(e,n,t){var r;return e.att[n]=de({},t),((r=Object.keys(e.att))==null?void 0:r.sort((o,s)=>o.localeCompare(s))).reduce((o,s)=>(o.att[s]=e.att[s],o),{att:{}})}function pe(e,n,t={}){n=n?.sort((o,s)=>o.localeCompare(s));const r=n.map(o=>({[`${e}/${o}`]:[t]}));return Object.assign({},...r)}function G(e){return O(e),`urn:recap:${hn(e).replace(/=/g,\"\")}`}function I(e){const n=yn(e.replace(\"urn:recap:\",\"\"));return O(n),n}function ur(e,n,t){const r=gn(e,n,t);return G(r)}function me(e){return e&&e.includes(\"urn:recap:\")}function lr(e,n){const t=I(e),r=I(n),o=bn(t,r);return G(o)}function bn(e,n){O(e),O(n);const t=Object.keys(e.att).concat(Object.keys(n.att)).sort((o,s)=>o.localeCompare(s)),r={att:{}};return t.forEach(o=>{var s,i;Object.keys(((s=e.att)==null?void 0:s[o])||{}).concat(Object.keys(((i=n.att)==null?void 0:i[o])||{})).sort((u,l)=>u.localeCompare(l)).forEach(u=>{var l,c;r.att[o]=an(de({},r.att[o]),{[u]:((l=e.att[o])==null?void 0:l[u])||((c=n.att[o])==null?void 0:c[u])})})}),r}function he(e=\"\",n){O(n);const t=\"I further authorize the stated URI to perform the following actions on my behalf: \";if(e.includes(t))return e;const r=[];let o=0;Object.keys(n.att).forEach(u=>{const l=Object.keys(n.att[u]).map(a=>({ability:a.split(\"/\")[0],action:a.split(\"/\")[1]}));l.sort((a,f)=>a.action.localeCompare(f.action));const c={};l.forEach(a=>{c[a.ability]||(c[a.ability]=[]),c[a.ability].push(a.action)});const d=Object.keys(c).map(a=>(o++,`(${o}) '${a}': '${c[a].join(\"', '\")}' for '${u}'.`));r.push(d.join(\", \").replace(\".,\",\".\"))});const s=r.join(\" \"),i=`${t}${s}`;return`${e?e+\" \":\"\"}${i}`}function dr(e){var n;const t=I(e);O(t);const r=(n=t.att)==null?void 0:n.eip155;return r?Object.keys(r).map(o=>o.split(\"/\")[1]):[]}function fr(e){const n=I(e);O(n);const t=[];return Object.values(n.att).forEach(r=>{Object.values(r).forEach(o=>{var s;(s=o?.[0])!=null&&s.chains&&t.push(o[0].chains)})}),[...new Set(t.flat())]}function En(e,n){if(!n)return e;const t=I(n);return O(t),he(e,t)}function Y(e){if(!e)return;const n=e?.[e.length-1];return me(n)?n:void 0}const ye=\"base10\",g=\"base16\",ge=\"base64pad\",pr=\"base64url\",k=\"utf8\",ve=0,D=1,M=2,mr=0,wn=1,K=12,be=32;function hr(){const e=_e.generateKeyPair();return{privateKey:v(e.secretKey,g),publicKey:v(e.publicKey,g)}}function yr(){const e=B(be);return v(e,g)}function gr(e,n){const t=_e.sharedKey(w(e,g),w(n,g),!0),r=new at(Ce,t).expand(be);return v(r,g)}function vr(e){const n=Ue(w(e,g));return v(n,g)}function br(e){const n=Ue(w(e,k));return v(n,g)}function Ee(e){return w(`${e}`,ye)}function C(e){return Number(v(e,ye))}function Er(e){const n=Ee(typeof e.type<\"u\"?e.type:ve);if(C(n)===D&&typeof e.senderPublicKey>\"u\")throw new Error(\"Missing sender public key for type 1 envelope\");const t=typeof e.senderPublicKey<\"u\"?w(e.senderPublicKey,g):void 0,r=typeof e.iv<\"u\"?w(e.iv,g):B(K),o=new Ae(w(e.symKey,g)).seal(r,w(e.message,k));return we({type:n,sealed:o,iv:r,senderPublicKey:t,encoding:e.encoding})}function wr(e,n){const t=Ee(M),r=B(K),o=w(e,k);return we({type:t,sealed:o,iv:r,encoding:n})}function Or(e){const n=new Ae(w(e.symKey,g)),{sealed:t,iv:r}=Q({encoded:e.encoded,encoding:e?.encoding}),o=n.open(r,t);if(o===null)throw new Error(\"Failed to decrypt\");return v(o,k)}function Nr(e,n){const{sealed:t}=Q({encoded:e,encoding:n});return v(t,k)}function we(e){const{encoding:n=ge}=e;if(C(e.type)===M)return v(te([e.type,e.sealed]),n);if(C(e.type)===D){if(typeof e.senderPublicKey>\"u\")throw new Error(\"Missing sender public key for type 1 envelope\");return v(te([e.type,e.senderPublicKey,e.iv,e.sealed]),n)}return v(te([e.type,e.iv,e.sealed]),n)}function Q(e){const{encoded:n,encoding:t=ge}=e,r=w(n,t),o=r.slice(mr,wn),s=wn;if(C(o)===D){const c=s+be,d=c+K,a=r.slice(s,c),f=r.slice(c,d),h=r.slice(d);return{type:o,sealed:h,iv:f,senderPublicKey:a}}if(C(o)===M){const c=r.slice(s),d=B(K);return{type:o,sealed:c,iv:d}}const i=s+K,u=r.slice(s,i),l=r.slice(i);return{type:o,sealed:l,iv:u}}function Sr(e,n){const t=Q({encoded:e,encoding:n?.encoding});return On({type:C(t.type),senderPublicKey:typeof t.senderPublicKey<\"u\"?v(t.senderPublicKey,g):void 0,receiverPublicKey:n?.receiverPublicKey})}function On(e){const n=e?.type||ve;if(n===D){if(typeof e?.senderPublicKey>\"u\")throw new Error(\"missing sender public key\");if(typeof e?.receiverPublicKey>\"u\")throw new Error(\"missing receiver public key\")}return{type:n,senderPublicKey:e?.senderPublicKey,receiverPublicKey:e?.receiverPublicKey}}function $r(e){return e.type===D&&typeof e.senderPublicKey==\"string\"&&typeof e.receiverPublicKey==\"string\"}function Rr(e){return e.type===M}function Nn(e){return new ut(\"p256\").keyFromPublic({x:Buffer.from(e.x,\"base64\").toString(\"hex\"),y:Buffer.from(e.y,\"base64\").toString(\"hex\")},\"hex\")}function Ir(e){let n=e.replace(/-/g,\"+\").replace(/_/g,\"/\");const t=n.length%4;return t>0&&(n+=\"=\".repeat(4-t)),n}function Pr(e){return Buffer.from(Ir(e),\"base64\")}function jr(e,n){const[t,r,o]=e.split(\".\"),s=Pr(o);if(s.length!==64)throw new Error(\"Invalid signature length\");const i=s.slice(0,32).toString(\"hex\"),u=s.slice(32,64).toString(\"hex\"),l=`${t}.${r}`,c=new Ce().update(Buffer.from(l)).digest(),d=Nn(n),a=Buffer.from(c).toString(\"hex\");if(!d.verify(a,{r:i,s:u}))throw new Error(\"Invalid signature\");return lt(e).payload}const Sn=\"irn\";function Tr(e){return e?.relay||{protocol:Sn}}function Ar(e){const n=dt[e];if(typeof n>\"u\")throw new Error(`Relay Protocol not supported: ${e}`);return n}var Cr=Object.defineProperty,Ur=Object.defineProperties,_r=Object.getOwnPropertyDescriptors,$n=Object.getOwnPropertySymbols,kr=Object.prototype.hasOwnProperty,Dr=Object.prototype.propertyIsEnumerable,Rn=(e,n,t)=>n in e?Cr(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,In=(e,n)=>{for(var t in n||(n={}))kr.call(n,t)&&Rn(e,t,n[t]);if($n)for(var t of $n(n))Dr.call(n,t)&&Rn(e,t,n[t]);return e},xr=(e,n)=>Ur(e,_r(n));function Pn(e,n=\"-\"){const t={},r=\"relay\"+n;return Object.keys(e).forEach(o=>{if(o.startsWith(r)){const s=o.replace(r,\"\"),i=e[o];t[s]=i}}),t}function Vr(e){if(!e.includes(\"wc:\")){const l=le(e);l!=null&&l.includes(\"wc:\")&&(e=l)}e=e.includes(\"wc://\")?e.replace(\"wc://\",\"\"):e,e=e.includes(\"wc:\")?e.replace(\"wc:\",\"\"):e;const n=e.indexOf(\":\"),t=e.indexOf(\"?\")!==-1?e.indexOf(\"?\"):void 0,r=e.substring(0,n),o=e.substring(n+1,t).split(\"@\"),s=typeof t<\"u\"?e.substring(t):\"\",i=q.parse(s),u=typeof i.methods==\"string\"?i.methods.split(\",\"):void 0;return{protocol:r,topic:jn(o[0]),version:parseInt(o[1],10),symKey:i.symKey,relay:Pn(i),methods:u,expiryTimestamp:i.expiryTimestamp?parseInt(i.expiryTimestamp,10):void 0}}function jn(e){return e.startsWith(\"//\")?e.substring(2):e}function Tn(e,n=\"-\"){const t=\"relay\",r={};return Object.keys(e).forEach(o=>{const s=t+n+o;e[o]&&(r[s]=e[o])}),r}function Mr(e){return`${e.protocol}:${e.topic}@${e.version}?`+q.stringify(In(xr(In({symKey:e.symKey},Tn(e.relay)),{expiryTimestamp:e.expiryTimestamp}),e.methods?{methods:e.methods.join(\",\")}:{}))}function Kr(e,n,t){return`${e}?wc_ev=${t}&topic=${n}`}var Lr=Object.defineProperty,Fr=Object.defineProperties,qr=Object.getOwnPropertyDescriptors,An=Object.getOwnPropertySymbols,Br=Object.prototype.hasOwnProperty,Hr=Object.prototype.propertyIsEnumerable,Cn=(e,n,t)=>n in e?Lr(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,Wr=(e,n)=>{for(var t in n||(n={}))Br.call(n,t)&&Cn(e,t,n[t]);if(An)for(var t of An(n))Hr.call(n,t)&&Cn(e,t,n[t]);return e},Jr=(e,n)=>Fr(e,qr(n));function U(e){const n=[];return e.forEach(t=>{const[r,o]=t.split(\":\");n.push(`${r}:${o}`)}),n}function Un(e){const n=[];return Object.values(e).forEach(t=>{n.push(...U(t.accounts))}),n}function _n(e,n){const t=[];return Object.values(e).forEach(r=>{U(r.accounts).includes(n)&&t.push(...r.methods)}),t}function kn(e,n){const t=[];return Object.values(e).forEach(r=>{U(r.accounts).includes(n)&&t.push(...r.events)}),t}function zr(e,n){const t=Wn(e,n);if(t)throw new Error(t.message);const r={};for(const[o,s]of Object.entries(e))r[o]={methods:s.methods,events:s.events,chains:s.accounts.map(i=>`${i.split(\":\")[0]}:${i.split(\":\")[1]}`)};return r}function Gr(e){const{proposal:{requiredNamespaces:n,optionalNamespaces:t={}},supportedNamespaces:r}=e,o=Ne(n),s=Ne(t),i={};Object.keys(r).forEach(c=>{const d=r[c].chains,a=r[c].methods,f=r[c].events,h=r[c].accounts;d.forEach(p=>{if(!h.some(m=>m.includes(p)))throw new Error(`No accounts provided for chain ${p} in namespace ${c}`)}),i[c]={chains:d,methods:a,events:f,accounts:h}});const u=zn(n,i,\"approve()\");if(u)throw new Error(u.message);const l={};return!Object.keys(n).length&&!Object.keys(t).length?i:(Object.keys(o).forEach(c=>{const d=r[c].chains.filter(p=>{var m,E;return(E=(m=o[c])==null?void 0:m.chains)==null?void 0:E.includes(p)}),a=r[c].methods.filter(p=>{var m,E;return(E=(m=o[c])==null?void 0:m.methods)==null?void 0:E.includes(p)}),f=r[c].events.filter(p=>{var m,E;return(E=(m=o[c])==null?void 0:m.events)==null?void 0:E.includes(p)}),h=d.map(p=>r[c].accounts.filter(m=>m.includes(`${p}:`))).flat();l[c]={chains:d,methods:a,events:f,accounts:h}}),Object.keys(s).forEach(c=>{var d,a,f,h,p,m;if(!r[c])return;const E=(a=(d=s[c])==null?void 0:d.chains)==null?void 0:a.filter(j=>r[c].chains.includes(j)),nt=r[c].methods.filter(j=>{var T,x;return(x=(T=s[c])==null?void 0:T.methods)==null?void 0:x.includes(j)}),tt=r[c].events.filter(j=>{var T,x;return(x=(T=s[c])==null?void 0:T.events)==null?void 0:x.includes(j)}),rt=E?.map(j=>r[c].accounts.filter(T=>T.includes(`${j}:`))).flat();l[c]={chains:N((f=l[c])==null?void 0:f.chains,E),methods:N((h=l[c])==null?void 0:h.methods,nt),events:N((p=l[c])==null?void 0:p.events,tt),accounts:N((m=l[c])==null?void 0:m.accounts,rt)}}),l)}function Oe(e){return e.includes(\":\")}function Dn(e){return Oe(e)?e.split(\":\")[0]:e}function Ne(e){var n,t,r;const o={};if(!Z(e))return o;for(const[s,i]of Object.entries(e)){const u=Oe(s)?[s]:i.chains,l=i.methods||[],c=i.events||[],d=Dn(s);o[d]=Jr(Wr({},o[d]),{chains:N(u,(n=o[d])==null?void 0:n.chains),methods:N(l,(t=o[d])==null?void 0:t.methods),events:N(c,(r=o[d])==null?void 0:r.events)})}return o}function xn(e){const n={};return e?.forEach(t=>{const[r,o]=t.split(\":\");n[r]||(n[r]={accounts:[],chains:[],events:[]}),n[r].accounts.push(t),n[r].chains.push(`${r}:${o}`)}),n}function Yr(e,n){n=n.map(r=>r.replace(\"did:pkh:\",\"\"));const t=xn(n);for(const[r,o]of Object.entries(t))o.methods?o.methods=N(o.methods,e):o.methods=e,o.events=[\"chainChanged\",\"accountsChanged\"];return t}const Vn={INVALID_METHOD:{message:\"Invalid method.\",code:1001},INVALID_EVENT:{message:\"Invalid event.\",code:1002},INVALID_UPDATE_REQUEST:{message:\"Invalid update request.\",code:1003},INVALID_EXTEND_REQUEST:{message:\"Invalid extend request.\",code:1004},INVALID_SESSION_SETTLE_REQUEST:{message:\"Invalid session settle request.\",code:1005},UNAUTHORIZED_METHOD:{message:\"Unauthorized method.\",code:3001},UNAUTHORIZED_EVENT:{message:\"Unauthorized event.\",code:3002},UNAUTHORIZED_UPDATE_REQUEST:{message:\"Unauthorized update request.\",code:3003},UNAUTHORIZED_EXTEND_REQUEST:{message:\"Unauthorized extend request.\",code:3004},USER_REJECTED:{message:\"User rejected.\",code:5e3},USER_REJECTED_CHAINS:{message:\"User rejected chains.\",code:5001},USER_REJECTED_METHODS:{message:\"User rejected methods.\",code:5002},USER_REJECTED_EVENTS:{message:\"User rejected events.\",code:5003},UNSUPPORTED_CHAINS:{message:\"Unsupported chains.\",code:5100},UNSUPPORTED_METHODS:{message:\"Unsupported methods.\",code:5101},UNSUPPORTED_EVENTS:{message:\"Unsupported events.\",code:5102},UNSUPPORTED_ACCOUNTS:{message:\"Unsupported accounts.\",code:5103},UNSUPPORTED_NAMESPACE_KEY:{message:\"Unsupported namespace key.\",code:5104},USER_DISCONNECTED:{message:\"User disconnected.\",code:6e3},SESSION_SETTLEMENT_FAILED:{message:\"Session settlement failed.\",code:7e3},WC_METHOD_UNSUPPORTED:{message:\"Unsupported wc_ method.\",code:10001}},Mn={NOT_INITIALIZED:{message:\"Not initialized.\",code:1},NO_MATCHING_KEY:{message:\"No matching key.\",code:2},RESTORE_WILL_OVERRIDE:{message:\"Restore will override.\",code:3},RESUBSCRIBED:{message:\"Resubscribed.\",code:4},MISSING_OR_INVALID:{message:\"Missing or invalid.\",code:5},EXPIRED:{message:\"Expired.\",code:6},UNKNOWN_TYPE:{message:\"Unknown type.\",code:7},MISMATCHED_TOPIC:{message:\"Mismatched topic.\",code:8},NON_CONFORMING_NAMESPACES:{message:\"Non conforming namespaces.\",code:9}};function S(e,n){const{message:t,code:r}=Mn[e];return{message:n?`${t} ${n}`:t,code:r}}function _(e,n){const{message:t,code:r}=Vn[e];return{message:n?`${t} ${n}`:t,code:r}}function L(e,n){return Array.isArray(e)?typeof n<\"u\"&&e.length?e.every(n):!0:!1}function Z(e){return Object.getPrototypeOf(e)===Object.prototype&&Object.keys(e).length}function P(e){return typeof e>\"u\"}function b(e,n){return n&&P(e)?!0:typeof e==\"string\"&&!!e.trim().length}function X(e,n){return n&&P(e)?!0:typeof e==\"number\"&&!isNaN(e)}function Qr(e,n){const{requiredNamespaces:t}=n,r=Object.keys(e.namespaces),o=Object.keys(t);let s=!0;return R(o,r)?(r.forEach(i=>{const{accounts:u,methods:l,events:c}=e.namespaces[i],d=U(u),a=t[i];(!R(W(i,a),d)||!R(a.methods,l)||!R(a.events,c))&&(s=!1)}),s):!1}function F(e){return b(e,!1)&&e.includes(\":\")?e.split(\":\").length===2:!1}function Kn(e){if(b(e,!1)&&e.includes(\":\")){const n=e.split(\":\");if(n.length===3){const t=n[0]+\":\"+n[1];return!!n[2]&&F(t)}}return!1}function Zr(e){function n(t){try{return typeof new URL(t)<\"u\"}catch{return!1}}try{if(b(e,!1)){if(n(e))return!0;const t=le(e);return n(t)}}catch{}return!1}function Xr(e){var n;return(n=e?.proposer)==null?void 0:n.publicKey}function eo(e){return e?.topic}function no(e,n){let t=null;return b(e?.publicKey,!1)||(t=S(\"MISSING_OR_INVALID\",`${n} controller public key should be a string`)),t}function Se(e){let n=!0;return L(e)?e.length&&(n=e.every(t=>b(t,!1))):n=!1,n}function Ln(e,n,t){let r=null;return L(n)&&n.length?n.forEach(o=>{r||F(o)||(r=_(\"UNSUPPORTED_CHAINS\",`${t}, chain ${o} should be a string and conform to \"namespace:chainId\" format`))}):F(e)||(r=_(\"UNSUPPORTED_CHAINS\",`${t}, chains must be defined as \"namespace:chainId\" e.g. \"eip155:1\": {...} in the namespace key OR as an array of CAIP-2 chainIds e.g. eip155: { chains: [\"eip155:1\", \"eip155:5\"] }`)),r}function Fn(e,n,t){let r=null;return Object.entries(e).forEach(([o,s])=>{if(r)return;const i=Ln(o,W(o,s),`${n} ${t}`);i&&(r=i)}),r}function qn(e,n){let t=null;return L(e)?e.forEach(r=>{t||Kn(r)||(t=_(\"UNSUPPORTED_ACCOUNTS\",`${n}, account ${r} should be a string and conform to \"namespace:chainId:address\" format`))}):t=_(\"UNSUPPORTED_ACCOUNTS\",`${n}, accounts should be an array of strings conforming to \"namespace:chainId:address\" format`),t}function Bn(e,n){let t=null;return Object.values(e).forEach(r=>{if(t)return;const o=qn(r?.accounts,`${n} namespace`);o&&(t=o)}),t}function Hn(e,n){let t=null;return Se(e?.methods)?Se(e?.events)||(t=_(\"UNSUPPORTED_EVENTS\",`${n}, events should be an array of strings or empty array for no events`)):t=_(\"UNSUPPORTED_METHODS\",`${n}, methods should be an array of strings or empty array for no methods`),t}function $e(e,n){let t=null;return Object.values(e).forEach(r=>{if(t)return;const o=Hn(r,`${n}, namespace`);o&&(t=o)}),t}function to(e,n,t){let r=null;if(e&&Z(e)){const o=$e(e,n);o&&(r=o);const s=Fn(e,n,t);s&&(r=s)}else r=S(\"MISSING_OR_INVALID\",`${n}, ${t} should be an object with data`);return r}function Wn(e,n){let t=null;if(e&&Z(e)){const r=$e(e,n);r&&(t=r);const o=Bn(e,n);o&&(t=o)}else t=S(\"MISSING_OR_INVALID\",`${n}, namespaces should be an object with data`);return t}function Jn(e){return b(e.protocol,!0)}function ro(e,n){let t=!1;return n&&!e?t=!0:e&&L(e)&&e.length&&e.forEach(r=>{t=Jn(r)}),t}function oo(e){return typeof e==\"number\"}function so(e){return typeof e<\"u\"&&typeof e!==null}function io(e){return!(!e||typeof e!=\"object\"||!e.code||!X(e.code,!1)||!e.message||!b(e.message,!1))}function co(e){return!(P(e)||!b(e.method,!1))}function ao(e){return!(P(e)||P(e.result)&&P(e.error)||!X(e.id,!1)||!b(e.jsonrpc,!1))}function uo(e){return!(P(e)||!b(e.name,!1))}function lo(e,n){return!(!F(n)||!Un(e).includes(n))}function fo(e,n,t){return b(t,!1)?_n(e,n).includes(t):!1}function po(e,n,t){return b(t,!1)?kn(e,n).includes(t):!1}function zn(e,n,t){let r=null;const o=mo(e),s=ho(n),i=Object.keys(o),u=Object.keys(s),l=Gn(Object.keys(e)),c=Gn(Object.keys(n)),d=l.filter(a=>!c.includes(a));return d.length&&(r=S(\"NON_CONFORMING_NAMESPACES\",`${t} namespaces keys don't satisfy requiredNamespaces.\n Required: ${d.toString()}\n Received: ${Object.keys(n).toString()}`)),R(i,u)||(r=S(\"NON_CONFORMING_NAMESPACES\",`${t} namespaces chains don't satisfy required namespaces.\n Required: ${i.toString()}\n Approved: ${u.toString()}`)),Object.keys(n).forEach(a=>{if(!a.includes(\":\")||r)return;const f=U(n[a].accounts);f.includes(a)||(r=S(\"NON_CONFORMING_NAMESPACES\",`${t} namespaces accounts don't satisfy namespace accounts for ${a}\n Required: ${a}\n Approved: ${f.toString()}`))}),i.forEach(a=>{r||(R(o[a].methods,s[a].methods)?R(o[a].events,s[a].events)||(r=S(\"NON_CONFORMING_NAMESPACES\",`${t} namespaces events don't satisfy namespace events for ${a}`)):r=S(\"NON_CONFORMING_NAMESPACES\",`${t} namespaces methods don't satisfy namespace methods for ${a}`))}),r}function mo(e){const n={};return Object.keys(e).forEach(t=>{var r;t.includes(\":\")?n[t]=e[t]:(r=e[t].chains)==null||r.forEach(o=>{n[o]={methods:e[t].methods,events:e[t].events}})}),n}function Gn(e){return[...new Set(e.map(n=>n.includes(\":\")?n.split(\":\")[0]:n))]}function ho(e){const n={};return Object.keys(e).forEach(t=>{if(t.includes(\":\"))n[t]=e[t];else{const r=U(e[t].accounts);r?.forEach(o=>{n[o]={accounts:e[t].accounts.filter(s=>s.includes(`${o}:`)),methods:e[t].methods,events:e[t].events}})}}),n}function yo(e,n){return X(e,!1)&&e<=n.max&&e>=n.min}function go(){const e=A();return new Promise(n=>{switch(e){case y.browser:n(Yn());break;case y.reactNative:n(Qn());break;case y.node:n(Zn());break;default:n(!0)}})}function Yn(){return V()&&navigator?.onLine}async function Qn(){if($()&&typeof global<\"u\"&&global!=null&&global.NetInfo){const e=await(global==null?void 0:global.NetInfo.fetch());return e?.isConnected}return!0}function Zn(){return!0}function vo(e){switch(A()){case y.browser:Xn(e);break;case y.reactNative:et(e);break;case y.node:break}}function Xn(e){!$()&&V()&&(window.addEventListener(\"online\",()=>e(!0)),window.addEventListener(\"offline\",()=>e(!1)))}function et(e){$()&&typeof global<\"u\"&&global!=null&&global.NetInfo&&global?.NetInfo.addEventListener(n=>e(n?.isConnected))}const Re={};class bo{static get(n){return Re[n]}static set(n,t){Re[n]=t}static delete(n){delete Re[n]}}export{ye as BASE10,g as BASE16,ge as BASE64,pr as BASE64URL,Et as COLON,ie as DEFAULT_DEPTH,J as EMPTY_SPACE,y as ENV_MAP,Mn as INTERNAL_ERRORS,bo as MemoryStore,wt as ONE_THOUSAND,qe as REACT_NATIVE_PRODUCT,Sn as RELAYER_DEFAULT_PROTOCOL,Vn as SDK_ERRORS,He as SDK_TYPE,Be as SLASH,ve as TYPE_0,D as TYPE_1,M as TYPE_2,k as UTF8,vn as addResourceToRecap,We as appendToQueryString,jt as assertType,pe as assignAbilityToActions,yn as base64Decode,hn as base64Encode,Gr as buildApprovedNamespaces,sr as buildAuthObject,Yr as buildNamespacesFromAuth,En as buildRecapStatement,Lt as calcExpiry,kt as capitalize,Ze as capitalizeWord,Dt as createDelayedPromise,ur as createEncodedRecap,xt as createExpiringPromise,gn as createRecap,I as decodeRecap,C as decodeTypeByte,Nr as decodeTypeTwoEnvelope,Or as decrypt,gr as deriveSymKey,Q as deserialize,G as encodeRecap,Ee as encodeTypeByte,wr as encodeTypeTwoEnvelope,Er as encrypt,qt as engineEvent,_t as enumify,De as formatAccountId,ft as formatAccountWithChain,ke as formatChainId,Xe as formatDeeplinkUrl,ae as formatExpirerTarget,Mt as formatIdTarget,dn as formatMessage,Tt as formatMessageContext,Tn as formatRelayParams,It as formatRelayRpcUrl,he as formatStatementFromRecap,Vt as formatTopicTarget,Ge as formatUA,Mr as formatUri,le as fromBase64,hr as generateKeyPair,yr as generateRandomBytes32,U as getAccountsChains,mt as getAccountsFromNamespaces,xe as getAddressFromAccount,pt as getAddressesFromAccounts,St as getAppId,$t as getAppMetadata,Yn as getBrowserOnlineStatus,Ve as getChainFromAccount,Me as getChainsFromAccounts,W as getChainsFromNamespace,ht as getChainsFromNamespaces,fr as getChainsFromRecap,yt as getChainsFromRequiredNamespaces,ue as getCommonValuesInArrays,Nn as getCryptoKeyFromKeyData,fn as getDecodedRecapFromResources,Ht as getDeepLink,fe as getDidAddress,z as getDidAddressSegments,un as getDidChainId,A as getEnvironment,Pt as getHttpUrl,S as getInternalError,ze as getJavascriptID,Je as getJavascriptOS,Qe as getLastItems,Kr as getLinkModeURL,dr as getMethodsFromRecap,ln as getNamespacedDidChainId,Un as getNamespacesChains,kn as getNamespacesEventsForChainId,xn as getNamespacesFromAccounts,_n as getNamespacesMethodsForChainId,Zn as getNodeOnlineStatus,mn as getReCapActions,Qn as getReactNativeOnlineStatus,ar as getRecapAbilitiesFromResource,Y as getRecapFromResources,pn as getRecapResource,Rt as getRelayClientMetadata,Ar as getRelayProtocolApi,Tr as getRelayProtocolName,zr as getRequiredNamespacesFromNamespaces,_ as getSdkError,Wt as getSearchParamFromURL,se as getUniqueValues,Bt as handleDeeplinkRedirect,R as hasOverlap,vr as hashKey,br as hashMessage,Ot as isAndroid,V as isBrowser,Oe as isCaipNamespace,zn as isConformingNamespaces,Ft as isExpired,Nt as isIos,ce as isNode,go as isOnline,Xr as isProposalStruct,$ as isReactNative,me as isRecap,Qr as isSessionCompatible,eo as isSessionStruct,en as isTelegram,zt as isTestRun,$r as isTypeOneEnvelope,Rr as isTypeTwoEnvelope,P as isUndefined,Kn as isValidAccountId,qn as isValidAccounts,Hn as isValidActions,L as isValidArray,F as isValidChainId,Ln as isValidChains,no as isValidController,on as isValidEip1271Signature,rn as isValidEip191Signature,io as isValidErrorReason,uo as isValidEvent,oo as isValidId,Bn as isValidNamespaceAccounts,$e as isValidNamespaceActions,Fn as isValidNamespaceChains,Se as isValidNamespaceMethodsOrEvents,Wn as isValidNamespaces,lo as isValidNamespacesChainId,po as isValidNamespacesEvent,fo as isValidNamespacesRequest,X as isValidNumber,Z as isValidObject,so as isValidParams,O as isValidRecap,Jn as isValidRelay,ro as isValidRelays,co as isValidRequest,yo as isValidRequestExpiry,to as isValidRequiredNamespaces,ao as isValidResponse,b as isValidString,Zr as isValidUrl,Ut as mapEntries,At as mapToObj,N as mergeArrays,lr as mergeEncodedRecaps,bn as mergeRecaps,Ne as normalizeNamespaces,Ct as objToMap,oe as parseAccountId,re as parseChainId,Ye as parseContextNames,Kt as parseExpirerTarget,Dn as parseNamespaceKey,Pn as parseRelayParams,jn as parseTopic,Vr as parseUri,ir as populateAuthPayload,cr as recapHasResource,we as serialize,Gt as sleep,Xn as subscribeToBrowserNetworkChange,vo as subscribeToNetworkChange,et as subscribeToReactNativeNetworkChange,nn as toBase64,Jt as uuidv4,Sr as validateDecoding,On as validateEncoding,or as validateSignedCacao,jr as verifyP256Jwt,tn as verifySignature};\n//# sourceMappingURL=index.es.js.map\n","export const PARSE_ERROR = \"PARSE_ERROR\";\nexport const INVALID_REQUEST = \"INVALID_REQUEST\";\nexport const METHOD_NOT_FOUND = \"METHOD_NOT_FOUND\";\nexport const INVALID_PARAMS = \"INVALID_PARAMS\";\nexport const INTERNAL_ERROR = \"INTERNAL_ERROR\";\nexport const SERVER_ERROR = \"SERVER_ERROR\";\nexport const RESERVED_ERROR_CODES = [-32700, -32600, -32601, -32602, -32603];\nexport const SERVER_ERROR_CODE_RANGE = [-32000, -32099];\nexport const STANDARD_ERROR_MAP = {\n [PARSE_ERROR]: { code: -32700, message: \"Parse error\" },\n [INVALID_REQUEST]: { code: -32600, message: \"Invalid Request\" },\n [METHOD_NOT_FOUND]: { code: -32601, message: \"Method not found\" },\n [INVALID_PARAMS]: { code: -32602, message: \"Invalid params\" },\n [INTERNAL_ERROR]: { code: -32603, message: \"Internal error\" },\n [SERVER_ERROR]: { code: -32000, message: \"Server error\" },\n};\nexport const DEFAULT_ERROR = SERVER_ERROR;\n//# sourceMappingURL=constants.js.map","import { SERVER_ERROR_CODE_RANGE, RESERVED_ERROR_CODES, STANDARD_ERROR_MAP, DEFAULT_ERROR, } from \"./constants\";\nexport function isServerErrorCode(code) {\n return code <= SERVER_ERROR_CODE_RANGE[0] && code >= SERVER_ERROR_CODE_RANGE[1];\n}\nexport function isReservedErrorCode(code) {\n return RESERVED_ERROR_CODES.includes(code);\n}\nexport function isValidErrorCode(code) {\n return typeof code === \"number\";\n}\nexport function getError(type) {\n if (!Object.keys(STANDARD_ERROR_MAP).includes(type)) {\n return STANDARD_ERROR_MAP[DEFAULT_ERROR];\n }\n return STANDARD_ERROR_MAP[type];\n}\nexport function getErrorByCode(code) {\n const match = Object.values(STANDARD_ERROR_MAP).find(e => e.code === code);\n if (!match) {\n return STANDARD_ERROR_MAP[DEFAULT_ERROR];\n }\n return match;\n}\nexport function validateJsonRpcError(response) {\n if (typeof response.error.code === \"undefined\") {\n return { valid: false, error: \"Missing code for JSON-RPC error\" };\n }\n if (typeof response.error.message === \"undefined\") {\n return { valid: false, error: \"Missing message for JSON-RPC error\" };\n }\n if (!isValidErrorCode(response.error.code)) {\n return {\n valid: false,\n error: `Invalid error code type for JSON-RPC: ${response.error.code}`,\n };\n }\n if (isReservedErrorCode(response.error.code)) {\n const error = getErrorByCode(response.error.code);\n if (error.message !== STANDARD_ERROR_MAP[DEFAULT_ERROR].message &&\n response.error.message === error.message) {\n return {\n valid: false,\n error: `Invalid error code message for JSON-RPC: ${response.error.code}`,\n };\n }\n }\n return { valid: true };\n}\nexport function parseConnectionError(e, url, type) {\n return e.message.includes(\"getaddrinfo ENOTFOUND\") || e.message.includes(\"connect ECONNREFUSED\")\n ? new Error(`Unavailable ${type} RPC url at ${url}`)\n : e;\n}\n//# sourceMappingURL=error.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isBrowserCryptoAvailable = exports.getSubtleCrypto = exports.getBrowerCrypto = void 0;\nfunction getBrowerCrypto() {\n return (global === null || global === void 0 ? void 0 : global.crypto) || (global === null || global === void 0 ? void 0 : global.msCrypto) || {};\n}\nexports.getBrowerCrypto = getBrowerCrypto;\nfunction getSubtleCrypto() {\n const browserCrypto = getBrowerCrypto();\n return browserCrypto.subtle || browserCrypto.webkitSubtle;\n}\nexports.getSubtleCrypto = getSubtleCrypto;\nfunction isBrowserCryptoAvailable() {\n return !!getBrowerCrypto() && !!getSubtleCrypto();\n}\nexports.isBrowserCryptoAvailable = isBrowserCryptoAvailable;\n//# sourceMappingURL=crypto.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isBrowser = exports.isNode = exports.isReactNative = void 0;\nfunction isReactNative() {\n return (typeof document === \"undefined\" &&\n typeof navigator !== \"undefined\" &&\n navigator.product === \"ReactNative\");\n}\nexports.isReactNative = isReactNative;\nfunction isNode() {\n return (typeof process !== \"undefined\" &&\n typeof process.versions !== \"undefined\" &&\n typeof process.versions.node !== \"undefined\");\n}\nexports.isNode = isNode;\nfunction isBrowser() {\n return !isReactNative() && !isNode();\n}\nexports.isBrowser = isBrowser;\n//# sourceMappingURL=env.js.map","import { getError, getErrorByCode, isReservedErrorCode } from \"./error\";\nimport { INTERNAL_ERROR, SERVER_ERROR } from \"./constants\";\nexport function payloadId(entropy = 3) {\n const date = Date.now() * Math.pow(10, entropy);\n const extra = Math.floor(Math.random() * Math.pow(10, entropy));\n return date + extra;\n}\nexport function getBigIntRpcId(entropy = 6) {\n return BigInt(payloadId(entropy));\n}\nexport function formatJsonRpcRequest(method, params, id) {\n return {\n id: id || payloadId(),\n jsonrpc: \"2.0\",\n method,\n params,\n };\n}\nexport function formatJsonRpcResult(id, result) {\n return {\n id,\n jsonrpc: \"2.0\",\n result,\n };\n}\nexport function formatJsonRpcError(id, error, data) {\n return {\n id,\n jsonrpc: \"2.0\",\n error: formatErrorMessage(error, data),\n };\n}\nexport function formatErrorMessage(error, data) {\n if (typeof error === \"undefined\") {\n return getError(INTERNAL_ERROR);\n }\n if (typeof error === \"string\") {\n error = Object.assign(Object.assign({}, getError(SERVER_ERROR)), { message: error });\n }\n if (typeof data !== \"undefined\") {\n error.data = data;\n }\n if (isReservedErrorCode(error.code)) {\n error = getErrorByCode(error.code);\n }\n return error;\n}\n//# sourceMappingURL=format.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./crypto\"), exports);\ntslib_1.__exportStar(require(\"./env\"), exports);\n//# sourceMappingURL=index.js.map","class e{}class o extends e{constructor(c){super()}}class n extends e{constructor(){super()}}class r extends n{constructor(c){super()}}export{n as IBaseJsonRpcProvider,e as IEvents,o as IJsonRpcConnection,r as IJsonRpcProvider};\n//# sourceMappingURL=index.es.js.map\n","const HTTP_REGEX = \"^https?:\";\nconst WS_REGEX = \"^wss?:\";\nfunction getUrlProtocol(url) {\n const matches = url.match(new RegExp(/^\\w+:/, \"gi\"));\n if (!matches || !matches.length)\n return;\n return matches[0];\n}\nfunction matchRegexProtocol(url, regex) {\n const protocol = getUrlProtocol(url);\n if (typeof protocol === \"undefined\")\n return false;\n return new RegExp(regex).test(protocol);\n}\nexport function isHttpUrl(url) {\n return matchRegexProtocol(url, HTTP_REGEX);\n}\nexport function isWsUrl(url) {\n return matchRegexProtocol(url, WS_REGEX);\n}\nexport function isLocalhostUrl(url) {\n return new RegExp(\"wss?://localhost(:d{2,5})?\").test(url);\n}\n//# sourceMappingURL=url.js.map","export function isJsonRpcPayload(payload) {\n return (typeof payload === \"object\" &&\n \"id\" in payload &&\n \"jsonrpc\" in payload &&\n payload.jsonrpc === \"2.0\");\n}\nexport function isJsonRpcRequest(payload) {\n return isJsonRpcPayload(payload) && \"method\" in payload;\n}\nexport function isJsonRpcResponse(payload) {\n return isJsonRpcPayload(payload) && (isJsonRpcResult(payload) || isJsonRpcError(payload));\n}\nexport function isJsonRpcResult(payload) {\n return \"result\" in payload;\n}\nexport function isJsonRpcError(payload) {\n return \"error\" in payload;\n}\nexport function isJsonRpcValidationInvalid(validation) {\n return \"error\" in validation && validation.valid === false;\n}\n//# sourceMappingURL=validators.js.map","import{EventEmitter as c}from\"events\";import{IJsonRpcProvider as r,formatJsonRpcRequest as h,getBigIntRpcId as a,isJsonRpcError as d,isJsonRpcResponse as v}from\"@walletconnect/jsonrpc-utils\";class o extends r{constructor(t){super(t),this.events=new c,this.hasRegisteredEventListeners=!1,this.connection=this.setConnection(t),this.connection.connected&&this.registerEventListeners()}async connect(t=this.connection){await this.open(t)}async disconnect(){await this.close()}on(t,e){this.events.on(t,e)}once(t,e){this.events.once(t,e)}off(t,e){this.events.off(t,e)}removeListener(t,e){this.events.removeListener(t,e)}async request(t,e){return this.requestStrict(h(t.method,t.params||[],t.id||a().toString()),e)}async requestStrict(t,e){return new Promise(async(i,s)=>{if(!this.connection.connected)try{await this.open()}catch(n){s(n)}this.events.on(`${t.id}`,n=>{d(n)?s(n.error):i(n.result)});try{await this.connection.send(t,e)}catch(n){s(n)}})}setConnection(t=this.connection){return t}onPayload(t){this.events.emit(\"payload\",t),v(t)?this.events.emit(`${t.id}`,t):this.events.emit(\"message\",{type:t.method,data:t.params})}onClose(t){t&&t.code===3e3&&this.events.emit(\"error\",new Error(`WebSocket connection closed abnormally with code: ${t.code} ${t.reason?`(${t.reason})`:\"\"}`)),this.events.emit(\"disconnect\")}async open(t=this.connection){this.connection===t&&this.connection.connected||(this.connection.connected&&this.close(),typeof t==\"string\"&&(await this.connection.open(t),t=this.connection),this.connection=this.setConnection(t),await this.connection.open(),this.registerEventListeners(),this.events.emit(\"connect\"))}async close(){await this.connection.close()}registerEventListeners(){this.hasRegisteredEventListeners||(this.connection.on(\"payload\",t=>this.onPayload(t)),this.connection.on(\"close\",t=>this.onClose(t)),this.connection.on(\"error\",t=>this.events.emit(\"error\",t)),this.connection.on(\"register_error\",t=>this.onClose()),this.hasRegisteredEventListeners=!0)}}export{o as JsonRpcProvider,o as default};\n//# sourceMappingURL=index.es.js.map\n","/**\n * Lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright JS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = isEqual;\n","export default function(e,n){return n=n||{},new Promise(function(t,r){var s=new XMLHttpRequest,o=[],u=[],i={},a=function(){return{ok:2==(s.status/100|0),statusText:s.statusText,status:s.status,url:s.responseURL,text:function(){return Promise.resolve(s.responseText)},json:function(){return Promise.resolve(s.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([s.response]))},clone:a,headers:{keys:function(){return o},entries:function(){return u},get:function(e){return i[e.toLowerCase()]},has:function(e){return e.toLowerCase()in i}}}};for(var l in s.open(n.method||\"get\",e,!0),s.onload=function(){s.getAllResponseHeaders().replace(/^(.*?):[^\\S\\n]*([\\s\\S]*?)$/gm,function(e,n,t){o.push(n=n.toLowerCase()),u.push([n,t]),i[n]=i[n]?i[n]+\",\"+t:t}),t(a())},s.onerror=r,s.withCredentials=\"include\"==n.credentials,n.headers)s.setRequestHeader(l,n.headers[l]);s.send(n.body||null)})}\n//# sourceMappingURL=unfetch.module.js.map\n","import{RELAYER_EVENTS as ve,PAIRING_EVENTS as Ae,Core as _e,Store as P}from\"@walletconnect/core\";import{pino as xe,getDefaultLoggerOptions as Re,generateChildLogger as Fe,getLoggerContext as Te}from\"@walletconnect/logger\";import{EventEmitter as Ie}from\"events\";import{formatJsonRpcRequest as qe,formatJsonRpcResult as Ue,formatJsonRpcError as Oe,isJsonRpcResult as Se,isJsonRpcError as Pe,isJsonRpcRequest as Ne,isJsonRpcResponse as $e}from\"@walletconnect/jsonrpc-utils\";import{isValidUrl as Be,isValidRequestExpiry as ze,getInternalError as k,hashKey as J,isBrowser as je,TYPE_1 as Me}from\"@walletconnect/utils\";import{ONE_DAY as N,FIVE_MINUTES as Le,SEVEN_DAYS as Ke}from\"@walletconnect/time\";import{hashMessage as X}from\"@ethersproject/hash\";import{recoverAddress as Ve}from\"@ethersproject/transactions\";import ke from\"isomorphic-unfetch\";import{randomStringForEntropy as Je}from\"@stablelib/random\";import{hash as Xe}from\"@stablelib/sha256\";class G{constructor(t){this.client=t}}class H{constructor(t){this.opts=t}}const Y=\"https://rpc.walletconnect.com/v1\",R={wc_authRequest:{req:{ttl:N,prompt:!0,tag:3e3},res:{ttl:N,prompt:!1,tag:3001}}},U={min:Le,max:Ke},$=\"wc\",Q=1,Z=\"auth\",B=\"authClient\",F=`${$}@${1}:${Z}:`,x=`${F}:PUB_KEY`,Ge=\"expirer\",He={created:\"expirer_created\",deleted:\"expirer_deleted\",expired:\"expirer_expired\",sync:\"expirer_sync\"},Ye=\"0.3\",Qe=N;function z(r){return r?.split(\":\")}function Ze(r){const t=r&&z(r);if(t)return t[3]}function We(r){const t=r&&z(r);if(t)return t[2]+\":\"+t[3]}function W(r){const t=r&&z(r);if(t)return t.pop()}async function et(r,t,e,i,n){switch(e.t){case\"eip191\":return tt(r,t,e.s);case\"eip1271\":return await rt(r,t,e.s,i,n);default:throw new Error(`verifySignature failed: Attempted to verify CacaoSignature with unknown type: ${e.t}`)}}function tt(r,t,e){return Ve(X(t),e).toLowerCase()===r.toLowerCase()}async function rt(r,t,e,i,n){try{const s=\"0x1626ba7e\",o=\"0000000000000000000000000000000000000000000000000000000000000040\",u=\"0000000000000000000000000000000000000000000000000000000000000041\",a=e.substring(2),c=X(t).substring(2),h=s+c+o+u+a,f=await ke(`${Y}/?chainId=${i}&projectId=${n}`,{method:\"POST\",body:JSON.stringify({id:it(),jsonrpc:\"2.0\",method:\"eth_call\",params:[{to:r,data:h},\"latest\"]})}),{result:p}=await f.json();return p?p.slice(0,s.length).toLowerCase()===s.toLowerCase():!1}catch(s){return console.error(\"isValidEip1271Signature: \",s),!1}}function it(){return Date.now()+Math.floor(Math.random()*1e3)}function ee(r){return r.getAll().filter(t=>\"requester\"in t)}function te(r,t){return ee(r).find(e=>e.id===t)}function nt(r){const t=Be(r.aud),e=new RegExp(`${r.domain}`).test(r.aud),i=!!r.nonce,n=r.type?r.type===\"eip4361\":!0,s=r.expiry;if(s&&!ze(s,U)){const{message:o}=k(\"MISSING_OR_INVALID\",`request() expiry: ${s}. Expiry must be a number (in seconds) between ${U.min} and ${U.max}`);throw new Error(o)}return!!(t&&e&&i&&n)}function st(r,t){return!!te(t,r.id)}function ot(r=0){return globalThis.Buffer!=null&&globalThis.Buffer.allocUnsafe!=null?globalThis.Buffer.allocUnsafe(r):new Uint8Array(r)}function ut(r,t){if(r.length>=255)throw new TypeError(\"Alphabet too long\");for(var e=new Uint8Array(256),i=0;i>>0,g=new Uint8Array(w);E!==y;){for(var C=D[E],_=0,b=w-1;(C!==0||_>>0,g[b]=C%u>>>0,C=C/u>>>0;if(C!==0)throw new Error(\"Non-zero carry\");m=_,E++}for(var v=w-m;v!==w&&g[v]===0;)v++;for(var q=a.repeat(l);v>>0,w=new Uint8Array(y);D[l];){var g=e[D.charCodeAt(l)];if(g===255)return;for(var C=0,_=y-1;(g!==0||C>>0,w[_]=g%256>>>0,g=g/256>>>0;if(g!==0)throw new Error(\"Non-zero carry\");E=C,l++}if(D[l]!==\" \"){for(var b=y-E;b!==y&&w[b]===0;)b++;for(var v=new Uint8Array(m+(y-b)),q=m;b!==y;)v[q++]=w[b++];return v}}}function A(D){var l=p(D);if(l)return l;throw new Error(`Non-${t} character`)}return{encode:f,decodeUnsafe:p,decode:A}}var at=ut,Dt=at;const re=r=>{if(r instanceof Uint8Array&&r.constructor.name===\"Uint8Array\")return r;if(r instanceof ArrayBuffer)return new Uint8Array(r);if(ArrayBuffer.isView(r))return new Uint8Array(r.buffer,r.byteOffset,r.byteLength);throw new Error(\"Unknown type, must be binary type\")},ct=r=>new TextEncoder().encode(r),ht=r=>new TextDecoder().decode(r);class lt{constructor(t,e,i){this.name=t,this.prefix=e,this.baseEncode=i}encode(t){if(t instanceof Uint8Array)return`${this.prefix}${this.baseEncode(t)}`;throw Error(\"Unknown type, must be binary type\")}}class dt{constructor(t,e,i){if(this.name=t,this.prefix=e,e.codePointAt(0)===void 0)throw new Error(\"Invalid prefix character\");this.prefixCodePoint=e.codePointAt(0),this.baseDecode=i}decode(t){if(typeof t==\"string\"){if(t.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(t)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(t.slice(this.prefix.length))}else throw Error(\"Can only multibase decode strings\")}or(t){return ie(this,t)}}class pt{constructor(t){this.decoders=t}or(t){return ie(this,t)}decode(t){const e=t[0],i=this.decoders[e];if(i)return i.decode(t);throw RangeError(`Unable to decode multibase string ${JSON.stringify(t)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}}const ie=(r,t)=>new pt({...r.decoders||{[r.prefix]:r},...t.decoders||{[t.prefix]:t}});class ft{constructor(t,e,i,n){this.name=t,this.prefix=e,this.baseEncode=i,this.baseDecode=n,this.encoder=new lt(t,e,i),this.decoder=new dt(t,e,n)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}}const O=({name:r,prefix:t,encode:e,decode:i})=>new ft(r,t,e,i),T=({prefix:r,name:t,alphabet:e})=>{const{encode:i,decode:n}=Dt(e,t);return O({prefix:r,name:t,encode:i,decode:s=>re(n(s))})},gt=(r,t,e,i)=>{const n={};for(let h=0;h=8&&(u-=8,o[c++]=255&a>>u)}if(u>=e||255&a<<8-u)throw new SyntaxError(\"Unexpected end of data\");return o},Et=(r,t,e)=>{const i=t[t.length-1]===\"=\",n=(1<e;)o-=e,s+=t[n&u>>o];if(o&&(s+=t[n&u<O({prefix:t,name:r,encode(n){return Et(n,i,e)},decode(n){return gt(n,i,e,r)}}),bt=O({prefix:\"\\0\",name:\"identity\",encode:r=>ht(r),decode:r=>ct(r)});var yt=Object.freeze({__proto__:null,identity:bt});const wt=d({prefix:\"0\",name:\"base2\",alphabet:\"01\",bitsPerChar:1});var Ct=Object.freeze({__proto__:null,base2:wt});const mt=d({prefix:\"7\",name:\"base8\",alphabet:\"01234567\",bitsPerChar:3});var vt=Object.freeze({__proto__:null,base8:mt});const At=T({prefix:\"9\",name:\"base10\",alphabet:\"0123456789\"});var _t=Object.freeze({__proto__:null,base10:At});const xt=d({prefix:\"f\",name:\"base16\",alphabet:\"0123456789abcdef\",bitsPerChar:4}),Rt=d({prefix:\"F\",name:\"base16upper\",alphabet:\"0123456789ABCDEF\",bitsPerChar:4});var Ft=Object.freeze({__proto__:null,base16:xt,base16upper:Rt});const Tt=d({prefix:\"b\",name:\"base32\",alphabet:\"abcdefghijklmnopqrstuvwxyz234567\",bitsPerChar:5}),It=d({prefix:\"B\",name:\"base32upper\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567\",bitsPerChar:5}),qt=d({prefix:\"c\",name:\"base32pad\",alphabet:\"abcdefghijklmnopqrstuvwxyz234567=\",bitsPerChar:5}),Ut=d({prefix:\"C\",name:\"base32padupper\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=\",bitsPerChar:5}),Ot=d({prefix:\"v\",name:\"base32hex\",alphabet:\"0123456789abcdefghijklmnopqrstuv\",bitsPerChar:5}),St=d({prefix:\"V\",name:\"base32hexupper\",alphabet:\"0123456789ABCDEFGHIJKLMNOPQRSTUV\",bitsPerChar:5}),Pt=d({prefix:\"t\",name:\"base32hexpad\",alphabet:\"0123456789abcdefghijklmnopqrstuv=\",bitsPerChar:5}),Nt=d({prefix:\"T\",name:\"base32hexpadupper\",alphabet:\"0123456789ABCDEFGHIJKLMNOPQRSTUV=\",bitsPerChar:5}),$t=d({prefix:\"h\",name:\"base32z\",alphabet:\"ybndrfg8ejkmcpqxot1uwisza345h769\",bitsPerChar:5});var Bt=Object.freeze({__proto__:null,base32:Tt,base32upper:It,base32pad:qt,base32padupper:Ut,base32hex:Ot,base32hexupper:St,base32hexpad:Pt,base32hexpadupper:Nt,base32z:$t});const zt=T({prefix:\"k\",name:\"base36\",alphabet:\"0123456789abcdefghijklmnopqrstuvwxyz\"}),jt=T({prefix:\"K\",name:\"base36upper\",alphabet:\"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\"});var Mt=Object.freeze({__proto__:null,base36:zt,base36upper:jt});const Lt=T({name:\"base58btc\",prefix:\"z\",alphabet:\"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz\"}),Kt=T({name:\"base58flickr\",prefix:\"Z\",alphabet:\"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ\"});var Vt=Object.freeze({__proto__:null,base58btc:Lt,base58flickr:Kt});const kt=d({prefix:\"m\",name:\"base64\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",bitsPerChar:6}),Jt=d({prefix:\"M\",name:\"base64pad\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\",bitsPerChar:6}),Xt=d({prefix:\"u\",name:\"base64url\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_\",bitsPerChar:6}),Gt=d({prefix:\"U\",name:\"base64urlpad\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=\",bitsPerChar:6});var Ht=Object.freeze({__proto__:null,base64:kt,base64pad:Jt,base64url:Xt,base64urlpad:Gt});const ne=Array.from(\"\\u{1F680}\\u{1FA90}\\u2604\\u{1F6F0}\\u{1F30C}\\u{1F311}\\u{1F312}\\u{1F313}\\u{1F314}\\u{1F315}\\u{1F316}\\u{1F317}\\u{1F318}\\u{1F30D}\\u{1F30F}\\u{1F30E}\\u{1F409}\\u2600\\u{1F4BB}\\u{1F5A5}\\u{1F4BE}\\u{1F4BF}\\u{1F602}\\u2764\\u{1F60D}\\u{1F923}\\u{1F60A}\\u{1F64F}\\u{1F495}\\u{1F62D}\\u{1F618}\\u{1F44D}\\u{1F605}\\u{1F44F}\\u{1F601}\\u{1F525}\\u{1F970}\\u{1F494}\\u{1F496}\\u{1F499}\\u{1F622}\\u{1F914}\\u{1F606}\\u{1F644}\\u{1F4AA}\\u{1F609}\\u263A\\u{1F44C}\\u{1F917}\\u{1F49C}\\u{1F614}\\u{1F60E}\\u{1F607}\\u{1F339}\\u{1F926}\\u{1F389}\\u{1F49E}\\u270C\\u2728\\u{1F937}\\u{1F631}\\u{1F60C}\\u{1F338}\\u{1F64C}\\u{1F60B}\\u{1F497}\\u{1F49A}\\u{1F60F}\\u{1F49B}\\u{1F642}\\u{1F493}\\u{1F929}\\u{1F604}\\u{1F600}\\u{1F5A4}\\u{1F603}\\u{1F4AF}\\u{1F648}\\u{1F447}\\u{1F3B6}\\u{1F612}\\u{1F92D}\\u2763\\u{1F61C}\\u{1F48B}\\u{1F440}\\u{1F62A}\\u{1F611}\\u{1F4A5}\\u{1F64B}\\u{1F61E}\\u{1F629}\\u{1F621}\\u{1F92A}\\u{1F44A}\\u{1F973}\\u{1F625}\\u{1F924}\\u{1F449}\\u{1F483}\\u{1F633}\\u270B\\u{1F61A}\\u{1F61D}\\u{1F634}\\u{1F31F}\\u{1F62C}\\u{1F643}\\u{1F340}\\u{1F337}\\u{1F63B}\\u{1F613}\\u2B50\\u2705\\u{1F97A}\\u{1F308}\\u{1F608}\\u{1F918}\\u{1F4A6}\\u2714\\u{1F623}\\u{1F3C3}\\u{1F490}\\u2639\\u{1F38A}\\u{1F498}\\u{1F620}\\u261D\\u{1F615}\\u{1F33A}\\u{1F382}\\u{1F33B}\\u{1F610}\\u{1F595}\\u{1F49D}\\u{1F64A}\\u{1F639}\\u{1F5E3}\\u{1F4AB}\\u{1F480}\\u{1F451}\\u{1F3B5}\\u{1F91E}\\u{1F61B}\\u{1F534}\\u{1F624}\\u{1F33C}\\u{1F62B}\\u26BD\\u{1F919}\\u2615\\u{1F3C6}\\u{1F92B}\\u{1F448}\\u{1F62E}\\u{1F646}\\u{1F37B}\\u{1F343}\\u{1F436}\\u{1F481}\\u{1F632}\\u{1F33F}\\u{1F9E1}\\u{1F381}\\u26A1\\u{1F31E}\\u{1F388}\\u274C\\u270A\\u{1F44B}\\u{1F630}\\u{1F928}\\u{1F636}\\u{1F91D}\\u{1F6B6}\\u{1F4B0}\\u{1F353}\\u{1F4A2}\\u{1F91F}\\u{1F641}\\u{1F6A8}\\u{1F4A8}\\u{1F92C}\\u2708\\u{1F380}\\u{1F37A}\\u{1F913}\\u{1F619}\\u{1F49F}\\u{1F331}\\u{1F616}\\u{1F476}\\u{1F974}\\u25B6\\u27A1\\u2753\\u{1F48E}\\u{1F4B8}\\u2B07\\u{1F628}\\u{1F31A}\\u{1F98B}\\u{1F637}\\u{1F57A}\\u26A0\\u{1F645}\\u{1F61F}\\u{1F635}\\u{1F44E}\\u{1F932}\\u{1F920}\\u{1F927}\\u{1F4CC}\\u{1F535}\\u{1F485}\\u{1F9D0}\\u{1F43E}\\u{1F352}\\u{1F617}\\u{1F911}\\u{1F30A}\\u{1F92F}\\u{1F437}\\u260E\\u{1F4A7}\\u{1F62F}\\u{1F486}\\u{1F446}\\u{1F3A4}\\u{1F647}\\u{1F351}\\u2744\\u{1F334}\\u{1F4A3}\\u{1F438}\\u{1F48C}\\u{1F4CD}\\u{1F940}\\u{1F922}\\u{1F445}\\u{1F4A1}\\u{1F4A9}\\u{1F450}\\u{1F4F8}\\u{1F47B}\\u{1F910}\\u{1F92E}\\u{1F3BC}\\u{1F975}\\u{1F6A9}\\u{1F34E}\\u{1F34A}\\u{1F47C}\\u{1F48D}\\u{1F4E3}\\u{1F942}\"),Yt=ne.reduce((r,t,e)=>(r[e]=t,r),[]),Qt=ne.reduce((r,t,e)=>(r[t.codePointAt(0)]=e,r),[]);function Zt(r){return r.reduce((t,e)=>(t+=Yt[e],t),\"\")}function Wt(r){const t=[];for(const e of r){const i=Qt[e.codePointAt(0)];if(i===void 0)throw new Error(`Non-base256emoji character: ${e}`);t.push(i)}return new Uint8Array(t)}const er=O({prefix:\"\\u{1F680}\",name:\"base256emoji\",encode:Zt,decode:Wt});var tr=Object.freeze({__proto__:null,base256emoji:er}),rr=oe,se=128,ir=127,nr=~ir,sr=Math.pow(2,31);function oe(r,t,e){t=t||[],e=e||0;for(var i=e;r>=sr;)t[e++]=r&255|se,r/=128;for(;r&nr;)t[e++]=r&255|se,r>>>=7;return t[e]=r|0,oe.bytes=e-i+1,t}var or=j,ur=128,ue=127;function j(r,i){var e=0,i=i||0,n=0,s=i,o,u=r.length;do{if(s>=u)throw j.bytes=0,new RangeError(\"Could not decode varint\");o=r[s++],e+=n<28?(o&ue)<=ur);return j.bytes=s-i,e}var ar=Math.pow(2,7),Dr=Math.pow(2,14),cr=Math.pow(2,21),hr=Math.pow(2,28),lr=Math.pow(2,35),dr=Math.pow(2,42),pr=Math.pow(2,49),fr=Math.pow(2,56),gr=Math.pow(2,63),Er=function(r){return r(ae.encode(r,t,e),t),ce=r=>ae.encodingLength(r),M=(r,t)=>{const e=t.byteLength,i=ce(r),n=i+ce(e),s=new Uint8Array(n+e);return De(r,s,0),De(e,s,i),s.set(t,n),new yr(r,e,t,s)};class yr{constructor(t,e,i,n){this.code=t,this.size=e,this.digest=i,this.bytes=n}}const he=({name:r,code:t,encode:e})=>new wr(r,t,e);class wr{constructor(t,e,i){this.name=t,this.code=e,this.encode=i}digest(t){if(t instanceof Uint8Array){const e=this.encode(t);return e instanceof Uint8Array?M(this.code,e):e.then(i=>M(this.code,i))}else throw Error(\"Unknown type, must be binary type\")}}const le=r=>async t=>new Uint8Array(await crypto.subtle.digest(r,t)),Cr=he({name:\"sha2-256\",code:18,encode:le(\"SHA-256\")}),mr=he({name:\"sha2-512\",code:19,encode:le(\"SHA-512\")});var vr=Object.freeze({__proto__:null,sha256:Cr,sha512:mr});const de=0,Ar=\"identity\",pe=re,_r=r=>M(de,pe(r)),xr={code:de,name:Ar,encode:pe,digest:_r};var Rr=Object.freeze({__proto__:null,identity:xr});new TextEncoder,new TextDecoder;const fe={...yt,...Ct,...vt,..._t,...Ft,...Bt,...Mt,...Vt,...Ht,...tr};({...vr,...Rr});function ge(r,t,e,i){return{name:r,prefix:t,encoder:{name:r,prefix:t,encode:e},decoder:{decode:i}}}const Ee=ge(\"utf8\",\"u\",r=>\"u\"+new TextDecoder(\"utf8\").decode(r),r=>new TextEncoder().encode(r.substring(1))),L=ge(\"ascii\",\"a\",r=>{let t=\"a\";for(let e=0;e{r=r.substring(1);const t=ot(r.length);for(let e=0;et in r?Or(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e,I=(r,t)=>{for(var e in t||(t={}))Nr.call(t,e)&&me(r,e,t[e]);if(Ce)for(var e of Ce(t))$r.call(t,e)&&me(r,e,t[e]);return r},V=(r,t)=>Sr(r,Pr(t));class Br extends G{constructor(t){super(t),this.initialized=!1,this.name=\"authEngine\",this.init=()=>{this.initialized||(this.registerRelayerEvents(),this.registerPairingEvents(),this.client.core.pairing.register({methods:Object.keys(R)}),this.initialized=!0)},this.request=async(e,i)=>{if(this.isInitialized(),!nt(e))throw new Error(\"Invalid request\");if(i!=null&&i.topic)return await this.requestOnKnownPairing(i.topic,e);const{chainId:n,statement:s,aud:o,domain:u,nonce:a,type:c,exp:h,nbf:f}=e,{topic:p,uri:A}=await this.client.core.pairing.create();this.client.logger.info({message:\"Generated new pairing\",pairing:{topic:p,uri:A}});const D=await this.client.core.crypto.generateKeyPair(),l=J(D);await this.client.authKeys.set(x,{responseTopic:l,publicKey:D}),await this.client.pairingTopics.set(l,{topic:l,pairingTopic:p}),await this.client.core.relayer.subscribe(l),this.client.logger.info(`sending request to new pairing topic: ${p}`);const m=await this.sendRequest(p,\"wc_authRequest\",{payloadParams:{type:c??\"eip4361\",chainId:n,statement:s,aud:o,domain:u,version:\"1\",nonce:a,iat:new Date().toISOString(),exp:h,nbf:f},requester:{publicKey:D,metadata:this.client.metadata}},{},e.expiry);return this.client.logger.info(`sent request to new pairing topic: ${p}`),{uri:A,id:m}},this.respond=async(e,i)=>{if(this.isInitialized(),!st(e,this.client.requests))throw new Error(\"Invalid response\");const n=te(this.client.requests,e.id);if(!n)throw new Error(`Could not find pending auth request with id ${e.id}`);const s=n.requester.publicKey,o=await this.client.core.crypto.generateKeyPair(),u=J(s),a={type:Me,receiverPublicKey:s,senderPublicKey:o};if(\"error\"in e){await this.sendError(n.id,u,e,a);return}const c={h:{t:\"eip4361\"},p:V(I({},n.cacaoPayload),{iss:i}),s:e.signature};await this.sendResult(n.id,u,c,a),await this.client.core.pairing.activate({topic:n.pairingTopic}),await this.client.requests.update(n.id,I({},c))},this.getPendingRequests=()=>ee(this.client.requests),this.formatMessage=(e,i)=>{this.client.logger.debug(`formatMessage, cacao is: ${JSON.stringify(e)}`);const n=`${e.domain} wants you to sign in with your Ethereum account:`,s=W(i),o=e.statement,u=`URI: ${e.aud}`,a=`Version: ${e.version}`,c=`Chain ID: ${Ze(i)}`,h=`Nonce: ${e.nonce}`,f=`Issued At: ${e.iat}`,p=e.exp?`Expiry: ${e.exp}`:void 0,A=e.resources&&e.resources.length>0?`Resources:\n${e.resources.map(D=>`- ${D}`).join(`\n`)}`:void 0;return[n,s,\"\",o,\"\",u,a,c,h,f,p,A].filter(D=>D!=null).join(`\n`)},this.setExpiry=async(e,i)=>{this.client.core.pairing.pairings.keys.includes(e)&&await this.client.core.pairing.updateExpiry({topic:e,expiry:i}),this.client.core.expirer.set(e,i)},this.sendRequest=async(e,i,n,s,o)=>{const u=qe(i,n),a=await this.client.core.crypto.encode(e,u,s),c=R[i].req;if(o&&(c.ttl=o),this.client.core.history.set(e,u),je()){const h=K(JSON.stringify(u));this.client.core.verify.register({attestationId:h})}return await this.client.core.relayer.publish(e,a,V(I({},c),{internal:{throwOnFailedPublish:!0}})),u.id},this.sendResult=async(e,i,n,s)=>{const o=Ue(e,n),u=await this.client.core.crypto.encode(i,o,s),a=await this.client.core.history.get(i,e),c=R[a.request.method].res;return await this.client.core.relayer.publish(i,u,V(I({},c),{internal:{throwOnFailedPublish:!0}})),await this.client.core.history.resolve(o),o.id},this.sendError=async(e,i,n,s)=>{const o=Oe(e,n.error),u=await this.client.core.crypto.encode(i,o,s),a=await this.client.core.history.get(i,e),c=R[a.request.method].res;return await this.client.core.relayer.publish(i,u,c),await this.client.core.history.resolve(o),o.id},this.requestOnKnownPairing=async(e,i)=>{const n=this.client.core.pairing.pairings.getAll({active:!0}).find(A=>A.topic===e);if(!n)throw new Error(`Could not find pairing for provided topic ${e}`);const{publicKey:s}=this.client.authKeys.get(x),{chainId:o,statement:u,aud:a,domain:c,nonce:h,type:f}=i,p=await this.sendRequest(n.topic,\"wc_authRequest\",{payloadParams:{type:f??\"eip4361\",chainId:o,statement:u,aud:a,domain:c,version:\"1\",nonce:h,iat:new Date().toISOString()},requester:{publicKey:s,metadata:this.client.metadata}},{},i.expiry);return this.client.logger.info(`sent request to known pairing topic: ${n.topic}`),{id:p}},this.onPairingCreated=e=>{const i=this.getPendingRequests();if(i){const n=Object.values(i).find(s=>s.pairingTopic===e.topic);n&&this.handleAuthRequest(n)}},this.onRelayEventRequest=e=>{const{topic:i,payload:n}=e,s=n.method;switch(s){case\"wc_authRequest\":return this.onAuthRequest(i,n);default:return this.client.logger.info(`Unsupported request method ${s}`)}},this.onRelayEventResponse=async e=>{const{topic:i,payload:n}=e,s=(await this.client.core.history.get(i,n.id)).request.method;switch(s){case\"wc_authRequest\":return this.onAuthResponse(i,n);default:return this.client.logger.info(`Unsupported response method ${s}`)}},this.onAuthRequest=async(e,i)=>{const{requester:n,payloadParams:s}=i.params;this.client.logger.info({type:\"onAuthRequest\",topic:e,payload:i});const o=K(JSON.stringify(i)),u=await this.getVerifyContext(o,this.client.metadata),a={requester:n,pairingTopic:e,id:i.id,cacaoPayload:s,verifyContext:u};await this.client.requests.set(i.id,a),this.handleAuthRequest(a)},this.handleAuthRequest=async e=>{const{id:i,pairingTopic:n,requester:s,cacaoPayload:o,verifyContext:u}=e;try{this.client.emit(\"auth_request\",{id:i,topic:n,params:{requester:s,cacaoPayload:o},verifyContext:u})}catch(a){await this.sendError(e.id,e.pairingTopic,a),this.client.logger.error(a)}},this.onAuthResponse=async(e,i)=>{const{id:n}=i;if(this.client.logger.info({type:\"onAuthResponse\",topic:e,response:i}),Se(i)){const{pairingTopic:s}=this.client.pairingTopics.get(e);await this.client.core.pairing.activate({topic:s});const{s:o,p:u}=i.result;await this.client.requests.set(n,I({id:n,pairingTopic:s},i.result));const a=this.formatMessage(u,u.iss);this.client.logger.debug(`reconstructed message:\n`,JSON.stringify(a)),this.client.logger.debug(\"payload.iss:\",u.iss),this.client.logger.debug(\"signature:\",o);const c=W(u.iss),h=We(u.iss);if(!c)throw new Error(\"Could not derive address from `payload.iss`\");if(!h)throw new Error(\"Could not derive chainId from `payload.iss`\");this.client.logger.debug(\"walletAddress extracted from `payload.iss`:\",c),await et(c,a,o,h,this.client.projectId)?this.client.emit(\"auth_response\",{id:n,topic:e,params:i}):this.client.emit(\"auth_response\",{id:n,topic:e,params:{message:\"Invalid signature\",code:-1}})}else Pe(i)&&this.client.emit(\"auth_response\",{id:n,topic:e,params:i})},this.getVerifyContext=async(e,i)=>{const n={verified:{verifyUrl:i.verifyUrl||\"\",validation:\"UNKNOWN\",origin:i.url||\"\"}};try{const s=await this.client.core.verify.resolve({attestationId:e,verifyUrl:i.verifyUrl});s&&(n.verified.origin=s.origin,n.verified.isScam=s.isScam,n.verified.validation=origin===new URL(i.url).origin?\"VALID\":\"INVALID\")}catch(s){this.client.logger.error(s)}return this.client.logger.info(`Verify context: ${JSON.stringify(n)}`),n}}isInitialized(){if(!this.initialized){const{message:t}=k(\"NOT_INITIALIZED\",this.name);throw new Error(t)}}registerRelayerEvents(){this.client.core.relayer.on(ve.message,async t=>{const{topic:e,message:i}=t,{responseTopic:n,publicKey:s}=this.client.authKeys.keys.includes(x)?this.client.authKeys.get(x):{responseTopic:void 0,publicKey:void 0};if(n&&e!==n){this.client.logger.debug(\"[Auth] Ignoring message from unknown topic\",e);return}const o=await this.client.core.crypto.decode(e,i,{receiverPublicKey:s});Ne(o)?(this.client.core.history.set(e,o),this.onRelayEventRequest({topic:e,payload:o})):$e(o)&&(await this.client.core.history.resolve(o),this.onRelayEventResponse({topic:e,payload:o}))})}registerPairingEvents(){this.client.core.pairing.events.on(Ae.create,t=>this.onPairingCreated(t))}}class S extends H{constructor(t){super(t),this.protocol=$,this.version=Q,this.name=B,this.events=new Ie,this.emit=(i,n)=>this.events.emit(i,n),this.on=(i,n)=>this.events.on(i,n),this.once=(i,n)=>this.events.once(i,n),this.off=(i,n)=>this.events.off(i,n),this.removeListener=(i,n)=>this.events.removeListener(i,n),this.request=async(i,n)=>{try{return await this.engine.request(i,n)}catch(s){throw this.logger.error(s.message),s}},this.respond=async(i,n)=>{try{return await this.engine.respond(i,n)}catch(s){throw this.logger.error(s.message),s}},this.getPendingRequests=()=>{try{return this.engine.getPendingRequests()}catch(i){throw this.logger.error(i.message),i}},this.formatMessage=(i,n)=>{try{return this.engine.formatMessage(i,n)}catch(s){throw this.logger.error(s.message),s}};const e=typeof t.logger<\"u\"&&typeof t.logger!=\"string\"?t.logger:xe(Re({level:t.logger||\"error\"}));this.name=t?.name||B,this.metadata=t.metadata,this.projectId=t.projectId,this.core=t.core||new _e(t),this.logger=Fe(e,this.name),this.authKeys=new P(this.core,this.logger,\"authKeys\",F,()=>x),this.pairingTopics=new P(this.core,this.logger,\"pairingTopics\",F),this.requests=new P(this.core,this.logger,\"requests\",F,i=>i.id),this.engine=new Br(this)}static async init(t){const e=new S(t);return await e.initialize(),e}get context(){return Te(this.logger)}async initialize(){this.logger.trace(\"Initialized\");try{await this.core.start(),await this.authKeys.init(),await this.requests.init(),await this.pairingTopics.init(),await this.engine.init(),this.logger.info(\"AuthClient Initialization Success\"),this.logger.info({authClient:this})}catch(t){throw this.logger.info(\"AuthClient Initialization Failure\"),this.logger.error(t.message),t}}}const zr=S;export{Z as AUTH_CLIENT_CONTEXT,B as AUTH_CLIENT_DEFAULT_NAME,$ as AUTH_CLIENT_PROTOCOL,x as AUTH_CLIENT_PUBLIC_KEY_NAME,F as AUTH_CLIENT_STORAGE_PREFIX,Q as AUTH_CLIENT_VERSION,U as AUTH_REQUEST_EXPIRY_BOUNDARIES,zr as AuthClient,Ir as BASE10,ye as BASE16,qr as BASE64,Y as DEFAULT_RPC_URL,R as ENGINE_RPC_OPTS,Ge as EXPIRER_CONTEXT,Qe as EXPIRER_DEFAULT_TTL,He as EXPIRER_EVENTS,Ye as EXPIRER_STORAGE_VERSION,H as IAuthClient,G as IAuthEngine,we as UTF8,S as default,Ur as generateNonce,K as hashMessage};\n//# sourceMappingURL=index.es.js.map\n","module.exports = self.fetch || (self.fetch = require('unfetch').default || require('unfetch'));\n","import{IEvents as o}from\"@walletconnect/events\";import c,{EventEmitter as i}from\"events\";class n extends o{constructor(s){super(),this.opts=s,this.protocol=\"wc\",this.version=2}}class l{constructor(s,t,e){this.core=s,this.logger=t}}class h extends o{constructor(s,t){super(),this.core=s,this.logger=t,this.records=new Map}}class a{constructor(s,t){this.logger=s,this.core=t}}class g extends o{constructor(s,t){super(),this.relayer=s,this.logger=t}}class u extends o{constructor(s){super()}}class p{constructor(s,t,e,f){this.core=s,this.logger=t,this.name=e}}class I{constructor(){this.map=new Map}}class d extends o{constructor(s,t){super(),this.relayer=s,this.logger=t}}class E{constructor(s,t){this.core=s,this.logger=t}}class x extends o{constructor(s,t){super(),this.core=s,this.logger=t}}class m{constructor(s,t){this.logger=s,this.core=t}}class y{constructor(s,t,e){this.core=s,this.logger=t,this.store=e}}class v{constructor(s,t){this.projectId=s,this.logger=t}}class C{constructor(s,t,e){this.core=s,this.logger=t,this.telemetryEnabled=e}}class b extends c{constructor(){super()}}class S{constructor(s){this.opts=s,this.protocol=\"wc\",this.version=2}}class w extends i{constructor(){super()}}class M{constructor(s){this.client=s}}export{n as ICore,l as ICrypto,v as IEchoClient,M as IEngine,w as IEngineEvents,C as IEventClient,x as IExpirer,h as IJsonRpcHistory,E as IKeyChain,a as IMessageTracker,m as IPairing,g as IPublisher,u as IRelayer,S as ISignClient,b as ISignClientEvents,p as IStore,d as ISubscriber,I as ISubscriberTopicMap,y as IVerify};\n//# sourceMappingURL=index.es.js.map\n","var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar BrowserInfo = /** @class */ (function () {\n function BrowserInfo(name, version, os) {\n this.name = name;\n this.version = version;\n this.os = os;\n this.type = 'browser';\n }\n return BrowserInfo;\n}());\nexport { BrowserInfo };\nvar NodeInfo = /** @class */ (function () {\n function NodeInfo(version) {\n this.version = version;\n this.type = 'node';\n this.name = 'node';\n this.os = process.platform;\n }\n return NodeInfo;\n}());\nexport { NodeInfo };\nvar SearchBotDeviceInfo = /** @class */ (function () {\n function SearchBotDeviceInfo(name, version, os, bot) {\n this.name = name;\n this.version = version;\n this.os = os;\n this.bot = bot;\n this.type = 'bot-device';\n }\n return SearchBotDeviceInfo;\n}());\nexport { SearchBotDeviceInfo };\nvar BotInfo = /** @class */ (function () {\n function BotInfo() {\n this.type = 'bot';\n this.bot = true; // NOTE: deprecated test name instead\n this.name = 'bot';\n this.version = null;\n this.os = null;\n }\n return BotInfo;\n}());\nexport { BotInfo };\nvar ReactNativeInfo = /** @class */ (function () {\n function ReactNativeInfo() {\n this.type = 'react-native';\n this.name = 'react-native';\n this.version = null;\n this.os = null;\n }\n return ReactNativeInfo;\n}());\nexport { ReactNativeInfo };\n// tslint:disable-next-line:max-line-length\nvar SEARCHBOX_UA_REGEX = /alexa|bot|crawl(er|ing)|facebookexternalhit|feedburner|google web preview|nagios|postrank|pingdom|slurp|spider|yahoo!|yandex/;\nvar SEARCHBOT_OS_REGEX = /(nuhk|curl|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask\\ Jeeves\\/Teoma|ia_archiver)/;\nvar REQUIRED_VERSION_PARTS = 3;\nvar userAgentRules = [\n ['aol', /AOLShield\\/([0-9\\._]+)/],\n ['edge', /Edge\\/([0-9\\._]+)/],\n ['edge-ios', /EdgiOS\\/([0-9\\._]+)/],\n ['yandexbrowser', /YaBrowser\\/([0-9\\._]+)/],\n ['kakaotalk', /KAKAOTALK\\s([0-9\\.]+)/],\n ['samsung', /SamsungBrowser\\/([0-9\\.]+)/],\n ['silk', /\\bSilk\\/([0-9._-]+)\\b/],\n ['miui', /MiuiBrowser\\/([0-9\\.]+)$/],\n ['beaker', /BeakerBrowser\\/([0-9\\.]+)/],\n ['edge-chromium', /EdgA?\\/([0-9\\.]+)/],\n [\n 'chromium-webview',\n /(?!Chrom.*OPR)wv\\).*Chrom(?:e|ium)\\/([0-9\\.]+)(:?\\s|$)/,\n ],\n ['chrome', /(?!Chrom.*OPR)Chrom(?:e|ium)\\/([0-9\\.]+)(:?\\s|$)/],\n ['phantomjs', /PhantomJS\\/([0-9\\.]+)(:?\\s|$)/],\n ['crios', /CriOS\\/([0-9\\.]+)(:?\\s|$)/],\n ['firefox', /Firefox\\/([0-9\\.]+)(?:\\s|$)/],\n ['fxios', /FxiOS\\/([0-9\\.]+)/],\n ['opera-mini', /Opera Mini.*Version\\/([0-9\\.]+)/],\n ['opera', /Opera\\/([0-9\\.]+)(?:\\s|$)/],\n ['opera', /OPR\\/([0-9\\.]+)(:?\\s|$)/],\n ['pie', /^Microsoft Pocket Internet Explorer\\/(\\d+\\.\\d+)$/],\n ['pie', /^Mozilla\\/\\d\\.\\d+\\s\\(compatible;\\s(?:MSP?IE|MSInternet Explorer) (\\d+\\.\\d+);.*Windows CE.*\\)$/],\n ['netfront', /^Mozilla\\/\\d\\.\\d+.*NetFront\\/(\\d.\\d)/],\n ['ie', /Trident\\/7\\.0.*rv\\:([0-9\\.]+).*\\).*Gecko$/],\n ['ie', /MSIE\\s([0-9\\.]+);.*Trident\\/[4-7].0/],\n ['ie', /MSIE\\s(7\\.0)/],\n ['bb10', /BB10;\\sTouch.*Version\\/([0-9\\.]+)/],\n ['android', /Android\\s([0-9\\.]+)/],\n ['ios', /Version\\/([0-9\\._]+).*Mobile.*Safari.*/],\n ['safari', /Version\\/([0-9\\._]+).*Safari/],\n ['facebook', /FB[AS]V\\/([0-9\\.]+)/],\n ['instagram', /Instagram\\s([0-9\\.]+)/],\n ['ios-webview', /AppleWebKit\\/([0-9\\.]+).*Mobile/],\n ['ios-webview', /AppleWebKit\\/([0-9\\.]+).*Gecko\\)$/],\n ['curl', /^curl\\/([0-9\\.]+)$/],\n ['searchbot', SEARCHBOX_UA_REGEX],\n];\nvar operatingSystemRules = [\n ['iOS', /iP(hone|od|ad)/],\n ['Android OS', /Android/],\n ['BlackBerry OS', /BlackBerry|BB10/],\n ['Windows Mobile', /IEMobile/],\n ['Amazon OS', /Kindle/],\n ['Windows 3.11', /Win16/],\n ['Windows 95', /(Windows 95)|(Win95)|(Windows_95)/],\n ['Windows 98', /(Windows 98)|(Win98)/],\n ['Windows 2000', /(Windows NT 5.0)|(Windows 2000)/],\n ['Windows XP', /(Windows NT 5.1)|(Windows XP)/],\n ['Windows Server 2003', /(Windows NT 5.2)/],\n ['Windows Vista', /(Windows NT 6.0)/],\n ['Windows 7', /(Windows NT 6.1)/],\n ['Windows 8', /(Windows NT 6.2)/],\n ['Windows 8.1', /(Windows NT 6.3)/],\n ['Windows 10', /(Windows NT 10.0)/],\n ['Windows ME', /Windows ME/],\n ['Windows CE', /Windows CE|WinCE|Microsoft Pocket Internet Explorer/],\n ['Open BSD', /OpenBSD/],\n ['Sun OS', /SunOS/],\n ['Chrome OS', /CrOS/],\n ['Linux', /(Linux)|(X11)/],\n ['Mac OS', /(Mac_PowerPC)|(Macintosh)/],\n ['QNX', /QNX/],\n ['BeOS', /BeOS/],\n ['OS/2', /OS\\/2/],\n];\nexport function detect(userAgent) {\n if (!!userAgent) {\n return parseUserAgent(userAgent);\n }\n if (typeof document === 'undefined' &&\n typeof navigator !== 'undefined' &&\n navigator.product === 'ReactNative') {\n return new ReactNativeInfo();\n }\n if (typeof navigator !== 'undefined') {\n return parseUserAgent(navigator.userAgent);\n }\n return getNodeVersion();\n}\nfunction matchUserAgent(ua) {\n // opted for using reduce here rather than Array#first with a regex.test call\n // this is primarily because using the reduce we only perform the regex\n // execution once rather than once for the test and for the exec again below\n // probably something that needs to be benchmarked though\n return (ua !== '' &&\n userAgentRules.reduce(function (matched, _a) {\n var browser = _a[0], regex = _a[1];\n if (matched) {\n return matched;\n }\n var uaMatch = regex.exec(ua);\n return !!uaMatch && [browser, uaMatch];\n }, false));\n}\nexport function browserName(ua) {\n var data = matchUserAgent(ua);\n return data ? data[0] : null;\n}\nexport function parseUserAgent(ua) {\n var matchedRule = matchUserAgent(ua);\n if (!matchedRule) {\n return null;\n }\n var name = matchedRule[0], match = matchedRule[1];\n if (name === 'searchbot') {\n return new BotInfo();\n }\n // Do not use RegExp for split operation as some browser do not support it (See: http://blog.stevenlevithan.com/archives/cross-browser-split)\n var versionParts = match[1] && match[1].split('.').join('_').split('_').slice(0, 3);\n if (versionParts) {\n if (versionParts.length < REQUIRED_VERSION_PARTS) {\n versionParts = __spreadArray(__spreadArray([], versionParts, true), createVersionParts(REQUIRED_VERSION_PARTS - versionParts.length), true);\n }\n }\n else {\n versionParts = [];\n }\n var version = versionParts.join('.');\n var os = detectOS(ua);\n var searchBotMatch = SEARCHBOT_OS_REGEX.exec(ua);\n if (searchBotMatch && searchBotMatch[1]) {\n return new SearchBotDeviceInfo(name, version, os, searchBotMatch[1]);\n }\n return new BrowserInfo(name, version, os);\n}\nexport function detectOS(ua) {\n for (var ii = 0, count = operatingSystemRules.length; ii < count; ii++) {\n var _a = operatingSystemRules[ii], os = _a[0], regex = _a[1];\n var match = regex.exec(ua);\n if (match) {\n return os;\n }\n }\n return null;\n}\nexport function getNodeVersion() {\n var isNode = typeof process !== 'undefined' && process.version;\n return isNode ? new NodeInfo(process.version.slice(1)) : null;\n}\nfunction createVersionParts(count) {\n var output = [];\n for (var ii = 0; ii < count; ii++) {\n output.push('0');\n }\n return output;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getWindowMetadata = void 0;\nconst window_getters_1 = require(\"@walletconnect/window-getters\");\nfunction getWindowMetadata() {\n let doc;\n let loc;\n try {\n doc = window_getters_1.getDocumentOrThrow();\n loc = window_getters_1.getLocationOrThrow();\n }\n catch (e) {\n return null;\n }\n function getIcons() {\n const links = doc.getElementsByTagName(\"link\");\n const icons = [];\n for (let i = 0; i < links.length; i++) {\n const link = links[i];\n const rel = link.getAttribute(\"rel\");\n if (rel) {\n if (rel.toLowerCase().indexOf(\"icon\") > -1) {\n const href = link.getAttribute(\"href\");\n if (href) {\n if (href.toLowerCase().indexOf(\"https:\") === -1 &&\n href.toLowerCase().indexOf(\"http:\") === -1 &&\n href.indexOf(\"//\") !== 0) {\n let absoluteHref = loc.protocol + \"//\" + loc.host;\n if (href.indexOf(\"/\") === 0) {\n absoluteHref += href;\n }\n else {\n const path = loc.pathname.split(\"/\");\n path.pop();\n const finalPath = path.join(\"/\");\n absoluteHref += finalPath + \"/\" + href;\n }\n icons.push(absoluteHref);\n }\n else if (href.indexOf(\"//\") === 0) {\n const absoluteUrl = loc.protocol + href;\n icons.push(absoluteUrl);\n }\n else {\n icons.push(href);\n }\n }\n }\n }\n }\n return icons;\n }\n function getWindowMetadataOfAny(...args) {\n const metaTags = doc.getElementsByTagName(\"meta\");\n for (let i = 0; i < metaTags.length; i++) {\n const tag = metaTags[i];\n const attributes = [\"itemprop\", \"property\", \"name\"]\n .map((target) => tag.getAttribute(target))\n .filter((attr) => {\n if (attr) {\n return args.includes(attr);\n }\n return false;\n });\n if (attributes.length && attributes) {\n const content = tag.getAttribute(\"content\");\n if (content) {\n return content;\n }\n }\n }\n return \"\";\n }\n function getName() {\n let name = getWindowMetadataOfAny(\"name\", \"og:site_name\", \"og:title\", \"twitter:title\");\n if (!name) {\n name = doc.title;\n }\n return name;\n }\n function getDescription() {\n const description = getWindowMetadataOfAny(\"description\", \"og:description\", \"twitter:description\", \"keywords\");\n return description;\n }\n const name = getName();\n const description = getDescription();\n const url = loc.origin;\n const icons = getIcons();\n const meta = {\n description,\n url,\n icons,\n name,\n };\n return meta;\n}\nexports.getWindowMetadata = getWindowMetadata;\n//# sourceMappingURL=index.js.map","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\n\nvar utils = exports;\nvar BN = require('bn.js');\nvar minAssert = require('minimalistic-assert');\nvar minUtils = require('minimalistic-crypto-utils');\n\nutils.assert = minAssert;\nutils.toArray = minUtils.toArray;\nutils.zero2 = minUtils.zero2;\nutils.toHex = minUtils.toHex;\nutils.encode = minUtils.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n var i;\n for (i = 0; i < naf.length; i += 1) {\n naf[i] = 0;\n }\n\n var ws = 1 << (w + 1);\n var k = num.clone();\n\n for (i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n [],\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n var m8;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n var j;\n var nafW;\n for (j = 0; j < naf.length; j += doubles.step) {\n nafW = 0;\n for (var l = j + doubles.step - 1; l >= j; l--)\n nafW = (nafW << 1) + naf[l];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (j = 0; j < repr.length; j++) {\n nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var l = 0; i >= 0 && naf[i] === 0; i--)\n l++;\n if (i >= 0)\n l++;\n acc = acc.dblp(l);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n var i;\n var j;\n var p;\n for (i = 0; i < len; i++) {\n p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b], /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3, /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (j = 0; j < len; j++) {\n var z = tmp[j];\n p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len));\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null,\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles,\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res,\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction ShortCurve(conf) {\n Base.call(this, 'short', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n\n // If the curve is endomorphic, precalculate beta and lambda\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits(ShortCurve, Base);\nmodule.exports = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n\n // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n // Choose the smallest beta\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n\n // Get basis vectors, used for balanced length-two representation\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16),\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis,\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [ l1, l2 ];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n\n // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1);\n\n // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n var a0;\n var b0;\n // First vector\n var a1;\n var b1;\n // Second vector\n var a2;\n var b2;\n\n var prevR;\n var i = 0;\n var r;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r;\n\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r.neg();\n b2 = x;\n\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n\n // Normalize signs\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 },\n ];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n\n // Calculate answer\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1: k1, k2: k2 };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf)\n return true;\n\n var x = point.x;\n var y = point.y;\n\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd =\n function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n\n // Clean-up references to points and coefficients\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n };\n\nfunction Point(curve, x, y, isRed) {\n Base.BasePoint.call(this, curve, 'affine');\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n // Force redgomery representation when loading from JSON\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits(Point, Base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo)\n return;\n\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul),\n },\n };\n }\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [ this.x, this.y ];\n\n return [ this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1),\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1),\n },\n } ];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string')\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [ res ].concat(pre.doubles.points.map(obj2point)),\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [ res ].concat(pre.naf.points.map(obj2point)),\n },\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf)\n return p;\n\n // P + O = P\n if (p.inf)\n return this;\n\n // P + P = 2P\n if (this.eq(p))\n return this.dbl();\n\n // P + (-P) = O\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n\n // P + Q = O\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n\n // 2P = O\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n\n var a = this.curve.a;\n\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([ this ], [ k ]);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p ||\n this.inf === p.inf &&\n (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate),\n },\n };\n }\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n Base.BasePoint.call(this, curve, 'jacobian');\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n\n this.zOne = this.z === this.curve.one;\n}\ninherits(JPoint, Base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity())\n return p;\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 12M + 4S + 7A\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity())\n return p.toJ();\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 8M + 3S + 7A\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n\n var i;\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n for (i = 0; i < pow; i++)\n r = r.dbl();\n return r;\n }\n\n // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n // Reuse results\n var jyd = jy.redAdd(jy);\n for (i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // T = M ^ 2 - 2*S\n var t = m.redSqr().redISub(s).redISub(s);\n\n // 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2*Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = B^2\n var c = b.redSqr();\n // D = 2 * ((X1 + B)^2 - A - C)\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n // E = 3 * A\n var e = a.redAdd(a).redIAdd(a);\n // F = E^2\n var f = e.redSqr();\n\n // 8 * C\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n\n // X3 = F - 2 * D\n nx = f.redISub(d).redISub(d);\n // Y3 = E * (D - X3) - 8 * C\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n // Z3 = 2 * Y1 * Z1\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n // T = M^2 - 2 * S\n var t = m.redSqr().redISub(s).redISub(s);\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2 * Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n\n // delta = Z1^2\n var delta = this.z.redSqr();\n // gamma = Y1^2\n var gamma = this.y.redSqr();\n // beta = X1 * gamma\n var beta = this.x.redMul(gamma);\n // alpha = 3 * (X1 - delta) * (X1 + delta)\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n // X3 = alpha^2 - 8 * beta\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n // Z3 = (Y1 + Z1)^2 - gamma - delta\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n\n // 4M + 6S + 10A\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // ZZ = Z1^2\n var zz = this.z.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // M = 3 * XX + a * ZZ2; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // MM = M^2\n var mm = m.redSqr();\n // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n // EE = E^2\n var ee = e.redSqr();\n // T = 16*YYYY\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n // U = (M + E)^2 - MM - EE - T\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n // X3 = 4 * (X1 * EE - 4 * YY * U)\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n // Z3 = (Z1 + E)^2 - ZZ - EE\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine')\n return this.eq(p.toJ());\n\n if (this === p)\n return true;\n\n // x1 * z2^2 == x2 * z1^2\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n\n // y1 * z2^3 == y2 * z1^3\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar utils = require('../utils');\n\nfunction MontCurve(conf) {\n Base.call(this, 'mont', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.i4 = new BN(4).toRed(this.red).redInvm();\n this.two = new BN(2).toRed(this.red);\n this.a24 = this.i4.redMul(this.a.redAdd(this.two));\n}\ninherits(MontCurve, Base);\nmodule.exports = MontCurve;\n\nMontCurve.prototype.validate = function validate(point) {\n var x = point.normalize().x;\n var x2 = x.redSqr();\n var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);\n var y = rhs.redSqrt();\n\n return y.redSqr().cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, z) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && z === null) {\n this.x = this.curve.one;\n this.z = this.curve.zero;\n } else {\n this.x = new BN(x, 16);\n this.z = new BN(z, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n }\n}\ninherits(Point, Base.BasePoint);\n\nMontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n return this.point(utils.toArray(bytes, enc), 1);\n};\n\nMontCurve.prototype.point = function point(x, z) {\n return new Point(this, x, z);\n};\n\nMontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nPoint.prototype.precompute = function precompute() {\n // No-op\n};\n\nPoint.prototype._encode = function _encode() {\n return this.getX().toArray('be', this.curve.p.byteLength());\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1] || curve.one);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n\nPoint.prototype.dbl = function dbl() {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-1987-m-3\n // 2M + 2S + 4A\n\n // A = X1 + Z1\n var a = this.x.redAdd(this.z);\n // AA = A^2\n var aa = a.redSqr();\n // B = X1 - Z1\n var b = this.x.redSub(this.z);\n // BB = B^2\n var bb = b.redSqr();\n // C = AA - BB\n var c = aa.redSub(bb);\n // X3 = AA * BB\n var nx = aa.redMul(bb);\n // Z3 = C * (BB + A24 * C)\n var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.add = function add() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.diffAdd = function diffAdd(p, diff) {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-1987-m-3\n // 4M + 2S + 6A\n\n // A = X2 + Z2\n var a = this.x.redAdd(this.z);\n // B = X2 - Z2\n var b = this.x.redSub(this.z);\n // C = X3 + Z3\n var c = p.x.redAdd(p.z);\n // D = X3 - Z3\n var d = p.x.redSub(p.z);\n // DA = D * A\n var da = d.redMul(a);\n // CB = C * B\n var cb = c.redMul(b);\n // X5 = Z1 * (DA + CB)^2\n var nx = diff.z.redMul(da.redAdd(cb).redSqr());\n // Z5 = X1 * (DA - CB)^2\n var nz = diff.x.redMul(da.redISub(cb).redSqr());\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.mul = function mul(k) {\n var t = k.clone();\n var a = this; // (N / 2) * Q + Q\n var b = this.curve.point(null, null); // (N / 2) * Q\n var c = this; // Q\n\n for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1))\n bits.push(t.andln(1));\n\n for (var i = bits.length - 1; i >= 0; i--) {\n if (bits[i] === 0) {\n // N * Q + Q = ((N / 2) * Q + Q)) + (N / 2) * Q\n a = a.diffAdd(b, c);\n // N * Q = 2 * ((N / 2) * Q + Q))\n b = b.dbl();\n } else {\n // N * Q = ((N / 2) * Q + Q) + ((N / 2) * Q)\n b = a.diffAdd(b, c);\n // N * Q + Q = 2 * ((N / 2) * Q + Q)\n a = a.dbl();\n }\n }\n return b;\n};\n\nPoint.prototype.mulAdd = function mulAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.jumlAdd = function jumlAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.eq = function eq(other) {\n return this.getX().cmp(other.getX()) === 0;\n};\n\nPoint.prototype.normalize = function normalize() {\n this.x = this.x.redMul(this.z.redInvm());\n this.z = this.curve.one;\n return this;\n};\n\nPoint.prototype.getX = function getX() {\n // Normalize coordinates\n this.normalize();\n\n return this.x.fromRed();\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction EdwardsCurve(conf) {\n // NOTE: Important as we are creating point in Base.call()\n this.twisted = (conf.a | 0) !== 1;\n this.mOneA = this.twisted && (conf.a | 0) === -1;\n this.extended = this.mOneA;\n\n Base.call(this, 'edwards', conf);\n\n this.a = new BN(conf.a, 16).umod(this.red.m);\n this.a = this.a.toRed(this.red);\n this.c = new BN(conf.c, 16).toRed(this.red);\n this.c2 = this.c.redSqr();\n this.d = new BN(conf.d, 16).toRed(this.red);\n this.dd = this.d.redAdd(this.d);\n\n assert(!this.twisted || this.c.fromRed().cmpn(1) === 0);\n this.oneC = (conf.c | 0) === 1;\n}\ninherits(EdwardsCurve, Base);\nmodule.exports = EdwardsCurve;\n\nEdwardsCurve.prototype._mulA = function _mulA(num) {\n if (this.mOneA)\n return num.redNeg();\n else\n return this.a.redMul(num);\n};\n\nEdwardsCurve.prototype._mulC = function _mulC(num) {\n if (this.oneC)\n return num;\n else\n return this.c.redMul(num);\n};\n\n// Just for compatibility with Short curve\nEdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {\n return this.point(x, y, z, t);\n};\n\nEdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var x2 = x.redSqr();\n var rhs = this.c2.redSub(this.a.redMul(x2));\n var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));\n\n var y2 = rhs.redMul(lhs.redInvm());\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {\n y = new BN(y, 16);\n if (!y.red)\n y = y.toRed(this.red);\n\n // x^2 = (y^2 - c^2) / (c^2 d y^2 - a)\n var y2 = y.redSqr();\n var lhs = y2.redSub(this.c2);\n var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a);\n var x2 = lhs.redMul(rhs.redInvm());\n\n if (x2.cmp(this.zero) === 0) {\n if (odd)\n throw new Error('invalid point');\n else\n return this.point(this.zero, y);\n }\n\n var x = x2.redSqrt();\n if (x.redSqr().redSub(x2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n if (x.fromRed().isOdd() !== odd)\n x = x.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.validate = function validate(point) {\n if (point.isInfinity())\n return true;\n\n // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2)\n point.normalize();\n\n var x2 = point.x.redSqr();\n var y2 = point.y.redSqr();\n var lhs = x2.redMul(this.a).redAdd(y2);\n var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));\n\n return lhs.cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, y, z, t) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && y === null && z === null) {\n this.x = this.curve.zero;\n this.y = this.curve.one;\n this.z = this.curve.one;\n this.t = this.curve.zero;\n this.zOne = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = z ? new BN(z, 16) : this.curve.one;\n this.t = t && new BN(t, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n if (this.t && !this.t.red)\n this.t = this.t.toRed(this.curve.red);\n this.zOne = this.z === this.curve.one;\n\n // Use extended coordinates\n if (this.curve.extended && !this.t) {\n this.t = this.x.redMul(this.y);\n if (!this.zOne)\n this.t = this.t.redMul(this.z.redInvm());\n }\n }\n}\ninherits(Point, Base.BasePoint);\n\nEdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nEdwardsCurve.prototype.point = function point(x, y, z, t) {\n return new Point(this, x, y, z, t);\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1], obj[2]);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.x.cmpn(0) === 0 &&\n (this.y.cmp(this.z) === 0 ||\n (this.zOne && this.y.cmp(this.curve.c) === 0));\n};\n\nPoint.prototype._extDbl = function _extDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #doubling-dbl-2008-hwcd\n // 4M + 4S\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = 2 * Z1^2\n var c = this.z.redSqr();\n c = c.redIAdd(c);\n // D = a * A\n var d = this.curve._mulA(a);\n // E = (X1 + Y1)^2 - A - B\n var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);\n // G = D + B\n var g = d.redAdd(b);\n // F = G - C\n var f = g.redSub(c);\n // H = D - B\n var h = d.redSub(b);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projDbl = function _projDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #doubling-dbl-2008-bbjlp\n // #doubling-dbl-2007-bl\n // and others\n // Generally 3M + 4S or 2M + 4S\n\n // B = (X1 + Y1)^2\n var b = this.x.redAdd(this.y).redSqr();\n // C = X1^2\n var c = this.x.redSqr();\n // D = Y1^2\n var d = this.y.redSqr();\n\n var nx;\n var ny;\n var nz;\n var e;\n var h;\n var j;\n if (this.curve.twisted) {\n // E = a * C\n e = this.curve._mulA(c);\n // F = E + D\n var f = e.redAdd(d);\n if (this.zOne) {\n // X3 = (B - C - D) * (F - 2)\n nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F^2 - 2 * F\n nz = f.redSqr().redSub(f).redSub(f);\n } else {\n // H = Z1^2\n h = this.z.redSqr();\n // J = F - 2 * H\n j = f.redSub(h).redISub(h);\n // X3 = (B-C-D)*J\n nx = b.redSub(c).redISub(d).redMul(j);\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F * J\n nz = f.redMul(j);\n }\n } else {\n // E = C + D\n e = c.redAdd(d);\n // H = (c * Z1)^2\n h = this.curve._mulC(this.z).redSqr();\n // J = E - 2 * H\n j = e.redSub(h).redSub(h);\n // X3 = c * (B - E) * J\n nx = this.curve._mulC(b.redISub(e)).redMul(j);\n // Y3 = c * E * (C - D)\n ny = this.curve._mulC(e).redMul(c.redISub(d));\n // Z3 = E * J\n nz = e.redMul(j);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n // Double in extended coordinates\n if (this.curve.extended)\n return this._extDbl();\n else\n return this._projDbl();\n};\n\nPoint.prototype._extAdd = function _extAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #addition-add-2008-hwcd-3\n // 8M\n\n // A = (Y1 - X1) * (Y2 - X2)\n var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));\n // B = (Y1 + X1) * (Y2 + X2)\n var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));\n // C = T1 * k * T2\n var c = this.t.redMul(this.curve.dd).redMul(p.t);\n // D = Z1 * 2 * Z2\n var d = this.z.redMul(p.z.redAdd(p.z));\n // E = B - A\n var e = b.redSub(a);\n // F = D - C\n var f = d.redSub(c);\n // G = D + C\n var g = d.redAdd(c);\n // H = B + A\n var h = b.redAdd(a);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projAdd = function _projAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #addition-add-2008-bbjlp\n // #addition-add-2007-bl\n // 10M + 1S\n\n // A = Z1 * Z2\n var a = this.z.redMul(p.z);\n // B = A^2\n var b = a.redSqr();\n // C = X1 * X2\n var c = this.x.redMul(p.x);\n // D = Y1 * Y2\n var d = this.y.redMul(p.y);\n // E = d * C * D\n var e = this.curve.d.redMul(c).redMul(d);\n // F = B - E\n var f = b.redSub(e);\n // G = B + E\n var g = b.redAdd(e);\n // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)\n var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);\n var nx = a.redMul(f).redMul(tmp);\n var ny;\n var nz;\n if (this.curve.twisted) {\n // Y3 = A * G * (D - a * C)\n ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));\n // Z3 = F * G\n nz = f.redMul(g);\n } else {\n // Y3 = A * G * (D - C)\n ny = a.redMul(g).redMul(d.redSub(c));\n // Z3 = c * F * G\n nz = this.curve._mulC(f).redMul(g);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.add = function add(p) {\n if (this.isInfinity())\n return p;\n if (p.isInfinity())\n return this;\n\n if (this.curve.extended)\n return this._extAdd(p);\n else\n return this._projAdd(p);\n};\n\nPoint.prototype.mul = function mul(k) {\n if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, false);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, true);\n};\n\nPoint.prototype.normalize = function normalize() {\n if (this.zOne)\n return this;\n\n // Normalize coordinates\n var zi = this.z.redInvm();\n this.x = this.x.redMul(zi);\n this.y = this.y.redMul(zi);\n if (this.t)\n this.t = this.t.redMul(zi);\n this.z = this.curve.one;\n this.zOne = true;\n return this;\n};\n\nPoint.prototype.neg = function neg() {\n return this.curve.point(this.x.redNeg(),\n this.y,\n this.z,\n this.t && this.t.redNeg());\n};\n\nPoint.prototype.getX = function getX() {\n this.normalize();\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n this.normalize();\n return this.y.fromRed();\n};\n\nPoint.prototype.eq = function eq(other) {\n return this === other ||\n this.getX().cmp(other.getX()) === 0 &&\n this.getY().cmp(other.getY()) === 0;\n};\n\nPoint.prototype.eqXToP = function eqXToP(x) {\n var rx = x.toRed(this.curve.red).redMul(this.z);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(this.z);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\n// Compatibility with BaseCurve\nPoint.prototype.toP = Point.prototype.normalize;\nPoint.prototype.mixedAdd = Point.prototype.add;\n","'use strict';\n\nvar curve = exports;\n\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');\n","module.exports = {\n doubles: {\n step: 4,\n points: [\n [\n 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',\n 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821',\n ],\n [\n '8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',\n '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf',\n ],\n [\n '175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',\n 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695',\n ],\n [\n '363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',\n '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9',\n ],\n [\n '8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',\n '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36',\n ],\n [\n '723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',\n '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f',\n ],\n [\n 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',\n '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999',\n ],\n [\n '100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',\n 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09',\n ],\n [\n 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',\n '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d',\n ],\n [\n 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',\n 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088',\n ],\n [\n 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',\n '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d',\n ],\n [\n '53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',\n '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8',\n ],\n [\n '8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',\n '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a',\n ],\n [\n '385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',\n '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453',\n ],\n [\n '6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',\n '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160',\n ],\n [\n '3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',\n '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0',\n ],\n [\n '85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',\n '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6',\n ],\n [\n '948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',\n '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589',\n ],\n [\n '6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',\n 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17',\n ],\n [\n 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',\n '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda',\n ],\n [\n 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',\n '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd',\n ],\n [\n '213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',\n '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2',\n ],\n [\n '4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',\n '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6',\n ],\n [\n 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',\n '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f',\n ],\n [\n '76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',\n 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01',\n ],\n [\n 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',\n '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3',\n ],\n [\n 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',\n 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f',\n ],\n [\n 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',\n '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7',\n ],\n [\n 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',\n 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78',\n ],\n [\n 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',\n '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1',\n ],\n [\n '90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',\n 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150',\n ],\n [\n '8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',\n '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82',\n ],\n [\n 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',\n '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc',\n ],\n [\n '8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',\n 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b',\n ],\n [\n 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',\n '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51',\n ],\n [\n 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',\n '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45',\n ],\n [\n 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',\n 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120',\n ],\n [\n '324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',\n '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84',\n ],\n [\n '4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',\n '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d',\n ],\n [\n '9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',\n 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d',\n ],\n [\n '6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',\n '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8',\n ],\n [\n 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',\n '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8',\n ],\n [\n '7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',\n '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac',\n ],\n [\n '928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',\n 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f',\n ],\n [\n '85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',\n '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962',\n ],\n [\n 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',\n '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907',\n ],\n [\n '827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',\n 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec',\n ],\n [\n 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',\n 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d',\n ],\n [\n 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',\n '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414',\n ],\n [\n '1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',\n 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd',\n ],\n [\n '146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',\n 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0',\n ],\n [\n 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',\n '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811',\n ],\n [\n 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',\n '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1',\n ],\n [\n 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',\n '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c',\n ],\n [\n '174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',\n 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73',\n ],\n [\n '959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',\n '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd',\n ],\n [\n 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',\n 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405',\n ],\n [\n '64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',\n 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589',\n ],\n [\n '8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',\n '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e',\n ],\n [\n '13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',\n '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27',\n ],\n [\n 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',\n 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1',\n ],\n [\n '8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',\n '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482',\n ],\n [\n '8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',\n '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945',\n ],\n [\n 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',\n '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573',\n ],\n [\n 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',\n 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82',\n ],\n ],\n },\n naf: {\n wnd: 7,\n points: [\n [\n 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',\n '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672',\n ],\n [\n '2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',\n 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6',\n ],\n [\n '5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',\n '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da',\n ],\n [\n 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',\n 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37',\n ],\n [\n '774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',\n 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b',\n ],\n [\n 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',\n 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81',\n ],\n [\n 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',\n '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58',\n ],\n [\n 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',\n '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77',\n ],\n [\n '2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',\n '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a',\n ],\n [\n '352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',\n '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c',\n ],\n [\n '2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',\n '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67',\n ],\n [\n '9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',\n '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402',\n ],\n [\n 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',\n 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55',\n ],\n [\n 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',\n '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482',\n ],\n [\n '6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',\n 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82',\n ],\n [\n '1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',\n 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396',\n ],\n [\n '605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',\n '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49',\n ],\n [\n '62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',\n '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf',\n ],\n [\n '80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',\n '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a',\n ],\n [\n '7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',\n 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7',\n ],\n [\n 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',\n 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933',\n ],\n [\n '49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',\n '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a',\n ],\n [\n '77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',\n '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6',\n ],\n [\n 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',\n 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37',\n ],\n [\n '463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',\n '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e',\n ],\n [\n 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',\n 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6',\n ],\n [\n 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',\n 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476',\n ],\n [\n '2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',\n '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40',\n ],\n [\n '7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',\n '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61',\n ],\n [\n '754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',\n '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683',\n ],\n [\n 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',\n '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5',\n ],\n [\n '186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',\n '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b',\n ],\n [\n 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',\n '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417',\n ],\n [\n '5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',\n 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868',\n ],\n [\n '290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',\n 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a',\n ],\n [\n 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',\n 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6',\n ],\n [\n '766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',\n '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996',\n ],\n [\n '59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',\n 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e',\n ],\n [\n 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',\n 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d',\n ],\n [\n '7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',\n '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2',\n ],\n [\n '948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',\n 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e',\n ],\n [\n '7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',\n '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437',\n ],\n [\n '3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',\n 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311',\n ],\n [\n 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',\n '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4',\n ],\n [\n '1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',\n '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575',\n ],\n [\n '733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',\n 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d',\n ],\n [\n '15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',\n 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d',\n ],\n [\n 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',\n 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629',\n ],\n [\n 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',\n 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06',\n ],\n [\n '311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',\n '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374',\n ],\n [\n '34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',\n '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee',\n ],\n [\n 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',\n '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1',\n ],\n [\n 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',\n 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b',\n ],\n [\n '32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',\n '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661',\n ],\n [\n '7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',\n '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6',\n ],\n [\n 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',\n '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e',\n ],\n [\n '16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',\n '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d',\n ],\n [\n 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',\n 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc',\n ],\n [\n '78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',\n 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4',\n ],\n [\n '494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',\n '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c',\n ],\n [\n 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',\n '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b',\n ],\n [\n 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',\n '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913',\n ],\n [\n '841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',\n '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154',\n ],\n [\n '5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',\n '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865',\n ],\n [\n '36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',\n 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc',\n ],\n [\n '336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',\n 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224',\n ],\n [\n '8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',\n '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e',\n ],\n [\n '1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',\n '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6',\n ],\n [\n '85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',\n '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511',\n ],\n [\n '29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',\n 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b',\n ],\n [\n 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',\n 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2',\n ],\n [\n '4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',\n 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c',\n ],\n [\n 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',\n '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3',\n ],\n [\n 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',\n '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d',\n ],\n [\n 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',\n '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700',\n ],\n [\n 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',\n '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4',\n ],\n [\n '591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',\n 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196',\n ],\n [\n '11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',\n '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4',\n ],\n [\n '3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',\n 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257',\n ],\n [\n 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',\n 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13',\n ],\n [\n 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',\n '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096',\n ],\n [\n 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',\n 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38',\n ],\n [\n 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',\n '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f',\n ],\n [\n '347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',\n '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448',\n ],\n [\n 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',\n '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a',\n ],\n [\n 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',\n '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4',\n ],\n [\n '4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',\n '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437',\n ],\n [\n '3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',\n 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7',\n ],\n [\n 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',\n '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d',\n ],\n [\n 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',\n '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a',\n ],\n [\n 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',\n '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54',\n ],\n [\n '48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',\n '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77',\n ],\n [\n 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',\n 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517',\n ],\n [\n '6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',\n 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10',\n ],\n [\n 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',\n 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125',\n ],\n [\n 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',\n '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e',\n ],\n [\n '13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',\n 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1',\n ],\n [\n 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',\n '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2',\n ],\n [\n 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',\n '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423',\n ],\n [\n 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',\n '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8',\n ],\n [\n '8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',\n 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758',\n ],\n [\n '52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',\n 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375',\n ],\n [\n 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',\n '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d',\n ],\n [\n '7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',\n 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec',\n ],\n [\n '5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',\n '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0',\n ],\n [\n '32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',\n 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c',\n ],\n [\n 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',\n 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4',\n ],\n [\n '8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',\n 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f',\n ],\n [\n '4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',\n '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649',\n ],\n [\n '3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',\n 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826',\n ],\n [\n '674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',\n '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5',\n ],\n [\n 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',\n 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87',\n ],\n [\n '30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',\n '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b',\n ],\n [\n 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',\n '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc',\n ],\n [\n '93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',\n '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c',\n ],\n [\n 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',\n 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f',\n ],\n [\n 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',\n '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a',\n ],\n [\n 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',\n 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46',\n ],\n [\n '463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',\n 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f',\n ],\n [\n '7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',\n '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03',\n ],\n [\n '74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',\n 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08',\n ],\n [\n '30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',\n '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8',\n ],\n [\n '9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',\n '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373',\n ],\n [\n '176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',\n 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3',\n ],\n [\n '75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',\n '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8',\n ],\n [\n '809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',\n '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1',\n ],\n [\n '1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',\n '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9',\n ],\n ],\n },\n};\n","'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\nvar curve = require('./curve');\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve.edwards(options);\n else\n this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve,\n });\n return curve;\n },\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811',\n ],\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34',\n ],\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5',\n ],\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f',\n ],\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650',\n ],\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9',\n ],\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658',\n ],\n});\n\nvar pre;\ntry {\n pre = require('./precomputed/secp256k1');\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3',\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15',\n },\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre,\n ],\n});\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction KeyPair(ec, options) {\n this.ec = ec;\n this.priv = null;\n this.pub = null;\n\n // KeyPair(ec, { priv: ..., pub: ... })\n if (options.priv)\n this._importPrivate(options.priv, options.privEnc);\n if (options.pub)\n this._importPublic(options.pub, options.pubEnc);\n}\nmodule.exports = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n if (pub instanceof KeyPair)\n return pub;\n\n return new KeyPair(ec, {\n pub: pub,\n pubEnc: enc,\n });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n if (priv instanceof KeyPair)\n return priv;\n\n return new KeyPair(ec, {\n priv: priv,\n privEnc: enc,\n });\n};\n\nKeyPair.prototype.validate = function validate() {\n var pub = this.getPublic();\n\n if (pub.isInfinity())\n return { result: false, reason: 'Invalid public key' };\n if (!pub.validate())\n return { result: false, reason: 'Public key is not a point' };\n if (!pub.mul(this.ec.curve.n).isInfinity())\n return { result: false, reason: 'Public key * N != O' };\n\n return { result: true, reason: null };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n // compact is optional argument\n if (typeof compact === 'string') {\n enc = compact;\n compact = null;\n }\n\n if (!this.pub)\n this.pub = this.ec.g.mul(this.priv);\n\n if (!enc)\n return this.pub;\n\n return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n if (enc === 'hex')\n return this.priv.toString(16, 2);\n else\n return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n this.priv = new BN(key, enc || 16);\n\n // Ensure that the priv won't be bigger than n, otherwise we may fail\n // in fixed multiplication method\n this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n if (key.x || key.y) {\n // Montgomery points only have an `x` coordinate.\n // Weierstrass/Edwards points on the other hand have both `x` and\n // `y` coordinates.\n if (this.ec.curve.type === 'mont') {\n assert(key.x, 'Need x coordinate');\n } else if (this.ec.curve.type === 'short' ||\n this.ec.curve.type === 'edwards') {\n assert(key.x && key.y, 'Need both x and y coordinate');\n }\n this.pub = this.ec.curve.point(key.x, key.y);\n return;\n }\n this.pub = this.ec.curve.decodePoint(key, enc);\n};\n\n// ECDH\nKeyPair.prototype.derive = function derive(pub) {\n if(!pub.validate()) {\n assert(pub.validate(), 'public point not validated');\n }\n return pub.mul(this.priv).getX();\n};\n\n// ECDSA\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature) {\n return this.ec.verify(msg, signature, this);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n return '';\n};\n","'use strict';\n\nvar BN = require('bn.js');\n\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature)\n return options;\n\n if (this._importDER(options, enc))\n return;\n\n assert(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined)\n this.recoveryParam = null;\n else\n this.recoveryParam = options.recoveryParam;\n}\nmodule.exports = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n if (!(initial & 0x80)) {\n return initial;\n }\n var octetLen = initial & 0xf;\n\n // Indefinite length or overflow\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n\n if(buf[p.place] === 0x00) {\n return false;\n }\n\n var val = 0;\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n }\n\n // Leading zeroes\n if (val <= 0x7f) {\n return false;\n }\n\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n if (i === 0) {\n return buf;\n }\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils.toArray(data, enc);\n var p = new Position();\n if (data[p.place++] !== 0x30) {\n return false;\n }\n var len = getLength(data, p);\n if (len === false) {\n return false;\n }\n if ((len + p.place) !== data.length) {\n return false;\n }\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var rlen = getLength(data, p);\n if (rlen === false) {\n return false;\n }\n if ((data[p.place] & 128) !== 0) {\n return false;\n }\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var slen = getLength(data, p);\n if (slen === false) {\n return false;\n }\n if (data.length !== slen + p.place) {\n return false;\n }\n if ((data[p.place] & 128) !== 0) {\n return false;\n }\n var s = data.slice(p.place, slen + p.place);\n if (r[0] === 0) {\n if (r[1] & 0x80) {\n r = r.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n if (s[0] === 0) {\n if (s[1] & 0x80) {\n s = s.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n while (--octets) {\n arr.push((len >>> (octets << 3)) & 0xff);\n }\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray();\n\n // Pad values\n if (r[0] & 0x80)\n r = [ 0 ].concat(r);\n // Pad values\n if (s[0] & 0x80)\n s = [ 0 ].concat(s);\n\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n var arr = [ 0x02 ];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [ 0x30 ];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils.encode(res, enc);\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar HmacDRBG = require('hmac-drbg');\nvar utils = require('../utils');\nvar curves = require('../curves');\nvar rand = require('brorand');\nvar assert = utils.assert;\n\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EC(options) {\n if (!(this instanceof EC))\n return new EC(options);\n\n // Shortcut `elliptic.ec(curve-name)`\n if (typeof options === 'string') {\n assert(Object.prototype.hasOwnProperty.call(curves, options),\n 'Unknown curve ' + options);\n\n options = curves[options];\n }\n\n // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n if (options instanceof curves.PresetCurve)\n options = { curve: options };\n\n this.curve = options.curve.curve;\n this.n = this.curve.n;\n this.nh = this.n.ushrn(1);\n this.g = this.curve.g;\n\n // Point on curve\n this.g = options.curve.g;\n this.g.precompute(options.curve.n.bitLength() + 1);\n\n // Hash for function for DRBG\n this.hash = options.hash || options.curve.hash;\n}\nmodule.exports = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n return new KeyPair(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n return KeyPair.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n return KeyPair.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n if (!options)\n options = {};\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n entropy: options.entropy || rand(this.hash.hmacStrength),\n entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n nonce: this.n.toArray(),\n });\n\n var bytes = this.n.byteLength();\n var ns2 = this.n.sub(new BN(2));\n for (;;) {\n var priv = new BN(drbg.generate(bytes));\n if (priv.cmp(ns2) > 0)\n continue;\n\n priv.iaddn(1);\n return this.keyFromPrivate(priv);\n }\n};\n\nEC.prototype._truncateToN = function _truncateToN(msg, truncOnly) {\n var delta = msg.byteLength() * 8 - this.n.bitLength();\n if (delta > 0)\n msg = msg.ushrn(delta);\n if (!truncOnly && msg.cmp(this.n) >= 0)\n return msg.sub(this.n);\n else\n return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n if (typeof enc === 'object') {\n options = enc;\n enc = null;\n }\n if (!options)\n options = {};\n\n key = this.keyFromPrivate(key, enc);\n msg = this._truncateToN(new BN(msg, 16));\n\n // Zero-extend key to provide enough entropy\n var bytes = this.n.byteLength();\n var bkey = key.getPrivate().toArray('be', bytes);\n\n // Zero-extend nonce to have the same byte size as N\n var nonce = msg.toArray('be', bytes);\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n entropy: bkey,\n nonce: nonce,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n });\n\n // Number of bytes to generate\n var ns1 = this.n.sub(new BN(1));\n\n for (var iter = 0; ; iter++) {\n var k = options.k ?\n options.k(iter) :\n new BN(drbg.generate(this.n.byteLength()));\n k = this._truncateToN(k, true);\n if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)\n continue;\n\n var kp = this.g.mul(k);\n if (kp.isInfinity())\n continue;\n\n var kpX = kp.getX();\n var r = kpX.umod(this.n);\n if (r.cmpn(0) === 0)\n continue;\n\n var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n s = s.umod(this.n);\n if (s.cmpn(0) === 0)\n continue;\n\n var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |\n (kpX.cmp(r) !== 0 ? 2 : 0);\n\n // Use complement of `s`, if it is > `n / 2`\n if (options.canonical && s.cmp(this.nh) > 0) {\n s = this.n.sub(s);\n recoveryParam ^= 1;\n }\n\n return new Signature({ r: r, s: s, recoveryParam: recoveryParam });\n }\n};\n\nEC.prototype.verify = function verify(msg, signature, key, enc) {\n msg = this._truncateToN(new BN(msg, 16));\n key = this.keyFromPublic(key, enc);\n signature = new Signature(signature, 'hex');\n\n // Perform primitive values validation\n var r = signature.r;\n var s = signature.s;\n if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)\n return false;\n if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)\n return false;\n\n // Validate signature\n var sinv = s.invm(this.n);\n var u1 = sinv.mul(msg).umod(this.n);\n var u2 = sinv.mul(r).umod(this.n);\n var p;\n\n if (!this.curve._maxwellTrick) {\n p = this.g.mulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n return p.getX().umod(this.n).cmp(r) === 0;\n }\n\n // NOTE: Greg Maxwell's trick, inspired by:\n // https://git.io/vad3K\n\n p = this.g.jmulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n // Compare `p.x` of Jacobian point with `r`,\n // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n // inverse of `p.z^2`\n return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function(msg, signature, j, enc) {\n assert((3 & j) === j, 'The recovery param is more than two bits');\n signature = new Signature(signature, enc);\n\n var n = this.n;\n var e = new BN(msg);\n var r = signature.r;\n var s = signature.s;\n\n // A set LSB signifies that the y-coordinate is odd\n var isYOdd = j & 1;\n var isSecondKey = j >> 1;\n if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)\n throw new Error('Unable to find sencond key candinate');\n\n // 1.1. Let x = r + jn.\n if (isSecondKey)\n r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);\n else\n r = this.curve.pointFromX(r, isYOdd);\n\n var rInv = signature.r.invm(n);\n var s1 = n.sub(e).mul(rInv).umod(n);\n var s2 = s.mul(rInv).umod(n);\n\n // 1.6.1 Compute Q = r^-1 (sR - eG)\n // Q = r^-1 (sR + -eG)\n return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {\n signature = new Signature(signature, enc);\n if (signature.recoveryParam !== null)\n return signature.recoveryParam;\n\n for (var i = 0; i < 4; i++) {\n var Qprime;\n try {\n Qprime = this.recoverPubKey(e, signature, i);\n } catch (e) {\n continue;\n }\n\n if (Qprime.eq(Q))\n return i;\n }\n throw new Error('Unable to find valid recovery factor');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar cachedProperty = utils.cachedProperty;\n\n/**\n* @param {EDDSA} eddsa - instance\n* @param {Object} params - public/private key parameters\n*\n* @param {Array} [params.secret] - secret seed bytes\n* @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)\n* @param {Array} [params.pub] - public key point encoded as bytes\n*\n*/\nfunction KeyPair(eddsa, params) {\n this.eddsa = eddsa;\n this._secret = parseBytes(params.secret);\n if (eddsa.isPoint(params.pub))\n this._pub = params.pub;\n else\n this._pubBytes = parseBytes(params.pub);\n}\n\nKeyPair.fromPublic = function fromPublic(eddsa, pub) {\n if (pub instanceof KeyPair)\n return pub;\n return new KeyPair(eddsa, { pub: pub });\n};\n\nKeyPair.fromSecret = function fromSecret(eddsa, secret) {\n if (secret instanceof KeyPair)\n return secret;\n return new KeyPair(eddsa, { secret: secret });\n};\n\nKeyPair.prototype.secret = function secret() {\n return this._secret;\n};\n\ncachedProperty(KeyPair, 'pubBytes', function pubBytes() {\n return this.eddsa.encodePoint(this.pub());\n});\n\ncachedProperty(KeyPair, 'pub', function pub() {\n if (this._pubBytes)\n return this.eddsa.decodePoint(this._pubBytes);\n return this.eddsa.g.mul(this.priv());\n});\n\ncachedProperty(KeyPair, 'privBytes', function privBytes() {\n var eddsa = this.eddsa;\n var hash = this.hash();\n var lastIx = eddsa.encodingLength - 1;\n\n var a = hash.slice(0, eddsa.encodingLength);\n a[0] &= 248;\n a[lastIx] &= 127;\n a[lastIx] |= 64;\n\n return a;\n});\n\ncachedProperty(KeyPair, 'priv', function priv() {\n return this.eddsa.decodeInt(this.privBytes());\n});\n\ncachedProperty(KeyPair, 'hash', function hash() {\n return this.eddsa.hash().update(this.secret()).digest();\n});\n\ncachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {\n return this.hash().slice(this.eddsa.encodingLength);\n});\n\nKeyPair.prototype.sign = function sign(message) {\n assert(this._secret, 'KeyPair can only verify');\n return this.eddsa.sign(message, this);\n};\n\nKeyPair.prototype.verify = function verify(message, sig) {\n return this.eddsa.verify(message, sig, this);\n};\n\nKeyPair.prototype.getSecret = function getSecret(enc) {\n assert(this._secret, 'KeyPair is public only');\n return utils.encode(this.secret(), enc);\n};\n\nKeyPair.prototype.getPublic = function getPublic(enc) {\n return utils.encode(this.pubBytes(), enc);\n};\n\nmodule.exports = KeyPair;\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar cachedProperty = utils.cachedProperty;\nvar parseBytes = utils.parseBytes;\n\n/**\n* @param {EDDSA} eddsa - eddsa instance\n* @param {Array|Object} sig -\n* @param {Array|Point} [sig.R] - R point as Point or bytes\n* @param {Array|bn} [sig.S] - S scalar as bn or bytes\n* @param {Array} [sig.Rencoded] - R point encoded\n* @param {Array} [sig.Sencoded] - S scalar encoded\n*/\nfunction Signature(eddsa, sig) {\n this.eddsa = eddsa;\n\n if (typeof sig !== 'object')\n sig = parseBytes(sig);\n\n if (Array.isArray(sig)) {\n assert(sig.length === eddsa.encodingLength * 2, 'Signature has invalid size');\n sig = {\n R: sig.slice(0, eddsa.encodingLength),\n S: sig.slice(eddsa.encodingLength),\n };\n }\n\n assert(sig.R && sig.S, 'Signature without R or S');\n\n if (eddsa.isPoint(sig.R))\n this._R = sig.R;\n if (sig.S instanceof BN)\n this._S = sig.S;\n\n this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;\n this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;\n}\n\ncachedProperty(Signature, 'S', function S() {\n return this.eddsa.decodeInt(this.Sencoded());\n});\n\ncachedProperty(Signature, 'R', function R() {\n return this.eddsa.decodePoint(this.Rencoded());\n});\n\ncachedProperty(Signature, 'Rencoded', function Rencoded() {\n return this.eddsa.encodePoint(this.R());\n});\n\ncachedProperty(Signature, 'Sencoded', function Sencoded() {\n return this.eddsa.encodeInt(this.S());\n});\n\nSignature.prototype.toBytes = function toBytes() {\n return this.Rencoded().concat(this.Sencoded());\n};\n\nSignature.prototype.toHex = function toHex() {\n return utils.encode(this.toBytes(), 'hex').toUpperCase();\n};\n\nmodule.exports = Signature;\n","'use strict';\n\nvar hash = require('hash.js');\nvar curves = require('../curves');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EDDSA(curve) {\n assert(curve === 'ed25519', 'only tested with ed25519 so far');\n\n if (!(this instanceof EDDSA))\n return new EDDSA(curve);\n\n curve = curves[curve].curve;\n this.curve = curve;\n this.g = curve.g;\n this.g.precompute(curve.n.bitLength() + 1);\n\n this.pointClass = curve.point().constructor;\n this.encodingLength = Math.ceil(curve.n.bitLength() / 8);\n this.hash = hash.sha512;\n}\n\nmodule.exports = EDDSA;\n\n/**\n* @param {Array|String} message - message bytes\n* @param {Array|String|KeyPair} secret - secret bytes or a keypair\n* @returns {Signature} - signature\n*/\nEDDSA.prototype.sign = function sign(message, secret) {\n message = parseBytes(message);\n var key = this.keyFromSecret(secret);\n var r = this.hashInt(key.messagePrefix(), message);\n var R = this.g.mul(r);\n var Rencoded = this.encodePoint(R);\n var s_ = this.hashInt(Rencoded, key.pubBytes(), message)\n .mul(key.priv());\n var S = r.add(s_).umod(this.curve.n);\n return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });\n};\n\n/**\n* @param {Array} message - message bytes\n* @param {Array|String|Signature} sig - sig bytes\n* @param {Array|String|Point|KeyPair} pub - public key\n* @returns {Boolean} - true if public key matches sig of message\n*/\nEDDSA.prototype.verify = function verify(message, sig, pub) {\n message = parseBytes(message);\n sig = this.makeSignature(sig);\n if (sig.S().gte(sig.eddsa.curve.n) || sig.S().isNeg()) {\n return false;\n }\n var key = this.keyFromPublic(pub);\n var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);\n var SG = this.g.mul(sig.S());\n var RplusAh = sig.R().add(key.pub().mul(h));\n return RplusAh.eq(SG);\n};\n\nEDDSA.prototype.hashInt = function hashInt() {\n var hash = this.hash();\n for (var i = 0; i < arguments.length; i++)\n hash.update(arguments[i]);\n return utils.intFromLE(hash.digest()).umod(this.curve.n);\n};\n\nEDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {\n return KeyPair.fromPublic(this, pub);\n};\n\nEDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {\n return KeyPair.fromSecret(this, secret);\n};\n\nEDDSA.prototype.makeSignature = function makeSignature(sig) {\n if (sig instanceof Signature)\n return sig;\n return new Signature(this, sig);\n};\n\n/**\n* * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2\n*\n* EDDSA defines methods for encoding and decoding points and integers. These are\n* helper convenience methods, that pass along to utility functions implied\n* parameters.\n*\n*/\nEDDSA.prototype.encodePoint = function encodePoint(point) {\n var enc = point.getY().toArray('le', this.encodingLength);\n enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0;\n return enc;\n};\n\nEDDSA.prototype.decodePoint = function decodePoint(bytes) {\n bytes = utils.parseBytes(bytes);\n\n var lastIx = bytes.length - 1;\n var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80);\n var xIsOdd = (bytes[lastIx] & 0x80) !== 0;\n\n var y = utils.intFromLE(normed);\n return this.curve.pointFromY(y, xIsOdd);\n};\n\nEDDSA.prototype.encodeInt = function encodeInt(num) {\n return num.toArray('le', this.encodingLength);\n};\n\nEDDSA.prototype.decodeInt = function decodeInt(bytes) {\n return utils.intFromLE(bytes);\n};\n\nEDDSA.prototype.isPoint = function isPoint(val) {\n return val instanceof this.pointClass;\n};\n","'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = require('../package.json').version;\nelliptic.utils = require('./elliptic/utils');\nelliptic.rand = require('brorand');\nelliptic.curve = require('./elliptic/curve');\nelliptic.curves = require('./elliptic/curves');\n\n// Protocols\nelliptic.ec = require('./elliptic/ec');\nelliptic.eddsa = require('./elliptic/eddsa');\n","import{detect as ot}from\"detect-browser\";import{toMiliseconds as ee,FIVE_MINUTES as Ie,fromMiliseconds as st}from\"@walletconnect/time\";import{getDocument as ne,getNavigator as je,getLocation as Te}from\"@walletconnect/window-getters\";import{getWindowMetadata as it}from\"@walletconnect/window-metadata\";import*as q from\"query-string\";import{hashMessage as Pe}from\"@ethersproject/hash\";import{recoverAddress as ct}from\"@ethersproject/transactions\";import{ChaCha20Poly1305 as Ae}from\"@stablelib/chacha20poly1305\";import{HKDF as at}from\"@stablelib/hkdf\";import{randomBytes as B}from\"@stablelib/random\";import{SHA256 as Ce,hash as Ue}from\"@stablelib/sha256\";import*as _e from\"@stablelib/x25519\";import{toString as v,fromString as w,concat as te}from\"uint8arrays\";import{ec as ut}from\"elliptic\";import{decodeJWT as lt}from\"@walletconnect/relay-auth\";import{RELAY_JSONRPC as dt}from\"@walletconnect/relay-api\";const H=\":\";function re(e){const[n,t]=e.split(H);return{namespace:n,reference:t}}function ke(e){const{namespace:n,reference:t}=e;return[n,t].join(H)}function oe(e){const[n,t,r]=e.split(H);return{namespace:n,reference:t,address:r}}function De(e){const{namespace:n,reference:t,address:r}=e;return[n,t,r].join(H)}function se(e,n){const t=[];return e.forEach(r=>{const o=n(r);t.includes(o)||t.push(o)}),t}function xe(e){const{address:n}=oe(e);return n}function Ve(e){const{namespace:n,reference:t}=oe(e);return ke({namespace:n,reference:t})}function ft(e,n){const{namespace:t,reference:r}=re(n);return De({namespace:t,reference:r,address:e})}function pt(e){return se(e,xe)}function Me(e){return se(e,Ve)}function mt(e,n=[]){const t=[];return Object.keys(e).forEach(r=>{if(n.length&&!n.includes(r))return;const o=e[r];t.push(...o.accounts)}),t}function ht(e,n=[]){const t=[];return Object.keys(e).forEach(r=>{if(n.length&&!n.includes(r))return;const o=e[r];t.push(...Me(o.accounts))}),t}function yt(e,n=[]){const t=[];return Object.keys(e).forEach(r=>{if(n.length&&!n.includes(r))return;const o=e[r];t.push(...W(r,o))}),t}function W(e,n){return e.includes(\":\")?[e]:n.chains||[]}var gt=Object.defineProperty,Ke=Object.getOwnPropertySymbols,vt=Object.prototype.hasOwnProperty,bt=Object.prototype.propertyIsEnumerable,Le=(e,n,t)=>n in e?gt(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,Fe=(e,n)=>{for(var t in n||(n={}))vt.call(n,t)&&Le(e,t,n[t]);if(Ke)for(var t of Ke(n))bt.call(n,t)&&Le(e,t,n[t]);return e};const qe=\"ReactNative\",y={reactNative:\"react-native\",node:\"node\",browser:\"browser\",unknown:\"unknown\"},J=\" \",Et=\":\",Be=\"/\",ie=2,wt=1e3,He=\"js\";function ce(){return typeof process<\"u\"&&typeof process.versions<\"u\"&&typeof process.versions.node<\"u\"}function _(){return!ne()&&!!je()&&navigator.product===qe}function V(){return!ce()&&!!je()&&!!ne()}function P(){return _()?y.reactNative:ce()?y.node:V()?y.browser:y.unknown}function Ot(){var e;try{return _()&&typeof global<\"u\"&&typeof(global==null?void 0:global.Application)<\"u\"?(e=global.Application)==null?void 0:e.applicationId:void 0}catch{return}}function We(e,n){let t=q.parse(e);return t=Fe(Fe({},t),n),e=q.stringify(t),e}function Nt(){return it()||{name:\"\",description:\"\",url:\"\",icons:[\"\"]}}function St(e,n){var t;const r=P(),o={protocol:e,version:n,env:r};return r===\"browser\"&&(o.host=((t=Te())==null?void 0:t.host)||\"unknown\"),o}function Je(){if(P()===y.reactNative&&typeof global<\"u\"&&typeof(global==null?void 0:global.Platform)<\"u\"){const{OS:t,Version:r}=global.Platform;return[t,r].join(\"-\")}const e=ot();if(e===null)return\"unknown\";const n=e.os?e.os.replace(\" \",\"\").toLowerCase():\"unknown\";return e.type===\"browser\"?[n,e.name,e.version].join(\"-\"):[n,e.version].join(\"-\")}function ze(){var e;const n=P();return n===y.browser?[n,((e=Te())==null?void 0:e.host)||\"unknown\"].join(\":\"):n}function Ge(e,n,t){const r=Je(),o=ze();return[[e,n].join(\"-\"),[He,t].join(\"-\"),r,o].join(\"/\")}function $t({protocol:e,version:n,relayUrl:t,sdkVersion:r,auth:o,projectId:s,useOnCloseEvent:i,bundleId:u}){const l=t.split(\"?\"),c=Ge(e,n,r),d={auth:o,ua:c,projectId:s,useOnCloseEvent:i||void 0,origin:u||void 0},a=We(l[1]||\"\",d);return l[0]+\"?\"+a}function Rt(e){let n=(e.match(/^[^:]+(?=:\\/\\/)/gi)||[])[0];const t=typeof n<\"u\"?e.split(\"://\")[1]:e;return n=n===\"wss\"?\"https\":\"http\",[n,t].join(\"://\")}function It(e,n,t){if(!e[n]||typeof e[n]!==t)throw new Error(`Missing or invalid \"${n}\" param`)}function Ye(e,n=ie){return Qe(e.split(Be),n)}function jt(e){return Ye(e).join(J)}function $(e,n){return e.filter(t=>n.includes(t)).length===e.length}function Qe(e,n=ie){return e.slice(Math.max(e.length-n,0))}function Tt(e){return Object.fromEntries(e.entries())}function Pt(e){return new Map(Object.entries(e))}function At(e,n){const t={};return Object.keys(e).forEach(r=>{t[r]=n(e[r])}),t}const Ct=e=>e;function Ze(e){return e.trim().replace(/^\\w/,n=>n.toUpperCase())}function Ut(e){return e.split(J).map(n=>Ze(n)).join(J)}function _t(e=Ie,n){const t=ee(e||Ie);let r,o,s;return{resolve:i=>{s&&r&&(clearTimeout(s),r(i))},reject:i=>{s&&o&&(clearTimeout(s),o(i))},done:()=>new Promise((i,u)=>{s=setTimeout(()=>{u(new Error(n))},t),r=i,o=u})}}function kt(e,n,t){return new Promise(async(r,o)=>{const s=setTimeout(()=>o(new Error(t)),n);try{const i=await e;r(i)}catch(i){o(i)}clearTimeout(s)})}function ae(e,n){if(typeof n==\"string\"&&n.startsWith(`${e}:`))return n;if(e.toLowerCase()===\"topic\"){if(typeof n!=\"string\")throw new Error('Value must be \"string\" for expirer target type: topic');return`topic:${n}`}else if(e.toLowerCase()===\"id\"){if(typeof n!=\"number\")throw new Error('Value must be \"number\" for expirer target type: id');return`id:${n}`}throw new Error(`Unknown expirer target type: ${e}`)}function Dt(e){return ae(\"topic\",e)}function xt(e){return ae(\"id\",e)}function Vt(e){const[n,t]=e.split(\":\"),r={id:void 0,topic:void 0};if(n===\"topic\"&&typeof t==\"string\")r.topic=t;else if(n===\"id\"&&Number.isInteger(Number(t)))r.id=Number(t);else throw new Error(`Invalid target, expected id:number or topic:string, got ${n}:${t}`);return r}function Mt(e,n){return st((n||Date.now())+ee(e))}function Kt(e){return Date.now()>=ee(e)}function Lt(e,n){return`${e}${n?`:${n}`:\"\"}`}function N(e=[],n=[]){return[...new Set([...e,...n])]}async function Ft({id:e,topic:n,wcDeepLink:t}){var r;try{if(!t)return;const o=typeof t==\"string\"?JSON.parse(t):t,s=o?.href;if(typeof s!=\"string\")return;const i=Xe(s,e,n),u=P();if(u===y.browser){if(!((r=ne())!=null&&r.hasFocus())){console.warn(\"Document does not have focus, skipping deeplink.\");return}i.startsWith(\"https://\")||i.startsWith(\"http://\")?window.open(i,\"_blank\",\"noreferrer noopener\"):window.open(i,en()?\"_blank\":\"_self\",\"noreferrer noopener\")}else u===y.reactNative&&typeof(global==null?void 0:global.Linking)<\"u\"&&await global.Linking.openURL(i)}catch(o){console.error(o)}}function Xe(e,n,t){const r=`requestId=${n}&sessionTopic=${t}`;e.endsWith(\"/\")&&(e=e.slice(0,-1));let o=`${e}`;if(e.startsWith(\"https://t.me\")){const s=e.includes(\"?\")?\"&startapp=\":\"?startapp=\";o=`${o}${s}${nn(r,!0)}`}else o=`${o}/wc?${r}`;return o}async function qt(e,n){let t=\"\";try{if(V()&&(t=localStorage.getItem(n),t))return t;t=await e.getItem(n)}catch(r){console.error(r)}return t}function ue(e,n){return e.filter(t=>n.includes(t))}function Bt(e,n){if(!e.includes(n))return null;const t=e.split(/([&,?,=])/),r=t.indexOf(n);return t[r+2]}function Ht(){return typeof crypto<\"u\"&&crypto!=null&&crypto.randomUUID?crypto.randomUUID():\"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/gu,e=>{const n=Math.random()*16|0;return(e===\"x\"?n:n&3|8).toString(16)})}function Wt(){return typeof process<\"u\"&&process.env.IS_VITEST===\"true\"}function en(){return typeof window<\"u\"&&(!!window.TelegramWebviewProxy||!!window.Telegram||!!window.TelegramWebviewProxyProto)}function nn(e,n=!1){const t=Buffer.from(e).toString(\"base64\");return n?t.replace(/[=]/g,\"\"):t}function le(e){return Buffer.from(e,\"base64\").toString(\"utf-8\")}const Jt=\"https://rpc.walletconnect.org/v1\";async function tn(e,n,t,r,o,s){switch(t.t){case\"eip191\":return rn(e,n,t.s);case\"eip1271\":return await on(e,n,t.s,r,o,s);default:throw new Error(`verifySignature failed: Attempted to verify CacaoSignature with unknown type: ${t.t}`)}}function rn(e,n,t){return ct(Pe(n),t).toLowerCase()===e.toLowerCase()}async function on(e,n,t,r,o,s){const i=re(r);if(!i.namespace||!i.reference)throw new Error(`isValidEip1271Signature failed: chainId must be in CAIP-2 format, received: ${r}`);try{const u=\"0x1626ba7e\",l=\"0000000000000000000000000000000000000000000000000000000000000040\",c=\"0000000000000000000000000000000000000000000000000000000000000041\",d=t.substring(2),a=Pe(n).substring(2),f=u+a+l+c+d,h=await fetch(`${s||Jt}/?chainId=${r}&projectId=${o}`,{method:\"POST\",body:JSON.stringify({id:zt(),jsonrpc:\"2.0\",method:\"eth_call\",params:[{to:e,data:f},\"latest\"]})}),{result:p}=await h.json();return p?p.slice(0,u.length).toLowerCase()===u.toLowerCase():!1}catch(u){return console.error(\"isValidEip1271Signature: \",u),!1}}function zt(){return Date.now()+Math.floor(Math.random()*1e3)}var Gt=Object.defineProperty,Yt=Object.defineProperties,Qt=Object.getOwnPropertyDescriptors,sn=Object.getOwnPropertySymbols,Zt=Object.prototype.hasOwnProperty,Xt=Object.prototype.propertyIsEnumerable,cn=(e,n,t)=>n in e?Gt(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,de=(e,n)=>{for(var t in n||(n={}))Zt.call(n,t)&&cn(e,t,n[t]);if(sn)for(var t of sn(n))Xt.call(n,t)&&cn(e,t,n[t]);return e},an=(e,n)=>Yt(e,Qt(n));const er=\"did:pkh:\",z=e=>e?.split(\":\"),un=e=>{const n=e&&z(e);if(n)return e.includes(er)?n[3]:n[1]},ln=e=>{const n=e&&z(e);if(n)return n[2]+\":\"+n[3]},fe=e=>{const n=e&&z(e);if(n)return n.pop()};async function nr(e){const{cacao:n,projectId:t}=e,{s:r,p:o}=n,s=dn(o,o.iss),i=fe(o.iss);return await tn(i,s,r,ln(o.iss),t)}const dn=(e,n)=>{const t=`${e.domain} wants you to sign in with your Ethereum account:`,r=fe(n);if(!e.aud&&!e.uri)throw new Error(\"Either `aud` or `uri` is required to construct the message\");let o=e.statement||void 0;const s=`URI: ${e.aud||e.uri}`,i=`Version: ${e.version}`,u=`Chain ID: ${un(n)}`,l=`Nonce: ${e.nonce}`,c=`Issued At: ${e.iat}`,d=e.exp?`Expiration Time: ${e.exp}`:void 0,a=e.nbf?`Not Before: ${e.nbf}`:void 0,f=e.requestId?`Request ID: ${e.requestId}`:void 0,h=e.resources?`Resources:${e.resources.map(m=>`\n- ${m}`).join(\"\")}`:void 0,p=Y(e.resources);if(p){const m=R(p);o=he(o,m)}return[t,r,\"\",o,\"\",s,i,u,l,c,d,a,f,h].filter(m=>m!=null).join(`\n`)};function tr(e,n,t){return t.includes(\"did:pkh:\")||(t=`did:pkh:${t}`),{h:{t:\"caip122\"},p:{iss:t,domain:e.domain,aud:e.aud,version:e.version,nonce:e.nonce,iat:e.iat,statement:e.statement,requestId:e.requestId,resources:e.resources,nbf:e.nbf,exp:e.exp},s:n}}function rr(e){var n;const{authPayload:t,chains:r,methods:o}=e,s=t.statement||\"\";if(!(r!=null&&r.length))return t;const i=t.chains,u=ue(i,r);if(!(u!=null&&u.length))throw new Error(\"No supported chains\");const l=fn(t.resources);if(!l)return t;O(l);const c=pn(l,\"eip155\");let d=t?.resources||[];if(c!=null&&c.length){const a=mn(c),f=ue(a,o);if(!(f!=null&&f.length))throw new Error(`Supported methods don't satisfy the requested: ${JSON.stringify(a)}, supported: ${JSON.stringify(o)}`);const h=pe(\"request\",f,{chains:u}),p=vn(l,\"eip155\",h);d=((n=t?.resources)==null?void 0:n.slice(0,-1))||[],d.push(G(p))}return an(de({},t),{statement:En(s,Y(d)),chains:u,resources:t!=null&&t.resources||d.length>0?d:void 0})}function fn(e){const n=Y(e);if(n&&me(n))return R(n)}function or(e,n){var t;return(t=e?.att)==null?void 0:t.hasOwnProperty(n)}function pn(e,n){var t,r;return(t=e?.att)!=null&&t[n]?Object.keys((r=e?.att)==null?void 0:r[n]):[]}function sr(e){return e?.map(n=>Object.keys(n))||[]}function mn(e){return e?.map(n=>{var t;return(t=n.split(\"/\"))==null?void 0:t[1]})||[]}function hn(e){return Buffer.from(JSON.stringify(e)).toString(\"base64\")}function yn(e){return JSON.parse(Buffer.from(e,\"base64\").toString(\"utf-8\"))}function O(e){if(!e)throw new Error(\"No recap provided, value is undefined\");if(!e.att)throw new Error(\"No `att` property found\");const n=Object.keys(e.att);if(!(n!=null&&n.length))throw new Error(\"No resources found in `att` property\");n.forEach(t=>{const r=e.att[t];if(Array.isArray(r))throw new Error(`Resource must be an object: ${t}`);if(typeof r!=\"object\")throw new Error(`Resource must be an object: ${t}`);if(!Object.keys(r).length)throw new Error(`Resource object is empty: ${t}`);Object.keys(r).forEach(o=>{const s=r[o];if(!Array.isArray(s))throw new Error(`Ability limits ${o} must be an array of objects, found: ${s}`);if(!s.length)throw new Error(`Value of ${o} is empty array, must be an array with objects`);s.forEach(i=>{if(typeof i!=\"object\")throw new Error(`Ability limits (${o}) must be an array of objects, found: ${i}`)})})})}function gn(e,n,t,r={}){return t?.sort((o,s)=>o.localeCompare(s)),{att:{[e]:pe(n,t,r)}}}function vn(e,n,t){var r;return e.att[n]=de({},t),((r=Object.keys(e.att))==null?void 0:r.sort((o,s)=>o.localeCompare(s))).reduce((o,s)=>(o.att[s]=e.att[s],o),{att:{}})}function pe(e,n,t={}){n=n?.sort((o,s)=>o.localeCompare(s));const r=n.map(o=>({[`${e}/${o}`]:[t]}));return Object.assign({},...r)}function G(e){return O(e),`urn:recap:${hn(e).replace(/=/g,\"\")}`}function R(e){const n=yn(e.replace(\"urn:recap:\",\"\"));return O(n),n}function ir(e,n,t){const r=gn(e,n,t);return G(r)}function me(e){return e&&e.includes(\"urn:recap:\")}function cr(e,n){const t=R(e),r=R(n),o=bn(t,r);return G(o)}function bn(e,n){O(e),O(n);const t=Object.keys(e.att).concat(Object.keys(n.att)).sort((o,s)=>o.localeCompare(s)),r={att:{}};return t.forEach(o=>{var s,i;Object.keys(((s=e.att)==null?void 0:s[o])||{}).concat(Object.keys(((i=n.att)==null?void 0:i[o])||{})).sort((u,l)=>u.localeCompare(l)).forEach(u=>{var l,c;r.att[o]=an(de({},r.att[o]),{[u]:((l=e.att[o])==null?void 0:l[u])||((c=n.att[o])==null?void 0:c[u])})})}),r}function he(e=\"\",n){O(n);const t=\"I further authorize the stated URI to perform the following actions on my behalf: \";if(e.includes(t))return e;const r=[];let o=0;Object.keys(n.att).forEach(u=>{const l=Object.keys(n.att[u]).map(a=>({ability:a.split(\"/\")[0],action:a.split(\"/\")[1]}));l.sort((a,f)=>a.action.localeCompare(f.action));const c={};l.forEach(a=>{c[a.ability]||(c[a.ability]=[]),c[a.ability].push(a.action)});const d=Object.keys(c).map(a=>(o++,`(${o}) '${a}': '${c[a].join(\"', '\")}' for '${u}'.`));r.push(d.join(\", \").replace(\".,\",\".\"))});const s=r.join(\" \"),i=`${t}${s}`;return`${e?e+\" \":\"\"}${i}`}function ar(e){var n;const t=R(e);O(t);const r=(n=t.att)==null?void 0:n.eip155;return r?Object.keys(r).map(o=>o.split(\"/\")[1]):[]}function ur(e){const n=R(e);O(n);const t=[];return Object.values(n.att).forEach(r=>{Object.values(r).forEach(o=>{var s;(s=o?.[0])!=null&&s.chains&&t.push(o[0].chains)})}),[...new Set(t.flat())]}function En(e,n){if(!n)return e;const t=R(n);return O(t),he(e,t)}function Y(e){if(!e)return;const n=e?.[e.length-1];return me(n)?n:void 0}const ye=\"base10\",g=\"base16\",ge=\"base64pad\",lr=\"base64url\",k=\"utf8\",ve=0,D=1,M=2,dr=0,wn=1,K=12,be=32;function fr(){const e=_e.generateKeyPair();return{privateKey:v(e.secretKey,g),publicKey:v(e.publicKey,g)}}function pr(){const e=B(be);return v(e,g)}function mr(e,n){const t=_e.sharedKey(w(e,g),w(n,g),!0),r=new at(Ce,t).expand(be);return v(r,g)}function hr(e){const n=Ue(w(e,g));return v(n,g)}function yr(e){const n=Ue(w(e,k));return v(n,g)}function Ee(e){return w(`${e}`,ye)}function A(e){return Number(v(e,ye))}function gr(e){const n=Ee(typeof e.type<\"u\"?e.type:ve);if(A(n)===D&&typeof e.senderPublicKey>\"u\")throw new Error(\"Missing sender public key for type 1 envelope\");const t=typeof e.senderPublicKey<\"u\"?w(e.senderPublicKey,g):void 0,r=typeof e.iv<\"u\"?w(e.iv,g):B(K),o=new Ae(w(e.symKey,g)).seal(r,w(e.message,k));return we({type:n,sealed:o,iv:r,senderPublicKey:t,encoding:e.encoding})}function vr(e,n){const t=Ee(M),r=B(K),o=w(e,k);return we({type:t,sealed:o,iv:r,encoding:n})}function br(e){const n=new Ae(w(e.symKey,g)),{sealed:t,iv:r}=Q({encoded:e.encoded,encoding:e?.encoding}),o=n.open(r,t);if(o===null)throw new Error(\"Failed to decrypt\");return v(o,k)}function Er(e,n){const{sealed:t}=Q({encoded:e,encoding:n});return v(t,k)}function we(e){const{encoding:n=ge}=e;if(A(e.type)===M)return v(te([e.type,e.sealed]),n);if(A(e.type)===D){if(typeof e.senderPublicKey>\"u\")throw new Error(\"Missing sender public key for type 1 envelope\");return v(te([e.type,e.senderPublicKey,e.iv,e.sealed]),n)}return v(te([e.type,e.iv,e.sealed]),n)}function Q(e){const{encoded:n,encoding:t=ge}=e,r=w(n,t),o=r.slice(dr,wn),s=wn;if(A(o)===D){const c=s+be,d=c+K,a=r.slice(s,c),f=r.slice(c,d),h=r.slice(d);return{type:o,sealed:h,iv:f,senderPublicKey:a}}if(A(o)===M){const c=r.slice(s),d=B(K);return{type:o,sealed:c,iv:d}}const i=s+K,u=r.slice(s,i),l=r.slice(i);return{type:o,sealed:l,iv:u}}function wr(e,n){const t=Q({encoded:e,encoding:n?.encoding});return On({type:A(t.type),senderPublicKey:typeof t.senderPublicKey<\"u\"?v(t.senderPublicKey,g):void 0,receiverPublicKey:n?.receiverPublicKey})}function On(e){const n=e?.type||ve;if(n===D){if(typeof e?.senderPublicKey>\"u\")throw new Error(\"missing sender public key\");if(typeof e?.receiverPublicKey>\"u\")throw new Error(\"missing receiver public key\")}return{type:n,senderPublicKey:e?.senderPublicKey,receiverPublicKey:e?.receiverPublicKey}}function Or(e){return e.type===D&&typeof e.senderPublicKey==\"string\"&&typeof e.receiverPublicKey==\"string\"}function Nr(e){return e.type===M}function Nn(e){return new ut(\"p256\").keyFromPublic({x:Buffer.from(e.x,\"base64\").toString(\"hex\"),y:Buffer.from(e.y,\"base64\").toString(\"hex\")},\"hex\")}function Sr(e){let n=e.replace(/-/g,\"+\").replace(/_/g,\"/\");const t=n.length%4;return t>0&&(n+=\"=\".repeat(4-t)),n}function $r(e){return Buffer.from(Sr(e),\"base64\")}function Rr(e,n){const[t,r,o]=e.split(\".\"),s=$r(o);if(s.length!==64)throw new Error(\"Invalid signature length\");const i=s.slice(0,32).toString(\"hex\"),u=s.slice(32,64).toString(\"hex\"),l=`${t}.${r}`,c=new Ce().update(Buffer.from(l)).digest(),d=Nn(n),a=Buffer.from(c).toString(\"hex\");if(!d.verify(a,{r:i,s:u}))throw new Error(\"Invalid signature\");return lt(e).payload}const Sn=\"irn\";function Ir(e){return e?.relay||{protocol:Sn}}function jr(e){const n=dt[e];if(typeof n>\"u\")throw new Error(`Relay Protocol not supported: ${e}`);return n}var Tr=Object.defineProperty,Pr=Object.defineProperties,Ar=Object.getOwnPropertyDescriptors,$n=Object.getOwnPropertySymbols,Cr=Object.prototype.hasOwnProperty,Ur=Object.prototype.propertyIsEnumerable,Rn=(e,n,t)=>n in e?Tr(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,In=(e,n)=>{for(var t in n||(n={}))Cr.call(n,t)&&Rn(e,t,n[t]);if($n)for(var t of $n(n))Ur.call(n,t)&&Rn(e,t,n[t]);return e},_r=(e,n)=>Pr(e,Ar(n));function jn(e,n=\"-\"){const t={},r=\"relay\"+n;return Object.keys(e).forEach(o=>{if(o.startsWith(r)){const s=o.replace(r,\"\"),i=e[o];t[s]=i}}),t}function kr(e){if(!e.includes(\"wc:\")){const l=le(e);l!=null&&l.includes(\"wc:\")&&(e=l)}e=e.includes(\"wc://\")?e.replace(\"wc://\",\"\"):e,e=e.includes(\"wc:\")?e.replace(\"wc:\",\"\"):e;const n=e.indexOf(\":\"),t=e.indexOf(\"?\")!==-1?e.indexOf(\"?\"):void 0,r=e.substring(0,n),o=e.substring(n+1,t).split(\"@\"),s=typeof t<\"u\"?e.substring(t):\"\",i=q.parse(s),u=typeof i.methods==\"string\"?i.methods.split(\",\"):void 0;return{protocol:r,topic:Tn(o[0]),version:parseInt(o[1],10),symKey:i.symKey,relay:jn(i),methods:u,expiryTimestamp:i.expiryTimestamp?parseInt(i.expiryTimestamp,10):void 0}}function Tn(e){return e.startsWith(\"//\")?e.substring(2):e}function Pn(e,n=\"-\"){const t=\"relay\",r={};return Object.keys(e).forEach(o=>{const s=t+n+o;e[o]&&(r[s]=e[o])}),r}function Dr(e){return`${e.protocol}:${e.topic}@${e.version}?`+q.stringify(In(_r(In({symKey:e.symKey},Pn(e.relay)),{expiryTimestamp:e.expiryTimestamp}),e.methods?{methods:e.methods.join(\",\")}:{}))}function xr(e,n,t){return`${e}?wc_ev=${t}&topic=${n}`}var Vr=Object.defineProperty,Mr=Object.defineProperties,Kr=Object.getOwnPropertyDescriptors,An=Object.getOwnPropertySymbols,Lr=Object.prototype.hasOwnProperty,Fr=Object.prototype.propertyIsEnumerable,Cn=(e,n,t)=>n in e?Vr(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,qr=(e,n)=>{for(var t in n||(n={}))Lr.call(n,t)&&Cn(e,t,n[t]);if(An)for(var t of An(n))Fr.call(n,t)&&Cn(e,t,n[t]);return e},Br=(e,n)=>Mr(e,Kr(n));function C(e){const n=[];return e.forEach(t=>{const[r,o]=t.split(\":\");n.push(`${r}:${o}`)}),n}function Un(e){const n=[];return Object.values(e).forEach(t=>{n.push(...C(t.accounts))}),n}function _n(e,n){const t=[];return Object.values(e).forEach(r=>{C(r.accounts).includes(n)&&t.push(...r.methods)}),t}function kn(e,n){const t=[];return Object.values(e).forEach(r=>{C(r.accounts).includes(n)&&t.push(...r.events)}),t}function Hr(e,n){const t=Wn(e,n);if(t)throw new Error(t.message);const r={};for(const[o,s]of Object.entries(e))r[o]={methods:s.methods,events:s.events,chains:s.accounts.map(i=>`${i.split(\":\")[0]}:${i.split(\":\")[1]}`)};return r}function Wr(e){const{proposal:{requiredNamespaces:n,optionalNamespaces:t={}},supportedNamespaces:r}=e,o=Ne(n),s=Ne(t),i={};Object.keys(r).forEach(c=>{const d=r[c].chains,a=r[c].methods,f=r[c].events,h=r[c].accounts;d.forEach(p=>{if(!h.some(m=>m.includes(p)))throw new Error(`No accounts provided for chain ${p} in namespace ${c}`)}),i[c]={chains:d,methods:a,events:f,accounts:h}});const u=zn(n,i,\"approve()\");if(u)throw new Error(u.message);const l={};return!Object.keys(n).length&&!Object.keys(t).length?i:(Object.keys(o).forEach(c=>{const d=r[c].chains.filter(p=>{var m,E;return(E=(m=o[c])==null?void 0:m.chains)==null?void 0:E.includes(p)}),a=r[c].methods.filter(p=>{var m,E;return(E=(m=o[c])==null?void 0:m.methods)==null?void 0:E.includes(p)}),f=r[c].events.filter(p=>{var m,E;return(E=(m=o[c])==null?void 0:m.events)==null?void 0:E.includes(p)}),h=d.map(p=>r[c].accounts.filter(m=>m.includes(`${p}:`))).flat();l[c]={chains:d,methods:a,events:f,accounts:h}}),Object.keys(s).forEach(c=>{var d,a,f,h,p,m;if(!r[c])return;const E=(a=(d=s[c])==null?void 0:d.chains)==null?void 0:a.filter(j=>r[c].chains.includes(j)),nt=r[c].methods.filter(j=>{var T,x;return(x=(T=s[c])==null?void 0:T.methods)==null?void 0:x.includes(j)}),tt=r[c].events.filter(j=>{var T,x;return(x=(T=s[c])==null?void 0:T.events)==null?void 0:x.includes(j)}),rt=E?.map(j=>r[c].accounts.filter(T=>T.includes(`${j}:`))).flat();l[c]={chains:N((f=l[c])==null?void 0:f.chains,E),methods:N((h=l[c])==null?void 0:h.methods,nt),events:N((p=l[c])==null?void 0:p.events,tt),accounts:N((m=l[c])==null?void 0:m.accounts,rt)}}),l)}function Oe(e){return e.includes(\":\")}function Dn(e){return Oe(e)?e.split(\":\")[0]:e}function Ne(e){var n,t,r;const o={};if(!Z(e))return o;for(const[s,i]of Object.entries(e)){const u=Oe(s)?[s]:i.chains,l=i.methods||[],c=i.events||[],d=Dn(s);o[d]=Br(qr({},o[d]),{chains:N(u,(n=o[d])==null?void 0:n.chains),methods:N(l,(t=o[d])==null?void 0:t.methods),events:N(c,(r=o[d])==null?void 0:r.events)})}return o}function xn(e){const n={};return e?.forEach(t=>{const[r,o]=t.split(\":\");n[r]||(n[r]={accounts:[],chains:[],events:[]}),n[r].accounts.push(t),n[r].chains.push(`${r}:${o}`)}),n}function Jr(e,n){n=n.map(r=>r.replace(\"did:pkh:\",\"\"));const t=xn(n);for(const[r,o]of Object.entries(t))o.methods?o.methods=N(o.methods,e):o.methods=e,o.events=[\"chainChanged\",\"accountsChanged\"];return t}const Vn={INVALID_METHOD:{message:\"Invalid method.\",code:1001},INVALID_EVENT:{message:\"Invalid event.\",code:1002},INVALID_UPDATE_REQUEST:{message:\"Invalid update request.\",code:1003},INVALID_EXTEND_REQUEST:{message:\"Invalid extend request.\",code:1004},INVALID_SESSION_SETTLE_REQUEST:{message:\"Invalid session settle request.\",code:1005},UNAUTHORIZED_METHOD:{message:\"Unauthorized method.\",code:3001},UNAUTHORIZED_EVENT:{message:\"Unauthorized event.\",code:3002},UNAUTHORIZED_UPDATE_REQUEST:{message:\"Unauthorized update request.\",code:3003},UNAUTHORIZED_EXTEND_REQUEST:{message:\"Unauthorized extend request.\",code:3004},USER_REJECTED:{message:\"User rejected.\",code:5e3},USER_REJECTED_CHAINS:{message:\"User rejected chains.\",code:5001},USER_REJECTED_METHODS:{message:\"User rejected methods.\",code:5002},USER_REJECTED_EVENTS:{message:\"User rejected events.\",code:5003},UNSUPPORTED_CHAINS:{message:\"Unsupported chains.\",code:5100},UNSUPPORTED_METHODS:{message:\"Unsupported methods.\",code:5101},UNSUPPORTED_EVENTS:{message:\"Unsupported events.\",code:5102},UNSUPPORTED_ACCOUNTS:{message:\"Unsupported accounts.\",code:5103},UNSUPPORTED_NAMESPACE_KEY:{message:\"Unsupported namespace key.\",code:5104},USER_DISCONNECTED:{message:\"User disconnected.\",code:6e3},SESSION_SETTLEMENT_FAILED:{message:\"Session settlement failed.\",code:7e3},WC_METHOD_UNSUPPORTED:{message:\"Unsupported wc_ method.\",code:10001}},Mn={NOT_INITIALIZED:{message:\"Not initialized.\",code:1},NO_MATCHING_KEY:{message:\"No matching key.\",code:2},RESTORE_WILL_OVERRIDE:{message:\"Restore will override.\",code:3},RESUBSCRIBED:{message:\"Resubscribed.\",code:4},MISSING_OR_INVALID:{message:\"Missing or invalid.\",code:5},EXPIRED:{message:\"Expired.\",code:6},UNKNOWN_TYPE:{message:\"Unknown type.\",code:7},MISMATCHED_TOPIC:{message:\"Mismatched topic.\",code:8},NON_CONFORMING_NAMESPACES:{message:\"Non conforming namespaces.\",code:9}};function S(e,n){const{message:t,code:r}=Mn[e];return{message:n?`${t} ${n}`:t,code:r}}function U(e,n){const{message:t,code:r}=Vn[e];return{message:n?`${t} ${n}`:t,code:r}}function L(e,n){return Array.isArray(e)?typeof n<\"u\"&&e.length?e.every(n):!0:!1}function Z(e){return Object.getPrototypeOf(e)===Object.prototype&&Object.keys(e).length}function I(e){return typeof e>\"u\"}function b(e,n){return n&&I(e)?!0:typeof e==\"string\"&&!!e.trim().length}function X(e,n){return n&&I(e)?!0:typeof e==\"number\"&&!isNaN(e)}function zr(e,n){const{requiredNamespaces:t}=n,r=Object.keys(e.namespaces),o=Object.keys(t);let s=!0;return $(o,r)?(r.forEach(i=>{const{accounts:u,methods:l,events:c}=e.namespaces[i],d=C(u),a=t[i];(!$(W(i,a),d)||!$(a.methods,l)||!$(a.events,c))&&(s=!1)}),s):!1}function F(e){return b(e,!1)&&e.includes(\":\")?e.split(\":\").length===2:!1}function Kn(e){if(b(e,!1)&&e.includes(\":\")){const n=e.split(\":\");if(n.length===3){const t=n[0]+\":\"+n[1];return!!n[2]&&F(t)}}return!1}function Gr(e){function n(t){try{return typeof new URL(t)<\"u\"}catch{return!1}}try{if(b(e,!1)){if(n(e))return!0;const t=le(e);return n(t)}}catch{}return!1}function Yr(e){var n;return(n=e?.proposer)==null?void 0:n.publicKey}function Qr(e){return e?.topic}function Zr(e,n){let t=null;return b(e?.publicKey,!1)||(t=S(\"MISSING_OR_INVALID\",`${n} controller public key should be a string`)),t}function Se(e){let n=!0;return L(e)?e.length&&(n=e.every(t=>b(t,!1))):n=!1,n}function Ln(e,n,t){let r=null;return L(n)&&n.length?n.forEach(o=>{r||F(o)||(r=U(\"UNSUPPORTED_CHAINS\",`${t}, chain ${o} should be a string and conform to \"namespace:chainId\" format`))}):F(e)||(r=U(\"UNSUPPORTED_CHAINS\",`${t}, chains must be defined as \"namespace:chainId\" e.g. \"eip155:1\": {...} in the namespace key OR as an array of CAIP-2 chainIds e.g. eip155: { chains: [\"eip155:1\", \"eip155:5\"] }`)),r}function Fn(e,n,t){let r=null;return Object.entries(e).forEach(([o,s])=>{if(r)return;const i=Ln(o,W(o,s),`${n} ${t}`);i&&(r=i)}),r}function qn(e,n){let t=null;return L(e)?e.forEach(r=>{t||Kn(r)||(t=U(\"UNSUPPORTED_ACCOUNTS\",`${n}, account ${r} should be a string and conform to \"namespace:chainId:address\" format`))}):t=U(\"UNSUPPORTED_ACCOUNTS\",`${n}, accounts should be an array of strings conforming to \"namespace:chainId:address\" format`),t}function Bn(e,n){let t=null;return Object.values(e).forEach(r=>{if(t)return;const o=qn(r?.accounts,`${n} namespace`);o&&(t=o)}),t}function Hn(e,n){let t=null;return Se(e?.methods)?Se(e?.events)||(t=U(\"UNSUPPORTED_EVENTS\",`${n}, events should be an array of strings or empty array for no events`)):t=U(\"UNSUPPORTED_METHODS\",`${n}, methods should be an array of strings or empty array for no methods`),t}function $e(e,n){let t=null;return Object.values(e).forEach(r=>{if(t)return;const o=Hn(r,`${n}, namespace`);o&&(t=o)}),t}function Xr(e,n,t){let r=null;if(e&&Z(e)){const o=$e(e,n);o&&(r=o);const s=Fn(e,n,t);s&&(r=s)}else r=S(\"MISSING_OR_INVALID\",`${n}, ${t} should be an object with data`);return r}function Wn(e,n){let t=null;if(e&&Z(e)){const r=$e(e,n);r&&(t=r);const o=Bn(e,n);o&&(t=o)}else t=S(\"MISSING_OR_INVALID\",`${n}, namespaces should be an object with data`);return t}function Jn(e){return b(e.protocol,!0)}function eo(e,n){let t=!1;return n&&!e?t=!0:e&&L(e)&&e.length&&e.forEach(r=>{t=Jn(r)}),t}function no(e){return typeof e==\"number\"}function to(e){return typeof e<\"u\"&&typeof e!==null}function ro(e){return!(!e||typeof e!=\"object\"||!e.code||!X(e.code,!1)||!e.message||!b(e.message,!1))}function oo(e){return!(I(e)||!b(e.method,!1))}function so(e){return!(I(e)||I(e.result)&&I(e.error)||!X(e.id,!1)||!b(e.jsonrpc,!1))}function io(e){return!(I(e)||!b(e.name,!1))}function co(e,n){return!(!F(n)||!Un(e).includes(n))}function ao(e,n,t){return b(t,!1)?_n(e,n).includes(t):!1}function uo(e,n,t){return b(t,!1)?kn(e,n).includes(t):!1}function zn(e,n,t){let r=null;const o=lo(e),s=fo(n),i=Object.keys(o),u=Object.keys(s),l=Gn(Object.keys(e)),c=Gn(Object.keys(n)),d=l.filter(a=>!c.includes(a));return d.length&&(r=S(\"NON_CONFORMING_NAMESPACES\",`${t} namespaces keys don't satisfy requiredNamespaces.\n Required: ${d.toString()}\n Received: ${Object.keys(n).toString()}`)),$(i,u)||(r=S(\"NON_CONFORMING_NAMESPACES\",`${t} namespaces chains don't satisfy required namespaces.\n Required: ${i.toString()}\n Approved: ${u.toString()}`)),Object.keys(n).forEach(a=>{if(!a.includes(\":\")||r)return;const f=C(n[a].accounts);f.includes(a)||(r=S(\"NON_CONFORMING_NAMESPACES\",`${t} namespaces accounts don't satisfy namespace accounts for ${a}\n Required: ${a}\n Approved: ${f.toString()}`))}),i.forEach(a=>{r||($(o[a].methods,s[a].methods)?$(o[a].events,s[a].events)||(r=S(\"NON_CONFORMING_NAMESPACES\",`${t} namespaces events don't satisfy namespace events for ${a}`)):r=S(\"NON_CONFORMING_NAMESPACES\",`${t} namespaces methods don't satisfy namespace methods for ${a}`))}),r}function lo(e){const n={};return Object.keys(e).forEach(t=>{var r;t.includes(\":\")?n[t]=e[t]:(r=e[t].chains)==null||r.forEach(o=>{n[o]={methods:e[t].methods,events:e[t].events}})}),n}function Gn(e){return[...new Set(e.map(n=>n.includes(\":\")?n.split(\":\")[0]:n))]}function fo(e){const n={};return Object.keys(e).forEach(t=>{if(t.includes(\":\"))n[t]=e[t];else{const r=C(e[t].accounts);r?.forEach(o=>{n[o]={accounts:e[t].accounts.filter(s=>s.includes(`${o}:`)),methods:e[t].methods,events:e[t].events}})}}),n}function po(e,n){return X(e,!1)&&e<=n.max&&e>=n.min}function mo(){const e=P();return new Promise(n=>{switch(e){case y.browser:n(Yn());break;case y.reactNative:n(Qn());break;case y.node:n(Zn());break;default:n(!0)}})}function Yn(){return V()&&navigator?.onLine}async function Qn(){if(_()&&typeof global<\"u\"&&global!=null&&global.NetInfo){const e=await(global==null?void 0:global.NetInfo.fetch());return e?.isConnected}return!0}function Zn(){return!0}function ho(e){switch(P()){case y.browser:Xn(e);break;case y.reactNative:et(e);break;case y.node:break}}function Xn(e){!_()&&V()&&(window.addEventListener(\"online\",()=>e(!0)),window.addEventListener(\"offline\",()=>e(!1)))}function et(e){_()&&typeof global<\"u\"&&global!=null&&global.NetInfo&&global?.NetInfo.addEventListener(n=>e(n?.isConnected))}const Re={};class yo{static get(n){return Re[n]}static set(n,t){Re[n]=t}static delete(n){delete Re[n]}}export{ye as BASE10,g as BASE16,ge as BASE64,lr as BASE64URL,Et as COLON,ie as DEFAULT_DEPTH,J as EMPTY_SPACE,y as ENV_MAP,Mn as INTERNAL_ERRORS,yo as MemoryStore,wt as ONE_THOUSAND,qe as REACT_NATIVE_PRODUCT,Sn as RELAYER_DEFAULT_PROTOCOL,Vn as SDK_ERRORS,He as SDK_TYPE,Be as SLASH,ve as TYPE_0,D as TYPE_1,M as TYPE_2,k as UTF8,vn as addResourceToRecap,We as appendToQueryString,It as assertType,pe as assignAbilityToActions,yn as base64Decode,hn as base64Encode,Wr as buildApprovedNamespaces,tr as buildAuthObject,Jr as buildNamespacesFromAuth,En as buildRecapStatement,Mt as calcExpiry,Ut as capitalize,Ze as capitalizeWord,_t as createDelayedPromise,ir as createEncodedRecap,kt as createExpiringPromise,gn as createRecap,R as decodeRecap,A as decodeTypeByte,Er as decodeTypeTwoEnvelope,br as decrypt,mr as deriveSymKey,Q as deserialize,G as encodeRecap,Ee as encodeTypeByte,vr as encodeTypeTwoEnvelope,gr as encrypt,Lt as engineEvent,Ct as enumify,De as formatAccountId,ft as formatAccountWithChain,ke as formatChainId,Xe as formatDeeplinkUrl,ae as formatExpirerTarget,xt as formatIdTarget,dn as formatMessage,jt as formatMessageContext,Pn as formatRelayParams,$t as formatRelayRpcUrl,he as formatStatementFromRecap,Dt as formatTopicTarget,Ge as formatUA,Dr as formatUri,le as fromBase64,fr as generateKeyPair,pr as generateRandomBytes32,C as getAccountsChains,mt as getAccountsFromNamespaces,xe as getAddressFromAccount,pt as getAddressesFromAccounts,Nt as getAppMetadata,Yn as getBrowserOnlineStatus,Ot as getBundleId,Ve as getChainFromAccount,Me as getChainsFromAccounts,W as getChainsFromNamespace,ht as getChainsFromNamespaces,ur as getChainsFromRecap,yt as getChainsFromRequiredNamespaces,ue as getCommonValuesInArrays,Nn as getCryptoKeyFromKeyData,fn as getDecodedRecapFromResources,qt as getDeepLink,fe as getDidAddress,z as getDidAddressSegments,un as getDidChainId,P as getEnvironment,Rt as getHttpUrl,S as getInternalError,ze as getJavascriptID,Je as getJavascriptOS,Qe as getLastItems,xr as getLinkModeURL,ar as getMethodsFromRecap,ln as getNamespacedDidChainId,Un as getNamespacesChains,kn as getNamespacesEventsForChainId,xn as getNamespacesFromAccounts,_n as getNamespacesMethodsForChainId,Zn as getNodeOnlineStatus,mn as getReCapActions,Qn as getReactNativeOnlineStatus,sr as getRecapAbilitiesFromResource,Y as getRecapFromResources,pn as getRecapResource,St as getRelayClientMetadata,jr as getRelayProtocolApi,Ir as getRelayProtocolName,Hr as getRequiredNamespacesFromNamespaces,U as getSdkError,Bt as getSearchParamFromURL,se as getUniqueValues,Ft as handleDeeplinkRedirect,$ as hasOverlap,hr as hashKey,yr as hashMessage,V as isBrowser,Oe as isCaipNamespace,zn as isConformingNamespaces,Kt as isExpired,ce as isNode,mo as isOnline,Yr as isProposalStruct,_ as isReactNative,me as isRecap,zr as isSessionCompatible,Qr as isSessionStruct,en as isTelegram,Wt as isTestRun,Or as isTypeOneEnvelope,Nr as isTypeTwoEnvelope,I as isUndefined,Kn as isValidAccountId,qn as isValidAccounts,Hn as isValidActions,L as isValidArray,F as isValidChainId,Ln as isValidChains,Zr as isValidController,on as isValidEip1271Signature,rn as isValidEip191Signature,ro as isValidErrorReason,io as isValidEvent,no as isValidId,Bn as isValidNamespaceAccounts,$e as isValidNamespaceActions,Fn as isValidNamespaceChains,Se as isValidNamespaceMethodsOrEvents,Wn as isValidNamespaces,co as isValidNamespacesChainId,uo as isValidNamespacesEvent,ao as isValidNamespacesRequest,X as isValidNumber,Z as isValidObject,to as isValidParams,O as isValidRecap,Jn as isValidRelay,eo as isValidRelays,oo as isValidRequest,po as isValidRequestExpiry,Xr as isValidRequiredNamespaces,so as isValidResponse,b as isValidString,Gr as isValidUrl,At as mapEntries,Tt as mapToObj,N as mergeArrays,cr as mergeEncodedRecaps,bn as mergeRecaps,Ne as normalizeNamespaces,Pt as objToMap,oe as parseAccountId,re as parseChainId,Ye as parseContextNames,Vt as parseExpirerTarget,Dn as parseNamespaceKey,jn as parseRelayParams,Tn as parseTopic,kr as parseUri,rr as populateAuthPayload,or as recapHasResource,we as serialize,Xn as subscribeToBrowserNetworkChange,ho as subscribeToNetworkChange,et as subscribeToReactNativeNetworkChange,nn as toBase64,Ht as uuidv4,wr as validateDecoding,On as validateEncoding,nr as validateSignedCacao,Rr as verifyP256Jwt,tn as verifySignature};\n//# sourceMappingURL=index.es.js.map\n","import{EventEmitter as u}from\"events\";import{safeJsonStringify as p,safeJsonParse as g}from\"@walletconnect/safe-json\";import{isWsUrl as d,isReactNative as y,isLocalhostUrl as m,formatJsonRpcError as k,parseConnectionError as v}from\"@walletconnect/jsonrpc-utils\";const w=()=>typeof WebSocket<\"u\"?WebSocket:typeof global<\"u\"&&typeof global.WebSocket<\"u\"?global.WebSocket:typeof window<\"u\"&&typeof window.WebSocket<\"u\"?window.WebSocket:typeof self<\"u\"&&typeof self.WebSocket<\"u\"?self.WebSocket:require(\"ws\"),b=()=>typeof WebSocket<\"u\"||typeof global<\"u\"&&typeof global.WebSocket<\"u\"||typeof window<\"u\"&&typeof window.WebSocket<\"u\"||typeof self<\"u\"&&typeof self.WebSocket<\"u\",a=c=>c.split(\"?\")[0],h=10,S=w();class f{constructor(e){if(this.url=e,this.events=new u,this.registering=!1,!d(e))throw new Error(`Provided URL is not compatible with WebSocket connection: ${e}`);this.url=e}get connected(){return typeof this.socket<\"u\"}get connecting(){return this.registering}on(e,t){this.events.on(e,t)}once(e,t){this.events.once(e,t)}off(e,t){this.events.off(e,t)}removeListener(e,t){this.events.removeListener(e,t)}async open(e=this.url){await this.register(e)}async close(){return new Promise((e,t)=>{if(typeof this.socket>\"u\"){t(new Error(\"Connection already closed\"));return}this.socket.onclose=n=>{this.onClose(n),e()},this.socket.close()})}async send(e){typeof this.socket>\"u\"&&(this.socket=await this.register());try{this.socket.send(p(e))}catch(t){this.onError(e.id,t)}}register(e=this.url){if(!d(e))throw new Error(`Provided URL is not compatible with WebSocket connection: ${e}`);if(this.registering){const t=this.events.getMaxListeners();return(this.events.listenerCount(\"register_error\")>=t||this.events.listenerCount(\"open\")>=t)&&this.events.setMaxListeners(t+1),new Promise((n,o)=>{this.events.once(\"register_error\",s=>{this.resetMaxListeners(),o(s)}),this.events.once(\"open\",()=>{if(this.resetMaxListeners(),typeof this.socket>\"u\")return o(new Error(\"WebSocket connection is missing or invalid\"));n(this.socket)})})}return this.url=e,this.registering=!0,new Promise((t,n)=>{const o=new URLSearchParams(e).get(\"origin\"),s=y()?{headers:{origin:o}}:{rejectUnauthorized:!m(e)},i=new S(e,[],s);b()?i.onerror=r=>{const l=r;n(this.emitError(l.error))}:i.on(\"error\",r=>{n(this.emitError(r))}),i.onopen=()=>{this.onOpen(i),t(i)}})}onOpen(e){e.onmessage=t=>this.onPayload(t),e.onclose=t=>this.onClose(t),this.socket=e,this.registering=!1,this.events.emit(\"open\")}onClose(e){this.socket=void 0,this.registering=!1,this.events.emit(\"close\",e)}onPayload(e){if(typeof e.data>\"u\")return;const t=typeof e.data==\"string\"?g(e.data):e.data;this.events.emit(\"payload\",t)}onError(e,t){const n=this.parseError(t),o=n.message||n.toString(),s=k(e,o);this.events.emit(\"payload\",s)}parseError(e,t=this.url){return v(e,a(t),\"WS\")}resetMaxListeners(){this.events.getMaxListeners()>h&&this.events.setMaxListeners(h)}emitError(e){const t=this.parseError(new Error(e?.message||`WebSocket connection failed for host: ${a(this.url)}`));return this.events.emit(\"register_error\",t),t}}export{f as WsConnection,f as default};\n//# sourceMappingURL=index.es.js.map\n","import mi,{EventEmitter as U}from\"events\";import{HEARTBEAT_EVENTS as j,HeartBeat as bi}from\"@walletconnect/heartbeat\";import fi from\"@walletconnect/keyvaluestorage\";import{generateChildLogger as E,getLoggerContext as C,pino as _i,getDefaultLoggerOptions as Ie,generatePlatformLogger as Ei}from\"@walletconnect/logger\";import{IMessageTracker as vi,IPublisher as wi,ISubscriber as Ii,IRelayer as Ti,IStore as Ci,IJsonRpcHistory as Pi,IExpirer as Si,IVerify as Ri,IEchoClient as xi,IEventClient as Oi,ICore as Ai}from\"@walletconnect/types\";import{ONE_DAY as F,SIX_HOURS as Ni,THIRTY_DAYS as ee,FIVE_SECONDS as Te,THIRTY_SECONDS as oe,toMiliseconds as w,ONE_MINUTE as ae,ONE_SECOND as q,Watch as zi,FIVE_MINUTES as he,fromMiliseconds as Ce}from\"@walletconnect/time\";import{safeJsonStringify as Li,safeJsonParse as Pe}from\"@walletconnect/safe-json\";import*as te from\"@walletconnect/relay-auth\";import{decodeJWT as Se}from\"@walletconnect/relay-auth\";import{getInternalError as d,mapToObj as Re,objToMap as xe,generateRandomBytes32 as ce,generateKeyPair as $i,deriveSymKey as ki,hashKey as Mi,validateEncoding as Ui,isTypeTwoEnvelope as Oe,encodeTypeTwoEnvelope as Fi,isTypeOneEnvelope as Ae,encrypt as Ki,validateDecoding as Bi,decodeTypeTwoEnvelope as Vi,decrypt as ji,deserialize as Ne,decodeTypeByte as qi,BASE64 as ze,BASE16 as Gi,hashMessage as le,getRelayProtocolName as ue,createExpiringPromise as K,getRelayProtocolApi as G,isUndefined as de,getSdkError as H,isValidArray as Hi,isNode as Le,getBundleId as Yi,isOnline as $e,calcExpiry as Y,formatRelayRpcUrl as Ji,subscribeToNetworkChange as Xi,isProposalStruct as Wi,isSessionStruct as Zi,TYPE_1 as Qi,formatUri as ke,parseUri as Me,createDelayedPromise as es,engineEvent as pe,isExpired as Ue,isValidParams as ge,isValidUrl as ts,isValidString as is,parseExpirerTarget as ss,formatTopicTarget as rs,formatIdTarget as ns,isBrowser as os,verifyP256Jwt as as,isTestRun as Fe,uuidv4 as Ke,formatUA as hs,getAppMetadata as cs}from\"@walletconnect/utils\";import{toString as ls}from\"uint8arrays\";import{JsonRpcProvider as us}from\"@walletconnect/jsonrpc-provider\";import{getBigIntRpcId as Be,isJsonRpcRequest as Ve,isJsonRpcResponse as je,formatJsonRpcResult as qe,formatJsonRpcRequest as Ge,formatJsonRpcError as ds,isJsonRpcResult as ps,isJsonRpcError as He}from\"@walletconnect/jsonrpc-utils\";import gs from\"@walletconnect/jsonrpc-ws-connection\";import ys from\"lodash.isequal\";import{getDocument as Ds}from\"@walletconnect/window-getters\";const ye=\"wc\",De=2,ie=\"core\",x=`${ye}@2:${ie}:`,Ye={name:ie,logger:\"error\"},Je={database:\":memory:\"},Xe=\"crypto\",me=\"client_ed25519_seed\",We=F,Ze=\"keychain\",Qe=\"0.3\",et=\"messages\",tt=\"0.3\",it=Ni,st=\"publisher\",rt=\"irn\",nt=\"error\",be=\"wss://relay.walletconnect.org\",ot=\"relayer\",v={message:\"relayer_message\",message_ack:\"relayer_message_ack\",connect:\"relayer_connect\",disconnect:\"relayer_disconnect\",error:\"relayer_error\",connection_stalled:\"relayer_connection_stalled\",transport_closed:\"relayer_transport_closed\",publish:\"relayer_publish\"},at=\"_subscription\",I={payload:\"payload\",connect:\"connect\",disconnect:\"disconnect\",error:\"error\"},ht=.1,ms={database:\":memory:\"},se=\"2.17.1\",bs=1e4,M={link_mode:\"link_mode\",relay:\"relay\"},ct=\"0.3\",lt=\"WALLETCONNECT_CLIENT_ID\",fe=\"WALLETCONNECT_LINK_MODE_APPS\",O={created:\"subscription_created\",deleted:\"subscription_deleted\",expired:\"subscription_expired\",disabled:\"subscription_disabled\",sync:\"subscription_sync\",resubscribed:\"subscription_resubscribed\"},fs=ee,ut=\"subscription\",dt=\"0.3\",pt=Te*1e3,gt=\"pairing\",yt=\"0.3\",_s=ee,B={wc_pairingDelete:{req:{ttl:F,prompt:!1,tag:1e3},res:{ttl:F,prompt:!1,tag:1001}},wc_pairingPing:{req:{ttl:oe,prompt:!1,tag:1002},res:{ttl:oe,prompt:!1,tag:1003}},unregistered_method:{req:{ttl:F,prompt:!1,tag:0},res:{ttl:F,prompt:!1,tag:0}}},V={create:\"pairing_create\",expire:\"pairing_expire\",delete:\"pairing_delete\",ping:\"pairing_ping\"},P={created:\"history_created\",updated:\"history_updated\",deleted:\"history_deleted\",sync:\"history_sync\"},Dt=\"history\",mt=\"0.3\",bt=\"expirer\",S={created:\"expirer_created\",deleted:\"expirer_deleted\",expired:\"expirer_expired\",sync:\"expirer_sync\"},ft=\"0.3\",Es=F,_t=\"verify-api\",vs=\"https://verify.walletconnect.com\",Et=\"https://verify.walletconnect.org\",J=Et,vt=`${J}/v3`,wt=[vs,Et],It=\"echo\",Tt=\"https://echo.walletconnect.com\",ws=\"event-client\",z={pairing_started:\"pairing_started\",pairing_uri_validation_success:\"pairing_uri_validation_success\",pairing_uri_not_expired:\"pairing_uri_not_expired\",store_new_pairing:\"store_new_pairing\",subscribing_pairing_topic:\"subscribing_pairing_topic\",subscribe_pairing_topic_success:\"subscribe_pairing_topic_success\",existing_pairing:\"existing_pairing\",pairing_not_expired:\"pairing_not_expired\",emit_inactive_pairing:\"emit_inactive_pairing\",emit_session_proposal:\"emit_session_proposal\",subscribing_to_pairing_topic:\"subscribing_to_pairing_topic\"},$={no_wss_connection:\"no_wss_connection\",no_internet_connection:\"no_internet_connection\",malformed_pairing_uri:\"malformed_pairing_uri\",active_pairing_already_exists:\"active_pairing_already_exists\",subscribe_pairing_topic_failure:\"subscribe_pairing_topic_failure\",pairing_expired:\"pairing_expired\",proposal_expired:\"proposal_expired\",proposal_listener_not_found:\"proposal_listener_not_found\"},Is={session_approve_started:\"session_approve_started\",proposal_not_expired:\"proposal_not_expired\",session_namespaces_validation_success:\"session_namespaces_validation_success\",create_session_topic:\"create_session_topic\",subscribing_session_topic:\"subscribing_session_topic\",subscribe_session_topic_success:\"subscribe_session_topic_success\",publishing_session_approve:\"publishing_session_approve\",session_approve_publish_success:\"session_approve_publish_success\",store_session:\"store_session\",publishing_session_settle:\"publishing_session_settle\",session_settle_publish_success:\"session_settle_publish_success\"},Ts={no_internet_connection:\"no_internet_connection\",no_wss_connection:\"no_wss_connection\",proposal_expired:\"proposal_expired\",subscribe_session_topic_failure:\"subscribe_session_topic_failure\",session_approve_publish_failure:\"session_approve_publish_failure\",session_settle_publish_failure:\"session_settle_publish_failure\",session_approve_namespace_validation_failure:\"session_approve_namespace_validation_failure\",proposal_not_found:\"proposal_not_found\"},Cs={authenticated_session_approve_started:\"authenticated_session_approve_started\",authenticated_session_not_expired:\"authenticated_session_not_expired\",chains_caip2_compliant:\"chains_caip2_compliant\",chains_evm_compliant:\"chains_evm_compliant\",create_authenticated_session_topic:\"create_authenticated_session_topic\",cacaos_verified:\"cacaos_verified\",store_authenticated_session:\"store_authenticated_session\",subscribing_authenticated_session_topic:\"subscribing_authenticated_session_topic\",subscribe_authenticated_session_topic_success:\"subscribe_authenticated_session_topic_success\",publishing_authenticated_session_approve:\"publishing_authenticated_session_approve\",authenticated_session_approve_publish_success:\"authenticated_session_approve_publish_success\"},Ps={no_internet_connection:\"no_internet_connection\",no_wss_connection:\"no_wss_connection\",missing_session_authenticate_request:\"missing_session_authenticate_request\",session_authenticate_request_expired:\"session_authenticate_request_expired\",chains_caip2_compliant_failure:\"chains_caip2_compliant_failure\",chains_evm_compliant_failure:\"chains_evm_compliant_failure\",invalid_cacao:\"invalid_cacao\",subscribe_authenticated_session_topic_failure:\"subscribe_authenticated_session_topic_failure\",authenticated_session_approve_publish_failure:\"authenticated_session_approve_publish_failure\",authenticated_session_pending_request_not_found:\"authenticated_session_pending_request_not_found\"},Ct=.1,Pt=\"event-client\",St=86400,Rt=\"https://pulse.walletconnect.org/batch\";function Ss(o,e){if(o.length>=255)throw new TypeError(\"Alphabet too long\");for(var t=new Uint8Array(256),s=0;s>>0,T=new Uint8Array(A);y!==b;){for(var N=u[y],k=0,R=A-1;(N!==0||k<_)&&R!==-1;R--,k++)N+=256*T[R]>>>0,T[R]=N%a>>>0,N=N/a>>>0;if(N!==0)throw new Error(\"Non-zero carry\");_=k,y++}for(var L=A-_;L!==A&&T[L]===0;)L++;for(var Q=h.repeat(g);L>>0,A=new Uint8Array(b);u[g];){var T=t[u.charCodeAt(g)];if(T===255)return;for(var N=0,k=b-1;(T!==0||N>>0,A[k]=T%256>>>0,T=T/256>>>0;if(T!==0)throw new Error(\"Non-zero carry\");y=N,g++}if(u[g]!==\" \"){for(var R=b-y;R!==b&&A[R]===0;)R++;for(var L=new Uint8Array(_+(b-R)),Q=_;R!==b;)L[Q++]=A[R++];return L}}}function m(u){var g=D(u);if(g)return g;throw new Error(`Non-${e} character`)}return{encode:p,decodeUnsafe:D,decode:m}}var Rs=Ss,xs=Rs;const xt=o=>{if(o instanceof Uint8Array&&o.constructor.name===\"Uint8Array\")return o;if(o instanceof ArrayBuffer)return new Uint8Array(o);if(ArrayBuffer.isView(o))return new Uint8Array(o.buffer,o.byteOffset,o.byteLength);throw new Error(\"Unknown type, must be binary type\")},Os=o=>new TextEncoder().encode(o),As=o=>new TextDecoder().decode(o);class Ns{constructor(e,t,s){this.name=e,this.prefix=t,this.baseEncode=s}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error(\"Unknown type, must be binary type\")}}class zs{constructor(e,t,s){if(this.name=e,this.prefix=t,t.codePointAt(0)===void 0)throw new Error(\"Invalid prefix character\");this.prefixCodePoint=t.codePointAt(0),this.baseDecode=s}decode(e){if(typeof e==\"string\"){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}else throw Error(\"Can only multibase decode strings\")}or(e){return Ot(this,e)}}class Ls{constructor(e){this.decoders=e}or(e){return Ot(this,e)}decode(e){const t=e[0],s=this.decoders[t];if(s)return s.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}}const Ot=(o,e)=>new Ls({...o.decoders||{[o.prefix]:o},...e.decoders||{[e.prefix]:e}});class $s{constructor(e,t,s,i){this.name=e,this.prefix=t,this.baseEncode=s,this.baseDecode=i,this.encoder=new Ns(e,t,s),this.decoder=new zs(e,t,i)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}}const re=({name:o,prefix:e,encode:t,decode:s})=>new $s(o,e,t,s),X=({prefix:o,name:e,alphabet:t})=>{const{encode:s,decode:i}=xs(t,e);return re({prefix:o,name:e,encode:s,decode:r=>xt(i(r))})},ks=(o,e,t,s)=>{const i={};for(let l=0;l=8&&(a-=8,n[c++]=255&h>>a)}if(a>=t||255&h<<8-a)throw new SyntaxError(\"Unexpected end of data\");return n},Ms=(o,e,t)=>{const s=e[e.length-1]===\"=\",i=(1<t;)n-=t,r+=e[i&a>>n];if(n&&(r+=e[i&a<re({prefix:e,name:o,encode(i){return Ms(i,s,t)},decode(i){return ks(i,s,t,o)}}),Us=re({prefix:\"\\0\",name:\"identity\",encode:o=>As(o),decode:o=>Os(o)});var Fs=Object.freeze({__proto__:null,identity:Us});const Ks=f({prefix:\"0\",name:\"base2\",alphabet:\"01\",bitsPerChar:1});var Bs=Object.freeze({__proto__:null,base2:Ks});const Vs=f({prefix:\"7\",name:\"base8\",alphabet:\"01234567\",bitsPerChar:3});var js=Object.freeze({__proto__:null,base8:Vs});const qs=X({prefix:\"9\",name:\"base10\",alphabet:\"0123456789\"});var Gs=Object.freeze({__proto__:null,base10:qs});const Hs=f({prefix:\"f\",name:\"base16\",alphabet:\"0123456789abcdef\",bitsPerChar:4}),Ys=f({prefix:\"F\",name:\"base16upper\",alphabet:\"0123456789ABCDEF\",bitsPerChar:4});var Js=Object.freeze({__proto__:null,base16:Hs,base16upper:Ys});const Xs=f({prefix:\"b\",name:\"base32\",alphabet:\"abcdefghijklmnopqrstuvwxyz234567\",bitsPerChar:5}),Ws=f({prefix:\"B\",name:\"base32upper\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567\",bitsPerChar:5}),Zs=f({prefix:\"c\",name:\"base32pad\",alphabet:\"abcdefghijklmnopqrstuvwxyz234567=\",bitsPerChar:5}),Qs=f({prefix:\"C\",name:\"base32padupper\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=\",bitsPerChar:5}),er=f({prefix:\"v\",name:\"base32hex\",alphabet:\"0123456789abcdefghijklmnopqrstuv\",bitsPerChar:5}),tr=f({prefix:\"V\",name:\"base32hexupper\",alphabet:\"0123456789ABCDEFGHIJKLMNOPQRSTUV\",bitsPerChar:5}),ir=f({prefix:\"t\",name:\"base32hexpad\",alphabet:\"0123456789abcdefghijklmnopqrstuv=\",bitsPerChar:5}),sr=f({prefix:\"T\",name:\"base32hexpadupper\",alphabet:\"0123456789ABCDEFGHIJKLMNOPQRSTUV=\",bitsPerChar:5}),rr=f({prefix:\"h\",name:\"base32z\",alphabet:\"ybndrfg8ejkmcpqxot1uwisza345h769\",bitsPerChar:5});var nr=Object.freeze({__proto__:null,base32:Xs,base32upper:Ws,base32pad:Zs,base32padupper:Qs,base32hex:er,base32hexupper:tr,base32hexpad:ir,base32hexpadupper:sr,base32z:rr});const or=X({prefix:\"k\",name:\"base36\",alphabet:\"0123456789abcdefghijklmnopqrstuvwxyz\"}),ar=X({prefix:\"K\",name:\"base36upper\",alphabet:\"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\"});var hr=Object.freeze({__proto__:null,base36:or,base36upper:ar});const cr=X({name:\"base58btc\",prefix:\"z\",alphabet:\"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz\"}),lr=X({name:\"base58flickr\",prefix:\"Z\",alphabet:\"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ\"});var ur=Object.freeze({__proto__:null,base58btc:cr,base58flickr:lr});const dr=f({prefix:\"m\",name:\"base64\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",bitsPerChar:6}),pr=f({prefix:\"M\",name:\"base64pad\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\",bitsPerChar:6}),gr=f({prefix:\"u\",name:\"base64url\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_\",bitsPerChar:6}),yr=f({prefix:\"U\",name:\"base64urlpad\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=\",bitsPerChar:6});var Dr=Object.freeze({__proto__:null,base64:dr,base64pad:pr,base64url:gr,base64urlpad:yr});const At=Array.from(\"\\u{1F680}\\u{1FA90}\\u2604\\u{1F6F0}\\u{1F30C}\\u{1F311}\\u{1F312}\\u{1F313}\\u{1F314}\\u{1F315}\\u{1F316}\\u{1F317}\\u{1F318}\\u{1F30D}\\u{1F30F}\\u{1F30E}\\u{1F409}\\u2600\\u{1F4BB}\\u{1F5A5}\\u{1F4BE}\\u{1F4BF}\\u{1F602}\\u2764\\u{1F60D}\\u{1F923}\\u{1F60A}\\u{1F64F}\\u{1F495}\\u{1F62D}\\u{1F618}\\u{1F44D}\\u{1F605}\\u{1F44F}\\u{1F601}\\u{1F525}\\u{1F970}\\u{1F494}\\u{1F496}\\u{1F499}\\u{1F622}\\u{1F914}\\u{1F606}\\u{1F644}\\u{1F4AA}\\u{1F609}\\u263A\\u{1F44C}\\u{1F917}\\u{1F49C}\\u{1F614}\\u{1F60E}\\u{1F607}\\u{1F339}\\u{1F926}\\u{1F389}\\u{1F49E}\\u270C\\u2728\\u{1F937}\\u{1F631}\\u{1F60C}\\u{1F338}\\u{1F64C}\\u{1F60B}\\u{1F497}\\u{1F49A}\\u{1F60F}\\u{1F49B}\\u{1F642}\\u{1F493}\\u{1F929}\\u{1F604}\\u{1F600}\\u{1F5A4}\\u{1F603}\\u{1F4AF}\\u{1F648}\\u{1F447}\\u{1F3B6}\\u{1F612}\\u{1F92D}\\u2763\\u{1F61C}\\u{1F48B}\\u{1F440}\\u{1F62A}\\u{1F611}\\u{1F4A5}\\u{1F64B}\\u{1F61E}\\u{1F629}\\u{1F621}\\u{1F92A}\\u{1F44A}\\u{1F973}\\u{1F625}\\u{1F924}\\u{1F449}\\u{1F483}\\u{1F633}\\u270B\\u{1F61A}\\u{1F61D}\\u{1F634}\\u{1F31F}\\u{1F62C}\\u{1F643}\\u{1F340}\\u{1F337}\\u{1F63B}\\u{1F613}\\u2B50\\u2705\\u{1F97A}\\u{1F308}\\u{1F608}\\u{1F918}\\u{1F4A6}\\u2714\\u{1F623}\\u{1F3C3}\\u{1F490}\\u2639\\u{1F38A}\\u{1F498}\\u{1F620}\\u261D\\u{1F615}\\u{1F33A}\\u{1F382}\\u{1F33B}\\u{1F610}\\u{1F595}\\u{1F49D}\\u{1F64A}\\u{1F639}\\u{1F5E3}\\u{1F4AB}\\u{1F480}\\u{1F451}\\u{1F3B5}\\u{1F91E}\\u{1F61B}\\u{1F534}\\u{1F624}\\u{1F33C}\\u{1F62B}\\u26BD\\u{1F919}\\u2615\\u{1F3C6}\\u{1F92B}\\u{1F448}\\u{1F62E}\\u{1F646}\\u{1F37B}\\u{1F343}\\u{1F436}\\u{1F481}\\u{1F632}\\u{1F33F}\\u{1F9E1}\\u{1F381}\\u26A1\\u{1F31E}\\u{1F388}\\u274C\\u270A\\u{1F44B}\\u{1F630}\\u{1F928}\\u{1F636}\\u{1F91D}\\u{1F6B6}\\u{1F4B0}\\u{1F353}\\u{1F4A2}\\u{1F91F}\\u{1F641}\\u{1F6A8}\\u{1F4A8}\\u{1F92C}\\u2708\\u{1F380}\\u{1F37A}\\u{1F913}\\u{1F619}\\u{1F49F}\\u{1F331}\\u{1F616}\\u{1F476}\\u{1F974}\\u25B6\\u27A1\\u2753\\u{1F48E}\\u{1F4B8}\\u2B07\\u{1F628}\\u{1F31A}\\u{1F98B}\\u{1F637}\\u{1F57A}\\u26A0\\u{1F645}\\u{1F61F}\\u{1F635}\\u{1F44E}\\u{1F932}\\u{1F920}\\u{1F927}\\u{1F4CC}\\u{1F535}\\u{1F485}\\u{1F9D0}\\u{1F43E}\\u{1F352}\\u{1F617}\\u{1F911}\\u{1F30A}\\u{1F92F}\\u{1F437}\\u260E\\u{1F4A7}\\u{1F62F}\\u{1F486}\\u{1F446}\\u{1F3A4}\\u{1F647}\\u{1F351}\\u2744\\u{1F334}\\u{1F4A3}\\u{1F438}\\u{1F48C}\\u{1F4CD}\\u{1F940}\\u{1F922}\\u{1F445}\\u{1F4A1}\\u{1F4A9}\\u{1F450}\\u{1F4F8}\\u{1F47B}\\u{1F910}\\u{1F92E}\\u{1F3BC}\\u{1F975}\\u{1F6A9}\\u{1F34E}\\u{1F34A}\\u{1F47C}\\u{1F48D}\\u{1F4E3}\\u{1F942}\"),mr=At.reduce((o,e,t)=>(o[t]=e,o),[]),br=At.reduce((o,e,t)=>(o[e.codePointAt(0)]=t,o),[]);function fr(o){return o.reduce((e,t)=>(e+=mr[t],e),\"\")}function _r(o){const e=[];for(const t of o){const s=br[t.codePointAt(0)];if(s===void 0)throw new Error(`Non-base256emoji character: ${t}`);e.push(s)}return new Uint8Array(e)}const Er=re({prefix:\"\\u{1F680}\",name:\"base256emoji\",encode:fr,decode:_r});var vr=Object.freeze({__proto__:null,base256emoji:Er}),wr=zt,Nt=128,Ir=127,Tr=~Ir,Cr=Math.pow(2,31);function zt(o,e,t){e=e||[],t=t||0;for(var s=t;o>=Cr;)e[t++]=o&255|Nt,o/=128;for(;o&Tr;)e[t++]=o&255|Nt,o>>>=7;return e[t]=o|0,zt.bytes=t-s+1,e}var Pr=_e,Sr=128,Lt=127;function _e(o,s){var t=0,s=s||0,i=0,r=s,n,a=o.length;do{if(r>=a)throw _e.bytes=0,new RangeError(\"Could not decode varint\");n=o[r++],t+=i<28?(n&Lt)<=Sr);return _e.bytes=r-s,t}var Rr=Math.pow(2,7),xr=Math.pow(2,14),Or=Math.pow(2,21),Ar=Math.pow(2,28),Nr=Math.pow(2,35),zr=Math.pow(2,42),Lr=Math.pow(2,49),$r=Math.pow(2,56),kr=Math.pow(2,63),Mr=function(o){return o($t.encode(o,e,t),e),Mt=o=>$t.encodingLength(o),Ee=(o,e)=>{const t=e.byteLength,s=Mt(o),i=s+Mt(t),r=new Uint8Array(i+t);return kt(o,r,0),kt(t,r,s),r.set(e,i),new Fr(o,t,e,r)};class Fr{constructor(e,t,s,i){this.code=e,this.size=t,this.digest=s,this.bytes=i}}const Ut=({name:o,code:e,encode:t})=>new Kr(o,e,t);class Kr{constructor(e,t,s){this.name=e,this.code=t,this.encode=s}digest(e){if(e instanceof Uint8Array){const t=this.encode(e);return t instanceof Uint8Array?Ee(this.code,t):t.then(s=>Ee(this.code,s))}else throw Error(\"Unknown type, must be binary type\")}}const Ft=o=>async e=>new Uint8Array(await crypto.subtle.digest(o,e)),Br=Ut({name:\"sha2-256\",code:18,encode:Ft(\"SHA-256\")}),Vr=Ut({name:\"sha2-512\",code:19,encode:Ft(\"SHA-512\")});var jr=Object.freeze({__proto__:null,sha256:Br,sha512:Vr});const Kt=0,qr=\"identity\",Bt=xt,Gr=o=>Ee(Kt,Bt(o)),Hr={code:Kt,name:qr,encode:Bt,digest:Gr};var Yr=Object.freeze({__proto__:null,identity:Hr});new TextEncoder,new TextDecoder;const Vt={...Fs,...Bs,...js,...Gs,...Js,...nr,...hr,...ur,...Dr,...vr};({...jr,...Yr});function Jr(o=0){return globalThis.Buffer!=null&&globalThis.Buffer.allocUnsafe!=null?globalThis.Buffer.allocUnsafe(o):new Uint8Array(o)}function jt(o,e,t,s){return{name:o,prefix:e,encoder:{name:o,prefix:e,encode:t},decoder:{decode:s}}}const qt=jt(\"utf8\",\"u\",o=>\"u\"+new TextDecoder(\"utf8\").decode(o),o=>new TextEncoder().encode(o.substring(1))),ve=jt(\"ascii\",\"a\",o=>{let e=\"a\";for(let t=0;t{o=o.substring(1);const e=Jr(o.length);for(let t=0;t{if(!this.initialized){const s=await this.getKeyChain();typeof s<\"u\"&&(this.keychain=s),this.initialized=!0}},this.has=s=>(this.isInitialized(),this.keychain.has(s)),this.set=async(s,i)=>{this.isInitialized(),this.keychain.set(s,i),await this.persist()},this.get=s=>{this.isInitialized();const i=this.keychain.get(s);if(typeof i>\"u\"){const{message:r}=d(\"NO_MATCHING_KEY\",`${this.name}: ${s}`);throw new Error(r)}return i},this.del=async s=>{this.isInitialized(),this.keychain.delete(s),await this.persist()},this.core=e,this.logger=E(t,this.name)}get context(){return C(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+\"//\"+this.name}async setKeyChain(e){await this.core.storage.setItem(this.storageKey,Re(e))}async getKeyChain(){const e=await this.core.storage.getItem(this.storageKey);return typeof e<\"u\"?xe(e):void 0}async persist(){await this.setKeyChain(this.keychain)}isInitialized(){if(!this.initialized){const{message:e}=d(\"NOT_INITIALIZED\",this.name);throw new Error(e)}}}class Ht{constructor(e,t,s){this.core=e,this.logger=t,this.name=Xe,this.randomSessionIdentifier=ce(),this.initialized=!1,this.init=async()=>{this.initialized||(await this.keychain.init(),this.initialized=!0)},this.hasKeys=i=>(this.isInitialized(),this.keychain.has(i)),this.getClientId=async()=>{this.isInitialized();const i=await this.getClientSeed(),r=te.generateKeyPair(i);return te.encodeIss(r.publicKey)},this.generateKeyPair=()=>{this.isInitialized();const i=$i();return this.setPrivateKey(i.publicKey,i.privateKey)},this.signJWT=async i=>{this.isInitialized();const r=await this.getClientSeed(),n=te.generateKeyPair(r),a=this.randomSessionIdentifier,h=We;return await te.signJWT(a,i,h,n)},this.generateSharedKey=(i,r,n)=>{this.isInitialized();const a=this.getPrivateKey(i),h=ki(a,r);return this.setSymKey(h,n)},this.setSymKey=async(i,r)=>{this.isInitialized();const n=r||Mi(i);return await this.keychain.set(n,i),n},this.deleteKeyPair=async i=>{this.isInitialized(),await this.keychain.del(i)},this.deleteSymKey=async i=>{this.isInitialized(),await this.keychain.del(i)},this.encode=async(i,r,n)=>{this.isInitialized();const a=Ui(n),h=Li(r);if(Oe(a))return Fi(h,n?.encoding);if(Ae(a)){const D=a.senderPublicKey,m=a.receiverPublicKey;i=await this.generateSharedKey(D,m)}const c=this.getSymKey(i),{type:l,senderPublicKey:p}=a;return Ki({type:l,symKey:c,message:h,senderPublicKey:p,encoding:n?.encoding})},this.decode=async(i,r,n)=>{this.isInitialized();const a=Bi(r,n);if(Oe(a)){const h=Vi(r,n?.encoding);return Pe(h)}if(Ae(a)){const h=a.receiverPublicKey,c=a.senderPublicKey;i=await this.generateSharedKey(h,c)}try{const h=this.getSymKey(i),c=ji({symKey:h,encoded:r,encoding:n?.encoding});return Pe(c)}catch(h){this.logger.error(`Failed to decode message from topic: '${i}', clientId: '${await this.getClientId()}'`),this.logger.error(h)}},this.getPayloadType=(i,r=ze)=>{const n=Ne({encoded:i,encoding:r});return qi(n.type)},this.getPayloadSenderPublicKey=(i,r=ze)=>{const n=Ne({encoded:i,encoding:r});return n.senderPublicKey?ls(n.senderPublicKey,Gi):void 0},this.core=e,this.logger=E(t,this.name),this.keychain=s||new Gt(this.core,this.logger)}get context(){return C(this.logger)}async setPrivateKey(e,t){return await this.keychain.set(e,t),e}getPrivateKey(e){return this.keychain.get(e)}async getClientSeed(){let e=\"\";try{e=this.keychain.get(me)}catch{e=ce(),await this.keychain.set(me,e)}return Wr(e,\"base16\")}getSymKey(e){return this.keychain.get(e)}isInitialized(){if(!this.initialized){const{message:e}=d(\"NOT_INITIALIZED\",this.name);throw new Error(e)}}}class Yt extends vi{constructor(e,t){super(e,t),this.logger=e,this.core=t,this.messages=new Map,this.name=et,this.version=tt,this.initialized=!1,this.storagePrefix=x,this.init=async()=>{if(!this.initialized){this.logger.trace(\"Initialized\");try{const s=await this.getRelayerMessages();typeof s<\"u\"&&(this.messages=s),this.logger.debug(`Successfully Restored records for ${this.name}`),this.logger.trace({type:\"method\",method:\"restore\",size:this.messages.size})}catch(s){this.logger.debug(`Failed to Restore records for ${this.name}`),this.logger.error(s)}finally{this.initialized=!0}}},this.set=async(s,i)=>{this.isInitialized();const r=le(i);let n=this.messages.get(s);return typeof n>\"u\"&&(n={}),typeof n[r]<\"u\"||(n[r]=i,this.messages.set(s,n),await this.persist()),r},this.get=s=>{this.isInitialized();let i=this.messages.get(s);return typeof i>\"u\"&&(i={}),i},this.has=(s,i)=>{this.isInitialized();const r=this.get(s),n=le(i);return typeof r[n]<\"u\"},this.del=async s=>{this.isInitialized(),this.messages.delete(s),await this.persist()},this.logger=E(e,this.name),this.core=t}get context(){return C(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+\"//\"+this.name}async setRelayerMessages(e){await this.core.storage.setItem(this.storageKey,Re(e))}async getRelayerMessages(){const e=await this.core.storage.getItem(this.storageKey);return typeof e<\"u\"?xe(e):void 0}async persist(){await this.setRelayerMessages(this.messages)}isInitialized(){if(!this.initialized){const{message:e}=d(\"NOT_INITIALIZED\",this.name);throw new Error(e)}}}class Zr extends wi{constructor(e,t){super(e,t),this.relayer=e,this.logger=t,this.events=new U,this.name=st,this.queue=new Map,this.publishTimeout=w(ae),this.failedPublishTimeout=w(q),this.needsTransportRestart=!1,this.publish=async(s,i,r)=>{var n;this.logger.debug(\"Publishing Payload\"),this.logger.trace({type:\"method\",method:\"publish\",params:{topic:s,message:i,opts:r}});const a=r?.ttl||it,h=ue(r),c=r?.prompt||!1,l=r?.tag||0,p=r?.id||Be().toString(),D={topic:s,message:i,opts:{ttl:a,relay:h,prompt:c,tag:l,id:p,attestation:r?.attestation}},m=`Failed to publish payload, please try again. id:${p} tag:${l}`,u=Date.now();let g,_=1;try{for(;g===void 0;){if(Date.now()-u>this.publishTimeout)throw new Error(m);this.logger.trace({id:p,attempts:_},`publisher.publish - attempt ${_}`),g=await await K(this.rpcPublish(s,i,a,h,c,l,p,r?.attestation).catch(y=>this.logger.warn(y)),this.publishTimeout,m),_++,g||await new Promise(y=>setTimeout(y,this.failedPublishTimeout))}this.relayer.events.emit(v.publish,D),this.logger.debug(\"Successfully Published Payload\"),this.logger.trace({type:\"method\",method:\"publish\",params:{id:p,topic:s,message:i,opts:r}})}catch(y){if(this.logger.debug(\"Failed to Publish Payload\"),this.logger.error(y),(n=r?.internal)!=null&&n.throwOnFailedPublish)throw y;this.queue.set(p,D)}},this.on=(s,i)=>{this.events.on(s,i)},this.once=(s,i)=>{this.events.once(s,i)},this.off=(s,i)=>{this.events.off(s,i)},this.removeListener=(s,i)=>{this.events.removeListener(s,i)},this.relayer=e,this.logger=E(t,this.name),this.registerEventListeners()}get context(){return C(this.logger)}rpcPublish(e,t,s,i,r,n,a,h){var c,l,p,D;const m={method:G(i.protocol).publish,params:{topic:e,message:t,ttl:s,prompt:r,tag:n,attestation:h},id:a};return de((c=m.params)==null?void 0:c.prompt)&&((l=m.params)==null||delete l.prompt),de((p=m.params)==null?void 0:p.tag)&&((D=m.params)==null||delete D.tag),this.logger.debug(\"Outgoing Relay Payload\"),this.logger.trace({type:\"message\",direction:\"outgoing\",request:m}),this.relayer.request(m)}removeRequestFromQueue(e){this.queue.delete(e)}checkQueue(){this.queue.forEach(async e=>{const{topic:t,message:s,opts:i}=e;await this.publish(t,s,i)})}registerEventListeners(){this.relayer.core.heartbeat.on(j.pulse,()=>{if(this.needsTransportRestart){this.needsTransportRestart=!1,this.relayer.events.emit(v.connection_stalled);return}this.checkQueue()}),this.relayer.on(v.message_ack,e=>{this.removeRequestFromQueue(e.id.toString())})}}class Qr{constructor(){this.map=new Map,this.set=(e,t)=>{const s=this.get(e);this.exists(e,t)||this.map.set(e,[...s,t])},this.get=e=>this.map.get(e)||[],this.exists=(e,t)=>this.get(e).includes(t),this.delete=(e,t)=>{if(typeof t>\"u\"){this.map.delete(e);return}if(!this.map.has(e))return;const s=this.get(e);if(!this.exists(e,t))return;const i=s.filter(r=>r!==t);if(!i.length){this.map.delete(e);return}this.map.set(e,i)},this.clear=()=>{this.map.clear()}}get topics(){return Array.from(this.map.keys())}}var en=Object.defineProperty,tn=Object.defineProperties,sn=Object.getOwnPropertyDescriptors,Jt=Object.getOwnPropertySymbols,rn=Object.prototype.hasOwnProperty,nn=Object.prototype.propertyIsEnumerable,Xt=(o,e,t)=>e in o?en(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t,W=(o,e)=>{for(var t in e||(e={}))rn.call(e,t)&&Xt(o,t,e[t]);if(Jt)for(var t of Jt(e))nn.call(e,t)&&Xt(o,t,e[t]);return o},we=(o,e)=>tn(o,sn(e));class Wt extends Ii{constructor(e,t){super(e,t),this.relayer=e,this.logger=t,this.subscriptions=new Map,this.topicMap=new Qr,this.events=new U,this.name=ut,this.version=dt,this.pending=new Map,this.cached=[],this.initialized=!1,this.pendingSubscriptionWatchLabel=\"pending_sub_watch_label\",this.pollingInterval=20,this.storagePrefix=x,this.subscribeTimeout=w(ae),this.restartInProgress=!1,this.batchSubscribeTopicsLimit=500,this.pendingBatchMessages=[],this.init=async()=>{this.initialized||(this.logger.trace(\"Initialized\"),this.registerEventListeners(),this.clientId=await this.relayer.core.crypto.getClientId(),await this.restore()),this.initialized=!0},this.subscribe=async(s,i)=>{this.isInitialized(),this.logger.debug(\"Subscribing Topic\"),this.logger.trace({type:\"method\",method:\"subscribe\",params:{topic:s,opts:i}});try{const r=ue(i),n={topic:s,relay:r,transportType:i?.transportType};this.pending.set(s,n);const a=await this.rpcSubscribe(s,r,i);return typeof a==\"string\"&&(this.onSubscribe(a,n),this.logger.debug(\"Successfully Subscribed Topic\"),this.logger.trace({type:\"method\",method:\"subscribe\",params:{topic:s,opts:i}})),a}catch(r){throw this.logger.debug(\"Failed to Subscribe Topic\"),this.logger.error(r),r}},this.unsubscribe=async(s,i)=>{await this.restartToComplete(),this.isInitialized(),typeof i?.id<\"u\"?await this.unsubscribeById(s,i.id,i):await this.unsubscribeByTopic(s,i)},this.isSubscribed=async s=>{if(this.topics.includes(s))return!0;const i=`${this.pendingSubscriptionWatchLabel}_${s}`;return await new Promise((r,n)=>{const a=new zi;a.start(i);const h=setInterval(()=>{!this.pending.has(s)&&this.topics.includes(s)&&(clearInterval(h),a.stop(i),r(!0)),a.elapsed(i)>=pt&&(clearInterval(h),a.stop(i),n(new Error(\"Subscription resolution timeout\")))},this.pollingInterval)}).catch(()=>!1)},this.on=(s,i)=>{this.events.on(s,i)},this.once=(s,i)=>{this.events.once(s,i)},this.off=(s,i)=>{this.events.off(s,i)},this.removeListener=(s,i)=>{this.events.removeListener(s,i)},this.start=async()=>{await this.onConnect()},this.stop=async()=>{await this.onDisconnect()},this.restart=async()=>{this.restartInProgress=!0,await this.restore(),await this.reset(),this.restartInProgress=!1},this.relayer=e,this.logger=E(t,this.name),this.clientId=\"\"}get context(){return C(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.relayer.core.customStoragePrefix+\"//\"+this.name}get length(){return this.subscriptions.size}get ids(){return Array.from(this.subscriptions.keys())}get values(){return Array.from(this.subscriptions.values())}get topics(){return this.topicMap.topics}hasSubscription(e,t){let s=!1;try{s=this.getSubscription(e).topic===t}catch{}return s}onEnable(){this.cached=[],this.initialized=!0}onDisable(){this.cached=this.values,this.subscriptions.clear(),this.topicMap.clear()}async unsubscribeByTopic(e,t){const s=this.topicMap.get(e);await Promise.all(s.map(async i=>await this.unsubscribeById(e,i,t)))}async unsubscribeById(e,t,s){this.logger.debug(\"Unsubscribing Topic\"),this.logger.trace({type:\"method\",method:\"unsubscribe\",params:{topic:e,id:t,opts:s}});try{const i=ue(s);await this.rpcUnsubscribe(e,t,i);const r=H(\"USER_DISCONNECTED\",`${this.name}, ${e}`);await this.onUnsubscribe(e,t,r),this.logger.debug(\"Successfully Unsubscribed Topic\"),this.logger.trace({type:\"method\",method:\"unsubscribe\",params:{topic:e,id:t,opts:s}})}catch(i){throw this.logger.debug(\"Failed to Unsubscribe Topic\"),this.logger.error(i),i}}async rpcSubscribe(e,t,s){var i;s?.transportType===M.relay&&await this.restartToComplete();const r={method:G(t.protocol).subscribe,params:{topic:e}};this.logger.debug(\"Outgoing Relay Payload\"),this.logger.trace({type:\"payload\",direction:\"outgoing\",request:r});const n=(i=s?.internal)==null?void 0:i.throwOnFailedPublish;try{const a=le(e+this.clientId);if(s?.transportType===M.link_mode)return setTimeout(()=>{(this.relayer.connected||this.relayer.connecting)&&this.relayer.request(r).catch(c=>this.logger.warn(c))},w(q)),a;const h=await K(this.relayer.request(r).catch(c=>this.logger.warn(c)),this.subscribeTimeout,`Subscribing to ${e} failed, please try again`);if(!h&&n)throw new Error(`Subscribing to ${e} failed, please try again`);return h?a:null}catch(a){if(this.logger.debug(\"Outgoing Relay Subscribe Payload stalled\"),this.relayer.events.emit(v.connection_stalled),n)throw a}return null}async rpcBatchSubscribe(e){if(!e.length)return;const t=e[0].relay,s={method:G(t.protocol).batchSubscribe,params:{topics:e.map(i=>i.topic)}};this.logger.debug(\"Outgoing Relay Payload\"),this.logger.trace({type:\"payload\",direction:\"outgoing\",request:s});try{return await await K(this.relayer.request(s).catch(i=>this.logger.warn(i)),this.subscribeTimeout)}catch{this.relayer.events.emit(v.connection_stalled)}}async rpcBatchFetchMessages(e){if(!e.length)return;const t=e[0].relay,s={method:G(t.protocol).batchFetchMessages,params:{topics:e.map(r=>r.topic)}};this.logger.debug(\"Outgoing Relay Payload\"),this.logger.trace({type:\"payload\",direction:\"outgoing\",request:s});let i;try{i=await await K(this.relayer.request(s).catch(r=>this.logger.warn(r)),this.subscribeTimeout)}catch{this.relayer.events.emit(v.connection_stalled)}return i}rpcUnsubscribe(e,t,s){const i={method:G(s.protocol).unsubscribe,params:{topic:e,id:t}};return this.logger.debug(\"Outgoing Relay Payload\"),this.logger.trace({type:\"payload\",direction:\"outgoing\",request:i}),this.relayer.request(i)}onSubscribe(e,t){this.setSubscription(e,we(W({},t),{id:e})),this.pending.delete(t.topic)}onBatchSubscribe(e){e.length&&e.forEach(t=>{this.setSubscription(t.id,W({},t)),this.pending.delete(t.topic)})}async onUnsubscribe(e,t,s){this.events.removeAllListeners(t),this.hasSubscription(t,e)&&this.deleteSubscription(t,s),await this.relayer.messages.del(e)}async setRelayerSubscriptions(e){await this.relayer.core.storage.setItem(this.storageKey,e)}async getRelayerSubscriptions(){return await this.relayer.core.storage.getItem(this.storageKey)}setSubscription(e,t){this.logger.debug(\"Setting subscription\"),this.logger.trace({type:\"method\",method:\"setSubscription\",id:e,subscription:t}),this.addSubscription(e,t)}addSubscription(e,t){this.subscriptions.set(e,W({},t)),this.topicMap.set(t.topic,e),this.events.emit(O.created,t)}getSubscription(e){this.logger.debug(\"Getting subscription\"),this.logger.trace({type:\"method\",method:\"getSubscription\",id:e});const t=this.subscriptions.get(e);if(!t){const{message:s}=d(\"NO_MATCHING_KEY\",`${this.name}: ${e}`);throw new Error(s)}return t}deleteSubscription(e,t){this.logger.debug(\"Deleting subscription\"),this.logger.trace({type:\"method\",method:\"deleteSubscription\",id:e,reason:t});const s=this.getSubscription(e);this.subscriptions.delete(e),this.topicMap.delete(s.topic,e),this.events.emit(O.deleted,we(W({},s),{reason:t}))}async persist(){await this.setRelayerSubscriptions(this.values),this.events.emit(O.sync)}async reset(){if(this.cached.length){const e=Math.ceil(this.cached.length/this.batchSubscribeTopicsLimit);for(let t=0;t\"u\"||!e.length)return;if(this.subscriptions.size){const{message:t}=d(\"RESTORE_WILL_OVERRIDE\",this.name);throw this.logger.error(t),this.logger.error(`${this.name}: ${JSON.stringify(this.values)}`),new Error(t)}this.cached=e,this.logger.debug(`Successfully Restored subscriptions for ${this.name}`),this.logger.trace({type:\"method\",method:\"restore\",subscriptions:this.values})}catch(e){this.logger.debug(`Failed to Restore subscriptions for ${this.name}`),this.logger.error(e)}}async batchSubscribe(e){if(!e.length)return;const t=await this.rpcBatchSubscribe(e);Hi(t)&&this.onBatchSubscribe(t.map((s,i)=>we(W({},e[i]),{id:s})))}async batchFetchMessages(e){if(!e.length)return;this.logger.trace(`Fetching batch messages for ${e.length} subscriptions`);const t=await this.rpcBatchFetchMessages(e);t&&t.messages&&(this.pendingBatchMessages=this.pendingBatchMessages.concat(t.messages))}async onConnect(){await this.restart(),this.onEnable()}onDisconnect(){this.onDisable()}async checkPending(){if(!this.initialized||!this.relayer.connected)return;const e=[];this.pending.forEach(t=>{e.push(t)}),await this.batchSubscribe(e),this.pendingBatchMessages.length&&(await this.relayer.handleBatchMessageEvents(this.pendingBatchMessages),this.pendingBatchMessages=[])}registerEventListeners(){this.relayer.core.heartbeat.on(j.pulse,async()=>{await this.checkPending()}),this.events.on(O.created,async e=>{const t=O.created;this.logger.info(`Emitting ${t}`),this.logger.debug({type:\"event\",event:t,data:e}),await this.persist()}),this.events.on(O.deleted,async e=>{const t=O.deleted;this.logger.info(`Emitting ${t}`),this.logger.debug({type:\"event\",event:t,data:e}),await this.persist()})}isInitialized(){if(!this.initialized){const{message:e}=d(\"NOT_INITIALIZED\",this.name);throw new Error(e)}}async restartToComplete(){!this.relayer.connected&&!this.relayer.connecting&&await this.relayer.transportOpen(),this.restartInProgress&&await new Promise(e=>{const t=setInterval(()=>{this.restartInProgress||(clearInterval(t),e())},this.pollingInterval)})}}var on=Object.defineProperty,Zt=Object.getOwnPropertySymbols,an=Object.prototype.hasOwnProperty,hn=Object.prototype.propertyIsEnumerable,Qt=(o,e,t)=>e in o?on(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t,ei=(o,e)=>{for(var t in e||(e={}))an.call(e,t)&&Qt(o,t,e[t]);if(Zt)for(var t of Zt(e))hn.call(e,t)&&Qt(o,t,e[t]);return o};class ti extends Ti{constructor(e){super(e),this.protocol=\"wc\",this.version=2,this.events=new U,this.name=ot,this.transportExplicitlyClosed=!1,this.initialized=!1,this.connectionAttemptInProgress=!1,this.connectionStatusPollingInterval=20,this.staleConnectionErrors=[\"socket hang up\",\"stalled\",\"interrupted\"],this.hasExperiencedNetworkDisruption=!1,this.requestsInFlight=new Map,this.heartBeatTimeout=w(oe+q),this.request=async t=>{var s,i;this.logger.debug(\"Publishing Request Payload\");const r=t.id||Be().toString();await this.toEstablishConnection();try{const n=this.provider.request(t);this.requestsInFlight.set(r,{promise:n,request:t}),this.logger.trace({id:r,method:t.method,topic:(s=t.params)==null?void 0:s.topic},\"relayer.request - attempt to publish...\");const a=await new Promise(async(h,c)=>{const l=()=>{c(new Error(`relayer.request - publish interrupted, id: ${r}`))};this.provider.on(I.disconnect,l);const p=await n;this.provider.off(I.disconnect,l),h(p)});return this.logger.trace({id:r,method:t.method,topic:(i=t.params)==null?void 0:i.topic},\"relayer.request - published\"),a}catch(n){throw this.logger.debug(`Failed to Publish Request: ${r}`),n}finally{this.requestsInFlight.delete(r)}},this.resetPingTimeout=()=>{if(Le())try{clearTimeout(this.pingTimeout),this.pingTimeout=setTimeout(()=>{var t,s,i;(i=(s=(t=this.provider)==null?void 0:t.connection)==null?void 0:s.socket)==null||i.terminate()},this.heartBeatTimeout)}catch(t){this.logger.warn(t)}},this.onPayloadHandler=t=>{this.onProviderPayload(t),this.resetPingTimeout()},this.onConnectHandler=()=>{this.logger.trace(\"relayer connected\"),this.startPingTimeout(),this.events.emit(v.connect)},this.onDisconnectHandler=()=>{this.logger.trace(\"relayer disconnected\"),this.onProviderDisconnect()},this.onProviderErrorHandler=t=>{this.logger.error(t),this.events.emit(v.error,t),this.logger.info(\"Fatal socket error received, closing transport\"),this.transportClose()},this.registerProviderListeners=()=>{this.provider.on(I.payload,this.onPayloadHandler),this.provider.on(I.connect,this.onConnectHandler),this.provider.on(I.disconnect,this.onDisconnectHandler),this.provider.on(I.error,this.onProviderErrorHandler)},this.core=e.core,this.logger=typeof e.logger<\"u\"&&typeof e.logger!=\"string\"?E(e.logger,this.name):_i(Ie({level:e.logger||nt})),this.messages=new Yt(this.logger,e.core),this.subscriber=new Wt(this,this.logger),this.publisher=new Zr(this,this.logger),this.relayUrl=e?.relayUrl||be,this.projectId=e.projectId,this.bundleId=Yi(),this.provider={}}async init(){if(this.logger.trace(\"Initialized\"),this.registerEventListeners(),await Promise.all([this.messages.init(),this.subscriber.init()]),this.initialized=!0,this.subscriber.cached.length>0)try{await this.transportOpen()}catch(e){this.logger.warn(e)}}get context(){return C(this.logger)}get connected(){var e,t,s;return((s=(t=(e=this.provider)==null?void 0:e.connection)==null?void 0:t.socket)==null?void 0:s.readyState)===1}get connecting(){var e,t,s;return((s=(t=(e=this.provider)==null?void 0:e.connection)==null?void 0:t.socket)==null?void 0:s.readyState)===0}async publish(e,t,s){this.isInitialized(),await this.publisher.publish(e,t,s),await this.recordMessageEvent({topic:e,message:t,publishedAt:Date.now(),transportType:M.relay})}async subscribe(e,t){var s,i,r;this.isInitialized(),t?.transportType===\"relay\"&&await this.toEstablishConnection();const n=typeof((s=t?.internal)==null?void 0:s.throwOnFailedPublish)>\"u\"?!0:(i=t?.internal)==null?void 0:i.throwOnFailedPublish;let a=((r=this.subscriber.topicMap.get(e))==null?void 0:r[0])||\"\",h;const c=l=>{l.topic===e&&(this.subscriber.off(O.created,c),h())};return await Promise.all([new Promise(l=>{h=l,this.subscriber.on(O.created,c)}),new Promise(async(l,p)=>{a=await this.subscriber.subscribe(e,ei({internal:{throwOnFailedPublish:n}},t)).catch(D=>{n&&p(D)})||a,l()})]),a}async unsubscribe(e,t){this.isInitialized(),await this.subscriber.unsubscribe(e,t)}on(e,t){this.events.on(e,t)}once(e,t){this.events.once(e,t)}off(e,t){this.events.off(e,t)}removeListener(e,t){this.events.removeListener(e,t)}async transportDisconnect(){if(!this.hasExperiencedNetworkDisruption&&this.connected&&this.requestsInFlight.size>0)try{await Promise.all(Array.from(this.requestsInFlight.values()).map(e=>e.promise))}catch(e){this.logger.warn(e)}this.hasExperiencedNetworkDisruption||this.connected?await K(this.provider.disconnect(),2e3,\"provider.disconnect()\").catch(()=>this.onProviderDisconnect()):this.onProviderDisconnect()}async transportClose(){this.transportExplicitlyClosed=!0,await this.transportDisconnect()}async transportOpen(e){await this.confirmOnlineStateOrThrow(),e&&e!==this.relayUrl&&(this.relayUrl=e,await this.transportDisconnect()),await this.createProvider(),this.connectionAttemptInProgress=!0,this.transportExplicitlyClosed=!1;try{await new Promise(async(t,s)=>{const i=()=>{this.provider.off(I.disconnect,i),s(new Error(\"Connection interrupted while trying to subscribe\"))};this.provider.on(I.disconnect,i),await K(this.provider.connect(),w(ae),`Socket stalled when trying to connect to ${this.relayUrl}`).catch(r=>{s(r)}).finally(()=>{clearTimeout(this.reconnectTimeout),this.reconnectTimeout=void 0}),this.subscriber.start().catch(r=>{this.logger.error(r),this.onDisconnectHandler()}),this.hasExperiencedNetworkDisruption=!1,t()})}catch(t){this.logger.error(t);const s=t;if(this.hasExperiencedNetworkDisruption=!0,!this.isConnectionStalled(s.message))throw t}finally{this.connectionAttemptInProgress=!1}}async restartTransport(e){this.connectionAttemptInProgress||(this.relayUrl=e||this.relayUrl,await this.confirmOnlineStateOrThrow(),await this.transportClose(),await this.transportOpen())}async confirmOnlineStateOrThrow(){if(!await $e())throw new Error(\"No internet connection detected. Please restart your network and try again.\")}async handleBatchMessageEvents(e){if(e?.length===0){this.logger.trace(\"Batch message events is empty. Ignoring...\");return}const t=e.sort((s,i)=>s.publishedAt-i.publishedAt);this.logger.trace(`Batch of ${t.length} message events sorted`);for(const s of t)try{await this.onMessageEvent(s)}catch(i){this.logger.warn(i)}this.logger.trace(`Batch of ${t.length} message events processed`)}async onLinkMessageEvent(e,t){const{topic:s}=e;if(!t.sessionExists){const i=Y(he),r={topic:s,expiry:i,relay:{protocol:\"irn\"},active:!1};await this.core.pairing.pairings.set(s,r)}this.events.emit(v.message,e),await this.recordMessageEvent(e)}startPingTimeout(){var e,t,s,i,r;if(Le())try{(t=(e=this.provider)==null?void 0:e.connection)!=null&&t.socket&&((r=(i=(s=this.provider)==null?void 0:s.connection)==null?void 0:i.socket)==null||r.once(\"ping\",()=>{this.resetPingTimeout()})),this.resetPingTimeout()}catch(n){this.logger.warn(n)}}isConnectionStalled(e){return this.staleConnectionErrors.some(t=>e.includes(t))}async createProvider(){this.provider.connection&&this.unregisterProviderListeners();const e=await this.core.crypto.signJWT(this.relayUrl);this.provider=new us(new gs(Ji({sdkVersion:se,protocol:this.protocol,version:this.version,relayUrl:this.relayUrl,projectId:this.projectId,auth:e,useOnCloseEvent:!0,bundleId:this.bundleId}))),this.registerProviderListeners()}async recordMessageEvent(e){const{topic:t,message:s}=e;await this.messages.set(t,s)}async shouldIgnoreMessageEvent(e){const{topic:t,message:s}=e;if(!s||s.length===0)return this.logger.debug(`Ignoring invalid/empty message: ${s}`),!0;if(!await this.subscriber.isSubscribed(t))return this.logger.debug(`Ignoring message for non-subscribed topic ${t}`),!0;const i=this.messages.has(t,s);return i&&this.logger.debug(`Ignoring duplicate message: ${s}`),i}async onProviderPayload(e){if(this.logger.debug(\"Incoming Relay Payload\"),this.logger.trace({type:\"payload\",direction:\"incoming\",payload:e}),Ve(e)){if(!e.method.endsWith(at))return;const t=e.params,{topic:s,message:i,publishedAt:r,attestation:n}=t.data,a={topic:s,message:i,publishedAt:r,transportType:M.relay,attestation:n};this.logger.debug(\"Emitting Relayer Payload\"),this.logger.trace(ei({type:\"event\",event:t.id},a)),this.events.emit(t.id,a),await this.acknowledgePayload(e),await this.onMessageEvent(a)}else je(e)&&this.events.emit(v.message_ack,e)}async onMessageEvent(e){await this.shouldIgnoreMessageEvent(e)||(this.events.emit(v.message,e),await this.recordMessageEvent(e))}async acknowledgePayload(e){const t=qe(e.id,!0);await this.provider.connection.send(t)}unregisterProviderListeners(){this.provider.off(I.payload,this.onPayloadHandler),this.provider.off(I.connect,this.onConnectHandler),this.provider.off(I.disconnect,this.onDisconnectHandler),this.provider.off(I.error,this.onProviderErrorHandler),clearTimeout(this.pingTimeout)}async registerEventListeners(){let e=await $e();Xi(async t=>{e!==t&&(e=t,t?await this.restartTransport().catch(s=>this.logger.error(s)):(this.hasExperiencedNetworkDisruption=!0,await this.transportDisconnect(),this.transportExplicitlyClosed=!1))})}async onProviderDisconnect(){await this.subscriber.stop(),this.requestsInFlight.clear(),clearTimeout(this.pingTimeout),this.events.emit(v.disconnect),this.connectionAttemptInProgress=!1,!this.transportExplicitlyClosed&&(this.reconnectTimeout||(this.reconnectTimeout=setTimeout(async()=>{await this.transportOpen().catch(e=>this.logger.error(e))},w(ht))))}isInitialized(){if(!this.initialized){const{message:e}=d(\"NOT_INITIALIZED\",this.name);throw new Error(e)}}async toEstablishConnection(){await this.confirmOnlineStateOrThrow(),!this.connected&&(this.connectionAttemptInProgress&&await new Promise(e=>{const t=setInterval(()=>{this.connected&&(clearInterval(t),e())},this.connectionStatusPollingInterval)}),await this.transportOpen())}}var cn=Object.defineProperty,ii=Object.getOwnPropertySymbols,ln=Object.prototype.hasOwnProperty,un=Object.prototype.propertyIsEnumerable,si=(o,e,t)=>e in o?cn(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t,ri=(o,e)=>{for(var t in e||(e={}))ln.call(e,t)&&si(o,t,e[t]);if(ii)for(var t of ii(e))un.call(e,t)&&si(o,t,e[t]);return o};class ni extends Ci{constructor(e,t,s,i=x,r=void 0){super(e,t,s,i),this.core=e,this.logger=t,this.name=s,this.map=new Map,this.version=ct,this.cached=[],this.initialized=!1,this.storagePrefix=x,this.recentlyDeleted=[],this.recentlyDeletedLimit=200,this.init=async()=>{this.initialized||(this.logger.trace(\"Initialized\"),await this.restore(),this.cached.forEach(n=>{this.getKey&&n!==null&&!de(n)?this.map.set(this.getKey(n),n):Wi(n)?this.map.set(n.id,n):Zi(n)&&this.map.set(n.topic,n)}),this.cached=[],this.initialized=!0)},this.set=async(n,a)=>{this.isInitialized(),this.map.has(n)?await this.update(n,a):(this.logger.debug(\"Setting value\"),this.logger.trace({type:\"method\",method:\"set\",key:n,value:a}),this.map.set(n,a),await this.persist())},this.get=n=>(this.isInitialized(),this.logger.debug(\"Getting value\"),this.logger.trace({type:\"method\",method:\"get\",key:n}),this.getData(n)),this.getAll=n=>(this.isInitialized(),n?this.values.filter(a=>Object.keys(n).every(h=>ys(a[h],n[h]))):this.values),this.update=async(n,a)=>{this.isInitialized(),this.logger.debug(\"Updating value\"),this.logger.trace({type:\"method\",method:\"update\",key:n,update:a});const h=ri(ri({},this.getData(n)),a);this.map.set(n,h),await this.persist()},this.delete=async(n,a)=>{this.isInitialized(),this.map.has(n)&&(this.logger.debug(\"Deleting value\"),this.logger.trace({type:\"method\",method:\"delete\",key:n,reason:a}),this.map.delete(n),this.addToRecentlyDeleted(n),await this.persist())},this.logger=E(t,this.name),this.storagePrefix=i,this.getKey=r}get context(){return C(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+\"//\"+this.name}get length(){return this.map.size}get keys(){return Array.from(this.map.keys())}get values(){return Array.from(this.map.values())}addToRecentlyDeleted(e){this.recentlyDeleted.push(e),this.recentlyDeleted.length>=this.recentlyDeletedLimit&&this.recentlyDeleted.splice(0,this.recentlyDeletedLimit/2)}async setDataStore(e){await this.core.storage.setItem(this.storageKey,e)}async getDataStore(){return await this.core.storage.getItem(this.storageKey)}getData(e){const t=this.map.get(e);if(!t){if(this.recentlyDeleted.includes(e)){const{message:i}=d(\"MISSING_OR_INVALID\",`Record was recently deleted - ${this.name}: ${e}`);throw this.logger.error(i),new Error(i)}const{message:s}=d(\"NO_MATCHING_KEY\",`${this.name}: ${e}`);throw this.logger.error(s),new Error(s)}return t}async persist(){await this.setDataStore(this.values)}async restore(){try{const e=await this.getDataStore();if(typeof e>\"u\"||!e.length)return;if(this.map.size){const{message:t}=d(\"RESTORE_WILL_OVERRIDE\",this.name);throw this.logger.error(t),new Error(t)}this.cached=e,this.logger.debug(`Successfully Restored value for ${this.name}`),this.logger.trace({type:\"method\",method:\"restore\",value:this.values})}catch(e){this.logger.debug(`Failed to Restore value for ${this.name}`),this.logger.error(e)}}isInitialized(){if(!this.initialized){const{message:e}=d(\"NOT_INITIALIZED\",this.name);throw new Error(e)}}}class oi{constructor(e,t){this.core=e,this.logger=t,this.name=gt,this.version=yt,this.events=new mi,this.initialized=!1,this.storagePrefix=x,this.ignoredPayloadTypes=[Qi],this.registeredMethods=[],this.init=async()=>{this.initialized||(await this.pairings.init(),await this.cleanup(),this.registerRelayerEvents(),this.registerExpirerEvents(),this.initialized=!0,this.logger.trace(\"Initialized\"))},this.register=({methods:s})=>{this.isInitialized(),this.registeredMethods=[...new Set([...this.registeredMethods,...s])]},this.create=async s=>{this.isInitialized();const i=ce(),r=await this.core.crypto.setSymKey(i),n=Y(he),a={protocol:rt},h={topic:r,expiry:n,relay:a,active:!1,methods:s?.methods},c=ke({protocol:this.core.protocol,version:this.core.version,topic:r,symKey:i,relay:a,expiryTimestamp:n,methods:s?.methods});return this.events.emit(V.create,h),this.core.expirer.set(r,n),await this.pairings.set(r,h),await this.core.relayer.subscribe(r,{transportType:s?.transportType}),{topic:r,uri:c}},this.pair=async s=>{this.isInitialized();const i=this.core.eventClient.createEvent({properties:{topic:s?.uri,trace:[z.pairing_started]}});this.isValidPair(s,i);const{topic:r,symKey:n,relay:a,expiryTimestamp:h,methods:c}=Me(s.uri);i.props.properties.topic=r,i.addTrace(z.pairing_uri_validation_success),i.addTrace(z.pairing_uri_not_expired);let l;if(this.pairings.keys.includes(r)){if(l=this.pairings.get(r),i.addTrace(z.existing_pairing),l.active)throw i.setError($.active_pairing_already_exists),new Error(`Pairing already exists: ${r}. Please try again with a new connection URI.`);i.addTrace(z.pairing_not_expired)}const p=h||Y(he),D={topic:r,relay:a,expiry:p,active:!1,methods:c};this.core.expirer.set(r,p),await this.pairings.set(r,D),i.addTrace(z.store_new_pairing),s.activatePairing&&await this.activate({topic:r}),this.events.emit(V.create,D),i.addTrace(z.emit_inactive_pairing),this.core.crypto.keychain.has(r)||await this.core.crypto.setSymKey(n,r),i.addTrace(z.subscribing_pairing_topic);try{await this.core.relayer.confirmOnlineStateOrThrow()}catch{i.setError($.no_internet_connection)}try{await this.core.relayer.subscribe(r,{relay:a})}catch(m){throw i.setError($.subscribe_pairing_topic_failure),m}return i.addTrace(z.subscribe_pairing_topic_success),D},this.activate=async({topic:s})=>{this.isInitialized();const i=Y(ee);this.core.expirer.set(s,i),await this.pairings.update(s,{active:!0,expiry:i})},this.ping=async s=>{this.isInitialized(),await this.isValidPing(s);const{topic:i}=s;if(this.pairings.keys.includes(i)){const r=await this.sendRequest(i,\"wc_pairingPing\",{}),{done:n,resolve:a,reject:h}=es();this.events.once(pe(\"pairing_ping\",r),({error:c})=>{c?h(c):a()}),await n()}},this.updateExpiry=async({topic:s,expiry:i})=>{this.isInitialized(),await this.pairings.update(s,{expiry:i})},this.updateMetadata=async({topic:s,metadata:i})=>{this.isInitialized(),await this.pairings.update(s,{peerMetadata:i})},this.getPairings=()=>(this.isInitialized(),this.pairings.values),this.disconnect=async s=>{this.isInitialized(),await this.isValidDisconnect(s);const{topic:i}=s;this.pairings.keys.includes(i)&&(await this.sendRequest(i,\"wc_pairingDelete\",H(\"USER_DISCONNECTED\")),await this.deletePairing(i))},this.formatUriFromPairing=s=>{this.isInitialized();const{topic:i,relay:r,expiry:n,methods:a}=s,h=this.core.crypto.keychain.get(i);return ke({protocol:this.core.protocol,version:this.core.version,topic:i,symKey:h,relay:r,expiryTimestamp:n,methods:a})},this.sendRequest=async(s,i,r)=>{const n=Ge(i,r),a=await this.core.crypto.encode(s,n),h=B[i].req;return this.core.history.set(s,n),this.core.relayer.publish(s,a,h),n.id},this.sendResult=async(s,i,r)=>{const n=qe(s,r),a=await this.core.crypto.encode(i,n),h=await this.core.history.get(i,s),c=B[h.request.method].res;await this.core.relayer.publish(i,a,c),await this.core.history.resolve(n)},this.sendError=async(s,i,r)=>{const n=ds(s,r),a=await this.core.crypto.encode(i,n),h=await this.core.history.get(i,s),c=B[h.request.method]?B[h.request.method].res:B.unregistered_method.res;await this.core.relayer.publish(i,a,c),await this.core.history.resolve(n)},this.deletePairing=async(s,i)=>{await this.core.relayer.unsubscribe(s),await Promise.all([this.pairings.delete(s,H(\"USER_DISCONNECTED\")),this.core.crypto.deleteSymKey(s),i?Promise.resolve():this.core.expirer.del(s)])},this.cleanup=async()=>{const s=this.pairings.getAll().filter(i=>Ue(i.expiry));await Promise.all(s.map(i=>this.deletePairing(i.topic)))},this.onRelayEventRequest=s=>{const{topic:i,payload:r}=s;switch(r.method){case\"wc_pairingPing\":return this.onPairingPingRequest(i,r);case\"wc_pairingDelete\":return this.onPairingDeleteRequest(i,r);default:return this.onUnknownRpcMethodRequest(i,r)}},this.onRelayEventResponse=async s=>{const{topic:i,payload:r}=s,n=(await this.core.history.get(i,r.id)).request.method;switch(n){case\"wc_pairingPing\":return this.onPairingPingResponse(i,r);default:return this.onUnknownRpcMethodResponse(n)}},this.onPairingPingRequest=async(s,i)=>{const{id:r}=i;try{this.isValidPing({topic:s}),await this.sendResult(r,s,!0),this.events.emit(V.ping,{id:r,topic:s})}catch(n){await this.sendError(r,s,n),this.logger.error(n)}},this.onPairingPingResponse=(s,i)=>{const{id:r}=i;setTimeout(()=>{ps(i)?this.events.emit(pe(\"pairing_ping\",r),{}):He(i)&&this.events.emit(pe(\"pairing_ping\",r),{error:i.error})},500)},this.onPairingDeleteRequest=async(s,i)=>{const{id:r}=i;try{this.isValidDisconnect({topic:s}),await this.deletePairing(s),this.events.emit(V.delete,{id:r,topic:s})}catch(n){await this.sendError(r,s,n),this.logger.error(n)}},this.onUnknownRpcMethodRequest=async(s,i)=>{const{id:r,method:n}=i;try{if(this.registeredMethods.includes(n))return;const a=H(\"WC_METHOD_UNSUPPORTED\",n);await this.sendError(r,s,a),this.logger.error(a)}catch(a){await this.sendError(r,s,a),this.logger.error(a)}},this.onUnknownRpcMethodResponse=s=>{this.registeredMethods.includes(s)||this.logger.error(H(\"WC_METHOD_UNSUPPORTED\",s))},this.isValidPair=(s,i)=>{var r;if(!ge(s)){const{message:a}=d(\"MISSING_OR_INVALID\",`pair() params: ${s}`);throw i.setError($.malformed_pairing_uri),new Error(a)}if(!ts(s.uri)){const{message:a}=d(\"MISSING_OR_INVALID\",`pair() uri: ${s.uri}`);throw i.setError($.malformed_pairing_uri),new Error(a)}const n=Me(s?.uri);if(!((r=n?.relay)!=null&&r.protocol)){const{message:a}=d(\"MISSING_OR_INVALID\",\"pair() uri#relay-protocol\");throw i.setError($.malformed_pairing_uri),new Error(a)}if(!(n!=null&&n.symKey)){const{message:a}=d(\"MISSING_OR_INVALID\",\"pair() uri#symKey\");throw i.setError($.malformed_pairing_uri),new Error(a)}if(n!=null&&n.expiryTimestamp&&w(n?.expiryTimestamp){if(!ge(s)){const{message:r}=d(\"MISSING_OR_INVALID\",`ping() params: ${s}`);throw new Error(r)}const{topic:i}=s;await this.isValidPairingTopic(i)},this.isValidDisconnect=async s=>{if(!ge(s)){const{message:r}=d(\"MISSING_OR_INVALID\",`disconnect() params: ${s}`);throw new Error(r)}const{topic:i}=s;await this.isValidPairingTopic(i)},this.isValidPairingTopic=async s=>{if(!is(s,!1)){const{message:i}=d(\"MISSING_OR_INVALID\",`pairing topic should be a string: ${s}`);throw new Error(i)}if(!this.pairings.keys.includes(s)){const{message:i}=d(\"NO_MATCHING_KEY\",`pairing topic doesn't exist: ${s}`);throw new Error(i)}if(Ue(this.pairings.get(s).expiry)){await this.deletePairing(s);const{message:i}=d(\"EXPIRED\",`pairing topic: ${s}`);throw new Error(i)}},this.core=e,this.logger=E(t,this.name),this.pairings=new ni(this.core,this.logger,this.name,this.storagePrefix)}get context(){return C(this.logger)}isInitialized(){if(!this.initialized){const{message:e}=d(\"NOT_INITIALIZED\",this.name);throw new Error(e)}}registerRelayerEvents(){this.core.relayer.on(v.message,async e=>{const{topic:t,message:s,transportType:i}=e;if(!this.pairings.keys.includes(t)||i===M.link_mode||this.ignoredPayloadTypes.includes(this.core.crypto.getPayloadType(s)))return;const r=await this.core.crypto.decode(t,s);try{Ve(r)?(this.core.history.set(t,r),this.onRelayEventRequest({topic:t,payload:r})):je(r)&&(await this.core.history.resolve(r),await this.onRelayEventResponse({topic:t,payload:r}),this.core.history.delete(t,r.id))}catch(n){this.logger.error(n)}})}registerExpirerEvents(){this.core.expirer.on(S.expired,async e=>{const{topic:t}=ss(e.target);t&&this.pairings.keys.includes(t)&&(await this.deletePairing(t,!0),this.events.emit(V.expire,{topic:t}))})}}class ai extends Pi{constructor(e,t){super(e,t),this.core=e,this.logger=t,this.records=new Map,this.events=new U,this.name=Dt,this.version=mt,this.cached=[],this.initialized=!1,this.storagePrefix=x,this.init=async()=>{this.initialized||(this.logger.trace(\"Initialized\"),await this.restore(),this.cached.forEach(s=>this.records.set(s.id,s)),this.cached=[],this.registerEventListeners(),this.initialized=!0)},this.set=(s,i,r)=>{if(this.isInitialized(),this.logger.debug(\"Setting JSON-RPC request history record\"),this.logger.trace({type:\"method\",method:\"set\",topic:s,request:i,chainId:r}),this.records.has(i.id))return;const n={id:i.id,topic:s,request:{method:i.method,params:i.params||null},chainId:r,expiry:Y(ee)};this.records.set(n.id,n),this.persist(),this.events.emit(P.created,n)},this.resolve=async s=>{if(this.isInitialized(),this.logger.debug(\"Updating JSON-RPC response history record\"),this.logger.trace({type:\"method\",method:\"update\",response:s}),!this.records.has(s.id))return;const i=await this.getRecord(s.id);typeof i.response>\"u\"&&(i.response=He(s)?{error:s.error}:{result:s.result},this.records.set(i.id,i),this.persist(),this.events.emit(P.updated,i))},this.get=async(s,i)=>(this.isInitialized(),this.logger.debug(\"Getting record\"),this.logger.trace({type:\"method\",method:\"get\",topic:s,id:i}),await this.getRecord(i)),this.delete=(s,i)=>{this.isInitialized(),this.logger.debug(\"Deleting record\"),this.logger.trace({type:\"method\",method:\"delete\",id:i}),this.values.forEach(r=>{if(r.topic===s){if(typeof i<\"u\"&&r.id!==i)return;this.records.delete(r.id),this.events.emit(P.deleted,r)}}),this.persist()},this.exists=async(s,i)=>(this.isInitialized(),this.records.has(i)?(await this.getRecord(i)).topic===s:!1),this.on=(s,i)=>{this.events.on(s,i)},this.once=(s,i)=>{this.events.once(s,i)},this.off=(s,i)=>{this.events.off(s,i)},this.removeListener=(s,i)=>{this.events.removeListener(s,i)},this.logger=E(t,this.name)}get context(){return C(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+\"//\"+this.name}get size(){return this.records.size}get keys(){return Array.from(this.records.keys())}get values(){return Array.from(this.records.values())}get pending(){const e=[];return this.values.forEach(t=>{if(typeof t.response<\"u\")return;const s={topic:t.topic,request:Ge(t.request.method,t.request.params,t.id),chainId:t.chainId};return e.push(s)}),e}async setJsonRpcRecords(e){await this.core.storage.setItem(this.storageKey,e)}async getJsonRpcRecords(){return await this.core.storage.getItem(this.storageKey)}getRecord(e){this.isInitialized();const t=this.records.get(e);if(!t){const{message:s}=d(\"NO_MATCHING_KEY\",`${this.name}: ${e}`);throw new Error(s)}return t}async persist(){await this.setJsonRpcRecords(this.values),this.events.emit(P.sync)}async restore(){try{const e=await this.getJsonRpcRecords();if(typeof e>\"u\"||!e.length)return;if(this.records.size){const{message:t}=d(\"RESTORE_WILL_OVERRIDE\",this.name);throw this.logger.error(t),new Error(t)}this.cached=e,this.logger.debug(`Successfully Restored records for ${this.name}`),this.logger.trace({type:\"method\",method:\"restore\",records:this.values})}catch(e){this.logger.debug(`Failed to Restore records for ${this.name}`),this.logger.error(e)}}registerEventListeners(){this.events.on(P.created,e=>{const t=P.created;this.logger.info(`Emitting ${t}`),this.logger.debug({type:\"event\",event:t,record:e})}),this.events.on(P.updated,e=>{const t=P.updated;this.logger.info(`Emitting ${t}`),this.logger.debug({type:\"event\",event:t,record:e})}),this.events.on(P.deleted,e=>{const t=P.deleted;this.logger.info(`Emitting ${t}`),this.logger.debug({type:\"event\",event:t,record:e})}),this.core.heartbeat.on(j.pulse,()=>{this.cleanup()})}cleanup(){try{this.isInitialized();let e=!1;this.records.forEach(t=>{w(t.expiry||0)-Date.now()<=0&&(this.logger.info(`Deleting expired history log: ${t.id}`),this.records.delete(t.id),this.events.emit(P.deleted,t,!1),e=!0)}),e&&this.persist()}catch(e){this.logger.warn(e)}}isInitialized(){if(!this.initialized){const{message:e}=d(\"NOT_INITIALIZED\",this.name);throw new Error(e)}}}class hi extends Si{constructor(e,t){super(e,t),this.core=e,this.logger=t,this.expirations=new Map,this.events=new U,this.name=bt,this.version=ft,this.cached=[],this.initialized=!1,this.storagePrefix=x,this.init=async()=>{this.initialized||(this.logger.trace(\"Initialized\"),await this.restore(),this.cached.forEach(s=>this.expirations.set(s.target,s)),this.cached=[],this.registerEventListeners(),this.initialized=!0)},this.has=s=>{try{const i=this.formatTarget(s);return typeof this.getExpiration(i)<\"u\"}catch{return!1}},this.set=(s,i)=>{this.isInitialized();const r=this.formatTarget(s),n={target:r,expiry:i};this.expirations.set(r,n),this.checkExpiry(r,n),this.events.emit(S.created,{target:r,expiration:n})},this.get=s=>{this.isInitialized();const i=this.formatTarget(s);return this.getExpiration(i)},this.del=s=>{if(this.isInitialized(),this.has(s)){const i=this.formatTarget(s),r=this.getExpiration(i);this.expirations.delete(i),this.events.emit(S.deleted,{target:i,expiration:r})}},this.on=(s,i)=>{this.events.on(s,i)},this.once=(s,i)=>{this.events.once(s,i)},this.off=(s,i)=>{this.events.off(s,i)},this.removeListener=(s,i)=>{this.events.removeListener(s,i)},this.logger=E(t,this.name)}get context(){return C(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+\"//\"+this.name}get length(){return this.expirations.size}get keys(){return Array.from(this.expirations.keys())}get values(){return Array.from(this.expirations.values())}formatTarget(e){if(typeof e==\"string\")return rs(e);if(typeof e==\"number\")return ns(e);const{message:t}=d(\"UNKNOWN_TYPE\",`Target type: ${typeof e}`);throw new Error(t)}async setExpirations(e){await this.core.storage.setItem(this.storageKey,e)}async getExpirations(){return await this.core.storage.getItem(this.storageKey)}async persist(){await this.setExpirations(this.values),this.events.emit(S.sync)}async restore(){try{const e=await this.getExpirations();if(typeof e>\"u\"||!e.length)return;if(this.expirations.size){const{message:t}=d(\"RESTORE_WILL_OVERRIDE\",this.name);throw this.logger.error(t),new Error(t)}this.cached=e,this.logger.debug(`Successfully Restored expirations for ${this.name}`),this.logger.trace({type:\"method\",method:\"restore\",expirations:this.values})}catch(e){this.logger.debug(`Failed to Restore expirations for ${this.name}`),this.logger.error(e)}}getExpiration(e){const t=this.expirations.get(e);if(!t){const{message:s}=d(\"NO_MATCHING_KEY\",`${this.name}: ${e}`);throw this.logger.warn(s),new Error(s)}return t}checkExpiry(e,t){const{expiry:s}=t;w(s)-Date.now()<=0&&this.expire(e,t)}expire(e,t){this.expirations.delete(e),this.events.emit(S.expired,{target:e,expiration:t})}checkExpirations(){this.core.relayer.connected&&this.expirations.forEach((e,t)=>this.checkExpiry(t,e))}registerEventListeners(){this.core.heartbeat.on(j.pulse,()=>this.checkExpirations()),this.events.on(S.created,e=>{const t=S.created;this.logger.info(`Emitting ${t}`),this.logger.debug({type:\"event\",event:t,data:e}),this.persist()}),this.events.on(S.expired,e=>{const t=S.expired;this.logger.info(`Emitting ${t}`),this.logger.debug({type:\"event\",event:t,data:e}),this.persist()}),this.events.on(S.deleted,e=>{const t=S.deleted;this.logger.info(`Emitting ${t}`),this.logger.debug({type:\"event\",event:t,data:e}),this.persist()})}isInitialized(){if(!this.initialized){const{message:e}=d(\"NOT_INITIALIZED\",this.name);throw new Error(e)}}}class ci extends Ri{constructor(e,t,s){super(e,t,s),this.core=e,this.logger=t,this.store=s,this.name=_t,this.verifyUrlV3=vt,this.storagePrefix=x,this.version=De,this.init=async()=>{var i;this.isDevEnv||(this.publicKey=await this.store.getItem(this.storeKey),this.publicKey&&w((i=this.publicKey)==null?void 0:i.expiresAt){if(!os()||this.isDevEnv)return;const r=window.location.origin,{id:n,decryptedId:a}=i,h=`${this.verifyUrlV3}/attestation?projectId=${this.core.projectId}&origin=${r}&id=${n}&decryptedId=${a}`;try{const c=Ds(),l=this.startAbortTimer(q*5),p=await new Promise((D,m)=>{const u=()=>{window.removeEventListener(\"message\",_),c.body.removeChild(g),m(\"attestation aborted\")};this.abortController.signal.addEventListener(\"abort\",u);const g=c.createElement(\"iframe\");g.src=h,g.style.display=\"none\",g.addEventListener(\"error\",u,{signal:this.abortController.signal});const _=y=>{if(y.data&&typeof y.data==\"string\")try{const b=JSON.parse(y.data);if(b.type===\"verify_attestation\"){if(Se(b.attestation).payload.id!==n)return;clearInterval(l),c.body.removeChild(g),this.abortController.signal.removeEventListener(\"abort\",u),window.removeEventListener(\"message\",_),D(b.attestation===null?\"\":b.attestation)}}catch(b){this.logger.warn(b)}};c.body.appendChild(g),window.addEventListener(\"message\",_,{signal:this.abortController.signal})});return this.logger.debug(\"jwt attestation\",p),p}catch(c){this.logger.warn(c)}return\"\"},this.resolve=async i=>{if(this.isDevEnv)return\"\";const{attestationId:r,hash:n,encryptedId:a}=i;if(r===\"\"){this.logger.debug(\"resolve: attestationId is empty, skipping\");return}if(r){if(Se(r).payload.id!==a)return;const c=await this.isValidJwtAttestation(r);if(c){if(!c.isVerified){this.logger.warn(\"resolve: jwt attestation: origin url not verified\");return}return c}}if(!n)return;const h=this.getVerifyUrl(i?.verifyUrl);return this.fetchAttestation(n,h)},this.fetchAttestation=async(i,r)=>{this.logger.debug(`resolving attestation: ${i} from url: ${r}`);const n=this.startAbortTimer(q*5),a=await fetch(`${r}/attestation/${i}?v2Supported=true`,{signal:this.abortController.signal});return clearTimeout(n),a.status===200?await a.json():void 0},this.getVerifyUrl=i=>{let r=i||J;return wt.includes(r)||(this.logger.info(`verify url: ${r}, not included in trusted list, assigning default: ${J}`),r=J),r},this.fetchPublicKey=async()=>{try{this.logger.debug(`fetching public key from: ${this.verifyUrlV3}`);const i=this.startAbortTimer(Te),r=await fetch(`${this.verifyUrlV3}/public-key`,{signal:this.abortController.signal});return clearTimeout(i),await r.json()}catch(i){this.logger.warn(i)}},this.persistPublicKey=async i=>{this.logger.debug(\"persisting public key to local storage\",i),await this.store.setItem(this.storeKey,i),this.publicKey=i},this.removePublicKey=async()=>{this.logger.debug(\"removing verify v2 public key from storage\"),await this.store.removeItem(this.storeKey),this.publicKey=void 0},this.isValidJwtAttestation=async i=>{const r=await this.getPublicKey();try{if(r)return this.validateAttestation(i,r)}catch(a){this.logger.error(a),this.logger.warn(\"error validating attestation\")}const n=await this.fetchAndPersistPublicKey();try{if(n)return this.validateAttestation(i,n)}catch(a){this.logger.error(a),this.logger.warn(\"error validating attestation\")}},this.getPublicKey=async()=>this.publicKey?this.publicKey:await this.fetchAndPersistPublicKey(),this.fetchAndPersistPublicKey=async()=>{if(this.fetchPromise)return await this.fetchPromise,this.publicKey;this.fetchPromise=new Promise(async r=>{const n=await this.fetchPublicKey();n&&(await this.persistPublicKey(n),r(n))});const i=await this.fetchPromise;return this.fetchPromise=void 0,i},this.validateAttestation=(i,r)=>{const n=as(i,r.publicKey),a={hasExpired:w(n.exp)this.abortController.abort(),w(e))}}class li extends xi{constructor(e,t){super(e,t),this.projectId=e,this.logger=t,this.context=It,this.registerDeviceToken=async s=>{const{clientId:i,token:r,notificationType:n,enableEncrypted:a=!1}=s,h=`${Tt}/${this.projectId}/clients`;await fetch(h,{method:\"POST\",headers:{\"Content-Type\":\"application/json\"},body:JSON.stringify({client_id:i,type:n,token:r,always_raw:a})})},this.logger=E(t,this.context)}}var dn=Object.defineProperty,ui=Object.getOwnPropertySymbols,pn=Object.prototype.hasOwnProperty,gn=Object.prototype.propertyIsEnumerable,di=(o,e,t)=>e in o?dn(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t,Z=(o,e)=>{for(var t in e||(e={}))pn.call(e,t)&&di(o,t,e[t]);if(ui)for(var t of ui(e))gn.call(e,t)&&di(o,t,e[t]);return o};class pi extends Oi{constructor(e,t,s=!0){super(e,t,s),this.core=e,this.logger=t,this.context=Pt,this.storagePrefix=x,this.storageVersion=Ct,this.events=new Map,this.shouldPersist=!1,this.init=async()=>{if(!Fe())try{const i={eventId:Ke(),timestamp:Date.now(),domain:this.getAppDomain(),props:{event:\"INIT\",type:\"\",properties:{client_id:await this.core.crypto.getClientId(),user_agent:hs(this.core.relayer.protocol,this.core.relayer.version,se)}}};await this.sendEvent([i])}catch(i){this.logger.warn(i)}},this.createEvent=i=>{const{event:r=\"ERROR\",type:n=\"\",properties:{topic:a,trace:h}}=i,c=Ke(),l=this.core.projectId||\"\",p=Date.now(),D=Z({eventId:c,timestamp:p,props:{event:r,type:n,properties:{topic:a,trace:h}},bundleId:l,domain:this.getAppDomain()},this.setMethods(c));return this.telemetryEnabled&&(this.events.set(c,D),this.shouldPersist=!0),D},this.getEvent=i=>{const{eventId:r,topic:n}=i;if(r)return this.events.get(r);const a=Array.from(this.events.values()).find(h=>h.props.properties.topic===n);if(a)return Z(Z({},a),this.setMethods(a.eventId))},this.deleteEvent=i=>{const{eventId:r}=i;this.events.delete(r),this.shouldPersist=!0},this.setEventListeners=()=>{this.core.heartbeat.on(j.pulse,async()=>{this.shouldPersist&&await this.persist(),this.events.forEach(i=>{Ce(Date.now())-Ce(i.timestamp)>St&&(this.events.delete(i.eventId),this.shouldPersist=!0)})})},this.setMethods=i=>({addTrace:r=>this.addTrace(i,r),setError:r=>this.setError(i,r)}),this.addTrace=(i,r)=>{const n=this.events.get(i);n&&(n.props.properties.trace.push(r),this.events.set(i,n),this.shouldPersist=!0)},this.setError=(i,r)=>{const n=this.events.get(i);n&&(n.props.type=r,n.timestamp=Date.now(),this.events.set(i,n),this.shouldPersist=!0)},this.persist=async()=>{await this.core.storage.setItem(this.storageKey,Array.from(this.events.values())),this.shouldPersist=!1},this.restore=async()=>{try{const i=await this.core.storage.getItem(this.storageKey)||[];if(!i.length)return;i.forEach(r=>{this.events.set(r.eventId,Z(Z({},r),this.setMethods(r.eventId)))})}catch(i){this.logger.warn(i)}},this.submit=async()=>{if(!this.telemetryEnabled||this.events.size===0)return;const i=[];for(const[r,n]of this.events)n.props.type&&i.push(n);if(i.length!==0)try{if((await this.sendEvent(i)).ok)for(const r of i)this.events.delete(r.eventId),this.shouldPersist=!0}catch(r){this.logger.warn(r)}},this.sendEvent=async i=>{const r=this.getAppDomain()?\"\":\"&sp=desktop\";return await fetch(`${Rt}?projectId=${this.core.projectId}&st=events_sdk&sv=js-${se}${r}`,{method:\"POST\",body:JSON.stringify(i)})},this.getAppDomain=()=>cs().url,this.logger=E(t,this.context),this.telemetryEnabled=s,s?this.restore().then(async()=>{await this.submit(),this.setEventListeners()}):this.persist()}get storageKey(){return this.storagePrefix+this.storageVersion+this.core.customStoragePrefix+\"//\"+this.context}}var yn=Object.defineProperty,gi=Object.getOwnPropertySymbols,Dn=Object.prototype.hasOwnProperty,mn=Object.prototype.propertyIsEnumerable,yi=(o,e,t)=>e in o?yn(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t,Di=(o,e)=>{for(var t in e||(e={}))Dn.call(e,t)&&yi(o,t,e[t]);if(gi)for(var t of gi(e))mn.call(e,t)&&yi(o,t,e[t]);return o};class ne extends Ai{constructor(e){var t;super(e),this.protocol=ye,this.version=De,this.name=ie,this.events=new U,this.initialized=!1,this.on=(n,a)=>this.events.on(n,a),this.once=(n,a)=>this.events.once(n,a),this.off=(n,a)=>this.events.off(n,a),this.removeListener=(n,a)=>this.events.removeListener(n,a),this.dispatchEnvelope=({topic:n,message:a,sessionExists:h})=>{if(!n||!a)return;const c={topic:n,message:a,publishedAt:Date.now(),transportType:M.link_mode};this.relayer.onLinkMessageEvent(c,{sessionExists:h})},this.projectId=e?.projectId,this.relayUrl=e?.relayUrl||be,this.customStoragePrefix=e!=null&&e.customStoragePrefix?`:${e.customStoragePrefix}`:\"\";const s=Ie({level:typeof e?.logger==\"string\"&&e.logger?e.logger:Ye.logger}),{logger:i,chunkLoggerController:r}=Ei({opts:s,maxSizeInBytes:e?.maxLogBlobSizeInBytes,loggerOverride:e?.logger});this.logChunkController=r,(t=this.logChunkController)!=null&&t.downloadLogsBlobInBrowser&&(window.downloadLogsBlobInBrowser=async()=>{var n,a;(n=this.logChunkController)!=null&&n.downloadLogsBlobInBrowser&&((a=this.logChunkController)==null||a.downloadLogsBlobInBrowser({clientId:await this.crypto.getClientId()}))}),this.logger=E(i,this.name),this.heartbeat=new bi,this.crypto=new Ht(this,this.logger,e?.keychain),this.history=new ai(this,this.logger),this.expirer=new hi(this,this.logger),this.storage=e!=null&&e.storage?e.storage:new fi(Di(Di({},Je),e?.storageOptions)),this.relayer=new ti({core:this,logger:this.logger,relayUrl:this.relayUrl,projectId:this.projectId}),this.pairing=new oi(this,this.logger),this.verify=new ci(this,this.logger,this.storage),this.echoClient=new li(this.projectId||\"\",this.logger),this.linkModeSupportedApps=[],this.eventClient=new pi(this,this.logger,e?.telemetryEnabled)}static async init(e){const t=new ne(e);await t.initialize();const s=await t.crypto.getClientId();return await t.storage.setItem(lt,s),t}get context(){return C(this.logger)}async start(){this.initialized||await this.initialize()}async getLogsBlob(){var e;return(e=this.logChunkController)==null?void 0:e.logsToBlob({clientId:await this.crypto.getClientId()})}async addLinkModeSupportedApp(e){this.linkModeSupportedApps.includes(e)||(this.linkModeSupportedApps.push(e),await this.storage.setItem(fe,this.linkModeSupportedApps))}async initialize(){this.logger.trace(\"Initialized\");try{await this.crypto.init(),await this.history.init(),await this.expirer.init(),await this.relayer.init(),await this.heartbeat.init(),await this.pairing.init(),this.eventClient.init(),this.linkModeSupportedApps=await this.storage.getItem(fe)||[],this.initialized=!0,this.logger.info(\"Core Initialization Success\")}catch(e){throw this.logger.warn(`Core Initialization Failure at epoch ${Date.now()}`,e),this.logger.error(e.message),e}}}const bn=ne;export{ie as CORE_CONTEXT,Ye as CORE_DEFAULT,ye as CORE_PROTOCOL,Je as CORE_STORAGE_OPTIONS,x as CORE_STORAGE_PREFIX,De as CORE_VERSION,me as CRYPTO_CLIENT_SEED,Xe as CRYPTO_CONTEXT,We as CRYPTO_JWT_TTL,bn as Core,Ht as Crypto,It as ECHO_CONTEXT,Tt as ECHO_URL,Rt as EVENTS_CLIENT_API_URL,St as EVENTS_STORAGE_CLEANUP_INTERVAL,Pt as EVENTS_STORAGE_CONTEXT,Ct as EVENTS_STORAGE_VERSION,Ps as EVENT_CLIENT_AUTHENTICATE_ERRORS,Cs as EVENT_CLIENT_AUTHENTICATE_TRACES,ws as EVENT_CLIENT_CONTEXT,$ as EVENT_CLIENT_PAIRING_ERRORS,z as EVENT_CLIENT_PAIRING_TRACES,Ts as EVENT_CLIENT_SESSION_ERRORS,Is as EVENT_CLIENT_SESSION_TRACES,bt as EXPIRER_CONTEXT,Es as EXPIRER_DEFAULT_TTL,S as EXPIRER_EVENTS,ft as EXPIRER_STORAGE_VERSION,li as EchoClient,pi as EventClient,hi as Expirer,Dt as HISTORY_CONTEXT,P as HISTORY_EVENTS,mt as HISTORY_STORAGE_VERSION,ai as JsonRpcHistory,Ze as KEYCHAIN_CONTEXT,Qe as KEYCHAIN_STORAGE_VERSION,Gt as KeyChain,et as MESSAGES_CONTEXT,tt as MESSAGES_STORAGE_VERSION,Yt as MessageTracker,gt as PAIRING_CONTEXT,_s as PAIRING_DEFAULT_TTL,V as PAIRING_EVENTS,B as PAIRING_RPC_OPTS,yt as PAIRING_STORAGE_VERSION,pt as PENDING_SUB_RESOLUTION_TIMEOUT,st as PUBLISHER_CONTEXT,it as PUBLISHER_DEFAULT_TTL,oi as Pairing,ot as RELAYER_CONTEXT,nt as RELAYER_DEFAULT_LOGGER,rt as RELAYER_DEFAULT_PROTOCOL,be as RELAYER_DEFAULT_RELAY_URL,v as RELAYER_EVENTS,I as RELAYER_PROVIDER_EVENTS,ht as RELAYER_RECONNECT_TIMEOUT,se as RELAYER_SDK_VERSION,ms as RELAYER_STORAGE_OPTIONS,at as RELAYER_SUBSCRIBER_SUFFIX,bs as RELAYER_TRANSPORT_CUTOFF,ti as Relayer,ct as STORE_STORAGE_VERSION,ut as SUBSCRIBER_CONTEXT,fs as SUBSCRIBER_DEFAULT_TTL,O as SUBSCRIBER_EVENTS,dt as SUBSCRIBER_STORAGE_VERSION,ni as Store,Wt as Subscriber,M as TRANSPORT_TYPES,wt as TRUSTED_VERIFY_URLS,_t as VERIFY_CONTEXT,J as VERIFY_SERVER,vt as VERIFY_SERVER_V3,ci as Verify,lt as WALLETCONNECT_CLIENT_ID,fe as WALLETCONNECT_LINK_MODE_APPS,ne as default};\n//# sourceMappingURL=index.es.js.map\n","import{RELAYER_DEFAULT_PROTOCOL as Et,TRANSPORT_TYPES as f,EVENT_CLIENT_SESSION_TRACES as C,EVENT_CLIENT_SESSION_ERRORS as F,EVENT_CLIENT_AUTHENTICATE_TRACES as Q,EVENT_CLIENT_AUTHENTICATE_ERRORS as se,EVENT_CLIENT_PAIRING_ERRORS as Rt,EVENT_CLIENT_PAIRING_TRACES as St,RELAYER_EVENTS as Ue,VERIFY_SERVER as It,EXPIRER_EVENTS as ft,PAIRING_EVENTS as Ge,Store as H,Core as vt}from\"@walletconnect/core\";import{pino as qt,getDefaultLoggerOptions as Tt,generateChildLogger as Nt,getLoggerContext as Pt}from\"@walletconnect/logger\";import{IEngine as Ot,ISignClient as At}from\"@walletconnect/types\";import{getInternalError as u,calcExpiry as A,createDelayedPromise as Y,engineEvent as g,getSdkError as P,getDeepLink as bt,handleDeeplinkRedirect as Ct,isSessionCompatible as Lt,hashKey as Te,parseChainId as Ne,createEncodedRecap as xt,getRecapFromResources as Pe,mergeEncodedRecaps as Dt,TYPE_2 as Vt,BASE64URL as ie,getLinkModeURL as he,validateSignedCacao as je,getNamespacedDidChainId as Fe,getDidAddress as Qe,getMethodsFromRecap as ze,getChainsFromRecap as He,buildNamespacesFromAuth as Ye,formatMessage as Mt,BASE64 as de,hashMessage as X,isExpired as J,MemoryStore as re,isValidParams as L,isUndefined as ne,isValidRelays as kt,isValidObject as Xe,isValidRequiredNamespaces as $t,isValidNamespaces as Oe,isConformingNamespaces as Je,isValidString as k,isValidErrorReason as Kt,isValidRelay as Ut,isValidController as Gt,isValidNamespacesChainId as Be,isValidRequest as jt,isValidNamespacesRequest as Ft,isValidRequestExpiry as Qt,isValidResponse as zt,isValidEvent as Ht,isValidNamespacesEvent as Yt,getSearchParamFromURL as We,isTestRun as Xt,isReactNative as Jt,parseExpirerTarget as Bt,isValidId as Wt,TYPE_1 as Ae,getAppMetadata as Zt}from\"@walletconnect/utils\";import es,{EventEmitter as ts}from\"events\";import{THIRTY_DAYS as ss,SEVEN_DAYS as Ze,FIVE_MINUTES as b,ONE_DAY as $,ONE_HOUR as et,ONE_SECOND as is,toMiliseconds as tt}from\"@walletconnect/time\";import{payloadId as B,getBigIntRpcId as ue,isJsonRpcResult as K,isJsonRpcError as U,formatJsonRpcRequest as ge,formatJsonRpcResult as rs,formatJsonRpcError as ns,isJsonRpcRequest as os,isJsonRpcResponse as as}from\"@walletconnect/jsonrpc-utils\";const be=\"wc\",Ce=2,Le=\"client\",ye=`${be}@${Ce}:${Le}:`,we={name:Le,logger:\"error\",controller:!1,relayUrl:\"wss://relay.walletconnect.org\"},cs={session_proposal:\"session_proposal\",session_update:\"session_update\",session_extend:\"session_extend\",session_ping:\"session_ping\",session_delete:\"session_delete\",session_expire:\"session_expire\",session_request:\"session_request\",session_request_sent:\"session_request_sent\",session_event:\"session_event\",proposal_expire:\"proposal_expire\",session_authenticate:\"session_authenticate\",session_request_expire:\"session_request_expire\"},ls={database:\":memory:\"},xe=\"WALLETCONNECT_DEEPLINK_CHOICE\",ps={created:\"history_created\",updated:\"history_updated\",deleted:\"history_deleted\",sync:\"history_sync\"},hs=\"history\",ds=\"0.3\",st=\"proposal\",us=ss,it=\"Proposal expired\",rt=\"session\",z=Ze,nt=\"engine\",v={wc_sessionPropose:{req:{ttl:b,prompt:!0,tag:1100},res:{ttl:b,prompt:!1,tag:1101},reject:{ttl:b,prompt:!1,tag:1120},autoReject:{ttl:b,prompt:!1,tag:1121}},wc_sessionSettle:{req:{ttl:b,prompt:!1,tag:1102},res:{ttl:b,prompt:!1,tag:1103}},wc_sessionUpdate:{req:{ttl:$,prompt:!1,tag:1104},res:{ttl:$,prompt:!1,tag:1105}},wc_sessionExtend:{req:{ttl:$,prompt:!1,tag:1106},res:{ttl:$,prompt:!1,tag:1107}},wc_sessionRequest:{req:{ttl:b,prompt:!0,tag:1108},res:{ttl:b,prompt:!1,tag:1109}},wc_sessionEvent:{req:{ttl:b,prompt:!0,tag:1110},res:{ttl:b,prompt:!1,tag:1111}},wc_sessionDelete:{req:{ttl:$,prompt:!1,tag:1112},res:{ttl:$,prompt:!1,tag:1113}},wc_sessionPing:{req:{ttl:$,prompt:!1,tag:1114},res:{ttl:$,prompt:!1,tag:1115}},wc_sessionAuthenticate:{req:{ttl:et,prompt:!0,tag:1116},res:{ttl:et,prompt:!1,tag:1117},reject:{ttl:b,prompt:!1,tag:1118},autoReject:{ttl:b,prompt:!1,tag:1119}}},me={min:b,max:Ze},x={idle:\"IDLE\",active:\"ACTIVE\"},ot=\"request\",at=[\"wc_sessionPropose\",\"wc_sessionRequest\",\"wc_authRequest\",\"wc_sessionAuthenticate\"],ct=\"wc\",gs=1.5,lt=\"auth\",pt=\"authKeys\",ht=\"pairingTopics\",dt=\"requests\",oe=`${ct}@${1.5}:${lt}:`,ae=`${oe}:PUB_KEY`;var ys=Object.defineProperty,ws=Object.defineProperties,ms=Object.getOwnPropertyDescriptors,ut=Object.getOwnPropertySymbols,_s=Object.prototype.hasOwnProperty,Es=Object.prototype.propertyIsEnumerable,gt=(q,o,e)=>o in q?ys(q,o,{enumerable:!0,configurable:!0,writable:!0,value:e}):q[o]=e,I=(q,o)=>{for(var e in o||(o={}))_s.call(o,e)&>(q,e,o[e]);if(ut)for(var e of ut(o))Es.call(o,e)&>(q,e,o[e]);return q},D=(q,o)=>ws(q,ms(o));class Rs extends Ot{constructor(o){super(o),this.name=nt,this.events=new es,this.initialized=!1,this.requestQueue={state:x.idle,queue:[]},this.sessionRequestQueue={state:x.idle,queue:[]},this.requestQueueDelay=is,this.expectedPairingMethodMap=new Map,this.recentlyDeletedMap=new Map,this.recentlyDeletedLimit=200,this.relayMessageCache=[],this.init=async()=>{this.initialized||(await this.cleanup(),this.registerRelayerEvents(),this.registerExpirerEvents(),this.registerPairingEvents(),await this.registerLinkModeListeners(),this.client.core.pairing.register({methods:Object.keys(v)}),this.initialized=!0,setTimeout(()=>{this.sessionRequestQueue.queue=this.getPendingSessionRequests(),this.processSessionRequestQueue()},tt(this.requestQueueDelay)))},this.connect=async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();const t=D(I({},e),{requiredNamespaces:e.requiredNamespaces||{},optionalNamespaces:e.optionalNamespaces||{}});await this.isValidConnect(t);const{pairingTopic:s,requiredNamespaces:i,optionalNamespaces:r,sessionProperties:n,relays:a}=t;let c=s,h,p=!1;try{c&&(p=this.client.core.pairing.pairings.get(c).active)}catch(E){throw this.client.logger.error(`connect() -> pairing.get(${c}) failed`),E}if(!c||!p){const{topic:E,uri:S}=await this.client.core.pairing.create();c=E,h=S}if(!c){const{message:E}=u(\"NO_MATCHING_KEY\",`connect() pairing topic: ${c}`);throw new Error(E)}const d=await this.client.core.crypto.generateKeyPair(),l=v.wc_sessionPropose.req.ttl||b,w=A(l),m=I({requiredNamespaces:i,optionalNamespaces:r,relays:a??[{protocol:Et}],proposer:{publicKey:d,metadata:this.client.metadata},expiryTimestamp:w,pairingTopic:c},n&&{sessionProperties:n}),{reject:y,resolve:_,done:R}=Y(l,it);this.events.once(g(\"session_connect\"),async({error:E,session:S})=>{if(E)y(E);else if(S){S.self.publicKey=d;const M=D(I({},S),{pairingTopic:m.pairingTopic,requiredNamespaces:m.requiredNamespaces,optionalNamespaces:m.optionalNamespaces,transportType:f.relay});await this.client.session.set(S.topic,M),await this.setExpiry(S.topic,S.expiry),c&&await this.client.core.pairing.updateMetadata({topic:c,metadata:S.peer.metadata}),this.cleanupDuplicatePairings(M),_(M)}});const V=await this.sendRequest({topic:c,method:\"wc_sessionPropose\",params:m,throwOnFailedPublish:!0});return await this.setProposal(V,I({id:V},m)),{uri:h,approval:R}},this.pair=async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{return await this.client.core.pairing.pair(e)}catch(t){throw this.client.logger.error(\"pair() failed\"),t}},this.approve=async e=>{var t,s,i;const r=this.client.core.eventClient.createEvent({properties:{topic:(t=e?.id)==null?void 0:t.toString(),trace:[C.session_approve_started]}});try{this.isInitialized(),await this.confirmOnlineStateOrThrow()}catch(N){throw r.setError(F.no_internet_connection),N}try{await this.isValidProposalId(e?.id)}catch(N){throw this.client.logger.error(`approve() -> proposal.get(${e?.id}) failed`),r.setError(F.proposal_not_found),N}try{await this.isValidApprove(e)}catch(N){throw this.client.logger.error(\"approve() -> isValidApprove() failed\"),r.setError(F.session_approve_namespace_validation_failure),N}const{id:n,relayProtocol:a,namespaces:c,sessionProperties:h,sessionConfig:p}=e,d=this.client.proposal.get(n);this.client.core.eventClient.deleteEvent({eventId:r.eventId});const{pairingTopic:l,proposer:w,requiredNamespaces:m,optionalNamespaces:y}=d;let _=(s=this.client.core.eventClient)==null?void 0:s.getEvent({topic:l});_||(_=(i=this.client.core.eventClient)==null?void 0:i.createEvent({type:C.session_approve_started,properties:{topic:l,trace:[C.session_approve_started,C.session_namespaces_validation_success]}}));const R=await this.client.core.crypto.generateKeyPair(),V=w.publicKey,E=await this.client.core.crypto.generateSharedKey(R,V),S=I(I({relay:{protocol:a??\"irn\"},namespaces:c,controller:{publicKey:R,metadata:this.client.metadata},expiry:A(z)},h&&{sessionProperties:h}),p&&{sessionConfig:p}),M=f.relay;_.addTrace(C.subscribing_session_topic);try{await this.client.core.relayer.subscribe(E,{transportType:M})}catch(N){throw _.setError(F.subscribe_session_topic_failure),N}_.addTrace(C.subscribe_session_topic_success);const W=D(I({},S),{topic:E,requiredNamespaces:m,optionalNamespaces:y,pairingTopic:l,acknowledged:!1,self:S.controller,peer:{publicKey:w.publicKey,metadata:w.metadata},controller:R,transportType:f.relay});await this.client.session.set(E,W),_.addTrace(C.store_session);try{_.addTrace(C.publishing_session_settle),await this.sendRequest({topic:E,method:\"wc_sessionSettle\",params:S,throwOnFailedPublish:!0}).catch(N=>{throw _?.setError(F.session_settle_publish_failure),N}),_.addTrace(C.session_settle_publish_success),_.addTrace(C.publishing_session_approve),await this.sendResult({id:n,topic:l,result:{relay:{protocol:a??\"irn\"},responderPublicKey:R},throwOnFailedPublish:!0}).catch(N=>{throw _?.setError(F.session_approve_publish_failure),N}),_.addTrace(C.session_approve_publish_success)}catch(N){throw this.client.logger.error(N),this.client.session.delete(E,P(\"USER_DISCONNECTED\")),await this.client.core.relayer.unsubscribe(E),N}return this.client.core.eventClient.deleteEvent({eventId:_.eventId}),await this.client.core.pairing.updateMetadata({topic:l,metadata:w.metadata}),await this.client.proposal.delete(n,P(\"USER_DISCONNECTED\")),await this.client.core.pairing.activate({topic:l}),await this.setExpiry(E,A(z)),{topic:E,acknowledged:()=>Promise.resolve(this.client.session.get(E))}},this.reject=async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidReject(e)}catch(r){throw this.client.logger.error(\"reject() -> isValidReject() failed\"),r}const{id:t,reason:s}=e;let i;try{i=this.client.proposal.get(t).pairingTopic}catch(r){throw this.client.logger.error(`reject() -> proposal.get(${t}) failed`),r}i&&(await this.sendError({id:t,topic:i,error:s,rpcOpts:v.wc_sessionPropose.reject}),await this.client.proposal.delete(t,P(\"USER_DISCONNECTED\")))},this.update=async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidUpdate(e)}catch(p){throw this.client.logger.error(\"update() -> isValidUpdate() failed\"),p}const{topic:t,namespaces:s}=e,{done:i,resolve:r,reject:n}=Y(),a=B(),c=ue().toString(),h=this.client.session.get(t).namespaces;return this.events.once(g(\"session_update\",a),({error:p})=>{p?n(p):r()}),await this.client.session.update(t,{namespaces:s}),await this.sendRequest({topic:t,method:\"wc_sessionUpdate\",params:{namespaces:s},throwOnFailedPublish:!0,clientRpcId:a,relayRpcId:c}).catch(p=>{this.client.logger.error(p),this.client.session.update(t,{namespaces:h}),n(p)}),{acknowledged:i}},this.extend=async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidExtend(e)}catch(a){throw this.client.logger.error(\"extend() -> isValidExtend() failed\"),a}const{topic:t}=e,s=B(),{done:i,resolve:r,reject:n}=Y();return this.events.once(g(\"session_extend\",s),({error:a})=>{a?n(a):r()}),await this.setExpiry(t,A(z)),this.sendRequest({topic:t,method:\"wc_sessionExtend\",params:{},clientRpcId:s,throwOnFailedPublish:!0}).catch(a=>{n(a)}),{acknowledged:i}},this.request=async e=>{this.isInitialized();try{await this.isValidRequest(e)}catch(w){throw this.client.logger.error(\"request() -> isValidRequest() failed\"),w}const{chainId:t,request:s,topic:i,expiry:r=v.wc_sessionRequest.req.ttl}=e,n=this.client.session.get(i);n?.transportType===f.relay&&await this.confirmOnlineStateOrThrow();const a=B(),c=ue().toString(),{done:h,resolve:p,reject:d}=Y(r,\"Request expired. Please try again.\");this.events.once(g(\"session_request\",a),({error:w,result:m})=>{w?d(w):p(m)});const l=this.getAppLinkIfEnabled(n.peer.metadata,n.transportType);return l?(await this.sendRequest({clientRpcId:a,relayRpcId:c,topic:i,method:\"wc_sessionRequest\",params:{request:D(I({},s),{expiryTimestamp:A(r)}),chainId:t},expiry:r,throwOnFailedPublish:!0,appLink:l}).catch(w=>d(w)),this.client.events.emit(\"session_request_sent\",{topic:i,request:s,chainId:t,id:a}),await h()):await Promise.all([new Promise(async w=>{await this.sendRequest({clientRpcId:a,relayRpcId:c,topic:i,method:\"wc_sessionRequest\",params:{request:D(I({},s),{expiryTimestamp:A(r)}),chainId:t},expiry:r,throwOnFailedPublish:!0}).catch(m=>d(m)),this.client.events.emit(\"session_request_sent\",{topic:i,request:s,chainId:t,id:a}),w()}),new Promise(async w=>{var m;if(!((m=n.sessionConfig)!=null&&m.disableDeepLink)){const y=await bt(this.client.core.storage,xe);await Ct({id:a,topic:i,wcDeepLink:y})}w()}),h()]).then(w=>w[2])},this.respond=async e=>{this.isInitialized(),await this.isValidRespond(e);const{topic:t,response:s}=e,{id:i}=s,r=this.client.session.get(t);r.transportType===f.relay&&await this.confirmOnlineStateOrThrow();const n=this.getAppLinkIfEnabled(r.peer.metadata,r.transportType);K(s)?await this.sendResult({id:i,topic:t,result:s.result,throwOnFailedPublish:!0,appLink:n}):U(s)&&await this.sendError({id:i,topic:t,error:s.error,appLink:n}),this.cleanupAfterResponse(e)},this.ping=async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidPing(e)}catch(s){throw this.client.logger.error(\"ping() -> isValidPing() failed\"),s}const{topic:t}=e;if(this.client.session.keys.includes(t)){const s=B(),i=ue().toString(),{done:r,resolve:n,reject:a}=Y();this.events.once(g(\"session_ping\",s),({error:c})=>{c?a(c):n()}),await Promise.all([this.sendRequest({topic:t,method:\"wc_sessionPing\",params:{},throwOnFailedPublish:!0,clientRpcId:s,relayRpcId:i}),r()])}else this.client.core.pairing.pairings.keys.includes(t)&&await this.client.core.pairing.ping({topic:t})},this.emit=async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow(),await this.isValidEmit(e);const{topic:t,event:s,chainId:i}=e,r=ue().toString();await this.sendRequest({topic:t,method:\"wc_sessionEvent\",params:{event:s,chainId:i},throwOnFailedPublish:!0,relayRpcId:r})},this.disconnect=async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow(),await this.isValidDisconnect(e);const{topic:t}=e;if(this.client.session.keys.includes(t))await this.sendRequest({topic:t,method:\"wc_sessionDelete\",params:P(\"USER_DISCONNECTED\"),throwOnFailedPublish:!0}),await this.deleteSession({topic:t,emitEvent:!1});else if(this.client.core.pairing.pairings.keys.includes(t))await this.client.core.pairing.disconnect({topic:t});else{const{message:s}=u(\"MISMATCHED_TOPIC\",`Session or pairing topic not found: ${t}`);throw new Error(s)}},this.find=e=>(this.isInitialized(),this.client.session.getAll().filter(t=>Lt(t,e))),this.getPendingSessionRequests=()=>this.client.pendingRequest.getAll(),this.authenticate=async(e,t)=>{var s;this.isInitialized(),this.isValidAuthenticate(e);const i=t&&this.client.core.linkModeSupportedApps.includes(t)&&((s=this.client.metadata.redirect)==null?void 0:s.linkMode),r=i?f.link_mode:f.relay;r===f.relay&&await this.confirmOnlineStateOrThrow();const{chains:n,statement:a=\"\",uri:c,domain:h,nonce:p,type:d,exp:l,nbf:w,methods:m=[],expiry:y}=e,_=[...e.resources||[]],{topic:R,uri:V}=await this.client.core.pairing.create({methods:[\"wc_sessionAuthenticate\"],transportType:r});this.client.logger.info({message:\"Generated new pairing\",pairing:{topic:R,uri:V}});const E=await this.client.core.crypto.generateKeyPair(),S=Te(E);if(await Promise.all([this.client.auth.authKeys.set(ae,{responseTopic:S,publicKey:E}),this.client.auth.pairingTopics.set(S,{topic:S,pairingTopic:R})]),await this.client.core.relayer.subscribe(S,{transportType:r}),this.client.logger.info(`sending request to new pairing topic: ${R}`),m.length>0){const{namespace:O}=Ne(n[0]);let T=xt(O,\"request\",m);Pe(_)&&(T=Dt(T,_.pop())),_.push(T)}const M=y&&y>v.wc_sessionAuthenticate.req.ttl?y:v.wc_sessionAuthenticate.req.ttl,W={authPayload:{type:d??\"caip122\",chains:n,statement:a,aud:c,domain:h,version:\"1\",nonce:p,iat:new Date().toISOString(),exp:l,nbf:w,resources:_},requester:{publicKey:E,metadata:this.client.metadata},expiryTimestamp:A(M)},N={eip155:{chains:n,methods:[...new Set([\"personal_sign\",...m])],events:[\"chainChanged\",\"accountsChanged\"]}},De={requiredNamespaces:{},optionalNamespaces:N,relays:[{protocol:\"irn\"}],pairingTopic:R,proposer:{publicKey:E,metadata:this.client.metadata},expiryTimestamp:A(v.wc_sessionPropose.req.ttl)},{done:wt,resolve:Ve,reject:Ee}=Y(M,\"Request expired\"),ce=async({error:O,session:T})=>{if(this.events.off(g(\"session_request\",G),Re),O)Ee(O);else if(T){T.self.publicKey=E,await this.client.session.set(T.topic,T),await this.setExpiry(T.topic,T.expiry),R&&await this.client.core.pairing.updateMetadata({topic:R,metadata:T.peer.metadata});const le=this.client.session.get(T.topic);await this.deleteProposal(Z),Ve({session:le})}},Re=async O=>{var T,le,Me;if(await this.deletePendingAuthRequest(G,{message:\"fulfilled\",code:0}),O.error){const te=P(\"WC_METHOD_UNSUPPORTED\",\"wc_sessionAuthenticate\");return O.error.code===te.code?void 0:(this.events.off(g(\"session_connect\"),ce),Ee(O.error.message))}await this.deleteProposal(Z),this.events.off(g(\"session_connect\"),ce);const{cacaos:ke,responder:j}=O.result,Ie=[],$e=[];for(const te of ke){await je({cacao:te,projectId:this.client.core.projectId})||(this.client.logger.error(te,\"Signature verification failed\"),Ee(P(\"SESSION_SETTLEMENT_FAILED\",\"Signature verification failed\")));const{p:fe}=te,ve=Pe(fe.resources),Ke=[Fe(fe.iss)],mt=Qe(fe.iss);if(ve){const qe=ze(ve),_t=He(ve);Ie.push(...qe),Ke.push(..._t)}for(const qe of Ke)$e.push(`${qe}:${mt}`)}const ee=await this.client.core.crypto.generateSharedKey(E,j.publicKey);let pe;Ie.length>0&&(pe={topic:ee,acknowledged:!0,self:{publicKey:E,metadata:this.client.metadata},peer:j,controller:j.publicKey,expiry:A(z),requiredNamespaces:{},optionalNamespaces:{},relay:{protocol:\"irn\"},pairingTopic:R,namespaces:Ye([...new Set(Ie)],[...new Set($e)]),transportType:r},await this.client.core.relayer.subscribe(ee,{transportType:r}),await this.client.session.set(ee,pe),R&&await this.client.core.pairing.updateMetadata({topic:R,metadata:j.metadata}),pe=this.client.session.get(ee)),(T=this.client.metadata.redirect)!=null&&T.linkMode&&(le=j.metadata.redirect)!=null&&le.linkMode&&(Me=j.metadata.redirect)!=null&&Me.universal&&t&&(this.client.core.addLinkModeSupportedApp(j.metadata.redirect.universal),this.client.session.update(ee,{transportType:f.link_mode})),Ve({auths:ke,session:pe})},G=B(),Z=B();this.events.once(g(\"session_connect\"),ce),this.events.once(g(\"session_request\",G),Re);let Se;try{if(i){const O=ge(\"wc_sessionAuthenticate\",W,G);this.client.core.history.set(R,O);const T=await this.client.core.crypto.encode(\"\",O,{type:Vt,encoding:ie});Se=he(t,R,T)}else await Promise.all([this.sendRequest({topic:R,method:\"wc_sessionAuthenticate\",params:W,expiry:e.expiry,throwOnFailedPublish:!0,clientRpcId:G}),this.sendRequest({topic:R,method:\"wc_sessionPropose\",params:De,expiry:v.wc_sessionPropose.req.ttl,throwOnFailedPublish:!0,clientRpcId:Z})])}catch(O){throw this.events.off(g(\"session_connect\"),ce),this.events.off(g(\"session_request\",G),Re),O}return await this.setProposal(Z,I({id:Z},De)),await this.setAuthRequest(G,{request:D(I({},W),{verifyContext:{}}),pairingTopic:R,transportType:r}),{uri:Se??V,response:wt}},this.approveSessionAuthenticate=async e=>{const{id:t,auths:s}=e,i=this.client.core.eventClient.createEvent({properties:{topic:t.toString(),trace:[Q.authenticated_session_approve_started]}});try{this.isInitialized()}catch(y){throw i.setError(se.no_internet_connection),y}const r=this.getPendingAuthRequest(t);if(!r)throw i.setError(se.authenticated_session_pending_request_not_found),new Error(`Could not find pending auth request with id ${t}`);const n=r.transportType||f.relay;n===f.relay&&await this.confirmOnlineStateOrThrow();const a=r.requester.publicKey,c=await this.client.core.crypto.generateKeyPair(),h=Te(a),p={type:Ae,receiverPublicKey:a,senderPublicKey:c},d=[],l=[];for(const y of s){if(!await je({cacao:y,projectId:this.client.core.projectId})){i.setError(se.invalid_cacao);const S=P(\"SESSION_SETTLEMENT_FAILED\",\"Signature verification failed\");throw await this.sendError({id:t,topic:h,error:S,encodeOpts:p}),new Error(S.message)}i.addTrace(Q.cacaos_verified);const{p:_}=y,R=Pe(_.resources),V=[Fe(_.iss)],E=Qe(_.iss);if(R){const S=ze(R),M=He(R);d.push(...S),V.push(...M)}for(const S of V)l.push(`${S}:${E}`)}const w=await this.client.core.crypto.generateSharedKey(c,a);i.addTrace(Q.create_authenticated_session_topic);let m;if(d?.length>0){m={topic:w,acknowledged:!0,self:{publicKey:c,metadata:this.client.metadata},peer:{publicKey:a,metadata:r.requester.metadata},controller:a,expiry:A(z),authentication:s,requiredNamespaces:{},optionalNamespaces:{},relay:{protocol:\"irn\"},pairingTopic:r.pairingTopic,namespaces:Ye([...new Set(d)],[...new Set(l)]),transportType:n},i.addTrace(Q.subscribing_authenticated_session_topic);try{await this.client.core.relayer.subscribe(w,{transportType:n})}catch(y){throw i.setError(se.subscribe_authenticated_session_topic_failure),y}i.addTrace(Q.subscribe_authenticated_session_topic_success),await this.client.session.set(w,m),i.addTrace(Q.store_authenticated_session),await this.client.core.pairing.updateMetadata({topic:r.pairingTopic,metadata:r.requester.metadata})}i.addTrace(Q.publishing_authenticated_session_approve);try{await this.sendResult({topic:h,id:t,result:{cacaos:s,responder:{publicKey:c,metadata:this.client.metadata}},encodeOpts:p,throwOnFailedPublish:!0,appLink:this.getAppLinkIfEnabled(r.requester.metadata,n)})}catch(y){throw i.setError(se.authenticated_session_approve_publish_failure),y}return await this.client.auth.requests.delete(t,{message:\"fulfilled\",code:0}),await this.client.core.pairing.activate({topic:r.pairingTopic}),this.client.core.eventClient.deleteEvent({eventId:i.eventId}),{session:m}},this.rejectSessionAuthenticate=async e=>{this.isInitialized();const{id:t,reason:s}=e,i=this.getPendingAuthRequest(t);if(!i)throw new Error(`Could not find pending auth request with id ${t}`);i.transportType===f.relay&&await this.confirmOnlineStateOrThrow();const r=i.requester.publicKey,n=await this.client.core.crypto.generateKeyPair(),a=Te(r),c={type:Ae,receiverPublicKey:r,senderPublicKey:n};await this.sendError({id:t,topic:a,error:s,encodeOpts:c,rpcOpts:v.wc_sessionAuthenticate.reject,appLink:this.getAppLinkIfEnabled(i.requester.metadata,i.transportType)}),await this.client.auth.requests.delete(t,{message:\"rejected\",code:0}),await this.client.proposal.delete(t,P(\"USER_DISCONNECTED\"))},this.formatAuthMessage=e=>{this.isInitialized();const{request:t,iss:s}=e;return Mt(t,s)},this.processRelayMessageCache=()=>{setTimeout(async()=>{if(this.relayMessageCache.length!==0)for(;this.relayMessageCache.length>0;)try{const e=this.relayMessageCache.shift();e&&await this.onRelayMessage(e)}catch(e){this.client.logger.error(e)}},50)},this.cleanupDuplicatePairings=async e=>{if(e.pairingTopic)try{const t=this.client.core.pairing.pairings.get(e.pairingTopic),s=this.client.core.pairing.pairings.getAll().filter(i=>{var r,n;return((r=i.peerMetadata)==null?void 0:r.url)&&((n=i.peerMetadata)==null?void 0:n.url)===e.peer.metadata.url&&i.topic&&i.topic!==t.topic});if(s.length===0)return;this.client.logger.info(`Cleaning up ${s.length} duplicate pairing(s)`),await Promise.all(s.map(i=>this.client.core.pairing.disconnect({topic:i.topic}))),this.client.logger.info(\"Duplicate pairings clean up finished\")}catch(t){this.client.logger.error(t)}},this.deleteSession=async e=>{var t;const{topic:s,expirerHasDeleted:i=!1,emitEvent:r=!0,id:n=0}=e,{self:a}=this.client.session.get(s);await this.client.core.relayer.unsubscribe(s),await this.client.session.delete(s,P(\"USER_DISCONNECTED\")),this.addToRecentlyDeleted(s,\"session\"),this.client.core.crypto.keychain.has(a.publicKey)&&await this.client.core.crypto.deleteKeyPair(a.publicKey),this.client.core.crypto.keychain.has(s)&&await this.client.core.crypto.deleteSymKey(s),i||this.client.core.expirer.del(s),this.client.core.storage.removeItem(xe).catch(c=>this.client.logger.warn(c)),this.getPendingSessionRequests().forEach(c=>{c.topic===s&&this.deletePendingSessionRequest(c.id,P(\"USER_DISCONNECTED\"))}),s===((t=this.sessionRequestQueue.queue[0])==null?void 0:t.topic)&&(this.sessionRequestQueue.state=x.idle),r&&this.client.events.emit(\"session_delete\",{id:n,topic:s})},this.deleteProposal=async(e,t)=>{if(t)try{const s=this.client.proposal.get(e),i=this.client.core.eventClient.getEvent({topic:s.pairingTopic});i?.setError(F.proposal_expired)}catch{}await Promise.all([this.client.proposal.delete(e,P(\"USER_DISCONNECTED\")),t?Promise.resolve():this.client.core.expirer.del(e)]),this.addToRecentlyDeleted(e,\"proposal\")},this.deletePendingSessionRequest=async(e,t,s=!1)=>{await Promise.all([this.client.pendingRequest.delete(e,t),s?Promise.resolve():this.client.core.expirer.del(e)]),this.addToRecentlyDeleted(e,\"request\"),this.sessionRequestQueue.queue=this.sessionRequestQueue.queue.filter(i=>i.id!==e),s&&(this.sessionRequestQueue.state=x.idle,this.client.events.emit(\"session_request_expire\",{id:e}))},this.deletePendingAuthRequest=async(e,t,s=!1)=>{await Promise.all([this.client.auth.requests.delete(e,t),s?Promise.resolve():this.client.core.expirer.del(e)])},this.setExpiry=async(e,t)=>{this.client.session.keys.includes(e)&&(this.client.core.expirer.set(e,t),await this.client.session.update(e,{expiry:t}))},this.setProposal=async(e,t)=>{this.client.core.expirer.set(e,A(v.wc_sessionPropose.req.ttl)),await this.client.proposal.set(e,t)},this.setAuthRequest=async(e,t)=>{const{request:s,pairingTopic:i,transportType:r=f.relay}=t;this.client.core.expirer.set(e,s.expiryTimestamp),await this.client.auth.requests.set(e,{authPayload:s.authPayload,requester:s.requester,expiryTimestamp:s.expiryTimestamp,id:e,pairingTopic:i,verifyContext:s.verifyContext,transportType:r})},this.setPendingSessionRequest=async e=>{const{id:t,topic:s,params:i,verifyContext:r}=e,n=i.request.expiryTimestamp||A(v.wc_sessionRequest.req.ttl);this.client.core.expirer.set(t,n),await this.client.pendingRequest.set(t,{id:t,topic:s,params:i,verifyContext:r})},this.sendRequest=async e=>{const{topic:t,method:s,params:i,expiry:r,relayRpcId:n,clientRpcId:a,throwOnFailedPublish:c,appLink:h}=e,p=ge(s,i,a);let d;const l=!!h;try{const y=l?ie:de;d=await this.client.core.crypto.encode(t,p,{encoding:y})}catch(y){throw await this.cleanup(),this.client.logger.error(`sendRequest() -> core.crypto.encode() for topic ${t} failed`),y}let w;if(at.includes(s)){const y=X(JSON.stringify(p)),_=X(d);w=await this.client.core.verify.register({id:_,decryptedId:y})}const m=v[s].req;if(m.attestation=w,r&&(m.ttl=r),n&&(m.id=n),this.client.core.history.set(t,p),l){const y=he(h,t,d);await global.Linking.openURL(y,this.client.name)}else{const y=v[s].req;r&&(y.ttl=r),n&&(y.id=n),c?(y.internal=D(I({},y.internal),{throwOnFailedPublish:!0}),await this.client.core.relayer.publish(t,d,y)):this.client.core.relayer.publish(t,d,y).catch(_=>this.client.logger.error(_))}return p.id},this.sendResult=async e=>{const{id:t,topic:s,result:i,throwOnFailedPublish:r,encodeOpts:n,appLink:a}=e,c=rs(t,i);let h;const p=a&&typeof(global==null?void 0:global.Linking)<\"u\";try{const l=p?ie:de;h=await this.client.core.crypto.encode(s,c,D(I({},n||{}),{encoding:l}))}catch(l){throw await this.cleanup(),this.client.logger.error(`sendResult() -> core.crypto.encode() for topic ${s} failed`),l}let d;try{d=await this.client.core.history.get(s,t)}catch(l){throw this.client.logger.error(`sendResult() -> history.get(${s}, ${t}) failed`),l}if(p){const l=he(a,s,h);await global.Linking.openURL(l,this.client.name)}else{const l=v[d.request.method].res;r?(l.internal=D(I({},l.internal),{throwOnFailedPublish:!0}),await this.client.core.relayer.publish(s,h,l)):this.client.core.relayer.publish(s,h,l).catch(w=>this.client.logger.error(w))}await this.client.core.history.resolve(c)},this.sendError=async e=>{const{id:t,topic:s,error:i,encodeOpts:r,rpcOpts:n,appLink:a}=e,c=ns(t,i);let h;const p=a&&typeof(global==null?void 0:global.Linking)<\"u\";try{const l=p?ie:de;h=await this.client.core.crypto.encode(s,c,D(I({},r||{}),{encoding:l}))}catch(l){throw await this.cleanup(),this.client.logger.error(`sendError() -> core.crypto.encode() for topic ${s} failed`),l}let d;try{d=await this.client.core.history.get(s,t)}catch(l){throw this.client.logger.error(`sendError() -> history.get(${s}, ${t}) failed`),l}if(p){const l=he(a,s,h);await global.Linking.openURL(l,this.client.name)}else{const l=n||v[d.request.method].res;this.client.core.relayer.publish(s,h,l)}await this.client.core.history.resolve(c)},this.cleanup=async()=>{const e=[],t=[];this.client.session.getAll().forEach(s=>{let i=!1;J(s.expiry)&&(i=!0),this.client.core.crypto.keychain.has(s.topic)||(i=!0),i&&e.push(s.topic)}),this.client.proposal.getAll().forEach(s=>{J(s.expiryTimestamp)&&t.push(s.id)}),await Promise.all([...e.map(s=>this.deleteSession({topic:s})),...t.map(s=>this.deleteProposal(s))])},this.onRelayEventRequest=async e=>{this.requestQueue.queue.push(e),await this.processRequestsQueue()},this.processRequestsQueue=async()=>{if(this.requestQueue.state===x.active){this.client.logger.info(\"Request queue already active, skipping...\");return}for(this.client.logger.info(`Request queue starting with ${this.requestQueue.queue.length} requests`);this.requestQueue.queue.length>0;){this.requestQueue.state=x.active;const e=this.requestQueue.queue.shift();if(e)try{await this.processRequest(e)}catch(t){this.client.logger.warn(t)}}this.requestQueue.state=x.idle},this.processRequest=async e=>{const{topic:t,payload:s,attestation:i,transportType:r,encryptedId:n}=e,a=s.method;if(!this.shouldIgnorePairingRequest({topic:t,requestMethod:a}))switch(a){case\"wc_sessionPropose\":return await this.onSessionProposeRequest({topic:t,payload:s,attestation:i,encryptedId:n});case\"wc_sessionSettle\":return await this.onSessionSettleRequest(t,s);case\"wc_sessionUpdate\":return await this.onSessionUpdateRequest(t,s);case\"wc_sessionExtend\":return await this.onSessionExtendRequest(t,s);case\"wc_sessionPing\":return await this.onSessionPingRequest(t,s);case\"wc_sessionDelete\":return await this.onSessionDeleteRequest(t,s);case\"wc_sessionRequest\":return await this.onSessionRequest({topic:t,payload:s,attestation:i,encryptedId:n,transportType:r});case\"wc_sessionEvent\":return await this.onSessionEventRequest(t,s);case\"wc_sessionAuthenticate\":return await this.onSessionAuthenticateRequest({topic:t,payload:s,attestation:i,encryptedId:n,transportType:r});default:return this.client.logger.info(`Unsupported request method ${a}`)}},this.onRelayEventResponse=async e=>{const{topic:t,payload:s,transportType:i}=e,r=(await this.client.core.history.get(t,s.id)).request.method;switch(r){case\"wc_sessionPropose\":return this.onSessionProposeResponse(t,s,i);case\"wc_sessionSettle\":return this.onSessionSettleResponse(t,s);case\"wc_sessionUpdate\":return this.onSessionUpdateResponse(t,s);case\"wc_sessionExtend\":return this.onSessionExtendResponse(t,s);case\"wc_sessionPing\":return this.onSessionPingResponse(t,s);case\"wc_sessionRequest\":return this.onSessionRequestResponse(t,s);case\"wc_sessionAuthenticate\":return this.onSessionAuthenticateResponse(t,s);default:return this.client.logger.info(`Unsupported response method ${r}`)}},this.onRelayEventUnknownPayload=e=>{const{topic:t}=e,{message:s}=u(\"MISSING_OR_INVALID\",`Decoded payload on topic ${t} is not identifiable as a JSON-RPC request or a response.`);throw new Error(s)},this.shouldIgnorePairingRequest=e=>{const{topic:t,requestMethod:s}=e,i=this.expectedPairingMethodMap.get(t);return!i||i.includes(s)?!1:!!(i.includes(\"wc_sessionAuthenticate\")&&this.client.events.listenerCount(\"session_authenticate\")>0)},this.onSessionProposeRequest=async e=>{const{topic:t,payload:s,attestation:i,encryptedId:r}=e,{params:n,id:a}=s;try{const c=this.client.core.eventClient.getEvent({topic:t});this.isValidConnect(I({},s.params));const h=n.expiryTimestamp||A(v.wc_sessionPropose.req.ttl),p=I({id:a,pairingTopic:t,expiryTimestamp:h},n);await this.setProposal(a,p);const d=await this.getVerifyContext({attestationId:i,hash:X(JSON.stringify(s)),encryptedId:r,metadata:p.proposer.metadata});this.client.events.listenerCount(\"session_proposal\")===0&&(console.warn(\"No listener for session_proposal event\"),c?.setError(Rt.proposal_listener_not_found)),c?.addTrace(St.emit_session_proposal),this.client.events.emit(\"session_proposal\",{id:a,params:p,verifyContext:d})}catch(c){await this.sendError({id:a,topic:t,error:c,rpcOpts:v.wc_sessionPropose.autoReject}),this.client.logger.error(c)}},this.onSessionProposeResponse=async(e,t,s)=>{const{id:i}=t;if(K(t)){const{result:r}=t;this.client.logger.trace({type:\"method\",method:\"onSessionProposeResponse\",result:r});const n=this.client.proposal.get(i);this.client.logger.trace({type:\"method\",method:\"onSessionProposeResponse\",proposal:n});const a=n.proposer.publicKey;this.client.logger.trace({type:\"method\",method:\"onSessionProposeResponse\",selfPublicKey:a});const c=r.responderPublicKey;this.client.logger.trace({type:\"method\",method:\"onSessionProposeResponse\",peerPublicKey:c});const h=await this.client.core.crypto.generateSharedKey(a,c);this.client.logger.trace({type:\"method\",method:\"onSessionProposeResponse\",sessionTopic:h});const p=await this.client.core.relayer.subscribe(h,{transportType:s});this.client.logger.trace({type:\"method\",method:\"onSessionProposeResponse\",subscriptionId:p}),await this.client.core.pairing.activate({topic:e})}else if(U(t)){await this.client.proposal.delete(i,P(\"USER_DISCONNECTED\"));const r=g(\"session_connect\");if(this.events.listenerCount(r)===0)throw new Error(`emitting ${r} without any listeners, 954`);this.events.emit(g(\"session_connect\"),{error:t.error})}},this.onSessionSettleRequest=async(e,t)=>{const{id:s,params:i}=t;try{this.isValidSessionSettleRequest(i);const{relay:r,controller:n,expiry:a,namespaces:c,sessionProperties:h,sessionConfig:p}=t.params,d=D(I(I({topic:e,relay:r,expiry:a,namespaces:c,acknowledged:!0,pairingTopic:\"\",requiredNamespaces:{},optionalNamespaces:{},controller:n.publicKey,self:{publicKey:\"\",metadata:this.client.metadata},peer:{publicKey:n.publicKey,metadata:n.metadata}},h&&{sessionProperties:h}),p&&{sessionConfig:p}),{transportType:f.relay}),l=g(\"session_connect\");if(this.events.listenerCount(l)===0)throw new Error(`emitting ${l} without any listeners 997`);this.events.emit(g(\"session_connect\"),{session:d}),await this.sendResult({id:t.id,topic:e,result:!0,throwOnFailedPublish:!0})}catch(r){await this.sendError({id:s,topic:e,error:r}),this.client.logger.error(r)}},this.onSessionSettleResponse=async(e,t)=>{const{id:s}=t;K(t)?(await this.client.session.update(e,{acknowledged:!0}),this.events.emit(g(\"session_approve\",s),{})):U(t)&&(await this.client.session.delete(e,P(\"USER_DISCONNECTED\")),this.events.emit(g(\"session_approve\",s),{error:t.error}))},this.onSessionUpdateRequest=async(e,t)=>{const{params:s,id:i}=t;try{const r=`${e}_session_update`,n=re.get(r);if(n&&this.isRequestOutOfSync(n,i)){this.client.logger.info(`Discarding out of sync request - ${i}`),this.sendError({id:i,topic:e,error:P(\"INVALID_UPDATE_REQUEST\")});return}this.isValidUpdate(I({topic:e},s));try{re.set(r,i),await this.client.session.update(e,{namespaces:s.namespaces}),await this.sendResult({id:i,topic:e,result:!0,throwOnFailedPublish:!0})}catch(a){throw re.delete(r),a}this.client.events.emit(\"session_update\",{id:i,topic:e,params:s})}catch(r){await this.sendError({id:i,topic:e,error:r}),this.client.logger.error(r)}},this.isRequestOutOfSync=(e,t)=>parseInt(t.toString().slice(0,-3))<=parseInt(e.toString().slice(0,-3)),this.onSessionUpdateResponse=(e,t)=>{const{id:s}=t,i=g(\"session_update\",s);if(this.events.listenerCount(i)===0)throw new Error(`emitting ${i} without any listeners`);K(t)?this.events.emit(g(\"session_update\",s),{}):U(t)&&this.events.emit(g(\"session_update\",s),{error:t.error})},this.onSessionExtendRequest=async(e,t)=>{const{id:s}=t;try{this.isValidExtend({topic:e}),await this.setExpiry(e,A(z)),await this.sendResult({id:s,topic:e,result:!0,throwOnFailedPublish:!0}),this.client.events.emit(\"session_extend\",{id:s,topic:e})}catch(i){await this.sendError({id:s,topic:e,error:i}),this.client.logger.error(i)}},this.onSessionExtendResponse=(e,t)=>{const{id:s}=t,i=g(\"session_extend\",s);if(this.events.listenerCount(i)===0)throw new Error(`emitting ${i} without any listeners`);K(t)?this.events.emit(g(\"session_extend\",s),{}):U(t)&&this.events.emit(g(\"session_extend\",s),{error:t.error})},this.onSessionPingRequest=async(e,t)=>{const{id:s}=t;try{this.isValidPing({topic:e}),await this.sendResult({id:s,topic:e,result:!0,throwOnFailedPublish:!0}),this.client.events.emit(\"session_ping\",{id:s,topic:e})}catch(i){await this.sendError({id:s,topic:e,error:i}),this.client.logger.error(i)}},this.onSessionPingResponse=(e,t)=>{const{id:s}=t,i=g(\"session_ping\",s);if(this.events.listenerCount(i)===0)throw new Error(`emitting ${i} without any listeners`);setTimeout(()=>{K(t)?this.events.emit(g(\"session_ping\",s),{}):U(t)&&this.events.emit(g(\"session_ping\",s),{error:t.error})},500)},this.onSessionDeleteRequest=async(e,t)=>{const{id:s}=t;try{this.isValidDisconnect({topic:e,reason:t.params}),Promise.all([new Promise(i=>{this.client.core.relayer.once(Ue.publish,async()=>{i(await this.deleteSession({topic:e,id:s}))})}),this.sendResult({id:s,topic:e,result:!0,throwOnFailedPublish:!0}),this.cleanupPendingSentRequestsForTopic({topic:e,error:P(\"USER_DISCONNECTED\")})]).catch(i=>this.client.logger.error(i))}catch(i){this.client.logger.error(i)}},this.onSessionRequest=async e=>{var t,s,i;const{topic:r,payload:n,attestation:a,encryptedId:c,transportType:h}=e,{id:p,params:d}=n;try{await this.isValidRequest(I({topic:r},d));const l=this.client.session.get(r),w=await this.getVerifyContext({attestationId:a,hash:X(JSON.stringify(ge(\"wc_sessionRequest\",d,p))),encryptedId:c,metadata:l.peer.metadata,transportType:h}),m={id:p,topic:r,params:d,verifyContext:w};await this.setPendingSessionRequest(m),h===f.link_mode&&(t=l.peer.metadata.redirect)!=null&&t.universal&&this.client.core.addLinkModeSupportedApp((s=l.peer.metadata.redirect)==null?void 0:s.universal),(i=this.client.signConfig)!=null&&i.disableRequestQueue?this.emitSessionRequest(m):(this.addSessionRequestToSessionRequestQueue(m),this.processSessionRequestQueue())}catch(l){await this.sendError({id:p,topic:r,error:l}),this.client.logger.error(l)}},this.onSessionRequestResponse=(e,t)=>{const{id:s}=t,i=g(\"session_request\",s);if(this.events.listenerCount(i)===0)throw new Error(`emitting ${i} without any listeners`);K(t)?this.events.emit(g(\"session_request\",s),{result:t.result}):U(t)&&this.events.emit(g(\"session_request\",s),{error:t.error})},this.onSessionEventRequest=async(e,t)=>{const{id:s,params:i}=t;try{const r=`${e}_session_event_${i.event.name}`,n=re.get(r);if(n&&this.isRequestOutOfSync(n,s)){this.client.logger.info(`Discarding out of sync request - ${s}`);return}this.isValidEmit(I({topic:e},i)),this.client.events.emit(\"session_event\",{id:s,topic:e,params:i}),re.set(r,s)}catch(r){await this.sendError({id:s,topic:e,error:r}),this.client.logger.error(r)}},this.onSessionAuthenticateResponse=(e,t)=>{const{id:s}=t;this.client.logger.trace({type:\"method\",method:\"onSessionAuthenticateResponse\",topic:e,payload:t}),K(t)?this.events.emit(g(\"session_request\",s),{result:t.result}):U(t)&&this.events.emit(g(\"session_request\",s),{error:t.error})},this.onSessionAuthenticateRequest=async e=>{var t;const{topic:s,payload:i,attestation:r,encryptedId:n,transportType:a}=e;try{const{requester:c,authPayload:h,expiryTimestamp:p}=i.params,d=await this.getVerifyContext({attestationId:r,hash:X(JSON.stringify(i)),encryptedId:n,metadata:c.metadata,transportType:a}),l={requester:c,pairingTopic:s,id:i.id,authPayload:h,verifyContext:d,expiryTimestamp:p};await this.setAuthRequest(i.id,{request:l,pairingTopic:s,transportType:a}),a===f.link_mode&&(t=c.metadata.redirect)!=null&&t.universal&&this.client.core.addLinkModeSupportedApp(c.metadata.redirect.universal),this.client.events.emit(\"session_authenticate\",{topic:s,params:i.params,id:i.id,verifyContext:d})}catch(c){this.client.logger.error(c);const h=i.params.requester.publicKey,p=await this.client.core.crypto.generateKeyPair(),d=this.getAppLinkIfEnabled(i.params.requester.metadata,a),l={type:Ae,receiverPublicKey:h,senderPublicKey:p};await this.sendError({id:i.id,topic:s,error:c,encodeOpts:l,rpcOpts:v.wc_sessionAuthenticate.autoReject,appLink:d})}},this.addSessionRequestToSessionRequestQueue=e=>{this.sessionRequestQueue.queue.push(e)},this.cleanupAfterResponse=e=>{this.deletePendingSessionRequest(e.response.id,{message:\"fulfilled\",code:0}),setTimeout(()=>{this.sessionRequestQueue.state=x.idle,this.processSessionRequestQueue()},tt(this.requestQueueDelay))},this.cleanupPendingSentRequestsForTopic=({topic:e,error:t})=>{const s=this.client.core.history.pending;s.length>0&&s.filter(i=>i.topic===e&&i.request.method===\"wc_sessionRequest\").forEach(i=>{const r=i.request.id,n=g(\"session_request\",r);if(this.events.listenerCount(n)===0)throw new Error(`emitting ${n} without any listeners`);this.events.emit(g(\"session_request\",i.request.id),{error:t})})},this.processSessionRequestQueue=()=>{if(this.sessionRequestQueue.state===x.active){this.client.logger.info(\"session request queue is already active.\");return}const e=this.sessionRequestQueue.queue[0];if(!e){this.client.logger.info(\"session request queue is empty.\");return}try{this.sessionRequestQueue.state=x.active,this.emitSessionRequest(e)}catch(t){this.client.logger.error(t)}},this.emitSessionRequest=e=>{this.client.events.emit(\"session_request\",e)},this.onPairingCreated=e=>{if(e.methods&&this.expectedPairingMethodMap.set(e.topic,e.methods),e.active)return;const t=this.client.proposal.getAll().find(s=>s.pairingTopic===e.topic);t&&this.onSessionProposeRequest({topic:e.topic,payload:ge(\"wc_sessionPropose\",{requiredNamespaces:t.requiredNamespaces,optionalNamespaces:t.optionalNamespaces,relays:t.relays,proposer:t.proposer,sessionProperties:t.sessionProperties},t.id)})},this.isValidConnect=async e=>{if(!L(e)){const{message:a}=u(\"MISSING_OR_INVALID\",`connect() params: ${JSON.stringify(e)}`);throw new Error(a)}const{pairingTopic:t,requiredNamespaces:s,optionalNamespaces:i,sessionProperties:r,relays:n}=e;if(ne(t)||await this.isValidPairingTopic(t),!kt(n,!0)){const{message:a}=u(\"MISSING_OR_INVALID\",`connect() relays: ${n}`);throw new Error(a)}!ne(s)&&Xe(s)!==0&&this.validateNamespaces(s,\"requiredNamespaces\"),!ne(i)&&Xe(i)!==0&&this.validateNamespaces(i,\"optionalNamespaces\"),ne(r)||this.validateSessionProps(r,\"sessionProperties\")},this.validateNamespaces=(e,t)=>{const s=$t(e,\"connect()\",t);if(s)throw new Error(s.message)},this.isValidApprove=async e=>{if(!L(e))throw new Error(u(\"MISSING_OR_INVALID\",`approve() params: ${e}`).message);const{id:t,namespaces:s,relayProtocol:i,sessionProperties:r}=e;this.checkRecentlyDeleted(t),await this.isValidProposalId(t);const n=this.client.proposal.get(t),a=Oe(s,\"approve()\");if(a)throw new Error(a.message);const c=Je(n.requiredNamespaces,s,\"approve()\");if(c)throw new Error(c.message);if(!k(i,!0)){const{message:h}=u(\"MISSING_OR_INVALID\",`approve() relayProtocol: ${i}`);throw new Error(h)}ne(r)||this.validateSessionProps(r,\"sessionProperties\")},this.isValidReject=async e=>{if(!L(e)){const{message:i}=u(\"MISSING_OR_INVALID\",`reject() params: ${e}`);throw new Error(i)}const{id:t,reason:s}=e;if(this.checkRecentlyDeleted(t),await this.isValidProposalId(t),!Kt(s)){const{message:i}=u(\"MISSING_OR_INVALID\",`reject() reason: ${JSON.stringify(s)}`);throw new Error(i)}},this.isValidSessionSettleRequest=e=>{if(!L(e)){const{message:c}=u(\"MISSING_OR_INVALID\",`onSessionSettleRequest() params: ${e}`);throw new Error(c)}const{relay:t,controller:s,namespaces:i,expiry:r}=e;if(!Ut(t)){const{message:c}=u(\"MISSING_OR_INVALID\",\"onSessionSettleRequest() relay protocol should be a string\");throw new Error(c)}const n=Gt(s,\"onSessionSettleRequest()\");if(n)throw new Error(n.message);const a=Oe(i,\"onSessionSettleRequest()\");if(a)throw new Error(a.message);if(J(r)){const{message:c}=u(\"EXPIRED\",\"onSessionSettleRequest()\");throw new Error(c)}},this.isValidUpdate=async e=>{if(!L(e)){const{message:a}=u(\"MISSING_OR_INVALID\",`update() params: ${e}`);throw new Error(a)}const{topic:t,namespaces:s}=e;this.checkRecentlyDeleted(t),await this.isValidSessionTopic(t);const i=this.client.session.get(t),r=Oe(s,\"update()\");if(r)throw new Error(r.message);const n=Je(i.requiredNamespaces,s,\"update()\");if(n)throw new Error(n.message)},this.isValidExtend=async e=>{if(!L(e)){const{message:s}=u(\"MISSING_OR_INVALID\",`extend() params: ${e}`);throw new Error(s)}const{topic:t}=e;this.checkRecentlyDeleted(t),await this.isValidSessionTopic(t)},this.isValidRequest=async e=>{if(!L(e)){const{message:a}=u(\"MISSING_OR_INVALID\",`request() params: ${e}`);throw new Error(a)}const{topic:t,request:s,chainId:i,expiry:r}=e;this.checkRecentlyDeleted(t),await this.isValidSessionTopic(t);const{namespaces:n}=this.client.session.get(t);if(!Be(n,i)){const{message:a}=u(\"MISSING_OR_INVALID\",`request() chainId: ${i}`);throw new Error(a)}if(!jt(s)){const{message:a}=u(\"MISSING_OR_INVALID\",`request() ${JSON.stringify(s)}`);throw new Error(a)}if(!Ft(n,i,s.method)){const{message:a}=u(\"MISSING_OR_INVALID\",`request() method: ${s.method}`);throw new Error(a)}if(r&&!Qt(r,me)){const{message:a}=u(\"MISSING_OR_INVALID\",`request() expiry: ${r}. Expiry must be a number (in seconds) between ${me.min} and ${me.max}`);throw new Error(a)}},this.isValidRespond=async e=>{var t;if(!L(e)){const{message:r}=u(\"MISSING_OR_INVALID\",`respond() params: ${e}`);throw new Error(r)}const{topic:s,response:i}=e;try{await this.isValidSessionTopic(s)}catch(r){throw(t=e?.response)!=null&&t.id&&this.cleanupAfterResponse(e),r}if(!zt(i)){const{message:r}=u(\"MISSING_OR_INVALID\",`respond() response: ${JSON.stringify(i)}`);throw new Error(r)}},this.isValidPing=async e=>{if(!L(e)){const{message:s}=u(\"MISSING_OR_INVALID\",`ping() params: ${e}`);throw new Error(s)}const{topic:t}=e;await this.isValidSessionOrPairingTopic(t)},this.isValidEmit=async e=>{if(!L(e)){const{message:n}=u(\"MISSING_OR_INVALID\",`emit() params: ${e}`);throw new Error(n)}const{topic:t,event:s,chainId:i}=e;await this.isValidSessionTopic(t);const{namespaces:r}=this.client.session.get(t);if(!Be(r,i)){const{message:n}=u(\"MISSING_OR_INVALID\",`emit() chainId: ${i}`);throw new Error(n)}if(!Ht(s)){const{message:n}=u(\"MISSING_OR_INVALID\",`emit() event: ${JSON.stringify(s)}`);throw new Error(n)}if(!Yt(r,i,s.name)){const{message:n}=u(\"MISSING_OR_INVALID\",`emit() event: ${JSON.stringify(s)}`);throw new Error(n)}},this.isValidDisconnect=async e=>{if(!L(e)){const{message:s}=u(\"MISSING_OR_INVALID\",`disconnect() params: ${e}`);throw new Error(s)}const{topic:t}=e;await this.isValidSessionOrPairingTopic(t)},this.isValidAuthenticate=e=>{const{chains:t,uri:s,domain:i,nonce:r}=e;if(!Array.isArray(t)||t.length===0)throw new Error(\"chains is required and must be a non-empty array\");if(!k(s,!1))throw new Error(\"uri is required parameter\");if(!k(i,!1))throw new Error(\"domain is required parameter\");if(!k(r,!1))throw new Error(\"nonce is required parameter\");if([...new Set(t.map(a=>Ne(a).namespace))].length>1)throw new Error(\"Multi-namespace requests are not supported. Please request single namespace only.\");const{namespace:n}=Ne(t[0]);if(n!==\"eip155\")throw new Error(\"Only eip155 namespace is supported for authenticated sessions. Please use .connect() for non-eip155 chains.\")},this.getVerifyContext=async e=>{const{attestationId:t,hash:s,encryptedId:i,metadata:r,transportType:n}=e,a={verified:{verifyUrl:r.verifyUrl||It,validation:\"UNKNOWN\",origin:r.url||\"\"}};try{if(n===f.link_mode){const h=this.getAppLinkIfEnabled(r,n);return a.verified.validation=h&&new URL(h).origin===new URL(r.url).origin?\"VALID\":\"INVALID\",a}const c=await this.client.core.verify.resolve({attestationId:t,hash:s,encryptedId:i,verifyUrl:r.verifyUrl});c&&(a.verified.origin=c.origin,a.verified.isScam=c.isScam,a.verified.validation=c.origin===new URL(r.url).origin?\"VALID\":\"INVALID\")}catch(c){this.client.logger.warn(c)}return this.client.logger.debug(`Verify context: ${JSON.stringify(a)}`),a},this.validateSessionProps=(e,t)=>{Object.values(e).forEach(s=>{if(!k(s,!1)){const{message:i}=u(\"MISSING_OR_INVALID\",`${t} must be in Record format. Received: ${JSON.stringify(s)}`);throw new Error(i)}})},this.getPendingAuthRequest=e=>{const t=this.client.auth.requests.get(e);return typeof t==\"object\"?t:void 0},this.addToRecentlyDeleted=(e,t)=>{if(this.recentlyDeletedMap.set(e,t),this.recentlyDeletedMap.size>=this.recentlyDeletedLimit){let s=0;const i=this.recentlyDeletedLimit/2;for(const r of this.recentlyDeletedMap.keys()){if(s++>=i)break;this.recentlyDeletedMap.delete(r)}}},this.checkRecentlyDeleted=e=>{const t=this.recentlyDeletedMap.get(e);if(t){const{message:s}=u(\"MISSING_OR_INVALID\",`Record was recently deleted - ${t}: ${e}`);throw new Error(s)}},this.isLinkModeEnabled=(e,t)=>{var s,i,r,n,a,c,h,p,d;return!e||t!==f.link_mode?!1:((i=(s=this.client.metadata)==null?void 0:s.redirect)==null?void 0:i.linkMode)===!0&&((n=(r=this.client.metadata)==null?void 0:r.redirect)==null?void 0:n.universal)!==void 0&&((c=(a=this.client.metadata)==null?void 0:a.redirect)==null?void 0:c.universal)!==\"\"&&((h=e?.redirect)==null?void 0:h.universal)!==void 0&&((p=e?.redirect)==null?void 0:p.universal)!==\"\"&&((d=e?.redirect)==null?void 0:d.linkMode)===!0&&this.client.core.linkModeSupportedApps.includes(e.redirect.universal)&&typeof(global==null?void 0:global.Linking)<\"u\"},this.getAppLinkIfEnabled=(e,t)=>{var s;return this.isLinkModeEnabled(e,t)?(s=e?.redirect)==null?void 0:s.universal:void 0},this.handleLinkModeMessage=({url:e})=>{if(!e||!e.includes(\"wc_ev\")||!e.includes(\"topic\"))return;const t=We(e,\"topic\")||\"\",s=decodeURIComponent(We(e,\"wc_ev\")||\"\"),i=this.client.session.keys.includes(t);i&&this.client.session.update(t,{transportType:f.link_mode}),this.client.core.dispatchEnvelope({topic:t,message:s,sessionExists:i})},this.registerLinkModeListeners=async()=>{var e;if(Xt()||Jt()&&(e=this.client.metadata.redirect)!=null&&e.linkMode){const t=global==null?void 0:global.Linking;if(typeof t<\"u\"){t.addEventListener(\"url\",this.handleLinkModeMessage,this.client.name);const s=await t.getInitialURL();s&&setTimeout(()=>{this.handleLinkModeMessage({url:s})},50)}}}}isInitialized(){if(!this.initialized){const{message:o}=u(\"NOT_INITIALIZED\",this.name);throw new Error(o)}}async confirmOnlineStateOrThrow(){await this.client.core.relayer.confirmOnlineStateOrThrow()}registerRelayerEvents(){this.client.core.relayer.on(Ue.message,o=>{!this.initialized||this.relayMessageCache.length>0?this.relayMessageCache.push(o):this.onRelayMessage(o)})}async onRelayMessage(o){const{topic:e,message:t,attestation:s,transportType:i}=o,{publicKey:r}=this.client.auth.authKeys.keys.includes(ae)?this.client.auth.authKeys.get(ae):{responseTopic:void 0,publicKey:void 0},n=await this.client.core.crypto.decode(e,t,{receiverPublicKey:r,encoding:i===f.link_mode?ie:de});try{os(n)?(this.client.core.history.set(e,n),this.onRelayEventRequest({topic:e,payload:n,attestation:s,transportType:i,encryptedId:X(t)})):as(n)?(await this.client.core.history.resolve(n),await this.onRelayEventResponse({topic:e,payload:n,transportType:i}),this.client.core.history.delete(e,n.id)):this.onRelayEventUnknownPayload({topic:e,payload:n,transportType:i})}catch(a){this.client.logger.error(a)}}registerExpirerEvents(){this.client.core.expirer.on(ft.expired,async o=>{const{topic:e,id:t}=Bt(o.target);if(t&&this.client.pendingRequest.keys.includes(t))return await this.deletePendingSessionRequest(t,u(\"EXPIRED\"),!0);if(t&&this.client.auth.requests.keys.includes(t))return await this.deletePendingAuthRequest(t,u(\"EXPIRED\"),!0);e?this.client.session.keys.includes(e)&&(await this.deleteSession({topic:e,expirerHasDeleted:!0}),this.client.events.emit(\"session_expire\",{topic:e})):t&&(await this.deleteProposal(t,!0),this.client.events.emit(\"proposal_expire\",{id:t}))})}registerPairingEvents(){this.client.core.pairing.events.on(Ge.create,o=>this.onPairingCreated(o)),this.client.core.pairing.events.on(Ge.delete,o=>{this.addToRecentlyDeleted(o.topic,\"pairing\")})}isValidPairingTopic(o){if(!k(o,!1)){const{message:e}=u(\"MISSING_OR_INVALID\",`pairing topic should be a string: ${o}`);throw new Error(e)}if(!this.client.core.pairing.pairings.keys.includes(o)){const{message:e}=u(\"NO_MATCHING_KEY\",`pairing topic doesn't exist: ${o}`);throw new Error(e)}if(J(this.client.core.pairing.pairings.get(o).expiry)){const{message:e}=u(\"EXPIRED\",`pairing topic: ${o}`);throw new Error(e)}}async isValidSessionTopic(o){if(!k(o,!1)){const{message:e}=u(\"MISSING_OR_INVALID\",`session topic should be a string: ${o}`);throw new Error(e)}if(this.checkRecentlyDeleted(o),!this.client.session.keys.includes(o)){const{message:e}=u(\"NO_MATCHING_KEY\",`session topic doesn't exist: ${o}`);throw new Error(e)}if(J(this.client.session.get(o).expiry)){await this.deleteSession({topic:o});const{message:e}=u(\"EXPIRED\",`session topic: ${o}`);throw new Error(e)}if(!this.client.core.crypto.keychain.has(o)){const{message:e}=u(\"MISSING_OR_INVALID\",`session topic does not exist in keychain: ${o}`);throw await this.deleteSession({topic:o}),new Error(e)}}async isValidSessionOrPairingTopic(o){if(this.checkRecentlyDeleted(o),this.client.session.keys.includes(o))await this.isValidSessionTopic(o);else if(this.client.core.pairing.pairings.keys.includes(o))this.isValidPairingTopic(o);else if(k(o,!1)){const{message:e}=u(\"NO_MATCHING_KEY\",`session or pairing topic doesn't exist: ${o}`);throw new Error(e)}else{const{message:e}=u(\"MISSING_OR_INVALID\",`session or pairing topic should be a string: ${o}`);throw new Error(e)}}async isValidProposalId(o){if(!Wt(o)){const{message:e}=u(\"MISSING_OR_INVALID\",`proposal id should be a number: ${o}`);throw new Error(e)}if(!this.client.proposal.keys.includes(o)){const{message:e}=u(\"NO_MATCHING_KEY\",`proposal id doesn't exist: ${o}`);throw new Error(e)}if(J(this.client.proposal.get(o).expiryTimestamp)){await this.deleteProposal(o);const{message:e}=u(\"EXPIRED\",`proposal id: ${o}`);throw new Error(e)}}}class Ss extends H{constructor(o,e){super(o,e,st,ye),this.core=o,this.logger=e}}class yt extends H{constructor(o,e){super(o,e,rt,ye),this.core=o,this.logger=e}}class Is extends H{constructor(o,e){super(o,e,ot,ye,t=>t.id),this.core=o,this.logger=e}}class fs extends H{constructor(o,e){super(o,e,pt,oe,()=>ae),this.core=o,this.logger=e}}class vs extends H{constructor(o,e){super(o,e,ht,oe),this.core=o,this.logger=e}}class qs extends H{constructor(o,e){super(o,e,dt,oe,t=>t.id),this.core=o,this.logger=e}}class Ts{constructor(o,e){this.core=o,this.logger=e,this.authKeys=new fs(this.core,this.logger),this.pairingTopics=new vs(this.core,this.logger),this.requests=new qs(this.core,this.logger)}async init(){await this.authKeys.init(),await this.pairingTopics.init(),await this.requests.init()}}class _e extends At{constructor(o){super(o),this.protocol=be,this.version=Ce,this.name=we.name,this.events=new ts,this.on=(t,s)=>this.events.on(t,s),this.once=(t,s)=>this.events.once(t,s),this.off=(t,s)=>this.events.off(t,s),this.removeListener=(t,s)=>this.events.removeListener(t,s),this.removeAllListeners=t=>this.events.removeAllListeners(t),this.connect=async t=>{try{return await this.engine.connect(t)}catch(s){throw this.logger.error(s.message),s}},this.pair=async t=>{try{return await this.engine.pair(t)}catch(s){throw this.logger.error(s.message),s}},this.approve=async t=>{try{return await this.engine.approve(t)}catch(s){throw this.logger.error(s.message),s}},this.reject=async t=>{try{return await this.engine.reject(t)}catch(s){throw this.logger.error(s.message),s}},this.update=async t=>{try{return await this.engine.update(t)}catch(s){throw this.logger.error(s.message),s}},this.extend=async t=>{try{return await this.engine.extend(t)}catch(s){throw this.logger.error(s.message),s}},this.request=async t=>{try{return await this.engine.request(t)}catch(s){throw this.logger.error(s.message),s}},this.respond=async t=>{try{return await this.engine.respond(t)}catch(s){throw this.logger.error(s.message),s}},this.ping=async t=>{try{return await this.engine.ping(t)}catch(s){throw this.logger.error(s.message),s}},this.emit=async t=>{try{return await this.engine.emit(t)}catch(s){throw this.logger.error(s.message),s}},this.disconnect=async t=>{try{return await this.engine.disconnect(t)}catch(s){throw this.logger.error(s.message),s}},this.find=t=>{try{return this.engine.find(t)}catch(s){throw this.logger.error(s.message),s}},this.getPendingSessionRequests=()=>{try{return this.engine.getPendingSessionRequests()}catch(t){throw this.logger.error(t.message),t}},this.authenticate=async(t,s)=>{try{return await this.engine.authenticate(t,s)}catch(i){throw this.logger.error(i.message),i}},this.formatAuthMessage=t=>{try{return this.engine.formatAuthMessage(t)}catch(s){throw this.logger.error(s.message),s}},this.approveSessionAuthenticate=async t=>{try{return await this.engine.approveSessionAuthenticate(t)}catch(s){throw this.logger.error(s.message),s}},this.rejectSessionAuthenticate=async t=>{try{return await this.engine.rejectSessionAuthenticate(t)}catch(s){throw this.logger.error(s.message),s}},this.name=o?.name||we.name,this.metadata=o?.metadata||Zt(),this.signConfig=o?.signConfig;const e=typeof o?.logger<\"u\"&&typeof o?.logger!=\"string\"?o.logger:qt(Tt({level:o?.logger||we.logger}));this.core=o?.core||new vt(o),this.logger=Nt(e,this.name),this.session=new yt(this.core,this.logger),this.proposal=new Ss(this.core,this.logger),this.pendingRequest=new Is(this.core,this.logger),this.engine=new Rs(this),this.auth=new Ts(this.core,this.logger)}static async init(o){const e=new _e(o);return await e.initialize(),e}get context(){return Pt(this.logger)}get pairing(){return this.core.pairing.pairings}async initialize(){this.logger.trace(\"Initialized\");try{await this.core.start(),await this.session.init(),await this.proposal.init(),await this.pendingRequest.init(),await this.auth.init(),await this.engine.init(),this.logger.info(\"SignClient Initialization Success\"),this.engine.processRelayMessageCache()}catch(o){throw this.logger.info(\"SignClient Initialization Failure\"),this.logger.error(o.message),o}}}const Ns=yt,Ps=_e;export{lt as AUTH_CONTEXT,pt as AUTH_KEYS_CONTEXT,ht as AUTH_PAIRING_TOPIC_CONTEXT,ct as AUTH_PROTOCOL,ae as AUTH_PUBLIC_KEY_NAME,dt as AUTH_REQUEST_CONTEXT,oe as AUTH_STORAGE_PREFIX,gs as AUTH_VERSION,nt as ENGINE_CONTEXT,x as ENGINE_QUEUE_STATES,v as ENGINE_RPC_OPTS,hs as HISTORY_CONTEXT,ps as HISTORY_EVENTS,ds as HISTORY_STORAGE_VERSION,at as METHODS_TO_VERIFY,st as PROPOSAL_CONTEXT,us as PROPOSAL_EXPIRY,it as PROPOSAL_EXPIRY_MESSAGE,ot as REQUEST_CONTEXT,rt as SESSION_CONTEXT,z as SESSION_EXPIRY,me as SESSION_REQUEST_EXPIRY_BOUNDARIES,Le as SIGN_CLIENT_CONTEXT,we as SIGN_CLIENT_DEFAULT,cs as SIGN_CLIENT_EVENTS,be as SIGN_CLIENT_PROTOCOL,ls as SIGN_CLIENT_STORAGE_OPTIONS,ye as SIGN_CLIENT_STORAGE_PREFIX,Ce as SIGN_CLIENT_VERSION,Ns as SessionStore,Ps as SignClient,xe as WALLETCONNECT_DEEPLINK_CHOICE,_e as default};\n//# sourceMappingURL=index.es.js.map\n","import{AuthClient as N}from\"@walletconnect/auth-client\";import{SignClient as W,SessionStore as I}from\"@walletconnect/sign-client\";import{Core as m}from\"@walletconnect/core\";var l={exports:{}},c=typeof Reflect==\"object\"?Reflect:null,y=c&&typeof c.apply==\"function\"?c.apply:function(t,e,n){return Function.prototype.apply.call(t,e,n)},f;c&&typeof c.ownKeys==\"function\"?f=c.ownKeys:Object.getOwnPropertySymbols?f=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:f=function(t){return Object.getOwnPropertyNames(t)};function k(s){console&&console.warn&&console.warn(s)}var w=Number.isNaN||function(t){return t!==t};function o(){o.init.call(this)}l.exports=o,l.exports.once=K,o.EventEmitter=o,o.prototype._events=void 0,o.prototype._eventsCount=0,o.prototype._maxListeners=void 0;var L=10;function g(s){if(typeof s!=\"function\")throw new TypeError('The \"listener\" argument must be of type Function. Received type '+typeof s)}Object.defineProperty(o,\"defaultMaxListeners\",{enumerable:!0,get:function(){return L},set:function(s){if(typeof s!=\"number\"||s<0||w(s))throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received '+s+\".\");L=s}}),o.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},o.prototype.setMaxListeners=function(t){if(typeof t!=\"number\"||t<0||w(t))throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received '+t+\".\");return this._maxListeners=t,this};function _(s){return s._maxListeners===void 0?o.defaultMaxListeners:s._maxListeners}o.prototype.getMaxListeners=function(){return _(this)},o.prototype.emit=function(t){for(var e=[],n=1;n0&&(r=e[0]),r instanceof Error)throw r;var h=new Error(\"Unhandled error.\"+(r?\" (\"+r.message+\")\":\"\"));throw h.context=r,h}var u=a[t];if(u===void 0)return!1;if(typeof u==\"function\")y(u,this,e);else for(var d=u.length,M=O(u,d),n=0;n0&&r.length>i&&!r.warned){r.warned=!0;var h=new Error(\"Possible EventEmitter memory leak detected. \"+r.length+\" \"+String(t)+\" listeners added. Use emitter.setMaxListeners() to increase limit\");h.name=\"MaxListenersExceededWarning\",h.emitter=s,h.type=t,h.count=r.length,k(h)}return s}o.prototype.addListener=function(t,e){return S(this,t,e,!1)},o.prototype.on=o.prototype.addListener,o.prototype.prependListener=function(t,e){return S(this,t,e,!0)};function D(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function C(s,t,e){var n={fired:!1,wrapFn:void 0,target:s,type:t,listener:e},i=D.bind(n);return i.listener=e,n.wrapFn=i,i}o.prototype.once=function(t,e){return g(e),this.on(t,C(this,t,e)),this},o.prototype.prependOnceListener=function(t,e){return g(e),this.prependListener(t,C(this,t,e)),this},o.prototype.removeListener=function(t,e){var n,i,a,r,h;if(g(e),i=this._events,i===void 0)return this;if(n=i[t],n===void 0)return this;if(n===e||n.listener===e)--this._eventsCount===0?this._events=Object.create(null):(delete i[t],i.removeListener&&this.emit(\"removeListener\",t,n.listener||e));else if(typeof n!=\"function\"){for(a=-1,r=n.length-1;r>=0;r--)if(n[r]===e||n[r].listener===e){h=n[r].listener,a=r;break}if(a<0)return this;a===0?n.shift():F(n,a),n.length===1&&(i[t]=n[0]),i.removeListener!==void 0&&this.emit(\"removeListener\",t,h||e)}return this},o.prototype.off=o.prototype.removeListener,o.prototype.removeAllListeners=function(t){var e,n,i;if(n=this._events,n===void 0)return this;if(n.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):n[t]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete n[t]),this;if(arguments.length===0){var a=Object.keys(n),r;for(i=0;i=0;i--)this.removeListener(t,e[i]);return this};function b(s,t,e){var n=s._events;if(n===void 0)return[];var i=n[t];return i===void 0?[]:typeof i==\"function\"?e?[i.listener||i]:[i]:e?z(i):O(i,i.length)}o.prototype.listeners=function(t){return b(this,t,!0)},o.prototype.rawListeners=function(t){return b(this,t,!1)},o.listenerCount=function(s,t){return typeof s.listenerCount==\"function\"?s.listenerCount(t):E.call(s,t)},o.prototype.listenerCount=E;function E(s){var t=this._events;if(t!==void 0){var e=t[s];if(typeof e==\"function\")return 1;if(e!==void 0)return e.length}return 0}o.prototype.eventNames=function(){return this._eventsCount>0?f(this._events):[]};function O(s,t){for(var e=new Array(t),n=0;nt in s?V(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e,ee=(s,t)=>{for(var e in t||(t={}))Y.call(t,e)&&j(s,e,t[e]);if(q)for(var e of q(t))Z.call(t,e)&&j(s,e,t[e]);return s},te=(s,t)=>B(s,J(t));class se extends P{constructor(t){super(t),this.init=async()=>{this.signClient=await W.init({core:this.client.core,metadata:this.client.metadata,signConfig:this.client.signConfig}),this.authClient=await N.init({core:this.client.core,projectId:\"\",metadata:this.client.metadata})},this.pair=async e=>{await this.client.core.pairing.pair(e)},this.approveSession=async e=>{const{topic:n,acknowledged:i}=await this.signClient.approve(te(ee({},e),{id:e.id,namespaces:e.namespaces,sessionProperties:e.sessionProperties,sessionConfig:e.sessionConfig}));return await i(),this.signClient.session.get(n)},this.rejectSession=async e=>await this.signClient.reject(e),this.updateSession=async e=>await this.signClient.update(e),this.extendSession=async e=>await this.signClient.extend(e),this.respondSessionRequest=async e=>await this.signClient.respond(e),this.disconnectSession=async e=>await this.signClient.disconnect(e),this.emitSessionEvent=async e=>await this.signClient.emit(e),this.getActiveSessions=()=>this.signClient.session.getAll().reduce((e,n)=>(e[n.topic]=n,e),{}),this.getPendingSessionProposals=()=>this.signClient.proposal.getAll(),this.getPendingSessionRequests=()=>this.signClient.getPendingSessionRequests(),this.respondAuthRequest=async(e,n)=>await this.authClient.respond(e,n),this.getPendingAuthRequests=()=>this.authClient.requests.getAll().filter(e=>\"requester\"in e),this.formatMessage=(e,n)=>this.authClient.formatMessage(e,n),this.approveSessionAuthenticate=async e=>await this.signClient.approveSessionAuthenticate(e),this.rejectSessionAuthenticate=async e=>await this.signClient.rejectSessionAuthenticate(e),this.formatAuthMessage=e=>this.signClient.formatAuthMessage(e),this.registerDeviceToken=e=>this.client.core.echoClient.registerDeviceToken(e),this.on=(e,n)=>(this.setEvent(e,\"off\"),this.setEvent(e,\"on\"),this.client.events.on(e,n)),this.once=(e,n)=>(this.setEvent(e,\"off\"),this.setEvent(e,\"once\"),this.client.events.once(e,n)),this.off=(e,n)=>(this.setEvent(e,\"off\"),this.client.events.off(e,n)),this.removeListener=(e,n)=>(this.setEvent(e,\"removeListener\"),this.client.events.removeListener(e,n)),this.onSessionRequest=e=>{this.client.events.emit(\"session_request\",e)},this.onSessionProposal=e=>{this.client.events.emit(\"session_proposal\",e)},this.onSessionDelete=e=>{this.client.events.emit(\"session_delete\",e)},this.onAuthRequest=e=>{this.client.events.emit(\"auth_request\",e)},this.onProposalExpire=e=>{this.client.events.emit(\"proposal_expire\",e)},this.onSessionRequestExpire=e=>{this.client.events.emit(\"session_request_expire\",e)},this.onSessionRequestAuthenticate=e=>{this.client.events.emit(\"session_authenticate\",e)},this.setEvent=(e,n)=>{switch(e){case\"session_request\":this.signClient.events[n](\"session_request\",this.onSessionRequest);break;case\"session_proposal\":this.signClient.events[n](\"session_proposal\",this.onSessionProposal);break;case\"session_delete\":this.signClient.events[n](\"session_delete\",this.onSessionDelete);break;case\"auth_request\":this.authClient[n](\"auth_request\",this.onAuthRequest);break;case\"proposal_expire\":this.signClient.events[n](\"proposal_expire\",this.onProposalExpire);break;case\"session_request_expire\":this.signClient.events[n](\"session_request_expire\",this.onSessionRequestExpire);break;case\"session_authenticate\":this.signClient.events[n](\"session_authenticate\",this.onSessionRequestAuthenticate);break}},this.signClient={},this.authClient={}}}const ne={decryptMessage:async s=>{const t={core:new m({storageOptions:s.storageOptions,storage:s.storage})};await t.core.crypto.init();const e=t.core.crypto.decode(s.topic,s.encryptedMessage);return t.core=null,e},getMetadata:async s=>{const t={core:new m({storageOptions:s.storageOptions,storage:s.storage}),sessionStore:null};t.sessionStore=new I(t.core,t.core.logger),await t.sessionStore.init();const e=t.sessionStore.get(s.topic),n=e?.peer.metadata;return t.core=null,t.sessionStore=null,n}},T=class extends x{constructor(s){super(s),this.events=new l.exports,this.on=(t,e)=>this.engine.on(t,e),this.once=(t,e)=>this.engine.once(t,e),this.off=(t,e)=>this.engine.off(t,e),this.removeListener=(t,e)=>this.engine.removeListener(t,e),this.pair=async t=>{try{return await this.engine.pair(t)}catch(e){throw this.logger.error(e.message),e}},this.approveSession=async t=>{try{return await this.engine.approveSession(t)}catch(e){throw this.logger.error(e.message),e}},this.rejectSession=async t=>{try{return await this.engine.rejectSession(t)}catch(e){throw this.logger.error(e.message),e}},this.updateSession=async t=>{try{return await this.engine.updateSession(t)}catch(e){throw this.logger.error(e.message),e}},this.extendSession=async t=>{try{return await this.engine.extendSession(t)}catch(e){throw this.logger.error(e.message),e}},this.respondSessionRequest=async t=>{try{return await this.engine.respondSessionRequest(t)}catch(e){throw this.logger.error(e.message),e}},this.disconnectSession=async t=>{try{return await this.engine.disconnectSession(t)}catch(e){throw this.logger.error(e.message),e}},this.emitSessionEvent=async t=>{try{return await this.engine.emitSessionEvent(t)}catch(e){throw this.logger.error(e.message),e}},this.getActiveSessions=()=>{try{return this.engine.getActiveSessions()}catch(t){throw this.logger.error(t.message),t}},this.getPendingSessionProposals=()=>{try{return this.engine.getPendingSessionProposals()}catch(t){throw this.logger.error(t.message),t}},this.getPendingSessionRequests=()=>{try{return this.engine.getPendingSessionRequests()}catch(t){throw this.logger.error(t.message),t}},this.respondAuthRequest=async(t,e)=>{try{return await this.engine.respondAuthRequest(t,e)}catch(n){throw this.logger.error(n.message),n}},this.getPendingAuthRequests=()=>{try{return this.engine.getPendingAuthRequests()}catch(t){throw this.logger.error(t.message),t}},this.formatMessage=(t,e)=>{try{return this.engine.formatMessage(t,e)}catch(n){throw this.logger.error(n.message),n}},this.registerDeviceToken=t=>{try{return this.engine.registerDeviceToken(t)}catch(e){throw this.logger.error(e.message),e}},this.approveSessionAuthenticate=t=>{try{return this.engine.approveSessionAuthenticate(t)}catch(e){throw this.logger.error(e.message),e}},this.rejectSessionAuthenticate=t=>{try{return this.engine.rejectSessionAuthenticate(t)}catch(e){throw this.logger.error(e.message),e}},this.formatAuthMessage=t=>{try{return this.engine.formatAuthMessage(t)}catch(e){throw this.logger.error(e.message),e}},this.metadata=s.metadata,this.name=s.name||p,this.signConfig=s.signConfig,this.core=s.core,this.logger=this.core.logger,this.engine=new se(this)}static async init(s){const t=new T(s);return await t.initialize(),t}async initialize(){this.logger.trace(\"Initialized\");try{await this.engine.init(),this.logger.info(\"Web3Wallet Initialization Success\")}catch(s){throw this.logger.info(\"Web3Wallet Initialization Failure\"),this.logger.error(s.message),s}}};let v=T;v.notifications=ne;const ie=v;export{p as CLIENT_CONTEXT,G as CLIENT_STORAGE_OPTIONS,$ as CLIENT_STORAGE_PREFIX,x as IWeb3Wallet,P as IWeb3WalletEngine,Q as IWeb3WalletEvents,A as PROTOCOL,X as PROTOCOL_VERSION,H as REQUEST_CONTEXT,ie as Web3Wallet,v as default};\n//# sourceMappingURL=index.es.js.map\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getWindowMetadata = void 0;\nconst window_getters_1 = require(\"@walletconnect/window-getters\");\nfunction getWindowMetadata() {\n let doc;\n let loc;\n try {\n doc = window_getters_1.getDocumentOrThrow();\n loc = window_getters_1.getLocationOrThrow();\n }\n catch (e) {\n return null;\n }\n function getIcons() {\n const links = doc.getElementsByTagName(\"link\");\n const icons = [];\n for (let i = 0; i < links.length; i++) {\n const link = links[i];\n const rel = link.getAttribute(\"rel\");\n if (rel) {\n if (rel.toLowerCase().indexOf(\"icon\") > -1) {\n const href = link.getAttribute(\"href\");\n if (href) {\n if (href.toLowerCase().indexOf(\"https:\") === -1 &&\n href.toLowerCase().indexOf(\"http:\") === -1 &&\n href.indexOf(\"//\") !== 0) {\n let absoluteHref = loc.protocol + \"//\" + loc.host;\n if (href.indexOf(\"/\") === 0) {\n absoluteHref += href;\n }\n else {\n const path = loc.pathname.split(\"/\");\n path.pop();\n const finalPath = path.join(\"/\");\n absoluteHref += finalPath + \"/\" + href;\n }\n icons.push(absoluteHref);\n }\n else if (href.indexOf(\"//\") === 0) {\n const absoluteUrl = loc.protocol + href;\n icons.push(absoluteUrl);\n }\n else {\n icons.push(href);\n }\n }\n }\n }\n }\n return icons;\n }\n function getWindowMetadataOfAny(...args) {\n const metaTags = doc.getElementsByTagName(\"meta\");\n for (let i = 0; i < metaTags.length; i++) {\n const tag = metaTags[i];\n const attributes = [\"itemprop\", \"property\", \"name\"]\n .map((target) => tag.getAttribute(target))\n .filter((attr) => {\n if (attr) {\n return args.includes(attr);\n }\n return false;\n });\n if (attributes.length && attributes) {\n const content = tag.getAttribute(\"content\");\n if (content) {\n return content;\n }\n }\n }\n return \"\";\n }\n function getName() {\n let name = getWindowMetadataOfAny(\"name\", \"og:site_name\", \"og:title\", \"twitter:title\");\n if (!name) {\n name = doc.title;\n }\n return name;\n }\n function getDescription() {\n const description = getWindowMetadataOfAny(\"description\", \"og:description\", \"twitter:description\", \"keywords\");\n return description;\n }\n const name = getName();\n const description = getDescription();\n const url = loc.origin;\n const icons = getIcons();\n const meta = {\n description,\n url,\n icons,\n name,\n };\n return meta;\n}\nexports.getWindowMetadata = getWindowMetadata;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getLocalStorage = exports.getLocalStorageOrThrow = exports.getCrypto = exports.getCryptoOrThrow = exports.getLocation = exports.getLocationOrThrow = exports.getNavigator = exports.getNavigatorOrThrow = exports.getDocument = exports.getDocumentOrThrow = exports.getFromWindowOrThrow = exports.getFromWindow = void 0;\nfunction getFromWindow(name) {\n let res = undefined;\n if (typeof window !== \"undefined\" && typeof window[name] !== \"undefined\") {\n res = window[name];\n }\n return res;\n}\nexports.getFromWindow = getFromWindow;\nfunction getFromWindowOrThrow(name) {\n const res = getFromWindow(name);\n if (!res) {\n throw new Error(`${name} is not defined in Window`);\n }\n return res;\n}\nexports.getFromWindowOrThrow = getFromWindowOrThrow;\nfunction getDocumentOrThrow() {\n return getFromWindowOrThrow(\"document\");\n}\nexports.getDocumentOrThrow = getDocumentOrThrow;\nfunction getDocument() {\n return getFromWindow(\"document\");\n}\nexports.getDocument = getDocument;\nfunction getNavigatorOrThrow() {\n return getFromWindowOrThrow(\"navigator\");\n}\nexports.getNavigatorOrThrow = getNavigatorOrThrow;\nfunction getNavigator() {\n return getFromWindow(\"navigator\");\n}\nexports.getNavigator = getNavigator;\nfunction getLocationOrThrow() {\n return getFromWindowOrThrow(\"location\");\n}\nexports.getLocationOrThrow = getLocationOrThrow;\nfunction getLocation() {\n return getFromWindow(\"location\");\n}\nexports.getLocation = getLocation;\nfunction getCryptoOrThrow() {\n return getFromWindowOrThrow(\"crypto\");\n}\nexports.getCryptoOrThrow = getCryptoOrThrow;\nfunction getCrypto() {\n return getFromWindow(\"crypto\");\n}\nexports.getCrypto = getCrypto;\nfunction getLocalStorageOrThrow() {\n return getFromWindowOrThrow(\"localStorage\");\n}\nexports.getLocalStorageOrThrow = getLocalStorageOrThrow;\nfunction getLocalStorage() {\n return getFromWindow(\"localStorage\");\n}\nexports.getLocalStorage = getLocalStorage;\n//# sourceMappingURL=index.js.map","var __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nvar BrowserInfo = /** @class */ (function () {\n function BrowserInfo(name, version, os) {\n this.name = name;\n this.version = version;\n this.os = os;\n this.type = 'browser';\n }\n return BrowserInfo;\n}());\nexport { BrowserInfo };\nvar NodeInfo = /** @class */ (function () {\n function NodeInfo(version) {\n this.version = version;\n this.type = 'node';\n this.name = 'node';\n this.os = process.platform;\n }\n return NodeInfo;\n}());\nexport { NodeInfo };\nvar SearchBotDeviceInfo = /** @class */ (function () {\n function SearchBotDeviceInfo(name, version, os, bot) {\n this.name = name;\n this.version = version;\n this.os = os;\n this.bot = bot;\n this.type = 'bot-device';\n }\n return SearchBotDeviceInfo;\n}());\nexport { SearchBotDeviceInfo };\nvar BotInfo = /** @class */ (function () {\n function BotInfo() {\n this.type = 'bot';\n this.bot = true; // NOTE: deprecated test name instead\n this.name = 'bot';\n this.version = null;\n this.os = null;\n }\n return BotInfo;\n}());\nexport { BotInfo };\nvar ReactNativeInfo = /** @class */ (function () {\n function ReactNativeInfo() {\n this.type = 'react-native';\n this.name = 'react-native';\n this.version = null;\n this.os = null;\n }\n return ReactNativeInfo;\n}());\nexport { ReactNativeInfo };\n// tslint:disable-next-line:max-line-length\nvar SEARCHBOX_UA_REGEX = /alexa|bot|crawl(er|ing)|facebookexternalhit|feedburner|google web preview|nagios|postrank|pingdom|slurp|spider|yahoo!|yandex/;\nvar SEARCHBOT_OS_REGEX = /(nuhk|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask\\ Jeeves\\/Teoma|ia_archiver)/;\nvar REQUIRED_VERSION_PARTS = 3;\nvar userAgentRules = [\n ['aol', /AOLShield\\/([0-9\\._]+)/],\n ['edge', /Edge\\/([0-9\\._]+)/],\n ['edge-ios', /EdgiOS\\/([0-9\\._]+)/],\n ['yandexbrowser', /YaBrowser\\/([0-9\\._]+)/],\n ['kakaotalk', /KAKAOTALK\\s([0-9\\.]+)/],\n ['samsung', /SamsungBrowser\\/([0-9\\.]+)/],\n ['silk', /\\bSilk\\/([0-9._-]+)\\b/],\n ['miui', /MiuiBrowser\\/([0-9\\.]+)$/],\n ['beaker', /BeakerBrowser\\/([0-9\\.]+)/],\n ['edge-chromium', /EdgA?\\/([0-9\\.]+)/],\n [\n 'chromium-webview',\n /(?!Chrom.*OPR)wv\\).*Chrom(?:e|ium)\\/([0-9\\.]+)(:?\\s|$)/,\n ],\n ['chrome', /(?!Chrom.*OPR)Chrom(?:e|ium)\\/([0-9\\.]+)(:?\\s|$)/],\n ['phantomjs', /PhantomJS\\/([0-9\\.]+)(:?\\s|$)/],\n ['crios', /CriOS\\/([0-9\\.]+)(:?\\s|$)/],\n ['firefox', /Firefox\\/([0-9\\.]+)(?:\\s|$)/],\n ['fxios', /FxiOS\\/([0-9\\.]+)/],\n ['opera-mini', /Opera Mini.*Version\\/([0-9\\.]+)/],\n ['opera', /Opera\\/([0-9\\.]+)(?:\\s|$)/],\n ['opera', /OPR\\/([0-9\\.]+)(:?\\s|$)/],\n ['ie', /Trident\\/7\\.0.*rv\\:([0-9\\.]+).*\\).*Gecko$/],\n ['ie', /MSIE\\s([0-9\\.]+);.*Trident\\/[4-7].0/],\n ['ie', /MSIE\\s(7\\.0)/],\n ['bb10', /BB10;\\sTouch.*Version\\/([0-9\\.]+)/],\n ['android', /Android\\s([0-9\\.]+)/],\n ['ios', /Version\\/([0-9\\._]+).*Mobile.*Safari.*/],\n ['safari', /Version\\/([0-9\\._]+).*Safari/],\n ['facebook', /FBAV\\/([0-9\\.]+)/],\n ['instagram', /Instagram\\s([0-9\\.]+)/],\n ['ios-webview', /AppleWebKit\\/([0-9\\.]+).*Mobile/],\n ['ios-webview', /AppleWebKit\\/([0-9\\.]+).*Gecko\\)$/],\n ['searchbot', SEARCHBOX_UA_REGEX],\n];\nvar operatingSystemRules = [\n ['iOS', /iP(hone|od|ad)/],\n ['Android OS', /Android/],\n ['BlackBerry OS', /BlackBerry|BB10/],\n ['Windows Mobile', /IEMobile/],\n ['Amazon OS', /Kindle/],\n ['Windows 3.11', /Win16/],\n ['Windows 95', /(Windows 95)|(Win95)|(Windows_95)/],\n ['Windows 98', /(Windows 98)|(Win98)/],\n ['Windows 2000', /(Windows NT 5.0)|(Windows 2000)/],\n ['Windows XP', /(Windows NT 5.1)|(Windows XP)/],\n ['Windows Server 2003', /(Windows NT 5.2)/],\n ['Windows Vista', /(Windows NT 6.0)/],\n ['Windows 7', /(Windows NT 6.1)/],\n ['Windows 8', /(Windows NT 6.2)/],\n ['Windows 8.1', /(Windows NT 6.3)/],\n ['Windows 10', /(Windows NT 10.0)/],\n ['Windows ME', /Windows ME/],\n ['Open BSD', /OpenBSD/],\n ['Sun OS', /SunOS/],\n ['Chrome OS', /CrOS/],\n ['Linux', /(Linux)|(X11)/],\n ['Mac OS', /(Mac_PowerPC)|(Macintosh)/],\n ['QNX', /QNX/],\n ['BeOS', /BeOS/],\n ['OS/2', /OS\\/2/],\n];\nexport function detect(userAgent) {\n if (!!userAgent) {\n return parseUserAgent(userAgent);\n }\n if (typeof document === 'undefined' &&\n typeof navigator !== 'undefined' &&\n navigator.product === 'ReactNative') {\n return new ReactNativeInfo();\n }\n if (typeof navigator !== 'undefined') {\n return parseUserAgent(navigator.userAgent);\n }\n return getNodeVersion();\n}\nfunction matchUserAgent(ua) {\n // opted for using reduce here rather than Array#first with a regex.test call\n // this is primarily because using the reduce we only perform the regex\n // execution once rather than once for the test and for the exec again below\n // probably something that needs to be benchmarked though\n return (ua !== '' &&\n userAgentRules.reduce(function (matched, _a) {\n var browser = _a[0], regex = _a[1];\n if (matched) {\n return matched;\n }\n var uaMatch = regex.exec(ua);\n return !!uaMatch && [browser, uaMatch];\n }, false));\n}\nexport function browserName(ua) {\n var data = matchUserAgent(ua);\n return data ? data[0] : null;\n}\nexport function parseUserAgent(ua) {\n var matchedRule = matchUserAgent(ua);\n if (!matchedRule) {\n return null;\n }\n var name = matchedRule[0], match = matchedRule[1];\n if (name === 'searchbot') {\n return new BotInfo();\n }\n var versionParts = match[1] && match[1].split(/[._]/).slice(0, 3);\n if (versionParts) {\n if (versionParts.length < REQUIRED_VERSION_PARTS) {\n versionParts = __spreadArrays(versionParts, createVersionParts(REQUIRED_VERSION_PARTS - versionParts.length));\n }\n }\n else {\n versionParts = [];\n }\n var version = versionParts.join('.');\n var os = detectOS(ua);\n var searchBotMatch = SEARCHBOT_OS_REGEX.exec(ua);\n if (searchBotMatch && searchBotMatch[1]) {\n return new SearchBotDeviceInfo(name, version, os, searchBotMatch[1]);\n }\n return new BrowserInfo(name, version, os);\n}\nexport function detectOS(ua) {\n for (var ii = 0, count = operatingSystemRules.length; ii < count; ii++) {\n var _a = operatingSystemRules[ii], os = _a[0], regex = _a[1];\n var match = regex.exec(ua);\n if (match) {\n return os;\n }\n }\n return null;\n}\nexport function getNodeVersion() {\n var isNode = typeof process !== 'undefined' && process.version;\n return isNode ? new NodeInfo(process.version.slice(1)) : null;\n}\nfunction createVersionParts(count) {\n var output = [];\n for (var ii = 0; ii < count; ii++) {\n output.push('0');\n }\n return output;\n}\n","import * as windowMetadata from \"@walletconnect/window-metadata\";\nimport * as windowGetters from \"@walletconnect/window-getters\";\nimport { detect, } from \"detect-browser\";\nexport function detectEnv(userAgent) {\n return detect(userAgent);\n}\nexport function detectOS() {\n const env = detectEnv();\n return env && env.os ? env.os : undefined;\n}\nexport function isAndroid() {\n const os = detectOS();\n return os ? os.toLowerCase().includes(\"android\") : false;\n}\nexport function isIOS() {\n const os = detectOS();\n return os\n ? os.toLowerCase().includes(\"ios\") ||\n (os.toLowerCase().includes(\"mac\") && navigator.maxTouchPoints > 1)\n : false;\n}\nexport function isMobile() {\n const os = detectOS();\n return os ? isAndroid() || isIOS() : false;\n}\nexport function isNode() {\n const env = detectEnv();\n const result = env && env.name ? env.name.toLowerCase() === \"node\" : false;\n return result;\n}\nexport function isBrowser() {\n const result = !isNode() && !!getNavigator();\n return result;\n}\nexport const getFromWindow = windowGetters.getFromWindow;\nexport const getFromWindowOrThrow = windowGetters.getFromWindowOrThrow;\nexport const getDocumentOrThrow = windowGetters.getDocumentOrThrow;\nexport const getDocument = windowGetters.getDocument;\nexport const getNavigatorOrThrow = windowGetters.getNavigatorOrThrow;\nexport const getNavigator = windowGetters.getNavigator;\nexport const getLocationOrThrow = windowGetters.getLocationOrThrow;\nexport const getLocation = windowGetters.getLocation;\nexport const getCryptoOrThrow = windowGetters.getCryptoOrThrow;\nexport const getCrypto = windowGetters.getCrypto;\nexport const getLocalStorageOrThrow = windowGetters.getLocalStorageOrThrow;\nexport const getLocalStorage = windowGetters.getLocalStorage;\nexport function getClientMeta() {\n return windowMetadata.getWindowMetadata();\n}\n//# sourceMappingURL=browser.js.map","export function safeJsonParse(value) {\n if (typeof value !== \"string\") {\n throw new Error(`Cannot safe json parse value of type ${typeof value}`);\n }\n try {\n return JSON.parse(value);\n }\n catch (_a) {\n return value;\n }\n}\nexport function safeJsonStringify(value) {\n return typeof value === \"string\" ? value : JSON.stringify(value);\n}\n//# sourceMappingURL=index.js.map","import * as safeJson from \"@walletconnect/safe-json\";\nexport const safeJsonParse = safeJson.safeJsonParse;\nexport const safeJsonStringify = safeJson.safeJsonStringify;\n//# sourceMappingURL=json.js.map","import { safeJsonParse, safeJsonStringify } from \"./json\";\nimport { getLocalStorage } from \"./browser\";\nexport function setLocal(key, data) {\n const raw = safeJsonStringify(data);\n const local = getLocalStorage();\n if (local) {\n local.setItem(key, raw);\n }\n}\nexport function getLocal(key) {\n let data = null;\n let raw = null;\n const local = getLocalStorage();\n if (local) {\n raw = local.getItem(key);\n }\n data = raw ? safeJsonParse(raw) : raw;\n return data;\n}\nexport function removeLocal(key) {\n const local = getLocalStorage();\n if (local) {\n local.removeItem(key);\n }\n}\n//# sourceMappingURL=local.js.map","import { setLocal } from \"./local\";\nexport const mobileLinkChoiceKey = \"WALLETCONNECT_DEEPLINK_CHOICE\";\nexport function formatIOSMobile(uri, entry) {\n const encodedUri = encodeURIComponent(uri);\n return entry.universalLink\n ? `${entry.universalLink}/wc?uri=${encodedUri}`\n : entry.deepLink\n ? `${entry.deepLink}${entry.deepLink.endsWith(\":\") ? \"//\" : \"/\"}wc?uri=${encodedUri}`\n : \"\";\n}\nexport function saveMobileLinkInfo(data) {\n const focusUri = data.href.split(\"?\")[0];\n setLocal(mobileLinkChoiceKey, Object.assign(Object.assign({}, data), { href: focusUri }));\n}\nexport function getMobileRegistryEntry(registry, name) {\n return registry.filter((entry) => entry.name.toLowerCase().includes(name.toLowerCase()))[0];\n}\nexport function getMobileLinkRegistry(registry, whitelist) {\n let links = registry;\n if (whitelist) {\n links = whitelist.map((name) => getMobileRegistryEntry(registry, name)).filter(Boolean);\n }\n return links;\n}\n//# sourceMappingURL=mobile.js.map","const API_URL = \"https://registry.walletconnect.com\";\nexport function getWalletRegistryUrl() {\n return API_URL + \"/api/v2/wallets\";\n}\nexport function getDappRegistryUrl() {\n return API_URL + \"/api/v2/dapps\";\n}\nexport function formatMobileRegistryEntry(entry, platform = \"mobile\") {\n var _a;\n return {\n name: entry.name || \"\",\n shortName: entry.metadata.shortName || \"\",\n color: entry.metadata.colors.primary || \"\",\n logo: (_a = entry.image_url.sm) !== null && _a !== void 0 ? _a : \"\",\n universalLink: entry[platform].universal || \"\",\n deepLink: entry[platform].native || \"\",\n };\n}\nexport function formatMobileRegistry(registry, platform = \"mobile\") {\n return Object.values(registry)\n .filter(entry => !!entry[platform].universal || !!entry[platform].native)\n .map((entry) => formatMobileRegistryEntry(entry, platform));\n}\n//# sourceMappingURL=registry.js.map","// can-promise has a crash in some versions of react native that dont have\n// standard global objects\n// https://github.com/soldair/node-qrcode/issues/157\n\nmodule.exports = function () {\n return typeof Promise === 'function' && Promise.prototype && Promise.prototype.then\n}\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","/**\n * Implementation of a subset of node.js Buffer methods for the browser.\n * Based on https://github.com/feross/buffer\n */\n\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar isArray = require('isarray')\n\nfunction typedArraySupport () {\n // Can typed array instances be augmented?\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nvar K_MAX_LENGTH = Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n\nfunction Buffer (arg, offset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, offset, length)\n }\n\n if (typeof arg === 'number') {\n return allocUnsafe(this, arg)\n }\n\n return from(this, arg, offset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true,\n enumerable: false,\n writable: false\n })\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n\nfunction createBuffer (that, length) {\n var buf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n buf = new Uint8Array(length)\n buf.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n buf = that\n if (buf === null) {\n buf = new Buffer(length)\n }\n buf.length = length\n }\n\n return buf\n}\n\nfunction allocUnsafe (that, size) {\n var buf = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n buf[i] = 0\n }\n }\n\n return buf\n}\n\nfunction fromString (that, string) {\n var length = byteLength(string) | 0\n var buf = createBuffer(that, length)\n\n var actual = buf.write(string)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n var buf = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n var buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n buf.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n buf = fromArrayLike(that, buf)\n }\n\n return buf\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n var buf = createBuffer(that, len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction byteLength (string) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n return utf8ToBytes(string).length\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction from (that, value, offset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, offset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, offset)\n }\n\n return fromObject(that, value)\n}\n\nBuffer.prototype.write = function write (string, offset, length) {\n // Buffer#write(string)\n if (offset === undefined) {\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n } else {\n length = undefined\n }\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n return utf8Write(this, string, offset, length)\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\nBuffer.prototype.fill = function fill (val, start, end) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : new Buffer(val)\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return createBuffer(null, 0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = allocUnsafe(null, length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nBuffer.byteLength = byteLength\n\nBuffer.prototype._isBuffer = true\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nmodule.exports.alloc = function (size) {\n var buffer = new Buffer(size)\n buffer.fill(0)\n return buffer\n}\n\nmodule.exports.from = function (data) {\n return new Buffer(data)\n}\n","var toSJISFunction\nvar CODEWORDS_COUNT = [\n 0, // Not used\n 26, 44, 70, 100, 134, 172, 196, 242, 292, 346,\n 404, 466, 532, 581, 655, 733, 815, 901, 991, 1085,\n 1156, 1258, 1364, 1474, 1588, 1706, 1828, 1921, 2051, 2185,\n 2323, 2465, 2611, 2761, 2876, 3034, 3196, 3362, 3532, 3706\n]\n\n/**\n * Returns the QR Code size for the specified version\n *\n * @param {Number} version QR Code version\n * @return {Number} size of QR code\n */\nexports.getSymbolSize = function getSymbolSize (version) {\n if (!version) throw new Error('\"version\" cannot be null or undefined')\n if (version < 1 || version > 40) throw new Error('\"version\" should be in range from 1 to 40')\n return version * 4 + 17\n}\n\n/**\n * Returns the total number of codewords used to store data and EC information.\n *\n * @param {Number} version QR Code version\n * @return {Number} Data length in bits\n */\nexports.getSymbolTotalCodewords = function getSymbolTotalCodewords (version) {\n return CODEWORDS_COUNT[version]\n}\n\n/**\n * Encode data with Bose-Chaudhuri-Hocquenghem\n *\n * @param {Number} data Value to encode\n * @return {Number} Encoded value\n */\nexports.getBCHDigit = function (data) {\n var digit = 0\n\n while (data !== 0) {\n digit++\n data >>>= 1\n }\n\n return digit\n}\n\nexports.setToSJISFunction = function setToSJISFunction (f) {\n if (typeof f !== 'function') {\n throw new Error('\"toSJISFunc\" is not a valid function.')\n }\n\n toSJISFunction = f\n}\n\nexports.isKanjiModeEnabled = function () {\n return typeof toSJISFunction !== 'undefined'\n}\n\nexports.toSJIS = function toSJIS (kanji) {\n return toSJISFunction(kanji)\n}\n","function BitBuffer () {\n this.buffer = []\n this.length = 0\n}\n\nBitBuffer.prototype = {\n\n get: function (index) {\n var bufIndex = Math.floor(index / 8)\n return ((this.buffer[bufIndex] >>> (7 - index % 8)) & 1) === 1\n },\n\n put: function (num, length) {\n for (var i = 0; i < length; i++) {\n this.putBit(((num >>> (length - i - 1)) & 1) === 1)\n }\n },\n\n getLengthInBits: function () {\n return this.length\n },\n\n putBit: function (bit) {\n var bufIndex = Math.floor(this.length / 8)\n if (this.buffer.length <= bufIndex) {\n this.buffer.push(0)\n }\n\n if (bit) {\n this.buffer[bufIndex] |= (0x80 >>> (this.length % 8))\n }\n\n this.length++\n }\n}\n\nmodule.exports = BitBuffer\n","exports.L = { bit: 1 }\nexports.M = { bit: 0 }\nexports.Q = { bit: 3 }\nexports.H = { bit: 2 }\n\nfunction fromString (string) {\n if (typeof string !== 'string') {\n throw new Error('Param is not a string')\n }\n\n var lcStr = string.toLowerCase()\n\n switch (lcStr) {\n case 'l':\n case 'low':\n return exports.L\n\n case 'm':\n case 'medium':\n return exports.M\n\n case 'q':\n case 'quartile':\n return exports.Q\n\n case 'h':\n case 'high':\n return exports.H\n\n default:\n throw new Error('Unknown EC Level: ' + string)\n }\n}\n\nexports.isValid = function isValid (level) {\n return level && typeof level.bit !== 'undefined' &&\n level.bit >= 0 && level.bit < 4\n}\n\nexports.from = function from (value, defaultValue) {\n if (exports.isValid(value)) {\n return value\n }\n\n try {\n return fromString(value)\n } catch (e) {\n return defaultValue\n }\n}\n","var BufferUtil = require('../utils/buffer')\n\n/**\n * Helper class to handle QR Code symbol modules\n *\n * @param {Number} size Symbol size\n */\nfunction BitMatrix (size) {\n if (!size || size < 1) {\n throw new Error('BitMatrix size must be defined and greater than 0')\n }\n\n this.size = size\n this.data = BufferUtil.alloc(size * size)\n this.reservedBit = BufferUtil.alloc(size * size)\n}\n\n/**\n * Set bit value at specified location\n * If reserved flag is set, this bit will be ignored during masking process\n *\n * @param {Number} row\n * @param {Number} col\n * @param {Boolean} value\n * @param {Boolean} reserved\n */\nBitMatrix.prototype.set = function (row, col, value, reserved) {\n var index = row * this.size + col\n this.data[index] = value\n if (reserved) this.reservedBit[index] = true\n}\n\n/**\n * Returns bit value at specified location\n *\n * @param {Number} row\n * @param {Number} col\n * @return {Boolean}\n */\nBitMatrix.prototype.get = function (row, col) {\n return this.data[row * this.size + col]\n}\n\n/**\n * Applies xor operator at specified location\n * (used during masking process)\n *\n * @param {Number} row\n * @param {Number} col\n * @param {Boolean} value\n */\nBitMatrix.prototype.xor = function (row, col, value) {\n this.data[row * this.size + col] ^= value\n}\n\n/**\n * Check if bit at specified location is reserved\n *\n * @param {Number} row\n * @param {Number} col\n * @return {Boolean}\n */\nBitMatrix.prototype.isReserved = function (row, col) {\n return this.reservedBit[row * this.size + col]\n}\n\nmodule.exports = BitMatrix\n","/**\n * Alignment pattern are fixed reference pattern in defined positions\n * in a matrix symbology, which enables the decode software to re-synchronise\n * the coordinate mapping of the image modules in the event of moderate amounts\n * of distortion of the image.\n *\n * Alignment patterns are present only in QR Code symbols of version 2 or larger\n * and their number depends on the symbol version.\n */\n\nvar getSymbolSize = require('./utils').getSymbolSize\n\n/**\n * Calculate the row/column coordinates of the center module of each alignment pattern\n * for the specified QR Code version.\n *\n * The alignment patterns are positioned symmetrically on either side of the diagonal\n * running from the top left corner of the symbol to the bottom right corner.\n *\n * Since positions are simmetrical only half of the coordinates are returned.\n * Each item of the array will represent in turn the x and y coordinate.\n * @see {@link getPositions}\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinate\n */\nexports.getRowColCoords = function getRowColCoords (version) {\n if (version === 1) return []\n\n var posCount = Math.floor(version / 7) + 2\n var size = getSymbolSize(version)\n var intervals = size === 145 ? 26 : Math.ceil((size - 13) / (2 * posCount - 2)) * 2\n var positions = [size - 7] // Last coord is always (size - 7)\n\n for (var i = 1; i < posCount - 1; i++) {\n positions[i] = positions[i - 1] - intervals\n }\n\n positions.push(6) // First coord is always 6\n\n return positions.reverse()\n}\n\n/**\n * Returns an array containing the positions of each alignment pattern.\n * Each array's element represent the center point of the pattern as (x, y) coordinates\n *\n * Coordinates are calculated expanding the row/column coordinates returned by {@link getRowColCoords}\n * and filtering out the items that overlaps with finder pattern\n *\n * @example\n * For a Version 7 symbol {@link getRowColCoords} returns values 6, 22 and 38.\n * The alignment patterns, therefore, are to be centered on (row, column)\n * positions (6,22), (22,6), (22,22), (22,38), (38,22), (38,38).\n * Note that the coordinates (6,6), (6,38), (38,6) are occupied by finder patterns\n * and are not therefore used for alignment patterns.\n *\n * var pos = getPositions(7)\n * // [[6,22], [22,6], [22,22], [22,38], [38,22], [38,38]]\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinates\n */\nexports.getPositions = function getPositions (version) {\n var coords = []\n var pos = exports.getRowColCoords(version)\n var posLength = pos.length\n\n for (var i = 0; i < posLength; i++) {\n for (var j = 0; j < posLength; j++) {\n // Skip if position is occupied by finder patterns\n if ((i === 0 && j === 0) || // top-left\n (i === 0 && j === posLength - 1) || // bottom-left\n (i === posLength - 1 && j === 0)) { // top-right\n continue\n }\n\n coords.push([pos[i], pos[j]])\n }\n }\n\n return coords\n}\n","var getSymbolSize = require('./utils').getSymbolSize\nvar FINDER_PATTERN_SIZE = 7\n\n/**\n * Returns an array containing the positions of each finder pattern.\n * Each array's element represent the top-left point of the pattern as (x, y) coordinates\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinates\n */\nexports.getPositions = function getPositions (version) {\n var size = getSymbolSize(version)\n\n return [\n // top-left\n [0, 0],\n // top-right\n [size - FINDER_PATTERN_SIZE, 0],\n // bottom-left\n [0, size - FINDER_PATTERN_SIZE]\n ]\n}\n","/**\n * Data mask pattern reference\n * @type {Object}\n */\nexports.Patterns = {\n PATTERN000: 0,\n PATTERN001: 1,\n PATTERN010: 2,\n PATTERN011: 3,\n PATTERN100: 4,\n PATTERN101: 5,\n PATTERN110: 6,\n PATTERN111: 7\n}\n\n/**\n * Weighted penalty scores for the undesirable features\n * @type {Object}\n */\nvar PenaltyScores = {\n N1: 3,\n N2: 3,\n N3: 40,\n N4: 10\n}\n\n/**\n * Check if mask pattern value is valid\n *\n * @param {Number} mask Mask pattern\n * @return {Boolean} true if valid, false otherwise\n */\nexports.isValid = function isValid (mask) {\n return mask != null && mask !== '' && !isNaN(mask) && mask >= 0 && mask <= 7\n}\n\n/**\n * Returns mask pattern from a value.\n * If value is not valid, returns undefined\n *\n * @param {Number|String} value Mask pattern value\n * @return {Number} Valid mask pattern or undefined\n */\nexports.from = function from (value) {\n return exports.isValid(value) ? parseInt(value, 10) : undefined\n}\n\n/**\n* Find adjacent modules in row/column with the same color\n* and assign a penalty value.\n*\n* Points: N1 + i\n* i is the amount by which the number of adjacent modules of the same color exceeds 5\n*/\nexports.getPenaltyN1 = function getPenaltyN1 (data) {\n var size = data.size\n var points = 0\n var sameCountCol = 0\n var sameCountRow = 0\n var lastCol = null\n var lastRow = null\n\n for (var row = 0; row < size; row++) {\n sameCountCol = sameCountRow = 0\n lastCol = lastRow = null\n\n for (var col = 0; col < size; col++) {\n var module = data.get(row, col)\n if (module === lastCol) {\n sameCountCol++\n } else {\n if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5)\n lastCol = module\n sameCountCol = 1\n }\n\n module = data.get(col, row)\n if (module === lastRow) {\n sameCountRow++\n } else {\n if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5)\n lastRow = module\n sameCountRow = 1\n }\n }\n\n if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5)\n if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5)\n }\n\n return points\n}\n\n/**\n * Find 2x2 blocks with the same color and assign a penalty value\n *\n * Points: N2 * (m - 1) * (n - 1)\n */\nexports.getPenaltyN2 = function getPenaltyN2 (data) {\n var size = data.size\n var points = 0\n\n for (var row = 0; row < size - 1; row++) {\n for (var col = 0; col < size - 1; col++) {\n var last = data.get(row, col) +\n data.get(row, col + 1) +\n data.get(row + 1, col) +\n data.get(row + 1, col + 1)\n\n if (last === 4 || last === 0) points++\n }\n }\n\n return points * PenaltyScores.N2\n}\n\n/**\n * Find 1:1:3:1:1 ratio (dark:light:dark:light:dark) pattern in row/column,\n * preceded or followed by light area 4 modules wide\n *\n * Points: N3 * number of pattern found\n */\nexports.getPenaltyN3 = function getPenaltyN3 (data) {\n var size = data.size\n var points = 0\n var bitsCol = 0\n var bitsRow = 0\n\n for (var row = 0; row < size; row++) {\n bitsCol = bitsRow = 0\n for (var col = 0; col < size; col++) {\n bitsCol = ((bitsCol << 1) & 0x7FF) | data.get(row, col)\n if (col >= 10 && (bitsCol === 0x5D0 || bitsCol === 0x05D)) points++\n\n bitsRow = ((bitsRow << 1) & 0x7FF) | data.get(col, row)\n if (col >= 10 && (bitsRow === 0x5D0 || bitsRow === 0x05D)) points++\n }\n }\n\n return points * PenaltyScores.N3\n}\n\n/**\n * Calculate proportion of dark modules in entire symbol\n *\n * Points: N4 * k\n *\n * k is the rating of the deviation of the proportion of dark modules\n * in the symbol from 50% in steps of 5%\n */\nexports.getPenaltyN4 = function getPenaltyN4 (data) {\n var darkCount = 0\n var modulesCount = data.data.length\n\n for (var i = 0; i < modulesCount; i++) darkCount += data.data[i]\n\n var k = Math.abs(Math.ceil((darkCount * 100 / modulesCount) / 5) - 10)\n\n return k * PenaltyScores.N4\n}\n\n/**\n * Return mask value at given position\n *\n * @param {Number} maskPattern Pattern reference value\n * @param {Number} i Row\n * @param {Number} j Column\n * @return {Boolean} Mask value\n */\nfunction getMaskAt (maskPattern, i, j) {\n switch (maskPattern) {\n case exports.Patterns.PATTERN000: return (i + j) % 2 === 0\n case exports.Patterns.PATTERN001: return i % 2 === 0\n case exports.Patterns.PATTERN010: return j % 3 === 0\n case exports.Patterns.PATTERN011: return (i + j) % 3 === 0\n case exports.Patterns.PATTERN100: return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 === 0\n case exports.Patterns.PATTERN101: return (i * j) % 2 + (i * j) % 3 === 0\n case exports.Patterns.PATTERN110: return ((i * j) % 2 + (i * j) % 3) % 2 === 0\n case exports.Patterns.PATTERN111: return ((i * j) % 3 + (i + j) % 2) % 2 === 0\n\n default: throw new Error('bad maskPattern:' + maskPattern)\n }\n}\n\n/**\n * Apply a mask pattern to a BitMatrix\n *\n * @param {Number} pattern Pattern reference number\n * @param {BitMatrix} data BitMatrix data\n */\nexports.applyMask = function applyMask (pattern, data) {\n var size = data.size\n\n for (var col = 0; col < size; col++) {\n for (var row = 0; row < size; row++) {\n if (data.isReserved(row, col)) continue\n data.xor(row, col, getMaskAt(pattern, row, col))\n }\n }\n}\n\n/**\n * Returns the best mask pattern for data\n *\n * @param {BitMatrix} data\n * @return {Number} Mask pattern reference number\n */\nexports.getBestMask = function getBestMask (data, setupFormatFunc) {\n var numPatterns = Object.keys(exports.Patterns).length\n var bestPattern = 0\n var lowerPenalty = Infinity\n\n for (var p = 0; p < numPatterns; p++) {\n setupFormatFunc(p)\n exports.applyMask(p, data)\n\n // Calculate penalty\n var penalty =\n exports.getPenaltyN1(data) +\n exports.getPenaltyN2(data) +\n exports.getPenaltyN3(data) +\n exports.getPenaltyN4(data)\n\n // Undo previously applied mask\n exports.applyMask(p, data)\n\n if (penalty < lowerPenalty) {\n lowerPenalty = penalty\n bestPattern = p\n }\n }\n\n return bestPattern\n}\n","var ECLevel = require('./error-correction-level')\r\n\r\nvar EC_BLOCKS_TABLE = [\r\n// L M Q H\r\n 1, 1, 1, 1,\r\n 1, 1, 1, 1,\r\n 1, 1, 2, 2,\r\n 1, 2, 2, 4,\r\n 1, 2, 4, 4,\r\n 2, 4, 4, 4,\r\n 2, 4, 6, 5,\r\n 2, 4, 6, 6,\r\n 2, 5, 8, 8,\r\n 4, 5, 8, 8,\r\n 4, 5, 8, 11,\r\n 4, 8, 10, 11,\r\n 4, 9, 12, 16,\r\n 4, 9, 16, 16,\r\n 6, 10, 12, 18,\r\n 6, 10, 17, 16,\r\n 6, 11, 16, 19,\r\n 6, 13, 18, 21,\r\n 7, 14, 21, 25,\r\n 8, 16, 20, 25,\r\n 8, 17, 23, 25,\r\n 9, 17, 23, 34,\r\n 9, 18, 25, 30,\r\n 10, 20, 27, 32,\r\n 12, 21, 29, 35,\r\n 12, 23, 34, 37,\r\n 12, 25, 34, 40,\r\n 13, 26, 35, 42,\r\n 14, 28, 38, 45,\r\n 15, 29, 40, 48,\r\n 16, 31, 43, 51,\r\n 17, 33, 45, 54,\r\n 18, 35, 48, 57,\r\n 19, 37, 51, 60,\r\n 19, 38, 53, 63,\r\n 20, 40, 56, 66,\r\n 21, 43, 59, 70,\r\n 22, 45, 62, 74,\r\n 24, 47, 65, 77,\r\n 25, 49, 68, 81\r\n]\r\n\r\nvar EC_CODEWORDS_TABLE = [\r\n// L M Q H\r\n 7, 10, 13, 17,\r\n 10, 16, 22, 28,\r\n 15, 26, 36, 44,\r\n 20, 36, 52, 64,\r\n 26, 48, 72, 88,\r\n 36, 64, 96, 112,\r\n 40, 72, 108, 130,\r\n 48, 88, 132, 156,\r\n 60, 110, 160, 192,\r\n 72, 130, 192, 224,\r\n 80, 150, 224, 264,\r\n 96, 176, 260, 308,\r\n 104, 198, 288, 352,\r\n 120, 216, 320, 384,\r\n 132, 240, 360, 432,\r\n 144, 280, 408, 480,\r\n 168, 308, 448, 532,\r\n 180, 338, 504, 588,\r\n 196, 364, 546, 650,\r\n 224, 416, 600, 700,\r\n 224, 442, 644, 750,\r\n 252, 476, 690, 816,\r\n 270, 504, 750, 900,\r\n 300, 560, 810, 960,\r\n 312, 588, 870, 1050,\r\n 336, 644, 952, 1110,\r\n 360, 700, 1020, 1200,\r\n 390, 728, 1050, 1260,\r\n 420, 784, 1140, 1350,\r\n 450, 812, 1200, 1440,\r\n 480, 868, 1290, 1530,\r\n 510, 924, 1350, 1620,\r\n 540, 980, 1440, 1710,\r\n 570, 1036, 1530, 1800,\r\n 570, 1064, 1590, 1890,\r\n 600, 1120, 1680, 1980,\r\n 630, 1204, 1770, 2100,\r\n 660, 1260, 1860, 2220,\r\n 720, 1316, 1950, 2310,\r\n 750, 1372, 2040, 2430\r\n]\r\n\r\n/**\r\n * Returns the number of error correction block that the QR Code should contain\r\n * for the specified version and error correction level.\r\n *\r\n * @param {Number} version QR Code version\r\n * @param {Number} errorCorrectionLevel Error correction level\r\n * @return {Number} Number of error correction blocks\r\n */\r\nexports.getBlocksCount = function getBlocksCount (version, errorCorrectionLevel) {\r\n switch (errorCorrectionLevel) {\r\n case ECLevel.L:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 0]\r\n case ECLevel.M:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 1]\r\n case ECLevel.Q:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 2]\r\n case ECLevel.H:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 3]\r\n default:\r\n return undefined\r\n }\r\n}\r\n\r\n/**\r\n * Returns the number of error correction codewords to use for the specified\r\n * version and error correction level.\r\n *\r\n * @param {Number} version QR Code version\r\n * @param {Number} errorCorrectionLevel Error correction level\r\n * @return {Number} Number of error correction codewords\r\n */\r\nexports.getTotalCodewordsCount = function getTotalCodewordsCount (version, errorCorrectionLevel) {\r\n switch (errorCorrectionLevel) {\r\n case ECLevel.L:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 0]\r\n case ECLevel.M:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 1]\r\n case ECLevel.Q:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 2]\r\n case ECLevel.H:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 3]\r\n default:\r\n return undefined\r\n }\r\n}\r\n","var BufferUtil = require('../utils/buffer')\n\nvar EXP_TABLE = BufferUtil.alloc(512)\nvar LOG_TABLE = BufferUtil.alloc(256)\n/**\n * Precompute the log and anti-log tables for faster computation later\n *\n * For each possible value in the galois field 2^8, we will pre-compute\n * the logarithm and anti-logarithm (exponential) of this value\n *\n * ref {@link https://en.wikiversity.org/wiki/Reed%E2%80%93Solomon_codes_for_coders#Introduction_to_mathematical_fields}\n */\n;(function initTables () {\n var x = 1\n for (var i = 0; i < 255; i++) {\n EXP_TABLE[i] = x\n LOG_TABLE[x] = i\n\n x <<= 1 // multiply by 2\n\n // The QR code specification says to use byte-wise modulo 100011101 arithmetic.\n // This means that when a number is 256 or larger, it should be XORed with 0x11D.\n if (x & 0x100) { // similar to x >= 256, but a lot faster (because 0x100 == 256)\n x ^= 0x11D\n }\n }\n\n // Optimization: double the size of the anti-log table so that we don't need to mod 255 to\n // stay inside the bounds (because we will mainly use this table for the multiplication of\n // two GF numbers, no more).\n // @see {@link mul}\n for (i = 255; i < 512; i++) {\n EXP_TABLE[i] = EXP_TABLE[i - 255]\n }\n}())\n\n/**\n * Returns log value of n inside Galois Field\n *\n * @param {Number} n\n * @return {Number}\n */\nexports.log = function log (n) {\n if (n < 1) throw new Error('log(' + n + ')')\n return LOG_TABLE[n]\n}\n\n/**\n * Returns anti-log value of n inside Galois Field\n *\n * @param {Number} n\n * @return {Number}\n */\nexports.exp = function exp (n) {\n return EXP_TABLE[n]\n}\n\n/**\n * Multiplies two number inside Galois Field\n *\n * @param {Number} x\n * @param {Number} y\n * @return {Number}\n */\nexports.mul = function mul (x, y) {\n if (x === 0 || y === 0) return 0\n\n // should be EXP_TABLE[(LOG_TABLE[x] + LOG_TABLE[y]) % 255] if EXP_TABLE wasn't oversized\n // @see {@link initTables}\n return EXP_TABLE[LOG_TABLE[x] + LOG_TABLE[y]]\n}\n","var BufferUtil = require('../utils/buffer')\nvar GF = require('./galois-field')\n\n/**\n * Multiplies two polynomials inside Galois Field\n *\n * @param {Buffer} p1 Polynomial\n * @param {Buffer} p2 Polynomial\n * @return {Buffer} Product of p1 and p2\n */\nexports.mul = function mul (p1, p2) {\n var coeff = BufferUtil.alloc(p1.length + p2.length - 1)\n\n for (var i = 0; i < p1.length; i++) {\n for (var j = 0; j < p2.length; j++) {\n coeff[i + j] ^= GF.mul(p1[i], p2[j])\n }\n }\n\n return coeff\n}\n\n/**\n * Calculate the remainder of polynomials division\n *\n * @param {Buffer} divident Polynomial\n * @param {Buffer} divisor Polynomial\n * @return {Buffer} Remainder\n */\nexports.mod = function mod (divident, divisor) {\n var result = BufferUtil.from(divident)\n\n while ((result.length - divisor.length) >= 0) {\n var coeff = result[0]\n\n for (var i = 0; i < divisor.length; i++) {\n result[i] ^= GF.mul(divisor[i], coeff)\n }\n\n // remove all zeros from buffer head\n var offset = 0\n while (offset < result.length && result[offset] === 0) offset++\n result = result.slice(offset)\n }\n\n return result\n}\n\n/**\n * Generate an irreducible generator polynomial of specified degree\n * (used by Reed-Solomon encoder)\n *\n * @param {Number} degree Degree of the generator polynomial\n * @return {Buffer} Buffer containing polynomial coefficients\n */\nexports.generateECPolynomial = function generateECPolynomial (degree) {\n var poly = BufferUtil.from([1])\n for (var i = 0; i < degree; i++) {\n poly = exports.mul(poly, [1, GF.exp(i)])\n }\n\n return poly\n}\n","var BufferUtil = require('../utils/buffer')\nvar Polynomial = require('./polynomial')\nvar Buffer = require('buffer').Buffer\n\nfunction ReedSolomonEncoder (degree) {\n this.genPoly = undefined\n this.degree = degree\n\n if (this.degree) this.initialize(this.degree)\n}\n\n/**\n * Initialize the encoder.\n * The input param should correspond to the number of error correction codewords.\n *\n * @param {Number} degree\n */\nReedSolomonEncoder.prototype.initialize = function initialize (degree) {\n // create an irreducible generator polynomial\n this.degree = degree\n this.genPoly = Polynomial.generateECPolynomial(this.degree)\n}\n\n/**\n * Encodes a chunk of data\n *\n * @param {Buffer} data Buffer containing input data\n * @return {Buffer} Buffer containing encoded data\n */\nReedSolomonEncoder.prototype.encode = function encode (data) {\n if (!this.genPoly) {\n throw new Error('Encoder not initialized')\n }\n\n // Calculate EC for this data block\n // extends data size to data+genPoly size\n var pad = BufferUtil.alloc(this.degree)\n var paddedData = Buffer.concat([data, pad], data.length + this.degree)\n\n // The error correction codewords are the remainder after dividing the data codewords\n // by a generator polynomial\n var remainder = Polynomial.mod(paddedData, this.genPoly)\n\n // return EC data blocks (last n byte, where n is the degree of genPoly)\n // If coefficients number in remainder are less than genPoly degree,\n // pad with 0s to the left to reach the needed number of coefficients\n var start = this.degree - remainder.length\n if (start > 0) {\n var buff = BufferUtil.alloc(this.degree)\n remainder.copy(buff, start)\n\n return buff\n }\n\n return remainder\n}\n\nmodule.exports = ReedSolomonEncoder\n","/**\n * Check if QR Code version is valid\n *\n * @param {Number} version QR Code version\n * @return {Boolean} true if valid version, false otherwise\n */\nexports.isValid = function isValid (version) {\n return !isNaN(version) && version >= 1 && version <= 40\n}\n","var numeric = '[0-9]+'\nvar alphanumeric = '[A-Z $%*+\\\\-./:]+'\nvar kanji = '(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|' +\n '[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|' +\n '[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|' +\n '[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+'\nkanji = kanji.replace(/u/g, '\\\\u')\n\nvar byte = '(?:(?![A-Z0-9 $%*+\\\\-./:]|' + kanji + ')(?:.|[\\r\\n]))+'\n\nexports.KANJI = new RegExp(kanji, 'g')\nexports.BYTE_KANJI = new RegExp('[^A-Z0-9 $%*+\\\\-./:]+', 'g')\nexports.BYTE = new RegExp(byte, 'g')\nexports.NUMERIC = new RegExp(numeric, 'g')\nexports.ALPHANUMERIC = new RegExp(alphanumeric, 'g')\n\nvar TEST_KANJI = new RegExp('^' + kanji + '$')\nvar TEST_NUMERIC = new RegExp('^' + numeric + '$')\nvar TEST_ALPHANUMERIC = new RegExp('^[A-Z0-9 $%*+\\\\-./:]+$')\n\nexports.testKanji = function testKanji (str) {\n return TEST_KANJI.test(str)\n}\n\nexports.testNumeric = function testNumeric (str) {\n return TEST_NUMERIC.test(str)\n}\n\nexports.testAlphanumeric = function testAlphanumeric (str) {\n return TEST_ALPHANUMERIC.test(str)\n}\n","var VersionCheck = require('./version-check')\nvar Regex = require('./regex')\n\n/**\n * Numeric mode encodes data from the decimal digit set (0 - 9)\n * (byte values 30HEX to 39HEX).\n * Normally, 3 data characters are represented by 10 bits.\n *\n * @type {Object}\n */\nexports.NUMERIC = {\n id: 'Numeric',\n bit: 1 << 0,\n ccBits: [10, 12, 14]\n}\n\n/**\n * Alphanumeric mode encodes data from a set of 45 characters,\n * i.e. 10 numeric digits (0 - 9),\n * 26 alphabetic characters (A - Z),\n * and 9 symbols (SP, $, %, *, +, -, ., /, :).\n * Normally, two input characters are represented by 11 bits.\n *\n * @type {Object}\n */\nexports.ALPHANUMERIC = {\n id: 'Alphanumeric',\n bit: 1 << 1,\n ccBits: [9, 11, 13]\n}\n\n/**\n * In byte mode, data is encoded at 8 bits per character.\n *\n * @type {Object}\n */\nexports.BYTE = {\n id: 'Byte',\n bit: 1 << 2,\n ccBits: [8, 16, 16]\n}\n\n/**\n * The Kanji mode efficiently encodes Kanji characters in accordance with\n * the Shift JIS system based on JIS X 0208.\n * The Shift JIS values are shifted from the JIS X 0208 values.\n * JIS X 0208 gives details of the shift coded representation.\n * Each two-byte character value is compacted to a 13-bit binary codeword.\n *\n * @type {Object}\n */\nexports.KANJI = {\n id: 'Kanji',\n bit: 1 << 3,\n ccBits: [8, 10, 12]\n}\n\n/**\n * Mixed mode will contain a sequences of data in a combination of any of\n * the modes described above\n *\n * @type {Object}\n */\nexports.MIXED = {\n bit: -1\n}\n\n/**\n * Returns the number of bits needed to store the data length\n * according to QR Code specifications.\n *\n * @param {Mode} mode Data mode\n * @param {Number} version QR Code version\n * @return {Number} Number of bits\n */\nexports.getCharCountIndicator = function getCharCountIndicator (mode, version) {\n if (!mode.ccBits) throw new Error('Invalid mode: ' + mode)\n\n if (!VersionCheck.isValid(version)) {\n throw new Error('Invalid version: ' + version)\n }\n\n if (version >= 1 && version < 10) return mode.ccBits[0]\n else if (version < 27) return mode.ccBits[1]\n return mode.ccBits[2]\n}\n\n/**\n * Returns the most efficient mode to store the specified data\n *\n * @param {String} dataStr Input data string\n * @return {Mode} Best mode\n */\nexports.getBestModeForData = function getBestModeForData (dataStr) {\n if (Regex.testNumeric(dataStr)) return exports.NUMERIC\n else if (Regex.testAlphanumeric(dataStr)) return exports.ALPHANUMERIC\n else if (Regex.testKanji(dataStr)) return exports.KANJI\n else return exports.BYTE\n}\n\n/**\n * Return mode name as string\n *\n * @param {Mode} mode Mode object\n * @returns {String} Mode name\n */\nexports.toString = function toString (mode) {\n if (mode && mode.id) return mode.id\n throw new Error('Invalid mode')\n}\n\n/**\n * Check if input param is a valid mode object\n *\n * @param {Mode} mode Mode object\n * @returns {Boolean} True if valid mode, false otherwise\n */\nexports.isValid = function isValid (mode) {\n return mode && mode.bit && mode.ccBits\n}\n\n/**\n * Get mode object from its name\n *\n * @param {String} string Mode name\n * @returns {Mode} Mode object\n */\nfunction fromString (string) {\n if (typeof string !== 'string') {\n throw new Error('Param is not a string')\n }\n\n var lcStr = string.toLowerCase()\n\n switch (lcStr) {\n case 'numeric':\n return exports.NUMERIC\n case 'alphanumeric':\n return exports.ALPHANUMERIC\n case 'kanji':\n return exports.KANJI\n case 'byte':\n return exports.BYTE\n default:\n throw new Error('Unknown mode: ' + string)\n }\n}\n\n/**\n * Returns mode from a value.\n * If value is not a valid mode, returns defaultValue\n *\n * @param {Mode|String} value Encoding mode\n * @param {Mode} defaultValue Fallback value\n * @return {Mode} Encoding mode\n */\nexports.from = function from (value, defaultValue) {\n if (exports.isValid(value)) {\n return value\n }\n\n try {\n return fromString(value)\n } catch (e) {\n return defaultValue\n }\n}\n","var Utils = require('./utils')\nvar ECCode = require('./error-correction-code')\nvar ECLevel = require('./error-correction-level')\nvar Mode = require('./mode')\nvar VersionCheck = require('./version-check')\nvar isArray = require('isarray')\n\n// Generator polynomial used to encode version information\nvar G18 = (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0)\nvar G18_BCH = Utils.getBCHDigit(G18)\n\nfunction getBestVersionForDataLength (mode, length, errorCorrectionLevel) {\n for (var currentVersion = 1; currentVersion <= 40; currentVersion++) {\n if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, mode)) {\n return currentVersion\n }\n }\n\n return undefined\n}\n\nfunction getReservedBitsCount (mode, version) {\n // Character count indicator + mode indicator bits\n return Mode.getCharCountIndicator(mode, version) + 4\n}\n\nfunction getTotalBitsFromDataArray (segments, version) {\n var totalBits = 0\n\n segments.forEach(function (data) {\n var reservedBits = getReservedBitsCount(data.mode, version)\n totalBits += reservedBits + data.getBitsLength()\n })\n\n return totalBits\n}\n\nfunction getBestVersionForMixedData (segments, errorCorrectionLevel) {\n for (var currentVersion = 1; currentVersion <= 40; currentVersion++) {\n var length = getTotalBitsFromDataArray(segments, currentVersion)\n if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, Mode.MIXED)) {\n return currentVersion\n }\n }\n\n return undefined\n}\n\n/**\n * Returns version number from a value.\n * If value is not a valid version, returns defaultValue\n *\n * @param {Number|String} value QR Code version\n * @param {Number} defaultValue Fallback value\n * @return {Number} QR Code version number\n */\nexports.from = function from (value, defaultValue) {\n if (VersionCheck.isValid(value)) {\n return parseInt(value, 10)\n }\n\n return defaultValue\n}\n\n/**\n * Returns how much data can be stored with the specified QR code version\n * and error correction level\n *\n * @param {Number} version QR Code version (1-40)\n * @param {Number} errorCorrectionLevel Error correction level\n * @param {Mode} mode Data mode\n * @return {Number} Quantity of storable data\n */\nexports.getCapacity = function getCapacity (version, errorCorrectionLevel, mode) {\n if (!VersionCheck.isValid(version)) {\n throw new Error('Invalid QR Code version')\n }\n\n // Use Byte mode as default\n if (typeof mode === 'undefined') mode = Mode.BYTE\n\n // Total codewords for this QR code version (Data + Error correction)\n var totalCodewords = Utils.getSymbolTotalCodewords(version)\n\n // Total number of error correction codewords\n var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n\n // Total number of data codewords\n var dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8\n\n if (mode === Mode.MIXED) return dataTotalCodewordsBits\n\n var usableBits = dataTotalCodewordsBits - getReservedBitsCount(mode, version)\n\n // Return max number of storable codewords\n switch (mode) {\n case Mode.NUMERIC:\n return Math.floor((usableBits / 10) * 3)\n\n case Mode.ALPHANUMERIC:\n return Math.floor((usableBits / 11) * 2)\n\n case Mode.KANJI:\n return Math.floor(usableBits / 13)\n\n case Mode.BYTE:\n default:\n return Math.floor(usableBits / 8)\n }\n}\n\n/**\n * Returns the minimum version needed to contain the amount of data\n *\n * @param {Segment} data Segment of data\n * @param {Number} [errorCorrectionLevel=H] Error correction level\n * @param {Mode} mode Data mode\n * @return {Number} QR Code version\n */\nexports.getBestVersionForData = function getBestVersionForData (data, errorCorrectionLevel) {\n var seg\n\n var ecl = ECLevel.from(errorCorrectionLevel, ECLevel.M)\n\n if (isArray(data)) {\n if (data.length > 1) {\n return getBestVersionForMixedData(data, ecl)\n }\n\n if (data.length === 0) {\n return 1\n }\n\n seg = data[0]\n } else {\n seg = data\n }\n\n return getBestVersionForDataLength(seg.mode, seg.getLength(), ecl)\n}\n\n/**\n * Returns version information with relative error correction bits\n *\n * The version information is included in QR Code symbols of version 7 or larger.\n * It consists of an 18-bit sequence containing 6 data bits,\n * with 12 error correction bits calculated using the (18, 6) Golay code.\n *\n * @param {Number} version QR Code version\n * @return {Number} Encoded version info bits\n */\nexports.getEncodedBits = function getEncodedBits (version) {\n if (!VersionCheck.isValid(version) || version < 7) {\n throw new Error('Invalid QR Code version')\n }\n\n var d = version << 12\n\n while (Utils.getBCHDigit(d) - G18_BCH >= 0) {\n d ^= (G18 << (Utils.getBCHDigit(d) - G18_BCH))\n }\n\n return (version << 12) | d\n}\n","var Utils = require('./utils')\n\nvar G15 = (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0)\nvar G15_MASK = (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1)\nvar G15_BCH = Utils.getBCHDigit(G15)\n\n/**\n * Returns format information with relative error correction bits\n *\n * The format information is a 15-bit sequence containing 5 data bits,\n * with 10 error correction bits calculated using the (15, 5) BCH code.\n *\n * @param {Number} errorCorrectionLevel Error correction level\n * @param {Number} mask Mask pattern\n * @return {Number} Encoded format information bits\n */\nexports.getEncodedBits = function getEncodedBits (errorCorrectionLevel, mask) {\n var data = ((errorCorrectionLevel.bit << 3) | mask)\n var d = data << 10\n\n while (Utils.getBCHDigit(d) - G15_BCH >= 0) {\n d ^= (G15 << (Utils.getBCHDigit(d) - G15_BCH))\n }\n\n // xor final data with mask pattern in order to ensure that\n // no combination of Error Correction Level and data mask pattern\n // will result in an all-zero data string\n return ((data << 10) | d) ^ G15_MASK\n}\n","var Mode = require('./mode')\n\nfunction NumericData (data) {\n this.mode = Mode.NUMERIC\n this.data = data.toString()\n}\n\nNumericData.getBitsLength = function getBitsLength (length) {\n return 10 * Math.floor(length / 3) + ((length % 3) ? ((length % 3) * 3 + 1) : 0)\n}\n\nNumericData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nNumericData.prototype.getBitsLength = function getBitsLength () {\n return NumericData.getBitsLength(this.data.length)\n}\n\nNumericData.prototype.write = function write (bitBuffer) {\n var i, group, value\n\n // The input data string is divided into groups of three digits,\n // and each group is converted to its 10-bit binary equivalent.\n for (i = 0; i + 3 <= this.data.length; i += 3) {\n group = this.data.substr(i, 3)\n value = parseInt(group, 10)\n\n bitBuffer.put(value, 10)\n }\n\n // If the number of input digits is not an exact multiple of three,\n // the final one or two digits are converted to 4 or 7 bits respectively.\n var remainingNum = this.data.length - i\n if (remainingNum > 0) {\n group = this.data.substr(i)\n value = parseInt(group, 10)\n\n bitBuffer.put(value, remainingNum * 3 + 1)\n }\n}\n\nmodule.exports = NumericData\n","var Mode = require('./mode')\n\n/**\n * Array of characters available in alphanumeric mode\n *\n * As per QR Code specification, to each character\n * is assigned a value from 0 to 44 which in this case coincides\n * with the array index\n *\n * @type {Array}\n */\nvar ALPHA_NUM_CHARS = [\n '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',\n 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',\n 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',\n ' ', '$', '%', '*', '+', '-', '.', '/', ':'\n]\n\nfunction AlphanumericData (data) {\n this.mode = Mode.ALPHANUMERIC\n this.data = data\n}\n\nAlphanumericData.getBitsLength = function getBitsLength (length) {\n return 11 * Math.floor(length / 2) + 6 * (length % 2)\n}\n\nAlphanumericData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nAlphanumericData.prototype.getBitsLength = function getBitsLength () {\n return AlphanumericData.getBitsLength(this.data.length)\n}\n\nAlphanumericData.prototype.write = function write (bitBuffer) {\n var i\n\n // Input data characters are divided into groups of two characters\n // and encoded as 11-bit binary codes.\n for (i = 0; i + 2 <= this.data.length; i += 2) {\n // The character value of the first character is multiplied by 45\n var value = ALPHA_NUM_CHARS.indexOf(this.data[i]) * 45\n\n // The character value of the second digit is added to the product\n value += ALPHA_NUM_CHARS.indexOf(this.data[i + 1])\n\n // The sum is then stored as 11-bit binary number\n bitBuffer.put(value, 11)\n }\n\n // If the number of input data characters is not a multiple of two,\n // the character value of the final character is encoded as a 6-bit binary number.\n if (this.data.length % 2) {\n bitBuffer.put(ALPHA_NUM_CHARS.indexOf(this.data[i]), 6)\n }\n}\n\nmodule.exports = AlphanumericData\n","var BufferUtil = require('../utils/buffer')\nvar Mode = require('./mode')\n\nfunction ByteData (data) {\n this.mode = Mode.BYTE\n this.data = BufferUtil.from(data)\n}\n\nByteData.getBitsLength = function getBitsLength (length) {\n return length * 8\n}\n\nByteData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nByteData.prototype.getBitsLength = function getBitsLength () {\n return ByteData.getBitsLength(this.data.length)\n}\n\nByteData.prototype.write = function (bitBuffer) {\n for (var i = 0, l = this.data.length; i < l; i++) {\n bitBuffer.put(this.data[i], 8)\n }\n}\n\nmodule.exports = ByteData\n","var Mode = require('./mode')\nvar Utils = require('./utils')\n\nfunction KanjiData (data) {\n this.mode = Mode.KANJI\n this.data = data\n}\n\nKanjiData.getBitsLength = function getBitsLength (length) {\n return length * 13\n}\n\nKanjiData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nKanjiData.prototype.getBitsLength = function getBitsLength () {\n return KanjiData.getBitsLength(this.data.length)\n}\n\nKanjiData.prototype.write = function (bitBuffer) {\n var i\n\n // In the Shift JIS system, Kanji characters are represented by a two byte combination.\n // These byte values are shifted from the JIS X 0208 values.\n // JIS X 0208 gives details of the shift coded representation.\n for (i = 0; i < this.data.length; i++) {\n var value = Utils.toSJIS(this.data[i])\n\n // For characters with Shift JIS values from 0x8140 to 0x9FFC:\n if (value >= 0x8140 && value <= 0x9FFC) {\n // Subtract 0x8140 from Shift JIS value\n value -= 0x8140\n\n // For characters with Shift JIS values from 0xE040 to 0xEBBF\n } else if (value >= 0xE040 && value <= 0xEBBF) {\n // Subtract 0xC140 from Shift JIS value\n value -= 0xC140\n } else {\n throw new Error(\n 'Invalid SJIS character: ' + this.data[i] + '\\n' +\n 'Make sure your charset is UTF-8')\n }\n\n // Multiply most significant byte of result by 0xC0\n // and add least significant byte to product\n value = (((value >>> 8) & 0xff) * 0xC0) + (value & 0xff)\n\n // Convert result to a 13-bit binary string\n bitBuffer.put(value, 13)\n }\n}\n\nmodule.exports = KanjiData\n","'use strict';\n\n/******************************************************************************\n * Created 2008-08-19.\n *\n * Dijkstra path-finding functions. Adapted from the Dijkstar Python project.\n *\n * Copyright (C) 2008\n * Wyatt Baldwin \n * All rights reserved\n *\n * Licensed under the MIT license.\n *\n * http://www.opensource.org/licenses/mit-license.php\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *****************************************************************************/\nvar dijkstra = {\n single_source_shortest_paths: function(graph, s, d) {\n // Predecessor map for each node that has been encountered.\n // node ID => predecessor node ID\n var predecessors = {};\n\n // Costs of shortest paths from s to all nodes encountered.\n // node ID => cost\n var costs = {};\n costs[s] = 0;\n\n // Costs of shortest paths from s to all nodes encountered; differs from\n // `costs` in that it provides easy access to the node that currently has\n // the known shortest path from s.\n // XXX: Do we actually need both `costs` and `open`?\n var open = dijkstra.PriorityQueue.make();\n open.push(s, 0);\n\n var closest,\n u, v,\n cost_of_s_to_u,\n adjacent_nodes,\n cost_of_e,\n cost_of_s_to_u_plus_cost_of_e,\n cost_of_s_to_v,\n first_visit;\n while (!open.empty()) {\n // In the nodes remaining in graph that have a known cost from s,\n // find the node, u, that currently has the shortest path from s.\n closest = open.pop();\n u = closest.value;\n cost_of_s_to_u = closest.cost;\n\n // Get nodes adjacent to u...\n adjacent_nodes = graph[u] || {};\n\n // ...and explore the edges that connect u to those nodes, updating\n // the cost of the shortest paths to any or all of those nodes as\n // necessary. v is the node across the current edge from u.\n for (v in adjacent_nodes) {\n if (adjacent_nodes.hasOwnProperty(v)) {\n // Get the cost of the edge running from u to v.\n cost_of_e = adjacent_nodes[v];\n\n // Cost of s to u plus the cost of u to v across e--this is *a*\n // cost from s to v that may or may not be less than the current\n // known cost to v.\n cost_of_s_to_u_plus_cost_of_e = cost_of_s_to_u + cost_of_e;\n\n // If we haven't visited v yet OR if the current known cost from s to\n // v is greater than the new cost we just found (cost of s to u plus\n // cost of u to v across e), update v's cost in the cost list and\n // update v's predecessor in the predecessor list (it's now u).\n cost_of_s_to_v = costs[v];\n first_visit = (typeof costs[v] === 'undefined');\n if (first_visit || cost_of_s_to_v > cost_of_s_to_u_plus_cost_of_e) {\n costs[v] = cost_of_s_to_u_plus_cost_of_e;\n open.push(v, cost_of_s_to_u_plus_cost_of_e);\n predecessors[v] = u;\n }\n }\n }\n }\n\n if (typeof d !== 'undefined' && typeof costs[d] === 'undefined') {\n var msg = ['Could not find a path from ', s, ' to ', d, '.'].join('');\n throw new Error(msg);\n }\n\n return predecessors;\n },\n\n extract_shortest_path_from_predecessor_list: function(predecessors, d) {\n var nodes = [];\n var u = d;\n var predecessor;\n while (u) {\n nodes.push(u);\n predecessor = predecessors[u];\n u = predecessors[u];\n }\n nodes.reverse();\n return nodes;\n },\n\n find_path: function(graph, s, d) {\n var predecessors = dijkstra.single_source_shortest_paths(graph, s, d);\n return dijkstra.extract_shortest_path_from_predecessor_list(\n predecessors, d);\n },\n\n /**\n * A very naive priority queue implementation.\n */\n PriorityQueue: {\n make: function (opts) {\n var T = dijkstra.PriorityQueue,\n t = {},\n key;\n opts = opts || {};\n for (key in T) {\n if (T.hasOwnProperty(key)) {\n t[key] = T[key];\n }\n }\n t.queue = [];\n t.sorter = opts.sorter || T.default_sorter;\n return t;\n },\n\n default_sorter: function (a, b) {\n return a.cost - b.cost;\n },\n\n /**\n * Add a new item to the queue and ensure the highest priority element\n * is at the front of the queue.\n */\n push: function (value, cost) {\n var item = {value: value, cost: cost};\n this.queue.push(item);\n this.queue.sort(this.sorter);\n },\n\n /**\n * Return the highest priority element in the queue.\n */\n pop: function () {\n return this.queue.shift();\n },\n\n empty: function () {\n return this.queue.length === 0;\n }\n }\n};\n\n\n// node.js module exports\nif (typeof module !== 'undefined') {\n module.exports = dijkstra;\n}\n","var Mode = require('./mode')\nvar NumericData = require('./numeric-data')\nvar AlphanumericData = require('./alphanumeric-data')\nvar ByteData = require('./byte-data')\nvar KanjiData = require('./kanji-data')\nvar Regex = require('./regex')\nvar Utils = require('./utils')\nvar dijkstra = require('dijkstrajs')\n\n/**\n * Returns UTF8 byte length\n *\n * @param {String} str Input string\n * @return {Number} Number of byte\n */\nfunction getStringByteLength (str) {\n return unescape(encodeURIComponent(str)).length\n}\n\n/**\n * Get a list of segments of the specified mode\n * from a string\n *\n * @param {Mode} mode Segment mode\n * @param {String} str String to process\n * @return {Array} Array of object with segments data\n */\nfunction getSegments (regex, mode, str) {\n var segments = []\n var result\n\n while ((result = regex.exec(str)) !== null) {\n segments.push({\n data: result[0],\n index: result.index,\n mode: mode,\n length: result[0].length\n })\n }\n\n return segments\n}\n\n/**\n * Extracts a series of segments with the appropriate\n * modes from a string\n *\n * @param {String} dataStr Input string\n * @return {Array} Array of object with segments data\n */\nfunction getSegmentsFromString (dataStr) {\n var numSegs = getSegments(Regex.NUMERIC, Mode.NUMERIC, dataStr)\n var alphaNumSegs = getSegments(Regex.ALPHANUMERIC, Mode.ALPHANUMERIC, dataStr)\n var byteSegs\n var kanjiSegs\n\n if (Utils.isKanjiModeEnabled()) {\n byteSegs = getSegments(Regex.BYTE, Mode.BYTE, dataStr)\n kanjiSegs = getSegments(Regex.KANJI, Mode.KANJI, dataStr)\n } else {\n byteSegs = getSegments(Regex.BYTE_KANJI, Mode.BYTE, dataStr)\n kanjiSegs = []\n }\n\n var segs = numSegs.concat(alphaNumSegs, byteSegs, kanjiSegs)\n\n return segs\n .sort(function (s1, s2) {\n return s1.index - s2.index\n })\n .map(function (obj) {\n return {\n data: obj.data,\n mode: obj.mode,\n length: obj.length\n }\n })\n}\n\n/**\n * Returns how many bits are needed to encode a string of\n * specified length with the specified mode\n *\n * @param {Number} length String length\n * @param {Mode} mode Segment mode\n * @return {Number} Bit length\n */\nfunction getSegmentBitsLength (length, mode) {\n switch (mode) {\n case Mode.NUMERIC:\n return NumericData.getBitsLength(length)\n case Mode.ALPHANUMERIC:\n return AlphanumericData.getBitsLength(length)\n case Mode.KANJI:\n return KanjiData.getBitsLength(length)\n case Mode.BYTE:\n return ByteData.getBitsLength(length)\n }\n}\n\n/**\n * Merges adjacent segments which have the same mode\n *\n * @param {Array} segs Array of object with segments data\n * @return {Array} Array of object with segments data\n */\nfunction mergeSegments (segs) {\n return segs.reduce(function (acc, curr) {\n var prevSeg = acc.length - 1 >= 0 ? acc[acc.length - 1] : null\n if (prevSeg && prevSeg.mode === curr.mode) {\n acc[acc.length - 1].data += curr.data\n return acc\n }\n\n acc.push(curr)\n return acc\n }, [])\n}\n\n/**\n * Generates a list of all possible nodes combination which\n * will be used to build a segments graph.\n *\n * Nodes are divided by groups. Each group will contain a list of all the modes\n * in which is possible to encode the given text.\n *\n * For example the text '12345' can be encoded as Numeric, Alphanumeric or Byte.\n * The group for '12345' will contain then 3 objects, one for each\n * possible encoding mode.\n *\n * Each node represents a possible segment.\n *\n * @param {Array} segs Array of object with segments data\n * @return {Array} Array of object with segments data\n */\nfunction buildNodes (segs) {\n var nodes = []\n for (var i = 0; i < segs.length; i++) {\n var seg = segs[i]\n\n switch (seg.mode) {\n case Mode.NUMERIC:\n nodes.push([seg,\n { data: seg.data, mode: Mode.ALPHANUMERIC, length: seg.length },\n { data: seg.data, mode: Mode.BYTE, length: seg.length }\n ])\n break\n case Mode.ALPHANUMERIC:\n nodes.push([seg,\n { data: seg.data, mode: Mode.BYTE, length: seg.length }\n ])\n break\n case Mode.KANJI:\n nodes.push([seg,\n { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n ])\n break\n case Mode.BYTE:\n nodes.push([\n { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n ])\n }\n }\n\n return nodes\n}\n\n/**\n * Builds a graph from a list of nodes.\n * All segments in each node group will be connected with all the segments of\n * the next group and so on.\n *\n * At each connection will be assigned a weight depending on the\n * segment's byte length.\n *\n * @param {Array} nodes Array of object with segments data\n * @param {Number} version QR Code version\n * @return {Object} Graph of all possible segments\n */\nfunction buildGraph (nodes, version) {\n var table = {}\n var graph = {'start': {}}\n var prevNodeIds = ['start']\n\n for (var i = 0; i < nodes.length; i++) {\n var nodeGroup = nodes[i]\n var currentNodeIds = []\n\n for (var j = 0; j < nodeGroup.length; j++) {\n var node = nodeGroup[j]\n var key = '' + i + j\n\n currentNodeIds.push(key)\n table[key] = { node: node, lastCount: 0 }\n graph[key] = {}\n\n for (var n = 0; n < prevNodeIds.length; n++) {\n var prevNodeId = prevNodeIds[n]\n\n if (table[prevNodeId] && table[prevNodeId].node.mode === node.mode) {\n graph[prevNodeId][key] =\n getSegmentBitsLength(table[prevNodeId].lastCount + node.length, node.mode) -\n getSegmentBitsLength(table[prevNodeId].lastCount, node.mode)\n\n table[prevNodeId].lastCount += node.length\n } else {\n if (table[prevNodeId]) table[prevNodeId].lastCount = node.length\n\n graph[prevNodeId][key] = getSegmentBitsLength(node.length, node.mode) +\n 4 + Mode.getCharCountIndicator(node.mode, version) // switch cost\n }\n }\n }\n\n prevNodeIds = currentNodeIds\n }\n\n for (n = 0; n < prevNodeIds.length; n++) {\n graph[prevNodeIds[n]]['end'] = 0\n }\n\n return { map: graph, table: table }\n}\n\n/**\n * Builds a segment from a specified data and mode.\n * If a mode is not specified, the more suitable will be used.\n *\n * @param {String} data Input data\n * @param {Mode | String} modesHint Data mode\n * @return {Segment} Segment\n */\nfunction buildSingleSegment (data, modesHint) {\n var mode\n var bestMode = Mode.getBestModeForData(data)\n\n mode = Mode.from(modesHint, bestMode)\n\n // Make sure data can be encoded\n if (mode !== Mode.BYTE && mode.bit < bestMode.bit) {\n throw new Error('\"' + data + '\"' +\n ' cannot be encoded with mode ' + Mode.toString(mode) +\n '.\\n Suggested mode is: ' + Mode.toString(bestMode))\n }\n\n // Use Mode.BYTE if Kanji support is disabled\n if (mode === Mode.KANJI && !Utils.isKanjiModeEnabled()) {\n mode = Mode.BYTE\n }\n\n switch (mode) {\n case Mode.NUMERIC:\n return new NumericData(data)\n\n case Mode.ALPHANUMERIC:\n return new AlphanumericData(data)\n\n case Mode.KANJI:\n return new KanjiData(data)\n\n case Mode.BYTE:\n return new ByteData(data)\n }\n}\n\n/**\n * Builds a list of segments from an array.\n * Array can contain Strings or Objects with segment's info.\n *\n * For each item which is a string, will be generated a segment with the given\n * string and the more appropriate encoding mode.\n *\n * For each item which is an object, will be generated a segment with the given\n * data and mode.\n * Objects must contain at least the property \"data\".\n * If property \"mode\" is not present, the more suitable mode will be used.\n *\n * @param {Array} array Array of objects with segments data\n * @return {Array} Array of Segments\n */\nexports.fromArray = function fromArray (array) {\n return array.reduce(function (acc, seg) {\n if (typeof seg === 'string') {\n acc.push(buildSingleSegment(seg, null))\n } else if (seg.data) {\n acc.push(buildSingleSegment(seg.data, seg.mode))\n }\n\n return acc\n }, [])\n}\n\n/**\n * Builds an optimized sequence of segments from a string,\n * which will produce the shortest possible bitstream.\n *\n * @param {String} data Input string\n * @param {Number} version QR Code version\n * @return {Array} Array of segments\n */\nexports.fromString = function fromString (data, version) {\n var segs = getSegmentsFromString(data, Utils.isKanjiModeEnabled())\n\n var nodes = buildNodes(segs)\n var graph = buildGraph(nodes, version)\n var path = dijkstra.find_path(graph.map, 'start', 'end')\n\n var optimizedSegs = []\n for (var i = 1; i < path.length - 1; i++) {\n optimizedSegs.push(graph.table[path[i]].node)\n }\n\n return exports.fromArray(mergeSegments(optimizedSegs))\n}\n\n/**\n * Splits a string in various segments with the modes which\n * best represent their content.\n * The produced segments are far from being optimized.\n * The output of this function is only used to estimate a QR Code version\n * which may contain the data.\n *\n * @param {string} data Input string\n * @return {Array} Array of segments\n */\nexports.rawSplit = function rawSplit (data) {\n return exports.fromArray(\n getSegmentsFromString(data, Utils.isKanjiModeEnabled())\n )\n}\n","var BufferUtil = require('../utils/buffer')\nvar Utils = require('./utils')\nvar ECLevel = require('./error-correction-level')\nvar BitBuffer = require('./bit-buffer')\nvar BitMatrix = require('./bit-matrix')\nvar AlignmentPattern = require('./alignment-pattern')\nvar FinderPattern = require('./finder-pattern')\nvar MaskPattern = require('./mask-pattern')\nvar ECCode = require('./error-correction-code')\nvar ReedSolomonEncoder = require('./reed-solomon-encoder')\nvar Version = require('./version')\nvar FormatInfo = require('./format-info')\nvar Mode = require('./mode')\nvar Segments = require('./segments')\nvar isArray = require('isarray')\n\n/**\n * QRCode for JavaScript\n *\n * modified by Ryan Day for nodejs support\n * Copyright (c) 2011 Ryan Day\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/mit-license.php\n *\n//---------------------------------------------------------------------\n// QRCode for JavaScript\n//\n// Copyright (c) 2009 Kazuhiko Arase\n//\n// URL: http://www.d-project.com/\n//\n// Licensed under the MIT license:\n// http://www.opensource.org/licenses/mit-license.php\n//\n// The word \"QR Code\" is registered trademark of\n// DENSO WAVE INCORPORATED\n// http://www.denso-wave.com/qrcode/faqpatent-e.html\n//\n//---------------------------------------------------------------------\n*/\n\n/**\n * Add finder patterns bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupFinderPattern (matrix, version) {\n var size = matrix.size\n var pos = FinderPattern.getPositions(version)\n\n for (var i = 0; i < pos.length; i++) {\n var row = pos[i][0]\n var col = pos[i][1]\n\n for (var r = -1; r <= 7; r++) {\n if (row + r <= -1 || size <= row + r) continue\n\n for (var c = -1; c <= 7; c++) {\n if (col + c <= -1 || size <= col + c) continue\n\n if ((r >= 0 && r <= 6 && (c === 0 || c === 6)) ||\n (c >= 0 && c <= 6 && (r === 0 || r === 6)) ||\n (r >= 2 && r <= 4 && c >= 2 && c <= 4)) {\n matrix.set(row + r, col + c, true, true)\n } else {\n matrix.set(row + r, col + c, false, true)\n }\n }\n }\n }\n}\n\n/**\n * Add timing pattern bits to matrix\n *\n * Note: this function must be called before {@link setupAlignmentPattern}\n *\n * @param {BitMatrix} matrix Modules matrix\n */\nfunction setupTimingPattern (matrix) {\n var size = matrix.size\n\n for (var r = 8; r < size - 8; r++) {\n var value = r % 2 === 0\n matrix.set(r, 6, value, true)\n matrix.set(6, r, value, true)\n }\n}\n\n/**\n * Add alignment patterns bits to matrix\n *\n * Note: this function must be called after {@link setupTimingPattern}\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupAlignmentPattern (matrix, version) {\n var pos = AlignmentPattern.getPositions(version)\n\n for (var i = 0; i < pos.length; i++) {\n var row = pos[i][0]\n var col = pos[i][1]\n\n for (var r = -2; r <= 2; r++) {\n for (var c = -2; c <= 2; c++) {\n if (r === -2 || r === 2 || c === -2 || c === 2 ||\n (r === 0 && c === 0)) {\n matrix.set(row + r, col + c, true, true)\n } else {\n matrix.set(row + r, col + c, false, true)\n }\n }\n }\n }\n}\n\n/**\n * Add version info bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupVersionInfo (matrix, version) {\n var size = matrix.size\n var bits = Version.getEncodedBits(version)\n var row, col, mod\n\n for (var i = 0; i < 18; i++) {\n row = Math.floor(i / 3)\n col = i % 3 + size - 8 - 3\n mod = ((bits >> i) & 1) === 1\n\n matrix.set(row, col, mod, true)\n matrix.set(col, row, mod, true)\n }\n}\n\n/**\n * Add format info bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @param {Number} maskPattern Mask pattern reference value\n */\nfunction setupFormatInfo (matrix, errorCorrectionLevel, maskPattern) {\n var size = matrix.size\n var bits = FormatInfo.getEncodedBits(errorCorrectionLevel, maskPattern)\n var i, mod\n\n for (i = 0; i < 15; i++) {\n mod = ((bits >> i) & 1) === 1\n\n // vertical\n if (i < 6) {\n matrix.set(i, 8, mod, true)\n } else if (i < 8) {\n matrix.set(i + 1, 8, mod, true)\n } else {\n matrix.set(size - 15 + i, 8, mod, true)\n }\n\n // horizontal\n if (i < 8) {\n matrix.set(8, size - i - 1, mod, true)\n } else if (i < 9) {\n matrix.set(8, 15 - i - 1 + 1, mod, true)\n } else {\n matrix.set(8, 15 - i - 1, mod, true)\n }\n }\n\n // fixed module\n matrix.set(size - 8, 8, 1, true)\n}\n\n/**\n * Add encoded data bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Buffer} data Data codewords\n */\nfunction setupData (matrix, data) {\n var size = matrix.size\n var inc = -1\n var row = size - 1\n var bitIndex = 7\n var byteIndex = 0\n\n for (var col = size - 1; col > 0; col -= 2) {\n if (col === 6) col--\n\n while (true) {\n for (var c = 0; c < 2; c++) {\n if (!matrix.isReserved(row, col - c)) {\n var dark = false\n\n if (byteIndex < data.length) {\n dark = (((data[byteIndex] >>> bitIndex) & 1) === 1)\n }\n\n matrix.set(row, col - c, dark)\n bitIndex--\n\n if (bitIndex === -1) {\n byteIndex++\n bitIndex = 7\n }\n }\n }\n\n row += inc\n\n if (row < 0 || size <= row) {\n row -= inc\n inc = -inc\n break\n }\n }\n }\n}\n\n/**\n * Create encoded codewords from data input\n *\n * @param {Number} version QR Code version\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @param {ByteData} data Data input\n * @return {Buffer} Buffer containing encoded codewords\n */\nfunction createData (version, errorCorrectionLevel, segments) {\n // Prepare data buffer\n var buffer = new BitBuffer()\n\n segments.forEach(function (data) {\n // prefix data with mode indicator (4 bits)\n buffer.put(data.mode.bit, 4)\n\n // Prefix data with character count indicator.\n // The character count indicator is a string of bits that represents the\n // number of characters that are being encoded.\n // The character count indicator must be placed after the mode indicator\n // and must be a certain number of bits long, depending on the QR version\n // and data mode\n // @see {@link Mode.getCharCountIndicator}.\n buffer.put(data.getLength(), Mode.getCharCountIndicator(data.mode, version))\n\n // add binary data sequence to buffer\n data.write(buffer)\n })\n\n // Calculate required number of bits\n var totalCodewords = Utils.getSymbolTotalCodewords(version)\n var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n var dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8\n\n // Add a terminator.\n // If the bit string is shorter than the total number of required bits,\n // a terminator of up to four 0s must be added to the right side of the string.\n // If the bit string is more than four bits shorter than the required number of bits,\n // add four 0s to the end.\n if (buffer.getLengthInBits() + 4 <= dataTotalCodewordsBits) {\n buffer.put(0, 4)\n }\n\n // If the bit string is fewer than four bits shorter, add only the number of 0s that\n // are needed to reach the required number of bits.\n\n // After adding the terminator, if the number of bits in the string is not a multiple of 8,\n // pad the string on the right with 0s to make the string's length a multiple of 8.\n while (buffer.getLengthInBits() % 8 !== 0) {\n buffer.putBit(0)\n }\n\n // Add pad bytes if the string is still shorter than the total number of required bits.\n // Extend the buffer to fill the data capacity of the symbol corresponding to\n // the Version and Error Correction Level by adding the Pad Codewords 11101100 (0xEC)\n // and 00010001 (0x11) alternately.\n var remainingByte = (dataTotalCodewordsBits - buffer.getLengthInBits()) / 8\n for (var i = 0; i < remainingByte; i++) {\n buffer.put(i % 2 ? 0x11 : 0xEC, 8)\n }\n\n return createCodewords(buffer, version, errorCorrectionLevel)\n}\n\n/**\n * Encode input data with Reed-Solomon and return codewords with\n * relative error correction bits\n *\n * @param {BitBuffer} bitBuffer Data to encode\n * @param {Number} version QR Code version\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @return {Buffer} Buffer containing encoded codewords\n */\nfunction createCodewords (bitBuffer, version, errorCorrectionLevel) {\n // Total codewords for this QR code version (Data + Error correction)\n var totalCodewords = Utils.getSymbolTotalCodewords(version)\n\n // Total number of error correction codewords\n var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n\n // Total number of data codewords\n var dataTotalCodewords = totalCodewords - ecTotalCodewords\n\n // Total number of blocks\n var ecTotalBlocks = ECCode.getBlocksCount(version, errorCorrectionLevel)\n\n // Calculate how many blocks each group should contain\n var blocksInGroup2 = totalCodewords % ecTotalBlocks\n var blocksInGroup1 = ecTotalBlocks - blocksInGroup2\n\n var totalCodewordsInGroup1 = Math.floor(totalCodewords / ecTotalBlocks)\n\n var dataCodewordsInGroup1 = Math.floor(dataTotalCodewords / ecTotalBlocks)\n var dataCodewordsInGroup2 = dataCodewordsInGroup1 + 1\n\n // Number of EC codewords is the same for both groups\n var ecCount = totalCodewordsInGroup1 - dataCodewordsInGroup1\n\n // Initialize a Reed-Solomon encoder with a generator polynomial of degree ecCount\n var rs = new ReedSolomonEncoder(ecCount)\n\n var offset = 0\n var dcData = new Array(ecTotalBlocks)\n var ecData = new Array(ecTotalBlocks)\n var maxDataSize = 0\n var buffer = BufferUtil.from(bitBuffer.buffer)\n\n // Divide the buffer into the required number of blocks\n for (var b = 0; b < ecTotalBlocks; b++) {\n var dataSize = b < blocksInGroup1 ? dataCodewordsInGroup1 : dataCodewordsInGroup2\n\n // extract a block of data from buffer\n dcData[b] = buffer.slice(offset, offset + dataSize)\n\n // Calculate EC codewords for this data block\n ecData[b] = rs.encode(dcData[b])\n\n offset += dataSize\n maxDataSize = Math.max(maxDataSize, dataSize)\n }\n\n // Create final data\n // Interleave the data and error correction codewords from each block\n var data = BufferUtil.alloc(totalCodewords)\n var index = 0\n var i, r\n\n // Add data codewords\n for (i = 0; i < maxDataSize; i++) {\n for (r = 0; r < ecTotalBlocks; r++) {\n if (i < dcData[r].length) {\n data[index++] = dcData[r][i]\n }\n }\n }\n\n // Apped EC codewords\n for (i = 0; i < ecCount; i++) {\n for (r = 0; r < ecTotalBlocks; r++) {\n data[index++] = ecData[r][i]\n }\n }\n\n return data\n}\n\n/**\n * Build QR Code symbol\n *\n * @param {String} data Input string\n * @param {Number} version QR Code version\n * @param {ErrorCorretionLevel} errorCorrectionLevel Error level\n * @param {MaskPattern} maskPattern Mask pattern\n * @return {Object} Object containing symbol data\n */\nfunction createSymbol (data, version, errorCorrectionLevel, maskPattern) {\n var segments\n\n if (isArray(data)) {\n segments = Segments.fromArray(data)\n } else if (typeof data === 'string') {\n var estimatedVersion = version\n\n if (!estimatedVersion) {\n var rawSegments = Segments.rawSplit(data)\n\n // Estimate best version that can contain raw splitted segments\n estimatedVersion = Version.getBestVersionForData(rawSegments,\n errorCorrectionLevel)\n }\n\n // Build optimized segments\n // If estimated version is undefined, try with the highest version\n segments = Segments.fromString(data, estimatedVersion || 40)\n } else {\n throw new Error('Invalid data')\n }\n\n // Get the min version that can contain data\n var bestVersion = Version.getBestVersionForData(segments,\n errorCorrectionLevel)\n\n // If no version is found, data cannot be stored\n if (!bestVersion) {\n throw new Error('The amount of data is too big to be stored in a QR Code')\n }\n\n // If not specified, use min version as default\n if (!version) {\n version = bestVersion\n\n // Check if the specified version can contain the data\n } else if (version < bestVersion) {\n throw new Error('\\n' +\n 'The chosen QR Code version cannot contain this amount of data.\\n' +\n 'Minimum version required to store current data is: ' + bestVersion + '.\\n'\n )\n }\n\n var dataBits = createData(version, errorCorrectionLevel, segments)\n\n // Allocate matrix buffer\n var moduleCount = Utils.getSymbolSize(version)\n var modules = new BitMatrix(moduleCount)\n\n // Add function modules\n setupFinderPattern(modules, version)\n setupTimingPattern(modules)\n setupAlignmentPattern(modules, version)\n\n // Add temporary dummy bits for format info just to set them as reserved.\n // This is needed to prevent these bits from being masked by {@link MaskPattern.applyMask}\n // since the masking operation must be performed only on the encoding region.\n // These blocks will be replaced with correct values later in code.\n setupFormatInfo(modules, errorCorrectionLevel, 0)\n\n if (version >= 7) {\n setupVersionInfo(modules, version)\n }\n\n // Add data codewords\n setupData(modules, dataBits)\n\n if (isNaN(maskPattern)) {\n // Find best mask pattern\n maskPattern = MaskPattern.getBestMask(modules,\n setupFormatInfo.bind(null, modules, errorCorrectionLevel))\n }\n\n // Apply mask pattern\n MaskPattern.applyMask(maskPattern, modules)\n\n // Replace format info bits with correct values\n setupFormatInfo(modules, errorCorrectionLevel, maskPattern)\n\n return {\n modules: modules,\n version: version,\n errorCorrectionLevel: errorCorrectionLevel,\n maskPattern: maskPattern,\n segments: segments\n }\n}\n\n/**\n * QR Code\n *\n * @param {String | Array} data Input data\n * @param {Object} options Optional configurations\n * @param {Number} options.version QR Code version\n * @param {String} options.errorCorrectionLevel Error correction level\n * @param {Function} options.toSJISFunc Helper func to convert utf8 to sjis\n */\nexports.create = function create (data, options) {\n if (typeof data === 'undefined' || data === '') {\n throw new Error('No input text')\n }\n\n var errorCorrectionLevel = ECLevel.M\n var version\n var mask\n\n if (typeof options !== 'undefined') {\n // Use higher error correction level as default\n errorCorrectionLevel = ECLevel.from(options.errorCorrectionLevel, ECLevel.M)\n version = Version.from(options.version)\n mask = MaskPattern.from(options.maskPattern)\n\n if (options.toSJISFunc) {\n Utils.setToSJISFunction(options.toSJISFunc)\n }\n }\n\n return createSymbol(data, version, errorCorrectionLevel, mask)\n}\n","function hex2rgba (hex) {\n if (typeof hex === 'number') {\n hex = hex.toString()\n }\n\n if (typeof hex !== 'string') {\n throw new Error('Color should be defined as hex string')\n }\n\n var hexCode = hex.slice().replace('#', '').split('')\n if (hexCode.length < 3 || hexCode.length === 5 || hexCode.length > 8) {\n throw new Error('Invalid hex color: ' + hex)\n }\n\n // Convert from short to long form (fff -> ffffff)\n if (hexCode.length === 3 || hexCode.length === 4) {\n hexCode = Array.prototype.concat.apply([], hexCode.map(function (c) {\n return [c, c]\n }))\n }\n\n // Add default alpha value\n if (hexCode.length === 6) hexCode.push('F', 'F')\n\n var hexValue = parseInt(hexCode.join(''), 16)\n\n return {\n r: (hexValue >> 24) & 255,\n g: (hexValue >> 16) & 255,\n b: (hexValue >> 8) & 255,\n a: hexValue & 255,\n hex: '#' + hexCode.slice(0, 6).join('')\n }\n}\n\nexports.getOptions = function getOptions (options) {\n if (!options) options = {}\n if (!options.color) options.color = {}\n\n var margin = typeof options.margin === 'undefined' ||\n options.margin === null ||\n options.margin < 0 ? 4 : options.margin\n\n var width = options.width && options.width >= 21 ? options.width : undefined\n var scale = options.scale || 4\n\n return {\n width: width,\n scale: width ? 4 : scale,\n margin: margin,\n color: {\n dark: hex2rgba(options.color.dark || '#000000ff'),\n light: hex2rgba(options.color.light || '#ffffffff')\n },\n type: options.type,\n rendererOpts: options.rendererOpts || {}\n }\n}\n\nexports.getScale = function getScale (qrSize, opts) {\n return opts.width && opts.width >= qrSize + opts.margin * 2\n ? opts.width / (qrSize + opts.margin * 2)\n : opts.scale\n}\n\nexports.getImageWidth = function getImageWidth (qrSize, opts) {\n var scale = exports.getScale(qrSize, opts)\n return Math.floor((qrSize + opts.margin * 2) * scale)\n}\n\nexports.qrToImageData = function qrToImageData (imgData, qr, opts) {\n var size = qr.modules.size\n var data = qr.modules.data\n var scale = exports.getScale(size, opts)\n var symbolSize = Math.floor((size + opts.margin * 2) * scale)\n var scaledMargin = opts.margin * scale\n var palette = [opts.color.light, opts.color.dark]\n\n for (var i = 0; i < symbolSize; i++) {\n for (var j = 0; j < symbolSize; j++) {\n var posDst = (i * symbolSize + j) * 4\n var pxColor = opts.color.light\n\n if (i >= scaledMargin && j >= scaledMargin &&\n i < symbolSize - scaledMargin && j < symbolSize - scaledMargin) {\n var iSrc = Math.floor((i - scaledMargin) / scale)\n var jSrc = Math.floor((j - scaledMargin) / scale)\n pxColor = palette[data[iSrc * size + jSrc] ? 1 : 0]\n }\n\n imgData[posDst++] = pxColor.r\n imgData[posDst++] = pxColor.g\n imgData[posDst++] = pxColor.b\n imgData[posDst] = pxColor.a\n }\n }\n}\n","var Utils = require('./utils')\n\nfunction clearCanvas (ctx, canvas, size) {\n ctx.clearRect(0, 0, canvas.width, canvas.height)\n\n if (!canvas.style) canvas.style = {}\n canvas.height = size\n canvas.width = size\n canvas.style.height = size + 'px'\n canvas.style.width = size + 'px'\n}\n\nfunction getCanvasElement () {\n try {\n return document.createElement('canvas')\n } catch (e) {\n throw new Error('You need to specify a canvas element')\n }\n}\n\nexports.render = function render (qrData, canvas, options) {\n var opts = options\n var canvasEl = canvas\n\n if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n opts = canvas\n canvas = undefined\n }\n\n if (!canvas) {\n canvasEl = getCanvasElement()\n }\n\n opts = Utils.getOptions(opts)\n var size = Utils.getImageWidth(qrData.modules.size, opts)\n\n var ctx = canvasEl.getContext('2d')\n var image = ctx.createImageData(size, size)\n Utils.qrToImageData(image.data, qrData, opts)\n\n clearCanvas(ctx, canvasEl, size)\n ctx.putImageData(image, 0, 0)\n\n return canvasEl\n}\n\nexports.renderToDataURL = function renderToDataURL (qrData, canvas, options) {\n var opts = options\n\n if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n opts = canvas\n canvas = undefined\n }\n\n if (!opts) opts = {}\n\n var canvasEl = exports.render(qrData, canvas, opts)\n\n var type = opts.type || 'image/png'\n var rendererOpts = opts.rendererOpts || {}\n\n return canvasEl.toDataURL(type, rendererOpts.quality)\n}\n","var Utils = require('./utils')\n\nfunction getColorAttrib (color, attrib) {\n var alpha = color.a / 255\n var str = attrib + '=\"' + color.hex + '\"'\n\n return alpha < 1\n ? str + ' ' + attrib + '-opacity=\"' + alpha.toFixed(2).slice(1) + '\"'\n : str\n}\n\nfunction svgCmd (cmd, x, y) {\n var str = cmd + x\n if (typeof y !== 'undefined') str += ' ' + y\n\n return str\n}\n\nfunction qrToPath (data, size, margin) {\n var path = ''\n var moveBy = 0\n var newRow = false\n var lineLength = 0\n\n for (var i = 0; i < data.length; i++) {\n var col = Math.floor(i % size)\n var row = Math.floor(i / size)\n\n if (!col && !newRow) newRow = true\n\n if (data[i]) {\n lineLength++\n\n if (!(i > 0 && col > 0 && data[i - 1])) {\n path += newRow\n ? svgCmd('M', col + margin, 0.5 + row + margin)\n : svgCmd('m', moveBy, 0)\n\n moveBy = 0\n newRow = false\n }\n\n if (!(col + 1 < size && data[i + 1])) {\n path += svgCmd('h', lineLength)\n lineLength = 0\n }\n } else {\n moveBy++\n }\n }\n\n return path\n}\n\nexports.render = function render (qrData, options, cb) {\n var opts = Utils.getOptions(options)\n var size = qrData.modules.size\n var data = qrData.modules.data\n var qrcodesize = size + opts.margin * 2\n\n var bg = !opts.color.light.a\n ? ''\n : ''\n\n var path =\n ''\n\n var viewBox = 'viewBox=\"' + '0 0 ' + qrcodesize + ' ' + qrcodesize + '\"'\n\n var width = !opts.width ? '' : 'width=\"' + opts.width + '\" height=\"' + opts.width + '\" '\n\n var svgTag = '' + bg + path + '\\n'\n\n if (typeof cb === 'function') {\n cb(null, svgTag)\n }\n\n return svgTag\n}\n","\nvar canPromise = require('./can-promise')\n\nvar QRCode = require('./core/qrcode')\nvar CanvasRenderer = require('./renderer/canvas')\nvar SvgRenderer = require('./renderer/svg-tag.js')\n\nfunction renderCanvas (renderFunc, canvas, text, opts, cb) {\n var args = [].slice.call(arguments, 1)\n var argsNum = args.length\n var isLastArgCb = typeof args[argsNum - 1] === 'function'\n\n if (!isLastArgCb && !canPromise()) {\n throw new Error('Callback required as last argument')\n }\n\n if (isLastArgCb) {\n if (argsNum < 2) {\n throw new Error('Too few arguments provided')\n }\n\n if (argsNum === 2) {\n cb = text\n text = canvas\n canvas = opts = undefined\n } else if (argsNum === 3) {\n if (canvas.getContext && typeof cb === 'undefined') {\n cb = opts\n opts = undefined\n } else {\n cb = opts\n opts = text\n text = canvas\n canvas = undefined\n }\n }\n } else {\n if (argsNum < 1) {\n throw new Error('Too few arguments provided')\n }\n\n if (argsNum === 1) {\n text = canvas\n canvas = opts = undefined\n } else if (argsNum === 2 && !canvas.getContext) {\n opts = text\n text = canvas\n canvas = undefined\n }\n\n return new Promise(function (resolve, reject) {\n try {\n var data = QRCode.create(text, opts)\n resolve(renderFunc(data, canvas, opts))\n } catch (e) {\n reject(e)\n }\n })\n }\n\n try {\n var data = QRCode.create(text, opts)\n cb(null, renderFunc(data, canvas, opts))\n } catch (e) {\n cb(e)\n }\n}\n\nexports.create = QRCode.create\nexports.toCanvas = renderCanvas.bind(null, CanvasRenderer.render)\nexports.toDataURL = renderCanvas.bind(null, CanvasRenderer.renderToDataURL)\n\n// only svg for now.\nexports.toString = renderCanvas.bind(null, function (data, _, opts) {\n return SvgRenderer.render(data, opts)\n})\n","\nmodule.exports = function () {\n var selection = document.getSelection();\n if (!selection.rangeCount) {\n return function () {};\n }\n var active = document.activeElement;\n\n var ranges = [];\n for (var i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n\n switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML\n case 'INPUT':\n case 'TEXTAREA':\n active.blur();\n break;\n\n default:\n active = null;\n break;\n }\n\n selection.removeAllRanges();\n return function () {\n selection.type === 'Caret' &&\n selection.removeAllRanges();\n\n if (!selection.rangeCount) {\n ranges.forEach(function(range) {\n selection.addRange(range);\n });\n }\n\n active &&\n active.focus();\n };\n};\n","\"use strict\";\n\nvar deselectCurrent = require(\"toggle-selection\");\n\nvar clipboardToIE11Formatting = {\n \"text/plain\": \"Text\",\n \"text/html\": \"Url\",\n \"default\": \"Text\"\n}\n\nvar defaultMessage = \"Copy to clipboard: #{key}, Enter\";\n\nfunction format(message) {\n var copyKey = (/mac os x/i.test(navigator.userAgent) ? \"⌘\" : \"Ctrl\") + \"+C\";\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n}\n\nfunction copy(text, options) {\n var debug,\n message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n if (!options) {\n options = {};\n }\n debug = options.debug || false;\n try {\n reselectPrevious = deselectCurrent();\n\n range = document.createRange();\n selection = document.getSelection();\n\n mark = document.createElement(\"span\");\n mark.textContent = text;\n // avoid screen readers from reading out loud the text\n mark.ariaHidden = \"true\"\n // reset user styles for span element\n mark.style.all = \"unset\";\n // prevents scrolling to the end of the page\n mark.style.position = \"fixed\";\n mark.style.top = 0;\n mark.style.clip = \"rect(0, 0, 0, 0)\";\n // used to preserve spaces and line breaks\n mark.style.whiteSpace = \"pre\";\n // do not inherit user-select (it may be `none`)\n mark.style.webkitUserSelect = \"text\";\n mark.style.MozUserSelect = \"text\";\n mark.style.msUserSelect = \"text\";\n mark.style.userSelect = \"text\";\n mark.addEventListener(\"copy\", function(e) {\n e.stopPropagation();\n if (options.format) {\n e.preventDefault();\n if (typeof e.clipboardData === \"undefined\") { // IE 11\n debug && console.warn(\"unable to use e.clipboardData\");\n debug && console.warn(\"trying IE specific stuff\");\n window.clipboardData.clearData();\n var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting[\"default\"]\n window.clipboardData.setData(format, text);\n } else { // all other browsers\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n }\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n\n document.body.appendChild(mark);\n\n range.selectNodeContents(mark);\n selection.addRange(range);\n\n var successful = document.execCommand(\"copy\");\n if (!successful) {\n throw new Error(\"copy command was unsuccessful\");\n }\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using execCommand: \", err);\n debug && console.warn(\"trying IE specific stuff\");\n try {\n window.clipboardData.setData(options.format || \"text\", text);\n options.onCopy && options.onCopy(window.clipboardData);\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using clipboardData: \", err);\n debug && console.error(\"falling back to prompt\");\n message = format(\"message\" in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == \"function\") {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n reselectPrevious();\n }\n\n return success;\n}\n\nmodule.exports = copy;\n","var n,l,u,i,t,r,o,f,e={},c=[],s=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord/i;function a(n,l){for(var u in l)n[u]=l[u];return n}function v(n){var l=n.parentNode;l&&l.removeChild(n)}function h(n,l,u){var i,t=arguments,r={};for(i in l)\"key\"!==i&&\"ref\"!==i&&(r[i]=l[i]);if(arguments.length>3)for(u=[u],i=3;i2&&(l.children=c.slice.call(arguments,2)),u={},l)\"key\"!==i&&\"ref\"!==i&&(u[i]=l[i]);return p(n.type,u,l.key||n.key,l.ref||n.ref,null)}function M(n){var l={},u={__c:\"__cC\"+f++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var i,t=this;return this.getChildContext||(i=[],this.getChildContext=function(){return l[u.__c]=t,l},this.shouldComponentUpdate=function(n){t.props.value!==n.value&&i.some(function(l){l.context=n.value,g(l)})},this.sub=function(n){i.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){i.splice(i.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Consumer.contextType=u,u.Provider.__=u,u}n={__e:function(n,l){for(var u,i;l=l.__;)if((u=l.__c)&&!u.__)try{if(u.constructor&&null!=u.constructor.getDerivedStateFromError&&(i=!0,u.setState(u.constructor.getDerivedStateFromError(n))),null!=u.componentDidCatch&&(i=!0,u.componentDidCatch(n)),i)return g(u.__E=u)}catch(l){n=l}throw n}},l=function(n){return null!=n&&void 0===n.constructor},m.prototype.setState=function(n,l){var u;u=this.__s!==this.state?this.__s:this.__s=a({},this.state),\"function\"==typeof n&&(n=n(u,this.props)),n&&a(u,n),null!=n&&this.__v&&(l&&this.__h.push(l),g(this))},m.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),g(this))},m.prototype.render=d,u=[],i=0,t=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,o=e,f=0;export{H as render,I as hydrate,h as createElement,h,d as Fragment,y as createRef,l as isValidElement,m as Component,L as cloneElement,M as createContext,x as toChildArray,D as _unmount,n as options};\n//# sourceMappingURL=preact.module.js.map\n","import{options as n}from\"preact\";var t,u,r,i=0,o=[],c=n.__r,f=n.diffed,e=n.__c,a=n.unmount;function v(t,r){n.__h&&n.__h(u,t,i||r),i=0;var o=u.__H||(u.__H={__:[],__h:[]});return t>=o.__.length&&o.__.push({}),o.__[t]}function m(n){return i=1,p(E,n)}function p(n,r,i){var o=v(t++,2);return o.__c||(o.__c=u,o.__=[i?i(r):E(void 0,r),function(t){var u=n(o.__[0],t);o.__[0]!==u&&(o.__[0]=u,o.__c.setState({}))}]),o.__}function l(r,i){var o=v(t++,3);!n.__s&&x(o.__H,i)&&(o.__=r,o.__H=i,u.__H.__h.push(o))}function y(r,i){var o=v(t++,4);!n.__s&&x(o.__H,i)&&(o.__=r,o.__H=i,u.__h.push(o))}function d(n){return i=5,h(function(){return{current:n}},[])}function s(n,t,u){i=6,y(function(){\"function\"==typeof n?n(t()):n&&(n.current=t())},null==u?u:u.concat(n))}function h(n,u){var r=v(t++,7);return x(r.__H,u)?(r.__H=u,r.__h=n,r.__=n()):r.__}function T(n,t){return i=8,h(function(){return n},t)}function w(n){var r=u.context[n.__c],i=v(t++,9);return i.__c=n,r?(null==i.__&&(i.__=!0,r.sub(u)),r.props.value):n.__}function A(t,u){n.useDebugValue&&n.useDebugValue(u?u(t):t)}function F(n){var r=v(t++,10),i=m();return r.__=n,u.componentDidCatch||(u.componentDidCatch=function(n){r.__&&r.__(n),i[1](n)}),[i[0],function(){i[1](void 0)}]}function _(){o.some(function(t){if(t.__P)try{t.__H.__h.forEach(g),t.__H.__h.forEach(q),t.__H.__h=[]}catch(u){return t.__H.__h=[],n.__e(u,t.__v),!0}}),o=[]}function g(n){n.t&&n.t()}function q(n){var t=n.__();\"function\"==typeof t&&(n.t=t)}function x(n,t){return!n||t.some(function(t,u){return t!==n[u]})}function E(n,t){return\"function\"==typeof t?t(n):t}n.__r=function(n){c&&c(n),t=0,(u=n.__c).__H&&(u.__H.__h.forEach(g),u.__H.__h.forEach(q),u.__H.__h=[])},n.diffed=function(t){f&&f(t);var u=t.__c;if(u){var i=u.__H;i&&i.__h.length&&(1!==o.push(u)&&r===n.requestAnimationFrame||((r=n.requestAnimationFrame)||function(n){var t,u=function(){clearTimeout(r),cancelAnimationFrame(t),setTimeout(n)},r=setTimeout(u,100);\"undefined\"!=typeof window&&(t=requestAnimationFrame(u))})(_))}},n.__c=function(t,u){u.some(function(t){try{t.__h.forEach(g),t.__h=t.__h.filter(function(n){return!n.__||q(n)})}catch(r){u.some(function(n){n.__h&&(n.__h=[])}),u=[],n.__e(r,t.__v)}}),e&&e(t,u)},n.unmount=function(t){a&&a(t);var u=t.__c;if(u){var r=u.__H;if(r)try{r.__.forEach(function(n){return n.t&&n.t()})}catch(t){n.__e(t,u.__v)}}};export{m as useState,p as useReducer,l as useEffect,y as useLayoutEffect,d as useRef,s as useImperativeHandle,h as useMemo,T as useCallback,w as useContext,A as useDebugValue,F as useErrorBoundary};\n//# sourceMappingURL=hooks.module.js.map\n","import{useState as n,useReducer as t,useEffect as e,useLayoutEffect as r,useRef as o,useImperativeHandle as u,useMemo as i,useCallback as f,useContext as c,useDebugValue as a}from\"preact/hooks\";export*from\"preact/hooks\";import{Component as l,createElement as s,options as v,toChildArray as h,hydrate as p,render as d,_unmount as m,cloneElement as y,createRef as b,createContext as g,Fragment as x}from\"preact\";export{createElement,createContext,createRef,Fragment,Component}from\"preact\";function E(n,t){for(var e in t)n[e]=t[e];return n}function w(n,t){for(var e in n)if(\"__source\"!==e&&!(e in t))return!0;for(var r in t)if(\"__source\"!==r&&n[r]!==t[r])return!0;return!1}var C=function(n){var t,e;function r(t){var e;return(e=n.call(this,t)||this).isPureReactComponent=!0,e}return e=n,(t=r).prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e,r.prototype.shouldComponentUpdate=function(n,t){return w(this.props,n)||w(this.state,t)},r}(l);function _(n,t){function e(n){var e=this.props.ref,r=e==n.ref;return!r&&e&&(e.call?e(null):e.current=null),t?!t(this.props,n)||!r:w(this.props,n)}function r(t){return this.shouldComponentUpdate=e,s(n,E({},t))}return r.prototype.isReactComponent=!0,r.displayName=\"Memo(\"+(n.displayName||n.name)+\")\",r.t=!0,r}var A=v.__b;function S(n){function t(t){var e=E({},t);return delete e.ref,n(e,t.ref)}return t.prototype.isReactComponent=t.t=!0,t.displayName=\"ForwardRef(\"+(n.displayName||n.name)+\")\",t}v.__b=function(n){n.type&&n.type.t&&n.ref&&(n.props.ref=n.ref,n.ref=null),A&&A(n)};var k=function(n,t){return n?h(n).reduce(function(n,e,r){return n.concat(t(e,r))},[]):null},R={map:k,forEach:k,count:function(n){return n?h(n).length:0},only:function(n){if(1!==(n=h(n)).length)throw new Error(\"Children.only() expects only one child.\");return n[0]},toArray:h},F=v.__e;function N(n){return n&&((n=E({},n)).__c=null,n.__k=n.__k&&n.__k.map(N)),n}function U(){this.__u=0,this.o=null,this.__b=null}function M(n){var t=n.__.__c;return t&&t.u&&t.u(n)}function L(n){var t,e,r;function o(o){if(t||(t=n()).then(function(n){e=n.default||n},function(n){r=n}),r)throw r;if(!e)throw t;return s(e,o)}return o.displayName=\"Lazy\",o.t=!0,o}function O(){this.i=null,this.l=null}v.__e=function(n,t,e){if(n.then)for(var r,o=t;o=o.__;)if((r=o.__c)&&r.__c)return r.__c(n,t.__c);F(n,t,e)},(U.prototype=new l).__c=function(n,t){var e=this;null==e.o&&(e.o=[]),e.o.push(t);var r=M(e.__v),o=!1,u=function(){o||(o=!0,r?r(i):i())};t.__c=t.componentWillUnmount,t.componentWillUnmount=function(){u(),t.__c&&t.__c()};var i=function(){var n;if(!--e.__u)for(e.__v.__k[0]=e.state.u,e.setState({u:e.__b=null});n=e.o.pop();)n.forceUpdate()};e.__u++||e.setState({u:e.__b=e.__v.__k[0]}),n.then(u,u)},U.prototype.render=function(n,t){return this.__b&&(this.__v.__k[0]=N(this.__b),this.__b=null),[s(l,null,t.u?null:n.children),t.u&&n.fallback]};var P=function(n,t,e){if(++e[1]===e[0]&&n.l.delete(t),n.props.revealOrder&&(\"t\"!==n.props.revealOrder[0]||!n.l.size))for(e=n.i;e;){for(;e.length>3;)e.pop()();if(e[1] 8 ? 2.5 : 2.7) + \"vw\") : \"inherit\";\n return React.createElement(\"a\", {\n className: \"walletconnect-connect__button__icon_anchor\",\n href: href,\n onClick: onClick,\n rel: \"noopener noreferrer\",\n target: \"_blank\"\n }, React.createElement(\"div\", {\n className: \"walletconnect-connect__button__icon\",\n style: {\n background: (\"url('\" + logo + \"') \" + color),\n backgroundSize: \"100%\"\n }\n }), React.createElement(\"div\", {\n style: {\n fontSize: fontSize\n },\n className: \"walletconnect-connect__button__text\"\n }, name));\n}\n\nvar GRID_MIN_COUNT = 5;\nvar LINKS_PER_PAGE = 12;\n\nfunction LinkDisplay(props) {\n var android = browserUtils.isAndroid();\n var ref = React.useState(\"\");\n var input = ref[0];\n var setInput = ref[1];\n var ref$1 = React.useState(\"\");\n var filter = ref$1[0];\n var setFilter = ref$1[1];\n var ref$2 = React.useState(1);\n var page = ref$2[0];\n var setPage = ref$2[1];\n var links = filter ? props.links.filter(function (link) { return link.name.toLowerCase().includes(filter.toLowerCase()); }) : props.links;\n var errorMessage = props.errorMessage;\n var grid = filter || links.length > GRID_MIN_COUNT;\n var pages = Math.ceil(links.length / LINKS_PER_PAGE);\n var range = [(page - 1) * LINKS_PER_PAGE + 1, page * LINKS_PER_PAGE];\n var pageLinks = links.length ? links.filter(function (_, index) { return index + 1 >= range[0] && index + 1 <= range[1]; }) : [];\n var hasPaging = !!(!android && pages > 1);\n var filterTimeout = undefined;\n\n function handleInput(e) {\n setInput(e.target.value);\n clearTimeout(filterTimeout);\n\n if (e.target.value) {\n filterTimeout = setTimeout(function () {\n setFilter(e.target.value);\n setPage(1);\n }, 1000);\n } else {\n setInput(\"\");\n setFilter(\"\");\n setPage(1);\n }\n }\n\n return React.createElement(\"div\", null, React.createElement(\"p\", {\n id: WALLETCONNECT_CTA_TEXT_ID,\n className: \"walletconnect-qrcode__text\"\n }, android ? props.text.connect_mobile_wallet : props.text.choose_preferred_wallet), !android && React.createElement(\"input\", {\n className: \"walletconnect-search__input\",\n placeholder: \"Search\",\n value: input,\n onChange: handleInput\n }), React.createElement(\"div\", {\n className: (\"walletconnect-connect__buttons__wrapper\" + (android ? \"__android\" : grid && links.length ? \"__wrap\" : \"\"))\n }, !android ? pageLinks.length ? pageLinks.map(function (entry) {\n var color = entry.color;\n var name = entry.name;\n var shortName = entry.shortName;\n var logo = entry.logo;\n var href = browserUtils.formatIOSMobile(props.uri, entry);\n var handleClickIOS = React.useCallback(function () {\n browserUtils.saveMobileLinkInfo({\n name: name,\n href: href\n });\n }, [pageLinks]);\n return !grid ? React.createElement(WalletButton, {\n color: color,\n href: href,\n name: name,\n logo: logo,\n onClick: handleClickIOS\n }) : React.createElement(WalletIcon, {\n color: color,\n href: href,\n name: shortName || name,\n logo: logo,\n onClick: handleClickIOS\n });\n }) : React.createElement(React.Fragment, null, React.createElement(\"p\", null, errorMessage.length ? props.errorMessage : !!props.links.length && !links.length ? props.text.no_wallets_found : props.text.loading)) : React.createElement(ConnectButton, {\n name: props.text.connect,\n color: DEFAULT_BUTTON_COLOR,\n href: props.uri,\n onClick: React.useCallback(function () {\n browserUtils.saveMobileLinkInfo({\n name: \"Unknown\",\n href: props.uri\n });\n }, [])\n })), hasPaging && React.createElement(\"div\", {\n className: \"walletconnect-modal__footer\"\n }, Array(pages).fill(0).map(function (_, index) {\n var pageNumber = index + 1;\n var selected = page === pageNumber;\n return React.createElement(\"a\", {\n style: {\n margin: \"auto 10px\",\n fontWeight: selected ? \"bold\" : \"normal\"\n },\n onClick: function () { return setPage(pageNumber); }\n }, pageNumber);\n })));\n}\n\nfunction Notification(props) {\n var show = !!props.message.trim();\n return React.createElement(\"div\", {\n className: (\"walletconnect-qrcode__notification\" + (show ? \" notification__show\" : \"\"))\n }, props.message);\n}\n\nvar formatQRCodeImage = function (data) {\n try {\n var result = \"\";\n return Promise.resolve(QRCode.toString(data, {\n margin: 0,\n type: \"svg\"\n })).then(function (dataString) {\n if (typeof dataString === \"string\") {\n result = dataString.replace(\" 0) {\n return;\n }\n\n React.useEffect(function () {\n var initLinks = function () {\n try {\n if (android) { return Promise.resolve(); }\n setLoading(true);\n\n var _temp = _catch(function () {\n var url = props.qrcodeModalOptions && props.qrcodeModalOptions.registryUrl ? props.qrcodeModalOptions.registryUrl : browserUtils.getWalletRegistryUrl();\n return Promise.resolve(fetch(url)).then(function (registryResponse) {\n return Promise.resolve(registryResponse.json()).then(function (_registryResponse$jso) {\n var registry = _registryResponse$jso.listings;\n var platform = mobile ? \"mobile\" : \"desktop\";\n\n var _links = browserUtils.getMobileLinkRegistry(browserUtils.formatMobileRegistry(registry, platform), whitelist);\n\n setLoading(false);\n setFetched(true);\n setErrorMessage(!_links.length ? props.text.no_supported_wallets : \"\");\n setLinks(_links);\n var hasSingleLink = _links.length === 1;\n\n if (hasSingleLink) {\n setSingleLinkHref(browserUtils.formatIOSMobile(props.uri, _links[0]));\n setDisplayQRCode(true);\n }\n\n setHasSingleLink(hasSingleLink);\n });\n });\n }, function (e) {\n setLoading(false);\n setFetched(true);\n setErrorMessage(props.text.something_went_wrong);\n console.error(e);\n });\n\n return Promise.resolve(_temp && _temp.then ? _temp.then(function () {}) : void 0);\n } catch (e) {\n return Promise.reject(e);\n }\n };\n\n initLinks();\n });\n };\n\n getLinksIfNeeded();\n var rightSelected = mobile ? displayQRCode : !displayQRCode;\n return React.createElement(\"div\", {\n id: WALLETCONNECT_MODAL_ID,\n className: \"walletconnect-qrcode__base animated fadeIn\"\n }, React.createElement(\"div\", {\n className: \"walletconnect-modal__base\"\n }, React.createElement(Header, {\n onClose: props.onClose\n }), hasSingleLink && displayQRCode ? React.createElement(\"div\", {\n className: \"walletconnect-modal__single_wallet\"\n }, React.createElement(\"a\", {\n onClick: function () { return browserUtils.saveMobileLinkInfo({\n name: links[0].name,\n href: singleLinkHref\n }); },\n href: singleLinkHref,\n rel: \"noopener noreferrer\",\n target: \"_blank\"\n }, props.text.connect_with + \" \" + (hasSingleLink ? links[0].name : \"\") + \" ›\")) : android || loading || !loading && links.length ? React.createElement(\"div\", {\n className: (\"walletconnect-modal__mobile__toggle\" + (rightSelected ? \" right__selected\" : \"\"))\n }, React.createElement(\"div\", {\n className: \"walletconnect-modal__mobile__toggle_selector\"\n }), mobile ? React.createElement(React.Fragment, null, React.createElement(\"a\", {\n onClick: function () { return (setDisplayQRCode(false), getLinksIfNeeded()); }\n }, props.text.mobile), React.createElement(\"a\", {\n onClick: function () { return setDisplayQRCode(true); }\n }, props.text.qrcode)) : React.createElement(React.Fragment, null, React.createElement(\"a\", {\n onClick: function () { return setDisplayQRCode(true); }\n }, props.text.qrcode), React.createElement(\"a\", {\n onClick: function () { return (setDisplayQRCode(false), getLinksIfNeeded()); }\n }, props.text.desktop))) : null, React.createElement(\"div\", null, displayQRCode || !android && !loading && !links.length ? React.createElement(QRCodeDisplay, Object.assign({}, displayProps)) : React.createElement(LinkDisplay, Object.assign({}, displayProps,\n {links: links,\n errorMessage: errorMessage})))));\n}\n\nvar de = {\n choose_preferred_wallet: \"Wähle bevorzugte Wallet\",\n connect_mobile_wallet: \"Verbinde mit Mobile Wallet\",\n scan_qrcode_with_wallet: \"Scanne den QR-code mit einer WalletConnect kompatiblen Wallet\",\n connect: \"Verbinden\",\n qrcode: \"QR-Code\",\n mobile: \"Mobile\",\n desktop: \"Desktop\",\n copy_to_clipboard: \"In die Zwischenablage kopieren\",\n copied_to_clipboard: \"In die Zwischenablage kopiert!\",\n connect_with: \"Verbinden mit Hilfe von\",\n loading: \"Laden...\",\n something_went_wrong: \"Etwas ist schief gelaufen\",\n no_supported_wallets: \"Es gibt noch keine unterstützten Wallet\",\n no_wallets_found: \"keine Wallet gefunden\"\n};\n\nvar en = {\n choose_preferred_wallet: \"Choose your preferred wallet\",\n connect_mobile_wallet: \"Connect to Mobile Wallet\",\n scan_qrcode_with_wallet: \"Scan QR code with a WalletConnect-compatible wallet\",\n connect: \"Connect\",\n qrcode: \"QR Code\",\n mobile: \"Mobile\",\n desktop: \"Desktop\",\n copy_to_clipboard: \"Copy to clipboard\",\n copied_to_clipboard: \"Copied to clipboard!\",\n connect_with: \"Connect with\",\n loading: \"Loading...\",\n something_went_wrong: \"Something went wrong\",\n no_supported_wallets: \"There are no supported wallets yet\",\n no_wallets_found: \"No wallets found\"\n};\n\nvar es = {\n choose_preferred_wallet: \"Elige tu billetera preferida\",\n connect_mobile_wallet: \"Conectar a billetera móvil\",\n scan_qrcode_with_wallet: \"Escanea el código QR con una billetera compatible con WalletConnect\",\n connect: \"Conectar\",\n qrcode: \"Código QR\",\n mobile: \"Móvil\",\n desktop: \"Desktop\",\n copy_to_clipboard: \"Copiar\",\n copied_to_clipboard: \"Copiado!\",\n connect_with: \"Conectar mediante\",\n loading: \"Cargando...\",\n something_went_wrong: \"Algo salió mal\",\n no_supported_wallets: \"Todavía no hay billeteras compatibles\",\n no_wallets_found: \"No se encontraron billeteras\"\n};\n\nvar fr = {\n choose_preferred_wallet: \"Choisissez votre portefeuille préféré\",\n connect_mobile_wallet: \"Se connecter au portefeuille mobile\",\n scan_qrcode_with_wallet: \"Scannez le QR code avec un portefeuille compatible WalletConnect\",\n connect: \"Se connecter\",\n qrcode: \"QR Code\",\n mobile: \"Mobile\",\n desktop: \"Desktop\",\n copy_to_clipboard: \"Copier\",\n copied_to_clipboard: \"Copié!\",\n connect_with: \"Connectez-vous à l'aide de\",\n loading: \"Chargement...\",\n something_went_wrong: \"Quelque chose a mal tourné\",\n no_supported_wallets: \"Il n'y a pas encore de portefeuilles pris en charge\",\n no_wallets_found: \"Aucun portefeuille trouvé\"\n};\n\nvar ko = {\n choose_preferred_wallet: \"원하는 지갑을 선택하세요\",\n connect_mobile_wallet: \"모바일 지갑과 연결\",\n scan_qrcode_with_wallet: \"WalletConnect 지원 지갑에서 QR코드를 스캔하세요\",\n connect: \"연결\",\n qrcode: \"QR 코드\",\n mobile: \"모바일\",\n desktop: \"데스크탑\",\n copy_to_clipboard: \"클립보드에 복사\",\n copied_to_clipboard: \"클립보드에 복사되었습니다!\",\n connect_with: \"와 연결하다\",\n loading: \"로드 중...\",\n something_went_wrong: \"문제가 발생했습니다.\",\n no_supported_wallets: \"아직 지원되는 지갑이 없습니다\",\n no_wallets_found: \"지갑을 찾을 수 없습니다\"\n};\n\nvar pt = {\n choose_preferred_wallet: \"Escolha sua carteira preferida\",\n connect_mobile_wallet: \"Conectar-se à carteira móvel\",\n scan_qrcode_with_wallet: \"Ler o código QR com uma carteira compatível com WalletConnect\",\n connect: \"Conectar\",\n qrcode: \"Código QR\",\n mobile: \"Móvel\",\n desktop: \"Desktop\",\n copy_to_clipboard: \"Copiar\",\n copied_to_clipboard: \"Copiado!\",\n connect_with: \"Ligar por meio de\",\n loading: \"Carregamento...\",\n something_went_wrong: \"Algo correu mal\",\n no_supported_wallets: \"Ainda não há carteiras suportadas\",\n no_wallets_found: \"Nenhuma carteira encontrada\"\n};\n\nvar zh = {\n choose_preferred_wallet: \"选择你的钱包\",\n connect_mobile_wallet: \"连接至移动端钱包\",\n scan_qrcode_with_wallet: \"使用兼容 WalletConnect 的钱包扫描二维码\",\n connect: \"连接\",\n qrcode: \"二维码\",\n mobile: \"移动\",\n desktop: \"桌面\",\n copy_to_clipboard: \"复制到剪贴板\",\n copied_to_clipboard: \"复制到剪贴板成功!\",\n connect_with: \"通过以下方式连接\",\n loading: \"正在加载...\",\n something_went_wrong: \"出了问题\",\n no_supported_wallets: \"目前还没有支持的钱包\",\n no_wallets_found: \"没有找到钱包\"\n};\n\nvar fa = {\n choose_preferred_wallet: \"کیف پول مورد نظر خود را انتخاب کنید\",\n connect_mobile_wallet: \"به کیف پول موبایل وصل شوید\",\n scan_qrcode_with_wallet: \"کد QR را با یک کیف پول سازگار با WalletConnect اسکن کنید\",\n connect: \"اتصال\",\n qrcode: \"کد QR\",\n mobile: \"سیار\",\n desktop: \"دسکتاپ\",\n copy_to_clipboard: \"کپی به کلیپ بورد\",\n copied_to_clipboard: \"در کلیپ بورد کپی شد!\",\n connect_with: \"ارتباط با\",\n loading: \"...بارگذاری\",\n something_went_wrong: \"مشکلی پیش آمد\",\n no_supported_wallets: \"هنوز هیچ کیف پول پشتیبانی شده ای وجود ندارد\",\n no_wallets_found: \"هیچ کیف پولی پیدا نشد\"\n};\n\nvar languages = {\n de: de,\n en: en,\n es: es,\n fr: fr,\n ko: ko,\n pt: pt,\n zh: zh,\n fa: fa\n};\n\nfunction injectStyleSheet() {\n var doc = browserUtils.getDocumentOrThrow();\n var prev = doc.getElementById(WALLETCONNECT_STYLE_ID);\n\n if (prev) {\n doc.head.removeChild(prev);\n }\n\n var style = doc.createElement(\"style\");\n style.setAttribute(\"id\", WALLETCONNECT_STYLE_ID);\n style.innerText = WALLETCONNECT_STYLE_SHEET;\n doc.head.appendChild(style);\n}\n\nfunction renderWrapper() {\n var doc = browserUtils.getDocumentOrThrow();\n var wrapper = doc.createElement(\"div\");\n wrapper.setAttribute(\"id\", WALLETCONNECT_WRAPPER_ID);\n doc.body.appendChild(wrapper);\n return wrapper;\n}\n\nfunction triggerCloseAnimation() {\n var doc = browserUtils.getDocumentOrThrow();\n var modal = doc.getElementById(WALLETCONNECT_MODAL_ID);\n\n if (modal) {\n modal.className = modal.className.replace(\"fadeIn\", \"fadeOut\");\n setTimeout(function () {\n var wrapper = doc.getElementById(WALLETCONNECT_WRAPPER_ID);\n\n if (wrapper) {\n doc.body.removeChild(wrapper);\n }\n }, ANIMATION_DURATION);\n }\n}\n\nfunction getWrappedCallback(cb) {\n return function () {\n triggerCloseAnimation();\n\n if (cb) {\n cb();\n }\n };\n}\n\nfunction getText() {\n var lang = browserUtils.getNavigatorOrThrow().language.split(\"-\")[0] || \"en\";\n return languages[lang] || languages[\"en\"];\n}\n\nfunction open$1(uri, cb, qrcodeModalOptions) {\n injectStyleSheet();\n var wrapper = renderWrapper();\n React.render(React.createElement(Modal, {\n text: getText(),\n uri: uri,\n onClose: getWrappedCallback(cb),\n qrcodeModalOptions: qrcodeModalOptions\n }), wrapper);\n}\nfunction close$1() {\n triggerCloseAnimation();\n}\n\nvar isNode = function () { return typeof process !== \"undefined\" && typeof process.versions !== \"undefined\" && typeof process.versions.node !== \"undefined\"; };\n\nfunction open$2(uri, cb, qrcodeModalOptions) {\n console.log(uri);\n\n if (isNode()) {\n open(uri);\n } else {\n open$1(uri, cb, qrcodeModalOptions);\n }\n}\n\nfunction close$2() {\n if (isNode()) ; else {\n close$1();\n }\n}\n\nvar index = {\n open: open$2,\n close: close$2\n};\n\nmodule.exports = index;\n//# sourceMappingURL=index.js.map\n","const e=Symbol(),t=Symbol(),r=\"a\",n=\"w\";let o=(e,t)=>new Proxy(e,t);const s=Object.getPrototypeOf,c=new WeakMap,l=e=>e&&(c.has(e)?c.get(e):s(e)===Object.prototype||s(e)===Array.prototype),f=e=>\"object\"==typeof e&&null!==e,i=e=>{if(Array.isArray(e))return Array.from(e);const t=Object.getOwnPropertyDescriptors(e);return Object.values(t).forEach(e=>{e.configurable=!0}),Object.create(s(e),t)},u=e=>e[t]||e,a=(s,c,f,p)=>{if(!l(s))return s;let g=p&&p.get(s);if(!g){const e=u(s);g=(e=>Object.values(Object.getOwnPropertyDescriptors(e)).some(e=>!e.configurable&&!e.writable))(e)?[e,i(e)]:[e],null==p||p.set(s,g)}const[y,h]=g;let w=f&&f.get(y);return w&&w[1].f===!!h||(w=((o,s)=>{const c={f:s};let l=!1;const f=(e,t)=>{if(!l){let s=c[r].get(o);if(s||(s={},c[r].set(o,s)),e===n)s[n]=!0;else{let r=s[e];r||(r=new Set,s[e]=r),r.add(t)}}},i={get:(e,n)=>n===t?o:(f(\"k\",n),a(Reflect.get(e,n),c[r],c.c,c.t)),has:(t,n)=>n===e?(l=!0,c[r].delete(o),!0):(f(\"h\",n),Reflect.has(t,n)),getOwnPropertyDescriptor:(e,t)=>(f(\"o\",t),Reflect.getOwnPropertyDescriptor(e,t)),ownKeys:e=>(f(n),Reflect.ownKeys(e))};return s&&(i.set=i.deleteProperty=()=>!1),[i,c]})(y,!!h),w[1].p=o(h||y,w[0]),f&&f.set(y,w)),w[1][r]=c,w[1].c=f,w[1].t=p,w[1].p},p=(e,t,r,o)=>{if(Object.is(e,t))return!1;if(!f(e)||!f(t))return!0;const s=r.get(u(e));if(!s)return!0;if(o){const r=o.get(e);if(r&&r.n===t)return r.g;o.set(e,{n:t,g:!1})}let c=null;try{for(const r of s.h||[])if(c=Reflect.has(e,r)!==Reflect.has(t,r),c)return c;if(!0===s[n]){if(c=((e,t)=>{const r=Reflect.ownKeys(e),n=Reflect.ownKeys(t);return r.length!==n.length||r.some((e,t)=>e!==n[t])})(e,t),c)return c}else for(const r of s.o||[])if(c=!!Reflect.getOwnPropertyDescriptor(e,r)!=!!Reflect.getOwnPropertyDescriptor(t,r),c)return c;for(const n of s.k||[])if(c=p(e[n],t[n],r,o),c)return c;return null===c&&(c=!0),c}finally{o&&o.set(e,{n:t,g:c})}},g=t=>!!l(t)&&e in t,y=e=>l(e)&&e[t]||null,h=(e,t=!0)=>{c.set(e,t)},w=(e,t,r)=>{const o=[],s=new WeakSet,c=(e,l)=>{if(s.has(e))return;f(e)&&s.add(e);const i=f(e)&&t.get(u(e));if(i){var a,p;if(null==(a=i.h)||a.forEach(e=>{const t=`:has(${String(e)})`;o.push(l?[...l,t]:[t])}),!0===i[n]){const e=\":ownKeys\";o.push(l?[...l,e]:[e])}else{var g;null==(g=i.o)||g.forEach(e=>{const t=`:hasOwn(${String(e)})`;o.push(l?[...l,t]:[t])})}null==(p=i.k)||p.forEach(t=>{r&&!(\"value\"in(Object.getOwnPropertyDescriptor(e,t)||{}))||c(e[t],l?[...l,t]:[t])})}else l&&o.push(l)};return c(e),o},O=e=>{o=e};export{w as affectedToPathList,a as createProxy,y as getUntracked,p as isChanged,h as markToTrack,O as replaceNewProxy,g as trackMemo};\n//# sourceMappingURL=index.modern.mjs.map\n","import { markToTrack, getUntracked } from 'proxy-compare';\n\nconst isObject = (x) => typeof x === \"object\" && x !== null;\nconst proxyStateMap = /* @__PURE__ */ new WeakMap();\nconst refSet = /* @__PURE__ */ new WeakSet();\nconst buildProxyFunction = (objectIs = Object.is, newProxy = (target, handler) => new Proxy(target, handler), canProxy = (x) => isObject(x) && !refSet.has(x) && (Array.isArray(x) || !(Symbol.iterator in x)) && !(x instanceof WeakMap) && !(x instanceof WeakSet) && !(x instanceof Error) && !(x instanceof Number) && !(x instanceof Date) && !(x instanceof String) && !(x instanceof RegExp) && !(x instanceof ArrayBuffer), defaultHandlePromise = (promise) => {\n switch (promise.status) {\n case \"fulfilled\":\n return promise.value;\n case \"rejected\":\n throw promise.reason;\n default:\n throw promise;\n }\n}, snapCache = /* @__PURE__ */ new WeakMap(), createSnapshot = (target, version, handlePromise = defaultHandlePromise) => {\n const cache = snapCache.get(target);\n if ((cache == null ? void 0 : cache[0]) === version) {\n return cache[1];\n }\n const snap = Array.isArray(target) ? [] : Object.create(Object.getPrototypeOf(target));\n markToTrack(snap, true);\n snapCache.set(target, [version, snap]);\n Reflect.ownKeys(target).forEach((key) => {\n if (Object.getOwnPropertyDescriptor(snap, key)) {\n return;\n }\n const value = Reflect.get(target, key);\n const desc = {\n value,\n enumerable: true,\n // This is intentional to avoid copying with proxy-compare.\n // It's still non-writable, so it avoids assigning a value.\n configurable: true\n };\n if (refSet.has(value)) {\n markToTrack(value, false);\n } else if (value instanceof Promise) {\n delete desc.value;\n desc.get = () => handlePromise(value);\n } else if (proxyStateMap.has(value)) {\n const [target2, ensureVersion] = proxyStateMap.get(\n value\n );\n desc.value = createSnapshot(\n target2,\n ensureVersion(),\n handlePromise\n );\n }\n Object.defineProperty(snap, key, desc);\n });\n return Object.preventExtensions(snap);\n}, proxyCache = /* @__PURE__ */ new WeakMap(), versionHolder = [1, 1], proxyFunction = (initialObject) => {\n if (!isObject(initialObject)) {\n throw new Error(\"object required\");\n }\n const found = proxyCache.get(initialObject);\n if (found) {\n return found;\n }\n let version = versionHolder[0];\n const listeners = /* @__PURE__ */ new Set();\n const notifyUpdate = (op, nextVersion = ++versionHolder[0]) => {\n if (version !== nextVersion) {\n version = nextVersion;\n listeners.forEach((listener) => listener(op, nextVersion));\n }\n };\n let checkVersion = versionHolder[1];\n const ensureVersion = (nextCheckVersion = ++versionHolder[1]) => {\n if (checkVersion !== nextCheckVersion && !listeners.size) {\n checkVersion = nextCheckVersion;\n propProxyStates.forEach(([propProxyState]) => {\n const propVersion = propProxyState[1](nextCheckVersion);\n if (propVersion > version) {\n version = propVersion;\n }\n });\n }\n return version;\n };\n const createPropListener = (prop) => (op, nextVersion) => {\n const newOp = [...op];\n newOp[1] = [prop, ...newOp[1]];\n notifyUpdate(newOp, nextVersion);\n };\n const propProxyStates = /* @__PURE__ */ new Map();\n const addPropListener = (prop, propProxyState) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && propProxyStates.has(prop)) {\n throw new Error(\"prop listener already exists\");\n }\n if (listeners.size) {\n const remove = propProxyState[3](createPropListener(prop));\n propProxyStates.set(prop, [propProxyState, remove]);\n } else {\n propProxyStates.set(prop, [propProxyState]);\n }\n };\n const removePropListener = (prop) => {\n var _a;\n const entry = propProxyStates.get(prop);\n if (entry) {\n propProxyStates.delete(prop);\n (_a = entry[1]) == null ? void 0 : _a.call(entry);\n }\n };\n const addListener = (listener) => {\n listeners.add(listener);\n if (listeners.size === 1) {\n propProxyStates.forEach(([propProxyState, prevRemove], prop) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && prevRemove) {\n throw new Error(\"remove already exists\");\n }\n const remove = propProxyState[3](createPropListener(prop));\n propProxyStates.set(prop, [propProxyState, remove]);\n });\n }\n const removeListener = () => {\n listeners.delete(listener);\n if (listeners.size === 0) {\n propProxyStates.forEach(([propProxyState, remove], prop) => {\n if (remove) {\n remove();\n propProxyStates.set(prop, [propProxyState]);\n }\n });\n }\n };\n return removeListener;\n };\n const baseObject = Array.isArray(initialObject) ? [] : Object.create(Object.getPrototypeOf(initialObject));\n const handler = {\n deleteProperty(target, prop) {\n const prevValue = Reflect.get(target, prop);\n removePropListener(prop);\n const deleted = Reflect.deleteProperty(target, prop);\n if (deleted) {\n notifyUpdate([\"delete\", [prop], prevValue]);\n }\n return deleted;\n },\n set(target, prop, value, receiver) {\n const hasPrevValue = Reflect.has(target, prop);\n const prevValue = Reflect.get(target, prop, receiver);\n if (hasPrevValue && (objectIs(prevValue, value) || proxyCache.has(value) && objectIs(prevValue, proxyCache.get(value)))) {\n return true;\n }\n removePropListener(prop);\n if (isObject(value)) {\n value = getUntracked(value) || value;\n }\n let nextValue = value;\n if (value instanceof Promise) {\n value.then((v) => {\n value.status = \"fulfilled\";\n value.value = v;\n notifyUpdate([\"resolve\", [prop], v]);\n }).catch((e) => {\n value.status = \"rejected\";\n value.reason = e;\n notifyUpdate([\"reject\", [prop], e]);\n });\n } else {\n if (!proxyStateMap.has(value) && canProxy(value)) {\n nextValue = proxyFunction(value);\n }\n const childProxyState = !refSet.has(nextValue) && proxyStateMap.get(nextValue);\n if (childProxyState) {\n addPropListener(prop, childProxyState);\n }\n }\n Reflect.set(target, prop, nextValue, receiver);\n notifyUpdate([\"set\", [prop], value, prevValue]);\n return true;\n }\n };\n const proxyObject = newProxy(baseObject, handler);\n proxyCache.set(initialObject, proxyObject);\n const proxyState = [\n baseObject,\n ensureVersion,\n createSnapshot,\n addListener\n ];\n proxyStateMap.set(proxyObject, proxyState);\n Reflect.ownKeys(initialObject).forEach((key) => {\n const desc = Object.getOwnPropertyDescriptor(\n initialObject,\n key\n );\n if (\"value\" in desc) {\n proxyObject[key] = initialObject[key];\n delete desc.value;\n delete desc.writable;\n }\n Object.defineProperty(baseObject, key, desc);\n });\n return proxyObject;\n}) => [\n // public functions\n proxyFunction,\n // shared state\n proxyStateMap,\n refSet,\n // internal things\n objectIs,\n newProxy,\n canProxy,\n defaultHandlePromise,\n snapCache,\n createSnapshot,\n proxyCache,\n versionHolder\n];\nconst [defaultProxyFunction] = buildProxyFunction();\nfunction proxy(initialObject = {}) {\n return defaultProxyFunction(initialObject);\n}\nfunction getVersion(proxyObject) {\n const proxyState = proxyStateMap.get(proxyObject);\n return proxyState == null ? void 0 : proxyState[1]();\n}\nfunction subscribe(proxyObject, callback, notifyInSync) {\n const proxyState = proxyStateMap.get(proxyObject);\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && !proxyState) {\n console.warn(\"Please use proxy object\");\n }\n let promise;\n const ops = [];\n const addListener = proxyState[3];\n let isListenerActive = false;\n const listener = (op) => {\n ops.push(op);\n if (notifyInSync) {\n callback(ops.splice(0));\n return;\n }\n if (!promise) {\n promise = Promise.resolve().then(() => {\n promise = void 0;\n if (isListenerActive) {\n callback(ops.splice(0));\n }\n });\n }\n };\n const removeListener = addListener(listener);\n isListenerActive = true;\n return () => {\n isListenerActive = false;\n removeListener();\n };\n}\nfunction snapshot(proxyObject, handlePromise) {\n const proxyState = proxyStateMap.get(proxyObject);\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && !proxyState) {\n console.warn(\"Please use proxy object\");\n }\n const [target, ensureVersion, createSnapshot] = proxyState;\n return createSnapshot(target, ensureVersion(), handlePromise);\n}\nfunction ref(obj) {\n refSet.add(obj);\n return obj;\n}\nconst unstable_buildProxyFunction = buildProxyFunction;\n\nexport { getVersion, proxy, ref, snapshot, subscribe, unstable_buildProxyFunction };\n","import { proxy, subscribe, snapshot } from 'valtio/vanilla';\n\nconst state$7 = proxy({\n history: [\"ConnectWallet\"],\n view: \"ConnectWallet\",\n data: void 0\n});\nconst RouterCtrl = {\n state: state$7,\n subscribe(callback) {\n return subscribe(state$7, () => callback(state$7));\n },\n push(view, data) {\n if (view !== state$7.view) {\n state$7.view = view;\n if (data) {\n state$7.data = data;\n }\n state$7.history.push(view);\n }\n },\n reset(view) {\n state$7.view = view;\n state$7.history = [view];\n },\n replace(view) {\n if (state$7.history.length > 1) {\n state$7.history[state$7.history.length - 1] = view;\n state$7.view = view;\n }\n },\n goBack() {\n if (state$7.history.length > 1) {\n state$7.history.pop();\n const [last] = state$7.history.slice(-1);\n state$7.view = last;\n }\n },\n setData(data) {\n state$7.data = data;\n }\n};\n\nconst CoreUtil = {\n WALLETCONNECT_DEEPLINK_CHOICE: \"WALLETCONNECT_DEEPLINK_CHOICE\",\n WCM_VERSION: \"WCM_VERSION\",\n RECOMMENDED_WALLET_AMOUNT: 9,\n isMobile() {\n if (typeof window !== \"undefined\") {\n return Boolean(\n window.matchMedia(\"(pointer:coarse)\").matches || /Android|webOS|iPhone|iPad|iPod|BlackBerry|Opera Mini/u.test(navigator.userAgent)\n );\n }\n return false;\n },\n isAndroid() {\n return CoreUtil.isMobile() && navigator.userAgent.toLowerCase().includes(\"android\");\n },\n isIos() {\n const ua = navigator.userAgent.toLowerCase();\n return CoreUtil.isMobile() && (ua.includes(\"iphone\") || ua.includes(\"ipad\"));\n },\n isHttpUrl(url) {\n return url.startsWith(\"http://\") || url.startsWith(\"https://\");\n },\n isArray(data) {\n return Array.isArray(data) && data.length > 0;\n },\n isTelegram() {\n return typeof window !== \"undefined\" && // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (Boolean(window.TelegramWebviewProxy) || // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Boolean(window.Telegram) || // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Boolean(window.TelegramWebviewProxyProto));\n },\n formatNativeUrl(appUrl, wcUri, name) {\n if (CoreUtil.isHttpUrl(appUrl)) {\n return this.formatUniversalUrl(appUrl, wcUri, name);\n }\n let safeAppUrl = appUrl;\n if (!safeAppUrl.includes(\"://\")) {\n safeAppUrl = appUrl.replaceAll(\"/\", \"\").replaceAll(\":\", \"\");\n safeAppUrl = `${safeAppUrl}://`;\n }\n if (!safeAppUrl.endsWith(\"/\")) {\n safeAppUrl = `${safeAppUrl}/`;\n }\n this.setWalletConnectDeepLink(safeAppUrl, name);\n const encodedWcUrl = encodeURIComponent(wcUri);\n return `${safeAppUrl}wc?uri=${encodedWcUrl}`;\n },\n formatUniversalUrl(appUrl, wcUri, name) {\n if (!CoreUtil.isHttpUrl(appUrl)) {\n return this.formatNativeUrl(appUrl, wcUri, name);\n }\n let safeAppUrl = appUrl;\n if (safeAppUrl.startsWith(\"https://t.me\")) {\n const formattedUri = Buffer.from(wcUri).toString(\"base64\").replace(/[=]/g, \"\");\n if (safeAppUrl.endsWith(\"/\")) {\n safeAppUrl = safeAppUrl.slice(0, -1);\n }\n this.setWalletConnectDeepLink(safeAppUrl, name);\n const url = new URL(safeAppUrl);\n url.searchParams.set(\"startapp\", formattedUri);\n const link = url.toString();\n return link;\n }\n if (!safeAppUrl.endsWith(\"/\")) {\n safeAppUrl = `${safeAppUrl}/`;\n }\n this.setWalletConnectDeepLink(safeAppUrl, name);\n const encodedWcUrl = encodeURIComponent(wcUri);\n return `${safeAppUrl}wc?uri=${encodedWcUrl}`;\n },\n async wait(miliseconds) {\n return new Promise((resolve) => {\n setTimeout(resolve, miliseconds);\n });\n },\n openHref(href, target) {\n const adjustedTarget = this.isTelegram() ? \"_blank\" : target;\n window.open(href, adjustedTarget, \"noreferrer noopener\");\n },\n setWalletConnectDeepLink(href, name) {\n try {\n localStorage.setItem(CoreUtil.WALLETCONNECT_DEEPLINK_CHOICE, JSON.stringify({ href, name }));\n } catch (e) {\n console.info(\"Unable to set WalletConnect deep link\");\n }\n },\n setWalletConnectAndroidDeepLink(wcUri) {\n try {\n const [href] = wcUri.split(\"?\");\n localStorage.setItem(\n CoreUtil.WALLETCONNECT_DEEPLINK_CHOICE,\n JSON.stringify({ href, name: \"Android\" })\n );\n } catch (e) {\n console.info(\"Unable to set WalletConnect android deep link\");\n }\n },\n removeWalletConnectDeepLink() {\n try {\n localStorage.removeItem(CoreUtil.WALLETCONNECT_DEEPLINK_CHOICE);\n } catch (e) {\n console.info(\"Unable to remove WalletConnect deep link\");\n }\n },\n setModalVersionInStorage() {\n try {\n if (typeof localStorage !== \"undefined\") {\n localStorage.setItem(CoreUtil.WCM_VERSION, \"2.7.0\");\n }\n } catch (e) {\n console.info(\"Unable to set Web3Modal version in storage\");\n }\n },\n getWalletRouterData() {\n var _a;\n const routerData = (_a = RouterCtrl.state.data) == null ? void 0 : _a.Wallet;\n if (!routerData) {\n throw new Error('Missing \"Wallet\" view data');\n }\n return routerData;\n }\n};\n\nconst isEnabled = typeof location !== \"undefined\" && (location.hostname.includes(\"localhost\") || location.protocol.includes(\"https\"));\nconst state$6 = proxy({\n enabled: isEnabled,\n userSessionId: \"\",\n events: [],\n connectedWalletId: void 0\n});\nconst EventsCtrl = {\n state: state$6,\n subscribe(callback) {\n return subscribe(state$6.events, () => callback(snapshot(state$6.events[state$6.events.length - 1])));\n },\n initialize() {\n if (state$6.enabled && typeof (crypto == null ? void 0 : crypto.randomUUID) !== \"undefined\") {\n state$6.userSessionId = crypto.randomUUID();\n }\n },\n setConnectedWalletId(connectedWalletId) {\n state$6.connectedWalletId = connectedWalletId;\n },\n click(data) {\n if (state$6.enabled) {\n const event = {\n type: \"CLICK\",\n name: data.name,\n userSessionId: state$6.userSessionId,\n timestamp: Date.now(),\n data\n };\n state$6.events.push(event);\n }\n },\n track(data) {\n if (state$6.enabled) {\n const event = {\n type: \"TRACK\",\n name: data.name,\n userSessionId: state$6.userSessionId,\n timestamp: Date.now(),\n data\n };\n state$6.events.push(event);\n }\n },\n view(data) {\n if (state$6.enabled) {\n const event = {\n type: \"VIEW\",\n name: data.name,\n userSessionId: state$6.userSessionId,\n timestamp: Date.now(),\n data\n };\n state$6.events.push(event);\n }\n }\n};\n\nconst state$5 = proxy({\n chains: void 0,\n walletConnectUri: void 0,\n isAuth: false,\n isCustomDesktop: false,\n isCustomMobile: false,\n isDataLoaded: false,\n isUiLoaded: false\n});\nconst OptionsCtrl = {\n state: state$5,\n subscribe(callback) {\n return subscribe(state$5, () => callback(state$5));\n },\n setChains(chains) {\n state$5.chains = chains;\n },\n setWalletConnectUri(walletConnectUri) {\n state$5.walletConnectUri = walletConnectUri;\n },\n setIsCustomDesktop(isCustomDesktop) {\n state$5.isCustomDesktop = isCustomDesktop;\n },\n setIsCustomMobile(isCustomMobile) {\n state$5.isCustomMobile = isCustomMobile;\n },\n setIsDataLoaded(isDataLoaded) {\n state$5.isDataLoaded = isDataLoaded;\n },\n setIsUiLoaded(isUiLoaded) {\n state$5.isUiLoaded = isUiLoaded;\n },\n setIsAuth(isAuth) {\n state$5.isAuth = isAuth;\n }\n};\n\nconst state$4 = proxy({\n projectId: \"\",\n mobileWallets: void 0,\n desktopWallets: void 0,\n walletImages: void 0,\n chains: void 0,\n enableAuthMode: false,\n enableExplorer: true,\n explorerExcludedWalletIds: void 0,\n explorerRecommendedWalletIds: void 0,\n termsOfServiceUrl: void 0,\n privacyPolicyUrl: void 0\n});\nconst ConfigCtrl = {\n state: state$4,\n subscribe(callback) {\n return subscribe(state$4, () => callback(state$4));\n },\n setConfig(config) {\n var _a, _b;\n EventsCtrl.initialize();\n OptionsCtrl.setChains(config.chains);\n OptionsCtrl.setIsAuth(Boolean(config.enableAuthMode));\n OptionsCtrl.setIsCustomMobile(Boolean((_a = config.mobileWallets) == null ? void 0 : _a.length));\n OptionsCtrl.setIsCustomDesktop(Boolean((_b = config.desktopWallets) == null ? void 0 : _b.length));\n CoreUtil.setModalVersionInStorage();\n Object.assign(state$4, config);\n }\n};\n\nvar __defProp$2 = Object.defineProperty;\nvar __getOwnPropSymbols$2 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$2 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$2 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$2 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$2.call(b, prop))\n __defNormalProp$2(a, prop, b[prop]);\n if (__getOwnPropSymbols$2)\n for (var prop of __getOwnPropSymbols$2(b)) {\n if (__propIsEnum$2.call(b, prop))\n __defNormalProp$2(a, prop, b[prop]);\n }\n return a;\n};\nconst W3M_API = \"https://explorer-api.walletconnect.com\";\nconst SDK_TYPE = \"wcm\";\nconst SDK_VERSION = `js-${\"2.7.0\"}`;\nasync function fetchListings(endpoint, params) {\n const allParams = __spreadValues$2({ sdkType: SDK_TYPE, sdkVersion: SDK_VERSION }, params);\n const url = new URL(endpoint, W3M_API);\n url.searchParams.append(\"projectId\", ConfigCtrl.state.projectId);\n Object.entries(allParams).forEach(([key, value]) => {\n if (value) {\n url.searchParams.append(key, String(value));\n }\n });\n const request = await fetch(url);\n return request.json();\n}\nconst ExplorerUtil = {\n async getDesktopListings(params) {\n return fetchListings(\"/w3m/v1/getDesktopListings\", params);\n },\n async getMobileListings(params) {\n return fetchListings(\"/w3m/v1/getMobileListings\", params);\n },\n async getInjectedListings(params) {\n return fetchListings(\"/w3m/v1/getInjectedListings\", params);\n },\n async getAllListings(params) {\n return fetchListings(\"/w3m/v1/getAllListings\", params);\n },\n getWalletImageUrl(imageId) {\n return `${W3M_API}/w3m/v1/getWalletImage/${imageId}?projectId=${ConfigCtrl.state.projectId}&sdkType=${SDK_TYPE}&sdkVersion=${SDK_VERSION}`;\n },\n getAssetImageUrl(imageId) {\n return `${W3M_API}/w3m/v1/getAssetImage/${imageId}?projectId=${ConfigCtrl.state.projectId}&sdkType=${SDK_TYPE}&sdkVersion=${SDK_VERSION}`;\n }\n};\n\nvar __defProp$1 = Object.defineProperty;\nvar __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$1 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$1 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$1 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$1.call(b, prop))\n __defNormalProp$1(a, prop, b[prop]);\n if (__getOwnPropSymbols$1)\n for (var prop of __getOwnPropSymbols$1(b)) {\n if (__propIsEnum$1.call(b, prop))\n __defNormalProp$1(a, prop, b[prop]);\n }\n return a;\n};\nconst isMobile = CoreUtil.isMobile();\nconst state$3 = proxy({\n wallets: { listings: [], total: 0, page: 1 },\n search: { listings: [], total: 0, page: 1 },\n recomendedWallets: []\n});\nconst ExplorerCtrl = {\n state: state$3,\n async getRecomendedWallets() {\n const { explorerRecommendedWalletIds, explorerExcludedWalletIds } = ConfigCtrl.state;\n if (explorerRecommendedWalletIds === \"NONE\" || explorerExcludedWalletIds === \"ALL\" && !explorerRecommendedWalletIds) {\n return state$3.recomendedWallets;\n }\n if (CoreUtil.isArray(explorerRecommendedWalletIds)) {\n const recommendedIds = explorerRecommendedWalletIds.join(\",\");\n const params = { recommendedIds };\n const { listings } = await ExplorerUtil.getAllListings(params);\n const listingsArr = Object.values(listings);\n listingsArr.sort((a, b) => {\n const aIndex = explorerRecommendedWalletIds.indexOf(a.id);\n const bIndex = explorerRecommendedWalletIds.indexOf(b.id);\n return aIndex - bIndex;\n });\n state$3.recomendedWallets = listingsArr;\n } else {\n const { chains, isAuth } = OptionsCtrl.state;\n const chainsFilter = chains == null ? void 0 : chains.join(\",\");\n const isExcluded = CoreUtil.isArray(explorerExcludedWalletIds);\n const params = {\n page: 1,\n sdks: isAuth ? \"auth_v1\" : void 0,\n entries: CoreUtil.RECOMMENDED_WALLET_AMOUNT,\n chains: chainsFilter,\n version: 2,\n excludedIds: isExcluded ? explorerExcludedWalletIds.join(\",\") : void 0\n };\n const { listings } = isMobile ? await ExplorerUtil.getMobileListings(params) : await ExplorerUtil.getDesktopListings(params);\n state$3.recomendedWallets = Object.values(listings);\n }\n return state$3.recomendedWallets;\n },\n async getWallets(params) {\n const extendedParams = __spreadValues$1({}, params);\n const { explorerRecommendedWalletIds, explorerExcludedWalletIds } = ConfigCtrl.state;\n const { recomendedWallets } = state$3;\n if (explorerExcludedWalletIds === \"ALL\") {\n return state$3.wallets;\n }\n if (recomendedWallets.length) {\n extendedParams.excludedIds = recomendedWallets.map((wallet) => wallet.id).join(\",\");\n } else if (CoreUtil.isArray(explorerRecommendedWalletIds)) {\n extendedParams.excludedIds = explorerRecommendedWalletIds.join(\",\");\n }\n if (CoreUtil.isArray(explorerExcludedWalletIds)) {\n extendedParams.excludedIds = [extendedParams.excludedIds, explorerExcludedWalletIds].filter(Boolean).join(\",\");\n }\n if (OptionsCtrl.state.isAuth) {\n extendedParams.sdks = \"auth_v1\";\n }\n const { page, search } = params;\n const { listings: listingsObj, total } = isMobile ? await ExplorerUtil.getMobileListings(extendedParams) : await ExplorerUtil.getDesktopListings(extendedParams);\n const listings = Object.values(listingsObj);\n const type = search ? \"search\" : \"wallets\";\n state$3[type] = {\n listings: [...state$3[type].listings, ...listings],\n total,\n page: page != null ? page : 1\n };\n return { listings, total };\n },\n getWalletImageUrl(imageId) {\n return ExplorerUtil.getWalletImageUrl(imageId);\n },\n getAssetImageUrl(imageId) {\n return ExplorerUtil.getAssetImageUrl(imageId);\n },\n resetSearch() {\n state$3.search = { listings: [], total: 0, page: 1 };\n }\n};\n\nconst state$2 = proxy({\n open: false\n});\nconst ModalCtrl = {\n state: state$2,\n subscribe(callback) {\n return subscribe(state$2, () => callback(state$2));\n },\n async open(options) {\n return new Promise((resolve) => {\n const { isUiLoaded, isDataLoaded } = OptionsCtrl.state;\n CoreUtil.removeWalletConnectDeepLink();\n OptionsCtrl.setWalletConnectUri(options == null ? void 0 : options.uri);\n OptionsCtrl.setChains(options == null ? void 0 : options.chains);\n RouterCtrl.reset(\"ConnectWallet\");\n if (isUiLoaded && isDataLoaded) {\n state$2.open = true;\n resolve();\n } else {\n const interval = setInterval(() => {\n const opts = OptionsCtrl.state;\n if (opts.isUiLoaded && opts.isDataLoaded) {\n clearInterval(interval);\n state$2.open = true;\n resolve();\n }\n }, 200);\n }\n });\n },\n close() {\n state$2.open = false;\n }\n};\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nfunction isDarkMode() {\n return typeof matchMedia !== \"undefined\" && matchMedia(\"(prefers-color-scheme: dark)\").matches;\n}\nconst state$1 = proxy({\n themeMode: isDarkMode() ? \"dark\" : \"light\"\n});\nconst ThemeCtrl = {\n state: state$1,\n subscribe(callback) {\n return subscribe(state$1, () => callback(state$1));\n },\n setThemeConfig(theme) {\n const { themeMode, themeVariables } = theme;\n if (themeMode) {\n state$1.themeMode = themeMode;\n }\n if (themeVariables) {\n state$1.themeVariables = __spreadValues({}, themeVariables);\n }\n }\n};\n\nconst state = proxy({\n open: false,\n message: \"\",\n variant: \"success\"\n});\nconst ToastCtrl = {\n state,\n subscribe(callback) {\n return subscribe(state, () => callback(state));\n },\n openToast(message, variant) {\n state.open = true;\n state.message = message;\n state.variant = variant;\n },\n closeToast() {\n state.open = false;\n }\n};\n\nexport { ConfigCtrl, CoreUtil, EventsCtrl, ExplorerCtrl, ModalCtrl, OptionsCtrl, RouterCtrl, ThemeCtrl, ToastCtrl };\n//# sourceMappingURL=index.js.map\n","import { ModalCtrl, ThemeCtrl, ConfigCtrl, OptionsCtrl } from '@walletconnect/modal-core';\n\nclass WalletConnectModal {\n constructor(config) {\n this.openModal = ModalCtrl.open;\n this.closeModal = ModalCtrl.close;\n this.subscribeModal = ModalCtrl.subscribe;\n this.setTheme = ThemeCtrl.setThemeConfig;\n ThemeCtrl.setThemeConfig(config);\n ConfigCtrl.setConfig(config);\n this.initUi();\n }\n async initUi() {\n if (typeof window !== \"undefined\") {\n await import('@walletconnect/modal-ui');\n const modal = document.createElement(\"wcm-modal\");\n document.body.insertAdjacentElement(\"beforeend\", modal);\n OptionsCtrl.setIsUiLoaded(true);\n }\n }\n}\n\nexport { WalletConnectModal };\n//# sourceMappingURL=index.js.map\n","export class DefaultLogger {\n constructor(logLevel = 'info') {\n this.logLevel = 'info';\n this.logLevel = logLevel;\n }\n setLogLevel(level) {\n this.logLevel = level;\n }\n getLogLevel() {\n return this.logLevel;\n }\n error(message, ...args) {\n if (['error', 'warn', 'info', 'debug'].includes(this.logLevel)) {\n console.error(`[ERROR] ${message}`, ...args);\n }\n }\n warn(message, ...args) {\n if (['warn', 'info', 'debug'].includes(this.logLevel)) {\n console.warn(`[WARN] ${message}`, ...args);\n }\n }\n info(message, ...args) {\n if (['info', 'debug'].includes(this.logLevel)) {\n console.info(`[INFO] ${message}`, ...args);\n }\n }\n debug(message, ...args) {\n if (this.logLevel === 'debug') {\n console.debug(`[DEBUG] ${message}`, ...args);\n }\n }\n}\n","export class SessionNotFoundError extends Error {\n constructor(message) {\n super(message);\n this.name = 'SessionNotFoundError';\n }\n}\n","/*\n *\n * Hedera Wallet Connect\n *\n * Copyright (C) 2023 Hedera Hashgraph, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nimport { AccountBalance, AccountId, AccountInfo, LedgerId, SignerSignature, Transaction, TransactionRecord, Client, PublicKey, TransactionId, TransactionResponse, Query, AccountRecordsQuery, AccountInfoQuery, AccountBalanceQuery, TransactionReceiptQuery, TransactionReceipt, TransactionRecordQuery, } from '@hashgraph/sdk';\nimport { proto } from '@hashgraph/proto';\nimport { HederaJsonRpcMethod, base64StringToSignatureMap, base64StringToUint8Array, ledgerIdToCAIPChainId, queryToBase64String, transactionBodyToBase64String, transactionToBase64String, transactionToTransactionBody, extensionOpen, Uint8ArrayToBase64String, Uint8ArrayToString, } from '../shared';\nimport { DefaultLogger } from '../shared/logger';\nimport { SessionNotFoundError } from './SessionNotFoundError';\nconst clients = {};\nexport class DAppSigner {\n constructor(accountId, signClient, topic, ledgerId = LedgerId.MAINNET, extensionId, logLevel = 'debug') {\n this.accountId = accountId;\n this.signClient = signClient;\n this.topic = topic;\n this.ledgerId = ledgerId;\n this.extensionId = extensionId;\n this.logger = new DefaultLogger(logLevel);\n }\n /**\n * Sets the logging level for the DAppSigner\n * @param level - The logging level to set\n */\n setLogLevel(level) {\n if (this.logger instanceof DefaultLogger) {\n this.logger.setLogLevel(level);\n }\n }\n _getHederaClient() {\n const ledgerIdString = this.ledgerId.toString();\n if (!clients[ledgerIdString]) {\n clients[ledgerIdString] = Client.forName(ledgerIdString);\n }\n return clients[ledgerIdString];\n }\n get _signerAccountId() {\n return `${ledgerIdToCAIPChainId(this.ledgerId)}:${this.accountId.toString()}`;\n }\n _getRandomNodes(numberOfNodes) {\n const allNodes = Object.values(this._getHederaClient().network).map((o) => typeof o === 'string' ? AccountId.fromString(o) : o);\n // shuffle nodes\n for (let i = allNodes.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [allNodes[i], allNodes[j]] = [allNodes[j], allNodes[i]];\n }\n return allNodes.slice(0, numberOfNodes);\n }\n request(request) {\n var _a, _b;\n // Avoid a wallet call if the session is no longer valid\n if (!((_b = (_a = this === null || this === void 0 ? void 0 : this.signClient) === null || _a === void 0 ? void 0 : _a.session) === null || _b === void 0 ? void 0 : _b.get(this.topic))) {\n this.logger.error('Session no longer exists, signer will be removed. Please reconnect to the wallet.');\n // Notify DAppConnector to remove this signer\n this.signClient.emit({\n topic: this.topic,\n event: {\n name: 'session_delete',\n data: { topic: this.topic },\n },\n chainId: ledgerIdToCAIPChainId(this.ledgerId),\n });\n throw new SessionNotFoundError('Session no longer exists. Please reconnect to the wallet.');\n }\n if (this.extensionId)\n extensionOpen(this.extensionId);\n return this.signClient.request({\n topic: this.topic,\n request,\n chainId: ledgerIdToCAIPChainId(this.ledgerId),\n });\n }\n getAccountId() {\n return this.accountId;\n }\n getAccountKey() {\n throw new Error('Method not implemented.');\n }\n getLedgerId() {\n return this.ledgerId;\n }\n getNetwork() {\n return this._getHederaClient().network;\n }\n getMirrorNetwork() {\n return this._getHederaClient().mirrorNetwork;\n }\n getAccountBalance() {\n return this.call(new AccountBalanceQuery().setAccountId(this.accountId));\n }\n getAccountInfo() {\n return this.call(new AccountInfoQuery().setAccountId(this.accountId));\n }\n getAccountRecords() {\n return this.call(new AccountRecordsQuery().setAccountId(this.accountId));\n }\n getMetadata() {\n return this.signClient.metadata;\n }\n async sign(data, signOptions = {\n encoding: 'utf-8',\n }) {\n try {\n const messageToSign = signOptions.encoding === 'base64'\n ? Uint8ArrayToBase64String(data[0])\n : Uint8ArrayToString(data[0]);\n const { signatureMap } = await this.request({\n method: HederaJsonRpcMethod.SignMessage,\n params: {\n signerAccountId: this._signerAccountId,\n message: messageToSign,\n },\n });\n const sigmap = base64StringToSignatureMap(signatureMap);\n const signerSignature = new SignerSignature({\n accountId: this.getAccountId(),\n publicKey: PublicKey.fromBytes(sigmap.sigPair[0].pubKeyPrefix),\n signature: sigmap.sigPair[0].ed25519 ||\n sigmap.sigPair[0].ECDSASecp256k1,\n });\n this.logger.debug('Data signed successfully');\n return [signerSignature];\n }\n catch (error) {\n this.logger.error('Error signing data:', error);\n throw error;\n }\n }\n async checkTransaction(transaction) {\n throw new Error('Method not implemented.');\n }\n async populateTransaction(transaction) {\n return transaction\n .setNodeAccountIds(this._getRandomNodes(10)) // allow retrying on up to 10 nodes\n .setTransactionId(TransactionId.generate(this.getAccountId()));\n }\n /**\n * Prepares a transaction object for signing using a single node account id.\n * If the transaction object does not already have a node account id,\n * generate a random node account id using the Hedera SDK client\n *\n * @param transaction - Any instance of a class that extends `Transaction`\n * @returns transaction - `Transaction` object with signature\n */\n async signTransaction(transaction) {\n let nodeAccountId;\n if (!transaction.nodeAccountIds || transaction.nodeAccountIds.length === 0)\n nodeAccountId = this._getRandomNodes(1)[0];\n else\n nodeAccountId = transaction.nodeAccountIds[0];\n const transactionBody = transactionToTransactionBody(transaction, nodeAccountId);\n if (!transactionBody)\n throw new Error('Failed to serialize transaction body');\n const transactionBodyBase64 = transactionBodyToBase64String(transactionBody);\n const { signatureMap } = await this.request({\n method: HederaJsonRpcMethod.SignTransaction,\n params: {\n signerAccountId: this._signerAccountId,\n transactionBody: transactionBodyBase64,\n },\n });\n const sigMap = base64StringToSignatureMap(signatureMap);\n const bodyBytes = base64StringToUint8Array(transactionBodyBase64);\n const bytes = proto.Transaction.encode({ bodyBytes, sigMap }).finish();\n return Transaction.fromBytes(bytes);\n }\n async _tryExecuteTransactionRequest(request) {\n try {\n const requestToBytes = request.toBytes();\n this.logger.debug('Creating transaction from bytes', requestToBytes, request);\n const transaction = Transaction.fromBytes(requestToBytes);\n this.logger.debug('Executing transaction request', transaction);\n const result = await this.request({\n method: HederaJsonRpcMethod.SignAndExecuteTransaction,\n params: {\n signerAccountId: this._signerAccountId,\n transactionList: transactionToBase64String(transaction),\n },\n });\n this.logger.debug('Transaction request completed successfully');\n return { result: TransactionResponse.fromJSON(result) };\n }\n catch (error) {\n this.logger.error('Error executing transaction request:', error);\n return { error };\n }\n }\n async _parseQueryResponse(query, base64EncodedQueryResponse) {\n if (query instanceof AccountRecordsQuery) {\n const base64EncodedQueryResponseSplit = base64EncodedQueryResponse.split(',');\n const data = base64EncodedQueryResponseSplit.map((o) => base64StringToUint8Array(o));\n return data.map((o) => TransactionRecord.fromBytes(o));\n }\n const data = base64StringToUint8Array(base64EncodedQueryResponse);\n if (query instanceof AccountBalanceQuery) {\n return AccountBalance.fromBytes(data);\n }\n else if (query instanceof AccountInfoQuery) {\n return AccountInfo.fromBytes(data);\n }\n else if (query instanceof TransactionReceiptQuery) {\n return TransactionReceipt.fromBytes(data);\n }\n else if (query instanceof TransactionRecordQuery) {\n return TransactionRecord.fromBytes(data);\n }\n else {\n throw new Error('Unsupported query type');\n }\n }\n /**\n * Executes a free receipt query without signing a transaction.\n * Enables the DApp to fetch the receipt of a transaction without making a new request\n * to the wallet.\n * @param request - The query to execute\n * @returns The result of the query\n */\n async executeReceiptQueryFromRequest(request) {\n try {\n const isMainnet = this.ledgerId === LedgerId.MAINNET;\n const client = isMainnet ? Client.forMainnet() : Client.forTestnet();\n const receipt = TransactionReceiptQuery.fromBytes(request.toBytes());\n const result = await receipt.execute(client);\n return { result };\n }\n catch (error) {\n return { error };\n }\n }\n async _tryExecuteQueryRequest(request) {\n try {\n const isReceiptQuery = request instanceof TransactionReceiptQuery;\n if (isReceiptQuery) {\n this.logger.debug('Attempting to execute free receipt query', request);\n const result = await this.executeReceiptQueryFromRequest(request);\n if (!(result === null || result === void 0 ? void 0 : result.error)) {\n return { result: result.result };\n }\n this.logger.error('Error executing free receipt query. Sending to wallet.', result.error);\n }\n /**\n * Note, should we be converting these to specific query types?\n * Left alone to avoid changing the API for other requests.\n */\n const query = isReceiptQuery\n ? TransactionReceiptQuery.fromBytes(request.toBytes())\n : Query.fromBytes(request.toBytes());\n this.logger.debug('Executing query request', query, queryToBase64String(query), isReceiptQuery);\n const result = await this.request({\n method: HederaJsonRpcMethod.SignAndExecuteQuery,\n params: {\n signerAccountId: this._signerAccountId,\n query: queryToBase64String(query),\n },\n });\n this.logger.debug('Query request completed successfully', result);\n return { result: this._parseQueryResponse(query, result.response) };\n }\n catch (error) {\n this.logger.error('Error executing query request:', error);\n return { error };\n }\n }\n async call(request) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n const isReceiptQuery = request instanceof TransactionReceiptQuery;\n let txResult = undefined;\n // a receipt query is a free query and we should not execute a transaction.\n if (!isReceiptQuery) {\n txResult = await this._tryExecuteTransactionRequest(request);\n if (txResult.result) {\n return txResult.result;\n }\n }\n const queryResult = await this._tryExecuteQueryRequest(request);\n if (queryResult.result) {\n return queryResult.result;\n }\n // TODO: make this error more usable\n if (isReceiptQuery) {\n throw new Error('Error executing receipt query: \\n' +\n JSON.stringify({\n queryError: {\n name: (_a = queryResult.error) === null || _a === void 0 ? void 0 : _a.name,\n message: (_b = queryResult.error) === null || _b === void 0 ? void 0 : _b.message,\n stack: (_c = queryResult.error) === null || _c === void 0 ? void 0 : _c.stack,\n },\n }));\n }\n throw new Error('Error executing transaction or query: \\n' +\n JSON.stringify({\n txError: {\n name: (_d = txResult === null || txResult === void 0 ? void 0 : txResult.error) === null || _d === void 0 ? void 0 : _d.name,\n message: (_e = txResult === null || txResult === void 0 ? void 0 : txResult.error) === null || _e === void 0 ? void 0 : _e.message,\n stack: (_f = txResult === null || txResult === void 0 ? void 0 : txResult.error) === null || _f === void 0 ? void 0 : _f.stack,\n },\n queryError: {\n name: (_g = queryResult.error) === null || _g === void 0 ? void 0 : _g.name,\n message: (_h = queryResult.error) === null || _h === void 0 ? void 0 : _h.message,\n stack: (_j = queryResult.error) === null || _j === void 0 ? void 0 : _j.stack,\n },\n }, null, 2));\n }\n}\n","/*\n *\n * Hedera Wallet Connect\n *\n * Copyright (C) 2023 Hedera Hashgraph, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nimport { LedgerId, Transaction } from '@hashgraph/sdk';\nimport QRCodeModal from '@walletconnect/qrcode-modal';\nimport { WalletConnectModal } from '@walletconnect/modal';\nimport SignClient from '@walletconnect/sign-client';\nimport { getSdkError } from '@walletconnect/utils';\nimport { DefaultLogger } from '../shared/logger';\nimport { HederaJsonRpcMethod, accountAndLedgerFromSession, networkNamespaces, extensionConnect, findExtensions, } from '../shared';\nimport { DAppSigner } from './DAppSigner';\nexport * from './DAppSigner';\nexport { SessionNotFoundError } from './SessionNotFoundError';\nexport class DAppConnector {\n /**\n * Initializes the DAppConnector instance.\n * @param metadata - SignClientTypes.Metadata object for the DApp metadata.\n * @param network - LedgerId representing the network (default: LedgerId.TESTNET).\n * @param projectId - Project ID for the WalletConnect client.\n * @param methods - Array of supported methods for the DApp (optional).\n * @param events - Array of supported events for the DApp (optional).\n * @param chains - Array of supported chains for the DApp (optional).\n * @param logLevel - Logging level for the DAppConnector (optional).\n */\n constructor(metadata, network, projectId, methods, events, chains, logLevel = 'debug') {\n this.network = LedgerId.TESTNET;\n this.supportedMethods = [];\n this.supportedEvents = [];\n this.supportedChains = [];\n this.extensions = [];\n this.onSessionIframeCreated = null;\n this.signers = [];\n this.isInitializing = false;\n this.abortableConnect = async (callback) => {\n return new Promise(async (resolve, reject) => {\n const pairTimeoutMs = 480000;\n const timeout = setTimeout(() => {\n QRCodeModal.close();\n reject(new Error(`Connect timed out after ${pairTimeoutMs}(ms)`));\n }, pairTimeoutMs);\n try {\n return resolve(await callback());\n }\n catch (error) {\n reject(error);\n }\n finally {\n clearTimeout(timeout);\n }\n });\n };\n this.logger = new DefaultLogger(logLevel);\n this.dAppMetadata = metadata;\n this.network = network;\n this.projectId = projectId;\n this.supportedMethods = methods !== null && methods !== void 0 ? methods : Object.values(HederaJsonRpcMethod);\n this.supportedEvents = events !== null && events !== void 0 ? events : [];\n this.supportedChains = chains !== null && chains !== void 0 ? chains : [];\n this.extensions = [];\n this.walletConnectModal = new WalletConnectModal({\n projectId: projectId,\n chains: chains,\n });\n findExtensions((metadata, isIframe) => {\n this.extensions.push(Object.assign(Object.assign({}, metadata), { available: true, availableInIframe: isIframe }));\n });\n }\n /**\n * Sets the logging level for the DAppConnector\n * @param level - The logging level to set\n */\n setLogLevel(level) {\n if (this.logger instanceof DefaultLogger) {\n this.logger.setLogLevel(level);\n }\n }\n /**\n * Initializes the DAppConnector instance.\n * @param logger - `BaseLogger` for logging purposes (optional).\n */\n async init({ logger } = {}) {\n try {\n this.isInitializing = true;\n if (!this.projectId) {\n throw new Error('Project ID is not defined');\n }\n this.walletConnectClient = await SignClient.init({\n logger,\n relayUrl: 'wss://relay.walletconnect.com',\n projectId: this.projectId,\n metadata: this.dAppMetadata,\n });\n const existingSessions = this.walletConnectClient.session.getAll();\n if (existingSessions.length > 0)\n this.signers = existingSessions.flatMap((session) => this.createSigners(session));\n else\n this.checkIframeConnect();\n this.walletConnectClient.on('session_event', this.handleSessionEvent.bind(this));\n this.walletConnectClient.on('session_update', this.handleSessionUpdate.bind(this));\n this.walletConnectClient.on('session_delete', this.handleSessionDelete.bind(this));\n // Listen for custom session_delete events from DAppSigner\n this.walletConnectClient.core.events.on('session_delete', this.handleSessionDelete.bind(this));\n this.walletConnectClient.core.pairing.events.on('pairing_delete', this.handlePairingDelete.bind(this));\n }\n catch (e) {\n this.logger.error('Error initializing DAppConnector:', e);\n }\n finally {\n this.isInitializing = false;\n }\n }\n /**\n * Retrieves a DAppSigner for the specified Hedera Account ID.\n *\n * @param {AccountId} accountId - The Hedera Account ID to find the associated signer.\n * @returns {DAppSigner} - The signer object of type {@link DAppSigner} corresponding to the provided account ID.\n * @throws {Error} - If no signer is found for the provided account ID.\n */\n getSigner(accountId) {\n if (this.isInitializing) {\n throw new Error('DAppConnector is not initialized yet. Try again later.');\n }\n const signer = this.signers.find((signer) => signer.getAccountId().equals(accountId));\n if (!signer)\n throw new Error('Signer is not found for this accountId');\n return signer;\n }\n /**\n * Initiates the WalletConnect connection flow using a QR code.\n * @deprecated Use `openModal` instead.\n * @param pairingTopic - The pairing topic for the connection (optional).\n * @returns A Promise that resolves when the connection process is complete.\n */\n async connectQR(pairingTopic) {\n return this.abortableConnect(async () => {\n try {\n const { uri, approval } = await this.connectURI(pairingTopic);\n if (!uri)\n throw new Error('URI is not defined');\n QRCodeModal.open(uri, () => {\n throw new Error('User rejected pairing');\n });\n await this.onSessionConnected(await approval());\n }\n finally {\n QRCodeModal.close();\n }\n });\n }\n /**\n * Initiates the WalletConnect connection flow using a QR code.\n * @param pairingTopic - The pairing topic for the connection (optional).\n * @returns {Promise} - A Promise that resolves when the connection process is complete.\n */\n async openModal(pairingTopic) {\n try {\n const { uri, approval } = await this.connectURI(pairingTopic);\n this.walletConnectModal.openModal({ uri });\n const session = await approval();\n await this.onSessionConnected(session);\n return session;\n }\n finally {\n this.walletConnectModal.closeModal();\n }\n }\n /**\n * Initiates the WallecConnect connection flow using URI.\n * @param pairingTopic - The pairing topic for the connection (optional).\n * @param extensionId - The id for the extension used to connect (optional).\n * @returns A Promise that resolves when the connection process is complete.\n */\n async connect(launchCallback, pairingTopic, extensionId) {\n return this.abortableConnect(async () => {\n var _a;\n const { uri, approval } = await this.connectURI(pairingTopic);\n if (!uri)\n throw new Error('URI is not defined');\n launchCallback(uri);\n const session = await approval();\n if (extensionId) {\n const sessionProperties = Object.assign(Object.assign({}, session.sessionProperties), { extensionId });\n session.sessionProperties = sessionProperties;\n await ((_a = this.walletConnectClient) === null || _a === void 0 ? void 0 : _a.session.update(session.topic, {\n sessionProperties,\n }));\n }\n await this.onSessionConnected(session);\n return session;\n });\n }\n /**\n * Initiates the WallecConnect connection flow sending a message to the extension.\n * @param extensionId - The id for the extension used to connect.\n * @param pairingTopic - The pairing topic for the connection (optional).\n * @returns A Promise that resolves when the connection process is complete.\n */\n async connectExtension(extensionId, pairingTopic) {\n const extension = this.extensions.find((ext) => ext.id === extensionId);\n if (!extension || !extension.available)\n throw new Error('Extension is not available');\n return this.connect((uri) => {\n extensionConnect(extension.id, extension.availableInIframe, uri);\n }, pairingTopic, extension.availableInIframe ? undefined : extensionId);\n }\n /**\n * Validates the session by checking if the session exists and is valid.\n * Also ensures the signer exists for the session.\n * @param topic - The topic of the session to validate.\n * @returns {boolean} - True if the session exists and has a valid signer, false otherwise.\n */\n validateSession(topic) {\n try {\n if (!this.walletConnectClient) {\n return false;\n }\n const session = this.walletConnectClient.session.get(topic);\n const hasSigner = this.signers.some((signer) => signer.topic === topic);\n if (!session) {\n // If session doesn't exist but we have a signer for it, clean up\n if (hasSigner) {\n this.logger.warn(`Signer exists but no session found for topic: ${topic}`);\n this.handleSessionDelete({ topic });\n }\n return false;\n }\n if (!hasSigner) {\n this.logger.warn(`Session exists but no signer found for topic: ${topic}`);\n return false;\n }\n return true;\n }\n catch (e) {\n this.logger.error('Error validating session:', e);\n return false;\n }\n }\n /**\n * Validates the session and refreshes the signers by removing the invalid ones.\n */\n validateAndRefreshSigners() {\n this.signers = this.signers.filter((signer) => this.validateSession(signer.topic));\n }\n /**\n * Initiates the WallecConnect connection if the wallet in iframe mode is detected.\n */\n async checkIframeConnect() {\n const extension = this.extensions.find((ext) => ext.availableInIframe);\n if (extension) {\n const session = await this.connectExtension(extension.id);\n if (this.onSessionIframeCreated)\n this.onSessionIframeCreated(session);\n }\n }\n /**\n * Disconnects the current session associated with the specified topic.\n * @param topic - The topic of the session to disconnect.\n * @returns A Promise that resolves when the session is disconnected.\n */\n async disconnect(topic) {\n try {\n if (!this.walletConnectClient) {\n throw new Error('WalletConnect is not initialized');\n }\n await this.walletConnectClient.disconnect({\n topic: topic,\n reason: getSdkError('USER_DISCONNECTED'),\n });\n return true;\n }\n catch (e) {\n this.logger.error('Either the session was already disconnected or the topic is invalid', e);\n return false;\n }\n }\n /**\n * Disconnects all active sessions and pairings.\n *\n * Throws error when WalletConnect is not initialized or there are no active sessions/pairings.\n * @returns A Promise that resolves when all active sessions and pairings are disconnected.\n */\n async disconnectAll() {\n if (!this.walletConnectClient) {\n throw new Error('WalletConnect is not initialized');\n }\n const sessions = this.walletConnectClient.session.getAll();\n const pairings = this.walletConnectClient.core.pairing.getPairings();\n if (!(sessions === null || sessions === void 0 ? void 0 : sessions.length) && !(pairings === null || pairings === void 0 ? void 0 : pairings.length)) {\n throw new Error('There is no active session/pairing. Connect to the wallet at first.');\n }\n const disconnectionPromises = [];\n // disconnect sessions\n for (const session of this.walletConnectClient.session.getAll()) {\n this.logger.info(`Disconnecting from session: ${session}`);\n const promise = this.disconnect(session.topic);\n disconnectionPromises.push(promise);\n }\n // disconnect pairings\n //https://docs.walletconnect.com/api/core/pairing\n for (const pairing of pairings) {\n const promise = this.disconnect(pairing.topic);\n disconnectionPromises.push(promise);\n }\n await Promise.all(disconnectionPromises);\n this.signers = [];\n }\n createSigners(session) {\n const allNamespaceAccounts = accountAndLedgerFromSession(session);\n return allNamespaceAccounts.map(({ account, network }) => {\n var _a;\n return new DAppSigner(account, this.walletConnectClient, session.topic, network, (_a = session.sessionProperties) === null || _a === void 0 ? void 0 : _a.extensionId, this.logger instanceof DefaultLogger ? this.logger.getLogLevel() : 'debug');\n });\n }\n async onSessionConnected(session) {\n const newSigners = this.createSigners(session);\n // Filter out any existing signers with duplicate AccountIds\n for (const newSigner of newSigners) {\n // We check if any signers have the same account, extension + metadata name.\n const existingSigners = this.signers.filter((currentSigner) => {\n var _a, _b;\n const matchingAccountId = ((_a = currentSigner === null || currentSigner === void 0 ? void 0 : currentSigner.getAccountId()) === null || _a === void 0 ? void 0 : _a.toString()) === ((_b = newSigner === null || newSigner === void 0 ? void 0 : newSigner.getAccountId()) === null || _b === void 0 ? void 0 : _b.toString());\n const matchingExtensionId = newSigner.extensionId === currentSigner.extensionId;\n const newSignerMetadata = newSigner.getMetadata();\n const existingSignerMetadata = currentSigner.getMetadata();\n const metadataNameMatch = (newSignerMetadata === null || newSignerMetadata === void 0 ? void 0 : newSignerMetadata.name) === (existingSignerMetadata === null || existingSignerMetadata === void 0 ? void 0 : existingSignerMetadata.name);\n if (currentSigner.topic === newSigner.topic) {\n this.logger.error('The topic was already connected. This is a weird error. Please report it.', newSigner.getAccountId().toString());\n }\n return matchingAccountId && matchingExtensionId && metadataNameMatch;\n });\n // Any dupes get disconnected + removed from the signers array.\n for (const existingSigner of existingSigners) {\n this.logger.debug(`Disconnecting duplicate signer for account ${existingSigner.getAccountId().toString()}`);\n await this.disconnect(existingSigner.topic);\n this.signers = this.signers.filter((s) => s.topic !== existingSigner.topic);\n }\n }\n // Add new signers after all duplicates have been cleaned up\n this.signers.push(...newSigners);\n this.logger.debug(`Current signers after connection: ${this.signers\n .map((s) => `${s.getAccountId().toString()}:${s.topic}`)\n .join(', ')}`);\n }\n async connectURI(pairingTopic) {\n if (!this.walletConnectClient) {\n throw new Error('WalletConnect is not initialized');\n }\n return this.walletConnectClient.connect({\n pairingTopic,\n requiredNamespaces: networkNamespaces(this.network, this.supportedMethods, this.supportedEvents),\n });\n }\n async request({ method, params, }) {\n var _a, _b, _c;\n let signer;\n this.logger.debug(`Requesting method: ${method} with params: ${JSON.stringify(params)}`);\n if (params === null || params === void 0 ? void 0 : params.signerAccountId) {\n // Extract the actual account ID from the hedera::

format\n const actualAccountId = (_b = (_a = params === null || params === void 0 ? void 0 : params.signerAccountId) === null || _a === void 0 ? void 0 : _a.split(':')) === null || _b === void 0 ? void 0 : _b.pop();\n signer = this.signers.find((s) => { var _a; return ((_a = s === null || s === void 0 ? void 0 : s.getAccountId()) === null || _a === void 0 ? void 0 : _a.toString()) === actualAccountId; });\n this.logger.debug(`Found signer: ${(_c = signer === null || signer === void 0 ? void 0 : signer.getAccountId()) === null || _c === void 0 ? void 0 : _c.toString()}`);\n if (!signer) {\n throw new Error(`Signer not found for account ID: ${params === null || params === void 0 ? void 0 : params.signerAccountId}. Did you use the correct format? e.g hedera::
`);\n }\n }\n else {\n signer = this.signers[this.signers.length - 1];\n }\n if (!signer) {\n throw new Error('There is no active session. Connect to the wallet at first.');\n }\n this.logger.debug(`Using signer: ${signer.getAccountId().toString()}: ${signer.topic} - about to request.`);\n return await signer.request({\n method: method,\n params: params,\n });\n }\n /**\n * Retrieves the node addresses associated with the current Hedera network.\n *\n * When there is no active session or an error occurs during the request.\n * @returns Promise\\<{@link GetNodeAddressesResult}\\>\n */\n async getNodeAddresses() {\n return await this.request({\n method: HederaJsonRpcMethod.GetNodeAddresses,\n params: undefined,\n });\n }\n /**\n * Executes a transaction on the Hedera network.\n *\n * @param {ExecuteTransactionParams} params - The parameters of type {@link ExecuteTransactionParams | `ExecuteTransactionParams`} required for the transaction execution.\n * @param {string[]} params.signedTransaction - Array of Base64-encoded `Transaction`'s\n * @returns Promise\\<{@link ExecuteTransactionResult}\\>\n * @example\n * Use helper `transactionToBase64String` to encode `Transaction` to Base64 string\n * ```ts\n * const params = {\n * signedTransaction: [transactionToBase64String(transaction)]\n * }\n *\n * const result = await dAppConnector.executeTransaction(params)\n * ```\n */\n async executeTransaction(params) {\n return await this.request({\n method: HederaJsonRpcMethod.ExecuteTransaction,\n params,\n });\n }\n /**\n * Signs a provided `message` with provided `signerAccountId`.\n *\n * @param {SignMessageParams} params - The parameters of type {@link SignMessageParams | `SignMessageParams`} required for signing message.\n * @param {string} params.signerAccountId - a signer Hedera Account identifier in {@link https://hips.hedera.com/hip/hip-30 | HIP-30} (`:..`) form.\n * @param {string} params.message - a plain UTF-8 string\n * @returns Promise\\<{@link SignMessageResult}\\>\n * @example\n * ```ts\n * const params = {\n * signerAccountId: 'hedera:testnet:0.0.12345',\n * message: 'Hello World!'\n * }\n *\n * const result = await dAppConnector.signMessage(params)\n * ```\n */\n async signMessage(params) {\n return await this.request({\n method: HederaJsonRpcMethod.SignMessage,\n params,\n });\n }\n /**\n * Signs and send `Query` on the Hedera network.\n *\n * @param {SignAndExecuteQueryParams} params - The parameters of type {@link SignAndExecuteQueryParams | `SignAndExecuteQueryParams`} required for the Query execution.\n * @param {string} params.signerAccountId - a signer Hedera Account identifier in {@link https://hips.hedera.com/hip/hip-30 | HIP-30} (`:..`) form.\n * @param {string} params.query - `Query` object represented as Base64 string\n * @returns Promise\\<{@link SignAndExecuteQueryResult}\\>\n * @example\n * Use helper `queryToBase64String` to encode `Query` to Base64 string\n * ```ts\n * const params = {\n * signerAccountId: '0.0.12345',\n * query: queryToBase64String(query),\n * }\n *\n * const result = await dAppConnector.signAndExecuteQuery(params)\n * ```\n */\n async signAndExecuteQuery(params) {\n return await this.request({\n method: HederaJsonRpcMethod.SignAndExecuteQuery,\n params,\n });\n }\n /**\n * Signs and executes Transactions on the Hedera network.\n *\n * @param {SignAndExecuteTransactionParams} params - The parameters of type {@link SignAndExecuteTransactionParams | `SignAndExecuteTransactionParams`} required for `Transaction` signing and execution.\n * @param {string} params.signerAccountId - a signer Hedera Account identifier in {@link https://hips.hedera.com/hip/hip-30 | HIP-30} (`:..`) form.\n * @param {string[]} params.transaction - Array of Base64-encoded `Transaction`'s\n * @returns Promise\\<{@link SignAndExecuteTransactionResult}\\>\n * @example\n * Use helper `transactionToBase64String` to encode `Transaction` to Base64 string\n * ```ts\n * const params = {\n * signerAccountId: '0.0.12345'\n * transaction: [transactionToBase64String(transaction)]\n * }\n *\n * const result = await dAppConnector.signAndExecuteTransaction(params)\n * ```\n */\n async signAndExecuteTransaction(params) {\n return await this.request({\n method: HederaJsonRpcMethod.SignAndExecuteTransaction,\n params,\n });\n }\n /**\n * Signs and executes Transactions on the Hedera network.\n *\n * @param {SignTransactionParams} params - The parameters of type {@link SignTransactionParams | `SignTransactionParams`} required for `Transaction` signing.\n * @param {string} params.signerAccountId - a signer Hedera Account identifier in {@link https://hips.hedera.com/hip/hip-30 | HIP-30} (`:..`) form.\n * @param {Transaction | string} params.transactionBody - a built Transaction object, or a base64 string of a transaction body (deprecated).\n * @deprecated Using string for params.transactionBody is deprecated and will be removed in a future version. Please migrate to using Transaction objects directly.\n * @returns Promise\\<{@link SignTransactionResult}\\>\n * @example\n * ```ts\n *\n * const params = {\n * signerAccountId: '0.0.12345',\n * transactionBody\n * }\n *\n * const result = await dAppConnector.signTransaction(params)\n * ```\n */\n async signTransaction(params) {\n var _a, _b;\n if (typeof (params === null || params === void 0 ? void 0 : params.transactionBody) === 'string') {\n this.logger.warn('Transaction body is a string. This is not recommended, please migrate to passing a transaction object directly.');\n return await this.request({\n method: HederaJsonRpcMethod.SignTransaction,\n params,\n });\n }\n if ((params === null || params === void 0 ? void 0 : params.transactionBody) instanceof Transaction) {\n const signerAccountId = (_b = (_a = params === null || params === void 0 ? void 0 : params.signerAccountId) === null || _a === void 0 ? void 0 : _a.split(':')) === null || _b === void 0 ? void 0 : _b.pop();\n const accountSigner = this.signers.find((signer) => { var _a; return ((_a = signer === null || signer === void 0 ? void 0 : signer.getAccountId()) === null || _a === void 0 ? void 0 : _a.toString()) === signerAccountId; });\n if (!accountSigner) {\n throw new Error(`No signer found for account ${signerAccountId}`);\n }\n if (!(params === null || params === void 0 ? void 0 : params.transactionBody)) {\n throw new Error('No transaction provided');\n }\n return await accountSigner.signTransaction(params.transactionBody);\n }\n throw new Error('Transaction sent in incorrect format. Ensure transaction body is either a base64 transaction body or Transaction object.');\n }\n handleSessionEvent(args) {\n this.logger.debug('Session event received:', args);\n this.validateAndRefreshSigners();\n }\n handleSessionUpdate({ topic, params, }) {\n const { namespaces } = params;\n const _session = this.walletConnectClient.session.get(topic);\n const updatedSession = Object.assign(Object.assign({}, _session), { namespaces });\n this.logger.info('Session updated:', updatedSession);\n this.signers = this.signers.filter((signer) => signer.topic !== topic);\n this.signers.push(...this.createSigners(updatedSession));\n }\n handleSessionDelete(event) {\n this.logger.info('Session deleted:', event);\n let deletedSigner = false;\n this.signers = this.signers.filter((signer) => {\n if (signer.topic !== event.topic) {\n return true;\n }\n deletedSigner = true;\n return false;\n });\n // prevent emitting disconnected event if signers is untouched.\n if (deletedSigner) {\n try {\n this.disconnect(event.topic);\n }\n catch (e) {\n this.logger.error('Error disconnecting session:', e);\n }\n this.logger.info('Session deleted and signer removed');\n }\n }\n handlePairingDelete(event) {\n this.logger.info('Pairing deleted:', event);\n this.signers = this.signers.filter((signer) => signer.topic !== event.topic);\n try {\n this.disconnect(event.topic);\n }\n catch (e) {\n this.logger.error('Error disconnecting pairing:', e);\n }\n this.logger.info('Pairing deleted by wallet');\n }\n}\nexport default DAppConnector;\n","export interface ILogger {\n error(message: string, ...args: any[]): void;\n warn(message: string, ...args: any[]): void;\n info(message: string, ...args: any[]): void;\n debug(message: string, ...args: any[]): void;\n}\n\nexport class DefaultLogger implements ILogger {\n private logLevel: 'error' | 'warn' | 'info' | 'debug' = 'info';\n\n setLogLevel(level: 'error' | 'warn' | 'info' | 'debug'): void {\n this.logLevel = level;\n }\n\n error(message: string, ...args: any[]): void {\n if (['error', 'warn', 'info', 'debug'].includes(this.logLevel)) {\n console.error(`[ERROR] ${message}`, ...args);\n }\n }\n\n warn(message: string, ...args: any[]): void {\n if (['warn', 'info', 'debug'].includes(this.logLevel)) {\n console.warn(`[WARN] ${message}`, ...args);\n }\n }\n\n info(message: string, ...args: any[]): void {\n if (['info', 'debug'].includes(this.logLevel)) {\n console.info(`[INFO] ${message}`, ...args);\n }\n }\n\n debug(message: string, ...args: any[]): void {\n if (this.logLevel === 'debug') {\n console.debug(`[DEBUG] ${message}`, ...args);\n }\n }\n}\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.fetchRetry = factory());\n})(this, (function () { 'use strict';\n\n var fetchRetry = function (fetch, defaults) {\n defaults = defaults || {};\n if (typeof fetch !== 'function') {\n throw new ArgumentError('fetch must be a function');\n }\n\n if (typeof defaults !== 'object') {\n throw new ArgumentError('defaults must be an object');\n }\n\n if (defaults.retries !== undefined && !isPositiveInteger(defaults.retries)) {\n throw new ArgumentError('retries must be a positive integer');\n }\n\n if (defaults.retryDelay !== undefined && !isPositiveInteger(defaults.retryDelay) && typeof defaults.retryDelay !== 'function') {\n throw new ArgumentError('retryDelay must be a positive integer or a function returning a positive integer');\n }\n\n if (defaults.retryOn !== undefined && !Array.isArray(defaults.retryOn) && typeof defaults.retryOn !== 'function') {\n throw new ArgumentError('retryOn property expects an array or function');\n }\n\n var baseDefaults = {\n retries: 3,\n retryDelay: 1000,\n retryOn: [],\n };\n\n defaults = Object.assign(baseDefaults, defaults);\n\n return function fetchRetry(input, init) {\n var retries = defaults.retries;\n var retryDelay = defaults.retryDelay;\n var retryOn = defaults.retryOn;\n\n if (init && init.retries !== undefined) {\n if (isPositiveInteger(init.retries)) {\n retries = init.retries;\n } else {\n throw new ArgumentError('retries must be a positive integer');\n }\n }\n\n if (init && init.retryDelay !== undefined) {\n if (isPositiveInteger(init.retryDelay) || (typeof init.retryDelay === 'function')) {\n retryDelay = init.retryDelay;\n } else {\n throw new ArgumentError('retryDelay must be a positive integer or a function returning a positive integer');\n }\n }\n\n if (init && init.retryOn) {\n if (Array.isArray(init.retryOn) || (typeof init.retryOn === 'function')) {\n retryOn = init.retryOn;\n } else {\n throw new ArgumentError('retryOn property expects an array or function');\n }\n }\n\n // eslint-disable-next-line no-undef\n return new Promise(function (resolve, reject) {\n var wrappedFetch = function (attempt) {\n // As of node 18, this is no longer needed since node comes with native support for fetch:\n /* istanbul ignore next */\n var _input =\n typeof Request !== 'undefined' && input instanceof Request\n ? input.clone()\n : input;\n fetch(_input, init)\n .then(function (response) {\n if (Array.isArray(retryOn) && retryOn.indexOf(response.status) === -1) {\n resolve(response);\n } else if (typeof retryOn === 'function') {\n try {\n // eslint-disable-next-line no-undef\n return Promise.resolve(retryOn(attempt, null, response))\n .then(function (retryOnResponse) {\n if(retryOnResponse) {\n retry(attempt, null, response);\n } else {\n resolve(response);\n }\n }).catch(reject);\n } catch (error) {\n reject(error);\n }\n } else {\n if (attempt < retries) {\n retry(attempt, null, response);\n } else {\n resolve(response);\n }\n }\n })\n .catch(function (error) {\n if (typeof retryOn === 'function') {\n try {\n // eslint-disable-next-line no-undef\n Promise.resolve(retryOn(attempt, error, null))\n .then(function (retryOnResponse) {\n if(retryOnResponse) {\n retry(attempt, error, null);\n } else {\n reject(error);\n }\n })\n .catch(function(error) {\n reject(error);\n });\n } catch(error) {\n reject(error);\n }\n } else if (attempt < retries) {\n retry(attempt, error, null);\n } else {\n reject(error);\n }\n });\n };\n\n function retry(attempt, error, response) {\n var delay = (typeof retryDelay === 'function') ?\n retryDelay(attempt, error, response) : retryDelay;\n setTimeout(function () {\n wrappedFetch(++attempt);\n }, delay);\n }\n\n wrappedFetch(0);\n });\n };\n };\n\n function isPositiveInteger(value) {\n return Number.isInteger(value) && value >= 0;\n }\n\n function ArgumentError(message) {\n this.name = 'ArgumentError';\n this.message = message;\n }\n\n return fetchRetry;\n\n}));\n","import retryFetch from 'fetch-retry';\n\nexport const fetchWithRetry = () =>\n retryFetch(fetch, {\n retries: 3,\n });\n","import { DAppConnector } from '@hashgraph/hedera-wallet-connect';\nimport * as hashgraph from '@hashgraph/sdk';\nimport {\n ContractFunctionParameters,\n TransactionReceipt,\n PrivateKey,\n Transaction,\n AccountId,\n ContractId,\n} from '@hashgraph/sdk';\nimport { SessionTypes, SignClientTypes } from '@walletconnect/types';\n\nexport interface HederaAccountResponse {\n account: string;\n alias: null;\n auto_renew_period: number;\n balance: Balance;\n created_timestamp: string;\n decline_reward: boolean;\n deleted: boolean;\n ethereum_nonce: number;\n evm_address: string;\n expiry_timestamp: string;\n key: Key;\n max_automatic_token_associations: number;\n memo: string;\n pending_reward: number;\n receiver_sig_required: boolean;\n staked_account_id: null;\n staked_node_id: number;\n stake_period_start: string;\n transactions: HBARTransaction[];\n links: Links;\n}\n\nexport interface Balance {\n balance: number;\n timestamp: string;\n tokens: Token[];\n}\n\nexport interface Token {\n token_id: string;\n balance: number;\n}\n\nexport interface Key {\n _type: string;\n key: string;\n}\n\nexport interface Links {\n next: string;\n}\n\nexport interface HBARTransaction {\n bytes: null;\n charged_tx_fee: number;\n consensus_timestamp: string;\n entity_id: null | string;\n max_fee: string;\n memo_base64: string;\n name: Name;\n nft_transfers: NftTransfer[];\n node: string;\n nonce: number;\n parent_consensus_timestamp: null;\n result: Result;\n scheduled: boolean;\n staking_reward_transfers: StakingRewardTransfer[];\n token_transfers: Transfer[];\n transaction_hash: string;\n transaction_id: string;\n transfers: Transfer[];\n valid_duration_seconds: string;\n valid_start_timestamp: string;\n}\n\nexport enum Name {\n Contractcall = 'CONTRACTCALL',\n Cryptotransfer = 'CRYPTOTRANSFER',\n}\n\nexport interface NftTransfer {\n is_approval: boolean;\n receiver_account_id: string;\n sender_account_id: string;\n serial_number: number;\n token_id: string;\n}\n\nexport enum Result {\n Success = 'SUCCESS',\n}\n\nexport interface StakingRewardTransfer {\n account: string;\n amount: number;\n}\n\nexport interface Transfer {\n token_id?: string;\n account: string;\n amount: number;\n is_approval: boolean;\n}\n\nexport interface Message {\n payer: string;\n created: Date;\n consensus_timestamp: string;\n sequence_number: number;\n [key: string]: any;\n}\n\nexport interface FetchMessagesResult {\n messages: Message[];\n error?: string;\n}\n\nexport interface Account {\n account: string;\n alias: null;\n auto_renew_period: number;\n balance: Balance;\n decline_reward: boolean;\n deleted: boolean;\n ethereum_nonce: null;\n evm_address: null;\n expiry_timestamp: string;\n key: Key;\n max_automatic_token_associations: number;\n memo: string;\n receiver_sig_required: null;\n staked_account_id: null;\n staked_node_id: null;\n stake_period_start: null;\n}\n\nexport interface Balance {\n balance: number;\n timestamp: string;\n tokens: Token[];\n}\n\nexport interface Token {\n token_id: string;\n balance: number;\n}\n\nexport interface Key {\n _type: string;\n key: string;\n}\n\nexport interface TokenBalance {\n tokenId: string;\n balance: string;\n decimals: number;\n created_timestamp: Date;\n formatted_balance: string;\n}\n\nexport interface HederaTXResponse {\n transactions: MirrorNodeTransaction[];\n}\n\nexport interface MirrorNodeTransaction {\n bytes: null;\n charged_tx_fee: number;\n consensus_timestamp: string;\n entity_id: string;\n max_fee: string;\n memo_base64: string;\n name: string;\n node: null | string;\n nonce: number;\n parent_consensus_timestamp: null | string;\n result: string;\n scheduled: boolean;\n transaction_hash: string;\n transaction_id: string;\n transfers: Transfer[];\n token_transfers: TokenTransfer[];\n valid_duration_seconds: null | string;\n valid_start_timestamp: string;\n nft_transfers?: NftTransfer[];\n}\n\nexport interface NftTransfer {\n is_approval: boolean;\n receiver_account_id: string;\n sender_account_id: string;\n serial_number: number;\n token_id: string;\n}\n\nexport interface TokenTransfer {\n token_id: string;\n account: string;\n amount: number;\n}\n\nexport interface HBarNFT {\n nfts: Nft[];\n links: Links;\n}\n\nexport interface Links {\n next: string;\n}\n\nexport interface Nft {\n account_id: string;\n created_timestamp: string;\n delegating_spender: null;\n deleted: boolean;\n metadata: string;\n modified_timestamp: string;\n serial_number: number;\n spender: null;\n token_id: string;\n token_uri?: string;\n owner_of?: string;\n}\n\nexport interface FormattedOwner {\n token_uri?: string;\n chain?: string;\n owner_of?: string;\n token_address?: string;\n token_id?: string;\n account_id?: string;\n serial_number?: number;\n [key: string]: any;\n}\n\nexport type HashinalsWalletConnectSDK = {\n run: () => void;\n init: (\n projectId: string,\n metadata: SignClientTypes.Metadata\n ) => Promise;\n connect: () => Promise;\n connectWallet(\n PROJECT_ID: string,\n APP_METADATA: SignClientTypes.Metadata\n ): Promise<{\n accountId: string;\n balance: string;\n session: SessionTypes.Struct;\n }>;\n disconnect: () => Promise;\n disconnectAll: () => Promise;\n disconnectWallet: () => Promise;\n loadConnectionInfo: () => string | null;\n saveConnectionInfo: (accountId: string) => void;\n executeTransaction: (\n tx: Transaction,\n disableSigner: boolean\n ) => Promise;\n executeTransationWithErrorHandling: (\n tx: Transaction,\n disableSigner: boolean\n ) => Promise<{ result?: TransactionReceipt; error?: string }>;\n result?: TransactionReceipt;\n error?: string;\n submitMessageToTopic: (\n topicId: string,\n message: string\n ) => Promise;\n transferHbar: (\n fromAccountId: string,\n toAccountId: string,\n amount: number\n ) => Promise;\n executeSmartContract: (\n contractId: string,\n functionName: string,\n parameters: ContractFunctionParameters,\n gas?: number\n ) => Promise;\n getAccountBalance: () => Promise;\n getAccountInfo: () => string;\n createTopic: (\n memo?: string,\n adminKey?: string,\n submitKey?: string\n ) => Promise;\n createToken: (\n name: string,\n symbol: string,\n initialSupply: number,\n decimals: number,\n treasuryAccountId: string,\n adminKey: string,\n supplyKey: string\n ) => Promise;\n mintNFT: (\n tokenId: string,\n metadata: string,\n supplyKey: PrivateKey\n ) => Promise;\n dAppConnector?: DAppConnector;\n getMessages: (\n topicId: string,\n lastTimestamp?: number,\n disableTimestampFilter?: boolean\n ) => Promise;\n initAccount: (\n PROJECT_ID: string,\n APP_METADATA: SignClientTypes.Metadata\n ) => Promise<{ accountId: string; balance: string } | null>;\n transferToken: (\n tokenId: string,\n fromAccountId: string,\n toAccountId: string,\n amount: number\n ) => Promise;\n createAccount: (initialBalance: number) => Promise;\n associateTokenToAccount: (\n accountId: string,\n tokenId: string\n ) => Promise;\n dissociateTokenFromAccount: (\n accountId: string,\n tokenId: string\n ) => Promise;\n updateAccount: (\n accountId: string,\n maxAutomaticTokenAssociations: number\n ) => Promise;\n approveAllowance: (\n spenderAccountId: string,\n tokenId: string,\n amount: number,\n ownerAccountId: string\n ) => Promise;\n getAccountTokens: (accountId: string) => Promise<{ tokens: TokenBalance[] }>;\n getTransaction: (transactionId: string) => Promise;\n getTransactionByTimestamp: (timestamp: string) => Promise;\n getAccountNFTs: (accountId: string, tokenId?: string) => Promise;\n validateNFTOwnership: (serialNumber: string, accountId: string, tokenId: string) => Promise;\n readSmartContract: (\n data: string,\n fromAccount: AccountId,\n contractId: ContractId,\n estimate?: boolean,\n value?: number\n ) => Promise;\n HashgraphSDK: typeof hashgraph;\n};\n","import { Buffer } from 'buffer';\nimport { SessionTypes, SignClientTypes } from '@walletconnect/types';\nimport {\n Transaction,\n TransferTransaction,\n TopicMessageSubmitTransaction,\n ContractExecuteTransaction,\n Hbar,\n TransactionId,\n AccountId,\n TopicId,\n ContractId,\n LedgerId,\n TokenCreateTransaction,\n TokenType,\n TokenSupplyType,\n TokenMintTransaction,\n TopicCreateTransaction,\n TransactionReceipt,\n ContractFunctionParameters,\n PrivateKey,\n AccountCreateTransaction,\n TokenAssociateTransaction,\n TokenDissociateTransaction,\n AccountUpdateTransaction,\n AccountAllowanceApproveTransaction,\n TokenId,\n} from '@hashgraph/sdk';\nimport * as HashgraphSDK from '@hashgraph/sdk';\nimport {\n HederaSessionEvent,\n HederaJsonRpcMethod,\n DAppConnector,\n HederaChainId,\n SignMessageResult,\n} from '@hashgraph/hedera-wallet-connect';\nimport {\n Message,\n FetchMessagesResult,\n TokenBalance,\n HederaAccountResponse,\n HederaTXResponse,\n HBarNFT,\n Nft,\n} from './types';\nimport { DefaultLogger, ILogger } from './logger/logger';\nimport { fetchWithRetry } from './utils/retry';\n\nclass HashinalsWalletConnectSDK {\n private static instance: HashinalsWalletConnectSDK;\n private static dAppConnectorInstance: DAppConnector;\n private logger: ILogger;\n private network: LedgerId;\n private extensionCheckInterval: NodeJS.Timeout | null = null;\n private hasCalledExtensionCallback: boolean = false;\n\n public get dAppConnector(): DAppConnector {\n return HashinalsWalletConnectSDK.dAppConnectorInstance;\n }\n\n constructor(logger?: ILogger, network?: LedgerId) {\n this.logger = logger || new DefaultLogger();\n this.network = network || LedgerId.MAINNET;\n }\n\n public static getInstance(\n logger?: ILogger,\n network?: LedgerId\n ): HashinalsWalletConnectSDK {\n let instance = HashinalsWalletConnectSDK?.instance;\n if (!instance) {\n HashinalsWalletConnectSDK.instance = new HashinalsWalletConnectSDK(\n logger,\n network\n );\n instance = HashinalsWalletConnectSDK.instance;\n }\n if (network) {\n instance.setNetwork(network);\n }\n return instance;\n }\n\n public setLogger(logger: ILogger): void {\n this.logger = logger;\n }\n\n public setNetwork(network: LedgerId): void {\n this.network = network;\n }\n\n public getNetwork(): LedgerId {\n return this.network;\n }\n\n public setLogLevel(level: 'error' | 'warn' | 'info' | 'debug'): void {\n if (this.logger instanceof DefaultLogger) {\n this.logger.setLogLevel(level);\n } else {\n this.logger.warn('setLogLevel is only available for the default logger');\n }\n }\n\n public async init(\n projectId: string,\n metadata: SignClientTypes.Metadata,\n network?: LedgerId,\n onSessionIframeCreated?: (session: SessionTypes.Struct) => void\n ): Promise {\n const chosenNetwork = network || this.network;\n const isMainnet = chosenNetwork.toString() === 'mainnet';\n\n if (HashinalsWalletConnectSDK.dAppConnectorInstance) {\n return HashinalsWalletConnectSDK.dAppConnectorInstance;\n }\n\n HashinalsWalletConnectSDK.dAppConnectorInstance = new DAppConnector(\n metadata,\n chosenNetwork,\n projectId,\n Object.values(HederaJsonRpcMethod),\n [HederaSessionEvent.ChainChanged, HederaSessionEvent.AccountsChanged],\n [isMainnet ? HederaChainId.Mainnet : HederaChainId.Testnet],\n 'debug'\n );\n\n await HashinalsWalletConnectSDK.dAppConnectorInstance.init({\n logger: 'error',\n });\n\n HashinalsWalletConnectSDK.dAppConnectorInstance.onSessionIframeCreated = (\n session\n ) => {\n this.logger.info('new session from from iframe', session);\n this.handleNewSession(session);\n if (onSessionIframeCreated) {\n onSessionIframeCreated(session);\n }\n };\n\n this.logger.info(\n `Hedera Wallet Connect SDK initialized on ${chosenNetwork}`\n );\n return HashinalsWalletConnectSDK.dAppConnectorInstance;\n }\n\n public async connect(): Promise {\n this.ensureInitialized();\n const session = await this.dAppConnector.openModal();\n this.handleNewSession(session);\n return session;\n }\n\n public async disconnect(): Promise {\n try {\n this.ensureInitialized();\n const accountInfo = this.getAccountInfo();\n const accountId = accountInfo?.accountId;\n const network = accountInfo?.network;\n const signer = this?.dAppConnector?.signers.find(\n (signer_) => signer_.getAccountId().toString() === accountId\n );\n await this.dAppConnector?.disconnect(signer?.topic);\n this.logger.info(`Disconnected from ${accountId} on ${network}`);\n return true;\n } catch (e) {\n this.logger.error('Failed to disconnect', e);\n return false;\n }\n }\n\n public async disconnectAll(): Promise {\n try {\n this.ensureInitialized();\n await this.dAppConnector?.disconnectAll();\n this.logger.info(`Disconnected from all wallets`);\n return true;\n } catch (e) {\n this.logger.error('Failed to disconnect', e);\n return false;\n }\n }\n\n public async executeTransaction(\n tx: Transaction,\n disableSigner: boolean = false\n ): Promise {\n this.ensureInitialized();\n const accountInfo = this.getAccountInfo();\n const accountId = accountInfo?.accountId;\n const signer = this.dAppConnector.signers.find(\n (signer_) => signer_.getAccountId().toString() === accountId\n );\n if (!disableSigner) {\n const signedTx = await tx.freezeWithSigner(signer);\n const executedTx = await signedTx.executeWithSigner(signer);\n return await executedTx.getReceiptWithSigner(signer);\n } else {\n const executedTx = await tx.executeWithSigner(signer);\n return await executedTx.getReceiptWithSigner(signer);\n }\n }\n\n public async executeTransactionWithErrorHandling(\n tx: Transaction,\n disableSigner: boolean\n ): Promise<{ result?: TransactionReceipt; error?: string }> {\n try {\n const result = await this.executeTransaction(tx, disableSigner);\n return {\n result,\n error: undefined,\n };\n } catch (e) {\n const error = e as Error;\n const message = error.message?.toLowerCase();\n this.logger.error('Failed to execute transaction', e);\n this.logger.error('Failure reason for transaction is', message);\n if (message.includes('insufficient payer balance')) {\n return {\n result: undefined,\n error: 'Insufficient balance to complete the transaction.',\n };\n } else if (message.includes('reject')) {\n return {\n result: undefined,\n error: 'You rejected the transaction',\n };\n } else if (message.includes('invalid signature')) {\n return {\n result: undefined,\n error: 'Invalid signature. Please check your account and try again.',\n };\n } else if (message.includes('transaction expired')) {\n return {\n result: undefined,\n error: 'Transaction expired. Please try again.',\n };\n } else if (message.includes('account not found')) {\n return {\n result: undefined,\n error:\n 'Account not found. Please check the account ID and try again.',\n };\n } else if (message.includes('unauthorized')) {\n return {\n result: undefined,\n error:\n 'Unauthorized. You may not have the necessary permissions for this action.',\n };\n } else if (message.includes('busy')) {\n return {\n result: undefined,\n error: 'The network is busy. Please try again later.',\n };\n } else if (message.includes('invalid transaction')) {\n return {\n result: undefined,\n error: 'Invalid transaction. Please check your inputs and try again.',\n };\n }\n }\n }\n\n public async submitMessageToTopic(\n topicId: string,\n message: string,\n submitKey?: PrivateKey\n ): Promise {\n this.ensureInitialized();\n\n let transaction = new TopicMessageSubmitTransaction()\n .setTopicId(TopicId.fromString(topicId))\n .setMessage(message);\n\n if (submitKey) {\n transaction = await transaction.sign(submitKey);\n }\n\n return this.executeTransaction(transaction);\n }\n\n public async transferHbar(\n fromAccountId: string,\n toAccountId: string,\n amount: number\n ): Promise {\n this.ensureInitialized();\n\n const transaction = new TransferTransaction()\n .setTransactionId(TransactionId.generate(fromAccountId))\n .addHbarTransfer(AccountId.fromString(fromAccountId), new Hbar(-amount))\n .addHbarTransfer(AccountId.fromString(toAccountId), new Hbar(amount));\n\n return this.executeTransaction(transaction);\n }\n\n async executeSmartContract(\n contractId: string,\n functionName: string,\n parameters: ContractFunctionParameters,\n gas: number = 100000\n ): Promise {\n this.ensureInitialized();\n\n const transaction = new ContractExecuteTransaction()\n .setContractId(ContractId.fromString(contractId))\n .setGas(gas)\n .setFunction(functionName, parameters);\n\n return this.executeTransaction(transaction);\n }\n\n private handleNewSession(session: SessionTypes.Struct) {\n const sessionAccount = session.namespaces?.hedera?.accounts?.[0];\n const sessionParts = sessionAccount?.split(':');\n const accountId = sessionParts.pop();\n const network = sessionParts.pop();\n this.logger.info('sessionAccount is', accountId, network);\n if (!accountId) {\n this.logger.error('No account id found in the session');\n return;\n } else {\n this.saveConnectionInfo(accountId, network);\n }\n }\n\n private getNetworkPrefix(): string {\n const accountInfo = this.getAccountInfo();\n const network = accountInfo?.network;\n\n if (!network) {\n this.logger.warn('Network is not set on SDK, defaulting.');\n\n const cachedNetwork = localStorage.getItem('connectedNetwork');\n\n if (cachedNetwork) {\n return cachedNetwork;\n }\n\n return 'mainnet-public';\n }\n\n if (network !== this.network) {\n this.logger.warn(\n 'Detected network mismatch, reverting to signer network',\n network\n );\n this.network = network;\n }\n\n return network.isMainnet() ? 'mainnet-public' : 'testnet';\n }\n\n public async requestAccount(account: string): Promise {\n try {\n const networkPrefix = this.getNetworkPrefix();\n\n const url = `https://${networkPrefix}.mirrornode.hedera.com/api/v1/accounts/${account}`;\n const response = await fetchWithRetry()(url);\n if (!response.ok) {\n throw new Error(\n `Failed to make request to mirror node for account: ${response.status}`\n );\n }\n return await response.json();\n } catch (e) {\n this.logger.error('Failed to fetch account', e);\n throw e;\n }\n }\n\n public async getAccountBalance(): Promise {\n this.ensureInitialized();\n const accountInfo = this.getAccountInfo();\n const account = accountInfo?.accountId;\n\n if (!account) {\n return null;\n }\n\n const accountResponse = await this.requestAccount(account);\n if (!accountResponse) {\n throw new Error(\n 'Failed to fetch account. Try again or check if the Account ID is valid.'\n );\n }\n const balance = accountResponse.balance.balance / 10 ** 8;\n return Number(balance).toLocaleString('en-US');\n }\n\n public getAccountInfo(): {\n accountId: string;\n network: LedgerId;\n } {\n const { accountId: cachedAccountId } = this.loadConnectionInfo();\n if (!cachedAccountId) {\n return null;\n }\n const signers = this?.dAppConnector?.signers;\n\n if (!signers?.length) {\n return null;\n }\n\n const cachedSigner = this.dAppConnector.signers.find(\n (signer_) => signer_.getAccountId().toString() === cachedAccountId\n );\n if (!cachedSigner) {\n return null;\n }\n const accountId = cachedSigner?.getAccountId()?.toString();\n if (!accountId) {\n return null;\n }\n const network = cachedSigner.getLedgerId();\n return {\n accountId,\n network,\n };\n }\n\n public async createTopic(\n memo?: string,\n adminKey?: string,\n submitKey?: string\n ): Promise {\n this.ensureInitialized();\n\n let transaction = new TopicCreateTransaction().setTopicMemo(memo || '');\n\n if (adminKey) {\n const adminWithPrivateKey = PrivateKey.fromString(adminKey);\n transaction.setAdminKey(adminWithPrivateKey.publicKey);\n transaction = await transaction.sign(adminWithPrivateKey);\n }\n\n if (submitKey) {\n transaction.setSubmitKey(PrivateKey.fromString(submitKey).publicKey);\n }\n\n const receipt = await this.executeTransaction(transaction);\n return receipt.topicId!.toString();\n }\n\n public async createToken(\n name: string,\n symbol: string,\n initialSupply: number,\n decimals: number,\n treasuryAccountId: string,\n adminKey: string,\n supplyKey: string\n ): Promise {\n this.ensureInitialized();\n\n let transaction = new TokenCreateTransaction()\n .setTokenName(name)\n .setTokenSymbol(symbol)\n .setDecimals(decimals)\n .setInitialSupply(initialSupply)\n .setTreasuryAccountId(AccountId.fromString(treasuryAccountId))\n .setTokenType(TokenType.NonFungibleUnique)\n .setSupplyType(TokenSupplyType.Finite);\n\n if (supplyKey) {\n transaction = transaction.setSupplyKey(PrivateKey.fromString(supplyKey));\n }\n\n if (adminKey) {\n transaction = transaction.setAdminKey(PrivateKey.fromString(adminKey));\n transaction = await transaction.sign(PrivateKey.fromString(adminKey));\n }\n\n const receipt = await this.executeTransaction(transaction);\n return receipt.tokenId!.toString();\n }\n\n public async mintNFT(\n tokenId: string,\n metadata: string,\n supplyKey: PrivateKey\n ): Promise {\n this.ensureInitialized();\n\n let transaction = await new TokenMintTransaction()\n .setTokenId(tokenId)\n .setMetadata([Buffer.from(metadata, 'utf-8')])\n .sign(supplyKey);\n\n return this.executeTransaction(transaction);\n }\n\n public async getMessages(\n topicId: string,\n lastTimestamp?: number,\n disableTimestampFilter: boolean = false,\n network?: string\n ): Promise {\n const networkPrefix = network || this.getNetworkPrefix();\n const baseUrl = `https://${networkPrefix}.mirrornode.hedera.com`;\n const timestampQuery =\n Number(lastTimestamp) > 0 && !disableTimestampFilter\n ? `×tamp=gt:${lastTimestamp}`\n : '';\n\n const url = `${baseUrl}/api/v1/topics/${topicId}/messages?limit=200${timestampQuery}`;\n\n try {\n const response = await fetchWithRetry()(url);\n if (!response.ok) {\n throw new Error(\n `Failed to make request to mirror node: ${response.status}`\n );\n }\n const data = await response.json();\n const messages = data?.messages || [];\n const nextLink = data?.links?.next;\n\n const collectedMessages: Message[] = messages.map((msg: any) => {\n const parsedMessage = JSON.parse(atob(msg.message));\n return {\n ...parsedMessage,\n payer: msg.payer_account_id,\n created: new Date(Number(msg.consensus_timestamp) * 1000),\n consensus_timestamp: msg.consensus_timestamp,\n sequence_number: msg.sequence_number,\n };\n });\n\n if (nextLink) {\n const nextResult = await this.getMessages(\n topicId,\n Number(\n collectedMessages[collectedMessages.length - 1]?.consensus_timestamp\n ),\n disableTimestampFilter\n );\n collectedMessages.push(...nextResult.messages);\n }\n\n return {\n messages: collectedMessages.sort(\n (a, b) => a.sequence_number - b.sequence_number\n ),\n error: '',\n };\n } catch (error) {\n this.logger.error('Error fetching topic data:', error);\n return {\n messages: [],\n error: (error as Error).toString(),\n };\n }\n }\n\n public async signMessage(message: string) {\n const dAppConnector = this.dAppConnector;\n if (!dAppConnector) {\n throw new Error('No active connection or signer');\n }\n\n const accountInfo = this.getAccountInfo();\n const accountId = accountInfo?.accountId;\n\n const params = {\n signerAccountId: `hedera:${this.network}:${accountId}`,\n message,\n };\n\n const result = (await dAppConnector.signMessage(\n params\n )) as SignMessageResult;\n\n // @ts-ignore\n return { userSignature: result.signatureMap };\n }\n\n private saveConnectionInfo(\n accountId: string | undefined,\n connectedNetwork?: string | undefined\n ): void {\n if (!accountId) {\n localStorage.removeItem('connectedAccountId');\n localStorage.removeItem('connectedNetwork');\n } else {\n const cleanNetwork = connectedNetwork?.replace(/['\"]+/g, '');\n localStorage.setItem('connectedNetwork', cleanNetwork);\n localStorage.setItem('connectedAccountId', accountId);\n }\n }\n\n public loadConnectionInfo(): {\n accountId: string | null;\n network: string | null;\n } {\n return {\n accountId: localStorage.getItem('connectedAccountId'),\n network: localStorage.getItem('connectedNetwork'),\n };\n }\n\n public async connectWallet(\n PROJECT_ID: string,\n APP_METADATA: SignClientTypes.Metadata,\n network?: LedgerId\n ): Promise<{\n accountId: string;\n balance: string;\n session: SessionTypes.Struct;\n }> {\n try {\n await this.init(PROJECT_ID, APP_METADATA, network);\n const session = await this.connect();\n\n const accountInfo = this.getAccountInfo();\n const accountId = accountInfo?.accountId;\n const balance = await this.getAccountBalance();\n const networkPrefix = this.getNetworkPrefix();\n\n this.saveConnectionInfo(accountId, networkPrefix);\n return {\n accountId,\n balance,\n session,\n };\n } catch (error) {\n this.logger.error('Failed to connect wallet:', error);\n throw error;\n }\n }\n\n public async disconnectWallet(\n clearStorage: boolean = true\n ): Promise {\n try {\n const success = await this.disconnect();\n\n if (success && clearStorage) {\n localStorage.clear();\n }\n\n this.saveConnectionInfo(undefined);\n return success;\n } catch (error) {\n this.logger.error('Failed to disconnect wallet:', error);\n return false;\n }\n }\n\n public async initAccount(\n PROJECT_ID: string,\n APP_METADATA: SignClientTypes.Metadata,\n networkOverride?: LedgerId,\n onSessionIframeCreated: (session: SessionTypes.Struct) => void = () => {}\n ): Promise<{ accountId: string; balance: string } | null> {\n const { accountId: savedAccountId, network: savedNetwork } =\n this.loadConnectionInfo();\n\n if (savedAccountId && savedNetwork) {\n try {\n const defaultNetwork =\n savedNetwork === 'mainnet' ? LedgerId.MAINNET : LedgerId.TESTNET;\n const network = networkOverride || defaultNetwork;\n await this.init(\n PROJECT_ID,\n APP_METADATA,\n network,\n onSessionIframeCreated\n );\n const balance = await this.getAccountBalance();\n return {\n accountId: savedAccountId,\n balance,\n };\n } catch (error) {\n this.logger.error('Failed to reconnect:', error);\n this.saveConnectionInfo(undefined, undefined);\n return null;\n }\n } else if (networkOverride) {\n try {\n this.logger.info(\n 'initializing normally through override.',\n networkOverride\n );\n await this.init(\n PROJECT_ID,\n APP_METADATA,\n networkOverride,\n onSessionIframeCreated\n );\n this.logger.info('initialized', networkOverride);\n await this.connectViaDappBrowser();\n this.logger.info('connected via dapp browser');\n } catch (error) {\n this.logger.error('Failed to fallback connect:', error);\n this.saveConnectionInfo(undefined, undefined);\n return null;\n }\n }\n\n return null;\n }\n\n public subscribeToExtensions(callback: (extension: any) => void) {\n // Clear any existing interval and reset flag\n if (this.extensionCheckInterval) {\n clearInterval(this.extensionCheckInterval);\n }\n this.hasCalledExtensionCallback = false;\n\n // Set up polling to check for extensions\n this.extensionCheckInterval = setInterval(() => {\n const extensions = this.dAppConnector?.extensions || [];\n const availableExtension = extensions.find(\n (ext) => ext.availableInIframe\n );\n\n if (availableExtension && !this.hasCalledExtensionCallback) {\n this.hasCalledExtensionCallback = true;\n callback(availableExtension);\n // Clear the interval once we find an available extension\n if (this.extensionCheckInterval) {\n clearInterval(this.extensionCheckInterval);\n this.extensionCheckInterval = null;\n }\n }\n }, 1000); // Check every second\n\n // Return cleanup function\n return () => {\n if (this.extensionCheckInterval) {\n clearInterval(this.extensionCheckInterval);\n this.extensionCheckInterval = null;\n }\n this.hasCalledExtensionCallback = false;\n };\n }\n\n public async connectViaDappBrowser() {\n const extensions = this.dAppConnector.extensions || [];\n const extension = extensions.find((ext) => {\n this.logger.info('Checking extension', ext);\n return ext.availableInIframe;\n });\n this.logger.info('extensions are', extensions, extension);\n\n if (extension) {\n await this.connectToExtension(extension);\n } else {\n // If no extension is immediately available, subscribe to changes\n this.subscribeToExtensions(async (newExtension) => {\n await this.connectToExtension(newExtension);\n });\n }\n }\n\n private async connectToExtension(extension: any) {\n this.logger.info('found extension, connecting to iframe.', extension);\n const session = await this.dAppConnector.connectExtension(extension.id);\n const onSessionIframeCreated = this.dAppConnector.onSessionIframeCreated;\n if (onSessionIframeCreated) {\n onSessionIframeCreated(session);\n }\n }\n\n private ensureInitialized(): void {\n if (!this.dAppConnector) {\n throw new Error('SDK not initialized. Call init() first.');\n }\n }\n\n static run(): void {\n try {\n if (typeof window !== 'undefined') {\n (window as any).HashinalsWalletConnectSDK =\n HashinalsWalletConnectSDK.getInstance();\n (window as any).HashgraphSDK = HashgraphSDK;\n }\n } catch (e) {\n console.error('[ERROR]: failed setting sdk on window');\n }\n }\n\n public async transferToken(\n tokenId: string,\n fromAccountId: string,\n toAccountId: string,\n amount: number\n ): Promise {\n this.ensureInitialized();\n\n const transaction = new TransferTransaction()\n .setTransactionId(TransactionId.generate(fromAccountId))\n .addTokenTransfer(\n TokenId.fromString(tokenId),\n AccountId.fromString(fromAccountId),\n -amount\n )\n .addTokenTransfer(\n TokenId.fromString(tokenId),\n AccountId.fromString(toAccountId),\n amount\n );\n\n return this.executeTransaction(transaction);\n }\n\n async createAccount(initialBalance: number): Promise {\n this.ensureInitialized();\n\n const transaction = new AccountCreateTransaction().setInitialBalance(\n new Hbar(initialBalance)\n );\n\n return this.executeTransaction(transaction);\n }\n\n public async associateTokenToAccount(\n accountId: string,\n tokenId: string\n ): Promise {\n this.ensureInitialized();\n\n const transaction = new TokenAssociateTransaction()\n .setAccountId(AccountId.fromString(accountId))\n .setTokenIds([TokenId.fromString(tokenId)]);\n\n return this.executeTransaction(transaction);\n }\n\n public async dissociateTokenFromAccount(\n accountId: string,\n tokenId: string\n ): Promise {\n this.ensureInitialized();\n\n const transaction = new TokenDissociateTransaction()\n .setAccountId(AccountId.fromString(accountId))\n .setTokenIds([TokenId.fromString(tokenId)]);\n\n return this.executeTransaction(transaction);\n }\n\n public async updateAccount(\n accountId: string,\n maxAutomaticTokenAssociations: number\n ): Promise {\n this.ensureInitialized();\n\n const transaction = new AccountUpdateTransaction()\n .setAccountId(AccountId.fromString(accountId))\n .setMaxAutomaticTokenAssociations(maxAutomaticTokenAssociations);\n\n return this.executeTransaction(transaction);\n }\n\n public async approveAllowance(\n spenderAccountId: string,\n tokenId: string,\n amount: number,\n ownerAccountId: string\n ): Promise {\n this.ensureInitialized();\n\n const transaction =\n new AccountAllowanceApproveTransaction().approveTokenAllowance(\n TokenId.fromString(tokenId),\n AccountId.fromString(ownerAccountId),\n AccountId.fromString(spenderAccountId),\n amount\n );\n\n return this.executeTransaction(transaction);\n }\n\n public async getAccountTokens(\n accountId: string\n ): Promise<{ tokens: TokenBalance[] }> {\n this.ensureInitialized();\n\n const networkPrefix = this.getNetworkPrefix();\n const baseUrl = `https://${networkPrefix}.mirrornode.hedera.com`;\n const url = `${baseUrl}/api/v1/accounts/${accountId}/tokens?limit=200`;\n\n try {\n const response = await fetchWithRetry()(url);\n if (!response.ok) {\n throw new Error(\n `Failed to make request to mirror node for account tokens: ${response.status}`\n );\n }\n const data = await response.json();\n\n const tokens: TokenBalance[] = [];\n\n for (const token of data.tokens) {\n if (token.token_id) {\n tokens.push({\n tokenId: token.token_id,\n balance: token.balance,\n decimals: token.decimals,\n formatted_balance: (\n token.balance /\n 10 ** token.decimals\n ).toLocaleString('en-US'),\n created_timestamp: new Date(Number(token.created_timestamp) * 1000),\n });\n }\n }\n let nextLink = data.links?.next;\n while (nextLink) {\n const nextUrl = `${baseUrl}${nextLink}`;\n const nextResponse = await fetchWithRetry()(nextUrl);\n if (!nextResponse.ok) {\n throw new Error(\n `Failed to make request to mirror node for account tokens: ${nextResponse.status}, page: ${nextUrl}`\n );\n }\n const nextData = await nextResponse.json();\n\n for (const token of nextData.tokens) {\n if (token.token_id) {\n tokens.push({\n tokenId: token.token_id,\n balance: token.balance,\n decimals: token.decimals,\n formatted_balance: (\n token.balance /\n 10 ** token.decimals\n ).toLocaleString('en-US'),\n created_timestamp: new Date(\n Number(token.created_timestamp) * 1000\n ),\n });\n }\n }\n\n nextLink = nextData.links?.next;\n }\n\n return { tokens };\n } catch (error) {\n this.logger.error('Error fetching account tokens:', error);\n throw error;\n }\n }\n\n public async getTransaction(\n transactionId: string\n ): Promise {\n try {\n const networkPrefix = this.getNetworkPrefix();\n const url = `https://${networkPrefix}.mirrornode.hedera.com/api/v1/transactions/${transactionId}`;\n\n this.logger.debug('Fetching transaction', url);\n const request = await fetchWithRetry()(url);\n\n if (!request.ok) {\n throw new Error(`Failed to fetch transaction: ${request.status}`);\n }\n\n return await request.json();\n } catch (e) {\n this.logger.error('Failed to get transaction', e);\n return null;\n }\n }\n\n public async getTransactionByTimestamp(\n timestamp: string\n ): Promise {\n try {\n const networkPrefix = this.getNetworkPrefix();\n const url = `https://${networkPrefix}.mirrornode.hedera.com/api/v1/transactions?timestamp=${timestamp}`;\n\n this.logger.debug('Fetching transaction by timestamp', url);\n const request = await fetchWithRetry()(url);\n\n if (!request.ok) {\n throw new Error(\n `Failed to fetch transaction by timestamp: ${request.status}`\n );\n }\n\n const response = (await request.json()) as HederaTXResponse;\n const transaction = response?.transactions?.[0];\n\n if (transaction) {\n return await this.getTransaction(transaction.transaction_id);\n }\n\n return null;\n } catch (e) {\n this.logger.error('Failed to get transaction by timestamp', e);\n return null;\n }\n }\n\n public async getAccountNFTs(\n accountId: string,\n tokenId?: string\n ): Promise {\n try {\n const networkPrefix = this.getNetworkPrefix();\n const tokenQuery = tokenId ? `&token.id=${tokenId}` : '';\n const url = `https://${networkPrefix}.mirrornode.hedera.com/api/v1/accounts/${accountId}/nfts?limit=200${tokenQuery}`;\n\n const request = await fetchWithRetry()(url);\n if (!request.ok) {\n throw new Error(`Failed to fetch NFTs for account: ${request.status}`);\n }\n\n const response = (await request.json()) as HBarNFT;\n let nextLink: string | null = response?.links?.next || null;\n let nfts = response.nfts;\n\n while (nextLink) {\n try {\n const nextRequest = await fetchWithRetry()(\n `https://${networkPrefix}.mirrornode.hedera.com${nextLink}`\n );\n\n if (!nextRequest.ok) {\n throw new Error(\n `Failed to fetch next page of NFTs: ${nextRequest.status}`\n );\n }\n\n const nextResponse = (await nextRequest.json()) as HBarNFT;\n nfts = [...nfts, ...(nextResponse?.nfts || [])];\n\n nextLink =\n nextResponse?.links?.next && nextLink !== nextResponse?.links?.next\n ? nextResponse.links.next\n : null;\n } catch (e) {\n this.logger.error('Failed to fetch next page of NFTs', e);\n break;\n }\n }\n\n return nfts.map((nft) => {\n try {\n nft.token_uri = Buffer.from(nft.metadata, 'base64').toString('ascii');\n } catch (e) {\n this.logger.error('Failed to decode NFT metadata', e);\n }\n return nft;\n });\n } catch (e) {\n this.logger.error('Failed to get account NFTs', e);\n return [];\n }\n }\n\n public async validateNFTOwnership(\n serialNumber: string,\n accountId: string,\n tokenId: string\n ): Promise {\n const userNFTs = await this.getAccountNFTs(accountId, tokenId);\n\n return (\n userNFTs.find(\n (nft) =>\n nft.token_id === tokenId &&\n nft.serial_number.toString() === serialNumber\n ) || null\n );\n }\n\n public async readSmartContract(\n data: string,\n fromAccount: AccountId,\n contractId: ContractId,\n estimate: boolean = true,\n value: number = 0\n ): Promise {\n try {\n const networkPrefix = this.getNetworkPrefix();\n const body: any = {\n block: 'latest',\n data: data,\n estimate: estimate,\n from: fromAccount.toSolidityAddress(),\n to: contractId.toSolidityAddress(),\n value,\n };\n\n if (!estimate) {\n body.gas = 300000;\n body.gasPrice = 100000000;\n }\n\n const url = `https://${networkPrefix}.mirrornode.hedera.com/api/v1/contracts/call`;\n\n const response = await fetchWithRetry()(url, {\n method: 'POST',\n body: JSON.stringify(body),\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n\n if (!response.ok) {\n throw new Error(`Failed to make contract call: ${response.status}`);\n }\n\n return await response.json();\n } catch (e) {\n this.logger.error('Failed to make contract call', e);\n return null;\n }\n }\n}\n\n// This variable is replaced at build time.\n// @ts-ignore\nif ('VITE_BUILD_FORMAT' === 'umd') {\n HashinalsWalletConnectSDK.run();\n}\n\nexport * from './types';\nexport * from './sign';\nexport { HashinalsWalletConnectSDK, HashgraphSDK };\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=window,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),n=new WeakMap;class o{constructor(t,e,n){if(this._$cssResult$=!0,n!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=n.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&n.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new o(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const n=1===t.length?t[0]:e.reduce(((e,s,n)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[n+1]),t[0]);return new o(n,t,s)},S=(s,n)=>{e?s.adoptedStyleSheets=n.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet)):n.forEach((e=>{const n=document.createElement(\"style\"),o=t.litNonce;void 0!==o&&n.setAttribute(\"nonce\",o),n.textContent=e.cssText,s.appendChild(n)}))},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{o as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as i}from\"./css-tag.js\";export{CSSResult,adoptStyles,css,getCompatibleStyle,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */var s;const e=window,r=e.trustedTypes,h=r?r.emptyScript:\"\",o=e.reactiveElementPolyfillSupport,n={toAttribute(t,i){switch(i){case Boolean:t=t?h:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,i){let s=t;switch(i){case Boolean:s=null!==t;break;case Number:s=null===t?null:Number(t);break;case Object:case Array:try{s=JSON.parse(t)}catch(t){s=null}}return s}},a=(t,i)=>i!==t&&(i==i||t==t),l={attribute:!0,type:String,converter:n,reflect:!1,hasChanged:a},d=\"finalized\";class u extends HTMLElement{constructor(){super(),this._$Ei=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$El=null,this._$Eu()}static addInitializer(t){var i;this.finalize(),(null!==(i=this.h)&&void 0!==i?i:this.h=[]).push(t)}static get observedAttributes(){this.finalize();const t=[];return this.elementProperties.forEach(((i,s)=>{const e=this._$Ep(s,i);void 0!==e&&(this._$Ev.set(e,s),t.push(e))})),t}static createProperty(t,i=l){if(i.state&&(i.attribute=!1),this.finalize(),this.elementProperties.set(t,i),!i.noAccessor&&!this.prototype.hasOwnProperty(t)){const s=\"symbol\"==typeof t?Symbol():\"__\"+t,e=this.getPropertyDescriptor(t,s,i);void 0!==e&&Object.defineProperty(this.prototype,t,e)}}static getPropertyDescriptor(t,i,s){return{get(){return this[i]},set(e){const r=this[t];this[i]=e,this.requestUpdate(t,r,s)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)||l}static finalize(){if(this.hasOwnProperty(d))return!1;this[d]=!0;const t=Object.getPrototypeOf(this);if(t.finalize(),void 0!==t.h&&(this.h=[...t.h]),this.elementProperties=new Map(t.elementProperties),this._$Ev=new Map,this.hasOwnProperty(\"properties\")){const t=this.properties,i=[...Object.getOwnPropertyNames(t),...Object.getOwnPropertySymbols(t)];for(const s of i)this.createProperty(s,t[s])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(i){const s=[];if(Array.isArray(i)){const e=new Set(i.flat(1/0).reverse());for(const i of e)s.unshift(t(i))}else void 0!==i&&s.push(t(i));return s}static _$Ep(t,i){const s=i.attribute;return!1===s?void 0:\"string\"==typeof s?s:\"string\"==typeof t?t.toLowerCase():void 0}_$Eu(){var t;this._$E_=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$Eg(),this.requestUpdate(),null===(t=this.constructor.h)||void 0===t||t.forEach((t=>t(this)))}addController(t){var i,s;(null!==(i=this._$ES)&&void 0!==i?i:this._$ES=[]).push(t),void 0!==this.renderRoot&&this.isConnected&&(null===(s=t.hostConnected)||void 0===s||s.call(t))}removeController(t){var i;null===(i=this._$ES)||void 0===i||i.splice(this._$ES.indexOf(t)>>>0,1)}_$Eg(){this.constructor.elementProperties.forEach(((t,i)=>{this.hasOwnProperty(i)&&(this._$Ei.set(i,this[i]),delete this[i])}))}createRenderRoot(){var t;const s=null!==(t=this.shadowRoot)&&void 0!==t?t:this.attachShadow(this.constructor.shadowRootOptions);return i(s,this.constructor.elementStyles),s}connectedCallback(){var t;void 0===this.renderRoot&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),null===(t=this._$ES)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostConnected)||void 0===i?void 0:i.call(t)}))}enableUpdating(t){}disconnectedCallback(){var t;null===(t=this._$ES)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostDisconnected)||void 0===i?void 0:i.call(t)}))}attributeChangedCallback(t,i,s){this._$AK(t,s)}_$EO(t,i,s=l){var e;const r=this.constructor._$Ep(t,s);if(void 0!==r&&!0===s.reflect){const h=(void 0!==(null===(e=s.converter)||void 0===e?void 0:e.toAttribute)?s.converter:n).toAttribute(i,s.type);this._$El=t,null==h?this.removeAttribute(r):this.setAttribute(r,h),this._$El=null}}_$AK(t,i){var s;const e=this.constructor,r=e._$Ev.get(t);if(void 0!==r&&this._$El!==r){const t=e.getPropertyOptions(r),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==(null===(s=t.converter)||void 0===s?void 0:s.fromAttribute)?t.converter:n;this._$El=r,this[r]=h.fromAttribute(i,t.type),this._$El=null}}requestUpdate(t,i,s){let e=!0;void 0!==t&&(((s=s||this.constructor.getPropertyOptions(t)).hasChanged||a)(this[t],i)?(this._$AL.has(t)||this._$AL.set(t,i),!0===s.reflect&&this._$El!==t&&(void 0===this._$EC&&(this._$EC=new Map),this._$EC.set(t,s))):e=!1),!this.isUpdatePending&&e&&(this._$E_=this._$Ej())}async _$Ej(){this.isUpdatePending=!0;try{await this._$E_}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var t;if(!this.isUpdatePending)return;this.hasUpdated,this._$Ei&&(this._$Ei.forEach(((t,i)=>this[i]=t)),this._$Ei=void 0);let i=!1;const s=this._$AL;try{i=this.shouldUpdate(s),i?(this.willUpdate(s),null===(t=this._$ES)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostUpdate)||void 0===i?void 0:i.call(t)})),this.update(s)):this._$Ek()}catch(t){throw i=!1,this._$Ek(),t}i&&this._$AE(s)}willUpdate(t){}_$AE(t){var i;null===(i=this._$ES)||void 0===i||i.forEach((t=>{var i;return null===(i=t.hostUpdated)||void 0===i?void 0:i.call(t)})),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$Ek(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$E_}shouldUpdate(t){return!0}update(t){void 0!==this._$EC&&(this._$EC.forEach(((t,i)=>this._$EO(i,this[i],t))),this._$EC=void 0),this._$Ek()}updated(t){}firstUpdated(t){}}u[d]=!0,u.elementProperties=new Map,u.elementStyles=[],u.shadowRootOptions={mode:\"open\"},null==o||o({ReactiveElement:u}),(null!==(s=e.reactiveElementVersions)&&void 0!==s?s:e.reactiveElementVersions=[]).push(\"1.6.3\");export{u as ReactiveElement,n as defaultConverter,a as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nvar t;const i=window,s=i.trustedTypes,e=s?s.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,o=\"$lit$\",n=`lit$${(Math.random()+\"\").slice(9)}$`,l=\"?\"+n,h=`<${l}>`,r=document,u=()=>r.createComment(\"\"),d=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,c=Array.isArray,v=t=>c(t)||\"function\"==typeof(null==t?void 0:t[Symbol.iterator]),a=\"[ \\t\\n\\f\\r]\",f=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,_=/-->/g,m=/>/g,p=RegExp(`>|${a}(?:([^\\\\s\"'>=/]+)(${a}*=${a}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),g=/'/g,$=/\"/g,y=/^(?:script|style|textarea|title)$/i,w=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x=w(1),b=w(2),T=Symbol.for(\"lit-noChange\"),A=Symbol.for(\"lit-nothing\"),E=new WeakMap,C=r.createTreeWalker(r,129,null,!1);function P(t,i){if(!Array.isArray(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==e?e.createHTML(i):i}const V=(t,i)=>{const s=t.length-1,e=[];let l,r=2===i?\"\":\"\",u=f;for(let i=0;i\"===c[0]?(u=null!=l?l:f,v=-1):void 0===c[1]?v=-2:(v=u.lastIndex-c[2].length,d=c[1],u=void 0===c[3]?p:'\"'===c[3]?$:g):u===$||u===g?u=p:u===_||u===m?u=f:(u=p,l=void 0);const w=u===p&&t[i+1].startsWith(\"/>\")?\" \":\"\";r+=u===f?s+h:v>=0?(e.push(d),s.slice(0,v)+o+s.slice(v)+n+w):s+n+(-2===v?(e.push(void 0),i):w)}return[P(t,r+(t[s]||\"\")+(2===i?\"\":\"\")),e]};class N{constructor({strings:t,_$litType$:i},e){let h;this.parts=[];let r=0,d=0;const c=t.length-1,v=this.parts,[a,f]=V(t,i);if(this.el=N.createElement(a,e),C.currentNode=this.el.content,2===i){const t=this.el.content,i=t.firstChild;i.remove(),t.append(...i.childNodes)}for(;null!==(h=C.nextNode())&&v.length0){h.textContent=s?s.emptyScript:\"\";for(let s=0;s2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=A}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,i=this,s,e){const o=this.strings;let n=!1;if(void 0===o)t=S(this,t,i,0),n=!d(t)||t!==this._$AH&&t!==T,n&&(this._$AH=t);else{const e=t;let l,h;for(t=o[0],l=0;l{var e,o;const n=null!==(e=null==s?void 0:s.renderBefore)&&void 0!==e?e:i;let l=n._$litPart$;if(void 0===l){const t=null!==(o=null==s?void 0:s.renderBefore)&&void 0!==o?o:null;n._$litPart$=l=new R(i.insertBefore(u(),t),t,void 0,null!=s?s:{})}return l._$AI(t),l};export{j as _$LH,x as html,T as noChange,A as nothing,D as render,b as svg};\n//# sourceMappingURL=lit-html.js.map\n","import{ReactiveElement as t}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as e,noChange as i}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */var l,o;const r=t;class s extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){var t,e;const i=super.createRenderRoot();return null!==(t=(e=this.renderOptions).renderBefore)&&void 0!==t||(e.renderBefore=i.firstChild),i}update(t){const i=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(i,this.renderRoot,this.renderOptions)}connectedCallback(){var t;super.connectedCallback(),null===(t=this._$Do)||void 0===t||t.setConnected(!0)}disconnectedCallback(){var t;super.disconnectedCallback(),null===(t=this._$Do)||void 0===t||t.setConnected(!1)}render(){return i}}s.finalized=!0,s._$litElement$=!0,null===(l=globalThis.litElementHydrateSupport)||void 0===l||l.call(globalThis,{LitElement:s});const n=globalThis.litElementPolyfillSupport;null==n||n({LitElement:s});const h={_$AK:(t,e,i)=>{t._$AK(e,i)},_$AL:t=>t._$AL};(null!==(o=globalThis.litElementVersions)&&void 0!==o?o:globalThis.litElementVersions=[]).push(\"3.3.3\");export{s as LitElement,r as UpdatingElement,h as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst e=e=>n=>\"function\"==typeof n?((e,n)=>(customElements.define(e,n),n))(e,n):((e,n)=>{const{kind:t,elements:s}=n;return{kind:t,elements:s,finisher(n){customElements.define(e,n)}}})(e,n);export{e as customElement};\n//# sourceMappingURL=custom-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst i=(i,e)=>\"method\"===e.kind&&e.descriptor&&!(\"value\"in e.descriptor)?{...e,finisher(n){n.createProperty(e.key,i)}}:{kind:\"field\",key:Symbol(),placement:\"own\",descriptor:{},originalKey:e.key,initializer(){\"function\"==typeof e.initializer&&(this[e.key]=e.initializer.call(this))},finisher(n){n.createProperty(e.key,i)}},e=(i,e,n)=>{e.constructor.createProperty(n,i)};function n(n){return(t,o)=>void 0!==o?e(n,t,o):i(n,t)}export{n as property};\n//# sourceMappingURL=property.js.map\n","import{property as r}from\"./property.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function t(t){return r({...t,state:!0})}export{t as state};\n//# sourceMappingURL=state.js.map\n","import{decorateProperty as o}from\"./base.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */var n;const e=null!=(null===(n=window.HTMLSlotElement)||void 0===n?void 0:n.prototype.assignedElements)?(o,n)=>o.assignedElements(n):(o,n)=>o.assignedNodes(n).filter((o=>o.nodeType===Node.ELEMENT_NODE));function l(n){const{slot:l,selector:t}=null!=n?n:{};return o({descriptor:o=>({get(){var o;const r=\"slot\"+(l?`[name=${l}]`:\":not([name])\"),i=null===(o=this.renderRoot)||void 0===o?void 0:o.querySelector(r),s=null!=i?e(i,n):[];return t?s.filter((o=>o.matches(t))):s},enumerable:!0,configurable:!0})})}export{l as queryAssignedElements};\n//# sourceMappingURL=query-assigned-elements.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}export{i as Directive,t as PartType,e as directive};\n//# sourceMappingURL=directive.js.map\n","import{noChange as t}from\"../lit-html.js\";import{directive as i,Directive as s,PartType as r}from\"../directive.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o=i(class extends s{constructor(t){var i;if(super(t),t.type!==r.ATTRIBUTE||\"class\"!==t.name||(null===(i=t.strings)||void 0===i?void 0:i.length)>2)throw Error(\"`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.\")}render(t){return\" \"+Object.keys(t).filter((i=>t[i])).join(\" \")+\" \"}update(i,[s]){var r,o;if(void 0===this.it){this.it=new Set,void 0!==i.strings&&(this.nt=new Set(i.strings.join(\" \").split(/\\s/).filter((t=>\"\"!==t))));for(const t in s)s[t]&&!(null===(r=this.nt)||void 0===r?void 0:r.has(t))&&this.it.add(t);return this.render(s)}const e=i.element.classList;this.it.forEach((t=>{t in s||(e.remove(t),this.it.delete(t))}));for(const t in s){const i=!!s[t];i===this.it.has(t)||(null===(o=this.nt)||void 0===o?void 0:o.has(t))||(i?(e.add(t),this.it.add(t)):(e.remove(t),this.it.delete(t)))}return t}});export{o as classMap};\n//# sourceMappingURL=class-map.js.map\n","function addUniqueItem(array, item) {\n array.indexOf(item) === -1 && array.push(item);\n}\nfunction removeItem(arr, item) {\n const index = arr.indexOf(item);\n index > -1 && arr.splice(index, 1);\n}\n\nexport { addUniqueItem, removeItem };\n","const clamp = (min, max, v) => Math.min(Math.max(v, min), max);\n\nexport { clamp };\n","const defaults = {\n duration: 0.3,\n delay: 0,\n endDelay: 0,\n repeat: 0,\n easing: \"ease\",\n};\n\nexport { defaults };\n","const isNumber = (value) => typeof value === \"number\";\n\nexport { isNumber };\n","import { isNumber } from './is-number.es.js';\n\nconst isEasingList = (easing) => Array.isArray(easing) && !isNumber(easing[0]);\n\nexport { isEasingList };\n","const wrap = (min, max, v) => {\n const rangeSize = max - min;\n return ((((v - min) % rangeSize) + rangeSize) % rangeSize) + min;\n};\n\nexport { wrap };\n","import { isEasingList } from './is-easing-list.es.js';\nimport { wrap } from './wrap.es.js';\n\nfunction getEasingForSegment(easing, i) {\n return isEasingList(easing) ? easing[wrap(0, easing.length, i)] : easing;\n}\n\nexport { getEasingForSegment };\n","const mix = (min, max, progress) => -progress * min + progress * max + min;\n\nexport { mix };\n","const noop = () => { };\nconst noopReturn = (v) => v;\n\nexport { noop, noopReturn };\n","const progress = (min, max, value) => max - min === 0 ? 1 : (value - min) / (max - min);\n\nexport { progress };\n","import { mix } from './mix.es.js';\nimport { progress } from './progress.es.js';\n\nfunction fillOffset(offset, remaining) {\n const min = offset[offset.length - 1];\n for (let i = 1; i <= remaining; i++) {\n const offsetProgress = progress(0, remaining, i);\n offset.push(mix(min, 1, offsetProgress));\n }\n}\nfunction defaultOffset(length) {\n const offset = [0];\n fillOffset(offset, length - 1);\n return offset;\n}\n\nexport { defaultOffset, fillOffset };\n","import { mix } from './mix.es.js';\nimport { noopReturn } from './noop.es.js';\nimport { fillOffset, defaultOffset } from './offset.es.js';\nimport { progress } from './progress.es.js';\nimport { getEasingForSegment } from './easing.es.js';\nimport { clamp } from './clamp.es.js';\n\nfunction interpolate(output, input = defaultOffset(output.length), easing = noopReturn) {\n const length = output.length;\n /**\n * If the input length is lower than the output we\n * fill the input to match. This currently assumes the input\n * is an animation progress value so is a good candidate for\n * moving outside the function.\n */\n const remainder = length - input.length;\n remainder > 0 && fillOffset(input, remainder);\n return (t) => {\n let i = 0;\n for (; i < length - 2; i++) {\n if (t < input[i + 1])\n break;\n }\n let progressInRange = clamp(0, 1, progress(input[i], input[i + 1], t));\n const segmentEasing = getEasingForSegment(easing, i);\n progressInRange = segmentEasing(progressInRange);\n return mix(output[i], output[i + 1], progressInRange);\n };\n}\n\nexport { interpolate };\n","import { isNumber } from './is-number.es.js';\n\nconst isCubicBezier = (easing) => Array.isArray(easing) && isNumber(easing[0]);\n\nexport { isCubicBezier };\n","const isEasingGenerator = (easing) => typeof easing === \"object\" &&\n Boolean(easing.createAnimation);\n\nexport { isEasingGenerator };\n","const isFunction = (value) => typeof value === \"function\";\n\nexport { isFunction };\n","const isString = (value) => typeof value === \"string\";\n\nexport { isString };\n","const time = {\n ms: (seconds) => seconds * 1000,\n s: (milliseconds) => milliseconds / 1000,\n};\n\nexport { time };\n","import { noopReturn } from '@motionone/utils';\n\n/*\n Bezier function generator\n\n This has been modified from Gaëtan Renaudeau's BezierEasing\n https://github.com/gre/bezier-easing/blob/master/src/index.js\n https://github.com/gre/bezier-easing/blob/master/LICENSE\n \n I've removed the newtonRaphsonIterate algo because in benchmarking it\n wasn't noticiably faster than binarySubdivision, indeed removing it\n usually improved times, depending on the curve.\n\n I also removed the lookup table, as for the added bundle size and loop we're\n only cutting ~4 or so subdivision iterations. I bumped the max iterations up\n to 12 to compensate and this still tended to be faster for no perceivable\n loss in accuracy.\n\n Usage\n const easeOut = cubicBezier(.17,.67,.83,.67);\n const x = easeOut(0.5); // returns 0.627...\n*/\n// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\nconst calcBezier = (t, a1, a2) => (((1.0 - 3.0 * a2 + 3.0 * a1) * t + (3.0 * a2 - 6.0 * a1)) * t + 3.0 * a1) * t;\nconst subdivisionPrecision = 0.0000001;\nconst subdivisionMaxIterations = 12;\nfunction binarySubdivide(x, lowerBound, upperBound, mX1, mX2) {\n let currentX;\n let currentT;\n let i = 0;\n do {\n currentT = lowerBound + (upperBound - lowerBound) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - x;\n if (currentX > 0.0) {\n upperBound = currentT;\n }\n else {\n lowerBound = currentT;\n }\n } while (Math.abs(currentX) > subdivisionPrecision &&\n ++i < subdivisionMaxIterations);\n return currentT;\n}\nfunction cubicBezier(mX1, mY1, mX2, mY2) {\n // If this is a linear gradient, return linear easing\n if (mX1 === mY1 && mX2 === mY2)\n return noopReturn;\n const getTForX = (aX) => binarySubdivide(aX, 0, 1, mX1, mX2);\n // If animation is at start/end, return t without easing\n return (t) => t === 0 || t === 1 ? t : calcBezier(getTForX(t), mY1, mY2);\n}\n\nexport { cubicBezier };\n","import { clamp } from '@motionone/utils';\n\nconst steps = (steps, direction = \"end\") => (progress) => {\n progress =\n direction === \"end\"\n ? Math.min(progress, 0.999)\n : Math.max(progress, 0.001);\n const expanded = progress * steps;\n const rounded = direction === \"end\" ? Math.floor(expanded) : Math.ceil(expanded);\n return clamp(0, 1, rounded / steps);\n};\n\nexport { steps };\n","import { cubicBezier, steps } from '@motionone/easing';\nimport { isFunction, isCubicBezier, noopReturn } from '@motionone/utils';\n\nconst namedEasings = {\n ease: cubicBezier(0.25, 0.1, 0.25, 1.0),\n \"ease-in\": cubicBezier(0.42, 0.0, 1.0, 1.0),\n \"ease-in-out\": cubicBezier(0.42, 0.0, 0.58, 1.0),\n \"ease-out\": cubicBezier(0.0, 0.0, 0.58, 1.0),\n};\nconst functionArgsRegex = /\\((.*?)\\)/;\nfunction getEasingFunction(definition) {\n // If already an easing function, return\n if (isFunction(definition))\n return definition;\n // If an easing curve definition, return bezier function\n if (isCubicBezier(definition))\n return cubicBezier(...definition);\n // If we have a predefined easing function, return\n const namedEasing = namedEasings[definition];\n if (namedEasing)\n return namedEasing;\n // If this is a steps function, attempt to create easing curve\n if (definition.startsWith(\"steps\")) {\n const args = functionArgsRegex.exec(definition);\n if (args) {\n const argsArray = args[1].split(\",\");\n return steps(parseFloat(argsArray[0]), argsArray[1].trim());\n }\n }\n return noopReturn;\n}\n\nexport { getEasingFunction };\n","import { noopReturn, defaults, isEasingGenerator, isEasingList, interpolate } from '@motionone/utils';\nimport { getEasingFunction } from './utils/easing.es.js';\n\nclass Animation {\n constructor(output, keyframes = [0, 1], { easing, duration: initialDuration = defaults.duration, delay = defaults.delay, endDelay = defaults.endDelay, repeat = defaults.repeat, offset, direction = \"normal\", autoplay = true, } = {}) {\n this.startTime = null;\n this.rate = 1;\n this.t = 0;\n this.cancelTimestamp = null;\n this.easing = noopReturn;\n this.duration = 0;\n this.totalDuration = 0;\n this.repeat = 0;\n this.playState = \"idle\";\n this.finished = new Promise((resolve, reject) => {\n this.resolve = resolve;\n this.reject = reject;\n });\n easing = easing || defaults.easing;\n if (isEasingGenerator(easing)) {\n const custom = easing.createAnimation(keyframes);\n easing = custom.easing;\n keyframes = custom.keyframes || keyframes;\n initialDuration = custom.duration || initialDuration;\n }\n this.repeat = repeat;\n this.easing = isEasingList(easing) ? noopReturn : getEasingFunction(easing);\n this.updateDuration(initialDuration);\n const interpolate$1 = interpolate(keyframes, offset, isEasingList(easing) ? easing.map(getEasingFunction) : noopReturn);\n this.tick = (timestamp) => {\n var _a;\n // TODO: Temporary fix for OptionsResolver typing\n delay = delay;\n let t = 0;\n if (this.pauseTime !== undefined) {\n t = this.pauseTime;\n }\n else {\n t = (timestamp - this.startTime) * this.rate;\n }\n this.t = t;\n // Convert to seconds\n t /= 1000;\n // Rebase on delay\n t = Math.max(t - delay, 0);\n /**\n * If this animation has finished, set the current time\n * to the total duration.\n */\n if (this.playState === \"finished\" && this.pauseTime === undefined) {\n t = this.totalDuration;\n }\n /**\n * Get the current progress (0-1) of the animation. If t is >\n * than duration we'll get values like 2.5 (midway through the\n * third iteration)\n */\n const progress = t / this.duration;\n // TODO progress += iterationStart\n /**\n * Get the current iteration (0 indexed). For instance the floor of\n * 2.5 is 2.\n */\n let currentIteration = Math.floor(progress);\n /**\n * Get the current progress of the iteration by taking the remainder\n * so 2.5 is 0.5 through iteration 2\n */\n let iterationProgress = progress % 1.0;\n if (!iterationProgress && progress >= 1) {\n iterationProgress = 1;\n }\n /**\n * If iteration progress is 1 we count that as the end\n * of the previous iteration.\n */\n iterationProgress === 1 && currentIteration--;\n /**\n * Reverse progress if we're not running in \"normal\" direction\n */\n const iterationIsOdd = currentIteration % 2;\n if (direction === \"reverse\" ||\n (direction === \"alternate\" && iterationIsOdd) ||\n (direction === \"alternate-reverse\" && !iterationIsOdd)) {\n iterationProgress = 1 - iterationProgress;\n }\n const p = t >= this.totalDuration ? 1 : Math.min(iterationProgress, 1);\n const latest = interpolate$1(this.easing(p));\n output(latest);\n const isAnimationFinished = this.pauseTime === undefined &&\n (this.playState === \"finished\" || t >= this.totalDuration + endDelay);\n if (isAnimationFinished) {\n this.playState = \"finished\";\n (_a = this.resolve) === null || _a === void 0 ? void 0 : _a.call(this, latest);\n }\n else if (this.playState !== \"idle\") {\n this.frameRequestId = requestAnimationFrame(this.tick);\n }\n };\n if (autoplay)\n this.play();\n }\n play() {\n const now = performance.now();\n this.playState = \"running\";\n if (this.pauseTime !== undefined) {\n this.startTime = now - this.pauseTime;\n }\n else if (!this.startTime) {\n this.startTime = now;\n }\n this.cancelTimestamp = this.startTime;\n this.pauseTime = undefined;\n this.frameRequestId = requestAnimationFrame(this.tick);\n }\n pause() {\n this.playState = \"paused\";\n this.pauseTime = this.t;\n }\n finish() {\n this.playState = \"finished\";\n this.tick(0);\n }\n stop() {\n var _a;\n this.playState = \"idle\";\n if (this.frameRequestId !== undefined) {\n cancelAnimationFrame(this.frameRequestId);\n }\n (_a = this.reject) === null || _a === void 0 ? void 0 : _a.call(this, false);\n }\n cancel() {\n this.stop();\n this.tick(this.cancelTimestamp);\n }\n reverse() {\n this.rate *= -1;\n }\n commitStyles() { }\n updateDuration(duration) {\n this.duration = duration;\n this.totalDuration = duration * (this.repeat + 1);\n }\n get currentTime() {\n return this.t;\n }\n set currentTime(t) {\n if (this.pauseTime !== undefined || this.rate === 0) {\n this.pauseTime = t;\n }\n else {\n this.startTime = performance.now() - t / this.rate;\n }\n }\n get playbackRate() {\n return this.rate;\n }\n set playbackRate(rate) {\n this.rate = rate;\n }\n}\n\nexport { Animation };\n","var warning = function () { };\r\nvar invariant = function () { };\r\nif (process.env.NODE_ENV !== 'production') {\r\n warning = function (check, message) {\r\n if (!check && typeof console !== 'undefined') {\r\n console.warn(message);\r\n }\r\n };\r\n invariant = function (check, message) {\r\n if (!check) {\r\n throw new Error(message);\r\n }\r\n };\r\n}\n\nexport { invariant, warning };\n","/**\n * The MotionValue tracks the state of a single animatable\n * value. Currently, updatedAt and current are unused. The\n * long term idea is to use this to minimise the number\n * of DOM reads, and to abstract the DOM interactions here.\n */\nclass MotionValue {\n setAnimation(animation) {\n this.animation = animation;\n animation === null || animation === void 0 ? void 0 : animation.finished.then(() => this.clearAnimation()).catch(() => { });\n }\n clearAnimation() {\n this.animation = this.generator = undefined;\n }\n}\n\nexport { MotionValue };\n","import { MotionValue } from '@motionone/types';\n\nconst data = new WeakMap();\nfunction getAnimationData(element) {\n if (!data.has(element)) {\n data.set(element, {\n transforms: [],\n values: new Map(),\n });\n }\n return data.get(element);\n}\nfunction getMotionValue(motionValues, name) {\n if (!motionValues.has(name)) {\n motionValues.set(name, new MotionValue());\n }\n return motionValues.get(name);\n}\n\nexport { getAnimationData, getMotionValue };\n","import { noopReturn, addUniqueItem } from '@motionone/utils';\nimport { getAnimationData } from '../data.es.js';\n\n/**\n * A list of all transformable axes. We'll use this list to generated a version\n * of each axes for each transform.\n */\nconst axes = [\"\", \"X\", \"Y\", \"Z\"];\n/**\n * An ordered array of each transformable value. By default, transform values\n * will be sorted to this order.\n */\nconst order = [\"translate\", \"scale\", \"rotate\", \"skew\"];\nconst transformAlias = {\n x: \"translateX\",\n y: \"translateY\",\n z: \"translateZ\",\n};\nconst rotation = {\n syntax: \"\",\n initialValue: \"0deg\",\n toDefaultUnit: (v) => v + \"deg\",\n};\nconst baseTransformProperties = {\n translate: {\n syntax: \"\",\n initialValue: \"0px\",\n toDefaultUnit: (v) => v + \"px\",\n },\n rotate: rotation,\n scale: {\n syntax: \"\",\n initialValue: 1,\n toDefaultUnit: noopReturn,\n },\n skew: rotation,\n};\nconst transformDefinitions = new Map();\nconst asTransformCssVar = (name) => `--motion-${name}`;\n/**\n * Generate a list of every possible transform key\n */\nconst transforms = [\"x\", \"y\", \"z\"];\norder.forEach((name) => {\n axes.forEach((axis) => {\n transforms.push(name + axis);\n transformDefinitions.set(asTransformCssVar(name + axis), baseTransformProperties[name]);\n });\n});\n/**\n * A function to use with Array.sort to sort transform keys by their default order.\n */\nconst compareTransformOrder = (a, b) => transforms.indexOf(a) - transforms.indexOf(b);\n/**\n * Provide a quick way to check if a string is the name of a transform\n */\nconst transformLookup = new Set(transforms);\nconst isTransform = (name) => transformLookup.has(name);\nconst addTransformToElement = (element, name) => {\n // Map x to translateX etc\n if (transformAlias[name])\n name = transformAlias[name];\n const { transforms } = getAnimationData(element);\n addUniqueItem(transforms, name);\n /**\n * TODO: An optimisation here could be to cache the transform in element data\n * and only update if this has changed.\n */\n element.style.transform = buildTransformTemplate(transforms);\n};\nconst buildTransformTemplate = (transforms) => transforms\n .sort(compareTransformOrder)\n .reduce(transformListToString, \"\")\n .trim();\nconst transformListToString = (template, name) => `${template} ${name}(var(${asTransformCssVar(name)}))`;\n\nexport { addTransformToElement, asTransformCssVar, axes, buildTransformTemplate, compareTransformOrder, isTransform, transformAlias, transformDefinitions };\n","import { transformDefinitions } from './transforms.es.js';\n\nconst isCssVar = (name) => name.startsWith(\"--\");\nconst registeredProperties = new Set();\nfunction registerCssVariable(name) {\n if (registeredProperties.has(name))\n return;\n registeredProperties.add(name);\n try {\n const { syntax, initialValue } = transformDefinitions.has(name)\n ? transformDefinitions.get(name)\n : {};\n CSS.registerProperty({\n name,\n inherits: false,\n syntax,\n initialValue,\n });\n }\n catch (e) { }\n}\n\nexport { isCssVar, registerCssVariable, registeredProperties };\n","const testAnimation = (keyframes, options) => document.createElement(\"div\").animate(keyframes, options);\nconst featureTests = {\n cssRegisterProperty: () => typeof CSS !== \"undefined\" &&\n Object.hasOwnProperty.call(CSS, \"registerProperty\"),\n waapi: () => Object.hasOwnProperty.call(Element.prototype, \"animate\"),\n partialKeyframes: () => {\n try {\n testAnimation({ opacity: [1] });\n }\n catch (e) {\n return false;\n }\n return true;\n },\n finished: () => Boolean(testAnimation({ opacity: [0, 1] }, { duration: 0.001 }).finished),\n linearEasing: () => {\n try {\n testAnimation({ opacity: 0 }, { easing: \"linear(0, 1)\" });\n }\n catch (e) {\n return false;\n }\n return true;\n },\n};\nconst results = {};\nconst supports = {};\nfor (const key in featureTests) {\n supports[key] = () => {\n if (results[key] === undefined)\n results[key] =\n featureTests[key]();\n return results[key];\n };\n}\n\nexport { supports };\n","import { isFunction, defaults, isCubicBezier, progress } from '@motionone/utils';\nimport { supports } from './feature-detection.es.js';\n\n// Create a linear easing point for every x second\nconst resolution = 0.015;\nconst generateLinearEasingPoints = (easing, duration) => {\n let points = \"\";\n const numPoints = Math.round(duration / resolution);\n for (let i = 0; i < numPoints; i++) {\n points += easing(progress(0, numPoints - 1, i)) + \", \";\n }\n return points.substring(0, points.length - 2);\n};\nconst convertEasing = (easing, duration) => {\n if (isFunction(easing)) {\n return supports.linearEasing()\n ? `linear(${generateLinearEasingPoints(easing, duration)})`\n : defaults.easing;\n }\n else {\n return isCubicBezier(easing) ? cubicBezierAsString(easing) : easing;\n }\n};\nconst cubicBezierAsString = ([a, b, c, d]) => `cubic-bezier(${a}, ${b}, ${c}, ${d})`;\n\nexport { convertEasing, cubicBezierAsString, generateLinearEasingPoints };\n","function hydrateKeyframes(keyframes, readInitialValue) {\n for (let i = 0; i < keyframes.length; i++) {\n if (keyframes[i] === null) {\n keyframes[i] = i ? keyframes[i - 1] : readInitialValue();\n }\n }\n return keyframes;\n}\nconst keyframesList = (keyframes) => Array.isArray(keyframes) ? keyframes : [keyframes];\n\nexport { hydrateKeyframes, keyframesList };\n","import { isTransform, asTransformCssVar, transformAlias } from './transforms.es.js';\n\nfunction getStyleName(key) {\n if (transformAlias[key])\n key = transformAlias[key];\n return isTransform(key) ? asTransformCssVar(key) : key;\n}\n\nexport { getStyleName };\n","import { isCssVar } from './utils/css-var.es.js';\nimport { getStyleName } from './utils/get-style-name.es.js';\nimport { transformDefinitions } from './utils/transforms.es.js';\n\nconst style = {\n get: (element, name) => {\n name = getStyleName(name);\n let value = isCssVar(name)\n ? element.style.getPropertyValue(name)\n : getComputedStyle(element)[name];\n // TODO Decide if value can be 0\n if (!value && value !== 0) {\n const definition = transformDefinitions.get(name);\n if (definition)\n value = definition.initialValue;\n }\n return value;\n },\n set: (element, name, value) => {\n name = getStyleName(name);\n if (isCssVar(name)) {\n element.style.setProperty(name, value);\n }\n else {\n element.style[name] = value;\n }\n },\n};\n\nexport { style };\n","function stopAnimation(animation, needsCommit = true) {\n if (!animation || animation.playState === \"finished\")\n return;\n // Suppress error thrown by WAAPI\n try {\n if (animation.stop) {\n animation.stop();\n }\n else {\n needsCommit && animation.commitStyles();\n animation.cancel();\n }\n }\n catch (e) { }\n}\n\nexport { stopAnimation };\n","import { noopReturn, isString } from '@motionone/utils';\n\nfunction getUnitConverter(keyframes, definition) {\n var _a;\n let toUnit = (definition === null || definition === void 0 ? void 0 : definition.toDefaultUnit) || noopReturn;\n const finalKeyframe = keyframes[keyframes.length - 1];\n if (isString(finalKeyframe)) {\n const unit = ((_a = finalKeyframe.match(/(-?[\\d.]+)([a-z%]*)/)) === null || _a === void 0 ? void 0 : _a[2]) || \"\";\n if (unit)\n toUnit = (value) => value + unit;\n }\n return toUnit;\n}\n\nexport { getUnitConverter };\n","import { getAnimationData, getMotionValue } from './data.es.js';\nimport { isCssVar, registerCssVariable } from './utils/css-var.es.js';\nimport { defaults, isEasingGenerator, isFunction, isEasingList, isNumber, time, noop } from '@motionone/utils';\nimport { isTransform, addTransformToElement, transformDefinitions } from './utils/transforms.es.js';\nimport { convertEasing } from './utils/easing.es.js';\nimport { supports } from './utils/feature-detection.es.js';\nimport { hydrateKeyframes, keyframesList } from './utils/keyframes.es.js';\nimport { style } from './style.es.js';\nimport { getStyleName } from './utils/get-style-name.es.js';\nimport { stopAnimation } from './utils/stop-animation.es.js';\nimport { getUnitConverter } from './utils/get-unit.es.js';\n\nfunction getDevToolsRecord() {\n return window.__MOTION_DEV_TOOLS_RECORD;\n}\nfunction animateStyle(element, key, keyframesDefinition, options = {}, AnimationPolyfill) {\n const record = getDevToolsRecord();\n const isRecording = options.record !== false && record;\n let animation;\n let { duration = defaults.duration, delay = defaults.delay, endDelay = defaults.endDelay, repeat = defaults.repeat, easing = defaults.easing, persist = false, direction, offset, allowWebkitAcceleration = false, autoplay = true, } = options;\n const data = getAnimationData(element);\n const valueIsTransform = isTransform(key);\n let canAnimateNatively = supports.waapi();\n /**\n * If this is an individual transform, we need to map its\n * key to a CSS variable and update the element's transform style\n */\n valueIsTransform && addTransformToElement(element, key);\n const name = getStyleName(key);\n const motionValue = getMotionValue(data.values, name);\n /**\n * Get definition of value, this will be used to convert numerical\n * keyframes into the default value type.\n */\n const definition = transformDefinitions.get(name);\n /**\n * Stop the current animation, if any. Because this will trigger\n * commitStyles (DOM writes) and we might later trigger DOM reads,\n * this is fired now and we return a factory function to create\n * the actual animation that can get called in batch,\n */\n stopAnimation(motionValue.animation, !(isEasingGenerator(easing) && motionValue.generator) &&\n options.record !== false);\n /**\n * Batchable factory function containing all DOM reads.\n */\n return () => {\n const readInitialValue = () => { var _a, _b; return (_b = (_a = style.get(element, name)) !== null && _a !== void 0 ? _a : definition === null || definition === void 0 ? void 0 : definition.initialValue) !== null && _b !== void 0 ? _b : 0; };\n /**\n * Replace null values with the previous keyframe value, or read\n * it from the DOM if it's the first keyframe.\n */\n let keyframes = hydrateKeyframes(keyframesList(keyframesDefinition), readInitialValue);\n /**\n * Detect unit type of keyframes.\n */\n const toUnit = getUnitConverter(keyframes, definition);\n if (isEasingGenerator(easing)) {\n const custom = easing.createAnimation(keyframes, key !== \"opacity\", readInitialValue, name, motionValue);\n easing = custom.easing;\n keyframes = custom.keyframes || keyframes;\n duration = custom.duration || duration;\n }\n /**\n * If this is a CSS variable we need to register it with the browser\n * before it can be animated natively. We also set it with setProperty\n * rather than directly onto the element.style object.\n */\n if (isCssVar(name)) {\n if (supports.cssRegisterProperty()) {\n registerCssVariable(name);\n }\n else {\n canAnimateNatively = false;\n }\n }\n /**\n * If we've been passed a custom easing function, and this browser\n * does **not** support linear() easing, and the value is a transform\n * (and thus a pure number) we can still support the custom easing\n * by falling back to the animation polyfill.\n */\n if (valueIsTransform &&\n !supports.linearEasing() &&\n (isFunction(easing) || (isEasingList(easing) && easing.some(isFunction)))) {\n canAnimateNatively = false;\n }\n /**\n * If we can animate this value with WAAPI, do so.\n */\n if (canAnimateNatively) {\n /**\n * Convert numbers to default value types. Currently this only supports\n * transforms but it could also support other value types.\n */\n if (definition) {\n keyframes = keyframes.map((value) => isNumber(value) ? definition.toDefaultUnit(value) : value);\n }\n /**\n * If this browser doesn't support partial/implicit keyframes we need to\n * explicitly provide one.\n */\n if (keyframes.length === 1 &&\n (!supports.partialKeyframes() || isRecording)) {\n keyframes.unshift(readInitialValue());\n }\n const animationOptions = {\n delay: time.ms(delay),\n duration: time.ms(duration),\n endDelay: time.ms(endDelay),\n easing: !isEasingList(easing)\n ? convertEasing(easing, duration)\n : undefined,\n direction,\n iterations: repeat + 1,\n fill: \"both\",\n };\n animation = element.animate({\n [name]: keyframes,\n offset,\n easing: isEasingList(easing)\n ? easing.map((thisEasing) => convertEasing(thisEasing, duration))\n : undefined,\n }, animationOptions);\n /**\n * Polyfill finished Promise in browsers that don't support it\n */\n if (!animation.finished) {\n animation.finished = new Promise((resolve, reject) => {\n animation.onfinish = resolve;\n animation.oncancel = reject;\n });\n }\n const target = keyframes[keyframes.length - 1];\n animation.finished\n .then(() => {\n if (persist)\n return;\n // Apply styles to target\n style.set(element, name, target);\n // Ensure fill modes don't persist\n animation.cancel();\n })\n .catch(noop);\n /**\n * This forces Webkit to run animations on the main thread by exploiting\n * this condition:\n * https://trac.webkit.org/browser/webkit/trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp?rev=281238#L1099\n *\n * This fixes Webkit's timing bugs, like accelerated animations falling\n * out of sync with main thread animations and massive delays in starting\n * accelerated animations in WKWebView.\n */\n if (!allowWebkitAcceleration)\n animation.playbackRate = 1.000001;\n /**\n * If we can't animate the value natively then we can fallback to the numbers-only\n * polyfill for transforms.\n */\n }\n else if (AnimationPolyfill && valueIsTransform) {\n /**\n * If any keyframe is a string (because we measured it from the DOM), we need to convert\n * it into a number before passing to the Animation polyfill.\n */\n keyframes = keyframes.map((value) => typeof value === \"string\" ? parseFloat(value) : value);\n /**\n * If we only have a single keyframe, we need to create an initial keyframe by reading\n * the current value from the DOM.\n */\n if (keyframes.length === 1) {\n keyframes.unshift(parseFloat(readInitialValue()));\n }\n animation = new AnimationPolyfill((latest) => {\n style.set(element, name, toUnit ? toUnit(latest) : latest);\n }, keyframes, Object.assign(Object.assign({}, options), { duration,\n easing }));\n }\n else {\n const target = keyframes[keyframes.length - 1];\n style.set(element, name, definition && isNumber(target)\n ? definition.toDefaultUnit(target)\n : target);\n }\n if (isRecording) {\n record(element, key, keyframes, {\n duration,\n delay: delay,\n easing,\n repeat,\n offset,\n }, \"motion-one\");\n }\n motionValue.setAnimation(animation);\n if (animation && !autoplay)\n animation.pause();\n return animation;\n };\n}\n\nexport { animateStyle };\n","const getOptions = (options, key) => \n/**\n * TODO: Make test for this\n * Always return a new object otherwise delay is overwritten by results of stagger\n * and this results in no stagger\n */\noptions[key] ? Object.assign(Object.assign({}, options), options[key]) : Object.assign({}, options);\n\nexport { getOptions };\n","function resolveElements(elements, selectorCache) {\n var _a;\n if (typeof elements === \"string\") {\n if (selectorCache) {\n (_a = selectorCache[elements]) !== null && _a !== void 0 ? _a : (selectorCache[elements] = document.querySelectorAll(elements));\n elements = selectorCache[elements];\n }\n else {\n elements = document.querySelectorAll(elements);\n }\n }\n else if (elements instanceof Element) {\n elements = [elements];\n }\n /**\n * Return an empty array\n */\n return Array.from(elements || []);\n}\n\nexport { resolveElements };\n","import { defaults, noop, time } from '@motionone/utils';\nimport { stopAnimation } from './stop-animation.es.js';\n\nconst createAnimation = (factory) => factory();\nconst withControls = (animationFactory, options, duration = defaults.duration) => {\n return new Proxy({\n animations: animationFactory.map(createAnimation).filter(Boolean),\n duration,\n options,\n }, controls);\n};\n/**\n * TODO:\n * Currently this returns the first animation, ideally it would return\n * the first active animation.\n */\nconst getActiveAnimation = (state) => state.animations[0];\nconst controls = {\n get: (target, key) => {\n const activeAnimation = getActiveAnimation(target);\n switch (key) {\n case \"duration\":\n return target.duration;\n case \"currentTime\":\n return time.s((activeAnimation === null || activeAnimation === void 0 ? void 0 : activeAnimation[key]) || 0);\n case \"playbackRate\":\n case \"playState\":\n return activeAnimation === null || activeAnimation === void 0 ? void 0 : activeAnimation[key];\n case \"finished\":\n if (!target.finished) {\n target.finished = Promise.all(target.animations.map(selectFinished)).catch(noop);\n }\n return target.finished;\n case \"stop\":\n return () => {\n target.animations.forEach((animation) => stopAnimation(animation));\n };\n case \"forEachNative\":\n /**\n * This is for internal use only, fire a callback for each\n * underlying animation.\n */\n return (callback) => {\n target.animations.forEach((animation) => callback(animation, target));\n };\n default:\n return typeof (activeAnimation === null || activeAnimation === void 0 ? void 0 : activeAnimation[key]) ===\n \"undefined\"\n ? undefined\n : () => target.animations.forEach((animation) => animation[key]());\n }\n },\n set: (target, key, value) => {\n switch (key) {\n case \"currentTime\":\n value = time.ms(value);\n // Fall-through\n case \"playbackRate\":\n for (let i = 0; i < target.animations.length; i++) {\n target.animations[i][key] = value;\n }\n return true;\n }\n return false;\n },\n};\nconst selectFinished = (animation) => animation.finished;\n\nexport { controls, withControls };\n","import { isNumber, isFunction } from '@motionone/utils';\nimport { getEasingFunction } from '@motionone/animation';\n\nfunction stagger(duration = 0.1, { start = 0, from = 0, easing } = {}) {\n return (i, total) => {\n const fromIndex = isNumber(from) ? from : getFromIndex(from, total);\n const distance = Math.abs(fromIndex - i);\n let delay = duration * distance;\n if (easing) {\n const maxDelay = total * duration;\n const easingFunction = getEasingFunction(easing);\n delay = easingFunction(delay / maxDelay) * maxDelay;\n }\n return start + delay;\n };\n}\nfunction getFromIndex(from, total) {\n if (from === \"first\") {\n return 0;\n }\n else {\n const lastIndex = total - 1;\n return from === \"last\" ? lastIndex : lastIndex / 2;\n }\n}\nfunction resolveOption(option, i, total) {\n return isFunction(option) ? option(i, total) : option;\n}\n\nexport { getFromIndex, resolveOption, stagger };\n","import { invariant } from 'hey-listen';\nimport { animateStyle } from './animate-style.es.js';\nimport { getOptions } from './utils/options.es.js';\nimport { resolveElements } from '../utils/resolve-elements.es.js';\nimport { withControls } from './utils/controls.es.js';\nimport { resolveOption } from '../utils/stagger.es.js';\n\nfunction createAnimate(AnimatePolyfill) {\n return function animate(elements, keyframes, options = {}) {\n elements = resolveElements(elements);\n const numElements = elements.length;\n invariant(Boolean(numElements), \"No valid element provided.\");\n invariant(Boolean(keyframes), \"No keyframes defined.\");\n /**\n * Create and start new animations\n */\n const animationFactories = [];\n for (let i = 0; i < numElements; i++) {\n const element = elements[i];\n for (const key in keyframes) {\n const valueOptions = getOptions(options, key);\n valueOptions.delay = resolveOption(valueOptions.delay, i, numElements);\n const animation = animateStyle(element, key, keyframes[key], valueOptions, AnimatePolyfill);\n animationFactories.push(animation);\n }\n }\n return withControls(animationFactories, options, \n /**\n * TODO:\n * If easing is set to spring or glide, duration will be dynamically\n * generated. Ideally we would dynamically generate this from\n * animation.effect.getComputedTiming().duration but this isn't\n * supported in iOS13 or our number polyfill. Perhaps it's possible\n * to Proxy animations returned from animateStyle that has duration\n * as a getter.\n */\n options.duration);\n };\n}\n\nexport { createAnimate };\n","import { Animation } from '@motionone/animation';\nimport { createAnimate } from './create-animate.es.js';\n\nconst animate = createAnimate(Animation);\n\nexport { animate };\n","import { animate as animate$1, withControls } from '@motionone/dom';\nimport { isFunction } from '@motionone/utils';\nimport { Animation } from '@motionone/animation';\n\nfunction animateProgress(target, options = {}) {\n return withControls([\n () => {\n const animation = new Animation(target, [0, 1], options);\n animation.finished.catch(() => { });\n return animation;\n },\n ], options, options.duration);\n}\nfunction animate(target, keyframesOrOptions, options) {\n const factory = isFunction(target) ? animateProgress : animate$1;\n return factory(target, keyframesOrOptions, options);\n}\n\nexport { animate, animateProgress };\n","import{nothing as t}from\"../lit-html.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const l=l=>null!=l?l:t;export{l as ifDefined};\n//# sourceMappingURL=if-defined.js.map\n","// can-promise has a crash in some versions of react native that dont have\n// standard global objects\n// https://github.com/soldair/node-qrcode/issues/157\n\nmodule.exports = function () {\n return typeof Promise === 'function' && Promise.prototype && Promise.prototype.then\n}\n","let toSJISFunction\nconst CODEWORDS_COUNT = [\n 0, // Not used\n 26, 44, 70, 100, 134, 172, 196, 242, 292, 346,\n 404, 466, 532, 581, 655, 733, 815, 901, 991, 1085,\n 1156, 1258, 1364, 1474, 1588, 1706, 1828, 1921, 2051, 2185,\n 2323, 2465, 2611, 2761, 2876, 3034, 3196, 3362, 3532, 3706\n]\n\n/**\n * Returns the QR Code size for the specified version\n *\n * @param {Number} version QR Code version\n * @return {Number} size of QR code\n */\nexports.getSymbolSize = function getSymbolSize (version) {\n if (!version) throw new Error('\"version\" cannot be null or undefined')\n if (version < 1 || version > 40) throw new Error('\"version\" should be in range from 1 to 40')\n return version * 4 + 17\n}\n\n/**\n * Returns the total number of codewords used to store data and EC information.\n *\n * @param {Number} version QR Code version\n * @return {Number} Data length in bits\n */\nexports.getSymbolTotalCodewords = function getSymbolTotalCodewords (version) {\n return CODEWORDS_COUNT[version]\n}\n\n/**\n * Encode data with Bose-Chaudhuri-Hocquenghem\n *\n * @param {Number} data Value to encode\n * @return {Number} Encoded value\n */\nexports.getBCHDigit = function (data) {\n let digit = 0\n\n while (data !== 0) {\n digit++\n data >>>= 1\n }\n\n return digit\n}\n\nexports.setToSJISFunction = function setToSJISFunction (f) {\n if (typeof f !== 'function') {\n throw new Error('\"toSJISFunc\" is not a valid function.')\n }\n\n toSJISFunction = f\n}\n\nexports.isKanjiModeEnabled = function () {\n return typeof toSJISFunction !== 'undefined'\n}\n\nexports.toSJIS = function toSJIS (kanji) {\n return toSJISFunction(kanji)\n}\n","function BitBuffer () {\n this.buffer = []\n this.length = 0\n}\n\nBitBuffer.prototype = {\n\n get: function (index) {\n const bufIndex = Math.floor(index / 8)\n return ((this.buffer[bufIndex] >>> (7 - index % 8)) & 1) === 1\n },\n\n put: function (num, length) {\n for (let i = 0; i < length; i++) {\n this.putBit(((num >>> (length - i - 1)) & 1) === 1)\n }\n },\n\n getLengthInBits: function () {\n return this.length\n },\n\n putBit: function (bit) {\n const bufIndex = Math.floor(this.length / 8)\n if (this.buffer.length <= bufIndex) {\n this.buffer.push(0)\n }\n\n if (bit) {\n this.buffer[bufIndex] |= (0x80 >>> (this.length % 8))\n }\n\n this.length++\n }\n}\n\nmodule.exports = BitBuffer\n","exports.L = { bit: 1 }\nexports.M = { bit: 0 }\nexports.Q = { bit: 3 }\nexports.H = { bit: 2 }\n\nfunction fromString (string) {\n if (typeof string !== 'string') {\n throw new Error('Param is not a string')\n }\n\n const lcStr = string.toLowerCase()\n\n switch (lcStr) {\n case 'l':\n case 'low':\n return exports.L\n\n case 'm':\n case 'medium':\n return exports.M\n\n case 'q':\n case 'quartile':\n return exports.Q\n\n case 'h':\n case 'high':\n return exports.H\n\n default:\n throw new Error('Unknown EC Level: ' + string)\n }\n}\n\nexports.isValid = function isValid (level) {\n return level && typeof level.bit !== 'undefined' &&\n level.bit >= 0 && level.bit < 4\n}\n\nexports.from = function from (value, defaultValue) {\n if (exports.isValid(value)) {\n return value\n }\n\n try {\n return fromString(value)\n } catch (e) {\n return defaultValue\n }\n}\n","/**\n * Helper class to handle QR Code symbol modules\n *\n * @param {Number} size Symbol size\n */\nfunction BitMatrix (size) {\n if (!size || size < 1) {\n throw new Error('BitMatrix size must be defined and greater than 0')\n }\n\n this.size = size\n this.data = new Uint8Array(size * size)\n this.reservedBit = new Uint8Array(size * size)\n}\n\n/**\n * Set bit value at specified location\n * If reserved flag is set, this bit will be ignored during masking process\n *\n * @param {Number} row\n * @param {Number} col\n * @param {Boolean} value\n * @param {Boolean} reserved\n */\nBitMatrix.prototype.set = function (row, col, value, reserved) {\n const index = row * this.size + col\n this.data[index] = value\n if (reserved) this.reservedBit[index] = true\n}\n\n/**\n * Returns bit value at specified location\n *\n * @param {Number} row\n * @param {Number} col\n * @return {Boolean}\n */\nBitMatrix.prototype.get = function (row, col) {\n return this.data[row * this.size + col]\n}\n\n/**\n * Applies xor operator at specified location\n * (used during masking process)\n *\n * @param {Number} row\n * @param {Number} col\n * @param {Boolean} value\n */\nBitMatrix.prototype.xor = function (row, col, value) {\n this.data[row * this.size + col] ^= value\n}\n\n/**\n * Check if bit at specified location is reserved\n *\n * @param {Number} row\n * @param {Number} col\n * @return {Boolean}\n */\nBitMatrix.prototype.isReserved = function (row, col) {\n return this.reservedBit[row * this.size + col]\n}\n\nmodule.exports = BitMatrix\n","/**\n * Alignment pattern are fixed reference pattern in defined positions\n * in a matrix symbology, which enables the decode software to re-synchronise\n * the coordinate mapping of the image modules in the event of moderate amounts\n * of distortion of the image.\n *\n * Alignment patterns are present only in QR Code symbols of version 2 or larger\n * and their number depends on the symbol version.\n */\n\nconst getSymbolSize = require('./utils').getSymbolSize\n\n/**\n * Calculate the row/column coordinates of the center module of each alignment pattern\n * for the specified QR Code version.\n *\n * The alignment patterns are positioned symmetrically on either side of the diagonal\n * running from the top left corner of the symbol to the bottom right corner.\n *\n * Since positions are simmetrical only half of the coordinates are returned.\n * Each item of the array will represent in turn the x and y coordinate.\n * @see {@link getPositions}\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinate\n */\nexports.getRowColCoords = function getRowColCoords (version) {\n if (version === 1) return []\n\n const posCount = Math.floor(version / 7) + 2\n const size = getSymbolSize(version)\n const intervals = size === 145 ? 26 : Math.ceil((size - 13) / (2 * posCount - 2)) * 2\n const positions = [size - 7] // Last coord is always (size - 7)\n\n for (let i = 1; i < posCount - 1; i++) {\n positions[i] = positions[i - 1] - intervals\n }\n\n positions.push(6) // First coord is always 6\n\n return positions.reverse()\n}\n\n/**\n * Returns an array containing the positions of each alignment pattern.\n * Each array's element represent the center point of the pattern as (x, y) coordinates\n *\n * Coordinates are calculated expanding the row/column coordinates returned by {@link getRowColCoords}\n * and filtering out the items that overlaps with finder pattern\n *\n * @example\n * For a Version 7 symbol {@link getRowColCoords} returns values 6, 22 and 38.\n * The alignment patterns, therefore, are to be centered on (row, column)\n * positions (6,22), (22,6), (22,22), (22,38), (38,22), (38,38).\n * Note that the coordinates (6,6), (6,38), (38,6) are occupied by finder patterns\n * and are not therefore used for alignment patterns.\n *\n * let pos = getPositions(7)\n * // [[6,22], [22,6], [22,22], [22,38], [38,22], [38,38]]\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinates\n */\nexports.getPositions = function getPositions (version) {\n const coords = []\n const pos = exports.getRowColCoords(version)\n const posLength = pos.length\n\n for (let i = 0; i < posLength; i++) {\n for (let j = 0; j < posLength; j++) {\n // Skip if position is occupied by finder patterns\n if ((i === 0 && j === 0) || // top-left\n (i === 0 && j === posLength - 1) || // bottom-left\n (i === posLength - 1 && j === 0)) { // top-right\n continue\n }\n\n coords.push([pos[i], pos[j]])\n }\n }\n\n return coords\n}\n","const getSymbolSize = require('./utils').getSymbolSize\nconst FINDER_PATTERN_SIZE = 7\n\n/**\n * Returns an array containing the positions of each finder pattern.\n * Each array's element represent the top-left point of the pattern as (x, y) coordinates\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinates\n */\nexports.getPositions = function getPositions (version) {\n const size = getSymbolSize(version)\n\n return [\n // top-left\n [0, 0],\n // top-right\n [size - FINDER_PATTERN_SIZE, 0],\n // bottom-left\n [0, size - FINDER_PATTERN_SIZE]\n ]\n}\n","/**\n * Data mask pattern reference\n * @type {Object}\n */\nexports.Patterns = {\n PATTERN000: 0,\n PATTERN001: 1,\n PATTERN010: 2,\n PATTERN011: 3,\n PATTERN100: 4,\n PATTERN101: 5,\n PATTERN110: 6,\n PATTERN111: 7\n}\n\n/**\n * Weighted penalty scores for the undesirable features\n * @type {Object}\n */\nconst PenaltyScores = {\n N1: 3,\n N2: 3,\n N3: 40,\n N4: 10\n}\n\n/**\n * Check if mask pattern value is valid\n *\n * @param {Number} mask Mask pattern\n * @return {Boolean} true if valid, false otherwise\n */\nexports.isValid = function isValid (mask) {\n return mask != null && mask !== '' && !isNaN(mask) && mask >= 0 && mask <= 7\n}\n\n/**\n * Returns mask pattern from a value.\n * If value is not valid, returns undefined\n *\n * @param {Number|String} value Mask pattern value\n * @return {Number} Valid mask pattern or undefined\n */\nexports.from = function from (value) {\n return exports.isValid(value) ? parseInt(value, 10) : undefined\n}\n\n/**\n* Find adjacent modules in row/column with the same color\n* and assign a penalty value.\n*\n* Points: N1 + i\n* i is the amount by which the number of adjacent modules of the same color exceeds 5\n*/\nexports.getPenaltyN1 = function getPenaltyN1 (data) {\n const size = data.size\n let points = 0\n let sameCountCol = 0\n let sameCountRow = 0\n let lastCol = null\n let lastRow = null\n\n for (let row = 0; row < size; row++) {\n sameCountCol = sameCountRow = 0\n lastCol = lastRow = null\n\n for (let col = 0; col < size; col++) {\n let module = data.get(row, col)\n if (module === lastCol) {\n sameCountCol++\n } else {\n if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5)\n lastCol = module\n sameCountCol = 1\n }\n\n module = data.get(col, row)\n if (module === lastRow) {\n sameCountRow++\n } else {\n if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5)\n lastRow = module\n sameCountRow = 1\n }\n }\n\n if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5)\n if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5)\n }\n\n return points\n}\n\n/**\n * Find 2x2 blocks with the same color and assign a penalty value\n *\n * Points: N2 * (m - 1) * (n - 1)\n */\nexports.getPenaltyN2 = function getPenaltyN2 (data) {\n const size = data.size\n let points = 0\n\n for (let row = 0; row < size - 1; row++) {\n for (let col = 0; col < size - 1; col++) {\n const last = data.get(row, col) +\n data.get(row, col + 1) +\n data.get(row + 1, col) +\n data.get(row + 1, col + 1)\n\n if (last === 4 || last === 0) points++\n }\n }\n\n return points * PenaltyScores.N2\n}\n\n/**\n * Find 1:1:3:1:1 ratio (dark:light:dark:light:dark) pattern in row/column,\n * preceded or followed by light area 4 modules wide\n *\n * Points: N3 * number of pattern found\n */\nexports.getPenaltyN3 = function getPenaltyN3 (data) {\n const size = data.size\n let points = 0\n let bitsCol = 0\n let bitsRow = 0\n\n for (let row = 0; row < size; row++) {\n bitsCol = bitsRow = 0\n for (let col = 0; col < size; col++) {\n bitsCol = ((bitsCol << 1) & 0x7FF) | data.get(row, col)\n if (col >= 10 && (bitsCol === 0x5D0 || bitsCol === 0x05D)) points++\n\n bitsRow = ((bitsRow << 1) & 0x7FF) | data.get(col, row)\n if (col >= 10 && (bitsRow === 0x5D0 || bitsRow === 0x05D)) points++\n }\n }\n\n return points * PenaltyScores.N3\n}\n\n/**\n * Calculate proportion of dark modules in entire symbol\n *\n * Points: N4 * k\n *\n * k is the rating of the deviation of the proportion of dark modules\n * in the symbol from 50% in steps of 5%\n */\nexports.getPenaltyN4 = function getPenaltyN4 (data) {\n let darkCount = 0\n const modulesCount = data.data.length\n\n for (let i = 0; i < modulesCount; i++) darkCount += data.data[i]\n\n const k = Math.abs(Math.ceil((darkCount * 100 / modulesCount) / 5) - 10)\n\n return k * PenaltyScores.N4\n}\n\n/**\n * Return mask value at given position\n *\n * @param {Number} maskPattern Pattern reference value\n * @param {Number} i Row\n * @param {Number} j Column\n * @return {Boolean} Mask value\n */\nfunction getMaskAt (maskPattern, i, j) {\n switch (maskPattern) {\n case exports.Patterns.PATTERN000: return (i + j) % 2 === 0\n case exports.Patterns.PATTERN001: return i % 2 === 0\n case exports.Patterns.PATTERN010: return j % 3 === 0\n case exports.Patterns.PATTERN011: return (i + j) % 3 === 0\n case exports.Patterns.PATTERN100: return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 === 0\n case exports.Patterns.PATTERN101: return (i * j) % 2 + (i * j) % 3 === 0\n case exports.Patterns.PATTERN110: return ((i * j) % 2 + (i * j) % 3) % 2 === 0\n case exports.Patterns.PATTERN111: return ((i * j) % 3 + (i + j) % 2) % 2 === 0\n\n default: throw new Error('bad maskPattern:' + maskPattern)\n }\n}\n\n/**\n * Apply a mask pattern to a BitMatrix\n *\n * @param {Number} pattern Pattern reference number\n * @param {BitMatrix} data BitMatrix data\n */\nexports.applyMask = function applyMask (pattern, data) {\n const size = data.size\n\n for (let col = 0; col < size; col++) {\n for (let row = 0; row < size; row++) {\n if (data.isReserved(row, col)) continue\n data.xor(row, col, getMaskAt(pattern, row, col))\n }\n }\n}\n\n/**\n * Returns the best mask pattern for data\n *\n * @param {BitMatrix} data\n * @return {Number} Mask pattern reference number\n */\nexports.getBestMask = function getBestMask (data, setupFormatFunc) {\n const numPatterns = Object.keys(exports.Patterns).length\n let bestPattern = 0\n let lowerPenalty = Infinity\n\n for (let p = 0; p < numPatterns; p++) {\n setupFormatFunc(p)\n exports.applyMask(p, data)\n\n // Calculate penalty\n const penalty =\n exports.getPenaltyN1(data) +\n exports.getPenaltyN2(data) +\n exports.getPenaltyN3(data) +\n exports.getPenaltyN4(data)\n\n // Undo previously applied mask\n exports.applyMask(p, data)\n\n if (penalty < lowerPenalty) {\n lowerPenalty = penalty\n bestPattern = p\n }\n }\n\n return bestPattern\n}\n","const ECLevel = require('./error-correction-level')\r\n\r\nconst EC_BLOCKS_TABLE = [\r\n// L M Q H\r\n 1, 1, 1, 1,\r\n 1, 1, 1, 1,\r\n 1, 1, 2, 2,\r\n 1, 2, 2, 4,\r\n 1, 2, 4, 4,\r\n 2, 4, 4, 4,\r\n 2, 4, 6, 5,\r\n 2, 4, 6, 6,\r\n 2, 5, 8, 8,\r\n 4, 5, 8, 8,\r\n 4, 5, 8, 11,\r\n 4, 8, 10, 11,\r\n 4, 9, 12, 16,\r\n 4, 9, 16, 16,\r\n 6, 10, 12, 18,\r\n 6, 10, 17, 16,\r\n 6, 11, 16, 19,\r\n 6, 13, 18, 21,\r\n 7, 14, 21, 25,\r\n 8, 16, 20, 25,\r\n 8, 17, 23, 25,\r\n 9, 17, 23, 34,\r\n 9, 18, 25, 30,\r\n 10, 20, 27, 32,\r\n 12, 21, 29, 35,\r\n 12, 23, 34, 37,\r\n 12, 25, 34, 40,\r\n 13, 26, 35, 42,\r\n 14, 28, 38, 45,\r\n 15, 29, 40, 48,\r\n 16, 31, 43, 51,\r\n 17, 33, 45, 54,\r\n 18, 35, 48, 57,\r\n 19, 37, 51, 60,\r\n 19, 38, 53, 63,\r\n 20, 40, 56, 66,\r\n 21, 43, 59, 70,\r\n 22, 45, 62, 74,\r\n 24, 47, 65, 77,\r\n 25, 49, 68, 81\r\n]\r\n\r\nconst EC_CODEWORDS_TABLE = [\r\n// L M Q H\r\n 7, 10, 13, 17,\r\n 10, 16, 22, 28,\r\n 15, 26, 36, 44,\r\n 20, 36, 52, 64,\r\n 26, 48, 72, 88,\r\n 36, 64, 96, 112,\r\n 40, 72, 108, 130,\r\n 48, 88, 132, 156,\r\n 60, 110, 160, 192,\r\n 72, 130, 192, 224,\r\n 80, 150, 224, 264,\r\n 96, 176, 260, 308,\r\n 104, 198, 288, 352,\r\n 120, 216, 320, 384,\r\n 132, 240, 360, 432,\r\n 144, 280, 408, 480,\r\n 168, 308, 448, 532,\r\n 180, 338, 504, 588,\r\n 196, 364, 546, 650,\r\n 224, 416, 600, 700,\r\n 224, 442, 644, 750,\r\n 252, 476, 690, 816,\r\n 270, 504, 750, 900,\r\n 300, 560, 810, 960,\r\n 312, 588, 870, 1050,\r\n 336, 644, 952, 1110,\r\n 360, 700, 1020, 1200,\r\n 390, 728, 1050, 1260,\r\n 420, 784, 1140, 1350,\r\n 450, 812, 1200, 1440,\r\n 480, 868, 1290, 1530,\r\n 510, 924, 1350, 1620,\r\n 540, 980, 1440, 1710,\r\n 570, 1036, 1530, 1800,\r\n 570, 1064, 1590, 1890,\r\n 600, 1120, 1680, 1980,\r\n 630, 1204, 1770, 2100,\r\n 660, 1260, 1860, 2220,\r\n 720, 1316, 1950, 2310,\r\n 750, 1372, 2040, 2430\r\n]\r\n\r\n/**\r\n * Returns the number of error correction block that the QR Code should contain\r\n * for the specified version and error correction level.\r\n *\r\n * @param {Number} version QR Code version\r\n * @param {Number} errorCorrectionLevel Error correction level\r\n * @return {Number} Number of error correction blocks\r\n */\r\nexports.getBlocksCount = function getBlocksCount (version, errorCorrectionLevel) {\r\n switch (errorCorrectionLevel) {\r\n case ECLevel.L:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 0]\r\n case ECLevel.M:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 1]\r\n case ECLevel.Q:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 2]\r\n case ECLevel.H:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 3]\r\n default:\r\n return undefined\r\n }\r\n}\r\n\r\n/**\r\n * Returns the number of error correction codewords to use for the specified\r\n * version and error correction level.\r\n *\r\n * @param {Number} version QR Code version\r\n * @param {Number} errorCorrectionLevel Error correction level\r\n * @return {Number} Number of error correction codewords\r\n */\r\nexports.getTotalCodewordsCount = function getTotalCodewordsCount (version, errorCorrectionLevel) {\r\n switch (errorCorrectionLevel) {\r\n case ECLevel.L:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 0]\r\n case ECLevel.M:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 1]\r\n case ECLevel.Q:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 2]\r\n case ECLevel.H:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 3]\r\n default:\r\n return undefined\r\n }\r\n}\r\n","const EXP_TABLE = new Uint8Array(512)\nconst LOG_TABLE = new Uint8Array(256)\n/**\n * Precompute the log and anti-log tables for faster computation later\n *\n * For each possible value in the galois field 2^8, we will pre-compute\n * the logarithm and anti-logarithm (exponential) of this value\n *\n * ref {@link https://en.wikiversity.org/wiki/Reed%E2%80%93Solomon_codes_for_coders#Introduction_to_mathematical_fields}\n */\n;(function initTables () {\n let x = 1\n for (let i = 0; i < 255; i++) {\n EXP_TABLE[i] = x\n LOG_TABLE[x] = i\n\n x <<= 1 // multiply by 2\n\n // The QR code specification says to use byte-wise modulo 100011101 arithmetic.\n // This means that when a number is 256 or larger, it should be XORed with 0x11D.\n if (x & 0x100) { // similar to x >= 256, but a lot faster (because 0x100 == 256)\n x ^= 0x11D\n }\n }\n\n // Optimization: double the size of the anti-log table so that we don't need to mod 255 to\n // stay inside the bounds (because we will mainly use this table for the multiplication of\n // two GF numbers, no more).\n // @see {@link mul}\n for (let i = 255; i < 512; i++) {\n EXP_TABLE[i] = EXP_TABLE[i - 255]\n }\n}())\n\n/**\n * Returns log value of n inside Galois Field\n *\n * @param {Number} n\n * @return {Number}\n */\nexports.log = function log (n) {\n if (n < 1) throw new Error('log(' + n + ')')\n return LOG_TABLE[n]\n}\n\n/**\n * Returns anti-log value of n inside Galois Field\n *\n * @param {Number} n\n * @return {Number}\n */\nexports.exp = function exp (n) {\n return EXP_TABLE[n]\n}\n\n/**\n * Multiplies two number inside Galois Field\n *\n * @param {Number} x\n * @param {Number} y\n * @return {Number}\n */\nexports.mul = function mul (x, y) {\n if (x === 0 || y === 0) return 0\n\n // should be EXP_TABLE[(LOG_TABLE[x] + LOG_TABLE[y]) % 255] if EXP_TABLE wasn't oversized\n // @see {@link initTables}\n return EXP_TABLE[LOG_TABLE[x] + LOG_TABLE[y]]\n}\n","const GF = require('./galois-field')\n\n/**\n * Multiplies two polynomials inside Galois Field\n *\n * @param {Uint8Array} p1 Polynomial\n * @param {Uint8Array} p2 Polynomial\n * @return {Uint8Array} Product of p1 and p2\n */\nexports.mul = function mul (p1, p2) {\n const coeff = new Uint8Array(p1.length + p2.length - 1)\n\n for (let i = 0; i < p1.length; i++) {\n for (let j = 0; j < p2.length; j++) {\n coeff[i + j] ^= GF.mul(p1[i], p2[j])\n }\n }\n\n return coeff\n}\n\n/**\n * Calculate the remainder of polynomials division\n *\n * @param {Uint8Array} divident Polynomial\n * @param {Uint8Array} divisor Polynomial\n * @return {Uint8Array} Remainder\n */\nexports.mod = function mod (divident, divisor) {\n let result = new Uint8Array(divident)\n\n while ((result.length - divisor.length) >= 0) {\n const coeff = result[0]\n\n for (let i = 0; i < divisor.length; i++) {\n result[i] ^= GF.mul(divisor[i], coeff)\n }\n\n // remove all zeros from buffer head\n let offset = 0\n while (offset < result.length && result[offset] === 0) offset++\n result = result.slice(offset)\n }\n\n return result\n}\n\n/**\n * Generate an irreducible generator polynomial of specified degree\n * (used by Reed-Solomon encoder)\n *\n * @param {Number} degree Degree of the generator polynomial\n * @return {Uint8Array} Buffer containing polynomial coefficients\n */\nexports.generateECPolynomial = function generateECPolynomial (degree) {\n let poly = new Uint8Array([1])\n for (let i = 0; i < degree; i++) {\n poly = exports.mul(poly, new Uint8Array([1, GF.exp(i)]))\n }\n\n return poly\n}\n","const Polynomial = require('./polynomial')\n\nfunction ReedSolomonEncoder (degree) {\n this.genPoly = undefined\n this.degree = degree\n\n if (this.degree) this.initialize(this.degree)\n}\n\n/**\n * Initialize the encoder.\n * The input param should correspond to the number of error correction codewords.\n *\n * @param {Number} degree\n */\nReedSolomonEncoder.prototype.initialize = function initialize (degree) {\n // create an irreducible generator polynomial\n this.degree = degree\n this.genPoly = Polynomial.generateECPolynomial(this.degree)\n}\n\n/**\n * Encodes a chunk of data\n *\n * @param {Uint8Array} data Buffer containing input data\n * @return {Uint8Array} Buffer containing encoded data\n */\nReedSolomonEncoder.prototype.encode = function encode (data) {\n if (!this.genPoly) {\n throw new Error('Encoder not initialized')\n }\n\n // Calculate EC for this data block\n // extends data size to data+genPoly size\n const paddedData = new Uint8Array(data.length + this.degree)\n paddedData.set(data)\n\n // The error correction codewords are the remainder after dividing the data codewords\n // by a generator polynomial\n const remainder = Polynomial.mod(paddedData, this.genPoly)\n\n // return EC data blocks (last n byte, where n is the degree of genPoly)\n // If coefficients number in remainder are less than genPoly degree,\n // pad with 0s to the left to reach the needed number of coefficients\n const start = this.degree - remainder.length\n if (start > 0) {\n const buff = new Uint8Array(this.degree)\n buff.set(remainder, start)\n\n return buff\n }\n\n return remainder\n}\n\nmodule.exports = ReedSolomonEncoder\n","/**\n * Check if QR Code version is valid\n *\n * @param {Number} version QR Code version\n * @return {Boolean} true if valid version, false otherwise\n */\nexports.isValid = function isValid (version) {\n return !isNaN(version) && version >= 1 && version <= 40\n}\n","const numeric = '[0-9]+'\nconst alphanumeric = '[A-Z $%*+\\\\-./:]+'\nlet kanji = '(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|' +\n '[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|' +\n '[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|' +\n '[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+'\nkanji = kanji.replace(/u/g, '\\\\u')\n\nconst byte = '(?:(?![A-Z0-9 $%*+\\\\-./:]|' + kanji + ')(?:.|[\\r\\n]))+'\n\nexports.KANJI = new RegExp(kanji, 'g')\nexports.BYTE_KANJI = new RegExp('[^A-Z0-9 $%*+\\\\-./:]+', 'g')\nexports.BYTE = new RegExp(byte, 'g')\nexports.NUMERIC = new RegExp(numeric, 'g')\nexports.ALPHANUMERIC = new RegExp(alphanumeric, 'g')\n\nconst TEST_KANJI = new RegExp('^' + kanji + '$')\nconst TEST_NUMERIC = new RegExp('^' + numeric + '$')\nconst TEST_ALPHANUMERIC = new RegExp('^[A-Z0-9 $%*+\\\\-./:]+$')\n\nexports.testKanji = function testKanji (str) {\n return TEST_KANJI.test(str)\n}\n\nexports.testNumeric = function testNumeric (str) {\n return TEST_NUMERIC.test(str)\n}\n\nexports.testAlphanumeric = function testAlphanumeric (str) {\n return TEST_ALPHANUMERIC.test(str)\n}\n","const VersionCheck = require('./version-check')\nconst Regex = require('./regex')\n\n/**\n * Numeric mode encodes data from the decimal digit set (0 - 9)\n * (byte values 30HEX to 39HEX).\n * Normally, 3 data characters are represented by 10 bits.\n *\n * @type {Object}\n */\nexports.NUMERIC = {\n id: 'Numeric',\n bit: 1 << 0,\n ccBits: [10, 12, 14]\n}\n\n/**\n * Alphanumeric mode encodes data from a set of 45 characters,\n * i.e. 10 numeric digits (0 - 9),\n * 26 alphabetic characters (A - Z),\n * and 9 symbols (SP, $, %, *, +, -, ., /, :).\n * Normally, two input characters are represented by 11 bits.\n *\n * @type {Object}\n */\nexports.ALPHANUMERIC = {\n id: 'Alphanumeric',\n bit: 1 << 1,\n ccBits: [9, 11, 13]\n}\n\n/**\n * In byte mode, data is encoded at 8 bits per character.\n *\n * @type {Object}\n */\nexports.BYTE = {\n id: 'Byte',\n bit: 1 << 2,\n ccBits: [8, 16, 16]\n}\n\n/**\n * The Kanji mode efficiently encodes Kanji characters in accordance with\n * the Shift JIS system based on JIS X 0208.\n * The Shift JIS values are shifted from the JIS X 0208 values.\n * JIS X 0208 gives details of the shift coded representation.\n * Each two-byte character value is compacted to a 13-bit binary codeword.\n *\n * @type {Object}\n */\nexports.KANJI = {\n id: 'Kanji',\n bit: 1 << 3,\n ccBits: [8, 10, 12]\n}\n\n/**\n * Mixed mode will contain a sequences of data in a combination of any of\n * the modes described above\n *\n * @type {Object}\n */\nexports.MIXED = {\n bit: -1\n}\n\n/**\n * Returns the number of bits needed to store the data length\n * according to QR Code specifications.\n *\n * @param {Mode} mode Data mode\n * @param {Number} version QR Code version\n * @return {Number} Number of bits\n */\nexports.getCharCountIndicator = function getCharCountIndicator (mode, version) {\n if (!mode.ccBits) throw new Error('Invalid mode: ' + mode)\n\n if (!VersionCheck.isValid(version)) {\n throw new Error('Invalid version: ' + version)\n }\n\n if (version >= 1 && version < 10) return mode.ccBits[0]\n else if (version < 27) return mode.ccBits[1]\n return mode.ccBits[2]\n}\n\n/**\n * Returns the most efficient mode to store the specified data\n *\n * @param {String} dataStr Input data string\n * @return {Mode} Best mode\n */\nexports.getBestModeForData = function getBestModeForData (dataStr) {\n if (Regex.testNumeric(dataStr)) return exports.NUMERIC\n else if (Regex.testAlphanumeric(dataStr)) return exports.ALPHANUMERIC\n else if (Regex.testKanji(dataStr)) return exports.KANJI\n else return exports.BYTE\n}\n\n/**\n * Return mode name as string\n *\n * @param {Mode} mode Mode object\n * @returns {String} Mode name\n */\nexports.toString = function toString (mode) {\n if (mode && mode.id) return mode.id\n throw new Error('Invalid mode')\n}\n\n/**\n * Check if input param is a valid mode object\n *\n * @param {Mode} mode Mode object\n * @returns {Boolean} True if valid mode, false otherwise\n */\nexports.isValid = function isValid (mode) {\n return mode && mode.bit && mode.ccBits\n}\n\n/**\n * Get mode object from its name\n *\n * @param {String} string Mode name\n * @returns {Mode} Mode object\n */\nfunction fromString (string) {\n if (typeof string !== 'string') {\n throw new Error('Param is not a string')\n }\n\n const lcStr = string.toLowerCase()\n\n switch (lcStr) {\n case 'numeric':\n return exports.NUMERIC\n case 'alphanumeric':\n return exports.ALPHANUMERIC\n case 'kanji':\n return exports.KANJI\n case 'byte':\n return exports.BYTE\n default:\n throw new Error('Unknown mode: ' + string)\n }\n}\n\n/**\n * Returns mode from a value.\n * If value is not a valid mode, returns defaultValue\n *\n * @param {Mode|String} value Encoding mode\n * @param {Mode} defaultValue Fallback value\n * @return {Mode} Encoding mode\n */\nexports.from = function from (value, defaultValue) {\n if (exports.isValid(value)) {\n return value\n }\n\n try {\n return fromString(value)\n } catch (e) {\n return defaultValue\n }\n}\n","const Utils = require('./utils')\nconst ECCode = require('./error-correction-code')\nconst ECLevel = require('./error-correction-level')\nconst Mode = require('./mode')\nconst VersionCheck = require('./version-check')\n\n// Generator polynomial used to encode version information\nconst G18 = (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0)\nconst G18_BCH = Utils.getBCHDigit(G18)\n\nfunction getBestVersionForDataLength (mode, length, errorCorrectionLevel) {\n for (let currentVersion = 1; currentVersion <= 40; currentVersion++) {\n if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, mode)) {\n return currentVersion\n }\n }\n\n return undefined\n}\n\nfunction getReservedBitsCount (mode, version) {\n // Character count indicator + mode indicator bits\n return Mode.getCharCountIndicator(mode, version) + 4\n}\n\nfunction getTotalBitsFromDataArray (segments, version) {\n let totalBits = 0\n\n segments.forEach(function (data) {\n const reservedBits = getReservedBitsCount(data.mode, version)\n totalBits += reservedBits + data.getBitsLength()\n })\n\n return totalBits\n}\n\nfunction getBestVersionForMixedData (segments, errorCorrectionLevel) {\n for (let currentVersion = 1; currentVersion <= 40; currentVersion++) {\n const length = getTotalBitsFromDataArray(segments, currentVersion)\n if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, Mode.MIXED)) {\n return currentVersion\n }\n }\n\n return undefined\n}\n\n/**\n * Returns version number from a value.\n * If value is not a valid version, returns defaultValue\n *\n * @param {Number|String} value QR Code version\n * @param {Number} defaultValue Fallback value\n * @return {Number} QR Code version number\n */\nexports.from = function from (value, defaultValue) {\n if (VersionCheck.isValid(value)) {\n return parseInt(value, 10)\n }\n\n return defaultValue\n}\n\n/**\n * Returns how much data can be stored with the specified QR code version\n * and error correction level\n *\n * @param {Number} version QR Code version (1-40)\n * @param {Number} errorCorrectionLevel Error correction level\n * @param {Mode} mode Data mode\n * @return {Number} Quantity of storable data\n */\nexports.getCapacity = function getCapacity (version, errorCorrectionLevel, mode) {\n if (!VersionCheck.isValid(version)) {\n throw new Error('Invalid QR Code version')\n }\n\n // Use Byte mode as default\n if (typeof mode === 'undefined') mode = Mode.BYTE\n\n // Total codewords for this QR code version (Data + Error correction)\n const totalCodewords = Utils.getSymbolTotalCodewords(version)\n\n // Total number of error correction codewords\n const ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n\n // Total number of data codewords\n const dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8\n\n if (mode === Mode.MIXED) return dataTotalCodewordsBits\n\n const usableBits = dataTotalCodewordsBits - getReservedBitsCount(mode, version)\n\n // Return max number of storable codewords\n switch (mode) {\n case Mode.NUMERIC:\n return Math.floor((usableBits / 10) * 3)\n\n case Mode.ALPHANUMERIC:\n return Math.floor((usableBits / 11) * 2)\n\n case Mode.KANJI:\n return Math.floor(usableBits / 13)\n\n case Mode.BYTE:\n default:\n return Math.floor(usableBits / 8)\n }\n}\n\n/**\n * Returns the minimum version needed to contain the amount of data\n *\n * @param {Segment} data Segment of data\n * @param {Number} [errorCorrectionLevel=H] Error correction level\n * @param {Mode} mode Data mode\n * @return {Number} QR Code version\n */\nexports.getBestVersionForData = function getBestVersionForData (data, errorCorrectionLevel) {\n let seg\n\n const ecl = ECLevel.from(errorCorrectionLevel, ECLevel.M)\n\n if (Array.isArray(data)) {\n if (data.length > 1) {\n return getBestVersionForMixedData(data, ecl)\n }\n\n if (data.length === 0) {\n return 1\n }\n\n seg = data[0]\n } else {\n seg = data\n }\n\n return getBestVersionForDataLength(seg.mode, seg.getLength(), ecl)\n}\n\n/**\n * Returns version information with relative error correction bits\n *\n * The version information is included in QR Code symbols of version 7 or larger.\n * It consists of an 18-bit sequence containing 6 data bits,\n * with 12 error correction bits calculated using the (18, 6) Golay code.\n *\n * @param {Number} version QR Code version\n * @return {Number} Encoded version info bits\n */\nexports.getEncodedBits = function getEncodedBits (version) {\n if (!VersionCheck.isValid(version) || version < 7) {\n throw new Error('Invalid QR Code version')\n }\n\n let d = version << 12\n\n while (Utils.getBCHDigit(d) - G18_BCH >= 0) {\n d ^= (G18 << (Utils.getBCHDigit(d) - G18_BCH))\n }\n\n return (version << 12) | d\n}\n","const Utils = require('./utils')\n\nconst G15 = (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0)\nconst G15_MASK = (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1)\nconst G15_BCH = Utils.getBCHDigit(G15)\n\n/**\n * Returns format information with relative error correction bits\n *\n * The format information is a 15-bit sequence containing 5 data bits,\n * with 10 error correction bits calculated using the (15, 5) BCH code.\n *\n * @param {Number} errorCorrectionLevel Error correction level\n * @param {Number} mask Mask pattern\n * @return {Number} Encoded format information bits\n */\nexports.getEncodedBits = function getEncodedBits (errorCorrectionLevel, mask) {\n const data = ((errorCorrectionLevel.bit << 3) | mask)\n let d = data << 10\n\n while (Utils.getBCHDigit(d) - G15_BCH >= 0) {\n d ^= (G15 << (Utils.getBCHDigit(d) - G15_BCH))\n }\n\n // xor final data with mask pattern in order to ensure that\n // no combination of Error Correction Level and data mask pattern\n // will result in an all-zero data string\n return ((data << 10) | d) ^ G15_MASK\n}\n","const Mode = require('./mode')\n\nfunction NumericData (data) {\n this.mode = Mode.NUMERIC\n this.data = data.toString()\n}\n\nNumericData.getBitsLength = function getBitsLength (length) {\n return 10 * Math.floor(length / 3) + ((length % 3) ? ((length % 3) * 3 + 1) : 0)\n}\n\nNumericData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nNumericData.prototype.getBitsLength = function getBitsLength () {\n return NumericData.getBitsLength(this.data.length)\n}\n\nNumericData.prototype.write = function write (bitBuffer) {\n let i, group, value\n\n // The input data string is divided into groups of three digits,\n // and each group is converted to its 10-bit binary equivalent.\n for (i = 0; i + 3 <= this.data.length; i += 3) {\n group = this.data.substr(i, 3)\n value = parseInt(group, 10)\n\n bitBuffer.put(value, 10)\n }\n\n // If the number of input digits is not an exact multiple of three,\n // the final one or two digits are converted to 4 or 7 bits respectively.\n const remainingNum = this.data.length - i\n if (remainingNum > 0) {\n group = this.data.substr(i)\n value = parseInt(group, 10)\n\n bitBuffer.put(value, remainingNum * 3 + 1)\n }\n}\n\nmodule.exports = NumericData\n","const Mode = require('./mode')\n\n/**\n * Array of characters available in alphanumeric mode\n *\n * As per QR Code specification, to each character\n * is assigned a value from 0 to 44 which in this case coincides\n * with the array index\n *\n * @type {Array}\n */\nconst ALPHA_NUM_CHARS = [\n '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',\n 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',\n 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',\n ' ', '$', '%', '*', '+', '-', '.', '/', ':'\n]\n\nfunction AlphanumericData (data) {\n this.mode = Mode.ALPHANUMERIC\n this.data = data\n}\n\nAlphanumericData.getBitsLength = function getBitsLength (length) {\n return 11 * Math.floor(length / 2) + 6 * (length % 2)\n}\n\nAlphanumericData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nAlphanumericData.prototype.getBitsLength = function getBitsLength () {\n return AlphanumericData.getBitsLength(this.data.length)\n}\n\nAlphanumericData.prototype.write = function write (bitBuffer) {\n let i\n\n // Input data characters are divided into groups of two characters\n // and encoded as 11-bit binary codes.\n for (i = 0; i + 2 <= this.data.length; i += 2) {\n // The character value of the first character is multiplied by 45\n let value = ALPHA_NUM_CHARS.indexOf(this.data[i]) * 45\n\n // The character value of the second digit is added to the product\n value += ALPHA_NUM_CHARS.indexOf(this.data[i + 1])\n\n // The sum is then stored as 11-bit binary number\n bitBuffer.put(value, 11)\n }\n\n // If the number of input data characters is not a multiple of two,\n // the character value of the final character is encoded as a 6-bit binary number.\n if (this.data.length % 2) {\n bitBuffer.put(ALPHA_NUM_CHARS.indexOf(this.data[i]), 6)\n }\n}\n\nmodule.exports = AlphanumericData\n","'use strict'\n\nmodule.exports = function encodeUtf8 (input) {\n var result = []\n var size = input.length\n\n for (var index = 0; index < size; index++) {\n var point = input.charCodeAt(index)\n\n if (point >= 0xD800 && point <= 0xDBFF && size > index + 1) {\n var second = input.charCodeAt(index + 1)\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n point = (point - 0xD800) * 0x400 + second - 0xDC00 + 0x10000\n index += 1\n }\n }\n\n // US-ASCII\n if (point < 0x80) {\n result.push(point)\n continue\n }\n\n // 2-byte UTF-8\n if (point < 0x800) {\n result.push((point >> 6) | 192)\n result.push((point & 63) | 128)\n continue\n }\n\n // 3-byte UTF-8\n if (point < 0xD800 || (point >= 0xE000 && point < 0x10000)) {\n result.push((point >> 12) | 224)\n result.push(((point >> 6) & 63) | 128)\n result.push((point & 63) | 128)\n continue\n }\n\n // 4-byte UTF-8\n if (point >= 0x10000 && point <= 0x10FFFF) {\n result.push((point >> 18) | 240)\n result.push(((point >> 12) & 63) | 128)\n result.push(((point >> 6) & 63) | 128)\n result.push((point & 63) | 128)\n continue\n }\n\n // Invalid character\n result.push(0xEF, 0xBF, 0xBD)\n }\n\n return new Uint8Array(result).buffer\n}\n","const encodeUtf8 = require('encode-utf8')\nconst Mode = require('./mode')\n\nfunction ByteData (data) {\n this.mode = Mode.BYTE\n if (typeof (data) === 'string') {\n data = encodeUtf8(data)\n }\n this.data = new Uint8Array(data)\n}\n\nByteData.getBitsLength = function getBitsLength (length) {\n return length * 8\n}\n\nByteData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nByteData.prototype.getBitsLength = function getBitsLength () {\n return ByteData.getBitsLength(this.data.length)\n}\n\nByteData.prototype.write = function (bitBuffer) {\n for (let i = 0, l = this.data.length; i < l; i++) {\n bitBuffer.put(this.data[i], 8)\n }\n}\n\nmodule.exports = ByteData\n","const Mode = require('./mode')\nconst Utils = require('./utils')\n\nfunction KanjiData (data) {\n this.mode = Mode.KANJI\n this.data = data\n}\n\nKanjiData.getBitsLength = function getBitsLength (length) {\n return length * 13\n}\n\nKanjiData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nKanjiData.prototype.getBitsLength = function getBitsLength () {\n return KanjiData.getBitsLength(this.data.length)\n}\n\nKanjiData.prototype.write = function (bitBuffer) {\n let i\n\n // In the Shift JIS system, Kanji characters are represented by a two byte combination.\n // These byte values are shifted from the JIS X 0208 values.\n // JIS X 0208 gives details of the shift coded representation.\n for (i = 0; i < this.data.length; i++) {\n let value = Utils.toSJIS(this.data[i])\n\n // For characters with Shift JIS values from 0x8140 to 0x9FFC:\n if (value >= 0x8140 && value <= 0x9FFC) {\n // Subtract 0x8140 from Shift JIS value\n value -= 0x8140\n\n // For characters with Shift JIS values from 0xE040 to 0xEBBF\n } else if (value >= 0xE040 && value <= 0xEBBF) {\n // Subtract 0xC140 from Shift JIS value\n value -= 0xC140\n } else {\n throw new Error(\n 'Invalid SJIS character: ' + this.data[i] + '\\n' +\n 'Make sure your charset is UTF-8')\n }\n\n // Multiply most significant byte of result by 0xC0\n // and add least significant byte to product\n value = (((value >>> 8) & 0xff) * 0xC0) + (value & 0xff)\n\n // Convert result to a 13-bit binary string\n bitBuffer.put(value, 13)\n }\n}\n\nmodule.exports = KanjiData\n","const Mode = require('./mode')\nconst NumericData = require('./numeric-data')\nconst AlphanumericData = require('./alphanumeric-data')\nconst ByteData = require('./byte-data')\nconst KanjiData = require('./kanji-data')\nconst Regex = require('./regex')\nconst Utils = require('./utils')\nconst dijkstra = require('dijkstrajs')\n\n/**\n * Returns UTF8 byte length\n *\n * @param {String} str Input string\n * @return {Number} Number of byte\n */\nfunction getStringByteLength (str) {\n return unescape(encodeURIComponent(str)).length\n}\n\n/**\n * Get a list of segments of the specified mode\n * from a string\n *\n * @param {Mode} mode Segment mode\n * @param {String} str String to process\n * @return {Array} Array of object with segments data\n */\nfunction getSegments (regex, mode, str) {\n const segments = []\n let result\n\n while ((result = regex.exec(str)) !== null) {\n segments.push({\n data: result[0],\n index: result.index,\n mode: mode,\n length: result[0].length\n })\n }\n\n return segments\n}\n\n/**\n * Extracts a series of segments with the appropriate\n * modes from a string\n *\n * @param {String} dataStr Input string\n * @return {Array} Array of object with segments data\n */\nfunction getSegmentsFromString (dataStr) {\n const numSegs = getSegments(Regex.NUMERIC, Mode.NUMERIC, dataStr)\n const alphaNumSegs = getSegments(Regex.ALPHANUMERIC, Mode.ALPHANUMERIC, dataStr)\n let byteSegs\n let kanjiSegs\n\n if (Utils.isKanjiModeEnabled()) {\n byteSegs = getSegments(Regex.BYTE, Mode.BYTE, dataStr)\n kanjiSegs = getSegments(Regex.KANJI, Mode.KANJI, dataStr)\n } else {\n byteSegs = getSegments(Regex.BYTE_KANJI, Mode.BYTE, dataStr)\n kanjiSegs = []\n }\n\n const segs = numSegs.concat(alphaNumSegs, byteSegs, kanjiSegs)\n\n return segs\n .sort(function (s1, s2) {\n return s1.index - s2.index\n })\n .map(function (obj) {\n return {\n data: obj.data,\n mode: obj.mode,\n length: obj.length\n }\n })\n}\n\n/**\n * Returns how many bits are needed to encode a string of\n * specified length with the specified mode\n *\n * @param {Number} length String length\n * @param {Mode} mode Segment mode\n * @return {Number} Bit length\n */\nfunction getSegmentBitsLength (length, mode) {\n switch (mode) {\n case Mode.NUMERIC:\n return NumericData.getBitsLength(length)\n case Mode.ALPHANUMERIC:\n return AlphanumericData.getBitsLength(length)\n case Mode.KANJI:\n return KanjiData.getBitsLength(length)\n case Mode.BYTE:\n return ByteData.getBitsLength(length)\n }\n}\n\n/**\n * Merges adjacent segments which have the same mode\n *\n * @param {Array} segs Array of object with segments data\n * @return {Array} Array of object with segments data\n */\nfunction mergeSegments (segs) {\n return segs.reduce(function (acc, curr) {\n const prevSeg = acc.length - 1 >= 0 ? acc[acc.length - 1] : null\n if (prevSeg && prevSeg.mode === curr.mode) {\n acc[acc.length - 1].data += curr.data\n return acc\n }\n\n acc.push(curr)\n return acc\n }, [])\n}\n\n/**\n * Generates a list of all possible nodes combination which\n * will be used to build a segments graph.\n *\n * Nodes are divided by groups. Each group will contain a list of all the modes\n * in which is possible to encode the given text.\n *\n * For example the text '12345' can be encoded as Numeric, Alphanumeric or Byte.\n * The group for '12345' will contain then 3 objects, one for each\n * possible encoding mode.\n *\n * Each node represents a possible segment.\n *\n * @param {Array} segs Array of object with segments data\n * @return {Array} Array of object with segments data\n */\nfunction buildNodes (segs) {\n const nodes = []\n for (let i = 0; i < segs.length; i++) {\n const seg = segs[i]\n\n switch (seg.mode) {\n case Mode.NUMERIC:\n nodes.push([seg,\n { data: seg.data, mode: Mode.ALPHANUMERIC, length: seg.length },\n { data: seg.data, mode: Mode.BYTE, length: seg.length }\n ])\n break\n case Mode.ALPHANUMERIC:\n nodes.push([seg,\n { data: seg.data, mode: Mode.BYTE, length: seg.length }\n ])\n break\n case Mode.KANJI:\n nodes.push([seg,\n { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n ])\n break\n case Mode.BYTE:\n nodes.push([\n { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n ])\n }\n }\n\n return nodes\n}\n\n/**\n * Builds a graph from a list of nodes.\n * All segments in each node group will be connected with all the segments of\n * the next group and so on.\n *\n * At each connection will be assigned a weight depending on the\n * segment's byte length.\n *\n * @param {Array} nodes Array of object with segments data\n * @param {Number} version QR Code version\n * @return {Object} Graph of all possible segments\n */\nfunction buildGraph (nodes, version) {\n const table = {}\n const graph = { start: {} }\n let prevNodeIds = ['start']\n\n for (let i = 0; i < nodes.length; i++) {\n const nodeGroup = nodes[i]\n const currentNodeIds = []\n\n for (let j = 0; j < nodeGroup.length; j++) {\n const node = nodeGroup[j]\n const key = '' + i + j\n\n currentNodeIds.push(key)\n table[key] = { node: node, lastCount: 0 }\n graph[key] = {}\n\n for (let n = 0; n < prevNodeIds.length; n++) {\n const prevNodeId = prevNodeIds[n]\n\n if (table[prevNodeId] && table[prevNodeId].node.mode === node.mode) {\n graph[prevNodeId][key] =\n getSegmentBitsLength(table[prevNodeId].lastCount + node.length, node.mode) -\n getSegmentBitsLength(table[prevNodeId].lastCount, node.mode)\n\n table[prevNodeId].lastCount += node.length\n } else {\n if (table[prevNodeId]) table[prevNodeId].lastCount = node.length\n\n graph[prevNodeId][key] = getSegmentBitsLength(node.length, node.mode) +\n 4 + Mode.getCharCountIndicator(node.mode, version) // switch cost\n }\n }\n }\n\n prevNodeIds = currentNodeIds\n }\n\n for (let n = 0; n < prevNodeIds.length; n++) {\n graph[prevNodeIds[n]].end = 0\n }\n\n return { map: graph, table: table }\n}\n\n/**\n * Builds a segment from a specified data and mode.\n * If a mode is not specified, the more suitable will be used.\n *\n * @param {String} data Input data\n * @param {Mode | String} modesHint Data mode\n * @return {Segment} Segment\n */\nfunction buildSingleSegment (data, modesHint) {\n let mode\n const bestMode = Mode.getBestModeForData(data)\n\n mode = Mode.from(modesHint, bestMode)\n\n // Make sure data can be encoded\n if (mode !== Mode.BYTE && mode.bit < bestMode.bit) {\n throw new Error('\"' + data + '\"' +\n ' cannot be encoded with mode ' + Mode.toString(mode) +\n '.\\n Suggested mode is: ' + Mode.toString(bestMode))\n }\n\n // Use Mode.BYTE if Kanji support is disabled\n if (mode === Mode.KANJI && !Utils.isKanjiModeEnabled()) {\n mode = Mode.BYTE\n }\n\n switch (mode) {\n case Mode.NUMERIC:\n return new NumericData(data)\n\n case Mode.ALPHANUMERIC:\n return new AlphanumericData(data)\n\n case Mode.KANJI:\n return new KanjiData(data)\n\n case Mode.BYTE:\n return new ByteData(data)\n }\n}\n\n/**\n * Builds a list of segments from an array.\n * Array can contain Strings or Objects with segment's info.\n *\n * For each item which is a string, will be generated a segment with the given\n * string and the more appropriate encoding mode.\n *\n * For each item which is an object, will be generated a segment with the given\n * data and mode.\n * Objects must contain at least the property \"data\".\n * If property \"mode\" is not present, the more suitable mode will be used.\n *\n * @param {Array} array Array of objects with segments data\n * @return {Array} Array of Segments\n */\nexports.fromArray = function fromArray (array) {\n return array.reduce(function (acc, seg) {\n if (typeof seg === 'string') {\n acc.push(buildSingleSegment(seg, null))\n } else if (seg.data) {\n acc.push(buildSingleSegment(seg.data, seg.mode))\n }\n\n return acc\n }, [])\n}\n\n/**\n * Builds an optimized sequence of segments from a string,\n * which will produce the shortest possible bitstream.\n *\n * @param {String} data Input string\n * @param {Number} version QR Code version\n * @return {Array} Array of segments\n */\nexports.fromString = function fromString (data, version) {\n const segs = getSegmentsFromString(data, Utils.isKanjiModeEnabled())\n\n const nodes = buildNodes(segs)\n const graph = buildGraph(nodes, version)\n const path = dijkstra.find_path(graph.map, 'start', 'end')\n\n const optimizedSegs = []\n for (let i = 1; i < path.length - 1; i++) {\n optimizedSegs.push(graph.table[path[i]].node)\n }\n\n return exports.fromArray(mergeSegments(optimizedSegs))\n}\n\n/**\n * Splits a string in various segments with the modes which\n * best represent their content.\n * The produced segments are far from being optimized.\n * The output of this function is only used to estimate a QR Code version\n * which may contain the data.\n *\n * @param {string} data Input string\n * @return {Array} Array of segments\n */\nexports.rawSplit = function rawSplit (data) {\n return exports.fromArray(\n getSegmentsFromString(data, Utils.isKanjiModeEnabled())\n )\n}\n","const Utils = require('./utils')\nconst ECLevel = require('./error-correction-level')\nconst BitBuffer = require('./bit-buffer')\nconst BitMatrix = require('./bit-matrix')\nconst AlignmentPattern = require('./alignment-pattern')\nconst FinderPattern = require('./finder-pattern')\nconst MaskPattern = require('./mask-pattern')\nconst ECCode = require('./error-correction-code')\nconst ReedSolomonEncoder = require('./reed-solomon-encoder')\nconst Version = require('./version')\nconst FormatInfo = require('./format-info')\nconst Mode = require('./mode')\nconst Segments = require('./segments')\n\n/**\n * QRCode for JavaScript\n *\n * modified by Ryan Day for nodejs support\n * Copyright (c) 2011 Ryan Day\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/mit-license.php\n *\n//---------------------------------------------------------------------\n// QRCode for JavaScript\n//\n// Copyright (c) 2009 Kazuhiko Arase\n//\n// URL: http://www.d-project.com/\n//\n// Licensed under the MIT license:\n// http://www.opensource.org/licenses/mit-license.php\n//\n// The word \"QR Code\" is registered trademark of\n// DENSO WAVE INCORPORATED\n// http://www.denso-wave.com/qrcode/faqpatent-e.html\n//\n//---------------------------------------------------------------------\n*/\n\n/**\n * Add finder patterns bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupFinderPattern (matrix, version) {\n const size = matrix.size\n const pos = FinderPattern.getPositions(version)\n\n for (let i = 0; i < pos.length; i++) {\n const row = pos[i][0]\n const col = pos[i][1]\n\n for (let r = -1; r <= 7; r++) {\n if (row + r <= -1 || size <= row + r) continue\n\n for (let c = -1; c <= 7; c++) {\n if (col + c <= -1 || size <= col + c) continue\n\n if ((r >= 0 && r <= 6 && (c === 0 || c === 6)) ||\n (c >= 0 && c <= 6 && (r === 0 || r === 6)) ||\n (r >= 2 && r <= 4 && c >= 2 && c <= 4)) {\n matrix.set(row + r, col + c, true, true)\n } else {\n matrix.set(row + r, col + c, false, true)\n }\n }\n }\n }\n}\n\n/**\n * Add timing pattern bits to matrix\n *\n * Note: this function must be called before {@link setupAlignmentPattern}\n *\n * @param {BitMatrix} matrix Modules matrix\n */\nfunction setupTimingPattern (matrix) {\n const size = matrix.size\n\n for (let r = 8; r < size - 8; r++) {\n const value = r % 2 === 0\n matrix.set(r, 6, value, true)\n matrix.set(6, r, value, true)\n }\n}\n\n/**\n * Add alignment patterns bits to matrix\n *\n * Note: this function must be called after {@link setupTimingPattern}\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupAlignmentPattern (matrix, version) {\n const pos = AlignmentPattern.getPositions(version)\n\n for (let i = 0; i < pos.length; i++) {\n const row = pos[i][0]\n const col = pos[i][1]\n\n for (let r = -2; r <= 2; r++) {\n for (let c = -2; c <= 2; c++) {\n if (r === -2 || r === 2 || c === -2 || c === 2 ||\n (r === 0 && c === 0)) {\n matrix.set(row + r, col + c, true, true)\n } else {\n matrix.set(row + r, col + c, false, true)\n }\n }\n }\n }\n}\n\n/**\n * Add version info bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupVersionInfo (matrix, version) {\n const size = matrix.size\n const bits = Version.getEncodedBits(version)\n let row, col, mod\n\n for (let i = 0; i < 18; i++) {\n row = Math.floor(i / 3)\n col = i % 3 + size - 8 - 3\n mod = ((bits >> i) & 1) === 1\n\n matrix.set(row, col, mod, true)\n matrix.set(col, row, mod, true)\n }\n}\n\n/**\n * Add format info bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @param {Number} maskPattern Mask pattern reference value\n */\nfunction setupFormatInfo (matrix, errorCorrectionLevel, maskPattern) {\n const size = matrix.size\n const bits = FormatInfo.getEncodedBits(errorCorrectionLevel, maskPattern)\n let i, mod\n\n for (i = 0; i < 15; i++) {\n mod = ((bits >> i) & 1) === 1\n\n // vertical\n if (i < 6) {\n matrix.set(i, 8, mod, true)\n } else if (i < 8) {\n matrix.set(i + 1, 8, mod, true)\n } else {\n matrix.set(size - 15 + i, 8, mod, true)\n }\n\n // horizontal\n if (i < 8) {\n matrix.set(8, size - i - 1, mod, true)\n } else if (i < 9) {\n matrix.set(8, 15 - i - 1 + 1, mod, true)\n } else {\n matrix.set(8, 15 - i - 1, mod, true)\n }\n }\n\n // fixed module\n matrix.set(size - 8, 8, 1, true)\n}\n\n/**\n * Add encoded data bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Uint8Array} data Data codewords\n */\nfunction setupData (matrix, data) {\n const size = matrix.size\n let inc = -1\n let row = size - 1\n let bitIndex = 7\n let byteIndex = 0\n\n for (let col = size - 1; col > 0; col -= 2) {\n if (col === 6) col--\n\n while (true) {\n for (let c = 0; c < 2; c++) {\n if (!matrix.isReserved(row, col - c)) {\n let dark = false\n\n if (byteIndex < data.length) {\n dark = (((data[byteIndex] >>> bitIndex) & 1) === 1)\n }\n\n matrix.set(row, col - c, dark)\n bitIndex--\n\n if (bitIndex === -1) {\n byteIndex++\n bitIndex = 7\n }\n }\n }\n\n row += inc\n\n if (row < 0 || size <= row) {\n row -= inc\n inc = -inc\n break\n }\n }\n }\n}\n\n/**\n * Create encoded codewords from data input\n *\n * @param {Number} version QR Code version\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @param {ByteData} data Data input\n * @return {Uint8Array} Buffer containing encoded codewords\n */\nfunction createData (version, errorCorrectionLevel, segments) {\n // Prepare data buffer\n const buffer = new BitBuffer()\n\n segments.forEach(function (data) {\n // prefix data with mode indicator (4 bits)\n buffer.put(data.mode.bit, 4)\n\n // Prefix data with character count indicator.\n // The character count indicator is a string of bits that represents the\n // number of characters that are being encoded.\n // The character count indicator must be placed after the mode indicator\n // and must be a certain number of bits long, depending on the QR version\n // and data mode\n // @see {@link Mode.getCharCountIndicator}.\n buffer.put(data.getLength(), Mode.getCharCountIndicator(data.mode, version))\n\n // add binary data sequence to buffer\n data.write(buffer)\n })\n\n // Calculate required number of bits\n const totalCodewords = Utils.getSymbolTotalCodewords(version)\n const ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n const dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8\n\n // Add a terminator.\n // If the bit string is shorter than the total number of required bits,\n // a terminator of up to four 0s must be added to the right side of the string.\n // If the bit string is more than four bits shorter than the required number of bits,\n // add four 0s to the end.\n if (buffer.getLengthInBits() + 4 <= dataTotalCodewordsBits) {\n buffer.put(0, 4)\n }\n\n // If the bit string is fewer than four bits shorter, add only the number of 0s that\n // are needed to reach the required number of bits.\n\n // After adding the terminator, if the number of bits in the string is not a multiple of 8,\n // pad the string on the right with 0s to make the string's length a multiple of 8.\n while (buffer.getLengthInBits() % 8 !== 0) {\n buffer.putBit(0)\n }\n\n // Add pad bytes if the string is still shorter than the total number of required bits.\n // Extend the buffer to fill the data capacity of the symbol corresponding to\n // the Version and Error Correction Level by adding the Pad Codewords 11101100 (0xEC)\n // and 00010001 (0x11) alternately.\n const remainingByte = (dataTotalCodewordsBits - buffer.getLengthInBits()) / 8\n for (let i = 0; i < remainingByte; i++) {\n buffer.put(i % 2 ? 0x11 : 0xEC, 8)\n }\n\n return createCodewords(buffer, version, errorCorrectionLevel)\n}\n\n/**\n * Encode input data with Reed-Solomon and return codewords with\n * relative error correction bits\n *\n * @param {BitBuffer} bitBuffer Data to encode\n * @param {Number} version QR Code version\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @return {Uint8Array} Buffer containing encoded codewords\n */\nfunction createCodewords (bitBuffer, version, errorCorrectionLevel) {\n // Total codewords for this QR code version (Data + Error correction)\n const totalCodewords = Utils.getSymbolTotalCodewords(version)\n\n // Total number of error correction codewords\n const ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n\n // Total number of data codewords\n const dataTotalCodewords = totalCodewords - ecTotalCodewords\n\n // Total number of blocks\n const ecTotalBlocks = ECCode.getBlocksCount(version, errorCorrectionLevel)\n\n // Calculate how many blocks each group should contain\n const blocksInGroup2 = totalCodewords % ecTotalBlocks\n const blocksInGroup1 = ecTotalBlocks - blocksInGroup2\n\n const totalCodewordsInGroup1 = Math.floor(totalCodewords / ecTotalBlocks)\n\n const dataCodewordsInGroup1 = Math.floor(dataTotalCodewords / ecTotalBlocks)\n const dataCodewordsInGroup2 = dataCodewordsInGroup1 + 1\n\n // Number of EC codewords is the same for both groups\n const ecCount = totalCodewordsInGroup1 - dataCodewordsInGroup1\n\n // Initialize a Reed-Solomon encoder with a generator polynomial of degree ecCount\n const rs = new ReedSolomonEncoder(ecCount)\n\n let offset = 0\n const dcData = new Array(ecTotalBlocks)\n const ecData = new Array(ecTotalBlocks)\n let maxDataSize = 0\n const buffer = new Uint8Array(bitBuffer.buffer)\n\n // Divide the buffer into the required number of blocks\n for (let b = 0; b < ecTotalBlocks; b++) {\n const dataSize = b < blocksInGroup1 ? dataCodewordsInGroup1 : dataCodewordsInGroup2\n\n // extract a block of data from buffer\n dcData[b] = buffer.slice(offset, offset + dataSize)\n\n // Calculate EC codewords for this data block\n ecData[b] = rs.encode(dcData[b])\n\n offset += dataSize\n maxDataSize = Math.max(maxDataSize, dataSize)\n }\n\n // Create final data\n // Interleave the data and error correction codewords from each block\n const data = new Uint8Array(totalCodewords)\n let index = 0\n let i, r\n\n // Add data codewords\n for (i = 0; i < maxDataSize; i++) {\n for (r = 0; r < ecTotalBlocks; r++) {\n if (i < dcData[r].length) {\n data[index++] = dcData[r][i]\n }\n }\n }\n\n // Apped EC codewords\n for (i = 0; i < ecCount; i++) {\n for (r = 0; r < ecTotalBlocks; r++) {\n data[index++] = ecData[r][i]\n }\n }\n\n return data\n}\n\n/**\n * Build QR Code symbol\n *\n * @param {String} data Input string\n * @param {Number} version QR Code version\n * @param {ErrorCorretionLevel} errorCorrectionLevel Error level\n * @param {MaskPattern} maskPattern Mask pattern\n * @return {Object} Object containing symbol data\n */\nfunction createSymbol (data, version, errorCorrectionLevel, maskPattern) {\n let segments\n\n if (Array.isArray(data)) {\n segments = Segments.fromArray(data)\n } else if (typeof data === 'string') {\n let estimatedVersion = version\n\n if (!estimatedVersion) {\n const rawSegments = Segments.rawSplit(data)\n\n // Estimate best version that can contain raw splitted segments\n estimatedVersion = Version.getBestVersionForData(rawSegments, errorCorrectionLevel)\n }\n\n // Build optimized segments\n // If estimated version is undefined, try with the highest version\n segments = Segments.fromString(data, estimatedVersion || 40)\n } else {\n throw new Error('Invalid data')\n }\n\n // Get the min version that can contain data\n const bestVersion = Version.getBestVersionForData(segments, errorCorrectionLevel)\n\n // If no version is found, data cannot be stored\n if (!bestVersion) {\n throw new Error('The amount of data is too big to be stored in a QR Code')\n }\n\n // If not specified, use min version as default\n if (!version) {\n version = bestVersion\n\n // Check if the specified version can contain the data\n } else if (version < bestVersion) {\n throw new Error('\\n' +\n 'The chosen QR Code version cannot contain this amount of data.\\n' +\n 'Minimum version required to store current data is: ' + bestVersion + '.\\n'\n )\n }\n\n const dataBits = createData(version, errorCorrectionLevel, segments)\n\n // Allocate matrix buffer\n const moduleCount = Utils.getSymbolSize(version)\n const modules = new BitMatrix(moduleCount)\n\n // Add function modules\n setupFinderPattern(modules, version)\n setupTimingPattern(modules)\n setupAlignmentPattern(modules, version)\n\n // Add temporary dummy bits for format info just to set them as reserved.\n // This is needed to prevent these bits from being masked by {@link MaskPattern.applyMask}\n // since the masking operation must be performed only on the encoding region.\n // These blocks will be replaced with correct values later in code.\n setupFormatInfo(modules, errorCorrectionLevel, 0)\n\n if (version >= 7) {\n setupVersionInfo(modules, version)\n }\n\n // Add data codewords\n setupData(modules, dataBits)\n\n if (isNaN(maskPattern)) {\n // Find best mask pattern\n maskPattern = MaskPattern.getBestMask(modules,\n setupFormatInfo.bind(null, modules, errorCorrectionLevel))\n }\n\n // Apply mask pattern\n MaskPattern.applyMask(maskPattern, modules)\n\n // Replace format info bits with correct values\n setupFormatInfo(modules, errorCorrectionLevel, maskPattern)\n\n return {\n modules: modules,\n version: version,\n errorCorrectionLevel: errorCorrectionLevel,\n maskPattern: maskPattern,\n segments: segments\n }\n}\n\n/**\n * QR Code\n *\n * @param {String | Array} data Input data\n * @param {Object} options Optional configurations\n * @param {Number} options.version QR Code version\n * @param {String} options.errorCorrectionLevel Error correction level\n * @param {Function} options.toSJISFunc Helper func to convert utf8 to sjis\n */\nexports.create = function create (data, options) {\n if (typeof data === 'undefined' || data === '') {\n throw new Error('No input text')\n }\n\n let errorCorrectionLevel = ECLevel.M\n let version\n let mask\n\n if (typeof options !== 'undefined') {\n // Use higher error correction level as default\n errorCorrectionLevel = ECLevel.from(options.errorCorrectionLevel, ECLevel.M)\n version = Version.from(options.version)\n mask = MaskPattern.from(options.maskPattern)\n\n if (options.toSJISFunc) {\n Utils.setToSJISFunction(options.toSJISFunc)\n }\n }\n\n return createSymbol(data, version, errorCorrectionLevel, mask)\n}\n","function hex2rgba (hex) {\n if (typeof hex === 'number') {\n hex = hex.toString()\n }\n\n if (typeof hex !== 'string') {\n throw new Error('Color should be defined as hex string')\n }\n\n let hexCode = hex.slice().replace('#', '').split('')\n if (hexCode.length < 3 || hexCode.length === 5 || hexCode.length > 8) {\n throw new Error('Invalid hex color: ' + hex)\n }\n\n // Convert from short to long form (fff -> ffffff)\n if (hexCode.length === 3 || hexCode.length === 4) {\n hexCode = Array.prototype.concat.apply([], hexCode.map(function (c) {\n return [c, c]\n }))\n }\n\n // Add default alpha value\n if (hexCode.length === 6) hexCode.push('F', 'F')\n\n const hexValue = parseInt(hexCode.join(''), 16)\n\n return {\n r: (hexValue >> 24) & 255,\n g: (hexValue >> 16) & 255,\n b: (hexValue >> 8) & 255,\n a: hexValue & 255,\n hex: '#' + hexCode.slice(0, 6).join('')\n }\n}\n\nexports.getOptions = function getOptions (options) {\n if (!options) options = {}\n if (!options.color) options.color = {}\n\n const margin = typeof options.margin === 'undefined' ||\n options.margin === null ||\n options.margin < 0\n ? 4\n : options.margin\n\n const width = options.width && options.width >= 21 ? options.width : undefined\n const scale = options.scale || 4\n\n return {\n width: width,\n scale: width ? 4 : scale,\n margin: margin,\n color: {\n dark: hex2rgba(options.color.dark || '#000000ff'),\n light: hex2rgba(options.color.light || '#ffffffff')\n },\n type: options.type,\n rendererOpts: options.rendererOpts || {}\n }\n}\n\nexports.getScale = function getScale (qrSize, opts) {\n return opts.width && opts.width >= qrSize + opts.margin * 2\n ? opts.width / (qrSize + opts.margin * 2)\n : opts.scale\n}\n\nexports.getImageWidth = function getImageWidth (qrSize, opts) {\n const scale = exports.getScale(qrSize, opts)\n return Math.floor((qrSize + opts.margin * 2) * scale)\n}\n\nexports.qrToImageData = function qrToImageData (imgData, qr, opts) {\n const size = qr.modules.size\n const data = qr.modules.data\n const scale = exports.getScale(size, opts)\n const symbolSize = Math.floor((size + opts.margin * 2) * scale)\n const scaledMargin = opts.margin * scale\n const palette = [opts.color.light, opts.color.dark]\n\n for (let i = 0; i < symbolSize; i++) {\n for (let j = 0; j < symbolSize; j++) {\n let posDst = (i * symbolSize + j) * 4\n let pxColor = opts.color.light\n\n if (i >= scaledMargin && j >= scaledMargin &&\n i < symbolSize - scaledMargin && j < symbolSize - scaledMargin) {\n const iSrc = Math.floor((i - scaledMargin) / scale)\n const jSrc = Math.floor((j - scaledMargin) / scale)\n pxColor = palette[data[iSrc * size + jSrc] ? 1 : 0]\n }\n\n imgData[posDst++] = pxColor.r\n imgData[posDst++] = pxColor.g\n imgData[posDst++] = pxColor.b\n imgData[posDst] = pxColor.a\n }\n }\n}\n","const Utils = require('./utils')\n\nfunction clearCanvas (ctx, canvas, size) {\n ctx.clearRect(0, 0, canvas.width, canvas.height)\n\n if (!canvas.style) canvas.style = {}\n canvas.height = size\n canvas.width = size\n canvas.style.height = size + 'px'\n canvas.style.width = size + 'px'\n}\n\nfunction getCanvasElement () {\n try {\n return document.createElement('canvas')\n } catch (e) {\n throw new Error('You need to specify a canvas element')\n }\n}\n\nexports.render = function render (qrData, canvas, options) {\n let opts = options\n let canvasEl = canvas\n\n if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n opts = canvas\n canvas = undefined\n }\n\n if (!canvas) {\n canvasEl = getCanvasElement()\n }\n\n opts = Utils.getOptions(opts)\n const size = Utils.getImageWidth(qrData.modules.size, opts)\n\n const ctx = canvasEl.getContext('2d')\n const image = ctx.createImageData(size, size)\n Utils.qrToImageData(image.data, qrData, opts)\n\n clearCanvas(ctx, canvasEl, size)\n ctx.putImageData(image, 0, 0)\n\n return canvasEl\n}\n\nexports.renderToDataURL = function renderToDataURL (qrData, canvas, options) {\n let opts = options\n\n if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n opts = canvas\n canvas = undefined\n }\n\n if (!opts) opts = {}\n\n const canvasEl = exports.render(qrData, canvas, opts)\n\n const type = opts.type || 'image/png'\n const rendererOpts = opts.rendererOpts || {}\n\n return canvasEl.toDataURL(type, rendererOpts.quality)\n}\n","const Utils = require('./utils')\n\nfunction getColorAttrib (color, attrib) {\n const alpha = color.a / 255\n const str = attrib + '=\"' + color.hex + '\"'\n\n return alpha < 1\n ? str + ' ' + attrib + '-opacity=\"' + alpha.toFixed(2).slice(1) + '\"'\n : str\n}\n\nfunction svgCmd (cmd, x, y) {\n let str = cmd + x\n if (typeof y !== 'undefined') str += ' ' + y\n\n return str\n}\n\nfunction qrToPath (data, size, margin) {\n let path = ''\n let moveBy = 0\n let newRow = false\n let lineLength = 0\n\n for (let i = 0; i < data.length; i++) {\n const col = Math.floor(i % size)\n const row = Math.floor(i / size)\n\n if (!col && !newRow) newRow = true\n\n if (data[i]) {\n lineLength++\n\n if (!(i > 0 && col > 0 && data[i - 1])) {\n path += newRow\n ? svgCmd('M', col + margin, 0.5 + row + margin)\n : svgCmd('m', moveBy, 0)\n\n moveBy = 0\n newRow = false\n }\n\n if (!(col + 1 < size && data[i + 1])) {\n path += svgCmd('h', lineLength)\n lineLength = 0\n }\n } else {\n moveBy++\n }\n }\n\n return path\n}\n\nexports.render = function render (qrData, options, cb) {\n const opts = Utils.getOptions(options)\n const size = qrData.modules.size\n const data = qrData.modules.data\n const qrcodesize = size + opts.margin * 2\n\n const bg = !opts.color.light.a\n ? ''\n : ''\n\n const path =\n ''\n\n const viewBox = 'viewBox=\"' + '0 0 ' + qrcodesize + ' ' + qrcodesize + '\"'\n\n const width = !opts.width ? '' : 'width=\"' + opts.width + '\" height=\"' + opts.width + '\" '\n\n const svgTag = '' + bg + path + '\\n'\n\n if (typeof cb === 'function') {\n cb(null, svgTag)\n }\n\n return svgTag\n}\n","\nconst canPromise = require('./can-promise')\n\nconst QRCode = require('./core/qrcode')\nconst CanvasRenderer = require('./renderer/canvas')\nconst SvgRenderer = require('./renderer/svg-tag.js')\n\nfunction renderCanvas (renderFunc, canvas, text, opts, cb) {\n const args = [].slice.call(arguments, 1)\n const argsNum = args.length\n const isLastArgCb = typeof args[argsNum - 1] === 'function'\n\n if (!isLastArgCb && !canPromise()) {\n throw new Error('Callback required as last argument')\n }\n\n if (isLastArgCb) {\n if (argsNum < 2) {\n throw new Error('Too few arguments provided')\n }\n\n if (argsNum === 2) {\n cb = text\n text = canvas\n canvas = opts = undefined\n } else if (argsNum === 3) {\n if (canvas.getContext && typeof cb === 'undefined') {\n cb = opts\n opts = undefined\n } else {\n cb = opts\n opts = text\n text = canvas\n canvas = undefined\n }\n }\n } else {\n if (argsNum < 1) {\n throw new Error('Too few arguments provided')\n }\n\n if (argsNum === 1) {\n text = canvas\n canvas = opts = undefined\n } else if (argsNum === 2 && !canvas.getContext) {\n opts = text\n text = canvas\n canvas = undefined\n }\n\n return new Promise(function (resolve, reject) {\n try {\n const data = QRCode.create(text, opts)\n resolve(renderFunc(data, canvas, opts))\n } catch (e) {\n reject(e)\n }\n })\n }\n\n try {\n const data = QRCode.create(text, opts)\n cb(null, renderFunc(data, canvas, opts))\n } catch (e) {\n cb(e)\n }\n}\n\nexports.create = QRCode.create\nexports.toCanvas = renderCanvas.bind(null, CanvasRenderer.render)\nexports.toDataURL = renderCanvas.bind(null, CanvasRenderer.renderToDataURL)\n\n// only svg for now.\nexports.toString = renderCanvas.bind(null, function (data, _, opts) {\n return SvgRenderer.render(data, opts)\n})\n","import { css, LitElement, html, svg as svg$1 } from 'lit';\nimport { property, customElement, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ThemeCtrl, ModalCtrl, RouterCtrl, ConfigCtrl, ExplorerCtrl, CoreUtil, OptionsCtrl, ToastCtrl, EventsCtrl } from '@walletconnect/modal-core';\nimport { svg } from 'lit-html';\nimport { animate } from 'motion';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport QRCodeUtil from 'qrcode';\n\nvar __defProp$y = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp$y(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nfunction themeModeVariables() {\n var _a;\n const themeMode = (_a = ThemeCtrl.state.themeMode) != null ? _a : \"dark\";\n const themeModePresets = {\n light: {\n foreground: { 1: `rgb(20,20,20)`, 2: `rgb(121,134,134)`, 3: `rgb(158,169,169)` },\n background: { 1: `rgb(255,255,255)`, 2: `rgb(241,243,243)`, 3: `rgb(228,231,231)` },\n overlay: \"rgba(0,0,0,0.1)\"\n },\n dark: {\n foreground: { 1: `rgb(228,231,231)`, 2: `rgb(148,158,158)`, 3: `rgb(110,119,119)` },\n background: { 1: `rgb(20,20,20)`, 2: `rgb(39,42,42)`, 3: `rgb(59,64,64)` },\n overlay: \"rgba(255,255,255,0.1)\"\n }\n };\n const themeModeColors = themeModePresets[themeMode];\n return {\n \"--wcm-color-fg-1\": themeModeColors.foreground[1],\n \"--wcm-color-fg-2\": themeModeColors.foreground[2],\n \"--wcm-color-fg-3\": themeModeColors.foreground[3],\n \"--wcm-color-bg-1\": themeModeColors.background[1],\n \"--wcm-color-bg-2\": themeModeColors.background[2],\n \"--wcm-color-bg-3\": themeModeColors.background[3],\n \"--wcm-color-overlay\": themeModeColors.overlay\n };\n}\nfunction themeVariablesPresets() {\n return {\n \"--wcm-accent-color\": \"#3396FF\",\n \"--wcm-accent-fill-color\": \"#FFFFFF\",\n \"--wcm-z-index\": \"89\",\n \"--wcm-background-color\": \"#3396FF\",\n \"--wcm-background-border-radius\": \"8px\",\n \"--wcm-container-border-radius\": \"30px\",\n \"--wcm-wallet-icon-border-radius\": \"15px\",\n \"--wcm-wallet-icon-large-border-radius\": \"30px\",\n \"--wcm-wallet-icon-small-border-radius\": \"7px\",\n \"--wcm-input-border-radius\": \"28px\",\n \"--wcm-button-border-radius\": \"10px\",\n \"--wcm-notification-border-radius\": \"36px\",\n \"--wcm-secondary-button-border-radius\": \"28px\",\n \"--wcm-icon-button-border-radius\": \"50%\",\n \"--wcm-button-hover-highlight-border-radius\": \"10px\",\n \"--wcm-text-big-bold-size\": \"20px\",\n \"--wcm-text-big-bold-weight\": \"600\",\n \"--wcm-text-big-bold-line-height\": \"24px\",\n \"--wcm-text-big-bold-letter-spacing\": \"-0.03em\",\n \"--wcm-text-big-bold-text-transform\": \"none\",\n \"--wcm-text-xsmall-bold-size\": \"10px\",\n \"--wcm-text-xsmall-bold-weight\": \"700\",\n \"--wcm-text-xsmall-bold-line-height\": \"12px\",\n \"--wcm-text-xsmall-bold-letter-spacing\": \"0.02em\",\n \"--wcm-text-xsmall-bold-text-transform\": \"uppercase\",\n \"--wcm-text-xsmall-regular-size\": \"12px\",\n \"--wcm-text-xsmall-regular-weight\": \"600\",\n \"--wcm-text-xsmall-regular-line-height\": \"14px\",\n \"--wcm-text-xsmall-regular-letter-spacing\": \"-0.03em\",\n \"--wcm-text-xsmall-regular-text-transform\": \"none\",\n \"--wcm-text-small-thin-size\": \"14px\",\n \"--wcm-text-small-thin-weight\": \"500\",\n \"--wcm-text-small-thin-line-height\": \"16px\",\n \"--wcm-text-small-thin-letter-spacing\": \"-0.03em\",\n \"--wcm-text-small-thin-text-transform\": \"none\",\n \"--wcm-text-small-regular-size\": \"14px\",\n \"--wcm-text-small-regular-weight\": \"600\",\n \"--wcm-text-small-regular-line-height\": \"16px\",\n \"--wcm-text-small-regular-letter-spacing\": \"-0.03em\",\n \"--wcm-text-small-regular-text-transform\": \"none\",\n \"--wcm-text-medium-regular-size\": \"16px\",\n \"--wcm-text-medium-regular-weight\": \"600\",\n \"--wcm-text-medium-regular-line-height\": \"20px\",\n \"--wcm-text-medium-regular-letter-spacing\": \"-0.03em\",\n \"--wcm-text-medium-regular-text-transform\": \"none\",\n \"--wcm-font-family\": \"-apple-system, system-ui, BlinkMacSystemFont, 'Segoe UI', Roboto, Ubuntu, 'Helvetica Neue', sans-serif\",\n \"--wcm-font-feature-settings\": `'tnum' on, 'lnum' on, 'case' on`,\n \"--wcm-success-color\": \"rgb(38,181,98)\",\n \"--wcm-error-color\": \"rgb(242, 90, 103)\",\n \"--wcm-overlay-background-color\": \"rgba(0, 0, 0, 0.3)\",\n \"--wcm-overlay-backdrop-filter\": \"none\"\n };\n}\nconst ThemeUtil = {\n getPreset(key) {\n return themeVariablesPresets()[key];\n },\n setTheme() {\n const root = document.querySelector(\":root\");\n const { themeVariables } = ThemeCtrl.state;\n if (root) {\n const variables = __spreadValues(__spreadValues(__spreadValues({}, themeModeVariables()), themeVariablesPresets()), themeVariables);\n Object.entries(variables).forEach(([key, val]) => root.style.setProperty(key, val));\n }\n },\n globalCss: css`*,::after,::before{margin:0;padding:0;box-sizing:border-box;font-style:normal;text-rendering:optimizeSpeed;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;backface-visibility:hidden}button{cursor:pointer;display:flex;justify-content:center;align-items:center;position:relative;border:none;background-color:transparent;transition:all .2s ease}@media (hover:hover) and (pointer:fine){button:active{transition:all .1s ease;transform:scale(.93)}}button::after{content:'';position:absolute;top:0;bottom:0;left:0;right:0;transition:background-color,.2s ease}button:disabled{cursor:not-allowed}button svg,button wcm-text{position:relative;z-index:1}input{border:none;outline:0;appearance:none}img{display:block}::selection{color:var(--wcm-accent-fill-color);background:var(--wcm-accent-color)}`\n};\n\nconst styles$t = css`button{border-radius:var(--wcm-secondary-button-border-radius);height:28px;padding:0 10px;background-color:var(--wcm-accent-color)}button path{fill:var(--wcm-accent-fill-color)}button::after{border-radius:inherit;border:1px solid var(--wcm-color-overlay)}button:disabled::after{background-color:transparent}.wcm-icon-left svg{margin-right:5px}.wcm-icon-right svg{margin-left:5px}button:active::after{background-color:var(--wcm-color-overlay)}.wcm-ghost,.wcm-ghost:active::after,.wcm-outline{background-color:transparent}.wcm-ghost:active{opacity:.5}@media(hover:hover){button:hover::after{background-color:var(--wcm-color-overlay)}.wcm-ghost:hover::after{background-color:transparent}.wcm-ghost:hover{opacity:.5}}button:disabled{background-color:var(--wcm-color-bg-3);pointer-events:none}.wcm-ghost::after{border-color:transparent}.wcm-ghost path{fill:var(--wcm-color-fg-2)}.wcm-outline path{fill:var(--wcm-accent-color)}.wcm-outline:disabled{background-color:transparent;opacity:.5}`;\n\nvar __defProp$x = Object.defineProperty;\nvar __getOwnPropDesc$x = Object.getOwnPropertyDescriptor;\nvar __decorateClass$x = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$x(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$x(target, key, result);\n return result;\n};\nlet WcmButton = class extends LitElement {\n constructor() {\n super(...arguments);\n this.disabled = false;\n this.iconLeft = void 0;\n this.iconRight = void 0;\n this.onClick = () => null;\n this.variant = \"default\";\n }\n // -- render ------------------------------------------------------- //\n render() {\n const classes = {\n \"wcm-icon-left\": this.iconLeft !== void 0,\n \"wcm-icon-right\": this.iconRight !== void 0,\n \"wcm-ghost\": this.variant === \"ghost\",\n \"wcm-outline\": this.variant === \"outline\"\n };\n let textColor = \"inverse\";\n if (this.variant === \"ghost\") {\n textColor = \"secondary\";\n }\n if (this.variant === \"outline\") {\n textColor = \"accent\";\n }\n return html``;\n }\n};\nWcmButton.styles = [ThemeUtil.globalCss, styles$t];\n__decorateClass$x([\n property({ type: Boolean })\n], WcmButton.prototype, \"disabled\", 2);\n__decorateClass$x([\n property()\n], WcmButton.prototype, \"iconLeft\", 2);\n__decorateClass$x([\n property()\n], WcmButton.prototype, \"iconRight\", 2);\n__decorateClass$x([\n property()\n], WcmButton.prototype, \"onClick\", 2);\n__decorateClass$x([\n property()\n], WcmButton.prototype, \"variant\", 2);\nWcmButton = __decorateClass$x([\n customElement(\"wcm-button\")\n], WcmButton);\n\nconst styles$s = css`:host{display:inline-block}button{padding:0 15px 1px;height:40px;border-radius:var(--wcm-button-border-radius);color:var(--wcm-accent-fill-color);background-color:var(--wcm-accent-color)}button::after{content:'';top:0;bottom:0;left:0;right:0;position:absolute;background-color:transparent;border-radius:inherit;transition:background-color .2s ease;border:1px solid var(--wcm-color-overlay)}button:active::after{background-color:var(--wcm-color-overlay)}button:disabled{padding-bottom:0;background-color:var(--wcm-color-bg-3);color:var(--wcm-color-fg-3)}.wcm-secondary{color:var(--wcm-accent-color);background-color:transparent}.wcm-secondary::after{display:none}@media(hover:hover){button:hover::after{background-color:var(--wcm-color-overlay)}}`;\n\nvar __defProp$w = Object.defineProperty;\nvar __getOwnPropDesc$w = Object.getOwnPropertyDescriptor;\nvar __decorateClass$w = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$w(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$w(target, key, result);\n return result;\n};\nlet WcmButtonBig = class extends LitElement {\n constructor() {\n super(...arguments);\n this.disabled = false;\n this.variant = \"primary\";\n }\n // -- render ------------------------------------------------------- //\n render() {\n const classes = {\n \"wcm-secondary\": this.variant === \"secondary\"\n };\n return html``;\n }\n};\nWcmButtonBig.styles = [ThemeUtil.globalCss, styles$s];\n__decorateClass$w([\n property({ type: Boolean })\n], WcmButtonBig.prototype, \"disabled\", 2);\n__decorateClass$w([\n property()\n], WcmButtonBig.prototype, \"variant\", 2);\nWcmButtonBig = __decorateClass$w([\n customElement(\"wcm-button-big\")\n], WcmButtonBig);\n\nconst styles$r = css`:host{background-color:var(--wcm-color-bg-2);border-top:1px solid var(--wcm-color-bg-3)}div{padding:10px 20px;display:inherit;flex-direction:inherit;align-items:inherit;width:inherit;justify-content:inherit}`;\n\nvar __defProp$v = Object.defineProperty;\nvar __getOwnPropDesc$v = Object.getOwnPropertyDescriptor;\nvar __decorateClass$v = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$v(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$v(target, key, result);\n return result;\n};\nlet WcmInfoFooter = class extends LitElement {\n // -- render ------------------------------------------------------- //\n render() {\n return html`
`;\n }\n};\nWcmInfoFooter.styles = [ThemeUtil.globalCss, styles$r];\nWcmInfoFooter = __decorateClass$v([\n customElement(\"wcm-info-footer\")\n], WcmInfoFooter);\n\nconst SvgUtil = {\n CROSS_ICON: svg``,\n WALLET_CONNECT_LOGO: svg``,\n WALLET_CONNECT_ICON: svg``,\n WALLET_CONNECT_ICON_COLORED: svg``,\n BACK_ICON: svg``,\n COPY_ICON: svg``,\n RETRY_ICON: svg``,\n DESKTOP_ICON: svg``,\n MOBILE_ICON: svg``,\n ARROW_DOWN_ICON: svg``,\n ARROW_UP_RIGHT_ICON: svg``,\n ARROW_RIGHT_ICON: svg``,\n QRCODE_ICON: svg``,\n SCAN_ICON: svg``,\n CHECKMARK_ICON: svg``,\n SEARCH_ICON: svg``,\n WALLET_PLACEHOLDER: svg``,\n GLOBE_ICON: svg``\n};\n\nconst styles$q = css`.wcm-toolbar-placeholder{top:0;bottom:0;left:0;right:0;width:100%;position:absolute;display:block;pointer-events:none;height:100px;border-radius:calc(var(--wcm-background-border-radius) * .9);background-color:var(--wcm-background-color);background-position:center;background-size:cover}.wcm-toolbar{height:38px;display:flex;position:relative;margin:5px 15px 5px 5px;justify-content:space-between;align-items:center}.wcm-toolbar img,.wcm-toolbar svg{height:28px;object-position:left center;object-fit:contain}#wcm-wc-logo path{fill:var(--wcm-accent-fill-color)}button{width:28px;height:28px;border-radius:var(--wcm-icon-button-border-radius);border:0;display:flex;justify-content:center;align-items:center;cursor:pointer;background-color:var(--wcm-color-bg-1);box-shadow:0 0 0 1px var(--wcm-color-overlay)}button:active{background-color:var(--wcm-color-bg-2)}button svg{display:block;object-position:center}button path{fill:var(--wcm-color-fg-1)}.wcm-toolbar div{display:flex}@media(hover:hover){button:hover{background-color:var(--wcm-color-bg-2)}}`;\n\nvar __defProp$u = Object.defineProperty;\nvar __getOwnPropDesc$u = Object.getOwnPropertyDescriptor;\nvar __decorateClass$u = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$u(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$u(target, key, result);\n return result;\n};\nlet WcmModalBackcard = class extends LitElement {\n // -- render ------------------------------------------------------- //\n render() {\n return html`
${SvgUtil.WALLET_CONNECT_LOGO}
`;\n }\n};\nWcmModalBackcard.styles = [ThemeUtil.globalCss, styles$q];\nWcmModalBackcard = __decorateClass$u([\n customElement(\"wcm-modal-backcard\")\n], WcmModalBackcard);\n\nconst styles$p = css`main{padding:20px;padding-top:0;width:100%}`;\n\nvar __defProp$t = Object.defineProperty;\nvar __getOwnPropDesc$t = Object.getOwnPropertyDescriptor;\nvar __decorateClass$t = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$t(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$t(target, key, result);\n return result;\n};\nlet WcmModalContent = class extends LitElement {\n // -- render ------------------------------------------------------- //\n render() {\n return html`
`;\n }\n};\nWcmModalContent.styles = [ThemeUtil.globalCss, styles$p];\nWcmModalContent = __decorateClass$t([\n customElement(\"wcm-modal-content\")\n], WcmModalContent);\n\nconst styles$o = css`footer{padding:10px;display:flex;flex-direction:column;align-items:inherit;justify-content:inherit;border-top:1px solid var(--wcm-color-bg-2)}`;\n\nvar __defProp$s = Object.defineProperty;\nvar __getOwnPropDesc$s = Object.getOwnPropertyDescriptor;\nvar __decorateClass$s = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$s(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$s(target, key, result);\n return result;\n};\nlet WcmModalFooter = class extends LitElement {\n // -- render ------------------------------------------------------- //\n render() {\n return html`
`;\n }\n};\nWcmModalFooter.styles = [ThemeUtil.globalCss, styles$o];\nWcmModalFooter = __decorateClass$s([\n customElement(\"wcm-modal-footer\")\n], WcmModalFooter);\n\nconst styles$n = css`header{display:flex;justify-content:center;align-items:center;padding:20px;position:relative}.wcm-border{border-bottom:1px solid var(--wcm-color-bg-2);margin-bottom:20px}header button{padding:15px 20px}header button:active{opacity:.5}@media(hover:hover){header button:hover{opacity:.5}}.wcm-back-btn{position:absolute;left:0}.wcm-action-btn{position:absolute;right:0}path{fill:var(--wcm-accent-color)}`;\n\nvar __defProp$r = Object.defineProperty;\nvar __getOwnPropDesc$r = Object.getOwnPropertyDescriptor;\nvar __decorateClass$r = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$r(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$r(target, key, result);\n return result;\n};\nlet WcmModalHeader = class extends LitElement {\n constructor() {\n super(...arguments);\n this.title = \"\";\n this.onAction = void 0;\n this.actionIcon = void 0;\n this.border = false;\n }\n // -- private ------------------------------------------------------ //\n backBtnTemplate() {\n return html``;\n }\n actionBtnTemplate() {\n return html``;\n }\n // -- render ------------------------------------------------------- //\n render() {\n const classes = {\n \"wcm-border\": this.border\n };\n const backBtn = RouterCtrl.state.history.length > 1;\n const content = this.title ? html`${this.title}` : html``;\n return html`
${backBtn ? this.backBtnTemplate() : null} ${content} ${this.onAction ? this.actionBtnTemplate() : null}
`;\n }\n};\nWcmModalHeader.styles = [ThemeUtil.globalCss, styles$n];\n__decorateClass$r([\n property()\n], WcmModalHeader.prototype, \"title\", 2);\n__decorateClass$r([\n property()\n], WcmModalHeader.prototype, \"onAction\", 2);\n__decorateClass$r([\n property()\n], WcmModalHeader.prototype, \"actionIcon\", 2);\n__decorateClass$r([\n property({ type: Boolean })\n], WcmModalHeader.prototype, \"border\", 2);\nWcmModalHeader = __decorateClass$r([\n customElement(\"wcm-modal-header\")\n], WcmModalHeader);\n\nconst UiUtil = {\n MOBILE_BREAKPOINT: 600,\n WCM_RECENT_WALLET_DATA: \"WCM_RECENT_WALLET_DATA\",\n EXPLORER_WALLET_URL: \"https://explorer.walletconnect.com/?type=wallet\",\n getShadowRootElement(root, selector) {\n const el = root.renderRoot.querySelector(selector);\n if (!el) {\n throw new Error(`${selector} not found`);\n }\n return el;\n },\n getWalletIcon({ id, image_id }) {\n const { walletImages } = ConfigCtrl.state;\n if (walletImages == null ? void 0 : walletImages[id]) {\n return walletImages[id];\n } else if (image_id) {\n return ExplorerCtrl.getWalletImageUrl(image_id);\n }\n return \"\";\n },\n getWalletName(name, short = false) {\n return short && name.length > 8 ? `${name.substring(0, 8)}..` : name;\n },\n isMobileAnimation() {\n return window.innerWidth <= UiUtil.MOBILE_BREAKPOINT;\n },\n async preloadImage(src) {\n const imagePromise = new Promise((resolve, reject) => {\n const image = new Image();\n image.onload = resolve;\n image.onerror = reject;\n image.crossOrigin = \"anonymous\";\n image.src = src;\n });\n return Promise.race([imagePromise, CoreUtil.wait(3e3)]);\n },\n getErrorMessage(err) {\n return err instanceof Error ? err.message : \"Unknown Error\";\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n debounce(func, timeout = 500) {\n let timer = void 0;\n return (...args) => {\n function next() {\n func(...args);\n }\n if (timer) {\n clearTimeout(timer);\n }\n timer = setTimeout(next, timeout);\n };\n },\n handleMobileLinking(wallet, target = \"_self\") {\n const { walletConnectUri } = OptionsCtrl.state;\n const { mobile, name } = wallet;\n const nativeUrl = mobile == null ? void 0 : mobile.native;\n const universalUrl = mobile == null ? void 0 : mobile.universal;\n UiUtil.setRecentWallet(wallet);\n function onRedirect(uri) {\n if (nativeUrl) {\n const href = CoreUtil.formatNativeUrl(nativeUrl, uri, name);\n CoreUtil.openHref(href, target);\n } else if (universalUrl) {\n const href = CoreUtil.formatUniversalUrl(universalUrl, uri, name);\n CoreUtil.openHref(href, target);\n }\n }\n if (walletConnectUri) {\n onRedirect(walletConnectUri);\n }\n },\n handleAndroidLinking() {\n const { walletConnectUri } = OptionsCtrl.state;\n if (walletConnectUri) {\n CoreUtil.setWalletConnectAndroidDeepLink(walletConnectUri);\n CoreUtil.openHref(walletConnectUri, CoreUtil.isTelegram() ? \"_blank\" : \"_self\");\n }\n },\n async handleUriCopy() {\n const { walletConnectUri } = OptionsCtrl.state;\n if (walletConnectUri) {\n try {\n await navigator.clipboard.writeText(walletConnectUri);\n ToastCtrl.openToast(\"Link copied\", \"success\");\n } catch (e) {\n ToastCtrl.openToast(\"Failed to copy\", \"error\");\n }\n }\n },\n getCustomImageUrls() {\n const { walletImages } = ConfigCtrl.state;\n const walletUrls = Object.values(walletImages != null ? walletImages : {});\n return Object.values(walletUrls);\n },\n truncate(value, strLen = 8) {\n if (value.length <= strLen) {\n return value;\n }\n return `${value.substring(0, 4)}...${value.substring(value.length - 4)}`;\n },\n setRecentWallet(wallet) {\n try {\n localStorage.setItem(UiUtil.WCM_RECENT_WALLET_DATA, JSON.stringify(wallet));\n } catch (e) {\n console.info(\"Unable to set recent wallet\");\n }\n },\n getRecentWallet() {\n try {\n const wallet = localStorage.getItem(UiUtil.WCM_RECENT_WALLET_DATA);\n if (wallet) {\n const json = JSON.parse(wallet);\n return json;\n }\n return void 0;\n } catch (e) {\n console.info(\"Unable to get recent wallet\");\n }\n return void 0;\n },\n caseSafeIncludes(str1, str2) {\n return str1.toUpperCase().includes(str2.toUpperCase());\n },\n openWalletExplorerUrl() {\n CoreUtil.openHref(UiUtil.EXPLORER_WALLET_URL, \"_blank\");\n },\n getCachedRouterWalletPlatforms() {\n const { desktop, mobile } = CoreUtil.getWalletRouterData();\n const isDesktop = Boolean(desktop == null ? void 0 : desktop.native);\n const isWeb = Boolean(desktop == null ? void 0 : desktop.universal);\n const isMobile = Boolean(mobile == null ? void 0 : mobile.native) || Boolean(mobile == null ? void 0 : mobile.universal);\n return { isDesktop, isMobile, isWeb };\n },\n goToConnectingView(wallet) {\n RouterCtrl.setData({ Wallet: wallet });\n const isMobileDevice = CoreUtil.isMobile();\n const { isDesktop, isWeb, isMobile } = UiUtil.getCachedRouterWalletPlatforms();\n if (isMobileDevice) {\n if (isMobile) {\n RouterCtrl.push(\"MobileConnecting\");\n if (!CoreUtil.isAndroid() && CoreUtil.isTelegram()) {\n this.handleMobileLinking(wallet, \"_blank\");\n }\n } else if (isWeb) {\n RouterCtrl.push(\"WebConnecting\");\n } else {\n RouterCtrl.push(\"InstallWallet\");\n }\n } else if (isDesktop) {\n RouterCtrl.push(\"DesktopConnecting\");\n } else if (isWeb) {\n RouterCtrl.push(\"WebConnecting\");\n } else if (isMobile) {\n RouterCtrl.push(\"MobileQrcodeConnecting\");\n } else {\n RouterCtrl.push(\"InstallWallet\");\n }\n }\n};\n\nconst styles$m = css`.wcm-router{overflow:hidden;will-change:transform}.wcm-content{display:flex;flex-direction:column}`;\n\nvar __defProp$q = Object.defineProperty;\nvar __getOwnPropDesc$q = Object.getOwnPropertyDescriptor;\nvar __decorateClass$q = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$q(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$q(target, key, result);\n return result;\n};\nlet WcmModalRouter = class extends LitElement {\n // -- lifecycle ---------------------------------------------------- //\n constructor() {\n super();\n this.view = RouterCtrl.state.view;\n this.prevView = RouterCtrl.state.view;\n // -- private ------------------------------------------------------ //\n this.unsubscribe = void 0;\n this.oldHeight = \"0px\";\n this.resizeObserver = void 0;\n this.unsubscribe = RouterCtrl.subscribe((routerState) => {\n if (this.view !== routerState.view) {\n this.onChangeRoute();\n }\n });\n }\n firstUpdated() {\n this.resizeObserver = new ResizeObserver(([conetnt]) => {\n const newHeight = `${conetnt.contentRect.height}px`;\n if (this.oldHeight !== \"0px\") {\n animate(this.routerEl, { height: [this.oldHeight, newHeight] }, { duration: 0.2 });\n }\n this.oldHeight = newHeight;\n });\n this.resizeObserver.observe(this.contentEl);\n }\n disconnectedCallback() {\n var _a, _b;\n (_a = this.unsubscribe) == null ? void 0 : _a.call(this);\n (_b = this.resizeObserver) == null ? void 0 : _b.disconnect();\n }\n get routerEl() {\n return UiUtil.getShadowRootElement(this, \".wcm-router\");\n }\n get contentEl() {\n return UiUtil.getShadowRootElement(this, \".wcm-content\");\n }\n viewTemplate() {\n switch (this.view) {\n case \"ConnectWallet\":\n return html``;\n case \"DesktopConnecting\":\n return html``;\n case \"MobileConnecting\":\n return html``;\n case \"WebConnecting\":\n return html``;\n case \"MobileQrcodeConnecting\":\n return html``;\n case \"WalletExplorer\":\n return html``;\n case \"Qrcode\":\n return html``;\n case \"InstallWallet\":\n return html``;\n default:\n return html`
Not Found
`;\n }\n }\n async onChangeRoute() {\n await animate(\n this.routerEl,\n { opacity: [1, 0], scale: [1, 1.02] },\n { duration: 0.15, delay: 0.1 }\n ).finished;\n this.view = RouterCtrl.state.view;\n animate(this.routerEl, { opacity: [0, 1], scale: [0.99, 1] }, { duration: 0.37, delay: 0.05 });\n }\n // -- render ------------------------------------------------------- //\n render() {\n return html`
${this.viewTemplate()}
`;\n }\n};\nWcmModalRouter.styles = [ThemeUtil.globalCss, styles$m];\n__decorateClass$q([\n state()\n], WcmModalRouter.prototype, \"view\", 2);\n__decorateClass$q([\n state()\n], WcmModalRouter.prototype, \"prevView\", 2);\nWcmModalRouter = __decorateClass$q([\n customElement(\"wcm-modal-router\")\n], WcmModalRouter);\n\nconst styles$l = css`div{height:36px;width:max-content;display:flex;justify-content:center;align-items:center;padding:9px 15px 11px;position:absolute;top:12px;box-shadow:0 6px 14px -6px rgba(10,16,31,.3),0 10px 32px -4px rgba(10,16,31,.15);z-index:2;left:50%;transform:translateX(-50%);pointer-events:none;backdrop-filter:blur(20px) saturate(1.8);-webkit-backdrop-filter:blur(20px) saturate(1.8);border-radius:var(--wcm-notification-border-radius);border:1px solid var(--wcm-color-overlay);background-color:var(--wcm-color-overlay)}svg{margin-right:5px}@-moz-document url-prefix(){div{background-color:var(--wcm-color-bg-3)}}.wcm-success path{fill:var(--wcm-accent-color)}.wcm-error path{fill:var(--wcm-error-color)}`;\n\nvar __defProp$p = Object.defineProperty;\nvar __getOwnPropDesc$p = Object.getOwnPropertyDescriptor;\nvar __decorateClass$p = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$p(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$p(target, key, result);\n return result;\n};\nlet WcmModalToast = class extends LitElement {\n constructor() {\n super();\n this.open = false;\n // -- private ------------------------------------------------------ //\n this.unsubscribe = void 0;\n this.timeout = void 0;\n this.unsubscribe = ToastCtrl.subscribe((newState) => {\n if (newState.open) {\n this.open = true;\n this.timeout = setTimeout(() => ToastCtrl.closeToast(), 2200);\n } else {\n this.open = false;\n clearTimeout(this.timeout);\n }\n });\n }\n disconnectedCallback() {\n var _a;\n (_a = this.unsubscribe) == null ? void 0 : _a.call(this);\n clearTimeout(this.timeout);\n ToastCtrl.closeToast();\n }\n // -- render ------------------------------------------------------- //\n render() {\n const { message, variant } = ToastCtrl.state;\n const classes = {\n \"wcm-success\": variant === \"success\",\n \"wcm-error\": variant === \"error\"\n };\n return this.open ? html`
${variant === \"success\" ? SvgUtil.CHECKMARK_ICON : null} ${variant === \"error\" ? SvgUtil.CROSS_ICON : null}${message}
` : null;\n }\n};\nWcmModalToast.styles = [ThemeUtil.globalCss, styles$l];\n__decorateClass$p([\n state()\n], WcmModalToast.prototype, \"open\", 2);\nWcmModalToast = __decorateClass$p([\n customElement(\"wcm-modal-toast\")\n], WcmModalToast);\n\nconst CONNECTING_ERROR_MARGIN = 0.1;\nconst CIRCLE_SIZE_MODIFIER = 2.5;\nconst QRCODE_MATRIX_MARGIN = 7;\nfunction isAdjecentDots(cy, otherCy, cellSize) {\n if (cy === otherCy) {\n return false;\n }\n const diff = cy - otherCy < 0 ? otherCy - cy : cy - otherCy;\n return diff <= cellSize + CONNECTING_ERROR_MARGIN;\n}\nfunction getMatrix(value, errorCorrectionLevel) {\n const arr = Array.prototype.slice.call(\n QRCodeUtil.create(value, { errorCorrectionLevel }).modules.data,\n 0\n );\n const sqrt = Math.sqrt(arr.length);\n return arr.reduce(\n (rows, key, index) => (index % sqrt === 0 ? rows.push([key]) : rows[rows.length - 1].push(key)) && rows,\n []\n );\n}\nconst QrCodeUtil = {\n generate(uri, size, logoSize) {\n const dotColor = \"#141414\";\n const edgeColor = \"#ffffff\";\n const dots = [];\n const matrix = getMatrix(uri, \"Q\");\n const cellSize = size / matrix.length;\n const qrList = [\n { x: 0, y: 0 },\n { x: 1, y: 0 },\n { x: 0, y: 1 }\n ];\n qrList.forEach(({ x, y }) => {\n const x1 = (matrix.length - QRCODE_MATRIX_MARGIN) * cellSize * x;\n const y1 = (matrix.length - QRCODE_MATRIX_MARGIN) * cellSize * y;\n const borderRadius = 0.45;\n for (let i = 0; i < qrList.length; i += 1) {\n const dotSize = cellSize * (QRCODE_MATRIX_MARGIN - i * 2);\n dots.push(\n svg$1``\n );\n }\n });\n const clearArenaSize = Math.floor((logoSize + 25) / cellSize);\n const matrixMiddleStart = matrix.length / 2 - clearArenaSize / 2;\n const matrixMiddleEnd = matrix.length / 2 + clearArenaSize / 2 - 1;\n const circles = [];\n matrix.forEach((row, i) => {\n row.forEach((_, j) => {\n if (matrix[i][j]) {\n if (!(i < QRCODE_MATRIX_MARGIN && j < QRCODE_MATRIX_MARGIN || i > matrix.length - (QRCODE_MATRIX_MARGIN + 1) && j < QRCODE_MATRIX_MARGIN || i < QRCODE_MATRIX_MARGIN && j > matrix.length - (QRCODE_MATRIX_MARGIN + 1))) {\n if (!(i > matrixMiddleStart && i < matrixMiddleEnd && j > matrixMiddleStart && j < matrixMiddleEnd)) {\n const cx = i * cellSize + cellSize / 2;\n const cy = j * cellSize + cellSize / 2;\n circles.push([cx, cy]);\n }\n }\n }\n });\n });\n const circlesToConnect = {};\n circles.forEach(([cx, cy]) => {\n if (circlesToConnect[cx]) {\n circlesToConnect[cx].push(cy);\n } else {\n circlesToConnect[cx] = [cy];\n }\n });\n Object.entries(circlesToConnect).map(([cx, cys]) => {\n const newCys = cys.filter(\n (cy) => cys.every((otherCy) => !isAdjecentDots(cy, otherCy, cellSize))\n );\n return [Number(cx), newCys];\n }).forEach(([cx, cys]) => {\n cys.forEach((cy) => {\n dots.push(\n svg$1``\n );\n });\n });\n Object.entries(circlesToConnect).filter(([_, cys]) => cys.length > 1).map(([cx, cys]) => {\n const newCys = cys.filter((cy) => cys.some((otherCy) => isAdjecentDots(cy, otherCy, cellSize)));\n return [Number(cx), newCys];\n }).map(([cx, cys]) => {\n cys.sort((a, b) => a < b ? -1 : 1);\n const groups = [];\n for (const cy of cys) {\n const group = groups.find(\n (item) => item.some((otherCy) => isAdjecentDots(cy, otherCy, cellSize))\n );\n if (group) {\n group.push(cy);\n } else {\n groups.push([cy]);\n }\n }\n return [cx, groups.map((item) => [item[0], item[item.length - 1]])];\n }).forEach(([cx, groups]) => {\n groups.forEach(([y1, y2]) => {\n dots.push(\n svg$1``\n );\n });\n });\n return dots;\n }\n};\n\nconst styles$k = css`@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}div{position:relative;user-select:none;display:block;overflow:hidden;aspect-ratio:1/1;animation:fadeIn ease .2s}.wcm-dark{background-color:#fff;border-radius:var(--wcm-container-border-radius);padding:18px;box-shadow:0 2px 5px #000}svg:first-child,wcm-wallet-image{position:absolute;top:50%;left:50%;transform:translateY(-50%) translateX(-50%)}wcm-wallet-image{transform:translateY(-50%) translateX(-50%)}wcm-wallet-image{width:25%;height:25%;border-radius:var(--wcm-wallet-icon-border-radius)}svg:first-child{transform:translateY(-50%) translateX(-50%) scale(.9)}svg:first-child path:first-child{fill:var(--wcm-accent-color)}svg:first-child path:last-child{stroke:var(--wcm-color-overlay)}`;\n\nvar __defProp$o = Object.defineProperty;\nvar __getOwnPropDesc$o = Object.getOwnPropertyDescriptor;\nvar __decorateClass$o = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$o(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$o(target, key, result);\n return result;\n};\nlet WcmQrCode = class extends LitElement {\n constructor() {\n super(...arguments);\n this.uri = \"\";\n this.size = 0;\n this.imageId = void 0;\n this.walletId = void 0;\n this.imageUrl = void 0;\n }\n // -- private ------------------------------------------------------ //\n svgTemplate() {\n const isLightMode = ThemeCtrl.state.themeMode === \"light\";\n const size = isLightMode ? this.size : this.size - 18 * 2;\n return svg$1`${QrCodeUtil.generate(this.uri, size, size / 4)}`;\n }\n // -- render ------------------------------------------------------- //\n render() {\n const classes = {\n \"wcm-dark\": ThemeCtrl.state.themeMode === \"dark\"\n };\n return html`
${this.walletId || this.imageUrl ? html`` : SvgUtil.WALLET_CONNECT_ICON_COLORED} ${this.svgTemplate()}
`;\n }\n};\nWcmQrCode.styles = [ThemeUtil.globalCss, styles$k];\n__decorateClass$o([\n property()\n], WcmQrCode.prototype, \"uri\", 2);\n__decorateClass$o([\n property({ type: Number })\n], WcmQrCode.prototype, \"size\", 2);\n__decorateClass$o([\n property()\n], WcmQrCode.prototype, \"imageId\", 2);\n__decorateClass$o([\n property()\n], WcmQrCode.prototype, \"walletId\", 2);\n__decorateClass$o([\n property()\n], WcmQrCode.prototype, \"imageUrl\", 2);\nWcmQrCode = __decorateClass$o([\n customElement(\"wcm-qrcode\")\n], WcmQrCode);\n\nconst styles$j = css`:host{position:relative;height:28px;width:80%}input{width:100%;height:100%;line-height:28px!important;border-radius:var(--wcm-input-border-radius);font-style:normal;font-family:-apple-system,system-ui,BlinkMacSystemFont,'Segoe UI',Roboto,Ubuntu,'Helvetica Neue',sans-serif;font-feature-settings:'case' on;font-weight:500;font-size:16px;letter-spacing:-.03em;padding:0 10px 0 34px;transition:.2s all ease;color:var(--wcm-color-fg-1);background-color:var(--wcm-color-bg-3);box-shadow:inset 0 0 0 1px var(--wcm-color-overlay);caret-color:var(--wcm-accent-color)}input::placeholder{color:var(--wcm-color-fg-2)}svg{left:10px;top:4px;pointer-events:none;position:absolute;width:20px;height:20px}input:focus-within{box-shadow:inset 0 0 0 1px var(--wcm-accent-color)}path{fill:var(--wcm-color-fg-2)}`;\n\nvar __defProp$n = Object.defineProperty;\nvar __getOwnPropDesc$n = Object.getOwnPropertyDescriptor;\nvar __decorateClass$n = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$n(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$n(target, key, result);\n return result;\n};\nlet WcmSearchInput = class extends LitElement {\n constructor() {\n super(...arguments);\n this.onChange = () => null;\n }\n // -- render ------------------------------------------------------- //\n render() {\n return html` ${SvgUtil.SEARCH_ICON}`;\n }\n};\nWcmSearchInput.styles = [ThemeUtil.globalCss, styles$j];\n__decorateClass$n([\n property()\n], WcmSearchInput.prototype, \"onChange\", 2);\nWcmSearchInput = __decorateClass$n([\n customElement(\"wcm-search-input\")\n], WcmSearchInput);\n\nconst styles$i = css`@keyframes rotate{100%{transform:rotate(360deg)}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}100%{stroke-dasharray:90,150;stroke-dashoffset:-124}}svg{animation:rotate 2s linear infinite;display:flex;justify-content:center;align-items:center}svg circle{stroke-linecap:round;animation:dash 1.5s ease infinite;stroke:var(--wcm-accent-color)}`;\n\nvar __defProp$m = Object.defineProperty;\nvar __getOwnPropDesc$m = Object.getOwnPropertyDescriptor;\nvar __decorateClass$m = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$m(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$m(target, key, result);\n return result;\n};\nlet WcmSpinner = class extends LitElement {\n // -- render ------------------------------------------------------- //\n render() {\n return html``;\n }\n};\nWcmSpinner.styles = [ThemeUtil.globalCss, styles$i];\nWcmSpinner = __decorateClass$m([\n customElement(\"wcm-spinner\")\n], WcmSpinner);\n\nconst styles$h = css`span{font-style:normal;font-family:var(--wcm-font-family);font-feature-settings:var(--wcm-font-feature-settings)}.wcm-xsmall-bold{font-family:var(--wcm-text-xsmall-bold-font-family);font-weight:var(--wcm-text-xsmall-bold-weight);font-size:var(--wcm-text-xsmall-bold-size);line-height:var(--wcm-text-xsmall-bold-line-height);letter-spacing:var(--wcm-text-xsmall-bold-letter-spacing);text-transform:var(--wcm-text-xsmall-bold-text-transform)}.wcm-xsmall-regular{font-family:var(--wcm-text-xsmall-regular-font-family);font-weight:var(--wcm-text-xsmall-regular-weight);font-size:var(--wcm-text-xsmall-regular-size);line-height:var(--wcm-text-xsmall-regular-line-height);letter-spacing:var(--wcm-text-xsmall-regular-letter-spacing);text-transform:var(--wcm-text-xsmall-regular-text-transform)}.wcm-small-thin{font-family:var(--wcm-text-small-thin-font-family);font-weight:var(--wcm-text-small-thin-weight);font-size:var(--wcm-text-small-thin-size);line-height:var(--wcm-text-small-thin-line-height);letter-spacing:var(--wcm-text-small-thin-letter-spacing);text-transform:var(--wcm-text-small-thin-text-transform)}.wcm-small-regular{font-family:var(--wcm-text-small-regular-font-family);font-weight:var(--wcm-text-small-regular-weight);font-size:var(--wcm-text-small-regular-size);line-height:var(--wcm-text-small-regular-line-height);letter-spacing:var(--wcm-text-small-regular-letter-spacing);text-transform:var(--wcm-text-small-regular-text-transform)}.wcm-medium-regular{font-family:var(--wcm-text-medium-regular-font-family);font-weight:var(--wcm-text-medium-regular-weight);font-size:var(--wcm-text-medium-regular-size);line-height:var(--wcm-text-medium-regular-line-height);letter-spacing:var(--wcm-text-medium-regular-letter-spacing);text-transform:var(--wcm-text-medium-regular-text-transform)}.wcm-big-bold{font-family:var(--wcm-text-big-bold-font-family);font-weight:var(--wcm-text-big-bold-weight);font-size:var(--wcm-text-big-bold-size);line-height:var(--wcm-text-big-bold-line-height);letter-spacing:var(--wcm-text-big-bold-letter-spacing);text-transform:var(--wcm-text-big-bold-text-transform)}:host(*){color:var(--wcm-color-fg-1)}.wcm-color-primary{color:var(--wcm-color-fg-1)}.wcm-color-secondary{color:var(--wcm-color-fg-2)}.wcm-color-tertiary{color:var(--wcm-color-fg-3)}.wcm-color-inverse{color:var(--wcm-accent-fill-color)}.wcm-color-accnt{color:var(--wcm-accent-color)}.wcm-color-error{color:var(--wcm-error-color)}`;\n\nvar __defProp$l = Object.defineProperty;\nvar __getOwnPropDesc$l = Object.getOwnPropertyDescriptor;\nvar __decorateClass$l = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$l(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$l(target, key, result);\n return result;\n};\nlet WcmText = class extends LitElement {\n constructor() {\n super(...arguments);\n this.variant = \"medium-regular\";\n this.color = \"primary\";\n }\n // -- render ------------------------------------------------------- //\n render() {\n const classes = {\n \"wcm-big-bold\": this.variant === \"big-bold\",\n \"wcm-medium-regular\": this.variant === \"medium-regular\",\n \"wcm-small-regular\": this.variant === \"small-regular\",\n \"wcm-small-thin\": this.variant === \"small-thin\",\n \"wcm-xsmall-regular\": this.variant === \"xsmall-regular\",\n \"wcm-xsmall-bold\": this.variant === \"xsmall-bold\",\n \"wcm-color-primary\": this.color === \"primary\",\n \"wcm-color-secondary\": this.color === \"secondary\",\n \"wcm-color-tertiary\": this.color === \"tertiary\",\n \"wcm-color-inverse\": this.color === \"inverse\",\n \"wcm-color-accnt\": this.color === \"accent\",\n \"wcm-color-error\": this.color === \"error\"\n };\n return html``;\n }\n};\nWcmText.styles = [ThemeUtil.globalCss, styles$h];\n__decorateClass$l([\n property()\n], WcmText.prototype, \"variant\", 2);\n__decorateClass$l([\n property()\n], WcmText.prototype, \"color\", 2);\nWcmText = __decorateClass$l([\n customElement(\"wcm-text\")\n], WcmText);\n\nconst styles$g = css`button{width:100%;height:100%;border-radius:var(--wcm-button-hover-highlight-border-radius);display:flex;align-items:flex-start}button:active{background-color:var(--wcm-color-overlay)}@media(hover:hover){button:hover{background-color:var(--wcm-color-overlay)}}button>div{width:80px;padding:5px 0;display:flex;flex-direction:column;align-items:center}wcm-text{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center}wcm-wallet-image{height:60px;width:60px;transition:all .2s ease;border-radius:var(--wcm-wallet-icon-border-radius);margin-bottom:5px}.wcm-sublabel{margin-top:2px}`;\n\nvar __defProp$k = Object.defineProperty;\nvar __getOwnPropDesc$k = Object.getOwnPropertyDescriptor;\nvar __decorateClass$k = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$k(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$k(target, key, result);\n return result;\n};\nlet WcmWalletButton = class extends LitElement {\n constructor() {\n super(...arguments);\n this.onClick = () => null;\n this.name = \"\";\n this.walletId = \"\";\n this.label = void 0;\n this.imageId = void 0;\n this.installed = false;\n this.recent = false;\n }\n // -- private ------------------------------------------------------ //\n sublabelTemplate() {\n if (this.recent) {\n return html`RECENT`;\n } else if (this.installed) {\n return html`INSTALLED`;\n }\n return null;\n }\n handleClick() {\n EventsCtrl.click({ name: \"WALLET_BUTTON\", walletId: this.walletId });\n this.onClick();\n }\n // -- render ------------------------------------------------------- //\n render() {\n var _a;\n return html``;\n }\n};\nWcmWalletButton.styles = [ThemeUtil.globalCss, styles$g];\n__decorateClass$k([\n property()\n], WcmWalletButton.prototype, \"onClick\", 2);\n__decorateClass$k([\n property()\n], WcmWalletButton.prototype, \"name\", 2);\n__decorateClass$k([\n property()\n], WcmWalletButton.prototype, \"walletId\", 2);\n__decorateClass$k([\n property()\n], WcmWalletButton.prototype, \"label\", 2);\n__decorateClass$k([\n property()\n], WcmWalletButton.prototype, \"imageId\", 2);\n__decorateClass$k([\n property({ type: Boolean })\n], WcmWalletButton.prototype, \"installed\", 2);\n__decorateClass$k([\n property({ type: Boolean })\n], WcmWalletButton.prototype, \"recent\", 2);\nWcmWalletButton = __decorateClass$k([\n customElement(\"wcm-wallet-button\")\n], WcmWalletButton);\n\nconst styles$f = css`:host{display:block}div{overflow:hidden;position:relative;border-radius:inherit;width:100%;height:100%;background-color:var(--wcm-color-overlay)}svg{position:relative;width:100%;height:100%}div::after{content:'';position:absolute;top:0;bottom:0;left:0;right:0;border-radius:inherit;border:1px solid var(--wcm-color-overlay)}div img{width:100%;height:100%;object-fit:cover;object-position:center}#wallet-placeholder-fill{fill:var(--wcm-color-bg-3)}#wallet-placeholder-dash{stroke:var(--wcm-color-overlay)}`;\n\nvar __defProp$j = Object.defineProperty;\nvar __getOwnPropDesc$j = Object.getOwnPropertyDescriptor;\nvar __decorateClass$j = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$j(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$j(target, key, result);\n return result;\n};\nlet WcmWalletImage = class extends LitElement {\n constructor() {\n super(...arguments);\n this.walletId = \"\";\n this.imageId = void 0;\n this.imageUrl = void 0;\n }\n // -- render ------------------------------------------------------- //\n render() {\n var _a;\n const src = ((_a = this.imageUrl) == null ? void 0 : _a.length) ? this.imageUrl : UiUtil.getWalletIcon({ id: this.walletId, image_id: this.imageId });\n return html`${src.length ? html`
\"${this.id}\"
` : SvgUtil.WALLET_PLACEHOLDER}`;\n }\n};\nWcmWalletImage.styles = [ThemeUtil.globalCss, styles$f];\n__decorateClass$j([\n property()\n], WcmWalletImage.prototype, \"walletId\", 2);\n__decorateClass$j([\n property()\n], WcmWalletImage.prototype, \"imageId\", 2);\n__decorateClass$j([\n property()\n], WcmWalletImage.prototype, \"imageUrl\", 2);\nWcmWalletImage = __decorateClass$j([\n customElement(\"wcm-wallet-image\")\n], WcmWalletImage);\n\nvar __defProp$i = Object.defineProperty;\nvar __getOwnPropDesc$i = Object.getOwnPropertyDescriptor;\nvar __decorateClass$i = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$i(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$i(target, key, result);\n return result;\n};\nlet WcmExplorerContext = class extends LitElement {\n // -- lifecycle ---------------------------------------------------- //\n constructor() {\n super();\n this.preload = true;\n this.preloadData();\n }\n // -- private ------------------------------------------------------ //\n async loadImages(images) {\n try {\n if (images == null ? void 0 : images.length) {\n await Promise.all(images.map(async (url) => UiUtil.preloadImage(url)));\n }\n } catch (e) {\n console.info(\"Unsuccessful attempt at preloading some images\", images);\n }\n }\n async preloadListings() {\n if (ConfigCtrl.state.enableExplorer) {\n await ExplorerCtrl.getRecomendedWallets();\n OptionsCtrl.setIsDataLoaded(true);\n const { recomendedWallets } = ExplorerCtrl.state;\n const walletImgs = recomendedWallets.map((wallet) => UiUtil.getWalletIcon(wallet));\n await this.loadImages(walletImgs);\n } else {\n OptionsCtrl.setIsDataLoaded(true);\n }\n }\n async preloadCustomImages() {\n const images = UiUtil.getCustomImageUrls();\n await this.loadImages(images);\n }\n async preloadData() {\n try {\n if (this.preload) {\n this.preload = false;\n await Promise.all([this.preloadListings(), this.preloadCustomImages()]);\n }\n } catch (err) {\n console.error(err);\n ToastCtrl.openToast(\"Failed preloading\", \"error\");\n }\n }\n};\n__decorateClass$i([\n state()\n], WcmExplorerContext.prototype, \"preload\", 2);\nWcmExplorerContext = __decorateClass$i([\n customElement(\"wcm-explorer-context\")\n], WcmExplorerContext);\n\nvar __defProp$h = Object.defineProperty;\nvar __getOwnPropDesc$h = Object.getOwnPropertyDescriptor;\nvar __decorateClass$h = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$h(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$h(target, key, result);\n return result;\n};\nlet WcmThemeContext = class extends LitElement {\n // -- lifecycle ---------------------------------------------------- //\n constructor() {\n super();\n // -- private ------------------------------------------------------ //\n this.unsubscribeTheme = void 0;\n ThemeUtil.setTheme();\n this.unsubscribeTheme = ThemeCtrl.subscribe(ThemeUtil.setTheme);\n }\n disconnectedCallback() {\n var _a;\n (_a = this.unsubscribeTheme) == null ? void 0 : _a.call(this);\n }\n};\nWcmThemeContext = __decorateClass$h([\n customElement(\"wcm-theme-context\")\n], WcmThemeContext);\n\nconst styles$e = css`@keyframes scroll{0%{transform:translate3d(0,0,0)}100%{transform:translate3d(calc(-70px * 9),0,0)}}.wcm-slider{position:relative;overflow-x:hidden;padding:10px 0;margin:0 -20px;width:calc(100% + 40px)}.wcm-track{display:flex;width:calc(70px * 18);animation:scroll 20s linear infinite;opacity:.7}.wcm-track svg{margin:0 5px}wcm-wallet-image{width:60px;height:60px;margin:0 5px;border-radius:var(--wcm-wallet-icon-border-radius)}.wcm-grid{display:grid;grid-template-columns:repeat(4,80px);justify-content:space-between}.wcm-title{display:flex;align-items:center;margin-bottom:10px}.wcm-title svg{margin-right:6px}.wcm-title path{fill:var(--wcm-accent-color)}wcm-modal-footer .wcm-title{padding:0 10px}wcm-button-big{position:absolute;top:50%;left:50%;transform:translateY(-50%) translateX(-50%);filter:drop-shadow(0 0 17px var(--wcm-color-bg-1))}wcm-info-footer{flex-direction:column;align-items:center;display:flex;width:100%;padding:5px 0}wcm-info-footer wcm-text{text-align:center;margin-bottom:15px}#wallet-placeholder-fill{fill:var(--wcm-color-bg-3)}#wallet-placeholder-dash{stroke:var(--wcm-color-overlay)}`;\n\nvar __defProp$g = Object.defineProperty;\nvar __getOwnPropDesc$g = Object.getOwnPropertyDescriptor;\nvar __decorateClass$g = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$g(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$g(target, key, result);\n return result;\n};\nlet WcmAndroidWalletSelection = class extends LitElement {\n // -- private ------------------------------------------------------ //\n onGoToQrcode() {\n RouterCtrl.push(\"Qrcode\");\n }\n // -- render ------------------------------------------------------- //\n render() {\n const { recomendedWallets } = ExplorerCtrl.state;\n const wallets = [...recomendedWallets, ...recomendedWallets];\n const recomendedCount = CoreUtil.RECOMMENDED_WALLET_AMOUNT * 2;\n return html`
${SvgUtil.MOBILE_ICON}WalletConnect
${[...Array(recomendedCount)].map((_, index) => {\n const wallet = wallets[index % wallets.length];\n return wallet ? html`` : SvgUtil.WALLET_PLACEHOLDER;\n })}
Select Wallet
Choose WalletConnect to see supported apps on your device`;\n }\n};\nWcmAndroidWalletSelection.styles = [ThemeUtil.globalCss, styles$e];\nWcmAndroidWalletSelection = __decorateClass$g([\n customElement(\"wcm-android-wallet-selection\")\n], WcmAndroidWalletSelection);\n\nconst styles$d = css`@keyframes loading{to{stroke-dashoffset:0}}@keyframes shake{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(1px,0,0)}30%,50%,70%{transform:translate3d(-2px,0,0)}40%,60%{transform:translate3d(2px,0,0)}}:host{display:flex;flex-direction:column;align-items:center}div{position:relative;width:110px;height:110px;display:flex;justify-content:center;align-items:center;margin:40px 0 20px 0;transform:translate3d(0,0,0)}svg{position:absolute;width:110px;height:110px;fill:none;stroke:transparent;stroke-linecap:round;stroke-width:2px;top:0;left:0}use{stroke:var(--wcm-accent-color);animation:loading 1s linear infinite}wcm-wallet-image{border-radius:var(--wcm-wallet-icon-large-border-radius);width:90px;height:90px}wcm-text{margin-bottom:40px}.wcm-error svg{stroke:var(--wcm-error-color)}.wcm-error use{display:none}.wcm-error{animation:shake .4s cubic-bezier(.36,.07,.19,.97) both}.wcm-stale svg,.wcm-stale use{display:none}`;\n\nvar __defProp$f = Object.defineProperty;\nvar __getOwnPropDesc$f = Object.getOwnPropertyDescriptor;\nvar __decorateClass$f = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$f(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$f(target, key, result);\n return result;\n};\nlet WcmConnectorWaiting = class extends LitElement {\n constructor() {\n super(...arguments);\n this.walletId = void 0;\n this.imageId = void 0;\n this.isError = false;\n this.isStale = false;\n this.label = \"\";\n }\n // -- private ------------------------------------------------------ //\n svgLoaderTemplate() {\n var _a, _b;\n const ICON_SIZE = 88;\n const DH_ARRAY = 317;\n const DH_OFFSET = 425;\n const radius = (_b = (_a = ThemeCtrl.state.themeVariables) == null ? void 0 : _a[\"--wcm-wallet-icon-large-border-radius\"]) != null ? _b : ThemeUtil.getPreset(\"--wcm-wallet-icon-large-border-radius\");\n let numRadius = 0;\n if (radius.includes(\"%\")) {\n numRadius = ICON_SIZE / 100 * parseInt(radius, 10);\n } else {\n numRadius = parseInt(radius, 10);\n }\n numRadius *= 1.17;\n const dashArray = DH_ARRAY - numRadius * 1.57;\n const dashOffset = DH_OFFSET - numRadius * 1.8;\n return html``;\n }\n // -- render ------------------------------------------------------- //\n render() {\n const classes = {\n \"wcm-error\": this.isError,\n \"wcm-stale\": this.isStale\n };\n return html`
${this.svgLoaderTemplate()}
${this.isError ? \"Connection declined\" : this.label}`;\n }\n};\nWcmConnectorWaiting.styles = [ThemeUtil.globalCss, styles$d];\n__decorateClass$f([\n property()\n], WcmConnectorWaiting.prototype, \"walletId\", 2);\n__decorateClass$f([\n property()\n], WcmConnectorWaiting.prototype, \"imageId\", 2);\n__decorateClass$f([\n property({ type: Boolean })\n], WcmConnectorWaiting.prototype, \"isError\", 2);\n__decorateClass$f([\n property({ type: Boolean })\n], WcmConnectorWaiting.prototype, \"isStale\", 2);\n__decorateClass$f([\n property()\n], WcmConnectorWaiting.prototype, \"label\", 2);\nWcmConnectorWaiting = __decorateClass$f([\n customElement(\"wcm-connector-waiting\")\n], WcmConnectorWaiting);\n\nconst DataUtil = {\n manualWallets() {\n var _a, _b;\n const { mobileWallets, desktopWallets } = ConfigCtrl.state;\n const recentWalletId = (_a = DataUtil.recentWallet()) == null ? void 0 : _a.id;\n const platformWallets = CoreUtil.isMobile() ? mobileWallets : desktopWallets;\n const wallets = platformWallets == null ? void 0 : platformWallets.filter((wallet) => recentWalletId !== wallet.id);\n return (_b = CoreUtil.isMobile() ? wallets == null ? void 0 : wallets.map(({ id, name, links }) => ({ id, name, mobile: links, links })) : wallets == null ? void 0 : wallets.map(({ id, name, links }) => ({ id, name, desktop: links, links }))) != null ? _b : [];\n },\n recentWallet() {\n return UiUtil.getRecentWallet();\n },\n recomendedWallets(skipRecent = false) {\n var _a;\n const recentWalletId = skipRecent ? void 0 : (_a = DataUtil.recentWallet()) == null ? void 0 : _a.id;\n const { recomendedWallets } = ExplorerCtrl.state;\n const wallets = recomendedWallets.filter((wallet) => recentWalletId !== wallet.id);\n return wallets;\n }\n};\n\nconst TemplateUtil = {\n onConnecting(data) {\n UiUtil.goToConnectingView(data);\n },\n manualWalletsTemplate() {\n const wallets = DataUtil.manualWallets();\n return wallets.map(\n (wallet) => html` this.onConnecting(wallet)}\">`\n );\n },\n recomendedWalletsTemplate(skipRecent = false) {\n const wallets = DataUtil.recomendedWallets(skipRecent);\n return wallets.map(\n (wallet) => html` this.onConnecting(wallet)}\">`\n );\n },\n recentWalletTemplate() {\n const wallet = DataUtil.recentWallet();\n if (!wallet) {\n return void 0;\n }\n return html` this.onConnecting(wallet)}\">`;\n }\n};\n\nconst styles$c = css`.wcm-grid{display:grid;grid-template-columns:repeat(4,80px);justify-content:space-between}.wcm-desktop-title,.wcm-mobile-title{display:flex;align-items:center}.wcm-mobile-title{justify-content:space-between;margin-bottom:20px;margin-top:-10px}.wcm-desktop-title{margin-bottom:10px;padding:0 10px}.wcm-subtitle{display:flex;align-items:center}.wcm-subtitle:last-child path{fill:var(--wcm-color-fg-3)}.wcm-desktop-title svg,.wcm-mobile-title svg{margin-right:6px}.wcm-desktop-title path,.wcm-mobile-title path{fill:var(--wcm-accent-color)}`;\n\nvar __defProp$e = Object.defineProperty;\nvar __getOwnPropDesc$e = Object.getOwnPropertyDescriptor;\nvar __decorateClass$e = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$e(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$e(target, key, result);\n return result;\n};\nlet WcmDesktopWalletSelection = class extends LitElement {\n // -- render ------------------------------------------------------- //\n render() {\n const { explorerExcludedWalletIds, enableExplorer } = ConfigCtrl.state;\n const isExplorerWallets = explorerExcludedWalletIds !== \"ALL\" && enableExplorer;\n const manualTemplate = TemplateUtil.manualWalletsTemplate();\n const recomendedTemplate = TemplateUtil.recomendedWalletsTemplate();\n const recentTemplate = TemplateUtil.recentWalletTemplate();\n let templates = [recentTemplate, ...manualTemplate, ...recomendedTemplate];\n templates = templates.filter(Boolean);\n const isViewAll = templates.length > 4 || isExplorerWallets;\n let wallets = [];\n if (isViewAll) {\n wallets = templates.slice(0, 3);\n } else {\n wallets = templates;\n }\n const isWallets = Boolean(wallets.length);\n return html`
${SvgUtil.MOBILE_ICON}Mobile
${SvgUtil.SCAN_ICON}Scan with your wallet
${isWallets ? html`
${SvgUtil.DESKTOP_ICON}Desktop
${wallets} ${isViewAll ? html`` : null}
` : null}`;\n }\n};\nWcmDesktopWalletSelection.styles = [ThemeUtil.globalCss, styles$c];\nWcmDesktopWalletSelection = __decorateClass$e([\n customElement(\"wcm-desktop-wallet-selection\")\n], WcmDesktopWalletSelection);\n\nconst styles$b = css`div{background-color:var(--wcm-color-bg-2);padding:10px 20px 15px 20px;border-top:1px solid var(--wcm-color-bg-3);text-align:center}a{color:var(--wcm-accent-color);text-decoration:none;transition:opacity .2s ease-in-out;display:inline}a:active{opacity:.8}@media(hover:hover){a:hover{opacity:.8}}`;\n\nvar __defProp$d = Object.defineProperty;\nvar __getOwnPropDesc$d = Object.getOwnPropertyDescriptor;\nvar __decorateClass$d = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$d(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$d(target, key, result);\n return result;\n};\nlet WcmLegalNotice = class extends LitElement {\n // -- render ------------------------------------------------------- //\n render() {\n const { termsOfServiceUrl, privacyPolicyUrl } = ConfigCtrl.state;\n const isLegal = termsOfServiceUrl != null ? termsOfServiceUrl : privacyPolicyUrl;\n if (!isLegal) {\n return null;\n }\n return html`
By connecting your wallet to this app, you agree to the app's ${termsOfServiceUrl ? html`Terms of Service` : null} ${termsOfServiceUrl && privacyPolicyUrl ? \"and\" : null} ${privacyPolicyUrl ? html`Privacy Policy` : null}
`;\n }\n};\nWcmLegalNotice.styles = [ThemeUtil.globalCss, styles$b];\nWcmLegalNotice = __decorateClass$d([\n customElement(\"wcm-legal-notice\")\n], WcmLegalNotice);\n\nconst styles$a = css`div{display:grid;grid-template-columns:repeat(4,80px);margin:0 -10px;justify-content:space-between;row-gap:10px}`;\n\nvar __defProp$c = Object.defineProperty;\nvar __getOwnPropDesc$c = Object.getOwnPropertyDescriptor;\nvar __decorateClass$c = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$c(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$c(target, key, result);\n return result;\n};\nlet WcmMobileWalletSelection = class extends LitElement {\n // -- private ------------------------------------------------------ //\n onQrcode() {\n RouterCtrl.push(\"Qrcode\");\n }\n // -- render ------------------------------------------------------- //\n render() {\n const { explorerExcludedWalletIds, enableExplorer } = ConfigCtrl.state;\n const isExplorerWallets = explorerExcludedWalletIds !== \"ALL\" && enableExplorer;\n const manualTemplate = TemplateUtil.manualWalletsTemplate();\n const recomendedTemplate = TemplateUtil.recomendedWalletsTemplate();\n const recentTemplate = TemplateUtil.recentWalletTemplate();\n let templates = [recentTemplate, ...manualTemplate, ...recomendedTemplate];\n templates = templates.filter(Boolean);\n const isViewAll = templates.length > 8 || isExplorerWallets;\n let wallets = [];\n if (isViewAll) {\n wallets = templates.slice(0, 7);\n } else {\n wallets = templates;\n }\n const isWallets = Boolean(wallets.length);\n return html`${isWallets ? html`
${wallets} ${isViewAll ? html`` : null}
` : null}`;\n }\n};\nWcmMobileWalletSelection.styles = [ThemeUtil.globalCss, styles$a];\nWcmMobileWalletSelection = __decorateClass$c([\n customElement(\"wcm-mobile-wallet-selection\")\n], WcmMobileWalletSelection);\n\nconst styles$9 = css`:host{all:initial}.wcm-overlay{top:0;bottom:0;left:0;right:0;position:fixed;z-index:var(--wcm-z-index);overflow:hidden;display:flex;justify-content:center;align-items:center;opacity:0;pointer-events:none;background-color:var(--wcm-overlay-background-color);backdrop-filter:var(--wcm-overlay-backdrop-filter)}@media(max-height:720px) and (orientation:landscape){.wcm-overlay{overflow:scroll;align-items:flex-start;padding:20px 0}}.wcm-active{pointer-events:auto}.wcm-container{position:relative;max-width:360px;width:100%;outline:0;border-radius:var(--wcm-background-border-radius) var(--wcm-background-border-radius) var(--wcm-container-border-radius) var(--wcm-container-border-radius);border:1px solid var(--wcm-color-overlay);overflow:hidden}.wcm-card{width:100%;position:relative;border-radius:var(--wcm-container-border-radius);overflow:hidden;box-shadow:0 6px 14px -6px rgba(10,16,31,.12),0 10px 32px -4px rgba(10,16,31,.1),0 0 0 1px var(--wcm-color-overlay);background-color:var(--wcm-color-bg-1);color:var(--wcm-color-fg-1)}@media(max-width:600px){.wcm-container{max-width:440px;border-radius:var(--wcm-background-border-radius) var(--wcm-background-border-radius) 0 0}.wcm-card{border-radius:var(--wcm-container-border-radius) var(--wcm-container-border-radius) 0 0}.wcm-overlay{align-items:flex-end}}@media(max-width:440px){.wcm-container{border:0}}`;\n\nvar __defProp$b = Object.defineProperty;\nvar __getOwnPropDesc$b = Object.getOwnPropertyDescriptor;\nvar __decorateClass$b = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$b(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$b(target, key, result);\n return result;\n};\nlet WcmModal = class extends LitElement {\n // -- lifecycle ---------------------------------------------------- //\n constructor() {\n super();\n this.open = false;\n this.active = false;\n // -- private ------------------------------------------------------ //\n this.unsubscribeModal = void 0;\n this.abortController = void 0;\n this.unsubscribeModal = ModalCtrl.subscribe((modalState) => {\n if (modalState.open) {\n this.onOpenModalEvent();\n } else {\n this.onCloseModalEvent();\n }\n });\n }\n disconnectedCallback() {\n var _a;\n (_a = this.unsubscribeModal) == null ? void 0 : _a.call(this);\n }\n get overlayEl() {\n return UiUtil.getShadowRootElement(this, \".wcm-overlay\");\n }\n get containerEl() {\n return UiUtil.getShadowRootElement(this, \".wcm-container\");\n }\n toggleBodyScroll(enabled) {\n const body = document.querySelector(\"body\");\n if (body) {\n if (enabled) {\n const wcmStyles = document.getElementById(\"wcm-styles\");\n wcmStyles == null ? void 0 : wcmStyles.remove();\n } else {\n document.head.insertAdjacentHTML(\n \"beforeend\",\n ``\n );\n }\n }\n }\n onCloseModal(event) {\n if (event.target === event.currentTarget) {\n ModalCtrl.close();\n }\n }\n onOpenModalEvent() {\n this.toggleBodyScroll(false);\n this.addKeyboardEvents();\n this.open = true;\n setTimeout(async () => {\n const animation = UiUtil.isMobileAnimation() ? { y: [\"50vh\", \"0vh\"] } : { scale: [0.98, 1] };\n const delay = 0.1;\n const duration = 0.2;\n await Promise.all([\n animate(this.overlayEl, { opacity: [0, 1] }, { delay, duration }).finished,\n animate(this.containerEl, animation, { delay, duration }).finished\n ]);\n this.active = true;\n }, 0);\n }\n async onCloseModalEvent() {\n this.toggleBodyScroll(true);\n this.removeKeyboardEvents();\n const animation = UiUtil.isMobileAnimation() ? { y: [\"0vh\", \"50vh\"] } : { scale: [1, 0.98] };\n const duration = 0.2;\n await Promise.all([\n animate(this.overlayEl, { opacity: [1, 0] }, { duration }).finished,\n animate(this.containerEl, animation, { duration }).finished\n ]);\n this.containerEl.removeAttribute(\"style\");\n this.active = false;\n this.open = false;\n }\n addKeyboardEvents() {\n this.abortController = new AbortController();\n window.addEventListener(\n \"keydown\",\n (event) => {\n var _a;\n if (event.key === \"Escape\") {\n ModalCtrl.close();\n } else if (event.key === \"Tab\") {\n if (!((_a = event.target) == null ? void 0 : _a.tagName.includes(\"wcm-\"))) {\n this.containerEl.focus();\n }\n }\n },\n this.abortController\n );\n this.containerEl.focus();\n }\n removeKeyboardEvents() {\n var _a;\n (_a = this.abortController) == null ? void 0 : _a.abort();\n this.abortController = void 0;\n }\n // -- render ------------------------------------------------------- //\n render() {\n const classes = {\n \"wcm-overlay\": true,\n \"wcm-active\": this.active\n };\n return html`
${this.open ? html`
` : null}
`;\n }\n};\nWcmModal.styles = [ThemeUtil.globalCss, styles$9];\n__decorateClass$b([\n state()\n], WcmModal.prototype, \"open\", 2);\n__decorateClass$b([\n state()\n], WcmModal.prototype, \"active\", 2);\nWcmModal = __decorateClass$b([\n customElement(\"wcm-modal\")\n], WcmModal);\n\nconst styles$8 = css`div{display:flex;margin-top:15px}slot{display:inline-block;margin:0 5px}wcm-button{margin:0 5px}`;\n\nvar __defProp$a = Object.defineProperty;\nvar __getOwnPropDesc$a = Object.getOwnPropertyDescriptor;\nvar __decorateClass$a = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$a(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$a(target, key, result);\n return result;\n};\nlet WcmPlatformSelection = class extends LitElement {\n constructor() {\n super(...arguments);\n this.isMobile = false;\n this.isDesktop = false;\n this.isWeb = false;\n this.isRetry = false;\n }\n // -- private ------------------------------------------------------ //\n onMobile() {\n const isMobile = CoreUtil.isMobile();\n if (isMobile) {\n RouterCtrl.replace(\"MobileConnecting\");\n } else {\n RouterCtrl.replace(\"MobileQrcodeConnecting\");\n }\n }\n onDesktop() {\n RouterCtrl.replace(\"DesktopConnecting\");\n }\n onWeb() {\n RouterCtrl.replace(\"WebConnecting\");\n }\n // -- render ------------------------------------------------------- //\n render() {\n return html`
${this.isRetry ? html`` : null} ${this.isMobile ? html`Mobile` : null} ${this.isDesktop ? html`Desktop` : null} ${this.isWeb ? html`Web` : null}
`;\n }\n};\nWcmPlatformSelection.styles = [ThemeUtil.globalCss, styles$8];\n__decorateClass$a([\n property({ type: Boolean })\n], WcmPlatformSelection.prototype, \"isMobile\", 2);\n__decorateClass$a([\n property({ type: Boolean })\n], WcmPlatformSelection.prototype, \"isDesktop\", 2);\n__decorateClass$a([\n property({ type: Boolean })\n], WcmPlatformSelection.prototype, \"isWeb\", 2);\n__decorateClass$a([\n property({ type: Boolean })\n], WcmPlatformSelection.prototype, \"isRetry\", 2);\nWcmPlatformSelection = __decorateClass$a([\n customElement(\"wcm-platform-selection\")\n], WcmPlatformSelection);\n\nconst styles$7 = css`button{display:flex;flex-direction:column;padding:5px 10px;border-radius:var(--wcm-button-hover-highlight-border-radius);height:100%;justify-content:flex-start}.wcm-icons{width:60px;height:60px;display:flex;flex-wrap:wrap;padding:7px;border-radius:var(--wcm-wallet-icon-border-radius);justify-content:space-between;align-items:center;margin-bottom:5px;background-color:var(--wcm-color-bg-2);box-shadow:inset 0 0 0 1px var(--wcm-color-overlay)}button:active{background-color:var(--wcm-color-overlay)}@media(hover:hover){button:hover{background-color:var(--wcm-color-overlay)}}.wcm-icons img{width:21px;height:21px;object-fit:cover;object-position:center;border-radius:calc(var(--wcm-wallet-icon-border-radius)/ 2);border:1px solid var(--wcm-color-overlay)}.wcm-icons svg{width:21px;height:21px}.wcm-icons img:nth-child(1),.wcm-icons img:nth-child(2),.wcm-icons svg:nth-child(1),.wcm-icons svg:nth-child(2){margin-bottom:4px}wcm-text{width:100%;text-align:center}#wallet-placeholder-fill{fill:var(--wcm-color-bg-3)}#wallet-placeholder-dash{stroke:var(--wcm-color-overlay)}`;\n\nvar __defProp$9 = Object.defineProperty;\nvar __getOwnPropDesc$9 = Object.getOwnPropertyDescriptor;\nvar __decorateClass$9 = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$9(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$9(target, key, result);\n return result;\n};\nlet WcmViewAllWalletsButton = class extends LitElement {\n // -- render ------------------------------------------------------- //\n onClick() {\n RouterCtrl.push(\"WalletExplorer\");\n }\n // -- render ------------------------------------------------------- //\n render() {\n const { recomendedWallets } = ExplorerCtrl.state;\n const manualWallets = DataUtil.manualWallets();\n const reversedWallets = [...recomendedWallets, ...manualWallets].reverse().slice(0, 4);\n return html``;\n }\n};\nWcmViewAllWalletsButton.styles = [ThemeUtil.globalCss, styles$7];\nWcmViewAllWalletsButton = __decorateClass$9([\n customElement(\"wcm-view-all-wallets-button\")\n], WcmViewAllWalletsButton);\n\nconst styles$6 = css`.wcm-qr-container{width:100%;display:flex;justify-content:center;align-items:center;aspect-ratio:1/1}`;\n\nvar __defProp$8 = Object.defineProperty;\nvar __getOwnPropDesc$8 = Object.getOwnPropertyDescriptor;\nvar __decorateClass$8 = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$8(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$8(target, key, result);\n return result;\n};\nlet WcmWalletConnectQr = class extends LitElement {\n // -- lifecycle ---------------------------------------------------- //\n constructor() {\n super();\n this.walletId = \"\";\n this.imageId = \"\";\n this.uri = \"\";\n setTimeout(() => {\n const { walletConnectUri } = OptionsCtrl.state;\n this.uri = walletConnectUri;\n }, 0);\n }\n // -- private ------------------------------------------------------ //\n get overlayEl() {\n return UiUtil.getShadowRootElement(this, \".wcm-qr-container\");\n }\n // -- render ------------------------------------------------------- //\n render() {\n return html`
${this.uri ? html`` : html``}
`;\n }\n};\nWcmWalletConnectQr.styles = [ThemeUtil.globalCss, styles$6];\n__decorateClass$8([\n property()\n], WcmWalletConnectQr.prototype, \"walletId\", 2);\n__decorateClass$8([\n property()\n], WcmWalletConnectQr.prototype, \"imageId\", 2);\n__decorateClass$8([\n state()\n], WcmWalletConnectQr.prototype, \"uri\", 2);\nWcmWalletConnectQr = __decorateClass$8([\n customElement(\"wcm-walletconnect-qr\")\n], WcmWalletConnectQr);\n\nvar __defProp$7 = Object.defineProperty;\nvar __getOwnPropDesc$7 = Object.getOwnPropertyDescriptor;\nvar __decorateClass$7 = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$7(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$7(target, key, result);\n return result;\n};\nlet WcmConnectWalletView = class extends LitElement {\n // -- private ------------------------------------------------------ //\n viewTemplate() {\n if (CoreUtil.isAndroid() && !CoreUtil.isTelegram()) {\n return html``;\n }\n if (CoreUtil.isMobile()) {\n return html``;\n }\n return html``;\n }\n // -- render ------------------------------------------------------- //\n render() {\n return html`${this.viewTemplate()}`;\n }\n};\nWcmConnectWalletView.styles = [ThemeUtil.globalCss];\nWcmConnectWalletView = __decorateClass$7([\n customElement(\"wcm-connect-wallet-view\")\n], WcmConnectWalletView);\n\nconst styles$5 = css`wcm-info-footer{flex-direction:column;align-items:center;display:flex;width:100%;padding:5px 0}wcm-text{text-align:center}`;\n\nvar __defProp$6 = Object.defineProperty;\nvar __getOwnPropDesc$6 = Object.getOwnPropertyDescriptor;\nvar __decorateClass$6 = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$6(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$6(target, key, result);\n return result;\n};\nlet WcmDesktopConnectingView = class extends LitElement {\n // -- lifecycle ---------------------------------------------------- //\n constructor() {\n super();\n this.isError = false;\n this.openDesktopApp();\n }\n // -- private ------------------------------------------------------ //\n onFormatAndRedirect(uri) {\n const { desktop, name } = CoreUtil.getWalletRouterData();\n const nativeUrl = desktop == null ? void 0 : desktop.native;\n const universalUrl = desktop == null ? void 0 : desktop.universal;\n if (nativeUrl) {\n const href = CoreUtil.formatNativeUrl(nativeUrl, uri, name);\n CoreUtil.openHref(href, \"_self\");\n } else if (universalUrl) {\n const href = CoreUtil.formatUniversalUrl(universalUrl, uri, name);\n CoreUtil.openHref(href, \"_blank\");\n }\n }\n openDesktopApp() {\n const { walletConnectUri } = OptionsCtrl.state;\n const routerData = CoreUtil.getWalletRouterData();\n UiUtil.setRecentWallet(routerData);\n if (walletConnectUri) {\n this.onFormatAndRedirect(walletConnectUri);\n }\n }\n // -- render ------------------------------------------------------- //\n render() {\n const { name, id, image_id } = CoreUtil.getWalletRouterData();\n const { isMobile, isWeb } = UiUtil.getCachedRouterWalletPlatforms();\n return html`${`Connection can continue loading if ${name} is not installed on your device`}Retry`;\n }\n};\nWcmDesktopConnectingView.styles = [ThemeUtil.globalCss, styles$5];\n__decorateClass$6([\n state()\n], WcmDesktopConnectingView.prototype, \"isError\", 2);\nWcmDesktopConnectingView = __decorateClass$6([\n customElement(\"wcm-desktop-connecting-view\")\n], WcmDesktopConnectingView);\n\nconst styles$4 = css`wcm-info-footer{flex-direction:column;align-items:center;display:flex;width:100%;padding:5px 0}wcm-text{text-align:center}wcm-button{margin-top:15px}`;\n\nvar __defProp$5 = Object.defineProperty;\nvar __getOwnPropDesc$5 = Object.getOwnPropertyDescriptor;\nvar __decorateClass$5 = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$5(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$5(target, key, result);\n return result;\n};\nlet WcmInstallWalletView = class extends LitElement {\n // -- private ------------------------------------------------------ //\n onInstall(uri) {\n if (uri) {\n CoreUtil.openHref(uri, \"_blank\");\n }\n }\n // -- render ------------------------------------------------------- //\n render() {\n const { name, id, image_id, homepage } = CoreUtil.getWalletRouterData();\n return html`${`Download ${name} to continue. If multiple browser extensions are installed, disable non ${name} ones and try again`} this.onInstall(homepage)}\" .iconLeft=\"${SvgUtil.ARROW_DOWN_ICON}\">Download`;\n }\n};\nWcmInstallWalletView.styles = [ThemeUtil.globalCss, styles$4];\nWcmInstallWalletView = __decorateClass$5([\n customElement(\"wcm-install-wallet-view\")\n], WcmInstallWalletView);\n\nconst styles$3 = css`wcm-wallet-image{border-radius:var(--wcm-wallet-icon-large-border-radius);width:96px;height:96px;margin-bottom:20px}wcm-info-footer{display:flex;width:100%}.wcm-app-store{justify-content:space-between}.wcm-app-store wcm-wallet-image{margin-right:10px;margin-bottom:0;width:28px;height:28px;border-radius:var(--wcm-wallet-icon-small-border-radius)}.wcm-app-store div{display:flex;align-items:center}.wcm-app-store wcm-button{margin-right:-10px}.wcm-note{flex-direction:column;align-items:center;padding:5px 0}.wcm-note wcm-text{text-align:center}wcm-platform-selection{margin-top:-15px}.wcm-note wcm-text{margin-top:15px}.wcm-note wcm-text span{color:var(--wcm-accent-color)}`;\n\nvar __defProp$4 = Object.defineProperty;\nvar __getOwnPropDesc$4 = Object.getOwnPropertyDescriptor;\nvar __decorateClass$4 = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$4(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$4(target, key, result);\n return result;\n};\nlet WcmMobileConnectingView = class extends LitElement {\n // -- lifecycle ---------------------------------------------------- //\n constructor() {\n super();\n this.isError = false;\n this.openMobileApp();\n }\n // -- private ------------------------------------------------------ //\n onFormatAndRedirect(uri, forceUniversalUrl = false) {\n const { mobile, name } = CoreUtil.getWalletRouterData();\n const nativeUrl = mobile == null ? void 0 : mobile.native;\n const universalUrl = mobile == null ? void 0 : mobile.universal;\n const target = CoreUtil.isTelegram() ? \"_blank\" : \"_self\";\n uri = CoreUtil.isTelegram() && CoreUtil.isAndroid() ? encodeURIComponent(uri) : uri;\n if (nativeUrl && !forceUniversalUrl) {\n const href = CoreUtil.formatNativeUrl(nativeUrl, uri, name);\n CoreUtil.openHref(href, target);\n } else if (universalUrl) {\n const href = CoreUtil.formatUniversalUrl(universalUrl, uri, name);\n CoreUtil.openHref(href, target);\n }\n }\n openMobileApp(forceUniversalUrl = false) {\n const { walletConnectUri } = OptionsCtrl.state;\n const routerData = CoreUtil.getWalletRouterData();\n if (walletConnectUri) {\n this.onFormatAndRedirect(walletConnectUri, forceUniversalUrl);\n }\n UiUtil.setRecentWallet(routerData);\n }\n onGoToAppStore(downloadUrl) {\n if (downloadUrl) {\n CoreUtil.openHref(downloadUrl, \"_blank\");\n }\n }\n // -- render ------------------------------------------------------- //\n render() {\n const { name, id, image_id, app, mobile } = CoreUtil.getWalletRouterData();\n const { isWeb } = UiUtil.getCachedRouterWalletPlatforms();\n const downloadUrl = app == null ? void 0 : app.ios;\n const universalUrl = mobile == null ? void 0 : mobile.universal;\n return html` this.openMobileApp(false)}\" .iconRight=\"${SvgUtil.RETRY_ICON}\">Retry${universalUrl ? html`Still doesn't work? this.openMobileApp(true)}\">Try this alternate link` : null}
${`Get ${name}`}
this.onGoToAppStore(downloadUrl)}\" variant=\"ghost\">App Store
`;\n }\n};\nWcmMobileConnectingView.styles = [ThemeUtil.globalCss, styles$3];\n__decorateClass$4([\n state()\n], WcmMobileConnectingView.prototype, \"isError\", 2);\nWcmMobileConnectingView = __decorateClass$4([\n customElement(\"wcm-mobile-connecting-view\")\n], WcmMobileConnectingView);\n\nconst styles$2 = css`wcm-info-footer{flex-direction:column;align-items:center;display:flex;width:100%;padding:5px 0}wcm-text{text-align:center}`;\n\nvar __defProp$3 = Object.defineProperty;\nvar __getOwnPropDesc$3 = Object.getOwnPropertyDescriptor;\nvar __decorateClass$3 = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$3(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$3(target, key, result);\n return result;\n};\nlet WcmMobileQrConnectingView = class extends LitElement {\n // -- render ------------------------------------------------------- //\n render() {\n const { name, id, image_id } = CoreUtil.getWalletRouterData();\n const { isDesktop, isWeb } = UiUtil.getCachedRouterWalletPlatforms();\n return html`${`Scan this QR Code with your phone's camera or inside ${name} app`}`;\n }\n};\nWcmMobileQrConnectingView.styles = [ThemeUtil.globalCss, styles$2];\nWcmMobileQrConnectingView = __decorateClass$3([\n customElement(\"wcm-mobile-qr-connecting-view\")\n], WcmMobileQrConnectingView);\n\nvar __defProp$2 = Object.defineProperty;\nvar __getOwnPropDesc$2 = Object.getOwnPropertyDescriptor;\nvar __decorateClass$2 = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$2(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$2(target, key, result);\n return result;\n};\nlet WcmQrcodeView = class extends LitElement {\n // -- render ------------------------------------------------------- //\n render() {\n return html``;\n }\n};\nWcmQrcodeView.styles = [ThemeUtil.globalCss];\nWcmQrcodeView = __decorateClass$2([\n customElement(\"wcm-qrcode-view\")\n], WcmQrcodeView);\n\nconst styles$1 = css`wcm-modal-content{height:clamp(200px,60vh,600px);display:block;overflow:scroll;scrollbar-width:none;position:relative;margin-top:1px}.wcm-grid{display:grid;grid-template-columns:repeat(4,80px);justify-content:space-between;margin:-15px -10px;padding-top:20px}wcm-modal-content::after,wcm-modal-content::before{content:'';position:fixed;pointer-events:none;z-index:1;width:100%;height:20px;opacity:1}wcm-modal-content::before{box-shadow:0 -1px 0 0 var(--wcm-color-bg-1);background:linear-gradient(var(--wcm-color-bg-1),rgba(255,255,255,0))}wcm-modal-content::after{box-shadow:0 1px 0 0 var(--wcm-color-bg-1);background:linear-gradient(rgba(255,255,255,0),var(--wcm-color-bg-1));top:calc(100% - 20px)}wcm-modal-content::-webkit-scrollbar{display:none}.wcm-placeholder-block{display:flex;justify-content:center;align-items:center;height:100px;overflow:hidden}.wcm-empty,.wcm-loading{display:flex}.wcm-loading .wcm-placeholder-block{height:100%}.wcm-end-reached .wcm-placeholder-block{height:0;opacity:0}.wcm-empty .wcm-placeholder-block{opacity:1;height:100%}wcm-wallet-button{margin:calc((100% - 60px)/ 3) 0}`;\n\nvar __defProp$1 = Object.defineProperty;\nvar __getOwnPropDesc$1 = Object.getOwnPropertyDescriptor;\nvar __decorateClass$1 = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$1(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$1(target, key, result);\n return result;\n};\nconst PAGE_ENTRIES = 40;\nlet WcmWalletExplorerView = class extends LitElement {\n constructor() {\n super(...arguments);\n this.loading = !ExplorerCtrl.state.wallets.listings.length;\n this.firstFetch = !ExplorerCtrl.state.wallets.listings.length;\n this.search = \"\";\n this.endReached = false;\n this.intersectionObserver = void 0;\n this.searchDebounce = UiUtil.debounce((value) => {\n if (value.length >= 1) {\n this.firstFetch = true;\n this.endReached = false;\n this.search = value;\n ExplorerCtrl.resetSearch();\n this.fetchWallets();\n } else if (this.search) {\n this.search = \"\";\n this.endReached = this.isLastPage();\n ExplorerCtrl.resetSearch();\n }\n });\n }\n // -- lifecycle ---------------------------------------------------- //\n firstUpdated() {\n this.createPaginationObserver();\n }\n disconnectedCallback() {\n var _a;\n (_a = this.intersectionObserver) == null ? void 0 : _a.disconnect();\n }\n // -- private ------------------------------------------------------ //\n get placeholderEl() {\n return UiUtil.getShadowRootElement(this, \".wcm-placeholder-block\");\n }\n createPaginationObserver() {\n this.intersectionObserver = new IntersectionObserver(([element]) => {\n if (element.isIntersecting && !(this.search && this.firstFetch)) {\n this.fetchWallets();\n }\n });\n this.intersectionObserver.observe(this.placeholderEl);\n }\n isLastPage() {\n const { wallets, search } = ExplorerCtrl.state;\n const { listings, total } = this.search ? search : wallets;\n return total <= PAGE_ENTRIES || listings.length >= total;\n }\n async fetchWallets() {\n var _a;\n const { wallets, search } = ExplorerCtrl.state;\n const { listings, total, page } = this.search ? search : wallets;\n if (!this.endReached && (this.firstFetch || total > PAGE_ENTRIES && listings.length < total)) {\n try {\n this.loading = true;\n const chains = (_a = OptionsCtrl.state.chains) == null ? void 0 : _a.join(\",\");\n const { listings: newListings } = await ExplorerCtrl.getWallets({\n page: this.firstFetch ? 1 : page + 1,\n entries: PAGE_ENTRIES,\n search: this.search,\n version: 2,\n chains\n });\n const explorerImages = newListings.map((wallet) => UiUtil.getWalletIcon(wallet));\n await Promise.all([\n ...explorerImages.map(async (url) => UiUtil.preloadImage(url)),\n CoreUtil.wait(300)\n ]);\n this.endReached = this.isLastPage();\n } catch (err) {\n console.error(err);\n ToastCtrl.openToast(UiUtil.getErrorMessage(err), \"error\");\n } finally {\n this.loading = false;\n this.firstFetch = false;\n }\n }\n }\n onConnect(listing) {\n if (CoreUtil.isAndroid()) {\n UiUtil.handleMobileLinking(listing);\n } else {\n UiUtil.goToConnectingView(listing);\n }\n }\n onSearchChange(event) {\n const { value } = event.target;\n this.searchDebounce(value);\n }\n // -- render ------------------------------------------------------- //\n render() {\n const { wallets, search } = ExplorerCtrl.state;\n const { listings } = this.search ? search : wallets;\n const isLoading = this.loading && !listings.length;\n const isSearch = this.search.length >= 3;\n let manualWallets = TemplateUtil.manualWalletsTemplate();\n let recomendedWallets = TemplateUtil.recomendedWalletsTemplate(true);\n if (isSearch) {\n manualWallets = manualWallets.filter(\n ({ values }) => UiUtil.caseSafeIncludes(values[0], this.search)\n );\n recomendedWallets = recomendedWallets.filter(\n ({ values }) => UiUtil.caseSafeIncludes(values[0], this.search)\n );\n }\n const isEmpty = !this.loading && !listings.length && !recomendedWallets.length;\n const classes = {\n \"wcm-loading\": isLoading,\n \"wcm-end-reached\": this.endReached || !this.loading,\n \"wcm-empty\": isEmpty\n };\n return html`
${isLoading ? null : manualWallets} ${isLoading ? null : recomendedWallets} ${isLoading ? null : listings.map(\n (listing) => html`${listing ? html` this.onConnect(listing)}\">` : null}`\n )}
${isEmpty ? html`No results found` : null} ${!isEmpty && this.loading ? html`` : null}
`;\n }\n};\nWcmWalletExplorerView.styles = [ThemeUtil.globalCss, styles$1];\n__decorateClass$1([\n state()\n], WcmWalletExplorerView.prototype, \"loading\", 2);\n__decorateClass$1([\n state()\n], WcmWalletExplorerView.prototype, \"firstFetch\", 2);\n__decorateClass$1([\n state()\n], WcmWalletExplorerView.prototype, \"search\", 2);\n__decorateClass$1([\n state()\n], WcmWalletExplorerView.prototype, \"endReached\", 2);\nWcmWalletExplorerView = __decorateClass$1([\n customElement(\"wcm-wallet-explorer-view\")\n], WcmWalletExplorerView);\n\nconst styles = css`wcm-info-footer{flex-direction:column;align-items:center;display:flex;width:100%;padding:5px 0}wcm-text{text-align:center}`;\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nlet WcmWebConnectingView = class extends LitElement {\n // -- lifecycle ---------------------------------------------------- //\n constructor() {\n super();\n this.isError = false;\n this.openWebWallet();\n }\n // -- private ------------------------------------------------------ //\n onFormatAndRedirect(uri) {\n const { desktop, name } = CoreUtil.getWalletRouterData();\n const universalUrl = desktop == null ? void 0 : desktop.universal;\n if (universalUrl) {\n const href = CoreUtil.formatUniversalUrl(universalUrl, uri, name);\n CoreUtil.openHref(href, \"_blank\");\n }\n }\n openWebWallet() {\n const { walletConnectUri } = OptionsCtrl.state;\n const routerData = CoreUtil.getWalletRouterData();\n UiUtil.setRecentWallet(routerData);\n if (walletConnectUri) {\n this.onFormatAndRedirect(walletConnectUri);\n }\n }\n // -- render ------------------------------------------------------- //\n render() {\n const { name, id, image_id } = CoreUtil.getWalletRouterData();\n const { isMobile, isDesktop } = UiUtil.getCachedRouterWalletPlatforms();\n const isMobilePlatform = CoreUtil.isMobile();\n return html`${`${name} web app has opened in a new tab. Go there, accept the connection, and come back`}Retry`;\n }\n};\nWcmWebConnectingView.styles = [ThemeUtil.globalCss, styles];\n__decorateClass([\n state()\n], WcmWebConnectingView.prototype, \"isError\", 2);\nWcmWebConnectingView = __decorateClass([\n customElement(\"wcm-web-connecting-view\")\n], WcmWebConnectingView);\n\nexport { WcmModal, WcmQrCode };\n//# sourceMappingURL=index.js.map\n"],"names":["buffer","base64Js","byteLength","toByteArray","fromByteArray","i","lookup","revLookup","Arr","Uint8Array","Array","code","len","length","charCodeAt","getLens","b64","Error","validLen","indexOf","lens","placeHoldersLen","_byteLength","tmp","arr","curByte","tripletToBase64","num","encodeChunk","uint8","start","end","output","push","join","extraBytes","parts","maxChunkLength","len2","ieee754","offset","isLE","mLen","nBytes","e","m","eLen","eMax","eBias","nBits","d","s","NaN","Infinity","Math","pow","value","c","rt","abs","isNaN","floor","log","LN2","exports","base64","ieee754$1","customInspectSymbol","Symbol","Buffer","SlowBuffer","alloc","INSPECT_MAX_BYTES","K_MAX_LENGTH","kMaxLength","GlobalUint8Array","ArrayBuffer","GlobalArrayBuffer","SharedArrayBuffer","GlobalSharedArrayBuffer","globalThis","createBuffer","RangeError","buf","Object","setPrototypeOf","prototype","arg","encodingOrOffset","TypeError","allocUnsafe","from","fromString","string","encoding","isEncoding","actual","write","slice","isView","arrayView","isInstance","copy","fromArrayBuffer","byteOffset","fromArrayLike","fromArrayView","valueOf","b","obj","isBuffer","checked","numberIsNaN","type","isArray","data","fromObject","toPrimitive","assertSize","size","array","toString","mustMatch","arguments","loweredCase","utf8ToBytes","base64ToBytes","toLowerCase","slowToString","this","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","n","bidirectionalIndexOf","val","dir","arrayIndexOf","call","lastIndexOf","indexSize","arrLength","valLength","String","read","readUInt16BE","foundIndex","found","j","hexWrite","Number","remaining","strLen","parsed","parseInt","substr","utf8Write","blitBuffer","asciiWrite","str","byteArray","asciiToBytes","base64Write","ucs2Write","units","hi","lo","utf16leToBytes","min","res","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","codePoints","MAX_ARGUMENTS_LENGTH","fromCharCode","apply","decodeCodePointsArray","TYPED_ARRAY_SUPPORT","proto","foo","typedArraySupport","console","error","defineProperty","enumerable","get","poolSize","fill","allocUnsafeSlow","_isBuffer","compare","a","x","y","concat","list","pos","set","swap16","swap32","swap64","toLocaleString","equals","inspect","max","replace","trim","target","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","toJSON","_arr","ret","out","hexSliceLookupTable","bytes","checkOffset","ext","checkInt","wrtBigUInt64LE","checkIntBI","BigInt","wrtBigUInt64BE","checkIEEE754","writeFloat","littleEndian","noAssert","writeDouble","newBuf","subarray","readUintLE","readUIntLE","mul","readUintBE","readUIntBE","readUint8","readUInt8","readUint16LE","readUInt16LE","readUint16BE","readUint32LE","readUInt32LE","readUint32BE","readUInt32BE","readBigUInt64LE","defineBigIntMethod","validateNumber","first","last","boundsError","readBigUInt64BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readBigInt64LE","readBigInt64BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUintLE","writeUIntLE","writeUintBE","writeUIntBE","writeUint8","writeUInt8","writeUint16LE","writeUInt16LE","writeUint16BE","writeUInt16BE","writeUint32LE","writeUInt32LE","writeUint32BE","writeUInt32BE","writeBigUInt64LE","writeBigUInt64BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeBigInt64LE","writeBigInt64BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","copyWithin","errors","E","sym","getMessage","Base","constructor","super","writable","configurable","name","stack","message","addNumericalSeparator","range","ERR_OUT_OF_RANGE","checkBounds","ERR_INVALID_ARG_TYPE","ERR_BUFFER_OUT_OF_BOUNDS","input","msg","received","isInteger","INVALID_BASE64_RE","leadSurrogate","split","base64clean","src","dst","alphabet","table","i16","fn","BufferBigIntNotDefined","Blob","BlobOptions","Buffer$1","File","FileOptions","TranscodeEncoding","atob","btoa","constants","isAscii","isUtf8","kStringMaxLength","resolveObjectURL","transcode","wasm","WebAssembly","Instance","Module","Long","low","high","unsigned","isLong","ctz32","clz32","Long$1","__isLong__","INT_CACHE","UINT_CACHE","fromInt","cachedObj","cache","fromBits","fromNumber","UZERO","ZERO","TWO_PWR_64_DBL","MAX_UNSIGNED_VALUE","TWO_PWR_63_DBL","MIN_VALUE","MAX_VALUE","neg","TWO_PWR_32_DBL","lowBits","highBits","pow_dbl","radix","p","substring","radixToPower","result","power","add","fromValue","TWO_PWR_16_DBL","TWO_PWR_24_DBL","TWO_PWR_24","ONE","UONE","NEG_ONE","LongPrototype","LongPrototype$1","toInt","toNumber","isZero","isNegative","eq","radixLong","div","rem1","rem","remDiv","digits","getHighBits","getHighBitsUnsigned","getLowBits","getLowBitsUnsigned","getNumBitsAbs","bit","eqz","isPositive","isOdd","isEven","other","notEquals","neq","ne","lessThan","comp","lt","lessThanOrEqual","lte","le","greaterThan","gt","greaterThanOrEqual","gte","ge","thisNeg","otherNeg","negate","not","addend","a48","a32","a16","a00","b48","b32","b16","c48","c32","c16","c00","subtract","subtrahend","multiply","multiplier","b00","divide","divisor","approx","toUnsigned","shru","shr","shl","log2","ceil","delta","approxRes","approxRem","modulo","mod","countLeadingZeros","clz","countTrailingZeros","ctz","and","or","xor","shiftLeft","numBits","shiftRight","shiftRightUnsigned","shr_u","rotateLeft","rotl","rotateRight","rotr","toSigned","toBytes","toBytesLE","toBytesBE","fromBytes","fromBytesLE","fromBytesBE","byteToHex","byteToHex$1","padStart","encode","byte","decode","text","startsWith","match","map","BadEntityIdError","shard","realm","presentChecksum","expectedChecksum","isNumeric","mathceil","mathfloor","bignumberError","tooManyDigits","BASE","LOG_BASE","MAX_SAFE_INTEGER","POWS_TEN","SQRT_BASE","MAX","clone","configObject","convertBase","parseNumeric","pow2_53","random53bitInt","P","BigNumber","DECIMAL_PLACES","ROUNDING_MODE","TO_EXP_NEG","TO_EXP_POS","MIN_EXP","MAX_EXP","CRYPTO","MODULO_MODE","POW_PRECISION","FORMAT","prefix","groupSize","secondaryGroupSize","groupSeparator","decimalSeparator","fractionGroupSize","fractionGroupSeparator","suffix","ALPHABET","alphabetHasNormalDecimalDigits","v","caseChanged","isNum","_isBigNumber","test","search","intCheck","round","DEBUG","charAt","toUpperCase","format","rm","id","c0","coeffToString","toExponential","toFixedPoint","maxOrMin","args","k","normalise","pop","sd","r","ni","rd","xc","pows10","ROUND_UP","ROUND_DOWN","ROUND_CEIL","ROUND_FLOOR","ROUND_HALF_UP","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_CEIL","ROUND_HALF_FLOOR","EUCLID","config","hasOwnProperty","crypto","getRandomValues","randomBytes","EXPONENTIAL_AT","RANGE","isBigNumber","maximum","minimum","random","dp","rand","Uint32Array","splice","sum","plus","decimal","toBaseOut","baseIn","baseOut","arrL","reverse","sign","callerIsToString","base","temp","xlo","xhi","carry","klo","khi","aL","bL","cmp","more","prod","prodL","q","qc","remL","rem0","xi","xL","yc0","yL","yz","yc","bitFloor","basePrefix","dotAfter","dotBefore","isInfinityOrNaN","whitespaceOrPlus","p1","p2","absoluteValue","comparedTo","decimalPlaces","dividedBy","dividedToIntegerBy","idiv","exponentiatedBy","half","isModExp","nIsBig","nIsNeg","nIsOdd","times","integerValue","isEqualTo","isGreaterThan","isGreaterThanOrEqualTo","isLessThan","isLessThanOrEqualTo","minus","t","xLTy","xe","ye","multipliedBy","xcL","ycL","ylo","yhi","zc","sqrtBase","negated","precision","shiftedBy","squareRoot","sqrt","rep","toFixed","toFormat","g1","g2","intPart","fractionPart","isNeg","intDigits","RegExp","toFraction","md","d0","d1","d2","exp","n0","n1","toPrecision","toStringTag","for","z","l","zs","REQUIRE_NON_NULL_ERROR","REQUIRE_STRING_OR_UINT8ARRAY_ERROR","REQUIRE_ARRAY_ERROR","FUNCTION_CONVERT_TO_BIGNUMBER_ERROR","FUNCTION_CONVERT_TO_NUMBER_ERROR","FUNCTION_CONVERT_TO_NUMBER_PARSE_ERROR","isNonNull","variable","isUint8Array","isNumber","isString","isStringOrUint8Array","isLongZeroAddress","address","requireNotNegative","requireNonNull","requireStringOrUint8Array","convertToBigNumber","convertToBigNumberArray","convertToNumber","safeView","DataView","ignore","Set","aKeys","keys","bKeys","has","shuffle","temporaryValue","randomIndex","currentIndex","arrayEqual","array1","array2","view1","view2","getUint8","base32Encoding","chars","bits","base32","parse","opts","_parse","loose","stringify","_stringify","_opts$out","codes","SyntaxError","written","_i","_opts$pad","pad","mask","decodeOpts","encodeOpts","base32$2","aspromise","asPromise","ctx","params","index","pending","Promise","resolve","reject","err","s64","chunk","invalidEncoding","eventemitter","EventEmitter","_listeners","on","evt","EventEmitter$1","off","listeners","emit","float","factory","Float32Array","f32","f8b","writeFloat_f32_cpy","writeFloat_f32_rev","readFloat_f32_cpy","readFloat_f32_rev","writeFloat_ieee754","writeUint","exponent","readFloat_ieee754","readUint","uint","mantissa","bind","Float64Array","f64","writeDouble_f64_cpy","writeDouble_f64_rev","readDouble_f64_cpy","readDouble_f64_rev","writeDouble_ieee754","off0","off1","readDouble_ieee754","inquire_1","inquire","moduleName","eval","utf8","c1","c2","pool_1","pool","SIZE","slab","LongBits","util","require$$0","zero","zzEncode","zzDecode","zeroHash","toLong","Boolean","fromHash","hash","toHash","part0","part1","part2","merge","ifNotSet","newError","CustomError","properties","captureStackTrace","create","require$$1","require$$2","require$$3","require$$4","require$$5","require$$6","require$$7","isNode","global","process","versions","node","window","self","emptyArray","freeze","emptyObject","isObject","isset","isSet","prop","_Buffer_from","_Buffer_allocUnsafe","newBuffer","sizeOrArray","dcodeIO","key2Re","key32Re","key64Re","longToHash","longFromHash","lcFirst","ProtocolError","oneOfGetter","fieldNames","fieldMap","oneOfSetter","toJSONOptions","longs","enums","json","_configure","writer","Writer","BufferWriter","Op","next","noop","State","head","tail","states","writeByte","writeVarint32","VarintOp","writeVarint64","writeFixed32","Writer$4","_push","VarintOp$1","uint32","int32","sint32","uint64","int64","sint64","bool","fixed32","sfixed32","fixed64","sfixed64","double","writeBytes","base64$3","fork","reset","ldelim","finish","BufferWriter_","BufferWriter$3","writer_buffer","writeStringBuffer","BufferWriter$2","writeBytesBuffer","reader","Reader","BufferReader","indexOutOfRange","writeLength","create_array","readLongVarint","readFixed32_end","readFixed64","_slice","Reader$4","nativeBuffer","skip","skipType","wireType","BufferReader_","BufferReader$3","util$b","reader_buffer","Reader$3","BufferReader$2","service","Service","rpcImpl","requestDelimited","responseDelimited","util$9","Service$1","rpcCall","method","requestCtor","responseCtor","request","callback","response","setTimeout","endedByRPC","roots","protobuf","configure","build","rpc","minimal","proto_1","google","default","$protobuf","_interopRequireWildcard","_getRequireWildcardCache","WeakMap","__esModule","__proto__","getOwnPropertyDescriptor","u","$Reader","$Writer","$util","$root","hashgraph","proto$9","com","hedera","mirror","api","ConsensusTopicQuery","ks","topicID","consensusStartTime","consensusEndTime","w","TopicID","Timestamp","getTypeUrl","typeUrlPrefix","ConsensusTopicResponse","consensusTimestamp","runningHash","sequenceNumber","runningHashVersion","chunkInfo","ConsensusMessageChunkInfo","ConsensusService","subscribeTopic","AddressBookQuery","fileId","FileID","NetworkService","getNodes","NodeAddress","hapi","addressbook","NodeCreateTransactionBody","gossipEndpoint","serviceEndpoint","accountId","description","gossipCaCertificate","grpcCertificateHash","adminKey","AccountID","ServiceEndpoint","Key","NodeUpdateTransactionBody","nodeId","StringValue","BytesValue","NodeDeleteTransactionBody","services","auxiliary","tss","TssMessageTransactionBody","sourceRosterHash","targetRosterHash","shareIndex","tssMessage","TssVoteTransactionBody","ledgerId","nodeSignature","tssVote","TssShareSignatureTransactionBody","rosterHash","messageHash","shareSignature","TssEncryptionKeyTransactionBody","publicTssEncryptionKey","platform","event","EventConsensusData","consensusOrder","EventCore","parents","creatorNodeId","birthRound","timeCreated","version","EventDescriptor","SemanticVersion","generation","EventTransaction","$oneOfFields","applicationTransaction","stateSignatureTransaction","StateSignatureTransaction","GossipEvent","eventTransaction","transactions","eventCore","signature","TransactionList","transactionList","Transaction","AddressBookService","createNode","TransactionResponse","deleteNode","updateNode","Query","getByKey","getBySolidityID","contractCallLocal","contractGetInfo","contractGetBytecode","ContractGetRecords","cryptogetAccountBalance","cryptoGetAccountRecords","cryptoGetInfo","cryptoGetLiveHash","cryptoGetProxyStakers","fileGetContents","fileGetInfo","transactionGetReceipt","transactionGetRecord","transactionGetFastRecord","consensusGetTopicInfo","networkGetVersionInfo","tokenGetInfo","scheduleGetInfo","tokenGetAccountNftInfos","tokenGetNftInfo","tokenGetNftInfos","networkGetExecutionTime","accountDetails","GetByKeyQuery","GetBySolidityIDQuery","ContractCallLocalQuery","ContractGetInfoQuery","ContractGetBytecodeQuery","ContractGetRecordsQuery","CryptoGetAccountBalanceQuery","CryptoGetAccountRecordsQuery","CryptoGetInfoQuery","CryptoGetLiveHashQuery","CryptoGetStakersQuery","FileGetContentsQuery","FileGetInfoQuery","TransactionGetReceiptQuery","TransactionGetRecordQuery","TransactionGetFastRecordQuery","ConsensusGetTopicInfoQuery","NetworkGetVersionInfoQuery","TokenGetInfoQuery","ScheduleGetInfoQuery","TokenGetAccountNftInfosQuery","TokenGetNftInfoQuery","TokenGetNftInfosQuery","NetworkGetExecutionTimeQuery","GetAccountDetailsQuery","header","key","QueryHeader","EntityID","accountID","liveHash","fileID","contractID","LiveHash","ContractID","GetByKeyResponse","entities","ResponseHeader","ShardID","shardNum","RealmID","realmNum","BlockHashAlgorithm","valuesById","values","accountNum","alias","NftID","token_ID","serialNumber","TokenID","fileNum","contractNum","evmAddress","TransactionID","transactionValidStart","scheduled","nonce","AccountAmount","amount","isApproval","TransferList","accountAmounts","NftTransfer","senderAccountID","receiverAccountID","TokenTransferList","transfers","nftTransfers","token","expectedDecimals","UInt32Value","Fraction","numerator","denominator","topicNum","tokenNum","ScheduleID","scheduleNum","TokenType","SubType","TokenSupplyType","TokenKeyValidation","TokenFreezeStatus","TokenKycStatus","TokenPauseStatus","ed25519","RSA_3072","ECDSA_384","thresholdKey","keyList","ECDSASecp256k1","delegatableContractId","ThresholdKey","KeyList","threshold","Signature","contract","thresholdSignature","signatureList","ThresholdSignature","SignatureList","sigs","SignaturePair","pubKeyPrefix","SignatureMap","sigPair","HederaFunctionality","FeeComponents","constant","bpt","vpt","rbh","sbh","gas","tv","bpr","sbpr","TransactionFeeSchedule","fees","hederaFunctionality","feeData","FeeData","nodedata","networkdata","servicedata","subType","FeeSchedule","transactionFeeSchedule","expiryTime","TimestampSeconds","CurrentAndNextFeeSchedule","currentFeeSchedule","nextFeeSchedule","ipAddressV4","port","domainName","ipAddress","portno","memo","RSA_PubKey","nodeAccountId","nodeCertHash","stake","NodeAddressBook","nodeAddress","major","minor","patch","pre","Setting","ServicesConfigurationList","nameValue","TokenRelationship","tokenId","symbol","balance","kycStatus","freezeStatus","decimals","automaticAssociation","TokenBalance","TokenBalances","tokenBalances","TokenAssociation","StakingInfo","declineReward","stakePeriodStart","pendingReward","stakedToMe","stakedAccountId","stakedNodeId","PendingAirdropId","senderId","receiverId","fungibleTokenType","nonFungibleToken","PendingAirdropValue","seconds","nanos","ResponseType","payment","responseType","body","sigMap","bodyBytes","signedTransactionBytes","TransactionBody","transactionID","nodeAccountID","transactionFee","transactionValidDuration","generateRecord","contractCall","contractCreateInstance","contractUpdateInstance","cryptoAddLiveHash","cryptoCreateAccount","cryptoDelete","cryptoDeleteLiveHash","cryptoTransfer","cryptoUpdateAccount","fileAppend","fileCreate","fileDelete","fileUpdate","systemDelete","systemUndelete","contractDeleteInstance","consensusCreateTopic","consensusUpdateTopic","consensusDeleteTopic","consensusSubmitMessage","uncheckedSubmit","tokenCreation","tokenFreeze","tokenUnfreeze","tokenGrantKyc","tokenRevokeKyc","tokenDeletion","tokenUpdate","tokenMint","tokenBurn","tokenWipe","tokenAssociate","tokenDissociate","scheduleCreate","scheduleDelete","scheduleSign","tokenFeeScheduleUpdate","tokenPause","tokenUnpause","cryptoApproveAllowance","cryptoDeleteAllowance","ethereumTransaction","nodeStakeUpdate","utilPrng","tokenUpdateNfts","nodeCreate","nodeUpdate","nodeDelete","tokenReject","tokenAirdrop","tokenCancelAirdrop","tokenClaimAirdrop","tssShareSignature","tssEncryptionKey","Duration","ContractCallTransactionBody","ContractCreateTransactionBody","ContractUpdateTransactionBody","CryptoAddLiveHashTransactionBody","CryptoCreateTransactionBody","CryptoDeleteTransactionBody","CryptoDeleteLiveHashTransactionBody","CryptoTransferTransactionBody","CryptoUpdateTransactionBody","FileAppendTransactionBody","FileCreateTransactionBody","FileDeleteTransactionBody","FileUpdateTransactionBody","SystemDeleteTransactionBody","SystemUndeleteTransactionBody","ContractDeleteTransactionBody","FreezeTransactionBody","ConsensusCreateTopicTransactionBody","ConsensusUpdateTopicTransactionBody","ConsensusDeleteTopicTransactionBody","ConsensusSubmitMessageTransactionBody","UncheckedSubmitBody","TokenCreateTransactionBody","TokenFreezeAccountTransactionBody","TokenUnfreezeAccountTransactionBody","TokenGrantKycTransactionBody","TokenRevokeKycTransactionBody","TokenDeleteTransactionBody","TokenUpdateTransactionBody","TokenMintTransactionBody","TokenBurnTransactionBody","TokenWipeAccountTransactionBody","TokenAssociateTransactionBody","TokenDissociateTransactionBody","ScheduleCreateTransactionBody","ScheduleDeleteTransactionBody","ScheduleSignTransactionBody","TokenFeeScheduleUpdateTransactionBody","TokenPauseTransactionBody","TokenUnpauseTransactionBody","CryptoApproveAllowanceTransactionBody","CryptoDeleteAllowanceTransactionBody","EthereumTransactionBody","NodeStakeUpdateTransactionBody","UtilPrngTransactionBody","TokenUpdateNftsTransactionBody","TokenRejectTransactionBody","TokenAirdropTransactionBody","TokenCancelAirdropTransactionBody","TokenClaimAirdropTransactionBody","expirationTime","startHour","startMin","endHour","endMin","updateFile","fileHash","startTime","freezeType","FreezeType","functionParameters","initcode","initialBalance","proxyAccountID","autoRenewPeriod","constructorParameters","shardID","realmID","newRealmAdminKey","maxAutomaticTokenAssociations","autoRenewAccountId","memoWrapper","Int32Value","BoolValue","duration","sendRecordThreshold","receiveRecordThreshold","receiverSigRequired","transferAccountID","deleteAccountID","accountOfLiveHash","liveHashToDelete","tokenTransfers","accountIDToUpdate","proxyFraction","sendRecordThresholdWrapper","receiveRecordThresholdWrapper","receiverSigRequiredWrapper","UInt64Value","cryptoAllowances","nftAllowances","tokenAllowances","CryptoAllowance","NftAllowance","TokenAllowance","owner","spender","serialNumbers","approvedForAll","delegatingSpender","NftRemoveAllowance","ethereumData","callData","maxGasAllowance","contents","transferContractID","permanentRemoval","submitKey","autoRenewAccount","initialTransactionID","total","number","transactionBytes","customFees","initialSupply","treasury","kycKey","freezeKey","wipeKey","supplyKey","freezeDefault","expiry","tokenType","supplyType","maxSupply","feeScheduleKey","pauseKey","metadata","metadataKey","CustomFee","FractionalFee","fractionalAmount","minimumAmount","maximumAmount","netOfTransfers","FixedFee","denominatingTokenId","RoyaltyFee","exchangeValueFraction","fallbackFee","fixedFee","fractionalFee","royaltyFee","feeCollectorAccountId","allCollectorsAreExempt","AssessedCustomFee","effectivePayerAccountId","account","keyVerificationMode","tokens","rejections","TokenReference","fungibleToken","nft","pendingAirdrops","scheduledTransactionBody","payerAccountID","waitForExpiry","SchedulableTransactionBody","scheduleID","nodeStake","endOfStakingPeriod","maxStakingRewardRatePerHbar","nodeRewardFeeFraction","stakingPeriodsStored","stakingPeriod","stakingRewardFeeFraction","stakingStartThreshold","stakingRewardRate","reservedStakingRewards","unreservedStakingRewardBalance","rewardBalanceThreshold","maxStakeRewarded","maxTotalReward","NodeStake","maxStake","minStake","rewardRate","stakeNotRewarded","stakeRewarded","nodeTransactionPrecheckCode","cost","stateProof","ResponseCodeEnum","solidityID","GetBySolidityIDResponse","ContractLoginfo","topic","bloom","ContractFunctionResult","logInfo","createdContractIDs","contractNonces","contractCallResult","errorMessage","gasUsed","signerNonce","ContractNonceInfo","Int64Value","maxResultSize","ContractCallLocalResponse","functionResult","contractId","ContractGetInfoResponse","contractInfo","ContractInfo","tokenRelationships","contractAccountID","storage","deleted","stakingInfo","ContractGetBytecodeResponse","bytecode","ContractGetRecordsResponse","records","TransactionRecord","tokenTransferLists","assessedCustomFees","automaticTokenAssociations","paidStakingRewards","newPendingAirdrops","receipt","transactionHash","contractCreateResult","transferList","scheduleRef","parentConsensusTimestamp","ethereumHash","prngBytes","prngNumber","TransactionReceipt","PendingAirdropRecord","pendingAirdropId","pendingAirdropValue","status","exchangeRate","topicSequenceNumber","topicRunningHash","topicRunningHashVersion","tokenID","newTotalSupply","scheduledTransactionID","ExchangeRateSet","ExchangeRate","hbarEquiv","centEquiv","currentRate","nextRate","CryptoGetAccountBalanceResponse","CryptoGetAccountRecordsResponse","CryptoGetInfoResponse","accountInfo","AccountInfo","liveHashes","proxyReceived","generateSendRecordThreshold","generateReceiveRecordThreshold","ownedNfts","ethereumNonce","CryptoGetLiveHashResponse","ProxyStaker","AllProxyStakers","proxyStaker","CryptoGetStakersResponse","stakers","FileGetContentsResponse","fileContents","FileContents","FileGetInfoResponse","fileInfo","FileInfo","includeDuplicates","includeChildReceipts","TransactionGetReceiptResponse","duplicateTransactionReceipts","childTransactionReceipts","includeChildRecords","TransactionGetRecordResponse","duplicateTransactionRecords","childTransactionRecords","transactionRecord","TransactionGetFastRecordResponse","ConsensusGetTopicInfoResponse","topicInfo","ConsensusTopicInfo","NetworkGetVersionInfoResponse","hapiProtoVersion","hederaServicesVersion","transactionIds","NetworkGetExecutionTimeResponse","executionTimes","TokenInfo","totalSupply","defaultFreezeStatus","defaultKycStatus","pauseStatus","TokenGetInfoResponse","tokenInfo","ScheduleInfo","deletionTime","executionTime","signers","creatorAccountID","ScheduleGetInfoResponse","scheduleInfo","TokenGetAccountNftInfosResponse","nfts","TokenNftInfo","nftID","creationTime","spenderId","TokenGetNftInfoResponse","TokenGetNftInfosResponse","GetAccountDetailsResponse","AccountDetails","grantedCryptoAllowances","grantedNftAllowances","grantedTokenAllowances","contractAccountId","proxyAccountId","GrantedCryptoAllowance","GrantedNftAllowance","GrantedTokenAllowance","Response","contractGetBytecodeResponse","contractGetRecordsResponse","createTopic","updateTopic","deleteTopic","getTopicInfo","submitMessage","CryptoService","createAccount","updateAccount","approveAllowances","deleteAllowances","addLiveHash","deleteLiveHash","getLiveHash","getAccountRecords","cryptoGetBalance","getAccountInfo","getTransactionReceipts","getFastTransactionRecord","getTxRecordByTxID","getStakersByAccountID","FileService","createFile","deleteFile","appendContent","getFileContent","getFileInfo","FreezeService","getVersionInfo","getExecutionTime","getAccountDetails","ScheduleService","createSchedule","signSchedule","deleteSchedule","getScheduleInfo","SmartContractService","createContract","updateContract","contractCallMethod","getContractInfo","contractCallLocalMethod","getTxRecordByContractID","deleteContract","callEthereum","ThrottleGroup","operations","milliOpsPerSec","ThrottleBucket","throttleGroups","burstPeriodMs","ThrottleDefinitions","throttleBuckets","TokenService","createToken","updateToken","mintToken","burnToken","deleteToken","wipeTokenAccount","freezeTokenAccount","unfreezeTokenAccount","grantKycToTokenAccount","revokeKycFromTokenAccount","associateTokens","dissociateTokens","updateTokenFeeSchedule","getTokenInfo","getAccountNftInfos","getTokenNftInfo","getTokenNftInfos","pauseToken","unpauseToken","updateNfts","rejectToken","airdropTokens","cancelAirdrop","claimAirdrop","SignedTransaction","UtilService","prng","TokenUnitBalance","SingleAccountBalances","tokenUnitBalances","hbarBalance","AllAccountBalances","allAccounts","ContractActions","contractActions","ContractAction","ContractActionType","CallOperationType","callType","callingAccount","callingContract","recipientAccount","recipientContract","targetedAddress","revertReason","callDepth","callOperationType","ContractBytecode","runtimeBytecode","ContractStateChanges","contractStateChanges","ContractStateChange","storageChanges","StorageChange","slot","valueRead","valueWritten","HashAlgorithm","HashObject","algorithm","RecordStreamFile","recordStreamItems","sidecars","startObjectRunningHash","endObjectRunningHash","blockNumber","RecordStreamItem","SidecarMetadata","transaction","record","types","SidecarType","SidecarFile","sidecarRecords","TransactionSidecarRecord","migration","stateChanges","actions","SignatureFile","fileSignature","metadataSignature","SignatureObject","checksum","hashObject","SignatureType","DoubleValue","FloatValue","lib","google_1","com_1","Writer_1","Reader_1","_long","_interopRequireDefault","$proto","Key$1","BadKeyError","messageOrCause","cause","getDefaultExportFromCjs","browser","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","runClearTimeout","marker","clearTimeout","queue","draining","currentQueue","queueIndex","cleanUpNextTick","drainQueue","timeout","run","Item","nextTick","title","env","argv","addListener","once","removeListener","removeAllListeners","prependListener","prependOnceListener","binding","cwd","chdir","umask","browserExports","process$1","copyProps","SafeBuffer","module","MAX_BYTES","MAX_UINT32","msCrypto","browserModule","cb","generated","inherits_browserModule","ctor","superCtor","super_","TempCtor","R","Reflect","ReflectApply","receiver","Function","ReflectOwnKeys","ProcessEmitWarning","warning","warn","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","NumberIsNaN","init","events","eventsModule","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","_getMaxListeners","that","_addListener","prepend","existing","newListener","unshift","warned","emitter","count","onceWrapper","fired","wrapFn","_onceWrap","state","wrapped","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","spliceOne","errorListener","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","handler","flags","addEventListener","wrapListener","removeEventListener","getPrototypeOf","setMaxListeners","getMaxListeners","doError","er","context","position","originalListener","shift","rawListeners","eventNames","streamBrowser","shams","iterator","symObj","_","syms","propertyIsEnumerable","descriptor","hasSymbols","esObjectAtoms","esErrors","_eval","EvalError","ref","ReferenceError","syntax","uri","URIError","gOPD","$gOPD","gopd","$defineProperty","esDefineProperty","origSymbol","hasSymbolSham","toStr","concatty","implementation","bound","arrLike","slicy","boundLength","boundArgs","joiner","joiny","Empty","functionBind","functionCall","functionApply","reflectApply","$apply","$call","$reflectApply","actualApply","$TypeError","$actualApply","callBindApplyHelpers","hasProtoAccessor","callBind","desc","$Object","$getPrototypeOf","$hasOwn","undefined","$Error","$EvalError","$RangeError","$ReferenceError","$SyntaxError","$URIError","require$$8","require$$9","require$$10","require$$11","require$$12","$Function","getEvalledConstructor","expressionSyntax","require$$13","require$$14","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","require$$15","getDunderProto","require$$16","getProto","require$$17","require$$18","needsEval","TypedArray","INTRINSICS","AggregateError","Atomics","BigInt64Array","BigUint64Array","Date","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","FinalizationRegistry","Int8Array","Int16Array","Int32Array","JSON","Map","parseFloat","Proxy","Uint8ClampedArray","Uint16Array","WeakRef","WeakSet","errorProto","doEval","gen","LEGACY_ALIASES","require$$19","hasOwn","require$$20","$concat","$spliceApply","$replace","$strSlice","$exec","exec","rePropName","reEscapeChar","getBaseIntrinsic","allowMissing","intrinsicName","getIntrinsic","quote","subString","stringToPath","intrinsicBaseName","intrinsic","intrinsicRealName","skipFurtherCaching","isOwn","part","GetIntrinsic","callBindBasic","$indexOf","callBound","hasToStringTag","$toString","isStandardArguments","isLegacyArguments","callee","supportsStandardArguments","isArguments","GeneratorFunction","fnToStr","isFnRegex","isGeneratorFunction","generatorFunc","getGeneratorFunc","badArrayLike","isCallableMarker","constructorRegex","isES6ClassFn","fnStr","tryFunctionObject","isIE68","isDDA","document","all","strClass","isCallable","forEach","thisArg","forEachArray","forEachString","object","forEachObject","possibleTypedArrayNames","possibleNames","g","availableTypedArrays","defineDataProperty","property","nonEnumerable","nonWritable","nonConfigurable","hasPropertyDescriptors","hasArrayLengthDefineBug","hasPropertyDescriptors_1","define","hasDescriptors","$floor","setFunctionLength","functionLengthIsConfigurable","functionLengthIsWritable","applyBind","originalFunction","func","adjustedLength","typedArrays","$slice","typedArray","superProto","whichTypedArray","tag","getter","trySlices","tryTypedArrays","isTypedArray$1","isArgumentsObject","isTypedArray","uncurryThis","f","BigIntSupported","SymbolSupported","ObjectToString","numberValue","stringValue","booleanValue","bigIntValue","symbolValue","checkBoxedPrimitive","prototypeValueOf","isMapToString","isSetToString","isWeakMapToString","isWeakSetToString","isArrayBufferToString","isArrayBuffer","working","isDataViewToString","isDataView","isPromise","then","catch","isArrayBufferView","isUint8ClampedArray","isUint16Array","isUint32Array","isInt8Array","isInt16Array","isInt32Array","isFloat32Array","isFloat64Array","isBigInt64Array","isBigUint64Array","isMap","isWeakMap","isWeakSet","SharedArrayBufferCopy","isSharedArrayBufferToString","isSharedArrayBuffer","isNumberObject","isStringObject","isBooleanObject","isBigIntObject","isSymbolObject","isAsyncFunction","isMapIterator","isSetIterator","isGeneratorObject","isWebAssemblyCompiledModule","isBoxedPrimitive","isAnyArrayBuffer","isBufferBrowser","getOwnPropertyDescriptors","descriptors","formatRegExp","objects","isNull","deprecate","noDeprecation","throwDeprecation","traceDeprecation","trace","debugs","debugEnvRegex","NODE_DEBUG","debugEnv","seen","stylize","stylizeNoColor","depth","colors","isBoolean","showHidden","_extend","isUndefined","customInspect","stylizeWithColor","formatValue","styleType","style","styles","recurseTimes","isFunction","primitive","simple","formatPrimitive","visibleKeys","idx","arrayToHash","isError","formatError","isRegExp","isDate","braces","toUTCString","formatProperty","formatArray","reduce","prev","cur","reduceToSingleString","line","ar","re","objectToString","o","debuglog","pid","bold","italic","underline","inverse","white","grey","black","blue","cyan","green","magenta","red","yellow","special","boolean","null","date","regexp","isNullOrUndefined","isSymbol","isNativeError","isPrimitive","months","time","getHours","getMinutes","getSeconds","getDate","getMonth","inherits","origin","kCustomPromisifiedSymbol","callbackifyOnRejected","reason","newReason","promisify","original","promiseResolve","promiseReject","promise","defineProperties","custom","callbackify","callbackified","maybeCb","rej","enumerableOnly","symbols","filter","_objectSpread","source","_defineProperty","_toPropertyKey","_createClass","Constructor","protoProps","staticProps","props","_defineProperties","hint","prim","_toPrimitive","buffer_list","BufferList","instance","_classCallCheck","entry","hasStrings","_getString","_getBuffer","nb","options","emitErrorAndCloseNT","emitErrorNT","emitCloseNT","_writableState","emitClose","_readableState","destroy_1$1","destroy","_this","readableDestroyed","destroyed","writableDestroyed","errorEmitted","_destroy","undestroy","reading","ended","endEmitted","ending","finalCalled","prefinished","finished","errorOrDestroy","stream","rState","wState","autoDestroy","createErrorType","NodeError","_Base","subClass","superClass","arg1","arg2","arg3","oneOf","expected","thing","determiner","endsWith","this_len","errorsBrowser","ERR_INVALID_OPT_VALUE","state$8","getHighWaterMark","duplexKey","isDuplex","hwm","highWaterMark","highWaterMarkFrom","objectMode","localStorage","browser$f","CorkedRequest","corkReq","pendingcb","corkedRequestsFree","onCorkedFinish","Duplex","_stream_writable$1","Writable","WritableState","internalUtil","Stream","OurUint8Array","realHasInstance","destroyImpl","_require$codes","ERR_METHOD_NOT_IMPLEMENTED","ERR_MULTIPLE_CALLBACK","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_DESTROYED","ERR_STREAM_NULL_VALUES","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","nop","writableObjectMode","needDrain","noDecode","decodeStrings","defaultEncoding","writing","corked","sync","bufferProcessing","onwrite","writecb","writelen","onwriteStateUpdate","finishMaybe","needFinish","bufferedRequest","clearBuffer","afterWrite","lastBufferedRequest","bufferedRequestCount","_write","writev","_writev","final","_final","doWrite","holder","allBuffers","isBuf","callFinal","need","prefinish","getBuffer","current","hasInstance","pipe","_uint8ArrayToBuffer","writeAfterEnd","validChunk","newChunk","decodeChunk","writeOrBuffer","cork","uncork","setDefaultEncoding","endWritable","_undestroy","objectKeys","_stream_duplex$1","Readable","allowHalfOpen","readable","onend","onEndNT","StringDecoder","enc","nenc","retried","_normalizeEncoding","normalizeEncoding","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","utf8CheckByte","utf8CheckExtraBytes","string_decoder","utf8CheckIncomplete","ERR_STREAM_PREMATURE_CLOSE","endOfStream","eos","called","_len","_key","onlegacyfinish","onfinish","writableEnded","readableEnded","onerror","onclose","onrequest","req","setHeader","abort","isRequest","_Object$setPrototypeO","kLastResolve","kLastReject","kError","kEnded","kLastPromise","kHandlePromise","kStream","createIterResult","done","readAndResolve","iter","onReadable","AsyncIteratorPrototype","ReadableStreamAsyncIteratorPrototype","lastPromise","wrapForNext","asyncIterator","_this2","async_iterator","_Object$create","fromBrowser","_stream_readable$1","ReadableState","eventsExports","EElistenerCount","debug","debugUtil","createReadableStreamAsyncIterator","ERR_STREAM_PUSH_AFTER_EOF","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","kProxyEvents","readableObjectMode","pipes","pipesCount","flowing","needReadable","emittedReadable","readableListening","resumeScheduled","paused","awaitDrain","readingMore","decoder","_read","readableAddChunk","addToFront","skipChunkCheck","emitReadable","emitReadable_","onEofChunk","chunkInvalid","maybeReadMore","addChunk","isPaused","setEncoding","content","clear","MAX_HWM","howMuchToRead","computeNewHighWaterMark","flow","maybeReadMore_","updateReadableListening","resume","nReadingNextTick","resume_","fromList","consume","endReadable","endReadableNT","xs","nOrig","doRead","dest","pipeOpts","endFn","stdout","stderr","unpipe","onunpipe","unpipeInfo","hasUnpiped","ondrain","ondata","cleanedUp","pipeOnDrain","pause","dests","ev","wrap","_fromList","iterable","_stream_transform$1","Transform","ERR_TRANSFORM_ALREADY_TRANSFORMING","ERR_TRANSFORM_WITH_LENGTH_0","afterTransform","ts","_transformState","transforming","writechunk","rs","needTransform","writeencoding","transform","_transform","flush","_flush","err2","_stream_passthrough$1","PassThrough","ERR_MISSING_ARGS","to","pipeline_1","streams","popCallback","destroys","closed","destroyer","streamBrowserify","EE","pipeline","_isStdio","didOnEnd","cleanup","HashBase","blockSize","_block","_blockSize","_blockOffset","_length","_finalized","update","digest","useUint8Array","useArrayBuffer","toBuffer","block","_update","_digest","hashBase","ARRAY16","MD5","_a","_b","_c","_d","fnF","fnG","fnH","fnI","M","md5_js","zl","zr","sl","sr","hl","hr","RIPEMD160","_e","fn1","fn2","fn3","fn4","fn5","words","al","bl","cl","dl","el","br","cr","dr","tl","tr","Hash","finalSize","_finalSize","accum","assigned","remainder","_hash","hash$9","K","W","Sha","_w","rotl30","ft","H","sha$1","Sha1","rotl5","sha1$1","Sha256","ch","maj","sigma0","sigma1","gamma0","_f","_g","_h","h","T1","T2","sha256$3","Sha224","sha224$1","Sha512","Ch","xl","Gamma0","Gamma0l","Gamma1","Gamma1l","getCarry","_ah","_bh","_ch","_dh","_eh","_fh","_gh","_hh","_al","_bl","_cl","_dl","_el","_fl","_gl","_hl","ah","bh","dh","eh","fh","gh","hh","fl","gl","xh","gamma0l","gamma1","gamma1l","Wi7h","Wi7l","Wi16h","Wi16l","Wil","Wih","majh","majl","sigma0h","sigma0l","sigma1h","sigma1l","Kih","Kil","chh","chl","t1l","t1h","t2l","t2h","writeInt64BE","sha512$4","SHA512","Sha384","sha384$2","sha_jsModule","Algorithm","sha","sha1","sha224","sha256","sha384","sha512","CipherBase","hashMode","_finalOrDigest","__final","_decoder","_encoding","inputEnc","outputEnc","bufferData","outData","_toString","setAutoPadding","getAuthTag","setAuthTag","setAAD","fin","cipherBase","browser$e","alg","ZEROS","blocksize","Hmac","_alg","ipad","_ipad","opad","_opad","md5","Legacy","browser$d","MAX_ALLOC","precondition","iterations","keylen","defaultEncoding_1","checkParameters","sizes","rmd160","ripemd160","saltLen","shaFunc","rmd160Func","getDigest","ipad1","ipad2","syncBrowser","password","salt","hmac","DK","block1","destPos","hLen","T","U","ZERO_BUF","subtle","toBrowser","checks","getNextTick","queueMicrotask","setImmediate","browserPbkdf2","algo","importKey","deriveBits","async","resolvePromise","prom","checkNative","resp","pbkdf2","pbkdf2Sync","utils","ip","inL","inR","outL","outR","rip","pc1","r28shl","pc2table","pc2","expand","sTable","substitute","permuteTable","utils$Q","permute","padSplit","group","minimalisticAssert","assert","Cipher","_init","bufferOff","padding","cipher","_updateDecrypt","_updateEncrypt","_buffer","_flushBuffer","inputOff","outputOff","_finalEncrypt","_finalDecrypt","_pad","_unpad","equal","DESState","DES","_desState","deriveKeys","des","shiftTable","kL","kR","inp","inOff","outOff","_encrypt","_decrypt","lStart","rStart","keyL","keyR","assert$x","CBCState","iv","cbc","instantiate","CBC","_cbcInit","_cbcState","EDEState","k1","k2","k3","ciphers","EDE","_edeState","ede","modes","modeName","mode","decrypt","_des","des3","browserifyDes","ecb","encrypt","_cipher","encryptBlock","decryptBlock","bufferXor","_prev","encryptStart","_cache","cfb","encryptByte","byteParam","cfb8","shiftIn","cfb1","getBlock","ofb","incr32_1","item","incr32","encryptBlockRaw","ctr","chunkNum","modeModules","ECB","CFB","CFB8","CFB1","OFB","CTR","GCM","asUInt32Array","scrubVec","cryptBlock","keySchedule","SUB_MIX","SBOX","nRounds","t0","t1","t2","t3","SUB_MIX0","SUB_MIX1","SUB_MIX2","SUB_MIX3","s0","s1","s2","s3","ksRow","RCON","G","INV_SBOX","INV_SUB_MIX","sx","x2","x4","x8","AES","_reset","keySize","keyWords","ksRows","invKeySchedule","ik","ksR","tt","_nRounds","_keySchedule","_invKeySchedule","m1","scrub","aes","ZEROES","fromArray","GHASH","ghash","_multiply","lsbVi","Vi","Zi","abl","StreamCipher","ck","_ghash","_finID","toPad","ivBits","calcIv","_secCache","_alen","_mode","_authTag","_called","rump","xorTest","authCipher","streamCipher","evp_bytestokey","keyBits","ivLen","keyLen","used","keyStart","ivStart","MODES","AuthCipher","ebtk","Splitter","_autopadding","PADDING","createCipheriv","suite","setTo","padBuff","encrypter","createCipher","Decipher","_last","createDecipheriv","padded","unpad","autoPadding","decrypter","createDecipher","deciphers","browser$a","Cipheriv","Decipheriv","listCiphers","aesModes","desModes","browser$b","getCiphers","BN","endian","isBN","negative","wordSize","parseHex4Bits","parseHexByte","lowerBound","parseBase","left","right","_initNumber","_initArray","_parseHex","_parseBase","toArray","strip","limbLen","limbPow","word","imuln","_iaddn","_expand","_normSign","zeros","groupSizes","groupBases","smallMulTo","ncarry","rword","maxJ","groupBase","modn","idivn","toArrayLike","ArrayType","reqLength","andln","iushrn","_countBits","_zeroBits","bitLength","zeroBits","toTwos","width","inotn","iaddn","fromTwos","testn","notn","ineg","iuor","ior","uor","iuand","iand","uand","iuxor","ixor","uxor","bytesNeeded","bitsLeft","setn","wbit","iadd","isub","comb10MulTo","mid","a0","al0","ah0","a1","al1","ah1","a2","al2","ah2","a3","al3","ah3","a4","al4","ah4","a5","al5","ah5","a6","al6","ah6","a7","al7","ah7","a8","al8","ah8","a9","al9","ah9","b0","bl0","bh0","b1","bl1","bh1","b2","bl2","bh2","b3","bl3","bh3","b4","bl4","bh4","b5","bl5","bh5","b6","bl6","bh6","b7","bl7","bh7","b8","bl8","bh8","b9","bl9","bh9","w0","imul","w1","w2","w3","w4","w5","w6","w7","w8","w9","w10","w11","w12","w13","w14","w15","w16","w17","w18","jumboMulTo","FFTM","mulp","mulTo","hncarry","bigMulTo","makeRBT","N","revBin","rb","rbt","rws","iws","rtws","itws","rtwdf","cos","PI","itwdf","sin","rtwdf_","itwdf_","ie","ro","io","rx","guessLen13b","odd","conjugate","normalize13b","ws","convert13b","stub","ph","rwst","iwst","nrws","nrwst","niwst","rmws","mulf","muln","sqr","isqr","toBitArray","iushln","carryMask","newCarry","ishln","extended","maskedWords","ishrn","shln","ushln","shrn","ushrn","imaskn","maskn","isubn","addn","subn","iabs","_ishlnsubmul","_wordDiv","bhi","diff","qj","divmod","positive","divn","umod","divRound","dm","r2","acc","egcd","A","B","C","D","yp","xp","im","jm","gcd","_invmp","x1","cmpn","invm","bincn","ucmp","gtn","gten","ltn","lten","eqn","Red","toRed","convertTo","_forceRed","fromRed","convertFrom","forceRed","redAdd","redIAdd","redSub","redISub","redShl","redMul","_verify2","redIMul","redSqr","_verify1","redISqr","redSqrt","redInvm","redNeg","redPow","primes","k256","p224","p192","p25519","MPrime","_tmp","K256","P224","P192","P25519","prime","_prime","Mont","imod","rinv","minv","ireduce","rlen","imulK","_strip","outLen","mod3","one","nOne","lpow","inv","wnd","currentLen","mont","Rand","brorand","generate","brorandModule","_rand","getBytes","getByte","bn","MillerRabin","mr$3","_randbelow","min_bytes","_randrange","stop","rone","rn1","getDivisor","generatePrime","findPrime","simpleSieve","fermatTest","TWENTYFOUR","millerRabin","TWO","FIVE","TEN","THREE","ELEVEN","FOUR","_getPrimes","n2","SEVEN","setPublicKey","pub","_pub","setPrivateKey","priv","_priv","DH","primeCache","generator","malleable","setGenerator","__prime","_primeLen","_primeCode","formatReturnValue","hex","checkPrime","__gen","generateKeys","_gen","getPublicKey","computeSecret","secret","getPrime","front","getPrivateKey","getGenerator","ENCODINGS","binary","DiffieHellmanGroup","createDiffieHellmanGroup","getDiffieHellman","browser$9","createDiffieHellman","genc","processNextickArgsModule","isarray$1","util$7","pna","destroy_1","_stream_writable","asyncWrite","writableHwm","writableHighWaterMark","defaultHwm","valid","_stream_duplex","_stream_readable","readableHwm","readableHighWaterMark","needMoreData","copyFromBufferString","copyFromBuffer","fromListPartial","increasedAwaitDrain","_stream_transform","_stream_passthrough","move","_move","modrn","allocate","_toArrayLikeLE","_toArrayLikeBE","isNegNum","getr","modulus","prime1","prime2","crt","blinds","blinder","publicExponent","unblinder","blind","blinded","qinv","coefficient","exponent1","m2","exponent2","browserifyRsa","minAssert","minUtils","zero2","toHex","getNAF","naf","getJSF","jsf","m8","u1","u2","m14","m24","cachedProperty","computer","parseBytes","intFromLE","BaseCurve","conf","two","pointFromJSON","gRed","_wnafT1","_wnafT2","_wnafT3","_wnafT4","_bitLength","adjustCount","redN","_maxwellTrick","BasePoint","curve","precomputed","point","validate","_fixedNafMul","doubles","_getDoubles","I","step","nafW","repr","jpoint","mixedAdd","points","toP","_wnafMul","nafPoints","_getNAFPoints","dblp","_wnafMulAdd","defW","coeffs","jacobianResult","wndWidth","comb","toJ","ja","jb","decodePoint","pointFromX","encodeCompressed","_encode","compact","getX","getY","precompute","beta","_getBeta","_hasDoubles","dbl","ShortCurve","tinv","zeroA","threeA","endo","_getEndomorphism","_endoWnafT1","_endoWnafT2","Point","isRed","inf","JPoint","zOne","lambda","betas","_getEndoRoots","lambdas","basis","vec","_getEndoBasis","ntinv","prevR","aprxSqrt","y1","y2","len1","_endoSplit","v1","v2","q1","q2","ax","rhs","_endoWnafMulAdd","npoints","ncoeffs","fromJSON","endoMul","obj2point","isInfinity","nx","ny","ys1","dyinv","mulAdd","jmulAdd","_precompute","zinv","zinv2","ay","pz2","z2","h2","h3","nz","jx","jy","jz","jz4","jyd","jx2","jyd2","jyd4","dny","_zeroDbl","_threeDbl","_dbl","xx","yy","yyyy","yyyy8","c8","gamma","alpha","beta4","beta8","ggamma8","jy2","jxd4","jyd8","trpl","zz","mm","ee","yyu4","kbase","z3","pz3","eqXToP","MontCurve","i4","a24","normalize","aa","bb","diffAdd","da","jumlAdd","EdwardsCurve","twisted","mOneA","dd","oneC","_mulA","_mulC","lhs","pointFromY","_extDbl","nt","_projDbl","_extAdd","_projAdd","zi","short","edwards","isSurrogatePair","htonl","toHex32","zero8","join32","split32","rotr32","rotl32","sum32","sum32_3","sum32_4","sum32_5","sum64","sum64_hi","sum64_lo","sum64_4_hi","sum64_4_lo","sum64_5_hi","sum64_5_lo","rotr64_hi","rotr64_lo","shr64_hi","shr64_lo","utils$N","BlockHash","pendingTotal","outSize","hmacStrength","padLength","_delta8","_delta32","common$5","BlockHash$4","assert$v","ft_1","ch32","p32","maj32","s0_256","s1_256","g0_256","g1_256","common$4","common","shaCommon","sha1_K","SHA1","utils$K","_1","sha256_K","SHA256","utils$J","_256","SHA256$1","SHA224","utils$I","_224","sha512_K","utils$H","_512","ch64_hi","yh","yl","zh","ch64_lo","maj64_hi","maj64_lo","s0_512_hi","s0_512_lo","s1_512_hi","s1_512_lo","g0_512_hi","g0_512_lo","g1_512_hi","g1_512_lo","SHA512$1","_prepareBlock","c0_hi","c0_lo","c1_hi","c1_lo","c2_hi","c2_lo","c3_hi","c3_lo","c4_hi","c4_lo","T1_hi","T1_lo","T2_hi","T2_lo","SHA384","utils$G","_384","Kh","utils$F","ripemd","Ah","Bh","Dh","Eh","rh","sh","inner","outer","secp256k1$5","curves","PresetCurve","defineCurve","HmacDRBG","predResist","minEntropy","_reseed","reseedInterval","V","entropy","entropyEnc","nonceEnc","pers","persEnc","hmacDrbg","KeyPair","ec","_importPrivate","privEnc","_importPublic","pubEnc","fromPublic","fromPrivate","getPublic","getPrivate","derive","verify","_importDER","recoveryParam","Position","place","getLength","initial","octetLen","rmPadding","constructLength","octets","slen","toDER","backHalf","EC","nh","keyPair","keyFromPrivate","keyFromPublic","genKeyPair","drbg","ns2","_truncateToN","truncOnly","msgBitLength","bkey","ns1","kp","kpX","canonical","sinv","recoverPubKey","isYOdd","isSecondKey","rInv","getKeyRecoveryParam","Q","Qprime","eddsa","_secret","isPoint","_pubBytes","fromSecret","encodePoint","lastIx","encodingLength","decodeInt","privBytes","sig","getSecret","pubBytes","S","_R","_S","_Rencoded","Rencoded","_Sencoded","Sencoded","encodeInt","EDDSA","pointClass","keyFromSecret","hashInt","messagePrefix","s_","makeSignature","SG","normed","xIsOdd","elliptic","seed","HmacDRBG$3","_hmac","kmac","reseed","addEnc","Object_keys","defineProp","globals","Context","Script","runInContext","iframe","createElement","display","appendChild","win","contentWindow","wEval","wExecScript","execScript","winKeys","removeChild","runInThisContext","runInNewContext","createContext","isContext","createScript","asn1","Entity","decoders","encoders","_createNamed","named","entity","_initNamed","_getDecoder","_getEncoder","reporter","Reporter","_reporterState","path","ReporterError","rethrow","save","pathLen","restore","enterKey","exitKey","leaveKey","enterObject","leaveObject","now","inherited","elem","partial","wrapResult","DecoderBuffer","EncoderBuffer","isEmpty","fail","raw","tags","methods","Node","parent","_baseState","children","reverseArgs","choice","optional","any","use","useDecoder","explicit","implicit","contains","_wrap","stateProps","cstate","child","_useArgs","def","newKey","_decode","prevObj","present","prevKey","_peekTag","_decodeGeneric","_decodeChoice","_decodeTag","track","_getUse","_decodeList","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeBool","_decodeInt","_use","some","_createEncoderBuffer","_encodeValue","_skipDefault","_encodeChoice","_encodePrimitive","cls","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool","_isNumstr","_isPrintstr","tagClass","tagClassByName","_reverse","tagByName","der","bignum","DERDecoder","tree","DERNode","derDecodeTag","oct","tagStr","derDecodeLen","der_1$1","decodedTag","_skipUntilEnd","possibleEnd","unused","numstr","printstr","relative","identifiers","ident","subident","second","year","mon","day","hour","sec","UTC","PEMDecoder","pem$2","lines","label","pem","DEREncoder","der_1","encodedTag","encodeTag","lenOctets","objid","getFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","numArray","dataBuffer","defaultBuffer","PEMEncoder","pem$1","asn","Time","utcTime","utctime","generalTime","gentime","AttributeTypeValue","seq","AlgorithmIdentifier","SubjectPublicKeyInfo","bitstr","RelativeDistinguishedName","setof","RDNSequence","seqof","Name","rdnSequence","Validity","Extension","octstr","TBSCertificate","X509Certificate","certificate","asn1_1","RSAPrivateKey","RSAPublicKey","null_","PublicKey","PrivateKeyInfo","PrivateKey","EncryptedPrivateKeyInfo","EncryptedPrivateKey","DSAPrivateKey","DSAparam","ECParameters","namedCurve","ECPrivateKey","findProc","startRegex","fullRegex","evp","fixProc","okey","decrypted","cipherText","cipherKey","match2","aesid","compat","parseKeys","passphrase","subtype","ndata","stripped","tbsCertificate","subjectPublicKeyInfo","subjectPublicKey","subjectPrivateKey","pub_key","kde","kdeparams","iters","privateKey","priv_key","parameters","parseAsn1","createHmac","getKey","hlen","hbits","bits2int","bits2octets","obits","makeKey","kv","makeR","signModule","hashType","signType","curveId","ecSign","dsaSign","checkValue","pubkey","ecVerify","unpacked","montp","dsaVerify","padNum","createHash","algorithms","Sign","_hashType","_tag","_signType","Verify","createSign","createVerify","sigBuffer","browser$8","BaseCurve$3","BasePoint$3","Base$8","ShortCurve$3","Point$9","JPoint$3","Base$7","MontCurve$2","Point$8","Base$6","assert$o","EdwardsCurve$2","Point$7","secp256k1$4","KeyPair$b","assert$n","Signature$b","constructLength$3","KeyPair$a","assert$l","Signature$a","EDDSA$2","browser$7","ECDH","aliases","secp256k1","secp224r1","prime256v1","prime192v1","secp384r1","secp521r1","curveType","p256","secp256r1","secp192r1","p384","p521","inenc","i2ops","mgf","withPublic_1","paddedMsg","withPublic","publicEncrypt","publicKey","iHash","hLen2","ps","dblen","maskedDb","maskedSeed","oaep","pkcs1","nonZero","privateDecrypt","zBuffer","db","dif","privateEncrypt","publicDecrypt","oldBrowser","safeBuffer","randombytes","kBufferMaxLength","kMaxUint32","assertOffset","actualFill","ourBuf","randomFill","randomFillSync","cryptoBrowserify","pseudoRandomBytes","algos","algoKeys","hashes","getHashes","DiffieHellman","createECDH","rf","createCredentials","DH_CHECK_P_NOT_SAFE_PRIME","DH_CHECK_P_NOT_PRIME","DH_UNABLE_TO_CHECK_GENERATOR","DH_NOT_SUITABLE_GENERATOR","NPN_ENABLED","ALPN_ENABLED","RSA_PKCS1_PADDING","RSA_SSLV23_PADDING","RSA_NO_PADDING","RSA_PKCS1_OAEP_PADDING","RSA_X931_PADDING","RSA_PKCS1_PSS_PADDING","POINT_CONVERSION_COMPRESSED","POINT_CONVERSION_UNCOMPRESSED","POINT_CONVERSION_HYBRID","nacl","gf","_0","_9","gf0","gf1","_121665","D2","X","Y","ts64","vn","yi","crypto_verify_16","crypto_verify_32","crypto_core_salsa20","j0","j1","j2","j3","j4","j5","j6","j7","j8","j9","j10","j11","j12","j13","j14","j15","x0","x3","x5","x6","x7","x9","x10","x11","x12","x13","x14","x15","core_salsa20","crypto_core_hsalsa20","core_hsalsa20","sigma","crypto_stream_salsa20_xor","cpos","mpos","crypto_stream_salsa20","crypto_stream","sn","crypto_stream_xor","poly1305","t4","t5","t6","t7","leftover","crypto_onetimeauth","outpos","crypto_onetimeauth_verify","hpos","crypto_secretbox","crypto_secretbox_open","set25519","car25519","sel25519","pack25519","neq25519","par25519","unpack25519","Z","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","t20","t21","t22","t23","t24","t25","t26","t27","t28","t29","t30","b10","b11","b12","b13","b14","b15","inv25519","pow2523","crypto_scalarmult","x32","x16","crypto_scalarmult_base","crypto_box_keypair","crypto_box_beforenm","blocks","d3","d4","d5","d6","d7","d8","d9","hibit","h0","h1","h4","h5","h6","h7","h8","h9","r0","r1","r3","r4","r5","r6","r7","r8","r9","mac","macpos","want","crypto_box_afternm","crypto_box_open_afternm","crypto_hashblocks_hl","th","wh","wl","crypto_hash","cswap","pack","tx","ty","scalarmult","scalarbase","crypto_sign_keypair","pk","sk","seeded","L","modL","crypto_sign","sm","smlen","crypto_sign_open","unpackneg","chk","den","den2","den4","den6","crypto_secretbox_BOXZEROBYTES","crypto_sign_BYTES","crypto_sign_PUBLICKEYBYTES","crypto_sign_SECRETKEYBYTES","checkLengths","checkArrayTypes","lowlevel","crypto_box","crypto_box_open","crypto_secretbox_KEYBYTES","crypto_secretbox_NONCEBYTES","crypto_secretbox_ZEROBYTES","crypto_scalarmult_BYTES","crypto_scalarmult_SCALARBYTES","crypto_box_PUBLICKEYBYTES","crypto_box_SECRETKEYBYTES","crypto_box_BEFORENMBYTES","crypto_box_NONCEBYTES","crypto_box_ZEROBYTES","crypto_box_BOXZEROBYTES","crypto_sign_SEEDBYTES","crypto_hash_BYTES","secretbox","open","box","keyLength","nonceLength","overheadLength","scalarMult","scalarLength","groupElementLength","secretKey","before","checkBoxLengths","after","fromSecretKey","publicKeyLength","secretKeyLength","sharedKeyLength","signedMsg","mlen","detached","fromSeed","seedLength","signatureLength","hashLength","setPRNG","require","arrayStartsWith","arrayPrefix","hexZeroPadded","HexCharacters","forge","usePureJavaScript","baseN","_reverseAlphabets","_encodeWithByteBuffer","at","maxline","regex","_checkBitsParam","ByteStringBuffer","putByte","_constructedStringLength","util$6","postMessage","stopPropagation","callbacks","MutationObserver","attr","observe","attributes","oldSetImmediate","setAttribute","isNodejs","globalScope","ByteBuffer","_MAX_CONSTRUCTED_STRING_LENGTH","DataBuffer","readOffset","growSize","writeOffset","putBytes","_optimizeConstructedString","fillWithByte","putString","encodeUtf8","putInt16","putInt24","putInt32","putInt16Le","putInt24Le","putInt32Le","putInt","putSignedInt","putBuffer","getInt16","rval","getInt24","getInt32","getInt16Le","getInt24Le","getInt32Le","getInt","getSignedInt","setAt","truncate","decodeUtf8","accommodate","setUint8","view","utf16","setInt16","setInt8","setInt32","getInt8","fillString","xorBytes","hexToBytes","bytesToHex","int32ToBytes","_base64","_base64Idx","_base58","encode64","chr1","chr2","chr3","decode64","enc1","enc2","enc3","enc4","unescape","escape","base58","deflate","inflate","_setStorageObject","removeItem","setItem","_getStorageObject","getItem","_setItem","_getItem","_removeItem","empty","_clearItems","_callStorageFunction","location","exception","ex","clearItems","argi","lastIndex","formatNumber","dec_point","thousands_sep","formatSize","bytesFromIP","bytesFromIPv4","bytesFromIPv6","blanks","bytesToIP","bytesToIPv4","bytesToIPv6","zeroGroups","zeroMaxGroup","estimateCores","cores","navigator","hardwareConcurrency","Worker","blobUrl","URL","createObjectURL","st","et","sample","samples","numWorkers","avg","revokeObjectURL","workers","results","worker","terminate","overlaps","overlap","forge$B","getAlgorithm","BlockCipher","registerAlgorithm","_finish","_input","_op","initialize","overflow","afterFinish","forge$A","transformIV","ints","inc32","from64To32","_ints","_inBlock","_outBlock","_iv","_partialBlock","_partialOutput","_partialBytes","inputLength","partialBytes","gcm","additionalData","_cipherLength","_tagLength","tagLength","_hashBlock","_hashSubkey","componentBits","_m","generateHashTable","ivLength","_j0","_aDataLength","_s","lengths","z_i","v_i","lsb","tableMultiply","x_i","perInt","shft","generateSubHashTable","m_i","m_j","forge$z","startEncrypting","_createCipher","createEncryptionCipher","startDecrypting","createDecryptionCipher","inBlock","outBlock","_updateBlock","encryptOp","_expandKey","registerAlgorithm$1","Nb","sbox","isbox","rcon","mix","imix","xtime","mix$1","e2","e4","e8","sx2","me","ime","ei","iNk","Nk","m0","m3","wnew","wi","Nr","forge$y","pki","oids","_IN","_I_","_checkBufferLength","available","requested","asn1$8","Class","UNIVERSAL","APPLICATION","CONTEXT_SPECIFIC","PRIVATE","Type","NONE","BOOLEAN","INTEGER","BITSTRING","OCTETSTRING","NULL","OID","ODESC","EXTERNAL","REAL","ENUMERATED","EMBEDDED","UTF8","ROID","SEQUENCE","SET","PRINTABLESTRING","IA5STRING","UTCTIME","GENERALIZEDTIME","BMPSTRING","constructed","composed","bitStringContents","excludeBitStringContents","obj1","obj2","includeBitStringContents","getBerValueLength","_getValueLength","longFormBytes","_fromDer","strict","decodeBitStrings","savedRead","savedRemaining","tc","asn1Options","fromDer","parseAllBytes","byteCount","toDer","useBitStringContents","lenBytes","oidToDer","oid","valueBytes","derToOid","utcTimeToDate","utc","MM","DD","ss","setUTCFullYear","setUTCHours","setTime","generalizedTimeToDate","YYYY","fff","isUTC","setFullYear","setHours","dateToUtcTime","getUTCFullYear","dateToGeneralizedTime","integerToDer","integer","derToInteger","capture","captureAsn1","captureBitStringContents","captureBitStringValue","_nonLatinRegex","prettyPrint","level","indentation","indent","IA5String","subvalues","forge$w","hmac$2","_md","_ipadding","_opadding","blockLength","getMac","_initialized","_init$3","_state","digestLength","messageLength","fullMessageLength","messageLengthSize","messageLength64","int32s","_update$3","finalBlock","_padding","_r","_k","_padding$3","_r$3","_k$2","_initialized$3","foldHeader","insertSpace","$1","candidate","insert","ltrim","procType","contentDomain","dekInfo","headers","rMessage","rHeader","rCRLF","li","nl","vi","forge$s","_keys","_createKeys","spfunction1","spfunction2","spfunction3","spfunction4","spfunction5","spfunction6","spfunction7","spfunction8","pc2bytes0","pc2bytes1","pc2bytes2","pc2bytes3","pc2bytes4","pc2bytes5","pc2bytes6","pc2bytes7","pc2bytes8","pc2bytes9","pc2bytes10","pc2bytes11","pc2bytes12","pc2bytes13","shifts","lefttmp","righttmp","looping","endloop","loopinc","right1","right2","pkcs5","forge$r","dkLen","prf","u_c","u_c1","dk","sha256$1","_init$2","_update$2","_padding$2","_k$1","_initialized$2","_crypto","plugin","reseeds","keyBytes","pools","_reseedSync","_seed","needed","collect","seedFileSync","_2powK","seedBytes","formatKey","formatSeed","defaultSeedFile","QuotaExceededError","generateSync","increment","seedFile","forge$p","collectInt","registerWorker","forge$o","jQuery","prng_aes","_prng_aes_output","_prng_aes_buffer","spawnPrng","getBytesSync","_ctx","_navBytes","mousemove","clientX","clientY","keypress","charCode","createInstance","piTable","rol","ror","forge$n","rc2","expandKey","effKeyBits","T8","TM","mixRound","mashRound","_output","runPlan","plan","ptr","dbits","BigInteger","nbi","am1","am2","am3","forge$m","jsbn","am","appName","DB","BigInteger$4","DM","DV","BI_FP","FV","F1","F2","BI_RM","BI_RC","rr","vv","rr$2","int2char","intAt","bnpCopyTo","bnpFromInt","nbv","bnpFromString","fromRadix","mi","clamp","subTo","bnpClamp","bnToString","toRadix","km","bnNegate","bnAbs","bnCompareTo","nbits","bnBitLength","bnpDLShiftTo","bnpDRShiftTo","bnpLShiftTo","bs","cbs","bm","ds","bnpRShiftTo","bnpSubTo","bnpMultiplyTo","bnpSquareTo","bnpDivRemTo","pm","pt","copyTo","ms","nsh","lShiftTo","ys","y0","yt","dlShiftTo","compareTo","qd","drShiftTo","rShiftTo","bnMod","divRemTo","Classic","cConvert","cRevert","cReduce","cMulTo","multiplyTo","cSqrTo","squareTo","bnpInvDigit","Montgomery","mp","invDigit","mpl","mph","um","mt2","montConvert","montRevert","montReduce","u0","montSqrTo","montMulTo","bnpIsEven","bnpExp","convert","sqrTo","revert","bnModPowInt","bnClone","bnIntValue","bnByteValue","bnShortValue","bnpChunkSize","bnSigNum","bnpToRadix","signum","cs","chunkSize","intValue","bnpFromRadix","dMultiply","dAddOffset","bnpFromNumber","testBit","bitwiseTo","op_or","isProbablePrime","nextBytes","bnToByteArray","bnEquals","bnMin","bnMax","bnpBitwiseTo","op","op_and","bnAnd","bnOr","op_xor","bnXor","op_andnot","bnAndNot","bnNot","bnShiftLeft","bnShiftRight","lbit","bnGetLowestSetBit","cbit","bnBitCount","bnTestBit","bnpChangeBit","bnSetBit","changeBit","bnClearBit","bnFlipBit","bnpAddTo","bnAdd","addTo","bnSubtract","bnMultiply","bnDivide","bnRemainder","bnDivideAndRemainder","bnpDMultiply","bnpDAddOffset","NullExp","nNop","nMulTo","nSqrTo","bnPow","bnpMultiplyLowerTo","bnpMultiplyUpperTo","Barrett","q3","mu","barrettConvert","barrettRevert","barrettReduce","multiplyUpperTo","multiplyLowerTo","barrettSqrTo","barrettMulTo","bnModPow","is1","bnGCD","getLowestSetBit","bnpModInt","bnModInverse","ac","modPowInt","lowprimes","lplim","bnIsProbablePrime","modInt","bnpMillerRabin","bnGetPrng","modPow","byteValue","shortValue","andNot","bitCount","setBit","clearBit","flipBit","divideAndRemainder","modInverse","_init$1","_update$1","_padding$1","_initialized$1","rsa_mgf1","maskLength","encode_rsa_oaep","mgf1Md","mgf1","maxLength","lHash","PS","PS_length","dbMask","maskedDB","seedMask","decode_rsa_oaep","em","expectedLength","lHashPrime","in_ps","forge$j","GCD_30_DELTA","THIRTY","generateProbablePrime","rng","primeincFindPrimeWithoutWorkers","generateRandom","workLoad","workerScript","workerMessage","primeincFindPrimeWithWorkers","primeincFindPrime","mrTests","getMillerRabinTests","millerRabinTests","maxBlockTime","_primeinc","deltaIdx","bits1","forge$i","rsa","privateKeyValidator","rsaPrivateKeyValidator","rsaPublicKeyValidator","publicKeyValidator","digestInfoValidator","emsaPkcs1v15encode","oidBytes","digestInfo","digestAlgorithm","_modPow","dP","dQ","qInv","xq","_encodePkcs1_v1_5","bt","eb","padByte","numZeros","padBytes","_decodePkcs1_v1_5","ml","_generateKeyPair","pBits","qBits","phi","_bnToBytes","_getMillerRabinTests","_detectNodeCrypto","_detectSubtleCrypto","_detectSubtleMsCrypto","_intToUint8Array","pki$4","yhex","ed","xhex","createKeyPairGenerationState","eInt","pqState","stepKeyPairGenerationState","generateKeyPair","modulusLength","publicKeyEncoding","privateKeyEncoding","privateKeyFromPem","publicKeyFromPem","generateKey","pair","exportKey","pkcs8","privateKeyFromAsn1","setRsaPublicKey","genOp","oncomplete","exportOp","keypair","generateKeyPairSync","scheme","schemeOptions","_parseAllDigestBytes","algorithmIdentifier","md2","setRsaPrivateKey","wrapRsaPrivateKey","rsaKey","rsaEncryption","privateKeyModulus","privateKeyPublicExponent","privateKeyPrivateExponent","privateKeyPrime1","privateKeyPrime2","privateKeyExponent1","privateKeyExponent2","privateKeyCoefficient","privateKeyToAsn1","privateKeyToRSAPrivateKey","publicKeyFromAsn1","publicKeyOid","rsaPublicKey","publicKeyModulus","publicKeyExponent","publicKeyToAsn1","publicKeyToSubjectPublicKeyInfo","publicKeyToRSAPublicKey","pki$3","pbe","encryptedPrivateKeyValidator","PBES2AlgorithmsValidator","pkcs12PbeParamsValidator","prfOidToMessageDigest","prfOid","prfAlgorithm","supported","prfAlgorithmToMessageDigest","createPbkdf2Params","countBytes","encryptPrivateKeyInfo","saltSize","encryptionAlgorithm","encryptedData","encOid","cipherFn","saltBytes","generatePkcs12Key","decryptPrivateKeyInfo","encryptionOid","getCipher","encryptionParams","encrypted","encryptedPrivateKeyToPem","epki","encryptedPrivateKeyFromPem","headerType","encryptRsaPrivateKey","legacy","opensslDeriveBytes","decryptRsaPrivateKey","passBuf","Slen","Plen","Inew","getCipherForPBES2","getCipherForPKCS12PBE","supportedOids","kdfOid","kdfSalt","kdfIterationCount","encIv","dIvLen","digests","p7v","pkcs7asn1","forge$g","pkcs7","contentInfoValidator","encryptedContentInfoValidator","envelopedDataValidator","encryptedDataValidator","signerValidator","signedDataValidator","recipientInfoValidator","forge$f","maskLen","forge$e","pss","saltLength","sLen","salt_","pssobj","modBits","emBits","emLen","mHash","m_","checkLen","_shortNames","x509CertificateValidator","rsassaPssParameterValidator","certificationRequestInfoValidator","certificationRequestValidator","_getAttribute","shortName","pki$2","RDNAttributesAsArray","rdn","si","valueTagClass","CRIAttributesAsArray","extensionRequest","extensions","certificateExtensionFromAsn1","_readSignatureParameters","fillDefaults","algorithmOid","hashOid","maskGenOid","maskGenHashOid","_createSignatureDigest","signatureOid","_verifySignature","cert","sha1WithRSAEncryption","sha1WithRSASignature","signatureParameters","_dnToAsn1","attrs","_fillMissingFields","attribute","valueConstructed","certificateExtensionToAsn1","_fillMissingExtensionFields","extension","digitalSignature","nonRepudiation","keyEncipherment","dataEncipherment","keyAgreement","keyCertSign","cRLSign","encipherOnly","decipherOnly","cA","pathLenConstraint","client","server","email","objsign","reserved","sslCA","emailCA","objCA","altNames","altName","comment","ski","generateSubjectKeyIdentifier","subjectKeyIdentifier","keyIdentifier","authorityCertIssuer","issuer","subSeq","fullNameGeneralNames","_signatureParametersToAsn1","_CRIAttributesToAsn1","csr","certificateFromPem","computeHash","certificateFromAsn1","certificateToPem","certificateToAsn1","publicKeyToPem","publicKeyToRSAPublicKeyPem","getPublicKeyFingerprint","delimiter","certificationRequestFromPem","certificationRequestFromAsn1","certificationRequestToPem","certificationRequestToAsn1","createCertificate","siginfo","validity","notBefore","notAfter","getField","addField","subject","setSubject","uniqueId","setIssuer","setExtensions","exts","getExtension","getTBSCertificate","issued","expectedIssuer","actualIssuer","isIssuer","iattr","sattr","verifySubjectKeyIdentifier","certVersion","serial","certSerialNumber","certSignatureOid","certSignatureParams","certinfoSignatureOid","certinfoSignatureParams","certSignature","certValidity1UTCTime","certValidity2GeneralizedTime","certValidity3UTCTime","certValidity4GeneralizedTime","imd","ibytes","certIssuer","certIssuerUniqueId","smd","sbytes","certSubject","certSubjectUniqueId","certExtensions","certificateExtensionsFromAsn1","extseq","critical","gn","createCertificationRequest","csrVersion","csrSignatureOid","csrSignatureParams","csrSignature","certificationRequestInfo","certificationRequestInfoSubject","getAttribute","addAttribute","certificationRequestInfoAttributes","setAttributes","getCertificationRequestInfo","cri","jan_1_1950","jan_1_2050","_dateToAsn1","tbs","certificateExtensionsToAsn1","distinguishedNameToAsn1","dn","createCaStore","certs","caStore","getBySubject","ensureSubjectHasHash","getIssuer","addCertificate","hasCertificate","der1","listAllCertificates","certList","removeCertificate","certificateError","bad_certificate","unsupported_certificate","certificate_revoked","certificate_expired","certificate_unknown","unknown_ca","verifyCertificateChain","chain","validityCheckDate","selfSigned","verified","se","keyUsage","basicConstraints","bcExt","keyUsageExt","vfd","p12","pkcs12","pfxValidator","safeBagValidator","attributeValidator","certBagValidator","_getBagsByAttribute","safeContents","attrName","attrValue","bagType","safeBags","bag","_decodePkcs7Data","_decodeAuthenticatedSafe","pfx","authSafe","contentInfo","contentType","_decryptSafeContents","_decodeSafeContents","encAlgorithm","encParameter","encryptedContentAsn1","safeBag","validator","bagId","_decodeBagAttributes","bagAttributes","bagAsn1","bagValue","pkcs8ShroudedKeyBag","keyBag","certBag","certId","x509Certificate","certAsn1","decodedAttrs","pkcs12FromAsn1","getBags","localKeyId","localKeyIdHex","friendlyName","getBagsByFriendlyName","getBagsByLocalKeyId","macKeyBytes","macAlgorithm","macSalt","macIterations","macKey","macDigest","toPkcs12Asn1","useMac","generateLocalKeyId","bagAttrs","pairedCert","certSafeBags","certBagAttrs","certSafeBag","certSafeContents","certCI","pkAsn1","keySafeContents","keyCI","macData","safe","macValue","pemToDer","privateKeyToPem","privateKeyInfoToPem","prf_TLS1","ai","md5itr","sha1itr","md5bytes","sha1bytes","hmac_sha1","seqNum","fragment","readVector","writeVector","tls","tls$1","TLS_1_0","TLS_1_1","TLS_1_2","SupportedVersions","Versions","Version","MaxFragment","ConnectionEnd","PRFAlgorithm","tls_prf_sha256","BulkCipherAlgorithm","none","rc4","CipherType","aead","MACAlgorithm","hmac_md5","hmac_sha256","hmac_sha384","hmac_sha512","CompressionMethod","ContentType","change_cipher_spec","alert","handshake","application_data","heartbeat","HandshakeType","hello_request","client_hello","server_hello","server_key_exchange","certificate_request","server_hello_done","certificate_verify","client_key_exchange","Alert","Level","fatal","Description","close_notify","unexpected_message","bad_record_mac","decryption_failed","record_overflow","decompression_failure","handshake_failure","illegal_parameter","access_denied","decode_error","decrypt_error","export_restriction","protocol_version","insufficient_security","internal_error","user_canceled","no_renegotiation","HeartbeatMessageType","heartbeat_request","heartbeat_response","CipherSuites","getCipherSuite","twoBytes","handleUnexpected","send","handleHelloRequest","handshaking","handshakes","createAlert","parseHelloMessage","session_id","cipher_suite","compression_method","cipher_suites","compression_methods","snl","session","server_name","serverNameList","cipherSuite","compressionMethod","createSecurityParameters","msgRandom","cRandom","sp","client_random","sRandom","createRandom","prf_algorithm","bulk_cipher_algorithm","cipher_type","enc_key_length","block_length","fixed_iv_length","record_iv_length","mac_algorithm","mac_length","mac_key_length","compression_algorithm","pre_master_secret","master_secret","server_random","handleServerHello","sessionId","expect","SCC","resuming","SCE","handleClientHello","sessionCache","getSession","clientHelloVersion","CCC","verifyClient","CCE","CKE","createRecord","createServerHello","createChangeCipherSpec","createConnectionState","createFinished","createServerKeyExchange","createCertificateRequest","createServerHelloDone","handleCertificate","certificate_list","SKE","serverCertificate","clientCertificate","handleServerKeyExchange","SCR","handleClientKeyExchange","enc_pre_master_secret","CCV","handleCertificateRequest","certificate_types","certificate_authorities","certificateRequest","SHD","handleCertificateVerify","msgBytes","handleServerHelloDone","createClientKeyExchange","SER","createCertificateVerify","getClientSignature","handleChangeCipherSpec","SFI","CFI","handleFinished","vd","SAD","CAD","peerCertificate","isConnected","connected","handleAlert","close","handleHandshake","fragmented","hsTable","handleApplicationData","dataReady","handleHeartbeat","payload","createHeartbeat","expectedHeartbeatPayload","heartbeatReceived","SHE","CHE","__","R0","R1","R2","R3","R4","ctTable","H0","H1","H2","H3","H4","H5","H6","H7","H8","H9","tls10","client_write_MAC_key","server_write_MAC_key","client_write_key","server_write_key","client_write_IV","server_write_IV","createMode","macLength","macFunction","cipherState","cipherFunction","compressionState","compressFunction","updateSequenceNumber","initSecurityParameters","initConnectionState","getTimezoneOffset","createClientHello","cipherSuites","cSuites","compressionMethods","cMethods","virtualHost","serverName","snList","extLength","getCertificate","certBuffer","getSignature","certTypes","cAs","byteBuffer","payloadLength","plaintextLength","paddingLength","rec","tlsData","tlsDataReady","_certErrorToAlertDesc","_alertDescToCertError","verifyOptions","createSessionCache","capacity","setSession","order","createConnection","cn","dpth","cts","clearFail","aligned","handlers","ready","compatibleVersion","_readRecordHeader","_readRecord","prepare","prepareHeartbeatRequest","forge$9","prf_tls1","decrypt_aes_cbc_sha1","encrypt_aes_cbc_sha1","encrypt_aes_cbc_sha1_padding","decrypt_aes_cbc_sha1_padding","macLen","mac2","compareMacs","mac1","forge$7","sha512$2","_states","messageLength128","t1_hi","t1_lo","t2_hi","t2_lo","s0_hi","s0_lo","s1_hi","ch_hi","maj_hi","maj_lo","a_hi","a_lo","b_hi","b_lo","c_hi","c_lo","d_hi","d_lo","e_hi","e_lo","f_hi","f_lo","g_hi","g_lo","h_hi","h_lo","asn1Validator$1","asn1Validator","NativeBuffer","forge$5","messageToNativeBuffer","ed25519$1","PUBLIC_KEY_BYTE_LENGTH","PRIVATE_KEY_BYTE_LENGTH","SEED_BYTE_LENGTH","SIGN_BYTE_LENGTH","HASH_BYTE_LENGTH","privateKeyOid","ed25519Oid","EdDSA25519","privateKeyBytes","publicKeyBytes","ed25519PublicKey","publicKeyFromPrivateKey","msgLen","S$9","M$7","forge$4","kem","_createKDF","kdf","counterStart","encapsulation","kdf1","kdf2","forge$3","levels","sLevelInfo","sLoggers","sConsoleLogger","LEVEL_LOCKED","NO_LEVEL_CHECK","INTERPOLATE","logMessage","messageLevelIndex","logger","prepareStandard","standard","category","prepareFull","full","prepareStandardFull","standardFull","timestamp","makeLogger","logFunction","setLevel","lock","addLogger","info","levelHandlers","verbose","query","href","searchParams","consoleLogger","p7","_recipientFromAsn1","encryptedContent","parameter","encKey","_recipientToAsn1","_recipientsFromAsn1","infos","_recipientsToAsn1","recipients","_signerToAsn1","authenticatedAttributesAsn1","signatureAlgorithm","unauthenticatedAttributes","attrsAsn1","_attributeToAsn1","_signersToAsn1","messageDigest","signingTime","_encryptedContentToAsn1","_fromAsn1","rawCapture","_decryptContent","ciph","messageFromPem","messageFromAsn1","messageToPem","pemObj","toAsn1","envelopedData","createEnvelopedData","createEncryptedData","signedData","createSignedData","fromAsn1","certificates","crls","digestAlgorithmIdentifiers","signerInfos","addSigner","signer","authenticatedAttributes","detachedContent","mds","addSignerInfos","addDigestAlgorithmIds","addCertificateRevokationList","crl","recipientInfos","findRecipient","sAttr","rAttr","recipient","privKey","desCBC","addRecipient","ciphFn","ssh","_addBigIntegerToBuffer","hexVal","_addStringToBuffer","_sha1","privateKeyToPutty","ppk","pubbuffer","privbuffer","encLen","aeskey","mackey","macbuffer","publicKeyToOpenSSH","privateKeyToOpenSSH","derPrefix","derPrefixBytes","hex.decode","Ed25519PublicKey","keyData","_keyData","_type","fromBytesRaw","fromBytesDer","toBytesDer","toBytesRaw","bytesAsync","TextDecoder","TextEncoder","utf8.encode","key_","HARDENED_BIT","parentKey","chainCode","isHardened","isHardenedIndex","setUint32","hmac.hash","hmac.HashAlgorithm","IL","IR","ki","hex.hexZeroPadded","toHardenedIndex","bip32.isHardenedIndex","Ed25519PrivateKey","_keyPair","_chainCode","random.bytes","generateAsync","random.bytesAsync","fromStringDer","fromStringRaw","slip10.fromSeed","leadingZeroes","privateKeyOffset","HEX_CHARS","KECCAK_PADDING","SHIFT","RC","Keccak","blockCount","outputBlocks","lastByteIndex","c3","c4","c5","c6","c7","c9","b17","b18","b19","b20","b21","b22","b23","b24","b25","b26","b27","b28","b29","b30","b31","b33","b34","b35","b36","b37","b38","b39","b40","b41","b42","b43","b44","b45","b46","b47","b49","keccak","keccak256","getFullPublicKey","keydata","hex.encode","legacyDerPrefix","legacyDerPrefixBytes","EcdsaPublicKey","ecdsaPublicKeyBytes","ecdsa.verify","toEthereumAddress","ecdsa.getFullPublicKey","derPrefix2","derPrefixBytes2","EcdsaPrivateKey","ecdsa.generate","ecdsa.generateAsync","ecdsaPrivateKeyBytes","ecdsa.fromBytes","bip32.fromSeed","ecdsa.sign","fromBytesED25519","fromBytesECDSA","fromStringED25519","fromStringECDSA","verifyTransaction","_requireFrozen","isFrozen","signedTransaction","_signedTransactions","toStringDer","toStringRaw","hex_chr","md5cycle","md5blk","md5blks","md5blk_array","md51","md51_array","rhex","toUtf8","utf8Str2ArrayBuffer","returnUInt8Array","buff","arrayBuffer2Utf8Str","concatenateArrayBuffers","hexToBinaryString","SparkMD5","targetArray","sourceArray","begin","append","appendBinary","_buff","getState","setState","hashBinary","CipherAlgorithm","Aes128Ctr","Aes128Cbc","algorithm_","counter","pass","sliced","deriveKey","HMAC_SHA256","createKeystore","pbkdf2.deriveKey","crypto.createCipheriv","crypto.CipherAlgorithm","keystore","ciphertext","cipherparams","kdfparams","loadKeystore","keystoreBytes","utf8.decode","ivBytes","cipherBytes","macHex","verifyHmac","every","crypto.createDecipheriv","decodeIncremental","decodeLength","int","decodeObjectIdent","decodeSeq","seqBytes","decoded","idBytes","numBytes","intBytes","getUint16","of","getUint32","algIdent","PBES2Params","encScheme","PBKDF2Params","iterCount","algId","encoded","der.decode","pbes2Params","pbkdf2Params","ARRAY_BUFFER_NAME","BufferSourceConverter","toArrayBuffer","toUint8Array","toView","isBufferSource","isEqual","aView","bView","buffers","STRING_TYPE","HEX_REGEX","BASE64_REGEX","BASE64URL_REGEX","Utf8Converter","uintArray","encodedString","Utf16Converter","arrayBuffer","dataView","setUint16","Convert","isHex","isBase64","isBase64Url","ToString","ToUtf8String","ToBinary","ToHex","ToBase64","ToBase64Url","FromString","FromUtf8String","FromBinary","FromHex","FromBase64","FromBase64Url","formatted","formatString","base64url","Base64Padding","DEFAULT_UTF8_ENCODING","stringLength","resultView","hexString","ToUtf16String","FromUtf16String","padCount","utilFromBase","inputBuffer","inputBase","utilToBase","internalReserved","internalValue","biggest","retBuf","retView","utilConcatView","views","outputLength","prevLength","utilDecodeTC","valueHex","condition1","condition2","warnings","bigIntBuffer","bigIntView","bigInt","smallIntBuffer","smallIntView","utilEncodeTC","modValue","tempBuf","tempView","isEqualBuffer","inputBuffer1","inputBuffer2","padNumber","inputNumber","fullLength","assertBigInt","checkBufferParams","baseBlock","inputOffset","ViewWriter","items","powers2","digitsString","EMPTY_STRING","EMPTY_BUFFER","EMPTY_VIEW","END_OF_CONTENT_NAME","OCTET_STRING_NAME","BIT_STRING_NAME","HexBlock","BaseClass","isHexOnly","valueHexView","pvtsutils.BufferSourceConverter","fromBER","endLength","toBER","sizeOnly","pvtsutils.Convert","NAME","LocalBaseBlock","valueBeforeDecode","valueBeforeDecodeView","blockName","ValueBlock","LocalIdentificationBlock","idBlock","tagNumber","isConstructed","firstOctet","encodedBuf","pvutils.utilToBase","encodedView","curView","inputView","intBuffer","tagNumberMask","intTagNumberBuffer","tagNumberBufferMaxLength","tempBufferView","pvutils.utilFromBase","LocalLengthBlock","lenBlock","isIndefiniteForm","longFormUsed","lenOffset","lengthBufferView","typeStore","BaseBlock","primitiveSchema","valueBlockType","valueBlock","resultOffset","_writer","prepareIndefiniteForm","idBlockBuf","valueBlockBuf","lenBlockBuf","onAsciiEncoding","pvutils.isEqualBuffer","Constructed","BaseStringBlock","stringValueBlockType","getValue","setValue","fromBuffer","LocalPrimitiveValueBlock","_a$w","_a$v","_a$u","_a$t","_a$s","Primitive","localChangeType","inputObject","newType","newObject","localFromBER","incomingOffset","returnObject","newASN1Type","EndOfContent","Integer","BitString","OctetString","Null","ObjectIdentifier","Enumerated","Utf8String","RelativeObjectIdentifier","TIME","Sequence","NumericString","PrintableString","TeletexString","VideotexString","UTCTime","GeneralizedTime","GraphicString","VisibleString","GeneralString","UniversalString","CharacterString","BmpString","DATE","TimeOfDay","DateTime","indefiniteLength","LocalConstructedValueBlock","currentOffset","LocalEndOfContentValueBlock","override","LocalBooleanValueBlock","octet","pvutils.utilDecodeTC","Boolean$1","LocalOctetStringValueBlock","currentBlockName","_a$r","_a$q","_a$p","_a$o","_a$n","_a$m","_a$l","_a$k","_a$j","LocalBitStringValueBlock","unusedBits","bitsStr","viewAdd","firstView","secondView","firstViewCopy","firstViewCopyLength","secondViewCopy","secondViewCopyLength","pvutils.utilConcatView","power2","newValue","viewSub","LocalIntegerValueBlock","_valueDec","setValueHex","valueDec","pvutils.utilEncodeTC","fromDER","updatedView","firstBit","currentByte","bitNumber","asn1View","flag","byteNumber","toBigInt","fromBigInt","secondInt","convertToDER","convertFromDER","LocalSidValueBlock","isFirstSid","valueBigInt","sidValue","LocalObjectIdentifierValueBlock","sidBlock","retBuffers","valueBuf","pos1","pos2","sid","parsedSID","sidStr","sidArray","LocalRelativeSidValueBlock","LocalRelativeObjectIdentifierValueBlock","Set$1","LocalStringValueBlock","LocalSimpleStringValueBlock","LocalSimpleStringBlock","inputString","LocalUtf8StringValueBlock","_a$i","_a$h","_a$g","_a$f","_a$e","_a$d","_a$c","_a$b","_a$a","_a$9","_a$8","_a$7","_a$6","_a$5","_a$4","_a$3","_a$2","_a$1","LocalBmpStringValueBlock","LocalUniversalStringValueBlock","copyBuffer","valueView","strLength","codeBuf","codeView","valueDate","month","minute","fromDate","inputDate","toDate","parserArray","outputArray","pvutils.padNumber","toISOString","millisecond","getUTCMilliseconds","parser","timeString","dateTimeString","hourDifference","minuteDifference","differencePosition","differenceString","fractionPointPosition","fractionPartCheck","fractionResult","tempDate","getUTCDay","Duration$1","ID_ED25519","readPemED25519","base64.decode","readPemECDSA","ivString","pemLines","aes.messageDigest","dataToDecrypt","keyDerBytes","aes.createDecipheriv","aes.CipherAlgorithm","asn1.fromBER","CACHE","privateKeyConstructor","privateKeyFromBytes","mnemonicFromString","generateED25519","generateECDSA","generateED25519Async","generateECDSAAsync","fromSeedED25519","ed25519Key","fromSeedECDSAsecp256k1","ecdsaKey","fromMnemonic","mnemonic","toEd25519PrivateKey","fromKeystore","fromPem","isEcdsa","slip10.derive","bip32.derive","legacyDerive","derive.legacy","signTransaction","publicKeyHex","siganture","protoSignature","_signerPublicKeys","isDerivable","toKeystore","CACHE$1","BadMnemonicReason","BadLength","UnknownWords","ChecksumMismatch","BadMnemonicError","unknownWordIndices","reasonMessage","legacyWords","bip39Words","toSeed","legacy1","wordlist","convertRadix","legacy2","concatBitsLen","concatBits","wordIndex","entries","checksumBitsLen","entropyBitsLen","hashBits","bytesToBits","sha256.digest","crc8","crc","nums","toLength","element","tem","ED25519_SEED_TEXT","ECDSA_SEED_TEXT","HARDENED","HEDERA_PATH","SLIP44_ECDSA_HEDERA_PATH","SLIP44_ECDSA_ETH_PATH","Mnemonic$1","Mnemonic","_generate","generate12","neededEntropy","chunks","bytesToBinary","deriveChecksumBits","binaryToByte","fromWords","_validate","toPrivateKey","_toKeyData","toStandardEd25519PrivateKey","derivedKey","toEcdsaPrivateKey","toStandardECDSAsecp256k1PrivateKey","bip32.toHardenedIndex","bip39.toSeed","seedText","unknowns","entropy.legacy1","entropy.crc8","dividerIndex","entropyBits","checksumBits","entropyBytes","toLegacyPrivateKey","entropy.legacy2","bin","entropyBuffer","CS","Cache","_timeDrift","_contractId","_keyList","_thresholdKey","_publicKeyED25519","_publicKeyECDSA","_privateKeyConstructor","_mnemonicFromString","_accountIdConstructor","_delegateContractId","_evmAddress","_ethereumTransactionDataLegacyFromBytes","_ethereumTransactionDataEip1559FromBytes","_ethereumTransactionDataEip2930FromBytes","_transactionReceiptQueryConstructor","_transactionRecordQueryConstructor","setTimeDrift","timeDrift","setContractId","setKeyList","setThresholdKey","setPublicKeyED25519","publicKeyED25519","setPublicKeyECDSA","publicKeyECDSA","setPrivateKeyConstructor","setMnemonicFromString","setAccountIdConstructor","accountIdConstructor","setDelegateContractId","delegateContractId","setEvmAddress","setEthereumTransactionDataLegacyFromBytes","ethereumTransactionDataLegacyFromBytes","setEthereumTransactionDataEip1559FromBytes","ethereumTransactionDataEip1559FromBytes","setEthereumTransactionDataEip2930FromBytes","ethereumTransactionDataEip2930FromBytes","setTransactionReceiptQueryConstructor","transactionReceiptQueryConstructor","setTransactionRecordQueryConstructor","transactionRecordQueryConstructor","setAddressBookQueryConstructor","addressBookQueryConstructor","_addressBookQueryConstructor","_toProtobufKey","_fromProtobufKey","cryptography.PublicKey","toEvmAddress","_toProtobufSignature","toAccountId","unusableKey","_permanentCensorErrors","_censorErrors","LogLevels","_logLevel","_globalLogger","_checkNormalize","missing","form","_normalizeError","LogLevel","ErrorCode","HEX","Logger$1","Logger","_log","logLevel","throwArgumentError","INFO","WARNING","makeError","UNKNOWN_ERROR","messageDetails","url","NUMERIC_FAULT","fault","CALL_EXCEPTION","INSUFFICIENT_FUNDS","MISSING_NEW","NONCE_EXPIRED","REPLACEMENT_UNDERPRICED","TRANSACTION_REPLACED","UNPREDICTABLE_GAS_LIMIT","throwError","INVALID_ARGUMENT","argument","condition","assertArgument","checkNormalize","UNSUPPORTED_OPERATION","operation","checkSafeUint53","checkArgumentCount","expectedCount","MISSING_ARGUMENT","UNEXPECTED_ARGUMENT","checkNew","kind","checkAbstract","globalLogger","setCensorship","censorship","permanent","setLogLevel","isHexable","toHexString","addSlice","isBytesLike","isHexString","isBytes","arrayify","logger$9","allowMissingPrefix","hexPad","zeroPad","hexlify","hexDataLength","hexDataSlice","endOffset","hexConcat","hexZeroPad","splitSignature","_vs","yParityAndS","vs","recId","ENTITY_ID_REGEX","realmOrNull","numOrNull","comparison","fromStringSplitter","numOrHex","fromSolidityAddress","addr","toSolidityAddress","util.safeView","util.convertToNumber","_parseAddress","ad","_checksum","num1","num2","num3","givenChecksum","correctChecksum","noChecksumFormat","withChecksumFormat","answer","p5","ascii_a","validateChecksum","_network","_ledgerId","toStringWithChecksum","appendBuffer","buffer1","buffer2","aliasToPublicKey","HashgraphProto.proto","aliasToEvmAddress","publicKeyToAlias","publicKeyRaw","leadingHex","publicKeyInBytes","_mnemonic","cryptography.Mnemonic","calculateDerivationPathValues","derivationPath","matches","toStandardECDSAsecp256k1PrivateKeyImpl","derivationPathValues","toStandardECDSAsecp256k1PrivateKeyCustomDerivationPath","ObjectMap","_map","__map","_fromString","_set","EvmAddress","_bytes","kindOf","kindOfTest","typeOfTest","isPlainObject","isFile","isBlob","isFileList","isStream","isFormData","FormData","isURLSearchParams","isReadableStream","isResponse","isHeaders","allOwnKeys","findKey","_global","isContextDefined","caseless","assignValue","targetKey","extend","stripBOM","superConstructor","assign","toFlatObject","sourceObj","destObj","propFilter","merged","searchString","forEachEntry","matchAll","regExp","isHTMLForm","toCamelCase","reduceDescriptors","reducer","reducedDescriptors","freezeMethods","toObjectSet","arrayOrString","isArray$2","toFiniteNumber","defaultValue","ALPHA","DIGIT","ALPHA_DIGIT","generateString","isSpecCompliantForm","toJSONObject","visit","reducedValue","isAsyncFn","isThenable","_setImmediate","setImmediateSupported","postMessageSupported","asap","utils$s","hasOwnProp","AxiosError","fileName","lineNumber","columnNumber","customProps","axiosError","httpAdapter","isVisitable","removeBrackets","renderKey","dots","isFlatArray","predicates","toFormData","formData","metaTokens","indexes","option","visitor","defaultVisitor","useBlob","convertValue","exposedHelpers","charMap","AxiosURLSearchParams","_pairs","buildURL","serialize","serializeFn","serializedParams","hashmarkIndex","encoder","InterceptorManager","fulfilled","rejected","synchronous","runWhen","eject","transitionalDefaults","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","URLSearchParams$1","URLSearchParams","FormData$1","Blob$1","platform$1","isBrowser","classes","protocols","hasBrowserEnv","_navigator","hasStandardBrowserEnv","product","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","toURLEncodedForm","helpers","parsePropPath","arrayToObject","formDataToJSON","buildPath","isNumericKey","isLast","stringifySafely","rawValue","defaults","transitional","adapter","transformRequest","getContentType","hasJSONContentType","isObjectPayload","setContentType","formSerializer","_FormData","transformResponse","JSONRequested","strictJSONParsing","ERR_BAD_RESPONSE","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","Accept","defaults$1","ignoreDuplicateOf","parseHeaders","rawHeaders","$internals","normalizeHeader","normalizeValue","parseTokens","tokensRE","isValidHeaderName","matchHeaderValue","isHeaderNameFilter","formatHeader","char","buildAccessors","accessorName","methodName","AxiosHeaders","valueOrRewrite","rewrite","_value","_header","_rewrite","lHeader","setHeaders","matcher","deleteHeader","normalized","targets","asStrings","computed","accessor","accessors","defineAccessor","transformData","fns","isCancel","__CANCEL__","CanceledError","ERR_CANCELED","settle","ERR_BAD_REQUEST","parseProtocol","speedometer","samplesCount","timestamps","firstSampleTS","chunkLength","startedAt","bytesCount","passed","throttle","freq","lastArgs","timer","invoke","mapped","headerValue","progressEventReducer","isDownloadStream","bytesNotified","_speedometer","loaded","lengthComputable","progressBytes","rate","progress","estimated","progressEventDecorator","throttled","asyncDecorator","isURLSameOrigin","isMSIE","protocol","host","userAgent","cookies","expires","domain","secure","cookie","toGMTString","remove","isAbsoluteURL","combineURLs","baseURL","relativeURL","buildFullPath","requestedURL","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","paramsSerializer","timeoutMessage","withCredentials","withXSRFToken","onUploadProgress","onDownloadProgress","decompress","beforeRedirect","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding","configValue","resolveConfig","newConfig","auth","username","xsrfValue","isXHRAdapterSupported","XMLHttpRequest","xhrAdapter","_config","requestData","requestHeaders","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","unsubscribe","signal","onloadend","responseHeaders","getAllResponseHeaders","responseText","statusText","onreadystatechange","readyState","responseURL","onabort","ECONNABORTED","ERR_NETWORK","ontimeout","timeoutErrorMessage","ETIMEDOUT","setRequestHeader","upload","cancel","subscribe","aborted","composeSignals","signals","controller","AbortController","streamChunk","readBytes","readStream","getReader","trackStream","onProgress","onFinish","_onFinish","ReadableStream","pull","loadedBytes","enqueue","return","isFetchSupported","fetch","Request","isReadableStreamSupported","encodeText","supportsRequestStream","duplexAccessed","hasContentType","duplex","DEFAULT_CHUNK_SIZE","supportsResponseStream","resolvers","ERR_NOT_SUPPORT","getBodyLength","_request","resolveBodyLength","getContentLength","fetchAdapter","fetchOptions","composedSignal","toAbortSignal","requestContentLength","contentTypeHeader","isCredentialsSupported","credentials","isStreamResponse","responseContentLength","responseData","knownAdapters","http","xhr","renderReason","isResolvedHandle","adapters","getAdapter","nameOrAdapter","rejectedReasons","reasons","throwIfCancellationRequested","throwIfRequested","dispatchRequest","VERSION","validators","deprecatedWarnings","assertOptions","schema","allowUnknown","ERR_BAD_OPTION_VALUE","opt","ERR_BAD_OPTION","validators$1","formatMessage","ERR_DEPRECATED","spelling","correctSpelling","Axios","instanceConfig","interceptors","configOrUrl","dummy","function","baseUrl","withXsrfToken","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","onFulfilled","onRejected","getUri","generateHTTPMethod","isForm","CancelToken","executor","onfulfilled","_resolve","spread","isAxiosError","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","defaultConfig","axios","Cancel","promises","formToJSON","AccountId","aliasKey","entity_id.constructor","entity_id.fromStringSplitter","fromEvmAddress","evmAddressObj","fromEvmPublicAddress","_fromProtobuf","getEvmAddress","populateAccountNum","mirrorUrl","mirrorNetwork","mirrorAccountId","populateAccountEvmAddress","evm_address","entity_id.validateChecksum","entity_id.fromSolidityAddress","entity_id.toSolidityAddress","_toProtobuf","entity_id.toStringWithChecksum","MAX_NS","generatedIds","hasJitter","jitter","getTime","plusNanos","ns","zeroPaddedNanos","TransactionId","validStart","setNonce","seal","withValidStart","wholeId","isScheduled","rest","setScheduled","getReceipt","setTransactionId","execute","getRecord","SignaturePairMap","_fromTransactionSigMap","signatures","sigPairs","addSignature","pubKey","NodeAccountIdSignatureMap","_fromSignedTransactions","signedTransactions","transactionId","txId","sigPairMap","List","locked","setList","setLocked","setIfAbsent","advance","_fromTransaction","rowLength","_nodeAccountIds","columns","row","col","nodeAccountIdSigdMap","getFlatSignatureList","flatSignatureList","nodeAccountIdSignatureMap","cryptography.PrivateKey","signedTx","_threshold","arrayLike","mapFn","setThreshold","deleteCount","__fromProtobufKeyList","__fromProtobufThresoldKey","valueToLong","HbarUnit","tinybar","_name","_symbol","_tinybar","unit","Hbar","Tinybar","Microbar","Millibar","Kilobar","Megabar","Gigabar","_valueInTinybar","bigAmount","fromTinybars","toBigNumber","toTinybars","StatusError","ReceiptStatusError","transactionReceipt","Status","_code","InvalidTransaction","PayerAccountNotFound","InvalidNodeAccount","TransactionExpired","InvalidTransactionStart","InvalidTransactionDuration","InvalidSignature","MemoTooLong","InsufficientTxFee","InsufficientPayerBalance","DuplicateTransaction","Busy","NotSupported","InvalidFileId","InvalidAccountId","InvalidContractId","InvalidTransactionId","ReceiptNotFound","RecordNotFound","InvalidSolidityId","Unknown","Success","FailInvalid","FailFee","FailBalance","KeyRequired","BadEncoding","InsufficientAccountBalance","InvalidSolidityAddress","InsufficientGas","ContractSizeLimitExceeded","LocalCallModificationException","ContractRevertExecuted","ContractExecutionException","InvalidReceivingNodeAccount","MissingQueryHeader","AccountUpdateFailed","InvalidKeyEncoding","NullSolidityAddress","ContractUpdateFailed","InvalidQueryHeader","InvalidFeeSubmitted","InvalidPayerSignature","KeyNotProvided","InvalidExpirationTime","NoWaclKey","FileContentEmpty","InvalidAccountAmounts","EmptyTransactionBody","InvalidTransactionBody","InvalidSignatureTypeMismatchingKey","InvalidSignatureCountMismatchingKey","EmptyLiveHashBody","EmptyLiveHash","EmptyLiveHashKeys","InvalidLiveHashSize","EmptyQueryBody","EmptyLiveHashQuery","LiveHashNotFound","AccountIdDoesNotExist","LiveHashAlreadyExists","InvalidFileWacl","SerializationFailed","TransactionOversize","TransactionTooManyLayers","ContractDeleted","PlatformNotActive","KeyPrefixMismatch","PlatformTransactionNotCreated","InvalidRenewalPeriod","InvalidPayerAccountId","AccountDeleted","FileDeleted","AccountRepeatedInAccountAmounts","SettingNegativeAccountBalance","ObtainerRequired","ObtainerSameContractId","ObtainerDoesNotExist","ModifyingImmutableContract","FileSystemException","AutorenewDurationNotInRange","ErrorDecodingBytestring","ContractFileEmpty","ContractBytecodeEmpty","InvalidInitialBalance","InvalidReceiveRecordThreshold","InvalidSendRecordThreshold","AccountIsNotGenesisAccount","PayerAccountUnauthorized","InvalidFreezeTransactionBody","FreezeTransactionBodyNotFound","TransferListSizeLimitExceeded","ResultSizeLimitExceeded","NotSpecialAccount","ContractNegativeGas","ContractNegativeValue","InvalidFeeFile","InvalidExchangeRateFile","InsufficientLocalCallGas","EntityNotAllowedToDelete","AuthorizationFailed","FileUploadedProtoInvalid","FileUploadedProtoNotSavedToDisk","FeeScheduleFilePartUploaded","ExchangeRateChangeLimitExceeded","MaxContractStorageExceeded","TransferAccountSameAsDeleteAccount","TotalLedgerBalanceInvalid","ExpirationReductionNotAllowed","MaxGasLimitExceeded","MaxFileSizeExceeded","ReceiverSigRequired","InvalidTopicId","InvalidAdminKey","InvalidSubmitKey","InvalidTopicMessage","InvalidAutorenewAccount","AutorenewAccountNotAllowed","TopicExpired","InvalidChunkNumber","InvalidChunkTransactionId","AccountFrozenForToken","TokensPerAccountLimitExceeded","InvalidTokenId","InvalidTokenDecimals","InvalidTokenInitialSupply","InvalidTreasuryAccountForToken","InvalidTokenSymbol","TokenHasNoFreezeKey","TransfersNotZeroSumForToken","MissingTokenSymbol","TokenSymbolTooLong","AccountKycNotGrantedForToken","TokenHasNoKycKey","InsufficientTokenBalance","TokenWasDeleted","TokenHasNoSupplyKey","TokenHasNoWipeKey","InvalidTokenMintAmount","InvalidTokenBurnAmount","TokenNotAssociatedToAccount","CannotWipeTokenTreasuryAccount","InvalidKycKey","InvalidWipeKey","InvalidFreezeKey","InvalidSupplyKey","MissingTokenName","TokenNameTooLong","InvalidWipingAmount","TokenIsImmutable","TokenAlreadyAssociatedToAccount","TransactionRequiresZeroTokenBalances","AccountIsTreasury","TokenIdRepeatedInTokenList","TokenTransferListSizeLimitExceeded","EmptyTokenTransferBody","EmptyTokenTransferAccountAmounts","InvalidScheduleId","ScheduleIsImmutable","InvalidSchedulePayerId","InvalidScheduleAccountId","NoNewValidSignatures","UnresolvableRequiredSigners","ScheduledTransactionNotInWhitelist","SomeSignaturesWereInvalid","TransactionIdFieldNotAllowed","IdenticalScheduleAlreadyCreated","InvalidZeroByteInString","ScheduleAlreadyDeleted","ScheduleAlreadyExecuted","MessageSizeTooLarge","OperationRepeatedInBucketGroups","BucketCapacityOverflow","NodeCapacityNotSufficientForOperation","BucketHasNoThrottleGroups","ThrottleGroupHasZeroOpsPerSec","SuccessButMissingExpectedOperation","UnparseableThrottleDefinitions","InvalidThrottleDefinitions","AccountExpiredAndPendingRemoval","InvalidTokenMaxSupply","InvalidTokenNftSerialNumber","InvalidNftId","MetadataTooLong","BatchSizeLimitExceeded","InvalidQueryRange","FractionDividesByZero","InsufficientPayerBalanceForCustomFee","CustomFeesListTooLong","InvalidCustomFeeCollector","InvalidTokenIdInCustomFees","TokenNotAssociatedToFeeCollector","TokenMaxSupplyReached","SenderDoesNotOwnNftSerialNo","CustomFeeNotFullySpecified","CustomFeeMustBePositive","TokenHasNoFeeScheduleKey","CustomFeeOutsideNumericRange","RoyaltyFractionCannotExceedOne","FractionalFeeMaxAmountLessThanMinAmount","CustomScheduleAlreadyHasNoFees","CustomFeeDenominationMustBeFungibleCommon","CustomFractionalFeeOnlyAllowedForFungibleCommon","InvalidCustomFeeScheduleKey","InvalidTokenMintMetadata","InvalidTokenBurnMetadata","CurrentTreasuryStillOwnsNfts","AccountStillOwnsNfts","TreasuryMustOwnBurnedNft","AccountDoesNotOwnWipedNft","AccountAmountTransfersOnlyAllowedForFungibleCommon","MaxNftsInPriceRegimeHaveBeenMinted","PayerAccountDeleted","CustomFeeChargingExceededMaxRecursionDepth","CustomFeeChargingExceededMaxAccountAmounts","InsufficientSenderAccountBalanceForCustomFee","SerialNumberLimitReached","CustomRoyaltyFeeOnlyAllowedForNonFungibleUnique","NoRemainingAutomaticAssociations","ExistingAutomaticAssociationsExceedGivenLimit","RequestedNumAutomaticAssociationsExceedsAssociationLimit","TokenIsPaused","TokenHasNoPauseKey","InvalidPauseKey","FreezeUpdateFileDoesNotExist","FreezeUpdateFileHashDoesNotMatch","NoUpgradeHasBeenPrepared","NoFreezeIsScheduled","UpdateFileHashChangedSincePrepareUpgrade","FreezeStartTimeMustBeFuture","PreparedUpdateFileIsImmutable","FreezeAlreadyScheduled","FreezeUpgradeInProgress","UpdateFileIdDoesNotMatchPrepared","UpdateFileHashDoesNotMatchPrepared","ConsensusGasExhausted","RevertedSuccess","MaxStorageInPriceRegimeHasBeenUsed","InvalidAliasKey","UnexpectedTokenDecimals","InvalidProxyAccountId","InvalidTransferAccountId","InvalidFeeCollectorAccountId","AliasIsImmutable","SpenderAccountSameAsOwner","AmountExceedsTokenMaxSupply","NegativeAllowanceAmount","CannotApproveForAllFungibleCommon","SpenderDoesNotHaveAllowance","AmountExceedsAllowance","MaxAllowancesExceeded","EmptyAllowances","SpenderAccountRepeatedInAllowances","RepeatedSerialNumsInNftAllowances","FungibleTokenInNftAllowances","NftInFungibleTokenAllowances","InvalidAllowanceOwnerId","InvalidAllowanceSpenderId","RepeatedAllowancesToDelete","InvalidDelegatingSpender","DelegatingSpenderCannotGrantApproveForAll","DelegatingSpenderDoesNotHaveApproveForAll","ScheduleExpirationTimeTooFarInFuture","ScheduleExpirationTimeMustBeHigherThanConsensusTime","ScheduleFutureThrottleExceeded","ScheduleFutureGasLimitExceeded","InvalidEthereumTransaction","WrongChainId","WrongNonce","AccessListUnsupported","SchedulePendingExpiration","ContractIsTokenTreasury","ContractHasNonZeroTokenBalances","ContractExpiredAndPendingRemoval","ContractHasNoAutoRenewAccount","PermanentRemovalRequiresSystemInitiation","ProxyAccountIdFieldIsDeprecated","SelfStakingIsNotAllowed","InvalidStakingId","StakingNotEnabled","InvalidPrngRange","MaxEntitiesInPriceRegimeHaveBeenCreated","InvalidFullPrefixSignatureForPrecompile","InsufficientBalancesForStorageRent","MaxChildRecordsExceeded","InsufficientBalancesForRenewalFees","TransactionHasUnknownFields","AccountIsImmutable","AliasAlreadyAssigned","InvalidMetadataKey","TokenHasNoMetadataKey","MissingTokenMetadata","MissingSerialNumbers","TokenHasNoAdminKey","NodeDeleted","InvalidNodeId","InvalidGossipEndpoint","InvalidNodeAccountId","InvalidNodeDescription","InvalidServiceEndpoint","InvalidGossipCaCertificate","InvalidGrpcCertificate","InvalidMaxAutoAssociations","MaxNodesCreated","IpFqdnCannotBeSetForSameEndpoint","GossipEndpointCannotHaveFqdn","FqdnSizeTooLarge","InvalidEndpoint","GossipEndpointsExceededLimit","ServiceEndpointsExceededLimit","InvalidIpv4Address","TokenReferenceRepeated","InvalidOwnerId","TokenReferenceListSizeLimitExceeded","EmptyTokenReferenceList","UpdateNodeAccountNotAllowed","TokenHasNoMetadataOrSupplyKey","EmptyPendingAirdropIdList","PendingAirdropIdRepeated","MaxPendingAirdropIdExceeded","PendingNftAirdropAlreadyExists","AccountHasPendingAirdrops","ThrottledAtConsensus","InvalidPendingAirdropId","TokenAirdropWithFallbackRoyalty","InvalidTokenInPendingAirdrop","ScheduleExpiryIsBusy","InvalidGrpcCertificateHash","MissingExpiryTime","NoSchedulingAllowedAfterScheduledRecursion","RecursiveSchedulingLimitReached","_fromCode","GrpcStatus","_fromValue","Cancelled","InvalidArgument","DeadlineExceeded","AlreadyExists","PermissionDenied","ResourceExhausted","FailedPrecondition","Aborted","OutOfRange","Unimplemented","Internal","Unavailable","DataLoss","Unauthenticated","Timeout","GrpcWeb","GrpcServiceError","_fromResponse","details","HttpStatus","HttpError","MaxAttemptsOrTimeoutError","ExecutionState","Finished","Retry","RST_STREAM","DEFAULT_MAX_ATTEMPTS","Executable","_maxAttempts","transactionNodeIds","_signOnDemand","_minBackoff","_maxBackoff","_operator","_requestTimeout","_grpcDeadline","_logger","nodeAccountIds","setNodeAccountIds","nodeIds","maxRetries","maxAttempts","setMaxRetries","setMaxAttempts","grpcDeadline","setGrpcDeadline","setMinBackoff","minBackoff","setMaxBackoff","maxBackoff","_beforeExecute","_makeRequestAsync","_mapStatusError","_mapResponse","_execute","channel","_getTransactionId","_getLogId","_requestToBytes","_responseToBytes","_advanceRequest","_shouldRetry","_shouldRetryExceptionally","_setOperatorWith","transactionSigner","executeWithSigner","requestTimeout","persistentError","displayNodeAccountIds","isSingleNode","attempt","getNode","logId","getChannel","isHealthy","getRemainingTime","race","increaseBackoff","decreaseBackoff","shouldRetry","delayForAttempt","setLogger","PrecheckStatusError","contractFunctionResult","MaxQueryPaymentExceeded","queryCost","maxQueryPayment","QUERY_REGISTRY","_paymentTransactionId","_paymentTransactions","_queryPayment","_maxQueryPayment","_timestamp","fromProtobuf","_makeRequest","setQueryPayment","queryPayment","setMaxQueryPayment","getCost","getNodeAccountIdsForExecute","COST_QUERY","setPaymentTransactionId","paymentTransactionId","_isPaymentRequired","_validateChecksums","isAutoValidateChecksumsEnabled","network","accountNodeId","defaultMaxQueryPayment","actualCost","paymentAmount","_makePaymentTransaction","_mapResponseHeader","_makeRequestHeader","ANSWER_ONLY","_onMakeRequest","OK","operator","ContractId","contract_id","entity_id.compare","evmAddresses","__fromProtobufKey","FileId","entity_id.fromString","file","ADDRESS_BOOK","FEE_SCHEDULE","EXCHANGE_RATES","TopicId","TokenId","ScheduleId","hbars","cents","exchangeRateInCents","trunc","topicId","scheduleId","scheduledTransactionId","serials","duplicates","exchangeRateSet","duplicate","filedId","_j","HashgraphProto","TransactionReceiptQuery","_transactionId","_includeChildren","_includeDuplicates","_validateStatus","includeChildren","setIncludeChildren","setIncludeDuplicates","setValidateStatus","receiptStatusCode","Transfer","isApproved","transfer","ContractLogInfo","topics","_BN","_constructorGuard","MAX_SAFE","_warnedToStringRadix","constructorGuard","_hex","toBN","throwFault","anyValue","logger$8","_base36To16","defineReadOnly","ModifiersBytes","calldata","memory","ModifiersNest","checkModifier","logger$7","parseParamType","param","allowIndexed","originalParam","newNode","allowType","indexed","allowParams","verifyType","components","allowName","allowArray","sibling","readArray","populate","FormatTypes","sighash","paramTypeArray","ParamType","arrayLength","arrayChildren","baseType","_isParamType","isParamType","Coder","localName","dynamic","_throwError","Writer$2","_data","_dataLength","_writeData","appendWriter","paddingOffset","_getValue","BUFFER_OVERRUN","writeValue","writeUpdatableValue","Reader$2","coerceFunc","allowLoose","_offset","consumed","coerce","_coerceFunc","_peekBytes","alignedLength","subReader","readValue","INPUT_ERROR","WINDOW","root","JS_SHA3_NO_WINDOW","WEB_WORKER","JS_SHA3_NO_NODE_JS","COMMON_JS","JS_SHA3_NO_COMMON_JS","ARRAY_BUFFER","JS_SHA3_NO_ARRAY_BUFFER","CSHAKE_PADDING","BITS","SHAKE_BITS","OUTPUT_TYPES","CSHAKE_BYTEPAD","JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW","createOutputMethod","outputType","createShakeOutputMethod","outputBits","createCshakeOutputMethod","createKmacOutputMethod","createOutputMethods","createMethod","bytepad","Kmac","methodNames","newMethodName","finalized","notString","encodeString","strs","paddingBytes","finalize","sha3","keccak_256","arrayifyInteger","unarrayifyInteger","logger$5","_decodeChildren","childOffset","lengthLength","getChecksumAddress","logger$4","expanded","hashed","log10","LN10","ibanLookup","safeDigits","ibanChecksum","getAddress","AddressCoder","AnonymousCoder","coder","coders","arrayValues","unique","logger$3","staticWriter","dynamicWriter","updateFuncs","dynamicOffset","updateFunc","baseOffset","unpack","baseReader","offsetReader","uniqueNames","ArrayCoder","defaultChild","BooleanCoder","DynamicBytesCoder","BytesCoder","FixedBytesCoder","NullCoder","NegativeOne","Zero","One","MaxUint256","NumberCoder","signed","maxUintValue","bounds","UnicodeNormalizationForm","Utf8ErrorReason","errorFunc","badCodepoint","ignoreFunc","BAD_PREFIX","UNEXPECTED_CONTINUE","OVERRUN","replaceFunc","OVERLONG","Utf8ErrorFuncs","getUtf8CodePoints","onError","extraLength","overlongMask","nextChar","MISSING_CONTINUE","OUT_OF_RANGE","UTF16_SURROGATE","toUtf8Bytes","_toUtf8String","toUtf8String","StringCoder","TupleCoder","paramTypeBytes","paramTypeNumber","AbiCoder","_getCoder","component","logger$1","_getWordSize","_getReader","_getWriter","getDefaultValue","defaultAbiCoder","hashMessage","protos","contractNonceInfo","_createResult","logs","createdContractIds","senderAccountId","contractNonce","asBytes","getString","getBytes32","getBool","getUint24","getInt40","_getBytes32","getUint40","getInt48","getUint48","getInt56","getUint56","getInt64","getUint64","getInt72","getUint72","getInt80","getUint80","getInt88","getUint88","getInt96","getUint96","getInt104","getUint104","getInt112","getUint112","getInt120","getUint120","getInt128","getUint128","getInt136","getUint136","getInt144","getUint144","getInt152","getUint152","getInt160","getUint160","getInt168","getUint168","getInt176","getUint176","getInt184","getUint184","getInt192","getUint192","getInt200","getUint200","getInt208","getUint208","getInt216","getUint216","getInt224","getUint224","getInt232","getUint232","getInt240","getUint240","getInt248","getUint248","getInt256","getUint256","getResult","TokenTransferAccountMap","TokenTransferMap","__set","tokenTransfersMap","tokenTransferList","TokenNftTransferMap","nftTransfer","sender","_feeCollectorAccountId","setFeeCollectorAccountId","_tokenId","setTokenId","_amount","setAmount","_payerAccountIds","payerAccountIds","setPayerAccountIds","fee","_accountId","setAccountId","_defaultMaxTransactionFee","association","TokenTransfer","tokenTransfer","NftId","strings","_senderId","_receiverId","_nftId","nftId","pb","setSenderid","setReceiverId","setNftId","airdropId","transactionMemo","tokenTransfersList","hbarAllowanceAdjustments","tokenAllowanceAdjustments","nftAllowanceAdjustments","airdrop","TokenAssocation","RecordStatusError","TransactionRecordQuery","_validateReceiptStatus","validateReceiptStatus","setValidateReceiptStatus","_duplicates","COST_ANSWER","receiptStatusError","getReceiptQuery","getRecordQuery","getVerboseRecord","getReceiptWithSigner","getRecordWithSigner","TransactionHashMap","_transactions","sha384.digest","DEFAULT_AUTO_RENEW_PERIOD","DEFAULT_RECORD_THRESHOLD","DEFAULT_TRANSACTION_VALID_DURATION","CHUNK_SIZE","TRANSACTION_REGISTRY","__publicField","_transactionValidDuration","_maxTransactionFee","_transactionMemo","_transactionIds","_publicKeys","_transactionSigners","_regenerateTransactionId","transactionIdStrings","nodeIdStrings","bodies","schedule","_requireNotFrozen","SCHEDULE_CREATE_TRANSACTION","_setScheduledTransaction","_fromProtobufTransactions","util.compare","setTransactionValidDuration","validDuration","maxTransactionFee","setMaxTransactionFee","regenerateTransactionId","setRegenerateTransactionId","setTransactionMemo","getRequiredChunks","signWith","signWithOperator","_isFrozen","freezeWith","signatureMap","nodeSignatures","transactionSignatures","removeSignature","removedSignatures","removedSignaturesFromTransaction","_removeSignaturesFromTransaction","delete","removeAllSignatures","_collectSignaturesByPublicKey","getSignatures","_requireNotSignOnDemand","_buildAllTransactions","getSignaturesAsync","_buildAllTransactionsAsync","_setTransactionId","_operatorAccountId","_setNodeAccountIds","_buildSignedTransactions","_makeSignedTransaction","_buildIncompleteTransactions","_freezeWithAccountId","signOnDemand","operatorAccountId","defaultMaxTransactionFee","defaultRegenerateTransactionId","_buildNewTransactionIdList","signWithSigner","freezeWithSigner","populateTransaction","toBytesAsync","getTransactionHash","getTransactionHashPerNode","networkName","_buildTransactionAsync","_buildTransaction","_signTransaction","_makeTransactionBody","_getTransactionDataCase","_makeTransactionData","_getScheduledTransactionBody","_requireOneNodeAccountId","shouldRemove","_shouldRemoveSignature","collectedSignatures","publicKeyMap","publicKeyStr","publicKeyObj","existingSignatures","TokenNftTransfer","receiverAccountId","NullableTokenDecimalMap","AbstractTokenTransferTransaction","_tokenTransfers","_nftTransfers","addTokenTransfer","addNftTransfer","tokenIdOrNftId","senderAccountIdOrSerialNumber","receiverAccountIdOrSenderAccountId","_addNftTransfer","_addTokenTransfer","addApprovedNftTransfer","addApprovedTokenTransfer","addTokenTransferWithDecimals","tokenIdDecimals","transferMap","sort","senderComparision","recipientComparision","iTokenId","jTokenId","lastTokenId","TokenAirdropTransaction","addApprovedTokenTransferWithDecimals","AirdropPendingTransaction","_pendingAirdropIds","pendingAirdropIds","addPendingAirdropId","setPendingAirdropIds","TokenClaimAirdropTransaction","pendingAirdrop","TokenCancelAirdropTransaction","HbarAllowance","spenderAccountId","ownerAccountId","allowance","_fromGrantedProtobuf","TokenNftAllowance","allSerials","_fromRemoveProtobuf","AccountAllowanceAdjustTransaction","_hbarAllowances","hbarAllowances","_tokenAllowances","_nftAllowances","addHbarAllowance","_adjustHbarAllowance","util.requireNotNegative","grantHbarAllowance","revokeHbarAllowance","addTokenAllowance","_adjustTokenAllowance","grantTokenAllowance","revokeTokenAllowance","addTokenNftAllowance","_adjustTokenNftAllowance","grantTokenNftAllowance","revokeTokenNftAllowance","addAllTokenNftAllowance","_adjustTokenNftAllowanceAllSerials","grantTokenNftAllowanceAllSerials","revokeTokenNftAllowanceAllSerials","AccountAllowanceApproveTransaction","_hbarApprovals","hbarApprovals","_tokenApprovals","tokenApprovals","_nftApprovals","nftApprovals","allowanceApproval","approval","approveHbarAllowance","approveTokenAllowance","_approveTokenNftAllowance","tokenNftApprovals","approveTokenNftAllowance","approveTokenNftAllowanceWithDelegatingSpender","_approveAllTokenNftAllowance","approveTokenNftAllowanceAllSerials","deleteTokenNftAllowanceAllSerials","AccountAllowanceDeleteTransaction","tokenNftAllowanceDeletions","deleteAllTokenNftAllowances","TokenBalanceMap","TokenDecimalMap","AccountBalance","tokenDecimals","accountBalance","AccountBalanceQuery","AccountCreateTransaction","_initialBalance","_sendRecordThreshold","_receiveRecordThreshold","_receiverSignatureRequired","_proxyAccountId","_autoRenewPeriod","_accountMemo","_maxAutomaticTokenAssociations","_stakedAccountId","_stakedNodeId","_declineStakingReward","_alias","setKey","receiverSignatureRequired","setReceiverSignatureRequired","setInitialBalance","setProxyAccountId","setAutoRenewPeriod","accountMemo","setAccountMemo","setMaxAutomaticTokenAssociations","setStakedAccountId","setStakedNodeId","declineStakingReward","setDeclineStakingReward","setAlias","declineStakingRewards","AccountDeleteTransaction","_transferAccountId","transferAccountId","setTransferAccountId","accountDelete","liveHash_","isKycGranted","relationship","TokenRelationshipMap","relationships","LedgerId","NETNAMES","MAINNET","TESTNET","PREVIEWNET","LOCAL_NODE","ledgerIdDecoded","isMainnet","isTestnet","isPreviewnet","isLocalNode","isDeleted","isReceiverSignatureRequired","AccountInfoQuery","AccountInfoFlow","verifySignature","verifySignatureWithSigner","verifyTransactionWithSigner","AccountRecordsQuery","AccountStakersQuery","staker","AccountUpdateTransaction","_expirationTime","_aliasKey","setExpirationTime","clearAccountMemo","setAliasKey","clearStakedAccountId","clearStakedNodeId","IPv4AddressPart","_left","setLeft","_right","setRight","IPv4Address","setNetwork","_host","setHost","newtork","EndPoint","_address","setAddress","_port","setPort","endpoint","_publicKey","_nodeId","setNodeId","_certHash","certHash","setCertHash","_addresses","addresses","setAddresses","_description","setDescription","_stake","setStake","Endpoint","_nodeAddresses","nodeAddresses","setNodeAddresses","nodeAddressBook","_fileId","setFileId","_limit","setLimit","_retryHandler","_attempt","attempts","backoff","_timer","_makeServerStreamRequest","HashgraphProto.com","_mirrorNetwork","getNextMirrorNode","makeServerStreamRequest","isClientShutDown","delay","ContractByteCodeQuery","smartContract","ArgumentType","int8","uint16","int16","uint24","int24","uint40","int40","uint48","int48","uint56","int56","uint72","int72","uint80","int80","uint88","int88","uint96","int96","uint104","int104","uint112","int112","uint120","int120","uint128","int128","uint136","int136","uint144","int144","uint152","int152","uint160","int160","uint168","int168","uint176","int176","uint184","int184","uint192","int192","uint200","int200","uint208","int208","uint216","int216","uint224","int224","uint232","int232","uint240","int240","uint248","int248","uint256","int256","bytes32","ContractFunctionSelector","_params","_paramTypes","addString","_addParam","addStringArray","addBytes","addBytes32","addBytesArray","addBytes32Array","addInt8","addUint8","addInt16","addUint16","addInt24","addUint24","addInt32","addUint32","addInt40","addUint40","addInt48","addUint48","addInt56","addUint56","addInt64","addUint64","addInt72","addUint72","addInt80","addUint80","addInt88","addUint88","addInt96","addUint96","addInt104","addUint104","addInt112","addUint112","addInt120","addUint120","addInt128","addUint128","addInt136","addUint136","addInt144","addUint144","addInt152","addUint152","addInt160","addUint160","addInt168","addUint168","addInt176","addUint176","addInt184","addUint184","addInt192","addUint192","addInt200","addUint200","addInt208","addUint208","addInt216","addUint216","addInt224","addUint224","addInt232","addUint232","addInt240","addUint240","addInt248","addUint248","addInt256","addUint256","addInt8Array","addUint8Array","addInt16Array","addUint16Array","addInt24Array","addUint24Array","addInt32Array","addUint32Array","addInt40Array","addUint40Array","addInt48Array","addUint48Array","addInt56Array","addUint56Array","addInt64Array","addUint64Array","addInt72Array","addUint72Array","addInt80Array","addUint80Array","addInt88Array","addUint88Array","addInt96Array","addUint96Array","addInt104Array","addUint104Array","addInt112Array","addUint112Array","addInt120Array","addUint120Array","addInt128Array","addUint128Array","addInt136Array","addUint136Array","addInt144Array","addUint144Array","addInt152Array","addUint152Array","addInt160Array","addUint160Array","addInt168Array","addUint168Array","addInt176Array","addUint176Array","addInt184Array","addUint184Array","addInt192Array","addUint192Array","addInt200Array","addUint200Array","addInt208Array","addUint208Array","addInt216Array","addUint216Array","addInt224Array","addUint224Array","addInt232Array","addUint232Array","addInt240Array","addUint240Array","addInt248Array","addUint248Array","addInt256Array","addUint256Array","addBool","addAddress","addAddressArray","addFunction","solidityTypeToString","_build","ContractFunctionParameters","_selector","_arguments","util.convertToBigNumber","util.convertToBigNumberArray","par","selector","addressParam","functionSelector","argumentToBytes","includeId","nameOffset","totalLengthOfValues","paramToHex","ContractCallQuery","_gas","setGas","_functionParameters","setFunctionParameters","setFunction","_maxResultSize","setMaxResultSize","_senderAccountId","setSenderAccountId","_mapResponseSync","FileCreateTransaction","_contents","_fileMemo","setKeys","setContents","fileMemo","setFileMemo","FileAppendTransaction","_maxChunks","_chunkSize","_chunkInterval","maxChunks","setMaxChunks","setChunkSize","chunkInterval","setChunkInterval","incrementValue","firstValidStart","secondValidStart","nextTransactionId","executeAll","responses","remainingTimeout","startTimestamp","dummyAccountId","startIndex","endIndex","FileDeleteTransaction","ContractCreateTransaction","_bytecodeFileId","_bytecode","_adminKey","_constructorParameters","_contractMemo","_autoRenewAccountId","bytecodeFileId","setBytecodeFileId","setBytecode","setAdminKey","setConstructorParameters","contractMemo","setContractMemo","setAutoRenewAccountId","ContractCreateFlow","_contractCreate","maxAutomaticTokenAssociation","operatorPublicKey","fileCreateTransaction","addSignersToTransaction","fileAppendTransaction","fileDeleteTransaction","getAccountKey","formattedPublicKey","propertyValues","keyArray","publicKeys","transactionSigners","ContractDeleteTransaction","_transferContractId","transferContractId","setTransferContractId","contractDelete","ContractExecuteTransaction","setPayableAmount","payableAmount","ContractInfoQuery","ContractUpdateTransaction","clearContractMemo","clearAutoRenewAccountId","_allCollectorsAreExempt","setAllCollectorsAreExempt","CustomFixedFee","_denominatingTokenId","setDenominatingTokenId","setHbarAmount","hbarAmount","setDenominatingTokenToSameToken","FeeAssessmentMethod","Inclusive","Exclusive","CustomFractionalFee","_numerator","setNumerator","_denominator","setDenominator","_min","setMin","_max","setMax","_assessmentMethod","assessmentMethod","setAssessmentMethod","fractional","CustomRoyalyFee","_fallbackFee","setFallbackFee","fraction","DelegateContractId","EthereumTransaction","_ethereumData","_callDataFileId","_maxGasAllowance","setEthereumData","setCallDataFileId","callDataFileId","setMaxGasAllowanceHbar","setCallData","setMaxGasAllowance","EthereumTransactionData","EthereumTransactionDataLegacy","gasPrice","gasLimit","rlp.decode","rlp.encode","EthereumTransactionDataEip1559","chainId","maxPriorityGas","maxGas","accessList","EthereumTransactionDataEip2930","EthereumFlow","ethereumTransactionDataBytes","hexedCallData","ExchangeRates","rateSet","transactionBandwidthByte","transactionVerification","transactionRamByteHour","transactionStorageByteHour","contractTransactionGas","transferVolumeHbar","responseMemoryByte","responseDiskByte","feeComponents","FeeDataType","Default","TokenFungibleCommon","TokenNonFungibleUnique","TokenFungibleCommonWithCustomFees","TokenNonFungibleUniqueWithCustomFees","ScheduleCreateContractCall","feeDataType","RequestType","None","CryptoTransfer","CryptoUpdate","CryptoDelete","CryptoAddLiveHash","CryptoDeleteLiveHash","ContractCall","ContractCreate","ContractUpdate","FileCreate","FileAppend","FileUpdate","FileDelete","CryptoGetAccountBalance","CryptoGetAccountRecords","CryptoGetInfo","ContractCallLocal","ContractGetInfo","ContractGetBytecode","GetBySolidityID","GetByKey","CryptoGetLiveHash","CryptoGetStakers","FileGetContents","FileGetInfo","TransactionGetRecord","CryptoCreate","SystemDelete","SystemUndelete","ContractDelete","Freeze","CreateTransactionRecord","CryptoAccountAutoRenew","ContractAutoRenew","GetVersionInfo","TransactionGetReceipt","ConsensusCreateTopic","ConsensusUpdateTopic","ConsensusDeleteTopic","ConsensusGetTopicInfo","ConsensusSubmitMessage","UncheckedSubmit","TokenCreate","TokenGetInfo","TokenFreezeAccount","TokenUnfreezeAccount","TokenGrantKycToAccount","TokenRevokeKycFromAccount","TokenDelete","TokenUpdate","TokenMint","TokenBurn","TokenAccountWipe","TokenAssociateToAccount","TokenDissociateFromAccount","ScheduleCreate","ScheduleDelete","ScheduleSign","ScheduleGetInfo","TokenGetAccountNftInfos","TokenGetNftInfo","TokenGetNftInfos","TokenFeeScheduleUpdate","NetworkGetExecutionTime","TokenPause","TokenUnpause","CryptoApproveAllowance","CryptoDeleteAllowance","GetAccountDetails","NodeStakeUpdate","Prng","TransactionGetFastRecord","TokenUpdateNfts","NodeCreate","NodeUpdate","NodeDelete","TokenReject","TokenAirdrop","TokenCancelAirdrop","TokenClaimAirdrop","TssMessage","TssVote","TssShareSignature","TssEncryptionKey","feeSchedule","FeeSchedules","feeSchedules","FileContentsQuery","FileInfoQuery","FileUpdateTransaction","clearFileMemo","UnknownFreezeType","FreezeOnly","PrepareUpgrade","FreezeUpgrade","FreezeAbort","TelemetryUpgrade","FreezeTransaction","_startTime","_startTimestamp","_endTime","_fileHash","_freezeType","setStartTime","endTime","setEndTime","setStartTimestamp","updateFileId","setUpdateFileId","setFileHash","setFreezeType","startHourOrString","startMinute","endHourOrString","endMinute","LiveHashAddTransaction","_duration","setHash","setDuration","LiveHashDeleteTransaction","LiveHashQuery","NetworkVersionInfo","protobufVersion","servicesVersion","NetworkVersionInfoQuery","Provider","PrngTransaction","_range","setRange","newRange","transactionRange","ScheduleCreateTransaction","_scheduledTransaction","_payerAccountId","_scheduleMemo","_scheduledSignerPublicKeys","_waitForExpiry","setPayerAccountId","scheduleMemo","setScheduleMemo","scheduledTransaction","scheduleCreateBody","scheduleCreateBodyBytes","scheduleCreatetransaction","txlist","finalScheduledDecodedTx","payerAccountId","getScheduleMemo","setScheduledTransaction","setWaitForExpiry","ScheduleDeleteTransaction","_scheduleId","setScheduleId","creatorAccountId","schedulableTransactionBody","executed","data2","ScheduleInfoQuery","ScheduleSignTransaction","Signer","SignerSignature","SubscriptionHandle","_call","_unsubscribed","_setCall","SystemDeleteTransaction","SystemUndeleteTransaction","TokenAssociateTransaction","_tokenIds","tokenIds","setTokenIds","associateToken","TokenBurnTransaction","_serials","setSerials","reference","TokenRejectTransaction","_owner","setOwnerId","_nftIds","nftIds","setNftIds","rejection","ftIds","addTokenId","addNftId","ownerId","TokenDissociateTransaction","dissociateToken","TokenRejectFlow","_ownerId","_freezeWithClient","_signPrivateKey","_signPublicKey","_transactionSigner","requireNotFrozen","ids","getOperator","fillOutTransaction","tokenRejectTxn","nftTokenIds","tokenDissociateTxn","tokenRejectResponse","tokenDissociateResponse","FungibleCommon","NonFungibleUnique","Infinite","Finite","TokenCreateTransaction","_tokenName","_tokenSymbol","_decimals","_initialSupply","_treasuryAccountId","_kycKey","_freezeKey","_pauseKey","_wipeKey","_supplyKey","_feeScheduleKey","_freezeDefault","_tokenMemo","_customFees","_tokenType","_supplyType","_maxSupply","_metadataKey","_metadata","tokenName","setTokenName","tokenSymbol","setTokenSymbol","setDecimals","setInitialSupply","treasuryAccountId","setTreasuryAccountId","setKycKey","setFreezeKey","setPauseKey","setWipeKey","setSupplyKey","setFeeScheduleKey","setFreezeDefault","tokenMemo","setTokenMemo","setCustomFees","setTokenType","setSupplyType","setMaxSupply","setMetadataKey","setMetadata","CustomRoyaltyFee","TokenDeleteTransaction","TokenFeeScheduleUpdateTransaction","feeScheduleUpdate","TokenFreezeTransaction","freezeToken","TokenGrantKycTransaction","grantKycToken","TokenInfoQuery","TokenMintTransaction","addMetadata","toJson","TokenNftInfoQuery","_start","setStart","_end","setEnd","TokenPauseTransaction","TokenRevokeKycTransaction","revokeKycToken","TokenUnfreezeTransaction","unfreezeToken","TokenUnpauseTransaction","FullValidation","NoValidation","TokenUpdateTransaction","_keyVerificationMode","setKeyVerificationMode","setsupplyKey","clearTokenMemo","TokenWipeTransaction","wipeToken","TopicCreateTransaction","_submitKey","_topicMemo","setSubmitKey","topicMemo","setTopicMemo","getTopicMemo","getAdminKey","getSubmitKey","getAutoRenewAccountId","getAutoRenewPeriod","consensus","TopicDeleteTransaction","_topicId","setTopicId","topicDelete","TopicInfo","infoResponse","TopicInfoQuery","TopicMessageChunk","TopicMessage","initialTransactionId","_ofSingle","_ofMany","TopicMessageQuery","_errorHandler","errorHandler","_listener","_completionHandler","completionHandler","retryHandler","_handle","requireNotSubscribed","setErrorHandler","setCompletionHandler","_passTopicMessage","topicMessage","TopicMessageSubmitTransaction","_message","setMessage","_chunkInfo","util.requireStringOrUint8Array","getMaxChunks","getChunkSize","TopicUpdateTransaction","clearTopicId","clearTopicMemo","clearAdminKey","clearSubmitKey","HbarTransferMap","accountTransfers","TransferTransaction","_hbarTransfers","hbarTransfers","addHbarTransfer","hbarTransfersList","_addHbarTransfer","addApprovedHbarTransfer","setHbarTransferApproval","setTokenTransferApproval","setNftTransferApproval","Wallet","provider","createRandomED25519","createRandomECDSA","getProvider","getAccountId","getLedgerId","getNetwork","getMirrorNetwork","messages","sigantures","getAccountBalance","checkTransaction","previous","util.shuffle","tryStringify","quickFormatUnescaped","argLen","lastPos","flen","browser$4","pino","_console","pfGlobalThisOrFallback","stdSerializers","mapHttpRequest","mock","mapHttpResponse","wrapRequestSerializer","passthrough","wrapResponseSerializer","wrapErrorSerializer","asErrValue","errWithCause","levelToValue","baseLogFunctionSymbol","hierarchySymbol","logFallbackMap","appendChildLogger","parentLogger","childLogger","newEntry","setupBaseLogFunctions","logFunctions","shouldSerialize","serializers","transmit","asObject","stdErrSerialize","customLevels","enabled","disabled","_level","set$2","setOpts","formatters","getTimeFunction","getLevels","_serialize","_stdErrSerialize","bindings","childOptions","childOptionsSerializers","childSerializers","childSerialize","applySerializers","Child","_childLevel","_logEvent","createLogEventShape","newLogger","labels","invertObject","inverted","getBindingChain","hierarchy","rootLogger","createWrap","prependBindingsInArguments","logFunc","transmitLevel","transmitValue","methodValue","methodLevel","levelFormatter","logObjectFormatter","applySerializers$1","argsCloned","logObject","lvl","nullTime","epochTime","unixTime","isoTime","defd","pino$1","stdTimeFunctions","Silent","Trace","Debug","Info","Warn","Fatal","logFile","fsync","mkdir","minLength","fileTransport","destination","loggerOptions","translateTime","_previousLevel","setSilent","silent","TokenUpdateNftsTransaction","_serialNumbers","setSerialNumbers","_ipAddressV4","_domainName","setIpAddressV4","getIpAddressV4","getPort","setDomainName","getDomainName","DESCRIPTION_MAX_LENGTH","GOSSIP_ENDPOINTS_MAX_LENGTH","SERVICE_ENDPOINTS_MAX_LENGTH","NodeCreateTransaction","_gossipEndpoints","gossipEndpoints","_serviceEndpoints","serviceEndpoints","_gossipCaCertificate","_grpcCertificateHash","setGossipEndpoints","addGossipEndpoint","setServiceEndpoints","addServiceEndpoint","setGossipCaCertificate","setCertificateHash","certificateHash","addressBook","NodeDeleteTransaction","NodeUpdateTransaction","clearDescription","HOST_AND_PORT","ManagedNodeAddress","hostAndPortResult","toInsecure","toSecure","isTransportSecurity","ManagedNode","_cert","_channel","_channelInitFunction","channelInitFunction","_lastUsed","_readmitTime","_useCount","_badGrpcStatusCount","_currentBackoff","cloneNode","setCert","__lastUsed","_nodeAddress","setNodeAddress","PREVIEWNET_ADDRESS_BOOK","TESTNET_ADDRESS_BOOK","MAINNET_ADDRESS_BOOK","ManagedNetwork","createNetworkChannel","_nodes","_healthyNodes","_createNetworkChannel","_maxNodeAttempts","_nodeMinReadmitPeriod","_nodeMaxReadmitPeriod","_earliestReadmitTime","setNetworkName","setLedgerId","_createNodeFromNetworkEntry","_getNodesToRemove","_removeDeadNodes","_closeNode","_readmitNodes","nextEarliestReadmitTime","searchForNextEarliestReadmitTime","_getNumberOfMostHealthyNodes","nodes","healthyNodes","selectedNode","_removeNodeFromNetwork","_setNetwork","newNodes","newNodeKeys","newNodeAddresses","newHealthyNodes","newNetwork","newNetworkNodes","maxNodeAttempts","setMaxNodeAttempts","nodeMinReadmitPeriod","setNodeMinReadmitPeriod","nodeMaxReadmitPeriod","setNodeMaxReadmitPeriod","lockedNodes","randomNodeAccountId","randomNode","_maxNodesPerTransaction","_addressBook","_transportSecurity","setNetworkFromAddressBook","_checkNetworkContainsEntry","maxNodesPerTransaction","setMaxNodesPerTransaction","setTransportSecurity","transportSecurity","getNumberOfNodesForTransaction","MirrorNode","MirrorNetwork","Client","_createMirrorNetworkChannel","Network","_defaultMaxQueryPayment","setOperator","_autoValidateChecksums","_defaultRegenerateTransactionId","_networkUpdatePeriod","_isShutdown","scheduleNetworkUpdate","_scheduleNetworkUpdate","setMirrorNetwork","setSignOnDemand","setOperatorWith","accountId_","setAutoValidateChecksums","setDefaultMaxTransactionFee","setDefaultRegenerateTransactionId","setDefaultMaxQueryPayment","nodeWaitTime","setNodeWaitTime","setNodeMinBackoff","nodeMinBackoff","setNodeMaxBackoff","nodeMaxBackoff","setRequestTimeout","networkUpdatePeriod","setNetworkUpdatePeriod","ping","pingAll","WEB_TESTNET","WEB_PREVIEWNET","ALL_WEB_NETWORK_NODES","Channel","_smartContract","_file","_consensus","_freeze","_token","_schedule","_util","_createUnaryClient","serviceName","encodeRequest","frame","decodeUnaryResponse","dataOffset","unaryResponse","frameType","frameByteLength","frameOffset","frameData","trailer","trailerName","trailerValue","WebChannel","ok","grpcStatus","grpcMessage","responseBuffer","fromName","WebClient","fromConfig","forNetwork","forName","forMainnet","forTestnet","forPreviewnet","CostQuery","_query","NetworkName","Mainnet","Testnet","Previewnet","HederaChainId","HederaSessionEvent","HederaJsonRpcMethod","Writer$1","base64$2","BufferWriter$1","Reader$1","BufferReader$1","util$2","long","get_high","div_u","div_s","rem_u","rem_s","freezeTransaction","setDefaultNodeAccountIds","isNodeAccountIdNotSet","transactionToBase64String","transactionToTransactionBody","transactionBodyToBase64String","transactionBody","Uint8ArrayToBase64String","base64StringToSignatureMap","base64string","Uint8ArrayToString","base64StringToUint8Array","queryToBase64String","queryBytes","prefixMessageToSign","verifyMessageSignature","base64SignatureMap","getNodeInfo","nodeGetInfo","NodeGetInfoQuery","NodeInfo","weight","NodeGetInfoResponse","nodeInfo","LEDGER_ID_MAPPINGS","DEFAULT_LEDGER_ID","DEFAULT_CAIP","CAIPChainIdToLedgerId","chainId_","ledgerIdToCAIPChainId","ledgerId_","networkNamespaces","chains","accountAndLedgerFromSession","hederaNamespace","namespaces","accounts","EVENTS","findExtensions","onFound","extensionResponse","iframeQueryResponse","extensionQuery","iframeQuery","extensionConnect","isIframe","pairingString","iframeConnect","extensionOpen","extendStatics","__extends","__assign","__rest","__decorate","decorators","decorate","__param","paramIndex","decorator","__metadata","metadataValue","__awaiter","__generator","sent","trys","ops","verb","throw","__createBinding","__exportStar","__values","__read","__spread","__spreadArrays","il","jl","__await","__asyncGenerator","fulfill","__asyncDelegator","__asyncValues","__makeTemplateObject","cooked","__importStar","__importDefault","__classPrivateFieldGet","privateMap","__classPrivateFieldSet","delay_1","misc","ONE_THOUSAND","ONE_HUNDRED","ONE_YEAR","FOUR_WEEKS","THREE_WEEKS","TWO_WEEKS","ONE_WEEK","THIRTY_DAYS","SEVEN_DAYS","FIVE_DAYS","THREE_DAYS","ONE_DAY","TWENTY_FOUR_HOURS","TWELVE_HOURS","SIX_HOURS","THREE_HOURS","SIXTY_MINUTES","THIRTY_MINUTES","TEN_MINUTES","FIVE_MINUTES","ONE_MINUTE","SIXTY_SECONDS","THIRTY_SECONDS","TEN_SECONDS","FIVE_SECONDS","ONE_SECOND","ONE_HOUR","tslib_1","fromMiliseconds","toMiliseconds","constants_1","miliseconds","watch","Watch","started","elapsed","IWatch","IEvents","pulse","interval","clearInterval","intervalRef","setInterval","suspectProtoRx","suspectConstructorRx","JsonSigRx","jsonParseTransform","warnKeyDropped","destr","_lval","POSITIVE_INFINITY","NEGATIVE_INFINITY","wrapToPromise","asyncCall","function_","arguments_","isPureObject","isPrototypeOf","BASE64_PREFIX","serializeRaw","base64Encode","deserializeRaw","base64Decode","codePointAt","fromCodePoint","normalizeKey","joinKeys","normalizeBaseKey","defineDriver","DRIVER_NAME","getInstance","hasItem","getItemRaw","setItemRaw","getKeys","dispose","createStorage","mounts","driver","mountpoints","watching","watchListeners","unwatch","getMount","relativeKey","getMounts","includeParent","mountpoint","relativeBase","onChange","stopWatch","runBatch","commonOptions","batches","getBatch","mount","batch","isStringItem","options2","flat","getItems","setItems","removeMeta","removeMata","getMeta","nativeOnly","meta","value_","atime","mtime","setMeta","maskedMounts","allKeys","rawKeys","fullKey","startWatch","unwatcher","unmount","_dispose","del","promisifyRequest","onsuccess","createStore","dbName","storeName","indexedDB","onupgradeneeded","createObjectStore","dbp","txMode","objectStore","defaultGetStoreFunc","defaultGetStore","customStore","store","put","eachCursor","openCursor","continue","getAllKeys","cursor","JSONStringify","JSONParse","serializedData","safeJsonParse","safeJsonStringify","_$8","indexedDb","getEntries","__defineGetter__","K$3","O","h$7","initialized","setInitialized","fallback","levelVal","wrap$1","O$5","nodeValue","sizeInBytes","d$6","lengthInNodes","maxSizeInBytes","toOrderedArray","levelValue","MAX_LOG_SIZE_IN_BYTES","forwardToConsole","appendToLogs","getLogs","clearLogs","getLogArray","logsToBlob","extraMetadata","m$3","baseChunkLogger","downloadLogsBlobInBrowser","download","click","B$3","T$5","z$7","chunkLoggerController","loggerOverride","browser$2","BrowserRandomSource","QUOTA","isAvailable","isInstantiated","browserCrypto","wipe","wipe_1","wipe$1","NodeRandomSource","nodeCrypto","system","SystemRandomSource","browser_1","node_1","_source","isSafeInteger","int_1","readInt64BE","readUint64BE","readInt64LE","readUint64LE","writeUint64BE","writeUint64LE","readFloat32BE","getFloat32","readFloat32LE","readFloat64BE","getFloat64","readFloat64LE","writeFloat32BE","setFloat32","writeFloat32LE","writeFloat64BE","setFloat64","writeFloat64LE","writeInt64LE","randomStringForEntropy","randomUint32","defaultRandomSource","system_1","binary_1","ALPHANUMERIC","randomString","charset","charsLen","maxByte","randomByte","DIGEST_LENGTH","BLOCK_SIZE","_stateHi","_stateLo","_tempHi","_tempLo","_bufferLength","_bytesHashed","_finished","_initState","clean","dataLength","dataPos","hashBlocks","bytesHashed","bitLenHi","bitLenLo","saveState","stateHi","stateLo","bufferLength","restoreState","savedState","cleanSavedState","convertSecretKeyToX25519","convertPublicKeyToX25519","extractPublicKeyFromSecretKey","generateKeyPairFromSeed","SEED_LENGTH","SECRET_KEY_LENGTH","PUBLIC_KEY_LENGTH","SIGNATURE_LENGTH","random_1","sha512_1","verify32","square","edadd","hs","JWT_IRIDIUM_ALG","JWT_IRIDIUM_TYP","JWT_DELIMITER","JWT_ENCODING","JSON_ENCODING","DATA_ENCODING","DID_DELIMITER","DID_PREFIX","DID_METHOD","MULTICODEC_ED25519_ENCODING","MULTICODEC_ED25519_BASE","MULTICODEC_ED25519_HEADER","KEY_PAIR_SEED_LENGTH","arrays","curr","BASE_MAP","LEADER","FACTOR","iFACTOR","decodeUnsafe","psz","zeroes","b256","it3","it4","vch","pbegin","pend","b58","it1","it2","repeat","_brrp__multiformats_scope_baseX","Encoder","baseEncode","Decoder","baseDecode","prefixCodePoint","ComposedDecoder","Codec","baseX","basex","bitsPerChar","rfc4648","identity","base2","base8","base10","base16","base16upper","base32upper","base32pad","base32padupper","base32hex","base32hexupper","base32hexpad","base32hexpadupper","base32z","base36","base36upper","base58btc","base58flickr","base64pad","base64urlpad","alphabetBytesToChars","alphabetCharsToBytes","byts","byt","base256emoji","bases","identityBase","createCodec","ascii","BASES","latin1","decodeJSON","encodeJSON","encodeIss","multicodec","encodeSig","decodeSig","encodeData","encodeJWT","decodeJWT","jwt","ed25519.generateKeyPairFromSeed","signJWT","aud","ttl","iat","typ","iss","ed25519.sign","getFromWindow","getFromWindowOrThrow","getDocumentOrThrow","getDocument","cjs","cjs$6","getLocalStorage","getLocalStorageOrThrow","getCrypto","getLocation_1","getLocation","getLocationOrThrow","getNavigator_1","getNavigator","getNavigatorOrThrow","getDocument_1","getCryptoOrThrow","cjs$5","getWindowMetadata","window_getters_1","doc","loc","getWindowMetadataOfAny","metaTags","getElementsByTagName","getName","icons","links","link","rel","absoluteHref","pathname","absoluteUrl","getIcons","strictUriEncode","singleMatcher","multiMatcher","decodeComponents","customDecodeURIComponent","replaceMap","decodeUriComponent","encodedURI","splitOnFirst","separator","separatorIndex","filterObj","predicate","isArr","createCommonjsModule","basedir","commonjsRequire","decodeComponent","filterObject","encodeFragmentIdentifier","validateArrayFormatSeparator","keysSorter","removeHash","hashStart","extract","queryStart","parseValue","parseNumbers","parseBooleans","arrayFormat","arrayFormatSeparator","formatter","accumulator","isEncodedArray","arrayValue","parserForArrayFormat","shouldFilter","skipNull","skipEmptyString","keyValueSep","encoderForArrayFormat","objectCopy","parseUrl","url_","parseFragmentIdentifier","fragmentIdentifier","stringifyUrl","queryFromUrl","parsedQueryFromUrl","queryString","getHash","pick","exclude","exclusionFilter","assert$i","utils_1","utils_1$1","assert$1","BaseCurve$2","BasePoint$2","inherits_browser","assert$2","base$2","short_1","ShortCurve$2","Point$6","JPoint$2","curve_1","curves_1","crash","HmacDRBG$2","assert$3","KeyPair$8","assert$3$1","assert$4","Signature$8","constructLength$2","assert$5","EC$2","signature$1","assert$5$1","elliptic_1","EC$1","_curve","getCurve","SigningKey","_addPoint","p0","signDigest","digestBytes","computeSharedSecret","otherKey","otherKeyPair","computePublicKey","isSigningKey","_isSigningKey","recoverPublicKey","compressed","TransactionTypes","computeAddress","recoverAddress","chacha","ROUNDS","core","streamXOR","nonceInplaceCounterLength","nc","counterLength","incrementCounter","select","resultIfOne","resultIfZero","lessOrEqual","constantTime","constant_time_1","Poly1305","_leftover","_fin","_blocks","oneTimeAuth","chacha_1","poly1305_1","KEY_LENGTH","NONCE_LENGTH","TAG_LENGTH","ChaCha20Poly1305","plaintext","associatedData","authKey","resultLength","_authenticate","sealed","calculatedTag","tagOut","isSerializableHash","hash$2","hmac_1","hash_1","HMAC","_inner","_outer","_innerKeyedState","_outerKeyedState","hmac$1","hkdf","HKDF","_counter","_info","okm","_bufpos","_fillBuffer","HKDF_1","_temp","sharedKey","scalarMultBase","SHARED_KEY_LENGTH","mySecretKey","theirPublicKey","rejectZero","BaseCurve$1","BasePoint$1","Base$5","ShortCurve$1","Point$5","JPoint$1","Base$4","MontCurve$1","Point$4","Base$3","assert$f","EdwardsCurve$1","Point$3","secp256k1$1","KeyPair$7","assert$e","Signature$7","constructLength$1","assert$c","KeyPair$5","assert$b","Signature$5","EDDSA$1","waku","publish","batchPublish","batchSubscribe","subscription","batchUnsubscribe","batchFetchMessages","irn","iridium","Vn","INVALID_METHOD","INVALID_EVENT","INVALID_UPDATE_REQUEST","INVALID_EXTEND_REQUEST","INVALID_SESSION_SETTLE_REQUEST","UNAUTHORIZED_METHOD","UNAUTHORIZED_EVENT","UNAUTHORIZED_UPDATE_REQUEST","UNAUTHORIZED_EXTEND_REQUEST","USER_REJECTED","USER_REJECTED_CHAINS","USER_REJECTED_METHODS","USER_REJECTED_EVENTS","UNSUPPORTED_CHAINS","UNSUPPORTED_METHODS","UNSUPPORTED_EVENTS","UNSUPPORTED_ACCOUNTS","UNSUPPORTED_NAMESPACE_KEY","USER_DISCONNECTED","SESSION_SETTLEMENT_FAILED","WC_METHOD_UNSUPPORTED","PARSE_ERROR","INVALID_REQUEST","METHOD_NOT_FOUND","INVALID_PARAMS","INTERNAL_ERROR","SERVER_ERROR","RESERVED_ERROR_CODES","STANDARD_ERROR_MAP","DEFAULT_ERROR","isReservedErrorCode","getError","getErrorByCode","find","parseConnectionError","getBrowerCrypto","getSubtleCrypto","webkitSubtle","isBrowserCryptoAvailable","isReactNative","payloadId","getBigIntRpcId","formatJsonRpcRequest","jsonrpc","formatJsonRpcResult","formatJsonRpcError","formatErrorMessage","n$8","WS_REGEX","getUrlProtocol","matchRegexProtocol","isWsUrl","isLocalhostUrl","isJsonRpcPayload","isJsonRpcRequest","isJsonRpcResponse","isJsonRpcResult","isJsonRpcError","o$8","hasRegisteredEventListeners","connection","setConnection","registerEventListeners","connect","disconnect","requestStrict","onPayload","onClose","HASH_UNDEFINED","argsTag","arrayTag","boolTag","dateTag","errorTag","funcTag","mapTag","numberTag","objectTag","promiseTag","regexpTag","setTag","stringTag","symbolTag","weakMapTag","arrayBufferTag","dataViewTag","reIsHostCtor","reIsUint","typedArrayTags","freeGlobal","freeSelf","freeExports","nodeType","freeModule","moduleExports","freeProcess","nodeUtil","nodeIsTypedArray","arraySome","mapToArray","setToArray","uid","arrayProto","funcProto","objectProto","coreJsData","funcToString","maskSrcKey","IE_PROTO","nativeObjectToString","reIsNative","symToStringTag","nativeGetSymbols","nativeIsBuffer","nativeKeys","getNative","nativeCreate","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","ListCache","MapCache","SetCache","__data__","Stack","arrayLikeKeys","isArg","isBuff","isType","skipIndexes","iteratee","baseTimes","isIndex","assocIndexOf","baseGetTag","unmasked","getRawTag","baseIsArguments","isObjectLike","baseIsEqual","bitmask","customizer","equalFunc","objIsArr","othIsArr","objTag","getTag","othTag","objIsObj","othIsObj","isSameTag","equalArrays","isPartial","stacked","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","objProps","objLength","othProps","othLength","skipCtor","objValue","othValue","compared","objCtor","othCtor","equalObjects","baseIsEqualDeep","baseIsNative","isMasked","baseKeys","Ctor","arrValue","othIndex","keysFunc","symbolsFunc","arrayPush","baseGetAllKeys","getSymbols","getMapData","pairs","LARGE_ARRAY_SIZE","resIndex","arrayFilter","ctorString","isLength","baseUnary","unfetch_module","blob","onload","ut","Dt","ct","ht","lt$2","dt$2","pt$3","ft$1","dt","Et","wt","Ct","mt","vt","At","_t","xt","Rt","Ft","Tt","It","qt","Ut","Ot","St","Pt","Nt","$t","Bt","zt","jt","Mt","Lt","Kt","Vt","kt","Jt","Xt","Gt","Ht","Yt","Qt","Zt","Wt","oe","ir","nr","ur","ue","Dr","lr","pr","fr","gr","Er","ae","De","ce","yr","yr$2","he","wr","wr$2","Cr","mr","vr","de","Ar","pe","xr","Rr","n$7","h$6","g$5","relayer","u$4","x$5","y$6","projectId","C$5","telemetryEnabled","S$7","M$5","__spreadArray","BrowserInfo","os","SearchBotDeviceInfo","bot","BotInfo","ReactNativeInfo","SEARCHBOX_UA_REGEX","SEARCHBOT_OS_REGEX","REQUIRED_VERSION_PARTS","userAgentRules","operatingSystemRules","detect","parseUserAgent","getNodeVersion","matchUserAgent","ua","matched","uaMatch","matchedRule","versionParts","createVersionParts","detectOS","searchBotMatch","ii","getWindowMetadata_1","Base$2","Point$2","inherits$2","Base$1","Point$1","assert$6","KeyPair$3","Signature$3","KeyPair$1","Signature$1","namespace","Ke","Le","Fe","vt$1","bt$1","qe","reactNative","unknown","He","je","Application","applicationId","We","q.parse","q.stringify","it","Je","Platform","OS","ot","ze","Te","Ge","relayUrl","sdkVersion","useOnCloseEvent","bundleId","$","fromEntries","Ie","wcDeepLink","Xe","hasFocus","en","Linking","openURL","nn","randomUUID","IS_VITEST","TelegramWebviewProxy","Telegram","TelegramWebviewProxyProto","tn","rn","Pe","Zt$1","Xt$1","an","un","ln","fe","cacao","statement","nbf","requestId","resources","hn","yn","att","localeCompare","ability","action","eip155","ve","wn","be","_e.generateKeyPair","_e.sharedKey","Ce","Ue","Ee","senderPublicKey","we","Ae","symKey","te","On","receiverPublicKey","Or","Nn","Sr","$r","Sn","Ir","relay","jr","Tr","Pr","$n","Ur","Rn","In","Cr$1","Ur$1","jn","kr","Tn","expiryTimestamp","Pn","Un","_n","kn","xn","Jr","Mn","NOT_INITIALIZED","NO_MATCHING_KEY","RESTORE_WILL_OVERRIDE","RESUBSCRIBED","MISSING_OR_INVALID","EXPIRED","UNKNOWN_TYPE","MISMATCHED_TOPIC","NON_CONFORMING_NAMESPACES","requiredNamespaces","F","Kn","Gr","Yr","proposer","Qr","Zr","Se","Ln","Fn","qn","Bn","Hn","$e","Xr","Wn","Jn","eo","no","oo","so","co","ao","uo","zn","fo","Gn","po","mo","Yn","Qn","Zn","onLine","NetInfo","ho","Xn","global$1","Re","yo","WebSocket","f$5","registering","socket","connecting","register","resetMaxListeners","rejectUnauthorized","emitError","onopen","onOpen","onmessage","parseError","Ye","database","Ze","Qe","Ni","message_ack","connection_stalled","transport_closed","link_mode","created","expired","resubscribed","wc_pairingDelete","prompt","wc_pairingPing","unregistered_method","expire","updated","J","pairing_started","pairing_uri_validation_success","pairing_uri_not_expired","store_new_pairing","subscribing_pairing_topic","subscribe_pairing_topic_success","existing_pairing","pairing_not_expired","emit_inactive_pairing","emit_session_proposal","subscribing_to_pairing_topic","no_wss_connection","no_internet_connection","malformed_pairing_uri","active_pairing_already_exists","subscribe_pairing_topic_failure","pairing_expired","proposal_expired","proposal_listener_not_found","Is","session_approve_started","proposal_not_expired","session_namespaces_validation_success","create_session_topic","subscribing_session_topic","subscribe_session_topic_success","publishing_session_approve","session_approve_publish_success","store_session","publishing_session_settle","session_settle_publish_success","Ts","subscribe_session_topic_failure","session_approve_publish_failure","session_settle_publish_failure","session_approve_namespace_validation_failure","proposal_not_found","Cs","authenticated_session_approve_started","authenticated_session_not_expired","chains_caip2_compliant","chains_evm_compliant","create_authenticated_session_topic","cacaos_verified","store_authenticated_session","subscribing_authenticated_session_topic","subscribe_authenticated_session_topic_success","publishing_authenticated_session_approve","authenticated_session_approve_publish_success","Ps","missing_session_authenticate_request","session_authenticate_request_expired","chains_caip2_compliant_failure","chains_evm_compliant_failure","invalid_cacao","subscribe_authenticated_session_topic_failure","authenticated_session_approve_publish_failure","authenticated_session_pending_request_not_found","Ss","Rs","Os","As","Ns","Ls","$s","Ms","Us","Fs","Ks","Bs","Vs","js","qs","Gs","Hs","Ys","Js","Xs","Ws","Zs","Qs","Lr","Mr","Fr","Kr","Br","Vr","qr","Hr","Wr","keychain","storagePrefix","getKeyChain","isInitialized","persist","storageKey","customStoragePrefix","setKeyChain","randomSessionIdentifier","hasKeys","getClientId","te.encodeIss","te.generateKeyPair","getClientSeed","$i","te.signJWT","generateSharedKey","setSymKey","Mi","deleteKeyPair","deleteSymKey","Ui","Li","Oe","Fi","getSymKey","Ki","Bi","ji","getPayloadType","qi","Ne","getPayloadSenderPublicKey","ls","Gi","getRelayerMessages","setRelayerMessages","publishTimeout","failedPublishTimeout","needsTransportRestart","Be","attestation","rpcPublish","internal","throwOnFailedPublish","direction","removeRequestFromQueue","checkQueue","exists","Ii","subscriptions","topicMap","cached","pendingSubscriptionWatchLabel","pollingInterval","subscribeTimeout","restartInProgress","batchSubscribeTopicsLimit","pendingBatchMessages","clientId","transportType","rpcSubscribe","onSubscribe","restartToComplete","unsubscribeById","unsubscribeByTopic","isSubscribed","onConnect","onDisconnect","restart","hasSubscription","getSubscription","onEnable","onDisable","rpcUnsubscribe","onUnsubscribe","rpcBatchSubscribe","rpcBatchFetchMessages","setSubscription","onBatchSubscribe","deleteSubscription","setRelayerSubscriptions","getRelayerSubscriptions","addSubscription","checkPending","handleBatchMessageEvents","transportOpen","ti","Ti","transportExplicitlyClosed","connectionAttemptInProgress","connectionStatusPollingInterval","staleConnectionErrors","hasExperiencedNetworkDisruption","requestsInFlight","heartBeatTimeout","toEstablishConnection","resetPingTimeout","pingTimeout","onPayloadHandler","onProviderPayload","onConnectHandler","startPingTimeout","onDisconnectHandler","onProviderDisconnect","onProviderErrorHandler","transportClose","registerProviderListeners","subscriber","publisher","Yi","recordMessageEvent","publishedAt","transportDisconnect","confirmOnlineStateOrThrow","createProvider","finally","reconnectTimeout","isConnectionStalled","restartTransport","onMessageEvent","onLinkMessageEvent","sessionExists","active","pairing","pairings","unregisterProviderListeners","us","gs","Ji","shouldIgnoreMessageEvent","Ve","acknowledgePayload","Xi","ri","Ci","recentlyDeleted","recentlyDeletedLimit","Wi","getData","getAll","addToRecentlyDeleted","setDataStore","getDataStore","oi","ignoredPayloadTypes","Qi","registeredMethods","registerRelayerEvents","registerExpirerEvents","ke","expirer","eventClient","createEvent","isValidPair","Me","addTrace","setError","activatePairing","activate","isValidPing","sendRequest","es","updateExpiry","updateMetadata","peerMetadata","getPairings","isValidDisconnect","deletePairing","formatUriFromPairing","history","sendResult","sendError","onRelayEventRequest","onPairingPingRequest","onPairingDeleteRequest","onUnknownRpcMethodRequest","onRelayEventResponse","onPairingPingResponse","onUnknownRpcMethodResponse","isValidPairingTopic","is","Pi","setJsonRpcRecords","getJsonRpcRecords","Si","expirations","formatTarget","getExpiration","checkExpiry","expiration","setExpirations","getExpirations","cjs$7","checkExpirations","ci","Ri","verifyUrlV3","isDevEnv","storeKey","expiresAt","removePublicKey","decryptedId","Ds","startAbortTimer","abortController","attestationId","encryptedId","isValidJwtAttestation","isVerified","getVerifyUrl","verifyUrl","fetchAttestation","fetchPublicKey","persistPublicKey","validateAttestation","fetchAndPersistPublicKey","fetchPromise","as","hasExpired","isScam","registerDeviceToken","notificationType","enableEncrypted","client_id","always_raw","ui","pn","di","pi","Oi","storageVersion","shouldPersist","eventId","getAppDomain","user_agent","sendEvent","setMethods","getEvent","deleteEvent","setEventListeners","submit","gi","Dn","mn","Di","Ai","dispatchEnvelope","Ei","maxLogBlobSizeInBytes","logChunkController","bi","fi","storageOptions","echoClient","linkModeSupportedApps","getLogsBlob","addLinkModeSupportedApp","wc_sessionPropose","autoReject","wc_sessionSettle","wc_sessionUpdate","wc_sessionExtend","wc_sessionRequest","wc_sessionEvent","wc_sessionDelete","wc_sessionPing","wc_sessionAuthenticate","idle","Es","requestQueue","sessionRequestQueue","requestQueueDelay","expectedPairingMethodMap","recentlyDeletedMap","relayMessageCache","registerPairingEvents","registerLinkModeListeners","getPendingSessionRequests","processSessionRequestQueue","optionalNamespaces","isValidConnect","pairingTopic","sessionProperties","relays","setExpiry","peer","cleanupDuplicatePairings","setProposal","approve","isValidProposalId","isValidApprove","relayProtocol","sessionConfig","proposal","acknowledged","responderPublicKey","isValidReject","rpcOpts","isValidUpdate","clientRpcId","relayRpcId","isValidExtend","isValidRequest","getAppLinkIfEnabled","appLink","disableDeepLink","respond","isValidRespond","cleanupAfterResponse","isValidEmit","deleteSession","emitEvent","pendingRequest","authenticate","isValidAuthenticate","redirect","linkMode","authKeys","responseTopic","pairingTopics","authPayload","requester","deleteProposal","deletePendingAuthRequest","cacaos","responder","universal","auths","setAuthRequest","verifyContext","approveSessionAuthenticate","getPendingAuthRequest","authentication","requests","rejectSessionAuthenticate","formatAuthMessage","processRelayMessageCache","onRelayMessage","expirerHasDeleted","deletePendingSessionRequest","setPendingSessionRequest","processRequestsQueue","processRequest","shouldIgnorePairingRequest","requestMethod","onSessionProposeRequest","onSessionSettleRequest","onSessionUpdateRequest","onSessionExtendRequest","onSessionPingRequest","onSessionDeleteRequest","onSessionRequest","onSessionEventRequest","onSessionAuthenticateRequest","onSessionProposeResponse","onSessionSettleResponse","onSessionUpdateResponse","onSessionExtendResponse","onSessionPingResponse","onSessionRequestResponse","onSessionAuthenticateResponse","onRelayEventUnknownPayload","getVerifyContext","selfPublicKey","peerPublicKey","sessionTopic","subscriptionId","isValidSessionSettleRequest","isRequestOutOfSync","cleanupPendingSentRequestsForTopic","signConfig","disableRequestQueue","emitSessionRequest","addSessionRequestToSessionRequestQueue","onPairingCreated","validateNamespaces","validateSessionProps","checkRecentlyDeleted","isValidSessionTopic","isValidSessionOrPairingTopic","validation","isLinkModeEnabled","handleLinkModeMessage","getInitialURL","fs","engine","c$5","o$7","getLocalStorage_1","getLocalStorageOrThrow_1","getCrypto_1","getCryptoOrThrow_1","getLocationOrThrow_1","getNavigatorOrThrow_1","getDocumentOrThrow_1","getFromWindowOrThrow_1","getFromWindow_1","detectEnv","isAndroid","isIOS","maxTouchPoints","isMobile","windowGetters.getFromWindow","windowGetters.getFromWindowOrThrow","windowGetters.getDocumentOrThrow","windowGetters.getDocument","windowGetters.getNavigatorOrThrow","windowGetters.getNavigator","windowGetters.getLocationOrThrow","windowGetters.getLocation","windowGetters.getCryptoOrThrow","windowGetters.getCrypto","windowGetters.getLocalStorageOrThrow","windowGetters.getLocalStorage","getClientMeta","windowMetadata.getWindowMetadata","safeJson.safeJsonParse","safeJson.safeJsonStringify","setLocal","local","getLocal","removeLocal","mobileLinkChoiceKey","formatIOSMobile","encodedUri","universalLink","deepLink","saveMobileLinkInfo","focusUri","getMobileRegistryEntry","registry","getMobileLinkRegistry","whitelist","API_URL","getWalletRegistryUrl","getDappRegistryUrl","formatMobileRegistryEntry","color","primary","logo","image_url","native","formatMobileRegistry","canPromise","isarray","isnan","species","sliceLen","typedarrayBuffer","toSJISFunction","CODEWORDS_COUNT","utils$3","getSymbolSize","getSymbolTotalCodewords","getBCHDigit","digit","setToSJISFunction","isKanjiModeEnabled","toSJIS","kanji","BitBuffer","isValid","BitBuffer$3","bufIndex","putBit","getLengthInBits","bitBuffer","BufferUtil","BitMatrix","reservedBit","BitMatrix$3","isReserved","bitMatrix","getRowColCoords","posCount","intervals","positions","getPositions","coords","posLength","FINDER_PATTERN_SIZE","finderPattern$1","Patterns","PATTERN000","PATTERN001","PATTERN010","PATTERN011","PATTERN100","PATTERN101","PATTERN110","PATTERN111","PenaltyScores","getMaskAt","maskPattern","getPenaltyN1","sameCountCol","sameCountRow","lastCol","lastRow","getPenaltyN2","getPenaltyN3","bitsCol","bitsRow","getPenaltyN4","darkCount","modulesCount","applyMask","pattern","getBestMask","setupFormatFunc","numPatterns","bestPattern","lowerPenalty","penalty","ECLevel","EC_BLOCKS_TABLE","EC_CODEWORDS_TABLE","errorCorrectionCode$1","getBlocksCount","errorCorrectionLevel","getTotalCodewordsCount","EXP_TABLE","LOG_TABLE","galoisField$1","GF","coeff","divident","generateECPolynomial","degree","poly","Polynomial","ReedSolomonEncoder","genPoly","ReedSolomonEncoder$3","paddedData","reedSolomonEncoder","versionCheck$1","numeric","alphanumeric","regex$1","KANJI","BYTE_KANJI","BYTE","NUMERIC","TEST_KANJI","TEST_NUMERIC","TEST_ALPHANUMERIC","testKanji","testNumeric","testAlphanumeric","VersionCheck","Regex","ccBits","MIXED","getCharCountIndicator","getBestModeForData","dataStr","Utils","ECCode","Mode","G18_BCH","getReservedBitsCount","getTotalBitsFromDataArray","segments","totalBits","reservedBits","getBitsLength","getCapacity","dataTotalCodewordsBits","usableBits","getBestVersionForData","seg","ecl","currentVersion","getBestVersionForMixedData","getBestVersionForDataLength","getEncodedBits","G15","G15_MASK","G15_BCH","formatInfo$1","NumericData","NumericData$1","remainingNum","numericData","ALPHA_NUM_CHARS","AlphanumericData","AlphanumericData$1","alphanumericData","ByteData","ByteData$1","byteData","KanjiData","KanjiData$1","kanjiData","dijkstra","single_source_shortest_paths","graph","predecessors","costs","closest","cost_of_s_to_u","adjacent_nodes","cost_of_s_to_u_plus_cost_of_e","cost_of_s_to_v","PriorityQueue","make","extract_shortest_path_from_predecessor_list","find_path","sorter","default_sorter","getStringByteLength","getSegments","getSegmentsFromString","byteSegs","kanjiSegs","numSegs","alphaNumSegs","getSegmentBitsLength","buildSingleSegment","modesHint","bestMode","segs","buildNodes","prevNodeIds","nodeGroup","currentNodeIds","lastCount","prevNodeId","buildGraph","optimizedSegs","prevSeg","mergeSegments","rawSplit","AlignmentPattern","FinderPattern","MaskPattern","FormatInfo","Segments","setupFinderPattern","matrix","setupTimingPattern","setupAlignmentPattern","setupVersionInfo","setupFormatInfo","setupData","inc","bitIndex","byteIndex","dark","createData","remainingByte","createCodewords","totalCodewords","dataTotalCodewords","ecTotalBlocks","blocksInGroup1","totalCodewordsInGroup1","dataCodewordsInGroup1","dataCodewordsInGroup2","ecCount","dcData","ecData","maxDataSize","dataSize","createSymbol","estimatedVersion","rawSegments","bestVersion","dataBits","moduleCount","modules","setupFormatInfo$1","MaskPattern$1","qrcode$1","toSJISFunc","Utils$5","hex2rgba","hexCode","hexValue","getOptions","margin","scale","light","rendererOpts","getScale","qrSize","getImageWidth","qrToImageData","imgData","symbolSize","scaledMargin","palette","posDst","pxColor","render","qrData","canvas","canvasEl","getContext","getCanvasElement","image","createImageData","clearRect","height","clearCanvas","putImageData","renderToDataURL","toDataURL","quality","getColorAttrib","attrib","svgCmd","cmd","qrToPath","moveBy","newRow","lineLength","svgTag$1","qrcodesize","bg","viewBox","svgTag","QRCode","CanvasRenderer","SvgRenderer","renderCanvas","renderFunc","argsNum","isLastArgCb","browser$1","toCanvas","toggleSelection","selection","getSelection","rangeCount","activeElement","ranges","getRangeAt","tagName","blur","removeAllRanges","addRange","focus","deselectCurrent","clipboardToIE11Formatting","defaultMessage","copyKey","reselectPrevious","mark","success","createRange","textContent","ariaHidden","top","clip","whiteSpace","webkitUserSelect","MozUserSelect","msUserSelect","userSelect","preventDefault","clipboardData","clearData","setData","onCopy","selectNodeContents","execCommand","removeRange","copyToClipboard","parentNode","defaultProps","__k","__b","__e","__d","__c","__v","vnode","debounceRendering","__P","__n","ownerSVGElement","nextSibling","insertBefore","setProperty","cssText","removeAttributeNS","setAttributeNS","removeAttribute","contextType","__E","__h","__s","getDerivedStateFromProps","componentWillMount","componentDidMount","componentWillReceiveProps","shouldComponentUpdate","componentWillUpdate","componentDidUpdate","__r","getChildContext","getSnapshotBeforeUpdate","diffed","n$6","createTextNode","createElementNS","childNodes","dangerouslySetInnerHTML","__html","innerHTML","componentWillUnmount","Consumer","getDerivedStateFromError","componentDidCatch","forceUpdate","__H","i$4","useDebugValue","o$5","requestAnimationFrame","cancelAnimationFrame","isPureReactComponent","isReactComponent","displayName","only","__u","revealOrder","container","m$2","firstChild","isPropagationStopped","isDefaultPrevented","nativeEvent","class","$$typeof","className","multiple","selected","ondoubleclick","ondblclick","onbeforeinput","onchange","oninput","compat_module","useState","useReducer","useEffect","useLayoutEffect","useRef","useImperativeHandle","useMemo","useCallback","useContext","Children","hydrate","unmountComponentAtNode","createPortal","createFactory","cloneElement","createRef","Fragment","isValidElement","findDOMNode","Component","PureComponent","forwardRef","unstable_batchedUpdates","Suspense","SuspenseList","lazy","_interopDefault","browserUtils","React","WALLETCONNECT_STYLE_SHEET","_catch","recover","WALLETCONNECT_LOGO_SVG_URL","WALLETCONNECT_HEADER_TEXT","ANIMATION_DURATION","DEFAULT_BUTTON_COLOR","WALLETCONNECT_WRAPPER_ID","WALLETCONNECT_STYLE_ID","WALLETCONNECT_MODAL_ID","WALLETCONNECT_CLOSE_BUTTON_ID","WALLETCONNECT_CTA_TEXT_ID","WALLETCONNECT_CONNECT_BUTTON_ID","Header","onClick","ConnectButton","backgroundColor","CARET_SVG_URL","WalletButton","background","backgroundSize","WalletIcon","fontSize","innerWidth","GRID_MIN_COUNT","LINKS_PER_PAGE","LinkDisplay","android","setInput","ref$1","setFilter","ref$2","page","setPage","grid","pages","pageLinks","hasPaging","filterTimeout","connect_mobile_wallet","choose_preferred_wallet","placeholder","handleClickIOS","no_wallets_found","loading","pageNumber","fontWeight","Notification","show","formatQRCodeImage","dataString","QRCodeDisplay","notification","setNotification","svg","setSvg","_formatQRCodeImage","scan_qrcode_with_wallet","copied_to_clipboard","copy_to_clipboard","Modal","mobile","qrcodeModalOptions","mobileLinks","desktopLinks","setLoading","fetched","setFetched","displayQRCode","setDisplayQRCode","displayProps","ref$3","singleLinkHref","setSingleLinkHref","ref$4","hasSingleLink","setHasSingleLink","ref$5","setLinks","ref$6","setErrorMessage","getLinksIfNeeded","registryUrl","registryResponse","_registryResponse$jso","listings","_links","no_supported_wallets","something_went_wrong","initLinks","rightSelected","connect_with","qrcode","desktop","ko","fa","languages","injectStyleSheet","getElementById","innerText","renderWrapper","wrapper","triggerCloseAnimation","modal","getWrappedCallback","getText","lang","language","open$1","close$1","open$2","close$2","c$2","proxyStateMap","refSet","buildProxyFunction","objectIs","newProxy","canProxy","defaultHandlePromise","snapCache","createSnapshot","handlePromise","snap","markToTrack","target2","ensureVersion","preventExtensions","proxyCache","versionHolder","proxyFunction","initialObject","notifyUpdate","nextVersion","checkVersion","createPropListener","newOp","propProxyStates","removePropListener","baseObject","proxyObject","deleteProperty","prevValue","hasPrevValue","getUntracked","nextValue","childProxyState","propProxyState","addPropListener","proxyState","nextCheckVersion","propVersion","prevRemove","defaultProxyFunction","proxy","notifyInSync","isListenerActive","snapshot","state$7","RouterCtrl","goBack","CoreUtil","WALLETCONNECT_DEEPLINK_CHOICE","WCM_VERSION","RECOMMENDED_WALLET_AMOUNT","matchMedia","isIos","isHttpUrl","isTelegram","formatNativeUrl","appUrl","wcUri","formatUniversalUrl","safeAppUrl","replaceAll","setWalletConnectDeepLink","formattedUri","openHref","adjustedTarget","setWalletConnectAndroidDeepLink","removeWalletConnectDeepLink","setModalVersionInStorage","getWalletRouterData","routerData","isEnabled","hostname","state$6","userSessionId","connectedWalletId","EventsCtrl","setConnectedWalletId","state$5","walletConnectUri","isAuth","isCustomDesktop","isCustomMobile","isDataLoaded","isUiLoaded","OptionsCtrl","setChains","setWalletConnectUri","setIsCustomDesktop","setIsCustomMobile","setIsDataLoaded","setIsUiLoaded","setIsAuth","state$4","mobileWallets","desktopWallets","walletImages","enableAuthMode","enableExplorer","explorerExcludedWalletIds","explorerRecommendedWalletIds","termsOfServiceUrl","privacyPolicyUrl","ConfigCtrl","setConfig","__defProp$2","__getOwnPropSymbols$2","__hasOwnProp$2","__propIsEnum$2","__defNormalProp$2","__spreadValues$2","W3M_API","SDK_TYPE","SDK_VERSION","fetchListings","allParams","sdkType","ExplorerUtil","getWalletImageUrl","imageId","getAssetImageUrl","__defProp$1","__getOwnPropSymbols$1","__hasOwnProp$1","__propIsEnum$1","__defNormalProp$1","__spreadValues$1","state$3","wallets","recomendedWallets","ExplorerCtrl","getRecomendedWallets","recommendedIds","getAllListings","listingsArr","chainsFilter","isExcluded","sdks","excludedIds","getMobileListings","getDesktopListings","getWallets","extendedParams","wallet","listingsObj","resetSearch","state$2","ModalCtrl","__defProp","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","__spreadValues","isDarkMode","state$1","themeMode","ThemeCtrl","setThemeConfig","theme","themeVariables","variant","ToastCtrl","openToast","closeToast","WalletConnectModal","openModal","closeModal","subscribeModal","setTheme","initUi","insertAdjacentElement","DefaultLogger$1","getLogLevel","SessionNotFoundError","clients","DAppSigner","signClient","extensionId","DefaultLogger","_getHederaClient","ledgerIdString","_signerAccountId","_getRandomNodes","numberOfNodes","allNodes","getMetadata","signOptions","messageToSign","SignMessage","signerAccountId","sigmap","signerSignature","transactionBodyBase64","SignTransaction","_tryExecuteTransactionRequest","requestToBytes","SignAndExecuteTransaction","_parseQueryResponse","base64EncodedQueryResponse","executeReceiptQueryFromRequest","_tryExecuteQueryRequest","isReceiptQuery","SignAndExecuteQuery","txResult","queryResult","queryError","txError","DAppConnector","supportedMethods","supportedEvents","supportedChains","onSessionIframeCreated","isInitializing","abortableConnect","pairTimeoutMs","QRCodeModal","dAppMetadata","walletConnectModal","availableInIframe","walletConnectClient","SignClient","existingSessions","flatMap","createSigners","checkIframeConnect","handleSessionEvent","handleSessionUpdate","handleSessionDelete","handlePairingDelete","getSigner","connectQR","connectURI","onSessionConnected","launchCallback","connectExtension","validateSession","hasSigner","validateAndRefreshSigners","getSdkError","disconnectAll","sessions","disconnectionPromises","newSigners","newSigner","existingSigners","currentSigner","matchingAccountId","matchingExtensionId","newSignerMetadata","existingSignerMetadata","metadataNameMatch","existingSigner","actualAccountId","getNodeAddresses","GetNodeAddresses","executeTransaction","ExecuteTransaction","signMessage","signAndExecuteQuery","signAndExecuteTransaction","accountSigner","_session","updatedSession","deletedSigner","isPositiveInteger","ArgumentError","retries","retryDelay","retryOn","baseDefaults","wrappedFetch","retryOnResponse","retry","fetchWithRetry","retryFetch","Result","HashinalsWalletConnectSDK","extensionCheckInterval","hasCalledExtensionCallback","dAppConnector","dAppConnectorInstance","chosenNetwork","ChainChanged","AccountsChanged","handleNewSession","ensureInitialized","signer_","disableSigner","executedTx","executeTransactionWithErrorHandling","submitMessageToTopic","transferHbar","fromAccountId","executeSmartContract","functionName","sessionAccount","sessionParts","saveConnectionInfo","getNetworkPrefix","cachedNetwork","requestAccount","accountResponse","cachedAccountId","loadConnectionInfo","cachedSigner","adminWithPrivateKey","mintNFT","getMessages","lastTimestamp","disableTimestampFilter","nextLink","collectedMessages","payer","payer_account_id","consensus_timestamp","sequence_number","nextResult","userSignature","connectedNetwork","cleanNetwork","connectWallet","PROJECT_ID","APP_METADATA","networkPrefix","disconnectWallet","clearStorage","initAccount","networkOverride","savedAccountId","savedNetwork","defaultNetwork","connectViaDappBrowser","subscribeToExtensions","availableExtension","connectToExtension","newExtension","HashgraphSDK","transferToken","associateTokenToAccount","dissociateTokenFromAccount","approveAllowance","getAccountTokens","token_id","formatted_balance","created_timestamp","nextUrl","nextResponse","nextData","getTransaction","getTransactionByTimestamp","transaction_id","getAccountNFTs","nextRequest","token_uri","validateNFTOwnership","serial_number","readSmartContract","fromAccount","estimate","ShadowRoot","ShadyCSS","nativeShadow","Document","CSSStyleSheet","o$4","_$cssResult$","styleSheet","replaceSync","adoptedStyleSheets","litNonce","cssRules","trustedTypes","emptyScript","reactiveElementPolyfillSupport","toAttribute","fromAttribute","converter","reflect","hasChanged","u$1","HTMLElement","_$Ei","isUpdatePending","hasUpdated","_$El","_$Eu","addInitializer","observedAttributes","elementProperties","_$Ep","_$Ev","createProperty","noAccessor","getPropertyDescriptor","requestUpdate","getPropertyOptions","elementStyles","finalizeStyles","_$E_","enableUpdating","_$AL","_$Eg","addController","_$ES","renderRoot","hostConnected","removeController","createRenderRoot","shadowRoot","attachShadow","shadowRootOptions","connectedCallback","disconnectedCallback","hostDisconnected","attributeChangedCallback","_$AK","_$EO","_$EC","_$Ej","scheduleUpdate","performUpdate","shouldUpdate","willUpdate","hostUpdate","_$Ek","_$AE","hostUpdated","firstUpdated","updateComplete","getUpdateComplete","ReactiveElement","reactiveElementVersions","createPolicy","createHTML","createComment","_$litType$","createTreeWalker","currentNode","nextNode","hasAttributes","getAttributeNames","_$Co","_$Cl","_$litDirective$","_$AO","_$AT","_$AS","_$AV","_$AN","_$AD","_$AM","_$AU","creationScope","importNode","_$AI","_$AH","_$AA","_$AB","_$Cp","startNode","endNode","_$AR","_$AC","_$AP","setConnected","passive","handleEvent","litHtmlPolyfillSupport","litHtmlVersions","renderBefore","_$litPart$","renderOptions","_$Do","_$litElement$","litElementHydrateSupport","LitElement","litElementPolyfillSupport","litElementVersions","customElements","elements","finisher","placement","originalKey","initializer","HTMLSlotElement","assignedElements","ATTRIBUTE","CHILD","PROPERTY","BOOLEAN_ATTRIBUTE","EVENT","ELEMENT","_$Ct","_$Ci","classList","addUniqueItem","endDelay","easing","isEasingList","rangeSize","getEasingForSegment","noopReturn","fillOffset","offsetProgress","defaultOffset","interpolate","progressInRange","segmentEasing","isCubicBezier","isEasingGenerator","createAnimation","milliseconds","calcBezier","subdivisionPrecision","subdivisionMaxIterations","binarySubdivide","upperBound","mX1","mX2","currentX","currentT","cubicBezier","mY1","mY2","steps","rounded","namedEasings","ease","functionArgsRegex","getEasingFunction","definition","namedEasing","argsArray","Animation","keyframes","initialDuration","autoplay","cancelTimestamp","totalDuration","playState","updateDuration","interpolate$1","tick","pauseTime","currentIteration","iterationProgress","iterationIsOdd","latest","frameRequestId","play","performance","commitStyles","currentTime","playbackRate","invariant","NODE_ENV","check","MotionValue","setAnimation","animation","clearAnimation","getAnimationData","transforms","getMotionValue","motionValues","axes","transformAlias","rotation","initialValue","toDefaultUnit","baseTransformProperties","translate","rotate","skew","transformDefinitions","asTransformCssVar","axis","compareTransformOrder","transformLookup","isTransform","addTransformToElement","buildTransformTemplate","transformListToString","template","isCssVar","registeredProperties","registerCssVariable","CSS","registerProperty","testAnimation","animate","featureTests","cssRegisterProperty","waapi","Element","partialKeyframes","opacity","linearEasing","supports","resolution","generateLinearEasingPoints","numPoints","convertEasing","cubicBezierAsString","hydrateKeyframes","readInitialValue","keyframesList","getStyleName","getPropertyValue","getComputedStyle","stopAnimation","needsCommit","getUnitConverter","toUnit","finalKeyframe","getDevToolsRecord","__MOTION_DEV_TOOLS_RECORD","animateStyle","keyframesDefinition","AnimationPolyfill","isRecording","allowWebkitAcceleration","valueIsTransform","canAnimateNatively","motionValue","animationOptions","name2","thisEasing","oncancel","resolveElements","selectorCache","querySelectorAll","withControls","animationFactory","animations","controls","getActiveAnimation","activeAnimation","selectFinished","resolveOption","createAnimate","AnimatePolyfill","numElements","animationFactories","valueOptions","animateProgress","keyframesOrOptions","animate$1","utils$1","BitBuffer$1","BitMatrix$1","finderPattern","errorCorrectionCode","galoisField","ReedSolomonEncoder$1","versionCheck","formatInfo","Utils$1","__defProp$y","themeModeVariables","themeModeColors","foreground","overlay","themeVariablesPresets","ThemeUtil","getPreset","querySelector","variables","globalCss","css","styles$t","__defProp$x","__getOwnPropDesc$x","__decorateClass$x","WcmButton","iconLeft","iconRight","textColor","html","classMap","customElement","styles$s","__defProp$w","__getOwnPropDesc$w","__decorateClass$w","WcmButtonBig","styles$r","__defProp$v","__getOwnPropDesc$v","__decorateClass$v","WcmInfoFooter","SvgUtil","CROSS_ICON","WALLET_CONNECT_LOGO","WALLET_CONNECT_ICON","WALLET_CONNECT_ICON_COLORED","BACK_ICON","COPY_ICON","RETRY_ICON","DESKTOP_ICON","MOBILE_ICON","ARROW_DOWN_ICON","ARROW_UP_RIGHT_ICON","ARROW_RIGHT_ICON","QRCODE_ICON","SCAN_ICON","CHECKMARK_ICON","SEARCH_ICON","WALLET_PLACEHOLDER","GLOBE_ICON","styles$q","__defProp$u","__getOwnPropDesc$u","__decorateClass$u","WcmModalBackcard","styles$p","__defProp$t","__getOwnPropDesc$t","__decorateClass$t","WcmModalContent","styles$o","__defProp$s","__getOwnPropDesc$s","__decorateClass$s","WcmModalFooter","styles$n","__defProp$r","__getOwnPropDesc$r","__decorateClass$r","WcmModalHeader","onAction","actionIcon","border","backBtnTemplate","actionBtnTemplate","backBtn","UiUtil","MOBILE_BREAKPOINT","WCM_RECENT_WALLET_DATA","EXPLORER_WALLET_URL","getShadowRootElement","getWalletIcon","image_id","getWalletName","isMobileAnimation","preloadImage","imagePromise","Image","crossOrigin","wait","getErrorMessage","debounce","handleMobileLinking","nativeUrl","universalUrl","setRecentWallet","onRedirect","handleAndroidLinking","handleUriCopy","clipboard","writeText","getCustomImageUrls","walletUrls","getRecentWallet","caseSafeIncludes","str1","str2","openWalletExplorerUrl","getCachedRouterWalletPlatforms","isDesktop","isWeb","goToConnectingView","isMobileDevice","styles$m","__defProp$q","__getOwnPropDesc$q","__decorateClass$q","WcmModalRouter","prevView","oldHeight","resizeObserver","routerState","onChangeRoute","ResizeObserver","conetnt","newHeight","contentRect","routerEl","contentEl","viewTemplate","styles$l","__defProp$p","__getOwnPropDesc$p","__decorateClass$p","WcmModalToast","newState","CONNECTING_ERROR_MARGIN","CIRCLE_SIZE_MODIFIER","QRCODE_MATRIX_MARGIN","isAdjecentDots","cy","otherCy","cellSize","getMatrix","QRCodeUtil","rows","QrCodeUtil","logoSize","dotColor","qrList","dotSize","svg$1","clearArenaSize","matrixMiddleStart","matrixMiddleEnd","circles","cx","circlesToConnect","cys","newCys","groups","styles$k","__defProp$o","__getOwnPropDesc$o","__decorateClass$o","WcmQrCode","walletId","imageUrl","svgTemplate","ifDefined","styles$j","__defProp$n","__getOwnPropDesc$n","__decorateClass$n","WcmSearchInput","styles$i","__defProp$m","__getOwnPropDesc$m","__decorateClass$m","WcmSpinner","styles$h","__defProp$l","__getOwnPropDesc$l","__decorateClass$l","WcmText","styles$g","__defProp$k","__getOwnPropDesc$k","__decorateClass$k","WcmWalletButton","installed","recent","sublabelTemplate","handleClick","styles$f","__defProp$j","__getOwnPropDesc$j","__decorateClass$j","WcmWalletImage","__defProp$i","__getOwnPropDesc$i","__decorateClass$i","WcmExplorerContext","preload","preloadData","loadImages","images","preloadListings","walletImgs","preloadCustomImages","__defProp$h","__getOwnPropDesc$h","__decorateClass$h","WcmThemeContext","unsubscribeTheme","styles$e","__defProp$g","__getOwnPropDesc$g","__decorateClass$g","WcmAndroidWalletSelection","onGoToQrcode","recomendedCount","styles$d","__defProp$f","__getOwnPropDesc$f","__decorateClass$f","WcmConnectorWaiting","isStale","svgLoaderTemplate","radius","numRadius","ICON_SIZE","DataUtil","manualWallets","recentWalletId","recentWallet","platformWallets","skipRecent","TemplateUtil","onConnecting","manualWalletsTemplate","recomendedWalletsTemplate","recentWalletTemplate","styles$c","__defProp$e","__getOwnPropDesc$e","__decorateClass$e","WcmDesktopWalletSelection","isExplorerWallets","manualTemplate","recomendedTemplate","templates","isViewAll","isWallets","styles$b","__defProp$d","__getOwnPropDesc$d","__decorateClass$d","WcmLegalNotice","styles$a","__defProp$c","__getOwnPropDesc$c","__decorateClass$c","WcmMobileWalletSelection","onQrcode","styles$9","__defProp$b","__getOwnPropDesc$b","__decorateClass$b","WcmModal","unsubscribeModal","modalState","onOpenModalEvent","onCloseModalEvent","overlayEl","containerEl","toggleBodyScroll","wcmStyles","insertAdjacentHTML","onCloseModal","currentTarget","addKeyboardEvents","removeKeyboardEvents","styles$8","__defProp$a","__getOwnPropDesc$a","__decorateClass$a","WcmPlatformSelection","isRetry","onMobile","onDesktop","onWeb","styles$7","__defProp$9","__getOwnPropDesc$9","__decorateClass$9","WcmViewAllWalletsButton","reversedWallets","explorerImg","styles$6","__defProp$8","__getOwnPropDesc$8","__decorateClass$8","WcmWalletConnectQr","offsetWidth","__defProp$7","__getOwnPropDesc$7","__decorateClass$7","WcmConnectWalletView","styles$5","__defProp$6","__getOwnPropDesc$6","__decorateClass$6","WcmDesktopConnectingView","openDesktopApp","onFormatAndRedirect","styles$4","__defProp$5","__getOwnPropDesc$5","__decorateClass$5","WcmInstallWalletView","onInstall","homepage","styles$3","__defProp$4","__getOwnPropDesc$4","__decorateClass$4","WcmMobileConnectingView","openMobileApp","forceUniversalUrl","onGoToAppStore","downloadUrl","app","ios","styles$2","__defProp$3","__getOwnPropDesc$3","__decorateClass$3","WcmMobileQrConnectingView","__getOwnPropDesc$2","__decorateClass$2","WcmQrcodeView","styles$1","__getOwnPropDesc$1","__decorateClass$1","PAGE_ENTRIES","WcmWalletExplorerView","firstFetch","endReached","intersectionObserver","searchDebounce","fetchWallets","isLastPage","createPaginationObserver","placeholderEl","IntersectionObserver","isIntersecting","newListings","explorerImages","listing","onSearchChange","isLoading","isSearch","__getOwnPropDesc","__decorateClass","WcmWebConnectingView","openWebWallet","isMobilePlatform"],"mappings":"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CA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,kEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,sEAINvC,IAAK,CACHzH,IAAK,EACLgK,OAAQ,CACN,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,iEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEAC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AChC4f,QAAAn+H,UAAU+2G,SAAWoC,QAAMn5G,UAAUqT,gBChb3C,IAAI8iG,EAAQz3G,EAEZy3G,EAAMh1F,KAAOoN,OACb4nF,EAAMyJ,MAAQjwF,QACdwmF,EAAMjJ,KAAOt9E,OACbumF,EAAM0J,QAAUhwF,yKCPCuuG,YAAA,CACf5nB,QAAS,CACPG,KAAM,EACNK,OAAQ,CACN,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,kEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,sEAINvC,IAAK,CACHzH,IAAK,EACLgK,OAAQ,CACN,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,iEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,qFCrwBR,IAsKIttE,EAtKA88E,EAAS9nH,EAETqwB,EAAOR,OACP4nF,EAAQxmF,QAGRg/D,EAFQ/+D,QAEO++D,OAE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nI,EAAE,KAAsB,IAARA,EAAE,MAAa,GAAa,IAARA,EAAE,MAAa,IAAc,IAARA,EAAE,MAAa,GAMzEpD,EAAI,EAAGA,EAAI,GAAIA,GAAK,EAQrBq9B,IADNA,GADOA,IADPA,GADMA,IADNA,GADMA,IADNA,EAAIktG,EAAKQ,EAAM,IACN,EAAI1tG,IAAK,IACTktG,EAAK,IACL,EAAIltG,IAAK,IACTy9D,EAAK,IACJ,GAAKz9D,IAAK,IACV09D,EAAK,IACN,GAAK19D,IAAK,GASbA,IADNA,GADMA,IADNA,GADOA,IADPA,GADMA,IADNA,EAAIotG,EAAKn8B,EAAK,IACL,EAAIjxE,IAAK,IACTotG,EAAK,IACJ,EAAIptG,IAAK,IACTutG,EAAK,IACN,GAAKvtG,IAAK,IACV2tG,EAAM,IACN,GAAK3tG,IAAK,GASZA,IADPA,GADMA,IADNA,GADMA,IADNA,GADOA,IADPA,EAAIwtG,EAAMH,EAAK,IACL,EAAIrtG,IAAK,IACTwtG,EAAM,IACP,EAAIxtG,IAAK,IACT4tG,EAAM,IACN,GAAK5tG,IAAK,IACVw9D,EAAK,IACJ,GAAKx9D,IAAK,GASbA,IADPA,GADOA,IADPA,GADMA,IADNA,GADMA,IADNA,EAAI6tG,EAAMJ,EAAM,IACP,EAAIztG,IAAK,IACT6tG,EAAM,IACN,EAAI7tG,IAAK,IACTmtG,EAAK,IACJ,GAAKntG,IAAK,IACVstG,EAAK,IACL,GAAKttG,IAAK,GASdA,IADNA,GADMA,IADNA,GADMA,IADNA,GADMA,IADNA,EAAIktG,EAAKC,EAAK,IACL,EAAIntG,IAAK,IACTktG,EAAK,IACL,EAAIltG,IAAK,IACTixE,EAAK,IACL,GAAKjxE,IAAK,IACVw9D,EAAK,IACL,GAAKx9D,IAAK,GASbA,IADNA,GADMA,IADNA,GADMA,IADNA,GADMA,IADNA,EAAIotG,EAAK3vC,EAAK,IACL,EAAIz9D,IAAK,IACTotG,EAAK,IACL,EAAIptG,IAAK,IACTqtG,EAAK,IACL,GAAKrtG,IAAK,IACVstG,EAAK,IACL,GAAKttG,IAAK,GASZA,IADPA,GADMA,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CAAC,WAAY,YACvC,CAAC,UAAY,YAAa,CAAC,WAAY,YACvC,CAAC,WAAY,YAAa,CAAC,WAAY,YACvC,CAAC,WAAY,YAAa,CAAC,UAAY,YACvC,CAAC,UAAY,YAAa,CAAC,WAAY,YACvC,CAAC,WAAY,YAAa,CAAC,WAAY,WACvC,CAAC,WAAY,WAAa,CAAC,WAAY,YACvC,CAAC,WAAY,YAAa,CAAC,WAAY,WACvC,CAAC,UAAY,YAAa,CAAC,UAAY,YACvC,CAAC,UAAY,YAAa,CAAC,WAAY,YACvC,CAAC,WAAY,YAAa,CAAC,WAAY,YACvC,CAAC,WAAY,YAAa,CAAC,WAAY,WACvC,CAAC,WAAY,YAAa,CAAC,WAAY,YACvC,CAAC,WAAY,YAAa,CAAC,WAAY,YACvC,CAAC,UAAY,YAAa,CAAC,UAAY,WACvC,CAAC,UAAY,YAAa,CAAC,UAAY,YACvC,CAAC,WAAY,YAAa,CAAC,WAAY,YACvC,CAAC,WAAY,YAAa,CAAC,WAAY,YACvC,CAAC,WAAY,YAAa,CAAC,WAAY,WACvC,CAAC,WAAY,YAAa,CAAC,WAAY,YACvC,CAAC,WAAY,YAAa,CAAC,WAAY,WACvC,CAAC,WAAY,YAAa,CAAC,WAAY,YACvC,CAAC,WAAY,YAAa,CAAC,UAAY,WACvC,CAAC,UAAY,YAAa,CAAC,UAAY,YACvC,CAAC,UAAY,YAAa,CAAC,UAAY,YACvC,CAAC,UAAY,YAAa,CAAC,WAAY,YACvC,CAAC,WAAY,YAAa,CAAC,WAAY,YACvC,CAAC,WAAY,YAAa,CAAC,WAAY,YACvC,CAAC,WAAY,YAAa,CAAC,WAAY,WACvC,CAAC,WAAY,WAAa,CAAC,WAAY,YACvC,CAAC,WAAY,YAAa,CAAC,WAAY,YACvC,CAAC,WAAY,YAAa,CAAC,WAAY,WACvC,CAAC,WAAY,YAAa,CAAC,WAAY,YACvC,CAAC,UAAY,YAAa,CAAC,UAAY,YACvC,CAAC,UAAY,YAAa,CAAC,UAAY,WACvC,CAAC,UAAY,WAAa,CAAC,UAAY,YACvC,CAAC,WAAY,WAAa,CAAC,WAAY,YACvC,CAAC,WAAY,YAAa,CAAC,WAAY,YACvC,CAAC,WAAY,WAAa,CAAC,WAAY,cAIzCwgC,QAA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,KAAK4oI,kBAAkBC,UACHK,EAAA,+CAChB,MAEJ,KAAKN,kBAAkBG,iBAEfG,EAAA,mEACJ,MAEJ,KAAKN,kBAAkBE,aAEfI,EAAA,kEACJ,MAEJ,QACI,MAAM,IAAI53M,MACN,oBAAoB0uE,EAAOloE,2BAIjCmM,MAAA,qBAAqBilM,UAEY,IAA5B53M,MAAM8zB,mBACP9zB,MAAA8zB,kBAAkB9sB,KAAM0wM,kBAGlC1wM,KAAK8L,KAAO,mBAGZ9L,KAAK0nE,OAASA,EAGd1nE,KAAKqvM,SAAWA,EAMhBrvM,KAAK2wM,mBAAqBA,CAClC,ECrDe,MAAAE,YAAA,CACX,QACA,QACA,QACA,QACA,SACA,OACA,SACA,QACA,QACA,SACA,QACA,QACA,SACA,SACA,SACA,SACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,MACA,OACA,SACA,OACA,SACA,QACA,OACA,SACA,MACA,SACA,SACA,QACA,SACA,QACA,OACA,QACA,MACA,QACA,SACA,QACA,SACA,SACA,SACA,QACA,QACA,QACA,SACA,QACA,SACA,SACA,SACA,OACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,QACA,QACA,MACA,SACA,SACA,QACA,SACA,QACA,MACA,QACA,QACA,SACA,QACA,MACA,OACA,MACA,MACA,SACA,OACA,OACA,QACA,SACA,SACA,QACA,MACA,QACA,QACA,QACA,QACA,SACA,QACA,QACA,QACA,SACA,MACA,QACA,SACA,QACA,QACA,OACA,SACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,SACA,OACA,QACA,QACA,SACA,QACA,SACA,QACA,SACA,OACA,QACA,OACA,SACA,QACA,QACA,SACA,QACA,QACA,SACA,MACA,SACA,OACA,QACA,QACA,QACA,QACA,SACA,QACA,QACA,SACA,SACA,SACA,MACA,SACA,SACA,QACA,SACA,OACA,SACA,SACA,SACA,QACA,QACA,QACA,QACA,OACA,SACA,SACA,OACA,SACA,SACA,MACA,OACA,QACA,OACA,QACA,MACA,MACA,SACA,OACA,QACA,SACA,SACA,QACA,SACA,SACA,QACA,QACA,MACA,SACA,SACA,SACA,SACA,MACA,QACA,SACA,QACA,MACA,SACA,SACA,QACA,SACA,SACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,MACA,SACA,QACA,OACA,SACA,SACA,SACA,SACA,SACA,QACA,SACA,QACA,QACA,SACA,OACA,SACA,OACA,SACA,SACA,OACA,SACA,QACA,SACA,SACA,QACA,OACA,QACA,QACA,QACA,SACA,QACA,QACA,QACA,OACA,QACA,SACA,MACA,OACA,QACA,OACA,OACA,MACA,OACA,OACA,OACA,OACA,SACA,QACA,MACA,QACA,QACA,MACA,QACA,OACA,OACA,OACA,QACA,SACA,OACA,OACA,SACA,SACA,SACA,SACA,SACA,MACA,QACA,SACA,OACA,OACA,OACA,MACA,SACA,OACA,SACA,QACA,OACA,SACA,OACA,QACA,SACA,SACA,SACA,OACA,QACA,QACA,QACA,QACA,SACA,OACA,MACA,QACA,OACA,QACA,SACA,MACA,QACA,SACA,OACA,OACA,OACA,OACA,QACA,QACA,OACA,SACA,SACA,MACA,QACA,OACA,QACA,OACA,OACA,OACA,SACA,SACA,MACA,SACA,QACA,SACA,SACA,SACA,QACA,QACA,SACA,OACA,QACA,SACA,QACA,OACA,QACA,OACA,SACA,OACA,SACA,QACA,QACA,QACA,SACA,OACA,SACA,MACA,OACA,SACA,SACA,SACA,SACA,OACA,SACA,SACA,MACA,MACA,SACA,OACA,OACA,OACA,MACA,SACA,OACA,SACA,QACA,OACA,SACA,QACA,SACA,MACA,QACA,OACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,OACA,QACA,QACA,OACA,QACA,QACA,QACA,QACA,QACA,SACA,QACA,OACA,SACA,OACA,OACA,QACA,QACA,OACA,QACA,OACA,QACA,QACA,OACA,MACA,SACA,OACA,QACA,OACA,OACA,OACA,OACA,SACA,OACA,OACA,OACA,SACA,QACA,OACA,OACA,OACA,QACA,OACA,QACA,QACA,SACA,OACA,SACA,QACA,OACA,SACA,OACA,SACA,SACA,SACA,SACA,SACA,QACA,SACA,OACA,SACA,MACA,QACA,OACA,MACA,MACA,SACA,QACA,QACA,SACA,QACA,OACA,SACA,QACA,SACA,QACA,QACA,QACA,SACA,SACA,QACA,QACA,SACA,SACA,OACA,QACA,SACA,OACA,QACA,QACA,QACA,SACA,QACA,SACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,SACA,SACA,QACA,QACA,QACA,SACA,QACA,SACA,QACA,SACA,OACA,SACA,SACA,SACA,SACA,QACA,QACA,OACA,QACA,OACA,QACA,OACA,SACA,QACA,OACA,QACA,QACA,SACA,OACA,QACA,SACA,SACA,SACA,SACA,QACA,OACA,QACA,SACA,QACA,OACA,MACA,OACA,OACA,SACA,OACA,MACA,SACA,OACA,SACA,SACA,MACA,QACA,OACA,MACA,OACA,MACA,QACA,QACA,QACA,SACA,SACA,OACA,QACA,QACA,SACA,OACA,OACA,OACA,SACA,OACA,SACA,OACA,QACA,SACA,OACA,SACA,MACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,QACA,OACA,SACA,QACA,SACA,SACA,SACA,MACA,OACA,MACA,SACA,OACA,OACA,SACA,SACA,QACA,OACA,SACA,QACA,OACA,SACA,SACA,QACA,OACA,SACA,OACA,OACA,OACA,OACA,SACA,SACA,MACA,QACA,QACA,SACA,SACA,SACA,QACA,OACA,QACA,SACA,OACA,SACA,SACA,SACA,SACA,SACA,OACA,SACA,QACA,QACA,QACA,SACA,QACA,SACA,SACA,QACA,QACA,OACA,SACA,SACA,QACA,QACA,QACA,OACA,QACA,QACA,QACA,QACA,SACA,QACA,SACA,SACA,OACA,SACA,SACA,QACA,QACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,SACA,OACA,QACA,OACA,SACA,QACA,SACA,OACA,SACA,QACA,SACA,QACA,SACA,QACA,SACA,QACA,SACA,SACA,QACA,QACA,SACA,QACA,SACA,SACA,OACA,OACA,QACA,QACA,OACA,QACA,SACA,OACA,OACA,QACA,QACA,QACA,SACA,OACA,OACA,QACA,QACA,SACA,QACA,SACA,QACA,SACA,QACA,SACA,QACA,SACA,QACA,SACA,OACA,QACA,QACA,QACA,QACA,SACA,SACA,QACA,QACA,SACA,QACA,QACA,OACA,OACA,SACA,QACA,SACA,QACA,OACA,SACA,QACA,OACA,OACA,SACA,QACA,OACA,OACA,QACA,OACA,SACA,SACA,SACA,OACA,OACA,OACA,OACA,SACA,QACA,SACA,OACA,SACA,OACA,SACA,OACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,OACA,SACA,QACA,SACA,SACA,SACA,SACA,OACA,OACA,OACA,SACA,OACA,QACA,OACA,OACA,OACA,OACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,OACA,SACA,SACA,QACA,QACA,QACA,QACA,SACA,OACA,SACA,SACA,SACA,QACA,SACA,OACA,QACA,SACA,MACA,SACA,SACA,OACA,OACA,QACA,SACA,QACA,SACA,OACA,QACA,QACA,QACA,SACA,QACA,QACA,QACA,QACA,SACA,SACA,SACA,QACA,QACA,QACA,SACA,QACA,QACA,OACA,QACA,QACA,SACA,QACA,SACA,QACA,OACA,QACA,OACA,QACA,QACA,QACA,QACA,SACA,SACA,QACA,QACA,OACA,MACA,QACA,OACA,OACA,QACA,SACA,OACA,OACA,MACA,OACA,OACA,SACA,OACA,QACA,QACA,SACA,QACA,OACA,SACA,MACA,OACA,QACA,SACA,QACA,QACA,MACA,QACA,SACA,QACA,QACA,QACA,OACA,MACA,SACA,OACA,SACA,QACA,SACA,SACA,OACA,OACA,SACA,OACA,OACA,OACA,OACA,OACA,QACA,OACA,MACA,OACA,SACA,OACA,OACA,SACA,OACA,OACA,QACA,SACA,QACA,SACA,OACA,SACA,SACA,QACA,SACA,SACA,OACA,QACA,SACA,SACA,OACA,OACA,SACA,OACA,SACA,SACA,SACA,QACA,SACA,OACA,SACA,QACA,QACA,SACA,QACA,QACA,SACA,SACA,OACA,SACA,SACA,SACA,QACA,SACA,OACA,SACA,SACA,SACA,SACA,QACA,QACA,SACA,SACA,SACA,SACA,SACA,SACA,OACA,SACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,OACA,QACA,QACA,OACA,SACA,MACA,MACA,SACA,OACA,SACA,MACA,SACA,QACA,OACA,SACA,SACA,QACA,MACA,OACA,SACA,OACA,QACA,OACA,QACA,OACA,OACA,SACA,SACA,QACA,OACA,SACA,SACA,SACA,QACA,SACA,OACA,SACA,MACA,QACA,OACA,OACA,SACA,QACA,SACA,OACA,SACA,SACA,OACA,SACA,QACA,OACA,OACA,SACA,OACA,MACA,SACA,QACA,QACA,OACA,OACA,OACA,QACA,QACA,OACA,SACA,QACA,QACA,QACA,OACA,SACA,QACA,QACA,SACA,QACA,OACA,QACA,QACA,QACA,QACA,OACA,QACA,SACA,OACA,QACA,QACA,OACA,OACA,QACA,MACA,OACA,OACA,OACA,MACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,OACA,OACA,OACA,SACA,SACA,OACA,OACA,QACA,QACA,OACA,QACA,QACA,OACA,QACA,SACA,OACA,QACA,QACA,MACA,OACA,QACA,OACA,QACA,OACA,QACA,SACA,OACA,SACA,OACA,MACA,QACA,QACA,OACA,OACA,OACA,OACA,SACA,QACA,OACA,SACA,MACA,QACA,SACA,SACA,SACA,MACA,MACA,QACA,SACA,SACA,SACA,QACA,QACA,SACA,QACA,SACA,SACA,QACA,OACA,QACA,QACA,SACA,SACA,SACA,SACA,OACA,SACA,SACA,QACA,SACA,SACA,MACA,SACA,QACA,SACA,SACA,SACA,QACA,SACA,SACA,SACA,SACA,QACA,SACA,QACA,QACA,OACA,SACA,OACA,QACA,QACA,SACA,QACA,SACA,MACA,QACA,OACA,QACA,SACA,SACA,QACA,SACA,SACA,QACA,QACA,SACA,SACA,QACA,SACA,SACA,QACA,MACA,OACA,QACA,OACA,QACA,QACA,OACA,QACA,SACA,QACA,OACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,SACA,QACA,QACA,QACA,OACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,QACA,MACA,OACA,SACA,OACA,SACA,OACA,SACA,OACA,OACA,QACA,OACA,SACA,QACA,QACA,OACA,SACA,OACA,QACA,SACA,OACA,SACA,SACA,SACA,MACA,QACA,MACA,QACA,OACA,OACA,SACA,OACA,SACA,SACA,MACA,QACA,OACA,SACA,QACA,QACA,SACA,QACA,OACA,QACA,OACA,MACA,MACA,SACA,OACA,OACA,OACA,OACA,SACA,OACA,SACA,QACA,OACA,QACA,QACA,QACA,SACA,QACA,MACA,QACA,SACA,SACA,QACA,QACA,SACA,QACA,QACA,QACA,MACA,QACA,SACA,OACA,OACA,SACA,SACA,OACA,SACA,QACA,SACA,QACA,SACA,OACA,OACA,SACA,SACA,SACA,SACA,OACA,OACA,SACA,QACA,SACA,OACA,SACA,OACA,MACA,SACA,OACA,MACA,OACA,QACA,OACA,QACA,QACA,OACA,QACA,QACA,QACA,OACA,SACA,OACA,OACA,OACA,SACA,QACA,QACA,SACA,OACA,QACA,SACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,SACA,QACA,SACA,QACA,OACA,SACA,SACA,SACA,QACA,QACA,SACA,QACA,QACA,OACA,MACA,QACA,OACA,OACA,QACA,QACA,MACA,OACA,OACA,OACA,SACA,QACA,OACA,SACA,OACA,OACA,OACA,OACA,MACA,SACA,QACA,OACA,SACA,QACA,SACA,OACA,OACA,SACA,SACA,SACA,OACA,QACA,QACA,QACA,SACA,SACA,OACA,QACA,OACA,SACA,MACA,QACA,QACA,QACA,QACA,SACA,QACA,QACA,OACA,OACA,QACA,SACA,SACA,SACA,SACA,QACA,QACA,SACA,SACA,QACA,SACA,SACA,SACA,QACA,OACA,OACA,QACA,QACA,SACA,QACA,SACA,SACA,QACA,MACA,QACA,OACA,OACA,QACA,QACA,MACA,OACA,QACA,MACA,QACA,OACA,OACA,SACA,OACA,QACA,SACA,SACA,QACA,SACA,OACA,OACA,SACA,OACA,OACA,SACA,SACA,SACA,SACA,OACA,QACA,SACA,OACA,MACA,SACA,SACA,SACA,MACA,OACA,OACA,SACA,QACA,QACA,OACA,OACA,OACA,QACA,MACA,SACA,SACA,OACA,SACA,SACA,SACA,QACA,SACA,SACA,SACA,QACA,SACA,OACA,MACA,SACA,QACA,QACA,OACA,SACA,OACA,OACA,SACA,OACA,OACA,QACA,OACA,QACA,SACA,QACA,QACA,QACA,SACA,QACA,OACA,QACA,SACA,QACA,QACA,SACA,SACA,QACA,QACA,SACA,QACA,OACA,OACA,OACA,MACA,OACA,OACA,OACA,SACA,OACA,OACA,OACA,MACA,OACA,QACA,OACA,QACA,OACA,OACA,SACA,SACA,MACA,SACA,SACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SACA,QACA,QACA,SACA,QACA,SACA,SACA,QACA,SACA,QACA,SACA,QACA,QACA,QACA,OACA,OACA,OACA,QACA,QACA,OACA,OACA,QACA,OACA,OACA,SACA,QACA,QACA,QACA,SACA,QACA,SACA,QACA,QACA,OACA,QACA,SACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SACA,QACA,SACA,OACA,QACA,MACA,SACA,OACA,MACA,MACA,QACA,QACA,OACA,MACA,OACA,OACA,QACA,QACA,OACA,OACA,OACA,OACA,SACA,SACA,OACA,SACA,QACA,OACA,SACA,QACA,SACA,QACA,SACA,SACA,OACA,SACA,SACA,OACA,QACA,OACA,OACA,QACA,QACA,MACA,OACA,SACA,QACA,SACA,QACA,MACA,QACA,OACA,OACA,QACA,SACA,OACA,QACA,QACA,SACA,OACA,MACA,SACA,OACA,QACA,OACA,OACA,OACA,SACA,OACA,OACA,QACA,QACA,SACA,SACA,OACA,SACA,SACA,QACA,SACA,OACA,SACA,QACA,OACA,QACA,SACA,OACA,OACA,SACA,QACA,OACA,QACA,OACA,SACA,OACA,OACA,QACA,QACA,MACA,SACA,OACA,OACA,OACA,SACA,SACA,SACA,OACA,SACA,SACA,MACA,SACA,OACA,SACA,OACA,OACA,SACA,SACA,OACA,MACA,OACA,SACA,OACA,SACA,OACA,MACA,OACA,MACA,OACA,QACA,SACA,QACA,SACA,OACA,SACA,OACA,SACA,QACA,OACA,OACA,SACA,QACA,OACA,OACA,OACA,OACA,SACA,SACA,QACA,OACA,OACA,MACA,QACA,QACA,OACA,QACA,QACA,MACA,OACA,OACA,QACA,SACA,SACA,QACA,OACA,SACA,SACA,OACA,SACA,OACA,QACA,OACA,OACA,MACA,SACA,OACA,SACA,MACA,QACA,OACA,QACA,OACA,QACA,QACA,QACA,OACA,OACA,OACA,SACA,SACA,MACA,QACA,SACA,SACA,QACA,SACA,SACA,OACA,SACA,OACA,SACA,QACA,SACA,QACA,QACA,SACA,SACA,SACA,QACA,QACA,SACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,MACA,SACA,SACA,QACA,SACA,MACA,SACA,QACA,QACA,SACA,SACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,QACA,OACA,SACA,SACA,SACA,SACA,SACA,SACA,OACA,OACA,OACA,QACA,OACA,SACA,QACA,QACA,SACA,SACA,OACA,SACA,QACA,QACA,OACA,OACA,SACA,OACA,QACA,OACA,SACA,QACA,OACA,SACA,OACA,QACA,OACA,QACA,SACA,OACA,MACA,OACA,OACA,QACA,QACA,OACA,MACA,QACA,SACA,MACA,MACA,OACA,SACA,MACA,OACA,OACA,QACA,OACA,QACA,OACA,SACA,SACA,MACA,SACA,SACA,QACA,OACA,QACA,QACA,OACA,SACA,QACA,OACA,OACA,SACA,SACA,OACA,QACA,OACA,OACA,SACA,SACA,OACA,OACA,OACA,OACA,SACA,QACA,OACA,SACA,SACA,MACA,QACA,OACA,MACA,SACA,SACA,OACA,SACA,MACA,OACA,SACA,OACA,OACA,OACA,SACA,QACA,OACA,QACA,OACA,QACA,SACA,OACA,OACA,QACA,OACA,OACA,QACA,QACA,QACA,SACA,QACA,OACA,OACA,MACA,SACA,QACA,OACA,SACA,QACA,OACA,OACA,OACA,OACA,QACA,OACA,OACA,MACA,QACA,QACA,SACA,QACA,OACA,QACA,OACA,SACA,SACA,QACA,SACA,QACA,SACA,QACA,SACA,OACA,SACA,MACA,SACA,OACA,SACA,MACA,QACA,SACA,OACA,OACA,SACA,OACA,QACA,SACA,OACA,QACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,MACA,QACA,OACA,MACA,SACA,QACA,SACA,SACA,QACA,OACA,SACA,OACA,OACA,MACA,QACA,SACA,OACA,SACA,SACA,SACA,OACA,MACA,SACA,SACA,QACA,QACA,OACA,QACA,SACA,OACA,QACA,QACA,OACA,OACA,MACA,MACA,OACA,OACA,OACA,OACA,QACA,OACA,SACA,OACA,OACA,QACA,OACA,OACA,SACA,QACA,SACA,OACA,OACA,OACA,MACA,SACA,SACA,OACA,SACA,MACA,OACA,SACA,QACA,MACA,SACA,OACA,OACA,OACA,QACA,OACA,QACA,SACA,OACA,QACA,QACA,OACA,QACA,MACA,QACA,OACA,SACA,OACA,SACA,OACA,SACA,OACA,OACA,QACA,SACA,OACA,OACA,QACA,OACA,OACA,OACA,MACA,SACA,QACA,OACA,SACA,SACA,QACA,OACA,SACA,QACA,MACA,QACA,SACA,QACA,QACA,OACA,QACA,OACA,OACA,OACA,QACA,SACA,QACA,QACA,OACA,OACA,QACA,OACA,OACA,OACA,SACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,MACA,QACA,OACA,QACA,QACA,QACA,SACA,SACA,SACA,OACA,SACA,OACA,OACA,SACA,QACA,OACA,QACA,OACA,SACA,OACA,OACA,SACA,SACA,OACA,QACA,QACA,SACA,QACA,SACA,SACA,SACA,OACA,MACA,QACA,SACA,QACA,OACA,SACA,QACA,SACA,OACA,SACA,QACA,OACA,QACA,SACA,SACA,OACA,OACA,QACA,OACA,OACA,SACA,MACA,QACA,OACA,SACA,SACA,SACA,QACA,MACA,QACA,QACA,OACA,OACA,SACA,OACA,OACA,QACA,OACA,QACA,QACA,SACA,QACA,SACA,OACA,SACA,SACA,QACA,OACA,SACA,OACA,SACA,SACA,OACA,SACA,SACA,OACA,QACA,OACA,SACA,QACA,SACA,QACA,QACA,OACA,OACA,QACA,MACA,QACA,QACA,SACA,SACA,SACA,QACA,SACA,QACA,SACA,MACA,SACA,SACA,QACA,SACA,QACA,SACA,OACA,SACA,OACA,OACA,QACA,OACA,QACA,QACA,OACA,OACA,OACA,OACA,QACA,OACA,QACA,SACA,OACA,SACA,QACA,SACA,OACA,OACA,QACA,OACA,MACA,OACA,OACA,MACA,SACA,OACA,OACA,QACA,QACA,SACA,SACA,SACA,SACA,QACA,QACA,OACA,OACA,SACA,SACA,SACA,QACA,OACA,SACA,QACA,OACA,QACA,OACA,OACA,QACA,SACA,SACA,OACA,SACA,SACA,SACA,SACA,SACA,QACA,SACA,OACA,OACA,SACA,OACA,SACA,SACA,SACA,QACA,QACA,QACA,QACA,QACA,OACA,QACA,MACA,OACA,OACA,QACA,MACA,SACA,QACA,OACA,QACA,SACA,SACA,QACA,SACA,SACA,SACA,QACA,SACA,OACA,SACA,OACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,OACA,QACA,OACA,QACA,OACA,SACA,OACA,SACA,SACA,SACA,QACA,QACA,SACA,SACA,SACA,SACA,SACA,QACA,OACA,OACA,OACA,SACA,SACA,OACA,SACA,OACA,OACA,SACA,QACA,SACA,OACA,QACA,SACA,QACA,OACA,MACA,SACA,QACA,QACA,OACA,OACA,SACA,QACA,SACA,QACA,QACA,OACA,SACA,OACA,SACA,QACA,QACA,QACA,SACA,OACA,QACA,QACA,OACA,OACA,MACA,OACA,SACA,QACA,SACA,OACA,OACA,MACA,OACA,SACA,SACA,SACA,OACA,QACA,SACA,MACA,SACA,OACA,OACA,SACA,QACA,MACA,QACA,QACA,MACA,MACA,QACA,OACA,QACA,OACA,SACA,SACA,OACA,SACA,SACA,SACA,SACA,QACA,QACA,SACA,MACA,MACA,SACA,QACA,SACA,SACA,QACA,OACA,MACA,OACA,OACA,MACA,QACA,SACA,QACA,QACA,OACA,OACA,OACA,MACA,QACA,OACA,QACA,OACA,OACA,SACA,SACA,OACA,SACA,QACA,QACA,SACA,QACA,SACA,SACA,OACA,SACA,QACA,SACA,SACA,QACA,QACA,SACA,SACA,SACA,SACA,SACA,QACA,QACA,QACA,QACA,QACA,MACA,MACA,QACA,SACA,SACA,OACA,OACA,OACA,QACA,MACA,QACA,MACA,MACA,QACA,SACA,QACA,SACA,SACA,QACA,OACA,OACA,SACA,OACA,MACA,SACA,QACA,QACA,OACA,OACA,OACA,QACA,OACA,SACA,OACA,OACA,MACA,SACA,QACA,QACA,OACA,QACA,QACA,SACA,SACA,SACA,SACA,QACA,SACA,OACA,SACA,SACA,OACA,SACA,QACA,SACA,OACA,OACA,QACA,SACA,SACA,SACA,MACA,QACA,SACA,OACA,QACA,SACA,SACA,OACA,QACA,OACA,MACA,OACA,MACA,QACA,QACA,OACA,OACA,QACA,QACA,OACA,OACA,SACA,SACA,SACA,MACA,QACA,QACA,SACA,QACA,SACA,SACA,MACA,QACA,QACA,SACA,SACA,SACA,SACA,OACA,OACA,MACA,QACA,SACA,SACA,QACA,QACA,SACA,QACA,QACA,SACA,QACA,OACA,SACA,SACA,MACA,QACA,OACA,SACA,QACA,MACA,SACA,QACA,OACA,OACA,OACA,SACA,SACA,QACA,MACA,QACA,OACA,OACA,OACA,QACA,OACA,SACA,OACA,SACA,SACA,MACA,QACA,OACA,QACA,QACA,QACA,QACA,SACA,SACA,QACA,OACA,QACA,SACA,QACA,QACA,SACA,QACA,OACA,SACA,OACA,QACA,SACA,SACA,SACA,SACA,OACA,SACA,OACA,OACA,OACA,QACA,SACA,SACA,OACA,QACA,SACA,OACA,OACA,SACA,SACA,QACA,SACA,SACA,QACA,OACA,SACA,SACA,SACA,SACA,OACA,SACA,OACA,OACA,SACA,OACA,OACA,OACA,SACA,MACA,QACA,OACA,OACA,OACA,SACA,OACA,OACA,OACA,SACA,MACA,SACA,SACA,QACA,QACA,OACA,SACA,QACA,SACA,OACA,SACA,SACA,SACA,SACA,QACA,SACA,QACA,QACA,SACA,SACA,QACA,SACA,QACA,QACA,QACA,SACA,QACA,QACA,QACA,SACA,SACA,QACA,QACA,SACA,SACA,QACA,SACA,QACA,QACA,SACA,QACA,QACA,MACA,QACA,SACA,SACA,MACA,SACA,OACA,OACA,OACA,SACA,SACA,QACA,OACA,QACA,SACA,OACA,QACA,SACA,QACA,OACA,SACA,QACA,SACA,SACA,QACA,SACA,OACA,QACA,MACA,OACA,SACA,SACA,QACA,SACA,QACA,SACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,OACA,QACA,QACA,QACA,OACA,QACA,SACA,OACA,QACA,QACA,SACA,OACA,SACA,SACA,OACA,SACA,QACA,QACA,SACA,SACA,SACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,OACA,QACA,OACA,SACA,QACA,OACA,SACA,OACA,QACA,OACA,SACA,SACA,OACA,MACA,OACA,SACA,SACA,QACA,SACA,OACA,QACA,MACA,MACA,QACA,QACA,QACA,OACA,SACA,QACA,OACA,SACA,QACA,OACA,OACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,MACA,SACA,OACA,SACA,OACA,OACA,OACA,QACA,SACA,SACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,QACA,SACA,SACA,QACA,QACA,QACA,SACA,SACA,OACA,SACA,SACA,SACA,SACA,QACA,SACA,SACA,QACA,SACA,OACA,SACA,SACA,SACA,SACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,QACA,SACA,SACA,OACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,MACA,QACA,QACA,QACA,SACA,SACA,OACA,OACA,OACA,MACA,OACA,QACA,QACA,OACA,QACA,OACA,QACA,QACA,OACA,MACA,OACA,QACA,OACA,OACA,QACA,SACA,OACA,OACA,QACA,OACA,SACA,OACA,QACA,QACA,OACA,OACA,QACA,MACA,OACA,SACA,QACA,QACA,SACA,OACA,SACA,QACA,MACA,OACA,SACA,QACA,OACA,OACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,MACA,SACA,QACA,SACA,QACA,QACA,QACA,QACA,QACA,MACA,QACA,MACA,SACA,SACA,OACA,SACA,OACA,MACA,QACA,OACA,OACA,QACA,SACA,OACA,MACA,OACA,OACA,SACA,QACA,OACA,SACA,OACA,SACA,QACA,OACA,SACA,MACA,SACA,SACA,QACA,SACA,OACA,SACA,QACA,SACA,OACA,OACA,SACA,OACA,OACA,SACA,QACA,OACA,QACA,SACA,OACA,SACA,SACA,SACA,SACA,OACA,QACA,SACA,MACA,OACA,SACA,OACA,QACA,OACA,OACA,QACA,SACA,SACA,QACA,SACA,QACA,QACA,SACA,OACA,MACA,MACA,QACA,QACA,OACA,QACA,OACA,SACA,QACA,QACA,QACA,QACA,SACA,QACA,SACA,QACA,QACA,QACA,QACA,SACA,QACA,QACA,QACA,SACA,SACA,SACA,QACA,SACA,SACA,QACA,OACA,MACA,OACA,OACA,SACA,SACA,SACA,OACA,SACA,SACA,OACA,SACA,SACA,MACA,OACA,SACA,OACA,OACA,QACA,SACA,SACA,OACA,OACA,SACA,OACA,SACA,OACA,SACA,SACA,QACA,SACA,OACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,QACA,QACA,SACA,MACA,SACA,QACA,SACA,MACA,SACA,SACA,QACA,SACA,QACA,QACA,SACA,OACA,QACA,QACA,QACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,MACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SACA,SACA,QACA,QACA,QACA,OACA,QACA,QACA,QACA,SACA,QACA,OACA,QACA,QACA,OACA,QACA,QACA,OACA,SACA,QACA,OACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,QACA,QACA,OACA,MACA,QACA,OACA,OACA,QACA,OACA,QACA,QACA,OACA,SACA,SACA,OACA,SACA,QACA,OACA,QACA,OACA,SACA,SACA,SACA,QACA,SACA,OACA,SACA,SACA,OACA,MACA,OACA,QACA,SACA,MACA,OACA,SACA,MACA,QACA,QACA,OACA,SACA,QACA,OACA,SACA,OACA,QACA,QACA,MACA,OACA,QACA,QACA,OACA,QACA,OACA,OACA,QACA,QACA,QACA,QACA,SACA,SACA,QACA,QACA,OACA,QACA,SACA,OACA,QACA,QACA,OACA,OACA,SACA,QACA,SACA,OACA,OACA,SACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SACA,QACA,QACA,QACA,QACA,QACA,SACA,OACA,QACA,QACA,QACA,OACA,SACA,QACA,OACA,QACA,OACA,OACA,OACA,QACA,SACA,SACA,OACA,SACA,QACA,OACA,SACA,SACA,OACA,OACA,SACA,SACA,QACA,OACA,QACA,OACA,OACA,SACA,SACA,QACA,OACA,QACA,OACA,MACA,QACA,SACA,OACA,QACA,OACA,OACA,SACA,OACA,SACA,SACA,OACA,SACA,QACA,OACA,OACA,QACA,OACA,OACA,SACA,SACA,MACA,QACA,QACA,QACA,OACA,QACA,QACA,SACA,QACA,OACA,QACA,QACA,QACA,SACA,QACA,SACA,QACA,QACA,SACA,QACA,QACA,SACA,QACA,QACA,OACA,SACA,QACA,SACA,SACA,OACA,QACA,SACA,QACA,QACA,QACA,SACA,QACA,QACA,OACA,SACA,QACA,SACA,QACA,SACA,SACA,OACA,QACA,SACA,SACA,QACA,QACA,OACA,SACA,QACA,QACA,QACA,QACA,QACA,SACA,QACA,QACA,QACA,QACA,SACA,QACA,SACA,OACA,SACA,QACA,QACA,QACA,SACA,QACA,SACA,SACA,SACA,OACA,QACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,OACA,SACA,OACA,SACA,QACA,OACA,QACA,SACA,QACA,SACA,SACA,QACA,QACA,QACA,OACA,SACA,QACA,SACA,QACA,QACA,QACA,OACA,QACA,QACA,SACA,QACA,QACA,QACA,OACA,SACA,SACA,SACA,QACA,SACA,QACA,QACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,OACA,SACA,QACA,QACA,SACA,QACA,SACA,SACA,QACA,SACA,SACA,SACA,SACA,OACA,SACA,MACA,OACA,SACA,QACA,OACA,QACA,SACA,SACA,SACA,MACA,SACA,SACA,SACA,MACA,SACA,QACA,SACA,QACA,SACA,SACA,SACA,SACA,OACA,SACA,OACA,QACA,SACA,SACA,QACA,OACA,OACA,QACA,OACA,QACA,QACA,SACA,SACA,QACA,QACA,QACA,QACA,OACA,QACA,QACA,QACA,QACA,SACA,QACA,QACA,SACA,SACA,QACA,SACA,QACA,QACA,SACA,QACA,SACA,QACA,QACA,SACA,OACA,SACA,OACA,SACA,SACA,OACA,OACA,SACA,OACA,OACA,QACA,OACA,QACA,MACA,SACA,SACA,OACA,MACA,OACA,SACA,SACA,OACA,OACA,SACA,OACA,QACA,QACA,SACA,SACA,OACA,SACA,MACA,OACA,MACA,QACA,OACA,OACA,OACA,QACA,OACA,QACA,OACA,SACA,SACA,QACA,QACA,MACA,SACA,OACA,SACA,SACA,SACA,QACA,QACA,OACA,QACA,SACA,SACA,OACA,SACA,QACA,OACA,QACA,OACA,QACA,OACA,OACA,QACA,SACA,SACA,QACA,QACA,SACA,OACA,QACA,QACA,QACA,OACA,QACA,QACA,QACA,SACA,SACA,OACA,SACA,QACA,QACA,SACA,SACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,QACA,SACA,OACA,OACA,QACA,OACA,QACA,QACA,OACA,SACA,QACA,OACA,OACA,MACA,OACA,QACA,QACA,OACA,OACA,OACA,SACA,OACA,QACA,MACA,OACA,MACA,OACA,SACA,QACA,OACA,QACA,QACA,MACA,SACA,QACA,QACA,OACA,OACA,MACA,SACA,OACA,QACA,OACA,SACA,QACA,MACA,OACA,OACA,QACA,MACA,QACA,QACA,QACA,SACA,QACA,OACA,OACA,QACA,QACA,QACA,OACA,SACA,QACA,QACA,OACA,QACA,QACA,MACA,QACA,QACA,QACA,QACA,SACA,QACA,QACA,QACA,OACA,SACA,OACA,SACA,SACA,OACA,QACA,QACA,SACA,SACA,OACA,OACA,SACA,SACA,QACA,SACA,QACA,SACA,QACA,QACA,SACA,QACA,SACA,OACA,OACA,OACA,SACA,QACA,SACA,OACA,SACA,QACA,QACA,QACA,OACA,QACA,QACA,QACA,QACA,MACA,OACA,SACA,OACA,SACA,OACA,QACA,SACA,SACA,OACA,OACA,SACA,OACA,SACA,QACA,QACA,SACA,SACA,QACA,OACA,QACA,MACA,SACA,QACA,OACA,SACA,OACA,QACA,QACA,SACA,SACA,QACA,QACA,SACA,SACA,QACA,QACA,SACA,OACA,QACA,QACA,SACA,SACA,SACA,QACA,SACA,SACA,SACA,SACA,OACA,QACA,SACA,QACA,SACA,SACA,SACA,SACA,QACA,OACA,SACA,SACA,QACA,SACA,QACA,MACA,SACA,OACA,QACA,SACA,QACA,SACA,SACA,QACA,OACA,QACA,QACA,SACA,QACA,QACA,MACA,SACA,SACA,OACA,OACA,OACA,MACA,QACA,SACA,OACA,OACA,SACA,SACA,SACA,SACA,QACA,OACA,QACA,QACA,OACA,SACA,QACA,SACA,SACA,QACA,SACA,OACA,SACA,OACA,MACA,OACA,MACA,SACA,QACA,OACA,SACA,SACA,QACA,SACA,OACA,QACA,SACA,OACA,QACA,OACA,QACA,QACA,SACA,SACA,QACA,QACA,SACA,QACA,OACA,SACA,QACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,OACA,SACA,SACA,OACA,QACA,SACA,SACA,OACA,OACA,QACA,OACA,SACA,OACA,OACA,SACA,OACA,SACA,SACA,SACA,OACA,MACA,SACA,OACA,SACA,OACA,OACA,SACA,OACA,MACA,OACA,OACA,QACA,QACA,QACA,SACA,OACA,MACA,MACA,OACA,SACA,SACA,SACA,OACA,QACA,QACA,QACA,MACA,OACA,OACA,SACA,OACA,QACA,SACA,QACA,OACA,OACA,OACA,MACA,QACA,QACA,OACA,QACA,QACA,OACA,SACA,QACA,QACA,QACA,QACA,OACA,OACA,SACA,QACA,MACA,QACA,SACA,OACA,QACA,MACA,SACA,OACA,SACA,QACA,QACA,QACA,QACA,OACA,MACA,OACA,SACA,OACA,SACA,OACA,MACA,OACA,SACA,QACA,OACA,OACA,OACA,SACA,SACA,OACA,OACA,SACA,OACA,OACA,MACA,QACA,OACA,SACA,QACA,SACA,OACA,OACA,SACA,QACA,OACA,MACA,SACA,OACA,SACA,QACA,QACA,OACA,OACA,OACA,SACA,QACA,OACA,QACA,QACA,QACA,QACA,SACA,QACA,QACA,OACA,QACA,SACA,QACA,QACA,QACA,OACA,QACA,SACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,SACA,MACA,QACA,SACA,OACA,MACA,QACA,OACA,QACA,QACA,OACA,QACA,SACA,OACA,OACA,SACA,OACA,SACA,QChgIWC,WAAA,CACX,UACA,UACA,OACA,QACA,QACA,SACA,SACA,WACA,SACA,QACA,SACA,WACA,UACA,SACA,UACA,OACA,WACA,UACA,SACA,MACA,SACA,QACA,UACA,SACA,QACA,MACA,SACA,UACA,SACA,QACA,QACA,UACA,SACA,UACA,SACA,SACA,SACA,QACA,MACA,QACA,QACA,QACA,MACA,MACA,UACA,QACA,QACA,QACA,UACA,QACA,QACA,MACA,QACA,QACA,SACA,QACA,QACA,UACA,OACA,QACA,SACA,UACA,UACA,QACA,SACA,SACA,UACA,SACA,UACA,QACA,QACA,QACA,SACA,QACA,WACA,SACA,UACA,SACA,UACA,UACA,UACA,MACA,QACA,UACA,SACA,QACA,UACA,QACA,OACA,SACA,OACA,QACA,QACA,MACA,QACA,QACA,OACA,SACA,UACA,SACA,SACA,QACA,MACA,WACA,SACA,UACA,MACA,SACA,UACA,QACA,SACA,SACA,SACA,UACA,OACA,SACA,SACA,WACA,UACA,UACA,QACA,SACA,OACA,SACA,OACA,SACA,UACA,UACA,QACA,QACA,QACA,OACA,UACA,QACA,UACA,OACA,OACA,WACA,QACA,QACA,MACA,UACA,UACA,OACA,SACA,SACA,SACA,MACA,SACA,UACA,SACA,OACA,QACA,SACA,SACA,QACA,OACA,SACA,UACA,SACA,OACA,SACA,QACA,SACA,SACA,UACA,QACA,OACA,QACA,UACA,OACA,SACA,SACA,UACA,SACA,UACA,MACA,OACA,OACA,UACA,OACA,QACA,SACA,QACA,QACA,QACA,UACA,QACA,QACA,QACA,QACA,QACA,UACA,SACA,OACA,OACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,QACA,OACA,QACA,SACA,SACA,SACA,OACA,SACA,SACA,MACA,MACA,UACA,QACA,QACA,QACA,QACA,QACA,SACA,QACA,SACA,QACA,SACA,QACA,QACA,WACA,SACA,SACA,QACA,UACA,QACA,QACA,SACA,QACA,SACA,UACA,QACA,OACA,OACA,SACA,SACA,SACA,SACA,SACA,QACA,MACA,WACA,OACA,SACA,QACA,OACA,UACA,QACA,QACA,SACA,OACA,OACA,OACA,OACA,SACA,OACA,MACA,QACA,SACA,QACA,SACA,QACA,SACA,SACA,UACA,UACA,UACA,MACA,SACA,OACA,QACA,SACA,QACA,OACA,OACA,OACA,SACA,SACA,SACA,MACA,UACA,QACA,WACA,SACA,SACA,QACA,UACA,OACA,UACA,SACA,SACA,SACA,UACA,SACA,UACA,QACA,QACA,WACA,SACA,QACA,UACA,SACA,QACA,OACA,QACA,QACA,SACA,OACA,SACA,QACA,UACA,QACA,QACA,UACA,SACA,SACA,UACA,UACA,QACA,QACA,QACA,WACA,SACA,UACA,OACA,QACA,QACA,OACA,UACA,OACA,OACA,QACA,QACA,SACA,QACA,SACA,QACA,QACA,SACA,OACA,QACA,OACA,QACA,QACA,QACA,QACA,OACA,QACA,UACA,SACA,QACA,QACA,UACA,OACA,SACA,OACA,OACA,UACA,QACA,SACA,UACA,OACA,UACA,QACA,SACA,UACA,UACA,UACA,UACA,WACA,UACA,WACA,UACA,WACA,OACA,OACA,SACA,OACA,QACA,OACA,OACA,UACA,OACA,SACA,QACA,UACA,SACA,SACA,SACA,QACA,SACA,QACA,SACA,QACA,OACA,QACA,QACA,SACA,QACA,QACA,QACA,SACA,QACA,OACA,UACA,QACA,QACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,SACA,UACA,SACA,QACA,MACA,UACA,OACA,UACA,MACA,WACA,UACA,UACA,UACA,QACA,UACA,SACA,OACA,QACA,MACA,SACA,OACA,QACA,SACA,SACA,OACA,WACA,OACA,MACA,OACA,SACA,SACA,SACA,WACA,SACA,UACA,WACA,WACA,OACA,UACA,SACA,OACA,SACA,QACA,UACA,SACA,SACA,SACA,UACA,OACA,SACA,SACA,UACA,QACA,SACA,SACA,WACA,SACA,SACA,OACA,UACA,UACA,SACA,SACA,UACA,SACA,SACA,UACA,OACA,UACA,QACA,OACA,SACA,OACA,SACA,UACA,UACA,UACA,SACA,WACA,SACA,OACA,WACA,WACA,UACA,OACA,UACA,WACA,UACA,WACA,SACA,SACA,UACA,QACA,SACA,WACA,MACA,OACA,UACA,SACA,SACA,SACA,QACA,OACA,OACA,SACA,OACA,QACA,SACA,QACA,UACA,OACA,QACA,QACA,QACA,QACA,QACA,OACA,QACA,OACA,OACA,MACA,OACA,OACA,OACA,SACA,OACA,QACA,OACA,QACA,UACA,QACA,QACA,QACA,OACA,QACA,SACA,OACA,OACA,OACA,UACA,UACA,OACA,OACA,UACA,SACA,MACA,QACA,SACA,QACA,QACA,WACA,UACA,UACA,WACA,WACA,QACA,OACA,SACA,SACA,UACA,SACA,UACA,SACA,UACA,QACA,SACA,QACA,MACA,UACA,UACA,QACA,SACA,UACA,SACA,SACA,UACA,QACA,SACA,SACA,SACA,SACA,SACA,QACA,SACA,QACA,WACA,UACA,QACA,QACA,MACA,QACA,QACA,UACA,QACA,QACA,SACA,QACA,UACA,SACA,UACA,SACA,WACA,OACA,QACA,SACA,QACA,UACA,SACA,WACA,SACA,UACA,SACA,UACA,WACA,UACA,UACA,QACA,QACA,OACA,SACA,SACA,SACA,SACA,UACA,SACA,UACA,SACA,QACA,MACA,UACA,SACA,OACA,UACA,OACA,QACA,QACA,OACA,QACA,OACA,SACA,SACA,MACA,QACA,UACA,OACA,UACA,MACA,QACA,SACA,UACA,QACA,WACA,UACA,WACA,UACA,MACA,OACA,OACA,SACA,QACA,WACA,QACA,QACA,MACA,QACA,UACA,QACA,SACA,OACA,OACA,SACA,QACA,OACA,OACA,SACA,SACA,OACA,OACA,QACA,SACA,OACA,MACA,UACA,MACA,OACA,QACA,QACA,OACA,SACA,OACA,SACA,OACA,QACA,QACA,QACA,SACA,QACA,QACA,MACA,OACA,QACA,MACA,OACA,OACA,SACA,OACA,OACA,QACA,SACA,SACA,OACA,UACA,QACA,UACA,SACA,SACA,QACA,MACA,UACA,QACA,WACA,QACA,SACA,SACA,OACA,QACA,QACA,QACA,SACA,QACA,OACA,MACA,QACA,UACA,OACA,SACA,SACA,OACA,SACA,UACA,OACA,MACA,SACA,UACA,SACA,SACA,UACA,MACA,OACA,OACA,SACA,QACA,OACA,UACA,SACA,QACA,SACA,UACA,UACA,QACA,QACA,OACA,SACA,SACA,UACA,OACA,OACA,OACA,SACA,QACA,QACA,QACA,UACA,QACA,QACA,QACA,QACA,OACA,OACA,OACA,UACA,OACA,OACA,QACA,UACA,SACA,SACA,SACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,UACA,QACA,QACA,OACA,QACA,OACA,UACA,QACA,OACA,QACA,QACA,QACA,QACA,QACA,SACA,MACA,MACA,QACA,OACA,OACA,SACA,UACA,OACA,QACA,SACA,OACA,QACA,UACA,MACA,OACA,OACA,SACA,OACA,SACA,QACA,QACA,WACA,SACA,QACA,SACA,OACA,MACA,OACA,SACA,OACA,OACA,OACA,MACA,OACA,UACA,QACA,SACA,OACA,OACA,UACA,SACA,OACA,QACA,OACA,OACA,OACA,SACA,QACA,WACA,OACA,QACA,OACA,QACA,MACA,OACA,QACA,SACA,QACA,UACA,SACA,OACA,SACA,QACA,OACA,UACA,SACA,MACA,OACA,OACA,WACA,OACA,SACA,MACA,UACA,UACA,QACA,UACA,UACA,SACA,SACA,SACA,UACA,UACA,OACA,UACA,SACA,WACA,QACA,WACA,SACA,WACA,SACA,UACA,SACA,SACA,UACA,UACA,SACA,SACA,SACA,QACA,WACA,QACA,UACA,SACA,SACA,SACA,UACA,UACA,SACA,WACA,OACA,SACA,SACA,UACA,OACA,SACA,UACA,QACA,OACA,QACA,SACA,SACA,MACA,OACA,UACA,QACA,QACA,QACA,MACA,OACA,OACA,UACA,MACA,QACA,QACA,OACA,SACA,SACA,OACA,OACA,WACA,OACA,OACA,UACA,MACA,OACA,MACA,SACA,OACA,UACA,OACA,MACA,UACA,OACA,SACA,OACA,OACA,QACA,QACA,OACA,MACA,QACA,QACA,SACA,OACA,OACA,OACA,WACA,SACA,QACA,QACA,QACA,QACA,UACA,OACA,MACA,OACA,UACA,QACA,OACA,SACA,OACA,QACA,QACA,UACA,OACA,MACA,QACA,SACA,UACA,QACA,OACA,SACA,OACA,UACA,SACA,SACA,QACA,OACA,UACA,UACA,UACA,OACA,OACA,QACA,OACA,OACA,QACA,OACA,OACA,SACA,OACA,SACA,OACA,SACA,OACA,OACA,UACA,QACA,OACA,QACA,SACA,OACA,OACA,UACA,OACA,SACA,OACA,QACA,QACA,UACA,SACA,QACA,QACA,SACA,SACA,UACA,MACA,QACA,SACA,OACA,OACA,OACA,QACA,OACA,SACA,MACA,SACA,UACA,QACA,UACA,SACA,QACA,SACA,QACA,SACA,SACA,SACA,WACA,OACA,OACA,SACA,QACA,WACA,OACA,SACA,SACA,UACA,OACA,SACA,OACA,UACA,OACA,WACA,QACA,QACA,SACA,OACA,SACA,SACA,UACA,OACA,QACA,QACA,QACA,QACA,OACA,UACA,QACA,SACA,SACA,WACA,OACA,UACA,QACA,OACA,UACA,QACA,SACA,UACA,SACA,SACA,OACA,UACA,MACA,QACA,UACA,SACA,QACA,SACA,MACA,SACA,UACA,SACA,UACA,QACA,OACA,QACA,OACA,UACA,WACA,SACA,SACA,QACA,WACA,QACA,OACA,QACA,OACA,SACA,OACA,WACA,SACA,SACA,WACA,QACA,OACA,SACA,SACA,UACA,OACA,QACA,OACA,SACA,SACA,QACA,SACA,SACA,OACA,OACA,OACA,WACA,UACA,UACA,SACA,QACA,OACA,MACA,UACA,UACA,QACA,OACA,OACA,OACA,QACA,QACA,QACA,UACA,SACA,SACA,QACA,OACA,UACA,OACA,UACA,SACA,QACA,MACA,UACA,SACA,QACA,MACA,MACA,OACA,SACA,SACA,UACA,UACA,SACA,UACA,QACA,QACA,UACA,OACA,MACA,QACA,SACA,QACA,MACA,OACA,MACA,QACA,UACA,OACA,OACA,MACA,QACA,SACA,OACA,OACA,QACA,UACA,SACA,SACA,SACA,QACA,UACA,QACA,WACA,QACA,SACA,WACA,SACA,UACA,QACA,UACA,QACA,SACA,UACA,OACA,OACA,OACA,MACA,QACA,SACA,SACA,QACA,OACA,SACA,OACA,OACA,SACA,OACA,QACA,QACA,QACA,UACA,QACA,SACA,SACA,OACA,SACA,QACA,OACA,QACA,OACA,UACA,SACA,UACA,QACA,OACA,UACA,QACA,SACA,OACA,UACA,UACA,MACA,UACA,SACA,SACA,SACA,UACA,SACA,SACA,MACA,QACA,QACA,SACA,WACA,QACA,SACA,UACA,QACA,MACA,SACA,OACA,QACA,OACA,UACA,OACA,SACA,QACA,QACA,QACA,SACA,UACA,QACA,OACA,SACA,SACA,QACA,OACA,SACA,OACA,OACA,QACA,QACA,OACA,SACA,OACA,OACA,OACA,UACA,UACA,WACA,WACA,OACA,SACA,UACA,UACA,SACA,QACA,WACA,SACA,UACA,SACA,UACA,UACA,SACA,UACA,QACA,QACA,UACA,QACA,WACA,SACA,UACA,QACA,UACA,UACA,UACA,SACA,UACA,UACA,UACA,QACA,WACA,UACA,UACA,QACA,UACA,SACA,UACA,OACA,OACA,QACA,UACA,QACA,QACA,QACA,WACA,SACA,UACA,QACA,OACA,MACA,SACA,UACA,UACA,UACA,UACA,WACA,QACA,OACA,OACA,QACA,SACA,UACA,OACA,OACA,QACA,QACA,OACA,OACA,QACA,QACA,OACA,QACA,SACA,QACA,QACA,OACA,OACA,SACA,QACA,MACA,QACA,QACA,OACA,SACA,QACA,UACA,SACA,UACA,SACA,SACA,UACA,SACA,UACA,SACA,SACA,SACA,SACA,UACA,SACA,QACA,UACA,SACA,OACA,SACA,WACA,SACA,SACA,SACA,QACA,OACA,SACA,SACA,SACA,UACA,SACA,UACA,SACA,WACA,SACA,WACA,WACA,SACA,SACA,UACA,SACA,UACA,SACA,SACA,SACA,SACA,MACA,SACA,OACA,OACA,OACA,QACA,QACA,QACA,QACA,OACA,OACA,SACA,OACA,SACA,QACA,QACA,OACA,QACA,QACA,SACA,SACA,UACA,OACA,SACA,OACA,OACA,SACA,QACA,QACA,QACA,QACA,SACA,OACA,MACA,OACA,MACA,SACA,QACA,MACA,SACA,UACA,OACA,OACA,QACA,SACA,QACA,OACA,SACA,OACA,SACA,OACA,UACA,UACA,QACA,UACA,OACA,MACA,QACA,OACA,QACA,UACA,QACA,SACA,SACA,UACA,WACA,WACA,QACA,QACA,SACA,SACA,QACA,MACA,SACA,SACA,OACA,SACA,SACA,UACA,WACA,OACA,OACA,UACA,SACA,OACA,UACA,SACA,QACA,WACA,SACA,UACA,UACA,SACA,QACA,QACA,SACA,QACA,UACA,QACA,OACA,QACA,UACA,SACA,QACA,QACA,OACA,SACA,QACA,OACA,QACA,OACA,QACA,WACA,QACA,SACA,QACA,UACA,MACA,UACA,OACA,OACA,QACA,QACA,OACA,SACA,OACA,QACA,SACA,UACA,SACA,QACA,OACA,QACA,SACA,UACA,MACA,OACA,QACA,SACA,MACA,QACA,OACA,QACA,QACA,OACA,OACA,QACA,UACA,QACA,QACA,SACA,OACA,SACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,SACA,QACA,QACA,OACA,QACA,OACA,OACA,SACA,SACA,OACA,OACA,OACA,QACA,UACA,QACA,WACA,QACA,UACA,OACA,OACA,QACA,OACA,OACA,QACA,OACA,SACA,QACA,QACA,QACA,UACA,QACA,QACA,UACA,QACA,QACA,QACA,SACA,QACA,SACA,QACA,OACA,SACA,QACA,QACA,UACA,QACA,QACA,OACA,QACA,SACA,SACA,MACA,SACA,UACA,WACA,SACA,UACA,QACA,QACA,SACA,QACA,QACA,QACA,QACA,OACA,QACA,QACA,OACA,OACA,SACA,QACA,QACA,QACA,QACA,UACA,QACA,QACA,QACA,QACA,WACA,SACA,SACA,SACA,WACA,UACA,QACA,UACA,QACA,UACA,SACA,SACA,UACA,OACA,SACA,SACA,QACA,UACA,OACA,SACA,MACA,QACA,SACA,QACA,SACA,UACA,OACA,UACA,QACA,WACA,WACA,SACA,UACA,UACA,UACA,QACA,OACA,QACA,QACA,QACA,QACA,OACA,QACA,SACA,QACA,SACA,UACA,QACA,SACA,QACA,SACA,MACA,OACA,SACA,OACA,OACA,OACA,SACA,OACA,QACA,SACA,OACA,QACA,OACA,OACA,MACA,SACA,SACA,OACA,OACA,OACA,OACA,QACA,OACA,QACA,OACA,SACA,QACA,OACA,QACA,OACA,UACA,QACA,SACA,QACA,QACA,UACA,SACA,OACA,QACA,OACA,SACA,OACA,OACA,MACA,QACA,SACA,QACA,QACA,UACA,QACA,UACA,MACA,WACA,SACA,QACA,SACA,WACA,OACA,SACA,UACA,OACA,QACA,MACA,QACA,SACA,QACA,UACA,WACA,OACA,QACA,UACA,SACA,QACA,OACA,MACA,QACA,QACA,UACA,SACA,QACA,WACA,OACA,QACA,SACA,OACA,QACA,OACA,QACA,QACA,QACA,QACA,UACA,OACA,OACA,SACA,UACA,QACA,OACA,QACA,UACA,QACA,QACA,MACA,OACA,UACA,SACA,OACA,SACA,SACA,OACA,SACA,SACA,SACA,QACA,OACA,QACA,MACA,OACA,UACA,OACA,WACA,SACA,UACA,QACA,UACA,QACA,OACA,SACA,SACA,UACA,UACA,SACA,OACA,WACA,UACA,SACA,QACA,UACA,SACA,SACA,UACA,SACA,OACA,QACA,QACA,QACA,OACA,QACA,MACA,OACA,SACA,UACA,QACA,UACA,SACA,SACA,QACA,QACA,SACA,QACA,MACA,SACA,QACA,UACA,OACA,QACA,UACA,SACA,SACA,UACA,QACA,OACA,SACA,UACA,OACA,SACA,UACA,SACA,UACA,UACA,UACA,QACA,OACA,UACA,UACA,SACA,UACA,QACA,OACA,QACA,SACA,QACA,QACA,QACA,QACA,OACA,UACA,SACA,OACA,SACA,OACA,QACA,OACA,OACA,OACA,SACA,OACA,UACA,OACA,UACA,OACA,OACA,QACA,QACA,OACA,MACA,SACA,SACA,OACA,SACA,UACA,MACA,UACA,UACA,QACA,UACA,OACA,MACA,QACA,OACA,QACA,QACA,OACA,QACA,OACA,UACA,OACA,QACA,OACA,OACA,OACA,MACA,SACA,OACA,OACA,OACA,SACA,SACA,OACA,SACA,OACA,OACA,UACA,OACA,QACA,SACA,OACA,OACA,OACA,OACA,QACA,QACA,QACA,OACA,QACA,UACA,QACA,QACA,QACA,OACA,OACA,SACA,MACA,QACA,QACA,QACA,OACA,OACA,OC5/DGzmH,eAAetN,SAAO79E,GAElB,OAAA,IAAI1G,iBAAiBykB,OAAO0sE,OAAO5M,OAAO,UAAW79E,GAChE,CCCsBmrF,eAAA0mH,OAAO/xH,EAAO04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EF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,kEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,sEAINvC,IAAK,CACHzH,IAAK,EACLgK,OAAQ,CACN,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,iEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAE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,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,kEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,sEAINvC,IAAK,CACHzH,IAAK,EACLgK,OAAQ,CACN,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,iEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,831,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915]} \ No newline at end of file +{"version":3,"file":"hashinal-wc.umd.js","sources":["../../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js","../../node_modules/long/index.js","../../node_modules/bignumber.js/bignumber.mjs","../../node_modules/rfc4648/lib/rfc4648.js","../../node_modules/@protobufjs/aspromise/index.js","../../node_modules/@protobufjs/base64/index.js","../../node_modules/@protobufjs/eventemitter/index.js","../../node_modules/@protobufjs/float/index.js","../../node_modules/@protobufjs/inquire/index.js","../../node_modules/@protobufjs/utf8/index.js","../../node_modules/@protobufjs/pool/index.js","../../node_modules/protobufjs/src/util/longbits.js","../../node_modules/protobufjs/src/util/minimal.js","../../node_modules/protobufjs/src/writer.js","../../node_modules/protobufjs/src/writer_buffer.js","../../node_modules/protobufjs/src/reader.js","../../node_modules/protobufjs/src/reader_buffer.js","../../node_modules/protobufjs/src/rpc/service.js","../../node_modules/protobufjs/src/rpc.js","../../node_modules/protobufjs/src/roots.js","../../node_modules/protobufjs/src/index-minimal.js","../../node_modules/protobufjs/minimal.js","../../node_modules/@hashgraph/proto/lib/proto.js","../../node_modules/@hashgraph/proto/lib/index.js","../../node_modules/@hashgraph/cryptography/src/Key.js","../../node_modules/@hashgraph/cryptography/src/BadKeyError.js","../../node_modules/vite-plugin-node-polyfills/shims/process/dist/index.js","../../node_modules/safe-buffer/index.js","../../node_modules/randombytes/browser.js","../../node_modules/inherits/inherits_browser.js","../../node_modules/events/events.js","../../node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/stream-browser.js","../../node_modules/has-symbols/shams.js","../../node_modules/has-tostringtag/shams.js","../../node_modules/es-object-atoms/index.js","../../node_modules/es-errors/index.js","../../node_modules/es-errors/eval.js","../../node_modules/es-errors/range.js","../../node_modules/es-errors/ref.js","../../node_modules/es-errors/syntax.js","../../node_modules/es-errors/type.js","../../node_modules/es-errors/uri.js","../../node_modules/math-intrinsics/abs.js","../../node_modules/math-intrinsics/floor.js","../../node_modules/math-intrinsics/max.js","../../node_modules/math-intrinsics/min.js","../../node_modules/math-intrinsics/pow.js","../../node_modules/gopd/gOPD.js","../../node_modules/gopd/index.js","../../node_modules/es-define-property/index.js","../../node_modules/has-symbols/index.js","../../node_modules/function-bind/implementation.js","../../node_modules/function-bind/index.js","../../node_modules/call-bind-apply-helpers/functionCall.js","../../node_modules/call-bind-apply-helpers/functionApply.js","../../node_modules/call-bind-apply-helpers/reflectApply.js","../../node_modules/call-bind-apply-helpers/actualApply.js","../../node_modules/call-bind-apply-helpers/index.js","../../node_modules/dunder-proto/get.js","../../node_modules/hasown/index.js","../../node_modules/get-intrinsic/index.js","../../node_modules/call-bound/index.js","../../node_modules/is-arguments/index.js","../../node_modules/is-generator-function/index.js","../../node_modules/is-callable/index.js","../../node_modules/for-each/index.js","../../node_modules/possible-typed-array-names/index.js","../../node_modules/available-typed-arrays/index.js","../../node_modules/define-data-property/index.js","../../node_modules/has-property-descriptors/index.js","../../node_modules/set-function-length/index.js","../../node_modules/call-bind-apply-helpers/applyBind.js","../../node_modules/call-bind/index.js","../../node_modules/which-typed-array/index.js","../../node_modules/is-typed-array/index.js","../../node_modules/util/support/types.js","../../node_modules/util/support/isBufferBrowser.js","../../node_modules/util/util.js","../../node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/buffer_list.js","../../node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/destroy.js","../../node_modules/stream-browserify/node_modules/readable-stream/errors-browser.js","../../node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/state.js","../../node_modules/util-deprecate/browser.js","../../node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_writable.js","../../node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_duplex.js","../../node_modules/string_decoder/lib/string_decoder.js","../../node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","../../node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/async_iterator.js","../../node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/from-browser.js","../../node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_readable.js","../../node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_transform.js","../../node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_passthrough.js","../../node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/pipeline.js","../../node_modules/stream-browserify/index.js","../../node_modules/hash-base/index.js","../../node_modules/md5.js/index.js","../../node_modules/ripemd160/index.js","../../node_modules/sha.js/hash.js","../../node_modules/sha.js/sha.js","../../node_modules/sha.js/sha1.js","../../node_modules/sha.js/sha256.js","../../node_modules/sha.js/sha224.js","../../node_modules/sha.js/sha512.js","../../node_modules/sha.js/sha384.js","../../node_modules/sha.js/index.js","../../node_modules/cipher-base/index.js","../../node_modules/create-hash/browser.js","../../node_modules/create-hmac/legacy.js","../../node_modules/create-hash/md5.js","../../node_modules/create-hmac/browser.js","../../node_modules/browserify-sign/algos.js","../../node_modules/pbkdf2/lib/precondition.js","../../node_modules/pbkdf2/lib/default-encoding.js","../../node_modules/pbkdf2/lib/to-buffer.js","../../node_modules/pbkdf2/lib/sync-browser.js","../../node_modules/pbkdf2/lib/async.js","../../node_modules/pbkdf2/browser.js","../../node_modules/des.js/lib/des/utils.js","../../node_modules/minimalistic-assert/index.js","../../node_modules/des.js/lib/des/cipher.js","../../node_modules/des.js/lib/des/des.js","../../node_modules/des.js/lib/des/cbc.js","../../node_modules/des.js/lib/des/ede.js","../../node_modules/des.js/lib/des.js","../../node_modules/browserify-des/index.js","../../node_modules/browserify-aes/modes/ecb.js","../../node_modules/buffer-xor/index.js","../../node_modules/browserify-aes/modes/cbc.js","../../node_modules/browserify-aes/modes/cfb.js","../../node_modules/browserify-aes/modes/cfb8.js","../../node_modules/browserify-aes/modes/cfb1.js","../../node_modules/browserify-aes/modes/ofb.js","../../node_modules/browserify-aes/incr32.js","../../node_modules/browserify-aes/modes/ctr.js","../../node_modules/browserify-aes/modes/index.js","../../node_modules/browserify-aes/aes.js","../../node_modules/browserify-aes/ghash.js","../../node_modules/browserify-aes/authCipher.js","../../node_modules/browserify-aes/streamCipher.js","../../node_modules/evp_bytestokey/index.js","../../node_modules/browserify-aes/encrypter.js","../../node_modules/browserify-aes/decrypter.js","../../node_modules/browserify-aes/browser.js","../../node_modules/browserify-des/modes.js","../../node_modules/browserify-cipher/browser.js","../../node_modules/diffie-hellman/node_modules/bn.js/lib/bn.js","../../node_modules/miller-rabin/node_modules/bn.js/lib/bn.js","../../node_modules/brorand/index.js","../../node_modules/miller-rabin/lib/mr.js","../../node_modules/diffie-hellman/lib/generatePrime.js","../../node_modules/diffie-hellman/lib/dh.js","../../node_modules/diffie-hellman/browser.js","../../node_modules/process-nextick-args/index.js","../../node_modules/isarray/index.js","../../node_modules/readable-stream/lib/internal/streams/stream-browser.js","../../node_modules/readable-stream/node_modules/safe-buffer/index.js","../../node_modules/core-util-is/lib/util.js","../../node_modules/readable-stream/lib/internal/streams/BufferList.js","../../node_modules/readable-stream/lib/internal/streams/destroy.js","../../node_modules/readable-stream/lib/_stream_writable.js","../../node_modules/readable-stream/lib/_stream_duplex.js","../../node_modules/readable-stream/lib/_stream_readable.js","../../node_modules/readable-stream/lib/_stream_transform.js","../../node_modules/readable-stream/lib/_stream_passthrough.js","../../node_modules/readable-stream/readable-browser.js","../../node_modules/bn.js/lib/bn.js","../../node_modules/browserify-rsa/index.js","../../node_modules/elliptic/node_modules/bn.js/lib/bn.js","../../node_modules/minimalistic-crypto-utils/lib/utils.js","../../node_modules/elliptic/lib/elliptic/utils.js","../../node_modules/elliptic/lib/elliptic/curve/base.js","../../node_modules/elliptic/lib/elliptic/curve/short.js","../../node_modules/elliptic/lib/elliptic/curve/mont.js","../../node_modules/elliptic/lib/elliptic/curve/edwards.js","../../node_modules/elliptic/lib/elliptic/curve/index.js","../../node_modules/hash.js/lib/hash/utils.js","../../node_modules/hash.js/lib/hash/common.js","../../node_modules/hash.js/lib/hash/sha/common.js","../../node_modules/hash.js/lib/hash/sha/1.js","../../node_modules/hash.js/lib/hash/sha/256.js","../../node_modules/hash.js/lib/hash/sha/224.js","../../node_modules/hash.js/lib/hash/sha/512.js","../../node_modules/hash.js/lib/hash/sha/384.js","../../node_modules/hash.js/lib/hash/sha.js","../../node_modules/hash.js/lib/hash/ripemd.js","../../node_modules/hash.js/lib/hash/hmac.js","../../node_modules/hash.js/lib/hash.js","../../node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js","../../node_modules/elliptic/lib/elliptic/curves.js","../../node_modules/hmac-drbg/lib/hmac-drbg.js","../../node_modules/elliptic/lib/elliptic/ec/key.js","../../node_modules/elliptic/lib/elliptic/ec/signature.js","../../node_modules/elliptic/lib/elliptic/ec/index.js","../../node_modules/elliptic/lib/elliptic/eddsa/key.js","../../node_modules/elliptic/lib/elliptic/eddsa/signature.js","../../node_modules/elliptic/lib/elliptic/eddsa/index.js","../../node_modules/elliptic/lib/elliptic.js","../../node_modules/asn1.js/node_modules/bn.js/lib/bn.js","../../node_modules/vm-browserify/index.js","../../node_modules/asn1.js/lib/asn1/api.js","../../node_modules/asn1.js/lib/asn1/base/reporter.js","../../node_modules/asn1.js/lib/asn1/base/buffer.js","../../node_modules/asn1.js/lib/asn1/base/node.js","../../node_modules/asn1.js/lib/asn1/base/index.js","../../node_modules/asn1.js/lib/asn1/constants/der.js","../../node_modules/asn1.js/lib/asn1/constants/index.js","../../node_modules/asn1.js/lib/asn1/decoders/der.js","../../node_modules/asn1.js/lib/asn1/decoders/pem.js","../../node_modules/asn1.js/lib/asn1/decoders/index.js","../../node_modules/asn1.js/lib/asn1/encoders/der.js","../../node_modules/asn1.js/lib/asn1/encoders/pem.js","../../node_modules/asn1.js/lib/asn1/encoders/index.js","../../node_modules/asn1.js/lib/asn1.js","../../node_modules/parse-asn1/certificate.js","../../node_modules/parse-asn1/asn1.js","../../node_modules/parse-asn1/fixProc.js","../../node_modules/parse-asn1/index.js","../../node_modules/browserify-sign/browser/sign.js","../../node_modules/browserify-sign/browser/verify.js","../../node_modules/browserify-sign/browser/index.js","../../node_modules/create-ecdh/node_modules/bn.js/lib/bn.js","../../node_modules/create-ecdh/browser.js","../../node_modules/public-encrypt/mgf.js","../../node_modules/public-encrypt/xor.js","../../node_modules/public-encrypt/node_modules/bn.js/lib/bn.js","../../node_modules/public-encrypt/withPublic.js","../../node_modules/public-encrypt/publicEncrypt.js","../../node_modules/public-encrypt/privateDecrypt.js","../../node_modules/public-encrypt/browser.js","../../node_modules/randomfill/browser.js","../../node_modules/crypto-browserify/index.js","../../node_modules/tweetnacl/nacl-fast.js","../../node_modules/@hashgraph/cryptography/src/util/array.js","../../node_modules/@hashgraph/cryptography/src/encoding/hex.browser.js","../../node_modules/@hashgraph/cryptography/src/Ed25519PublicKey.js","../../node_modules/@hashgraph/cryptography/src/primitive/random.js","../../node_modules/@hashgraph/cryptography/src/encoding/utf8.browser.js","../../node_modules/@hashgraph/cryptography/src/primitive/hmac.browser.js","../../node_modules/@noble/hashes/esm/crypto.js","../../node_modules/@noble/hashes/esm/utils.js","../../node_modules/@noble/hashes/esm/_md.js","../../node_modules/@noble/hashes/esm/sha2.js","../../node_modules/@noble/hashes/esm/hmac.js","../../node_modules/@noble/curves/esm/abstract/utils.js","../../node_modules/@noble/curves/esm/abstract/modular.js","../../node_modules/@noble/curves/esm/abstract/curve.js","../../node_modules/@noble/curves/esm/abstract/weierstrass.js","../../node_modules/@noble/curves/esm/_shortw_utils.js","../../node_modules/@noble/curves/esm/secp256k1.js","../../node_modules/@hashgraph/cryptography/src/primitive/bip32.js","../../node_modules/@hashgraph/cryptography/src/primitive/slip10.js","../../node_modules/@hashgraph/cryptography/src/Ed25519PrivateKey.js","../../node_modules/@hashgraph/cryptography/src/primitive/keccak.js","../../node_modules/@hashgraph/cryptography/src/primitive/utils.js","../../node_modules/@hashgraph/cryptography/src/primitive/ecdsa.js","../../node_modules/@hashgraph/cryptography/src/EcdsaPublicKey.js","../../node_modules/@hashgraph/cryptography/src/EcdsaPrivateKey.js","../../node_modules/@hashgraph/cryptography/src/PublicKey.js","../../node_modules/spark-md5/spark-md5.js","../../node_modules/@hashgraph/cryptography/src/primitive/aes.browser.js","../../node_modules/@hashgraph/cryptography/src/primitive/pbkdf2.browser.js","../../node_modules/@hashgraph/cryptography/src/primitive/keystore.js","../../node_modules/@hashgraph/cryptography/src/encoding/der.js","../../node_modules/@hashgraph/cryptography/src/primitive/pkcs.js","../../node_modules/@hashgraph/cryptography/src/encoding/base64.browser.js","../../node_modules/pvtsutils/build/index.es.js","../../node_modules/pvutils/build/utils.es.js","../../node_modules/asn1js/build/index.es.js","../../node_modules/forge-light/lib/forge.js","../../node_modules/forge-light/lib/baseN.js","../../node_modules/forge-light/lib/util.js","../../node_modules/forge-light/lib/pem.js","../../node_modules/@hashgraph/cryptography/src/encoding/pem.js","../../node_modules/@hashgraph/cryptography/src/util/derive.js","../../node_modules/@hashgraph/cryptography/src/Cache.js","../../node_modules/@hashgraph/cryptography/src/PrivateKey.js","../../node_modules/@hashgraph/cryptography/src/BadMnemonicReason.js","../../node_modules/@hashgraph/cryptography/src/BadMnemonicError.js","../../node_modules/@hashgraph/cryptography/src/words/legacy.js","../../node_modules/@hashgraph/cryptography/src/words/bip39.js","../../node_modules/@hashgraph/cryptography/src/primitive/sha256.browser.js","../../node_modules/@hashgraph/cryptography/src/primitive/bip39.js","../../node_modules/@hashgraph/cryptography/src/util/entropy.js","../../node_modules/@hashgraph/cryptography/src/Mnemonic.js","../../node_modules/@hashgraph/sdk/lib/array.js","../../node_modules/@hashgraph/sdk/lib/Cache.js","../../node_modules/@hashgraph/sdk/lib/Key.js","../../node_modules/@hashgraph/sdk/lib/PublicKey.js","../../node_modules/@ethersproject/logger/lib.esm/_version.js","../../node_modules/@ethersproject/logger/lib.esm/index.js","../../node_modules/@ethersproject/bytes/lib.esm/_version.js","../../node_modules/@ethersproject/bytes/lib.esm/index.js","../../node_modules/@hashgraph/sdk/lib/Mnemonic.js","../../node_modules/@hashgraph/sdk/lib/ObjectMap.js","../../node_modules/@hashgraph/sdk/lib/encoding/hex.browser.js","../../node_modules/@hashgraph/sdk/lib/BadEntityIdError.js","../../node_modules/@hashgraph/sdk/lib/util.js","../../node_modules/@hashgraph/sdk/lib/base32.js","../../node_modules/@hashgraph/sdk/lib/EntityIdHelper.js","../../node_modules/@hashgraph/sdk/lib/EvmAddress.js","../../node_modules/@hashgraph/sdk/lib/account/AccountId.js","../../node_modules/@hashgraph/sdk/lib/Timestamp.js","../../node_modules/@hashgraph/sdk/lib/transaction/TransactionId.js","../../node_modules/@hashgraph/sdk/lib/transaction/SignaturePairMap.js","../../node_modules/@hashgraph/sdk/lib/transaction/NodeAccountIdSignatureMap.js","../../node_modules/@hashgraph/sdk/lib/transaction/List.js","../../node_modules/@hashgraph/sdk/lib/transaction/SignatureMap.js","../../node_modules/@hashgraph/sdk/lib/PrivateKey.js","../../node_modules/@hashgraph/sdk/lib/KeyList.js","../../node_modules/@hashgraph/sdk/lib/long.js","../../node_modules/@hashgraph/sdk/lib/HbarUnit.js","../../node_modules/@hashgraph/sdk/lib/Hbar.js","../../node_modules/@hashgraph/sdk/lib/StatusError.js","../../node_modules/@hashgraph/sdk/lib/ReceiptStatusError.js","../../node_modules/@hashgraph/sdk/lib/Status.js","../../node_modules/@hashgraph/sdk/lib/grpc/GrpcStatus.js","../../node_modules/@hashgraph/sdk/lib/grpc/GrpcServiceError.js","../../node_modules/@hashgraph/sdk/lib/http/HttpError.js","../../node_modules/@hashgraph/sdk/lib/MaxAttemptsOrTimeoutError.js","../../node_modules/@hashgraph/sdk/lib/Executable.js","../../node_modules/@hashgraph/sdk/lib/PrecheckStatusError.js","../../node_modules/@hashgraph/sdk/lib/MaxQueryPaymentExceeded.js","../../node_modules/@hashgraph/sdk/lib/query/QueryBase.js","../../node_modules/@hashgraph/sdk/lib/query/CostQuery.js","../../node_modules/@hashgraph/sdk/lib/query/Query.js","../../node_modules/@hashgraph/sdk/lib/contract/ContractId.js","../../node_modules/@hashgraph/sdk/lib/file/FileId.js","../../node_modules/@hashgraph/sdk/lib/topic/TopicId.js","../../node_modules/@hashgraph/sdk/lib/token/TokenId.js","../../node_modules/@hashgraph/sdk/lib/schedule/ScheduleId.js","../../node_modules/@hashgraph/sdk/lib/ExchangeRate.js","../../node_modules/@hashgraph/sdk/lib/transaction/TransactionReceipt.js","../../node_modules/@hashgraph/sdk/lib/transaction/TransactionReceiptQuery.js","../../node_modules/@hashgraph/sdk/lib/Transfer.js","../../node_modules/@hashgraph/sdk/lib/contract/ContractLogInfo.js","../../node_modules/@hashgraph/sdk/lib/encoding/utf8.browser.js","../../node_modules/@ethersproject/bignumber/lib.esm/_version.js","../../node_modules/@ethersproject/bignumber/lib.esm/bignumber.js","../../node_modules/@ethersproject/properties/lib.esm/index.js","../../node_modules/@ethersproject/abi/lib.esm/_version.js","../../node_modules/@ethersproject/abi/lib.esm/fragments.js","../../node_modules/@ethersproject/abi/lib.esm/coders/abstract-coder.js","../../node_modules/js-sha3/src/sha3.js","../../node_modules/@ethersproject/keccak256/lib.esm/index.js","../../node_modules/@ethersproject/rlp/lib.esm/_version.js","../../node_modules/@ethersproject/rlp/lib.esm/index.js","../../node_modules/@ethersproject/address/lib.esm/_version.js","../../node_modules/@ethersproject/address/lib.esm/index.js","../../node_modules/@ethersproject/abi/lib.esm/coders/address.js","../../node_modules/@ethersproject/abi/lib.esm/coders/anonymous.js","../../node_modules/@ethersproject/abi/lib.esm/coders/array.js","../../node_modules/@ethersproject/abi/lib.esm/coders/boolean.js","../../node_modules/@ethersproject/abi/lib.esm/coders/bytes.js","../../node_modules/@ethersproject/abi/lib.esm/coders/fixed-bytes.js","../../node_modules/@ethersproject/abi/lib.esm/coders/null.js","../../node_modules/@ethersproject/constants/lib.esm/bignumbers.js","../../node_modules/@ethersproject/abi/lib.esm/coders/number.js","../../node_modules/@ethersproject/strings/lib.esm/_version.js","../../node_modules/@ethersproject/strings/lib.esm/utf8.js","../../node_modules/@ethersproject/abi/lib.esm/coders/string.js","../../node_modules/@ethersproject/abi/lib.esm/coders/tuple.js","../../node_modules/@ethersproject/abi/lib.esm/abi-coder.js","../../node_modules/@hashgraph/sdk/lib/contract/ContractNonceInfo.js","../../node_modules/@hashgraph/sdk/lib/contract/ContractFunctionResult.js","../../node_modules/@hashgraph/sdk/lib/account/TokenTransferAccountMap.js","../../node_modules/@hashgraph/sdk/lib/account/TokenTransferMap.js","../../node_modules/@hashgraph/sdk/lib/account/TokenNftTransferMap.js","../../node_modules/@hashgraph/sdk/lib/token/AssessedCustomFee.js","../../node_modules/@hashgraph/sdk/lib/token/TokenAssociation.js","../../node_modules/@hashgraph/sdk/lib/token/TokenTransfer.js","../../node_modules/@hashgraph/sdk/lib/token/NftId.js","../../node_modules/@hashgraph/sdk/lib/token/PendingAirdropId.js","../../node_modules/@hashgraph/sdk/lib/token/PendingAirdropRecord.js","../../node_modules/@hashgraph/sdk/lib/transaction/TransactionRecord.js","../../node_modules/@hashgraph/sdk/lib/RecordStatusError.js","../../node_modules/@hashgraph/sdk/lib/transaction/TransactionRecordQuery.js","../../node_modules/@hashgraph/sdk/lib/transaction/TransactionResponse.js","../../node_modules/@hashgraph/sdk/lib/cryptography/sha384.browser.js","../../node_modules/@hashgraph/sdk/lib/transaction/TransactionHashMap.js","../../node_modules/@hashgraph/sdk/lib/transaction/NodeAccountIdSignatureMapLegacy.js","../../node_modules/@hashgraph/sdk/lib/transaction/SignatureMapLegacy.js","../../node_modules/@hashgraph/sdk/lib/token/CustomFee.js","../../node_modules/@hashgraph/sdk/lib/token/CustomFixedFee.js","../../node_modules/@hashgraph/sdk/lib/transaction/CustomFeeLimit.js","../../node_modules/@hashgraph/sdk/lib/transaction/Transaction.js","../../node_modules/@hashgraph/sdk/lib/token/TokenNftTransfer.js","../../node_modules/@hashgraph/sdk/lib/account/NullableTokenDecimalMap.js","../../node_modules/@hashgraph/sdk/lib/token/AbstractTokenTransferTransaction.js","../../node_modules/@hashgraph/sdk/lib/token/TokenAirdropTransaction.js","../../node_modules/@hashgraph/sdk/lib/token/AirdropPendingTransaction.js","../../node_modules/@hashgraph/sdk/lib/token/TokenClaimAirdropTransaction.js","../../node_modules/@hashgraph/sdk/lib/token/TokenCancelAirdropTransaction.js","../../node_modules/@hashgraph/sdk/lib/account/HbarAllowance.js","../../node_modules/@hashgraph/sdk/lib/account/TokenAllowance.js","../../node_modules/@hashgraph/sdk/lib/account/TokenNftAllowance.js","../../node_modules/@hashgraph/sdk/lib/account/AccountAllowanceApproveTransaction.js","../../node_modules/@hashgraph/sdk/lib/account/AccountAllowanceDeleteTransaction.js","../../node_modules/@hashgraph/sdk/lib/account/TokenBalanceMap.js","../../node_modules/@hashgraph/sdk/lib/account/TokenDecimalMap.js","../../node_modules/@hashgraph/sdk/lib/account/AccountBalance.js","../../node_modules/@hashgraph/sdk/lib/account/AccountBalanceQuery.js","../../node_modules/@hashgraph/sdk/lib/Duration.js","../../node_modules/@hashgraph/sdk/lib/account/AccountCreateTransaction.js","../../node_modules/@hashgraph/sdk/lib/account/AccountDeleteTransaction.js","../../node_modules/@hashgraph/sdk/lib/LedgerId.js","../../node_modules/@hashgraph/sdk/lib/StakingInfo.js","../../node_modules/@hashgraph/sdk/lib/account/LiveHash.js","../../node_modules/@hashgraph/sdk/lib/account/TokenRelationship.js","../../node_modules/@hashgraph/sdk/lib/account/TokenRelationshipMap.js","../../node_modules/@hashgraph/sdk/lib/account/AccountInfo.js","../../node_modules/@hashgraph/sdk/lib/account/AccountInfoQuery.js","../../node_modules/@hashgraph/sdk/lib/account/AccountRecordsQuery.js","../../node_modules/@hashgraph/sdk/lib/account/AccountUpdateTransaction.js","../../node_modules/@hashgraph/sdk/lib/address_book/IPv4AddressPart.js","../../node_modules/@hashgraph/sdk/lib/address_book/IPv4Address.js","../../node_modules/@hashgraph/sdk/lib/address_book/Endpoint.js","../../node_modules/@hashgraph/sdk/lib/address_book/NodeAddress.js","../../node_modules/@hashgraph/sdk/lib/address_book/NodeAddressBook.js","../../node_modules/@hashgraph/sdk/lib/network/AddressBookQuery.js","../../node_modules/@hashgraph/sdk/lib/FreezeType.js","../../node_modules/@hashgraph/sdk/lib/system/FreezeTransaction.js","../../node_modules/@hashgraph/sdk/lib/transaction/BatchTransaction.js","../../node_modules/@hashgraph/sdk/lib/contract/ContractByteCodeQuery.js","../../node_modules/@hashgraph/sdk/lib/cryptography/keccak.js","../../node_modules/@hashgraph/sdk/lib/contract/ContractFunctionSelector.js","../../node_modules/@hashgraph/sdk/lib/contract/ContractFunctionParameters.js","../../node_modules/@hashgraph/sdk/lib/contract/ContractCallQuery.js","../../node_modules/@hashgraph/sdk/lib/file/FileCreateTransaction.js","../../node_modules/@hashgraph/sdk/lib/file/FileAppendTransaction.js","../../node_modules/@hashgraph/sdk/lib/file/FileDeleteTransaction.js","../../node_modules/@hashgraph/sdk/lib/contract/ContractCreateTransaction.js","../../node_modules/@hashgraph/sdk/lib/contract/ContractDeleteTransaction.js","../../node_modules/@hashgraph/sdk/lib/contract/ContractExecuteTransaction.js","../../node_modules/@hashgraph/sdk/lib/contract/ContractInfo.js","../../node_modules/@hashgraph/sdk/lib/contract/ContractInfoQuery.js","../../node_modules/@hashgraph/sdk/lib/contract/ContractUpdateTransaction.js","../../node_modules/@hashgraph/sdk/lib/token/FeeAssessmentMethod.js","../../node_modules/@hashgraph/sdk/lib/contract/DelegateContractId.js","../../node_modules/@hashgraph/sdk/lib/EthereumTransaction.js","../../node_modules/@hashgraph/sdk/lib/EthereumTransactionData.js","../../node_modules/@hashgraph/sdk/lib/EthereumTransactionDataLegacy.js","../../node_modules/@hashgraph/sdk/lib/EthereumTransactionDataEip1559.js","../../node_modules/@hashgraph/sdk/lib/EthereumTransactionDataEip2930.js","../../node_modules/@hashgraph/sdk/lib/FeeDataType.js","../../node_modules/@hashgraph/sdk/lib/RequestType.js","../../node_modules/@hashgraph/sdk/lib/file/FileContentsQuery.js","../../node_modules/@hashgraph/sdk/lib/file/FileInfo.js","../../node_modules/@hashgraph/sdk/lib/file/FileInfoQuery.js","../../node_modules/@hashgraph/sdk/lib/file/FileUpdateTransaction.js","../../node_modules/@hashgraph/sdk/lib/account/LiveHashAddTransaction.js","../../node_modules/@hashgraph/sdk/lib/account/LiveHashDeleteTransaction.js","../../node_modules/@hashgraph/sdk/lib/account/LiveHashQuery.js","../../node_modules/@hashgraph/sdk/lib/network/SemanticVersion.js","../../node_modules/@hashgraph/sdk/lib/network/NetworkVersionInfo.js","../../node_modules/@hashgraph/sdk/lib/network/NetworkVersionInfoQuery.js","../../node_modules/@hashgraph/sdk/lib/PrngTransaction.js","../../node_modules/@hashgraph/sdk/lib/schedule/ScheduleCreateTransaction.js","../../node_modules/@hashgraph/sdk/lib/schedule/ScheduleDeleteTransaction.js","../../node_modules/@hashgraph/sdk/lib/schedule/ScheduleInfo.js","../../node_modules/@hashgraph/sdk/lib/schedule/ScheduleInfoQuery.js","../../node_modules/@hashgraph/sdk/lib/schedule/ScheduleSignTransaction.js","../../node_modules/@hashgraph/sdk/lib/system/SystemDeleteTransaction.js","../../node_modules/@hashgraph/sdk/lib/system/SystemUndeleteTransaction.js","../../node_modules/@hashgraph/sdk/lib/token/TokenAssociateTransaction.js","../../node_modules/@hashgraph/sdk/lib/token/TokenBurnTransaction.js","../../node_modules/@hashgraph/sdk/lib/token/TokenReference.js","../../node_modules/@hashgraph/sdk/lib/token/TokenRejectTransaction.js","../../node_modules/@hashgraph/sdk/lib/token/TokenDissociateTransaction.js","../../node_modules/@hashgraph/sdk/lib/token/CustomFractionalFee.js","../../node_modules/@hashgraph/sdk/lib/token/CustomRoyaltyFee.js","../../node_modules/@hashgraph/sdk/lib/token/TokenType.js","../../node_modules/@hashgraph/sdk/lib/token/TokenSupplyType.js","../../node_modules/@hashgraph/sdk/lib/token/TokenCreateTransaction.js","../../node_modules/@hashgraph/sdk/lib/token/TokenDeleteTransaction.js","../../node_modules/@hashgraph/sdk/lib/token/TokenFeeScheduleUpdateTransaction.js","../../node_modules/@hashgraph/sdk/lib/token/TokenFreezeTransaction.js","../../node_modules/@hashgraph/sdk/lib/token/TokenGrantKycTransaction.js","../../node_modules/@hashgraph/sdk/lib/token/TokenInfo.js","../../node_modules/@hashgraph/sdk/lib/token/TokenInfoQuery.js","../../node_modules/@hashgraph/sdk/lib/token/TokenMintTransaction.js","../../node_modules/@hashgraph/sdk/lib/token/TokenNftInfo.js","../../node_modules/@hashgraph/sdk/lib/token/TokenNftInfoQuery.js","../../node_modules/@hashgraph/sdk/lib/token/TokenPauseTransaction.js","../../node_modules/@hashgraph/sdk/lib/token/TokenRevokeKycTransaction.js","../../node_modules/@hashgraph/sdk/lib/token/TokenUnfreezeTransaction.js","../../node_modules/@hashgraph/sdk/lib/token/TokenUnpauseTransaction.js","../../node_modules/@hashgraph/sdk/lib/token/TokenKeyValidation.js","../../node_modules/@hashgraph/sdk/lib/token/TokenUpdateTransaction.js","../../node_modules/@hashgraph/sdk/lib/token/TokenWipeTransaction.js","../../node_modules/@hashgraph/sdk/lib/topic/TopicCreateTransaction.js","../../node_modules/@hashgraph/sdk/lib/topic/TopicDeleteTransaction.js","../../node_modules/@hashgraph/sdk/lib/topic/TopicInfo.js","../../node_modules/@hashgraph/sdk/lib/topic/TopicInfoQuery.js","../../node_modules/@hashgraph/sdk/lib/topic/TopicMessageSubmitTransaction.js","../../node_modules/@hashgraph/sdk/lib/topic/TopicUpdateTransaction.js","../../node_modules/@hashgraph/sdk/lib/account/HbarTransferMap.js","../../node_modules/@hashgraph/sdk/lib/account/TransferTransaction.js","../../node_modules/quick-format-unescaped/index.js","../../node_modules/pino/browser.js","../../node_modules/@hashgraph/sdk/lib/logger/LogLevel.js","../../node_modules/@hashgraph/sdk/lib/token/TokenUpdateNftsTransaction.js","../../node_modules/@hashgraph/sdk/lib/node/ServiceEndpoint.js","../../node_modules/@hashgraph/sdk/lib/node/NodeCreateTransaction.js","../../node_modules/@hashgraph/sdk/lib/node/NodeDeleteTransaction.js","../../node_modules/@hashgraph/sdk/lib/node/NodeUpdateTransaction.js","../../node_modules/@hashgraph/sdk/lib/address_book/AddressBooks.js","../../node_modules/@hashgraph/sdk/lib/constants/ClientConstants.js","../../node_modules/@hashgraph/sdk/lib/exports.js","../../node_modules/@hashgraph/sdk/lib/ManagedNodeAddress.js","../../node_modules/@hashgraph/sdk/lib/ManagedNode.js","../../node_modules/@hashgraph/sdk/lib/Node.js","../../node_modules/@hashgraph/sdk/lib/client/ManagedNetwork.js","../../node_modules/@hashgraph/sdk/lib/client/Network.js","../../node_modules/@hashgraph/sdk/lib/MirrorNode.js","../../node_modules/@hashgraph/sdk/lib/client/MirrorNetwork.js","../../node_modules/@hashgraph/sdk/lib/client/Client.js","../../node_modules/@hashgraph/sdk/lib/http/HttpStatus.js","../../node_modules/@hashgraph/sdk/lib/version.js","../../node_modules/@hashgraph/sdk/lib/channel/Channel.js","../../node_modules/@hashgraph/sdk/lib/channel/WebChannel.js","../../node_modules/@hashgraph/sdk/lib/client/WebClient.js","../../node_modules/@hashgraph/sdk/lib/account/AccountAllowanceAdjustTransaction.js","../../node_modules/@hashgraph/sdk/lib/account/AccountInfoFlow.js","../../node_modules/@hashgraph/sdk/lib/contract/ContractCreateFlow.js","../../node_modules/@hashgraph/sdk/lib/EthereumFlow.js","../../node_modules/@hashgraph/sdk/lib/ExchangeRates.js","../../node_modules/@hashgraph/sdk/lib/FeeComponents.js","../../node_modules/@hashgraph/sdk/lib/FeeData.js","../../node_modules/@hashgraph/sdk/lib/TransactionFeeSchedule.js","../../node_modules/@hashgraph/sdk/lib/FeeSchedule.js","../../node_modules/@hashgraph/sdk/lib/FeeSchedules.js","../../node_modules/@hashgraph/sdk/lib/query/MirrorNodeContractQuery.js","../../node_modules/@hashgraph/sdk/lib/query/MirrorNodeContractCallQuery.js","../../node_modules/@hashgraph/sdk/lib/query/MirrorNodeContractEstimateQuery.js","../../node_modules/@hashgraph/sdk/lib/account/ProxyStaker.js","../../node_modules/@hashgraph/sdk/lib/SignerSignature.js","../../node_modules/@hashgraph/sdk/lib/topic/SubscriptionHandle.js","../../node_modules/@hashgraph/sdk/lib/token/TokenRejectFlow.js","../../node_modules/@hashgraph/sdk/lib/topic/TopicMessageChunk.js","../../node_modules/@hashgraph/sdk/lib/topic/TopicMessage.js","../../node_modules/@hashgraph/sdk/lib/topic/TopicMessageQuery.js","../../node_modules/@hashgraph/sdk/lib/Wallet.js","../../node_modules/@hashgraph/sdk/lib/logger/Logger.js","../../node_modules/@hashgraph/sdk/lib/Provider.js","../../node_modules/@hashgraph/sdk/lib/Signer.js","../../node_modules/@hashgraph/hedera-wallet-connect/dist/lib/shared/chainIds.js","../../node_modules/@hashgraph/hedera-wallet-connect/dist/lib/shared/events.js","../../node_modules/@hashgraph/hedera-wallet-connect/dist/lib/shared/methods.js","../../node_modules/@hashgraph/hedera-wallet-connect/dist/lib/shared/utils.js","../../node_modules/@hashgraph/hedera-wallet-connect/dist/lib/shared/extensionController.js","../../node_modules/tslib/tslib.es6.js","../../node_modules/@walletconnect/time/dist/cjs/utils/delay.js","../../node_modules/@walletconnect/time/dist/cjs/constants/misc.js","../../node_modules/@walletconnect/time/dist/cjs/constants/time.js","../../node_modules/@walletconnect/time/dist/cjs/constants/index.js","../../node_modules/@walletconnect/time/dist/cjs/utils/convert.js","../../node_modules/@walletconnect/time/dist/cjs/utils/index.js","../../node_modules/@walletconnect/time/dist/cjs/watch.js","../../node_modules/@walletconnect/time/dist/cjs/types/watch.js","../../node_modules/@walletconnect/time/dist/cjs/types/index.js","../../node_modules/@walletconnect/time/dist/cjs/index.js","../../node_modules/@walletconnect/events/dist/esm/events.js","../../node_modules/@walletconnect/heartbeat/dist/index.es.js","../../node_modules/vite-plugin-node-polyfills/shims/global/dist/index.js","../../node_modules/destr/dist/index.mjs","../../node_modules/unstorage/dist/shared/unstorage.BqzpVTXx.mjs","../../node_modules/unstorage/dist/index.mjs","../../node_modules/idb-keyval/dist/index.js","../../node_modules/@walletconnect/safe-json/dist/esm/index.js","../../node_modules/@walletconnect/keyvaluestorage/dist/index.es.js","../../node_modules/@walletconnect/logger/node_modules/pino/browser.js","../../node_modules/@walletconnect/logger/dist/index.es.js","../../node_modules/@stablelib/random/lib/source/browser.js","../../node_modules/@stablelib/wipe/lib/wipe.js","../../node_modules/@stablelib/random/lib/source/node.js","../../node_modules/@stablelib/random/lib/source/system.js","../../node_modules/@stablelib/int/lib/int.js","../../node_modules/@stablelib/binary/lib/binary.js","../../node_modules/@stablelib/random/lib/random.js","../../node_modules/@stablelib/sha512/lib/sha512.js","../../node_modules/@stablelib/ed25519/lib/ed25519.js","../../node_modules/@walletconnect/relay-auth/dist/esm/constants.js","../../node_modules/uint8arrays/esm/src/alloc.js","../../node_modules/uint8arrays/esm/src/concat.js","../../node_modules/multiformats/esm/vendor/base-x.js","../../node_modules/multiformats/esm/src/bytes.js","../../node_modules/multiformats/esm/src/bases/base.js","../../node_modules/multiformats/esm/src/bases/identity.js","../../node_modules/multiformats/esm/src/bases/base2.js","../../node_modules/multiformats/esm/src/bases/base8.js","../../node_modules/multiformats/esm/src/bases/base10.js","../../node_modules/multiformats/esm/src/bases/base16.js","../../node_modules/multiformats/esm/src/bases/base32.js","../../node_modules/multiformats/esm/src/bases/base36.js","../../node_modules/multiformats/esm/src/bases/base58.js","../../node_modules/multiformats/esm/src/bases/base64.js","../../node_modules/multiformats/esm/src/bases/base256emoji.js","../../node_modules/multiformats/esm/src/codecs/json.js","../../node_modules/multiformats/esm/src/basics.js","../../node_modules/uint8arrays/esm/src/util/bases.js","../../node_modules/uint8arrays/esm/src/to-string.js","../../node_modules/uint8arrays/esm/src/from-string.js","../../node_modules/@walletconnect/relay-auth/dist/esm/utils.js","../../node_modules/@walletconnect/relay-auth/dist/esm/api.js","../../node_modules/@walletconnect/window-getters/dist/cjs/index.js","../../node_modules/@walletconnect/utils/node_modules/@walletconnect/window-metadata/dist/cjs/index.js","../../node_modules/strict-uri-encode/index.js","../../node_modules/decode-uri-component/index.js","../../node_modules/split-on-first/index.js","../../node_modules/filter-obj/index.js","../../node_modules/query-string/index.js","../../node_modules/@ethersproject/hash/lib.esm/message.js","../../node_modules/@ethersproject/signing-key/lib.esm/elliptic.js","../../node_modules/@ethersproject/signing-key/lib.esm/_version.js","../../node_modules/@ethersproject/signing-key/lib.esm/index.js","../../node_modules/@ethersproject/transactions/lib.esm/index.js","../../node_modules/@stablelib/chacha/lib/chacha.js","../../node_modules/@stablelib/constant-time/lib/constant-time.js","../../node_modules/@stablelib/poly1305/lib/poly1305.js","../../node_modules/@stablelib/chacha20poly1305/lib/chacha20poly1305.js","../../node_modules/@stablelib/hash/lib/hash.js","../../node_modules/@stablelib/hmac/lib/hmac.js","../../node_modules/@stablelib/hkdf/lib/hkdf.js","../../node_modules/@stablelib/sha256/lib/sha256.js","../../node_modules/@stablelib/x25519/lib/x25519.js","../../node_modules/@walletconnect/relay-api/dist/index.es.js","../../node_modules/@walletconnect/utils/dist/index.es.js","../../node_modules/@walletconnect/jsonrpc-utils/dist/esm/constants.js","../../node_modules/@walletconnect/jsonrpc-utils/dist/esm/error.js","../../node_modules/@walletconnect/environment/dist/cjs/crypto.js","../../node_modules/@walletconnect/environment/dist/cjs/env.js","../../node_modules/@walletconnect/jsonrpc-utils/dist/esm/format.js","../../node_modules/@walletconnect/environment/dist/cjs/index.js","../../node_modules/@walletconnect/jsonrpc-types/dist/index.es.js","../../node_modules/@walletconnect/jsonrpc-utils/dist/esm/url.js","../../node_modules/@walletconnect/jsonrpc-utils/dist/esm/validators.js","../../node_modules/@walletconnect/jsonrpc-provider/dist/index.es.js","../../node_modules/lodash.isequal/index.js","../../node_modules/unfetch/dist/unfetch.module.js","../../node_modules/@walletconnect/auth-client/dist/index.es.js","../../node_modules/isomorphic-unfetch/browser.js","../../node_modules/@walletconnect/sign-client/node_modules/@walletconnect/types/dist/index.es.js","../../node_modules/@walletconnect/sign-client/node_modules/detect-browser/es/index.js","../../node_modules/@walletconnect/sign-client/node_modules/@walletconnect/window-metadata/dist/cjs/index.js","../../node_modules/@walletconnect/sign-client/node_modules/bn.js/lib/bn.js","../../node_modules/@walletconnect/sign-client/node_modules/elliptic/lib/elliptic/utils.js","../../node_modules/@walletconnect/sign-client/node_modules/elliptic/lib/elliptic/curve/base.js","../../node_modules/@walletconnect/sign-client/node_modules/elliptic/lib/elliptic/curve/short.js","../../node_modules/@walletconnect/sign-client/node_modules/elliptic/lib/elliptic/curve/mont.js","../../node_modules/@walletconnect/sign-client/node_modules/elliptic/lib/elliptic/curve/edwards.js","../../node_modules/@walletconnect/sign-client/node_modules/elliptic/lib/elliptic/curve/index.js","../../node_modules/@walletconnect/sign-client/node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js","../../node_modules/@walletconnect/sign-client/node_modules/elliptic/lib/elliptic/curves.js","../../node_modules/@walletconnect/sign-client/node_modules/elliptic/lib/elliptic/ec/key.js","../../node_modules/@walletconnect/sign-client/node_modules/elliptic/lib/elliptic/ec/signature.js","../../node_modules/@walletconnect/sign-client/node_modules/elliptic/lib/elliptic/ec/index.js","../../node_modules/@walletconnect/sign-client/node_modules/elliptic/lib/elliptic/eddsa/key.js","../../node_modules/@walletconnect/sign-client/node_modules/elliptic/lib/elliptic/eddsa/signature.js","../../node_modules/@walletconnect/sign-client/node_modules/elliptic/lib/elliptic/eddsa/index.js","../../node_modules/@walletconnect/sign-client/node_modules/elliptic/lib/elliptic.js","../../node_modules/@walletconnect/sign-client/node_modules/@walletconnect/utils/dist/index.es.js","../../node_modules/@walletconnect/sign-client/node_modules/@walletconnect/jsonrpc-ws-connection/dist/index.es.js","../../node_modules/@walletconnect/sign-client/node_modules/@walletconnect/core/dist/index.es.js","../../node_modules/@walletconnect/sign-client/dist/index.es.js","../../node_modules/@walletconnect/web3wallet/dist/index.es.js","../../node_modules/@walletconnect/window-metadata/dist/cjs/index.js","../../node_modules/@walletconnect/browser-utils/node_modules/@walletconnect/window-getters/dist/cjs/index.js","../../node_modules/detect-browser/es/index.js","../../node_modules/@walletconnect/browser-utils/dist/esm/browser.js","../../node_modules/@walletconnect/browser-utils/node_modules/@walletconnect/safe-json/dist/esm/index.js","../../node_modules/@walletconnect/browser-utils/dist/esm/json.js","../../node_modules/@walletconnect/browser-utils/dist/esm/local.js","../../node_modules/@walletconnect/browser-utils/dist/esm/mobile.js","../../node_modules/@walletconnect/browser-utils/dist/esm/registry.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/can-promise.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/isarray/index.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/utils/typedarray-buffer.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/core/utils.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/core/bit-buffer.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/core/error-correction-level.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/core/bit-matrix.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/core/alignment-pattern.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/core/finder-pattern.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/core/mask-pattern.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/core/error-correction-code.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/core/galois-field.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/core/polynomial.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/core/reed-solomon-encoder.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/core/version-check.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/core/regex.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/core/mode.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/core/version.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/core/format-info.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/core/numeric-data.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/core/alphanumeric-data.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/core/byte-data.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/core/kanji-data.js","../../node_modules/dijkstrajs/dijkstra.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/core/segments.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/core/qrcode.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/renderer/utils.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/renderer/canvas.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/renderer/svg-tag.js","../../node_modules/@walletconnect/qrcode-modal/node_modules/qrcode/lib/browser.js","../../node_modules/toggle-selection/index.js","../../node_modules/copy-to-clipboard/index.js","../../node_modules/preact/dist/preact.module.js","../../node_modules/preact/hooks/dist/hooks.module.js","../../node_modules/preact/compat/dist/compat.module.js","../../node_modules/@walletconnect/qrcode-modal/dist/cjs/index.js","../../node_modules/proxy-compare/dist/index.modern.js","../../node_modules/valtio/esm/vanilla.mjs","../../node_modules/@walletconnect/modal-core/dist/index.js","../../node_modules/@walletconnect/modal/dist/index.js","../../node_modules/@hashgraph/hedera-wallet-connect/dist/lib/shared/logger.js","../../node_modules/@hashgraph/hedera-wallet-connect/dist/lib/dapp/SessionNotFoundError.js","../../node_modules/@hashgraph/hedera-wallet-connect/dist/lib/dapp/DAppSigner.js","../../node_modules/@hashgraph/hedera-wallet-connect/dist/lib/dapp/index.js","../../src/logger/logger.ts","../../node_modules/fetch-retry/dist/fetch-retry.umd.js","../../src/utils/retry.ts","../../src/types.ts","../../src/index.ts","../../node_modules/@lit/reactive-element/css-tag.js","../../node_modules/@lit/reactive-element/reactive-element.js","../../node_modules/lit-html/lit-html.js","../../node_modules/lit-element/lit-element.js","../../node_modules/@lit/reactive-element/decorators/custom-element.js","../../node_modules/@lit/reactive-element/decorators/property.js","../../node_modules/@lit/reactive-element/decorators/state.js","../../node_modules/@lit/reactive-element/decorators/query-assigned-elements.js","../../node_modules/lit-html/directive.js","../../node_modules/lit-html/directives/class-map.js","../../node_modules/@motionone/utils/dist/array.es.js","../../node_modules/@motionone/utils/dist/clamp.es.js","../../node_modules/@motionone/utils/dist/defaults.es.js","../../node_modules/@motionone/utils/dist/is-number.es.js","../../node_modules/@motionone/utils/dist/is-easing-list.es.js","../../node_modules/@motionone/utils/dist/wrap.es.js","../../node_modules/@motionone/utils/dist/easing.es.js","../../node_modules/@motionone/utils/dist/mix.es.js","../../node_modules/@motionone/utils/dist/noop.es.js","../../node_modules/@motionone/utils/dist/progress.es.js","../../node_modules/@motionone/utils/dist/offset.es.js","../../node_modules/@motionone/utils/dist/interpolate.es.js","../../node_modules/@motionone/utils/dist/is-cubic-bezier.es.js","../../node_modules/@motionone/utils/dist/is-easing-generator.es.js","../../node_modules/@motionone/utils/dist/is-function.es.js","../../node_modules/@motionone/utils/dist/is-string.es.js","../../node_modules/@motionone/utils/dist/time.es.js","../../node_modules/@motionone/easing/dist/cubic-bezier.es.js","../../node_modules/@motionone/easing/dist/steps.es.js","../../node_modules/@motionone/animation/dist/utils/easing.es.js","../../node_modules/@motionone/animation/dist/Animation.es.js","../../node_modules/hey-listen/dist/hey-listen.es.js","../../node_modules/@motionone/types/dist/MotionValue.es.js","../../node_modules/@motionone/dom/dist/animate/data.es.js","../../node_modules/@motionone/dom/dist/animate/utils/transforms.es.js","../../node_modules/@motionone/dom/dist/animate/utils/css-var.es.js","../../node_modules/@motionone/dom/dist/animate/utils/feature-detection.es.js","../../node_modules/@motionone/dom/dist/animate/utils/easing.es.js","../../node_modules/@motionone/dom/dist/animate/utils/keyframes.es.js","../../node_modules/@motionone/dom/dist/animate/utils/get-style-name.es.js","../../node_modules/@motionone/dom/dist/animate/style.es.js","../../node_modules/@motionone/dom/dist/animate/utils/stop-animation.es.js","../../node_modules/@motionone/dom/dist/animate/utils/get-unit.es.js","../../node_modules/@motionone/dom/dist/animate/animate-style.es.js","../../node_modules/@motionone/dom/dist/animate/utils/options.es.js","../../node_modules/@motionone/dom/dist/utils/resolve-elements.es.js","../../node_modules/@motionone/dom/dist/animate/utils/controls.es.js","../../node_modules/@motionone/dom/dist/utils/stagger.es.js","../../node_modules/@motionone/dom/dist/animate/create-animate.es.js","../../node_modules/@motionone/dom/dist/animate/index.es.js","../../node_modules/motion/dist/animate.es.js","../../node_modules/lit-html/directives/if-defined.js","../../node_modules/qrcode/lib/can-promise.js","../../node_modules/qrcode/lib/core/utils.js","../../node_modules/qrcode/lib/core/bit-buffer.js","../../node_modules/qrcode/lib/core/error-correction-level.js","../../node_modules/qrcode/lib/core/bit-matrix.js","../../node_modules/qrcode/lib/core/alignment-pattern.js","../../node_modules/qrcode/lib/core/finder-pattern.js","../../node_modules/qrcode/lib/core/mask-pattern.js","../../node_modules/qrcode/lib/core/error-correction-code.js","../../node_modules/qrcode/lib/core/galois-field.js","../../node_modules/qrcode/lib/core/polynomial.js","../../node_modules/qrcode/lib/core/reed-solomon-encoder.js","../../node_modules/qrcode/lib/core/version-check.js","../../node_modules/qrcode/lib/core/regex.js","../../node_modules/qrcode/lib/core/mode.js","../../node_modules/qrcode/lib/core/version.js","../../node_modules/qrcode/lib/core/format-info.js","../../node_modules/qrcode/lib/core/numeric-data.js","../../node_modules/qrcode/lib/core/alphanumeric-data.js","../../node_modules/encode-utf8/index.js","../../node_modules/qrcode/lib/core/byte-data.js","../../node_modules/qrcode/lib/core/kanji-data.js","../../node_modules/qrcode/lib/core/segments.js","../../node_modules/qrcode/lib/core/qrcode.js","../../node_modules/qrcode/lib/renderer/utils.js","../../node_modules/qrcode/lib/renderer/canvas.js","../../node_modules/qrcode/lib/renderer/svg-tag.js","../../node_modules/qrcode/lib/browser.js","../../node_modules/@walletconnect/modal-ui/dist/index.js"],"sourcesContent":["var buffer = {};\n\nvar base64Js = {};\n\nbase64Js.byteLength = byteLength;\nbase64Js.toByteArray = toByteArray;\nbase64Js.fromByteArray = fromByteArray;\n\nvar lookup = [];\nvar revLookup = [];\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62;\nrevLookup['_'.charCodeAt(0)] = 63;\n\nfunction getLens (b64) {\n var len = b64.length;\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=');\n if (validLen === -1) validLen = len;\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4);\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp;\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n\n var curByte = 0;\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen;\n\n var i;\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)];\n arr[curByte++] = (tmp >> 16) & 0xFF;\n arr[curByte++] = (tmp >> 8) & 0xFF;\n arr[curByte++] = tmp & 0xFF;\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4);\n arr[curByte++] = tmp & 0xFF;\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2);\n arr[curByte++] = (tmp >> 8) & 0xFF;\n arr[curByte++] = tmp & 0xFF;\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp;\n var output = [];\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF);\n output.push(tripletToBase64(tmp));\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp;\n var len = uint8.length;\n var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n var parts = [];\n var maxChunkLength = 16383; // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)));\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1];\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n );\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1];\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n );\n }\n\n return parts.join('')\n}\n\nvar ieee754 = {};\n\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\n\nieee754.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = (nBytes * 8) - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? (nBytes - 1) : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n\n i += d;\n\n e = s & ((1 << (-nBits)) - 1);\n s >>= (-nBits);\n nBits += eLen;\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1);\n e >>= (-nBits);\n nBits += mLen;\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n};\n\nieee754.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = (nBytes * 8) - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0);\n var i = isLE ? 0 : (nBytes - 1);\n var d = isLE ? 1 : -1;\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0;\n\n value = Math.abs(value);\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m;\n eLen += mLen;\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128;\n};\n\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n(function (exports) {\n\n\tconst base64 = base64Js;\n\tconst ieee754$1 = ieee754;\n\tconst customInspectSymbol =\n\t (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n\t ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n\t : null;\n\n\texports.Buffer = Buffer;\n\texports.SlowBuffer = SlowBuffer;\n\texports.INSPECT_MAX_BYTES = 50;\n\n\tconst K_MAX_LENGTH = 0x7fffffff;\n\texports.kMaxLength = K_MAX_LENGTH;\n\tconst { Uint8Array: GlobalUint8Array, ArrayBuffer: GlobalArrayBuffer, SharedArrayBuffer: GlobalSharedArrayBuffer } = globalThis;\n\n\t/**\n\t * If `Buffer.TYPED_ARRAY_SUPPORT`:\n\t * === true Use Uint8Array implementation (fastest)\n\t * === false Print warning and recommend using `buffer` v4.x which has an Object\n\t * implementation (most compatible, even IE6)\n\t *\n\t * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n\t * Opera 11.6+, iOS 4.2+.\n\t *\n\t * We report that the browser does not support typed arrays if the are not subclassable\n\t * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n\t * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n\t * for __proto__ and has a buggy typed array implementation.\n\t */\n\tBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport();\n\n\tif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n\t typeof console.error === 'function') {\n\t console.error(\n\t 'This browser lacks typed array (Uint8Array) support which is required by ' +\n\t '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n\t );\n\t}\n\n\tfunction typedArraySupport () {\n\t // Can typed array instances can be augmented?\n\t try {\n\t const arr = new GlobalUint8Array(1);\n\t const proto = { foo: function () { return 42 } };\n\t Object.setPrototypeOf(proto, GlobalUint8Array.prototype);\n\t Object.setPrototypeOf(arr, proto);\n\t return arr.foo() === 42\n\t } catch (e) {\n\t return false\n\t }\n\t}\n\n\tObject.defineProperty(Buffer.prototype, 'parent', {\n\t enumerable: true,\n\t get: function () {\n\t if (!Buffer.isBuffer(this)) return undefined\n\t return this.buffer\n\t }\n\t});\n\n\tObject.defineProperty(Buffer.prototype, 'offset', {\n\t enumerable: true,\n\t get: function () {\n\t if (!Buffer.isBuffer(this)) return undefined\n\t return this.byteOffset\n\t }\n\t});\n\n\tfunction createBuffer (length) {\n\t if (length > K_MAX_LENGTH) {\n\t throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n\t }\n\t // Return an augmented `Uint8Array` instance\n\t const buf = new GlobalUint8Array(length);\n\t Object.setPrototypeOf(buf, Buffer.prototype);\n\t return buf\n\t}\n\n\t/**\n\t * The Buffer constructor returns instances of `Uint8Array` that have their\n\t * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n\t * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n\t * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n\t * returns a single octet.\n\t *\n\t * The `Uint8Array` prototype remains unmodified.\n\t */\n\n\tfunction Buffer (arg, encodingOrOffset, length) {\n\t // Common case.\n\t if (typeof arg === 'number') {\n\t if (typeof encodingOrOffset === 'string') {\n\t throw new TypeError(\n\t 'The \"string\" argument must be of type string. Received type number'\n\t )\n\t }\n\t return allocUnsafe(arg)\n\t }\n\t return from(arg, encodingOrOffset, length)\n\t}\n\n\tBuffer.poolSize = 8192; // not used by this implementation\n\n\tfunction from (value, encodingOrOffset, length) {\n\t if (typeof value === 'string') {\n\t return fromString(value, encodingOrOffset)\n\t }\n\n\t if (GlobalArrayBuffer.isView(value)) {\n\t return fromArrayView(value)\n\t }\n\n\t if (value == null) {\n\t throw new TypeError(\n\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t 'or Array-like Object. Received type ' + (typeof value)\n\t )\n\t }\n\n\t if (isInstance(value, GlobalArrayBuffer) ||\n\t (value && isInstance(value.buffer, GlobalArrayBuffer))) {\n\t return fromArrayBuffer(value, encodingOrOffset, length)\n\t }\n\n\t if (typeof GlobalSharedArrayBuffer !== 'undefined' &&\n\t (isInstance(value, GlobalSharedArrayBuffer) ||\n\t (value && isInstance(value.buffer, GlobalSharedArrayBuffer)))) {\n\t return fromArrayBuffer(value, encodingOrOffset, length)\n\t }\n\n\t if (typeof value === 'number') {\n\t throw new TypeError(\n\t 'The \"value\" argument must not be of type number. Received type number'\n\t )\n\t }\n\n\t const valueOf = value.valueOf && value.valueOf();\n\t if (valueOf != null && valueOf !== value) {\n\t return Buffer.from(valueOf, encodingOrOffset, length)\n\t }\n\n\t const b = fromObject(value);\n\t if (b) return b\n\n\t if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n\t typeof value[Symbol.toPrimitive] === 'function') {\n\t return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n\t }\n\n\t throw new TypeError(\n\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t 'or Array-like Object. Received type ' + (typeof value)\n\t )\n\t}\n\n\t/**\n\t * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n\t * if value is a number.\n\t * Buffer.from(str[, encoding])\n\t * Buffer.from(array)\n\t * Buffer.from(buffer)\n\t * Buffer.from(arrayBuffer[, byteOffset[, length]])\n\t **/\n\tBuffer.from = function (value, encodingOrOffset, length) {\n\t return from(value, encodingOrOffset, length)\n\t};\n\n\t// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n\t// https://github.com/feross/buffer/pull/148\n\tObject.setPrototypeOf(Buffer.prototype, GlobalUint8Array.prototype);\n\tObject.setPrototypeOf(Buffer, GlobalUint8Array);\n\n\tfunction assertSize (size) {\n\t if (typeof size !== 'number') {\n\t throw new TypeError('\"size\" argument must be of type number')\n\t } else if (size < 0) {\n\t throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n\t }\n\t}\n\n\tfunction alloc (size, fill, encoding) {\n\t assertSize(size);\n\t if (size <= 0) {\n\t return createBuffer(size)\n\t }\n\t if (fill !== undefined) {\n\t // Only pay attention to encoding if it's a string. This\n\t // prevents accidentally sending in a number that would\n\t // be interpreted as a start offset.\n\t return typeof encoding === 'string'\n\t ? createBuffer(size).fill(fill, encoding)\n\t : createBuffer(size).fill(fill)\n\t }\n\t return createBuffer(size)\n\t}\n\n\t/**\n\t * Creates a new filled Buffer instance.\n\t * alloc(size[, fill[, encoding]])\n\t **/\n\tBuffer.alloc = function (size, fill, encoding) {\n\t return alloc(size, fill, encoding)\n\t};\n\n\tfunction allocUnsafe (size) {\n\t assertSize(size);\n\t return createBuffer(size < 0 ? 0 : checked(size) | 0)\n\t}\n\n\t/**\n\t * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n\t * */\n\tBuffer.allocUnsafe = function (size) {\n\t return allocUnsafe(size)\n\t};\n\t/**\n\t * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n\t */\n\tBuffer.allocUnsafeSlow = function (size) {\n\t return allocUnsafe(size)\n\t};\n\n\tfunction fromString (string, encoding) {\n\t if (typeof encoding !== 'string' || encoding === '') {\n\t encoding = 'utf8';\n\t }\n\n\t if (!Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\n\t const length = byteLength(string, encoding) | 0;\n\t let buf = createBuffer(length);\n\n\t const actual = buf.write(string, encoding);\n\n\t if (actual !== length) {\n\t // Writing a hex string, for example, that contains invalid characters will\n\t // cause everything after the first invalid character to be ignored. (e.g.\n\t // 'abxxcd' will be treated as 'ab')\n\t buf = buf.slice(0, actual);\n\t }\n\n\t return buf\n\t}\n\n\tfunction fromArrayLike (array) {\n\t const length = array.length < 0 ? 0 : checked(array.length) | 0;\n\t const buf = createBuffer(length);\n\t for (let i = 0; i < length; i += 1) {\n\t buf[i] = array[i] & 255;\n\t }\n\t return buf\n\t}\n\n\tfunction fromArrayView (arrayView) {\n\t if (isInstance(arrayView, GlobalUint8Array)) {\n\t const copy = new GlobalUint8Array(arrayView);\n\t return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n\t }\n\t return fromArrayLike(arrayView)\n\t}\n\n\tfunction fromArrayBuffer (array, byteOffset, length) {\n\t if (byteOffset < 0 || array.byteLength < byteOffset) {\n\t throw new RangeError('\"offset\" is outside of buffer bounds')\n\t }\n\n\t if (array.byteLength < byteOffset + (length || 0)) {\n\t throw new RangeError('\"length\" is outside of buffer bounds')\n\t }\n\n\t let buf;\n\t if (byteOffset === undefined && length === undefined) {\n\t buf = new GlobalUint8Array(array);\n\t } else if (length === undefined) {\n\t buf = new GlobalUint8Array(array, byteOffset);\n\t } else {\n\t buf = new GlobalUint8Array(array, byteOffset, length);\n\t }\n\n\t // Return an augmented `Uint8Array` instance\n\t Object.setPrototypeOf(buf, Buffer.prototype);\n\n\t return buf\n\t}\n\n\tfunction fromObject (obj) {\n\t if (Buffer.isBuffer(obj)) {\n\t const len = checked(obj.length) | 0;\n\t const buf = createBuffer(len);\n\n\t if (buf.length === 0) {\n\t return buf\n\t }\n\n\t obj.copy(buf, 0, 0, len);\n\t return buf\n\t }\n\n\t if (obj.length !== undefined) {\n\t if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n\t return createBuffer(0)\n\t }\n\t return fromArrayLike(obj)\n\t }\n\n\t if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n\t return fromArrayLike(obj.data)\n\t }\n\t}\n\n\tfunction checked (length) {\n\t // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n\t // length is NaN (which is otherwise coerced to zero.)\n\t if (length >= K_MAX_LENGTH) {\n\t throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n\t 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n\t }\n\t return length | 0\n\t}\n\n\tfunction SlowBuffer (length) {\n\t if (+length != length) { // eslint-disable-line eqeqeq\n\t length = 0;\n\t }\n\t return Buffer.alloc(+length)\n\t}\n\n\tBuffer.isBuffer = function isBuffer (b) {\n\t return b != null && b._isBuffer === true &&\n\t b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n\t};\n\n\tBuffer.compare = function compare (a, b) {\n\t if (isInstance(a, GlobalUint8Array)) a = Buffer.from(a, a.offset, a.byteLength);\n\t if (isInstance(b, GlobalUint8Array)) b = Buffer.from(b, b.offset, b.byteLength);\n\t if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n\t throw new TypeError(\n\t 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n\t )\n\t }\n\n\t if (a === b) return 0\n\n\t let x = a.length;\n\t let y = b.length;\n\n\t for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n\t if (a[i] !== b[i]) {\n\t x = a[i];\n\t y = b[i];\n\t break\n\t }\n\t }\n\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t};\n\n\tBuffer.isEncoding = function isEncoding (encoding) {\n\t switch (String(encoding).toLowerCase()) {\n\t case 'hex':\n\t case 'utf8':\n\t case 'utf-8':\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t case 'base64':\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return true\n\t default:\n\t return false\n\t }\n\t};\n\n\tBuffer.concat = function concat (list, length) {\n\t if (!Array.isArray(list)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t }\n\n\t if (list.length === 0) {\n\t return Buffer.alloc(0)\n\t }\n\n\t let i;\n\t if (length === undefined) {\n\t length = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t length += list[i].length;\n\t }\n\t }\n\n\t const buffer = Buffer.allocUnsafe(length);\n\t let pos = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t let buf = list[i];\n\t if (isInstance(buf, GlobalUint8Array)) {\n\t if (pos + buf.length > buffer.length) {\n\t if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf);\n\t buf.copy(buffer, pos);\n\t } else {\n\t GlobalUint8Array.prototype.set.call(\n\t buffer,\n\t buf,\n\t pos\n\t );\n\t }\n\t } else if (!Buffer.isBuffer(buf)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t } else {\n\t buf.copy(buffer, pos);\n\t }\n\t pos += buf.length;\n\t }\n\t return buffer\n\t};\n\n\tfunction byteLength (string, encoding) {\n\t if (Buffer.isBuffer(string)) {\n\t return string.length\n\t }\n\t if (GlobalArrayBuffer.isView(string) || isInstance(string, GlobalArrayBuffer)) {\n\t return string.byteLength\n\t }\n\t if (typeof string !== 'string') {\n\t throw new TypeError(\n\t 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n\t 'Received type ' + typeof string\n\t )\n\t }\n\n\t const len = string.length;\n\t const mustMatch = (arguments.length > 2 && arguments[2] === true);\n\t if (!mustMatch && len === 0) return 0\n\n\t // Use a for loop to avoid recursion\n\t let loweredCase = false;\n\t for (;;) {\n\t switch (encoding) {\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t return len\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8ToBytes(string).length\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return len * 2\n\t case 'hex':\n\t return len >>> 1\n\t case 'base64':\n\t return base64ToBytes(string).length\n\t default:\n\t if (loweredCase) {\n\t return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n\t }\n\t encoding = ('' + encoding).toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t}\n\tBuffer.byteLength = byteLength;\n\n\tfunction slowToString (encoding, start, end) {\n\t let loweredCase = false;\n\n\t // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n\t // property of a typed array.\n\n\t // This behaves neither like String nor Uint8Array in that we set start/end\n\t // to their upper/lower bounds if the value passed is out of range.\n\t // undefined is handled specially as per ECMA-262 6th Edition,\n\t // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n\t if (start === undefined || start < 0) {\n\t start = 0;\n\t }\n\t // Return early if start > this.length. Done here to prevent potential uint32\n\t // coercion fail below.\n\t if (start > this.length) {\n\t return ''\n\t }\n\n\t if (end === undefined || end > this.length) {\n\t end = this.length;\n\t }\n\n\t if (end <= 0) {\n\t return ''\n\t }\n\n\t // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n\t end >>>= 0;\n\t start >>>= 0;\n\n\t if (end <= start) {\n\t return ''\n\t }\n\n\t if (!encoding) encoding = 'utf8';\n\n\t while (true) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexSlice(this, start, end)\n\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Slice(this, start, end)\n\n\t case 'ascii':\n\t return asciiSlice(this, start, end)\n\n\t case 'latin1':\n\t case 'binary':\n\t return latin1Slice(this, start, end)\n\n\t case 'base64':\n\t return base64Slice(this, start, end)\n\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return utf16leSlice(this, start, end)\n\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = (encoding + '').toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t}\n\n\t// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n\t// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n\t// reliably in a browserify context because there could be multiple different\n\t// copies of the 'buffer' package in use. This method works even for Buffer\n\t// instances that were created from another copy of the `buffer` package.\n\t// See: https://github.com/feross/buffer/issues/154\n\tBuffer.prototype._isBuffer = true;\n\n\tfunction swap (b, n, m) {\n\t const i = b[n];\n\t b[n] = b[m];\n\t b[m] = i;\n\t}\n\n\tBuffer.prototype.swap16 = function swap16 () {\n\t const len = this.length;\n\t if (len % 2 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 16-bits')\n\t }\n\t for (let i = 0; i < len; i += 2) {\n\t swap(this, i, i + 1);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.swap32 = function swap32 () {\n\t const len = this.length;\n\t if (len % 4 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 32-bits')\n\t }\n\t for (let i = 0; i < len; i += 4) {\n\t swap(this, i, i + 3);\n\t swap(this, i + 1, i + 2);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.swap64 = function swap64 () {\n\t const len = this.length;\n\t if (len % 8 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 64-bits')\n\t }\n\t for (let i = 0; i < len; i += 8) {\n\t swap(this, i, i + 7);\n\t swap(this, i + 1, i + 6);\n\t swap(this, i + 2, i + 5);\n\t swap(this, i + 3, i + 4);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.toString = function toString () {\n\t const length = this.length;\n\t if (length === 0) return ''\n\t if (arguments.length === 0) return utf8Slice(this, 0, length)\n\t return slowToString.apply(this, arguments)\n\t};\n\n\tBuffer.prototype.toLocaleString = Buffer.prototype.toString;\n\n\tBuffer.prototype.equals = function equals (b) {\n\t if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n\t if (this === b) return true\n\t return Buffer.compare(this, b) === 0\n\t};\n\n\tBuffer.prototype.inspect = function inspect () {\n\t let str = '';\n\t const max = exports.INSPECT_MAX_BYTES;\n\t str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim();\n\t if (this.length > max) str += ' ... ';\n\t return ''\n\t};\n\tif (customInspectSymbol) {\n\t Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect;\n\t}\n\n\tBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n\t if (isInstance(target, GlobalUint8Array)) {\n\t target = Buffer.from(target, target.offset, target.byteLength);\n\t }\n\t if (!Buffer.isBuffer(target)) {\n\t throw new TypeError(\n\t 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n\t 'Received type ' + (typeof target)\n\t )\n\t }\n\n\t if (start === undefined) {\n\t start = 0;\n\t }\n\t if (end === undefined) {\n\t end = target ? target.length : 0;\n\t }\n\t if (thisStart === undefined) {\n\t thisStart = 0;\n\t }\n\t if (thisEnd === undefined) {\n\t thisEnd = this.length;\n\t }\n\n\t if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n\t throw new RangeError('out of range index')\n\t }\n\n\t if (thisStart >= thisEnd && start >= end) {\n\t return 0\n\t }\n\t if (thisStart >= thisEnd) {\n\t return -1\n\t }\n\t if (start >= end) {\n\t return 1\n\t }\n\n\t start >>>= 0;\n\t end >>>= 0;\n\t thisStart >>>= 0;\n\t thisEnd >>>= 0;\n\n\t if (this === target) return 0\n\n\t let x = thisEnd - thisStart;\n\t let y = end - start;\n\t const len = Math.min(x, y);\n\n\t const thisCopy = this.slice(thisStart, thisEnd);\n\t const targetCopy = target.slice(start, end);\n\n\t for (let i = 0; i < len; ++i) {\n\t if (thisCopy[i] !== targetCopy[i]) {\n\t x = thisCopy[i];\n\t y = targetCopy[i];\n\t break\n\t }\n\t }\n\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t};\n\n\t// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n\t// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n\t//\n\t// Arguments:\n\t// - buffer - a Buffer to search\n\t// - val - a string, Buffer, or number\n\t// - byteOffset - an index into `buffer`; will be clamped to an int32\n\t// - encoding - an optional encoding, relevant is val is a string\n\t// - dir - true for indexOf, false for lastIndexOf\n\tfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n\t // Empty buffer means no match\n\t if (buffer.length === 0) return -1\n\n\t // Normalize byteOffset\n\t if (typeof byteOffset === 'string') {\n\t encoding = byteOffset;\n\t byteOffset = 0;\n\t } else if (byteOffset > 0x7fffffff) {\n\t byteOffset = 0x7fffffff;\n\t } else if (byteOffset < -0x80000000) {\n\t byteOffset = -0x80000000;\n\t }\n\t byteOffset = +byteOffset; // Coerce to Number.\n\t if (numberIsNaN(byteOffset)) {\n\t // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n\t byteOffset = dir ? 0 : (buffer.length - 1);\n\t }\n\n\t // Normalize byteOffset: negative offsets start from the end of the buffer\n\t if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\t if (byteOffset >= buffer.length) {\n\t if (dir) return -1\n\t else byteOffset = buffer.length - 1;\n\t } else if (byteOffset < 0) {\n\t if (dir) byteOffset = 0;\n\t else return -1\n\t }\n\n\t // Normalize val\n\t if (typeof val === 'string') {\n\t val = Buffer.from(val, encoding);\n\t }\n\n\t // Finally, search either indexOf (if dir is true) or lastIndexOf\n\t if (Buffer.isBuffer(val)) {\n\t // Special case: looking for empty string/buffer always fails\n\t if (val.length === 0) {\n\t return -1\n\t }\n\t return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n\t } else if (typeof val === 'number') {\n\t val = val & 0xFF; // Search for a byte value [0-255]\n\t if (typeof GlobalUint8Array.prototype.indexOf === 'function') {\n\t if (dir) {\n\t return GlobalUint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n\t } else {\n\t return GlobalUint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n\t }\n\t }\n\t return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n\t }\n\n\t throw new TypeError('val must be string, number or Buffer')\n\t}\n\n\tfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n\t let indexSize = 1;\n\t let arrLength = arr.length;\n\t let valLength = val.length;\n\n\t if (encoding !== undefined) {\n\t encoding = String(encoding).toLowerCase();\n\t if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n\t encoding === 'utf16le' || encoding === 'utf-16le') {\n\t if (arr.length < 2 || val.length < 2) {\n\t return -1\n\t }\n\t indexSize = 2;\n\t arrLength /= 2;\n\t valLength /= 2;\n\t byteOffset /= 2;\n\t }\n\t }\n\n\t function read (buf, i) {\n\t if (indexSize === 1) {\n\t return buf[i]\n\t } else {\n\t return buf.readUInt16BE(i * indexSize)\n\t }\n\t }\n\n\t let i;\n\t if (dir) {\n\t let foundIndex = -1;\n\t for (i = byteOffset; i < arrLength; i++) {\n\t if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n\t if (foundIndex === -1) foundIndex = i;\n\t if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n\t } else {\n\t if (foundIndex !== -1) i -= i - foundIndex;\n\t foundIndex = -1;\n\t }\n\t }\n\t } else {\n\t if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n\t for (i = byteOffset; i >= 0; i--) {\n\t let found = true;\n\t for (let j = 0; j < valLength; j++) {\n\t if (read(arr, i + j) !== read(val, j)) {\n\t found = false;\n\t break\n\t }\n\t }\n\t if (found) return i\n\t }\n\t }\n\n\t return -1\n\t}\n\n\tBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n\t return this.indexOf(val, byteOffset, encoding) !== -1\n\t};\n\n\tBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n\t};\n\n\tBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n\t};\n\n\tfunction hexWrite (buf, string, offset, length) {\n\t offset = Number(offset) || 0;\n\t const remaining = buf.length - offset;\n\t if (!length) {\n\t length = remaining;\n\t } else {\n\t length = Number(length);\n\t if (length > remaining) {\n\t length = remaining;\n\t }\n\t }\n\n\t const strLen = string.length;\n\n\t if (length > strLen / 2) {\n\t length = strLen / 2;\n\t }\n\t let i;\n\t for (i = 0; i < length; ++i) {\n\t const parsed = parseInt(string.substr(i * 2, 2), 16);\n\t if (numberIsNaN(parsed)) return i\n\t buf[offset + i] = parsed;\n\t }\n\t return i\n\t}\n\n\tfunction utf8Write (buf, string, offset, length) {\n\t return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tfunction asciiWrite (buf, string, offset, length) {\n\t return blitBuffer(asciiToBytes(string), buf, offset, length)\n\t}\n\n\tfunction base64Write (buf, string, offset, length) {\n\t return blitBuffer(base64ToBytes(string), buf, offset, length)\n\t}\n\n\tfunction ucs2Write (buf, string, offset, length) {\n\t return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tBuffer.prototype.write = function write (string, offset, length, encoding) {\n\t // Buffer#write(string)\n\t if (offset === undefined) {\n\t encoding = 'utf8';\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, encoding)\n\t } else if (length === undefined && typeof offset === 'string') {\n\t encoding = offset;\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, offset[, length][, encoding])\n\t } else if (isFinite(offset)) {\n\t offset = offset >>> 0;\n\t if (isFinite(length)) {\n\t length = length >>> 0;\n\t if (encoding === undefined) encoding = 'utf8';\n\t } else {\n\t encoding = length;\n\t length = undefined;\n\t }\n\t } else {\n\t throw new Error(\n\t 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n\t )\n\t }\n\n\t const remaining = this.length - offset;\n\t if (length === undefined || length > remaining) length = remaining;\n\n\t if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n\t throw new RangeError('Attempt to write outside buffer bounds')\n\t }\n\n\t if (!encoding) encoding = 'utf8';\n\n\t let loweredCase = false;\n\t for (;;) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexWrite(this, string, offset, length)\n\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Write(this, string, offset, length)\n\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t return asciiWrite(this, string, offset, length)\n\n\t case 'base64':\n\t // Warning: maxLength not taken into account in base64Write\n\t return base64Write(this, string, offset, length)\n\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return ucs2Write(this, string, offset, length)\n\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = ('' + encoding).toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t};\n\n\tBuffer.prototype.toJSON = function toJSON () {\n\t return {\n\t type: 'Buffer',\n\t data: Array.prototype.slice.call(this._arr || this, 0)\n\t }\n\t};\n\n\tfunction base64Slice (buf, start, end) {\n\t if (start === 0 && end === buf.length) {\n\t return base64.fromByteArray(buf)\n\t } else {\n\t return base64.fromByteArray(buf.slice(start, end))\n\t }\n\t}\n\n\tfunction utf8Slice (buf, start, end) {\n\t end = Math.min(buf.length, end);\n\t const res = [];\n\n\t let i = start;\n\t while (i < end) {\n\t const firstByte = buf[i];\n\t let codePoint = null;\n\t let bytesPerSequence = (firstByte > 0xEF)\n\t ? 4\n\t : (firstByte > 0xDF)\n\t ? 3\n\t : (firstByte > 0xBF)\n\t ? 2\n\t : 1;\n\n\t if (i + bytesPerSequence <= end) {\n\t let secondByte, thirdByte, fourthByte, tempCodePoint;\n\n\t switch (bytesPerSequence) {\n\t case 1:\n\t if (firstByte < 0x80) {\n\t codePoint = firstByte;\n\t }\n\t break\n\t case 2:\n\t secondByte = buf[i + 1];\n\t if ((secondByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F);\n\t if (tempCodePoint > 0x7F) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t break\n\t case 3:\n\t secondByte = buf[i + 1];\n\t thirdByte = buf[i + 2];\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F);\n\t if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t break\n\t case 4:\n\t secondByte = buf[i + 1];\n\t thirdByte = buf[i + 2];\n\t fourthByte = buf[i + 3];\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F);\n\t if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t }\n\t }\n\n\t if (codePoint === null) {\n\t // we did not generate a valid codePoint so insert a\n\t // replacement char (U+FFFD) and advance only 1 byte\n\t codePoint = 0xFFFD;\n\t bytesPerSequence = 1;\n\t } else if (codePoint > 0xFFFF) {\n\t // encode to utf16 (surrogate pair dance)\n\t codePoint -= 0x10000;\n\t res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n\t codePoint = 0xDC00 | codePoint & 0x3FF;\n\t }\n\n\t res.push(codePoint);\n\t i += bytesPerSequence;\n\t }\n\n\t return decodeCodePointsArray(res)\n\t}\n\n\t// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n\t// the lowest limit is Chrome, with 0x10000 args.\n\t// We go 1 magnitude less, for safety\n\tconst MAX_ARGUMENTS_LENGTH = 0x1000;\n\n\tfunction decodeCodePointsArray (codePoints) {\n\t const len = codePoints.length;\n\t if (len <= MAX_ARGUMENTS_LENGTH) {\n\t return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n\t }\n\n\t // Decode in chunks to avoid \"call stack size exceeded\".\n\t let res = '';\n\t let i = 0;\n\t while (i < len) {\n\t res += String.fromCharCode.apply(\n\t String,\n\t codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n\t );\n\t }\n\t return res\n\t}\n\n\tfunction asciiSlice (buf, start, end) {\n\t let ret = '';\n\t end = Math.min(buf.length, end);\n\n\t for (let i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i] & 0x7F);\n\t }\n\t return ret\n\t}\n\n\tfunction latin1Slice (buf, start, end) {\n\t let ret = '';\n\t end = Math.min(buf.length, end);\n\n\t for (let i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i]);\n\t }\n\t return ret\n\t}\n\n\tfunction hexSlice (buf, start, end) {\n\t const len = buf.length;\n\n\t if (!start || start < 0) start = 0;\n\t if (!end || end < 0 || end > len) end = len;\n\n\t let out = '';\n\t for (let i = start; i < end; ++i) {\n\t out += hexSliceLookupTable[buf[i]];\n\t }\n\t return out\n\t}\n\n\tfunction utf16leSlice (buf, start, end) {\n\t const bytes = buf.slice(start, end);\n\t let res = '';\n\t // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n\t for (let i = 0; i < bytes.length - 1; i += 2) {\n\t res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256));\n\t }\n\t return res\n\t}\n\n\tBuffer.prototype.slice = function slice (start, end) {\n\t const len = this.length;\n\t start = ~~start;\n\t end = end === undefined ? len : ~~end;\n\n\t if (start < 0) {\n\t start += len;\n\t if (start < 0) start = 0;\n\t } else if (start > len) {\n\t start = len;\n\t }\n\n\t if (end < 0) {\n\t end += len;\n\t if (end < 0) end = 0;\n\t } else if (end > len) {\n\t end = len;\n\t }\n\n\t if (end < start) end = start;\n\n\t const newBuf = this.subarray(start, end);\n\t // Return an augmented `Uint8Array` instance\n\t Object.setPrototypeOf(newBuf, Buffer.prototype);\n\n\t return newBuf\n\t};\n\n\t/*\n\t * Need to make sure that buffer isn't trying to write out of bounds.\n\t */\n\tfunction checkOffset (offset, ext, length) {\n\t if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n\t if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n\t}\n\n\tBuffer.prototype.readUintLE =\n\tBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let val = this[offset];\n\t let mul = 1;\n\t let i = 0;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul;\n\t }\n\n\t return val\n\t};\n\n\tBuffer.prototype.readUintBE =\n\tBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t checkOffset(offset, byteLength, this.length);\n\t }\n\n\t let val = this[offset + --byteLength];\n\t let mul = 1;\n\t while (byteLength > 0 && (mul *= 0x100)) {\n\t val += this[offset + --byteLength] * mul;\n\t }\n\n\t return val\n\t};\n\n\tBuffer.prototype.readUint8 =\n\tBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t return this[offset]\n\t};\n\n\tBuffer.prototype.readUint16LE =\n\tBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t return this[offset] | (this[offset + 1] << 8)\n\t};\n\n\tBuffer.prototype.readUint16BE =\n\tBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t return (this[offset] << 8) | this[offset + 1]\n\t};\n\n\tBuffer.prototype.readUint32LE =\n\tBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return ((this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16)) +\n\t (this[offset + 3] * 0x1000000)\n\t};\n\n\tBuffer.prototype.readUint32BE =\n\tBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset] * 0x1000000) +\n\t ((this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t this[offset + 3])\n\t};\n\n\tBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const lo = first +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 24;\n\n\t const hi = this[++offset] +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t last * 2 ** 24;\n\n\t return BigInt(lo) + (BigInt(hi) << BigInt(32))\n\t});\n\n\tBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const hi = first * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset];\n\n\t const lo = this[++offset] * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t last;\n\n\t return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n\t});\n\n\tBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let val = this[offset];\n\t let mul = 1;\n\t let i = 0;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul;\n\t }\n\t mul *= 0x80;\n\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t return val\n\t};\n\n\tBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let i = byteLength;\n\t let mul = 1;\n\t let val = this[offset + --i];\n\t while (i > 0 && (mul *= 0x100)) {\n\t val += this[offset + --i] * mul;\n\t }\n\t mul *= 0x80;\n\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t return val\n\t};\n\n\tBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t if (!(this[offset] & 0x80)) return (this[offset])\n\t return ((0xff - this[offset] + 1) * -1)\n\t};\n\n\tBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t const val = this[offset] | (this[offset + 1] << 8);\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t};\n\n\tBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t const val = this[offset + 1] | (this[offset] << 8);\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t};\n\n\tBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16) |\n\t (this[offset + 3] << 24)\n\t};\n\n\tBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset] << 24) |\n\t (this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t (this[offset + 3])\n\t};\n\n\tBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const val = this[offset + 4] +\n\t this[offset + 5] * 2 ** 8 +\n\t this[offset + 6] * 2 ** 16 +\n\t (last << 24); // Overflow\n\n\t return (BigInt(val) << BigInt(32)) +\n\t BigInt(first +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 24)\n\t});\n\n\tBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const val = (first << 24) + // Overflow\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset];\n\n\t return (BigInt(val) << BigInt(32)) +\n\t BigInt(this[++offset] * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t last)\n\t});\n\n\tBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t return ieee754$1.read(this, offset, true, 23, 4)\n\t};\n\n\tBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t return ieee754$1.read(this, offset, false, 23, 4)\n\t};\n\n\tBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t return ieee754$1.read(this, offset, true, 52, 8)\n\t};\n\n\tBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t return ieee754$1.read(this, offset, false, 52, 8)\n\t};\n\n\tfunction checkInt (buf, value, offset, ext, max, min) {\n\t if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n\t if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t}\n\n\tBuffer.prototype.writeUintLE =\n\tBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t }\n\n\t let mul = 1;\n\t let i = 0;\n\t this[offset] = value & 0xFF;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeUintBE =\n\tBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t }\n\n\t let i = byteLength - 1;\n\t let mul = 1;\n\t this[offset + i] = value & 0xFF;\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeUint8 =\n\tBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n\t this[offset] = (value & 0xff);\n\t return offset + 1\n\t};\n\n\tBuffer.prototype.writeUint16LE =\n\tBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeUint16BE =\n\tBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t this[offset] = (value >>> 8);\n\t this[offset + 1] = (value & 0xff);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeUint32LE =\n\tBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t this[offset + 3] = (value >>> 24);\n\t this[offset + 2] = (value >>> 16);\n\t this[offset + 1] = (value >>> 8);\n\t this[offset] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeUint32BE =\n\tBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t this[offset] = (value >>> 24);\n\t this[offset + 1] = (value >>> 16);\n\t this[offset + 2] = (value >>> 8);\n\t this[offset + 3] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n\t checkIntBI(value, min, max, buf, offset, 7);\n\n\t let lo = Number(value & BigInt(0xffffffff));\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t let hi = Number(value >> BigInt(32) & BigInt(0xffffffff));\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t return offset\n\t}\n\n\tfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n\t checkIntBI(value, min, max, buf, offset, 7);\n\n\t let lo = Number(value & BigInt(0xffffffff));\n\t buf[offset + 7] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 6] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 5] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 4] = lo;\n\t let hi = Number(value >> BigInt(32) & BigInt(0xffffffff));\n\t buf[offset + 3] = hi;\n\t hi = hi >> 8;\n\t buf[offset + 2] = hi;\n\t hi = hi >> 8;\n\t buf[offset + 1] = hi;\n\t hi = hi >> 8;\n\t buf[offset] = hi;\n\t return offset + 8\n\t}\n\n\tBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n\t return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n\t return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t const limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t }\n\n\t let i = 0;\n\t let mul = 1;\n\t let sub = 0;\n\t this[offset] = value & 0xFF;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n\t sub = 1;\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t const limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t }\n\n\t let i = byteLength - 1;\n\t let mul = 1;\n\t let sub = 0;\n\t this[offset + i] = value & 0xFF;\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n\t sub = 1;\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n\t if (value < 0) value = 0xff + value + 1;\n\t this[offset] = (value & 0xff);\n\t return offset + 1\n\t};\n\n\tBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\t this[offset] = (value >>> 8);\n\t this[offset + 1] = (value & 0xff);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t this[offset + 2] = (value >>> 16);\n\t this[offset + 3] = (value >>> 24);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\t if (value < 0) value = 0xffffffff + value + 1;\n\t this[offset] = (value >>> 24);\n\t this[offset + 1] = (value >>> 16);\n\t this[offset + 2] = (value >>> 8);\n\t this[offset + 3] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n\t return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n\t return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n\t});\n\n\tfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t if (offset < 0) throw new RangeError('Index out of range')\n\t}\n\n\tfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 4);\n\t }\n\t ieee754$1.write(buf, value, offset, littleEndian, 23, 4);\n\t return offset + 4\n\t}\n\n\tBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, true, noAssert)\n\t};\n\n\tBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, false, noAssert)\n\t};\n\n\tfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 8);\n\t }\n\t ieee754$1.write(buf, value, offset, littleEndian, 52, 8);\n\t return offset + 8\n\t}\n\n\tBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, true, noAssert)\n\t};\n\n\tBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, false, noAssert)\n\t};\n\n\t// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\tBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n\t if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n\t if (!start) start = 0;\n\t if (!end && end !== 0) end = this.length;\n\t if (targetStart >= target.length) targetStart = target.length;\n\t if (!targetStart) targetStart = 0;\n\t if (end > 0 && end < start) end = start;\n\n\t // Copy 0 bytes; we're done\n\t if (end === start) return 0\n\t if (target.length === 0 || this.length === 0) return 0\n\n\t // Fatal error conditions\n\t if (targetStart < 0) {\n\t throw new RangeError('targetStart out of bounds')\n\t }\n\t if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n\t if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n\t // Are we oob?\n\t if (end > this.length) end = this.length;\n\t if (target.length - targetStart < end - start) {\n\t end = target.length - targetStart + start;\n\t }\n\n\t const len = end - start;\n\n\t if (this === target && typeof GlobalUint8Array.prototype.copyWithin === 'function') {\n\t // Use built-in when available, missing from IE11\n\t this.copyWithin(targetStart, start, end);\n\t } else {\n\t GlobalUint8Array.prototype.set.call(\n\t target,\n\t this.subarray(start, end),\n\t targetStart\n\t );\n\t }\n\n\t return len\n\t};\n\n\t// Usage:\n\t// buffer.fill(number[, offset[, end]])\n\t// buffer.fill(buffer[, offset[, end]])\n\t// buffer.fill(string[, offset[, end]][, encoding])\n\tBuffer.prototype.fill = function fill (val, start, end, encoding) {\n\t // Handle string cases:\n\t if (typeof val === 'string') {\n\t if (typeof start === 'string') {\n\t encoding = start;\n\t start = 0;\n\t end = this.length;\n\t } else if (typeof end === 'string') {\n\t encoding = end;\n\t end = this.length;\n\t }\n\t if (encoding !== undefined && typeof encoding !== 'string') {\n\t throw new TypeError('encoding must be a string')\n\t }\n\t if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\t if (val.length === 1) {\n\t const code = val.charCodeAt(0);\n\t if ((encoding === 'utf8' && code < 128) ||\n\t encoding === 'latin1') {\n\t // Fast path: If `val` fits into a single byte, use that numeric value.\n\t val = code;\n\t }\n\t }\n\t } else if (typeof val === 'number') {\n\t val = val & 255;\n\t } else if (typeof val === 'boolean') {\n\t val = Number(val);\n\t }\n\n\t // Invalid ranges are not set to a default, so can range check early.\n\t if (start < 0 || this.length < start || this.length < end) {\n\t throw new RangeError('Out of range index')\n\t }\n\n\t if (end <= start) {\n\t return this\n\t }\n\n\t start = start >>> 0;\n\t end = end === undefined ? this.length : end >>> 0;\n\n\t if (!val) val = 0;\n\n\t let i;\n\t if (typeof val === 'number') {\n\t for (i = start; i < end; ++i) {\n\t this[i] = val;\n\t }\n\t } else {\n\t const bytes = Buffer.isBuffer(val)\n\t ? val\n\t : Buffer.from(val, encoding);\n\t const len = bytes.length;\n\t if (len === 0) {\n\t throw new TypeError('The value \"' + val +\n\t '\" is invalid for argument \"value\"')\n\t }\n\t for (i = 0; i < end - start; ++i) {\n\t this[i + start] = bytes[i % len];\n\t }\n\t }\n\n\t return this\n\t};\n\n\t// CUSTOM ERRORS\n\t// =============\n\n\t// Simplified versions from Node, changed for Buffer-only usage\n\tconst errors = {};\n\tfunction E (sym, getMessage, Base) {\n\t errors[sym] = class NodeError extends Base {\n\t constructor () {\n\t super();\n\n\t Object.defineProperty(this, 'message', {\n\t value: getMessage.apply(this, arguments),\n\t writable: true,\n\t configurable: true\n\t });\n\n\t // Add the error code to the name to include it in the stack trace.\n\t this.name = `${this.name} [${sym}]`;\n\t // Access the stack to generate the error message including the error code\n\t // from the name.\n\t this.stack; // eslint-disable-line no-unused-expressions\n\t // Reset the name to the actual name.\n\t delete this.name;\n\t }\n\n\t get code () {\n\t return sym\n\t }\n\n\t set code (value) {\n\t Object.defineProperty(this, 'code', {\n\t configurable: true,\n\t enumerable: true,\n\t value,\n\t writable: true\n\t });\n\t }\n\n\t toString () {\n\t return `${this.name} [${sym}]: ${this.message}`\n\t }\n\t };\n\t}\n\n\tE('ERR_BUFFER_OUT_OF_BOUNDS',\n\t function (name) {\n\t if (name) {\n\t return `${name} is outside of buffer bounds`\n\t }\n\n\t return 'Attempt to access memory outside buffer bounds'\n\t }, RangeError);\n\tE('ERR_INVALID_ARG_TYPE',\n\t function (name, actual) {\n\t return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n\t }, TypeError);\n\tE('ERR_OUT_OF_RANGE',\n\t function (str, range, input) {\n\t let msg = `The value of \"${str}\" is out of range.`;\n\t let received = input;\n\t if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n\t received = addNumericalSeparator(String(input));\n\t } else if (typeof input === 'bigint') {\n\t received = String(input);\n\t if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n\t received = addNumericalSeparator(received);\n\t }\n\t received += 'n';\n\t }\n\t msg += ` It must be ${range}. Received ${received}`;\n\t return msg\n\t }, RangeError);\n\n\tfunction addNumericalSeparator (val) {\n\t let res = '';\n\t let i = val.length;\n\t const start = val[0] === '-' ? 1 : 0;\n\t for (; i >= start + 4; i -= 3) {\n\t res = `_${val.slice(i - 3, i)}${res}`;\n\t }\n\t return `${val.slice(0, i)}${res}`\n\t}\n\n\t// CHECK FUNCTIONS\n\t// ===============\n\n\tfunction checkBounds (buf, offset, byteLength) {\n\t validateNumber(offset, 'offset');\n\t if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n\t boundsError(offset, buf.length - (byteLength + 1));\n\t }\n\t}\n\n\tfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n\t if (value > max || value < min) {\n\t const n = typeof min === 'bigint' ? 'n' : '';\n\t let range;\n\t if (byteLength > 3) {\n\t if (min === 0 || min === BigInt(0)) {\n\t range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`;\n\t } else {\n\t range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n\t `${(byteLength + 1) * 8 - 1}${n}`;\n\t }\n\t } else {\n\t range = `>= ${min}${n} and <= ${max}${n}`;\n\t }\n\t throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n\t }\n\t checkBounds(buf, offset, byteLength);\n\t}\n\n\tfunction validateNumber (value, name) {\n\t if (typeof value !== 'number') {\n\t throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n\t }\n\t}\n\n\tfunction boundsError (value, length, type) {\n\t if (Math.floor(value) !== value) {\n\t validateNumber(value, type);\n\t throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n\t }\n\n\t if (length < 0) {\n\t throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n\t }\n\n\t throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n\t `>= ${type ? 1 : 0} and <= ${length}`,\n\t value)\n\t}\n\n\t// HELPER FUNCTIONS\n\t// ================\n\n\tconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n\n\tfunction base64clean (str) {\n\t // Node takes equal signs as end of the Base64 encoding\n\t str = str.split('=')[0];\n\t // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n\t str = str.trim().replace(INVALID_BASE64_RE, '');\n\t // Node converts strings with length < 2 to ''\n\t if (str.length < 2) return ''\n\t // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\t while (str.length % 4 !== 0) {\n\t str = str + '=';\n\t }\n\t return str\n\t}\n\n\tfunction utf8ToBytes (string, units) {\n\t units = units || Infinity;\n\t let codePoint;\n\t const length = string.length;\n\t let leadSurrogate = null;\n\t const bytes = [];\n\n\t for (let i = 0; i < length; ++i) {\n\t codePoint = string.charCodeAt(i);\n\n\t // is surrogate component\n\t if (codePoint > 0xD7FF && codePoint < 0xE000) {\n\t // last char was a lead\n\t if (!leadSurrogate) {\n\t // no lead yet\n\t if (codePoint > 0xDBFF) {\n\t // unexpected trail\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t } else if (i + 1 === length) {\n\t // unpaired lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t }\n\n\t // valid lead\n\t leadSurrogate = codePoint;\n\n\t continue\n\t }\n\n\t // 2 leads in a row\n\t if (codePoint < 0xDC00) {\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t leadSurrogate = codePoint;\n\t continue\n\t }\n\n\t // valid surrogate pair\n\t codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n\t } else if (leadSurrogate) {\n\t // valid bmp char, but last char was a lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t }\n\n\t leadSurrogate = null;\n\n\t // encode utf8\n\t if (codePoint < 0x80) {\n\t if ((units -= 1) < 0) break\n\t bytes.push(codePoint);\n\t } else if (codePoint < 0x800) {\n\t if ((units -= 2) < 0) break\n\t bytes.push(\n\t codePoint >> 0x6 | 0xC0,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x10000) {\n\t if ((units -= 3) < 0) break\n\t bytes.push(\n\t codePoint >> 0xC | 0xE0,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x110000) {\n\t if ((units -= 4) < 0) break\n\t bytes.push(\n\t codePoint >> 0x12 | 0xF0,\n\t codePoint >> 0xC & 0x3F | 0x80,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else {\n\t throw new Error('Invalid code point')\n\t }\n\t }\n\n\t return bytes\n\t}\n\n\tfunction asciiToBytes (str) {\n\t const byteArray = [];\n\t for (let i = 0; i < str.length; ++i) {\n\t // Node's code seems to be doing this and not & 0x7F..\n\t byteArray.push(str.charCodeAt(i) & 0xFF);\n\t }\n\t return byteArray\n\t}\n\n\tfunction utf16leToBytes (str, units) {\n\t let c, hi, lo;\n\t const byteArray = [];\n\t for (let i = 0; i < str.length; ++i) {\n\t if ((units -= 2) < 0) break\n\n\t c = str.charCodeAt(i);\n\t hi = c >> 8;\n\t lo = c % 256;\n\t byteArray.push(lo);\n\t byteArray.push(hi);\n\t }\n\n\t return byteArray\n\t}\n\n\tfunction base64ToBytes (str) {\n\t return base64.toByteArray(base64clean(str))\n\t}\n\n\tfunction blitBuffer (src, dst, offset, length) {\n\t let i;\n\t for (i = 0; i < length; ++i) {\n\t if ((i + offset >= dst.length) || (i >= src.length)) break\n\t dst[i + offset] = src[i];\n\t }\n\t return i\n\t}\n\n\t// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n\t// the `instanceof` check but they should be treated as of that type.\n\t// See: https://github.com/feross/buffer/issues/166\n\tfunction isInstance (obj, type) {\n\t return obj instanceof type ||\n\t (obj != null && obj.constructor != null && obj.constructor.name != null &&\n\t obj.constructor.name === type.name)\n\t}\n\tfunction numberIsNaN (obj) {\n\t // For IE11 support\n\t return obj !== obj // eslint-disable-line no-self-compare\n\t}\n\n\t// Create lookup table for `toString('hex')`\n\t// See: https://github.com/feross/buffer/issues/219\n\tconst hexSliceLookupTable = (function () {\n\t const alphabet = '0123456789abcdef';\n\t const table = new Array(256);\n\t for (let i = 0; i < 16; ++i) {\n\t const i16 = i * 16;\n\t for (let j = 0; j < 16; ++j) {\n\t table[i16 + j] = alphabet[i] + alphabet[j];\n\t }\n\t }\n\t return table\n\t})();\n\n\t// Return not function with Error if BigInt not supported\n\tfunction defineBigIntMethod (fn) {\n\t return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n\t}\n\n\tfunction BufferBigIntNotDefined () {\n\t throw new Error('BigInt not supported')\n\t} \n} (buffer));\n\nconst Buffer = buffer.Buffer;\n\nconst Blob = buffer.Blob;\nconst BlobOptions = buffer.BlobOptions;\nconst Buffer$1 = buffer.Buffer;\nconst File = buffer.File;\nconst FileOptions = buffer.FileOptions;\nconst INSPECT_MAX_BYTES = buffer.INSPECT_MAX_BYTES;\nconst SlowBuffer = buffer.SlowBuffer;\nconst TranscodeEncoding = buffer.TranscodeEncoding;\nconst atob = buffer.atob;\nconst btoa = buffer.btoa;\nconst constants = buffer.constants;\nconst isAscii = buffer.isAscii;\nconst isUtf8 = buffer.isUtf8;\nconst kMaxLength = buffer.kMaxLength;\nconst kStringMaxLength = buffer.kStringMaxLength;\nconst resolveObjectURL = buffer.resolveObjectURL;\nconst transcode = buffer.transcode;\nexport { Blob, BlobOptions, Buffer$1 as Buffer, File, FileOptions, INSPECT_MAX_BYTES, SlowBuffer, TranscodeEncoding, atob, btoa, constants, Buffer as default, isAscii, isUtf8, kMaxLength, kStringMaxLength, resolveObjectURL, transcode };\n//# sourceMappingURL=index.js.map\n","/**\n * @license\n * Copyright 2009 The Closure Library Authors\n * Copyright 2020 Daniel Wirtz / The long.js Authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * SPDX-License-Identifier: Apache-2.0\n */\n\n// WebAssembly optimizations to do native i64 multiplication and divide\nvar wasm = null;\ntry {\n wasm = new WebAssembly.Instance(\n new WebAssembly.Module(\n new Uint8Array([\n // \\0asm\n 0, 97, 115, 109,\n // version 1\n 1, 0, 0, 0,\n\n // section \"type\"\n 1, 13, 2,\n // 0, () => i32\n 96, 0, 1, 127,\n // 1, (i32, i32, i32, i32) => i32\n 96, 4, 127, 127, 127, 127, 1, 127,\n\n // section \"function\"\n 3, 7, 6,\n // 0, type 0\n 0,\n // 1, type 1\n 1,\n // 2, type 1\n 1,\n // 3, type 1\n 1,\n // 4, type 1\n 1,\n // 5, type 1\n 1,\n\n // section \"global\"\n 6, 6, 1,\n // 0, \"high\", mutable i32\n 127, 1, 65, 0, 11,\n\n // section \"export\"\n 7, 50, 6,\n // 0, \"mul\"\n 3, 109, 117, 108, 0, 1,\n // 1, \"div_s\"\n 5, 100, 105, 118, 95, 115, 0, 2,\n // 2, \"div_u\"\n 5, 100, 105, 118, 95, 117, 0, 3,\n // 3, \"rem_s\"\n 5, 114, 101, 109, 95, 115, 0, 4,\n // 4, \"rem_u\"\n 5, 114, 101, 109, 95, 117, 0, 5,\n // 5, \"get_high\"\n 8, 103, 101, 116, 95, 104, 105, 103, 104, 0, 0,\n\n // section \"code\"\n 10, 191, 1, 6,\n // 0, \"get_high\"\n 4, 0, 35, 0, 11,\n // 1, \"mul\"\n 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32,\n 3, 173, 66, 32, 134, 132, 126, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4,\n 167, 11,\n // 2, \"div_s\"\n 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32,\n 3, 173, 66, 32, 134, 132, 127, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4,\n 167, 11,\n // 3, \"div_u\"\n 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32,\n 3, 173, 66, 32, 134, 132, 128, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4,\n 167, 11,\n // 4, \"rem_s\"\n 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32,\n 3, 173, 66, 32, 134, 132, 129, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4,\n 167, 11,\n // 5, \"rem_u\"\n 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32,\n 3, 173, 66, 32, 134, 132, 130, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4,\n 167, 11,\n ]),\n ),\n {},\n ).exports;\n} catch {\n // no wasm support :(\n}\n\n/**\n * Constructs a 64 bit two's-complement integer, given its low and high 32 bit values as *signed* integers.\n * See the from* functions below for more convenient ways of constructing Longs.\n * @exports Long\n * @class A Long class for representing a 64 bit two's-complement integer value.\n * @param {number} low The low (signed) 32 bits of the long\n * @param {number} high The high (signed) 32 bits of the long\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\n * @constructor\n */\nfunction Long(low, high, unsigned) {\n /**\n * The low 32 bits as a signed value.\n * @type {number}\n */\n this.low = low | 0;\n\n /**\n * The high 32 bits as a signed value.\n * @type {number}\n */\n this.high = high | 0;\n\n /**\n * Whether unsigned or not.\n * @type {boolean}\n */\n this.unsigned = !!unsigned;\n}\n\n// The internal representation of a long is the two given signed, 32-bit values.\n// We use 32-bit pieces because these are the size of integers on which\n// Javascript performs bit-operations. For operations like addition and\n// multiplication, we split each number into 16 bit pieces, which can easily be\n// multiplied within Javascript's floating-point representation without overflow\n// or change in sign.\n//\n// In the algorithms below, we frequently reduce the negative case to the\n// positive case by negating the input(s) and then post-processing the result.\n// Note that we must ALWAYS check specially whether those values are MIN_VALUE\n// (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as\n// a positive number, it overflows back into a negative). Not handling this\n// case would often result in infinite recursion.\n//\n// Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the from*\n// methods on which they depend.\n\n/**\n * An indicator used to reliably determine if an object is a Long or not.\n * @type {boolean}\n * @const\n * @private\n */\nLong.prototype.__isLong__;\n\nObject.defineProperty(Long.prototype, \"__isLong__\", { value: true });\n\n/**\n * @function\n * @param {*} obj Object\n * @returns {boolean}\n * @inner\n */\nfunction isLong(obj) {\n return (obj && obj[\"__isLong__\"]) === true;\n}\n\n/**\n * @function\n * @param {*} value number\n * @returns {number}\n * @inner\n */\nfunction ctz32(value) {\n var c = Math.clz32(value & -value);\n return value ? 31 - c : c;\n}\n\n/**\n * Tests if the specified object is a Long.\n * @function\n * @param {*} obj Object\n * @returns {boolean}\n */\nLong.isLong = isLong;\n\n/**\n * A cache of the Long representations of small integer values.\n * @type {!Object}\n * @inner\n */\nvar INT_CACHE = {};\n\n/**\n * A cache of the Long representations of small unsigned integer values.\n * @type {!Object}\n * @inner\n */\nvar UINT_CACHE = {};\n\n/**\n * @param {number} value\n * @param {boolean=} unsigned\n * @returns {!Long}\n * @inner\n */\nfunction fromInt(value, unsigned) {\n var obj, cachedObj, cache;\n if (unsigned) {\n value >>>= 0;\n if ((cache = 0 <= value && value < 256)) {\n cachedObj = UINT_CACHE[value];\n if (cachedObj) return cachedObj;\n }\n obj = fromBits(value, 0, true);\n if (cache) UINT_CACHE[value] = obj;\n return obj;\n } else {\n value |= 0;\n if ((cache = -128 <= value && value < 128)) {\n cachedObj = INT_CACHE[value];\n if (cachedObj) return cachedObj;\n }\n obj = fromBits(value, value < 0 ? -1 : 0, false);\n if (cache) INT_CACHE[value] = obj;\n return obj;\n }\n}\n\n/**\n * Returns a Long representing the given 32 bit integer value.\n * @function\n * @param {number} value The 32 bit integer in question\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\n * @returns {!Long} The corresponding Long value\n */\nLong.fromInt = fromInt;\n\n/**\n * @param {number} value\n * @param {boolean=} unsigned\n * @returns {!Long}\n * @inner\n */\nfunction fromNumber(value, unsigned) {\n if (isNaN(value)) return unsigned ? UZERO : ZERO;\n if (unsigned) {\n if (value < 0) return UZERO;\n if (value >= TWO_PWR_64_DBL) return MAX_UNSIGNED_VALUE;\n } else {\n if (value <= -TWO_PWR_63_DBL) return MIN_VALUE;\n if (value + 1 >= TWO_PWR_63_DBL) return MAX_VALUE;\n }\n if (value < 0) return fromNumber(-value, unsigned).neg();\n return fromBits(\n value % TWO_PWR_32_DBL | 0,\n (value / TWO_PWR_32_DBL) | 0,\n unsigned,\n );\n}\n\n/**\n * Returns a Long representing the given value, provided that it is a finite number. Otherwise, zero is returned.\n * @function\n * @param {number} value The number in question\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\n * @returns {!Long} The corresponding Long value\n */\nLong.fromNumber = fromNumber;\n\n/**\n * @param {number} lowBits\n * @param {number} highBits\n * @param {boolean=} unsigned\n * @returns {!Long}\n * @inner\n */\nfunction fromBits(lowBits, highBits, unsigned) {\n return new Long(lowBits, highBits, unsigned);\n}\n\n/**\n * Returns a Long representing the 64 bit integer that comes by concatenating the given low and high bits. Each is\n * assumed to use 32 bits.\n * @function\n * @param {number} lowBits The low 32 bits\n * @param {number} highBits The high 32 bits\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\n * @returns {!Long} The corresponding Long value\n */\nLong.fromBits = fromBits;\n\n/**\n * @function\n * @param {number} base\n * @param {number} exponent\n * @returns {number}\n * @inner\n */\nvar pow_dbl = Math.pow; // Used 4 times (4*8 to 15+4)\n\n/**\n * @param {string} str\n * @param {(boolean|number)=} unsigned\n * @param {number=} radix\n * @returns {!Long}\n * @inner\n */\nfunction fromString(str, unsigned, radix) {\n if (str.length === 0) throw Error(\"empty string\");\n if (typeof unsigned === \"number\") {\n // For goog.math.long compatibility\n radix = unsigned;\n unsigned = false;\n } else {\n unsigned = !!unsigned;\n }\n if (\n str === \"NaN\" ||\n str === \"Infinity\" ||\n str === \"+Infinity\" ||\n str === \"-Infinity\"\n )\n return unsigned ? UZERO : ZERO;\n radix = radix || 10;\n if (radix < 2 || 36 < radix) throw RangeError(\"radix\");\n\n var p;\n if ((p = str.indexOf(\"-\")) > 0) throw Error(\"interior hyphen\");\n else if (p === 0) {\n return fromString(str.substring(1), unsigned, radix).neg();\n }\n\n // Do several (8) digits each time through the loop, so as to\n // minimize the calls to the very expensive emulated div.\n var radixToPower = fromNumber(pow_dbl(radix, 8));\n\n var result = ZERO;\n for (var i = 0; i < str.length; i += 8) {\n var size = Math.min(8, str.length - i),\n value = parseInt(str.substring(i, i + size), radix);\n if (size < 8) {\n var power = fromNumber(pow_dbl(radix, size));\n result = result.mul(power).add(fromNumber(value));\n } else {\n result = result.mul(radixToPower);\n result = result.add(fromNumber(value));\n }\n }\n result.unsigned = unsigned;\n return result;\n}\n\n/**\n * Returns a Long representation of the given string, written using the specified radix.\n * @function\n * @param {string} str The textual representation of the Long\n * @param {(boolean|number)=} unsigned Whether unsigned or not, defaults to signed\n * @param {number=} radix The radix in which the text is written (2-36), defaults to 10\n * @returns {!Long} The corresponding Long value\n */\nLong.fromString = fromString;\n\n/**\n * @function\n * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val\n * @param {boolean=} unsigned\n * @returns {!Long}\n * @inner\n */\nfunction fromValue(val, unsigned) {\n if (typeof val === \"number\") return fromNumber(val, unsigned);\n if (typeof val === \"string\") return fromString(val, unsigned);\n // Throws for non-objects, converts non-instanceof Long:\n return fromBits(\n val.low,\n val.high,\n typeof unsigned === \"boolean\" ? unsigned : val.unsigned,\n );\n}\n\n/**\n * Converts the specified value to a Long using the appropriate from* function for its type.\n * @function\n * @param {!Long|number|bigint|string|!{low: number, high: number, unsigned: boolean}} val Value\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\n * @returns {!Long}\n */\nLong.fromValue = fromValue;\n\n// NOTE: the compiler should inline these constant values below and then remove these variables, so there should be\n// no runtime penalty for these.\n\n/**\n * @type {number}\n * @const\n * @inner\n */\nvar TWO_PWR_16_DBL = 1 << 16;\n\n/**\n * @type {number}\n * @const\n * @inner\n */\nvar TWO_PWR_24_DBL = 1 << 24;\n\n/**\n * @type {number}\n * @const\n * @inner\n */\nvar TWO_PWR_32_DBL = TWO_PWR_16_DBL * TWO_PWR_16_DBL;\n\n/**\n * @type {number}\n * @const\n * @inner\n */\nvar TWO_PWR_64_DBL = TWO_PWR_32_DBL * TWO_PWR_32_DBL;\n\n/**\n * @type {number}\n * @const\n * @inner\n */\nvar TWO_PWR_63_DBL = TWO_PWR_64_DBL / 2;\n\n/**\n * @type {!Long}\n * @const\n * @inner\n */\nvar TWO_PWR_24 = fromInt(TWO_PWR_24_DBL);\n\n/**\n * @type {!Long}\n * @inner\n */\nvar ZERO = fromInt(0);\n\n/**\n * Signed zero.\n * @type {!Long}\n */\nLong.ZERO = ZERO;\n\n/**\n * @type {!Long}\n * @inner\n */\nvar UZERO = fromInt(0, true);\n\n/**\n * Unsigned zero.\n * @type {!Long}\n */\nLong.UZERO = UZERO;\n\n/**\n * @type {!Long}\n * @inner\n */\nvar ONE = fromInt(1);\n\n/**\n * Signed one.\n * @type {!Long}\n */\nLong.ONE = ONE;\n\n/**\n * @type {!Long}\n * @inner\n */\nvar UONE = fromInt(1, true);\n\n/**\n * Unsigned one.\n * @type {!Long}\n */\nLong.UONE = UONE;\n\n/**\n * @type {!Long}\n * @inner\n */\nvar NEG_ONE = fromInt(-1);\n\n/**\n * Signed negative one.\n * @type {!Long}\n */\nLong.NEG_ONE = NEG_ONE;\n\n/**\n * @type {!Long}\n * @inner\n */\nvar MAX_VALUE = fromBits(0xffffffff | 0, 0x7fffffff | 0, false);\n\n/**\n * Maximum signed value.\n * @type {!Long}\n */\nLong.MAX_VALUE = MAX_VALUE;\n\n/**\n * @type {!Long}\n * @inner\n */\nvar MAX_UNSIGNED_VALUE = fromBits(0xffffffff | 0, 0xffffffff | 0, true);\n\n/**\n * Maximum unsigned value.\n * @type {!Long}\n */\nLong.MAX_UNSIGNED_VALUE = MAX_UNSIGNED_VALUE;\n\n/**\n * @type {!Long}\n * @inner\n */\nvar MIN_VALUE = fromBits(0, 0x80000000 | 0, false);\n\n/**\n * Minimum signed value.\n * @type {!Long}\n */\nLong.MIN_VALUE = MIN_VALUE;\n\n/**\n * @alias Long.prototype\n * @inner\n */\nvar LongPrototype = Long.prototype;\n\n/**\n * Converts the Long to a 32 bit integer, assuming it is a 32 bit integer.\n * @this {!Long}\n * @returns {number}\n */\nLongPrototype.toInt = function toInt() {\n return this.unsigned ? this.low >>> 0 : this.low;\n};\n\n/**\n * Converts the Long to a the nearest floating-point representation of this value (double, 53 bit mantissa).\n * @this {!Long}\n * @returns {number}\n */\nLongPrototype.toNumber = function toNumber() {\n if (this.unsigned)\n return (this.high >>> 0) * TWO_PWR_32_DBL + (this.low >>> 0);\n return this.high * TWO_PWR_32_DBL + (this.low >>> 0);\n};\n\n/**\n * Converts the Long to a string written in the specified radix.\n * @this {!Long}\n * @param {number=} radix Radix (2-36), defaults to 10\n * @returns {string}\n * @override\n * @throws {RangeError} If `radix` is out of range\n */\nLongPrototype.toString = function toString(radix) {\n radix = radix || 10;\n if (radix < 2 || 36 < radix) throw RangeError(\"radix\");\n if (this.isZero()) return \"0\";\n if (this.isNegative()) {\n // Unsigned Longs are never negative\n if (this.eq(MIN_VALUE)) {\n // We need to change the Long value before it can be negated, so we remove\n // the bottom-most digit in this base and then recurse to do the rest.\n var radixLong = fromNumber(radix),\n div = this.div(radixLong),\n rem1 = div.mul(radixLong).sub(this);\n return div.toString(radix) + rem1.toInt().toString(radix);\n } else return \"-\" + this.neg().toString(radix);\n }\n\n // Do several (6) digits each time through the loop, so as to\n // minimize the calls to the very expensive emulated div.\n var radixToPower = fromNumber(pow_dbl(radix, 6), this.unsigned),\n rem = this;\n var result = \"\";\n while (true) {\n var remDiv = rem.div(radixToPower),\n intval = rem.sub(remDiv.mul(radixToPower)).toInt() >>> 0,\n digits = intval.toString(radix);\n rem = remDiv;\n if (rem.isZero()) return digits + result;\n else {\n while (digits.length < 6) digits = \"0\" + digits;\n result = \"\" + digits + result;\n }\n }\n};\n\n/**\n * Gets the high 32 bits as a signed integer.\n * @this {!Long}\n * @returns {number} Signed high bits\n */\nLongPrototype.getHighBits = function getHighBits() {\n return this.high;\n};\n\n/**\n * Gets the high 32 bits as an unsigned integer.\n * @this {!Long}\n * @returns {number} Unsigned high bits\n */\nLongPrototype.getHighBitsUnsigned = function getHighBitsUnsigned() {\n return this.high >>> 0;\n};\n\n/**\n * Gets the low 32 bits as a signed integer.\n * @this {!Long}\n * @returns {number} Signed low bits\n */\nLongPrototype.getLowBits = function getLowBits() {\n return this.low;\n};\n\n/**\n * Gets the low 32 bits as an unsigned integer.\n * @this {!Long}\n * @returns {number} Unsigned low bits\n */\nLongPrototype.getLowBitsUnsigned = function getLowBitsUnsigned() {\n return this.low >>> 0;\n};\n\n/**\n * Gets the number of bits needed to represent the absolute value of this Long.\n * @this {!Long}\n * @returns {number}\n */\nLongPrototype.getNumBitsAbs = function getNumBitsAbs() {\n if (this.isNegative())\n // Unsigned Longs are never negative\n return this.eq(MIN_VALUE) ? 64 : this.neg().getNumBitsAbs();\n var val = this.high != 0 ? this.high : this.low;\n for (var bit = 31; bit > 0; bit--) if ((val & (1 << bit)) != 0) break;\n return this.high != 0 ? bit + 33 : bit + 1;\n};\n\n/**\n * Tests if this Long can be safely represented as a JavaScript number.\n * @this {!Long}\n * @returns {boolean}\n */\nLongPrototype.isSafeInteger = function isSafeInteger() {\n // 2^53-1 is the maximum safe value\n var top11Bits = this.high >> 21;\n // [0, 2^53-1]\n if (!top11Bits) return true;\n // > 2^53-1\n if (this.unsigned) return false;\n // [-2^53, -1] except -2^53\n return top11Bits === -1 && !(this.low === 0 && this.high === -0x200000);\n};\n\n/**\n * Tests if this Long's value equals zero.\n * @this {!Long}\n * @returns {boolean}\n */\nLongPrototype.isZero = function isZero() {\n return this.high === 0 && this.low === 0;\n};\n\n/**\n * Tests if this Long's value equals zero. This is an alias of {@link Long#isZero}.\n * @returns {boolean}\n */\nLongPrototype.eqz = LongPrototype.isZero;\n\n/**\n * Tests if this Long's value is negative.\n * @this {!Long}\n * @returns {boolean}\n */\nLongPrototype.isNegative = function isNegative() {\n return !this.unsigned && this.high < 0;\n};\n\n/**\n * Tests if this Long's value is positive or zero.\n * @this {!Long}\n * @returns {boolean}\n */\nLongPrototype.isPositive = function isPositive() {\n return this.unsigned || this.high >= 0;\n};\n\n/**\n * Tests if this Long's value is odd.\n * @this {!Long}\n * @returns {boolean}\n */\nLongPrototype.isOdd = function isOdd() {\n return (this.low & 1) === 1;\n};\n\n/**\n * Tests if this Long's value is even.\n * @this {!Long}\n * @returns {boolean}\n */\nLongPrototype.isEven = function isEven() {\n return (this.low & 1) === 0;\n};\n\n/**\n * Tests if this Long's value equals the specified's.\n * @this {!Long}\n * @param {!Long|number|bigint|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.equals = function equals(other) {\n if (!isLong(other)) other = fromValue(other);\n if (\n this.unsigned !== other.unsigned &&\n this.high >>> 31 === 1 &&\n other.high >>> 31 === 1\n )\n return false;\n return this.high === other.high && this.low === other.low;\n};\n\n/**\n * Tests if this Long's value equals the specified's. This is an alias of {@link Long#equals}.\n * @function\n * @param {!Long|number|bigint|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.eq = LongPrototype.equals;\n\n/**\n * Tests if this Long's value differs from the specified's.\n * @this {!Long}\n * @param {!Long|number|bigint|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.notEquals = function notEquals(other) {\n return !this.eq(/* validates */ other);\n};\n\n/**\n * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\n * @function\n * @param {!Long|number|bigint|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.neq = LongPrototype.notEquals;\n\n/**\n * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\n * @function\n * @param {!Long|number|bigint|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.ne = LongPrototype.notEquals;\n\n/**\n * Tests if this Long's value is less than the specified's.\n * @this {!Long}\n * @param {!Long|number|bigint|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.lessThan = function lessThan(other) {\n return this.comp(/* validates */ other) < 0;\n};\n\n/**\n * Tests if this Long's value is less than the specified's. This is an alias of {@link Long#lessThan}.\n * @function\n * @param {!Long|number|bigint|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.lt = LongPrototype.lessThan;\n\n/**\n * Tests if this Long's value is less than or equal the specified's.\n * @this {!Long}\n * @param {!Long|number|bigint|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.lessThanOrEqual = function lessThanOrEqual(other) {\n return this.comp(/* validates */ other) <= 0;\n};\n\n/**\n * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\n * @function\n * @param {!Long|number|bigint|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.lte = LongPrototype.lessThanOrEqual;\n\n/**\n * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\n * @function\n * @param {!Long|number|bigint|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.le = LongPrototype.lessThanOrEqual;\n\n/**\n * Tests if this Long's value is greater than the specified's.\n * @this {!Long}\n * @param {!Long|number|bigint|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.greaterThan = function greaterThan(other) {\n return this.comp(/* validates */ other) > 0;\n};\n\n/**\n * Tests if this Long's value is greater than the specified's. This is an alias of {@link Long#greaterThan}.\n * @function\n * @param {!Long|number|bigint|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.gt = LongPrototype.greaterThan;\n\n/**\n * Tests if this Long's value is greater than or equal the specified's.\n * @this {!Long}\n * @param {!Long|number|bigint|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.greaterThanOrEqual = function greaterThanOrEqual(other) {\n return this.comp(/* validates */ other) >= 0;\n};\n\n/**\n * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\n * @function\n * @param {!Long|number|bigint|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.gte = LongPrototype.greaterThanOrEqual;\n\n/**\n * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\n * @function\n * @param {!Long|number|bigint|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.ge = LongPrototype.greaterThanOrEqual;\n\n/**\n * Compares this Long's value with the specified's.\n * @this {!Long}\n * @param {!Long|number|bigint|string} other Other value\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\n * if the given one is greater\n */\nLongPrototype.compare = function compare(other) {\n if (!isLong(other)) other = fromValue(other);\n if (this.eq(other)) return 0;\n var thisNeg = this.isNegative(),\n otherNeg = other.isNegative();\n if (thisNeg && !otherNeg) return -1;\n if (!thisNeg && otherNeg) return 1;\n // At this point the sign bits are the same\n if (!this.unsigned) return this.sub(other).isNegative() ? -1 : 1;\n // Both are positive if at least one is unsigned\n return other.high >>> 0 > this.high >>> 0 ||\n (other.high === this.high && other.low >>> 0 > this.low >>> 0)\n ? -1\n : 1;\n};\n\n/**\n * Compares this Long's value with the specified's. This is an alias of {@link Long#compare}.\n * @function\n * @param {!Long|number|bigint|string} other Other value\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\n * if the given one is greater\n */\nLongPrototype.comp = LongPrototype.compare;\n\n/**\n * Negates this Long's value.\n * @this {!Long}\n * @returns {!Long} Negated Long\n */\nLongPrototype.negate = function negate() {\n if (!this.unsigned && this.eq(MIN_VALUE)) return MIN_VALUE;\n return this.not().add(ONE);\n};\n\n/**\n * Negates this Long's value. This is an alias of {@link Long#negate}.\n * @function\n * @returns {!Long} Negated Long\n */\nLongPrototype.neg = LongPrototype.negate;\n\n/**\n * Returns the sum of this and the specified Long.\n * @this {!Long}\n * @param {!Long|number|bigint|string} addend Addend\n * @returns {!Long} Sum\n */\nLongPrototype.add = function add(addend) {\n if (!isLong(addend)) addend = fromValue(addend);\n\n // Divide each number into 4 chunks of 16 bits, and then sum the chunks.\n\n var a48 = this.high >>> 16;\n var a32 = this.high & 0xffff;\n var a16 = this.low >>> 16;\n var a00 = this.low & 0xffff;\n\n var b48 = addend.high >>> 16;\n var b32 = addend.high & 0xffff;\n var b16 = addend.low >>> 16;\n var b00 = addend.low & 0xffff;\n\n var c48 = 0,\n c32 = 0,\n c16 = 0,\n c00 = 0;\n c00 += a00 + b00;\n c16 += c00 >>> 16;\n c00 &= 0xffff;\n c16 += a16 + b16;\n c32 += c16 >>> 16;\n c16 &= 0xffff;\n c32 += a32 + b32;\n c48 += c32 >>> 16;\n c32 &= 0xffff;\n c48 += a48 + b48;\n c48 &= 0xffff;\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\n};\n\n/**\n * Returns the difference of this and the specified Long.\n * @this {!Long}\n * @param {!Long|number|bigint|string} subtrahend Subtrahend\n * @returns {!Long} Difference\n */\nLongPrototype.subtract = function subtract(subtrahend) {\n if (!isLong(subtrahend)) subtrahend = fromValue(subtrahend);\n return this.add(subtrahend.neg());\n};\n\n/**\n * Returns the difference of this and the specified Long. This is an alias of {@link Long#subtract}.\n * @function\n * @param {!Long|number|bigint|string} subtrahend Subtrahend\n * @returns {!Long} Difference\n */\nLongPrototype.sub = LongPrototype.subtract;\n\n/**\n * Returns the product of this and the specified Long.\n * @this {!Long}\n * @param {!Long|number|bigint|string} multiplier Multiplier\n * @returns {!Long} Product\n */\nLongPrototype.multiply = function multiply(multiplier) {\n if (this.isZero()) return this;\n if (!isLong(multiplier)) multiplier = fromValue(multiplier);\n\n // use wasm support if present\n if (wasm) {\n var low = wasm[\"mul\"](this.low, this.high, multiplier.low, multiplier.high);\n return fromBits(low, wasm[\"get_high\"](), this.unsigned);\n }\n\n if (multiplier.isZero()) return this.unsigned ? UZERO : ZERO;\n if (this.eq(MIN_VALUE)) return multiplier.isOdd() ? MIN_VALUE : ZERO;\n if (multiplier.eq(MIN_VALUE)) return this.isOdd() ? MIN_VALUE : ZERO;\n\n if (this.isNegative()) {\n if (multiplier.isNegative()) return this.neg().mul(multiplier.neg());\n else return this.neg().mul(multiplier).neg();\n } else if (multiplier.isNegative()) return this.mul(multiplier.neg()).neg();\n\n // If both longs are small, use float multiplication\n if (this.lt(TWO_PWR_24) && multiplier.lt(TWO_PWR_24))\n return fromNumber(this.toNumber() * multiplier.toNumber(), this.unsigned);\n\n // Divide each long into 4 chunks of 16 bits, and then add up 4x4 products.\n // We can skip products that would overflow.\n\n var a48 = this.high >>> 16;\n var a32 = this.high & 0xffff;\n var a16 = this.low >>> 16;\n var a00 = this.low & 0xffff;\n\n var b48 = multiplier.high >>> 16;\n var b32 = multiplier.high & 0xffff;\n var b16 = multiplier.low >>> 16;\n var b00 = multiplier.low & 0xffff;\n\n var c48 = 0,\n c32 = 0,\n c16 = 0,\n c00 = 0;\n c00 += a00 * b00;\n c16 += c00 >>> 16;\n c00 &= 0xffff;\n c16 += a16 * b00;\n c32 += c16 >>> 16;\n c16 &= 0xffff;\n c16 += a00 * b16;\n c32 += c16 >>> 16;\n c16 &= 0xffff;\n c32 += a32 * b00;\n c48 += c32 >>> 16;\n c32 &= 0xffff;\n c32 += a16 * b16;\n c48 += c32 >>> 16;\n c32 &= 0xffff;\n c32 += a00 * b32;\n c48 += c32 >>> 16;\n c32 &= 0xffff;\n c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48;\n c48 &= 0xffff;\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\n};\n\n/**\n * Returns the product of this and the specified Long. This is an alias of {@link Long#multiply}.\n * @function\n * @param {!Long|number|bigint|string} multiplier Multiplier\n * @returns {!Long} Product\n */\nLongPrototype.mul = LongPrototype.multiply;\n\n/**\n * Returns this Long divided by the specified. The result is signed if this Long is signed or\n * unsigned if this Long is unsigned.\n * @this {!Long}\n * @param {!Long|number|bigint|string} divisor Divisor\n * @returns {!Long} Quotient\n */\nLongPrototype.divide = function divide(divisor) {\n if (!isLong(divisor)) divisor = fromValue(divisor);\n if (divisor.isZero()) throw Error(\"division by zero\");\n\n // use wasm support if present\n if (wasm) {\n // guard against signed division overflow: the largest\n // negative number / -1 would be 1 larger than the largest\n // positive number, due to two's complement.\n if (\n !this.unsigned &&\n this.high === -0x80000000 &&\n divisor.low === -1 &&\n divisor.high === -1\n ) {\n // be consistent with non-wasm code path\n return this;\n }\n var low = (this.unsigned ? wasm[\"div_u\"] : wasm[\"div_s\"])(\n this.low,\n this.high,\n divisor.low,\n divisor.high,\n );\n return fromBits(low, wasm[\"get_high\"](), this.unsigned);\n }\n\n if (this.isZero()) return this.unsigned ? UZERO : ZERO;\n var approx, rem, res;\n if (!this.unsigned) {\n // This section is only relevant for signed longs and is derived from the\n // closure library as a whole.\n if (this.eq(MIN_VALUE)) {\n if (divisor.eq(ONE) || divisor.eq(NEG_ONE))\n return MIN_VALUE; // recall that -MIN_VALUE == MIN_VALUE\n else if (divisor.eq(MIN_VALUE)) return ONE;\n else {\n // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|.\n var halfThis = this.shr(1);\n approx = halfThis.div(divisor).shl(1);\n if (approx.eq(ZERO)) {\n return divisor.isNegative() ? ONE : NEG_ONE;\n } else {\n rem = this.sub(divisor.mul(approx));\n res = approx.add(rem.div(divisor));\n return res;\n }\n }\n } else if (divisor.eq(MIN_VALUE)) return this.unsigned ? UZERO : ZERO;\n if (this.isNegative()) {\n if (divisor.isNegative()) return this.neg().div(divisor.neg());\n return this.neg().div(divisor).neg();\n } else if (divisor.isNegative()) return this.div(divisor.neg()).neg();\n res = ZERO;\n } else {\n // The algorithm below has not been made for unsigned longs. It's therefore\n // required to take special care of the MSB prior to running it.\n if (!divisor.unsigned) divisor = divisor.toUnsigned();\n if (divisor.gt(this)) return UZERO;\n if (divisor.gt(this.shru(1)))\n // 15 >>> 1 = 7 ; with divisor = 8 ; true\n return UONE;\n res = UZERO;\n }\n\n // Repeat the following until the remainder is less than other: find a\n // floating-point that approximates remainder / other *from below*, add this\n // into the result, and subtract it from the remainder. It is critical that\n // the approximate value is less than or equal to the real value so that the\n // remainder never becomes negative.\n rem = this;\n while (rem.gte(divisor)) {\n // Approximate the result of division. This may be a little greater or\n // smaller than the actual value.\n approx = Math.max(1, Math.floor(rem.toNumber() / divisor.toNumber()));\n\n // We will tweak the approximate result by changing it in the 48-th digit or\n // the smallest non-fractional digit, whichever is larger.\n var log2 = Math.ceil(Math.log(approx) / Math.LN2),\n delta = log2 <= 48 ? 1 : pow_dbl(2, log2 - 48),\n // Decrease the approximation until it is smaller than the remainder. Note\n // that if it is too large, the product overflows and is negative.\n approxRes = fromNumber(approx),\n approxRem = approxRes.mul(divisor);\n while (approxRem.isNegative() || approxRem.gt(rem)) {\n approx -= delta;\n approxRes = fromNumber(approx, this.unsigned);\n approxRem = approxRes.mul(divisor);\n }\n\n // We know the answer can't be zero... and actually, zero would cause\n // infinite recursion since we would make no progress.\n if (approxRes.isZero()) approxRes = ONE;\n\n res = res.add(approxRes);\n rem = rem.sub(approxRem);\n }\n return res;\n};\n\n/**\n * Returns this Long divided by the specified. This is an alias of {@link Long#divide}.\n * @function\n * @param {!Long|number|bigint|string} divisor Divisor\n * @returns {!Long} Quotient\n */\nLongPrototype.div = LongPrototype.divide;\n\n/**\n * Returns this Long modulo the specified.\n * @this {!Long}\n * @param {!Long|number|bigint|string} divisor Divisor\n * @returns {!Long} Remainder\n */\nLongPrototype.modulo = function modulo(divisor) {\n if (!isLong(divisor)) divisor = fromValue(divisor);\n\n // use wasm support if present\n if (wasm) {\n var low = (this.unsigned ? wasm[\"rem_u\"] : wasm[\"rem_s\"])(\n this.low,\n this.high,\n divisor.low,\n divisor.high,\n );\n return fromBits(low, wasm[\"get_high\"](), this.unsigned);\n }\n\n return this.sub(this.div(divisor).mul(divisor));\n};\n\n/**\n * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\n * @function\n * @param {!Long|number|bigint|string} divisor Divisor\n * @returns {!Long} Remainder\n */\nLongPrototype.mod = LongPrototype.modulo;\n\n/**\n * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\n * @function\n * @param {!Long|number|bigint|string} divisor Divisor\n * @returns {!Long} Remainder\n */\nLongPrototype.rem = LongPrototype.modulo;\n\n/**\n * Returns the bitwise NOT of this Long.\n * @this {!Long}\n * @returns {!Long}\n */\nLongPrototype.not = function not() {\n return fromBits(~this.low, ~this.high, this.unsigned);\n};\n\n/**\n * Returns count leading zeros of this Long.\n * @this {!Long}\n * @returns {!number}\n */\nLongPrototype.countLeadingZeros = function countLeadingZeros() {\n return this.high ? Math.clz32(this.high) : Math.clz32(this.low) + 32;\n};\n\n/**\n * Returns count leading zeros. This is an alias of {@link Long#countLeadingZeros}.\n * @function\n * @param {!Long}\n * @returns {!number}\n */\nLongPrototype.clz = LongPrototype.countLeadingZeros;\n\n/**\n * Returns count trailing zeros of this Long.\n * @this {!Long}\n * @returns {!number}\n */\nLongPrototype.countTrailingZeros = function countTrailingZeros() {\n return this.low ? ctz32(this.low) : ctz32(this.high) + 32;\n};\n\n/**\n * Returns count trailing zeros. This is an alias of {@link Long#countTrailingZeros}.\n * @function\n * @param {!Long}\n * @returns {!number}\n */\nLongPrototype.ctz = LongPrototype.countTrailingZeros;\n\n/**\n * Returns the bitwise AND of this Long and the specified.\n * @this {!Long}\n * @param {!Long|number|bigint|string} other Other Long\n * @returns {!Long}\n */\nLongPrototype.and = function and(other) {\n if (!isLong(other)) other = fromValue(other);\n return fromBits(this.low & other.low, this.high & other.high, this.unsigned);\n};\n\n/**\n * Returns the bitwise OR of this Long and the specified.\n * @this {!Long}\n * @param {!Long|number|bigint|string} other Other Long\n * @returns {!Long}\n */\nLongPrototype.or = function or(other) {\n if (!isLong(other)) other = fromValue(other);\n return fromBits(this.low | other.low, this.high | other.high, this.unsigned);\n};\n\n/**\n * Returns the bitwise XOR of this Long and the given one.\n * @this {!Long}\n * @param {!Long|number|bigint|string} other Other Long\n * @returns {!Long}\n */\nLongPrototype.xor = function xor(other) {\n if (!isLong(other)) other = fromValue(other);\n return fromBits(this.low ^ other.low, this.high ^ other.high, this.unsigned);\n};\n\n/**\n * Returns this Long with bits shifted to the left by the given amount.\n * @this {!Long}\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Shifted Long\n */\nLongPrototype.shiftLeft = function shiftLeft(numBits) {\n if (isLong(numBits)) numBits = numBits.toInt();\n if ((numBits &= 63) === 0) return this;\n else if (numBits < 32)\n return fromBits(\n this.low << numBits,\n (this.high << numBits) | (this.low >>> (32 - numBits)),\n this.unsigned,\n );\n else return fromBits(0, this.low << (numBits - 32), this.unsigned);\n};\n\n/**\n * Returns this Long with bits shifted to the left by the given amount. This is an alias of {@link Long#shiftLeft}.\n * @function\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Shifted Long\n */\nLongPrototype.shl = LongPrototype.shiftLeft;\n\n/**\n * Returns this Long with bits arithmetically shifted to the right by the given amount.\n * @this {!Long}\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Shifted Long\n */\nLongPrototype.shiftRight = function shiftRight(numBits) {\n if (isLong(numBits)) numBits = numBits.toInt();\n if ((numBits &= 63) === 0) return this;\n else if (numBits < 32)\n return fromBits(\n (this.low >>> numBits) | (this.high << (32 - numBits)),\n this.high >> numBits,\n this.unsigned,\n );\n else\n return fromBits(\n this.high >> (numBits - 32),\n this.high >= 0 ? 0 : -1,\n this.unsigned,\n );\n};\n\n/**\n * Returns this Long with bits arithmetically shifted to the right by the given amount. This is an alias of {@link Long#shiftRight}.\n * @function\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Shifted Long\n */\nLongPrototype.shr = LongPrototype.shiftRight;\n\n/**\n * Returns this Long with bits logically shifted to the right by the given amount.\n * @this {!Long}\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Shifted Long\n */\nLongPrototype.shiftRightUnsigned = function shiftRightUnsigned(numBits) {\n if (isLong(numBits)) numBits = numBits.toInt();\n if ((numBits &= 63) === 0) return this;\n if (numBits < 32)\n return fromBits(\n (this.low >>> numBits) | (this.high << (32 - numBits)),\n this.high >>> numBits,\n this.unsigned,\n );\n if (numBits === 32) return fromBits(this.high, 0, this.unsigned);\n return fromBits(this.high >>> (numBits - 32), 0, this.unsigned);\n};\n\n/**\n * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\n * @function\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Shifted Long\n */\nLongPrototype.shru = LongPrototype.shiftRightUnsigned;\n\n/**\n * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\n * @function\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Shifted Long\n */\nLongPrototype.shr_u = LongPrototype.shiftRightUnsigned;\n\n/**\n * Returns this Long with bits rotated to the left by the given amount.\n * @this {!Long}\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Rotated Long\n */\nLongPrototype.rotateLeft = function rotateLeft(numBits) {\n var b;\n if (isLong(numBits)) numBits = numBits.toInt();\n if ((numBits &= 63) === 0) return this;\n if (numBits === 32) return fromBits(this.high, this.low, this.unsigned);\n if (numBits < 32) {\n b = 32 - numBits;\n return fromBits(\n (this.low << numBits) | (this.high >>> b),\n (this.high << numBits) | (this.low >>> b),\n this.unsigned,\n );\n }\n numBits -= 32;\n b = 32 - numBits;\n return fromBits(\n (this.high << numBits) | (this.low >>> b),\n (this.low << numBits) | (this.high >>> b),\n this.unsigned,\n );\n};\n/**\n * Returns this Long with bits rotated to the left by the given amount. This is an alias of {@link Long#rotateLeft}.\n * @function\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Rotated Long\n */\nLongPrototype.rotl = LongPrototype.rotateLeft;\n\n/**\n * Returns this Long with bits rotated to the right by the given amount.\n * @this {!Long}\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Rotated Long\n */\nLongPrototype.rotateRight = function rotateRight(numBits) {\n var b;\n if (isLong(numBits)) numBits = numBits.toInt();\n if ((numBits &= 63) === 0) return this;\n if (numBits === 32) return fromBits(this.high, this.low, this.unsigned);\n if (numBits < 32) {\n b = 32 - numBits;\n return fromBits(\n (this.high << b) | (this.low >>> numBits),\n (this.low << b) | (this.high >>> numBits),\n this.unsigned,\n );\n }\n numBits -= 32;\n b = 32 - numBits;\n return fromBits(\n (this.low << b) | (this.high >>> numBits),\n (this.high << b) | (this.low >>> numBits),\n this.unsigned,\n );\n};\n/**\n * Returns this Long with bits rotated to the right by the given amount. This is an alias of {@link Long#rotateRight}.\n * @function\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Rotated Long\n */\nLongPrototype.rotr = LongPrototype.rotateRight;\n\n/**\n * Converts this Long to signed.\n * @this {!Long}\n * @returns {!Long} Signed long\n */\nLongPrototype.toSigned = function toSigned() {\n if (!this.unsigned) return this;\n return fromBits(this.low, this.high, false);\n};\n\n/**\n * Converts this Long to unsigned.\n * @this {!Long}\n * @returns {!Long} Unsigned long\n */\nLongPrototype.toUnsigned = function toUnsigned() {\n if (this.unsigned) return this;\n return fromBits(this.low, this.high, true);\n};\n\n/**\n * Converts this Long to its byte representation.\n * @param {boolean=} le Whether little or big endian, defaults to big endian\n * @this {!Long}\n * @returns {!Array.} Byte representation\n */\nLongPrototype.toBytes = function toBytes(le) {\n return le ? this.toBytesLE() : this.toBytesBE();\n};\n\n/**\n * Converts this Long to its little endian byte representation.\n * @this {!Long}\n * @returns {!Array.} Little endian byte representation\n */\nLongPrototype.toBytesLE = function toBytesLE() {\n var hi = this.high,\n lo = this.low;\n return [\n lo & 0xff,\n (lo >>> 8) & 0xff,\n (lo >>> 16) & 0xff,\n lo >>> 24,\n hi & 0xff,\n (hi >>> 8) & 0xff,\n (hi >>> 16) & 0xff,\n hi >>> 24,\n ];\n};\n\n/**\n * Converts this Long to its big endian byte representation.\n * @this {!Long}\n * @returns {!Array.} Big endian byte representation\n */\nLongPrototype.toBytesBE = function toBytesBE() {\n var hi = this.high,\n lo = this.low;\n return [\n hi >>> 24,\n (hi >>> 16) & 0xff,\n (hi >>> 8) & 0xff,\n hi & 0xff,\n lo >>> 24,\n (lo >>> 16) & 0xff,\n (lo >>> 8) & 0xff,\n lo & 0xff,\n ];\n};\n\n/**\n * Creates a Long from its byte representation.\n * @param {!Array.} bytes Byte representation\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\n * @param {boolean=} le Whether little or big endian, defaults to big endian\n * @returns {Long} The corresponding Long value\n */\nLong.fromBytes = function fromBytes(bytes, unsigned, le) {\n return le\n ? Long.fromBytesLE(bytes, unsigned)\n : Long.fromBytesBE(bytes, unsigned);\n};\n\n/**\n * Creates a Long from its little endian byte representation.\n * @param {!Array.} bytes Little endian byte representation\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\n * @returns {Long} The corresponding Long value\n */\nLong.fromBytesLE = function fromBytesLE(bytes, unsigned) {\n return new Long(\n bytes[0] | (bytes[1] << 8) | (bytes[2] << 16) | (bytes[3] << 24),\n bytes[4] | (bytes[5] << 8) | (bytes[6] << 16) | (bytes[7] << 24),\n unsigned,\n );\n};\n\n/**\n * Creates a Long from its big endian byte representation.\n * @param {!Array.} bytes Big endian byte representation\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\n * @returns {Long} The corresponding Long value\n */\nLong.fromBytesBE = function fromBytesBE(bytes, unsigned) {\n return new Long(\n (bytes[4] << 24) | (bytes[5] << 16) | (bytes[6] << 8) | bytes[7],\n (bytes[0] << 24) | (bytes[1] << 16) | (bytes[2] << 8) | bytes[3],\n unsigned,\n );\n};\n\n// Support conversion to/from BigInt where available\nif (typeof BigInt === \"function\") {\n /**\n * Returns a Long representing the given big integer.\n * @function\n * @param {number} value The big integer value\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\n * @returns {!Long} The corresponding Long value\n */\n Long.fromBigInt = function fromBigInt(value, unsigned) {\n var lowBits = Number(BigInt.asIntN(32, value));\n var highBits = Number(BigInt.asIntN(32, value >> BigInt(32)));\n return fromBits(lowBits, highBits, unsigned);\n };\n\n // Override\n Long.fromValue = function fromValueWithBigInt(value, unsigned) {\n if (typeof value === \"bigint\") return Long.fromBigInt(value, unsigned);\n return fromValue(value, unsigned);\n };\n\n /**\n * Converts the Long to its big integer representation.\n * @this {!Long}\n * @returns {bigint}\n */\n LongPrototype.toBigInt = function toBigInt() {\n var lowBigInt = BigInt(this.low >>> 0);\n var highBigInt = BigInt(this.unsigned ? this.high >>> 0 : this.high);\n return (highBigInt << BigInt(32)) | lowBigInt;\n };\n}\n\nexport default Long;\n","/*\r\n * bignumber.js v9.3.0\r\n * A JavaScript library for arbitrary-precision arithmetic.\r\n * https://github.com/MikeMcl/bignumber.js\r\n * Copyright (c) 2025 Michael Mclaughlin \r\n * MIT Licensed.\r\n *\r\n * BigNumber.prototype methods | BigNumber methods\r\n * |\r\n * absoluteValue abs | clone\r\n * comparedTo | config set\r\n * decimalPlaces dp | DECIMAL_PLACES\r\n * dividedBy div | ROUNDING_MODE\r\n * dividedToIntegerBy idiv | EXPONENTIAL_AT\r\n * exponentiatedBy pow | RANGE\r\n * integerValue | CRYPTO\r\n * isEqualTo eq | MODULO_MODE\r\n * isFinite | POW_PRECISION\r\n * isGreaterThan gt | FORMAT\r\n * isGreaterThanOrEqualTo gte | ALPHABET\r\n * isInteger | isBigNumber\r\n * isLessThan lt | maximum max\r\n * isLessThanOrEqualTo lte | minimum min\r\n * isNaN | random\r\n * isNegative | sum\r\n * isPositive |\r\n * isZero |\r\n * minus |\r\n * modulo mod |\r\n * multipliedBy times |\r\n * negated |\r\n * plus |\r\n * precision sd |\r\n * shiftedBy |\r\n * squareRoot sqrt |\r\n * toExponential |\r\n * toFixed |\r\n * toFormat |\r\n * toFraction |\r\n * toJSON |\r\n * toNumber |\r\n * toPrecision |\r\n * toString |\r\n * valueOf |\r\n *\r\n */\r\n\r\n\r\nvar\r\n isNumeric = /^-?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?$/i,\r\n mathceil = Math.ceil,\r\n mathfloor = Math.floor,\r\n\r\n bignumberError = '[BigNumber Error] ',\r\n tooManyDigits = bignumberError + 'Number primitive has more than 15 significant digits: ',\r\n\r\n BASE = 1e14,\r\n LOG_BASE = 14,\r\n MAX_SAFE_INTEGER = 0x1fffffffffffff, // 2^53 - 1\r\n // MAX_INT32 = 0x7fffffff, // 2^31 - 1\r\n POWS_TEN = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13],\r\n SQRT_BASE = 1e7,\r\n\r\n // EDITABLE\r\n // The limit on the value of DECIMAL_PLACES, TO_EXP_NEG, TO_EXP_POS, MIN_EXP, MAX_EXP, and\r\n // the arguments to toExponential, toFixed, toFormat, and toPrecision.\r\n MAX = 1E9; // 0 to MAX_INT32\r\n\r\n\r\n/*\r\n * Create and return a BigNumber constructor.\r\n */\r\nfunction clone(configObject) {\r\n var div, convertBase, parseNumeric,\r\n P = BigNumber.prototype = { constructor: BigNumber, toString: null, valueOf: null },\r\n ONE = new BigNumber(1),\r\n\r\n\r\n //----------------------------- EDITABLE CONFIG DEFAULTS -------------------------------\r\n\r\n\r\n // The default values below must be integers within the inclusive ranges stated.\r\n // The values can also be changed at run-time using BigNumber.set.\r\n\r\n // The maximum number of decimal places for operations involving division.\r\n DECIMAL_PLACES = 20, // 0 to MAX\r\n\r\n // The rounding mode used when rounding to the above decimal places, and when using\r\n // toExponential, toFixed, toFormat and toPrecision, and round (default value).\r\n // UP 0 Away from zero.\r\n // DOWN 1 Towards zero.\r\n // CEIL 2 Towards +Infinity.\r\n // FLOOR 3 Towards -Infinity.\r\n // HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n ROUNDING_MODE = 4, // 0 to 8\r\n\r\n // EXPONENTIAL_AT : [TO_EXP_NEG , TO_EXP_POS]\r\n\r\n // The exponent value at and beneath which toString returns exponential notation.\r\n // Number type: -7\r\n TO_EXP_NEG = -7, // 0 to -MAX\r\n\r\n // The exponent value at and above which toString returns exponential notation.\r\n // Number type: 21\r\n TO_EXP_POS = 21, // 0 to MAX\r\n\r\n // RANGE : [MIN_EXP, MAX_EXP]\r\n\r\n // The minimum exponent value, beneath which underflow to zero occurs.\r\n // Number type: -324 (5e-324)\r\n MIN_EXP = -1e7, // -1 to -MAX\r\n\r\n // The maximum exponent value, above which overflow to Infinity occurs.\r\n // Number type: 308 (1.7976931348623157e+308)\r\n // For MAX_EXP > 1e7, e.g. new BigNumber('1e100000000').plus(1) may be slow.\r\n MAX_EXP = 1e7, // 1 to MAX\r\n\r\n // Whether to use cryptographically-secure random number generation, if available.\r\n CRYPTO = false, // true or false\r\n\r\n // The modulo mode used when calculating the modulus: a mod n.\r\n // The quotient (q = a / n) is calculated according to the corresponding rounding mode.\r\n // The remainder (r) is calculated as: r = a - n * q.\r\n //\r\n // UP 0 The remainder is positive if the dividend is negative, else is negative.\r\n // DOWN 1 The remainder has the same sign as the dividend.\r\n // This modulo mode is commonly known as 'truncated division' and is\r\n // equivalent to (a % n) in JavaScript.\r\n // FLOOR 3 The remainder has the same sign as the divisor (Python %).\r\n // HALF_EVEN 6 This modulo mode implements the IEEE 754 remainder function.\r\n // EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)).\r\n // The remainder is always positive.\r\n //\r\n // The truncated division, floored division, Euclidian division and IEEE 754 remainder\r\n // modes are commonly used for the modulus operation.\r\n // Although the other rounding modes can also be used, they may not give useful results.\r\n MODULO_MODE = 1, // 0 to 9\r\n\r\n // The maximum number of significant digits of the result of the exponentiatedBy operation.\r\n // If POW_PRECISION is 0, there will be unlimited significant digits.\r\n POW_PRECISION = 0, // 0 to MAX\r\n\r\n // The format specification used by the BigNumber.prototype.toFormat method.\r\n FORMAT = {\r\n prefix: '',\r\n groupSize: 3,\r\n secondaryGroupSize: 0,\r\n groupSeparator: ',',\r\n decimalSeparator: '.',\r\n fractionGroupSize: 0,\r\n fractionGroupSeparator: '\\xA0', // non-breaking space\r\n suffix: ''\r\n },\r\n\r\n // The alphabet used for base conversion. It must be at least 2 characters long, with no '+',\r\n // '-', '.', whitespace, or repeated character.\r\n // '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_'\r\n ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyz',\r\n alphabetHasNormalDecimalDigits = true;\r\n\r\n\r\n //------------------------------------------------------------------------------------------\r\n\r\n\r\n // CONSTRUCTOR\r\n\r\n\r\n /*\r\n * The BigNumber constructor and exported function.\r\n * Create and return a new instance of a BigNumber object.\r\n *\r\n * v {number|string|BigNumber} A numeric value.\r\n * [b] {number} The base of v. Integer, 2 to ALPHABET.length inclusive.\r\n */\r\n function BigNumber(v, b) {\r\n var alphabet, c, caseChanged, e, i, isNum, len, str,\r\n x = this;\r\n\r\n // Enable constructor call without `new`.\r\n if (!(x instanceof BigNumber)) return new BigNumber(v, b);\r\n\r\n if (b == null) {\r\n\r\n if (v && v._isBigNumber === true) {\r\n x.s = v.s;\r\n\r\n if (!v.c || v.e > MAX_EXP) {\r\n x.c = x.e = null;\r\n } else if (v.e < MIN_EXP) {\r\n x.c = [x.e = 0];\r\n } else {\r\n x.e = v.e;\r\n x.c = v.c.slice();\r\n }\r\n\r\n return;\r\n }\r\n\r\n if ((isNum = typeof v == 'number') && v * 0 == 0) {\r\n\r\n // Use `1 / n` to handle minus zero also.\r\n x.s = 1 / v < 0 ? (v = -v, -1) : 1;\r\n\r\n // Fast path for integers, where n < 2147483648 (2**31).\r\n if (v === ~~v) {\r\n for (e = 0, i = v; i >= 10; i /= 10, e++);\r\n\r\n if (e > MAX_EXP) {\r\n x.c = x.e = null;\r\n } else {\r\n x.e = e;\r\n x.c = [v];\r\n }\r\n\r\n return;\r\n }\r\n\r\n str = String(v);\r\n } else {\r\n\r\n if (!isNumeric.test(str = String(v))) return parseNumeric(x, str, isNum);\r\n\r\n x.s = str.charCodeAt(0) == 45 ? (str = str.slice(1), -1) : 1;\r\n }\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = str.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +str.slice(i + 1);\r\n str = str.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = str.length;\r\n }\r\n\r\n } else {\r\n\r\n // '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n intCheck(b, 2, ALPHABET.length, 'Base');\r\n\r\n // Allow exponential notation to be used with base 10 argument, while\r\n // also rounding to DECIMAL_PLACES as with other bases.\r\n if (b == 10 && alphabetHasNormalDecimalDigits) {\r\n x = new BigNumber(v);\r\n return round(x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE);\r\n }\r\n\r\n str = String(v);\r\n\r\n if (isNum = typeof v == 'number') {\r\n\r\n // Avoid potential interpretation of Infinity and NaN as base 44+ values.\r\n if (v * 0 != 0) return parseNumeric(x, str, isNum, b);\r\n\r\n x.s = 1 / v < 0 ? (str = str.slice(1), -1) : 1;\r\n\r\n // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n if (BigNumber.DEBUG && str.replace(/^0\\.0*|\\./, '').length > 15) {\r\n throw Error\r\n (tooManyDigits + v);\r\n }\r\n } else {\r\n x.s = str.charCodeAt(0) === 45 ? (str = str.slice(1), -1) : 1;\r\n }\r\n\r\n alphabet = ALPHABET.slice(0, b);\r\n e = i = 0;\r\n\r\n // Check that str is a valid base b number.\r\n // Don't use RegExp, so alphabet can contain special characters.\r\n for (len = str.length; i < len; i++) {\r\n if (alphabet.indexOf(c = str.charAt(i)) < 0) {\r\n if (c == '.') {\r\n\r\n // If '.' is not the first character and it has not be found before.\r\n if (i > e) {\r\n e = len;\r\n continue;\r\n }\r\n } else if (!caseChanged) {\r\n\r\n // Allow e.g. hexadecimal 'FF' as well as 'ff'.\r\n if (str == str.toUpperCase() && (str = str.toLowerCase()) ||\r\n str == str.toLowerCase() && (str = str.toUpperCase())) {\r\n caseChanged = true;\r\n i = -1;\r\n e = 0;\r\n continue;\r\n }\r\n }\r\n\r\n return parseNumeric(x, String(v), isNum, b);\r\n }\r\n }\r\n\r\n // Prevent later check for length on converted number.\r\n isNum = false;\r\n str = convertBase(str, b, 10, x.s);\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n else e = str.length;\r\n }\r\n\r\n // Determine leading zeros.\r\n for (i = 0; str.charCodeAt(i) === 48; i++);\r\n\r\n // Determine trailing zeros.\r\n for (len = str.length; str.charCodeAt(--len) === 48;);\r\n\r\n if (str = str.slice(i, ++len)) {\r\n len -= i;\r\n\r\n // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n if (isNum && BigNumber.DEBUG &&\r\n len > 15 && (v > MAX_SAFE_INTEGER || v !== mathfloor(v))) {\r\n throw Error\r\n (tooManyDigits + (x.s * v));\r\n }\r\n\r\n // Overflow?\r\n if ((e = e - i - 1) > MAX_EXP) {\r\n\r\n // Infinity.\r\n x.c = x.e = null;\r\n\r\n // Underflow?\r\n } else if (e < MIN_EXP) {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n } else {\r\n x.e = e;\r\n x.c = [];\r\n\r\n // Transform base\r\n\r\n // e is the base 10 exponent.\r\n // i is where to slice str to get the first element of the coefficient array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE; // i < 1\r\n\r\n if (i < len) {\r\n if (i) x.c.push(+str.slice(0, i));\r\n\r\n for (len -= LOG_BASE; i < len;) {\r\n x.c.push(+str.slice(i, i += LOG_BASE));\r\n }\r\n\r\n i = LOG_BASE - (str = str.slice(i)).length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--; str += '0');\r\n x.c.push(+str);\r\n }\r\n } else {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n }\r\n }\r\n\r\n\r\n // CONSTRUCTOR PROPERTIES\r\n\r\n\r\n BigNumber.clone = clone;\r\n\r\n BigNumber.ROUND_UP = 0;\r\n BigNumber.ROUND_DOWN = 1;\r\n BigNumber.ROUND_CEIL = 2;\r\n BigNumber.ROUND_FLOOR = 3;\r\n BigNumber.ROUND_HALF_UP = 4;\r\n BigNumber.ROUND_HALF_DOWN = 5;\r\n BigNumber.ROUND_HALF_EVEN = 6;\r\n BigNumber.ROUND_HALF_CEIL = 7;\r\n BigNumber.ROUND_HALF_FLOOR = 8;\r\n BigNumber.EUCLID = 9;\r\n\r\n\r\n /*\r\n * Configure infrequently-changing library-wide settings.\r\n *\r\n * Accept an object with the following optional properties (if the value of a property is\r\n * a number, it must be an integer within the inclusive range stated):\r\n *\r\n * DECIMAL_PLACES {number} 0 to MAX\r\n * ROUNDING_MODE {number} 0 to 8\r\n * EXPONENTIAL_AT {number|number[]} -MAX to MAX or [-MAX to 0, 0 to MAX]\r\n * RANGE {number|number[]} -MAX to MAX (not zero) or [-MAX to -1, 1 to MAX]\r\n * CRYPTO {boolean} true or false\r\n * MODULO_MODE {number} 0 to 9\r\n * POW_PRECISION {number} 0 to MAX\r\n * ALPHABET {string} A string of two or more unique characters which does\r\n * not contain '.'.\r\n * FORMAT {object} An object with some of the following properties:\r\n * prefix {string}\r\n * groupSize {number}\r\n * secondaryGroupSize {number}\r\n * groupSeparator {string}\r\n * decimalSeparator {string}\r\n * fractionGroupSize {number}\r\n * fractionGroupSeparator {string}\r\n * suffix {string}\r\n *\r\n * (The values assigned to the above FORMAT object properties are not checked for validity.)\r\n *\r\n * E.g.\r\n * BigNumber.config({ DECIMAL_PLACES : 20, ROUNDING_MODE : 4 })\r\n *\r\n * Ignore properties/parameters set to null or undefined, except for ALPHABET.\r\n *\r\n * Return an object with the properties current values.\r\n */\r\n BigNumber.config = BigNumber.set = function (obj) {\r\n var p, v;\r\n\r\n if (obj != null) {\r\n\r\n if (typeof obj == 'object') {\r\n\r\n // DECIMAL_PLACES {number} Integer, 0 to MAX inclusive.\r\n // '[BigNumber Error] DECIMAL_PLACES {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'DECIMAL_PLACES')) {\r\n v = obj[p];\r\n intCheck(v, 0, MAX, p);\r\n DECIMAL_PLACES = v;\r\n }\r\n\r\n // ROUNDING_MODE {number} Integer, 0 to 8 inclusive.\r\n // '[BigNumber Error] ROUNDING_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'ROUNDING_MODE')) {\r\n v = obj[p];\r\n intCheck(v, 0, 8, p);\r\n ROUNDING_MODE = v;\r\n }\r\n\r\n // EXPONENTIAL_AT {number|number[]}\r\n // Integer, -MAX to MAX inclusive or\r\n // [integer -MAX to 0 inclusive, 0 to MAX inclusive].\r\n // '[BigNumber Error] EXPONENTIAL_AT {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'EXPONENTIAL_AT')) {\r\n v = obj[p];\r\n if (v && v.pop) {\r\n intCheck(v[0], -MAX, 0, p);\r\n intCheck(v[1], 0, MAX, p);\r\n TO_EXP_NEG = v[0];\r\n TO_EXP_POS = v[1];\r\n } else {\r\n intCheck(v, -MAX, MAX, p);\r\n TO_EXP_NEG = -(TO_EXP_POS = v < 0 ? -v : v);\r\n }\r\n }\r\n\r\n // RANGE {number|number[]} Non-zero integer, -MAX to MAX inclusive or\r\n // [integer -MAX to -1 inclusive, integer 1 to MAX inclusive].\r\n // '[BigNumber Error] RANGE {not a primitive number|not an integer|out of range|cannot be zero}: {v}'\r\n if (obj.hasOwnProperty(p = 'RANGE')) {\r\n v = obj[p];\r\n if (v && v.pop) {\r\n intCheck(v[0], -MAX, -1, p);\r\n intCheck(v[1], 1, MAX, p);\r\n MIN_EXP = v[0];\r\n MAX_EXP = v[1];\r\n } else {\r\n intCheck(v, -MAX, MAX, p);\r\n if (v) {\r\n MIN_EXP = -(MAX_EXP = v < 0 ? -v : v);\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' cannot be zero: ' + v);\r\n }\r\n }\r\n }\r\n\r\n // CRYPTO {boolean} true or false.\r\n // '[BigNumber Error] CRYPTO not true or false: {v}'\r\n // '[BigNumber Error] crypto unavailable'\r\n if (obj.hasOwnProperty(p = 'CRYPTO')) {\r\n v = obj[p];\r\n if (v === !!v) {\r\n if (v) {\r\n if (typeof crypto != 'undefined' && crypto &&\r\n (crypto.getRandomValues || crypto.randomBytes)) {\r\n CRYPTO = v;\r\n } else {\r\n CRYPTO = !v;\r\n throw Error\r\n (bignumberError + 'crypto unavailable');\r\n }\r\n } else {\r\n CRYPTO = v;\r\n }\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' not true or false: ' + v);\r\n }\r\n }\r\n\r\n // MODULO_MODE {number} Integer, 0 to 9 inclusive.\r\n // '[BigNumber Error] MODULO_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'MODULO_MODE')) {\r\n v = obj[p];\r\n intCheck(v, 0, 9, p);\r\n MODULO_MODE = v;\r\n }\r\n\r\n // POW_PRECISION {number} Integer, 0 to MAX inclusive.\r\n // '[BigNumber Error] POW_PRECISION {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'POW_PRECISION')) {\r\n v = obj[p];\r\n intCheck(v, 0, MAX, p);\r\n POW_PRECISION = v;\r\n }\r\n\r\n // FORMAT {object}\r\n // '[BigNumber Error] FORMAT not an object: {v}'\r\n if (obj.hasOwnProperty(p = 'FORMAT')) {\r\n v = obj[p];\r\n if (typeof v == 'object') FORMAT = v;\r\n else throw Error\r\n (bignumberError + p + ' not an object: ' + v);\r\n }\r\n\r\n // ALPHABET {string}\r\n // '[BigNumber Error] ALPHABET invalid: {v}'\r\n if (obj.hasOwnProperty(p = 'ALPHABET')) {\r\n v = obj[p];\r\n\r\n // Disallow if less than two characters,\r\n // or if it contains '+', '-', '.', whitespace, or a repeated character.\r\n if (typeof v == 'string' && !/^.?$|[+\\-.\\s]|(.).*\\1/.test(v)) {\r\n alphabetHasNormalDecimalDigits = v.slice(0, 10) == '0123456789';\r\n ALPHABET = v;\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' invalid: ' + v);\r\n }\r\n }\r\n\r\n } else {\r\n\r\n // '[BigNumber Error] Object expected: {v}'\r\n throw Error\r\n (bignumberError + 'Object expected: ' + obj);\r\n }\r\n }\r\n\r\n return {\r\n DECIMAL_PLACES: DECIMAL_PLACES,\r\n ROUNDING_MODE: ROUNDING_MODE,\r\n EXPONENTIAL_AT: [TO_EXP_NEG, TO_EXP_POS],\r\n RANGE: [MIN_EXP, MAX_EXP],\r\n CRYPTO: CRYPTO,\r\n MODULO_MODE: MODULO_MODE,\r\n POW_PRECISION: POW_PRECISION,\r\n FORMAT: FORMAT,\r\n ALPHABET: ALPHABET\r\n };\r\n };\r\n\r\n\r\n /*\r\n * Return true if v is a BigNumber instance, otherwise return false.\r\n *\r\n * If BigNumber.DEBUG is true, throw if a BigNumber instance is not well-formed.\r\n *\r\n * v {any}\r\n *\r\n * '[BigNumber Error] Invalid BigNumber: {v}'\r\n */\r\n BigNumber.isBigNumber = function (v) {\r\n if (!v || v._isBigNumber !== true) return false;\r\n if (!BigNumber.DEBUG) return true;\r\n\r\n var i, n,\r\n c = v.c,\r\n e = v.e,\r\n s = v.s;\r\n\r\n out: if ({}.toString.call(c) == '[object Array]') {\r\n\r\n if ((s === 1 || s === -1) && e >= -MAX && e <= MAX && e === mathfloor(e)) {\r\n\r\n // If the first element is zero, the BigNumber value must be zero.\r\n if (c[0] === 0) {\r\n if (e === 0 && c.length === 1) return true;\r\n break out;\r\n }\r\n\r\n // Calculate number of digits that c[0] should have, based on the exponent.\r\n i = (e + 1) % LOG_BASE;\r\n if (i < 1) i += LOG_BASE;\r\n\r\n // Calculate number of digits of c[0].\r\n //if (Math.ceil(Math.log(c[0] + 1) / Math.LN10) == i) {\r\n if (String(c[0]).length == i) {\r\n\r\n for (i = 0; i < c.length; i++) {\r\n n = c[i];\r\n if (n < 0 || n >= BASE || n !== mathfloor(n)) break out;\r\n }\r\n\r\n // Last element cannot be zero, unless it is the only element.\r\n if (n !== 0) return true;\r\n }\r\n }\r\n\r\n // Infinity/NaN\r\n } else if (c === null && e === null && (s === null || s === 1 || s === -1)) {\r\n return true;\r\n }\r\n\r\n throw Error\r\n (bignumberError + 'Invalid BigNumber: ' + v);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the maximum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.maximum = BigNumber.max = function () {\r\n return maxOrMin(arguments, -1);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the minimum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.minimum = BigNumber.min = function () {\r\n return maxOrMin(arguments, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber with a random value equal to or greater than 0 and less than 1,\r\n * and with dp, or DECIMAL_PLACES if dp is omitted, decimal places (or less if trailing\r\n * zeros are produced).\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp}'\r\n * '[BigNumber Error] crypto unavailable'\r\n */\r\n BigNumber.random = (function () {\r\n var pow2_53 = 0x20000000000000;\r\n\r\n // Return a 53 bit integer n, where 0 <= n < 9007199254740992.\r\n // Check if Math.random() produces more than 32 bits of randomness.\r\n // If it does, assume at least 53 bits are produced, otherwise assume at least 30 bits.\r\n // 0x40000000 is 2^30, 0x800000 is 2^23, 0x1fffff is 2^21 - 1.\r\n var random53bitInt = (Math.random() * pow2_53) & 0x1fffff\r\n ? function () { return mathfloor(Math.random() * pow2_53); }\r\n : function () { return ((Math.random() * 0x40000000 | 0) * 0x800000) +\r\n (Math.random() * 0x800000 | 0); };\r\n\r\n return function (dp) {\r\n var a, b, e, k, v,\r\n i = 0,\r\n c = [],\r\n rand = new BigNumber(ONE);\r\n\r\n if (dp == null) dp = DECIMAL_PLACES;\r\n else intCheck(dp, 0, MAX);\r\n\r\n k = mathceil(dp / LOG_BASE);\r\n\r\n if (CRYPTO) {\r\n\r\n // Browsers supporting crypto.getRandomValues.\r\n if (crypto.getRandomValues) {\r\n\r\n a = crypto.getRandomValues(new Uint32Array(k *= 2));\r\n\r\n for (; i < k;) {\r\n\r\n // 53 bits:\r\n // ((Math.pow(2, 32) - 1) * Math.pow(2, 21)).toString(2)\r\n // 11111 11111111 11111111 11111111 11100000 00000000 00000000\r\n // ((Math.pow(2, 32) - 1) >>> 11).toString(2)\r\n // 11111 11111111 11111111\r\n // 0x20000 is 2^21.\r\n v = a[i] * 0x20000 + (a[i + 1] >>> 11);\r\n\r\n // Rejection sampling:\r\n // 0 <= v < 9007199254740992\r\n // Probability that v >= 9e15, is\r\n // 7199254740992 / 9007199254740992 ~= 0.0008, i.e. 1 in 1251\r\n if (v >= 9e15) {\r\n b = crypto.getRandomValues(new Uint32Array(2));\r\n a[i] = b[0];\r\n a[i + 1] = b[1];\r\n } else {\r\n\r\n // 0 <= v <= 8999999999999999\r\n // 0 <= (v % 1e14) <= 99999999999999\r\n c.push(v % 1e14);\r\n i += 2;\r\n }\r\n }\r\n i = k / 2;\r\n\r\n // Node.js supporting crypto.randomBytes.\r\n } else if (crypto.randomBytes) {\r\n\r\n // buffer\r\n a = crypto.randomBytes(k *= 7);\r\n\r\n for (; i < k;) {\r\n\r\n // 0x1000000000000 is 2^48, 0x10000000000 is 2^40\r\n // 0x100000000 is 2^32, 0x1000000 is 2^24\r\n // 11111 11111111 11111111 11111111 11111111 11111111 11111111\r\n // 0 <= v < 9007199254740992\r\n v = ((a[i] & 31) * 0x1000000000000) + (a[i + 1] * 0x10000000000) +\r\n (a[i + 2] * 0x100000000) + (a[i + 3] * 0x1000000) +\r\n (a[i + 4] << 16) + (a[i + 5] << 8) + a[i + 6];\r\n\r\n if (v >= 9e15) {\r\n crypto.randomBytes(7).copy(a, i);\r\n } else {\r\n\r\n // 0 <= (v % 1e14) <= 99999999999999\r\n c.push(v % 1e14);\r\n i += 7;\r\n }\r\n }\r\n i = k / 7;\r\n } else {\r\n CRYPTO = false;\r\n throw Error\r\n (bignumberError + 'crypto unavailable');\r\n }\r\n }\r\n\r\n // Use Math.random.\r\n if (!CRYPTO) {\r\n\r\n for (; i < k;) {\r\n v = random53bitInt();\r\n if (v < 9e15) c[i++] = v % 1e14;\r\n }\r\n }\r\n\r\n k = c[--i];\r\n dp %= LOG_BASE;\r\n\r\n // Convert trailing digits to zeros according to dp.\r\n if (k && dp) {\r\n v = POWS_TEN[LOG_BASE - dp];\r\n c[i] = mathfloor(k / v) * v;\r\n }\r\n\r\n // Remove trailing elements which are zero.\r\n for (; c[i] === 0; c.pop(), i--);\r\n\r\n // Zero?\r\n if (i < 0) {\r\n c = [e = 0];\r\n } else {\r\n\r\n // Remove leading elements which are zero and adjust exponent accordingly.\r\n for (e = -1 ; c[0] === 0; c.splice(0, 1), e -= LOG_BASE);\r\n\r\n // Count the digits of the first element of c to determine leading zeros, and...\r\n for (i = 1, v = c[0]; v >= 10; v /= 10, i++);\r\n\r\n // adjust the exponent accordingly.\r\n if (i < LOG_BASE) e -= LOG_BASE - i;\r\n }\r\n\r\n rand.e = e;\r\n rand.c = c;\r\n return rand;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a BigNumber whose value is the sum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.sum = function () {\r\n var i = 1,\r\n args = arguments,\r\n sum = new BigNumber(args[0]);\r\n for (; i < args.length;) sum = sum.plus(args[i++]);\r\n return sum;\r\n };\r\n\r\n\r\n // PRIVATE FUNCTIONS\r\n\r\n\r\n // Called by BigNumber and BigNumber.prototype.toString.\r\n convertBase = (function () {\r\n var decimal = '0123456789';\r\n\r\n /*\r\n * Convert string of baseIn to an array of numbers of baseOut.\r\n * Eg. toBaseOut('255', 10, 16) returns [15, 15].\r\n * Eg. toBaseOut('ff', 16, 10) returns [2, 5, 5].\r\n */\r\n function toBaseOut(str, baseIn, baseOut, alphabet) {\r\n var j,\r\n arr = [0],\r\n arrL,\r\n i = 0,\r\n len = str.length;\r\n\r\n for (; i < len;) {\r\n for (arrL = arr.length; arrL--; arr[arrL] *= baseIn);\r\n\r\n arr[0] += alphabet.indexOf(str.charAt(i++));\r\n\r\n for (j = 0; j < arr.length; j++) {\r\n\r\n if (arr[j] > baseOut - 1) {\r\n if (arr[j + 1] == null) arr[j + 1] = 0;\r\n arr[j + 1] += arr[j] / baseOut | 0;\r\n arr[j] %= baseOut;\r\n }\r\n }\r\n }\r\n\r\n return arr.reverse();\r\n }\r\n\r\n // Convert a numeric string of baseIn to a numeric string of baseOut.\r\n // If the caller is toString, we are converting from base 10 to baseOut.\r\n // If the caller is BigNumber, we are converting from baseIn to base 10.\r\n return function (str, baseIn, baseOut, sign, callerIsToString) {\r\n var alphabet, d, e, k, r, x, xc, y,\r\n i = str.indexOf('.'),\r\n dp = DECIMAL_PLACES,\r\n rm = ROUNDING_MODE;\r\n\r\n // Non-integer.\r\n if (i >= 0) {\r\n k = POW_PRECISION;\r\n\r\n // Unlimited precision.\r\n POW_PRECISION = 0;\r\n str = str.replace('.', '');\r\n y = new BigNumber(baseIn);\r\n x = y.pow(str.length - i);\r\n POW_PRECISION = k;\r\n\r\n // Convert str as if an integer, then restore the fraction part by dividing the\r\n // result by its base raised to a power.\r\n\r\n y.c = toBaseOut(toFixedPoint(coeffToString(x.c), x.e, '0'),\r\n 10, baseOut, decimal);\r\n y.e = y.c.length;\r\n }\r\n\r\n // Convert the number as integer.\r\n\r\n xc = toBaseOut(str, baseIn, baseOut, callerIsToString\r\n ? (alphabet = ALPHABET, decimal)\r\n : (alphabet = decimal, ALPHABET));\r\n\r\n // xc now represents str as an integer and converted to baseOut. e is the exponent.\r\n e = k = xc.length;\r\n\r\n // Remove trailing zeros.\r\n for (; xc[--k] == 0; xc.pop());\r\n\r\n // Zero?\r\n if (!xc[0]) return alphabet.charAt(0);\r\n\r\n // Does str represent an integer? If so, no need for the division.\r\n if (i < 0) {\r\n --e;\r\n } else {\r\n x.c = xc;\r\n x.e = e;\r\n\r\n // The sign is needed for correct rounding.\r\n x.s = sign;\r\n x = div(x, y, dp, rm, baseOut);\r\n xc = x.c;\r\n r = x.r;\r\n e = x.e;\r\n }\r\n\r\n // xc now represents str converted to baseOut.\r\n\r\n // The index of the rounding digit.\r\n d = e + dp + 1;\r\n\r\n // The rounding digit: the digit to the right of the digit that may be rounded up.\r\n i = xc[d];\r\n\r\n // Look at the rounding digits and mode to determine whether to round up.\r\n\r\n k = baseOut / 2;\r\n r = r || d < 0 || xc[d + 1] != null;\r\n\r\n r = rm < 4 ? (i != null || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : i > k || i == k &&(rm == 4 || r || rm == 6 && xc[d - 1] & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n // If the index of the rounding digit is not greater than zero, or xc represents\r\n // zero, then the result of the base conversion is zero or, if rounding up, a value\r\n // such as 0.00001.\r\n if (d < 1 || !xc[0]) {\r\n\r\n // 1^-dp or 0\r\n str = r ? toFixedPoint(alphabet.charAt(1), -dp, alphabet.charAt(0)) : alphabet.charAt(0);\r\n } else {\r\n\r\n // Truncate xc to the required number of decimal places.\r\n xc.length = d;\r\n\r\n // Round up?\r\n if (r) {\r\n\r\n // Rounding up may mean the previous digit has to be rounded up and so on.\r\n for (--baseOut; ++xc[--d] > baseOut;) {\r\n xc[d] = 0;\r\n\r\n if (!d) {\r\n ++e;\r\n xc = [1].concat(xc);\r\n }\r\n }\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (k = xc.length; !xc[--k];);\r\n\r\n // E.g. [4, 11, 15] becomes 4bf.\r\n for (i = 0, str = ''; i <= k; str += alphabet.charAt(xc[i++]));\r\n\r\n // Add leading zeros, decimal point and trailing zeros as required.\r\n str = toFixedPoint(str, e, alphabet.charAt(0));\r\n }\r\n\r\n // The caller will add the sign.\r\n return str;\r\n };\r\n })();\r\n\r\n\r\n // Perform division in the specified base. Called by div and convertBase.\r\n div = (function () {\r\n\r\n // Assume non-zero x and k.\r\n function multiply(x, k, base) {\r\n var m, temp, xlo, xhi,\r\n carry = 0,\r\n i = x.length,\r\n klo = k % SQRT_BASE,\r\n khi = k / SQRT_BASE | 0;\r\n\r\n for (x = x.slice(); i--;) {\r\n xlo = x[i] % SQRT_BASE;\r\n xhi = x[i] / SQRT_BASE | 0;\r\n m = khi * xlo + xhi * klo;\r\n temp = klo * xlo + ((m % SQRT_BASE) * SQRT_BASE) + carry;\r\n carry = (temp / base | 0) + (m / SQRT_BASE | 0) + khi * xhi;\r\n x[i] = temp % base;\r\n }\r\n\r\n if (carry) x = [carry].concat(x);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, cmp;\r\n\r\n if (aL != bL) {\r\n cmp = aL > bL ? 1 : -1;\r\n } else {\r\n\r\n for (i = cmp = 0; i < aL; i++) {\r\n\r\n if (a[i] != b[i]) {\r\n cmp = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return cmp;\r\n }\r\n\r\n function subtract(a, b, aL, base) {\r\n var i = 0;\r\n\r\n // Subtract b from a.\r\n for (; aL--;) {\r\n a[aL] -= i;\r\n i = a[aL] < b[aL] ? 1 : 0;\r\n a[aL] = i * base + a[aL] - b[aL];\r\n }\r\n\r\n // Remove leading zeros.\r\n for (; !a[0] && a.length > 1; a.splice(0, 1));\r\n }\r\n\r\n // x: dividend, y: divisor.\r\n return function (x, y, dp, rm, base) {\r\n var cmp, e, i, more, n, prod, prodL, q, qc, rem, remL, rem0, xi, xL, yc0,\r\n yL, yz,\r\n s = x.s == y.s ? 1 : -1,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n // Either NaN, Infinity or 0?\r\n if (!xc || !xc[0] || !yc || !yc[0]) {\r\n\r\n return new BigNumber(\r\n\r\n // Return NaN if either NaN, or both Infinity or 0.\r\n !x.s || !y.s || (xc ? yc && xc[0] == yc[0] : !yc) ? NaN :\r\n\r\n // Return ±0 if x is ±0 or y is ±Infinity, or return ±Infinity as y is ±0.\r\n xc && xc[0] == 0 || !yc ? s * 0 : s / 0\r\n );\r\n }\r\n\r\n q = new BigNumber(s);\r\n qc = q.c = [];\r\n e = x.e - y.e;\r\n s = dp + e + 1;\r\n\r\n if (!base) {\r\n base = BASE;\r\n e = bitFloor(x.e / LOG_BASE) - bitFloor(y.e / LOG_BASE);\r\n s = s / LOG_BASE | 0;\r\n }\r\n\r\n // Result exponent may be one less then the current value of e.\r\n // The coefficients of the BigNumbers from convertBase may have trailing zeros.\r\n for (i = 0; yc[i] == (xc[i] || 0); i++);\r\n\r\n if (yc[i] > (xc[i] || 0)) e--;\r\n\r\n if (s < 0) {\r\n qc.push(1);\r\n more = true;\r\n } else {\r\n xL = xc.length;\r\n yL = yc.length;\r\n i = 0;\r\n s += 2;\r\n\r\n // Normalise xc and yc so highest order digit of yc is >= base / 2.\r\n\r\n n = mathfloor(base / (yc[0] + 1));\r\n\r\n // Not necessary, but to handle odd bases where yc[0] == (base / 2) - 1.\r\n // if (n > 1 || n++ == 1 && yc[0] < base / 2) {\r\n if (n > 1) {\r\n yc = multiply(yc, n, base);\r\n xc = multiply(xc, n, base);\r\n yL = yc.length;\r\n xL = xc.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xc.slice(0, yL);\r\n remL = rem.length;\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; remL < yL; rem[remL++] = 0);\r\n yz = yc.slice();\r\n yz = [0].concat(yz);\r\n yc0 = yc[0];\r\n if (yc[1] >= base / 2) yc0++;\r\n // Not necessary, but to prevent trial digit n > base, when using base 3.\r\n // else if (base == 3 && yc0 == 1) yc0 = 1 + 1e-15;\r\n\r\n do {\r\n n = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yc, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, n.\r\n\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * base + (rem[1] || 0);\r\n\r\n // n is how many times the divisor goes into the current remainder.\r\n n = mathfloor(rem0 / yc0);\r\n\r\n // Algorithm:\r\n // product = divisor multiplied by trial digit (n).\r\n // Compare product and remainder.\r\n // If product is greater than remainder:\r\n // Subtract divisor from product, decrement trial digit.\r\n // Subtract product from remainder.\r\n // If product was less than remainder at the last compare:\r\n // Compare new remainder and divisor.\r\n // If remainder is greater than divisor:\r\n // Subtract divisor from remainder, increment trial digit.\r\n\r\n if (n > 1) {\r\n\r\n // n may be > base only when base is 3.\r\n if (n >= base) n = base - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiply(yc, n, base);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n // If product > remainder then trial digit n too high.\r\n // n is 1 too high about 5% of the time, and is not known to have\r\n // ever been more than 1 too high.\r\n while (compare(prod, rem, prodL, remL) == 1) {\r\n n--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yc, prodL, base);\r\n prodL = prod.length;\r\n cmp = 1;\r\n }\r\n } else {\r\n\r\n // n is 0 or 1, cmp is -1.\r\n // If n is 0, there is no need to compare yc and rem again below,\r\n // so change cmp to 1 to avoid it.\r\n // If n is 1, leave cmp as -1, so yc and rem are compared again.\r\n if (n == 0) {\r\n\r\n // divisor < remainder, so n must be at least 1.\r\n cmp = n = 1;\r\n }\r\n\r\n // product = divisor\r\n prod = yc.slice();\r\n prodL = prod.length;\r\n }\r\n\r\n if (prodL < remL) prod = [0].concat(prod);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL, base);\r\n remL = rem.length;\r\n\r\n // If product was < remainder.\r\n if (cmp == -1) {\r\n\r\n // Compare divisor and new remainder.\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n // Trial digit n too low.\r\n // n is 1 too low about 5% of the time, and very rarely 2 too low.\r\n while (compare(yc, rem, yL, remL) < 1) {\r\n n++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yc, remL, base);\r\n remL = rem.length;\r\n }\r\n }\r\n } else if (cmp === 0) {\r\n n++;\r\n rem = [0];\r\n } // else cmp === 1 and n will be 0\r\n\r\n // Add the next digit, n, to the result array.\r\n qc[i++] = n;\r\n\r\n // Update the remainder.\r\n if (rem[0]) {\r\n rem[remL++] = xc[xi] || 0;\r\n } else {\r\n rem = [xc[xi]];\r\n remL = 1;\r\n }\r\n } while ((xi++ < xL || rem[0] != null) && s--);\r\n\r\n more = rem[0] != null;\r\n\r\n // Leading zero?\r\n if (!qc[0]) qc.splice(0, 1);\r\n }\r\n\r\n if (base == BASE) {\r\n\r\n // To calculate q.e, first get the number of digits of qc[0].\r\n for (i = 1, s = qc[0]; s >= 10; s /= 10, i++);\r\n\r\n round(q, dp + (q.e = i + e * LOG_BASE - 1) + 1, rm, more);\r\n\r\n // Caller is convertBase.\r\n } else {\r\n q.e = e;\r\n q.r = +more;\r\n }\r\n\r\n return q;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a string representing the value of BigNumber n in fixed-point or exponential\r\n * notation rounded to the specified decimal places or significant digits.\r\n *\r\n * n: a BigNumber.\r\n * i: the index of the last digit required (i.e. the digit that may be rounded up).\r\n * rm: the rounding mode.\r\n * id: 1 (toExponential) or 2 (toPrecision).\r\n */\r\n function format(n, i, rm, id) {\r\n var c0, e, ne, len, str;\r\n\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n if (!n.c) return n.toString();\r\n\r\n c0 = n.c[0];\r\n ne = n.e;\r\n\r\n if (i == null) {\r\n str = coeffToString(n.c);\r\n str = id == 1 || id == 2 && (ne <= TO_EXP_NEG || ne >= TO_EXP_POS)\r\n ? toExponential(str, ne)\r\n : toFixedPoint(str, ne, '0');\r\n } else {\r\n n = round(new BigNumber(n), i, rm);\r\n\r\n // n.e may have changed if the value was rounded up.\r\n e = n.e;\r\n\r\n str = coeffToString(n.c);\r\n len = str.length;\r\n\r\n // toPrecision returns exponential notation if the number of significant digits\r\n // specified is less than the number of digits necessary to represent the integer\r\n // part of the value in fixed-point notation.\r\n\r\n // Exponential notation.\r\n if (id == 1 || id == 2 && (i <= e || e <= TO_EXP_NEG)) {\r\n\r\n // Append zeros?\r\n for (; len < i; str += '0', len++);\r\n str = toExponential(str, e);\r\n\r\n // Fixed-point notation.\r\n } else {\r\n i -= ne;\r\n str = toFixedPoint(str, e, '0');\r\n\r\n // Append zeros?\r\n if (e + 1 > len) {\r\n if (--i > 0) for (str += '.'; i--; str += '0');\r\n } else {\r\n i += e - len;\r\n if (i > 0) {\r\n if (e + 1 == len) str += '.';\r\n for (; i--; str += '0');\r\n }\r\n }\r\n }\r\n }\r\n\r\n return n.s < 0 && c0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // Handle BigNumber.max and BigNumber.min.\r\n // If any number is NaN, return NaN.\r\n function maxOrMin(args, n) {\r\n var k, y,\r\n i = 1,\r\n x = new BigNumber(args[0]);\r\n\r\n for (; i < args.length; i++) {\r\n y = new BigNumber(args[i]);\r\n if (!y.s || (k = compare(x, y)) === n || k === 0 && x.s === n) {\r\n x = y;\r\n }\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n /*\r\n * Strip trailing zeros, calculate base 10 exponent and check against MIN_EXP and MAX_EXP.\r\n * Called by minus, plus and times.\r\n */\r\n function normalise(n, c, e) {\r\n var i = 1,\r\n j = c.length;\r\n\r\n // Remove trailing zeros.\r\n for (; !c[--j]; c.pop());\r\n\r\n // Calculate the base 10 exponent. First get the number of digits of c[0].\r\n for (j = c[0]; j >= 10; j /= 10, i++);\r\n\r\n // Overflow?\r\n if ((e = i + e * LOG_BASE - 1) > MAX_EXP) {\r\n\r\n // Infinity.\r\n n.c = n.e = null;\r\n\r\n // Underflow?\r\n } else if (e < MIN_EXP) {\r\n\r\n // Zero.\r\n n.c = [n.e = 0];\r\n } else {\r\n n.e = e;\r\n n.c = c;\r\n }\r\n\r\n return n;\r\n }\r\n\r\n\r\n // Handle values that fail the validity test in BigNumber.\r\n parseNumeric = (function () {\r\n var basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i,\r\n dotAfter = /^([^.]+)\\.$/,\r\n dotBefore = /^\\.([^.]+)$/,\r\n isInfinityOrNaN = /^-?(Infinity|NaN)$/,\r\n whitespaceOrPlus = /^\\s*\\+(?=[\\w.])|^\\s+|\\s+$/g;\r\n\r\n return function (x, str, isNum, b) {\r\n var base,\r\n s = isNum ? str : str.replace(whitespaceOrPlus, '');\r\n\r\n // No exception on ±Infinity or NaN.\r\n if (isInfinityOrNaN.test(s)) {\r\n x.s = isNaN(s) ? null : s < 0 ? -1 : 1;\r\n } else {\r\n if (!isNum) {\r\n\r\n // basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i\r\n s = s.replace(basePrefix, function (m, p1, p2) {\r\n base = (p2 = p2.toLowerCase()) == 'x' ? 16 : p2 == 'b' ? 2 : 8;\r\n return !b || b == base ? p1 : m;\r\n });\r\n\r\n if (b) {\r\n base = b;\r\n\r\n // E.g. '1.' to '1', '.1' to '0.1'\r\n s = s.replace(dotAfter, '$1').replace(dotBefore, '0.$1');\r\n }\r\n\r\n if (str != s) return new BigNumber(s, base);\r\n }\r\n\r\n // '[BigNumber Error] Not a number: {n}'\r\n // '[BigNumber Error] Not a base {b} number: {n}'\r\n if (BigNumber.DEBUG) {\r\n throw Error\r\n (bignumberError + 'Not a' + (b ? ' base ' + b : '') + ' number: ' + str);\r\n }\r\n\r\n // NaN\r\n x.s = null;\r\n }\r\n\r\n x.c = x.e = null;\r\n }\r\n })();\r\n\r\n\r\n /*\r\n * Round x to sd significant digits using rounding mode rm. Check for over/under-flow.\r\n * If r is truthy, it is known that there are more digits after the rounding digit.\r\n */\r\n function round(x, sd, rm, r) {\r\n var d, i, j, k, n, ni, rd,\r\n xc = x.c,\r\n pows10 = POWS_TEN;\r\n\r\n // if x is not Infinity or NaN...\r\n if (xc) {\r\n\r\n // rd is the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // n is a base 1e14 number, the value of the element of array x.c containing rd.\r\n // ni is the index of n within x.c.\r\n // d is the number of digits of n.\r\n // i is the index of rd within n including leading zeros.\r\n // j is the actual index of rd within n (if < 0, rd is a leading zero).\r\n out: {\r\n\r\n // Get the number of digits of the first element of xc.\r\n for (d = 1, k = xc[0]; k >= 10; k /= 10, d++);\r\n i = sd - d;\r\n\r\n // If the rounding digit is in the first element of xc...\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n n = xc[ni = 0];\r\n\r\n // Get the rounding digit at index j of n.\r\n rd = mathfloor(n / pows10[d - j - 1] % 10);\r\n } else {\r\n ni = mathceil((i + 1) / LOG_BASE);\r\n\r\n if (ni >= xc.length) {\r\n\r\n if (r) {\r\n\r\n // Needed by sqrt.\r\n for (; xc.length <= ni; xc.push(0));\r\n n = rd = 0;\r\n d = 1;\r\n i %= LOG_BASE;\r\n j = i - LOG_BASE + 1;\r\n } else {\r\n break out;\r\n }\r\n } else {\r\n n = k = xc[ni];\r\n\r\n // Get the number of digits of n.\r\n for (d = 1; k >= 10; k /= 10, d++);\r\n\r\n // Get the index of rd within n.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within n, adjusted for leading zeros.\r\n // The number of leading zeros of n is given by LOG_BASE - d.\r\n j = i - LOG_BASE + d;\r\n\r\n // Get the rounding digit at index j of n.\r\n rd = j < 0 ? 0 : mathfloor(n / pows10[d - j - 1] % 10);\r\n }\r\n }\r\n\r\n r = r || sd < 0 ||\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n // The expression n % pows10[d - j - 1] returns all digits of n to the right\r\n // of the digit at j, e.g. if n is 908714 and j is 2, the expression gives 714.\r\n xc[ni + 1] != null || (j < 0 ? n : n % pows10[d - j - 1]);\r\n\r\n r = rm < 4\r\n ? (rd || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || r || rm == 6 &&\r\n\r\n // Check whether the digit to the left of the rounding digit is odd.\r\n ((i > 0 ? j > 0 ? n / pows10[d - j] : 0 : xc[ni - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n if (sd < 1 || !xc[0]) {\r\n xc.length = 0;\r\n\r\n if (r) {\r\n\r\n // Convert sd to decimal places.\r\n sd -= x.e + 1;\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n xc[0] = pows10[(LOG_BASE - sd % LOG_BASE) % LOG_BASE];\r\n x.e = -sd || 0;\r\n } else {\r\n\r\n // Zero.\r\n xc[0] = x.e = 0;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n // Remove excess digits.\r\n if (i == 0) {\r\n xc.length = ni;\r\n k = 1;\r\n ni--;\r\n } else {\r\n xc.length = ni + 1;\r\n k = pows10[LOG_BASE - i];\r\n\r\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n // j > 0 means i > number of leading zeros of n.\r\n xc[ni] = j > 0 ? mathfloor(n / pows10[d - j] % pows10[j]) * k : 0;\r\n }\r\n\r\n // Round up?\r\n if (r) {\r\n\r\n for (; ;) {\r\n\r\n // If the digit to be rounded up is in the first element of xc...\r\n if (ni == 0) {\r\n\r\n // i will be the length of xc[0] before k is added.\r\n for (i = 1, j = xc[0]; j >= 10; j /= 10, i++);\r\n j = xc[0] += k;\r\n for (k = 1; j >= 10; j /= 10, k++);\r\n\r\n // if i != k the length has increased.\r\n if (i != k) {\r\n x.e++;\r\n if (xc[0] == BASE) xc[0] = 1;\r\n }\r\n\r\n break;\r\n } else {\r\n xc[ni] += k;\r\n if (xc[ni] != BASE) break;\r\n xc[ni--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xc.length; xc[--i] === 0; xc.pop());\r\n }\r\n\r\n // Overflow? Infinity.\r\n if (x.e > MAX_EXP) {\r\n x.c = x.e = null;\r\n\r\n // Underflow? Zero.\r\n } else if (x.e < MIN_EXP) {\r\n x.c = [x.e = 0];\r\n }\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n function valueOf(n) {\r\n var str,\r\n e = n.e;\r\n\r\n if (e === null) return n.toString();\r\n\r\n str = coeffToString(n.c);\r\n\r\n str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n ? toExponential(str, e)\r\n : toFixedPoint(str, e, '0');\r\n\r\n return n.s < 0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // PROTOTYPE/INSTANCE METHODS\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the absolute value of this BigNumber.\r\n */\r\n P.absoluteValue = P.abs = function () {\r\n var x = new BigNumber(this);\r\n if (x.s < 0) x.s = 1;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return\r\n * 1 if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n * -1 if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n * 0 if they have the same value,\r\n * or null if the value of either is NaN.\r\n */\r\n P.comparedTo = function (y, b) {\r\n return compare(this, new BigNumber(y, b));\r\n };\r\n\r\n\r\n /*\r\n * If dp is undefined or null or true or false, return the number of decimal places of the\r\n * value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n *\r\n * Otherwise, if dp is a number, return a new BigNumber whose value is the value of this\r\n * BigNumber rounded to a maximum of dp decimal places using rounding mode rm, or\r\n * ROUNDING_MODE if rm is omitted.\r\n *\r\n * [dp] {number} Decimal places: integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.decimalPlaces = P.dp = function (dp, rm) {\r\n var c, n, v,\r\n x = this;\r\n\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n return round(new BigNumber(x), dp + x.e + 1, rm);\r\n }\r\n\r\n if (!(c = x.c)) return null;\r\n n = ((v = c.length - 1) - bitFloor(this.e / LOG_BASE)) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last number.\r\n if (v = c[v]) for (; v % 10 == 0; v /= 10, n--);\r\n if (n < 0) n = 0;\r\n\r\n return n;\r\n };\r\n\r\n\r\n /*\r\n * n / 0 = I\r\n * n / N = N\r\n * n / I = 0\r\n * 0 / n = 0\r\n * 0 / 0 = N\r\n * 0 / N = N\r\n * 0 / I = 0\r\n * N / n = N\r\n * N / 0 = N\r\n * N / N = N\r\n * N / I = N\r\n * I / n = I\r\n * I / 0 = I\r\n * I / N = N\r\n * I / I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber divided by the value of\r\n * BigNumber(y, b), rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n */\r\n P.dividedBy = P.div = function (y, b) {\r\n return div(this, new BigNumber(y, b), DECIMAL_PLACES, ROUNDING_MODE);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the integer part of dividing the value of this\r\n * BigNumber by the value of BigNumber(y, b).\r\n */\r\n P.dividedToIntegerBy = P.idiv = function (y, b) {\r\n return div(this, new BigNumber(y, b), 0, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a BigNumber whose value is the value of this BigNumber exponentiated by n.\r\n *\r\n * If m is present, return the result modulo m.\r\n * If n is negative round according to DECIMAL_PLACES and ROUNDING_MODE.\r\n * If POW_PRECISION is non-zero and m is not present, round to POW_PRECISION using ROUNDING_MODE.\r\n *\r\n * The modular power operation works efficiently when x, n, and m are integers, otherwise it\r\n * is equivalent to calculating x.exponentiatedBy(n).modulo(m) with a POW_PRECISION of 0.\r\n *\r\n * n {number|string|BigNumber} The exponent. An integer.\r\n * [m] {number|string|BigNumber} The modulus.\r\n *\r\n * '[BigNumber Error] Exponent not an integer: {n}'\r\n */\r\n P.exponentiatedBy = P.pow = function (n, m) {\r\n var half, isModExp, i, k, more, nIsBig, nIsNeg, nIsOdd, y,\r\n x = this;\r\n\r\n n = new BigNumber(n);\r\n\r\n // Allow NaN and ±Infinity, but not other non-integers.\r\n if (n.c && !n.isInteger()) {\r\n throw Error\r\n (bignumberError + 'Exponent not an integer: ' + valueOf(n));\r\n }\r\n\r\n if (m != null) m = new BigNumber(m);\r\n\r\n // Exponent of MAX_SAFE_INTEGER is 15.\r\n nIsBig = n.e > 14;\r\n\r\n // If x is NaN, ±Infinity, ±0 or ±1, or n is ±Infinity, NaN or ±0.\r\n if (!x.c || !x.c[0] || x.c[0] == 1 && !x.e && x.c.length == 1 || !n.c || !n.c[0]) {\r\n\r\n // The sign of the result of pow when x is negative depends on the evenness of n.\r\n // If +n overflows to ±Infinity, the evenness of n would be not be known.\r\n y = new BigNumber(Math.pow(+valueOf(x), nIsBig ? n.s * (2 - isOdd(n)) : +valueOf(n)));\r\n return m ? y.mod(m) : y;\r\n }\r\n\r\n nIsNeg = n.s < 0;\r\n\r\n if (m) {\r\n\r\n // x % m returns NaN if abs(m) is zero, or m is NaN.\r\n if (m.c ? !m.c[0] : !m.s) return new BigNumber(NaN);\r\n\r\n isModExp = !nIsNeg && x.isInteger() && m.isInteger();\r\n\r\n if (isModExp) x = x.mod(m);\r\n\r\n // Overflow to ±Infinity: >=2**1e10 or >=1.0000024**1e15.\r\n // Underflow to ±0: <=0.79**1e10 or <=0.9999975**1e15.\r\n } else if (n.e > 9 && (x.e > 0 || x.e < -1 || (x.e == 0\r\n // [1, 240000000]\r\n ? x.c[0] > 1 || nIsBig && x.c[1] >= 24e7\r\n // [80000000000000] [99999750000000]\r\n : x.c[0] < 8e13 || nIsBig && x.c[0] <= 9999975e7))) {\r\n\r\n // If x is negative and n is odd, k = -0, else k = 0.\r\n k = x.s < 0 && isOdd(n) ? -0 : 0;\r\n\r\n // If x >= 1, k = ±Infinity.\r\n if (x.e > -1) k = 1 / k;\r\n\r\n // If n is negative return ±0, else return ±Infinity.\r\n return new BigNumber(nIsNeg ? 1 / k : k);\r\n\r\n } else if (POW_PRECISION) {\r\n\r\n // Truncating each coefficient array to a length of k after each multiplication\r\n // equates to truncating significant digits to POW_PRECISION + [28, 41],\r\n // i.e. there will be a minimum of 28 guard digits retained.\r\n k = mathceil(POW_PRECISION / LOG_BASE + 2);\r\n }\r\n\r\n if (nIsBig) {\r\n half = new BigNumber(0.5);\r\n if (nIsNeg) n.s = 1;\r\n nIsOdd = isOdd(n);\r\n } else {\r\n i = Math.abs(+valueOf(n));\r\n nIsOdd = i % 2;\r\n }\r\n\r\n y = new BigNumber(ONE);\r\n\r\n // Performs 54 loop iterations for n of 9007199254740991.\r\n for (; ;) {\r\n\r\n if (nIsOdd) {\r\n y = y.times(x);\r\n if (!y.c) break;\r\n\r\n if (k) {\r\n if (y.c.length > k) y.c.length = k;\r\n } else if (isModExp) {\r\n y = y.mod(m); //y = y.minus(div(y, m, 0, MODULO_MODE).times(m));\r\n }\r\n }\r\n\r\n if (i) {\r\n i = mathfloor(i / 2);\r\n if (i === 0) break;\r\n nIsOdd = i % 2;\r\n } else {\r\n n = n.times(half);\r\n round(n, n.e + 1, 1);\r\n\r\n if (n.e > 14) {\r\n nIsOdd = isOdd(n);\r\n } else {\r\n i = +valueOf(n);\r\n if (i === 0) break;\r\n nIsOdd = i % 2;\r\n }\r\n }\r\n\r\n x = x.times(x);\r\n\r\n if (k) {\r\n if (x.c && x.c.length > k) x.c.length = k;\r\n } else if (isModExp) {\r\n x = x.mod(m); //x = x.minus(div(x, m, 0, MODULO_MODE).times(m));\r\n }\r\n }\r\n\r\n if (isModExp) return y;\r\n if (nIsNeg) y = ONE.div(y);\r\n\r\n return m ? y.mod(m) : k ? round(y, POW_PRECISION, ROUNDING_MODE, more) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber rounded to an integer\r\n * using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n *\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {rm}'\r\n */\r\n P.integerValue = function (rm) {\r\n var n = new BigNumber(this);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n return round(n, n.e + 1, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is equal to the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isEqualTo = P.eq = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is a finite number, otherwise return false.\r\n */\r\n P.isFinite = function () {\r\n return !!this.c;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isGreaterThan = P.gt = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is greater than or equal to the value of\r\n * BigNumber(y, b), otherwise return false.\r\n */\r\n P.isGreaterThanOrEqualTo = P.gte = function (y, b) {\r\n return (b = compare(this, new BigNumber(y, b))) === 1 || b === 0;\r\n\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is an integer, otherwise return false.\r\n */\r\n P.isInteger = function () {\r\n return !!this.c && bitFloor(this.e / LOG_BASE) > this.c.length - 2;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isLessThan = P.lt = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is less than or equal to the value of\r\n * BigNumber(y, b), otherwise return false.\r\n */\r\n P.isLessThanOrEqualTo = P.lte = function (y, b) {\r\n return (b = compare(this, new BigNumber(y, b))) === -1 || b === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is NaN, otherwise return false.\r\n */\r\n P.isNaN = function () {\r\n return !this.s;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is negative, otherwise return false.\r\n */\r\n P.isNegative = function () {\r\n return this.s < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is positive, otherwise return false.\r\n */\r\n P.isPositive = function () {\r\n return this.s > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is 0 or -0, otherwise return false.\r\n */\r\n P.isZero = function () {\r\n return !!this.c && this.c[0] == 0;\r\n };\r\n\r\n\r\n /*\r\n * n - 0 = n\r\n * n - N = N\r\n * n - I = -I\r\n * 0 - n = -n\r\n * 0 - 0 = 0\r\n * 0 - N = N\r\n * 0 - I = -I\r\n * N - n = N\r\n * N - 0 = N\r\n * N - N = N\r\n * N - I = N\r\n * I - n = I\r\n * I - 0 = I\r\n * I - N = N\r\n * I - I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber minus the value of\r\n * BigNumber(y, b).\r\n */\r\n P.minus = function (y, b) {\r\n var i, j, t, xLTy,\r\n x = this,\r\n a = x.s;\r\n\r\n y = new BigNumber(y, b);\r\n b = y.s;\r\n\r\n // Either NaN?\r\n if (!a || !b) return new BigNumber(NaN);\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.plus(y);\r\n }\r\n\r\n var xe = x.e / LOG_BASE,\r\n ye = y.e / LOG_BASE,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n if (!xe || !ye) {\r\n\r\n // Either Infinity?\r\n if (!xc || !yc) return xc ? (y.s = -b, y) : new BigNumber(yc ? x : NaN);\r\n\r\n // Either zero?\r\n if (!xc[0] || !yc[0]) {\r\n\r\n // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n return yc[0] ? (y.s = -b, y) : new BigNumber(xc[0] ? x :\r\n\r\n // IEEE 754 (2008) 6.3: n - n = -0 when rounding to -Infinity\r\n ROUNDING_MODE == 3 ? -0 : 0);\r\n }\r\n }\r\n\r\n xe = bitFloor(xe);\r\n ye = bitFloor(ye);\r\n xc = xc.slice();\r\n\r\n // Determine which is the bigger number.\r\n if (a = xe - ye) {\r\n\r\n if (xLTy = a < 0) {\r\n a = -a;\r\n t = xc;\r\n } else {\r\n ye = xe;\r\n t = yc;\r\n }\r\n\r\n t.reverse();\r\n\r\n // Prepend zeros to equalise exponents.\r\n for (b = a; b--; t.push(0));\r\n t.reverse();\r\n } else {\r\n\r\n // Exponents equal. Check digit by digit.\r\n j = (xLTy = (a = xc.length) < (b = yc.length)) ? a : b;\r\n\r\n for (a = b = 0; b < j; b++) {\r\n\r\n if (xc[b] != yc[b]) {\r\n xLTy = xc[b] < yc[b];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // x < y? Point xc to the array of the bigger number.\r\n if (xLTy) {\r\n t = xc;\r\n xc = yc;\r\n yc = t;\r\n y.s = -y.s;\r\n }\r\n\r\n b = (j = yc.length) - (i = xc.length);\r\n\r\n // Append zeros to xc if shorter.\r\n // No need to add zeros to yc if shorter as subtract only needs to start at yc.length.\r\n if (b > 0) for (; b--; xc[i++] = 0);\r\n b = BASE - 1;\r\n\r\n // Subtract yc from xc.\r\n for (; j > a;) {\r\n\r\n if (xc[--j] < yc[j]) {\r\n for (i = j; i && !xc[--i]; xc[i] = b);\r\n --xc[i];\r\n xc[j] += BASE;\r\n }\r\n\r\n xc[j] -= yc[j];\r\n }\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xc[0] == 0; xc.splice(0, 1), --ye);\r\n\r\n // Zero?\r\n if (!xc[0]) {\r\n\r\n // Following IEEE 754 (2008) 6.3,\r\n // n - n = +0 but n - n = -0 when rounding towards -Infinity.\r\n y.s = ROUNDING_MODE == 3 ? -1 : 1;\r\n y.c = [y.e = 0];\r\n return y;\r\n }\r\n\r\n // No need to check for Infinity as +x - +y != Infinity && -x - -y != Infinity\r\n // for finite x and y.\r\n return normalise(y, xc, ye);\r\n };\r\n\r\n\r\n /*\r\n * n % 0 = N\r\n * n % N = N\r\n * n % I = n\r\n * 0 % n = 0\r\n * -0 % n = -0\r\n * 0 % 0 = N\r\n * 0 % N = N\r\n * 0 % I = 0\r\n * N % n = N\r\n * N % 0 = N\r\n * N % N = N\r\n * N % I = N\r\n * I % n = N\r\n * I % 0 = N\r\n * I % N = N\r\n * I % I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber modulo the value of\r\n * BigNumber(y, b). The result depends on the value of MODULO_MODE.\r\n */\r\n P.modulo = P.mod = function (y, b) {\r\n var q, s,\r\n x = this;\r\n\r\n y = new BigNumber(y, b);\r\n\r\n // Return NaN if x is Infinity or NaN, or y is NaN or zero.\r\n if (!x.c || !y.s || y.c && !y.c[0]) {\r\n return new BigNumber(NaN);\r\n\r\n // Return x if y is Infinity or x is zero.\r\n } else if (!y.c || x.c && !x.c[0]) {\r\n return new BigNumber(x);\r\n }\r\n\r\n if (MODULO_MODE == 9) {\r\n\r\n // Euclidian division: q = sign(y) * floor(x / abs(y))\r\n // r = x - qy where 0 <= r < abs(y)\r\n s = y.s;\r\n y.s = 1;\r\n q = div(x, y, 0, 3);\r\n y.s = s;\r\n q.s *= s;\r\n } else {\r\n q = div(x, y, 0, MODULO_MODE);\r\n }\r\n\r\n y = x.minus(q.times(y));\r\n\r\n // To match JavaScript %, ensure sign of zero is sign of dividend.\r\n if (!y.c[0] && MODULO_MODE == 1) y.s = x.s;\r\n\r\n return y;\r\n };\r\n\r\n\r\n /*\r\n * n * 0 = 0\r\n * n * N = N\r\n * n * I = I\r\n * 0 * n = 0\r\n * 0 * 0 = 0\r\n * 0 * N = N\r\n * 0 * I = N\r\n * N * n = N\r\n * N * 0 = N\r\n * N * N = N\r\n * N * I = N\r\n * I * n = I\r\n * I * 0 = N\r\n * I * N = N\r\n * I * I = I\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber multiplied by the value\r\n * of BigNumber(y, b).\r\n */\r\n P.multipliedBy = P.times = function (y, b) {\r\n var c, e, i, j, k, m, xcL, xlo, xhi, ycL, ylo, yhi, zc,\r\n base, sqrtBase,\r\n x = this,\r\n xc = x.c,\r\n yc = (y = new BigNumber(y, b)).c;\r\n\r\n // Either NaN, ±Infinity or ±0?\r\n if (!xc || !yc || !xc[0] || !yc[0]) {\r\n\r\n // Return NaN if either is NaN, or one is 0 and the other is Infinity.\r\n if (!x.s || !y.s || xc && !xc[0] && !yc || yc && !yc[0] && !xc) {\r\n y.c = y.e = y.s = null;\r\n } else {\r\n y.s *= x.s;\r\n\r\n // Return ±Infinity if either is ±Infinity.\r\n if (!xc || !yc) {\r\n y.c = y.e = null;\r\n\r\n // Return ±0 if either is ±0.\r\n } else {\r\n y.c = [0];\r\n y.e = 0;\r\n }\r\n }\r\n\r\n return y;\r\n }\r\n\r\n e = bitFloor(x.e / LOG_BASE) + bitFloor(y.e / LOG_BASE);\r\n y.s *= x.s;\r\n xcL = xc.length;\r\n ycL = yc.length;\r\n\r\n // Ensure xc points to longer array and xcL to its length.\r\n if (xcL < ycL) {\r\n zc = xc;\r\n xc = yc;\r\n yc = zc;\r\n i = xcL;\r\n xcL = ycL;\r\n ycL = i;\r\n }\r\n\r\n // Initialise the result array with zeros.\r\n for (i = xcL + ycL, zc = []; i--; zc.push(0));\r\n\r\n base = BASE;\r\n sqrtBase = SQRT_BASE;\r\n\r\n for (i = ycL; --i >= 0;) {\r\n c = 0;\r\n ylo = yc[i] % sqrtBase;\r\n yhi = yc[i] / sqrtBase | 0;\r\n\r\n for (k = xcL, j = i + k; j > i;) {\r\n xlo = xc[--k] % sqrtBase;\r\n xhi = xc[k] / sqrtBase | 0;\r\n m = yhi * xlo + xhi * ylo;\r\n xlo = ylo * xlo + ((m % sqrtBase) * sqrtBase) + zc[j] + c;\r\n c = (xlo / base | 0) + (m / sqrtBase | 0) + yhi * xhi;\r\n zc[j--] = xlo % base;\r\n }\r\n\r\n zc[j] = c;\r\n }\r\n\r\n if (c) {\r\n ++e;\r\n } else {\r\n zc.splice(0, 1);\r\n }\r\n\r\n return normalise(y, zc, e);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber negated,\r\n * i.e. multiplied by -1.\r\n */\r\n P.negated = function () {\r\n var x = new BigNumber(this);\r\n x.s = -x.s || null;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * n + 0 = n\r\n * n + N = N\r\n * n + I = I\r\n * 0 + n = n\r\n * 0 + 0 = 0\r\n * 0 + N = N\r\n * 0 + I = I\r\n * N + n = N\r\n * N + 0 = N\r\n * N + N = N\r\n * N + I = N\r\n * I + n = I\r\n * I + 0 = I\r\n * I + N = N\r\n * I + I = I\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber plus the value of\r\n * BigNumber(y, b).\r\n */\r\n P.plus = function (y, b) {\r\n var t,\r\n x = this,\r\n a = x.s;\r\n\r\n y = new BigNumber(y, b);\r\n b = y.s;\r\n\r\n // Either NaN?\r\n if (!a || !b) return new BigNumber(NaN);\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.minus(y);\r\n }\r\n\r\n var xe = x.e / LOG_BASE,\r\n ye = y.e / LOG_BASE,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n if (!xe || !ye) {\r\n\r\n // Return ±Infinity if either ±Infinity.\r\n if (!xc || !yc) return new BigNumber(a / 0);\r\n\r\n // Either zero?\r\n // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n if (!xc[0] || !yc[0]) return yc[0] ? y : new BigNumber(xc[0] ? x : a * 0);\r\n }\r\n\r\n xe = bitFloor(xe);\r\n ye = bitFloor(ye);\r\n xc = xc.slice();\r\n\r\n // Prepend zeros to equalise exponents. Faster to use reverse then do unshifts.\r\n if (a = xe - ye) {\r\n if (a > 0) {\r\n ye = xe;\r\n t = yc;\r\n } else {\r\n a = -a;\r\n t = xc;\r\n }\r\n\r\n t.reverse();\r\n for (; a--; t.push(0));\r\n t.reverse();\r\n }\r\n\r\n a = xc.length;\r\n b = yc.length;\r\n\r\n // Point xc to the longer array, and b to the shorter length.\r\n if (a - b < 0) {\r\n t = yc;\r\n yc = xc;\r\n xc = t;\r\n b = a;\r\n }\r\n\r\n // Only start adding at yc.length - 1 as the further digits of xc can be ignored.\r\n for (a = 0; b;) {\r\n a = (xc[--b] = xc[b] + yc[b] + a) / BASE | 0;\r\n xc[b] = BASE === xc[b] ? 0 : xc[b] % BASE;\r\n }\r\n\r\n if (a) {\r\n xc = [a].concat(xc);\r\n ++ye;\r\n }\r\n\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n // ye = MAX_EXP + 1 possible\r\n return normalise(y, xc, ye);\r\n };\r\n\r\n\r\n /*\r\n * If sd is undefined or null or true or false, return the number of significant digits of\r\n * the value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n * If sd is true include integer-part trailing zeros in the count.\r\n *\r\n * Otherwise, if sd is a number, return a new BigNumber whose value is the value of this\r\n * BigNumber rounded to a maximum of sd significant digits using rounding mode rm, or\r\n * ROUNDING_MODE if rm is omitted.\r\n *\r\n * sd {number|boolean} number: significant digits: integer, 1 to MAX inclusive.\r\n * boolean: whether to count integer-part trailing zeros: true or false.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n */\r\n P.precision = P.sd = function (sd, rm) {\r\n var c, n, v,\r\n x = this;\r\n\r\n if (sd != null && sd !== !!sd) {\r\n intCheck(sd, 1, MAX);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n return round(new BigNumber(x), sd, rm);\r\n }\r\n\r\n if (!(c = x.c)) return null;\r\n v = c.length - 1;\r\n n = v * LOG_BASE + 1;\r\n\r\n if (v = c[v]) {\r\n\r\n // Subtract the number of trailing zeros of the last element.\r\n for (; v % 10 == 0; v /= 10, n--);\r\n\r\n // Add the number of digits of the first element.\r\n for (v = c[0]; v >= 10; v /= 10, n++);\r\n }\r\n\r\n if (sd && x.e + 1 > n) n = x.e + 1;\r\n\r\n return n;\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber shifted by k places\r\n * (powers of 10). Shift to the right if n > 0, and to the left if n < 0.\r\n *\r\n * k {number} Integer, -MAX_SAFE_INTEGER to MAX_SAFE_INTEGER inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {k}'\r\n */\r\n P.shiftedBy = function (k) {\r\n intCheck(k, -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER);\r\n return this.times('1e' + k);\r\n };\r\n\r\n\r\n /*\r\n * sqrt(-n) = N\r\n * sqrt(N) = N\r\n * sqrt(-I) = N\r\n * sqrt(I) = I\r\n * sqrt(0) = 0\r\n * sqrt(-0) = -0\r\n *\r\n * Return a new BigNumber whose value is the square root of the value of this BigNumber,\r\n * rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n */\r\n P.squareRoot = P.sqrt = function () {\r\n var m, n, r, rep, t,\r\n x = this,\r\n c = x.c,\r\n s = x.s,\r\n e = x.e,\r\n dp = DECIMAL_PLACES + 4,\r\n half = new BigNumber('0.5');\r\n\r\n // Negative/NaN/Infinity/zero?\r\n if (s !== 1 || !c || !c[0]) {\r\n return new BigNumber(!s || s < 0 && (!c || c[0]) ? NaN : c ? x : 1 / 0);\r\n }\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+valueOf(x));\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n if (s == 0 || s == 1 / 0) {\r\n n = coeffToString(c);\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(+n);\r\n e = bitFloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new BigNumber(n);\r\n } else {\r\n r = new BigNumber(s + '');\r\n }\r\n\r\n // Check for zero.\r\n // r could be zero if MIN_EXP is changed after the this value was created.\r\n // This would cause a division by zero (x/t) and hence Infinity below, which would cause\r\n // coeffToString to throw.\r\n if (r.c[0]) {\r\n e = r.e;\r\n s = e + dp;\r\n if (s < 3) s = 0;\r\n\r\n // Newton-Raphson iteration.\r\n for (; ;) {\r\n t = r;\r\n r = half.times(t.plus(div(x, t, dp, 1)));\r\n\r\n if (coeffToString(t.c).slice(0, s) === (n = coeffToString(r.c)).slice(0, s)) {\r\n\r\n // The exponent of r may here be one less than the final result exponent,\r\n // e.g 0.0009999 (e-4) --> 0.001 (e-3), so adjust s so the rounding digits\r\n // are indexed correctly.\r\n if (r.e < e) --s;\r\n n = n.slice(s - 3, s + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits\r\n // are 9999 or 4999 (i.e. approaching a rounding boundary) continue the\r\n // iteration.\r\n if (n == '9999' || !rep && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the\r\n // exact result as the nines may infinitely repeat.\r\n if (!rep) {\r\n round(t, t.e + DECIMAL_PLACES + 2, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n }\r\n\r\n dp += 4;\r\n s += 4;\r\n rep = 1;\r\n } else {\r\n\r\n // If rounding digits are null, 0{0,4} or 50{0,3}, check for exact\r\n // result. If not, then there are further digits and m will be truthy.\r\n if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\r\n\r\n // Truncate to the first rounding digit.\r\n round(r, r.e + DECIMAL_PLACES + 2, 1);\r\n m = !r.times(r).eq(x);\r\n }\r\n\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return round(r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in exponential notation and\r\n * rounded using ROUNDING_MODE to dp fixed decimal places.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.toExponential = function (dp, rm) {\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n dp++;\r\n }\r\n return format(this, dp, rm, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in fixed-point notation rounding\r\n * to dp fixed decimal places using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n *\r\n * Note: as with JavaScript's number type, (-0).toFixed(0) is '0',\r\n * but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.toFixed = function (dp, rm) {\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n dp = dp + this.e + 1;\r\n }\r\n return format(this, dp, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in fixed-point notation rounded\r\n * using rm or ROUNDING_MODE to dp decimal places, and formatted according to the properties\r\n * of the format or FORMAT object (see BigNumber.set).\r\n *\r\n * The formatting object may contain some or all of the properties shown below.\r\n *\r\n * FORMAT = {\r\n * prefix: '',\r\n * groupSize: 3,\r\n * secondaryGroupSize: 0,\r\n * groupSeparator: ',',\r\n * decimalSeparator: '.',\r\n * fractionGroupSize: 0,\r\n * fractionGroupSeparator: '\\xA0', // non-breaking space\r\n * suffix: ''\r\n * };\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n * [format] {object} Formatting options. See FORMAT pbject above.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n * '[BigNumber Error] Argument not an object: {format}'\r\n */\r\n P.toFormat = function (dp, rm, format) {\r\n var str,\r\n x = this;\r\n\r\n if (format == null) {\r\n if (dp != null && rm && typeof rm == 'object') {\r\n format = rm;\r\n rm = null;\r\n } else if (dp && typeof dp == 'object') {\r\n format = dp;\r\n dp = rm = null;\r\n } else {\r\n format = FORMAT;\r\n }\r\n } else if (typeof format != 'object') {\r\n throw Error\r\n (bignumberError + 'Argument not an object: ' + format);\r\n }\r\n\r\n str = x.toFixed(dp, rm);\r\n\r\n if (x.c) {\r\n var i,\r\n arr = str.split('.'),\r\n g1 = +format.groupSize,\r\n g2 = +format.secondaryGroupSize,\r\n groupSeparator = format.groupSeparator || '',\r\n intPart = arr[0],\r\n fractionPart = arr[1],\r\n isNeg = x.s < 0,\r\n intDigits = isNeg ? intPart.slice(1) : intPart,\r\n len = intDigits.length;\r\n\r\n if (g2) {\r\n i = g1;\r\n g1 = g2;\r\n g2 = i;\r\n len -= i;\r\n }\r\n\r\n if (g1 > 0 && len > 0) {\r\n i = len % g1 || g1;\r\n intPart = intDigits.substr(0, i);\r\n for (; i < len; i += g1) intPart += groupSeparator + intDigits.substr(i, g1);\r\n if (g2 > 0) intPart += groupSeparator + intDigits.slice(i);\r\n if (isNeg) intPart = '-' + intPart;\r\n }\r\n\r\n str = fractionPart\r\n ? intPart + (format.decimalSeparator || '') + ((g2 = +format.fractionGroupSize)\r\n ? fractionPart.replace(new RegExp('\\\\d{' + g2 + '}\\\\B', 'g'),\r\n '$&' + (format.fractionGroupSeparator || ''))\r\n : fractionPart)\r\n : intPart;\r\n }\r\n\r\n return (format.prefix || '') + str + (format.suffix || '');\r\n };\r\n\r\n\r\n /*\r\n * Return an array of two BigNumbers representing the value of this BigNumber as a simple\r\n * fraction with an integer numerator and an integer denominator.\r\n * The denominator will be a positive non-zero value less than or equal to the specified\r\n * maximum denominator. If a maximum denominator is not specified, the denominator will be\r\n * the lowest value necessary to represent the number exactly.\r\n *\r\n * [md] {number|string|BigNumber} Integer >= 1, or Infinity. The maximum denominator.\r\n *\r\n * '[BigNumber Error] Argument {not an integer|out of range} : {md}'\r\n */\r\n P.toFraction = function (md) {\r\n var d, d0, d1, d2, e, exp, n, n0, n1, q, r, s,\r\n x = this,\r\n xc = x.c;\r\n\r\n if (md != null) {\r\n n = new BigNumber(md);\r\n\r\n // Throw if md is less than one or is not an integer, unless it is Infinity.\r\n if (!n.isInteger() && (n.c || n.s !== 1) || n.lt(ONE)) {\r\n throw Error\r\n (bignumberError + 'Argument ' +\r\n (n.isInteger() ? 'out of range: ' : 'not an integer: ') + valueOf(n));\r\n }\r\n }\r\n\r\n if (!xc) return new BigNumber(x);\r\n\r\n d = new BigNumber(ONE);\r\n n1 = d0 = new BigNumber(ONE);\r\n d1 = n0 = new BigNumber(ONE);\r\n s = coeffToString(xc);\r\n\r\n // Determine initial denominator.\r\n // d is a power of 10 and the minimum max denominator that specifies the value exactly.\r\n e = d.e = s.length - x.e - 1;\r\n d.c[0] = POWS_TEN[(exp = e % LOG_BASE) < 0 ? LOG_BASE + exp : exp];\r\n md = !md || n.comparedTo(d) > 0 ? (e > 0 ? d : n1) : n;\r\n\r\n exp = MAX_EXP;\r\n MAX_EXP = 1 / 0;\r\n n = new BigNumber(s);\r\n\r\n // n0 = d1 = 0\r\n n0.c[0] = 0;\r\n\r\n for (; ;) {\r\n q = div(n, d, 0, 1);\r\n d2 = d0.plus(q.times(d1));\r\n if (d2.comparedTo(md) == 1) break;\r\n d0 = d1;\r\n d1 = d2;\r\n n1 = n0.plus(q.times(d2 = n1));\r\n n0 = d2;\r\n d = n.minus(q.times(d2 = d));\r\n n = d2;\r\n }\r\n\r\n d2 = div(md.minus(d0), d1, 0, 1);\r\n n0 = n0.plus(d2.times(n1));\r\n d0 = d0.plus(d2.times(d1));\r\n n0.s = n1.s = x.s;\r\n e = e * 2;\r\n\r\n // Determine which fraction is closer to x, n0/d0 or n1/d1\r\n r = div(n1, d1, e, ROUNDING_MODE).minus(x).abs().comparedTo(\r\n div(n0, d0, e, ROUNDING_MODE).minus(x).abs()) < 1 ? [n1, d1] : [n0, d0];\r\n\r\n MAX_EXP = exp;\r\n\r\n return r;\r\n };\r\n\r\n\r\n /*\r\n * Return the value of this BigNumber converted to a number primitive.\r\n */\r\n P.toNumber = function () {\r\n return +valueOf(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber rounded to sd significant digits\r\n * using rounding mode rm or ROUNDING_MODE. If sd is less than the number of digits\r\n * necessary to represent the integer part of the value in fixed-point notation, then use\r\n * exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n */\r\n P.toPrecision = function (sd, rm) {\r\n if (sd != null) intCheck(sd, 1, MAX);\r\n return format(this, sd, rm, 2);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in base b, or base 10 if b is\r\n * omitted. If a base is specified, including base 10, round according to DECIMAL_PLACES and\r\n * ROUNDING_MODE. If a base is not specified, and this BigNumber has a positive exponent\r\n * that is equal to or greater than TO_EXP_POS, or a negative exponent equal to or less than\r\n * TO_EXP_NEG, return exponential notation.\r\n *\r\n * [b] {number} Integer, 2 to ALPHABET.length inclusive.\r\n *\r\n * '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n */\r\n P.toString = function (b) {\r\n var str,\r\n n = this,\r\n s = n.s,\r\n e = n.e;\r\n\r\n // Infinity or NaN?\r\n if (e === null) {\r\n if (s) {\r\n str = 'Infinity';\r\n if (s < 0) str = '-' + str;\r\n } else {\r\n str = 'NaN';\r\n }\r\n } else {\r\n if (b == null) {\r\n str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n ? toExponential(coeffToString(n.c), e)\r\n : toFixedPoint(coeffToString(n.c), e, '0');\r\n } else if (b === 10 && alphabetHasNormalDecimalDigits) {\r\n n = round(new BigNumber(n), DECIMAL_PLACES + e + 1, ROUNDING_MODE);\r\n str = toFixedPoint(coeffToString(n.c), n.e, '0');\r\n } else {\r\n intCheck(b, 2, ALPHABET.length, 'Base');\r\n str = convertBase(toFixedPoint(coeffToString(n.c), e, '0'), 10, b, s, true);\r\n }\r\n\r\n if (s < 0 && n.c[0]) str = '-' + str;\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return as toString, but do not accept a base argument, and include the minus sign for\r\n * negative zero.\r\n */\r\n P.valueOf = P.toJSON = function () {\r\n return valueOf(this);\r\n };\r\n\r\n\r\n P._isBigNumber = true;\r\n\r\n P[Symbol.toStringTag] = 'BigNumber';\r\n\r\n // Node.js v10.12.0+\r\n P[Symbol.for('nodejs.util.inspect.custom')] = P.valueOf;\r\n\r\n if (configObject != null) BigNumber.set(configObject);\r\n\r\n return BigNumber;\r\n}\r\n\r\n\r\n// PRIVATE HELPER FUNCTIONS\r\n\r\n// These functions don't need access to variables,\r\n// e.g. DECIMAL_PLACES, in the scope of the `clone` function above.\r\n\r\n\r\nfunction bitFloor(n) {\r\n var i = n | 0;\r\n return n > 0 || n === i ? i : i - 1;\r\n}\r\n\r\n\r\n// Return a coefficient array as a string of base 10 digits.\r\nfunction coeffToString(a) {\r\n var s, z,\r\n i = 1,\r\n j = a.length,\r\n r = a[0] + '';\r\n\r\n for (; i < j;) {\r\n s = a[i++] + '';\r\n z = LOG_BASE - s.length;\r\n for (; z--; s = '0' + s);\r\n r += s;\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (j = r.length; r.charCodeAt(--j) === 48;);\r\n\r\n return r.slice(0, j + 1 || 1);\r\n}\r\n\r\n\r\n// Compare the value of BigNumbers x and y.\r\nfunction compare(x, y) {\r\n var a, b,\r\n xc = x.c,\r\n yc = y.c,\r\n i = x.s,\r\n j = y.s,\r\n k = x.e,\r\n l = y.e;\r\n\r\n // Either NaN?\r\n if (!i || !j) return null;\r\n\r\n a = xc && !xc[0];\r\n b = yc && !yc[0];\r\n\r\n // Either zero?\r\n if (a || b) return a ? b ? 0 : -j : i;\r\n\r\n // Signs differ?\r\n if (i != j) return i;\r\n\r\n a = i < 0;\r\n b = k == l;\r\n\r\n // Either Infinity?\r\n if (!xc || !yc) return b ? 0 : !xc ^ a ? 1 : -1;\r\n\r\n // Compare exponents.\r\n if (!b) return k > l ^ a ? 1 : -1;\r\n\r\n j = (k = xc.length) < (l = yc.length) ? k : l;\r\n\r\n // Compare digit by digit.\r\n for (i = 0; i < j; i++) if (xc[i] != yc[i]) return xc[i] > yc[i] ^ a ? 1 : -1;\r\n\r\n // Compare lengths.\r\n return k == l ? 0 : k > l ^ a ? 1 : -1;\r\n}\r\n\r\n\r\n/*\r\n * Check that n is a primitive number, an integer, and in range, otherwise throw.\r\n */\r\nfunction intCheck(n, min, max, name) {\r\n if (n < min || n > max || n !== mathfloor(n)) {\r\n throw Error\r\n (bignumberError + (name || 'Argument') + (typeof n == 'number'\r\n ? n < min || n > max ? ' out of range: ' : ' not an integer: '\r\n : ' not a primitive number: ') + String(n));\r\n }\r\n}\r\n\r\n\r\n// Assumes finite n.\r\nfunction isOdd(n) {\r\n var k = n.c.length - 1;\r\n return bitFloor(n.e / LOG_BASE) == k && n.c[k] % 2 != 0;\r\n}\r\n\r\n\r\nfunction toExponential(str, e) {\r\n return (str.length > 1 ? str.charAt(0) + '.' + str.slice(1) : str) +\r\n (e < 0 ? 'e' : 'e+') + e;\r\n}\r\n\r\n\r\nfunction toFixedPoint(str, e, z) {\r\n var len, zs;\r\n\r\n // Negative exponent?\r\n if (e < 0) {\r\n\r\n // Prepend zeros.\r\n for (zs = z + '.'; ++e; zs += z);\r\n str = zs + str;\r\n\r\n // Positive exponent\r\n } else {\r\n len = str.length;\r\n\r\n // Append zeros.\r\n if (++e > len) {\r\n for (zs = z, e -= len; --e; zs += z);\r\n str += zs;\r\n } else if (e < len) {\r\n str = str.slice(0, e) + '.' + str.slice(e);\r\n }\r\n }\r\n\r\n return str;\r\n}\r\n\r\n\r\n// EXPORT\r\n\r\n\r\nexport var BigNumber = clone();\r\n\r\nexport default BigNumber;\r\n","/* eslint-disable @typescript-eslint/strict-boolean-expressions */\n\n// ---------------------------------------------------------------------------\n// Specific encodings\n// ---------------------------------------------------------------------------\nvar base16Encoding = {\n chars: '0123456789ABCDEF',\n bits: 4\n};\nvar base32Encoding = {\n chars: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567',\n bits: 5\n};\nvar base32HexEncoding = {\n chars: '0123456789ABCDEFGHIJKLMNOPQRSTUV',\n bits: 5\n};\nvar base64Encoding = {\n chars: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n bits: 6\n};\nvar base64UrlEncoding = {\n chars: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_',\n bits: 6\n};\nvar base16 = {\n parse: function parse(string, opts) {\n return _parse(string.toUpperCase(), base16Encoding, opts);\n },\n stringify: function stringify(data, opts) {\n return _stringify(data, base16Encoding, opts);\n }\n};\nvar base32 = {\n parse: function parse(string, opts) {\n if (opts === void 0) {\n opts = {};\n }\n return _parse(opts.loose ? string.toUpperCase().replace(/0/g, 'O').replace(/1/g, 'L').replace(/8/g, 'B') : string, base32Encoding, opts);\n },\n stringify: function stringify(data, opts) {\n return _stringify(data, base32Encoding, opts);\n }\n};\nvar base32hex = {\n parse: function parse(string, opts) {\n return _parse(string, base32HexEncoding, opts);\n },\n stringify: function stringify(data, opts) {\n return _stringify(data, base32HexEncoding, opts);\n }\n};\nvar base64 = {\n parse: function parse(string, opts) {\n return _parse(string, base64Encoding, opts);\n },\n stringify: function stringify(data, opts) {\n return _stringify(data, base64Encoding, opts);\n }\n};\nvar base64url = {\n parse: function parse(string, opts) {\n return _parse(string, base64UrlEncoding, opts);\n },\n stringify: function stringify(data, opts) {\n return _stringify(data, base64UrlEncoding, opts);\n }\n};\n\n// ---------------------------------------------------------------------------\n// Codec implementation\n// ---------------------------------------------------------------------------\n\nvar codec = {\n parse: _parse,\n stringify: _stringify\n};\nfunction _parse(string, encoding, opts) {\n var _opts$out;\n if (opts === void 0) {\n opts = {};\n }\n // Build the character lookup table:\n if (!encoding.codes) {\n encoding.codes = {};\n for (var i = 0; i < encoding.chars.length; ++i) {\n encoding.codes[encoding.chars[i]] = i;\n }\n }\n\n // The string must have a whole number of bytes:\n if (!opts.loose && string.length * encoding.bits & 7) {\n throw new SyntaxError('Invalid padding');\n }\n\n // Count the padding bytes:\n var end = string.length;\n while (string[end - 1] === '=') {\n --end;\n\n // If we get a whole number of bytes, there is too much padding:\n if (!opts.loose && !((string.length - end) * encoding.bits & 7)) {\n throw new SyntaxError('Invalid padding');\n }\n }\n\n // Allocate the output:\n var out = new ((_opts$out = opts.out) != null ? _opts$out : Uint8Array)(end * encoding.bits / 8 | 0);\n\n // Parse the data:\n var bits = 0; // Number of bits currently in the buffer\n var buffer = 0; // Bits waiting to be written out, MSB first\n var written = 0; // Next byte to write\n for (var _i = 0; _i < end; ++_i) {\n // Read one character from the string:\n var value = encoding.codes[string[_i]];\n if (value === undefined) {\n throw new SyntaxError('Invalid character ' + string[_i]);\n }\n\n // Append the bits to the buffer:\n buffer = buffer << encoding.bits | value;\n bits += encoding.bits;\n\n // Write out some bits if the buffer has a byte's worth:\n if (bits >= 8) {\n bits -= 8;\n out[written++] = 0xff & buffer >> bits;\n }\n }\n\n // Verify that we have received just enough bits:\n if (bits >= encoding.bits || 0xff & buffer << 8 - bits) {\n throw new SyntaxError('Unexpected end of data');\n }\n return out;\n}\nfunction _stringify(data, encoding, opts) {\n if (opts === void 0) {\n opts = {};\n }\n var _opts = opts,\n _opts$pad = _opts.pad,\n pad = _opts$pad === void 0 ? true : _opts$pad;\n var mask = (1 << encoding.bits) - 1;\n var out = '';\n var bits = 0; // Number of bits currently in the buffer\n var buffer = 0; // Bits waiting to be written out, MSB first\n for (var i = 0; i < data.length; ++i) {\n // Slurp data into the buffer:\n buffer = buffer << 8 | 0xff & data[i];\n bits += 8;\n\n // Write out as much as we can:\n while (bits > encoding.bits) {\n bits -= encoding.bits;\n out += encoding.chars[mask & buffer >> bits];\n }\n }\n\n // Partial character:\n if (bits) {\n out += encoding.chars[mask & buffer << encoding.bits - bits];\n }\n\n // Add padding characters until we hit a byte boundary:\n if (pad) {\n while (out.length * encoding.bits & 7) {\n out += '=';\n }\n }\n return out;\n}\n\nexport { base16, base32, base32hex, base64, base64url, codec };\n","\"use strict\";\r\nmodule.exports = asPromise;\r\n\r\n/**\r\n * Callback as used by {@link util.asPromise}.\r\n * @typedef asPromiseCallback\r\n * @type {function}\r\n * @param {Error|null} error Error, if any\r\n * @param {...*} params Additional arguments\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Returns a promise from a node-style callback function.\r\n * @memberof util\r\n * @param {asPromiseCallback} fn Function to call\r\n * @param {*} ctx Function context\r\n * @param {...*} params Function arguments\r\n * @returns {Promise<*>} Promisified function\r\n */\r\nfunction asPromise(fn, ctx/*, varargs */) {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0,\r\n index = 2,\r\n pending = true;\r\n while (index < arguments.length)\r\n params[offset++] = arguments[index++];\r\n return new Promise(function executor(resolve, reject) {\r\n params[offset] = function callback(err/*, varargs */) {\r\n if (pending) {\r\n pending = false;\r\n if (err)\r\n reject(err);\r\n else {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0;\r\n while (offset < params.length)\r\n params[offset++] = arguments[offset];\r\n resolve.apply(null, params);\r\n }\r\n }\r\n };\r\n try {\r\n fn.apply(ctx || null, params);\r\n } catch (err) {\r\n if (pending) {\r\n pending = false;\r\n reject(err);\r\n }\r\n }\r\n });\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal base64 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar base64 = exports;\r\n\r\n/**\r\n * Calculates the byte length of a base64 encoded string.\r\n * @param {string} string Base64 encoded string\r\n * @returns {number} Byte length\r\n */\r\nbase64.length = function length(string) {\r\n var p = string.length;\r\n if (!p)\r\n return 0;\r\n var n = 0;\r\n while (--p % 4 > 1 && string.charAt(p) === \"=\")\r\n ++n;\r\n return Math.ceil(string.length * 3) / 4 - n;\r\n};\r\n\r\n// Base64 encoding table\r\nvar b64 = new Array(64);\r\n\r\n// Base64 decoding table\r\nvar s64 = new Array(123);\r\n\r\n// 65..90, 97..122, 48..57, 43, 47\r\nfor (var i = 0; i < 64;)\r\n s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\r\n\r\n/**\r\n * Encodes a buffer to a base64 encoded string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} Base64 encoded string\r\n */\r\nbase64.encode = function encode(buffer, start, end) {\r\n var parts = null,\r\n chunk = [];\r\n var i = 0, // output index\r\n j = 0, // goto index\r\n t; // temporary\r\n while (start < end) {\r\n var b = buffer[start++];\r\n switch (j) {\r\n case 0:\r\n chunk[i++] = b64[b >> 2];\r\n t = (b & 3) << 4;\r\n j = 1;\r\n break;\r\n case 1:\r\n chunk[i++] = b64[t | b >> 4];\r\n t = (b & 15) << 2;\r\n j = 2;\r\n break;\r\n case 2:\r\n chunk[i++] = b64[t | b >> 6];\r\n chunk[i++] = b64[b & 63];\r\n j = 0;\r\n break;\r\n }\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (j) {\r\n chunk[i++] = b64[t];\r\n chunk[i++] = 61;\r\n if (j === 1)\r\n chunk[i++] = 61;\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\nvar invalidEncoding = \"invalid encoding\";\r\n\r\n/**\r\n * Decodes a base64 encoded string to a buffer.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Number of bytes written\r\n * @throws {Error} If encoding is invalid\r\n */\r\nbase64.decode = function decode(string, buffer, offset) {\r\n var start = offset;\r\n var j = 0, // goto index\r\n t; // temporary\r\n for (var i = 0; i < string.length;) {\r\n var c = string.charCodeAt(i++);\r\n if (c === 61 && j > 1)\r\n break;\r\n if ((c = s64[c]) === undefined)\r\n throw Error(invalidEncoding);\r\n switch (j) {\r\n case 0:\r\n t = c;\r\n j = 1;\r\n break;\r\n case 1:\r\n buffer[offset++] = t << 2 | (c & 48) >> 4;\r\n t = c;\r\n j = 2;\r\n break;\r\n case 2:\r\n buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\r\n t = c;\r\n j = 3;\r\n break;\r\n case 3:\r\n buffer[offset++] = (t & 3) << 6 | c;\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j === 1)\r\n throw Error(invalidEncoding);\r\n return offset - start;\r\n};\r\n\r\n/**\r\n * Tests if the specified string appears to be base64 encoded.\r\n * @param {string} string String to test\r\n * @returns {boolean} `true` if probably base64 encoded, otherwise false\r\n */\r\nbase64.test = function test(string) {\r\n return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string);\r\n};\r\n","\"use strict\";\r\nmodule.exports = EventEmitter;\r\n\r\n/**\r\n * Constructs a new event emitter instance.\r\n * @classdesc A minimal event emitter.\r\n * @memberof util\r\n * @constructor\r\n */\r\nfunction EventEmitter() {\r\n\r\n /**\r\n * Registered listeners.\r\n * @type {Object.}\r\n * @private\r\n */\r\n this._listeners = {};\r\n}\r\n\r\n/**\r\n * Registers an event listener.\r\n * @param {string} evt Event name\r\n * @param {function} fn Listener\r\n * @param {*} [ctx] Listener context\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.on = function on(evt, fn, ctx) {\r\n (this._listeners[evt] || (this._listeners[evt] = [])).push({\r\n fn : fn,\r\n ctx : ctx || this\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes an event listener or any matching listeners if arguments are omitted.\r\n * @param {string} [evt] Event name. Removes all listeners if omitted.\r\n * @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted.\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.off = function off(evt, fn) {\r\n if (evt === undefined)\r\n this._listeners = {};\r\n else {\r\n if (fn === undefined)\r\n this._listeners[evt] = [];\r\n else {\r\n var listeners = this._listeners[evt];\r\n for (var i = 0; i < listeners.length;)\r\n if (listeners[i].fn === fn)\r\n listeners.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emits an event by calling its listeners with the specified arguments.\r\n * @param {string} evt Event name\r\n * @param {...*} args Arguments\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.emit = function emit(evt) {\r\n var listeners = this._listeners[evt];\r\n if (listeners) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n for (i = 0; i < listeners.length;)\r\n listeners[i].fn.apply(listeners[i++].ctx, args);\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\n\r\nmodule.exports = factory(factory);\r\n\r\n/**\r\n * Reads / writes floats / doubles from / to buffers.\r\n * @name util.float\r\n * @namespace\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using little endian byte order.\r\n * @name util.float.writeFloatLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using big endian byte order.\r\n * @name util.float.writeFloatBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using little endian byte order.\r\n * @name util.float.readFloatLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using big endian byte order.\r\n * @name util.float.readFloatBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using little endian byte order.\r\n * @name util.float.writeDoubleLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using big endian byte order.\r\n * @name util.float.writeDoubleBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using little endian byte order.\r\n * @name util.float.readDoubleLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using big endian byte order.\r\n * @name util.float.readDoubleBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n// Factory function for the purpose of node-based testing in modified global environments\r\nfunction factory(exports) {\r\n\r\n // float: typed array\r\n if (typeof Float32Array !== \"undefined\") (function() {\r\n\r\n var f32 = new Float32Array([ -0 ]),\r\n f8b = new Uint8Array(f32.buffer),\r\n le = f8b[3] === 128;\r\n\r\n function writeFloat_f32_cpy(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n }\r\n\r\n function writeFloat_f32_rev(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[3];\r\n buf[pos + 1] = f8b[2];\r\n buf[pos + 2] = f8b[1];\r\n buf[pos + 3] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeFloatLE = le ? writeFloat_f32_cpy : writeFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.writeFloatBE = le ? writeFloat_f32_rev : writeFloat_f32_cpy;\r\n\r\n function readFloat_f32_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n function readFloat_f32_rev(buf, pos) {\r\n f8b[3] = buf[pos ];\r\n f8b[2] = buf[pos + 1];\r\n f8b[1] = buf[pos + 2];\r\n f8b[0] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readFloatLE = le ? readFloat_f32_cpy : readFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.readFloatBE = le ? readFloat_f32_rev : readFloat_f32_cpy;\r\n\r\n // float: ieee754\r\n })(); else (function() {\r\n\r\n function writeFloat_ieee754(writeUint, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0)\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos);\r\n else if (isNaN(val))\r\n writeUint(2143289344, buf, pos);\r\n else if (val > 3.4028234663852886e+38) // +-Infinity\r\n writeUint((sign << 31 | 2139095040) >>> 0, buf, pos);\r\n else if (val < 1.1754943508222875e-38) // denormal\r\n writeUint((sign << 31 | Math.round(val / 1.401298464324817e-45)) >>> 0, buf, pos);\r\n else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2),\r\n mantissa = Math.round(val * Math.pow(2, -exponent) * 8388608) & 8388607;\r\n writeUint((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);\r\n }\r\n }\r\n\r\n exports.writeFloatLE = writeFloat_ieee754.bind(null, writeUintLE);\r\n exports.writeFloatBE = writeFloat_ieee754.bind(null, writeUintBE);\r\n\r\n function readFloat_ieee754(readUint, buf, pos) {\r\n var uint = readUint(buf, pos),\r\n sign = (uint >> 31) * 2 + 1,\r\n exponent = uint >>> 23 & 255,\r\n mantissa = uint & 8388607;\r\n return exponent === 255\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 1.401298464324817e-45 * mantissa\r\n : sign * Math.pow(2, exponent - 150) * (mantissa + 8388608);\r\n }\r\n\r\n exports.readFloatLE = readFloat_ieee754.bind(null, readUintLE);\r\n exports.readFloatBE = readFloat_ieee754.bind(null, readUintBE);\r\n\r\n })();\r\n\r\n // double: typed array\r\n if (typeof Float64Array !== \"undefined\") (function() {\r\n\r\n var f64 = new Float64Array([-0]),\r\n f8b = new Uint8Array(f64.buffer),\r\n le = f8b[7] === 128;\r\n\r\n function writeDouble_f64_cpy(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n buf[pos + 4] = f8b[4];\r\n buf[pos + 5] = f8b[5];\r\n buf[pos + 6] = f8b[6];\r\n buf[pos + 7] = f8b[7];\r\n }\r\n\r\n function writeDouble_f64_rev(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[7];\r\n buf[pos + 1] = f8b[6];\r\n buf[pos + 2] = f8b[5];\r\n buf[pos + 3] = f8b[4];\r\n buf[pos + 4] = f8b[3];\r\n buf[pos + 5] = f8b[2];\r\n buf[pos + 6] = f8b[1];\r\n buf[pos + 7] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeDoubleLE = le ? writeDouble_f64_cpy : writeDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.writeDoubleBE = le ? writeDouble_f64_rev : writeDouble_f64_cpy;\r\n\r\n function readDouble_f64_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n f8b[4] = buf[pos + 4];\r\n f8b[5] = buf[pos + 5];\r\n f8b[6] = buf[pos + 6];\r\n f8b[7] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n function readDouble_f64_rev(buf, pos) {\r\n f8b[7] = buf[pos ];\r\n f8b[6] = buf[pos + 1];\r\n f8b[5] = buf[pos + 2];\r\n f8b[4] = buf[pos + 3];\r\n f8b[3] = buf[pos + 4];\r\n f8b[2] = buf[pos + 5];\r\n f8b[1] = buf[pos + 6];\r\n f8b[0] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readDoubleLE = le ? readDouble_f64_cpy : readDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.readDoubleBE = le ? readDouble_f64_rev : readDouble_f64_cpy;\r\n\r\n // double: ieee754\r\n })(); else (function() {\r\n\r\n function writeDouble_ieee754(writeUint, off0, off1, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + off1);\r\n } else if (isNaN(val)) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(2146959360, buf, pos + off1);\r\n } else if (val > 1.7976931348623157e+308) { // +-Infinity\r\n writeUint(0, buf, pos + off0);\r\n writeUint((sign << 31 | 2146435072) >>> 0, buf, pos + off1);\r\n } else {\r\n var mantissa;\r\n if (val < 2.2250738585072014e-308) { // denormal\r\n mantissa = val / 5e-324;\r\n writeUint(mantissa >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + off1);\r\n } else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2);\r\n if (exponent === 1024)\r\n exponent = 1023;\r\n mantissa = val * Math.pow(2, -exponent);\r\n writeUint(mantissa * 4503599627370496 >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + off1);\r\n }\r\n }\r\n }\r\n\r\n exports.writeDoubleLE = writeDouble_ieee754.bind(null, writeUintLE, 0, 4);\r\n exports.writeDoubleBE = writeDouble_ieee754.bind(null, writeUintBE, 4, 0);\r\n\r\n function readDouble_ieee754(readUint, off0, off1, buf, pos) {\r\n var lo = readUint(buf, pos + off0),\r\n hi = readUint(buf, pos + off1);\r\n var sign = (hi >> 31) * 2 + 1,\r\n exponent = hi >>> 20 & 2047,\r\n mantissa = 4294967296 * (hi & 1048575) + lo;\r\n return exponent === 2047\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 5e-324 * mantissa\r\n : sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496);\r\n }\r\n\r\n exports.readDoubleLE = readDouble_ieee754.bind(null, readUintLE, 0, 4);\r\n exports.readDoubleBE = readDouble_ieee754.bind(null, readUintBE, 4, 0);\r\n\r\n })();\r\n\r\n return exports;\r\n}\r\n\r\n// uint helpers\r\n\r\nfunction writeUintLE(val, buf, pos) {\r\n buf[pos ] = val & 255;\r\n buf[pos + 1] = val >>> 8 & 255;\r\n buf[pos + 2] = val >>> 16 & 255;\r\n buf[pos + 3] = val >>> 24;\r\n}\r\n\r\nfunction writeUintBE(val, buf, pos) {\r\n buf[pos ] = val >>> 24;\r\n buf[pos + 1] = val >>> 16 & 255;\r\n buf[pos + 2] = val >>> 8 & 255;\r\n buf[pos + 3] = val & 255;\r\n}\r\n\r\nfunction readUintLE(buf, pos) {\r\n return (buf[pos ]\r\n | buf[pos + 1] << 8\r\n | buf[pos + 2] << 16\r\n | buf[pos + 3] << 24) >>> 0;\r\n}\r\n\r\nfunction readUintBE(buf, pos) {\r\n return (buf[pos ] << 24\r\n | buf[pos + 1] << 16\r\n | buf[pos + 2] << 8\r\n | buf[pos + 3]) >>> 0;\r\n}\r\n","\"use strict\";\r\nmodule.exports = inquire;\r\n\r\n/**\r\n * Requires a module only if available.\r\n * @memberof util\r\n * @param {string} moduleName Module to require\r\n * @returns {?Object} Required module if available and not empty, otherwise `null`\r\n */\r\nfunction inquire(moduleName) {\r\n try {\r\n var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval\r\n if (mod && (mod.length || Object.keys(mod).length))\r\n return mod;\r\n } catch (e) {} // eslint-disable-line no-empty\r\n return null;\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal UTF8 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar utf8 = exports;\r\n\r\n/**\r\n * Calculates the UTF8 byte length of a string.\r\n * @param {string} string String\r\n * @returns {number} Byte length\r\n */\r\nutf8.length = function utf8_length(string) {\r\n var len = 0,\r\n c = 0;\r\n for (var i = 0; i < string.length; ++i) {\r\n c = string.charCodeAt(i);\r\n if (c < 128)\r\n len += 1;\r\n else if (c < 2048)\r\n len += 2;\r\n else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\r\n ++i;\r\n len += 4;\r\n } else\r\n len += 3;\r\n }\r\n return len;\r\n};\r\n\r\n/**\r\n * Reads UTF8 bytes as a string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} String read\r\n */\r\nutf8.read = function utf8_read(buffer, start, end) {\r\n var len = end - start;\r\n if (len < 1)\r\n return \"\";\r\n var parts = null,\r\n chunk = [],\r\n i = 0, // char offset\r\n t; // temporary\r\n while (start < end) {\r\n t = buffer[start++];\r\n if (t < 128)\r\n chunk[i++] = t;\r\n else if (t > 191 && t < 224)\r\n chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\r\n else if (t > 239 && t < 365) {\r\n t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;\r\n chunk[i++] = 0xD800 + (t >> 10);\r\n chunk[i++] = 0xDC00 + (t & 1023);\r\n } else\r\n chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\n/**\r\n * Writes a string as UTF8 bytes.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Bytes written\r\n */\r\nutf8.write = function utf8_write(string, buffer, offset) {\r\n var start = offset,\r\n c1, // character 1\r\n c2; // character 2\r\n for (var i = 0; i < string.length; ++i) {\r\n c1 = string.charCodeAt(i);\r\n if (c1 < 128) {\r\n buffer[offset++] = c1;\r\n } else if (c1 < 2048) {\r\n buffer[offset++] = c1 >> 6 | 192;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\r\n c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\r\n ++i;\r\n buffer[offset++] = c1 >> 18 | 240;\r\n buffer[offset++] = c1 >> 12 & 63 | 128;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else {\r\n buffer[offset++] = c1 >> 12 | 224;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n }\r\n }\r\n return offset - start;\r\n};\r\n","\"use strict\";\r\nmodule.exports = pool;\r\n\r\n/**\r\n * An allocator as used by {@link util.pool}.\r\n * @typedef PoolAllocator\r\n * @type {function}\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\n\r\n/**\r\n * A slicer as used by {@link util.pool}.\r\n * @typedef PoolSlicer\r\n * @type {function}\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {Uint8Array} Buffer slice\r\n * @this {Uint8Array}\r\n */\r\n\r\n/**\r\n * A general purpose buffer pool.\r\n * @memberof util\r\n * @function\r\n * @param {PoolAllocator} alloc Allocator\r\n * @param {PoolSlicer} slice Slicer\r\n * @param {number} [size=8192] Slab size\r\n * @returns {PoolAllocator} Pooled allocator\r\n */\r\nfunction pool(alloc, slice, size) {\r\n var SIZE = size || 8192;\r\n var MAX = SIZE >>> 1;\r\n var slab = null;\r\n var offset = SIZE;\r\n return function pool_alloc(size) {\r\n if (size < 1 || size > MAX)\r\n return alloc(size);\r\n if (offset + size > SIZE) {\r\n slab = alloc(SIZE);\r\n offset = 0;\r\n }\r\n var buf = slice.call(slab, offset, offset += size);\r\n if (offset & 7) // align to 32 bit\r\n offset = (offset | 7) + 1;\r\n return buf;\r\n };\r\n}\r\n","\"use strict\";\nmodule.exports = LongBits;\n\nvar util = require(\"../util/minimal\");\n\n/**\n * Constructs new long bits.\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\n * @memberof util\n * @constructor\n * @param {number} lo Low 32 bits, unsigned\n * @param {number} hi High 32 bits, unsigned\n */\nfunction LongBits(lo, hi) {\n\n // note that the casts below are theoretically unnecessary as of today, but older statically\n // generated converter code might still call the ctor with signed 32bits. kept for compat.\n\n /**\n * Low bits.\n * @type {number}\n */\n this.lo = lo >>> 0;\n\n /**\n * High bits.\n * @type {number}\n */\n this.hi = hi >>> 0;\n}\n\n/**\n * Zero bits.\n * @memberof util.LongBits\n * @type {util.LongBits}\n */\nvar zero = LongBits.zero = new LongBits(0, 0);\n\nzero.toNumber = function() { return 0; };\nzero.zzEncode = zero.zzDecode = function() { return this; };\nzero.length = function() { return 1; };\n\n/**\n * Zero hash.\n * @memberof util.LongBits\n * @type {string}\n */\nvar zeroHash = LongBits.zeroHash = \"\\0\\0\\0\\0\\0\\0\\0\\0\";\n\n/**\n * Constructs new long bits from the specified number.\n * @param {number} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.fromNumber = function fromNumber(value) {\n if (value === 0)\n return zero;\n var sign = value < 0;\n if (sign)\n value = -value;\n var lo = value >>> 0,\n hi = (value - lo) / 4294967296 >>> 0;\n if (sign) {\n hi = ~hi >>> 0;\n lo = ~lo >>> 0;\n if (++lo > 4294967295) {\n lo = 0;\n if (++hi > 4294967295)\n hi = 0;\n }\n }\n return new LongBits(lo, hi);\n};\n\n/**\n * Constructs new long bits from a number, long or string.\n * @param {Long|number|string} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.from = function from(value) {\n if (typeof value === \"number\")\n return LongBits.fromNumber(value);\n if (util.isString(value)) {\n /* istanbul ignore else */\n if (util.Long)\n value = util.Long.fromString(value);\n else\n return LongBits.fromNumber(parseInt(value, 10));\n }\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\n};\n\n/**\n * Converts this long bits to a possibly unsafe JavaScript number.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {number} Possibly unsafe number\n */\nLongBits.prototype.toNumber = function toNumber(unsigned) {\n if (!unsigned && this.hi >>> 31) {\n var lo = ~this.lo + 1 >>> 0,\n hi = ~this.hi >>> 0;\n if (!lo)\n hi = hi + 1 >>> 0;\n return -(lo + hi * 4294967296);\n }\n return this.lo + this.hi * 4294967296;\n};\n\n/**\n * Converts this long bits to a long.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long} Long\n */\nLongBits.prototype.toLong = function toLong(unsigned) {\n return util.Long\n ? new util.Long(this.lo | 0, this.hi | 0, Boolean(unsigned))\n /* istanbul ignore next */\n : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) };\n};\n\nvar charCodeAt = String.prototype.charCodeAt;\n\n/**\n * Constructs new long bits from the specified 8 characters long hash.\n * @param {string} hash Hash\n * @returns {util.LongBits} Bits\n */\nLongBits.fromHash = function fromHash(hash) {\n if (hash === zeroHash)\n return zero;\n return new LongBits(\n ( charCodeAt.call(hash, 0)\n | charCodeAt.call(hash, 1) << 8\n | charCodeAt.call(hash, 2) << 16\n | charCodeAt.call(hash, 3) << 24) >>> 0\n ,\n ( charCodeAt.call(hash, 4)\n | charCodeAt.call(hash, 5) << 8\n | charCodeAt.call(hash, 6) << 16\n | charCodeAt.call(hash, 7) << 24) >>> 0\n );\n};\n\n/**\n * Converts this long bits to a 8 characters long hash.\n * @returns {string} Hash\n */\nLongBits.prototype.toHash = function toHash() {\n return String.fromCharCode(\n this.lo & 255,\n this.lo >>> 8 & 255,\n this.lo >>> 16 & 255,\n this.lo >>> 24 ,\n this.hi & 255,\n this.hi >>> 8 & 255,\n this.hi >>> 16 & 255,\n this.hi >>> 24\n );\n};\n\n/**\n * Zig-zag encodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzEncode = function zzEncode() {\n var mask = this.hi >> 31;\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Zig-zag decodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzDecode = function zzDecode() {\n var mask = -(this.lo & 1);\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Calculates the length of this longbits when encoded as a varint.\n * @returns {number} Length\n */\nLongBits.prototype.length = function length() {\n var part0 = this.lo,\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\n part2 = this.hi >>> 24;\n return part2 === 0\n ? part1 === 0\n ? part0 < 16384\n ? part0 < 128 ? 1 : 2\n : part0 < 2097152 ? 3 : 4\n : part1 < 16384\n ? part1 < 128 ? 5 : 6\n : part1 < 2097152 ? 7 : 8\n : part2 < 128 ? 9 : 10;\n};\n","\"use strict\";\nvar util = exports;\n\n// used to return a Promise where callback is omitted\nutil.asPromise = require(\"@protobufjs/aspromise\");\n\n// converts to / from base64 encoded strings\nutil.base64 = require(\"@protobufjs/base64\");\n\n// base class of rpc.Service\nutil.EventEmitter = require(\"@protobufjs/eventemitter\");\n\n// float handling accross browsers\nutil.float = require(\"@protobufjs/float\");\n\n// requires modules optionally and hides the call from bundlers\nutil.inquire = require(\"@protobufjs/inquire\");\n\n// converts to / from utf8 encoded strings\nutil.utf8 = require(\"@protobufjs/utf8\");\n\n// provides a node-like buffer pool in the browser\nutil.pool = require(\"@protobufjs/pool\");\n\n// utility to work with the low and high bits of a 64 bit value\nutil.LongBits = require(\"./longbits\");\n\n/**\n * Whether running within node or not.\n * @memberof util\n * @type {boolean}\n */\nutil.isNode = Boolean(typeof global !== \"undefined\"\n && global\n && global.process\n && global.process.versions\n && global.process.versions.node);\n\n/**\n * Global object reference.\n * @memberof util\n * @type {Object}\n */\nutil.global = util.isNode && global\n || typeof window !== \"undefined\" && window\n || typeof self !== \"undefined\" && self\n || this; // eslint-disable-line no-invalid-this\n\n/**\n * An immuable empty array.\n * @memberof util\n * @type {Array.<*>}\n * @const\n */\nutil.emptyArray = Object.freeze ? Object.freeze([]) : /* istanbul ignore next */ []; // used on prototypes\n\n/**\n * An immutable empty object.\n * @type {Object}\n * @const\n */\nutil.emptyObject = Object.freeze ? Object.freeze({}) : /* istanbul ignore next */ {}; // used on prototypes\n\n/**\n * Tests if the specified value is an integer.\n * @function\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is an integer\n */\nutil.isInteger = Number.isInteger || /* istanbul ignore next */ function isInteger(value) {\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\n};\n\n/**\n * Tests if the specified value is a string.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a string\n */\nutil.isString = function isString(value) {\n return typeof value === \"string\" || value instanceof String;\n};\n\n/**\n * Tests if the specified value is a non-null object.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a non-null object\n */\nutil.isObject = function isObject(value) {\n return value && typeof value === \"object\";\n};\n\n/**\n * Checks if a property on a message is considered to be present.\n * This is an alias of {@link util.isSet}.\n * @function\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isset =\n\n/**\n * Checks if a property on a message is considered to be present.\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isSet = function isSet(obj, prop) {\n var value = obj[prop];\n if (value != null && obj.hasOwnProperty(prop)) // eslint-disable-line eqeqeq, no-prototype-builtins\n return typeof value !== \"object\" || (Array.isArray(value) ? value.length : Object.keys(value).length) > 0;\n return false;\n};\n\n/**\n * Any compatible Buffer instance.\n * This is a minimal stand-alone definition of a Buffer instance. The actual type is that exported by node's typings.\n * @interface Buffer\n * @extends Uint8Array\n */\n\n/**\n * Node's Buffer class if available.\n * @type {Constructor}\n */\nutil.Buffer = (function() {\n try {\n var Buffer = util.inquire(\"buffer\").Buffer;\n // refuse to use non-node buffers if not explicitly assigned (perf reasons):\n return Buffer.prototype.utf8Write ? Buffer : /* istanbul ignore next */ null;\n } catch (e) {\n /* istanbul ignore next */\n return null;\n }\n})();\n\n// Internal alias of or polyfull for Buffer.from.\nutil._Buffer_from = null;\n\n// Internal alias of or polyfill for Buffer.allocUnsafe.\nutil._Buffer_allocUnsafe = null;\n\n/**\n * Creates a new buffer of whatever type supported by the environment.\n * @param {number|number[]} [sizeOrArray=0] Buffer size or number array\n * @returns {Uint8Array|Buffer} Buffer\n */\nutil.newBuffer = function newBuffer(sizeOrArray) {\n /* istanbul ignore next */\n return typeof sizeOrArray === \"number\"\n ? util.Buffer\n ? util._Buffer_allocUnsafe(sizeOrArray)\n : new util.Array(sizeOrArray)\n : util.Buffer\n ? util._Buffer_from(sizeOrArray)\n : typeof Uint8Array === \"undefined\"\n ? sizeOrArray\n : new Uint8Array(sizeOrArray);\n};\n\n/**\n * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`.\n * @type {Constructor}\n */\nutil.Array = typeof Uint8Array !== \"undefined\" ? Uint8Array /* istanbul ignore next */ : Array;\n\n/**\n * Any compatible Long instance.\n * This is a minimal stand-alone definition of a Long instance. The actual type is that exported by long.js.\n * @interface Long\n * @property {number} low Low bits\n * @property {number} high High bits\n * @property {boolean} unsigned Whether unsigned or not\n */\n\n/**\n * Long.js's Long class if available.\n * @type {Constructor}\n */\nutil.Long = /* istanbul ignore next */ util.global.dcodeIO && /* istanbul ignore next */ util.global.dcodeIO.Long\n || /* istanbul ignore next */ util.global.Long\n || util.inquire(\"long\");\n\n/**\n * Regular expression used to verify 2 bit (`bool`) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key2Re = /^true|false|0|1$/;\n\n/**\n * Regular expression used to verify 32 bit (`int32` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key32Re = /^-?(?:0|[1-9][0-9]*)$/;\n\n/**\n * Regular expression used to verify 64 bit (`int64` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key64Re = /^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;\n\n/**\n * Converts a number or long to an 8 characters long hash string.\n * @param {Long|number} value Value to convert\n * @returns {string} Hash\n */\nutil.longToHash = function longToHash(value) {\n return value\n ? util.LongBits.from(value).toHash()\n : util.LongBits.zeroHash;\n};\n\n/**\n * Converts an 8 characters long hash string to a long or number.\n * @param {string} hash Hash\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long|number} Original value\n */\nutil.longFromHash = function longFromHash(hash, unsigned) {\n var bits = util.LongBits.fromHash(hash);\n if (util.Long)\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\n return bits.toNumber(Boolean(unsigned));\n};\n\n/**\n * Merges the properties of the source object into the destination object.\n * @memberof util\n * @param {Object.} dst Destination object\n * @param {Object.} src Source object\n * @param {boolean} [ifNotSet=false] Merges only if the key is not already set\n * @returns {Object.} Destination object\n */\nfunction merge(dst, src, ifNotSet) { // used by converters\n for (var keys = Object.keys(src), i = 0; i < keys.length; ++i)\n if (dst[keys[i]] === undefined || !ifNotSet)\n dst[keys[i]] = src[keys[i]];\n return dst;\n}\n\nutil.merge = merge;\n\n/**\n * Converts the first character of a string to lower case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.lcFirst = function lcFirst(str) {\n return str.charAt(0).toLowerCase() + str.substring(1);\n};\n\n/**\n * Creates a custom error constructor.\n * @memberof util\n * @param {string} name Error name\n * @returns {Constructor} Custom error constructor\n */\nfunction newError(name) {\n\n function CustomError(message, properties) {\n\n if (!(this instanceof CustomError))\n return new CustomError(message, properties);\n\n // Error.call(this, message);\n // ^ just returns a new error instance because the ctor can be called as a function\n\n Object.defineProperty(this, \"message\", { get: function() { return message; } });\n\n /* istanbul ignore next */\n if (Error.captureStackTrace) // node\n Error.captureStackTrace(this, CustomError);\n else\n Object.defineProperty(this, \"stack\", { value: new Error().stack || \"\" });\n\n if (properties)\n merge(this, properties);\n }\n\n CustomError.prototype = Object.create(Error.prototype, {\n constructor: {\n value: CustomError,\n writable: true,\n enumerable: false,\n configurable: true,\n },\n name: {\n get: function get() { return name; },\n set: undefined,\n enumerable: false,\n // configurable: false would accurately preserve the behavior of\n // the original, but I'm guessing that was not intentional.\n // For an actual error subclass, this property would\n // be configurable.\n configurable: true,\n },\n toString: {\n value: function value() { return this.name + \": \" + this.message; },\n writable: true,\n enumerable: false,\n configurable: true,\n },\n });\n\n return CustomError;\n}\n\nutil.newError = newError;\n\n/**\n * Constructs a new protocol error.\n * @classdesc Error subclass indicating a protocol specifc error.\n * @memberof util\n * @extends Error\n * @template T extends Message\n * @constructor\n * @param {string} message Error message\n * @param {Object.} [properties] Additional properties\n * @example\n * try {\n * MyMessage.decode(someBuffer); // throws if required fields are missing\n * } catch (e) {\n * if (e instanceof ProtocolError && e.instance)\n * console.log(\"decoded so far: \" + JSON.stringify(e.instance));\n * }\n */\nutil.ProtocolError = newError(\"ProtocolError\");\n\n/**\n * So far decoded message instance.\n * @name util.ProtocolError#instance\n * @type {Message}\n */\n\n/**\n * A OneOf getter as returned by {@link util.oneOfGetter}.\n * @typedef OneOfGetter\n * @type {function}\n * @returns {string|undefined} Set field name, if any\n */\n\n/**\n * Builds a getter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfGetter} Unbound getter\n */\nutil.oneOfGetter = function getOneOf(fieldNames) {\n var fieldMap = {};\n for (var i = 0; i < fieldNames.length; ++i)\n fieldMap[fieldNames[i]] = 1;\n\n /**\n * @returns {string|undefined} Set field name, if any\n * @this Object\n * @ignore\n */\n return function() { // eslint-disable-line consistent-return\n for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\n if (fieldMap[keys[i]] === 1 && this[keys[i]] !== undefined && this[keys[i]] !== null)\n return keys[i];\n };\n};\n\n/**\n * A OneOf setter as returned by {@link util.oneOfSetter}.\n * @typedef OneOfSetter\n * @type {function}\n * @param {string|undefined} value Field name\n * @returns {undefined}\n */\n\n/**\n * Builds a setter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfSetter} Unbound setter\n */\nutil.oneOfSetter = function setOneOf(fieldNames) {\n\n /**\n * @param {string} name Field name\n * @returns {undefined}\n * @this Object\n * @ignore\n */\n return function(name) {\n for (var i = 0; i < fieldNames.length; ++i)\n if (fieldNames[i] !== name)\n delete this[fieldNames[i]];\n };\n};\n\n/**\n * Default conversion options used for {@link Message#toJSON} implementations.\n *\n * These options are close to proto3's JSON mapping with the exception that internal types like Any are handled just like messages. More precisely:\n *\n * - Longs become strings\n * - Enums become string keys\n * - Bytes become base64 encoded strings\n * - (Sub-)Messages become plain objects\n * - Maps become plain objects with all string keys\n * - Repeated fields become arrays\n * - NaN and Infinity for float and double fields become strings\n *\n * @type {IConversionOptions}\n * @see https://developers.google.com/protocol-buffers/docs/proto3?hl=en#json\n */\nutil.toJSONOptions = {\n longs: String,\n enums: String,\n bytes: String,\n json: true\n};\n\n// Sets up buffer utility according to the environment (called in index-minimal)\nutil._configure = function() {\n var Buffer = util.Buffer;\n /* istanbul ignore if */\n if (!Buffer) {\n util._Buffer_from = util._Buffer_allocUnsafe = null;\n return;\n }\n // because node 4.x buffers are incompatible & immutable\n // see: https://github.com/dcodeIO/protobuf.js/pull/665\n util._Buffer_from = Buffer.from !== Uint8Array.from && Buffer.from ||\n /* istanbul ignore next */\n function Buffer_from(value, encoding) {\n return new Buffer(value, encoding);\n };\n util._Buffer_allocUnsafe = Buffer.allocUnsafe ||\n /* istanbul ignore next */\n function Buffer_allocUnsafe(size) {\n return new Buffer(size);\n };\n};\n","\"use strict\";\nmodule.exports = Writer;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferWriter; // cyclic\n\nvar LongBits = util.LongBits,\n base64 = util.base64,\n utf8 = util.utf8;\n\n/**\n * Constructs a new writer operation instance.\n * @classdesc Scheduled writer operation.\n * @constructor\n * @param {function(*, Uint8Array, number)} fn Function to call\n * @param {number} len Value byte length\n * @param {*} val Value to write\n * @ignore\n */\nfunction Op(fn, len, val) {\n\n /**\n * Function to call.\n * @type {function(Uint8Array, number, *)}\n */\n this.fn = fn;\n\n /**\n * Value byte length.\n * @type {number}\n */\n this.len = len;\n\n /**\n * Next operation.\n * @type {Writer.Op|undefined}\n */\n this.next = undefined;\n\n /**\n * Value to write.\n * @type {*}\n */\n this.val = val; // type varies\n}\n\n/* istanbul ignore next */\nfunction noop() {} // eslint-disable-line no-empty-function\n\n/**\n * Constructs a new writer state instance.\n * @classdesc Copied writer state.\n * @memberof Writer\n * @constructor\n * @param {Writer} writer Writer to copy state from\n * @ignore\n */\nfunction State(writer) {\n\n /**\n * Current head.\n * @type {Writer.Op}\n */\n this.head = writer.head;\n\n /**\n * Current tail.\n * @type {Writer.Op}\n */\n this.tail = writer.tail;\n\n /**\n * Current buffer length.\n * @type {number}\n */\n this.len = writer.len;\n\n /**\n * Next state.\n * @type {State|null}\n */\n this.next = writer.states;\n}\n\n/**\n * Constructs a new writer instance.\n * @classdesc Wire format writer using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n */\nfunction Writer() {\n\n /**\n * Current length.\n * @type {number}\n */\n this.len = 0;\n\n /**\n * Operations head.\n * @type {Object}\n */\n this.head = new Op(noop, 0, 0);\n\n /**\n * Operations tail\n * @type {Object}\n */\n this.tail = this.head;\n\n /**\n * Linked forked states.\n * @type {Object|null}\n */\n this.states = null;\n\n // When a value is written, the writer calculates its byte length and puts it into a linked\n // list of operations to perform when finish() is called. This both allows us to allocate\n // buffers of the exact required size and reduces the amount of work we have to do compared\n // to first calculating over objects and then encoding over objects. In our case, the encoding\n // part is just a linked list walk calling operations with already prepared values.\n}\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup() {\n return (Writer.create = function create_buffer() {\n return new BufferWriter();\n })();\n }\n /* istanbul ignore next */\n : function create_array() {\n return new Writer();\n };\n};\n\n/**\n * Creates a new writer.\n * @function\n * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer}\n */\nWriter.create = create();\n\n/**\n * Allocates a buffer of the specified size.\n * @param {number} size Buffer size\n * @returns {Uint8Array} Buffer\n */\nWriter.alloc = function alloc(size) {\n return new util.Array(size);\n};\n\n// Use Uint8Array buffer pool in the browser, just like node does with buffers\n/* istanbul ignore else */\nif (util.Array !== Array)\n Writer.alloc = util.pool(Writer.alloc, util.Array.prototype.subarray);\n\n/**\n * Pushes a new operation to the queue.\n * @param {function(Uint8Array, number, *)} fn Function to call\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @returns {Writer} `this`\n * @private\n */\nWriter.prototype._push = function push(fn, len, val) {\n this.tail = this.tail.next = new Op(fn, len, val);\n this.len += len;\n return this;\n};\n\nfunction writeByte(val, buf, pos) {\n buf[pos] = val & 255;\n}\n\nfunction writeVarint32(val, buf, pos) {\n while (val > 127) {\n buf[pos++] = val & 127 | 128;\n val >>>= 7;\n }\n buf[pos] = val;\n}\n\n/**\n * Constructs a new varint writer operation instance.\n * @classdesc Scheduled varint writer operation.\n * @extends Op\n * @constructor\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @ignore\n */\nfunction VarintOp(len, val) {\n this.len = len;\n this.next = undefined;\n this.val = val;\n}\n\nVarintOp.prototype = Object.create(Op.prototype);\nVarintOp.prototype.fn = writeVarint32;\n\n/**\n * Writes an unsigned 32 bit value as a varint.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.uint32 = function write_uint32(value) {\n // here, the call to this.push has been inlined and a varint specific Op subclass is used.\n // uint32 is by far the most frequently used operation and benefits significantly from this.\n this.len += (this.tail = this.tail.next = new VarintOp(\n (value = value >>> 0)\n < 128 ? 1\n : value < 16384 ? 2\n : value < 2097152 ? 3\n : value < 268435456 ? 4\n : 5,\n value)).len;\n return this;\n};\n\n/**\n * Writes a signed 32 bit value as a varint.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.int32 = function write_int32(value) {\n return value < 0\n ? this._push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\n : this.uint32(value);\n};\n\n/**\n * Writes a 32 bit value as a varint, zig-zag encoded.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sint32 = function write_sint32(value) {\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\n};\n\nfunction writeVarint64(val, buf, pos) {\n while (val.hi) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\n val.hi >>>= 7;\n }\n while (val.lo > 127) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = val.lo >>> 7;\n }\n buf[pos++] = val.lo;\n}\n\n/**\n * Writes an unsigned 64 bit value as a varint.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.uint64 = function write_uint64(value) {\n var bits = LongBits.from(value);\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a signed 64 bit value as a varint.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.int64 = Writer.prototype.uint64;\n\n/**\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sint64 = function write_sint64(value) {\n var bits = LongBits.from(value).zzEncode();\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a boolish value as a varint.\n * @param {boolean} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bool = function write_bool(value) {\n return this._push(writeByte, 1, value ? 1 : 0);\n};\n\nfunction writeFixed32(val, buf, pos) {\n buf[pos ] = val & 255;\n buf[pos + 1] = val >>> 8 & 255;\n buf[pos + 2] = val >>> 16 & 255;\n buf[pos + 3] = val >>> 24;\n}\n\n/**\n * Writes an unsigned 32 bit value as fixed 32 bits.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.fixed32 = function write_fixed32(value) {\n return this._push(writeFixed32, 4, value >>> 0);\n};\n\n/**\n * Writes a signed 32 bit value as fixed 32 bits.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sfixed32 = Writer.prototype.fixed32;\n\n/**\n * Writes an unsigned 64 bit value as fixed 64 bits.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.fixed64 = function write_fixed64(value) {\n var bits = LongBits.from(value);\n return this._push(writeFixed32, 4, bits.lo)._push(writeFixed32, 4, bits.hi);\n};\n\n/**\n * Writes a signed 64 bit value as fixed 64 bits.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sfixed64 = Writer.prototype.fixed64;\n\n/**\n * Writes a float (32 bit).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.float = function write_float(value) {\n return this._push(util.float.writeFloatLE, 4, value);\n};\n\n/**\n * Writes a double (64 bit float).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.double = function write_double(value) {\n return this._push(util.float.writeDoubleLE, 8, value);\n};\n\nvar writeBytes = util.Array.prototype.set\n ? function writeBytes_set(val, buf, pos) {\n buf.set(val, pos); // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytes_for(val, buf, pos) {\n for (var i = 0; i < val.length; ++i)\n buf[pos + i] = val[i];\n };\n\n/**\n * Writes a sequence of bytes.\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bytes = function write_bytes(value) {\n var len = value.length >>> 0;\n if (!len)\n return this._push(writeByte, 1, 0);\n if (util.isString(value)) {\n var buf = Writer.alloc(len = base64.length(value));\n base64.decode(value, buf, 0);\n value = buf;\n }\n return this.uint32(len)._push(writeBytes, len, value);\n};\n\n/**\n * Writes a string.\n * @param {string} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.string = function write_string(value) {\n var len = utf8.length(value);\n return len\n ? this.uint32(len)._push(utf8.write, len, value)\n : this._push(writeByte, 1, 0);\n};\n\n/**\n * Forks this writer's state by pushing it to a stack.\n * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state.\n * @returns {Writer} `this`\n */\nWriter.prototype.fork = function fork() {\n this.states = new State(this);\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n return this;\n};\n\n/**\n * Resets this instance to the last state.\n * @returns {Writer} `this`\n */\nWriter.prototype.reset = function reset() {\n if (this.states) {\n this.head = this.states.head;\n this.tail = this.states.tail;\n this.len = this.states.len;\n this.states = this.states.next;\n } else {\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n }\n return this;\n};\n\n/**\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\n * @returns {Writer} `this`\n */\nWriter.prototype.ldelim = function ldelim() {\n var head = this.head,\n tail = this.tail,\n len = this.len;\n this.reset().uint32(len);\n if (len) {\n this.tail.next = head.next; // skip noop\n this.tail = tail;\n this.len += len;\n }\n return this;\n};\n\n/**\n * Finishes the write operation.\n * @returns {Uint8Array} Finished buffer\n */\nWriter.prototype.finish = function finish() {\n var head = this.head.next, // skip noop\n buf = this.constructor.alloc(this.len),\n pos = 0;\n while (head) {\n head.fn(head.val, buf, pos);\n pos += head.len;\n head = head.next;\n }\n // this.head = this.tail = null;\n return buf;\n};\n\nWriter._configure = function(BufferWriter_) {\n BufferWriter = BufferWriter_;\n Writer.create = create();\n BufferWriter._configure();\n};\n","\"use strict\";\nmodule.exports = BufferWriter;\n\n// extends Writer\nvar Writer = require(\"./writer\");\n(BufferWriter.prototype = Object.create(Writer.prototype)).constructor = BufferWriter;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer writer instance.\n * @classdesc Wire format writer using node buffers.\n * @extends Writer\n * @constructor\n */\nfunction BufferWriter() {\n Writer.call(this);\n}\n\nBufferWriter._configure = function () {\n /**\n * Allocates a buffer of the specified size.\n * @function\n * @param {number} size Buffer size\n * @returns {Buffer} Buffer\n */\n BufferWriter.alloc = util._Buffer_allocUnsafe;\n\n BufferWriter.writeBytesBuffer = util.Buffer && util.Buffer.prototype instanceof Uint8Array && util.Buffer.prototype.set.name === \"set\"\n ? function writeBytesBuffer_set(val, buf, pos) {\n buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited)\n // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytesBuffer_copy(val, buf, pos) {\n if (val.copy) // Buffer values\n val.copy(buf, pos, 0, val.length);\n else for (var i = 0; i < val.length;) // plain array values\n buf[pos++] = val[i++];\n };\n};\n\n\n/**\n * @override\n */\nBufferWriter.prototype.bytes = function write_bytes_buffer(value) {\n if (util.isString(value))\n value = util._Buffer_from(value, \"base64\");\n var len = value.length >>> 0;\n this.uint32(len);\n if (len)\n this._push(BufferWriter.writeBytesBuffer, len, value);\n return this;\n};\n\nfunction writeStringBuffer(val, buf, pos) {\n if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions)\n util.utf8.write(val, buf, pos);\n else if (buf.utf8Write)\n buf.utf8Write(val, pos);\n else\n buf.write(val, pos);\n}\n\n/**\n * @override\n */\nBufferWriter.prototype.string = function write_string_buffer(value) {\n var len = util.Buffer.byteLength(value);\n this.uint32(len);\n if (len)\n this._push(writeStringBuffer, len, value);\n return this;\n};\n\n\n/**\n * Finishes the write operation.\n * @name BufferWriter#finish\n * @function\n * @returns {Buffer} Finished buffer\n */\n\nBufferWriter._configure();\n","\"use strict\";\nmodule.exports = Reader;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferReader; // cyclic\n\nvar LongBits = util.LongBits,\n utf8 = util.utf8;\n\n/* istanbul ignore next */\nfunction indexOutOfRange(reader, writeLength) {\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\n}\n\n/**\n * Constructs a new reader instance using the specified buffer.\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n * @param {Uint8Array} buffer Buffer to read from\n */\nfunction Reader(buffer) {\n\n /**\n * Read buffer.\n * @type {Uint8Array}\n */\n this.buf = buffer;\n\n /**\n * Read buffer position.\n * @type {number}\n */\n this.pos = 0;\n\n /**\n * Read buffer length.\n * @type {number}\n */\n this.len = buffer.length;\n}\n\nvar create_array = typeof Uint8Array !== \"undefined\"\n ? function create_typed_array(buffer) {\n if (buffer instanceof Uint8Array || Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n }\n /* istanbul ignore next */\n : function create_array(buffer) {\n if (Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n };\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup(buffer) {\n return (Reader.create = function create_buffer(buffer) {\n return util.Buffer.isBuffer(buffer)\n ? new BufferReader(buffer)\n /* istanbul ignore next */\n : create_array(buffer);\n })(buffer);\n }\n /* istanbul ignore next */\n : create_array;\n};\n\n/**\n * Creates a new reader using the specified buffer.\n * @function\n * @param {Uint8Array|Buffer} buffer Buffer to read from\n * @returns {Reader|BufferReader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\n * @throws {Error} If `buffer` is not a valid buffer\n */\nReader.create = create();\n\nReader.prototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice;\n\n/**\n * Reads a varint as an unsigned 32 bit value.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.uint32 = (function read_uint32_setup() {\n var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!)\n return function read_uint32() {\n value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\n\n /* istanbul ignore if */\n if ((this.pos += 5) > this.len) {\n this.pos = this.len;\n throw indexOutOfRange(this, 10);\n }\n return value;\n };\n})();\n\n/**\n * Reads a varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.int32 = function read_int32() {\n return this.uint32() | 0;\n};\n\n/**\n * Reads a zig-zag encoded varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.sint32 = function read_sint32() {\n var value = this.uint32();\n return value >>> 1 ^ -(value & 1) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readLongVarint() {\n // tends to deopt with local vars for octet etc.\n var bits = new LongBits(0, 0);\n var i = 0;\n if (this.len - this.pos > 4) { // fast route (lo)\n for (; i < 4; ++i) {\n // 1st..4th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 5th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n i = 0;\n } else {\n for (; i < 3; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 1st..3th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 4th\n bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0;\n return bits;\n }\n if (this.len - this.pos > 4) { // fast route (hi)\n for (; i < 5; ++i) {\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n } else {\n for (; i < 5; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n }\n /* istanbul ignore next */\n throw Error(\"invalid varint encoding\");\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads a varint as a signed 64 bit value.\n * @name Reader#int64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as an unsigned 64 bit value.\n * @name Reader#uint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a zig-zag encoded varint as a signed 64 bit value.\n * @name Reader#sint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as a boolean.\n * @returns {boolean} Value read\n */\nReader.prototype.bool = function read_bool() {\n return this.uint32() !== 0;\n};\n\nfunction readFixed32_end(buf, end) { // note that this uses `end`, not `pos`\n return (buf[end - 4]\n | buf[end - 3] << 8\n | buf[end - 2] << 16\n | buf[end - 1] << 24) >>> 0;\n}\n\n/**\n * Reads fixed 32 bits as an unsigned 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.fixed32 = function read_fixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4);\n};\n\n/**\n * Reads fixed 32 bits as a signed 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.sfixed32 = function read_sfixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readFixed64(/* this: Reader */) {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 8);\n\n return new LongBits(readFixed32_end(this.buf, this.pos += 4), readFixed32_end(this.buf, this.pos += 4));\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads fixed 64 bits.\n * @name Reader#fixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads zig-zag encoded fixed 64 bits.\n * @name Reader#sfixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a float (32 bit) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.float = function read_float() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readFloatLE(this.buf, this.pos);\n this.pos += 4;\n return value;\n};\n\n/**\n * Reads a double (64 bit float) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.double = function read_double() {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readDoubleLE(this.buf, this.pos);\n this.pos += 8;\n return value;\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @returns {Uint8Array} Value read\n */\nReader.prototype.bytes = function read_bytes() {\n var length = this.uint32(),\n start = this.pos,\n end = this.pos + length;\n\n /* istanbul ignore if */\n if (end > this.len)\n throw indexOutOfRange(this, length);\n\n this.pos += length;\n if (Array.isArray(this.buf)) // plain array\n return this.buf.slice(start, end);\n\n if (start === end) { // fix for IE 10/Win8 and others' subarray returning array of size 1\n var nativeBuffer = util.Buffer;\n return nativeBuffer\n ? nativeBuffer.alloc(0)\n : new this.buf.constructor(0);\n }\n return this._slice.call(this.buf, start, end);\n};\n\n/**\n * Reads a string preceeded by its byte length as a varint.\n * @returns {string} Value read\n */\nReader.prototype.string = function read_string() {\n var bytes = this.bytes();\n return utf8.read(bytes, 0, bytes.length);\n};\n\n/**\n * Skips the specified number of bytes if specified, otherwise skips a varint.\n * @param {number} [length] Length if known, otherwise a varint is assumed\n * @returns {Reader} `this`\n */\nReader.prototype.skip = function skip(length) {\n if (typeof length === \"number\") {\n /* istanbul ignore if */\n if (this.pos + length > this.len)\n throw indexOutOfRange(this, length);\n this.pos += length;\n } else {\n do {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n } while (this.buf[this.pos++] & 128);\n }\n return this;\n};\n\n/**\n * Skips the next element of the specified wire type.\n * @param {number} wireType Wire type received\n * @returns {Reader} `this`\n */\nReader.prototype.skipType = function(wireType) {\n switch (wireType) {\n case 0:\n this.skip();\n break;\n case 1:\n this.skip(8);\n break;\n case 2:\n this.skip(this.uint32());\n break;\n case 3:\n while ((wireType = this.uint32() & 7) !== 4) {\n this.skipType(wireType);\n }\n break;\n case 5:\n this.skip(4);\n break;\n\n /* istanbul ignore next */\n default:\n throw Error(\"invalid wire type \" + wireType + \" at offset \" + this.pos);\n }\n return this;\n};\n\nReader._configure = function(BufferReader_) {\n BufferReader = BufferReader_;\n Reader.create = create();\n BufferReader._configure();\n\n var fn = util.Long ? \"toLong\" : /* istanbul ignore next */ \"toNumber\";\n util.merge(Reader.prototype, {\n\n int64: function read_int64() {\n return readLongVarint.call(this)[fn](false);\n },\n\n uint64: function read_uint64() {\n return readLongVarint.call(this)[fn](true);\n },\n\n sint64: function read_sint64() {\n return readLongVarint.call(this).zzDecode()[fn](false);\n },\n\n fixed64: function read_fixed64() {\n return readFixed64.call(this)[fn](true);\n },\n\n sfixed64: function read_sfixed64() {\n return readFixed64.call(this)[fn](false);\n }\n\n });\n};\n","\"use strict\";\nmodule.exports = BufferReader;\n\n// extends Reader\nvar Reader = require(\"./reader\");\n(BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer reader instance.\n * @classdesc Wire format reader using node buffers.\n * @extends Reader\n * @constructor\n * @param {Buffer} buffer Buffer to read from\n */\nfunction BufferReader(buffer) {\n Reader.call(this, buffer);\n\n /**\n * Read buffer.\n * @name BufferReader#buf\n * @type {Buffer}\n */\n}\n\nBufferReader._configure = function () {\n /* istanbul ignore else */\n if (util.Buffer)\n BufferReader.prototype._slice = util.Buffer.prototype.slice;\n};\n\n\n/**\n * @override\n */\nBufferReader.prototype.string = function read_string_buffer() {\n var len = this.uint32(); // modifies pos\n return this.buf.utf8Slice\n ? this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len))\n : this.buf.toString(\"utf-8\", this.pos, this.pos = Math.min(this.pos + len, this.len));\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @name BufferReader#bytes\n * @function\n * @returns {Buffer} Value read\n */\n\nBufferReader._configure();\n","\"use strict\";\nmodule.exports = Service;\n\nvar util = require(\"../util/minimal\");\n\n// Extends EventEmitter\n(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service;\n\n/**\n * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}.\n *\n * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`.\n * @typedef rpc.ServiceMethodCallback\n * @template TRes extends Message\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {TRes} [response] Response message\n * @returns {undefined}\n */\n\n/**\n * A service method part of a {@link rpc.Service} as created by {@link Service.create}.\n * @typedef rpc.ServiceMethod\n * @template TReq extends Message\n * @template TRes extends Message\n * @type {function}\n * @param {TReq|Properties} request Request message or plain object\n * @param {rpc.ServiceMethodCallback} [callback] Node-style callback called with the error, if any, and the response message\n * @returns {Promise>} Promise if `callback` has been omitted, otherwise `undefined`\n */\n\n/**\n * Constructs a new RPC service instance.\n * @classdesc An RPC service as returned by {@link Service#create}.\n * @exports rpc.Service\n * @extends util.EventEmitter\n * @constructor\n * @param {RPCImpl} rpcImpl RPC implementation\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\n */\nfunction Service(rpcImpl, requestDelimited, responseDelimited) {\n\n if (typeof rpcImpl !== \"function\")\n throw TypeError(\"rpcImpl must be a function\");\n\n util.EventEmitter.call(this);\n\n /**\n * RPC implementation. Becomes `null` once the service is ended.\n * @type {RPCImpl|null}\n */\n this.rpcImpl = rpcImpl;\n\n /**\n * Whether requests are length-delimited.\n * @type {boolean}\n */\n this.requestDelimited = Boolean(requestDelimited);\n\n /**\n * Whether responses are length-delimited.\n * @type {boolean}\n */\n this.responseDelimited = Boolean(responseDelimited);\n}\n\n/**\n * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}.\n * @param {Method|rpc.ServiceMethod} method Reflected or static method\n * @param {Constructor} requestCtor Request constructor\n * @param {Constructor} responseCtor Response constructor\n * @param {TReq|Properties} request Request message or plain object\n * @param {rpc.ServiceMethodCallback} callback Service callback\n * @returns {undefined}\n * @template TReq extends Message\n * @template TRes extends Message\n */\nService.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) {\n\n if (!request)\n throw TypeError(\"request must be specified\");\n\n var self = this;\n if (!callback)\n return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request);\n\n if (!self.rpcImpl) {\n setTimeout(function() { callback(Error(\"already ended\")); }, 0);\n return undefined;\n }\n\n try {\n return self.rpcImpl(\n method,\n requestCtor[self.requestDelimited ? \"encodeDelimited\" : \"encode\"](request).finish(),\n function rpcCallback(err, response) {\n\n if (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n\n if (response === null) {\n self.end(/* endedByRPC */ true);\n return undefined;\n }\n\n if (!(response instanceof responseCtor)) {\n try {\n response = responseCtor[self.responseDelimited ? \"decodeDelimited\" : \"decode\"](response);\n } catch (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n }\n\n self.emit(\"data\", response, method);\n return callback(null, response);\n }\n );\n } catch (err) {\n self.emit(\"error\", err, method);\n setTimeout(function() { callback(err); }, 0);\n return undefined;\n }\n};\n\n/**\n * Ends this service and emits the `end` event.\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\n * @returns {rpc.Service} `this`\n */\nService.prototype.end = function end(endedByRPC) {\n if (this.rpcImpl) {\n if (!endedByRPC) // signal end to rpcImpl\n this.rpcImpl(null, null, null);\n this.rpcImpl = null;\n this.emit(\"end\").off();\n }\n return this;\n};\n","\"use strict\";\n\n/**\n * Streaming RPC helpers.\n * @namespace\n */\nvar rpc = exports;\n\n/**\n * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets.\n * @typedef RPCImpl\n * @type {function}\n * @param {Method|rpc.ServiceMethod,Message<{}>>} method Reflected or static method being called\n * @param {Uint8Array} requestData Request data\n * @param {RPCImplCallback} callback Callback function\n * @returns {undefined}\n * @example\n * function rpcImpl(method, requestData, callback) {\n * if (protobuf.util.lcFirst(method.name) !== \"myMethod\") // compatible with static code\n * throw Error(\"no such method\");\n * asynchronouslyObtainAResponse(requestData, function(err, responseData) {\n * callback(err, responseData);\n * });\n * }\n */\n\n/**\n * Node-style callback as used by {@link RPCImpl}.\n * @typedef RPCImplCallback\n * @type {function}\n * @param {Error|null} error Error, if any, otherwise `null`\n * @param {Uint8Array|null} [response] Response data or `null` to signal end of stream, if there hasn't been an error\n * @returns {undefined}\n */\n\nrpc.Service = require(\"./rpc/service\");\n","\"use strict\";\nmodule.exports = {};\n\n/**\n * Named roots.\n * This is where pbjs stores generated structures (the option `-r, --root` specifies a name).\n * Can also be used manually to make roots available across modules.\n * @name roots\n * @type {Object.}\n * @example\n * // pbjs -r myroot -o compiled.js ...\n *\n * // in another module:\n * require(\"./compiled.js\");\n *\n * // in any subsequent module:\n * var root = protobuf.roots[\"myroot\"];\n */\n","\"use strict\";\nvar protobuf = exports;\n\n/**\n * Build type, one of `\"full\"`, `\"light\"` or `\"minimal\"`.\n * @name build\n * @type {string}\n * @const\n */\nprotobuf.build = \"minimal\";\n\n// Serialization\nprotobuf.Writer = require(\"./writer\");\nprotobuf.BufferWriter = require(\"./writer_buffer\");\nprotobuf.Reader = require(\"./reader\");\nprotobuf.BufferReader = require(\"./reader_buffer\");\n\n// Utility\nprotobuf.util = require(\"./util/minimal\");\nprotobuf.rpc = require(\"./rpc\");\nprotobuf.roots = require(\"./roots\");\nprotobuf.configure = configure;\n\n/* istanbul ignore next */\n/**\n * Reconfigures the library according to the environment.\n * @returns {undefined}\n */\nfunction configure() {\n protobuf.util._configure();\n protobuf.Writer._configure(protobuf.BufferWriter);\n protobuf.Reader._configure(protobuf.BufferReader);\n}\n\n// Set up buffer utility according to the environment\nconfigure();\n","// minimal library entry point.\n\n\"use strict\";\nmodule.exports = require(\"./src/index-minimal\");\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.proto=exports.google=exports.default=exports.com=void 0;var $protobuf=_interopRequireWildcard(require(\"protobufjs/minimal\"));function _getRequireWildcardCache(e){if(\"function\"!=typeof WeakMap)return null;var r=new WeakMap(),t=new WeakMap();return(_getRequireWildcardCache=function(e){return e?t:r;})(e);}function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||\"object\"!=typeof e&&\"function\"!=typeof e)return{default:e};var t=_getRequireWildcardCache(r);if(t&&t.has(e))return t.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if(\"default\"!==u&&Object.prototype.hasOwnProperty.call(e,u)){var i=a?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u];}return n.default=e,t&&t.set(e,n),n;}const $Reader=$protobuf.Reader,$Writer=$protobuf.Writer,$util=$protobuf.util;const $root=$protobuf.roots.hashgraph||($protobuf.roots.hashgraph={});exports.default=$root;const com=$root.com=(()=>{const com={};com.hedera=function(){const hedera={};hedera.mirror=function(){const mirror={};mirror.api=function(){const api={};api.proto=function(){const proto={};proto.ConsensusTopicQuery=function(){function ConsensusTopicQuery(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.topicID=$root.proto.TopicID.decode(r,r.uint32());break;}case 2:{m.consensusStartTime=$root.proto.Timestamp.decode(r,r.uint32());break;}case 3:{m.consensusEndTime=$root.proto.Timestamp.decode(r,r.uint32());break;}case 4:{m.limit=r.uint64();break;}default:r.skipType(t&7);break;}}return m;};ConsensusTopicQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.mirror.api.proto.ConsensusTopicQuery\";};return ConsensusTopicQuery;}();proto.ConsensusTopicResponse=function(){function ConsensusTopicResponse(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.consensusTimestamp=$root.proto.Timestamp.decode(r,r.uint32());break;}case 2:{m.message=r.bytes();break;}case 3:{m.runningHash=r.bytes();break;}case 4:{m.sequenceNumber=r.uint64();break;}case 5:{m.runningHashVersion=r.uint64();break;}case 6:{m.chunkInfo=$root.proto.ConsensusMessageChunkInfo.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};ConsensusTopicResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.mirror.api.proto.ConsensusTopicResponse\";};return ConsensusTopicResponse;}();proto.ConsensusService=function(){function ConsensusService(rpcImpl,requestDelimited,responseDelimited){$protobuf.rpc.Service.call(this,rpcImpl,requestDelimited,responseDelimited);}(ConsensusService.prototype=Object.create($protobuf.rpc.Service.prototype)).constructor=ConsensusService;ConsensusService.create=function create(rpcImpl,requestDelimited,responseDelimited){return new this(rpcImpl,requestDelimited,responseDelimited);};Object.defineProperty(ConsensusService.prototype.subscribeTopic=function subscribeTopic(request,callback){return this.rpcCall(subscribeTopic,$root.com.hedera.mirror.api.proto.ConsensusTopicQuery,$root.com.hedera.mirror.api.proto.ConsensusTopicResponse,request,callback);},\"name\",{value:\"subscribeTopic\"});return ConsensusService;}();proto.AddressBookQuery=function(){function AddressBookQuery(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.fileId=$root.proto.FileID.decode(r,r.uint32());break;}case 2:{m.limit=r.int32();break;}default:r.skipType(t&7);break;}}return m;};AddressBookQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.mirror.api.proto.AddressBookQuery\";};return AddressBookQuery;}();proto.NetworkService=function(){function NetworkService(rpcImpl,requestDelimited,responseDelimited){$protobuf.rpc.Service.call(this,rpcImpl,requestDelimited,responseDelimited);}(NetworkService.prototype=Object.create($protobuf.rpc.Service.prototype)).constructor=NetworkService;NetworkService.create=function create(rpcImpl,requestDelimited,responseDelimited){return new this(rpcImpl,requestDelimited,responseDelimited);};Object.defineProperty(NetworkService.prototype.getNodes=function getNodes(request,callback){return this.rpcCall(getNodes,$root.com.hedera.mirror.api.proto.AddressBookQuery,$root.proto.NodeAddress,request,callback);},\"name\",{value:\"getNodes\"});return NetworkService;}();return proto;}();return api;}();return mirror;}();hedera.hapi=function(){const hapi={};hapi.node=function(){const node={};node.addressbook=function(){const addressbook={};addressbook.NodeCreateTransactionBody=function(){function NodeCreateTransactionBody(p){this.gossipEndpoint=[];this.serviceEndpoint=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.accountId=$root.proto.AccountID.decode(r,r.uint32());break;}case 2:{m.description=r.string();break;}case 3:{if(!(m.gossipEndpoint&&m.gossipEndpoint.length))m.gossipEndpoint=[];m.gossipEndpoint.push($root.proto.ServiceEndpoint.decode(r,r.uint32()));break;}case 4:{if(!(m.serviceEndpoint&&m.serviceEndpoint.length))m.serviceEndpoint=[];m.serviceEndpoint.push($root.proto.ServiceEndpoint.decode(r,r.uint32()));break;}case 5:{m.gossipCaCertificate=r.bytes();break;}case 6:{m.grpcCertificateHash=r.bytes();break;}case 7:{m.adminKey=$root.proto.Key.decode(r,r.uint32());break;}case 8:{m.declineReward=r.bool();break;}default:r.skipType(t&7);break;}}return m;};NodeCreateTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.hapi.node.addressbook.NodeCreateTransactionBody\";};return NodeCreateTransactionBody;}();addressbook.NodeUpdateTransactionBody=function(){function NodeUpdateTransactionBody(p){this.gossipEndpoint=[];this.serviceEndpoint=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.nodeId=r.uint64();break;}case 2:{m.accountId=$root.proto.AccountID.decode(r,r.uint32());break;}case 3:{m.description=$root.google.protobuf.StringValue.decode(r,r.uint32());break;}case 4:{if(!(m.gossipEndpoint&&m.gossipEndpoint.length))m.gossipEndpoint=[];m.gossipEndpoint.push($root.proto.ServiceEndpoint.decode(r,r.uint32()));break;}case 5:{if(!(m.serviceEndpoint&&m.serviceEndpoint.length))m.serviceEndpoint=[];m.serviceEndpoint.push($root.proto.ServiceEndpoint.decode(r,r.uint32()));break;}case 6:{m.gossipCaCertificate=$root.google.protobuf.BytesValue.decode(r,r.uint32());break;}case 7:{m.grpcCertificateHash=$root.google.protobuf.BytesValue.decode(r,r.uint32());break;}case 8:{m.adminKey=$root.proto.Key.decode(r,r.uint32());break;}case 9:{m.declineReward=$root.google.protobuf.BoolValue.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};NodeUpdateTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.hapi.node.addressbook.NodeUpdateTransactionBody\";};return NodeUpdateTransactionBody;}();addressbook.NodeDeleteTransactionBody=function(){function NodeDeleteTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.nodeId=r.uint64();break;}default:r.skipType(t&7);break;}}return m;};NodeDeleteTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.hapi.node.addressbook.NodeDeleteTransactionBody\";};return NodeDeleteTransactionBody;}();return addressbook;}();node.state=function(){const state={};state.hints=function(){const hints={};hints.HintsPartyId=function(){function HintsPartyId(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.partyId=r.uint32();break;}case 2:{m.numParties=r.uint32();break;}default:r.skipType(t&7);break;}}return m;};HintsPartyId.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.hapi.node.state.hints.HintsPartyId\";};return HintsPartyId;}();hints.HintsKeySet=function(){function HintsKeySet(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.nodeId=r.uint64();break;}case 2:{m.adoptionTime=$root.proto.Timestamp.decode(r,r.uint32());break;}case 3:{m.key=r.bytes();break;}case 4:{m.nextKey=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};HintsKeySet.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.hapi.node.state.hints.HintsKeySet\";};return HintsKeySet;}();hints.PreprocessedKeys=function(){function PreprocessedKeys(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.aggregationKey=r.bytes();break;}case 2:{m.verificationKey=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};PreprocessedKeys.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.hapi.node.state.hints.PreprocessedKeys\";};return PreprocessedKeys;}();hints.PreprocessingVoteId=function(){function PreprocessingVoteId(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.constructionId=r.uint64();break;}case 2:{m.nodeId=r.uint64();break;}default:r.skipType(t&7);break;}}return m;};PreprocessingVoteId.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.hapi.node.state.hints.PreprocessingVoteId\";};return PreprocessingVoteId;}();hints.PreprocessingVote=function(){function PreprocessingVote(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.preprocessedKeys=$root.com.hedera.hapi.node.state.hints.PreprocessedKeys.decode(r,r.uint32());break;}case 2:{m.congruentNodeId=r.uint64();break;}default:r.skipType(t&7);break;}}return m;};PreprocessingVote.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.hapi.node.state.hints.PreprocessingVote\";};return PreprocessingVote;}();hints.NodePartyId=function(){function NodePartyId(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.nodeId=r.uint64();break;}case 2:{m.partyId=r.uint32();break;}default:r.skipType(t&7);break;}}return m;};NodePartyId.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.hapi.node.state.hints.NodePartyId\";};return NodePartyId;}();hints.HintsScheme=function(){function HintsScheme(p){this.nodePartyIds=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.preprocessedKeys=$root.com.hedera.hapi.node.state.hints.PreprocessedKeys.decode(r,r.uint32());break;}case 2:{if(!(m.nodePartyIds&&m.nodePartyIds.length))m.nodePartyIds=[];m.nodePartyIds.push($root.com.hedera.hapi.node.state.hints.NodePartyId.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};HintsScheme.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.hapi.node.state.hints.HintsScheme\";};return HintsScheme;}();hints.HintsConstruction=function(){function HintsConstruction(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.constructionId=r.uint64();break;}case 2:{m.sourceRosterHash=r.bytes();break;}case 3:{m.targetRosterHash=r.bytes();break;}case 4:{m.gracePeriodEndTime=$root.proto.Timestamp.decode(r,r.uint32());break;}case 5:{m.preprocessingStartTime=$root.proto.Timestamp.decode(r,r.uint32());break;}case 6:{m.hintsScheme=$root.com.hedera.hapi.node.state.hints.HintsScheme.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};HintsConstruction.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.hapi.node.state.hints.HintsConstruction\";};return HintsConstruction;}();hints.CRSStage=function(){const valuesById={},values=Object.create(valuesById);values[valuesById[0]=\"GATHERING_CONTRIBUTIONS\"]=0;values[valuesById[1]=\"WAITING_FOR_ADOPTING_FINAL_CRS\"]=1;values[valuesById[2]=\"COMPLETED\"]=2;return values;}();hints.CRSState=function(){function CRSState(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.crs=r.bytes();break;}case 2:{m.stage=r.int32();break;}case 3:{m.nextContributingNodeId=$root.google.protobuf.UInt64Value.decode(r,r.uint32());break;}case 4:{m.contributionEndTime=$root.proto.Timestamp.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};CRSState.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.hapi.node.state.hints.CRSState\";};return CRSState;}();return hints;}();state.history=function(){const history={};history.ProofKeySet=function(){function ProofKeySet(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 2:{m.adoptionTime=$root.proto.Timestamp.decode(r,r.uint32());break;}case 3:{m.key=r.bytes();break;}case 4:{m.nextKey=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};ProofKeySet.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.hapi.node.state.history.ProofKeySet\";};return ProofKeySet;}();history.ProofKey=function(){function ProofKey(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.nodeId=r.uint64();break;}case 2:{m.key=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};ProofKey.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.hapi.node.state.history.ProofKey\";};return ProofKey;}();history.History=function(){function History(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.addressBookHash=r.bytes();break;}case 2:{m.metadata=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};History.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.hapi.node.state.history.History\";};return History;}();history.HistoryProof=function(){function HistoryProof(p){this.targetProofKeys=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.sourceAddressBookHash=r.bytes();break;}case 2:{if(!(m.targetProofKeys&&m.targetProofKeys.length))m.targetProofKeys=[];m.targetProofKeys.push($root.com.hedera.hapi.node.state.history.ProofKey.decode(r,r.uint32()));break;}case 3:{m.targetHistory=$root.com.hedera.hapi.node.state.history.History.decode(r,r.uint32());break;}case 4:{m.proof=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};HistoryProof.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.hapi.node.state.history.HistoryProof\";};return HistoryProof;}();history.HistoryProofConstruction=function(){function HistoryProofConstruction(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.constructionId=r.uint64();break;}case 2:{m.sourceRosterHash=r.bytes();break;}case 3:{m.sourceProof=$root.com.hedera.hapi.node.state.history.HistoryProof.decode(r,r.uint32());break;}case 4:{m.targetRosterHash=r.bytes();break;}case 5:{m.gracePeriodEndTime=$root.proto.Timestamp.decode(r,r.uint32());break;}case 6:{m.assemblyStartTime=$root.proto.Timestamp.decode(r,r.uint32());break;}case 7:{m.targetProof=$root.com.hedera.hapi.node.state.history.HistoryProof.decode(r,r.uint32());break;}case 8:{m.failureReason=r.string();break;}default:r.skipType(t&7);break;}}return m;};HistoryProofConstruction.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.hapi.node.state.history.HistoryProofConstruction\";};return HistoryProofConstruction;}();history.ConstructionNodeId=function(){function ConstructionNodeId(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.constructionId=r.uint64();break;}case 2:{m.nodeId=r.uint64();break;}default:r.skipType(t&7);break;}}return m;};ConstructionNodeId.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.hapi.node.state.history.ConstructionNodeId\";};return ConstructionNodeId;}();history.HistoryProofVote=function(){function HistoryProofVote(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.proof=$root.com.hedera.hapi.node.state.history.HistoryProof.decode(r,r.uint32());break;}case 2:{m.congruentNodeId=r.uint64();break;}default:r.skipType(t&7);break;}}return m;};HistoryProofVote.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.hapi.node.state.history.HistoryProofVote\";};return HistoryProofVote;}();history.HistorySignature=function(){function HistorySignature(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.history=$root.com.hedera.hapi.node.state.history.History.decode(r,r.uint32());break;}case 2:{m.signature=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};HistorySignature.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.hapi.node.state.history.HistorySignature\";};return HistorySignature;}();history.RecordedHistorySignature=function(){function RecordedHistorySignature(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.signingTime=$root.proto.Timestamp.decode(r,r.uint32());break;}case 2:{m.historySignature=$root.com.hedera.hapi.node.state.history.HistorySignature.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};RecordedHistorySignature.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.hapi.node.state.history.RecordedHistorySignature\";};return RecordedHistorySignature;}();return history;}();return state;}();return node;}();hapi.services=function(){const services={};services.auxiliary=function(){const auxiliary={};auxiliary.hints=function(){const hints={};hints.HintsKeyPublicationTransactionBody=function(){function HintsKeyPublicationTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.partyId=r.uint32();break;}case 2:{m.numParties=r.uint32();break;}case 3:{m.hintsKey=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};HintsKeyPublicationTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.hapi.services.auxiliary.hints.HintsKeyPublicationTransactionBody\";};return HintsKeyPublicationTransactionBody;}();hints.HintsPreprocessingVoteTransactionBody=function(){function HintsPreprocessingVoteTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.constructionId=r.uint64();break;}case 2:{m.vote=$root.com.hedera.hapi.node.state.hints.PreprocessingVote.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};HintsPreprocessingVoteTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.hapi.services.auxiliary.hints.HintsPreprocessingVoteTransactionBody\";};return HintsPreprocessingVoteTransactionBody;}();hints.HintsPartialSignatureTransactionBody=function(){function HintsPartialSignatureTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.constructionId=r.uint64();break;}case 2:{m.message=r.bytes();break;}case 3:{m.partialSignature=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};HintsPartialSignatureTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.hapi.services.auxiliary.hints.HintsPartialSignatureTransactionBody\";};return HintsPartialSignatureTransactionBody;}();hints.CrsPublicationTransactionBody=function(){function CrsPublicationTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.newCrs=r.bytes();break;}case 2:{m.proof=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};CrsPublicationTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.hapi.services.auxiliary.hints.CrsPublicationTransactionBody\";};return CrsPublicationTransactionBody;}();return hints;}();auxiliary.history=function(){const history={};history.HistoryProofSignatureTransactionBody=function(){function HistoryProofSignatureTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.constructionId=r.uint64();break;}case 2:{m.signature=$root.com.hedera.hapi.node.state.history.HistorySignature.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};HistoryProofSignatureTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.hapi.services.auxiliary.history.HistoryProofSignatureTransactionBody\";};return HistoryProofSignatureTransactionBody;}();history.HistoryProofKeyPublicationTransactionBody=function(){function HistoryProofKeyPublicationTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.proofKey=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};HistoryProofKeyPublicationTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.hapi.services.auxiliary.history.HistoryProofKeyPublicationTransactionBody\";};return HistoryProofKeyPublicationTransactionBody;}();history.HistoryProofVoteTransactionBody=function(){function HistoryProofVoteTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.constructionId=r.uint64();break;}case 2:{m.vote=$root.com.hedera.hapi.node.state.history.HistoryProofVote.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};HistoryProofVoteTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.hapi.services.auxiliary.history.HistoryProofVoteTransactionBody\";};return HistoryProofVoteTransactionBody;}();return history;}();return auxiliary;}();return services;}();hapi.platform=function(){const platform={};platform.event=function(){const event={};event.EventConsensusData=function(){function EventConsensusData(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.consensusTimestamp=$root.proto.Timestamp.decode(r,r.uint32());break;}case 2:{m.consensusOrder=r.uint64();break;}default:r.skipType(t&7);break;}}return m;};EventConsensusData.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.hapi.platform.event.EventConsensusData\";};return EventConsensusData;}();event.EventCore=function(){function EventCore(p){this.parents=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.creatorNodeId=r.int64();break;}case 2:{m.birthRound=r.int64();break;}case 3:{m.timeCreated=$root.proto.Timestamp.decode(r,r.uint32());break;}case 4:{if(!(m.parents&&m.parents.length))m.parents=[];m.parents.push($root.com.hedera.hapi.platform.event.EventDescriptor.decode(r,r.uint32()));break;}case 17:{m.version=$root.proto.SemanticVersion.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};EventCore.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.hapi.platform.event.EventCore\";};return EventCore;}();event.EventDescriptor=function(){function EventDescriptor(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.hash=r.bytes();break;}case 2:{m.creatorNodeId=r.int64();break;}case 3:{m.birthRound=r.int64();break;}case 17:{m.generation=r.int64();break;}default:r.skipType(t&7);break;}}return m;};EventDescriptor.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.hapi.platform.event.EventDescriptor\";};return EventDescriptor;}();event.TransactionGroupRole=function(){const valuesById={},values=Object.create(valuesById);values[valuesById[0]=\"STANDALONE\"]=0;values[valuesById[1]=\"FIRST_CHILD\"]=1;values[valuesById[2]=\"MIDDLE_CHILD\"]=2;values[valuesById[3]=\"LAST_CHILD\"]=3;values[valuesById[4]=\"STARTING_PARENT\"]=4;values[valuesById[5]=\"PARENT\"]=5;values[valuesById[6]=\"ENDING_PARENT\"]=6;return values;}();event.EventTransaction=function(){function EventTransaction(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.applicationTransaction=r.bytes();break;}case 2:{m.stateSignatureTransaction=$root.com.hedera.hapi.platform.event.StateSignatureTransaction.decode(r,r.uint32());break;}case 3:{m.transactionGroupRole=r.int32();break;}default:r.skipType(t&7);break;}}return m;};EventTransaction.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.hapi.platform.event.EventTransaction\";};return EventTransaction;}();event.GossipEvent=function(){function GossipEvent(p){this.transactions=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.eventCore=$root.com.hedera.hapi.platform.event.EventCore.decode(r,r.uint32());break;}case 2:{m.signature=r.bytes();break;}case 4:{if(!(m.transactions&&m.transactions.length))m.transactions=[];m.transactions.push(r.bytes());break;}default:r.skipType(t&7);break;}}return m;};GossipEvent.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.hapi.platform.event.GossipEvent\";};return GossipEvent;}();event.StateSignatureTransaction=function(){function StateSignatureTransaction(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.round=r.int64();break;}case 2:{m.signature=r.bytes();break;}case 3:{m.hash=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};StateSignatureTransaction.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/com.hedera.hapi.platform.event.StateSignatureTransaction\";};return StateSignatureTransaction;}();return event;}();return platform;}();return hapi;}();return hedera;}();return com;})();exports.com=com;const proto=$root.proto=(()=>{const proto={};proto.TransactionList=function(){function TransactionList(p){this.transactionList=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{if(!(m.transactionList&&m.transactionList.length))m.transactionList=[];m.transactionList.push($root.proto.Transaction.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};TransactionList.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TransactionList\";};return TransactionList;}();proto.AddressBookService=function(){function AddressBookService(rpcImpl,requestDelimited,responseDelimited){$protobuf.rpc.Service.call(this,rpcImpl,requestDelimited,responseDelimited);}(AddressBookService.prototype=Object.create($protobuf.rpc.Service.prototype)).constructor=AddressBookService;AddressBookService.create=function create(rpcImpl,requestDelimited,responseDelimited){return new this(rpcImpl,requestDelimited,responseDelimited);};Object.defineProperty(AddressBookService.prototype.createNode=function createNode(request,callback){return this.rpcCall(createNode,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"createNode\"});Object.defineProperty(AddressBookService.prototype.deleteNode=function deleteNode(request,callback){return this.rpcCall(deleteNode,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"deleteNode\"});Object.defineProperty(AddressBookService.prototype.updateNode=function updateNode(request,callback){return this.rpcCall(updateNode,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"updateNode\"});return AddressBookService;}();proto.TransactionResponse=function(){function TransactionResponse(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.nodeTransactionPrecheckCode=r.int32();break;}case 2:{m.cost=r.uint64();break;}default:r.skipType(t&7);break;}}return m;};TransactionResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TransactionResponse\";};return TransactionResponse;}();proto.ResponseCodeEnum=function(){const valuesById={},values=Object.create(valuesById);values[valuesById[0]=\"OK\"]=0;values[valuesById[1]=\"INVALID_TRANSACTION\"]=1;values[valuesById[2]=\"PAYER_ACCOUNT_NOT_FOUND\"]=2;values[valuesById[3]=\"INVALID_NODE_ACCOUNT\"]=3;values[valuesById[4]=\"TRANSACTION_EXPIRED\"]=4;values[valuesById[5]=\"INVALID_TRANSACTION_START\"]=5;values[valuesById[6]=\"INVALID_TRANSACTION_DURATION\"]=6;values[valuesById[7]=\"INVALID_SIGNATURE\"]=7;values[valuesById[8]=\"MEMO_TOO_LONG\"]=8;values[valuesById[9]=\"INSUFFICIENT_TX_FEE\"]=9;values[valuesById[10]=\"INSUFFICIENT_PAYER_BALANCE\"]=10;values[valuesById[11]=\"DUPLICATE_TRANSACTION\"]=11;values[valuesById[12]=\"BUSY\"]=12;values[valuesById[13]=\"NOT_SUPPORTED\"]=13;values[valuesById[14]=\"INVALID_FILE_ID\"]=14;values[valuesById[15]=\"INVALID_ACCOUNT_ID\"]=15;values[valuesById[16]=\"INVALID_CONTRACT_ID\"]=16;values[valuesById[17]=\"INVALID_TRANSACTION_ID\"]=17;values[valuesById[18]=\"RECEIPT_NOT_FOUND\"]=18;values[valuesById[19]=\"RECORD_NOT_FOUND\"]=19;values[valuesById[20]=\"INVALID_SOLIDITY_ID\"]=20;values[valuesById[21]=\"UNKNOWN\"]=21;values[valuesById[22]=\"SUCCESS\"]=22;values[valuesById[23]=\"FAIL_INVALID\"]=23;values[valuesById[24]=\"FAIL_FEE\"]=24;values[valuesById[25]=\"FAIL_BALANCE\"]=25;values[valuesById[26]=\"KEY_REQUIRED\"]=26;values[valuesById[27]=\"BAD_ENCODING\"]=27;values[valuesById[28]=\"INSUFFICIENT_ACCOUNT_BALANCE\"]=28;values[valuesById[29]=\"INVALID_SOLIDITY_ADDRESS\"]=29;values[valuesById[30]=\"INSUFFICIENT_GAS\"]=30;values[valuesById[31]=\"CONTRACT_SIZE_LIMIT_EXCEEDED\"]=31;values[valuesById[32]=\"LOCAL_CALL_MODIFICATION_EXCEPTION\"]=32;values[valuesById[33]=\"CONTRACT_REVERT_EXECUTED\"]=33;values[valuesById[34]=\"CONTRACT_EXECUTION_EXCEPTION\"]=34;values[valuesById[35]=\"INVALID_RECEIVING_NODE_ACCOUNT\"]=35;values[valuesById[36]=\"MISSING_QUERY_HEADER\"]=36;values[valuesById[37]=\"ACCOUNT_UPDATE_FAILED\"]=37;values[valuesById[38]=\"INVALID_KEY_ENCODING\"]=38;values[valuesById[39]=\"NULL_SOLIDITY_ADDRESS\"]=39;values[valuesById[40]=\"CONTRACT_UPDATE_FAILED\"]=40;values[valuesById[41]=\"INVALID_QUERY_HEADER\"]=41;values[valuesById[42]=\"INVALID_FEE_SUBMITTED\"]=42;values[valuesById[43]=\"INVALID_PAYER_SIGNATURE\"]=43;values[valuesById[44]=\"KEY_NOT_PROVIDED\"]=44;values[valuesById[45]=\"INVALID_EXPIRATION_TIME\"]=45;values[valuesById[46]=\"NO_WACL_KEY\"]=46;values[valuesById[47]=\"FILE_CONTENT_EMPTY\"]=47;values[valuesById[48]=\"INVALID_ACCOUNT_AMOUNTS\"]=48;values[valuesById[49]=\"EMPTY_TRANSACTION_BODY\"]=49;values[valuesById[50]=\"INVALID_TRANSACTION_BODY\"]=50;values[valuesById[51]=\"INVALID_SIGNATURE_TYPE_MISMATCHING_KEY\"]=51;values[valuesById[52]=\"INVALID_SIGNATURE_COUNT_MISMATCHING_KEY\"]=52;values[valuesById[53]=\"EMPTY_LIVE_HASH_BODY\"]=53;values[valuesById[54]=\"EMPTY_LIVE_HASH\"]=54;values[valuesById[55]=\"EMPTY_LIVE_HASH_KEYS\"]=55;values[valuesById[56]=\"INVALID_LIVE_HASH_SIZE\"]=56;values[valuesById[57]=\"EMPTY_QUERY_BODY\"]=57;values[valuesById[58]=\"EMPTY_LIVE_HASH_QUERY\"]=58;values[valuesById[59]=\"LIVE_HASH_NOT_FOUND\"]=59;values[valuesById[60]=\"ACCOUNT_ID_DOES_NOT_EXIST\"]=60;values[valuesById[61]=\"LIVE_HASH_ALREADY_EXISTS\"]=61;values[valuesById[62]=\"INVALID_FILE_WACL\"]=62;values[valuesById[63]=\"SERIALIZATION_FAILED\"]=63;values[valuesById[64]=\"TRANSACTION_OVERSIZE\"]=64;values[valuesById[65]=\"TRANSACTION_TOO_MANY_LAYERS\"]=65;values[valuesById[66]=\"CONTRACT_DELETED\"]=66;values[valuesById[67]=\"PLATFORM_NOT_ACTIVE\"]=67;values[valuesById[68]=\"KEY_PREFIX_MISMATCH\"]=68;values[valuesById[69]=\"PLATFORM_TRANSACTION_NOT_CREATED\"]=69;values[valuesById[70]=\"INVALID_RENEWAL_PERIOD\"]=70;values[valuesById[71]=\"INVALID_PAYER_ACCOUNT_ID\"]=71;values[valuesById[72]=\"ACCOUNT_DELETED\"]=72;values[valuesById[73]=\"FILE_DELETED\"]=73;values[valuesById[74]=\"ACCOUNT_REPEATED_IN_ACCOUNT_AMOUNTS\"]=74;values[valuesById[75]=\"SETTING_NEGATIVE_ACCOUNT_BALANCE\"]=75;values[valuesById[76]=\"OBTAINER_REQUIRED\"]=76;values[valuesById[77]=\"OBTAINER_SAME_CONTRACT_ID\"]=77;values[valuesById[78]=\"OBTAINER_DOES_NOT_EXIST\"]=78;values[valuesById[79]=\"MODIFYING_IMMUTABLE_CONTRACT\"]=79;values[valuesById[80]=\"FILE_SYSTEM_EXCEPTION\"]=80;values[valuesById[81]=\"AUTORENEW_DURATION_NOT_IN_RANGE\"]=81;values[valuesById[82]=\"ERROR_DECODING_BYTESTRING\"]=82;values[valuesById[83]=\"CONTRACT_FILE_EMPTY\"]=83;values[valuesById[84]=\"CONTRACT_BYTECODE_EMPTY\"]=84;values[valuesById[85]=\"INVALID_INITIAL_BALANCE\"]=85;values[valuesById[86]=\"INVALID_RECEIVE_RECORD_THRESHOLD\"]=86;values[valuesById[87]=\"INVALID_SEND_RECORD_THRESHOLD\"]=87;values[valuesById[88]=\"ACCOUNT_IS_NOT_GENESIS_ACCOUNT\"]=88;values[valuesById[89]=\"PAYER_ACCOUNT_UNAUTHORIZED\"]=89;values[valuesById[90]=\"INVALID_FREEZE_TRANSACTION_BODY\"]=90;values[valuesById[91]=\"FREEZE_TRANSACTION_BODY_NOT_FOUND\"]=91;values[valuesById[92]=\"TRANSFER_LIST_SIZE_LIMIT_EXCEEDED\"]=92;values[valuesById[93]=\"RESULT_SIZE_LIMIT_EXCEEDED\"]=93;values[valuesById[94]=\"NOT_SPECIAL_ACCOUNT\"]=94;values[valuesById[95]=\"CONTRACT_NEGATIVE_GAS\"]=95;values[valuesById[96]=\"CONTRACT_NEGATIVE_VALUE\"]=96;values[valuesById[97]=\"INVALID_FEE_FILE\"]=97;values[valuesById[98]=\"INVALID_EXCHANGE_RATE_FILE\"]=98;values[valuesById[99]=\"INSUFFICIENT_LOCAL_CALL_GAS\"]=99;values[valuesById[100]=\"ENTITY_NOT_ALLOWED_TO_DELETE\"]=100;values[valuesById[101]=\"AUTHORIZATION_FAILED\"]=101;values[valuesById[102]=\"FILE_UPLOADED_PROTO_INVALID\"]=102;values[valuesById[103]=\"FILE_UPLOADED_PROTO_NOT_SAVED_TO_DISK\"]=103;values[valuesById[104]=\"FEE_SCHEDULE_FILE_PART_UPLOADED\"]=104;values[valuesById[105]=\"EXCHANGE_RATE_CHANGE_LIMIT_EXCEEDED\"]=105;values[valuesById[106]=\"MAX_CONTRACT_STORAGE_EXCEEDED\"]=106;values[valuesById[107]=\"TRANSFER_ACCOUNT_SAME_AS_DELETE_ACCOUNT\"]=107;values[valuesById[108]=\"TOTAL_LEDGER_BALANCE_INVALID\"]=108;values[valuesById[110]=\"EXPIRATION_REDUCTION_NOT_ALLOWED\"]=110;values[valuesById[111]=\"MAX_GAS_LIMIT_EXCEEDED\"]=111;values[valuesById[112]=\"MAX_FILE_SIZE_EXCEEDED\"]=112;values[valuesById[113]=\"RECEIVER_SIG_REQUIRED\"]=113;values[valuesById[150]=\"INVALID_TOPIC_ID\"]=150;values[valuesById[155]=\"INVALID_ADMIN_KEY\"]=155;values[valuesById[156]=\"INVALID_SUBMIT_KEY\"]=156;values[valuesById[157]=\"UNAUTHORIZED\"]=157;values[valuesById[158]=\"INVALID_TOPIC_MESSAGE\"]=158;values[valuesById[159]=\"INVALID_AUTORENEW_ACCOUNT\"]=159;values[valuesById[160]=\"AUTORENEW_ACCOUNT_NOT_ALLOWED\"]=160;values[valuesById[162]=\"TOPIC_EXPIRED\"]=162;values[valuesById[163]=\"INVALID_CHUNK_NUMBER\"]=163;values[valuesById[164]=\"INVALID_CHUNK_TRANSACTION_ID\"]=164;values[valuesById[165]=\"ACCOUNT_FROZEN_FOR_TOKEN\"]=165;values[valuesById[166]=\"TOKENS_PER_ACCOUNT_LIMIT_EXCEEDED\"]=166;values[valuesById[167]=\"INVALID_TOKEN_ID\"]=167;values[valuesById[168]=\"INVALID_TOKEN_DECIMALS\"]=168;values[valuesById[169]=\"INVALID_TOKEN_INITIAL_SUPPLY\"]=169;values[valuesById[170]=\"INVALID_TREASURY_ACCOUNT_FOR_TOKEN\"]=170;values[valuesById[171]=\"INVALID_TOKEN_SYMBOL\"]=171;values[valuesById[172]=\"TOKEN_HAS_NO_FREEZE_KEY\"]=172;values[valuesById[173]=\"TRANSFERS_NOT_ZERO_SUM_FOR_TOKEN\"]=173;values[valuesById[174]=\"MISSING_TOKEN_SYMBOL\"]=174;values[valuesById[175]=\"TOKEN_SYMBOL_TOO_LONG\"]=175;values[valuesById[176]=\"ACCOUNT_KYC_NOT_GRANTED_FOR_TOKEN\"]=176;values[valuesById[177]=\"TOKEN_HAS_NO_KYC_KEY\"]=177;values[valuesById[178]=\"INSUFFICIENT_TOKEN_BALANCE\"]=178;values[valuesById[179]=\"TOKEN_WAS_DELETED\"]=179;values[valuesById[180]=\"TOKEN_HAS_NO_SUPPLY_KEY\"]=180;values[valuesById[181]=\"TOKEN_HAS_NO_WIPE_KEY\"]=181;values[valuesById[182]=\"INVALID_TOKEN_MINT_AMOUNT\"]=182;values[valuesById[183]=\"INVALID_TOKEN_BURN_AMOUNT\"]=183;values[valuesById[184]=\"TOKEN_NOT_ASSOCIATED_TO_ACCOUNT\"]=184;values[valuesById[185]=\"CANNOT_WIPE_TOKEN_TREASURY_ACCOUNT\"]=185;values[valuesById[186]=\"INVALID_KYC_KEY\"]=186;values[valuesById[187]=\"INVALID_WIPE_KEY\"]=187;values[valuesById[188]=\"INVALID_FREEZE_KEY\"]=188;values[valuesById[189]=\"INVALID_SUPPLY_KEY\"]=189;values[valuesById[190]=\"MISSING_TOKEN_NAME\"]=190;values[valuesById[191]=\"TOKEN_NAME_TOO_LONG\"]=191;values[valuesById[192]=\"INVALID_WIPING_AMOUNT\"]=192;values[valuesById[193]=\"TOKEN_IS_IMMUTABLE\"]=193;values[valuesById[194]=\"TOKEN_ALREADY_ASSOCIATED_TO_ACCOUNT\"]=194;values[valuesById[195]=\"TRANSACTION_REQUIRES_ZERO_TOKEN_BALANCES\"]=195;values[valuesById[196]=\"ACCOUNT_IS_TREASURY\"]=196;values[valuesById[197]=\"TOKEN_ID_REPEATED_IN_TOKEN_LIST\"]=197;values[valuesById[198]=\"TOKEN_TRANSFER_LIST_SIZE_LIMIT_EXCEEDED\"]=198;values[valuesById[199]=\"EMPTY_TOKEN_TRANSFER_BODY\"]=199;values[valuesById[200]=\"EMPTY_TOKEN_TRANSFER_ACCOUNT_AMOUNTS\"]=200;values[valuesById[201]=\"INVALID_SCHEDULE_ID\"]=201;values[valuesById[202]=\"SCHEDULE_IS_IMMUTABLE\"]=202;values[valuesById[203]=\"INVALID_SCHEDULE_PAYER_ID\"]=203;values[valuesById[204]=\"INVALID_SCHEDULE_ACCOUNT_ID\"]=204;values[valuesById[205]=\"NO_NEW_VALID_SIGNATURES\"]=205;values[valuesById[206]=\"UNRESOLVABLE_REQUIRED_SIGNERS\"]=206;values[valuesById[207]=\"SCHEDULED_TRANSACTION_NOT_IN_WHITELIST\"]=207;values[valuesById[208]=\"SOME_SIGNATURES_WERE_INVALID\"]=208;values[valuesById[209]=\"TRANSACTION_ID_FIELD_NOT_ALLOWED\"]=209;values[valuesById[210]=\"IDENTICAL_SCHEDULE_ALREADY_CREATED\"]=210;values[valuesById[211]=\"INVALID_ZERO_BYTE_IN_STRING\"]=211;values[valuesById[212]=\"SCHEDULE_ALREADY_DELETED\"]=212;values[valuesById[213]=\"SCHEDULE_ALREADY_EXECUTED\"]=213;values[valuesById[214]=\"MESSAGE_SIZE_TOO_LARGE\"]=214;values[valuesById[215]=\"OPERATION_REPEATED_IN_BUCKET_GROUPS\"]=215;values[valuesById[216]=\"BUCKET_CAPACITY_OVERFLOW\"]=216;values[valuesById[217]=\"NODE_CAPACITY_NOT_SUFFICIENT_FOR_OPERATION\"]=217;values[valuesById[218]=\"BUCKET_HAS_NO_THROTTLE_GROUPS\"]=218;values[valuesById[219]=\"THROTTLE_GROUP_HAS_ZERO_OPS_PER_SEC\"]=219;values[valuesById[220]=\"SUCCESS_BUT_MISSING_EXPECTED_OPERATION\"]=220;values[valuesById[221]=\"UNPARSEABLE_THROTTLE_DEFINITIONS\"]=221;values[valuesById[222]=\"INVALID_THROTTLE_DEFINITIONS\"]=222;values[valuesById[223]=\"ACCOUNT_EXPIRED_AND_PENDING_REMOVAL\"]=223;values[valuesById[224]=\"INVALID_TOKEN_MAX_SUPPLY\"]=224;values[valuesById[225]=\"INVALID_TOKEN_NFT_SERIAL_NUMBER\"]=225;values[valuesById[226]=\"INVALID_NFT_ID\"]=226;values[valuesById[227]=\"METADATA_TOO_LONG\"]=227;values[valuesById[228]=\"BATCH_SIZE_LIMIT_EXCEEDED\"]=228;values[valuesById[229]=\"INVALID_QUERY_RANGE\"]=229;values[valuesById[230]=\"FRACTION_DIVIDES_BY_ZERO\"]=230;values[valuesById[231]=\"INSUFFICIENT_PAYER_BALANCE_FOR_CUSTOM_FEE\"]=231;values[valuesById[232]=\"CUSTOM_FEES_LIST_TOO_LONG\"]=232;values[valuesById[233]=\"INVALID_CUSTOM_FEE_COLLECTOR\"]=233;values[valuesById[234]=\"INVALID_TOKEN_ID_IN_CUSTOM_FEES\"]=234;values[valuesById[235]=\"TOKEN_NOT_ASSOCIATED_TO_FEE_COLLECTOR\"]=235;values[valuesById[236]=\"TOKEN_MAX_SUPPLY_REACHED\"]=236;values[valuesById[237]=\"SENDER_DOES_NOT_OWN_NFT_SERIAL_NO\"]=237;values[valuesById[238]=\"CUSTOM_FEE_NOT_FULLY_SPECIFIED\"]=238;values[valuesById[239]=\"CUSTOM_FEE_MUST_BE_POSITIVE\"]=239;values[valuesById[240]=\"TOKEN_HAS_NO_FEE_SCHEDULE_KEY\"]=240;values[valuesById[241]=\"CUSTOM_FEE_OUTSIDE_NUMERIC_RANGE\"]=241;values[valuesById[242]=\"ROYALTY_FRACTION_CANNOT_EXCEED_ONE\"]=242;values[valuesById[243]=\"FRACTIONAL_FEE_MAX_AMOUNT_LESS_THAN_MIN_AMOUNT\"]=243;values[valuesById[244]=\"CUSTOM_SCHEDULE_ALREADY_HAS_NO_FEES\"]=244;values[valuesById[245]=\"CUSTOM_FEE_DENOMINATION_MUST_BE_FUNGIBLE_COMMON\"]=245;values[valuesById[246]=\"CUSTOM_FRACTIONAL_FEE_ONLY_ALLOWED_FOR_FUNGIBLE_COMMON\"]=246;values[valuesById[247]=\"INVALID_CUSTOM_FEE_SCHEDULE_KEY\"]=247;values[valuesById[248]=\"INVALID_TOKEN_MINT_METADATA\"]=248;values[valuesById[249]=\"INVALID_TOKEN_BURN_METADATA\"]=249;values[valuesById[250]=\"CURRENT_TREASURY_STILL_OWNS_NFTS\"]=250;values[valuesById[251]=\"ACCOUNT_STILL_OWNS_NFTS\"]=251;values[valuesById[252]=\"TREASURY_MUST_OWN_BURNED_NFT\"]=252;values[valuesById[253]=\"ACCOUNT_DOES_NOT_OWN_WIPED_NFT\"]=253;values[valuesById[254]=\"ACCOUNT_AMOUNT_TRANSFERS_ONLY_ALLOWED_FOR_FUNGIBLE_COMMON\"]=254;values[valuesById[255]=\"MAX_NFTS_IN_PRICE_REGIME_HAVE_BEEN_MINTED\"]=255;values[valuesById[256]=\"PAYER_ACCOUNT_DELETED\"]=256;values[valuesById[257]=\"CUSTOM_FEE_CHARGING_EXCEEDED_MAX_RECURSION_DEPTH\"]=257;values[valuesById[258]=\"CUSTOM_FEE_CHARGING_EXCEEDED_MAX_ACCOUNT_AMOUNTS\"]=258;values[valuesById[259]=\"INSUFFICIENT_SENDER_ACCOUNT_BALANCE_FOR_CUSTOM_FEE\"]=259;values[valuesById[260]=\"SERIAL_NUMBER_LIMIT_REACHED\"]=260;values[valuesById[261]=\"CUSTOM_ROYALTY_FEE_ONLY_ALLOWED_FOR_NON_FUNGIBLE_UNIQUE\"]=261;values[valuesById[262]=\"NO_REMAINING_AUTOMATIC_ASSOCIATIONS\"]=262;values[valuesById[263]=\"EXISTING_AUTOMATIC_ASSOCIATIONS_EXCEED_GIVEN_LIMIT\"]=263;values[valuesById[264]=\"REQUESTED_NUM_AUTOMATIC_ASSOCIATIONS_EXCEEDS_ASSOCIATION_LIMIT\"]=264;values[valuesById[265]=\"TOKEN_IS_PAUSED\"]=265;values[valuesById[266]=\"TOKEN_HAS_NO_PAUSE_KEY\"]=266;values[valuesById[267]=\"INVALID_PAUSE_KEY\"]=267;values[valuesById[268]=\"FREEZE_UPDATE_FILE_DOES_NOT_EXIST\"]=268;values[valuesById[269]=\"FREEZE_UPDATE_FILE_HASH_DOES_NOT_MATCH\"]=269;values[valuesById[270]=\"NO_UPGRADE_HAS_BEEN_PREPARED\"]=270;values[valuesById[271]=\"NO_FREEZE_IS_SCHEDULED\"]=271;values[valuesById[272]=\"UPDATE_FILE_HASH_CHANGED_SINCE_PREPARE_UPGRADE\"]=272;values[valuesById[273]=\"FREEZE_START_TIME_MUST_BE_FUTURE\"]=273;values[valuesById[274]=\"PREPARED_UPDATE_FILE_IS_IMMUTABLE\"]=274;values[valuesById[275]=\"FREEZE_ALREADY_SCHEDULED\"]=275;values[valuesById[276]=\"FREEZE_UPGRADE_IN_PROGRESS\"]=276;values[valuesById[277]=\"UPDATE_FILE_ID_DOES_NOT_MATCH_PREPARED\"]=277;values[valuesById[278]=\"UPDATE_FILE_HASH_DOES_NOT_MATCH_PREPARED\"]=278;values[valuesById[279]=\"CONSENSUS_GAS_EXHAUSTED\"]=279;values[valuesById[280]=\"REVERTED_SUCCESS\"]=280;values[valuesById[281]=\"MAX_STORAGE_IN_PRICE_REGIME_HAS_BEEN_USED\"]=281;values[valuesById[282]=\"INVALID_ALIAS_KEY\"]=282;values[valuesById[283]=\"UNEXPECTED_TOKEN_DECIMALS\"]=283;values[valuesById[284]=\"INVALID_PROXY_ACCOUNT_ID\"]=284;values[valuesById[285]=\"INVALID_TRANSFER_ACCOUNT_ID\"]=285;values[valuesById[286]=\"INVALID_FEE_COLLECTOR_ACCOUNT_ID\"]=286;values[valuesById[287]=\"ALIAS_IS_IMMUTABLE\"]=287;values[valuesById[288]=\"SPENDER_ACCOUNT_SAME_AS_OWNER\"]=288;values[valuesById[289]=\"AMOUNT_EXCEEDS_TOKEN_MAX_SUPPLY\"]=289;values[valuesById[290]=\"NEGATIVE_ALLOWANCE_AMOUNT\"]=290;values[valuesById[291]=\"CANNOT_APPROVE_FOR_ALL_FUNGIBLE_COMMON\"]=291;values[valuesById[292]=\"SPENDER_DOES_NOT_HAVE_ALLOWANCE\"]=292;values[valuesById[293]=\"AMOUNT_EXCEEDS_ALLOWANCE\"]=293;values[valuesById[294]=\"MAX_ALLOWANCES_EXCEEDED\"]=294;values[valuesById[295]=\"EMPTY_ALLOWANCES\"]=295;values[valuesById[296]=\"SPENDER_ACCOUNT_REPEATED_IN_ALLOWANCES\"]=296;values[valuesById[297]=\"REPEATED_SERIAL_NUMS_IN_NFT_ALLOWANCES\"]=297;values[valuesById[298]=\"FUNGIBLE_TOKEN_IN_NFT_ALLOWANCES\"]=298;values[valuesById[299]=\"NFT_IN_FUNGIBLE_TOKEN_ALLOWANCES\"]=299;values[valuesById[300]=\"INVALID_ALLOWANCE_OWNER_ID\"]=300;values[valuesById[301]=\"INVALID_ALLOWANCE_SPENDER_ID\"]=301;values[valuesById[302]=\"REPEATED_ALLOWANCES_TO_DELETE\"]=302;values[valuesById[303]=\"INVALID_DELEGATING_SPENDER\"]=303;values[valuesById[304]=\"DELEGATING_SPENDER_CANNOT_GRANT_APPROVE_FOR_ALL\"]=304;values[valuesById[305]=\"DELEGATING_SPENDER_DOES_NOT_HAVE_APPROVE_FOR_ALL\"]=305;values[valuesById[306]=\"SCHEDULE_EXPIRATION_TIME_TOO_FAR_IN_FUTURE\"]=306;values[valuesById[307]=\"SCHEDULE_EXPIRATION_TIME_MUST_BE_HIGHER_THAN_CONSENSUS_TIME\"]=307;values[valuesById[308]=\"SCHEDULE_FUTURE_THROTTLE_EXCEEDED\"]=308;values[valuesById[309]=\"SCHEDULE_FUTURE_GAS_LIMIT_EXCEEDED\"]=309;values[valuesById[310]=\"INVALID_ETHEREUM_TRANSACTION\"]=310;values[valuesById[311]=\"WRONG_CHAIN_ID\"]=311;values[valuesById[312]=\"WRONG_NONCE\"]=312;values[valuesById[313]=\"ACCESS_LIST_UNSUPPORTED\"]=313;values[valuesById[314]=\"SCHEDULE_PENDING_EXPIRATION\"]=314;values[valuesById[315]=\"CONTRACT_IS_TOKEN_TREASURY\"]=315;values[valuesById[316]=\"CONTRACT_HAS_NON_ZERO_TOKEN_BALANCES\"]=316;values[valuesById[317]=\"CONTRACT_EXPIRED_AND_PENDING_REMOVAL\"]=317;values[valuesById[318]=\"CONTRACT_HAS_NO_AUTO_RENEW_ACCOUNT\"]=318;values[valuesById[319]=\"PERMANENT_REMOVAL_REQUIRES_SYSTEM_INITIATION\"]=319;values[valuesById[320]=\"PROXY_ACCOUNT_ID_FIELD_IS_DEPRECATED\"]=320;values[valuesById[321]=\"SELF_STAKING_IS_NOT_ALLOWED\"]=321;values[valuesById[322]=\"INVALID_STAKING_ID\"]=322;values[valuesById[323]=\"STAKING_NOT_ENABLED\"]=323;values[valuesById[324]=\"INVALID_PRNG_RANGE\"]=324;values[valuesById[325]=\"MAX_ENTITIES_IN_PRICE_REGIME_HAVE_BEEN_CREATED\"]=325;values[valuesById[326]=\"INVALID_FULL_PREFIX_SIGNATURE_FOR_PRECOMPILE\"]=326;values[valuesById[327]=\"INSUFFICIENT_BALANCES_FOR_STORAGE_RENT\"]=327;values[valuesById[328]=\"MAX_CHILD_RECORDS_EXCEEDED\"]=328;values[valuesById[329]=\"INSUFFICIENT_BALANCES_FOR_RENEWAL_FEES\"]=329;values[valuesById[330]=\"TRANSACTION_HAS_UNKNOWN_FIELDS\"]=330;values[valuesById[331]=\"ACCOUNT_IS_IMMUTABLE\"]=331;values[valuesById[332]=\"ALIAS_ALREADY_ASSIGNED\"]=332;values[valuesById[333]=\"INVALID_METADATA_KEY\"]=333;values[valuesById[334]=\"TOKEN_HAS_NO_METADATA_KEY\"]=334;values[valuesById[335]=\"MISSING_TOKEN_METADATA\"]=335;values[valuesById[336]=\"MISSING_SERIAL_NUMBERS\"]=336;values[valuesById[337]=\"TOKEN_HAS_NO_ADMIN_KEY\"]=337;values[valuesById[338]=\"NODE_DELETED\"]=338;values[valuesById[339]=\"INVALID_NODE_ID\"]=339;values[valuesById[340]=\"INVALID_GOSSIP_ENDPOINT\"]=340;values[valuesById[341]=\"INVALID_NODE_ACCOUNT_ID\"]=341;values[valuesById[342]=\"INVALID_NODE_DESCRIPTION\"]=342;values[valuesById[343]=\"INVALID_SERVICE_ENDPOINT\"]=343;values[valuesById[344]=\"INVALID_GOSSIP_CA_CERTIFICATE\"]=344;values[valuesById[345]=\"INVALID_GRPC_CERTIFICATE\"]=345;values[valuesById[346]=\"INVALID_MAX_AUTO_ASSOCIATIONS\"]=346;values[valuesById[347]=\"MAX_NODES_CREATED\"]=347;values[valuesById[348]=\"IP_FQDN_CANNOT_BE_SET_FOR_SAME_ENDPOINT\"]=348;values[valuesById[349]=\"GOSSIP_ENDPOINT_CANNOT_HAVE_FQDN\"]=349;values[valuesById[350]=\"FQDN_SIZE_TOO_LARGE\"]=350;values[valuesById[351]=\"INVALID_ENDPOINT\"]=351;values[valuesById[352]=\"GOSSIP_ENDPOINTS_EXCEEDED_LIMIT\"]=352;values[valuesById[353]=\"TOKEN_REFERENCE_REPEATED\"]=353;values[valuesById[354]=\"INVALID_OWNER_ID\"]=354;values[valuesById[355]=\"TOKEN_REFERENCE_LIST_SIZE_LIMIT_EXCEEDED\"]=355;values[valuesById[356]=\"SERVICE_ENDPOINTS_EXCEEDED_LIMIT\"]=356;values[valuesById[357]=\"INVALID_IPV4_ADDRESS\"]=357;values[valuesById[358]=\"EMPTY_TOKEN_REFERENCE_LIST\"]=358;values[valuesById[359]=\"UPDATE_NODE_ACCOUNT_NOT_ALLOWED\"]=359;values[valuesById[360]=\"TOKEN_HAS_NO_METADATA_OR_SUPPLY_KEY\"]=360;values[valuesById[361]=\"EMPTY_PENDING_AIRDROP_ID_LIST\"]=361;values[valuesById[362]=\"PENDING_AIRDROP_ID_REPEATED\"]=362;values[valuesById[363]=\"PENDING_AIRDROP_ID_LIST_TOO_LONG\"]=363;values[valuesById[364]=\"PENDING_NFT_AIRDROP_ALREADY_EXISTS\"]=364;values[valuesById[365]=\"ACCOUNT_HAS_PENDING_AIRDROPS\"]=365;values[valuesById[366]=\"THROTTLED_AT_CONSENSUS\"]=366;values[valuesById[367]=\"INVALID_PENDING_AIRDROP_ID\"]=367;values[valuesById[368]=\"TOKEN_AIRDROP_WITH_FALLBACK_ROYALTY\"]=368;values[valuesById[369]=\"INVALID_TOKEN_IN_PENDING_AIRDROP\"]=369;values[valuesById[370]=\"SCHEDULE_EXPIRY_IS_BUSY\"]=370;values[valuesById[371]=\"INVALID_GRPC_CERTIFICATE_HASH\"]=371;values[valuesById[372]=\"MISSING_EXPIRY_TIME\"]=372;values[valuesById[373]=\"NO_SCHEDULING_ALLOWED_AFTER_SCHEDULED_RECURSION\"]=373;values[valuesById[374]=\"RECURSIVE_SCHEDULING_LIMIT_REACHED\"]=374;values[valuesById[375]=\"WAITING_FOR_LEDGER_ID\"]=375;values[valuesById[376]=\"MAX_ENTRIES_FOR_FEE_EXEMPT_KEY_LIST_EXCEEDED\"]=376;values[valuesById[377]=\"FEE_EXEMPT_KEY_LIST_CONTAINS_DUPLICATED_KEYS\"]=377;values[valuesById[378]=\"INVALID_KEY_IN_FEE_EXEMPT_KEY_LIST\"]=378;values[valuesById[379]=\"INVALID_FEE_SCHEDULE_KEY\"]=379;values[valuesById[380]=\"FEE_SCHEDULE_KEY_CANNOT_BE_UPDATED\"]=380;values[valuesById[381]=\"FEE_SCHEDULE_KEY_NOT_SET\"]=381;values[valuesById[382]=\"MAX_CUSTOM_FEE_LIMIT_EXCEEDED\"]=382;values[valuesById[383]=\"NO_VALID_MAX_CUSTOM_FEE\"]=383;values[valuesById[384]=\"INVALID_MAX_CUSTOM_FEES\"]=384;values[valuesById[385]=\"DUPLICATE_DENOMINATION_IN_MAX_CUSTOM_FEE_LIST\"]=385;values[valuesById[386]=\"DUPLICATE_ACCOUNT_ID_IN_MAX_CUSTOM_FEE_LIST\"]=386;values[valuesById[387]=\"MAX_CUSTOM_FEES_IS_NOT_SUPPORTED\"]=387;values[valuesById[388]=\"BATCH_LIST_EMPTY\"]=388;values[valuesById[389]=\"BATCH_LIST_CONTAINS_DUPLICATES\"]=389;values[valuesById[390]=\"BATCH_TRANSACTION_IN_BLACKLIST\"]=390;values[valuesById[391]=\"INNER_TRANSACTION_FAILED\"]=391;values[valuesById[392]=\"MISSING_BATCH_KEY\"]=392;values[valuesById[393]=\"BATCH_KEY_SET_ON_NON_INNER_TRANSACTION\"]=393;values[valuesById[394]=\"INVALID_BATCH_KEY\"]=394;values[valuesById[395]=\"SCHEDULE_EXPIRY_NOT_CONFIGURABLE\"]=395;values[valuesById[396]=\"CREATING_SYSTEM_ENTITIES\"]=396;return values;}();proto.Transaction=function(){function Transaction(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.body=$root.proto.TransactionBody.decode(r,r.uint32());break;}case 2:{m.sigs=$root.proto.SignatureList.decode(r,r.uint32());break;}case 3:{m.sigMap=$root.proto.SignatureMap.decode(r,r.uint32());break;}case 4:{m.bodyBytes=r.bytes();break;}case 5:{m.signedTransactionBytes=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};Transaction.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.Transaction\";};return Transaction;}();proto.TransactionBody=function(){function TransactionBody(p){this.maxCustomFees=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.transactionID=$root.proto.TransactionID.decode(r,r.uint32());break;}case 2:{m.nodeAccountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 3:{m.transactionFee=r.uint64();break;}case 4:{m.transactionValidDuration=$root.proto.Duration.decode(r,r.uint32());break;}case 5:{m.generateRecord=r.bool();break;}case 6:{m.memo=r.string();break;}case 73:{m.batchKey=$root.proto.Key.decode(r,r.uint32());break;}case 7:{m.contractCall=$root.proto.ContractCallTransactionBody.decode(r,r.uint32());break;}case 8:{m.contractCreateInstance=$root.proto.ContractCreateTransactionBody.decode(r,r.uint32());break;}case 9:{m.contractUpdateInstance=$root.proto.ContractUpdateTransactionBody.decode(r,r.uint32());break;}case 10:{m.cryptoAddLiveHash=$root.proto.CryptoAddLiveHashTransactionBody.decode(r,r.uint32());break;}case 11:{m.cryptoCreateAccount=$root.proto.CryptoCreateTransactionBody.decode(r,r.uint32());break;}case 12:{m.cryptoDelete=$root.proto.CryptoDeleteTransactionBody.decode(r,r.uint32());break;}case 13:{m.cryptoDeleteLiveHash=$root.proto.CryptoDeleteLiveHashTransactionBody.decode(r,r.uint32());break;}case 14:{m.cryptoTransfer=$root.proto.CryptoTransferTransactionBody.decode(r,r.uint32());break;}case 15:{m.cryptoUpdateAccount=$root.proto.CryptoUpdateTransactionBody.decode(r,r.uint32());break;}case 16:{m.fileAppend=$root.proto.FileAppendTransactionBody.decode(r,r.uint32());break;}case 17:{m.fileCreate=$root.proto.FileCreateTransactionBody.decode(r,r.uint32());break;}case 18:{m.fileDelete=$root.proto.FileDeleteTransactionBody.decode(r,r.uint32());break;}case 19:{m.fileUpdate=$root.proto.FileUpdateTransactionBody.decode(r,r.uint32());break;}case 20:{m.systemDelete=$root.proto.SystemDeleteTransactionBody.decode(r,r.uint32());break;}case 21:{m.systemUndelete=$root.proto.SystemUndeleteTransactionBody.decode(r,r.uint32());break;}case 22:{m.contractDeleteInstance=$root.proto.ContractDeleteTransactionBody.decode(r,r.uint32());break;}case 23:{m.freeze=$root.proto.FreezeTransactionBody.decode(r,r.uint32());break;}case 24:{m.consensusCreateTopic=$root.proto.ConsensusCreateTopicTransactionBody.decode(r,r.uint32());break;}case 25:{m.consensusUpdateTopic=$root.proto.ConsensusUpdateTopicTransactionBody.decode(r,r.uint32());break;}case 26:{m.consensusDeleteTopic=$root.proto.ConsensusDeleteTopicTransactionBody.decode(r,r.uint32());break;}case 27:{m.consensusSubmitMessage=$root.proto.ConsensusSubmitMessageTransactionBody.decode(r,r.uint32());break;}case 28:{m.uncheckedSubmit=$root.proto.UncheckedSubmitBody.decode(r,r.uint32());break;}case 29:{m.tokenCreation=$root.proto.TokenCreateTransactionBody.decode(r,r.uint32());break;}case 31:{m.tokenFreeze=$root.proto.TokenFreezeAccountTransactionBody.decode(r,r.uint32());break;}case 32:{m.tokenUnfreeze=$root.proto.TokenUnfreezeAccountTransactionBody.decode(r,r.uint32());break;}case 33:{m.tokenGrantKyc=$root.proto.TokenGrantKycTransactionBody.decode(r,r.uint32());break;}case 34:{m.tokenRevokeKyc=$root.proto.TokenRevokeKycTransactionBody.decode(r,r.uint32());break;}case 35:{m.tokenDeletion=$root.proto.TokenDeleteTransactionBody.decode(r,r.uint32());break;}case 36:{m.tokenUpdate=$root.proto.TokenUpdateTransactionBody.decode(r,r.uint32());break;}case 37:{m.tokenMint=$root.proto.TokenMintTransactionBody.decode(r,r.uint32());break;}case 38:{m.tokenBurn=$root.proto.TokenBurnTransactionBody.decode(r,r.uint32());break;}case 39:{m.tokenWipe=$root.proto.TokenWipeAccountTransactionBody.decode(r,r.uint32());break;}case 40:{m.tokenAssociate=$root.proto.TokenAssociateTransactionBody.decode(r,r.uint32());break;}case 41:{m.tokenDissociate=$root.proto.TokenDissociateTransactionBody.decode(r,r.uint32());break;}case 42:{m.scheduleCreate=$root.proto.ScheduleCreateTransactionBody.decode(r,r.uint32());break;}case 43:{m.scheduleDelete=$root.proto.ScheduleDeleteTransactionBody.decode(r,r.uint32());break;}case 44:{m.scheduleSign=$root.proto.ScheduleSignTransactionBody.decode(r,r.uint32());break;}case 45:{m.tokenFeeScheduleUpdate=$root.proto.TokenFeeScheduleUpdateTransactionBody.decode(r,r.uint32());break;}case 46:{m.tokenPause=$root.proto.TokenPauseTransactionBody.decode(r,r.uint32());break;}case 47:{m.tokenUnpause=$root.proto.TokenUnpauseTransactionBody.decode(r,r.uint32());break;}case 48:{m.cryptoApproveAllowance=$root.proto.CryptoApproveAllowanceTransactionBody.decode(r,r.uint32());break;}case 49:{m.cryptoDeleteAllowance=$root.proto.CryptoDeleteAllowanceTransactionBody.decode(r,r.uint32());break;}case 50:{m.ethereumTransaction=$root.proto.EthereumTransactionBody.decode(r,r.uint32());break;}case 51:{m.nodeStakeUpdate=$root.proto.NodeStakeUpdateTransactionBody.decode(r,r.uint32());break;}case 52:{m.utilPrng=$root.proto.UtilPrngTransactionBody.decode(r,r.uint32());break;}case 53:{m.tokenUpdateNfts=$root.proto.TokenUpdateNftsTransactionBody.decode(r,r.uint32());break;}case 54:{m.nodeCreate=$root.com.hedera.hapi.node.addressbook.NodeCreateTransactionBody.decode(r,r.uint32());break;}case 55:{m.nodeUpdate=$root.com.hedera.hapi.node.addressbook.NodeUpdateTransactionBody.decode(r,r.uint32());break;}case 56:{m.nodeDelete=$root.com.hedera.hapi.node.addressbook.NodeDeleteTransactionBody.decode(r,r.uint32());break;}case 57:{m.tokenReject=$root.proto.TokenRejectTransactionBody.decode(r,r.uint32());break;}case 58:{m.tokenAirdrop=$root.proto.TokenAirdropTransactionBody.decode(r,r.uint32());break;}case 59:{m.tokenCancelAirdrop=$root.proto.TokenCancelAirdropTransactionBody.decode(r,r.uint32());break;}case 60:{m.tokenClaimAirdrop=$root.proto.TokenClaimAirdropTransactionBody.decode(r,r.uint32());break;}case 65:{m.stateSignatureTransaction=$root.com.hedera.hapi.platform.event.StateSignatureTransaction.decode(r,r.uint32());break;}case 66:{m.hintsPreprocessingVote=$root.com.hedera.hapi.services.auxiliary.hints.HintsPreprocessingVoteTransactionBody.decode(r,r.uint32());break;}case 67:{m.hintsKeyPublication=$root.com.hedera.hapi.services.auxiliary.hints.HintsKeyPublicationTransactionBody.decode(r,r.uint32());break;}case 68:{m.hintsPartialSignature=$root.com.hedera.hapi.services.auxiliary.hints.HintsPartialSignatureTransactionBody.decode(r,r.uint32());break;}case 69:{m.historyProofSignature=$root.com.hedera.hapi.services.auxiliary.history.HistoryProofSignatureTransactionBody.decode(r,r.uint32());break;}case 70:{m.historyProofKeyPublication=$root.com.hedera.hapi.services.auxiliary.history.HistoryProofKeyPublicationTransactionBody.decode(r,r.uint32());break;}case 71:{m.historyProofVote=$root.com.hedera.hapi.services.auxiliary.history.HistoryProofVoteTransactionBody.decode(r,r.uint32());break;}case 72:{m.crsPublication=$root.com.hedera.hapi.services.auxiliary.hints.CrsPublicationTransactionBody.decode(r,r.uint32());break;}case 74:{m.atomicBatch=$root.proto.AtomicBatchTransactionBody.decode(r,r.uint32());break;}case 1001:{if(!(m.maxCustomFees&&m.maxCustomFees.length))m.maxCustomFees=[];m.maxCustomFees.push($root.proto.CustomFeeLimit.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};TransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TransactionBody\";};return TransactionBody;}();proto.AtomicBatchTransactionBody=function(){function AtomicBatchTransactionBody(p){this.transactions=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{if(!(m.transactions&&m.transactions.length))m.transactions=[];m.transactions.push(r.bytes());break;}default:r.skipType(t&7);break;}}return m;};AtomicBatchTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.AtomicBatchTransactionBody\";};return AtomicBatchTransactionBody;}();proto.ShardID=function(){function ShardID(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.shardNum=r.int64();break;}default:r.skipType(t&7);break;}}return m;};ShardID.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ShardID\";};return ShardID;}();proto.RealmID=function(){function RealmID(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.shardNum=r.int64();break;}case 2:{m.realmNum=r.int64();break;}default:r.skipType(t&7);break;}}return m;};RealmID.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.RealmID\";};return RealmID;}();proto.TokenID=function(){function TokenID(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.shardNum=r.int64();break;}case 2:{m.realmNum=r.int64();break;}case 3:{m.tokenNum=r.int64();break;}default:r.skipType(t&7);break;}}return m;};TokenID.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenID\";};return TokenID;}();proto.BlockHashAlgorithm=function(){const valuesById={},values=Object.create(valuesById);values[valuesById[0]=\"SHA2_384\"]=0;return values;}();proto.AccountID=function(){function AccountID(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.shardNum=r.int64();break;}case 2:{m.realmNum=r.int64();break;}case 3:{m.accountNum=r.int64();break;}case 4:{m.alias=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};AccountID.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.AccountID\";};return AccountID;}();proto.NftID=function(){function NftID(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.token_ID=$root.proto.TokenID.decode(r,r.uint32());break;}case 2:{m.serialNumber=r.int64();break;}default:r.skipType(t&7);break;}}return m;};NftID.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.NftID\";};return NftID;}();proto.FileID=function(){function FileID(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.shardNum=r.int64();break;}case 2:{m.realmNum=r.int64();break;}case 3:{m.fileNum=r.int64();break;}default:r.skipType(t&7);break;}}return m;};FileID.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.FileID\";};return FileID;}();proto.ContractID=function(){function ContractID(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.shardNum=r.int64();break;}case 2:{m.realmNum=r.int64();break;}case 3:{m.contractNum=r.int64();break;}case 4:{m.evmAddress=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};ContractID.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ContractID\";};return ContractID;}();proto.TopicID=function(){function TopicID(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.shardNum=r.int64();break;}case 2:{m.realmNum=r.int64();break;}case 3:{m.topicNum=r.int64();break;}default:r.skipType(t&7);break;}}return m;};TopicID.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TopicID\";};return TopicID;}();proto.ScheduleID=function(){function ScheduleID(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.shardNum=r.int64();break;}case 2:{m.realmNum=r.int64();break;}case 3:{m.scheduleNum=r.int64();break;}default:r.skipType(t&7);break;}}return m;};ScheduleID.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ScheduleID\";};return ScheduleID;}();proto.TransactionID=function(){function TransactionID(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.transactionValidStart=$root.proto.Timestamp.decode(r,r.uint32());break;}case 2:{m.accountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 3:{m.scheduled=r.bool();break;}case 4:{m.nonce=r.int32();break;}default:r.skipType(t&7);break;}}return m;};TransactionID.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TransactionID\";};return TransactionID;}();proto.AccountAmount=function(){function AccountAmount(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.accountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 2:{m.amount=r.sint64();break;}case 3:{m.isApproval=r.bool();break;}default:r.skipType(t&7);break;}}return m;};AccountAmount.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.AccountAmount\";};return AccountAmount;}();proto.TransferList=function(){function TransferList(p){this.accountAmounts=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{if(!(m.accountAmounts&&m.accountAmounts.length))m.accountAmounts=[];m.accountAmounts.push($root.proto.AccountAmount.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};TransferList.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TransferList\";};return TransferList;}();proto.NftTransfer=function(){function NftTransfer(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.senderAccountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 2:{m.receiverAccountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 3:{m.serialNumber=r.int64();break;}case 4:{m.isApproval=r.bool();break;}default:r.skipType(t&7);break;}}return m;};NftTransfer.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.NftTransfer\";};return NftTransfer;}();proto.TokenTransferList=function(){function TokenTransferList(p){this.transfers=[];this.nftTransfers=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.token=$root.proto.TokenID.decode(r,r.uint32());break;}case 2:{if(!(m.transfers&&m.transfers.length))m.transfers=[];m.transfers.push($root.proto.AccountAmount.decode(r,r.uint32()));break;}case 3:{if(!(m.nftTransfers&&m.nftTransfers.length))m.nftTransfers=[];m.nftTransfers.push($root.proto.NftTransfer.decode(r,r.uint32()));break;}case 4:{m.expectedDecimals=$root.google.protobuf.UInt32Value.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};TokenTransferList.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenTransferList\";};return TokenTransferList;}();proto.Fraction=function(){function Fraction(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.numerator=r.int64();break;}case 2:{m.denominator=r.int64();break;}default:r.skipType(t&7);break;}}return m;};Fraction.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.Fraction\";};return Fraction;}();proto.TokenType=function(){const valuesById={},values=Object.create(valuesById);values[valuesById[0]=\"FUNGIBLE_COMMON\"]=0;values[valuesById[1]=\"NON_FUNGIBLE_UNIQUE\"]=1;return values;}();proto.SubType=function(){const valuesById={},values=Object.create(valuesById);values[valuesById[0]=\"DEFAULT\"]=0;values[valuesById[1]=\"TOKEN_FUNGIBLE_COMMON\"]=1;values[valuesById[2]=\"TOKEN_NON_FUNGIBLE_UNIQUE\"]=2;values[valuesById[3]=\"TOKEN_FUNGIBLE_COMMON_WITH_CUSTOM_FEES\"]=3;values[valuesById[4]=\"TOKEN_NON_FUNGIBLE_UNIQUE_WITH_CUSTOM_FEES\"]=4;values[valuesById[5]=\"SCHEDULE_CREATE_CONTRACT_CALL\"]=5;values[valuesById[6]=\"TOPIC_CREATE_WITH_CUSTOM_FEES\"]=6;return values;}();proto.TokenSupplyType=function(){const valuesById={},values=Object.create(valuesById);values[valuesById[0]=\"INFINITE\"]=0;values[valuesById[1]=\"FINITE\"]=1;return values;}();proto.TokenKeyValidation=function(){const valuesById={},values=Object.create(valuesById);values[valuesById[0]=\"FULL_VALIDATION\"]=0;values[valuesById[1]=\"NO_VALIDATION\"]=1;return values;}();proto.TokenFreezeStatus=function(){const valuesById={},values=Object.create(valuesById);values[valuesById[0]=\"FreezeNotApplicable\"]=0;values[valuesById[1]=\"Frozen\"]=1;values[valuesById[2]=\"Unfrozen\"]=2;return values;}();proto.TokenKycStatus=function(){const valuesById={},values=Object.create(valuesById);values[valuesById[0]=\"KycNotApplicable\"]=0;values[valuesById[1]=\"Granted\"]=1;values[valuesById[2]=\"Revoked\"]=2;return values;}();proto.TokenPauseStatus=function(){const valuesById={},values=Object.create(valuesById);values[valuesById[0]=\"PauseNotApplicable\"]=0;values[valuesById[1]=\"Paused\"]=1;values[valuesById[2]=\"Unpaused\"]=2;return values;}();proto.Key=function(){function Key(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.contractID=$root.proto.ContractID.decode(r,r.uint32());break;}case 2:{m.ed25519=r.bytes();break;}case 3:{m.RSA_3072=r.bytes();break;}case 4:{m.ECDSA_384=r.bytes();break;}case 5:{m.thresholdKey=$root.proto.ThresholdKey.decode(r,r.uint32());break;}case 6:{m.keyList=$root.proto.KeyList.decode(r,r.uint32());break;}case 7:{m.ECDSASecp256k1=r.bytes();break;}case 8:{m.delegatableContractId=$root.proto.ContractID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};Key.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.Key\";};return Key;}();proto.ThresholdKey=function(){function ThresholdKey(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.threshold=r.uint32();break;}case 2:{m.keys=$root.proto.KeyList.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};ThresholdKey.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ThresholdKey\";};return ThresholdKey;}();proto.KeyList=function(){function KeyList(p){this.keys=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{if(!(m.keys&&m.keys.length))m.keys=[];m.keys.push($root.proto.Key.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};KeyList.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.KeyList\";};return KeyList;}();proto.Signature=function(){function Signature(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.contract=r.bytes();break;}case 2:{m.ed25519=r.bytes();break;}case 3:{m.RSA_3072=r.bytes();break;}case 4:{m.ECDSA_384=r.bytes();break;}case 5:{m.thresholdSignature=$root.proto.ThresholdSignature.decode(r,r.uint32());break;}case 6:{m.signatureList=$root.proto.SignatureList.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};Signature.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.Signature\";};return Signature;}();proto.ThresholdSignature=function(){function ThresholdSignature(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 2:{m.sigs=$root.proto.SignatureList.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};ThresholdSignature.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ThresholdSignature\";};return ThresholdSignature;}();proto.SignatureList=function(){function SignatureList(p){this.sigs=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 2:{if(!(m.sigs&&m.sigs.length))m.sigs=[];m.sigs.push($root.proto.Signature.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};SignatureList.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.SignatureList\";};return SignatureList;}();proto.SignaturePair=function(){function SignaturePair(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.pubKeyPrefix=r.bytes();break;}case 2:{m.contract=r.bytes();break;}case 3:{m.ed25519=r.bytes();break;}case 4:{m.RSA_3072=r.bytes();break;}case 5:{m.ECDSA_384=r.bytes();break;}case 6:{m.ECDSASecp256k1=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};SignaturePair.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.SignaturePair\";};return SignaturePair;}();proto.SignatureMap=function(){function SignatureMap(p){this.sigPair=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{if(!(m.sigPair&&m.sigPair.length))m.sigPair=[];m.sigPair.push($root.proto.SignaturePair.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};SignatureMap.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.SignatureMap\";};return SignatureMap;}();proto.HederaFunctionality=function(){const valuesById={},values=Object.create(valuesById);values[valuesById[0]=\"NONE\"]=0;values[valuesById[1]=\"CryptoTransfer\"]=1;values[valuesById[2]=\"CryptoUpdate\"]=2;values[valuesById[3]=\"CryptoDelete\"]=3;values[valuesById[4]=\"CryptoAddLiveHash\"]=4;values[valuesById[5]=\"CryptoDeleteLiveHash\"]=5;values[valuesById[6]=\"ContractCall\"]=6;values[valuesById[7]=\"ContractCreate\"]=7;values[valuesById[8]=\"ContractUpdate\"]=8;values[valuesById[9]=\"FileCreate\"]=9;values[valuesById[10]=\"FileAppend\"]=10;values[valuesById[11]=\"FileUpdate\"]=11;values[valuesById[12]=\"FileDelete\"]=12;values[valuesById[13]=\"CryptoGetAccountBalance\"]=13;values[valuesById[14]=\"CryptoGetAccountRecords\"]=14;values[valuesById[15]=\"CryptoGetInfo\"]=15;values[valuesById[16]=\"ContractCallLocal\"]=16;values[valuesById[17]=\"ContractGetInfo\"]=17;values[valuesById[18]=\"ContractGetBytecode\"]=18;values[valuesById[19]=\"GetBySolidityID\"]=19;values[valuesById[20]=\"GetByKey\"]=20;values[valuesById[21]=\"CryptoGetLiveHash\"]=21;values[valuesById[22]=\"CryptoGetStakers\"]=22;values[valuesById[23]=\"FileGetContents\"]=23;values[valuesById[24]=\"FileGetInfo\"]=24;values[valuesById[25]=\"TransactionGetRecord\"]=25;values[valuesById[26]=\"ContractGetRecords\"]=26;values[valuesById[27]=\"CryptoCreate\"]=27;values[valuesById[28]=\"SystemDelete\"]=28;values[valuesById[29]=\"SystemUndelete\"]=29;values[valuesById[30]=\"ContractDelete\"]=30;values[valuesById[31]=\"Freeze\"]=31;values[valuesById[32]=\"CreateTransactionRecord\"]=32;values[valuesById[33]=\"CryptoAccountAutoRenew\"]=33;values[valuesById[34]=\"ContractAutoRenew\"]=34;values[valuesById[35]=\"GetVersionInfo\"]=35;values[valuesById[36]=\"TransactionGetReceipt\"]=36;values[valuesById[50]=\"ConsensusCreateTopic\"]=50;values[valuesById[51]=\"ConsensusUpdateTopic\"]=51;values[valuesById[52]=\"ConsensusDeleteTopic\"]=52;values[valuesById[53]=\"ConsensusGetTopicInfo\"]=53;values[valuesById[54]=\"ConsensusSubmitMessage\"]=54;values[valuesById[55]=\"UncheckedSubmit\"]=55;values[valuesById[56]=\"TokenCreate\"]=56;values[valuesById[58]=\"TokenGetInfo\"]=58;values[valuesById[59]=\"TokenFreezeAccount\"]=59;values[valuesById[60]=\"TokenUnfreezeAccount\"]=60;values[valuesById[61]=\"TokenGrantKycToAccount\"]=61;values[valuesById[62]=\"TokenRevokeKycFromAccount\"]=62;values[valuesById[63]=\"TokenDelete\"]=63;values[valuesById[64]=\"TokenUpdate\"]=64;values[valuesById[65]=\"TokenMint\"]=65;values[valuesById[66]=\"TokenBurn\"]=66;values[valuesById[67]=\"TokenAccountWipe\"]=67;values[valuesById[68]=\"TokenAssociateToAccount\"]=68;values[valuesById[69]=\"TokenDissociateFromAccount\"]=69;values[valuesById[70]=\"ScheduleCreate\"]=70;values[valuesById[71]=\"ScheduleDelete\"]=71;values[valuesById[72]=\"ScheduleSign\"]=72;values[valuesById[73]=\"ScheduleGetInfo\"]=73;values[valuesById[74]=\"TokenGetAccountNftInfos\"]=74;values[valuesById[75]=\"TokenGetNftInfo\"]=75;values[valuesById[76]=\"TokenGetNftInfos\"]=76;values[valuesById[77]=\"TokenFeeScheduleUpdate\"]=77;values[valuesById[78]=\"NetworkGetExecutionTime\"]=78;values[valuesById[79]=\"TokenPause\"]=79;values[valuesById[80]=\"TokenUnpause\"]=80;values[valuesById[81]=\"CryptoApproveAllowance\"]=81;values[valuesById[82]=\"CryptoDeleteAllowance\"]=82;values[valuesById[83]=\"GetAccountDetails\"]=83;values[valuesById[84]=\"EthereumTransaction\"]=84;values[valuesById[85]=\"NodeStakeUpdate\"]=85;values[valuesById[86]=\"UtilPrng\"]=86;values[valuesById[87]=\"TransactionGetFastRecord\"]=87;values[valuesById[88]=\"TokenUpdateNfts\"]=88;values[valuesById[89]=\"NodeCreate\"]=89;values[valuesById[90]=\"NodeUpdate\"]=90;values[valuesById[91]=\"NodeDelete\"]=91;values[valuesById[92]=\"TokenReject\"]=92;values[valuesById[93]=\"TokenAirdrop\"]=93;values[valuesById[94]=\"TokenCancelAirdrop\"]=94;values[valuesById[95]=\"TokenClaimAirdrop\"]=95;values[valuesById[100]=\"StateSignatureTransaction\"]=100;values[valuesById[101]=\"HintsKeyPublication\"]=101;values[valuesById[102]=\"HintsPreprocessingVote\"]=102;values[valuesById[103]=\"HintsPartialSignature\"]=103;values[valuesById[104]=\"HistoryAssemblySignature\"]=104;values[valuesById[105]=\"HistoryProofKeyPublication\"]=105;values[valuesById[106]=\"HistoryProofVote\"]=106;values[valuesById[107]=\"CrsPublication\"]=107;values[valuesById[108]=\"AtomicBatch\"]=108;return values;}();proto.FeeComponents=function(){function FeeComponents(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.min=r.int64();break;}case 2:{m.max=r.int64();break;}case 3:{m.constant=r.int64();break;}case 4:{m.bpt=r.int64();break;}case 5:{m.vpt=r.int64();break;}case 6:{m.rbh=r.int64();break;}case 7:{m.sbh=r.int64();break;}case 8:{m.gas=r.int64();break;}case 9:{m.tv=r.int64();break;}case 10:{m.bpr=r.int64();break;}case 11:{m.sbpr=r.int64();break;}default:r.skipType(t&7);break;}}return m;};FeeComponents.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.FeeComponents\";};return FeeComponents;}();proto.TransactionFeeSchedule=function(){function TransactionFeeSchedule(p){this.fees=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.hederaFunctionality=r.int32();break;}case 2:{m.feeData=$root.proto.FeeData.decode(r,r.uint32());break;}case 3:{if(!(m.fees&&m.fees.length))m.fees=[];m.fees.push($root.proto.FeeData.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};TransactionFeeSchedule.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TransactionFeeSchedule\";};return TransactionFeeSchedule;}();proto.FeeData=function(){function FeeData(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.nodedata=$root.proto.FeeComponents.decode(r,r.uint32());break;}case 2:{m.networkdata=$root.proto.FeeComponents.decode(r,r.uint32());break;}case 3:{m.servicedata=$root.proto.FeeComponents.decode(r,r.uint32());break;}case 4:{m.subType=r.int32();break;}default:r.skipType(t&7);break;}}return m;};FeeData.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.FeeData\";};return FeeData;}();proto.FeeSchedule=function(){function FeeSchedule(p){this.transactionFeeSchedule=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{if(!(m.transactionFeeSchedule&&m.transactionFeeSchedule.length))m.transactionFeeSchedule=[];m.transactionFeeSchedule.push($root.proto.TransactionFeeSchedule.decode(r,r.uint32()));break;}case 2:{m.expiryTime=$root.proto.TimestampSeconds.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};FeeSchedule.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.FeeSchedule\";};return FeeSchedule;}();proto.CurrentAndNextFeeSchedule=function(){function CurrentAndNextFeeSchedule(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.currentFeeSchedule=$root.proto.FeeSchedule.decode(r,r.uint32());break;}case 2:{m.nextFeeSchedule=$root.proto.FeeSchedule.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};CurrentAndNextFeeSchedule.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.CurrentAndNextFeeSchedule\";};return CurrentAndNextFeeSchedule;}();proto.ServiceEndpoint=function(){function ServiceEndpoint(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.ipAddressV4=r.bytes();break;}case 2:{m.port=r.int32();break;}case 3:{m.domainName=r.string();break;}default:r.skipType(t&7);break;}}return m;};ServiceEndpoint.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ServiceEndpoint\";};return ServiceEndpoint;}();proto.NodeAddress=function(){function NodeAddress(p){this.serviceEndpoint=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.ipAddress=r.bytes();break;}case 2:{m.portno=r.int32();break;}case 3:{m.memo=r.bytes();break;}case 4:{m.RSA_PubKey=r.string();break;}case 5:{m.nodeId=r.int64();break;}case 6:{m.nodeAccountId=$root.proto.AccountID.decode(r,r.uint32());break;}case 7:{m.nodeCertHash=r.bytes();break;}case 8:{if(!(m.serviceEndpoint&&m.serviceEndpoint.length))m.serviceEndpoint=[];m.serviceEndpoint.push($root.proto.ServiceEndpoint.decode(r,r.uint32()));break;}case 9:{m.description=r.string();break;}case 10:{m.stake=r.int64();break;}default:r.skipType(t&7);break;}}return m;};NodeAddress.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.NodeAddress\";};return NodeAddress;}();proto.NodeAddressBook=function(){function NodeAddressBook(p){this.nodeAddress=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{if(!(m.nodeAddress&&m.nodeAddress.length))m.nodeAddress=[];m.nodeAddress.push($root.proto.NodeAddress.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};NodeAddressBook.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.NodeAddressBook\";};return NodeAddressBook;}();proto.SemanticVersion=function(){function SemanticVersion(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.major=r.int32();break;}case 2:{m.minor=r.int32();break;}case 3:{m.patch=r.int32();break;}case 4:{m.pre=r.string();break;}case 5:{m.build=r.string();break;}default:r.skipType(t&7);break;}}return m;};SemanticVersion.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.SemanticVersion\";};return SemanticVersion;}();proto.Setting=function(){function Setting(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.name=r.string();break;}case 2:{m.value=r.string();break;}case 3:{m.data=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};Setting.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.Setting\";};return Setting;}();proto.ServicesConfigurationList=function(){function ServicesConfigurationList(p){this.nameValue=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{if(!(m.nameValue&&m.nameValue.length))m.nameValue=[];m.nameValue.push($root.proto.Setting.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};ServicesConfigurationList.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ServicesConfigurationList\";};return ServicesConfigurationList;}();proto.TokenRelationship=function(){function TokenRelationship(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.tokenId=$root.proto.TokenID.decode(r,r.uint32());break;}case 2:{m.symbol=r.string();break;}case 3:{m.balance=r.uint64();break;}case 4:{m.kycStatus=r.int32();break;}case 5:{m.freezeStatus=r.int32();break;}case 6:{m.decimals=r.uint32();break;}case 7:{m.automaticAssociation=r.bool();break;}default:r.skipType(t&7);break;}}return m;};TokenRelationship.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenRelationship\";};return TokenRelationship;}();proto.TokenBalance=function(){function TokenBalance(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.tokenId=$root.proto.TokenID.decode(r,r.uint32());break;}case 2:{m.balance=r.uint64();break;}case 3:{m.decimals=r.uint32();break;}default:r.skipType(t&7);break;}}return m;};TokenBalance.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenBalance\";};return TokenBalance;}();proto.TokenBalances=function(){function TokenBalances(p){this.tokenBalances=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{if(!(m.tokenBalances&&m.tokenBalances.length))m.tokenBalances=[];m.tokenBalances.push($root.proto.TokenBalance.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};TokenBalances.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenBalances\";};return TokenBalances;}();proto.TokenAssociation=function(){function TokenAssociation(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.tokenId=$root.proto.TokenID.decode(r,r.uint32());break;}case 2:{m.accountId=$root.proto.AccountID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};TokenAssociation.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenAssociation\";};return TokenAssociation;}();proto.StakingInfo=function(){function StakingInfo(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.declineReward=r.bool();break;}case 2:{m.stakePeriodStart=$root.proto.Timestamp.decode(r,r.uint32());break;}case 3:{m.pendingReward=r.int64();break;}case 4:{m.stakedToMe=r.int64();break;}case 5:{m.stakedAccountId=$root.proto.AccountID.decode(r,r.uint32());break;}case 6:{m.stakedNodeId=r.int64();break;}default:r.skipType(t&7);break;}}return m;};StakingInfo.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.StakingInfo\";};return StakingInfo;}();proto.PendingAirdropId=function(){function PendingAirdropId(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.senderId=$root.proto.AccountID.decode(r,r.uint32());break;}case 2:{m.receiverId=$root.proto.AccountID.decode(r,r.uint32());break;}case 3:{m.fungibleTokenType=$root.proto.TokenID.decode(r,r.uint32());break;}case 4:{m.nonFungibleToken=$root.proto.NftID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};PendingAirdropId.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.PendingAirdropId\";};return PendingAirdropId;}();proto.PendingAirdropValue=function(){function PendingAirdropValue(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.amount=r.uint64();break;}default:r.skipType(t&7);break;}}return m;};PendingAirdropValue.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.PendingAirdropValue\";};return PendingAirdropValue;}();proto.Timestamp=function(){function Timestamp(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.seconds=r.int64();break;}case 2:{m.nanos=r.int32();break;}default:r.skipType(t&7);break;}}return m;};Timestamp.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.Timestamp\";};return Timestamp;}();proto.TimestampSeconds=function(){function TimestampSeconds(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.seconds=r.int64();break;}default:r.skipType(t&7);break;}}return m;};TimestampSeconds.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TimestampSeconds\";};return TimestampSeconds;}();proto.SystemDeleteTransactionBody=function(){function SystemDeleteTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.fileID=$root.proto.FileID.decode(r,r.uint32());break;}case 2:{m.contractID=$root.proto.ContractID.decode(r,r.uint32());break;}case 3:{m.expirationTime=$root.proto.TimestampSeconds.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};SystemDeleteTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.SystemDeleteTransactionBody\";};return SystemDeleteTransactionBody;}();proto.SystemUndeleteTransactionBody=function(){function SystemUndeleteTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.fileID=$root.proto.FileID.decode(r,r.uint32());break;}case 2:{m.contractID=$root.proto.ContractID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};SystemUndeleteTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.SystemUndeleteTransactionBody\";};return SystemUndeleteTransactionBody;}();proto.FreezeTransactionBody=function(){function FreezeTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.startHour=r.int32();break;}case 2:{m.startMin=r.int32();break;}case 3:{m.endHour=r.int32();break;}case 4:{m.endMin=r.int32();break;}case 5:{m.updateFile=$root.proto.FileID.decode(r,r.uint32());break;}case 6:{m.fileHash=r.bytes();break;}case 7:{m.startTime=$root.proto.Timestamp.decode(r,r.uint32());break;}case 8:{m.freezeType=r.int32();break;}default:r.skipType(t&7);break;}}return m;};FreezeTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.FreezeTransactionBody\";};return FreezeTransactionBody;}();proto.FreezeType=function(){const valuesById={},values=Object.create(valuesById);values[valuesById[0]=\"UNKNOWN_FREEZE_TYPE\"]=0;values[valuesById[1]=\"FREEZE_ONLY\"]=1;values[valuesById[2]=\"PREPARE_UPGRADE\"]=2;values[valuesById[3]=\"FREEZE_UPGRADE\"]=3;values[valuesById[4]=\"FREEZE_ABORT\"]=4;values[valuesById[5]=\"TELEMETRY_UPGRADE\"]=5;return values;}();proto.ContractCallTransactionBody=function(){function ContractCallTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.contractID=$root.proto.ContractID.decode(r,r.uint32());break;}case 2:{m.gas=r.int64();break;}case 3:{m.amount=r.int64();break;}case 4:{m.functionParameters=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};ContractCallTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ContractCallTransactionBody\";};return ContractCallTransactionBody;}();proto.ContractCreateTransactionBody=function(){function ContractCreateTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.fileID=$root.proto.FileID.decode(r,r.uint32());break;}case 16:{m.initcode=r.bytes();break;}case 3:{m.adminKey=$root.proto.Key.decode(r,r.uint32());break;}case 4:{m.gas=r.int64();break;}case 5:{m.initialBalance=r.int64();break;}case 6:{m.proxyAccountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 8:{m.autoRenewPeriod=$root.proto.Duration.decode(r,r.uint32());break;}case 9:{m.constructorParameters=r.bytes();break;}case 10:{m.shardID=$root.proto.ShardID.decode(r,r.uint32());break;}case 11:{m.realmID=$root.proto.RealmID.decode(r,r.uint32());break;}case 12:{m.newRealmAdminKey=$root.proto.Key.decode(r,r.uint32());break;}case 13:{m.memo=r.string();break;}case 14:{m.maxAutomaticTokenAssociations=r.int32();break;}case 15:{m.autoRenewAccountId=$root.proto.AccountID.decode(r,r.uint32());break;}case 17:{m.stakedAccountId=$root.proto.AccountID.decode(r,r.uint32());break;}case 18:{m.stakedNodeId=r.int64();break;}case 19:{m.declineReward=r.bool();break;}default:r.skipType(t&7);break;}}return m;};ContractCreateTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ContractCreateTransactionBody\";};return ContractCreateTransactionBody;}();proto.Duration=function(){function Duration(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.seconds=r.int64();break;}default:r.skipType(t&7);break;}}return m;};Duration.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.Duration\";};return Duration;}();proto.ContractUpdateTransactionBody=function(){function ContractUpdateTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.contractID=$root.proto.ContractID.decode(r,r.uint32());break;}case 2:{m.expirationTime=$root.proto.Timestamp.decode(r,r.uint32());break;}case 3:{m.adminKey=$root.proto.Key.decode(r,r.uint32());break;}case 6:{m.proxyAccountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 7:{m.autoRenewPeriod=$root.proto.Duration.decode(r,r.uint32());break;}case 8:{m.fileID=$root.proto.FileID.decode(r,r.uint32());break;}case 9:{m.memo=r.string();break;}case 10:{m.memoWrapper=$root.google.protobuf.StringValue.decode(r,r.uint32());break;}case 11:{m.maxAutomaticTokenAssociations=$root.google.protobuf.Int32Value.decode(r,r.uint32());break;}case 12:{m.autoRenewAccountId=$root.proto.AccountID.decode(r,r.uint32());break;}case 13:{m.stakedAccountId=$root.proto.AccountID.decode(r,r.uint32());break;}case 14:{m.stakedNodeId=r.int64();break;}case 15:{m.declineReward=$root.google.protobuf.BoolValue.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};ContractUpdateTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ContractUpdateTransactionBody\";};return ContractUpdateTransactionBody;}();proto.LiveHash=function(){function LiveHash(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.accountId=$root.proto.AccountID.decode(r,r.uint32());break;}case 2:{m.hash=r.bytes();break;}case 3:{m.keys=$root.proto.KeyList.decode(r,r.uint32());break;}case 5:{m.duration=$root.proto.Duration.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};LiveHash.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.LiveHash\";};return LiveHash;}();proto.CryptoAddLiveHashTransactionBody=function(){function CryptoAddLiveHashTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 3:{m.liveHash=$root.proto.LiveHash.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};CryptoAddLiveHashTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.CryptoAddLiveHashTransactionBody\";};return CryptoAddLiveHashTransactionBody;}();proto.CryptoCreateTransactionBody=function(){function CryptoCreateTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.key=$root.proto.Key.decode(r,r.uint32());break;}case 2:{m.initialBalance=r.uint64();break;}case 3:{m.proxyAccountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 6:{m.sendRecordThreshold=r.uint64();break;}case 7:{m.receiveRecordThreshold=r.uint64();break;}case 8:{m.receiverSigRequired=r.bool();break;}case 9:{m.autoRenewPeriod=$root.proto.Duration.decode(r,r.uint32());break;}case 10:{m.shardID=$root.proto.ShardID.decode(r,r.uint32());break;}case 11:{m.realmID=$root.proto.RealmID.decode(r,r.uint32());break;}case 12:{m.newRealmAdminKey=$root.proto.Key.decode(r,r.uint32());break;}case 13:{m.memo=r.string();break;}case 14:{m.maxAutomaticTokenAssociations=r.int32();break;}case 15:{m.stakedAccountId=$root.proto.AccountID.decode(r,r.uint32());break;}case 16:{m.stakedNodeId=r.int64();break;}case 17:{m.declineReward=r.bool();break;}case 18:{m.alias=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};CryptoCreateTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.CryptoCreateTransactionBody\";};return CryptoCreateTransactionBody;}();proto.CryptoDeleteTransactionBody=function(){function CryptoDeleteTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.transferAccountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 2:{m.deleteAccountID=$root.proto.AccountID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};CryptoDeleteTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.CryptoDeleteTransactionBody\";};return CryptoDeleteTransactionBody;}();proto.CryptoDeleteLiveHashTransactionBody=function(){function CryptoDeleteLiveHashTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.accountOfLiveHash=$root.proto.AccountID.decode(r,r.uint32());break;}case 2:{m.liveHashToDelete=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};CryptoDeleteLiveHashTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.CryptoDeleteLiveHashTransactionBody\";};return CryptoDeleteLiveHashTransactionBody;}();proto.CryptoTransferTransactionBody=function(){function CryptoTransferTransactionBody(p){this.tokenTransfers=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.transfers=$root.proto.TransferList.decode(r,r.uint32());break;}case 2:{if(!(m.tokenTransfers&&m.tokenTransfers.length))m.tokenTransfers=[];m.tokenTransfers.push($root.proto.TokenTransferList.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};CryptoTransferTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.CryptoTransferTransactionBody\";};return CryptoTransferTransactionBody;}();proto.CryptoUpdateTransactionBody=function(){function CryptoUpdateTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 2:{m.accountIDToUpdate=$root.proto.AccountID.decode(r,r.uint32());break;}case 3:{m.key=$root.proto.Key.decode(r,r.uint32());break;}case 4:{m.proxyAccountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 5:{m.proxyFraction=r.int32();break;}case 6:{m.sendRecordThreshold=r.uint64();break;}case 11:{m.sendRecordThresholdWrapper=$root.google.protobuf.UInt64Value.decode(r,r.uint32());break;}case 7:{m.receiveRecordThreshold=r.uint64();break;}case 12:{m.receiveRecordThresholdWrapper=$root.google.protobuf.UInt64Value.decode(r,r.uint32());break;}case 8:{m.autoRenewPeriod=$root.proto.Duration.decode(r,r.uint32());break;}case 9:{m.expirationTime=$root.proto.Timestamp.decode(r,r.uint32());break;}case 10:{m.receiverSigRequired=r.bool();break;}case 13:{m.receiverSigRequiredWrapper=$root.google.protobuf.BoolValue.decode(r,r.uint32());break;}case 14:{m.memo=$root.google.protobuf.StringValue.decode(r,r.uint32());break;}case 15:{m.maxAutomaticTokenAssociations=$root.google.protobuf.Int32Value.decode(r,r.uint32());break;}case 16:{m.stakedAccountId=$root.proto.AccountID.decode(r,r.uint32());break;}case 17:{m.stakedNodeId=r.int64();break;}case 18:{m.declineReward=$root.google.protobuf.BoolValue.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};CryptoUpdateTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.CryptoUpdateTransactionBody\";};return CryptoUpdateTransactionBody;}();proto.CryptoApproveAllowanceTransactionBody=function(){function CryptoApproveAllowanceTransactionBody(p){this.cryptoAllowances=[];this.nftAllowances=[];this.tokenAllowances=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{if(!(m.cryptoAllowances&&m.cryptoAllowances.length))m.cryptoAllowances=[];m.cryptoAllowances.push($root.proto.CryptoAllowance.decode(r,r.uint32()));break;}case 2:{if(!(m.nftAllowances&&m.nftAllowances.length))m.nftAllowances=[];m.nftAllowances.push($root.proto.NftAllowance.decode(r,r.uint32()));break;}case 3:{if(!(m.tokenAllowances&&m.tokenAllowances.length))m.tokenAllowances=[];m.tokenAllowances.push($root.proto.TokenAllowance.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};CryptoApproveAllowanceTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.CryptoApproveAllowanceTransactionBody\";};return CryptoApproveAllowanceTransactionBody;}();proto.CryptoAllowance=function(){function CryptoAllowance(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.owner=$root.proto.AccountID.decode(r,r.uint32());break;}case 2:{m.spender=$root.proto.AccountID.decode(r,r.uint32());break;}case 3:{m.amount=r.int64();break;}default:r.skipType(t&7);break;}}return m;};CryptoAllowance.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.CryptoAllowance\";};return CryptoAllowance;}();proto.NftAllowance=function(){function NftAllowance(p){this.serialNumbers=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.tokenId=$root.proto.TokenID.decode(r,r.uint32());break;}case 2:{m.owner=$root.proto.AccountID.decode(r,r.uint32());break;}case 3:{m.spender=$root.proto.AccountID.decode(r,r.uint32());break;}case 4:{if(!(m.serialNumbers&&m.serialNumbers.length))m.serialNumbers=[];if((t&7)===2){var c2=r.uint32()+r.pos;while(r.pos>>3){case 1:{m.tokenId=$root.proto.TokenID.decode(r,r.uint32());break;}case 2:{m.owner=$root.proto.AccountID.decode(r,r.uint32());break;}case 3:{m.spender=$root.proto.AccountID.decode(r,r.uint32());break;}case 4:{m.amount=r.int64();break;}default:r.skipType(t&7);break;}}return m;};TokenAllowance.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenAllowance\";};return TokenAllowance;}();proto.CryptoDeleteAllowanceTransactionBody=function(){function CryptoDeleteAllowanceTransactionBody(p){this.nftAllowances=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 2:{if(!(m.nftAllowances&&m.nftAllowances.length))m.nftAllowances=[];m.nftAllowances.push($root.proto.NftRemoveAllowance.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};CryptoDeleteAllowanceTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.CryptoDeleteAllowanceTransactionBody\";};return CryptoDeleteAllowanceTransactionBody;}();proto.NftRemoveAllowance=function(){function NftRemoveAllowance(p){this.serialNumbers=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.tokenId=$root.proto.TokenID.decode(r,r.uint32());break;}case 2:{m.owner=$root.proto.AccountID.decode(r,r.uint32());break;}case 3:{if(!(m.serialNumbers&&m.serialNumbers.length))m.serialNumbers=[];if((t&7)===2){var c2=r.uint32()+r.pos;while(r.pos>>3){case 1:{m.ethereumData=r.bytes();break;}case 2:{m.callData=$root.proto.FileID.decode(r,r.uint32());break;}case 3:{m.maxGasAllowance=r.int64();break;}default:r.skipType(t&7);break;}}return m;};EthereumTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.EthereumTransactionBody\";};return EthereumTransactionBody;}();proto.FileAppendTransactionBody=function(){function FileAppendTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 2:{m.fileID=$root.proto.FileID.decode(r,r.uint32());break;}case 4:{m.contents=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};FileAppendTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.FileAppendTransactionBody\";};return FileAppendTransactionBody;}();proto.FileCreateTransactionBody=function(){function FileCreateTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 2:{m.expirationTime=$root.proto.Timestamp.decode(r,r.uint32());break;}case 3:{m.keys=$root.proto.KeyList.decode(r,r.uint32());break;}case 4:{m.contents=r.bytes();break;}case 5:{m.shardID=$root.proto.ShardID.decode(r,r.uint32());break;}case 6:{m.realmID=$root.proto.RealmID.decode(r,r.uint32());break;}case 7:{m.newRealmAdminKey=$root.proto.Key.decode(r,r.uint32());break;}case 8:{m.memo=r.string();break;}default:r.skipType(t&7);break;}}return m;};FileCreateTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.FileCreateTransactionBody\";};return FileCreateTransactionBody;}();proto.FileDeleteTransactionBody=function(){function FileDeleteTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 2:{m.fileID=$root.proto.FileID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};FileDeleteTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.FileDeleteTransactionBody\";};return FileDeleteTransactionBody;}();proto.FileUpdateTransactionBody=function(){function FileUpdateTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.fileID=$root.proto.FileID.decode(r,r.uint32());break;}case 2:{m.expirationTime=$root.proto.Timestamp.decode(r,r.uint32());break;}case 3:{m.keys=$root.proto.KeyList.decode(r,r.uint32());break;}case 4:{m.contents=r.bytes();break;}case 5:{m.memo=$root.google.protobuf.StringValue.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};FileUpdateTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.FileUpdateTransactionBody\";};return FileUpdateTransactionBody;}();proto.ContractDeleteTransactionBody=function(){function ContractDeleteTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.contractID=$root.proto.ContractID.decode(r,r.uint32());break;}case 2:{m.transferAccountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 3:{m.transferContractID=$root.proto.ContractID.decode(r,r.uint32());break;}case 4:{m.permanentRemoval=r.bool();break;}default:r.skipType(t&7);break;}}return m;};ContractDeleteTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ContractDeleteTransactionBody\";};return ContractDeleteTransactionBody;}();proto.ConsensusCreateTopicTransactionBody=function(){function ConsensusCreateTopicTransactionBody(p){this.feeExemptKeyList=[];this.customFees=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.memo=r.string();break;}case 2:{m.adminKey=$root.proto.Key.decode(r,r.uint32());break;}case 3:{m.submitKey=$root.proto.Key.decode(r,r.uint32());break;}case 6:{m.autoRenewPeriod=$root.proto.Duration.decode(r,r.uint32());break;}case 7:{m.autoRenewAccount=$root.proto.AccountID.decode(r,r.uint32());break;}case 8:{m.feeScheduleKey=$root.proto.Key.decode(r,r.uint32());break;}case 9:{if(!(m.feeExemptKeyList&&m.feeExemptKeyList.length))m.feeExemptKeyList=[];m.feeExemptKeyList.push($root.proto.Key.decode(r,r.uint32()));break;}case 10:{if(!(m.customFees&&m.customFees.length))m.customFees=[];m.customFees.push($root.proto.FixedCustomFee.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};ConsensusCreateTopicTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ConsensusCreateTopicTransactionBody\";};return ConsensusCreateTopicTransactionBody;}();proto.FractionalFee=function(){function FractionalFee(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.fractionalAmount=$root.proto.Fraction.decode(r,r.uint32());break;}case 2:{m.minimumAmount=r.int64();break;}case 3:{m.maximumAmount=r.int64();break;}case 4:{m.netOfTransfers=r.bool();break;}default:r.skipType(t&7);break;}}return m;};FractionalFee.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.FractionalFee\";};return FractionalFee;}();proto.FixedFee=function(){function FixedFee(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.amount=r.int64();break;}case 2:{m.denominatingTokenId=$root.proto.TokenID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};FixedFee.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.FixedFee\";};return FixedFee;}();proto.RoyaltyFee=function(){function RoyaltyFee(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.exchangeValueFraction=$root.proto.Fraction.decode(r,r.uint32());break;}case 2:{m.fallbackFee=$root.proto.FixedFee.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};RoyaltyFee.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.RoyaltyFee\";};return RoyaltyFee;}();proto.CustomFee=function(){function CustomFee(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.fixedFee=$root.proto.FixedFee.decode(r,r.uint32());break;}case 2:{m.fractionalFee=$root.proto.FractionalFee.decode(r,r.uint32());break;}case 4:{m.royaltyFee=$root.proto.RoyaltyFee.decode(r,r.uint32());break;}case 3:{m.feeCollectorAccountId=$root.proto.AccountID.decode(r,r.uint32());break;}case 5:{m.allCollectorsAreExempt=r.bool();break;}default:r.skipType(t&7);break;}}return m;};CustomFee.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.CustomFee\";};return CustomFee;}();proto.AssessedCustomFee=function(){function AssessedCustomFee(p){this.effectivePayerAccountId=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.amount=r.int64();break;}case 2:{m.tokenId=$root.proto.TokenID.decode(r,r.uint32());break;}case 3:{m.feeCollectorAccountId=$root.proto.AccountID.decode(r,r.uint32());break;}case 4:{if(!(m.effectivePayerAccountId&&m.effectivePayerAccountId.length))m.effectivePayerAccountId=[];m.effectivePayerAccountId.push($root.proto.AccountID.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};AssessedCustomFee.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.AssessedCustomFee\";};return AssessedCustomFee;}();proto.FixedCustomFee=function(){function FixedCustomFee(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.fixedFee=$root.proto.FixedFee.decode(r,r.uint32());break;}case 2:{m.feeCollectorAccountId=$root.proto.AccountID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};FixedCustomFee.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.FixedCustomFee\";};return FixedCustomFee;}();proto.FixedCustomFeeList=function(){function FixedCustomFeeList(p){this.fees=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{if(!(m.fees&&m.fees.length))m.fees=[];m.fees.push($root.proto.FixedCustomFee.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};FixedCustomFeeList.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.FixedCustomFeeList\";};return FixedCustomFeeList;}();proto.FeeExemptKeyList=function(){function FeeExemptKeyList(p){this.keys=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{if(!(m.keys&&m.keys.length))m.keys=[];m.keys.push($root.proto.Key.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};FeeExemptKeyList.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.FeeExemptKeyList\";};return FeeExemptKeyList;}();proto.CustomFeeLimit=function(){function CustomFeeLimit(p){this.fees=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.accountId=$root.proto.AccountID.decode(r,r.uint32());break;}case 2:{if(!(m.fees&&m.fees.length))m.fees=[];m.fees.push($root.proto.FixedFee.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};CustomFeeLimit.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.CustomFeeLimit\";};return CustomFeeLimit;}();proto.ConsensusUpdateTopicTransactionBody=function(){function ConsensusUpdateTopicTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.topicID=$root.proto.TopicID.decode(r,r.uint32());break;}case 2:{m.memo=$root.google.protobuf.StringValue.decode(r,r.uint32());break;}case 4:{m.expirationTime=$root.proto.Timestamp.decode(r,r.uint32());break;}case 6:{m.adminKey=$root.proto.Key.decode(r,r.uint32());break;}case 7:{m.submitKey=$root.proto.Key.decode(r,r.uint32());break;}case 8:{m.autoRenewPeriod=$root.proto.Duration.decode(r,r.uint32());break;}case 9:{m.autoRenewAccount=$root.proto.AccountID.decode(r,r.uint32());break;}case 10:{m.feeScheduleKey=$root.proto.Key.decode(r,r.uint32());break;}case 11:{m.feeExemptKeyList=$root.proto.FeeExemptKeyList.decode(r,r.uint32());break;}case 12:{m.customFees=$root.proto.FixedCustomFeeList.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};ConsensusUpdateTopicTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ConsensusUpdateTopicTransactionBody\";};return ConsensusUpdateTopicTransactionBody;}();proto.ConsensusDeleteTopicTransactionBody=function(){function ConsensusDeleteTopicTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.topicID=$root.proto.TopicID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};ConsensusDeleteTopicTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ConsensusDeleteTopicTransactionBody\";};return ConsensusDeleteTopicTransactionBody;}();proto.ConsensusMessageChunkInfo=function(){function ConsensusMessageChunkInfo(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.initialTransactionID=$root.proto.TransactionID.decode(r,r.uint32());break;}case 2:{m.total=r.int32();break;}case 3:{m.number=r.int32();break;}default:r.skipType(t&7);break;}}return m;};ConsensusMessageChunkInfo.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ConsensusMessageChunkInfo\";};return ConsensusMessageChunkInfo;}();proto.ConsensusSubmitMessageTransactionBody=function(){function ConsensusSubmitMessageTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.topicID=$root.proto.TopicID.decode(r,r.uint32());break;}case 2:{m.message=r.bytes();break;}case 3:{m.chunkInfo=$root.proto.ConsensusMessageChunkInfo.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};ConsensusSubmitMessageTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ConsensusSubmitMessageTransactionBody\";};return ConsensusSubmitMessageTransactionBody;}();proto.UncheckedSubmitBody=function(){function UncheckedSubmitBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.transactionBytes=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};UncheckedSubmitBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.UncheckedSubmitBody\";};return UncheckedSubmitBody;}();proto.TokenCreateTransactionBody=function(){function TokenCreateTransactionBody(p){this.customFees=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.name=r.string();break;}case 2:{m.symbol=r.string();break;}case 3:{m.decimals=r.uint32();break;}case 4:{m.initialSupply=r.uint64();break;}case 5:{m.treasury=$root.proto.AccountID.decode(r,r.uint32());break;}case 6:{m.adminKey=$root.proto.Key.decode(r,r.uint32());break;}case 7:{m.kycKey=$root.proto.Key.decode(r,r.uint32());break;}case 8:{m.freezeKey=$root.proto.Key.decode(r,r.uint32());break;}case 9:{m.wipeKey=$root.proto.Key.decode(r,r.uint32());break;}case 10:{m.supplyKey=$root.proto.Key.decode(r,r.uint32());break;}case 11:{m.freezeDefault=r.bool();break;}case 13:{m.expiry=$root.proto.Timestamp.decode(r,r.uint32());break;}case 14:{m.autoRenewAccount=$root.proto.AccountID.decode(r,r.uint32());break;}case 15:{m.autoRenewPeriod=$root.proto.Duration.decode(r,r.uint32());break;}case 16:{m.memo=r.string();break;}case 17:{m.tokenType=r.int32();break;}case 18:{m.supplyType=r.int32();break;}case 19:{m.maxSupply=r.int64();break;}case 20:{m.feeScheduleKey=$root.proto.Key.decode(r,r.uint32());break;}case 21:{if(!(m.customFees&&m.customFees.length))m.customFees=[];m.customFees.push($root.proto.CustomFee.decode(r,r.uint32()));break;}case 22:{m.pauseKey=$root.proto.Key.decode(r,r.uint32());break;}case 23:{m.metadata=r.bytes();break;}case 24:{m.metadataKey=$root.proto.Key.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};TokenCreateTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenCreateTransactionBody\";};return TokenCreateTransactionBody;}();proto.TokenFreezeAccountTransactionBody=function(){function TokenFreezeAccountTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.token=$root.proto.TokenID.decode(r,r.uint32());break;}case 2:{m.account=$root.proto.AccountID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};TokenFreezeAccountTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenFreezeAccountTransactionBody\";};return TokenFreezeAccountTransactionBody;}();proto.TokenUnfreezeAccountTransactionBody=function(){function TokenUnfreezeAccountTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.token=$root.proto.TokenID.decode(r,r.uint32());break;}case 2:{m.account=$root.proto.AccountID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};TokenUnfreezeAccountTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenUnfreezeAccountTransactionBody\";};return TokenUnfreezeAccountTransactionBody;}();proto.TokenGrantKycTransactionBody=function(){function TokenGrantKycTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.token=$root.proto.TokenID.decode(r,r.uint32());break;}case 2:{m.account=$root.proto.AccountID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};TokenGrantKycTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenGrantKycTransactionBody\";};return TokenGrantKycTransactionBody;}();proto.TokenRevokeKycTransactionBody=function(){function TokenRevokeKycTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.token=$root.proto.TokenID.decode(r,r.uint32());break;}case 2:{m.account=$root.proto.AccountID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};TokenRevokeKycTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenRevokeKycTransactionBody\";};return TokenRevokeKycTransactionBody;}();proto.TokenDeleteTransactionBody=function(){function TokenDeleteTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.token=$root.proto.TokenID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};TokenDeleteTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenDeleteTransactionBody\";};return TokenDeleteTransactionBody;}();proto.TokenUpdateTransactionBody=function(){function TokenUpdateTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.token=$root.proto.TokenID.decode(r,r.uint32());break;}case 2:{m.symbol=r.string();break;}case 3:{m.name=r.string();break;}case 4:{m.treasury=$root.proto.AccountID.decode(r,r.uint32());break;}case 5:{m.adminKey=$root.proto.Key.decode(r,r.uint32());break;}case 6:{m.kycKey=$root.proto.Key.decode(r,r.uint32());break;}case 7:{m.freezeKey=$root.proto.Key.decode(r,r.uint32());break;}case 8:{m.wipeKey=$root.proto.Key.decode(r,r.uint32());break;}case 9:{m.supplyKey=$root.proto.Key.decode(r,r.uint32());break;}case 10:{m.autoRenewAccount=$root.proto.AccountID.decode(r,r.uint32());break;}case 11:{m.autoRenewPeriod=$root.proto.Duration.decode(r,r.uint32());break;}case 12:{m.expiry=$root.proto.Timestamp.decode(r,r.uint32());break;}case 13:{m.memo=$root.google.protobuf.StringValue.decode(r,r.uint32());break;}case 14:{m.feeScheduleKey=$root.proto.Key.decode(r,r.uint32());break;}case 15:{m.pauseKey=$root.proto.Key.decode(r,r.uint32());break;}case 16:{m.metadata=$root.google.protobuf.BytesValue.decode(r,r.uint32());break;}case 17:{m.metadataKey=$root.proto.Key.decode(r,r.uint32());break;}case 18:{m.keyVerificationMode=r.int32();break;}default:r.skipType(t&7);break;}}return m;};TokenUpdateTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenUpdateTransactionBody\";};return TokenUpdateTransactionBody;}();proto.TokenMintTransactionBody=function(){function TokenMintTransactionBody(p){this.metadata=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.token=$root.proto.TokenID.decode(r,r.uint32());break;}case 2:{m.amount=r.uint64();break;}case 3:{if(!(m.metadata&&m.metadata.length))m.metadata=[];m.metadata.push(r.bytes());break;}default:r.skipType(t&7);break;}}return m;};TokenMintTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenMintTransactionBody\";};return TokenMintTransactionBody;}();proto.TokenBurnTransactionBody=function(){function TokenBurnTransactionBody(p){this.serialNumbers=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.token=$root.proto.TokenID.decode(r,r.uint32());break;}case 2:{m.amount=r.uint64();break;}case 3:{if(!(m.serialNumbers&&m.serialNumbers.length))m.serialNumbers=[];if((t&7)===2){var c2=r.uint32()+r.pos;while(r.pos>>3){case 1:{m.token=$root.proto.TokenID.decode(r,r.uint32());break;}case 2:{m.account=$root.proto.AccountID.decode(r,r.uint32());break;}case 3:{m.amount=r.uint64();break;}case 4:{if(!(m.serialNumbers&&m.serialNumbers.length))m.serialNumbers=[];if((t&7)===2){var c2=r.uint32()+r.pos;while(r.pos>>3){case 1:{m.account=$root.proto.AccountID.decode(r,r.uint32());break;}case 2:{if(!(m.tokens&&m.tokens.length))m.tokens=[];m.tokens.push($root.proto.TokenID.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};TokenAssociateTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenAssociateTransactionBody\";};return TokenAssociateTransactionBody;}();proto.TokenDissociateTransactionBody=function(){function TokenDissociateTransactionBody(p){this.tokens=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.account=$root.proto.AccountID.decode(r,r.uint32());break;}case 2:{if(!(m.tokens&&m.tokens.length))m.tokens=[];m.tokens.push($root.proto.TokenID.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};TokenDissociateTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenDissociateTransactionBody\";};return TokenDissociateTransactionBody;}();proto.TokenFeeScheduleUpdateTransactionBody=function(){function TokenFeeScheduleUpdateTransactionBody(p){this.customFees=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.tokenId=$root.proto.TokenID.decode(r,r.uint32());break;}case 2:{if(!(m.customFees&&m.customFees.length))m.customFees=[];m.customFees.push($root.proto.CustomFee.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};TokenFeeScheduleUpdateTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenFeeScheduleUpdateTransactionBody\";};return TokenFeeScheduleUpdateTransactionBody;}();proto.TokenPauseTransactionBody=function(){function TokenPauseTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.token=$root.proto.TokenID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};TokenPauseTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenPauseTransactionBody\";};return TokenPauseTransactionBody;}();proto.TokenUnpauseTransactionBody=function(){function TokenUnpauseTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.token=$root.proto.TokenID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};TokenUnpauseTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenUnpauseTransactionBody\";};return TokenUnpauseTransactionBody;}();proto.TokenUpdateNftsTransactionBody=function(){function TokenUpdateNftsTransactionBody(p){this.serialNumbers=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.token=$root.proto.TokenID.decode(r,r.uint32());break;}case 2:{if(!(m.serialNumbers&&m.serialNumbers.length))m.serialNumbers=[];if((t&7)===2){var c2=r.uint32()+r.pos;while(r.pos>>3){case 1:{m.owner=$root.proto.AccountID.decode(r,r.uint32());break;}case 2:{if(!(m.rejections&&m.rejections.length))m.rejections=[];m.rejections.push($root.proto.TokenReference.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};TokenRejectTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenRejectTransactionBody\";};return TokenRejectTransactionBody;}();proto.TokenReference=function(){function TokenReference(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.fungibleToken=$root.proto.TokenID.decode(r,r.uint32());break;}case 2:{m.nft=$root.proto.NftID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};TokenReference.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenReference\";};return TokenReference;}();proto.TokenAirdropTransactionBody=function(){function TokenAirdropTransactionBody(p){this.tokenTransfers=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{if(!(m.tokenTransfers&&m.tokenTransfers.length))m.tokenTransfers=[];m.tokenTransfers.push($root.proto.TokenTransferList.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};TokenAirdropTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenAirdropTransactionBody\";};return TokenAirdropTransactionBody;}();proto.TokenCancelAirdropTransactionBody=function(){function TokenCancelAirdropTransactionBody(p){this.pendingAirdrops=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{if(!(m.pendingAirdrops&&m.pendingAirdrops.length))m.pendingAirdrops=[];m.pendingAirdrops.push($root.proto.PendingAirdropId.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};TokenCancelAirdropTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenCancelAirdropTransactionBody\";};return TokenCancelAirdropTransactionBody;}();proto.TokenClaimAirdropTransactionBody=function(){function TokenClaimAirdropTransactionBody(p){this.pendingAirdrops=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{if(!(m.pendingAirdrops&&m.pendingAirdrops.length))m.pendingAirdrops=[];m.pendingAirdrops.push($root.proto.PendingAirdropId.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};TokenClaimAirdropTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenClaimAirdropTransactionBody\";};return TokenClaimAirdropTransactionBody;}();proto.ScheduleCreateTransactionBody=function(){function ScheduleCreateTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.scheduledTransactionBody=$root.proto.SchedulableTransactionBody.decode(r,r.uint32());break;}case 2:{m.memo=r.string();break;}case 3:{m.adminKey=$root.proto.Key.decode(r,r.uint32());break;}case 4:{m.payerAccountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 5:{m.expirationTime=$root.proto.Timestamp.decode(r,r.uint32());break;}case 13:{m.waitForExpiry=r.bool();break;}default:r.skipType(t&7);break;}}return m;};ScheduleCreateTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ScheduleCreateTransactionBody\";};return ScheduleCreateTransactionBody;}();proto.SchedulableTransactionBody=function(){function SchedulableTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.transactionFee=r.uint64();break;}case 2:{m.memo=r.string();break;}case 3:{m.contractCall=$root.proto.ContractCallTransactionBody.decode(r,r.uint32());break;}case 4:{m.contractCreateInstance=$root.proto.ContractCreateTransactionBody.decode(r,r.uint32());break;}case 5:{m.contractUpdateInstance=$root.proto.ContractUpdateTransactionBody.decode(r,r.uint32());break;}case 6:{m.contractDeleteInstance=$root.proto.ContractDeleteTransactionBody.decode(r,r.uint32());break;}case 7:{m.cryptoCreateAccount=$root.proto.CryptoCreateTransactionBody.decode(r,r.uint32());break;}case 8:{m.cryptoDelete=$root.proto.CryptoDeleteTransactionBody.decode(r,r.uint32());break;}case 9:{m.cryptoTransfer=$root.proto.CryptoTransferTransactionBody.decode(r,r.uint32());break;}case 10:{m.cryptoUpdateAccount=$root.proto.CryptoUpdateTransactionBody.decode(r,r.uint32());break;}case 11:{m.fileAppend=$root.proto.FileAppendTransactionBody.decode(r,r.uint32());break;}case 12:{m.fileCreate=$root.proto.FileCreateTransactionBody.decode(r,r.uint32());break;}case 13:{m.fileDelete=$root.proto.FileDeleteTransactionBody.decode(r,r.uint32());break;}case 14:{m.fileUpdate=$root.proto.FileUpdateTransactionBody.decode(r,r.uint32());break;}case 15:{m.systemDelete=$root.proto.SystemDeleteTransactionBody.decode(r,r.uint32());break;}case 16:{m.systemUndelete=$root.proto.SystemUndeleteTransactionBody.decode(r,r.uint32());break;}case 17:{m.freeze=$root.proto.FreezeTransactionBody.decode(r,r.uint32());break;}case 18:{m.consensusCreateTopic=$root.proto.ConsensusCreateTopicTransactionBody.decode(r,r.uint32());break;}case 19:{m.consensusUpdateTopic=$root.proto.ConsensusUpdateTopicTransactionBody.decode(r,r.uint32());break;}case 20:{m.consensusDeleteTopic=$root.proto.ConsensusDeleteTopicTransactionBody.decode(r,r.uint32());break;}case 21:{m.consensusSubmitMessage=$root.proto.ConsensusSubmitMessageTransactionBody.decode(r,r.uint32());break;}case 22:{m.tokenCreation=$root.proto.TokenCreateTransactionBody.decode(r,r.uint32());break;}case 23:{m.tokenFreeze=$root.proto.TokenFreezeAccountTransactionBody.decode(r,r.uint32());break;}case 24:{m.tokenUnfreeze=$root.proto.TokenUnfreezeAccountTransactionBody.decode(r,r.uint32());break;}case 25:{m.tokenGrantKyc=$root.proto.TokenGrantKycTransactionBody.decode(r,r.uint32());break;}case 26:{m.tokenRevokeKyc=$root.proto.TokenRevokeKycTransactionBody.decode(r,r.uint32());break;}case 27:{m.tokenDeletion=$root.proto.TokenDeleteTransactionBody.decode(r,r.uint32());break;}case 28:{m.tokenUpdate=$root.proto.TokenUpdateTransactionBody.decode(r,r.uint32());break;}case 29:{m.tokenMint=$root.proto.TokenMintTransactionBody.decode(r,r.uint32());break;}case 30:{m.tokenBurn=$root.proto.TokenBurnTransactionBody.decode(r,r.uint32());break;}case 31:{m.tokenWipe=$root.proto.TokenWipeAccountTransactionBody.decode(r,r.uint32());break;}case 32:{m.tokenAssociate=$root.proto.TokenAssociateTransactionBody.decode(r,r.uint32());break;}case 33:{m.tokenDissociate=$root.proto.TokenDissociateTransactionBody.decode(r,r.uint32());break;}case 34:{m.scheduleDelete=$root.proto.ScheduleDeleteTransactionBody.decode(r,r.uint32());break;}case 35:{m.tokenPause=$root.proto.TokenPauseTransactionBody.decode(r,r.uint32());break;}case 36:{m.tokenUnpause=$root.proto.TokenUnpauseTransactionBody.decode(r,r.uint32());break;}case 37:{m.cryptoApproveAllowance=$root.proto.CryptoApproveAllowanceTransactionBody.decode(r,r.uint32());break;}case 38:{m.cryptoDeleteAllowance=$root.proto.CryptoDeleteAllowanceTransactionBody.decode(r,r.uint32());break;}case 39:{m.tokenFeeScheduleUpdate=$root.proto.TokenFeeScheduleUpdateTransactionBody.decode(r,r.uint32());break;}case 40:{m.utilPrng=$root.proto.UtilPrngTransactionBody.decode(r,r.uint32());break;}case 41:{m.tokenUpdateNfts=$root.proto.TokenUpdateNftsTransactionBody.decode(r,r.uint32());break;}case 42:{m.nodeCreate=$root.com.hedera.hapi.node.addressbook.NodeCreateTransactionBody.decode(r,r.uint32());break;}case 43:{m.nodeUpdate=$root.com.hedera.hapi.node.addressbook.NodeUpdateTransactionBody.decode(r,r.uint32());break;}case 44:{m.nodeDelete=$root.com.hedera.hapi.node.addressbook.NodeDeleteTransactionBody.decode(r,r.uint32());break;}case 45:{m.tokenReject=$root.proto.TokenRejectTransactionBody.decode(r,r.uint32());break;}case 46:{m.tokenCancelAirdrop=$root.proto.TokenCancelAirdropTransactionBody.decode(r,r.uint32());break;}case 47:{m.tokenClaimAirdrop=$root.proto.TokenClaimAirdropTransactionBody.decode(r,r.uint32());break;}case 48:{m.tokenAirdrop=$root.proto.TokenAirdropTransactionBody.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};SchedulableTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.SchedulableTransactionBody\";};return SchedulableTransactionBody;}();proto.ScheduleDeleteTransactionBody=function(){function ScheduleDeleteTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.scheduleID=$root.proto.ScheduleID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};ScheduleDeleteTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ScheduleDeleteTransactionBody\";};return ScheduleDeleteTransactionBody;}();proto.UtilPrngTransactionBody=function(){function UtilPrngTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.range=r.int32();break;}default:r.skipType(t&7);break;}}return m;};UtilPrngTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.UtilPrngTransactionBody\";};return UtilPrngTransactionBody;}();proto.ScheduleSignTransactionBody=function(){function ScheduleSignTransactionBody(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.scheduleID=$root.proto.ScheduleID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};ScheduleSignTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ScheduleSignTransactionBody\";};return ScheduleSignTransactionBody;}();proto.NodeStakeUpdateTransactionBody=function(){function NodeStakeUpdateTransactionBody(p){this.nodeStake=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.endOfStakingPeriod=$root.proto.Timestamp.decode(r,r.uint32());break;}case 2:{if(!(m.nodeStake&&m.nodeStake.length))m.nodeStake=[];m.nodeStake.push($root.proto.NodeStake.decode(r,r.uint32()));break;}case 3:{m.maxStakingRewardRatePerHbar=r.int64();break;}case 4:{m.nodeRewardFeeFraction=$root.proto.Fraction.decode(r,r.uint32());break;}case 5:{m.stakingPeriodsStored=r.int64();break;}case 6:{m.stakingPeriod=r.int64();break;}case 7:{m.stakingRewardFeeFraction=$root.proto.Fraction.decode(r,r.uint32());break;}case 8:{m.stakingStartThreshold=r.int64();break;}case 9:{m.stakingRewardRate=r.int64();break;}case 10:{m.reservedStakingRewards=r.int64();break;}case 11:{m.unreservedStakingRewardBalance=r.int64();break;}case 12:{m.rewardBalanceThreshold=r.int64();break;}case 13:{m.maxStakeRewarded=r.int64();break;}case 14:{m.maxTotalReward=r.int64();break;}default:r.skipType(t&7);break;}}return m;};NodeStakeUpdateTransactionBody.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.NodeStakeUpdateTransactionBody\";};return NodeStakeUpdateTransactionBody;}();proto.NodeStake=function(){function NodeStake(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.maxStake=r.int64();break;}case 2:{m.minStake=r.int64();break;}case 3:{m.nodeId=r.int64();break;}case 4:{m.rewardRate=r.int64();break;}case 5:{m.stake=r.int64();break;}case 6:{m.stakeNotRewarded=r.int64();break;}case 7:{m.stakeRewarded=r.int64();break;}default:r.skipType(t&7);break;}}return m;};NodeStake.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.NodeStake\";};return NodeStake;}();proto.ConsensusGetTopicInfoQuery=function(){function ConsensusGetTopicInfoQuery(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.QueryHeader.decode(r,r.uint32());break;}case 2:{m.topicID=$root.proto.TopicID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};ConsensusGetTopicInfoQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ConsensusGetTopicInfoQuery\";};return ConsensusGetTopicInfoQuery;}();proto.ConsensusGetTopicInfoResponse=function(){function ConsensusGetTopicInfoResponse(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.ResponseHeader.decode(r,r.uint32());break;}case 2:{m.topicID=$root.proto.TopicID.decode(r,r.uint32());break;}case 5:{m.topicInfo=$root.proto.ConsensusTopicInfo.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};ConsensusGetTopicInfoResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ConsensusGetTopicInfoResponse\";};return ConsensusGetTopicInfoResponse;}();proto.ResponseType=function(){const valuesById={},values=Object.create(valuesById);values[valuesById[0]=\"ANSWER_ONLY\"]=0;values[valuesById[1]=\"ANSWER_STATE_PROOF\"]=1;values[valuesById[2]=\"COST_ANSWER\"]=2;values[valuesById[3]=\"COST_ANSWER_STATE_PROOF\"]=3;return values;}();proto.QueryHeader=function(){function QueryHeader(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.payment=$root.proto.Transaction.decode(r,r.uint32());break;}case 2:{m.responseType=r.int32();break;}default:r.skipType(t&7);break;}}return m;};QueryHeader.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.QueryHeader\";};return QueryHeader;}();proto.ResponseHeader=function(){function ResponseHeader(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.nodeTransactionPrecheckCode=r.int32();break;}case 2:{m.responseType=r.int32();break;}case 3:{m.cost=r.uint64();break;}case 4:{m.stateProof=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};ResponseHeader.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ResponseHeader\";};return ResponseHeader;}();proto.ConsensusTopicInfo=function(){function ConsensusTopicInfo(p){this.feeExemptKeyList=[];this.customFees=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.memo=r.string();break;}case 2:{m.runningHash=r.bytes();break;}case 3:{m.sequenceNumber=r.uint64();break;}case 4:{m.expirationTime=$root.proto.Timestamp.decode(r,r.uint32());break;}case 5:{m.adminKey=$root.proto.Key.decode(r,r.uint32());break;}case 6:{m.submitKey=$root.proto.Key.decode(r,r.uint32());break;}case 7:{m.autoRenewPeriod=$root.proto.Duration.decode(r,r.uint32());break;}case 8:{m.autoRenewAccount=$root.proto.AccountID.decode(r,r.uint32());break;}case 9:{m.ledgerId=r.bytes();break;}case 10:{m.feeScheduleKey=$root.proto.Key.decode(r,r.uint32());break;}case 11:{if(!(m.feeExemptKeyList&&m.feeExemptKeyList.length))m.feeExemptKeyList=[];m.feeExemptKeyList.push($root.proto.Key.decode(r,r.uint32()));break;}case 12:{if(!(m.customFees&&m.customFees.length))m.customFees=[];m.customFees.push($root.proto.FixedCustomFee.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};ConsensusTopicInfo.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ConsensusTopicInfo\";};return ConsensusTopicInfo;}();proto.ConsensusService=function(){function ConsensusService(rpcImpl,requestDelimited,responseDelimited){$protobuf.rpc.Service.call(this,rpcImpl,requestDelimited,responseDelimited);}(ConsensusService.prototype=Object.create($protobuf.rpc.Service.prototype)).constructor=ConsensusService;ConsensusService.create=function create(rpcImpl,requestDelimited,responseDelimited){return new this(rpcImpl,requestDelimited,responseDelimited);};Object.defineProperty(ConsensusService.prototype.createTopic=function createTopic(request,callback){return this.rpcCall(createTopic,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"createTopic\"});Object.defineProperty(ConsensusService.prototype.updateTopic=function updateTopic(request,callback){return this.rpcCall(updateTopic,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"updateTopic\"});Object.defineProperty(ConsensusService.prototype.deleteTopic=function deleteTopic(request,callback){return this.rpcCall(deleteTopic,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"deleteTopic\"});Object.defineProperty(ConsensusService.prototype.submitMessage=function submitMessage(request,callback){return this.rpcCall(submitMessage,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"submitMessage\"});Object.defineProperty(ConsensusService.prototype.getTopicInfo=function getTopicInfo(request,callback){return this.rpcCall(getTopicInfo,$root.proto.Query,$root.proto.Response,request,callback);},\"name\",{value:\"getTopicInfo\"});return ConsensusService;}();proto.Query=function(){function Query(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.getByKey=$root.proto.GetByKeyQuery.decode(r,r.uint32());break;}case 2:{m.getBySolidityID=$root.proto.GetBySolidityIDQuery.decode(r,r.uint32());break;}case 3:{m.contractCallLocal=$root.proto.ContractCallLocalQuery.decode(r,r.uint32());break;}case 4:{m.contractGetInfo=$root.proto.ContractGetInfoQuery.decode(r,r.uint32());break;}case 5:{m.contractGetBytecode=$root.proto.ContractGetBytecodeQuery.decode(r,r.uint32());break;}case 6:{m.ContractGetRecords=$root.proto.ContractGetRecordsQuery.decode(r,r.uint32());break;}case 7:{m.cryptogetAccountBalance=$root.proto.CryptoGetAccountBalanceQuery.decode(r,r.uint32());break;}case 8:{m.cryptoGetAccountRecords=$root.proto.CryptoGetAccountRecordsQuery.decode(r,r.uint32());break;}case 9:{m.cryptoGetInfo=$root.proto.CryptoGetInfoQuery.decode(r,r.uint32());break;}case 10:{m.cryptoGetLiveHash=$root.proto.CryptoGetLiveHashQuery.decode(r,r.uint32());break;}case 11:{m.cryptoGetProxyStakers=$root.proto.CryptoGetStakersQuery.decode(r,r.uint32());break;}case 12:{m.fileGetContents=$root.proto.FileGetContentsQuery.decode(r,r.uint32());break;}case 13:{m.fileGetInfo=$root.proto.FileGetInfoQuery.decode(r,r.uint32());break;}case 14:{m.transactionGetReceipt=$root.proto.TransactionGetReceiptQuery.decode(r,r.uint32());break;}case 15:{m.transactionGetRecord=$root.proto.TransactionGetRecordQuery.decode(r,r.uint32());break;}case 16:{m.transactionGetFastRecord=$root.proto.TransactionGetFastRecordQuery.decode(r,r.uint32());break;}case 50:{m.consensusGetTopicInfo=$root.proto.ConsensusGetTopicInfoQuery.decode(r,r.uint32());break;}case 51:{m.networkGetVersionInfo=$root.proto.NetworkGetVersionInfoQuery.decode(r,r.uint32());break;}case 52:{m.tokenGetInfo=$root.proto.TokenGetInfoQuery.decode(r,r.uint32());break;}case 53:{m.scheduleGetInfo=$root.proto.ScheduleGetInfoQuery.decode(r,r.uint32());break;}case 54:{m.tokenGetAccountNftInfos=$root.proto.TokenGetAccountNftInfosQuery.decode(r,r.uint32());break;}case 55:{m.tokenGetNftInfo=$root.proto.TokenGetNftInfoQuery.decode(r,r.uint32());break;}case 56:{m.tokenGetNftInfos=$root.proto.TokenGetNftInfosQuery.decode(r,r.uint32());break;}case 57:{m.networkGetExecutionTime=$root.proto.NetworkGetExecutionTimeQuery.decode(r,r.uint32());break;}case 58:{m.accountDetails=$root.proto.GetAccountDetailsQuery.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};Query.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.Query\";};return Query;}();proto.GetByKeyQuery=function(){function GetByKeyQuery(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.QueryHeader.decode(r,r.uint32());break;}case 2:{m.key=$root.proto.Key.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};GetByKeyQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.GetByKeyQuery\";};return GetByKeyQuery;}();proto.EntityID=function(){function EntityID(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.accountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 2:{m.liveHash=$root.proto.LiveHash.decode(r,r.uint32());break;}case 3:{m.fileID=$root.proto.FileID.decode(r,r.uint32());break;}case 4:{m.contractID=$root.proto.ContractID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};EntityID.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.EntityID\";};return EntityID;}();proto.GetByKeyResponse=function(){function GetByKeyResponse(p){this.entities=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.ResponseHeader.decode(r,r.uint32());break;}case 2:{if(!(m.entities&&m.entities.length))m.entities=[];m.entities.push($root.proto.EntityID.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};GetByKeyResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.GetByKeyResponse\";};return GetByKeyResponse;}();proto.GetBySolidityIDQuery=function(){function GetBySolidityIDQuery(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.QueryHeader.decode(r,r.uint32());break;}case 2:{m.solidityID=r.string();break;}default:r.skipType(t&7);break;}}return m;};GetBySolidityIDQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.GetBySolidityIDQuery\";};return GetBySolidityIDQuery;}();proto.GetBySolidityIDResponse=function(){function GetBySolidityIDResponse(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.ResponseHeader.decode(r,r.uint32());break;}case 2:{m.accountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 3:{m.fileID=$root.proto.FileID.decode(r,r.uint32());break;}case 4:{m.contractID=$root.proto.ContractID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};GetBySolidityIDResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.GetBySolidityIDResponse\";};return GetBySolidityIDResponse;}();proto.ContractCallLocalQuery=function(){function ContractCallLocalQuery(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.QueryHeader.decode(r,r.uint32());break;}case 2:{m.contractID=$root.proto.ContractID.decode(r,r.uint32());break;}case 3:{m.gas=r.int64();break;}case 4:{m.functionParameters=r.bytes();break;}case 5:{m.maxResultSize=r.int64();break;}case 6:{m.senderId=$root.proto.AccountID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};ContractCallLocalQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ContractCallLocalQuery\";};return ContractCallLocalQuery;}();proto.ContractCallLocalResponse=function(){function ContractCallLocalResponse(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.ResponseHeader.decode(r,r.uint32());break;}case 2:{m.functionResult=$root.proto.ContractFunctionResult.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};ContractCallLocalResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ContractCallLocalResponse\";};return ContractCallLocalResponse;}();proto.ContractNonceInfo=function(){function ContractNonceInfo(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.contractId=$root.proto.ContractID.decode(r,r.uint32());break;}case 2:{m.nonce=r.int64();break;}default:r.skipType(t&7);break;}}return m;};ContractNonceInfo.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ContractNonceInfo\";};return ContractNonceInfo;}();proto.ContractLoginfo=function(){function ContractLoginfo(p){this.topic=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.contractID=$root.proto.ContractID.decode(r,r.uint32());break;}case 2:{m.bloom=r.bytes();break;}case 3:{if(!(m.topic&&m.topic.length))m.topic=[];m.topic.push(r.bytes());break;}case 4:{m.data=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};ContractLoginfo.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ContractLoginfo\";};return ContractLoginfo;}();proto.ContractFunctionResult=function(){function ContractFunctionResult(p){this.logInfo=[];this.createdContractIDs=[];this.contractNonces=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.contractID=$root.proto.ContractID.decode(r,r.uint32());break;}case 2:{m.contractCallResult=r.bytes();break;}case 3:{m.errorMessage=r.string();break;}case 4:{m.bloom=r.bytes();break;}case 5:{m.gasUsed=r.uint64();break;}case 6:{if(!(m.logInfo&&m.logInfo.length))m.logInfo=[];m.logInfo.push($root.proto.ContractLoginfo.decode(r,r.uint32()));break;}case 7:{if(!(m.createdContractIDs&&m.createdContractIDs.length))m.createdContractIDs=[];m.createdContractIDs.push($root.proto.ContractID.decode(r,r.uint32()));break;}case 9:{m.evmAddress=$root.google.protobuf.BytesValue.decode(r,r.uint32());break;}case 10:{m.gas=r.int64();break;}case 11:{m.amount=r.int64();break;}case 12:{m.functionParameters=r.bytes();break;}case 13:{m.senderId=$root.proto.AccountID.decode(r,r.uint32());break;}case 14:{if(!(m.contractNonces&&m.contractNonces.length))m.contractNonces=[];m.contractNonces.push($root.proto.ContractNonceInfo.decode(r,r.uint32()));break;}case 15:{m.signerNonce=$root.google.protobuf.Int64Value.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};ContractFunctionResult.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ContractFunctionResult\";};return ContractFunctionResult;}();proto.ContractGetInfoQuery=function(){function ContractGetInfoQuery(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.QueryHeader.decode(r,r.uint32());break;}case 2:{m.contractID=$root.proto.ContractID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};ContractGetInfoQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ContractGetInfoQuery\";};return ContractGetInfoQuery;}();proto.ContractGetInfoResponse=function(){function ContractGetInfoResponse(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.ResponseHeader.decode(r,r.uint32());break;}case 2:{m.contractInfo=$root.proto.ContractGetInfoResponse.ContractInfo.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};ContractGetInfoResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ContractGetInfoResponse\";};ContractGetInfoResponse.ContractInfo=function(){function ContractInfo(p){this.tokenRelationships=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.contractID=$root.proto.ContractID.decode(r,r.uint32());break;}case 2:{m.accountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 3:{m.contractAccountID=r.string();break;}case 4:{m.adminKey=$root.proto.Key.decode(r,r.uint32());break;}case 5:{m.expirationTime=$root.proto.Timestamp.decode(r,r.uint32());break;}case 6:{m.autoRenewPeriod=$root.proto.Duration.decode(r,r.uint32());break;}case 7:{m.storage=r.int64();break;}case 8:{m.memo=r.string();break;}case 9:{m.balance=r.uint64();break;}case 10:{m.deleted=r.bool();break;}case 11:{if(!(m.tokenRelationships&&m.tokenRelationships.length))m.tokenRelationships=[];m.tokenRelationships.push($root.proto.TokenRelationship.decode(r,r.uint32()));break;}case 12:{m.ledgerId=r.bytes();break;}case 13:{m.autoRenewAccountId=$root.proto.AccountID.decode(r,r.uint32());break;}case 14:{m.maxAutomaticTokenAssociations=r.int32();break;}case 15:{m.stakingInfo=$root.proto.StakingInfo.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};ContractInfo.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ContractGetInfoResponse.ContractInfo\";};return ContractInfo;}();return ContractGetInfoResponse;}();proto.ContractGetBytecodeQuery=function(){function ContractGetBytecodeQuery(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.QueryHeader.decode(r,r.uint32());break;}case 2:{m.contractID=$root.proto.ContractID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};ContractGetBytecodeQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ContractGetBytecodeQuery\";};return ContractGetBytecodeQuery;}();proto.ContractGetBytecodeResponse=function(){function ContractGetBytecodeResponse(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.ResponseHeader.decode(r,r.uint32());break;}case 6:{m.bytecode=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};ContractGetBytecodeResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ContractGetBytecodeResponse\";};return ContractGetBytecodeResponse;}();proto.ContractGetRecordsQuery=function(){function ContractGetRecordsQuery(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.QueryHeader.decode(r,r.uint32());break;}case 2:{m.contractID=$root.proto.ContractID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};ContractGetRecordsQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ContractGetRecordsQuery\";};return ContractGetRecordsQuery;}();proto.ContractGetRecordsResponse=function(){function ContractGetRecordsResponse(p){this.records=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.ResponseHeader.decode(r,r.uint32());break;}case 2:{m.contractID=$root.proto.ContractID.decode(r,r.uint32());break;}case 3:{if(!(m.records&&m.records.length))m.records=[];m.records.push($root.proto.TransactionRecord.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};ContractGetRecordsResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ContractGetRecordsResponse\";};return ContractGetRecordsResponse;}();proto.TransactionRecord=function(){function TransactionRecord(p){this.tokenTransferLists=[];this.assessedCustomFees=[];this.automaticTokenAssociations=[];this.paidStakingRewards=[];this.newPendingAirdrops=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.receipt=$root.proto.TransactionReceipt.decode(r,r.uint32());break;}case 2:{m.transactionHash=r.bytes();break;}case 3:{m.consensusTimestamp=$root.proto.Timestamp.decode(r,r.uint32());break;}case 4:{m.transactionID=$root.proto.TransactionID.decode(r,r.uint32());break;}case 5:{m.memo=r.string();break;}case 6:{m.transactionFee=r.uint64();break;}case 7:{m.contractCallResult=$root.proto.ContractFunctionResult.decode(r,r.uint32());break;}case 8:{m.contractCreateResult=$root.proto.ContractFunctionResult.decode(r,r.uint32());break;}case 10:{m.transferList=$root.proto.TransferList.decode(r,r.uint32());break;}case 11:{if(!(m.tokenTransferLists&&m.tokenTransferLists.length))m.tokenTransferLists=[];m.tokenTransferLists.push($root.proto.TokenTransferList.decode(r,r.uint32()));break;}case 12:{m.scheduleRef=$root.proto.ScheduleID.decode(r,r.uint32());break;}case 13:{if(!(m.assessedCustomFees&&m.assessedCustomFees.length))m.assessedCustomFees=[];m.assessedCustomFees.push($root.proto.AssessedCustomFee.decode(r,r.uint32()));break;}case 14:{if(!(m.automaticTokenAssociations&&m.automaticTokenAssociations.length))m.automaticTokenAssociations=[];m.automaticTokenAssociations.push($root.proto.TokenAssociation.decode(r,r.uint32()));break;}case 15:{m.parentConsensusTimestamp=$root.proto.Timestamp.decode(r,r.uint32());break;}case 16:{m.alias=r.bytes();break;}case 17:{m.ethereumHash=r.bytes();break;}case 18:{if(!(m.paidStakingRewards&&m.paidStakingRewards.length))m.paidStakingRewards=[];m.paidStakingRewards.push($root.proto.AccountAmount.decode(r,r.uint32()));break;}case 19:{m.prngBytes=r.bytes();break;}case 20:{m.prngNumber=r.int32();break;}case 21:{m.evmAddress=r.bytes();break;}case 22:{if(!(m.newPendingAirdrops&&m.newPendingAirdrops.length))m.newPendingAirdrops=[];m.newPendingAirdrops.push($root.proto.PendingAirdropRecord.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};TransactionRecord.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TransactionRecord\";};return TransactionRecord;}();proto.PendingAirdropRecord=function(){function PendingAirdropRecord(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.pendingAirdropId=$root.proto.PendingAirdropId.decode(r,r.uint32());break;}case 2:{m.pendingAirdropValue=$root.proto.PendingAirdropValue.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};PendingAirdropRecord.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.PendingAirdropRecord\";};return PendingAirdropRecord;}();proto.TransactionReceipt=function(){function TransactionReceipt(p){this.serialNumbers=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.status=r.int32();break;}case 2:{m.accountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 3:{m.fileID=$root.proto.FileID.decode(r,r.uint32());break;}case 4:{m.contractID=$root.proto.ContractID.decode(r,r.uint32());break;}case 5:{m.exchangeRate=$root.proto.ExchangeRateSet.decode(r,r.uint32());break;}case 6:{m.topicID=$root.proto.TopicID.decode(r,r.uint32());break;}case 7:{m.topicSequenceNumber=r.uint64();break;}case 8:{m.topicRunningHash=r.bytes();break;}case 9:{m.topicRunningHashVersion=r.uint64();break;}case 10:{m.tokenID=$root.proto.TokenID.decode(r,r.uint32());break;}case 11:{m.newTotalSupply=r.uint64();break;}case 12:{m.scheduleID=$root.proto.ScheduleID.decode(r,r.uint32());break;}case 13:{m.scheduledTransactionID=$root.proto.TransactionID.decode(r,r.uint32());break;}case 14:{if(!(m.serialNumbers&&m.serialNumbers.length))m.serialNumbers=[];if((t&7)===2){var c2=r.uint32()+r.pos;while(r.pos>>3){case 1:{m.hbarEquiv=r.int32();break;}case 2:{m.centEquiv=r.int32();break;}case 3:{m.expirationTime=$root.proto.TimestampSeconds.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};ExchangeRate.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ExchangeRate\";};return ExchangeRate;}();proto.ExchangeRateSet=function(){function ExchangeRateSet(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.currentRate=$root.proto.ExchangeRate.decode(r,r.uint32());break;}case 2:{m.nextRate=$root.proto.ExchangeRate.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};ExchangeRateSet.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ExchangeRateSet\";};return ExchangeRateSet;}();proto.CryptoGetAccountBalanceQuery=function(){function CryptoGetAccountBalanceQuery(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.QueryHeader.decode(r,r.uint32());break;}case 2:{m.accountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 3:{m.contractID=$root.proto.ContractID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};CryptoGetAccountBalanceQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.CryptoGetAccountBalanceQuery\";};return CryptoGetAccountBalanceQuery;}();proto.CryptoGetAccountBalanceResponse=function(){function CryptoGetAccountBalanceResponse(p){this.tokenBalances=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.ResponseHeader.decode(r,r.uint32());break;}case 2:{m.accountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 3:{m.balance=r.uint64();break;}case 4:{if(!(m.tokenBalances&&m.tokenBalances.length))m.tokenBalances=[];m.tokenBalances.push($root.proto.TokenBalance.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};CryptoGetAccountBalanceResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.CryptoGetAccountBalanceResponse\";};return CryptoGetAccountBalanceResponse;}();proto.CryptoGetAccountRecordsQuery=function(){function CryptoGetAccountRecordsQuery(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.QueryHeader.decode(r,r.uint32());break;}case 2:{m.accountID=$root.proto.AccountID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};CryptoGetAccountRecordsQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.CryptoGetAccountRecordsQuery\";};return CryptoGetAccountRecordsQuery;}();proto.CryptoGetAccountRecordsResponse=function(){function CryptoGetAccountRecordsResponse(p){this.records=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.ResponseHeader.decode(r,r.uint32());break;}case 2:{m.accountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 3:{if(!(m.records&&m.records.length))m.records=[];m.records.push($root.proto.TransactionRecord.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};CryptoGetAccountRecordsResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.CryptoGetAccountRecordsResponse\";};return CryptoGetAccountRecordsResponse;}();proto.CryptoGetInfoQuery=function(){function CryptoGetInfoQuery(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.QueryHeader.decode(r,r.uint32());break;}case 2:{m.accountID=$root.proto.AccountID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};CryptoGetInfoQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.CryptoGetInfoQuery\";};return CryptoGetInfoQuery;}();proto.CryptoGetInfoResponse=function(){function CryptoGetInfoResponse(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.ResponseHeader.decode(r,r.uint32());break;}case 2:{m.accountInfo=$root.proto.CryptoGetInfoResponse.AccountInfo.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};CryptoGetInfoResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.CryptoGetInfoResponse\";};CryptoGetInfoResponse.AccountInfo=function(){function AccountInfo(p){this.liveHashes=[];this.tokenRelationships=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.accountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 2:{m.contractAccountID=r.string();break;}case 3:{m.deleted=r.bool();break;}case 4:{m.proxyAccountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 6:{m.proxyReceived=r.int64();break;}case 7:{m.key=$root.proto.Key.decode(r,r.uint32());break;}case 8:{m.balance=r.uint64();break;}case 9:{m.generateSendRecordThreshold=r.uint64();break;}case 10:{m.generateReceiveRecordThreshold=r.uint64();break;}case 11:{m.receiverSigRequired=r.bool();break;}case 12:{m.expirationTime=$root.proto.Timestamp.decode(r,r.uint32());break;}case 13:{m.autoRenewPeriod=$root.proto.Duration.decode(r,r.uint32());break;}case 14:{if(!(m.liveHashes&&m.liveHashes.length))m.liveHashes=[];m.liveHashes.push($root.proto.LiveHash.decode(r,r.uint32()));break;}case 15:{if(!(m.tokenRelationships&&m.tokenRelationships.length))m.tokenRelationships=[];m.tokenRelationships.push($root.proto.TokenRelationship.decode(r,r.uint32()));break;}case 16:{m.memo=r.string();break;}case 17:{m.ownedNfts=r.int64();break;}case 18:{m.maxAutomaticTokenAssociations=r.int32();break;}case 19:{m.alias=r.bytes();break;}case 20:{m.ledgerId=r.bytes();break;}case 21:{m.ethereumNonce=r.int64();break;}case 22:{m.stakingInfo=$root.proto.StakingInfo.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};AccountInfo.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.CryptoGetInfoResponse.AccountInfo\";};return AccountInfo;}();return CryptoGetInfoResponse;}();proto.CryptoGetLiveHashQuery=function(){function CryptoGetLiveHashQuery(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.QueryHeader.decode(r,r.uint32());break;}case 2:{m.accountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 3:{m.hash=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};CryptoGetLiveHashQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.CryptoGetLiveHashQuery\";};return CryptoGetLiveHashQuery;}();proto.CryptoGetLiveHashResponse=function(){function CryptoGetLiveHashResponse(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.ResponseHeader.decode(r,r.uint32());break;}case 2:{m.liveHash=$root.proto.LiveHash.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};CryptoGetLiveHashResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.CryptoGetLiveHashResponse\";};return CryptoGetLiveHashResponse;}();proto.CryptoGetStakersQuery=function(){function CryptoGetStakersQuery(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.QueryHeader.decode(r,r.uint32());break;}case 2:{m.accountID=$root.proto.AccountID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};CryptoGetStakersQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.CryptoGetStakersQuery\";};return CryptoGetStakersQuery;}();proto.ProxyStaker=function(){function ProxyStaker(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.accountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 2:{m.amount=r.int64();break;}default:r.skipType(t&7);break;}}return m;};ProxyStaker.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ProxyStaker\";};return ProxyStaker;}();proto.AllProxyStakers=function(){function AllProxyStakers(p){this.proxyStaker=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.accountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 2:{if(!(m.proxyStaker&&m.proxyStaker.length))m.proxyStaker=[];m.proxyStaker.push($root.proto.ProxyStaker.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};AllProxyStakers.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.AllProxyStakers\";};return AllProxyStakers;}();proto.CryptoGetStakersResponse=function(){function CryptoGetStakersResponse(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.ResponseHeader.decode(r,r.uint32());break;}case 3:{m.stakers=$root.proto.AllProxyStakers.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};CryptoGetStakersResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.CryptoGetStakersResponse\";};return CryptoGetStakersResponse;}();proto.FileGetContentsQuery=function(){function FileGetContentsQuery(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.QueryHeader.decode(r,r.uint32());break;}case 2:{m.fileID=$root.proto.FileID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};FileGetContentsQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.FileGetContentsQuery\";};return FileGetContentsQuery;}();proto.FileGetContentsResponse=function(){function FileGetContentsResponse(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.ResponseHeader.decode(r,r.uint32());break;}case 2:{m.fileContents=$root.proto.FileGetContentsResponse.FileContents.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};FileGetContentsResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.FileGetContentsResponse\";};FileGetContentsResponse.FileContents=function(){function FileContents(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.fileID=$root.proto.FileID.decode(r,r.uint32());break;}case 2:{m.contents=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};FileContents.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.FileGetContentsResponse.FileContents\";};return FileContents;}();return FileGetContentsResponse;}();proto.FileGetInfoQuery=function(){function FileGetInfoQuery(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.QueryHeader.decode(r,r.uint32());break;}case 2:{m.fileID=$root.proto.FileID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};FileGetInfoQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.FileGetInfoQuery\";};return FileGetInfoQuery;}();proto.FileGetInfoResponse=function(){function FileGetInfoResponse(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.ResponseHeader.decode(r,r.uint32());break;}case 2:{m.fileInfo=$root.proto.FileGetInfoResponse.FileInfo.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};FileGetInfoResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.FileGetInfoResponse\";};FileGetInfoResponse.FileInfo=function(){function FileInfo(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.fileID=$root.proto.FileID.decode(r,r.uint32());break;}case 2:{m.size=r.int64();break;}case 3:{m.expirationTime=$root.proto.Timestamp.decode(r,r.uint32());break;}case 4:{m.deleted=r.bool();break;}case 5:{m.keys=$root.proto.KeyList.decode(r,r.uint32());break;}case 6:{m.memo=r.string();break;}case 7:{m.ledgerId=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};FileInfo.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.FileGetInfoResponse.FileInfo\";};return FileInfo;}();return FileGetInfoResponse;}();proto.TransactionGetReceiptQuery=function(){function TransactionGetReceiptQuery(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.QueryHeader.decode(r,r.uint32());break;}case 2:{m.transactionID=$root.proto.TransactionID.decode(r,r.uint32());break;}case 3:{m.includeDuplicates=r.bool();break;}case 4:{m.includeChildReceipts=r.bool();break;}default:r.skipType(t&7);break;}}return m;};TransactionGetReceiptQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TransactionGetReceiptQuery\";};return TransactionGetReceiptQuery;}();proto.TransactionGetReceiptResponse=function(){function TransactionGetReceiptResponse(p){this.duplicateTransactionReceipts=[];this.childTransactionReceipts=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.ResponseHeader.decode(r,r.uint32());break;}case 2:{m.receipt=$root.proto.TransactionReceipt.decode(r,r.uint32());break;}case 4:{if(!(m.duplicateTransactionReceipts&&m.duplicateTransactionReceipts.length))m.duplicateTransactionReceipts=[];m.duplicateTransactionReceipts.push($root.proto.TransactionReceipt.decode(r,r.uint32()));break;}case 5:{if(!(m.childTransactionReceipts&&m.childTransactionReceipts.length))m.childTransactionReceipts=[];m.childTransactionReceipts.push($root.proto.TransactionReceipt.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};TransactionGetReceiptResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TransactionGetReceiptResponse\";};return TransactionGetReceiptResponse;}();proto.TransactionGetRecordQuery=function(){function TransactionGetRecordQuery(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.QueryHeader.decode(r,r.uint32());break;}case 2:{m.transactionID=$root.proto.TransactionID.decode(r,r.uint32());break;}case 3:{m.includeDuplicates=r.bool();break;}case 4:{m.includeChildRecords=r.bool();break;}default:r.skipType(t&7);break;}}return m;};TransactionGetRecordQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TransactionGetRecordQuery\";};return TransactionGetRecordQuery;}();proto.TransactionGetRecordResponse=function(){function TransactionGetRecordResponse(p){this.duplicateTransactionRecords=[];this.childTransactionRecords=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.ResponseHeader.decode(r,r.uint32());break;}case 3:{m.transactionRecord=$root.proto.TransactionRecord.decode(r,r.uint32());break;}case 4:{if(!(m.duplicateTransactionRecords&&m.duplicateTransactionRecords.length))m.duplicateTransactionRecords=[];m.duplicateTransactionRecords.push($root.proto.TransactionRecord.decode(r,r.uint32()));break;}case 5:{if(!(m.childTransactionRecords&&m.childTransactionRecords.length))m.childTransactionRecords=[];m.childTransactionRecords.push($root.proto.TransactionRecord.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};TransactionGetRecordResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TransactionGetRecordResponse\";};return TransactionGetRecordResponse;}();proto.TransactionGetFastRecordQuery=function(){function TransactionGetFastRecordQuery(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.QueryHeader.decode(r,r.uint32());break;}case 2:{m.transactionID=$root.proto.TransactionID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};TransactionGetFastRecordQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TransactionGetFastRecordQuery\";};return TransactionGetFastRecordQuery;}();proto.TransactionGetFastRecordResponse=function(){function TransactionGetFastRecordResponse(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.ResponseHeader.decode(r,r.uint32());break;}case 2:{m.transactionRecord=$root.proto.TransactionRecord.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};TransactionGetFastRecordResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TransactionGetFastRecordResponse\";};return TransactionGetFastRecordResponse;}();proto.NetworkGetVersionInfoQuery=function(){function NetworkGetVersionInfoQuery(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.QueryHeader.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};NetworkGetVersionInfoQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.NetworkGetVersionInfoQuery\";};return NetworkGetVersionInfoQuery;}();proto.NetworkGetVersionInfoResponse=function(){function NetworkGetVersionInfoResponse(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.ResponseHeader.decode(r,r.uint32());break;}case 2:{m.hapiProtoVersion=$root.proto.SemanticVersion.decode(r,r.uint32());break;}case 3:{m.hederaServicesVersion=$root.proto.SemanticVersion.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};NetworkGetVersionInfoResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.NetworkGetVersionInfoResponse\";};return NetworkGetVersionInfoResponse;}();proto.NetworkGetExecutionTimeQuery=function(){function NetworkGetExecutionTimeQuery(p){this.transactionIds=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.QueryHeader.decode(r,r.uint32());break;}case 2:{if(!(m.transactionIds&&m.transactionIds.length))m.transactionIds=[];m.transactionIds.push($root.proto.TransactionID.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};NetworkGetExecutionTimeQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.NetworkGetExecutionTimeQuery\";};return NetworkGetExecutionTimeQuery;}();proto.NetworkGetExecutionTimeResponse=function(){function NetworkGetExecutionTimeResponse(p){this.executionTimes=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.ResponseHeader.decode(r,r.uint32());break;}case 2:{if(!(m.executionTimes&&m.executionTimes.length))m.executionTimes=[];if((t&7)===2){var c2=r.uint32()+r.pos;while(r.pos>>3){case 1:{m.header=$root.proto.QueryHeader.decode(r,r.uint32());break;}case 2:{m.token=$root.proto.TokenID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};TokenGetInfoQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenGetInfoQuery\";};return TokenGetInfoQuery;}();proto.TokenInfo=function(){function TokenInfo(p){this.customFees=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.tokenId=$root.proto.TokenID.decode(r,r.uint32());break;}case 2:{m.name=r.string();break;}case 3:{m.symbol=r.string();break;}case 4:{m.decimals=r.uint32();break;}case 5:{m.totalSupply=r.uint64();break;}case 6:{m.treasury=$root.proto.AccountID.decode(r,r.uint32());break;}case 7:{m.adminKey=$root.proto.Key.decode(r,r.uint32());break;}case 8:{m.kycKey=$root.proto.Key.decode(r,r.uint32());break;}case 9:{m.freezeKey=$root.proto.Key.decode(r,r.uint32());break;}case 10:{m.wipeKey=$root.proto.Key.decode(r,r.uint32());break;}case 11:{m.supplyKey=$root.proto.Key.decode(r,r.uint32());break;}case 12:{m.defaultFreezeStatus=r.int32();break;}case 13:{m.defaultKycStatus=r.int32();break;}case 14:{m.deleted=r.bool();break;}case 15:{m.autoRenewAccount=$root.proto.AccountID.decode(r,r.uint32());break;}case 16:{m.autoRenewPeriod=$root.proto.Duration.decode(r,r.uint32());break;}case 17:{m.expiry=$root.proto.Timestamp.decode(r,r.uint32());break;}case 18:{m.memo=r.string();break;}case 19:{m.tokenType=r.int32();break;}case 20:{m.supplyType=r.int32();break;}case 21:{m.maxSupply=r.int64();break;}case 22:{m.feeScheduleKey=$root.proto.Key.decode(r,r.uint32());break;}case 23:{if(!(m.customFees&&m.customFees.length))m.customFees=[];m.customFees.push($root.proto.CustomFee.decode(r,r.uint32()));break;}case 24:{m.pauseKey=$root.proto.Key.decode(r,r.uint32());break;}case 25:{m.pauseStatus=r.int32();break;}case 26:{m.ledgerId=r.bytes();break;}case 27:{m.metadata=r.bytes();break;}case 28:{m.metadataKey=$root.proto.Key.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};TokenInfo.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenInfo\";};return TokenInfo;}();proto.TokenGetInfoResponse=function(){function TokenGetInfoResponse(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.ResponseHeader.decode(r,r.uint32());break;}case 2:{m.tokenInfo=$root.proto.TokenInfo.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};TokenGetInfoResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenGetInfoResponse\";};return TokenGetInfoResponse;}();proto.ScheduleGetInfoQuery=function(){function ScheduleGetInfoQuery(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.QueryHeader.decode(r,r.uint32());break;}case 2:{m.scheduleID=$root.proto.ScheduleID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};ScheduleGetInfoQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ScheduleGetInfoQuery\";};return ScheduleGetInfoQuery;}();proto.ScheduleInfo=function(){function ScheduleInfo(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.scheduleID=$root.proto.ScheduleID.decode(r,r.uint32());break;}case 2:{m.deletionTime=$root.proto.Timestamp.decode(r,r.uint32());break;}case 3:{m.executionTime=$root.proto.Timestamp.decode(r,r.uint32());break;}case 4:{m.expirationTime=$root.proto.Timestamp.decode(r,r.uint32());break;}case 5:{m.scheduledTransactionBody=$root.proto.SchedulableTransactionBody.decode(r,r.uint32());break;}case 6:{m.memo=r.string();break;}case 7:{m.adminKey=$root.proto.Key.decode(r,r.uint32());break;}case 8:{m.signers=$root.proto.KeyList.decode(r,r.uint32());break;}case 9:{m.creatorAccountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 10:{m.payerAccountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 11:{m.scheduledTransactionID=$root.proto.TransactionID.decode(r,r.uint32());break;}case 12:{m.ledgerId=r.bytes();break;}case 13:{m.waitForExpiry=r.bool();break;}default:r.skipType(t&7);break;}}return m;};ScheduleInfo.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ScheduleInfo\";};return ScheduleInfo;}();proto.ScheduleGetInfoResponse=function(){function ScheduleGetInfoResponse(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.ResponseHeader.decode(r,r.uint32());break;}case 2:{m.scheduleInfo=$root.proto.ScheduleInfo.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};ScheduleGetInfoResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ScheduleGetInfoResponse\";};return ScheduleGetInfoResponse;}();proto.TokenGetAccountNftInfosQuery=function(){function TokenGetAccountNftInfosQuery(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.QueryHeader.decode(r,r.uint32());break;}case 2:{m.accountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 3:{m.start=r.int64();break;}case 4:{m.end=r.int64();break;}default:r.skipType(t&7);break;}}return m;};TokenGetAccountNftInfosQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenGetAccountNftInfosQuery\";};return TokenGetAccountNftInfosQuery;}();proto.TokenGetAccountNftInfosResponse=function(){function TokenGetAccountNftInfosResponse(p){this.nfts=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.ResponseHeader.decode(r,r.uint32());break;}case 2:{if(!(m.nfts&&m.nfts.length))m.nfts=[];m.nfts.push($root.proto.TokenNftInfo.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};TokenGetAccountNftInfosResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenGetAccountNftInfosResponse\";};return TokenGetAccountNftInfosResponse;}();proto.TokenGetNftInfoQuery=function(){function TokenGetNftInfoQuery(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.QueryHeader.decode(r,r.uint32());break;}case 2:{m.nftID=$root.proto.NftID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};TokenGetNftInfoQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenGetNftInfoQuery\";};return TokenGetNftInfoQuery;}();proto.TokenNftInfo=function(){function TokenNftInfo(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.nftID=$root.proto.NftID.decode(r,r.uint32());break;}case 2:{m.accountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 3:{m.creationTime=$root.proto.Timestamp.decode(r,r.uint32());break;}case 4:{m.metadata=r.bytes();break;}case 5:{m.ledgerId=r.bytes();break;}case 6:{m.spenderId=$root.proto.AccountID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};TokenNftInfo.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenNftInfo\";};return TokenNftInfo;}();proto.TokenGetNftInfoResponse=function(){function TokenGetNftInfoResponse(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.ResponseHeader.decode(r,r.uint32());break;}case 2:{m.nft=$root.proto.TokenNftInfo.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};TokenGetNftInfoResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenGetNftInfoResponse\";};return TokenGetNftInfoResponse;}();proto.TokenGetNftInfosQuery=function(){function TokenGetNftInfosQuery(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.QueryHeader.decode(r,r.uint32());break;}case 2:{m.tokenID=$root.proto.TokenID.decode(r,r.uint32());break;}case 3:{m.start=r.int64();break;}case 4:{m.end=r.int64();break;}default:r.skipType(t&7);break;}}return m;};TokenGetNftInfosQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenGetNftInfosQuery\";};return TokenGetNftInfosQuery;}();proto.TokenGetNftInfosResponse=function(){function TokenGetNftInfosResponse(p){this.nfts=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.ResponseHeader.decode(r,r.uint32());break;}case 2:{m.tokenID=$root.proto.TokenID.decode(r,r.uint32());break;}case 3:{if(!(m.nfts&&m.nfts.length))m.nfts=[];m.nfts.push($root.proto.TokenNftInfo.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};TokenGetNftInfosResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenGetNftInfosResponse\";};return TokenGetNftInfosResponse;}();proto.GetAccountDetailsQuery=function(){function GetAccountDetailsQuery(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.QueryHeader.decode(r,r.uint32());break;}case 2:{m.accountId=$root.proto.AccountID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};GetAccountDetailsQuery.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.GetAccountDetailsQuery\";};return GetAccountDetailsQuery;}();proto.GetAccountDetailsResponse=function(){function GetAccountDetailsResponse(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.header=$root.proto.ResponseHeader.decode(r,r.uint32());break;}case 2:{m.accountDetails=$root.proto.GetAccountDetailsResponse.AccountDetails.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};GetAccountDetailsResponse.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.GetAccountDetailsResponse\";};GetAccountDetailsResponse.AccountDetails=function(){function AccountDetails(p){this.tokenRelationships=[];this.grantedCryptoAllowances=[];this.grantedNftAllowances=[];this.grantedTokenAllowances=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.accountId=$root.proto.AccountID.decode(r,r.uint32());break;}case 2:{m.contractAccountId=r.string();break;}case 3:{m.deleted=r.bool();break;}case 4:{m.proxyAccountId=$root.proto.AccountID.decode(r,r.uint32());break;}case 5:{m.proxyReceived=r.int64();break;}case 6:{m.key=$root.proto.Key.decode(r,r.uint32());break;}case 7:{m.balance=r.uint64();break;}case 8:{m.receiverSigRequired=r.bool();break;}case 9:{m.expirationTime=$root.proto.Timestamp.decode(r,r.uint32());break;}case 10:{m.autoRenewPeriod=$root.proto.Duration.decode(r,r.uint32());break;}case 11:{if(!(m.tokenRelationships&&m.tokenRelationships.length))m.tokenRelationships=[];m.tokenRelationships.push($root.proto.TokenRelationship.decode(r,r.uint32()));break;}case 12:{m.memo=r.string();break;}case 13:{m.ownedNfts=r.int64();break;}case 14:{m.maxAutomaticTokenAssociations=r.int32();break;}case 15:{m.alias=r.bytes();break;}case 16:{m.ledgerId=r.bytes();break;}case 17:{if(!(m.grantedCryptoAllowances&&m.grantedCryptoAllowances.length))m.grantedCryptoAllowances=[];m.grantedCryptoAllowances.push($root.proto.GrantedCryptoAllowance.decode(r,r.uint32()));break;}case 18:{if(!(m.grantedNftAllowances&&m.grantedNftAllowances.length))m.grantedNftAllowances=[];m.grantedNftAllowances.push($root.proto.GrantedNftAllowance.decode(r,r.uint32()));break;}case 19:{if(!(m.grantedTokenAllowances&&m.grantedTokenAllowances.length))m.grantedTokenAllowances=[];m.grantedTokenAllowances.push($root.proto.GrantedTokenAllowance.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};AccountDetails.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.GetAccountDetailsResponse.AccountDetails\";};return AccountDetails;}();return GetAccountDetailsResponse;}();proto.GrantedCryptoAllowance=function(){function GrantedCryptoAllowance(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.spender=$root.proto.AccountID.decode(r,r.uint32());break;}case 2:{m.amount=r.int64();break;}default:r.skipType(t&7);break;}}return m;};GrantedCryptoAllowance.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.GrantedCryptoAllowance\";};return GrantedCryptoAllowance;}();proto.GrantedNftAllowance=function(){function GrantedNftAllowance(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.tokenId=$root.proto.TokenID.decode(r,r.uint32());break;}case 2:{m.spender=$root.proto.AccountID.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};GrantedNftAllowance.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.GrantedNftAllowance\";};return GrantedNftAllowance;}();proto.GrantedTokenAllowance=function(){function GrantedTokenAllowance(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.tokenId=$root.proto.TokenID.decode(r,r.uint32());break;}case 2:{m.spender=$root.proto.AccountID.decode(r,r.uint32());break;}case 3:{m.amount=r.int64();break;}default:r.skipType(t&7);break;}}return m;};GrantedTokenAllowance.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.GrantedTokenAllowance\";};return GrantedTokenAllowance;}();proto.Response=function(){function Response(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.getByKey=$root.proto.GetByKeyResponse.decode(r,r.uint32());break;}case 2:{m.getBySolidityID=$root.proto.GetBySolidityIDResponse.decode(r,r.uint32());break;}case 3:{m.contractCallLocal=$root.proto.ContractCallLocalResponse.decode(r,r.uint32());break;}case 5:{m.contractGetBytecodeResponse=$root.proto.ContractGetBytecodeResponse.decode(r,r.uint32());break;}case 4:{m.contractGetInfo=$root.proto.ContractGetInfoResponse.decode(r,r.uint32());break;}case 6:{m.contractGetRecordsResponse=$root.proto.ContractGetRecordsResponse.decode(r,r.uint32());break;}case 7:{m.cryptogetAccountBalance=$root.proto.CryptoGetAccountBalanceResponse.decode(r,r.uint32());break;}case 8:{m.cryptoGetAccountRecords=$root.proto.CryptoGetAccountRecordsResponse.decode(r,r.uint32());break;}case 9:{m.cryptoGetInfo=$root.proto.CryptoGetInfoResponse.decode(r,r.uint32());break;}case 10:{m.cryptoGetLiveHash=$root.proto.CryptoGetLiveHashResponse.decode(r,r.uint32());break;}case 11:{m.cryptoGetProxyStakers=$root.proto.CryptoGetStakersResponse.decode(r,r.uint32());break;}case 12:{m.fileGetContents=$root.proto.FileGetContentsResponse.decode(r,r.uint32());break;}case 13:{m.fileGetInfo=$root.proto.FileGetInfoResponse.decode(r,r.uint32());break;}case 14:{m.transactionGetReceipt=$root.proto.TransactionGetReceiptResponse.decode(r,r.uint32());break;}case 15:{m.transactionGetRecord=$root.proto.TransactionGetRecordResponse.decode(r,r.uint32());break;}case 16:{m.transactionGetFastRecord=$root.proto.TransactionGetFastRecordResponse.decode(r,r.uint32());break;}case 150:{m.consensusGetTopicInfo=$root.proto.ConsensusGetTopicInfoResponse.decode(r,r.uint32());break;}case 151:{m.networkGetVersionInfo=$root.proto.NetworkGetVersionInfoResponse.decode(r,r.uint32());break;}case 152:{m.tokenGetInfo=$root.proto.TokenGetInfoResponse.decode(r,r.uint32());break;}case 153:{m.scheduleGetInfo=$root.proto.ScheduleGetInfoResponse.decode(r,r.uint32());break;}case 154:{m.tokenGetAccountNftInfos=$root.proto.TokenGetAccountNftInfosResponse.decode(r,r.uint32());break;}case 155:{m.tokenGetNftInfo=$root.proto.TokenGetNftInfoResponse.decode(r,r.uint32());break;}case 156:{m.tokenGetNftInfos=$root.proto.TokenGetNftInfosResponse.decode(r,r.uint32());break;}case 157:{m.networkGetExecutionTime=$root.proto.NetworkGetExecutionTimeResponse.decode(r,r.uint32());break;}case 158:{m.accountDetails=$root.proto.GetAccountDetailsResponse.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};Response.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.Response\";};return Response;}();proto.CryptoService=function(){function CryptoService(rpcImpl,requestDelimited,responseDelimited){$protobuf.rpc.Service.call(this,rpcImpl,requestDelimited,responseDelimited);}(CryptoService.prototype=Object.create($protobuf.rpc.Service.prototype)).constructor=CryptoService;CryptoService.create=function create(rpcImpl,requestDelimited,responseDelimited){return new this(rpcImpl,requestDelimited,responseDelimited);};Object.defineProperty(CryptoService.prototype.createAccount=function createAccount(request,callback){return this.rpcCall(createAccount,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"createAccount\"});Object.defineProperty(CryptoService.prototype.updateAccount=function updateAccount(request,callback){return this.rpcCall(updateAccount,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"updateAccount\"});Object.defineProperty(CryptoService.prototype.cryptoTransfer=function cryptoTransfer(request,callback){return this.rpcCall(cryptoTransfer,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"cryptoTransfer\"});Object.defineProperty(CryptoService.prototype.cryptoDelete=function cryptoDelete(request,callback){return this.rpcCall(cryptoDelete,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"cryptoDelete\"});Object.defineProperty(CryptoService.prototype.approveAllowances=function approveAllowances(request,callback){return this.rpcCall(approveAllowances,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"approveAllowances\"});Object.defineProperty(CryptoService.prototype.deleteAllowances=function deleteAllowances(request,callback){return this.rpcCall(deleteAllowances,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"deleteAllowances\"});Object.defineProperty(CryptoService.prototype.addLiveHash=function addLiveHash(request,callback){return this.rpcCall(addLiveHash,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"addLiveHash\"});Object.defineProperty(CryptoService.prototype.deleteLiveHash=function deleteLiveHash(request,callback){return this.rpcCall(deleteLiveHash,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"deleteLiveHash\"});Object.defineProperty(CryptoService.prototype.getLiveHash=function getLiveHash(request,callback){return this.rpcCall(getLiveHash,$root.proto.Query,$root.proto.Response,request,callback);},\"name\",{value:\"getLiveHash\"});Object.defineProperty(CryptoService.prototype.getAccountRecords=function getAccountRecords(request,callback){return this.rpcCall(getAccountRecords,$root.proto.Query,$root.proto.Response,request,callback);},\"name\",{value:\"getAccountRecords\"});Object.defineProperty(CryptoService.prototype.cryptoGetBalance=function cryptoGetBalance(request,callback){return this.rpcCall(cryptoGetBalance,$root.proto.Query,$root.proto.Response,request,callback);},\"name\",{value:\"cryptoGetBalance\"});Object.defineProperty(CryptoService.prototype.getAccountInfo=function getAccountInfo(request,callback){return this.rpcCall(getAccountInfo,$root.proto.Query,$root.proto.Response,request,callback);},\"name\",{value:\"getAccountInfo\"});Object.defineProperty(CryptoService.prototype.getTransactionReceipts=function getTransactionReceipts(request,callback){return this.rpcCall(getTransactionReceipts,$root.proto.Query,$root.proto.Response,request,callback);},\"name\",{value:\"getTransactionReceipts\"});Object.defineProperty(CryptoService.prototype.getTxRecordByTxID=function getTxRecordByTxID(request,callback){return this.rpcCall(getTxRecordByTxID,$root.proto.Query,$root.proto.Response,request,callback);},\"name\",{value:\"getTxRecordByTxID\"});return CryptoService;}();proto.FileService=function(){function FileService(rpcImpl,requestDelimited,responseDelimited){$protobuf.rpc.Service.call(this,rpcImpl,requestDelimited,responseDelimited);}(FileService.prototype=Object.create($protobuf.rpc.Service.prototype)).constructor=FileService;FileService.create=function create(rpcImpl,requestDelimited,responseDelimited){return new this(rpcImpl,requestDelimited,responseDelimited);};Object.defineProperty(FileService.prototype.createFile=function createFile(request,callback){return this.rpcCall(createFile,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"createFile\"});Object.defineProperty(FileService.prototype.updateFile=function updateFile(request,callback){return this.rpcCall(updateFile,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"updateFile\"});Object.defineProperty(FileService.prototype.deleteFile=function deleteFile(request,callback){return this.rpcCall(deleteFile,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"deleteFile\"});Object.defineProperty(FileService.prototype.appendContent=function appendContent(request,callback){return this.rpcCall(appendContent,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"appendContent\"});Object.defineProperty(FileService.prototype.getFileContent=function getFileContent(request,callback){return this.rpcCall(getFileContent,$root.proto.Query,$root.proto.Response,request,callback);},\"name\",{value:\"getFileContent\"});Object.defineProperty(FileService.prototype.getFileInfo=function getFileInfo(request,callback){return this.rpcCall(getFileInfo,$root.proto.Query,$root.proto.Response,request,callback);},\"name\",{value:\"getFileInfo\"});Object.defineProperty(FileService.prototype.systemDelete=function systemDelete(request,callback){return this.rpcCall(systemDelete,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"systemDelete\"});Object.defineProperty(FileService.prototype.systemUndelete=function systemUndelete(request,callback){return this.rpcCall(systemUndelete,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"systemUndelete\"});return FileService;}();proto.FreezeService=function(){function FreezeService(rpcImpl,requestDelimited,responseDelimited){$protobuf.rpc.Service.call(this,rpcImpl,requestDelimited,responseDelimited);}(FreezeService.prototype=Object.create($protobuf.rpc.Service.prototype)).constructor=FreezeService;FreezeService.create=function create(rpcImpl,requestDelimited,responseDelimited){return new this(rpcImpl,requestDelimited,responseDelimited);};Object.defineProperty(FreezeService.prototype.freeze=function freeze(request,callback){return this.rpcCall(freeze,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"freeze\"});return FreezeService;}();proto.NetworkService=function(){function NetworkService(rpcImpl,requestDelimited,responseDelimited){$protobuf.rpc.Service.call(this,rpcImpl,requestDelimited,responseDelimited);}(NetworkService.prototype=Object.create($protobuf.rpc.Service.prototype)).constructor=NetworkService;NetworkService.create=function create(rpcImpl,requestDelimited,responseDelimited){return new this(rpcImpl,requestDelimited,responseDelimited);};Object.defineProperty(NetworkService.prototype.getVersionInfo=function getVersionInfo(request,callback){return this.rpcCall(getVersionInfo,$root.proto.Query,$root.proto.Response,request,callback);},\"name\",{value:\"getVersionInfo\"});Object.defineProperty(NetworkService.prototype.getAccountDetails=function getAccountDetails(request,callback){return this.rpcCall(getAccountDetails,$root.proto.Query,$root.proto.Response,request,callback);},\"name\",{value:\"getAccountDetails\"});Object.defineProperty(NetworkService.prototype.getExecutionTime=function getExecutionTime(request,callback){return this.rpcCall(getExecutionTime,$root.proto.Query,$root.proto.Response,request,callback);},\"name\",{value:\"getExecutionTime\"});Object.defineProperty(NetworkService.prototype.uncheckedSubmit=function uncheckedSubmit(request,callback){return this.rpcCall(uncheckedSubmit,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"uncheckedSubmit\"});return NetworkService;}();proto.ScheduleService=function(){function ScheduleService(rpcImpl,requestDelimited,responseDelimited){$protobuf.rpc.Service.call(this,rpcImpl,requestDelimited,responseDelimited);}(ScheduleService.prototype=Object.create($protobuf.rpc.Service.prototype)).constructor=ScheduleService;ScheduleService.create=function create(rpcImpl,requestDelimited,responseDelimited){return new this(rpcImpl,requestDelimited,responseDelimited);};Object.defineProperty(ScheduleService.prototype.createSchedule=function createSchedule(request,callback){return this.rpcCall(createSchedule,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"createSchedule\"});Object.defineProperty(ScheduleService.prototype.signSchedule=function signSchedule(request,callback){return this.rpcCall(signSchedule,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"signSchedule\"});Object.defineProperty(ScheduleService.prototype.deleteSchedule=function deleteSchedule(request,callback){return this.rpcCall(deleteSchedule,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"deleteSchedule\"});Object.defineProperty(ScheduleService.prototype.getScheduleInfo=function getScheduleInfo(request,callback){return this.rpcCall(getScheduleInfo,$root.proto.Query,$root.proto.Response,request,callback);},\"name\",{value:\"getScheduleInfo\"});return ScheduleService;}();proto.SmartContractService=function(){function SmartContractService(rpcImpl,requestDelimited,responseDelimited){$protobuf.rpc.Service.call(this,rpcImpl,requestDelimited,responseDelimited);}(SmartContractService.prototype=Object.create($protobuf.rpc.Service.prototype)).constructor=SmartContractService;SmartContractService.create=function create(rpcImpl,requestDelimited,responseDelimited){return new this(rpcImpl,requestDelimited,responseDelimited);};Object.defineProperty(SmartContractService.prototype.createContract=function createContract(request,callback){return this.rpcCall(createContract,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"createContract\"});Object.defineProperty(SmartContractService.prototype.updateContract=function updateContract(request,callback){return this.rpcCall(updateContract,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"updateContract\"});Object.defineProperty(SmartContractService.prototype.contractCallMethod=function contractCallMethod(request,callback){return this.rpcCall(contractCallMethod,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"contractCallMethod\"});Object.defineProperty(SmartContractService.prototype.contractCallLocalMethod=function contractCallLocalMethod(request,callback){return this.rpcCall(contractCallLocalMethod,$root.proto.Query,$root.proto.Response,request,callback);},\"name\",{value:\"contractCallLocalMethod\"});Object.defineProperty(SmartContractService.prototype.getContractInfo=function getContractInfo(request,callback){return this.rpcCall(getContractInfo,$root.proto.Query,$root.proto.Response,request,callback);},\"name\",{value:\"getContractInfo\"});Object.defineProperty(SmartContractService.prototype.contractGetBytecode=function contractGetBytecode(request,callback){return this.rpcCall(contractGetBytecode,$root.proto.Query,$root.proto.Response,request,callback);},\"name\",{value:\"ContractGetBytecode\"});Object.defineProperty(SmartContractService.prototype.getBySolidityID=function getBySolidityID(request,callback){return this.rpcCall(getBySolidityID,$root.proto.Query,$root.proto.Response,request,callback);},\"name\",{value:\"getBySolidityID\"});Object.defineProperty(SmartContractService.prototype.getTxRecordByContractID=function getTxRecordByContractID(request,callback){return this.rpcCall(getTxRecordByContractID,$root.proto.Query,$root.proto.Response,request,callback);},\"name\",{value:\"getTxRecordByContractID\"});Object.defineProperty(SmartContractService.prototype.deleteContract=function deleteContract(request,callback){return this.rpcCall(deleteContract,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"deleteContract\"});Object.defineProperty(SmartContractService.prototype.systemDelete=function systemDelete(request,callback){return this.rpcCall(systemDelete,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"systemDelete\"});Object.defineProperty(SmartContractService.prototype.systemUndelete=function systemUndelete(request,callback){return this.rpcCall(systemUndelete,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"systemUndelete\"});Object.defineProperty(SmartContractService.prototype.callEthereum=function callEthereum(request,callback){return this.rpcCall(callEthereum,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"callEthereum\"});return SmartContractService;}();proto.ThrottleGroup=function(){function ThrottleGroup(p){this.operations=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{if(!(m.operations&&m.operations.length))m.operations=[];if((t&7)===2){var c2=r.uint32()+r.pos;while(r.pos>>3){case 1:{m.name=r.string();break;}case 2:{m.burstPeriodMs=r.uint64();break;}case 3:{if(!(m.throttleGroups&&m.throttleGroups.length))m.throttleGroups=[];m.throttleGroups.push($root.proto.ThrottleGroup.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};ThrottleBucket.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ThrottleBucket\";};return ThrottleBucket;}();proto.ThrottleDefinitions=function(){function ThrottleDefinitions(p){this.throttleBuckets=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{if(!(m.throttleBuckets&&m.throttleBuckets.length))m.throttleBuckets=[];m.throttleBuckets.push($root.proto.ThrottleBucket.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};ThrottleDefinitions.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ThrottleDefinitions\";};return ThrottleDefinitions;}();proto.TokenService=function(){function TokenService(rpcImpl,requestDelimited,responseDelimited){$protobuf.rpc.Service.call(this,rpcImpl,requestDelimited,responseDelimited);}(TokenService.prototype=Object.create($protobuf.rpc.Service.prototype)).constructor=TokenService;TokenService.create=function create(rpcImpl,requestDelimited,responseDelimited){return new this(rpcImpl,requestDelimited,responseDelimited);};Object.defineProperty(TokenService.prototype.createToken=function createToken(request,callback){return this.rpcCall(createToken,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"createToken\"});Object.defineProperty(TokenService.prototype.updateToken=function updateToken(request,callback){return this.rpcCall(updateToken,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"updateToken\"});Object.defineProperty(TokenService.prototype.mintToken=function mintToken(request,callback){return this.rpcCall(mintToken,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"mintToken\"});Object.defineProperty(TokenService.prototype.burnToken=function burnToken(request,callback){return this.rpcCall(burnToken,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"burnToken\"});Object.defineProperty(TokenService.prototype.deleteToken=function deleteToken(request,callback){return this.rpcCall(deleteToken,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"deleteToken\"});Object.defineProperty(TokenService.prototype.wipeTokenAccount=function wipeTokenAccount(request,callback){return this.rpcCall(wipeTokenAccount,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"wipeTokenAccount\"});Object.defineProperty(TokenService.prototype.freezeTokenAccount=function freezeTokenAccount(request,callback){return this.rpcCall(freezeTokenAccount,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"freezeTokenAccount\"});Object.defineProperty(TokenService.prototype.unfreezeTokenAccount=function unfreezeTokenAccount(request,callback){return this.rpcCall(unfreezeTokenAccount,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"unfreezeTokenAccount\"});Object.defineProperty(TokenService.prototype.grantKycToTokenAccount=function grantKycToTokenAccount(request,callback){return this.rpcCall(grantKycToTokenAccount,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"grantKycToTokenAccount\"});Object.defineProperty(TokenService.prototype.revokeKycFromTokenAccount=function revokeKycFromTokenAccount(request,callback){return this.rpcCall(revokeKycFromTokenAccount,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"revokeKycFromTokenAccount\"});Object.defineProperty(TokenService.prototype.associateTokens=function associateTokens(request,callback){return this.rpcCall(associateTokens,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"associateTokens\"});Object.defineProperty(TokenService.prototype.dissociateTokens=function dissociateTokens(request,callback){return this.rpcCall(dissociateTokens,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"dissociateTokens\"});Object.defineProperty(TokenService.prototype.updateTokenFeeSchedule=function updateTokenFeeSchedule(request,callback){return this.rpcCall(updateTokenFeeSchedule,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"updateTokenFeeSchedule\"});Object.defineProperty(TokenService.prototype.getTokenInfo=function getTokenInfo(request,callback){return this.rpcCall(getTokenInfo,$root.proto.Query,$root.proto.Response,request,callback);},\"name\",{value:\"getTokenInfo\"});Object.defineProperty(TokenService.prototype.getTokenNftInfo=function getTokenNftInfo(request,callback){return this.rpcCall(getTokenNftInfo,$root.proto.Query,$root.proto.Response,request,callback);},\"name\",{value:\"getTokenNftInfo\"});Object.defineProperty(TokenService.prototype.pauseToken=function pauseToken(request,callback){return this.rpcCall(pauseToken,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"pauseToken\"});Object.defineProperty(TokenService.prototype.unpauseToken=function unpauseToken(request,callback){return this.rpcCall(unpauseToken,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"unpauseToken\"});Object.defineProperty(TokenService.prototype.updateNfts=function updateNfts(request,callback){return this.rpcCall(updateNfts,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"updateNfts\"});Object.defineProperty(TokenService.prototype.rejectToken=function rejectToken(request,callback){return this.rpcCall(rejectToken,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"rejectToken\"});Object.defineProperty(TokenService.prototype.airdropTokens=function airdropTokens(request,callback){return this.rpcCall(airdropTokens,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"airdropTokens\"});Object.defineProperty(TokenService.prototype.cancelAirdrop=function cancelAirdrop(request,callback){return this.rpcCall(cancelAirdrop,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"cancelAirdrop\"});Object.defineProperty(TokenService.prototype.claimAirdrop=function claimAirdrop(request,callback){return this.rpcCall(claimAirdrop,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"claimAirdrop\"});return TokenService;}();proto.SignedTransaction=function(){function SignedTransaction(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.bodyBytes=r.bytes();break;}case 2:{m.sigMap=$root.proto.SignatureMap.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};SignedTransaction.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.SignedTransaction\";};return SignedTransaction;}();proto.UtilService=function(){function UtilService(rpcImpl,requestDelimited,responseDelimited){$protobuf.rpc.Service.call(this,rpcImpl,requestDelimited,responseDelimited);}(UtilService.prototype=Object.create($protobuf.rpc.Service.prototype)).constructor=UtilService;UtilService.create=function create(rpcImpl,requestDelimited,responseDelimited){return new this(rpcImpl,requestDelimited,responseDelimited);};Object.defineProperty(UtilService.prototype.prng=function prng(request,callback){return this.rpcCall(prng,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"prng\"});Object.defineProperty(UtilService.prototype.atomicBatch=function atomicBatch(request,callback){return this.rpcCall(atomicBatch,$root.proto.Transaction,$root.proto.TransactionResponse,request,callback);},\"name\",{value:\"atomicBatch\"});return UtilService;}();proto.TokenUnitBalance=function(){function TokenUnitBalance(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.tokenId=$root.proto.TokenID.decode(r,r.uint32());break;}case 2:{m.balance=r.uint64();break;}default:r.skipType(t&7);break;}}return m;};TokenUnitBalance.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TokenUnitBalance\";};return TokenUnitBalance;}();proto.SingleAccountBalances=function(){function SingleAccountBalances(p){this.tokenUnitBalances=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.accountID=$root.proto.AccountID.decode(r,r.uint32());break;}case 2:{m.hbarBalance=r.uint64();break;}case 3:{if(!(m.tokenUnitBalances&&m.tokenUnitBalances.length))m.tokenUnitBalances=[];m.tokenUnitBalances.push($root.proto.TokenUnitBalance.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};SingleAccountBalances.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.SingleAccountBalances\";};return SingleAccountBalances;}();proto.AllAccountBalances=function(){function AllAccountBalances(p){this.allAccounts=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.consensusTimestamp=$root.proto.Timestamp.decode(r,r.uint32());break;}case 2:{if(!(m.allAccounts&&m.allAccounts.length))m.allAccounts=[];m.allAccounts.push($root.proto.SingleAccountBalances.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};AllAccountBalances.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.AllAccountBalances\";};return AllAccountBalances;}();proto.ContractActions=function(){function ContractActions(p){this.contractActions=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{if(!(m.contractActions&&m.contractActions.length))m.contractActions=[];m.contractActions.push($root.proto.ContractAction.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};ContractActions.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ContractActions\";};return ContractActions;}();proto.ContractActionType=function(){const valuesById={},values=Object.create(valuesById);values[valuesById[0]=\"NO_ACTION\"]=0;values[valuesById[1]=\"CALL\"]=1;values[valuesById[2]=\"CREATE\"]=2;values[valuesById[3]=\"PRECOMPILE\"]=3;values[valuesById[4]=\"SYSTEM\"]=4;return values;}();proto.CallOperationType=function(){const valuesById={},values=Object.create(valuesById);values[valuesById[0]=\"OP_UNKNOWN\"]=0;values[valuesById[1]=\"OP_CALL\"]=1;values[valuesById[2]=\"OP_CALLCODE\"]=2;values[valuesById[3]=\"OP_DELEGATECALL\"]=3;values[valuesById[4]=\"OP_STATICCALL\"]=4;values[valuesById[5]=\"OP_CREATE\"]=5;values[valuesById[6]=\"OP_CREATE2\"]=6;return values;}();proto.ContractAction=function(){function ContractAction(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.callType=r.int32();break;}case 2:{m.callingAccount=$root.proto.AccountID.decode(r,r.uint32());break;}case 3:{m.callingContract=$root.proto.ContractID.decode(r,r.uint32());break;}case 4:{m.gas=r.int64();break;}case 5:{m.input=r.bytes();break;}case 6:{m.recipientAccount=$root.proto.AccountID.decode(r,r.uint32());break;}case 7:{m.recipientContract=$root.proto.ContractID.decode(r,r.uint32());break;}case 8:{m.targetedAddress=r.bytes();break;}case 9:{m.value=r.int64();break;}case 10:{m.gasUsed=r.int64();break;}case 11:{m.output=r.bytes();break;}case 12:{m.revertReason=r.bytes();break;}case 13:{m.error=r.bytes();break;}case 14:{m.callDepth=r.int32();break;}case 15:{m.callOperationType=r.int32();break;}default:r.skipType(t&7);break;}}return m;};ContractAction.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ContractAction\";};return ContractAction;}();proto.ContractBytecode=function(){function ContractBytecode(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.contractId=$root.proto.ContractID.decode(r,r.uint32());break;}case 2:{m.initcode=r.bytes();break;}case 3:{m.runtimeBytecode=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};ContractBytecode.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ContractBytecode\";};return ContractBytecode;}();proto.ContractStateChanges=function(){function ContractStateChanges(p){this.contractStateChanges=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{if(!(m.contractStateChanges&&m.contractStateChanges.length))m.contractStateChanges=[];m.contractStateChanges.push($root.proto.ContractStateChange.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};ContractStateChanges.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ContractStateChanges\";};return ContractStateChanges;}();proto.ContractStateChange=function(){function ContractStateChange(p){this.storageChanges=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.contractId=$root.proto.ContractID.decode(r,r.uint32());break;}case 2:{if(!(m.storageChanges&&m.storageChanges.length))m.storageChanges=[];m.storageChanges.push($root.proto.StorageChange.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};ContractStateChange.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.ContractStateChange\";};return ContractStateChange;}();proto.StorageChange=function(){function StorageChange(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.slot=r.bytes();break;}case 2:{m.valueRead=r.bytes();break;}case 3:{m.valueWritten=$root.google.protobuf.BytesValue.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};StorageChange.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.StorageChange\";};return StorageChange;}();proto.HashAlgorithm=function(){const valuesById={},values=Object.create(valuesById);values[valuesById[0]=\"HASH_ALGORITHM_UNKNOWN\"]=0;values[valuesById[1]=\"SHA_384\"]=1;return values;}();proto.HashObject=function(){function HashObject(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.algorithm=r.int32();break;}case 2:{m.length=r.int32();break;}case 3:{m.hash=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};HashObject.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.HashObject\";};return HashObject;}();proto.RecordStreamFile=function(){function RecordStreamFile(p){this.recordStreamItems=[];this.sidecars=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.hapiProtoVersion=$root.proto.SemanticVersion.decode(r,r.uint32());break;}case 2:{m.startObjectRunningHash=$root.proto.HashObject.decode(r,r.uint32());break;}case 3:{if(!(m.recordStreamItems&&m.recordStreamItems.length))m.recordStreamItems=[];m.recordStreamItems.push($root.proto.RecordStreamItem.decode(r,r.uint32()));break;}case 4:{m.endObjectRunningHash=$root.proto.HashObject.decode(r,r.uint32());break;}case 5:{m.blockNumber=r.int64();break;}case 6:{if(!(m.sidecars&&m.sidecars.length))m.sidecars=[];m.sidecars.push($root.proto.SidecarMetadata.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};RecordStreamFile.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.RecordStreamFile\";};return RecordStreamFile;}();proto.RecordStreamItem=function(){function RecordStreamItem(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.transaction=$root.proto.Transaction.decode(r,r.uint32());break;}case 2:{m.record=$root.proto.TransactionRecord.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};RecordStreamItem.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.RecordStreamItem\";};return RecordStreamItem;}();proto.SidecarMetadata=function(){function SidecarMetadata(p){this.types=[];if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.hash=$root.proto.HashObject.decode(r,r.uint32());break;}case 2:{m.id=r.int32();break;}case 3:{if(!(m.types&&m.types.length))m.types=[];if((t&7)===2){var c2=r.uint32()+r.pos;while(r.pos>>3){case 1:{if(!(m.sidecarRecords&&m.sidecarRecords.length))m.sidecarRecords=[];m.sidecarRecords.push($root.proto.TransactionSidecarRecord.decode(r,r.uint32()));break;}default:r.skipType(t&7);break;}}return m;};SidecarFile.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.SidecarFile\";};return SidecarFile;}();proto.TransactionSidecarRecord=function(){function TransactionSidecarRecord(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.consensusTimestamp=$root.proto.Timestamp.decode(r,r.uint32());break;}case 2:{m.migration=r.bool();break;}case 3:{m.stateChanges=$root.proto.ContractStateChanges.decode(r,r.uint32());break;}case 4:{m.actions=$root.proto.ContractActions.decode(r,r.uint32());break;}case 5:{m.bytecode=$root.proto.ContractBytecode.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};TransactionSidecarRecord.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.TransactionSidecarRecord\";};return TransactionSidecarRecord;}();proto.SignatureFile=function(){function SignatureFile(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.fileSignature=$root.proto.SignatureObject.decode(r,r.uint32());break;}case 2:{m.metadataSignature=$root.proto.SignatureObject.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};SignatureFile.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.SignatureFile\";};return SignatureFile;}();proto.SignatureObject=function(){function SignatureObject(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.type=r.int32();break;}case 2:{m.length=r.int32();break;}case 3:{m.checksum=r.int32();break;}case 4:{m.signature=r.bytes();break;}case 5:{m.hashObject=$root.proto.HashObject.decode(r,r.uint32());break;}default:r.skipType(t&7);break;}}return m;};SignatureObject.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/proto.SignatureObject\";};return SignatureObject;}();proto.SignatureType=function(){const valuesById={},values=Object.create(valuesById);values[valuesById[0]=\"SIGNATURE_TYPE_UNKNOWN\"]=0;values[valuesById[1]=\"SHA_384_WITH_RSA\"]=1;return values;}();return proto;})();exports.proto=proto;const google=$root.google=(()=>{const google={};google.protobuf=function(){const protobuf={};protobuf.DoubleValue=function(){function DoubleValue(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.value=r.double();break;}default:r.skipType(t&7);break;}}return m;};DoubleValue.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/google.protobuf.DoubleValue\";};return DoubleValue;}();protobuf.FloatValue=function(){function FloatValue(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.value=r.float();break;}default:r.skipType(t&7);break;}}return m;};FloatValue.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/google.protobuf.FloatValue\";};return FloatValue;}();protobuf.Int64Value=function(){function Int64Value(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.value=r.int64();break;}default:r.skipType(t&7);break;}}return m;};Int64Value.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/google.protobuf.Int64Value\";};return Int64Value;}();protobuf.UInt64Value=function(){function UInt64Value(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.value=r.uint64();break;}default:r.skipType(t&7);break;}}return m;};UInt64Value.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/google.protobuf.UInt64Value\";};return UInt64Value;}();protobuf.Int32Value=function(){function Int32Value(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.value=r.int32();break;}default:r.skipType(t&7);break;}}return m;};Int32Value.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/google.protobuf.Int32Value\";};return Int32Value;}();protobuf.UInt32Value=function(){function UInt32Value(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.value=r.uint32();break;}default:r.skipType(t&7);break;}}return m;};UInt32Value.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/google.protobuf.UInt32Value\";};return UInt32Value;}();protobuf.BoolValue=function(){function BoolValue(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.value=r.bool();break;}default:r.skipType(t&7);break;}}return m;};BoolValue.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/google.protobuf.BoolValue\";};return BoolValue;}();protobuf.StringValue=function(){function StringValue(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.value=r.string();break;}default:r.skipType(t&7);break;}}return m;};StringValue.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/google.protobuf.StringValue\";};return StringValue;}();protobuf.BytesValue=function(){function BytesValue(p){if(p)for(var ks=Object.keys(p),i=0;i>>3){case 1:{m.value=r.bytes();break;}default:r.skipType(t&7);break;}}return m;};BytesValue.getTypeUrl=function getTypeUrl(typeUrlPrefix){if(typeUrlPrefix===undefined){typeUrlPrefix=\"type.googleapis.com\";}return typeUrlPrefix+\"/google.protobuf.BytesValue\";};return BytesValue;}();return protobuf;}();return google;})();exports.google=google;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.proto = exports.google = exports.com = exports.Writer = exports.Reader = void 0;\nvar $protobuf = _interopRequireWildcard(require(\"protobufjs/minimal.js\"));\nvar _long = _interopRequireDefault(require(\"long\"));\nvar $proto = _interopRequireWildcard(require(\"./proto.js\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\n(() => {\n var $util = $protobuf.util;\n if ($util.Long == null) {\n console.log(`Patching Protobuf Long.js instance...`);\n $util.Long = _long.default;\n if ($protobuf.Reader._configure != null) {\n $protobuf.Reader._configure($protobuf.BufferReader);\n }\n }\n})();\nconst Reader = $protobuf.Reader;\nexports.Reader = Reader;\nconst Writer = $protobuf.Writer;\nexports.Writer = Writer;\nconst proto = $proto.proto;\nexports.proto = proto;\nconst com = $proto.com;\nexports.com = com;\nconst google = $proto.google;\nexports.google = google;","export default class Key {}\n","/**\n * Signals that a key could not be realized from the input.\n */\nexport default class BadKeyError extends Error {\n /**\n * @param {Error | string} messageOrCause\n */\n constructor(messageOrCause) {\n super(\n messageOrCause instanceof Error\n ? messageOrCause.message\n : messageOrCause,\n );\n\n this.name = \"BadKeyError\";\n\n if (messageOrCause instanceof Error) {\n /** @type {Error=} */\n this.cause = messageOrCause;\n this.stack = messageOrCause.stack;\n }\n }\n}\n","function getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nvar browser = {exports: {}};\n\n// shim for using process in browser\nvar process = browser.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ());\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] };\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\nvar browserExports = browser.exports;\nconst process$1 = /*@__PURE__*/getDefaultExportFromCjs(browserExports);\n\nexport { process$1 as default, process$1 as process };\n//# sourceMappingURL=index.js.map\n","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","'use strict'\n\n// limit of Crypto.getRandomValues()\n// https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues\nvar MAX_BYTES = 65536\n\n// Node supports requesting up to this number of bytes\n// https://github.com/nodejs/node/blob/master/lib/internal/crypto/random.js#L48\nvar MAX_UINT32 = 4294967295\n\nfunction oldBrowser () {\n throw new Error('Secure random number generation is not supported by this browser.\\nUse Chrome, Firefox or Internet Explorer 11')\n}\n\nvar Buffer = require('safe-buffer').Buffer\nvar crypto = global.crypto || global.msCrypto\n\nif (crypto && crypto.getRandomValues) {\n module.exports = randomBytes\n} else {\n module.exports = oldBrowser\n}\n\nfunction randomBytes (size, cb) {\n // phantomjs needs to throw\n if (size > MAX_UINT32) throw new RangeError('requested too many random bytes')\n\n var bytes = Buffer.allocUnsafe(size)\n\n if (size > 0) { // getRandomValues fails on IE if size == 0\n if (size > MAX_BYTES) { // this is the max bytes crypto.getRandomValues\n // can do at once see https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues\n for (var generated = 0; generated < size; generated += MAX_BYTES) {\n // buffer.slice automatically checks if the end is past the end of\n // the buffer so we don't have to here\n crypto.getRandomValues(bytes.slice(generated, generated + MAX_BYTES))\n }\n } else {\n crypto.getRandomValues(bytes)\n }\n }\n\n if (typeof cb === 'function') {\n return process.nextTick(function () {\n cb(null, bytes)\n })\n }\n\n return bytes\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","module.exports = require('events').EventEmitter;\n","'use strict';\n\n/** @type {import('./shams')} */\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\t/** @type {{ [k in symbol]?: unknown }} */\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (var _ in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\t// eslint-disable-next-line no-extra-parens\n\t\tvar descriptor = /** @type {PropertyDescriptor} */ (Object.getOwnPropertyDescriptor(obj, sym));\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Object;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Error;\n","'use strict';\n\n/** @type {import('./eval')} */\nmodule.exports = EvalError;\n","'use strict';\n\n/** @type {import('./range')} */\nmodule.exports = RangeError;\n","'use strict';\n\n/** @type {import('./ref')} */\nmodule.exports = ReferenceError;\n","'use strict';\n\n/** @type {import('./syntax')} */\nmodule.exports = SyntaxError;\n","'use strict';\n\n/** @type {import('./type')} */\nmodule.exports = TypeError;\n","'use strict';\n\n/** @type {import('./uri')} */\nmodule.exports = URIError;\n","'use strict';\n\n/** @type {import('./abs')} */\nmodule.exports = Math.abs;\n","'use strict';\n\n/** @type {import('./floor')} */\nmodule.exports = Math.floor;\n","'use strict';\n\n/** @type {import('./max')} */\nmodule.exports = Math.max;\n","'use strict';\n\n/** @type {import('./min')} */\nmodule.exports = Math.min;\n","'use strict';\n\n/** @type {import('./pow')} */\nmodule.exports = Math.pow;\n","'use strict';\n\n/** @type {import('./gOPD')} */\nmodule.exports = Object.getOwnPropertyDescriptor;\n","'use strict';\n\n/** @type {import('.')} */\nvar $gOPD = require('./gOPD');\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","'use strict';\n\n/** @type {import('.')} */\nvar $defineProperty = Object.defineProperty || false;\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = false;\n\t}\n}\n\nmodule.exports = $defineProperty;\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar toStr = Object.prototype.toString;\nvar max = Math.max;\nvar funcType = '[object Function]';\n\nvar concatty = function concatty(a, b) {\n var arr = [];\n\n for (var i = 0; i < a.length; i += 1) {\n arr[i] = a[i];\n }\n for (var j = 0; j < b.length; j += 1) {\n arr[j + a.length] = b[j];\n }\n\n return arr;\n};\n\nvar slicy = function slicy(arrLike, offset) {\n var arr = [];\n for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {\n arr[j] = arrLike[i];\n }\n return arr;\n};\n\nvar joiny = function (arr, joiner) {\n var str = '';\n for (var i = 0; i < arr.length; i += 1) {\n str += arr[i];\n if (i + 1 < arr.length) {\n str += joiner;\n }\n }\n return str;\n};\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.apply(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slicy(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n concatty(args, arguments)\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n }\n return target.apply(\n that,\n concatty(args, arguments)\n );\n\n };\n\n var boundLength = max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs[i] = '$' + i;\n }\n\n bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\n/** @type {import('./functionCall')} */\nmodule.exports = Function.prototype.call;\n","'use strict';\n\n/** @type {import('./functionApply')} */\nmodule.exports = Function.prototype.apply;\n","'use strict';\n\n/** @type {import('./reflectApply')} */\nmodule.exports = typeof Reflect !== 'undefined' && Reflect && Reflect.apply;\n","'use strict';\n\nvar bind = require('function-bind');\n\nvar $apply = require('./functionApply');\nvar $call = require('./functionCall');\nvar $reflectApply = require('./reflectApply');\n\n/** @type {import('./actualApply')} */\nmodule.exports = $reflectApply || bind.call($call, $apply);\n","'use strict';\n\nvar bind = require('function-bind');\nvar $TypeError = require('es-errors/type');\n\nvar $call = require('./functionCall');\nvar $actualApply = require('./actualApply');\n\n/** @type {import('.')} */\nmodule.exports = function callBindBasic(args) {\n\tif (args.length < 1 || typeof args[0] !== 'function') {\n\t\tthrow new $TypeError('a function is required');\n\t}\n\treturn $actualApply(bind, $call, args);\n};\n","'use strict';\n\nvar callBind = require('call-bind-apply-helpers');\nvar gOPD = require('gopd');\n\nvar hasProtoAccessor;\ntry {\n\t// eslint-disable-next-line no-extra-parens, no-proto\n\thasProtoAccessor = /** @type {{ __proto__?: typeof Array.prototype }} */ ([]).__proto__ === Array.prototype;\n} catch (e) {\n\tif (!e || typeof e !== 'object' || !('code' in e) || e.code !== 'ERR_PROTO_ACCESS') {\n\t\tthrow e;\n\t}\n}\n\n// eslint-disable-next-line no-extra-parens\nvar desc = !!hasProtoAccessor && gOPD && gOPD(Object.prototype, /** @type {keyof typeof Object.prototype} */ ('__proto__'));\n\nvar $Object = Object;\nvar $getPrototypeOf = $Object.getPrototypeOf;\n\n/** @type {import('./get')} */\nmodule.exports = desc && typeof desc.get === 'function'\n\t? callBind([desc.get])\n\t: typeof $getPrototypeOf === 'function'\n\t\t? /** @type {import('./get')} */ function getDunder(value) {\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\treturn $getPrototypeOf(value == null ? value : $Object(value));\n\t\t}\n\t\t: false;\n","'use strict';\n\nvar call = Function.prototype.call;\nvar $hasOwn = Object.prototype.hasOwnProperty;\nvar bind = require('function-bind');\n\n/** @type {import('.')} */\nmodule.exports = bind.call(call, $hasOwn);\n","'use strict';\n\nvar undefined;\n\nvar $Object = require('es-object-atoms');\n\nvar $Error = require('es-errors');\nvar $EvalError = require('es-errors/eval');\nvar $RangeError = require('es-errors/range');\nvar $ReferenceError = require('es-errors/ref');\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\nvar $URIError = require('es-errors/uri');\n\nvar abs = require('math-intrinsics/abs');\nvar floor = require('math-intrinsics/floor');\nvar max = require('math-intrinsics/max');\nvar min = require('math-intrinsics/min');\nvar pow = require('math-intrinsics/pow');\n\nvar $Function = Function;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = require('gopd');\nvar $defineProperty = require('es-define-property');\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\nvar getDunderProto = require('dunder-proto/get');\n\nvar getProto = (typeof Reflect === 'function' && Reflect.getPrototypeOf)\n\t|| $Object.getPrototypeOf\n\t|| getDunderProto;\n\nvar $apply = require('call-bind-apply-helpers/functionApply');\nvar $call = require('call-bind-apply-helpers/functionCall');\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t__proto__: null,\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': $Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': $EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': $Object,\n\t'%Object.getOwnPropertyDescriptor%': $gOPD,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': $RangeError,\n\t'%ReferenceError%': $ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': $URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet,\n\n\t'%Function.prototype.call%': $call,\n\t'%Function.prototype.apply%': $apply,\n\t'%Object.defineProperty%': $defineProperty,\n\t'%Math.abs%': abs,\n\t'%Math.floor%': floor,\n\t'%Math.max%': max,\n\t'%Math.min%': min,\n\t'%Math.pow%': pow\n};\n\nif (getProto) {\n\ttry {\n\t\tnull.error; // eslint-disable-line no-unused-expressions\n\t} catch (e) {\n\t\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\t\tvar errorProto = getProto(getProto(e));\n\t\tINTRINSICS['%Error.prototype%'] = errorProto;\n\t}\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen && getProto) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t__proto__: null,\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('hasown');\nvar $concat = bind.call($call, Array.prototype.concat);\nvar $spliceApply = bind.call($apply, Array.prototype.splice);\nvar $replace = bind.call($call, String.prototype.replace);\nvar $strSlice = bind.call($call, String.prototype.slice);\nvar $exec = bind.call($call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBindBasic = require('call-bind-apply-helpers');\n\n/** @type {(thisArg: string, searchString: string, position?: number) => number} */\nvar $indexOf = callBindBasic([GetIntrinsic('%String.prototype.indexOf%')]);\n\n/** @type {import('.')} */\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\t// eslint-disable-next-line no-extra-parens\n\tvar intrinsic = /** @type {Parameters[0][0]} */ (GetIntrinsic(name, !!allowMissing));\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBindBasic([intrinsic]);\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar callBound = require('call-bound');\n\nvar $toString = callBound('Object.prototype.toString');\n\n/** @type {import('.')} */\nvar isStandardArguments = function isArguments(value) {\n\tif (\n\t\thasToStringTag\n\t\t&& value\n\t\t&& typeof value === 'object'\n\t\t&& Symbol.toStringTag in value\n\t) {\n\t\treturn false;\n\t}\n\treturn $toString(value) === '[object Arguments]';\n};\n\n/** @type {import('.')} */\nvar isLegacyArguments = function isArguments(value) {\n\tif (isStandardArguments(value)) {\n\t\treturn true;\n\t}\n\treturn value !== null\n\t\t&& typeof value === 'object'\n\t\t&& 'length' in value\n\t\t&& typeof value.length === 'number'\n\t\t&& value.length >= 0\n\t\t&& $toString(value) !== '[object Array]'\n\t\t&& 'callee' in value\n\t\t&& $toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = (function () {\n\treturn isStandardArguments(arguments);\n}());\n\n// @ts-expect-error TODO make this not error\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\n/** @type {import('.')} */\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n","'use strict';\n\nvar toStr = Object.prototype.toString;\nvar fnToStr = Function.prototype.toString;\nvar isFnRegex = /^\\s*(?:function)?\\*/;\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar getProto = Object.getPrototypeOf;\nvar getGeneratorFunc = function () { // eslint-disable-line consistent-return\n\tif (!hasToStringTag) {\n\t\treturn false;\n\t}\n\ttry {\n\t\treturn Function('return function*() {}')();\n\t} catch (e) {\n\t}\n};\nvar GeneratorFunction;\n\nmodule.exports = function isGeneratorFunction(fn) {\n\tif (typeof fn !== 'function') {\n\t\treturn false;\n\t}\n\tif (isFnRegex.test(fnToStr.call(fn))) {\n\t\treturn true;\n\t}\n\tif (!hasToStringTag) {\n\t\tvar str = toStr.call(fn);\n\t\treturn str === '[object GeneratorFunction]';\n\t}\n\tif (!getProto) {\n\t\treturn false;\n\t}\n\tif (typeof GeneratorFunction === 'undefined') {\n\t\tvar generatorFunc = getGeneratorFunc();\n\t\tGeneratorFunction = generatorFunc ? getProto(generatorFunc) : false;\n\t}\n\treturn getProto(fn) === GeneratorFunction;\n};\n","'use strict';\n\nvar fnToStr = Function.prototype.toString;\nvar reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply;\nvar badArrayLike;\nvar isCallableMarker;\nif (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') {\n\ttry {\n\t\tbadArrayLike = Object.defineProperty({}, 'length', {\n\t\t\tget: function () {\n\t\t\t\tthrow isCallableMarker;\n\t\t\t}\n\t\t});\n\t\tisCallableMarker = {};\n\t\t// eslint-disable-next-line no-throw-literal\n\t\treflectApply(function () { throw 42; }, null, badArrayLike);\n\t} catch (_) {\n\t\tif (_ !== isCallableMarker) {\n\t\t\treflectApply = null;\n\t\t}\n\t}\n} else {\n\treflectApply = null;\n}\n\nvar constructorRegex = /^\\s*class\\b/;\nvar isES6ClassFn = function isES6ClassFunction(value) {\n\ttry {\n\t\tvar fnStr = fnToStr.call(value);\n\t\treturn constructorRegex.test(fnStr);\n\t} catch (e) {\n\t\treturn false; // not a function\n\t}\n};\n\nvar tryFunctionObject = function tryFunctionToStr(value) {\n\ttry {\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tfnToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar objectClass = '[object Object]';\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar ddaClass = '[object HTMLAllCollection]'; // IE 11\nvar ddaClass2 = '[object HTML document.all class]';\nvar ddaClass3 = '[object HTMLCollection]'; // IE 9-10\nvar hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; // better: use `has-tostringtag`\n\nvar isIE68 = !(0 in [,]); // eslint-disable-line no-sparse-arrays, comma-spacing\n\nvar isDDA = function isDocumentDotAll() { return false; };\nif (typeof document === 'object') {\n\t// Firefox 3 canonicalizes DDA to undefined when it's not accessed directly\n\tvar all = document.all;\n\tif (toStr.call(all) === toStr.call(document.all)) {\n\t\tisDDA = function isDocumentDotAll(value) {\n\t\t\t/* globals document: false */\n\t\t\t// in IE 6-8, typeof document.all is \"object\" and it's truthy\n\t\t\tif ((isIE68 || !value) && (typeof value === 'undefined' || typeof value === 'object')) {\n\t\t\t\ttry {\n\t\t\t\t\tvar str = toStr.call(value);\n\t\t\t\t\treturn (\n\t\t\t\t\t\tstr === ddaClass\n\t\t\t\t\t\t|| str === ddaClass2\n\t\t\t\t\t\t|| str === ddaClass3 // opera 12.16\n\t\t\t\t\t\t|| str === objectClass // IE 6-8\n\t\t\t\t\t) && value('') == null; // eslint-disable-line eqeqeq\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\t}\n}\n\nmodule.exports = reflectApply\n\t? function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\ttry {\n\t\t\treflectApply(value, null, badArrayLike);\n\t\t} catch (e) {\n\t\t\tif (e !== isCallableMarker) { return false; }\n\t\t}\n\t\treturn !isES6ClassFn(value) && tryFunctionObject(value);\n\t}\n\t: function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\tif (hasToStringTag) { return tryFunctionObject(value); }\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tvar strClass = toStr.call(value);\n\t\tif (strClass !== fnClass && strClass !== genClass && !(/^\\[object HTML/).test(strClass)) { return false; }\n\t\treturn tryFunctionObject(value);\n\t};\n","'use strict';\n\nvar isCallable = require('is-callable');\n\nvar toStr = Object.prototype.toString;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar forEachArray = function forEachArray(array, iterator, receiver) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (hasOwnProperty.call(array, i)) {\n if (receiver == null) {\n iterator(array[i], i, array);\n } else {\n iterator.call(receiver, array[i], i, array);\n }\n }\n }\n};\n\nvar forEachString = function forEachString(string, iterator, receiver) {\n for (var i = 0, len = string.length; i < len; i++) {\n // no such thing as a sparse string.\n if (receiver == null) {\n iterator(string.charAt(i), i, string);\n } else {\n iterator.call(receiver, string.charAt(i), i, string);\n }\n }\n};\n\nvar forEachObject = function forEachObject(object, iterator, receiver) {\n for (var k in object) {\n if (hasOwnProperty.call(object, k)) {\n if (receiver == null) {\n iterator(object[k], k, object);\n } else {\n iterator.call(receiver, object[k], k, object);\n }\n }\n }\n};\n\nvar forEach = function forEach(list, iterator, thisArg) {\n if (!isCallable(iterator)) {\n throw new TypeError('iterator must be a function');\n }\n\n var receiver;\n if (arguments.length >= 3) {\n receiver = thisArg;\n }\n\n if (toStr.call(list) === '[object Array]') {\n forEachArray(list, iterator, receiver);\n } else if (typeof list === 'string') {\n forEachString(list, iterator, receiver);\n } else {\n forEachObject(list, iterator, receiver);\n }\n};\n\nmodule.exports = forEach;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = [\n\t'Float32Array',\n\t'Float64Array',\n\t'Int8Array',\n\t'Int16Array',\n\t'Int32Array',\n\t'Uint8Array',\n\t'Uint8ClampedArray',\n\t'Uint16Array',\n\t'Uint32Array',\n\t'BigInt64Array',\n\t'BigUint64Array'\n];\n","'use strict';\n\nvar possibleNames = require('possible-typed-array-names');\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\n\n/** @type {import('.')} */\nmodule.exports = function availableTypedArrays() {\n\tvar /** @type {ReturnType} */ out = [];\n\tfor (var i = 0; i < possibleNames.length; i++) {\n\t\tif (typeof g[possibleNames[i]] === 'function') {\n\t\t\t// @ts-expect-error\n\t\t\tout[out.length] = possibleNames[i];\n\t\t}\n\t}\n\treturn out;\n};\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\n\nvar gopd = require('gopd');\n\n/** @type {import('.')} */\nmodule.exports = function defineDataProperty(\n\tobj,\n\tproperty,\n\tvalue\n) {\n\tif (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n\t\tthrow new $TypeError('`obj` must be an object or a function`');\n\t}\n\tif (typeof property !== 'string' && typeof property !== 'symbol') {\n\t\tthrow new $TypeError('`property` must be a string or a symbol`');\n\t}\n\tif (arguments.length > 3 && typeof arguments[3] !== 'boolean' && arguments[3] !== null) {\n\t\tthrow new $TypeError('`nonEnumerable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 4 && typeof arguments[4] !== 'boolean' && arguments[4] !== null) {\n\t\tthrow new $TypeError('`nonWritable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 5 && typeof arguments[5] !== 'boolean' && arguments[5] !== null) {\n\t\tthrow new $TypeError('`nonConfigurable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 6 && typeof arguments[6] !== 'boolean') {\n\t\tthrow new $TypeError('`loose`, if provided, must be a boolean');\n\t}\n\n\tvar nonEnumerable = arguments.length > 3 ? arguments[3] : null;\n\tvar nonWritable = arguments.length > 4 ? arguments[4] : null;\n\tvar nonConfigurable = arguments.length > 5 ? arguments[5] : null;\n\tvar loose = arguments.length > 6 ? arguments[6] : false;\n\n\t/* @type {false | TypedPropertyDescriptor} */\n\tvar desc = !!gopd && gopd(obj, property);\n\n\tif ($defineProperty) {\n\t\t$defineProperty(obj, property, {\n\t\t\tconfigurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable,\n\t\t\tenumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable,\n\t\t\tvalue: value,\n\t\t\twritable: nonWritable === null && desc ? desc.writable : !nonWritable\n\t\t});\n\t} else if (loose || (!nonEnumerable && !nonWritable && !nonConfigurable)) {\n\t\t// must fall back to [[Set]], and was not explicitly asked to make non-enumerable, non-writable, or non-configurable\n\t\tobj[property] = value; // eslint-disable-line no-param-reassign\n\t} else {\n\t\tthrow new $SyntaxError('This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.');\n\t}\n};\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\treturn !!$defineProperty;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!$defineProperty) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar define = require('define-data-property');\nvar hasDescriptors = require('has-property-descriptors')();\nvar gOPD = require('gopd');\n\nvar $TypeError = require('es-errors/type');\nvar $floor = GetIntrinsic('%Math.floor%');\n\n/** @type {import('.')} */\nmodule.exports = function setFunctionLength(fn, length) {\n\tif (typeof fn !== 'function') {\n\t\tthrow new $TypeError('`fn` is not a function');\n\t}\n\tif (typeof length !== 'number' || length < 0 || length > 0xFFFFFFFF || $floor(length) !== length) {\n\t\tthrow new $TypeError('`length` must be a positive 32-bit integer');\n\t}\n\n\tvar loose = arguments.length > 2 && !!arguments[2];\n\n\tvar functionLengthIsConfigurable = true;\n\tvar functionLengthIsWritable = true;\n\tif ('length' in fn && gOPD) {\n\t\tvar desc = gOPD(fn, 'length');\n\t\tif (desc && !desc.configurable) {\n\t\t\tfunctionLengthIsConfigurable = false;\n\t\t}\n\t\tif (desc && !desc.writable) {\n\t\t\tfunctionLengthIsWritable = false;\n\t\t}\n\t}\n\n\tif (functionLengthIsConfigurable || functionLengthIsWritable || !loose) {\n\t\tif (hasDescriptors) {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'length', length, true, true);\n\t\t} else {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'length', length);\n\t\t}\n\t}\n\treturn fn;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar $apply = require('./functionApply');\nvar actualApply = require('./actualApply');\n\n/** @type {import('./applyBind')} */\nmodule.exports = function applyBind() {\n\treturn actualApply(bind, $apply, arguments);\n};\n","'use strict';\n\nvar setFunctionLength = require('set-function-length');\n\nvar $defineProperty = require('es-define-property');\n\nvar callBindBasic = require('call-bind-apply-helpers');\nvar applyBind = require('call-bind-apply-helpers/applyBind');\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = callBindBasic(arguments);\n\tvar adjustedLength = originalFunction.length - (arguments.length - 1);\n\treturn setFunctionLength(\n\t\tfunc,\n\t\t1 + (adjustedLength > 0 ? adjustedLength : 0),\n\t\ttrue\n\t);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","'use strict';\n\nvar forEach = require('for-each');\nvar availableTypedArrays = require('available-typed-arrays');\nvar callBind = require('call-bind');\nvar callBound = require('call-bound');\nvar gOPD = require('gopd');\n\n/** @type {(O: object) => string} */\nvar $toString = callBound('Object.prototype.toString');\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\nvar typedArrays = availableTypedArrays();\n\nvar $slice = callBound('String.prototype.slice');\nvar getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof');\n\n/** @type {(array: readonly T[], value: unknown) => number} */\nvar $indexOf = callBound('Array.prototype.indexOf', true) || function indexOf(array, value) {\n\tfor (var i = 0; i < array.length; i += 1) {\n\t\tif (array[i] === value) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n};\n\n/** @typedef {(receiver: import('.').TypedArray) => string | typeof Uint8Array.prototype.slice.call | typeof Uint8Array.prototype.set.call} Getter */\n/** @type {{ [k in `\\$${import('.').TypedArrayName}`]?: Getter } & { __proto__: null }} */\nvar cache = { __proto__: null };\nif (hasToStringTag && gOPD && getPrototypeOf) {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tif (Symbol.toStringTag in arr) {\n\t\t\tvar proto = getPrototypeOf(arr);\n\t\t\t// @ts-expect-error TS won't narrow inside a closure\n\t\t\tvar descriptor = gOPD(proto, Symbol.toStringTag);\n\t\t\tif (!descriptor) {\n\t\t\t\tvar superProto = getPrototypeOf(proto);\n\t\t\t\t// @ts-expect-error TS won't narrow inside a closure\n\t\t\t\tdescriptor = gOPD(superProto, Symbol.toStringTag);\n\t\t\t}\n\t\t\t// @ts-expect-error TODO: fix\n\t\t\tcache['$' + typedArray] = callBind(descriptor.get);\n\t\t}\n\t});\n} else {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tvar fn = arr.slice || arr.set;\n\t\tif (fn) {\n\t\t\t// @ts-expect-error TODO: fix\n\t\t\tcache['$' + typedArray] = callBind(fn);\n\t\t}\n\t});\n}\n\n/** @type {(value: object) => false | import('.').TypedArrayName} */\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n\t/** @type {ReturnType} */ var found = false;\n\tforEach(\n\t\t// eslint-disable-next-line no-extra-parens\n\t\t/** @type {Record<`\\$${TypedArrayName}`, Getter>} */ /** @type {any} */ (cache),\n\t\t/** @type {(getter: Getter, name: `\\$${import('.').TypedArrayName}`) => void} */\n\t\tfunction (getter, typedArray) {\n\t\t\tif (!found) {\n\t\t\t\ttry {\n\t\t\t\t// @ts-expect-error TODO: fix\n\t\t\t\t\tif ('$' + getter(value) === typedArray) {\n\t\t\t\t\t\tfound = $slice(typedArray, 1);\n\t\t\t\t\t}\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t}\n\t);\n\treturn found;\n};\n\n/** @type {(value: object) => false | import('.').TypedArrayName} */\nvar trySlices = function tryAllSlices(value) {\n\t/** @type {ReturnType} */ var found = false;\n\tforEach(\n\t\t// eslint-disable-next-line no-extra-parens\n\t\t/** @type {Record<`\\$${TypedArrayName}`, Getter>} */ /** @type {any} */ (cache),\n\t\t/** @type {(getter: typeof cache, name: `\\$${import('.').TypedArrayName}`) => void} */ function (getter, name) {\n\t\t\tif (!found) {\n\t\t\t\ttry {\n\t\t\t\t\t// @ts-expect-error TODO: fix\n\t\t\t\t\tgetter(value);\n\t\t\t\t\tfound = $slice(name, 1);\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t}\n\t);\n\treturn found;\n};\n\n/** @type {import('.')} */\nmodule.exports = function whichTypedArray(value) {\n\tif (!value || typeof value !== 'object') { return false; }\n\tif (!hasToStringTag) {\n\t\t/** @type {string} */\n\t\tvar tag = $slice($toString(value), 8, -1);\n\t\tif ($indexOf(typedArrays, tag) > -1) {\n\t\t\treturn tag;\n\t\t}\n\t\tif (tag !== 'Object') {\n\t\t\treturn false;\n\t\t}\n\t\t// node < 0.6 hits here on real Typed Arrays\n\t\treturn trySlices(value);\n\t}\n\tif (!gOPD) { return null; } // unknown engine\n\treturn tryTypedArrays(value);\n};\n","'use strict';\n\nvar whichTypedArray = require('which-typed-array');\n\n/** @type {import('.')} */\nmodule.exports = function isTypedArray(value) {\n\treturn !!whichTypedArray(value);\n};\n","// Currently in sync with Node.js lib/internal/util/types.js\n// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9\n\n'use strict';\n\nvar isArgumentsObject = require('is-arguments');\nvar isGeneratorFunction = require('is-generator-function');\nvar whichTypedArray = require('which-typed-array');\nvar isTypedArray = require('is-typed-array');\n\nfunction uncurryThis(f) {\n return f.call.bind(f);\n}\n\nvar BigIntSupported = typeof BigInt !== 'undefined';\nvar SymbolSupported = typeof Symbol !== 'undefined';\n\nvar ObjectToString = uncurryThis(Object.prototype.toString);\n\nvar numberValue = uncurryThis(Number.prototype.valueOf);\nvar stringValue = uncurryThis(String.prototype.valueOf);\nvar booleanValue = uncurryThis(Boolean.prototype.valueOf);\n\nif (BigIntSupported) {\n var bigIntValue = uncurryThis(BigInt.prototype.valueOf);\n}\n\nif (SymbolSupported) {\n var symbolValue = uncurryThis(Symbol.prototype.valueOf);\n}\n\nfunction checkBoxedPrimitive(value, prototypeValueOf) {\n if (typeof value !== 'object') {\n return false;\n }\n try {\n prototypeValueOf(value);\n return true;\n } catch(e) {\n return false;\n }\n}\n\nexports.isArgumentsObject = isArgumentsObject;\nexports.isGeneratorFunction = isGeneratorFunction;\nexports.isTypedArray = isTypedArray;\n\n// Taken from here and modified for better browser support\n// https://github.com/sindresorhus/p-is-promise/blob/cda35a513bda03f977ad5cde3a079d237e82d7ef/index.js\nfunction isPromise(input) {\n\treturn (\n\t\t(\n\t\t\ttypeof Promise !== 'undefined' &&\n\t\t\tinput instanceof Promise\n\t\t) ||\n\t\t(\n\t\t\tinput !== null &&\n\t\t\ttypeof input === 'object' &&\n\t\t\ttypeof input.then === 'function' &&\n\t\t\ttypeof input.catch === 'function'\n\t\t)\n\t);\n}\nexports.isPromise = isPromise;\n\nfunction isArrayBufferView(value) {\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n return ArrayBuffer.isView(value);\n }\n\n return (\n isTypedArray(value) ||\n isDataView(value)\n );\n}\nexports.isArrayBufferView = isArrayBufferView;\n\n\nfunction isUint8Array(value) {\n return whichTypedArray(value) === 'Uint8Array';\n}\nexports.isUint8Array = isUint8Array;\n\nfunction isUint8ClampedArray(value) {\n return whichTypedArray(value) === 'Uint8ClampedArray';\n}\nexports.isUint8ClampedArray = isUint8ClampedArray;\n\nfunction isUint16Array(value) {\n return whichTypedArray(value) === 'Uint16Array';\n}\nexports.isUint16Array = isUint16Array;\n\nfunction isUint32Array(value) {\n return whichTypedArray(value) === 'Uint32Array';\n}\nexports.isUint32Array = isUint32Array;\n\nfunction isInt8Array(value) {\n return whichTypedArray(value) === 'Int8Array';\n}\nexports.isInt8Array = isInt8Array;\n\nfunction isInt16Array(value) {\n return whichTypedArray(value) === 'Int16Array';\n}\nexports.isInt16Array = isInt16Array;\n\nfunction isInt32Array(value) {\n return whichTypedArray(value) === 'Int32Array';\n}\nexports.isInt32Array = isInt32Array;\n\nfunction isFloat32Array(value) {\n return whichTypedArray(value) === 'Float32Array';\n}\nexports.isFloat32Array = isFloat32Array;\n\nfunction isFloat64Array(value) {\n return whichTypedArray(value) === 'Float64Array';\n}\nexports.isFloat64Array = isFloat64Array;\n\nfunction isBigInt64Array(value) {\n return whichTypedArray(value) === 'BigInt64Array';\n}\nexports.isBigInt64Array = isBigInt64Array;\n\nfunction isBigUint64Array(value) {\n return whichTypedArray(value) === 'BigUint64Array';\n}\nexports.isBigUint64Array = isBigUint64Array;\n\nfunction isMapToString(value) {\n return ObjectToString(value) === '[object Map]';\n}\nisMapToString.working = (\n typeof Map !== 'undefined' &&\n isMapToString(new Map())\n);\n\nfunction isMap(value) {\n if (typeof Map === 'undefined') {\n return false;\n }\n\n return isMapToString.working\n ? isMapToString(value)\n : value instanceof Map;\n}\nexports.isMap = isMap;\n\nfunction isSetToString(value) {\n return ObjectToString(value) === '[object Set]';\n}\nisSetToString.working = (\n typeof Set !== 'undefined' &&\n isSetToString(new Set())\n);\nfunction isSet(value) {\n if (typeof Set === 'undefined') {\n return false;\n }\n\n return isSetToString.working\n ? isSetToString(value)\n : value instanceof Set;\n}\nexports.isSet = isSet;\n\nfunction isWeakMapToString(value) {\n return ObjectToString(value) === '[object WeakMap]';\n}\nisWeakMapToString.working = (\n typeof WeakMap !== 'undefined' &&\n isWeakMapToString(new WeakMap())\n);\nfunction isWeakMap(value) {\n if (typeof WeakMap === 'undefined') {\n return false;\n }\n\n return isWeakMapToString.working\n ? isWeakMapToString(value)\n : value instanceof WeakMap;\n}\nexports.isWeakMap = isWeakMap;\n\nfunction isWeakSetToString(value) {\n return ObjectToString(value) === '[object WeakSet]';\n}\nisWeakSetToString.working = (\n typeof WeakSet !== 'undefined' &&\n isWeakSetToString(new WeakSet())\n);\nfunction isWeakSet(value) {\n return isWeakSetToString(value);\n}\nexports.isWeakSet = isWeakSet;\n\nfunction isArrayBufferToString(value) {\n return ObjectToString(value) === '[object ArrayBuffer]';\n}\nisArrayBufferToString.working = (\n typeof ArrayBuffer !== 'undefined' &&\n isArrayBufferToString(new ArrayBuffer())\n);\nfunction isArrayBuffer(value) {\n if (typeof ArrayBuffer === 'undefined') {\n return false;\n }\n\n return isArrayBufferToString.working\n ? isArrayBufferToString(value)\n : value instanceof ArrayBuffer;\n}\nexports.isArrayBuffer = isArrayBuffer;\n\nfunction isDataViewToString(value) {\n return ObjectToString(value) === '[object DataView]';\n}\nisDataViewToString.working = (\n typeof ArrayBuffer !== 'undefined' &&\n typeof DataView !== 'undefined' &&\n isDataViewToString(new DataView(new ArrayBuffer(1), 0, 1))\n);\nfunction isDataView(value) {\n if (typeof DataView === 'undefined') {\n return false;\n }\n\n return isDataViewToString.working\n ? isDataViewToString(value)\n : value instanceof DataView;\n}\nexports.isDataView = isDataView;\n\n// Store a copy of SharedArrayBuffer in case it's deleted elsewhere\nvar SharedArrayBufferCopy = typeof SharedArrayBuffer !== 'undefined' ? SharedArrayBuffer : undefined;\nfunction isSharedArrayBufferToString(value) {\n return ObjectToString(value) === '[object SharedArrayBuffer]';\n}\nfunction isSharedArrayBuffer(value) {\n if (typeof SharedArrayBufferCopy === 'undefined') {\n return false;\n }\n\n if (typeof isSharedArrayBufferToString.working === 'undefined') {\n isSharedArrayBufferToString.working = isSharedArrayBufferToString(new SharedArrayBufferCopy());\n }\n\n return isSharedArrayBufferToString.working\n ? isSharedArrayBufferToString(value)\n : value instanceof SharedArrayBufferCopy;\n}\nexports.isSharedArrayBuffer = isSharedArrayBuffer;\n\nfunction isAsyncFunction(value) {\n return ObjectToString(value) === '[object AsyncFunction]';\n}\nexports.isAsyncFunction = isAsyncFunction;\n\nfunction isMapIterator(value) {\n return ObjectToString(value) === '[object Map Iterator]';\n}\nexports.isMapIterator = isMapIterator;\n\nfunction isSetIterator(value) {\n return ObjectToString(value) === '[object Set Iterator]';\n}\nexports.isSetIterator = isSetIterator;\n\nfunction isGeneratorObject(value) {\n return ObjectToString(value) === '[object Generator]';\n}\nexports.isGeneratorObject = isGeneratorObject;\n\nfunction isWebAssemblyCompiledModule(value) {\n return ObjectToString(value) === '[object WebAssembly.Module]';\n}\nexports.isWebAssemblyCompiledModule = isWebAssemblyCompiledModule;\n\nfunction isNumberObject(value) {\n return checkBoxedPrimitive(value, numberValue);\n}\nexports.isNumberObject = isNumberObject;\n\nfunction isStringObject(value) {\n return checkBoxedPrimitive(value, stringValue);\n}\nexports.isStringObject = isStringObject;\n\nfunction isBooleanObject(value) {\n return checkBoxedPrimitive(value, booleanValue);\n}\nexports.isBooleanObject = isBooleanObject;\n\nfunction isBigIntObject(value) {\n return BigIntSupported && checkBoxedPrimitive(value, bigIntValue);\n}\nexports.isBigIntObject = isBigIntObject;\n\nfunction isSymbolObject(value) {\n return SymbolSupported && checkBoxedPrimitive(value, symbolValue);\n}\nexports.isSymbolObject = isSymbolObject;\n\nfunction isBoxedPrimitive(value) {\n return (\n isNumberObject(value) ||\n isStringObject(value) ||\n isBooleanObject(value) ||\n isBigIntObject(value) ||\n isSymbolObject(value)\n );\n}\nexports.isBoxedPrimitive = isBoxedPrimitive;\n\nfunction isAnyArrayBuffer(value) {\n return typeof Uint8Array !== 'undefined' && (\n isArrayBuffer(value) ||\n isSharedArrayBuffer(value)\n );\n}\nexports.isAnyArrayBuffer = isAnyArrayBuffer;\n\n['isProxy', 'isExternal', 'isModuleNamespaceObject'].forEach(function(method) {\n Object.defineProperty(exports, method, {\n enumerable: false,\n value: function() {\n throw new Error(method + ' is not supported in userland');\n }\n });\n});\n","module.exports = function isBuffer(arg) {\n return arg && typeof arg === 'object'\n && typeof arg.copy === 'function'\n && typeof arg.fill === 'function'\n && typeof arg.readUInt8 === 'function';\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n }\n\n // Allow for deprecating things in the process of starting up.\n if (typeof process === 'undefined') {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnvRegex = /^$/;\n\nif (process.env.NODE_DEBUG) {\n var debugEnv = process.env.NODE_DEBUG;\n debugEnv = debugEnv.replace(/[|\\\\{}()[\\]^$+?.]/g, '\\\\$&')\n .replace(/\\*/g, '.*')\n .replace(/,/g, '$|^')\n .toUpperCase();\n debugEnvRegex = new RegExp('^' + debugEnv + '$', 'i');\n}\nexports.debuglog = function(set) {\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (debugEnvRegex.test(set)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').slice(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.slice(1, -1);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nexports.types = require('./support/types');\n\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\nexports.types.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\nexports.types.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\nexports.types.isNativeError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function')\n throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n\n // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n var self = this;\n var cb = function() {\n return maybeCb.apply(self, arguments);\n };\n // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n original.apply(this, args)\n .then(function(ret) { process.nextTick(cb.bind(null, null, ret)) },\n function(rej) { process.nextTick(callbackifyOnRejected.bind(null, rej, cb)) });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified,\n getOwnPropertyDescriptors(original));\n return callbackified;\n}\nexports.callbackify = callbackify;\n","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\nvar _require2 = require('util'),\n inspect = _require2.inspect;\nvar custom = inspect && inspect.custom || 'inspect';\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\nmodule.exports = /*#__PURE__*/function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) ret += s + p.data;\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n }\n\n // Consumes a specified amount of bytes or characters from the buffered data.\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n }\n\n // Consumes a specified amount of characters from the buffered data.\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Consumes a specified amount of bytes from the buffered data.\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Make sure the linked list only shows the minimal necessary information.\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread(_objectSpread({}, options), {}, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n return BufferList;\n}();","'use strict';\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n return this;\n}\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n return Math.floor(hwm);\n }\n\n // Default value\n return state.objectMode ? 16 : 16 * 1024;\n}\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nrequire('inherits')(Writable, Stream);\nfunction nop() {}\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'finish' (and potentially 'end')\n this.autoDestroy = !!options.autoDestroy;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex);\n\n // legacy.\n this.writable = true;\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END();\n // TODO: defer error events consistently everywhere, not just the cb\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n return true;\n}\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n return ret;\n}\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n if (entry === null) state.lastBufferedRequest = null;\n }\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\nWritable.prototype._writev = null;\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n errorOrDestroy(stream, err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n return need;\n}\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n\n // reuse the free corkReq.\n state.corkedRequestsFree.next = corkReq;\n}\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n};\n/**/\n\nmodule.exports = Duplex;\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\nrequire('inherits')(Duplex, Readable);\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n process.nextTick(onEndNT, this);\n}\nfunction onEndNT(self) {\n self.end();\n}\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n callback.apply(this, args);\n };\n}\nfunction noop() {}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n var writableEnded = stream._writableState && stream._writableState.finished;\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n var onclose = function onclose() {\n var err;\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\nmodule.exports = eos;","'use strict';\n\nvar _Object$setPrototypeO;\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar finished = require('./end-of-stream');\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n if (resolve !== null) {\n var data = iter[kStream].read();\n // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n next: function next() {\n var _this = this;\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n if (error !== null) {\n return Promise.reject(error);\n }\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n }\n\n // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n var lastPromise = this[kLastPromise];\n var promise;\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n promise = new Promise(this[kHandlePromise]);\n }\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject];\n // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n iterator[kError] = err;\n return;\n }\n var resolve = iterator[kLastResolve];\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\nmodule.exports = createReadableStreamAsyncIterator;","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nmodule.exports = Readable;\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\nvar debugUtil = require('util');\nvar debug;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/buffer_list');\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n\n// Lazy loaded to improve the startup performance.\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\nrequire('inherits')(Readable, Stream);\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'end' (and potentially 'finish')\n this.autoDestroy = !!options.autoDestroy;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options);\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex);\n\n // legacy\n this.readable = true;\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n Stream.call(this);\n}\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n }\n\n // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n return er;\n}\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder;\n // If setEncoding(null), decoder.encoding equals utf8\n this._readableState.encoding = this._readableState.decoder.encoding;\n\n // Iterate over current buffer to convert already stored Buffers:\n var p = this._readableState.buffer.head;\n var content = '';\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n this._readableState.buffer.clear();\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n};\n\n// Don't raise the hwm > 1GB\nvar MAX_HWM = 0x40000000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n }\n\n // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n return dest;\n};\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0;\n\n // Try start flowing on next tick if stream isn't explicitly paused\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true;\n\n // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n state.paused = false;\n return this;\n};\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n if (!state.reading) {\n stream.read(0);\n }\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n this._readableState.paused = true;\n return this;\n};\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null);\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n return this;\n};\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n return createReadableStreamAsyncIterator(this);\n };\n}\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n});\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length);\n\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n return from(Readable, iterable, opts);\n };\n}\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\nvar Duplex = require('./_stream_duplex');\nrequire('inherits')(Transform, Duplex);\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null)\n // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\nfunction prefinish() {\n var _this = this;\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null)\n // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\nvar Transform = require('./_stream_transform');\nrequire('inherits')(PassThrough, Transform);\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar eos;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true;\n\n // request.destroy just do .end - .abort is what we want\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\nfunction call(fn) {\n fn();\n}\nfunction pipe(from, to) {\n return from.pipe(to);\n}\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\nmodule.exports = pipeline;","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nmodule.exports = Stream;\n\nvar EE = require('events').EventEmitter;\nvar inherits = require('inherits');\n\ninherits(Stream, EE);\nStream.Readable = require('readable-stream/lib/_stream_readable.js');\nStream.Writable = require('readable-stream/lib/_stream_writable.js');\nStream.Duplex = require('readable-stream/lib/_stream_duplex.js');\nStream.Transform = require('readable-stream/lib/_stream_transform.js');\nStream.PassThrough = require('readable-stream/lib/_stream_passthrough.js');\nStream.finished = require('readable-stream/lib/internal/streams/end-of-stream.js')\nStream.pipeline = require('readable-stream/lib/internal/streams/pipeline.js')\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\n\n\n// old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EE.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EE.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n","'use strict'\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('stream').Transform\nvar inherits = require('inherits')\n\nfunction HashBase (blockSize) {\n Transform.call(this)\n\n this._block = Buffer.allocUnsafe(blockSize)\n this._blockSize = blockSize\n this._blockOffset = 0\n this._length = [0, 0, 0, 0]\n\n this._finalized = false\n}\n\ninherits(HashBase, Transform)\n\nHashBase.prototype._transform = function (chunk, encoding, callback) {\n var error = null\n try {\n this.update(chunk, encoding)\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype._flush = function (callback) {\n var error = null\n try {\n this.push(this.digest())\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nvar useUint8Array = typeof Uint8Array !== 'undefined'\nvar useArrayBuffer = typeof ArrayBuffer !== 'undefined' &&\n typeof Uint8Array !== 'undefined' &&\n ArrayBuffer.isView &&\n (Buffer.prototype instanceof Uint8Array || Buffer.TYPED_ARRAY_SUPPORT)\n\nfunction toBuffer (data, encoding) {\n // No need to do anything for exact instance\n // This is only valid when safe-buffer.Buffer === buffer.Buffer, i.e. when Buffer.from/Buffer.alloc existed\n if (data instanceof Buffer) return data\n\n // Convert strings to Buffer\n if (typeof data === 'string') return Buffer.from(data, encoding)\n\n /*\n * Wrap any TypedArray instances and DataViews\n * Makes sense only on engines with full TypedArray support -- let Buffer detect that\n */\n if (useArrayBuffer && ArrayBuffer.isView(data)) {\n if (data.byteLength === 0) return Buffer.alloc(0) // Bug in Node.js <6.3.1, which treats this as out-of-bounds\n var res = Buffer.from(data.buffer, data.byteOffset, data.byteLength)\n // Recheck result size, as offset/length doesn't work on Node.js <5.10\n // We just go to Uint8Array case if this fails\n if (res.byteLength === data.byteLength) return res\n }\n\n /*\n * Uint8Array in engines where Buffer.from might not work with ArrayBuffer, just copy over\n * Doesn't make sense with other TypedArray instances\n */\n if (useUint8Array && data instanceof Uint8Array) return Buffer.from(data)\n\n /*\n * Old Buffer polyfill on an engine that doesn't have TypedArray support\n * Also, this is from a different Buffer polyfill implementation then we have, as instanceof check failed\n * Convert to our current Buffer implementation\n */\n if (\n Buffer.isBuffer(data) &&\n data.constructor &&\n typeof data.constructor.isBuffer === 'function' &&\n data.constructor.isBuffer(data)\n ) {\n return Buffer.from(data)\n }\n\n throw new TypeError('The \"data\" argument must be of type string or an instance of Buffer, TypedArray, or DataView.')\n}\n\nHashBase.prototype.update = function (data, encoding) {\n if (this._finalized) throw new Error('Digest already called')\n\n data = toBuffer(data, encoding) // asserts correct input type\n\n // consume data\n var block = this._block\n var offset = 0\n while (this._blockOffset + data.length - offset >= this._blockSize) {\n for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]\n this._update()\n this._blockOffset = 0\n }\n while (offset < data.length) block[this._blockOffset++] = data[offset++]\n\n // update length\n for (var j = 0, carry = data.length * 8; carry > 0; ++j) {\n this._length[j] += carry\n carry = (this._length[j] / 0x0100000000) | 0\n if (carry > 0) this._length[j] -= 0x0100000000 * carry\n }\n\n return this\n}\n\nHashBase.prototype._update = function () {\n throw new Error('_update is not implemented')\n}\n\nHashBase.prototype.digest = function (encoding) {\n if (this._finalized) throw new Error('Digest already called')\n this._finalized = true\n\n var digest = this._digest()\n if (encoding !== undefined) digest = digest.toString(encoding)\n\n // reset state\n this._block.fill(0)\n this._blockOffset = 0\n for (var i = 0; i < 4; ++i) this._length[i] = 0\n\n return digest\n}\n\nHashBase.prototype._digest = function () {\n throw new Error('_digest is not implemented')\n}\n\nmodule.exports = HashBase\n","'use strict'\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\nvar Buffer = require('safe-buffer').Buffer\n\nvar ARRAY16 = new Array(16)\n\nfunction MD5 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n}\n\ninherits(MD5, HashBase)\n\nMD5.prototype._update = function () {\n var M = ARRAY16\n for (var i = 0; i < 16; ++i) M[i] = this._block.readInt32LE(i * 4)\n\n var a = this._a\n var b = this._b\n var c = this._c\n var d = this._d\n\n a = fnF(a, b, c, d, M[0], 0xd76aa478, 7)\n d = fnF(d, a, b, c, M[1], 0xe8c7b756, 12)\n c = fnF(c, d, a, b, M[2], 0x242070db, 17)\n b = fnF(b, c, d, a, M[3], 0xc1bdceee, 22)\n a = fnF(a, b, c, d, M[4], 0xf57c0faf, 7)\n d = fnF(d, a, b, c, M[5], 0x4787c62a, 12)\n c = fnF(c, d, a, b, M[6], 0xa8304613, 17)\n b = fnF(b, c, d, a, M[7], 0xfd469501, 22)\n a = fnF(a, b, c, d, M[8], 0x698098d8, 7)\n d = fnF(d, a, b, c, M[9], 0x8b44f7af, 12)\n c = fnF(c, d, a, b, M[10], 0xffff5bb1, 17)\n b = fnF(b, c, d, a, M[11], 0x895cd7be, 22)\n a = fnF(a, b, c, d, M[12], 0x6b901122, 7)\n d = fnF(d, a, b, c, M[13], 0xfd987193, 12)\n c = fnF(c, d, a, b, M[14], 0xa679438e, 17)\n b = fnF(b, c, d, a, M[15], 0x49b40821, 22)\n\n a = fnG(a, b, c, d, M[1], 0xf61e2562, 5)\n d = fnG(d, a, b, c, M[6], 0xc040b340, 9)\n c = fnG(c, d, a, b, M[11], 0x265e5a51, 14)\n b = fnG(b, c, d, a, M[0], 0xe9b6c7aa, 20)\n a = fnG(a, b, c, d, M[5], 0xd62f105d, 5)\n d = fnG(d, a, b, c, M[10], 0x02441453, 9)\n c = fnG(c, d, a, b, M[15], 0xd8a1e681, 14)\n b = fnG(b, c, d, a, M[4], 0xe7d3fbc8, 20)\n a = fnG(a, b, c, d, M[9], 0x21e1cde6, 5)\n d = fnG(d, a, b, c, M[14], 0xc33707d6, 9)\n c = fnG(c, d, a, b, M[3], 0xf4d50d87, 14)\n b = fnG(b, c, d, a, M[8], 0x455a14ed, 20)\n a = fnG(a, b, c, d, M[13], 0xa9e3e905, 5)\n d = fnG(d, a, b, c, M[2], 0xfcefa3f8, 9)\n c = fnG(c, d, a, b, M[7], 0x676f02d9, 14)\n b = fnG(b, c, d, a, M[12], 0x8d2a4c8a, 20)\n\n a = fnH(a, b, c, d, M[5], 0xfffa3942, 4)\n d = fnH(d, a, b, c, M[8], 0x8771f681, 11)\n c = fnH(c, d, a, b, M[11], 0x6d9d6122, 16)\n b = fnH(b, c, d, a, M[14], 0xfde5380c, 23)\n a = fnH(a, b, c, d, M[1], 0xa4beea44, 4)\n d = fnH(d, a, b, c, M[4], 0x4bdecfa9, 11)\n c = fnH(c, d, a, b, M[7], 0xf6bb4b60, 16)\n b = fnH(b, c, d, a, M[10], 0xbebfbc70, 23)\n a = fnH(a, b, c, d, M[13], 0x289b7ec6, 4)\n d = fnH(d, a, b, c, M[0], 0xeaa127fa, 11)\n c = fnH(c, d, a, b, M[3], 0xd4ef3085, 16)\n b = fnH(b, c, d, a, M[6], 0x04881d05, 23)\n a = fnH(a, b, c, d, M[9], 0xd9d4d039, 4)\n d = fnH(d, a, b, c, M[12], 0xe6db99e5, 11)\n c = fnH(c, d, a, b, M[15], 0x1fa27cf8, 16)\n b = fnH(b, c, d, a, M[2], 0xc4ac5665, 23)\n\n a = fnI(a, b, c, d, M[0], 0xf4292244, 6)\n d = fnI(d, a, b, c, M[7], 0x432aff97, 10)\n c = fnI(c, d, a, b, M[14], 0xab9423a7, 15)\n b = fnI(b, c, d, a, M[5], 0xfc93a039, 21)\n a = fnI(a, b, c, d, M[12], 0x655b59c3, 6)\n d = fnI(d, a, b, c, M[3], 0x8f0ccc92, 10)\n c = fnI(c, d, a, b, M[10], 0xffeff47d, 15)\n b = fnI(b, c, d, a, M[1], 0x85845dd1, 21)\n a = fnI(a, b, c, d, M[8], 0x6fa87e4f, 6)\n d = fnI(d, a, b, c, M[15], 0xfe2ce6e0, 10)\n c = fnI(c, d, a, b, M[6], 0xa3014314, 15)\n b = fnI(b, c, d, a, M[13], 0x4e0811a1, 21)\n a = fnI(a, b, c, d, M[4], 0xf7537e82, 6)\n d = fnI(d, a, b, c, M[11], 0xbd3af235, 10)\n c = fnI(c, d, a, b, M[2], 0x2ad7d2bb, 15)\n b = fnI(b, c, d, a, M[9], 0xeb86d391, 21)\n\n this._a = (this._a + a) | 0\n this._b = (this._b + b) | 0\n this._c = (this._c + c) | 0\n this._d = (this._d + d) | 0\n}\n\nMD5.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.allocUnsafe(16)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fnF (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnG (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnH (a, b, c, d, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnI (a, b, c, d, m, k, s) {\n return (rotl((a + ((c ^ (b | (~d)))) + m + k) | 0, s) + b) | 0\n}\n\nmodule.exports = MD5\n","'use strict'\nvar Buffer = require('buffer').Buffer\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\n\nvar ARRAY16 = new Array(16)\n\nvar zl = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n]\n\nvar zr = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n]\n\nvar sl = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n]\n\nvar sr = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n]\n\nvar hl = [0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e]\nvar hr = [0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000]\n\nfunction RIPEMD160 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n}\n\ninherits(RIPEMD160, HashBase)\n\nRIPEMD160.prototype._update = function () {\n var words = ARRAY16\n for (var j = 0; j < 16; ++j) words[j] = this._block.readInt32LE(j * 4)\n\n var al = this._a | 0\n var bl = this._b | 0\n var cl = this._c | 0\n var dl = this._d | 0\n var el = this._e | 0\n\n var ar = this._a | 0\n var br = this._b | 0\n var cr = this._c | 0\n var dr = this._d | 0\n var er = this._e | 0\n\n // computation\n for (var i = 0; i < 80; i += 1) {\n var tl\n var tr\n if (i < 16) {\n tl = fn1(al, bl, cl, dl, el, words[zl[i]], hl[0], sl[i])\n tr = fn5(ar, br, cr, dr, er, words[zr[i]], hr[0], sr[i])\n } else if (i < 32) {\n tl = fn2(al, bl, cl, dl, el, words[zl[i]], hl[1], sl[i])\n tr = fn4(ar, br, cr, dr, er, words[zr[i]], hr[1], sr[i])\n } else if (i < 48) {\n tl = fn3(al, bl, cl, dl, el, words[zl[i]], hl[2], sl[i])\n tr = fn3(ar, br, cr, dr, er, words[zr[i]], hr[2], sr[i])\n } else if (i < 64) {\n tl = fn4(al, bl, cl, dl, el, words[zl[i]], hl[3], sl[i])\n tr = fn2(ar, br, cr, dr, er, words[zr[i]], hr[3], sr[i])\n } else { // if (i<80) {\n tl = fn5(al, bl, cl, dl, el, words[zl[i]], hl[4], sl[i])\n tr = fn1(ar, br, cr, dr, er, words[zr[i]], hr[4], sr[i])\n }\n\n al = el\n el = dl\n dl = rotl(cl, 10)\n cl = bl\n bl = tl\n\n ar = er\n er = dr\n dr = rotl(cr, 10)\n cr = br\n br = tr\n }\n\n // update state\n var t = (this._b + cl + dr) | 0\n this._b = (this._c + dl + er) | 0\n this._c = (this._d + el + ar) | 0\n this._d = (this._e + al + br) | 0\n this._e = (this._a + bl + cr) | 0\n this._a = t\n}\n\nRIPEMD160.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.alloc ? Buffer.alloc(20) : new Buffer(20)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n buffer.writeInt32LE(this._e, 16)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fn1 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn2 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn3 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b | (~c)) ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn4 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn5 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ (c | (~d))) + m + k) | 0, s) + e) | 0\n}\n\nmodule.exports = RIPEMD160\n","var Buffer = require('safe-buffer').Buffer\n\n// prototype class for hash functions\nfunction Hash (blockSize, finalSize) {\n this._block = Buffer.alloc(blockSize)\n this._finalSize = finalSize\n this._blockSize = blockSize\n this._len = 0\n}\n\nHash.prototype.update = function (data, enc) {\n if (typeof data === 'string') {\n enc = enc || 'utf8'\n data = Buffer.from(data, enc)\n }\n\n var block = this._block\n var blockSize = this._blockSize\n var length = data.length\n var accum = this._len\n\n for (var offset = 0; offset < length;) {\n var assigned = accum % blockSize\n var remainder = Math.min(length - offset, blockSize - assigned)\n\n for (var i = 0; i < remainder; i++) {\n block[assigned + i] = data[offset + i]\n }\n\n accum += remainder\n offset += remainder\n\n if ((accum % blockSize) === 0) {\n this._update(block)\n }\n }\n\n this._len += length\n return this\n}\n\nHash.prototype.digest = function (enc) {\n var rem = this._len % this._blockSize\n\n this._block[rem] = 0x80\n\n // zero (rem + 1) trailing bits, where (rem + 1) is the smallest\n // non-negative solution to the equation (length + 1 + (rem + 1)) === finalSize mod blockSize\n this._block.fill(0, rem + 1)\n\n if (rem >= this._finalSize) {\n this._update(this._block)\n this._block.fill(0)\n }\n\n var bits = this._len * 8\n\n // uint32\n if (bits <= 0xffffffff) {\n this._block.writeUInt32BE(bits, this._blockSize - 4)\n\n // uint64\n } else {\n var lowBits = (bits & 0xffffffff) >>> 0\n var highBits = (bits - lowBits) / 0x100000000\n\n this._block.writeUInt32BE(highBits, this._blockSize - 8)\n this._block.writeUInt32BE(lowBits, this._blockSize - 4)\n }\n\n this._update(this._block)\n var hash = this._hash()\n\n return enc ? hash.toString(enc) : hash\n}\n\nHash.prototype._update = function () {\n throw new Error('_update must be implemented by subclass')\n}\n\nmodule.exports = Hash\n","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined\n * in FIPS PUB 180-1\n * This source code is derived from sha1.js of the same repository.\n * The difference between SHA-0 and SHA-1 is just a bitwise rotate left\n * operation was added.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha, Hash)\n\nSha.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha\n","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined\n * in FIPS PUB 180-1\n * Version 2.1a Copyright Paul Johnston 2000 - 2002.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for details.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha1 () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha1, Hash)\n\nSha1.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl1 (num) {\n return (num << 1) | (num >>> 31)\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha1.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = rotl1(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16])\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha1.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha1\n","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,\n 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,\n 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3,\n 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,\n 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC,\n 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,\n 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7,\n 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,\n 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13,\n 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,\n 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3,\n 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,\n 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5,\n 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,\n 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208,\n 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2\n]\n\nvar W = new Array(64)\n\nfunction Sha256 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha256, Hash)\n\nSha256.prototype.init = function () {\n this._a = 0x6a09e667\n this._b = 0xbb67ae85\n this._c = 0x3c6ef372\n this._d = 0xa54ff53a\n this._e = 0x510e527f\n this._f = 0x9b05688c\n this._g = 0x1f83d9ab\n this._h = 0x5be0cd19\n\n return this\n}\n\nfunction ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x) {\n return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10)\n}\n\nfunction sigma1 (x) {\n return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7)\n}\n\nfunction gamma0 (x) {\n return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ (x >>> 3)\n}\n\nfunction gamma1 (x) {\n return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ (x >>> 10)\n}\n\nSha256.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n var f = this._f | 0\n var g = this._g | 0\n var h = this._h | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 64; ++i) W[i] = (gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16]) | 0\n\n for (var j = 0; j < 64; ++j) {\n var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) | 0\n var T2 = (sigma0(a) + maj(a, b, c)) | 0\n\n h = g\n g = f\n f = e\n e = (d + T1) | 0\n d = c\n c = b\n b = a\n a = (T1 + T2) | 0\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n this._f = (f + this._f) | 0\n this._g = (g + this._g) | 0\n this._h = (h + this._h) | 0\n}\n\nSha256.prototype._hash = function () {\n var H = Buffer.allocUnsafe(32)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n H.writeInt32BE(this._h, 28)\n\n return H\n}\n\nmodule.exports = Sha256\n","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Sha256 = require('./sha256')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(64)\n\nfunction Sha224 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha224, Sha256)\n\nSha224.prototype.init = function () {\n this._a = 0xc1059ed8\n this._b = 0x367cd507\n this._c = 0x3070dd17\n this._d = 0xf70e5939\n this._e = 0xffc00b31\n this._f = 0x68581511\n this._g = 0x64f98fa7\n this._h = 0xbefa4fa4\n\n return this\n}\n\nSha224.prototype._hash = function () {\n var H = Buffer.allocUnsafe(28)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n\n return H\n}\n\nmodule.exports = Sha224\n","var inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar 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\nvar W = new Array(160)\n\nfunction Sha512 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha512, Hash)\n\nSha512.prototype.init = function () {\n this._ah = 0x6a09e667\n this._bh = 0xbb67ae85\n this._ch = 0x3c6ef372\n this._dh = 0xa54ff53a\n this._eh = 0x510e527f\n this._fh = 0x9b05688c\n this._gh = 0x1f83d9ab\n this._hh = 0x5be0cd19\n\n this._al = 0xf3bcc908\n this._bl = 0x84caa73b\n this._cl = 0xfe94f82b\n this._dl = 0x5f1d36f1\n this._el = 0xade682d1\n this._fl = 0x2b3e6c1f\n this._gl = 0xfb41bd6b\n this._hl = 0x137e2179\n\n return this\n}\n\nfunction Ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x, xl) {\n return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25)\n}\n\nfunction sigma1 (x, xl) {\n return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23)\n}\n\nfunction Gamma0 (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7)\n}\n\nfunction Gamma0l (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25)\n}\n\nfunction Gamma1 (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6)\n}\n\nfunction Gamma1l (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26)\n}\n\nfunction getCarry (a, b) {\n return (a >>> 0) < (b >>> 0) ? 1 : 0\n}\n\nSha512.prototype._update = function (M) {\n var W = this._w\n\n var ah = this._ah | 0\n var bh = this._bh | 0\n var ch = this._ch | 0\n var dh = this._dh | 0\n var eh = this._eh | 0\n var fh = this._fh | 0\n var gh = this._gh | 0\n var hh = this._hh | 0\n\n var al = this._al | 0\n var bl = this._bl | 0\n var cl = this._cl | 0\n var dl = this._dl | 0\n var el = this._el | 0\n var fl = this._fl | 0\n var gl = this._gl | 0\n var hl = this._hl | 0\n\n for (var i = 0; i < 32; i += 2) {\n W[i] = M.readInt32BE(i * 4)\n W[i + 1] = M.readInt32BE(i * 4 + 4)\n }\n for (; i < 160; i += 2) {\n var xh = W[i - 15 * 2]\n var xl = W[i - 15 * 2 + 1]\n var gamma0 = Gamma0(xh, xl)\n var gamma0l = Gamma0l(xl, xh)\n\n xh = W[i - 2 * 2]\n xl = W[i - 2 * 2 + 1]\n var gamma1 = Gamma1(xh, xl)\n var gamma1l = Gamma1l(xl, xh)\n\n // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n var Wi7h = W[i - 7 * 2]\n var Wi7l = W[i - 7 * 2 + 1]\n\n var Wi16h = W[i - 16 * 2]\n var Wi16l = W[i - 16 * 2 + 1]\n\n var Wil = (gamma0l + Wi7l) | 0\n var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0\n Wil = (Wil + gamma1l) | 0\n Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0\n Wil = (Wil + Wi16l) | 0\n Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0\n\n W[i] = Wih\n W[i + 1] = Wil\n }\n\n for (var j = 0; j < 160; j += 2) {\n Wih = W[j]\n Wil = W[j + 1]\n\n var majh = maj(ah, bh, ch)\n var majl = maj(al, bl, cl)\n\n var sigma0h = sigma0(ah, al)\n var sigma0l = sigma0(al, ah)\n var sigma1h = sigma1(eh, el)\n var sigma1l = sigma1(el, eh)\n\n // t1 = h + sigma1 + ch + K[j] + W[j]\n var Kih = K[j]\n var Kil = K[j + 1]\n\n var chh = Ch(eh, fh, gh)\n var chl = Ch(el, fl, gl)\n\n var t1l = (hl + sigma1l) | 0\n var t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0\n t1l = (t1l + chl) | 0\n t1h = (t1h + chh + getCarry(t1l, chl)) | 0\n t1l = (t1l + Kil) | 0\n t1h = (t1h + Kih + getCarry(t1l, Kil)) | 0\n t1l = (t1l + Wil) | 0\n t1h = (t1h + Wih + getCarry(t1l, Wil)) | 0\n\n // t2 = sigma0 + maj\n var t2l = (sigma0l + majl) | 0\n var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0\n\n hh = gh\n hl = gl\n gh = fh\n gl = fl\n fh = eh\n fl = el\n el = (dl + t1l) | 0\n eh = (dh + t1h + getCarry(el, dl)) | 0\n dh = ch\n dl = cl\n ch = bh\n cl = bl\n bh = ah\n bl = al\n al = (t1l + t2l) | 0\n ah = (t1h + t2h + getCarry(al, t1l)) | 0\n }\n\n this._al = (this._al + al) | 0\n this._bl = (this._bl + bl) | 0\n this._cl = (this._cl + cl) | 0\n this._dl = (this._dl + dl) | 0\n this._el = (this._el + el) | 0\n this._fl = (this._fl + fl) | 0\n this._gl = (this._gl + gl) | 0\n this._hl = (this._hl + hl) | 0\n\n this._ah = (this._ah + ah + getCarry(this._al, al)) | 0\n this._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0\n this._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0\n this._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0\n this._eh = (this._eh + eh + getCarry(this._el, el)) | 0\n this._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0\n this._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0\n this._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0\n}\n\nSha512.prototype._hash = function () {\n var H = Buffer.allocUnsafe(64)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n writeInt64BE(this._gh, this._gl, 48)\n writeInt64BE(this._hh, this._hl, 56)\n\n return H\n}\n\nmodule.exports = Sha512\n","var inherits = require('inherits')\nvar SHA512 = require('./sha512')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(160)\n\nfunction Sha384 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha384, SHA512)\n\nSha384.prototype.init = function () {\n this._ah = 0xcbbb9d5d\n this._bh = 0x629a292a\n this._ch = 0x9159015a\n this._dh = 0x152fecd8\n this._eh = 0x67332667\n this._fh = 0x8eb44a87\n this._gh = 0xdb0c2e0d\n this._hh = 0x47b5481d\n\n this._al = 0xc1059ed8\n this._bl = 0x367cd507\n this._cl = 0x3070dd17\n this._dl = 0xf70e5939\n this._el = 0xffc00b31\n this._fl = 0x68581511\n this._gl = 0x64f98fa7\n this._hl = 0xbefa4fa4\n\n return this\n}\n\nSha384.prototype._hash = function () {\n var H = Buffer.allocUnsafe(48)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n\n return H\n}\n\nmodule.exports = Sha384\n","var exports = module.exports = function SHA (algorithm) {\n algorithm = algorithm.toLowerCase()\n\n var Algorithm = exports[algorithm]\n if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')\n\n return new Algorithm()\n}\n\nexports.sha = require('./sha')\nexports.sha1 = require('./sha1')\nexports.sha224 = require('./sha224')\nexports.sha256 = require('./sha256')\nexports.sha384 = require('./sha384')\nexports.sha512 = require('./sha512')\n","'use strict';\n\nvar Buffer = require('safe-buffer').Buffer;\nvar Transform = require('stream').Transform;\nvar StringDecoder = require('string_decoder').StringDecoder;\nvar inherits = require('inherits');\n\nfunction CipherBase(hashMode) {\n\tTransform.call(this);\n\tthis.hashMode = typeof hashMode === 'string';\n\tif (this.hashMode) {\n\t\tthis[hashMode] = this._finalOrDigest;\n\t} else {\n\t\tthis['final'] = this._finalOrDigest;\n\t}\n\tif (this._final) {\n\t\tthis.__final = this._final;\n\t\tthis._final = null;\n\t}\n\tthis._decoder = null;\n\tthis._encoding = null;\n}\ninherits(CipherBase, Transform);\n\nvar useUint8Array = typeof Uint8Array !== 'undefined';\nvar useArrayBuffer = typeof ArrayBuffer !== 'undefined'\n\t&& typeof Uint8Array !== 'undefined'\n\t&& ArrayBuffer.isView\n\t&& (Buffer.prototype instanceof Uint8Array || Buffer.TYPED_ARRAY_SUPPORT);\n\nfunction toBuffer(data, encoding) {\n\t/*\n\t * No need to do anything for exact instance\n\t * This is only valid when safe-buffer.Buffer === buffer.Buffer, i.e. when Buffer.from/Buffer.alloc existed\n\t */\n\tif (data instanceof Buffer) {\n\t\treturn data;\n\t}\n\n\t// Convert strings to Buffer\n\tif (typeof data === 'string') {\n\t\treturn Buffer.from(data, encoding);\n\t}\n\n\t/*\n\t * Wrap any TypedArray instances and DataViews\n\t * Makes sense only on engines with full TypedArray support -- let Buffer detect that\n\t */\n\tif (useArrayBuffer && ArrayBuffer.isView(data)) {\n\t\t// Bug in Node.js <6.3.1, which treats this as out-of-bounds\n\t\tif (data.byteLength === 0) {\n\t\t\treturn Buffer.alloc(0);\n\t\t}\n\n\t\tvar res = Buffer.from(data.buffer, data.byteOffset, data.byteLength);\n\t\t/*\n\t\t * Recheck result size, as offset/length doesn't work on Node.js <5.10\n\t\t * We just go to Uint8Array case if this fails\n\t\t */\n\t\tif (res.byteLength === data.byteLength) {\n\t\t\treturn res;\n\t\t}\n\t}\n\n\t/*\n\t * Uint8Array in engines where Buffer.from might not work with ArrayBuffer, just copy over\n\t * Doesn't make sense with other TypedArray instances\n\t */\n\tif (useUint8Array && data instanceof Uint8Array) {\n\t\treturn Buffer.from(data);\n\t}\n\n\t/*\n\t * Old Buffer polyfill on an engine that doesn't have TypedArray support\n\t * Also, this is from a different Buffer polyfill implementation then we have, as instanceof check failed\n\t * Convert to our current Buffer implementation\n\t */\n\tif (\n\t\tBuffer.isBuffer(data)\n\t\t\t&& data.constructor\n\t\t\t&& typeof data.constructor.isBuffer === 'function'\n\t\t\t&& data.constructor.isBuffer(data)\n\t) {\n\t\treturn Buffer.from(data);\n\t}\n\n\tthrow new TypeError('The \"data\" argument must be of type string or an instance of Buffer, TypedArray, or DataView.');\n}\n\nCipherBase.prototype.update = function (data, inputEnc, outputEnc) {\n\tvar bufferData = toBuffer(data, inputEnc); // asserts correct input type\n\tvar outData = this._update(bufferData);\n\tif (this.hashMode) {\n\t\treturn this;\n\t}\n\n\tif (outputEnc) {\n\t\toutData = this._toString(outData, outputEnc);\n\t}\n\n\treturn outData;\n};\n\nCipherBase.prototype.setAutoPadding = function () {};\nCipherBase.prototype.getAuthTag = function () {\n\tthrow new Error('trying to get auth tag in unsupported state');\n};\n\nCipherBase.prototype.setAuthTag = function () {\n\tthrow new Error('trying to set auth tag in unsupported state');\n};\n\nCipherBase.prototype.setAAD = function () {\n\tthrow new Error('trying to set aad in unsupported state');\n};\n\nCipherBase.prototype._transform = function (data, _, next) {\n\tvar err;\n\ttry {\n\t\tif (this.hashMode) {\n\t\t\tthis._update(data);\n\t\t} else {\n\t\t\tthis.push(this._update(data));\n\t\t}\n\t} catch (e) {\n\t\terr = e;\n\t} finally {\n\t\tnext(err);\n\t}\n};\nCipherBase.prototype._flush = function (done) {\n\tvar err;\n\ttry {\n\t\tthis.push(this.__final());\n\t} catch (e) {\n\t\terr = e;\n\t}\n\n\tdone(err);\n};\nCipherBase.prototype._finalOrDigest = function (outputEnc) {\n\tvar outData = this.__final() || Buffer.alloc(0);\n\tif (outputEnc) {\n\t\toutData = this._toString(outData, outputEnc, true);\n\t}\n\treturn outData;\n};\n\nCipherBase.prototype._toString = function (value, enc, fin) {\n\tif (!this._decoder) {\n\t\tthis._decoder = new StringDecoder(enc);\n\t\tthis._encoding = enc;\n\t}\n\n\tif (this._encoding !== enc) {\n\t\tthrow new Error('can’t switch encodings');\n\t}\n\n\tvar out = this._decoder.write(value);\n\tif (fin) {\n\t\tout += this._decoder.end();\n\t}\n\n\treturn out;\n};\n\nmodule.exports = CipherBase;\n","'use strict'\nvar inherits = require('inherits')\nvar MD5 = require('md5.js')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Base = require('cipher-base')\n\nfunction Hash (hash) {\n Base.call(this, 'digest')\n\n this._hash = hash\n}\n\ninherits(Hash, Base)\n\nHash.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHash.prototype._final = function () {\n return this._hash.digest()\n}\n\nmodule.exports = function createHash (alg) {\n alg = alg.toLowerCase()\n if (alg === 'md5') return new MD5()\n if (alg === 'rmd160' || alg === 'ripemd160') return new RIPEMD160()\n\n return new Hash(sha(alg))\n}\n","'use strict'\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar Base = require('cipher-base')\n\nvar ZEROS = Buffer.alloc(128)\nvar blocksize = 64\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n this._alg = alg\n this._key = key\n\n if (key.length > blocksize) {\n key = alg(key)\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n\n this._hash = [ipad]\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.push(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._alg(Buffer.concat(this._hash))\n return this._alg(Buffer.concat([this._opad, h]))\n}\nmodule.exports = Hmac\n","var MD5 = require('md5.js')\n\nmodule.exports = function (buffer) {\n return new MD5().update(buffer).digest()\n}\n","'use strict'\nvar inherits = require('inherits')\nvar Legacy = require('./legacy')\nvar Base = require('cipher-base')\nvar Buffer = require('safe-buffer').Buffer\nvar md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\n\nvar sha = require('sha.js')\n\nvar ZEROS = Buffer.alloc(128)\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n this._alg = alg\n this._key = key\n if (key.length > blocksize) {\n var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n key = hash.update(key).digest()\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n this._hash.update(ipad)\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._hash.digest()\n var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg)\n return hash.update(this._opad).update(h).digest()\n}\n\nmodule.exports = function createHmac (alg, key) {\n alg = alg.toLowerCase()\n if (alg === 'rmd160' || alg === 'ripemd160') {\n return new Hmac('rmd160', key)\n }\n if (alg === 'md5') {\n return new Legacy(md5, key)\n }\n return new Hmac(alg, key)\n}\n","'use strict';\n\nmodule.exports = require('./browser/algorithms.json');\n","var MAX_ALLOC = Math.pow(2, 30) - 1 // default in iojs\n\nmodule.exports = function (iterations, keylen) {\n if (typeof iterations !== 'number') {\n throw new TypeError('Iterations not a number')\n }\n\n if (iterations < 0) {\n throw new TypeError('Bad iterations')\n }\n\n if (typeof keylen !== 'number') {\n throw new TypeError('Key length not a number')\n }\n\n if (keylen < 0 || keylen > MAX_ALLOC || keylen !== keylen) { /* eslint no-self-compare: 0 */\n throw new TypeError('Bad key length')\n }\n}\n","var defaultEncoding\n/* istanbul ignore next */\nif (global.process && global.process.browser) {\n defaultEncoding = 'utf-8'\n} else if (global.process && global.process.version) {\n var pVersionMajor = parseInt(process.version.split('.')[0].slice(1), 10)\n\n defaultEncoding = pVersionMajor >= 6 ? 'utf-8' : 'binary'\n} else {\n defaultEncoding = 'utf-8'\n}\nmodule.exports = defaultEncoding\n","var Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (thing, encoding, name) {\n if (Buffer.isBuffer(thing)) {\n return thing\n } else if (typeof thing === 'string') {\n return Buffer.from(thing, encoding)\n } else if (ArrayBuffer.isView(thing)) {\n return Buffer.from(thing.buffer)\n } else {\n throw new TypeError(name + ' must be a string, a Buffer, a typed array or a DataView')\n }\n}\n","var md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Buffer = require('safe-buffer').Buffer\n\nvar checkParameters = require('./precondition')\nvar defaultEncoding = require('./default-encoding')\nvar toBuffer = require('./to-buffer')\n\nvar ZEROS = Buffer.alloc(128)\nvar sizes = {\n md5: 16,\n sha1: 20,\n sha224: 28,\n sha256: 32,\n sha384: 48,\n sha512: 64,\n rmd160: 20,\n ripemd160: 20\n}\n\nfunction Hmac (alg, key, saltLen) {\n var hash = getDigest(alg)\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n if (key.length > blocksize) {\n key = hash(key)\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = Buffer.allocUnsafe(blocksize + sizes[alg])\n var opad = Buffer.allocUnsafe(blocksize + sizes[alg])\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n\n var ipad1 = Buffer.allocUnsafe(blocksize + saltLen + 4)\n ipad.copy(ipad1, 0, 0, blocksize)\n this.ipad1 = ipad1\n this.ipad2 = ipad\n this.opad = opad\n this.alg = alg\n this.blocksize = blocksize\n this.hash = hash\n this.size = sizes[alg]\n}\n\nHmac.prototype.run = function (data, ipad) {\n data.copy(ipad, this.blocksize)\n var h = this.hash(ipad)\n h.copy(this.opad, this.blocksize)\n return this.hash(this.opad)\n}\n\nfunction getDigest (alg) {\n function shaFunc (data) {\n return sha(alg).update(data).digest()\n }\n function rmd160Func (data) {\n return new RIPEMD160().update(data).digest()\n }\n\n if (alg === 'rmd160' || alg === 'ripemd160') return rmd160Func\n if (alg === 'md5') return md5\n return shaFunc\n}\n\nfunction pbkdf2 (password, salt, iterations, keylen, digest) {\n checkParameters(iterations, keylen)\n password = toBuffer(password, defaultEncoding, 'Password')\n salt = toBuffer(salt, defaultEncoding, 'Salt')\n\n digest = digest || 'sha1'\n\n var hmac = new Hmac(digest, password, salt.length)\n\n var DK = Buffer.allocUnsafe(keylen)\n var block1 = Buffer.allocUnsafe(salt.length + 4)\n salt.copy(block1, 0, 0, salt.length)\n\n var destPos = 0\n var hLen = sizes[digest]\n var l = Math.ceil(keylen / hLen)\n\n for (var i = 1; i <= l; i++) {\n block1.writeUInt32BE(i, salt.length)\n\n var T = hmac.run(block1, hmac.ipad1)\n var U = T\n\n for (var j = 1; j < iterations; j++) {\n U = hmac.run(U, hmac.ipad2)\n for (var k = 0; k < hLen; k++) T[k] ^= U[k]\n }\n\n T.copy(DK, destPos)\n destPos += hLen\n }\n\n return DK\n}\n\nmodule.exports = pbkdf2\n","var Buffer = require('safe-buffer').Buffer\n\nvar checkParameters = require('./precondition')\nvar defaultEncoding = require('./default-encoding')\nvar sync = require('./sync')\nvar toBuffer = require('./to-buffer')\n\nvar ZERO_BUF\nvar subtle = global.crypto && global.crypto.subtle\nvar toBrowser = {\n sha: 'SHA-1',\n 'sha-1': 'SHA-1',\n sha1: 'SHA-1',\n sha256: 'SHA-256',\n 'sha-256': 'SHA-256',\n sha384: 'SHA-384',\n 'sha-384': 'SHA-384',\n 'sha-512': 'SHA-512',\n sha512: 'SHA-512'\n}\nvar checks = []\nfunction checkNative (algo) {\n if (global.process && !global.process.browser) {\n return Promise.resolve(false)\n }\n if (!subtle || !subtle.importKey || !subtle.deriveBits) {\n return Promise.resolve(false)\n }\n if (checks[algo] !== undefined) {\n return checks[algo]\n }\n ZERO_BUF = ZERO_BUF || Buffer.alloc(8)\n var prom = browserPbkdf2(ZERO_BUF, ZERO_BUF, 10, 128, algo)\n .then(function () {\n return true\n }).catch(function () {\n return false\n })\n checks[algo] = prom\n return prom\n}\nvar nextTick\nfunction getNextTick () {\n if (nextTick) {\n return nextTick\n }\n if (global.process && global.process.nextTick) {\n nextTick = global.process.nextTick\n } else if (global.queueMicrotask) {\n nextTick = global.queueMicrotask\n } else if (global.setImmediate) {\n nextTick = global.setImmediate\n } else {\n nextTick = global.setTimeout\n }\n return nextTick\n}\nfunction browserPbkdf2 (password, salt, iterations, length, algo) {\n return subtle.importKey(\n 'raw', password, { name: 'PBKDF2' }, false, ['deriveBits']\n ).then(function (key) {\n return subtle.deriveBits({\n name: 'PBKDF2',\n salt: salt,\n iterations: iterations,\n hash: {\n name: algo\n }\n }, key, length << 3)\n }).then(function (res) {\n return Buffer.from(res)\n })\n}\n\nfunction resolvePromise (promise, callback) {\n promise.then(function (out) {\n getNextTick()(function () {\n callback(null, out)\n })\n }, function (e) {\n getNextTick()(function () {\n callback(e)\n })\n })\n}\nmodule.exports = function (password, salt, iterations, keylen, digest, callback) {\n if (typeof digest === 'function') {\n callback = digest\n digest = undefined\n }\n\n digest = digest || 'sha1'\n var algo = toBrowser[digest.toLowerCase()]\n\n if (!algo || typeof global.Promise !== 'function') {\n getNextTick()(function () {\n var out\n try {\n out = sync(password, salt, iterations, keylen, digest)\n } catch (e) {\n return callback(e)\n }\n callback(null, out)\n })\n return\n }\n\n checkParameters(iterations, keylen)\n password = toBuffer(password, defaultEncoding, 'Password')\n salt = toBuffer(salt, defaultEncoding, 'Salt')\n if (typeof callback !== 'function') throw new Error('No callback provided to pbkdf2')\n\n resolvePromise(checkNative(algo).then(function (resp) {\n if (resp) return browserPbkdf2(password, salt, iterations, keylen, algo)\n\n return sync(password, salt, iterations, keylen, digest)\n }), callback)\n}\n","exports.pbkdf2 = require('./lib/async')\nexports.pbkdf2Sync = require('./lib/sync')\n","'use strict';\n\nexports.readUInt32BE = function readUInt32BE(bytes, off) {\n var res = (bytes[0 + off] << 24) |\n (bytes[1 + off] << 16) |\n (bytes[2 + off] << 8) |\n bytes[3 + off];\n return res >>> 0;\n};\n\nexports.writeUInt32BE = function writeUInt32BE(bytes, value, off) {\n bytes[0 + off] = value >>> 24;\n bytes[1 + off] = (value >>> 16) & 0xff;\n bytes[2 + off] = (value >>> 8) & 0xff;\n bytes[3 + off] = value & 0xff;\n};\n\nexports.ip = function ip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n }\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.rip = function rip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 0; i < 4; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n for (var i = 4; i < 8; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.pc1 = function pc1(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n // 7, 15, 23, 31, 39, 47, 55, 63\n // 6, 14, 22, 30, 39, 47, 55, 63\n // 5, 13, 21, 29, 39, 47, 55, 63\n // 4, 12, 20, 28\n for (var i = 7; i >= 5; i--) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n\n // 1, 9, 17, 25, 33, 41, 49, 57\n // 2, 10, 18, 26, 34, 42, 50, 58\n // 3, 11, 19, 27, 35, 43, 51, 59\n // 36, 44, 52, 60\n for (var i = 1; i <= 3; i++) {\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.r28shl = function r28shl(num, shift) {\n return ((num << shift) & 0xfffffff) | (num >>> (28 - shift));\n};\n\nvar pc2table = [\n // inL => outL\n 14, 11, 17, 4, 27, 23, 25, 0,\n 13, 22, 7, 18, 5, 9, 16, 24,\n 2, 20, 12, 21, 1, 8, 15, 26,\n\n // inR => outR\n 15, 4, 25, 19, 9, 1, 26, 16,\n 5, 11, 23, 8, 12, 7, 17, 0,\n 22, 3, 10, 14, 6, 20, 27, 24\n];\n\nexports.pc2 = function pc2(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n var len = pc2table.length >>> 1;\n for (var i = 0; i < len; i++) {\n outL <<= 1;\n outL |= (inL >>> pc2table[i]) & 0x1;\n }\n for (var i = len; i < pc2table.length; i++) {\n outR <<= 1;\n outR |= (inR >>> pc2table[i]) & 0x1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.expand = function expand(r, out, off) {\n var outL = 0;\n var outR = 0;\n\n outL = ((r & 1) << 5) | (r >>> 27);\n for (var i = 23; i >= 15; i -= 4) {\n outL <<= 6;\n outL |= (r >>> i) & 0x3f;\n }\n for (var i = 11; i >= 3; i -= 4) {\n outR |= (r >>> i) & 0x3f;\n outR <<= 6;\n }\n outR |= ((r & 0x1f) << 1) | (r >>> 31);\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nvar sTable = [\n 14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1,\n 3, 10, 10, 6, 6, 12, 12, 11, 5, 9, 9, 5, 0, 3, 7, 8,\n 4, 15, 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7,\n 15, 5, 12, 11, 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13,\n\n 15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, 4, 14,\n 9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5,\n 0, 13, 14, 8, 7, 10, 11, 1, 10, 3, 4, 15, 13, 4, 1, 2,\n 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9,\n\n 10, 13, 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10,\n 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, 2, 15, 8, 1,\n 13, 1, 6, 10, 4, 13, 9, 0, 8, 6, 15, 9, 3, 8, 0, 7,\n 11, 4, 1, 15, 2, 14, 12, 3, 5, 11, 10, 5, 14, 2, 7, 12,\n\n 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3,\n 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9,\n 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, 11, 1, 7, 13, 13, 8,\n 15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14,\n\n 2, 14, 12, 11, 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1,\n 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, 9, 6,\n 4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13,\n 15, 6, 9, 15, 12, 0, 5, 9, 6, 10, 3, 4, 0, 5, 14, 3,\n\n 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5,\n 0, 6, 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8,\n 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, 12, 15, 3, 10,\n 7, 11, 0, 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13,\n\n 4, 13, 11, 0, 2, 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10,\n 3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, 6,\n 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7,\n 10, 9, 15, 5, 6, 0, 8, 15, 0, 14, 5, 2, 9, 3, 2, 12,\n\n 13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4,\n 10, 12, 9, 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2,\n 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, 8, 2, 13,\n 0, 15, 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11\n];\n\nexports.substitute = function substitute(inL, inR) {\n var out = 0;\n for (var i = 0; i < 4; i++) {\n var b = (inL >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n for (var i = 0; i < 4; i++) {\n var b = (inR >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[4 * 0x40 + i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n return out >>> 0;\n};\n\nvar permuteTable = [\n 16, 25, 12, 11, 3, 20, 4, 15, 31, 17, 9, 6, 27, 14, 1, 22,\n 30, 24, 8, 18, 0, 5, 29, 23, 13, 19, 2, 26, 10, 21, 28, 7\n];\n\nexports.permute = function permute(num) {\n var out = 0;\n for (var i = 0; i < permuteTable.length; i++) {\n out <<= 1;\n out |= (num >>> permuteTable[i]) & 0x1;\n }\n return out >>> 0;\n};\n\nexports.padSplit = function padSplit(num, size, group) {\n var str = num.toString(2);\n while (str.length < size)\n str = '0' + str;\n\n var out = [];\n for (var i = 0; i < size; i += group)\n out.push(str.slice(i, i + group));\n return out.join(' ');\n};\n","module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\n\nfunction Cipher(options) {\n this.options = options;\n\n this.type = this.options.type;\n this.blockSize = 8;\n this._init();\n\n this.buffer = new Array(this.blockSize);\n this.bufferOff = 0;\n this.padding = options.padding !== false\n}\nmodule.exports = Cipher;\n\nCipher.prototype._init = function _init() {\n // Might be overrided\n};\n\nCipher.prototype.update = function update(data) {\n if (data.length === 0)\n return [];\n\n if (this.type === 'decrypt')\n return this._updateDecrypt(data);\n else\n return this._updateEncrypt(data);\n};\n\nCipher.prototype._buffer = function _buffer(data, off) {\n // Append data to buffer\n var min = Math.min(this.buffer.length - this.bufferOff, data.length - off);\n for (var i = 0; i < min; i++)\n this.buffer[this.bufferOff + i] = data[off + i];\n this.bufferOff += min;\n\n // Shift next\n return min;\n};\n\nCipher.prototype._flushBuffer = function _flushBuffer(out, off) {\n this._update(this.buffer, 0, out, off);\n this.bufferOff = 0;\n return this.blockSize;\n};\n\nCipher.prototype._updateEncrypt = function _updateEncrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = ((this.bufferOff + data.length) / this.blockSize) | 0;\n var out = new Array(count * this.blockSize);\n\n if (this.bufferOff !== 0) {\n inputOff += this._buffer(data, inputOff);\n\n if (this.bufferOff === this.buffer.length)\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Write blocks\n var max = data.length - ((data.length - inputOff) % this.blockSize);\n for (; inputOff < max; inputOff += this.blockSize) {\n this._update(data, inputOff, out, outputOff);\n outputOff += this.blockSize;\n }\n\n // Queue rest\n for (; inputOff < data.length; inputOff++, this.bufferOff++)\n this.buffer[this.bufferOff] = data[inputOff];\n\n return out;\n};\n\nCipher.prototype._updateDecrypt = function _updateDecrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = Math.ceil((this.bufferOff + data.length) / this.blockSize) - 1;\n var out = new Array(count * this.blockSize);\n\n // TODO(indutny): optimize it, this is far from optimal\n for (; count > 0; count--) {\n inputOff += this._buffer(data, inputOff);\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Buffer rest of the input\n inputOff += this._buffer(data, inputOff);\n\n return out;\n};\n\nCipher.prototype.final = function final(buffer) {\n var first;\n if (buffer)\n first = this.update(buffer);\n\n var last;\n if (this.type === 'encrypt')\n last = this._finalEncrypt();\n else\n last = this._finalDecrypt();\n\n if (first)\n return first.concat(last);\n else\n return last;\n};\n\nCipher.prototype._pad = function _pad(buffer, off) {\n if (off === 0)\n return false;\n\n while (off < buffer.length)\n buffer[off++] = 0;\n\n return true;\n};\n\nCipher.prototype._finalEncrypt = function _finalEncrypt() {\n if (!this._pad(this.buffer, this.bufferOff))\n return [];\n\n var out = new Array(this.blockSize);\n this._update(this.buffer, 0, out, 0);\n return out;\n};\n\nCipher.prototype._unpad = function _unpad(buffer) {\n return buffer;\n};\n\nCipher.prototype._finalDecrypt = function _finalDecrypt() {\n assert.equal(this.bufferOff, this.blockSize, 'Not enough data to decrypt');\n var out = new Array(this.blockSize);\n this._flushBuffer(out, 0);\n\n return this._unpad(out);\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar utils = require('./utils');\nvar Cipher = require('./cipher');\n\nfunction DESState() {\n this.tmp = new Array(2);\n this.keys = null;\n}\n\nfunction DES(options) {\n Cipher.call(this, options);\n\n var state = new DESState();\n this._desState = state;\n\n this.deriveKeys(state, options.key);\n}\ninherits(DES, Cipher);\nmodule.exports = DES;\n\nDES.create = function create(options) {\n return new DES(options);\n};\n\nvar shiftTable = [\n 1, 1, 2, 2, 2, 2, 2, 2,\n 1, 2, 2, 2, 2, 2, 2, 1\n];\n\nDES.prototype.deriveKeys = function deriveKeys(state, key) {\n state.keys = new Array(16 * 2);\n\n assert.equal(key.length, this.blockSize, 'Invalid key length');\n\n var kL = utils.readUInt32BE(key, 0);\n var kR = utils.readUInt32BE(key, 4);\n\n utils.pc1(kL, kR, state.tmp, 0);\n kL = state.tmp[0];\n kR = state.tmp[1];\n for (var i = 0; i < state.keys.length; i += 2) {\n var shift = shiftTable[i >>> 1];\n kL = utils.r28shl(kL, shift);\n kR = utils.r28shl(kR, shift);\n utils.pc2(kL, kR, state.keys, i);\n }\n};\n\nDES.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._desState;\n\n var l = utils.readUInt32BE(inp, inOff);\n var r = utils.readUInt32BE(inp, inOff + 4);\n\n // Initial Permutation\n utils.ip(l, r, state.tmp, 0);\n l = state.tmp[0];\n r = state.tmp[1];\n\n if (this.type === 'encrypt')\n this._encrypt(state, l, r, state.tmp, 0);\n else\n this._decrypt(state, l, r, state.tmp, 0);\n\n l = state.tmp[0];\n r = state.tmp[1];\n\n utils.writeUInt32BE(out, l, outOff);\n utils.writeUInt32BE(out, r, outOff + 4);\n};\n\nDES.prototype._pad = function _pad(buffer, off) {\n if (this.padding === false) {\n return false;\n }\n\n var value = buffer.length - off;\n for (var i = off; i < buffer.length; i++)\n buffer[i] = value;\n\n return true;\n};\n\nDES.prototype._unpad = function _unpad(buffer) {\n if (this.padding === false) {\n return buffer;\n }\n\n var pad = buffer[buffer.length - 1];\n for (var i = buffer.length - pad; i < buffer.length; i++)\n assert.equal(buffer[i], pad);\n\n return buffer.slice(0, buffer.length - pad);\n};\n\nDES.prototype._encrypt = function _encrypt(state, lStart, rStart, out, off) {\n var l = lStart;\n var r = rStart;\n\n // Apply f() x16 times\n for (var i = 0; i < state.keys.length; i += 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(r, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = r;\n r = (l ^ f) >>> 0;\n l = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(r, l, out, off);\n};\n\nDES.prototype._decrypt = function _decrypt(state, lStart, rStart, out, off) {\n var l = rStart;\n var r = lStart;\n\n // Apply f() x16 times\n for (var i = state.keys.length - 2; i >= 0; i -= 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(l, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = l;\n l = (r ^ f) >>> 0;\n r = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(l, r, out, off);\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar proto = {};\n\nfunction CBCState(iv) {\n assert.equal(iv.length, 8, 'Invalid IV length');\n\n this.iv = new Array(8);\n for (var i = 0; i < this.iv.length; i++)\n this.iv[i] = iv[i];\n}\n\nfunction instantiate(Base) {\n function CBC(options) {\n Base.call(this, options);\n this._cbcInit();\n }\n inherits(CBC, Base);\n\n var keys = Object.keys(proto);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n CBC.prototype[key] = proto[key];\n }\n\n CBC.create = function create(options) {\n return new CBC(options);\n };\n\n return CBC;\n}\n\nexports.instantiate = instantiate;\n\nproto._cbcInit = function _cbcInit() {\n var state = new CBCState(this.options.iv);\n this._cbcState = state;\n};\n\nproto._update = function _update(inp, inOff, out, outOff) {\n var state = this._cbcState;\n var superProto = this.constructor.super_.prototype;\n\n var iv = state.iv;\n if (this.type === 'encrypt') {\n for (var i = 0; i < this.blockSize; i++)\n iv[i] ^= inp[inOff + i];\n\n superProto._update.call(this, iv, 0, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++)\n iv[i] = out[outOff + i];\n } else {\n superProto._update.call(this, inp, inOff, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++)\n out[outOff + i] ^= iv[i];\n\n for (var i = 0; i < this.blockSize; i++)\n iv[i] = inp[inOff + i];\n }\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar Cipher = require('./cipher');\nvar DES = require('./des');\n\nfunction EDEState(type, key) {\n assert.equal(key.length, 24, 'Invalid key length');\n\n var k1 = key.slice(0, 8);\n var k2 = key.slice(8, 16);\n var k3 = key.slice(16, 24);\n\n if (type === 'encrypt') {\n this.ciphers = [\n DES.create({ type: 'encrypt', key: k1 }),\n DES.create({ type: 'decrypt', key: k2 }),\n DES.create({ type: 'encrypt', key: k3 })\n ];\n } else {\n this.ciphers = [\n DES.create({ type: 'decrypt', key: k3 }),\n DES.create({ type: 'encrypt', key: k2 }),\n DES.create({ type: 'decrypt', key: k1 })\n ];\n }\n}\n\nfunction EDE(options) {\n Cipher.call(this, options);\n\n var state = new EDEState(this.type, this.options.key);\n this._edeState = state;\n}\ninherits(EDE, Cipher);\n\nmodule.exports = EDE;\n\nEDE.create = function create(options) {\n return new EDE(options);\n};\n\nEDE.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._edeState;\n\n state.ciphers[0]._update(inp, inOff, out, outOff);\n state.ciphers[1]._update(out, outOff, out, outOff);\n state.ciphers[2]._update(out, outOff, out, outOff);\n};\n\nEDE.prototype._pad = DES.prototype._pad;\nEDE.prototype._unpad = DES.prototype._unpad;\n","'use strict';\n\nexports.utils = require('./des/utils');\nexports.Cipher = require('./des/cipher');\nexports.DES = require('./des/des');\nexports.CBC = require('./des/cbc');\nexports.EDE = require('./des/ede');\n","var CipherBase = require('cipher-base')\nvar des = require('des.js')\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar modes = {\n 'des-ede3-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede3': des.EDE,\n 'des-ede-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede': des.EDE,\n 'des-cbc': des.CBC.instantiate(des.DES),\n 'des-ecb': des.DES\n}\nmodes.des = modes['des-cbc']\nmodes.des3 = modes['des-ede3-cbc']\nmodule.exports = DES\ninherits(DES, CipherBase)\nfunction DES (opts) {\n CipherBase.call(this)\n var modeName = opts.mode.toLowerCase()\n var mode = modes[modeName]\n var type\n if (opts.decrypt) {\n type = 'decrypt'\n } else {\n type = 'encrypt'\n }\n var key = opts.key\n if (!Buffer.isBuffer(key)) {\n key = Buffer.from(key)\n }\n if (modeName === 'des-ede' || modeName === 'des-ede-cbc') {\n key = Buffer.concat([key, key.slice(0, 8)])\n }\n var iv = opts.iv\n if (!Buffer.isBuffer(iv)) {\n iv = Buffer.from(iv)\n }\n this._des = mode.create({\n key: key,\n iv: iv,\n type: type\n })\n}\nDES.prototype._update = function (data) {\n return Buffer.from(this._des.update(data))\n}\nDES.prototype._final = function () {\n return Buffer.from(this._des.final())\n}\n","exports.encrypt = function (self, block) {\n return self._cipher.encryptBlock(block)\n}\n\nexports.decrypt = function (self, block) {\n return self._cipher.decryptBlock(block)\n}\n","module.exports = function xor (a, b) {\n var length = Math.min(a.length, b.length)\n var buffer = new Buffer(length)\n\n for (var i = 0; i < length; ++i) {\n buffer[i] = a[i] ^ b[i]\n }\n\n return buffer\n}\n","var xor = require('buffer-xor')\n\nexports.encrypt = function (self, block) {\n var data = xor(block, self._prev)\n\n self._prev = self._cipher.encryptBlock(data)\n return self._prev\n}\n\nexports.decrypt = function (self, block) {\n var pad = self._prev\n\n self._prev = block\n var out = self._cipher.decryptBlock(block)\n\n return xor(out, pad)\n}\n","var Buffer = require('safe-buffer').Buffer\nvar xor = require('buffer-xor')\n\nfunction encryptStart (self, data, decrypt) {\n var len = data.length\n var out = xor(data, self._cache)\n self._cache = self._cache.slice(len)\n self._prev = Buffer.concat([self._prev, decrypt ? data : out])\n return out\n}\n\nexports.encrypt = function (self, data, decrypt) {\n var out = Buffer.allocUnsafe(0)\n var len\n\n while (data.length) {\n if (self._cache.length === 0) {\n self._cache = self._cipher.encryptBlock(self._prev)\n self._prev = Buffer.allocUnsafe(0)\n }\n\n if (self._cache.length <= data.length) {\n len = self._cache.length\n out = Buffer.concat([out, encryptStart(self, data.slice(0, len), decrypt)])\n data = data.slice(len)\n } else {\n out = Buffer.concat([out, encryptStart(self, data, decrypt)])\n break\n }\n }\n\n return out\n}\n","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad = self._cipher.encryptBlock(self._prev)\n var out = pad[0] ^ byteParam\n\n self._prev = Buffer.concat([\n self._prev.slice(1),\n Buffer.from([decrypt ? byteParam : out])\n ])\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad\n var i = -1\n var len = 8\n var out = 0\n var bit, value\n while (++i < len) {\n pad = self._cipher.encryptBlock(self._prev)\n bit = (byteParam & (1 << (7 - i))) ? 0x80 : 0\n value = pad[0] ^ bit\n out += ((value & 0x80) >> (i % 8))\n self._prev = shiftIn(self._prev, decrypt ? bit : value)\n }\n return out\n}\n\nfunction shiftIn (buffer, value) {\n var len = buffer.length\n var i = -1\n var out = Buffer.allocUnsafe(buffer.length)\n buffer = Buffer.concat([buffer, Buffer.from([value])])\n\n while (++i < len) {\n out[i] = buffer[i] << 1 | buffer[i + 1] >> (7)\n }\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","var xor = require('buffer-xor')\n\nfunction getBlock (self) {\n self._prev = self._cipher.encryptBlock(self._prev)\n return self._prev\n}\n\nexports.encrypt = function (self, chunk) {\n while (self._cache.length < chunk.length) {\n self._cache = Buffer.concat([self._cache, getBlock(self)])\n }\n\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","function incr32 (iv) {\n var len = iv.length\n var item\n while (len--) {\n item = iv.readUInt8(len)\n if (item === 255) {\n iv.writeUInt8(0, len)\n } else {\n item++\n iv.writeUInt8(item, len)\n break\n }\n }\n}\nmodule.exports = incr32\n","var xor = require('buffer-xor')\nvar Buffer = require('safe-buffer').Buffer\nvar incr32 = require('../incr32')\n\nfunction getBlock (self) {\n var out = self._cipher.encryptBlockRaw(self._prev)\n incr32(self._prev)\n return out\n}\n\nvar blockSize = 16\nexports.encrypt = function (self, chunk) {\n var chunkNum = Math.ceil(chunk.length / blockSize)\n var start = self._cache.length\n self._cache = Buffer.concat([\n self._cache,\n Buffer.allocUnsafe(chunkNum * blockSize)\n ])\n for (var i = 0; i < chunkNum; i++) {\n var out = getBlock(self)\n var offset = start + i * blockSize\n self._cache.writeUInt32BE(out[0], offset + 0)\n self._cache.writeUInt32BE(out[1], offset + 4)\n self._cache.writeUInt32BE(out[2], offset + 8)\n self._cache.writeUInt32BE(out[3], offset + 12)\n }\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","var modeModules = {\n ECB: require('./ecb'),\n CBC: require('./cbc'),\n CFB: require('./cfb'),\n CFB8: require('./cfb8'),\n CFB1: require('./cfb1'),\n OFB: require('./ofb'),\n CTR: require('./ctr'),\n GCM: require('./ctr')\n}\n\nvar modes = require('./list.json')\n\nfor (var key in modes) {\n modes[key].module = modeModules[modes[key].mode]\n}\n\nmodule.exports = modes\n","// based on the aes implimentation in triple sec\n// https://github.com/keybase/triplesec\n// which is in turn based on the one from crypto-js\n// https://code.google.com/p/crypto-js/\n\nvar Buffer = require('safe-buffer').Buffer\n\nfunction asUInt32Array (buf) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n\n var len = (buf.length / 4) | 0\n var out = new Array(len)\n\n for (var i = 0; i < len; i++) {\n out[i] = buf.readUInt32BE(i * 4)\n }\n\n return out\n}\n\nfunction scrubVec (v) {\n for (var i = 0; i < v.length; v++) {\n v[i] = 0\n }\n}\n\nfunction cryptBlock (M, keySchedule, SUB_MIX, SBOX, nRounds) {\n var SUB_MIX0 = SUB_MIX[0]\n var SUB_MIX1 = SUB_MIX[1]\n var SUB_MIX2 = SUB_MIX[2]\n var SUB_MIX3 = SUB_MIX[3]\n\n var s0 = M[0] ^ keySchedule[0]\n var s1 = M[1] ^ keySchedule[1]\n var s2 = M[2] ^ keySchedule[2]\n var s3 = M[3] ^ keySchedule[3]\n var t0, t1, t2, t3\n var ksRow = 4\n\n for (var round = 1; round < nRounds; round++) {\n t0 = SUB_MIX0[s0 >>> 24] ^ SUB_MIX1[(s1 >>> 16) & 0xff] ^ SUB_MIX2[(s2 >>> 8) & 0xff] ^ SUB_MIX3[s3 & 0xff] ^ keySchedule[ksRow++]\n t1 = SUB_MIX0[s1 >>> 24] ^ SUB_MIX1[(s2 >>> 16) & 0xff] ^ SUB_MIX2[(s3 >>> 8) & 0xff] ^ SUB_MIX3[s0 & 0xff] ^ keySchedule[ksRow++]\n t2 = SUB_MIX0[s2 >>> 24] ^ SUB_MIX1[(s3 >>> 16) & 0xff] ^ SUB_MIX2[(s0 >>> 8) & 0xff] ^ SUB_MIX3[s1 & 0xff] ^ keySchedule[ksRow++]\n t3 = SUB_MIX0[s3 >>> 24] ^ SUB_MIX1[(s0 >>> 16) & 0xff] ^ SUB_MIX2[(s1 >>> 8) & 0xff] ^ SUB_MIX3[s2 & 0xff] ^ keySchedule[ksRow++]\n s0 = t0\n s1 = t1\n s2 = t2\n s3 = t3\n }\n\n t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]\n t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]\n t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]\n t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]\n t0 = t0 >>> 0\n t1 = t1 >>> 0\n t2 = t2 >>> 0\n t3 = t3 >>> 0\n\n return [t0, t1, t2, t3]\n}\n\n// AES constants\nvar RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]\nvar G = (function () {\n // Compute double table\n var d = new Array(256)\n for (var j = 0; j < 256; j++) {\n if (j < 128) {\n d[j] = j << 1\n } else {\n d[j] = (j << 1) ^ 0x11b\n }\n }\n\n var SBOX = []\n var INV_SBOX = []\n var SUB_MIX = [[], [], [], []]\n var INV_SUB_MIX = [[], [], [], []]\n\n // Walk GF(2^8)\n var x = 0\n var xi = 0\n for (var i = 0; i < 256; ++i) {\n // Compute sbox\n var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4)\n sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63\n SBOX[x] = sx\n INV_SBOX[sx] = x\n\n // Compute multiplication\n var x2 = d[x]\n var x4 = d[x2]\n var x8 = d[x4]\n\n // Compute sub bytes, mix columns tables\n var t = (d[sx] * 0x101) ^ (sx * 0x1010100)\n SUB_MIX[0][x] = (t << 24) | (t >>> 8)\n SUB_MIX[1][x] = (t << 16) | (t >>> 16)\n SUB_MIX[2][x] = (t << 8) | (t >>> 24)\n SUB_MIX[3][x] = t\n\n // Compute inv sub bytes, inv mix columns tables\n t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100)\n INV_SUB_MIX[0][sx] = (t << 24) | (t >>> 8)\n INV_SUB_MIX[1][sx] = (t << 16) | (t >>> 16)\n INV_SUB_MIX[2][sx] = (t << 8) | (t >>> 24)\n INV_SUB_MIX[3][sx] = t\n\n if (x === 0) {\n x = xi = 1\n } else {\n x = x2 ^ d[d[d[x8 ^ x2]]]\n xi ^= d[d[xi]]\n }\n }\n\n return {\n SBOX: SBOX,\n INV_SBOX: INV_SBOX,\n SUB_MIX: SUB_MIX,\n INV_SUB_MIX: INV_SUB_MIX\n }\n})()\n\nfunction AES (key) {\n this._key = asUInt32Array(key)\n this._reset()\n}\n\nAES.blockSize = 4 * 4\nAES.keySize = 256 / 8\nAES.prototype.blockSize = AES.blockSize\nAES.prototype.keySize = AES.keySize\nAES.prototype._reset = function () {\n var keyWords = this._key\n var keySize = keyWords.length\n var nRounds = keySize + 6\n var ksRows = (nRounds + 1) * 4\n\n var keySchedule = []\n for (var k = 0; k < keySize; k++) {\n keySchedule[k] = keyWords[k]\n }\n\n for (k = keySize; k < ksRows; k++) {\n var t = keySchedule[k - 1]\n\n if (k % keySize === 0) {\n t = (t << 8) | (t >>> 24)\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n\n t ^= RCON[(k / keySize) | 0] << 24\n } else if (keySize > 6 && k % keySize === 4) {\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n }\n\n keySchedule[k] = keySchedule[k - keySize] ^ t\n }\n\n var invKeySchedule = []\n for (var ik = 0; ik < ksRows; ik++) {\n var ksR = ksRows - ik\n var tt = keySchedule[ksR - (ik % 4 ? 0 : 4)]\n\n if (ik < 4 || ksR <= 4) {\n invKeySchedule[ik] = tt\n } else {\n invKeySchedule[ik] =\n G.INV_SUB_MIX[0][G.SBOX[tt >>> 24]] ^\n G.INV_SUB_MIX[1][G.SBOX[(tt >>> 16) & 0xff]] ^\n G.INV_SUB_MIX[2][G.SBOX[(tt >>> 8) & 0xff]] ^\n G.INV_SUB_MIX[3][G.SBOX[tt & 0xff]]\n }\n }\n\n this._nRounds = nRounds\n this._keySchedule = keySchedule\n this._invKeySchedule = invKeySchedule\n}\n\nAES.prototype.encryptBlockRaw = function (M) {\n M = asUInt32Array(M)\n return cryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX, this._nRounds)\n}\n\nAES.prototype.encryptBlock = function (M) {\n var out = this.encryptBlockRaw(M)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[1], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[3], 12)\n return buf\n}\n\nAES.prototype.decryptBlock = function (M) {\n M = asUInt32Array(M)\n\n // swap\n var m1 = M[1]\n M[1] = M[3]\n M[3] = m1\n\n var out = cryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX, this._nRounds)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[3], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[1], 12)\n return buf\n}\n\nAES.prototype.scrub = function () {\n scrubVec(this._keySchedule)\n scrubVec(this._invKeySchedule)\n scrubVec(this._key)\n}\n\nmodule.exports.AES = AES\n","var Buffer = require('safe-buffer').Buffer\nvar ZEROES = Buffer.alloc(16, 0)\n\nfunction toArray (buf) {\n return [\n buf.readUInt32BE(0),\n buf.readUInt32BE(4),\n buf.readUInt32BE(8),\n buf.readUInt32BE(12)\n ]\n}\n\nfunction fromArray (out) {\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0] >>> 0, 0)\n buf.writeUInt32BE(out[1] >>> 0, 4)\n buf.writeUInt32BE(out[2] >>> 0, 8)\n buf.writeUInt32BE(out[3] >>> 0, 12)\n return buf\n}\n\nfunction GHASH (key) {\n this.h = key\n this.state = Buffer.alloc(16, 0)\n this.cache = Buffer.allocUnsafe(0)\n}\n\n// from http://bitwiseshiftleft.github.io/sjcl/doc/symbols/src/core_gcm.js.html\n// by Juho Vähä-Herttua\nGHASH.prototype.ghash = function (block) {\n var i = -1\n while (++i < block.length) {\n this.state[i] ^= block[i]\n }\n this._multiply()\n}\n\nGHASH.prototype._multiply = function () {\n var Vi = toArray(this.h)\n var Zi = [0, 0, 0, 0]\n var j, xi, lsbVi\n var i = -1\n while (++i < 128) {\n xi = (this.state[~~(i / 8)] & (1 << (7 - (i % 8)))) !== 0\n if (xi) {\n // Z_i+1 = Z_i ^ V_i\n Zi[0] ^= Vi[0]\n Zi[1] ^= Vi[1]\n Zi[2] ^= Vi[2]\n Zi[3] ^= Vi[3]\n }\n\n // Store the value of LSB(V_i)\n lsbVi = (Vi[3] & 1) !== 0\n\n // V_i+1 = V_i >> 1\n for (j = 3; j > 0; j--) {\n Vi[j] = (Vi[j] >>> 1) | ((Vi[j - 1] & 1) << 31)\n }\n Vi[0] = Vi[0] >>> 1\n\n // If LSB(V_i) is 1, V_i+1 = (V_i >> 1) ^ R\n if (lsbVi) {\n Vi[0] = Vi[0] ^ (0xe1 << 24)\n }\n }\n this.state = fromArray(Zi)\n}\n\nGHASH.prototype.update = function (buf) {\n this.cache = Buffer.concat([this.cache, buf])\n var chunk\n while (this.cache.length >= 16) {\n chunk = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n this.ghash(chunk)\n }\n}\n\nGHASH.prototype.final = function (abl, bl) {\n if (this.cache.length) {\n this.ghash(Buffer.concat([this.cache, ZEROES], 16))\n }\n\n this.ghash(fromArray([0, abl, 0, bl]))\n return this.state\n}\n\nmodule.exports = GHASH\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\nvar GHASH = require('./ghash')\nvar xor = require('buffer-xor')\nvar incr32 = require('./incr32')\n\nfunction xorTest (a, b) {\n var out = 0\n if (a.length !== b.length) out++\n\n var len = Math.min(a.length, b.length)\n for (var i = 0; i < len; ++i) {\n out += (a[i] ^ b[i])\n }\n\n return out\n}\n\nfunction calcIv (self, iv, ck) {\n if (iv.length === 12) {\n self._finID = Buffer.concat([iv, Buffer.from([0, 0, 0, 1])])\n return Buffer.concat([iv, Buffer.from([0, 0, 0, 2])])\n }\n var ghash = new GHASH(ck)\n var len = iv.length\n var toPad = len % 16\n ghash.update(iv)\n if (toPad) {\n toPad = 16 - toPad\n ghash.update(Buffer.alloc(toPad, 0))\n }\n ghash.update(Buffer.alloc(8, 0))\n var ivBits = len * 8\n var tail = Buffer.alloc(8)\n tail.writeUIntBE(ivBits, 0, 8)\n ghash.update(tail)\n self._finID = ghash.state\n var out = Buffer.from(self._finID)\n incr32(out)\n return out\n}\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n var h = Buffer.alloc(4, 0)\n\n this._cipher = new aes.AES(key)\n var ck = this._cipher.encryptBlock(h)\n this._ghash = new GHASH(ck)\n iv = calcIv(this, iv, ck)\n\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._alen = 0\n this._len = 0\n this._mode = mode\n\n this._authTag = null\n this._called = false\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n if (!this._called && this._alen) {\n var rump = 16 - (this._alen % 16)\n if (rump < 16) {\n rump = Buffer.alloc(rump, 0)\n this._ghash.update(rump)\n }\n }\n\n this._called = true\n var out = this._mode.encrypt(this, chunk)\n if (this._decrypt) {\n this._ghash.update(chunk)\n } else {\n this._ghash.update(out)\n }\n this._len += chunk.length\n return out\n}\n\nStreamCipher.prototype._final = function () {\n if (this._decrypt && !this._authTag) throw new Error('Unsupported state or unable to authenticate data')\n\n var tag = xor(this._ghash.final(this._alen * 8, this._len * 8), this._cipher.encryptBlock(this._finID))\n if (this._decrypt && xorTest(tag, this._authTag)) throw new Error('Unsupported state or unable to authenticate data')\n\n this._authTag = tag\n this._cipher.scrub()\n}\n\nStreamCipher.prototype.getAuthTag = function getAuthTag () {\n if (this._decrypt || !Buffer.isBuffer(this._authTag)) throw new Error('Attempting to get auth tag in unsupported state')\n\n return this._authTag\n}\n\nStreamCipher.prototype.setAuthTag = function setAuthTag (tag) {\n if (!this._decrypt) throw new Error('Attempting to set auth tag in unsupported state')\n\n this._authTag = tag\n}\n\nStreamCipher.prototype.setAAD = function setAAD (buf) {\n if (this._called) throw new Error('Attempting to set AAD in unsupported state')\n\n this._ghash.update(buf)\n this._alen += buf.length\n}\n\nmodule.exports = StreamCipher\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\n\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._mode = mode\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n return this._mode.encrypt(this, chunk, this._decrypt)\n}\n\nStreamCipher.prototype._final = function () {\n this._cipher.scrub()\n}\n\nmodule.exports = StreamCipher\n","var Buffer = require('safe-buffer').Buffer\nvar MD5 = require('md5.js')\n\n/* eslint-disable camelcase */\nfunction EVP_BytesToKey (password, salt, keyBits, ivLen) {\n if (!Buffer.isBuffer(password)) password = Buffer.from(password, 'binary')\n if (salt) {\n if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, 'binary')\n if (salt.length !== 8) throw new RangeError('salt should be Buffer with 8 byte length')\n }\n\n var keyLen = keyBits / 8\n var key = Buffer.alloc(keyLen)\n var iv = Buffer.alloc(ivLen || 0)\n var tmp = Buffer.alloc(0)\n\n while (keyLen > 0 || ivLen > 0) {\n var hash = new MD5()\n hash.update(tmp)\n hash.update(password)\n if (salt) hash.update(salt)\n tmp = hash.digest()\n\n var used = 0\n\n if (keyLen > 0) {\n var keyStart = key.length - keyLen\n used = Math.min(keyLen, tmp.length)\n tmp.copy(key, keyStart, 0, used)\n keyLen -= used\n }\n\n if (used < tmp.length && ivLen > 0) {\n var ivStart = iv.length - ivLen\n var length = Math.min(ivLen, tmp.length - used)\n tmp.copy(iv, ivStart, used, used + length)\n ivLen -= length\n }\n }\n\n tmp.fill(0)\n return { key: key, iv: iv }\n}\n\nmodule.exports = EVP_BytesToKey\n","var MODES = require('./modes')\nvar AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Cipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Cipher, Transform)\n\nCipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n\n while ((chunk = this._cache.get())) {\n thing = this._mode.encrypt(this, chunk)\n out.push(thing)\n }\n\n return Buffer.concat(out)\n}\n\nvar PADDING = Buffer.alloc(16, 0x10)\n\nCipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n chunk = this._mode.encrypt(this, chunk)\n this._cipher.scrub()\n return chunk\n }\n\n if (!chunk.equals(PADDING)) {\n this._cipher.scrub()\n throw new Error('data not multiple of block length')\n }\n}\n\nCipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function () {\n if (this.cache.length > 15) {\n var out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n return null\n}\n\nSplitter.prototype.flush = function () {\n var len = 16 - this.cache.length\n var padBuff = Buffer.allocUnsafe(len)\n\n var i = -1\n while (++i < len) {\n padBuff.writeUInt8(len, i)\n }\n\n return Buffer.concat([this.cache, padBuff])\n}\n\nfunction createCipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv)\n }\n\n return new Cipher(config.module, password, iv)\n}\n\nfunction createCipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createCipheriv = createCipheriv\nexports.createCipher = createCipher\n","var AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar MODES = require('./modes')\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Decipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._last = void 0\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Decipher, Transform)\n\nDecipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n while ((chunk = this._cache.get(this._autopadding))) {\n thing = this._mode.decrypt(this, chunk)\n out.push(thing)\n }\n return Buffer.concat(out)\n}\n\nDecipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n return unpad(this._mode.decrypt(this, chunk))\n } else if (chunk) {\n throw new Error('data not multiple of block length')\n }\n}\n\nDecipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function (autoPadding) {\n var out\n if (autoPadding) {\n if (this.cache.length > 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n } else {\n if (this.cache.length >= 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n }\n\n return null\n}\n\nSplitter.prototype.flush = function () {\n if (this.cache.length) return this.cache\n}\n\nfunction unpad (last) {\n var padded = last[15]\n if (padded < 1 || padded > 16) {\n throw new Error('unable to decrypt data')\n }\n var i = -1\n while (++i < padded) {\n if (last[(i + (16 - padded))] !== padded) {\n throw new Error('unable to decrypt data')\n }\n }\n if (padded === 16) return\n\n return last.slice(0, 16 - padded)\n}\n\nfunction createDecipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv, true)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv, true)\n }\n\n return new Decipher(config.module, password, iv)\n}\n\nfunction createDecipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createDecipher = createDecipher\nexports.createDecipheriv = createDecipheriv\n","var ciphers = require('./encrypter')\nvar deciphers = require('./decrypter')\nvar modes = require('./modes/list.json')\n\nfunction getCiphers () {\n return Object.keys(modes)\n}\n\nexports.createCipher = exports.Cipher = ciphers.createCipher\nexports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv\nexports.createDecipher = exports.Decipher = deciphers.createDecipher\nexports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","exports['des-ecb'] = {\n key: 8,\n iv: 0\n}\nexports['des-cbc'] = exports.des = {\n key: 8,\n iv: 8\n}\nexports['des-ede3-cbc'] = exports.des3 = {\n key: 24,\n iv: 8\n}\nexports['des-ede3'] = {\n key: 24,\n iv: 0\n}\nexports['des-ede-cbc'] = {\n key: 16,\n iv: 8\n}\nexports['des-ede'] = {\n key: 16,\n iv: 0\n}\n","var DES = require('browserify-des')\nvar aes = require('browserify-aes/browser')\nvar aesModes = require('browserify-aes/modes')\nvar desModes = require('browserify-des/modes')\nvar ebtk = require('evp_bytestokey')\n\nfunction createCipher (suite, password) {\n suite = suite.toLowerCase()\n\n var keyLen, ivLen\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key\n ivLen = aesModes[suite].iv\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8\n ivLen = desModes[suite].iv\n } else {\n throw new TypeError('invalid suite type')\n }\n\n var keys = ebtk(password, false, keyLen, ivLen)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createDecipher (suite, password) {\n suite = suite.toLowerCase()\n\n var keyLen, ivLen\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key\n ivLen = aesModes[suite].iv\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8\n ivLen = desModes[suite].iv\n } else {\n throw new TypeError('invalid suite type')\n }\n\n var keys = ebtk(password, false, keyLen, ivLen)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createCipheriv (suite, key, iv) {\n suite = suite.toLowerCase()\n if (aesModes[suite]) return aes.createCipheriv(suite, key, iv)\n if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite })\n\n throw new TypeError('invalid suite type')\n}\n\nfunction createDecipheriv (suite, key, iv) {\n suite = suite.toLowerCase()\n if (aesModes[suite]) return aes.createDecipheriv(suite, key, iv)\n if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite, decrypt: true })\n\n throw new TypeError('invalid suite type')\n}\n\nfunction getCiphers () {\n return Object.keys(desModes).concat(aes.getCiphers())\n}\n\nexports.createCipher = exports.Cipher = createCipher\nexports.createCipheriv = exports.Cipheriv = createCipheriv\nexports.createDecipher = exports.Decipher = createDecipher\nexports.createDecipheriv = exports.Decipheriv = createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","var r;\n\nmodule.exports = function rand(len) {\n if (!r)\n r = new Rand(null);\n\n return r.generate(len);\n};\n\nfunction Rand(rand) {\n this.rand = rand;\n}\nmodule.exports.Rand = Rand;\n\nRand.prototype.generate = function generate(len) {\n return this._rand(len);\n};\n\n// Emulate crypto API using randy\nRand.prototype._rand = function _rand(n) {\n if (this.rand.getBytes)\n return this.rand.getBytes(n);\n\n var res = new Uint8Array(n);\n for (var i = 0; i < res.length; i++)\n res[i] = this.rand.getByte();\n return res;\n};\n\nif (typeof self === 'object') {\n if (self.crypto && self.crypto.getRandomValues) {\n // Modern browsers\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.crypto.getRandomValues(arr);\n return arr;\n };\n } else if (self.msCrypto && self.msCrypto.getRandomValues) {\n // IE\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.msCrypto.getRandomValues(arr);\n return arr;\n };\n\n // Safari's WebWorkers do not have `crypto`\n } else if (typeof window === 'object') {\n // Old junk\n Rand.prototype._rand = function() {\n throw new Error('Not implemented yet');\n };\n }\n} else {\n // Node.js or Web worker with no crypto support\n try {\n var crypto = require('crypto');\n if (typeof crypto.randomBytes !== 'function')\n throw new Error('Not supported');\n\n Rand.prototype._rand = function _rand(n) {\n return crypto.randomBytes(n);\n };\n } catch (e) {\n }\n}\n","var bn = require('bn.js');\nvar brorand = require('brorand');\n\nfunction MillerRabin(rand) {\n this.rand = rand || new brorand.Rand();\n}\nmodule.exports = MillerRabin;\n\nMillerRabin.create = function create(rand) {\n return new MillerRabin(rand);\n};\n\nMillerRabin.prototype._randbelow = function _randbelow(n) {\n var len = n.bitLength();\n var min_bytes = Math.ceil(len / 8);\n\n // Generage random bytes until a number less than n is found.\n // This ensures that 0..n-1 have an equal probability of being selected.\n do\n var a = new bn(this.rand.generate(min_bytes));\n while (a.cmp(n) >= 0);\n\n return a;\n};\n\nMillerRabin.prototype._randrange = function _randrange(start, stop) {\n // Generate a random number greater than or equal to start and less than stop.\n var size = stop.sub(start);\n return start.add(this._randbelow(size));\n};\n\nMillerRabin.prototype.test = function test(n, k, cb) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n var prime = true;\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n if (cb)\n cb(a);\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return false;\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s)\n return false;\n }\n\n return prime;\n};\n\nMillerRabin.prototype.getDivisor = function getDivisor(n, k) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n\n var g = n.gcd(a);\n if (g.cmpn(1) !== 0)\n return g;\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return x.fromRed().subn(1).gcd(n);\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s) {\n x = x.redSqr();\n return x.fromRed().subn(1).gcd(n);\n }\n }\n\n return false;\n};\n","var randomBytes = require('randombytes');\nmodule.exports = findPrime;\nfindPrime.simpleSieve = simpleSieve;\nfindPrime.fermatTest = fermatTest;\nvar BN = require('bn.js');\nvar TWENTYFOUR = new BN(24);\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar ONE = new BN(1);\nvar TWO = new BN(2);\nvar FIVE = new BN(5);\nvar SIXTEEN = new BN(16);\nvar EIGHT = new BN(8);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar ELEVEN = new BN(11);\nvar FOUR = new BN(4);\nvar TWELVE = new BN(12);\nvar primes = null;\n\nfunction _getPrimes() {\n if (primes !== null)\n return primes;\n\n var limit = 0x100000;\n var res = [];\n res[0] = 2;\n for (var i = 1, k = 3; k < limit; k += 2) {\n var sqrt = Math.ceil(Math.sqrt(k));\n for (var j = 0; j < i && res[j] <= sqrt; j++)\n if (k % res[j] === 0)\n break;\n\n if (i !== j && res[j] <= sqrt)\n continue;\n\n res[i++] = k;\n }\n primes = res;\n return res;\n}\n\nfunction simpleSieve(p) {\n var primes = _getPrimes();\n\n for (var i = 0; i < primes.length; i++)\n if (p.modn(primes[i]) === 0) {\n if (p.cmpn(primes[i]) === 0) {\n return true;\n } else {\n return false;\n }\n }\n\n return true;\n}\n\nfunction fermatTest(p) {\n var red = BN.mont(p);\n return TWO.toRed(red).redPow(p.subn(1)).fromRed().cmpn(1) === 0;\n}\n\nfunction findPrime(bits, gen) {\n if (bits < 16) {\n // this is what openssl does\n if (gen === 2 || gen === 5) {\n return new BN([0x8c, 0x7b]);\n } else {\n return new BN([0x8c, 0x27]);\n }\n }\n gen = new BN(gen);\n\n var num, n2;\n\n while (true) {\n num = new BN(randomBytes(Math.ceil(bits / 8)));\n while (num.bitLength() > bits) {\n num.ishrn(1);\n }\n if (num.isEven()) {\n num.iadd(ONE);\n }\n if (!num.testn(1)) {\n num.iadd(TWO);\n }\n if (!gen.cmp(TWO)) {\n while (num.mod(TWENTYFOUR).cmp(ELEVEN)) {\n num.iadd(FOUR);\n }\n } else if (!gen.cmp(FIVE)) {\n while (num.mod(TEN).cmp(THREE)) {\n num.iadd(FOUR);\n }\n }\n n2 = num.shrn(1);\n if (simpleSieve(n2) && simpleSieve(num) &&\n fermatTest(n2) && fermatTest(num) &&\n millerRabin.test(n2) && millerRabin.test(num)) {\n return num;\n }\n }\n\n}\n","var BN = require('bn.js');\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar TWENTYFOUR = new BN(24);\nvar ELEVEN = new BN(11);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar primes = require('./generatePrime');\nvar randomBytes = require('randombytes');\nmodule.exports = DH;\n\nfunction setPublicKey(pub, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc);\n }\n this._pub = new BN(pub);\n return this;\n}\n\nfunction setPrivateKey(priv, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc);\n }\n this._priv = new BN(priv);\n return this;\n}\n\nvar primeCache = {};\nfunction checkPrime(prime, generator) {\n var gen = generator.toString('hex');\n var hex = [gen, prime.toString(16)].join('_');\n if (hex in primeCache) {\n return primeCache[hex];\n }\n var error = 0;\n\n if (prime.isEven() ||\n !primes.simpleSieve ||\n !primes.fermatTest(prime) ||\n !millerRabin.test(prime)) {\n //not a prime so +1\n error += 1;\n\n if (gen === '02' || gen === '05') {\n // we'd be able to check the generator\n // it would fail so +8\n error += 8;\n } else {\n //we wouldn't be able to test the generator\n // so +4\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n }\n if (!millerRabin.test(prime.shrn(1))) {\n //not a safe prime\n error += 2;\n }\n var rem;\n switch (gen) {\n case '02':\n if (prime.mod(TWENTYFOUR).cmp(ELEVEN)) {\n // unsuidable generator\n error += 8;\n }\n break;\n case '05':\n rem = prime.mod(TEN);\n if (rem.cmp(THREE) && rem.cmp(SEVEN)) {\n // prime mod 10 needs to equal 3 or 7\n error += 8;\n }\n break;\n default:\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n}\n\nfunction DH(prime, generator, malleable) {\n this.setGenerator(generator);\n this.__prime = new BN(prime);\n this._prime = BN.mont(this.__prime);\n this._primeLen = prime.length;\n this._pub = undefined;\n this._priv = undefined;\n this._primeCode = undefined;\n if (malleable) {\n this.setPublicKey = setPublicKey;\n this.setPrivateKey = setPrivateKey;\n } else {\n this._primeCode = 8;\n }\n}\nObject.defineProperty(DH.prototype, 'verifyError', {\n enumerable: true,\n get: function () {\n if (typeof this._primeCode !== 'number') {\n this._primeCode = checkPrime(this.__prime, this.__gen);\n }\n return this._primeCode;\n }\n});\nDH.prototype.generateKeys = function () {\n if (!this._priv) {\n this._priv = new BN(randomBytes(this._primeLen));\n }\n this._pub = this._gen.toRed(this._prime).redPow(this._priv).fromRed();\n return this.getPublicKey();\n};\n\nDH.prototype.computeSecret = function (other) {\n other = new BN(other);\n other = other.toRed(this._prime);\n var secret = other.redPow(this._priv).fromRed();\n var out = new Buffer(secret.toArray());\n var prime = this.getPrime();\n if (out.length < prime.length) {\n var front = new Buffer(prime.length - out.length);\n front.fill(0);\n out = Buffer.concat([front, out]);\n }\n return out;\n};\n\nDH.prototype.getPublicKey = function getPublicKey(enc) {\n return formatReturnValue(this._pub, enc);\n};\n\nDH.prototype.getPrivateKey = function getPrivateKey(enc) {\n return formatReturnValue(this._priv, enc);\n};\n\nDH.prototype.getPrime = function (enc) {\n return formatReturnValue(this.__prime, enc);\n};\n\nDH.prototype.getGenerator = function (enc) {\n return formatReturnValue(this._gen, enc);\n};\n\nDH.prototype.setGenerator = function (gen, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(gen)) {\n gen = new Buffer(gen, enc);\n }\n this.__gen = gen;\n this._gen = new BN(gen);\n return this;\n};\n\nfunction formatReturnValue(bn, enc) {\n var buf = new Buffer(bn.toArray());\n if (!enc) {\n return buf;\n } else {\n return buf.toString(enc);\n }\n}\n","var generatePrime = require('./lib/generatePrime')\nvar primes = require('./lib/primes.json')\n\nvar DH = require('./lib/dh')\n\nfunction getDiffieHellman (mod) {\n var prime = new Buffer(primes[mod].prime, 'hex')\n var gen = new Buffer(primes[mod].gen, 'hex')\n\n return new DH(prime, gen)\n}\n\nvar ENCODINGS = {\n 'binary': true, 'hex': true, 'base64': true\n}\n\nfunction createDiffieHellman (prime, enc, generator, genc) {\n if (Buffer.isBuffer(enc) || ENCODINGS[enc] === undefined) {\n return createDiffieHellman(prime, 'binary', enc, generator)\n }\n\n enc = enc || 'binary'\n genc = genc || 'binary'\n generator = generator || new Buffer([2])\n\n if (!Buffer.isBuffer(generator)) {\n generator = new Buffer(generator, genc)\n }\n\n if (typeof prime === 'number') {\n return new DH(generatePrime(prime, generator), generator, true)\n }\n\n if (!Buffer.isBuffer(prime)) {\n prime = new Buffer(prime, enc)\n }\n\n return new DH(prime, generator, true)\n}\n\nexports.DiffieHellmanGroup = exports.createDiffieHellmanGroup = exports.getDiffieHellman = getDiffieHellman\nexports.createDiffieHellman = exports.DiffieHellman = createDiffieHellman\n","'use strict';\n\nif (typeof process === 'undefined' ||\n !process.version ||\n process.version.indexOf('v0.') === 0 ||\n process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = { nextTick: nextTick };\n} else {\n module.exports = process\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n var len = arguments.length;\n var args, i;\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n default:\n args = new Array(len - 1);\n i = 0;\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\n\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","module.exports = require('events').EventEmitter;\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('buffer').Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n","'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Buffer = require('safe-buffer').Buffer;\nvar util = require('util');\n\nfunction copyBuffer(src, target, offset) {\n src.copy(target, offset);\n}\n\nmodule.exports = function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n BufferList.prototype.push = function push(v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n };\n\n BufferList.prototype.unshift = function unshift(v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n };\n\n BufferList.prototype.shift = function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n };\n\n BufferList.prototype.clear = function clear() {\n this.head = this.tail = null;\n this.length = 0;\n };\n\n BufferList.prototype.join = function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n };\n\n BufferList.prototype.concat = function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n };\n\n return BufferList;\n}();\n\nif (util && util.inspect && util.inspect.custom) {\n module.exports.prototype[util.inspect.custom] = function () {\n var obj = util.inspect({ length: this.length });\n return this.constructor.name + ' ' + obj;\n };\n}","'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n pna.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n pna.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n pna.nextTick(emitErrorNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n pna.nextTick(emitErrorNT, _this, err);\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n\n // reuse the free corkReq.\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/**/\n\nmodule.exports = Duplex;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n pna.nextTick(cb, err);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Readable;\n\n/**/\nvar isArray = require('isarray');\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, { hasUnpiped: false });\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark;\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\n\nvar BN = require('bn.js');\nvar randomBytes = require('randombytes');\nvar Buffer = require('safe-buffer').Buffer;\n\nfunction getr(priv) {\n\tvar len = priv.modulus.byteLength();\n\tvar r;\n\tdo {\n\t\tr = new BN(randomBytes(len));\n\t} while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2));\n\treturn r;\n}\n\nfunction blind(priv) {\n\tvar r = getr(priv);\n\tvar blinder = r.toRed(BN.mont(priv.modulus)).redPow(new BN(priv.publicExponent)).fromRed();\n\treturn { blinder: blinder, unblinder: r.invm(priv.modulus) };\n}\n\nfunction crt(msg, priv) {\n\tvar blinds = blind(priv);\n\tvar len = priv.modulus.byteLength();\n\tvar blinded = new BN(msg).mul(blinds.blinder).umod(priv.modulus);\n\tvar c1 = blinded.toRed(BN.mont(priv.prime1));\n\tvar c2 = blinded.toRed(BN.mont(priv.prime2));\n\tvar qinv = priv.coefficient;\n\tvar p = priv.prime1;\n\tvar q = priv.prime2;\n\tvar m1 = c1.redPow(priv.exponent1).fromRed();\n\tvar m2 = c2.redPow(priv.exponent2).fromRed();\n\tvar h = m1.isub(m2).imul(qinv).umod(p).imul(q);\n\treturn m2.iadd(h).imul(blinds.unblinder).umod(priv.modulus).toArrayLike(Buffer, 'be', len);\n}\ncrt.getr = getr;\n\nmodule.exports = crt;\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg !== 'string') {\n for (var i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n return res;\n }\n if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (var i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n } else {\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n var hi = c >> 8;\n var lo = c & 0xff;\n if (hi)\n res.push(hi, lo);\n else\n res.push(lo);\n }\n }\n return res;\n}\nutils.toArray = toArray;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n if (enc === 'hex')\n return toHex(arr);\n else\n return arr;\n};\n","'use strict';\n\nvar utils = exports;\nvar BN = require('bn.js');\nvar minAssert = require('minimalistic-assert');\nvar minUtils = require('minimalistic-crypto-utils');\n\nutils.assert = minAssert;\nutils.toArray = minUtils.toArray;\nutils.zero2 = minUtils.zero2;\nutils.toHex = minUtils.toHex;\nutils.encode = minUtils.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n var i;\n for (i = 0; i < naf.length; i += 1) {\n naf[i] = 0;\n }\n\n var ws = 1 << (w + 1);\n var k = num.clone();\n\n for (i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n [],\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n var m8;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n var j;\n var nafW;\n for (j = 0; j < naf.length; j += doubles.step) {\n nafW = 0;\n for (var l = j + doubles.step - 1; l >= j; l--)\n nafW = (nafW << 1) + naf[l];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (j = 0; j < repr.length; j++) {\n nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var l = 0; i >= 0 && naf[i] === 0; i--)\n l++;\n if (i >= 0)\n l++;\n acc = acc.dblp(l);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n var i;\n var j;\n var p;\n for (i = 0; i < len; i++) {\n p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b], /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3, /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (j = 0; j < len; j++) {\n var z = tmp[j];\n p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len));\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null,\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles,\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res,\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction ShortCurve(conf) {\n Base.call(this, 'short', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n\n // If the curve is endomorphic, precalculate beta and lambda\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits(ShortCurve, Base);\nmodule.exports = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n\n // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n // Choose the smallest beta\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n\n // Get basis vectors, used for balanced length-two representation\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16),\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis,\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [ l1, l2 ];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n\n // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1);\n\n // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n var a0;\n var b0;\n // First vector\n var a1;\n var b1;\n // Second vector\n var a2;\n var b2;\n\n var prevR;\n var i = 0;\n var r;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r;\n\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r.neg();\n b2 = x;\n\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n\n // Normalize signs\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 },\n ];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n\n // Calculate answer\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1: k1, k2: k2 };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf)\n return true;\n\n var x = point.x;\n var y = point.y;\n\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd =\n function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n\n // Clean-up references to points and coefficients\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n };\n\nfunction Point(curve, x, y, isRed) {\n Base.BasePoint.call(this, curve, 'affine');\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n // Force redgomery representation when loading from JSON\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits(Point, Base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo)\n return;\n\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul),\n },\n };\n }\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [ this.x, this.y ];\n\n return [ this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1),\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1),\n },\n } ];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string')\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [ res ].concat(pre.doubles.points.map(obj2point)),\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [ res ].concat(pre.naf.points.map(obj2point)),\n },\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf)\n return p;\n\n // P + O = P\n if (p.inf)\n return this;\n\n // P + P = 2P\n if (this.eq(p))\n return this.dbl();\n\n // P + (-P) = O\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n\n // P + Q = O\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n\n // 2P = O\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n\n var a = this.curve.a;\n\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([ this ], [ k ]);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p ||\n this.inf === p.inf &&\n (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate),\n },\n };\n }\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n Base.BasePoint.call(this, curve, 'jacobian');\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n\n this.zOne = this.z === this.curve.one;\n}\ninherits(JPoint, Base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity())\n return p;\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 12M + 4S + 7A\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity())\n return p.toJ();\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 8M + 3S + 7A\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n\n var i;\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n for (i = 0; i < pow; i++)\n r = r.dbl();\n return r;\n }\n\n // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n // Reuse results\n var jyd = jy.redAdd(jy);\n for (i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // T = M ^ 2 - 2*S\n var t = m.redSqr().redISub(s).redISub(s);\n\n // 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2*Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = B^2\n var c = b.redSqr();\n // D = 2 * ((X1 + B)^2 - A - C)\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n // E = 3 * A\n var e = a.redAdd(a).redIAdd(a);\n // F = E^2\n var f = e.redSqr();\n\n // 8 * C\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n\n // X3 = F - 2 * D\n nx = f.redISub(d).redISub(d);\n // Y3 = E * (D - X3) - 8 * C\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n // Z3 = 2 * Y1 * Z1\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n // T = M^2 - 2 * S\n var t = m.redSqr().redISub(s).redISub(s);\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2 * Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n\n // delta = Z1^2\n var delta = this.z.redSqr();\n // gamma = Y1^2\n var gamma = this.y.redSqr();\n // beta = X1 * gamma\n var beta = this.x.redMul(gamma);\n // alpha = 3 * (X1 - delta) * (X1 + delta)\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n // X3 = alpha^2 - 8 * beta\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n // Z3 = (Y1 + Z1)^2 - gamma - delta\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n\n // 4M + 6S + 10A\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // ZZ = Z1^2\n var zz = this.z.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // M = 3 * XX + a * ZZ2; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // MM = M^2\n var mm = m.redSqr();\n // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n // EE = E^2\n var ee = e.redSqr();\n // T = 16*YYYY\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n // U = (M + E)^2 - MM - EE - T\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n // X3 = 4 * (X1 * EE - 4 * YY * U)\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n // Z3 = (Z1 + E)^2 - ZZ - EE\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine')\n return this.eq(p.toJ());\n\n if (this === p)\n return true;\n\n // x1 * z2^2 == x2 * z1^2\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n\n // y1 * z2^3 == y2 * z1^3\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar utils = require('../utils');\n\nfunction MontCurve(conf) {\n Base.call(this, 'mont', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.i4 = new BN(4).toRed(this.red).redInvm();\n this.two = new BN(2).toRed(this.red);\n this.a24 = this.i4.redMul(this.a.redAdd(this.two));\n}\ninherits(MontCurve, Base);\nmodule.exports = MontCurve;\n\nMontCurve.prototype.validate = function validate(point) {\n var x = point.normalize().x;\n var x2 = x.redSqr();\n var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);\n var y = rhs.redSqrt();\n\n return y.redSqr().cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, z) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && z === null) {\n this.x = this.curve.one;\n this.z = this.curve.zero;\n } else {\n this.x = new BN(x, 16);\n this.z = new BN(z, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n }\n}\ninherits(Point, Base.BasePoint);\n\nMontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n return this.point(utils.toArray(bytes, enc), 1);\n};\n\nMontCurve.prototype.point = function point(x, z) {\n return new Point(this, x, z);\n};\n\nMontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nPoint.prototype.precompute = function precompute() {\n // No-op\n};\n\nPoint.prototype._encode = function _encode() {\n return this.getX().toArray('be', this.curve.p.byteLength());\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1] || curve.one);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n\nPoint.prototype.dbl = function dbl() {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-1987-m-3\n // 2M + 2S + 4A\n\n // A = X1 + Z1\n var a = this.x.redAdd(this.z);\n // AA = A^2\n var aa = a.redSqr();\n // B = X1 - Z1\n var b = this.x.redSub(this.z);\n // BB = B^2\n var bb = b.redSqr();\n // C = AA - BB\n var c = aa.redSub(bb);\n // X3 = AA * BB\n var nx = aa.redMul(bb);\n // Z3 = C * (BB + A24 * C)\n var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.add = function add() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.diffAdd = function diffAdd(p, diff) {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-1987-m-3\n // 4M + 2S + 6A\n\n // A = X2 + Z2\n var a = this.x.redAdd(this.z);\n // B = X2 - Z2\n var b = this.x.redSub(this.z);\n // C = X3 + Z3\n var c = p.x.redAdd(p.z);\n // D = X3 - Z3\n var d = p.x.redSub(p.z);\n // DA = D * A\n var da = d.redMul(a);\n // CB = C * B\n var cb = c.redMul(b);\n // X5 = Z1 * (DA + CB)^2\n var nx = diff.z.redMul(da.redAdd(cb).redSqr());\n // Z5 = X1 * (DA - CB)^2\n var nz = diff.x.redMul(da.redISub(cb).redSqr());\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.mul = function mul(k) {\n var t = k.clone();\n var a = this; // (N / 2) * Q + Q\n var b = this.curve.point(null, null); // (N / 2) * Q\n var c = this; // Q\n\n for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1))\n bits.push(t.andln(1));\n\n for (var i = bits.length - 1; i >= 0; i--) {\n if (bits[i] === 0) {\n // N * Q + Q = ((N / 2) * Q + Q)) + (N / 2) * Q\n a = a.diffAdd(b, c);\n // N * Q = 2 * ((N / 2) * Q + Q))\n b = b.dbl();\n } else {\n // N * Q = ((N / 2) * Q + Q) + ((N / 2) * Q)\n b = a.diffAdd(b, c);\n // N * Q + Q = 2 * ((N / 2) * Q + Q)\n a = a.dbl();\n }\n }\n return b;\n};\n\nPoint.prototype.mulAdd = function mulAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.jumlAdd = function jumlAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.eq = function eq(other) {\n return this.getX().cmp(other.getX()) === 0;\n};\n\nPoint.prototype.normalize = function normalize() {\n this.x = this.x.redMul(this.z.redInvm());\n this.z = this.curve.one;\n return this;\n};\n\nPoint.prototype.getX = function getX() {\n // Normalize coordinates\n this.normalize();\n\n return this.x.fromRed();\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction EdwardsCurve(conf) {\n // NOTE: Important as we are creating point in Base.call()\n this.twisted = (conf.a | 0) !== 1;\n this.mOneA = this.twisted && (conf.a | 0) === -1;\n this.extended = this.mOneA;\n\n Base.call(this, 'edwards', conf);\n\n this.a = new BN(conf.a, 16).umod(this.red.m);\n this.a = this.a.toRed(this.red);\n this.c = new BN(conf.c, 16).toRed(this.red);\n this.c2 = this.c.redSqr();\n this.d = new BN(conf.d, 16).toRed(this.red);\n this.dd = this.d.redAdd(this.d);\n\n assert(!this.twisted || this.c.fromRed().cmpn(1) === 0);\n this.oneC = (conf.c | 0) === 1;\n}\ninherits(EdwardsCurve, Base);\nmodule.exports = EdwardsCurve;\n\nEdwardsCurve.prototype._mulA = function _mulA(num) {\n if (this.mOneA)\n return num.redNeg();\n else\n return this.a.redMul(num);\n};\n\nEdwardsCurve.prototype._mulC = function _mulC(num) {\n if (this.oneC)\n return num;\n else\n return this.c.redMul(num);\n};\n\n// Just for compatibility with Short curve\nEdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {\n return this.point(x, y, z, t);\n};\n\nEdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var x2 = x.redSqr();\n var rhs = this.c2.redSub(this.a.redMul(x2));\n var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));\n\n var y2 = rhs.redMul(lhs.redInvm());\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {\n y = new BN(y, 16);\n if (!y.red)\n y = y.toRed(this.red);\n\n // x^2 = (y^2 - c^2) / (c^2 d y^2 - a)\n var y2 = y.redSqr();\n var lhs = y2.redSub(this.c2);\n var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a);\n var x2 = lhs.redMul(rhs.redInvm());\n\n if (x2.cmp(this.zero) === 0) {\n if (odd)\n throw new Error('invalid point');\n else\n return this.point(this.zero, y);\n }\n\n var x = x2.redSqrt();\n if (x.redSqr().redSub(x2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n if (x.fromRed().isOdd() !== odd)\n x = x.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.validate = function validate(point) {\n if (point.isInfinity())\n return true;\n\n // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2)\n point.normalize();\n\n var x2 = point.x.redSqr();\n var y2 = point.y.redSqr();\n var lhs = x2.redMul(this.a).redAdd(y2);\n var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));\n\n return lhs.cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, y, z, t) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && y === null && z === null) {\n this.x = this.curve.zero;\n this.y = this.curve.one;\n this.z = this.curve.one;\n this.t = this.curve.zero;\n this.zOne = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = z ? new BN(z, 16) : this.curve.one;\n this.t = t && new BN(t, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n if (this.t && !this.t.red)\n this.t = this.t.toRed(this.curve.red);\n this.zOne = this.z === this.curve.one;\n\n // Use extended coordinates\n if (this.curve.extended && !this.t) {\n this.t = this.x.redMul(this.y);\n if (!this.zOne)\n this.t = this.t.redMul(this.z.redInvm());\n }\n }\n}\ninherits(Point, Base.BasePoint);\n\nEdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nEdwardsCurve.prototype.point = function point(x, y, z, t) {\n return new Point(this, x, y, z, t);\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1], obj[2]);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.x.cmpn(0) === 0 &&\n (this.y.cmp(this.z) === 0 ||\n (this.zOne && this.y.cmp(this.curve.c) === 0));\n};\n\nPoint.prototype._extDbl = function _extDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #doubling-dbl-2008-hwcd\n // 4M + 4S\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = 2 * Z1^2\n var c = this.z.redSqr();\n c = c.redIAdd(c);\n // D = a * A\n var d = this.curve._mulA(a);\n // E = (X1 + Y1)^2 - A - B\n var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);\n // G = D + B\n var g = d.redAdd(b);\n // F = G - C\n var f = g.redSub(c);\n // H = D - B\n var h = d.redSub(b);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projDbl = function _projDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #doubling-dbl-2008-bbjlp\n // #doubling-dbl-2007-bl\n // and others\n // Generally 3M + 4S or 2M + 4S\n\n // B = (X1 + Y1)^2\n var b = this.x.redAdd(this.y).redSqr();\n // C = X1^2\n var c = this.x.redSqr();\n // D = Y1^2\n var d = this.y.redSqr();\n\n var nx;\n var ny;\n var nz;\n var e;\n var h;\n var j;\n if (this.curve.twisted) {\n // E = a * C\n e = this.curve._mulA(c);\n // F = E + D\n var f = e.redAdd(d);\n if (this.zOne) {\n // X3 = (B - C - D) * (F - 2)\n nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F^2 - 2 * F\n nz = f.redSqr().redSub(f).redSub(f);\n } else {\n // H = Z1^2\n h = this.z.redSqr();\n // J = F - 2 * H\n j = f.redSub(h).redISub(h);\n // X3 = (B-C-D)*J\n nx = b.redSub(c).redISub(d).redMul(j);\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F * J\n nz = f.redMul(j);\n }\n } else {\n // E = C + D\n e = c.redAdd(d);\n // H = (c * Z1)^2\n h = this.curve._mulC(this.z).redSqr();\n // J = E - 2 * H\n j = e.redSub(h).redSub(h);\n // X3 = c * (B - E) * J\n nx = this.curve._mulC(b.redISub(e)).redMul(j);\n // Y3 = c * E * (C - D)\n ny = this.curve._mulC(e).redMul(c.redISub(d));\n // Z3 = E * J\n nz = e.redMul(j);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n // Double in extended coordinates\n if (this.curve.extended)\n return this._extDbl();\n else\n return this._projDbl();\n};\n\nPoint.prototype._extAdd = function _extAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #addition-add-2008-hwcd-3\n // 8M\n\n // A = (Y1 - X1) * (Y2 - X2)\n var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));\n // B = (Y1 + X1) * (Y2 + X2)\n var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));\n // C = T1 * k * T2\n var c = this.t.redMul(this.curve.dd).redMul(p.t);\n // D = Z1 * 2 * Z2\n var d = this.z.redMul(p.z.redAdd(p.z));\n // E = B - A\n var e = b.redSub(a);\n // F = D - C\n var f = d.redSub(c);\n // G = D + C\n var g = d.redAdd(c);\n // H = B + A\n var h = b.redAdd(a);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projAdd = function _projAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #addition-add-2008-bbjlp\n // #addition-add-2007-bl\n // 10M + 1S\n\n // A = Z1 * Z2\n var a = this.z.redMul(p.z);\n // B = A^2\n var b = a.redSqr();\n // C = X1 * X2\n var c = this.x.redMul(p.x);\n // D = Y1 * Y2\n var d = this.y.redMul(p.y);\n // E = d * C * D\n var e = this.curve.d.redMul(c).redMul(d);\n // F = B - E\n var f = b.redSub(e);\n // G = B + E\n var g = b.redAdd(e);\n // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)\n var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);\n var nx = a.redMul(f).redMul(tmp);\n var ny;\n var nz;\n if (this.curve.twisted) {\n // Y3 = A * G * (D - a * C)\n ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));\n // Z3 = F * G\n nz = f.redMul(g);\n } else {\n // Y3 = A * G * (D - C)\n ny = a.redMul(g).redMul(d.redSub(c));\n // Z3 = c * F * G\n nz = this.curve._mulC(f).redMul(g);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.add = function add(p) {\n if (this.isInfinity())\n return p;\n if (p.isInfinity())\n return this;\n\n if (this.curve.extended)\n return this._extAdd(p);\n else\n return this._projAdd(p);\n};\n\nPoint.prototype.mul = function mul(k) {\n if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, false);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, true);\n};\n\nPoint.prototype.normalize = function normalize() {\n if (this.zOne)\n return this;\n\n // Normalize coordinates\n var zi = this.z.redInvm();\n this.x = this.x.redMul(zi);\n this.y = this.y.redMul(zi);\n if (this.t)\n this.t = this.t.redMul(zi);\n this.z = this.curve.one;\n this.zOne = true;\n return this;\n};\n\nPoint.prototype.neg = function neg() {\n return this.curve.point(this.x.redNeg(),\n this.y,\n this.z,\n this.t && this.t.redNeg());\n};\n\nPoint.prototype.getX = function getX() {\n this.normalize();\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n this.normalize();\n return this.y.fromRed();\n};\n\nPoint.prototype.eq = function eq(other) {\n return this === other ||\n this.getX().cmp(other.getX()) === 0 &&\n this.getY().cmp(other.getY()) === 0;\n};\n\nPoint.prototype.eqXToP = function eqXToP(x) {\n var rx = x.toRed(this.curve.red).redMul(this.z);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(this.z);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\n// Compatibility with BaseCurve\nPoint.prototype.toP = Point.prototype.normalize;\nPoint.prototype.mixedAdd = Point.prototype.add;\n","'use strict';\n\nvar curve = exports;\n\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nexports.inherits = inherits;\n\nfunction isSurrogatePair(msg, i) {\n if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) {\n return false;\n }\n if (i < 0 || i + 1 >= msg.length) {\n return false;\n }\n return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;\n}\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg === 'string') {\n if (!enc) {\n // Inspired by stringToUtf8ByteArray() in closure-library by Google\n // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143\n // Apache License 2.0\n // https://github.com/google/closure-library/blob/master/LICENSE\n var p = 0;\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n if (c < 128) {\n res[p++] = c;\n } else if (c < 2048) {\n res[p++] = (c >> 6) | 192;\n res[p++] = (c & 63) | 128;\n } else if (isSurrogatePair(msg, i)) {\n c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF);\n res[p++] = (c >> 18) | 240;\n res[p++] = ((c >> 12) & 63) | 128;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n } else {\n res[p++] = (c >> 12) | 224;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n }\n }\n } else if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n }\n } else {\n for (i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n }\n return res;\n}\nexports.toArray = toArray;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nexports.toHex = toHex;\n\nfunction htonl(w) {\n var res = (w >>> 24) |\n ((w >>> 8) & 0xff00) |\n ((w << 8) & 0xff0000) |\n ((w & 0xff) << 24);\n return res >>> 0;\n}\nexports.htonl = htonl;\n\nfunction toHex32(msg, endian) {\n var res = '';\n for (var i = 0; i < msg.length; i++) {\n var w = msg[i];\n if (endian === 'little')\n w = htonl(w);\n res += zero8(w.toString(16));\n }\n return res;\n}\nexports.toHex32 = toHex32;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nexports.zero2 = zero2;\n\nfunction zero8(word) {\n if (word.length === 7)\n return '0' + word;\n else if (word.length === 6)\n return '00' + word;\n else if (word.length === 5)\n return '000' + word;\n else if (word.length === 4)\n return '0000' + word;\n else if (word.length === 3)\n return '00000' + word;\n else if (word.length === 2)\n return '000000' + word;\n else if (word.length === 1)\n return '0000000' + word;\n else\n return word;\n}\nexports.zero8 = zero8;\n\nfunction join32(msg, start, end, endian) {\n var len = end - start;\n assert(len % 4 === 0);\n var res = new Array(len / 4);\n for (var i = 0, k = start; i < res.length; i++, k += 4) {\n var w;\n if (endian === 'big')\n w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3];\n else\n w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k];\n res[i] = w >>> 0;\n }\n return res;\n}\nexports.join32 = join32;\n\nfunction split32(msg, endian) {\n var res = new Array(msg.length * 4);\n for (var i = 0, k = 0; i < msg.length; i++, k += 4) {\n var m = msg[i];\n if (endian === 'big') {\n res[k] = m >>> 24;\n res[k + 1] = (m >>> 16) & 0xff;\n res[k + 2] = (m >>> 8) & 0xff;\n res[k + 3] = m & 0xff;\n } else {\n res[k + 3] = m >>> 24;\n res[k + 2] = (m >>> 16) & 0xff;\n res[k + 1] = (m >>> 8) & 0xff;\n res[k] = m & 0xff;\n }\n }\n return res;\n}\nexports.split32 = split32;\n\nfunction rotr32(w, b) {\n return (w >>> b) | (w << (32 - b));\n}\nexports.rotr32 = rotr32;\n\nfunction rotl32(w, b) {\n return (w << b) | (w >>> (32 - b));\n}\nexports.rotl32 = rotl32;\n\nfunction sum32(a, b) {\n return (a + b) >>> 0;\n}\nexports.sum32 = sum32;\n\nfunction sum32_3(a, b, c) {\n return (a + b + c) >>> 0;\n}\nexports.sum32_3 = sum32_3;\n\nfunction sum32_4(a, b, c, d) {\n return (a + b + c + d) >>> 0;\n}\nexports.sum32_4 = sum32_4;\n\nfunction sum32_5(a, b, c, d, e) {\n return (a + b + c + d + e) >>> 0;\n}\nexports.sum32_5 = sum32_5;\n\nfunction sum64(buf, pos, ah, al) {\n var bh = buf[pos];\n var bl = buf[pos + 1];\n\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n buf[pos] = hi >>> 0;\n buf[pos + 1] = lo;\n}\nexports.sum64 = sum64;\n\nfunction sum64_hi(ah, al, bh, bl) {\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n return hi >>> 0;\n}\nexports.sum64_hi = sum64_hi;\n\nfunction sum64_lo(ah, al, bh, bl) {\n var lo = al + bl;\n return lo >>> 0;\n}\nexports.sum64_lo = sum64_lo;\n\nfunction sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n\n var hi = ah + bh + ch + dh + carry;\n return hi >>> 0;\n}\nexports.sum64_4_hi = sum64_4_hi;\n\nfunction sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {\n var lo = al + bl + cl + dl;\n return lo >>> 0;\n}\nexports.sum64_4_lo = sum64_4_lo;\n\nfunction sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n lo = (lo + el) >>> 0;\n carry += lo < el ? 1 : 0;\n\n var hi = ah + bh + ch + dh + eh + carry;\n return hi >>> 0;\n}\nexports.sum64_5_hi = sum64_5_hi;\n\nfunction sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var lo = al + bl + cl + dl + el;\n\n return lo >>> 0;\n}\nexports.sum64_5_lo = sum64_5_lo;\n\nfunction rotr64_hi(ah, al, num) {\n var r = (al << (32 - num)) | (ah >>> num);\n return r >>> 0;\n}\nexports.rotr64_hi = rotr64_hi;\n\nfunction rotr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.rotr64_lo = rotr64_lo;\n\nfunction shr64_hi(ah, al, num) {\n return ah >>> num;\n}\nexports.shr64_hi = shr64_hi;\n\nfunction shr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.shr64_lo = shr64_lo;\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction BlockHash() {\n this.pending = null;\n this.pendingTotal = 0;\n this.blockSize = this.constructor.blockSize;\n this.outSize = this.constructor.outSize;\n this.hmacStrength = this.constructor.hmacStrength;\n this.padLength = this.constructor.padLength / 8;\n this.endian = 'big';\n\n this._delta8 = this.blockSize / 8;\n this._delta32 = this.blockSize / 32;\n}\nexports.BlockHash = BlockHash;\n\nBlockHash.prototype.update = function update(msg, enc) {\n // Convert message to array, pad it, and join into 32bit blocks\n msg = utils.toArray(msg, enc);\n if (!this.pending)\n this.pending = msg;\n else\n this.pending = this.pending.concat(msg);\n this.pendingTotal += msg.length;\n\n // Enough data, try updating\n if (this.pending.length >= this._delta8) {\n msg = this.pending;\n\n // Process pending data in blocks\n var r = msg.length % this._delta8;\n this.pending = msg.slice(msg.length - r, msg.length);\n if (this.pending.length === 0)\n this.pending = null;\n\n msg = utils.join32(msg, 0, msg.length - r, this.endian);\n for (var i = 0; i < msg.length; i += this._delta32)\n this._update(msg, i, i + this._delta32);\n }\n\n return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n this.update(this._pad());\n assert(this.pending === null);\n\n return this._digest(enc);\n};\n\nBlockHash.prototype._pad = function pad() {\n var len = this.pendingTotal;\n var bytes = this._delta8;\n var k = bytes - ((len + this.padLength) % bytes);\n var res = new Array(k + this.padLength);\n res[0] = 0x80;\n for (var i = 1; i < k; i++)\n res[i] = 0;\n\n // Append length\n len <<= 3;\n if (this.endian === 'big') {\n for (var t = 8; t < this.padLength; t++)\n res[i++] = 0;\n\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = len & 0xff;\n } else {\n res[i++] = len & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n\n for (t = 8; t < this.padLength; t++)\n res[i++] = 0;\n }\n\n return res;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar rotr32 = utils.rotr32;\n\nfunction ft_1(s, x, y, z) {\n if (s === 0)\n return ch32(x, y, z);\n if (s === 1 || s === 3)\n return p32(x, y, z);\n if (s === 2)\n return maj32(x, y, z);\n}\nexports.ft_1 = ft_1;\n\nfunction ch32(x, y, z) {\n return (x & y) ^ ((~x) & z);\n}\nexports.ch32 = ch32;\n\nfunction maj32(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n}\nexports.maj32 = maj32;\n\nfunction p32(x, y, z) {\n return x ^ y ^ z;\n}\nexports.p32 = p32;\n\nfunction s0_256(x) {\n return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n}\nexports.s0_256 = s0_256;\n\nfunction s1_256(x) {\n return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n}\nexports.s1_256 = s1_256;\n\nfunction g0_256(x) {\n return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);\n}\nexports.g0_256 = g0_256;\n\nfunction g1_256(x) {\n return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);\n}\nexports.g1_256 = g1_256;\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_5 = utils.sum32_5;\nvar ft_1 = shaCommon.ft_1;\nvar BlockHash = common.BlockHash;\n\nvar sha1_K = [\n 0x5A827999, 0x6ED9EBA1,\n 0x8F1BBCDC, 0xCA62C1D6\n];\n\nfunction SHA1() {\n if (!(this instanceof SHA1))\n return new SHA1();\n\n BlockHash.call(this);\n this.h = [\n 0x67452301, 0xefcdab89, 0x98badcfe,\n 0x10325476, 0xc3d2e1f0 ];\n this.W = new Array(80);\n}\n\nutils.inherits(SHA1, BlockHash);\nmodule.exports = SHA1;\n\nSHA1.blockSize = 512;\nSHA1.outSize = 160;\nSHA1.hmacStrength = 80;\nSHA1.padLength = 64;\n\nSHA1.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n\n for(; i < W.length; i++)\n W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n\n for (i = 0; i < W.length; i++) {\n var s = ~~(i / 20);\n var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);\n e = d;\n d = c;\n c = rotl32(b, 30);\n b = a;\n a = t;\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n};\n\nSHA1.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\nvar assert = require('minimalistic-assert');\n\nvar sum32 = utils.sum32;\nvar sum32_4 = utils.sum32_4;\nvar sum32_5 = utils.sum32_5;\nvar ch32 = shaCommon.ch32;\nvar maj32 = shaCommon.maj32;\nvar s0_256 = shaCommon.s0_256;\nvar s1_256 = shaCommon.s1_256;\nvar g0_256 = shaCommon.g0_256;\nvar g1_256 = shaCommon.g1_256;\n\nvar BlockHash = common.BlockHash;\n\nvar sha256_K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n];\n\nfunction SHA256() {\n if (!(this instanceof SHA256))\n return new SHA256();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n ];\n this.k = sha256_K;\n this.W = new Array(64);\n}\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\n\nSHA256.blockSize = 512;\nSHA256.outSize = 256;\nSHA256.hmacStrength = 192;\nSHA256.padLength = 64;\n\nSHA256.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i++)\n W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n var f = this.h[5];\n var g = this.h[6];\n var h = this.h[7];\n\n assert(this.k.length === W.length);\n for (i = 0; i < W.length; i++) {\n var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n var T2 = sum32(s0_256(a), maj32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = sum32(d, T1);\n d = c;\n c = b;\n b = a;\n a = sum32(T1, T2);\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n this.h[5] = sum32(this.h[5], f);\n this.h[6] = sum32(this.h[6], g);\n this.h[7] = sum32(this.h[7], h);\n};\n\nSHA256.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar SHA256 = require('./256');\n\nfunction SHA224() {\n if (!(this instanceof SHA224))\n return new SHA224();\n\n SHA256.call(this);\n this.h = [\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ];\n}\nutils.inherits(SHA224, SHA256);\nmodule.exports = SHA224;\n\nSHA224.blockSize = 512;\nSHA224.outSize = 224;\nSHA224.hmacStrength = 192;\nSHA224.padLength = 64;\n\nSHA224.prototype._digest = function digest(enc) {\n // Just truncate output\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 7), 'big');\n else\n return utils.split32(this.h.slice(0, 7), 'big');\n};\n\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar assert = require('minimalistic-assert');\n\nvar rotr64_hi = utils.rotr64_hi;\nvar rotr64_lo = utils.rotr64_lo;\nvar shr64_hi = utils.shr64_hi;\nvar shr64_lo = utils.shr64_lo;\nvar sum64 = utils.sum64;\nvar sum64_hi = utils.sum64_hi;\nvar sum64_lo = utils.sum64_lo;\nvar sum64_4_hi = utils.sum64_4_hi;\nvar sum64_4_lo = utils.sum64_4_lo;\nvar sum64_5_hi = utils.sum64_5_hi;\nvar sum64_5_lo = utils.sum64_5_lo;\n\nvar BlockHash = common.BlockHash;\n\nvar sha512_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\nfunction SHA512() {\n if (!(this instanceof SHA512))\n return new SHA512();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xf3bcc908,\n 0xbb67ae85, 0x84caa73b,\n 0x3c6ef372, 0xfe94f82b,\n 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1,\n 0x9b05688c, 0x2b3e6c1f,\n 0x1f83d9ab, 0xfb41bd6b,\n 0x5be0cd19, 0x137e2179 ];\n this.k = sha512_K;\n this.W = new Array(160);\n}\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\n\nSHA512.blockSize = 1024;\nSHA512.outSize = 512;\nSHA512.hmacStrength = 192;\nSHA512.padLength = 128;\n\nSHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n var W = this.W;\n\n // 32 x 32bit words\n for (var i = 0; i < 32; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i += 2) {\n var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2\n var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n var c1_hi = W[i - 14]; // i - 7\n var c1_lo = W[i - 13];\n var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15\n var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n var c3_hi = W[i - 32]; // i - 16\n var c3_lo = W[i - 31];\n\n W[i] = sum64_4_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n W[i + 1] = sum64_4_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n }\n};\n\nSHA512.prototype._update = function _update(msg, start) {\n this._prepareBlock(msg, start);\n\n var W = this.W;\n\n var ah = this.h[0];\n var al = this.h[1];\n var bh = this.h[2];\n var bl = this.h[3];\n var ch = this.h[4];\n var cl = this.h[5];\n var dh = this.h[6];\n var dl = this.h[7];\n var eh = this.h[8];\n var el = this.h[9];\n var fh = this.h[10];\n var fl = this.h[11];\n var gh = this.h[12];\n var gl = this.h[13];\n var hh = this.h[14];\n var hl = this.h[15];\n\n assert(this.k.length === W.length);\n for (var i = 0; i < W.length; i += 2) {\n var c0_hi = hh;\n var c0_lo = hl;\n var c1_hi = s1_512_hi(eh, el);\n var c1_lo = s1_512_lo(eh, el);\n var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n var c3_hi = this.k[i];\n var c3_lo = this.k[i + 1];\n var c4_hi = W[i];\n var c4_lo = W[i + 1];\n\n var T1_hi = sum64_5_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n var T1_lo = sum64_5_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n\n c0_hi = s0_512_hi(ah, al);\n c0_lo = s0_512_lo(ah, al);\n c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n\n var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n\n hh = gh;\n hl = gl;\n\n gh = fh;\n gl = fl;\n\n fh = eh;\n fl = el;\n\n eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n el = sum64_lo(dl, dl, T1_hi, T1_lo);\n\n dh = ch;\n dl = cl;\n\n ch = bh;\n cl = bl;\n\n bh = ah;\n bl = al;\n\n ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n }\n\n sum64(this.h, 0, ah, al);\n sum64(this.h, 2, bh, bl);\n sum64(this.h, 4, ch, cl);\n sum64(this.h, 6, dh, dl);\n sum64(this.h, 8, eh, el);\n sum64(this.h, 10, fh, fl);\n sum64(this.h, 12, gh, gl);\n sum64(this.h, 14, hh, hl);\n};\n\nSHA512.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n\nfunction ch64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ ((~xh) & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction ch64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ ((~xl) & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 28);\n var c1_hi = rotr64_hi(xl, xh, 2); // 34\n var c2_hi = rotr64_hi(xl, xh, 7); // 39\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 28);\n var c1_lo = rotr64_lo(xl, xh, 2); // 34\n var c2_lo = rotr64_lo(xl, xh, 7); // 39\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 14);\n var c1_hi = rotr64_hi(xh, xl, 18);\n var c2_hi = rotr64_hi(xl, xh, 9); // 41\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 14);\n var c1_lo = rotr64_lo(xh, xl, 18);\n var c2_lo = rotr64_lo(xl, xh, 9); // 41\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 1);\n var c1_hi = rotr64_hi(xh, xl, 8);\n var c2_hi = shr64_hi(xh, xl, 7);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 1);\n var c1_lo = rotr64_lo(xh, xl, 8);\n var c2_lo = shr64_lo(xh, xl, 7);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 19);\n var c1_hi = rotr64_hi(xl, xh, 29); // 61\n var c2_hi = shr64_hi(xh, xl, 6);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 19);\n var c1_lo = rotr64_lo(xl, xh, 29); // 61\n var c2_lo = shr64_lo(xh, xl, 6);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n","'use strict';\n\nvar utils = require('../utils');\n\nvar SHA512 = require('./512');\n\nfunction SHA384() {\n if (!(this instanceof SHA384))\n return new SHA384();\n\n SHA512.call(this);\n this.h = [\n 0xcbbb9d5d, 0xc1059ed8,\n 0x629a292a, 0x367cd507,\n 0x9159015a, 0x3070dd17,\n 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31,\n 0x8eb44a87, 0x68581511,\n 0xdb0c2e0d, 0x64f98fa7,\n 0x47b5481d, 0xbefa4fa4 ];\n}\nutils.inherits(SHA384, SHA512);\nmodule.exports = SHA384;\n\nSHA384.blockSize = 1024;\nSHA384.outSize = 384;\nSHA384.hmacStrength = 192;\nSHA384.padLength = 128;\n\nSHA384.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 12), 'big');\n else\n return utils.split32(this.h.slice(0, 12), 'big');\n};\n","'use strict';\n\nexports.sha1 = require('./sha/1');\nexports.sha224 = require('./sha/224');\nexports.sha256 = require('./sha/256');\nexports.sha384 = require('./sha/384');\nexports.sha512 = require('./sha/512');\n","'use strict';\n\nvar utils = require('./utils');\nvar common = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_3 = utils.sum32_3;\nvar sum32_4 = utils.sum32_4;\nvar BlockHash = common.BlockHash;\n\nfunction RIPEMD160() {\n if (!(this instanceof RIPEMD160))\n return new RIPEMD160();\n\n BlockHash.call(this);\n\n this.h = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 ];\n this.endian = 'little';\n}\nutils.inherits(RIPEMD160, BlockHash);\nexports.ripemd160 = RIPEMD160;\n\nRIPEMD160.blockSize = 512;\nRIPEMD160.outSize = 160;\nRIPEMD160.hmacStrength = 192;\nRIPEMD160.padLength = 64;\n\nRIPEMD160.prototype._update = function update(msg, start) {\n var A = this.h[0];\n var B = this.h[1];\n var C = this.h[2];\n var D = this.h[3];\n var E = this.h[4];\n var Ah = A;\n var Bh = B;\n var Ch = C;\n var Dh = D;\n var Eh = E;\n for (var j = 0; j < 80; j++) {\n var T = sum32(\n rotl32(\n sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),\n s[j]),\n E);\n A = E;\n E = D;\n D = rotl32(C, 10);\n C = B;\n B = T;\n T = sum32(\n rotl32(\n sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),\n sh[j]),\n Eh);\n Ah = Eh;\n Eh = Dh;\n Dh = rotl32(Ch, 10);\n Ch = Bh;\n Bh = T;\n }\n T = sum32_3(this.h[1], C, Dh);\n this.h[1] = sum32_3(this.h[2], D, Eh);\n this.h[2] = sum32_3(this.h[3], E, Ah);\n this.h[3] = sum32_3(this.h[4], A, Bh);\n this.h[4] = sum32_3(this.h[0], B, Ch);\n this.h[0] = T;\n};\n\nRIPEMD160.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'little');\n else\n return utils.split32(this.h, 'little');\n};\n\nfunction f(j, x, y, z) {\n if (j <= 15)\n return x ^ y ^ z;\n else if (j <= 31)\n return (x & y) | ((~x) & z);\n else if (j <= 47)\n return (x | (~y)) ^ z;\n else if (j <= 63)\n return (x & z) | (y & (~z));\n else\n return x ^ (y | (~z));\n}\n\nfunction K(j) {\n if (j <= 15)\n return 0x00000000;\n else if (j <= 31)\n return 0x5a827999;\n else if (j <= 47)\n return 0x6ed9eba1;\n else if (j <= 63)\n return 0x8f1bbcdc;\n else\n return 0xa953fd4e;\n}\n\nfunction Kh(j) {\n if (j <= 15)\n return 0x50a28be6;\n else if (j <= 31)\n return 0x5c4dd124;\n else if (j <= 47)\n return 0x6d703ef3;\n else if (j <= 63)\n return 0x7a6d76e9;\n else\n return 0x00000000;\n}\n\nvar r = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n];\n\nvar rh = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n];\n\nvar s = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n];\n\nvar sh = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n];\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction Hmac(hash, key, enc) {\n if (!(this instanceof Hmac))\n return new Hmac(hash, key, enc);\n this.Hash = hash;\n this.blockSize = hash.blockSize / 8;\n this.outSize = hash.outSize / 8;\n this.inner = null;\n this.outer = null;\n\n this._init(utils.toArray(key, enc));\n}\nmodule.exports = Hmac;\n\nHmac.prototype._init = function init(key) {\n // Shorten key, if needed\n if (key.length > this.blockSize)\n key = new this.Hash().update(key).digest();\n assert(key.length <= this.blockSize);\n\n // Add padding to key\n for (var i = key.length; i < this.blockSize; i++)\n key.push(0);\n\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x36;\n this.inner = new this.Hash().update(key);\n\n // 0x36 ^ 0x5c = 0x6a\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x6a;\n this.outer = new this.Hash().update(key);\n};\n\nHmac.prototype.update = function update(msg, enc) {\n this.inner.update(msg, enc);\n return this;\n};\n\nHmac.prototype.digest = function digest(enc) {\n this.outer.update(this.inner.digest());\n return this.outer.digest(enc);\n};\n","var hash = exports;\n\nhash.utils = require('./hash/utils');\nhash.common = require('./hash/common');\nhash.sha = require('./hash/sha');\nhash.ripemd = require('./hash/ripemd');\nhash.hmac = require('./hash/hmac');\n\n// Proxy hash functions to the main object\nhash.sha1 = hash.sha.sha1;\nhash.sha256 = hash.sha.sha256;\nhash.sha224 = hash.sha.sha224;\nhash.sha384 = hash.sha.sha384;\nhash.sha512 = hash.sha.sha512;\nhash.ripemd160 = hash.ripemd.ripemd160;\n","module.exports = {\n doubles: {\n step: 4,\n points: [\n [\n 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',\n 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821',\n ],\n [\n '8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',\n '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf',\n ],\n [\n '175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',\n 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695',\n ],\n [\n '363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',\n '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9',\n ],\n [\n '8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',\n '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36',\n ],\n [\n '723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',\n '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f',\n ],\n [\n 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',\n '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999',\n ],\n [\n '100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',\n 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09',\n ],\n [\n 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',\n '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d',\n ],\n [\n 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',\n 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088',\n ],\n [\n 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',\n '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d',\n ],\n [\n '53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',\n '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8',\n ],\n [\n '8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',\n '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a',\n ],\n [\n '385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',\n '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453',\n ],\n [\n '6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',\n '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160',\n ],\n [\n '3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',\n '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0',\n ],\n [\n '85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',\n '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6',\n ],\n [\n '948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',\n '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589',\n ],\n [\n '6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',\n 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17',\n ],\n [\n 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',\n '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda',\n ],\n [\n 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',\n '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd',\n ],\n [\n '213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',\n '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2',\n ],\n [\n '4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',\n '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6',\n ],\n [\n 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',\n '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f',\n ],\n [\n '76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',\n 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01',\n ],\n [\n 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',\n '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3',\n ],\n [\n 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',\n 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f',\n ],\n [\n 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',\n '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7',\n ],\n [\n 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',\n 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78',\n ],\n [\n 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',\n '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1',\n ],\n [\n '90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',\n 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150',\n ],\n [\n '8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',\n '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82',\n ],\n [\n 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',\n '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc',\n ],\n [\n '8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',\n 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b',\n ],\n [\n 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',\n '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51',\n ],\n [\n 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',\n '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45',\n ],\n [\n 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',\n 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120',\n ],\n [\n '324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',\n '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84',\n ],\n [\n '4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',\n '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d',\n ],\n [\n '9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',\n 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d',\n ],\n [\n '6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',\n '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8',\n ],\n [\n 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',\n '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8',\n ],\n [\n '7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',\n '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac',\n ],\n [\n '928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',\n 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f',\n ],\n [\n '85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',\n '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962',\n ],\n [\n 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',\n '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907',\n ],\n [\n '827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',\n 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec',\n ],\n [\n 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',\n 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d',\n ],\n [\n 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',\n '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414',\n ],\n [\n '1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',\n 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd',\n ],\n [\n '146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',\n 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0',\n ],\n [\n 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',\n '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811',\n ],\n [\n 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',\n '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1',\n ],\n [\n 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',\n '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c',\n ],\n [\n '174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',\n 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73',\n ],\n [\n '959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',\n '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd',\n ],\n [\n 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',\n 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405',\n ],\n [\n '64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',\n 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589',\n ],\n [\n '8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',\n '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e',\n ],\n [\n '13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',\n '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27',\n ],\n [\n 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',\n 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1',\n ],\n [\n '8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',\n '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482',\n ],\n [\n '8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',\n '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945',\n ],\n [\n 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',\n '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573',\n ],\n [\n 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',\n 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82',\n ],\n ],\n },\n naf: {\n wnd: 7,\n points: [\n [\n 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',\n '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672',\n ],\n [\n '2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',\n 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6',\n ],\n [\n '5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',\n '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da',\n ],\n [\n 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',\n 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37',\n ],\n [\n '774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',\n 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b',\n ],\n [\n 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',\n 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81',\n ],\n [\n 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',\n '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58',\n ],\n [\n 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',\n '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77',\n ],\n [\n '2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',\n '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a',\n ],\n [\n '352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',\n '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c',\n ],\n [\n '2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',\n '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67',\n ],\n [\n '9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',\n '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402',\n ],\n [\n 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',\n 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55',\n ],\n [\n 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',\n '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482',\n ],\n [\n '6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',\n 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82',\n ],\n [\n '1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',\n 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396',\n ],\n [\n '605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',\n '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49',\n ],\n [\n '62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',\n '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf',\n ],\n [\n '80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',\n '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a',\n ],\n [\n '7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',\n 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7',\n ],\n [\n 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',\n 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933',\n ],\n [\n '49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',\n '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a',\n ],\n [\n '77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',\n '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6',\n ],\n [\n 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',\n 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37',\n ],\n [\n '463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',\n '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e',\n ],\n [\n 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',\n 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6',\n ],\n [\n 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',\n 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476',\n ],\n [\n '2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',\n '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40',\n ],\n [\n '7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',\n '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61',\n ],\n [\n '754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',\n '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683',\n ],\n [\n 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',\n '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5',\n ],\n [\n '186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',\n '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b',\n ],\n [\n 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',\n '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417',\n ],\n [\n '5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',\n 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868',\n ],\n [\n '290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',\n 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a',\n ],\n [\n 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',\n 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6',\n ],\n [\n '766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',\n '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996',\n ],\n [\n '59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',\n 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e',\n ],\n [\n 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',\n 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d',\n ],\n [\n '7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',\n '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2',\n ],\n [\n '948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',\n 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e',\n ],\n [\n '7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',\n '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437',\n ],\n [\n '3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',\n 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311',\n ],\n [\n 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',\n '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4',\n ],\n [\n '1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',\n '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575',\n ],\n [\n '733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',\n 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d',\n ],\n [\n '15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',\n 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d',\n ],\n [\n 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',\n 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629',\n ],\n [\n 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',\n 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06',\n ],\n [\n '311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',\n '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374',\n ],\n [\n '34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',\n '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee',\n ],\n [\n 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',\n '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1',\n ],\n [\n 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',\n 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b',\n ],\n [\n '32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',\n '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661',\n ],\n [\n '7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',\n '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6',\n ],\n [\n 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',\n '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e',\n ],\n [\n '16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',\n '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d',\n ],\n [\n 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',\n 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc',\n ],\n [\n '78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',\n 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4',\n ],\n [\n '494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',\n '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c',\n ],\n [\n 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',\n '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b',\n ],\n [\n 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',\n '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913',\n ],\n [\n '841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',\n '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154',\n ],\n [\n '5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',\n '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865',\n ],\n [\n '36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',\n 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc',\n ],\n [\n '336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',\n 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224',\n ],\n [\n '8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',\n '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e',\n ],\n [\n '1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',\n '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6',\n ],\n [\n '85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',\n '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511',\n ],\n [\n '29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',\n 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b',\n ],\n [\n 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',\n 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2',\n ],\n [\n '4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',\n 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c',\n ],\n [\n 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',\n '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3',\n ],\n [\n 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',\n '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d',\n ],\n [\n 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',\n '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700',\n ],\n [\n 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',\n '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4',\n ],\n [\n '591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',\n 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196',\n ],\n [\n '11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',\n '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4',\n ],\n [\n '3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',\n 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257',\n ],\n [\n 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',\n 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13',\n ],\n [\n 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',\n '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096',\n ],\n [\n 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',\n 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38',\n ],\n [\n 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',\n '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f',\n ],\n [\n '347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',\n '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448',\n ],\n [\n 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',\n '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a',\n ],\n [\n 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',\n '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4',\n ],\n [\n '4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',\n '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437',\n ],\n [\n '3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',\n 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7',\n ],\n [\n 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',\n '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d',\n ],\n [\n 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',\n '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a',\n ],\n [\n 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',\n '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54',\n ],\n [\n '48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',\n '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77',\n ],\n [\n 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',\n 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517',\n ],\n [\n '6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',\n 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10',\n ],\n [\n 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',\n 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125',\n ],\n [\n 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',\n '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e',\n ],\n [\n '13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',\n 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1',\n ],\n [\n 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',\n '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2',\n ],\n [\n 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',\n '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423',\n ],\n [\n 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',\n '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8',\n ],\n [\n '8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',\n 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758',\n ],\n [\n '52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',\n 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375',\n ],\n [\n 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',\n '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d',\n ],\n [\n '7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',\n 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec',\n ],\n [\n '5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',\n '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0',\n ],\n [\n '32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',\n 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c',\n ],\n [\n 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',\n 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4',\n ],\n [\n '8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',\n 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f',\n ],\n [\n '4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',\n '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649',\n ],\n [\n '3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',\n 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826',\n ],\n [\n '674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',\n '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5',\n ],\n [\n 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',\n 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87',\n ],\n [\n '30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',\n '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b',\n ],\n [\n 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',\n '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc',\n ],\n [\n '93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',\n '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c',\n ],\n [\n 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',\n 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f',\n ],\n [\n 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',\n '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a',\n ],\n [\n 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',\n 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46',\n ],\n [\n '463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',\n 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f',\n ],\n [\n '7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',\n '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03',\n ],\n [\n '74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',\n 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08',\n ],\n [\n '30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',\n '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8',\n ],\n [\n '9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',\n '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373',\n ],\n [\n '176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',\n 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3',\n ],\n [\n '75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',\n '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8',\n ],\n [\n '809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',\n '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1',\n ],\n [\n '1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',\n '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9',\n ],\n ],\n },\n};\n","'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\nvar curve = require('./curve');\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve.edwards(options);\n else\n this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve,\n });\n return curve;\n },\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811',\n ],\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34',\n ],\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5',\n ],\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f',\n ],\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650',\n ],\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9',\n ],\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658',\n ],\n});\n\nvar pre;\ntry {\n pre = require('./precomputed/secp256k1');\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3',\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15',\n },\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre,\n ],\n});\n","'use strict';\n\nvar hash = require('hash.js');\nvar utils = require('minimalistic-crypto-utils');\nvar assert = require('minimalistic-assert');\n\nfunction HmacDRBG(options) {\n if (!(this instanceof HmacDRBG))\n return new HmacDRBG(options);\n this.hash = options.hash;\n this.predResist = !!options.predResist;\n\n this.outLen = this.hash.outSize;\n this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n\n this._reseed = null;\n this.reseedInterval = null;\n this.K = null;\n this.V = null;\n\n var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex');\n var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex');\n var pers = utils.toArray(options.pers, options.persEnc || 'hex');\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n this._init(entropy, nonce, pers);\n}\nmodule.exports = HmacDRBG;\n\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n var seed = entropy.concat(nonce).concat(pers);\n\n this.K = new Array(this.outLen / 8);\n this.V = new Array(this.outLen / 8);\n for (var i = 0; i < this.V.length; i++) {\n this.K[i] = 0x00;\n this.V[i] = 0x01;\n }\n\n this._update(seed);\n this._reseed = 1;\n this.reseedInterval = 0x1000000000000; // 2^48\n};\n\nHmacDRBG.prototype._hmac = function hmac() {\n return new hash.hmac(this.hash, this.K);\n};\n\nHmacDRBG.prototype._update = function update(seed) {\n var kmac = this._hmac()\n .update(this.V)\n .update([ 0x00 ]);\n if (seed)\n kmac = kmac.update(seed);\n this.K = kmac.digest();\n this.V = this._hmac().update(this.V).digest();\n if (!seed)\n return;\n\n this.K = this._hmac()\n .update(this.V)\n .update([ 0x01 ])\n .update(seed)\n .digest();\n this.V = this._hmac().update(this.V).digest();\n};\n\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {\n // Optional entropy enc\n if (typeof entropyEnc !== 'string') {\n addEnc = add;\n add = entropyEnc;\n entropyEnc = null;\n }\n\n entropy = utils.toArray(entropy, entropyEnc);\n add = utils.toArray(add, addEnc);\n\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n this._update(entropy.concat(add || []));\n this._reseed = 1;\n};\n\nHmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {\n if (this._reseed > this.reseedInterval)\n throw new Error('Reseed is required');\n\n // Optional encoding\n if (typeof enc !== 'string') {\n addEnc = add;\n add = enc;\n enc = null;\n }\n\n // Optional additional data\n if (add) {\n add = utils.toArray(add, addEnc || 'hex');\n this._update(add);\n }\n\n var temp = [];\n while (temp.length < len) {\n this.V = this._hmac().update(this.V).digest();\n temp = temp.concat(this.V);\n }\n\n var res = temp.slice(0, len);\n this._update(add);\n this._reseed++;\n return utils.encode(res, enc);\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction KeyPair(ec, options) {\n this.ec = ec;\n this.priv = null;\n this.pub = null;\n\n // KeyPair(ec, { priv: ..., pub: ... })\n if (options.priv)\n this._importPrivate(options.priv, options.privEnc);\n if (options.pub)\n this._importPublic(options.pub, options.pubEnc);\n}\nmodule.exports = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n if (pub instanceof KeyPair)\n return pub;\n\n return new KeyPair(ec, {\n pub: pub,\n pubEnc: enc,\n });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n if (priv instanceof KeyPair)\n return priv;\n\n return new KeyPair(ec, {\n priv: priv,\n privEnc: enc,\n });\n};\n\nKeyPair.prototype.validate = function validate() {\n var pub = this.getPublic();\n\n if (pub.isInfinity())\n return { result: false, reason: 'Invalid public key' };\n if (!pub.validate())\n return { result: false, reason: 'Public key is not a point' };\n if (!pub.mul(this.ec.curve.n).isInfinity())\n return { result: false, reason: 'Public key * N != O' };\n\n return { result: true, reason: null };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n // compact is optional argument\n if (typeof compact === 'string') {\n enc = compact;\n compact = null;\n }\n\n if (!this.pub)\n this.pub = this.ec.g.mul(this.priv);\n\n if (!enc)\n return this.pub;\n\n return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n if (enc === 'hex')\n return this.priv.toString(16, 2);\n else\n return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n this.priv = new BN(key, enc || 16);\n\n // Ensure that the priv won't be bigger than n, otherwise we may fail\n // in fixed multiplication method\n this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n if (key.x || key.y) {\n // Montgomery points only have an `x` coordinate.\n // Weierstrass/Edwards points on the other hand have both `x` and\n // `y` coordinates.\n if (this.ec.curve.type === 'mont') {\n assert(key.x, 'Need x coordinate');\n } else if (this.ec.curve.type === 'short' ||\n this.ec.curve.type === 'edwards') {\n assert(key.x && key.y, 'Need both x and y coordinate');\n }\n this.pub = this.ec.curve.point(key.x, key.y);\n return;\n }\n this.pub = this.ec.curve.decodePoint(key, enc);\n};\n\n// ECDH\nKeyPair.prototype.derive = function derive(pub) {\n if(!pub.validate()) {\n assert(pub.validate(), 'public point not validated');\n }\n return pub.mul(this.priv).getX();\n};\n\n// ECDSA\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature, options) {\n return this.ec.verify(msg, signature, this, undefined, options);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n return '';\n};\n","'use strict';\n\nvar BN = require('bn.js');\n\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature)\n return options;\n\n if (this._importDER(options, enc))\n return;\n\n assert(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined)\n this.recoveryParam = null;\n else\n this.recoveryParam = options.recoveryParam;\n}\nmodule.exports = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n if (!(initial & 0x80)) {\n return initial;\n }\n var octetLen = initial & 0xf;\n\n // Indefinite length or overflow\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n\n if(buf[p.place] === 0x00) {\n return false;\n }\n\n var val = 0;\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n }\n\n // Leading zeroes\n if (val <= 0x7f) {\n return false;\n }\n\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n if (i === 0) {\n return buf;\n }\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils.toArray(data, enc);\n var p = new Position();\n if (data[p.place++] !== 0x30) {\n return false;\n }\n var len = getLength(data, p);\n if (len === false) {\n return false;\n }\n if ((len + p.place) !== data.length) {\n return false;\n }\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var rlen = getLength(data, p);\n if (rlen === false) {\n return false;\n }\n if ((data[p.place] & 128) !== 0) {\n return false;\n }\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var slen = getLength(data, p);\n if (slen === false) {\n return false;\n }\n if (data.length !== slen + p.place) {\n return false;\n }\n if ((data[p.place] & 128) !== 0) {\n return false;\n }\n var s = data.slice(p.place, slen + p.place);\n if (r[0] === 0) {\n if (r[1] & 0x80) {\n r = r.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n if (s[0] === 0) {\n if (s[1] & 0x80) {\n s = s.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n while (--octets) {\n arr.push((len >>> (octets << 3)) & 0xff);\n }\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray();\n\n // Pad values\n if (r[0] & 0x80)\n r = [ 0 ].concat(r);\n // Pad values\n if (s[0] & 0x80)\n s = [ 0 ].concat(s);\n\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n var arr = [ 0x02 ];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [ 0x30 ];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils.encode(res, enc);\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar HmacDRBG = require('hmac-drbg');\nvar utils = require('../utils');\nvar curves = require('../curves');\nvar rand = require('brorand');\nvar assert = utils.assert;\n\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EC(options) {\n if (!(this instanceof EC))\n return new EC(options);\n\n // Shortcut `elliptic.ec(curve-name)`\n if (typeof options === 'string') {\n assert(Object.prototype.hasOwnProperty.call(curves, options),\n 'Unknown curve ' + options);\n\n options = curves[options];\n }\n\n // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n if (options instanceof curves.PresetCurve)\n options = { curve: options };\n\n this.curve = options.curve.curve;\n this.n = this.curve.n;\n this.nh = this.n.ushrn(1);\n this.g = this.curve.g;\n\n // Point on curve\n this.g = options.curve.g;\n this.g.precompute(options.curve.n.bitLength() + 1);\n\n // Hash for function for DRBG\n this.hash = options.hash || options.curve.hash;\n}\nmodule.exports = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n return new KeyPair(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n return KeyPair.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n return KeyPair.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n if (!options)\n options = {};\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n entropy: options.entropy || rand(this.hash.hmacStrength),\n entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n nonce: this.n.toArray(),\n });\n\n var bytes = this.n.byteLength();\n var ns2 = this.n.sub(new BN(2));\n for (;;) {\n var priv = new BN(drbg.generate(bytes));\n if (priv.cmp(ns2) > 0)\n continue;\n\n priv.iaddn(1);\n return this.keyFromPrivate(priv);\n }\n};\n\nEC.prototype._truncateToN = function _truncateToN(msg, truncOnly, bitLength) {\n var byteLength;\n if (BN.isBN(msg) || typeof msg === 'number') {\n msg = new BN(msg, 16);\n byteLength = msg.byteLength();\n } else if (typeof msg === 'object') {\n // BN assumes an array-like input and asserts length\n byteLength = msg.length;\n msg = new BN(msg, 16);\n } else {\n // BN converts the value to string\n var str = msg.toString();\n // HEX encoding\n byteLength = (str.length + 1) >>> 1;\n msg = new BN(str, 16);\n }\n // Allow overriding\n if (typeof bitLength !== 'number') {\n bitLength = byteLength * 8;\n }\n var delta = bitLength - this.n.bitLength();\n if (delta > 0)\n msg = msg.ushrn(delta);\n if (!truncOnly && msg.cmp(this.n) >= 0)\n return msg.sub(this.n);\n else\n return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n if (typeof enc === 'object') {\n options = enc;\n enc = null;\n }\n if (!options)\n options = {};\n\n if (typeof msg !== 'string' && typeof msg !== 'number' && !BN.isBN(msg)) {\n assert(typeof msg === 'object' && msg && typeof msg.length === 'number',\n 'Expected message to be an array-like, a hex string, or a BN instance');\n assert((msg.length >>> 0) === msg.length); // non-negative 32-bit integer\n for (var i = 0; i < msg.length; i++) assert((msg[i] & 255) === msg[i]);\n }\n\n key = this.keyFromPrivate(key, enc);\n msg = this._truncateToN(msg, false, options.msgBitLength);\n\n // Would fail further checks, but let's make the error message clear\n assert(!msg.isNeg(), 'Can not sign a negative message');\n\n // Zero-extend key to provide enough entropy\n var bytes = this.n.byteLength();\n var bkey = key.getPrivate().toArray('be', bytes);\n\n // Zero-extend nonce to have the same byte size as N\n var nonce = msg.toArray('be', bytes);\n\n // Recheck nonce to be bijective to msg\n assert((new BN(nonce)).eq(msg), 'Can not sign message');\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n entropy: bkey,\n nonce: nonce,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n });\n\n // Number of bytes to generate\n var ns1 = this.n.sub(new BN(1));\n\n for (var iter = 0; ; iter++) {\n var k = options.k ?\n options.k(iter) :\n new BN(drbg.generate(this.n.byteLength()));\n k = this._truncateToN(k, true);\n if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)\n continue;\n\n var kp = this.g.mul(k);\n if (kp.isInfinity())\n continue;\n\n var kpX = kp.getX();\n var r = kpX.umod(this.n);\n if (r.cmpn(0) === 0)\n continue;\n\n var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n s = s.umod(this.n);\n if (s.cmpn(0) === 0)\n continue;\n\n var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |\n (kpX.cmp(r) !== 0 ? 2 : 0);\n\n // Use complement of `s`, if it is > `n / 2`\n if (options.canonical && s.cmp(this.nh) > 0) {\n s = this.n.sub(s);\n recoveryParam ^= 1;\n }\n\n return new Signature({ r: r, s: s, recoveryParam: recoveryParam });\n }\n};\n\nEC.prototype.verify = function verify(msg, signature, key, enc, options) {\n if (!options)\n options = {};\n\n msg = this._truncateToN(msg, false, options.msgBitLength);\n key = this.keyFromPublic(key, enc);\n signature = new Signature(signature, 'hex');\n\n // Perform primitive values validation\n var r = signature.r;\n var s = signature.s;\n if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)\n return false;\n if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)\n return false;\n\n // Validate signature\n var sinv = s.invm(this.n);\n var u1 = sinv.mul(msg).umod(this.n);\n var u2 = sinv.mul(r).umod(this.n);\n var p;\n\n if (!this.curve._maxwellTrick) {\n p = this.g.mulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n return p.getX().umod(this.n).cmp(r) === 0;\n }\n\n // NOTE: Greg Maxwell's trick, inspired by:\n // https://git.io/vad3K\n\n p = this.g.jmulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n // Compare `p.x` of Jacobian point with `r`,\n // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n // inverse of `p.z^2`\n return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function(msg, signature, j, enc) {\n assert((3 & j) === j, 'The recovery param is more than two bits');\n signature = new Signature(signature, enc);\n\n var n = this.n;\n var e = new BN(msg);\n var r = signature.r;\n var s = signature.s;\n\n // A set LSB signifies that the y-coordinate is odd\n var isYOdd = j & 1;\n var isSecondKey = j >> 1;\n if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)\n throw new Error('Unable to find sencond key candinate');\n\n // 1.1. Let x = r + jn.\n if (isSecondKey)\n r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);\n else\n r = this.curve.pointFromX(r, isYOdd);\n\n var rInv = signature.r.invm(n);\n var s1 = n.sub(e).mul(rInv).umod(n);\n var s2 = s.mul(rInv).umod(n);\n\n // 1.6.1 Compute Q = r^-1 (sR - eG)\n // Q = r^-1 (sR + -eG)\n return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {\n signature = new Signature(signature, enc);\n if (signature.recoveryParam !== null)\n return signature.recoveryParam;\n\n for (var i = 0; i < 4; i++) {\n var Qprime;\n try {\n Qprime = this.recoverPubKey(e, signature, i);\n } catch (e) {\n continue;\n }\n\n if (Qprime.eq(Q))\n return i;\n }\n throw new Error('Unable to find valid recovery factor');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar cachedProperty = utils.cachedProperty;\n\n/**\n* @param {EDDSA} eddsa - instance\n* @param {Object} params - public/private key parameters\n*\n* @param {Array} [params.secret] - secret seed bytes\n* @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)\n* @param {Array} [params.pub] - public key point encoded as bytes\n*\n*/\nfunction KeyPair(eddsa, params) {\n this.eddsa = eddsa;\n this._secret = parseBytes(params.secret);\n if (eddsa.isPoint(params.pub))\n this._pub = params.pub;\n else\n this._pubBytes = parseBytes(params.pub);\n}\n\nKeyPair.fromPublic = function fromPublic(eddsa, pub) {\n if (pub instanceof KeyPair)\n return pub;\n return new KeyPair(eddsa, { pub: pub });\n};\n\nKeyPair.fromSecret = function fromSecret(eddsa, secret) {\n if (secret instanceof KeyPair)\n return secret;\n return new KeyPair(eddsa, { secret: secret });\n};\n\nKeyPair.prototype.secret = function secret() {\n return this._secret;\n};\n\ncachedProperty(KeyPair, 'pubBytes', function pubBytes() {\n return this.eddsa.encodePoint(this.pub());\n});\n\ncachedProperty(KeyPair, 'pub', function pub() {\n if (this._pubBytes)\n return this.eddsa.decodePoint(this._pubBytes);\n return this.eddsa.g.mul(this.priv());\n});\n\ncachedProperty(KeyPair, 'privBytes', function privBytes() {\n var eddsa = this.eddsa;\n var hash = this.hash();\n var lastIx = eddsa.encodingLength - 1;\n\n var a = hash.slice(0, eddsa.encodingLength);\n a[0] &= 248;\n a[lastIx] &= 127;\n a[lastIx] |= 64;\n\n return a;\n});\n\ncachedProperty(KeyPair, 'priv', function priv() {\n return this.eddsa.decodeInt(this.privBytes());\n});\n\ncachedProperty(KeyPair, 'hash', function hash() {\n return this.eddsa.hash().update(this.secret()).digest();\n});\n\ncachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {\n return this.hash().slice(this.eddsa.encodingLength);\n});\n\nKeyPair.prototype.sign = function sign(message) {\n assert(this._secret, 'KeyPair can only verify');\n return this.eddsa.sign(message, this);\n};\n\nKeyPair.prototype.verify = function verify(message, sig) {\n return this.eddsa.verify(message, sig, this);\n};\n\nKeyPair.prototype.getSecret = function getSecret(enc) {\n assert(this._secret, 'KeyPair is public only');\n return utils.encode(this.secret(), enc);\n};\n\nKeyPair.prototype.getPublic = function getPublic(enc) {\n return utils.encode(this.pubBytes(), enc);\n};\n\nmodule.exports = KeyPair;\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar cachedProperty = utils.cachedProperty;\nvar parseBytes = utils.parseBytes;\n\n/**\n* @param {EDDSA} eddsa - eddsa instance\n* @param {Array|Object} sig -\n* @param {Array|Point} [sig.R] - R point as Point or bytes\n* @param {Array|bn} [sig.S] - S scalar as bn or bytes\n* @param {Array} [sig.Rencoded] - R point encoded\n* @param {Array} [sig.Sencoded] - S scalar encoded\n*/\nfunction Signature(eddsa, sig) {\n this.eddsa = eddsa;\n\n if (typeof sig !== 'object')\n sig = parseBytes(sig);\n\n if (Array.isArray(sig)) {\n assert(sig.length === eddsa.encodingLength * 2, 'Signature has invalid size');\n sig = {\n R: sig.slice(0, eddsa.encodingLength),\n S: sig.slice(eddsa.encodingLength),\n };\n }\n\n assert(sig.R && sig.S, 'Signature without R or S');\n\n if (eddsa.isPoint(sig.R))\n this._R = sig.R;\n if (sig.S instanceof BN)\n this._S = sig.S;\n\n this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;\n this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;\n}\n\ncachedProperty(Signature, 'S', function S() {\n return this.eddsa.decodeInt(this.Sencoded());\n});\n\ncachedProperty(Signature, 'R', function R() {\n return this.eddsa.decodePoint(this.Rencoded());\n});\n\ncachedProperty(Signature, 'Rencoded', function Rencoded() {\n return this.eddsa.encodePoint(this.R());\n});\n\ncachedProperty(Signature, 'Sencoded', function Sencoded() {\n return this.eddsa.encodeInt(this.S());\n});\n\nSignature.prototype.toBytes = function toBytes() {\n return this.Rencoded().concat(this.Sencoded());\n};\n\nSignature.prototype.toHex = function toHex() {\n return utils.encode(this.toBytes(), 'hex').toUpperCase();\n};\n\nmodule.exports = Signature;\n","'use strict';\n\nvar hash = require('hash.js');\nvar curves = require('../curves');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EDDSA(curve) {\n assert(curve === 'ed25519', 'only tested with ed25519 so far');\n\n if (!(this instanceof EDDSA))\n return new EDDSA(curve);\n\n curve = curves[curve].curve;\n this.curve = curve;\n this.g = curve.g;\n this.g.precompute(curve.n.bitLength() + 1);\n\n this.pointClass = curve.point().constructor;\n this.encodingLength = Math.ceil(curve.n.bitLength() / 8);\n this.hash = hash.sha512;\n}\n\nmodule.exports = EDDSA;\n\n/**\n* @param {Array|String} message - message bytes\n* @param {Array|String|KeyPair} secret - secret bytes or a keypair\n* @returns {Signature} - signature\n*/\nEDDSA.prototype.sign = function sign(message, secret) {\n message = parseBytes(message);\n var key = this.keyFromSecret(secret);\n var r = this.hashInt(key.messagePrefix(), message);\n var R = this.g.mul(r);\n var Rencoded = this.encodePoint(R);\n var s_ = this.hashInt(Rencoded, key.pubBytes(), message)\n .mul(key.priv());\n var S = r.add(s_).umod(this.curve.n);\n return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });\n};\n\n/**\n* @param {Array} message - message bytes\n* @param {Array|String|Signature} sig - sig bytes\n* @param {Array|String|Point|KeyPair} pub - public key\n* @returns {Boolean} - true if public key matches sig of message\n*/\nEDDSA.prototype.verify = function verify(message, sig, pub) {\n message = parseBytes(message);\n sig = this.makeSignature(sig);\n if (sig.S().gte(sig.eddsa.curve.n) || sig.S().isNeg()) {\n return false;\n }\n var key = this.keyFromPublic(pub);\n var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);\n var SG = this.g.mul(sig.S());\n var RplusAh = sig.R().add(key.pub().mul(h));\n return RplusAh.eq(SG);\n};\n\nEDDSA.prototype.hashInt = function hashInt() {\n var hash = this.hash();\n for (var i = 0; i < arguments.length; i++)\n hash.update(arguments[i]);\n return utils.intFromLE(hash.digest()).umod(this.curve.n);\n};\n\nEDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {\n return KeyPair.fromPublic(this, pub);\n};\n\nEDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {\n return KeyPair.fromSecret(this, secret);\n};\n\nEDDSA.prototype.makeSignature = function makeSignature(sig) {\n if (sig instanceof Signature)\n return sig;\n return new Signature(this, sig);\n};\n\n/**\n* * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2\n*\n* EDDSA defines methods for encoding and decoding points and integers. These are\n* helper convenience methods, that pass along to utility functions implied\n* parameters.\n*\n*/\nEDDSA.prototype.encodePoint = function encodePoint(point) {\n var enc = point.getY().toArray('le', this.encodingLength);\n enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0;\n return enc;\n};\n\nEDDSA.prototype.decodePoint = function decodePoint(bytes) {\n bytes = utils.parseBytes(bytes);\n\n var lastIx = bytes.length - 1;\n var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80);\n var xIsOdd = (bytes[lastIx] & 0x80) !== 0;\n\n var y = utils.intFromLE(normed);\n return this.curve.pointFromY(y, xIsOdd);\n};\n\nEDDSA.prototype.encodeInt = function encodeInt(num) {\n return num.toArray('le', this.encodingLength);\n};\n\nEDDSA.prototype.decodeInt = function decodeInt(bytes) {\n return utils.intFromLE(bytes);\n};\n\nEDDSA.prototype.isPoint = function isPoint(val) {\n return val instanceof this.pointClass;\n};\n","'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = require('../package.json').version;\nelliptic.utils = require('./elliptic/utils');\nelliptic.rand = require('brorand');\nelliptic.curve = require('./elliptic/curve');\nelliptic.curves = require('./elliptic/curves');\n\n// Protocols\nelliptic.ec = require('./elliptic/ec');\nelliptic.eddsa = require('./elliptic/eddsa');\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","var indexOf = function (xs, item) {\n if (xs.indexOf) return xs.indexOf(item);\n else for (var i = 0; i < xs.length; i++) {\n if (xs[i] === item) return i;\n }\n return -1;\n};\nvar Object_keys = function (obj) {\n if (Object.keys) return Object.keys(obj)\n else {\n var res = [];\n for (var key in obj) res.push(key)\n return res;\n }\n};\n\nvar forEach = function (xs, fn) {\n if (xs.forEach) return xs.forEach(fn)\n else for (var i = 0; i < xs.length; i++) {\n fn(xs[i], i, xs);\n }\n};\n\nvar defineProp = (function() {\n try {\n Object.defineProperty({}, '_', {});\n return function(obj, name, value) {\n Object.defineProperty(obj, name, {\n writable: true,\n enumerable: false,\n configurable: true,\n value: value\n })\n };\n } catch(e) {\n return function(obj, name, value) {\n obj[name] = value;\n };\n }\n}());\n\nvar globals = ['Array', 'Boolean', 'Date', 'Error', 'EvalError', 'Function',\n'Infinity', 'JSON', 'Math', 'NaN', 'Number', 'Object', 'RangeError',\n'ReferenceError', 'RegExp', 'String', 'SyntaxError', 'TypeError', 'URIError',\n'decodeURI', 'decodeURIComponent', 'encodeURI', 'encodeURIComponent', 'escape',\n'eval', 'isFinite', 'isNaN', 'parseFloat', 'parseInt', 'undefined', 'unescape'];\n\nfunction Context() {}\nContext.prototype = {};\n\nvar Script = exports.Script = function NodeScript (code) {\n if (!(this instanceof Script)) return new Script(code);\n this.code = code;\n};\n\nScript.prototype.runInContext = function (context) {\n if (!(context instanceof Context)) {\n throw new TypeError(\"needs a 'context' argument.\");\n }\n \n var iframe = document.createElement('iframe');\n if (!iframe.style) iframe.style = {};\n iframe.style.display = 'none';\n \n document.body.appendChild(iframe);\n \n var win = iframe.contentWindow;\n var wEval = win.eval, wExecScript = win.execScript;\n\n if (!wEval && wExecScript) {\n // win.eval() magically appears when this is called in IE:\n wExecScript.call(win, 'null');\n wEval = win.eval;\n }\n \n forEach(Object_keys(context), function (key) {\n win[key] = context[key];\n });\n forEach(globals, function (key) {\n if (context[key]) {\n win[key] = context[key];\n }\n });\n \n var winKeys = Object_keys(win);\n\n var res = wEval.call(win, this.code);\n \n forEach(Object_keys(win), function (key) {\n // Avoid copying circular objects like `top` and `window` by only\n // updating existing context properties or new properties in the `win`\n // that was only introduced after the eval.\n if (key in context || indexOf(winKeys, key) === -1) {\n context[key] = win[key];\n }\n });\n\n forEach(globals, function (key) {\n if (!(key in context)) {\n defineProp(context, key, win[key]);\n }\n });\n \n document.body.removeChild(iframe);\n \n return res;\n};\n\nScript.prototype.runInThisContext = function () {\n return eval(this.code); // maybe...\n};\n\nScript.prototype.runInNewContext = function (context) {\n var ctx = Script.createContext(context);\n var res = this.runInContext(ctx);\n\n if (context) {\n forEach(Object_keys(ctx), function (key) {\n context[key] = ctx[key];\n });\n }\n\n return res;\n};\n\nforEach(Object_keys(Script.prototype), function (name) {\n exports[name] = Script[name] = function (code) {\n var s = Script(code);\n return s[name].apply(s, [].slice.call(arguments, 1));\n };\n});\n\nexports.isContext = function (context) {\n return context instanceof Context;\n};\n\nexports.createScript = function (code) {\n return exports.Script(code);\n};\n\nexports.createContext = Script.createContext = function (context) {\n var copy = new Context();\n if(typeof context === 'object') {\n forEach(Object_keys(context), function (key) {\n copy[key] = context[key];\n });\n }\n return copy;\n};\n","var asn1 = require('../asn1');\nvar inherits = require('inherits');\n\nvar api = exports;\n\napi.define = function define(name, body) {\n return new Entity(name, body);\n};\n\nfunction Entity(name, body) {\n this.name = name;\n this.body = body;\n\n this.decoders = {};\n this.encoders = {};\n};\n\nEntity.prototype._createNamed = function createNamed(base) {\n var named;\n try {\n named = require('vm').runInThisContext(\n '(function ' + this.name + '(entity) {\\n' +\n ' this._initNamed(entity);\\n' +\n '})'\n );\n } catch (e) {\n named = function (entity) {\n this._initNamed(entity);\n };\n }\n inherits(named, base);\n named.prototype._initNamed = function initnamed(entity) {\n base.call(this, entity);\n };\n\n return new named(this);\n};\n\nEntity.prototype._getDecoder = function _getDecoder(enc) {\n enc = enc || 'der';\n // Lazily create decoder\n if (!this.decoders.hasOwnProperty(enc))\n this.decoders[enc] = this._createNamed(asn1.decoders[enc]);\n return this.decoders[enc];\n};\n\nEntity.prototype.decode = function decode(data, enc, options) {\n return this._getDecoder(enc).decode(data, options);\n};\n\nEntity.prototype._getEncoder = function _getEncoder(enc) {\n enc = enc || 'der';\n // Lazily create encoder\n if (!this.encoders.hasOwnProperty(enc))\n this.encoders[enc] = this._createNamed(asn1.encoders[enc]);\n return this.encoders[enc];\n};\n\nEntity.prototype.encode = function encode(data, enc, /* internal */ reporter) {\n return this._getEncoder(enc).encode(data, reporter);\n};\n","var inherits = require('inherits');\n\nfunction Reporter(options) {\n this._reporterState = {\n obj: null,\n path: [],\n options: options || {},\n errors: []\n };\n}\nexports.Reporter = Reporter;\n\nReporter.prototype.isError = function isError(obj) {\n return obj instanceof ReporterError;\n};\n\nReporter.prototype.save = function save() {\n var state = this._reporterState;\n\n return { obj: state.obj, pathLen: state.path.length };\n};\n\nReporter.prototype.restore = function restore(data) {\n var state = this._reporterState;\n\n state.obj = data.obj;\n state.path = state.path.slice(0, data.pathLen);\n};\n\nReporter.prototype.enterKey = function enterKey(key) {\n return this._reporterState.path.push(key);\n};\n\nReporter.prototype.exitKey = function exitKey(index) {\n var state = this._reporterState;\n\n state.path = state.path.slice(0, index - 1);\n};\n\nReporter.prototype.leaveKey = function leaveKey(index, key, value) {\n var state = this._reporterState;\n\n this.exitKey(index);\n if (state.obj !== null)\n state.obj[key] = value;\n};\n\nReporter.prototype.path = function path() {\n return this._reporterState.path.join('/');\n};\n\nReporter.prototype.enterObject = function enterObject() {\n var state = this._reporterState;\n\n var prev = state.obj;\n state.obj = {};\n return prev;\n};\n\nReporter.prototype.leaveObject = function leaveObject(prev) {\n var state = this._reporterState;\n\n var now = state.obj;\n state.obj = prev;\n return now;\n};\n\nReporter.prototype.error = function error(msg) {\n var err;\n var state = this._reporterState;\n\n var inherited = msg instanceof ReporterError;\n if (inherited) {\n err = msg;\n } else {\n err = new ReporterError(state.path.map(function(elem) {\n return '[' + JSON.stringify(elem) + ']';\n }).join(''), msg.message || msg, msg.stack);\n }\n\n if (!state.options.partial)\n throw err;\n\n if (!inherited)\n state.errors.push(err);\n\n return err;\n};\n\nReporter.prototype.wrapResult = function wrapResult(result) {\n var state = this._reporterState;\n if (!state.options.partial)\n return result;\n\n return {\n result: this.isError(result) ? null : result,\n errors: state.errors\n };\n};\n\nfunction ReporterError(path, msg) {\n this.path = path;\n this.rethrow(msg);\n};\ninherits(ReporterError, Error);\n\nReporterError.prototype.rethrow = function rethrow(msg) {\n this.message = msg + ' at: ' + (this.path || '(shallow)');\n if (Error.captureStackTrace)\n Error.captureStackTrace(this, ReporterError);\n\n if (!this.stack) {\n try {\n // IE only adds stack when thrown\n throw new Error(this.message);\n } catch (e) {\n this.stack = e.stack;\n }\n }\n return this;\n};\n","var inherits = require('inherits');\nvar Reporter = require('../base').Reporter;\nvar Buffer = require('buffer').Buffer;\n\nfunction DecoderBuffer(base, options) {\n Reporter.call(this, options);\n if (!Buffer.isBuffer(base)) {\n this.error('Input not Buffer');\n return;\n }\n\n this.base = base;\n this.offset = 0;\n this.length = base.length;\n}\ninherits(DecoderBuffer, Reporter);\nexports.DecoderBuffer = DecoderBuffer;\n\nDecoderBuffer.prototype.save = function save() {\n return { offset: this.offset, reporter: Reporter.prototype.save.call(this) };\n};\n\nDecoderBuffer.prototype.restore = function restore(save) {\n // Return skipped data\n var res = new DecoderBuffer(this.base);\n res.offset = save.offset;\n res.length = this.offset;\n\n this.offset = save.offset;\n Reporter.prototype.restore.call(this, save.reporter);\n\n return res;\n};\n\nDecoderBuffer.prototype.isEmpty = function isEmpty() {\n return this.offset === this.length;\n};\n\nDecoderBuffer.prototype.readUInt8 = function readUInt8(fail) {\n if (this.offset + 1 <= this.length)\n return this.base.readUInt8(this.offset++, true);\n else\n return this.error(fail || 'DecoderBuffer overrun');\n}\n\nDecoderBuffer.prototype.skip = function skip(bytes, fail) {\n if (!(this.offset + bytes <= this.length))\n return this.error(fail || 'DecoderBuffer overrun');\n\n var res = new DecoderBuffer(this.base);\n\n // Share reporter state\n res._reporterState = this._reporterState;\n\n res.offset = this.offset;\n res.length = this.offset + bytes;\n this.offset += bytes;\n return res;\n}\n\nDecoderBuffer.prototype.raw = function raw(save) {\n return this.base.slice(save ? save.offset : this.offset, this.length);\n}\n\nfunction EncoderBuffer(value, reporter) {\n if (Array.isArray(value)) {\n this.length = 0;\n this.value = value.map(function(item) {\n if (!(item instanceof EncoderBuffer))\n item = new EncoderBuffer(item, reporter);\n this.length += item.length;\n return item;\n }, this);\n } else if (typeof value === 'number') {\n if (!(0 <= value && value <= 0xff))\n return reporter.error('non-byte EncoderBuffer value');\n this.value = value;\n this.length = 1;\n } else if (typeof value === 'string') {\n this.value = value;\n this.length = Buffer.byteLength(value);\n } else if (Buffer.isBuffer(value)) {\n this.value = value;\n this.length = value.length;\n } else {\n return reporter.error('Unsupported type: ' + typeof value);\n }\n}\nexports.EncoderBuffer = EncoderBuffer;\n\nEncoderBuffer.prototype.join = function join(out, offset) {\n if (!out)\n out = new Buffer(this.length);\n if (!offset)\n offset = 0;\n\n if (this.length === 0)\n return out;\n\n if (Array.isArray(this.value)) {\n this.value.forEach(function(item) {\n item.join(out, offset);\n offset += item.length;\n });\n } else {\n if (typeof this.value === 'number')\n out[offset] = this.value;\n else if (typeof this.value === 'string')\n out.write(this.value, offset);\n else if (Buffer.isBuffer(this.value))\n this.value.copy(out, offset);\n offset += this.length;\n }\n\n return out;\n};\n","var Reporter = require('../base').Reporter;\nvar EncoderBuffer = require('../base').EncoderBuffer;\nvar DecoderBuffer = require('../base').DecoderBuffer;\nvar assert = require('minimalistic-assert');\n\n// Supported tags\nvar tags = [\n 'seq', 'seqof', 'set', 'setof', 'objid', 'bool',\n 'gentime', 'utctime', 'null_', 'enum', 'int', 'objDesc',\n 'bitstr', 'bmpstr', 'charstr', 'genstr', 'graphstr', 'ia5str', 'iso646str',\n 'numstr', 'octstr', 'printstr', 't61str', 'unistr', 'utf8str', 'videostr'\n];\n\n// Public methods list\nvar methods = [\n 'key', 'obj', 'use', 'optional', 'explicit', 'implicit', 'def', 'choice',\n 'any', 'contains'\n].concat(tags);\n\n// Overrided methods list\nvar overrided = [\n '_peekTag', '_decodeTag', '_use',\n '_decodeStr', '_decodeObjid', '_decodeTime',\n '_decodeNull', '_decodeInt', '_decodeBool', '_decodeList',\n\n '_encodeComposite', '_encodeStr', '_encodeObjid', '_encodeTime',\n '_encodeNull', '_encodeInt', '_encodeBool'\n];\n\nfunction Node(enc, parent) {\n var state = {};\n this._baseState = state;\n\n state.enc = enc;\n\n state.parent = parent || null;\n state.children = null;\n\n // State\n state.tag = null;\n state.args = null;\n state.reverseArgs = null;\n state.choice = null;\n state.optional = false;\n state.any = false;\n state.obj = false;\n state.use = null;\n state.useDecoder = null;\n state.key = null;\n state['default'] = null;\n state.explicit = null;\n state.implicit = null;\n state.contains = null;\n\n // Should create new instance on each method\n if (!state.parent) {\n state.children = [];\n this._wrap();\n }\n}\nmodule.exports = Node;\n\nvar stateProps = [\n 'enc', 'parent', 'children', 'tag', 'args', 'reverseArgs', 'choice',\n 'optional', 'any', 'obj', 'use', 'alteredUse', 'key', 'default', 'explicit',\n 'implicit', 'contains'\n];\n\nNode.prototype.clone = function clone() {\n var state = this._baseState;\n var cstate = {};\n stateProps.forEach(function(prop) {\n cstate[prop] = state[prop];\n });\n var res = new this.constructor(cstate.parent);\n res._baseState = cstate;\n return res;\n};\n\nNode.prototype._wrap = function wrap() {\n var state = this._baseState;\n methods.forEach(function(method) {\n this[method] = function _wrappedMethod() {\n var clone = new this.constructor(this);\n state.children.push(clone);\n return clone[method].apply(clone, arguments);\n };\n }, this);\n};\n\nNode.prototype._init = function init(body) {\n var state = this._baseState;\n\n assert(state.parent === null);\n body.call(this);\n\n // Filter children\n state.children = state.children.filter(function(child) {\n return child._baseState.parent === this;\n }, this);\n assert.equal(state.children.length, 1, 'Root node can have only one child');\n};\n\nNode.prototype._useArgs = function useArgs(args) {\n var state = this._baseState;\n\n // Filter children and args\n var children = args.filter(function(arg) {\n return arg instanceof this.constructor;\n }, this);\n args = args.filter(function(arg) {\n return !(arg instanceof this.constructor);\n }, this);\n\n if (children.length !== 0) {\n assert(state.children === null);\n state.children = children;\n\n // Replace parent to maintain backward link\n children.forEach(function(child) {\n child._baseState.parent = this;\n }, this);\n }\n if (args.length !== 0) {\n assert(state.args === null);\n state.args = args;\n state.reverseArgs = args.map(function(arg) {\n if (typeof arg !== 'object' || arg.constructor !== Object)\n return arg;\n\n var res = {};\n Object.keys(arg).forEach(function(key) {\n if (key == (key | 0))\n key |= 0;\n var value = arg[key];\n res[value] = key;\n });\n return res;\n });\n }\n};\n\n//\n// Overrided methods\n//\n\noverrided.forEach(function(method) {\n Node.prototype[method] = function _overrided() {\n var state = this._baseState;\n throw new Error(method + ' not implemented for encoding: ' + state.enc);\n };\n});\n\n//\n// Public methods\n//\n\ntags.forEach(function(tag) {\n Node.prototype[tag] = function _tagMethod() {\n var state = this._baseState;\n var args = Array.prototype.slice.call(arguments);\n\n assert(state.tag === null);\n state.tag = tag;\n\n this._useArgs(args);\n\n return this;\n };\n});\n\nNode.prototype.use = function use(item) {\n assert(item);\n var state = this._baseState;\n\n assert(state.use === null);\n state.use = item;\n\n return this;\n};\n\nNode.prototype.optional = function optional() {\n var state = this._baseState;\n\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.def = function def(val) {\n var state = this._baseState;\n\n assert(state['default'] === null);\n state['default'] = val;\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.explicit = function explicit(num) {\n var state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.explicit = num;\n\n return this;\n};\n\nNode.prototype.implicit = function implicit(num) {\n var state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.implicit = num;\n\n return this;\n};\n\nNode.prototype.obj = function obj() {\n var state = this._baseState;\n var args = Array.prototype.slice.call(arguments);\n\n state.obj = true;\n\n if (args.length !== 0)\n this._useArgs(args);\n\n return this;\n};\n\nNode.prototype.key = function key(newKey) {\n var state = this._baseState;\n\n assert(state.key === null);\n state.key = newKey;\n\n return this;\n};\n\nNode.prototype.any = function any() {\n var state = this._baseState;\n\n state.any = true;\n\n return this;\n};\n\nNode.prototype.choice = function choice(obj) {\n var state = this._baseState;\n\n assert(state.choice === null);\n state.choice = obj;\n this._useArgs(Object.keys(obj).map(function(key) {\n return obj[key];\n }));\n\n return this;\n};\n\nNode.prototype.contains = function contains(item) {\n var state = this._baseState;\n\n assert(state.use === null);\n state.contains = item;\n\n return this;\n};\n\n//\n// Decoding\n//\n\nNode.prototype._decode = function decode(input, options) {\n var state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return input.wrapResult(state.children[0]._decode(input, options));\n\n var result = state['default'];\n var present = true;\n\n var prevKey = null;\n if (state.key !== null)\n prevKey = input.enterKey(state.key);\n\n // Check if tag is there\n if (state.optional) {\n var tag = null;\n if (state.explicit !== null)\n tag = state.explicit;\n else if (state.implicit !== null)\n tag = state.implicit;\n else if (state.tag !== null)\n tag = state.tag;\n\n if (tag === null && !state.any) {\n // Trial and Error\n var save = input.save();\n try {\n if (state.choice === null)\n this._decodeGeneric(state.tag, input, options);\n else\n this._decodeChoice(input, options);\n present = true;\n } catch (e) {\n present = false;\n }\n input.restore(save);\n } else {\n present = this._peekTag(input, tag, state.any);\n\n if (input.isError(present))\n return present;\n }\n }\n\n // Push object on stack\n var prevObj;\n if (state.obj && present)\n prevObj = input.enterObject();\n\n if (present) {\n // Unwrap explicit values\n if (state.explicit !== null) {\n var explicit = this._decodeTag(input, state.explicit);\n if (input.isError(explicit))\n return explicit;\n input = explicit;\n }\n\n var start = input.offset;\n\n // Unwrap implicit and normal values\n if (state.use === null && state.choice === null) {\n if (state.any)\n var save = input.save();\n var body = this._decodeTag(\n input,\n state.implicit !== null ? state.implicit : state.tag,\n state.any\n );\n if (input.isError(body))\n return body;\n\n if (state.any)\n result = input.raw(save);\n else\n input = body;\n }\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), start, input.length, 'tagged');\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), input.offset, input.length, 'content');\n\n // Select proper method for tag\n if (state.any)\n result = result;\n else if (state.choice === null)\n result = this._decodeGeneric(state.tag, input, options);\n else\n result = this._decodeChoice(input, options);\n\n if (input.isError(result))\n return result;\n\n // Decode children\n if (!state.any && state.choice === null && state.children !== null) {\n state.children.forEach(function decodeChildren(child) {\n // NOTE: We are ignoring errors here, to let parser continue with other\n // parts of encoded data\n child._decode(input, options);\n });\n }\n\n // Decode contained/encoded by schema, only in bit or octet strings\n if (state.contains && (state.tag === 'octstr' || state.tag === 'bitstr')) {\n var data = new DecoderBuffer(result);\n result = this._getUse(state.contains, input._reporterState.obj)\n ._decode(data, options);\n }\n }\n\n // Pop object\n if (state.obj && present)\n result = input.leaveObject(prevObj);\n\n // Set key\n if (state.key !== null && (result !== null || present === true))\n input.leaveKey(prevKey, state.key, result);\n else if (prevKey !== null)\n input.exitKey(prevKey);\n\n return result;\n};\n\nNode.prototype._decodeGeneric = function decodeGeneric(tag, input, options) {\n var state = this._baseState;\n\n if (tag === 'seq' || tag === 'set')\n return null;\n if (tag === 'seqof' || tag === 'setof')\n return this._decodeList(input, tag, state.args[0], options);\n else if (/str$/.test(tag))\n return this._decodeStr(input, tag, options);\n else if (tag === 'objid' && state.args)\n return this._decodeObjid(input, state.args[0], state.args[1], options);\n else if (tag === 'objid')\n return this._decodeObjid(input, null, null, options);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._decodeTime(input, tag, options);\n else if (tag === 'null_')\n return this._decodeNull(input, options);\n else if (tag === 'bool')\n return this._decodeBool(input, options);\n else if (tag === 'objDesc')\n return this._decodeStr(input, tag, options);\n else if (tag === 'int' || tag === 'enum')\n return this._decodeInt(input, state.args && state.args[0], options);\n\n if (state.use !== null) {\n return this._getUse(state.use, input._reporterState.obj)\n ._decode(input, options);\n } else {\n return input.error('unknown tag: ' + tag);\n }\n};\n\nNode.prototype._getUse = function _getUse(entity, obj) {\n\n var state = this._baseState;\n // Create altered use decoder if implicit is set\n state.useDecoder = this._use(entity, obj);\n assert(state.useDecoder._baseState.parent === null);\n state.useDecoder = state.useDecoder._baseState.children[0];\n if (state.implicit !== state.useDecoder._baseState.implicit) {\n state.useDecoder = state.useDecoder.clone();\n state.useDecoder._baseState.implicit = state.implicit;\n }\n return state.useDecoder;\n};\n\nNode.prototype._decodeChoice = function decodeChoice(input, options) {\n var state = this._baseState;\n var result = null;\n var match = false;\n\n Object.keys(state.choice).some(function(key) {\n var save = input.save();\n var node = state.choice[key];\n try {\n var value = node._decode(input, options);\n if (input.isError(value))\n return false;\n\n result = { type: key, value: value };\n match = true;\n } catch (e) {\n input.restore(save);\n return false;\n }\n return true;\n }, this);\n\n if (!match)\n return input.error('Choice not matched');\n\n return result;\n};\n\n//\n// Encoding\n//\n\nNode.prototype._createEncoderBuffer = function createEncoderBuffer(data) {\n return new EncoderBuffer(data, this.reporter);\n};\n\nNode.prototype._encode = function encode(data, reporter, parent) {\n var state = this._baseState;\n if (state['default'] !== null && state['default'] === data)\n return;\n\n var result = this._encodeValue(data, reporter, parent);\n if (result === undefined)\n return;\n\n if (this._skipDefault(result, reporter, parent))\n return;\n\n return result;\n};\n\nNode.prototype._encodeValue = function encode(data, reporter, parent) {\n var state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return state.children[0]._encode(data, reporter || new Reporter());\n\n var result = null;\n\n // Set reporter to share it with a child class\n this.reporter = reporter;\n\n // Check if data is there\n if (state.optional && data === undefined) {\n if (state['default'] !== null)\n data = state['default']\n else\n return;\n }\n\n // Encode children first\n var content = null;\n var primitive = false;\n if (state.any) {\n // Anything that was given is translated to buffer\n result = this._createEncoderBuffer(data);\n } else if (state.choice) {\n result = this._encodeChoice(data, reporter);\n } else if (state.contains) {\n content = this._getUse(state.contains, parent)._encode(data, reporter);\n primitive = true;\n } else if (state.children) {\n content = state.children.map(function(child) {\n if (child._baseState.tag === 'null_')\n return child._encode(null, reporter, data);\n\n if (child._baseState.key === null)\n return reporter.error('Child should have a key');\n var prevKey = reporter.enterKey(child._baseState.key);\n\n if (typeof data !== 'object')\n return reporter.error('Child expected, but input is not object');\n\n var res = child._encode(data[child._baseState.key], reporter, data);\n reporter.leaveKey(prevKey);\n\n return res;\n }, this).filter(function(child) {\n return child;\n });\n content = this._createEncoderBuffer(content);\n } else {\n if (state.tag === 'seqof' || state.tag === 'setof') {\n // TODO(indutny): this should be thrown on DSL level\n if (!(state.args && state.args.length === 1))\n return reporter.error('Too many args for : ' + state.tag);\n\n if (!Array.isArray(data))\n return reporter.error('seqof/setof, but data is not Array');\n\n var child = this.clone();\n child._baseState.implicit = null;\n content = this._createEncoderBuffer(data.map(function(item) {\n var state = this._baseState;\n\n return this._getUse(state.args[0], data)._encode(item, reporter);\n }, child));\n } else if (state.use !== null) {\n result = this._getUse(state.use, parent)._encode(data, reporter);\n } else {\n content = this._encodePrimitive(state.tag, data);\n primitive = true;\n }\n }\n\n // Encode data itself\n var result;\n if (!state.any && state.choice === null) {\n var tag = state.implicit !== null ? state.implicit : state.tag;\n var cls = state.implicit === null ? 'universal' : 'context';\n\n if (tag === null) {\n if (state.use === null)\n reporter.error('Tag could be omitted only for .use()');\n } else {\n if (state.use === null)\n result = this._encodeComposite(tag, primitive, cls, content);\n }\n }\n\n // Wrap in explicit\n if (state.explicit !== null)\n result = this._encodeComposite(state.explicit, false, 'context', result);\n\n return result;\n};\n\nNode.prototype._encodeChoice = function encodeChoice(data, reporter) {\n var state = this._baseState;\n\n var node = state.choice[data.type];\n if (!node) {\n assert(\n false,\n data.type + ' not found in ' +\n JSON.stringify(Object.keys(state.choice)));\n }\n return node._encode(data.value, reporter);\n};\n\nNode.prototype._encodePrimitive = function encodePrimitive(tag, data) {\n var state = this._baseState;\n\n if (/str$/.test(tag))\n return this._encodeStr(data, tag);\n else if (tag === 'objid' && state.args)\n return this._encodeObjid(data, state.reverseArgs[0], state.args[1]);\n else if (tag === 'objid')\n return this._encodeObjid(data, null, null);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._encodeTime(data, tag);\n else if (tag === 'null_')\n return this._encodeNull();\n else if (tag === 'int' || tag === 'enum')\n return this._encodeInt(data, state.args && state.reverseArgs[0]);\n else if (tag === 'bool')\n return this._encodeBool(data);\n else if (tag === 'objDesc')\n return this._encodeStr(data, tag);\n else\n throw new Error('Unsupported tag: ' + tag);\n};\n\nNode.prototype._isNumstr = function isNumstr(str) {\n return /^[0-9 ]*$/.test(str);\n};\n\nNode.prototype._isPrintstr = function isPrintstr(str) {\n return /^[A-Za-z0-9 '\\(\\)\\+,\\-\\.\\/:=\\?]*$/.test(str);\n};\n","var base = exports;\n\nbase.Reporter = require('./reporter').Reporter;\nbase.DecoderBuffer = require('./buffer').DecoderBuffer;\nbase.EncoderBuffer = require('./buffer').EncoderBuffer;\nbase.Node = require('./node');\n","var constants = require('../constants');\n\nexports.tagClass = {\n 0: 'universal',\n 1: 'application',\n 2: 'context',\n 3: 'private'\n};\nexports.tagClassByName = constants._reverse(exports.tagClass);\n\nexports.tag = {\n 0x00: 'end',\n 0x01: 'bool',\n 0x02: 'int',\n 0x03: 'bitstr',\n 0x04: 'octstr',\n 0x05: 'null_',\n 0x06: 'objid',\n 0x07: 'objDesc',\n 0x08: 'external',\n 0x09: 'real',\n 0x0a: 'enum',\n 0x0b: 'embed',\n 0x0c: 'utf8str',\n 0x0d: 'relativeOid',\n 0x10: 'seq',\n 0x11: 'set',\n 0x12: 'numstr',\n 0x13: 'printstr',\n 0x14: 't61str',\n 0x15: 'videostr',\n 0x16: 'ia5str',\n 0x17: 'utctime',\n 0x18: 'gentime',\n 0x19: 'graphstr',\n 0x1a: 'iso646str',\n 0x1b: 'genstr',\n 0x1c: 'unistr',\n 0x1d: 'charstr',\n 0x1e: 'bmpstr'\n};\nexports.tagByName = constants._reverse(exports.tag);\n","var constants = exports;\n\n// Helper\nconstants._reverse = function reverse(map) {\n var res = {};\n\n Object.keys(map).forEach(function(key) {\n // Convert key to integer if it is stringified\n if ((key | 0) == key)\n key = key | 0;\n\n var value = map[key];\n res[value] = key;\n });\n\n return res;\n};\n\nconstants.der = require('./der');\n","var inherits = require('inherits');\n\nvar asn1 = require('../../asn1');\nvar base = asn1.base;\nvar bignum = asn1.bignum;\n\n// Import DER constants\nvar der = asn1.constants.der;\n\nfunction DERDecoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n};\nmodule.exports = DERDecoder;\n\nDERDecoder.prototype.decode = function decode(data, options) {\n if (!(data instanceof base.DecoderBuffer))\n data = new base.DecoderBuffer(data, options);\n\n return this.tree._decode(data, options);\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n base.Node.call(this, 'der', parent);\n}\ninherits(DERNode, base.Node);\n\nDERNode.prototype._peekTag = function peekTag(buffer, tag, any) {\n if (buffer.isEmpty())\n return false;\n\n var state = buffer.save();\n var decodedTag = derDecodeTag(buffer, 'Failed to peek tag: \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n buffer.restore(state);\n\n return decodedTag.tag === tag || decodedTag.tagStr === tag ||\n (decodedTag.tagStr + 'of') === tag || any;\n};\n\nDERNode.prototype._decodeTag = function decodeTag(buffer, tag, any) {\n var decodedTag = derDecodeTag(buffer,\n 'Failed to decode tag of \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n var len = derDecodeLen(buffer,\n decodedTag.primitive,\n 'Failed to get length of \"' + tag + '\"');\n\n // Failure\n if (buffer.isError(len))\n return len;\n\n if (!any &&\n decodedTag.tag !== tag &&\n decodedTag.tagStr !== tag &&\n decodedTag.tagStr + 'of' !== tag) {\n return buffer.error('Failed to match tag: \"' + tag + '\"');\n }\n\n if (decodedTag.primitive || len !== null)\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n\n // Indefinite length... find END tag\n var state = buffer.save();\n var res = this._skipUntilEnd(\n buffer,\n 'Failed to skip indefinite length body: \"' + this.tag + '\"');\n if (buffer.isError(res))\n return res;\n\n len = buffer.offset - state.offset;\n buffer.restore(state);\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n};\n\nDERNode.prototype._skipUntilEnd = function skipUntilEnd(buffer, fail) {\n while (true) {\n var tag = derDecodeTag(buffer, fail);\n if (buffer.isError(tag))\n return tag;\n var len = derDecodeLen(buffer, tag.primitive, fail);\n if (buffer.isError(len))\n return len;\n\n var res;\n if (tag.primitive || len !== null)\n res = buffer.skip(len)\n else\n res = this._skipUntilEnd(buffer, fail);\n\n // Failure\n if (buffer.isError(res))\n return res;\n\n if (tag.tagStr === 'end')\n break;\n }\n};\n\nDERNode.prototype._decodeList = function decodeList(buffer, tag, decoder,\n options) {\n var result = [];\n while (!buffer.isEmpty()) {\n var possibleEnd = this._peekTag(buffer, 'end');\n if (buffer.isError(possibleEnd))\n return possibleEnd;\n\n var res = decoder.decode(buffer, 'der', options);\n if (buffer.isError(res) && possibleEnd)\n break;\n result.push(res);\n }\n return result;\n};\n\nDERNode.prototype._decodeStr = function decodeStr(buffer, tag) {\n if (tag === 'bitstr') {\n var unused = buffer.readUInt8();\n if (buffer.isError(unused))\n return unused;\n return { unused: unused, data: buffer.raw() };\n } else if (tag === 'bmpstr') {\n var raw = buffer.raw();\n if (raw.length % 2 === 1)\n return buffer.error('Decoding of string type: bmpstr length mismatch');\n\n var str = '';\n for (var i = 0; i < raw.length / 2; i++) {\n str += String.fromCharCode(raw.readUInt16BE(i * 2));\n }\n return str;\n } else if (tag === 'numstr') {\n var numstr = buffer.raw().toString('ascii');\n if (!this._isNumstr(numstr)) {\n return buffer.error('Decoding of string type: ' +\n 'numstr unsupported characters');\n }\n return numstr;\n } else if (tag === 'octstr') {\n return buffer.raw();\n } else if (tag === 'objDesc') {\n return buffer.raw();\n } else if (tag === 'printstr') {\n var printstr = buffer.raw().toString('ascii');\n if (!this._isPrintstr(printstr)) {\n return buffer.error('Decoding of string type: ' +\n 'printstr unsupported characters');\n }\n return printstr;\n } else if (/str$/.test(tag)) {\n return buffer.raw().toString();\n } else {\n return buffer.error('Decoding of string type: ' + tag + ' unsupported');\n }\n};\n\nDERNode.prototype._decodeObjid = function decodeObjid(buffer, values, relative) {\n var result;\n var identifiers = [];\n var ident = 0;\n while (!buffer.isEmpty()) {\n var subident = buffer.readUInt8();\n ident <<= 7;\n ident |= subident & 0x7f;\n if ((subident & 0x80) === 0) {\n identifiers.push(ident);\n ident = 0;\n }\n }\n if (subident & 0x80)\n identifiers.push(ident);\n\n var first = (identifiers[0] / 40) | 0;\n var second = identifiers[0] % 40;\n\n if (relative)\n result = identifiers;\n else\n result = [first, second].concat(identifiers.slice(1));\n\n if (values) {\n var tmp = values[result.join(' ')];\n if (tmp === undefined)\n tmp = values[result.join('.')];\n if (tmp !== undefined)\n result = tmp;\n }\n\n return result;\n};\n\nDERNode.prototype._decodeTime = function decodeTime(buffer, tag) {\n var str = buffer.raw().toString();\n if (tag === 'gentime') {\n var year = str.slice(0, 4) | 0;\n var mon = str.slice(4, 6) | 0;\n var day = str.slice(6, 8) | 0;\n var hour = str.slice(8, 10) | 0;\n var min = str.slice(10, 12) | 0;\n var sec = str.slice(12, 14) | 0;\n } else if (tag === 'utctime') {\n var year = str.slice(0, 2) | 0;\n var mon = str.slice(2, 4) | 0;\n var day = str.slice(4, 6) | 0;\n var hour = str.slice(6, 8) | 0;\n var min = str.slice(8, 10) | 0;\n var sec = str.slice(10, 12) | 0;\n if (year < 70)\n year = 2000 + year;\n else\n year = 1900 + year;\n } else {\n return buffer.error('Decoding ' + tag + ' time is not supported yet');\n }\n\n return Date.UTC(year, mon - 1, day, hour, min, sec, 0);\n};\n\nDERNode.prototype._decodeNull = function decodeNull(buffer) {\n return null;\n};\n\nDERNode.prototype._decodeBool = function decodeBool(buffer) {\n var res = buffer.readUInt8();\n if (buffer.isError(res))\n return res;\n else\n return res !== 0;\n};\n\nDERNode.prototype._decodeInt = function decodeInt(buffer, values) {\n // Bigint, return as it is (assume big endian)\n var raw = buffer.raw();\n var res = new bignum(raw);\n\n if (values)\n res = values[res.toString(10)] || res;\n\n return res;\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getDecoder('der').tree;\n};\n\n// Utility methods\n\nfunction derDecodeTag(buf, fail) {\n var tag = buf.readUInt8(fail);\n if (buf.isError(tag))\n return tag;\n\n var cls = der.tagClass[tag >> 6];\n var primitive = (tag & 0x20) === 0;\n\n // Multi-octet tag - load\n if ((tag & 0x1f) === 0x1f) {\n var oct = tag;\n tag = 0;\n while ((oct & 0x80) === 0x80) {\n oct = buf.readUInt8(fail);\n if (buf.isError(oct))\n return oct;\n\n tag <<= 7;\n tag |= oct & 0x7f;\n }\n } else {\n tag &= 0x1f;\n }\n var tagStr = der.tag[tag];\n\n return {\n cls: cls,\n primitive: primitive,\n tag: tag,\n tagStr: tagStr\n };\n}\n\nfunction derDecodeLen(buf, primitive, fail) {\n var len = buf.readUInt8(fail);\n if (buf.isError(len))\n return len;\n\n // Indefinite form\n if (!primitive && len === 0x80)\n return null;\n\n // Definite form\n if ((len & 0x80) === 0) {\n // Short form\n return len;\n }\n\n // Long form\n var num = len & 0x7f;\n if (num > 4)\n return buf.error('length octect is too long');\n\n len = 0;\n for (var i = 0; i < num; i++) {\n len <<= 8;\n var j = buf.readUInt8(fail);\n if (buf.isError(j))\n return j;\n len |= j;\n }\n\n return len;\n}\n","var inherits = require('inherits');\nvar Buffer = require('buffer').Buffer;\n\nvar DERDecoder = require('./der');\n\nfunction PEMDecoder(entity) {\n DERDecoder.call(this, entity);\n this.enc = 'pem';\n};\ninherits(PEMDecoder, DERDecoder);\nmodule.exports = PEMDecoder;\n\nPEMDecoder.prototype.decode = function decode(data, options) {\n var lines = data.toString().split(/[\\r\\n]+/g);\n\n var label = options.label.toUpperCase();\n\n var re = /^-----(BEGIN|END) ([^-]+)-----$/;\n var start = -1;\n var end = -1;\n for (var i = 0; i < lines.length; i++) {\n var match = lines[i].match(re);\n if (match === null)\n continue;\n\n if (match[2] !== label)\n continue;\n\n if (start === -1) {\n if (match[1] !== 'BEGIN')\n break;\n start = i;\n } else {\n if (match[1] !== 'END')\n break;\n end = i;\n break;\n }\n }\n if (start === -1 || end === -1)\n throw new Error('PEM section not found for: ' + label);\n\n var base64 = lines.slice(start + 1, end).join('');\n // Remove excessive symbols\n base64.replace(/[^a-z0-9\\+\\/=]+/gi, '');\n\n var input = new Buffer(base64, 'base64');\n return DERDecoder.prototype.decode.call(this, input, options);\n};\n","var decoders = exports;\n\ndecoders.der = require('./der');\ndecoders.pem = require('./pem');\n","var inherits = require('inherits');\nvar Buffer = require('buffer').Buffer;\n\nvar asn1 = require('../../asn1');\nvar base = asn1.base;\n\n// Import DER constants\nvar der = asn1.constants.der;\n\nfunction DEREncoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n};\nmodule.exports = DEREncoder;\n\nDEREncoder.prototype.encode = function encode(data, reporter) {\n return this.tree._encode(data, reporter).join();\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n base.Node.call(this, 'der', parent);\n}\ninherits(DERNode, base.Node);\n\nDERNode.prototype._encodeComposite = function encodeComposite(tag,\n primitive,\n cls,\n content) {\n var encodedTag = encodeTag(tag, primitive, cls, this.reporter);\n\n // Short form\n if (content.length < 0x80) {\n var header = new Buffer(2);\n header[0] = encodedTag;\n header[1] = content.length;\n return this._createEncoderBuffer([ header, content ]);\n }\n\n // Long form\n // Count octets required to store length\n var lenOctets = 1;\n for (var i = content.length; i >= 0x100; i >>= 8)\n lenOctets++;\n\n var header = new Buffer(1 + 1 + lenOctets);\n header[0] = encodedTag;\n header[1] = 0x80 | lenOctets;\n\n for (var i = 1 + lenOctets, j = content.length; j > 0; i--, j >>= 8)\n header[i] = j & 0xff;\n\n return this._createEncoderBuffer([ header, content ]);\n};\n\nDERNode.prototype._encodeStr = function encodeStr(str, tag) {\n if (tag === 'bitstr') {\n return this._createEncoderBuffer([ str.unused | 0, str.data ]);\n } else if (tag === 'bmpstr') {\n var buf = new Buffer(str.length * 2);\n for (var i = 0; i < str.length; i++) {\n buf.writeUInt16BE(str.charCodeAt(i), i * 2);\n }\n return this._createEncoderBuffer(buf);\n } else if (tag === 'numstr') {\n if (!this._isNumstr(str)) {\n return this.reporter.error('Encoding of string type: numstr supports ' +\n 'only digits and space');\n }\n return this._createEncoderBuffer(str);\n } else if (tag === 'printstr') {\n if (!this._isPrintstr(str)) {\n return this.reporter.error('Encoding of string type: printstr supports ' +\n 'only latin upper and lower case letters, ' +\n 'digits, space, apostrophe, left and rigth ' +\n 'parenthesis, plus sign, comma, hyphen, ' +\n 'dot, slash, colon, equal sign, ' +\n 'question mark');\n }\n return this._createEncoderBuffer(str);\n } else if (/str$/.test(tag)) {\n return this._createEncoderBuffer(str);\n } else if (tag === 'objDesc') {\n return this._createEncoderBuffer(str);\n } else {\n return this.reporter.error('Encoding of string type: ' + tag +\n ' unsupported');\n }\n};\n\nDERNode.prototype._encodeObjid = function encodeObjid(id, values, relative) {\n if (typeof id === 'string') {\n if (!values)\n return this.reporter.error('string objid given, but no values map found');\n if (!values.hasOwnProperty(id))\n return this.reporter.error('objid not found in values map');\n id = values[id].split(/[\\s\\.]+/g);\n for (var i = 0; i < id.length; i++)\n id[i] |= 0;\n } else if (Array.isArray(id)) {\n id = id.slice();\n for (var i = 0; i < id.length; i++)\n id[i] |= 0;\n }\n\n if (!Array.isArray(id)) {\n return this.reporter.error('objid() should be either array or string, ' +\n 'got: ' + JSON.stringify(id));\n }\n\n if (!relative) {\n if (id[1] >= 40)\n return this.reporter.error('Second objid identifier OOB');\n id.splice(0, 2, id[0] * 40 + id[1]);\n }\n\n // Count number of octets\n var size = 0;\n for (var i = 0; i < id.length; i++) {\n var ident = id[i];\n for (size++; ident >= 0x80; ident >>= 7)\n size++;\n }\n\n var objid = new Buffer(size);\n var offset = objid.length - 1;\n for (var i = id.length - 1; i >= 0; i--) {\n var ident = id[i];\n objid[offset--] = ident & 0x7f;\n while ((ident >>= 7) > 0)\n objid[offset--] = 0x80 | (ident & 0x7f);\n }\n\n return this._createEncoderBuffer(objid);\n};\n\nfunction two(num) {\n if (num < 10)\n return '0' + num;\n else\n return num;\n}\n\nDERNode.prototype._encodeTime = function encodeTime(time, tag) {\n var str;\n var date = new Date(time);\n\n if (tag === 'gentime') {\n str = [\n two(date.getFullYear()),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else if (tag === 'utctime') {\n str = [\n two(date.getFullYear() % 100),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else {\n this.reporter.error('Encoding ' + tag + ' time is not supported yet');\n }\n\n return this._encodeStr(str, 'octstr');\n};\n\nDERNode.prototype._encodeNull = function encodeNull() {\n return this._createEncoderBuffer('');\n};\n\nDERNode.prototype._encodeInt = function encodeInt(num, values) {\n if (typeof num === 'string') {\n if (!values)\n return this.reporter.error('String int or enum given, but no values map');\n if (!values.hasOwnProperty(num)) {\n return this.reporter.error('Values map doesn\\'t contain: ' +\n JSON.stringify(num));\n }\n num = values[num];\n }\n\n // Bignum, assume big endian\n if (typeof num !== 'number' && !Buffer.isBuffer(num)) {\n var numArray = num.toArray();\n if (!num.sign && numArray[0] & 0x80) {\n numArray.unshift(0);\n }\n num = new Buffer(numArray);\n }\n\n if (Buffer.isBuffer(num)) {\n var size = num.length;\n if (num.length === 0)\n size++;\n\n var out = new Buffer(size);\n num.copy(out);\n if (num.length === 0)\n out[0] = 0\n return this._createEncoderBuffer(out);\n }\n\n if (num < 0x80)\n return this._createEncoderBuffer(num);\n\n if (num < 0x100)\n return this._createEncoderBuffer([0, num]);\n\n var size = 1;\n for (var i = num; i >= 0x100; i >>= 8)\n size++;\n\n var out = new Array(size);\n for (var i = out.length - 1; i >= 0; i--) {\n out[i] = num & 0xff;\n num >>= 8;\n }\n if(out[0] & 0x80) {\n out.unshift(0);\n }\n\n return this._createEncoderBuffer(new Buffer(out));\n};\n\nDERNode.prototype._encodeBool = function encodeBool(value) {\n return this._createEncoderBuffer(value ? 0xff : 0);\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getEncoder('der').tree;\n};\n\nDERNode.prototype._skipDefault = function skipDefault(dataBuffer, reporter, parent) {\n var state = this._baseState;\n var i;\n if (state['default'] === null)\n return false;\n\n var data = dataBuffer.join();\n if (state.defaultBuffer === undefined)\n state.defaultBuffer = this._encodeValue(state['default'], reporter, parent).join();\n\n if (data.length !== state.defaultBuffer.length)\n return false;\n\n for (i=0; i < data.length; i++)\n if (data[i] !== state.defaultBuffer[i])\n return false;\n\n return true;\n};\n\n// Utility methods\n\nfunction encodeTag(tag, primitive, cls, reporter) {\n var res;\n\n if (tag === 'seqof')\n tag = 'seq';\n else if (tag === 'setof')\n tag = 'set';\n\n if (der.tagByName.hasOwnProperty(tag))\n res = der.tagByName[tag];\n else if (typeof tag === 'number' && (tag | 0) === tag)\n res = tag;\n else\n return reporter.error('Unknown tag: ' + tag);\n\n if (res >= 0x1f)\n return reporter.error('Multi-octet tag encoding unsupported');\n\n if (!primitive)\n res |= 0x20;\n\n res |= (der.tagClassByName[cls || 'universal'] << 6);\n\n return res;\n}\n","var inherits = require('inherits');\n\nvar DEREncoder = require('./der');\n\nfunction PEMEncoder(entity) {\n DEREncoder.call(this, entity);\n this.enc = 'pem';\n};\ninherits(PEMEncoder, DEREncoder);\nmodule.exports = PEMEncoder;\n\nPEMEncoder.prototype.encode = function encode(data, options) {\n var buf = DEREncoder.prototype.encode.call(this, data);\n\n var p = buf.toString('base64');\n var out = [ '-----BEGIN ' + options.label + '-----' ];\n for (var i = 0; i < p.length; i += 64)\n out.push(p.slice(i, i + 64));\n out.push('-----END ' + options.label + '-----');\n return out.join('\\n');\n};\n","var encoders = exports;\n\nencoders.der = require('./der');\nencoders.pem = require('./pem');\n","var asn1 = exports;\n\nasn1.bignum = require('bn.js');\n\nasn1.define = require('./asn1/api').define;\nasn1.base = require('./asn1/base');\nasn1.constants = require('./asn1/constants');\nasn1.decoders = require('./asn1/decoders');\nasn1.encoders = require('./asn1/encoders');\n","// from https://github.com/Rantanen/node-dtls/blob/25a7dc861bda38cfeac93a723500eea4f0ac2e86/Certificate.js\n// thanks to @Rantanen\n\n'use strict';\n\nvar asn = require('asn1.js');\n\nvar Time = asn.define('Time', function () {\n\tthis.choice({\n\t\tutcTime: this.utctime(),\n\t\tgeneralTime: this.gentime()\n\t});\n});\n\nvar AttributeTypeValue = asn.define('AttributeTypeValue', function () {\n\tthis.seq().obj(\n\t\tthis.key('type').objid(),\n\t\tthis.key('value').any()\n\t);\n});\n\nvar AlgorithmIdentifier = asn.define('AlgorithmIdentifier', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').objid(),\n\t\tthis.key('parameters').optional(),\n\t\tthis.key('curve').objid().optional()\n\t);\n});\n\nvar SubjectPublicKeyInfo = asn.define('SubjectPublicKeyInfo', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').use(AlgorithmIdentifier),\n\t\tthis.key('subjectPublicKey').bitstr()\n\t);\n});\n\nvar RelativeDistinguishedName = asn.define('RelativeDistinguishedName', function () {\n\tthis.setof(AttributeTypeValue);\n});\n\nvar RDNSequence = asn.define('RDNSequence', function () {\n\tthis.seqof(RelativeDistinguishedName);\n});\n\nvar Name = asn.define('Name', function () {\n\tthis.choice({\n\t\trdnSequence: this.use(RDNSequence)\n\t});\n});\n\nvar Validity = asn.define('Validity', function () {\n\tthis.seq().obj(\n\t\tthis.key('notBefore').use(Time),\n\t\tthis.key('notAfter').use(Time)\n\t);\n});\n\nvar Extension = asn.define('Extension', function () {\n\tthis.seq().obj(\n\t\tthis.key('extnID').objid(),\n\t\tthis.key('critical').bool().def(false),\n\t\tthis.key('extnValue').octstr()\n\t);\n});\n\nvar TBSCertificate = asn.define('TBSCertificate', function () {\n\tthis.seq().obj(\n\t\tthis.key('version').explicit(0)['int']().optional(),\n\t\tthis.key('serialNumber')['int'](),\n\t\tthis.key('signature').use(AlgorithmIdentifier),\n\t\tthis.key('issuer').use(Name),\n\t\tthis.key('validity').use(Validity),\n\t\tthis.key('subject').use(Name),\n\t\tthis.key('subjectPublicKeyInfo').use(SubjectPublicKeyInfo),\n\t\tthis.key('issuerUniqueID').implicit(1).bitstr().optional(),\n\t\tthis.key('subjectUniqueID').implicit(2).bitstr().optional(),\n\t\tthis.key('extensions').explicit(3).seqof(Extension).optional()\n\t);\n});\n\nvar X509Certificate = asn.define('X509Certificate', function () {\n\tthis.seq().obj(\n\t\tthis.key('tbsCertificate').use(TBSCertificate),\n\t\tthis.key('signatureAlgorithm').use(AlgorithmIdentifier),\n\t\tthis.key('signatureValue').bitstr()\n\t);\n});\n\nmodule.exports = X509Certificate;\n","// from https://github.com/indutny/self-signed/blob/gh-pages/lib/asn1.js\n// Fedor, you are amazing.\n\n'use strict';\n\nvar asn1 = require('asn1.js');\n\nexports.certificate = require('./certificate');\n\nvar RSAPrivateKey = asn1.define('RSAPrivateKey', function () {\n\tthis.seq().obj(\n\t\tthis.key('version')['int'](),\n\t\tthis.key('modulus')['int'](),\n\t\tthis.key('publicExponent')['int'](),\n\t\tthis.key('privateExponent')['int'](),\n\t\tthis.key('prime1')['int'](),\n\t\tthis.key('prime2')['int'](),\n\t\tthis.key('exponent1')['int'](),\n\t\tthis.key('exponent2')['int'](),\n\t\tthis.key('coefficient')['int']()\n\t);\n});\nexports.RSAPrivateKey = RSAPrivateKey;\n\nvar RSAPublicKey = asn1.define('RSAPublicKey', function () {\n\tthis.seq().obj(\n\t\tthis.key('modulus')['int'](),\n\t\tthis.key('publicExponent')['int']()\n\t);\n});\nexports.RSAPublicKey = RSAPublicKey;\n\nvar AlgorithmIdentifier = asn1.define('AlgorithmIdentifier', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').objid(),\n\t\tthis.key('none').null_().optional(),\n\t\tthis.key('curve').objid().optional(),\n\t\tthis.key('params').seq().obj(\n\t\t\tthis.key('p')['int'](),\n\t\t\tthis.key('q')['int'](),\n\t\t\tthis.key('g')['int']()\n\t\t).optional()\n\t);\n});\n\nvar PublicKey = asn1.define('SubjectPublicKeyInfo', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').use(AlgorithmIdentifier),\n\t\tthis.key('subjectPublicKey').bitstr()\n\t);\n});\nexports.PublicKey = PublicKey;\n\nvar PrivateKeyInfo = asn1.define('PrivateKeyInfo', function () {\n\tthis.seq().obj(\n\t\tthis.key('version')['int'](),\n\t\tthis.key('algorithm').use(AlgorithmIdentifier),\n\t\tthis.key('subjectPrivateKey').octstr()\n\t);\n});\nexports.PrivateKey = PrivateKeyInfo;\nvar EncryptedPrivateKeyInfo = asn1.define('EncryptedPrivateKeyInfo', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').seq().obj(\n\t\t\tthis.key('id').objid(),\n\t\t\tthis.key('decrypt').seq().obj(\n\t\t\t\tthis.key('kde').seq().obj(\n\t\t\t\t\tthis.key('id').objid(),\n\t\t\t\t\tthis.key('kdeparams').seq().obj(\n\t\t\t\t\t\tthis.key('salt').octstr(),\n\t\t\t\t\t\tthis.key('iters')['int']()\n\t\t\t\t\t)\n\t\t\t\t),\n\t\t\t\tthis.key('cipher').seq().obj(\n\t\t\t\t\tthis.key('algo').objid(),\n\t\t\t\t\tthis.key('iv').octstr()\n\t\t\t\t)\n\t\t\t)\n\t\t),\n\t\tthis.key('subjectPrivateKey').octstr()\n\t);\n});\n\nexports.EncryptedPrivateKey = EncryptedPrivateKeyInfo;\n\nvar DSAPrivateKey = asn1.define('DSAPrivateKey', function () {\n\tthis.seq().obj(\n\t\tthis.key('version')['int'](),\n\t\tthis.key('p')['int'](),\n\t\tthis.key('q')['int'](),\n\t\tthis.key('g')['int'](),\n\t\tthis.key('pub_key')['int'](),\n\t\tthis.key('priv_key')['int']()\n\t);\n});\nexports.DSAPrivateKey = DSAPrivateKey;\n\nexports.DSAparam = asn1.define('DSAparam', function () {\n\tthis['int']();\n});\n\nvar ECParameters = asn1.define('ECParameters', function () {\n\tthis.choice({\n\t\tnamedCurve: this.objid()\n\t});\n});\n\nvar ECPrivateKey = asn1.define('ECPrivateKey', function () {\n\tthis.seq().obj(\n\t\tthis.key('version')['int'](),\n\t\tthis.key('privateKey').octstr(),\n\t\tthis.key('parameters').optional().explicit(0).use(ECParameters),\n\t\tthis.key('publicKey').optional().explicit(1).bitstr()\n\t);\n});\nexports.ECPrivateKey = ECPrivateKey;\n\nexports.signature = asn1.define('signature', function () {\n\tthis.seq().obj(\n\t\tthis.key('r')['int'](),\n\t\tthis.key('s')['int']()\n\t);\n});\n","'use strict';\n\n// adapted from https://github.com/apatil/pemstrip\nvar findProc = /Proc-Type: 4,ENCRYPTED[\\n\\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\\n\\r]+([0-9A-z\\n\\r+/=]+)[\\n\\r]+/m;\nvar startRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m;\nvar fullRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\\n\\r+/=]+)-----END \\1-----$/m;\nvar evp = require('evp_bytestokey');\nvar ciphers = require('browserify-aes');\nvar Buffer = require('safe-buffer').Buffer;\nmodule.exports = function (okey, password) {\n\tvar key = okey.toString();\n\tvar match = key.match(findProc);\n\tvar decrypted;\n\tif (!match) {\n\t\tvar match2 = key.match(fullRegex);\n\t\tdecrypted = Buffer.from(match2[2].replace(/[\\r\\n]/g, ''), 'base64');\n\t} else {\n\t\tvar suite = 'aes' + match[1];\n\t\tvar iv = Buffer.from(match[2], 'hex');\n\t\tvar cipherText = Buffer.from(match[3].replace(/[\\r\\n]/g, ''), 'base64');\n\t\tvar cipherKey = evp(password, iv.slice(0, 8), parseInt(match[1], 10)).key;\n\t\tvar out = [];\n\t\tvar cipher = ciphers.createDecipheriv(suite, cipherKey, iv);\n\t\tout.push(cipher.update(cipherText));\n\t\tout.push(cipher['final']());\n\t\tdecrypted = Buffer.concat(out);\n\t}\n\tvar tag = key.match(startRegex)[1];\n\treturn {\n\t\ttag: tag,\n\t\tdata: decrypted\n\t};\n};\n","'use strict';\n\nvar asn1 = require('./asn1');\nvar aesid = require('./aesid.json');\nvar fixProc = require('./fixProc');\nvar ciphers = require('browserify-aes');\nvar compat = require('pbkdf2');\nvar Buffer = require('safe-buffer').Buffer;\n\nfunction decrypt(data, password) {\n\tvar salt = data.algorithm.decrypt.kde.kdeparams.salt;\n\tvar iters = parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(), 10);\n\tvar algo = aesid[data.algorithm.decrypt.cipher.algo.join('.')];\n\tvar iv = data.algorithm.decrypt.cipher.iv;\n\tvar cipherText = data.subjectPrivateKey;\n\tvar keylen = parseInt(algo.split('-')[1], 10) / 8;\n\tvar key = compat.pbkdf2Sync(password, salt, iters, keylen, 'sha1');\n\tvar cipher = ciphers.createDecipheriv(algo, key, iv);\n\tvar out = [];\n\tout.push(cipher.update(cipherText));\n\tout.push(cipher['final']());\n\treturn Buffer.concat(out);\n}\n\nfunction parseKeys(buffer) {\n\tvar password;\n\tif (typeof buffer === 'object' && !Buffer.isBuffer(buffer)) {\n\t\tpassword = buffer.passphrase;\n\t\tbuffer = buffer.key;\n\t}\n\tif (typeof buffer === 'string') {\n\t\tbuffer = Buffer.from(buffer);\n\t}\n\n\tvar stripped = fixProc(buffer, password);\n\n\tvar type = stripped.tag;\n\tvar data = stripped.data;\n\tvar subtype, ndata;\n\tswitch (type) {\n\t\tcase 'CERTIFICATE':\n\t\t\tndata = asn1.certificate.decode(data, 'der').tbsCertificate.subjectPublicKeyInfo;\n\t\t\t// falls through\n\t\tcase 'PUBLIC KEY':\n\t\t\tif (!ndata) {\n\t\t\t\tndata = asn1.PublicKey.decode(data, 'der');\n\t\t\t}\n\t\t\tsubtype = ndata.algorithm.algorithm.join('.');\n\t\t\tswitch (subtype) {\n\t\t\t\tcase '1.2.840.113549.1.1.1':\n\t\t\t\t\treturn asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data, 'der');\n\t\t\t\tcase '1.2.840.10045.2.1':\n\t\t\t\t\tndata.subjectPrivateKey = ndata.subjectPublicKey;\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: 'ec',\n\t\t\t\t\t\tdata: ndata\n\t\t\t\t\t};\n\t\t\t\tcase '1.2.840.10040.4.1':\n\t\t\t\t\tndata.algorithm.params.pub_key = asn1.DSAparam.decode(ndata.subjectPublicKey.data, 'der');\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: 'dsa',\n\t\t\t\t\t\tdata: ndata.algorithm.params\n\t\t\t\t\t};\n\t\t\t\tdefault: throw new Error('unknown key id ' + subtype);\n\t\t\t}\n\t\t\t// throw new Error('unknown key type ' + type)\n\t\tcase 'ENCRYPTED PRIVATE KEY':\n\t\t\tdata = asn1.EncryptedPrivateKey.decode(data, 'der');\n\t\t\tdata = decrypt(data, password);\n\t\t\t// falls through\n\t\tcase 'PRIVATE KEY':\n\t\t\tndata = asn1.PrivateKey.decode(data, 'der');\n\t\t\tsubtype = ndata.algorithm.algorithm.join('.');\n\t\t\tswitch (subtype) {\n\t\t\t\tcase '1.2.840.113549.1.1.1':\n\t\t\t\t\treturn asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey, 'der');\n\t\t\t\tcase '1.2.840.10045.2.1':\n\t\t\t\t\treturn {\n\t\t\t\t\t\tcurve: ndata.algorithm.curve,\n\t\t\t\t\t\tprivateKey: asn1.ECPrivateKey.decode(ndata.subjectPrivateKey, 'der').privateKey\n\t\t\t\t\t};\n\t\t\t\tcase '1.2.840.10040.4.1':\n\t\t\t\t\tndata.algorithm.params.priv_key = asn1.DSAparam.decode(ndata.subjectPrivateKey, 'der');\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: 'dsa',\n\t\t\t\t\t\tparams: ndata.algorithm.params\n\t\t\t\t\t};\n\t\t\t\tdefault: throw new Error('unknown key id ' + subtype);\n\t\t\t}\n\t\t\t// throw new Error('unknown key type ' + type)\n\t\tcase 'RSA PUBLIC KEY':\n\t\t\treturn asn1.RSAPublicKey.decode(data, 'der');\n\t\tcase 'RSA PRIVATE KEY':\n\t\t\treturn asn1.RSAPrivateKey.decode(data, 'der');\n\t\tcase 'DSA PRIVATE KEY':\n\t\t\treturn {\n\t\t\t\ttype: 'dsa',\n\t\t\t\tparams: asn1.DSAPrivateKey.decode(data, 'der')\n\t\t\t};\n\t\tcase 'EC PRIVATE KEY':\n\t\t\tdata = asn1.ECPrivateKey.decode(data, 'der');\n\t\t\treturn {\n\t\t\t\tcurve: data.parameters.value,\n\t\t\t\tprivateKey: data.privateKey\n\t\t\t};\n\t\tdefault: throw new Error('unknown key type ' + type);\n\t}\n}\nparseKeys.signature = asn1.signature;\n\nmodule.exports = parseKeys;\n","'use strict';\n\n// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer;\nvar createHmac = require('create-hmac');\nvar crt = require('browserify-rsa');\nvar EC = require('elliptic').ec;\nvar BN = require('bn.js');\nvar parseKeys = require('parse-asn1');\nvar curves = require('./curves.json');\n\nvar RSA_PKCS1_PADDING = 1;\n\nfunction sign(hash, key, hashType, signType, tag) {\n var priv = parseKeys(key);\n if (priv.curve) {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong private key type'); }\n return ecSign(hash, priv);\n } else if (priv.type === 'dsa') {\n if (signType !== 'dsa') { throw new Error('wrong private key type'); }\n return dsaSign(hash, priv, hashType);\n }\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong private key type'); }\n if (key.padding !== undefined && key.padding !== RSA_PKCS1_PADDING) { throw new Error('illegal or unsupported padding mode'); }\n\n hash = Buffer.concat([tag, hash]);\n var len = priv.modulus.byteLength();\n var pad = [0, 1];\n while (hash.length + pad.length + 1 < len) { pad.push(0xff); }\n pad.push(0x00);\n var i = -1;\n while (++i < hash.length) { pad.push(hash[i]); }\n\n var out = crt(pad, priv);\n return out;\n}\n\nfunction ecSign(hash, priv) {\n var curveId = curves[priv.curve.join('.')];\n if (!curveId) { throw new Error('unknown curve ' + priv.curve.join('.')); }\n\n var curve = new EC(curveId);\n var key = curve.keyFromPrivate(priv.privateKey);\n var out = key.sign(hash);\n\n return Buffer.from(out.toDER());\n}\n\nfunction dsaSign(hash, priv, algo) {\n var x = priv.params.priv_key;\n var p = priv.params.p;\n var q = priv.params.q;\n var g = priv.params.g;\n var r = new BN(0);\n var k;\n var H = bits2int(hash, q).mod(q);\n var s = false;\n var kv = getKey(x, q, hash, algo);\n while (s === false) {\n k = makeKey(q, kv, algo);\n r = makeR(g, k, p, q);\n s = k.invm(q).imul(H.add(x.mul(r))).mod(q);\n if (s.cmpn(0) === 0) {\n s = false;\n r = new BN(0);\n }\n }\n return toDER(r, s);\n}\n\nfunction toDER(r, s) {\n r = r.toArray();\n s = s.toArray();\n\n // Pad values\n if (r[0] & 0x80) { r = [0].concat(r); }\n if (s[0] & 0x80) { s = [0].concat(s); }\n\n var total = r.length + s.length + 4;\n var res = [\n 0x30, total, 0x02, r.length\n ];\n res = res.concat(r, [0x02, s.length], s);\n return Buffer.from(res);\n}\n\nfunction getKey(x, q, hash, algo) {\n x = Buffer.from(x.toArray());\n if (x.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - x.length);\n x = Buffer.concat([zeros, x]);\n }\n var hlen = hash.length;\n var hbits = bits2octets(hash, q);\n var v = Buffer.alloc(hlen);\n v.fill(1);\n var k = Buffer.alloc(hlen);\n k = createHmac(algo, k).update(v).update(Buffer.from([0])).update(x).update(hbits).digest();\n v = createHmac(algo, k).update(v).digest();\n k = createHmac(algo, k).update(v).update(Buffer.from([1])).update(x).update(hbits).digest();\n v = createHmac(algo, k).update(v).digest();\n return { k: k, v: v };\n}\n\nfunction bits2int(obits, q) {\n var bits = new BN(obits);\n var shift = (obits.length << 3) - q.bitLength();\n if (shift > 0) { bits.ishrn(shift); }\n return bits;\n}\n\nfunction bits2octets(bits, q) {\n bits = bits2int(bits, q);\n bits = bits.mod(q);\n var out = Buffer.from(bits.toArray());\n if (out.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - out.length);\n out = Buffer.concat([zeros, out]);\n }\n return out;\n}\n\nfunction makeKey(q, kv, algo) {\n var t;\n var k;\n\n do {\n t = Buffer.alloc(0);\n\n while (t.length * 8 < q.bitLength()) {\n kv.v = createHmac(algo, kv.k).update(kv.v).digest();\n t = Buffer.concat([t, kv.v]);\n }\n\n k = bits2int(t, q);\n kv.k = createHmac(algo, kv.k).update(kv.v).update(Buffer.from([0])).digest();\n kv.v = createHmac(algo, kv.k).update(kv.v).digest();\n } while (k.cmp(q) !== -1);\n\n return k;\n}\n\nfunction makeR(g, k, p, q) {\n return g.toRed(BN.mont(p)).redPow(k).fromRed().mod(q);\n}\n\nmodule.exports = sign;\nmodule.exports.getKey = getKey;\nmodule.exports.makeKey = makeKey;\n","'use strict';\n\n// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer;\nvar BN = require('bn.js');\nvar EC = require('elliptic').ec;\nvar parseKeys = require('parse-asn1');\nvar curves = require('./curves.json');\n\nfunction verify(sig, hash, key, signType, tag) {\n var pub = parseKeys(key);\n if (pub.type === 'ec') {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong public key type'); }\n return ecVerify(sig, hash, pub);\n } else if (pub.type === 'dsa') {\n if (signType !== 'dsa') { throw new Error('wrong public key type'); }\n return dsaVerify(sig, hash, pub);\n }\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong public key type'); }\n\n hash = Buffer.concat([tag, hash]);\n var len = pub.modulus.byteLength();\n var pad = [1];\n var padNum = 0;\n while (hash.length + pad.length + 2 < len) {\n pad.push(0xff);\n padNum += 1;\n }\n pad.push(0x00);\n var i = -1;\n while (++i < hash.length) {\n pad.push(hash[i]);\n }\n pad = Buffer.from(pad);\n var red = BN.mont(pub.modulus);\n sig = new BN(sig).toRed(red);\n\n sig = sig.redPow(new BN(pub.publicExponent));\n sig = Buffer.from(sig.fromRed().toArray());\n var out = padNum < 8 ? 1 : 0;\n len = Math.min(sig.length, pad.length);\n if (sig.length !== pad.length) { out = 1; }\n\n i = -1;\n while (++i < len) { out |= sig[i] ^ pad[i]; }\n return out === 0;\n}\n\nfunction ecVerify(sig, hash, pub) {\n var curveId = curves[pub.data.algorithm.curve.join('.')];\n if (!curveId) { throw new Error('unknown curve ' + pub.data.algorithm.curve.join('.')); }\n\n var curve = new EC(curveId);\n var pubkey = pub.data.subjectPrivateKey.data;\n\n return curve.verify(hash, sig, pubkey);\n}\n\nfunction dsaVerify(sig, hash, pub) {\n var p = pub.data.p;\n var q = pub.data.q;\n var g = pub.data.g;\n var y = pub.data.pub_key;\n var unpacked = parseKeys.signature.decode(sig, 'der');\n var s = unpacked.s;\n var r = unpacked.r;\n checkValue(s, q);\n checkValue(r, q);\n var montp = BN.mont(p);\n var w = s.invm(q);\n var v = g.toRed(montp)\n .redPow(new BN(hash).mul(w).mod(q))\n .fromRed()\n .mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed())\n .mod(p)\n .mod(q);\n return v.cmp(r) === 0;\n}\n\nfunction checkValue(b, q) {\n if (b.cmpn(0) <= 0) { throw new Error('invalid sig'); }\n if (b.cmp(q) >= 0) { throw new Error('invalid sig'); }\n}\n\nmodule.exports = verify;\n","'use strict';\n\nvar Buffer = require('safe-buffer').Buffer;\nvar createHash = require('create-hash');\nvar stream = require('readable-stream');\nvar inherits = require('inherits');\nvar sign = require('./sign');\nvar verify = require('./verify');\n\nvar algorithms = require('./algorithms.json');\nObject.keys(algorithms).forEach(function (key) {\n algorithms[key].id = Buffer.from(algorithms[key].id, 'hex');\n algorithms[key.toLowerCase()] = algorithms[key];\n});\n\nfunction Sign(algorithm) {\n stream.Writable.call(this);\n\n var data = algorithms[algorithm];\n if (!data) { throw new Error('Unknown message digest'); }\n\n this._hashType = data.hash;\n this._hash = createHash(data.hash);\n this._tag = data.id;\n this._signType = data.sign;\n}\ninherits(Sign, stream.Writable);\n\nSign.prototype._write = function _write(data, _, done) {\n this._hash.update(data);\n done();\n};\n\nSign.prototype.update = function update(data, enc) {\n this._hash.update(typeof data === 'string' ? Buffer.from(data, enc) : data);\n\n return this;\n};\n\nSign.prototype.sign = function signMethod(key, enc) {\n this.end();\n var hash = this._hash.digest();\n var sig = sign(hash, key, this._hashType, this._signType, this._tag);\n\n return enc ? sig.toString(enc) : sig;\n};\n\nfunction Verify(algorithm) {\n stream.Writable.call(this);\n\n var data = algorithms[algorithm];\n if (!data) { throw new Error('Unknown message digest'); }\n\n this._hash = createHash(data.hash);\n this._tag = data.id;\n this._signType = data.sign;\n}\ninherits(Verify, stream.Writable);\n\nVerify.prototype._write = function _write(data, _, done) {\n this._hash.update(data);\n done();\n};\n\nVerify.prototype.update = function update(data, enc) {\n this._hash.update(typeof data === 'string' ? Buffer.from(data, enc) : data);\n\n return this;\n};\n\nVerify.prototype.verify = function verifyMethod(key, sig, enc) {\n var sigBuffer = typeof sig === 'string' ? Buffer.from(sig, enc) : sig;\n\n this.end();\n var hash = this._hash.digest();\n return verify(sigBuffer, hash, key, this._signType, this._tag);\n};\n\nfunction createSign(algorithm) {\n return new Sign(algorithm);\n}\n\nfunction createVerify(algorithm) {\n return new Verify(algorithm);\n}\n\nmodule.exports = {\n Sign: createSign,\n Verify: createVerify,\n createSign: createSign,\n createVerify: createVerify\n};\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","var elliptic = require('elliptic')\nvar BN = require('bn.js')\n\nmodule.exports = function createECDH (curve) {\n return new ECDH(curve)\n}\n\nvar aliases = {\n secp256k1: {\n name: 'secp256k1',\n byteLength: 32\n },\n secp224r1: {\n name: 'p224',\n byteLength: 28\n },\n prime256v1: {\n name: 'p256',\n byteLength: 32\n },\n prime192v1: {\n name: 'p192',\n byteLength: 24\n },\n ed25519: {\n name: 'ed25519',\n byteLength: 32\n },\n secp384r1: {\n name: 'p384',\n byteLength: 48\n },\n secp521r1: {\n name: 'p521',\n byteLength: 66\n }\n}\n\naliases.p224 = aliases.secp224r1\naliases.p256 = aliases.secp256r1 = aliases.prime256v1\naliases.p192 = aliases.secp192r1 = aliases.prime192v1\naliases.p384 = aliases.secp384r1\naliases.p521 = aliases.secp521r1\n\nfunction ECDH (curve) {\n this.curveType = aliases[curve]\n if (!this.curveType) {\n this.curveType = {\n name: curve\n }\n }\n this.curve = new elliptic.ec(this.curveType.name) // eslint-disable-line new-cap\n this.keys = void 0\n}\n\nECDH.prototype.generateKeys = function (enc, format) {\n this.keys = this.curve.genKeyPair()\n return this.getPublicKey(enc, format)\n}\n\nECDH.prototype.computeSecret = function (other, inenc, enc) {\n inenc = inenc || 'utf8'\n if (!Buffer.isBuffer(other)) {\n other = new Buffer(other, inenc)\n }\n var otherPub = this.curve.keyFromPublic(other).getPublic()\n var out = otherPub.mul(this.keys.getPrivate()).getX()\n return formatReturnValue(out, enc, this.curveType.byteLength)\n}\n\nECDH.prototype.getPublicKey = function (enc, format) {\n var key = this.keys.getPublic(format === 'compressed', true)\n if (format === 'hybrid') {\n if (key[key.length - 1] % 2) {\n key[0] = 7\n } else {\n key[0] = 6\n }\n }\n return formatReturnValue(key, enc)\n}\n\nECDH.prototype.getPrivateKey = function (enc) {\n return formatReturnValue(this.keys.getPrivate(), enc)\n}\n\nECDH.prototype.setPublicKey = function (pub, enc) {\n enc = enc || 'utf8'\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc)\n }\n this.keys._importPublic(pub)\n return this\n}\n\nECDH.prototype.setPrivateKey = function (priv, enc) {\n enc = enc || 'utf8'\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc)\n }\n\n var _priv = new BN(priv)\n _priv = _priv.toString(16)\n this.keys = this.curve.genKeyPair()\n this.keys._importPrivate(_priv)\n return this\n}\n\nfunction formatReturnValue (bn, enc, len) {\n if (!Array.isArray(bn)) {\n bn = bn.toArray()\n }\n var buf = new Buffer(bn)\n if (len && buf.length < len) {\n var zeros = new Buffer(len - buf.length)\n zeros.fill(0)\n buf = Buffer.concat([zeros, buf])\n }\n if (!enc) {\n return buf\n } else {\n return buf.toString(enc)\n }\n}\n","var createHash = require('create-hash')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (seed, len) {\n var t = Buffer.alloc(0)\n var i = 0\n var c\n while (t.length < len) {\n c = i2ops(i++)\n t = Buffer.concat([t, createHash('sha1').update(seed).update(c).digest()])\n }\n return t.slice(0, len)\n}\n\nfunction i2ops (c) {\n var out = Buffer.allocUnsafe(4)\n out.writeUInt32BE(c, 0)\n return out\n}\n","module.exports = function xor (a, b) {\n var len = a.length\n var i = -1\n while (++i < len) {\n a[i] ^= b[i]\n }\n return a\n}\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","var BN = require('bn.js')\nvar Buffer = require('safe-buffer').Buffer\n\nfunction withPublic (paddedMsg, key) {\n return Buffer.from(paddedMsg\n .toRed(BN.mont(key.modulus))\n .redPow(new BN(key.publicExponent))\n .fromRed()\n .toArray())\n}\n\nmodule.exports = withPublic\n","var parseKeys = require('parse-asn1')\nvar randomBytes = require('randombytes')\nvar createHash = require('create-hash')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar withPublic = require('./withPublic')\nvar crt = require('browserify-rsa')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function publicEncrypt (publicKey, msg, reverse) {\n var padding\n if (publicKey.padding) {\n padding = publicKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n var key = parseKeys(publicKey)\n var paddedMsg\n if (padding === 4) {\n paddedMsg = oaep(key, msg)\n } else if (padding === 1) {\n paddedMsg = pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n paddedMsg = new BN(msg)\n if (paddedMsg.cmp(key.modulus) >= 0) {\n throw new Error('data too long for modulus')\n }\n } else {\n throw new Error('unknown padding')\n }\n if (reverse) {\n return crt(paddedMsg, key)\n } else {\n return withPublic(paddedMsg, key)\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var mLen = msg.length\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n var hLen2 = 2 * hLen\n if (mLen > k - hLen2 - 2) {\n throw new Error('message too long')\n }\n var ps = Buffer.alloc(k - mLen - hLen2 - 2)\n var dblen = k - hLen - 1\n var seed = randomBytes(hLen)\n var maskedDb = xor(Buffer.concat([iHash, ps, Buffer.alloc(1, 1), msg], dblen), mgf(seed, dblen))\n var maskedSeed = xor(seed, mgf(maskedDb, hLen))\n return new BN(Buffer.concat([Buffer.alloc(1), maskedSeed, maskedDb], k))\n}\nfunction pkcs1 (key, msg, reverse) {\n var mLen = msg.length\n var k = key.modulus.byteLength()\n if (mLen > k - 11) {\n throw new Error('message too long')\n }\n var ps\n if (reverse) {\n ps = Buffer.alloc(k - mLen - 3, 0xff)\n } else {\n ps = nonZero(k - mLen - 3)\n }\n return new BN(Buffer.concat([Buffer.from([0, reverse ? 1 : 2]), ps, Buffer.alloc(1), msg], k))\n}\nfunction nonZero (len) {\n var out = Buffer.allocUnsafe(len)\n var i = 0\n var cache = randomBytes(len * 2)\n var cur = 0\n var num\n while (i < len) {\n if (cur === cache.length) {\n cache = randomBytes(len * 2)\n cur = 0\n }\n num = cache[cur++]\n if (num) {\n out[i++] = num\n }\n }\n return out\n}\n","var parseKeys = require('parse-asn1')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar crt = require('browserify-rsa')\nvar createHash = require('create-hash')\nvar withPublic = require('./withPublic')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function privateDecrypt (privateKey, enc, reverse) {\n var padding\n if (privateKey.padding) {\n padding = privateKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n\n var key = parseKeys(privateKey)\n var k = key.modulus.byteLength()\n if (enc.length > k || new BN(enc).cmp(key.modulus) >= 0) {\n throw new Error('decryption error')\n }\n var msg\n if (reverse) {\n msg = withPublic(new BN(enc), key)\n } else {\n msg = crt(enc, key)\n }\n var zBuffer = Buffer.alloc(k - msg.length)\n msg = Buffer.concat([zBuffer, msg], k)\n if (padding === 4) {\n return oaep(key, msg)\n } else if (padding === 1) {\n return pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n return msg\n } else {\n throw new Error('unknown padding')\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n if (msg[0] !== 0) {\n throw new Error('decryption error')\n }\n var maskedSeed = msg.slice(1, hLen + 1)\n var maskedDb = msg.slice(hLen + 1)\n var seed = xor(maskedSeed, mgf(maskedDb, hLen))\n var db = xor(maskedDb, mgf(seed, k - hLen - 1))\n if (compare(iHash, db.slice(0, hLen))) {\n throw new Error('decryption error')\n }\n var i = hLen\n while (db[i] === 0) {\n i++\n }\n if (db[i++] !== 1) {\n throw new Error('decryption error')\n }\n return db.slice(i)\n}\n\nfunction pkcs1 (key, msg, reverse) {\n var p1 = msg.slice(0, 2)\n var i = 2\n var status = 0\n while (msg[i++] !== 0) {\n if (i >= msg.length) {\n status++\n break\n }\n }\n var ps = msg.slice(2, i - 1)\n\n if ((p1.toString('hex') !== '0002' && !reverse) || (p1.toString('hex') !== '0001' && reverse)) {\n status++\n }\n if (ps.length < 8) {\n status++\n }\n if (status) {\n throw new Error('decryption error')\n }\n return msg.slice(i)\n}\nfunction compare (a, b) {\n a = Buffer.from(a)\n b = Buffer.from(b)\n var dif = 0\n var len = a.length\n if (a.length !== b.length) {\n dif++\n len = Math.min(a.length, b.length)\n }\n var i = -1\n while (++i < len) {\n dif += (a[i] ^ b[i])\n }\n return dif\n}\n","exports.publicEncrypt = require('./publicEncrypt')\nexports.privateDecrypt = require('./privateDecrypt')\n\nexports.privateEncrypt = function privateEncrypt (key, buf) {\n return exports.publicEncrypt(key, buf, true)\n}\n\nexports.publicDecrypt = function publicDecrypt (key, buf) {\n return exports.privateDecrypt(key, buf, true)\n}\n","'use strict'\n\nfunction oldBrowser () {\n throw new Error('secure random number generation not supported by this browser\\nuse chrome, FireFox or Internet Explorer 11')\n}\nvar safeBuffer = require('safe-buffer')\nvar randombytes = require('randombytes')\nvar Buffer = safeBuffer.Buffer\nvar kBufferMaxLength = safeBuffer.kMaxLength\nvar crypto = global.crypto || global.msCrypto\nvar kMaxUint32 = Math.pow(2, 32) - 1\nfunction assertOffset (offset, length) {\n if (typeof offset !== 'number' || offset !== offset) { // eslint-disable-line no-self-compare\n throw new TypeError('offset must be a number')\n }\n\n if (offset > kMaxUint32 || offset < 0) {\n throw new TypeError('offset must be a uint32')\n }\n\n if (offset > kBufferMaxLength || offset > length) {\n throw new RangeError('offset out of range')\n }\n}\n\nfunction assertSize (size, offset, length) {\n if (typeof size !== 'number' || size !== size) { // eslint-disable-line no-self-compare\n throw new TypeError('size must be a number')\n }\n\n if (size > kMaxUint32 || size < 0) {\n throw new TypeError('size must be a uint32')\n }\n\n if (size + offset > length || size > kBufferMaxLength) {\n throw new RangeError('buffer too small')\n }\n}\nif ((crypto && crypto.getRandomValues) || !process.browser) {\n exports.randomFill = randomFill\n exports.randomFillSync = randomFillSync\n} else {\n exports.randomFill = oldBrowser\n exports.randomFillSync = oldBrowser\n}\nfunction randomFill (buf, offset, size, cb) {\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n if (typeof offset === 'function') {\n cb = offset\n offset = 0\n size = buf.length\n } else if (typeof size === 'function') {\n cb = size\n size = buf.length - offset\n } else if (typeof cb !== 'function') {\n throw new TypeError('\"cb\" argument must be a function')\n }\n assertOffset(offset, buf.length)\n assertSize(size, offset, buf.length)\n return actualFill(buf, offset, size, cb)\n}\n\nfunction actualFill (buf, offset, size, cb) {\n if (process.browser) {\n var ourBuf = buf.buffer\n var uint = new Uint8Array(ourBuf, offset, size)\n crypto.getRandomValues(uint)\n if (cb) {\n process.nextTick(function () {\n cb(null, buf)\n })\n return\n }\n return buf\n }\n if (cb) {\n randombytes(size, function (err, bytes) {\n if (err) {\n return cb(err)\n }\n bytes.copy(buf, offset)\n cb(null, buf)\n })\n return\n }\n var bytes = randombytes(size)\n bytes.copy(buf, offset)\n return buf\n}\nfunction randomFillSync (buf, offset, size) {\n if (typeof offset === 'undefined') {\n offset = 0\n }\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n assertOffset(offset, buf.length)\n\n if (size === undefined) size = buf.length - offset\n\n assertSize(size, offset, buf.length)\n\n return actualFill(buf, offset, size)\n}\n","'use strict';\n\n// eslint-disable-next-line no-multi-assign\nexports.randomBytes = exports.rng = exports.pseudoRandomBytes = exports.prng = require('randombytes');\n\n// eslint-disable-next-line no-multi-assign\nexports.createHash = exports.Hash = require('create-hash');\n\n// eslint-disable-next-line no-multi-assign\nexports.createHmac = exports.Hmac = require('create-hmac');\n\nvar algos = require('browserify-sign/algos');\nvar algoKeys = Object.keys(algos);\nvar hashes = [\n\t'sha1',\n\t'sha224',\n\t'sha256',\n\t'sha384',\n\t'sha512',\n\t'md5',\n\t'rmd160'\n].concat(algoKeys);\n\nexports.getHashes = function () {\n\treturn hashes;\n};\n\nvar p = require('pbkdf2');\nexports.pbkdf2 = p.pbkdf2;\nexports.pbkdf2Sync = p.pbkdf2Sync;\n\nvar aes = require('browserify-cipher');\n\nexports.Cipher = aes.Cipher;\nexports.createCipher = aes.createCipher;\nexports.Cipheriv = aes.Cipheriv;\nexports.createCipheriv = aes.createCipheriv;\nexports.Decipher = aes.Decipher;\nexports.createDecipher = aes.createDecipher;\nexports.Decipheriv = aes.Decipheriv;\nexports.createDecipheriv = aes.createDecipheriv;\nexports.getCiphers = aes.getCiphers;\nexports.listCiphers = aes.listCiphers;\n\nvar dh = require('diffie-hellman');\n\nexports.DiffieHellmanGroup = dh.DiffieHellmanGroup;\nexports.createDiffieHellmanGroup = dh.createDiffieHellmanGroup;\nexports.getDiffieHellman = dh.getDiffieHellman;\nexports.createDiffieHellman = dh.createDiffieHellman;\nexports.DiffieHellman = dh.DiffieHellman;\n\nvar sign = require('browserify-sign');\n\nexports.createSign = sign.createSign;\nexports.Sign = sign.Sign;\nexports.createVerify = sign.createVerify;\nexports.Verify = sign.Verify;\n\nexports.createECDH = require('create-ecdh');\n\nvar publicEncrypt = require('public-encrypt');\n\nexports.publicEncrypt = publicEncrypt.publicEncrypt;\nexports.privateEncrypt = publicEncrypt.privateEncrypt;\nexports.publicDecrypt = publicEncrypt.publicDecrypt;\nexports.privateDecrypt = publicEncrypt.privateDecrypt;\n\n// the least I can do is make error messages for the rest of the node.js/crypto api.\n// [\n// 'createCredentials'\n// ].forEach(function (name) {\n// exports[name] = function () {\n// throw new Error('sorry, ' + name + ' is not implemented yet\\nwe accept pull requests\\nhttps://github.com/browserify/crypto-browserify');\n// };\n// });\n\nvar rf = require('randomfill');\n\nexports.randomFill = rf.randomFill;\nexports.randomFillSync = rf.randomFillSync;\n\nexports.createCredentials = function () {\n\tthrow new Error('sorry, createCredentials is not implemented yet\\nwe accept pull requests\\nhttps://github.com/browserify/crypto-browserify');\n};\n\nexports.constants = {\n\tDH_CHECK_P_NOT_SAFE_PRIME: 2,\n\tDH_CHECK_P_NOT_PRIME: 1,\n\tDH_UNABLE_TO_CHECK_GENERATOR: 4,\n\tDH_NOT_SUITABLE_GENERATOR: 8,\n\tNPN_ENABLED: 1,\n\tALPN_ENABLED: 1,\n\tRSA_PKCS1_PADDING: 1,\n\tRSA_SSLV23_PADDING: 2,\n\tRSA_NO_PADDING: 3,\n\tRSA_PKCS1_OAEP_PADDING: 4,\n\tRSA_X931_PADDING: 5,\n\tRSA_PKCS1_PSS_PADDING: 6,\n\tPOINT_CONVERSION_COMPRESSED: 2,\n\tPOINT_CONVERSION_UNCOMPRESSED: 4,\n\tPOINT_CONVERSION_HYBRID: 6\n};\n","(function(nacl) {\n'use strict';\n\n// Ported in 2014 by Dmitry Chestnykh and Devi Mandiri.\n// Public domain.\n//\n// Implementation derived from TweetNaCl version 20140427.\n// See for details: http://tweetnacl.cr.yp.to/\n\nvar gf = function(init) {\n var i, r = new Float64Array(16);\n if (init) for (i = 0; i < init.length; i++) r[i] = init[i];\n return r;\n};\n\n// Pluggable, initialized in high-level API below.\nvar randombytes = function(/* x, n */) { throw new Error('no PRNG'); };\n\nvar _0 = new Uint8Array(16);\nvar _9 = new Uint8Array(32); _9[0] = 9;\n\nvar gf0 = gf(),\n gf1 = gf([1]),\n _121665 = gf([0xdb41, 1]),\n D = gf([0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070, 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203]),\n D2 = gf([0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0, 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406]),\n X = gf([0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c, 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169]),\n Y = gf([0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666]),\n I = gf([0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43, 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83]);\n\nfunction ts64(x, i, h, l) {\n x[i] = (h >> 24) & 0xff;\n x[i+1] = (h >> 16) & 0xff;\n x[i+2] = (h >> 8) & 0xff;\n x[i+3] = h & 0xff;\n x[i+4] = (l >> 24) & 0xff;\n x[i+5] = (l >> 16) & 0xff;\n x[i+6] = (l >> 8) & 0xff;\n x[i+7] = l & 0xff;\n}\n\nfunction vn(x, xi, y, yi, n) {\n var i,d = 0;\n for (i = 0; i < n; i++) d |= x[xi+i]^y[yi+i];\n return (1 & ((d - 1) >>> 8)) - 1;\n}\n\nfunction crypto_verify_16(x, xi, y, yi) {\n return vn(x,xi,y,yi,16);\n}\n\nfunction crypto_verify_32(x, xi, y, yi) {\n return vn(x,xi,y,yi,32);\n}\n\nfunction core_salsa20(o, p, k, c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n x0 = x0 + j0 | 0;\n x1 = x1 + j1 | 0;\n x2 = x2 + j2 | 0;\n x3 = x3 + j3 | 0;\n x4 = x4 + j4 | 0;\n x5 = x5 + j5 | 0;\n x6 = x6 + j6 | 0;\n x7 = x7 + j7 | 0;\n x8 = x8 + j8 | 0;\n x9 = x9 + j9 | 0;\n x10 = x10 + j10 | 0;\n x11 = x11 + j11 | 0;\n x12 = x12 + j12 | 0;\n x13 = x13 + j13 | 0;\n x14 = x14 + j14 | 0;\n x15 = x15 + j15 | 0;\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x1 >>> 0 & 0xff;\n o[ 5] = x1 >>> 8 & 0xff;\n o[ 6] = x1 >>> 16 & 0xff;\n o[ 7] = x1 >>> 24 & 0xff;\n\n o[ 8] = x2 >>> 0 & 0xff;\n o[ 9] = x2 >>> 8 & 0xff;\n o[10] = x2 >>> 16 & 0xff;\n o[11] = x2 >>> 24 & 0xff;\n\n o[12] = x3 >>> 0 & 0xff;\n o[13] = x3 >>> 8 & 0xff;\n o[14] = x3 >>> 16 & 0xff;\n o[15] = x3 >>> 24 & 0xff;\n\n o[16] = x4 >>> 0 & 0xff;\n o[17] = x4 >>> 8 & 0xff;\n o[18] = x4 >>> 16 & 0xff;\n o[19] = x4 >>> 24 & 0xff;\n\n o[20] = x5 >>> 0 & 0xff;\n o[21] = x5 >>> 8 & 0xff;\n o[22] = x5 >>> 16 & 0xff;\n o[23] = x5 >>> 24 & 0xff;\n\n o[24] = x6 >>> 0 & 0xff;\n o[25] = x6 >>> 8 & 0xff;\n o[26] = x6 >>> 16 & 0xff;\n o[27] = x6 >>> 24 & 0xff;\n\n o[28] = x7 >>> 0 & 0xff;\n o[29] = x7 >>> 8 & 0xff;\n o[30] = x7 >>> 16 & 0xff;\n o[31] = x7 >>> 24 & 0xff;\n\n o[32] = x8 >>> 0 & 0xff;\n o[33] = x8 >>> 8 & 0xff;\n o[34] = x8 >>> 16 & 0xff;\n o[35] = x8 >>> 24 & 0xff;\n\n o[36] = x9 >>> 0 & 0xff;\n o[37] = x9 >>> 8 & 0xff;\n o[38] = x9 >>> 16 & 0xff;\n o[39] = x9 >>> 24 & 0xff;\n\n o[40] = x10 >>> 0 & 0xff;\n o[41] = x10 >>> 8 & 0xff;\n o[42] = x10 >>> 16 & 0xff;\n o[43] = x10 >>> 24 & 0xff;\n\n o[44] = x11 >>> 0 & 0xff;\n o[45] = x11 >>> 8 & 0xff;\n o[46] = x11 >>> 16 & 0xff;\n o[47] = x11 >>> 24 & 0xff;\n\n o[48] = x12 >>> 0 & 0xff;\n o[49] = x12 >>> 8 & 0xff;\n o[50] = x12 >>> 16 & 0xff;\n o[51] = x12 >>> 24 & 0xff;\n\n o[52] = x13 >>> 0 & 0xff;\n o[53] = x13 >>> 8 & 0xff;\n o[54] = x13 >>> 16 & 0xff;\n o[55] = x13 >>> 24 & 0xff;\n\n o[56] = x14 >>> 0 & 0xff;\n o[57] = x14 >>> 8 & 0xff;\n o[58] = x14 >>> 16 & 0xff;\n o[59] = x14 >>> 24 & 0xff;\n\n o[60] = x15 >>> 0 & 0xff;\n o[61] = x15 >>> 8 & 0xff;\n o[62] = x15 >>> 16 & 0xff;\n o[63] = x15 >>> 24 & 0xff;\n}\n\nfunction core_hsalsa20(o,p,k,c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x5 >>> 0 & 0xff;\n o[ 5] = x5 >>> 8 & 0xff;\n o[ 6] = x5 >>> 16 & 0xff;\n o[ 7] = x5 >>> 24 & 0xff;\n\n o[ 8] = x10 >>> 0 & 0xff;\n o[ 9] = x10 >>> 8 & 0xff;\n o[10] = x10 >>> 16 & 0xff;\n o[11] = x10 >>> 24 & 0xff;\n\n o[12] = x15 >>> 0 & 0xff;\n o[13] = x15 >>> 8 & 0xff;\n o[14] = x15 >>> 16 & 0xff;\n o[15] = x15 >>> 24 & 0xff;\n\n o[16] = x6 >>> 0 & 0xff;\n o[17] = x6 >>> 8 & 0xff;\n o[18] = x6 >>> 16 & 0xff;\n o[19] = x6 >>> 24 & 0xff;\n\n o[20] = x7 >>> 0 & 0xff;\n o[21] = x7 >>> 8 & 0xff;\n o[22] = x7 >>> 16 & 0xff;\n o[23] = x7 >>> 24 & 0xff;\n\n o[24] = x8 >>> 0 & 0xff;\n o[25] = x8 >>> 8 & 0xff;\n o[26] = x8 >>> 16 & 0xff;\n o[27] = x8 >>> 24 & 0xff;\n\n o[28] = x9 >>> 0 & 0xff;\n o[29] = x9 >>> 8 & 0xff;\n o[30] = x9 >>> 16 & 0xff;\n o[31] = x9 >>> 24 & 0xff;\n}\n\nfunction crypto_core_salsa20(out,inp,k,c) {\n core_salsa20(out,inp,k,c);\n}\n\nfunction crypto_core_hsalsa20(out,inp,k,c) {\n core_hsalsa20(out,inp,k,c);\n}\n\nvar sigma = new Uint8Array([101, 120, 112, 97, 110, 100, 32, 51, 50, 45, 98, 121, 116, 101, 32, 107]);\n // \"expand 32-byte k\"\n\nfunction crypto_stream_salsa20_xor(c,cpos,m,mpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n mpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n }\n return 0;\n}\n\nfunction crypto_stream_salsa20(c,cpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = x[i];\n }\n return 0;\n}\n\nfunction crypto_stream(c,cpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20(c,cpos,d,sn,s);\n}\n\nfunction crypto_stream_xor(c,cpos,m,mpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20_xor(c,cpos,m,mpos,d,sn,s);\n}\n\n/*\n* Port of Andrew Moon's Poly1305-donna-16. Public domain.\n* https://github.com/floodyberry/poly1305-donna\n*/\n\nvar poly1305 = function(key) {\n this.buffer = new Uint8Array(16);\n this.r = new Uint16Array(10);\n this.h = new Uint16Array(10);\n this.pad = new Uint16Array(8);\n this.leftover = 0;\n this.fin = 0;\n\n var t0, t1, t2, t3, t4, t5, t6, t7;\n\n t0 = key[ 0] & 0xff | (key[ 1] & 0xff) << 8; this.r[0] = ( t0 ) & 0x1fff;\n t1 = key[ 2] & 0xff | (key[ 3] & 0xff) << 8; this.r[1] = ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = key[ 4] & 0xff | (key[ 5] & 0xff) << 8; this.r[2] = ((t1 >>> 10) | (t2 << 6)) & 0x1f03;\n t3 = key[ 6] & 0xff | (key[ 7] & 0xff) << 8; this.r[3] = ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = key[ 8] & 0xff | (key[ 9] & 0xff) << 8; this.r[4] = ((t3 >>> 4) | (t4 << 12)) & 0x00ff;\n this.r[5] = ((t4 >>> 1)) & 0x1ffe;\n t5 = key[10] & 0xff | (key[11] & 0xff) << 8; this.r[6] = ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = key[12] & 0xff | (key[13] & 0xff) << 8; this.r[7] = ((t5 >>> 11) | (t6 << 5)) & 0x1f81;\n t7 = key[14] & 0xff | (key[15] & 0xff) << 8; this.r[8] = ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n this.r[9] = ((t7 >>> 5)) & 0x007f;\n\n this.pad[0] = key[16] & 0xff | (key[17] & 0xff) << 8;\n this.pad[1] = key[18] & 0xff | (key[19] & 0xff) << 8;\n this.pad[2] = key[20] & 0xff | (key[21] & 0xff) << 8;\n this.pad[3] = key[22] & 0xff | (key[23] & 0xff) << 8;\n this.pad[4] = key[24] & 0xff | (key[25] & 0xff) << 8;\n this.pad[5] = key[26] & 0xff | (key[27] & 0xff) << 8;\n this.pad[6] = key[28] & 0xff | (key[29] & 0xff) << 8;\n this.pad[7] = key[30] & 0xff | (key[31] & 0xff) << 8;\n};\n\npoly1305.prototype.blocks = function(m, mpos, bytes) {\n var hibit = this.fin ? 0 : (1 << 11);\n var t0, t1, t2, t3, t4, t5, t6, t7, c;\n var d0, d1, d2, d3, d4, d5, d6, d7, d8, d9;\n\n var h0 = this.h[0],\n h1 = this.h[1],\n h2 = this.h[2],\n h3 = this.h[3],\n h4 = this.h[4],\n h5 = this.h[5],\n h6 = this.h[6],\n h7 = this.h[7],\n h8 = this.h[8],\n h9 = this.h[9];\n\n var r0 = this.r[0],\n r1 = this.r[1],\n r2 = this.r[2],\n r3 = this.r[3],\n r4 = this.r[4],\n r5 = this.r[5],\n r6 = this.r[6],\n r7 = this.r[7],\n r8 = this.r[8],\n r9 = this.r[9];\n\n while (bytes >= 16) {\n t0 = m[mpos+ 0] & 0xff | (m[mpos+ 1] & 0xff) << 8; h0 += ( t0 ) & 0x1fff;\n t1 = m[mpos+ 2] & 0xff | (m[mpos+ 3] & 0xff) << 8; h1 += ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = m[mpos+ 4] & 0xff | (m[mpos+ 5] & 0xff) << 8; h2 += ((t1 >>> 10) | (t2 << 6)) & 0x1fff;\n t3 = m[mpos+ 6] & 0xff | (m[mpos+ 7] & 0xff) << 8; h3 += ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = m[mpos+ 8] & 0xff | (m[mpos+ 9] & 0xff) << 8; h4 += ((t3 >>> 4) | (t4 << 12)) & 0x1fff;\n h5 += ((t4 >>> 1)) & 0x1fff;\n t5 = m[mpos+10] & 0xff | (m[mpos+11] & 0xff) << 8; h6 += ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = m[mpos+12] & 0xff | (m[mpos+13] & 0xff) << 8; h7 += ((t5 >>> 11) | (t6 << 5)) & 0x1fff;\n t7 = m[mpos+14] & 0xff | (m[mpos+15] & 0xff) << 8; h8 += ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n h9 += ((t7 >>> 5)) | hibit;\n\n c = 0;\n\n d0 = c;\n d0 += h0 * r0;\n d0 += h1 * (5 * r9);\n d0 += h2 * (5 * r8);\n d0 += h3 * (5 * r7);\n d0 += h4 * (5 * r6);\n c = (d0 >>> 13); d0 &= 0x1fff;\n d0 += h5 * (5 * r5);\n d0 += h6 * (5 * r4);\n d0 += h7 * (5 * r3);\n d0 += h8 * (5 * r2);\n d0 += h9 * (5 * r1);\n c += (d0 >>> 13); d0 &= 0x1fff;\n\n d1 = c;\n d1 += h0 * r1;\n d1 += h1 * r0;\n d1 += h2 * (5 * r9);\n d1 += h3 * (5 * r8);\n d1 += h4 * (5 * r7);\n c = (d1 >>> 13); d1 &= 0x1fff;\n d1 += h5 * (5 * r6);\n d1 += h6 * (5 * r5);\n d1 += h7 * (5 * r4);\n d1 += h8 * (5 * r3);\n d1 += h9 * (5 * r2);\n c += (d1 >>> 13); d1 &= 0x1fff;\n\n d2 = c;\n d2 += h0 * r2;\n d2 += h1 * r1;\n d2 += h2 * r0;\n d2 += h3 * (5 * r9);\n d2 += h4 * (5 * r8);\n c = (d2 >>> 13); d2 &= 0x1fff;\n d2 += h5 * (5 * r7);\n d2 += h6 * (5 * r6);\n d2 += h7 * (5 * r5);\n d2 += h8 * (5 * r4);\n d2 += h9 * (5 * r3);\n c += (d2 >>> 13); d2 &= 0x1fff;\n\n d3 = c;\n d3 += h0 * r3;\n d3 += h1 * r2;\n d3 += h2 * r1;\n d3 += h3 * r0;\n d3 += h4 * (5 * r9);\n c = (d3 >>> 13); d3 &= 0x1fff;\n d3 += h5 * (5 * r8);\n d3 += h6 * (5 * r7);\n d3 += h7 * (5 * r6);\n d3 += h8 * (5 * r5);\n d3 += h9 * (5 * r4);\n c += (d3 >>> 13); d3 &= 0x1fff;\n\n d4 = c;\n d4 += h0 * r4;\n d4 += h1 * r3;\n d4 += h2 * r2;\n d4 += h3 * r1;\n d4 += h4 * r0;\n c = (d4 >>> 13); d4 &= 0x1fff;\n d4 += h5 * (5 * r9);\n d4 += h6 * (5 * r8);\n d4 += h7 * (5 * r7);\n d4 += h8 * (5 * r6);\n d4 += h9 * (5 * r5);\n c += (d4 >>> 13); d4 &= 0x1fff;\n\n d5 = c;\n d5 += h0 * r5;\n d5 += h1 * r4;\n d5 += h2 * r3;\n d5 += h3 * r2;\n d5 += h4 * r1;\n c = (d5 >>> 13); d5 &= 0x1fff;\n d5 += h5 * r0;\n d5 += h6 * (5 * r9);\n d5 += h7 * (5 * r8);\n d5 += h8 * (5 * r7);\n d5 += h9 * (5 * r6);\n c += (d5 >>> 13); d5 &= 0x1fff;\n\n d6 = c;\n d6 += h0 * r6;\n d6 += h1 * r5;\n d6 += h2 * r4;\n d6 += h3 * r3;\n d6 += h4 * r2;\n c = (d6 >>> 13); d6 &= 0x1fff;\n d6 += h5 * r1;\n d6 += h6 * r0;\n d6 += h7 * (5 * r9);\n d6 += h8 * (5 * r8);\n d6 += h9 * (5 * r7);\n c += (d6 >>> 13); d6 &= 0x1fff;\n\n d7 = c;\n d7 += h0 * r7;\n d7 += h1 * r6;\n d7 += h2 * r5;\n d7 += h3 * r4;\n d7 += h4 * r3;\n c = (d7 >>> 13); d7 &= 0x1fff;\n d7 += h5 * r2;\n d7 += h6 * r1;\n d7 += h7 * r0;\n d7 += h8 * (5 * r9);\n d7 += h9 * (5 * r8);\n c += (d7 >>> 13); d7 &= 0x1fff;\n\n d8 = c;\n d8 += h0 * r8;\n d8 += h1 * r7;\n d8 += h2 * r6;\n d8 += h3 * r5;\n d8 += h4 * r4;\n c = (d8 >>> 13); d8 &= 0x1fff;\n d8 += h5 * r3;\n d8 += h6 * r2;\n d8 += h7 * r1;\n d8 += h8 * r0;\n d8 += h9 * (5 * r9);\n c += (d8 >>> 13); d8 &= 0x1fff;\n\n d9 = c;\n d9 += h0 * r9;\n d9 += h1 * r8;\n d9 += h2 * r7;\n d9 += h3 * r6;\n d9 += h4 * r5;\n c = (d9 >>> 13); d9 &= 0x1fff;\n d9 += h5 * r4;\n d9 += h6 * r3;\n d9 += h7 * r2;\n d9 += h8 * r1;\n d9 += h9 * r0;\n c += (d9 >>> 13); d9 &= 0x1fff;\n\n c = (((c << 2) + c)) | 0;\n c = (c + d0) | 0;\n d0 = c & 0x1fff;\n c = (c >>> 13);\n d1 += c;\n\n h0 = d0;\n h1 = d1;\n h2 = d2;\n h3 = d3;\n h4 = d4;\n h5 = d5;\n h6 = d6;\n h7 = d7;\n h8 = d8;\n h9 = d9;\n\n mpos += 16;\n bytes -= 16;\n }\n this.h[0] = h0;\n this.h[1] = h1;\n this.h[2] = h2;\n this.h[3] = h3;\n this.h[4] = h4;\n this.h[5] = h5;\n this.h[6] = h6;\n this.h[7] = h7;\n this.h[8] = h8;\n this.h[9] = h9;\n};\n\npoly1305.prototype.finish = function(mac, macpos) {\n var g = new Uint16Array(10);\n var c, mask, f, i;\n\n if (this.leftover) {\n i = this.leftover;\n this.buffer[i++] = 1;\n for (; i < 16; i++) this.buffer[i] = 0;\n this.fin = 1;\n this.blocks(this.buffer, 0, 16);\n }\n\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n for (i = 2; i < 10; i++) {\n this.h[i] += c;\n c = this.h[i] >>> 13;\n this.h[i] &= 0x1fff;\n }\n this.h[0] += (c * 5);\n c = this.h[0] >>> 13;\n this.h[0] &= 0x1fff;\n this.h[1] += c;\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n this.h[2] += c;\n\n g[0] = this.h[0] + 5;\n c = g[0] >>> 13;\n g[0] &= 0x1fff;\n for (i = 1; i < 10; i++) {\n g[i] = this.h[i] + c;\n c = g[i] >>> 13;\n g[i] &= 0x1fff;\n }\n g[9] -= (1 << 13);\n\n mask = (c ^ 1) - 1;\n for (i = 0; i < 10; i++) g[i] &= mask;\n mask = ~mask;\n for (i = 0; i < 10; i++) this.h[i] = (this.h[i] & mask) | g[i];\n\n this.h[0] = ((this.h[0] ) | (this.h[1] << 13) ) & 0xffff;\n this.h[1] = ((this.h[1] >>> 3) | (this.h[2] << 10) ) & 0xffff;\n this.h[2] = ((this.h[2] >>> 6) | (this.h[3] << 7) ) & 0xffff;\n this.h[3] = ((this.h[3] >>> 9) | (this.h[4] << 4) ) & 0xffff;\n this.h[4] = ((this.h[4] >>> 12) | (this.h[5] << 1) | (this.h[6] << 14)) & 0xffff;\n this.h[5] = ((this.h[6] >>> 2) | (this.h[7] << 11) ) & 0xffff;\n this.h[6] = ((this.h[7] >>> 5) | (this.h[8] << 8) ) & 0xffff;\n this.h[7] = ((this.h[8] >>> 8) | (this.h[9] << 5) ) & 0xffff;\n\n f = this.h[0] + this.pad[0];\n this.h[0] = f & 0xffff;\n for (i = 1; i < 8; i++) {\n f = (((this.h[i] + this.pad[i]) | 0) + (f >>> 16)) | 0;\n this.h[i] = f & 0xffff;\n }\n\n mac[macpos+ 0] = (this.h[0] >>> 0) & 0xff;\n mac[macpos+ 1] = (this.h[0] >>> 8) & 0xff;\n mac[macpos+ 2] = (this.h[1] >>> 0) & 0xff;\n mac[macpos+ 3] = (this.h[1] >>> 8) & 0xff;\n mac[macpos+ 4] = (this.h[2] >>> 0) & 0xff;\n mac[macpos+ 5] = (this.h[2] >>> 8) & 0xff;\n mac[macpos+ 6] = (this.h[3] >>> 0) & 0xff;\n mac[macpos+ 7] = (this.h[3] >>> 8) & 0xff;\n mac[macpos+ 8] = (this.h[4] >>> 0) & 0xff;\n mac[macpos+ 9] = (this.h[4] >>> 8) & 0xff;\n mac[macpos+10] = (this.h[5] >>> 0) & 0xff;\n mac[macpos+11] = (this.h[5] >>> 8) & 0xff;\n mac[macpos+12] = (this.h[6] >>> 0) & 0xff;\n mac[macpos+13] = (this.h[6] >>> 8) & 0xff;\n mac[macpos+14] = (this.h[7] >>> 0) & 0xff;\n mac[macpos+15] = (this.h[7] >>> 8) & 0xff;\n};\n\npoly1305.prototype.update = function(m, mpos, bytes) {\n var i, want;\n\n if (this.leftover) {\n want = (16 - this.leftover);\n if (want > bytes)\n want = bytes;\n for (i = 0; i < want; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n bytes -= want;\n mpos += want;\n this.leftover += want;\n if (this.leftover < 16)\n return;\n this.blocks(this.buffer, 0, 16);\n this.leftover = 0;\n }\n\n if (bytes >= 16) {\n want = bytes - (bytes % 16);\n this.blocks(m, mpos, want);\n mpos += want;\n bytes -= want;\n }\n\n if (bytes) {\n for (i = 0; i < bytes; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n this.leftover += bytes;\n }\n};\n\nfunction crypto_onetimeauth(out, outpos, m, mpos, n, k) {\n var s = new poly1305(k);\n s.update(m, mpos, n);\n s.finish(out, outpos);\n return 0;\n}\n\nfunction crypto_onetimeauth_verify(h, hpos, m, mpos, n, k) {\n var x = new Uint8Array(16);\n crypto_onetimeauth(x,0,m,mpos,n,k);\n return crypto_verify_16(h,hpos,x,0);\n}\n\nfunction crypto_secretbox(c,m,d,n,k) {\n var i;\n if (d < 32) return -1;\n crypto_stream_xor(c,0,m,0,d,n,k);\n crypto_onetimeauth(c, 16, c, 32, d - 32, c);\n for (i = 0; i < 16; i++) c[i] = 0;\n return 0;\n}\n\nfunction crypto_secretbox_open(m,c,d,n,k) {\n var i;\n var x = new Uint8Array(32);\n if (d < 32) return -1;\n crypto_stream(x,0,32,n,k);\n if (crypto_onetimeauth_verify(c, 16,c, 32,d - 32,x) !== 0) return -1;\n crypto_stream_xor(m,0,c,0,d,n,k);\n for (i = 0; i < 32; i++) m[i] = 0;\n return 0;\n}\n\nfunction set25519(r, a) {\n var i;\n for (i = 0; i < 16; i++) r[i] = a[i]|0;\n}\n\nfunction car25519(o) {\n var i, v, c = 1;\n for (i = 0; i < 16; i++) {\n v = o[i] + c + 65535;\n c = Math.floor(v / 65536);\n o[i] = v - c * 65536;\n }\n o[0] += c-1 + 37 * (c-1);\n}\n\nfunction sel25519(p, q, b) {\n var t, c = ~(b-1);\n for (var i = 0; i < 16; i++) {\n t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n}\n\nfunction pack25519(o, n) {\n var i, j, b;\n var m = gf(), t = gf();\n for (i = 0; i < 16; i++) t[i] = n[i];\n car25519(t);\n car25519(t);\n car25519(t);\n for (j = 0; j < 2; j++) {\n m[0] = t[0] - 0xffed;\n for (i = 1; i < 15; i++) {\n m[i] = t[i] - 0xffff - ((m[i-1]>>16) & 1);\n m[i-1] &= 0xffff;\n }\n m[15] = t[15] - 0x7fff - ((m[14]>>16) & 1);\n b = (m[15]>>16) & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1-b);\n }\n for (i = 0; i < 16; i++) {\n o[2*i] = t[i] & 0xff;\n o[2*i+1] = t[i]>>8;\n }\n}\n\nfunction neq25519(a, b) {\n var c = new Uint8Array(32), d = new Uint8Array(32);\n pack25519(c, a);\n pack25519(d, b);\n return crypto_verify_32(c, 0, d, 0);\n}\n\nfunction par25519(a) {\n var d = new Uint8Array(32);\n pack25519(d, a);\n return d[0] & 1;\n}\n\nfunction unpack25519(o, n) {\n var i;\n for (i = 0; i < 16; i++) o[i] = n[2*i] + (n[2*i+1] << 8);\n o[15] &= 0x7fff;\n}\n\nfunction A(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] + b[i];\n}\n\nfunction Z(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] - b[i];\n}\n\nfunction M(o, a, b) {\n var v, c,\n t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0,\n t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0,\n t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0,\n t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0,\n b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3],\n b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7],\n b8 = b[8],\n b9 = b[9],\n b10 = b[10],\n b11 = b[11],\n b12 = b[12],\n b13 = b[13],\n b14 = b[14],\n b15 = b[15];\n\n v = a[0];\n t0 += v * b0;\n t1 += v * b1;\n t2 += v * b2;\n t3 += v * b3;\n t4 += v * b4;\n t5 += v * b5;\n t6 += v * b6;\n t7 += v * b7;\n t8 += v * b8;\n t9 += v * b9;\n t10 += v * b10;\n t11 += v * b11;\n t12 += v * b12;\n t13 += v * b13;\n t14 += v * b14;\n t15 += v * b15;\n v = a[1];\n t1 += v * b0;\n t2 += v * b1;\n t3 += v * b2;\n t4 += v * b3;\n t5 += v * b4;\n t6 += v * b5;\n t7 += v * b6;\n t8 += v * b7;\n t9 += v * b8;\n t10 += v * b9;\n t11 += v * b10;\n t12 += v * b11;\n t13 += v * b12;\n t14 += v * b13;\n t15 += v * b14;\n t16 += v * b15;\n v = a[2];\n t2 += v * b0;\n t3 += v * b1;\n t4 += v * b2;\n t5 += v * b3;\n t6 += v * b4;\n t7 += v * b5;\n t8 += v * b6;\n t9 += v * b7;\n t10 += v * b8;\n t11 += v * b9;\n t12 += v * b10;\n t13 += v * b11;\n t14 += v * b12;\n t15 += v * b13;\n t16 += v * b14;\n t17 += v * b15;\n v = a[3];\n t3 += v * b0;\n t4 += v * b1;\n t5 += v * b2;\n t6 += v * b3;\n t7 += v * b4;\n t8 += v * b5;\n t9 += v * b6;\n t10 += v * b7;\n t11 += v * b8;\n t12 += v * b9;\n t13 += v * b10;\n t14 += v * b11;\n t15 += v * b12;\n t16 += v * b13;\n t17 += v * b14;\n t18 += v * b15;\n v = a[4];\n t4 += v * b0;\n t5 += v * b1;\n t6 += v * b2;\n t7 += v * b3;\n t8 += v * b4;\n t9 += v * b5;\n t10 += v * b6;\n t11 += v * b7;\n t12 += v * b8;\n t13 += v * b9;\n t14 += v * b10;\n t15 += v * b11;\n t16 += v * b12;\n t17 += v * b13;\n t18 += v * b14;\n t19 += v * b15;\n v = a[5];\n t5 += v * b0;\n t6 += v * b1;\n t7 += v * b2;\n t8 += v * b3;\n t9 += v * b4;\n t10 += v * b5;\n t11 += v * b6;\n t12 += v * b7;\n t13 += v * b8;\n t14 += v * b9;\n t15 += v * b10;\n t16 += v * b11;\n t17 += v * b12;\n t18 += v * b13;\n t19 += v * b14;\n t20 += v * b15;\n v = a[6];\n t6 += v * b0;\n t7 += v * b1;\n t8 += v * b2;\n t9 += v * b3;\n t10 += v * b4;\n t11 += v * b5;\n t12 += v * b6;\n t13 += v * b7;\n t14 += v * b8;\n t15 += v * b9;\n t16 += v * b10;\n t17 += v * b11;\n t18 += v * b12;\n t19 += v * b13;\n t20 += v * b14;\n t21 += v * b15;\n v = a[7];\n t7 += v * b0;\n t8 += v * b1;\n t9 += v * b2;\n t10 += v * b3;\n t11 += v * b4;\n t12 += v * b5;\n t13 += v * b6;\n t14 += v * b7;\n t15 += v * b8;\n t16 += v * b9;\n t17 += v * b10;\n t18 += v * b11;\n t19 += v * b12;\n t20 += v * b13;\n t21 += v * b14;\n t22 += v * b15;\n v = a[8];\n t8 += v * b0;\n t9 += v * b1;\n t10 += v * b2;\n t11 += v * b3;\n t12 += v * b4;\n t13 += v * b5;\n t14 += v * b6;\n t15 += v * b7;\n t16 += v * b8;\n t17 += v * b9;\n t18 += v * b10;\n t19 += v * b11;\n t20 += v * b12;\n t21 += v * b13;\n t22 += v * b14;\n t23 += v * b15;\n v = a[9];\n t9 += v * b0;\n t10 += v * b1;\n t11 += v * b2;\n t12 += v * b3;\n t13 += v * b4;\n t14 += v * b5;\n t15 += v * b6;\n t16 += v * b7;\n t17 += v * b8;\n t18 += v * b9;\n t19 += v * b10;\n t20 += v * b11;\n t21 += v * b12;\n t22 += v * b13;\n t23 += v * b14;\n t24 += v * b15;\n v = a[10];\n t10 += v * b0;\n t11 += v * b1;\n t12 += v * b2;\n t13 += v * b3;\n t14 += v * b4;\n t15 += v * b5;\n t16 += v * b6;\n t17 += v * b7;\n t18 += v * b8;\n t19 += v * b9;\n t20 += v * b10;\n t21 += v * b11;\n t22 += v * b12;\n t23 += v * b13;\n t24 += v * b14;\n t25 += v * b15;\n v = a[11];\n t11 += v * b0;\n t12 += v * b1;\n t13 += v * b2;\n t14 += v * b3;\n t15 += v * b4;\n t16 += v * b5;\n t17 += v * b6;\n t18 += v * b7;\n t19 += v * b8;\n t20 += v * b9;\n t21 += v * b10;\n t22 += v * b11;\n t23 += v * b12;\n t24 += v * b13;\n t25 += v * b14;\n t26 += v * b15;\n v = a[12];\n t12 += v * b0;\n t13 += v * b1;\n t14 += v * b2;\n t15 += v * b3;\n t16 += v * b4;\n t17 += v * b5;\n t18 += v * b6;\n t19 += v * b7;\n t20 += v * b8;\n t21 += v * b9;\n t22 += v * b10;\n t23 += v * b11;\n t24 += v * b12;\n t25 += v * b13;\n t26 += v * b14;\n t27 += v * b15;\n v = a[13];\n t13 += v * b0;\n t14 += v * b1;\n t15 += v * b2;\n t16 += v * b3;\n t17 += v * b4;\n t18 += v * b5;\n t19 += v * b6;\n t20 += v * b7;\n t21 += v * b8;\n t22 += v * b9;\n t23 += v * b10;\n t24 += v * b11;\n t25 += v * b12;\n t26 += v * b13;\n t27 += v * b14;\n t28 += v * b15;\n v = a[14];\n t14 += v * b0;\n t15 += v * b1;\n t16 += v * b2;\n t17 += v * b3;\n t18 += v * b4;\n t19 += v * b5;\n t20 += v * b6;\n t21 += v * b7;\n t22 += v * b8;\n t23 += v * b9;\n t24 += v * b10;\n t25 += v * b11;\n t26 += v * b12;\n t27 += v * b13;\n t28 += v * b14;\n t29 += v * b15;\n v = a[15];\n t15 += v * b0;\n t16 += v * b1;\n t17 += v * b2;\n t18 += v * b3;\n t19 += v * b4;\n t20 += v * b5;\n t21 += v * b6;\n t22 += v * b7;\n t23 += v * b8;\n t24 += v * b9;\n t25 += v * b10;\n t26 += v * b11;\n t27 += v * b12;\n t28 += v * b13;\n t29 += v * b14;\n t30 += v * b15;\n\n t0 += 38 * t16;\n t1 += 38 * t17;\n t2 += 38 * t18;\n t3 += 38 * t19;\n t4 += 38 * t20;\n t5 += 38 * t21;\n t6 += 38 * t22;\n t7 += 38 * t23;\n t8 += 38 * t24;\n t9 += 38 * t25;\n t10 += 38 * t26;\n t11 += 38 * t27;\n t12 += 38 * t28;\n t13 += 38 * t29;\n t14 += 38 * t30;\n // t15 left as is\n\n // first car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n // second car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n o[ 0] = t0;\n o[ 1] = t1;\n o[ 2] = t2;\n o[ 3] = t3;\n o[ 4] = t4;\n o[ 5] = t5;\n o[ 6] = t6;\n o[ 7] = t7;\n o[ 8] = t8;\n o[ 9] = t9;\n o[10] = t10;\n o[11] = t11;\n o[12] = t12;\n o[13] = t13;\n o[14] = t14;\n o[15] = t15;\n}\n\nfunction S(o, a) {\n M(o, a, a);\n}\n\nfunction inv25519(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 253; a >= 0; a--) {\n S(c, c);\n if(a !== 2 && a !== 4) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction pow2523(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 250; a >= 0; a--) {\n S(c, c);\n if(a !== 1) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction crypto_scalarmult(q, n, p) {\n var z = new Uint8Array(32);\n var x = new Float64Array(80), r, i;\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf();\n for (i = 0; i < 31; i++) z[i] = n[i];\n z[31]=(n[31]&127)|64;\n z[0]&=248;\n unpack25519(x,p);\n for (i = 0; i < 16; i++) {\n b[i]=x[i];\n d[i]=a[i]=c[i]=0;\n }\n a[0]=d[0]=1;\n for (i=254; i>=0; --i) {\n r=(z[i>>>3]>>>(i&7))&1;\n sel25519(a,b,r);\n sel25519(c,d,r);\n A(e,a,c);\n Z(a,a,c);\n A(c,b,d);\n Z(b,b,d);\n S(d,e);\n S(f,a);\n M(a,c,a);\n M(c,b,e);\n A(e,a,c);\n Z(a,a,c);\n S(b,a);\n Z(c,d,f);\n M(a,c,_121665);\n A(a,a,d);\n M(c,c,a);\n M(a,d,f);\n M(d,b,x);\n S(b,e);\n sel25519(a,b,r);\n sel25519(c,d,r);\n }\n for (i = 0; i < 16; i++) {\n x[i+16]=a[i];\n x[i+32]=c[i];\n x[i+48]=b[i];\n x[i+64]=d[i];\n }\n var x32 = x.subarray(32);\n var x16 = x.subarray(16);\n inv25519(x32,x32);\n M(x16,x16,x32);\n pack25519(q,x16);\n return 0;\n}\n\nfunction crypto_scalarmult_base(q, n) {\n return crypto_scalarmult(q, n, _9);\n}\n\nfunction crypto_box_keypair(y, x) {\n randombytes(x, 32);\n return crypto_scalarmult_base(y, x);\n}\n\nfunction crypto_box_beforenm(k, y, x) {\n var s = new Uint8Array(32);\n crypto_scalarmult(s, x, y);\n return crypto_core_hsalsa20(k, _0, s, sigma);\n}\n\nvar crypto_box_afternm = crypto_secretbox;\nvar crypto_box_open_afternm = crypto_secretbox_open;\n\nfunction crypto_box(c, m, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_afternm(c, m, d, n, k);\n}\n\nfunction crypto_box_open(m, c, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_open_afternm(m, c, d, n, k);\n}\n\nvar 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\nfunction crypto_hashblocks_hl(hh, hl, m, n) {\n var wh = new Int32Array(16), wl = new Int32Array(16),\n bh0, bh1, bh2, bh3, bh4, bh5, bh6, bh7,\n bl0, bl1, bl2, bl3, bl4, bl5, bl6, bl7,\n th, tl, i, j, h, l, a, b, c, d;\n\n var ah0 = hh[0],\n ah1 = hh[1],\n ah2 = hh[2],\n ah3 = hh[3],\n ah4 = hh[4],\n ah5 = hh[5],\n ah6 = hh[6],\n ah7 = hh[7],\n\n al0 = hl[0],\n al1 = hl[1],\n al2 = hl[2],\n al3 = hl[3],\n al4 = hl[4],\n al5 = hl[5],\n al6 = hl[6],\n al7 = hl[7];\n\n var pos = 0;\n while (n >= 128) {\n for (i = 0; i < 16; i++) {\n j = 8 * i + pos;\n wh[i] = (m[j+0] << 24) | (m[j+1] << 16) | (m[j+2] << 8) | m[j+3];\n wl[i] = (m[j+4] << 24) | (m[j+5] << 16) | (m[j+6] << 8) | m[j+7];\n }\n for (i = 0; i < 80; i++) {\n bh0 = ah0;\n bh1 = ah1;\n bh2 = ah2;\n bh3 = ah3;\n bh4 = ah4;\n bh5 = ah5;\n bh6 = ah6;\n bh7 = ah7;\n\n bl0 = al0;\n bl1 = al1;\n bl2 = al2;\n bl3 = al3;\n bl4 = al4;\n bl5 = al5;\n bl6 = al6;\n bl7 = al7;\n\n // add\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma1\n h = ((ah4 >>> 14) | (al4 << (32-14))) ^ ((ah4 >>> 18) | (al4 << (32-18))) ^ ((al4 >>> (41-32)) | (ah4 << (32-(41-32))));\n l = ((al4 >>> 14) | (ah4 << (32-14))) ^ ((al4 >>> 18) | (ah4 << (32-18))) ^ ((ah4 >>> (41-32)) | (al4 << (32-(41-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Ch\n h = (ah4 & ah5) ^ (~ah4 & ah6);\n l = (al4 & al5) ^ (~al4 & al6);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // K\n h = K[i*2];\n l = K[i*2+1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // w\n h = wh[i%16];\n l = wl[i%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n th = c & 0xffff | d << 16;\n tl = a & 0xffff | b << 16;\n\n // add\n h = th;\n l = tl;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma0\n h = ((ah0 >>> 28) | (al0 << (32-28))) ^ ((al0 >>> (34-32)) | (ah0 << (32-(34-32)))) ^ ((al0 >>> (39-32)) | (ah0 << (32-(39-32))));\n l = ((al0 >>> 28) | (ah0 << (32-28))) ^ ((ah0 >>> (34-32)) | (al0 << (32-(34-32)))) ^ ((ah0 >>> (39-32)) | (al0 << (32-(39-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Maj\n h = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);\n l = (al0 & al1) ^ (al0 & al2) ^ (al1 & al2);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh7 = (c & 0xffff) | (d << 16);\n bl7 = (a & 0xffff) | (b << 16);\n\n // add\n h = bh3;\n l = bl3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = th;\n l = tl;\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh3 = (c & 0xffff) | (d << 16);\n bl3 = (a & 0xffff) | (b << 16);\n\n ah1 = bh0;\n ah2 = bh1;\n ah3 = bh2;\n ah4 = bh3;\n ah5 = bh4;\n ah6 = bh5;\n ah7 = bh6;\n ah0 = bh7;\n\n al1 = bl0;\n al2 = bl1;\n al3 = bl2;\n al4 = bl3;\n al5 = bl4;\n al6 = bl5;\n al7 = bl6;\n al0 = bl7;\n\n if (i%16 === 15) {\n for (j = 0; j < 16; j++) {\n // add\n h = wh[j];\n l = wl[j];\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = wh[(j+9)%16];\n l = wl[(j+9)%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma0\n th = wh[(j+1)%16];\n tl = wl[(j+1)%16];\n h = ((th >>> 1) | (tl << (32-1))) ^ ((th >>> 8) | (tl << (32-8))) ^ (th >>> 7);\n l = ((tl >>> 1) | (th << (32-1))) ^ ((tl >>> 8) | (th << (32-8))) ^ ((tl >>> 7) | (th << (32-7)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma1\n th = wh[(j+14)%16];\n tl = wl[(j+14)%16];\n h = ((th >>> 19) | (tl << (32-19))) ^ ((tl >>> (61-32)) | (th << (32-(61-32)))) ^ (th >>> 6);\n l = ((tl >>> 19) | (th << (32-19))) ^ ((th >>> (61-32)) | (tl << (32-(61-32)))) ^ ((tl >>> 6) | (th << (32-6)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n wh[j] = (c & 0xffff) | (d << 16);\n wl[j] = (a & 0xffff) | (b << 16);\n }\n }\n }\n\n // add\n h = ah0;\n l = al0;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[0];\n l = hl[0];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[0] = ah0 = (c & 0xffff) | (d << 16);\n hl[0] = al0 = (a & 0xffff) | (b << 16);\n\n h = ah1;\n l = al1;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[1];\n l = hl[1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[1] = ah1 = (c & 0xffff) | (d << 16);\n hl[1] = al1 = (a & 0xffff) | (b << 16);\n\n h = ah2;\n l = al2;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[2];\n l = hl[2];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[2] = ah2 = (c & 0xffff) | (d << 16);\n hl[2] = al2 = (a & 0xffff) | (b << 16);\n\n h = ah3;\n l = al3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[3];\n l = hl[3];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[3] = ah3 = (c & 0xffff) | (d << 16);\n hl[3] = al3 = (a & 0xffff) | (b << 16);\n\n h = ah4;\n l = al4;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[4];\n l = hl[4];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[4] = ah4 = (c & 0xffff) | (d << 16);\n hl[4] = al4 = (a & 0xffff) | (b << 16);\n\n h = ah5;\n l = al5;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[5];\n l = hl[5];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[5] = ah5 = (c & 0xffff) | (d << 16);\n hl[5] = al5 = (a & 0xffff) | (b << 16);\n\n h = ah6;\n l = al6;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[6];\n l = hl[6];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[6] = ah6 = (c & 0xffff) | (d << 16);\n hl[6] = al6 = (a & 0xffff) | (b << 16);\n\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[7];\n l = hl[7];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[7] = ah7 = (c & 0xffff) | (d << 16);\n hl[7] = al7 = (a & 0xffff) | (b << 16);\n\n pos += 128;\n n -= 128;\n }\n\n return n;\n}\n\nfunction crypto_hash(out, m, n) {\n var hh = new Int32Array(8),\n hl = new Int32Array(8),\n x = new Uint8Array(256),\n i, b = n;\n\n hh[0] = 0x6a09e667;\n hh[1] = 0xbb67ae85;\n hh[2] = 0x3c6ef372;\n hh[3] = 0xa54ff53a;\n hh[4] = 0x510e527f;\n hh[5] = 0x9b05688c;\n hh[6] = 0x1f83d9ab;\n hh[7] = 0x5be0cd19;\n\n hl[0] = 0xf3bcc908;\n hl[1] = 0x84caa73b;\n hl[2] = 0xfe94f82b;\n hl[3] = 0x5f1d36f1;\n hl[4] = 0xade682d1;\n hl[5] = 0x2b3e6c1f;\n hl[6] = 0xfb41bd6b;\n hl[7] = 0x137e2179;\n\n crypto_hashblocks_hl(hh, hl, m, n);\n n %= 128;\n\n for (i = 0; i < n; i++) x[i] = m[b-n+i];\n x[n] = 128;\n\n n = 256-128*(n<112?1:0);\n x[n-9] = 0;\n ts64(x, n-8, (b / 0x20000000) | 0, b << 3);\n crypto_hashblocks_hl(hh, hl, x, n);\n\n for (i = 0; i < 8; i++) ts64(out, 8*i, hh[i], hl[i]);\n\n return 0;\n}\n\nfunction add(p, q) {\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf(),\n g = gf(), h = gf(), t = gf();\n\n Z(a, p[1], p[0]);\n Z(t, q[1], q[0]);\n M(a, a, t);\n A(b, p[0], p[1]);\n A(t, q[0], q[1]);\n M(b, b, t);\n M(c, p[3], q[3]);\n M(c, c, D2);\n M(d, p[2], q[2]);\n A(d, d, d);\n Z(e, b, a);\n Z(f, d, c);\n A(g, d, c);\n A(h, b, a);\n\n M(p[0], e, f);\n M(p[1], h, g);\n M(p[2], g, f);\n M(p[3], e, h);\n}\n\nfunction cswap(p, q, b) {\n var i;\n for (i = 0; i < 4; i++) {\n sel25519(p[i], q[i], b);\n }\n}\n\nfunction pack(r, p) {\n var tx = gf(), ty = gf(), zi = gf();\n inv25519(zi, p[2]);\n M(tx, p[0], zi);\n M(ty, p[1], zi);\n pack25519(r, ty);\n r[31] ^= par25519(tx) << 7;\n}\n\nfunction scalarmult(p, q, s) {\n var b, i;\n set25519(p[0], gf0);\n set25519(p[1], gf1);\n set25519(p[2], gf1);\n set25519(p[3], gf0);\n for (i = 255; i >= 0; --i) {\n b = (s[(i/8)|0] >> (i&7)) & 1;\n cswap(p, q, b);\n add(q, p);\n add(p, p);\n cswap(p, q, b);\n }\n}\n\nfunction scalarbase(p, s) {\n var q = [gf(), gf(), gf(), gf()];\n set25519(q[0], X);\n set25519(q[1], Y);\n set25519(q[2], gf1);\n M(q[3], X, Y);\n scalarmult(p, q, s);\n}\n\nfunction crypto_sign_keypair(pk, sk, seeded) {\n var d = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()];\n var i;\n\n if (!seeded) randombytes(sk, 32);\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n scalarbase(p, d);\n pack(pk, p);\n\n for (i = 0; i < 32; i++) sk[i+32] = pk[i];\n return 0;\n}\n\nvar L = new Float64Array([0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10]);\n\nfunction modL(r, x) {\n var carry, i, j, k;\n for (i = 63; i >= 32; --i) {\n carry = 0;\n for (j = i - 32, k = i - 12; j < k; ++j) {\n x[j] += carry - 16 * x[i] * L[j - (i - 32)];\n carry = Math.floor((x[j] + 128) / 256);\n x[j] -= carry * 256;\n }\n x[j] += carry;\n x[i] = 0;\n }\n carry = 0;\n for (j = 0; j < 32; j++) {\n x[j] += carry - (x[31] >> 4) * L[j];\n carry = x[j] >> 8;\n x[j] &= 255;\n }\n for (j = 0; j < 32; j++) x[j] -= carry * L[j];\n for (i = 0; i < 32; i++) {\n x[i+1] += x[i] >> 8;\n r[i] = x[i] & 255;\n }\n}\n\nfunction reduce(r) {\n var x = new Float64Array(64), i;\n for (i = 0; i < 64; i++) x[i] = r[i];\n for (i = 0; i < 64; i++) r[i] = 0;\n modL(r, x);\n}\n\n// Note: difference from C - smlen returned, not passed as argument.\nfunction crypto_sign(sm, m, n, sk) {\n var d = new Uint8Array(64), h = new Uint8Array(64), r = new Uint8Array(64);\n var i, j, x = new Float64Array(64);\n var p = [gf(), gf(), gf(), gf()];\n\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n var smlen = n + 64;\n for (i = 0; i < n; i++) sm[64 + i] = m[i];\n for (i = 0; i < 32; i++) sm[32 + i] = d[32 + i];\n\n crypto_hash(r, sm.subarray(32), n+32);\n reduce(r);\n scalarbase(p, r);\n pack(sm, p);\n\n for (i = 32; i < 64; i++) sm[i] = sk[i];\n crypto_hash(h, sm, n + 64);\n reduce(h);\n\n for (i = 0; i < 64; i++) x[i] = 0;\n for (i = 0; i < 32; i++) x[i] = r[i];\n for (i = 0; i < 32; i++) {\n for (j = 0; j < 32; j++) {\n x[i+j] += h[i] * d[j];\n }\n }\n\n modL(sm.subarray(32), x);\n return smlen;\n}\n\nfunction unpackneg(r, p) {\n var t = gf(), chk = gf(), num = gf(),\n den = gf(), den2 = gf(), den4 = gf(),\n den6 = gf();\n\n set25519(r[2], gf1);\n unpack25519(r[1], p);\n S(num, r[1]);\n M(den, num, D);\n Z(num, num, r[2]);\n A(den, r[2], den);\n\n S(den2, den);\n S(den4, den2);\n M(den6, den4, den2);\n M(t, den6, num);\n M(t, t, den);\n\n pow2523(t, t);\n M(t, t, num);\n M(t, t, den);\n M(t, t, den);\n M(r[0], t, den);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) M(r[0], r[0], I);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) return -1;\n\n if (par25519(r[0]) === (p[31]>>7)) Z(r[0], gf0, r[0]);\n\n M(r[3], r[0], r[1]);\n return 0;\n}\n\nfunction crypto_sign_open(m, sm, n, pk) {\n var i;\n var t = new Uint8Array(32), h = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()],\n q = [gf(), gf(), gf(), gf()];\n\n if (n < 64) return -1;\n\n if (unpackneg(q, pk)) return -1;\n\n for (i = 0; i < n; i++) m[i] = sm[i];\n for (i = 0; i < 32; i++) m[i+32] = pk[i];\n crypto_hash(h, m, n);\n reduce(h);\n scalarmult(p, q, h);\n\n scalarbase(q, sm.subarray(32));\n add(p, q);\n pack(t, p);\n\n n -= 64;\n if (crypto_verify_32(sm, 0, t, 0)) {\n for (i = 0; i < n; i++) m[i] = 0;\n return -1;\n }\n\n for (i = 0; i < n; i++) m[i] = sm[i + 64];\n return n;\n}\n\nvar crypto_secretbox_KEYBYTES = 32,\n crypto_secretbox_NONCEBYTES = 24,\n crypto_secretbox_ZEROBYTES = 32,\n crypto_secretbox_BOXZEROBYTES = 16,\n crypto_scalarmult_BYTES = 32,\n crypto_scalarmult_SCALARBYTES = 32,\n crypto_box_PUBLICKEYBYTES = 32,\n crypto_box_SECRETKEYBYTES = 32,\n crypto_box_BEFORENMBYTES = 32,\n crypto_box_NONCEBYTES = crypto_secretbox_NONCEBYTES,\n crypto_box_ZEROBYTES = crypto_secretbox_ZEROBYTES,\n crypto_box_BOXZEROBYTES = crypto_secretbox_BOXZEROBYTES,\n crypto_sign_BYTES = 64,\n crypto_sign_PUBLICKEYBYTES = 32,\n crypto_sign_SECRETKEYBYTES = 64,\n crypto_sign_SEEDBYTES = 32,\n crypto_hash_BYTES = 64;\n\nnacl.lowlevel = {\n crypto_core_hsalsa20: crypto_core_hsalsa20,\n crypto_stream_xor: crypto_stream_xor,\n crypto_stream: crypto_stream,\n crypto_stream_salsa20_xor: crypto_stream_salsa20_xor,\n crypto_stream_salsa20: crypto_stream_salsa20,\n crypto_onetimeauth: crypto_onetimeauth,\n crypto_onetimeauth_verify: crypto_onetimeauth_verify,\n crypto_verify_16: crypto_verify_16,\n crypto_verify_32: crypto_verify_32,\n crypto_secretbox: crypto_secretbox,\n crypto_secretbox_open: crypto_secretbox_open,\n crypto_scalarmult: crypto_scalarmult,\n crypto_scalarmult_base: crypto_scalarmult_base,\n crypto_box_beforenm: crypto_box_beforenm,\n crypto_box_afternm: crypto_box_afternm,\n crypto_box: crypto_box,\n crypto_box_open: crypto_box_open,\n crypto_box_keypair: crypto_box_keypair,\n crypto_hash: crypto_hash,\n crypto_sign: crypto_sign,\n crypto_sign_keypair: crypto_sign_keypair,\n crypto_sign_open: crypto_sign_open,\n\n crypto_secretbox_KEYBYTES: crypto_secretbox_KEYBYTES,\n crypto_secretbox_NONCEBYTES: crypto_secretbox_NONCEBYTES,\n crypto_secretbox_ZEROBYTES: crypto_secretbox_ZEROBYTES,\n crypto_secretbox_BOXZEROBYTES: crypto_secretbox_BOXZEROBYTES,\n crypto_scalarmult_BYTES: crypto_scalarmult_BYTES,\n crypto_scalarmult_SCALARBYTES: crypto_scalarmult_SCALARBYTES,\n crypto_box_PUBLICKEYBYTES: crypto_box_PUBLICKEYBYTES,\n crypto_box_SECRETKEYBYTES: crypto_box_SECRETKEYBYTES,\n crypto_box_BEFORENMBYTES: crypto_box_BEFORENMBYTES,\n crypto_box_NONCEBYTES: crypto_box_NONCEBYTES,\n crypto_box_ZEROBYTES: crypto_box_ZEROBYTES,\n crypto_box_BOXZEROBYTES: crypto_box_BOXZEROBYTES,\n crypto_sign_BYTES: crypto_sign_BYTES,\n crypto_sign_PUBLICKEYBYTES: crypto_sign_PUBLICKEYBYTES,\n crypto_sign_SECRETKEYBYTES: crypto_sign_SECRETKEYBYTES,\n crypto_sign_SEEDBYTES: crypto_sign_SEEDBYTES,\n crypto_hash_BYTES: crypto_hash_BYTES,\n\n gf: gf,\n D: D,\n L: L,\n pack25519: pack25519,\n unpack25519: unpack25519,\n M: M,\n A: A,\n S: S,\n Z: Z,\n pow2523: pow2523,\n add: add,\n set25519: set25519,\n modL: modL,\n scalarmult: scalarmult,\n scalarbase: scalarbase,\n};\n\n/* High-level API */\n\nfunction checkLengths(k, n) {\n if (k.length !== crypto_secretbox_KEYBYTES) throw new Error('bad key size');\n if (n.length !== crypto_secretbox_NONCEBYTES) throw new Error('bad nonce size');\n}\n\nfunction checkBoxLengths(pk, sk) {\n if (pk.length !== crypto_box_PUBLICKEYBYTES) throw new Error('bad public key size');\n if (sk.length !== crypto_box_SECRETKEYBYTES) throw new Error('bad secret key size');\n}\n\nfunction checkArrayTypes() {\n for (var i = 0; i < arguments.length; i++) {\n if (!(arguments[i] instanceof Uint8Array))\n throw new TypeError('unexpected type, use Uint8Array');\n }\n}\n\nfunction cleanup(arr) {\n for (var i = 0; i < arr.length; i++) arr[i] = 0;\n}\n\nnacl.randomBytes = function(n) {\n var b = new Uint8Array(n);\n randombytes(b, n);\n return b;\n};\n\nnacl.secretbox = function(msg, nonce, key) {\n checkArrayTypes(msg, nonce, key);\n checkLengths(key, nonce);\n var m = new Uint8Array(crypto_secretbox_ZEROBYTES + msg.length);\n var c = new Uint8Array(m.length);\n for (var i = 0; i < msg.length; i++) m[i+crypto_secretbox_ZEROBYTES] = msg[i];\n crypto_secretbox(c, m, m.length, nonce, key);\n return c.subarray(crypto_secretbox_BOXZEROBYTES);\n};\n\nnacl.secretbox.open = function(box, nonce, key) {\n checkArrayTypes(box, nonce, key);\n checkLengths(key, nonce);\n var c = new Uint8Array(crypto_secretbox_BOXZEROBYTES + box.length);\n var m = new Uint8Array(c.length);\n for (var i = 0; i < box.length; i++) c[i+crypto_secretbox_BOXZEROBYTES] = box[i];\n if (c.length < 32) return null;\n if (crypto_secretbox_open(m, c, c.length, nonce, key) !== 0) return null;\n return m.subarray(crypto_secretbox_ZEROBYTES);\n};\n\nnacl.secretbox.keyLength = crypto_secretbox_KEYBYTES;\nnacl.secretbox.nonceLength = crypto_secretbox_NONCEBYTES;\nnacl.secretbox.overheadLength = crypto_secretbox_BOXZEROBYTES;\n\nnacl.scalarMult = function(n, p) {\n checkArrayTypes(n, p);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n if (p.length !== crypto_scalarmult_BYTES) throw new Error('bad p size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult(q, n, p);\n return q;\n};\n\nnacl.scalarMult.base = function(n) {\n checkArrayTypes(n);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult_base(q, n);\n return q;\n};\n\nnacl.scalarMult.scalarLength = crypto_scalarmult_SCALARBYTES;\nnacl.scalarMult.groupElementLength = crypto_scalarmult_BYTES;\n\nnacl.box = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox(msg, nonce, k);\n};\n\nnacl.box.before = function(publicKey, secretKey) {\n checkArrayTypes(publicKey, secretKey);\n checkBoxLengths(publicKey, secretKey);\n var k = new Uint8Array(crypto_box_BEFORENMBYTES);\n crypto_box_beforenm(k, publicKey, secretKey);\n return k;\n};\n\nnacl.box.after = nacl.secretbox;\n\nnacl.box.open = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox.open(msg, nonce, k);\n};\n\nnacl.box.open.after = nacl.secretbox.open;\n\nnacl.box.keyPair = function() {\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_box_SECRETKEYBYTES);\n crypto_box_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.box.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_box_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n crypto_scalarmult_base(pk, secretKey);\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.box.publicKeyLength = crypto_box_PUBLICKEYBYTES;\nnacl.box.secretKeyLength = crypto_box_SECRETKEYBYTES;\nnacl.box.sharedKeyLength = crypto_box_BEFORENMBYTES;\nnacl.box.nonceLength = crypto_box_NONCEBYTES;\nnacl.box.overheadLength = nacl.secretbox.overheadLength;\n\nnacl.sign = function(msg, secretKey) {\n checkArrayTypes(msg, secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var signedMsg = new Uint8Array(crypto_sign_BYTES+msg.length);\n crypto_sign(signedMsg, msg, msg.length, secretKey);\n return signedMsg;\n};\n\nnacl.sign.open = function(signedMsg, publicKey) {\n checkArrayTypes(signedMsg, publicKey);\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var tmp = new Uint8Array(signedMsg.length);\n var mlen = crypto_sign_open(tmp, signedMsg, signedMsg.length, publicKey);\n if (mlen < 0) return null;\n var m = new Uint8Array(mlen);\n for (var i = 0; i < m.length; i++) m[i] = tmp[i];\n return m;\n};\n\nnacl.sign.detached = function(msg, secretKey) {\n var signedMsg = nacl.sign(msg, secretKey);\n var sig = new Uint8Array(crypto_sign_BYTES);\n for (var i = 0; i < sig.length; i++) sig[i] = signedMsg[i];\n return sig;\n};\n\nnacl.sign.detached.verify = function(msg, sig, publicKey) {\n checkArrayTypes(msg, sig, publicKey);\n if (sig.length !== crypto_sign_BYTES)\n throw new Error('bad signature size');\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var sm = new Uint8Array(crypto_sign_BYTES + msg.length);\n var m = new Uint8Array(crypto_sign_BYTES + msg.length);\n var i;\n for (i = 0; i < crypto_sign_BYTES; i++) sm[i] = sig[i];\n for (i = 0; i < msg.length; i++) sm[i+crypto_sign_BYTES] = msg[i];\n return (crypto_sign_open(m, sm, sm.length, publicKey) >= 0);\n};\n\nnacl.sign.keyPair = function() {\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n crypto_sign_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n for (var i = 0; i < pk.length; i++) pk[i] = secretKey[32+i];\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.sign.keyPair.fromSeed = function(seed) {\n checkArrayTypes(seed);\n if (seed.length !== crypto_sign_SEEDBYTES)\n throw new Error('bad seed size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n for (var i = 0; i < 32; i++) sk[i] = seed[i];\n crypto_sign_keypair(pk, sk, true);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.publicKeyLength = crypto_sign_PUBLICKEYBYTES;\nnacl.sign.secretKeyLength = crypto_sign_SECRETKEYBYTES;\nnacl.sign.seedLength = crypto_sign_SEEDBYTES;\nnacl.sign.signatureLength = crypto_sign_BYTES;\n\nnacl.hash = function(msg) {\n checkArrayTypes(msg);\n var h = new Uint8Array(crypto_hash_BYTES);\n crypto_hash(h, msg, msg.length);\n return h;\n};\n\nnacl.hash.hashLength = crypto_hash_BYTES;\n\nnacl.verify = function(x, y) {\n checkArrayTypes(x, y);\n // Zero length arguments are considered not equal.\n if (x.length === 0 || y.length === 0) return false;\n if (x.length !== y.length) return false;\n return (vn(x, 0, y, 0, x.length) === 0) ? true : false;\n};\n\nnacl.setPRNG = function(fn) {\n randombytes = fn;\n};\n\n(function() {\n // Initialize PRNG if environment provides CSPRNG.\n // If not, methods calling randombytes will throw.\n var crypto = typeof self !== 'undefined' ? (self.crypto || self.msCrypto) : null;\n if (crypto && crypto.getRandomValues) {\n // Browsers.\n var QUOTA = 65536;\n nacl.setPRNG(function(x, n) {\n var i, v = new Uint8Array(n);\n for (i = 0; i < n; i += QUOTA) {\n crypto.getRandomValues(v.subarray(i, i + Math.min(n - i, QUOTA)));\n }\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n } else if (typeof require !== 'undefined') {\n // Node.js.\n crypto = require('crypto');\n if (crypto && crypto.randomBytes) {\n nacl.setPRNG(function(x, n) {\n var i, v = crypto.randomBytes(n);\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n }\n }\n})();\n\n})(typeof module !== 'undefined' && module.exports ? module.exports : (self.nacl = self.nacl || {}));\n","/**\n * @param {Uint8Array} array1\n * @param {Uint8Array} array2\n * @returns {boolean}\n */\nexport function arrayEqual(array1, array2) {\n if (array1 === array2) {\n return true;\n }\n\n if (array1.byteLength !== array2.byteLength) {\n return false;\n }\n\n const view1 = new DataView(\n array1.buffer,\n array1.byteOffset,\n array1.byteLength,\n );\n const view2 = new DataView(\n array2.buffer,\n array2.byteOffset,\n array2.byteLength,\n );\n\n let i = array1.byteLength;\n\n while (i--) {\n if (view1.getUint8(i) !== view2.getUint8(i)) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * @param {Uint8Array} array\n * @param {Uint8Array} arrayPrefix\n * @returns {boolean}\n */\nexport function arrayStartsWith(array, arrayPrefix) {\n if (array.byteLength < arrayPrefix.byteLength) {\n return false;\n }\n\n let i = arrayPrefix.byteLength;\n\n while (i--) {\n if (array[i] !== arrayPrefix[i]) {\n return false;\n }\n }\n\n return true;\n}\n","/**\n * @type {string[]}\n */\nconst byteToHex = [];\n\nfor (let n = 0; n <= 0xff; n += 1) {\n byteToHex.push(n.toString(16).padStart(2, \"0\"));\n}\n\n/**\n * @param {Uint8Array} data\n * @returns {string}\n */\nexport function encode(data) {\n let string = \"\";\n\n for (const byte of data) {\n string += byteToHex[byte];\n }\n\n return string;\n}\n\n/**\n * @param {string} text\n * @returns {Uint8Array}\n */\nexport function decode(text) {\n const str = text.startsWith(\"0x\") ? text.substring(2) : text;\n const result = str.match(/.{1,2}/gu);\n\n return new Uint8Array(\n (result == null ? [] : result).map((byte) => parseInt(byte, 16)),\n );\n}\n\n/**\n * Encode with a specified length. Supports zero padding if the most significant byte is 0\n *\n * https://github.com/ethers-io/ethers.js/blob/master/packages/bytes/src.ts/index.ts#L315\n * @param {Uint8Array} value\n * @param {number} length\n * @returns {string}\n */\nexport function hexZeroPadded(value, length) {\n const HexCharacters = \"0123456789abcdef\";\n\n // https://github.com/ethers-io/ethers.js/blob/master/packages/bytes/src.ts/index.ts#L243\n let result = \"0x\";\n for (let i = 0; i < value.length; i++) {\n let v = value[i];\n result += HexCharacters[(v & 0xf0) >> 4] + HexCharacters[v & 0x0f];\n }\n\n // https://github.com/ethers-io/ethers.js/blob/master/packages/bytes/src.ts/index.ts#L315\n if (result.length > 2 * length + 2) {\n console.log(\"result out of range\", \"result\");\n }\n\n while (result.length < 2 * length + 2) {\n result = \"0x0\" + result.substring(2);\n }\n\n return result.substring(2);\n}\n","import Key from \"./Key.js\";\nimport BadKeyError from \"./BadKeyError.js\";\nimport nacl from \"tweetnacl\";\nimport { arrayEqual } from \"./util/array.js\";\nimport * as hex from \"./encoding/hex.js\";\n\nconst derPrefix = \"302a300506032b6570032100\";\nconst derPrefixBytes = hex.decode(derPrefix);\n\n/**\n * An public key on the Hedera™ network.\n */\nexport default class Ed25519PublicKey extends Key {\n /**\n * @internal\n * @hideconstructor\n * @param {Uint8Array} keyData\n */\n constructor(keyData) {\n super();\n\n /**\n * @type {Uint8Array}\n * @private\n * @readonly\n */\n this._keyData = keyData;\n }\n\n /**\n * @returns {string}\n */\n get _type() {\n return \"ED25519\";\n }\n\n /**\n * @param {Uint8Array} data\n * @returns {Ed25519PublicKey}\n */\n static fromBytes(data) {\n switch (data.length) {\n case 32:\n return Ed25519PublicKey.fromBytesRaw(data);\n case 44:\n return Ed25519PublicKey.fromBytesDer(data);\n default:\n throw new BadKeyError(\n `invalid public key length: ${data.length} bytes`,\n );\n }\n }\n\n /**\n * @param {Uint8Array} data\n * @returns {Ed25519PublicKey}\n */\n static fromBytesDer(data) {\n try {\n // Verify minimum length (44 bytes is standard for Ed25519 public key in DER)\n if (data.length !== 44) {\n throw new Error(`invalid length: ${data.length} bytes`);\n }\n\n const actualPrefix = data.subarray(0, 12);\n\n if (!actualPrefix.every((byte, i) => byte === derPrefixBytes[i])) {\n throw new Error(\"invalid DER prefix\");\n }\n // Extract the public key (last 32 bytes)\n const publicKey = data.subarray(12);\n return new Ed25519PublicKey(publicKey);\n } catch (error) {\n throw new BadKeyError(\n `cannot decode ED25519 public key data from DER format: ${\n error instanceof Error ? error.message : \"unknown error\"\n }`,\n );\n }\n }\n\n /**\n * @param {Uint8Array} data\n * @returns {Ed25519PublicKey}\n */\n static fromBytesRaw(data) {\n if (data.length != 32) {\n throw new BadKeyError(\n `invalid public key length: ${data.length} bytes`,\n );\n }\n\n return new Ed25519PublicKey(data);\n }\n\n /**\n * Parse a public key from a string of hexadecimal digits.\n *\n * The public key may optionally be prefixed with\n * the DER header.\n * @param {string} text\n * @returns {Ed25519PublicKey}\n */\n static fromString(text) {\n return Ed25519PublicKey.fromBytes(hex.decode(text));\n }\n\n /**\n * Verify a signature on a message with this public key.\n * @param {Uint8Array} message\n * @param {Uint8Array} signature\n * @returns {boolean}\n */\n verify(message, signature) {\n return nacl.sign.detached.verify(message, signature, this._keyData);\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytesDer() {\n const bytes = new Uint8Array(derPrefixBytes.length + 32);\n\n bytes.set(derPrefixBytes, 0);\n bytes.set(this._keyData.subarray(0, 32), derPrefixBytes.length);\n\n return bytes;\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytesRaw() {\n return this._keyData.slice();\n }\n\n /**\n * @param {Ed25519PublicKey} other\n * @returns {boolean}\n */\n equals(other) {\n return arrayEqual(this._keyData, other._keyData);\n }\n}\n","import nacl from \"tweetnacl\";\n\n/**\n * @param {number} count\n * @returns {Uint8Array}\n */\nexport function bytes(count) {\n return nacl.randomBytes(count);\n}\n\n/**\n * @param {number} count\n * @returns {Promise}\n */\nexport function bytesAsync(count) {\n return Promise.resolve(nacl.randomBytes(count));\n}\n","/**\n * @param {Uint8Array} data\n * @returns {string}\n */\nexport function decode(data) {\n // eslint-disable-next-line n/no-unsupported-features/node-builtins\n return new TextDecoder().decode(data);\n}\n\n/**\n * @param {string} text\n * @returns {Uint8Array}\n */\nexport function encode(text) {\n // eslint-disable-next-line n/no-unsupported-features/node-builtins\n return new TextEncoder().encode(text);\n}\n","import * as utf8 from \"../encoding/utf8.js\";\n\n// this will be executed in browser environment so we can use window.crypto\n/* eslint-disable n/no-unsupported-features/node-builtins */\n\n/**\n * @enum {string}\n */\nexport const HashAlgorithm = {\n Sha256: \"SHA-256\",\n Sha384: \"SHA-384\",\n Sha512: \"SHA-512\",\n};\n\n/**\n * @param {HashAlgorithm} algorithm\n * @param {Uint8Array | string} secretKey\n * @param {Uint8Array | string} data\n * @returns {Promise}\n */\nexport async function hash(algorithm, secretKey, data) {\n const key =\n typeof secretKey === \"string\" ? utf8.encode(secretKey) : secretKey;\n const value = typeof data === \"string\" ? utf8.encode(data) : data;\n\n try {\n const key_ = await window.crypto.subtle.importKey(\n \"raw\",\n key,\n {\n name: \"HMAC\",\n hash: algorithm,\n },\n false,\n [\"sign\"],\n );\n\n return new Uint8Array(\n await window.crypto.subtle.sign(\"HMAC\", key_, value),\n );\n } catch {\n throw new Error(\"Fallback if SubtleCrypto fails is not implemented\");\n }\n}\n","export const crypto = typeof globalThis === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined;\n//# sourceMappingURL=crypto.js.map","/**\n * Utilities for hex, bytes, CSPRNG.\n * @module\n */\n/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// node.js versions earlier than v19 don't declare it in global scope.\n// For node.js, package.json#exports field mapping rewrites import\n// from `crypto` to `cryptoNode`, which imports native module.\n// Makes the utils un-importable in browsers without a bundler.\n// Once node.js 18 is deprecated (2025-04-30), we can just drop the import.\nimport { crypto } from '@noble/hashes/crypto';\n/** Checks if something is Uint8Array. Be careful: nodejs Buffer will return true. */\nexport function isBytes(a) {\n return a instanceof Uint8Array || (ArrayBuffer.isView(a) && a.constructor.name === 'Uint8Array');\n}\n/** Asserts something is positive integer. */\nexport function anumber(n) {\n if (!Number.isSafeInteger(n) || n < 0)\n throw new Error('positive integer expected, got ' + n);\n}\n/** Asserts something is Uint8Array. */\nexport function abytes(b, ...lengths) {\n if (!isBytes(b))\n throw new Error('Uint8Array expected');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new Error('Uint8Array expected of length ' + lengths + ', got length=' + b.length);\n}\n/** Asserts something is hash */\nexport function ahash(h) {\n if (typeof h !== 'function' || typeof h.create !== 'function')\n throw new Error('Hash should be wrapped by utils.createHasher');\n anumber(h.outputLen);\n anumber(h.blockLen);\n}\n/** Asserts a hash instance has not been destroyed / finished */\nexport function aexists(instance, checkFinished = true) {\n if (instance.destroyed)\n throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished)\n throw new Error('Hash#digest() has already been called');\n}\n/** Asserts output is properly-sized byte array */\nexport function aoutput(out, instance) {\n abytes(out);\n const min = instance.outputLen;\n if (out.length < min) {\n throw new Error('digestInto() expects output buffer of length at least ' + min);\n }\n}\n/** Cast u8 / u16 / u32 to u8. */\nexport function u8(arr) {\n return new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\n}\n/** Cast u8 / u16 / u32 to u32. */\nexport function u32(arr) {\n return new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n}\n/** Zeroize a byte array. Warning: JS provides no guarantees. */\nexport function clean(...arrays) {\n for (let i = 0; i < arrays.length; i++) {\n arrays[i].fill(0);\n }\n}\n/** Create DataView of an array for easy byte-level manipulation. */\nexport function createView(arr) {\n return new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n}\n/** The rotate right (circular right shift) operation for uint32 */\nexport function rotr(word, shift) {\n return (word << (32 - shift)) | (word >>> shift);\n}\n/** The rotate left (circular left shift) operation for uint32 */\nexport function rotl(word, shift) {\n return (word << shift) | ((word >>> (32 - shift)) >>> 0);\n}\n/** Is current platform little-endian? Most are. Big-Endian platform: IBM */\nexport const isLE = /* @__PURE__ */ (() => new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44)();\n/** The byte swap operation for uint32 */\nexport function byteSwap(word) {\n return (((word << 24) & 0xff000000) |\n ((word << 8) & 0xff0000) |\n ((word >>> 8) & 0xff00) |\n ((word >>> 24) & 0xff));\n}\n/** Conditionally byte swap if on a big-endian platform */\nexport const swap8IfBE = isLE\n ? (n) => n\n : (n) => byteSwap(n);\n/** @deprecated */\nexport const byteSwapIfBE = swap8IfBE;\n/** In place byte swap for Uint32Array */\nexport function byteSwap32(arr) {\n for (let i = 0; i < arr.length; i++) {\n arr[i] = byteSwap(arr[i]);\n }\n return arr;\n}\nexport const swap32IfBE = isLE\n ? (u) => u\n : byteSwap32;\n// Built-in hex conversion https://caniuse.com/mdn-javascript_builtins_uint8array_fromhex\nconst hasHexBuiltin = /* @__PURE__ */ (() => \n// @ts-ignore\ntypeof Uint8Array.from([]).toHex === 'function' && typeof Uint8Array.fromHex === 'function')();\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0'));\n/**\n * Convert byte array to hex string. Uses built-in function, when available.\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes) {\n abytes(bytes);\n // @ts-ignore\n if (hasHexBuiltin)\n return bytes.toHex();\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, A: 65, F: 70, a: 97, f: 102 };\nfunction asciiToBase16(ch) {\n if (ch >= asciis._0 && ch <= asciis._9)\n return ch - asciis._0; // '2' => 50-48\n if (ch >= asciis.A && ch <= asciis.F)\n return ch - (asciis.A - 10); // 'B' => 66-(65-10)\n if (ch >= asciis.a && ch <= asciis.f)\n return ch - (asciis.a - 10); // 'b' => 98-(97-10)\n return;\n}\n/**\n * Convert hex string to byte array. Uses built-in function, when available.\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nexport function hexToBytes(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n // @ts-ignore\n if (hasHexBuiltin)\n return Uint8Array.fromHex(hex);\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2)\n throw new Error('hex string expected, got unpadded hex of length ' + hl);\n const array = new Uint8Array(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n const n1 = asciiToBase16(hex.charCodeAt(hi));\n const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n if (n1 === undefined || n2 === undefined) {\n const char = hex[hi] + hex[hi + 1];\n throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n }\n array[ai] = n1 * 16 + n2; // multiply first octet, e.g. 'a3' => 10*16+3 => 160 + 3 => 163\n }\n return array;\n}\n/**\n * There is no setImmediate in browser and setTimeout is slow.\n * Call of async fn will return Promise, which will be fullfiled only on\n * next scheduler queue processing step and this is exactly what we need.\n */\nexport const nextTick = async () => { };\n/** Returns control to thread each 'tick' ms to avoid blocking. */\nexport async function asyncLoop(iters, tick, cb) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick)\n continue;\n await nextTick();\n ts += diff;\n }\n}\n/**\n * Converts string to bytes using UTF8 encoding.\n * @example utf8ToBytes('abc') // Uint8Array.from([97, 98, 99])\n */\nexport function utf8ToBytes(str) {\n if (typeof str !== 'string')\n throw new Error('string expected');\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n/**\n * Converts bytes to string using UTF8 encoding.\n * @example bytesToUtf8(Uint8Array.from([97, 98, 99])) // 'abc'\n */\nexport function bytesToUtf8(bytes) {\n return new TextDecoder().decode(bytes);\n}\n/**\n * Normalizes (non-hex) string or Uint8Array to Uint8Array.\n * Warning: when Uint8Array is passed, it would NOT get copied.\n * Keep in mind for future mutable operations.\n */\nexport function toBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n abytes(data);\n return data;\n}\n/**\n * Helper for KDFs: consumes uint8array or string.\n * When string is passed, does utf8 decoding, using TextDecoder.\n */\nexport function kdfInputToBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n abytes(data);\n return data;\n}\n/** Copies several Uint8Arrays into one. */\nexport function concatBytes(...arrays) {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n abytes(a);\n sum += a.length;\n }\n const res = new Uint8Array(sum);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const a = arrays[i];\n res.set(a, pad);\n pad += a.length;\n }\n return res;\n}\nexport function checkOpts(defaults, opts) {\n if (opts !== undefined && {}.toString.call(opts) !== '[object Object]')\n throw new Error('options should be object or undefined');\n const merged = Object.assign(defaults, opts);\n return merged;\n}\n/** For runtime check if class implements interface */\nexport class Hash {\n}\n/** Wraps hash function, creating an interface on top of it */\nexport function createHasher(hashCons) {\n const hashC = (msg) => hashCons().update(toBytes(msg)).digest();\n const tmp = hashCons();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashCons();\n return hashC;\n}\nexport function createOptHasher(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\nexport function createXOFer(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\nexport const wrapConstructor = createHasher;\nexport const wrapConstructorWithOpts = createOptHasher;\nexport const wrapXOFConstructorWithOpts = createXOFer;\n/** Cryptographically secure PRNG. Uses internal OS-level `crypto.getRandomValues`. */\nexport function randomBytes(bytesLength = 32) {\n if (crypto && typeof crypto.getRandomValues === 'function') {\n return crypto.getRandomValues(new Uint8Array(bytesLength));\n }\n // Legacy Node.js compatibility\n if (crypto && typeof crypto.randomBytes === 'function') {\n return Uint8Array.from(crypto.randomBytes(bytesLength));\n }\n throw new Error('crypto.getRandomValues must be defined');\n}\n//# sourceMappingURL=utils.js.map","/**\n * Internal Merkle-Damgard hash utils.\n * @module\n */\nimport { Hash, abytes, aexists, aoutput, clean, createView, toBytes } from \"./utils.js\";\n/** Polyfill for Safari 14. https://caniuse.com/mdn-javascript_builtins_dataview_setbiguint64 */\nexport function setBigUint64(view, byteOffset, value, isLE) {\n if (typeof view.setBigUint64 === 'function')\n return view.setBigUint64(byteOffset, value, isLE);\n const _32n = BigInt(32);\n const _u32_max = BigInt(0xffffffff);\n const wh = Number((value >> _32n) & _u32_max);\n const wl = Number(value & _u32_max);\n const h = isLE ? 4 : 0;\n const l = isLE ? 0 : 4;\n view.setUint32(byteOffset + h, wh, isLE);\n view.setUint32(byteOffset + l, wl, isLE);\n}\n/** Choice: a ? b : c */\nexport function Chi(a, b, c) {\n return (a & b) ^ (~a & c);\n}\n/** Majority function, true if any two inputs is true. */\nexport function Maj(a, b, c) {\n return (a & b) ^ (a & c) ^ (b & c);\n}\n/**\n * Merkle-Damgard hash construction base class.\n * Could be used to create MD5, RIPEMD, SHA1, SHA2.\n */\nexport class HashMD extends Hash {\n constructor(blockLen, outputLen, padOffset, isLE) {\n super();\n this.finished = false;\n this.length = 0;\n this.pos = 0;\n this.destroyed = false;\n this.blockLen = blockLen;\n this.outputLen = outputLen;\n this.padOffset = padOffset;\n this.isLE = isLE;\n this.buffer = new Uint8Array(blockLen);\n this.view = createView(this.buffer);\n }\n update(data) {\n aexists(this);\n data = toBytes(data);\n abytes(data);\n const { view, buffer, blockLen } = this;\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // Fast path: we have at least one block in input, cast it to view and process\n if (take === blockLen) {\n const dataView = createView(data);\n for (; blockLen <= len - pos; pos += blockLen)\n this.process(dataView, pos);\n continue;\n }\n buffer.set(data.subarray(pos, pos + take), this.pos);\n this.pos += take;\n pos += take;\n if (this.pos === blockLen) {\n this.process(view, 0);\n this.pos = 0;\n }\n }\n this.length += data.length;\n this.roundClean();\n return this;\n }\n digestInto(out) {\n aexists(this);\n aoutput(out, this);\n this.finished = true;\n // Padding\n // We can avoid allocation of buffer for padding completely if it\n // was previously not allocated here. But it won't change performance.\n const { buffer, view, blockLen, isLE } = this;\n let { pos } = this;\n // append the bit '1' to the message\n buffer[pos++] = 0b10000000;\n clean(this.buffer.subarray(pos));\n // we have less than padOffset left in buffer, so we cannot put length in\n // current block, need process it and pad again\n if (this.padOffset > blockLen - pos) {\n this.process(view, 0);\n pos = 0;\n }\n // Pad until full block byte with zeros\n for (let i = pos; i < blockLen; i++)\n buffer[i] = 0;\n // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n // So we just write lowest 64 bits of that value.\n setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n this.process(view, 0);\n const oview = createView(out);\n const len = this.outputLen;\n // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT\n if (len % 4)\n throw new Error('_sha2: outputLen should be aligned to 32bit');\n const outLen = len / 4;\n const state = this.get();\n if (outLen > state.length)\n throw new Error('_sha2: outputLen bigger than state');\n for (let i = 0; i < outLen; i++)\n oview.setUint32(4 * i, state[i], isLE);\n }\n digest() {\n const { buffer, outputLen } = this;\n this.digestInto(buffer);\n const res = buffer.slice(0, outputLen);\n this.destroy();\n return res;\n }\n _cloneInto(to) {\n to || (to = new this.constructor());\n to.set(...this.get());\n const { blockLen, buffer, length, finished, destroyed, pos } = this;\n to.destroyed = destroyed;\n to.finished = finished;\n to.length = length;\n to.pos = pos;\n if (length % blockLen)\n to.buffer.set(buffer);\n return to;\n }\n clone() {\n return this._cloneInto();\n }\n}\n/**\n * Initial SHA-2 state: fractional parts of square roots of first 16 primes 2..53.\n * Check out `test/misc/sha2-gen-iv.js` for recomputation guide.\n */\n/** Initial SHA256 state. Bits 0..32 of frac part of sqrt of primes 2..19 */\nexport const SHA256_IV = /* @__PURE__ */ Uint32Array.from([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19,\n]);\n/** Initial SHA224 state. Bits 32..64 of frac part of sqrt of primes 23..53 */\nexport const SHA224_IV = /* @__PURE__ */ Uint32Array.from([\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939, 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4,\n]);\n/** Initial SHA384 state. Bits 0..64 of frac part of sqrt of primes 23..53 */\nexport const SHA384_IV = /* @__PURE__ */ Uint32Array.from([\n 0xcbbb9d5d, 0xc1059ed8, 0x629a292a, 0x367cd507, 0x9159015a, 0x3070dd17, 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31, 0x8eb44a87, 0x68581511, 0xdb0c2e0d, 0x64f98fa7, 0x47b5481d, 0xbefa4fa4,\n]);\n/** Initial SHA512 state. Bits 0..64 of frac part of sqrt of primes 2..19 */\nexport const SHA512_IV = /* @__PURE__ */ Uint32Array.from([\n 0x6a09e667, 0xf3bcc908, 0xbb67ae85, 0x84caa73b, 0x3c6ef372, 0xfe94f82b, 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1, 0x9b05688c, 0x2b3e6c1f, 0x1f83d9ab, 0xfb41bd6b, 0x5be0cd19, 0x137e2179,\n]);\n//# sourceMappingURL=_md.js.map","/**\n * SHA2 hash function. A.k.a. sha256, sha384, sha512, sha512_224, sha512_256.\n * SHA256 is the fastest hash implementable in JS, even faster than Blake3.\n * Check out [RFC 4634](https://datatracker.ietf.org/doc/html/rfc4634) and\n * [FIPS 180-4](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf).\n * @module\n */\nimport { Chi, HashMD, Maj, SHA224_IV, SHA256_IV, SHA384_IV, SHA512_IV } from \"./_md.js\";\nimport * as u64 from \"./_u64.js\";\nimport { clean, createHasher, rotr } from \"./utils.js\";\n/**\n * Round constants:\n * First 32 bits of fractional parts of the cube roots of the first 64 primes 2..311)\n */\n// prettier-ignore\nconst SHA256_K = /* @__PURE__ */ Uint32Array.from([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\n/** Reusable temporary buffer. \"W\" comes straight from spec. */\nconst SHA256_W = /* @__PURE__ */ new Uint32Array(64);\nexport class SHA256 extends HashMD {\n constructor(outputLen = 32) {\n super(64, outputLen, 8, false);\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n this.A = SHA256_IV[0] | 0;\n this.B = SHA256_IV[1] | 0;\n this.C = SHA256_IV[2] | 0;\n this.D = SHA256_IV[3] | 0;\n this.E = SHA256_IV[4] | 0;\n this.F = SHA256_IV[5] | 0;\n this.G = SHA256_IV[6] | 0;\n this.H = SHA256_IV[7] | 0;\n }\n get() {\n const { A, B, C, D, E, F, G, H } = this;\n return [A, B, C, D, E, F, G, H];\n }\n // prettier-ignore\n set(A, B, C, D, E, F, G, H) {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n this.E = E | 0;\n this.F = F | 0;\n this.G = G | 0;\n this.H = H | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4)\n SHA256_W[i] = view.getUint32(offset, false);\n for (let i = 16; i < 64; i++) {\n const W15 = SHA256_W[i - 15];\n const W2 = SHA256_W[i - 2];\n const s0 = rotr(W15, 7) ^ rotr(W15, 18) ^ (W15 >>> 3);\n const s1 = rotr(W2, 17) ^ rotr(W2, 19) ^ (W2 >>> 10);\n SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;\n }\n // Compression function main loop, 64 rounds\n let { A, B, C, D, E, F, G, H } = this;\n for (let i = 0; i < 64; i++) {\n const sigma1 = rotr(E, 6) ^ rotr(E, 11) ^ rotr(E, 25);\n const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const sigma0 = rotr(A, 2) ^ rotr(A, 13) ^ rotr(A, 22);\n const T2 = (sigma0 + Maj(A, B, C)) | 0;\n H = G;\n G = F;\n F = E;\n E = (D + T1) | 0;\n D = C;\n C = B;\n B = A;\n A = (T1 + T2) | 0;\n }\n // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n E = (E + this.E) | 0;\n F = (F + this.F) | 0;\n G = (G + this.G) | 0;\n H = (H + this.H) | 0;\n this.set(A, B, C, D, E, F, G, H);\n }\n roundClean() {\n clean(SHA256_W);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n clean(this.buffer);\n }\n}\nexport class SHA224 extends SHA256 {\n constructor() {\n super(28);\n this.A = SHA224_IV[0] | 0;\n this.B = SHA224_IV[1] | 0;\n this.C = SHA224_IV[2] | 0;\n this.D = SHA224_IV[3] | 0;\n this.E = SHA224_IV[4] | 0;\n this.F = SHA224_IV[5] | 0;\n this.G = SHA224_IV[6] | 0;\n this.H = SHA224_IV[7] | 0;\n }\n}\n// SHA2-512 is slower than sha256 in js because u64 operations are slow.\n// Round contants\n// First 32 bits of the fractional parts of the cube roots of the first 80 primes 2..409\n// prettier-ignore\nconst K512 = /* @__PURE__ */ (() => u64.split([\n '0x428a2f98d728ae22', '0x7137449123ef65cd', '0xb5c0fbcfec4d3b2f', '0xe9b5dba58189dbbc',\n '0x3956c25bf348b538', '0x59f111f1b605d019', '0x923f82a4af194f9b', '0xab1c5ed5da6d8118',\n '0xd807aa98a3030242', '0x12835b0145706fbe', '0x243185be4ee4b28c', '0x550c7dc3d5ffb4e2',\n '0x72be5d74f27b896f', '0x80deb1fe3b1696b1', '0x9bdc06a725c71235', '0xc19bf174cf692694',\n '0xe49b69c19ef14ad2', '0xefbe4786384f25e3', '0x0fc19dc68b8cd5b5', '0x240ca1cc77ac9c65',\n '0x2de92c6f592b0275', '0x4a7484aa6ea6e483', '0x5cb0a9dcbd41fbd4', '0x76f988da831153b5',\n '0x983e5152ee66dfab', '0xa831c66d2db43210', '0xb00327c898fb213f', '0xbf597fc7beef0ee4',\n '0xc6e00bf33da88fc2', '0xd5a79147930aa725', '0x06ca6351e003826f', '0x142929670a0e6e70',\n '0x27b70a8546d22ffc', '0x2e1b21385c26c926', '0x4d2c6dfc5ac42aed', '0x53380d139d95b3df',\n '0x650a73548baf63de', '0x766a0abb3c77b2a8', '0x81c2c92e47edaee6', '0x92722c851482353b',\n '0xa2bfe8a14cf10364', '0xa81a664bbc423001', '0xc24b8b70d0f89791', '0xc76c51a30654be30',\n '0xd192e819d6ef5218', '0xd69906245565a910', '0xf40e35855771202a', '0x106aa07032bbd1b8',\n '0x19a4c116b8d2d0c8', '0x1e376c085141ab53', '0x2748774cdf8eeb99', '0x34b0bcb5e19b48a8',\n '0x391c0cb3c5c95a63', '0x4ed8aa4ae3418acb', '0x5b9cca4f7763e373', '0x682e6ff3d6b2b8a3',\n '0x748f82ee5defb2fc', '0x78a5636f43172f60', '0x84c87814a1f0ab72', '0x8cc702081a6439ec',\n '0x90befffa23631e28', '0xa4506cebde82bde9', '0xbef9a3f7b2c67915', '0xc67178f2e372532b',\n '0xca273eceea26619c', '0xd186b8c721c0c207', '0xeada7dd6cde0eb1e', '0xf57d4f7fee6ed178',\n '0x06f067aa72176fba', '0x0a637dc5a2c898a6', '0x113f9804bef90dae', '0x1b710b35131c471b',\n '0x28db77f523047d84', '0x32caab7b40c72493', '0x3c9ebe0a15c9bebc', '0x431d67c49c100d4c',\n '0x4cc5d4becb3e42b6', '0x597f299cfc657e2a', '0x5fcb6fab3ad6faec', '0x6c44198c4a475817'\n].map(n => BigInt(n))))();\nconst SHA512_Kh = /* @__PURE__ */ (() => K512[0])();\nconst SHA512_Kl = /* @__PURE__ */ (() => K512[1])();\n// Reusable temporary buffers\nconst SHA512_W_H = /* @__PURE__ */ new Uint32Array(80);\nconst SHA512_W_L = /* @__PURE__ */ new Uint32Array(80);\nexport class SHA512 extends HashMD {\n constructor(outputLen = 64) {\n super(128, outputLen, 16, false);\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = SHA512_IV[0] | 0;\n this.Al = SHA512_IV[1] | 0;\n this.Bh = SHA512_IV[2] | 0;\n this.Bl = SHA512_IV[3] | 0;\n this.Ch = SHA512_IV[4] | 0;\n this.Cl = SHA512_IV[5] | 0;\n this.Dh = SHA512_IV[6] | 0;\n this.Dl = SHA512_IV[7] | 0;\n this.Eh = SHA512_IV[8] | 0;\n this.El = SHA512_IV[9] | 0;\n this.Fh = SHA512_IV[10] | 0;\n this.Fl = SHA512_IV[11] | 0;\n this.Gh = SHA512_IV[12] | 0;\n this.Gl = SHA512_IV[13] | 0;\n this.Hh = SHA512_IV[14] | 0;\n this.Hl = SHA512_IV[15] | 0;\n }\n // prettier-ignore\n get() {\n const { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n return [Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl];\n }\n // prettier-ignore\n set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl) {\n this.Ah = Ah | 0;\n this.Al = Al | 0;\n this.Bh = Bh | 0;\n this.Bl = Bl | 0;\n this.Ch = Ch | 0;\n this.Cl = Cl | 0;\n this.Dh = Dh | 0;\n this.Dl = Dl | 0;\n this.Eh = Eh | 0;\n this.El = El | 0;\n this.Fh = Fh | 0;\n this.Fl = Fl | 0;\n this.Gh = Gh | 0;\n this.Gl = Gl | 0;\n this.Hh = Hh | 0;\n this.Hl = Hl | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 64 words w[16..79] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4) {\n SHA512_W_H[i] = view.getUint32(offset);\n SHA512_W_L[i] = view.getUint32((offset += 4));\n }\n for (let i = 16; i < 80; i++) {\n // s0 := (w[i-15] rightrotate 1) xor (w[i-15] rightrotate 8) xor (w[i-15] rightshift 7)\n const W15h = SHA512_W_H[i - 15] | 0;\n const W15l = SHA512_W_L[i - 15] | 0;\n const s0h = u64.rotrSH(W15h, W15l, 1) ^ u64.rotrSH(W15h, W15l, 8) ^ u64.shrSH(W15h, W15l, 7);\n const s0l = u64.rotrSL(W15h, W15l, 1) ^ u64.rotrSL(W15h, W15l, 8) ^ u64.shrSL(W15h, W15l, 7);\n // s1 := (w[i-2] rightrotate 19) xor (w[i-2] rightrotate 61) xor (w[i-2] rightshift 6)\n const W2h = SHA512_W_H[i - 2] | 0;\n const W2l = SHA512_W_L[i - 2] | 0;\n const s1h = u64.rotrSH(W2h, W2l, 19) ^ u64.rotrBH(W2h, W2l, 61) ^ u64.shrSH(W2h, W2l, 6);\n const s1l = u64.rotrSL(W2h, W2l, 19) ^ u64.rotrBL(W2h, W2l, 61) ^ u64.shrSL(W2h, W2l, 6);\n // SHA256_W[i] = s0 + s1 + SHA256_W[i - 7] + SHA256_W[i - 16];\n const SUMl = u64.add4L(s0l, s1l, SHA512_W_L[i - 7], SHA512_W_L[i - 16]);\n const SUMh = u64.add4H(SUMl, s0h, s1h, SHA512_W_H[i - 7], SHA512_W_H[i - 16]);\n SHA512_W_H[i] = SUMh | 0;\n SHA512_W_L[i] = SUMl | 0;\n }\n let { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n // Compression function main loop, 80 rounds\n for (let i = 0; i < 80; i++) {\n // S1 := (e rightrotate 14) xor (e rightrotate 18) xor (e rightrotate 41)\n const sigma1h = u64.rotrSH(Eh, El, 14) ^ u64.rotrSH(Eh, El, 18) ^ u64.rotrBH(Eh, El, 41);\n const sigma1l = u64.rotrSL(Eh, El, 14) ^ u64.rotrSL(Eh, El, 18) ^ u64.rotrBL(Eh, El, 41);\n //const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const CHIh = (Eh & Fh) ^ (~Eh & Gh);\n const CHIl = (El & Fl) ^ (~El & Gl);\n // T1 = H + sigma1 + Chi(E, F, G) + SHA512_K[i] + SHA512_W[i]\n // prettier-ignore\n const T1ll = u64.add5L(Hl, sigma1l, CHIl, SHA512_Kl[i], SHA512_W_L[i]);\n const T1h = u64.add5H(T1ll, Hh, sigma1h, CHIh, SHA512_Kh[i], SHA512_W_H[i]);\n const T1l = T1ll | 0;\n // S0 := (a rightrotate 28) xor (a rightrotate 34) xor (a rightrotate 39)\n const sigma0h = u64.rotrSH(Ah, Al, 28) ^ u64.rotrBH(Ah, Al, 34) ^ u64.rotrBH(Ah, Al, 39);\n const sigma0l = u64.rotrSL(Ah, Al, 28) ^ u64.rotrBL(Ah, Al, 34) ^ u64.rotrBL(Ah, Al, 39);\n const MAJh = (Ah & Bh) ^ (Ah & Ch) ^ (Bh & Ch);\n const MAJl = (Al & Bl) ^ (Al & Cl) ^ (Bl & Cl);\n Hh = Gh | 0;\n Hl = Gl | 0;\n Gh = Fh | 0;\n Gl = Fl | 0;\n Fh = Eh | 0;\n Fl = El | 0;\n ({ h: Eh, l: El } = u64.add(Dh | 0, Dl | 0, T1h | 0, T1l | 0));\n Dh = Ch | 0;\n Dl = Cl | 0;\n Ch = Bh | 0;\n Cl = Bl | 0;\n Bh = Ah | 0;\n Bl = Al | 0;\n const All = u64.add3L(T1l, sigma0l, MAJl);\n Ah = u64.add3H(All, T1h, sigma0h, MAJh);\n Al = All | 0;\n }\n // Add the compressed chunk to the current hash value\n ({ h: Ah, l: Al } = u64.add(this.Ah | 0, this.Al | 0, Ah | 0, Al | 0));\n ({ h: Bh, l: Bl } = u64.add(this.Bh | 0, this.Bl | 0, Bh | 0, Bl | 0));\n ({ h: Ch, l: Cl } = u64.add(this.Ch | 0, this.Cl | 0, Ch | 0, Cl | 0));\n ({ h: Dh, l: Dl } = u64.add(this.Dh | 0, this.Dl | 0, Dh | 0, Dl | 0));\n ({ h: Eh, l: El } = u64.add(this.Eh | 0, this.El | 0, Eh | 0, El | 0));\n ({ h: Fh, l: Fl } = u64.add(this.Fh | 0, this.Fl | 0, Fh | 0, Fl | 0));\n ({ h: Gh, l: Gl } = u64.add(this.Gh | 0, this.Gl | 0, Gh | 0, Gl | 0));\n ({ h: Hh, l: Hl } = u64.add(this.Hh | 0, this.Hl | 0, Hh | 0, Hl | 0));\n this.set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl);\n }\n roundClean() {\n clean(SHA512_W_H, SHA512_W_L);\n }\n destroy() {\n clean(this.buffer);\n this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\n }\n}\nexport class SHA384 extends SHA512 {\n constructor() {\n super(48);\n this.Ah = SHA384_IV[0] | 0;\n this.Al = SHA384_IV[1] | 0;\n this.Bh = SHA384_IV[2] | 0;\n this.Bl = SHA384_IV[3] | 0;\n this.Ch = SHA384_IV[4] | 0;\n this.Cl = SHA384_IV[5] | 0;\n this.Dh = SHA384_IV[6] | 0;\n this.Dl = SHA384_IV[7] | 0;\n this.Eh = SHA384_IV[8] | 0;\n this.El = SHA384_IV[9] | 0;\n this.Fh = SHA384_IV[10] | 0;\n this.Fl = SHA384_IV[11] | 0;\n this.Gh = SHA384_IV[12] | 0;\n this.Gl = SHA384_IV[13] | 0;\n this.Hh = SHA384_IV[14] | 0;\n this.Hl = SHA384_IV[15] | 0;\n }\n}\n/**\n * Truncated SHA512/256 and SHA512/224.\n * SHA512_IV is XORed with 0xa5a5a5a5a5a5a5a5, then used as \"intermediary\" IV of SHA512/t.\n * Then t hashes string to produce result IV.\n * See `test/misc/sha2-gen-iv.js`.\n */\n/** SHA512/224 IV */\nconst T224_IV = /* @__PURE__ */ Uint32Array.from([\n 0x8c3d37c8, 0x19544da2, 0x73e19966, 0x89dcd4d6, 0x1dfab7ae, 0x32ff9c82, 0x679dd514, 0x582f9fcf,\n 0x0f6d2b69, 0x7bd44da8, 0x77e36f73, 0x04c48942, 0x3f9d85a8, 0x6a1d36c8, 0x1112e6ad, 0x91d692a1,\n]);\n/** SHA512/256 IV */\nconst T256_IV = /* @__PURE__ */ Uint32Array.from([\n 0x22312194, 0xfc2bf72c, 0x9f555fa3, 0xc84c64c2, 0x2393b86b, 0x6f53b151, 0x96387719, 0x5940eabd,\n 0x96283ee2, 0xa88effe3, 0xbe5e1e25, 0x53863992, 0x2b0199fc, 0x2c85b8aa, 0x0eb72ddc, 0x81c52ca2,\n]);\nexport class SHA512_224 extends SHA512 {\n constructor() {\n super(28);\n this.Ah = T224_IV[0] | 0;\n this.Al = T224_IV[1] | 0;\n this.Bh = T224_IV[2] | 0;\n this.Bl = T224_IV[3] | 0;\n this.Ch = T224_IV[4] | 0;\n this.Cl = T224_IV[5] | 0;\n this.Dh = T224_IV[6] | 0;\n this.Dl = T224_IV[7] | 0;\n this.Eh = T224_IV[8] | 0;\n this.El = T224_IV[9] | 0;\n this.Fh = T224_IV[10] | 0;\n this.Fl = T224_IV[11] | 0;\n this.Gh = T224_IV[12] | 0;\n this.Gl = T224_IV[13] | 0;\n this.Hh = T224_IV[14] | 0;\n this.Hl = T224_IV[15] | 0;\n }\n}\nexport class SHA512_256 extends SHA512 {\n constructor() {\n super(32);\n this.Ah = T256_IV[0] | 0;\n this.Al = T256_IV[1] | 0;\n this.Bh = T256_IV[2] | 0;\n this.Bl = T256_IV[3] | 0;\n this.Ch = T256_IV[4] | 0;\n this.Cl = T256_IV[5] | 0;\n this.Dh = T256_IV[6] | 0;\n this.Dl = T256_IV[7] | 0;\n this.Eh = T256_IV[8] | 0;\n this.El = T256_IV[9] | 0;\n this.Fh = T256_IV[10] | 0;\n this.Fl = T256_IV[11] | 0;\n this.Gh = T256_IV[12] | 0;\n this.Gl = T256_IV[13] | 0;\n this.Hh = T256_IV[14] | 0;\n this.Hl = T256_IV[15] | 0;\n }\n}\n/**\n * SHA2-256 hash function from RFC 4634.\n *\n * It is the fastest JS hash, even faster than Blake3.\n * To break sha256 using birthday attack, attackers need to try 2^128 hashes.\n * BTC network is doing 2^70 hashes/sec (2^95 hashes/year) as per 2025.\n */\nexport const sha256 = /* @__PURE__ */ createHasher(() => new SHA256());\n/** SHA2-224 hash function from RFC 4634 */\nexport const sha224 = /* @__PURE__ */ createHasher(() => new SHA224());\n/** SHA2-512 hash function from RFC 4634. */\nexport const sha512 = /* @__PURE__ */ createHasher(() => new SHA512());\n/** SHA2-384 hash function from RFC 4634. */\nexport const sha384 = /* @__PURE__ */ createHasher(() => new SHA384());\n/**\n * SHA2-512/256 \"truncated\" hash function, with improved resistance to length extension attacks.\n * See the paper on [truncated SHA512](https://eprint.iacr.org/2010/548.pdf).\n */\nexport const sha512_256 = /* @__PURE__ */ createHasher(() => new SHA512_256());\n/**\n * SHA2-512/224 \"truncated\" hash function, with improved resistance to length extension attacks.\n * See the paper on [truncated SHA512](https://eprint.iacr.org/2010/548.pdf).\n */\nexport const sha512_224 = /* @__PURE__ */ createHasher(() => new SHA512_224());\n//# sourceMappingURL=sha2.js.map","/**\n * HMAC: RFC2104 message authentication code.\n * @module\n */\nimport { abytes, aexists, ahash, clean, Hash, toBytes } from \"./utils.js\";\nexport class HMAC extends Hash {\n constructor(hash, _key) {\n super();\n this.finished = false;\n this.destroyed = false;\n ahash(hash);\n const key = toBytes(_key);\n this.iHash = hash.create();\n if (typeof this.iHash.update !== 'function')\n throw new Error('Expected instance of class which extends utils.Hash');\n this.blockLen = this.iHash.blockLen;\n this.outputLen = this.iHash.outputLen;\n const blockLen = this.blockLen;\n const pad = new Uint8Array(blockLen);\n // blockLen can be bigger than outputLen\n pad.set(key.length > blockLen ? hash.create().update(key).digest() : key);\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36;\n this.iHash.update(pad);\n // By doing update (processing of first block) of outer hash here we can re-use it between multiple calls via clone\n this.oHash = hash.create();\n // Undo internal XOR && apply outer XOR\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36 ^ 0x5c;\n this.oHash.update(pad);\n clean(pad);\n }\n update(buf) {\n aexists(this);\n this.iHash.update(buf);\n return this;\n }\n digestInto(out) {\n aexists(this);\n abytes(out, this.outputLen);\n this.finished = true;\n this.iHash.digestInto(out);\n this.oHash.update(out);\n this.oHash.digestInto(out);\n this.destroy();\n }\n digest() {\n const out = new Uint8Array(this.oHash.outputLen);\n this.digestInto(out);\n return out;\n }\n _cloneInto(to) {\n // Create new instance without calling constructor since key already in state and we don't know it.\n to || (to = Object.create(Object.getPrototypeOf(this), {}));\n const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this;\n to = to;\n to.finished = finished;\n to.destroyed = destroyed;\n to.blockLen = blockLen;\n to.outputLen = outputLen;\n to.oHash = oHash._cloneInto(to.oHash);\n to.iHash = iHash._cloneInto(to.iHash);\n return to;\n }\n clone() {\n return this._cloneInto();\n }\n destroy() {\n this.destroyed = true;\n this.oHash.destroy();\n this.iHash.destroy();\n }\n}\n/**\n * HMAC: RFC2104 message authentication code.\n * @param hash - function that would be used e.g. sha256\n * @param key - message key\n * @param message - message data\n * @example\n * import { hmac } from '@noble/hashes/hmac';\n * import { sha256 } from '@noble/hashes/sha2';\n * const mac1 = hmac(sha256, 'key', 'message');\n */\nexport const hmac = (hash, key, message) => new HMAC(hash, key).update(message).digest();\nhmac.create = (hash, key) => new HMAC(hash, key);\n//# sourceMappingURL=hmac.js.map","/**\n * Hex, bytes and number utilities.\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// 100 lines of code in the file are duplicated from noble-hashes (utils).\n// This is OK: `abstract` directory does not use noble-hashes.\n// User may opt-in into using different hashing library. This way, noble-hashes\n// won't be included into their bundle.\nconst _0n = /* @__PURE__ */ BigInt(0);\nconst _1n = /* @__PURE__ */ BigInt(1);\nexport function isBytes(a) {\n return a instanceof Uint8Array || (ArrayBuffer.isView(a) && a.constructor.name === 'Uint8Array');\n}\nexport function abytes(item) {\n if (!isBytes(item))\n throw new Error('Uint8Array expected');\n}\nexport function abool(title, value) {\n if (typeof value !== 'boolean')\n throw new Error(title + ' boolean expected, got ' + value);\n}\n// Used in weierstrass, der\nexport function numberToHexUnpadded(num) {\n const hex = num.toString(16);\n return hex.length & 1 ? '0' + hex : hex;\n}\nexport function hexToNumber(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n return hex === '' ? _0n : BigInt('0x' + hex); // Big Endian\n}\n// Built-in hex conversion https://caniuse.com/mdn-javascript_builtins_uint8array_fromhex\nconst hasHexBuiltin = \n// @ts-ignore\ntypeof Uint8Array.from([]).toHex === 'function' && typeof Uint8Array.fromHex === 'function';\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0'));\n/**\n * Convert byte array to hex string. Uses built-in function, when available.\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes) {\n abytes(bytes);\n // @ts-ignore\n if (hasHexBuiltin)\n return bytes.toHex();\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, A: 65, F: 70, a: 97, f: 102 };\nfunction asciiToBase16(ch) {\n if (ch >= asciis._0 && ch <= asciis._9)\n return ch - asciis._0; // '2' => 50-48\n if (ch >= asciis.A && ch <= asciis.F)\n return ch - (asciis.A - 10); // 'B' => 66-(65-10)\n if (ch >= asciis.a && ch <= asciis.f)\n return ch - (asciis.a - 10); // 'b' => 98-(97-10)\n return;\n}\n/**\n * Convert hex string to byte array. Uses built-in function, when available.\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nexport function hexToBytes(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n // @ts-ignore\n if (hasHexBuiltin)\n return Uint8Array.fromHex(hex);\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2)\n throw new Error('hex string expected, got unpadded hex of length ' + hl);\n const array = new Uint8Array(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n const n1 = asciiToBase16(hex.charCodeAt(hi));\n const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n if (n1 === undefined || n2 === undefined) {\n const char = hex[hi] + hex[hi + 1];\n throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n }\n array[ai] = n1 * 16 + n2; // multiply first octet, e.g. 'a3' => 10*16+3 => 160 + 3 => 163\n }\n return array;\n}\n// BE: Big Endian, LE: Little Endian\nexport function bytesToNumberBE(bytes) {\n return hexToNumber(bytesToHex(bytes));\n}\nexport function bytesToNumberLE(bytes) {\n abytes(bytes);\n return hexToNumber(bytesToHex(Uint8Array.from(bytes).reverse()));\n}\nexport function numberToBytesBE(n, len) {\n return hexToBytes(n.toString(16).padStart(len * 2, '0'));\n}\nexport function numberToBytesLE(n, len) {\n return numberToBytesBE(n, len).reverse();\n}\n// Unpadded, rarely used\nexport function numberToVarBytesBE(n) {\n return hexToBytes(numberToHexUnpadded(n));\n}\n/**\n * Takes hex string or Uint8Array, converts to Uint8Array.\n * Validates output length.\n * Will throw error for other types.\n * @param title descriptive title for an error e.g. 'private key'\n * @param hex hex string or Uint8Array\n * @param expectedLength optional, will compare to result array's length\n * @returns\n */\nexport function ensureBytes(title, hex, expectedLength) {\n let res;\n if (typeof hex === 'string') {\n try {\n res = hexToBytes(hex);\n }\n catch (e) {\n throw new Error(title + ' must be hex string or Uint8Array, cause: ' + e);\n }\n }\n else if (isBytes(hex)) {\n // Uint8Array.from() instead of hash.slice() because node.js Buffer\n // is instance of Uint8Array, and its slice() creates **mutable** copy\n res = Uint8Array.from(hex);\n }\n else {\n throw new Error(title + ' must be hex string or Uint8Array');\n }\n const len = res.length;\n if (typeof expectedLength === 'number' && len !== expectedLength)\n throw new Error(title + ' of length ' + expectedLength + ' expected, got ' + len);\n return res;\n}\n/**\n * Copies several Uint8Arrays into one.\n */\nexport function concatBytes(...arrays) {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n abytes(a);\n sum += a.length;\n }\n const res = new Uint8Array(sum);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const a = arrays[i];\n res.set(a, pad);\n pad += a.length;\n }\n return res;\n}\n// Compares 2 u8a-s in kinda constant time\nexport function equalBytes(a, b) {\n if (a.length !== b.length)\n return false;\n let diff = 0;\n for (let i = 0; i < a.length; i++)\n diff |= a[i] ^ b[i];\n return diff === 0;\n}\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nexport function utf8ToBytes(str) {\n if (typeof str !== 'string')\n throw new Error('string expected');\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n// Is positive bigint\nconst isPosBig = (n) => typeof n === 'bigint' && _0n <= n;\nexport function inRange(n, min, max) {\n return isPosBig(n) && isPosBig(min) && isPosBig(max) && min <= n && n < max;\n}\n/**\n * Asserts min <= n < max. NOTE: It's < max and not <= max.\n * @example\n * aInRange('x', x, 1n, 256n); // would assume x is in (1n..255n)\n */\nexport function aInRange(title, n, min, max) {\n // Why min <= n < max and not a (min < n < max) OR b (min <= n <= max)?\n // consider P=256n, min=0n, max=P\n // - a for min=0 would require -1: `inRange('x', x, -1n, P)`\n // - b would commonly require subtraction: `inRange('x', x, 0n, P - 1n)`\n // - our way is the cleanest: `inRange('x', x, 0n, P)\n if (!inRange(n, min, max))\n throw new Error('expected valid ' + title + ': ' + min + ' <= n < ' + max + ', got ' + n);\n}\n// Bit operations\n/**\n * Calculates amount of bits in a bigint.\n * Same as `n.toString(2).length`\n * TODO: merge with nLength in modular\n */\nexport function bitLen(n) {\n let len;\n for (len = 0; n > _0n; n >>= _1n, len += 1)\n ;\n return len;\n}\n/**\n * Gets single bit at position.\n * NOTE: first bit position is 0 (same as arrays)\n * Same as `!!+Array.from(n.toString(2)).reverse()[pos]`\n */\nexport function bitGet(n, pos) {\n return (n >> BigInt(pos)) & _1n;\n}\n/**\n * Sets single bit at position.\n */\nexport function bitSet(n, pos, value) {\n return n | ((value ? _1n : _0n) << BigInt(pos));\n}\n/**\n * Calculate mask for N bits. Not using ** operator with bigints because of old engines.\n * Same as BigInt(`0b${Array(i).fill('1').join('')}`)\n */\nexport const bitMask = (n) => (_1n << BigInt(n)) - _1n;\n// DRBG\nconst u8n = (len) => new Uint8Array(len); // creates Uint8Array\nconst u8fr = (arr) => Uint8Array.from(arr); // another shortcut\n/**\n * Minimal HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n * @returns function that will call DRBG until 2nd arg returns something meaningful\n * @example\n * const drbg = createHmacDRBG(32, 32, hmac);\n * drbg(seed, bytesToKey); // bytesToKey must return Key or undefined\n */\nexport function createHmacDrbg(hashLen, qByteLen, hmacFn) {\n if (typeof hashLen !== 'number' || hashLen < 2)\n throw new Error('hashLen must be a number');\n if (typeof qByteLen !== 'number' || qByteLen < 2)\n throw new Error('qByteLen must be a number');\n if (typeof hmacFn !== 'function')\n throw new Error('hmacFn must be a function');\n // Step B, Step C: set hashLen to 8*ceil(hlen/8)\n let v = u8n(hashLen); // Minimal non-full-spec HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n let k = u8n(hashLen); // Steps B and C of RFC6979 3.2: set hashLen, in our case always same\n let i = 0; // Iterations counter, will throw when over 1000\n const reset = () => {\n v.fill(1);\n k.fill(0);\n i = 0;\n };\n const h = (...b) => hmacFn(k, v, ...b); // hmac(k)(v, ...values)\n const reseed = (seed = u8n(0)) => {\n // HMAC-DRBG reseed() function. Steps D-G\n k = h(u8fr([0x00]), seed); // k = hmac(k || v || 0x00 || seed)\n v = h(); // v = hmac(k || v)\n if (seed.length === 0)\n return;\n k = h(u8fr([0x01]), seed); // k = hmac(k || v || 0x01 || seed)\n v = h(); // v = hmac(k || v)\n };\n const gen = () => {\n // HMAC-DRBG generate() function\n if (i++ >= 1000)\n throw new Error('drbg: tried 1000 values');\n let len = 0;\n const out = [];\n while (len < qByteLen) {\n v = h();\n const sl = v.slice();\n out.push(sl);\n len += v.length;\n }\n return concatBytes(...out);\n };\n const genUntil = (seed, pred) => {\n reset();\n reseed(seed); // Steps D-G\n let res = undefined; // Step H: grind until k is in [1..n-1]\n while (!(res = pred(gen())))\n reseed();\n reset();\n return res;\n };\n return genUntil;\n}\n// Validating curves and fields\nconst validatorFns = {\n bigint: (val) => typeof val === 'bigint',\n function: (val) => typeof val === 'function',\n boolean: (val) => typeof val === 'boolean',\n string: (val) => typeof val === 'string',\n stringOrUint8Array: (val) => typeof val === 'string' || isBytes(val),\n isSafeInteger: (val) => Number.isSafeInteger(val),\n array: (val) => Array.isArray(val),\n field: (val, object) => object.Fp.isValid(val),\n hash: (val) => typeof val === 'function' && Number.isSafeInteger(val.outputLen),\n};\n// type Record = { [P in K]: T; }\nexport function validateObject(object, validators, optValidators = {}) {\n const checkField = (fieldName, type, isOptional) => {\n const checkVal = validatorFns[type];\n if (typeof checkVal !== 'function')\n throw new Error('invalid validator function');\n const val = object[fieldName];\n if (isOptional && val === undefined)\n return;\n if (!checkVal(val, object)) {\n throw new Error('param ' + String(fieldName) + ' is invalid. Expected ' + type + ', got ' + val);\n }\n };\n for (const [fieldName, type] of Object.entries(validators))\n checkField(fieldName, type, false);\n for (const [fieldName, type] of Object.entries(optValidators))\n checkField(fieldName, type, true);\n return object;\n}\n// validate type tests\n// const o: { a: number; b: number; c: number } = { a: 1, b: 5, c: 6 };\n// const z0 = validateObject(o, { a: 'isSafeInteger' }, { c: 'bigint' }); // Ok!\n// // Should fail type-check\n// const z1 = validateObject(o, { a: 'tmp' }, { c: 'zz' });\n// const z2 = validateObject(o, { a: 'isSafeInteger' }, { c: 'zz' });\n// const z3 = validateObject(o, { test: 'boolean', z: 'bug' });\n// const z4 = validateObject(o, { a: 'boolean', z: 'bug' });\n/**\n * throws not implemented error\n */\nexport const notImplemented = () => {\n throw new Error('not implemented');\n};\n/**\n * Memoizes (caches) computation result.\n * Uses WeakMap: the value is going auto-cleaned by GC after last reference is removed.\n */\nexport function memoized(fn) {\n const map = new WeakMap();\n return (arg, ...args) => {\n const val = map.get(arg);\n if (val !== undefined)\n return val;\n const computed = fn(arg, ...args);\n map.set(arg, computed);\n return computed;\n };\n}\n//# sourceMappingURL=utils.js.map","/**\n * Utils for modular division and finite fields.\n * A finite field over 11 is integer number operations `mod 11`.\n * There is no division: it is replaced by modular multiplicative inverse.\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { anumber } from '@noble/hashes/utils';\nimport { bitMask, bytesToNumberBE, bytesToNumberLE, ensureBytes, numberToBytesBE, numberToBytesLE, validateObject, } from \"./utils.js\";\n// prettier-ignore\nconst _0n = BigInt(0), _1n = BigInt(1), _2n = /* @__PURE__ */ BigInt(2), _3n = /* @__PURE__ */ BigInt(3);\n// prettier-ignore\nconst _4n = /* @__PURE__ */ BigInt(4), _5n = /* @__PURE__ */ BigInt(5), _8n = /* @__PURE__ */ BigInt(8);\n// Calculates a modulo b\nexport function mod(a, b) {\n const result = a % b;\n return result >= _0n ? result : b + result;\n}\n/**\n * Efficiently raise num to power and do modular division.\n * Unsafe in some contexts: uses ladder, so can expose bigint bits.\n * TODO: remove.\n * @example\n * pow(2n, 6n, 11n) // 64n % 11n == 9n\n */\nexport function pow(num, power, modulo) {\n return FpPow(Field(modulo), num, power);\n}\n/** Does `x^(2^power)` mod p. `pow2(30, 4)` == `30^(2^4)` */\nexport function pow2(x, power, modulo) {\n let res = x;\n while (power-- > _0n) {\n res *= res;\n res %= modulo;\n }\n return res;\n}\n/**\n * Inverses number over modulo.\n * Implemented using [Euclidean GCD](https://brilliant.org/wiki/extended-euclidean-algorithm/).\n */\nexport function invert(number, modulo) {\n if (number === _0n)\n throw new Error('invert: expected non-zero number');\n if (modulo <= _0n)\n throw new Error('invert: expected positive modulus, got ' + modulo);\n // Fermat's little theorem \"CT-like\" version inv(n) = n^(m-2) mod m is 30x slower.\n let a = mod(number, modulo);\n let b = modulo;\n // prettier-ignore\n let x = _0n, y = _1n, u = _1n, v = _0n;\n while (a !== _0n) {\n // JIT applies optimization if those two lines follow each other\n const q = b / a;\n const r = b % a;\n const m = x - u * q;\n const n = y - v * q;\n // prettier-ignore\n b = a, a = r, x = u, y = v, u = m, v = n;\n }\n const gcd = b;\n if (gcd !== _1n)\n throw new Error('invert: does not exist');\n return mod(x, modulo);\n}\n// Not all roots are possible! Example which will throw:\n// const NUM =\n// n = 72057594037927816n;\n// Fp = Field(BigInt('0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab'));\nfunction sqrt3mod4(Fp, n) {\n const p1div4 = (Fp.ORDER + _1n) / _4n;\n const root = Fp.pow(n, p1div4);\n // Throw if root^2 != n\n if (!Fp.eql(Fp.sqr(root), n))\n throw new Error('Cannot find square root');\n return root;\n}\nfunction sqrt5mod8(Fp, n) {\n const p5div8 = (Fp.ORDER - _5n) / _8n;\n const n2 = Fp.mul(n, _2n);\n const v = Fp.pow(n2, p5div8);\n const nv = Fp.mul(n, v);\n const i = Fp.mul(Fp.mul(nv, _2n), v);\n const root = Fp.mul(nv, Fp.sub(i, Fp.ONE));\n if (!Fp.eql(Fp.sqr(root), n))\n throw new Error('Cannot find square root');\n return root;\n}\n// TODO: Commented-out for now. Provide test vectors.\n// Tonelli is too slow for extension fields Fp2.\n// That means we can't use sqrt (c1, c2...) even for initialization constants.\n// if (P % _16n === _9n) return sqrt9mod16;\n// // prettier-ignore\n// function sqrt9mod16(Fp: IField, n: T, p7div16?: bigint) {\n// if (p7div16 === undefined) p7div16 = (Fp.ORDER + BigInt(7)) / _16n;\n// const c1 = Fp.sqrt(Fp.neg(Fp.ONE)); // 1. c1 = sqrt(-1) in F, i.e., (c1^2) == -1 in F\n// const c2 = Fp.sqrt(c1); // 2. c2 = sqrt(c1) in F, i.e., (c2^2) == c1 in F\n// const c3 = Fp.sqrt(Fp.neg(c1)); // 3. c3 = sqrt(-c1) in F, i.e., (c3^2) == -c1 in F\n// const c4 = p7div16; // 4. c4 = (q + 7) / 16 # Integer arithmetic\n// let tv1 = Fp.pow(n, c4); // 1. tv1 = x^c4\n// let tv2 = Fp.mul(c1, tv1); // 2. tv2 = c1 * tv1\n// const tv3 = Fp.mul(c2, tv1); // 3. tv3 = c2 * tv1\n// let tv4 = Fp.mul(c3, tv1); // 4. tv4 = c3 * tv1\n// const e1 = Fp.eql(Fp.sqr(tv2), n); // 5. e1 = (tv2^2) == x\n// const e2 = Fp.eql(Fp.sqr(tv3), n); // 6. e2 = (tv3^2) == x\n// tv1 = Fp.cmov(tv1, tv2, e1); // 7. tv1 = CMOV(tv1, tv2, e1) # Select tv2 if (tv2^2) == x\n// tv2 = Fp.cmov(tv4, tv3, e2); // 8. tv2 = CMOV(tv4, tv3, e2) # Select tv3 if (tv3^2) == x\n// const e3 = Fp.eql(Fp.sqr(tv2), n); // 9. e3 = (tv2^2) == x\n// return Fp.cmov(tv1, tv2, e3); // 10. z = CMOV(tv1, tv2, e3) # Select the sqrt from tv1 and tv2\n// }\n/**\n * Tonelli-Shanks square root search algorithm.\n * 1. https://eprint.iacr.org/2012/685.pdf (page 12)\n * 2. Square Roots from 1; 24, 51, 10 to Dan Shanks\n * @param P field order\n * @returns function that takes field Fp (created from P) and number n\n */\nexport function tonelliShanks(P) {\n // Initialization (precomputation).\n if (P < BigInt(3))\n throw new Error('sqrt is not defined for small field');\n // Factor P - 1 = Q * 2^S, where Q is odd\n let Q = P - _1n;\n let S = 0;\n while (Q % _2n === _0n) {\n Q /= _2n;\n S++;\n }\n // Find the first quadratic non-residue Z >= 2\n let Z = _2n;\n const _Fp = Field(P);\n while (FpLegendre(_Fp, Z) === 1) {\n // Basic primality test for P. After x iterations, chance of\n // not finding quadratic non-residue is 2^x, so 2^1000.\n if (Z++ > 1000)\n throw new Error('Cannot find square root: probably non-prime P');\n }\n // Fast-path; usually done before Z, but we do \"primality test\".\n if (S === 1)\n return sqrt3mod4;\n // Slow-path\n // TODO: test on Fp2 and others\n let cc = _Fp.pow(Z, Q); // c = z^Q\n const Q1div2 = (Q + _1n) / _2n;\n return function tonelliSlow(Fp, n) {\n if (Fp.is0(n))\n return n;\n // Check if n is a quadratic residue using Legendre symbol\n if (FpLegendre(Fp, n) !== 1)\n throw new Error('Cannot find square root');\n // Initialize variables for the main loop\n let M = S;\n let c = Fp.mul(Fp.ONE, cc); // c = z^Q, move cc from field _Fp into field Fp\n let t = Fp.pow(n, Q); // t = n^Q, first guess at the fudge factor\n let R = Fp.pow(n, Q1div2); // R = n^((Q+1)/2), first guess at the square root\n // Main loop\n // while t != 1\n while (!Fp.eql(t, Fp.ONE)) {\n if (Fp.is0(t))\n return Fp.ZERO; // if t=0 return R=0\n let i = 1;\n // Find the smallest i >= 1 such that t^(2^i) ≡ 1 (mod P)\n let t_tmp = Fp.sqr(t); // t^(2^1)\n while (!Fp.eql(t_tmp, Fp.ONE)) {\n i++;\n t_tmp = Fp.sqr(t_tmp); // t^(2^2)...\n if (i === M)\n throw new Error('Cannot find square root');\n }\n // Calculate the exponent for b: 2^(M - i - 1)\n const exponent = _1n << BigInt(M - i - 1); // bigint is important\n const b = Fp.pow(c, exponent); // b = 2^(M - i - 1)\n // Update variables\n M = i;\n c = Fp.sqr(b); // c = b^2\n t = Fp.mul(t, c); // t = (t * b^2)\n R = Fp.mul(R, b); // R = R*b\n }\n return R;\n };\n}\n/**\n * Square root for a finite field. Will try optimized versions first:\n *\n * 1. P ≡ 3 (mod 4)\n * 2. P ≡ 5 (mod 8)\n * 3. Tonelli-Shanks algorithm\n *\n * Different algorithms can give different roots, it is up to user to decide which one they want.\n * For example there is FpSqrtOdd/FpSqrtEven to choice root based on oddness (used for hash-to-curve).\n */\nexport function FpSqrt(P) {\n // P ≡ 3 (mod 4) => √n = n^((P+1)/4)\n if (P % _4n === _3n)\n return sqrt3mod4;\n // P ≡ 5 (mod 8) => Atkin algorithm, page 10 of https://eprint.iacr.org/2012/685.pdf\n if (P % _8n === _5n)\n return sqrt5mod8;\n // P ≡ 9 (mod 16) not implemented, see above\n // Tonelli-Shanks algorithm\n return tonelliShanks(P);\n}\n// Little-endian check for first LE bit (last BE bit);\nexport const isNegativeLE = (num, modulo) => (mod(num, modulo) & _1n) === _1n;\n// prettier-ignore\nconst FIELD_FIELDS = [\n 'create', 'isValid', 'is0', 'neg', 'inv', 'sqrt', 'sqr',\n 'eql', 'add', 'sub', 'mul', 'pow', 'div',\n 'addN', 'subN', 'mulN', 'sqrN'\n];\nexport function validateField(field) {\n const initial = {\n ORDER: 'bigint',\n MASK: 'bigint',\n BYTES: 'isSafeInteger',\n BITS: 'isSafeInteger',\n };\n const opts = FIELD_FIELDS.reduce((map, val) => {\n map[val] = 'function';\n return map;\n }, initial);\n return validateObject(field, opts);\n}\n// Generic field functions\n/**\n * Same as `pow` but for Fp: non-constant-time.\n * Unsafe in some contexts: uses ladder, so can expose bigint bits.\n */\nexport function FpPow(Fp, num, power) {\n if (power < _0n)\n throw new Error('invalid exponent, negatives unsupported');\n if (power === _0n)\n return Fp.ONE;\n if (power === _1n)\n return num;\n let p = Fp.ONE;\n let d = num;\n while (power > _0n) {\n if (power & _1n)\n p = Fp.mul(p, d);\n d = Fp.sqr(d);\n power >>= _1n;\n }\n return p;\n}\n/**\n * Efficiently invert an array of Field elements.\n * Exception-free. Will return `undefined` for 0 elements.\n * @param passZero map 0 to 0 (instead of undefined)\n */\nexport function FpInvertBatch(Fp, nums, passZero = false) {\n const inverted = new Array(nums.length).fill(passZero ? Fp.ZERO : undefined);\n // Walk from first to last, multiply them by each other MOD p\n const multipliedAcc = nums.reduce((acc, num, i) => {\n if (Fp.is0(num))\n return acc;\n inverted[i] = acc;\n return Fp.mul(acc, num);\n }, Fp.ONE);\n // Invert last element\n const invertedAcc = Fp.inv(multipliedAcc);\n // Walk from last to first, multiply them by inverted each other MOD p\n nums.reduceRight((acc, num, i) => {\n if (Fp.is0(num))\n return acc;\n inverted[i] = Fp.mul(acc, inverted[i]);\n return Fp.mul(acc, num);\n }, invertedAcc);\n return inverted;\n}\n// TODO: remove\nexport function FpDiv(Fp, lhs, rhs) {\n return Fp.mul(lhs, typeof rhs === 'bigint' ? invert(rhs, Fp.ORDER) : Fp.inv(rhs));\n}\n/**\n * Legendre symbol.\n * Legendre constant is used to calculate Legendre symbol (a | p)\n * which denotes the value of a^((p-1)/2) (mod p).\n *\n * * (a | p) ≡ 1 if a is a square (mod p), quadratic residue\n * * (a | p) ≡ -1 if a is not a square (mod p), quadratic non residue\n * * (a | p) ≡ 0 if a ≡ 0 (mod p)\n */\nexport function FpLegendre(Fp, n) {\n // We can use 3rd argument as optional cache of this value\n // but seems unneeded for now. The operation is very fast.\n const p1mod2 = (Fp.ORDER - _1n) / _2n;\n const powered = Fp.pow(n, p1mod2);\n const yes = Fp.eql(powered, Fp.ONE);\n const zero = Fp.eql(powered, Fp.ZERO);\n const no = Fp.eql(powered, Fp.neg(Fp.ONE));\n if (!yes && !zero && !no)\n throw new Error('invalid Legendre symbol result');\n return yes ? 1 : zero ? 0 : -1;\n}\n// This function returns True whenever the value x is a square in the field F.\nexport function FpIsSquare(Fp, n) {\n const l = FpLegendre(Fp, n);\n return l === 1;\n}\n// CURVE.n lengths\nexport function nLength(n, nBitLength) {\n // Bit size, byte size of CURVE.n\n if (nBitLength !== undefined)\n anumber(nBitLength);\n const _nBitLength = nBitLength !== undefined ? nBitLength : n.toString(2).length;\n const nByteLength = Math.ceil(_nBitLength / 8);\n return { nBitLength: _nBitLength, nByteLength };\n}\n/**\n * Initializes a finite field over prime.\n * Major performance optimizations:\n * * a) denormalized operations like mulN instead of mul\n * * b) same object shape: never add or remove keys\n * * c) Object.freeze\n * Fragile: always run a benchmark on a change.\n * Security note: operations don't check 'isValid' for all elements for performance reasons,\n * it is caller responsibility to check this.\n * This is low-level code, please make sure you know what you're doing.\n * @param ORDER prime positive bigint\n * @param bitLen how many bits the field consumes\n * @param isLE (def: false) if encoding / decoding should be in little-endian\n * @param redef optional faster redefinitions of sqrt and other methods\n */\nexport function Field(ORDER, bitLen, isLE = false, redef = {}) {\n if (ORDER <= _0n)\n throw new Error('invalid field: expected ORDER > 0, got ' + ORDER);\n const { nBitLength: BITS, nByteLength: BYTES } = nLength(ORDER, bitLen);\n if (BYTES > 2048)\n throw new Error('invalid field: expected ORDER of <= 2048 bytes');\n let sqrtP; // cached sqrtP\n const f = Object.freeze({\n ORDER,\n isLE,\n BITS,\n BYTES,\n MASK: bitMask(BITS),\n ZERO: _0n,\n ONE: _1n,\n create: (num) => mod(num, ORDER),\n isValid: (num) => {\n if (typeof num !== 'bigint')\n throw new Error('invalid field element: expected bigint, got ' + typeof num);\n return _0n <= num && num < ORDER; // 0 is valid element, but it's not invertible\n },\n is0: (num) => num === _0n,\n isOdd: (num) => (num & _1n) === _1n,\n neg: (num) => mod(-num, ORDER),\n eql: (lhs, rhs) => lhs === rhs,\n sqr: (num) => mod(num * num, ORDER),\n add: (lhs, rhs) => mod(lhs + rhs, ORDER),\n sub: (lhs, rhs) => mod(lhs - rhs, ORDER),\n mul: (lhs, rhs) => mod(lhs * rhs, ORDER),\n pow: (num, power) => FpPow(f, num, power),\n div: (lhs, rhs) => mod(lhs * invert(rhs, ORDER), ORDER),\n // Same as above, but doesn't normalize\n sqrN: (num) => num * num,\n addN: (lhs, rhs) => lhs + rhs,\n subN: (lhs, rhs) => lhs - rhs,\n mulN: (lhs, rhs) => lhs * rhs,\n inv: (num) => invert(num, ORDER),\n sqrt: redef.sqrt ||\n ((n) => {\n if (!sqrtP)\n sqrtP = FpSqrt(ORDER);\n return sqrtP(f, n);\n }),\n toBytes: (num) => (isLE ? numberToBytesLE(num, BYTES) : numberToBytesBE(num, BYTES)),\n fromBytes: (bytes) => {\n if (bytes.length !== BYTES)\n throw new Error('Field.fromBytes: expected ' + BYTES + ' bytes, got ' + bytes.length);\n return isLE ? bytesToNumberLE(bytes) : bytesToNumberBE(bytes);\n },\n // TODO: we don't need it here, move out to separate fn\n invertBatch: (lst) => FpInvertBatch(f, lst),\n // We can't move this out because Fp6, Fp12 implement it\n // and it's unclear what to return in there.\n cmov: (a, b, c) => (c ? b : a),\n });\n return Object.freeze(f);\n}\nexport function FpSqrtOdd(Fp, elm) {\n if (!Fp.isOdd)\n throw new Error(\"Field doesn't have isOdd\");\n const root = Fp.sqrt(elm);\n return Fp.isOdd(root) ? root : Fp.neg(root);\n}\nexport function FpSqrtEven(Fp, elm) {\n if (!Fp.isOdd)\n throw new Error(\"Field doesn't have isOdd\");\n const root = Fp.sqrt(elm);\n return Fp.isOdd(root) ? Fp.neg(root) : root;\n}\n/**\n * \"Constant-time\" private key generation utility.\n * Same as mapKeyToField, but accepts less bytes (40 instead of 48 for 32-byte field).\n * Which makes it slightly more biased, less secure.\n * @deprecated use `mapKeyToField` instead\n */\nexport function hashToPrivateScalar(hash, groupOrder, isLE = false) {\n hash = ensureBytes('privateHash', hash);\n const hashLen = hash.length;\n const minLen = nLength(groupOrder).nByteLength + 8;\n if (minLen < 24 || hashLen < minLen || hashLen > 1024)\n throw new Error('hashToPrivateScalar: expected ' + minLen + '-1024 bytes of input, got ' + hashLen);\n const num = isLE ? bytesToNumberLE(hash) : bytesToNumberBE(hash);\n return mod(num, groupOrder - _1n) + _1n;\n}\n/**\n * Returns total number of bytes consumed by the field element.\n * For example, 32 bytes for usual 256-bit weierstrass curve.\n * @param fieldOrder number of field elements, usually CURVE.n\n * @returns byte length of field\n */\nexport function getFieldBytesLength(fieldOrder) {\n if (typeof fieldOrder !== 'bigint')\n throw new Error('field order must be bigint');\n const bitLength = fieldOrder.toString(2).length;\n return Math.ceil(bitLength / 8);\n}\n/**\n * Returns minimal amount of bytes that can be safely reduced\n * by field order.\n * Should be 2^-128 for 128-bit curve such as P256.\n * @param fieldOrder number of field elements, usually CURVE.n\n * @returns byte length of target hash\n */\nexport function getMinHashLength(fieldOrder) {\n const length = getFieldBytesLength(fieldOrder);\n return length + Math.ceil(length / 2);\n}\n/**\n * \"Constant-time\" private key generation utility.\n * Can take (n + n/2) or more bytes of uniform input e.g. from CSPRNG or KDF\n * and convert them into private scalar, with the modulo bias being negligible.\n * Needs at least 48 bytes of input for 32-byte private key.\n * https://research.kudelskisecurity.com/2020/07/28/the-definitive-guide-to-modulo-bias-and-how-to-avoid-it/\n * FIPS 186-5, A.2 https://csrc.nist.gov/publications/detail/fips/186/5/final\n * RFC 9380, https://www.rfc-editor.org/rfc/rfc9380#section-5\n * @param hash hash output from SHA3 or a similar function\n * @param groupOrder size of subgroup - (e.g. secp256k1.CURVE.n)\n * @param isLE interpret hash bytes as LE num\n * @returns valid private scalar\n */\nexport function mapHashToField(key, fieldOrder, isLE = false) {\n const len = key.length;\n const fieldLen = getFieldBytesLength(fieldOrder);\n const minLen = getMinHashLength(fieldOrder);\n // No small numbers: need to understand bias story. No huge numbers: easier to detect JS timings.\n if (len < 16 || len < minLen || len > 1024)\n throw new Error('expected ' + minLen + '-1024 bytes of input, got ' + len);\n const num = isLE ? bytesToNumberLE(key) : bytesToNumberBE(key);\n // `mod(x, 11)` can sometimes produce 0. `mod(x, 10) + 1` is the same, but no 0\n const reduced = mod(num, fieldOrder - _1n) + _1n;\n return isLE ? numberToBytesLE(reduced, fieldLen) : numberToBytesBE(reduced, fieldLen);\n}\n//# sourceMappingURL=modular.js.map","/**\n * Methods for elliptic curve multiplication by scalars.\n * Contains wNAF, pippenger\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { nLength, validateField } from \"./modular.js\";\nimport { bitLen, bitMask, validateObject } from \"./utils.js\";\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\nfunction constTimeNegate(condition, item) {\n const neg = item.negate();\n return condition ? neg : item;\n}\nfunction validateW(W, bits) {\n if (!Number.isSafeInteger(W) || W <= 0 || W > bits)\n throw new Error('invalid window size, expected [1..' + bits + '], got W=' + W);\n}\nfunction calcWOpts(W, scalarBits) {\n validateW(W, scalarBits);\n const windows = Math.ceil(scalarBits / W) + 1; // W=8 33. Not 32, because we skip zero\n const windowSize = 2 ** (W - 1); // W=8 128. Not 256, because we skip zero\n const maxNumber = 2 ** W; // W=8 256\n const mask = bitMask(W); // W=8 255 == mask 0b11111111\n const shiftBy = BigInt(W); // W=8 8\n return { windows, windowSize, mask, maxNumber, shiftBy };\n}\nfunction calcOffsets(n, window, wOpts) {\n const { windowSize, mask, maxNumber, shiftBy } = wOpts;\n let wbits = Number(n & mask); // extract W bits.\n let nextN = n >> shiftBy; // shift number by W bits.\n // What actually happens here:\n // const highestBit = Number(mask ^ (mask >> 1n));\n // let wbits2 = wbits - 1; // skip zero\n // if (wbits2 & highestBit) { wbits2 ^= Number(mask); // (~);\n // split if bits > max: +224 => 256-32\n if (wbits > windowSize) {\n // we skip zero, which means instead of `>= size-1`, we do `> size`\n wbits -= maxNumber; // -32, can be maxNumber - wbits, but then we need to set isNeg here.\n nextN += _1n; // +256 (carry)\n }\n const offsetStart = window * windowSize;\n const offset = offsetStart + Math.abs(wbits) - 1; // -1 because we skip zero\n const isZero = wbits === 0; // is current window slice a 0?\n const isNeg = wbits < 0; // is current window slice negative?\n const isNegF = window % 2 !== 0; // fake random statement for noise\n const offsetF = offsetStart; // fake offset for noise\n return { nextN, offset, isZero, isNeg, isNegF, offsetF };\n}\nfunction validateMSMPoints(points, c) {\n if (!Array.isArray(points))\n throw new Error('array expected');\n points.forEach((p, i) => {\n if (!(p instanceof c))\n throw new Error('invalid point at index ' + i);\n });\n}\nfunction validateMSMScalars(scalars, field) {\n if (!Array.isArray(scalars))\n throw new Error('array of scalars expected');\n scalars.forEach((s, i) => {\n if (!field.isValid(s))\n throw new Error('invalid scalar at index ' + i);\n });\n}\n// Since points in different groups cannot be equal (different object constructor),\n// we can have single place to store precomputes.\n// Allows to make points frozen / immutable.\nconst pointPrecomputes = new WeakMap();\nconst pointWindowSizes = new WeakMap();\nfunction getW(P) {\n return pointWindowSizes.get(P) || 1;\n}\n/**\n * Elliptic curve multiplication of Point by scalar. Fragile.\n * Scalars should always be less than curve order: this should be checked inside of a curve itself.\n * Creates precomputation tables for fast multiplication:\n * - private scalar is split by fixed size windows of W bits\n * - every window point is collected from window's table & added to accumulator\n * - since windows are different, same point inside tables won't be accessed more than once per calc\n * - each multiplication is 'Math.ceil(CURVE_ORDER / 𝑊) + 1' point additions (fixed for any scalar)\n * - +1 window is neccessary for wNAF\n * - wNAF reduces table size: 2x less memory + 2x faster generation, but 10% slower multiplication\n *\n * @todo Research returning 2d JS array of windows, instead of a single window.\n * This would allow windows to be in different memory locations\n */\nexport function wNAF(c, bits) {\n return {\n constTimeNegate,\n hasPrecomputes(elm) {\n return getW(elm) !== 1;\n },\n // non-const time multiplication ladder\n unsafeLadder(elm, n, p = c.ZERO) {\n let d = elm;\n while (n > _0n) {\n if (n & _1n)\n p = p.add(d);\n d = d.double();\n n >>= _1n;\n }\n return p;\n },\n /**\n * Creates a wNAF precomputation window. Used for caching.\n * Default window size is set by `utils.precompute()` and is equal to 8.\n * Number of precomputed points depends on the curve size:\n * 2^(𝑊−1) * (Math.ceil(𝑛 / 𝑊) + 1), where:\n * - 𝑊 is the window size\n * - 𝑛 is the bitlength of the curve order.\n * For a 256-bit curve and window size 8, the number of precomputed points is 128 * 33 = 4224.\n * @param elm Point instance\n * @param W window size\n * @returns precomputed point tables flattened to a single array\n */\n precomputeWindow(elm, W) {\n const { windows, windowSize } = calcWOpts(W, bits);\n const points = [];\n let p = elm;\n let base = p;\n for (let window = 0; window < windows; window++) {\n base = p;\n points.push(base);\n // i=1, bc we skip 0\n for (let i = 1; i < windowSize; i++) {\n base = base.add(p);\n points.push(base);\n }\n p = base.double();\n }\n return points;\n },\n /**\n * Implements ec multiplication using precomputed tables and w-ary non-adjacent form.\n * @param W window size\n * @param precomputes precomputed tables\n * @param n scalar (we don't check here, but should be less than curve order)\n * @returns real and fake (for const-time) points\n */\n wNAF(W, precomputes, n) {\n // Smaller version:\n // https://github.com/paulmillr/noble-secp256k1/blob/47cb1669b6e506ad66b35fe7d76132ae97465da2/index.ts#L502-L541\n // TODO: check the scalar is less than group order?\n // wNAF behavior is undefined otherwise. But have to carefully remove\n // other checks before wNAF. ORDER == bits here.\n // Accumulators\n let p = c.ZERO;\n let f = c.BASE;\n // This code was first written with assumption that 'f' and 'p' will never be infinity point:\n // since each addition is multiplied by 2 ** W, it cannot cancel each other. However,\n // there is negate now: it is possible that negated element from low value\n // would be the same as high element, which will create carry into next window.\n // It's not obvious how this can fail, but still worth investigating later.\n const wo = calcWOpts(W, bits);\n for (let window = 0; window < wo.windows; window++) {\n // (n === _0n) is handled and not early-exited. isEven and offsetF are used for noise\n const { nextN, offset, isZero, isNeg, isNegF, offsetF } = calcOffsets(n, window, wo);\n n = nextN;\n if (isZero) {\n // bits are 0: add garbage to fake point\n // Important part for const-time getPublicKey: add random \"noise\" point to f.\n f = f.add(constTimeNegate(isNegF, precomputes[offsetF]));\n }\n else {\n // bits are 1: add to result point\n p = p.add(constTimeNegate(isNeg, precomputes[offset]));\n }\n }\n // Return both real and fake points: JIT won't eliminate f.\n // At this point there is a way to F be infinity-point even if p is not,\n // which makes it less const-time: around 1 bigint multiply.\n return { p, f };\n },\n /**\n * Implements ec unsafe (non const-time) multiplication using precomputed tables and w-ary non-adjacent form.\n * @param W window size\n * @param precomputes precomputed tables\n * @param n scalar (we don't check here, but should be less than curve order)\n * @param acc accumulator point to add result of multiplication\n * @returns point\n */\n wNAFUnsafe(W, precomputes, n, acc = c.ZERO) {\n const wo = calcWOpts(W, bits);\n for (let window = 0; window < wo.windows; window++) {\n if (n === _0n)\n break; // Early-exit, skip 0 value\n const { nextN, offset, isZero, isNeg } = calcOffsets(n, window, wo);\n n = nextN;\n if (isZero) {\n // Window bits are 0: skip processing.\n // Move to next window.\n continue;\n }\n else {\n const item = precomputes[offset];\n acc = acc.add(isNeg ? item.negate() : item); // Re-using acc allows to save adds in MSM\n }\n }\n return acc;\n },\n getPrecomputes(W, P, transform) {\n // Calculate precomputes on a first run, reuse them after\n let comp = pointPrecomputes.get(P);\n if (!comp) {\n comp = this.precomputeWindow(P, W);\n if (W !== 1)\n pointPrecomputes.set(P, transform(comp));\n }\n return comp;\n },\n wNAFCached(P, n, transform) {\n const W = getW(P);\n return this.wNAF(W, this.getPrecomputes(W, P, transform), n);\n },\n wNAFCachedUnsafe(P, n, transform, prev) {\n const W = getW(P);\n if (W === 1)\n return this.unsafeLadder(P, n, prev); // For W=1 ladder is ~x2 faster\n return this.wNAFUnsafe(W, this.getPrecomputes(W, P, transform), n, prev);\n },\n // We calculate precomputes for elliptic curve point multiplication\n // using windowed method. This specifies window size and\n // stores precomputed values. Usually only base point would be precomputed.\n setWindowSize(P, W) {\n validateW(W, bits);\n pointWindowSizes.set(P, W);\n pointPrecomputes.delete(P);\n },\n };\n}\n/**\n * Pippenger algorithm for multi-scalar multiplication (MSM, Pa + Qb + Rc + ...).\n * 30x faster vs naive addition on L=4096, 10x faster than precomputes.\n * For N=254bit, L=1, it does: 1024 ADD + 254 DBL. For L=5: 1536 ADD + 254 DBL.\n * Algorithmically constant-time (for same L), even when 1 point + scalar, or when scalar = 0.\n * @param c Curve Point constructor\n * @param fieldN field over CURVE.N - important that it's not over CURVE.P\n * @param points array of L curve points\n * @param scalars array of L scalars (aka private keys / bigints)\n */\nexport function pippenger(c, fieldN, points, scalars) {\n // If we split scalars by some window (let's say 8 bits), every chunk will only\n // take 256 buckets even if there are 4096 scalars, also re-uses double.\n // TODO:\n // - https://eprint.iacr.org/2024/750.pdf\n // - https://tches.iacr.org/index.php/TCHES/article/view/10287\n // 0 is accepted in scalars\n validateMSMPoints(points, c);\n validateMSMScalars(scalars, fieldN);\n const plength = points.length;\n const slength = scalars.length;\n if (plength !== slength)\n throw new Error('arrays of points and scalars must have equal length');\n // if (plength === 0) throw new Error('array must be of length >= 2');\n const zero = c.ZERO;\n const wbits = bitLen(BigInt(plength));\n let windowSize = 1; // bits\n if (wbits > 12)\n windowSize = wbits - 3;\n else if (wbits > 4)\n windowSize = wbits - 2;\n else if (wbits > 0)\n windowSize = 2;\n const MASK = bitMask(windowSize);\n const buckets = new Array(Number(MASK) + 1).fill(zero); // +1 for zero array\n const lastBits = Math.floor((fieldN.BITS - 1) / windowSize) * windowSize;\n let sum = zero;\n for (let i = lastBits; i >= 0; i -= windowSize) {\n buckets.fill(zero);\n for (let j = 0; j < slength; j++) {\n const scalar = scalars[j];\n const wbits = Number((scalar >> BigInt(i)) & MASK);\n buckets[wbits] = buckets[wbits].add(points[j]);\n }\n let resI = zero; // not using this will do small speed-up, but will lose ct\n // Skip first bucket, because it is zero\n for (let j = buckets.length - 1, sumI = zero; j > 0; j--) {\n sumI = sumI.add(buckets[j]);\n resI = resI.add(sumI);\n }\n sum = sum.add(resI);\n if (i !== 0)\n for (let j = 0; j < windowSize; j++)\n sum = sum.double();\n }\n return sum;\n}\n/**\n * Precomputed multi-scalar multiplication (MSM, Pa + Qb + Rc + ...).\n * @param c Curve Point constructor\n * @param fieldN field over CURVE.N - important that it's not over CURVE.P\n * @param points array of L curve points\n * @returns function which multiplies points with scaars\n */\nexport function precomputeMSMUnsafe(c, fieldN, points, windowSize) {\n /**\n * Performance Analysis of Window-based Precomputation\n *\n * Base Case (256-bit scalar, 8-bit window):\n * - Standard precomputation requires:\n * - 31 additions per scalar × 256 scalars = 7,936 ops\n * - Plus 255 summary additions = 8,191 total ops\n * Note: Summary additions can be optimized via accumulator\n *\n * Chunked Precomputation Analysis:\n * - Using 32 chunks requires:\n * - 255 additions per chunk\n * - 256 doublings\n * - Total: (255 × 32) + 256 = 8,416 ops\n *\n * Memory Usage Comparison:\n * Window Size | Standard Points | Chunked Points\n * ------------|-----------------|---------------\n * 4-bit | 520 | 15\n * 8-bit | 4,224 | 255\n * 10-bit | 13,824 | 1,023\n * 16-bit | 557,056 | 65,535\n *\n * Key Advantages:\n * 1. Enables larger window sizes due to reduced memory overhead\n * 2. More efficient for smaller scalar counts:\n * - 16 chunks: (16 × 255) + 256 = 4,336 ops\n * - ~2x faster than standard 8,191 ops\n *\n * Limitations:\n * - Not suitable for plain precomputes (requires 256 constant doublings)\n * - Performance degrades with larger scalar counts:\n * - Optimal for ~256 scalars\n * - Less efficient for 4096+ scalars (Pippenger preferred)\n */\n validateW(windowSize, fieldN.BITS);\n validateMSMPoints(points, c);\n const zero = c.ZERO;\n const tableSize = 2 ** windowSize - 1; // table size (without zero)\n const chunks = Math.ceil(fieldN.BITS / windowSize); // chunks of item\n const MASK = bitMask(windowSize);\n const tables = points.map((p) => {\n const res = [];\n for (let i = 0, acc = p; i < tableSize; i++) {\n res.push(acc);\n acc = acc.add(p);\n }\n return res;\n });\n return (scalars) => {\n validateMSMScalars(scalars, fieldN);\n if (scalars.length > points.length)\n throw new Error('array of scalars must be smaller than array of points');\n let res = zero;\n for (let i = 0; i < chunks; i++) {\n // No need to double if accumulator is still zero.\n if (res !== zero)\n for (let j = 0; j < windowSize; j++)\n res = res.double();\n const shiftBy = BigInt(chunks * windowSize - (i + 1) * windowSize);\n for (let j = 0; j < scalars.length; j++) {\n const n = scalars[j];\n const curr = Number((n >> shiftBy) & MASK);\n if (!curr)\n continue; // skip zero scalars chunks\n res = res.add(tables[j][curr - 1]);\n }\n }\n return res;\n };\n}\nexport function validateBasic(curve) {\n validateField(curve.Fp);\n validateObject(curve, {\n n: 'bigint',\n h: 'bigint',\n Gx: 'field',\n Gy: 'field',\n }, {\n nBitLength: 'isSafeInteger',\n nByteLength: 'isSafeInteger',\n });\n // Set defaults\n return Object.freeze({\n ...nLength(curve.n, curve.nBitLength),\n ...curve,\n ...{ p: curve.Fp.ORDER },\n });\n}\n//# sourceMappingURL=curve.js.map","/**\n * Short Weierstrass curve methods. The formula is: y² = x³ + ax + b.\n *\n * ### Parameters\n *\n * To initialize a weierstrass curve, one needs to pass following params:\n *\n * * a: formula param\n * * b: formula param\n * * Fp: finite field of prime characteristic P; may be complex (Fp2). Arithmetics is done in field\n * * n: order of prime subgroup a.k.a total amount of valid curve points\n * * Gx: Base point (x, y) aka generator point. Gx = x coordinate\n * * Gy: ...y coordinate\n * * h: cofactor, usually 1. h*n = curve group order (n is only subgroup order)\n * * lowS: whether to enable (default) or disable \"low-s\" non-malleable signatures\n *\n * ### Design rationale for types\n *\n * * Interaction between classes from different curves should fail:\n * `k256.Point.BASE.add(p256.Point.BASE)`\n * * For this purpose we want to use `instanceof` operator, which is fast and works during runtime\n * * Different calls of `curve()` would return different classes -\n * `curve(params) !== curve(params)`: if somebody decided to monkey-patch their curve,\n * it won't affect others\n *\n * TypeScript can't infer types for classes created inside a function. Classes is one instance\n * of nominative types in TypeScript and interfaces only check for shape, so it's hard to create\n * unique type for every function call.\n *\n * We can use generic types via some param, like curve opts, but that would:\n * 1. Enable interaction between `curve(params)` and `curve(params)` (curves of same params)\n * which is hard to debug.\n * 2. Params can be generic and we can't enforce them to be constant value:\n * if somebody creates curve from non-constant params,\n * it would be allowed to interact with other curves with non-constant params\n *\n * @todo https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-7.html#unique-symbol\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// prettier-ignore\nimport { pippenger, validateBasic, wNAF } from \"./curve.js\";\n// prettier-ignore\nimport { Field, FpInvertBatch, getMinHashLength, invert, mapHashToField, mod, validateField } from \"./modular.js\";\n// prettier-ignore\nimport { aInRange, abool, bitMask, bytesToHex, bytesToNumberBE, concatBytes, createHmacDrbg, ensureBytes, hexToBytes, inRange, isBytes, memoized, numberToBytesBE, numberToHexUnpadded, validateObject } from \"./utils.js\";\nfunction validateSigVerOpts(opts) {\n if (opts.lowS !== undefined)\n abool('lowS', opts.lowS);\n if (opts.prehash !== undefined)\n abool('prehash', opts.prehash);\n}\nfunction validatePointOpts(curve) {\n const opts = validateBasic(curve);\n validateObject(opts, {\n a: 'field',\n b: 'field',\n }, {\n allowInfinityPoint: 'boolean',\n allowedPrivateKeyLengths: 'array',\n clearCofactor: 'function',\n fromBytes: 'function',\n isTorsionFree: 'function',\n toBytes: 'function',\n wrapPrivateKey: 'boolean',\n });\n const { endo, Fp, a } = opts;\n if (endo) {\n if (!Fp.eql(a, Fp.ZERO)) {\n throw new Error('invalid endo: CURVE.a must be 0');\n }\n if (typeof endo !== 'object' ||\n typeof endo.beta !== 'bigint' ||\n typeof endo.splitScalar !== 'function') {\n throw new Error('invalid endo: expected \"beta\": bigint and \"splitScalar\": function');\n }\n }\n return Object.freeze({ ...opts });\n}\nexport class DERErr extends Error {\n constructor(m = '') {\n super(m);\n }\n}\n/**\n * ASN.1 DER encoding utilities. ASN is very complex & fragile. Format:\n *\n * [0x30 (SEQUENCE), bytelength, 0x02 (INTEGER), intLength, R, 0x02 (INTEGER), intLength, S]\n *\n * Docs: https://letsencrypt.org/docs/a-warm-welcome-to-asn1-and-der/, https://luca.ntop.org/Teaching/Appunti/asn1.html\n */\nexport const DER = {\n // asn.1 DER encoding utils\n Err: DERErr,\n // Basic building block is TLV (Tag-Length-Value)\n _tlv: {\n encode: (tag, data) => {\n const { Err: E } = DER;\n if (tag < 0 || tag > 256)\n throw new E('tlv.encode: wrong tag');\n if (data.length & 1)\n throw new E('tlv.encode: unpadded data');\n const dataLen = data.length / 2;\n const len = numberToHexUnpadded(dataLen);\n if ((len.length / 2) & 128)\n throw new E('tlv.encode: long form length too big');\n // length of length with long form flag\n const lenLen = dataLen > 127 ? numberToHexUnpadded((len.length / 2) | 128) : '';\n const t = numberToHexUnpadded(tag);\n return t + lenLen + len + data;\n },\n // v - value, l - left bytes (unparsed)\n decode(tag, data) {\n const { Err: E } = DER;\n let pos = 0;\n if (tag < 0 || tag > 256)\n throw new E('tlv.encode: wrong tag');\n if (data.length < 2 || data[pos++] !== tag)\n throw new E('tlv.decode: wrong tlv');\n const first = data[pos++];\n const isLong = !!(first & 128); // First bit of first length byte is flag for short/long form\n let length = 0;\n if (!isLong)\n length = first;\n else {\n // Long form: [longFlag(1bit), lengthLength(7bit), length (BE)]\n const lenLen = first & 127;\n if (!lenLen)\n throw new E('tlv.decode(long): indefinite length not supported');\n if (lenLen > 4)\n throw new E('tlv.decode(long): byte length is too big'); // this will overflow u32 in js\n const lengthBytes = data.subarray(pos, pos + lenLen);\n if (lengthBytes.length !== lenLen)\n throw new E('tlv.decode: length bytes not complete');\n if (lengthBytes[0] === 0)\n throw new E('tlv.decode(long): zero leftmost byte');\n for (const b of lengthBytes)\n length = (length << 8) | b;\n pos += lenLen;\n if (length < 128)\n throw new E('tlv.decode(long): not minimal encoding');\n }\n const v = data.subarray(pos, pos + length);\n if (v.length !== length)\n throw new E('tlv.decode: wrong value length');\n return { v, l: data.subarray(pos + length) };\n },\n },\n // https://crypto.stackexchange.com/a/57734 Leftmost bit of first byte is 'negative' flag,\n // since we always use positive integers here. It must always be empty:\n // - add zero byte if exists\n // - if next byte doesn't have a flag, leading zero is not allowed (minimal encoding)\n _int: {\n encode(num) {\n const { Err: E } = DER;\n if (num < _0n)\n throw new E('integer: negative integers are not allowed');\n let hex = numberToHexUnpadded(num);\n // Pad with zero byte if negative flag is present\n if (Number.parseInt(hex[0], 16) & 0b1000)\n hex = '00' + hex;\n if (hex.length & 1)\n throw new E('unexpected DER parsing assertion: unpadded hex');\n return hex;\n },\n decode(data) {\n const { Err: E } = DER;\n if (data[0] & 128)\n throw new E('invalid signature integer: negative');\n if (data[0] === 0x00 && !(data[1] & 128))\n throw new E('invalid signature integer: unnecessary leading zero');\n return bytesToNumberBE(data);\n },\n },\n toSig(hex) {\n // parse DER signature\n const { Err: E, _int: int, _tlv: tlv } = DER;\n const data = ensureBytes('signature', hex);\n const { v: seqBytes, l: seqLeftBytes } = tlv.decode(0x30, data);\n if (seqLeftBytes.length)\n throw new E('invalid signature: left bytes after parsing');\n const { v: rBytes, l: rLeftBytes } = tlv.decode(0x02, seqBytes);\n const { v: sBytes, l: sLeftBytes } = tlv.decode(0x02, rLeftBytes);\n if (sLeftBytes.length)\n throw new E('invalid signature: left bytes after parsing');\n return { r: int.decode(rBytes), s: int.decode(sBytes) };\n },\n hexFromSig(sig) {\n const { _tlv: tlv, _int: int } = DER;\n const rs = tlv.encode(0x02, int.encode(sig.r));\n const ss = tlv.encode(0x02, int.encode(sig.s));\n const seq = rs + ss;\n return tlv.encode(0x30, seq);\n },\n};\nfunction numToSizedHex(num, size) {\n return bytesToHex(numberToBytesBE(num, size));\n}\n// Be friendly to bad ECMAScript parsers by not using bigint literals\n// prettier-ignore\nconst _0n = BigInt(0), _1n = BigInt(1), _2n = BigInt(2), _3n = BigInt(3), _4n = BigInt(4);\nexport function weierstrassPoints(opts) {\n const CURVE = validatePointOpts(opts);\n const { Fp } = CURVE; // All curves has same field / group length as for now, but they can differ\n const Fn = Field(CURVE.n, CURVE.nBitLength);\n const toBytes = CURVE.toBytes ||\n ((_c, point, _isCompressed) => {\n const a = point.toAffine();\n return concatBytes(Uint8Array.from([0x04]), Fp.toBytes(a.x), Fp.toBytes(a.y));\n });\n const fromBytes = CURVE.fromBytes ||\n ((bytes) => {\n // const head = bytes[0];\n const tail = bytes.subarray(1);\n // if (head !== 0x04) throw new Error('Only non-compressed encoding is supported');\n const x = Fp.fromBytes(tail.subarray(0, Fp.BYTES));\n const y = Fp.fromBytes(tail.subarray(Fp.BYTES, 2 * Fp.BYTES));\n return { x, y };\n });\n /**\n * y² = x³ + ax + b: Short weierstrass curve formula. Takes x, returns y².\n * @returns y²\n */\n function weierstrassEquation(x) {\n const { a, b } = CURVE;\n const x2 = Fp.sqr(x); // x * x\n const x3 = Fp.mul(x2, x); // x² * x\n return Fp.add(Fp.add(x3, Fp.mul(x, a)), b); // x³ + a * x + b\n }\n function isValidXY(x, y) {\n const left = Fp.sqr(y); // y²\n const right = weierstrassEquation(x); // x³ + ax + b\n return Fp.eql(left, right);\n }\n // Validate whether the passed curve params are valid.\n // Test 1: equation y² = x³ + ax + b should work for generator point.\n if (!isValidXY(CURVE.Gx, CURVE.Gy))\n throw new Error('bad curve params: generator point');\n // Test 2: discriminant Δ part should be non-zero: 4a³ + 27b² != 0.\n // Guarantees curve is genus-1, smooth (non-singular).\n const _4a3 = Fp.mul(Fp.pow(CURVE.a, _3n), _4n);\n const _27b2 = Fp.mul(Fp.sqr(CURVE.b), BigInt(27));\n if (Fp.is0(Fp.add(_4a3, _27b2)))\n throw new Error('bad curve params: a or b');\n // Valid group elements reside in range 1..n-1\n function isWithinCurveOrder(num) {\n return inRange(num, _1n, CURVE.n);\n }\n // Validates if priv key is valid and converts it to bigint.\n // Supports options allowedPrivateKeyLengths and wrapPrivateKey.\n function normPrivateKeyToScalar(key) {\n const { allowedPrivateKeyLengths: lengths, nByteLength, wrapPrivateKey, n: N } = CURVE;\n if (lengths && typeof key !== 'bigint') {\n if (isBytes(key))\n key = bytesToHex(key);\n // Normalize to hex string, pad. E.g. P521 would norm 130-132 char hex to 132-char bytes\n if (typeof key !== 'string' || !lengths.includes(key.length))\n throw new Error('invalid private key');\n key = key.padStart(nByteLength * 2, '0');\n }\n let num;\n try {\n num =\n typeof key === 'bigint'\n ? key\n : bytesToNumberBE(ensureBytes('private key', key, nByteLength));\n }\n catch (error) {\n throw new Error('invalid private key, expected hex or ' + nByteLength + ' bytes, got ' + typeof key);\n }\n if (wrapPrivateKey)\n num = mod(num, N); // disabled by default, enabled for BLS\n aInRange('private key', num, _1n, N); // num in range [1..N-1]\n return num;\n }\n function aprjpoint(other) {\n if (!(other instanceof Point))\n throw new Error('ProjectivePoint expected');\n }\n // Memoized toAffine / validity check. They are heavy. Points are immutable.\n // Converts Projective point to affine (x, y) coordinates.\n // Can accept precomputed Z^-1 - for example, from invertBatch.\n // (X, Y, Z) ∋ (x=X/Z, y=Y/Z)\n const toAffineMemo = memoized((p, iz) => {\n const { px: x, py: y, pz: z } = p;\n // Fast-path for normalized points\n if (Fp.eql(z, Fp.ONE))\n return { x, y };\n const is0 = p.is0();\n // If invZ was 0, we return zero point. However we still want to execute\n // all operations, so we replace invZ with a random number, 1.\n if (iz == null)\n iz = is0 ? Fp.ONE : Fp.inv(z);\n const ax = Fp.mul(x, iz);\n const ay = Fp.mul(y, iz);\n const zz = Fp.mul(z, iz);\n if (is0)\n return { x: Fp.ZERO, y: Fp.ZERO };\n if (!Fp.eql(zz, Fp.ONE))\n throw new Error('invZ was invalid');\n return { x: ax, y: ay };\n });\n // NOTE: on exception this will crash 'cached' and no value will be set.\n // Otherwise true will be return\n const assertValidMemo = memoized((p) => {\n if (p.is0()) {\n // (0, 1, 0) aka ZERO is invalid in most contexts.\n // In BLS, ZERO can be serialized, so we allow it.\n // (0, 0, 0) is invalid representation of ZERO.\n if (CURVE.allowInfinityPoint && !Fp.is0(p.py))\n return;\n throw new Error('bad point: ZERO');\n }\n // Some 3rd-party test vectors require different wording between here & `fromCompressedHex`\n const { x, y } = p.toAffine();\n // Check if x, y are valid field elements\n if (!Fp.isValid(x) || !Fp.isValid(y))\n throw new Error('bad point: x or y not FE');\n if (!isValidXY(x, y))\n throw new Error('bad point: equation left != right');\n if (!p.isTorsionFree())\n throw new Error('bad point: not in prime-order subgroup');\n return true;\n });\n /**\n * Projective Point works in 3d / projective (homogeneous) coordinates: (X, Y, Z) ∋ (x=X/Z, y=Y/Z)\n * Default Point works in 2d / affine coordinates: (x, y)\n * We're doing calculations in projective, because its operations don't require costly inversion.\n */\n class Point {\n constructor(px, py, pz) {\n if (px == null || !Fp.isValid(px))\n throw new Error('x required');\n if (py == null || !Fp.isValid(py) || Fp.is0(py))\n throw new Error('y required');\n if (pz == null || !Fp.isValid(pz))\n throw new Error('z required');\n this.px = px;\n this.py = py;\n this.pz = pz;\n Object.freeze(this);\n }\n // Does not validate if the point is on-curve.\n // Use fromHex instead, or call assertValidity() later.\n static fromAffine(p) {\n const { x, y } = p || {};\n if (!p || !Fp.isValid(x) || !Fp.isValid(y))\n throw new Error('invalid affine point');\n if (p instanceof Point)\n throw new Error('projective point not allowed');\n const is0 = (i) => Fp.eql(i, Fp.ZERO);\n // fromAffine(x:0, y:0) would produce (x:0, y:0, z:1), but we need (x:0, y:1, z:0)\n if (is0(x) && is0(y))\n return Point.ZERO;\n return new Point(x, y, Fp.ONE);\n }\n get x() {\n return this.toAffine().x;\n }\n get y() {\n return this.toAffine().y;\n }\n /**\n * Takes a bunch of Projective Points but executes only one\n * inversion on all of them. Inversion is very slow operation,\n * so this improves performance massively.\n * Optimization: converts a list of projective points to a list of identical points with Z=1.\n */\n static normalizeZ(points) {\n const toInv = FpInvertBatch(Fp, points.map((p) => p.pz));\n return points.map((p, i) => p.toAffine(toInv[i])).map(Point.fromAffine);\n }\n /**\n * Converts hash string or Uint8Array to Point.\n * @param hex short/long ECDSA hex\n */\n static fromHex(hex) {\n const P = Point.fromAffine(fromBytes(ensureBytes('pointHex', hex)));\n P.assertValidity();\n return P;\n }\n // Multiplies generator point by privateKey.\n static fromPrivateKey(privateKey) {\n return Point.BASE.multiply(normPrivateKeyToScalar(privateKey));\n }\n // Multiscalar Multiplication\n static msm(points, scalars) {\n return pippenger(Point, Fn, points, scalars);\n }\n // \"Private method\", don't use it directly\n _setWindowSize(windowSize) {\n wnaf.setWindowSize(this, windowSize);\n }\n // A point on curve is valid if it conforms to equation.\n assertValidity() {\n assertValidMemo(this);\n }\n hasEvenY() {\n const { y } = this.toAffine();\n if (Fp.isOdd)\n return !Fp.isOdd(y);\n throw new Error(\"Field doesn't support isOdd\");\n }\n /**\n * Compare one point to another.\n */\n equals(other) {\n aprjpoint(other);\n const { px: X1, py: Y1, pz: Z1 } = this;\n const { px: X2, py: Y2, pz: Z2 } = other;\n const U1 = Fp.eql(Fp.mul(X1, Z2), Fp.mul(X2, Z1));\n const U2 = Fp.eql(Fp.mul(Y1, Z2), Fp.mul(Y2, Z1));\n return U1 && U2;\n }\n /**\n * Flips point to one corresponding to (x, -y) in Affine coordinates.\n */\n negate() {\n return new Point(this.px, Fp.neg(this.py), this.pz);\n }\n // Renes-Costello-Batina exception-free doubling formula.\n // There is 30% faster Jacobian formula, but it is not complete.\n // https://eprint.iacr.org/2015/1060, algorithm 3\n // Cost: 8M + 3S + 3*a + 2*b3 + 15add.\n double() {\n const { a, b } = CURVE;\n const b3 = Fp.mul(b, _3n);\n const { px: X1, py: Y1, pz: Z1 } = this;\n let X3 = Fp.ZERO, Y3 = Fp.ZERO, Z3 = Fp.ZERO; // prettier-ignore\n let t0 = Fp.mul(X1, X1); // step 1\n let t1 = Fp.mul(Y1, Y1);\n let t2 = Fp.mul(Z1, Z1);\n let t3 = Fp.mul(X1, Y1);\n t3 = Fp.add(t3, t3); // step 5\n Z3 = Fp.mul(X1, Z1);\n Z3 = Fp.add(Z3, Z3);\n X3 = Fp.mul(a, Z3);\n Y3 = Fp.mul(b3, t2);\n Y3 = Fp.add(X3, Y3); // step 10\n X3 = Fp.sub(t1, Y3);\n Y3 = Fp.add(t1, Y3);\n Y3 = Fp.mul(X3, Y3);\n X3 = Fp.mul(t3, X3);\n Z3 = Fp.mul(b3, Z3); // step 15\n t2 = Fp.mul(a, t2);\n t3 = Fp.sub(t0, t2);\n t3 = Fp.mul(a, t3);\n t3 = Fp.add(t3, Z3);\n Z3 = Fp.add(t0, t0); // step 20\n t0 = Fp.add(Z3, t0);\n t0 = Fp.add(t0, t2);\n t0 = Fp.mul(t0, t3);\n Y3 = Fp.add(Y3, t0);\n t2 = Fp.mul(Y1, Z1); // step 25\n t2 = Fp.add(t2, t2);\n t0 = Fp.mul(t2, t3);\n X3 = Fp.sub(X3, t0);\n Z3 = Fp.mul(t2, t1);\n Z3 = Fp.add(Z3, Z3); // step 30\n Z3 = Fp.add(Z3, Z3);\n return new Point(X3, Y3, Z3);\n }\n // Renes-Costello-Batina exception-free addition formula.\n // There is 30% faster Jacobian formula, but it is not complete.\n // https://eprint.iacr.org/2015/1060, algorithm 1\n // Cost: 12M + 0S + 3*a + 3*b3 + 23add.\n add(other) {\n aprjpoint(other);\n const { px: X1, py: Y1, pz: Z1 } = this;\n const { px: X2, py: Y2, pz: Z2 } = other;\n let X3 = Fp.ZERO, Y3 = Fp.ZERO, Z3 = Fp.ZERO; // prettier-ignore\n const a = CURVE.a;\n const b3 = Fp.mul(CURVE.b, _3n);\n let t0 = Fp.mul(X1, X2); // step 1\n let t1 = Fp.mul(Y1, Y2);\n let t2 = Fp.mul(Z1, Z2);\n let t3 = Fp.add(X1, Y1);\n let t4 = Fp.add(X2, Y2); // step 5\n t3 = Fp.mul(t3, t4);\n t4 = Fp.add(t0, t1);\n t3 = Fp.sub(t3, t4);\n t4 = Fp.add(X1, Z1);\n let t5 = Fp.add(X2, Z2); // step 10\n t4 = Fp.mul(t4, t5);\n t5 = Fp.add(t0, t2);\n t4 = Fp.sub(t4, t5);\n t5 = Fp.add(Y1, Z1);\n X3 = Fp.add(Y2, Z2); // step 15\n t5 = Fp.mul(t5, X3);\n X3 = Fp.add(t1, t2);\n t5 = Fp.sub(t5, X3);\n Z3 = Fp.mul(a, t4);\n X3 = Fp.mul(b3, t2); // step 20\n Z3 = Fp.add(X3, Z3);\n X3 = Fp.sub(t1, Z3);\n Z3 = Fp.add(t1, Z3);\n Y3 = Fp.mul(X3, Z3);\n t1 = Fp.add(t0, t0); // step 25\n t1 = Fp.add(t1, t0);\n t2 = Fp.mul(a, t2);\n t4 = Fp.mul(b3, t4);\n t1 = Fp.add(t1, t2);\n t2 = Fp.sub(t0, t2); // step 30\n t2 = Fp.mul(a, t2);\n t4 = Fp.add(t4, t2);\n t0 = Fp.mul(t1, t4);\n Y3 = Fp.add(Y3, t0);\n t0 = Fp.mul(t5, t4); // step 35\n X3 = Fp.mul(t3, X3);\n X3 = Fp.sub(X3, t0);\n t0 = Fp.mul(t3, t1);\n Z3 = Fp.mul(t5, Z3);\n Z3 = Fp.add(Z3, t0); // step 40\n return new Point(X3, Y3, Z3);\n }\n subtract(other) {\n return this.add(other.negate());\n }\n is0() {\n return this.equals(Point.ZERO);\n }\n wNAF(n) {\n return wnaf.wNAFCached(this, n, Point.normalizeZ);\n }\n /**\n * Non-constant-time multiplication. Uses double-and-add algorithm.\n * It's faster, but should only be used when you don't care about\n * an exposed private key e.g. sig verification, which works over *public* keys.\n */\n multiplyUnsafe(sc) {\n const { endo, n: N } = CURVE;\n aInRange('scalar', sc, _0n, N);\n const I = Point.ZERO;\n if (sc === _0n)\n return I;\n if (this.is0() || sc === _1n)\n return this;\n // Case a: no endomorphism. Case b: has precomputes.\n if (!endo || wnaf.hasPrecomputes(this))\n return wnaf.wNAFCachedUnsafe(this, sc, Point.normalizeZ);\n // Case c: endomorphism\n /** See docs for {@link EndomorphismOpts} */\n let { k1neg, k1, k2neg, k2 } = endo.splitScalar(sc);\n let k1p = I;\n let k2p = I;\n let d = this;\n while (k1 > _0n || k2 > _0n) {\n if (k1 & _1n)\n k1p = k1p.add(d);\n if (k2 & _1n)\n k2p = k2p.add(d);\n d = d.double();\n k1 >>= _1n;\n k2 >>= _1n;\n }\n if (k1neg)\n k1p = k1p.negate();\n if (k2neg)\n k2p = k2p.negate();\n k2p = new Point(Fp.mul(k2p.px, endo.beta), k2p.py, k2p.pz);\n return k1p.add(k2p);\n }\n /**\n * Constant time multiplication.\n * Uses wNAF method. Windowed method may be 10% faster,\n * but takes 2x longer to generate and consumes 2x memory.\n * Uses precomputes when available.\n * Uses endomorphism for Koblitz curves.\n * @param scalar by which the point would be multiplied\n * @returns New point\n */\n multiply(scalar) {\n const { endo, n: N } = CURVE;\n aInRange('scalar', scalar, _1n, N);\n let point, fake; // Fake point is used to const-time mult\n /** See docs for {@link EndomorphismOpts} */\n if (endo) {\n const { k1neg, k1, k2neg, k2 } = endo.splitScalar(scalar);\n let { p: k1p, f: f1p } = this.wNAF(k1);\n let { p: k2p, f: f2p } = this.wNAF(k2);\n k1p = wnaf.constTimeNegate(k1neg, k1p);\n k2p = wnaf.constTimeNegate(k2neg, k2p);\n k2p = new Point(Fp.mul(k2p.px, endo.beta), k2p.py, k2p.pz);\n point = k1p.add(k2p);\n fake = f1p.add(f2p);\n }\n else {\n const { p, f } = this.wNAF(scalar);\n point = p;\n fake = f;\n }\n // Normalize `z` for both points, but return only real one\n return Point.normalizeZ([point, fake])[0];\n }\n /**\n * Efficiently calculate `aP + bQ`. Unsafe, can expose private key, if used incorrectly.\n * Not using Strauss-Shamir trick: precomputation tables are faster.\n * The trick could be useful if both P and Q are not G (not in our case).\n * @returns non-zero affine point\n */\n multiplyAndAddUnsafe(Q, a, b) {\n const G = Point.BASE; // No Strauss-Shamir trick: we have 10% faster G precomputes\n const mul = (P, a // Select faster multiply() method\n ) => (a === _0n || a === _1n || !P.equals(G) ? P.multiplyUnsafe(a) : P.multiply(a));\n const sum = mul(this, a).add(mul(Q, b));\n return sum.is0() ? undefined : sum;\n }\n // Converts Projective point to affine (x, y) coordinates.\n // Can accept precomputed Z^-1 - for example, from invertBatch.\n // (x, y, z) ∋ (x=x/z, y=y/z)\n toAffine(iz) {\n return toAffineMemo(this, iz);\n }\n isTorsionFree() {\n const { h: cofactor, isTorsionFree } = CURVE;\n if (cofactor === _1n)\n return true; // No subgroups, always torsion-free\n if (isTorsionFree)\n return isTorsionFree(Point, this);\n throw new Error('isTorsionFree() has not been declared for the elliptic curve');\n }\n clearCofactor() {\n const { h: cofactor, clearCofactor } = CURVE;\n if (cofactor === _1n)\n return this; // Fast-path\n if (clearCofactor)\n return clearCofactor(Point, this);\n return this.multiplyUnsafe(CURVE.h);\n }\n toRawBytes(isCompressed = true) {\n abool('isCompressed', isCompressed);\n this.assertValidity();\n return toBytes(Point, this, isCompressed);\n }\n toHex(isCompressed = true) {\n abool('isCompressed', isCompressed);\n return bytesToHex(this.toRawBytes(isCompressed));\n }\n }\n // base / generator point\n Point.BASE = new Point(CURVE.Gx, CURVE.Gy, Fp.ONE);\n // zero / infinity / identity point\n Point.ZERO = new Point(Fp.ZERO, Fp.ONE, Fp.ZERO); // 0, 1, 0\n const { endo, nBitLength } = CURVE;\n const wnaf = wNAF(Point, endo ? Math.ceil(nBitLength / 2) : nBitLength);\n return {\n CURVE,\n ProjectivePoint: Point,\n normPrivateKeyToScalar,\n weierstrassEquation,\n isWithinCurveOrder,\n };\n}\nfunction validateOpts(curve) {\n const opts = validateBasic(curve);\n validateObject(opts, {\n hash: 'hash',\n hmac: 'function',\n randomBytes: 'function',\n }, {\n bits2int: 'function',\n bits2int_modN: 'function',\n lowS: 'boolean',\n });\n return Object.freeze({ lowS: true, ...opts });\n}\n/**\n * Creates short weierstrass curve and ECDSA signature methods for it.\n * @example\n * import { Field } from '@noble/curves/abstract/modular';\n * // Before that, define BigInt-s: a, b, p, n, Gx, Gy\n * const curve = weierstrass({ a, b, Fp: Field(p), n, Gx, Gy, h: 1n })\n */\nexport function weierstrass(curveDef) {\n const CURVE = validateOpts(curveDef);\n const { Fp, n: CURVE_ORDER, nByteLength, nBitLength } = CURVE;\n const compressedLen = Fp.BYTES + 1; // e.g. 33 for 32\n const uncompressedLen = 2 * Fp.BYTES + 1; // e.g. 65 for 32\n function modN(a) {\n return mod(a, CURVE_ORDER);\n }\n function invN(a) {\n return invert(a, CURVE_ORDER);\n }\n const { ProjectivePoint: Point, normPrivateKeyToScalar, weierstrassEquation, isWithinCurveOrder, } = weierstrassPoints({\n ...CURVE,\n toBytes(_c, point, isCompressed) {\n const a = point.toAffine();\n const x = Fp.toBytes(a.x);\n const cat = concatBytes;\n abool('isCompressed', isCompressed);\n if (isCompressed) {\n return cat(Uint8Array.from([point.hasEvenY() ? 0x02 : 0x03]), x);\n }\n else {\n return cat(Uint8Array.from([0x04]), x, Fp.toBytes(a.y));\n }\n },\n fromBytes(bytes) {\n const len = bytes.length;\n const head = bytes[0];\n const tail = bytes.subarray(1);\n // this.assertValidity() is done inside of fromHex\n if (len === compressedLen && (head === 0x02 || head === 0x03)) {\n const x = bytesToNumberBE(tail);\n if (!inRange(x, _1n, Fp.ORDER))\n throw new Error('Point is not on curve');\n const y2 = weierstrassEquation(x); // y² = x³ + ax + b\n let y;\n try {\n y = Fp.sqrt(y2); // y = y² ^ (p+1)/4\n }\n catch (sqrtError) {\n const suffix = sqrtError instanceof Error ? ': ' + sqrtError.message : '';\n throw new Error('Point is not on curve' + suffix);\n }\n const isYOdd = (y & _1n) === _1n;\n // ECDSA\n const isHeadOdd = (head & 1) === 1;\n if (isHeadOdd !== isYOdd)\n y = Fp.neg(y);\n return { x, y };\n }\n else if (len === uncompressedLen && head === 0x04) {\n const x = Fp.fromBytes(tail.subarray(0, Fp.BYTES));\n const y = Fp.fromBytes(tail.subarray(Fp.BYTES, 2 * Fp.BYTES));\n return { x, y };\n }\n else {\n const cl = compressedLen;\n const ul = uncompressedLen;\n throw new Error('invalid Point, expected length of ' + cl + ', or uncompressed ' + ul + ', got ' + len);\n }\n },\n });\n function isBiggerThanHalfOrder(number) {\n const HALF = CURVE_ORDER >> _1n;\n return number > HALF;\n }\n function normalizeS(s) {\n return isBiggerThanHalfOrder(s) ? modN(-s) : s;\n }\n // slice bytes num\n const slcNum = (b, from, to) => bytesToNumberBE(b.slice(from, to));\n /**\n * ECDSA signature with its (r, s) properties. Supports DER & compact representations.\n */\n class Signature {\n constructor(r, s, recovery) {\n aInRange('r', r, _1n, CURVE_ORDER); // r in [1..N]\n aInRange('s', s, _1n, CURVE_ORDER); // s in [1..N]\n this.r = r;\n this.s = s;\n if (recovery != null)\n this.recovery = recovery;\n Object.freeze(this);\n }\n // pair (bytes of r, bytes of s)\n static fromCompact(hex) {\n const l = nByteLength;\n hex = ensureBytes('compactSignature', hex, l * 2);\n return new Signature(slcNum(hex, 0, l), slcNum(hex, l, 2 * l));\n }\n // DER encoded ECDSA signature\n // https://bitcoin.stackexchange.com/questions/57644/what-are-the-parts-of-a-bitcoin-transaction-input-script\n static fromDER(hex) {\n const { r, s } = DER.toSig(ensureBytes('DER', hex));\n return new Signature(r, s);\n }\n /**\n * @todo remove\n * @deprecated\n */\n assertValidity() { }\n addRecoveryBit(recovery) {\n return new Signature(this.r, this.s, recovery);\n }\n recoverPublicKey(msgHash) {\n const { r, s, recovery: rec } = this;\n const h = bits2int_modN(ensureBytes('msgHash', msgHash)); // Truncate hash\n if (rec == null || ![0, 1, 2, 3].includes(rec))\n throw new Error('recovery id invalid');\n const radj = rec === 2 || rec === 3 ? r + CURVE.n : r;\n if (radj >= Fp.ORDER)\n throw new Error('recovery id 2 or 3 invalid');\n const prefix = (rec & 1) === 0 ? '02' : '03';\n const R = Point.fromHex(prefix + numToSizedHex(radj, Fp.BYTES));\n const ir = invN(radj); // r^-1\n const u1 = modN(-h * ir); // -hr^-1\n const u2 = modN(s * ir); // sr^-1\n const Q = Point.BASE.multiplyAndAddUnsafe(R, u1, u2); // (sr^-1)R-(hr^-1)G = -(hr^-1)G + (sr^-1)\n if (!Q)\n throw new Error('point at infinify'); // unsafe is fine: no priv data leaked\n Q.assertValidity();\n return Q;\n }\n // Signatures should be low-s, to prevent malleability.\n hasHighS() {\n return isBiggerThanHalfOrder(this.s);\n }\n normalizeS() {\n return this.hasHighS() ? new Signature(this.r, modN(-this.s), this.recovery) : this;\n }\n // DER-encoded\n toDERRawBytes() {\n return hexToBytes(this.toDERHex());\n }\n toDERHex() {\n return DER.hexFromSig(this);\n }\n // padded bytes of r, then padded bytes of s\n toCompactRawBytes() {\n return hexToBytes(this.toCompactHex());\n }\n toCompactHex() {\n const l = nByteLength;\n return numToSizedHex(this.r, l) + numToSizedHex(this.s, l);\n }\n }\n const utils = {\n isValidPrivateKey(privateKey) {\n try {\n normPrivateKeyToScalar(privateKey);\n return true;\n }\n catch (error) {\n return false;\n }\n },\n normPrivateKeyToScalar: normPrivateKeyToScalar,\n /**\n * Produces cryptographically secure private key from random of size\n * (groupLen + ceil(groupLen / 2)) with modulo bias being negligible.\n */\n randomPrivateKey: () => {\n const length = getMinHashLength(CURVE.n);\n return mapHashToField(CURVE.randomBytes(length), CURVE.n);\n },\n /**\n * Creates precompute table for an arbitrary EC point. Makes point \"cached\".\n * Allows to massively speed-up `point.multiply(scalar)`.\n * @returns cached point\n * @example\n * const fast = utils.precompute(8, ProjectivePoint.fromHex(someonesPubKey));\n * fast.multiply(privKey); // much faster ECDH now\n */\n precompute(windowSize = 8, point = Point.BASE) {\n point._setWindowSize(windowSize);\n point.multiply(BigInt(3)); // 3 is arbitrary, just need any number here\n return point;\n },\n };\n /**\n * Computes public key for a private key. Checks for validity of the private key.\n * @param privateKey private key\n * @param isCompressed whether to return compact (default), or full key\n * @returns Public key, full when isCompressed=false; short when isCompressed=true\n */\n function getPublicKey(privateKey, isCompressed = true) {\n return Point.fromPrivateKey(privateKey).toRawBytes(isCompressed);\n }\n /**\n * Quick and dirty check for item being public key. Does not validate hex, or being on-curve.\n */\n function isProbPub(item) {\n if (typeof item === 'bigint')\n return false;\n if (item instanceof Point)\n return true;\n const arr = ensureBytes('key', item);\n const len = arr.length;\n const fpl = Fp.BYTES;\n const compLen = fpl + 1; // e.g. 33 for 32\n const uncompLen = 2 * fpl + 1; // e.g. 65 for 32\n if (CURVE.allowedPrivateKeyLengths || nByteLength === compLen) {\n return undefined;\n }\n else {\n return len === compLen || len === uncompLen;\n }\n }\n /**\n * ECDH (Elliptic Curve Diffie Hellman).\n * Computes shared public key from private key and public key.\n * Checks: 1) private key validity 2) shared key is on-curve.\n * Does NOT hash the result.\n * @param privateA private key\n * @param publicB different public key\n * @param isCompressed whether to return compact (default), or full key\n * @returns shared public key\n */\n function getSharedSecret(privateA, publicB, isCompressed = true) {\n if (isProbPub(privateA) === true)\n throw new Error('first arg must be private key');\n if (isProbPub(publicB) === false)\n throw new Error('second arg must be public key');\n const b = Point.fromHex(publicB); // check for being on-curve\n return b.multiply(normPrivateKeyToScalar(privateA)).toRawBytes(isCompressed);\n }\n // RFC6979: ensure ECDSA msg is X bytes and < N. RFC suggests optional truncating via bits2octets.\n // FIPS 186-4 4.6 suggests the leftmost min(nBitLen, outLen) bits, which matches bits2int.\n // bits2int can produce res>N, we can do mod(res, N) since the bitLen is the same.\n // int2octets can't be used; pads small msgs with 0: unacceptatble for trunc as per RFC vectors\n const bits2int = CURVE.bits2int ||\n function (bytes) {\n // Our custom check \"just in case\", for protection against DoS\n if (bytes.length > 8192)\n throw new Error('input is too large');\n // For curves with nBitLength % 8 !== 0: bits2octets(bits2octets(m)) !== bits2octets(m)\n // for some cases, since bytes.length * 8 is not actual bitLength.\n const num = bytesToNumberBE(bytes); // check for == u8 done here\n const delta = bytes.length * 8 - nBitLength; // truncate to nBitLength leftmost bits\n return delta > 0 ? num >> BigInt(delta) : num;\n };\n const bits2int_modN = CURVE.bits2int_modN ||\n function (bytes) {\n return modN(bits2int(bytes)); // can't use bytesToNumberBE here\n };\n // NOTE: pads output with zero as per spec\n const ORDER_MASK = bitMask(nBitLength);\n /**\n * Converts to bytes. Checks if num in `[0..ORDER_MASK-1]` e.g.: `[0..2^256-1]`.\n */\n function int2octets(num) {\n aInRange('num < 2^' + nBitLength, num, _0n, ORDER_MASK);\n // works with order, can have different size than numToField!\n return numberToBytesBE(num, nByteLength);\n }\n // Steps A, D of RFC6979 3.2\n // Creates RFC6979 seed; converts msg/privKey to numbers.\n // Used only in sign, not in verify.\n // NOTE: we cannot assume here that msgHash has same amount of bytes as curve order,\n // this will be invalid at least for P521. Also it can be bigger for P224 + SHA256\n function prepSig(msgHash, privateKey, opts = defaultSigOpts) {\n if (['recovered', 'canonical'].some((k) => k in opts))\n throw new Error('sign() legacy options not supported');\n const { hash, randomBytes } = CURVE;\n let { lowS, prehash, extraEntropy: ent } = opts; // generates low-s sigs by default\n if (lowS == null)\n lowS = true; // RFC6979 3.2: we skip step A, because we already provide hash\n msgHash = ensureBytes('msgHash', msgHash);\n validateSigVerOpts(opts);\n if (prehash)\n msgHash = ensureBytes('prehashed msgHash', hash(msgHash));\n // We can't later call bits2octets, since nested bits2int is broken for curves\n // with nBitLength % 8 !== 0. Because of that, we unwrap it here as int2octets call.\n // const bits2octets = (bits) => int2octets(bits2int_modN(bits))\n const h1int = bits2int_modN(msgHash);\n const d = normPrivateKeyToScalar(privateKey); // validate private key, convert to bigint\n const seedArgs = [int2octets(d), int2octets(h1int)];\n // extraEntropy. RFC6979 3.6: additional k' (optional).\n if (ent != null && ent !== false) {\n // K = HMAC_K(V || 0x00 || int2octets(x) || bits2octets(h1) || k')\n const e = ent === true ? randomBytes(Fp.BYTES) : ent; // generate random bytes OR pass as-is\n seedArgs.push(ensureBytes('extraEntropy', e)); // check for being bytes\n }\n const seed = concatBytes(...seedArgs); // Step D of RFC6979 3.2\n const m = h1int; // NOTE: no need to call bits2int second time here, it is inside truncateHash!\n // Converts signature params into point w r/s, checks result for validity.\n function k2sig(kBytes) {\n // RFC 6979 Section 3.2, step 3: k = bits2int(T)\n const k = bits2int(kBytes); // Cannot use fields methods, since it is group element\n if (!isWithinCurveOrder(k))\n return; // Important: all mod() calls here must be done over N\n const ik = invN(k); // k^-1 mod n\n const q = Point.BASE.multiply(k).toAffine(); // q = Gk\n const r = modN(q.x); // r = q.x mod n\n if (r === _0n)\n return;\n // Can use scalar blinding b^-1(bm + bdr) where b ∈ [1,q−1] according to\n // https://tches.iacr.org/index.php/TCHES/article/view/7337/6509. We've decided against it:\n // a) dependency on CSPRNG b) 15% slowdown c) doesn't really help since bigints are not CT\n const s = modN(ik * modN(m + r * d)); // Not using blinding here\n if (s === _0n)\n return;\n let recovery = (q.x === r ? 0 : 2) | Number(q.y & _1n); // recovery bit (2 or 3, when q.x > n)\n let normS = s;\n if (lowS && isBiggerThanHalfOrder(s)) {\n normS = normalizeS(s); // if lowS was passed, ensure s is always\n recovery ^= 1; // // in the bottom half of N\n }\n return new Signature(r, normS, recovery); // use normS, not s\n }\n return { seed, k2sig };\n }\n const defaultSigOpts = { lowS: CURVE.lowS, prehash: false };\n const defaultVerOpts = { lowS: CURVE.lowS, prehash: false };\n /**\n * Signs message hash with a private key.\n * ```\n * sign(m, d, k) where\n * (x, y) = G × k\n * r = x mod n\n * s = (m + dr)/k mod n\n * ```\n * @param msgHash NOT message. msg needs to be hashed to `msgHash`, or use `prehash`.\n * @param privKey private key\n * @param opts lowS for non-malleable sigs. extraEntropy for mixing randomness into k. prehash will hash first arg.\n * @returns signature with recovery param\n */\n function sign(msgHash, privKey, opts = defaultSigOpts) {\n const { seed, k2sig } = prepSig(msgHash, privKey, opts); // Steps A, D of RFC6979 3.2.\n const C = CURVE;\n const drbg = createHmacDrbg(C.hash.outputLen, C.nByteLength, C.hmac);\n return drbg(seed, k2sig); // Steps B, C, D, E, F, G\n }\n // Enable precomputes. Slows down first publicKey computation by 20ms.\n Point.BASE._setWindowSize(8);\n // utils.precompute(8, ProjectivePoint.BASE)\n /**\n * Verifies a signature against message hash and public key.\n * Rejects lowS signatures by default: to override,\n * specify option `{lowS: false}`. Implements section 4.1.4 from https://www.secg.org/sec1-v2.pdf:\n *\n * ```\n * verify(r, s, h, P) where\n * U1 = hs^-1 mod n\n * U2 = rs^-1 mod n\n * R = U1⋅G - U2⋅P\n * mod(R.x, n) == r\n * ```\n */\n function verify(signature, msgHash, publicKey, opts = defaultVerOpts) {\n const sg = signature;\n msgHash = ensureBytes('msgHash', msgHash);\n publicKey = ensureBytes('publicKey', publicKey);\n const { lowS, prehash, format } = opts;\n // Verify opts, deduce signature format\n validateSigVerOpts(opts);\n if ('strict' in opts)\n throw new Error('options.strict was renamed to lowS');\n if (format !== undefined && format !== 'compact' && format !== 'der')\n throw new Error('format must be compact or der');\n const isHex = typeof sg === 'string' || isBytes(sg);\n const isObj = !isHex &&\n !format &&\n typeof sg === 'object' &&\n sg !== null &&\n typeof sg.r === 'bigint' &&\n typeof sg.s === 'bigint';\n if (!isHex && !isObj)\n throw new Error('invalid signature, expected Uint8Array, hex string or Signature instance');\n let _sig = undefined;\n let P;\n try {\n if (isObj)\n _sig = new Signature(sg.r, sg.s);\n if (isHex) {\n // Signature can be represented in 2 ways: compact (2*nByteLength) & DER (variable-length).\n // Since DER can also be 2*nByteLength bytes, we check for it first.\n try {\n if (format !== 'compact')\n _sig = Signature.fromDER(sg);\n }\n catch (derError) {\n if (!(derError instanceof DER.Err))\n throw derError;\n }\n if (!_sig && format !== 'der')\n _sig = Signature.fromCompact(sg);\n }\n P = Point.fromHex(publicKey);\n }\n catch (error) {\n return false;\n }\n if (!_sig)\n return false;\n if (lowS && _sig.hasHighS())\n return false;\n if (prehash)\n msgHash = CURVE.hash(msgHash);\n const { r, s } = _sig;\n const h = bits2int_modN(msgHash); // Cannot use fields methods, since it is group element\n const is = invN(s); // s^-1\n const u1 = modN(h * is); // u1 = hs^-1 mod n\n const u2 = modN(r * is); // u2 = rs^-1 mod n\n const R = Point.BASE.multiplyAndAddUnsafe(P, u1, u2)?.toAffine(); // R = u1⋅G + u2⋅P\n if (!R)\n return false;\n const v = modN(R.x);\n return v === r;\n }\n return {\n CURVE,\n getPublicKey,\n getSharedSecret,\n sign,\n verify,\n ProjectivePoint: Point,\n Signature,\n utils,\n };\n}\n/**\n * Implementation of the Shallue and van de Woestijne method for any weierstrass curve.\n * TODO: check if there is a way to merge this with uvRatio in Edwards; move to modular.\n * b = True and y = sqrt(u / v) if (u / v) is square in F, and\n * b = False and y = sqrt(Z * (u / v)) otherwise.\n * @param Fp\n * @param Z\n * @returns\n */\nexport function SWUFpSqrtRatio(Fp, Z) {\n // Generic implementation\n const q = Fp.ORDER;\n let l = _0n;\n for (let o = q - _1n; o % _2n === _0n; o /= _2n)\n l += _1n;\n const c1 = l; // 1. c1, the largest integer such that 2^c1 divides q - 1.\n // We need 2n ** c1 and 2n ** (c1-1). We can't use **; but we can use <<.\n // 2n ** c1 == 2n << (c1-1)\n const _2n_pow_c1_1 = _2n << (c1 - _1n - _1n);\n const _2n_pow_c1 = _2n_pow_c1_1 * _2n;\n const c2 = (q - _1n) / _2n_pow_c1; // 2. c2 = (q - 1) / (2^c1) # Integer arithmetic\n const c3 = (c2 - _1n) / _2n; // 3. c3 = (c2 - 1) / 2 # Integer arithmetic\n const c4 = _2n_pow_c1 - _1n; // 4. c4 = 2^c1 - 1 # Integer arithmetic\n const c5 = _2n_pow_c1_1; // 5. c5 = 2^(c1 - 1) # Integer arithmetic\n const c6 = Fp.pow(Z, c2); // 6. c6 = Z^c2\n const c7 = Fp.pow(Z, (c2 + _1n) / _2n); // 7. c7 = Z^((c2 + 1) / 2)\n let sqrtRatio = (u, v) => {\n let tv1 = c6; // 1. tv1 = c6\n let tv2 = Fp.pow(v, c4); // 2. tv2 = v^c4\n let tv3 = Fp.sqr(tv2); // 3. tv3 = tv2^2\n tv3 = Fp.mul(tv3, v); // 4. tv3 = tv3 * v\n let tv5 = Fp.mul(u, tv3); // 5. tv5 = u * tv3\n tv5 = Fp.pow(tv5, c3); // 6. tv5 = tv5^c3\n tv5 = Fp.mul(tv5, tv2); // 7. tv5 = tv5 * tv2\n tv2 = Fp.mul(tv5, v); // 8. tv2 = tv5 * v\n tv3 = Fp.mul(tv5, u); // 9. tv3 = tv5 * u\n let tv4 = Fp.mul(tv3, tv2); // 10. tv4 = tv3 * tv2\n tv5 = Fp.pow(tv4, c5); // 11. tv5 = tv4^c5\n let isQR = Fp.eql(tv5, Fp.ONE); // 12. isQR = tv5 == 1\n tv2 = Fp.mul(tv3, c7); // 13. tv2 = tv3 * c7\n tv5 = Fp.mul(tv4, tv1); // 14. tv5 = tv4 * tv1\n tv3 = Fp.cmov(tv2, tv3, isQR); // 15. tv3 = CMOV(tv2, tv3, isQR)\n tv4 = Fp.cmov(tv5, tv4, isQR); // 16. tv4 = CMOV(tv5, tv4, isQR)\n // 17. for i in (c1, c1 - 1, ..., 2):\n for (let i = c1; i > _1n; i--) {\n let tv5 = i - _2n; // 18. tv5 = i - 2\n tv5 = _2n << (tv5 - _1n); // 19. tv5 = 2^tv5\n let tvv5 = Fp.pow(tv4, tv5); // 20. tv5 = tv4^tv5\n const e1 = Fp.eql(tvv5, Fp.ONE); // 21. e1 = tv5 == 1\n tv2 = Fp.mul(tv3, tv1); // 22. tv2 = tv3 * tv1\n tv1 = Fp.mul(tv1, tv1); // 23. tv1 = tv1 * tv1\n tvv5 = Fp.mul(tv4, tv1); // 24. tv5 = tv4 * tv1\n tv3 = Fp.cmov(tv2, tv3, e1); // 25. tv3 = CMOV(tv2, tv3, e1)\n tv4 = Fp.cmov(tvv5, tv4, e1); // 26. tv4 = CMOV(tv5, tv4, e1)\n }\n return { isValid: isQR, value: tv3 };\n };\n if (Fp.ORDER % _4n === _3n) {\n // sqrt_ratio_3mod4(u, v)\n const c1 = (Fp.ORDER - _3n) / _4n; // 1. c1 = (q - 3) / 4 # Integer arithmetic\n const c2 = Fp.sqrt(Fp.neg(Z)); // 2. c2 = sqrt(-Z)\n sqrtRatio = (u, v) => {\n let tv1 = Fp.sqr(v); // 1. tv1 = v^2\n const tv2 = Fp.mul(u, v); // 2. tv2 = u * v\n tv1 = Fp.mul(tv1, tv2); // 3. tv1 = tv1 * tv2\n let y1 = Fp.pow(tv1, c1); // 4. y1 = tv1^c1\n y1 = Fp.mul(y1, tv2); // 5. y1 = y1 * tv2\n const y2 = Fp.mul(y1, c2); // 6. y2 = y1 * c2\n const tv3 = Fp.mul(Fp.sqr(y1), v); // 7. tv3 = y1^2; 8. tv3 = tv3 * v\n const isQR = Fp.eql(tv3, u); // 9. isQR = tv3 == u\n let y = Fp.cmov(y2, y1, isQR); // 10. y = CMOV(y2, y1, isQR)\n return { isValid: isQR, value: y }; // 11. return (isQR, y) isQR ? y : y*c2\n };\n }\n // No curves uses that\n // if (Fp.ORDER % _8n === _5n) // sqrt_ratio_5mod8\n return sqrtRatio;\n}\n/**\n * Simplified Shallue-van de Woestijne-Ulas Method\n * https://www.rfc-editor.org/rfc/rfc9380#section-6.6.2\n */\nexport function mapToCurveSimpleSWU(Fp, opts) {\n validateField(Fp);\n if (!Fp.isValid(opts.A) || !Fp.isValid(opts.B) || !Fp.isValid(opts.Z))\n throw new Error('mapToCurveSimpleSWU: invalid opts');\n const sqrtRatio = SWUFpSqrtRatio(Fp, opts.Z);\n if (!Fp.isOdd)\n throw new Error('Fp.isOdd is not implemented!');\n // Input: u, an element of F.\n // Output: (x, y), a point on E.\n return (u) => {\n // prettier-ignore\n let tv1, tv2, tv3, tv4, tv5, tv6, x, y;\n tv1 = Fp.sqr(u); // 1. tv1 = u^2\n tv1 = Fp.mul(tv1, opts.Z); // 2. tv1 = Z * tv1\n tv2 = Fp.sqr(tv1); // 3. tv2 = tv1^2\n tv2 = Fp.add(tv2, tv1); // 4. tv2 = tv2 + tv1\n tv3 = Fp.add(tv2, Fp.ONE); // 5. tv3 = tv2 + 1\n tv3 = Fp.mul(tv3, opts.B); // 6. tv3 = B * tv3\n tv4 = Fp.cmov(opts.Z, Fp.neg(tv2), !Fp.eql(tv2, Fp.ZERO)); // 7. tv4 = CMOV(Z, -tv2, tv2 != 0)\n tv4 = Fp.mul(tv4, opts.A); // 8. tv4 = A * tv4\n tv2 = Fp.sqr(tv3); // 9. tv2 = tv3^2\n tv6 = Fp.sqr(tv4); // 10. tv6 = tv4^2\n tv5 = Fp.mul(tv6, opts.A); // 11. tv5 = A * tv6\n tv2 = Fp.add(tv2, tv5); // 12. tv2 = tv2 + tv5\n tv2 = Fp.mul(tv2, tv3); // 13. tv2 = tv2 * tv3\n tv6 = Fp.mul(tv6, tv4); // 14. tv6 = tv6 * tv4\n tv5 = Fp.mul(tv6, opts.B); // 15. tv5 = B * tv6\n tv2 = Fp.add(tv2, tv5); // 16. tv2 = tv2 + tv5\n x = Fp.mul(tv1, tv3); // 17. x = tv1 * tv3\n const { isValid, value } = sqrtRatio(tv2, tv6); // 18. (is_gx1_square, y1) = sqrt_ratio(tv2, tv6)\n y = Fp.mul(tv1, u); // 19. y = tv1 * u -> Z * u^3 * y1\n y = Fp.mul(y, value); // 20. y = y * y1\n x = Fp.cmov(x, tv3, isValid); // 21. x = CMOV(x, tv3, is_gx1_square)\n y = Fp.cmov(y, value, isValid); // 22. y = CMOV(y, y1, is_gx1_square)\n const e1 = Fp.isOdd(u) === Fp.isOdd(y); // 23. e1 = sgn0(u) == sgn0(y)\n y = Fp.cmov(Fp.neg(y), y, e1); // 24. y = CMOV(-y, y, e1)\n const tv4_inv = FpInvertBatch(Fp, [tv4], true)[0];\n x = Fp.mul(x, tv4_inv); // 25. x = x / tv4\n return { x, y };\n };\n}\n//# sourceMappingURL=weierstrass.js.map","/**\n * Utilities for short weierstrass curves, combined with noble-hashes.\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { hmac } from '@noble/hashes/hmac';\nimport { concatBytes, randomBytes } from '@noble/hashes/utils';\nimport { weierstrass } from \"./abstract/weierstrass.js\";\n/** connects noble-curves to noble-hashes */\nexport function getHash(hash) {\n return {\n hash,\n hmac: (key, ...msgs) => hmac(hash, key, concatBytes(...msgs)),\n randomBytes,\n };\n}\nexport function createCurve(curveDef, defHash) {\n const create = (hash) => weierstrass({ ...curveDef, ...getHash(hash) });\n return { ...create(defHash), create };\n}\n//# sourceMappingURL=_shortw_utils.js.map","/**\n * NIST secp256k1. See [pdf](https://www.secg.org/sec2-v2.pdf).\n *\n * Seems to be rigid (not backdoored)\n * [as per discussion](https://bitcointalk.org/index.php?topic=289795.msg3183975#msg3183975).\n *\n * secp256k1 belongs to Koblitz curves: it has efficiently computable endomorphism.\n * Endomorphism uses 2x less RAM, speeds up precomputation by 2x and ECDH / key recovery by 20%.\n * For precomputed wNAF it trades off 1/2 init time & 1/3 ram for 20% perf hit.\n * [See explanation](https://gist.github.com/paulmillr/eb670806793e84df628a7c434a873066).\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { sha256 } from '@noble/hashes/sha2';\nimport { randomBytes } from '@noble/hashes/utils';\nimport { createCurve } from \"./_shortw_utils.js\";\nimport { createHasher, isogenyMap } from \"./abstract/hash-to-curve.js\";\nimport { Field, mod, pow2 } from \"./abstract/modular.js\";\nimport { aInRange, bytesToNumberBE, concatBytes, ensureBytes, inRange, numberToBytesBE, } from \"./abstract/utils.js\";\nimport { mapToCurveSimpleSWU } from \"./abstract/weierstrass.js\";\nconst secp256k1P = BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f');\nconst secp256k1N = BigInt('0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141');\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst divNearest = (a, b) => (a + b / _2n) / b;\n/**\n * √n = n^((p+1)/4) for fields p = 3 mod 4. We unwrap the loop and multiply bit-by-bit.\n * (P+1n/4n).toString(2) would produce bits [223x 1, 0, 22x 1, 4x 0, 11, 00]\n */\nfunction sqrtMod(y) {\n const P = secp256k1P;\n // prettier-ignore\n const _3n = BigInt(3), _6n = BigInt(6), _11n = BigInt(11), _22n = BigInt(22);\n // prettier-ignore\n const _23n = BigInt(23), _44n = BigInt(44), _88n = BigInt(88);\n const b2 = (y * y * y) % P; // x^3, 11\n const b3 = (b2 * b2 * y) % P; // x^7\n const b6 = (pow2(b3, _3n, P) * b3) % P;\n const b9 = (pow2(b6, _3n, P) * b3) % P;\n const b11 = (pow2(b9, _2n, P) * b2) % P;\n const b22 = (pow2(b11, _11n, P) * b11) % P;\n const b44 = (pow2(b22, _22n, P) * b22) % P;\n const b88 = (pow2(b44, _44n, P) * b44) % P;\n const b176 = (pow2(b88, _88n, P) * b88) % P;\n const b220 = (pow2(b176, _44n, P) * b44) % P;\n const b223 = (pow2(b220, _3n, P) * b3) % P;\n const t1 = (pow2(b223, _23n, P) * b22) % P;\n const t2 = (pow2(t1, _6n, P) * b2) % P;\n const root = pow2(t2, _2n, P);\n if (!Fpk1.eql(Fpk1.sqr(root), y))\n throw new Error('Cannot find square root');\n return root;\n}\nconst Fpk1 = Field(secp256k1P, undefined, undefined, { sqrt: sqrtMod });\n/**\n * secp256k1 curve, ECDSA and ECDH methods.\n *\n * Field: `2n**256n - 2n**32n - 2n**9n - 2n**8n - 2n**7n - 2n**6n - 2n**4n - 1n`\n *\n * @example\n * ```js\n * import { secp256k1 } from '@noble/curves/secp256k1';\n * const priv = secp256k1.utils.randomPrivateKey();\n * const pub = secp256k1.getPublicKey(priv);\n * const msg = new Uint8Array(32).fill(1); // message hash (not message) in ecdsa\n * const sig = secp256k1.sign(msg, priv); // `{prehash: true}` option is available\n * const isValid = secp256k1.verify(sig, msg, pub) === true;\n * ```\n */\nexport const secp256k1 = createCurve({\n a: _0n,\n b: BigInt(7),\n Fp: Fpk1,\n n: secp256k1N,\n Gx: BigInt('55066263022277343669578718895168534326250603453777594175500187360389116729240'),\n Gy: BigInt('32670510020758816978083085130507043184471273380659243275938904335757337482424'),\n h: BigInt(1),\n lowS: true, // Allow only low-S signatures by default in sign() and verify()\n endo: {\n // Endomorphism, see above\n beta: BigInt('0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee'),\n splitScalar: (k) => {\n const n = secp256k1N;\n const a1 = BigInt('0x3086d221a7d46bcde86c90e49284eb15');\n const b1 = -_1n * BigInt('0xe4437ed6010e88286f547fa90abfe4c3');\n const a2 = BigInt('0x114ca50f7a8e2f3f657c1108d9d44cfd8');\n const b2 = a1;\n const POW_2_128 = BigInt('0x100000000000000000000000000000000'); // (2n**128n).toString(16)\n const c1 = divNearest(b2 * k, n);\n const c2 = divNearest(-b1 * k, n);\n let k1 = mod(k - c1 * a1 - c2 * a2, n);\n let k2 = mod(-c1 * b1 - c2 * b2, n);\n const k1neg = k1 > POW_2_128;\n const k2neg = k2 > POW_2_128;\n if (k1neg)\n k1 = n - k1;\n if (k2neg)\n k2 = n - k2;\n if (k1 > POW_2_128 || k2 > POW_2_128) {\n throw new Error('splitScalar: Endomorphism failed, k=' + k);\n }\n return { k1neg, k1, k2neg, k2 };\n },\n },\n}, sha256);\n// Schnorr signatures are superior to ECDSA from above. Below is Schnorr-specific BIP0340 code.\n// https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki\n/** An object mapping tags to their tagged hash prefix of [SHA256(tag) | SHA256(tag)] */\nconst TAGGED_HASH_PREFIXES = {};\nfunction taggedHash(tag, ...messages) {\n let tagP = TAGGED_HASH_PREFIXES[tag];\n if (tagP === undefined) {\n const tagH = sha256(Uint8Array.from(tag, (c) => c.charCodeAt(0)));\n tagP = concatBytes(tagH, tagH);\n TAGGED_HASH_PREFIXES[tag] = tagP;\n }\n return sha256(concatBytes(tagP, ...messages));\n}\n// ECDSA compact points are 33-byte. Schnorr is 32: we strip first byte 0x02 or 0x03\nconst pointToBytes = (point) => point.toRawBytes(true).slice(1);\nconst numTo32b = (n) => numberToBytesBE(n, 32);\nconst modP = (x) => mod(x, secp256k1P);\nconst modN = (x) => mod(x, secp256k1N);\nconst Point = /* @__PURE__ */ (() => secp256k1.ProjectivePoint)();\nconst GmulAdd = (Q, a, b) => Point.BASE.multiplyAndAddUnsafe(Q, a, b);\n// Calculate point, scalar and bytes\nfunction schnorrGetExtPubKey(priv) {\n let d_ = secp256k1.utils.normPrivateKeyToScalar(priv); // same method executed in fromPrivateKey\n let p = Point.fromPrivateKey(d_); // P = d'⋅G; 0 < d' < n check is done inside\n const scalar = p.hasEvenY() ? d_ : modN(-d_);\n return { scalar: scalar, bytes: pointToBytes(p) };\n}\n/**\n * lift_x from BIP340. Convert 32-byte x coordinate to elliptic curve point.\n * @returns valid point checked for being on-curve\n */\nfunction lift_x(x) {\n aInRange('x', x, _1n, secp256k1P); // Fail if x ≥ p.\n const xx = modP(x * x);\n const c = modP(xx * x + BigInt(7)); // Let c = x³ + 7 mod p.\n let y = sqrtMod(c); // Let y = c^(p+1)/4 mod p.\n if (y % _2n !== _0n)\n y = modP(-y); // Return the unique point P such that x(P) = x and\n const p = new Point(x, y, _1n); // y(P) = y if y mod 2 = 0 or y(P) = p-y otherwise.\n p.assertValidity();\n return p;\n}\nconst num = bytesToNumberBE;\n/**\n * Create tagged hash, convert it to bigint, reduce modulo-n.\n */\nfunction challenge(...args) {\n return modN(num(taggedHash('BIP0340/challenge', ...args)));\n}\n/**\n * Schnorr public key is just `x` coordinate of Point as per BIP340.\n */\nfunction schnorrGetPublicKey(privateKey) {\n return schnorrGetExtPubKey(privateKey).bytes; // d'=int(sk). Fail if d'=0 or d'≥n. Ret bytes(d'⋅G)\n}\n/**\n * Creates Schnorr signature as per BIP340. Verifies itself before returning anything.\n * auxRand is optional and is not the sole source of k generation: bad CSPRNG won't be dangerous.\n */\nfunction schnorrSign(message, privateKey, auxRand = randomBytes(32)) {\n const m = ensureBytes('message', message);\n const { bytes: px, scalar: d } = schnorrGetExtPubKey(privateKey); // checks for isWithinCurveOrder\n const a = ensureBytes('auxRand', auxRand, 32); // Auxiliary random data a: a 32-byte array\n const t = numTo32b(d ^ num(taggedHash('BIP0340/aux', a))); // Let t be the byte-wise xor of bytes(d) and hash/aux(a)\n const rand = taggedHash('BIP0340/nonce', t, px, m); // Let rand = hash/nonce(t || bytes(P) || m)\n const k_ = modN(num(rand)); // Let k' = int(rand) mod n\n if (k_ === _0n)\n throw new Error('sign failed: k is zero'); // Fail if k' = 0.\n const { bytes: rx, scalar: k } = schnorrGetExtPubKey(k_); // Let R = k'⋅G.\n const e = challenge(rx, px, m); // Let e = int(hash/challenge(bytes(R) || bytes(P) || m)) mod n.\n const sig = new Uint8Array(64); // Let sig = bytes(R) || bytes((k + ed) mod n).\n sig.set(rx, 0);\n sig.set(numTo32b(modN(k + e * d)), 32);\n // If Verify(bytes(P), m, sig) (see below) returns failure, abort\n if (!schnorrVerify(sig, m, px))\n throw new Error('sign: Invalid signature produced');\n return sig;\n}\n/**\n * Verifies Schnorr signature.\n * Will swallow errors & return false except for initial type validation of arguments.\n */\nfunction schnorrVerify(signature, message, publicKey) {\n const sig = ensureBytes('signature', signature, 64);\n const m = ensureBytes('message', message);\n const pub = ensureBytes('publicKey', publicKey, 32);\n try {\n const P = lift_x(num(pub)); // P = lift_x(int(pk)); fail if that fails\n const r = num(sig.subarray(0, 32)); // Let r = int(sig[0:32]); fail if r ≥ p.\n if (!inRange(r, _1n, secp256k1P))\n return false;\n const s = num(sig.subarray(32, 64)); // Let s = int(sig[32:64]); fail if s ≥ n.\n if (!inRange(s, _1n, secp256k1N))\n return false;\n const e = challenge(numTo32b(r), pointToBytes(P), m); // int(challenge(bytes(r)||bytes(P)||m))%n\n const R = GmulAdd(P, s, modN(-e)); // R = s⋅G - e⋅P\n if (!R || !R.hasEvenY() || R.toAffine().x !== r)\n return false; // -eP == (n-e)P\n return true; // Fail if is_infinite(R) / not has_even_y(R) / x(R) ≠ r.\n }\n catch (error) {\n return false;\n }\n}\n/**\n * Schnorr signatures over secp256k1.\n * https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki\n * @example\n * ```js\n * import { schnorr } from '@noble/curves/secp256k1';\n * const priv = schnorr.utils.randomPrivateKey();\n * const pub = schnorr.getPublicKey(priv);\n * const msg = new TextEncoder().encode('hello');\n * const sig = schnorr.sign(msg, priv);\n * const isValid = schnorr.verify(sig, msg, pub);\n * ```\n */\nexport const schnorr = /* @__PURE__ */ (() => ({\n getPublicKey: schnorrGetPublicKey,\n sign: schnorrSign,\n verify: schnorrVerify,\n utils: {\n randomPrivateKey: secp256k1.utils.randomPrivateKey,\n lift_x,\n pointToBytes,\n numberToBytesBE,\n bytesToNumberBE,\n taggedHash,\n mod,\n },\n}))();\nconst isoMap = /* @__PURE__ */ (() => isogenyMap(Fpk1, [\n // xNum\n [\n '0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa8c7',\n '0x7d3d4c80bc321d5b9f315cea7fd44c5d595d2fc0bf63b92dfff1044f17c6581',\n '0x534c328d23f234e6e2a413deca25caece4506144037c40314ecbd0b53d9dd262',\n '0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa88c',\n ],\n // xDen\n [\n '0xd35771193d94918a9ca34ccbb7b640dd86cd409542f8487d9fe6b745781eb49b',\n '0xedadc6f64383dc1df7c4b2d51b54225406d36b641f5e41bbc52a56612a8c6d14',\n '0x0000000000000000000000000000000000000000000000000000000000000001', // LAST 1\n ],\n // yNum\n [\n '0x4bda12f684bda12f684bda12f684bda12f684bda12f684bda12f684b8e38e23c',\n '0xc75e0c32d5cb7c0fa9d0a54b12a0a6d5647ab046d686da6fdffc90fc201d71a3',\n '0x29a6194691f91a73715209ef6512e576722830a201be2018a765e85a9ecee931',\n '0x2f684bda12f684bda12f684bda12f684bda12f684bda12f684bda12f38e38d84',\n ],\n // yDen\n [\n '0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffff93b',\n '0x7a06534bb8bdb49fd5e9e6632722c2989467c1bfc8e8d978dfb425d2685c2573',\n '0x6484aa716545ca2cf3a70c3fa8fe337e0a3d21162f0d6299a7bf8192bfd2a76f',\n '0x0000000000000000000000000000000000000000000000000000000000000001', // LAST 1\n ],\n].map((i) => i.map((j) => BigInt(j)))))();\nconst mapSWU = /* @__PURE__ */ (() => mapToCurveSimpleSWU(Fpk1, {\n A: BigInt('0x3f8731abdd661adca08a5558f0f5d272e953d363cb6f0e5d405447c01a444533'),\n B: BigInt('1771'),\n Z: Fpk1.create(BigInt('-11')),\n}))();\n/** Hashing / encoding to secp256k1 points / field. RFC 9380 methods. */\nexport const secp256k1_hasher = /* @__PURE__ */ (() => createHasher(secp256k1.ProjectivePoint, (scalars) => {\n const { x, y } = mapSWU(Fpk1.create(scalars[0]));\n return isoMap(x, y);\n}, {\n DST: 'secp256k1_XMD:SHA-256_SSWU_RO_',\n encodeDST: 'secp256k1_XMD:SHA-256_SSWU_NU_',\n p: Fpk1.ORDER,\n m: 1,\n k: 128,\n expand: 'xmd',\n hash: sha256,\n}))();\nexport const hashToCurve = /* @__PURE__ */ (() => secp256k1_hasher.hashToCurve)();\nexport const encodeToCurve = /* @__PURE__ */ (() => secp256k1_hasher.encodeToCurve)();\n//# sourceMappingURL=secp256k1.js.map","import * as hmac from \"./hmac.js\";\nimport { secp256k1 } from \"@noble/curves/secp256k1\";\nimport { bytesToNumberBE, numberToBytesBE } from \"@noble/curves/abstract/utils\";\n\nconst N = secp256k1.CURVE.n;\nconst HARDENED_BIT = 0x80000000;\n\n/**\n * Mostly copied from https://github.com/bitcoinjs/bip32/blob/master/ts-src/bip32.ts\n * We cannot use that library directly because it uses `Buffer` and we want to avoid\n * polyfills as much as possible. Also, we only need the `derive` function.\n * @param {Uint8Array} parentKey\n * @param {Uint8Array} chainCode\n * @param {number} index\n * @returns {Promise<{ keyData: Uint8Array; chainCode: Uint8Array }>}\n */\nexport async function derive(parentKey, chainCode, index) {\n const isHardened = isHardenedIndex(index);\n const data = new Uint8Array(37);\n\n const publicKey = secp256k1.getPublicKey(parentKey, true);\n\n // Hardened child\n if (isHardened) {\n // data = 0x00 || ser256(kpar) || ser32(index)\n data[0] = 0x00;\n data.set(parentKey, 1);\n\n // Normal child\n } else {\n // data = serP(point(kpar)) || ser32(index)\n // = serP(Kpar) || ser32(index)\n data.set(publicKey, 0);\n }\n\n new DataView(data.buffer, data.byteOffset, data.byteLength).setUint32(\n 33,\n index,\n false,\n );\n\n const I = await hmac.hash(hmac.HashAlgorithm.Sha512, chainCode, data);\n const IL = I.subarray(0, 32);\n const IR = I.subarray(32);\n\n // if parse256(IL) >= n, proceed with the next value for i\n try {\n // ki = parse256(IL) + kpar (mod n)\n const parentKeyBigInt = bytesToNumberBE(parentKey);\n const ILBigInt = bytesToNumberBE(IL);\n\n // Add private keys mod N\n const ki = (parentKeyBigInt + ILBigInt) % N;\n\n // In case ki == 0, proceed with the next value for i\n if (ki === 0n) {\n return derive(parentKey, chainCode, index + 1);\n }\n\n const keyData = numberToBytesBE(ki, 32);\n\n return {\n keyData,\n chainCode: IR,\n };\n } catch {\n return derive(parentKey, chainCode, index + 1);\n }\n}\n\n/**\n * @param {Uint8Array} seed\n * @returns {Promise<{ keyData: Uint8Array; chainCode: Uint8Array }>}\n */\nexport async function fromSeed(seed) {\n if (seed.length < 16)\n throw new TypeError(\"Seed should be at least 128 bits\");\n if (seed.length > 64)\n throw new TypeError(\"Seed should be at most 512 bits\");\n\n const I = await hmac.hash(hmac.HashAlgorithm.Sha512, \"Bitcoin seed\", seed);\n\n const IL = I.subarray(0, 32);\n const IR = I.subarray(32);\n\n return { keyData: IL, chainCode: IR };\n}\n\n/**\n * Harden the index\n * @param {number} index the derivation index\n * @returns {number} the hardened index\n */\nexport function toHardenedIndex(index) {\n return index | HARDENED_BIT;\n}\n\n/**\n * Check if the index is hardened\n * @param {number} index the derivation index\n * @returns {boolean} true if the index is hardened\n */\nexport function isHardenedIndex(index) {\n return (index & HARDENED_BIT) !== 0;\n}\n","import * as hmac from \"../primitive/hmac.js\";\nimport * as bip32 from \"../primitive/bip32.js\";\n\n/**\n * @param {Uint8Array} parentKey\n * @param {Uint8Array} chainCode\n * @param {number} index\n * @returns {Promise<{ keyData: Uint8Array; chainCode: Uint8Array }>}\n */\nexport async function derive(parentKey, chainCode, index) {\n if (bip32.isHardenedIndex(index)) {\n throw new Error(\"the index should not be pre-hardened\");\n }\n\n const input = new Uint8Array(37);\n\n // 0x00 + parentKey + index(BE)\n input[0] = 0;\n input.set(parentKey, 1);\n new DataView(input.buffer, input.byteOffset, input.byteLength).setUint32(\n 33,\n index,\n false,\n );\n\n // set the index to hardened\n input[33] |= 128;\n\n const digest = await hmac.hash(hmac.HashAlgorithm.Sha512, chainCode, input);\n\n return { keyData: digest.subarray(0, 32), chainCode: digest.subarray(32) };\n}\n\n/**\n * @param {Uint8Array} seed\n * @returns {Promise<{ keyData: Uint8Array; chainCode: Uint8Array }>}\n */\nexport async function fromSeed(seed) {\n const digest = await hmac.hash(\n hmac.HashAlgorithm.Sha512,\n \"ed25519 seed\",\n seed,\n );\n\n return { keyData: digest.subarray(0, 32), chainCode: digest.subarray(32) };\n}\n","import BadKeyError from \"./BadKeyError.js\";\nimport Ed25519PublicKey from \"./Ed25519PublicKey.js\";\nimport nacl from \"tweetnacl\";\nimport * as hex from \"./encoding/hex.js\";\nimport * as random from \"./primitive/random.js\";\nimport * as slip10 from \"./primitive/slip10.js\";\n\nexport const derPrefix = \"302e020100300506032b657004220420\";\nexport const derPrefixBytes = hex.decode(derPrefix);\n\nexport default class Ed25519PrivateKey {\n /**\n * @hideconstructor\n * @internal\n * @param {nacl.SignKeyPair | Uint8Array} keyPair\n * @param {Uint8Array=} chainCode\n */\n constructor(keyPair, chainCode) {\n /**\n * @type {nacl.SignKeyPair}\n * @readonly\n * @private\n */\n this._keyPair =\n keyPair instanceof Uint8Array\n ? nacl.sign.keyPair.fromSeed(keyPair)\n : keyPair;\n\n /**\n * @type {?Uint8Array}\n * @readonly\n */\n this._chainCode = chainCode != null ? chainCode : null;\n }\n\n /**\n * @returns {string}\n */\n get _type() {\n return \"ED25519\";\n }\n\n /**\n * Generate a random Ed25519 private key.\n * @returns {Ed25519PrivateKey}\n */\n static generate() {\n // 32 bytes for the secret key\n // 32 bytes for the chain code (to support derivation)\n const entropy = random.bytes(64);\n\n return new Ed25519PrivateKey(\n nacl.sign.keyPair.fromSeed(entropy.subarray(0, 32)),\n entropy.subarray(32),\n );\n }\n\n /**\n * Generate a random Ed25519 private key.\n * @returns {Promise}\n */\n static async generateAsync() {\n // 32 bytes for the secret key\n // 32 bytes for the chain code (to support derivation)\n const entropy = await random.bytesAsync(64);\n\n return new Ed25519PrivateKey(\n nacl.sign.keyPair.fromSeed(entropy.subarray(0, 32)),\n entropy.subarray(32),\n );\n }\n\n /**\n * Construct a private key from bytes.\n * @param {Uint8Array} data\n * @returns {Ed25519PrivateKey}\n */\n static fromBytes(data) {\n switch (data.length) {\n case 48:\n return Ed25519PrivateKey.fromBytesDer(data);\n case 32:\n case 64:\n return Ed25519PrivateKey.fromBytesRaw(data);\n default:\n throw new BadKeyError(\n `invalid private key length: ${data.length} bytes`,\n );\n }\n }\n\n /**\n * Construct a private key from bytes with DER header.\n * @param {Uint8Array} data\n * @returns {Ed25519PrivateKey}\n */\n static fromBytesDer(data) {\n /** * @type {Uint8Array} */\n let privateKey;\n try {\n const arr = new Uint8Array(data);\n const header = arr.subarray(0, data.length - 32);\n const isValidED25519 = header.every((byte, index) => {\n return derPrefixBytes[index] === byte;\n });\n\n if (!isValidED25519) {\n throw new BadKeyError(\n `invalid DER prefix for ED25519 private key`,\n );\n }\n\n privateKey = arr.slice(data.length - 32);\n } catch (error) {\n const message =\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n error != null && /** @type {Error} */ (error).message != null\n ? // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n /** @type {Error} */ (error).message\n : \"\";\n throw new BadKeyError(\n `cannot decode ED25519 private key data from DER format: ${message}`,\n );\n }\n\n const keyPair = nacl.sign.keyPair.fromSeed(privateKey);\n return new Ed25519PrivateKey(keyPair);\n }\n\n /**\n * Construct a private key from bytes without DER header.\n * @param {Uint8Array} data\n * @returns {Ed25519PrivateKey}\n */\n static fromBytesRaw(data) {\n switch (data.length) {\n case 32:\n return new Ed25519PrivateKey(nacl.sign.keyPair.fromSeed(data));\n\n case 64:\n // priv + pub key\n return new Ed25519PrivateKey(\n nacl.sign.keyPair.fromSecretKey(data),\n );\n\n default:\n }\n\n throw new BadKeyError(\n `invalid private key length: ${data.length} bytes`,\n );\n }\n\n /**\n * Construct a private key from a hex-encoded string.\n * @param {string} text\n * @returns {Ed25519PrivateKey}\n */\n static fromString(text) {\n return Ed25519PrivateKey.fromBytes(hex.decode(text));\n }\n\n /**\n * Construct a private key from a hex-encoded string.\n * @param {string} text\n * @returns {Ed25519PrivateKey}\n */\n static fromStringDer(text) {\n return Ed25519PrivateKey.fromBytesDer(hex.decode(text));\n }\n\n /**\n * Construct a private key from a hex-encoded string.\n * @param {string} text\n * @returns {Ed25519PrivateKey}\n */\n static fromStringRaw(text) {\n return Ed25519PrivateKey.fromBytesRaw(hex.decode(text));\n }\n\n /**\n * Construct a ED25519 private key from a Uint8Array seed.\n * @param {Uint8Array} seed\n * @returns {Promise}\n */\n static async fromSeed(seed) {\n const { keyData, chainCode } = await slip10.fromSeed(seed);\n return new Ed25519PrivateKey(keyData, chainCode);\n }\n\n /**\n * Get the public key associated with this private key.\n *\n * The public key can be freely given and used by other parties to verify\n * the signatures generated by this private key.\n * @returns {Ed25519PublicKey}\n */\n get publicKey() {\n return new Ed25519PublicKey(this._keyPair.publicKey);\n }\n\n /**\n * Sign a message with this private key.\n * @param {Uint8Array} bytes\n * @returns {Uint8Array} - The signature bytes without the message\n */\n sign(bytes) {\n return nacl.sign.detached(bytes, this._keyPair.secretKey);\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytesDer() {\n const bytes = new Uint8Array(derPrefixBytes.length + 32);\n const privateKey = this._keyPair.secretKey.subarray(0, 32);\n const leadingZeroes = 32 - privateKey.length;\n const privateKeyOffset = derPrefixBytes.length + leadingZeroes;\n\n bytes.set(derPrefixBytes, 0);\n bytes.set(privateKey, privateKeyOffset);\n\n return bytes;\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytesRaw() {\n // copy the bytes so they can't be modified accidentally\n return this._keyPair.secretKey.slice(0, 32);\n }\n}\n","// Originally sourced from:\n// https://github.com/MaiaVictor/eth-lib/blob/da0971f5b09964d9c8449975fa87933f0c9fef35/src/hash.js\n// - added type declarations\n// - switched to es6 module syntax\n//\n// Disable linting for entire file because it's nearly all pure JS\n// eslint-disable\n\nconst HEX_CHARS = \"0123456789abcdef\".split(\"\");\nconst KECCAK_PADDING = [1, 256, 65536, 16777216];\nconst SHIFT = [0, 8, 16, 24];\nconst RC = [\n 1, 0, 32898, 0, 32906, 2147483648, 2147516416, 2147483648, 32907, 0,\n 2147483649, 0, 2147516545, 2147483648, 32777, 2147483648, 138, 0, 136, 0,\n 2147516425, 0, 2147483658, 0, 2147516555, 0, 139, 2147483648, 32905,\n 2147483648, 32771, 2147483648, 32770, 2147483648, 128, 2147483648, 32778, 0,\n 2147483658, 2147483648, 2147516545, 2147483648, 32896, 2147483648,\n 2147483649, 0, 2147516424, 2147483648,\n];\n\n/**\n * @typedef {object} KeccakT\n * @property {number[]} blocks\n * @property {number} blockCount\n * @property {number} outputBlocks\n * @property {number[]} s\n * @property {number} start\n * @property {number} block\n * @property {boolean} reset\n * @property {number=} lastByteIndex\n */\n\n/** @type {(bits: number) => KeccakT} */\nconst Keccak = (bits) => ({\n blocks: [],\n reset: true,\n block: 0,\n start: 0,\n blockCount: (1600 - (bits << 1)) >> 5,\n outputBlocks: bits >> 5,\n // @ts-ignore\n s: ((s) => [].concat(s, s, s, s, s))([0, 0, 0, 0, 0, 0, 0, 0, 0, 0]),\n});\n\n/** @type {(state: KeccakT, message: string | number[]) => string} */\nconst update = (state, /** @type {string | number[]} */ message) => {\n var length = message.length,\n blocks = state.blocks,\n byteCount = state.blockCount << 2,\n blockCount = state.blockCount,\n outputBlocks = state.outputBlocks,\n s = state.s,\n index = 0,\n i,\n code;\n\n // update\n while (index < length) {\n if (state.reset) {\n state.reset = false;\n blocks[0] = state.block;\n for (i = 1; i < blockCount + 1; ++i) {\n blocks[i] = 0;\n }\n }\n if (typeof message !== \"string\") {\n for (i = state.start; index < length && i < byteCount; ++index) {\n blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];\n }\n } else {\n for (i = state.start; index < length && i < byteCount; ++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] |=\n (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else {\n code =\n 0x10000 +\n (((code & 0x3ff) << 10) |\n (message.charCodeAt(++index) & 0x3ff));\n blocks[i >> 2] |= (0xf0 | (code >> 18)) << SHIFT[i++ & 3];\n blocks[i >> 2] |=\n (0x80 | ((code >> 12) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |=\n (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n }\n }\n }\n state.lastByteIndex = i;\n if (i >= byteCount) {\n state.start = i - byteCount;\n state.block = blocks[blockCount];\n for (i = 0; i < blockCount; ++i) {\n s[i] ^= blocks[i];\n }\n f(s);\n state.reset = true;\n } else {\n state.start = i;\n }\n }\n\n // finalize\n i = state.lastByteIndex;\n // @ts-ignore\n blocks[i >> 2] |= KECCAK_PADDING[i & 3];\n if (state.lastByteIndex === byteCount) {\n blocks[0] = blocks[blockCount];\n for (i = 1; i < blockCount + 1; ++i) {\n blocks[i] = 0;\n }\n }\n blocks[blockCount - 1] |= 0x80000000;\n for (i = 0; i < blockCount; ++i) {\n s[i] ^= blocks[i];\n }\n f(s);\n\n // toString\n var hex = \"\";\n var block;\n var j = 0;\n i = 0;\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n block = s[i];\n hex +=\n HEX_CHARS[(block >> 4) & 0x0f] +\n HEX_CHARS[block & 0x0f] +\n HEX_CHARS[(block >> 12) & 0x0f] +\n HEX_CHARS[(block >> 8) & 0x0f] +\n HEX_CHARS[(block >> 20) & 0x0f] +\n HEX_CHARS[(block >> 16) & 0x0f] +\n HEX_CHARS[(block >> 28) & 0x0f] +\n HEX_CHARS[(block >> 24) & 0x0f];\n }\n if (j % blockCount === 0) {\n f(s);\n i = 0;\n }\n }\n // @ts-ignore\n return \"0x\" + hex;\n};\n\n/** @type {(s: number[]) => void} */\nconst f = (s) => {\n var h,\n l,\n n,\n c0,\n c1,\n c2,\n c3,\n c4,\n c5,\n c6,\n c7,\n c8,\n c9,\n b0,\n b1,\n b2,\n b3,\n b4,\n b5,\n b6,\n b7,\n b8,\n b9,\n b10,\n b11,\n b12,\n b13,\n b14,\n b15,\n b16,\n b17,\n b18,\n b19,\n b20,\n b21,\n b22,\n b23,\n b24,\n b25,\n b26,\n b27,\n b28,\n b29,\n b30,\n b31,\n b32,\n b33,\n b34,\n b35,\n b36,\n b37,\n b38,\n b39,\n b40,\n b41,\n b42,\n b43,\n b44,\n b45,\n b46,\n b47,\n b48,\n b49;\n\n for (n = 0; n < 48; n += 2) {\n c0 = s[0] ^ s[10] ^ s[20] ^ s[30] ^ s[40];\n c1 = s[1] ^ s[11] ^ s[21] ^ s[31] ^ s[41];\n c2 = s[2] ^ s[12] ^ s[22] ^ s[32] ^ s[42];\n c3 = s[3] ^ s[13] ^ s[23] ^ s[33] ^ s[43];\n c4 = s[4] ^ s[14] ^ s[24] ^ s[34] ^ s[44];\n c5 = s[5] ^ s[15] ^ s[25] ^ s[35] ^ s[45];\n c6 = s[6] ^ s[16] ^ s[26] ^ s[36] ^ s[46];\n c7 = s[7] ^ s[17] ^ s[27] ^ s[37] ^ s[47];\n c8 = s[8] ^ s[18] ^ s[28] ^ s[38] ^ s[48];\n c9 = s[9] ^ s[19] ^ s[29] ^ s[39] ^ s[49];\n\n h = c8 ^ ((c2 << 1) | (c3 >>> 31));\n l = c9 ^ ((c3 << 1) | (c2 >>> 31));\n s[0] ^= h;\n s[1] ^= l;\n s[10] ^= h;\n s[11] ^= l;\n s[20] ^= h;\n s[21] ^= l;\n s[30] ^= h;\n s[31] ^= l;\n s[40] ^= h;\n s[41] ^= l;\n h = c0 ^ ((c4 << 1) | (c5 >>> 31));\n l = c1 ^ ((c5 << 1) | (c4 >>> 31));\n s[2] ^= h;\n s[3] ^= l;\n s[12] ^= h;\n s[13] ^= l;\n s[22] ^= h;\n s[23] ^= l;\n s[32] ^= h;\n s[33] ^= l;\n s[42] ^= h;\n s[43] ^= l;\n h = c2 ^ ((c6 << 1) | (c7 >>> 31));\n l = c3 ^ ((c7 << 1) | (c6 >>> 31));\n s[4] ^= h;\n s[5] ^= l;\n s[14] ^= h;\n s[15] ^= l;\n s[24] ^= h;\n s[25] ^= l;\n s[34] ^= h;\n s[35] ^= l;\n s[44] ^= h;\n s[45] ^= l;\n h = c4 ^ ((c8 << 1) | (c9 >>> 31));\n l = c5 ^ ((c9 << 1) | (c8 >>> 31));\n s[6] ^= h;\n s[7] ^= l;\n s[16] ^= h;\n s[17] ^= l;\n s[26] ^= h;\n s[27] ^= l;\n s[36] ^= h;\n s[37] ^= l;\n s[46] ^= h;\n s[47] ^= l;\n h = c6 ^ ((c0 << 1) | (c1 >>> 31));\n l = c7 ^ ((c1 << 1) | (c0 >>> 31));\n s[8] ^= h;\n s[9] ^= l;\n s[18] ^= h;\n s[19] ^= l;\n s[28] ^= h;\n s[29] ^= l;\n s[38] ^= h;\n s[39] ^= l;\n s[48] ^= h;\n s[49] ^= l;\n\n b0 = s[0];\n b1 = s[1];\n b32 = (s[11] << 4) | (s[10] >>> 28);\n b33 = (s[10] << 4) | (s[11] >>> 28);\n b14 = (s[20] << 3) | (s[21] >>> 29);\n b15 = (s[21] << 3) | (s[20] >>> 29);\n b46 = (s[31] << 9) | (s[30] >>> 23);\n b47 = (s[30] << 9) | (s[31] >>> 23);\n b28 = (s[40] << 18) | (s[41] >>> 14);\n b29 = (s[41] << 18) | (s[40] >>> 14);\n b20 = (s[2] << 1) | (s[3] >>> 31);\n b21 = (s[3] << 1) | (s[2] >>> 31);\n b2 = (s[13] << 12) | (s[12] >>> 20);\n b3 = (s[12] << 12) | (s[13] >>> 20);\n b34 = (s[22] << 10) | (s[23] >>> 22);\n b35 = (s[23] << 10) | (s[22] >>> 22);\n b16 = (s[33] << 13) | (s[32] >>> 19);\n b17 = (s[32] << 13) | (s[33] >>> 19);\n b48 = (s[42] << 2) | (s[43] >>> 30);\n b49 = (s[43] << 2) | (s[42] >>> 30);\n b40 = (s[5] << 30) | (s[4] >>> 2);\n b41 = (s[4] << 30) | (s[5] >>> 2);\n b22 = (s[14] << 6) | (s[15] >>> 26);\n b23 = (s[15] << 6) | (s[14] >>> 26);\n b4 = (s[25] << 11) | (s[24] >>> 21);\n b5 = (s[24] << 11) | (s[25] >>> 21);\n b36 = (s[34] << 15) | (s[35] >>> 17);\n b37 = (s[35] << 15) | (s[34] >>> 17);\n b18 = (s[45] << 29) | (s[44] >>> 3);\n b19 = (s[44] << 29) | (s[45] >>> 3);\n b10 = (s[6] << 28) | (s[7] >>> 4);\n b11 = (s[7] << 28) | (s[6] >>> 4);\n b42 = (s[17] << 23) | (s[16] >>> 9);\n b43 = (s[16] << 23) | (s[17] >>> 9);\n b24 = (s[26] << 25) | (s[27] >>> 7);\n b25 = (s[27] << 25) | (s[26] >>> 7);\n b6 = (s[36] << 21) | (s[37] >>> 11);\n b7 = (s[37] << 21) | (s[36] >>> 11);\n b38 = (s[47] << 24) | (s[46] >>> 8);\n b39 = (s[46] << 24) | (s[47] >>> 8);\n b30 = (s[8] << 27) | (s[9] >>> 5);\n b31 = (s[9] << 27) | (s[8] >>> 5);\n b12 = (s[18] << 20) | (s[19] >>> 12);\n b13 = (s[19] << 20) | (s[18] >>> 12);\n b44 = (s[29] << 7) | (s[28] >>> 25);\n b45 = (s[28] << 7) | (s[29] >>> 25);\n b26 = (s[38] << 8) | (s[39] >>> 24);\n b27 = (s[39] << 8) | (s[38] >>> 24);\n b8 = (s[48] << 14) | (s[49] >>> 18);\n b9 = (s[49] << 14) | (s[48] >>> 18);\n\n s[0] = b0 ^ (~b2 & b4);\n s[1] = b1 ^ (~b3 & b5);\n s[10] = b10 ^ (~b12 & b14);\n s[11] = b11 ^ (~b13 & b15);\n s[20] = b20 ^ (~b22 & b24);\n s[21] = b21 ^ (~b23 & b25);\n s[30] = b30 ^ (~b32 & b34);\n s[31] = b31 ^ (~b33 & b35);\n s[40] = b40 ^ (~b42 & b44);\n s[41] = b41 ^ (~b43 & b45);\n s[2] = b2 ^ (~b4 & b6);\n s[3] = b3 ^ (~b5 & b7);\n s[12] = b12 ^ (~b14 & b16);\n s[13] = b13 ^ (~b15 & b17);\n s[22] = b22 ^ (~b24 & b26);\n s[23] = b23 ^ (~b25 & b27);\n s[32] = b32 ^ (~b34 & b36);\n s[33] = b33 ^ (~b35 & b37);\n s[42] = b42 ^ (~b44 & b46);\n s[43] = b43 ^ (~b45 & b47);\n s[4] = b4 ^ (~b6 & b8);\n s[5] = b5 ^ (~b7 & b9);\n s[14] = b14 ^ (~b16 & b18);\n s[15] = b15 ^ (~b17 & b19);\n s[24] = b24 ^ (~b26 & b28);\n s[25] = b25 ^ (~b27 & b29);\n s[34] = b34 ^ (~b36 & b38);\n s[35] = b35 ^ (~b37 & b39);\n s[44] = b44 ^ (~b46 & b48);\n s[45] = b45 ^ (~b47 & b49);\n s[6] = b6 ^ (~b8 & b0);\n s[7] = b7 ^ (~b9 & b1);\n s[16] = b16 ^ (~b18 & b10);\n s[17] = b17 ^ (~b19 & b11);\n s[26] = b26 ^ (~b28 & b20);\n s[27] = b27 ^ (~b29 & b21);\n s[36] = b36 ^ (~b38 & b30);\n s[37] = b37 ^ (~b39 & b31);\n s[46] = b46 ^ (~b48 & b40);\n s[47] = b47 ^ (~b49 & b41);\n s[8] = b8 ^ (~b0 & b2);\n s[9] = b9 ^ (~b1 & b3);\n s[18] = b18 ^ (~b10 & b12);\n s[19] = b19 ^ (~b11 & b13);\n s[28] = b28 ^ (~b20 & b22);\n s[29] = b29 ^ (~b21 & b23);\n s[38] = b38 ^ (~b30 & b32);\n s[39] = b39 ^ (~b31 & b33);\n s[48] = b48 ^ (~b40 & b42);\n s[49] = b49 ^ (~b41 & b43);\n\n s[0] ^= RC[n];\n s[1] ^= RC[n + 1];\n }\n};\n\nconst keccak = (/** @type {number} */ bits) => (/** @type {string} */ str) => {\n var msg;\n if (str.slice(0, 2) === \"0x\") {\n msg = [];\n for (var i = 2, l = str.length; i < l; i += 2)\n msg.push(parseInt(str.slice(i, i + 2), 16));\n } else {\n msg = str;\n }\n // @ts-ignore\n return update(Keccak(bits), msg);\n};\n\n/**\n * @type {(message: string) => string}\n */\nexport const keccak256 = keccak(256);\n","/**\n * Byte comparison utility\n * @param {Uint8Array} a\n * @param {Uint8Array} b\n * @returns {boolean}\n */\nexport function equalBytes(a, b) {\n if (a.length !== b.length) {\n return false;\n }\n\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n}\n","import { keccak256 } from \"./keccak.js\";\nimport * as hex from \"../encoding/hex.js\";\nimport { secp256k1 } from \"@noble/curves/secp256k1\";\nimport { equalBytes } from \"./utils.js\";\n\n/**\n * @typedef {import(\"../EcdsaPrivateKey.js\").KeyPair} KeyPair\n */\n\n/**\n * @returns {KeyPair}\n */\nexport function generate() {\n const privateKey = secp256k1.utils.randomPrivateKey();\n const publicKey = secp256k1.getPublicKey(privateKey, true);\n\n return {\n privateKey,\n publicKey,\n };\n}\n\n/**\n * @returns {Promise}\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport async function generateAsync() {\n return Promise.resolve(generate());\n}\n\n/**\n * @param {Uint8Array} data\n * @returns {KeyPair}\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function fromBytes(data) {\n const privateKey = new Uint8Array(data);\n const publicKey = secp256k1.getPublicKey(privateKey, true);\n\n return {\n privateKey: privateKey,\n publicKey: publicKey,\n };\n}\n\n/**\n * @param {Uint8Array} data\n * @returns {Uint8Array}\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function getFullPublicKey(data) {\n return secp256k1.getPublicKey(data, false);\n}\n\n/**\n * @param {Uint8Array} keydata\n * @param {Uint8Array} message\n * @returns {Uint8Array}\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function sign(keydata, message) {\n const msg = hex.encode(message);\n const data = hex.decode(keccak256(`0x${msg}`));\n const signature = secp256k1.sign(data, keydata);\n\n return signature.toCompactRawBytes();\n}\n\n/**\n * @param {Uint8Array} keydata\n * @param {Uint8Array} message\n * @param {Uint8Array} signature\n * @returns {boolean}\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function verify(keydata, message, signature) {\n const msg = hex.encode(message);\n const data = hex.decode(keccak256(`0x${msg}`));\n\n const r = BigInt(\"0x\" + hex.encode(signature.subarray(0, 32)));\n const s = BigInt(\"0x\" + hex.encode(signature.subarray(32, 64)));\n\n return secp256k1.verify({ r, s }, data, keydata);\n}\n\n/**\n * @param {Uint8Array} privateKey\n * @param {Uint8Array} signature - 64-byte compact signature (r || s)\n * @param {Uint8Array} message - Original message (not hashed)\n * @returns {number} Recovery ID (0–3), or -1\n */\nexport function getRecoveryId(privateKey, signature, message) {\n const expectedPubKey = secp256k1.getPublicKey(privateKey, false);\n const hash = hex.decode(keccak256(`0x${hex.encode(message)}`));\n\n for (let recovery = 0; recovery < 4; recovery++) {\n try {\n const sig =\n secp256k1.Signature.fromCompact(signature).addRecoveryBit(\n recovery,\n );\n\n const recovered = sig.recoverPublicKey(hash).toRawBytes(false);\n\n if (equalBytes(recovered, expectedPubKey)) {\n return recovery;\n }\n } catch {\n // Ignore invalid recoveries\n }\n }\n\n throw new Error(\"Unexpected error: could not construct a recoverable key.\");\n}\n","import { secp256k1 } from \"@noble/curves/secp256k1\";\nimport Key from \"./Key.js\";\nimport BadKeyError from \"./BadKeyError.js\";\nimport { arrayEqual } from \"./util/array.js\";\nimport * as hex from \"./encoding/hex.js\";\nimport * as ecdsa from \"./primitive/ecdsa.js\";\nimport { keccak256 } from \"./primitive/keccak.js\";\n\nconst legacyDerPrefix = \"302d300706052b8104000a032200\";\nconst legacyDerPrefixBytes = hex.decode(legacyDerPrefix);\n\nconst derPrefix = \"3036301006072a8648ce3d020106052b8104000a032200\";\nconst derPrefixBytes = hex.decode(derPrefix);\n\n/**\n * A public key on the Hedera™ network.\n */\nexport default class EcdsaPublicKey extends Key {\n /**\n * @internal\n * @hideconstructor\n * @param {Uint8Array} keyData\n */\n constructor(keyData) {\n super();\n\n /**\n * @type {Uint8Array}\n * @private\n * @readonly\n */\n this._keyData = keyData;\n }\n\n /**\n * @returns {string}\n */\n get _type() {\n return \"secp256k1\";\n }\n\n /**\n * @param {Uint8Array} data\n * @returns {EcdsaPublicKey}\n */\n static fromBytes(data) {\n switch (data.length) {\n case 33:\n return EcdsaPublicKey.fromBytesRaw(data);\n default:\n return EcdsaPublicKey.fromBytesDer(data);\n }\n }\n\n /**\n * @param {Uint8Array} data\n * @returns {EcdsaPublicKey}\n */\n static fromBytesDer(data) {\n let ecdsaPublicKeyBytes;\n\n switch (data.length) {\n case 47: // Legacy DER prefix\n ecdsaPublicKeyBytes = data.subarray(\n legacyDerPrefixBytes.length,\n );\n break;\n case 56: // Standard DER prefix\n ecdsaPublicKeyBytes = data.subarray(\n derPrefixBytes.length,\n derPrefixBytes.length + 33,\n );\n break;\n default: // Uncompressed DER public keys\n try {\n const keyPair = secp256k1.ProjectivePoint.fromHex(\n data.subarray(derPrefixBytes.length),\n );\n ecdsaPublicKeyBytes = keyPair.toRawBytes(true); // Compressed format\n } catch (error) {\n throw new BadKeyError(\n `cannot decode ECDSA public key from this DER format`,\n );\n }\n break;\n }\n\n if (!ecdsaPublicKeyBytes || ecdsaPublicKeyBytes.length === 0) {\n throw new BadKeyError(\n `cannot decode ECDSA public key from this DER format`,\n );\n }\n return new EcdsaPublicKey(ecdsaPublicKeyBytes);\n }\n\n /**\n * @param {Uint8Array} data\n * @returns {EcdsaPublicKey}\n */\n static fromBytesRaw(data) {\n if (data.length !== 33) {\n throw new BadKeyError(\n `invalid public key length: ${data.length} bytes`,\n );\n }\n return new EcdsaPublicKey(data);\n }\n\n /**\n * Parse a public key from a hexadecimal string.\n *\n * The public key may optionally be prefixed with\n * the DER header.\n * @param {string} text\n * @returns {EcdsaPublicKey}\n */\n static fromString(text) {\n return EcdsaPublicKey.fromBytes(hex.decode(text));\n }\n\n /**\n * Verify a signature on a message with this public key.\n * @param {Uint8Array} message\n * @param {Uint8Array} signature\n * @returns {boolean}\n */\n verify(message, signature) {\n return ecdsa.verify(this._keyData, message, signature);\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytesDer() {\n const bytes = new Uint8Array(\n legacyDerPrefixBytes.length + this._keyData.length,\n );\n\n bytes.set(legacyDerPrefixBytes, 0);\n bytes.set(this._keyData, legacyDerPrefixBytes.length);\n\n return bytes;\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytesRaw() {\n return new Uint8Array(this._keyData.subarray());\n }\n\n /**\n * @returns {string}\n */\n toEthereumAddress() {\n const publicKey = secp256k1.ProjectivePoint.fromHex(\n this._keyData,\n ).toRawBytes(false);\n const hash = hex.decode(\n keccak256(`0x${hex.encode(publicKey.subarray(1))}`),\n );\n return hex.encode(hash.subarray(12));\n }\n\n /**\n * @param {EcdsaPublicKey} other\n * @returns {boolean}\n */\n equals(other) {\n return arrayEqual(this._keyData, other._keyData);\n }\n}\n","import EcdsaPublicKey from \"./EcdsaPublicKey.js\";\nimport * as hex from \"./encoding/hex.js\";\nimport * as ecdsa from \"./primitive/ecdsa.js\";\nimport * as bip32 from \"./primitive/bip32.js\";\nimport { arrayStartsWith } from \"./util/array.js\";\n\nconst derPrefix = \"3030020100300706052b8104000a04220420\";\nconst derPrefixBytes = hex.decode(derPrefix);\n\nconst derPrefix2 = \"30540201010420\";\nconst derPrefixBytes2 = hex.decode(derPrefix2);\n\n/**\n * @typedef {object} KeyPair\n * @property {Uint8Array} publicKey\n * @property {Uint8Array} privateKey\n */\n\nexport default class EcdsaPrivateKey {\n /**\n * @hideconstructor\n * @internal\n * @param {KeyPair} keyPair\n * @param {(Uint8Array)=} chainCode\n */\n constructor(keyPair, chainCode) {\n /**\n * @type {KeyPair}\n * @readonly\n * @private\n */\n this._keyPair = keyPair;\n\n /**\n * @type {?Uint8Array}\n * @readonly\n */\n this._chainCode = chainCode != null ? chainCode : null;\n }\n\n /**\n * @returns {string}\n */\n get _type() {\n return \"secp256k1\";\n }\n\n /**\n * Generate a random ECDSA private key.\n * @returns {EcdsaPrivateKey}\n */\n static generate() {\n return new EcdsaPrivateKey(ecdsa.generate());\n }\n\n /**\n * Generate a random Ed25519 private key.\n * @returns {Promise}\n */\n static async generateAsync() {\n return new EcdsaPrivateKey(await ecdsa.generateAsync());\n }\n\n /**\n * Construct a private key from bytes.\n * @param {Uint8Array} data\n * @returns {EcdsaPrivateKey}\n */\n static fromBytes(data) {\n switch (data.length) {\n case 32:\n return EcdsaPrivateKey.fromBytesRaw(data);\n default:\n return EcdsaPrivateKey.fromBytesDer(data);\n }\n }\n\n /**\n * Construct a private key from bytes.\n * @param {Uint8Array} data\n * @returns {EcdsaPrivateKey}\n */\n static fromBytesDer(data) {\n /** @type {Uint8Array} */\n let ecdsaPrivateKeyBytes = new Uint8Array();\n\n if (arrayStartsWith(data, derPrefixBytes)) {\n ecdsaPrivateKeyBytes = data.subarray(derPrefixBytes.length);\n } else {\n // For now, we assume that if we get to the `else` statement\n // the lengths of all other bytePrefixes is equal, so we treat them equally\n ecdsaPrivateKeyBytes = data.subarray(\n derPrefixBytes2.length,\n derPrefixBytes2.length + 32,\n );\n }\n\n return new EcdsaPrivateKey(ecdsa.fromBytes(ecdsaPrivateKeyBytes));\n }\n\n /**\n * Construct a private key from bytes.\n * @param {Uint8Array} data\n * @returns {EcdsaPrivateKey}\n */\n static fromBytesRaw(data) {\n return new EcdsaPrivateKey(ecdsa.fromBytes(data));\n }\n\n /**\n * Construct a private key from a hex-encoded string.\n * @param {string} text\n * @returns {EcdsaPrivateKey}\n */\n static fromString(text) {\n return EcdsaPrivateKey.fromBytes(hex.decode(text));\n }\n\n /**\n * Construct a private key from a hex-encoded string.\n * @param {string} text\n * @returns {EcdsaPrivateKey}\n */\n static fromStringDer(text) {\n return EcdsaPrivateKey.fromBytesDer(hex.decode(text));\n }\n\n /**\n * Construct a private key from a hex-encoded string.\n * @param {string} text\n * @returns {EcdsaPrivateKey}\n */\n static fromStringRaw(text) {\n return EcdsaPrivateKey.fromBytesRaw(hex.decode(text));\n }\n\n /**\n * Construct a ECDSA private key from a Uint8Array seed.\n * @param {Uint8Array} seed\n * @returns {Promise}\n */\n static async fromSeed(seed) {\n const { keyData, chainCode } = await bip32.fromSeed(seed);\n return new EcdsaPrivateKey(ecdsa.fromBytes(keyData), chainCode);\n }\n\n /**\n * Get the public key associated with this private key.\n *\n * The public key can be freely given and used by other parties to verify\n * the signatures generated by this private key.\n * @returns {EcdsaPublicKey}\n */\n get publicKey() {\n return new EcdsaPublicKey(this._keyPair.publicKey);\n }\n\n /**\n * Sign a message with this private key.\n * @param {Uint8Array} bytes\n * @returns {Uint8Array} - The signature bytes without the message\n */\n sign(bytes) {\n return ecdsa.sign(this._keyPair.privateKey, bytes);\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytesDer() {\n const bytes = new Uint8Array(derPrefixBytes.length + 32);\n const privateKey = this._keyPair.privateKey.subarray(0, 32);\n const leadingZeroes = 32 - privateKey.length;\n const privateKeyOffset = derPrefixBytes.length + leadingZeroes;\n bytes.set(derPrefixBytes, 0);\n bytes.set(privateKey, privateKeyOffset);\n return bytes;\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytesRaw() {\n const privateKey = this._keyPair.privateKey.subarray(-32); // Takes the last 32 bytes (or fewer if shorter)\n const leadingZeroes = 32 - privateKey.length;\n const bytes = new Uint8Array(32);\n bytes.set(privateKey, leadingZeroes);\n return bytes;\n }\n\n /**\n * Recover the recovery ID used in the signature for the given message.\n * @param {Uint8Array} signature - 64-byte compact signature (r || s)\n * @param {Uint8Array} message - The original (unhashed) message\n * @returns {number} Recovery ID (0–3), or -1 if not found\n */\n getRecoveryId(signature, message) {\n return ecdsa.getRecoveryId(\n this._keyPair.privateKey,\n signature,\n message,\n );\n }\n}\n","import Key from \"./Key.js\";\nimport BadKeyError from \"./BadKeyError.js\";\nimport Ed25519PublicKey from \"./Ed25519PublicKey.js\";\nimport EcdsaPublicKey from \"./EcdsaPublicKey.js\";\nimport { arrayEqual } from \"./util/array.js\";\nimport * as hex from \"./encoding/hex.js\";\n\n/**\n * @typedef {import(\"./PrivateKey.js\").Transaction} Transaction\n */\n\n/**\n * An public key on the Hedera™ network.\n */\nexport default class PublicKey extends Key {\n /**\n * @internal\n * @hideconstructor\n * @param {Ed25519PublicKey | EcdsaPublicKey} key\n */\n constructor(key) {\n super();\n\n /**\n * @type {Ed25519PublicKey | EcdsaPublicKey}\n * @private\n * @readonly\n */\n this._key = key;\n }\n\n /**\n * @returns {string}\n */\n get _type() {\n return this._key._type;\n }\n\n /**\n * @param {Uint8Array} data\n * @returns {PublicKey}\n */\n static fromBytes(data) {\n let message;\n try {\n return new PublicKey(Ed25519PublicKey.fromBytes(data));\n } catch (error) {\n message =\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n error != null && /** @type {Error} */ (error).message != null\n ? // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n /** @type {Error} */ (error).message\n : \"\";\n }\n\n try {\n return new PublicKey(EcdsaPublicKey.fromBytes(data));\n } catch (error) {\n message =\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n error != null && /** @type {Error} */ (error).message != null\n ? // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n /** @type {Error} */ (error).message\n : \"\";\n }\n\n throw new BadKeyError(\n `public key cannot be decoded from bytes: ${message}`,\n );\n }\n\n /**\n * @param {Uint8Array} data\n * @returns {PublicKey}\n */\n static fromBytesED25519(data) {\n return new PublicKey(Ed25519PublicKey.fromBytes(data));\n }\n\n /**\n * @param {Uint8Array} data\n * @returns {PublicKey}\n */\n static fromBytesECDSA(data) {\n return new PublicKey(EcdsaPublicKey.fromBytes(data));\n }\n\n /**\n * Parse a public key from a string of hexadecimal digits.\n *\n * The public key may optionally be prefixed with\n * the DER header.\n * @param {string} text\n * @returns {PublicKey}\n */\n static fromString(text) {\n return PublicKey.fromBytes(hex.decode(text));\n }\n\n /**\n * @param {string} text\n * @returns {PublicKey}\n */\n static fromStringED25519(text) {\n return PublicKey.fromBytesED25519(hex.decode(text));\n }\n\n /**\n * @param {string} text\n * @returns {PublicKey}\n */\n static fromStringECDSA(text) {\n return PublicKey.fromBytesECDSA(hex.decode(text));\n }\n\n /**\n * Verify a signature on a message with this public key.\n * @param {Uint8Array} message\n * @param {Uint8Array} signature\n * @returns {boolean}\n */\n verify(message, signature) {\n return this._key.verify(message, signature);\n }\n\n /**\n * @deprecated - use `@hashgraph/sdk`.PublicKey instead\n * @param {Transaction} transaction\n * @returns {boolean}\n */\n verifyTransaction(transaction) {\n //NOSONAR\n console.log(\"Deprecated: use `@hashgraph/sdk`.PublicKey instead\");\n\n transaction._requireFrozen();\n\n if (!transaction.isFrozen()) {\n transaction.freeze();\n }\n\n for (const signedTransaction of transaction._signedTransactions) {\n if (\n signedTransaction.sigMap != null &&\n signedTransaction.sigMap.sigPair != null\n ) {\n let found = false;\n for (const sigPair of signedTransaction.sigMap.sigPair) {\n const pubKeyPrefix = /** @type {Uint8Array} */ (\n sigPair.pubKeyPrefix\n );\n if (arrayEqual(pubKeyPrefix, this.toBytesRaw())) {\n found = true;\n const bodyBytes = /** @type {Uint8Array} */ (\n signedTransaction.bodyBytes\n );\n const signature =\n sigPair.ed25519 != null\n ? sigPair.ed25519\n : /** @type {Uint8Array} */ (\n sigPair.ECDSASecp256k1\n );\n if (!this.verify(bodyBytes, signature)) {\n return false;\n }\n }\n }\n\n if (!found) {\n return false;\n }\n }\n }\n\n return true;\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytes() {\n if (this._key instanceof Ed25519PublicKey) {\n return this.toBytesRaw();\n } else {\n return this.toBytesDer();\n }\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytesDer() {\n return this._key.toBytesDer();\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytesRaw() {\n return this._key.toBytesRaw();\n }\n\n /**\n * @returns {string}\n */\n toString() {\n return this.toStringDer();\n }\n\n /**\n * @returns {string}\n */\n toStringDer() {\n return hex.encode(this.toBytesDer());\n }\n\n /**\n * @returns {string}\n */\n toStringRaw() {\n return hex.encode(this.toBytesRaw());\n }\n\n /**\n * @returns {string}\n */\n toEthereumAddress() {\n if (this._key instanceof EcdsaPublicKey) {\n return this._key.toEthereumAddress();\n } else {\n throw new Error(\"unsupported operation on Ed25519PublicKey\");\n }\n }\n\n /**\n * @param {PublicKey} other\n * @returns {boolean}\n */\n equals(other) {\n if (\n this._key instanceof Ed25519PublicKey &&\n other._key instanceof Ed25519PublicKey\n ) {\n return this._key.equals(other._key);\n } else if (\n this._key instanceof EcdsaPublicKey &&\n other._key instanceof EcdsaPublicKey\n ) {\n return this._key.equals(other._key);\n } else {\n return false;\n }\n }\n}\n","(function (factory) {\n if (typeof exports === 'object') {\n // Node/CommonJS\n module.exports = factory();\n } else if (typeof define === 'function' && define.amd) {\n // AMD\n define(factory);\n } else {\n // Browser globals (with support for web workers)\n var glob;\n\n try {\n glob = window;\n } catch (e) {\n glob = self;\n }\n\n glob.SparkMD5 = factory();\n }\n}(function (undefined) {\n\n 'use strict';\n\n /*\n * Fastest md5 implementation around (JKM md5).\n * Credits: Joseph Myers\n *\n * @see http://www.myersdaily.org/joseph/javascript/md5-text.html\n * @see http://jsperf.com/md5-shootout/7\n */\n\n /* this function is much faster,\n so if possible we use it. Some IEs\n are the only ones I know of that\n need the idiotic second function,\n generated by an if clause. */\n var add32 = function (a, b) {\n return (a + b) & 0xFFFFFFFF;\n },\n hex_chr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'];\n\n\n function cmn(q, a, b, x, s, t) {\n a = add32(add32(a, q), add32(x, t));\n return add32((a << s) | (a >>> (32 - s)), b);\n }\n\n function md5cycle(x, k) {\n var a = x[0],\n b = x[1],\n c = x[2],\n d = x[3];\n\n a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[10] - 42063 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n\n a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n\n a += (b ^ c ^ d) + k[5] - 378558 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n\n a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n b = (b << 21 |b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n b = (b << 21 |b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n b = (b << 21 |b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n\n x[0] = a + x[0] | 0;\n x[1] = b + x[1] | 0;\n x[2] = c + x[2] | 0;\n x[3] = d + x[3] | 0;\n }\n\n function md5blk(s) {\n var md5blks = [],\n i; /* Andy King said do it this way. */\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n }\n return md5blks;\n }\n\n function md5blk_array(a) {\n var md5blks = [],\n i; /* Andy King said do it this way. */\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n }\n return md5blks;\n }\n\n function md51(s) {\n var n = s.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\n s = s.substring(i - 64);\n length = s.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= s.charCodeAt(i) << ((i % 4) << 3);\n }\n tail[i >> 2] |= 0x80 << ((i % 4) << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n // Beware that the final length might not fit in 32 bits so we take care of that\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n\n tail[14] = lo;\n tail[15] = hi;\n\n md5cycle(state, tail);\n return state;\n }\n\n function md51_array(a) {\n var n = a.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n }\n\n // Not sure if it is a bug, however IE10 will always produce a sub array of length 1\n // containing the last element of the parent array if the sub array specified starts\n // beyond the length of the parent array - weird.\n // https://connect.microsoft.com/IE/feedback/details/771452/typed-array-subarray-issue\n a = (i - 64) < n ? a.subarray(i - 64) : new Uint8Array(0);\n\n length = a.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= a[i] << ((i % 4) << 3);\n }\n\n tail[i >> 2] |= 0x80 << ((i % 4) << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n // Beware that the final length might not fit in 32 bits so we take care of that\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n\n tail[14] = lo;\n tail[15] = hi;\n\n md5cycle(state, tail);\n\n return state;\n }\n\n function rhex(n) {\n var s = '',\n j;\n for (j = 0; j < 4; j += 1) {\n s += hex_chr[(n >> (j * 8 + 4)) & 0x0F] + hex_chr[(n >> (j * 8)) & 0x0F];\n }\n return s;\n }\n\n function hex(x) {\n var i;\n for (i = 0; i < x.length; i += 1) {\n x[i] = rhex(x[i]);\n }\n return x.join('');\n }\n\n // In some cases the fast add32 function cannot be used..\n if (hex(md51('hello')) !== '5d41402abc4b2a76b9719d911017c592') {\n add32 = function (x, y) {\n var lsw = (x & 0xFFFF) + (y & 0xFFFF),\n msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return (msw << 16) | (lsw & 0xFFFF);\n };\n }\n\n // ---------------------------------------------------\n\n /**\n * ArrayBuffer slice polyfill.\n *\n * @see https://github.com/ttaubert/node-arraybuffer-slice\n */\n\n if (typeof ArrayBuffer !== 'undefined' && !ArrayBuffer.prototype.slice) {\n (function () {\n function clamp(val, length) {\n val = (val | 0) || 0;\n\n if (val < 0) {\n return Math.max(val + length, 0);\n }\n\n return Math.min(val, length);\n }\n\n ArrayBuffer.prototype.slice = function (from, to) {\n var length = this.byteLength,\n begin = clamp(from, length),\n end = length,\n num,\n target,\n targetArray,\n sourceArray;\n\n if (to !== undefined) {\n end = clamp(to, length);\n }\n\n if (begin > end) {\n return new ArrayBuffer(0);\n }\n\n num = end - begin;\n target = new ArrayBuffer(num);\n targetArray = new Uint8Array(target);\n\n sourceArray = new Uint8Array(this, begin, num);\n targetArray.set(sourceArray);\n\n return target;\n };\n })();\n }\n\n // ---------------------------------------------------\n\n /**\n * Helpers.\n */\n\n function toUtf8(str) {\n if (/[\\u0080-\\uFFFF]/.test(str)) {\n str = unescape(encodeURIComponent(str));\n }\n\n return str;\n }\n\n function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n var length = str.length,\n buff = new ArrayBuffer(length),\n arr = new Uint8Array(buff),\n i;\n\n for (i = 0; i < length; i += 1) {\n arr[i] = str.charCodeAt(i);\n }\n\n return returnUInt8Array ? arr : buff;\n }\n\n function arrayBuffer2Utf8Str(buff) {\n return String.fromCharCode.apply(null, new Uint8Array(buff));\n }\n\n function concatenateArrayBuffers(first, second, returnUInt8Array) {\n var result = new Uint8Array(first.byteLength + second.byteLength);\n\n result.set(new Uint8Array(first));\n result.set(new Uint8Array(second), first.byteLength);\n\n return returnUInt8Array ? result : result.buffer;\n }\n\n function hexToBinaryString(hex) {\n var bytes = [],\n length = hex.length,\n x;\n\n for (x = 0; x < length - 1; x += 2) {\n bytes.push(parseInt(hex.substr(x, 2), 16));\n }\n\n return String.fromCharCode.apply(String, bytes);\n }\n\n // ---------------------------------------------------\n\n /**\n * SparkMD5 OOP implementation.\n *\n * Use this class to perform an incremental md5, otherwise use the\n * static methods instead.\n */\n\n function SparkMD5() {\n // call reset to init the instance\n this.reset();\n }\n\n /**\n * Appends a string.\n * A conversion will be applied if an utf8 string is detected.\n *\n * @param {String} str The string to be appended\n *\n * @return {SparkMD5} The instance itself\n */\n SparkMD5.prototype.append = function (str) {\n // Converts the string to utf8 bytes if necessary\n // Then append as binary\n this.appendBinary(toUtf8(str));\n\n return this;\n };\n\n /**\n * Appends a binary string.\n *\n * @param {String} contents The binary string to be appended\n *\n * @return {SparkMD5} The instance itself\n */\n SparkMD5.prototype.appendBinary = function (contents) {\n this._buff += contents;\n this._length += contents.length;\n\n var length = this._buff.length,\n i;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n }\n\n this._buff = this._buff.substring(i - 64);\n\n return this;\n };\n\n /**\n * Finishes the incremental computation, reseting the internal state and\n * returning the result.\n *\n * @param {Boolean} raw True to get the raw string, false to get the hex string\n *\n * @return {String} The result\n */\n SparkMD5.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n i,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff.charCodeAt(i) << ((i % 4) << 3);\n }\n\n this._finish(tail, length);\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n\n return ret;\n };\n\n /**\n * Resets the internal state of the computation.\n *\n * @return {SparkMD5} The instance itself\n */\n SparkMD5.prototype.reset = function () {\n this._buff = '';\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n\n return this;\n };\n\n /**\n * Gets the internal state of the computation.\n *\n * @return {Object} The state\n */\n SparkMD5.prototype.getState = function () {\n return {\n buff: this._buff,\n length: this._length,\n hash: this._hash.slice()\n };\n };\n\n /**\n * Gets the internal state of the computation.\n *\n * @param {Object} state The state\n *\n * @return {SparkMD5} The instance itself\n */\n SparkMD5.prototype.setState = function (state) {\n this._buff = state.buff;\n this._length = state.length;\n this._hash = state.hash;\n\n return this;\n };\n\n /**\n * Releases memory used by the incremental buffer and other additional\n * resources. If you plan to use the instance again, use reset instead.\n */\n SparkMD5.prototype.destroy = function () {\n delete this._hash;\n delete this._buff;\n delete this._length;\n };\n\n /**\n * Finish the final calculation based on the tail.\n *\n * @param {Array} tail The tail (will be modified)\n * @param {Number} length The length of the remaining buffer\n */\n SparkMD5.prototype._finish = function (tail, length) {\n var i = length,\n tmp,\n lo,\n hi;\n\n tail[i >> 2] |= 0x80 << ((i % 4) << 3);\n if (i > 55) {\n md5cycle(this._hash, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n // Do the final computation based on the tail and length\n // Beware that the final length may not fit in 32 bits so we take care of that\n tmp = this._length * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(this._hash, tail);\n };\n\n /**\n * Performs the md5 hash on a string.\n * A conversion will be applied if utf8 string is detected.\n *\n * @param {String} str The string\n * @param {Boolean} [raw] True to get the raw string, false to get the hex string\n *\n * @return {String} The result\n */\n SparkMD5.hash = function (str, raw) {\n // Converts the string to utf8 bytes if necessary\n // Then compute it using the binary function\n return SparkMD5.hashBinary(toUtf8(str), raw);\n };\n\n /**\n * Performs the md5 hash on a binary string.\n *\n * @param {String} content The binary string\n * @param {Boolean} [raw] True to get the raw string, false to get the hex string\n *\n * @return {String} The result\n */\n SparkMD5.hashBinary = function (content, raw) {\n var hash = md51(content),\n ret = hex(hash);\n\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n // ---------------------------------------------------\n\n /**\n * SparkMD5 OOP implementation for array buffers.\n *\n * Use this class to perform an incremental md5 ONLY for array buffers.\n */\n SparkMD5.ArrayBuffer = function () {\n // call reset to init the instance\n this.reset();\n };\n\n /**\n * Appends an array buffer.\n *\n * @param {ArrayBuffer} arr The array to be appended\n *\n * @return {SparkMD5.ArrayBuffer} The instance itself\n */\n SparkMD5.ArrayBuffer.prototype.append = function (arr) {\n var buff = concatenateArrayBuffers(this._buff.buffer, arr, true),\n length = buff.length,\n i;\n\n this._length += arr.byteLength;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n }\n\n this._buff = (i - 64) < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n\n return this;\n };\n\n /**\n * Finishes the incremental computation, reseting the internal state and\n * returning the result.\n *\n * @param {Boolean} raw True to get the raw string, false to get the hex string\n *\n * @return {String} The result\n */\n SparkMD5.ArrayBuffer.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n i,\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff[i] << ((i % 4) << 3);\n }\n\n this._finish(tail, length);\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n\n return ret;\n };\n\n /**\n * Resets the internal state of the computation.\n *\n * @return {SparkMD5.ArrayBuffer} The instance itself\n */\n SparkMD5.ArrayBuffer.prototype.reset = function () {\n this._buff = new Uint8Array(0);\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n\n return this;\n };\n\n /**\n * Gets the internal state of the computation.\n *\n * @return {Object} The state\n */\n SparkMD5.ArrayBuffer.prototype.getState = function () {\n var state = SparkMD5.prototype.getState.call(this);\n\n // Convert buffer to a string\n state.buff = arrayBuffer2Utf8Str(state.buff);\n\n return state;\n };\n\n /**\n * Gets the internal state of the computation.\n *\n * @param {Object} state The state\n *\n * @return {SparkMD5.ArrayBuffer} The instance itself\n */\n SparkMD5.ArrayBuffer.prototype.setState = function (state) {\n // Convert string to buffer\n state.buff = utf8Str2ArrayBuffer(state.buff, true);\n\n return SparkMD5.prototype.setState.call(this, state);\n };\n\n SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n\n SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n\n /**\n * Performs the md5 hash on an array buffer.\n *\n * @param {ArrayBuffer} arr The array buffer\n * @param {Boolean} [raw] True to get the raw string, false to get the hex one\n *\n * @return {String} The result\n */\n SparkMD5.ArrayBuffer.hash = function (arr, raw) {\n var hash = md51_array(new Uint8Array(arr)),\n ret = hex(hash);\n\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n return SparkMD5;\n}));\n","import * as hex from \"../encoding/hex.js\";\nimport * as utf8 from \"../encoding/utf8.js\";\nimport SparkMD5 from \"spark-md5\";\nimport { Buffer } from \"buffer\";\n\n// this will be executed in browser environment so we can use window.crypto\n/* eslint-disable n/no-unsupported-features/node-builtins */\n\nexport const CipherAlgorithm = {\n Aes128Ctr: \"AES-128-CTR\",\n Aes128Cbc: \"AES-128-CBC\",\n};\n\n/**\n * @param {string} algorithm\n * @param {Uint8Array} key\n * @param {Uint8Array} iv\n * @param {Uint8Array} data\n * @returns {Promise}\n */\nexport async function createCipheriv(algorithm, key, iv, data) {\n let algorithm_;\n\n switch (algorithm.toUpperCase()) {\n case CipherAlgorithm.Aes128Ctr:\n algorithm_ = {\n name: \"AES-CTR\",\n counter: iv,\n length: 128,\n };\n break;\n case CipherAlgorithm.Aes128Cbc:\n algorithm_ = {\n name: \"AES-CBC\",\n iv: iv,\n };\n break;\n default:\n throw new Error(\n \"(BUG) non-exhaustive switch statement for CipherAlgorithm\",\n );\n }\n\n const key_ = await window.crypto.subtle.importKey(\n \"raw\",\n key,\n algorithm_.name,\n false,\n [\"encrypt\"],\n );\n\n return new Uint8Array(\n // https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/encrypt#return_value\n /** @type {ArrayBuffer} */ (\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n await window.crypto.subtle.encrypt(algorithm_, key_, data)\n ),\n );\n}\n\n/**\n * @param {string} algorithm\n * @param {Uint8Array} key\n * @param {Uint8Array} iv\n * @param {Uint8Array} data\n * @returns {Promise}\n */\nexport async function createDecipheriv(algorithm, key, iv, data) {\n let algorithm_;\n\n switch (algorithm.toUpperCase()) {\n case CipherAlgorithm.Aes128Ctr:\n algorithm_ = {\n name: \"AES-CTR\",\n counter: iv,\n length: 128,\n };\n break;\n case CipherAlgorithm.Aes128Cbc:\n algorithm_ = {\n name: \"AES-CBC\",\n iv,\n };\n break;\n default:\n throw new Error(\n \"(BUG) non-exhaustive switch statement for CipherAlgorithm\",\n );\n }\n\n const key_ = await window.crypto.subtle.importKey(\n \"raw\",\n key,\n algorithm_.name,\n false,\n [\"decrypt\"],\n );\n let decrypted;\n try {\n decrypted = await window.crypto.subtle.decrypt(algorithm_, key_, data);\n } catch (error) {\n const message =\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n error != null && /** @type {Error} */ (error).message != null\n ? // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n /** @type {Error} */ (error).message\n : \"\";\n\n throw new Error(`Unable to decrypt: ${message}`);\n }\n return new Uint8Array(\n // https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/encrypt#return_value\n /** @type {ArrayBuffer} */ (\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n decrypted\n ),\n );\n}\n\n/**\n * @param {string} passphrase\n * @param {string} iv\n * @returns {Promise}\n */\nexport async function messageDigest(passphrase, iv) {\n const pass = utf8.encode(passphrase);\n const sliced = hex.decode(iv).slice(0, 8);\n const result = SparkMD5.ArrayBuffer.hash(\n // @ts-ignore\n Buffer.concat([Buffer.from(pass), Buffer.from(sliced)]),\n );\n\n return Promise.resolve(hex.decode(result));\n}\n","import * as utf8 from \"../encoding/utf8.js\";\n\n// this will be executed in browser environment so we can use window.crypto\n/* eslint-disable n/no-unsupported-features/node-builtins */\n\n/**\n * @typedef {import(\"./hmac.js\").HashAlgorithm} HashAlgorithm\n */\n\n/**\n * @param {HashAlgorithm} algorithm\n * @param {Uint8Array | string} password\n * @param {Uint8Array | string} salt\n * @param {number} iterations\n * @param {number} length\n * @returns {Promise}\n */\nexport async function deriveKey(algorithm, password, salt, iterations, length) {\n const pass =\n typeof password === \"string\"\n ? // Valid ASCII is also valid UTF-8 so encoding the password as UTF-8\n // should be fine if only valid ASCII characters are used in the password\n utf8.encode(password)\n : password;\n\n const nacl = typeof salt === \"string\" ? utf8.encode(salt) : salt;\n\n try {\n const key = await window.crypto.subtle.importKey(\n \"raw\",\n pass,\n {\n name: \"PBKDF2\",\n hash: algorithm,\n },\n false,\n [\"deriveBits\"],\n );\n\n return new Uint8Array(\n await window.crypto.subtle.deriveBits(\n {\n name: \"PBKDF2\",\n hash: algorithm,\n salt: nacl,\n iterations,\n },\n key,\n length << 3,\n ),\n );\n } catch {\n throw new Error(\"(BUG) Non-Exhaustive switch statement for algorithms\");\n }\n}\n","import BadKeyError from \"../BadKeyError.js\";\nimport * as crypto from \"./aes.js\";\nimport * as hex from \"../encoding/hex.js\";\nimport * as utf8 from \"../encoding/utf8.js\";\nimport * as hmac from \"./hmac.js\";\nimport * as pbkdf2 from \"./pbkdf2.js\";\nimport * as random from \"./random.js\";\n\nconst HMAC_SHA256 = \"hmac-sha256\";\n\n/**\n * @typedef {object} KeystoreKdfParams\n * @property {number} dkLen\n * @property {string} salt\n * @property {number} c\n * @property {string} prf\n */\n\n/**\n * @typedef {object} KeystoreCipherParams\n * @property {string} iv\n */\n\n/**\n * @typedef {object} KeystoreCrypto\n * @property {string} ciphertext\n * @property {KeystoreCipherParams} cipherparams\n * @property {string} cipher\n * @property {string} kdf\n * @property {KeystoreKdfParams} kdfparams\n * @property {string} mac\n */\n\n/**\n * @typedef {object} Keystore\n * @property {number} version\n * @property {KeystoreCrypto} crypto\n */\n\n/**\n * @param {Uint8Array} privateKey\n * @param {string} passphrase\n * @returns {Promise}\n */\nexport async function createKeystore(privateKey, passphrase) {\n // all values taken from https://github.com/ethereumjs/ethereumjs-wallet/blob/de3a92e752673ada1d78f95cf80bc56ae1f59775/src/index.ts#L25\n const dkLen = 32;\n const c = 262144;\n const saltLen = 32;\n const salt = await random.bytesAsync(saltLen);\n\n const key = await pbkdf2.deriveKey(\n hmac.HashAlgorithm.Sha256,\n passphrase,\n salt,\n c,\n dkLen,\n );\n\n const iv = await random.bytesAsync(16);\n\n // AES-128-CTR with the first half of the derived key and a random IV\n const cipherText = await crypto.createCipheriv(\n crypto.CipherAlgorithm.Aes128Ctr,\n key.slice(0, 16),\n iv,\n privateKey,\n );\n\n const mac = await hmac.hash(\n hmac.HashAlgorithm.Sha384,\n key.slice(16),\n cipherText,\n );\n\n /**\n * @type {Keystore}\n */\n const keystore = {\n version: 1,\n crypto: {\n ciphertext: hex.encode(cipherText),\n cipherparams: { iv: hex.encode(iv) },\n cipher: crypto.CipherAlgorithm.Aes128Ctr,\n kdf: \"pbkdf2\",\n kdfparams: {\n dkLen,\n salt: hex.encode(salt),\n c,\n prf: HMAC_SHA256,\n },\n mac: hex.encode(mac),\n },\n };\n\n return utf8.encode(JSON.stringify(keystore));\n}\n\n/**\n * @param {Uint8Array} keystoreBytes\n * @param {string} passphrase\n * @returns {Promise}\n */\nexport async function loadKeystore(keystoreBytes, passphrase) {\n /**\n * @type {Keystore}\n */\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const keystore = JSON.parse(utf8.decode(keystoreBytes));\n\n if (keystore.version !== 1) {\n throw new BadKeyError(\n `unsupported keystore version: ${keystore.version}`,\n );\n }\n\n const {\n ciphertext,\n cipherparams: { iv },\n cipher,\n kdf,\n kdfparams: { dkLen, salt, c, prf },\n mac,\n } = keystore.crypto;\n\n if (kdf !== \"pbkdf2\") {\n throw new BadKeyError(`unsupported key derivation function:\" + ${kdf}`);\n }\n\n if (prf !== HMAC_SHA256) {\n throw new BadKeyError(\n `unsupported key derivation hash function: ${prf}`,\n );\n }\n\n const saltBytes = hex.decode(salt);\n const ivBytes = hex.decode(iv);\n const cipherBytes = hex.decode(ciphertext);\n\n const key = await pbkdf2.deriveKey(\n hmac.HashAlgorithm.Sha256,\n passphrase,\n saltBytes,\n c,\n dkLen,\n );\n\n const macHex = hex.decode(mac);\n const verifyHmac = await hmac.hash(\n hmac.HashAlgorithm.Sha384,\n key.slice(16),\n cipherBytes,\n );\n\n // compare that these two Uint8Arrays are equivalent\n if (!macHex.every((b, i) => b === verifyHmac[i])) {\n throw new BadKeyError(\"HMAC mismatch; passphrase is incorrect\");\n }\n\n return crypto.createDecipheriv(\n cipher,\n key.slice(0, 16),\n ivBytes,\n cipherBytes,\n );\n}\n","/**\n * @typedef {object} AsnSeq\n * @property {AsnType[]} seq\n */\n\n/**\n * @typedef {object} AsnInt\n * @property {number} int\n */\n\n/**\n * @typedef {object} AsnBytes\n * @property {Uint8Array} bytes\n */\n\n/**\n * @typedef {object} AsnIdent\n * @property {string} ident\n */\n\n/**\n * @typedef {{}} AsnNull\n */\n\n/**\n * @typedef {AsnSeq | AsnInt | AsnBytes | AsnIdent | AsnNull} AsnType\n */\n\n/**\n * Note: may throw weird errors on malformed input. Catch and rethrow with, e.g. `BadKeyError`.\n *@param {Uint8Array} data\n *@returns {AsnType}\n */\nexport function decode(data) {\n return decodeIncremental(data)[0];\n}\n\n/**\n * @param {Uint8Array} bytes\n * @returns {[AsnType, Uint8Array]}\n */\nfunction decodeIncremental(bytes) {\n // slice off the initial tag byte, `decodeLength` returns a slice of the remaining data\n const [len, rem] = decodeLength(bytes.subarray(1));\n const data = rem.subarray(0, len);\n const tail = rem.subarray(len);\n\n switch (bytes[0]) {\n case 2:\n return [{ int: decodeInt(data) }, tail];\n case 4: // must always be primitive form in DER; for OCTET STRING this is literal bytes\n return [{ bytes: data }, tail];\n case 5: // empty\n return [{}, tail];\n case 6:\n return [{ ident: decodeObjectIdent(data) }, tail];\n case 48:\n return [{ seq: decodeSeq(data) }, tail];\n default:\n throw new Error(`unsupported DER type tag: ${bytes[0]}`);\n }\n}\n\n/**\n * @param {Uint8Array} seqBytes\n * @returns {AsnType[]}\n */\nfunction decodeSeq(seqBytes) {\n let data = seqBytes;\n\n const seq = [];\n\n while (data.length !== 0) {\n const [decoded, remaining] = decodeIncremental(data);\n seq.push(decoded);\n data = remaining;\n }\n\n return seq;\n}\n\n/**\n * @param {Uint8Array} idBytes\n * @returns {string}\n */\nfunction decodeObjectIdent(idBytes) {\n const id = [\n // first octet is 40 * value1 + value2\n Math.floor(idBytes[0] / 40),\n idBytes[0] % 40,\n ];\n\n // each following ID component is big-endian base128 where the MSB is set if another byte\n // follows for the same value\n let val = 0;\n\n for (const byte of idBytes.subarray(1)) {\n // shift the entire value left by 7 bits\n val *= 128;\n\n if (byte < 128) {\n // no more octets follow for this value, finish it off\n val += byte;\n id.push(val);\n val = 0;\n } else {\n // zero the MSB\n val += byte & 127;\n }\n }\n\n return id.join(\".\");\n}\n\n/**\n * @param {Uint8Array} lenBytes\n * @returns {[number, Uint8Array]}\n */\nfunction decodeLength(lenBytes) {\n if (lenBytes[0] < 128) {\n // definite, short form\n return [lenBytes[0], lenBytes.subarray(1)];\n }\n\n const numBytes = lenBytes[0] - 128;\n\n const intBytes = lenBytes.subarray(1, numBytes + 1);\n const rem = lenBytes.subarray(numBytes + 1);\n\n return [decodeInt(intBytes), rem];\n}\n\n/**\n * @param {Uint8Array} intBytes\n * @returns {number}\n */\nfunction decodeInt(intBytes) {\n const len = intBytes.length;\n if (len === 1) {\n return intBytes[0];\n }\n\n let view = new DataView(\n intBytes.buffer,\n intBytes.byteOffset,\n intBytes.byteLength,\n );\n\n if (len === 2) return view.getUint16(0, false);\n\n if (len === 3) {\n // prefix a zero byte and we'll treat it as a 32-bit int\n const data = Uint8Array.of(0, ...intBytes);\n view = new DataView(data.buffer, data.byteOffset, data.byteLength);\n }\n\n if (len > 4) {\n // this probably means a bug in the decoding as this would mean a >4GB structure\n throw new Error(`unsupported DER integer length of ${len} bytes`);\n }\n\n return view.getUint32(0, false);\n}\n","import * as crypto from \"./aes.js\";\nimport * as der from \"../encoding/der.js\";\nimport * as pbkdf2 from \"./pbkdf2.js\";\nimport * as hmac from \"./hmac.js\";\n\nexport class AlgorithmIdentifier {\n /**\n * @param {import(\"../encoding/der.js\").AsnType} asn\n */\n constructor(asn) {\n if (\"seq\" in asn && asn.seq.length >= 1 && \"ident\" in asn.seq[0]) {\n /**\n * @type {string}\n */\n this.algIdent = asn.seq[0].ident;\n\n /**\n * @type {import(\"../encoding/der.js\").AsnType | undefined}\n */\n this.parameters = asn.seq[1];\n } else {\n throw new Error(\n `error parsing AlgorithmIdentifier from ${JSON.stringify(asn)}`,\n );\n }\n }\n\n /**\n * @returns {string}\n */\n toString() {\n return JSON.stringify(this);\n }\n}\n\nclass PBES2Params {\n /**\n * @param {import(\"../encoding/der.js\").AsnType} asn\n */\n constructor(asn) {\n if (\"seq\" in asn && asn.seq.length === 2) {\n /**\n * @type {AlgorithmIdentifier}\n */\n this.kdf = new AlgorithmIdentifier(asn.seq[0]);\n\n /**\n * @type {AlgorithmIdentifier}\n */\n this.encScheme = new AlgorithmIdentifier(asn.seq[1]);\n } else {\n throw new Error(\n `error parsing PBES2Params from ${JSON.stringify(asn)}`,\n );\n }\n }\n}\n\nclass PBKDF2Params {\n /**\n * @param {import(\"../encoding/der.js\").AsnType} asn\n */\n constructor(asn) {\n if (\n \"seq\" in asn &&\n asn.seq.length >= 2 &&\n \"bytes\" in asn.seq[0] &&\n \"int\" in asn.seq[1]\n ) {\n /**\n * @type {Uint8Array}\n */\n this.salt = asn.seq[0].bytes;\n\n /**\n * @type {number}\n */\n this.iterCount = asn.seq[1][\"int\"];\n\n if (asn.seq.length > 2) {\n if (\"seq\" in asn.seq[2]) {\n this.prf = new AlgorithmIdentifier(asn.seq[2]);\n return;\n } else if (\"int\" in asn.seq[2]) {\n /**\n * @type {number | undefined}\n */\n this.keyLength = asn.seq[2][\"int\"];\n }\n\n if (asn.seq.length === 4) {\n /**\n * @type {AlgorithmIdentifier | undefined}\n */\n this.prf = new AlgorithmIdentifier(asn.seq[3]);\n }\n\n return;\n }\n }\n\n throw new Error(\n `error parsing PBKDF2Params from ${JSON.stringify(asn)}`,\n );\n }\n}\n\nexport class PrivateKeyInfo {\n /**\n * @param {import(\"../encoding/der.js\").AsnType} asn\n */\n constructor(asn) {\n if (\"seq\" in asn && asn.seq.length === 3) {\n if (\"int\" in asn.seq[0] && asn.seq[0][\"int\"] === 0) {\n /**\n * @type {number}\n */\n this.version = 0;\n } else {\n throw new Error(\n `expected version = 0, got ${JSON.stringify(asn.seq[0])}`,\n );\n }\n\n /**\n * @type {AlgorithmIdentifier}\n */\n this.algId = new AlgorithmIdentifier(asn.seq[1]);\n\n if (\"bytes\" in asn.seq[2]) {\n /**\n * @type {Uint8Array}\n */\n this.privateKey = asn.seq[2].bytes;\n } else {\n throw new Error(\n `expected octet string as 3rd element, got ${JSON.stringify(\n asn.seq[2],\n )}`,\n );\n }\n\n return;\n }\n\n throw new Error(\n `error parsing PrivateKeyInfo from ${JSON.stringify(asn)}`,\n );\n }\n\n /**\n * @param {Uint8Array} encoded\n * @returns {PrivateKeyInfo}\n */\n static parse(encoded) {\n return new PrivateKeyInfo(der.decode(encoded));\n }\n}\n\nexport class EncryptedPrivateKeyInfo {\n /**\n * @param {import(\"../encoding/der.js\").AsnType} asn\n */\n constructor(asn) {\n if (\"seq\" in asn && asn.seq.length === 2 && \"bytes\" in asn.seq[1]) {\n /**\n * @type {AlgorithmIdentifier}\n */\n this.algId = new AlgorithmIdentifier(asn.seq[0]);\n\n /**\n * @type {Uint8Array}\n */\n this.data = asn.seq[1].bytes;\n return;\n }\n\n throw new Error(\n `error parsing EncryptedPrivateKeyInfo from ${JSON.stringify(asn)}`,\n );\n }\n\n /**\n * @param {Uint8Array} encoded\n * @returns {EncryptedPrivateKeyInfo}\n */\n static parse(encoded) {\n return new EncryptedPrivateKeyInfo(der.decode(encoded));\n }\n\n /**\n * @param {string} passphrase\n * @returns {Promise}\n */\n async decrypt(passphrase) {\n if (\n this.algId.algIdent !== \"1.2.840.113549.1.5.13\" ||\n !this.algId.parameters\n ) {\n // PBES2\n throw new Error(\n `unsupported key encryption algorithm: ${this.algId.toString()}`,\n );\n }\n\n const pbes2Params = new PBES2Params(this.algId.parameters);\n\n if (\n pbes2Params.kdf.algIdent !== \"1.2.840.113549.1.5.12\" ||\n !pbes2Params.kdf.parameters\n ) {\n // PBKDF2\n throw new Error(\n `unsupported key derivation function: ${pbes2Params.kdf.toString()}`,\n );\n }\n\n const pbkdf2Params = new PBKDF2Params(pbes2Params.kdf.parameters);\n\n if (!pbkdf2Params.prf) {\n throw new Error(\"unsupported PRF HMAC-SHA-1\");\n } else if (pbkdf2Params.prf.algIdent !== \"1.2.840.113549.2.9\") {\n // HMAC-SHA-256\n throw new Error(`unsupported PRF ${pbkdf2Params.prf.toString()}`);\n }\n\n if (pbes2Params.encScheme.algIdent !== \"2.16.840.1.101.3.4.1.2\") {\n // AES-128-CBC\n throw new Error(\n `unsupported encryption scheme: ${pbes2Params.encScheme.toString()}`,\n );\n }\n\n if (\n !pbes2Params.encScheme.parameters ||\n !(\"bytes\" in pbes2Params.encScheme.parameters)\n ) {\n throw new Error(\n \"expected IV as bytes for AES-128-CBC, \" +\n `got: ${JSON.stringify(pbes2Params.encScheme.parameters)}`,\n );\n }\n\n const keyLen = pbkdf2Params.keyLength || 16;\n const iv = pbes2Params.encScheme.parameters.bytes;\n\n const key = await pbkdf2.deriveKey(\n hmac.HashAlgorithm.Sha256,\n passphrase,\n pbkdf2Params.salt,\n pbkdf2Params.iterCount,\n keyLen,\n );\n\n const decrypted = await crypto.createDecipheriv(\n crypto.CipherAlgorithm.Aes128Cbc,\n key,\n iv,\n this.data,\n );\n\n return PrivateKeyInfo.parse(decrypted);\n }\n}\n","import { Buffer } from \"buffer\";\n\n/**\n * @param {string} text\n * @returns {Uint8Array}\n */\nexport function decode(text) {\n return Uint8Array.from(Buffer.from(text, \"base64\"));\n}\n\n/**\n * @param {Uint8Array} data\n * @returns {string};\n */\nexport function encode(data) {\n return Buffer.from(data).toString(\"base64\");\n}\n","/*!\n * MIT License\n * \n * Copyright (c) 2017-2024 Peculiar Ventures, LLC\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n * \n */\n\nconst ARRAY_BUFFER_NAME = \"[object ArrayBuffer]\";\nclass BufferSourceConverter {\n static isArrayBuffer(data) {\n return Object.prototype.toString.call(data) === ARRAY_BUFFER_NAME;\n }\n static toArrayBuffer(data) {\n if (this.isArrayBuffer(data)) {\n return data;\n }\n if (data.byteLength === data.buffer.byteLength) {\n return data.buffer;\n }\n if (data.byteOffset === 0 && data.byteLength === data.buffer.byteLength) {\n return data.buffer;\n }\n return this.toUint8Array(data.buffer)\n .slice(data.byteOffset, data.byteOffset + data.byteLength)\n .buffer;\n }\n static toUint8Array(data) {\n return this.toView(data, Uint8Array);\n }\n static toView(data, type) {\n if (data.constructor === type) {\n return data;\n }\n if (this.isArrayBuffer(data)) {\n return new type(data);\n }\n if (this.isArrayBufferView(data)) {\n return new type(data.buffer, data.byteOffset, data.byteLength);\n }\n throw new TypeError(\"The provided value is not of type '(ArrayBuffer or ArrayBufferView)'\");\n }\n static isBufferSource(data) {\n return this.isArrayBufferView(data)\n || this.isArrayBuffer(data);\n }\n static isArrayBufferView(data) {\n return ArrayBuffer.isView(data)\n || (data && this.isArrayBuffer(data.buffer));\n }\n static isEqual(a, b) {\n const aView = BufferSourceConverter.toUint8Array(a);\n const bView = BufferSourceConverter.toUint8Array(b);\n if (aView.length !== bView.byteLength) {\n return false;\n }\n for (let i = 0; i < aView.length; i++) {\n if (aView[i] !== bView[i]) {\n return false;\n }\n }\n return true;\n }\n static concat(...args) {\n let buffers;\n if (Array.isArray(args[0]) && !(args[1] instanceof Function)) {\n buffers = args[0];\n }\n else if (Array.isArray(args[0]) && args[1] instanceof Function) {\n buffers = args[0];\n }\n else {\n if (args[args.length - 1] instanceof Function) {\n buffers = args.slice(0, args.length - 1);\n }\n else {\n buffers = args;\n }\n }\n let size = 0;\n for (const buffer of buffers) {\n size += buffer.byteLength;\n }\n const res = new Uint8Array(size);\n let offset = 0;\n for (const buffer of buffers) {\n const view = this.toUint8Array(buffer);\n res.set(view, offset);\n offset += view.length;\n }\n if (args[args.length - 1] instanceof Function) {\n return this.toView(res, args[args.length - 1]);\n }\n return res.buffer;\n }\n}\n\nconst STRING_TYPE = \"string\";\nconst HEX_REGEX = /^[0-9a-f\\s]+$/i;\nconst BASE64_REGEX = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/;\nconst BASE64URL_REGEX = /^[a-zA-Z0-9-_]+$/;\nclass Utf8Converter {\n static fromString(text) {\n const s = unescape(encodeURIComponent(text));\n const uintArray = new Uint8Array(s.length);\n for (let i = 0; i < s.length; i++) {\n uintArray[i] = s.charCodeAt(i);\n }\n return uintArray.buffer;\n }\n static toString(buffer) {\n const buf = BufferSourceConverter.toUint8Array(buffer);\n let encodedString = \"\";\n for (let i = 0; i < buf.length; i++) {\n encodedString += String.fromCharCode(buf[i]);\n }\n const decodedString = decodeURIComponent(escape(encodedString));\n return decodedString;\n }\n}\nclass Utf16Converter {\n static toString(buffer, littleEndian = false) {\n const arrayBuffer = BufferSourceConverter.toArrayBuffer(buffer);\n const dataView = new DataView(arrayBuffer);\n let res = \"\";\n for (let i = 0; i < arrayBuffer.byteLength; i += 2) {\n const code = dataView.getUint16(i, littleEndian);\n res += String.fromCharCode(code);\n }\n return res;\n }\n static fromString(text, littleEndian = false) {\n const res = new ArrayBuffer(text.length * 2);\n const dataView = new DataView(res);\n for (let i = 0; i < text.length; i++) {\n dataView.setUint16(i * 2, text.charCodeAt(i), littleEndian);\n }\n return res;\n }\n}\nclass Convert {\n static isHex(data) {\n return typeof data === STRING_TYPE\n && HEX_REGEX.test(data);\n }\n static isBase64(data) {\n return typeof data === STRING_TYPE\n && BASE64_REGEX.test(data);\n }\n static isBase64Url(data) {\n return typeof data === STRING_TYPE\n && BASE64URL_REGEX.test(data);\n }\n static ToString(buffer, enc = \"utf8\") {\n const buf = BufferSourceConverter.toUint8Array(buffer);\n switch (enc.toLowerCase()) {\n case \"utf8\":\n return this.ToUtf8String(buf);\n case \"binary\":\n return this.ToBinary(buf);\n case \"hex\":\n return this.ToHex(buf);\n case \"base64\":\n return this.ToBase64(buf);\n case \"base64url\":\n return this.ToBase64Url(buf);\n case \"utf16le\":\n return Utf16Converter.toString(buf, true);\n case \"utf16\":\n case \"utf16be\":\n return Utf16Converter.toString(buf);\n default:\n throw new Error(`Unknown type of encoding '${enc}'`);\n }\n }\n static FromString(str, enc = \"utf8\") {\n if (!str) {\n return new ArrayBuffer(0);\n }\n switch (enc.toLowerCase()) {\n case \"utf8\":\n return this.FromUtf8String(str);\n case \"binary\":\n return this.FromBinary(str);\n case \"hex\":\n return this.FromHex(str);\n case \"base64\":\n return this.FromBase64(str);\n case \"base64url\":\n return this.FromBase64Url(str);\n case \"utf16le\":\n return Utf16Converter.fromString(str, true);\n case \"utf16\":\n case \"utf16be\":\n return Utf16Converter.fromString(str);\n default:\n throw new Error(`Unknown type of encoding '${enc}'`);\n }\n }\n static ToBase64(buffer) {\n const buf = BufferSourceConverter.toUint8Array(buffer);\n if (typeof btoa !== \"undefined\") {\n const binary = this.ToString(buf, \"binary\");\n return btoa(binary);\n }\n else {\n return Buffer.from(buf).toString(\"base64\");\n }\n }\n static FromBase64(base64) {\n const formatted = this.formatString(base64);\n if (!formatted) {\n return new ArrayBuffer(0);\n }\n if (!Convert.isBase64(formatted)) {\n throw new TypeError(\"Argument 'base64Text' is not Base64 encoded\");\n }\n if (typeof atob !== \"undefined\") {\n return this.FromBinary(atob(formatted));\n }\n else {\n return new Uint8Array(Buffer.from(formatted, \"base64\")).buffer;\n }\n }\n static FromBase64Url(base64url) {\n const formatted = this.formatString(base64url);\n if (!formatted) {\n return new ArrayBuffer(0);\n }\n if (!Convert.isBase64Url(formatted)) {\n throw new TypeError(\"Argument 'base64url' is not Base64Url encoded\");\n }\n return this.FromBase64(this.Base64Padding(formatted.replace(/\\-/g, \"+\").replace(/\\_/g, \"/\")));\n }\n static ToBase64Url(data) {\n return this.ToBase64(data).replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/\\=/g, \"\");\n }\n static FromUtf8String(text, encoding = Convert.DEFAULT_UTF8_ENCODING) {\n switch (encoding) {\n case \"ascii\":\n return this.FromBinary(text);\n case \"utf8\":\n return Utf8Converter.fromString(text);\n case \"utf16\":\n case \"utf16be\":\n return Utf16Converter.fromString(text);\n case \"utf16le\":\n case \"usc2\":\n return Utf16Converter.fromString(text, true);\n default:\n throw new Error(`Unknown type of encoding '${encoding}'`);\n }\n }\n static ToUtf8String(buffer, encoding = Convert.DEFAULT_UTF8_ENCODING) {\n switch (encoding) {\n case \"ascii\":\n return this.ToBinary(buffer);\n case \"utf8\":\n return Utf8Converter.toString(buffer);\n case \"utf16\":\n case \"utf16be\":\n return Utf16Converter.toString(buffer);\n case \"utf16le\":\n case \"usc2\":\n return Utf16Converter.toString(buffer, true);\n default:\n throw new Error(`Unknown type of encoding '${encoding}'`);\n }\n }\n static FromBinary(text) {\n const stringLength = text.length;\n const resultView = new Uint8Array(stringLength);\n for (let i = 0; i < stringLength; i++) {\n resultView[i] = text.charCodeAt(i);\n }\n return resultView.buffer;\n }\n static ToBinary(buffer) {\n const buf = BufferSourceConverter.toUint8Array(buffer);\n let res = \"\";\n for (let i = 0; i < buf.length; i++) {\n res += String.fromCharCode(buf[i]);\n }\n return res;\n }\n static ToHex(buffer) {\n const buf = BufferSourceConverter.toUint8Array(buffer);\n let result = \"\";\n const len = buf.length;\n for (let i = 0; i < len; i++) {\n const byte = buf[i];\n if (byte < 16) {\n result += \"0\";\n }\n result += byte.toString(16);\n }\n return result;\n }\n static FromHex(hexString) {\n let formatted = this.formatString(hexString);\n if (!formatted) {\n return new ArrayBuffer(0);\n }\n if (!Convert.isHex(formatted)) {\n throw new TypeError(\"Argument 'hexString' is not HEX encoded\");\n }\n if (formatted.length % 2) {\n formatted = `0${formatted}`;\n }\n const res = new Uint8Array(formatted.length / 2);\n for (let i = 0; i < formatted.length; i = i + 2) {\n const c = formatted.slice(i, i + 2);\n res[i / 2] = parseInt(c, 16);\n }\n return res.buffer;\n }\n static ToUtf16String(buffer, littleEndian = false) {\n return Utf16Converter.toString(buffer, littleEndian);\n }\n static FromUtf16String(text, littleEndian = false) {\n return Utf16Converter.fromString(text, littleEndian);\n }\n static Base64Padding(base64) {\n const padCount = 4 - (base64.length % 4);\n if (padCount < 4) {\n for (let i = 0; i < padCount; i++) {\n base64 += \"=\";\n }\n }\n return base64;\n }\n static formatString(data) {\n return (data === null || data === void 0 ? void 0 : data.replace(/[\\n\\r\\t ]/g, \"\")) || \"\";\n }\n}\nConvert.DEFAULT_UTF8_ENCODING = \"utf8\";\n\nfunction assign(target, ...sources) {\n const res = arguments[0];\n for (let i = 1; i < arguments.length; i++) {\n const obj = arguments[i];\n for (const prop in obj) {\n res[prop] = obj[prop];\n }\n }\n return res;\n}\nfunction combine(...buf) {\n const totalByteLength = buf.map((item) => item.byteLength).reduce((prev, cur) => prev + cur);\n const res = new Uint8Array(totalByteLength);\n let currentPos = 0;\n buf.map((item) => new Uint8Array(item)).forEach((arr) => {\n for (const item2 of arr) {\n res[currentPos++] = item2;\n }\n });\n return res.buffer;\n}\nfunction isEqual(bytes1, bytes2) {\n if (!(bytes1 && bytes2)) {\n return false;\n }\n if (bytes1.byteLength !== bytes2.byteLength) {\n return false;\n }\n const b1 = new Uint8Array(bytes1);\n const b2 = new Uint8Array(bytes2);\n for (let i = 0; i < bytes1.byteLength; i++) {\n if (b1[i] !== b2[i]) {\n return false;\n }\n }\n return true;\n}\n\nexport { BufferSourceConverter, Convert, assign, combine, isEqual };\n","/*!\n Copyright (c) Peculiar Ventures, LLC\n*/\n\nfunction getUTCDate(date) {\r\n return new Date(date.getTime() + (date.getTimezoneOffset() * 60000));\r\n}\r\nfunction getParametersValue(parameters, name, defaultValue) {\r\n var _a;\r\n if ((parameters instanceof Object) === false) {\r\n return defaultValue;\r\n }\r\n return (_a = parameters[name]) !== null && _a !== void 0 ? _a : defaultValue;\r\n}\r\nfunction bufferToHexCodes(inputBuffer, inputOffset = 0, inputLength = (inputBuffer.byteLength - inputOffset), insertSpace = false) {\r\n let result = \"\";\r\n for (const item of (new Uint8Array(inputBuffer, inputOffset, inputLength))) {\r\n const str = item.toString(16).toUpperCase();\r\n if (str.length === 1) {\r\n result += \"0\";\r\n }\r\n result += str;\r\n if (insertSpace) {\r\n result += \" \";\r\n }\r\n }\r\n return result.trim();\r\n}\r\nfunction checkBufferParams(baseBlock, inputBuffer, inputOffset, inputLength) {\r\n if (!(inputBuffer instanceof ArrayBuffer)) {\r\n baseBlock.error = \"Wrong parameter: inputBuffer must be \\\"ArrayBuffer\\\"\";\r\n return false;\r\n }\r\n if (!inputBuffer.byteLength) {\r\n baseBlock.error = \"Wrong parameter: inputBuffer has zero length\";\r\n return false;\r\n }\r\n if (inputOffset < 0) {\r\n baseBlock.error = \"Wrong parameter: inputOffset less than zero\";\r\n return false;\r\n }\r\n if (inputLength < 0) {\r\n baseBlock.error = \"Wrong parameter: inputLength less than zero\";\r\n return false;\r\n }\r\n if ((inputBuffer.byteLength - inputOffset - inputLength) < 0) {\r\n baseBlock.error = \"End of input reached before message was fully decoded (inconsistent offset and length values)\";\r\n return false;\r\n }\r\n return true;\r\n}\r\nfunction utilFromBase(inputBuffer, inputBase) {\r\n let result = 0;\r\n if (inputBuffer.length === 1) {\r\n return inputBuffer[0];\r\n }\r\n for (let i = (inputBuffer.length - 1); i >= 0; i--) {\r\n result += inputBuffer[(inputBuffer.length - 1) - i] * Math.pow(2, inputBase * i);\r\n }\r\n return result;\r\n}\r\nfunction utilToBase(value, base, reserved = (-1)) {\r\n const internalReserved = reserved;\r\n let internalValue = value;\r\n let result = 0;\r\n let biggest = Math.pow(2, base);\r\n for (let i = 1; i < 8; i++) {\r\n if (value < biggest) {\r\n let retBuf;\r\n if (internalReserved < 0) {\r\n retBuf = new ArrayBuffer(i);\r\n result = i;\r\n }\r\n else {\r\n if (internalReserved < i) {\r\n return (new ArrayBuffer(0));\r\n }\r\n retBuf = new ArrayBuffer(internalReserved);\r\n result = internalReserved;\r\n }\r\n const retView = new Uint8Array(retBuf);\r\n for (let j = (i - 1); j >= 0; j--) {\r\n const basis = Math.pow(2, j * base);\r\n retView[result - j - 1] = Math.floor(internalValue / basis);\r\n internalValue -= (retView[result - j - 1]) * basis;\r\n }\r\n return retBuf;\r\n }\r\n biggest *= Math.pow(2, base);\r\n }\r\n return new ArrayBuffer(0);\r\n}\r\nfunction utilConcatBuf(...buffers) {\r\n let outputLength = 0;\r\n let prevLength = 0;\r\n for (const buffer of buffers) {\r\n outputLength += buffer.byteLength;\r\n }\r\n const retBuf = new ArrayBuffer(outputLength);\r\n const retView = new Uint8Array(retBuf);\r\n for (const buffer of buffers) {\r\n retView.set(new Uint8Array(buffer), prevLength);\r\n prevLength += buffer.byteLength;\r\n }\r\n return retBuf;\r\n}\r\nfunction utilConcatView(...views) {\r\n let outputLength = 0;\r\n let prevLength = 0;\r\n for (const view of views) {\r\n outputLength += view.length;\r\n }\r\n const retBuf = new ArrayBuffer(outputLength);\r\n const retView = new Uint8Array(retBuf);\r\n for (const view of views) {\r\n retView.set(view, prevLength);\r\n prevLength += view.length;\r\n }\r\n return retView;\r\n}\r\nfunction utilDecodeTC() {\r\n const buf = new Uint8Array(this.valueHex);\r\n if (this.valueHex.byteLength >= 2) {\r\n const condition1 = (buf[0] === 0xFF) && (buf[1] & 0x80);\r\n const condition2 = (buf[0] === 0x00) && ((buf[1] & 0x80) === 0x00);\r\n if (condition1 || condition2) {\r\n this.warnings.push(\"Needlessly long format\");\r\n }\r\n }\r\n const bigIntBuffer = new ArrayBuffer(this.valueHex.byteLength);\r\n const bigIntView = new Uint8Array(bigIntBuffer);\r\n for (let i = 0; i < this.valueHex.byteLength; i++) {\r\n bigIntView[i] = 0;\r\n }\r\n bigIntView[0] = (buf[0] & 0x80);\r\n const bigInt = utilFromBase(bigIntView, 8);\r\n const smallIntBuffer = new ArrayBuffer(this.valueHex.byteLength);\r\n const smallIntView = new Uint8Array(smallIntBuffer);\r\n for (let j = 0; j < this.valueHex.byteLength; j++) {\r\n smallIntView[j] = buf[j];\r\n }\r\n smallIntView[0] &= 0x7F;\r\n const smallInt = utilFromBase(smallIntView, 8);\r\n return (smallInt - bigInt);\r\n}\r\nfunction utilEncodeTC(value) {\r\n const modValue = (value < 0) ? (value * (-1)) : value;\r\n let bigInt = 128;\r\n for (let i = 1; i < 8; i++) {\r\n if (modValue <= bigInt) {\r\n if (value < 0) {\r\n const smallInt = bigInt - modValue;\r\n const retBuf = utilToBase(smallInt, 8, i);\r\n const retView = new Uint8Array(retBuf);\r\n retView[0] |= 0x80;\r\n return retBuf;\r\n }\r\n let retBuf = utilToBase(modValue, 8, i);\r\n let retView = new Uint8Array(retBuf);\r\n if (retView[0] & 0x80) {\r\n const tempBuf = retBuf.slice(0);\r\n const tempView = new Uint8Array(tempBuf);\r\n retBuf = new ArrayBuffer(retBuf.byteLength + 1);\r\n retView = new Uint8Array(retBuf);\r\n for (let k = 0; k < tempBuf.byteLength; k++) {\r\n retView[k + 1] = tempView[k];\r\n }\r\n retView[0] = 0x00;\r\n }\r\n return retBuf;\r\n }\r\n bigInt *= Math.pow(2, 8);\r\n }\r\n return (new ArrayBuffer(0));\r\n}\r\nfunction isEqualBuffer(inputBuffer1, inputBuffer2) {\r\n if (inputBuffer1.byteLength !== inputBuffer2.byteLength) {\r\n return false;\r\n }\r\n const view1 = new Uint8Array(inputBuffer1);\r\n const view2 = new Uint8Array(inputBuffer2);\r\n for (let i = 0; i < view1.length; i++) {\r\n if (view1[i] !== view2[i]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction padNumber(inputNumber, fullLength) {\r\n const str = inputNumber.toString(10);\r\n if (fullLength < str.length) {\r\n return \"\";\r\n }\r\n const dif = fullLength - str.length;\r\n const padding = new Array(dif);\r\n for (let i = 0; i < dif; i++) {\r\n padding[i] = \"0\";\r\n }\r\n const paddingString = padding.join(\"\");\r\n return paddingString.concat(str);\r\n}\r\nconst base64Template = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\r\nconst base64UrlTemplate = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=\";\r\nfunction toBase64(input, useUrlTemplate = false, skipPadding = false, skipLeadingZeros = false) {\r\n let i = 0;\r\n let flag1 = 0;\r\n let flag2 = 0;\r\n let output = \"\";\r\n const template = (useUrlTemplate) ? base64UrlTemplate : base64Template;\r\n if (skipLeadingZeros) {\r\n let nonZeroPosition = 0;\r\n for (let i = 0; i < input.length; i++) {\r\n if (input.charCodeAt(i) !== 0) {\r\n nonZeroPosition = i;\r\n break;\r\n }\r\n }\r\n input = input.slice(nonZeroPosition);\r\n }\r\n while (i < input.length) {\r\n const chr1 = input.charCodeAt(i++);\r\n if (i >= input.length) {\r\n flag1 = 1;\r\n }\r\n const chr2 = input.charCodeAt(i++);\r\n if (i >= input.length) {\r\n flag2 = 1;\r\n }\r\n const chr3 = input.charCodeAt(i++);\r\n const enc1 = chr1 >> 2;\r\n const enc2 = ((chr1 & 0x03) << 4) | (chr2 >> 4);\r\n let enc3 = ((chr2 & 0x0F) << 2) | (chr3 >> 6);\r\n let enc4 = chr3 & 0x3F;\r\n if (flag1 === 1) {\r\n enc3 = enc4 = 64;\r\n }\r\n else {\r\n if (flag2 === 1) {\r\n enc4 = 64;\r\n }\r\n }\r\n if (skipPadding) {\r\n if (enc3 === 64) {\r\n output += `${template.charAt(enc1)}${template.charAt(enc2)}`;\r\n }\r\n else {\r\n if (enc4 === 64) {\r\n output += `${template.charAt(enc1)}${template.charAt(enc2)}${template.charAt(enc3)}`;\r\n }\r\n else {\r\n output += `${template.charAt(enc1)}${template.charAt(enc2)}${template.charAt(enc3)}${template.charAt(enc4)}`;\r\n }\r\n }\r\n }\r\n else {\r\n output += `${template.charAt(enc1)}${template.charAt(enc2)}${template.charAt(enc3)}${template.charAt(enc4)}`;\r\n }\r\n }\r\n return output;\r\n}\r\nfunction fromBase64(input, useUrlTemplate = false, cutTailZeros = false) {\r\n const template = (useUrlTemplate) ? base64UrlTemplate : base64Template;\r\n function indexOf(toSearch) {\r\n for (let i = 0; i < 64; i++) {\r\n if (template.charAt(i) === toSearch)\r\n return i;\r\n }\r\n return 64;\r\n }\r\n function test(incoming) {\r\n return ((incoming === 64) ? 0x00 : incoming);\r\n }\r\n let i = 0;\r\n let output = \"\";\r\n while (i < input.length) {\r\n const enc1 = indexOf(input.charAt(i++));\r\n const enc2 = (i >= input.length) ? 0x00 : indexOf(input.charAt(i++));\r\n const enc3 = (i >= input.length) ? 0x00 : indexOf(input.charAt(i++));\r\n const enc4 = (i >= input.length) ? 0x00 : indexOf(input.charAt(i++));\r\n const chr1 = (test(enc1) << 2) | (test(enc2) >> 4);\r\n const chr2 = ((test(enc2) & 0x0F) << 4) | (test(enc3) >> 2);\r\n const chr3 = ((test(enc3) & 0x03) << 6) | test(enc4);\r\n output += String.fromCharCode(chr1);\r\n if (enc3 !== 64) {\r\n output += String.fromCharCode(chr2);\r\n }\r\n if (enc4 !== 64) {\r\n output += String.fromCharCode(chr3);\r\n }\r\n }\r\n if (cutTailZeros) {\r\n const outputLength = output.length;\r\n let nonZeroStart = (-1);\r\n for (let i = (outputLength - 1); i >= 0; i--) {\r\n if (output.charCodeAt(i) !== 0) {\r\n nonZeroStart = i;\r\n break;\r\n }\r\n }\r\n if (nonZeroStart !== (-1)) {\r\n output = output.slice(0, nonZeroStart + 1);\r\n }\r\n else {\r\n output = \"\";\r\n }\r\n }\r\n return output;\r\n}\r\nfunction arrayBufferToString(buffer) {\r\n let resultString = \"\";\r\n const view = new Uint8Array(buffer);\r\n for (const element of view) {\r\n resultString += String.fromCharCode(element);\r\n }\r\n return resultString;\r\n}\r\nfunction stringToArrayBuffer(str) {\r\n const stringLength = str.length;\r\n const resultBuffer = new ArrayBuffer(stringLength);\r\n const resultView = new Uint8Array(resultBuffer);\r\n for (let i = 0; i < stringLength; i++) {\r\n resultView[i] = str.charCodeAt(i);\r\n }\r\n return resultBuffer;\r\n}\r\nconst log2 = Math.log(2);\r\nfunction nearestPowerOf2(length) {\r\n const base = (Math.log(length) / log2);\r\n const floor = Math.floor(base);\r\n const round = Math.round(base);\r\n return ((floor === round) ? floor : round);\r\n}\r\nfunction clearProps(object, propsArray) {\r\n for (const prop of propsArray) {\r\n delete object[prop];\r\n }\r\n}\n\nexport { arrayBufferToString, bufferToHexCodes, checkBufferParams, clearProps, fromBase64, getParametersValue, getUTCDate, isEqualBuffer, nearestPowerOf2, padNumber, stringToArrayBuffer, toBase64, utilConcatBuf, utilConcatView, utilDecodeTC, utilEncodeTC, utilFromBase, utilToBase };\n","/*!\n * Copyright (c) 2014, GMO GlobalSign\n * Copyright (c) 2015-2022, Peculiar Ventures\n * All rights reserved.\n * \n * Author 2014-2019, Yury Strozhevsky\n * \n * Redistribution and use in source and binary forms, with or without modification,\n * are permitted provided that the following conditions are met:\n * \n * * Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer.\n * \n * * Redistributions in binary form must reproduce the above copyright notice, this\n * list of conditions and the following disclaimer in the documentation and/or\n * other materials provided with the distribution.\n * \n * * Neither the name of the copyright holder nor the names of its\n * contributors may be used to endorse or promote products derived from\n * this software without specific prior written permission.\n * \n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\n * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n * \n */\n\nimport * as pvtsutils from 'pvtsutils';\nimport * as pvutils from 'pvutils';\n\nfunction assertBigInt() {\n if (typeof BigInt === \"undefined\") {\n throw new Error(\"BigInt is not defined. Your environment doesn't implement BigInt.\");\n }\n}\nfunction concat(buffers) {\n let outputLength = 0;\n let prevLength = 0;\n for (let i = 0; i < buffers.length; i++) {\n const buffer = buffers[i];\n outputLength += buffer.byteLength;\n }\n const retView = new Uint8Array(outputLength);\n for (let i = 0; i < buffers.length; i++) {\n const buffer = buffers[i];\n retView.set(new Uint8Array(buffer), prevLength);\n prevLength += buffer.byteLength;\n }\n return retView.buffer;\n}\nfunction checkBufferParams(baseBlock, inputBuffer, inputOffset, inputLength) {\n if (!(inputBuffer instanceof Uint8Array)) {\n baseBlock.error = \"Wrong parameter: inputBuffer must be 'Uint8Array'\";\n return false;\n }\n if (!inputBuffer.byteLength) {\n baseBlock.error = \"Wrong parameter: inputBuffer has zero length\";\n return false;\n }\n if (inputOffset < 0) {\n baseBlock.error = \"Wrong parameter: inputOffset less than zero\";\n return false;\n }\n if (inputLength < 0) {\n baseBlock.error = \"Wrong parameter: inputLength less than zero\";\n return false;\n }\n if ((inputBuffer.byteLength - inputOffset - inputLength) < 0) {\n baseBlock.error = \"End of input reached before message was fully decoded (inconsistent offset and length values)\";\n return false;\n }\n return true;\n}\n\nclass ViewWriter {\n constructor() {\n this.items = [];\n }\n write(buf) {\n this.items.push(buf);\n }\n final() {\n return concat(this.items);\n }\n}\n\nconst powers2 = [new Uint8Array([1])];\nconst digitsString = \"0123456789\";\nconst NAME = \"name\";\nconst VALUE_HEX_VIEW = \"valueHexView\";\nconst IS_HEX_ONLY = \"isHexOnly\";\nconst ID_BLOCK = \"idBlock\";\nconst TAG_CLASS = \"tagClass\";\nconst TAG_NUMBER = \"tagNumber\";\nconst IS_CONSTRUCTED = \"isConstructed\";\nconst FROM_BER = \"fromBER\";\nconst TO_BER = \"toBER\";\nconst LOCAL = \"local\";\nconst EMPTY_STRING = \"\";\nconst EMPTY_BUFFER = new ArrayBuffer(0);\nconst EMPTY_VIEW = new Uint8Array(0);\nconst END_OF_CONTENT_NAME = \"EndOfContent\";\nconst OCTET_STRING_NAME = \"OCTET STRING\";\nconst BIT_STRING_NAME = \"BIT STRING\";\n\nfunction HexBlock(BaseClass) {\n var _a;\n return _a = class Some extends BaseClass {\n get valueHex() {\n return this.valueHexView.slice().buffer;\n }\n set valueHex(value) {\n this.valueHexView = new Uint8Array(value);\n }\n constructor(...args) {\n var _b;\n super(...args);\n const params = args[0] || {};\n this.isHexOnly = (_b = params.isHexOnly) !== null && _b !== void 0 ? _b : false;\n this.valueHexView = params.valueHex ? pvtsutils.BufferSourceConverter.toUint8Array(params.valueHex) : EMPTY_VIEW;\n }\n fromBER(inputBuffer, inputOffset, inputLength) {\n const view = inputBuffer instanceof ArrayBuffer ? new Uint8Array(inputBuffer) : inputBuffer;\n if (!checkBufferParams(this, view, inputOffset, inputLength)) {\n return -1;\n }\n const endLength = inputOffset + inputLength;\n this.valueHexView = view.subarray(inputOffset, endLength);\n if (!this.valueHexView.length) {\n this.warnings.push(\"Zero buffer length\");\n return inputOffset;\n }\n this.blockLength = inputLength;\n return endLength;\n }\n toBER(sizeOnly = false) {\n if (!this.isHexOnly) {\n this.error = \"Flag 'isHexOnly' is not set, abort\";\n return EMPTY_BUFFER;\n }\n if (sizeOnly) {\n return new ArrayBuffer(this.valueHexView.byteLength);\n }\n return (this.valueHexView.byteLength === this.valueHexView.buffer.byteLength)\n ? this.valueHexView.buffer\n : this.valueHexView.slice().buffer;\n }\n toJSON() {\n return {\n ...super.toJSON(),\n isHexOnly: this.isHexOnly,\n valueHex: pvtsutils.Convert.ToHex(this.valueHexView),\n };\n }\n },\n _a.NAME = \"hexBlock\",\n _a;\n}\n\nclass LocalBaseBlock {\n static blockName() {\n return this.NAME;\n }\n get valueBeforeDecode() {\n return this.valueBeforeDecodeView.slice().buffer;\n }\n set valueBeforeDecode(value) {\n this.valueBeforeDecodeView = new Uint8Array(value);\n }\n constructor({ blockLength = 0, error = EMPTY_STRING, warnings = [], valueBeforeDecode = EMPTY_VIEW, } = {}) {\n this.blockLength = blockLength;\n this.error = error;\n this.warnings = warnings;\n this.valueBeforeDecodeView = pvtsutils.BufferSourceConverter.toUint8Array(valueBeforeDecode);\n }\n toJSON() {\n return {\n blockName: this.constructor.NAME,\n blockLength: this.blockLength,\n error: this.error,\n warnings: this.warnings,\n valueBeforeDecode: pvtsutils.Convert.ToHex(this.valueBeforeDecodeView),\n };\n }\n}\nLocalBaseBlock.NAME = \"baseBlock\";\n\nclass ValueBlock extends LocalBaseBlock {\n fromBER(_inputBuffer, _inputOffset, _inputLength) {\n throw TypeError(\"User need to make a specific function in a class which extends 'ValueBlock'\");\n }\n toBER(_sizeOnly, _writer) {\n throw TypeError(\"User need to make a specific function in a class which extends 'ValueBlock'\");\n }\n}\nValueBlock.NAME = \"valueBlock\";\n\nclass LocalIdentificationBlock extends HexBlock(LocalBaseBlock) {\n constructor({ idBlock = {} } = {}) {\n var _a, _b, _c, _d;\n super();\n if (idBlock) {\n this.isHexOnly = (_a = idBlock.isHexOnly) !== null && _a !== void 0 ? _a : false;\n this.valueHexView = idBlock.valueHex\n ? pvtsutils.BufferSourceConverter.toUint8Array(idBlock.valueHex)\n : EMPTY_VIEW;\n this.tagClass = (_b = idBlock.tagClass) !== null && _b !== void 0 ? _b : -1;\n this.tagNumber = (_c = idBlock.tagNumber) !== null && _c !== void 0 ? _c : -1;\n this.isConstructed = (_d = idBlock.isConstructed) !== null && _d !== void 0 ? _d : false;\n }\n else {\n this.tagClass = -1;\n this.tagNumber = -1;\n this.isConstructed = false;\n }\n }\n toBER(sizeOnly = false) {\n let firstOctet = 0;\n switch (this.tagClass) {\n case 1:\n firstOctet |= 0x00;\n break;\n case 2:\n firstOctet |= 0x40;\n break;\n case 3:\n firstOctet |= 0x80;\n break;\n case 4:\n firstOctet |= 0xC0;\n break;\n default:\n this.error = \"Unknown tag class\";\n return EMPTY_BUFFER;\n }\n if (this.isConstructed)\n firstOctet |= 0x20;\n if (this.tagNumber < 31 && !this.isHexOnly) {\n const retView = new Uint8Array(1);\n if (!sizeOnly) {\n let number = this.tagNumber;\n number &= 0x1F;\n firstOctet |= number;\n retView[0] = firstOctet;\n }\n return retView.buffer;\n }\n if (!this.isHexOnly) {\n const encodedBuf = pvutils.utilToBase(this.tagNumber, 7);\n const encodedView = new Uint8Array(encodedBuf);\n const size = encodedBuf.byteLength;\n const retView = new Uint8Array(size + 1);\n retView[0] = (firstOctet | 0x1F);\n if (!sizeOnly) {\n for (let i = 0; i < (size - 1); i++)\n retView[i + 1] = encodedView[i] | 0x80;\n retView[size] = encodedView[size - 1];\n }\n return retView.buffer;\n }\n const retView = new Uint8Array(this.valueHexView.byteLength + 1);\n retView[0] = (firstOctet | 0x1F);\n if (!sizeOnly) {\n const curView = this.valueHexView;\n for (let i = 0; i < (curView.length - 1); i++)\n retView[i + 1] = curView[i] | 0x80;\n retView[this.valueHexView.byteLength] = curView[curView.length - 1];\n }\n return retView.buffer;\n }\n fromBER(inputBuffer, inputOffset, inputLength) {\n const inputView = pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer);\n if (!checkBufferParams(this, inputView, inputOffset, inputLength)) {\n return -1;\n }\n const intBuffer = inputView.subarray(inputOffset, inputOffset + inputLength);\n if (intBuffer.length === 0) {\n this.error = \"Zero buffer length\";\n return -1;\n }\n const tagClassMask = intBuffer[0] & 0xC0;\n switch (tagClassMask) {\n case 0x00:\n this.tagClass = (1);\n break;\n case 0x40:\n this.tagClass = (2);\n break;\n case 0x80:\n this.tagClass = (3);\n break;\n case 0xC0:\n this.tagClass = (4);\n break;\n default:\n this.error = \"Unknown tag class\";\n return -1;\n }\n this.isConstructed = (intBuffer[0] & 0x20) === 0x20;\n this.isHexOnly = false;\n const tagNumberMask = intBuffer[0] & 0x1F;\n if (tagNumberMask !== 0x1F) {\n this.tagNumber = (tagNumberMask);\n this.blockLength = 1;\n }\n else {\n let count = 1;\n let intTagNumberBuffer = this.valueHexView = new Uint8Array(255);\n let tagNumberBufferMaxLength = 255;\n while (intBuffer[count] & 0x80) {\n intTagNumberBuffer[count - 1] = intBuffer[count] & 0x7F;\n count++;\n if (count >= intBuffer.length) {\n this.error = \"End of input reached before message was fully decoded\";\n return -1;\n }\n if (count === tagNumberBufferMaxLength) {\n tagNumberBufferMaxLength += 255;\n const tempBufferView = new Uint8Array(tagNumberBufferMaxLength);\n for (let i = 0; i < intTagNumberBuffer.length; i++)\n tempBufferView[i] = intTagNumberBuffer[i];\n intTagNumberBuffer = this.valueHexView = new Uint8Array(tagNumberBufferMaxLength);\n }\n }\n this.blockLength = (count + 1);\n intTagNumberBuffer[count - 1] = intBuffer[count] & 0x7F;\n const tempBufferView = new Uint8Array(count);\n for (let i = 0; i < count; i++)\n tempBufferView[i] = intTagNumberBuffer[i];\n intTagNumberBuffer = this.valueHexView = new Uint8Array(count);\n intTagNumberBuffer.set(tempBufferView);\n if (this.blockLength <= 9)\n this.tagNumber = pvutils.utilFromBase(intTagNumberBuffer, 7);\n else {\n this.isHexOnly = true;\n this.warnings.push(\"Tag too long, represented as hex-coded\");\n }\n }\n if (((this.tagClass === 1))\n && (this.isConstructed)) {\n switch (this.tagNumber) {\n case 1:\n case 2:\n case 5:\n case 6:\n case 9:\n case 13:\n case 14:\n case 23:\n case 24:\n case 31:\n case 32:\n case 33:\n case 34:\n this.error = \"Constructed encoding used for primitive type\";\n return -1;\n }\n }\n return (inputOffset + this.blockLength);\n }\n toJSON() {\n return {\n ...super.toJSON(),\n tagClass: this.tagClass,\n tagNumber: this.tagNumber,\n isConstructed: this.isConstructed,\n };\n }\n}\nLocalIdentificationBlock.NAME = \"identificationBlock\";\n\nclass LocalLengthBlock extends LocalBaseBlock {\n constructor({ lenBlock = {} } = {}) {\n var _a, _b, _c;\n super();\n this.isIndefiniteForm = (_a = lenBlock.isIndefiniteForm) !== null && _a !== void 0 ? _a : false;\n this.longFormUsed = (_b = lenBlock.longFormUsed) !== null && _b !== void 0 ? _b : false;\n this.length = (_c = lenBlock.length) !== null && _c !== void 0 ? _c : 0;\n }\n fromBER(inputBuffer, inputOffset, inputLength) {\n const view = pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer);\n if (!checkBufferParams(this, view, inputOffset, inputLength)) {\n return -1;\n }\n const intBuffer = view.subarray(inputOffset, inputOffset + inputLength);\n if (intBuffer.length === 0) {\n this.error = \"Zero buffer length\";\n return -1;\n }\n if (intBuffer[0] === 0xFF) {\n this.error = \"Length block 0xFF is reserved by standard\";\n return -1;\n }\n this.isIndefiniteForm = intBuffer[0] === 0x80;\n if (this.isIndefiniteForm) {\n this.blockLength = 1;\n return (inputOffset + this.blockLength);\n }\n this.longFormUsed = !!(intBuffer[0] & 0x80);\n if (this.longFormUsed === false) {\n this.length = (intBuffer[0]);\n this.blockLength = 1;\n return (inputOffset + this.blockLength);\n }\n const count = intBuffer[0] & 0x7F;\n if (count > 8) {\n this.error = \"Too big integer\";\n return -1;\n }\n if ((count + 1) > intBuffer.length) {\n this.error = \"End of input reached before message was fully decoded\";\n return -1;\n }\n const lenOffset = inputOffset + 1;\n const lengthBufferView = view.subarray(lenOffset, lenOffset + count);\n if (lengthBufferView[count - 1] === 0x00)\n this.warnings.push(\"Needlessly long encoded length\");\n this.length = pvutils.utilFromBase(lengthBufferView, 8);\n if (this.longFormUsed && (this.length <= 127))\n this.warnings.push(\"Unnecessary usage of long length form\");\n this.blockLength = count + 1;\n return (inputOffset + this.blockLength);\n }\n toBER(sizeOnly = false) {\n let retBuf;\n let retView;\n if (this.length > 127)\n this.longFormUsed = true;\n if (this.isIndefiniteForm) {\n retBuf = new ArrayBuffer(1);\n if (sizeOnly === false) {\n retView = new Uint8Array(retBuf);\n retView[0] = 0x80;\n }\n return retBuf;\n }\n if (this.longFormUsed) {\n const encodedBuf = pvutils.utilToBase(this.length, 8);\n if (encodedBuf.byteLength > 127) {\n this.error = \"Too big length\";\n return (EMPTY_BUFFER);\n }\n retBuf = new ArrayBuffer(encodedBuf.byteLength + 1);\n if (sizeOnly)\n return retBuf;\n const encodedView = new Uint8Array(encodedBuf);\n retView = new Uint8Array(retBuf);\n retView[0] = encodedBuf.byteLength | 0x80;\n for (let i = 0; i < encodedBuf.byteLength; i++)\n retView[i + 1] = encodedView[i];\n return retBuf;\n }\n retBuf = new ArrayBuffer(1);\n if (sizeOnly === false) {\n retView = new Uint8Array(retBuf);\n retView[0] = this.length;\n }\n return retBuf;\n }\n toJSON() {\n return {\n ...super.toJSON(),\n isIndefiniteForm: this.isIndefiniteForm,\n longFormUsed: this.longFormUsed,\n length: this.length,\n };\n }\n}\nLocalLengthBlock.NAME = \"lengthBlock\";\n\nconst typeStore = {};\n\nclass BaseBlock extends LocalBaseBlock {\n constructor({ name = EMPTY_STRING, optional = false, primitiveSchema, ...parameters } = {}, valueBlockType) {\n super(parameters);\n this.name = name;\n this.optional = optional;\n if (primitiveSchema) {\n this.primitiveSchema = primitiveSchema;\n }\n this.idBlock = new LocalIdentificationBlock(parameters);\n this.lenBlock = new LocalLengthBlock(parameters);\n this.valueBlock = valueBlockType ? new valueBlockType(parameters) : new ValueBlock(parameters);\n }\n fromBER(inputBuffer, inputOffset, inputLength) {\n const resultOffset = this.valueBlock.fromBER(inputBuffer, inputOffset, (this.lenBlock.isIndefiniteForm)\n ? inputLength\n : this.lenBlock.length);\n if (resultOffset === -1) {\n this.error = this.valueBlock.error;\n return resultOffset;\n }\n if (!this.idBlock.error.length)\n this.blockLength += this.idBlock.blockLength;\n if (!this.lenBlock.error.length)\n this.blockLength += this.lenBlock.blockLength;\n if (!this.valueBlock.error.length)\n this.blockLength += this.valueBlock.blockLength;\n return resultOffset;\n }\n toBER(sizeOnly, writer) {\n const _writer = writer || new ViewWriter();\n if (!writer) {\n prepareIndefiniteForm(this);\n }\n const idBlockBuf = this.idBlock.toBER(sizeOnly);\n _writer.write(idBlockBuf);\n if (this.lenBlock.isIndefiniteForm) {\n _writer.write(new Uint8Array([0x80]).buffer);\n this.valueBlock.toBER(sizeOnly, _writer);\n _writer.write(new ArrayBuffer(2));\n }\n else {\n const valueBlockBuf = this.valueBlock.toBER(sizeOnly);\n this.lenBlock.length = valueBlockBuf.byteLength;\n const lenBlockBuf = this.lenBlock.toBER(sizeOnly);\n _writer.write(lenBlockBuf);\n _writer.write(valueBlockBuf);\n }\n if (!writer) {\n return _writer.final();\n }\n return EMPTY_BUFFER;\n }\n toJSON() {\n const object = {\n ...super.toJSON(),\n idBlock: this.idBlock.toJSON(),\n lenBlock: this.lenBlock.toJSON(),\n valueBlock: this.valueBlock.toJSON(),\n name: this.name,\n optional: this.optional,\n };\n if (this.primitiveSchema)\n object.primitiveSchema = this.primitiveSchema.toJSON();\n return object;\n }\n toString(encoding = \"ascii\") {\n if (encoding === \"ascii\") {\n return this.onAsciiEncoding();\n }\n return pvtsutils.Convert.ToHex(this.toBER());\n }\n onAsciiEncoding() {\n const name = this.constructor.NAME;\n const value = pvtsutils.Convert.ToHex(this.valueBlock.valueBeforeDecodeView);\n return `${name} : ${value}`;\n }\n isEqual(other) {\n if (this === other) {\n return true;\n }\n if (!(other instanceof this.constructor)) {\n return false;\n }\n const thisRaw = this.toBER();\n const otherRaw = other.toBER();\n return pvutils.isEqualBuffer(thisRaw, otherRaw);\n }\n}\nBaseBlock.NAME = \"BaseBlock\";\nfunction prepareIndefiniteForm(baseBlock) {\n var _a;\n if (baseBlock instanceof typeStore.Constructed) {\n for (const value of baseBlock.valueBlock.value) {\n if (prepareIndefiniteForm(value)) {\n baseBlock.lenBlock.isIndefiniteForm = true;\n }\n }\n }\n return !!((_a = baseBlock.lenBlock) === null || _a === void 0 ? void 0 : _a.isIndefiniteForm);\n}\n\nclass BaseStringBlock extends BaseBlock {\n getValue() {\n return this.valueBlock.value;\n }\n setValue(value) {\n this.valueBlock.value = value;\n }\n constructor({ value = EMPTY_STRING, ...parameters } = {}, stringValueBlockType) {\n super(parameters, stringValueBlockType);\n if (value) {\n this.fromString(value);\n }\n }\n fromBER(inputBuffer, inputOffset, inputLength) {\n const resultOffset = this.valueBlock.fromBER(inputBuffer, inputOffset, (this.lenBlock.isIndefiniteForm)\n ? inputLength\n : this.lenBlock.length);\n if (resultOffset === -1) {\n this.error = this.valueBlock.error;\n return resultOffset;\n }\n this.fromBuffer(this.valueBlock.valueHexView);\n if (!this.idBlock.error.length)\n this.blockLength += this.idBlock.blockLength;\n if (!this.lenBlock.error.length)\n this.blockLength += this.lenBlock.blockLength;\n if (!this.valueBlock.error.length)\n this.blockLength += this.valueBlock.blockLength;\n return resultOffset;\n }\n onAsciiEncoding() {\n return `${this.constructor.NAME} : '${this.valueBlock.value}'`;\n }\n}\nBaseStringBlock.NAME = \"BaseStringBlock\";\n\nclass LocalPrimitiveValueBlock extends HexBlock(ValueBlock) {\n constructor({ isHexOnly = true, ...parameters } = {}) {\n super(parameters);\n this.isHexOnly = isHexOnly;\n }\n}\nLocalPrimitiveValueBlock.NAME = \"PrimitiveValueBlock\";\n\nvar _a$w;\nclass Primitive extends BaseBlock {\n constructor(parameters = {}) {\n super(parameters, LocalPrimitiveValueBlock);\n this.idBlock.isConstructed = false;\n }\n}\n_a$w = Primitive;\n(() => {\n typeStore.Primitive = _a$w;\n})();\nPrimitive.NAME = \"PRIMITIVE\";\n\nfunction localChangeType(inputObject, newType) {\n if (inputObject instanceof newType) {\n return inputObject;\n }\n const newObject = new newType();\n newObject.idBlock = inputObject.idBlock;\n newObject.lenBlock = inputObject.lenBlock;\n newObject.warnings = inputObject.warnings;\n newObject.valueBeforeDecodeView = inputObject.valueBeforeDecodeView;\n return newObject;\n}\nfunction localFromBER(inputBuffer, inputOffset = 0, inputLength = inputBuffer.length) {\n const incomingOffset = inputOffset;\n let returnObject = new BaseBlock({}, ValueBlock);\n const baseBlock = new LocalBaseBlock();\n if (!checkBufferParams(baseBlock, inputBuffer, inputOffset, inputLength)) {\n returnObject.error = baseBlock.error;\n return {\n offset: -1,\n result: returnObject,\n };\n }\n const intBuffer = inputBuffer.subarray(inputOffset, inputOffset + inputLength);\n if (!intBuffer.length) {\n returnObject.error = \"Zero buffer length\";\n return {\n offset: -1,\n result: returnObject,\n };\n }\n let resultOffset = returnObject.idBlock.fromBER(inputBuffer, inputOffset, inputLength);\n if (returnObject.idBlock.warnings.length) {\n returnObject.warnings.concat(returnObject.idBlock.warnings);\n }\n if (resultOffset === -1) {\n returnObject.error = returnObject.idBlock.error;\n return {\n offset: -1,\n result: returnObject,\n };\n }\n inputOffset = resultOffset;\n inputLength -= returnObject.idBlock.blockLength;\n resultOffset = returnObject.lenBlock.fromBER(inputBuffer, inputOffset, inputLength);\n if (returnObject.lenBlock.warnings.length) {\n returnObject.warnings.concat(returnObject.lenBlock.warnings);\n }\n if (resultOffset === -1) {\n returnObject.error = returnObject.lenBlock.error;\n return {\n offset: -1,\n result: returnObject,\n };\n }\n inputOffset = resultOffset;\n inputLength -= returnObject.lenBlock.blockLength;\n if (!returnObject.idBlock.isConstructed\n && returnObject.lenBlock.isIndefiniteForm) {\n returnObject.error = \"Indefinite length form used for primitive encoding form\";\n return {\n offset: -1,\n result: returnObject,\n };\n }\n let newASN1Type = BaseBlock;\n switch (returnObject.idBlock.tagClass) {\n case 1:\n if ((returnObject.idBlock.tagNumber >= 37)\n && (returnObject.idBlock.isHexOnly === false)) {\n returnObject.error = \"UNIVERSAL 37 and upper tags are reserved by ASN.1 standard\";\n return {\n offset: -1,\n result: returnObject,\n };\n }\n switch (returnObject.idBlock.tagNumber) {\n case 0:\n if ((returnObject.idBlock.isConstructed)\n && (returnObject.lenBlock.length > 0)) {\n returnObject.error = \"Type [UNIVERSAL 0] is reserved\";\n return {\n offset: -1,\n result: returnObject,\n };\n }\n newASN1Type = typeStore.EndOfContent;\n break;\n case 1:\n newASN1Type = typeStore.Boolean;\n break;\n case 2:\n newASN1Type = typeStore.Integer;\n break;\n case 3:\n newASN1Type = typeStore.BitString;\n break;\n case 4:\n newASN1Type = typeStore.OctetString;\n break;\n case 5:\n newASN1Type = typeStore.Null;\n break;\n case 6:\n newASN1Type = typeStore.ObjectIdentifier;\n break;\n case 10:\n newASN1Type = typeStore.Enumerated;\n break;\n case 12:\n newASN1Type = typeStore.Utf8String;\n break;\n case 13:\n newASN1Type = typeStore.RelativeObjectIdentifier;\n break;\n case 14:\n newASN1Type = typeStore.TIME;\n break;\n case 15:\n returnObject.error = \"[UNIVERSAL 15] is reserved by ASN.1 standard\";\n return {\n offset: -1,\n result: returnObject,\n };\n case 16:\n newASN1Type = typeStore.Sequence;\n break;\n case 17:\n newASN1Type = typeStore.Set;\n break;\n case 18:\n newASN1Type = typeStore.NumericString;\n break;\n case 19:\n newASN1Type = typeStore.PrintableString;\n break;\n case 20:\n newASN1Type = typeStore.TeletexString;\n break;\n case 21:\n newASN1Type = typeStore.VideotexString;\n break;\n case 22:\n newASN1Type = typeStore.IA5String;\n break;\n case 23:\n newASN1Type = typeStore.UTCTime;\n break;\n case 24:\n newASN1Type = typeStore.GeneralizedTime;\n break;\n case 25:\n newASN1Type = typeStore.GraphicString;\n break;\n case 26:\n newASN1Type = typeStore.VisibleString;\n break;\n case 27:\n newASN1Type = typeStore.GeneralString;\n break;\n case 28:\n newASN1Type = typeStore.UniversalString;\n break;\n case 29:\n newASN1Type = typeStore.CharacterString;\n break;\n case 30:\n newASN1Type = typeStore.BmpString;\n break;\n case 31:\n newASN1Type = typeStore.DATE;\n break;\n case 32:\n newASN1Type = typeStore.TimeOfDay;\n break;\n case 33:\n newASN1Type = typeStore.DateTime;\n break;\n case 34:\n newASN1Type = typeStore.Duration;\n break;\n default: {\n const newObject = returnObject.idBlock.isConstructed\n ? new typeStore.Constructed()\n : new typeStore.Primitive();\n newObject.idBlock = returnObject.idBlock;\n newObject.lenBlock = returnObject.lenBlock;\n newObject.warnings = returnObject.warnings;\n returnObject = newObject;\n }\n }\n break;\n case 2:\n case 3:\n case 4:\n default: {\n newASN1Type = returnObject.idBlock.isConstructed\n ? typeStore.Constructed\n : typeStore.Primitive;\n }\n }\n returnObject = localChangeType(returnObject, newASN1Type);\n resultOffset = returnObject.fromBER(inputBuffer, inputOffset, returnObject.lenBlock.isIndefiniteForm ? inputLength : returnObject.lenBlock.length);\n returnObject.valueBeforeDecodeView = inputBuffer.subarray(incomingOffset, incomingOffset + returnObject.blockLength);\n return {\n offset: resultOffset,\n result: returnObject,\n };\n}\nfunction fromBER(inputBuffer) {\n if (!inputBuffer.byteLength) {\n const result = new BaseBlock({}, ValueBlock);\n result.error = \"Input buffer has zero length\";\n return {\n offset: -1,\n result,\n };\n }\n return localFromBER(pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer).slice(), 0, inputBuffer.byteLength);\n}\n\nfunction checkLen(indefiniteLength, length) {\n if (indefiniteLength) {\n return 1;\n }\n return length;\n}\nclass LocalConstructedValueBlock extends ValueBlock {\n constructor({ value = [], isIndefiniteForm = false, ...parameters } = {}) {\n super(parameters);\n this.value = value;\n this.isIndefiniteForm = isIndefiniteForm;\n }\n fromBER(inputBuffer, inputOffset, inputLength) {\n const view = pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer);\n if (!checkBufferParams(this, view, inputOffset, inputLength)) {\n return -1;\n }\n this.valueBeforeDecodeView = view.subarray(inputOffset, inputOffset + inputLength);\n if (this.valueBeforeDecodeView.length === 0) {\n this.warnings.push(\"Zero buffer length\");\n return inputOffset;\n }\n let currentOffset = inputOffset;\n while (checkLen(this.isIndefiniteForm, inputLength) > 0) {\n const returnObject = localFromBER(view, currentOffset, inputLength);\n if (returnObject.offset === -1) {\n this.error = returnObject.result.error;\n this.warnings.concat(returnObject.result.warnings);\n return -1;\n }\n currentOffset = returnObject.offset;\n this.blockLength += returnObject.result.blockLength;\n inputLength -= returnObject.result.blockLength;\n this.value.push(returnObject.result);\n if (this.isIndefiniteForm && returnObject.result.constructor.NAME === END_OF_CONTENT_NAME) {\n break;\n }\n }\n if (this.isIndefiniteForm) {\n if (this.value[this.value.length - 1].constructor.NAME === END_OF_CONTENT_NAME) {\n this.value.pop();\n }\n else {\n this.warnings.push(\"No EndOfContent block encoded\");\n }\n }\n return currentOffset;\n }\n toBER(sizeOnly, writer) {\n const _writer = writer || new ViewWriter();\n for (let i = 0; i < this.value.length; i++) {\n this.value[i].toBER(sizeOnly, _writer);\n }\n if (!writer) {\n return _writer.final();\n }\n return EMPTY_BUFFER;\n }\n toJSON() {\n const object = {\n ...super.toJSON(),\n isIndefiniteForm: this.isIndefiniteForm,\n value: [],\n };\n for (const value of this.value) {\n object.value.push(value.toJSON());\n }\n return object;\n }\n}\nLocalConstructedValueBlock.NAME = \"ConstructedValueBlock\";\n\nvar _a$v;\nclass Constructed extends BaseBlock {\n constructor(parameters = {}) {\n super(parameters, LocalConstructedValueBlock);\n this.idBlock.isConstructed = true;\n }\n fromBER(inputBuffer, inputOffset, inputLength) {\n this.valueBlock.isIndefiniteForm = this.lenBlock.isIndefiniteForm;\n const resultOffset = this.valueBlock.fromBER(inputBuffer, inputOffset, (this.lenBlock.isIndefiniteForm) ? inputLength : this.lenBlock.length);\n if (resultOffset === -1) {\n this.error = this.valueBlock.error;\n return resultOffset;\n }\n if (!this.idBlock.error.length)\n this.blockLength += this.idBlock.blockLength;\n if (!this.lenBlock.error.length)\n this.blockLength += this.lenBlock.blockLength;\n if (!this.valueBlock.error.length)\n this.blockLength += this.valueBlock.blockLength;\n return resultOffset;\n }\n onAsciiEncoding() {\n const values = [];\n for (const value of this.valueBlock.value) {\n values.push(value.toString(\"ascii\").split(\"\\n\").map((o) => ` ${o}`).join(\"\\n\"));\n }\n const blockName = this.idBlock.tagClass === 3\n ? `[${this.idBlock.tagNumber}]`\n : this.constructor.NAME;\n return values.length\n ? `${blockName} :\\n${values.join(\"\\n\")}`\n : `${blockName} :`;\n }\n}\n_a$v = Constructed;\n(() => {\n typeStore.Constructed = _a$v;\n})();\nConstructed.NAME = \"CONSTRUCTED\";\n\nclass LocalEndOfContentValueBlock extends ValueBlock {\n fromBER(inputBuffer, inputOffset, _inputLength) {\n return inputOffset;\n }\n toBER(_sizeOnly) {\n return EMPTY_BUFFER;\n }\n}\nLocalEndOfContentValueBlock.override = \"EndOfContentValueBlock\";\n\nvar _a$u;\nclass EndOfContent extends BaseBlock {\n constructor(parameters = {}) {\n super(parameters, LocalEndOfContentValueBlock);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 0;\n }\n}\n_a$u = EndOfContent;\n(() => {\n typeStore.EndOfContent = _a$u;\n})();\nEndOfContent.NAME = END_OF_CONTENT_NAME;\n\nvar _a$t;\nclass Null extends BaseBlock {\n constructor(parameters = {}) {\n super(parameters, ValueBlock);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 5;\n }\n fromBER(inputBuffer, inputOffset, inputLength) {\n if (this.lenBlock.length > 0)\n this.warnings.push(\"Non-zero length of value block for Null type\");\n if (!this.idBlock.error.length)\n this.blockLength += this.idBlock.blockLength;\n if (!this.lenBlock.error.length)\n this.blockLength += this.lenBlock.blockLength;\n this.blockLength += inputLength;\n if ((inputOffset + inputLength) > inputBuffer.byteLength) {\n this.error = \"End of input reached before message was fully decoded (inconsistent offset and length values)\";\n return -1;\n }\n return (inputOffset + inputLength);\n }\n toBER(sizeOnly, writer) {\n const retBuf = new ArrayBuffer(2);\n if (!sizeOnly) {\n const retView = new Uint8Array(retBuf);\n retView[0] = 0x05;\n retView[1] = 0x00;\n }\n if (writer) {\n writer.write(retBuf);\n }\n return retBuf;\n }\n onAsciiEncoding() {\n return `${this.constructor.NAME}`;\n }\n}\n_a$t = Null;\n(() => {\n typeStore.Null = _a$t;\n})();\nNull.NAME = \"NULL\";\n\nclass LocalBooleanValueBlock extends HexBlock(ValueBlock) {\n get value() {\n for (const octet of this.valueHexView) {\n if (octet > 0) {\n return true;\n }\n }\n return false;\n }\n set value(value) {\n this.valueHexView[0] = value ? 0xFF : 0x00;\n }\n constructor({ value, ...parameters } = {}) {\n super(parameters);\n if (parameters.valueHex) {\n this.valueHexView = pvtsutils.BufferSourceConverter.toUint8Array(parameters.valueHex);\n }\n else {\n this.valueHexView = new Uint8Array(1);\n }\n if (value) {\n this.value = value;\n }\n }\n fromBER(inputBuffer, inputOffset, inputLength) {\n const inputView = pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer);\n if (!checkBufferParams(this, inputView, inputOffset, inputLength)) {\n return -1;\n }\n this.valueHexView = inputView.subarray(inputOffset, inputOffset + inputLength);\n if (inputLength > 1)\n this.warnings.push(\"Boolean value encoded in more then 1 octet\");\n this.isHexOnly = true;\n pvutils.utilDecodeTC.call(this);\n this.blockLength = inputLength;\n return (inputOffset + inputLength);\n }\n toBER() {\n return this.valueHexView.slice();\n }\n toJSON() {\n return {\n ...super.toJSON(),\n value: this.value,\n };\n }\n}\nLocalBooleanValueBlock.NAME = \"BooleanValueBlock\";\n\nvar _a$s;\nclass Boolean extends BaseBlock {\n getValue() {\n return this.valueBlock.value;\n }\n setValue(value) {\n this.valueBlock.value = value;\n }\n constructor(parameters = {}) {\n super(parameters, LocalBooleanValueBlock);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 1;\n }\n onAsciiEncoding() {\n return `${this.constructor.NAME} : ${this.getValue}`;\n }\n}\n_a$s = Boolean;\n(() => {\n typeStore.Boolean = _a$s;\n})();\nBoolean.NAME = \"BOOLEAN\";\n\nclass LocalOctetStringValueBlock extends HexBlock(LocalConstructedValueBlock) {\n constructor({ isConstructed = false, ...parameters } = {}) {\n super(parameters);\n this.isConstructed = isConstructed;\n }\n fromBER(inputBuffer, inputOffset, inputLength) {\n let resultOffset = 0;\n if (this.isConstructed) {\n this.isHexOnly = false;\n resultOffset = LocalConstructedValueBlock.prototype.fromBER.call(this, inputBuffer, inputOffset, inputLength);\n if (resultOffset === -1)\n return resultOffset;\n for (let i = 0; i < this.value.length; i++) {\n const currentBlockName = this.value[i].constructor.NAME;\n if (currentBlockName === END_OF_CONTENT_NAME) {\n if (this.isIndefiniteForm)\n break;\n else {\n this.error = \"EndOfContent is unexpected, OCTET STRING may consists of OCTET STRINGs only\";\n return -1;\n }\n }\n if (currentBlockName !== OCTET_STRING_NAME) {\n this.error = \"OCTET STRING may consists of OCTET STRINGs only\";\n return -1;\n }\n }\n }\n else {\n this.isHexOnly = true;\n resultOffset = super.fromBER(inputBuffer, inputOffset, inputLength);\n this.blockLength = inputLength;\n }\n return resultOffset;\n }\n toBER(sizeOnly, writer) {\n if (this.isConstructed)\n return LocalConstructedValueBlock.prototype.toBER.call(this, sizeOnly, writer);\n return sizeOnly\n ? new ArrayBuffer(this.valueHexView.byteLength)\n : this.valueHexView.slice().buffer;\n }\n toJSON() {\n return {\n ...super.toJSON(),\n isConstructed: this.isConstructed,\n };\n }\n}\nLocalOctetStringValueBlock.NAME = \"OctetStringValueBlock\";\n\nvar _a$r;\nclass OctetString extends BaseBlock {\n constructor({ idBlock = {}, lenBlock = {}, ...parameters } = {}) {\n var _b, _c;\n (_b = parameters.isConstructed) !== null && _b !== void 0 ? _b : (parameters.isConstructed = !!((_c = parameters.value) === null || _c === void 0 ? void 0 : _c.length));\n super({\n idBlock: {\n isConstructed: parameters.isConstructed,\n ...idBlock,\n },\n lenBlock: {\n ...lenBlock,\n isIndefiniteForm: !!parameters.isIndefiniteForm,\n },\n ...parameters,\n }, LocalOctetStringValueBlock);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 4;\n }\n fromBER(inputBuffer, inputOffset, inputLength) {\n this.valueBlock.isConstructed = this.idBlock.isConstructed;\n this.valueBlock.isIndefiniteForm = this.lenBlock.isIndefiniteForm;\n if (inputLength === 0) {\n if (this.idBlock.error.length === 0)\n this.blockLength += this.idBlock.blockLength;\n if (this.lenBlock.error.length === 0)\n this.blockLength += this.lenBlock.blockLength;\n return inputOffset;\n }\n if (!this.valueBlock.isConstructed) {\n const view = inputBuffer instanceof ArrayBuffer ? new Uint8Array(inputBuffer) : inputBuffer;\n const buf = view.subarray(inputOffset, inputOffset + inputLength);\n try {\n if (buf.byteLength) {\n const asn = localFromBER(buf, 0, buf.byteLength);\n if (asn.offset !== -1 && asn.offset === inputLength) {\n this.valueBlock.value = [asn.result];\n }\n }\n }\n catch {\n }\n }\n return super.fromBER(inputBuffer, inputOffset, inputLength);\n }\n onAsciiEncoding() {\n if (this.valueBlock.isConstructed || (this.valueBlock.value && this.valueBlock.value.length)) {\n return Constructed.prototype.onAsciiEncoding.call(this);\n }\n const name = this.constructor.NAME;\n const value = pvtsutils.Convert.ToHex(this.valueBlock.valueHexView);\n return `${name} : ${value}`;\n }\n getValue() {\n if (!this.idBlock.isConstructed) {\n return this.valueBlock.valueHexView.slice().buffer;\n }\n const array = [];\n for (const content of this.valueBlock.value) {\n if (content instanceof _a$r) {\n array.push(content.valueBlock.valueHexView);\n }\n }\n return pvtsutils.BufferSourceConverter.concat(array);\n }\n}\n_a$r = OctetString;\n(() => {\n typeStore.OctetString = _a$r;\n})();\nOctetString.NAME = OCTET_STRING_NAME;\n\nclass LocalBitStringValueBlock extends HexBlock(LocalConstructedValueBlock) {\n constructor({ unusedBits = 0, isConstructed = false, ...parameters } = {}) {\n super(parameters);\n this.unusedBits = unusedBits;\n this.isConstructed = isConstructed;\n this.blockLength = this.valueHexView.byteLength;\n }\n fromBER(inputBuffer, inputOffset, inputLength) {\n if (!inputLength) {\n return inputOffset;\n }\n let resultOffset = -1;\n if (this.isConstructed) {\n resultOffset = LocalConstructedValueBlock.prototype.fromBER.call(this, inputBuffer, inputOffset, inputLength);\n if (resultOffset === -1)\n return resultOffset;\n for (const value of this.value) {\n const currentBlockName = value.constructor.NAME;\n if (currentBlockName === END_OF_CONTENT_NAME) {\n if (this.isIndefiniteForm)\n break;\n else {\n this.error = \"EndOfContent is unexpected, BIT STRING may consists of BIT STRINGs only\";\n return -1;\n }\n }\n if (currentBlockName !== BIT_STRING_NAME) {\n this.error = \"BIT STRING may consists of BIT STRINGs only\";\n return -1;\n }\n const valueBlock = value.valueBlock;\n if ((this.unusedBits > 0) && (valueBlock.unusedBits > 0)) {\n this.error = \"Using of \\\"unused bits\\\" inside constructive BIT STRING allowed for least one only\";\n return -1;\n }\n this.unusedBits = valueBlock.unusedBits;\n }\n return resultOffset;\n }\n const inputView = pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer);\n if (!checkBufferParams(this, inputView, inputOffset, inputLength)) {\n return -1;\n }\n const intBuffer = inputView.subarray(inputOffset, inputOffset + inputLength);\n this.unusedBits = intBuffer[0];\n if (this.unusedBits > 7) {\n this.error = \"Unused bits for BitString must be in range 0-7\";\n return -1;\n }\n if (!this.unusedBits) {\n const buf = intBuffer.subarray(1);\n try {\n if (buf.byteLength) {\n const asn = localFromBER(buf, 0, buf.byteLength);\n if (asn.offset !== -1 && asn.offset === (inputLength - 1)) {\n this.value = [asn.result];\n }\n }\n }\n catch {\n }\n }\n this.valueHexView = intBuffer.subarray(1);\n this.blockLength = intBuffer.length;\n return (inputOffset + inputLength);\n }\n toBER(sizeOnly, writer) {\n if (this.isConstructed) {\n return LocalConstructedValueBlock.prototype.toBER.call(this, sizeOnly, writer);\n }\n if (sizeOnly) {\n return new ArrayBuffer(this.valueHexView.byteLength + 1);\n }\n if (!this.valueHexView.byteLength) {\n return EMPTY_BUFFER;\n }\n const retView = new Uint8Array(this.valueHexView.length + 1);\n retView[0] = this.unusedBits;\n retView.set(this.valueHexView, 1);\n return retView.buffer;\n }\n toJSON() {\n return {\n ...super.toJSON(),\n unusedBits: this.unusedBits,\n isConstructed: this.isConstructed,\n };\n }\n}\nLocalBitStringValueBlock.NAME = \"BitStringValueBlock\";\n\nvar _a$q;\nclass BitString extends BaseBlock {\n constructor({ idBlock = {}, lenBlock = {}, ...parameters } = {}) {\n var _b, _c;\n (_b = parameters.isConstructed) !== null && _b !== void 0 ? _b : (parameters.isConstructed = !!((_c = parameters.value) === null || _c === void 0 ? void 0 : _c.length));\n super({\n idBlock: {\n isConstructed: parameters.isConstructed,\n ...idBlock,\n },\n lenBlock: {\n ...lenBlock,\n isIndefiniteForm: !!parameters.isIndefiniteForm,\n },\n ...parameters,\n }, LocalBitStringValueBlock);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 3;\n }\n fromBER(inputBuffer, inputOffset, inputLength) {\n this.valueBlock.isConstructed = this.idBlock.isConstructed;\n this.valueBlock.isIndefiniteForm = this.lenBlock.isIndefiniteForm;\n return super.fromBER(inputBuffer, inputOffset, inputLength);\n }\n onAsciiEncoding() {\n if (this.valueBlock.isConstructed || (this.valueBlock.value && this.valueBlock.value.length)) {\n return Constructed.prototype.onAsciiEncoding.call(this);\n }\n else {\n const bits = [];\n const valueHex = this.valueBlock.valueHexView;\n for (const byte of valueHex) {\n bits.push(byte.toString(2).padStart(8, \"0\"));\n }\n const bitsStr = bits.join(\"\");\n const name = this.constructor.NAME;\n const value = bitsStr.substring(0, bitsStr.length - this.valueBlock.unusedBits);\n return `${name} : ${value}`;\n }\n }\n}\n_a$q = BitString;\n(() => {\n typeStore.BitString = _a$q;\n})();\nBitString.NAME = BIT_STRING_NAME;\n\nvar _a$p;\nfunction viewAdd(first, second) {\n const c = new Uint8Array([0]);\n const firstView = new Uint8Array(first);\n const secondView = new Uint8Array(second);\n let firstViewCopy = firstView.slice(0);\n const firstViewCopyLength = firstViewCopy.length - 1;\n const secondViewCopy = secondView.slice(0);\n const secondViewCopyLength = secondViewCopy.length - 1;\n let value = 0;\n const max = (secondViewCopyLength < firstViewCopyLength) ? firstViewCopyLength : secondViewCopyLength;\n let counter = 0;\n for (let i = max; i >= 0; i--, counter++) {\n switch (true) {\n case (counter < secondViewCopy.length):\n value = firstViewCopy[firstViewCopyLength - counter] + secondViewCopy[secondViewCopyLength - counter] + c[0];\n break;\n default:\n value = firstViewCopy[firstViewCopyLength - counter] + c[0];\n }\n c[0] = value / 10;\n switch (true) {\n case (counter >= firstViewCopy.length):\n firstViewCopy = pvutils.utilConcatView(new Uint8Array([value % 10]), firstViewCopy);\n break;\n default:\n firstViewCopy[firstViewCopyLength - counter] = value % 10;\n }\n }\n if (c[0] > 0)\n firstViewCopy = pvutils.utilConcatView(c, firstViewCopy);\n return firstViewCopy;\n}\nfunction power2(n) {\n if (n >= powers2.length) {\n for (let p = powers2.length; p <= n; p++) {\n const c = new Uint8Array([0]);\n let digits = (powers2[p - 1]).slice(0);\n for (let i = (digits.length - 1); i >= 0; i--) {\n const newValue = new Uint8Array([(digits[i] << 1) + c[0]]);\n c[0] = newValue[0] / 10;\n digits[i] = newValue[0] % 10;\n }\n if (c[0] > 0)\n digits = pvutils.utilConcatView(c, digits);\n powers2.push(digits);\n }\n }\n return powers2[n];\n}\nfunction viewSub(first, second) {\n let b = 0;\n const firstView = new Uint8Array(first);\n const secondView = new Uint8Array(second);\n const firstViewCopy = firstView.slice(0);\n const firstViewCopyLength = firstViewCopy.length - 1;\n const secondViewCopy = secondView.slice(0);\n const secondViewCopyLength = secondViewCopy.length - 1;\n let value;\n let counter = 0;\n for (let i = secondViewCopyLength; i >= 0; i--, counter++) {\n value = firstViewCopy[firstViewCopyLength - counter] - secondViewCopy[secondViewCopyLength - counter] - b;\n switch (true) {\n case (value < 0):\n b = 1;\n firstViewCopy[firstViewCopyLength - counter] = value + 10;\n break;\n default:\n b = 0;\n firstViewCopy[firstViewCopyLength - counter] = value;\n }\n }\n if (b > 0) {\n for (let i = (firstViewCopyLength - secondViewCopyLength + 1); i >= 0; i--, counter++) {\n value = firstViewCopy[firstViewCopyLength - counter] - b;\n if (value < 0) {\n b = 1;\n firstViewCopy[firstViewCopyLength - counter] = value + 10;\n }\n else {\n b = 0;\n firstViewCopy[firstViewCopyLength - counter] = value;\n break;\n }\n }\n }\n return firstViewCopy.slice();\n}\nclass LocalIntegerValueBlock extends HexBlock(ValueBlock) {\n setValueHex() {\n if (this.valueHexView.length >= 4) {\n this.warnings.push(\"Too big Integer for decoding, hex only\");\n this.isHexOnly = true;\n this._valueDec = 0;\n }\n else {\n this.isHexOnly = false;\n if (this.valueHexView.length > 0) {\n this._valueDec = pvutils.utilDecodeTC.call(this);\n }\n }\n }\n constructor({ value, ...parameters } = {}) {\n super(parameters);\n this._valueDec = 0;\n if (parameters.valueHex) {\n this.setValueHex();\n }\n if (value !== undefined) {\n this.valueDec = value;\n }\n }\n set valueDec(v) {\n this._valueDec = v;\n this.isHexOnly = false;\n this.valueHexView = new Uint8Array(pvutils.utilEncodeTC(v));\n }\n get valueDec() {\n return this._valueDec;\n }\n fromDER(inputBuffer, inputOffset, inputLength, expectedLength = 0) {\n const offset = this.fromBER(inputBuffer, inputOffset, inputLength);\n if (offset === -1)\n return offset;\n const view = this.valueHexView;\n if ((view[0] === 0x00) && ((view[1] & 0x80) !== 0)) {\n this.valueHexView = view.subarray(1);\n }\n else {\n if (expectedLength !== 0) {\n if (view.length < expectedLength) {\n if ((expectedLength - view.length) > 1)\n expectedLength = view.length + 1;\n this.valueHexView = view.subarray(expectedLength - view.length);\n }\n }\n }\n return offset;\n }\n toDER(sizeOnly = false) {\n const view = this.valueHexView;\n switch (true) {\n case ((view[0] & 0x80) !== 0):\n {\n const updatedView = new Uint8Array(this.valueHexView.length + 1);\n updatedView[0] = 0x00;\n updatedView.set(view, 1);\n this.valueHexView = updatedView;\n }\n break;\n case ((view[0] === 0x00) && ((view[1] & 0x80) === 0)):\n {\n this.valueHexView = this.valueHexView.subarray(1);\n }\n break;\n }\n return this.toBER(sizeOnly);\n }\n fromBER(inputBuffer, inputOffset, inputLength) {\n const resultOffset = super.fromBER(inputBuffer, inputOffset, inputLength);\n if (resultOffset === -1) {\n return resultOffset;\n }\n this.setValueHex();\n return resultOffset;\n }\n toBER(sizeOnly) {\n return sizeOnly\n ? new ArrayBuffer(this.valueHexView.length)\n : this.valueHexView.slice().buffer;\n }\n toJSON() {\n return {\n ...super.toJSON(),\n valueDec: this.valueDec,\n };\n }\n toString() {\n const firstBit = (this.valueHexView.length * 8) - 1;\n let digits = new Uint8Array((this.valueHexView.length * 8) / 3);\n let bitNumber = 0;\n let currentByte;\n const asn1View = this.valueHexView;\n let result = \"\";\n let flag = false;\n for (let byteNumber = (asn1View.byteLength - 1); byteNumber >= 0; byteNumber--) {\n currentByte = asn1View[byteNumber];\n for (let i = 0; i < 8; i++) {\n if ((currentByte & 1) === 1) {\n switch (bitNumber) {\n case firstBit:\n digits = viewSub(power2(bitNumber), digits);\n result = \"-\";\n break;\n default:\n digits = viewAdd(digits, power2(bitNumber));\n }\n }\n bitNumber++;\n currentByte >>= 1;\n }\n }\n for (let i = 0; i < digits.length; i++) {\n if (digits[i])\n flag = true;\n if (flag)\n result += digitsString.charAt(digits[i]);\n }\n if (flag === false)\n result += digitsString.charAt(0);\n return result;\n }\n}\n_a$p = LocalIntegerValueBlock;\nLocalIntegerValueBlock.NAME = \"IntegerValueBlock\";\n(() => {\n Object.defineProperty(_a$p.prototype, \"valueHex\", {\n set: function (v) {\n this.valueHexView = new Uint8Array(v);\n this.setValueHex();\n },\n get: function () {\n return this.valueHexView.slice().buffer;\n },\n });\n})();\n\nvar _a$o;\nclass Integer extends BaseBlock {\n constructor(parameters = {}) {\n super(parameters, LocalIntegerValueBlock);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 2;\n }\n toBigInt() {\n assertBigInt();\n return BigInt(this.valueBlock.toString());\n }\n static fromBigInt(value) {\n assertBigInt();\n const bigIntValue = BigInt(value);\n const writer = new ViewWriter();\n const hex = bigIntValue.toString(16).replace(/^-/, \"\");\n const view = new Uint8Array(pvtsutils.Convert.FromHex(hex));\n if (bigIntValue < 0) {\n const first = new Uint8Array(view.length + (view[0] & 0x80 ? 1 : 0));\n first[0] |= 0x80;\n const firstInt = BigInt(`0x${pvtsutils.Convert.ToHex(first)}`);\n const secondInt = firstInt + bigIntValue;\n const second = pvtsutils.BufferSourceConverter.toUint8Array(pvtsutils.Convert.FromHex(secondInt.toString(16)));\n second[0] |= 0x80;\n writer.write(second);\n }\n else {\n if (view[0] & 0x80) {\n writer.write(new Uint8Array([0]));\n }\n writer.write(view);\n }\n const res = new _a$o({ valueHex: writer.final() });\n return res;\n }\n convertToDER() {\n const integer = new _a$o({ valueHex: this.valueBlock.valueHexView });\n integer.valueBlock.toDER();\n return integer;\n }\n convertFromDER() {\n return new _a$o({\n valueHex: this.valueBlock.valueHexView[0] === 0\n ? this.valueBlock.valueHexView.subarray(1)\n : this.valueBlock.valueHexView,\n });\n }\n onAsciiEncoding() {\n return `${this.constructor.NAME} : ${this.valueBlock.toString()}`;\n }\n}\n_a$o = Integer;\n(() => {\n typeStore.Integer = _a$o;\n})();\nInteger.NAME = \"INTEGER\";\n\nvar _a$n;\nclass Enumerated extends Integer {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 10;\n }\n}\n_a$n = Enumerated;\n(() => {\n typeStore.Enumerated = _a$n;\n})();\nEnumerated.NAME = \"ENUMERATED\";\n\nclass LocalSidValueBlock extends HexBlock(ValueBlock) {\n constructor({ valueDec = -1, isFirstSid = false, ...parameters } = {}) {\n super(parameters);\n this.valueDec = valueDec;\n this.isFirstSid = isFirstSid;\n }\n fromBER(inputBuffer, inputOffset, inputLength) {\n if (!inputLength) {\n return inputOffset;\n }\n const inputView = pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer);\n if (!checkBufferParams(this, inputView, inputOffset, inputLength)) {\n return -1;\n }\n const intBuffer = inputView.subarray(inputOffset, inputOffset + inputLength);\n this.valueHexView = new Uint8Array(inputLength);\n for (let i = 0; i < inputLength; i++) {\n this.valueHexView[i] = intBuffer[i] & 0x7F;\n this.blockLength++;\n if ((intBuffer[i] & 0x80) === 0x00)\n break;\n }\n const tempView = new Uint8Array(this.blockLength);\n for (let i = 0; i < this.blockLength; i++) {\n tempView[i] = this.valueHexView[i];\n }\n this.valueHexView = tempView;\n if ((intBuffer[this.blockLength - 1] & 0x80) !== 0x00) {\n this.error = \"End of input reached before message was fully decoded\";\n return -1;\n }\n if (this.valueHexView[0] === 0x00)\n this.warnings.push(\"Needlessly long format of SID encoding\");\n if (this.blockLength <= 8)\n this.valueDec = pvutils.utilFromBase(this.valueHexView, 7);\n else {\n this.isHexOnly = true;\n this.warnings.push(\"Too big SID for decoding, hex only\");\n }\n return (inputOffset + this.blockLength);\n }\n set valueBigInt(value) {\n assertBigInt();\n let bits = BigInt(value).toString(2);\n while (bits.length % 7) {\n bits = \"0\" + bits;\n }\n const bytes = new Uint8Array(bits.length / 7);\n for (let i = 0; i < bytes.length; i++) {\n bytes[i] = parseInt(bits.slice(i * 7, i * 7 + 7), 2) + (i + 1 < bytes.length ? 0x80 : 0);\n }\n this.fromBER(bytes.buffer, 0, bytes.length);\n }\n toBER(sizeOnly) {\n if (this.isHexOnly) {\n if (sizeOnly)\n return (new ArrayBuffer(this.valueHexView.byteLength));\n const curView = this.valueHexView;\n const retView = new Uint8Array(this.blockLength);\n for (let i = 0; i < (this.blockLength - 1); i++)\n retView[i] = curView[i] | 0x80;\n retView[this.blockLength - 1] = curView[this.blockLength - 1];\n return retView.buffer;\n }\n const encodedBuf = pvutils.utilToBase(this.valueDec, 7);\n if (encodedBuf.byteLength === 0) {\n this.error = \"Error during encoding SID value\";\n return EMPTY_BUFFER;\n }\n const retView = new Uint8Array(encodedBuf.byteLength);\n if (!sizeOnly) {\n const encodedView = new Uint8Array(encodedBuf);\n const len = encodedBuf.byteLength - 1;\n for (let i = 0; i < len; i++)\n retView[i] = encodedView[i] | 0x80;\n retView[len] = encodedView[len];\n }\n return retView;\n }\n toString() {\n let result = \"\";\n if (this.isHexOnly)\n result = pvtsutils.Convert.ToHex(this.valueHexView);\n else {\n if (this.isFirstSid) {\n let sidValue = this.valueDec;\n if (this.valueDec <= 39)\n result = \"0.\";\n else {\n if (this.valueDec <= 79) {\n result = \"1.\";\n sidValue -= 40;\n }\n else {\n result = \"2.\";\n sidValue -= 80;\n }\n }\n result += sidValue.toString();\n }\n else\n result = this.valueDec.toString();\n }\n return result;\n }\n toJSON() {\n return {\n ...super.toJSON(),\n valueDec: this.valueDec,\n isFirstSid: this.isFirstSid,\n };\n }\n}\nLocalSidValueBlock.NAME = \"sidBlock\";\n\nclass LocalObjectIdentifierValueBlock extends ValueBlock {\n constructor({ value = EMPTY_STRING, ...parameters } = {}) {\n super(parameters);\n this.value = [];\n if (value) {\n this.fromString(value);\n }\n }\n fromBER(inputBuffer, inputOffset, inputLength) {\n let resultOffset = inputOffset;\n while (inputLength > 0) {\n const sidBlock = new LocalSidValueBlock();\n resultOffset = sidBlock.fromBER(inputBuffer, resultOffset, inputLength);\n if (resultOffset === -1) {\n this.blockLength = 0;\n this.error = sidBlock.error;\n return resultOffset;\n }\n if (this.value.length === 0)\n sidBlock.isFirstSid = true;\n this.blockLength += sidBlock.blockLength;\n inputLength -= sidBlock.blockLength;\n this.value.push(sidBlock);\n }\n return resultOffset;\n }\n toBER(sizeOnly) {\n const retBuffers = [];\n for (let i = 0; i < this.value.length; i++) {\n const valueBuf = this.value[i].toBER(sizeOnly);\n if (valueBuf.byteLength === 0) {\n this.error = this.value[i].error;\n return EMPTY_BUFFER;\n }\n retBuffers.push(valueBuf);\n }\n return concat(retBuffers);\n }\n fromString(string) {\n this.value = [];\n let pos1 = 0;\n let pos2 = 0;\n let sid = \"\";\n let flag = false;\n do {\n pos2 = string.indexOf(\".\", pos1);\n if (pos2 === -1)\n sid = string.substring(pos1);\n else\n sid = string.substring(pos1, pos2);\n pos1 = pos2 + 1;\n if (flag) {\n const sidBlock = this.value[0];\n let plus = 0;\n switch (sidBlock.valueDec) {\n case 0:\n break;\n case 1:\n plus = 40;\n break;\n case 2:\n plus = 80;\n break;\n default:\n this.value = [];\n return;\n }\n const parsedSID = parseInt(sid, 10);\n if (isNaN(parsedSID))\n return;\n sidBlock.valueDec = parsedSID + plus;\n flag = false;\n }\n else {\n const sidBlock = new LocalSidValueBlock();\n if (sid > Number.MAX_SAFE_INTEGER) {\n assertBigInt();\n const sidValue = BigInt(sid);\n sidBlock.valueBigInt = sidValue;\n }\n else {\n sidBlock.valueDec = parseInt(sid, 10);\n if (isNaN(sidBlock.valueDec))\n return;\n }\n if (!this.value.length) {\n sidBlock.isFirstSid = true;\n flag = true;\n }\n this.value.push(sidBlock);\n }\n } while (pos2 !== -1);\n }\n toString() {\n let result = \"\";\n let isHexOnly = false;\n for (let i = 0; i < this.value.length; i++) {\n isHexOnly = this.value[i].isHexOnly;\n let sidStr = this.value[i].toString();\n if (i !== 0)\n result = `${result}.`;\n if (isHexOnly) {\n sidStr = `{${sidStr}}`;\n if (this.value[i].isFirstSid)\n result = `2.{${sidStr} - 80}`;\n else\n result += sidStr;\n }\n else\n result += sidStr;\n }\n return result;\n }\n toJSON() {\n const object = {\n ...super.toJSON(),\n value: this.toString(),\n sidArray: [],\n };\n for (let i = 0; i < this.value.length; i++) {\n object.sidArray.push(this.value[i].toJSON());\n }\n return object;\n }\n}\nLocalObjectIdentifierValueBlock.NAME = \"ObjectIdentifierValueBlock\";\n\nvar _a$m;\nclass ObjectIdentifier extends BaseBlock {\n getValue() {\n return this.valueBlock.toString();\n }\n setValue(value) {\n this.valueBlock.fromString(value);\n }\n constructor(parameters = {}) {\n super(parameters, LocalObjectIdentifierValueBlock);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 6;\n }\n onAsciiEncoding() {\n return `${this.constructor.NAME} : ${this.valueBlock.toString() || \"empty\"}`;\n }\n toJSON() {\n return {\n ...super.toJSON(),\n value: this.getValue(),\n };\n }\n}\n_a$m = ObjectIdentifier;\n(() => {\n typeStore.ObjectIdentifier = _a$m;\n})();\nObjectIdentifier.NAME = \"OBJECT IDENTIFIER\";\n\nclass LocalRelativeSidValueBlock extends HexBlock(LocalBaseBlock) {\n constructor({ valueDec = 0, ...parameters } = {}) {\n super(parameters);\n this.valueDec = valueDec;\n }\n fromBER(inputBuffer, inputOffset, inputLength) {\n if (inputLength === 0)\n return inputOffset;\n const inputView = pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer);\n if (!checkBufferParams(this, inputView, inputOffset, inputLength))\n return -1;\n const intBuffer = inputView.subarray(inputOffset, inputOffset + inputLength);\n this.valueHexView = new Uint8Array(inputLength);\n for (let i = 0; i < inputLength; i++) {\n this.valueHexView[i] = intBuffer[i] & 0x7F;\n this.blockLength++;\n if ((intBuffer[i] & 0x80) === 0x00)\n break;\n }\n const tempView = new Uint8Array(this.blockLength);\n for (let i = 0; i < this.blockLength; i++)\n tempView[i] = this.valueHexView[i];\n this.valueHexView = tempView;\n if ((intBuffer[this.blockLength - 1] & 0x80) !== 0x00) {\n this.error = \"End of input reached before message was fully decoded\";\n return -1;\n }\n if (this.valueHexView[0] === 0x00)\n this.warnings.push(\"Needlessly long format of SID encoding\");\n if (this.blockLength <= 8)\n this.valueDec = pvutils.utilFromBase(this.valueHexView, 7);\n else {\n this.isHexOnly = true;\n this.warnings.push(\"Too big SID for decoding, hex only\");\n }\n return (inputOffset + this.blockLength);\n }\n toBER(sizeOnly) {\n if (this.isHexOnly) {\n if (sizeOnly)\n return (new ArrayBuffer(this.valueHexView.byteLength));\n const curView = this.valueHexView;\n const retView = new Uint8Array(this.blockLength);\n for (let i = 0; i < (this.blockLength - 1); i++)\n retView[i] = curView[i] | 0x80;\n retView[this.blockLength - 1] = curView[this.blockLength - 1];\n return retView.buffer;\n }\n const encodedBuf = pvutils.utilToBase(this.valueDec, 7);\n if (encodedBuf.byteLength === 0) {\n this.error = \"Error during encoding SID value\";\n return EMPTY_BUFFER;\n }\n const retView = new Uint8Array(encodedBuf.byteLength);\n if (!sizeOnly) {\n const encodedView = new Uint8Array(encodedBuf);\n const len = encodedBuf.byteLength - 1;\n for (let i = 0; i < len; i++)\n retView[i] = encodedView[i] | 0x80;\n retView[len] = encodedView[len];\n }\n return retView.buffer;\n }\n toString() {\n let result = \"\";\n if (this.isHexOnly)\n result = pvtsutils.Convert.ToHex(this.valueHexView);\n else {\n result = this.valueDec.toString();\n }\n return result;\n }\n toJSON() {\n return {\n ...super.toJSON(),\n valueDec: this.valueDec,\n };\n }\n}\nLocalRelativeSidValueBlock.NAME = \"relativeSidBlock\";\n\nclass LocalRelativeObjectIdentifierValueBlock extends ValueBlock {\n constructor({ value = EMPTY_STRING, ...parameters } = {}) {\n super(parameters);\n this.value = [];\n if (value) {\n this.fromString(value);\n }\n }\n fromBER(inputBuffer, inputOffset, inputLength) {\n let resultOffset = inputOffset;\n while (inputLength > 0) {\n const sidBlock = new LocalRelativeSidValueBlock();\n resultOffset = sidBlock.fromBER(inputBuffer, resultOffset, inputLength);\n if (resultOffset === -1) {\n this.blockLength = 0;\n this.error = sidBlock.error;\n return resultOffset;\n }\n this.blockLength += sidBlock.blockLength;\n inputLength -= sidBlock.blockLength;\n this.value.push(sidBlock);\n }\n return resultOffset;\n }\n toBER(sizeOnly, _writer) {\n const retBuffers = [];\n for (let i = 0; i < this.value.length; i++) {\n const valueBuf = this.value[i].toBER(sizeOnly);\n if (valueBuf.byteLength === 0) {\n this.error = this.value[i].error;\n return EMPTY_BUFFER;\n }\n retBuffers.push(valueBuf);\n }\n return concat(retBuffers);\n }\n fromString(string) {\n this.value = [];\n let pos1 = 0;\n let pos2 = 0;\n let sid = \"\";\n do {\n pos2 = string.indexOf(\".\", pos1);\n if (pos2 === -1)\n sid = string.substring(pos1);\n else\n sid = string.substring(pos1, pos2);\n pos1 = pos2 + 1;\n const sidBlock = new LocalRelativeSidValueBlock();\n sidBlock.valueDec = parseInt(sid, 10);\n if (isNaN(sidBlock.valueDec))\n return true;\n this.value.push(sidBlock);\n } while (pos2 !== -1);\n return true;\n }\n toString() {\n let result = \"\";\n let isHexOnly = false;\n for (let i = 0; i < this.value.length; i++) {\n isHexOnly = this.value[i].isHexOnly;\n let sidStr = this.value[i].toString();\n if (i !== 0)\n result = `${result}.`;\n if (isHexOnly) {\n sidStr = `{${sidStr}}`;\n result += sidStr;\n }\n else\n result += sidStr;\n }\n return result;\n }\n toJSON() {\n const object = {\n ...super.toJSON(),\n value: this.toString(),\n sidArray: [],\n };\n for (let i = 0; i < this.value.length; i++)\n object.sidArray.push(this.value[i].toJSON());\n return object;\n }\n}\nLocalRelativeObjectIdentifierValueBlock.NAME = \"RelativeObjectIdentifierValueBlock\";\n\nvar _a$l;\nclass RelativeObjectIdentifier extends BaseBlock {\n getValue() {\n return this.valueBlock.toString();\n }\n setValue(value) {\n this.valueBlock.fromString(value);\n }\n constructor(parameters = {}) {\n super(parameters, LocalRelativeObjectIdentifierValueBlock);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 13;\n }\n onAsciiEncoding() {\n return `${this.constructor.NAME} : ${this.valueBlock.toString() || \"empty\"}`;\n }\n toJSON() {\n return {\n ...super.toJSON(),\n value: this.getValue(),\n };\n }\n}\n_a$l = RelativeObjectIdentifier;\n(() => {\n typeStore.RelativeObjectIdentifier = _a$l;\n})();\nRelativeObjectIdentifier.NAME = \"RelativeObjectIdentifier\";\n\nvar _a$k;\nclass Sequence extends Constructed {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 16;\n }\n}\n_a$k = Sequence;\n(() => {\n typeStore.Sequence = _a$k;\n})();\nSequence.NAME = \"SEQUENCE\";\n\nvar _a$j;\nclass Set extends Constructed {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 17;\n }\n}\n_a$j = Set;\n(() => {\n typeStore.Set = _a$j;\n})();\nSet.NAME = \"SET\";\n\nclass LocalStringValueBlock extends HexBlock(ValueBlock) {\n constructor({ ...parameters } = {}) {\n super(parameters);\n this.isHexOnly = true;\n this.value = EMPTY_STRING;\n }\n toJSON() {\n return {\n ...super.toJSON(),\n value: this.value,\n };\n }\n}\nLocalStringValueBlock.NAME = \"StringValueBlock\";\n\nclass LocalSimpleStringValueBlock extends LocalStringValueBlock {\n}\nLocalSimpleStringValueBlock.NAME = \"SimpleStringValueBlock\";\n\nclass LocalSimpleStringBlock extends BaseStringBlock {\n constructor({ ...parameters } = {}) {\n super(parameters, LocalSimpleStringValueBlock);\n }\n fromBuffer(inputBuffer) {\n this.valueBlock.value = String.fromCharCode.apply(null, pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer));\n }\n fromString(inputString) {\n const strLen = inputString.length;\n const view = this.valueBlock.valueHexView = new Uint8Array(strLen);\n for (let i = 0; i < strLen; i++)\n view[i] = inputString.charCodeAt(i);\n this.valueBlock.value = inputString;\n }\n}\nLocalSimpleStringBlock.NAME = \"SIMPLE STRING\";\n\nclass LocalUtf8StringValueBlock extends LocalSimpleStringBlock {\n fromBuffer(inputBuffer) {\n this.valueBlock.valueHexView = pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer);\n try {\n this.valueBlock.value = pvtsutils.Convert.ToUtf8String(inputBuffer);\n }\n catch (ex) {\n this.warnings.push(`Error during \"decodeURIComponent\": ${ex}, using raw string`);\n this.valueBlock.value = pvtsutils.Convert.ToBinary(inputBuffer);\n }\n }\n fromString(inputString) {\n this.valueBlock.valueHexView = new Uint8Array(pvtsutils.Convert.FromUtf8String(inputString));\n this.valueBlock.value = inputString;\n }\n}\nLocalUtf8StringValueBlock.NAME = \"Utf8StringValueBlock\";\n\nvar _a$i;\nclass Utf8String extends LocalUtf8StringValueBlock {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 12;\n }\n}\n_a$i = Utf8String;\n(() => {\n typeStore.Utf8String = _a$i;\n})();\nUtf8String.NAME = \"UTF8String\";\n\nclass LocalBmpStringValueBlock extends LocalSimpleStringBlock {\n fromBuffer(inputBuffer) {\n this.valueBlock.value = pvtsutils.Convert.ToUtf16String(inputBuffer);\n this.valueBlock.valueHexView = pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer);\n }\n fromString(inputString) {\n this.valueBlock.value = inputString;\n this.valueBlock.valueHexView = new Uint8Array(pvtsutils.Convert.FromUtf16String(inputString));\n }\n}\nLocalBmpStringValueBlock.NAME = \"BmpStringValueBlock\";\n\nvar _a$h;\nclass BmpString extends LocalBmpStringValueBlock {\n constructor({ ...parameters } = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 30;\n }\n}\n_a$h = BmpString;\n(() => {\n typeStore.BmpString = _a$h;\n})();\nBmpString.NAME = \"BMPString\";\n\nclass LocalUniversalStringValueBlock extends LocalSimpleStringBlock {\n fromBuffer(inputBuffer) {\n const copyBuffer = ArrayBuffer.isView(inputBuffer) ? inputBuffer.slice().buffer : inputBuffer.slice(0);\n const valueView = new Uint8Array(copyBuffer);\n for (let i = 0; i < valueView.length; i += 4) {\n valueView[i] = valueView[i + 3];\n valueView[i + 1] = valueView[i + 2];\n valueView[i + 2] = 0x00;\n valueView[i + 3] = 0x00;\n }\n this.valueBlock.value = String.fromCharCode.apply(null, new Uint32Array(copyBuffer));\n }\n fromString(inputString) {\n const strLength = inputString.length;\n const valueHexView = this.valueBlock.valueHexView = new Uint8Array(strLength * 4);\n for (let i = 0; i < strLength; i++) {\n const codeBuf = pvutils.utilToBase(inputString.charCodeAt(i), 8);\n const codeView = new Uint8Array(codeBuf);\n if (codeView.length > 4)\n continue;\n const dif = 4 - codeView.length;\n for (let j = (codeView.length - 1); j >= 0; j--)\n valueHexView[i * 4 + j + dif] = codeView[j];\n }\n this.valueBlock.value = inputString;\n }\n}\nLocalUniversalStringValueBlock.NAME = \"UniversalStringValueBlock\";\n\nvar _a$g;\nclass UniversalString extends LocalUniversalStringValueBlock {\n constructor({ ...parameters } = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 28;\n }\n}\n_a$g = UniversalString;\n(() => {\n typeStore.UniversalString = _a$g;\n})();\nUniversalString.NAME = \"UniversalString\";\n\nvar _a$f;\nclass NumericString extends LocalSimpleStringBlock {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 18;\n }\n}\n_a$f = NumericString;\n(() => {\n typeStore.NumericString = _a$f;\n})();\nNumericString.NAME = \"NumericString\";\n\nvar _a$e;\nclass PrintableString extends LocalSimpleStringBlock {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 19;\n }\n}\n_a$e = PrintableString;\n(() => {\n typeStore.PrintableString = _a$e;\n})();\nPrintableString.NAME = \"PrintableString\";\n\nvar _a$d;\nclass TeletexString extends LocalSimpleStringBlock {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 20;\n }\n}\n_a$d = TeletexString;\n(() => {\n typeStore.TeletexString = _a$d;\n})();\nTeletexString.NAME = \"TeletexString\";\n\nvar _a$c;\nclass VideotexString extends LocalSimpleStringBlock {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 21;\n }\n}\n_a$c = VideotexString;\n(() => {\n typeStore.VideotexString = _a$c;\n})();\nVideotexString.NAME = \"VideotexString\";\n\nvar _a$b;\nclass IA5String extends LocalSimpleStringBlock {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 22;\n }\n}\n_a$b = IA5String;\n(() => {\n typeStore.IA5String = _a$b;\n})();\nIA5String.NAME = \"IA5String\";\n\nvar _a$a;\nclass GraphicString extends LocalSimpleStringBlock {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 25;\n }\n}\n_a$a = GraphicString;\n(() => {\n typeStore.GraphicString = _a$a;\n})();\nGraphicString.NAME = \"GraphicString\";\n\nvar _a$9;\nclass VisibleString extends LocalSimpleStringBlock {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 26;\n }\n}\n_a$9 = VisibleString;\n(() => {\n typeStore.VisibleString = _a$9;\n})();\nVisibleString.NAME = \"VisibleString\";\n\nvar _a$8;\nclass GeneralString extends LocalSimpleStringBlock {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 27;\n }\n}\n_a$8 = GeneralString;\n(() => {\n typeStore.GeneralString = _a$8;\n})();\nGeneralString.NAME = \"GeneralString\";\n\nvar _a$7;\nclass CharacterString extends LocalSimpleStringBlock {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 29;\n }\n}\n_a$7 = CharacterString;\n(() => {\n typeStore.CharacterString = _a$7;\n})();\nCharacterString.NAME = \"CharacterString\";\n\nvar _a$6;\nclass UTCTime extends VisibleString {\n constructor({ value, valueDate, ...parameters } = {}) {\n super(parameters);\n this.year = 0;\n this.month = 0;\n this.day = 0;\n this.hour = 0;\n this.minute = 0;\n this.second = 0;\n if (value) {\n this.fromString(value);\n this.valueBlock.valueHexView = new Uint8Array(value.length);\n for (let i = 0; i < value.length; i++)\n this.valueBlock.valueHexView[i] = value.charCodeAt(i);\n }\n if (valueDate) {\n this.fromDate(valueDate);\n this.valueBlock.valueHexView = new Uint8Array(this.toBuffer());\n }\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 23;\n }\n fromBuffer(inputBuffer) {\n this.fromString(String.fromCharCode.apply(null, pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer)));\n }\n toBuffer() {\n const str = this.toString();\n const buffer = new ArrayBuffer(str.length);\n const view = new Uint8Array(buffer);\n for (let i = 0; i < str.length; i++)\n view[i] = str.charCodeAt(i);\n return buffer;\n }\n fromDate(inputDate) {\n this.year = inputDate.getUTCFullYear();\n this.month = inputDate.getUTCMonth() + 1;\n this.day = inputDate.getUTCDate();\n this.hour = inputDate.getUTCHours();\n this.minute = inputDate.getUTCMinutes();\n this.second = inputDate.getUTCSeconds();\n }\n toDate() {\n return (new Date(Date.UTC(this.year, this.month - 1, this.day, this.hour, this.minute, this.second)));\n }\n fromString(inputString) {\n const parser = /(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{2})Z/ig;\n const parserArray = parser.exec(inputString);\n if (parserArray === null) {\n this.error = \"Wrong input string for conversion\";\n return;\n }\n const year = parseInt(parserArray[1], 10);\n if (year >= 50)\n this.year = 1900 + year;\n else\n this.year = 2000 + year;\n this.month = parseInt(parserArray[2], 10);\n this.day = parseInt(parserArray[3], 10);\n this.hour = parseInt(parserArray[4], 10);\n this.minute = parseInt(parserArray[5], 10);\n this.second = parseInt(parserArray[6], 10);\n }\n toString(encoding = \"iso\") {\n if (encoding === \"iso\") {\n const outputArray = new Array(7);\n outputArray[0] = pvutils.padNumber(((this.year < 2000) ? (this.year - 1900) : (this.year - 2000)), 2);\n outputArray[1] = pvutils.padNumber(this.month, 2);\n outputArray[2] = pvutils.padNumber(this.day, 2);\n outputArray[3] = pvutils.padNumber(this.hour, 2);\n outputArray[4] = pvutils.padNumber(this.minute, 2);\n outputArray[5] = pvutils.padNumber(this.second, 2);\n outputArray[6] = \"Z\";\n return outputArray.join(\"\");\n }\n return super.toString(encoding);\n }\n onAsciiEncoding() {\n return `${this.constructor.NAME} : ${this.toDate().toISOString()}`;\n }\n toJSON() {\n return {\n ...super.toJSON(),\n year: this.year,\n month: this.month,\n day: this.day,\n hour: this.hour,\n minute: this.minute,\n second: this.second,\n };\n }\n}\n_a$6 = UTCTime;\n(() => {\n typeStore.UTCTime = _a$6;\n})();\nUTCTime.NAME = \"UTCTime\";\n\nvar _a$5;\nclass GeneralizedTime extends UTCTime {\n constructor(parameters = {}) {\n var _b;\n super(parameters);\n (_b = this.millisecond) !== null && _b !== void 0 ? _b : (this.millisecond = 0);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 24;\n }\n fromDate(inputDate) {\n super.fromDate(inputDate);\n this.millisecond = inputDate.getUTCMilliseconds();\n }\n toDate() {\n const utcDate = Date.UTC(this.year, this.month - 1, this.day, this.hour, this.minute, this.second, this.millisecond);\n return (new Date(utcDate));\n }\n fromString(inputString) {\n let isUTC = false;\n let timeString = \"\";\n let dateTimeString = \"\";\n let fractionPart = 0;\n let parser;\n let hourDifference = 0;\n let minuteDifference = 0;\n if (inputString[inputString.length - 1] === \"Z\") {\n timeString = inputString.substring(0, inputString.length - 1);\n isUTC = true;\n }\n else {\n const number = new Number(inputString[inputString.length - 1]);\n if (isNaN(number.valueOf()))\n throw new Error(\"Wrong input string for conversion\");\n timeString = inputString;\n }\n if (isUTC) {\n if (timeString.indexOf(\"+\") !== -1)\n throw new Error(\"Wrong input string for conversion\");\n if (timeString.indexOf(\"-\") !== -1)\n throw new Error(\"Wrong input string for conversion\");\n }\n else {\n let multiplier = 1;\n let differencePosition = timeString.indexOf(\"+\");\n let differenceString = \"\";\n if (differencePosition === -1) {\n differencePosition = timeString.indexOf(\"-\");\n multiplier = -1;\n }\n if (differencePosition !== -1) {\n differenceString = timeString.substring(differencePosition + 1);\n timeString = timeString.substring(0, differencePosition);\n if ((differenceString.length !== 2) && (differenceString.length !== 4))\n throw new Error(\"Wrong input string for conversion\");\n let number = parseInt(differenceString.substring(0, 2), 10);\n if (isNaN(number.valueOf()))\n throw new Error(\"Wrong input string for conversion\");\n hourDifference = multiplier * number;\n if (differenceString.length === 4) {\n number = parseInt(differenceString.substring(2, 4), 10);\n if (isNaN(number.valueOf()))\n throw new Error(\"Wrong input string for conversion\");\n minuteDifference = multiplier * number;\n }\n }\n }\n let fractionPointPosition = timeString.indexOf(\".\");\n if (fractionPointPosition === -1)\n fractionPointPosition = timeString.indexOf(\",\");\n if (fractionPointPosition !== -1) {\n const fractionPartCheck = new Number(`0${timeString.substring(fractionPointPosition)}`);\n if (isNaN(fractionPartCheck.valueOf()))\n throw new Error(\"Wrong input string for conversion\");\n fractionPart = fractionPartCheck.valueOf();\n dateTimeString = timeString.substring(0, fractionPointPosition);\n }\n else\n dateTimeString = timeString;\n switch (true) {\n case (dateTimeString.length === 8):\n parser = /(\\d{4})(\\d{2})(\\d{2})/ig;\n if (fractionPointPosition !== -1)\n throw new Error(\"Wrong input string for conversion\");\n break;\n case (dateTimeString.length === 10):\n parser = /(\\d{4})(\\d{2})(\\d{2})(\\d{2})/ig;\n if (fractionPointPosition !== -1) {\n let fractionResult = 60 * fractionPart;\n this.minute = Math.floor(fractionResult);\n fractionResult = 60 * (fractionResult - this.minute);\n this.second = Math.floor(fractionResult);\n fractionResult = 1000 * (fractionResult - this.second);\n this.millisecond = Math.floor(fractionResult);\n }\n break;\n case (dateTimeString.length === 12):\n parser = /(\\d{4})(\\d{2})(\\d{2})(\\d{2})(\\d{2})/ig;\n if (fractionPointPosition !== -1) {\n let fractionResult = 60 * fractionPart;\n this.second = Math.floor(fractionResult);\n fractionResult = 1000 * (fractionResult - this.second);\n this.millisecond = Math.floor(fractionResult);\n }\n break;\n case (dateTimeString.length === 14):\n parser = /(\\d{4})(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{2})/ig;\n if (fractionPointPosition !== -1) {\n const fractionResult = 1000 * fractionPart;\n this.millisecond = Math.floor(fractionResult);\n }\n break;\n default:\n throw new Error(\"Wrong input string for conversion\");\n }\n const parserArray = parser.exec(dateTimeString);\n if (parserArray === null)\n throw new Error(\"Wrong input string for conversion\");\n for (let j = 1; j < parserArray.length; j++) {\n switch (j) {\n case 1:\n this.year = parseInt(parserArray[j], 10);\n break;\n case 2:\n this.month = parseInt(parserArray[j], 10);\n break;\n case 3:\n this.day = parseInt(parserArray[j], 10);\n break;\n case 4:\n this.hour = parseInt(parserArray[j], 10) + hourDifference;\n break;\n case 5:\n this.minute = parseInt(parserArray[j], 10) + minuteDifference;\n break;\n case 6:\n this.second = parseInt(parserArray[j], 10);\n break;\n default:\n throw new Error(\"Wrong input string for conversion\");\n }\n }\n if (isUTC === false) {\n const tempDate = new Date(this.year, this.month, this.day, this.hour, this.minute, this.second, this.millisecond);\n this.year = tempDate.getUTCFullYear();\n this.month = tempDate.getUTCMonth();\n this.day = tempDate.getUTCDay();\n this.hour = tempDate.getUTCHours();\n this.minute = tempDate.getUTCMinutes();\n this.second = tempDate.getUTCSeconds();\n this.millisecond = tempDate.getUTCMilliseconds();\n }\n }\n toString(encoding = \"iso\") {\n if (encoding === \"iso\") {\n const outputArray = [];\n outputArray.push(pvutils.padNumber(this.year, 4));\n outputArray.push(pvutils.padNumber(this.month, 2));\n outputArray.push(pvutils.padNumber(this.day, 2));\n outputArray.push(pvutils.padNumber(this.hour, 2));\n outputArray.push(pvutils.padNumber(this.minute, 2));\n outputArray.push(pvutils.padNumber(this.second, 2));\n if (this.millisecond !== 0) {\n outputArray.push(\".\");\n outputArray.push(pvutils.padNumber(this.millisecond, 3));\n }\n outputArray.push(\"Z\");\n return outputArray.join(\"\");\n }\n return super.toString(encoding);\n }\n toJSON() {\n return {\n ...super.toJSON(),\n millisecond: this.millisecond,\n };\n }\n}\n_a$5 = GeneralizedTime;\n(() => {\n typeStore.GeneralizedTime = _a$5;\n})();\nGeneralizedTime.NAME = \"GeneralizedTime\";\n\nvar _a$4;\nclass DATE extends Utf8String {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 31;\n }\n}\n_a$4 = DATE;\n(() => {\n typeStore.DATE = _a$4;\n})();\nDATE.NAME = \"DATE\";\n\nvar _a$3;\nclass TimeOfDay extends Utf8String {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 32;\n }\n}\n_a$3 = TimeOfDay;\n(() => {\n typeStore.TimeOfDay = _a$3;\n})();\nTimeOfDay.NAME = \"TimeOfDay\";\n\nvar _a$2;\nclass DateTime extends Utf8String {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 33;\n }\n}\n_a$2 = DateTime;\n(() => {\n typeStore.DateTime = _a$2;\n})();\nDateTime.NAME = \"DateTime\";\n\nvar _a$1;\nclass Duration extends Utf8String {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 34;\n }\n}\n_a$1 = Duration;\n(() => {\n typeStore.Duration = _a$1;\n})();\nDuration.NAME = \"Duration\";\n\nvar _a;\nclass TIME extends Utf8String {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 14;\n }\n}\n_a = TIME;\n(() => {\n typeStore.TIME = _a;\n})();\nTIME.NAME = \"TIME\";\n\nclass Any {\n constructor({ name = EMPTY_STRING, optional = false } = {}) {\n this.name = name;\n this.optional = optional;\n }\n}\n\nclass Choice extends Any {\n constructor({ value = [], ...parameters } = {}) {\n super(parameters);\n this.value = value;\n }\n}\n\nclass Repeated extends Any {\n constructor({ value = new Any(), local = false, ...parameters } = {}) {\n super(parameters);\n this.value = value;\n this.local = local;\n }\n}\n\nclass RawData {\n get data() {\n return this.dataView.slice().buffer;\n }\n set data(value) {\n this.dataView = pvtsutils.BufferSourceConverter.toUint8Array(value);\n }\n constructor({ data = EMPTY_VIEW } = {}) {\n this.dataView = pvtsutils.BufferSourceConverter.toUint8Array(data);\n }\n fromBER(inputBuffer, inputOffset, inputLength) {\n const endLength = inputOffset + inputLength;\n this.dataView = pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer).subarray(inputOffset, endLength);\n return endLength;\n }\n toBER(_sizeOnly) {\n return this.dataView.slice().buffer;\n }\n}\n\nfunction compareSchema(root, inputData, inputSchema) {\n if (inputSchema instanceof Choice) {\n for (const element of inputSchema.value) {\n const result = compareSchema(root, inputData, element);\n if (result.verified) {\n return {\n verified: true,\n result: root,\n };\n }\n }\n {\n const _result = {\n verified: false,\n result: { error: \"Wrong values for Choice type\" },\n };\n if (inputSchema.hasOwnProperty(NAME))\n _result.name = inputSchema.name;\n return _result;\n }\n }\n if (inputSchema instanceof Any) {\n if (inputSchema.hasOwnProperty(NAME))\n root[inputSchema.name] = inputData;\n return {\n verified: true,\n result: root,\n };\n }\n if ((root instanceof Object) === false) {\n return {\n verified: false,\n result: { error: \"Wrong root object\" },\n };\n }\n if ((inputData instanceof Object) === false) {\n return {\n verified: false,\n result: { error: \"Wrong ASN.1 data\" },\n };\n }\n if ((inputSchema instanceof Object) === false) {\n return {\n verified: false,\n result: { error: \"Wrong ASN.1 schema\" },\n };\n }\n if ((ID_BLOCK in inputSchema) === false) {\n return {\n verified: false,\n result: { error: \"Wrong ASN.1 schema\" },\n };\n }\n if ((FROM_BER in inputSchema.idBlock) === false) {\n return {\n verified: false,\n result: { error: \"Wrong ASN.1 schema\" },\n };\n }\n if ((TO_BER in inputSchema.idBlock) === false) {\n return {\n verified: false,\n result: { error: \"Wrong ASN.1 schema\" },\n };\n }\n const encodedId = inputSchema.idBlock.toBER(false);\n if (encodedId.byteLength === 0) {\n return {\n verified: false,\n result: { error: \"Error encoding idBlock for ASN.1 schema\" },\n };\n }\n const decodedOffset = inputSchema.idBlock.fromBER(encodedId, 0, encodedId.byteLength);\n if (decodedOffset === -1) {\n return {\n verified: false,\n result: { error: \"Error decoding idBlock for ASN.1 schema\" },\n };\n }\n if (inputSchema.idBlock.hasOwnProperty(TAG_CLASS) === false) {\n return {\n verified: false,\n result: { error: \"Wrong ASN.1 schema\" },\n };\n }\n if (inputSchema.idBlock.tagClass !== inputData.idBlock.tagClass) {\n return {\n verified: false,\n result: root,\n };\n }\n if (inputSchema.idBlock.hasOwnProperty(TAG_NUMBER) === false) {\n return {\n verified: false,\n result: { error: \"Wrong ASN.1 schema\" },\n };\n }\n if (inputSchema.idBlock.tagNumber !== inputData.idBlock.tagNumber) {\n return {\n verified: false,\n result: root,\n };\n }\n if (inputSchema.idBlock.hasOwnProperty(IS_CONSTRUCTED) === false) {\n return {\n verified: false,\n result: { error: \"Wrong ASN.1 schema\" },\n };\n }\n if (inputSchema.idBlock.isConstructed !== inputData.idBlock.isConstructed) {\n return {\n verified: false,\n result: root,\n };\n }\n if (!(IS_HEX_ONLY in inputSchema.idBlock)) {\n return {\n verified: false,\n result: { error: \"Wrong ASN.1 schema\" },\n };\n }\n if (inputSchema.idBlock.isHexOnly !== inputData.idBlock.isHexOnly) {\n return {\n verified: false,\n result: root,\n };\n }\n if (inputSchema.idBlock.isHexOnly) {\n if ((VALUE_HEX_VIEW in inputSchema.idBlock) === false) {\n return {\n verified: false,\n result: { error: \"Wrong ASN.1 schema\" },\n };\n }\n const schemaView = inputSchema.idBlock.valueHexView;\n const asn1View = inputData.idBlock.valueHexView;\n if (schemaView.length !== asn1View.length) {\n return {\n verified: false,\n result: root,\n };\n }\n for (let i = 0; i < schemaView.length; i++) {\n if (schemaView[i] !== asn1View[1]) {\n return {\n verified: false,\n result: root,\n };\n }\n }\n }\n if (inputSchema.name) {\n inputSchema.name = inputSchema.name.replace(/^\\s+|\\s+$/g, EMPTY_STRING);\n if (inputSchema.name)\n root[inputSchema.name] = inputData;\n }\n if (inputSchema instanceof typeStore.Constructed) {\n let admission = 0;\n let result = {\n verified: false,\n result: { error: \"Unknown error\" },\n };\n let maxLength = inputSchema.valueBlock.value.length;\n if (maxLength > 0) {\n if (inputSchema.valueBlock.value[0] instanceof Repeated) {\n maxLength = inputData.valueBlock.value.length;\n }\n }\n if (maxLength === 0) {\n return {\n verified: true,\n result: root,\n };\n }\n if ((inputData.valueBlock.value.length === 0)\n && (inputSchema.valueBlock.value.length !== 0)) {\n let _optional = true;\n for (let i = 0; i < inputSchema.valueBlock.value.length; i++)\n _optional = _optional && (inputSchema.valueBlock.value[i].optional || false);\n if (_optional) {\n return {\n verified: true,\n result: root,\n };\n }\n if (inputSchema.name) {\n inputSchema.name = inputSchema.name.replace(/^\\s+|\\s+$/g, EMPTY_STRING);\n if (inputSchema.name)\n delete root[inputSchema.name];\n }\n root.error = \"Inconsistent object length\";\n return {\n verified: false,\n result: root,\n };\n }\n for (let i = 0; i < maxLength; i++) {\n if ((i - admission) >= inputData.valueBlock.value.length) {\n if (inputSchema.valueBlock.value[i].optional === false) {\n const _result = {\n verified: false,\n result: root,\n };\n root.error = \"Inconsistent length between ASN.1 data and schema\";\n if (inputSchema.name) {\n inputSchema.name = inputSchema.name.replace(/^\\s+|\\s+$/g, EMPTY_STRING);\n if (inputSchema.name) {\n delete root[inputSchema.name];\n _result.name = inputSchema.name;\n }\n }\n return _result;\n }\n }\n else {\n if (inputSchema.valueBlock.value[0] instanceof Repeated) {\n result = compareSchema(root, inputData.valueBlock.value[i], inputSchema.valueBlock.value[0].value);\n if (result.verified === false) {\n if (inputSchema.valueBlock.value[0].optional)\n admission++;\n else {\n if (inputSchema.name) {\n inputSchema.name = inputSchema.name.replace(/^\\s+|\\s+$/g, EMPTY_STRING);\n if (inputSchema.name)\n delete root[inputSchema.name];\n }\n return result;\n }\n }\n if ((NAME in inputSchema.valueBlock.value[0]) && (inputSchema.valueBlock.value[0].name.length > 0)) {\n let arrayRoot = {};\n if ((LOCAL in inputSchema.valueBlock.value[0]) && (inputSchema.valueBlock.value[0].local))\n arrayRoot = inputData;\n else\n arrayRoot = root;\n if (typeof arrayRoot[inputSchema.valueBlock.value[0].name] === \"undefined\")\n arrayRoot[inputSchema.valueBlock.value[0].name] = [];\n arrayRoot[inputSchema.valueBlock.value[0].name].push(inputData.valueBlock.value[i]);\n }\n }\n else {\n result = compareSchema(root, inputData.valueBlock.value[i - admission], inputSchema.valueBlock.value[i]);\n if (result.verified === false) {\n if (inputSchema.valueBlock.value[i].optional)\n admission++;\n else {\n if (inputSchema.name) {\n inputSchema.name = inputSchema.name.replace(/^\\s+|\\s+$/g, EMPTY_STRING);\n if (inputSchema.name)\n delete root[inputSchema.name];\n }\n return result;\n }\n }\n }\n }\n }\n if (result.verified === false) {\n const _result = {\n verified: false,\n result: root,\n };\n if (inputSchema.name) {\n inputSchema.name = inputSchema.name.replace(/^\\s+|\\s+$/g, EMPTY_STRING);\n if (inputSchema.name) {\n delete root[inputSchema.name];\n _result.name = inputSchema.name;\n }\n }\n return _result;\n }\n return {\n verified: true,\n result: root,\n };\n }\n if (inputSchema.primitiveSchema\n && (VALUE_HEX_VIEW in inputData.valueBlock)) {\n const asn1 = localFromBER(inputData.valueBlock.valueHexView);\n if (asn1.offset === -1) {\n const _result = {\n verified: false,\n result: asn1.result,\n };\n if (inputSchema.name) {\n inputSchema.name = inputSchema.name.replace(/^\\s+|\\s+$/g, EMPTY_STRING);\n if (inputSchema.name) {\n delete root[inputSchema.name];\n _result.name = inputSchema.name;\n }\n }\n return _result;\n }\n return compareSchema(root, asn1.result, inputSchema.primitiveSchema);\n }\n return {\n verified: true,\n result: root,\n };\n}\nfunction verifySchema(inputBuffer, inputSchema) {\n if ((inputSchema instanceof Object) === false) {\n return {\n verified: false,\n result: { error: \"Wrong ASN.1 schema type\" },\n };\n }\n const asn1 = localFromBER(pvtsutils.BufferSourceConverter.toUint8Array(inputBuffer));\n if (asn1.offset === -1) {\n return {\n verified: false,\n result: asn1.result,\n };\n }\n return compareSchema(asn1.result, asn1.result, inputSchema);\n}\n\nexport { Any, BaseBlock, BaseStringBlock, BitString, BmpString, Boolean, CharacterString, Choice, Constructed, DATE, DateTime, Duration, EndOfContent, Enumerated, GeneralString, GeneralizedTime, GraphicString, HexBlock, IA5String, Integer, Null, NumericString, ObjectIdentifier, OctetString, Primitive, PrintableString, RawData, RelativeObjectIdentifier, Repeated, Sequence, Set, TIME, TeletexString, TimeOfDay, UTCTime, UniversalString, Utf8String, ValueBlock, VideotexString, ViewWriter, VisibleString, compareSchema, fromBER, verifySchema };\n","/**\n * Node.js module for Forge.\n *\n * @author Dave Longley\n *\n * Copyright 2011-2016 Digital Bazaar, Inc.\n */\nmodule.exports = {\n // default options\n options: {\n usePureJavaScript: false\n }\n};\n","/**\n * Base-N/Base-X encoding/decoding functions.\n *\n * Original implementation from base-x:\n * https://github.com/cryptocoinjs/base-x\n *\n * Which is MIT licensed:\n *\n * The MIT License (MIT)\n *\n * Copyright base-x contributors (c) 2016\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n * DEALINGS IN THE SOFTWARE.\n */\nvar api = {};\nmodule.exports = api;\n\n// baseN alphabet indexes\nvar _reverseAlphabets = {};\n\n/**\n * BaseN-encodes a Uint8Array using the given alphabet.\n *\n * @param input the Uint8Array to encode.\n * @param maxline the maximum number of encoded characters per line to use,\n * defaults to none.\n *\n * @return the baseN-encoded output string.\n */\napi.encode = function(input, alphabet, maxline) {\n if(typeof alphabet !== 'string') {\n throw new TypeError('\"alphabet\" must be a string.');\n }\n if(maxline !== undefined && typeof maxline !== 'number') {\n throw new TypeError('\"maxline\" must be a number.');\n }\n\n var output = '';\n\n if(!(input instanceof Uint8Array)) {\n // assume forge byte buffer\n output = _encodeWithByteBuffer(input, alphabet);\n } else {\n var i = 0;\n var base = alphabet.length;\n var first = alphabet.charAt(0);\n var digits = [0];\n for(i = 0; i < input.length; ++i) {\n for(var j = 0, carry = input[i]; j < digits.length; ++j) {\n carry += digits[j] << 8;\n digits[j] = carry % base;\n carry = (carry / base) | 0;\n }\n\n while(carry > 0) {\n digits.push(carry % base);\n carry = (carry / base) | 0;\n }\n }\n\n // deal with leading zeros\n for(i = 0; input[i] === 0 && i < input.length - 1; ++i) {\n output += first;\n }\n // convert digits to a string\n for(i = digits.length - 1; i >= 0; --i) {\n output += alphabet[digits[i]];\n }\n }\n\n if(maxline) {\n var regex = new RegExp('.{1,' + maxline + '}', 'g');\n output = output.match(regex).join('\\r\\n');\n }\n\n return output;\n};\n\n/**\n * Decodes a baseN-encoded (using the given alphabet) string to a\n * Uint8Array.\n *\n * @param input the baseN-encoded input string.\n *\n * @return the Uint8Array.\n */\napi.decode = function(input, alphabet) {\n if(typeof input !== 'string') {\n throw new TypeError('\"input\" must be a string.');\n }\n if(typeof alphabet !== 'string') {\n throw new TypeError('\"alphabet\" must be a string.');\n }\n\n var table = _reverseAlphabets[alphabet];\n if(!table) {\n // compute reverse alphabet\n table = _reverseAlphabets[alphabet] = [];\n for(var i = 0; i < alphabet.length; ++i) {\n table[alphabet.charCodeAt(i)] = i;\n }\n }\n\n // remove whitespace characters\n input = input.replace(/\\s/g, '');\n\n var base = alphabet.length;\n var first = alphabet.charAt(0);\n var bytes = [0];\n for(var i = 0; i < input.length; i++) {\n var value = table[input.charCodeAt(i)];\n if(value === undefined) {\n return;\n }\n\n for(var j = 0, carry = value; j < bytes.length; ++j) {\n carry += bytes[j] * base;\n bytes[j] = carry & 0xff;\n carry >>= 8;\n }\n\n while(carry > 0) {\n bytes.push(carry & 0xff);\n carry >>= 8;\n }\n }\n\n // deal with leading zeros\n for(var k = 0; input[k] === first && k < input.length - 1; ++k) {\n bytes.push(0);\n }\n\n if(typeof Buffer !== 'undefined') {\n return Buffer.from(bytes.reverse());\n }\n\n return new Uint8Array(bytes.reverse());\n};\n\nfunction _encodeWithByteBuffer(input, alphabet) {\n var i = 0;\n var base = alphabet.length;\n var first = alphabet.charAt(0);\n var digits = [0];\n for(i = 0; i < input.length(); ++i) {\n for(var j = 0, carry = input.at(i); j < digits.length; ++j) {\n carry += digits[j] << 8;\n digits[j] = carry % base;\n carry = (carry / base) | 0;\n }\n\n while(carry > 0) {\n digits.push(carry % base);\n carry = (carry / base) | 0;\n }\n }\n\n var output = '';\n\n // deal with leading zeros\n for(i = 0; input.at(i) === 0 && i < input.length() - 1; ++i) {\n output += first;\n }\n // convert digits to a string\n for(i = digits.length - 1; i >= 0; --i) {\n output += alphabet[digits[i]];\n }\n\n return output;\n}\n","/**\n * Utility functions for web applications.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2010-2018 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nvar baseN = require('./baseN');\n\n/* Utilities API */\nvar util = module.exports = forge.util = forge.util || {};\n\n// define setImmediate and nextTick\n(function() {\n // use native nextTick (unless we're in webpack)\n // webpack (or better node-libs-browser polyfill) sets process.browser.\n // this way we can detect webpack properly\n if(typeof process !== 'undefined' && process.nextTick && !process.browser) {\n util.nextTick = process.nextTick;\n if(typeof setImmediate === 'function') {\n util.setImmediate = setImmediate;\n } else {\n // polyfill setImmediate with nextTick, older versions of node\n // (those w/o setImmediate) won't totally starve IO\n util.setImmediate = util.nextTick;\n }\n return;\n }\n\n // polyfill nextTick with native setImmediate\n if(typeof setImmediate === 'function') {\n util.setImmediate = function() { return setImmediate.apply(undefined, arguments); };\n util.nextTick = function(callback) {\n return setImmediate(callback);\n };\n return;\n }\n\n /* Note: A polyfill upgrade pattern is used here to allow combining\n polyfills. For example, MutationObserver is fast, but blocks UI updates,\n so it needs to allow UI updates periodically, so it falls back on\n postMessage or setTimeout. */\n\n // polyfill with setTimeout\n util.setImmediate = function(callback) {\n setTimeout(callback, 0);\n };\n\n // upgrade polyfill to use postMessage\n if(typeof window !== 'undefined' &&\n typeof window.postMessage === 'function') {\n var msg = 'forge.setImmediate';\n var callbacks = [];\n util.setImmediate = function(callback) {\n callbacks.push(callback);\n // only send message when one hasn't been sent in\n // the current turn of the event loop\n if(callbacks.length === 1) {\n window.postMessage(msg, '*');\n }\n };\n function handler(event) {\n if(event.source === window && event.data === msg) {\n event.stopPropagation();\n var copy = callbacks.slice();\n callbacks.length = 0;\n copy.forEach(function(callback) {\n callback();\n });\n }\n }\n window.addEventListener('message', handler, true);\n }\n\n // upgrade polyfill to use MutationObserver\n if(typeof MutationObserver !== 'undefined') {\n // polyfill with MutationObserver\n var now = Date.now();\n var attr = true;\n var div = document.createElement('div');\n var callbacks = [];\n new MutationObserver(function() {\n var copy = callbacks.slice();\n callbacks.length = 0;\n copy.forEach(function(callback) {\n callback();\n });\n }).observe(div, {attributes: true});\n var oldSetImmediate = util.setImmediate;\n util.setImmediate = function(callback) {\n if(Date.now() - now > 15) {\n now = Date.now();\n oldSetImmediate(callback);\n } else {\n callbacks.push(callback);\n // only trigger observer when it hasn't been triggered in\n // the current turn of the event loop\n if(callbacks.length === 1) {\n div.setAttribute('a', attr = !attr);\n }\n }\n };\n }\n\n util.nextTick = util.setImmediate;\n})();\n\n// check if running under Node.js\nutil.isNodejs =\n typeof process !== 'undefined' && process.versions && process.versions.node;\n\n\n// 'self' will also work in Web Workers (instance of WorkerGlobalScope) while\n// it will point to `window` in the main thread.\n// To remain compatible with older browsers, we fall back to 'window' if 'self'\n// is not available.\nutil.globalScope = (function() {\n if(util.isNodejs) {\n return global;\n }\n\n return typeof self === 'undefined' ? window : self;\n})();\n\n// define isArray\nutil.isArray = Array.isArray || function(x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n};\n\n// define isArrayBuffer\nutil.isArrayBuffer = function(x) {\n return typeof ArrayBuffer !== 'undefined' && x instanceof ArrayBuffer;\n};\n\n// define isArrayBufferView\nutil.isArrayBufferView = function(x) {\n return x && util.isArrayBuffer(x.buffer) && x.byteLength !== undefined;\n};\n\n/**\n * Ensure a bits param is 8, 16, 24, or 32. Used to validate input for\n * algorithms where bit manipulation, JavaScript limitations, and/or algorithm\n * design only allow for byte operations of a limited size.\n *\n * @param n number of bits.\n *\n * Throw Error if n invalid.\n */\nfunction _checkBitsParam(n) {\n if(!(n === 8 || n === 16 || n === 24 || n === 32)) {\n throw new Error('Only 8, 16, 24, or 32 bits supported: ' + n);\n }\n}\n\n// TODO: set ByteBuffer to best available backing\nutil.ByteBuffer = ByteStringBuffer;\n\n/** Buffer w/BinaryString backing */\n\n/**\n * Constructor for a binary string backed byte buffer.\n *\n * @param [b] the bytes to wrap (either encoded as string, one byte per\n * character, or as an ArrayBuffer or Typed Array).\n */\nfunction ByteStringBuffer(b) {\n // TODO: update to match DataBuffer API\n\n // the data in this buffer\n this.data = '';\n // the pointer for reading from this buffer\n this.read = 0;\n\n if(typeof b === 'string') {\n this.data = b;\n } else if(util.isArrayBuffer(b) || util.isArrayBufferView(b)) {\n if(typeof Buffer !== 'undefined' && b instanceof Buffer) {\n this.data = b.toString('binary');\n } else {\n // convert native buffer to forge buffer\n // FIXME: support native buffers internally instead\n var arr = new Uint8Array(b);\n try {\n this.data = String.fromCharCode.apply(null, arr);\n } catch(e) {\n for(var i = 0; i < arr.length; ++i) {\n this.putByte(arr[i]);\n }\n }\n }\n } else if(b instanceof ByteStringBuffer ||\n (typeof b === 'object' && typeof b.data === 'string' &&\n typeof b.read === 'number')) {\n // copy existing buffer\n this.data = b.data;\n this.read = b.read;\n }\n\n // used for v8 optimization\n this._constructedStringLength = 0;\n}\nutil.ByteStringBuffer = ByteStringBuffer;\n\n/* Note: This is an optimization for V8-based browsers. When V8 concatenates\n a string, the strings are only joined logically using a \"cons string\" or\n \"constructed/concatenated string\". These containers keep references to one\n another and can result in very large memory usage. For example, if a 2MB\n string is constructed by concatenating 4 bytes together at a time, the\n memory usage will be ~44MB; so ~22x increase. The strings are only joined\n together when an operation requiring their joining takes place, such as\n substr(). This function is called when adding data to this buffer to ensure\n these types of strings are periodically joined to reduce the memory\n footprint. */\nvar _MAX_CONSTRUCTED_STRING_LENGTH = 4096;\nutil.ByteStringBuffer.prototype._optimizeConstructedString = function(x) {\n this._constructedStringLength += x;\n if(this._constructedStringLength > _MAX_CONSTRUCTED_STRING_LENGTH) {\n // this substr() should cause the constructed string to join\n this.data.substr(0, 1);\n this._constructedStringLength = 0;\n }\n};\n\n/**\n * Gets the number of bytes in this buffer.\n *\n * @return the number of bytes in this buffer.\n */\nutil.ByteStringBuffer.prototype.length = function() {\n return this.data.length - this.read;\n};\n\n/**\n * Gets whether or not this buffer is empty.\n *\n * @return true if this buffer is empty, false if not.\n */\nutil.ByteStringBuffer.prototype.isEmpty = function() {\n return this.length() <= 0;\n};\n\n/**\n * Puts a byte in this buffer.\n *\n * @param b the byte to put.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.putByte = function(b) {\n return this.putBytes(String.fromCharCode(b));\n};\n\n/**\n * Puts a byte in this buffer N times.\n *\n * @param b the byte to put.\n * @param n the number of bytes of value b to put.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.fillWithByte = function(b, n) {\n b = String.fromCharCode(b);\n var d = this.data;\n while(n > 0) {\n if(n & 1) {\n d += b;\n }\n n >>>= 1;\n if(n > 0) {\n b += b;\n }\n }\n this.data = d;\n this._optimizeConstructedString(n);\n return this;\n};\n\n/**\n * Puts bytes in this buffer.\n *\n * @param bytes the bytes (as a binary encoded string) to put.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.putBytes = function(bytes) {\n this.data += bytes;\n this._optimizeConstructedString(bytes.length);\n return this;\n};\n\n/**\n * Puts a UTF-16 encoded string into this buffer.\n *\n * @param str the string to put.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.putString = function(str) {\n return this.putBytes(util.encodeUtf8(str));\n};\n\n/**\n * Puts a 16-bit integer in this buffer in big-endian order.\n *\n * @param i the 16-bit integer.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.putInt16 = function(i) {\n return this.putBytes(\n String.fromCharCode(i >> 8 & 0xFF) +\n String.fromCharCode(i & 0xFF));\n};\n\n/**\n * Puts a 24-bit integer in this buffer in big-endian order.\n *\n * @param i the 24-bit integer.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.putInt24 = function(i) {\n return this.putBytes(\n String.fromCharCode(i >> 16 & 0xFF) +\n String.fromCharCode(i >> 8 & 0xFF) +\n String.fromCharCode(i & 0xFF));\n};\n\n/**\n * Puts a 32-bit integer in this buffer in big-endian order.\n *\n * @param i the 32-bit integer.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.putInt32 = function(i) {\n return this.putBytes(\n String.fromCharCode(i >> 24 & 0xFF) +\n String.fromCharCode(i >> 16 & 0xFF) +\n String.fromCharCode(i >> 8 & 0xFF) +\n String.fromCharCode(i & 0xFF));\n};\n\n/**\n * Puts a 16-bit integer in this buffer in little-endian order.\n *\n * @param i the 16-bit integer.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.putInt16Le = function(i) {\n return this.putBytes(\n String.fromCharCode(i & 0xFF) +\n String.fromCharCode(i >> 8 & 0xFF));\n};\n\n/**\n * Puts a 24-bit integer in this buffer in little-endian order.\n *\n * @param i the 24-bit integer.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.putInt24Le = function(i) {\n return this.putBytes(\n String.fromCharCode(i & 0xFF) +\n String.fromCharCode(i >> 8 & 0xFF) +\n String.fromCharCode(i >> 16 & 0xFF));\n};\n\n/**\n * Puts a 32-bit integer in this buffer in little-endian order.\n *\n * @param i the 32-bit integer.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.putInt32Le = function(i) {\n return this.putBytes(\n String.fromCharCode(i & 0xFF) +\n String.fromCharCode(i >> 8 & 0xFF) +\n String.fromCharCode(i >> 16 & 0xFF) +\n String.fromCharCode(i >> 24 & 0xFF));\n};\n\n/**\n * Puts an n-bit integer in this buffer in big-endian order.\n *\n * @param i the n-bit integer.\n * @param n the number of bits in the integer (8, 16, 24, or 32).\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.putInt = function(i, n) {\n _checkBitsParam(n);\n var bytes = '';\n do {\n n -= 8;\n bytes += String.fromCharCode((i >> n) & 0xFF);\n } while(n > 0);\n return this.putBytes(bytes);\n};\n\n/**\n * Puts a signed n-bit integer in this buffer in big-endian order. Two's\n * complement representation is used.\n *\n * @param i the n-bit integer.\n * @param n the number of bits in the integer (8, 16, 24, or 32).\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.putSignedInt = function(i, n) {\n // putInt checks n\n if(i < 0) {\n i += 2 << (n - 1);\n }\n return this.putInt(i, n);\n};\n\n/**\n * Puts the given buffer into this buffer.\n *\n * @param buffer the buffer to put into this one.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.putBuffer = function(buffer) {\n return this.putBytes(buffer.getBytes());\n};\n\n/**\n * Gets a byte from this buffer and advances the read pointer by 1.\n *\n * @return the byte.\n */\nutil.ByteStringBuffer.prototype.getByte = function() {\n return this.data.charCodeAt(this.read++);\n};\n\n/**\n * Gets a uint16 from this buffer in big-endian order and advances the read\n * pointer by 2.\n *\n * @return the uint16.\n */\nutil.ByteStringBuffer.prototype.getInt16 = function() {\n var rval = (\n this.data.charCodeAt(this.read) << 8 ^\n this.data.charCodeAt(this.read + 1));\n this.read += 2;\n return rval;\n};\n\n/**\n * Gets a uint24 from this buffer in big-endian order and advances the read\n * pointer by 3.\n *\n * @return the uint24.\n */\nutil.ByteStringBuffer.prototype.getInt24 = function() {\n var rval = (\n this.data.charCodeAt(this.read) << 16 ^\n this.data.charCodeAt(this.read + 1) << 8 ^\n this.data.charCodeAt(this.read + 2));\n this.read += 3;\n return rval;\n};\n\n/**\n * Gets a uint32 from this buffer in big-endian order and advances the read\n * pointer by 4.\n *\n * @return the word.\n */\nutil.ByteStringBuffer.prototype.getInt32 = function() {\n var rval = (\n this.data.charCodeAt(this.read) << 24 ^\n this.data.charCodeAt(this.read + 1) << 16 ^\n this.data.charCodeAt(this.read + 2) << 8 ^\n this.data.charCodeAt(this.read + 3));\n this.read += 4;\n return rval;\n};\n\n/**\n * Gets a uint16 from this buffer in little-endian order and advances the read\n * pointer by 2.\n *\n * @return the uint16.\n */\nutil.ByteStringBuffer.prototype.getInt16Le = function() {\n var rval = (\n this.data.charCodeAt(this.read) ^\n this.data.charCodeAt(this.read + 1) << 8);\n this.read += 2;\n return rval;\n};\n\n/**\n * Gets a uint24 from this buffer in little-endian order and advances the read\n * pointer by 3.\n *\n * @return the uint24.\n */\nutil.ByteStringBuffer.prototype.getInt24Le = function() {\n var rval = (\n this.data.charCodeAt(this.read) ^\n this.data.charCodeAt(this.read + 1) << 8 ^\n this.data.charCodeAt(this.read + 2) << 16);\n this.read += 3;\n return rval;\n};\n\n/**\n * Gets a uint32 from this buffer in little-endian order and advances the read\n * pointer by 4.\n *\n * @return the word.\n */\nutil.ByteStringBuffer.prototype.getInt32Le = function() {\n var rval = (\n this.data.charCodeAt(this.read) ^\n this.data.charCodeAt(this.read + 1) << 8 ^\n this.data.charCodeAt(this.read + 2) << 16 ^\n this.data.charCodeAt(this.read + 3) << 24);\n this.read += 4;\n return rval;\n};\n\n/**\n * Gets an n-bit integer from this buffer in big-endian order and advances the\n * read pointer by ceil(n/8).\n *\n * @param n the number of bits in the integer (8, 16, 24, or 32).\n *\n * @return the integer.\n */\nutil.ByteStringBuffer.prototype.getInt = function(n) {\n _checkBitsParam(n);\n var rval = 0;\n do {\n // TODO: Use (rval * 0x100) if adding support for 33 to 53 bits.\n rval = (rval << 8) + this.data.charCodeAt(this.read++);\n n -= 8;\n } while(n > 0);\n return rval;\n};\n\n/**\n * Gets a signed n-bit integer from this buffer in big-endian order, using\n * two's complement, and advances the read pointer by n/8.\n *\n * @param n the number of bits in the integer (8, 16, 24, or 32).\n *\n * @return the integer.\n */\nutil.ByteStringBuffer.prototype.getSignedInt = function(n) {\n // getInt checks n\n var x = this.getInt(n);\n var max = 2 << (n - 2);\n if(x >= max) {\n x -= max << 1;\n }\n return x;\n};\n\n/**\n * Reads bytes out as a binary encoded string and clears them from the\n * buffer. Note that the resulting string is binary encoded (in node.js this\n * encoding is referred to as `binary`, it is *not* `utf8`).\n *\n * @param count the number of bytes to read, undefined or null for all.\n *\n * @return a binary encoded string of bytes.\n */\nutil.ByteStringBuffer.prototype.getBytes = function(count) {\n var rval;\n if(count) {\n // read count bytes\n count = Math.min(this.length(), count);\n rval = this.data.slice(this.read, this.read + count);\n this.read += count;\n } else if(count === 0) {\n rval = '';\n } else {\n // read all bytes, optimize to only copy when needed\n rval = (this.read === 0) ? this.data : this.data.slice(this.read);\n this.clear();\n }\n return rval;\n};\n\n/**\n * Gets a binary encoded string of the bytes from this buffer without\n * modifying the read pointer.\n *\n * @param count the number of bytes to get, omit to get all.\n *\n * @return a string full of binary encoded characters.\n */\nutil.ByteStringBuffer.prototype.bytes = function(count) {\n return (typeof(count) === 'undefined' ?\n this.data.slice(this.read) :\n this.data.slice(this.read, this.read + count));\n};\n\n/**\n * Gets a byte at the given index without modifying the read pointer.\n *\n * @param i the byte index.\n *\n * @return the byte.\n */\nutil.ByteStringBuffer.prototype.at = function(i) {\n return this.data.charCodeAt(this.read + i);\n};\n\n/**\n * Puts a byte at the given index without modifying the read pointer.\n *\n * @param i the byte index.\n * @param b the byte to put.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.setAt = function(i, b) {\n this.data = this.data.substr(0, this.read + i) +\n String.fromCharCode(b) +\n this.data.substr(this.read + i + 1);\n return this;\n};\n\n/**\n * Gets the last byte without modifying the read pointer.\n *\n * @return the last byte.\n */\nutil.ByteStringBuffer.prototype.last = function() {\n return this.data.charCodeAt(this.data.length - 1);\n};\n\n/**\n * Creates a copy of this buffer.\n *\n * @return the copy.\n */\nutil.ByteStringBuffer.prototype.copy = function() {\n var c = util.createBuffer(this.data);\n c.read = this.read;\n return c;\n};\n\n/**\n * Compacts this buffer.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.compact = function() {\n if(this.read > 0) {\n this.data = this.data.slice(this.read);\n this.read = 0;\n }\n return this;\n};\n\n/**\n * Clears this buffer.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.clear = function() {\n this.data = '';\n this.read = 0;\n return this;\n};\n\n/**\n * Shortens this buffer by triming bytes off of the end of this buffer.\n *\n * @param count the number of bytes to trim off.\n *\n * @return this buffer.\n */\nutil.ByteStringBuffer.prototype.truncate = function(count) {\n var len = Math.max(0, this.length() - count);\n this.data = this.data.substr(this.read, len);\n this.read = 0;\n return this;\n};\n\n/**\n * Converts this buffer to a hexadecimal string.\n *\n * @return a hexadecimal string.\n */\nutil.ByteStringBuffer.prototype.toHex = function() {\n var rval = '';\n for(var i = this.read; i < this.data.length; ++i) {\n var b = this.data.charCodeAt(i);\n if(b < 16) {\n rval += '0';\n }\n rval += b.toString(16);\n }\n return rval;\n};\n\n/**\n * Converts this buffer to a UTF-16 string (standard JavaScript string).\n *\n * @return a UTF-16 string.\n */\nutil.ByteStringBuffer.prototype.toString = function() {\n return util.decodeUtf8(this.bytes());\n};\n\n/** End Buffer w/BinaryString backing */\n\n/** Buffer w/UInt8Array backing */\n\n/**\n * FIXME: Experimental. Do not use yet.\n *\n * Constructor for an ArrayBuffer-backed byte buffer.\n *\n * The buffer may be constructed from a string, an ArrayBuffer, DataView, or a\n * TypedArray.\n *\n * If a string is given, its encoding should be provided as an option,\n * otherwise it will default to 'binary'. A 'binary' string is encoded such\n * that each character is one byte in length and size.\n *\n * If an ArrayBuffer, DataView, or TypedArray is given, it will be used\n * *directly* without any copying. Note that, if a write to the buffer requires\n * more space, the buffer will allocate a new backing ArrayBuffer to\n * accommodate. The starting read and write offsets for the buffer may be\n * given as options.\n *\n * @param [b] the initial bytes for this buffer.\n * @param options the options to use:\n * [readOffset] the starting read offset to use (default: 0).\n * [writeOffset] the starting write offset to use (default: the\n * length of the first parameter).\n * [growSize] the minimum amount, in bytes, to grow the buffer by to\n * accommodate writes (default: 1024).\n * [encoding] the encoding ('binary', 'utf8', 'utf16', 'hex') for the\n * first parameter, if it is a string (default: 'binary').\n */\nfunction DataBuffer(b, options) {\n // default options\n options = options || {};\n\n // pointers for read from/write to buffer\n this.read = options.readOffset || 0;\n this.growSize = options.growSize || 1024;\n\n var isArrayBuffer = util.isArrayBuffer(b);\n var isArrayBufferView = util.isArrayBufferView(b);\n if(isArrayBuffer || isArrayBufferView) {\n // use ArrayBuffer directly\n if(isArrayBuffer) {\n this.data = new DataView(b);\n } else {\n // TODO: adjust read/write offset based on the type of view\n // or specify that this must be done in the options ... that the\n // offsets are byte-based\n this.data = new DataView(b.buffer, b.byteOffset, b.byteLength);\n }\n this.write = ('writeOffset' in options ?\n options.writeOffset : this.data.byteLength);\n return;\n }\n\n // initialize to empty array buffer and add any given bytes using putBytes\n this.data = new DataView(new ArrayBuffer(0));\n this.write = 0;\n\n if(b !== null && b !== undefined) {\n this.putBytes(b);\n }\n\n if('writeOffset' in options) {\n this.write = options.writeOffset;\n }\n}\nutil.DataBuffer = DataBuffer;\n\n/**\n * Gets the number of bytes in this buffer.\n *\n * @return the number of bytes in this buffer.\n */\nutil.DataBuffer.prototype.length = function() {\n return this.write - this.read;\n};\n\n/**\n * Gets whether or not this buffer is empty.\n *\n * @return true if this buffer is empty, false if not.\n */\nutil.DataBuffer.prototype.isEmpty = function() {\n return this.length() <= 0;\n};\n\n/**\n * Ensures this buffer has enough empty space to accommodate the given number\n * of bytes. An optional parameter may be given that indicates a minimum\n * amount to grow the buffer if necessary. If the parameter is not given,\n * the buffer will be grown by some previously-specified default amount\n * or heuristic.\n *\n * @param amount the number of bytes to accommodate.\n * @param [growSize] the minimum amount, in bytes, to grow the buffer by if\n * necessary.\n */\nutil.DataBuffer.prototype.accommodate = function(amount, growSize) {\n if(this.length() >= amount) {\n return this;\n }\n growSize = Math.max(growSize || this.growSize, amount);\n\n // grow buffer\n var src = new Uint8Array(\n this.data.buffer, this.data.byteOffset, this.data.byteLength);\n var dst = new Uint8Array(this.length() + growSize);\n dst.set(src);\n this.data = new DataView(dst.buffer);\n\n return this;\n};\n\n/**\n * Puts a byte in this buffer.\n *\n * @param b the byte to put.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.putByte = function(b) {\n this.accommodate(1);\n this.data.setUint8(this.write++, b);\n return this;\n};\n\n/**\n * Puts a byte in this buffer N times.\n *\n * @param b the byte to put.\n * @param n the number of bytes of value b to put.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.fillWithByte = function(b, n) {\n this.accommodate(n);\n for(var i = 0; i < n; ++i) {\n this.data.setUint8(b);\n }\n return this;\n};\n\n/**\n * Puts bytes in this buffer. The bytes may be given as a string, an\n * ArrayBuffer, a DataView, or a TypedArray.\n *\n * @param bytes the bytes to put.\n * @param [encoding] the encoding for the first parameter ('binary', 'utf8',\n * 'utf16', 'hex'), if it is a string (default: 'binary').\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.putBytes = function(bytes, encoding) {\n if(util.isArrayBufferView(bytes)) {\n var src = new Uint8Array(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n var len = src.byteLength - src.byteOffset;\n this.accommodate(len);\n var dst = new Uint8Array(this.data.buffer, this.write);\n dst.set(src);\n this.write += len;\n return this;\n }\n\n if(util.isArrayBuffer(bytes)) {\n var src = new Uint8Array(bytes);\n this.accommodate(src.byteLength);\n var dst = new Uint8Array(this.data.buffer);\n dst.set(src, this.write);\n this.write += src.byteLength;\n return this;\n }\n\n // bytes is a util.DataBuffer or equivalent\n if(bytes instanceof util.DataBuffer ||\n (typeof bytes === 'object' &&\n typeof bytes.read === 'number' && typeof bytes.write === 'number' &&\n util.isArrayBufferView(bytes.data))) {\n var src = new Uint8Array(bytes.data.byteLength, bytes.read, bytes.length());\n this.accommodate(src.byteLength);\n var dst = new Uint8Array(bytes.data.byteLength, this.write);\n dst.set(src);\n this.write += src.byteLength;\n return this;\n }\n\n if(bytes instanceof util.ByteStringBuffer) {\n // copy binary string and process as the same as a string parameter below\n bytes = bytes.data;\n encoding = 'binary';\n }\n\n // string conversion\n encoding = encoding || 'binary';\n if(typeof bytes === 'string') {\n var view;\n\n // decode from string\n if(encoding === 'hex') {\n this.accommodate(Math.ceil(bytes.length / 2));\n view = new Uint8Array(this.data.buffer, this.write);\n this.write += util.binary.hex.decode(bytes, view, this.write);\n return this;\n }\n if(encoding === 'base64') {\n this.accommodate(Math.ceil(bytes.length / 4) * 3);\n view = new Uint8Array(this.data.buffer, this.write);\n this.write += util.binary.base64.decode(bytes, view, this.write);\n return this;\n }\n\n // encode text as UTF-8 bytes\n if(encoding === 'utf8') {\n // encode as UTF-8 then decode string as raw binary\n bytes = util.encodeUtf8(bytes);\n encoding = 'binary';\n }\n\n // decode string as raw binary\n if(encoding === 'binary' || encoding === 'raw') {\n // one byte per character\n this.accommodate(bytes.length);\n view = new Uint8Array(this.data.buffer, this.write);\n this.write += util.binary.raw.decode(view);\n return this;\n }\n\n // encode text as UTF-16 bytes\n if(encoding === 'utf16') {\n // two bytes per character\n this.accommodate(bytes.length * 2);\n view = new Uint16Array(this.data.buffer, this.write);\n this.write += util.text.utf16.encode(view);\n return this;\n }\n\n throw new Error('Invalid encoding: ' + encoding);\n }\n\n throw Error('Invalid parameter: ' + bytes);\n};\n\n/**\n * Puts the given buffer into this buffer.\n *\n * @param buffer the buffer to put into this one.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.putBuffer = function(buffer) {\n this.putBytes(buffer);\n buffer.clear();\n return this;\n};\n\n/**\n * Puts a string into this buffer.\n *\n * @param str the string to put.\n * @param [encoding] the encoding for the string (default: 'utf16').\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.putString = function(str) {\n return this.putBytes(str, 'utf16');\n};\n\n/**\n * Puts a 16-bit integer in this buffer in big-endian order.\n *\n * @param i the 16-bit integer.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.putInt16 = function(i) {\n this.accommodate(2);\n this.data.setInt16(this.write, i);\n this.write += 2;\n return this;\n};\n\n/**\n * Puts a 24-bit integer in this buffer in big-endian order.\n *\n * @param i the 24-bit integer.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.putInt24 = function(i) {\n this.accommodate(3);\n this.data.setInt16(this.write, i >> 8 & 0xFFFF);\n this.data.setInt8(this.write, i >> 16 & 0xFF);\n this.write += 3;\n return this;\n};\n\n/**\n * Puts a 32-bit integer in this buffer in big-endian order.\n *\n * @param i the 32-bit integer.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.putInt32 = function(i) {\n this.accommodate(4);\n this.data.setInt32(this.write, i);\n this.write += 4;\n return this;\n};\n\n/**\n * Puts a 16-bit integer in this buffer in little-endian order.\n *\n * @param i the 16-bit integer.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.putInt16Le = function(i) {\n this.accommodate(2);\n this.data.setInt16(this.write, i, true);\n this.write += 2;\n return this;\n};\n\n/**\n * Puts a 24-bit integer in this buffer in little-endian order.\n *\n * @param i the 24-bit integer.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.putInt24Le = function(i) {\n this.accommodate(3);\n this.data.setInt8(this.write, i >> 16 & 0xFF);\n this.data.setInt16(this.write, i >> 8 & 0xFFFF, true);\n this.write += 3;\n return this;\n};\n\n/**\n * Puts a 32-bit integer in this buffer in little-endian order.\n *\n * @param i the 32-bit integer.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.putInt32Le = function(i) {\n this.accommodate(4);\n this.data.setInt32(this.write, i, true);\n this.write += 4;\n return this;\n};\n\n/**\n * Puts an n-bit integer in this buffer in big-endian order.\n *\n * @param i the n-bit integer.\n * @param n the number of bits in the integer (8, 16, 24, or 32).\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.putInt = function(i, n) {\n _checkBitsParam(n);\n this.accommodate(n / 8);\n do {\n n -= 8;\n this.data.setInt8(this.write++, (i >> n) & 0xFF);\n } while(n > 0);\n return this;\n};\n\n/**\n * Puts a signed n-bit integer in this buffer in big-endian order. Two's\n * complement representation is used.\n *\n * @param i the n-bit integer.\n * @param n the number of bits in the integer.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.putSignedInt = function(i, n) {\n _checkBitsParam(n);\n this.accommodate(n / 8);\n if(i < 0) {\n i += 2 << (n - 1);\n }\n return this.putInt(i, n);\n};\n\n/**\n * Gets a byte from this buffer and advances the read pointer by 1.\n *\n * @return the byte.\n */\nutil.DataBuffer.prototype.getByte = function() {\n return this.data.getInt8(this.read++);\n};\n\n/**\n * Gets a uint16 from this buffer in big-endian order and advances the read\n * pointer by 2.\n *\n * @return the uint16.\n */\nutil.DataBuffer.prototype.getInt16 = function() {\n var rval = this.data.getInt16(this.read);\n this.read += 2;\n return rval;\n};\n\n/**\n * Gets a uint24 from this buffer in big-endian order and advances the read\n * pointer by 3.\n *\n * @return the uint24.\n */\nutil.DataBuffer.prototype.getInt24 = function() {\n var rval = (\n this.data.getInt16(this.read) << 8 ^\n this.data.getInt8(this.read + 2));\n this.read += 3;\n return rval;\n};\n\n/**\n * Gets a uint32 from this buffer in big-endian order and advances the read\n * pointer by 4.\n *\n * @return the word.\n */\nutil.DataBuffer.prototype.getInt32 = function() {\n var rval = this.data.getInt32(this.read);\n this.read += 4;\n return rval;\n};\n\n/**\n * Gets a uint16 from this buffer in little-endian order and advances the read\n * pointer by 2.\n *\n * @return the uint16.\n */\nutil.DataBuffer.prototype.getInt16Le = function() {\n var rval = this.data.getInt16(this.read, true);\n this.read += 2;\n return rval;\n};\n\n/**\n * Gets a uint24 from this buffer in little-endian order and advances the read\n * pointer by 3.\n *\n * @return the uint24.\n */\nutil.DataBuffer.prototype.getInt24Le = function() {\n var rval = (\n this.data.getInt8(this.read) ^\n this.data.getInt16(this.read + 1, true) << 8);\n this.read += 3;\n return rval;\n};\n\n/**\n * Gets a uint32 from this buffer in little-endian order and advances the read\n * pointer by 4.\n *\n * @return the word.\n */\nutil.DataBuffer.prototype.getInt32Le = function() {\n var rval = this.data.getInt32(this.read, true);\n this.read += 4;\n return rval;\n};\n\n/**\n * Gets an n-bit integer from this buffer in big-endian order and advances the\n * read pointer by n/8.\n *\n * @param n the number of bits in the integer (8, 16, 24, or 32).\n *\n * @return the integer.\n */\nutil.DataBuffer.prototype.getInt = function(n) {\n _checkBitsParam(n);\n var rval = 0;\n do {\n // TODO: Use (rval * 0x100) if adding support for 33 to 53 bits.\n rval = (rval << 8) + this.data.getInt8(this.read++);\n n -= 8;\n } while(n > 0);\n return rval;\n};\n\n/**\n * Gets a signed n-bit integer from this buffer in big-endian order, using\n * two's complement, and advances the read pointer by n/8.\n *\n * @param n the number of bits in the integer (8, 16, 24, or 32).\n *\n * @return the integer.\n */\nutil.DataBuffer.prototype.getSignedInt = function(n) {\n // getInt checks n\n var x = this.getInt(n);\n var max = 2 << (n - 2);\n if(x >= max) {\n x -= max << 1;\n }\n return x;\n};\n\n/**\n * Reads bytes out as a binary encoded string and clears them from the\n * buffer.\n *\n * @param count the number of bytes to read, undefined or null for all.\n *\n * @return a binary encoded string of bytes.\n */\nutil.DataBuffer.prototype.getBytes = function(count) {\n // TODO: deprecate this method, it is poorly named and\n // this.toString('binary') replaces it\n // add a toTypedArray()/toArrayBuffer() function\n var rval;\n if(count) {\n // read count bytes\n count = Math.min(this.length(), count);\n rval = this.data.slice(this.read, this.read + count);\n this.read += count;\n } else if(count === 0) {\n rval = '';\n } else {\n // read all bytes, optimize to only copy when needed\n rval = (this.read === 0) ? this.data : this.data.slice(this.read);\n this.clear();\n }\n return rval;\n};\n\n/**\n * Gets a binary encoded string of the bytes from this buffer without\n * modifying the read pointer.\n *\n * @param count the number of bytes to get, omit to get all.\n *\n * @return a string full of binary encoded characters.\n */\nutil.DataBuffer.prototype.bytes = function(count) {\n // TODO: deprecate this method, it is poorly named, add \"getString()\"\n return (typeof(count) === 'undefined' ?\n this.data.slice(this.read) :\n this.data.slice(this.read, this.read + count));\n};\n\n/**\n * Gets a byte at the given index without modifying the read pointer.\n *\n * @param i the byte index.\n *\n * @return the byte.\n */\nutil.DataBuffer.prototype.at = function(i) {\n return this.data.getUint8(this.read + i);\n};\n\n/**\n * Puts a byte at the given index without modifying the read pointer.\n *\n * @param i the byte index.\n * @param b the byte to put.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.setAt = function(i, b) {\n this.data.setUint8(i, b);\n return this;\n};\n\n/**\n * Gets the last byte without modifying the read pointer.\n *\n * @return the last byte.\n */\nutil.DataBuffer.prototype.last = function() {\n return this.data.getUint8(this.write - 1);\n};\n\n/**\n * Creates a copy of this buffer.\n *\n * @return the copy.\n */\nutil.DataBuffer.prototype.copy = function() {\n return new util.DataBuffer(this);\n};\n\n/**\n * Compacts this buffer.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.compact = function() {\n if(this.read > 0) {\n var src = new Uint8Array(this.data.buffer, this.read);\n var dst = new Uint8Array(src.byteLength);\n dst.set(src);\n this.data = new DataView(dst);\n this.write -= this.read;\n this.read = 0;\n }\n return this;\n};\n\n/**\n * Clears this buffer.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.clear = function() {\n this.data = new DataView(new ArrayBuffer(0));\n this.read = this.write = 0;\n return this;\n};\n\n/**\n * Shortens this buffer by triming bytes off of the end of this buffer.\n *\n * @param count the number of bytes to trim off.\n *\n * @return this buffer.\n */\nutil.DataBuffer.prototype.truncate = function(count) {\n this.write = Math.max(0, this.length() - count);\n this.read = Math.min(this.read, this.write);\n return this;\n};\n\n/**\n * Converts this buffer to a hexadecimal string.\n *\n * @return a hexadecimal string.\n */\nutil.DataBuffer.prototype.toHex = function() {\n var rval = '';\n for(var i = this.read; i < this.data.byteLength; ++i) {\n var b = this.data.getUint8(i);\n if(b < 16) {\n rval += '0';\n }\n rval += b.toString(16);\n }\n return rval;\n};\n\n/**\n * Converts this buffer to a string, using the given encoding. If no\n * encoding is given, 'utf8' (UTF-8) is used.\n *\n * @param [encoding] the encoding to use: 'binary', 'utf8', 'utf16', 'hex',\n * 'base64' (default: 'utf8').\n *\n * @return a string representation of the bytes in this buffer.\n */\nutil.DataBuffer.prototype.toString = function(encoding) {\n var view = new Uint8Array(this.data, this.read, this.length());\n encoding = encoding || 'utf8';\n\n // encode to string\n if(encoding === 'binary' || encoding === 'raw') {\n return util.binary.raw.encode(view);\n }\n if(encoding === 'hex') {\n return util.binary.hex.encode(view);\n }\n if(encoding === 'base64') {\n return util.binary.base64.encode(view);\n }\n\n // decode to text\n if(encoding === 'utf8') {\n return util.text.utf8.decode(view);\n }\n if(encoding === 'utf16') {\n return util.text.utf16.decode(view);\n }\n\n throw new Error('Invalid encoding: ' + encoding);\n};\n\n/** End Buffer w/UInt8Array backing */\n\n/**\n * Creates a buffer that stores bytes. A value may be given to populate the\n * buffer with data. This value can either be string of encoded bytes or a\n * regular string of characters. When passing a string of binary encoded\n * bytes, the encoding `raw` should be given. This is also the default. When\n * passing a string of characters, the encoding `utf8` should be given.\n *\n * @param [input] a string with encoded bytes to store in the buffer.\n * @param [encoding] (default: 'raw', other: 'utf8').\n */\nutil.createBuffer = function(input, encoding) {\n // TODO: deprecate, use new ByteBuffer() instead\n encoding = encoding || 'raw';\n if(input !== undefined && encoding === 'utf8') {\n input = util.encodeUtf8(input);\n }\n return new util.ByteBuffer(input);\n};\n\n/**\n * Fills a string with a particular value. If you want the string to be a byte\n * string, pass in String.fromCharCode(theByte).\n *\n * @param c the character to fill the string with, use String.fromCharCode\n * to fill the string with a byte value.\n * @param n the number of characters of value c to fill with.\n *\n * @return the filled string.\n */\nutil.fillString = function(c, n) {\n var s = '';\n while(n > 0) {\n if(n & 1) {\n s += c;\n }\n n >>>= 1;\n if(n > 0) {\n c += c;\n }\n }\n return s;\n};\n\n/**\n * Performs a per byte XOR between two byte strings and returns the result as a\n * string of bytes.\n *\n * @param s1 first string of bytes.\n * @param s2 second string of bytes.\n * @param n the number of bytes to XOR.\n *\n * @return the XOR'd result.\n */\nutil.xorBytes = function(s1, s2, n) {\n var s3 = '';\n var b = '';\n var t = '';\n var i = 0;\n var c = 0;\n for(; n > 0; --n, ++i) {\n b = s1.charCodeAt(i) ^ s2.charCodeAt(i);\n if(c >= 10) {\n s3 += t;\n t = '';\n c = 0;\n }\n t += String.fromCharCode(b);\n ++c;\n }\n s3 += t;\n return s3;\n};\n\n/**\n * Converts a hex string into a 'binary' encoded string of bytes.\n *\n * @param hex the hexadecimal string to convert.\n *\n * @return the binary-encoded string of bytes.\n */\nutil.hexToBytes = function(hex) {\n // TODO: deprecate: \"Deprecated. Use util.binary.hex.decode instead.\"\n var rval = '';\n var i = 0;\n if(hex.length & 1 == 1) {\n // odd number of characters, convert first character alone\n i = 1;\n rval += String.fromCharCode(parseInt(hex[0], 16));\n }\n // convert 2 characters (1 byte) at a time\n for(; i < hex.length; i += 2) {\n rval += String.fromCharCode(parseInt(hex.substr(i, 2), 16));\n }\n return rval;\n};\n\n/**\n * Converts a 'binary' encoded string of bytes to hex.\n *\n * @param bytes the byte string to convert.\n *\n * @return the string of hexadecimal characters.\n */\nutil.bytesToHex = function(bytes) {\n // TODO: deprecate: \"Deprecated. Use util.binary.hex.encode instead.\"\n return util.createBuffer(bytes).toHex();\n};\n\n/**\n * Converts an 32-bit integer to 4-big-endian byte string.\n *\n * @param i the integer.\n *\n * @return the byte string.\n */\nutil.int32ToBytes = function(i) {\n return (\n String.fromCharCode(i >> 24 & 0xFF) +\n String.fromCharCode(i >> 16 & 0xFF) +\n String.fromCharCode(i >> 8 & 0xFF) +\n String.fromCharCode(i & 0xFF));\n};\n\n// base64 characters, reverse mapping\nvar _base64 =\n 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\nvar _base64Idx = [\n/*43 -43 = 0*/\n/*'+', 1, 2, 3,'/' */\n 62, -1, -1, -1, 63,\n\n/*'0','1','2','3','4','5','6','7','8','9' */\n 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,\n\n/*15, 16, 17,'=', 19, 20, 21 */\n -1, -1, -1, 64, -1, -1, -1,\n\n/*65 - 43 = 22*/\n/*'A','B','C','D','E','F','G','H','I','J','K','L','M', */\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,\n\n/*'N','O','P','Q','R','S','T','U','V','W','X','Y','Z' */\n 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,\n\n/*91 - 43 = 48 */\n/*48, 49, 50, 51, 52, 53 */\n -1, -1, -1, -1, -1, -1,\n\n/*97 - 43 = 54*/\n/*'a','b','c','d','e','f','g','h','i','j','k','l','m' */\n 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,\n\n/*'n','o','p','q','r','s','t','u','v','w','x','y','z' */\n 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51\n];\n\n// base58 characters (Bitcoin alphabet)\nvar _base58 = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';\n\n/**\n * Base64 encodes a 'binary' encoded string of bytes.\n *\n * @param input the binary encoded string of bytes to base64-encode.\n * @param maxline the maximum number of encoded characters per line to use,\n * defaults to none.\n *\n * @return the base64-encoded output.\n */\nutil.encode64 = function(input, maxline) {\n // TODO: deprecate: \"Deprecated. Use util.binary.base64.encode instead.\"\n var line = '';\n var output = '';\n var chr1, chr2, chr3;\n var i = 0;\n while(i < input.length) {\n chr1 = input.charCodeAt(i++);\n chr2 = input.charCodeAt(i++);\n chr3 = input.charCodeAt(i++);\n\n // encode 4 character group\n line += _base64.charAt(chr1 >> 2);\n line += _base64.charAt(((chr1 & 3) << 4) | (chr2 >> 4));\n if(isNaN(chr2)) {\n line += '==';\n } else {\n line += _base64.charAt(((chr2 & 15) << 2) | (chr3 >> 6));\n line += isNaN(chr3) ? '=' : _base64.charAt(chr3 & 63);\n }\n\n if(maxline && line.length > maxline) {\n output += line.substr(0, maxline) + '\\r\\n';\n line = line.substr(maxline);\n }\n }\n output += line;\n return output;\n};\n\n/**\n * Base64 decodes a string into a 'binary' encoded string of bytes.\n *\n * @param input the base64-encoded input.\n *\n * @return the binary encoded string.\n */\nutil.decode64 = function(input) {\n // TODO: deprecate: \"Deprecated. Use util.binary.base64.decode instead.\"\n\n // remove all non-base64 characters\n input = input.replace(/[^A-Za-z0-9\\+\\/\\=]/g, '');\n\n var output = '';\n var enc1, enc2, enc3, enc4;\n var i = 0;\n\n while(i < input.length) {\n enc1 = _base64Idx[input.charCodeAt(i++) - 43];\n enc2 = _base64Idx[input.charCodeAt(i++) - 43];\n enc3 = _base64Idx[input.charCodeAt(i++) - 43];\n enc4 = _base64Idx[input.charCodeAt(i++) - 43];\n\n output += String.fromCharCode((enc1 << 2) | (enc2 >> 4));\n if(enc3 !== 64) {\n // decoded at least 2 bytes\n output += String.fromCharCode(((enc2 & 15) << 4) | (enc3 >> 2));\n if(enc4 !== 64) {\n // decoded 3 bytes\n output += String.fromCharCode(((enc3 & 3) << 6) | enc4);\n }\n }\n }\n\n return output;\n};\n\n/**\n * Encodes the given string of characters (a standard JavaScript\n * string) as a binary encoded string where the bytes represent\n * a UTF-8 encoded string of characters. Non-ASCII characters will be\n * encoded as multiple bytes according to UTF-8.\n *\n * @param str a standard string of characters to encode.\n *\n * @return the binary encoded string.\n */\nutil.encodeUtf8 = function(str) {\n return unescape(encodeURIComponent(str));\n};\n\n/**\n * Decodes a binary encoded string that contains bytes that\n * represent a UTF-8 encoded string of characters -- into a\n * string of characters (a standard JavaScript string).\n *\n * @param str the binary encoded string to decode.\n *\n * @return the resulting standard string of characters.\n */\nutil.decodeUtf8 = function(str) {\n return decodeURIComponent(escape(str));\n};\n\n// binary encoding/decoding tools\n// FIXME: Experimental. Do not use yet.\nutil.binary = {\n raw: {},\n hex: {},\n base64: {},\n base58: {},\n baseN : {\n encode: baseN.encode,\n decode: baseN.decode\n }\n};\n\n/**\n * Encodes a Uint8Array as a binary-encoded string. This encoding uses\n * a value between 0 and 255 for each character.\n *\n * @param bytes the Uint8Array to encode.\n *\n * @return the binary-encoded string.\n */\nutil.binary.raw.encode = function(bytes) {\n return String.fromCharCode.apply(null, bytes);\n};\n\n/**\n * Decodes a binary-encoded string to a Uint8Array. This encoding uses\n * a value between 0 and 255 for each character.\n *\n * @param str the binary-encoded string to decode.\n * @param [output] an optional Uint8Array to write the output to; if it\n * is too small, an exception will be thrown.\n * @param [offset] the start offset for writing to the output (default: 0).\n *\n * @return the Uint8Array or the number of bytes written if output was given.\n */\nutil.binary.raw.decode = function(str, output, offset) {\n var out = output;\n if(!out) {\n out = new Uint8Array(str.length);\n }\n offset = offset || 0;\n var j = offset;\n for(var i = 0; i < str.length; ++i) {\n out[j++] = str.charCodeAt(i);\n }\n return output ? (j - offset) : out;\n};\n\n/**\n * Encodes a 'binary' string, ArrayBuffer, DataView, TypedArray, or\n * ByteBuffer as a string of hexadecimal characters.\n *\n * @param bytes the bytes to convert.\n *\n * @return the string of hexadecimal characters.\n */\nutil.binary.hex.encode = util.bytesToHex;\n\n/**\n * Decodes a hex-encoded string to a Uint8Array.\n *\n * @param hex the hexadecimal string to convert.\n * @param [output] an optional Uint8Array to write the output to; if it\n * is too small, an exception will be thrown.\n * @param [offset] the start offset for writing to the output (default: 0).\n *\n * @return the Uint8Array or the number of bytes written if output was given.\n */\nutil.binary.hex.decode = function(hex, output, offset) {\n var out = output;\n if(!out) {\n out = new Uint8Array(Math.ceil(hex.length / 2));\n }\n offset = offset || 0;\n var i = 0, j = offset;\n if(hex.length & 1) {\n // odd number of characters, convert first character alone\n i = 1;\n out[j++] = parseInt(hex[0], 16);\n }\n // convert 2 characters (1 byte) at a time\n for(; i < hex.length; i += 2) {\n out[j++] = parseInt(hex.substr(i, 2), 16);\n }\n return output ? (j - offset) : out;\n};\n\n/**\n * Base64-encodes a Uint8Array.\n *\n * @param input the Uint8Array to encode.\n * @param maxline the maximum number of encoded characters per line to use,\n * defaults to none.\n *\n * @return the base64-encoded output string.\n */\nutil.binary.base64.encode = function(input, maxline) {\n var line = '';\n var output = '';\n var chr1, chr2, chr3;\n var i = 0;\n while(i < input.byteLength) {\n chr1 = input[i++];\n chr2 = input[i++];\n chr3 = input[i++];\n\n // encode 4 character group\n line += _base64.charAt(chr1 >> 2);\n line += _base64.charAt(((chr1 & 3) << 4) | (chr2 >> 4));\n if(isNaN(chr2)) {\n line += '==';\n } else {\n line += _base64.charAt(((chr2 & 15) << 2) | (chr3 >> 6));\n line += isNaN(chr3) ? '=' : _base64.charAt(chr3 & 63);\n }\n\n if(maxline && line.length > maxline) {\n output += line.substr(0, maxline) + '\\r\\n';\n line = line.substr(maxline);\n }\n }\n output += line;\n return output;\n};\n\n/**\n * Decodes a base64-encoded string to a Uint8Array.\n *\n * @param input the base64-encoded input string.\n * @param [output] an optional Uint8Array to write the output to; if it\n * is too small, an exception will be thrown.\n * @param [offset] the start offset for writing to the output (default: 0).\n *\n * @return the Uint8Array or the number of bytes written if output was given.\n */\nutil.binary.base64.decode = function(input, output, offset) {\n var out = output;\n if(!out) {\n out = new Uint8Array(Math.ceil(input.length / 4) * 3);\n }\n\n // remove all non-base64 characters\n input = input.replace(/[^A-Za-z0-9\\+\\/\\=]/g, '');\n\n offset = offset || 0;\n var enc1, enc2, enc3, enc4;\n var i = 0, j = offset;\n\n while(i < input.length) {\n enc1 = _base64Idx[input.charCodeAt(i++) - 43];\n enc2 = _base64Idx[input.charCodeAt(i++) - 43];\n enc3 = _base64Idx[input.charCodeAt(i++) - 43];\n enc4 = _base64Idx[input.charCodeAt(i++) - 43];\n\n out[j++] = (enc1 << 2) | (enc2 >> 4);\n if(enc3 !== 64) {\n // decoded at least 2 bytes\n out[j++] = ((enc2 & 15) << 4) | (enc3 >> 2);\n if(enc4 !== 64) {\n // decoded 3 bytes\n out[j++] = ((enc3 & 3) << 6) | enc4;\n }\n }\n }\n\n // make sure result is the exact decoded length\n return output ? (j - offset) : out.subarray(0, j);\n};\n\n// add support for base58 encoding/decoding with Bitcoin alphabet\nutil.binary.base58.encode = function(input, maxline) {\n return util.binary.baseN.encode(input, _base58, maxline);\n};\nutil.binary.base58.decode = function(input, maxline) {\n return util.binary.baseN.decode(input, _base58, maxline);\n};\n\n// text encoding/decoding tools\n// FIXME: Experimental. Do not use yet.\nutil.text = {\n utf8: {},\n utf16: {}\n};\n\n/**\n * Encodes the given string as UTF-8 in a Uint8Array.\n *\n * @param str the string to encode.\n * @param [output] an optional Uint8Array to write the output to; if it\n * is too small, an exception will be thrown.\n * @param [offset] the start offset for writing to the output (default: 0).\n *\n * @return the Uint8Array or the number of bytes written if output was given.\n */\nutil.text.utf8.encode = function(str, output, offset) {\n str = util.encodeUtf8(str);\n var out = output;\n if(!out) {\n out = new Uint8Array(str.length);\n }\n offset = offset || 0;\n var j = offset;\n for(var i = 0; i < str.length; ++i) {\n out[j++] = str.charCodeAt(i);\n }\n return output ? (j - offset) : out;\n};\n\n/**\n * Decodes the UTF-8 contents from a Uint8Array.\n *\n * @param bytes the Uint8Array to decode.\n *\n * @return the resulting string.\n */\nutil.text.utf8.decode = function(bytes) {\n return util.decodeUtf8(String.fromCharCode.apply(null, bytes));\n};\n\n/**\n * Encodes the given string as UTF-16 in a Uint8Array.\n *\n * @param str the string to encode.\n * @param [output] an optional Uint8Array to write the output to; if it\n * is too small, an exception will be thrown.\n * @param [offset] the start offset for writing to the output (default: 0).\n *\n * @return the Uint8Array or the number of bytes written if output was given.\n */\nutil.text.utf16.encode = function(str, output, offset) {\n var out = output;\n if(!out) {\n out = new Uint8Array(str.length * 2);\n }\n var view = new Uint16Array(out.buffer);\n offset = offset || 0;\n var j = offset;\n var k = offset;\n for(var i = 0; i < str.length; ++i) {\n view[k++] = str.charCodeAt(i);\n j += 2;\n }\n return output ? (j - offset) : out;\n};\n\n/**\n * Decodes the UTF-16 contents from a Uint8Array.\n *\n * @param bytes the Uint8Array to decode.\n *\n * @return the resulting string.\n */\nutil.text.utf16.decode = function(bytes) {\n return String.fromCharCode.apply(null, new Uint16Array(bytes.buffer));\n};\n\n/**\n * Deflates the given data using a flash interface.\n *\n * @param api the flash interface.\n * @param bytes the data.\n * @param raw true to return only raw deflate data, false to include zlib\n * header and trailer.\n *\n * @return the deflated data as a string.\n */\nutil.deflate = function(api, bytes, raw) {\n bytes = util.decode64(api.deflate(util.encode64(bytes)).rval);\n\n // strip zlib header and trailer if necessary\n if(raw) {\n // zlib header is 2 bytes (CMF,FLG) where FLG indicates that\n // there is a 4-byte DICT (alder-32) block before the data if\n // its 5th bit is set\n var start = 2;\n var flg = bytes.charCodeAt(1);\n if(flg & 0x20) {\n start = 6;\n }\n // zlib trailer is 4 bytes of adler-32\n bytes = bytes.substring(start, bytes.length - 4);\n }\n\n return bytes;\n};\n\n/**\n * Inflates the given data using a flash interface.\n *\n * @param api the flash interface.\n * @param bytes the data.\n * @param raw true if the incoming data has no zlib header or trailer and is\n * raw DEFLATE data.\n *\n * @return the inflated data as a string, null on error.\n */\nutil.inflate = function(api, bytes, raw) {\n // TODO: add zlib header and trailer if necessary/possible\n var rval = api.inflate(util.encode64(bytes)).rval;\n return (rval === null) ? null : util.decode64(rval);\n};\n\n/**\n * Sets a storage object.\n *\n * @param api the storage interface.\n * @param id the storage ID to use.\n * @param obj the storage object, null to remove.\n */\nvar _setStorageObject = function(api, id, obj) {\n if(!api) {\n throw new Error('WebStorage not available.');\n }\n\n var rval;\n if(obj === null) {\n rval = api.removeItem(id);\n } else {\n // json-encode and base64-encode object\n obj = util.encode64(JSON.stringify(obj));\n rval = api.setItem(id, obj);\n }\n\n // handle potential flash error\n if(typeof(rval) !== 'undefined' && rval.rval !== true) {\n var error = new Error(rval.error.message);\n error.id = rval.error.id;\n error.name = rval.error.name;\n throw error;\n }\n};\n\n/**\n * Gets a storage object.\n *\n * @param api the storage interface.\n * @param id the storage ID to use.\n *\n * @return the storage object entry or null if none exists.\n */\nvar _getStorageObject = function(api, id) {\n if(!api) {\n throw new Error('WebStorage not available.');\n }\n\n // get the existing entry\n var rval = api.getItem(id);\n\n /* Note: We check api.init because we can't do (api == localStorage)\n on IE because of \"Class doesn't support Automation\" exception. Only\n the flash api has an init method so this works too, but we need a\n better solution in the future. */\n\n // flash returns item wrapped in an object, handle special case\n if(api.init) {\n if(rval.rval === null) {\n if(rval.error) {\n var error = new Error(rval.error.message);\n error.id = rval.error.id;\n error.name = rval.error.name;\n throw error;\n }\n // no error, but also no item\n rval = null;\n } else {\n rval = rval.rval;\n }\n }\n\n // handle decoding\n if(rval !== null) {\n // base64-decode and json-decode data\n rval = JSON.parse(util.decode64(rval));\n }\n\n return rval;\n};\n\n/**\n * Stores an item in local storage.\n *\n * @param api the storage interface.\n * @param id the storage ID to use.\n * @param key the key for the item.\n * @param data the data for the item (any javascript object/primitive).\n */\nvar _setItem = function(api, id, key, data) {\n // get storage object\n var obj = _getStorageObject(api, id);\n if(obj === null) {\n // create a new storage object\n obj = {};\n }\n // update key\n obj[key] = data;\n\n // set storage object\n _setStorageObject(api, id, obj);\n};\n\n/**\n * Gets an item from local storage.\n *\n * @param api the storage interface.\n * @param id the storage ID to use.\n * @param key the key for the item.\n *\n * @return the item.\n */\nvar _getItem = function(api, id, key) {\n // get storage object\n var rval = _getStorageObject(api, id);\n if(rval !== null) {\n // return data at key\n rval = (key in rval) ? rval[key] : null;\n }\n\n return rval;\n};\n\n/**\n * Removes an item from local storage.\n *\n * @param api the storage interface.\n * @param id the storage ID to use.\n * @param key the key for the item.\n */\nvar _removeItem = function(api, id, key) {\n // get storage object\n var obj = _getStorageObject(api, id);\n if(obj !== null && key in obj) {\n // remove key\n delete obj[key];\n\n // see if entry has no keys remaining\n var empty = true;\n for(var prop in obj) {\n empty = false;\n break;\n }\n if(empty) {\n // remove entry entirely if no keys are left\n obj = null;\n }\n\n // set storage object\n _setStorageObject(api, id, obj);\n }\n};\n\n/**\n * Clears the local disk storage identified by the given ID.\n *\n * @param api the storage interface.\n * @param id the storage ID to use.\n */\nvar _clearItems = function(api, id) {\n _setStorageObject(api, id, null);\n};\n\n/**\n * Calls a storage function.\n *\n * @param func the function to call.\n * @param args the arguments for the function.\n * @param location the location argument.\n *\n * @return the return value from the function.\n */\nvar _callStorageFunction = function(func, args, location) {\n var rval = null;\n\n // default storage types\n if(typeof(location) === 'undefined') {\n location = ['web', 'flash'];\n }\n\n // apply storage types in order of preference\n var type;\n var done = false;\n var exception = null;\n for(var idx in location) {\n type = location[idx];\n try {\n if(type === 'flash' || type === 'both') {\n if(args[0] === null) {\n throw new Error('Flash local storage not available.');\n }\n rval = func.apply(this, args);\n done = (type === 'flash');\n }\n if(type === 'web' || type === 'both') {\n args[0] = localStorage;\n rval = func.apply(this, args);\n done = true;\n }\n } catch(ex) {\n exception = ex;\n }\n if(done) {\n break;\n }\n }\n\n if(!done) {\n throw exception;\n }\n\n return rval;\n};\n\n/**\n * Stores an item on local disk.\n *\n * The available types of local storage include 'flash', 'web', and 'both'.\n *\n * The type 'flash' refers to flash local storage (SharedObject). In order\n * to use flash local storage, the 'api' parameter must be valid. The type\n * 'web' refers to WebStorage, if supported by the browser. The type 'both'\n * refers to storing using both 'flash' and 'web', not just one or the\n * other.\n *\n * The location array should list the storage types to use in order of\n * preference:\n *\n * ['flash']: flash only storage\n * ['web']: web only storage\n * ['both']: try to store in both\n * ['flash','web']: store in flash first, but if not available, 'web'\n * ['web','flash']: store in web first, but if not available, 'flash'\n *\n * The location array defaults to: ['web', 'flash']\n *\n * @param api the flash interface, null to use only WebStorage.\n * @param id the storage ID to use.\n * @param key the key for the item.\n * @param data the data for the item (any javascript object/primitive).\n * @param location an array with the preferred types of storage to use.\n */\nutil.setItem = function(api, id, key, data, location) {\n _callStorageFunction(_setItem, arguments, location);\n};\n\n/**\n * Gets an item on local disk.\n *\n * Set setItem() for details on storage types.\n *\n * @param api the flash interface, null to use only WebStorage.\n * @param id the storage ID to use.\n * @param key the key for the item.\n * @param location an array with the preferred types of storage to use.\n *\n * @return the item.\n */\nutil.getItem = function(api, id, key, location) {\n return _callStorageFunction(_getItem, arguments, location);\n};\n\n/**\n * Removes an item on local disk.\n *\n * Set setItem() for details on storage types.\n *\n * @param api the flash interface.\n * @param id the storage ID to use.\n * @param key the key for the item.\n * @param location an array with the preferred types of storage to use.\n */\nutil.removeItem = function(api, id, key, location) {\n _callStorageFunction(_removeItem, arguments, location);\n};\n\n/**\n * Clears the local disk storage identified by the given ID.\n *\n * Set setItem() for details on storage types.\n *\n * @param api the flash interface if flash is available.\n * @param id the storage ID to use.\n * @param location an array with the preferred types of storage to use.\n */\nutil.clearItems = function(api, id, location) {\n _callStorageFunction(_clearItems, arguments, location);\n};\n\n/**\n * Check if an object is empty.\n *\n * Taken from:\n * http://stackoverflow.com/questions/679915/how-do-i-test-for-an-empty-javascript-object-from-json/679937#679937\n *\n * @param object the object to check.\n */\nutil.isEmpty = function(obj) {\n for(var prop in obj) {\n if(obj.hasOwnProperty(prop)) {\n return false;\n }\n }\n return true;\n};\n\n/**\n * Format with simple printf-style interpolation.\n *\n * %%: literal '%'\n * %s,%o: convert next argument into a string.\n *\n * @param format the string to format.\n * @param ... arguments to interpolate into the format string.\n */\nutil.format = function(format) {\n var re = /%./g;\n // current match\n var match;\n // current part\n var part;\n // current arg index\n var argi = 0;\n // collected parts to recombine later\n var parts = [];\n // last index found\n var last = 0;\n // loop while matches remain\n while((match = re.exec(format))) {\n part = format.substring(last, re.lastIndex - 2);\n // don't add empty strings (ie, parts between %s%s)\n if(part.length > 0) {\n parts.push(part);\n }\n last = re.lastIndex;\n // switch on % code\n var code = match[0][1];\n switch(code) {\n case 's':\n case 'o':\n // check if enough arguments were given\n if(argi < arguments.length) {\n parts.push(arguments[argi++ + 1]);\n } else {\n parts.push('');\n }\n break;\n // FIXME: do proper formating for numbers, etc\n //case 'f':\n //case 'd':\n case '%':\n parts.push('%');\n break;\n default:\n parts.push('<%' + code + '?>');\n }\n }\n // add trailing part of format string\n parts.push(format.substring(last));\n return parts.join('');\n};\n\n/**\n * Formats a number.\n *\n * http://snipplr.com/view/5945/javascript-numberformat--ported-from-php/\n */\nutil.formatNumber = function(number, decimals, dec_point, thousands_sep) {\n // http://kevin.vanzonneveld.net\n // + original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)\n // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)\n // + bugfix by: Michael White (http://crestidg.com)\n // + bugfix by: Benjamin Lupton\n // + bugfix by: Allan Jensen (http://www.winternet.no)\n // + revised by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)\n // * example 1: number_format(1234.5678, 2, '.', '');\n // * returns 1: 1234.57\n\n var n = number, c = isNaN(decimals = Math.abs(decimals)) ? 2 : decimals;\n var d = dec_point === undefined ? ',' : dec_point;\n var t = thousands_sep === undefined ?\n '.' : thousands_sep, s = n < 0 ? '-' : '';\n var i = parseInt((n = Math.abs(+n || 0).toFixed(c)), 10) + '';\n var j = (i.length > 3) ? i.length % 3 : 0;\n return s + (j ? i.substr(0, j) + t : '') +\n i.substr(j).replace(/(\\d{3})(?=\\d)/g, '$1' + t) +\n (c ? d + Math.abs(n - i).toFixed(c).slice(2) : '');\n};\n\n/**\n * Formats a byte size.\n *\n * http://snipplr.com/view/5949/format-humanize-file-byte-size-presentation-in-javascript/\n */\nutil.formatSize = function(size) {\n if(size >= 1073741824) {\n size = util.formatNumber(size / 1073741824, 2, '.', '') + ' GiB';\n } else if(size >= 1048576) {\n size = util.formatNumber(size / 1048576, 2, '.', '') + ' MiB';\n } else if(size >= 1024) {\n size = util.formatNumber(size / 1024, 0) + ' KiB';\n } else {\n size = util.formatNumber(size, 0) + ' bytes';\n }\n return size;\n};\n\n/**\n * Converts an IPv4 or IPv6 string representation into bytes (in network order).\n *\n * @param ip the IPv4 or IPv6 address to convert.\n *\n * @return the 4-byte IPv6 or 16-byte IPv6 address or null if the address can't\n * be parsed.\n */\nutil.bytesFromIP = function(ip) {\n if(ip.indexOf('.') !== -1) {\n return util.bytesFromIPv4(ip);\n }\n if(ip.indexOf(':') !== -1) {\n return util.bytesFromIPv6(ip);\n }\n return null;\n};\n\n/**\n * Converts an IPv4 string representation into bytes (in network order).\n *\n * @param ip the IPv4 address to convert.\n *\n * @return the 4-byte address or null if the address can't be parsed.\n */\nutil.bytesFromIPv4 = function(ip) {\n ip = ip.split('.');\n if(ip.length !== 4) {\n return null;\n }\n var b = util.createBuffer();\n for(var i = 0; i < ip.length; ++i) {\n var num = parseInt(ip[i], 10);\n if(isNaN(num)) {\n return null;\n }\n b.putByte(num);\n }\n return b.getBytes();\n};\n\n/**\n * Converts an IPv6 string representation into bytes (in network order).\n *\n * @param ip the IPv6 address to convert.\n *\n * @return the 16-byte address or null if the address can't be parsed.\n */\nutil.bytesFromIPv6 = function(ip) {\n var blanks = 0;\n ip = ip.split(':').filter(function(e) {\n if(e.length === 0) ++blanks;\n return true;\n });\n var zeros = (8 - ip.length + blanks) * 2;\n var b = util.createBuffer();\n for(var i = 0; i < 8; ++i) {\n if(!ip[i] || ip[i].length === 0) {\n b.fillWithByte(0, zeros);\n zeros = 0;\n continue;\n }\n var bytes = util.hexToBytes(ip[i]);\n if(bytes.length < 2) {\n b.putByte(0);\n }\n b.putBytes(bytes);\n }\n return b.getBytes();\n};\n\n/**\n * Converts 4-bytes into an IPv4 string representation or 16-bytes into\n * an IPv6 string representation. The bytes must be in network order.\n *\n * @param bytes the bytes to convert.\n *\n * @return the IPv4 or IPv6 string representation if 4 or 16 bytes,\n * respectively, are given, otherwise null.\n */\nutil.bytesToIP = function(bytes) {\n if(bytes.length === 4) {\n return util.bytesToIPv4(bytes);\n }\n if(bytes.length === 16) {\n return util.bytesToIPv6(bytes);\n }\n return null;\n};\n\n/**\n * Converts 4-bytes into an IPv4 string representation. The bytes must be\n * in network order.\n *\n * @param bytes the bytes to convert.\n *\n * @return the IPv4 string representation or null for an invalid # of bytes.\n */\nutil.bytesToIPv4 = function(bytes) {\n if(bytes.length !== 4) {\n return null;\n }\n var ip = [];\n for(var i = 0; i < bytes.length; ++i) {\n ip.push(bytes.charCodeAt(i));\n }\n return ip.join('.');\n};\n\n/**\n * Converts 16-bytes into an IPv16 string representation. The bytes must be\n * in network order.\n *\n * @param bytes the bytes to convert.\n *\n * @return the IPv16 string representation or null for an invalid # of bytes.\n */\nutil.bytesToIPv6 = function(bytes) {\n if(bytes.length !== 16) {\n return null;\n }\n var ip = [];\n var zeroGroups = [];\n var zeroMaxGroup = 0;\n for(var i = 0; i < bytes.length; i += 2) {\n var hex = util.bytesToHex(bytes[i] + bytes[i + 1]);\n // canonicalize zero representation\n while(hex[0] === '0' && hex !== '0') {\n hex = hex.substr(1);\n }\n if(hex === '0') {\n var last = zeroGroups[zeroGroups.length - 1];\n var idx = ip.length;\n if(!last || idx !== last.end + 1) {\n zeroGroups.push({start: idx, end: idx});\n } else {\n last.end = idx;\n if((last.end - last.start) >\n (zeroGroups[zeroMaxGroup].end - zeroGroups[zeroMaxGroup].start)) {\n zeroMaxGroup = zeroGroups.length - 1;\n }\n }\n }\n ip.push(hex);\n }\n if(zeroGroups.length > 0) {\n var group = zeroGroups[zeroMaxGroup];\n // only shorten group of length > 0\n if(group.end - group.start > 0) {\n ip.splice(group.start, group.end - group.start + 1, '');\n if(group.start === 0) {\n ip.unshift('');\n }\n if(group.end === 7) {\n ip.push('');\n }\n }\n }\n return ip.join(':');\n};\n\n/**\n * Estimates the number of processes that can be run concurrently. If\n * creating Web Workers, keep in mind that the main JavaScript process needs\n * its own core.\n *\n * @param options the options to use:\n * update true to force an update (not use the cached value).\n * @param callback(err, max) called once the operation completes.\n */\nutil.estimateCores = function(options, callback) {\n if(typeof options === 'function') {\n callback = options;\n options = {};\n }\n options = options || {};\n if('cores' in util && !options.update) {\n return callback(null, util.cores);\n }\n if(typeof navigator !== 'undefined' &&\n 'hardwareConcurrency' in navigator &&\n navigator.hardwareConcurrency > 0) {\n util.cores = navigator.hardwareConcurrency;\n return callback(null, util.cores);\n }\n if(typeof Worker === 'undefined') {\n // workers not available\n util.cores = 1;\n return callback(null, util.cores);\n }\n if(typeof Blob === 'undefined') {\n // can't estimate, default to 2\n util.cores = 2;\n return callback(null, util.cores);\n }\n\n // create worker concurrency estimation code as blob\n var blobUrl = URL.createObjectURL(new Blob(['(',\n function() {\n self.addEventListener('message', function(e) {\n // run worker for 4 ms\n var st = Date.now();\n var et = st + 4;\n while(Date.now() < et);\n self.postMessage({st: st, et: et});\n });\n }.toString(),\n ')()'], {type: 'application/javascript'}));\n\n // take 5 samples using 16 workers\n sample([], 5, 16);\n\n function sample(max, samples, numWorkers) {\n if(samples === 0) {\n // get overlap average\n var avg = Math.floor(max.reduce(function(avg, x) {\n return avg + x;\n }, 0) / max.length);\n util.cores = Math.max(1, avg);\n URL.revokeObjectURL(blobUrl);\n return callback(null, util.cores);\n }\n map(numWorkers, function(err, results) {\n max.push(reduce(numWorkers, results));\n sample(max, samples - 1, numWorkers);\n });\n }\n\n function map(numWorkers, callback) {\n var workers = [];\n var results = [];\n for(var i = 0; i < numWorkers; ++i) {\n var worker = new Worker(blobUrl);\n worker.addEventListener('message', function(e) {\n results.push(e.data);\n if(results.length === numWorkers) {\n for(var i = 0; i < numWorkers; ++i) {\n workers[i].terminate();\n }\n callback(null, results);\n }\n });\n workers.push(worker);\n }\n for(var i = 0; i < numWorkers; ++i) {\n workers[i].postMessage(i);\n }\n }\n\n function reduce(numWorkers, results) {\n // find overlapping time windows\n var overlaps = [];\n for(var n = 0; n < numWorkers; ++n) {\n var r1 = results[n];\n var overlap = overlaps[n] = [];\n for(var i = 0; i < numWorkers; ++i) {\n if(n === i) {\n continue;\n }\n var r2 = results[i];\n if((r1.st > r2.st && r1.st < r2.et) ||\n (r2.st > r1.st && r2.st < r1.et)) {\n overlap.push(i);\n }\n }\n }\n // get maximum overlaps ... don't include overlapping worker itself\n // as the main JS process was also being scheduled during the work and\n // would have to be subtracted from the estimate anyway\n return overlaps.reduce(function(max, overlap) {\n return Math.max(max, overlap.length);\n }, 0);\n }\n};\n","/**\n * Javascript implementation of basic PEM (Privacy Enhanced Mail) algorithms.\n *\n * See: RFC 1421.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2013-2014 Digital Bazaar, Inc.\n *\n * A Forge PEM object has the following fields:\n *\n * type: identifies the type of message (eg: \"RSA PRIVATE KEY\").\n *\n * procType: identifies the type of processing performed on the message,\n * it has two subfields: version and type, eg: 4,ENCRYPTED.\n *\n * contentDomain: identifies the type of content in the message, typically\n * only uses the value: \"RFC822\".\n *\n * dekInfo: identifies the message encryption algorithm and mode and includes\n * any parameters for the algorithm, it has two subfields: algorithm and\n * parameters, eg: DES-CBC,F8143EDE5960C597.\n *\n * headers: contains all other PEM encapsulated headers -- where order is\n * significant (for pairing data like recipient ID + key info).\n *\n * body: the binary-encoded body.\n */\nvar forge = require('./forge');\nrequire('./util');\n\n// shortcut for pem API\nvar pem = module.exports = forge.pem = forge.pem || {};\n\n/**\n * Encodes (serializes) the given PEM object.\n *\n * @param msg the PEM message object to encode.\n * @param options the options to use:\n * maxline the maximum characters per line for the body, (default: 64).\n *\n * @return the PEM-formatted string.\n */\npem.encode = function(msg, options) {\n options = options || {};\n var rval = '-----BEGIN ' + msg.type + '-----\\r\\n';\n\n // encode special headers\n var header;\n if(msg.procType) {\n header = {\n name: 'Proc-Type',\n values: [String(msg.procType.version), msg.procType.type]\n };\n rval += foldHeader(header);\n }\n if(msg.contentDomain) {\n header = {name: 'Content-Domain', values: [msg.contentDomain]};\n rval += foldHeader(header);\n }\n if(msg.dekInfo) {\n header = {name: 'DEK-Info', values: [msg.dekInfo.algorithm]};\n if(msg.dekInfo.parameters) {\n header.values.push(msg.dekInfo.parameters);\n }\n rval += foldHeader(header);\n }\n\n if(msg.headers) {\n // encode all other headers\n for(var i = 0; i < msg.headers.length; ++i) {\n rval += foldHeader(msg.headers[i]);\n }\n }\n\n // terminate header\n if(msg.procType) {\n rval += '\\r\\n';\n }\n\n // add body\n rval += forge.util.encode64(msg.body, options.maxline || 64) + '\\r\\n';\n\n rval += '-----END ' + msg.type + '-----\\r\\n';\n return rval;\n};\n\n/**\n * Decodes (deserializes) all PEM messages found in the given string.\n *\n * @param str the PEM-formatted string to decode.\n *\n * @return the PEM message objects in an array.\n */\npem.decode = function(str) {\n var rval = [];\n\n // split string into PEM messages (be lenient w/EOF on BEGIN line)\n var rMessage = /\\s*-----BEGIN ([A-Z0-9- ]+)-----\\r?\\n?([\\x21-\\x7e\\s]+?(?:\\r?\\n\\r?\\n))?([:A-Za-z0-9+\\/=\\s]+?)-----END \\1-----/g;\n var rHeader = /([\\x21-\\x7e]+):\\s*([\\x21-\\x7e\\s^:]+)/;\n var rCRLF = /\\r?\\n/;\n var match;\n while(true) {\n match = rMessage.exec(str);\n if(!match) {\n break;\n }\n\n // accept \"NEW CERTIFICATE REQUEST\" as \"CERTIFICATE REQUEST\"\n // https://datatracker.ietf.org/doc/html/rfc7468#section-7\n var type = match[1];\n if(type === 'NEW CERTIFICATE REQUEST') {\n type = 'CERTIFICATE REQUEST';\n }\n\n var msg = {\n type: type,\n procType: null,\n contentDomain: null,\n dekInfo: null,\n headers: [],\n body: forge.util.decode64(match[3])\n };\n rval.push(msg);\n\n // no headers\n if(!match[2]) {\n continue;\n }\n\n // parse headers\n var lines = match[2].split(rCRLF);\n var li = 0;\n while(match && li < lines.length) {\n // get line, trim any rhs whitespace\n var line = lines[li].replace(/\\s+$/, '');\n\n // RFC2822 unfold any following folded lines\n for(var nl = li + 1; nl < lines.length; ++nl) {\n var next = lines[nl];\n if(!/\\s/.test(next[0])) {\n break;\n }\n line += next;\n li = nl;\n }\n\n // parse header\n match = line.match(rHeader);\n if(match) {\n var header = {name: match[1], values: []};\n var values = match[2].split(',');\n for(var vi = 0; vi < values.length; ++vi) {\n header.values.push(ltrim(values[vi]));\n }\n\n // Proc-Type must be the first header\n if(!msg.procType) {\n if(header.name !== 'Proc-Type') {\n throw new Error('Invalid PEM formatted message. The first ' +\n 'encapsulated header must be \"Proc-Type\".');\n } else if(header.values.length !== 2) {\n throw new Error('Invalid PEM formatted message. The \"Proc-Type\" ' +\n 'header must have two subfields.');\n }\n msg.procType = {version: values[0], type: values[1]};\n } else if(!msg.contentDomain && header.name === 'Content-Domain') {\n // special-case Content-Domain\n msg.contentDomain = values[0] || '';\n } else if(!msg.dekInfo && header.name === 'DEK-Info') {\n // special-case DEK-Info\n if(header.values.length === 0) {\n throw new Error('Invalid PEM formatted message. The \"DEK-Info\" ' +\n 'header must have at least one subfield.');\n }\n msg.dekInfo = {algorithm: values[0], parameters: values[1] || null};\n } else {\n msg.headers.push(header);\n }\n }\n\n ++li;\n }\n\n if(msg.procType === 'ENCRYPTED' && !msg.dekInfo) {\n throw new Error('Invalid PEM formatted message. The \"DEK-Info\" ' +\n 'header must be present if \"Proc-Type\" is \"ENCRYPTED\".');\n }\n }\n\n if(rval.length === 0) {\n throw new Error('Invalid PEM formatted message.');\n }\n\n return rval;\n};\n\nfunction foldHeader(header) {\n var rval = header.name + ': ';\n\n // ensure values with CRLF are folded\n var values = [];\n var insertSpace = function(match, $1) {\n return ' ' + $1;\n };\n for(var i = 0; i < header.values.length; ++i) {\n values.push(header.values[i].replace(/^(\\S+\\r\\n)/, insertSpace));\n }\n rval += values.join(',') + '\\r\\n';\n\n // do folding\n var length = 0;\n var candidate = -1;\n for(var i = 0; i < rval.length; ++i, ++length) {\n if(length > 65 && candidate !== -1) {\n var insert = rval[candidate];\n if(insert === ',') {\n ++candidate;\n rval = rval.substr(0, candidate) + '\\r\\n ' + rval.substr(candidate);\n } else {\n rval = rval.substr(0, candidate) +\n '\\r\\n' + insert + rval.substr(candidate + 1);\n }\n length = (i - candidate - 1);\n candidate = -1;\n ++i;\n } else if(rval[i] === ' ' || rval[i] === '\\t' || rval[i] === ',') {\n candidate = i;\n }\n }\n\n return rval;\n}\n\nfunction ltrim(str) {\n return str.replace(/^\\s+/, '');\n}\n","import BadKeyError from \"../BadKeyError.js\";\nimport { EncryptedPrivateKeyInfo } from \"../primitive/pkcs.js\";\nimport * as der from \"./der.js\";\nimport * as base64 from \"./base64.js\";\nimport Ed25519PrivateKey from \"../Ed25519PrivateKey.js\";\nimport EcdsaPrivateKey from \"../EcdsaPrivateKey.js\";\nimport * as asn1 from \"asn1js\";\n// @ts-ignore\nimport pemForge from \"forge-light/lib/pem.js\";\nimport * as hex from \"./hex.js\";\nimport * as aes from \"../primitive/aes.js\";\nimport { Buffer } from \"buffer\";\n\nconst ID_ED25519 = \"1.3.101.112\";\n\n/**\n * @param {string} pem\n * @param {string} [passphrase]\n * @returns {Promise}\n */\nexport async function readPemED25519(pem, passphrase) {\n const pemKeyData = pem.replace(\n /-----BEGIN (.*)-----|-----END (.*)-----|\\n|\\r/g,\n \"\",\n );\n\n const key = base64.decode(pemKeyData);\n if (passphrase) {\n let encrypted;\n\n try {\n encrypted = EncryptedPrivateKeyInfo.parse(key);\n } catch (error) {\n const message =\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n error != null && /** @type {Error} */ (error).message != null\n ? // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n /** @type {Error} */ (error).message\n : \"\";\n\n throw new BadKeyError(\n `failed to parse encrypted private key: ${message}`,\n );\n }\n\n const decrypted = await encrypted.decrypt(passphrase);\n\n let privateKey = null;\n\n if (decrypted.algId.algIdent === ID_ED25519) {\n privateKey = Ed25519PrivateKey;\n } else {\n throw new BadKeyError(\n `unknown private key algorithm ${decrypted.algId.toString()}`,\n );\n }\n\n const keyData = der.decode(decrypted.privateKey);\n\n if (!(\"bytes\" in keyData)) {\n throw new BadKeyError(\n `expected ASN bytes, got ${JSON.stringify(keyData)}`,\n );\n }\n\n return privateKey.fromBytes(keyData.bytes);\n }\n\n return key.subarray(16);\n}\n\n/**\n * @param {string} pem\n * @param {string} [passphrase]\n * @returns {Promise}\n */\nexport async function readPemECDSA(pem, passphrase) {\n const pemKeyData = pem.replace(\n /-----BEGIN (.*)-----|-----END (.*)-----|\\n|\\r/g,\n \"\",\n );\n const key = base64.decode(pemKeyData);\n\n if (passphrase) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call\n const decodedPem = pemForge.decode(pem)[0];\n /** @type {string} */\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment\n const ivString = decodedPem.dekInfo.parameters;\n const iv = hex.decode(ivString);\n const pemLines = pem.split(\"\\n\");\n const key = await aes.messageDigest(passphrase, ivString);\n const dataToDecrypt = Buffer.from(\n pemLines.slice(4, pemLines.length - 1).join(\"\"),\n \"base64\",\n );\n const keyDerBytes = await aes.createDecipheriv(\n aes.CipherAlgorithm.Aes128Cbc,\n key,\n iv,\n dataToDecrypt,\n );\n\n return EcdsaPrivateKey.fromBytesDer(keyDerBytes);\n } else {\n const asnData = asn1.fromBER(key);\n const parsedKey = asnData.result;\n\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return\n return parsedKey.valueBlock.value[1].valueBlock.valueHexView;\n }\n}\n\n/**\n * @param {string} pem\n * @param {string} [passphrase]\n * @returns {Promise}\n */\nexport async function read(pem, passphrase) {\n // If not then it is ED25519 type\n const isEcdsa = pem.includes(\"BEGIN EC PRIVATE KEY\") ? true : false;\n if (isEcdsa) {\n return readPemECDSA(pem, passphrase);\n } else {\n return readPemED25519(pem, passphrase);\n }\n}\n","import * as pbkdf2 from \"../primitive/pbkdf2.js\";\nimport * as hmac from \"../primitive/hmac.js\";\n\n/**\n * @param {Uint8Array} seed\n * @param {number} index\n * @returns {Promise}\n */\nexport function legacy(seed, index) {\n const password = new Uint8Array(seed.length + 8);\n password.set(seed, 0);\n\n const view = new DataView(\n password.buffer,\n password.byteOffset,\n password.byteLength,\n );\n\n if (index === 0xffffffffff) {\n view.setInt32(seed.length + 0, 0xff);\n view.setInt32(seed.length + 4, -1); // 0xffffffff\n } else {\n view.setInt32(seed.length + 0, index < 0 ? -1 : 0);\n view.setInt32(seed.length + 4, index);\n }\n\n const salt = Uint8Array.from([0xff]);\n return pbkdf2.deriveKey(\n hmac.HashAlgorithm.Sha512,\n password,\n salt,\n 2048,\n 32,\n );\n}\n","/**\n * @typedef {import(\"./PrivateKey.js\").default} PrivateKey\n * @typedef {import(\"./Ed25519PrivateKey.js\").default} Ed25519PrivateKey\n * @typedef {import(\"./EcdsaPrivateKey.js\").default} EcdsaPrivateKey\n * @typedef {import(\"./Mnemonic.js\").default} Mnemonic\n */\n\nconst CACHE = {\n /** @type {((key: Ed25519PrivateKey | EcdsaPrivateKey) => PrivateKey) | null} */\n privateKeyConstructor: null,\n\n /** @type {((bytes: Uint8Array) => PrivateKey) | null} */\n privateKeyFromBytes: null,\n\n /** @type {((words: string) => Mnemonic) | null} */\n mnemonicFromString: null,\n};\n\nexport default CACHE;\n","import BadKeyError from \"./BadKeyError.js\";\nimport Key from \"./Key.js\";\nimport Ed25519PrivateKey from \"./Ed25519PrivateKey.js\";\nimport EcdsaPrivateKey from \"./EcdsaPrivateKey.js\";\nimport PublicKey from \"./PublicKey.js\";\nimport { createKeystore, loadKeystore } from \"./primitive/keystore.js\";\nimport { read } from \"./encoding/pem.js\";\nimport * as hex from \"./encoding/hex.js\";\nimport * as slip10 from \"./primitive/slip10.js\";\nimport * as bip32 from \"./primitive/bip32.js\";\nimport * as derive from \"./util/derive.js\";\nimport * as ecdsa from \"./primitive/ecdsa.js\";\nimport CACHE from \"./Cache.js\";\n\n/**\n * @typedef {object} ProtoSignaturePair\n * @property {(Uint8Array | null)=} pubKeyPrefix\n * @property {(Uint8Array | null)=} ed25519\n * @property {(Uint8Array | null)=} ECDSASecp256k1\n */\n\n/**\n * @typedef {object} ProtoSigMap\n * @property {(ProtoSignaturePair[] | null)=} sigPair\n */\n\n/**\n * @typedef {object} ProtoSignedTransaction\n * @property {(Uint8Array | null)=} bodyBytes\n * @property {(ProtoSigMap | null)=} sigMap\n */\n\n/**\n * @typedef {object} Transaction\n * @property {() => boolean} isFrozen\n * @property {ProtoSignedTransaction[]} _signedTransactions\n * @property {Set} _signerPublicKeys\n * @property {(publicKey: PublicKey, signature: Uint8Array) => Transaction} addSignature\n * @property {() => void} _requireFrozen\n * @property {() => Transaction} freeze\n */\n\n/**\n * @typedef {import(\"./Mnemonic.js\").default} Mnemonic\n */\n\n/**\n * A private key on the Hedera™ network.\n */\nexport default class PrivateKey extends Key {\n /**\n * @hideconstructor\n * @internal\n * @param {Ed25519PrivateKey | EcdsaPrivateKey} key\n */\n constructor(key) {\n super();\n\n /**\n * @type {Ed25519PrivateKey | EcdsaPrivateKey}\n * @readonly\n * @private\n */\n this._key = key;\n }\n\n /**\n * @returns {string}\n */\n get _type() {\n return this._key._type;\n }\n\n /**\n * @returns {Uint8Array | null}\n */\n get _chainCode() {\n return this._key._chainCode;\n }\n\n /**\n * Generate a random Ed25519 private key.\n * @returns {PrivateKey}\n */\n static generateED25519() {\n return new PrivateKey(Ed25519PrivateKey.generate());\n }\n\n /**\n * Generate a random EDSA private key.\n * @returns {PrivateKey}\n */\n static generateECDSA() {\n return new PrivateKey(EcdsaPrivateKey.generate());\n }\n\n /**\n * Depredated - Use `generateED25519()` instead\n * Generate a random Ed25519 private key.\n * @returns {PrivateKey}\n */\n static generate() {\n return PrivateKey.generateED25519();\n }\n\n /**\n * Depredated - Use `generateED25519Async()` instead\n * Generate a random Ed25519 private key.\n * @returns {Promise}\n */\n static async generateAsync() {\n return PrivateKey.generateED25519Async();\n }\n\n /**\n * Generate a random Ed25519 private key.\n * @returns {Promise}\n */\n static async generateED25519Async() {\n return new PrivateKey(await Ed25519PrivateKey.generateAsync());\n }\n\n /**\n * Generate a random ECDSA private key.\n * @returns {Promise}\n */\n static async generateECDSAAsync() {\n return new PrivateKey(await EcdsaPrivateKey.generateAsync());\n }\n\n /**\n * Construct a private key from bytes. Requires DER header.\n * @param {Uint8Array} data\n * @returns {PrivateKey}\n */\n static fromBytes(data) {\n let message;\n\n if (data.length == 32) {\n console.warn(\n \"WARNING: Consider using fromStringECDSA() or fromStringED25519() on a HEX-encoded string and fromStringDer() on a HEX-encoded string with DER prefix instead.\",\n );\n }\n\n try {\n return new PrivateKey(Ed25519PrivateKey.fromBytes(data));\n } catch (error) {\n message =\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n error != null && /** @type {Error} */ (error).message != null\n ? // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n /** @type {Error} */ (error).message\n : \"\";\n }\n\n try {\n return new PrivateKey(EcdsaPrivateKey.fromBytes(data));\n } catch (error) {\n message =\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n error != null && /** @type {Error} */ (error).message != null\n ? // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n /** @type {Error} */ (error).message\n : \"\";\n }\n\n throw new BadKeyError(\n `private key cannot be decoded from bytes: ${message}`,\n );\n }\n\n /**\n * Construct a ECDSA private key from bytes.\n * @param {Uint8Array} data\n * @returns {PrivateKey}\n */\n static fromBytesECDSA(data) {\n return new PrivateKey(EcdsaPrivateKey.fromBytes(data));\n }\n\n /**\n * Construct a ED25519 private key from bytes.\n * @param {Uint8Array} data\n * @returns {PrivateKey}\n */\n static fromBytesED25519(data) {\n return new PrivateKey(Ed25519PrivateKey.fromBytes(data));\n }\n\n /**\n * Construct a private key from a hex-encoded string. Requires DER header.\n * @param {string} text\n * @returns {PrivateKey}\n */\n static fromString(text) {\n return PrivateKey.fromBytes(hex.decode(text));\n }\n\n /**\n * Construct a ECDSA private key from a hex-encoded string.\n * @param {string} text\n * @returns {PrivateKey}\n */\n static fromStringECDSA(text) {\n return PrivateKey.fromBytesECDSA(hex.decode(text));\n }\n\n /**\n * Construct a Ed25519 private key from a hex-encoded string.\n * @param {string} text\n * @returns {PrivateKey}\n */\n static fromStringED25519(text) {\n return PrivateKey.fromBytesED25519(hex.decode(text));\n }\n\n /**\n * Construct a Ed25519 private key from a Uint8Array seed.\n * @param {Uint8Array} seed\n * @returns {Promise}\n */\n static async fromSeedED25519(seed) {\n const ed25519Key = await Ed25519PrivateKey.fromSeed(seed);\n return new PrivateKey(ed25519Key);\n }\n\n /**\n * Construct a ECDSA private key from a Uint8Array seed.\n * @param {Uint8Array} seed\n * @returns {Promise}\n */\n static async fromSeedECDSAsecp256k1(seed) {\n const ecdsaKey = await EcdsaPrivateKey.fromSeed(seed);\n return new PrivateKey(ecdsaKey);\n }\n\n /**\n * @deprecated - Use `Mnemonic.from[Words|String]().toStandard[Ed25519|ECDSAsecp256k1]PrivateKey()` instead\n *\n * Recover a private key from a mnemonic phrase (and optionally a password).\n * @param {Mnemonic | string} mnemonic\n * @param {string} [passphrase]\n * @returns {Promise}\n */\n static async fromMnemonic(mnemonic, passphrase = \"\") {\n if (CACHE.mnemonicFromString == null) {\n throw new Error(\"Mnemonic not found in cache\");\n }\n\n return (\n (\n typeof mnemonic === \"string\"\n ? CACHE.mnemonicFromString(mnemonic)\n : mnemonic\n )\n // eslint-disable-next-line deprecation/deprecation\n .toEd25519PrivateKey(passphrase)\n );\n }\n\n /**\n * Recover a private key from a keystore, previously created by `.toKeystore()`.\n *\n * This key will _not_ support child key derivation.\n * @param {Uint8Array} data\n * @param {string} [passphrase]\n * @returns {Promise}\n * @throws {BadKeyError} If the passphrase is incorrect or the hash fails to validate.\n */\n static async fromKeystore(data, passphrase = \"\") {\n return PrivateKey.fromBytes(await loadKeystore(data, passphrase));\n }\n\n /**\n * Recover a private key from a pem string; the private key may be encrypted.\n *\n * This method assumes the .pem file has been converted to a string already.\n *\n * If `passphrase` is not null or empty, this looks for the first `ENCRYPTED PRIVATE KEY`\n * section and uses `passphrase` to decrypt it; otherwise, it looks for the first `PRIVATE KEY`\n * section and decodes that as a DER-encoded private key.\n * @param {string} data\n * @param {string} [passphrase]\n * @returns {Promise}\n */\n static async fromPem(data, passphrase = \"\") {\n const pem = await read(data, passphrase);\n\n if (\n pem instanceof Ed25519PrivateKey ||\n pem instanceof EcdsaPrivateKey\n ) {\n return new PrivateKey(pem);\n }\n\n const isEcdsa = data.includes(\"BEGIN EC PRIVATE KEY\") ? true : false;\n if (isEcdsa) {\n return new PrivateKey(EcdsaPrivateKey.fromBytes(pem));\n } else {\n return new PrivateKey(Ed25519PrivateKey.fromBytes(pem));\n }\n }\n\n /**\n * Derive a new private key at the given wallet index.\n *\n * Only currently supported for keys created with from mnemonics; other keys will throw\n * an error.\n *\n * You can check if a key supports derivation with `.supportsDerivation()`\n * @param {number} index\n * @returns {Promise}\n * @throws If this key does not support derivation.\n */\n async derive(index) {\n if (this._key._chainCode == null) {\n throw new Error(\"this private key does not support key derivation\");\n }\n\n if (this._key instanceof Ed25519PrivateKey) {\n const { keyData, chainCode } = await slip10.derive(\n this.toBytesRaw(),\n this._key._chainCode,\n index,\n );\n\n return new PrivateKey(new Ed25519PrivateKey(keyData, chainCode));\n } else {\n const { keyData, chainCode } = await bip32.derive(\n this.toBytesRaw(),\n this._key._chainCode,\n index,\n );\n\n return new PrivateKey(\n new EcdsaPrivateKey(ecdsa.fromBytes(keyData), chainCode),\n );\n }\n }\n\n /**\n * @param {number} index\n * @returns {Promise}\n * @throws If this key does not support derivation.\n */\n async legacyDerive(index) {\n const keyBytes = await derive.legacy(\n this.toBytesRaw().subarray(0, 32),\n index,\n );\n\n /** @type {new (bytes: Uint8Array) => Ed25519PrivateKey | EcdsaPrivateKey} */\n const constructor = /** @type {any} */ (this._key.constructor);\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n return new PrivateKey(new constructor(keyBytes));\n }\n\n /**\n * Get the public key associated with this private key.\n *\n * The public key can be freely given and used by other parties to verify\n * the signatures generated by this private key.\n * @returns {PublicKey}\n */\n get publicKey() {\n return new PublicKey(this._key.publicKey);\n }\n\n /**\n * Sign a message with this private key.\n * @param {Uint8Array} bytes\n * @returns {Uint8Array} - The signature bytes without the message\n */\n sign(bytes) {\n return this._key.sign(bytes);\n }\n\n /**\n * @param {Transaction} transaction\n * @returns {Uint8Array}\n */\n signTransaction(transaction) {\n if (!transaction.isFrozen()) {\n transaction.freeze();\n }\n\n if (transaction._signedTransactions.length != 1) {\n throw new Error(\n \"`PrivateKey.signTransaction()` requires `Transaction` to have a single node `AccountId` set\",\n );\n }\n\n const tx = /** @type {ProtoSignedTransaction} */ (\n transaction._signedTransactions[0]\n );\n\n const publicKeyHex = hex.encode(this.publicKey.toBytesRaw());\n\n if (tx.sigMap == null) {\n tx.sigMap = {};\n }\n\n if (tx.sigMap.sigPair == null) {\n tx.sigMap.sigPair = [];\n }\n\n for (const sigPair of tx.sigMap.sigPair) {\n if (\n sigPair.pubKeyPrefix != null &&\n hex.encode(sigPair.pubKeyPrefix) === publicKeyHex\n ) {\n switch (this._type) {\n case \"ED25519\":\n return /** @type {Uint8Array} */ (sigPair.ed25519);\n case \"secp256k1\":\n return /** @type {Uint8Array} */ (\n sigPair.ECDSASecp256k1\n );\n }\n }\n }\n\n const siganture = this.sign(\n tx.bodyBytes != null ? tx.bodyBytes : new Uint8Array(),\n );\n\n /** @type {ProtoSignaturePair} */\n const protoSignature = {\n pubKeyPrefix: this.publicKey.toBytesRaw(),\n };\n\n switch (this._type) {\n case \"ED25519\":\n protoSignature.ed25519 = siganture;\n break;\n case \"secp256k1\":\n protoSignature.ECDSASecp256k1 = siganture;\n break;\n }\n\n tx.sigMap.sigPair.push(protoSignature);\n transaction._signerPublicKeys.add(publicKeyHex);\n\n return siganture;\n }\n\n /**\n * Check if `derive` can be called on this private key.\n *\n * This is only the case if the key was created from a mnemonic.\n * @returns {boolean}\n */\n isDerivable() {\n return this._key._chainCode != null;\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytes() {\n if (this._key instanceof Ed25519PrivateKey) {\n return this.toBytesRaw();\n } else {\n return this.toBytesDer();\n }\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytesDer() {\n return this._key.toBytesDer();\n }\n\n /**\n * @returns {Uint8Array}\n */\n toBytesRaw() {\n return this._key.toBytesRaw();\n }\n\n /**\n * @returns {string}\n */\n toString() {\n return this.toStringDer();\n }\n\n /**\n * @returns {string}\n */\n toStringDer() {\n return hex.encode(this.toBytesDer());\n }\n\n /**\n * @returns {string}\n */\n toStringRaw() {\n return hex.encode(this.toBytesRaw());\n }\n\n /**\n * Create a keystore with a given passphrase.\n *\n * The key can be recovered later with `fromKeystore()`.\n *\n * Note that this will not retain the ancillary data used for\n * deriving child keys, thus `.derive()` on the restored key will\n * throw even if this instance supports derivation.\n * @param {string} [passphrase]\n * @returns {Promise}\n */\n toKeystore(passphrase = \"\") {\n return createKeystore(this.toBytesRaw(), passphrase);\n }\n\n /**\n * Recover the recovery ID used in the signature for the given message.\n *\n * **Note:** This method only works for ECDSA secp256k1 keys.\n * @param {Uint8Array} r - 32-byte `r` component of the signature\n * @param {Uint8Array} s - 32-byte `s` component of the signature\n * @param {Uint8Array} message - The original (unhashed) message\n * @returns {number} Recovery ID (0–3), or -1 if not found or not applicable\n */\n getRecoveryId(r, s, message) {\n if (!(this._key instanceof EcdsaPrivateKey)) {\n throw new Error(\"Invalid key type, must be ECDSA secp256k1.\");\n }\n\n if (r.length !== 32 || s.length !== 32) {\n throw new Error(\"Invalid signature components.\");\n }\n\n const signature = new Uint8Array(64);\n\n signature.set(r, 0);\n signature.set(s, 32);\n\n return this._key.getRecoveryId(signature, message);\n }\n}\n\nCACHE.privateKeyConstructor = (key) => new PrivateKey(key);\nCACHE.privateKeyFromBytes = (bytes) => PrivateKey.fromBytes(bytes);\n","/**\n * Possible statuses for {@link Mnemonic#validate()}.\n * @readonly\n * @enum {string}\n */\nconst BadMnemonicReason = Object.freeze({\n /**\n * The mnemonic did not have a supported number of words (12 or 24 for regular and 22 for legacy).\n */\n BadLength: \"BadLength\",\n\n /**\n * The mnemonic contained words which were not found in the word list.\n */\n UnknownWords: \"UnknownWords\",\n\n /**\n * The checksum encoded in the mnemonic did not match the checksum we just calculated for\n * that mnemonic.\n *\n * 24-word mnemonics have an 8-bit checksum that is appended to the 32 bytes of source entropy\n * after being calculated from it, before being encoded into words.\n *\n * This could happen if two or more of the words were entered out of the original order or\n * replaced with another from the standard word list (as this is only returned if all the words\n * exist in the word list).\n */\n ChecksumMismatch: \"ChecksumMismatch\",\n});\n\nexport default BadMnemonicReason;\n","/** @typedef {import(\"./Mnemonic.js\").default} Mnemonic */\nimport BadMnemonicReason from \"./BadMnemonicReason.js\";\n\nexport default class BadMnemonicError extends Error {\n /**\n * @param {Mnemonic} mnemonic\n * @param {string} reason\n * @param {number[]} unknownWordIndices\n * @hideconstructor\n */\n constructor(mnemonic, reason, unknownWordIndices) {\n let reasonMessage;\n\n switch (reason) {\n case BadMnemonicReason.BadLength:\n reasonMessage = \"mnemonic is of an unexpected number of words\";\n break;\n\n case BadMnemonicReason.ChecksumMismatch:\n reasonMessage =\n \"checksum byte in mnemonic did not match the rest of the mnemonic\";\n break;\n\n case BadMnemonicReason.UnknownWords:\n reasonMessage =\n \"mnemonic contained words that are not in the standard word list\";\n break;\n\n default:\n throw new Error(\n `unexpected value ${reason.toString()} for 'reason'`,\n );\n }\n\n super(`invalid mnemonic: ${reasonMessage}`);\n\n if (typeof Error.captureStackTrace !== \"undefined\") {\n Error.captureStackTrace(this, BadMnemonicError);\n }\n\n this.name = \"BadMnemonicError\";\n\n /** The reason for which the mnemonic failed validation. */\n this.reason = reason;\n\n /** The mnemonic that failed validation. */\n this.mnemonic = mnemonic;\n\n /**\n * The indices in the mnemonic that were not found in the BIP-39\n * standard English word list.\n */\n this.unknownWordIndices = unknownWordIndices;\n }\n}\n","export default [\n \"aback\",\n \"abbey\",\n \"abbot\",\n \"abide\",\n \"ablaze\",\n \"able\",\n \"aboard\",\n \"abode\",\n \"abort\",\n \"abound\",\n \"about\",\n \"above\",\n \"abroad\",\n \"abrupt\",\n \"absent\",\n \"absorb\",\n \"absurd\",\n \"abuse\",\n \"accent\",\n \"accept\",\n \"access\",\n \"accord\",\n \"accuse\",\n \"ace\",\n \"ache\",\n \"aching\",\n \"acid\",\n \"acidic\",\n \"acorn\",\n \"acre\",\n \"across\",\n \"act\",\n \"action\",\n \"active\",\n \"actor\",\n \"actual\",\n \"acute\",\n \"adam\",\n \"adapt\",\n \"add\",\n \"added\",\n \"addict\",\n \"adept\",\n \"adhere\",\n \"adjust\",\n \"admire\",\n \"admit\",\n \"adobe\",\n \"adopt\",\n \"adrift\",\n \"adult\",\n \"adverb\",\n \"advice\",\n \"aerial\",\n \"afar\",\n \"affair\",\n \"affect\",\n \"afford\",\n \"afghan\",\n \"afield\",\n \"afloat\",\n \"afraid\",\n \"afresh\",\n \"after\",\n \"again\",\n \"age\",\n \"agency\",\n \"agenda\",\n \"agent\",\n \"aghast\",\n \"agile\",\n \"ago\",\n \"agony\",\n \"agree\",\n \"agreed\",\n \"ahead\",\n \"aid\",\n \"aide\",\n \"aim\",\n \"air\",\n \"airman\",\n \"airy\",\n \"akin\",\n \"alarm\",\n \"alaska\",\n \"albeit\",\n \"album\",\n \"ale\",\n \"alert\",\n \"alibi\",\n \"alice\",\n \"alien\",\n \"alight\",\n \"align\",\n \"alike\",\n \"alive\",\n \"alkali\",\n \"all\",\n \"alley\",\n \"allied\",\n \"allow\",\n \"alloy\",\n \"ally\",\n \"almond\",\n \"almost\",\n \"aloft\",\n \"alone\",\n \"along\",\n \"aloof\",\n \"aloud\",\n \"alpha\",\n \"alpine\",\n \"also\",\n \"altar\",\n \"alter\",\n \"always\",\n \"amaze\",\n \"amazon\",\n \"amber\",\n \"ambush\",\n \"amen\",\n \"amend\",\n \"amid\",\n \"amidst\",\n \"amiss\",\n \"among\",\n \"amount\",\n \"ample\",\n \"amuse\",\n \"anchor\",\n \"and\",\n \"andrew\",\n \"anew\",\n \"angel\",\n \"anger\",\n \"angle\",\n \"angry\",\n \"animal\",\n \"ankle\",\n \"annoy\",\n \"annual\",\n \"answer\",\n \"anthem\",\n \"any\",\n \"anyhow\",\n \"anyway\",\n \"apart\",\n \"apathy\",\n \"apex\",\n \"apiece\",\n \"appeal\",\n \"appear\",\n \"apple\",\n \"apply\",\n \"april\",\n \"apron\",\n \"arab\",\n \"arcade\",\n \"arcane\",\n \"arch\",\n \"arctic\",\n \"ardent\",\n \"are\",\n \"area\",\n \"argue\",\n \"arid\",\n \"arise\",\n \"ark\",\n \"arm\",\n \"armful\",\n \"army\",\n \"aroma\",\n \"around\",\n \"arouse\",\n \"array\",\n \"arrest\",\n \"arrive\",\n \"arrow\",\n \"arson\",\n \"art\",\n \"artery\",\n \"artful\",\n \"artist\",\n \"ascent\",\n \"ash\",\n \"ashen\",\n \"ashore\",\n \"aside\",\n \"ask\",\n \"asleep\",\n \"aspect\",\n \"assay\",\n \"assent\",\n \"assert\",\n \"assess\",\n \"asset\",\n \"assign\",\n \"assist\",\n \"assume\",\n \"assure\",\n \"asthma\",\n \"astute\",\n \"asylum\",\n \"ate\",\n \"athens\",\n \"atlas\",\n \"atom\",\n \"atomic\",\n \"attach\",\n \"attack\",\n \"attain\",\n \"attend\",\n \"attic\",\n \"auburn\",\n \"audio\",\n \"audit\",\n \"august\",\n \"aunt\",\n \"auntie\",\n \"aura\",\n \"austin\",\n \"author\",\n \"auto\",\n \"autumn\",\n \"avail\",\n \"avenge\",\n \"avenue\",\n \"avert\",\n \"avid\",\n \"avoid\",\n \"await\",\n \"awake\",\n \"awaken\",\n \"award\",\n \"aware\",\n \"awash\",\n \"away\",\n \"awful\",\n \"awhile\",\n \"axe\",\n \"axes\",\n \"axiom\",\n \"axis\",\n \"axle\",\n \"aye\",\n \"babe\",\n \"baby\",\n \"bach\",\n \"back\",\n \"backup\",\n \"bacon\",\n \"bad\",\n \"badge\",\n \"badly\",\n \"bag\",\n \"baggy\",\n \"bail\",\n \"bait\",\n \"bake\",\n \"baker\",\n \"bakery\",\n \"bald\",\n \"ball\",\n \"ballad\",\n \"ballet\",\n \"ballot\",\n \"baltic\",\n \"bamboo\",\n \"ban\",\n \"banal\",\n \"banana\",\n \"band\",\n \"bang\",\n \"bank\",\n \"bar\",\n \"barber\",\n \"bare\",\n \"barely\",\n \"barge\",\n \"bark\",\n \"barley\",\n \"barn\",\n \"baron\",\n \"barrel\",\n \"barren\",\n \"basalt\",\n \"base\",\n \"basic\",\n \"basil\",\n \"basin\",\n \"basis\",\n \"basket\",\n \"bass\",\n \"bat\",\n \"batch\",\n \"bath\",\n \"baton\",\n \"battle\",\n \"bay\",\n \"beach\",\n \"beacon\",\n \"beak\",\n \"beam\",\n \"bean\",\n \"bear\",\n \"beard\",\n \"beast\",\n \"beat\",\n \"beauty\",\n \"become\",\n \"bed\",\n \"beech\",\n \"beef\",\n \"beefy\",\n \"beep\",\n \"beer\",\n \"beet\",\n \"beetle\",\n \"before\",\n \"beg\",\n \"beggar\",\n \"begin\",\n \"behalf\",\n \"behave\",\n \"behind\",\n \"beige\",\n \"being\",\n \"belief\",\n \"bell\",\n \"belly\",\n \"belong\",\n \"below\",\n \"belt\",\n \"bench\",\n \"bend\",\n \"benign\",\n \"bent\",\n \"berlin\",\n \"berry\",\n \"berth\",\n \"beset\",\n \"beside\",\n \"best\",\n \"bestow\",\n \"bet\",\n \"beta\",\n \"betray\",\n \"better\",\n \"beware\",\n \"beyond\",\n \"bias\",\n \"biceps\",\n \"bicker\",\n \"bid\",\n \"big\",\n \"bigger\",\n \"bike\",\n \"bile\",\n \"bill\",\n \"bin\",\n \"binary\",\n \"bind\",\n \"biopsy\",\n \"birch\",\n \"bird\",\n \"birdie\",\n \"birth\",\n \"bishop\",\n \"bit\",\n \"bitch\",\n \"bite\",\n \"bitter\",\n \"black\",\n \"blade\",\n \"blame\",\n \"bland\",\n \"blast\",\n \"blaze\",\n \"bleak\",\n \"blend\",\n \"bless\",\n \"blew\",\n \"blind\",\n \"blink\",\n \"blip\",\n \"bliss\",\n \"blitz\",\n \"block\",\n \"blond\",\n \"blood\",\n \"bloody\",\n \"bloom\",\n \"blot\",\n \"blouse\",\n \"blow\",\n \"blue\",\n \"bluff\",\n \"blunt\",\n \"blur\",\n \"blush\",\n \"boar\",\n \"board\",\n \"boast\",\n \"boat\",\n \"bob\",\n \"bodily\",\n \"body\",\n \"bogus\",\n \"boil\",\n \"bold\",\n \"bolt\",\n \"bomb\",\n \"bombay\",\n \"bond\",\n \"bone\",\n \"bonn\",\n \"bonnet\",\n \"bonus\",\n \"bony\",\n \"book\",\n \"boom\",\n \"boost\",\n \"boot\",\n \"booth\",\n \"booze\",\n \"border\",\n \"bore\",\n \"borrow\",\n \"bosom\",\n \"boss\",\n \"boston\",\n \"both\",\n \"bother\",\n \"bottle\",\n \"bottom\",\n \"bought\",\n \"bounce\",\n \"bound\",\n \"bounty\",\n \"bout\",\n \"bovine\",\n \"bow\",\n \"bowel\",\n \"bowl\",\n \"box\",\n \"boy\",\n \"boyish\",\n \"brace\",\n \"brain\",\n \"brainy\",\n \"brake\",\n \"bran\",\n \"branch\",\n \"brand\",\n \"brandy\",\n \"brass\",\n \"brave\",\n \"bravo\",\n \"brazil\",\n \"breach\",\n \"bread\",\n \"break\",\n \"breast\",\n \"breath\",\n \"bred\",\n \"breed\",\n \"breeze\",\n \"brew\",\n \"bribe\",\n \"brick\",\n \"bride\",\n \"bridge\",\n \"brief\",\n \"bright\",\n \"brim\",\n \"brine\",\n \"bring\",\n \"brink\",\n \"brisk\",\n \"broad\",\n \"broke\",\n \"broken\",\n \"bronze\",\n \"brook\",\n \"broom\",\n \"brown\",\n \"bruise\",\n \"brush\",\n \"brutal\",\n \"brute\",\n \"bubble\",\n \"buck\",\n \"bucket\",\n \"buckle\",\n \"budget\",\n \"buffet\",\n \"buggy\",\n \"build\",\n \"bulb\",\n \"bulge\",\n \"bulk\",\n \"bulky\",\n \"bull\",\n \"bullet\",\n \"bully\",\n \"bump\",\n \"bumpy\",\n \"bunch\",\n \"bundle\",\n \"bunk\",\n \"bunny\",\n \"burden\",\n \"bureau\",\n \"burial\",\n \"buried\",\n \"burly\",\n \"burn\",\n \"burnt\",\n \"burrow\",\n \"burst\",\n \"bury\",\n \"bus\",\n \"bush\",\n \"bust\",\n \"bustle\",\n \"busy\",\n \"but\",\n \"butler\",\n \"butt\",\n \"butter\",\n \"button\",\n \"buy\",\n \"buyer\",\n \"buzz\",\n \"bye\",\n \"byte\",\n \"cab\",\n \"cabin\",\n \"cable\",\n \"cache\",\n \"cactus\",\n \"caesar\",\n \"cage\",\n \"cairo\",\n \"cajun\",\n \"cajole\",\n \"cake\",\n \"calf\",\n \"call\",\n \"caller\",\n \"calm\",\n \"calmly\",\n \"came\",\n \"camel\",\n \"camera\",\n \"camp\",\n \"campus\",\n \"can\",\n \"canada\",\n \"canal\",\n \"canary\",\n \"cancel\",\n \"cancer\",\n \"candid\",\n \"candle\",\n \"candy\",\n \"cane\",\n \"canine\",\n \"canoe\",\n \"canopy\",\n \"canvas\",\n \"canyon\",\n \"cap\",\n \"cape\",\n \"car\",\n \"carbon\",\n \"card\",\n \"care\",\n \"career\",\n \"caress\",\n \"cargo\",\n \"carl\",\n \"carnal\",\n \"carol\",\n \"carp\",\n \"carpet\",\n \"carrot\",\n \"carry\",\n \"cart\",\n \"cartel\",\n \"case\",\n \"cash\",\n \"cask\",\n \"cast\",\n \"castle\",\n \"casual\",\n \"cat\",\n \"catch\",\n \"cater\",\n \"cattle\",\n \"caught\",\n \"causal\",\n \"cause\",\n \"cave\",\n \"cease\",\n \"celery\",\n \"cell\",\n \"cellar\",\n \"celtic\",\n \"cement\",\n \"censor\",\n \"census\",\n \"cent\",\n \"cereal\",\n \"chain\",\n \"chair\",\n \"chalk\",\n \"chalky\",\n \"champ\",\n \"chance\",\n \"change\",\n \"chant\",\n \"chaos\",\n \"chap\",\n \"chapel\",\n \"charge\",\n \"charm\",\n \"chart\",\n \"chase\",\n \"chat\",\n \"cheap\",\n \"cheat\",\n \"check\",\n \"cheek\",\n \"cheeky\",\n \"cheer\",\n \"cheery\",\n \"cheese\",\n \"chef\",\n \"cheque\",\n \"cherry\",\n \"chess\",\n \"chest\",\n \"chew\",\n \"chic\",\n \"chick\",\n \"chief\",\n \"child\",\n \"chile\",\n \"chill\",\n \"chilly\",\n \"chin\",\n \"china\",\n \"chip\",\n \"choice\",\n \"choir\",\n \"choose\",\n \"chop\",\n \"choppy\",\n \"chord\",\n \"chorus\",\n \"chose\",\n \"chosen\",\n \"chris\",\n \"chrome\",\n \"chunk\",\n \"chunky\",\n \"church\",\n \"cider\",\n \"cigar\",\n \"cinema\",\n \"circa\",\n \"circle\",\n \"circus\",\n \"cite\",\n \"city\",\n \"civic\",\n \"civil\",\n \"clad\",\n \"claim\",\n \"clammy\",\n \"clan\",\n \"clap\",\n \"clash\",\n \"clasp\",\n \"class\",\n \"clause\",\n \"claw\",\n \"clay\",\n \"clean\",\n \"clear\",\n \"clergy\",\n \"clerk\",\n \"clever\",\n \"click\",\n \"client\",\n \"cliff\",\n \"climax\",\n \"climb\",\n \"clinch\",\n \"cling\",\n \"clinic\",\n \"clip\",\n \"cloak\",\n \"clock\",\n \"clone\",\n \"close\",\n \"closer\",\n \"closet\",\n \"cloth\",\n \"cloud\",\n \"cloudy\",\n \"clout\",\n \"clown\",\n \"club\",\n \"clue\",\n \"clumsy\",\n \"clung\",\n \"clutch\",\n \"coach\",\n \"coal\",\n \"coarse\",\n \"coast\",\n \"coat\",\n \"coax\",\n \"cobalt\",\n \"cobra\",\n \"coca\",\n \"cock\",\n \"cocoa\",\n \"code\",\n \"coffee\",\n \"coffin\",\n \"cohort\",\n \"coil\",\n \"coin\",\n \"coke\",\n \"cold\",\n \"collar\",\n \"colon\",\n \"colony\",\n \"colt\",\n \"column\",\n \"comb\",\n \"combat\",\n \"come\",\n \"comedy\",\n \"comic\",\n \"commit\",\n \"common\",\n \"compel\",\n \"comply\",\n \"concur\",\n \"cone\",\n \"confer\",\n \"congo\",\n \"consul\",\n \"convex\",\n \"convey\",\n \"convoy\",\n \"cook\",\n \"cool\",\n \"cope\",\n \"copper\",\n \"copy\",\n \"coral\",\n \"cord\",\n \"core\",\n \"cork\",\n \"corn\",\n \"corner\",\n \"corps\",\n \"corpse\",\n \"corpus\",\n \"cortex\",\n \"cosmic\",\n \"cosmos\",\n \"cost\",\n \"costly\",\n \"cotton\",\n \"couch\",\n \"cough\",\n \"could\",\n \"count\",\n \"county\",\n \"coup\",\n \"couple\",\n \"coupon\",\n \"course\",\n \"court\",\n \"cousin\",\n \"cove\",\n \"cover\",\n \"covert\",\n \"cow\",\n \"coward\",\n \"cowboy\",\n \"cozy\",\n \"crab\",\n \"crack\",\n \"cradle\",\n \"craft\",\n \"crafty\",\n \"crag\",\n \"crane\",\n \"crash\",\n \"crate\",\n \"crater\",\n \"crawl\",\n \"crazy\",\n \"creak\",\n \"cream\",\n \"creamy\",\n \"create\",\n \"credit\",\n \"creed\",\n \"creek\",\n \"creep\",\n \"creepy\",\n \"crept\",\n \"crest\",\n \"crew\",\n \"cried\",\n \"crime\",\n \"crisis\",\n \"crisp\",\n \"critic\",\n \"crook\",\n \"crop\",\n \"cross\",\n \"crow\",\n \"crowd\",\n \"crown\",\n \"crude\",\n \"cruel\",\n \"cruise\",\n \"crunch\",\n \"crush\",\n \"crust\",\n \"crux\",\n \"cry\",\n \"crypt\",\n \"cuba\",\n \"cube\",\n \"cubic\",\n \"cuckoo\",\n \"cuff\",\n \"cult\",\n \"cup\",\n \"curb\",\n \"cure\",\n \"curfew\",\n \"curl\",\n \"curry\",\n \"curse\",\n \"cursor\",\n \"curve\",\n \"cuss\",\n \"custom\",\n \"cut\",\n \"cute\",\n \"cycle\",\n \"cyclic\",\n \"cynic\",\n \"czech\",\n \"dad\",\n \"daddy\",\n \"dagger\",\n \"daily\",\n \"dairy\",\n \"daisy\",\n \"dale\",\n \"dam\",\n \"damage\",\n \"damp\",\n \"dampen\",\n \"dance\",\n \"danger\",\n \"danish\",\n \"dare\",\n \"dark\",\n \"darken\",\n \"darn\",\n \"dart\",\n \"dash\",\n \"data\",\n \"date\",\n \"david\",\n \"dawn\",\n \"day\",\n \"dead\",\n \"deadly\",\n \"deaf\",\n \"deal\",\n \"dealer\",\n \"dean\",\n \"dear\",\n \"death\",\n \"debate\",\n \"debit\",\n \"debris\",\n \"debt\",\n \"debtor\",\n \"decade\",\n \"decay\",\n \"decent\",\n \"decide\",\n \"deck\",\n \"decor\",\n \"decree\",\n \"deduce\",\n \"deed\",\n \"deep\",\n \"deeply\",\n \"deer\",\n \"defeat\",\n \"defect\",\n \"defend\",\n \"defer\",\n \"define\",\n \"defy\",\n \"degree\",\n \"deity\",\n \"delay\",\n \"delete\",\n \"delhi\",\n \"delta\",\n \"demand\",\n \"demise\",\n \"demo\",\n \"demure\",\n \"denial\",\n \"denote\",\n \"dense\",\n \"dental\",\n \"deny\",\n \"depart\",\n \"depend\",\n \"depict\",\n \"deploy\",\n \"depot\",\n \"depth\",\n \"deputy\",\n \"derive\",\n \"desert\",\n \"design\",\n \"desire\",\n \"desist\",\n \"desk\",\n \"detail\",\n \"detect\",\n \"deter\",\n \"detest\",\n \"detour\",\n \"device\",\n \"devise\",\n \"devoid\",\n \"devote\",\n \"devour\",\n \"dial\",\n \"diana\",\n \"diary\",\n \"dice\",\n \"dictum\",\n \"did\",\n \"die\",\n \"diesel\",\n \"diet\",\n \"differ\",\n \"dig\",\n \"digest\",\n \"digit\",\n \"dine\",\n \"dinghy\",\n \"dinner\",\n \"diode\",\n \"dip\",\n \"dire\",\n \"direct\",\n \"dirt\",\n \"dirty\",\n \"disc\",\n \"disco\",\n \"dish\",\n \"disk\",\n \"dismal\",\n \"dispel\",\n \"ditch\",\n \"dive\",\n \"divert\",\n \"divide\",\n \"divine\",\n \"dizzy\",\n \"docile\",\n \"dock\",\n \"doctor\",\n \"dog\",\n \"dogma\",\n \"dole\",\n \"doll\",\n \"dollar\",\n \"dolly\",\n \"domain\",\n \"dome\",\n \"domino\",\n \"donate\",\n \"done\",\n \"donkey\",\n \"donor\",\n \"doom\",\n \"door\",\n \"dorsal\",\n \"dose\",\n \"dot\",\n \"double\",\n \"doubt\",\n \"dough\",\n \"dour\",\n \"dove\",\n \"down\",\n \"dozen\",\n \"draft\",\n \"drag\",\n \"dragon\",\n \"drain\",\n \"drama\",\n \"drank\",\n \"draw\",\n \"drawer\",\n \"dread\",\n \"dream\",\n \"dreary\",\n \"dress\",\n \"drew\",\n \"dried\",\n \"drift\",\n \"drill\",\n \"drink\",\n \"drip\",\n \"drive\",\n \"driver\",\n \"drop\",\n \"drove\",\n \"drown\",\n \"drug\",\n \"drum\",\n \"drunk\",\n \"dry\",\n \"dual\",\n \"duck\",\n \"duct\",\n \"due\",\n \"duel\",\n \"duet\",\n \"duke\",\n \"dull\",\n \"duly\",\n \"dumb\",\n \"dummy\",\n \"dump\",\n \"dune\",\n \"dung\",\n \"duress\",\n \"during\",\n \"dusk\",\n \"dust\",\n \"dusty\",\n \"dutch\",\n \"duty\",\n \"dwarf\",\n \"dwell\",\n \"dyer\",\n \"dying\",\n \"dynamo\",\n \"each\",\n \"eager\",\n \"eagle\",\n \"ear\",\n \"earl\",\n \"early\",\n \"earn\",\n \"earth\",\n \"ease\",\n \"easel\",\n \"easily\",\n \"east\",\n \"easter\",\n \"easy\",\n \"eat\",\n \"eaten\",\n \"eater\",\n \"echo\",\n \"eddy\",\n \"eden\",\n \"edge\",\n \"edible\",\n \"edict\",\n \"edit\",\n \"editor\",\n \"eel\",\n \"eerie\",\n \"eerily\",\n \"effect\",\n \"effort\",\n \"egg\",\n \"ego\",\n \"eight\",\n \"eighth\",\n \"eighty\",\n \"either\",\n \"elbow\",\n \"elder\",\n \"eldest\",\n \"elect\",\n \"eleven\",\n \"elicit\",\n \"elite\",\n \"else\",\n \"elude\",\n \"elves\",\n \"embark\",\n \"emblem\",\n \"embryo\",\n \"emerge\",\n \"emit\",\n \"empire\",\n \"employ\",\n \"empty\",\n \"enable\",\n \"enamel\",\n \"end\",\n \"endure\",\n \"enemy\",\n \"energy\",\n \"engage\",\n \"engine\",\n \"enjoy\",\n \"enlist\",\n \"enough\",\n \"ensure\",\n \"entail\",\n \"enter\",\n \"entire\",\n \"entry\",\n \"envoy\",\n \"envy\",\n \"enzyme\",\n \"epic\",\n \"epoch\",\n \"equal\",\n \"equate\",\n \"equip\",\n \"equity\",\n \"era\",\n \"erect\",\n \"eric\",\n \"erode\",\n \"erotic\",\n \"errant\",\n \"error\",\n \"escape\",\n \"escort\",\n \"essay\",\n \"essex\",\n \"estate\",\n \"esteem\",\n \"ethic\",\n \"ethnic\",\n \"europe\",\n \"evade\",\n \"eve\",\n \"even\",\n \"event\",\n \"ever\",\n \"every\",\n \"evict\",\n \"evil\",\n \"evoke\",\n \"evolve\",\n \"exact\",\n \"exam\",\n \"exceed\",\n \"excel\",\n \"except\",\n \"excess\",\n \"excise\",\n \"excite\",\n \"excuse\",\n \"exempt\",\n \"exert\",\n \"exile\",\n \"exist\",\n \"exit\",\n \"exodus\",\n \"exotic\",\n \"expand\",\n \"expect\",\n \"expert\",\n \"expire\",\n \"export\",\n \"expose\",\n \"extend\",\n \"extra\",\n \"eye\",\n \"eyed\",\n \"fabric\",\n \"face\",\n \"facial\",\n \"fact\",\n \"factor\",\n \"fade\",\n \"fail\",\n \"faint\",\n \"fair\",\n \"fairly\",\n \"fairy\",\n \"faith\",\n \"fake\",\n \"falcon\",\n \"fall\",\n \"false\",\n \"falter\",\n \"fame\",\n \"family\",\n \"famine\",\n \"famous\",\n \"fan\",\n \"fancy\",\n \"far\",\n \"farce\",\n \"fare\",\n \"farm\",\n \"farmer\",\n \"fast\",\n \"fasten\",\n \"faster\",\n \"fat\",\n \"fatal\",\n \"fate\",\n \"father\",\n \"fatty\",\n \"fault\",\n \"faulty\",\n \"fauna\",\n \"fear\",\n \"feast\",\n \"feat\",\n \"fed\",\n \"fee\",\n \"feeble\",\n \"feed\",\n \"feel\",\n \"feet\",\n \"fell\",\n \"fellow\",\n \"felt\",\n \"female\",\n \"fence\",\n \"fend\",\n \"ferry\",\n \"fetal\",\n \"fetch\",\n \"feudal\",\n \"fever\",\n \"few\",\n \"fewer\",\n \"fiasco\",\n \"fiddle\",\n \"field\",\n \"fiend\",\n \"fierce\",\n \"fiery\",\n \"fifth\",\n \"fifty\",\n \"fig\",\n \"fight\",\n \"figure\",\n \"file\",\n \"fill\",\n \"filled\",\n \"filler\",\n \"film\",\n \"filter\",\n \"filth\",\n \"filthy\",\n \"final\",\n \"finale\",\n \"find\",\n \"fine\",\n \"finery\",\n \"finger\",\n \"finish\",\n \"finite\",\n \"fire\",\n \"firm\",\n \"firmly\",\n \"first\",\n \"fiscal\",\n \"fish\",\n \"fisher\",\n \"fist\",\n \"fit\",\n \"fitful\",\n \"five\",\n \"fix\",\n \"flag\",\n \"flair\",\n \"flak\",\n \"flame\",\n \"flank\",\n \"flap\",\n \"flare\",\n \"flash\",\n \"flask\",\n \"flat\",\n \"flavor\",\n \"flaw\",\n \"fled\",\n \"flee\",\n \"fleece\",\n \"fleet\",\n \"flesh\",\n \"fleshy\",\n \"flew\",\n \"flick\",\n \"flight\",\n \"flimsy\",\n \"flint\",\n \"flirt\",\n \"float\",\n \"flock\",\n \"flood\",\n \"floor\",\n \"floppy\",\n \"flora\",\n \"floral\",\n \"flour\",\n \"flow\",\n \"flower\",\n \"fluent\",\n \"fluffy\",\n \"fluid\",\n \"flung\",\n \"flurry\",\n \"flush\",\n \"flute\",\n \"flux\",\n \"fly\",\n \"flyer\",\n \"foal\",\n \"foam\",\n \"focal\",\n \"focus\",\n \"fog\",\n \"foil\",\n \"fold\",\n \"folk\",\n \"follow\",\n \"folly\",\n \"fond\",\n \"fondly\",\n \"font\",\n \"food\",\n \"fool\",\n \"foot\",\n \"for\",\n \"forbid\",\n \"force\",\n \"ford\",\n \"forest\",\n \"forge\",\n \"forget\",\n \"fork\",\n \"form\",\n \"formal\",\n \"format\",\n \"former\",\n \"fort\",\n \"forth\",\n \"forty\",\n \"forum\",\n \"fossil\",\n \"foster\",\n \"foul\",\n \"found\",\n \"four\",\n \"fourth\",\n \"fox\",\n \"foyer\",\n \"frail\",\n \"frame\",\n \"franc\",\n \"france\",\n \"frank\",\n \"fraud\",\n \"fred\",\n \"free\",\n \"freed\",\n \"freely\",\n \"freeze\",\n \"french\",\n \"frenzy\",\n \"fresh\",\n \"friar\",\n \"friday\",\n \"fridge\",\n \"fried\",\n \"friend\",\n \"fright\",\n \"fringe\",\n \"frock\",\n \"frog\",\n \"from\",\n \"front\",\n \"frost\",\n \"frosty\",\n \"frown\",\n \"frozen\",\n \"frugal\",\n \"fruit\",\n \"fry\",\n \"fudge\",\n \"fuel\",\n \"full\",\n \"fully\",\n \"fumes\",\n \"fun\",\n \"fund\",\n \"funny\",\n \"fur\",\n \"furry\",\n \"fury\",\n \"fuse\",\n \"fusion\",\n \"fuss\",\n \"fussy\",\n \"futile\",\n \"future\",\n \"fuzzy\",\n \"gadget\",\n \"gain\",\n \"gala\",\n \"galaxy\",\n \"gale\",\n \"gall\",\n \"galley\",\n \"gallon\",\n \"gallop\",\n \"gamble\",\n \"game\",\n \"gamma\",\n \"gandhi\",\n \"gang\",\n \"gap\",\n \"garage\",\n \"garden\",\n \"garlic\",\n \"gas\",\n \"gasp\",\n \"gate\",\n \"gather\",\n \"gauge\",\n \"gaunt\",\n \"gave\",\n \"gaze\",\n \"gear\",\n \"geese\",\n \"gem\",\n \"gemini\",\n \"gender\",\n \"gene\",\n \"geneva\",\n \"genial\",\n \"genius\",\n \"genre\",\n \"gentle\",\n \"gently\",\n \"gentry\",\n \"genus\",\n \"george\",\n \"germ\",\n \"get\",\n \"ghetto\",\n \"ghost\",\n \"giant\",\n \"gift\",\n \"giggle\",\n \"gill\",\n \"gilt\",\n \"ginger\",\n \"girl\",\n \"give\",\n \"given\",\n \"glad\",\n \"glade\",\n \"glance\",\n \"gland\",\n \"glare\",\n \"glass\",\n \"glassy\",\n \"gleam\",\n \"glee\",\n \"glide\",\n \"global\",\n \"globe\",\n \"gloom\",\n \"gloomy\",\n \"gloria\",\n \"glory\",\n \"gloss\",\n \"glossy\",\n \"glove\",\n \"glow\",\n \"glue\",\n \"gnat\",\n \"gnu\",\n \"goal\",\n \"goat\",\n \"gold\",\n \"golden\",\n \"golf\",\n \"gone\",\n \"gong\",\n \"goo\",\n \"good\",\n \"goose\",\n \"gore\",\n \"gorge\",\n \"gory\",\n \"gosh\",\n \"gospel\",\n \"gossip\",\n \"got\",\n \"gothic\",\n \"govern\",\n \"gown\",\n \"grab\",\n \"grace\",\n \"grade\",\n \"grail\",\n \"grain\",\n \"grand\",\n \"grant\",\n \"grape\",\n \"graph\",\n \"grasp\",\n \"grass\",\n \"grassy\",\n \"grate\",\n \"grave\",\n \"gravel\",\n \"gravy\",\n \"grease\",\n \"greasy\",\n \"great\",\n \"greece\",\n \"greed\",\n \"greedy\",\n \"greek\",\n \"green\",\n \"greet\",\n \"grew\",\n \"grey\",\n \"grid\",\n \"grief\",\n \"grill\",\n \"grim\",\n \"grin\",\n \"grind\",\n \"grip\",\n \"grit\",\n \"gritty\",\n \"groan\",\n \"groin\",\n \"groom\",\n \"groove\",\n \"gross\",\n \"ground\",\n \"group\",\n \"grove\",\n \"grow\",\n \"grown\",\n \"growth\",\n \"grudge\",\n \"grunt\",\n \"guard\",\n \"guess\",\n \"guest\",\n \"guide\",\n \"guild\",\n \"guilt\",\n \"guilty\",\n \"guise\",\n \"guitar\",\n \"gulf\",\n \"gully\",\n \"gun\",\n \"gunman\",\n \"guru\",\n \"gut\",\n \"guy\",\n \"gypsy\",\n \"habit\",\n \"hack\",\n \"had\",\n \"hail\",\n \"hair\",\n \"hairy\",\n \"haiti\",\n \"hale\",\n \"half\",\n \"hall\",\n \"halt\",\n \"hamlet\",\n \"hammer\",\n \"hand\",\n \"handle\",\n \"handy\",\n \"hang\",\n \"hangar\",\n \"hanoi\",\n \"happen\",\n \"happy\",\n \"harass\",\n \"harbor\",\n \"hard\",\n \"harder\",\n \"hardly\",\n \"hare\",\n \"harem\",\n \"harm\",\n \"harp\",\n \"harry\",\n \"harsh\",\n \"has\",\n \"hash\",\n \"hassle\",\n \"haste\",\n \"hasten\",\n \"hasty\",\n \"hat\",\n \"hatch\",\n \"hate\",\n \"haul\",\n \"haunt\",\n \"havana\",\n \"have\",\n \"haven\",\n \"havoc\",\n \"hawaii\",\n \"hawk\",\n \"hay\",\n \"hazard\",\n \"haze\",\n \"hazel\",\n \"hazy\",\n \"head\",\n \"heal\",\n \"health\",\n \"heap\",\n \"hear\",\n \"heard\",\n \"heart\",\n \"hearth\",\n \"hearty\",\n \"heat\",\n \"heater\",\n \"heaven\",\n \"heavy\",\n \"hebrew\",\n \"heck\",\n \"hectic\",\n \"hedge\",\n \"heel\",\n \"hefty\",\n \"height\",\n \"heir\",\n \"held\",\n \"helium\",\n \"helix\",\n \"hell\",\n \"hello\",\n \"helm\",\n \"helmet\",\n \"help\",\n \"hemp\",\n \"hence\",\n \"henry\",\n \"her\",\n \"herald\",\n \"herb\",\n \"herd\",\n \"here\",\n \"hereby\",\n \"hermes\",\n \"hernia\",\n \"hero\",\n \"heroic\",\n \"heroin\",\n \"hey\",\n \"heyday\",\n \"hick\",\n \"hidden\",\n \"hide\",\n \"high\",\n \"higher\",\n \"highly\",\n \"hill\",\n \"him\",\n \"hind\",\n \"hinder\",\n \"hint\",\n \"hippie\",\n \"hire\",\n \"his\",\n \"hiss\",\n \"hit\",\n \"hive\",\n \"hoard\",\n \"hoarse\",\n \"hobby\",\n \"hockey\",\n \"hold\",\n \"holder\",\n \"hole\",\n \"hollow\",\n \"holly\",\n \"holy\",\n \"home\",\n \"honest\",\n \"honey\",\n \"hood\",\n \"hook\",\n \"hope\",\n \"horn\",\n \"horrid\",\n \"horror\",\n \"horse\",\n \"hose\",\n \"host\",\n \"hot\",\n \"hotel\",\n \"hound\",\n \"hour\",\n \"house\",\n \"hover\",\n \"how\",\n \"huge\",\n \"hull\",\n \"human\",\n \"humane\",\n \"humble\",\n \"humid\",\n \"hung\",\n \"hunger\",\n \"hungry\",\n \"hunt\",\n \"hurdle\",\n \"hurl\",\n \"hurry\",\n \"hurt\",\n \"hush\",\n \"hut\",\n \"hybrid\",\n \"hymn\",\n \"hyphen\",\n \"ice\",\n \"icing\",\n \"icon\",\n \"idaho\",\n \"idea\",\n \"ideal\",\n \"idiom\",\n \"idiot\",\n \"idle\",\n \"idly\",\n \"idol\",\n \"ignite\",\n \"ignore\",\n \"ill\",\n \"image\",\n \"immune\",\n \"impact\",\n \"imply\",\n \"import\",\n \"impose\",\n \"inca\",\n \"incest\",\n \"inch\",\n \"income\",\n \"incur\",\n \"indeed\",\n \"index\",\n \"india\",\n \"indian\",\n \"indoor\",\n \"induce\",\n \"inept\",\n \"inert\",\n \"infant\",\n \"infect\",\n \"infer\",\n \"influx\",\n \"inform\",\n \"inject\",\n \"injure\",\n \"injury\",\n \"ink\",\n \"inlaid\",\n \"inland\",\n \"inlet\",\n \"inmate\",\n \"inn\",\n \"innate\",\n \"inner\",\n \"input\",\n \"insane\",\n \"insect\",\n \"insert\",\n \"inset\",\n \"inside\",\n \"insist\",\n \"insult\",\n \"insure\",\n \"intact\",\n \"intake\",\n \"intend\",\n \"inter\",\n \"into\",\n \"invade\",\n \"invent\",\n \"invest\",\n \"invite\",\n \"invoke\",\n \"inward\",\n \"iowa\",\n \"iran\",\n \"iraq\",\n \"irish\",\n \"iron\",\n \"ironic\",\n \"irony\",\n \"isaac\",\n \"isabel\",\n \"island\",\n \"isle\",\n \"israel\",\n \"issue\",\n \"italy\",\n \"itch\",\n \"item\",\n \"itself\",\n \"ivan\",\n \"ivory\",\n \"jack\",\n \"jacket\",\n \"jacob\",\n \"jade\",\n \"jaguar\",\n \"jail\",\n \"james\",\n \"jane\",\n \"japan\",\n \"jargon\",\n \"java\",\n \"jaw\",\n \"jazz\",\n \"jeep\",\n \"jelly\",\n \"jerky\",\n \"jest\",\n \"jet\",\n \"jewel\",\n \"jewish\",\n \"jim\",\n \"job\",\n \"jock\",\n \"jockey\",\n \"joe\",\n \"john\",\n \"join\",\n \"joint\",\n \"joke\",\n \"jolly\",\n \"jolt\",\n \"jordan\",\n \"joseph\",\n \"joy\",\n \"joyful\",\n \"joyous\",\n \"judge\",\n \"judy\",\n \"juice\",\n \"juicy\",\n \"july\",\n \"jumble\",\n \"jumbo\",\n \"jump\",\n \"june\",\n \"jungle\",\n \"junior\",\n \"junk\",\n \"junta\",\n \"jury\",\n \"just\",\n \"kansas\",\n \"karate\",\n \"karl\",\n \"keel\",\n \"keen\",\n \"keep\",\n \"keeper\",\n \"kenya\",\n \"kept\",\n \"kernel\",\n \"kettle\",\n \"key\",\n \"khaki\",\n \"kick\",\n \"kid\",\n \"kidnap\",\n \"kidney\",\n \"kill\",\n \"killer\",\n \"kin\",\n \"kind\",\n \"kindly\",\n \"king\",\n \"kiss\",\n \"kite\",\n \"kitten\",\n \"knack\",\n \"knee\",\n \"kneel\",\n \"knew\",\n \"knife\",\n \"knight\",\n \"knit\",\n \"knob\",\n \"knock\",\n \"knot\",\n \"know\",\n \"known\",\n \"koran\",\n \"korea\",\n \"kuwait\",\n \"label\",\n \"lace\",\n \"lack\",\n \"lad\",\n \"ladder\",\n \"laden\",\n \"lady\",\n \"lagoon\",\n \"laity\",\n \"lake\",\n \"lamb\",\n \"lame\",\n \"lamp\",\n \"lance\",\n \"land\",\n \"lane\",\n \"lap\",\n \"lapse\",\n \"large\",\n \"larval\",\n \"laser\",\n \"last\",\n \"latch\",\n \"late\",\n \"lately\",\n \"latent\",\n \"later\",\n \"latest\",\n \"latin\",\n \"latter\",\n \"laugh\",\n \"launch\",\n \"lava\",\n \"lavish\",\n \"law\",\n \"lawful\",\n \"lawn\",\n \"lawyer\",\n \"lay\",\n \"layer\",\n \"layman\",\n \"lazy\",\n \"lead\",\n \"leader\",\n \"leaf\",\n \"leafy\",\n \"league\",\n \"leak\",\n \"leaky\",\n \"lean\",\n \"leap\",\n \"learn\",\n \"lease\",\n \"leash\",\n \"least\",\n \"leave\",\n \"led\",\n \"ledge\",\n \"left\",\n \"leg\",\n \"legacy\",\n \"legal\",\n \"legend\",\n \"legion\",\n \"lemon\",\n \"lend\",\n \"length\",\n \"lens\",\n \"lent\",\n \"leo\",\n \"leper\",\n \"lesion\",\n \"less\",\n \"lessen\",\n \"lesser\",\n \"lesson\",\n \"lest\",\n \"let\",\n \"lethal\",\n \"letter\",\n \"level\",\n \"lever\",\n \"levy\",\n \"lewis\",\n \"liable\",\n \"liar\",\n \"libel\",\n \"libya\",\n \"lice\",\n \"lick\",\n \"lid\",\n \"lie\",\n \"lied\",\n \"lier\",\n \"life\",\n \"lift\",\n \"light\",\n \"like\",\n \"likely\",\n \"limb\",\n \"lime\",\n \"limit\",\n \"limp\",\n \"line\",\n \"linear\",\n \"linen\",\n \"linger\",\n \"link\",\n \"lint\",\n \"lion\",\n \"lip\",\n \"liquid\",\n \"liquor\",\n \"list\",\n \"listen\",\n \"lit\",\n \"live\",\n \"lively\",\n \"liver\",\n \"liz\",\n \"lizard\",\n \"load\",\n \"loaf\",\n \"loan\",\n \"lobby\",\n \"lobe\",\n \"local\",\n \"locate\",\n \"lock\",\n \"locus\",\n \"lodge\",\n \"loft\",\n \"lofty\",\n \"log\",\n \"logic\",\n \"logo\",\n \"london\",\n \"lone\",\n \"lonely\",\n \"long\",\n \"longer\",\n \"look\",\n \"loop\",\n \"loose\",\n \"loosen\",\n \"loot\",\n \"lord\",\n \"lorry\",\n \"lose\",\n \"loss\",\n \"lost\",\n \"lot\",\n \"lotion\",\n \"lotus\",\n \"loud\",\n \"loudly\",\n \"lounge\",\n \"lousy\",\n \"love\",\n \"lovely\",\n \"lover\",\n \"low\",\n \"lower\",\n \"lowest\",\n \"loyal\",\n \"lucid\",\n \"luck\",\n \"lucky\",\n \"lucy\",\n \"lull\",\n \"lump\",\n \"lumpy\",\n \"lunacy\",\n \"lunar\",\n \"lunch\",\n \"lung\",\n \"lure\",\n \"lurid\",\n \"lush\",\n \"lust\",\n \"lute\",\n \"luther\",\n \"luxury\",\n \"lying\",\n \"lymph\",\n \"lynch\",\n \"lyric\",\n \"macho\",\n \"macro\",\n \"mad\",\n \"madam\",\n \"made\",\n \"mafia\",\n \"magic\",\n \"magma\",\n \"magnet\",\n \"magnum\",\n \"magpie\",\n \"maid\",\n \"maiden\",\n \"mail\",\n \"main\",\n \"mainly\",\n \"major\",\n \"make\",\n \"maker\",\n \"male\",\n \"malice\",\n \"mall\",\n \"malt\",\n \"mammal\",\n \"manage\",\n \"mane\",\n \"mania\",\n \"manic\",\n \"manner\",\n \"manor\",\n \"mantle\",\n \"manual\",\n \"manure\",\n \"many\",\n \"map\",\n \"maple\",\n \"marble\",\n \"march\",\n \"mare\",\n \"margin\",\n \"maria\",\n \"marina\",\n \"mark\",\n \"market\",\n \"marry\",\n \"mars\",\n \"marsh\",\n \"martin\",\n \"martyr\",\n \"mary\",\n \"mask\",\n \"mason\",\n \"mass\",\n \"mast\",\n \"master\",\n \"mat\",\n \"match\",\n \"mate\",\n \"matrix\",\n \"matter\",\n \"mature\",\n \"maxim\",\n \"may\",\n \"maybe\",\n \"mayor\",\n \"maze\",\n \"mead\",\n \"meadow\",\n \"meal\",\n \"mean\",\n \"meant\",\n \"meat\",\n \"medal\",\n \"media\",\n \"median\",\n \"medic\",\n \"medium\",\n \"meet\",\n \"mellow\",\n \"melody\",\n \"melon\",\n \"melt\",\n \"member\",\n \"memo\",\n \"memory\",\n \"menace\",\n \"mend\",\n \"mental\",\n \"mentor\",\n \"menu\",\n \"mercy\",\n \"mere\",\n \"merely\",\n \"merge\",\n \"merger\",\n \"merit\",\n \"merry\",\n \"mesh\",\n \"mess\",\n \"messy\",\n \"met\",\n \"metal\",\n \"meter\",\n \"method\",\n \"methyl\",\n \"metric\",\n \"metro\",\n \"mexico\",\n \"miami\",\n \"mickey\",\n \"mid\",\n \"midday\",\n \"middle\",\n \"midst\",\n \"midway\",\n \"might\",\n \"mighty\",\n \"mild\",\n \"mildew\",\n \"mile\",\n \"milk\",\n \"milky\",\n \"mill\",\n \"mimic\",\n \"mince\",\n \"mind\",\n \"mine\",\n \"mini\",\n \"mink\",\n \"minor\",\n \"mint\",\n \"minus\",\n \"minute\",\n \"mire\",\n \"mirror\",\n \"mirth\",\n \"misery\",\n \"miss\",\n \"mist\",\n \"misty\",\n \"mite\",\n \"mix\",\n \"moan\",\n \"moat\",\n \"mob\",\n \"mobile\",\n \"mock\",\n \"mode\",\n \"model\",\n \"modem\",\n \"modern\",\n \"modest\",\n \"modify\",\n \"module\",\n \"moist\",\n \"molar\",\n \"mold\",\n \"mole\",\n \"molten\",\n \"moment\",\n \"monday\",\n \"money\",\n \"monk\",\n \"monkey\",\n \"month\",\n \"mood\",\n \"moody\",\n \"moon\",\n \"moor\",\n \"moral\",\n \"morale\",\n \"morbid\",\n \"more\",\n \"morgue\",\n \"mortal\",\n \"mortar\",\n \"mosaic\",\n \"moscow\",\n \"moses\",\n \"mosque\",\n \"moss\",\n \"most\",\n \"mostly\",\n \"moth\",\n \"mother\",\n \"motion\",\n \"motive\",\n \"motor\",\n \"mount\",\n \"mourn\",\n \"mouse\",\n \"mouth\",\n \"move\",\n \"movie\",\n \"mrs\",\n \"much\",\n \"muck\",\n \"mucus\",\n \"mud\",\n \"muddle\",\n \"muddy\",\n \"mule\",\n \"mummy\",\n \"munich\",\n \"murder\",\n \"murky\",\n \"murmur\",\n \"muscle\",\n \"museum\",\n \"music\",\n \"mussel\",\n \"must\",\n \"mutant\",\n \"mute\",\n \"mutiny\",\n \"mutter\",\n \"mutton\",\n \"mutual\",\n \"muzzle\",\n \"myopic\",\n \"myriad\",\n \"myself\",\n \"mystic\",\n \"myth\",\n \"nadir\",\n \"nail\",\n \"naked\",\n \"name\",\n \"namely\",\n \"nape\",\n \"napkin\",\n \"naples\",\n \"narrow\",\n \"nasal\",\n \"nasty\",\n \"nathan\",\n \"nation\",\n \"native\",\n \"nature\",\n \"nausea\",\n \"naval\",\n \"nave\",\n \"navy\",\n \"near\",\n \"nearer\",\n \"nearly\",\n \"neat\",\n \"neatly\",\n \"neck\",\n \"need\",\n \"needle\",\n \"needy\",\n \"negate\",\n \"neon\",\n \"nepal\",\n \"nephew\",\n \"nerve\",\n \"nest\",\n \"net\",\n \"neural\",\n \"never\",\n \"newly\",\n \"next\",\n \"nice\",\n \"nicely\",\n \"niche\",\n \"nickel\",\n \"niece\",\n \"night\",\n \"nile\",\n \"nimble\",\n \"nine\",\n \"ninety\",\n \"ninth\",\n \"nobel\",\n \"noble\",\n \"nobody\",\n \"node\",\n \"noise\",\n \"noisy\",\n \"none\",\n \"noon\",\n \"nor\",\n \"norm\",\n \"normal\",\n \"north\",\n \"norway\",\n \"nose\",\n \"nosy\",\n \"not\",\n \"note\",\n \"notice\",\n \"notify\",\n \"notion\",\n \"noun\",\n \"novel\",\n \"novice\",\n \"now\",\n \"nozzle\",\n \"null\",\n \"numb\",\n \"number\",\n \"nurse\",\n \"nut\",\n \"nylon\",\n \"nymph\",\n \"oak\",\n \"oar\",\n \"oasis\",\n \"oath\",\n \"obese\",\n \"obey\",\n \"object\",\n \"oblige\",\n \"oboe\",\n \"obtain\",\n \"obtuse\",\n \"occult\",\n \"occupy\",\n \"occur\",\n \"ocean\",\n \"octave\",\n \"odd\",\n \"off\",\n \"offend\",\n \"offer\",\n \"office\",\n \"offset\",\n \"often\",\n \"ohio\",\n \"oil\",\n \"oily\",\n \"okay\",\n \"old\",\n \"older\",\n \"oldest\",\n \"olive\",\n \"omega\",\n \"omen\",\n \"omit\",\n \"once\",\n \"one\",\n \"onion\",\n \"only\",\n \"onset\",\n \"onto\",\n \"onus\",\n \"onward\",\n \"opaque\",\n \"open\",\n \"openly\",\n \"opera\",\n \"opium\",\n \"oppose\",\n \"optic\",\n \"option\",\n \"oracle\",\n \"oral\",\n \"orange\",\n \"orbit\",\n \"orchid\",\n \"ordeal\",\n \"order\",\n \"organ\",\n \"orgasm\",\n \"orient\",\n \"origin\",\n \"ornate\",\n \"orphan\",\n \"oscar\",\n \"other\",\n \"otter\",\n \"ought\",\n \"ounce\",\n \"our\",\n \"out\",\n \"outer\",\n \"output\",\n \"outset\",\n \"oval\",\n \"oven\",\n \"over\",\n \"overt\",\n \"owe\",\n \"owing\",\n \"owl\",\n \"own\",\n \"owner\",\n \"oxford\",\n \"oxide\",\n \"oxygen\",\n \"oyster\",\n \"ozone\",\n \"pace\",\n \"pack\",\n \"packet\",\n \"pact\",\n \"pad\",\n \"paddle\",\n \"paddy\",\n \"pagan\",\n \"page\",\n \"paid\",\n \"pain\",\n \"paint\",\n \"pair\",\n \"palace\",\n \"pale\",\n \"palm\",\n \"pan\",\n \"panama\",\n \"panel\",\n \"panic\",\n \"papa\",\n \"papal\",\n \"paper\",\n \"parade\",\n \"parcel\",\n \"pardon\",\n \"parent\",\n \"paris\",\n \"parish\",\n \"park\",\n \"parody\",\n \"parrot\",\n \"part\",\n \"partly\",\n \"party\",\n \"pascal\",\n \"pass\",\n \"past\",\n \"paste\",\n \"pastel\",\n \"pastor\",\n \"pastry\",\n \"pat\",\n \"patch\",\n \"patent\",\n \"path\",\n \"patio\",\n \"patrol\",\n \"patron\",\n \"paul\",\n \"pause\",\n \"pave\",\n \"paw\",\n \"pawn\",\n \"pay\",\n \"peace\",\n \"peach\",\n \"peak\",\n \"pear\",\n \"pearl\",\n \"pedal\",\n \"peel\",\n \"peer\",\n \"peking\",\n \"pelvic\",\n \"pelvis\",\n \"pen\",\n \"penal\",\n \"pence\",\n \"pencil\",\n \"penny\",\n \"people\",\n \"pepper\",\n \"per\",\n \"perch\",\n \"peril\",\n \"period\",\n \"perish\",\n \"permit\",\n \"person\",\n \"peru\",\n \"pest\",\n \"pet\",\n \"peter\",\n \"petite\",\n \"petrol\",\n \"petty\",\n \"phase\",\n \"philip\",\n \"phone\",\n \"photo\",\n \"phrase\",\n \"piano\",\n \"pick\",\n \"picket\",\n \"picnic\",\n \"pie\",\n \"piece\",\n \"pier\",\n \"pierce\",\n \"piety\",\n \"pig\",\n \"pigeon\",\n \"piggy\",\n \"pike\",\n \"pile\",\n \"pill\",\n \"pillar\",\n \"pillow\",\n \"pilot\",\n \"pin\",\n \"pinch\",\n \"pine\",\n \"pink\",\n \"pint\",\n \"pious\",\n \"pipe\",\n \"pirate\",\n \"piss\",\n \"pistol\",\n \"piston\",\n \"pit\",\n \"pitch\",\n \"pity\",\n \"pivot\",\n \"pixel\",\n \"pizza\",\n \"place\",\n \"placid\",\n \"plague\",\n \"plain\",\n \"plan\",\n \"plane\",\n \"planet\",\n \"plank\",\n \"plant\",\n \"plasma\",\n \"plate\",\n \"play\",\n \"player\",\n \"plea\",\n \"plead\",\n \"please\",\n \"pledge\",\n \"plenty\",\n \"plight\",\n \"plot\",\n \"plough\",\n \"ploy\",\n \"plug\",\n \"plum\",\n \"plump\",\n \"plunge\",\n \"plural\",\n \"plus\",\n \"plush\",\n \"pocket\",\n \"poem\",\n \"poet\",\n \"poetic\",\n \"poetry\",\n \"point\",\n \"poison\",\n \"poland\",\n \"polar\",\n \"pole\",\n \"police\",\n \"policy\",\n \"polish\",\n \"polite\",\n \"poll\",\n \"pollen\",\n \"polo\",\n \"pond\",\n \"ponder\",\n \"pony\",\n \"pool\",\n \"poor\",\n \"poorly\",\n \"pop\",\n \"poppy\",\n \"pore\",\n \"pork\",\n \"port\",\n \"portal\",\n \"pose\",\n \"posh\",\n \"post\",\n \"postal\",\n \"pot\",\n \"potato\",\n \"potent\",\n \"pouch\",\n \"pound\",\n \"pour\",\n \"powder\",\n \"power\",\n \"praise\",\n \"pray\",\n \"prayer\",\n \"preach\",\n \"prefer\",\n \"prefix\",\n \"press\",\n \"pretty\",\n \"price\",\n \"pride\",\n \"priest\",\n \"primal\",\n \"prime\",\n \"prince\",\n \"print\",\n \"prior\",\n \"prism\",\n \"prison\",\n \"privy\",\n \"prize\",\n \"probe\",\n \"profit\",\n \"prompt\",\n \"prone\",\n \"proof\",\n \"propel\",\n \"proper\",\n \"prose\",\n \"proton\",\n \"proud\",\n \"prove\",\n \"proven\",\n \"proxy\",\n \"prune\",\n \"pry\",\n \"psalm\",\n \"pseudo\",\n \"psyche\",\n \"pub\",\n \"public\",\n \"puff\",\n \"pull\",\n \"pulp\",\n \"pulpit\",\n \"pulsar\",\n \"pulse\",\n \"pump\",\n \"punch\",\n \"punish\",\n \"punk\",\n \"pupil\",\n \"puppet\",\n \"puppy\",\n \"pure\",\n \"purely\",\n \"purge\",\n \"purify\",\n \"purple\",\n \"purse\",\n \"pursue\",\n \"push\",\n \"pushy\",\n \"put\",\n \"putt\",\n \"puzzle\",\n \"quaint\",\n \"quake\",\n \"quarry\",\n \"quart\",\n \"quartz\",\n \"quebec\",\n \"queen\",\n \"queer\",\n \"query\",\n \"quest\",\n \"queue\",\n \"quick\",\n \"quid\",\n \"quiet\",\n \"quilt\",\n \"quirk\",\n \"quit\",\n \"quite\",\n \"quiver\",\n \"quiz\",\n \"quota\",\n \"quote\",\n \"rabbit\",\n \"race\",\n \"racial\",\n \"racism\",\n \"rack\",\n \"racket\",\n \"radar\",\n \"radio\",\n \"radish\",\n \"radius\",\n \"raffle\",\n \"raft\",\n \"rage\",\n \"raid\",\n \"rail\",\n \"rain\",\n \"rainy\",\n \"raise\",\n \"rake\",\n \"rally\",\n \"ramp\",\n \"random\",\n \"range\",\n \"rank\",\n \"ransom\",\n \"rape\",\n \"rapid\",\n \"rare\",\n \"rarely\",\n \"rarity\",\n \"rash\",\n \"rat\",\n \"rate\",\n \"rather\",\n \"ratify\",\n \"ratio\",\n \"rattle\",\n \"rave\",\n \"raven\",\n \"raw\",\n \"ray\",\n \"razor\",\n \"reach\",\n \"react\",\n \"read\",\n \"reader\",\n \"ready\",\n \"real\",\n \"really\",\n \"realm\",\n \"reap\",\n \"rear\",\n \"reason\",\n \"rebel\",\n \"recall\",\n \"recent\",\n \"recess\",\n \"recipe\",\n \"reckon\",\n \"record\",\n \"recoup\",\n \"rector\",\n \"red\",\n \"redeem\",\n \"redo\",\n \"reduce\",\n \"reed\",\n \"reef\",\n \"reek\",\n \"refer\",\n \"reform\",\n \"refuge\",\n \"refuse\",\n \"regal\",\n \"regard\",\n \"regent\",\n \"regime\",\n \"region\",\n \"regret\",\n \"reign\",\n \"reject\",\n \"relate\",\n \"relax\",\n \"relay\",\n \"relic\",\n \"relief\",\n \"relish\",\n \"rely\",\n \"remain\",\n \"remark\",\n \"remedy\",\n \"remind\",\n \"remit\",\n \"remote\",\n \"remove\",\n \"renal\",\n \"render\",\n \"rent\",\n \"rental\",\n \"repair\",\n \"repeal\",\n \"repeat\",\n \"repent\",\n \"reply\",\n \"report\",\n \"rescue\",\n \"resent\",\n \"reside\",\n \"resign\",\n \"resin\",\n \"resist\",\n \"resort\",\n \"rest\",\n \"result\",\n \"resume\",\n \"retail\",\n \"retain\",\n \"retina\",\n \"retire\",\n \"return\",\n \"reveal\",\n \"review\",\n \"revise\",\n \"revive\",\n \"revolt\",\n \"reward\",\n \"rex\",\n \"rhine\",\n \"rhino\",\n \"rhyme\",\n \"rhythm\",\n \"ribbon\",\n \"rice\",\n \"rich\",\n \"rick\",\n \"rid\",\n \"ride\",\n \"rider\",\n \"ridge\",\n \"rife\",\n \"rifle\",\n \"rift\",\n \"right\",\n \"rigid\",\n \"rile\",\n \"rim\",\n \"ring\",\n \"rinse\",\n \"riot\",\n \"ripe\",\n \"ripen\",\n \"ripple\",\n \"rise\",\n \"risk\",\n \"risky\",\n \"rite\",\n \"ritual\",\n \"ritz\",\n \"rival\",\n \"river\",\n \"road\",\n \"roar\",\n \"roast\",\n \"rob\",\n \"robe\",\n \"robert\",\n \"robin\",\n \"robot\",\n \"robust\",\n \"rock\",\n \"rocket\",\n \"rocky\",\n \"rod\",\n \"rode\",\n \"rodent\",\n \"rogue\",\n \"role\",\n \"roll\",\n \"roman\",\n \"rome\",\n \"roof\",\n \"room\",\n \"root\",\n \"rope\",\n \"rose\",\n \"rosy\",\n \"rot\",\n \"rotate\",\n \"rotor\",\n \"rotten\",\n \"rouge\",\n \"rough\",\n \"round\",\n \"route\",\n \"rover\",\n \"row\",\n \"royal\",\n \"rub\",\n \"rubber\",\n \"rubble\",\n \"ruby\",\n \"rudder\",\n \"rude\",\n \"rug\",\n \"rugby\",\n \"ruin\",\n \"rule\",\n \"ruler\",\n \"rumble\",\n \"rump\",\n \"run\",\n \"rune\",\n \"rung\",\n \"runway\",\n \"rural\",\n \"rush\",\n \"russia\",\n \"rust\",\n \"rustic\",\n \"rusty\",\n \"sack\",\n \"sacred\",\n \"sad\",\n \"saddle\",\n \"sadism\",\n \"sadly\",\n \"safari\",\n \"safe\",\n \"safely\",\n \"safer\",\n \"safety\",\n \"saga\",\n \"sage\",\n \"sahara\",\n \"said\",\n \"sail\",\n \"sailor\",\n \"saint\",\n \"sake\",\n \"salad\",\n \"salary\",\n \"sale\",\n \"saline\",\n \"saliva\",\n \"salmon\",\n \"saloon\",\n \"salt\",\n \"salty\",\n \"salute\",\n \"sam\",\n \"same\",\n \"sample\",\n \"sand\",\n \"sandy\",\n \"sane\",\n \"sash\",\n \"satin\",\n \"satire\",\n \"saturn\",\n \"sauce\",\n \"saucer\",\n \"saudi\",\n \"sauna\",\n \"savage\",\n \"save\",\n \"saw\",\n \"say\",\n \"scale\",\n \"scalp\",\n \"scan\",\n \"scant\",\n \"scar\",\n \"scarce\",\n \"scare\",\n \"scarf\",\n \"scary\",\n \"scene\",\n \"scenic\",\n \"scent\",\n \"school\",\n \"scold\",\n \"scope\",\n \"score\",\n \"scorn\",\n \"scotch\",\n \"scott\",\n \"scout\",\n \"scrap\",\n \"scrape\",\n \"scream\",\n \"screen\",\n \"screw\",\n \"script\",\n \"scroll\",\n \"scrub\",\n \"scum\",\n \"sea\",\n \"seal\",\n \"seam\",\n \"seaman\",\n \"search\",\n \"season\",\n \"seat\",\n \"second\",\n \"secret\",\n \"sect\",\n \"sector\",\n \"secure\",\n \"see\",\n \"seed\",\n \"seeing\",\n \"seek\",\n \"seem\",\n \"seize\",\n \"seldom\",\n \"select\",\n \"self\",\n \"sell\",\n \"seller\",\n \"semi\",\n \"senate\",\n \"send\",\n \"senile\",\n \"senior\",\n \"sense\",\n \"sensor\",\n \"sent\",\n \"sentry\",\n \"seoul\",\n \"sequel\",\n \"serene\",\n \"serial\",\n \"series\",\n \"sermon\",\n \"serum\",\n \"serve\",\n \"server\",\n \"set\",\n \"settle\",\n \"seven\",\n \"severe\",\n \"sew\",\n \"sewage\",\n \"shabby\",\n \"shade\",\n \"shadow\",\n \"shady\",\n \"shaft\",\n \"shaggy\",\n \"shah\",\n \"shake\",\n \"shaky\",\n \"shall\",\n \"sham\",\n \"shame\",\n \"shape\",\n \"share\",\n \"shark\",\n \"sharp\",\n \"shawl\",\n \"she\",\n \"shear\",\n \"sheen\",\n \"sheep\",\n \"sheer\",\n \"sheet\",\n \"shelf\",\n \"shell\",\n \"sherry\",\n \"shield\",\n \"shift\",\n \"shine\",\n \"shiny\",\n \"ship\",\n \"shire\",\n \"shirk\",\n \"shirt\",\n \"shiver\",\n \"shock\",\n \"shoe\",\n \"shook\",\n \"shoot\",\n \"shop\",\n \"shore\",\n \"short\",\n \"shot\",\n \"should\",\n \"shout\",\n \"show\",\n \"shower\",\n \"shrank\",\n \"shrewd\",\n \"shrill\",\n \"shrimp\",\n \"shrine\",\n \"shrink\",\n \"shrub\",\n \"shrug\",\n \"shut\",\n \"shy\",\n \"shyly\",\n \"sick\",\n \"side\",\n \"siege\",\n \"sigh\",\n \"sight\",\n \"sigma\",\n \"sign\",\n \"signal\",\n \"silent\",\n \"silk\",\n \"silken\",\n \"silky\",\n \"sill\",\n \"silly\",\n \"silo\",\n \"silver\",\n \"simple\",\n \"simply\",\n \"since\",\n \"sinful\",\n \"sing\",\n \"singer\",\n \"single\",\n \"sink\",\n \"sir\",\n \"sire\",\n \"siren\",\n \"sister\",\n \"sit\",\n \"site\",\n \"sitter\",\n \"six\",\n \"sixth\",\n \"sixty\",\n \"size\",\n \"sketch\",\n \"skill\",\n \"skin\",\n \"skinny\",\n \"skip\",\n \"skirt\",\n \"skull\",\n \"sky\",\n \"slab\",\n \"slack\",\n \"slain\",\n \"slam\",\n \"slang\",\n \"slap\",\n \"slat\",\n \"slate\",\n \"slave\",\n \"sleek\",\n \"sleep\",\n \"sleepy\",\n \"sleeve\",\n \"slice\",\n \"slick\",\n \"slid\",\n \"slide\",\n \"slight\",\n \"slim\",\n \"slimy\",\n \"sling\",\n \"slip\",\n \"slit\",\n \"slogan\",\n \"slope\",\n \"sloppy\",\n \"slot\",\n \"slow\",\n \"slowly\",\n \"slug\",\n \"slum\",\n \"slump\",\n \"smack\",\n \"small\",\n \"smart\",\n \"smash\",\n \"smear\",\n \"smell\",\n \"smelly\",\n \"smelt\",\n \"smile\",\n \"smite\",\n \"smoke\",\n \"smoky\",\n \"smooth\",\n \"smug\",\n \"snack\",\n \"snail\",\n \"snake\",\n \"snap\",\n \"snatch\",\n \"sneak\",\n \"snow\",\n \"snowy\",\n \"snug\",\n \"soak\",\n \"soap\",\n \"sober\",\n \"soccer\",\n \"social\",\n \"sock\",\n \"socket\",\n \"socks\",\n \"soda\",\n \"sodden\",\n \"sodium\",\n \"sofa\",\n \"soft\",\n \"soften\",\n \"softly\",\n \"soggy\",\n \"soil\",\n \"solar\",\n \"sold\",\n \"sole\",\n \"solely\",\n \"solemn\",\n \"solid\",\n \"solo\",\n \"solve\",\n \"some\",\n \"son\",\n \"sonar\",\n \"sonata\",\n \"song\",\n \"sonic\",\n \"sony\",\n \"soon\",\n \"sooner\",\n \"soot\",\n \"soothe\",\n \"sordid\",\n \"sore\",\n \"sorrow\",\n \"sorry\",\n \"sort\",\n \"soul\",\n \"sound\",\n \"soup\",\n \"sour\",\n \"source\",\n \"soviet\",\n \"sow\",\n \"space\",\n \"spade\",\n \"spain\",\n \"span\",\n \"spare\",\n \"spark\",\n \"sparse\",\n \"spasm\",\n \"spat\",\n \"spate\",\n \"speak\",\n \"spear\",\n \"speech\",\n \"speed\",\n \"speedy\",\n \"spell\",\n \"spend\",\n \"sphere\",\n \"spice\",\n \"spicy\",\n \"spider\",\n \"spiky\",\n \"spill\",\n \"spin\",\n \"spinal\",\n \"spine\",\n \"spiral\",\n \"spirit\",\n \"spit\",\n \"spite\",\n \"splash\",\n \"split\",\n \"spoil\",\n \"spoke\",\n \"sponge\",\n \"spoon\",\n \"sport\",\n \"spot\",\n \"spouse\",\n \"spray\",\n \"spread\",\n \"spree\",\n \"spring\",\n \"sprint\",\n \"spur\",\n \"squad\",\n \"square\",\n \"squash\",\n \"squat\",\n \"squid\",\n \"stab\",\n \"stable\",\n \"stack\",\n \"staff\",\n \"stage\",\n \"stain\",\n \"stair\",\n \"stairs\",\n \"stake\",\n \"stale\",\n \"stall\",\n \"stamp\",\n \"stance\",\n \"stand\",\n \"staple\",\n \"star\",\n \"starch\",\n \"stare\",\n \"stark\",\n \"start\",\n \"starve\",\n \"state\",\n \"static\",\n \"statue\",\n \"status\",\n \"stay\",\n \"stead\",\n \"steady\",\n \"steak\",\n \"steal\",\n \"steam\",\n \"steel\",\n \"steep\",\n \"steer\",\n \"stem\",\n \"stench\",\n \"step\",\n \"stereo\",\n \"stern\",\n \"stew\",\n \"stick\",\n \"sticky\",\n \"stiff\",\n \"stifle\",\n \"stigma\",\n \"still\",\n \"sting\",\n \"stint\",\n \"stir\",\n \"stitch\",\n \"stock\",\n \"stocky\",\n \"stone\",\n \"stony\",\n \"stool\",\n \"stop\",\n \"store\",\n \"storm\",\n \"stormy\",\n \"story\",\n \"stout\",\n \"stove\",\n \"stow\",\n \"strain\",\n \"strait\",\n \"strand\",\n \"strap\",\n \"strata\",\n \"straw\",\n \"stray\",\n \"streak\",\n \"stream\",\n \"street\",\n \"stress\",\n \"strict\",\n \"stride\",\n \"strife\",\n \"strike\",\n \"string\",\n \"strip\",\n \"stripe\",\n \"strive\",\n \"stroke\",\n \"stroll\",\n \"strong\",\n \"stud\",\n \"studio\",\n \"study\",\n \"stuff\",\n \"stuffy\",\n \"stunt\",\n \"stupid\",\n \"sturdy\",\n \"style\",\n \"submit\",\n \"subtle\",\n \"subtly\",\n \"suburb\",\n \"such\",\n \"sudden\",\n \"sue\",\n \"suez\",\n \"suffer\",\n \"sugar\",\n \"suit\",\n \"suite\",\n \"suitor\",\n \"sullen\",\n \"sultan\",\n \"sum\",\n \"summer\",\n \"summit\",\n \"summon\",\n \"sun\",\n \"sunday\",\n \"sunny\",\n \"sunset\",\n \"super\",\n \"superb\",\n \"supper\",\n \"supple\",\n \"supply\",\n \"sure\",\n \"surely\",\n \"surf\",\n \"surge\",\n \"survey\",\n \"suture\",\n \"swamp\",\n \"swan\",\n \"swap\",\n \"swarm\",\n \"sway\",\n \"swear\",\n \"sweat\",\n \"sweaty\",\n \"sweden\",\n \"sweep\",\n \"sweet\",\n \"swell\",\n \"swift\",\n \"swim\",\n \"swine\",\n \"swing\",\n \"swirl\",\n \"swiss\",\n \"switch\",\n \"sword\",\n \"swore\",\n \"sydney\",\n \"symbol\",\n \"synod\",\n \"syntax\",\n \"syria\",\n \"syrup\",\n \"system\",\n \"table\",\n \"tablet\",\n \"taboo\",\n \"tacit\",\n \"tackle\",\n \"tact\",\n \"tactic\",\n \"tail\",\n \"tailor\",\n \"taiwan\",\n \"take\",\n \"tale\",\n \"talent\",\n \"talk\",\n \"tall\",\n \"tally\",\n \"tame\",\n \"tampa\",\n \"tan\",\n \"tandem\",\n \"tangle\",\n \"tank\",\n \"tap\",\n \"tape\",\n \"target\",\n \"tariff\",\n \"tarp\",\n \"tart\",\n \"tarzan\",\n \"task\",\n \"taste\",\n \"tasty\",\n \"tattoo\",\n \"taurus\",\n \"taut\",\n \"tavern\",\n \"tax\",\n \"taxi\",\n \"tea\",\n \"teach\",\n \"teak\",\n \"team\",\n \"tear\",\n \"tease\",\n \"tech\",\n \"teeth\",\n \"tell\",\n \"temper\",\n \"temple\",\n \"tempo\",\n \"tempt\",\n \"ten\",\n \"tenant\",\n \"tend\",\n \"tender\",\n \"tendon\",\n \"tennis\",\n \"tenor\",\n \"tense\",\n \"tent\",\n \"tenth\",\n \"tenure\",\n \"teresa\",\n \"term\",\n \"terror\",\n \"terse\",\n \"test\",\n \"texas\",\n \"text\",\n \"thank\",\n \"thaw\",\n \"them\",\n \"theme\",\n \"thence\",\n \"theory\",\n \"there\",\n \"these\",\n \"thesis\",\n \"they\",\n \"thick\",\n \"thief\",\n \"thigh\",\n \"thin\",\n \"thing\",\n \"think\",\n \"third\",\n \"thirst\",\n \"thirty\",\n \"this\",\n \"thomas\",\n \"thorn\",\n \"those\",\n \"though\",\n \"thread\",\n \"threat\",\n \"three\",\n \"thrill\",\n \"thrive\",\n \"throat\",\n \"throne\",\n \"throng\",\n \"throw\",\n \"thrust\",\n \"thud\",\n \"thug\",\n \"thumb\",\n \"thus\",\n \"thyme\",\n \"tibet\",\n \"tick\",\n \"ticket\",\n \"tidal\",\n \"tide\",\n \"tidy\",\n \"tie\",\n \"tier\",\n \"tiger\",\n \"tight\",\n \"tile\",\n \"till\",\n \"tilt\",\n \"timber\",\n \"time\",\n \"timid\",\n \"tin\",\n \"tiny\",\n \"tip\",\n \"tire\",\n \"tissue\",\n \"title\",\n \"toad\",\n \"toast\",\n \"today\",\n \"toe\",\n \"toilet\",\n \"token\",\n \"tokyo\",\n \"told\",\n \"toll\",\n \"tom\",\n \"tomato\",\n \"tomb\",\n \"tonal\",\n \"tone\",\n \"tongue\",\n \"tonic\",\n \"too\",\n \"took\",\n \"tool\",\n \"tooth\",\n \"top\",\n \"topaz\",\n \"topic\",\n \"torch\",\n \"torque\",\n \"torso\",\n \"tort\",\n \"toss\",\n \"total\",\n \"touch\",\n \"tough\",\n \"tour\",\n \"toward\",\n \"towel\",\n \"tower\",\n \"town\",\n \"toxic\",\n \"toxin\",\n \"toy\",\n \"trace\",\n \"track\",\n \"tract\",\n \"trade\",\n \"tragic\",\n \"trail\",\n \"train\",\n \"trait\",\n \"tram\",\n \"trance\",\n \"trap\",\n \"trauma\",\n \"travel\",\n \"tray\",\n \"tread\",\n \"treat\",\n \"treaty\",\n \"treble\",\n \"tree\",\n \"trek\",\n \"tremor\",\n \"trench\",\n \"trend\",\n \"trendy\",\n \"trial\",\n \"tribal\",\n \"tribe\",\n \"trick\",\n \"tricky\",\n \"tried\",\n \"trifle\",\n \"trim\",\n \"trio\",\n \"trip\",\n \"triple\",\n \"troop\",\n \"trophy\",\n \"trot\",\n \"trough\",\n \"trout\",\n \"truce\",\n \"truck\",\n \"true\",\n \"truly\",\n \"trunk\",\n \"trust\",\n \"truth\",\n \"try\",\n \"tube\",\n \"tumble\",\n \"tuna\",\n \"tundra\",\n \"tune\",\n \"tunic\",\n \"tunnel\",\n \"turban\",\n \"turf\",\n \"turk\",\n \"turkey\",\n \"turn\",\n \"turtle\",\n \"tutor\",\n \"tweed\",\n \"twelve\",\n \"twenty\",\n \"twice\",\n \"twin\",\n \"twist\",\n \"two\",\n \"tycoon\",\n \"tying\",\n \"type\",\n \"tyrant\",\n \"ugly\",\n \"ulcer\",\n \"ultra\",\n \"umpire\",\n \"unable\",\n \"uncle\",\n \"under\",\n \"uneasy\",\n \"unfair\",\n \"unify\",\n \"union\",\n \"unique\",\n \"unit\",\n \"unite\",\n \"unity\",\n \"unlike\",\n \"unrest\",\n \"unruly\",\n \"until\",\n \"update\",\n \"upheld\",\n \"uphill\",\n \"uphold\",\n \"upon\",\n \"upper\",\n \"uproar\",\n \"upset\",\n \"upshot\",\n \"uptake\",\n \"upturn\",\n \"upward\",\n \"urban\",\n \"urge\",\n \"urgent\",\n \"urging\",\n \"urine\",\n \"usable\",\n \"usage\",\n \"use\",\n \"useful\",\n \"user\",\n \"usual\",\n \"utmost\",\n \"utter\",\n \"vacant\",\n \"vacuum\",\n \"vague\",\n \"vain\",\n \"valet\",\n \"valid\",\n \"valley\",\n \"value\",\n \"valve\",\n \"van\",\n \"vanish\",\n \"vanity\",\n \"vary\",\n \"vase\",\n \"vast\",\n \"vat\",\n \"vault\",\n \"vector\",\n \"veil\",\n \"vein\",\n \"velvet\",\n \"vendor\",\n \"veneer\",\n \"venice\",\n \"venom\",\n \"vent\",\n \"venue\",\n \"venus\",\n \"verb\",\n \"verbal\",\n \"verge\",\n \"verify\",\n \"verity\",\n \"verse\",\n \"versus\",\n \"very\",\n \"vessel\",\n \"vest\",\n \"vet\",\n \"veto\",\n \"via\",\n \"viable\",\n \"vicar\",\n \"vice\",\n \"victim\",\n \"victor\",\n \"video\",\n \"vienna\",\n \"view\",\n \"vigil\",\n \"viking\",\n \"vile\",\n \"villa\",\n \"vine\",\n \"vinyl\",\n \"viola\",\n \"violet\",\n \"violin\",\n \"viral\",\n \"virgo\",\n \"virtue\",\n \"virus\",\n \"visa\",\n \"vision\",\n \"visit\",\n \"visual\",\n \"vital\",\n \"vivid\",\n \"vocal\",\n \"vodka\",\n \"vogue\",\n \"voice\",\n \"void\",\n \"volley\",\n \"volume\",\n \"vote\",\n \"vowel\",\n \"voyage\",\n \"vulgar\",\n \"wade\",\n \"wage\",\n \"waist\",\n \"wait\",\n \"waiter\",\n \"wake\",\n \"walk\",\n \"walker\",\n \"wall\",\n \"wallet\",\n \"walnut\",\n \"wander\",\n \"want\",\n \"war\",\n \"warden\",\n \"warm\",\n \"warmth\",\n \"warn\",\n \"warp\",\n \"warsaw\",\n \"wary\",\n \"was\",\n \"wash\",\n \"wasp\",\n \"waste\",\n \"watch\",\n \"water\",\n \"watery\",\n \"wave\",\n \"wax\",\n \"way\",\n \"weak\",\n \"weaken\",\n \"wealth\",\n \"weapon\",\n \"wear\",\n \"weary\",\n \"weave\",\n \"wedge\",\n \"wee\",\n \"weed\",\n \"week\",\n \"weekly\",\n \"weep\",\n \"weigh\",\n \"weight\",\n \"weird\",\n \"well\",\n \"were\",\n \"west\",\n \"wet\",\n \"whale\",\n \"wharf\",\n \"what\",\n \"wheat\",\n \"wheel\",\n \"when\",\n \"whence\",\n \"where\",\n \"which\",\n \"whiff\",\n \"while\",\n \"whim\",\n \"whip\",\n \"whisky\",\n \"white\",\n \"who\",\n \"whole\",\n \"wholly\",\n \"whom\",\n \"whose\",\n \"why\",\n \"wicked\",\n \"wide\",\n \"widely\",\n \"widen\",\n \"wider\",\n \"widow\",\n \"width\",\n \"wife\",\n \"wig\",\n \"wild\",\n \"wildly\",\n \"will\",\n \"willow\",\n \"wily\",\n \"win\",\n \"wind\",\n \"window\",\n \"windy\",\n \"wine\",\n \"wing\",\n \"wink\",\n \"winner\",\n \"winter\",\n \"wipe\",\n \"wire\",\n \"wisdom\",\n \"wise\",\n \"wish\",\n \"wit\",\n \"witch\",\n \"with\",\n \"within\",\n \"witty\",\n \"wizard\",\n \"woke\",\n \"wolf\",\n \"wolves\",\n \"woman\",\n \"womb\",\n \"won\",\n \"wonder\",\n \"wood\",\n \"wooden\",\n \"woods\",\n \"woody\",\n \"wool\",\n \"word\",\n \"work\",\n \"worker\",\n \"world\",\n \"worm\",\n \"worry\",\n \"worse\",\n \"worst\",\n \"worth\",\n \"worthy\",\n \"would\",\n \"wound\",\n \"wrap\",\n \"wrath\",\n \"wreath\",\n \"wreck\",\n \"wring\",\n \"wrist\",\n \"writ\",\n \"write\",\n \"writer\",\n \"wrong\",\n \"xerox\",\n \"yacht\",\n \"yale\",\n \"yard\",\n \"yarn\",\n \"yeah\",\n \"year\",\n \"yeard\",\n \"yeast\",\n \"yellow\",\n \"yet\",\n \"yield\",\n \"yogurt\",\n \"yolk\",\n \"you\",\n \"young\",\n \"your\",\n \"youth\",\n \"zaire\",\n \"zeal\",\n \"zebra\",\n \"zenith\",\n \"zero\",\n \"zeus\",\n \"zigzag\",\n \"zinc\",\n \"zombie\",\n \"zone\",\n];\n","export default [\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];\n","// this will be executed in browser environment so we can use window.crypto\n/* eslint-disable n/no-unsupported-features/node-builtins */\n\n/**\n * @param {Uint8Array} data\n * @returns {Promise}\n */\nexport async function digest(data) {\n // https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/digest\n return new Uint8Array(await crypto.subtle.digest(\"SHA-256\", data));\n}\n","import * as hmac from \"../primitive/hmac.js\";\nimport * as pbkdf2 from \"./pbkdf2.js\";\n\n/**\n * @param {string[]} words\n * @param {string} passphrase\n * @returns {Promise}\n */\nexport async function toSeed(words, passphrase) {\n const input = words.join(\" \");\n const salt = `mnemonic${passphrase}`.normalize(\"NFKD\");\n\n return pbkdf2.deriveKey(hmac.HashAlgorithm.Sha512, input, salt, 2048, 64);\n}\n","import BigNumber from \"bignumber.js\";\nimport * as sha256 from \"../primitive/sha256.js\";\n\n/**\n * @param {string[]} words\n * @param {string[]} wordlist\n * @returns {[Uint8Array, number]}\n */\nexport function legacy1(words, wordlist) {\n const indicies = words.map((word) => wordlist.indexOf(word.toLowerCase()));\n\n const data = convertRadix(indicies, wordlist.length, 256, 33);\n const checksum = data[data.length - 1];\n const result = new Uint8Array(data.length - 1);\n\n for (let i = 0; i < data.length - 1; i += 1) {\n result[i] = data[i] ^ checksum;\n }\n\n return [result, checksum];\n}\n\n/**\n * @param {string[]} words\n * @param {string[]} wordlist\n * @returns {Promise}\n */\nexport async function legacy2(words, wordlist) {\n const concatBitsLen = words.length * 11;\n /** @type {boolean[]} */\n const concatBits = [];\n concatBits.fill(false, 0, concatBitsLen);\n\n for (const [wordIndex, word] of words.entries()) {\n const index = wordlist.indexOf(word.toLowerCase());\n\n if (index < 0) {\n throw new Error(`Word not found in wordlist: ${word}`);\n }\n\n for (let i = 0; i < 11; i += 1) {\n concatBits[wordIndex * 11 + i] = (index & (1 << (10 - i))) !== 0;\n }\n }\n\n const checksumBitsLen = concatBitsLen / 33;\n const entropyBitsLen = concatBitsLen - checksumBitsLen;\n const entropy = new Uint8Array(entropyBitsLen / 8);\n\n for (let i = 0; i < entropy.length; i += 1) {\n for (let j = 0; j < 8; j += 1) {\n if (concatBits[i * 8 + j]) {\n entropy[i] |= 1 << (7 - j);\n }\n }\n }\n\n // Checksum validation\n const hash = await sha256.digest(entropy);\n const hashBits = bytesToBits(hash);\n\n for (let i = 0; i < checksumBitsLen; i += 1) {\n if (concatBits[entropyBitsLen + i] !== hashBits[i]) {\n throw new Error(\"Checksum mismatch\");\n }\n }\n\n return entropy;\n}\n\n/**\n * @param {Uint8Array} data\n * @returns {number}\n */\nexport function crc8(data) {\n let crc = 0xff;\n\n for (let i = 0; i < data.length - 1; i += 1) {\n crc ^= data[i];\n for (let j = 0; j < 8; j += 1) {\n crc = (crc >>> 1) ^ ((crc & 1) === 0 ? 0 : 0xb2);\n }\n }\n\n return crc ^ 0xff;\n}\n\n/**\n * @param {number[]} nums\n * @param {number} fromRadix\n * @param {number} toRadix\n * @param {number} toLength\n * @returns {Uint8Array}\n */\nexport function convertRadix(nums, fromRadix, toRadix, toLength) {\n let num = new BigNumber(0);\n\n for (const element of nums) {\n num = num.times(fromRadix);\n num = num.plus(element);\n }\n\n const result = new Uint8Array(toLength);\n\n for (let i = toLength - 1; i >= 0; i -= 1) {\n const tem = num.dividedToIntegerBy(toRadix);\n const rem = num.modulo(toRadix);\n num = tem;\n result[i] = rem.toNumber();\n }\n\n return result;\n}\n\n/**\n * @param {Uint8Array} data\n * @returns {boolean[]}\n */\nexport function bytesToBits(data) {\n /** @type {boolean[]} */\n const bits = [];\n bits.fill(false, 0, data.length * 8);\n\n for (let i = 0; i < data.length; i += 1) {\n for (let j = 0; j < 8; j += 1) {\n bits[i * 8 + j] = (data[i] & (1 << (7 - j))) !== 0;\n }\n }\n\n return bits;\n}\n","import CACHE from \"./Cache.js\";\nimport Ed25519PrivateKey from \"./Ed25519PrivateKey.js\";\nimport BadMnemonicError from \"./BadMnemonicError.js\";\nimport BadMnemonicReason from \"./BadMnemonicReason.js\";\nimport legacyWords from \"./words/legacy.js\";\nimport bip39Words from \"./words/bip39.js\";\nimport nacl from \"tweetnacl\";\nimport * as sha256 from \"./primitive/sha256.js\";\nimport * as hmac from \"./primitive/hmac.js\";\nimport * as slip10 from \"./primitive/slip10.js\";\nimport * as bip32 from \"./primitive/bip32.js\";\nimport * as bip39 from \"./primitive/bip39.js\";\nimport * as entropy from \"./util/entropy.js\";\nimport * as random from \"./primitive/random.js\";\nimport EcdsaPrivateKey from \"./EcdsaPrivateKey.js\";\nimport PrivateKey from \"./PrivateKey.js\";\nimport * as ecdsa from \"./primitive/ecdsa.js\";\n\nconst ED25519_SEED_TEXT = \"ed25519 seed\";\nconst ECDSA_SEED_TEXT = \"Bitcoin seed\";\n\nexport const HARDENED = 0x80000000;\n\n/// m/44'/3030'/0'/0' - All paths in EdDSA derivation are implicitly hardened.\nexport const HEDERA_PATH = [44, 3030, 0, 0];\n\n/// m/44'/3030'/0'/0\nexport const SLIP44_ECDSA_HEDERA_PATH = [\n 44 | HARDENED,\n 3030 | HARDENED,\n 0 | HARDENED,\n 0,\n];\n\n/// m/44'/60'/0'/0\nexport const SLIP44_ECDSA_ETH_PATH = [\n 44 | HARDENED,\n 60 | HARDENED,\n 0 | HARDENED,\n 0,\n 0,\n];\n\n/**\n * Multi-word mnemonic phrase (BIP-39).\n *\n * Compatible with the official Hedera mobile\n * wallets (24-words or 22-words) and BRD (12-words).\n */\nexport default class Mnemonic {\n /**\n * @param {object} props\n * @param {string[]} props.words\n * @throws {BadMnemonicError}\n * @hideconstructor\n * @private\n */\n constructor({ words }) {\n this.words = words;\n }\n\n /**\n * Returns a new random 24-word mnemonic from the BIP-39\n * standard English word list.\n * @returns {Promise}\n */\n static generate() {\n return Mnemonic._generate(24);\n }\n\n /**\n * Returns a new random 12-word mnemonic from the BIP-39\n * standard English word list.\n * @returns {Promise}\n */\n static generate12() {\n return Mnemonic._generate(12);\n }\n\n /**\n * @param {number} length\n * @returns {Promise}\n */\n static async _generate(length) {\n // only 12-word or 24-word lengths are supported\n let neededEntropy;\n\n if (length === 12) neededEntropy = 16;\n else if (length === 24) neededEntropy = 32;\n else {\n throw new Error(\n `unsupported phrase length ${length}, only 12 or 24 are supported`,\n );\n }\n\n // inlined from (ISC) with heavy alternations for modern crypto\n // https://github.com/bitcoinjs/bip39/blob/8461e83677a1d2c685d0d5a9ba2a76bd228f74c6/ts_src/index.ts#L125\n const seed = await random.bytesAsync(neededEntropy);\n const entropyBits = bytesToBinary(Array.from(seed));\n const checksumBits = await deriveChecksumBits(seed);\n const bits = entropyBits + checksumBits;\n const chunks = bits.match(/(.{1,11})/g);\n\n const words = (chunks != null ? chunks : []).map(\n (binary) => bip39Words[binaryToByte(binary)],\n );\n\n return new Mnemonic({ words });\n }\n\n /**\n * Construct a mnemonic from a list of words. Handles 12, 22 (legacy), and 24 words.\n *\n * An exception of BadMnemonicError will be thrown if the mnemonic\n * contains unknown words or fails the checksum. An invalid mnemonic\n * can still be used to create private keys, the exception will\n * contain the failing mnemonic in case you wish to ignore the\n * validation error and continue.\n * @param {string[]} words\n * @throws {BadMnemonicError}\n * @returns {Promise}\n */\n static fromWords(words) {\n return new Mnemonic({\n words,\n })._validate();\n }\n\n /**\n * @deprecated - Use `toStandardEd25519PrivateKey()` or `toStandardECDSAsecp256k1PrivateKey()` instead\n * Recover a private key from this mnemonic phrase, with an\n * optional passphrase.\n * @param {string} [passphrase]\n * @returns {Promise}\n */\n toPrivateKey(passphrase = \"\") {\n // eslint-disable-next-line deprecation/deprecation\n return this.toEd25519PrivateKey(passphrase);\n }\n\n /**\n * @deprecated - Use `toStandardEd25519PrivateKey()` or `toStandardECDSAsecp256k1PrivateKey()` instead\n * Recover an Ed25519 private key from this mnemonic phrase, with an\n * optional passphrase.\n * @param {string} [passphrase]\n * @param {number[]} [path]\n * @returns {Promise}\n */\n async toEd25519PrivateKey(passphrase = \"\", path = HEDERA_PATH) {\n let { keyData, chainCode } = await this._toKeyData(\n passphrase,\n ED25519_SEED_TEXT,\n );\n\n for (const index of path) {\n ({ keyData, chainCode } = await slip10.derive(\n keyData,\n chainCode,\n index,\n ));\n }\n\n const keyPair = nacl.sign.keyPair.fromSeed(keyData);\n\n if (CACHE.privateKeyConstructor == null) {\n throw new Error(\"PrivateKey not found in cache\");\n }\n\n return CACHE.privateKeyConstructor(\n new Ed25519PrivateKey(keyPair, chainCode),\n );\n }\n\n /**\n * Recover an Ed25519 private key from this mnemonic phrase, with an\n * optional passphrase.\n * @param {string} [passphrase]\n * @param {number} [index]\n * @returns {Promise}\n */\n async toStandardEd25519PrivateKey(passphrase = \"\", index) {\n const seed = await Mnemonic.toSeed(this.words, passphrase);\n let derivedKey = await PrivateKey.fromSeedED25519(seed);\n index = index == null ? 0 : index;\n\n for (const currentIndex of [44, 3030, 0, 0, index]) {\n derivedKey = await derivedKey.derive(currentIndex);\n }\n\n return derivedKey;\n }\n\n /**\n * @deprecated - Use `toStandardEd25519PrivateKey()` or `toStandardECDSAsecp256k1PrivateKey()` instead\n * Recover an ECDSA private key from this mnemonic phrase, with an\n * optional passphrase.\n * @param {string} [passphrase]\n * @param {number[]} [path]\n * @returns {Promise}\n */\n async toEcdsaPrivateKey(passphrase = \"\", path = HEDERA_PATH) {\n let { keyData, chainCode } = await this._toKeyData(\n passphrase,\n ECDSA_SEED_TEXT,\n );\n\n for (const index of path) {\n ({ keyData, chainCode } = await bip32.derive(\n keyData,\n chainCode,\n index,\n ));\n }\n\n if (CACHE.privateKeyConstructor == null) {\n throw new Error(\"PrivateKey not found in cache\");\n }\n\n return CACHE.privateKeyConstructor(\n new EcdsaPrivateKey(ecdsa.fromBytes(keyData), chainCode),\n );\n }\n\n /**\n * Recover an ECDSA private key from this mnemonic phrase, with an\n * optional passphrase.\n * @param {string} [passphrase]\n * @param {number} [index]\n * @returns {Promise}\n */\n async toStandardECDSAsecp256k1PrivateKey(passphrase = \"\", index) {\n const seed = await Mnemonic.toSeed(this.words, passphrase);\n let derivedKey = await PrivateKey.fromSeedECDSAsecp256k1(seed);\n index = index == null ? 0 : index;\n\n for (const currentIndex of [\n bip32.toHardenedIndex(44),\n bip32.toHardenedIndex(3030),\n bip32.toHardenedIndex(0),\n 0,\n index,\n ]) {\n derivedKey = await derivedKey.derive(currentIndex);\n }\n\n return derivedKey;\n }\n\n /**\n * @param {string[]} words\n * @param {string} passphrase\n * @returns {Promise}\n */\n static async toSeed(words, passphrase) {\n return await bip39.toSeed(words, passphrase);\n }\n\n /**\n * @param {string} passphrase\n * @param {string} seedText\n * @returns {Promise<{ keyData: Uint8Array; chainCode: Uint8Array }>} seedText\n */\n async _toKeyData(passphrase, seedText) {\n const seed = await bip39.toSeed(this.words, passphrase);\n const digest = await hmac.hash(\n hmac.HashAlgorithm.Sha512,\n seedText,\n seed,\n );\n\n return {\n keyData: digest.subarray(0, 32),\n chainCode: digest.subarray(32),\n };\n }\n\n /**\n * Recover a mnemonic phrase from a string, splitting on spaces. Handles 12, 22 (legacy), and 24 words.\n * @param {string} mnemonic\n * @returns {Promise}\n */\n static async fromString(mnemonic) {\n return Mnemonic.fromWords(mnemonic.split(/\\s|,/));\n }\n\n /**\n * @returns {Promise}\n * @private\n */\n async _validate() {\n //NOSONAR\n // Validate that this is a valid BIP-39 mnemonic\n // as generated by BIP-39's rules.\n\n // Technically, invalid mnemonics can still be used to generate valid private keys,\n // but if they became invalid due to user error then it will be difficult for the user\n // to tell the difference unless they compare the generated keys.\n\n // During validation, the following conditions are checked in order\n\n // 1)) 24 or 12 words\n\n // 2) All strings in {@link this.words} exist in the BIP-39\n // standard English word list (no normalization is done)\n\n // 3) The calculated checksum for the mnemonic equals the\n // checksum encoded in the mnemonic\n\n // If words count is 22, it means that this is a legacy private key\n if (this.words.length === 22) {\n const unknownWordIndices = this.words.reduce(\n (/** @type {number[]} */ unknowns, word, index) =>\n legacyWords.includes(word.toLowerCase())\n ? unknowns\n : [...unknowns, index],\n [],\n );\n\n if (unknownWordIndices.length > 0) {\n throw new BadMnemonicError(\n this,\n BadMnemonicReason.UnknownWords,\n unknownWordIndices,\n );\n }\n\n const [seed, checksum] = entropy.legacy1(this.words, legacyWords);\n const newChecksum = entropy.crc8(seed);\n\n if (checksum !== newChecksum) {\n throw new BadMnemonicError(\n this,\n BadMnemonicReason.ChecksumMismatch,\n [],\n );\n }\n } else {\n if (!(this.words.length === 12 || this.words.length === 24)) {\n throw new BadMnemonicError(\n this,\n BadMnemonicReason.BadLength,\n [],\n );\n }\n\n const unknownWordIndices = this.words.reduce(\n (/** @type {number[]} */ unknowns, word, index) =>\n bip39Words.includes(word) ? unknowns : [...unknowns, index],\n [],\n );\n\n if (unknownWordIndices.length > 0) {\n throw new BadMnemonicError(\n this,\n BadMnemonicReason.UnknownWords,\n unknownWordIndices,\n );\n }\n\n // FIXME: calculate checksum and compare\n // https://github.com/bitcoinjs/bip39/blob/master/ts_src/index.ts#L112\n\n const bits = this.words\n .map((word) => {\n return bip39Words\n .indexOf(word)\n .toString(2)\n .padStart(11, \"0\");\n })\n .join(\"\");\n\n const dividerIndex = Math.floor(bits.length / 33) * 32;\n const entropyBits = bits.slice(0, dividerIndex);\n const checksumBits = bits.slice(dividerIndex);\n const entropyBitsRegex = entropyBits.match(/(.{1,8})/g);\n const entropyBytes = /** @type {RegExpMatchArray} */ (\n entropyBitsRegex\n ).map(binaryToByte);\n\n const newChecksum = await deriveChecksumBits(\n Uint8Array.from(entropyBytes),\n );\n\n if (newChecksum !== checksumBits) {\n throw new BadMnemonicError(\n this,\n BadMnemonicReason.ChecksumMismatch,\n [],\n );\n }\n }\n\n return this;\n }\n\n /**\n * @returns {Promise}\n */\n async toLegacyPrivateKey() {\n let seed;\n if (this.words.length === 22) {\n [seed] = entropy.legacy1(this.words, legacyWords);\n } else {\n seed = await entropy.legacy2(this.words, bip39Words);\n }\n\n if (CACHE.privateKeyFromBytes == null) {\n throw new Error(\"PrivateKey not found in cache\");\n }\n\n return CACHE.privateKeyFromBytes(seed);\n }\n\n /**\n * @returns {string}\n */\n toString() {\n return this.words.join(\" \");\n }\n}\n\n/**\n * @param {string} bin\n * @returns {number}\n */\nfunction binaryToByte(bin) {\n return parseInt(bin, 2);\n}\n\n/**\n * @param {number[]} bytes\n * @returns {string}\n */\nfunction bytesToBinary(bytes) {\n return bytes.map((x) => x.toString(2).padStart(8, \"0\")).join(\"\");\n}\n\n/**\n * @param {Uint8Array} entropyBuffer\n * @returns {Promise}\n */\nasync function deriveChecksumBits(entropyBuffer) {\n const ENT = entropyBuffer.length * 8;\n const CS = ENT / 32;\n const hash = await sha256.digest(entropyBuffer);\n\n return bytesToBinary(Array.from(hash)).slice(0, CS);\n}\n","function e(e,t){if(e===t)return!0;if(e.byteLength!==t.byteLength)return!1;const n=new DataView(e.buffer,e.byteOffset,e.byteLength),f=new DataView(t.buffer,t.byteOffset,t.byteLength);let r=e.byteLength;for(;r--;)if(n.getUint8(r)!==f.getUint8(r))return!1;return!0}export{e as arrayEqual};\n//# sourceMappingURL=array.js.map\n","const t=new class{constructor(){this._timeDrift=0,this._contractId=null,this._keyList=null,this._thresholdKey=null,this._publicKeyED25519=null,this._publicKeyECDSA=null,this._privateKeyConstructor=null,this._mnemonicFromString=null,this._accountIdConstructor=null,this._delegateContractId=null,this._evmAddress=null,this._ethereumTransactionDataLegacyFromBytes=null,this._ethereumTransactionDataEip1559FromBytes=null,this._ethereumTransactionDataEip2930FromBytes=null,this._transactionReceiptQueryConstructor=null,this._transactionRecordQueryConstructor=null}setTimeDrift(t){this._timeDrift=t}get timeDrift(){if(null==this._timeDrift)throw new Error(\"Cache.timeDrift was used before it was set\");return this._timeDrift}setContractId(t){this._contractId=t}get contractId(){if(null==this._contractId)throw new Error(\"Cache.contractId was used before it was set\");return this._contractId}setKeyList(t){this._keyList=t}get keyList(){if(null==this._keyList)throw new Error(\"Cache.keyList was used before it was set\");return this._keyList}setThresholdKey(t){this._thresholdKey=t}get thresholdKey(){if(null==this._thresholdKey)throw new Error(\"Cache.thresholdKey was used before it was set\");return this._thresholdKey}setPublicKeyED25519(t){this._publicKeyED25519=t}get publicKeyED25519(){if(null==this._publicKeyED25519)throw new Error(\"Cache.publicKeyED25519 was used before it was set\");return this._publicKeyED25519}setPublicKeyECDSA(t){this._publicKeyECDSA=t}get publicKeyECDSA(){if(null==this._publicKeyECDSA)throw new Error(\"Cache.publicKeyECDSA was used before it was set\");return this._publicKeyECDSA}setPrivateKeyConstructor(t){this._privateKeyConstructor=t}get privateKeyConstructor(){if(null==this._privateKeyConstructor)throw new Error(\"Cache.privateKeyConstructor was used before it was set\");return this._privateKeyConstructor}setMnemonicFromString(t){this._mnemonicFromString=t}get mnemonicFromString(){if(null==this._mnemonicFromString)throw new Error(\"Cache.mnemonicFromString was used before it was set\");return this.mnemonicFromString}setAccountIdConstructor(t){this._accountIdConstructor=t}get accountIdConstructor(){if(null==this._accountIdConstructor)throw new Error(\"Cache.accountIdConstructor was used before it was set\");return this._accountIdConstructor}setDelegateContractId(t){this._delegateContractId=t}get delegateContractId(){if(null==this._delegateContractId)throw new Error(\"Cache.delegateContractId was used before it was set\");return this._delegateContractId}setEvmAddress(t){this._evmAddress=t}get evmAddress(){if(null==this._evmAddress)throw new Error(\"Cache.evmAddress was used before it was set\");return this._evmAddress}setEthereumTransactionDataLegacyFromBytes(t){this._ethereumTransactionDataLegacyFromBytes=t}get ethereumTransactionDataLegacyFromBytes(){if(null==this._ethereumTransactionDataLegacyFromBytes)throw new Error(\"Cache.ethereumTransactionDataLegacyFromBytes was used before it was set\");return this._ethereumTransactionDataLegacyFromBytes}setEthereumTransactionDataEip1559FromBytes(t){this._ethereumTransactionDataEip1559FromBytes=t}get ethereumTransactionDataEip1559FromBytes(){if(null==this._ethereumTransactionDataEip1559FromBytes)throw new Error(\"Cache.ethereumTransactionDataEip1559FromBytes was used before it was set\");return this._ethereumTransactionDataEip1559FromBytes}setEthereumTransactionDataEip2930FromBytes(t){this._ethereumTransactionDataEip2930FromBytes=t}get ethereumTransactionDataEip2930FromBytes(){if(null==this._ethereumTransactionDataEip2930FromBytes)throw new Error(\"Cache.ethereumTransactionDataEip2930FromBytes was used before it was set\");return this._ethereumTransactionDataEip2930FromBytes}setTransactionReceiptQueryConstructor(t){this._transactionReceiptQueryConstructor=t}get transactionReceiptQueryConstructor(){if(null==this._transactionReceiptQueryConstructor)throw new Error(\"Cache.transactionReceiptQueryConstructor was used before it was set\");return this._transactionReceiptQueryConstructor}setTransactionRecordQueryConstructor(t){this._transactionRecordQueryConstructor=t}get transactionRecordQueryConstructor(){if(null==this._transactionRecordQueryConstructor)throw new Error(\"Cache.transactionRecordQueryConstructor was used before it was set\");return this._transactionRecordQueryConstructor}setAddressBookQueryConstructor(t){this._addressBookQueryConstructor=t}get addressBookQueryConstructor(){if(null==this._addressBookQueryConstructor)throw new Error(\"Cache.addressBookQueryConstructor was used before it was set\");return this._addressBookQueryConstructor}};export{t as default};\n//# sourceMappingURL=Cache.js.map\n","import e from\"./Cache.js\";class t{_toProtobufKey(){throw new Error(\"not implemented\")}static _fromProtobufKey(t){return null!=t.contractID?e.contractId(t.contractID):null!=t.delegatableContractId?e.delegateContractId(t.delegatableContractId):null!=t.ed25519&&t.ed25519.byteLength>0?e.publicKeyED25519(t.ed25519):null!=t.ECDSASecp256k1&&t.ECDSASecp256k1.byteLength>0?e.publicKeyECDSA(t.ECDSASecp256k1):null!=t.thresholdKey&&null!=t.thresholdKey.threshold?e.thresholdKey(t.thresholdKey):null!=t.keyList?e.keyList(t.keyList):null}}export{t as default};\n//# sourceMappingURL=Key.js.map\n","import{PublicKey as t}from\"@hashgraph/cryptography\";import{arrayEqual as e}from\"./array.js\";import r from\"./Key.js\";import s from\"./Cache.js\";class i extends r{constructor(t){super(),this._key=t}static fromBytes(e){return new i(t.fromBytes(e))}static fromBytesED25519(e){return new i(t.fromBytesED25519(e))}static fromBytesECDSA(e){return new i(t.fromBytesECDSA(e))}static fromString(e){return new i(t.fromString(e))}static fromStringECDSA(e){return new i(t.fromStringECDSA(e))}static fromStringED25519(e){return new i(t.fromStringED25519(e))}verify(t,e){return this._key.verify(t,e)}verifyTransaction(t){t._requireFrozen(),t.isFrozen()||t.freeze();for(const r of t._signedTransactions.list)if(null!=r.sigMap&&null!=r.sigMap.sigPair){let t=!1;for(const s of r.sigMap.sigPair){const i=s.pubKeyPrefix;if(e(i,this.toBytesRaw())){t=!0;const e=r.bodyBytes;let i=null;if(null!=s.ed25519?i=s.ed25519:null!=s.ECDSASecp256k1&&(i=s.ECDSASecp256k1),null==i)continue;if(!this.verify(e,i))return!1}}if(!t)return!1}return!0}toBytes(){return this._key.toBytes()}toBytesDer(){return this._key.toBytesDer()}toBytesRaw(){return this._key.toBytesRaw()}toEthereumAddress(){return this._key.toEthereumAddress()}toEvmAddress(){return this._key.toEthereumAddress()}toString(){return this._key.toString()}toStringDer(){return this._key.toStringDer()}toStringRaw(){return this._key.toStringRaw()}equals(t){return this._key.equals(t._key)}_toProtobufKey(){switch(this._key._type){case\"ED25519\":return{ed25519:this._key.toBytesRaw()};case\"secp256k1\":return{ECDSASecp256k1:this._key.toBytesRaw()};default:throw new Error(`unrecognized key type ${this._key._type}`)}}_toProtobufSignature(t){switch(this._key._type){case\"ED25519\":return{pubKeyPrefix:this._key.toBytesRaw(),ed25519:t};case\"secp256k1\":return{pubKeyPrefix:this._key.toBytesRaw(),ECDSASecp256k1:t};default:throw new Error(`unrecognized key type ${this._key._type}`)}}get type(){return this._key._type}toAccountId(t,e){return s.accountIdConstructor(t,e,this)}static unusableKey(){return i.fromStringED25519(\"0000000000000000000000000000000000000000000000000000000000000000\")}}s.setPublicKeyED25519((t=>i.fromBytesED25519(t))),s.setPublicKeyECDSA((t=>i.fromBytesECDSA(t)));export{i as default};\n//# sourceMappingURL=PublicKey.js.map\n","export const version = \"logger/5.8.0\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nlet _permanentCensorErrors = false;\nlet _censorErrors = false;\nconst LogLevels = { debug: 1, \"default\": 2, info: 2, warning: 3, error: 4, off: 5 };\nlet _logLevel = LogLevels[\"default\"];\nimport { version } from \"./_version\";\nlet _globalLogger = null;\nfunction _checkNormalize() {\n try {\n const missing = [];\n // Make sure all forms of normalization are supported\n [\"NFD\", \"NFC\", \"NFKD\", \"NFKC\"].forEach((form) => {\n try {\n if (\"test\".normalize(form) !== \"test\") {\n throw new Error(\"bad normalize\");\n }\n ;\n }\n catch (error) {\n missing.push(form);\n }\n });\n if (missing.length) {\n throw new Error(\"missing \" + missing.join(\", \"));\n }\n if (String.fromCharCode(0xe9).normalize(\"NFD\") !== String.fromCharCode(0x65, 0x0301)) {\n throw new Error(\"broken implementation\");\n }\n }\n catch (error) {\n return error.message;\n }\n return null;\n}\nconst _normalizeError = _checkNormalize();\nexport var LogLevel;\n(function (LogLevel) {\n LogLevel[\"DEBUG\"] = \"DEBUG\";\n LogLevel[\"INFO\"] = \"INFO\";\n LogLevel[\"WARNING\"] = \"WARNING\";\n LogLevel[\"ERROR\"] = \"ERROR\";\n LogLevel[\"OFF\"] = \"OFF\";\n})(LogLevel || (LogLevel = {}));\nexport var ErrorCode;\n(function (ErrorCode) {\n ///////////////////\n // Generic Errors\n // Unknown Error\n ErrorCode[\"UNKNOWN_ERROR\"] = \"UNKNOWN_ERROR\";\n // Not Implemented\n ErrorCode[\"NOT_IMPLEMENTED\"] = \"NOT_IMPLEMENTED\";\n // Unsupported Operation\n // - operation\n ErrorCode[\"UNSUPPORTED_OPERATION\"] = \"UNSUPPORTED_OPERATION\";\n // Network Error (i.e. Ethereum Network, such as an invalid chain ID)\n // - event (\"noNetwork\" is not re-thrown in provider.ready; otherwise thrown)\n ErrorCode[\"NETWORK_ERROR\"] = \"NETWORK_ERROR\";\n // Some sort of bad response from the server\n ErrorCode[\"SERVER_ERROR\"] = \"SERVER_ERROR\";\n // Timeout\n ErrorCode[\"TIMEOUT\"] = \"TIMEOUT\";\n ///////////////////\n // Operational Errors\n // Buffer Overrun\n ErrorCode[\"BUFFER_OVERRUN\"] = \"BUFFER_OVERRUN\";\n // Numeric Fault\n // - operation: the operation being executed\n // - fault: the reason this faulted\n ErrorCode[\"NUMERIC_FAULT\"] = \"NUMERIC_FAULT\";\n ///////////////////\n // Argument Errors\n // Missing new operator to an object\n // - name: The name of the class\n ErrorCode[\"MISSING_NEW\"] = \"MISSING_NEW\";\n // Invalid argument (e.g. value is incompatible with type) to a function:\n // - argument: The argument name that was invalid\n // - value: The value of the argument\n ErrorCode[\"INVALID_ARGUMENT\"] = \"INVALID_ARGUMENT\";\n // Missing argument to a function:\n // - count: The number of arguments received\n // - expectedCount: The number of arguments expected\n ErrorCode[\"MISSING_ARGUMENT\"] = \"MISSING_ARGUMENT\";\n // Too many arguments\n // - count: The number of arguments received\n // - expectedCount: The number of arguments expected\n ErrorCode[\"UNEXPECTED_ARGUMENT\"] = \"UNEXPECTED_ARGUMENT\";\n ///////////////////\n // Blockchain Errors\n // Call exception\n // - transaction: the transaction\n // - address?: the contract address\n // - args?: The arguments passed into the function\n // - method?: The Solidity method signature\n // - errorSignature?: The EIP848 error signature\n // - errorArgs?: The EIP848 error parameters\n // - reason: The reason (only for EIP848 \"Error(string)\")\n ErrorCode[\"CALL_EXCEPTION\"] = \"CALL_EXCEPTION\";\n // Insufficient funds (< value + gasLimit * gasPrice)\n // - transaction: the transaction attempted\n ErrorCode[\"INSUFFICIENT_FUNDS\"] = \"INSUFFICIENT_FUNDS\";\n // Nonce has already been used\n // - transaction: the transaction attempted\n ErrorCode[\"NONCE_EXPIRED\"] = \"NONCE_EXPIRED\";\n // The replacement fee for the transaction is too low\n // - transaction: the transaction attempted\n ErrorCode[\"REPLACEMENT_UNDERPRICED\"] = \"REPLACEMENT_UNDERPRICED\";\n // The gas limit could not be estimated\n // - transaction: the transaction passed to estimateGas\n ErrorCode[\"UNPREDICTABLE_GAS_LIMIT\"] = \"UNPREDICTABLE_GAS_LIMIT\";\n // The transaction was replaced by one with a higher gas price\n // - reason: \"cancelled\", \"replaced\" or \"repriced\"\n // - cancelled: true if reason == \"cancelled\" or reason == \"replaced\")\n // - hash: original transaction hash\n // - replacement: the full TransactionsResponse for the replacement\n // - receipt: the receipt of the replacement\n ErrorCode[\"TRANSACTION_REPLACED\"] = \"TRANSACTION_REPLACED\";\n ///////////////////\n // Interaction Errors\n // The user rejected the action, such as signing a message or sending\n // a transaction\n ErrorCode[\"ACTION_REJECTED\"] = \"ACTION_REJECTED\";\n})(ErrorCode || (ErrorCode = {}));\n;\nconst HEX = \"0123456789abcdef\";\nexport class Logger {\n constructor(version) {\n Object.defineProperty(this, \"version\", {\n enumerable: true,\n value: version,\n writable: false\n });\n }\n _log(logLevel, args) {\n const level = logLevel.toLowerCase();\n if (LogLevels[level] == null) {\n this.throwArgumentError(\"invalid log level name\", \"logLevel\", logLevel);\n }\n if (_logLevel > LogLevels[level]) {\n return;\n }\n console.log.apply(console, args);\n }\n debug(...args) {\n this._log(Logger.levels.DEBUG, args);\n }\n info(...args) {\n this._log(Logger.levels.INFO, args);\n }\n warn(...args) {\n this._log(Logger.levels.WARNING, args);\n }\n makeError(message, code, params) {\n // Errors are being censored\n if (_censorErrors) {\n return this.makeError(\"censored error\", code, {});\n }\n if (!code) {\n code = Logger.errors.UNKNOWN_ERROR;\n }\n if (!params) {\n params = {};\n }\n const messageDetails = [];\n Object.keys(params).forEach((key) => {\n const value = params[key];\n try {\n if (value instanceof Uint8Array) {\n let hex = \"\";\n for (let i = 0; i < value.length; i++) {\n hex += HEX[value[i] >> 4];\n hex += HEX[value[i] & 0x0f];\n }\n messageDetails.push(key + \"=Uint8Array(0x\" + hex + \")\");\n }\n else {\n messageDetails.push(key + \"=\" + JSON.stringify(value));\n }\n }\n catch (error) {\n messageDetails.push(key + \"=\" + JSON.stringify(params[key].toString()));\n }\n });\n messageDetails.push(`code=${code}`);\n messageDetails.push(`version=${this.version}`);\n const reason = message;\n let url = \"\";\n switch (code) {\n case ErrorCode.NUMERIC_FAULT: {\n url = \"NUMERIC_FAULT\";\n const fault = message;\n switch (fault) {\n case \"overflow\":\n case \"underflow\":\n case \"division-by-zero\":\n url += \"-\" + fault;\n break;\n case \"negative-power\":\n case \"negative-width\":\n url += \"-unsupported\";\n break;\n case \"unbound-bitwise-result\":\n url += \"-unbound-result\";\n break;\n }\n break;\n }\n case ErrorCode.CALL_EXCEPTION:\n case ErrorCode.INSUFFICIENT_FUNDS:\n case ErrorCode.MISSING_NEW:\n case ErrorCode.NONCE_EXPIRED:\n case ErrorCode.REPLACEMENT_UNDERPRICED:\n case ErrorCode.TRANSACTION_REPLACED:\n case ErrorCode.UNPREDICTABLE_GAS_LIMIT:\n url = code;\n break;\n }\n if (url) {\n message += \" [ See: https:/\\/links.ethers.org/v5-errors-\" + url + \" ]\";\n }\n if (messageDetails.length) {\n message += \" (\" + messageDetails.join(\", \") + \")\";\n }\n // @TODO: Any??\n const error = new Error(message);\n error.reason = reason;\n error.code = code;\n Object.keys(params).forEach(function (key) {\n error[key] = params[key];\n });\n return error;\n }\n throwError(message, code, params) {\n throw this.makeError(message, code, params);\n }\n throwArgumentError(message, name, value) {\n return this.throwError(message, Logger.errors.INVALID_ARGUMENT, {\n argument: name,\n value: value\n });\n }\n assert(condition, message, code, params) {\n if (!!condition) {\n return;\n }\n this.throwError(message, code, params);\n }\n assertArgument(condition, message, name, value) {\n if (!!condition) {\n return;\n }\n this.throwArgumentError(message, name, value);\n }\n checkNormalize(message) {\n if (message == null) {\n message = \"platform missing String.prototype.normalize\";\n }\n if (_normalizeError) {\n this.throwError(\"platform missing String.prototype.normalize\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"String.prototype.normalize\", form: _normalizeError\n });\n }\n }\n checkSafeUint53(value, message) {\n if (typeof (value) !== \"number\") {\n return;\n }\n if (message == null) {\n message = \"value not safe\";\n }\n if (value < 0 || value >= 0x1fffffffffffff) {\n this.throwError(message, Logger.errors.NUMERIC_FAULT, {\n operation: \"checkSafeInteger\",\n fault: \"out-of-safe-range\",\n value: value\n });\n }\n if (value % 1) {\n this.throwError(message, Logger.errors.NUMERIC_FAULT, {\n operation: \"checkSafeInteger\",\n fault: \"non-integer\",\n value: value\n });\n }\n }\n checkArgumentCount(count, expectedCount, message) {\n if (message) {\n message = \": \" + message;\n }\n else {\n message = \"\";\n }\n if (count < expectedCount) {\n this.throwError(\"missing argument\" + message, Logger.errors.MISSING_ARGUMENT, {\n count: count,\n expectedCount: expectedCount\n });\n }\n if (count > expectedCount) {\n this.throwError(\"too many arguments\" + message, Logger.errors.UNEXPECTED_ARGUMENT, {\n count: count,\n expectedCount: expectedCount\n });\n }\n }\n checkNew(target, kind) {\n if (target === Object || target == null) {\n this.throwError(\"missing new\", Logger.errors.MISSING_NEW, { name: kind.name });\n }\n }\n checkAbstract(target, kind) {\n if (target === kind) {\n this.throwError(\"cannot instantiate abstract class \" + JSON.stringify(kind.name) + \" directly; use a sub-class\", Logger.errors.UNSUPPORTED_OPERATION, { name: target.name, operation: \"new\" });\n }\n else if (target === Object || target == null) {\n this.throwError(\"missing new\", Logger.errors.MISSING_NEW, { name: kind.name });\n }\n }\n static globalLogger() {\n if (!_globalLogger) {\n _globalLogger = new Logger(version);\n }\n return _globalLogger;\n }\n static setCensorship(censorship, permanent) {\n if (!censorship && permanent) {\n this.globalLogger().throwError(\"cannot permanently disable censorship\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setCensorship\"\n });\n }\n if (_permanentCensorErrors) {\n if (!censorship) {\n return;\n }\n this.globalLogger().throwError(\"error censorship permanent\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setCensorship\"\n });\n }\n _censorErrors = !!censorship;\n _permanentCensorErrors = !!permanent;\n }\n static setLogLevel(logLevel) {\n const level = LogLevels[logLevel.toLowerCase()];\n if (level == null) {\n Logger.globalLogger().warn(\"invalid log level - \" + logLevel);\n return;\n }\n _logLevel = level;\n }\n static from(version) {\n return new Logger(version);\n }\n}\nLogger.errors = ErrorCode;\nLogger.levels = LogLevel;\n//# sourceMappingURL=index.js.map","export const version = \"bytes/5.8.0\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n///////////////////////////////\nfunction isHexable(value) {\n return !!(value.toHexString);\n}\nfunction addSlice(array) {\n if (array.slice) {\n return array;\n }\n array.slice = function () {\n const args = Array.prototype.slice.call(arguments);\n return addSlice(new Uint8Array(Array.prototype.slice.apply(array, args)));\n };\n return array;\n}\nexport function isBytesLike(value) {\n return ((isHexString(value) && !(value.length % 2)) || isBytes(value));\n}\nfunction isInteger(value) {\n return (typeof (value) === \"number\" && value == value && (value % 1) === 0);\n}\nexport function isBytes(value) {\n if (value == null) {\n return false;\n }\n if (value.constructor === Uint8Array) {\n return true;\n }\n if (typeof (value) === \"string\") {\n return false;\n }\n if (!isInteger(value.length) || value.length < 0) {\n return false;\n }\n for (let i = 0; i < value.length; i++) {\n const v = value[i];\n if (!isInteger(v) || v < 0 || v >= 256) {\n return false;\n }\n }\n return true;\n}\nexport function arrayify(value, options) {\n if (!options) {\n options = {};\n }\n if (typeof (value) === \"number\") {\n logger.checkSafeUint53(value, \"invalid arrayify value\");\n const result = [];\n while (value) {\n result.unshift(value & 0xff);\n value = parseInt(String(value / 256));\n }\n if (result.length === 0) {\n result.push(0);\n }\n return addSlice(new Uint8Array(result));\n }\n if (options.allowMissingPrefix && typeof (value) === \"string\" && value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n if (isHexable(value)) {\n value = value.toHexString();\n }\n if (isHexString(value)) {\n let hex = value.substring(2);\n if (hex.length % 2) {\n if (options.hexPad === \"left\") {\n hex = \"0\" + hex;\n }\n else if (options.hexPad === \"right\") {\n hex += \"0\";\n }\n else {\n logger.throwArgumentError(\"hex data is odd-length\", \"value\", value);\n }\n }\n const result = [];\n for (let i = 0; i < hex.length; i += 2) {\n result.push(parseInt(hex.substring(i, i + 2), 16));\n }\n return addSlice(new Uint8Array(result));\n }\n if (isBytes(value)) {\n return addSlice(new Uint8Array(value));\n }\n return logger.throwArgumentError(\"invalid arrayify value\", \"value\", value);\n}\nexport function concat(items) {\n const objects = items.map(item => arrayify(item));\n const length = objects.reduce((accum, item) => (accum + item.length), 0);\n const result = new Uint8Array(length);\n objects.reduce((offset, object) => {\n result.set(object, offset);\n return offset + object.length;\n }, 0);\n return addSlice(result);\n}\nexport function stripZeros(value) {\n let result = arrayify(value);\n if (result.length === 0) {\n return result;\n }\n // Find the first non-zero entry\n let start = 0;\n while (start < result.length && result[start] === 0) {\n start++;\n }\n // If we started with zeros, strip them\n if (start) {\n result = result.slice(start);\n }\n return result;\n}\nexport function zeroPad(value, length) {\n value = arrayify(value);\n if (value.length > length) {\n logger.throwArgumentError(\"value out of range\", \"value\", arguments[0]);\n }\n const result = new Uint8Array(length);\n result.set(value, length - value.length);\n return addSlice(result);\n}\nexport function isHexString(value, length) {\n if (typeof (value) !== \"string\" || !value.match(/^0x[0-9A-Fa-f]*$/)) {\n return false;\n }\n if (length && value.length !== 2 + 2 * length) {\n return false;\n }\n return true;\n}\nconst HexCharacters = \"0123456789abcdef\";\nexport function hexlify(value, options) {\n if (!options) {\n options = {};\n }\n if (typeof (value) === \"number\") {\n logger.checkSafeUint53(value, \"invalid hexlify value\");\n let hex = \"\";\n while (value) {\n hex = HexCharacters[value & 0xf] + hex;\n value = Math.floor(value / 16);\n }\n if (hex.length) {\n if (hex.length % 2) {\n hex = \"0\" + hex;\n }\n return \"0x\" + hex;\n }\n return \"0x00\";\n }\n if (typeof (value) === \"bigint\") {\n value = value.toString(16);\n if (value.length % 2) {\n return (\"0x0\" + value);\n }\n return \"0x\" + value;\n }\n if (options.allowMissingPrefix && typeof (value) === \"string\" && value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n if (isHexable(value)) {\n return value.toHexString();\n }\n if (isHexString(value)) {\n if (value.length % 2) {\n if (options.hexPad === \"left\") {\n value = \"0x0\" + value.substring(2);\n }\n else if (options.hexPad === \"right\") {\n value += \"0\";\n }\n else {\n logger.throwArgumentError(\"hex data is odd-length\", \"value\", value);\n }\n }\n return value.toLowerCase();\n }\n if (isBytes(value)) {\n let result = \"0x\";\n for (let i = 0; i < value.length; i++) {\n let v = value[i];\n result += HexCharacters[(v & 0xf0) >> 4] + HexCharacters[v & 0x0f];\n }\n return result;\n }\n return logger.throwArgumentError(\"invalid hexlify value\", \"value\", value);\n}\n/*\nfunction unoddify(value: BytesLike | Hexable | number): BytesLike | Hexable | number {\n if (typeof(value) === \"string\" && value.length % 2 && value.substring(0, 2) === \"0x\") {\n return \"0x0\" + value.substring(2);\n }\n return value;\n}\n*/\nexport function hexDataLength(data) {\n if (typeof (data) !== \"string\") {\n data = hexlify(data);\n }\n else if (!isHexString(data) || (data.length % 2)) {\n return null;\n }\n return (data.length - 2) / 2;\n}\nexport function hexDataSlice(data, offset, endOffset) {\n if (typeof (data) !== \"string\") {\n data = hexlify(data);\n }\n else if (!isHexString(data) || (data.length % 2)) {\n logger.throwArgumentError(\"invalid hexData\", \"value\", data);\n }\n offset = 2 + 2 * offset;\n if (endOffset != null) {\n return \"0x\" + data.substring(offset, 2 + 2 * endOffset);\n }\n return \"0x\" + data.substring(offset);\n}\nexport function hexConcat(items) {\n let result = \"0x\";\n items.forEach((item) => {\n result += hexlify(item).substring(2);\n });\n return result;\n}\nexport function hexValue(value) {\n const trimmed = hexStripZeros(hexlify(value, { hexPad: \"left\" }));\n if (trimmed === \"0x\") {\n return \"0x0\";\n }\n return trimmed;\n}\nexport function hexStripZeros(value) {\n if (typeof (value) !== \"string\") {\n value = hexlify(value);\n }\n if (!isHexString(value)) {\n logger.throwArgumentError(\"invalid hex string\", \"value\", value);\n }\n value = value.substring(2);\n let offset = 0;\n while (offset < value.length && value[offset] === \"0\") {\n offset++;\n }\n return \"0x\" + value.substring(offset);\n}\nexport function hexZeroPad(value, length) {\n if (typeof (value) !== \"string\") {\n value = hexlify(value);\n }\n else if (!isHexString(value)) {\n logger.throwArgumentError(\"invalid hex string\", \"value\", value);\n }\n if (value.length > 2 * length + 2) {\n logger.throwArgumentError(\"value out of range\", \"value\", arguments[1]);\n }\n while (value.length < 2 * length + 2) {\n value = \"0x0\" + value.substring(2);\n }\n return value;\n}\nexport function splitSignature(signature) {\n const result = {\n r: \"0x\",\n s: \"0x\",\n _vs: \"0x\",\n recoveryParam: 0,\n v: 0,\n yParityAndS: \"0x\",\n compact: \"0x\"\n };\n if (isBytesLike(signature)) {\n let bytes = arrayify(signature);\n // Get the r, s and v\n if (bytes.length === 64) {\n // EIP-2098; pull the v from the top bit of s and clear it\n result.v = 27 + (bytes[32] >> 7);\n bytes[32] &= 0x7f;\n result.r = hexlify(bytes.slice(0, 32));\n result.s = hexlify(bytes.slice(32, 64));\n }\n else if (bytes.length === 65) {\n result.r = hexlify(bytes.slice(0, 32));\n result.s = hexlify(bytes.slice(32, 64));\n result.v = bytes[64];\n }\n else {\n logger.throwArgumentError(\"invalid signature string\", \"signature\", signature);\n }\n // Allow a recid to be used as the v\n if (result.v < 27) {\n if (result.v === 0 || result.v === 1) {\n result.v += 27;\n }\n else {\n logger.throwArgumentError(\"signature invalid v byte\", \"signature\", signature);\n }\n }\n // Compute recoveryParam from v\n result.recoveryParam = 1 - (result.v % 2);\n // Compute _vs from recoveryParam and s\n if (result.recoveryParam) {\n bytes[32] |= 0x80;\n }\n result._vs = hexlify(bytes.slice(32, 64));\n }\n else {\n result.r = signature.r;\n result.s = signature.s;\n result.v = signature.v;\n result.recoveryParam = signature.recoveryParam;\n result._vs = signature._vs;\n // If the _vs is available, use it to populate missing s, v and recoveryParam\n // and verify non-missing s, v and recoveryParam\n if (result._vs != null) {\n const vs = zeroPad(arrayify(result._vs), 32);\n result._vs = hexlify(vs);\n // Set or check the recid\n const recoveryParam = ((vs[0] >= 128) ? 1 : 0);\n if (result.recoveryParam == null) {\n result.recoveryParam = recoveryParam;\n }\n else if (result.recoveryParam !== recoveryParam) {\n logger.throwArgumentError(\"signature recoveryParam mismatch _vs\", \"signature\", signature);\n }\n // Set or check the s\n vs[0] &= 0x7f;\n const s = hexlify(vs);\n if (result.s == null) {\n result.s = s;\n }\n else if (result.s !== s) {\n logger.throwArgumentError(\"signature v mismatch _vs\", \"signature\", signature);\n }\n }\n // Use recid and v to populate each other\n if (result.recoveryParam == null) {\n if (result.v == null) {\n logger.throwArgumentError(\"signature missing v and recoveryParam\", \"signature\", signature);\n }\n else if (result.v === 0 || result.v === 1) {\n result.recoveryParam = result.v;\n }\n else {\n result.recoveryParam = 1 - (result.v % 2);\n }\n }\n else {\n if (result.v == null) {\n result.v = 27 + result.recoveryParam;\n }\n else {\n const recId = (result.v === 0 || result.v === 1) ? result.v : (1 - (result.v % 2));\n if (result.recoveryParam !== recId) {\n logger.throwArgumentError(\"signature recoveryParam mismatch v\", \"signature\", signature);\n }\n }\n }\n if (result.r == null || !isHexString(result.r)) {\n logger.throwArgumentError(\"signature missing or invalid r\", \"signature\", signature);\n }\n else {\n result.r = hexZeroPad(result.r, 32);\n }\n if (result.s == null || !isHexString(result.s)) {\n logger.throwArgumentError(\"signature missing or invalid s\", \"signature\", signature);\n }\n else {\n result.s = hexZeroPad(result.s, 32);\n }\n const vs = arrayify(result.s);\n if (vs[0] >= 128) {\n logger.throwArgumentError(\"signature s out of range\", \"signature\", signature);\n }\n if (result.recoveryParam) {\n vs[0] |= 0x80;\n }\n const _vs = hexlify(vs);\n if (result._vs) {\n if (!isHexString(result._vs)) {\n logger.throwArgumentError(\"signature invalid _vs\", \"signature\", signature);\n }\n result._vs = hexZeroPad(result._vs, 32);\n }\n // Set or check the _vs\n if (result._vs == null) {\n result._vs = _vs;\n }\n else if (result._vs !== _vs) {\n logger.throwArgumentError(\"signature _vs mismatch v and s\", \"signature\", signature);\n }\n }\n result.yParityAndS = result._vs;\n result.compact = result.r + result.yParityAndS.substring(2);\n return result;\n}\nexport function joinSignature(signature) {\n signature = splitSignature(signature);\n return hexlify(concat([\n signature.r,\n signature.s,\n (signature.recoveryParam ? \"0x1c\" : \"0x1b\")\n ]));\n}\n//# sourceMappingURL=index.js.map","import{Mnemonic as t}from\"@hashgraph/cryptography\";import e from\"./Cache.js\";class a{constructor(t){this._mnemonic=t}static async generate(){return new a(await t._generate(24))}static async generate12(){return new a(await t._generate(12))}static async fromWords(e){return new a(await t.fromWords(e))}async toPrivateKey(t=\"\"){return e.privateKeyConstructor(await this._mnemonic.toPrivateKey(t))}async toEd25519PrivateKey(t=\"\",a){return e.privateKeyConstructor(await this._mnemonic.toEd25519PrivateKey(t,a))}async toStandardEd25519PrivateKey(t=\"\",a){return e.privateKeyConstructor(await this._mnemonic.toStandardEd25519PrivateKey(t,a))}async toEcdsaPrivateKey(t=\"\",a){return e.privateKeyConstructor(await this._mnemonic.toEcdsaPrivateKey(t,a))}calculateDerivationPathValues(t){const e=/m\\/(\\d+'?)\\/(\\d+'?)\\/(\\d+'?)\\/(\\d+'?)\\/(\\d+'?)/.exec(t),a=new Array(5);if(e)for(let t=1;t<=5;t++){let r=e[t];r.endsWith(\"'\")?(r=r.substring(0,r.length-1),a[t-1]=2147483648|parseInt(r,10)):a[t-1]=parseInt(r,10)}return a}async toStandardECDSAsecp256k1PrivateKeyImpl(t,e){return await this.toEcdsaPrivateKey(t,e)}async toStandardECDSAsecp256k1PrivateKey(t=\"\",a){return e.privateKeyConstructor(await this._mnemonic.toStandardECDSAsecp256k1PrivateKey(t,a))}async toStandardECDSAsecp256k1PrivateKeyCustomDerivationPath(t=\"\",e){const a=this.calculateDerivationPathValues(e);return await this.toStandardECDSAsecp256k1PrivateKeyImpl(t,a)}static async fromString(e){return new a(await t.fromString(e))}async toLegacyPrivateKey(){return e.privateKeyConstructor(await this._mnemonic.toLegacyPrivateKey())}async toSeed(e){return await t.toSeed(this._mnemonic.words,e)}toString(){return this._mnemonic.toString()}}export{a as default};\n//# sourceMappingURL=Mnemonic.js.map\n","class t{constructor(t){this._map=new Map,this.__map=new Map,this._fromString=t}get(t){const s=\"string\"==typeof t?t:t.toString(),r=this._map.get(s);return null!=r?r:null}_set(t,s){const r=\"string\"==typeof t?t:t.toString();this._map.set(r,s),this.__map.set(t,s)}values(){return this._map.values()}get size(){return this._map.size}keys(){return this.__map.keys()}[Symbol.iterator](){return this.__map[Symbol.iterator]()}toString(){const t={};for(const[s,r]of this._map)t[s]=r;return JSON.stringify(t)}toJSON(){const t={};return this._map.forEach(((s,r)=>{t[r]=s})),t}}export{t as default};\n//# sourceMappingURL=ObjectMap.js.map\n","const t=[];for(let n=0;n<=255;n+=1)t.push(n.toString(16).padStart(2,\"0\"));function n(n){let r=\"\";for(const o of n)r+=t[o];return r}function r(t){const n=(t.startsWith(\"0x\")?t.substring(2):t).match(/.{1,2}/gu);return new Uint8Array((null==n?[]:n).map((t=>parseInt(t,16))))}export{r as decode,n as encode};\n//# sourceMappingURL=hex.browser.js.map\n","class t extends Error{constructor(t,s,e,r,i){super(`Entity ID ${t.toString()}.${s.toString()}.${e.toString()}-${r} was incorrect.`),this.name=\"BadEntityIdException\",this.shard=t,this.realm=s,this.num=e,this.presentChecksum=r,this.expectedChecksum=i}}export{t as default};\n//# sourceMappingURL=BadEntityIdError.js.map\n","import e from\"bignumber.js\";import t from\"long\";const n=\"This value cannot be null | undefined.\",r=\"This value must be a string or Uint8Array.\",o=\"The provided variable must be an Array.\",i=\"This value must be a String, Number, or BigNumber to be converted.\",f=\"This value must be a String, Number, or BigNumber to be converted.\",u=\"Unable to parse given variable. Returns NaN.\";function a(e){return null!=e}function b(e){return a(e)&&e instanceof Uint8Array}function s(e){return a(e)&&(\"number\"==typeof e||e instanceof Number)}function c(t){return a(t)&&t instanceof e}function h(e){return a(e)&&e instanceof t}function g(e){return a(e)&&\"string\"==typeof e}function l(e){return a(e)&&(g(e)||b(e))}function w(e){for(let t=0;t<12;t++)if(0!=e[t])return!1;return!0}function y(e){if(e.isNegative())throw new Error(\"negative value not allowed\");return e}function m(e){if(a(e))return e;throw new Error(n)}function p(e){if(l(m(e)))return e;throw new Error(r)}function v(t){if(m(t),c(t)||g(t)||s(t)||h(t))return new e(t);throw new Error(i)}function N(e){if(e instanceof Array)return e.map(v);throw new Error(o)}function d(e){if(m(e),c(e)||g(e)||s(e)||h(e)){const t=parseInt(e);if(isNaN(t))throw new Error(u);return t}throw new Error(f)}function E(e,t=0,n=e.byteLength){if(!(Number.isInteger(t)&&t>=0))throw new Error(\"Invalid offset!\");if(!(Number.isInteger(n)&&n>=0))throw new Error(\"Invalid length!\");return new DataView(e.buffer,e.byteOffset+t,Math.min(n,e.byteLength-t))}function L(e,t,n=new Set){if(\"object\"==typeof e&&\"object\"==typeof t){const r=Object.keys(e),o=Object.keys(t);if(r.length!==o.length)return!1;for(let i=0;isetTimeout(t,e)))}export{i as FUNCTION_CONVERT_TO_BIGNUMBER_ERROR,f as FUNCTION_CONVERT_TO_NUMBER_ERROR,u as FUNCTION_CONVERT_TO_NUMBER_PARSE_ERROR,o as REQUIRE_ARRAY_ERROR,n as REQUIRE_NON_NULL_ERROR,r as REQUIRE_STRING_OR_UINT8ARRAY_ERROR,j as arrayEqual,L as compare,v as convertToBigNumber,N as convertToBigNumberArray,d as convertToNumber,c as isBigNumber,h as isLong,w as isLongZeroAddress,a as isNonNull,s as isNumber,g as isString,l as isStringOrUint8Array,b as isUint8Array,m as requireNonNull,y as requireNotNegative,p as requireStringOrUint8Array,E as safeView,T as shuffle,I as wait};\n//# sourceMappingURL=util.js.map\n","import{base32 as e}from\"rfc4648\";const o={loose:!0},a={pad:!1};var r={decode:a=>a&&e.parse(a,o),encode:o=>o&&e.stringify(o,a)};export{r as default};\n//# sourceMappingURL=base32.js.map\n","import e from\"long\";import{decode as r,encode as t}from\"./encoding/hex.js\";import n from\"./BadEntityIdError.js\";import{safeView as o,convertToNumber as l}from\"./util.js\";import i from\"./base32.js\";import*as s from\"@hashgraph/proto\";import u from\"./PublicKey.js\";import{arrayify as a}from\"@ethersproject/bytes\";const c=/\"^(0|(?:[1-9]\\\\d*))\\\\.(0|(?:[1-9]\\\\d*))\\\\.(0|(?:[1-9]\\\\d*))(?:-([a-z]{5}))?$/,m=/^(\\d+)(?:\\.(\\d+)\\.([a-fA-F0-9]+))?(?:-([a-z]{5}))?$/;function f(r,t,n){if(null==t&&null!=n||null!=t&&null==n)throw new Error(\"invalid entity ID\");const[o,l,i]=\"number\"==typeof r||e.isLong(r)?[null!=n?e.fromValue(r):e.ZERO,null!=t?e.fromValue(t):e.ZERO,null!=n?e.fromValue(n):e.fromValue(r)]:[null!=r.shard?e.fromValue(r.shard):e.ZERO,null!=r.realm?e.fromValue(r.realm):e.ZERO,e.fromValue(r.num)];if(o.isNegative()||l.isNegative()||i.isNegative())throw new Error(\"negative numbers are not allowed in IDs\");return{shard:o,realm:l,num:i}}function h(e,r){let t=e[0].compare(r[0]);return 0!=t?t:(t=e[1].compare(r[1]),0!=t?t:e[2].compare(r[2]))}function d(e){const r=m.exec(e);if(null==r)throw new Error(`failed to parse entity id: ${e}`);return null==r[2]&&null==r[3]?{shard:\"0\",realm:\"0\",numOrHex:r[1],checksum:r[4]}:{shard:r[1],realm:r[2],numOrHex:r[3],checksum:r[4]}}function g(r){const t=d(r);if(Number.isNaN(t.shard)||Number.isNaN(t.realm)||Number.isNaN(t.numOrHex))throw new Error(\"invalid format for entity ID\");return{shard:null!=t.shard?e.fromString(t.shard):e.ZERO,realm:null!=t.realm?e.fromString(t.realm):e.ZERO,num:e.fromString(t.numOrHex),checksum:t.checksum}}function w(t){const n=t.startsWith(\"0x\")?r(t.slice(2)):r(t);if(20!==n.length)throw new Error(`Invalid hex encoded solidity address length:\\n expected length 40, got length ${t.length}`);return[e.fromBytesBE([0,0,0,0,...n.slice(0,4)]),e.fromBytesBE(Array.from(n.slice(4,12))),e.fromBytesBE(Array.from(n.slice(12,20)))]}function y(e){const r=new Uint8Array(20),n=o(r),[i,s,u]=e;return n.setUint32(0,l(i)),n.setUint32(8,l(s)),n.setUint32(16,l(u)),t(r)}function p(r,t){let n=c.exec(t);if(null===n){return{status:0}}let o=[e.fromString(n[1]),e.fromString(n[2]),e.fromString(n[3])],l=`${o[0].toString()}.${o[1].toString()}.${o[2].toString()}`,i=E(r,l);return{status:void 0===n[4]?2:i==n[4]?3:1,num1:o[0],num2:o[1],num3:o[2],givenChecksum:n[4],correctChecksum:i,noChecksumFormat:l,withChecksumFormat:`${l}-${i}`}}function E(e,r){let t=\"\",n=[],o=0,l=0,i=0,s=0,u=0;const a=11881376,c=\"a\".charCodeAt(0);let m=new Uint8Array(e.length+6);m.set(e,0),m.set([0,0,0,0,0,0],e.length);for(let e=0;e0?u.fromBytes(t.ed25519):null!=t.ECDSASecp256k1&&t.ECDSASecp256k1.byteLength>0?u.fromBytes(t.ECDSASecp256k1):null}function $(e){const r=i.decode(e);if(!r)return null;try{throw s.proto.Key.decode(r),new Error(\"The alias is created with ed25519 or ECDSASecp256k1 account. Please use aliasToPublicKey!\")}catch(e){return function(e){var r=\"0x\";return e.forEach((function(e){r+=(\"0\"+(255&e).toString(16)).slice(-2)})),r}(r)}}function b(e){if(\"string\"==typeof e&&(e.startsWith(\"0x\")&&42==e.length||40==e.length)){e.startsWith(\"0x\")||(e=`0x${e}`);const r=a(e);return r?i.encode(r):null}const r=\"string\"==typeof e?u.fromString(e):e;let t=r.toStringRaw(),n=\"\";\"secp256k1\"===r._key._type&&(n=\"0x3A21\"),\"ED25519\"===r._key._type&&(n=\"0x1220\"),t.startsWith(\"0x\")||(t=`0x${t}`);const o=a(n),l=a(t),s=(c=o,m=l,(f=new Uint8Array(c.byteLength+m.byteLength)).set(new Uint8Array(c),0),f.set(new Uint8Array(m),c.byteLength),f);var c,m,f;return i.encode(s)}export{E as _checksum,p as _parseAddress,$ as aliasToEvmAddress,x as aliasToPublicKey,h as compare,f as constructor,w as fromSolidityAddress,g as fromString,d as fromStringSplitter,b as publicKeyToAlias,y as toSolidityAddress,k as toStringWithChecksum,S as validateChecksum};\n//# sourceMappingURL=EntityIdHelper.js.map\n","import t from\"./Key.js\";import{decode as r,encode as s}from\"./encoding/hex.js\";import{arrayEqual as e}from\"./util.js\";class i extends t{constructor(t){super(),this._bytes=t}static fromString(t){if(40!==(t=t.startsWith(\"0x\")?t.slice(2):t).length)throw new Error(\"Input EVM address string is not the correct size\");return new i(r(t))}static fromBytes(t){return new i(t)}toBytes(){return this._bytes}toString(){return s(this._bytes)}equals(t){return e(this._bytes,t._bytes)}}export{i as default};\n//# sourceMappingURL=EvmAddress.js.map\n","import t from\"long\";import{constructor as s,fromStringSplitter as e,fromSolidityAddress as r,validateChecksum as i,toSolidityAddress as n,toStringWithChecksum as l}from\"../EntityIdHelper.js\";import*as a from\"@hashgraph/proto\";import o from\"../Key.js\";import m from\"../PublicKey.js\";import u from\"../Cache.js\";import h from\"../EvmAddress.js\";import{decode as d}from\"../encoding/hex.js\";import{isLongZeroAddress as c}from\"../util.js\";class f{constructor(t,e,r,i,n){const l=s(t,e,r);this.shard=l.shard,this.realm=l.realm,this.num=l.num,this.aliasKey=null!=i?i:null,this.evmAddress=null!=n?n:null,this._checksum=null}static fromString(s){let r,i,n=t.ZERO,l=t.ZERO,a=t.ZERO;if(s.startsWith(\"0x\")&&42==s.length||40==s.length)i=h.fromString(s);else{const o=e(s);if(Number.isNaN(o.shard)||Number.isNaN(o.realm))throw new Error(\"invalid format for entity ID\");null!=o.shard&&(n=t.fromString(o.shard)),null!=o.realm&&(l=t.fromString(o.realm)),o.numOrHex.length<20?a=t.fromString(o.numOrHex):40==o.numOrHex.length?i=h.fromString(o.numOrHex):r=m.fromString(o.numOrHex)}return new f(n,l,a,r,i)}static fromEvmAddress(t,s,e){const i=\"string\"==typeof e?h.fromString(e):e;return c(i.toBytes())?new f(...r(i.toString())):new f(t,s,0,void 0,i)}static fromEvmPublicAddress(t){return new f(0,0,0,void 0,t)}static _fromProtobuf(t){let s,e;return null!=t.alias&&(20===t.alias.length?e=h.fromBytes(t.alias):s=o._fromProtobufKey(a.proto.Key.decode(t.alias))),s instanceof m||(s=void 0),new f(null!=t.shardNum?t.shardNum:0,null!=t.realmNum?t.realmNum:0,null!=t.accountNum?t.accountNum:0,s,e)}get checksum(){return this._checksum}getEvmAddress(){return this.evmAddress}async populateAccountNum(s){if(null===this.evmAddress)throw new Error(\"field `evmAddress` should not be null\");const e=s.mirrorNetwork[0].slice(0,s.mirrorNetwork[0].indexOf(\":\"));await new Promise((t=>{setTimeout(t,3e3)}));const r=`https://${e}/api/v1/accounts/${this.evmAddress.toString()}`,i=await fetch(r),n=(await i.json()).account;return this.num=t.fromString(n.slice(n.lastIndexOf(\".\")+1)),this}async populateAccountEvmAddress(t){if(null===this.num)throw new Error(\"field `num` should not be null\");const s=t.mirrorNetwork[0].slice(0,t.mirrorNetwork[0].indexOf(\":\"));await new Promise((t=>{setTimeout(t,3e3)}));const e=`https://${s}/api/v1/accounts/${this.num.toString()}`,r=await fetch(e),i=(await r.json()).evm_address;return this.evmAddress=h.fromString(i),this}validate(t){console.warn(\"Deprecated: Use `validateChecksum` instead\"),this.validateChecksum(t)}validateChecksum(t){if(null!=this.aliasKey)throw new Error(\"cannot calculate checksum with an account ID that has a aliasKey\");i(this.shard,this.realm,this.num,this._checksum,t)}static fromBytes(t){return f._fromProtobuf(a.proto.AccountID.decode(t))}static fromSolidityAddress(t){return c(d(t))?new f(...r(t)):this.fromEvmAddress(0,0,t)}toSolidityAddress(){return null!=this.evmAddress?this.evmAddress.toString():null!=this.aliasKey&&\"secp256k1\"==this.aliasKey._key._type?this.aliasKey.toEvmAddress():n([this.shard,this.realm,this.num])}_toProtobuf(){let s=null;null!=this.aliasKey?s=a.proto.Key.encode(this.aliasKey._toProtobufKey()).finish():null!=this.evmAddress&&(s=this.evmAddress._bytes);const e=this.num.eq(t.fromBigInt(0n))&&s;return s?{alias:e?s:null,accountNum:e?null:this.num,shardNum:this.shard,realmNum:this.realm}:{alias:null,accountNum:this.num,shardNum:this.shard,realmNum:this.realm}}toBytes(){return a.proto.AccountID.encode(this._toProtobuf()).finish()}toString(){let t=this.num.toString();return null!=this.aliasKey?t=this.aliasKey.toString():null!=this.evmAddress&&(t=this.evmAddress.toString()),`${this.shard.toString()}.${this.realm.toString()}.${t}`}toStringWithChecksum(t){if(null!=this.aliasKey)throw new Error(\"cannot calculate checksum with an account ID that has a aliasKey\");return l(this.toString(),t)}equals(t){let s=!1;return null!=this.aliasKey&&null!=t.aliasKey?s=this.aliasKey.equals(t.aliasKey):null!=this.evmAddress&&null!=t.evmAddress?s=this.evmAddress.equals(t.evmAddress):null==this.aliasKey&&null==t.aliasKey&&null==this.evmAddress&&null==t.evmAddress&&(s=this.num.eq(t.num)),this.shard.eq(t.shard)&&this.realm.eq(t.realm)&&s}clone(){const t=new f(this);return t._checksum=this._checksum,t.aliasKey=this.aliasKey,t.evmAddress=this.evmAddress,t}compare(t){let s=this.shard.compare(t.shard);if(0!=s)return s;if(s=this.realm.compare(t.realm),0!=s)return s;if(null!=this.aliasKey&&null!=t.aliasKey){const s=this.aliasKey.toString(),e=t.aliasKey.toString();return s>e?1:se?1:snew f(s,e,t.ZERO,r)));export{f as default};\n//# sourceMappingURL=AccountId.js.map\n","import t from\"long\";import e from\"./Cache.js\";const o=t.fromNumber(1e9),n=new Set;class s{constructor(e,o){this.seconds=e instanceof t?e:t.fromNumber(e),this.nanos=o instanceof t?o:t.fromNumber(o),Object.freeze(this)}static generate(t=!0){let o;o=t?Math.floor(5e3*Math.random())+3e3:0;const r=Date.now()-o,a=Math.floor(r/1e3)+e.timeDrift,i=1e6*Math.floor(r%1e3)+Math.floor(1e6*Math.random()),c=new s(a,i);return n.has(c.toString())?this.generate():(n.add(c.toString()),c)}static fromDate(e){let o;if(\"number\"==typeof e)o=t.fromNumber(e);else if(\"string\"==typeof e)o=t.fromNumber(Date.parse(e)).mul(1e6);else{if(!(e instanceof Date))throw new TypeError(`invalid type '${typeof e}' for 'data', expected 'Date'`);o=t.fromNumber(e.getTime()).mul(1e6)}return new s(0,0).plusNanos(o)}toDate(){return new Date(1e3*this.seconds.toInt()+Math.floor(this.nanos.toInt()/1e6))}plusNanos(t){const e=this.nanos.add(t);return new s(this.seconds.add(e.div(o)),e.mod(o))}_toProtobuf(){return{seconds:this.seconds,nanos:this.nanos.toInt()}}static _fromProtobuf(e){return new s(e.seconds instanceof t?e.seconds.toInt():null!=e.seconds?e.seconds:0,null!=e.nanos?e.nanos:0)}toString(){const t=String(this.nanos).padStart(9,\"0\");return`${this.seconds.toString()}.${t}`}compare(t){const e=this.seconds.compare(t.seconds);return 0!=e?e:this.nanos.compare(t.nanos)}}export{s as default};\n//# sourceMappingURL=Timestamp.js.map\n","import t from\"../account/AccountId.js\";import n from\"../Timestamp.js\";import*as r from\"@hashgraph/proto\";import e from\"long\";import o from\"../Cache.js\";class i{constructor(t,n,r=!1,e=null){this.accountId=t,this.validStart=n,this.scheduled=r,this.nonce=null,null!=e&&0!=e&&this.setNonce(e),Object.seal(this)}setNonce(t){return this.nonce=\"number\"==typeof t?e.fromNumber(t):t,this}static withValidStart(t,n){return new i(t,n)}static generate(r){return new i(\"string\"==typeof r?t.fromString(r):new t(r),n.generate())}static fromString(r){let o,c,s,a,u,l;return[o,l]=r.split(\"@\"),[c,l]=l.split(\".\"),l.includes(\"?\")?([s,l]=l.split(\"?scheduled\"),a=!0,u=l.includes(\"/\")?l.replace(\"/\",\"\"):null):l.includes(\"/\")?([s,u]=l.split(\"/\"),a=!1):s=l,new i(t.fromString(o),new n(e.fromValue(c),e.fromValue(s)),a,null!=u?e.fromString(u):null)}setScheduled(t){return this.scheduled=t,this}toString(){if(null!=this.accountId&&null!=this.validStart){const t=String(this.validStart.nanos).padStart(9,\"0\"),n=null!=this.nonce?\"/\".concat(this.nonce.toString()):\"\",r=this.scheduled?\"?scheduled\":\"\";return`${this.accountId.toString()}@${this.validStart.seconds.toString()}.${t}${r}${n}`}throw new Error(\"neither `accountId` nor `validStart` are set\")}static _fromProtobuf(r){if(null!=r.accountID&&null!=r.transactionValidStart)return new i(t._fromProtobuf(r.accountID),n._fromProtobuf(r.transactionValidStart),null!=r.scheduled?r.scheduled:void 0,null!=r.nonce?r.nonce:void 0);throw new Error(\"Neither `nonce` or `accountID` and `transactionValidStart` are set\")}_toProtobuf(){return{accountID:null!=this.accountId?this.accountId._toProtobuf():null,transactionValidStart:null!=this.validStart?this.validStart._toProtobuf():null,scheduled:this.scheduled,nonce:null!=this.nonce?this.nonce.toInt():null}}static fromBytes(t){return i._fromProtobuf(r.proto.TransactionID.decode(t))}toBytes(){return r.proto.TransactionID.encode(this._toProtobuf()).finish()}clone(){return new i(this.accountId,this.validStart,this.scheduled,this.nonce)}compare(t){const n=this.accountId.compare(t.accountId);return 0!=n?n:this.validStart.compare(t.validStart)}getReceipt(t){return o.transactionReceiptQueryConstructor().setTransactionId(this).execute(t)}async getRecord(t){return await this.getReceipt(t),o.transactionRecordQueryConstructor().setTransactionId(this).execute(t)}}export{i as default};\n//# sourceMappingURL=TransactionId.js.map\n","import e from\"../ObjectMap.js\";import r from\"../PublicKey.js\";class t extends e{constructor(){super((e=>r.fromString(e)))}static _fromTransactionSigMap(e){const s=new t,i=null!=e.sigPair?e.sigPair:[];for(const e of i)null!=e.pubKeyPrefix&&(null!=e.ed25519?s._set(r.fromBytesED25519(e.pubKeyPrefix),e.ed25519):null!=e.ECDSASecp256k1&&s._set(r.fromBytesECDSA(e.pubKeyPrefix),e.ECDSASecp256k1));return s}addSignature(e,r){return this._set(e,r),this}}export{t as default};\n//# sourceMappingURL=SignaturePairMap.js.map\n","import t from\"../ObjectMap.js\";import o from\"./TransactionId.js\";import r from\"./SignaturePairMap.js\";import*as a from\"@hashgraph/proto\";class n extends t{constructor(){super((t=>o.fromString(t)))}static _fromSignedTransactions(t){const s=new n;for(const{bodyBytes:n,sigMap:i}of t.list)if(null!=n&&null!=i){const t=a.proto.TransactionBody.decode(n);if(null!=t.transactionID){const a=o._fromProtobuf(t.transactionID);s._set(a,r._fromTransactionSigMap(i))}}return s}addSignature(t,o,a){const n=this.get(t);n?n.addSignature(o,a):this._set(t,(new r).addSignature(o,a))}}export{n as default};\n//# sourceMappingURL=NodeAccountIdSignatureMap.js.map\n","class t{constructor(){this.list=[],this.locked=!1,this.index=0}setList(t){if(this.locked)throw new Error(\"list is locked\");return this.list=t,this.index=0,this}push(...t){if(this.locked)throw new Error(\"list is locked\");return this.list.push(...t),this}setLocked(){return this.locked=!0,this}clear(){this.list=[],this.index=0,this.locked=!1}get(t){return this.list[t]}set(t,s){return t===this.length?this.list.push(s):this.list[t]=s,this}setIfAbsent(t,s){return t!=this.length&&null!=this.list[t]||this.set(t,s()),this}get next(){return this.get(this.advance())}get current(){return this.get(this.index)}advance(){const t=this.index;return this.index=(this.index+1)%this.list.length,t}get isEmpty(){return 0===this.length}get length(){return this.list.length}clone(){const s=new t;return s.list=this.list,s.locked=this.locked,s}}export{t as default};\n//# sourceMappingURL=List.js.map\n","import t from\"./NodeAccountIdSignatureMap.js\";import s from\"../ObjectMap.js\";import n from\"../account/AccountId.js\";import o from\"./List.js\";class e extends s{constructor(){super((t=>n.fromString(t)))}static _fromTransaction(s){const n=new e,r=s._nodeAccountIds.length,i=s._signedTransactions.length/r;for(let e=0;e{const e=t.bodyBytes;return e?this._key.sign(e):new Uint8Array}));return t.addSignature(this.publicKey,e),1===e.length?e[0]:e}isDerivable(){return this._key.isDerivable()}toBytes(){return this._key.toBytes()}toBytesDer(){return this._key.toBytesDer()}toBytesRaw(){return this._key.toBytesRaw()}toString(){return this._key.toStringDer()}toStringDer(){return this._key.toStringDer()}toStringRaw(){return this._key.toStringRaw()}toKeystore(t=\"\"){return this._key.toKeystore(t)}_toProtobufKey(){return this.publicKey._toProtobufKey()}toAccountId(t,e){return this.publicKey.toAccountId(t,e)}get type(){return this._key._type}getRecoveryId(t,e,r){return this._key.getRecoveryId(t,e,r)}}i.setPrivateKeyConstructor((t=>new y(t)));export{y as default};\n//# sourceMappingURL=PrivateKey.js.map\n","import t from\"./Key.js\";import e from\"./Cache.js\";class s extends t{constructor(e,s){super(),this._keys=null==e?[]:e instanceof t?[e]:e,this._threshold=null==s?null:s}static of(...t){return new s(t,null)}static from(t,e,r){return new s(null==e?Array.from(t):Array.from(t,e,r))}get threshold(){return this._threshold}setThreshold(t){return this._threshold=t,this}push(...t){return this._keys.push(...t)}splice(t,e,...r){return new s(this._keys.splice(t,e,...r),this.threshold)}slice(t,e){return new s(this._keys.slice(t,e),this.threshold)}[Symbol.iterator](){return this._keys[Symbol.iterator]()}toArray(){return this._keys.slice()}toString(){return JSON.stringify({threshold:this._threshold,keys:this._keys.toString()})}_toProtobufKey(){const t=this._keys.map((t=>t._toProtobufKey()));return null==this.threshold?{keyList:{keys:t}}:{thresholdKey:{threshold:this.threshold,keys:{keys:t}}}}static __fromProtobufKeyList(e){const r=(null!=e.keys?e.keys:[]).map((e=>t._fromProtobufKey(e)));return new s(r)}static __fromProtobufThresoldKey(t){const e=s.__fromProtobufKeyList(null!=t.keys?t.keys:{});return e.setThreshold(null!=t.threshold?t.threshold:0),e}}e.setKeyList((t=>s.__fromProtobufKeyList(t))),e.setThresholdKey((t=>s.__fromProtobufThresoldKey(t)));export{s as default};\n//# sourceMappingURL=KeyList.js.map\n","import r from\"bignumber.js\";function i(i){return r.isBigNumber(i)?i:new r(i.toString())}export{i as valueToLong};\n//# sourceMappingURL=long.js.map\n","import r from\"bignumber.js\";class e{constructor(r,e,a){this._name=r,this._symbol=e,this._tinybar=a,Object.freeze(this)}static fromString(r){switch(r){case e.Hbar._symbol:return e.Hbar;case e.Tinybar._symbol:return e.Tinybar;case e.Microbar._symbol:return e.Microbar;case e.Millibar._symbol:return e.Millibar;case e.Kilobar._symbol:return e.Kilobar;case e.Megabar._symbol:return e.Megabar;case e.Gigabar._symbol:return e.Gigabar;default:throw new Error(\"Unknown unit.\")}}}e.Tinybar=new e(\"tinybar\",\"tℏ\",new r(1)),e.Microbar=new e(\"microbar\",\"μℏ\",new r(100)),e.Millibar=new e(\"millibar\",\"mℏ\",new r(1e5)),e.Hbar=new e(\"hbar\",\"ℏ\",new r(\"100000000\")),e.Kilobar=new e(\"kilobar\",\"kℏ\",new r(1e3).multipliedBy(new r(\"100000000\"))),e.Megabar=new e(\"megabar\",\"Mℏ\",new r(1e6).multipliedBy(new r(\"100000000\"))),e.Gigabar=new e(\"gigabar\",\"Gℏ\",new r(\"1000000000\").multipliedBy(new r(\"100000000\")));export{e as default};\n//# sourceMappingURL=HbarUnit.js.map\n","import r from\"bignumber.js\";import{valueToLong as i}from\"./long.js\";import t from\"./HbarUnit.js\";import n from\"long\";class e{constructor(e,a=t.Hbar){if(a===t.Tinybar)this._valueInTinybar=i(e);else{let i;i=n.isLong(e)?new r(e.toString(10)):r.isBigNumber(e)||\"string\"==typeof e||\"number\"==typeof e?new r(e):new r(0),this._valueInTinybar=i.multipliedBy(a._tinybar)}if(!this._valueInTinybar.isInteger())throw new Error(\"Hbar in tinybars contains decimals\")}static from(r,i){return new e(r,i)}static fromTinybars(r){return\"string\"==typeof r?this.fromString(r,t.Tinybar):new e(r,t.Tinybar)}static fromString(i,n=t.Hbar){if(/^((?:\\+|-)?\\d+(?:\\.\\d+)?)(?: (tℏ|μℏ|mℏ|ℏ|kℏ|Mℏ|Gℏ))?$/.test(i)){let[a,s]=i.split(\" \");return null!=s&&(n=t.fromString(s)),new e(new r(a),n)}throw new Error(\"invalid argument provided\")}to(r){return this._valueInTinybar.dividedBy(r._tinybar)}toBigNumber(){return this.to(t.Hbar)}toTinybars(){return n.fromValue(this._valueInTinybar.toFixed())}negated(){return e.fromTinybars(this._valueInTinybar.negated())}isNegative(){return this._valueInTinybar.isNegative()}toString(r){return null!=r?`${this._valueInTinybar.dividedBy(r._tinybar).toString()} ${r._symbol}`:this._valueInTinybar.isLessThan(1e4)&&this._valueInTinybar.isGreaterThan(-1e4)?`${this._valueInTinybar.toFixed()} ${t.Tinybar._symbol}`:`${this.to(t.Hbar).toString()} ${t.Hbar._symbol}`}}export{e as default};\n//# sourceMappingURL=Hbar.js.map\n","class t extends Error{constructor(s,r){super(r),this.name=\"StatusError\",this.status=s.status,this.transactionId=s.transactionId,this.message=r,void 0!==Error.captureStackTrace&&Error.captureStackTrace(this,t)}toJSON(){return{name:this.name,status:this.status.toString(),transactionId:this.transactionId.toString(),message:this.message}}toString(){return JSON.stringify(this.toJSON())}valueOf(){return this.toJSON()}}export{t as default};\n//# sourceMappingURL=StatusError.js.map\n","import t from\"./StatusError.js\";class r extends t{constructor(t){super(t,`receipt for transaction ${t.transactionId.toString()} contained error status ${t.status.toString()}`),this.transactionReceipt=t.transactionReceipt}}export{r as default};\n//# sourceMappingURL=ReceiptStatusError.js.map\n","class e{constructor(e){this._code=e,Object.freeze(this)}toString(){switch(this){case e.Ok:return\"OK\";case e.InvalidTransaction:return\"INVALID_TRANSACTION\";case e.PayerAccountNotFound:return\"PAYER_ACCOUNT_NOT_FOUND\";case e.InvalidNodeAccount:return\"INVALID_NODE_ACCOUNT\";case e.TransactionExpired:return\"TRANSACTION_EXPIRED\";case e.InvalidTransactionStart:return\"INVALID_TRANSACTION_START\";case e.InvalidTransactionDuration:return\"INVALID_TRANSACTION_DURATION\";case e.InvalidSignature:return\"INVALID_SIGNATURE\";case e.MemoTooLong:return\"MEMO_TOO_LONG\";case e.InsufficientTxFee:return\"INSUFFICIENT_TX_FEE\";case e.InsufficientPayerBalance:return\"INSUFFICIENT_PAYER_BALANCE\";case e.DuplicateTransaction:return\"DUPLICATE_TRANSACTION\";case e.Busy:return\"BUSY\";case e.NotSupported:return\"NOT_SUPPORTED\";case e.InvalidFileId:return\"INVALID_FILE_ID\";case e.InvalidAccountId:return\"INVALID_ACCOUNT_ID\";case e.InvalidContractId:return\"INVALID_CONTRACT_ID\";case e.InvalidTransactionId:return\"INVALID_TRANSACTION_ID\";case e.ReceiptNotFound:return\"RECEIPT_NOT_FOUND\";case e.RecordNotFound:return\"RECORD_NOT_FOUND\";case e.InvalidSolidityId:return\"INVALID_SOLIDITY_ID\";case e.Unknown:return\"UNKNOWN\";case e.Success:return\"SUCCESS\";case e.FailInvalid:return\"FAIL_INVALID\";case e.FailFee:return\"FAIL_FEE\";case e.FailBalance:return\"FAIL_BALANCE\";case e.KeyRequired:return\"KEY_REQUIRED\";case e.BadEncoding:return\"BAD_ENCODING\";case e.InsufficientAccountBalance:return\"INSUFFICIENT_ACCOUNT_BALANCE\";case e.InvalidSolidityAddress:return\"INVALID_SOLIDITY_ADDRESS\";case e.InsufficientGas:return\"INSUFFICIENT_GAS\";case e.ContractSizeLimitExceeded:return\"CONTRACT_SIZE_LIMIT_EXCEEDED\";case e.LocalCallModificationException:return\"LOCAL_CALL_MODIFICATION_EXCEPTION\";case e.ContractRevertExecuted:return\"CONTRACT_REVERT_EXECUTED\";case e.ContractExecutionException:return\"CONTRACT_EXECUTION_EXCEPTION\";case e.InvalidReceivingNodeAccount:return\"INVALID_RECEIVING_NODE_ACCOUNT\";case e.MissingQueryHeader:return\"MISSING_QUERY_HEADER\";case e.AccountUpdateFailed:return\"ACCOUNT_UPDATE_FAILED\";case e.InvalidKeyEncoding:return\"INVALID_KEY_ENCODING\";case e.NullSolidityAddress:return\"NULL_SOLIDITY_ADDRESS\";case e.ContractUpdateFailed:return\"CONTRACT_UPDATE_FAILED\";case e.InvalidQueryHeader:return\"INVALID_QUERY_HEADER\";case e.InvalidFeeSubmitted:return\"INVALID_FEE_SUBMITTED\";case e.InvalidPayerSignature:return\"INVALID_PAYER_SIGNATURE\";case e.KeyNotProvided:return\"KEY_NOT_PROVIDED\";case e.InvalidExpirationTime:return\"INVALID_EXPIRATION_TIME\";case e.NoWaclKey:return\"NO_WACL_KEY\";case e.FileContentEmpty:return\"FILE_CONTENT_EMPTY\";case e.InvalidAccountAmounts:return\"INVALID_ACCOUNT_AMOUNTS\";case e.EmptyTransactionBody:return\"EMPTY_TRANSACTION_BODY\";case e.InvalidTransactionBody:return\"INVALID_TRANSACTION_BODY\";case e.InvalidSignatureTypeMismatchingKey:return\"INVALID_SIGNATURE_TYPE_MISMATCHING_KEY\";case e.InvalidSignatureCountMismatchingKey:return\"INVALID_SIGNATURE_COUNT_MISMATCHING_KEY\";case e.EmptyLiveHashBody:return\"EMPTY_LIVE_HASH_BODY\";case e.EmptyLiveHash:return\"EMPTY_LIVE_HASH\";case e.EmptyLiveHashKeys:return\"EMPTY_LIVE_HASH_KEYS\";case e.InvalidLiveHashSize:return\"INVALID_LIVE_HASH_SIZE\";case e.EmptyQueryBody:return\"EMPTY_QUERY_BODY\";case e.EmptyLiveHashQuery:return\"EMPTY_LIVE_HASH_QUERY\";case e.LiveHashNotFound:return\"LIVE_HASH_NOT_FOUND\";case e.AccountIdDoesNotExist:return\"ACCOUNT_ID_DOES_NOT_EXIST\";case e.LiveHashAlreadyExists:return\"LIVE_HASH_ALREADY_EXISTS\";case e.InvalidFileWacl:return\"INVALID_FILE_WACL\";case e.SerializationFailed:return\"SERIALIZATION_FAILED\";case e.TransactionOversize:return\"TRANSACTION_OVERSIZE\";case e.TransactionTooManyLayers:return\"TRANSACTION_TOO_MANY_LAYERS\";case e.ContractDeleted:return\"CONTRACT_DELETED\";case e.PlatformNotActive:return\"PLATFORM_NOT_ACTIVE\";case e.KeyPrefixMismatch:return\"KEY_PREFIX_MISMATCH\";case e.PlatformTransactionNotCreated:return\"PLATFORM_TRANSACTION_NOT_CREATED\";case e.InvalidRenewalPeriod:return\"INVALID_RENEWAL_PERIOD\";case e.InvalidPayerAccountId:return\"INVALID_PAYER_ACCOUNT_ID\";case e.AccountDeleted:return\"ACCOUNT_DELETED\";case e.FileDeleted:return\"FILE_DELETED\";case e.AccountRepeatedInAccountAmounts:return\"ACCOUNT_REPEATED_IN_ACCOUNT_AMOUNTS\";case e.SettingNegativeAccountBalance:return\"SETTING_NEGATIVE_ACCOUNT_BALANCE\";case e.ObtainerRequired:return\"OBTAINER_REQUIRED\";case e.ObtainerSameContractId:return\"OBTAINER_SAME_CONTRACT_ID\";case e.ObtainerDoesNotExist:return\"OBTAINER_DOES_NOT_EXIST\";case e.ModifyingImmutableContract:return\"MODIFYING_IMMUTABLE_CONTRACT\";case e.FileSystemException:return\"FILE_SYSTEM_EXCEPTION\";case e.AutorenewDurationNotInRange:return\"AUTORENEW_DURATION_NOT_IN_RANGE\";case e.ErrorDecodingBytestring:return\"ERROR_DECODING_BYTESTRING\";case e.ContractFileEmpty:return\"CONTRACT_FILE_EMPTY\";case e.ContractBytecodeEmpty:return\"CONTRACT_BYTECODE_EMPTY\";case e.InvalidInitialBalance:return\"INVALID_INITIAL_BALANCE\";case e.InvalidReceiveRecordThreshold:return\"INVALID_RECEIVE_RECORD_THRESHOLD\";case e.InvalidSendRecordThreshold:return\"INVALID_SEND_RECORD_THRESHOLD\";case e.AccountIsNotGenesisAccount:return\"ACCOUNT_IS_NOT_GENESIS_ACCOUNT\";case e.PayerAccountUnauthorized:return\"PAYER_ACCOUNT_UNAUTHORIZED\";case e.InvalidFreezeTransactionBody:return\"INVALID_FREEZE_TRANSACTION_BODY\";case e.FreezeTransactionBodyNotFound:return\"FREEZE_TRANSACTION_BODY_NOT_FOUND\";case e.TransferListSizeLimitExceeded:return\"TRANSFER_LIST_SIZE_LIMIT_EXCEEDED\";case e.ResultSizeLimitExceeded:return\"RESULT_SIZE_LIMIT_EXCEEDED\";case e.NotSpecialAccount:return\"NOT_SPECIAL_ACCOUNT\";case e.ContractNegativeGas:return\"CONTRACT_NEGATIVE_GAS\";case e.ContractNegativeValue:return\"CONTRACT_NEGATIVE_VALUE\";case e.InvalidFeeFile:return\"INVALID_FEE_FILE\";case e.InvalidExchangeRateFile:return\"INVALID_EXCHANGE_RATE_FILE\";case e.InsufficientLocalCallGas:return\"INSUFFICIENT_LOCAL_CALL_GAS\";case e.EntityNotAllowedToDelete:return\"ENTITY_NOT_ALLOWED_TO_DELETE\";case e.AuthorizationFailed:return\"AUTHORIZATION_FAILED\";case e.FileUploadedProtoInvalid:return\"FILE_UPLOADED_PROTO_INVALID\";case e.FileUploadedProtoNotSavedToDisk:return\"FILE_UPLOADED_PROTO_NOT_SAVED_TO_DISK\";case e.FeeScheduleFilePartUploaded:return\"FEE_SCHEDULE_FILE_PART_UPLOADED\";case e.ExchangeRateChangeLimitExceeded:return\"EXCHANGE_RATE_CHANGE_LIMIT_EXCEEDED\";case e.MaxContractStorageExceeded:return\"MAX_CONTRACT_STORAGE_EXCEEDED\";case e.TransferAccountSameAsDeleteAccount:return\"TRANSFER_ACCOUNT_SAME_AS_DELETE_ACCOUNT\";case e.TotalLedgerBalanceInvalid:return\"TOTAL_LEDGER_BALANCE_INVALID\";case e.ExpirationReductionNotAllowed:return\"EXPIRATION_REDUCTION_NOT_ALLOWED\";case e.MaxGasLimitExceeded:return\"MAX_GAS_LIMIT_EXCEEDED\";case e.MaxFileSizeExceeded:return\"MAX_FILE_SIZE_EXCEEDED\";case e.ReceiverSigRequired:return\"RECEIVER_SIG_REQUIRED\";case e.InvalidTopicId:return\"INVALID_TOPIC_ID\";case e.InvalidAdminKey:return\"INVALID_ADMIN_KEY\";case e.InvalidSubmitKey:return\"INVALID_SUBMIT_KEY\";case e.Unauthorized:return\"UNAUTHORIZED\";case e.InvalidTopicMessage:return\"INVALID_TOPIC_MESSAGE\";case e.InvalidAutorenewAccount:return\"INVALID_AUTORENEW_ACCOUNT\";case e.AutorenewAccountNotAllowed:return\"AUTORENEW_ACCOUNT_NOT_ALLOWED\";case e.TopicExpired:return\"TOPIC_EXPIRED\";case e.InvalidChunkNumber:return\"INVALID_CHUNK_NUMBER\";case e.InvalidChunkTransactionId:return\"INVALID_CHUNK_TRANSACTION_ID\";case e.AccountFrozenForToken:return\"ACCOUNT_FROZEN_FOR_TOKEN\";case e.TokensPerAccountLimitExceeded:return\"TOKENS_PER_ACCOUNT_LIMIT_EXCEEDED\";case e.InvalidTokenId:return\"INVALID_TOKEN_ID\";case e.InvalidTokenDecimals:return\"INVALID_TOKEN_DECIMALS\";case e.InvalidTokenInitialSupply:return\"INVALID_TOKEN_INITIAL_SUPPLY\";case e.InvalidTreasuryAccountForToken:return\"INVALID_TREASURY_ACCOUNT_FOR_TOKEN\";case e.InvalidTokenSymbol:return\"INVALID_TOKEN_SYMBOL\";case e.TokenHasNoFreezeKey:return\"TOKEN_HAS_NO_FREEZE_KEY\";case e.TransfersNotZeroSumForToken:return\"TRANSFERS_NOT_ZERO_SUM_FOR_TOKEN\";case e.MissingTokenSymbol:return\"MISSING_TOKEN_SYMBOL\";case e.TokenSymbolTooLong:return\"TOKEN_SYMBOL_TOO_LONG\";case e.AccountKycNotGrantedForToken:return\"ACCOUNT_KYC_NOT_GRANTED_FOR_TOKEN\";case e.TokenHasNoKycKey:return\"TOKEN_HAS_NO_KYC_KEY\";case e.InsufficientTokenBalance:return\"INSUFFICIENT_TOKEN_BALANCE\";case e.TokenWasDeleted:return\"TOKEN_WAS_DELETED\";case e.TokenHasNoSupplyKey:return\"TOKEN_HAS_NO_SUPPLY_KEY\";case e.TokenHasNoWipeKey:return\"TOKEN_HAS_NO_WIPE_KEY\";case e.InvalidTokenMintAmount:return\"INVALID_TOKEN_MINT_AMOUNT\";case e.InvalidTokenBurnAmount:return\"INVALID_TOKEN_BURN_AMOUNT\";case e.TokenNotAssociatedToAccount:return\"TOKEN_NOT_ASSOCIATED_TO_ACCOUNT\";case e.CannotWipeTokenTreasuryAccount:return\"CANNOT_WIPE_TOKEN_TREASURY_ACCOUNT\";case e.InvalidKycKey:return\"INVALID_KYC_KEY\";case e.InvalidWipeKey:return\"INVALID_WIPE_KEY\";case e.InvalidFreezeKey:return\"INVALID_FREEZE_KEY\";case e.InvalidSupplyKey:return\"INVALID_SUPPLY_KEY\";case e.MissingTokenName:return\"MISSING_TOKEN_NAME\";case e.TokenNameTooLong:return\"TOKEN_NAME_TOO_LONG\";case e.InvalidWipingAmount:return\"INVALID_WIPING_AMOUNT\";case e.TokenIsImmutable:return\"TOKEN_IS_IMMUTABLE\";case e.TokenAlreadyAssociatedToAccount:return\"TOKEN_ALREADY_ASSOCIATED_TO_ACCOUNT\";case e.TransactionRequiresZeroTokenBalances:return\"TRANSACTION_REQUIRES_ZERO_TOKEN_BALANCES\";case e.AccountIsTreasury:return\"ACCOUNT_IS_TREASURY\";case e.TokenIdRepeatedInTokenList:return\"TOKEN_ID_REPEATED_IN_TOKEN_LIST\";case e.TokenTransferListSizeLimitExceeded:return\"TOKEN_TRANSFER_LIST_SIZE_LIMIT_EXCEEDED\";case e.EmptyTokenTransferBody:return\"EMPTY_TOKEN_TRANSFER_BODY\";case e.EmptyTokenTransferAccountAmounts:return\"EMPTY_TOKEN_TRANSFER_ACCOUNT_AMOUNTS\";case e.InvalidScheduleId:return\"INVALID_SCHEDULE_ID\";case e.ScheduleIsImmutable:return\"SCHEDULE_IS_IMMUTABLE\";case e.InvalidSchedulePayerId:return\"INVALID_SCHEDULE_PAYER_ID\";case e.InvalidScheduleAccountId:return\"INVALID_SCHEDULE_ACCOUNT_ID\";case e.NoNewValidSignatures:return\"NO_NEW_VALID_SIGNATURES\";case e.UnresolvableRequiredSigners:return\"UNRESOLVABLE_REQUIRED_SIGNERS\";case e.ScheduledTransactionNotInWhitelist:return\"SCHEDULED_TRANSACTION_NOT_IN_WHITELIST\";case e.SomeSignaturesWereInvalid:return\"SOME_SIGNATURES_WERE_INVALID\";case e.TransactionIdFieldNotAllowed:return\"TRANSACTION_ID_FIELD_NOT_ALLOWED\";case e.IdenticalScheduleAlreadyCreated:return\"IDENTICAL_SCHEDULE_ALREADY_CREATED\";case e.InvalidZeroByteInString:return\"INVALID_ZERO_BYTE_IN_STRING\";case e.ScheduleAlreadyDeleted:return\"SCHEDULE_ALREADY_DELETED\";case e.ScheduleAlreadyExecuted:return\"SCHEDULE_ALREADY_EXECUTED\";case e.MessageSizeTooLarge:return\"MESSAGE_SIZE_TOO_LARGE\";case e.OperationRepeatedInBucketGroups:return\"OPERATION_REPEATED_IN_BUCKET_GROUPS\";case e.BucketCapacityOverflow:return\"BUCKET_CAPACITY_OVERFLOW\";case e.NodeCapacityNotSufficientForOperation:return\"NODE_CAPACITY_NOT_SUFFICIENT_FOR_OPERATION\";case e.BucketHasNoThrottleGroups:return\"BUCKET_HAS_NO_THROTTLE_GROUPS\";case e.ThrottleGroupHasZeroOpsPerSec:return\"THROTTLE_GROUP_HAS_ZERO_OPS_PER_SEC\";case e.SuccessButMissingExpectedOperation:return\"SUCCESS_BUT_MISSING_EXPECTED_OPERATION\";case e.UnparseableThrottleDefinitions:return\"UNPARSEABLE_THROTTLE_DEFINITIONS\";case e.InvalidThrottleDefinitions:return\"INVALID_THROTTLE_DEFINITIONS\";case e.AccountExpiredAndPendingRemoval:return\"ACCOUNT_EXPIRED_AND_PENDING_REMOVAL\";case e.InvalidTokenMaxSupply:return\"INVALID_TOKEN_MAX_SUPPLY\";case e.InvalidTokenNftSerialNumber:return\"INVALID_TOKEN_NFT_SERIAL_NUMBER\";case e.InvalidNftId:return\"INVALID_NFT_ID\";case e.MetadataTooLong:return\"METADATA_TOO_LONG\";case e.BatchSizeLimitExceeded:return\"BATCH_SIZE_LIMIT_EXCEEDED\";case e.InvalidQueryRange:return\"INVALID_QUERY_RANGE\";case e.FractionDividesByZero:return\"FRACTION_DIVIDES_BY_ZERO\";case e.InsufficientPayerBalanceForCustomFee:return\"INSUFFICIENT_PAYER_BALANCE_FOR_CUSTOM_FEE\";case e.CustomFeesListTooLong:return\"CUSTOM_FEES_LIST_TOO_LONG\";case e.InvalidCustomFeeCollector:return\"INVALID_CUSTOM_FEE_COLLECTOR\";case e.InvalidTokenIdInCustomFees:return\"INVALID_TOKEN_ID_IN_CUSTOM_FEES\";case e.TokenNotAssociatedToFeeCollector:return\"TOKEN_NOT_ASSOCIATED_TO_FEE_COLLECTOR\";case e.TokenMaxSupplyReached:return\"TOKEN_MAX_SUPPLY_REACHED\";case e.SenderDoesNotOwnNftSerialNo:return\"SENDER_DOES_NOT_OWN_NFT_SERIAL_NO\";case e.CustomFeeNotFullySpecified:return\"CUSTOM_FEE_NOT_FULLY_SPECIFIED\";case e.CustomFeeMustBePositive:return\"CUSTOM_FEE_MUST_BE_POSITIVE\";case e.TokenHasNoFeeScheduleKey:return\"TOKEN_HAS_NO_FEE_SCHEDULE_KEY\";case e.CustomFeeOutsideNumericRange:return\"CUSTOM_FEE_OUTSIDE_NUMERIC_RANGE\";case e.RoyaltyFractionCannotExceedOne:return\"ROYALTY_FRACTION_CANNOT_EXCEED_ONE\";case e.FractionalFeeMaxAmountLessThanMinAmount:return\"FRACTIONAL_FEE_MAX_AMOUNT_LESS_THAN_MIN_AMOUNT\";case e.CustomScheduleAlreadyHasNoFees:return\"CUSTOM_SCHEDULE_ALREADY_HAS_NO_FEES\";case e.CustomFeeDenominationMustBeFungibleCommon:return\"CUSTOM_FEE_DENOMINATION_MUST_BE_FUNGIBLE_COMMON\";case e.CustomFractionalFeeOnlyAllowedForFungibleCommon:return\"CUSTOM_FRACTIONAL_FEE_ONLY_ALLOWED_FOR_FUNGIBLE_COMMON\";case e.InvalidCustomFeeScheduleKey:return\"INVALID_CUSTOM_FEE_SCHEDULE_KEY\";case e.InvalidTokenMintMetadata:return\"INVALID_TOKEN_MINT_METADATA\";case e.InvalidTokenBurnMetadata:return\"INVALID_TOKEN_BURN_METADATA\";case e.CurrentTreasuryStillOwnsNfts:return\"CURRENT_TREASURY_STILL_OWNS_NFTS\";case e.AccountStillOwnsNfts:return\"ACCOUNT_STILL_OWNS_NFTS\";case e.TreasuryMustOwnBurnedNft:return\"TREASURY_MUST_OWN_BURNED_NFT\";case e.AccountDoesNotOwnWipedNft:return\"ACCOUNT_DOES_NOT_OWN_WIPED_NFT\";case e.AccountAmountTransfersOnlyAllowedForFungibleCommon:return\"ACCOUNT_AMOUNT_TRANSFERS_ONLY_ALLOWED_FOR_FUNGIBLE_COMMON\";case e.MaxNftsInPriceRegimeHaveBeenMinted:return\"MAX_NFTS_IN_PRICE_REGIME_HAVE_BEEN_MINTED\";case e.PayerAccountDeleted:return\"PAYER_ACCOUNT_DELETED\";case e.CustomFeeChargingExceededMaxRecursionDepth:return\"CUSTOM_FEE_CHARGING_EXCEEDED_MAX_RECURSION_DEPTH\";case e.CustomFeeChargingExceededMaxAccountAmounts:return\"CUSTOM_FEE_CHARGING_EXCEEDED_MAX_ACCOUNT_AMOUNTS\";case e.InsufficientSenderAccountBalanceForCustomFee:return\"INSUFFICIENT_SENDER_ACCOUNT_BALANCE_FOR_CUSTOM_FEE\";case e.SerialNumberLimitReached:return\"SERIAL_NUMBER_LIMIT_REACHED\";case e.CustomRoyaltyFeeOnlyAllowedForNonFungibleUnique:return\"CUSTOM_ROYALTY_FEE_ONLY_ALLOWED_FOR_NON_FUNGIBLE_UNIQUE\";case e.NoRemainingAutomaticAssociations:return\"NO_REMAINING_AUTOMATIC_ASSOCIATIONS\";case e.ExistingAutomaticAssociationsExceedGivenLimit:return\"EXISTING_AUTOMATIC_ASSOCIATIONS_EXCEED_GIVEN_LIMIT\";case e.RequestedNumAutomaticAssociationsExceedsAssociationLimit:return\"REQUESTED_NUM_AUTOMATIC_ASSOCIATIONS_EXCEEDS_ASSOCIATION_LIMIT\";case e.TokenIsPaused:return\"TOKEN_IS_PAUSED\";case e.TokenHasNoPauseKey:return\"TOKEN_HAS_NO_PAUSE_KEY\";case e.InvalidPauseKey:return\"INVALID_PAUSE_KEY\";case e.FreezeUpdateFileDoesNotExist:return\"FREEZE_UPDATE_FILE_DOES_NOT_EXIST\";case e.FreezeUpdateFileHashDoesNotMatch:return\"FREEZE_UPDATE_FILE_HASH_DOES_NOT_MATCH\";case e.NoUpgradeHasBeenPrepared:return\"NO_UPGRADE_HAS_BEEN_PREPARED\";case e.NoFreezeIsScheduled:return\"NO_FREEZE_IS_SCHEDULED\";case e.UpdateFileHashChangedSincePrepareUpgrade:return\"UPDATE_FILE_HASH_CHANGED_SINCE_PREPARE_UPGRADE\";case e.FreezeStartTimeMustBeFuture:return\"FREEZE_START_TIME_MUST_BE_FUTURE\";case e.PreparedUpdateFileIsImmutable:return\"PREPARED_UPDATE_FILE_IS_IMMUTABLE\";case e.FreezeAlreadyScheduled:return\"FREEZE_ALREADY_SCHEDULED\";case e.FreezeUpgradeInProgress:return\"FREEZE_UPGRADE_IN_PROGRESS\";case e.UpdateFileIdDoesNotMatchPrepared:return\"UPDATE_FILE_ID_DOES_NOT_MATCH_PREPARED\";case e.UpdateFileHashDoesNotMatchPrepared:return\"UPDATE_FILE_HASH_DOES_NOT_MATCH_PREPARED\";case e.ConsensusGasExhausted:return\"CONSENSUS_GAS_EXHAUSTED\";case e.RevertedSuccess:return\"REVERTED_SUCCESS\";case e.MaxStorageInPriceRegimeHasBeenUsed:return\"MAX_STORAGE_IN_PRICE_REGIME_HAS_BEEN_USED\";case e.InvalidAliasKey:return\"INVALID_ALIAS_KEY\";case e.UnexpectedTokenDecimals:return\"UNEXPECTED_TOKEN_DECIMALS\";case e.InvalidProxyAccountId:return\"INVALID_PROXY_ACCOUNT_ID\";case e.InvalidTransferAccountId:return\"INVALID_TRANSFER_ACCOUNT_ID\";case e.InvalidFeeCollectorAccountId:return\"INVALID_FEE_COLLECTOR_ACCOUNT_ID\";case e.AliasIsImmutable:return\"ALIAS_IS_IMMUTABLE\";case e.SpenderAccountSameAsOwner:return\"SPENDER_ACCOUNT_SAME_AS_OWNER\";case e.AmountExceedsTokenMaxSupply:return\"AMOUNT_EXCEEDS_TOKEN_MAX_SUPPLY\";case e.NegativeAllowanceAmount:return\"NEGATIVE_ALLOWANCE_AMOUNT\";case e.CannotApproveForAllFungibleCommon:return\"CANNOT_APPROVE_FOR_ALL_FUNGIBLE_COMMON\";case e.SpenderDoesNotHaveAllowance:return\"SPENDER_DOES_NOT_HAVE_ALLOWANCE\";case e.AmountExceedsAllowance:return\"AMOUNT_EXCEEDS_ALLOWANCE\";case e.MaxAllowancesExceeded:return\"MAX_ALLOWANCES_EXCEEDED\";case e.EmptyAllowances:return\"EMPTY_ALLOWANCES\";case e.SpenderAccountRepeatedInAllowances:return\"SPENDER_ACCOUNT_REPEATED_IN_ALLOWANCES\";case e.RepeatedSerialNumsInNftAllowances:return\"REPEATED_SERIAL_NUMS_IN_NFT_ALLOWANCES\";case e.FungibleTokenInNftAllowances:return\"FUNGIBLE_TOKEN_IN_NFT_ALLOWANCES\";case e.NftInFungibleTokenAllowances:return\"NFT_IN_FUNGIBLE_TOKEN_ALLOWANCES\";case e.InvalidAllowanceOwnerId:return\"INVALID_ALLOWANCE_OWNER_ID\";case e.InvalidAllowanceSpenderId:return\"INVALID_ALLOWANCE_SPENDER_ID\";case e.RepeatedAllowancesToDelete:return\"REPEATED_ALLOWANCES_TO_DELETE\";case e.InvalidDelegatingSpender:return\"INVALID_DELEGATING_SPENDER\";case e.DelegatingSpenderCannotGrantApproveForAll:return\"DELEGATING_SPENDER_CANNOT_GRANT_APPROVE_FOR_ALL\";case e.DelegatingSpenderDoesNotHaveApproveForAll:return\"DELEGATING_SPENDER_DOES_NOT_HAVE_APPROVE_FOR_ALL\";case e.ScheduleExpirationTimeTooFarInFuture:return\"SCHEDULE_EXPIRATION_TIME_TOO_FAR_IN_FUTURE\";case e.ScheduleExpirationTimeMustBeHigherThanConsensusTime:return\"SCHEDULE_EXPIRATION_TIME_MUST_BE_HIGHER_THAN_CONSENSUS_TIME\";case e.ScheduleFutureThrottleExceeded:return\"SCHEDULE_FUTURE_THROTTLE_EXCEEDED\";case e.ScheduleFutureGasLimitExceeded:return\"SCHEDULE_FUTURE_GAS_LIMIT_EXCEEDED\";case e.InvalidEthereumTransaction:return\"INVALID_ETHEREUM_TRANSACTION\";case e.WrongChainId:return\"WRONG_CHAIN_ID\";case e.WrongNonce:return\"WRONG_NONCE\";case e.AccessListUnsupported:return\"ACCESS_LIST_UNSUPPORTED\";case e.SchedulePendingExpiration:return\"SCHEDULE_PENDING_EXPIRATION\";case e.ContractIsTokenTreasury:return\"CONTRACT_IS_TOKEN_TREASURY\";case e.ContractHasNonZeroTokenBalances:return\"CONTRACT_HAS_NON_ZERO_TOKEN_BALANCES\";case e.ContractExpiredAndPendingRemoval:return\"CONTRACT_EXPIRED_AND_PENDING_REMOVAL\";case e.ContractHasNoAutoRenewAccount:return\"CONTRACT_HAS_NO_AUTO_RENEW_ACCOUNT\";case e.PermanentRemovalRequiresSystemInitiation:return\"PERMANENT_REMOVAL_REQUIRES_SYSTEM_INITIATION\";case e.ProxyAccountIdFieldIsDeprecated:return\"PROXY_ACCOUNT_ID_FIELD_IS_DEPRECATED\";case e.SelfStakingIsNotAllowed:return\"SELF_STAKING_IS_NOT_ALLOWED\";case e.InvalidStakingId:return\"INVALID_STAKING_ID\";case e.StakingNotEnabled:return\"STAKING_NOT_ENABLED\";case e.InvalidPrngRange:return\"INVALID_PRNG_RANGE\";case e.MaxEntitiesInPriceRegimeHaveBeenCreated:return\"MAX_ENTITIES_IN_PRICE_REGIME_HAVE_BEEN_CREATED\";case e.InvalidFullPrefixSignatureForPrecompile:return\"INVALID_FULL_PREFIX_SIGNATURE_FOR_PRECOMPILE\";case e.InsufficientBalancesForStorageRent:return\"INSUFFICIENT_BALANCES_FOR_STORAGE_RENT\";case e.MaxChildRecordsExceeded:return\"MAX_CHILD_RECORDS_EXCEEDED\";case e.InsufficientBalancesForRenewalFees:return\"INSUFFICIENT_BALANCES_FOR_RENEWAL_FEES\";case e.TransactionHasUnknownFields:return\"TRANSACTION_HAS_UNKNOWN_FIELDS\";case e.AccountIsImmutable:return\"ACCOUNT_IS_IMMUTABLE\";case e.AliasAlreadyAssigned:return\"ALIAS_ALREADY_ASSIGNED\";case e.InvalidMetadataKey:return\"INVALID_METADATA_KEY\";case e.TokenHasNoMetadataKey:return\"TOKEN_HAS_NO_METADATA_KEY\";case e.MissingTokenMetadata:return\"MISSING_TOKEN_METADATA\";case e.MissingSerialNumbers:return\"MISSING_SERIAL_NUMBERS\";case e.TokenHasNoAdminKey:return\"TOKEN_HAS_NO_ADMIN_KEY\";case e.NodeDeleted:return\"NODE_DELETED\";case e.InvalidNodeId:return\"INVALID_NODE_ID\";case e.InvalidGossipEndpoint:return\"INVALID_GOSSIP_ENDPOINT\";case e.InvalidNodeAccountId:return\"INVALID_NODE_ACCOUNT_ID\";case e.InvalidNodeDescription:return\"INVALID_NODE_DESCRIPTION\";case e.InvalidServiceEndpoint:return\"INVALID_SERVICE_ENDPOINT\";case e.InvalidGossipCaCertificate:return\"INVALID_GOSSIP_CA_CERTIFICATE\";case e.InvalidGrpcCertificate:return\"INVALID_GRPC_CERTIFICATE\";case e.InvalidMaxAutoAssociations:return\"INVALID_MAX_AUTO_ASSOCIATIONS\";case e.MaxNodesCreated:return\"MAX_NODES_CREATED\";case e.IpFqdnCannotBeSetForSameEndpoint:return\"IP_FQDN_CANNOT_BE_SET_FOR_SAME_ENDPOINT\";case e.GossipEndpointCannotHaveFqdn:return\"GOSSIP_ENDPOINT_CANNOT_HAVE_FQDN\";case e.FqdnSizeTooLarge:return\"FQDN_SIZE_TOO_LARGE\";case e.InvalidEndpoint:return\"INVALID_ENDPOINT\";case e.GossipEndpointsExceededLimit:return\"GOSSIP_ENDPOINTS_EXCEEDED_LIMIT\";case e.ServiceEndpointsExceededLimit:return\"SERVICE_ENDPOINTS_EXCEEDED_LIMIT\";case e.InvalidIpv4Address:return\"INVALID_IPV4_ADDRESS\";case e.TokenReferenceRepeated:return\"TOKEN_REFERENCE_REPEATED\";case e.InvalidOwnerId:return\"INVALID_OWNER_ID\";case e.TokenReferenceListSizeLimitExceeded:return\"TOKEN_REFERENCE_LIST_SIZE_LIMIT_EXCEEDED\";case e.EmptyTokenReferenceList:return\"EMPTY_TOKEN_REFERENCE_LIST\";case e.UpdateNodeAccountNotAllowed:return\"UPDATE_NODE_ACCOUNT_NOT_ALLOWED\";case e.TokenHasNoMetadataOrSupplyKey:return\"TOKEN_HAS_NO_METADATA_OR_SUPPLY_KEY\";case e.EmptyPendingAirdropIdList:return\"EMPTY_PENDING_AIRDROP_ID_LIST\";case e.PendingAirdropIdRepeated:return\"PENDING_AIRDROP_ID_REPEATED\";case e.MaxPendingAirdropIdExceeded:return\"PENDING_AIRDROP_ID_LIST_TOO_LONG\";case e.PendingNftAirdropAlreadyExists:return\"PENDING_NFT_AIRDROP_ALREADY_EXISTS\";case e.AccountHasPendingAirdrops:return\"ACCOUNT_HAS_PENDING_AIRDROPS\";case e.ThrottledAtConsensus:return\"THROTTLED_AT_CONSENSUS\";case e.InvalidPendingAirdropId:return\"INVALID_PENDING_AIRDROP_ID\";case e.TokenAirdropWithFallbackRoyalty:return\"TOKEN_AIRDROP_WITH_FALLBACK_ROYALTY\";case e.InvalidTokenInPendingAirdrop:return\"INVALID_TOKEN_IN_PENDING_AIRDROP\";case e.ScheduleExpiryIsBusy:return\"SCHEDULE_EXPIRY_IS_BUSY\";case e.InvalidGrpcCertificateHash:return\"INVALID_GRPC_CERTIFICATE_HASH\";case e.MissingExpiryTime:return\"MISSING_EXPIRY_TIME\";case e.NoSchedulingAllowedAfterScheduledRecursion:return\"NO_SCHEDULING_ALLOWED_AFTER_SCHEDULED_RECURSION\";case e.RecursiveSchedulingLimitReached:return\"RECURSIVE_SCHEDULING_LIMIT_REACHED\";case e.WaitingForLedgerId:return\"WAITING_FOR_LEDGER_ID\";case e.MaxEntriesForFeeExemptKeyListExceeded:return\"MAX_ENTRIES_FOR_FEE_EXEMPT_KEY_LIST_EXCEEDED\";case e.FeeExemptKeyListContainsDuplicatedKeys:return\"FEE_EXEMPT_KEY_LIST_CONTAINS_DUPLICATED_KEYS\";case e.InvalidKeyInFeeExemptKeyList:return\"INVALID_KEY_IN_FEE_EXEMPT_KEY_LIST\";case e.InvalidFeeScheduleKey:return\"INVALID_FEE_SCHEDULE_KEY\";case e.FeeScheduleKeyCannotBeUpdated:return\"FEE_SCHEDULE_KEY_CANNOT_BE_UPDATED\";case e.FeeScheduleKeyNotSet:return\"FEE_SCHEDULE_KEY_NOT_SET\";case e.MaxCustomFeeLimitExceeded:return\"MAX_CUSTOM_FEE_LIMIT_EXCEEDED\";case e.NoValidMaxCustomFee:return\"NO_VALID_MAX_CUSTOM_FEE\";case e.InvalidMaxCustomFees:return\"INVALID_MAX_CUSTOM_FEES\";case e.DuplicateDenominationInMaxCustomFeeList:return\"DUPLICATE_DENOMINATION_IN_MAX_CUSTOM_FEE_LIST\";case e.DuplicateAccountIdInMaxCustomFeeList:return\"DUPLICATE_ACCOUNT_ID_IN_MAX_CUSTOM_FEE_LIST\";case e.MaxCustomFeesIsNotSupported:return\"MAX_CUSTOM_FEES_IS_NOT_SUPPORTED\";case e.BatchListEmpty:return\"BATCH_LIST_EMPTY\";case e.BatchListContainsDuplicates:return\"BATCH_LIST_CONTAINS_DUPLICATES\";case e.BatchTransactionInBlacklist:return\"BATCH_TRANSACTION_IN_BLACKLIST\";case e.InnerTransactionFailed:return\"INNER_TRANSACTION_FAILED\";case e.MissingBatchKey:return\"MISSING_BATCH_KEY\";case e.BatchKeySetOnNonInnerTransaction:return\"BATCH_KEY_SET_ON_NON_INNER_TRANSACTION\";case e.InvalidBatchKey:return\"INVALID_BATCH_KEY\";case e.ScheduleExpiryNotConfigurable:return\"SCHEDULE_EXPIRY_NOT_CONFIGURABLE\";case e.CreatingSystemEntities:return\"CREATING_SYSTEM_ENTITIES\";case e.ThrottleGroupLcmOverflow:return\"THROTTLE_GROUP_LCM_OVERFLOW\";case e.AirdropContainsMultipleSendersForAToken:return\"AIRDROP_CONTAINS_MULTIPLE_SENDERS_FOR_A_TOKEN\";case e.GrpcWebProxyNotSupported:return\"GRPC_WEB_PROXY_NOT_SUPPORTED\";default:return`UNKNOWN (${this._code})`}}static _fromCode(n){switch(n){case 0:return e.Ok;case 1:return e.InvalidTransaction;case 2:return e.PayerAccountNotFound;case 3:return e.InvalidNodeAccount;case 4:return e.TransactionExpired;case 5:return e.InvalidTransactionStart;case 6:return e.InvalidTransactionDuration;case 7:return e.InvalidSignature;case 8:return e.MemoTooLong;case 9:return e.InsufficientTxFee;case 10:return e.InsufficientPayerBalance;case 11:return e.DuplicateTransaction;case 12:return e.Busy;case 13:return e.NotSupported;case 14:return e.InvalidFileId;case 15:return e.InvalidAccountId;case 16:return e.InvalidContractId;case 17:return e.InvalidTransactionId;case 18:return e.ReceiptNotFound;case 19:return e.RecordNotFound;case 20:return e.InvalidSolidityId;case 21:return e.Unknown;case 22:return e.Success;case 23:return e.FailInvalid;case 24:return e.FailFee;case 25:return e.FailBalance;case 26:return e.KeyRequired;case 27:return e.BadEncoding;case 28:return e.InsufficientAccountBalance;case 29:return e.InvalidSolidityAddress;case 30:return e.InsufficientGas;case 31:return e.ContractSizeLimitExceeded;case 32:return e.LocalCallModificationException;case 33:return e.ContractRevertExecuted;case 34:return e.ContractExecutionException;case 35:return e.InvalidReceivingNodeAccount;case 36:return e.MissingQueryHeader;case 37:return e.AccountUpdateFailed;case 38:return e.InvalidKeyEncoding;case 39:return e.NullSolidityAddress;case 40:return e.ContractUpdateFailed;case 41:return e.InvalidQueryHeader;case 42:return e.InvalidFeeSubmitted;case 43:return e.InvalidPayerSignature;case 44:return e.KeyNotProvided;case 45:return e.InvalidExpirationTime;case 46:return e.NoWaclKey;case 47:return e.FileContentEmpty;case 48:return e.InvalidAccountAmounts;case 49:return e.EmptyTransactionBody;case 50:return e.InvalidTransactionBody;case 51:return e.InvalidSignatureTypeMismatchingKey;case 52:return e.InvalidSignatureCountMismatchingKey;case 53:return e.EmptyLiveHashBody;case 54:return e.EmptyLiveHash;case 55:return e.EmptyLiveHashKeys;case 56:return e.InvalidLiveHashSize;case 57:return e.EmptyQueryBody;case 58:return e.EmptyLiveHashQuery;case 59:return e.LiveHashNotFound;case 60:return e.AccountIdDoesNotExist;case 61:return e.LiveHashAlreadyExists;case 62:return e.InvalidFileWacl;case 63:return e.SerializationFailed;case 64:return e.TransactionOversize;case 65:return e.TransactionTooManyLayers;case 66:return e.ContractDeleted;case 67:return e.PlatformNotActive;case 68:return e.KeyPrefixMismatch;case 69:return e.PlatformTransactionNotCreated;case 70:return e.InvalidRenewalPeriod;case 71:return e.InvalidPayerAccountId;case 72:return e.AccountDeleted;case 73:return e.FileDeleted;case 74:return e.AccountRepeatedInAccountAmounts;case 75:return e.SettingNegativeAccountBalance;case 76:return e.ObtainerRequired;case 77:return e.ObtainerSameContractId;case 78:return e.ObtainerDoesNotExist;case 79:return e.ModifyingImmutableContract;case 80:return e.FileSystemException;case 81:return e.AutorenewDurationNotInRange;case 82:return e.ErrorDecodingBytestring;case 83:return e.ContractFileEmpty;case 84:return e.ContractBytecodeEmpty;case 85:return e.InvalidInitialBalance;case 86:return e.InvalidReceiveRecordThreshold;case 87:return e.InvalidSendRecordThreshold;case 88:return e.AccountIsNotGenesisAccount;case 89:return e.PayerAccountUnauthorized;case 90:return e.InvalidFreezeTransactionBody;case 91:return e.FreezeTransactionBodyNotFound;case 92:return e.TransferListSizeLimitExceeded;case 93:return e.ResultSizeLimitExceeded;case 94:return e.NotSpecialAccount;case 95:return e.ContractNegativeGas;case 96:return e.ContractNegativeValue;case 97:return e.InvalidFeeFile;case 98:return e.InvalidExchangeRateFile;case 99:return e.InsufficientLocalCallGas;case 100:return e.EntityNotAllowedToDelete;case 101:return e.AuthorizationFailed;case 102:return e.FileUploadedProtoInvalid;case 103:return e.FileUploadedProtoNotSavedToDisk;case 104:return e.FeeScheduleFilePartUploaded;case 105:return e.ExchangeRateChangeLimitExceeded;case 106:return e.MaxContractStorageExceeded;case 107:return e.TransferAccountSameAsDeleteAccount;case 108:return e.TotalLedgerBalanceInvalid;case 110:return e.ExpirationReductionNotAllowed;case 111:return e.MaxGasLimitExceeded;case 112:return e.MaxFileSizeExceeded;case 113:return e.ReceiverSigRequired;case 150:return e.InvalidTopicId;case 155:return e.InvalidAdminKey;case 156:return e.InvalidSubmitKey;case 157:return e.Unauthorized;case 158:return e.InvalidTopicMessage;case 159:return e.InvalidAutorenewAccount;case 160:return e.AutorenewAccountNotAllowed;case 162:return e.TopicExpired;case 163:return e.InvalidChunkNumber;case 164:return e.InvalidChunkTransactionId;case 165:return e.AccountFrozenForToken;case 166:return e.TokensPerAccountLimitExceeded;case 167:return e.InvalidTokenId;case 168:return e.InvalidTokenDecimals;case 169:return e.InvalidTokenInitialSupply;case 170:return e.InvalidTreasuryAccountForToken;case 171:return e.InvalidTokenSymbol;case 172:return e.TokenHasNoFreezeKey;case 173:return e.TransfersNotZeroSumForToken;case 174:return e.MissingTokenSymbol;case 175:return e.TokenSymbolTooLong;case 176:return e.AccountKycNotGrantedForToken;case 177:return e.TokenHasNoKycKey;case 178:return e.InsufficientTokenBalance;case 179:return e.TokenWasDeleted;case 180:return e.TokenHasNoSupplyKey;case 181:return e.TokenHasNoWipeKey;case 182:return e.InvalidTokenMintAmount;case 183:return e.InvalidTokenBurnAmount;case 184:return e.TokenNotAssociatedToAccount;case 185:return e.CannotWipeTokenTreasuryAccount;case 186:return e.InvalidKycKey;case 187:return e.InvalidWipeKey;case 188:return e.InvalidFreezeKey;case 189:return e.InvalidSupplyKey;case 190:return e.MissingTokenName;case 191:return e.TokenNameTooLong;case 192:return e.InvalidWipingAmount;case 193:return e.TokenIsImmutable;case 194:return e.TokenAlreadyAssociatedToAccount;case 195:return e.TransactionRequiresZeroTokenBalances;case 196:return e.AccountIsTreasury;case 197:return e.TokenIdRepeatedInTokenList;case 198:return e.TokenTransferListSizeLimitExceeded;case 199:return e.EmptyTokenTransferBody;case 200:return e.EmptyTokenTransferAccountAmounts;case 201:return e.InvalidScheduleId;case 202:return e.ScheduleIsImmutable;case 203:return e.InvalidSchedulePayerId;case 204:return e.InvalidScheduleAccountId;case 205:return e.NoNewValidSignatures;case 206:return e.UnresolvableRequiredSigners;case 207:return e.ScheduledTransactionNotInWhitelist;case 208:return e.SomeSignaturesWereInvalid;case 209:return e.TransactionIdFieldNotAllowed;case 210:return e.IdenticalScheduleAlreadyCreated;case 211:return e.InvalidZeroByteInString;case 212:return e.ScheduleAlreadyDeleted;case 213:return e.ScheduleAlreadyExecuted;case 214:return e.MessageSizeTooLarge;case 215:return e.OperationRepeatedInBucketGroups;case 216:return e.BucketCapacityOverflow;case 217:return e.NodeCapacityNotSufficientForOperation;case 218:return e.BucketHasNoThrottleGroups;case 219:return e.ThrottleGroupHasZeroOpsPerSec;case 220:return e.SuccessButMissingExpectedOperation;case 221:return e.UnparseableThrottleDefinitions;case 222:return e.InvalidThrottleDefinitions;case 223:return e.AccountExpiredAndPendingRemoval;case 224:return e.InvalidTokenMaxSupply;case 225:return e.InvalidTokenNftSerialNumber;case 226:return e.InvalidNftId;case 227:return e.MetadataTooLong;case 228:return e.BatchSizeLimitExceeded;case 229:return e.InvalidQueryRange;case 230:return e.FractionDividesByZero;case 231:return e.InsufficientPayerBalanceForCustomFee;case 232:return e.CustomFeesListTooLong;case 233:return e.InvalidCustomFeeCollector;case 234:return e.InvalidTokenIdInCustomFees;case 235:return e.TokenNotAssociatedToFeeCollector;case 236:return e.TokenMaxSupplyReached;case 237:return e.SenderDoesNotOwnNftSerialNo;case 238:return e.CustomFeeNotFullySpecified;case 239:return e.CustomFeeMustBePositive;case 240:return e.TokenHasNoFeeScheduleKey;case 241:return e.CustomFeeOutsideNumericRange;case 242:return e.RoyaltyFractionCannotExceedOne;case 243:return e.FractionalFeeMaxAmountLessThanMinAmount;case 244:return e.CustomScheduleAlreadyHasNoFees;case 245:return e.CustomFeeDenominationMustBeFungibleCommon;case 246:return e.CustomFractionalFeeOnlyAllowedForFungibleCommon;case 247:return e.InvalidCustomFeeScheduleKey;case 248:return e.InvalidTokenMintMetadata;case 249:return e.InvalidTokenBurnMetadata;case 250:return e.CurrentTreasuryStillOwnsNfts;case 251:return e.AccountStillOwnsNfts;case 252:return e.TreasuryMustOwnBurnedNft;case 253:return e.AccountDoesNotOwnWipedNft;case 254:return e.AccountAmountTransfersOnlyAllowedForFungibleCommon;case 255:return e.MaxNftsInPriceRegimeHaveBeenMinted;case 256:return e.PayerAccountDeleted;case 257:return e.CustomFeeChargingExceededMaxRecursionDepth;case 258:return e.CustomFeeChargingExceededMaxAccountAmounts;case 259:return e.InsufficientSenderAccountBalanceForCustomFee;case 260:return e.SerialNumberLimitReached;case 261:return e.CustomRoyaltyFeeOnlyAllowedForNonFungibleUnique;case 262:return e.NoRemainingAutomaticAssociations;case 263:return e.ExistingAutomaticAssociationsExceedGivenLimit;case 264:return e.RequestedNumAutomaticAssociationsExceedsAssociationLimit;case 265:return e.TokenIsPaused;case 266:return e.TokenHasNoPauseKey;case 267:return e.InvalidPauseKey;case 268:return e.FreezeUpdateFileDoesNotExist;case 269:return e.FreezeUpdateFileHashDoesNotMatch;case 270:return e.NoUpgradeHasBeenPrepared;case 271:return e.NoFreezeIsScheduled;case 272:return e.UpdateFileHashChangedSincePrepareUpgrade;case 273:return e.FreezeStartTimeMustBeFuture;case 274:return e.PreparedUpdateFileIsImmutable;case 275:return e.FreezeAlreadyScheduled;case 276:return e.FreezeUpgradeInProgress;case 277:return e.UpdateFileIdDoesNotMatchPrepared;case 278:return e.UpdateFileHashDoesNotMatchPrepared;case 279:return e.ConsensusGasExhausted;case 280:return e.RevertedSuccess;case 281:return e.MaxStorageInPriceRegimeHasBeenUsed;case 282:return e.InvalidAliasKey;case 283:return e.UnexpectedTokenDecimals;case 284:return e.InvalidProxyAccountId;case 285:return e.InvalidTransferAccountId;case 286:return e.InvalidFeeCollectorAccountId;case 287:return e.AliasIsImmutable;case 288:return e.SpenderAccountSameAsOwner;case 289:return e.AmountExceedsTokenMaxSupply;case 290:return e.NegativeAllowanceAmount;case 291:return e.CannotApproveForAllFungibleCommon;case 292:return e.SpenderDoesNotHaveAllowance;case 293:return e.AmountExceedsAllowance;case 294:return e.MaxAllowancesExceeded;case 295:return e.EmptyAllowances;case 296:return e.SpenderAccountRepeatedInAllowances;case 297:return e.RepeatedSerialNumsInNftAllowances;case 298:return e.FungibleTokenInNftAllowances;case 299:return e.NftInFungibleTokenAllowances;case 300:return e.InvalidAllowanceOwnerId;case 301:return e.InvalidAllowanceSpenderId;case 302:return e.RepeatedAllowancesToDelete;case 303:return e.InvalidDelegatingSpender;case 304:return e.DelegatingSpenderCannotGrantApproveForAll;case 305:return e.DelegatingSpenderDoesNotHaveApproveForAll;case 306:return e.ScheduleExpirationTimeTooFarInFuture;case 307:return e.ScheduleExpirationTimeMustBeHigherThanConsensusTime;case 308:return e.ScheduleFutureThrottleExceeded;case 309:return e.ScheduleFutureGasLimitExceeded;case 310:return e.InvalidEthereumTransaction;case 311:return e.WrongChainId;case 312:return e.WrongNonce;case 313:return e.AccessListUnsupported;case 314:return e.SchedulePendingExpiration;case 315:return e.ContractIsTokenTreasury;case 316:return e.ContractHasNonZeroTokenBalances;case 317:return e.ContractExpiredAndPendingRemoval;case 318:return e.ContractHasNoAutoRenewAccount;case 319:return e.PermanentRemovalRequiresSystemInitiation;case 320:return e.ProxyAccountIdFieldIsDeprecated;case 321:return e.SelfStakingIsNotAllowed;case 322:return e.InvalidStakingId;case 323:return e.StakingNotEnabled;case 324:return e.InvalidPrngRange;case 325:return e.MaxEntitiesInPriceRegimeHaveBeenCreated;case 326:return e.InvalidFullPrefixSignatureForPrecompile;case 327:return e.InsufficientBalancesForStorageRent;case 328:return e.MaxChildRecordsExceeded;case 329:return e.InsufficientBalancesForRenewalFees;case 330:return e.TransactionHasUnknownFields;case 331:return e.AccountIsImmutable;case 332:return e.AliasAlreadyAssigned;case 333:return e.InvalidMetadataKey;case 334:return e.TokenHasNoMetadataKey;case 335:return e.MissingTokenMetadata;case 336:return e.MissingSerialNumbers;case 337:return e.TokenHasNoAdminKey;case 338:return e.NodeDeleted;case 339:return e.InvalidNodeId;case 340:return e.InvalidGossipEndpoint;case 341:return e.InvalidNodeAccountId;case 342:return e.InvalidNodeDescription;case 343:return e.InvalidServiceEndpoint;case 344:return e.InvalidGossipCaCertificate;case 345:return e.InvalidGrpcCertificate;case 346:return e.InvalidMaxAutoAssociations;case 347:return e.MaxNodesCreated;case 348:return e.IpFqdnCannotBeSetForSameEndpoint;case 349:return e.GossipEndpointCannotHaveFqdn;case 350:return e.FqdnSizeTooLarge;case 351:return e.InvalidEndpoint;case 352:return e.GossipEndpointsExceededLimit;case 353:return e.TokenReferenceRepeated;case 354:return e.InvalidOwnerId;case 355:return e.TokenReferenceListSizeLimitExceeded;case 356:return e.ServiceEndpointsExceededLimit;case 357:return e.InvalidIpv4Address;case 358:return e.EmptyTokenReferenceList;case 359:return e.UpdateNodeAccountNotAllowed;case 360:return e.TokenHasNoMetadataOrSupplyKey;case 361:return e.EmptyPendingAirdropIdList;case 362:return e.PendingAirdropIdRepeated;case 363:return e.MaxPendingAirdropIdExceeded;case 364:return e.PendingNftAirdropAlreadyExists;case 365:return e.AccountHasPendingAirdrops;case 366:return e.ThrottledAtConsensus;case 367:return e.InvalidPendingAirdropId;case 368:return e.TokenAirdropWithFallbackRoyalty;case 369:return e.InvalidTokenInPendingAirdrop;case 370:return e.ScheduleExpiryIsBusy;case 371:return e.InvalidGrpcCertificateHash;case 372:return e.MissingExpiryTime;case 373:return e.NoSchedulingAllowedAfterScheduledRecursion;case 374:return e.RecursiveSchedulingLimitReached;case 375:return e.WaitingForLedgerId;case 376:return e.MaxEntriesForFeeExemptKeyListExceeded;case 377:return e.FeeExemptKeyListContainsDuplicatedKeys;case 378:return e.InvalidKeyInFeeExemptKeyList;case 379:return e.InvalidFeeScheduleKey;case 380:return e.FeeScheduleKeyCannotBeUpdated;case 381:return e.FeeScheduleKeyNotSet;case 382:return e.MaxCustomFeeLimitExceeded;case 383:return e.NoValidMaxCustomFee;case 384:return e.InvalidMaxCustomFees;case 385:return e.DuplicateDenominationInMaxCustomFeeList;case 386:return e.DuplicateAccountIdInMaxCustomFeeList;case 387:return e.MaxCustomFeesIsNotSupported;case 388:return e.BatchListEmpty;case 389:return e.BatchListContainsDuplicates;case 390:return e.BatchTransactionInBlacklist;case 391:return e.InnerTransactionFailed;case 392:return e.MissingBatchKey;case 393:return e.BatchKeySetOnNonInnerTransaction;case 394:return e.InvalidBatchKey;case 395:return e.ScheduleExpiryNotConfigurable;case 396:return e.CreatingSystemEntities;case 397:return e.ThrottleGroupLcmOverflow;case 398:return e.AirdropContainsMultipleSendersForAToken;case 399:return e.GrpcWebProxyNotSupported;default:throw new Error(`(BUG) Status.fromCode() does not handle code: ${n}`)}}valueOf(){return this._code}}e.Ok=new e(0),e.InvalidTransaction=new e(1),e.PayerAccountNotFound=new e(2),e.InvalidNodeAccount=new e(3),e.TransactionExpired=new e(4),e.InvalidTransactionStart=new e(5),e.InvalidTransactionDuration=new e(6),e.InvalidSignature=new e(7),e.MemoTooLong=new e(8),e.InsufficientTxFee=new e(9),e.InsufficientPayerBalance=new e(10),e.DuplicateTransaction=new e(11),e.Busy=new e(12),e.NotSupported=new e(13),e.InvalidFileId=new e(14),e.InvalidAccountId=new e(15),e.InvalidContractId=new e(16),e.InvalidTransactionId=new e(17),e.ReceiptNotFound=new e(18),e.RecordNotFound=new e(19),e.InvalidSolidityId=new e(20),e.Unknown=new e(21),e.Success=new e(22),e.FailInvalid=new e(23),e.FailFee=new e(24),e.FailBalance=new e(25),e.KeyRequired=new e(26),e.BadEncoding=new e(27),e.InsufficientAccountBalance=new e(28),e.InvalidSolidityAddress=new e(29),e.InsufficientGas=new e(30),e.ContractSizeLimitExceeded=new e(31),e.LocalCallModificationException=new e(32),e.ContractRevertExecuted=new e(33),e.ContractExecutionException=new e(34),e.InvalidReceivingNodeAccount=new e(35),e.MissingQueryHeader=new e(36),e.AccountUpdateFailed=new e(37),e.InvalidKeyEncoding=new e(38),e.NullSolidityAddress=new e(39),e.ContractUpdateFailed=new e(40),e.InvalidQueryHeader=new e(41),e.InvalidFeeSubmitted=new e(42),e.InvalidPayerSignature=new e(43),e.KeyNotProvided=new e(44),e.InvalidExpirationTime=new e(45),e.NoWaclKey=new e(46),e.FileContentEmpty=new e(47),e.InvalidAccountAmounts=new e(48),e.EmptyTransactionBody=new e(49),e.InvalidTransactionBody=new e(50),e.InvalidSignatureTypeMismatchingKey=new e(51),e.InvalidSignatureCountMismatchingKey=new e(52),e.EmptyLiveHashBody=new e(53),e.EmptyLiveHash=new e(54),e.EmptyLiveHashKeys=new e(55),e.InvalidLiveHashSize=new e(56),e.EmptyQueryBody=new e(57),e.EmptyLiveHashQuery=new e(58),e.LiveHashNotFound=new e(59),e.AccountIdDoesNotExist=new e(60),e.LiveHashAlreadyExists=new e(61),e.InvalidFileWacl=new e(62),e.SerializationFailed=new e(63),e.TransactionOversize=new e(64),e.TransactionTooManyLayers=new e(65),e.ContractDeleted=new e(66),e.PlatformNotActive=new e(67),e.KeyPrefixMismatch=new e(68),e.PlatformTransactionNotCreated=new e(69),e.InvalidRenewalPeriod=new e(70),e.InvalidPayerAccountId=new e(71),e.AccountDeleted=new e(72),e.FileDeleted=new e(73),e.AccountRepeatedInAccountAmounts=new e(74),e.SettingNegativeAccountBalance=new e(75),e.ObtainerRequired=new e(76),e.ObtainerSameContractId=new e(77),e.ObtainerDoesNotExist=new e(78),e.ModifyingImmutableContract=new e(79),e.FileSystemException=new e(80),e.AutorenewDurationNotInRange=new e(81),e.ErrorDecodingBytestring=new e(82),e.ContractFileEmpty=new e(83),e.ContractBytecodeEmpty=new e(84),e.InvalidInitialBalance=new e(85),e.InvalidReceiveRecordThreshold=new e(86),e.InvalidSendRecordThreshold=new e(87),e.AccountIsNotGenesisAccount=new e(88),e.PayerAccountUnauthorized=new e(89),e.InvalidFreezeTransactionBody=new e(90),e.FreezeTransactionBodyNotFound=new e(91),e.TransferListSizeLimitExceeded=new e(92),e.ResultSizeLimitExceeded=new e(93),e.NotSpecialAccount=new e(94),e.ContractNegativeGas=new e(95),e.ContractNegativeValue=new e(96),e.InvalidFeeFile=new e(97),e.InvalidExchangeRateFile=new e(98),e.InsufficientLocalCallGas=new e(99),e.EntityNotAllowedToDelete=new e(100),e.AuthorizationFailed=new e(101),e.FileUploadedProtoInvalid=new e(102),e.FileUploadedProtoNotSavedToDisk=new e(103),e.FeeScheduleFilePartUploaded=new e(104),e.ExchangeRateChangeLimitExceeded=new e(105),e.MaxContractStorageExceeded=new e(106),e.TransferAccountSameAsDeleteAccount=new e(107),e.TotalLedgerBalanceInvalid=new e(108),e.ExpirationReductionNotAllowed=new e(110),e.MaxGasLimitExceeded=new e(111),e.MaxFileSizeExceeded=new e(112),e.ReceiverSigRequired=new e(113),e.InvalidTopicId=new e(150),e.InvalidAdminKey=new e(155),e.InvalidSubmitKey=new e(156),e.Unauthorized=new e(157),e.InvalidTopicMessage=new e(158),e.InvalidAutorenewAccount=new e(159),e.AutorenewAccountNotAllowed=new e(160),e.TopicExpired=new e(162),e.InvalidChunkNumber=new e(163),e.InvalidChunkTransactionId=new e(164),e.AccountFrozenForToken=new e(165),e.TokensPerAccountLimitExceeded=new e(166),e.InvalidTokenId=new e(167),e.InvalidTokenDecimals=new e(168),e.InvalidTokenInitialSupply=new e(169),e.InvalidTreasuryAccountForToken=new e(170),e.InvalidTokenSymbol=new e(171),e.TokenHasNoFreezeKey=new e(172),e.TransfersNotZeroSumForToken=new e(173),e.MissingTokenSymbol=new e(174),e.TokenSymbolTooLong=new e(175),e.AccountKycNotGrantedForToken=new e(176),e.TokenHasNoKycKey=new e(177),e.InsufficientTokenBalance=new e(178),e.TokenWasDeleted=new e(179),e.TokenHasNoSupplyKey=new e(180),e.TokenHasNoWipeKey=new e(181),e.InvalidTokenMintAmount=new e(182),e.InvalidTokenBurnAmount=new e(183),e.TokenNotAssociatedToAccount=new e(184),e.CannotWipeTokenTreasuryAccount=new e(185),e.InvalidKycKey=new e(186),e.InvalidWipeKey=new e(187),e.InvalidFreezeKey=new e(188),e.InvalidSupplyKey=new e(189),e.MissingTokenName=new e(190),e.TokenNameTooLong=new e(191),e.InvalidWipingAmount=new e(192),e.TokenIsImmutable=new e(193),e.TokenAlreadyAssociatedToAccount=new e(194),e.TransactionRequiresZeroTokenBalances=new e(195),e.AccountIsTreasury=new e(196),e.TokenIdRepeatedInTokenList=new e(197),e.TokenTransferListSizeLimitExceeded=new e(198),e.EmptyTokenTransferBody=new e(199),e.EmptyTokenTransferAccountAmounts=new e(200),e.InvalidScheduleId=new e(201),e.ScheduleIsImmutable=new e(202),e.InvalidSchedulePayerId=new e(203),e.InvalidScheduleAccountId=new e(204),e.NoNewValidSignatures=new e(205),e.UnresolvableRequiredSigners=new e(206),e.ScheduledTransactionNotInWhitelist=new e(207),e.SomeSignaturesWereInvalid=new e(208),e.TransactionIdFieldNotAllowed=new e(209),e.IdenticalScheduleAlreadyCreated=new e(210),e.InvalidZeroByteInString=new e(211),e.ScheduleAlreadyDeleted=new e(212),e.ScheduleAlreadyExecuted=new e(213),e.MessageSizeTooLarge=new e(214),e.OperationRepeatedInBucketGroups=new e(215),e.BucketCapacityOverflow=new e(216),e.NodeCapacityNotSufficientForOperation=new e(217),e.BucketHasNoThrottleGroups=new e(218),e.ThrottleGroupHasZeroOpsPerSec=new e(219),e.SuccessButMissingExpectedOperation=new e(220),e.UnparseableThrottleDefinitions=new e(221),e.InvalidThrottleDefinitions=new e(222),e.AccountExpiredAndPendingRemoval=new e(223),e.InvalidTokenMaxSupply=new e(224),e.InvalidTokenNftSerialNumber=new e(225),e.InvalidNftId=new e(226),e.MetadataTooLong=new e(227),e.BatchSizeLimitExceeded=new e(228),e.InvalidQueryRange=new e(229),e.FractionDividesByZero=new e(230),e.InsufficientPayerBalanceForCustomFee=new e(231),e.CustomFeesListTooLong=new e(232),e.InvalidCustomFeeCollector=new e(233),e.InvalidTokenIdInCustomFees=new e(234),e.TokenNotAssociatedToFeeCollector=new e(235),e.TokenMaxSupplyReached=new e(236),e.SenderDoesNotOwnNftSerialNo=new e(237),e.CustomFeeNotFullySpecified=new e(238),e.CustomFeeMustBePositive=new e(239),e.TokenHasNoFeeScheduleKey=new e(240),e.CustomFeeOutsideNumericRange=new e(241),e.RoyaltyFractionCannotExceedOne=new e(242),e.FractionalFeeMaxAmountLessThanMinAmount=new e(243),e.CustomScheduleAlreadyHasNoFees=new e(244),e.CustomFeeDenominationMustBeFungibleCommon=new e(245),e.CustomFractionalFeeOnlyAllowedForFungibleCommon=new e(246),e.InvalidCustomFeeScheduleKey=new e(247),e.InvalidTokenMintMetadata=new e(248),e.InvalidTokenBurnMetadata=new e(249),e.CurrentTreasuryStillOwnsNfts=new e(250),e.AccountStillOwnsNfts=new e(251),e.TreasuryMustOwnBurnedNft=new e(252),e.AccountDoesNotOwnWipedNft=new e(253),e.AccountAmountTransfersOnlyAllowedForFungibleCommon=new e(254),e.MaxNftsInPriceRegimeHaveBeenMinted=new e(255),e.PayerAccountDeleted=new e(256),e.CustomFeeChargingExceededMaxRecursionDepth=new e(257),e.CustomFeeChargingExceededMaxAccountAmounts=new e(258),e.InsufficientSenderAccountBalanceForCustomFee=new e(259),e.SerialNumberLimitReached=new e(260),e.CustomRoyaltyFeeOnlyAllowedForNonFungibleUnique=new e(261),e.NoRemainingAutomaticAssociations=new e(262),e.ExistingAutomaticAssociationsExceedGivenLimit=new e(263),e.RequestedNumAutomaticAssociationsExceedsAssociationLimit=new e(264),e.TokenIsPaused=new e(265),e.TokenHasNoPauseKey=new e(266),e.InvalidPauseKey=new e(267),e.FreezeUpdateFileDoesNotExist=new e(268),e.FreezeUpdateFileHashDoesNotMatch=new e(269),e.NoUpgradeHasBeenPrepared=new e(270),e.NoFreezeIsScheduled=new e(271),e.UpdateFileHashChangedSincePrepareUpgrade=new e(272),e.FreezeStartTimeMustBeFuture=new e(273),e.PreparedUpdateFileIsImmutable=new e(274),e.FreezeAlreadyScheduled=new e(275),e.FreezeUpgradeInProgress=new e(276),e.UpdateFileIdDoesNotMatchPrepared=new e(277),e.UpdateFileHashDoesNotMatchPrepared=new e(278),e.ConsensusGasExhausted=new e(279),e.RevertedSuccess=new e(280),e.MaxStorageInPriceRegimeHasBeenUsed=new e(281),e.InvalidAliasKey=new e(282),e.UnexpectedTokenDecimals=new e(283),e.InvalidProxyAccountId=new e(284),e.InvalidTransferAccountId=new e(285),e.InvalidFeeCollectorAccountId=new e(286),e.AliasIsImmutable=new e(287),e.SpenderAccountSameAsOwner=new e(288),e.AmountExceedsTokenMaxSupply=new e(289),e.NegativeAllowanceAmount=new e(290),e.CannotApproveForAllFungibleCommon=new e(291),e.SpenderDoesNotHaveAllowance=new e(292),e.AmountExceedsAllowance=new e(293),e.MaxAllowancesExceeded=new e(294),e.EmptyAllowances=new e(295),e.SpenderAccountRepeatedInAllowances=new e(296),e.RepeatedSerialNumsInNftAllowances=new e(297),e.FungibleTokenInNftAllowances=new e(298),e.NftInFungibleTokenAllowances=new e(299),e.InvalidAllowanceOwnerId=new e(300),e.InvalidAllowanceSpenderId=new e(301),e.RepeatedAllowancesToDelete=new e(302),e.InvalidDelegatingSpender=new e(303),e.DelegatingSpenderCannotGrantApproveForAll=new e(304),e.DelegatingSpenderDoesNotHaveApproveForAll=new e(305),e.ScheduleExpirationTimeTooFarInFuture=new e(306),e.ScheduleExpirationTimeMustBeHigherThanConsensusTime=new e(307),e.ScheduleFutureThrottleExceeded=new e(308),e.ScheduleFutureGasLimitExceeded=new e(309),e.InvalidEthereumTransaction=new e(310),e.WrongChainId=new e(311),e.WrongNonce=new e(312),e.AccessListUnsupported=new e(313),e.SchedulePendingExpiration=new e(314),e.ContractIsTokenTreasury=new e(315),e.ContractHasNonZeroTokenBalances=new e(316),e.ContractExpiredAndPendingRemoval=new e(317),e.ContractHasNoAutoRenewAccount=new e(318),e.PermanentRemovalRequiresSystemInitiation=new e(319),e.ProxyAccountIdFieldIsDeprecated=new e(320),e.SelfStakingIsNotAllowed=new e(321),e.InvalidStakingId=new e(322),e.StakingNotEnabled=new e(323),e.InvalidPrngRange=new e(324),e.MaxEntitiesInPriceRegimeHaveBeenCreated=new e(325),e.InvalidFullPrefixSignatureForPrecompile=new e(326),e.InsufficientBalancesForStorageRent=new e(327),e.MaxChildRecordsExceeded=new e(328),e.InsufficientBalancesForRenewalFees=new e(329),e.TransactionHasUnknownFields=new e(330),e.AccountIsImmutable=new e(331),e.AliasAlreadyAssigned=new e(332),e.InvalidMetadataKey=new e(333),e.TokenHasNoMetadataKey=new e(334),e.MissingTokenMetadata=new e(335),e.MissingSerialNumbers=new e(336),e.TokenHasNoAdminKey=new e(337),e.NodeDeleted=new e(338),e.InvalidNodeId=new e(339),e.InvalidGossipEndpoint=new e(340),e.InvalidNodeAccountId=new e(341),e.InvalidNodeDescription=new e(342),e.InvalidServiceEndpoint=new e(343),e.InvalidGossipCaCertificate=new e(344),e.InvalidGrpcCertificate=new e(345),e.InvalidMaxAutoAssociations=new e(346),e.MaxNodesCreated=new e(347),e.IpFqdnCannotBeSetForSameEndpoint=new e(348),e.GossipEndpointCannotHaveFqdn=new e(349),e.FqdnSizeTooLarge=new e(350),e.InvalidEndpoint=new e(351),e.GossipEndpointsExceededLimit=new e(352),e.TokenReferenceRepeated=new e(353),e.InvalidOwnerId=new e(354),e.TokenReferenceListSizeLimitExceeded=new e(355),e.ServiceEndpointsExceededLimit=new e(356),e.InvalidIpv4Address=new e(357),e.EmptyTokenReferenceList=new e(358),e.UpdateNodeAccountNotAllowed=new e(359),e.TokenHasNoMetadataOrSupplyKey=new e(360),e.EmptyPendingAirdropIdList=new e(361),e.PendingAirdropIdRepeated=new e(362),e.MaxPendingAirdropIdExceeded=new e(363),e.PendingNftAirdropAlreadyExists=new e(364),e.AccountHasPendingAirdrops=new e(365),e.ThrottledAtConsensus=new e(366),e.InvalidPendingAirdropId=new e(367),e.TokenAirdropWithFallbackRoyalty=new e(368),e.InvalidTokenInPendingAirdrop=new e(369),e.ScheduleExpiryIsBusy=new e(370),e.InvalidGrpcCertificateHash=new e(371),e.MissingExpiryTime=new e(372),e.NoSchedulingAllowedAfterScheduledRecursion=new e(373),e.RecursiveSchedulingLimitReached=new e(374),e.WaitingForLedgerId=new e(375),e.MaxEntriesForFeeExemptKeyListExceeded=new e(376),e.FeeExemptKeyListContainsDuplicatedKeys=new e(377),e.InvalidKeyInFeeExemptKeyList=new e(378),e.InvalidFeeScheduleKey=new e(379),e.FeeScheduleKeyCannotBeUpdated=new e(380),e.FeeScheduleKeyNotSet=new e(381),e.MaxCustomFeeLimitExceeded=new e(382),e.NoValidMaxCustomFee=new e(383),e.InvalidMaxCustomFees=new e(384),e.DuplicateDenominationInMaxCustomFeeList=new e(385),e.DuplicateAccountIdInMaxCustomFeeList=new e(386),e.MaxCustomFeesIsNotSupported=new e(387),e.BatchListEmpty=new e(388),e.BatchListContainsDuplicates=new e(389),e.BatchTransactionInBlacklist=new e(390),e.InnerTransactionFailed=new e(391),e.MissingBatchKey=new e(392),e.BatchKeySetOnNonInnerTransaction=new e(393),e.InvalidBatchKey=new e(394),e.ScheduleExpiryNotConfigurable=new e(395),e.CreatingSystemEntities=new e(396),e.ThrottleGroupLcmOverflow=new e(397),e.AirdropContainsMultipleSendersForAToken=new e(398),e.GrpcWebProxyNotSupported=new e(399);export{e as default};\n//# sourceMappingURL=Status.js.map\n","class e{constructor(e){this._code=e,Object.freeze(this)}static _fromValue(n){switch(n){case 0:return e.Ok;case 1:return e.Cancelled;case 2:return e.Unknown;case 3:return e.InvalidArgument;case 4:return e.DeadlineExceeded;case 5:return e.NotFound;case 6:return e.AlreadyExists;case 7:return e.PermissionDenied;case 8:return e.ResourceExhausted;case 9:return e.FailedPrecondition;case 10:return e.Aborted;case 11:return e.OutOfRange;case 12:return e.Unimplemented;case 13:return e.Internal;case 14:return e.Unavailable;case 15:return e.DataLoss;case 16:return e.Unauthenticated;case 17:return e.Timeout;case 18:return e.GrpcWeb;default:throw new Error(\"(BUG) non-exhaustive GrpcStatus switch statement\")}}toString(){switch(this){case e.Ok:return\"OK\";case e.Cancelled:return\"CANCELLED\";case e.Unknown:return\"UNKNOWN\";case e.InvalidArgument:return\"INVALID_ARGUMENT\";case e.DeadlineExceeded:return\"DEADLINE_EXCEEDED\";case e.NotFound:return\"NOT_FOUND\";case e.AlreadyExists:return\"ALREADY_EXISTS\";case e.PermissionDenied:return\"PERMISSION_DENIED\";case e.Unauthenticated:return\"UNAUTHENTICATED\";case e.ResourceExhausted:return\"RESOURCE_EXHAUSTED\";case e.FailedPrecondition:return\"FAILED_PRECONDITION\";case e.Aborted:return\"ABORTED\";case e.OutOfRange:return\"OUT_OF_RANGE\";case e.Unimplemented:return\"UNIMPLEMENTED\";case e.Internal:return\"INTERNAL\";case e.Unavailable:return\"UNAVAILABLE\";case e.DataLoss:return\"DATA_LOSS\";case e.Timeout:return\"TIMEOUT\";case e.GrpcWeb:return\"GRPC_WEB\";default:return`UNKNOWN (${this._code})`}}valueOf(){return this._code}}e.Ok=new e(0),e.Cancelled=new e(1),e.Unknown=new e(2),e.InvalidArgument=new e(3),e.DeadlineExceeded=new e(4),e.NotFound=new e(5),e.AlreadyExists=new e(6),e.PermissionDenied=new e(7),e.ResourceExhausted=new e(8),e.FailedPrecondition=new e(9),e.Aborted=new e(10),e.OutOfRange=new e(11),e.Unimplemented=new e(12),e.Internal=new e(13),e.Unavailable=new e(14),e.DataLoss=new e(15),e.Unauthenticated=new e(16),e.Timeout=new e(17),e.GrpcWeb=new e(18);export{e as default};\n//# sourceMappingURL=GrpcStatus.js.map\n","import t from\"./GrpcStatus.js\";class r extends Error{constructor(t,e){super(`gRPC service failed with: Status: ${t.toString()}, Code: ${t.valueOf()}`),this.status=t,this.nodeAccountId=e,this.name=\"GrpcServiceError\",void 0!==Error.captureStackTrace&&Error.captureStackTrace(this,r)}static _fromResponse(e){if(null!=e.code&&null!=e.details){const s=t._fromValue(e.code),a=new r(s);return a.stack+=`\\nCaused by: ${e.stack?e.stack.toString():\"\"}`,a.message+=`: ${e.details}`,a}return e}toString(){return`${this.name}: ${this.message}`}}export{r as default};\n//# sourceMappingURL=GrpcServiceError.js.map\n","class r extends Error{constructor(t){super(`failed with error code: ${t.toString()}`),this.status=t,this.name=\"HttpError\",void 0!==Error.captureStackTrace&&Error.captureStackTrace(this,r)}}export{r as default};\n//# sourceMappingURL=HttpError.js.map\n","class t extends Error{constructor(t,e){super(t),this.nodeAccountId=e}toJSON(){return{message:this.message,nodeAccountId:this.nodeAccountId}}toString(){return JSON.stringify(this.toJSON())}valueOf(){return this.toJSON()}}export{t as default};\n//# sourceMappingURL=MaxAttemptsOrTimeoutError.js.map\n","import t from\"./grpc/GrpcServiceError.js\";import e from\"./grpc/GrpcStatus.js\";import o from\"./transaction/List.js\";import{encode as n}from\"./encoding/hex.js\";import r from\"./http/HttpError.js\";import s from\"./Status.js\";import i from\"./MaxAttemptsOrTimeoutError.js\";const c={Finished:\"Finished\",Retry:\"Retry\",Error:\"Error\"},a=/\\brst[^0-9a-zA-Z]stream\\b/i,h=10;class u{constructor(){this._maxAttempts=10,this._nodeAccountIds=new o,this.transactionNodeIds=[],this._signOnDemand=!1,this._minBackoff=null,this._maxBackoff=8e3,this._operator=null,this._requestTimeout=null,this._grpcDeadline=null,this._logger=null}get nodeAccountIds(){return this._nodeAccountIds.isEmpty?null:(this._nodeAccountIds.setLocked(),this._nodeAccountIds.list)}setNodeAccountIds(t){return this._nodeAccountIds.setList(t).setLocked(),this}get maxRetries(){return console.warn(\"Deprecated: use maxAttempts instead\"),this.maxAttempts}setMaxRetries(t){return console.warn(\"Deprecated: use setMaxAttempts() instead\"),this.setMaxAttempts(t)}get maxAttempts(){return this._maxAttempts}setMaxAttempts(t){return this._maxAttempts=t,this}get grpcDeadline(){return this._grpcDeadline}setGrpcDeadline(t){return this._grpcDeadline=t,this}setMinBackoff(t){if(null==t)throw new Error(\"minBackoff cannot be null.\");if(null!=this._maxBackoff&&t>this._maxBackoff)throw new Error(\"minBackoff cannot be larger than maxBackoff.\");return this._minBackoff=t,this}get minBackoff(){return this._minBackoff}setMaxBackoff(t){if(null==t)throw new Error(\"maxBackoff cannot be null.\");if(null!=this._minBackoff&&tt.toString()));if(!this.transactionNodeIds.some((e=>t.includes(e)))){const e=t.length>2?`${t.slice(0,2).join(\", \")} ...`:t.join(\", \"),o=1===t.length;throw new Error(`Attempting to execute a transaction against node${o?\"\":\"s\"} ${e}, which ${o?\"is\":\"are\"} not included in the Client's node list. Please review your Client configuration.`)}}for(let o=1;o<=m;o+=1){if(null!=this._requestTimeout&&h+this._requestTimeout<=Date.now())throw new i(\"timeout exceeded\",this._nodeAccountIds.isEmpty?\"No node account ID set\":this._nodeAccountIds.current.toString());let g,_;if(this._nodeAccountIds.isEmpty?(_=e._network.getNode(),g=_.accountId,this._nodeAccountIds.setList([g])):(g=this._nodeAccountIds.current,_=e._network.getNode(g)),null==_)throw new Error(`NodeAccountId not recognized: ${g.toString()}`);if(this.transactionNodeIds.length){if(!this.transactionNodeIds.includes(g.toString())){console.error(`Attempting to execute a transaction against node ${g.toString()}, which is not included in the Client's node list. Please review your Client configuration.`),this._nodeAccountIds.advance();continue}}const f=this._getLogId();this._logger&&this._logger.debug(`[${f}] Node AccountID: ${_.accountId.toString()}, IP: ${_.address.toString()}`);const p=_.getChannel(),w=await this._makeRequestAsync();let x;if(!_.isHealthy()){const t=this._nodeAccountIds.index===this._nodeAccountIds.list.length-1;if(d(w)||a){await l(a,o,this._minBackoff,this._maxBackoff);continue}if(t||this._nodeAccountIds.length<=1)throw new Error(`Network connectivity issue: All nodes are unhealthy. Original node list: ${this._nodeAccountIds.list.join(\", \")}`);this._logger&&this._logger.debug(`[${f}] Node is not healthy, trying the next node.`),this._nodeAccountIds.advance();continue}this._nodeAccountIds.advance();try{const t=[];null!=this._grpcDeadline&&t.push(new Promise(((t,e)=>setTimeout((()=>e(new Error(\"grpc deadline exceeded\"))),this._grpcDeadline)))),this._logger&&this._logger.trace(`[${this._getLogId()}] sending protobuf ${n(this._requestToBytes(w))}`),t.push(this._execute(p,w)),x=await Promise.race(t)}catch(n){const s=t._fromResponse(n);if(u=s,this._logger&&this._logger.debug(`[${f}] received error ${JSON.stringify(s)}`),(s instanceof t||s instanceof r)&&this._shouldRetryExceptionally(s)&&o<=m){this._logger&&this._logger.debug(`[${this._getLogId()}] node with accountId: ${_.accountId.toString()} and proxy IP: ${_.address.toString()} is unhealthy`),e._network.increaseBackoff(_);continue}throw n}this._logger&&this._logger.trace(`[${this._getLogId()}] sending protobuf ${n(this._responseToBytes(x))}`),e._network.decreaseBackoff(_);const[k,A]=this._shouldRetry(w,x);switch(k.toString()!==s.Ok.toString()&&k.toString()!==s.Success.toString()&&(u=k),A){case c.Retry:await l(a,o,this._minBackoff,this._maxBackoff);continue;case c.Finished:return this._mapResponse(x,g,w);case c.Error:throw this._mapStatusError(w,x,g);default:throw new Error(\"(BUG) non-exhaustive switch statement for `ExecutionState`\")}}throw new i(`max attempts of ${m.toString()} was reached for request with last error being: ${null!=u?u.toString():\"\"}`,this._nodeAccountIds.current.toString())}toBytes(){throw new Error(\"not implemented\")}setLogger(t){return this._logger=t,this}get logger(){return this._logger}}function d(t){return\"object\"==typeof t&&null!==t&&(\"transactionGetReceipt\"in t||\"transactionGetRecord\"in t)}function l(t,e,o,n){if(t)return new Promise((t=>setTimeout(t,o)));const r=Math.min(Math.floor(o*Math.pow(2,e)),n);return new Promise((t=>setTimeout(t,r)))}export{h as DEFAULT_MAX_ATTEMPTS,c as ExecutionState,a as RST_STREAM,u as default};\n//# sourceMappingURL=Executable.js.map\n","import t from\"./StatusError.js\";class n extends t{constructor(t){super(t,`transaction ${t.transactionId.toString()} failed precheck with status ${t.status.toString()} against node account id ${t.nodeId.toString()}`),this.contractFunctionResult=t.contractFunctionResult,this.nodeId=t.nodeId}toJSON(){return{name:this.name,status:this.status.toString(),transactionId:this.transactionId.toString(),nodeId:this.nodeId.toString(),message:this.message,contractFunctionResult:this.contractFunctionResult}}}export{n as default};\n//# sourceMappingURL=PrecheckStatusError.js.map\n","class e extends Error{constructor(e,t){super(),this.message=`query cost of ${e.toString()} HBAR exceeds max set on client: ${t.toString()} HBAR`,this.name=\"MaxQueryPaymentExceededError\",this.queryCost=e,this.maxQueryPayment=t}}export{e as default};\n//# sourceMappingURL=MaxQueryPaymentExceeded.js.map\n","import o from\"../Executable.js\";import t from\"../Hbar.js\";import n from\"../account/AccountId.js\";import*as a from\"@hashgraph/proto\";import r from\"long\";class s extends o{constructor(){super()}async _makePaymentTransaction(o,s,c,u){const e=[];null!=c?(e.push({accountID:c.accountId._toProtobuf(),amount:u.negated().toTinybars()}),e.push({accountID:s._toProtobuf(),amount:u.toTinybars()})):(e.push({accountID:new n(0)._toProtobuf(),amount:u.negated().toTinybars()}),e.push({accountID:s._toProtobuf(),amount:u.toTinybars()}));const i={transactionID:o._toProtobuf(),nodeAccountID:s._toProtobuf(),transactionFee:new t(1).toTinybars(),transactionValidDuration:{seconds:r.fromNumber(120)},cryptoTransfer:{transfers:{accountAmounts:e}}},f={bodyBytes:a.proto.TransactionBody.encode(i).finish()};if(null!=c){const o=await c.transactionSigner(f.bodyBytes);f.sigMap={sigPair:[c.publicKey._toProtobufSignature(o)]}}return{signedTransactionBytes:a.proto.SignedTransaction.encode(f).finish()}}}export{s as default};\n//# sourceMappingURL=QueryBase.js.map\n","import e from\"../transaction/TransactionId.js\";import t from\"../Hbar.js\";import r from\"../account/AccountId.js\";import*as o from\"@hashgraph/proto\";import s from\"./QueryBase.js\";class n extends s{constructor(e){super(),this._query=e,this._grpcDeadline=e._grpcDeadline,this._requestTimeout=e._requestTimeout,this._nodeAccountIds=e._nodeAccountIds.clone(),this._operator=e._operator,this._header=null}_getTransactionId(){return this._query._getTransactionId()}_getLogId(){return`CostQuery:${this._query._getLogId()}`}async _beforeExecute(s){if(null==s)throw new Error(\"Cannot do CostQuery without Client\");const n=null!=this._operator?this._operator:s._operator;if(null==n)throw new Error(\"`client` must have an `operator` or an explicit payment transaction must be provided\");this._query._nodeAccountIds.isEmpty&&this._query._nodeAccountIds.setList(s._network.getNodeAccountIdsForExecute());const a=e.generate(n.accountId);null==this._query.paymentTransactionId&&this._query.setPaymentTransactionId(a);const i=this._getLogId(),u=new r(0),_=e.generate(new r(0)),c=new t(0);this._logger&&this._logger.debug(`[${i}] making a payment transaction for node ${u.toString()} and transaction ID ${_.toString()} with amount ${c.toString()}`),this._header={payment:await this._makePaymentTransaction(_,new r(0),n,c),responseType:o.proto.ResponseType.COST_ANSWER}}_makeRequestAsync(){return Promise.resolve(this._query._onMakeRequest(this._header))}_shouldRetry(e,t){return this._query._shouldRetry(e,t)}_mapStatusError(e,t,r){return this._query._mapStatusError(e,t,r)}_mapResponse(e,r,o){const s=this._query._mapResponseHeader(e).cost;return Promise.resolve(t.fromTinybars(s))}_execute(e,t){return this._query._execute(e,t)}_requestToBytes(e){return this._query._requestToBytes(e)}_responseToBytes(e){return this._query._responseToBytes(e)}}export{n as default};\n//# sourceMappingURL=CostQuery.js.map\n","import t from\"../Status.js\";import e from\"../account/AccountId.js\";import n from\"../Hbar.js\";import{ExecutionState as s}from\"../Executable.js\";import r from\"../transaction/TransactionId.js\";import*as o from\"@hashgraph/proto\";import a from\"../PrecheckStatusError.js\";import i from\"../MaxQueryPaymentExceeded.js\";import u from\"./QueryBase.js\";import c from\"./CostQuery.js\";const m=new Map;class h extends u{constructor(){super(),this._paymentTransactionId=null,this._paymentTransactions=[],this._queryPayment=null,this._maxQueryPayment=null,this._timestamp=Date.now()}static fromBytes(t){const e=o.proto.Query.decode(t);if(null==e.query)throw new Error(\"(BUG) query.query was not set in the protobuf\");const n=m.get(e.query);if(null==n)throw new Error(`(BUG) Query.fromBytes() not implemented for type ${e.query}`);return n(e)}toBytes(){return o.proto.Query.encode(this._makeRequest()).finish()}setQueryPayment(t){return this._queryPayment=t,this}setMaxQueryPayment(t){return this._maxQueryPayment=t,this}async getCost(t){this._nodeAccountIds.isEmpty&&this._nodeAccountIds.setList(t._network.getNodeAccountIdsForExecute()),this._timestamp=Date.now();const e=await new c(this).execute(t);return n.fromTinybars(e._valueInTinybar.multipliedBy(1.1).toFixed(0))}setPaymentTransactionId(t){return this._paymentTransactionId=t,this}get paymentTransactionId(){return this._paymentTransactionId}_getTransactionId(){if(null==this._paymentTransactionId)throw new Error(\"Query.PaymentTransactionId was not set duration execution\");return this._paymentTransactionId}_isPaymentRequired(){return!0}_validateChecksums(t){}async _beforeExecute(t){if(this._paymentTransactions.length>0)return;if(t.isAutoValidateChecksumsEnabled()&&this._validateChecksums(t),this._nodeAccountIds.isEmpty&&this._nodeAccountIds.setList(t._network.getNodeAccountIdsForExecute()),this._operator=null!=this._operator?this._operator:t._operator,this._isPaymentRequired()){if(this.transactionNodeIds=Object.values(t.network).map((t=>t.toString())),null==this._operator)throw new Error(\"`client` must have an `operator` or an explicit payment transaction must be provided\");this._paymentTransactionId=r.generate(this._operator.accountId)}else this._paymentTransactionId=r.generate(new e(0));let s=new n(0);const o=null!=this._maxQueryPayment?this._maxQueryPayment:t.defaultMaxQueryPayment;if(null!=this._queryPayment)s=this._queryPayment;else if(0===this._paymentTransactions.length&&this._isPaymentRequired()){const e=await this.getCost(t);if(o.toTinybars().toInt()0&&(t={responseType:o.proto.ResponseType.ANSWER_ONLY,payment:this._paymentTransactions[this._nodeAccountIds.index]}),t}_onMakeRequest(t){throw new Error(\"not implemented\")}_makeRequest(){let t={};return this._isPaymentRequired()&&null!=this._paymentTransactions&&(t={payment:this._paymentTransactions[this._nodeAccountIds.index],responseType:o.proto.ResponseType.ANSWER_ONLY}),this._onMakeRequest(t)}async _makeRequestAsync(){let t={responseType:o.proto.ResponseType.ANSWER_ONLY};const n=this._getLogId(),s=this._nodeAccountIds.current,a=r.generate(this._operator?this._operator.accountId:new e(0)),i=this._queryPayment;return this._logger&&this._logger.debug(`[${n}] making a payment transaction for node ${s.toString()} and transaction ID ${a.toString()} with amount ${i.toString()}`),t.payment=await this._makePaymentTransaction(a,s,this._isPaymentRequired()?this._operator:null,i),this._onMakeRequest(t)}_shouldRetry(e,n){const{nodeTransactionPrecheckCode:r}=this._mapResponseHeader(n),a=t._fromCode(null!=r?r:o.proto.ResponseCodeEnum.OK);switch(this._logger&&this._logger.debug(`[${this._getLogId()}] received status ${a.toString()}`),a){case t.Busy:case t.Unknown:case t.PlatformTransactionNotCreated:case t.PlatformNotActive:return[a,s.Retry];case t.Ok:return[a,s.Finished];default:return[a,s.Error]}}_mapStatusError(e,n,s){const{nodeTransactionPrecheckCode:r}=this._mapResponseHeader(n),i=t._fromCode(null!=r?r:o.proto.ResponseCodeEnum.OK);return new a({nodeId:s,status:i,transactionId:this._getTransactionId(),contractFunctionResult:null})}_requestToBytes(t){return o.proto.Query.encode(t).finish()}_responseToBytes(t){return o.proto.Response.encode(t).finish()}}export{m as QUERY_REGISTRY,h as default};\n//# sourceMappingURL=Query.js.map\n","import{constructor as r,fromSolidityAddress as t,fromStringSplitter as s,validateChecksum as e,toSolidityAddress as o,toStringWithChecksum as i,compare as m}from\"../EntityIdHelper.js\";import n from\"../Key.js\";import*as h from\"@hashgraph/proto\";import u from\"../Cache.js\";import{decode as a,encode as d}from\"../encoding/hex.js\";import{arrayEqual as l}from\"../array.js\";import c from\"long\";import{isLongZeroAddress as f}from\"../util.js\";class v extends n{constructor(t,s,e,o){super();const i=r(t,s,e);this.shard=i.shard,this.realm=i.realm,this.num=i.num,this.evmAddress=null!=o?o:null,this._checksum=null}static fromEvmAddress(r,s,e){return f(a(e))?new v(...t(e)):new v(r,s,0,a(e))}static fromString(r){const t=s(r);if(Number.isNaN(t.shard)||Number.isNaN(t.realm))throw new Error(\"invalid format for entity ID\");const e=null!=t.shard?c.fromString(t.shard):c.ZERO,o=null!=t.realm?c.fromString(t.realm):c.ZERO,[i,m]=t.numOrHex.length<40?[c.fromString(t.numOrHex),void 0]:[c.ZERO,a(t.numOrHex)];return new v(e,o,i,m)}static _fromProtobuf(r){return new v(null!=r.shardNum?r.shardNum:0,null!=r.realmNum?r.realmNum:0,null!=r.contractNum?r.contractNum:0)}get checksum(){return this._checksum}async populateAccountNum(r){if(null===this.evmAddress)throw new Error(\"field `evmAddress` should not be null\");const t=`https://${r.mirrorNetwork[0].slice(0,r.mirrorNetwork[0].indexOf(\":\"))}/api/v1/contracts/${d(this.evmAddress)}`,s=await fetch(t),e=(await s.json()).contract_id;return this.num=c.fromString(e.slice(e.lastIndexOf(\".\")+1)),this}validate(r){console.warn(\"Deprecated: Use `validateChecksum` instead\"),this.validateChecksum(r)}validateChecksum(r){e(this.shard,this.realm,this.num,this._checksum,r)}static fromBytes(r){return v._fromProtobuf(h.proto.ContractID.decode(r))}static fromSolidityAddress(r){return f(a(r))?new v(...t(r)):this.fromEvmAddress(0,0,r)}toSolidityAddress(){return null!=this.evmAddress?d(this.evmAddress):o([this.shard,this.realm,this.num])}_toProtobuf(){return{contractNum:this.num,shardNum:this.shard,realmNum:this.realm,evmAddress:this.evmAddress}}toString(){return null!=this.evmAddress?`${this.shard.toString()}.${this.realm.toString()}.${d(this.evmAddress)}`:`${this.shard.toString()}.${this.realm.toString()}.${this.num.toString()}`}toStringWithChecksum(r){return i(this.toString(),r)}toBytes(){return h.proto.ContractID.encode(this._toProtobuf()).finish()}clone(){const r=new v(this);return r._checksum=this._checksum,r.evmAddress=this.evmAddress,r}compare(r){return m([this.shard,this.realm,this.num],[r.shard,r.realm,r.num])}equals(r){let t=!1;return null!=this.evmAddress&&null!=r.evmAddress&&(t=l(this.evmAddress,r.evmAddress)),this.shard.eq(r.shard)&&this.realm.eq(r.realm)&&this.num.eq(r.num)&&t}_toProtobufKey(){return{contractID:this._toProtobuf()}}static __fromProtobufKey(r){return v._fromProtobuf(r)}}u.setContractId((r=>v.__fromProtobufKey(r)));export{v as default};\n//# sourceMappingURL=ContractId.js.map\n","import{constructor as t,fromString as r,validateChecksum as s,fromSolidityAddress as e,toSolidityAddress as i,toStringWithChecksum as n,compare as o}from\"../EntityIdHelper.js\";import*as m from\"@hashgraph/proto\";import h from\"long\";class u{constructor(r,s,e){const i=t(r,s,e);this.shard=i.shard,this.realm=i.realm,this.num=i.num,this._checksum=null}static fromString(t){const s=r(t),e=new u(s);return e._checksum=s.checksum,e}static _fromProtobuf(t){return new u(null!=t.shardNum?h.fromString(t.shardNum.toString()):0,null!=t.realmNum?h.fromString(t.realmNum.toString()):0,null!=t.fileNum?h.fromString(t.fileNum.toString()):0)}get checksum(){return this._checksum}validate(t){console.warn(\"Deprecated: Use `validateChecksum` instead\"),this.validateChecksum(t)}validateChecksum(t){s(this.shard,this.realm,this.num,this._checksum,t)}static fromBytes(t){return u._fromProtobuf(m.proto.FileID.decode(t))}static fromSolidityAddress(t){const[r,s,i]=e(t);return new u(r,s,i)}toSolidityAddress(){return i([this.shard,this.realm,this.num])}_toProtobuf(){return{fileNum:this.num,shardNum:this.shard,realmNum:this.realm}}toString(){return`${this.shard.toString()}.${this.realm.toString()}.${this.num.toString()}`}toStringWithChecksum(t){return n(this.toString(),t)}toBytes(){return m.proto.FileID.encode(this._toProtobuf()).finish()}clone(){const t=new u(this);return t._checksum=this._checksum,t}compare(t){return o([this.shard,this.realm,this.num],[t.shard,t.realm,t.num])}}u.ADDRESS_BOOK=new u(102),u.FEE_SCHEDULE=new u(111),u.EXCHANGE_RATES=new u(112);export{u as default};\n//# sourceMappingURL=FileId.js.map\n","import{constructor as t,fromString as r,validateChecksum as s,fromSolidityAddress as e,toSolidityAddress as i,toStringWithChecksum as h,compare as o}from\"../EntityIdHelper.js\";import*as u from\"@hashgraph/proto\";class m{constructor(r,s,e){const i=t(r,s,e);this.shard=i.shard,this.realm=i.realm,this.num=i.num,this._checksum=null}static fromString(t){const s=r(t),e=new m(s);return e._checksum=s.checksum,e}static _fromProtobuf(t){return new m(null!=t.shardNum?t.shardNum:0,null!=t.realmNum?t.realmNum:0,null!=t.topicNum?t.topicNum:0)}get checksum(){return this._checksum}validate(t){console.warn(\"Deprecated: Use `validateChecksum` instead\"),this.validateChecksum(t)}validateChecksum(t){s(this.shard,this.realm,this.num,this._checksum,t)}static fromBytes(t){return m._fromProtobuf(u.proto.TopicID.decode(t))}static fromSolidityAddress(t){const[r,s,i]=e(t);return new m(r,s,i)}toSolidityAddress(){return i([this.shard,this.realm,this.num])}_toProtobuf(){return{topicNum:this.num,shardNum:this.shard,realmNum:this.realm}}toString(){return`${this.shard.toString()}.${this.realm.toString()}.${this.num.toString()}`}toStringWithChecksum(t){return h(this.toString(),t)}toBytes(){return u.proto.TopicID.encode(this._toProtobuf()).finish()}clone(){const t=new m(this);return t._checksum=this._checksum,t}compare(t){return o([this.shard,this.realm,this.num],[t.shard,t.realm,t.num])}}export{m as default};\n//# sourceMappingURL=TopicId.js.map\n","import{constructor as t,fromString as r,validateChecksum as s,fromSolidityAddress as e,toSolidityAddress as h,toStringWithChecksum as i,compare as o}from\"../EntityIdHelper.js\";import*as n from\"@hashgraph/proto\";class u{constructor(r,s,e){const h=t(r,s,e);this.shard=h.shard,this.realm=h.realm,this.num=h.num,this._checksum=null}static fromString(t){const s=r(t),e=new u(s);return e._checksum=s.checksum,e}static _fromProtobuf(t){return new u(null!=t.shardNum?t.shardNum:0,null!=t.realmNum?t.realmNum:0,null!=t.tokenNum?t.tokenNum:0)}get checksum(){return this._checksum}validate(t){console.warn(\"Deprecated: Use `validateChecksum` instead\"),this.validateChecksum(t)}validateChecksum(t){s(this.shard,this.realm,this.num,this._checksum,t)}static fromBytes(t){return u._fromProtobuf(n.proto.TokenID.decode(t))}static fromSolidityAddress(t){return new u(...e(t))}toSolidityAddress(){return h([this.shard,this.realm,this.num])}_toProtobuf(){return{tokenNum:this.num,shardNum:this.shard,realmNum:this.realm}}toString(){return`${this.shard.toString()}.${this.realm.toString()}.${this.num.toString()}`}toStringWithChecksum(t){return i(this.toString(),t)}toBytes(){return n.proto.TokenID.encode(this._toProtobuf()).finish()}clone(){const t=new u(this);return t._checksum=this._checksum,t}compare(t){return o([this.shard,this.realm,this.num],[t.shard,t.realm,t.num])}}export{u as default};\n//# sourceMappingURL=TokenId.js.map\n","import{constructor as t,fromString as r,validateChecksum as s,fromSolidityAddress as e,toSolidityAddress as h,toStringWithChecksum as u,compare as i}from\"../EntityIdHelper.js\";import*as m from\"@hashgraph/proto\";class o{constructor(r,s,e){const h=t(r,s,e);this.shard=h.shard,this.realm=h.realm,this.num=h.num,this._checksum=null}static fromString(t){const s=r(t),e=new o(s);return e._checksum=s.checksum,e}static _fromProtobuf(t){return new o(null!=t.shardNum?t.shardNum:0,null!=t.realmNum?t.realmNum:0,null!=t.scheduleNum?t.scheduleNum:0)}get checksum(){return this._checksum}validate(t){console.warn(\"Deprecated: Use `validateChecksum` instead\"),this.validateChecksum(t)}validateChecksum(t){s(this.shard,this.realm,this.num,this._checksum,t)}static fromBytes(t){return o._fromProtobuf(m.proto.ScheduleID.decode(t))}static fromSolidityAddress(t){return new o(...e(t))}toSolidityAddress(){return h([this.shard,this.realm,this.num])}_toProtobuf(){return{scheduleNum:this.num,shardNum:this.shard,realmNum:this.realm}}toString(){return`${this.shard.toString()}.${this.realm.toString()}.${this.num.toString()}`}toStringWithChecksum(t){return u(this.toString(),t)}toBytes(){return m.proto.ScheduleID.encode(this._toProtobuf()).finish()}clone(){const t=new o(this);return t._checksum=this._checksum,t}compare(t){return i([this.shard,this.realm,this.num],[t.shard,t.realm,t.num])}}export{o as default};\n//# sourceMappingURL=ScheduleId.js.map\n","import e from\"long\";class t{constructor(e){this.hbars=e.hbars,this.cents=e.cents,this.expirationTime=e.expirationTime,this.exchangeRateInCents=e.cents/e.hbars,Object.freeze(this)}static _fromProtobuf(i){return new t({hbars:i.hbarEquiv,cents:i.centEquiv,expirationTime:new Date(null!=i.expirationTime&&null!=i.expirationTime.seconds?e.isLong(i.expirationTime.seconds)?1e3*i.expirationTime.seconds.toInt():i.expirationTime.seconds:0)})}_toProtobuf(){return{hbarEquiv:this.hbars,centEquiv:this.cents,expirationTime:{seconds:e.fromNumber(Math.trunc(this.expirationTime.getTime()/1e3))}}}toJSON(){return{hbars:this.hbars,cents:this.cents,expirationTime:this.expirationTime,exchangeRateInCents:this.exchangeRateInCents}}toString(){return JSON.stringify(this.toJSON())}}export{t as default};\n//# sourceMappingURL=ExchangeRate.js.map\n","import t from\"../account/AccountId.js\";import e from\"../contract/ContractId.js\";import n from\"../file/FileId.js\";import o from\"../topic/TopicId.js\";import i from\"../token/TokenId.js\";import l from\"../schedule/ScheduleId.js\";import u from\"../ExchangeRate.js\";import c from\"../Status.js\";import s from\"long\";import*as r from\"@hashgraph/proto\";import a from\"./TransactionId.js\";import{encode as h}from\"../encoding/hex.js\";class d{constructor(t){this.status=t.status,this.accountId=t.accountId,this.fileId=t.fileId,this.contractId=t.contractId,this.topicId=t.topicId,this.tokenId=t.tokenId,this.scheduleId=t.scheduleId,this.exchangeRate=t.exchangeRate,this.nextExchangeRate=t.nextExchangeRate,this.topicSequenceNumber=t.topicSequenceNumber,this.topicRunningHash=t.topicRunningHash,this.totalSupply=t.totalSupply,this.scheduledTransactionId=t.scheduledTransactionId,this.serials=t.serials??[],this.duplicates=t.duplicates??[],this.children=t.children??[],this.nodeId=t.nodeId,Object.freeze(this)}_toProtobuf(){return{duplicateTransactionReceipts:this.duplicates.map((t=>t._toProtobuf().receipt)),childTransactionReceipts:this.children.map((t=>t._toProtobuf().receipt)),receipt:{status:this.status.valueOf(),accountID:null!=this.accountId?this.accountId._toProtobuf():null,fileID:null!=this.fileId?this.fileId._toProtobuf():null,contractID:null!=this.contractId?this.contractId._toProtobuf():null,topicID:null!=this.topicId?this.topicId._toProtobuf():null,tokenID:null!=this.tokenId?this.tokenId._toProtobuf():null,scheduleID:null!=this.scheduleId?this.scheduleId._toProtobuf():null,topicRunningHash:null==this.topicRunningHash?null:this.topicRunningHash,topicSequenceNumber:this.topicSequenceNumber,exchangeRate:{nextRate:null!=this.nextExchangeRate?this.nextExchangeRate._toProtobuf():null,currentRate:null!=this.exchangeRate?this.exchangeRate._toProtobuf():null},scheduledTransactionID:null!=this.scheduledTransactionId?this.scheduledTransactionId._toProtobuf():null,serialNumbers:this.serials,newTotalSupply:this.totalSupply,nodeId:this.nodeId}}}static _fromProtobuf(r){const h=r.receipt,p=null!=r.childTransactionReceipts?r.childTransactionReceipts.map((t=>d._fromProtobuf({receipt:t}))):[],I=null!=r.duplicateTransactionReceipts?r.duplicateTransactionReceipts.map((t=>d._fromProtobuf({receipt:t}))):[];return new d({status:c._fromCode(null!=h.status?h.status:0),accountId:null!=h.accountID?t._fromProtobuf(h.accountID):null,fileId:null!=h.fileID?n._fromProtobuf(h.fileID):null,contractId:null!=h.contractID?e._fromProtobuf(h.contractID):null,topicId:null!=h.topicID?o._fromProtobuf(h.topicID):null,tokenId:null!=h.tokenID?i._fromProtobuf(h.tokenID):null,scheduleId:null!=h.scheduleID?l._fromProtobuf(h.scheduleID):null,exchangeRate:null!=h.exchangeRate?u._fromProtobuf(h.exchangeRate.currentRate):null,nextExchangeRate:null!=h.exchangeRate?u._fromProtobuf(h.exchangeRate.nextRate):null,topicSequenceNumber:null==h.topicSequenceNumber?null:s.fromString(h.topicSequenceNumber.toString()),topicRunningHash:null!=h.topicRunningHash?new Uint8Array(h.topicRunningHash):null,totalSupply:null!=h.newTotalSupply?s.fromString(h.newTotalSupply.toString()):null,scheduledTransactionId:null!=h.scheduledTransactionID?a._fromProtobuf(h.scheduledTransactionID):null,serials:null!=h.serialNumbers?h.serialNumbers.map((t=>s.fromValue(t))):[],children:p,duplicates:I,nodeId:null!=h.nodeId?h.nodeId:null})}static fromBytes(t){return d._fromProtobuf(r.proto.TransactionGetReceiptResponse.decode(t))}toBytes(){return r.proto.TransactionGetReceiptResponse.encode(this._toProtobuf()).finish()}toJSON(){return{status:this.status.toString(),accountId:this.accountId?.toString()||null,filedId:this.fileId?.toString()||null,contractId:this.contractId?.toString()||null,topicId:this.topicId?.toString()||null,tokenId:this.tokenId?.toString()||null,scheduleId:this.scheduleId?.toString()||null,exchangeRate:this.exchangeRate?.toJSON()||null,nextExchangeRate:this.nextExchangeRate?.toJSON()||null,topicSequenceNumber:this.topicSequenceNumber?.toString()||null,topicRunningHash:null!=this.topicRunningHash?h(this.topicRunningHash):null,totalSupply:this.totalSupply?.toString()||null,scheduledTransactionId:this.scheduledTransactionId?.toString()||null,serials:this.serials.map((t=>t.toString())),duplicates:this.duplicates.map((t=>t.toJSON())),children:this.children.map((t=>t.toJSON())),nodeId:this.nodeId?.toString()||null}}toString(){return JSON.stringify(this.toJSON())}}export{d as default};\n//# sourceMappingURL=TransactionReceipt.js.map\n","import t,{QUERY_REGISTRY as e}from\"../query/Query.js\";import n from\"../Status.js\";import s from\"./TransactionReceipt.js\";import i from\"./TransactionId.js\";import r from\"../PrecheckStatusError.js\";import a from\"../ReceiptStatusError.js\";import{ExecutionState as c}from\"../Executable.js\";import*as o from\"@hashgraph/proto\";const{proto:u}=o;class l extends t{constructor(t={}){super(),this._transactionId=null,this._includeChildren=null,this._includeDuplicates=null,this._validateStatus=!0,null!=t.transactionId&&this.setTransactionId(t.transactionId),null!=t.includeChildren&&this.setIncludeChildren(t.includeChildren),null!=t.includeDuplicates&&this.setIncludeDuplicates(t.includeDuplicates),null!=t.validateStatus&&this.setValidateStatus(t.validateStatus)}static _fromProtobuf(t){const e=t.transactionGetReceipt;return new l({transactionId:e.transactionID?i._fromProtobuf(e.transactionID):void 0,includeDuplicates:null!=e.includeDuplicates?e.includeDuplicates:void 0,includeChildren:null!=e.includeChildReceipts?e.includeChildReceipts:void 0})}get transactionId(){return this._transactionId}setTransactionId(t){return this._transactionId=\"string\"==typeof t?i.fromString(t):t.clone(),this}setIncludeDuplicates(t){return this._includeDuplicates=t,this}get includeDuplicates(){return null!=this._includeDuplicates&&this._includeDuplicates}setIncludeChildren(t){return this._includeChildren=t,this}get includeChildren(){return null!=this._includeChildren&&this._includeChildren}setValidateStatus(t){return this._validateStatus=t,this}get validateStatus(){return this._validateStatus}_isPaymentRequired(){return!1}_shouldRetry(t,e){const{nodeTransactionPrecheckCode:s}=this._mapResponseHeader(e);let i=n._fromCode(null!=s?s:u.ResponseCodeEnum.OK);switch(this._logger&&this._logger.debug(`[${this._getLogId()}] received node precheck status ${i.toString()}`),i){case n.Busy:case n.Unknown:case n.ReceiptNotFound:case n.PlatformNotActive:return[i,c.Retry];case n.Ok:break;default:return[i,c.Error]}const r=e.transactionGetReceipt.receipt.status;switch(i=n._fromCode(r),this._logger&&this._logger.debug(`[${this._getLogId()}] received receipt status ${i.toString()}`),i){case n.Busy:case n.Unknown:case n.ReceiptNotFound:return[i,c.Retry];case n.Success:case n.FeeScheduleFilePartUploaded:return[i,c.Finished];default:return[i,this._validateStatus?c.Error:c.Finished]}}_getTransactionId(){return null!=this._transactionId?this._transactionId:super._getTransactionId()}_mapStatusError(t,e,i){const{nodeTransactionPrecheckCode:c}=this._mapResponseHeader(e);let o=n._fromCode(null!=c?c:u.ResponseCodeEnum.OK);if(o!==n.Ok)return new r({nodeId:i,status:o,transactionId:this._getTransactionId(),contractFunctionResult:null});const l=e.transactionGetReceipt,d=l.receipt.status;if(o=n._fromCode(d),null==this._transactionId)throw new Error(\"Failed to construct `ReceiptStatusError` because `transactionId` is `null`\");return new a({status:o,transactionId:this._transactionId,transactionReceipt:s._fromProtobuf(l)})}_validateChecksums(t){null!=this._transactionId&&null!=this._transactionId.accountId&&this._transactionId.accountId.validateChecksum(t)}_execute(t,e){return t.crypto.getTransactionReceipts(e)}_mapResponseHeader(t){return t.transactionGetReceipt.header}_mapResponse(t,e,n){const i=t.transactionGetReceipt;return Promise.resolve(s._fromProtobuf(i))}_onMakeRequest(t){return{transactionGetReceipt:{header:t,transactionID:null!=this._transactionId?this._transactionId._toProtobuf():null,includeDuplicates:this._includeDuplicates,includeChildReceipts:this._includeChildren}}}_getLogId(){return`TransactionReceiptQuery:${this._timestamp.toString()}`}}e.set(\"transactionGetReceipt\",l._fromProtobuf);export{l as default};\n//# sourceMappingURL=TransactionReceiptQuery.js.map\n","import t from\"./account/AccountId.js\";import o from\"./Hbar.js\";class n{constructor(n){this.accountId=n.accountId instanceof t?n.accountId:t.fromString(n.accountId),this.amount=n.amount instanceof o?n.amount:new o(n.amount),this.isApproved=n.isApproved}static _fromProtobuf(r){const u=[];for(const a of r)u.push(new n({accountId:t._fromProtobuf(a.accountID),amount:o.fromTinybars(null!=a.amount?a.amount:0),isApproved:a.isApproval}));return u}_toProtobuf(){return{accountID:this.accountId._toProtobuf(),amount:this.amount.toTinybars(),isApproval:this.isApproved}}toJSON(){return{accountId:this.accountId.toString(),amount:this.amount.toTinybars().toString(),isApproved:this.isApproved}}toString(){return JSON.stringify(this.toJSON())}}export{n as default};\n//# sourceMappingURL=Transfer.js.map\n","import t from\"./ContractId.js\";class o{constructor(t){this.contractId=t.contractId,this.bloom=t.bloom,this.topics=t.topics,this.data=t.data,Object.freeze(this)}static _fromProtobuf(a){return new o({contractId:t._fromProtobuf(a.contractID),bloom:null!=a.bloom?a.bloom:new Uint8Array,topics:null!=a.topic?a.topic:[],data:null!=a.data?a.data:new Uint8Array})}_toProtobuf(){return{contractID:this.contractId._toProtobuf(),bloom:this.bloom,topic:this.topics,data:this.data}}}export{o as default};\n//# sourceMappingURL=ContractLogInfo.js.map\n","function e(e){return(new TextDecoder).decode(e)}function n(e){return(new TextEncoder).encode(e)}export{e as decode,n as encode};\n//# sourceMappingURL=utf8.browser.js.map\n","export const version = \"bignumber/5.8.0\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\n/**\n * BigNumber\n *\n * A wrapper around the BN.js object. We use the BN.js library\n * because it is used by elliptic, so it is required regardless.\n *\n */\nimport _BN from \"bn.js\";\nvar BN = _BN.BN;\nimport { hexlify, isBytes, isHexString } from \"@ethersproject/bytes\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nconst _constructorGuard = {};\nconst MAX_SAFE = 0x1fffffffffffff;\nexport function isBigNumberish(value) {\n return (value != null) && (BigNumber.isBigNumber(value) ||\n (typeof (value) === \"number\" && (value % 1) === 0) ||\n (typeof (value) === \"string\" && !!value.match(/^-?[0-9]+$/)) ||\n isHexString(value) ||\n (typeof (value) === \"bigint\") ||\n isBytes(value));\n}\n// Only warn about passing 10 into radix once\nlet _warnedToStringRadix = false;\nexport class BigNumber {\n constructor(constructorGuard, hex) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"cannot call constructor directly; use BigNumber.from\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new (BigNumber)\"\n });\n }\n this._hex = hex;\n this._isBigNumber = true;\n Object.freeze(this);\n }\n fromTwos(value) {\n return toBigNumber(toBN(this).fromTwos(value));\n }\n toTwos(value) {\n return toBigNumber(toBN(this).toTwos(value));\n }\n abs() {\n if (this._hex[0] === \"-\") {\n return BigNumber.from(this._hex.substring(1));\n }\n return this;\n }\n add(other) {\n return toBigNumber(toBN(this).add(toBN(other)));\n }\n sub(other) {\n return toBigNumber(toBN(this).sub(toBN(other)));\n }\n div(other) {\n const o = BigNumber.from(other);\n if (o.isZero()) {\n throwFault(\"division-by-zero\", \"div\");\n }\n return toBigNumber(toBN(this).div(toBN(other)));\n }\n mul(other) {\n return toBigNumber(toBN(this).mul(toBN(other)));\n }\n mod(other) {\n const value = toBN(other);\n if (value.isNeg()) {\n throwFault(\"division-by-zero\", \"mod\");\n }\n return toBigNumber(toBN(this).umod(value));\n }\n pow(other) {\n const value = toBN(other);\n if (value.isNeg()) {\n throwFault(\"negative-power\", \"pow\");\n }\n return toBigNumber(toBN(this).pow(value));\n }\n and(other) {\n const value = toBN(other);\n if (this.isNegative() || value.isNeg()) {\n throwFault(\"unbound-bitwise-result\", \"and\");\n }\n return toBigNumber(toBN(this).and(value));\n }\n or(other) {\n const value = toBN(other);\n if (this.isNegative() || value.isNeg()) {\n throwFault(\"unbound-bitwise-result\", \"or\");\n }\n return toBigNumber(toBN(this).or(value));\n }\n xor(other) {\n const value = toBN(other);\n if (this.isNegative() || value.isNeg()) {\n throwFault(\"unbound-bitwise-result\", \"xor\");\n }\n return toBigNumber(toBN(this).xor(value));\n }\n mask(value) {\n if (this.isNegative() || value < 0) {\n throwFault(\"negative-width\", \"mask\");\n }\n return toBigNumber(toBN(this).maskn(value));\n }\n shl(value) {\n if (this.isNegative() || value < 0) {\n throwFault(\"negative-width\", \"shl\");\n }\n return toBigNumber(toBN(this).shln(value));\n }\n shr(value) {\n if (this.isNegative() || value < 0) {\n throwFault(\"negative-width\", \"shr\");\n }\n return toBigNumber(toBN(this).shrn(value));\n }\n eq(other) {\n return toBN(this).eq(toBN(other));\n }\n lt(other) {\n return toBN(this).lt(toBN(other));\n }\n lte(other) {\n return toBN(this).lte(toBN(other));\n }\n gt(other) {\n return toBN(this).gt(toBN(other));\n }\n gte(other) {\n return toBN(this).gte(toBN(other));\n }\n isNegative() {\n return (this._hex[0] === \"-\");\n }\n isZero() {\n return toBN(this).isZero();\n }\n toNumber() {\n try {\n return toBN(this).toNumber();\n }\n catch (error) {\n throwFault(\"overflow\", \"toNumber\", this.toString());\n }\n return null;\n }\n toBigInt() {\n try {\n return BigInt(this.toString());\n }\n catch (e) { }\n return logger.throwError(\"this platform does not support BigInt\", Logger.errors.UNSUPPORTED_OPERATION, {\n value: this.toString()\n });\n }\n toString() {\n // Lots of people expect this, which we do not support, so check (See: #889)\n if (arguments.length > 0) {\n if (arguments[0] === 10) {\n if (!_warnedToStringRadix) {\n _warnedToStringRadix = true;\n logger.warn(\"BigNumber.toString does not accept any parameters; base-10 is assumed\");\n }\n }\n else if (arguments[0] === 16) {\n logger.throwError(\"BigNumber.toString does not accept any parameters; use bigNumber.toHexString()\", Logger.errors.UNEXPECTED_ARGUMENT, {});\n }\n else {\n logger.throwError(\"BigNumber.toString does not accept parameters\", Logger.errors.UNEXPECTED_ARGUMENT, {});\n }\n }\n return toBN(this).toString(10);\n }\n toHexString() {\n return this._hex;\n }\n toJSON(key) {\n return { type: \"BigNumber\", hex: this.toHexString() };\n }\n static from(value) {\n if (value instanceof BigNumber) {\n return value;\n }\n if (typeof (value) === \"string\") {\n if (value.match(/^-?0x[0-9a-f]+$/i)) {\n return new BigNumber(_constructorGuard, toHex(value));\n }\n if (value.match(/^-?[0-9]+$/)) {\n return new BigNumber(_constructorGuard, toHex(new BN(value)));\n }\n return logger.throwArgumentError(\"invalid BigNumber string\", \"value\", value);\n }\n if (typeof (value) === \"number\") {\n if (value % 1) {\n throwFault(\"underflow\", \"BigNumber.from\", value);\n }\n if (value >= MAX_SAFE || value <= -MAX_SAFE) {\n throwFault(\"overflow\", \"BigNumber.from\", value);\n }\n return BigNumber.from(String(value));\n }\n const anyValue = value;\n if (typeof (anyValue) === \"bigint\") {\n return BigNumber.from(anyValue.toString());\n }\n if (isBytes(anyValue)) {\n return BigNumber.from(hexlify(anyValue));\n }\n if (anyValue) {\n // Hexable interface (takes priority)\n if (anyValue.toHexString) {\n const hex = anyValue.toHexString();\n if (typeof (hex) === \"string\") {\n return BigNumber.from(hex);\n }\n }\n else {\n // For now, handle legacy JSON-ified values (goes away in v6)\n let hex = anyValue._hex;\n // New-form JSON\n if (hex == null && anyValue.type === \"BigNumber\") {\n hex = anyValue.hex;\n }\n if (typeof (hex) === \"string\") {\n if (isHexString(hex) || (hex[0] === \"-\" && isHexString(hex.substring(1)))) {\n return BigNumber.from(hex);\n }\n }\n }\n }\n return logger.throwArgumentError(\"invalid BigNumber value\", \"value\", value);\n }\n static isBigNumber(value) {\n return !!(value && value._isBigNumber);\n }\n}\n// Normalize the hex string\nfunction toHex(value) {\n // For BN, call on the hex string\n if (typeof (value) !== \"string\") {\n return toHex(value.toString(16));\n }\n // If negative, prepend the negative sign to the normalized positive value\n if (value[0] === \"-\") {\n // Strip off the negative sign\n value = value.substring(1);\n // Cannot have multiple negative signs (e.g. \"--0x04\")\n if (value[0] === \"-\") {\n logger.throwArgumentError(\"invalid hex\", \"value\", value);\n }\n // Call toHex on the positive component\n value = toHex(value);\n // Do not allow \"-0x00\"\n if (value === \"0x00\") {\n return value;\n }\n // Negate the value\n return \"-\" + value;\n }\n // Add a \"0x\" prefix if missing\n if (value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n // Normalize zero\n if (value === \"0x\") {\n return \"0x00\";\n }\n // Make the string even length\n if (value.length % 2) {\n value = \"0x0\" + value.substring(2);\n }\n // Trim to smallest even-length string\n while (value.length > 4 && value.substring(0, 4) === \"0x00\") {\n value = \"0x\" + value.substring(4);\n }\n return value;\n}\nfunction toBigNumber(value) {\n return BigNumber.from(toHex(value));\n}\nfunction toBN(value) {\n const hex = BigNumber.from(value).toHexString();\n if (hex[0] === \"-\") {\n return (new BN(\"-\" + hex.substring(3), 16));\n }\n return new BN(hex.substring(2), 16);\n}\nfunction throwFault(fault, operation, value) {\n const params = { fault: fault, operation: operation };\n if (value != null) {\n params.value = value;\n }\n return logger.throwError(fault, Logger.errors.NUMERIC_FAULT, params);\n}\n// value should have no prefix\nexport function _base36To16(value) {\n return (new BN(value, 36)).toString(16);\n}\n// value should have no prefix\nexport function _base16To36(value) {\n return (new BN(value, 16)).toString(36);\n}\n//# sourceMappingURL=bignumber.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nexport function defineReadOnly(object, name, value) {\n Object.defineProperty(object, name, {\n enumerable: true,\n value: value,\n writable: false,\n });\n}\n// Crawl up the constructor chain to find a static method\nexport function getStatic(ctor, key) {\n for (let i = 0; i < 32; i++) {\n if (ctor[key]) {\n return ctor[key];\n }\n if (!ctor.prototype || typeof (ctor.prototype) !== \"object\") {\n break;\n }\n ctor = Object.getPrototypeOf(ctor.prototype).constructor;\n }\n return null;\n}\nexport function resolveProperties(object) {\n return __awaiter(this, void 0, void 0, function* () {\n const promises = Object.keys(object).map((key) => {\n const value = object[key];\n return Promise.resolve(value).then((v) => ({ key: key, value: v }));\n });\n const results = yield Promise.all(promises);\n return results.reduce((accum, result) => {\n accum[(result.key)] = result.value;\n return accum;\n }, {});\n });\n}\nexport function checkProperties(object, properties) {\n if (!object || typeof (object) !== \"object\") {\n logger.throwArgumentError(\"invalid object\", \"object\", object);\n }\n Object.keys(object).forEach((key) => {\n if (!properties[key]) {\n logger.throwArgumentError(\"invalid object key - \" + key, \"transaction:\" + key, object);\n }\n });\n}\nexport function shallowCopy(object) {\n const result = {};\n for (const key in object) {\n result[key] = object[key];\n }\n return result;\n}\nconst opaque = { bigint: true, boolean: true, \"function\": true, number: true, string: true };\nfunction _isFrozen(object) {\n // Opaque objects are not mutable, so safe to copy by assignment\n if (object === undefined || object === null || opaque[typeof (object)]) {\n return true;\n }\n if (Array.isArray(object) || typeof (object) === \"object\") {\n if (!Object.isFrozen(object)) {\n return false;\n }\n const keys = Object.keys(object);\n for (let i = 0; i < keys.length; i++) {\n let value = null;\n try {\n value = object[keys[i]];\n }\n catch (error) {\n // If accessing a value triggers an error, it is a getter\n // designed to do so (e.g. Result) and is therefore \"frozen\"\n continue;\n }\n if (!_isFrozen(value)) {\n return false;\n }\n }\n return true;\n }\n return logger.throwArgumentError(`Cannot deepCopy ${typeof (object)}`, \"object\", object);\n}\n// Returns a new copy of object, such that no properties may be replaced.\n// New properties may be added only to objects.\nfunction _deepCopy(object) {\n if (_isFrozen(object)) {\n return object;\n }\n // Arrays are mutable, so we need to create a copy\n if (Array.isArray(object)) {\n return Object.freeze(object.map((item) => deepCopy(item)));\n }\n if (typeof (object) === \"object\") {\n const result = {};\n for (const key in object) {\n const value = object[key];\n if (value === undefined) {\n continue;\n }\n defineReadOnly(result, key, deepCopy(value));\n }\n return result;\n }\n return logger.throwArgumentError(`Cannot deepCopy ${typeof (object)}`, \"object\", object);\n}\nexport function deepCopy(object) {\n return _deepCopy(object);\n}\nexport class Description {\n constructor(info) {\n for (const key in info) {\n this[key] = deepCopy(info[key]);\n }\n }\n}\n//# sourceMappingURL=index.js.map","export const version = \"abi/5.8.0\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n;\nconst _constructorGuard = {};\nlet ModifiersBytes = { calldata: true, memory: true, storage: true };\nlet ModifiersNest = { calldata: true, memory: true };\nfunction checkModifier(type, name) {\n if (type === \"bytes\" || type === \"string\") {\n if (ModifiersBytes[name]) {\n return true;\n }\n }\n else if (type === \"address\") {\n if (name === \"payable\") {\n return true;\n }\n }\n else if (type.indexOf(\"[\") >= 0 || type === \"tuple\") {\n if (ModifiersNest[name]) {\n return true;\n }\n }\n if (ModifiersBytes[name] || name === \"payable\") {\n logger.throwArgumentError(\"invalid modifier\", \"name\", name);\n }\n return false;\n}\n// @TODO: Make sure that children of an indexed tuple are marked with a null indexed\nfunction parseParamType(param, allowIndexed) {\n let originalParam = param;\n function throwError(i) {\n logger.throwArgumentError(`unexpected character at position ${i}`, \"param\", param);\n }\n param = param.replace(/\\s/g, \" \");\n function newNode(parent) {\n let node = { type: \"\", name: \"\", parent: parent, state: { allowType: true } };\n if (allowIndexed) {\n node.indexed = false;\n }\n return node;\n }\n let parent = { type: \"\", name: \"\", state: { allowType: true } };\n let node = parent;\n for (let i = 0; i < param.length; i++) {\n let c = param[i];\n switch (c) {\n case \"(\":\n if (node.state.allowType && node.type === \"\") {\n node.type = \"tuple\";\n }\n else if (!node.state.allowParams) {\n throwError(i);\n }\n node.state.allowType = false;\n node.type = verifyType(node.type);\n node.components = [newNode(node)];\n node = node.components[0];\n break;\n case \")\":\n delete node.state;\n if (node.name === \"indexed\") {\n if (!allowIndexed) {\n throwError(i);\n }\n node.indexed = true;\n node.name = \"\";\n }\n if (checkModifier(node.type, node.name)) {\n node.name = \"\";\n }\n node.type = verifyType(node.type);\n let child = node;\n node = node.parent;\n if (!node) {\n throwError(i);\n }\n delete child.parent;\n node.state.allowParams = false;\n node.state.allowName = true;\n node.state.allowArray = true;\n break;\n case \",\":\n delete node.state;\n if (node.name === \"indexed\") {\n if (!allowIndexed) {\n throwError(i);\n }\n node.indexed = true;\n node.name = \"\";\n }\n if (checkModifier(node.type, node.name)) {\n node.name = \"\";\n }\n node.type = verifyType(node.type);\n let sibling = newNode(node.parent);\n //{ type: \"\", name: \"\", parent: node.parent, state: { allowType: true } };\n node.parent.components.push(sibling);\n delete node.parent;\n node = sibling;\n break;\n // Hit a space...\n case \" \":\n // If reading type, the type is done and may read a param or name\n if (node.state.allowType) {\n if (node.type !== \"\") {\n node.type = verifyType(node.type);\n delete node.state.allowType;\n node.state.allowName = true;\n node.state.allowParams = true;\n }\n }\n // If reading name, the name is done\n if (node.state.allowName) {\n if (node.name !== \"\") {\n if (node.name === \"indexed\") {\n if (!allowIndexed) {\n throwError(i);\n }\n if (node.indexed) {\n throwError(i);\n }\n node.indexed = true;\n node.name = \"\";\n }\n else if (checkModifier(node.type, node.name)) {\n node.name = \"\";\n }\n else {\n node.state.allowName = false;\n }\n }\n }\n break;\n case \"[\":\n if (!node.state.allowArray) {\n throwError(i);\n }\n node.type += c;\n node.state.allowArray = false;\n node.state.allowName = false;\n node.state.readArray = true;\n break;\n case \"]\":\n if (!node.state.readArray) {\n throwError(i);\n }\n node.type += c;\n node.state.readArray = false;\n node.state.allowArray = true;\n node.state.allowName = true;\n break;\n default:\n if (node.state.allowType) {\n node.type += c;\n node.state.allowParams = true;\n node.state.allowArray = true;\n }\n else if (node.state.allowName) {\n node.name += c;\n delete node.state.allowArray;\n }\n else if (node.state.readArray) {\n node.type += c;\n }\n else {\n throwError(i);\n }\n }\n }\n if (node.parent) {\n logger.throwArgumentError(\"unexpected eof\", \"param\", param);\n }\n delete parent.state;\n if (node.name === \"indexed\") {\n if (!allowIndexed) {\n throwError(originalParam.length - 7);\n }\n if (node.indexed) {\n throwError(originalParam.length - 7);\n }\n node.indexed = true;\n node.name = \"\";\n }\n else if (checkModifier(node.type, node.name)) {\n node.name = \"\";\n }\n parent.type = verifyType(parent.type);\n return parent;\n}\nfunction populate(object, params) {\n for (let key in params) {\n defineReadOnly(object, key, params[key]);\n }\n}\nexport const FormatTypes = Object.freeze({\n // Bare formatting, as is needed for computing a sighash of an event or function\n sighash: \"sighash\",\n // Human-Readable with Minimal spacing and without names (compact human-readable)\n minimal: \"minimal\",\n // Human-Readable with nice spacing, including all names\n full: \"full\",\n // JSON-format a la Solidity\n json: \"json\"\n});\nconst paramTypeArray = new RegExp(/^(.*)\\[([0-9]*)\\]$/);\nexport class ParamType {\n constructor(constructorGuard, params) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"use fromString\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new ParamType()\"\n });\n }\n populate(this, params);\n let match = this.type.match(paramTypeArray);\n if (match) {\n populate(this, {\n arrayLength: parseInt(match[2] || \"-1\"),\n arrayChildren: ParamType.fromObject({\n type: match[1],\n components: this.components\n }),\n baseType: \"array\"\n });\n }\n else {\n populate(this, {\n arrayLength: null,\n arrayChildren: null,\n baseType: ((this.components != null) ? \"tuple\" : this.type)\n });\n }\n this._isParamType = true;\n Object.freeze(this);\n }\n // Format the parameter fragment\n // - sighash: \"(uint256,address)\"\n // - minimal: \"tuple(uint256,address) indexed\"\n // - full: \"tuple(uint256 foo, address bar) indexed baz\"\n format(format) {\n if (!format) {\n format = FormatTypes.sighash;\n }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n if (format === FormatTypes.json) {\n let result = {\n type: ((this.baseType === \"tuple\") ? \"tuple\" : this.type),\n name: (this.name || undefined)\n };\n if (typeof (this.indexed) === \"boolean\") {\n result.indexed = this.indexed;\n }\n if (this.components) {\n result.components = this.components.map((comp) => JSON.parse(comp.format(format)));\n }\n return JSON.stringify(result);\n }\n let result = \"\";\n // Array\n if (this.baseType === \"array\") {\n result += this.arrayChildren.format(format);\n result += \"[\" + (this.arrayLength < 0 ? \"\" : String(this.arrayLength)) + \"]\";\n }\n else {\n if (this.baseType === \"tuple\") {\n if (format !== FormatTypes.sighash) {\n result += this.type;\n }\n result += \"(\" + this.components.map((comp) => comp.format(format)).join((format === FormatTypes.full) ? \", \" : \",\") + \")\";\n }\n else {\n result += this.type;\n }\n }\n if (format !== FormatTypes.sighash) {\n if (this.indexed === true) {\n result += \" indexed\";\n }\n if (format === FormatTypes.full && this.name) {\n result += \" \" + this.name;\n }\n }\n return result;\n }\n static from(value, allowIndexed) {\n if (typeof (value) === \"string\") {\n return ParamType.fromString(value, allowIndexed);\n }\n return ParamType.fromObject(value);\n }\n static fromObject(value) {\n if (ParamType.isParamType(value)) {\n return value;\n }\n return new ParamType(_constructorGuard, {\n name: (value.name || null),\n type: verifyType(value.type),\n indexed: ((value.indexed == null) ? null : !!value.indexed),\n components: (value.components ? value.components.map(ParamType.fromObject) : null)\n });\n }\n static fromString(value, allowIndexed) {\n function ParamTypify(node) {\n return ParamType.fromObject({\n name: node.name,\n type: node.type,\n indexed: node.indexed,\n components: node.components\n });\n }\n return ParamTypify(parseParamType(value, !!allowIndexed));\n }\n static isParamType(value) {\n return !!(value != null && value._isParamType);\n }\n}\n;\nfunction parseParams(value, allowIndex) {\n return splitNesting(value).map((param) => ParamType.fromString(param, allowIndex));\n}\nexport class Fragment {\n constructor(constructorGuard, params) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"use a static from method\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new Fragment()\"\n });\n }\n populate(this, params);\n this._isFragment = true;\n Object.freeze(this);\n }\n static from(value) {\n if (Fragment.isFragment(value)) {\n return value;\n }\n if (typeof (value) === \"string\") {\n return Fragment.fromString(value);\n }\n return Fragment.fromObject(value);\n }\n static fromObject(value) {\n if (Fragment.isFragment(value)) {\n return value;\n }\n switch (value.type) {\n case \"function\":\n return FunctionFragment.fromObject(value);\n case \"event\":\n return EventFragment.fromObject(value);\n case \"constructor\":\n return ConstructorFragment.fromObject(value);\n case \"error\":\n return ErrorFragment.fromObject(value);\n case \"fallback\":\n case \"receive\":\n // @TODO: Something? Maybe return a FunctionFragment? A custom DefaultFunctionFragment?\n return null;\n }\n return logger.throwArgumentError(\"invalid fragment object\", \"value\", value);\n }\n static fromString(value) {\n // Make sure the \"returns\" is surrounded by a space and all whitespace is exactly one space\n value = value.replace(/\\s/g, \" \");\n value = value.replace(/\\(/g, \" (\").replace(/\\)/g, \") \").replace(/\\s+/g, \" \");\n value = value.trim();\n if (value.split(\" \")[0] === \"event\") {\n return EventFragment.fromString(value.substring(5).trim());\n }\n else if (value.split(\" \")[0] === \"function\") {\n return FunctionFragment.fromString(value.substring(8).trim());\n }\n else if (value.split(\"(\")[0].trim() === \"constructor\") {\n return ConstructorFragment.fromString(value.trim());\n }\n else if (value.split(\" \")[0] === \"error\") {\n return ErrorFragment.fromString(value.substring(5).trim());\n }\n return logger.throwArgumentError(\"unsupported fragment\", \"value\", value);\n }\n static isFragment(value) {\n return !!(value && value._isFragment);\n }\n}\nexport class EventFragment extends Fragment {\n format(format) {\n if (!format) {\n format = FormatTypes.sighash;\n }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n if (format === FormatTypes.json) {\n return JSON.stringify({\n type: \"event\",\n anonymous: this.anonymous,\n name: this.name,\n inputs: this.inputs.map((input) => JSON.parse(input.format(format)))\n });\n }\n let result = \"\";\n if (format !== FormatTypes.sighash) {\n result += \"event \";\n }\n result += this.name + \"(\" + this.inputs.map((input) => input.format(format)).join((format === FormatTypes.full) ? \", \" : \",\") + \") \";\n if (format !== FormatTypes.sighash) {\n if (this.anonymous) {\n result += \"anonymous \";\n }\n }\n return result.trim();\n }\n static from(value) {\n if (typeof (value) === \"string\") {\n return EventFragment.fromString(value);\n }\n return EventFragment.fromObject(value);\n }\n static fromObject(value) {\n if (EventFragment.isEventFragment(value)) {\n return value;\n }\n if (value.type !== \"event\") {\n logger.throwArgumentError(\"invalid event object\", \"value\", value);\n }\n const params = {\n name: verifyIdentifier(value.name),\n anonymous: value.anonymous,\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject) : []),\n type: \"event\"\n };\n return new EventFragment(_constructorGuard, params);\n }\n static fromString(value) {\n let match = value.match(regexParen);\n if (!match) {\n logger.throwArgumentError(\"invalid event string\", \"value\", value);\n }\n let anonymous = false;\n match[3].split(\" \").forEach((modifier) => {\n switch (modifier.trim()) {\n case \"anonymous\":\n anonymous = true;\n break;\n case \"\":\n break;\n default:\n logger.warn(\"unknown modifier: \" + modifier);\n }\n });\n return EventFragment.fromObject({\n name: match[1].trim(),\n anonymous: anonymous,\n inputs: parseParams(match[2], true),\n type: \"event\"\n });\n }\n static isEventFragment(value) {\n return (value && value._isFragment && value.type === \"event\");\n }\n}\nfunction parseGas(value, params) {\n params.gas = null;\n let comps = value.split(\"@\");\n if (comps.length !== 1) {\n if (comps.length > 2) {\n logger.throwArgumentError(\"invalid human-readable ABI signature\", \"value\", value);\n }\n if (!comps[1].match(/^[0-9]+$/)) {\n logger.throwArgumentError(\"invalid human-readable ABI signature gas\", \"value\", value);\n }\n params.gas = BigNumber.from(comps[1]);\n return comps[0];\n }\n return value;\n}\nfunction parseModifiers(value, params) {\n params.constant = false;\n params.payable = false;\n params.stateMutability = \"nonpayable\";\n value.split(\" \").forEach((modifier) => {\n switch (modifier.trim()) {\n case \"constant\":\n params.constant = true;\n break;\n case \"payable\":\n params.payable = true;\n params.stateMutability = \"payable\";\n break;\n case \"nonpayable\":\n params.payable = false;\n params.stateMutability = \"nonpayable\";\n break;\n case \"pure\":\n params.constant = true;\n params.stateMutability = \"pure\";\n break;\n case \"view\":\n params.constant = true;\n params.stateMutability = \"view\";\n break;\n case \"external\":\n case \"public\":\n case \"\":\n break;\n default:\n console.log(\"unknown modifier: \" + modifier);\n }\n });\n}\nfunction verifyState(value) {\n let result = {\n constant: false,\n payable: true,\n stateMutability: \"payable\"\n };\n if (value.stateMutability != null) {\n result.stateMutability = value.stateMutability;\n // Set (and check things are consistent) the constant property\n result.constant = (result.stateMutability === \"view\" || result.stateMutability === \"pure\");\n if (value.constant != null) {\n if ((!!value.constant) !== result.constant) {\n logger.throwArgumentError(\"cannot have constant function with mutability \" + result.stateMutability, \"value\", value);\n }\n }\n // Set (and check things are consistent) the payable property\n result.payable = (result.stateMutability === \"payable\");\n if (value.payable != null) {\n if ((!!value.payable) !== result.payable) {\n logger.throwArgumentError(\"cannot have payable function with mutability \" + result.stateMutability, \"value\", value);\n }\n }\n }\n else if (value.payable != null) {\n result.payable = !!value.payable;\n // If payable we can assume non-constant; otherwise we can't assume\n if (value.constant == null && !result.payable && value.type !== \"constructor\") {\n logger.throwArgumentError(\"unable to determine stateMutability\", \"value\", value);\n }\n result.constant = !!value.constant;\n if (result.constant) {\n result.stateMutability = \"view\";\n }\n else {\n result.stateMutability = (result.payable ? \"payable\" : \"nonpayable\");\n }\n if (result.payable && result.constant) {\n logger.throwArgumentError(\"cannot have constant payable function\", \"value\", value);\n }\n }\n else if (value.constant != null) {\n result.constant = !!value.constant;\n result.payable = !result.constant;\n result.stateMutability = (result.constant ? \"view\" : \"payable\");\n }\n else if (value.type !== \"constructor\") {\n logger.throwArgumentError(\"unable to determine stateMutability\", \"value\", value);\n }\n return result;\n}\nexport class ConstructorFragment extends Fragment {\n format(format) {\n if (!format) {\n format = FormatTypes.sighash;\n }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n if (format === FormatTypes.json) {\n return JSON.stringify({\n type: \"constructor\",\n stateMutability: ((this.stateMutability !== \"nonpayable\") ? this.stateMutability : undefined),\n payable: this.payable,\n gas: (this.gas ? this.gas.toNumber() : undefined),\n inputs: this.inputs.map((input) => JSON.parse(input.format(format)))\n });\n }\n if (format === FormatTypes.sighash) {\n logger.throwError(\"cannot format a constructor for sighash\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"format(sighash)\"\n });\n }\n let result = \"constructor(\" + this.inputs.map((input) => input.format(format)).join((format === FormatTypes.full) ? \", \" : \",\") + \") \";\n if (this.stateMutability && this.stateMutability !== \"nonpayable\") {\n result += this.stateMutability + \" \";\n }\n return result.trim();\n }\n static from(value) {\n if (typeof (value) === \"string\") {\n return ConstructorFragment.fromString(value);\n }\n return ConstructorFragment.fromObject(value);\n }\n static fromObject(value) {\n if (ConstructorFragment.isConstructorFragment(value)) {\n return value;\n }\n if (value.type !== \"constructor\") {\n logger.throwArgumentError(\"invalid constructor object\", \"value\", value);\n }\n let state = verifyState(value);\n if (state.constant) {\n logger.throwArgumentError(\"constructor cannot be constant\", \"value\", value);\n }\n const params = {\n name: null,\n type: value.type,\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject) : []),\n payable: state.payable,\n stateMutability: state.stateMutability,\n gas: (value.gas ? BigNumber.from(value.gas) : null)\n };\n return new ConstructorFragment(_constructorGuard, params);\n }\n static fromString(value) {\n let params = { type: \"constructor\" };\n value = parseGas(value, params);\n let parens = value.match(regexParen);\n if (!parens || parens[1].trim() !== \"constructor\") {\n logger.throwArgumentError(\"invalid constructor string\", \"value\", value);\n }\n params.inputs = parseParams(parens[2].trim(), false);\n parseModifiers(parens[3].trim(), params);\n return ConstructorFragment.fromObject(params);\n }\n static isConstructorFragment(value) {\n return (value && value._isFragment && value.type === \"constructor\");\n }\n}\nexport class FunctionFragment extends ConstructorFragment {\n format(format) {\n if (!format) {\n format = FormatTypes.sighash;\n }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n if (format === FormatTypes.json) {\n return JSON.stringify({\n type: \"function\",\n name: this.name,\n constant: this.constant,\n stateMutability: ((this.stateMutability !== \"nonpayable\") ? this.stateMutability : undefined),\n payable: this.payable,\n gas: (this.gas ? this.gas.toNumber() : undefined),\n inputs: this.inputs.map((input) => JSON.parse(input.format(format))),\n outputs: this.outputs.map((output) => JSON.parse(output.format(format))),\n });\n }\n let result = \"\";\n if (format !== FormatTypes.sighash) {\n result += \"function \";\n }\n result += this.name + \"(\" + this.inputs.map((input) => input.format(format)).join((format === FormatTypes.full) ? \", \" : \",\") + \") \";\n if (format !== FormatTypes.sighash) {\n if (this.stateMutability) {\n if (this.stateMutability !== \"nonpayable\") {\n result += (this.stateMutability + \" \");\n }\n }\n else if (this.constant) {\n result += \"view \";\n }\n if (this.outputs && this.outputs.length) {\n result += \"returns (\" + this.outputs.map((output) => output.format(format)).join(\", \") + \") \";\n }\n if (this.gas != null) {\n result += \"@\" + this.gas.toString() + \" \";\n }\n }\n return result.trim();\n }\n static from(value) {\n if (typeof (value) === \"string\") {\n return FunctionFragment.fromString(value);\n }\n return FunctionFragment.fromObject(value);\n }\n static fromObject(value) {\n if (FunctionFragment.isFunctionFragment(value)) {\n return value;\n }\n if (value.type !== \"function\") {\n logger.throwArgumentError(\"invalid function object\", \"value\", value);\n }\n let state = verifyState(value);\n const params = {\n type: value.type,\n name: verifyIdentifier(value.name),\n constant: state.constant,\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject) : []),\n outputs: (value.outputs ? value.outputs.map(ParamType.fromObject) : []),\n payable: state.payable,\n stateMutability: state.stateMutability,\n gas: (value.gas ? BigNumber.from(value.gas) : null)\n };\n return new FunctionFragment(_constructorGuard, params);\n }\n static fromString(value) {\n let params = { type: \"function\" };\n value = parseGas(value, params);\n let comps = value.split(\" returns \");\n if (comps.length > 2) {\n logger.throwArgumentError(\"invalid function string\", \"value\", value);\n }\n let parens = comps[0].match(regexParen);\n if (!parens) {\n logger.throwArgumentError(\"invalid function signature\", \"value\", value);\n }\n params.name = parens[1].trim();\n if (params.name) {\n verifyIdentifier(params.name);\n }\n params.inputs = parseParams(parens[2], false);\n parseModifiers(parens[3].trim(), params);\n // We have outputs\n if (comps.length > 1) {\n let returns = comps[1].match(regexParen);\n if (returns[1].trim() != \"\" || returns[3].trim() != \"\") {\n logger.throwArgumentError(\"unexpected tokens\", \"value\", value);\n }\n params.outputs = parseParams(returns[2], false);\n }\n else {\n params.outputs = [];\n }\n return FunctionFragment.fromObject(params);\n }\n static isFunctionFragment(value) {\n return (value && value._isFragment && value.type === \"function\");\n }\n}\n//export class StructFragment extends Fragment {\n//}\nfunction checkForbidden(fragment) {\n const sig = fragment.format();\n if (sig === \"Error(string)\" || sig === \"Panic(uint256)\") {\n logger.throwArgumentError(`cannot specify user defined ${sig} error`, \"fragment\", fragment);\n }\n return fragment;\n}\nexport class ErrorFragment extends Fragment {\n format(format) {\n if (!format) {\n format = FormatTypes.sighash;\n }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n if (format === FormatTypes.json) {\n return JSON.stringify({\n type: \"error\",\n name: this.name,\n inputs: this.inputs.map((input) => JSON.parse(input.format(format))),\n });\n }\n let result = \"\";\n if (format !== FormatTypes.sighash) {\n result += \"error \";\n }\n result += this.name + \"(\" + this.inputs.map((input) => input.format(format)).join((format === FormatTypes.full) ? \", \" : \",\") + \") \";\n return result.trim();\n }\n static from(value) {\n if (typeof (value) === \"string\") {\n return ErrorFragment.fromString(value);\n }\n return ErrorFragment.fromObject(value);\n }\n static fromObject(value) {\n if (ErrorFragment.isErrorFragment(value)) {\n return value;\n }\n if (value.type !== \"error\") {\n logger.throwArgumentError(\"invalid error object\", \"value\", value);\n }\n const params = {\n type: value.type,\n name: verifyIdentifier(value.name),\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject) : [])\n };\n return checkForbidden(new ErrorFragment(_constructorGuard, params));\n }\n static fromString(value) {\n let params = { type: \"error\" };\n let parens = value.match(regexParen);\n if (!parens) {\n logger.throwArgumentError(\"invalid error signature\", \"value\", value);\n }\n params.name = parens[1].trim();\n if (params.name) {\n verifyIdentifier(params.name);\n }\n params.inputs = parseParams(parens[2], false);\n return checkForbidden(ErrorFragment.fromObject(params));\n }\n static isErrorFragment(value) {\n return (value && value._isFragment && value.type === \"error\");\n }\n}\nfunction verifyType(type) {\n // These need to be transformed to their full description\n if (type.match(/^uint($|[^1-9])/)) {\n type = \"uint256\" + type.substring(4);\n }\n else if (type.match(/^int($|[^1-9])/)) {\n type = \"int256\" + type.substring(3);\n }\n // @TODO: more verification\n return type;\n}\n// See: https://github.com/ethereum/solidity/blob/1f8f1a3db93a548d0555e3e14cfc55a10e25b60e/docs/grammar/SolidityLexer.g4#L234\nconst regexIdentifier = new RegExp(\"^[a-zA-Z$_][a-zA-Z0-9$_]*$\");\nfunction verifyIdentifier(value) {\n if (!value || !value.match(regexIdentifier)) {\n logger.throwArgumentError(`invalid identifier \"${value}\"`, \"value\", value);\n }\n return value;\n}\nconst regexParen = new RegExp(\"^([^)(]*)\\\\((.*)\\\\)([^)(]*)$\");\nfunction splitNesting(value) {\n value = value.trim();\n let result = [];\n let accum = \"\";\n let depth = 0;\n for (let offset = 0; offset < value.length; offset++) {\n let c = value[offset];\n if (c === \",\" && depth === 0) {\n result.push(accum);\n accum = \"\";\n }\n else {\n accum += c;\n if (c === \"(\") {\n depth++;\n }\n else if (c === \")\") {\n depth--;\n if (depth === -1) {\n logger.throwArgumentError(\"unbalanced parenthesis\", \"value\", value);\n }\n }\n }\n }\n if (accum) {\n result.push(accum);\n }\n return result;\n}\n//# sourceMappingURL=fragments.js.map","\"use strict\";\nimport { arrayify, concat, hexConcat, hexlify } from \"@ethersproject/bytes\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"../_version\";\nconst logger = new Logger(version);\nexport function checkResultErrors(result) {\n // Find the first error (if any)\n const errors = [];\n const checkErrors = function (path, object) {\n if (!Array.isArray(object)) {\n return;\n }\n for (let key in object) {\n const childPath = path.slice();\n childPath.push(key);\n try {\n checkErrors(childPath, object[key]);\n }\n catch (error) {\n errors.push({ path: childPath, error: error });\n }\n }\n };\n checkErrors([], result);\n return errors;\n}\nexport class Coder {\n constructor(name, type, localName, dynamic) {\n // @TODO: defineReadOnly these\n this.name = name;\n this.type = type;\n this.localName = localName;\n this.dynamic = dynamic;\n }\n _throwError(message, value) {\n logger.throwArgumentError(message, this.localName, value);\n }\n}\nexport class Writer {\n constructor(wordSize) {\n defineReadOnly(this, \"wordSize\", wordSize || 32);\n this._data = [];\n this._dataLength = 0;\n this._padding = new Uint8Array(wordSize);\n }\n get data() {\n return hexConcat(this._data);\n }\n get length() { return this._dataLength; }\n _writeData(data) {\n this._data.push(data);\n this._dataLength += data.length;\n return data.length;\n }\n appendWriter(writer) {\n return this._writeData(concat(writer._data));\n }\n // Arrayish items; padded on the right to wordSize\n writeBytes(value) {\n let bytes = arrayify(value);\n const paddingOffset = bytes.length % this.wordSize;\n if (paddingOffset) {\n bytes = concat([bytes, this._padding.slice(paddingOffset)]);\n }\n return this._writeData(bytes);\n }\n _getValue(value) {\n let bytes = arrayify(BigNumber.from(value));\n if (bytes.length > this.wordSize) {\n logger.throwError(\"value out-of-bounds\", Logger.errors.BUFFER_OVERRUN, {\n length: this.wordSize,\n offset: bytes.length\n });\n }\n if (bytes.length % this.wordSize) {\n bytes = concat([this._padding.slice(bytes.length % this.wordSize), bytes]);\n }\n return bytes;\n }\n // BigNumberish items; padded on the left to wordSize\n writeValue(value) {\n return this._writeData(this._getValue(value));\n }\n writeUpdatableValue() {\n const offset = this._data.length;\n this._data.push(this._padding);\n this._dataLength += this.wordSize;\n return (value) => {\n this._data[offset] = this._getValue(value);\n };\n }\n}\nexport class Reader {\n constructor(data, wordSize, coerceFunc, allowLoose) {\n defineReadOnly(this, \"_data\", arrayify(data));\n defineReadOnly(this, \"wordSize\", wordSize || 32);\n defineReadOnly(this, \"_coerceFunc\", coerceFunc);\n defineReadOnly(this, \"allowLoose\", allowLoose);\n this._offset = 0;\n }\n get data() { return hexlify(this._data); }\n get consumed() { return this._offset; }\n // The default Coerce function\n static coerce(name, value) {\n let match = name.match(\"^u?int([0-9]+)$\");\n if (match && parseInt(match[1]) <= 48) {\n value = value.toNumber();\n }\n return value;\n }\n coerce(name, value) {\n if (this._coerceFunc) {\n return this._coerceFunc(name, value);\n }\n return Reader.coerce(name, value);\n }\n _peekBytes(offset, length, loose) {\n let alignedLength = Math.ceil(length / this.wordSize) * this.wordSize;\n if (this._offset + alignedLength > this._data.length) {\n if (this.allowLoose && loose && this._offset + length <= this._data.length) {\n alignedLength = length;\n }\n else {\n logger.throwError(\"data out-of-bounds\", Logger.errors.BUFFER_OVERRUN, {\n length: this._data.length,\n offset: this._offset + alignedLength\n });\n }\n }\n return this._data.slice(this._offset, this._offset + alignedLength);\n }\n subReader(offset) {\n return new Reader(this._data.slice(this._offset + offset), this.wordSize, this._coerceFunc, this.allowLoose);\n }\n readBytes(length, loose) {\n let bytes = this._peekBytes(0, length, !!loose);\n this._offset += bytes.length;\n // @TODO: Make sure the length..end bytes are all 0?\n return bytes.slice(0, length);\n }\n readValue() {\n return BigNumber.from(this.readBytes(this.wordSize));\n }\n}\n//# sourceMappingURL=abstract-coder.js.map","/**\n * [js-sha3]{@link https://github.com/emn178/js-sha3}\n *\n * @version 0.8.0\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\n * @copyright Chen, Yi-Cyuan 2015-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_SHA3_NO_WINDOW) {\n WINDOW = false;\n }\n var WEB_WORKER = !WINDOW && typeof self === 'object';\n var NODE_JS = !root.JS_SHA3_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_SHA3_NO_COMMON_JS && typeof module === 'object' && module.exports;\n var AMD = typeof define === 'function' && define.amd;\n var ARRAY_BUFFER = !root.JS_SHA3_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';\n var HEX_CHARS = '0123456789abcdef'.split('');\n var SHAKE_PADDING = [31, 7936, 2031616, 520093696];\n var CSHAKE_PADDING = [4, 1024, 262144, 67108864];\n var KECCAK_PADDING = [1, 256, 65536, 16777216];\n var PADDING = [6, 1536, 393216, 100663296];\n var SHIFT = [0, 8, 16, 24];\n var RC = [1, 0, 32898, 0, 32906, 2147483648, 2147516416, 2147483648, 32907, 0, 2147483649,\n 0, 2147516545, 2147483648, 32777, 2147483648, 138, 0, 136, 0, 2147516425, 0,\n 2147483658, 0, 2147516555, 0, 139, 2147483648, 32905, 2147483648, 32771,\n 2147483648, 32770, 2147483648, 128, 2147483648, 32778, 0, 2147483658, 2147483648,\n 2147516545, 2147483648, 32896, 2147483648, 2147483649, 0, 2147516424, 2147483648];\n var BITS = [224, 256, 384, 512];\n var SHAKE_BITS = [128, 256];\n var OUTPUT_TYPES = ['hex', 'buffer', 'arrayBuffer', 'array', 'digest'];\n var CSHAKE_BYTEPAD = {\n '128': 168,\n '256': 136\n };\n\n if (root.JS_SHA3_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_SHA3_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 (bits, padding, outputType) {\n return function (message) {\n return new Keccak(bits, padding, bits).update(message)[outputType]();\n };\n };\n\n var createShakeOutputMethod = function (bits, padding, outputType) {\n return function (message, outputBits) {\n return new Keccak(bits, padding, outputBits).update(message)[outputType]();\n };\n };\n\n var createCshakeOutputMethod = function (bits, padding, outputType) {\n return function (message, outputBits, n, s) {\n return methods['cshake' + bits].update(message, outputBits, n, s)[outputType]();\n };\n };\n\n var createKmacOutputMethod = function (bits, padding, outputType) {\n return function (key, message, outputBits, s) {\n return methods['kmac' + bits].update(key, message, outputBits, s)[outputType]();\n };\n };\n\n var createOutputMethods = function (method, createMethod, bits, padding) {\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createMethod(bits, padding, type);\n }\n return method;\n };\n\n var createMethod = function (bits, padding) {\n var method = createOutputMethod(bits, padding, 'hex');\n method.create = function () {\n return new Keccak(bits, padding, bits);\n };\n method.update = function (message) {\n return method.create().update(message);\n };\n return createOutputMethods(method, createOutputMethod, bits, padding);\n };\n\n var createShakeMethod = function (bits, padding) {\n var method = createShakeOutputMethod(bits, padding, 'hex');\n method.create = function (outputBits) {\n return new Keccak(bits, padding, outputBits);\n };\n method.update = function (message, outputBits) {\n return method.create(outputBits).update(message);\n };\n return createOutputMethods(method, createShakeOutputMethod, bits, padding);\n };\n\n var createCshakeMethod = function (bits, padding) {\n var w = CSHAKE_BYTEPAD[bits];\n var method = createCshakeOutputMethod(bits, padding, 'hex');\n method.create = function (outputBits, n, s) {\n if (!n && !s) {\n return methods['shake' + bits].create(outputBits);\n } else {\n return new Keccak(bits, padding, outputBits).bytepad([n, s], w);\n }\n };\n method.update = function (message, outputBits, n, s) {\n return method.create(outputBits, n, s).update(message);\n };\n return createOutputMethods(method, createCshakeOutputMethod, bits, padding);\n };\n\n var createKmacMethod = function (bits, padding) {\n var w = CSHAKE_BYTEPAD[bits];\n var method = createKmacOutputMethod(bits, padding, 'hex');\n method.create = function (key, outputBits, s) {\n return new Kmac(bits, padding, outputBits).bytepad(['KMAC', s], w).bytepad([key], w);\n };\n method.update = function (key, message, outputBits, s) {\n return method.create(key, outputBits, s).update(message);\n };\n return createOutputMethods(method, createKmacOutputMethod, bits, padding);\n };\n\n var algorithms = [\n { name: 'keccak', padding: KECCAK_PADDING, bits: BITS, createMethod: createMethod },\n { name: 'sha3', padding: PADDING, bits: BITS, createMethod: createMethod },\n { name: 'shake', padding: SHAKE_PADDING, bits: SHAKE_BITS, createMethod: createShakeMethod },\n { name: 'cshake', padding: CSHAKE_PADDING, bits: SHAKE_BITS, createMethod: createCshakeMethod },\n { name: 'kmac', padding: CSHAKE_PADDING, bits: SHAKE_BITS, createMethod: createKmacMethod }\n ];\n\n var methods = {}, methodNames = [];\n\n for (var i = 0; i < algorithms.length; ++i) {\n var algorithm = algorithms[i];\n var bits = algorithm.bits;\n for (var j = 0; j < bits.length; ++j) {\n var methodName = algorithm.name + '_' + bits[j];\n methodNames.push(methodName);\n methods[methodName] = algorithm.createMethod(bits[j], algorithm.padding);\n if (algorithm.name !== 'sha3') {\n var newMethodName = algorithm.name + bits[j];\n methodNames.push(newMethodName);\n methods[newMethodName] = methods[methodName];\n }\n }\n }\n\n function Keccak(bits, padding, outputBits) {\n this.blocks = [];\n this.s = [];\n this.padding = padding;\n this.outputBits = outputBits;\n this.reset = true;\n this.finalized = false;\n this.block = 0;\n this.start = 0;\n this.blockCount = (1600 - (bits << 1)) >> 5;\n this.byteCount = this.blockCount << 2;\n this.outputBlocks = outputBits >> 5;\n this.extraBytes = (outputBits & 31) >> 3;\n\n for (var i = 0; i < 50; ++i) {\n this.s[i] = 0;\n }\n }\n\n Keccak.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 blocks = this.blocks, byteCount = this.byteCount, length = message.length,\n blockCount = this.blockCount, index = 0, s = this.s, i, code;\n\n while (index < length) {\n if (this.reset) {\n this.reset = false;\n blocks[0] = this.block;\n for (i = 1; i < blockCount + 1; ++i) {\n blocks[i] = 0;\n }\n }\n if (notString) {\n for (i = this.start; index < length && i < byteCount; ++index) {\n blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];\n }\n } else {\n for (i = this.start; index < length && i < byteCount; ++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 this.lastByteIndex = i;\n if (i >= byteCount) {\n this.start = i - byteCount;\n this.block = blocks[blockCount];\n for (i = 0; i < blockCount; ++i) {\n s[i] ^= blocks[i];\n }\n f(s);\n this.reset = true;\n } else {\n this.start = i;\n }\n }\n return this;\n };\n\n Keccak.prototype.encode = function (x, right) {\n var o = x & 255, n = 1;\n var bytes = [o];\n x = x >> 8;\n o = x & 255;\n while (o > 0) {\n bytes.unshift(o);\n x = x >> 8;\n o = x & 255;\n ++n;\n }\n if (right) {\n bytes.push(n);\n } else {\n bytes.unshift(n);\n }\n this.update(bytes);\n return bytes.length;\n };\n\n Keccak.prototype.encodeString = function (str) {\n var notString, type = typeof str;\n if (type !== 'string') {\n if (type === 'object') {\n if (str === null) {\n throw new Error(INPUT_ERROR);\n } else if (ARRAY_BUFFER && str.constructor === ArrayBuffer) {\n str = new Uint8Array(str);\n } else if (!Array.isArray(str)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(str)) {\n throw new Error(INPUT_ERROR);\n }\n }\n } else {\n throw new Error(INPUT_ERROR);\n }\n notString = true;\n }\n var bytes = 0, length = str.length;\n if (notString) {\n bytes = length;\n } else {\n for (var i = 0; i < str.length; ++i) {\n var code = str.charCodeAt(i);\n if (code < 0x80) {\n bytes += 1;\n } else if (code < 0x800) {\n bytes += 2;\n } else if (code < 0xd800 || code >= 0xe000) {\n bytes += 3;\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (str.charCodeAt(++i) & 0x3ff));\n bytes += 4;\n }\n }\n }\n bytes += this.encode(bytes * 8);\n this.update(str);\n return bytes;\n };\n\n Keccak.prototype.bytepad = function (strs, w) {\n var bytes = this.encode(w);\n for (var i = 0; i < strs.length; ++i) {\n bytes += this.encodeString(strs[i]);\n }\n var paddingBytes = w - bytes % w;\n var zeros = [];\n zeros.length = paddingBytes;\n this.update(zeros);\n return this;\n };\n\n Keccak.prototype.finalize = function () {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n var blocks = this.blocks, i = this.lastByteIndex, blockCount = this.blockCount, s = this.s;\n blocks[i >> 2] |= this.padding[i & 3];\n if (this.lastByteIndex === this.byteCount) {\n blocks[0] = blocks[blockCount];\n for (i = 1; i < blockCount + 1; ++i) {\n blocks[i] = 0;\n }\n }\n blocks[blockCount - 1] |= 0x80000000;\n for (i = 0; i < blockCount; ++i) {\n s[i] ^= blocks[i];\n }\n f(s);\n };\n\n Keccak.prototype.toString = Keccak.prototype.hex = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var hex = '', block;\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n block = s[i];\n hex += HEX_CHARS[(block >> 4) & 0x0F] + HEX_CHARS[block & 0x0F] +\n HEX_CHARS[(block >> 12) & 0x0F] + HEX_CHARS[(block >> 8) & 0x0F] +\n HEX_CHARS[(block >> 20) & 0x0F] + HEX_CHARS[(block >> 16) & 0x0F] +\n HEX_CHARS[(block >> 28) & 0x0F] + HEX_CHARS[(block >> 24) & 0x0F];\n }\n if (j % blockCount === 0) {\n f(s);\n i = 0;\n }\n }\n if (extraBytes) {\n block = s[i];\n hex += HEX_CHARS[(block >> 4) & 0x0F] + HEX_CHARS[block & 0x0F];\n if (extraBytes > 1) {\n hex += HEX_CHARS[(block >> 12) & 0x0F] + HEX_CHARS[(block >> 8) & 0x0F];\n }\n if (extraBytes > 2) {\n hex += HEX_CHARS[(block >> 20) & 0x0F] + HEX_CHARS[(block >> 16) & 0x0F];\n }\n }\n return hex;\n };\n\n Keccak.prototype.arrayBuffer = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var bytes = this.outputBits >> 3;\n var buffer;\n if (extraBytes) {\n buffer = new ArrayBuffer((outputBlocks + 1) << 2);\n } else {\n buffer = new ArrayBuffer(bytes);\n }\n var array = new Uint32Array(buffer);\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n array[j] = s[i];\n }\n if (j % blockCount === 0) {\n f(s);\n }\n }\n if (extraBytes) {\n array[i] = s[i];\n buffer = buffer.slice(0, bytes);\n }\n return buffer;\n };\n\n Keccak.prototype.buffer = Keccak.prototype.arrayBuffer;\n\n Keccak.prototype.digest = Keccak.prototype.array = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var array = [], offset, block;\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n offset = j << 2;\n block = s[i];\n array[offset] = block & 0xFF;\n array[offset + 1] = (block >> 8) & 0xFF;\n array[offset + 2] = (block >> 16) & 0xFF;\n array[offset + 3] = (block >> 24) & 0xFF;\n }\n if (j % blockCount === 0) {\n f(s);\n }\n }\n if (extraBytes) {\n offset = j << 2;\n block = s[i];\n array[offset] = block & 0xFF;\n if (extraBytes > 1) {\n array[offset + 1] = (block >> 8) & 0xFF;\n }\n if (extraBytes > 2) {\n array[offset + 2] = (block >> 16) & 0xFF;\n }\n }\n return array;\n };\n\n function Kmac(bits, padding, outputBits) {\n Keccak.call(this, bits, padding, outputBits);\n }\n\n Kmac.prototype = new Keccak();\n\n Kmac.prototype.finalize = function () {\n this.encode(this.outputBits, true);\n return Keccak.prototype.finalize.call(this);\n };\n\n var f = function (s) {\n var h, l, n, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9,\n b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16, b17,\n b18, b19, b20, b21, b22, b23, b24, b25, b26, b27, b28, b29, b30, b31, b32, b33,\n b34, b35, b36, b37, b38, b39, b40, b41, b42, b43, b44, b45, b46, b47, b48, b49;\n for (n = 0; n < 48; n += 2) {\n c0 = s[0] ^ s[10] ^ s[20] ^ s[30] ^ s[40];\n c1 = s[1] ^ s[11] ^ s[21] ^ s[31] ^ s[41];\n c2 = s[2] ^ s[12] ^ s[22] ^ s[32] ^ s[42];\n c3 = s[3] ^ s[13] ^ s[23] ^ s[33] ^ s[43];\n c4 = s[4] ^ s[14] ^ s[24] ^ s[34] ^ s[44];\n c5 = s[5] ^ s[15] ^ s[25] ^ s[35] ^ s[45];\n c6 = s[6] ^ s[16] ^ s[26] ^ s[36] ^ s[46];\n c7 = s[7] ^ s[17] ^ s[27] ^ s[37] ^ s[47];\n c8 = s[8] ^ s[18] ^ s[28] ^ s[38] ^ s[48];\n c9 = s[9] ^ s[19] ^ s[29] ^ s[39] ^ s[49];\n\n h = c8 ^ ((c2 << 1) | (c3 >>> 31));\n l = c9 ^ ((c3 << 1) | (c2 >>> 31));\n s[0] ^= h;\n s[1] ^= l;\n s[10] ^= h;\n s[11] ^= l;\n s[20] ^= h;\n s[21] ^= l;\n s[30] ^= h;\n s[31] ^= l;\n s[40] ^= h;\n s[41] ^= l;\n h = c0 ^ ((c4 << 1) | (c5 >>> 31));\n l = c1 ^ ((c5 << 1) | (c4 >>> 31));\n s[2] ^= h;\n s[3] ^= l;\n s[12] ^= h;\n s[13] ^= l;\n s[22] ^= h;\n s[23] ^= l;\n s[32] ^= h;\n s[33] ^= l;\n s[42] ^= h;\n s[43] ^= l;\n h = c2 ^ ((c6 << 1) | (c7 >>> 31));\n l = c3 ^ ((c7 << 1) | (c6 >>> 31));\n s[4] ^= h;\n s[5] ^= l;\n s[14] ^= h;\n s[15] ^= l;\n s[24] ^= h;\n s[25] ^= l;\n s[34] ^= h;\n s[35] ^= l;\n s[44] ^= h;\n s[45] ^= l;\n h = c4 ^ ((c8 << 1) | (c9 >>> 31));\n l = c5 ^ ((c9 << 1) | (c8 >>> 31));\n s[6] ^= h;\n s[7] ^= l;\n s[16] ^= h;\n s[17] ^= l;\n s[26] ^= h;\n s[27] ^= l;\n s[36] ^= h;\n s[37] ^= l;\n s[46] ^= h;\n s[47] ^= l;\n h = c6 ^ ((c0 << 1) | (c1 >>> 31));\n l = c7 ^ ((c1 << 1) | (c0 >>> 31));\n s[8] ^= h;\n s[9] ^= l;\n s[18] ^= h;\n s[19] ^= l;\n s[28] ^= h;\n s[29] ^= l;\n s[38] ^= h;\n s[39] ^= l;\n s[48] ^= h;\n s[49] ^= l;\n\n b0 = s[0];\n b1 = s[1];\n b32 = (s[11] << 4) | (s[10] >>> 28);\n b33 = (s[10] << 4) | (s[11] >>> 28);\n b14 = (s[20] << 3) | (s[21] >>> 29);\n b15 = (s[21] << 3) | (s[20] >>> 29);\n b46 = (s[31] << 9) | (s[30] >>> 23);\n b47 = (s[30] << 9) | (s[31] >>> 23);\n b28 = (s[40] << 18) | (s[41] >>> 14);\n b29 = (s[41] << 18) | (s[40] >>> 14);\n b20 = (s[2] << 1) | (s[3] >>> 31);\n b21 = (s[3] << 1) | (s[2] >>> 31);\n b2 = (s[13] << 12) | (s[12] >>> 20);\n b3 = (s[12] << 12) | (s[13] >>> 20);\n b34 = (s[22] << 10) | (s[23] >>> 22);\n b35 = (s[23] << 10) | (s[22] >>> 22);\n b16 = (s[33] << 13) | (s[32] >>> 19);\n b17 = (s[32] << 13) | (s[33] >>> 19);\n b48 = (s[42] << 2) | (s[43] >>> 30);\n b49 = (s[43] << 2) | (s[42] >>> 30);\n b40 = (s[5] << 30) | (s[4] >>> 2);\n b41 = (s[4] << 30) | (s[5] >>> 2);\n b22 = (s[14] << 6) | (s[15] >>> 26);\n b23 = (s[15] << 6) | (s[14] >>> 26);\n b4 = (s[25] << 11) | (s[24] >>> 21);\n b5 = (s[24] << 11) | (s[25] >>> 21);\n b36 = (s[34] << 15) | (s[35] >>> 17);\n b37 = (s[35] << 15) | (s[34] >>> 17);\n b18 = (s[45] << 29) | (s[44] >>> 3);\n b19 = (s[44] << 29) | (s[45] >>> 3);\n b10 = (s[6] << 28) | (s[7] >>> 4);\n b11 = (s[7] << 28) | (s[6] >>> 4);\n b42 = (s[17] << 23) | (s[16] >>> 9);\n b43 = (s[16] << 23) | (s[17] >>> 9);\n b24 = (s[26] << 25) | (s[27] >>> 7);\n b25 = (s[27] << 25) | (s[26] >>> 7);\n b6 = (s[36] << 21) | (s[37] >>> 11);\n b7 = (s[37] << 21) | (s[36] >>> 11);\n b38 = (s[47] << 24) | (s[46] >>> 8);\n b39 = (s[46] << 24) | (s[47] >>> 8);\n b30 = (s[8] << 27) | (s[9] >>> 5);\n b31 = (s[9] << 27) | (s[8] >>> 5);\n b12 = (s[18] << 20) | (s[19] >>> 12);\n b13 = (s[19] << 20) | (s[18] >>> 12);\n b44 = (s[29] << 7) | (s[28] >>> 25);\n b45 = (s[28] << 7) | (s[29] >>> 25);\n b26 = (s[38] << 8) | (s[39] >>> 24);\n b27 = (s[39] << 8) | (s[38] >>> 24);\n b8 = (s[48] << 14) | (s[49] >>> 18);\n b9 = (s[49] << 14) | (s[48] >>> 18);\n\n s[0] = b0 ^ (~b2 & b4);\n s[1] = b1 ^ (~b3 & b5);\n s[10] = b10 ^ (~b12 & b14);\n s[11] = b11 ^ (~b13 & b15);\n s[20] = b20 ^ (~b22 & b24);\n s[21] = b21 ^ (~b23 & b25);\n s[30] = b30 ^ (~b32 & b34);\n s[31] = b31 ^ (~b33 & b35);\n s[40] = b40 ^ (~b42 & b44);\n s[41] = b41 ^ (~b43 & b45);\n s[2] = b2 ^ (~b4 & b6);\n s[3] = b3 ^ (~b5 & b7);\n s[12] = b12 ^ (~b14 & b16);\n s[13] = b13 ^ (~b15 & b17);\n s[22] = b22 ^ (~b24 & b26);\n s[23] = b23 ^ (~b25 & b27);\n s[32] = b32 ^ (~b34 & b36);\n s[33] = b33 ^ (~b35 & b37);\n s[42] = b42 ^ (~b44 & b46);\n s[43] = b43 ^ (~b45 & b47);\n s[4] = b4 ^ (~b6 & b8);\n s[5] = b5 ^ (~b7 & b9);\n s[14] = b14 ^ (~b16 & b18);\n s[15] = b15 ^ (~b17 & b19);\n s[24] = b24 ^ (~b26 & b28);\n s[25] = b25 ^ (~b27 & b29);\n s[34] = b34 ^ (~b36 & b38);\n s[35] = b35 ^ (~b37 & b39);\n s[44] = b44 ^ (~b46 & b48);\n s[45] = b45 ^ (~b47 & b49);\n s[6] = b6 ^ (~b8 & b0);\n s[7] = b7 ^ (~b9 & b1);\n s[16] = b16 ^ (~b18 & b10);\n s[17] = b17 ^ (~b19 & b11);\n s[26] = b26 ^ (~b28 & b20);\n s[27] = b27 ^ (~b29 & b21);\n s[36] = b36 ^ (~b38 & b30);\n s[37] = b37 ^ (~b39 & b31);\n s[46] = b46 ^ (~b48 & b40);\n s[47] = b47 ^ (~b49 & b41);\n s[8] = b8 ^ (~b0 & b2);\n s[9] = b9 ^ (~b1 & b3);\n s[18] = b18 ^ (~b10 & b12);\n s[19] = b19 ^ (~b11 & b13);\n s[28] = b28 ^ (~b20 & b22);\n s[29] = b29 ^ (~b21 & b23);\n s[38] = b38 ^ (~b30 & b32);\n s[39] = b39 ^ (~b31 & b33);\n s[48] = b48 ^ (~b40 & b42);\n s[49] = b49 ^ (~b41 & b43);\n\n s[0] ^= RC[n];\n s[1] ^= RC[n + 1];\n }\n };\n\n if (COMMON_JS) {\n module.exports = methods;\n } else {\n for (i = 0; i < methodNames.length; ++i) {\n root[methodNames[i]] = methods[methodNames[i]];\n }\n if (AMD) {\n define(function () {\n return methods;\n });\n }\n }\n})();\n","\"use strict\";\nimport sha3 from \"js-sha3\";\nimport { arrayify } from \"@ethersproject/bytes\";\nexport function keccak256(data) {\n return '0x' + sha3.keccak_256(arrayify(data));\n}\n//# sourceMappingURL=index.js.map","export const version = \"rlp/5.8.0\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\n//See: https://github.com/ethereum/wiki/wiki/RLP\nimport { arrayify, hexlify, isBytesLike } from \"@ethersproject/bytes\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nfunction arrayifyInteger(value) {\n const result = [];\n while (value) {\n result.unshift(value & 0xff);\n value >>= 8;\n }\n return result;\n}\nfunction unarrayifyInteger(data, offset, length) {\n let result = 0;\n for (let i = 0; i < length; i++) {\n result = (result * 256) + data[offset + i];\n }\n return result;\n}\nfunction _encode(object) {\n if (Array.isArray(object)) {\n let payload = [];\n object.forEach(function (child) {\n payload = payload.concat(_encode(child));\n });\n if (payload.length <= 55) {\n payload.unshift(0xc0 + payload.length);\n return payload;\n }\n const length = arrayifyInteger(payload.length);\n length.unshift(0xf7 + length.length);\n return length.concat(payload);\n }\n if (!isBytesLike(object)) {\n logger.throwArgumentError(\"RLP object must be BytesLike\", \"object\", object);\n }\n const data = Array.prototype.slice.call(arrayify(object));\n if (data.length === 1 && data[0] <= 0x7f) {\n return data;\n }\n else if (data.length <= 55) {\n data.unshift(0x80 + data.length);\n return data;\n }\n const length = arrayifyInteger(data.length);\n length.unshift(0xb7 + length.length);\n return length.concat(data);\n}\nexport function encode(object) {\n return hexlify(_encode(object));\n}\nfunction _decodeChildren(data, offset, childOffset, length) {\n const result = [];\n while (childOffset < offset + 1 + length) {\n const decoded = _decode(data, childOffset);\n result.push(decoded.result);\n childOffset += decoded.consumed;\n if (childOffset > offset + 1 + length) {\n logger.throwError(\"child data too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n }\n return { consumed: (1 + length), result: result };\n}\n// returns { consumed: number, result: Object }\nfunction _decode(data, offset) {\n if (data.length === 0) {\n logger.throwError(\"data too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n // Array with extra length prefix\n if (data[offset] >= 0xf8) {\n const lengthLength = data[offset] - 0xf7;\n if (offset + 1 + lengthLength > data.length) {\n logger.throwError(\"data short segment too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n const length = unarrayifyInteger(data, offset + 1, lengthLength);\n if (offset + 1 + lengthLength + length > data.length) {\n logger.throwError(\"data long segment too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n return _decodeChildren(data, offset, offset + 1 + lengthLength, lengthLength + length);\n }\n else if (data[offset] >= 0xc0) {\n const length = data[offset] - 0xc0;\n if (offset + 1 + length > data.length) {\n logger.throwError(\"data array too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n return _decodeChildren(data, offset, offset + 1, length);\n }\n else if (data[offset] >= 0xb8) {\n const lengthLength = data[offset] - 0xb7;\n if (offset + 1 + lengthLength > data.length) {\n logger.throwError(\"data array too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n const length = unarrayifyInteger(data, offset + 1, lengthLength);\n if (offset + 1 + lengthLength + length > data.length) {\n logger.throwError(\"data array too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n const result = hexlify(data.slice(offset + 1 + lengthLength, offset + 1 + lengthLength + length));\n return { consumed: (1 + lengthLength + length), result: result };\n }\n else if (data[offset] >= 0x80) {\n const length = data[offset] - 0x80;\n if (offset + 1 + length > data.length) {\n logger.throwError(\"data too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n const result = hexlify(data.slice(offset + 1, offset + 1 + length));\n return { consumed: (1 + length), result: result };\n }\n return { consumed: 1, result: hexlify(data[offset]) };\n}\nexport function decode(data) {\n const bytes = arrayify(data);\n const decoded = _decode(bytes, 0);\n if (decoded.consumed !== bytes.length) {\n logger.throwArgumentError(\"invalid rlp data\", \"data\", data);\n }\n return decoded.result;\n}\n//# sourceMappingURL=index.js.map","export const version = \"address/5.8.0\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nimport { arrayify, concat, hexDataLength, hexDataSlice, isHexString, stripZeros } from \"@ethersproject/bytes\";\nimport { BigNumber, _base16To36, _base36To16 } from \"@ethersproject/bignumber\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { encode } from \"@ethersproject/rlp\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nfunction getChecksumAddress(address) {\n if (!isHexString(address, 20)) {\n logger.throwArgumentError(\"invalid address\", \"address\", address);\n }\n address = address.toLowerCase();\n const chars = address.substring(2).split(\"\");\n const expanded = new Uint8Array(40);\n for (let i = 0; i < 40; i++) {\n expanded[i] = chars[i].charCodeAt(0);\n }\n const hashed = arrayify(keccak256(expanded));\n for (let i = 0; i < 40; i += 2) {\n if ((hashed[i >> 1] >> 4) >= 8) {\n chars[i] = chars[i].toUpperCase();\n }\n if ((hashed[i >> 1] & 0x0f) >= 8) {\n chars[i + 1] = chars[i + 1].toUpperCase();\n }\n }\n return \"0x\" + chars.join(\"\");\n}\n// Shims for environments that are missing some required constants and functions\nconst MAX_SAFE_INTEGER = 0x1fffffffffffff;\nfunction log10(x) {\n if (Math.log10) {\n return Math.log10(x);\n }\n return Math.log(x) / Math.LN10;\n}\n// See: https://en.wikipedia.org/wiki/International_Bank_Account_Number\n// Create lookup table\nconst ibanLookup = {};\nfor (let i = 0; i < 10; i++) {\n ibanLookup[String(i)] = String(i);\n}\nfor (let i = 0; i < 26; i++) {\n ibanLookup[String.fromCharCode(65 + i)] = String(10 + i);\n}\n// How many decimal digits can we process? (for 64-bit float, this is 15)\nconst safeDigits = Math.floor(log10(MAX_SAFE_INTEGER));\nfunction ibanChecksum(address) {\n address = address.toUpperCase();\n address = address.substring(4) + address.substring(0, 2) + \"00\";\n let expanded = address.split(\"\").map((c) => { return ibanLookup[c]; }).join(\"\");\n // Javascript can handle integers safely up to 15 (decimal) digits\n while (expanded.length >= safeDigits) {\n let block = expanded.substring(0, safeDigits);\n expanded = parseInt(block, 10) % 97 + expanded.substring(block.length);\n }\n let checksum = String(98 - (parseInt(expanded, 10) % 97));\n while (checksum.length < 2) {\n checksum = \"0\" + checksum;\n }\n return checksum;\n}\n;\nexport function getAddress(address) {\n let result = null;\n if (typeof (address) !== \"string\") {\n logger.throwArgumentError(\"invalid address\", \"address\", address);\n }\n if (address.match(/^(0x)?[0-9a-fA-F]{40}$/)) {\n // Missing the 0x prefix\n if (address.substring(0, 2) !== \"0x\") {\n address = \"0x\" + address;\n }\n result = getChecksumAddress(address);\n // It is a checksummed address with a bad checksum\n if (address.match(/([A-F].*[a-f])|([a-f].*[A-F])/) && result !== address) {\n logger.throwArgumentError(\"bad address checksum\", \"address\", address);\n }\n // Maybe ICAP? (we only support direct mode)\n }\n else if (address.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)) {\n // It is an ICAP address with a bad checksum\n if (address.substring(2, 4) !== ibanChecksum(address)) {\n logger.throwArgumentError(\"bad icap checksum\", \"address\", address);\n }\n result = _base36To16(address.substring(4));\n while (result.length < 40) {\n result = \"0\" + result;\n }\n result = getChecksumAddress(\"0x\" + result);\n }\n else {\n logger.throwArgumentError(\"invalid address\", \"address\", address);\n }\n return result;\n}\nexport function isAddress(address) {\n try {\n getAddress(address);\n return true;\n }\n catch (error) { }\n return false;\n}\nexport function getIcapAddress(address) {\n let base36 = _base16To36(getAddress(address).substring(2)).toUpperCase();\n while (base36.length < 30) {\n base36 = \"0\" + base36;\n }\n return \"XE\" + ibanChecksum(\"XE00\" + base36) + base36;\n}\n// http://ethereum.stackexchange.com/questions/760/how-is-the-address-of-an-ethereum-contract-computed\nexport function getContractAddress(transaction) {\n let from = null;\n try {\n from = getAddress(transaction.from);\n }\n catch (error) {\n logger.throwArgumentError(\"missing from address\", \"transaction\", transaction);\n }\n const nonce = stripZeros(arrayify(BigNumber.from(transaction.nonce).toHexString()));\n return getAddress(hexDataSlice(keccak256(encode([from, nonce])), 12));\n}\nexport function getCreate2Address(from, salt, initCodeHash) {\n if (hexDataLength(salt) !== 32) {\n logger.throwArgumentError(\"salt must be 32 bytes\", \"salt\", salt);\n }\n if (hexDataLength(initCodeHash) !== 32) {\n logger.throwArgumentError(\"initCodeHash must be 32 bytes\", \"initCodeHash\", initCodeHash);\n }\n return getAddress(hexDataSlice(keccak256(concat([\"0xff\", getAddress(from), salt, initCodeHash])), 12));\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nimport { getAddress } from \"@ethersproject/address\";\nimport { hexZeroPad } from \"@ethersproject/bytes\";\nimport { Coder } from \"./abstract-coder\";\nexport class AddressCoder extends Coder {\n constructor(localName) {\n super(\"address\", \"address\", localName, false);\n }\n defaultValue() {\n return \"0x0000000000000000000000000000000000000000\";\n }\n encode(writer, value) {\n try {\n value = getAddress(value);\n }\n catch (error) {\n this._throwError(error.message, value);\n }\n return writer.writeValue(value);\n }\n decode(reader) {\n return getAddress(hexZeroPad(reader.readValue().toHexString(), 20));\n }\n}\n//# sourceMappingURL=address.js.map","\"use strict\";\nimport { Coder } from \"./abstract-coder\";\n// Clones the functionality of an existing Coder, but without a localName\nexport class AnonymousCoder extends Coder {\n constructor(coder) {\n super(coder.name, coder.type, undefined, coder.dynamic);\n this.coder = coder;\n }\n defaultValue() {\n return this.coder.defaultValue();\n }\n encode(writer, value) {\n return this.coder.encode(writer, value);\n }\n decode(reader) {\n return this.coder.decode(reader);\n }\n}\n//# sourceMappingURL=anonymous.js.map","\"use strict\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"../_version\";\nconst logger = new Logger(version);\nimport { Coder, Writer } from \"./abstract-coder\";\nimport { AnonymousCoder } from \"./anonymous\";\nexport function pack(writer, coders, values) {\n let arrayValues = null;\n if (Array.isArray(values)) {\n arrayValues = values;\n }\n else if (values && typeof (values) === \"object\") {\n let unique = {};\n arrayValues = coders.map((coder) => {\n const name = coder.localName;\n if (!name) {\n logger.throwError(\"cannot encode object for signature with missing names\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"values\",\n coder: coder,\n value: values\n });\n }\n if (unique[name]) {\n logger.throwError(\"cannot encode object for signature with duplicate names\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"values\",\n coder: coder,\n value: values\n });\n }\n unique[name] = true;\n return values[name];\n });\n }\n else {\n logger.throwArgumentError(\"invalid tuple value\", \"tuple\", values);\n }\n if (coders.length !== arrayValues.length) {\n logger.throwArgumentError(\"types/value length mismatch\", \"tuple\", values);\n }\n let staticWriter = new Writer(writer.wordSize);\n let dynamicWriter = new Writer(writer.wordSize);\n let updateFuncs = [];\n coders.forEach((coder, index) => {\n let value = arrayValues[index];\n if (coder.dynamic) {\n // Get current dynamic offset (for the future pointer)\n let dynamicOffset = dynamicWriter.length;\n // Encode the dynamic value into the dynamicWriter\n coder.encode(dynamicWriter, value);\n // Prepare to populate the correct offset once we are done\n let updateFunc = staticWriter.writeUpdatableValue();\n updateFuncs.push((baseOffset) => {\n updateFunc(baseOffset + dynamicOffset);\n });\n }\n else {\n coder.encode(staticWriter, value);\n }\n });\n // Backfill all the dynamic offsets, now that we know the static length\n updateFuncs.forEach((func) => { func(staticWriter.length); });\n let length = writer.appendWriter(staticWriter);\n length += writer.appendWriter(dynamicWriter);\n return length;\n}\nexport function unpack(reader, coders) {\n let values = [];\n // A reader anchored to this base\n let baseReader = reader.subReader(0);\n coders.forEach((coder) => {\n let value = null;\n if (coder.dynamic) {\n let offset = reader.readValue();\n let offsetReader = baseReader.subReader(offset.toNumber());\n try {\n value = coder.decode(offsetReader);\n }\n catch (error) {\n // Cannot recover from this\n if (error.code === Logger.errors.BUFFER_OVERRUN) {\n throw error;\n }\n value = error;\n value.baseType = coder.name;\n value.name = coder.localName;\n value.type = coder.type;\n }\n }\n else {\n try {\n value = coder.decode(reader);\n }\n catch (error) {\n // Cannot recover from this\n if (error.code === Logger.errors.BUFFER_OVERRUN) {\n throw error;\n }\n value = error;\n value.baseType = coder.name;\n value.name = coder.localName;\n value.type = coder.type;\n }\n }\n if (value != undefined) {\n values.push(value);\n }\n });\n // We only output named properties for uniquely named coders\n const uniqueNames = coders.reduce((accum, coder) => {\n const name = coder.localName;\n if (name) {\n if (!accum[name]) {\n accum[name] = 0;\n }\n accum[name]++;\n }\n return accum;\n }, {});\n // Add any named parameters (i.e. tuples)\n coders.forEach((coder, index) => {\n let name = coder.localName;\n if (!name || uniqueNames[name] !== 1) {\n return;\n }\n if (name === \"length\") {\n name = \"_length\";\n }\n if (values[name] != null) {\n return;\n }\n const value = values[index];\n if (value instanceof Error) {\n Object.defineProperty(values, name, {\n enumerable: true,\n get: () => { throw value; }\n });\n }\n else {\n values[name] = value;\n }\n });\n for (let i = 0; i < values.length; i++) {\n const value = values[i];\n if (value instanceof Error) {\n Object.defineProperty(values, i, {\n enumerable: true,\n get: () => { throw value; }\n });\n }\n }\n return Object.freeze(values);\n}\nexport class ArrayCoder extends Coder {\n constructor(coder, length, localName) {\n const type = (coder.type + \"[\" + (length >= 0 ? length : \"\") + \"]\");\n const dynamic = (length === -1 || coder.dynamic);\n super(\"array\", type, localName, dynamic);\n this.coder = coder;\n this.length = length;\n }\n defaultValue() {\n // Verifies the child coder is valid (even if the array is dynamic or 0-length)\n const defaultChild = this.coder.defaultValue();\n const result = [];\n for (let i = 0; i < this.length; i++) {\n result.push(defaultChild);\n }\n return result;\n }\n encode(writer, value) {\n if (!Array.isArray(value)) {\n this._throwError(\"expected array value\", value);\n }\n let count = this.length;\n if (count === -1) {\n count = value.length;\n writer.writeValue(value.length);\n }\n logger.checkArgumentCount(value.length, count, \"coder array\" + (this.localName ? (\" \" + this.localName) : \"\"));\n let coders = [];\n for (let i = 0; i < value.length; i++) {\n coders.push(this.coder);\n }\n return pack(writer, coders, value);\n }\n decode(reader) {\n let count = this.length;\n if (count === -1) {\n count = reader.readValue().toNumber();\n // Check that there is *roughly* enough data to ensure\n // stray random data is not being read as a length. Each\n // slot requires at least 32 bytes for their value (or 32\n // bytes as a link to the data). This could use a much\n // tighter bound, but we are erroring on the side of safety.\n if (count * 32 > reader._data.length) {\n logger.throwError(\"insufficient data length\", Logger.errors.BUFFER_OVERRUN, {\n length: reader._data.length,\n count: count\n });\n }\n }\n let coders = [];\n for (let i = 0; i < count; i++) {\n coders.push(new AnonymousCoder(this.coder));\n }\n return reader.coerce(this.name, unpack(reader, coders));\n }\n}\n//# sourceMappingURL=array.js.map","\"use strict\";\nimport { Coder } from \"./abstract-coder\";\nexport class BooleanCoder extends Coder {\n constructor(localName) {\n super(\"bool\", \"bool\", localName, false);\n }\n defaultValue() {\n return false;\n }\n encode(writer, value) {\n return writer.writeValue(value ? 1 : 0);\n }\n decode(reader) {\n return reader.coerce(this.type, !reader.readValue().isZero());\n }\n}\n//# sourceMappingURL=boolean.js.map","\"use strict\";\nimport { arrayify, hexlify } from \"@ethersproject/bytes\";\nimport { Coder } from \"./abstract-coder\";\nexport class DynamicBytesCoder extends Coder {\n constructor(type, localName) {\n super(type, type, localName, true);\n }\n defaultValue() {\n return \"0x\";\n }\n encode(writer, value) {\n value = arrayify(value);\n let length = writer.writeValue(value.length);\n length += writer.writeBytes(value);\n return length;\n }\n decode(reader) {\n return reader.readBytes(reader.readValue().toNumber(), true);\n }\n}\nexport class BytesCoder extends DynamicBytesCoder {\n constructor(localName) {\n super(\"bytes\", localName);\n }\n decode(reader) {\n return reader.coerce(this.name, hexlify(super.decode(reader)));\n }\n}\n//# sourceMappingURL=bytes.js.map","\"use strict\";\nimport { arrayify, hexlify } from \"@ethersproject/bytes\";\nimport { Coder } from \"./abstract-coder\";\n// @TODO: Merge this with bytes\nexport class FixedBytesCoder extends Coder {\n constructor(size, localName) {\n let name = \"bytes\" + String(size);\n super(name, name, localName, false);\n this.size = size;\n }\n defaultValue() {\n return (\"0x0000000000000000000000000000000000000000000000000000000000000000\").substring(0, 2 + this.size * 2);\n }\n encode(writer, value) {\n let data = arrayify(value);\n if (data.length !== this.size) {\n this._throwError(\"incorrect data length\", value);\n }\n return writer.writeBytes(data);\n }\n decode(reader) {\n return reader.coerce(this.name, hexlify(reader.readBytes(this.size)));\n }\n}\n//# sourceMappingURL=fixed-bytes.js.map","\"use strict\";\nimport { Coder } from \"./abstract-coder\";\nexport class NullCoder extends Coder {\n constructor(localName) {\n super(\"null\", \"\", localName, false);\n }\n defaultValue() {\n return null;\n }\n encode(writer, value) {\n if (value != null) {\n this._throwError(\"not null\", value);\n }\n return writer.writeBytes([]);\n }\n decode(reader) {\n reader.readBytes(0);\n return reader.coerce(this.name, null);\n }\n}\n//# sourceMappingURL=null.js.map","import { BigNumber } from \"@ethersproject/bignumber\";\nconst NegativeOne = ( /*#__PURE__*/BigNumber.from(-1));\nconst Zero = ( /*#__PURE__*/BigNumber.from(0));\nconst One = ( /*#__PURE__*/BigNumber.from(1));\nconst Two = ( /*#__PURE__*/BigNumber.from(2));\nconst WeiPerEther = ( /*#__PURE__*/BigNumber.from(\"1000000000000000000\"));\nconst MaxUint256 = ( /*#__PURE__*/BigNumber.from(\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"));\nconst MinInt256 = ( /*#__PURE__*/BigNumber.from(\"-0x8000000000000000000000000000000000000000000000000000000000000000\"));\nconst MaxInt256 = ( /*#__PURE__*/BigNumber.from(\"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"));\nexport { NegativeOne, Zero, One, Two, WeiPerEther, MaxUint256, MinInt256, MaxInt256, };\n//# sourceMappingURL=bignumbers.js.map","\"use strict\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { MaxUint256, NegativeOne, One, Zero } from \"@ethersproject/constants\";\nimport { Coder } from \"./abstract-coder\";\nexport class NumberCoder extends Coder {\n constructor(size, signed, localName) {\n const name = ((signed ? \"int\" : \"uint\") + (size * 8));\n super(name, name, localName, false);\n this.size = size;\n this.signed = signed;\n }\n defaultValue() {\n return 0;\n }\n encode(writer, value) {\n let v = BigNumber.from(value);\n // Check bounds are safe for encoding\n let maxUintValue = MaxUint256.mask(writer.wordSize * 8);\n if (this.signed) {\n let bounds = maxUintValue.mask(this.size * 8 - 1);\n if (v.gt(bounds) || v.lt(bounds.add(One).mul(NegativeOne))) {\n this._throwError(\"value out-of-bounds\", value);\n }\n }\n else if (v.lt(Zero) || v.gt(maxUintValue.mask(this.size * 8))) {\n this._throwError(\"value out-of-bounds\", value);\n }\n v = v.toTwos(this.size * 8).mask(this.size * 8);\n if (this.signed) {\n v = v.fromTwos(this.size * 8).toTwos(8 * writer.wordSize);\n }\n return writer.writeValue(v);\n }\n decode(reader) {\n let value = reader.readValue().mask(this.size * 8);\n if (this.signed) {\n value = value.fromTwos(this.size * 8);\n }\n return reader.coerce(this.name, value);\n }\n}\n//# sourceMappingURL=number.js.map","export const version = \"strings/5.8.0\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nimport { arrayify } from \"@ethersproject/bytes\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n///////////////////////////////\nexport var UnicodeNormalizationForm;\n(function (UnicodeNormalizationForm) {\n UnicodeNormalizationForm[\"current\"] = \"\";\n UnicodeNormalizationForm[\"NFC\"] = \"NFC\";\n UnicodeNormalizationForm[\"NFD\"] = \"NFD\";\n UnicodeNormalizationForm[\"NFKC\"] = \"NFKC\";\n UnicodeNormalizationForm[\"NFKD\"] = \"NFKD\";\n})(UnicodeNormalizationForm || (UnicodeNormalizationForm = {}));\n;\nexport var Utf8ErrorReason;\n(function (Utf8ErrorReason) {\n // A continuation byte was present where there was nothing to continue\n // - offset = the index the codepoint began in\n Utf8ErrorReason[\"UNEXPECTED_CONTINUE\"] = \"unexpected continuation byte\";\n // An invalid (non-continuation) byte to start a UTF-8 codepoint was found\n // - offset = the index the codepoint began in\n Utf8ErrorReason[\"BAD_PREFIX\"] = \"bad codepoint prefix\";\n // The string is too short to process the expected codepoint\n // - offset = the index the codepoint began in\n Utf8ErrorReason[\"OVERRUN\"] = \"string overrun\";\n // A missing continuation byte was expected but not found\n // - offset = the index the continuation byte was expected at\n Utf8ErrorReason[\"MISSING_CONTINUE\"] = \"missing continuation byte\";\n // The computed code point is outside the range for UTF-8\n // - offset = start of this codepoint\n // - badCodepoint = the computed codepoint; outside the UTF-8 range\n Utf8ErrorReason[\"OUT_OF_RANGE\"] = \"out of UTF-8 range\";\n // UTF-8 strings may not contain UTF-16 surrogate pairs\n // - offset = start of this codepoint\n // - badCodepoint = the computed codepoint; inside the UTF-16 surrogate range\n Utf8ErrorReason[\"UTF16_SURROGATE\"] = \"UTF-16 surrogate\";\n // The string is an overlong representation\n // - offset = start of this codepoint\n // - badCodepoint = the computed codepoint; already bounds checked\n Utf8ErrorReason[\"OVERLONG\"] = \"overlong representation\";\n})(Utf8ErrorReason || (Utf8ErrorReason = {}));\n;\nfunction errorFunc(reason, offset, bytes, output, badCodepoint) {\n return logger.throwArgumentError(`invalid codepoint at offset ${offset}; ${reason}`, \"bytes\", bytes);\n}\nfunction ignoreFunc(reason, offset, bytes, output, badCodepoint) {\n // If there is an invalid prefix (including stray continuation), skip any additional continuation bytes\n if (reason === Utf8ErrorReason.BAD_PREFIX || reason === Utf8ErrorReason.UNEXPECTED_CONTINUE) {\n let i = 0;\n for (let o = offset + 1; o < bytes.length; o++) {\n if (bytes[o] >> 6 !== 0x02) {\n break;\n }\n i++;\n }\n return i;\n }\n // This byte runs us past the end of the string, so just jump to the end\n // (but the first byte was read already read and therefore skipped)\n if (reason === Utf8ErrorReason.OVERRUN) {\n return bytes.length - offset - 1;\n }\n // Nothing to skip\n return 0;\n}\nfunction replaceFunc(reason, offset, bytes, output, badCodepoint) {\n // Overlong representations are otherwise \"valid\" code points; just non-deistingtished\n if (reason === Utf8ErrorReason.OVERLONG) {\n output.push(badCodepoint);\n return 0;\n }\n // Put the replacement character into the output\n output.push(0xfffd);\n // Otherwise, process as if ignoring errors\n return ignoreFunc(reason, offset, bytes, output, badCodepoint);\n}\n// Common error handing strategies\nexport const Utf8ErrorFuncs = Object.freeze({\n error: errorFunc,\n ignore: ignoreFunc,\n replace: replaceFunc\n});\n// http://stackoverflow.com/questions/13356493/decode-utf-8-with-javascript#13691499\nfunction getUtf8CodePoints(bytes, onError) {\n if (onError == null) {\n onError = Utf8ErrorFuncs.error;\n }\n bytes = arrayify(bytes);\n const result = [];\n let i = 0;\n // Invalid bytes are ignored\n while (i < bytes.length) {\n const c = bytes[i++];\n // 0xxx xxxx\n if (c >> 7 === 0) {\n result.push(c);\n continue;\n }\n // Multibyte; how many bytes left for this character?\n let extraLength = null;\n let overlongMask = null;\n // 110x xxxx 10xx xxxx\n if ((c & 0xe0) === 0xc0) {\n extraLength = 1;\n overlongMask = 0x7f;\n // 1110 xxxx 10xx xxxx 10xx xxxx\n }\n else if ((c & 0xf0) === 0xe0) {\n extraLength = 2;\n overlongMask = 0x7ff;\n // 1111 0xxx 10xx xxxx 10xx xxxx 10xx xxxx\n }\n else if ((c & 0xf8) === 0xf0) {\n extraLength = 3;\n overlongMask = 0xffff;\n }\n else {\n if ((c & 0xc0) === 0x80) {\n i += onError(Utf8ErrorReason.UNEXPECTED_CONTINUE, i - 1, bytes, result);\n }\n else {\n i += onError(Utf8ErrorReason.BAD_PREFIX, i - 1, bytes, result);\n }\n continue;\n }\n // Do we have enough bytes in our data?\n if (i - 1 + extraLength >= bytes.length) {\n i += onError(Utf8ErrorReason.OVERRUN, i - 1, bytes, result);\n continue;\n }\n // Remove the length prefix from the char\n let res = c & ((1 << (8 - extraLength - 1)) - 1);\n for (let j = 0; j < extraLength; j++) {\n let nextChar = bytes[i];\n // Invalid continuation byte\n if ((nextChar & 0xc0) != 0x80) {\n i += onError(Utf8ErrorReason.MISSING_CONTINUE, i, bytes, result);\n res = null;\n break;\n }\n ;\n res = (res << 6) | (nextChar & 0x3f);\n i++;\n }\n // See above loop for invalid continuation byte\n if (res === null) {\n continue;\n }\n // Maximum code point\n if (res > 0x10ffff) {\n i += onError(Utf8ErrorReason.OUT_OF_RANGE, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n // Reserved for UTF-16 surrogate halves\n if (res >= 0xd800 && res <= 0xdfff) {\n i += onError(Utf8ErrorReason.UTF16_SURROGATE, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n // Check for overlong sequences (more bytes than needed)\n if (res <= overlongMask) {\n i += onError(Utf8ErrorReason.OVERLONG, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n result.push(res);\n }\n return result;\n}\n// http://stackoverflow.com/questions/18729405/how-to-convert-utf8-string-to-byte-array\nexport function toUtf8Bytes(str, form = UnicodeNormalizationForm.current) {\n if (form != UnicodeNormalizationForm.current) {\n logger.checkNormalize();\n str = str.normalize(form);\n }\n let result = [];\n for (let i = 0; i < str.length; i++) {\n const c = str.charCodeAt(i);\n if (c < 0x80) {\n result.push(c);\n }\n else if (c < 0x800) {\n result.push((c >> 6) | 0xc0);\n result.push((c & 0x3f) | 0x80);\n }\n else if ((c & 0xfc00) == 0xd800) {\n i++;\n const c2 = str.charCodeAt(i);\n if (i >= str.length || (c2 & 0xfc00) !== 0xdc00) {\n throw new Error(\"invalid utf-8 string\");\n }\n // Surrogate Pair\n const pair = 0x10000 + ((c & 0x03ff) << 10) + (c2 & 0x03ff);\n result.push((pair >> 18) | 0xf0);\n result.push(((pair >> 12) & 0x3f) | 0x80);\n result.push(((pair >> 6) & 0x3f) | 0x80);\n result.push((pair & 0x3f) | 0x80);\n }\n else {\n result.push((c >> 12) | 0xe0);\n result.push(((c >> 6) & 0x3f) | 0x80);\n result.push((c & 0x3f) | 0x80);\n }\n }\n return arrayify(result);\n}\n;\nfunction escapeChar(value) {\n const hex = (\"0000\" + value.toString(16));\n return \"\\\\u\" + hex.substring(hex.length - 4);\n}\nexport function _toEscapedUtf8String(bytes, onError) {\n return '\"' + getUtf8CodePoints(bytes, onError).map((codePoint) => {\n if (codePoint < 256) {\n switch (codePoint) {\n case 8: return \"\\\\b\";\n case 9: return \"\\\\t\";\n case 10: return \"\\\\n\";\n case 13: return \"\\\\r\";\n case 34: return \"\\\\\\\"\";\n case 92: return \"\\\\\\\\\";\n }\n if (codePoint >= 32 && codePoint < 127) {\n return String.fromCharCode(codePoint);\n }\n }\n if (codePoint <= 0xffff) {\n return escapeChar(codePoint);\n }\n codePoint -= 0x10000;\n return escapeChar(((codePoint >> 10) & 0x3ff) + 0xd800) + escapeChar((codePoint & 0x3ff) + 0xdc00);\n }).join(\"\") + '\"';\n}\nexport function _toUtf8String(codePoints) {\n return codePoints.map((codePoint) => {\n if (codePoint <= 0xffff) {\n return String.fromCharCode(codePoint);\n }\n codePoint -= 0x10000;\n return String.fromCharCode((((codePoint >> 10) & 0x3ff) + 0xd800), ((codePoint & 0x3ff) + 0xdc00));\n }).join(\"\");\n}\nexport function toUtf8String(bytes, onError) {\n return _toUtf8String(getUtf8CodePoints(bytes, onError));\n}\nexport function toUtf8CodePoints(str, form = UnicodeNormalizationForm.current) {\n return getUtf8CodePoints(toUtf8Bytes(str, form));\n}\n//# sourceMappingURL=utf8.js.map","\"use strict\";\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\nimport { DynamicBytesCoder } from \"./bytes\";\nexport class StringCoder extends DynamicBytesCoder {\n constructor(localName) {\n super(\"string\", localName);\n }\n defaultValue() {\n return \"\";\n }\n encode(writer, value) {\n return super.encode(writer, toUtf8Bytes(value));\n }\n decode(reader) {\n return toUtf8String(super.decode(reader));\n }\n}\n//# sourceMappingURL=string.js.map","\"use strict\";\nimport { Coder } from \"./abstract-coder\";\nimport { pack, unpack } from \"./array\";\nexport class TupleCoder extends Coder {\n constructor(coders, localName) {\n let dynamic = false;\n const types = [];\n coders.forEach((coder) => {\n if (coder.dynamic) {\n dynamic = true;\n }\n types.push(coder.type);\n });\n const type = (\"tuple(\" + types.join(\",\") + \")\");\n super(\"tuple\", type, localName, dynamic);\n this.coders = coders;\n }\n defaultValue() {\n const values = [];\n this.coders.forEach((coder) => {\n values.push(coder.defaultValue());\n });\n // We only output named properties for uniquely named coders\n const uniqueNames = this.coders.reduce((accum, coder) => {\n const name = coder.localName;\n if (name) {\n if (!accum[name]) {\n accum[name] = 0;\n }\n accum[name]++;\n }\n return accum;\n }, {});\n // Add named values\n this.coders.forEach((coder, index) => {\n let name = coder.localName;\n if (!name || uniqueNames[name] !== 1) {\n return;\n }\n if (name === \"length\") {\n name = \"_length\";\n }\n if (values[name] != null) {\n return;\n }\n values[name] = values[index];\n });\n return Object.freeze(values);\n }\n encode(writer, value) {\n return pack(writer, this.coders, value);\n }\n decode(reader) {\n return reader.coerce(this.name, unpack(reader, this.coders));\n }\n}\n//# sourceMappingURL=tuple.js.map","\"use strict\";\n// See: https://github.com/ethereum/wiki/wiki/Ethereum-Contract-ABI\nimport { arrayify } from \"@ethersproject/bytes\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { Reader, Writer } from \"./coders/abstract-coder\";\nimport { AddressCoder } from \"./coders/address\";\nimport { ArrayCoder } from \"./coders/array\";\nimport { BooleanCoder } from \"./coders/boolean\";\nimport { BytesCoder } from \"./coders/bytes\";\nimport { FixedBytesCoder } from \"./coders/fixed-bytes\";\nimport { NullCoder } from \"./coders/null\";\nimport { NumberCoder } from \"./coders/number\";\nimport { StringCoder } from \"./coders/string\";\nimport { TupleCoder } from \"./coders/tuple\";\nimport { ParamType } from \"./fragments\";\nconst paramTypeBytes = new RegExp(/^bytes([0-9]*)$/);\nconst paramTypeNumber = new RegExp(/^(u?int)([0-9]*)$/);\nexport class AbiCoder {\n constructor(coerceFunc) {\n defineReadOnly(this, \"coerceFunc\", coerceFunc || null);\n }\n _getCoder(param) {\n switch (param.baseType) {\n case \"address\":\n return new AddressCoder(param.name);\n case \"bool\":\n return new BooleanCoder(param.name);\n case \"string\":\n return new StringCoder(param.name);\n case \"bytes\":\n return new BytesCoder(param.name);\n case \"array\":\n return new ArrayCoder(this._getCoder(param.arrayChildren), param.arrayLength, param.name);\n case \"tuple\":\n return new TupleCoder((param.components || []).map((component) => {\n return this._getCoder(component);\n }), param.name);\n case \"\":\n return new NullCoder(param.name);\n }\n // u?int[0-9]*\n let match = param.type.match(paramTypeNumber);\n if (match) {\n let size = parseInt(match[2] || \"256\");\n if (size === 0 || size > 256 || (size % 8) !== 0) {\n logger.throwArgumentError(\"invalid \" + match[1] + \" bit length\", \"param\", param);\n }\n return new NumberCoder(size / 8, (match[1] === \"int\"), param.name);\n }\n // bytes[0-9]+\n match = param.type.match(paramTypeBytes);\n if (match) {\n let size = parseInt(match[1]);\n if (size === 0 || size > 32) {\n logger.throwArgumentError(\"invalid bytes length\", \"param\", param);\n }\n return new FixedBytesCoder(size, param.name);\n }\n return logger.throwArgumentError(\"invalid type\", \"type\", param.type);\n }\n _getWordSize() { return 32; }\n _getReader(data, allowLoose) {\n return new Reader(data, this._getWordSize(), this.coerceFunc, allowLoose);\n }\n _getWriter() {\n return new Writer(this._getWordSize());\n }\n getDefaultValue(types) {\n const coders = types.map((type) => this._getCoder(ParamType.from(type)));\n const coder = new TupleCoder(coders, \"_\");\n return coder.defaultValue();\n }\n encode(types, values) {\n if (types.length !== values.length) {\n logger.throwError(\"types/values length mismatch\", Logger.errors.INVALID_ARGUMENT, {\n count: { types: types.length, values: values.length },\n value: { types: types, values: values }\n });\n }\n const coders = types.map((type) => this._getCoder(ParamType.from(type)));\n const coder = (new TupleCoder(coders, \"_\"));\n const writer = this._getWriter();\n coder.encode(writer, values);\n return writer.data;\n }\n decode(types, data, loose) {\n const coders = types.map((type) => this._getCoder(ParamType.from(type)));\n const coder = new TupleCoder(coders, \"_\");\n return coder.decode(this._getReader(arrayify(data), loose));\n }\n}\nexport const defaultAbiCoder = new AbiCoder();\n//# sourceMappingURL=abi-coder.js.map","import t from\"./ContractId.js\";import o from\"long\";import*as n from\"@hashgraph/proto\";const{proto:r}=n;class c{constructor(t){this.contractId=t.contractId,this.nonce=t.nonce,Object.freeze(this)}static _fromProtobuf(n){return new c({contractId:t._fromProtobuf(n.contractId),nonce:null!=n.nonce?n.nonce:o.ZERO})}_toProtobuf(){return{contractId:this.contractId._toProtobuf(),nonce:this.nonce}}static fromBytes(t){return c._fromProtobuf(r.ContractNonceInfo.decode(t))}toBytes(){return r.ContractNonceInfo.encode(this._toProtobuf()).finish()}toJSON(){return{contractId:this.contractId.toString(),nonce:this.nonce.toNumber()}}toString(){return JSON.stringify(this.toJSON())}equals(t){return this.contractId.equals(t.contractId)&&this.nonce.eq(t.nonce)}}export{c as default};\n//# sourceMappingURL=ContractNonceInfo.js.map\n","import t from\"./ContractLogInfo.js\";import e from\"./ContractId.js\";import n from\"../account/AccountId.js\";import s from\"bignumber.js\";import{encode as r}from\"../encoding/hex.js\";import{decode as o}from\"../encoding/utf8.js\";import{safeView as i}from\"../util.js\";import{defaultAbiCoder as u}from\"@ethersproject/abi\";import g from\"long\";import a from\"./ContractNonceInfo.js\";class l{constructor(t){this._createResult=t._createResult,this.contractId=t.contractId,this.bytes=t.bytes,this.errorMessage=t.errorMessage,this.bloom=t.bloom,this.gasUsed=t.gasUsed,this.logs=t.logs,this.createdContractIds=t.createdContractIds,this.evmAddress=t.evmAddress,this.stateChanges=t.stateChanges,this.gas=t.gas,this.amount=t.amount,this.functionParameters=t.functionParameters,this.senderAccountId=t.senderAccountId,this.contractNonces=t.contractNonces,this.signerNonce=t.signerNonce}static _fromProtobuf(s,r){const o=s.contractID,i=s.gasUsed,u=s.gas?s.gas:-1,c=s.amount?s.amount:-1;return new l({_createResult:r,bytes:s.contractCallResult,contractId:null!=o?e._fromProtobuf(o):null,errorMessage:null!=s.errorMessage?s.errorMessage:null,bloom:s.bloom,gasUsed:i instanceof g?i:g.fromValue(i),logs:(null!=s.logInfo?s.logInfo:[]).map((e=>t._fromProtobuf(e))),createdContractIds:(null!=s.createdContractIDs?s.createdContractIDs:[]).map((t=>e._fromProtobuf(t))),evmAddress:null!=s.evmAddress&&Object.hasOwn(s.evmAddress,\"value\")&&null!=s.evmAddress.value?s.evmAddress.value:null,stateChanges:[],gas:u instanceof g?u:g.fromValue(u),amount:c instanceof g?c:g.fromValue(c),functionParameters:s.functionParameters,senderAccountId:null!=s.senderId?n._fromProtobuf(s.senderId):null,contractNonces:(null!=s.contractNonces?s.contractNonces:[]).map((t=>a._fromProtobuf(t))),signerNonce:null!=s.signerNonce&&Object.hasOwn(s.signerNonce,\"value\")&&s.signerNonce.value||null})}asBytes(){return this.bytes}getString(t){return o(this.getBytes(t))}getBytes(t){const e=this.getInt32(t),n=i(this.bytes).getInt32(e+28);return this.bytes.subarray(e+32,e+32+n)}getBytes32(t){return this.bytes.subarray(32*(null!=t?t:0),32*(null!=t?t:0)+32)}getBool(t){return 0!==this.bytes[32*(null!=t?t:0)+31]}getInt8(t){const e=32*(null!=t?t:0)+31;return i(this.bytes).getInt8(e)}getUint8(t){return this.bytes[32*(null!=t?t:0)+31]}getInt16(t){const e=32*(null!=t?t:0)+28;return i(this.bytes).getInt32(e)}getUint16(t){const e=32*(null!=t?t:0)+28;return i(this.bytes).getUint32(e)}getInt24(t){const e=32*(null!=t?t:0)+28;return i(this.bytes).getInt32(e)}getUint24(t){const e=32*(null!=t?t:0)+28;return i(this.bytes).getUint32(e)}getInt32(t){const e=32*(null!=t?t:0)+28;return i(this.bytes).getInt32(e)}getUint32(t){const e=32*(null!=t?t:0)+28;return i(this.bytes).getUint32(e)}getInt40(t){const e=u.decode([\"int40\"],this._getBytes32(null!=t?t:0));return new s(e.toString())}getUint40(t){return new s(r(this._getBytes32(t).subarray(27,32)),16)}getInt48(t){const e=u.decode([\"int48\"],this._getBytes32(null!=t?t:0));return new s(e.toString())}getUint48(t){return new s(r(this._getBytes32(t).subarray(26,32)),16)}getInt56(t){const e=u.decode([\"int56\"],this._getBytes32(null!=t?t:0));return new s(e.toString())}getUint56(t){return new s(r(this._getBytes32(t).subarray(25,32)),16)}getInt64(t){const e=u.decode([\"int64\"],this._getBytes32(null!=t?t:0));return new s(e.toString())}getUint64(t){return new s(r(this._getBytes32(t).subarray(24,32)),16)}getInt72(t){const e=u.decode([\"int72\"],this._getBytes32(null!=t?t:0));return new s(e.toString())}getUint72(t){return new s(r(this._getBytes32(t).subarray(23,32)),16)}getInt80(t){const e=u.decode([\"int80\"],this._getBytes32(null!=t?t:0));return new s(e.toString())}getUint80(t){return new s(r(this._getBytes32(t).subarray(22,32)),16)}getInt88(t){const e=u.decode([\"int88\"],this._getBytes32(null!=t?t:0));return new s(e.toString())}getUint88(t){return new s(r(this._getBytes32(t).subarray(21,32)),16)}getInt96(t){const e=u.decode([\"int96\"],this._getBytes32(null!=t?t:0));return new s(e.toString())}getUint96(t){return new s(r(this._getBytes32(t).subarray(20,32)),16)}getInt104(t){const e=u.decode([\"int104\"],this._getBytes32(null!=t?t:0));return new s(e.toString())}getUint104(t){return new s(r(this._getBytes32(t).subarray(19,32)),16)}getInt112(t){const e=u.decode([\"int112\"],this._getBytes32(null!=t?t:0));return new s(e.toString())}getUint112(t){return new s(r(this._getBytes32(t).subarray(18,32)),16)}getInt120(t){const e=u.decode([\"int120\"],this._getBytes32(null!=t?t:0));return new s(e.toString())}getUint120(t){return new s(r(this._getBytes32(t).subarray(17,32)),16)}getInt128(t){const e=u.decode([\"int128\"],this._getBytes32(null!=t?t:0));return new s(e.toString())}getUint128(t){return new s(r(this._getBytes32(t).subarray(16,32)),16)}getInt136(t){const e=u.decode([\"int136\"],this._getBytes32(null!=t?t:0));return new s(e.toString())}getUint136(t){return new s(r(this._getBytes32(t).subarray(15,32)),16)}getInt144(t){const e=u.decode([\"int144\"],this._getBytes32(null!=t?t:0));return new s(e.toString())}getUint144(t){return new s(r(this._getBytes32(t).subarray(14,32)),16)}getInt152(t){const e=u.decode([\"int152\"],this._getBytes32(null!=t?t:0));return new s(e.toString())}getUint152(t){return new s(r(this._getBytes32(t).subarray(13,32)),16)}getInt160(t){const e=u.decode([\"int160\"],this._getBytes32(null!=t?t:0));return new s(e.toString())}getUint160(t){return new s(r(this._getBytes32(t).subarray(12,32)),16)}getInt168(t){const e=u.decode([\"int168\"],this._getBytes32(null!=t?t:0));return new s(e.toString())}getUint168(t){return new s(r(this._getBytes32(t).subarray(11,32)),16)}getInt176(t){const e=u.decode([\"int176\"],this._getBytes32(null!=t?t:0));return new s(e.toString())}getUint176(t){return new s(r(this._getBytes32(t).subarray(10,32)),16)}getInt184(t){const e=u.decode([\"int184\"],this._getBytes32(null!=t?t:0));return new s(e.toString())}getUint184(t){return new s(r(this._getBytes32(t).subarray(9,32)),16)}getInt192(t){const e=u.decode([\"int192\"],this._getBytes32(null!=t?t:0));return new s(e.toString())}getUint192(t){return new s(r(this._getBytes32(t).subarray(8,32)),16)}getInt200(t){const e=u.decode([\"int200\"],this._getBytes32(null!=t?t:0));return new s(e.toString())}getUint200(t){return new s(r(this._getBytes32(t).subarray(7,32)),16)}getInt208(t){const e=u.decode([\"int208\"],this._getBytes32(null!=t?t:0));return new s(e.toString())}getUint208(t){return new s(r(this._getBytes32(t).subarray(6,32)),16)}getInt216(t){const e=u.decode([\"int216\"],this._getBytes32(null!=t?t:0));return new s(e.toString())}getUint216(t){return new s(r(this._getBytes32(t).subarray(5,32)),16)}getInt224(t){const e=u.decode([\"int224\"],this._getBytes32(null!=t?t:0));return new s(e.toString())}getUint224(t){return new s(r(this._getBytes32(t).subarray(4,32)),16)}getInt232(t){const e=u.decode([\"int232\"],this._getBytes32(null!=t?t:0));return new s(e.toString())}getUint232(t){return new s(r(this._getBytes32(t).subarray(3,32)),16)}getInt240(t){const e=u.decode([\"int240\"],this._getBytes32(null!=t?t:0));return new s(e.toString())}getUint240(t){return new s(r(this._getBytes32(t).subarray(2,32)),16)}getInt248(t){const e=u.decode([\"int248\"],this._getBytes32(null!=t?t:0));return new s(e.toString())}getUint248(t){return new s(r(this._getBytes32(t).subarray(1,32)),16)}getInt256(t){const e=u.decode([\"int256\"],this._getBytes32(null!=t?t:0));return new s(e.toString())}getUint256(t){return new s(r(this._getBytes32(t)),16)}getAddress(t){return r(this.bytes.subarray(32*(null!=t?t:0)+12,32*(null!=t?t:0)+32))}getResult(t){return u.decode(t,this.bytes)}_getBytes32(t){return this.bytes.subarray(32*(null!=t?t:0),32*(null!=t?t:0)+32)}_toProtobuf(){return{contractID:null!=this.contractId?this.contractId._toProtobuf():null,contractCallResult:this.bytes,errorMessage:this.errorMessage,bloom:this.bloom,gasUsed:this.gasUsed,logInfo:this.logs.map((t=>t._toProtobuf())),createdContractIDs:this.createdContractIds.map((t=>t._toProtobuf())),evmAddress:null!=this.evmAddress?{value:this.evmAddress}:null,gas:this.gas,amount:this.amount,functionParameters:this.functionParameters,senderId:null!=this.senderAccountId?this.senderAccountId._toProtobuf():null,contractNonces:this.contractNonces.map((t=>t._toProtobuf())),signerNonce:null!=this.signerNonce?{value:this.signerNonce}:null}}}export{l as default};\n//# sourceMappingURL=ContractFunctionResult.js.map\n","import t from\"./AccountId.js\";import r from\"../ObjectMap.js\";class o extends r{constructor(){super((r=>t.fromString(r)))}toJSON(){const t={};return this._map.forEach(((r,o)=>{t[o]=r.toString()})),t}}export{o as default};\n//# sourceMappingURL=TokenTransferAccountMap.js.map\n","import o from\"../token/TokenId.js\";import t from\"./AccountId.js\";import r from\"./TokenTransferAccountMap.js\";import s from\"../ObjectMap.js\";class n extends s{constructor(){super((t=>o.fromString(t)))}__set(o,t,s){const n=o.toString();let f=this._map.get(n);null==f&&(f=new r,this._map.set(n,f),this.__map.set(o,f)),f._set(t,s)}static _fromProtobuf(r){const s=new n;for(const n of r){const r=o._fromProtobuf(n.token);for(const o of null!=n.transfers?n.transfers:[]){const n=t._fromProtobuf(o.accountID);s.__set(r,n,o.amount)}}return s}_toProtobuf(){const o=[];for(const[t,r]of this){const s=[];for(const[o,t]of r)s.push({accountID:o._toProtobuf(),amount:t});o.push({token:t._toProtobuf(),transfers:s})}return o}}export{n as default};\n//# sourceMappingURL=TokenTransferMap.js.map\n","import o from\"long\";import r from\"../token/TokenId.js\";import t from\"./AccountId.js\";import e from\"../ObjectMap.js\";class s extends e{constructor(){super((o=>r.fromString(o)))}__set(o,r){const t=o.toString();let e=this._map.get(t);null==e&&(e=[],this._map.set(t,e),this.__map.set(o,e)),e.push(r)}static _fromProtobuf(e){const n=new s;for(const s of e){const e=r._fromProtobuf(s.token);for(const r of null!=s.nftTransfers?s.nftTransfers:[]){const s=t._fromProtobuf(r.senderAccountID),f=t._fromProtobuf(r.receiverAccountID);n.__set(e,{sender:s,recipient:f,serial:o.fromValue(r.serialNumber),isApproved:!1})}}return n}_toProtobuf(){const o=[];for(const[r,t]of this){const e=[];for(const o of t)e.push({senderAccountID:o.sender._toProtobuf(),receiverAccountID:o.recipient._toProtobuf(),serialNumber:o.serial});o.push({token:r._toProtobuf(),nftTransfers:e})}return o}toJSON(){const o={};return this._map.forEach(((r,t)=>{o[t]=r.map((o=>({sender:o.sender.toString(),recipient:o.recipient.toString(),serial:o.serial,isApproved:o.isApproved})))})),o}}export{s as default};\n//# sourceMappingURL=TokenNftTransferMap.js.map\n","import t from\"./TokenId.js\";import o from\"../account/AccountId.js\";import e from\"long\";class n{constructor(t={}){this._feeCollectorAccountId=null,null!=t.feeCollectorAccountId&&this.setFeeCollectorAccountId(t.feeCollectorAccountId),this._tokenId=null,null!=t.tokenId&&this.setTokenId(t.tokenId),this._amount=null,null!=t.amount&&this.setAmount(t.amount),this._payerAccountIds=null,null!=t.payerAccountIds&&this.setPayerAccountIds(t.payerAccountIds)}get feeCollectorAccountId(){return this._feeCollectorAccountId}setFeeCollectorAccountId(t){return this._feeCollectorAccountId=\"string\"==typeof t?o.fromString(t):t,this}get tokenId(){return this._tokenId}setTokenId(o){return this._tokenId=\"string\"==typeof o?t.fromString(o):o,this}get amount(){return this._amount}setAmount(t){return this._amount=\"number\"==typeof t?e.fromNumber(t):t,this}get payerAccountIds(){return this._payerAccountIds}setPayerAccountIds(t){return this._payerAccountIds=t,this}static _fromProtobuf(e){return new n({feeCollectorAccountId:null!=e.feeCollectorAccountId?o._fromProtobuf(e.feeCollectorAccountId):void 0,tokenId:null!=e.tokenId?t._fromProtobuf(e.tokenId):void 0,amount:null!=e.amount?e.amount:void 0,payerAccountIds:null!=e.effectivePayerAccountId?e.effectivePayerAccountId.map((t=>o._fromProtobuf(t))):void 0})}_toProtobuf(){return{feeCollectorAccountId:null!=this.feeCollectorAccountId?this.feeCollectorAccountId._toProtobuf():null,tokenId:null!=this._tokenId?this._tokenId._toProtobuf():null,amount:this._amount,effectivePayerAccountId:null!=this._payerAccountIds?this._payerAccountIds.map((t=>t._toProtobuf())):null}}toJSON(){return{feeCollectorAccountId:this.feeCollectorAccountId?.toString()||null,tokenId:this._tokenId?.toString()||null,amount:this._amount?.toString()||null,payerAccountIds:this._payerAccountIds?.map((t=>t.toString()))||[]}}}export{n as default};\n//# sourceMappingURL=AssessedCustomFee.js.map\n","import t from\"../account/AccountId.js\";import o from\"./TokenId.js\";import n from\"../Hbar.js\";class u{constructor(t={}){this._accountId=null,null!=t.accountId&&this.setAccountId(t.accountId),this._tokenId=null,null!=t.tokenId&&this.setTokenId(t.tokenId),this._defaultMaxTransactionFee=new n(5)}get accountId(){return this._accountId}setAccountId(o){return this._accountId=\"string\"==typeof o?t.fromString(o):o,this}get tokenId(){return this._tokenId}setTokenId(t){return this._tokenId=\"string\"==typeof t?o.fromString(t):t,this}static _fromProtobuf(n){return new u({accountId:null!=n.accountId?t._fromProtobuf(n.accountId):void 0,tokenId:null!=n.tokenId?o._fromProtobuf(n.tokenId):void 0})}_toProtobuf(){return{accountId:null!=this._accountId?this._accountId._toProtobuf():void 0,tokenId:null!=this._tokenId?this._tokenId._toProtobuf():void 0}}toJSON(){return{accountId:this._accountId?.toString()||null,tokenId:this._tokenId?.toString()||null}}}export{u as default};\n//# sourceMappingURL=TokenAssociation.js.map\n","import t from\"long\";import o from\"../account/AccountId.js\";import e from\"./TokenId.js\";class n{constructor(n){this.tokenId=n.tokenId instanceof e?n.tokenId:e.fromString(n.tokenId),this.accountId=n.accountId instanceof o?n.accountId:o.fromString(n.accountId),this.expectedDecimals=n.expectedDecimals,this.amount=t.fromValue(n.amount),this.isApproved=n.isApproved}static _fromProtobuf(c){const s=[];for(const r of c){const c=e._fromProtobuf(r.token),i=null!=r.expectedDecimals&&Object.hasOwn(r.expectedDecimals,\"value\")?r.expectedDecimals.value:null;for(const e of null!=r.transfers?r.transfers:[])s.push(new n({tokenId:c,accountId:o._fromProtobuf(e.accountID),expectedDecimals:i||null,amount:null!=e.amount?e.amount:t.ZERO,isApproved:1==e.isApproval}))}return s}_toProtobuf(){return{accountID:this.accountId._toProtobuf(),amount:this.amount,isApproval:this.isApproved}}toJSON(){return{tokenId:this.tokenId.toString(),accountId:this.accountId.toString(),expectedDecimals:this.expectedDecimals,amount:this.amount.toString(),isApproved:this.isApproved}}toString(){return JSON.stringify(this.toJSON())}}export{n as default};\n//# sourceMappingURL=TokenTransfer.js.map\n","import*as t from\"@hashgraph/proto\";import r from\"./TokenId.js\";import o from\"long\";class e{constructor(t,r){this.tokenId=t,this.serial=\"number\"==typeof r?o.fromNumber(r):r,Object.freeze(this)}static fromString(t){const i=t.split(\"/\").length>1?t.split(\"/\"):t.split(\"@\");for(const t of i)if(\"\"===t)throw new Error(\"invalid format for NftId: use [token]/[serial] or [token]@[serial]\");const s=r.fromString(i[0]),n=o.fromString(i[1]);return new e(s,n)}static _fromProtobuf(t){return new e(r._fromProtobuf(t.token_ID),null!=t.serialNumber?t.serialNumber:o.ZERO)}static fromBytes(r){return e._fromProtobuf(t.proto.NftID.decode(r))}_toProtobuf(){return{token_ID:this.tokenId._toProtobuf(),serialNumber:o.fromValue(void 0!==this.serial?this.serial:0)}}toString(){return`${this.tokenId.toString()}/${this.serial.toString()}`}toBytes(){return t.proto.NftID.encode(this._toProtobuf()).finish()}}export{e as default};\n//# sourceMappingURL=NftId.js.map\n","import e from\"../account/AccountId.js\";import r from\"./TokenId.js\";import n from\"./NftId.js\";class t{constructor(e={}){this._senderId=null,this._receiverId=null,this._tokenId=null,this._nftId=null,e.receiverId&&(this._receiverId=e.receiverId),e.senderId&&(this._senderId=e.senderId),e.tokenId?this._tokenId=new r(e.tokenId):e.nftId&&(this._nftId=new n(e.nftId?.tokenId,e.nftId?.serial))}static fromBytes(d){if(null==d.senderId)throw new Error(\"senderId is required\");if(null==d.receiverId)throw new Error(\"receiverId is required\");if(null==d.fungibleTokenType&&null==d.nonFungibleToken)throw new Error(\"Either fungibleTokenType or nonFungibleToken is required\");return new t({senderId:e._fromProtobuf(d.senderId),receiverId:e._fromProtobuf(d.receiverId),nftId:null!=d.nonFungibleToken?n._fromProtobuf(d.nonFungibleToken):null,tokenId:null!=d.fungibleTokenType?r._fromProtobuf(d.fungibleTokenType):null})}setSenderid(e){return this._senderId=e,this}setReceiverId(e){return this._receiverId=e,this}setTokenId(e){return this._nftId=null,this._tokenId=e,this}setNftId(e){return this._tokenId=null,this._nftId=e,this}get senderId(){return this._senderId}get receiverId(){return this._receiverId}get tokenId(){return this._tokenId}get nftId(){return this._nftId}toBytes(){return{senderId:this.senderId?._toProtobuf(),receiverId:this._receiverId?._toProtobuf(),fungibleTokenType:this._tokenId?._toProtobuf(),nonFungibleToken:this._nftId?._toProtobuf()}}}export{t as default};\n//# sourceMappingURL=PendingAirdropId.js.map\n","import r from\"long\";import o from\"./PendingAirdropId.js\";class d{constructor(r){this.airdropId=r.airdropId,this.amount=r.amount}toBytes(){return{pendingAirdropId:this.airdropId.toBytes(),pendingAirdropValue:{amount:this.amount}}}static fromBytes(i){if(null==i.pendingAirdropId)throw new Error(\"pendingAirdropId is required\");const n=o.fromBytes(i.pendingAirdropId),t=i.pendingAirdropValue?.amount;return new d({airdropId:n,amount:t||r.ZERO})}}export{d as default};\n//# sourceMappingURL=PendingAirdropRecord.js.map\n","import t from\"./TransactionReceipt.js\";import s from\"./TransactionId.js\";import e from\"../Timestamp.js\";import n from\"../Hbar.js\";import o from\"../Transfer.js\";import r from\"../contract/ContractFunctionResult.js\";import a from\"../account/TokenTransferMap.js\";import i from\"../account/TokenNftTransferMap.js\";import*as u from\"@hashgraph/proto\";import l from\"../schedule/ScheduleId.js\";import c from\"../token/AssessedCustomFee.js\";import m from\"../token/TokenAssociation.js\";import h from\"../Key.js\";import f from\"../PublicKey.js\";import d from\"../token/TokenTransfer.js\";import p from\"../EvmAddress.js\";import{encode as T}from\"../encoding/hex.js\";import k from\"../token/PendingAirdropRecord.js\";class b{constructor(t){this.receipt=t.receipt,this.transactionHash=t.transactionHash,this.consensusTimestamp=t.consensusTimestamp,this.transactionId=t.transactionId,this.transactionMemo=t.transactionMemo,this.transactionFee=t.transactionFee,this.transfers=t.transfers,this.contractFunctionResult=null!=t.contractFunctionResult?t.contractFunctionResult:null,this.tokenTransfers=t.tokenTransfers,this.tokenTransfersList=t.tokenTransfersList,this.scheduleRef=t.scheduleRef,this.assessedCustomFees=t.assessedCustomFees,this.nftTransfers=t.nftTransfers,this.automaticTokenAssociations=t.automaticTokenAssociations,this.parentConsensusTimestamp=t.parentConsensusTimestamp,this.aliasKey=t.aliasKey,this.duplicates=t.duplicates,this.children=t.children,this.hbarAllowanceAdjustments=t.hbarAllowanceAdjustments,this.tokenAllowanceAdjustments=t.tokenAllowanceAdjustments,this.nftAllowanceAdjustments=t.nftAllowanceAdjustments,this.ethereumHash=t.ethereumHash,this.paidStakingRewards=t.paidStakingRewards,this.prngBytes=t.prngBytes,this.prngNumber=t.prngNumber,this.evmAddress=t.evmAddress,this.newPendingAirdrops=t.newPendingAirdrops,Object.freeze(this)}_toProtobuf(){const t=this.tokenTransfers._toProtobuf(),s=this.nftTransfers._toProtobuf(),e=[];for(const n of t)for(const t of s)null!=n.token&&null!=t.token&&n.token.shardNum===t.token.shardNum&&n.token.realmNum===t.token.realmNum&&n.token.tokenNum===t.token.tokenNum?e.push({token:n.token,transfers:n.transfers,nftTransfers:n.nftTransfers}):(e.push(n),e.push(t));return{duplicateTransactionRecords:this.duplicates.map((t=>t._toProtobuf().transactionRecord)),childTransactionRecords:this.children.map((t=>t._toProtobuf().transactionRecord)),transactionRecord:{receipt:this.receipt._toProtobuf().receipt,transactionHash:null!=this.transactionHash?this.transactionHash:null,consensusTimestamp:null!=this.consensusTimestamp?this.consensusTimestamp._toProtobuf():null,transactionID:null!=this.transactionId?this.transactionId._toProtobuf():null,memo:null!=this.transactionMemo?this.transactionMemo:null,transactionFee:null!=this.transactionFee?this.transactionFee.toTinybars():null,contractCallResult:null==this.contractFunctionResult||this.contractFunctionResult._createResult?null:this.contractFunctionResult._toProtobuf(),contractCreateResult:null!=this.contractFunctionResult&&this.contractFunctionResult._createResult?this.contractFunctionResult._toProtobuf():null,transferList:null!=this.transfers?{accountAmounts:this.transfers.map((t=>t._toProtobuf()))}:null,tokenTransferLists:e,scheduleRef:null!=this.scheduleRef?this.scheduleRef._toProtobuf():null,assessedCustomFees:this.assessedCustomFees.map((t=>t._toProtobuf())),automaticTokenAssociations:this.automaticTokenAssociations.map((t=>t._toProtobuf())),parentConsensusTimestamp:null!=this.parentConsensusTimestamp?this.parentConsensusTimestamp._toProtobuf():null,alias:null!=this.aliasKey?u.proto.Key.encode(this.aliasKey._toProtobufKey()).finish():null,ethereumHash:this.ethereumHash,paidStakingRewards:this.paidStakingRewards.map((t=>t._toProtobuf())),prngBytes:this.prngBytes,prngNumber:null!=this.prngNumber?this.prngNumber:null,evmAddress:null!=this.evmAddress?this.evmAddress.toBytes():null,newPendingAirdrops:this.newPendingAirdrops.map((t=>t.toBytes()))}}}static _fromProtobuf(T){const R=T.transactionRecord;let A=null!=R.alias&&R.alias.length>0?h._fromProtobufKey(u.proto.Key.decode(R.alias)):null;A instanceof f||(A=null);const g=null!=T.childTransactionRecords?T.childTransactionRecords.map((t=>b._fromProtobuf({transactionRecord:t}))):[],P=null!=T.duplicateTransactionRecords?T.duplicateTransactionRecords.map((t=>b._fromProtobuf({transactionRecord:t}))):[],_=null!=R.contractCallResult?r._fromProtobuf(R.contractCallResult,!1):null!=R.contractCreateResult?r._fromProtobuf(R.contractCreateResult,!0):void 0,y=null!=R.newPendingAirdrops?R.newPendingAirdrops.map((t=>k.fromBytes(t))):[];return new b({receipt:t._fromProtobuf({receipt:R.receipt}),transactionHash:null!=R.transactionHash?R.transactionHash:new Uint8Array,consensusTimestamp:e._fromProtobuf(R.consensusTimestamp),transactionId:s._fromProtobuf(R.transactionID),transactionMemo:null!=R.memo?R.memo:\"\",transactionFee:n.fromTinybars(null!=R.transactionFee?R.transactionFee:0),transfers:o._fromProtobuf(null!=R.transferList&&null!=R.transferList.accountAmounts?R.transferList.accountAmounts:[]),contractFunctionResult:_,tokenTransfers:a._fromProtobuf(null!=R.tokenTransferLists?R.tokenTransferLists:[]),tokenTransfersList:d._fromProtobuf(null!=R.tokenTransferLists?R.tokenTransferLists:[]),scheduleRef:null!=R.scheduleRef?l._fromProtobuf(R.scheduleRef):null,assessedCustomFees:null!=R.assessedCustomFees?R.assessedCustomFees.map((t=>c._fromProtobuf(t))):[],nftTransfers:i._fromProtobuf(null!=R.tokenTransferLists?R.tokenTransferLists:[]),automaticTokenAssociations:null!=R.automaticTokenAssociations?R.automaticTokenAssociations.map((t=>m._fromProtobuf(t))):[],parentConsensusTimestamp:null!=R.parentConsensusTimestamp?e._fromProtobuf(R.parentConsensusTimestamp):null,aliasKey:A,duplicates:P,children:g,hbarAllowanceAdjustments:[],tokenAllowanceAdjustments:[],nftAllowanceAdjustments:[],ethereumHash:null!=R.ethereumHash?R.ethereumHash:null,paidStakingRewards:null!=R.paidStakingRewards?o._fromProtobuf(R.paidStakingRewards):[],prngBytes:null!=R.prngBytes?R.prngBytes:null,prngNumber:null!=R.prngNumber?R.prngNumber:null,evmAddress:null!=R.evmAddress?p.fromBytes(R.evmAddress):null,newPendingAirdrops:y})}static fromBytes(t){return b._fromProtobuf(u.proto.TransactionGetRecordResponse.decode(t))}toBytes(){return u.proto.TransactionGetRecordResponse.encode(this._toProtobuf()).finish()}toJSON(){return{receipt:this.receipt.toJSON(),transactionHash:T(this.transactionHash),consensusTimestamp:this.consensusTimestamp.toDate(),transactionId:this.transactionId.toString(),transactionMemo:this.transactionMemo,transactionFee:this.transactionFee.toTinybars().toString(),transfers:this.transfers.map((t=>t.toJSON())),tokenTransfers:this.tokenTransfers,tokenTransfersList:this.tokenTransfersList.map((t=>t.toJSON())),scheduleRef:this.scheduleRef?.toString()||null,assessedCustomFees:this.assessedCustomFees,nftTransfers:this.nftTransfers,automaticTokenAssociations:this.automaticTokenAssociations,parentConsensusTimestamp:this.parentConsensusTimestamp?.toDate()||null,aliasKey:this.aliasKey?.toString()||null,duplicates:this.duplicates,children:this.children,ethereumHash:null!=this.ethereumHash?T(this.ethereumHash):null,paidStakingRewards:this.paidStakingRewards,prngBytes:null!=this.prngBytes?T(this.prngBytes):null,prngNumber:this.prngNumber,evmAddress:this.evmAddress?.toString()||null}}toString(){return JSON.stringify(this.toJSON())}}export{b as default};\n//# sourceMappingURL=TransactionRecord.js.map\n","import t from\"./StatusError.js\";class r extends t{constructor(t){super(t,`Record for transaction ${t.transactionId.toString()} contained error status ${t.status.toString()}`),this.transactionRecord=t.transactionRecord}}export{r as default};\n//# sourceMappingURL=RecordStatusError.js.map\n","import t,{QUERY_REGISTRY as e}from\"../query/Query.js\";import r from\"./TransactionRecord.js\";import n from\"./TransactionReceipt.js\";import s from\"./TransactionId.js\";import a from\"../Status.js\";import i from\"../PrecheckStatusError.js\";import o from\"../ReceiptStatusError.js\";import c from\"../RecordStatusError.js\";import{ExecutionState as d}from\"../Executable.js\";import*as u from\"@hashgraph/proto\";const{proto:l}=u;class h extends t{constructor(t={}){super(),this._transactionId=null,this._includeChildren=null,this._includeDuplicates=null,this._validateReceiptStatus=!0,null!=t.transactionId&&this.setTransactionId(t.transactionId),null!=t.includeChildren&&this.setIncludeChildren(t.includeChildren),null!=t.includeDuplicates&&this.setIncludeDuplicates(t.includeDuplicates),null!=t.validateReceiptStatus&&this.setValidateReceiptStatus(t.validateReceiptStatus)}get transactionId(){return this._transactionId}static _fromProtobuf(t){const e=t.transactionGetRecord;return new h({transactionId:e.transactionID?s._fromProtobuf(e.transactionID):void 0,includeChildren:null!=e.includeChildRecords?e.includeChildRecords:void 0,includeDuplicates:null!=e.includeDuplicates?e.includeDuplicates:void 0})}setTransactionId(t){return this._transactionId=\"string\"==typeof t?s.fromString(t):t.clone(),this}setIncludeChildren(t){return this._includeChildren=t,this}get includeChildren(){return null!=this._includeChildren&&this._includeChildren}setIncludeDuplicates(t){return this._duplicates=t,this}get includeDuplicates(){return null!=this._duplicates&&this._duplicates}setValidateReceiptStatus(t){return this._validateReceiptStatus=t,this}get validateReceiptStatus(){return this._validateReceiptStatus}_shouldRetry(t,e){const{nodeTransactionPrecheckCode:r}=this._mapResponseHeader(e);let n=a._fromCode(null!=r?r:l.ResponseCodeEnum.OK);switch(this._logger&&this._logger.debug(`[${this._getLogId()}] received node precheck status ${n.toString()}`),n){case a.Busy:case a.Unknown:case a.ReceiptNotFound:case a.RecordNotFound:case a.PlatformNotActive:return[n,d.Retry];case a.Ok:break;default:return[n,d.Error]}const s=e.transactionGetRecord;if(s.header.responseType===u.proto.ResponseType.COST_ANSWER)return[n,d.Finished];const i=s.transactionRecord.receipt.status;switch(n=a._fromCode(i),this._logger&&this._logger.debug(`[${this._getLogId()}] received record's receipt ${n.toString()}`),n){case a.Ok:case a.Busy:case a.Unknown:case a.ReceiptNotFound:case a.RecordNotFound:return[n,d.Retry];case a.Success:return[n,d.Finished];default:return[n,this._validateReceiptStatus?d.Error:d.Finished]}}_mapStatusError(t,e,s){const{nodeTransactionPrecheckCode:d}=this._mapResponseHeader(e);let u=a._fromCode(null!=d?d:l.ResponseCodeEnum.OK);switch(u){case a.Ok:break;case a.ContractRevertExecuted:return new c({status:u,transactionId:this._getTransactionId(),transactionRecord:r._fromProtobuf({transactionRecord:e.transactionGetRecord.transactionRecord})});default:return new i({nodeId:s,status:u,transactionId:this._getTransactionId(),contractFunctionResult:null})}const h=e.transactionGetRecord.transactionRecord.receipt,p=h.status;return u=a._fromCode(p),u===a.ContractRevertExecuted?new c({status:u,transactionId:this._getTransactionId(),transactionRecord:r._fromProtobuf({transactionRecord:e.transactionGetRecord.transactionRecord})}):new o({status:u,transactionId:this._getTransactionId(),transactionReceipt:n._fromProtobuf({receipt:h})})}_validateChecksums(t){null!=this._transactionId&&null!=this._transactionId.accountId&&this._transactionId.accountId.validateChecksum(t)}_execute(t,e){return t.crypto.getTxRecordByTxID(e)}_mapResponseHeader(t){return t.transactionGetRecord.header}_mapResponse(t,e,n){const s=t.transactionGetRecord;return Promise.resolve(r._fromProtobuf(s))}_onMakeRequest(t){return{transactionGetRecord:{header:t,transactionID:null!=this._transactionId?this._transactionId._toProtobuf():null,includeChildRecords:this._includeChildren,includeDuplicates:this._includeDuplicates}}}_getLogId(){return`TransactionRecordQuery:${(null!=this._paymentTransactionId&&null!=this._paymentTransactionId.validStart?this._paymentTransactionId.validStart:this._timestamp).toString()}`}}e.set(\"transactionGetRecord\",h._fromProtobuf);export{h as default};\n//# sourceMappingURL=TransactionRecordQuery.js.map\n","import t from\"../ReceiptStatusError.js\";import r from\"../Status.js\";import e from\"./TransactionReceiptQuery.js\";import n from\"./TransactionRecordQuery.js\";import s from\"../account/AccountId.js\";import a from\"./TransactionId.js\";import{decode as o,encode as i}from\"../encoding/hex.js\";import{wait as c}from\"../util.js\";class h{constructor(t){this.nodeId=t.nodeId,this.transactionHash=t.transactionHash,this.transactionId=t.transactionId,this.transaction=t.transaction,this.logger=t.logger}static fromJSON(t){return new h({nodeId:s.fromString(t.nodeId),transactionHash:o(t.transactionHash),transactionId:a.fromString(t.transactionId)})}async getReceipt(e){let n;try{n=await this.getReceiptQuery().execute(e)}catch(n){if(n instanceof t&&n.status===r.ThrottledAtConsensus)return this.logger?.info(\"Transaction throttled at consensus\"),this._retryTransaction(e);throw n}if(n.status!==r.Success&&n.status!==r.FeeScheduleFilePartUploaded)throw new t({transactionReceipt:n,status:n.status,transactionId:this.transactionId});return n}async getRecord(t){return await this.getReceipt(t),this.getRecordQuery().execute(t)}async getVerboseRecord(t){try{return await this.getReceiptQuery().execute(t),this.getRecordQuery().execute(t)}catch(r){return this.getRecordQuery().execute(t)}}async getReceiptWithSigner(e){const n=await this.getReceiptQuery().executeWithSigner(e);if(n.status!==r.Success)throw new t({transactionReceipt:n,status:n.status,transactionId:this.transactionId});return n}async getRecordWithSigner(t){return await this.getReceiptWithSigner(t),this.getRecordQuery().executeWithSigner(t)}getReceiptQuery(){return(new e).setTransactionId(this.transactionId).setNodeAccountIds([this.nodeId])}getRecordQuery(){return(new n).setTransactionId(this.transactionId).setNodeAccountIds([this.nodeId])}toJSON(){return{nodeId:this.nodeId.toString(),transactionHash:i(this.transactionHash),transactionId:this.transactionId.toString()}}async _retryTransaction(n){if(!this.transaction)throw new Error(\"If you retry transaction you should have the transaction set\");if(n.operatorAccountId?.toString()!==this.transaction.transactionId?.accountId?.toString())throw new Error(\"Retry mechanism is not supported when tx id is not generated by the operator account\");if(null===n.operatorAccountId)throw new Error(\"Operator account is not set\");let s=250;for(let a=0;a<5;a++){if(this.logger?.trace(`Transaction throttled, retry attempt ${a}`),this.transaction?._resetTransaction(n),null==this.transaction||null==this.transaction.transactionId)throw new Error(\"Transaction or Transaction ID is null after reset\");this.transactionId=this.transaction.transactionId,a>0&&(await c(Math.min(s,16e3)),s*=2);try{this.transaction._resetTransaction(n);const t=await this.transaction.execute(n),s=await(new e).setTransactionId(t.transactionId).setNodeAccountIds([t.nodeId]).execute(n);if(s.status!==r.ThrottledAtConsensus)return this.logger?.info(`Transaction throttle retry succeeded after attempt ${a}`),s}catch(e){if(e instanceof t&&e.status===r.ThrottledAtConsensus){this.logger?.info(\"Transaction throttled at consensus\");continue}throw this.logger?.error(`An error occurred after throttle retry: ${e instanceof Error?e.message:String(e)}`),e}}throw this.logger?.error(\"Transaction throttle retry failed after maximum attempts\"),new Error(\"Transaction retry failed after maximum attempts\")}toString(){return JSON.stringify(this.toJSON())}}export{h as default};\n//# sourceMappingURL=TransactionResponse.js.map\n","async function t(t){return new Uint8Array(await window.crypto.subtle.digest(\"SHA-384\",t))}export{t as digest};\n//# sourceMappingURL=sha384.browser.js.map\n","import t from\"../account/AccountId.js\";import{digest as o}from\"../cryptography/sha384.js\";import s from\"../ObjectMap.js\";class n extends s{constructor(){super((o=>t.fromString(o)))}static async _fromTransaction(t){const s=new n;for(let n=0;nr.fromString(e)))}static _fromTransactionSigMap(e){const s=new t,o=null!=e.sigPair?e.sigPair:[];for(const e of o)null!=e.pubKeyPrefix&&(null!=e.ed25519?s._set(r.fromBytesED25519(e.pubKeyPrefix),e.ed25519):null!=e.ECDSASecp256k1&&s._set(r.fromBytesECDSA(e.pubKeyPrefix),e.ECDSASecp256k1));return s}}export{t as default};\n//# sourceMappingURL=NodeAccountIdSignatureMapLegacy.js.map\n","import t from\"./NodeAccountIdSignatureMapLegacy.js\";import o from\"../ObjectMap.js\";import n from\"../account/AccountId.js\";class s extends o{constructor(){super((t=>n.fromString(t)))}static _fromTransaction(o){const n=new s;for(let s=0;se._fromProtobuf({fixedFee:t}))):null})}getAccountId(){return this._accountId}setAccountId(e){return this._accountId=e instanceof t?e:t.fromString(e),this}getFees(){return this._fees}setFees(t){return this._fees=t,this}_toProtobuf(){const t=[];return null!=this._fees&&this._fees.forEach((e=>{const o=e._toProtobuf();null!=o.fixedFee&&t.push(o.fixedFee)})),{accountId:null!=this._accountId?this._accountId._toProtobuf():null,fees:t}}}export{o as default};\n//# sourceMappingURL=CustomFeeLimit.js.map\n","import t from\"../Hbar.js\";import s from\"./TransactionResponse.js\";import n from\"./TransactionId.js\";import i from\"./TransactionHashMap.js\";import e from\"./SignatureMap.js\";import r from\"./SignatureMapLegacy.js\";import o,{ExecutionState as a}from\"../Executable.js\";import c from\"../Status.js\";import h from\"long\";import{digest as u}from\"../cryptography/sha384.js\";import{encode as d}from\"../encoding/hex.js\";import*as l from\"@hashgraph/proto\";import _ from\"../PrecheckStatusError.js\";import g from\"../account/AccountId.js\";import f from\"../PublicKey.js\";import p from\"./List.js\";import m from\"../Timestamp.js\";import{compare as y}from\"../util.js\";import T from\"./CustomFeeLimit.js\";import b from\"../Key.js\";const I=h.fromValue(7776e3),w=t.fromTinybars(h.fromString(\"9223372036854775807\")),S=new g(0,0,0),A=1024,k=new Map;class P extends o{constructor(){super(),this._transactions=new p,this._signedTransactions=new p,this._signerPublicKeys=new Set,this._transactionValidDuration=120,this._defaultMaxTransactionFee=new t(2),this._customFeeLimits=[],this._maxTransactionFee=null,this._transactionMemo=\"\",this._transactionIds=new p,this._publicKeys=[],this._transactionSigners=[],this._regenerateTransactionId=null,this._batchKey=null,this._isThrottled=!1}static fromBytes(t){const s=[],i=[],e=[],r=[],o=[],a=[],c=l.proto.TransactionList.decode(t).transactionList;if(0===c.length){const s=l.proto.Transaction.decode(t);0!==s.signedTransactionBytes.length?c.push(s):c.push({signedTransactionBytes:l.proto.SignedTransaction.encode({sigMap:s.sigMap,bodyBytes:s.bodyBytes}).finish()})}for(const t of c){if(null==t.bodyBytes&&null==t.signedTransactionBytes)throw new Error(\"bodyBytes and signedTransactionBytes are null\");if(t.bodyBytes&&0!=t.bodyBytes.length){const s=l.proto.TransactionBody.decode(t.bodyBytes);if(null!=s.transactionID){const t=n._fromProtobuf(s.transactionID);r.includes(t.toString())||(i.push(t),r.push(t.toString()))}if(null!=s.nodeAccountID){const t=g._fromProtobuf(s.nodeAccountID);o.includes(t.toString())||(e.push(t),o.push(t.toString()))}if(null==s.data)throw new Error(\"(BUG) body.data was not set in the protobuf\");a.push(s)}if(t.signedTransactionBytes&&0!=t.signedTransactionBytes.length){const c=l.proto.SignedTransaction.decode(t.signedTransactionBytes);s.push(c);const h=l.proto.TransactionBody.decode(c.bodyBytes);if(null!=h.transactionID){const t=n._fromProtobuf(h.transactionID);r.includes(t.toString())||(i.push(t),r.push(t.toString()))}if(null!=h.nodeAccountID){const t=g._fromProtobuf(h.nodeAccountID);o.includes(t.toString())||(e.push(t),o.push(t.toString()))}if(null==h.data)throw new Error(\"(BUG) body.data was not set in the protobuf\");a.push(h)}}const h=a[0];if(null==h||null==h.data)throw new Error(\"No transaction found in bytes or failed to decode TransactionBody\");const u=k.get(h.data);if(null==u)throw new Error(`(BUG) Transaction.fromBytes() not implemented for type ${h.data}`);return u(c,s,i,e,a)}schedule(){if(this._requireNotFrozen(),1!=F.length)throw new Error(\"ScheduleCreateTransaction has not been loaded yet\");return F[0]()._setScheduledTransaction(this)}async batchify(t,s){return this._requireNotFrozen(),this.setBatchKey(s),await this.signWithOperator(t)}static _fromProtobufTransactions(s,n,i,e,r,o){const a=o[0];for(let t=0;tnew h(0,0,!0)?t.fromTinybars(a.transactionFee):null,s._customFeeLimits=null!=a.maxCustomFees?a.maxCustomFees?.map((t=>T._fromProtobuf(t))):[],s._batchKey=null!=a.batchKey?b._fromProtobufKey(a?.batchKey):null,s._transactionMemo=null!=a.memo?a.memo:\"\";for(let t=0;tPromise.resolve(t.sign(s))))}async signWith(t,s){this._signOnDemand||this._requireFrozen();const n=t.toBytesRaw(),i=d(n);if(this._signerPublicKeys.has(i))return this;if(this._transactions.clear(),this._signerPublicKeys.add(i),this._publicKeys.push(t),this._transactionSigners.push(s),this._signOnDemand)return this;this._transactionIds.setLocked(),this._nodeAccountIds.setLocked();for(const n of this._signedTransactions.list){const i=n.bodyBytes,e=await s(i);null==n.sigMap&&(n.sigMap={}),null==n.sigMap.sigPair&&(n.sigMap.sigPair=[]),n.sigMap.sigPair.push(t._toProtobufSignature(e))}return this}signWithOperator(t){const s=t._operator;if(null==s)throw new Error(\"`client` must have an operator to sign with the operator\");return this._isFrozen()||this.freezeWith(t),this.signWith(s.publicKey,s.transactionSigner)}_resetTransaction(t){if(!t.operatorAccountId)throw new Error(\"Client must have an operator account ID\");this.logger?.info(\"Resetting transaction id and resigning\");const s=n.generate(t.operatorAccountId);this._transactionIds.clear(),this._signedTransactions.clear(),this._transactionIds.setList([s]),this._isThrottled=!0}addSignature(t,s){if(!(s instanceof e))return this._addSignatureLegacy(t,s);this.isFrozen()||this.freeze();const i=t.toBytesRaw(),r=d(i);if(this._signerPublicKeys.has(r))return this;this._transactions.clear(),this._transactionIds.setLocked(),this._nodeAccountIds.setLocked(),this._signedTransactions.setLocked();for(let i=0;i1)throw new Error(\"Add signature is not supported for chunked transactions\");if(n&&1!==this._signedTransactions.length)throw new Error(\"Signature array must match the number of transactions\");if(i&&s.length!==this._signedTransactions.length)throw new Error(\"Signature array must match the number of transactions\");this.isFrozen()||this.freeze();const e=t.toBytesRaw(),r=d(e);if(this._signerPublicKeys.has(r))return this;this._transactions.clear(),this._transactionIds.setLocked(),this._nodeAccountIds.setLocked(),this._signedTransactions.setLocked();const o=n?[s]:s;for(let s=0;s!s.equals(t))),this._transactionSigners.pop(),i}removeAllSignatures(){this.isFrozen()||this.freeze();const t=this._collectSignaturesByPublicKey();for(const t of this._signedTransactions.list)t.sigMap&&t.sigMap.sigPair&&(t.sigMap.sigPair=[]);return this._signerPublicKeys.clear(),this._publicKeys=[],this._transactionSigners=[],t}getSignatures(t){return t?this.getSignaturesLegacy():(this._requireFrozen(),this._requireNotSignOnDemand(),this._buildAllTransactions(),this._transactionIds.setLocked(),this._nodeAccountIds.setLocked(),e._fromTransaction(this))}async getSignaturesAsync(){return this._transactionIds.setLocked(),this._nodeAccountIds.setLocked(),await this._buildAllTransactionsAsync(),this._transactions.setLocked(),this._signedTransactions.setLocked(),e._fromTransaction(this)}_setTransactionId(){if(null==this._operatorAccountId&&this._transactionIds.isEmpty)throw new Error(\"`transactionId` must be set or `client` must be provided with `freezeWith`\")}_setNodeAccountIds(t){if(this._nodeAccountIds.isEmpty){if(null==t)throw new Error(\"`nodeAccountId` must be set or `client` must be provided with `freezeWith`\");this._nodeAccountIds.setList(t._network.getNodeAccountIdsForExecute())}}setBatchKey(t){return this._requireNotFrozen(),this._batchKey=t,this}get batchKey(){return this._batchKey}_buildSignedTransactions(){this._signedTransactions.locked||this._signedTransactions.setList(this._nodeAccountIds.list.map((t=>this._makeSignedTransaction(t))))}_buildIncompleteTransactions(){0==this._nodeAccountIds.length?this._transactions.setList([this._makeSignedTransaction(null)]):this._transactions.setList(this._nodeAccountIds.list.map((t=>this._makeSignedTransaction(t))))}freeze(){return this.freezeWith(null)}_freezeWithAccountId(t){null==this._operatorAccountId&&(this._operatorAccountId=t)}freezeWith(t){if(this._signOnDemand=null!=t&&t.signOnDemand,this._operator=null!=t?t._operator:null,this._freezeWithAccountId(null!=t?t.operatorAccountId:null),this._maxTransactionFee=null==this._maxTransactionFee?null!=t&&null!=t.defaultMaxTransactionFee?t.defaultMaxTransactionFee:this._defaultMaxTransactionFee:this._maxTransactionFee,this._regenerateTransactionId=null!=t&&null==this._regenerateTransactionId?t.defaultRegenerateTransactionId:this._regenerateTransactionId,this.batchKey?this._nodeAccountIds.setList([S]):this._setNodeAccountIds(t),this._setTransactionId(),null!=t)for(const s of this._transactionIds.list)null!=s.accountId&&s.accountId.validateChecksum(t);return this._buildNewTransactionIdList(),this._signOnDemand||this._buildSignedTransactions(),this}async signWithSigner(t){return await t.signTransaction(this),this}async freezeWithSigner(t){return await t.populateTransaction(this),this.freeze(),this}toBytes(){return this._requireNotSignOnDemand(),this._isFrozen()?(this._transactionIds.setLocked(),this._nodeAccountIds.setLocked(),this._buildAllTransactions()):this._buildIncompleteTransactions(),l.proto.TransactionList.encode({transactionList:this._transactions.list}).finish()}async toBytesAsync(){return this._transactionIds.setLocked(),this._nodeAccountIds.setLocked(),await this._buildAllTransactionsAsync(),this._transactions.setLocked(),this._signedTransactions.setLocked(),l.proto.TransactionList.encode({transactionList:this._transactions.list}).finish()}async getTransactionHash(){return this._requireFrozen(),this._transactionIds.setLocked(),this._nodeAccountIds.setLocked(),await this._buildAllTransactionsAsync(),this._transactions.setLocked(),this._signedTransactions.setLocked(),u(this._transactions.get(0).signedTransactionBytes)}async getTransactionHashPerNode(){return this._requireFrozen(),this._transactionIds.setLocked(),this._nodeAccountIds.setLocked(),await this._buildAllTransactionsAsync(),await i._fromTransaction(this)}isFrozen(){return this._signedTransactions.length>0}_getTransactionId(){const t=this.transactionId;if(null==t)throw new Error(\"transaction must have been frozen before getting the transaction ID, try calling `freeze`\");return t}_validateChecksums(t){}async _beforeExecute(t){this.transactionNodeIds=Object.values(t.network).map((t=>t.toString())),this._logger&&this._logger.info(`Network used: ${t._network.networkName}`),this._isFrozen()||this.freezeWith(t),t.isAutoValidateChecksumsEnabled()&&this._validateChecksums(t),null!=this._operator&&null!=this._operator||(this._operator=null!=t?t._operator:null),null!=this._operatorAccountId&&null!=this._operatorAccountId||(this._operatorAccountId=null!=t&&null!=t._operator?t._operator.accountId:null),null!=this._operator&&await this.signWith(this._operator.publicKey,this._operator.transactionSigner)}async _makeRequestAsync(){const t=this._transactionIds.index*this._nodeAccountIds.length+this._nodeAccountIds.index;return this._signOnDemand||this._isThrottled?await this._buildTransactionAsync():(this._buildTransaction(t),this._transactions.get(t))}async _signTransaction(){const t=this._makeSignedTransaction(this._nodeAccountIds.next),s=t.bodyBytes;for(let n=0;n({signedTransactionBytes:l.proto.SignedTransaction.encode(this._signedTransactions.get(t)).finish()})))}async _buildTransactionAsync(){return{signedTransactionBytes:l.proto.SignedTransaction.encode(await this._signTransaction()).finish()}}_shouldRetry(t,s){const{nodeTransactionPrecheckCode:n}=s,i=c._fromCode(null!=n?n:l.proto.ResponseCodeEnum.OK);switch(this._logger&&(this._logger.debug(`[${this._getLogId()}] received status ${i.toString()}`),this._logger.info(`SDK Transaction Status Response: ${i.toString()}`)),i){case c.Busy:case c.Unknown:case c.PlatformTransactionNotCreated:case c.PlatformNotActive:return[i,a.Retry];case c.Ok:return[i,a.Finished];case c.TransactionExpired:return this._transactionIds.locked||null!=this._regenerateTransactionId&&!this._regenerateTransactionId?[i,a.Error]:(this._buildNewTransactionIdList(),[i,a.Retry]);default:return[i,a.Error]}}_mapStatusError(t,s,n){const{nodeTransactionPrecheckCode:i}=s,e=c._fromCode(null!=i?i:l.proto.ResponseCodeEnum.OK);return this._logger&&this._logger.info(`Transaction Error Info: ${e.toString()}, ${this.transactionId.toString()}`),new _({nodeId:n,status:e,transactionId:this._getTransactionId(),contractFunctionResult:null})}async _mapResponse(t,n,i){const e=await u(i.signedTransactionBytes),r=this._getTransactionId();return this._transactionIds.advance(),this._logger&&this._logger.info(`Transaction Info: ${JSON.stringify(new s({nodeId:n,transactionHash:e,transactionId:r,logger:this._logger}).toJSON())}`),new s({nodeId:n,transactionHash:e,transactionId:r,transaction:this,logger:this._logger})}_makeSignedTransaction(t){const s=this._makeTransactionBody(t);this._logger&&this._logger.info(`Transaction Body: ${JSON.stringify(s)}`);return{sigMap:{sigPair:[]},bodyBytes:l.proto.TransactionBody.encode(s).finish()}}isBatchedAndNotBatchTransaction(){return null!=this.batchKey&&\"atomicBatch\"!=this._getTransactionDataCase()}_makeTransactionBody(t){return{[this._getTransactionDataCase()]:this._makeTransactionData(),transactionFee:null!=this._maxTransactionFee?this._maxTransactionFee.toTinybars():null,memo:this._transactionMemo,transactionID:null!=this._transactionIds.current?this._transactionIds.current._toProtobuf():null,nodeAccountID:null!=t?t._toProtobuf():null,transactionValidDuration:{seconds:h.fromNumber(this._transactionValidDuration)},maxCustomFees:null!=this._customFeeLimits?this._customFeeLimits.map((t=>t._toProtobuf())):null,batchKey:this.batchKey?._toProtobufKey()}}_getTransactionDataCase(){throw new Error(\"not implemented\")}_getScheduledTransactionBody(){return{memo:this.transactionMemo,transactionFee:null==this._maxTransactionFee?this._defaultMaxTransactionFee.toTinybars():this._maxTransactionFee.toTinybars(),[this._getTransactionDataCase()]:this._makeTransactionData()}}_makeTransactionData(){throw new Error(\"not implemented\")}_isFrozen(){return this._signOnDemand||this._signedTransactions.length>0}_requireNotFrozen(){if(this._isFrozen())throw new Error(\"transaction is immutable; it has at least one signature or has been explicitly frozen\")}_requireNotSignOnDemand(){if(this._signOnDemand)throw new Error(\"Please use `toBytesAsync()` if `signOnDemand` is enabled\")}_requireFrozen(){if(!this._isFrozen())throw new Error(\"transaction must have been frozen before calculating the hash will be stable, try calling `freeze`\")}_requireOneNodeAccountId(){if(1!=this._nodeAccountIds.length)throw\"transaction did not have exactly one node ID set\"}_requestToBytes(t){return l.proto.Transaction.encode(t).finish()}_responseToBytes(t){return l.proto.TransactionResponse.encode(t).finish()}_removeSignaturesFromTransaction(t,s){const n=[];return t.sigMap&&t.sigMap.sigPair?(t.sigMap.sigPair=t.sigMap.sigPair.filter((t=>{const i=this._shouldRemoveSignature(t,s),e=t.ed25519??t.ECDSASecp256k1;return i&&e&&n.push(e),!i})),n):[]}_shouldRemoveSignature=(t,s)=>d(t?.pubKeyPrefix||new Uint8Array)===s;_collectSignaturesByPublicKey(){const t=new Map,s={};for(const n of this._signedTransactions.list){if(!n.sigMap||!n.sigMap.sigPair)return new Map;for(const i of n.sigMap.sigPair){const n=i.ed25519??i.ECDSASecp256k1;if(!n||!i.pubKeyPrefix)return new Map;const e=d(i.pubKeyPrefix);let r=s[e];r||(r=f.fromString(e),s[e]=r),t.has(r)||t.set(r,[]);const o=t.get(r);o&&o.push(n)}}return t}}const F=[];export{A as CHUNK_SIZE,I as DEFAULT_AUTO_RENEW_PERIOD,w as DEFAULT_RECORD_THRESHOLD,F as SCHEDULE_CREATE_TRANSACTION,k as TRANSACTION_REGISTRY,P as default};\n//# sourceMappingURL=Transaction.js.map\n","import r from\"long\";import o from\"../account/AccountId.js\";import e from\"./TokenId.js\";class t{constructor(t){this.tokenId=t.tokenId instanceof e?t.tokenId:e.fromString(t.tokenId),this.senderAccountId=t.senderAccountId instanceof o?t.senderAccountId:o.fromString(t.senderAccountId),this.receiverAccountId=t.receiverAccountId instanceof o?t.receiverAccountId:o.fromString(t.receiverAccountId),this.serialNumber=r.fromValue(t.serialNumber),this.isApproved=t.isApproved}static _fromProtobuf(n){const c=[];for(const s of n){const n=e._fromProtobuf(s.token);for(const e of null!=s.nftTransfers?s.nftTransfers:[])c.push(new t({tokenId:n,senderAccountId:o._fromProtobuf(e.senderAccountID),receiverAccountId:o._fromProtobuf(e.receiverAccountID),serialNumber:null!=e.serialNumber?e.serialNumber:r.ZERO,isApproved:1==e.isApproval}))}return c}_toProtobuf(){return{senderAccountID:this.senderAccountId._toProtobuf(),receiverAccountID:this.receiverAccountId._toProtobuf(),serialNumber:this.serialNumber,isApproval:this.isApproved}}}export{t as default};\n//# sourceMappingURL=TokenNftTransfer.js.map\n","import o from\"../token/TokenId.js\";import r from\"../ObjectMap.js\";class t extends r{constructor(){super((r=>o.fromString(r)))}}export{t as default};\n//# sourceMappingURL=NullableTokenDecimalMap.js.map\n","import e from\"./TokenTransfer.js\";import n from\"./TokenNftTransfer.js\";import t from\"./TokenId.js\";import r from\"./NftId.js\";import s from\"../account/AccountId.js\";import o from\"../transaction/Transaction.js\";import a from\"long\";import f from\"../account/NullableTokenDecimalMap.js\";import c from\"../account/TokenNftTransferMap.js\";import i from\"../account/TokenTransferMap.js\";import d from\"../account/TokenTransferAccountMap.js\";class u extends o{constructor(e={}){super(),this._tokenTransfers=[],this._nftTransfers=[];for(const n of null!=e.tokenTransfers?e.tokenTransfers:[])this.addTokenTransfer(n.tokenId,n.accountId,n.amount);for(const n of null!=e.nftTransfers?e.nftTransfers:[])this.addNftTransfer(n.tokenId,n.serial,n.sender,n.recipient)}addNftTransfer(e,n,t,r){return this._addNftTransfer(!1,e,n,t,r)}_addTokenTransfer(n,r,o,f,c){this._requireNotFrozen();const i=n instanceof t?n:t.fromString(n),d=r instanceof s?r:s.fromString(r),u=o instanceof a?o:a.fromNumber(o);for(const e of this._tokenTransfers)if(0===e.tokenId.compare(i)&&0===e.accountId.compare(d))return e.amount=e.amount.add(u),e.expectedDecimals=c,this;return this._tokenTransfers.push(new e({tokenId:n,accountId:r,expectedDecimals:c,amount:o,isApproved:f})),this}addTokenTransfer(e,n,t){return this._addTokenTransfer(e,n,t,!1,null)}_addNftTransfer(e,o,a,f,c){let i,d,u;if(this._requireNotFrozen(),o instanceof r)i=o,d=\"string\"==typeof a?s.fromString(a):a,u=\"string\"==typeof f?s.fromString(f):f;else if(o instanceof t)i=new r(o,a),d=\"string\"==typeof f?s.fromString(f):f,u=\"string\"==typeof c?s.fromString(c):c;else try{i=r.fromString(o),d=\"string\"==typeof a?s.fromString(a):a,u=\"string\"==typeof f?s.fromString(f):f}catch(e){const n=t.fromString(o);i=new r(n,a),d=\"string\"==typeof f?s.fromString(f):f,u=\"string\"==typeof c?s.fromString(c):c}for(const e of this._nftTransfers)if(0===e.tokenId.compare(i.tokenId)&&0===e.serialNumber.compare(i.serial))return e.senderAccountId=d,e.receiverAccountId=u,this;return this._nftTransfers.push(new n({tokenId:i.tokenId,serialNumber:i.serial,senderAccountId:d,receiverAccountId:u,isApproved:e})),this}addApprovedNftTransfer(e,n,t,r){return this._addNftTransfer(!0,e,n,t,r)}addApprovedTokenTransfer(e,n,t){return this._addTokenTransfer(e,n,t,!0,null)}addTokenTransferWithDecimals(n,r,o,f){this._requireNotFrozen();const c=n instanceof t?n:t.fromString(n),i=r instanceof s?r:s.fromString(r),d=o instanceof a?o:a.fromNumber(o);let u=!1;for(const e of this._tokenTransfers)if(0===e.tokenId.compare(c)){if(null!=e.expectedDecimals&&e.expectedDecimals!==f)throw new Error(\"expected decimals mis-match\");e.expectedDecimals=f,0===e.accountId.compare(i)&&(e.amount=e.amount.add(d),e.expectedDecimals=f,u=!0)}return u||this._tokenTransfers.push(new e({tokenId:n,accountId:r,expectedDecimals:f,amount:o,isApproved:!1})),this}get tokenIdDecimals(){const e=new f;for(const n of this._tokenTransfers)e._set(n.tokenId,n.expectedDecimals);return e}get nftTransfers(){const e=new c;for(const n of this._nftTransfers){const t=e.get(n.tokenId),r={sender:n.senderAccountId,recipient:n.receiverAccountId,serial:n.serialNumber,isApproved:n.isApproved};null!=t?t.push(r):e._set(n.tokenId,[r])}return e}get tokenTransfers(){const e=new i;for(const n of this._tokenTransfers){let t=e.get(n.tokenId);null!=t?t._set(n.accountId,n.amount):(t=new d,t._set(n.accountId,n.amount),e._set(n.tokenId,t))}return e}_makeTransactionData(){const e=[];this._tokenTransfers.sort(((e,n)=>{const t=e.tokenId.compare(n.tokenId);return 0!==t?t:e.accountId.compare(n.accountId)})),this._nftTransfers.sort(((e,n)=>{const t=e.senderAccountId.compare(n.senderAccountId);if(0!=t)return t;const r=e.receiverAccountId.compare(n.receiverAccountId);return 0!=r?r:e.serialNumber.compare(n.serialNumber)}));let n=0,t=0;for(;n0?e[e.length-1]:null,a=null!=o?o.tokenId:null;if(null!=o&&null!=a&&0===a.compare(r)){o.transfers.push(this._tokenTransfers[n++]);continue}if(null!=o&&null!=a&&0===a.compare(s)){o.nftTransfers.push(this._nftTransfers[t++]);continue}const f=r.compare(s);0===f?e.push({tokenId:r,expectedDecimals:this._tokenTransfers[n].expectedDecimals,transfers:[this._tokenTransfers[n++]],nftTransfers:[this._nftTransfers[t++]]}):f<0?e.push({tokenId:r,expectedDecimals:this._tokenTransfers[n].expectedDecimals,transfers:[this._tokenTransfers[n++]],nftTransfers:[]}):e.push({tokenId:s,expectedDecimals:null,transfers:[],nftTransfers:[this._nftTransfers[t++]]})}else if(n({token:e.tokenId._toProtobuf(),expectedDecimals:null!=e.expectedDecimals?{value:e.expectedDecimals}:null,transfers:e.transfers.map((e=>e._toProtobuf())),nftTransfers:e.nftTransfers.map((e=>e._toProtobuf()))})))}}}export{u as default};\n//# sourceMappingURL=AbstractTokenTransferTransaction.js.map\n","import r,{TRANSACTION_REGISTRY as t}from\"../transaction/Transaction.js\";import o from\"./TokenTransfer.js\";import n from\"./TokenNftTransfer.js\";import e from\"./AbstractTokenTransferTransaction.js\";class s extends e{constructor(r={}){if(super(),null!=r.tokenTransfers)for(const t of r.tokenTransfers)this._addTokenTransfer(t.tokenId,t.accountId,t.amount,t.isApproved,t.expectedDecimals);if(this._nftTransfers=[],null!=r.nftTransfers)for(const t of r.nftTransfers)this._addNftTransfer(t.isApproved,t.tokenId,t.serialNumber,t.senderAccountId,t.receiverAccountId)}addApprovedTokenTransferWithDecimals(r,t,o,n){return this._requireNotFrozen(),this._addTokenTransfer(r,t,o,!0,n),this}static _fromProtobuf(t,e,a,f,i){const T=i[0].tokenAirdrop,d=o._fromProtobuf(T.tokenTransfers??[]),c=n._fromProtobuf(T.tokenTransfers??[]);return r._fromProtobufTransactions(new s({nftTransfers:c,tokenTransfers:d}),t,e,a,f,i)}_execute(r,t){return r.token.airdropTokens(t)}_getTransactionDataCase(){return\"tokenAirdrop\"}_getLogId(){return`TokenAirdropTransaction:${this._transactionIds.current.validStart.toString()}`}}t.set(\"tokenAirdrop\",s._fromProtobuf);export{s as default};\n//# sourceMappingURL=TokenAirdropTransaction.js.map\n","import r from\"../transaction/Transaction.js\";class d extends r{constructor(r){super(),this._pendingAirdropIds=[],null!=r?.pendingAirdropIds&&(this._pendingAirdropIds=r.pendingAirdropIds)}get pendingAirdropIds(){return this._pendingAirdropIds}addPendingAirdropId(r){return this._requireNotFrozen(),this._pendingAirdropIds.push(r),this}setPendingAirdropIds(r){return this._requireNotFrozen(),this._pendingAirdropIds=r,this}}export{d as default};\n//# sourceMappingURL=AirdropPendingTransaction.js.map\n","import r from\"./PendingAirdropId.js\";import t from\"./AirdropPendingTransaction.js\";import o,{TRANSACTION_REGISTRY as n}from\"../transaction/Transaction.js\";class i extends t{constructor(r={}){super(r)}_execute(r,t){return r.token.claimAirdrop(t)}_makeTransactionData(){return{pendingAirdrops:this.pendingAirdropIds.map((r=>r.toBytes()))}}static _fromProtobuf(t,n,a,e,s){const d=s[0],{pendingAirdrops:p}=d.tokenClaimAirdrop;return o._fromProtobufTransactions(new i({pendingAirdropIds:p?.map((t=>r.fromBytes(t)))}),t,n,a,e,s)}_getTransactionDataCase(){return\"tokenClaimAirdrop\"}_getLogId(){return`TokenClaimAirdropTransaction:${this._transactionIds.current.validStart.toString()}`}}n.set(\"tokenClaimAirdrop\",i._fromProtobuf);export{i as default};\n//# sourceMappingURL=TokenClaimAirdropTransaction.js.map\n","import r from\"./PendingAirdropId.js\";import t,{TRANSACTION_REGISTRY as n}from\"../transaction/Transaction.js\";import o from\"./AirdropPendingTransaction.js\";class e extends o{constructor(r={}){super(r)}_makeTransactionData(){return{pendingAirdrops:this.pendingAirdropIds.map((r=>r.toBytes()))}}_execute(r,t){return r.token.cancelAirdrop(t)}_getTransactionDataCase(){return\"tokenCancelAirdrop\"}static _fromProtobuf(n,o,a,i,s){const d=s[0],{pendingAirdrops:p}=d.tokenCancelAirdrop;return t._fromProtobufTransactions(new e({pendingAirdropIds:p?.map((t=>r.fromBytes(t)))}),n,o,a,i,s)}_getLogId(){return`TokenCancelAirdrop:${this._transactionIds.current.validStart.toString()}`}}n.set(\"tokenCancelAirdrop\",e._fromProtobuf);export{e as default};\n//# sourceMappingURL=TokenCancelAirdropTransaction.js.map\n","import n from\"./AccountId.js\";import t from\"../Hbar.js\";class o{constructor(n){this.spenderAccountId=n.spenderAccountId,this.ownerAccountId=n.ownerAccountId,this.amount=n.amount,Object.freeze(this)}static _fromProtobuf(u){return new o({spenderAccountId:n._fromProtobuf(u.spender),ownerAccountId:null!=u.owner?n._fromProtobuf(u.owner):null,amount:t.fromTinybars(null!=u.amount?u.amount:0)})}static _fromGrantedProtobuf(u,r){return new o({spenderAccountId:n._fromProtobuf(u.spender),ownerAccountId:r,amount:t.fromTinybars(null!=u.amount?u.amount:0)})}_toProtobuf(){return{owner:null!=this.ownerAccountId?this.ownerAccountId._toProtobuf():null,spender:null!=this.spenderAccountId?this.spenderAccountId._toProtobuf():null,amount:null!=this.amount?this.amount.toTinybars():null}}_validateChecksums(n){null!=this.spenderAccountId&&this.spenderAccountId.validateChecksum(n),null!=this.spenderAccountId&&this.spenderAccountId.validateChecksum(n)}toJSON(){return{ownerAccountId:null!=this.ownerAccountId?this.ownerAccountId.toString():null,spenderAccountId:null!=this.spenderAccountId?this.spenderAccountId.toString():null,amount:null!=this.amount?this.amount.toString():null}}}export{o as default};\n//# sourceMappingURL=HbarAllowance.js.map\n","import o from\"../token/TokenId.js\";import t from\"./AccountId.js\";import n from\"long\";class e{constructor(o){this.tokenId=o.tokenId,this.spenderAccountId=o.spenderAccountId,this.ownerAccountId=o.ownerAccountId,this.amount=o.amount,Object.freeze(this)}static _fromProtobuf(u){return new e({tokenId:o._fromProtobuf(u.tokenId),spenderAccountId:t._fromProtobuf(u.spender),ownerAccountId:null!=u.owner?t._fromProtobuf(u.owner):null,amount:null!=u.amount?n.fromValue(u.amount):null})}static _fromGrantedProtobuf(u,r){return new e({tokenId:o._fromProtobuf(u.tokenId),spenderAccountId:t._fromProtobuf(u.spender),ownerAccountId:r,amount:null!=u.amount?n.fromValue(u.amount):null})}_toProtobuf(){return{tokenId:this.tokenId._toProtobuf(),spender:null!=this.spenderAccountId?this.spenderAccountId._toProtobuf():null,owner:null!=this.ownerAccountId?this.ownerAccountId._toProtobuf():null,amount:this.amount}}_validateChecksums(o){this.tokenId.validateChecksum(o),null!=this.ownerAccountId&&this.ownerAccountId.validateChecksum(o),null!=this.spenderAccountId&&this.spenderAccountId.validateChecksum(o)}}export{e as default};\n//# sourceMappingURL=TokenAllowance.js.map\n","import e from\"../token/TokenId.js\";import r from\"./AccountId.js\";import n from\"long\";class o{constructor(e){this.tokenId=e.tokenId,this.spenderAccountId=e.spenderAccountId,this.ownerAccountId=e.ownerAccountId,this.serialNumbers=e.serialNumbers,this.allSerials=e.allSerials,this.delegatingSpender=e.delegatingSpender,Object.freeze(this)}static _fromProtobuf(l){const t=null!=l.approvedForAll&&1==l.approvedForAll.value;return new o({tokenId:e._fromProtobuf(l.tokenId),spenderAccountId:null!=l.spender?r._fromProtobuf(l.spender):null,ownerAccountId:null!=l.owner?r._fromProtobuf(l.owner):null,serialNumbers:t?null:null!=l.serialNumbers?l.serialNumbers.map((e=>n.fromValue(e))):[],allSerials:t,delegatingSpender:null!=l.delegatingSpender?r._fromProtobuf(l.delegatingSpender):null})}static _fromGrantedProtobuf(n,l){return new o({tokenId:e._fromProtobuf(n.tokenId),spenderAccountId:r._fromProtobuf(n.spender),ownerAccountId:l,serialNumbers:[],allSerials:null,delegatingSpender:null})}static _fromRemoveProtobuf(l){return new o({tokenId:e._fromProtobuf(l.tokenId),spenderAccountId:null,ownerAccountId:null!=l.owner?r._fromProtobuf(l.owner):null,serialNumbers:null!=l.serialNumbers?l.serialNumbers.map((e=>n.fromValue(e))):[],allSerials:null,delegatingSpender:null})}_toProtobuf(){return{tokenId:this.tokenId._toProtobuf(),spender:null!=this.spenderAccountId?this.spenderAccountId._toProtobuf():null,owner:null!=this.ownerAccountId?this.ownerAccountId._toProtobuf():null,approvedForAll:null==this.serialNumbers?{value:this.allSerials}:null,serialNumbers:this.serialNumbers,delegatingSpender:null!=this.delegatingSpender?this.delegatingSpender._toProtobuf():null}}_validateChecksums(e){this.tokenId.validateChecksum(e),null!=this.ownerAccountId&&this.ownerAccountId.validateChecksum(e),null!=this.spenderAccountId&&this.spenderAccountId.validateChecksum(e)}}export{o as default};\n//# sourceMappingURL=TokenNftAllowance.js.map\n","import o,{TRANSACTION_REGISTRY as r}from\"../transaction/Transaction.js\";import t from\"./AccountId.js\";import e from\"../contract/ContractId.js\";import n from\"../token/TokenId.js\";import s from\"../token/NftId.js\";import a from\"long\";import l from\"../Hbar.js\";import p from\"./HbarAllowance.js\";import i from\"./TokenAllowance.js\";import f from\"./TokenNftAllowance.js\";class c extends o{constructor(o={}){super(),this._hbarApprovals=null!=o.hbarApprovals?o.hbarApprovals:[],this._tokenApprovals=null!=o.tokenApprovals?o.tokenApprovals:[],this._nftApprovals=null!=o.nftApprovals?o.nftApprovals:[]}static _fromProtobuf(r,t,e,n,s){const a=s[0].cryptoApproveAllowance;return o._fromProtobufTransactions(new c({hbarApprovals:(null!=a.cryptoAllowances?a.cryptoAllowances:[]).map((o=>p._fromProtobuf(o))),tokenApprovals:(null!=a.tokenAllowances?a.tokenAllowances:[]).map((o=>i._fromProtobuf(o))),nftApprovals:(null!=a.nftAllowances?a.nftAllowances:[]).map((o=>f._fromProtobuf(o)))}),r,t,e,n,s)}get hbarApprovals(){return this._hbarApprovals}approveHbarAllowance(o,r,n){return this._requireNotFrozen(),this._hbarApprovals.push(new p({spenderAccountId:\"string\"==typeof r?t.fromString(r):r instanceof e?t.fromEvmAddress(r.shard,r.realm,r.toSolidityAddress()):r,ownerAccountId:\"string\"==typeof o?t.fromString(o):o instanceof e?t.fromEvmAddress(o.shard,o.realm,o.toSolidityAddress()):o,amount:n instanceof l?n:new l(n)})),this}addHbarAllowance(o,r){return this._requireNotFrozen(),this._hbarApprovals.push(new p({spenderAccountId:\"string\"==typeof o?t.fromString(o):o,amount:r instanceof l?r:new l(r),ownerAccountId:null})),this}get tokenApprovals(){return this._tokenApprovals}approveTokenAllowance(o,r,s,l){return this._requireNotFrozen(),this._tokenApprovals.push(new i({tokenId:\"string\"==typeof o?n.fromString(o):o,spenderAccountId:\"string\"==typeof s?t.fromString(s):s instanceof e?t.fromEvmAddress(s.shard,s.realm,s.toSolidityAddress()):s,ownerAccountId:\"string\"==typeof r?t.fromString(r):r instanceof e?t.fromEvmAddress(r.shard,r.realm,r.toSolidityAddress()):r,amount:\"number\"==typeof l?a.fromNumber(l):l})),this}addTokenAllowance(o,r,e){return this._requireNotFrozen(),this._tokenApprovals.push(new i({tokenId:\"string\"==typeof o?n.fromString(o):o,spenderAccountId:\"string\"==typeof r?t.fromString(r):r,amount:\"number\"==typeof e?a.fromNumber(e):e,ownerAccountId:null})),this}addTokenNftAllowance(o,r){return this._approveTokenNftAllowance(o,null,r,null)}get tokenNftApprovals(){return this._nftApprovals}_approveTokenNftAllowance(o,r,n,a){this._requireNotFrozen();const l=\"string\"==typeof o?s.fromString(o):o,p=\"string\"==typeof n?t.fromString(n):n instanceof e?t.fromEvmAddress(n.shard,n.realm,n.toSolidityAddress()):n;let i=!1;for(const o of this._nftApprovals)if(0===o.tokenId.compare(l.tokenId)&&null!=o.spenderAccountId&&0===o.spenderAccountId.compare(p)){null!=o.serialNumbers&&o.serialNumbers.push(l.serial),i=!0;break}return i||this._nftApprovals.push(new f({tokenId:l.tokenId,spenderAccountId:p,ownerAccountId:\"string\"==typeof r?t.fromString(r):r instanceof e?t.fromEvmAddress(r.shard,r.realm,r.toSolidityAddress()):r,serialNumbers:[l.serial],allSerials:!1,delegatingSpender:\"string\"==typeof a?t.fromString(a):a})),this}approveTokenNftAllowance(o,r,t){return this._approveTokenNftAllowance(o,r,t,null)}approveTokenNftAllowanceWithDelegatingSpender(o,r,t,e){return this._approveTokenNftAllowance(o,r,t,e)}_approveAllTokenNftAllowance(o,r,s,a){return this._requireNotFrozen(),this._nftApprovals.push(new f({tokenId:\"string\"==typeof o?n.fromString(o):o,spenderAccountId:\"string\"==typeof s?t.fromString(s):s instanceof e?t.fromEvmAddress(s.shard,s.realm,s.toSolidityAddress()):s,ownerAccountId:\"string\"==typeof r?t.fromString(r):r instanceof e?t.fromEvmAddress(r.shard,r.realm,r.toSolidityAddress()):r,serialNumbers:null,allSerials:a,delegatingSpender:null})),this}addAllTokenNftAllowance(o,r,t){return this._approveAllTokenNftAllowance(o,r,t,!0)}approveTokenNftAllowanceAllSerials(o,r,t){return this._approveAllTokenNftAllowance(o,r,t,!0)}deleteTokenNftAllowanceAllSerials(o,r,t){return this._approveAllTokenNftAllowance(o,r,t,!1)}_validateChecksums(o){this._hbarApprovals.map((r=>r._validateChecksums(o))),this._tokenApprovals.map((r=>r._validateChecksums(o))),this._nftApprovals.map((r=>r._validateChecksums(o)))}_execute(o,r){return o.crypto.approveAllowances(r)}_getTransactionDataCase(){return\"cryptoApproveAllowance\"}_makeTransactionData(){return{cryptoAllowances:this._hbarApprovals.map((o=>o._toProtobuf())),tokenAllowances:this._tokenApprovals.map((o=>o._toProtobuf())),nftAllowances:this._nftApprovals.map((o=>o._toProtobuf()))}}_getLogId(){return`AccountAllowanceApproveTransaction:${this._transactionIds.current.validStart.toString()}`}}r.set(\"cryptoApproveAllowance\",c._fromProtobuf);export{c as default};\n//# sourceMappingURL=AccountAllowanceApproveTransaction.js.map\n","import t,{TRANSACTION_REGISTRY as e}from\"../transaction/Transaction.js\";import n from\"./AccountId.js\";import o from\"../token/NftId.js\";import l from\"./TokenNftAllowance.js\";class r extends t{constructor(t={}){super(),this._nftAllowances=null!=t.nftAllowances?t.nftAllowances:[]}static _fromProtobuf(e,n,o,s,a){const c=a[0].cryptoDeleteAllowance;return t._fromProtobufTransactions(new r({nftAllowances:(null!=c.nftAllowances?c.nftAllowances:[]).map((t=>l._fromProtobuf(t)))}),e,n,o,s,a)}get tokenNftAllowanceDeletions(){return this._nftAllowances}deleteAllTokenNftAllowances(t,e){this._requireNotFrozen();const r=\"string\"==typeof t?o.fromString(t):t,s=\"string\"==typeof e?n.fromString(e):e;let a=!1;for(const t of this._nftAllowances)if(0===t.tokenId.compare(r.tokenId)){null!=t.serialNumbers&&t.serialNumbers.push(r.serial),a=!0;break}return a||this._nftAllowances.push(new l({tokenId:r.tokenId,spenderAccountId:null,serialNumbers:[r.serial],ownerAccountId:s,allSerials:!1,delegatingSpender:null})),this}_validateChecksums(t){this._nftAllowances.map((e=>e._validateChecksums(t)))}_execute(t,e){return t.crypto.deleteAllowances(e)}_getTransactionDataCase(){return\"cryptoDeleteAllowance\"}_makeTransactionData(){return{nftAllowances:this._nftAllowances.map((t=>t._toProtobuf()))}}_getLogId(){return`AccountAllowanceDeleteTransaction:${this._transactionIds.current.validStart.toString()}`}}e.set(\"cryptoDeleteAllowance\",r._fromProtobuf);export{r as default};\n//# sourceMappingURL=AccountAllowanceDeleteTransaction.js.map\n","import o from\"../token/TokenId.js\";import r from\"../ObjectMap.js\";class t extends r{constructor(){super((r=>o.fromString(r)))}}export{t as default};\n//# sourceMappingURL=TokenBalanceMap.js.map\n","import o from\"../token/TokenId.js\";import r from\"../ObjectMap.js\";class t extends r{constructor(){super((r=>o.fromString(r)))}}export{t as default};\n//# sourceMappingURL=TokenDecimalMap.js.map\n","import t from\"long\";import o from\"../Hbar.js\";import e from\"../token/TokenId.js\";import s from\"./TokenBalanceMap.js\";import n from\"./TokenDecimalMap.js\";import*as r from\"@hashgraph/proto\";class a{constructor(t){this.hbars=t.hbars,this.tokens=t.tokens,this.tokenDecimals=t.tokenDecimals,Object.freeze(this)}static fromBytes(t){return a._fromProtobuf(r.proto.CryptoGetAccountBalanceResponse.decode(t))}static _fromProtobuf(r){const i=new s,l=new n;if(null!=r.tokenBalances)for(const o of r.tokenBalances){const s=e._fromProtobuf(o.tokenId);l._set(s,null!=o.decimals?o.decimals:0),i._set(s,t.fromValue(o.balance))}return new a({hbars:o.fromTinybars(r.balance),tokens:i,tokenDecimals:l})}_toProtobuf(){const t=[];for(const[o,e]of null!=this.tokens?this.tokens:[])t.push({tokenId:o._toProtobuf(),balance:e,decimals:null!=this.tokenDecimals?this.tokenDecimals.get(o):null});return{balance:this.hbars.toTinybars(),tokenBalances:t}}toBytes(){return r.proto.CryptoGetAccountBalanceResponse.encode(this._toProtobuf()).finish()}toString(){return JSON.stringify(this.toJSON())}toJSON(){const t=[];for(const[o,e]of null!=this.tokens?this.tokens:[]){const s=null!=this.tokenDecimals?this.tokenDecimals.get(o):null;t.push({tokenId:o.toString(),balance:e.toString(),decimals:null!=s?s:0})}return{hbars:this.hbars.toString(),tokens:t}}}export{a as default};\n//# sourceMappingURL=AccountBalance.js.map\n","import t,{QUERY_REGISTRY as c}from\"../query/Query.js\";import o from\"./AccountId.js\";import n from\"../contract/ContractId.js\";import r from\"./AccountBalance.js\";class e extends t{constructor(t={}){super(),this._accountId=null,this._contractId=null,null!=t.accountId&&this.setAccountId(t.accountId),null!=t.contractId&&this.setContractId(t.contractId)}static _fromProtobuf(t){const c=t.cryptogetAccountBalance;return new e({accountId:null!=c.accountID?o._fromProtobuf(c.accountID):void 0,contractId:null!=c.contractID?n._fromProtobuf(c.contractID):void 0})}get accountId(){return this._accountId}setAccountId(t){return this._accountId=\"string\"==typeof t?o.fromString(t):t.clone(),this}get contractId(){return this._contractId}setContractId(t){return this._contractId=\"string\"==typeof t?n.fromString(t):t.clone(),this}_isPaymentRequired(){return!1}_validateChecksums(t){null!=this._accountId&&this._accountId.validateChecksum(t),null!=this._contractId&&this._contractId.validateChecksum(t)}_execute(t,c){return t.crypto.cryptoGetBalance(c)}_mapResponseHeader(t){return t.cryptogetAccountBalance.header}_mapResponse(t,c,o){const n=t.cryptogetAccountBalance;return Promise.resolve(r._fromProtobuf(n))}_onMakeRequest(t){return{cryptogetAccountBalance:{header:t,accountID:null!=this._accountId?this._accountId._toProtobuf():null,contractID:null!=this._contractId?this._contractId._toProtobuf():null}}}_getLogId(){return`AccountBalanceQuery:${this._timestamp.toString()}`}}c.set(\"cryptogetAccountBalance\",e._fromProtobuf);export{e as default};\n//# sourceMappingURL=AccountBalanceQuery.js.map\n","import o from\"long\";class s{constructor(s){this.seconds=s instanceof o?s:o.fromNumber(s),Object.freeze(this)}_toProtobuf(){return{seconds:this.seconds}}static _fromProtobuf(o){return new s(o.seconds)}}export{s as default};\n//# sourceMappingURL=Duration.js.map\n","import\"@hashgraph/proto\";import e from\"../Hbar.js\";import t from\"./AccountId.js\";import i,{TRANSACTION_REGISTRY as o,DEFAULT_RECORD_THRESHOLD as r,DEFAULT_AUTO_RENEW_PERIOD as s}from\"../transaction/Transaction.js\";import n from\"../Duration.js\";import a from\"long\";import u from\"../Key.js\";import c from\"../PrivateKey.js\";import d from\"../EvmAddress.js\";import l from\"../PublicKey.js\";class h extends i{constructor(e={}){super(),this._key=null,this._initialBalance=null,this._sendRecordThreshold=r,this._receiveRecordThreshold=r,this._receiverSignatureRequired=!1,this._proxyAccountId=null,this._autoRenewPeriod=new n(s),this._accountMemo=null,this._maxAutomaticTokenAssociations=null,this._stakedAccountId=null,this._stakedNodeId=null,this._declineStakingReward=!1,this._alias=null,null!=e.key&&this.setKeyWithoutAlias(e.key),null!=e.receiverSignatureRequired&&this.setReceiverSignatureRequired(e.receiverSignatureRequired),null!=e.initialBalance&&this.setInitialBalance(e.initialBalance),null!=e.proxyAccountId&&this.setProxyAccountId(e.proxyAccountId),null!=e.autoRenewPeriod&&this.setAutoRenewPeriod(e.autoRenewPeriod),null!=e.accountMemo&&this.setAccountMemo(e.accountMemo),null!=e.maxAutomaticTokenAssociations&&this.setMaxAutomaticTokenAssociations(e.maxAutomaticTokenAssociations),null!=e.stakedAccountId&&this.setStakedAccountId(e.stakedAccountId),null!=e.stakedNodeId&&this.setStakedNodeId(e.stakedNodeId),null!=e.declineStakingReward&&this.setDeclineStakingReward(e.declineStakingReward),null!=e.alias&&this.setAlias(e.alias)}static _fromProtobuf(o,r,s,n,a){const c=a[0].cryptoCreateAccount;let l;return null!=c.alias&&c.alias.length>0&&20===c.alias.length&&(l=d.fromBytes(c.alias)),i._fromProtobufTransactions(new h({key:null!=c.key?u._fromProtobufKey(c.key):void 0,initialBalance:null!=c.initialBalance?e.fromTinybars(c.initialBalance):void 0,receiverSignatureRequired:null!=c.receiverSigRequired?c.receiverSigRequired:void 0,proxyAccountId:null!=c.proxyAccountID?t._fromProtobuf(c.proxyAccountID):void 0,autoRenewPeriod:null!=c.autoRenewPeriod&&null!=c.autoRenewPeriod.seconds?c.autoRenewPeriod.seconds:void 0,accountMemo:null!=c.memo?c.memo:void 0,maxAutomaticTokenAssociations:null!=c.maxAutomaticTokenAssociations?c.maxAutomaticTokenAssociations:void 0,stakedAccountId:null!=c.stakedAccountId?t._fromProtobuf(c.stakedAccountId):void 0,stakedNodeId:null!=c.stakedNodeId?c.stakedNodeId:void 0,declineStakingReward:1==c.declineReward,alias:l}),o,r,s,n,a)}get key(){return this._key}setKey(e){return this._requireNotFrozen(),this._key=e,this}setECDSAKeyWithAlias(e){this.setKeyWithoutAlias(e);const t=this._deriveECDSAKeyAlias(e);return this.setAlias(t),this}setKeyWithAlias(e,t){this.setKeyWithoutAlias(e);const i=this._deriveECDSAKeyAlias(t);return this.setAlias(i),this}setKeyWithoutAlias(e){return this._requireNotFrozen(),this._key=e,this}get initialBalance(){return this._initialBalance}setInitialBalance(t){return this._requireNotFrozen(),this._initialBalance=t instanceof e?t:new e(t),this}get receiverSignatureRequired(){return this._receiverSignatureRequired}setReceiverSignatureRequired(e){return this._requireNotFrozen(),this._receiverSignatureRequired=e,this}get proxyAccountId(){return this._proxyAccountId}setProxyAccountId(e){return this._requireNotFrozen(),this._proxyAccountId=e,this}get autoRenewPeriod(){return this._autoRenewPeriod}setAutoRenewPeriod(e){return this._requireNotFrozen(),this._autoRenewPeriod=e instanceof n?e:new n(e),this}get accountMemo(){return this._accountMemo}setAccountMemo(e){return this._requireNotFrozen(),this._accountMemo=e,this}get maxAutomaticTokenAssociations(){return this._maxAutomaticTokenAssociations}setMaxAutomaticTokenAssociations(e){return this._requireNotFrozen(),this._maxAutomaticTokenAssociations=\"number\"==typeof e?a.fromNumber(e):e,this}get stakedAccountId(){return this._stakedAccountId}setStakedAccountId(e){return this._requireNotFrozen(),this._stakedAccountId=\"string\"==typeof e?t.fromString(e):e,this}get stakedNodeId(){return this._stakedNodeId}setStakedNodeId(e){return this._requireNotFrozen(),this._stakedNodeId=a.fromValue(e),this}get declineStakingRewards(){return this._declineStakingReward}setDeclineStakingReward(e){return this._requireNotFrozen(),this._declineStakingReward=e,this}get alias(){return this._alias}setAlias(e){if(\"string\"==typeof e){if(!(e.startsWith(\"0x\")&&42==e.length||40==e.length))throw new Error('evmAddress must be a valid EVM address with or without \"0x\" prefix');this._alias=d.fromString(e)}else this._alias=e;return this}_validateChecksums(e){null!=this._proxyAccountId&&this._proxyAccountId.validateChecksum(e)}_deriveECDSAKeyAlias(e){const t=e instanceof c&&\"secp256k1\"===e.type,i=e instanceof l&&\"secp256k1\"===e.type;if(t)return e.publicKey.toEvmAddress();if(i)return e.toEvmAddress();throw new Error(\"Invalid key for alias derivation provided: expected an ECDSA (secp256k1) PrivateKey or PublicKey.\")}_execute(e,t){return e.crypto.createAccount(t)}_getTransactionDataCase(){return\"cryptoCreateAccount\"}_makeTransactionData(){let e=null;return null!=this._alias&&(e=this._alias.toBytes()),{key:null!=this._key?this._key._toProtobufKey():null,initialBalance:null!=this._initialBalance?this._initialBalance.toTinybars():null,autoRenewPeriod:this._autoRenewPeriod._toProtobuf(),proxyAccountID:null!=this._proxyAccountId?this._proxyAccountId._toProtobuf():null,receiveRecordThreshold:this._receiveRecordThreshold.toTinybars(),sendRecordThreshold:this._sendRecordThreshold.toTinybars(),receiverSigRequired:this._receiverSignatureRequired,memo:this._accountMemo,maxAutomaticTokenAssociations:null!=this._maxAutomaticTokenAssociations?this._maxAutomaticTokenAssociations.toInt():null,stakedAccountId:null!=this.stakedAccountId?this.stakedAccountId._toProtobuf():null,stakedNodeId:this.stakedNodeId,declineReward:this.declineStakingRewards,alias:e}}_getLogId(){return`AccountCreateTransaction:${this._transactionIds.current.validStart.toString()}`}}o.set(\"cryptoCreateAccount\",h._fromProtobuf);export{h as default};\n//# sourceMappingURL=AccountCreateTransaction.js.map\n","import t from\"./AccountId.js\";import n,{TRANSACTION_REGISTRY as r}from\"../transaction/Transaction.js\";class c extends n{constructor(t={}){super(),this._accountId=null,this._transferAccountId=null,null!=t.accountId&&this.setAccountId(t.accountId),null!=t.transferAccountId&&this.setTransferAccountId(t.transferAccountId)}static _fromProtobuf(r,o,e,u,s){const a=s[0].cryptoDelete;return n._fromProtobufTransactions(new c({accountId:null!=a.deleteAccountID?t._fromProtobuf(a.deleteAccountID):void 0,transferAccountId:null!=a.transferAccountID?t._fromProtobuf(a.transferAccountID):void 0}),r,o,e,u,s)}get accountId(){return this._accountId}setAccountId(n){return this._requireNotFrozen(),this._accountId=\"string\"==typeof n?t.fromString(n):n.clone(),this}get transferAccountId(){return this._transferAccountId}setTransferAccountId(n){return this._requireNotFrozen(),this._transferAccountId=\"string\"==typeof n?t.fromString(n):n.clone(),this}_validateChecksums(t){null!=this._accountId&&this._accountId.validateChecksum(t),null!=this._transferAccountId&&this._transferAccountId.validateChecksum(t)}_execute(t,n){return t.crypto.cryptoDelete(n)}_getTransactionDataCase(){return\"cryptoDelete\"}_makeTransactionData(){return{deleteAccountID:null!=this._accountId?this._accountId._toProtobuf():null,transferAccountID:null!=this._transferAccountId?this._transferAccountId._toProtobuf():null}}_getLogId(){return`AccountDeleteTransaction:${this._transactionIds.current.validStart.toString()}`}}r.set(\"cryptoDelete\",c._fromProtobuf);export{c as default};\n//# sourceMappingURL=AccountDeleteTransaction.js.map\n","import{decode as e,encode as t}from\"./encoding/hex.js\";class r{constructor(e){this._ledgerId=e,Object.freeze(this)}static fromString(t){switch(t){case n[0]:case\"0\":return r.MAINNET;case n[1]:case\"1\":return r.TESTNET;case n[2]:case\"2\":return r.PREVIEWNET;case n[3]:case\"3\":return r.LOCAL_NODE;default:{let n=e(t);if(0==n.length&&0!=t.length)throw new Error(\"Default reached for fromString\");return new r(n)}}}toString(){if(1!=this._ledgerId.length)return t(this._ledgerId);switch(this._ledgerId[0]){case 0:return n[0];case 1:return n[1];case 2:return n[2];case 3:return n[3];default:return t(this._ledgerId)}}static fromBytes(e){return new r(e)}toBytes(){return this._ledgerId}isMainnet(){return this.toString()==n[0]}isTestnet(){return this.toString()==n[1]}isPreviewnet(){return this.toString()==n[2]}isLocalNode(){return this.toString()==n[3]}}const n=[\"mainnet\",\"testnet\",\"previewnet\",\"local-node\"];r.MAINNET=new r(new Uint8Array([0])),r.TESTNET=new r(new Uint8Array([1])),r.PREVIEWNET=new r(new Uint8Array([2])),r.LOCAL_NODE=new r(new Uint8Array([3]));export{r as default};\n//# sourceMappingURL=LedgerId.js.map\n","import t from\"./account/AccountId.js\";import e from\"./Hbar.js\";import d from\"./Timestamp.js\";import*as o from\"@hashgraph/proto\";class n{constructor(t){this.declineStakingReward=t.declineStakingReward,this.stakePeriodStart=t.stakePeriodStart,this.pendingReward=t.pendingReward,this.stakedToMe=t.stakedToMe,this.stakedAccountId=t.stakedAccountId,this.stakedNodeId=t.stakedNodeId,Object.freeze(this)}static _fromProtobuf(o){return new n({declineStakingReward:1==o.declineReward,stakePeriodStart:null!=o.stakePeriodStart?d._fromProtobuf(o.stakePeriodStart):null,pendingReward:null!=o.pendingReward?e.fromTinybars(o.pendingReward):null,stakedToMe:null!=o.stakedToMe?e.fromTinybars(o.stakedToMe):null,stakedAccountId:null!=o.stakedAccountId?t._fromProtobuf(o.stakedAccountId):null,stakedNodeId:null!=o.stakedNodeId?o.stakedNodeId:null})}_toProtobuf(){return{declineReward:this.declineStakingReward,stakePeriodStart:null!=this.stakePeriodStart?this.stakePeriodStart._toProtobuf():null,pendingReward:null!=this.pendingReward?this.pendingReward.toTinybars():null,stakedToMe:null!=this.stakedToMe?this.stakedToMe.toTinybars():null,stakedAccountId:null!=this.stakedAccountId?this.stakedAccountId._toProtobuf():null,stakedNodeId:this.stakedNodeId}}static fromBytes(t){return n._fromProtobuf(o.proto.StakingInfo.decode(t))}toBytes(){return o.proto.StakingInfo.encode(this._toProtobuf()).finish()}toString(){return JSON.stringify(this.toJSON())}toJSON(){return{declineStakingReward:this.declineStakingReward,stakePeriodStart:null!=this.stakePeriodStart?this.stakePeriodStart.toString():null,pendingReward:null!=this.pendingReward?this.pendingReward.toString():null,stakedToMe:null!=this.stakedToMe?this.stakedToMe.toString():null,stakedAccountId:null!=this.stakedAccountId?this.stakedAccountId.toString():null,stakedNodeId:null!=this.stakedNodeId?this.stakedNodeId.toString():null}}}export{n as default};\n//# sourceMappingURL=StakingInfo.js.map\n","import t from\"./AccountId.js\";import o from\"../Duration.js\";import r from\"../KeyList.js\";class s{constructor(t){this.accountId=t.accountId,this.hash=t.hash,this.keys=t.keys,this.duration=t.duration,Object.freeze(this)}static _fromProtobuf(u){const a=u;return new s({accountId:t._fromProtobuf(a.accountId),hash:null!=a.hash?a.hash:new Uint8Array,keys:null!=a.keys?r.__fromProtobufKeyList(a.keys):new r,duration:o._fromProtobuf(a.duration)})}_toProtobuf(){return{accountId:this.accountId._toProtobuf(),hash:this.hash,keys:this.keys._toProtobufKey().keyList,duration:this.duration._toProtobuf()}}}export{s as default};\n//# sourceMappingURL=LiveHash.js.map\n","import t from\"long\";import o from\"../token/TokenId.js\";class s{constructor(t){this.tokenId=t.tokenId,this.symbol=t.symbol,this.balance=t.balance,this.isKycGranted=t.isKycGranted,this.isFrozen=t.isFrozen,this.automaticAssociation=t.automaticAssociation,Object.freeze(this)}static _fromProtobuf(a){const n=o._fromProtobuf(a.tokenId),e=null==a.kycStatus||0===a.kycStatus?null:1===a.kycStatus,i=null==a.freezeStatus||0===a.freezeStatus?null:1===a.freezeStatus;return new s({tokenId:n,symbol:a.symbol,balance:null!=a.balance?a.balance instanceof t?a.balance:t.fromValue(a.balance):t.ZERO,isKycGranted:e,isFrozen:i,automaticAssociation:null!=a.automaticAssociation?a.automaticAssociation:null})}_toProtobuf(){return{tokenId:this.tokenId._toProtobuf(),symbol:this.symbol,balance:this.balance,kycStatus:null==this.isKycGranted?0:this.isKycGranted?1:2,freezeStatus:null==this.isFrozen?0:this.isFrozen?1:2,automaticAssociation:this.automaticAssociation}}}export{s as default};\n//# sourceMappingURL=TokenRelationship.js.map\n","import o from\"../token/TokenId.js\";import t from\"./TokenRelationship.js\";import r from\"../ObjectMap.js\";class s extends r{constructor(){super((t=>o.fromString(t)))}static _fromProtobuf(r){const f=new s;for(const s of r){const r=o._fromProtobuf(s.tokenId);f._set(r,t._fromProtobuf(s))}return f}_toProtobuf(){const o=[];for(const[t,r]of this)o.push(r._toProtobuf());return o}}export{s as default};\n//# sourceMappingURL=TokenRelationshipMap.js.map\n","import e from\"./AccountId.js\";import o from\"../StakingInfo.js\";import t from\"./LiveHash.js\";import i from\"../Hbar.js\";import n from\"../Timestamp.js\";import r from\"long\";import s from\"./TokenRelationshipMap.js\";import*as c from\"@hashgraph/proto\";import l from\"../Duration.js\";import a from\"../Key.js\";import u from\"../PublicKey.js\";import h from\"../LedgerId.js\";class d{constructor(e){this.accountId=e.accountId,this.contractAccountId=e.contractAccountId,this.isDeleted=e.isDeleted,this.proxyAccountId=e.proxyAccountId,this.proxyReceived=e.proxyReceived,this.key=e.key,this.balance=e.balance,this.sendRecordThreshold=e.sendRecordThreshold,this.receiveRecordThreshold=e.receiveRecordThreshold,this.isReceiverSignatureRequired=e.isReceiverSignatureRequired,this.expirationTime=e.expirationTime,this.autoRenewPeriod=e.autoRenewPeriod,this.liveHashes=e.liveHashes,this.tokenRelationships=e.tokenRelationships,this.accountMemo=e.accountMemo,this.ownedNfts=e.ownedNfts,this.maxAutomaticTokenAssociations=e.maxAutomaticTokenAssociations,this.aliasKey=e.aliasKey,this.ledgerId=e.ledgerId,this.hbarAllowances=e.hbarAllowances,this.tokenAllowances=e.tokenAllowances,this.nftAllowances=e.nftAllowances,this.ethereumNonce=e.ethereumNonce,this.stakingInfo=e.stakingInfo,Object.freeze(this)}static _fromProtobuf(m){let f=null!=m.alias&&m.alias.length>0?a._fromProtobufKey(c.proto.Key.decode(m.alias)):null;f instanceof u||(f=null);const p=e._fromProtobuf(m.accountID);return new d({accountId:p,contractAccountId:null!=m.contractAccountID?m.contractAccountID:null,isDeleted:null!=m.deleted&&m.deleted,key:a._fromProtobufKey(m.key),balance:i.fromTinybars(null!=m.balance?m.balance:0),sendRecordThreshold:i.fromTinybars(null!=m.generateSendRecordThreshold?m.generateSendRecordThreshold:0),receiveRecordThreshold:i.fromTinybars(null!=m.generateReceiveRecordThreshold?m.generateReceiveRecordThreshold:0),isReceiverSignatureRequired:null!=m.receiverSigRequired&&m.receiverSigRequired,expirationTime:n._fromProtobuf(m.expirationTime),autoRenewPeriod:null!=m.autoRenewPeriod?new l(m.autoRenewPeriod.seconds):new l(0),proxyAccountId:null!=m.proxyAccountID&&0!==r.fromValue(m.proxyAccountID.shardNum).toInt()&&0!==r.fromValue(m.proxyAccountID.realmNum).toInt()&&0!==r.fromValue(m.proxyAccountID.accountNum).toInt()?e._fromProtobuf(m.proxyAccountID):null,proxyReceived:i.fromTinybars(null!=m.proxyReceived?m.proxyReceived:0),liveHashes:(null!=m.liveHashes?m.liveHashes:[]).map((e=>t._fromProtobuf(e))),tokenRelationships:s._fromProtobuf(null!=m.tokenRelationships?m.tokenRelationships:[]),accountMemo:null!=m.memo?m.memo:\"\",ownedNfts:m.ownedNfts?m.ownedNfts:r.ZERO,maxAutomaticTokenAssociations:m.maxAutomaticTokenAssociations?r.fromNumber(m.maxAutomaticTokenAssociations):r.ZERO,aliasKey:f,ledgerId:null!=m.ledgerId?h.fromBytes(m.ledgerId):null,hbarAllowances:[],tokenAllowances:[],nftAllowances:[],ethereumNonce:null!=m.ethereumNonce?m.ethereumNonce:null,stakingInfo:null!=m.stakingInfo?o._fromProtobuf(m.stakingInfo):null})}_toProtobuf(){return{accountID:this.accountId._toProtobuf(),contractAccountID:this.contractAccountId,deleted:this.isDeleted,proxyAccountID:null!=this.proxyAccountId?this.proxyAccountId._toProtobuf():null,proxyReceived:this.proxyReceived.toTinybars(),key:this.key._toProtobufKey(),balance:this.balance.toTinybars(),generateSendRecordThreshold:this.sendRecordThreshold.toTinybars(),generateReceiveRecordThreshold:this.receiveRecordThreshold.toTinybars(),receiverSigRequired:this.isReceiverSignatureRequired,expirationTime:this.expirationTime._toProtobuf(),autoRenewPeriod:this.autoRenewPeriod._toProtobuf(),liveHashes:this.liveHashes.map((e=>e._toProtobuf())),tokenRelationships:null!=this.tokenRelationships?this.tokenRelationships._toProtobuf():null,memo:this.accountMemo,ownedNfts:this.ownedNfts,maxAutomaticTokenAssociations:this.maxAutomaticTokenAssociations.toInt(),alias:null!=this.aliasKey?c.proto.Key.encode(this.aliasKey._toProtobufKey()).finish():null,ledgerId:null!=this.ledgerId?this.ledgerId.toBytes():null,ethereumNonce:this.ethereumNonce,stakingInfo:null!=this.stakingInfo?this.stakingInfo._toProtobuf():null}}static fromBytes(e){return d._fromProtobuf(c.proto.CryptoGetInfoResponse.AccountInfo.decode(e))}toBytes(){return c.proto.CryptoGetInfoResponse.AccountInfo.encode(this._toProtobuf()).finish()}toString(){return JSON.stringify(this.toJSON())}toJSON(){return{balance:this.balance.toString(),accountId:this.accountId.toString(),contractAccountId:this.contractAccountId,isDeleted:this.isDeleted,proxyAccountId:null!=this.proxyAccountId?this.proxyAccountId.toString():null,proxyReceived:this.proxyReceived.toString(),key:null!=this.key?this.key.toString():null,sendRecordThreshold:this.sendRecordThreshold.toString(),receiveRecordThreshold:this.receiveRecordThreshold.toString(),isReceiverSignatureRequired:this.isReceiverSignatureRequired,expirationTime:this.expirationTime.toString(),autoRenewPeriod:this.autoRenewPeriod.toString(),accountMemo:this.accountMemo,ownedNfts:this.ownedNfts.toString(),maxAutomaticTokenAssociations:this.maxAutomaticTokenAssociations.toString(),aliasKey:null!=this.aliasKey?this.aliasKey.toString():null,ledgerId:null!=this.ledgerId?this.ledgerId.toString():null,ethereumNonce:null!=this.ethereumNonce?this.ethereumNonce.toString():null,stakingInfo:null!=this.stakingInfo?this.stakingInfo.toJSON():null}}}export{d as default};\n//# sourceMappingURL=AccountInfo.js.map\n","import t,{QUERY_REGISTRY as o}from\"../query/Query.js\";import n from\"./AccountId.js\";import r from\"./AccountInfo.js\";import\"bignumber.js\";import\"../HbarUnit.js\";import\"long\";class c extends t{constructor(t={}){super(),this._accountId=null,null!=t.accountId&&this.setAccountId(t.accountId)}static _fromProtobuf(t){const o=t.cryptoGetInfo;return new c({accountId:null!=o.accountID?n._fromProtobuf(o.accountID):void 0})}get accountId(){return this._accountId}setAccountId(t){return this._accountId=\"string\"==typeof t?n.fromString(t):t.clone(),this}_validateChecksums(t){null!=this._accountId&&this._accountId.validateChecksum(t)}_execute(t,o){return t.crypto.getAccountInfo(o)}async getCost(t){return super.getCost(t)}_mapResponseHeader(t){return t.cryptoGetInfo.header}_mapResponse(t,o,n){const c=t.cryptoGetInfo;return Promise.resolve(r._fromProtobuf(c.accountInfo))}_onMakeRequest(t){return{cryptoGetInfo:{header:t,accountID:null!=this._accountId?this._accountId._toProtobuf():null}}}_getLogId(){return`AccountInfoQuery:${(null!=this._paymentTransactionId&&null!=this._paymentTransactionId.validStart?this._paymentTransactionId.validStart:this._timestamp).toString()}`}}o.set(\"cryptoGetInfo\",c._fromProtobuf);export{c as default};\n//# sourceMappingURL=AccountInfoQuery.js.map\n","import t,{QUERY_REGISTRY as o}from\"../query/Query.js\";import c from\"./AccountId.js\";import r from\"../transaction/TransactionRecord.js\";class e extends t{constructor(t={}){super(),this._accountId=null,null!=t.accountId&&this.setAccountId(t.accountId)}static _fromProtobuf(t){const o=t.cryptoGetAccountRecords;return new e({accountId:null!=o.accountID?c._fromProtobuf(o.accountID):void 0})}get accountId(){return this._accountId}setAccountId(t){return this._accountId=\"string\"==typeof t?c.fromString(t):t.clone(),this}_validateChecksums(t){null!=this._accountId&&this._accountId.validateChecksum(t)}_execute(t,o){return t.crypto.getAccountRecords(o)}_mapResponseHeader(t){return t.cryptoGetAccountRecords.header}_mapResponse(t,o,c){const e=t.cryptoGetAccountRecords.records;return Promise.resolve(e.map((t=>r._fromProtobuf({transactionRecord:t}))))}_onMakeRequest(t){return{cryptoGetAccountRecords:{header:t,accountID:null!=this._accountId?this._accountId._toProtobuf():null}}}_getLogId(){return`AccountRecordsQuery:${(null!=this._paymentTransactionId&&null!=this._paymentTransactionId.validStart?this._paymentTransactionId.validStart:this._timestamp).toString()}`}}o.set(\"cryptoGetAccountRecords\",e._fromProtobuf);export{e as default};\n//# sourceMappingURL=AccountRecordsQuery.js.map\n","import e,{TRANSACTION_REGISTRY as t}from\"../transaction/Transaction.js\";import o from\"./AccountId.js\";import i from\"../Timestamp.js\";import n from\"../Duration.js\";import r from\"long\";import u from\"../Key.js\";class s extends e{constructor(e={}){super(),this._accountId=null,this._key=null,this._receiverSignatureRequired=null,this._proxyAccountId=null,this._autoRenewPeriod=null,this._expirationTime=null,this._accountMemo=null,this._maxAutomaticTokenAssociations=null,this._aliasKey=null,this._stakedAccountId=null,this._stakedNodeId=null,this._declineStakingReward=null,null!=e.accountId&&this.setAccountId(e.accountId),null!=e.key&&this.setKey(e.key),null!=e.receiverSignatureRequired&&this.setReceiverSignatureRequired(e.receiverSignatureRequired),null!=e.proxyAccountId&&this.setProxyAccountId(e.proxyAccountId),null!=e.autoRenewPeriod&&this.setAutoRenewPeriod(e.autoRenewPeriod),null!=e.expirationTime&&this.setExpirationTime(e.expirationTime),null!=e.accountMemo&&this.setAccountMemo(e.accountMemo),null!=e.maxAutomaticTokenAssociations&&this.setMaxAutomaticTokenAssociations(e.maxAutomaticTokenAssociations),null!=e.stakedAccountId&&this.setStakedAccountId(e.stakedAccountId),null!=e.stakedNodeId&&this.setStakedNodeId(e.stakedNodeId),null!=e.declineStakingReward&&this.setDeclineStakingReward(e.declineStakingReward)}static _fromProtobuf(t,n,a,c,d){const l=d[0].cryptoUpdateAccount;return e._fromProtobufTransactions(new s({accountId:null!=l.accountIDToUpdate?o._fromProtobuf(l.accountIDToUpdate):void 0,key:null!=l.key?u._fromProtobufKey(l.key):void 0,receiverSignatureRequired:null!=l.receiverSigRequiredWrapper&&Object.hasOwn(l.receiverSigRequiredWrapper,\"value\")?l.receiverSigRequiredWrapper.value:void 0,proxyAccountId:null!=l.proxyAccountID?o._fromProtobuf(l.proxyAccountID):void 0,autoRenewPeriod:null!=l.autoRenewPeriod&&null!=l.autoRenewPeriod.seconds?l.autoRenewPeriod.seconds:void 0,expirationTime:null!=l.expirationTime?i._fromProtobuf(l.expirationTime):void 0,accountMemo:null!=l.memo&&Object.hasOwn(l.memo,\"value\")?l.memo.value:void 0,maxAutomaticTokenAssociations:null!=l.maxAutomaticTokenAssociations&&null!=l.maxAutomaticTokenAssociations.value&&Object.hasOwn(l.maxAutomaticTokenAssociations,\"value\")?r.fromNumber(l.maxAutomaticTokenAssociations.value):void 0,stakedAccountId:null!=l.stakedAccountId?o._fromProtobuf(l.stakedAccountId):void 0,stakedNodeId:null!=l.stakedNodeId?l.stakedNodeId:void 0,declineStakingReward:null!=l.declineReward&&Object.hasOwn(l.declineReward,\"value\")?l.declineReward.value:void 0}),t,n,a,c,d)}get accountId(){return this._accountId}setAccountId(e){return this._requireNotFrozen(),this._accountId=\"string\"==typeof e?o.fromString(e):e.clone(),this}get key(){return this._key}setKey(e){return this._requireNotFrozen(),this._key=e,this}get receiverSignatureRequired(){return this._receiverSignatureRequired}setReceiverSignatureRequired(e){return this._requireNotFrozen(),this._receiverSignatureRequired=e,this}get proxyAccountId(){return this._proxyAccountId}setProxyAccountId(e){return this._requireNotFrozen(),this._proxyAccountId=e,this}get autoRenewPeriod(){return this._autoRenewPeriod}setAutoRenewPeriod(e){return this._requireNotFrozen(),this._autoRenewPeriod=e instanceof n?e:new n(e),this}get expirationTime(){return this._expirationTime}setExpirationTime(e){return this._requireNotFrozen(),this._expirationTime=e instanceof Date?i.fromDate(e):e,this}get accountMemo(){return this._accountMemo}setAccountMemo(e){return this._requireNotFrozen(),this._accountMemo=e,this}clearAccountMemo(){return this._requireNotFrozen(),this._accountMemo=null,this}get maxAutomaticTokenAssociations(){return this._maxAutomaticTokenAssociations}setMaxAutomaticTokenAssociations(e){return this._requireNotFrozen(),this._maxAutomaticTokenAssociations=\"number\"==typeof e?r.fromNumber(e):e,this}get aliasKey(){return null}setAliasKey(e){return this}get stakedAccountId(){return this._stakedAccountId}setStakedAccountId(e){return this._requireNotFrozen(),this._stakedAccountId=\"string\"==typeof e?o.fromString(e):e,this}clearStakedAccountId(){return this._requireNotFrozen(),this._stakedAccountId=new o(0,0,0),this}get stakedNodeId(){return this._stakedNodeId}setStakedNodeId(e){return this._requireNotFrozen(),this._stakedNodeId=r.fromValue(e),this}clearStakedNodeId(){return this._requireNotFrozen(),this._stakedNodeId=r.fromNumber(-1),this}get declineStakingRewards(){return this._declineStakingReward}setDeclineStakingReward(e){return this._requireNotFrozen(),this._declineStakingReward=e,this}_validateChecksums(e){null!=this._accountId&&this._accountId.validateChecksum(e),null!=this._proxyAccountId&&this._proxyAccountId.validateChecksum(e)}_execute(e,t){return e.crypto.updateAccount(t)}_getTransactionDataCase(){return\"cryptoUpdateAccount\"}_makeTransactionData(){return{accountIDToUpdate:null!=this._accountId?this._accountId._toProtobuf():null,key:null!=this._key?this._key._toProtobufKey():null,expirationTime:null!=this._expirationTime?this._expirationTime._toProtobuf():null,proxyAccountID:null!=this._proxyAccountId?this._proxyAccountId._toProtobuf():null,autoRenewPeriod:null!=this._autoRenewPeriod?this._autoRenewPeriod._toProtobuf():null,receiverSigRequiredWrapper:null==this._receiverSignatureRequired?null:{value:this._receiverSignatureRequired},memo:null!=this._accountMemo?{value:this._accountMemo}:null,maxAutomaticTokenAssociations:null!=this._maxAutomaticTokenAssociations?{value:this._maxAutomaticTokenAssociations.toInt()}:null,stakedAccountId:null!=this.stakedAccountId?this.stakedAccountId._toProtobuf():null,stakedNodeId:this.stakedNodeId,declineReward:null!=this.declineStakingRewards?{value:this.declineStakingRewards}:null}}_getLogId(){return`AccountUpdateTransaction:${this._transactionIds.current.validStart.toString()}`}}t.set(\"cryptoUpdateAccount\",s._fromProtobuf);export{s as default};\n//# sourceMappingURL=AccountUpdateTransaction.js.map\n","class t{constructor(t={}){this._left=null,null!=t.left&&this.setLeft(t.left),this._right=null,null!=t.right&&this.setRight(t.right)}get left(){return this._left}setLeft(t){return this._left=t,this}get right(){return this._right}setRight(t){return this._right=t,this}toString(){return null!=this._left&&null!=this._right?`${this._left.toString()}.${this._right.toString()}`:\"\"}}export{t as default};\n//# sourceMappingURL=IPv4AddressPart.js.map\n","import t from\"./IPv4AddressPart.js\";class s{constructor(t={}){this._network=null,null!=t.network&&this.setNetwork(t.network),this._host=null,null!=t.host&&this.setHost(t.host)}get newtork(){return this._network}setNetwork(t){return this._network=t,this}get host(){return this._host}setHost(t){return this._host=t,this}static _fromProtobuf(r){return new s({network:(new t).setLeft(r[0]).setRight(r[1]),host:(new t).setLeft(r[2]).setRight(r[3])})}_toProtobuf(){return Uint8Array.of(null!=this._network&&null!=this._network._left?this._network._left:0,null!=this._network&&null!=this._network.right?this._network.right:0,null!=this._host&&null!=this._host.left?this._host.left:0,null!=this._host&&null!=this._host.right?this._host.right:0)}toString(){return null!=this._network&&null!=this._host?`${this._network.toString()}.${this._host.toString()}`:\"\"}}export{s as default};\n//# sourceMappingURL=IPv4Address.js.map\n","import t from\"./IPv4Address.js\";class s{constructor(t={}){this._address=null,null!=t.address&&this.setAddress(t.address),this._port=null,null!=t.port&&this.setPort(t.port)}get address(){return this.address}setAddress(t){return this._address=t,this}get port(){return this._port}setPort(t){return this._port=t,this}static _fromProtobuf(r){return new s({address:null!=r.ipAddressV4?t._fromProtobuf(r.ipAddressV4):void 0,port:null!=r.port?r.port:void 0})}_toProtobuf(){return{ipAddressV4:null!=this._address?this._address._toProtobuf():null,port:this._port}}toString(){return`${null!=this._address?this._address.toString():\"\"}:${null!=this._port?this._port.toString():\"\"}`}toJSON(){return{address:null!=this._address?this._address.toString():null,port:null!=this._port?this._port.toString():null}}}export{s as default};\n//# sourceMappingURL=Endpoint.js.map\n","import t from\"../account/AccountId.js\";import s from\"./Endpoint.js\";import{decode as e}from\"../encoding/utf8.js\";class i{constructor(t={}){this._publicKey=null,null!=t.publicKey&&this.setPublicKey(t.publicKey),this._nodeId=null,null!=t.nodeId&&this.setNodeId(t.nodeId),this._accountId=null,null!=t.accountId&&this.setAccountId(t.accountId),this._certHash=null,null!=t.certHash&&this.setCertHash(t.certHash),this._addresses=[],null!=t.addresses&&this.setAddresses(t.addresses),this._description=null,null!=t.description&&this.setDescription(t.description),this._stake=null,null!=t.stake&&this.setStake(t.stake)}get publicKey(){return this._publicKey}setPublicKey(t){return this._publicKey=t,this}get nodeId(){return this._nodeId}setNodeId(t){return this._nodeId=t,this}get accountId(){return this._accountId}setAccountId(s){return this._accountId=\"string\"==typeof s?t.fromString(s):s.clone(),this}get certHash(){return this._certHash}setCertHash(t){return this._certHash=t,this}get addresses(){return this._addresses}setAddresses(t){return this._addresses=t,this}get description(){return this._description}setDescription(t){return this._description=t,this}get stake(){return this._stake}setStake(t){return this._stake=t,this}static _fromProtobuf(e){return new i({publicKey:null!=e.RSA_PubKey?e.RSA_PubKey:void 0,nodeId:null!=e.nodeId?e.nodeId:void 0,accountId:null!=e.nodeAccountId?t._fromProtobuf(e.nodeAccountId):void 0,certHash:null!=e.nodeCertHash?e.nodeCertHash:void 0,addresses:null!=e.serviceEndpoint?e.serviceEndpoint.map((t=>s._fromProtobuf(t))):void 0,description:null!=e.description?e.description:void 0,stake:null!=e.stake?e.stake:void 0})}_toProtobuf(){return{RSA_PubKey:this._publicKey,nodeId:this._nodeId,nodeAccountId:null!=this._accountId?this._accountId._toProtobuf():null,nodeCertHash:this._certHash,serviceEndpoint:this._addresses.map((t=>t._toProtobuf())),description:this._description,stake:this._stake}}toString(){return JSON.stringify(this.toJSON())}toJSON(){return{publicKey:this._publicKey,nodeId:null!=this._nodeId?this._nodeId.toString():null,accountId:null!=this._accountId?this._accountId.toString():null,certHash:null!=this._certHash?e(this._certHash):null,addresses:this._addresses.map((t=>t.toJSON())),description:this._description,stake:null!=this._stake?this._stake.toString():null}}}export{i as default};\n//# sourceMappingURL=NodeAddress.js.map\n","import s from\"./NodeAddress.js\";import*as e from\"@hashgraph/proto\";class o{constructor(s={}){this._nodeAddresses=[],null!=s.nodeAddresses&&this.setNodeAddresses(s.nodeAddresses)}get nodeAddresses(){return this._nodeAddresses}setNodeAddresses(s){return this._nodeAddresses=s,this}static fromBytes(s){return o._fromProtobuf(e.proto.NodeAddressBook.decode(s))}static _fromProtobuf(e){return new o({nodeAddresses:null!=e.nodeAddress?e.nodeAddress.map((e=>s._fromProtobuf(e))):void 0})}_toProtobuf(){return{nodeAddress:this._nodeAddresses.map((s=>s._toProtobuf()))}}toString(){return JSON.stringify(this.toJSON())}toJSON(){return{nodeAddresses:this._nodeAddresses.map((s=>s.toJSON()))}}toBytes(){return e.proto.NodeAddressBook.encode(this._toProtobuf()).finish()}}export{o as default};\n//# sourceMappingURL=NodeAddressBook.js.map\n","import t from\"../query/Query.js\";import e from\"../address_book/NodeAddress.js\";import r from\"../address_book/NodeAddressBook.js\";import*as i from\"@hashgraph/proto\";import s from\"../file/FileId.js\";import{RST_STREAM as o}from\"../Executable.js\";import m from\"../Cache.js\";class d extends t{constructor(t={}){super(),this._fileId=null,null!=t.fileId&&this.setFileId(t.fileId),this._limit=null,null!=t.limit&&this.setLimit(t.limit),this._retryHandler=t=>{if(null!=t){if(t instanceof Error)return!0;switch(t.code){case 13:return o.test(t.details.toString());case 5:case 8:case 14:case 17:return!0;default:return!1}}return!1},this._addresses=[],this._attempt=0}get fileId(){return this._fileId}setFileId(t){return this._fileId=\"string\"==typeof t?s.fromString(t):t.clone(),this}get limit(){return this._limit}setLimit(t){return this._limit=t,this}setMaxAttempts(t){return this._maxAttempts=t,this}setMaxBackoff(t){return this._maxBackoff=t,this}execute(t,e){if(0===t._network._network.size&&!t._timer)throw new Error(\"The client's network update period is required. Please set it using the setNetworkUpdatePeriod method.\");return new Promise(((r,i)=>{this._makeServerStreamRequest(t,r,i,e)}))}_makeServerStreamRequest(t,s,o,m){const d=i.com.hedera.mirror.api.proto.AddressBookQuery.encode({fileId:null!=this._fileId?this._fileId._toProtobuf():null,limit:this._limit}).finish();t._mirrorNetwork.getNextMirrorNode().getChannel().makeServerStreamRequest(\"NetworkService\",\"getNodes\",d,(t=>{this._addresses.push(e._fromProtobuf(i.proto.NodeAddress.decode(t))),null!=this._limit&&this._limit>0&&(this._limit=this._limit-1)}),(e=>{const r=e instanceof Error?e.message:e.details;if(this._attempt=this._maxAttempts&&console.warn(`Error getting nodes from mirror for file ${null!=this._fileId?this._fileId.toString():\"UNKNOWN\"} during attempt ${this._attempt}. Waiting ${e} ms before next attempt: ${r}`),this._logger&&this._logger.debug(`Error getting nodes from mirror for file ${null!=this._fileId?this._fileId.toString():\"UNKNOWN\"} during attempt ${this._attempt}. Waiting ${e} ms before next attempt: ${r}`),this._attempt+=1,setTimeout((()=>{this._makeServerStreamRequest(t,s,o,m)}),e)}else o(new Error(\"failed to query address book\"))}),(()=>{s(new r({nodeAddresses:this._addresses}))}))}}m.setAddressBookQueryConstructor((()=>new d));export{d as default};\n//# sourceMappingURL=AddressBookQuery.js.map\n","class e{constructor(e){this._code=e,Object.freeze(this)}toString(){switch(this){case e.UnknownFreezeType:return\"UNKNOWN_FREEZE_TYPE\";case e.FreezeOnly:return\"FREEZE_ONLY\";case e.PrepareUpgrade:return\"PREPARE_UPGRADE\";case e.FreezeUpgrade:return\"FREEZE_UPGRADE\";case e.FreezeAbort:return\"FREEZE_ABORT\";case e.TelemetryUpgrade:return\"TELEMETRY_UPGRADE\";default:return`UNKNOWN (${this._code})`}}static _fromCode(r){switch(r){case 0:return e.UnknownFreezeType;case 1:return e.FreezeOnly;case 2:return e.PrepareUpgrade;case 3:return e.FreezeUpgrade;case 4:return e.FreezeAbort;case 5:return e.TelemetryUpgrade;default:throw new Error(`(BUG) Status.fromCode() does not handle code: ${r}`)}}valueOf(){return this._code}}e.UnknownFreezeType=new e(0),e.FreezeOnly=new e(1),e.PrepareUpgrade=new e(2),e.FreezeUpgrade=new e(3),e.FreezeAbort=new e(4),e.TelemetryUpgrade=new e(5);export{e as default};\n//# sourceMappingURL=FreezeType.js.map\n","import e,{TRANSACTION_REGISTRY as t}from\"../transaction/Transaction.js\";import i from\"../Timestamp.js\";import r from\"../file/FileId.js\";import{decode as s}from\"../encoding/hex.js\";import n from\"../FreezeType.js\";class l extends e{constructor(e={}){super(),this._startTime=null,this._startTimestamp=null,this._endTime=null,this._fileId=null,this._fileHash=null,this._freezeType=null,null!=e.startTime&&this.setStartTime(e.startTime.hour,e.startTime.minute),null!=e.endTime&&this.setEndTime(e.endTime.hour,e.endTime.minute),null!=e.startTimestamp&&this.setStartTimestamp(e.startTimestamp),null!=e.updateFileId&&this.setUpdateFileId(e.updateFileId),null!=e.fileId&&this.setFileId(e.fileId),null!=e.fileHash&&this.setFileHash(e.fileHash),null!=e.freezeType&&this.setFreezeType(e.freezeType)}static _fromProtobuf(t,s,a,u,o){const m=o[0].freeze;return e._fromProtobufTransactions(new l({startTime:null!=m.startHour&&null!=m.startMin?{hour:m.startHour,minute:m.startMin}:void 0,endTime:null!=m.endHour&&null!=m.endMin?{hour:m.endHour,minute:m.endMin}:void 0,startTimestamp:null!=m.startTime?i._fromProtobuf(m.startTime):void 0,updateFileId:null!=m.updateFile?r._fromProtobuf(m.updateFile):void 0,fileHash:null!=m.fileHash?m.fileHash:void 0,freezeType:null!=m.freezeType?n._fromCode(m.freezeType):void 0}),t,s,a,u,o)}get startTime(){return null}setStartTime(e,t){if(this._requireNotFrozen(),\"string\"==typeof e){const t=e.split(\":\");this._startTime={hour:Number(t[0]),minute:Number(t[1])}}else this._startTime={hour:e,minute:t};return this}get startTimestamp(){return this._startTimestamp}setStartTimestamp(e){return this._requireNotFrozen(),this._startTimestamp=e,this}get endTime(){return console.warn(\"`FreezeTransaction.endTime` is deprecated\"),this._endTime}setEndTime(e,t){if(console.warn(\"`FreezeTransaction.endTime` is deprecated\"),this._requireNotFrozen(),\"string\"==typeof e){const t=e.split(\":\");this._endTime={hour:Number(t[0]),minute:Number(t[1])}}else this._endTime={hour:e,minute:t};return this}get updateFileId(){return this.fileId}setUpdateFileId(e){return this.setFileId(e)}get fileId(){return this._fileId}setFileId(e){return this._requireNotFrozen(),this._fileId=e,this}get fileHash(){return this._fileHash}setFileHash(e){return this._requireNotFrozen(),this._fileHash=\"string\"==typeof e?s(e):e,this}get freezeType(){return this._freezeType}setFreezeType(e){return this._requireNotFrozen(),this._freezeType=e,this}_getTransactionDataCase(){return\"freeze\"}_makeTransactionData(){return{startTime:null!=this._startTimestamp?this._startTimestamp._toProtobuf():null,updateFile:null!=this._fileId?this._fileId._toProtobuf():null,fileHash:this._fileHash,freezeType:null!=this._freezeType?this._freezeType.valueOf():null}}_getLogId(){return`FreezeTransaction:${this._transactionIds.current.validStart.toString()}`}_execute(e,t){return e.freeze.freeze(t)}}t.set(\"freeze\",l._fromProtobuf);export{l as default};\n//# sourceMappingURL=FreezeTransaction.js.map\n","import t from\"../system/FreezeTransaction.js\";import a,{TRANSACTION_REGISTRY as r}from\"./Transaction.js\";import{proto as n}from\"@hashgraph/proto\";class o extends a{constructor(t){super(),this._batchTransactions=t?.transactions||[]}setInnerTransactions(t){return t.forEach((t=>this._validateTransaction(t))),this._batchTransactions=t,this}addInnerTransaction(t){return this._validateTransaction(t),this._requireNotFrozen(),this._batchTransactions.push(t),this}get innerTransactions(){return this._batchTransactions}get innerTransactionIds(){return Array.isArray(this._batchTransactions)?this._batchTransactions.map((t=>t.transactionId)):[]}_makeTransactionData(){if(!Array.isArray(this._batchTransactions))return{transactions:[]};return{transactions:this._batchTransactions.map((t=>n.SignedTransaction.encode(t._signedTransactions.get(0)).finish()))}}static _fromProtobuf(t,s,i,e,c){const h=c[0],d=h.atomicBatch?.transactions,T=d?.map((t=>n.SignedTransaction.decode(t))),u=T?.map((t=>{const a=n.TransactionBody.decode(t.bodyBytes),o=a.data;if(!o)throw new Error(\"Transaction type not found\");const s=r.get(o);if(!s)throw new Error(\"fromProtobuf not found\");return s([],[t],[],[],[a])}));return a._fromProtobufTransactions(new o({transactions:u}),t,s,i,e,c)}_getTransactionDataCase(){return\"atomicBatch\"}_getLogId(){return`AtomicBatch:${this._transactionIds.current.validStart.toString()}`}_execute(t,a){return t.util.atomicBatch(a)}_validateTransaction(a){if(a instanceof o||a instanceof t)throw new Error(\"Transaction is not allowed to be added to a batch\");if(!a.isFrozen())throw new Error(\"Transaction must be frozen before being added to a batch\");if(!a.batchKey)throw new Error(\"Transaction must have a batch key\")}}r.set(\"atomicBatch\",o._fromProtobuf);export{o as default};\n//# sourceMappingURL=BatchTransaction.js.map\n","import t,{QUERY_REGISTRY as e}from\"../query/Query.js\";import r from\"./ContractId.js\";class o extends t{constructor(t={}){super(),this._contractId=null,null!=t.contractId&&this.setContractId(t.contractId)}static _fromProtobuf(t){const e=t.contractGetBytecode;return new o({contractId:null!=e.contractID?r._fromProtobuf(e.contractID):void 0})}get contractId(){return this._contractId}setContractId(t){return this._contractId=\"string\"==typeof t?r.fromString(t):t.clone(),this}_validateChecksums(t){null!=this._contractId&&this._contractId.validateChecksum(t)}_execute(t,e){return t.smartContract.contractGetBytecode(e)}_mapResponseHeader(t){return t.contractGetBytecodeResponse.header}_mapResponse(t){const e=t.contractGetBytecodeResponse;return Promise.resolve(null!=e.bytecode?e.bytecode:new Uint8Array)}_onMakeRequest(t){return{contractGetBytecode:{header:t,contractID:null!=this._contractId?this._contractId._toProtobuf():null}}}_getLogId(){return`ContractByteCodeQuery:${(null!=this._paymentTransactionId&&null!=this._paymentTransactionId.validStart?this._paymentTransactionId.validStart:this._timestamp).toString()}`}}e.set(\"contractGetBytecode\",o._fromProtobuf);export{o as default};\n//# sourceMappingURL=ContractByteCodeQuery.js.map\n","const t=\"0123456789abcdef\".split(\"\"),r=[1,256,65536,16777216],e=[0,8,16,24],o=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],s=t=>{var r,e,s,l,a,c,f,n,u,k,b,i,p,v,d,x,h,B,C,y,I,g,A,j,m,q,w,z,D,E,F,G,H,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,_,tt,rt,et,ot,st,lt,at,ct,ft,nt,ut;for(s=0;s<48;s+=2)l=t[0]^t[10]^t[20]^t[30]^t[40],a=t[1]^t[11]^t[21]^t[31]^t[41],c=t[2]^t[12]^t[22]^t[32]^t[42],f=t[3]^t[13]^t[23]^t[33]^t[43],n=t[4]^t[14]^t[24]^t[34]^t[44],u=t[5]^t[15]^t[25]^t[35]^t[45],k=t[6]^t[16]^t[26]^t[36]^t[46],b=t[7]^t[17]^t[27]^t[37]^t[47],r=(i=t[8]^t[18]^t[28]^t[38]^t[48])^(c<<1|f>>>31),e=(p=t[9]^t[19]^t[29]^t[39]^t[49])^(f<<1|c>>>31),t[0]^=r,t[1]^=e,t[10]^=r,t[11]^=e,t[20]^=r,t[21]^=e,t[30]^=r,t[31]^=e,t[40]^=r,t[41]^=e,r=l^(n<<1|u>>>31),e=a^(u<<1|n>>>31),t[2]^=r,t[3]^=e,t[12]^=r,t[13]^=e,t[22]^=r,t[23]^=e,t[32]^=r,t[33]^=e,t[42]^=r,t[43]^=e,r=c^(k<<1|b>>>31),e=f^(b<<1|k>>>31),t[4]^=r,t[5]^=e,t[14]^=r,t[15]^=e,t[24]^=r,t[25]^=e,t[34]^=r,t[35]^=e,t[44]^=r,t[45]^=e,r=n^(i<<1|p>>>31),e=u^(p<<1|i>>>31),t[6]^=r,t[7]^=e,t[16]^=r,t[17]^=e,t[26]^=r,t[27]^=e,t[36]^=r,t[37]^=e,t[46]^=r,t[47]^=e,r=k^(l<<1|a>>>31),e=b^(a<<1|l>>>31),t[8]^=r,t[9]^=e,t[18]^=r,t[19]^=e,t[28]^=r,t[29]^=e,t[38]^=r,t[39]^=e,t[48]^=r,t[49]^=e,v=t[0],d=t[1],V=t[11]<<4|t[10]>>>28,W=t[10]<<4|t[11]>>>28,z=t[20]<<3|t[21]>>>29,D=t[21]<<3|t[20]>>>29,ct=t[31]<<9|t[30]>>>23,ft=t[30]<<9|t[31]>>>23,R=t[40]<<18|t[41]>>>14,S=t[41]<<18|t[40]>>>14,J=t[2]<<1|t[3]>>>31,K=t[3]<<1|t[2]>>>31,x=t[13]<<12|t[12]>>>20,h=t[12]<<12|t[13]>>>20,X=t[22]<<10|t[23]>>>22,Y=t[23]<<10|t[22]>>>22,E=t[33]<<13|t[32]>>>19,F=t[32]<<13|t[33]>>>19,nt=t[42]<<2|t[43]>>>30,ut=t[43]<<2|t[42]>>>30,rt=t[5]<<30|t[4]>>>2,et=t[4]<<30|t[5]>>>2,L=t[14]<<6|t[15]>>>26,M=t[15]<<6|t[14]>>>26,B=t[25]<<11|t[24]>>>21,C=t[24]<<11|t[25]>>>21,Z=t[34]<<15|t[35]>>>17,$=t[35]<<15|t[34]>>>17,G=t[45]<<29|t[44]>>>3,H=t[44]<<29|t[45]>>>3,j=t[6]<<28|t[7]>>>4,m=t[7]<<28|t[6]>>>4,ot=t[17]<<23|t[16]>>>9,st=t[16]<<23|t[17]>>>9,N=t[26]<<25|t[27]>>>7,O=t[27]<<25|t[26]>>>7,y=t[36]<<21|t[37]>>>11,I=t[37]<<21|t[36]>>>11,_=t[47]<<24|t[46]>>>8,tt=t[46]<<24|t[47]>>>8,T=t[8]<<27|t[9]>>>5,U=t[9]<<27|t[8]>>>5,q=t[18]<<20|t[19]>>>12,w=t[19]<<20|t[18]>>>12,lt=t[29]<<7|t[28]>>>25,at=t[28]<<7|t[29]>>>25,P=t[38]<<8|t[39]>>>24,Q=t[39]<<8|t[38]>>>24,g=t[48]<<14|t[49]>>>18,A=t[49]<<14|t[48]>>>18,t[0]=v^~x&B,t[1]=d^~h&C,t[10]=j^~q&z,t[11]=m^~w&D,t[20]=J^~L&N,t[21]=K^~M&O,t[30]=T^~V&X,t[31]=U^~W&Y,t[40]=rt^~ot<,t[41]=et^~st&at,t[2]=x^~B&y,t[3]=h^~C&I,t[12]=q^~z&E,t[13]=w^~D&F,t[22]=L^~N&P,t[23]=M^~O&Q,t[32]=V^~X&Z,t[33]=W^~Y&$,t[42]=ot^~lt&ct,t[43]=st^~at&ft,t[4]=B^~y&g,t[5]=C^~I&A,t[14]=z^~E&G,t[15]=D^~F&H,t[24]=N^~P&R,t[25]=O^~Q&S,t[34]=X^~Z&_,t[35]=Y^~$&tt,t[44]=lt^~ct&nt,t[45]=at^~ft&ut,t[6]=y^~g&v,t[7]=I^~A&d,t[16]=E^~G&j,t[17]=F^~H&m,t[26]=P^~R&J,t[27]=Q^~S&K,t[36]=Z^~_&T,t[37]=$^~tt&U,t[46]=ct^~nt&rt,t[47]=ft^~ut&et,t[8]=g^~v&x,t[9]=A^~d&h,t[18]=G^~j&q,t[19]=H^~m&w,t[28]=R^~J&L,t[29]=S^~K&M,t[38]=_^~T&V,t[39]=tt^~U&W,t[48]=nt^~rt&ot,t[49]=ut^~et&st,t[0]^=o[s],t[1]^=o[s+1]},l=(a=256,o=>{var l;if(\"0x\"===o.slice(0,2)){l=[];for(var c=2,f=o.length;c{for(var a,c,f=l.length,n=o.blocks,u=o.blockCount<<2,k=o.blockCount,b=o.outputBlocks,i=o.s,p=0;p>2]|=l[p]<>2]|=c<>2]|=(192|c>>6)<>2]|=(128|63&c)<=57344?(n[a>>2]|=(224|c>>12)<>2]|=(128|c>>6&63)<>2]|=(128|63&c)<>2]|=(240|c>>18)<>2]|=(128|c>>12&63)<>2]|=(128|c>>6&63)<>2]|=(128|63&c)<=u){for(o.start=a-u,o.block=n[k],a=0;a>2]|=r[3&a],o.lastByteIndex===u)for(n[0]=n[k],a=1;a>4&15]+t[15&v]+t[v>>12&15]+t[v>>8&15]+t[v>>20&15]+t[v>>16&15]+t[v>>28&15]+t[v>>24&15];x%k==0&&(s(i),a=0)}return\"0x\"+d})((t=>{return{blocks:[],reset:!0,block:0,start:0,blockCount:1600-(t<<1)>>5,outputBlocks:t>>5,s:(r=[0,0,0,0,0,0,0,0,0,0],[].concat(r,r,r,r,r))};var r})(a),l)});var a;export{l as keccak256};\n//# sourceMappingURL=keccak.js.map\n","import{keccak256 as a}from\"../cryptography/keccak.js\";import{encode as r,decode as t}from\"../encoding/hex.js\";import{encode as n}from\"../encoding/utf8.js\";const d={uint8:0,int8:1,uint16:2,int16:3,uint24:4,int24:5,uint32:6,int32:7,uint40:8,int40:9,uint48:10,int48:11,uint56:12,int56:13,uint64:14,int64:15,uint72:16,int72:17,uint80:18,int80:19,uint88:20,int88:21,uint96:22,int96:23,uint104:24,int104:25,uint112:26,int112:27,uint120:28,int120:29,uint128:30,int128:31,uint136:32,int136:33,uint144:34,int144:35,uint152:36,int152:37,uint160:38,int160:39,uint168:40,int168:41,uint176:42,int176:43,uint184:44,int184:45,uint192:46,int192:47,uint200:48,int200:49,uint208:50,int208:51,uint216:52,int216:53,uint224:54,int224:55,uint232:56,int232:57,uint240:58,int240:59,uint248:60,int248:61,uint256:62,int256:63,string:64,bool:65,bytes:66,bytes32:67,address:68,func:69};class i{constructor(a){this.name=null,this._params=\"\",this._paramTypes=[],null!=a&&(this._name=a)}addString(){return this._addParam({ty:d.string,array:!1})}addStringArray(){return this._addParam({ty:d.string,array:!0})}addBytes(){return this._addParam({ty:d.bytes,array:!1})}addBytes32(){return this._addParam({ty:d.bytes32,array:!1})}addBytesArray(){return this._addParam({ty:d.bytes,array:!0})}addBytes32Array(){return this._addParam({ty:d.bytes32,array:!0})}addInt8(){return this._addParam({ty:d.int8,array:!1})}addUint8(){return this._addParam({ty:d.uint8,array:!1})}addInt16(){return this._addParam({ty:d.int16,array:!1})}addUint16(){return this._addParam({ty:d.uint16,array:!1})}addInt24(){return this._addParam({ty:d.int24,array:!1})}addUint24(){return this._addParam({ty:d.uint24,array:!1})}addInt32(){return this._addParam({ty:d.int32,array:!1})}addUint32(){return this._addParam({ty:d.uint32,array:!1})}addInt40(){return this._addParam({ty:d.int40,array:!1})}addUint40(){return this._addParam({ty:d.uint40,array:!1})}addInt48(){return this._addParam({ty:d.int48,array:!1})}addUint48(){return this._addParam({ty:d.uint48,array:!1})}addInt56(){return this._addParam({ty:d.int56,array:!1})}addUint56(){return this._addParam({ty:d.uint56,array:!1})}addInt64(){return this._addParam({ty:d.int64,array:!1})}addUint64(){return this._addParam({ty:d.uint64,array:!1})}addInt72(){return this._addParam({ty:d.int72,array:!1})}addUint72(){return this._addParam({ty:d.uint72,array:!1})}addInt80(){return this._addParam({ty:d.int80,array:!1})}addUint80(){return this._addParam({ty:d.uint80,array:!1})}addInt88(){return this._addParam({ty:d.int88,array:!1})}addUint88(){return this._addParam({ty:d.uint88,array:!1})}addInt96(){return this._addParam({ty:d.int96,array:!1})}addUint96(){return this._addParam({ty:d.uint96,array:!1})}addInt104(){return this._addParam({ty:d.int104,array:!1})}addUint104(){return this._addParam({ty:d.uint104,array:!1})}addInt112(){return this._addParam({ty:d.int112,array:!1})}addUint112(){return this._addParam({ty:d.uint112,array:!1})}addInt120(){return this._addParam({ty:d.int120,array:!1})}addUint120(){return this._addParam({ty:d.uint120,array:!1})}addInt128(){return this._addParam({ty:d.int128,array:!1})}addUint128(){return this._addParam({ty:d.uint128,array:!1})}addInt136(){return this._addParam({ty:d.int136,array:!1})}addUint136(){return this._addParam({ty:d.uint136,array:!1})}addInt144(){return this._addParam({ty:d.int144,array:!1})}addUint144(){return this._addParam({ty:d.uint144,array:!1})}addInt152(){return this._addParam({ty:d.int152,array:!1})}addUint152(){return this._addParam({ty:d.uint152,array:!1})}addInt160(){return this._addParam({ty:d.int160,array:!1})}addUint160(){return this._addParam({ty:d.uint160,array:!1})}addInt168(){return this._addParam({ty:d.int168,array:!1})}addUint168(){return this._addParam({ty:d.uint168,array:!1})}addInt176(){return this._addParam({ty:d.int176,array:!1})}addUint176(){return this._addParam({ty:d.uint176,array:!1})}addInt184(){return this._addParam({ty:d.int184,array:!1})}addUint184(){return this._addParam({ty:d.uint184,array:!1})}addInt192(){return this._addParam({ty:d.int192,array:!1})}addUint192(){return this._addParam({ty:d.uint192,array:!1})}addInt200(){return this._addParam({ty:d.int200,array:!1})}addUint200(){return this._addParam({ty:d.uint200,array:!1})}addInt208(){return this._addParam({ty:d.int208,array:!1})}addUint208(){return this._addParam({ty:d.uint208,array:!1})}addInt216(){return this._addParam({ty:d.int216,array:!1})}addUint216(){return this._addParam({ty:d.uint216,array:!1})}addInt224(){return this._addParam({ty:d.int224,array:!1})}addUint224(){return this._addParam({ty:d.uint224,array:!1})}addInt232(){return this._addParam({ty:d.int232,array:!1})}addUint232(){return this._addParam({ty:d.uint232,array:!1})}addInt240(){return this._addParam({ty:d.int240,array:!1})}addUint240(){return this._addParam({ty:d.uint240,array:!1})}addInt248(){return this._addParam({ty:d.int248,array:!1})}addUint248(){return this._addParam({ty:d.uint248,array:!1})}addInt256(){return this._addParam({ty:d.int256,array:!1})}addUint256(){return this._addParam({ty:d.uint256,array:!1})}addInt8Array(){return this._addParam({ty:d.int8,array:!0})}addUint8Array(){return this._addParam({ty:d.uint8,array:!0})}addInt16Array(){return this._addParam({ty:d.int16,array:!0})}addUint16Array(){return this._addParam({ty:d.uint16,array:!0})}addInt24Array(){return this._addParam({ty:d.int24,array:!0})}addUint24Array(){return this._addParam({ty:d.uint24,array:!0})}addInt32Array(){return this._addParam({ty:d.int32,array:!0})}addUint32Array(){return this._addParam({ty:d.uint32,array:!0})}addInt40Array(){return this._addParam({ty:d.int40,array:!0})}addUint40Array(){return this._addParam({ty:d.uint40,array:!0})}addInt48Array(){return this._addParam({ty:d.int48,array:!0})}addUint48Array(){return this._addParam({ty:d.uint48,array:!0})}addInt56Array(){return this._addParam({ty:d.int56,array:!0})}addUint56Array(){return this._addParam({ty:d.uint56,array:!0})}addInt64Array(){return this._addParam({ty:d.int64,array:!0})}addUint64Array(){return this._addParam({ty:d.uint64,array:!0})}addInt72Array(){return this._addParam({ty:d.int72,array:!0})}addUint72Array(){return this._addParam({ty:d.uint72,array:!0})}addInt80Array(){return this._addParam({ty:d.int80,array:!0})}addUint80Array(){return this._addParam({ty:d.uint80,array:!0})}addInt88Array(){return this._addParam({ty:d.int88,array:!0})}addUint88Array(){return this._addParam({ty:d.uint88,array:!0})}addInt96Array(){return this._addParam({ty:d.int96,array:!0})}addUint96Array(){return this._addParam({ty:d.uint96,array:!0})}addInt104Array(){return this._addParam({ty:d.int104,array:!0})}addUint104Array(){return this._addParam({ty:d.uint104,array:!0})}addInt112Array(){return this._addParam({ty:d.int112,array:!0})}addUint112Array(){return this._addParam({ty:d.uint112,array:!0})}addInt120Array(){return this._addParam({ty:d.int120,array:!0})}addUint120Array(){return this._addParam({ty:d.uint120,array:!0})}addInt128Array(){return this._addParam({ty:d.int128,array:!0})}addUint128Array(){return this._addParam({ty:d.uint128,array:!0})}addInt136Array(){return this._addParam({ty:d.int136,array:!0})}addUint136Array(){return this._addParam({ty:d.uint136,array:!0})}addInt144Array(){return this._addParam({ty:d.int144,array:!0})}addUint144Array(){return this._addParam({ty:d.uint144,array:!0})}addInt152Array(){return this._addParam({ty:d.int152,array:!0})}addUint152Array(){return this._addParam({ty:d.uint152,array:!0})}addInt160Array(){return this._addParam({ty:d.int160,array:!0})}addUint160Array(){return this._addParam({ty:d.uint160,array:!0})}addInt168Array(){return this._addParam({ty:d.int168,array:!0})}addUint168Array(){return this._addParam({ty:d.uint168,array:!0})}addInt176Array(){return this._addParam({ty:d.int176,array:!0})}addUint176Array(){return this._addParam({ty:d.uint176,array:!0})}addInt184Array(){return this._addParam({ty:d.int184,array:!0})}addUint184Array(){return this._addParam({ty:d.uint184,array:!0})}addInt192Array(){return this._addParam({ty:d.int192,array:!0})}addUint192Array(){return this._addParam({ty:d.uint192,array:!0})}addInt200Array(){return this._addParam({ty:d.int200,array:!0})}addUint200Array(){return this._addParam({ty:d.uint200,array:!0})}addInt208Array(){return this._addParam({ty:d.int208,array:!0})}addUint208Array(){return this._addParam({ty:d.uint208,array:!0})}addInt216Array(){return this._addParam({ty:d.int216,array:!0})}addUint216Array(){return this._addParam({ty:d.uint216,array:!0})}addInt224Array(){return this._addParam({ty:d.int224,array:!0})}addUint224Array(){return this._addParam({ty:d.uint224,array:!0})}addInt232Array(){return this._addParam({ty:d.int232,array:!0})}addUint232Array(){return this._addParam({ty:d.uint232,array:!0})}addInt240Array(){return this._addParam({ty:d.int240,array:!0})}addUint240Array(){return this._addParam({ty:d.uint240,array:!0})}addInt248Array(){return this._addParam({ty:d.int248,array:!0})}addUint248Array(){return this._addParam({ty:d.uint248,array:!0})}addInt256Array(){return this._addParam({ty:d.int256,array:!0})}addUint256Array(){return this._addParam({ty:d.uint256,array:!0})}addBool(){return this._addParam({ty:d.bool,array:!1})}addAddress(){return this._addParam({ty:d.address,array:!1})}addAddressArray(){return this._addParam({ty:d.address,array:!0})}addFunction(){return this._addParam({ty:d.func,array:!1})}_addParam(a){return this._paramTypes.length>0&&(this._params+=\",\"),this._params+=y(a),this._paramTypes.push(a),this}_build(d){if(null!=d)this._name=d;else if(null==this._name)throw new Error(\"`name` required for ContractFunctionSelector\");const i=r(n(this.toString()));return t(a(`0x${i}`)).slice(0,4)}toString(){return`${null!=this._name?this._name.toString():\"\"}(${this._params})`}}function y(a){let r=\"\";switch(a.ty){case d.uint8:r=\"uint8\";break;case d.int8:r=\"int8\";break;case d.uint16:r=\"uint16\";break;case d.int16:r=\"int16\";break;case d.uint24:r=\"uint24\";break;case d.int24:r=\"int24\";break;case d.uint32:r=\"uint32\";break;case d.int32:r=\"int32\";break;case d.uint40:r=\"uint40\";break;case d.int40:r=\"int40\";break;case d.uint48:r=\"uint48\";break;case d.int48:r=\"int48\";break;case d.uint56:r=\"uint56\";break;case d.int56:r=\"int56\";break;case d.uint64:r=\"uint64\";break;case d.int64:r=\"int64\";break;case d.uint72:r=\"uint72\";break;case d.int72:r=\"int72\";break;case d.uint80:r=\"uint80\";break;case d.int80:r=\"int80\";break;case d.uint88:r=\"uint88\";break;case d.int88:r=\"int88\";break;case d.uint96:r=\"uint96\";break;case d.int96:r=\"int96\";break;case d.uint104:r=\"uint104\";break;case d.int104:r=\"int104\";break;case d.uint112:r=\"uint112\";break;case d.int112:r=\"int112\";break;case d.uint120:r=\"uint120\";break;case d.int120:r=\"int120\";break;case d.uint128:r=\"uint128\";break;case d.int128:r=\"int128\";break;case d.uint136:r=\"uint136\";break;case d.int136:r=\"int136\";break;case d.uint144:r=\"uint144\";break;case d.int144:r=\"int144\";break;case d.uint152:r=\"uint152\";break;case d.int152:r=\"int152\";break;case d.uint160:r=\"uint160\";break;case d.int160:r=\"int160\";break;case d.uint168:r=\"uint168\";break;case d.int168:r=\"int168\";break;case d.uint176:r=\"uint176\";break;case d.int176:r=\"int176\";break;case d.uint184:r=\"uint184\";break;case d.int184:r=\"int184\";break;case d.uint192:r=\"uint192\";break;case d.int192:r=\"int192\";break;case d.uint200:r=\"uint200\";break;case d.int200:r=\"int200\";break;case d.uint208:r=\"uint208\";break;case d.int208:r=\"int208\";break;case d.uint216:r=\"uint216\";break;case d.int216:r=\"int216\";break;case d.uint224:r=\"uint224\";break;case d.int224:r=\"int224\";break;case d.uint232:r=\"uint232\";break;case d.int232:r=\"int232\";break;case d.uint240:r=\"uint240\";break;case d.int240:r=\"int240\";break;case d.uint248:r=\"uint248\";break;case d.int248:r=\"int248\";break;case d.uint256:r=\"uint256\";break;case d.int256:r=\"int256\";break;case d.string:r=\"string\";break;case d.bool:r=\"bool\";break;case d.bytes:r=\"bytes\";break;case d.bytes32:r=\"bytes32\";break;case d.address:r=\"address\";break;case d.func:r=\"function\";break;default:r=\"\"}return a.array&&(r+=\"[]\"),r}export{d as ArgumentType,i as default,y as solidityTypeToString};\n//# sourceMappingURL=ContractFunctionSelector.js.map\n","import t,{ArgumentType as a,solidityTypeToString as r}from\"./ContractFunctionSelector.js\";import{encode as d}from\"../encoding/utf8.js\";import{decode as e}from\"../encoding/hex.js\";import\"bignumber.js\";import{convertToBigNumber as s,convertToBigNumberArray as n,safeView as i}from\"../util.js\";import{defaultAbiCoder as c}from\"@ethersproject/abi\";import{arrayify as h}from\"@ethersproject/bytes\";class _{constructor(){this._selector=new t,this._arguments=[]}addString(t){return this._selector.addString(),this._addParam(t,!0)}addStringArray(t){return this._selector.addStringArray(),this._addParam(t,!0)}addBytes(t){return this._selector.addBytes(),this._addParam(t,!0)}addBytes32(t){if(32!==t.length)throw new Error(`addBytes32 expected array to be of length 32, but received ${t.length}`);return this._selector.addBytes32(),this._addParam(t,!1)}addBytesArray(t){return this._selector.addBytesArray(),this._addParam(t,!0)}addBytes32Array(t){for(const[a,r]of t.entries())if(32!==r.length)throw new Error(`addBytes32 expected array to be of length 32, but received ${r.length}`);return this._selector.addBytes32Array(),this._addParam(t,!0)}addBool(t){return this._selector.addBool(),this._addParam(t,!1)}addInt8(t){return this._selector.addInt8(),this._addParam(s(t),!1)}addUint8(t){return this._selector.addUint8(),this._addParam(s(t),!1)}addInt16(t){return this._selector.addInt16(),this._addParam(s(t),!1)}addUint16(t){return this._selector.addUint16(),this._addParam(s(t),!1)}addInt24(t){return this._selector.addInt24(),this._addParam(s(t),!1)}addUint24(t){return this._selector.addUint24(),this._addParam(s(t),!1)}addInt32(t){return this._selector.addInt32(),this._addParam(s(t),!1)}addUint32(t){return this._selector.addUint32(),this._addParam(s(t),!1)}addInt40(t){return this._selector.addInt40(),this._addParam(s(t),!1)}addUint40(t){return this._selector.addUint40(),this._addParam(s(t),!1)}addInt48(t){return this._selector.addInt48(),this._addParam(s(t),!1)}addUint48(t){return this._selector.addUint48(),this._addParam(s(t),!1)}addInt56(t){return this._selector.addInt56(),this._addParam(s(t),!1)}addUint56(t){return this._selector.addUint56(),this._addParam(s(t),!1)}addInt64(t){return this._selector.addInt64(),this._addParam(s(t),!1)}addUint64(t){return this._selector.addUint64(),this._addParam(s(t),!1)}addInt72(t){return this._selector.addInt72(),this._addParam(s(t),!1)}addUint72(t){return this._selector.addUint72(),this._addParam(s(t),!1)}addInt80(t){return this._selector.addInt80(),this._addParam(s(t),!1)}addUint80(t){return this._selector.addUint80(),this._addParam(s(t),!1)}addInt88(t){return this._selector.addInt88(),this._addParam(s(t),!1)}addUint88(t){return this._selector.addUint88(),this._addParam(s(t),!1)}addInt96(t){return this._selector.addInt96(),this._addParam(s(t),!1)}addUint96(t){return this._selector.addUint96(),this._addParam(s(t),!1)}addInt104(t){return this._selector.addInt104(),this._addParam(s(t),!1)}addUint104(t){return this._selector.addUint104(),this._addParam(s(t),!1)}addInt112(t){return this._selector.addInt112(),this._addParam(s(t),!1)}addUint112(t){return this._selector.addUint112(),this._addParam(s(t),!1)}addInt120(t){return this._selector.addInt120(),this._addParam(s(t),!1)}addUint120(t){return this._selector.addUint120(),this._addParam(s(t),!1)}addInt128(t){return this._selector.addInt128(),this._addParam(s(t),!1)}addUint128(t){return this._selector.addUint128(),this._addParam(s(t),!1)}addInt136(t){return this._selector.addInt136(),this._addParam(s(t),!1)}addUint136(t){return this._selector.addUint136(),this._addParam(s(t),!1)}addInt144(t){return this._selector.addInt144(),this._addParam(s(t),!1)}addUint144(t){return this._selector.addUint144(),this._addParam(s(t),!1)}addInt152(t){return this._selector.addInt152(),this._addParam(s(t),!1)}addUint152(t){return this._selector.addUint152(),this._addParam(s(t),!1)}addInt160(t){return this._selector.addInt160(),this._addParam(s(t),!1)}addUint160(t){return this._selector.addUint160(),this._addParam(s(t),!1)}addInt168(t){return this._selector.addInt168(),this._addParam(s(t),!1)}addUint168(t){return this._selector.addUint168(),this._addParam(s(t),!1)}addInt176(t){return this._selector.addInt176(),this._addParam(s(t),!1)}addUint176(t){return this._selector.addUint176(),this._addParam(s(t),!1)}addInt184(t){return this._selector.addInt184(),this._addParam(s(t),!1)}addUint184(t){return this._selector.addUint184(),this._addParam(s(t),!1)}addInt192(t){return this._selector.addInt192(),this._addParam(s(t),!1)}addUint192(t){return this._selector.addUint192(),this._addParam(s(t),!1)}addInt200(t){return this._selector.addInt200(),this._addParam(s(t),!1)}addUint200(t){return this._selector.addUint200(),this._addParam(s(t),!1)}addInt208(t){return this._selector.addInt208(),this._addParam(s(t),!1)}addUint208(t){return this._selector.addUint208(),this._addParam(s(t),!1)}addInt216(t){return this._selector.addInt216(),this._addParam(s(t),!1)}addUint216(t){return this._selector.addUint216(),this._addParam(s(t),!1)}addInt224(t){return this._selector.addInt224(),this._addParam(s(t),!1)}addUint224(t){return this._selector.addUint224(),this._addParam(s(t),!1)}addInt232(t){return this._selector.addInt232(),this._addParam(s(t),!1)}addUint232(t){return this._selector.addUint232(),this._addParam(s(t),!1)}addInt240(t){return this._selector.addInt240(),this._addParam(s(t),!1)}addUint240(t){return this._selector.addUint240(),this._addParam(s(t),!1)}addInt248(t){return this._selector.addInt248(),this._addParam(s(t),!1)}addUint248(t){return this._selector.addUint248(),this._addParam(s(t),!1)}addInt256(t){return this._selector.addInt256(),this._addParam(s(t),!1)}addUint256(t){return this._selector.addUint256(),this._addParam(s(t),!1)}addInt8Array(t){return this._selector.addInt8Array(),this._addParam(n(t),!0)}addUint8Array(t){return this._selector.addUint8Array(),this._addParam(n(t),!0)}addInt16Array(t){return this._selector.addInt16Array(),this._addParam(n(t),!0)}addUint16Array(t){return this._selector.addUint16Array(),this._addParam(n(t),!0)}addInt24Array(t){return this._selector.addInt24Array(),this._addParam(n(t),!0)}addUint24Array(t){return this._selector.addUint24Array(),this._addParam(n(t),!0)}addInt32Array(t){return this._selector.addInt32Array(),this._addParam(n(t),!0)}addUint32Array(t){return this._selector.addUint32Array(),this._addParam(n(t),!0)}addInt40Array(t){return this._selector.addInt40Array(),this._addParam(n(t),!0)}addUint40Array(t){return this._selector.addUint40Array(),this._addParam(n(t),!0)}addInt48Array(t){return this._selector.addInt48Array(),this._addParam(n(t),!0)}addUint48Array(t){return this._selector.addUint48Array(),this._addParam(n(t),!0)}addInt56Array(t){return this._selector.addInt56Array(),this._addParam(n(t),!0)}addUint56Array(t){return this._selector.addUint56Array(),this._addParam(n(t),!0)}addInt64Array(t){return this._selector.addInt64Array(),this._addParam(n(t),!0)}addUint64Array(t){return this._selector.addUint64Array(),this._addParam(n(t),!0)}addInt72Array(t){return this._selector.addInt72Array(),this._addParam(n(t),!0)}addUint72Array(t){return this._selector.addUint72Array(),this._addParam(n(t),!0)}addInt80Array(t){return this._selector.addInt80Array(),this._addParam(n(t),!0)}addUint80Array(t){return this._selector.addUint80Array(),this._addParam(n(t),!0)}addInt88Array(t){return this._selector.addInt88Array(),this._addParam(n(t),!0)}addUint88Array(t){return this._selector.addUint88Array(),this._addParam(n(t),!0)}addInt96Array(t){return this._selector.addInt96Array(),this._addParam(n(t),!0)}addUint96Array(t){return this._selector.addUint96Array(),this._addParam(n(t),!0)}addInt104Array(t){return this._selector.addInt104Array(),this._addParam(n(t),!0)}addUint104Array(t){return this._selector.addUint104Array(),this._addParam(n(t),!0)}addInt112Array(t){return this._selector.addInt112Array(),this._addParam(n(t),!0)}addUint112Array(t){return this._selector.addUint112Array(),this._addParam(n(t),!0)}addInt120Array(t){return this._selector.addInt120Array(),this._addParam(n(t),!0)}addUint120Array(t){return this._selector.addUint120Array(),this._addParam(n(t),!0)}addInt128Array(t){return this._selector.addInt128Array(),this._addParam(n(t),!0)}addUint128Array(t){return this._selector.addUint128Array(),this._addParam(n(t),!0)}addInt136Array(t){return this._selector.addInt136Array(),this._addParam(n(t),!0)}addUint136Array(t){return this._selector.addUint136Array(),this._addParam(n(t),!0)}addInt144Array(t){return this._selector.addInt144Array(),this._addParam(n(t),!0)}addUint144Array(t){return this._selector.addUint144Array(),this._addParam(n(t),!0)}addInt152Array(t){return this._selector.addInt152Array(),this._addParam(n(t),!0)}addUint152Array(t){return this._selector.addUint152Array(),this._addParam(n(t),!0)}addInt160Array(t){return this._selector.addInt160Array(),this._addParam(n(t),!0)}addUint160Array(t){return this._selector.addUint160Array(),this._addParam(n(t),!0)}addInt168Array(t){return this._selector.addInt168Array(),this._addParam(n(t),!0)}addUint168Array(t){return this._selector.addUint168Array(),this._addParam(n(t),!0)}addInt176Array(t){return this._selector.addInt176Array(),this._addParam(n(t),!0)}addUint176Array(t){return this._selector.addUint176Array(),this._addParam(n(t),!0)}addInt184Array(t){return this._selector.addInt184Array(),this._addParam(n(t),!0)}addUint184Array(t){return this._selector.addUint184Array(),this._addParam(n(t),!0)}addInt192Array(t){return this._selector.addInt192Array(),this._addParam(n(t),!0)}addUint192Array(t){return this._selector.addUint192Array(),this._addParam(n(t),!0)}addInt200Array(t){return this._selector.addInt200Array(),this._addParam(n(t),!0)}addUint200Array(t){return this._selector.addUint200Array(),this._addParam(n(t),!0)}addInt208Array(t){return this._selector.addInt208Array(),this._addParam(n(t),!0)}addUint208Array(t){return this._selector.addUint208Array(),this._addParam(n(t),!0)}addInt216Array(t){return this._selector.addInt216Array(),this._addParam(n(t),!0)}addUint216Array(t){return this._selector.addUint216Array(),this._addParam(n(t),!0)}addInt224Array(t){return this._selector.addInt224Array(),this._addParam(n(t),!0)}addUint224Array(t){return this._selector.addUint224Array(),this._addParam(n(t),!0)}addInt232Array(t){return this._selector.addInt232Array(),this._addParam(n(t),!0)}addUint232Array(t){return this._selector.addUint232Array(),this._addParam(n(t),!0)}addInt240Array(t){return this._selector.addInt240Array(),this._addParam(n(t),!0)}addUint240Array(t){return this._selector.addUint240Array(),this._addParam(n(t),!0)}addInt248Array(t){return this._selector.addInt248Array(),this._addParam(n(t),!0)}addUint248Array(t){return this._selector.addUint248Array(),this._addParam(n(t),!0)}addInt256Array(t){return this._selector.addInt256Array(),this._addParam(n(t),!0)}addUint256Array(t){return this._selector.addUint256Array(),this._addParam(n(t),!0)}addAddress(t){let a;if(\"string\"==typeof t){if(40!==t.length&&42!==t.length)throw new Error(\"`address` type requires parameter to be 40 or 42 characters\");a=t}else a=t.toString();const r=40===a.length?e(a):e(a.substring(2));return this._selector.addAddress(),this._addParam(r,!1)}addAddressArray(t){const a=[];for(const[r,d]of t.entries()){let t;if(\"string\"==typeof d){if(40!==d.length&&42!==d.length)throw new Error(\"`address` type requires parameter to be 40 or 42 characters\");t=d}else t=d.toString();const r=40===t.length?e(t):e(t.substring(2));a.push(r)}return this._selector.addAddressArray(),this._addParam(a,!0)}addFunction(t,a){const r=e(t),d=a._build();if(20!==r.length)throw new Error(\"`function` type requires parameter `address` to be exactly 20 bytes\");this._selector.addFunction();const s=new Uint8Array(24);return s.set(r,0),s.set(d,20),this._addParam(s,!1)}_addParam(t,a){const r=this._selector._paramTypes.length-1,d=u(t,this._selector._paramTypes[r]);return this._arguments.push({dynamic:a,value:d}),this}_build(t){const a=null!=t,r=a?4:0,d=0===this._arguments.length?r:32*this._arguments.length+this._arguments.map((t=>t.dynamic?t.value.length:0)).reduce(((t,a)=>t+a))+r,e=new Uint8Array(d);a&&e.set(this._selector._build(t),0);let s=32*this._arguments.length;for(const[t,{dynamic:a,value:d}]of this._arguments.entries())if(a){const a=i(e,r+32*t+28);a.setUint32(0,s),e.set(d,a.getUint32(0)+r),s+=d.length}else e.set(d,r+32*t);return e}}function u(t,e){let s,n=new Uint8Array(32),_=i(n);if(e.array){if(!Array.isArray(t))throw new TypeError(\"SolidityType indicates type is array, but parameter is not an array\");const r=[];for(const[a,d]of t.entries()){const t=u(d,{ty:e.ty,array:!1});r.push(t)}const d=r.map((t=>t.length)).reduce(((t,a)=>t+a),0);switch(e.ty){case a.uint8:case a.int8:case a.uint16:case a.int16:case a.uint24:case a.int24:case a.uint32:case a.int32:case a.uint40:case a.int40:case a.uint48:case a.int48:case a.uint56:case a.int56:case a.uint64:case a.int64:case a.uint72:case a.int72:case a.uint80:case a.int80:case a.uint88:case a.int88:case a.uint96:case a.int96:case a.uint104:case a.int104:case a.uint112:case a.int112:case a.uint120:case a.int120:case a.uint128:case a.int128:case a.uint136:case a.int136:case a.uint144:case a.int144:case a.uint152:case a.int152:case a.uint160:case a.int160:case a.uint168:case a.int168:case a.uint176:case a.int176:case a.uint184:case a.int184:case a.uint192:case a.int192:case a.uint200:case a.int200:case a.uint208:case a.int208:case a.uint216:case a.int216:case a.uint224:case a.int224:case a.uint232:case a.int232:case a.uint240:case a.int240:case a.uint248:case a.int248:case a.uint256:case a.int256:case a.bool:case a.bytes32:case a.address:case a.func:n=new Uint8Array(d+32);break;case a.bytes:case a.string:n=new Uint8Array(32*r.length+d+32);break;default:throw new TypeError(`Expected param type to be ArgumentType, but received ${e.ty}`)}_=i(n,28),_.setUint32(0,r.length);let s=32*r.length;for(const[t,d]of r.entries())switch(e.ty){case a.uint8:case a.int8:case a.uint16:case a.int16:case a.uint24:case a.int24:case a.uint32:case a.int32:case a.uint40:case a.int40:case a.uint48:case a.int48:case a.uint56:case a.int56:case a.uint64:case a.int64:case a.uint72:case a.int72:case a.uint80:case a.int80:case a.uint88:case a.int88:case a.uint96:case a.int96:case a.uint104:case a.int104:case a.uint112:case a.int112:case a.uint120:case a.int120:case a.uint128:case a.int128:case a.uint136:case a.int136:case a.uint144:case a.int144:case a.uint152:case a.int152:case a.uint160:case a.int160:case a.uint168:case a.int168:case a.uint176:case a.int176:case a.uint184:case a.int184:case a.uint192:case a.int192:case a.uint200:case a.int200:case a.uint208:case a.int208:case a.uint216:case a.int216:case a.uint224:case a.int224:case a.uint232:case a.int232:case a.uint240:case a.int240:case a.uint248:case a.int248:case a.uint256:case a.int256:case a.bool:case a.bytes32:case a.address:case a.func:n.set(d,32*t+32);break;case a.bytes:case a.string:const r=i(n,32*(t+1)+28);r.setUint32(0,s),n.set(d,r.getUint32(0)+32),s+=d.length;break;default:throw new TypeError(`Expected param type to be ArgumentType, but received ${e.ty}`)}return n}switch(e.ty){case a.uint8:case a.int8:case a.uint16:case a.int16:case a.uint24:case a.int24:case a.uint32:case a.int32:case a.uint40:case a.int40:case a.uint48:case a.int48:case a.uint56:case a.int56:case a.uint64:case a.int64:case a.uint72:case a.int72:case a.uint80:case a.int80:case a.uint88:case a.int88:case a.uint96:case a.int96:case a.uint104:case a.int104:case a.uint112:case a.int112:case a.uint120:case a.int120:case a.uint128:case a.int128:case a.uint136:case a.int136:case a.uint144:case a.int144:case a.uint152:case a.int152:case a.uint160:case a.int160:case a.uint168:case a.int168:case a.uint176:case a.int176:case a.uint184:case a.int184:case a.uint192:case a.int192:case a.uint200:case a.int200:case a.uint208:case a.int208:case a.uint216:case a.int216:case a.uint224:case a.int224:case a.uint232:case a.int232:case a.uint240:case a.int240:case a.uint248:case a.int248:case a.int256:case a.uint256:{let a=t.toString(16);a=t>0||0==t?\"0x\"+a:a.slice(0,1)+\"0x\"+a.slice(1);const d=c.encode([r(e)],[a]);return h(d)}case a.address:return n.set(t,12),n;case a.bool:return n[31]=t?1:0,n;case a.func:return n.set(t,8),n;case a.bytes32:return n.set(t,0),n;case a.bytes:case a.string:return s=t instanceof Uint8Array?t:d(t),n=Math.floor(s.length/32)>=0?0!==Math.floor(s.length%32)?new Uint8Array(32*(Math.floor(s.length/32)+1)+32):new Uint8Array(32*Math.floor(s.length/32)+32):new Uint8Array(64),n.set(s,32),_=i(n,28),_.setUint32(0,s.length),n;default:throw new Error(`Unsupported argument type: ${e.toString()}`)}}export{_ as default};\n//# sourceMappingURL=ContractFunctionParameters.js.map\n","import t,{QUERY_REGISTRY as n}from\"../query/Query.js\";import e from\"./ContractId.js\";import r from\"../account/AccountId.js\";import s from\"./ContractFunctionParameters.js\";import o from\"./ContractFunctionResult.js\";import a from\"long\";import*as c from\"@hashgraph/proto\";import u from\"../PrecheckStatusError.js\";import i from\"../Status.js\";class l extends t{constructor(t={}){super(),this._contractId=null,null!=t.contractId&&this.setContractId(t.contractId),this._gas=null,null!=t.gas&&this.setGas(t.gas),this._functionParameters=null,null!=t.functionParameters&&(t.functionParameters instanceof Uint8Array?this.setFunctionParameters(t.functionParameters):this.setFunction(t.functionParameters.name,t.functionParameters.parameters)),this._maxResultSize=null,null!=t.maxResultSize&&this.setMaxResultSize(t.maxResultSize),this._senderAccountId=null,null!=t.senderAccountId&&this.setSenderAccountId(t.senderAccountId)}static _fromProtobuf(t){const n=t.contractCallLocal;return new l({contractId:null!=n.contractID?e._fromProtobuf(n.contractID):void 0,gas:null!=n.gas?n.gas:void 0,functionParameters:null!=n.functionParameters?n.functionParameters:void 0,maxResultSize:null!=n.maxResultSize?n.maxResultSize:void 0})}get contractId(){return this._contractId}setContractId(t){return this._contractId=\"string\"==typeof t?e.fromString(t):t.clone(),this}get gas(){return this._gas}setGas(t){return this._gas=t instanceof a?t:a.fromValue(t),this}get senderAccountId(){return this._senderAccountId}setSenderAccountId(t){return this._senderAccountId=\"string\"==typeof t?r.fromString(t):t,this}get functionParameters(){return this._functionParameters}setFunctionParameters(t){return this._functionParameters=t,this}setFunction(t,n){return this._functionParameters=(null!=n?n:new s)._build(t),this}setMaxResultSize(t){return this._maxResultSize=t instanceof a?t:a.fromValue(t),this}_validateChecksums(t){null!=this._contractId&&this._contractId.validateChecksum(t)}_mapStatusError(t,n,e){const{nodeTransactionPrecheckCode:r}=this._mapResponseHeader(n),s=i._fromCode(null!=r?r:c.proto.ResponseCodeEnum.OK);if(!n.contractCallLocal.functionResult)return new u({nodeId:e,status:s,transactionId:this._getTransactionId(),contractFunctionResult:null});const o=this._mapResponseSync(n);return new u({nodeId:e,status:s,transactionId:this._getTransactionId(),contractFunctionResult:o})}_execute(t,n){return t.smartContract.contractCallLocalMethod(n)}_mapResponseHeader(t){return t.contractCallLocal.header}_mapResponse(t){const n=t.contractCallLocal;return Promise.resolve(o._fromProtobuf(n.functionResult,!1))}_mapResponseSync(t){const n=t.contractCallLocal;return o._fromProtobuf(n.functionResult,!1)}_onMakeRequest(t){return{contractCallLocal:{header:t,contractID:null!=this._contractId?this._contractId._toProtobuf():null,gas:this._gas,maxResultSize:this._maxResultSize,functionParameters:this._functionParameters,senderId:null!=this._senderAccountId?this._senderAccountId._toProtobuf():null}}}_getLogId(){return`ContractCallQuery:${(null!=this._paymentTransactionId&&null!=this._paymentTransactionId.validStart?this._paymentTransactionId.validStart:this._timestamp).toString()}`}}n.set(\"contractCallLocal\",l._fromProtobuf);export{l as default};\n//# sourceMappingURL=ContractCallQuery.js.map\n","import e from\"../Hbar.js\";import t,{TRANSACTION_REGISTRY as i,DEFAULT_AUTO_RENEW_PERIOD as o}from\"../transaction/Transaction.js\";import{encode as n}from\"../encoding/utf8.js\";import r from\"../Timestamp.js\";import s from\"../Key.js\";import a from\"../KeyList.js\";import m from\"long\";class l extends t{constructor(t={}){super(),this._keys=null,this._expirationTime=new r(0,0).plusNanos(m.fromNumber(Date.now()).mul(1e6).add(o.mul(1e9))),this._contents=null,this._fileMemo=null,this._defaultMaxTransactionFee=new e(5),null!=t.keys&&this.setKeys(t.keys),null!=t.expirationTime&&this.setExpirationTime(t.expirationTime),null!=t.contents&&this.setContents(t.contents),t.fileMemo&&null!=t.fileMemo&&this.setFileMemo(t.fileMemo)}static _fromProtobuf(e,i,o,n,a){const m=a[0].fileCreate;return t._fromProtobufTransactions(new l({keys:null!=m.keys&&null!=m.keys.keys?m.keys.keys.map((e=>s._fromProtobufKey(e))):void 0,expirationTime:null!=m.expirationTime?r._fromProtobuf(m.expirationTime):void 0,contents:null!=m.contents?m.contents:void 0,fileMemo:null!=m.memo?m.memo:void 0}),e,i,o,n,a)}get keys(){return this._keys}setKeys(e){if(this._requireNotFrozen(),e instanceof a&&null!=e.threshold)throw new Error(\"Cannot set threshold key as file key\");return this._keys=e instanceof a?e.toArray():e,this}get expirationTime(){return this._expirationTime}setExpirationTime(e){return this._requireNotFrozen(),this._expirationTime=e instanceof r?e:r.fromDate(e),this}get contents(){return this._contents}setContents(e){return this._requireNotFrozen(),this._contents=e instanceof Uint8Array?e:n(e),this}get fileMemo(){return this._fileMemo}setFileMemo(e){return this._requireNotFrozen(),this._fileMemo=e,this}_execute(e,t){return e.file.createFile(t)}_getTransactionDataCase(){return\"fileCreate\"}_makeTransactionData(){return{keys:null!=this._keys?{keys:this._keys.map((e=>e._toProtobufKey()))}:null,expirationTime:this._expirationTime._toProtobuf(),contents:this._contents,memo:this._fileMemo}}_getLogId(){return`FileCreateTransaction:${this._transactionIds.current.validStart.toString()}`}}i.set(\"fileCreate\",l._fromProtobuf);export{l as default};\n//# sourceMappingURL=FileCreateTransaction.js.map\n","import t from\"../Hbar.js\";import n,{TRANSACTION_REGISTRY as s}from\"../transaction/Transaction.js\";import{encode as e}from\"../encoding/utf8.js\";import i from\"./FileId.js\";import r from\"../transaction/TransactionId.js\";import a from\"../Timestamp.js\";import h from\"../transaction/List.js\";import o from\"../account/AccountId.js\";class c extends n{constructor(n={}){super(),this._fileId=null,this._contents=null,this._maxChunks=20,this._chunkSize=4096,this._chunkInterval=10,this._defaultMaxTransactionFee=new t(5),null!=n.fileId&&this.setFileId(n.fileId),null!=n.contents&&this.setContents(n.contents),null!=n.maxChunks&&this.setMaxChunks(n.maxChunks),null!=n.chunkSize&&this.setChunkSize(n.chunkSize),null!=n.chunkInterval&&this.setChunkInterval(n.chunkInterval),this._transactionIds=new h}static _fromProtobuf(t,s,e,r,a){const h=a[0].fileAppend;let o;const u=r.length>0?r.length:1;for(let t=0;t1){const t=e[0].validStart,n=e[1].validStart;t&&n&&(_=n.nanos.sub(t.nanos).toNumber())}return n._fromProtobufTransactions(new c({fileId:null!=h.fileID?i._fromProtobuf(h.fileID):void 0,contents:o,chunkSize:l,maxChunks:d,chunkInterval:_}),t,s,e,r,a)}get fileId(){return this._fileId}setFileId(t){return this._requireNotFrozen(),this._fileId=\"string\"==typeof t?i.fromString(t):t.clone(),this}getRequiredChunks(){if(null==this._contents)return 1;return Math.ceil(this._contents.length/this._chunkSize)}get contents(){return this._contents}setContents(t){return this._requireNotFrozen(),this._contents=t instanceof Uint8Array?t:e(t),this}get maxChunks(){return this._maxChunks}setMaxChunks(t){return this._requireNotFrozen(),this._maxChunks=t,this}get chunkSize(){return this._chunkSize}setChunkSize(t){return this._chunkSize=t,this}get chunkInterval(){return this._chunkInterval}setChunkInterval(t){return this._chunkInterval=t,this}freezeWith(t){if(super.freezeWith(t),null==this._contents)return this;let n=this._getTransactionId();this._transactionIds.locked=!1,this._transactions.clear(),this._transactionIds.clear(),this._signedTransactions.clear();for(let t=0;tthis._chunkSize)throw new Error(`cannot schedule \\`FileAppendTransaction\\` with message over ${this._chunkSize} bytes`);return super.schedule()}async execute(t,n){return(await this.executeAll(t,n))[0]}async executeAll(t,n){if(this.maxChunks&&this.getRequiredChunks()>this.maxChunks)throw new Error(`cannot execute \\`FileAppendTransaction\\` with more than ${this.maxChunks} chunks`);super._isFrozen()||this.freezeWith(t);const s=this._getTransactionId(),e=t.operatorAccountId;null!=e&&e.equals(s.accountId)&&await super.signWithOperator(t);const i=[];let r=n;for(let n=0;nthis.maxChunks)throw new Error(`cannot build \\`FileAppendTransaction\\` with more than ${this.maxChunks} chunks`);this._transactionIds.locked=!1,this._transactions.clear(),this._transactionIds.clear(),this._signedTransactions.clear();for(let t=0;tthis.maxChunks)throw new Error(`cannot build \\`FileAppendTransaction\\` with more than ${this.maxChunks} chunks`);for(let t=0;te.__fromProtobufKey(t)));export{e as default};\n//# sourceMappingURL=DelegateContractId.js.map\n","import a from\"./Hbar.js\";import t from\"./file/FileId.js\";import e,{TRANSACTION_REGISTRY as l}from\"./transaction/Transaction.js\";class r extends e{constructor(a={}){super(),this._ethereumData=null,this._callDataFileId=null,this._maxGasAllowance=null,null!=a.ethereumData&&this.setEthereumData(a.ethereumData),null!=a.callData&&this.setCallDataFileId(a.callData),null!=a.callDataFileId&&this.setCallDataFileId(a.callDataFileId),null!=a.maxGasAllowance&&this.setMaxGasAllowanceHbar(a.maxGasAllowance)}static _fromProtobuf(l,s,n,i,o){const u=o[0].ethereumTransaction;return e._fromProtobufTransactions(new r({ethereumData:null!=u.ethereumData?u.ethereumData:void 0,callData:null!=u.callData?t._fromProtobuf(u.callData):void 0,maxGasAllowance:null!=u.maxGasAllowance?a.fromTinybars(u.maxGasAllowance):void 0}),l,s,n,i,o)}get ethereumData(){return this._ethereumData}setEthereumData(a){return this._requireNotFrozen(),this._ethereumData=a,this}get callData(){return this.callDataFileId}setCallData(a){return this.setCallDataFileId(a)}get callDataFileId(){return this._callDataFileId}setCallDataFileId(a){return this._requireNotFrozen(),this._callDataFileId=a,this}get maxGasAllowance(){return this._maxGasAllowance}setMaxGasAllowance(a){return this.setMaxGasAllowanceHbar(a)}setMaxGasAllowanceHbar(t){return this._requireNotFrozen(),this._maxGasAllowance=t instanceof a?t:new a(t),this}_validateChecksums(a){null!=this._ethereumData&&this._ethereumData instanceof t&&this._ethereumData.validateChecksum(a)}_execute(a,t){return a.smartContract.callEthereum(t)}_getTransactionDataCase(){return\"ethereumTransaction\"}_makeTransactionData(){return{ethereumData:this._ethereumData,callData:null!=this._callDataFileId?this._callDataFileId._toProtobuf():null,maxGasAllowance:null!=this._maxGasAllowance?this._maxGasAllowance.toTinybars():null}}_getLogId(){return`EthereumTransaction:${this._transactionIds.current.validStart.toString()}`}}l.set(\"ethereumTransaction\",r._fromProtobuf);export{r as default};\n//# sourceMappingURL=EthereumTransaction.js.map\n","import t from\"./Cache.js\";class e{constructor(t){this.callData=t.callData}static fromBytes(e){if(0===e.length)throw new Error(\"empty bytes\");switch(e[0]){case 1:return t.ethereumTransactionDataEip2930FromBytes(e);case 2:return t.ethereumTransactionDataEip1559FromBytes(e);default:return t.ethereumTransactionDataLegacyFromBytes(e)}}toBytes(){throw new Error(\"not implemented\")}toString(){throw new Error(\"not implemented\")}toJSON(){throw new Error(\"not implemented\")}}export{e as default};\n//# sourceMappingURL=EthereumTransactionData.js.map\n","import*as t from\"@ethersproject/rlp\";import{decode as s,encode as i}from\"./encoding/hex.js\";import e from\"./EthereumTransactionData.js\";import r from\"./Cache.js\";class a extends e{constructor(t){super(t),this.nonce=t.nonce,this.gasPrice=t.gasPrice,this.gasLimit=t.gasLimit,this.to=t.to,this.value=t.value,this.v=t.v,this.r=t.r,this.s=t.s}static fromBytes(i){if(0===i.length)throw new Error(\"empty bytes\");const e=t.decode(i);if(9!=e.length)throw new Error(\"invalid ethereum transaction data\");return new a({nonce:s(e[0]),gasPrice:s(e[1]),gasLimit:s(e[2]),to:s(e[3]),value:s(e[4]),callData:s(e[5]),v:s(e[6]),r:s(e[7]),s:s(e[8])})}toBytes(){return s(t.encode([this.nonce,this.gasPrice,this.gasLimit,this.to,this.value,this.callData,this.v,this.r,this.s]))}toString(){return JSON.stringify(this.toJSON(),null,2)}toJSON(){return{nonce:i(this.nonce),gasPrice:i(this.gasPrice),gasLimit:i(this.gasLimit),to:i(this.to),value:i(this.value),callData:i(this.callData),v:i(this.v),r:i(this.r),s:i(this.s)}}}r.setEthereumTransactionDataLegacyFromBytes((t=>a.fromBytes(t)));export{a as default};\n//# sourceMappingURL=EthereumTransactionDataLegacy.js.map\n","import*as t from\"@ethersproject/rlp\";import{decode as s,encode as i}from\"./encoding/hex.js\";import a from\"./EthereumTransactionData.js\";import r from\"./Cache.js\";class e extends a{constructor(t){super(t),this.chainId=t.chainId,this.nonce=t.nonce,this.maxPriorityGas=t.maxPriorityGas,this.maxGas=t.maxGas,this.gasLimit=t.gasLimit,this.to=t.to,this.value=t.value,this.accessList=t.accessList,this.recId=t.recId,this.r=t.r,this.s=t.s}static fromBytes(i){if(0===i.length)throw new Error(\"empty bytes\");const a=t.decode(i.subarray(1));if(!Array.isArray(a))throw new Error(\"ethereum data is not a list\");if(12!=a.length)throw new Error(\"invalid ethereum transaction data\");return new e({chainId:s(a[0]),nonce:s(a[1]),maxPriorityGas:s(a[2]),maxGas:s(a[3]),gasLimit:s(a[4]),to:s(a[5]),value:s(a[6]),callData:s(a[7]),accessList:a[8].map((t=>s(t))),recId:s(a[9]),r:s(a[10]),s:s(a[11])})}toBytes(){const i=t.encode([this.chainId,this.nonce,this.maxPriorityGas,this.maxGas,this.gasLimit,this.to,this.value,this.callData,this.accessList,this.recId,this.r,this.s]);return s(\"02\"+i.substring(2))}toString(){return JSON.stringify(this.toJSON(),null,2)}toJSON(){return{chainId:i(this.chainId),nonce:i(this.nonce),maxPriorityGas:i(this.maxPriorityGas),maxGas:i(this.maxGas),gasLimit:i(this.gasLimit),to:i(this.to),value:i(this.value),callData:i(this.callData),accessList:this.accessList.map((t=>i(t))),recId:i(this.recId),r:i(this.r),s:i(this.s)}}}r.setEthereumTransactionDataEip1559FromBytes((t=>e.fromBytes(t)));export{e as default};\n//# sourceMappingURL=EthereumTransactionDataEip1559.js.map\n","import*as t from\"@ethersproject/rlp\";import{decode as s,encode as i}from\"./encoding/hex.js\";import e from\"./EthereumTransactionData.js\";import r from\"./Cache.js\";class a extends e{constructor(t){super(t),this.chainId=t.chainId,this.nonce=t.nonce,this.gasPrice=t.gasPrice,this.gasLimit=t.gasLimit,this.to=t.to,this.value=t.value,this.accessList=t.accessList,this.recId=t.recId,this.r=t.r,this.s=t.s}static fromBytes(i){if(0===i.length)throw new Error(\"empty bytes\");const e=t.decode(i.subarray(1));if(!Array.isArray(e))throw new Error(\"ethereum data is not a list\");if(11!==e.length)throw new Error(\"invalid ethereum transaction data\");return new a({chainId:s(e[0]),nonce:s(e[1]),gasPrice:s(e[2]),gasLimit:s(e[3]),to:s(e[4]),value:s(e[5]),callData:s(e[6]),accessList:e[7].map((t=>s(t))),recId:s(e[8]),r:s(e[9]),s:s(e[10])})}toBytes(){const i=t.encode([this.chainId,this.nonce,this.gasPrice,this.gasLimit,this.to,this.value,this.callData,this.accessList,this.recId,this.r,this.s]);return s(\"01\"+i.substring(2))}toString(){return JSON.stringify(this.toJSON(),null,2)}toJSON(){return{chainId:i(this.chainId),nonce:i(this.nonce),gasPrice:i(this.gasPrice),gasLimit:i(this.gasLimit),to:i(this.to),value:i(this.value),callData:i(this.callData),accessList:this.accessList.map((t=>i(t))),recId:i(this.recId),r:i(this.r),s:i(this.s)}}}r.setEthereumTransactionDataEip2930FromBytes((t=>a.fromBytes(t)));export{a as default};\n//# sourceMappingURL=EthereumTransactionDataEip2930.js.map\n","class e{constructor(e){this._code=e,Object.freeze(this)}toString(){switch(this){case e.Default:return\"DEFAULT\";case e.TokenFungibleCommon:return\"TOKEN_FUNGIBLE_COMMON\";case e.TokenNonFungibleUnique:return\"TOKEN_NON_FUNGIBLE_UNIQUE\";case e.TokenFungibleCommonWithCustomFees:return\"TOKEN_FUNGIBLE_COMMON_WITH_CUSTOM_FEES\";case e.TokenNonFungibleUniqueWithCustomFees:return\"TOKEN_NON_FUNGIBLE_UNIQUE_WITH_CUSTOM_FEES\";case e.ScheduleCreateContractCall:return\"SCHEDULE_CREATE_CONTRACT_CALL\";case e.TopicCreateWithCustomFees:return\"TOPIC_CREATE_WITH_CUSTOM_FEES\";default:return`UNKNOWN (${this._code})`}}static _fromCode(n){switch(n){case 0:return e.Default;case 1:return e.TokenFungibleCommon;case 2:return e.TokenNonFungibleUnique;case 3:return e.TokenFungibleCommonWithCustomFees;case 4:return e.TokenNonFungibleUniqueWithCustomFees;case 5:return e.ScheduleCreateContractCall;case 6:return e.TopicCreateWithCustomFees}throw new Error(`(BUG) SubType.fromCode() does not handle code: ${n}`)}valueOf(){return this._code}}e.Default=new e(0),e.TokenFungibleCommon=new e(1),e.TokenNonFungibleUnique=new e(2),e.TokenFungibleCommonWithCustomFees=new e(3),e.TokenNonFungibleUniqueWithCustomFees=new e(4),e.ScheduleCreateContractCall=new e(5),e.TopicCreateWithCustomFees=new e(6);export{e as default};\n//# sourceMappingURL=FeeDataType.js.map\n","class e{constructor(e){this._code=e,Object.freeze(this)}toString(){switch(this){case e.None:return\"NONE\";case e.CryptoTransfer:return\"CryptoTransfer\";case e.CryptoUpdate:return\"CryptoUpdate\";case e.CryptoDelete:return\"CryptoDelete\";case e.CryptoAddLiveHash:return\"CryptoAddLiveHash\";case e.CryptoDeleteLiveHash:return\"CryptoDeleteLiveHash\";case e.ContractCall:return\"ContractCall\";case e.ContractCreate:return\"ContractCreate\";case e.ContractUpdate:return\"ContractUpdate\";case e.FileCreate:return\"FileCreate\";case e.FileAppend:return\"FileAppend\";case e.FileUpdate:return\"FileUpdate\";case e.FileDelete:return\"FileDelete\";case e.CryptoGetAccountBalance:return\"CryptoGetAccountBalance\";case e.CryptoGetAccountRecords:return\"CryptoGetAccountRecords\";case e.CryptoGetInfo:return\"CryptoGetInfo\";case e.ContractCallLocal:return\"ContractCallLocal\";case e.ContractGetInfo:return\"ContractGetInfo\";case e.ContractGetBytecode:return\"ContractGetBytecode\";case e.GetBySolidityID:return\"GetBySolidityID\";case e.GetByKey:return\"GetByKey\";case e.CryptoGetLiveHash:return\"CryptoGetLiveHash\";case e.CryptoGetStakers:return\"CryptoGetStakers\";case e.FileGetContents:return\"FileGetContents\";case e.FileGetInfo:return\"FileGetInfo\";case e.TransactionGetRecord:return\"TransactionGetRecord\";case e.ContractGetRecords:return\"ContractGetRecords\";case e.CryptoCreate:return\"CryptoCreate\";case e.SystemDelete:return\"SystemDelete\";case e.SystemUndelete:return\"SystemUndelete\";case e.ContractDelete:return\"ContractDelete\";case e.Freeze:return\"Freeze\";case e.CreateTransactionRecord:return\"CreateTransactionRecord\";case e.CryptoAccountAutoRenew:return\"CryptoAccountAutoRenew\";case e.ContractAutoRenew:return\"ContractAutoRenew\";case e.GetVersionInfo:return\"GetVersionInfo\";case e.TransactionGetReceipt:return\"TransactionGetReceipt\";case e.ConsensusCreateTopic:return\"ConsensusCreateTopic\";case e.ConsensusUpdateTopic:return\"ConsensusUpdateTopic\";case e.ConsensusDeleteTopic:return\"ConsensusDeleteTopic\";case e.ConsensusGetTopicInfo:return\"ConsensusGetTopicInfo\";case e.ConsensusSubmitMessage:return\"ConsensusSubmitMessage\";case e.UncheckedSubmit:return\"UncheckedSubmit\";case e.TokenCreate:return\"TokenCreate\";case e.TokenGetInfo:return\"TokenGetInfo\";case e.TokenFreezeAccount:return\"TokenFreezeAccount\";case e.TokenUnfreezeAccount:return\"TokenUnfreezeAccount\";case e.TokenGrantKycToAccount:return\"TokenGrantKycToAccount\";case e.TokenRevokeKycFromAccount:return\"TokenRevokeKycFromAccount\";case e.TokenDelete:return\"TokenDelete\";case e.TokenUpdate:return\"TokenUpdate\";case e.TokenMint:return\"TokenMint\";case e.TokenBurn:return\"TokenBurn\";case e.TokenAccountWipe:return\"TokenAccountWipe\";case e.TokenAssociateToAccount:return\"TokenAssociateToAccount\";case e.TokenDissociateFromAccount:return\"TokenDissociateFromAccount\";case e.ScheduleCreate:return\"ScheduleCreate\";case e.ScheduleDelete:return\"ScheduleDelete\";case e.ScheduleSign:return\"ScheduleSign\";case e.ScheduleGetInfo:return\"ScheduleGetInfo\";case e.TokenGetAccountNftInfos:return\"TokenGetAccountNftInfos\";case e.TokenGetNftInfo:return\"TokenGetNftInfo\";case e.TokenGetNftInfos:return\"TokenGetNftInfos\";case e.TokenFeeScheduleUpdate:return\"TokenFeeScheduleUpdate\";case e.NetworkGetExecutionTime:return\"NetworkGetExecutionTime\";case e.TokenPause:return\"TokenPause\";case e.TokenUnpause:return\"TokenUnpause\";case e.CryptoApproveAllowance:return\"CryptoApproveAllowance\";case e.CryptoDeleteAllowance:return\"CryptoDeleteAllowance\";case e.GetAccountDetails:return\"GetAccountDetails\";case e.EthereumTransaction:return\"EthereumTransaction\";case e.NodeStakeUpdate:return\"NodeStakeUpdate\";case e.Prng:return\"UtilPrng\";case e.TransactionGetFastRecord:return\"TransactionGetFastRecord\";case e.TokenUpdateNfts:return\"TokenUpdateNfts\";case e.NodeCreate:return\"NodeCreate\";case e.NodeUpdate:return\"NodeUpdate\";case e.NodeDelete:return\"NodeDelete\";case e.TokenReject:return\"TokenReject\";case e.TokenAirdrop:return\"TokenAirdrop\";case e.TokenCancelAirdrop:return\"TokenCancelAirdrop\";case e.TokenClaimAirdrop:return\"TokenClaimAirdrop\";case e.TssMessage:return\"TssMessage\";case e.TssVote:return\"TssVote\";case e.TssShareSignature:return\"TssShareSignature\";case e.TssEncryptionKey:return\"TssEncryptionKey\";case e.StateSignatureTransaction:return\"StateSignatureTransaction\";case e.HistoryAssemblySignature:return\"HistoryAssemblySignature\";case e.HistoryProofKeyPublication:return\"HistoryProofKeyPublication\";case e.HistoryProofVote:return\"HistoryProofVote\";case e.HintsKeyPublication:return\"HintsKeyPublication\";case e.HintsPreprocessingVote:return\"HintsPreprocessingVote\";case e.HintsPartialSignature:return\"HintsPartialSignature\";case e.CrsPublication:return\"CrsPublication\";case e.AtomicBatch:return\"AtomicBatch\";default:return`UNKNOWN (${this._code})`}}static _fromCode(t){switch(t){case 0:return e.None;case 1:return e.CryptoTransfer;case 2:return e.CryptoUpdate;case 3:return e.CryptoDelete;case 4:return e.CryptoAddLiveHash;case 5:return e.CryptoDeleteLiveHash;case 6:return e.ContractCall;case 7:return e.ContractCreate;case 8:return e.ContractUpdate;case 9:return e.FileCreate;case 10:return e.FileAppend;case 11:return e.FileUpdate;case 12:return e.FileDelete;case 13:return e.CryptoGetAccountBalance;case 14:return e.CryptoGetAccountRecords;case 15:return e.CryptoGetInfo;case 16:return e.ContractCallLocal;case 17:return e.ContractGetInfo;case 18:return e.ContractGetBytecode;case 19:return e.GetBySolidityID;case 20:return e.GetByKey;case 21:return e.CryptoGetLiveHash;case 22:return e.CryptoGetStakers;case 23:return e.FileGetContents;case 24:return e.FileGetInfo;case 25:return e.TransactionGetRecord;case 26:return e.ContractGetRecords;case 27:return e.CryptoCreate;case 28:return e.SystemDelete;case 29:return e.SystemUndelete;case 30:return e.ContractDelete;case 31:return e.Freeze;case 32:return e.CreateTransactionRecord;case 33:return e.CryptoAccountAutoRenew;case 34:return e.ContractAutoRenew;case 35:return e.GetVersionInfo;case 36:return e.TransactionGetReceipt;case 50:return e.ConsensusCreateTopic;case 51:return e.ConsensusUpdateTopic;case 52:return e.ConsensusDeleteTopic;case 53:return e.ConsensusGetTopicInfo;case 54:return e.ConsensusSubmitMessage;case 55:return e.UncheckedSubmit;case 56:return e.TokenCreate;case 58:return e.TokenGetInfo;case 59:return e.TokenFreezeAccount;case 60:return e.TokenUnfreezeAccount;case 61:return e.TokenGrantKycToAccount;case 62:return e.TokenRevokeKycFromAccount;case 63:return e.TokenDelete;case 64:return e.TokenUpdate;case 65:return e.TokenMint;case 66:return e.TokenBurn;case 67:return e.TokenAccountWipe;case 68:return e.TokenAssociateToAccount;case 69:return e.TokenDissociateFromAccount;case 70:return e.ScheduleCreate;case 71:return e.ScheduleDelete;case 72:return e.ScheduleSign;case 73:return e.ScheduleGetInfo;case 74:return e.TokenGetAccountNftInfos;case 75:return e.TokenGetNftInfo;case 76:return e.TokenGetNftInfos;case 77:return e.TokenFeeScheduleUpdate;case 78:return e.NetworkGetExecutionTime;case 79:return e.TokenPause;case 80:return e.TokenUnpause;case 81:return e.CryptoApproveAllowance;case 82:return e.CryptoDeleteAllowance;case 83:return e.GetAccountDetails;case 84:return e.EthereumTransaction;case 85:return e.NodeStakeUpdate;case 86:return e.Prng;case 87:return e.TransactionGetFastRecord;case 88:return e.TokenUpdateNfts;case 89:return e.NodeCreate;case 90:return e.NodeUpdate;case 91:return e.NodeDelete;case 92:return e.TokenReject;case 93:return e.TokenAirdrop;case 94:return e.TokenCancelAirdrop;case 95:return e.TokenClaimAirdrop;case 96:return e.TssMessage;case 97:return e.TssVote;case 98:return e.TssShareSignature;case 99:return e.TssEncryptionKey;case 100:return e.StateSignatureTransaction;case 101:return e.HintsKeyPublication;case 102:return e.HintsPreprocessingVote;case 103:return e.HintsPartialSignature;case 104:return e.HistoryAssemblySignature;case 105:return e.HistoryProofKeyPublication;case 106:return e.HistoryProofVote;case 107:return e.CrsPublication;case 108:return e.AtomicBatch}throw new Error(`(BUG) RequestType.fromCode() does not handle code: ${t}`)}valueOf(){return this._code}}e.None=new e(0),e.CryptoTransfer=new e(1),e.CryptoUpdate=new e(2),e.CryptoDelete=new e(3),e.CryptoAddLiveHash=new e(4),e.CryptoDeleteLiveHash=new e(5),e.ContractCall=new e(6),e.ContractCreate=new e(7),e.ContractUpdate=new e(8),e.FileCreate=new e(9),e.FileAppend=new e(10),e.FileUpdate=new e(11),e.FileDelete=new e(12),e.CryptoGetAccountBalance=new e(13),e.CryptoGetAccountRecords=new e(14),e.CryptoGetInfo=new e(15),e.ContractCallLocal=new e(16),e.ContractGetInfo=new e(17),e.ContractGetBytecode=new e(18),e.GetBySolidityID=new e(19),e.GetByKey=new e(20),e.CryptoGetLiveHash=new e(21),e.CryptoGetStakers=new e(22),e.FileGetContents=new e(23),e.FileGetInfo=new e(24),e.TransactionGetRecord=new e(25),e.ContractGetRecords=new e(26),e.CryptoCreate=new e(27),e.SystemDelete=new e(28),e.SystemUndelete=new e(29),e.ContractDelete=new e(30),e.Freeze=new e(31),e.CreateTransactionRecord=new e(32),e.CryptoAccountAutoRenew=new e(33),e.ContractAutoRenew=new e(34),e.GetVersionInfo=new e(35),e.TransactionGetReceipt=new e(36),e.ConsensusCreateTopic=new e(50),e.ConsensusUpdateTopic=new e(51),e.ConsensusDeleteTopic=new e(52),e.ConsensusGetTopicInfo=new e(53),e.ConsensusSubmitMessage=new e(54),e.UncheckedSubmit=new e(55),e.TokenCreate=new e(56),e.TokenGetInfo=new e(58),e.TokenFreezeAccount=new e(59),e.TokenUnfreezeAccount=new e(60),e.TokenGrantKycToAccount=new e(61),e.TokenRevokeKycFromAccount=new e(62),e.TokenDelete=new e(63),e.TokenUpdate=new e(64),e.TokenMint=new e(65),e.TokenBurn=new e(66),e.TokenAccountWipe=new e(67),e.TokenAssociateToAccount=new e(68),e.TokenDissociateFromAccount=new e(69),e.ScheduleCreate=new e(70),e.ScheduleDelete=new e(71),e.ScheduleSign=new e(72),e.ScheduleGetInfo=new e(73),e.TokenGetAccountNftInfos=new e(74),e.TokenGetNftInfo=new e(75),e.TokenGetNftInfos=new e(76),e.TokenFeeScheduleUpdate=new e(77),e.NetworkGetExecutionTime=new e(78),e.TokenPause=new e(79),e.TokenUnpause=new e(80),e.CryptoApproveAllowance=new e(81),e.CryptoDeleteAllowance=new e(82),e.GetAccountDetails=new e(83),e.EthereumTransaction=new e(84),e.NodeStakeUpdate=new e(85),e.Prng=new e(86),e.TransactionGetFastRecord=new e(87),e.TokenUpdateNfts=new e(88),e.NodeCreate=new e(89),e.NodeUpdate=new e(90),e.NodeDelete=new e(91),e.TokenReject=new e(92),e.TokenAirdrop=new e(93),e.TokenCancelAirdrop=new e(94),e.TokenClaimAirdrop=new e(95),e.TssMessage=new e(96),e.TssVote=new e(97),e.TssShareSignature=new e(98),e.TssEncryptionKey=new e(99),e.StateSignatureTransaction=new e(100),e.HintsKeyPublication=new e(101),e.HintsPreprocessingVote=new e(102),e.HintsPartialSignature=new e(103),e.HistoryAssemblySignature=new e(104),e.HistoryProofKeyPublication=new e(105),e.HistoryProofVote=new e(106),e.CrsPublication=new e(107),e.HistoryAssemblySignature=new e(104),e.HistoryProofKeyPublication=new e(105),e.HistoryProofVote=new e(106),e.AtomicBatch=new e(108);export{e as default};\n//# sourceMappingURL=RequestType.js.map\n","import e,{QUERY_REGISTRY as t}from\"../query/Query.js\";import i from\"./FileId.js\";class n extends e{constructor(e={}){super(),this._fileId=null,null!=e.fileId&&this.setFileId(e.fileId)}static _fromProtobuf(e){const t=e.fileGetContents;return new n({fileId:null!=t.fileID?i._fromProtobuf(t.fileID):void 0})}_validateChecksums(e){null!=this._fileId&&this._fileId.validateChecksum(e)}_execute(e,t){return e.file.getFileContent(t)}get fileId(){return this._fileId}setFileId(e){return this._fileId=\"string\"==typeof e?i.fromString(e):e.clone(),this}_mapResponseHeader(e){return e.fileGetContents.header}_mapResponse(e){const t=e.fileGetContents.fileContents.contents;return Promise.resolve(t)}_onMakeRequest(e){return{fileGetContents:{header:e,fileID:null!=this._fileId?this._fileId._toProtobuf():null}}}_getLogId(){return`FileContentsQuery:${(null!=this._paymentTransactionId&&null!=this._paymentTransactionId.validStart?this._paymentTransactionId.validStart:this._timestamp).toString()}`}}t.set(\"fileGetContents\",n._fromProtobuf);export{n as default};\n//# sourceMappingURL=FileContentsQuery.js.map\n","import e from\"./FileId.js\";import o from\"../Timestamp.js\";import t from\"long\";import i from\"../KeyList.js\";import s from\"../LedgerId.js\";import*as r from\"@hashgraph/proto\";const{proto:l}=r;class f{constructor(e){this.fileId=e.fileId,this.size=e.size,this.expirationTime=e.expirationTime,this.isDeleted=e.isDeleted,this.keys=e.keys,this.fileMemo=e.fileMemo,this.ledgerId=e.ledgerId,Object.freeze(this)}static _fromProtobuf(r){const l=r.size;return new f({fileId:e._fromProtobuf(r.fileID),size:l instanceof t?l:t.fromValue(l),expirationTime:o._fromProtobuf(r.expirationTime),isDeleted:r.deleted,keys:null!=r.keys?i.__fromProtobufKeyList(r.keys):new i,fileMemo:null!=r.memo?r.memo:\"\",ledgerId:null!=r.ledgerId?s.fromBytes(r.ledgerId):null})}_toProtobuf(){return{fileID:this.fileId._toProtobuf(),size:this.size,expirationTime:this.expirationTime._toProtobuf(),deleted:this.isDeleted,keys:this.keys._toProtobufKey().keyList,memo:this.fileMemo,ledgerId:null!=this.ledgerId?this.ledgerId.toBytes():null}}static fromBytes(e){return f._fromProtobuf(r.proto.FileGetInfoResponse.FileInfo.decode(e))}toBytes(){return l.FileGetInfoResponse.FileInfo.encode(this._toProtobuf()).finish()}}export{f as default};\n//# sourceMappingURL=FileInfo.js.map\n","import e,{QUERY_REGISTRY as t}from\"../query/Query.js\";import i from\"./FileId.js\";import r from\"./FileInfo.js\";import\"bignumber.js\";import\"../HbarUnit.js\";import\"long\";class o extends e{constructor(e={}){super(),this._fileId=null,null!=e.fileId&&this.setFileId(e.fileId)}static _fromProtobuf(e){const t=e.fileGetInfo;return new o({fileId:null!=t.fileID?i._fromProtobuf(t.fileID):void 0})}get fileId(){return this._fileId}setFileId(e){return this._fileId=\"string\"==typeof e?i.fromString(e):e.clone(),this}async getCost(e){return super.getCost(e)}_validateChecksums(e){null!=this._fileId&&this._fileId.validateChecksum(e)}_execute(e,t){return e.file.getFileInfo(t)}_mapResponseHeader(e){return e.fileGetInfo.header}_mapResponse(e,t,i){const o=e.fileGetInfo;return Promise.resolve(r._fromProtobuf(o.fileInfo))}_onMakeRequest(e){return{fileGetInfo:{header:e,fileID:null!=this._fileId?this._fileId._toProtobuf():null}}}_getLogId(){return`FileInfoQuery:${(null!=this._paymentTransactionId&&null!=this._paymentTransactionId.validStart?this._paymentTransactionId.validStart:this._timestamp).toString()}`}}t.set(\"fileGetInfo\",o._fromProtobuf);export{o as default};\n//# sourceMappingURL=FileInfoQuery.js.map\n","import e,{TRANSACTION_REGISTRY as t}from\"../transaction/Transaction.js\";import i from\"../Timestamp.js\";import{encode as o}from\"../encoding/utf8.js\";import n from\"./FileId.js\";import s from\"../Key.js\";import r from\"../KeyList.js\";class l extends e{constructor(e={}){super(),this._fileId=null,this._keys=null,this._expirationTime=null,this._contents=null,this._fileMemo=null,null!=e.fileId&&this.setFileId(e.fileId),null!=e.keys&&this.setKeys(e.keys),null!=e.expirationTime&&this.setExpirationTime(e.expirationTime),null!=e.contents&&this.setContents(e.contents),e.fileMemo&&null!=e.fileMemo&&this.setFileMemo(e.fileMemo)}static _fromProtobuf(t,o,r,u,a){const m=a[0].fileUpdate;return e._fromProtobufTransactions(new l({fileId:null!=m.fileID?n._fromProtobuf(m.fileID):void 0,keys:null!=m.keys&&null!=m.keys.keys?m.keys.keys.map((e=>s._fromProtobufKey(e))):void 0,expirationTime:null!=m.expirationTime?i._fromProtobuf(m.expirationTime):void 0,contents:null!=m.contents?m.contents:void 0,fileMemo:null!=m.memo&&Object.hasOwn(m.memo,\"value\")?m.memo.value:void 0}),t,o,r,u,a)}get fileId(){return this._fileId}setFileId(e){return this._requireNotFrozen(),this._fileId=\"string\"==typeof e?n.fromString(e):e.clone(),this}get keys(){return this._keys}setKeys(e){if(this._requireNotFrozen(),e instanceof r&&null!=e.threshold)throw new Error(\"Cannot set threshold key as file key\");return this._keys=e instanceof r?e.toArray():e,this}get expirationTime(){return this._expirationTime}setExpirationTime(e){return this._requireNotFrozen(),this._expirationTime=e instanceof i?e:i.fromDate(e),this}get contents(){return this._contents}setContents(e){return this._requireNotFrozen(),this._contents=e instanceof Uint8Array?e:o(e),this}get fileMemo(){return this._fileMemo}setFileMemo(e){return this._requireNotFrozen(),this._fileMemo=e,this}clearFileMemo(){return this._requireNotFrozen(),this._fileMemo=null,this}_validateChecksums(e){null!=this._fileId&&this._fileId.validateChecksum(e)}_execute(e,t){return e.file.updateFile(t)}_getTransactionDataCase(){return\"fileUpdate\"}_makeTransactionData(){return{fileID:null!=this._fileId?this._fileId._toProtobuf():null,keys:null!=this._keys?{keys:this._keys.map((e=>e._toProtobufKey()))}:null,expirationTime:null!=this._expirationTime?this._expirationTime._toProtobuf():null,contents:this._contents,memo:null!=this._fileMemo?{value:this._fileMemo}:null}}_getLogId(){return`FileUpdateTransaction:${this._transactionIds.current.validStart.toString()}`}}t.set(\"fileUpdate\",l._fromProtobuf);export{l as default};\n//# sourceMappingURL=FileUpdateTransaction.js.map\n","import t,{TRANSACTION_REGISTRY as s}from\"../transaction/Transaction.js\";import o from\"./AccountId.js\";import r from\"../Duration.js\";import n from\"../Key.js\";import e from\"../KeyList.js\";class i extends t{constructor(t={}){super(),this._hash=null,this._keys=null,this._duration=null,this._accountId=null,null!=t.hash&&this.setHash(t.hash),null!=t.keys&&this.setKeys(t.keys),null!=t.duration&&this.setDuration(t.duration),null!=t.accountId&&this.setAccountId(t.accountId)}static _fromProtobuf(s,r,e,a,u){const h=u[0].cryptoAddLiveHash.liveHash;return t._fromProtobufTransactions(new i({hash:null!=h.hash?h.hash:void 0,keys:null!=h.keys&&null!=h.keys.keys?h.keys.keys.map((t=>n._fromProtobufKey(t))):void 0,duration:null!=h.duration&&null!=h.duration.seconds?h.duration.seconds:void 0,accountId:null!=h.accountId?o._fromProtobuf(h.accountId):void 0}),s,r,e,a,u)}get hash(){return this._hash}setHash(t){return this._requireNotFrozen(),this._hash=t,this}get keys(){return this._keys}setKeys(t){return this._requireNotFrozen(),this._keys=t instanceof e?t.toArray():t,this}get duration(){return this._duration}setDuration(t){return this._requireNotFrozen(),this._duration=t instanceof r?t:new r(t),this}get accountId(){return this._accountId}setAccountId(t){return this._requireNotFrozen(),this._accountId=\"string\"==typeof t?o.fromString(t):t.clone(),this}_validateChecksums(t){null!=this._accountId&&this._accountId.validateChecksum(t)}_execute(t,s){return t.crypto.addLiveHash(s)}_getTransactionDataCase(){return\"cryptoAddLiveHash\"}_makeTransactionData(){return{liveHash:{hash:this._hash,keys:null!=this._keys?{keys:this._keys.map((t=>t._toProtobufKey()))}:void 0,duration:null!=this._duration?this._duration._toProtobuf():null,accountId:null!=this._accountId?this._accountId._toProtobuf():null}}}_getLogId(){return`LiveHashAddTransaction:${this._transactionIds.current.validStart.toString()}`}}s.set(\"cryptoAddLiveHash\",i._fromProtobuf);export{i as default};\n//# sourceMappingURL=LiveHashAddTransaction.js.map\n","import t,{TRANSACTION_REGISTRY as e}from\"../transaction/Transaction.js\";import s from\"./AccountId.js\";class a extends t{constructor(t={}){super(),this._hash=null,this._accountId=null,null!=t.hash&&this.setHash(t.hash),null!=t.accountId&&this.setAccountId(t.accountId)}static _fromProtobuf(e,o,n,r,c){const h=c[0].cryptoDeleteLiveHash;return t._fromProtobufTransactions(new a({hash:null!=h.liveHashToDelete?h.liveHashToDelete:void 0,accountId:null!=h.accountOfLiveHash?s._fromProtobuf(h.accountOfLiveHash):void 0}),e,o,n,r,c)}get hash(){return this._hash}setHash(t){return this._requireNotFrozen(),this._hash=t,this}get accountId(){return this._accountId}setAccountId(t){return this._requireNotFrozen(),this._accountId=\"string\"==typeof t?s.fromString(t):t.clone(),this}_validateChecksums(t){null!=this._accountId&&this._accountId.validateChecksum(t)}_execute(t,e){return t.crypto.deleteLiveHash(e)}_getTransactionDataCase(){return\"cryptoDeleteLiveHash\"}_makeTransactionData(){return{liveHashToDelete:this._hash,accountOfLiveHash:null!=this._accountId?this._accountId._toProtobuf():null}}_getLogId(){return`LiveHashDeleteTransaction:${this._transactionIds.current.validStart.toString()}`}}e.set(\"cryptoDeleteLiveHash\",a._fromProtobuf);export{a as default};\n//# sourceMappingURL=LiveHashDeleteTransaction.js.map\n","import t,{QUERY_REGISTRY as s}from\"../query/Query.js\";import e from\"./AccountId.js\";import a from\"./LiveHash.js\";class o extends t{constructor(t={}){super(),this._accountId=null,null!=t.accountId&&this.setAccountId(t.accountId),this._hash=null,null!=t.hash&&this.setHash(t.hash)}static _fromProtobuf(t){const s=t.cryptoGetLiveHash;return new o({accountId:null!=s.accountID?e._fromProtobuf(s.accountID):void 0,hash:null!=s.hash?s.hash:void 0})}get accountId(){return this._accountId}setAccountId(t){return this._accountId=t instanceof e?t:e.fromString(t),this}get liveHash(){return this._hash}setHash(t){return this._hash=t,this}_validateChecksums(t){null!=this._accountId&&this._accountId.validateChecksum(t)}_execute(t,s){return t.crypto.getLiveHash(s)}_mapResponseHeader(t){return t.cryptoGetLiveHash.header}_mapResponse(t){const s=t.cryptoGetLiveHash;return Promise.resolve(a._fromProtobuf(s.liveHash))}_onMakeRequest(t){return{cryptoGetLiveHash:{header:t,accountID:null!=this._accountId?this._accountId._toProtobuf():null,hash:this._hash}}}_getLogId(){return`LiveHashQuery:${(null!=this._paymentTransactionId&&null!=this._paymentTransactionId.validStart?this._paymentTransactionId.validStart:this._timestamp).toString()}`}}s.set(\"cryptoGetLiveHash\",o._fromProtobuf);export{o as default};\n//# sourceMappingURL=LiveHashQuery.js.map\n","import*as t from\"@hashgraph/proto\";class o{constructor(t){this.major=t.major,this.minor=t.minor,this.patch=t.patch,Object.freeze(this)}static _fromProtobuf(t){return new o({major:t.major,minor:t.minor,patch:t.patch})}_toProtobuf(){return{major:this.major,minor:this.minor,patch:this.patch}}static fromBytes(r){return o._fromProtobuf(t.proto.SemanticVersion.decode(r))}toBytes(){return t.proto.SemanticVersion.encode(this._toProtobuf()).finish()}}export{o as default};\n//# sourceMappingURL=SemanticVersion.js.map\n","import o from\"./SemanticVersion.js\";import*as r from\"@hashgraph/proto\";class e{constructor(o){this.protobufVersion=o.protobufVersion,this.servicesVersion=o.servicesVersion,Object.freeze(this)}static _fromProtobuf(r){return new e({protobufVersion:o._fromProtobuf(r.hapiProtoVersion),servicesVersion:o._fromProtobuf(r.hederaServicesVersion)})}_toProtobuf(){return{hapiProtoVersion:this.protobufVersion._toProtobuf(),hederaServicesVersion:this.servicesVersion._toProtobuf()}}static fromBytes(o){return e._fromProtobuf(r.proto.NetworkGetVersionInfoResponse.decode(o))}toBytes(){return r.proto.NetworkGetVersionInfoResponse.encode(this._toProtobuf()).finish()}}export{e as default};\n//# sourceMappingURL=NetworkVersionInfo.js.map\n","import e,{QUERY_REGISTRY as r}from\"../query/Query.js\";import t from\"./NetworkVersionInfo.js\";class o extends e{constructor(){super()}static _fromProtobuf(e){return new o}_execute(e,r){return e.network.getVersionInfo(r)}_mapResponseHeader(e){return e.networkGetVersionInfo.header}_mapResponse(e){const r=e.networkGetVersionInfo;return Promise.resolve(t._fromProtobuf(r))}_onMakeRequest(e){return{networkGetVersionInfo:{header:e}}}_getLogId(){return`NetworkVersionInfoQuery:${(null!=this._paymentTransactionId&&null!=this._paymentTransactionId.validStart?this._paymentTransactionId.validStart:this._timestamp).toString()}`}}r.set(\"networkGetVersionInfo\",o._fromProtobuf);export{o as default};\n//# sourceMappingURL=NetworkVersionInfoQuery.js.map\n","import t,{TRANSACTION_REGISTRY as r}from\"./transaction/Transaction.js\";import{isNumber as n}from\"./util.js\";class e extends t{constructor(t={}){super(),this._range=null,null!=t.range&&this.setRange(t.range)}setRange(t){return this._range=t,this}get range(){return this._range}_validateChecksums(t){null!=this._range&&n(this._range)&&this._validateChecksums(t)}_execute(t,r){return t.util.prng(r)}static _fromProtobuf(r,n,a,s,i){const o=i[0].utilPrng;return t._fromProtobufTransactions(new e({range:o.range}),r,n,a,s,i)}_getTransactionDataCase(){return\"utilPrng\"}_makeTransactionData(){return{range:this.range}}_getLogId(){return`RandomGenerate:${this._transactionIds.current.validStart.toString()}`}}r.set(\"utilPrng\",e._fromProtobuf);export{e as default};\n//# sourceMappingURL=PrngTransaction.js.map\n","import e from\"../Timestamp.js\";import t from\"../account/AccountId.js\";import i,{TRANSACTION_REGISTRY as r,SCHEDULE_CREATE_TRANSACTION as n}from\"../transaction/Transaction.js\";import o from\"../Key.js\";import s from\"../Hbar.js\";import*as a from\"@hashgraph/proto\";class u extends i{constructor(e={}){super(),this._adminKey=null,this._scheduledTransaction=null,this._payerAccountId=null,this._scheduleMemo=null,this._scheduledSignerPublicKeys=new Set,this._expirationTime=null,this._waitForExpiry=null,null!=e.adminKey&&this.setAdminKey(e.adminKey),null!=e.payerAccountID&&this.setPayerAccountId(e.payerAccountID),null!=e.scheduleMemo&&this.setScheduleMemo(e.scheduleMemo),this._defaultMaxTransactionFee=new s(5)}static _fromProtobuf(r,n,s,c,d){const h=d[0],l=h.scheduleCreate,m=new u({adminKey:null!=l.adminKey?o._fromProtobufKey(l.adminKey):void 0,payerAccountID:null!=l.payerAccountID?t._fromProtobuf(l.payerAccountID):void 0,scheduleMemo:null!=l.memo?l.memo:void 0,waitForExpiry:null!=l.waitForExpiry?l.waitForExpiry:void 0,expirationTime:null!=l.expirationTime?e._fromProtobuf(l.expirationTime):void 0});if(null!=h.scheduleCreate){const e=h.scheduleCreate.scheduledTransactionBody,t=a.proto.TransactionBody.encode(e).finish(),r={signedTransactionBytes:a.proto.SignedTransaction.encode({bodyBytes:t}).finish()},n=a.proto.TransactionList.encode({transactionList:[r]}).finish(),o=i.fromBytes(n);m._setScheduledTransaction(o)}return i._fromProtobufTransactions(m,r,n,s,c,d)}_setScheduledTransaction(e){return this._scheduledTransaction=e,this}get adminKey(){return this._adminKey}setAdminKey(e){return this._requireNotFrozen(),this._adminKey=e,this}get payerAccountId(){return this._payerAccountId}setPayerAccountId(e){return this._requireNotFrozen(),this._payerAccountId=e,this}setScheduleMemo(e){return this._requireNotFrozen(),this._scheduleMemo=e,this}get getScheduleMemo(){return this._requireNotFrozen(),this._scheduleMemo}setScheduledTransaction(e){return this._requireNotFrozen(),e._requireNotFrozen(),this._scheduledTransaction=e.schedule()._scheduledTransaction,this}_validateChecksums(e){null!=this._payerAccountId&&this._payerAccountId.validateChecksum(e)}_execute(e,t){return e.schedule.createSchedule(t)}_getTransactionDataCase(){return\"scheduleCreate\"}_makeTransactionData(){return{adminKey:null!=this._adminKey?this._adminKey._toProtobufKey():null,payerAccountID:null!=this._payerAccountId?this._payerAccountId._toProtobuf():null,scheduledTransactionBody:null!=this._scheduledTransaction?this._scheduledTransaction._getScheduledTransactionBody():null,memo:this._scheduleMemo,waitForExpiry:this._waitForExpiry,expirationTime:null!=this._expirationTime?this._expirationTime._toProtobuf():null}}_getLogId(){return`ScheduleCreateTransaction:${this._transactionIds.current.validStart.toString()}`}setExpirationTime(e){return this._expirationTime=e,this}get expirationTime(){return this._requireNotFrozen(),this._expirationTime}setWaitForExpiry(e){return this._waitForExpiry=e,this}get waitForExpiry(){return this._requireNotFrozen(),this._waitForExpiry}}r.set(\"scheduleCreate\",u._fromProtobuf),n.push((()=>new u));export{u as default};\n//# sourceMappingURL=ScheduleCreateTransaction.js.map\n","import e from\"./ScheduleId.js\";import t,{TRANSACTION_REGISTRY as s}from\"../transaction/Transaction.js\";import r from\"../Hbar.js\";class u extends t{constructor(e={}){super(),this._scheduleId=null,null!=e.scheduleId&&this.setScheduleId(e.scheduleId),this._defaultMaxTransactionFee=new r(5)}static _fromProtobuf(s,r,d,l,c){const o=c[0].scheduleDelete;return t._fromProtobufTransactions(new u({scheduleId:null!=o.scheduleID?e._fromProtobuf(o.scheduleID):void 0}),s,r,d,l,c)}get scheduleId(){return this._scheduleId}setScheduleId(t){return this._requireNotFrozen(),this._scheduleId=\"string\"==typeof t?e.fromString(t):t.clone(),this}_validateChecksums(e){null!=this._scheduleId&&this._scheduleId.validateChecksum(e)}_execute(e,t){return e.schedule.deleteSchedule(t)}_getTransactionDataCase(){return\"scheduleDelete\"}_makeTransactionData(){return{scheduleID:null!=this._scheduleId?this._scheduleId._toProtobuf():null}}_getLogId(){return`ScheduleDeleteTransaction:${this._transactionIds.current.validStart.toString()}`}}s.set(\"scheduleDelete\",u._fromProtobuf);export{u as default};\n//# sourceMappingURL=ScheduleDeleteTransaction.js.map\n","import e from\"./ScheduleId.js\";import o from\"../account/AccountId.js\";import t from\"../Timestamp.js\";import n from\"../transaction/Transaction.js\";import*as i from\"@hashgraph/proto\";import r from\"../transaction/TransactionId.js\";import s from\"../Key.js\";import l from\"../KeyList.js\";const{proto:a}=i;class c{constructor(e){this.scheduleId=e.scheduleId,this.creatorAccountId=e.creatorAccountID,this.payerAccountId=e.payerAccountID,this.schedulableTransactionBody=e.schedulableTransactionBody,this.signers=e.signers,this.scheduleMemo=e.scheduleMemo,this.adminKey=null!=e.adminKey?e.adminKey:null,this.expirationTime=e.expirationTime,this.executed=e.executed,this.deleted=e.deleted,this.scheduledTransactionId=e.scheduledTransactionId,this.waitForExpiry=e.waitForExpiry,Object.freeze(this)}static _fromProtobuf(n){return new c({scheduleId:e._fromProtobuf(n.scheduleID),creatorAccountID:null!=n.creatorAccountID?o._fromProtobuf(n.creatorAccountID):null,payerAccountID:null!=n.payerAccountID?o._fromProtobuf(n.payerAccountID):null,schedulableTransactionBody:null!=n.scheduledTransactionBody?n.scheduledTransactionBody:null,adminKey:null!=n.adminKey?s._fromProtobufKey(n.adminKey):null,signers:null!=n.signers?l.__fromProtobufKeyList(n.signers):null,scheduleMemo:null!=n.memo?n.memo:null,expirationTime:null!=n.expirationTime?t._fromProtobuf(n.expirationTime):null,executed:null!=n.executionTime?t._fromProtobuf(n.executionTime):null,deleted:null!=n.deletionTime?t._fromProtobuf(n.deletionTime):null,scheduledTransactionId:null!=n.scheduledTransactionID?r._fromProtobuf(n.scheduledTransactionID):null,waitForExpiry:null!=n.waitForExpiry&&n.waitForExpiry})}_toProtobuf(){return{scheduleID:null!=this.scheduleId?this.scheduleId._toProtobuf():null,creatorAccountID:null!=this.creatorAccountId?this.creatorAccountId._toProtobuf():null,payerAccountID:null!=this.payerAccountId?this.payerAccountId._toProtobuf():null,scheduledTransactionBody:null!=this.schedulableTransactionBody?this.schedulableTransactionBody:null,adminKey:null!=this.adminKey?this.adminKey._toProtobufKey():null,signers:null!=this.signers?this.signers._toProtobufKey().keyList:null,memo:null!=this.scheduleMemo?this.scheduleMemo:\"\",expirationTime:null!=this.expirationTime?this.expirationTime._toProtobuf():null,scheduledTransactionID:null!=this.scheduledTransactionId?this.scheduledTransactionId._toProtobuf():null,waitForExpiry:this.waitForExpiry}}get scheduledTransaction(){if(null==this.schedulableTransactionBody)throw new Error(\"Scheduled transaction body is empty\");const e=new a.SchedulableTransactionBody(this.schedulableTransactionBody),o=e.data;return n.fromBytes(a.TransactionList.encode({transactionList:[{signedTransactionBytes:a.SignedTransaction.encode({bodyBytes:a.TransactionBody.encode({transactionFee:this.schedulableTransactionBody.transactionFee,memo:this.schedulableTransactionBody.memo,[o]:e[o]}).finish()}).finish()}]}).finish())}}export{c as default};\n//# sourceMappingURL=ScheduleInfo.js.map\n","import e,{QUERY_REGISTRY as t}from\"../query/Query.js\";import s from\"./ScheduleId.js\";import u from\"./ScheduleInfo.js\";import\"bignumber.js\";import\"../HbarUnit.js\";import\"long\";class r extends e{constructor(e={}){super(),this._scheduleId=null,null!=e.scheduleId&&this.setScheduleId(e.scheduleId)}static _fromProtobuf(e){const t=e.scheduleGetInfo;return new r({scheduleId:null!=t.scheduleID?s._fromProtobuf(t.scheduleID):void 0})}get scheduleId(){return this._scheduleId}setScheduleId(e){return this._scheduleId=\"string\"==typeof e?s.fromString(e):e.clone(),this}async getCost(e){return super.getCost(e)}_validateChecksums(e){null!=this._scheduleId&&this._scheduleId.validateChecksum(e)}_execute(e,t){return e.schedule.getScheduleInfo(t)}_mapResponseHeader(e){return e.scheduleGetInfo.header}_mapResponse(e,t,s){const r=e.scheduleGetInfo;return Promise.resolve(u._fromProtobuf(r.scheduleInfo))}_onMakeRequest(e){return{scheduleGetInfo:{header:e,scheduleID:null!=this._scheduleId?this._scheduleId._toProtobuf():null}}}_getLogId(){return`ScheduleInfoQuery:${(null!=this._paymentTransactionId&&null!=this._paymentTransactionId.validStart?this._paymentTransactionId.validStart:this._timestamp).toString()}`}}t.set(\"scheduleGetInfo\",r._fromProtobuf);export{r as default};\n//# sourceMappingURL=ScheduleInfoQuery.js.map\n","import e from\"./ScheduleId.js\";import t from\"../Hbar.js\";import s,{TRANSACTION_REGISTRY as r}from\"../transaction/Transaction.js\";class u extends s{constructor(e={}){super(),this._scheduleId=null,null!=e.scheduleId&&this.setScheduleId(e.scheduleId),this._defaultMaxTransactionFee=new t(5)}static _fromProtobuf(t,r,d,n,l){const c=l[0].scheduleSign;return s._fromProtobufTransactions(new u({scheduleId:null!=c.scheduleID?e._fromProtobuf(c.scheduleID):void 0}),t,r,d,n,l)}get scheduleId(){return this._scheduleId}setScheduleId(t){return this._requireNotFrozen(),this._scheduleId=\"string\"==typeof t?e.fromString(t):t.clone(),this}_validateChecksums(e){null!=this._scheduleId&&this._scheduleId.validateChecksum(e)}_execute(e,t){return e.schedule.signSchedule(t)}_getTransactionDataCase(){return\"scheduleSign\"}_makeTransactionData(){return{scheduleID:null!=this._scheduleId?this._scheduleId._toProtobuf():null}}_getLogId(){return`ScheduleSignTransaction:${this._transactionIds.current.validStart.toString()}`}}r.set(\"scheduleSign\",u._fromProtobuf);export{u as default};\n//# sourceMappingURL=ScheduleSignTransaction.js.map\n","import t,{TRANSACTION_REGISTRY as e}from\"../transaction/Transaction.js\";import i from\"../file/FileId.js\";import r from\"../contract/ContractId.js\";import o from\"../Timestamp.js\";class n extends t{constructor(t={}){super(),this._fileId=null,this._contractId=null,this._expirationTime=null,null!=t.fileId&&this.setFileId(t.fileId),null!=t.contractId&&this.setContractId(t.contractId),null!=t.expirationTime&&this.setExpirationTime(t.expirationTime)}static _fromProtobuf(e,s,a,l,c){const u=c[0].systemDelete;return t._fromProtobufTransactions(new n({fileId:null!=u.fileID?i._fromProtobuf(u.fileID):void 0,contractId:null!=u.contractID?r._fromProtobuf(u.contractID):void 0,expirationTime:null!=u.expirationTime?o._fromProtobuf(u.expirationTime):void 0}),e,s,a,l,c)}get fileId(){return this._fileId}setFileId(t){return this._requireNotFrozen(),this._fileId=t instanceof i?t:i.fromString(t),this}get contractId(){return this._contractId}setContractId(t){return this._requireNotFrozen(),this._contractId=t instanceof r?t:r.fromString(t),this}get expirationTime(){return this._expirationTime}setExpirationTime(t){return this._requireNotFrozen(),this._expirationTime=t,this}_execute(t,e){return null!=this._fileId?t.file.systemDelete(e):t.smartContract.systemDelete(e)}_getTransactionDataCase(){return\"systemDelete\"}_makeTransactionData(){return{fileID:null!=this._fileId?this._fileId._toProtobuf():null,contractID:null!=this._contractId?this._contractId._toProtobuf():null,expirationTime:null!=this._expirationTime?this._expirationTime._toProtobuf():null}}_getLogId(){return`SystemDeleteTransaction:${this._transactionIds.current.validStart.toString()}`}}e.set(\"systemDelete\",n._fromProtobuf);export{n as default};\n//# sourceMappingURL=SystemDeleteTransaction.js.map\n","import t,{TRANSACTION_REGISTRY as e}from\"../transaction/Transaction.js\";import r from\"../file/FileId.js\";import n from\"../contract/ContractId.js\";class o extends t{constructor(t={}){super(),this._fileId=null,this._contractId=null,null!=t.fileId&&this.setFileId(t.fileId),null!=t.contractId&&this.setContractId(t.contractId)}static _fromProtobuf(e,s,i,l,a){const c=a[0].systemUndelete;return t._fromProtobufTransactions(new o({fileId:null!=c.fileID?r._fromProtobuf(c.fileID):void 0,contractId:null!=c.contractID?n._fromProtobuf(c.contractID):void 0}),e,s,i,l,a)}get fileId(){return this._fileId}setFileId(t){return this._requireNotFrozen(),this._fileId=t instanceof r?t:r.fromString(t),this}get contractId(){return this._contractId}setContractId(t){return this._requireNotFrozen(),this._contractId=t instanceof n?t:n.fromString(t),this}_execute(t,e){return null!=this._fileId?t.file.systemUndelete(e):t.smartContract.systemUndelete(e)}_getTransactionDataCase(){return\"systemUndelete\"}_makeTransactionData(){return{fileID:null!=this._fileId?this._fileId._toProtobuf():null,contractID:null!=this._contractId?this._contractId._toProtobuf():null}}_getLogId(){return`SystemUndeleteTransaction:${this._transactionIds.current.validStart.toString()}`}}e.set(\"systemUndelete\",o._fromProtobuf);export{o as default};\n//# sourceMappingURL=SystemUndeleteTransaction.js.map\n","import t from\"../Hbar.js\";import o from\"./TokenId.js\";import n from\"../account/AccountId.js\";import s,{TRANSACTION_REGISTRY as e}from\"../transaction/Transaction.js\";class r extends s{constructor(o={}){super(),this._tokenIds=null,this._accountId=null,this._defaultMaxTransactionFee=new t(5),null!=o.tokenIds&&this.setTokenIds(o.tokenIds),null!=o.accountId&&this.setAccountId(o.accountId)}static _fromProtobuf(t,e,c,a,u){const i=u[0].tokenAssociate;return s._fromProtobufTransactions(new r({tokenIds:null!=i.tokens?i.tokens.map((t=>o._fromProtobuf(t))):void 0,accountId:null!=i.account?n._fromProtobuf(i.account):void 0}),t,e,c,a,u)}get tokenIds(){return this._tokenIds}setTokenIds(t){return this._requireNotFrozen(),this._tokenIds=t.map((t=>\"string\"==typeof t?o.fromString(t):t.clone())),this}get accountId(){return this._accountId}setAccountId(t){return this._requireNotFrozen(),this._accountId=\"string\"==typeof t?n.fromString(t):t.clone(),this}_validateChecksums(t){null!=this._accountId&&this._accountId.validateChecksum(t);for(const o of null!=this._tokenIds?this._tokenIds:[])null!=o&&o.validateChecksum(t)}_execute(t,o){return t.token.associateTokens(o)}_getTransactionDataCase(){return\"tokenAssociate\"}_makeTransactionData(){return{tokens:null!=this._tokenIds?this._tokenIds.map((t=>t._toProtobuf())):null,account:null!=this._accountId?this._accountId._toProtobuf():null}}_getLogId(){return`TokenAssociateTransaction:${this._transactionIds.current.validStart.toString()}`}}e.set(\"tokenAssociate\",r._fromProtobuf);export{r as default};\n//# sourceMappingURL=TokenAssociateTransaction.js.map\n","import t from\"./TokenId.js\";import n,{TRANSACTION_REGISTRY as e}from\"../transaction/Transaction.js\";import o from\"long\";class r extends n{constructor(t={}){super(),this._tokenId=null,this._amount=null,this._serials=[],null!=t.tokenId&&this.setTokenId(t.tokenId),null!=t.amount&&this.setAmount(t.amount),null!=t.serials&&this.setSerials(t.serials)}static _fromProtobuf(e,o,s,i,u){const a=u[0].tokenBurn;return n._fromProtobufTransactions(new r({tokenId:null!=a.token?t._fromProtobuf(a.token):void 0,amount:null!=a.amount?a.amount:void 0,serials:null!=a.serialNumbers?a.serialNumbers:void 0}),e,o,s,i,u)}get tokenId(){return this._tokenId}setTokenId(n){return this._requireNotFrozen(),this._tokenId=\"string\"==typeof n?t.fromString(n):n.clone(),this}get amount(){return this._amount}setAmount(t){return this._requireNotFrozen(),this._amount=t instanceof o?t:o.fromValue(t),this}_validateChecksums(t){null!=this._tokenId&&this._tokenId.validateChecksum(t)}get serials(){return this._serials}setSerials(t){return this._requireNotFrozen(),this._serials=t.map((t=>t instanceof o?t:o.fromValue(t))),this}_execute(t,n){return t.token.burnToken(n)}_getTransactionDataCase(){return\"tokenBurn\"}_makeTransactionData(){return{amount:this._amount,serialNumbers:this._serials,token:null!=this._tokenId?this._tokenId._toProtobuf():null}}_getLogId(){return`TokenBurnTransaction:${this._transactionIds.current.validStart.toString()}`}}e.set(\"tokenBurn\",r._fromProtobuf);export{r as default};\n//# sourceMappingURL=TokenBurnTransaction.js.map\n","import n from\"./NftId.js\";import o from\"./TokenId.js\";class t{constructor(){this.fungibleToken=null,this.nft=null}static _fromProtobuf(t){return{fungibleToken:null!=t.fungibleToken?o._fromProtobuf(t.fungibleToken):null,nft:null!=t.nft?n._fromProtobuf(t.nft):null}}}export{t as default};\n//# sourceMappingURL=TokenReference.js.map\n","import t from\"../account/AccountId.js\";import e,{TRANSACTION_REGISTRY as n}from\"../transaction/Transaction.js\";import r from\"./TokenReference.js\";class o extends e{constructor(t={}){super(),this._owner=null,null!=t.owner&&this.setOwnerId(t.owner),this._tokenIds=[],this._nftIds=[],null!=t.tokenIds&&this.setTokenIds(t.tokenIds),null!=t.nftIds&&this.setNftIds(t.nftIds)}static _fromProtobuf(n,s,i,u,f){const d=f[0].tokenReject,a=d.rejections?.map((t=>r._fromProtobuf(t))),h=a?.filter((t=>t.fungibleToken)).map((({fungibleToken:t})=>{if(null==t)throw new Error(\"Fungible Token cannot be null\");return t})),c=a?.filter((t=>t.nft)).map((({nft:t})=>{if(null==t)throw new Error(\"Nft cannot be null\");return t}));return e._fromProtobufTransactions(new o({owner:null!=d.owner?t._fromProtobuf(d.owner):void 0,tokenIds:h,nftIds:c}),n,s,i,u,f)}get tokenIds(){return this._tokenIds}setTokenIds(t){return this._requireNotFrozen(),this._tokenIds=t,this}addTokenId(t){return this._requireNotFrozen(),this._tokenIds?.push(t),this}get nftIds(){return this._nftIds}setNftIds(t){return this._requireNotFrozen(),this._nftIds=t,this}addNftId(t){return this._requireNotFrozen(),this._nftIds?.push(t),this}get ownerId(){return this._owner}setOwnerId(t){return this._requireNotFrozen(),this._owner=t,this}_execute(t,e){return t.token.rejectToken(e)}_getTransactionDataCase(){return\"tokenReject\"}_makeTransactionData(){const t=[];for(const e of this._tokenIds)t.push({fungibleToken:e._toProtobuf()});for(const e of this._nftIds)t.push({nft:e._toProtobuf()});return{owner:this.ownerId?._toProtobuf()??null,rejections:t}}_getLogId(){return`TokenRejectTransaction:${this._transactionIds.current.validStart.toString()}`}}n.set(\"tokenReject\",o._fromProtobuf);export{o as default};\n//# sourceMappingURL=TokenRejectTransaction.js.map\n","import t from\"../Hbar.js\";import o from\"./TokenId.js\";import n from\"../account/AccountId.js\";import s,{TRANSACTION_REGISTRY as e}from\"../transaction/Transaction.js\";class r extends s{constructor(o={}){super(),this._tokenIds=null,this._accountId=null,this._defaultMaxTransactionFee=new t(5),null!=o.tokenIds&&this.setTokenIds(o.tokenIds),null!=o.accountId&&this.setAccountId(o.accountId)}static _fromProtobuf(t,e,c,a,i){const u=i[0].tokenDissociate;return s._fromProtobufTransactions(new r({tokenIds:null!=u.tokens?u.tokens.map((t=>o._fromProtobuf(t))):void 0,accountId:null!=u.account?n._fromProtobuf(u.account):void 0}),t,e,c,a,i)}get tokenIds(){return this._tokenIds}setTokenIds(t){return this._requireNotFrozen(),this._tokenIds=t.map((t=>\"string\"==typeof t?o.fromString(t):t.clone())),this}get accountId(){return this._accountId}setAccountId(t){return this._requireNotFrozen(),this._accountId=\"string\"==typeof t?n.fromString(t):t.clone(),this}_validateChecksums(t){null!=this._accountId&&this._accountId.validateChecksum(t);for(const o of null!=this._tokenIds?this._tokenIds:[])null!=o&&o.validateChecksum(t)}_execute(t,o){return t.token.dissociateTokens(o)}_getTransactionDataCase(){return\"tokenDissociate\"}_makeTransactionData(){return{tokens:null!=this._tokenIds?this._tokenIds.map((t=>t._toProtobuf())):null,account:null!=this._accountId?this._accountId._toProtobuf():null}}_getLogId(){return`TokenDissociateTransaction:${this._transactionIds.current.validStart.toString()}`}}e.set(\"tokenDissociate\",r._fromProtobuf);export{r as default};\n//# sourceMappingURL=TokenDissociateTransaction.js.map\n","import t from\"./CustomFee.js\";import e from\"../account/AccountId.js\";import o from\"./FeeAssessmentMethod.js\";import n from\"long\";class r extends t{constructor(t={}){super(t),this._numerator=null,null!=t.numerator&&this.setNumerator(t.numerator),this._denominator=null,null!=t.denominator&&this.setDenominator(t.denominator),this._min=null,null!=t.min&&this.setMin(t.min),this._max,null!=t.max&&this.setMax(t.max),this._assessmentMethod,null!=t.assessmentMethod&&this.setAssessmentMethod(t.assessmentMethod)}get numerator(){return this._numerator}setNumerator(t){return this._numerator=\"number\"==typeof t?n.fromNumber(t):t,this}get denominator(){return this._denominator}setDenominator(t){return this._denominator=\"number\"==typeof t?n.fromNumber(t):t,this}get min(){return this._min}setMin(t){return this._min=\"number\"==typeof t?n.fromNumber(t):t,this}get max(){return this._max}setMax(t){return this._max=\"number\"==typeof t?n.fromNumber(t):t,this}get assessmentMethod(){return this._assessmentMethod}setAssessmentMethod(t){return this._assessmentMethod=t,this}static _fromProtobuf(t){const n=t.fractionalFee,s=n.fractionalAmount;return new r({feeCollectorAccountId:null!=t.feeCollectorAccountId?e._fromProtobuf(t.feeCollectorAccountId):void 0,allCollectorsAreExempt:null!=t.allCollectorsAreExempt?t.allCollectorsAreExempt:void 0,numerator:null!=s.numerator?s.numerator:void 0,denominator:null!=s.denominator?s.denominator:void 0,min:null!=n.minimumAmount?n.minimumAmount:void 0,max:null!=n.maximumAmount?n.maximumAmount:void 0,assessmentMethod:null!=n.netOfTransfers?new o(n.netOfTransfers):void 0})}_toProtobuf(){return{feeCollectorAccountId:null!=this.feeCollectorAccountId?this.feeCollectorAccountId._toProtobuf():null,allCollectorsAreExempt:this.allCollectorsAreExempt,fractionalFee:{fractionalAmount:{numerator:this._numerator,denominator:this._denominator},minimumAmount:this._min,maximumAmount:this._max,netOfTransfers:null!=this._assessmentMethod&&this._assessmentMethod.valueOf()}}}}export{r as default};\n//# sourceMappingURL=CustomFractionalFee.js.map\n","import e from\"./CustomFee.js\";import t from\"../account/AccountId.js\";import o from\"long\";import r from\"./CustomFixedFee.js\";class l extends e{constructor(e={}){super(e),this._fallbackFee=null,null!=e.fallbackFee&&this.setFallbackFee(e.fallbackFee),this._numerator=null,null!=e.numerator&&this.setNumerator(e.numerator),this._denominator=null,null!=e.denominator&&this.setDenominator(e.denominator)}get fallbackFee(){return this._fallbackFee}setFallbackFee(e){return this._fallbackFee=e,this}get numerator(){return this._numerator}setNumerator(e){return this._numerator=\"number\"==typeof e?o.fromNumber(e):e,this}get denominator(){return this._denominator}setDenominator(e){return this._denominator=\"number\"==typeof e?o.fromNumber(e):e,this}static _fromProtobuf(e){const o=e.royaltyFee,n=o.exchangeValueFraction;return new l({feeCollectorAccountId:null!=e.feeCollectorAccountId?t._fromProtobuf(e.feeCollectorAccountId):void 0,allCollectorsAreExempt:null!=e.allCollectorsAreExempt?e.allCollectorsAreExempt:void 0,fallbackFee:null!=o.fallbackFee?r._fromProtobuf({fixedFee:o.fallbackFee}):void 0,numerator:null!=n.numerator?n.numerator:void 0,denominator:null!=n.denominator?n.denominator:void 0})}_toProtobuf(){return{feeCollectorAccountId:null!=this.feeCollectorAccountId?this.feeCollectorAccountId._toProtobuf():null,allCollectorsAreExempt:this.allCollectorsAreExempt,royaltyFee:{exchangeValueFraction:{numerator:this._numerator,denominator:this._denominator},fallbackFee:null!=this._fallbackFee?this._fallbackFee._toProtobuf().fixedFee:null}}}}export{l as default};\n//# sourceMappingURL=CustomRoyaltyFee.js.map\n","class e{constructor(e){this._code=e,Object.freeze(this)}toString(){switch(this){case e.FungibleCommon:return\"FUNGIBLE_COMMON\";case e.NonFungibleUnique:return\"NON_FUNGIBLE_UNIQUE\";default:return`UNKNOWN (${this._code})`}}static _fromCode(n){switch(n){case 0:return e.FungibleCommon;case 1:return e.NonFungibleUnique}throw new Error(`(BUG) TokenType.fromCode() does not handle code: ${n}`)}valueOf(){return this._code}}e.FungibleCommon=new e(0),e.NonFungibleUnique=new e(1);export{e as default};\n//# sourceMappingURL=TokenType.js.map\n","class e{constructor(e){this._code=e,Object.freeze(this)}toString(){switch(this){case e.Infinite:return\"INFINITE\";case e.Finite:return\"FINITE\";default:return`UNKNOWN (${this._code})`}}static _fromCode(t){switch(t){case 0:return e.Infinite;case 1:return e.Finite}throw new Error(`(BUG) TokenSupplyType.fromCode() does not handle code: ${t}`)}valueOf(){return this._code}}e.Infinite=new e(0),e.Finite=new e(1);export{e as default};\n//# sourceMappingURL=TokenSupplyType.js.map\n","import e from\"../Hbar.js\";import t,{TRANSACTION_REGISTRY as o,DEFAULT_AUTO_RENEW_PERIOD as u}from\"../transaction/Transaction.js\";import i from\"long\";import n from\"../account/AccountId.js\";import s from\"../Timestamp.js\";import r from\"../Duration.js\";import l from\"./CustomFixedFee.js\";import a from\"./CustomFractionalFee.js\";import y from\"./CustomRoyaltyFee.js\";import h from\"./TokenType.js\";import p from\"./TokenSupplyType.js\";import m from\"../Key.js\";class _ extends t{constructor(t={}){super(),this._tokenName=null,this._tokenSymbol=null,this._decimals=null,this._initialSupply=null,this._treasuryAccountId=null,this._adminKey=null,this._kycKey=null,this._freezeKey=null,this._pauseKey=null,this._wipeKey=null,this._supplyKey=null,this._feeScheduleKey=null,this._freezeDefault=null,this._autoRenewAccountId=null,this._expirationTime=new s(Math.floor(Date.now()/1e3+u.toNumber()),0),this._autoRenewPeriod=new r(u),this._tokenMemo=null,this._customFees=[],this._tokenType=null,this._supplyType=null,this._maxSupply=null,this._defaultMaxTransactionFee=new e(30),this._metadataKey=null,this._metadata=null,null!=t.tokenName&&this.setTokenName(t.tokenName),null!=t.tokenSymbol&&this.setTokenSymbol(t.tokenSymbol),null!=t.decimals&&this.setDecimals(t.decimals),null!=t.initialSupply&&this.setInitialSupply(t.initialSupply),null!=t.treasuryAccountId&&this.setTreasuryAccountId(t.treasuryAccountId),null!=t.adminKey&&this.setAdminKey(t.adminKey),null!=t.kycKey&&this.setKycKey(t.kycKey),null!=t.freezeKey&&this.setFreezeKey(t.freezeKey),null!=t.pauseKey&&this.setPauseKey(t.pauseKey),null!=t.wipeKey&&this.setWipeKey(t.wipeKey),null!=t.supplyKey&&this.setSupplyKey(t.supplyKey),null!=t.feeScheduleKey&&this.setFeeScheduleKey(t.feeScheduleKey),null!=t.freezeDefault&&this.setFreezeDefault(t.freezeDefault),null!=t.autoRenewAccountId&&this.setAutoRenewAccountId(t.autoRenewAccountId),null!=t.expirationTime&&this.setExpirationTime(t.expirationTime),null!=t.autoRenewPeriod&&this.setAutoRenewPeriod(t.autoRenewPeriod),null!=t.tokenMemo&&this.setTokenMemo(t.tokenMemo),null!=t.customFees&&this.setCustomFees(t.customFees),null!=t.tokenType&&this.setTokenType(t.tokenType),null!=t.supplyType&&this.setSupplyType(t.supplyType),null!=t.maxSupply&&this.setMaxSupply(t.maxSupply),null!=t.metadataKey&&this.setMetadataKey(t.metadataKey),null!=t.metadata&&this.setMetadata(t.metadata)}static _fromProtobuf(e,o,u,i,c){const d=c[0].tokenCreation;return t._fromProtobufTransactions(new _({tokenName:null!=d.name?d.name:void 0,tokenSymbol:null!=d.symbol?d.symbol:void 0,decimals:null!=d.decimals?d.decimals:void 0,initialSupply:null!=d.initialSupply?d.initialSupply:void 0,treasuryAccountId:null!=d.treasury?n._fromProtobuf(d.treasury):void 0,adminKey:null!=d.adminKey?m._fromProtobufKey(d.adminKey):void 0,kycKey:null!=d.kycKey?m._fromProtobufKey(d.kycKey):void 0,freezeKey:null!=d.freezeKey?m._fromProtobufKey(d.freezeKey):void 0,pauseKey:null!=d.pauseKey?m._fromProtobufKey(d.pauseKey):void 0,wipeKey:null!=d.wipeKey?m._fromProtobufKey(d.wipeKey):void 0,supplyKey:null!=d.supplyKey?m._fromProtobufKey(d.supplyKey):void 0,feeScheduleKey:null!=d.feeScheduleKey?m._fromProtobufKey(d.feeScheduleKey):void 0,freezeDefault:null!=d.freezeDefault?d.freezeDefault:void 0,autoRenewAccountId:null!=d.autoRenewAccount?n._fromProtobuf(d.autoRenewAccount):void 0,expirationTime:null!=d.expiry?s._fromProtobuf(d.expiry):void 0,autoRenewPeriod:null!=d.autoRenewPeriod?r._fromProtobuf(d.autoRenewPeriod):void 0,tokenMemo:null!=d.memo?d.memo:void 0,customFees:null!=d.customFees?d.customFees.map((e=>null!=e.fixedFee?l._fromProtobuf(e):null!=e.fractionalFee?a._fromProtobuf(e):y._fromProtobuf(e))):void 0,tokenType:null!=d.tokenType?h._fromCode(d.tokenType):void 0,supplyType:null!=d.supplyType?p._fromCode(d.supplyType):void 0,maxSupply:null!=d.maxSupply?d.maxSupply:void 0,metadataKey:null!=d.metadataKey?m._fromProtobufKey(d.metadataKey):void 0,metadata:null!=d.metadata?d.metadata:void 0}),e,o,u,i,c)}get tokenName(){return this._tokenName}setTokenName(e){return this._requireNotFrozen(),this._tokenName=e,this}get tokenSymbol(){return this._tokenSymbol}setTokenSymbol(e){return this._requireNotFrozen(),this._tokenSymbol=e,this}get decimals(){return this._decimals}setDecimals(e){return this._requireNotFrozen(),this._decimals=e instanceof i?e:i.fromValue(e),this}get initialSupply(){return this._initialSupply}setInitialSupply(e){return this._requireNotFrozen(),this._initialSupply=i.fromValue(e),this}get treasuryAccountId(){return this._treasuryAccountId}setTreasuryAccountId(e){return this._requireNotFrozen(),this._treasuryAccountId=\"string\"==typeof e?n.fromString(e):e.clone(),this}get adminKey(){return this._adminKey}setAdminKey(e){return this._requireNotFrozen(),this._adminKey=e,this}get kycKey(){return this._kycKey}setKycKey(e){return this._requireNotFrozen(),this._kycKey=e,this}get freezeKey(){return this._freezeKey}freezeWith(e){return!this._autoRenewAccountId&&this.transactionId?.accountId?this.setAutoRenewAccountId(this.transactionId?.accountId):!this._autoRenewAccountId&&e?.operatorAccountId&&this.setAutoRenewAccountId(e.operatorAccountId),super.freezeWith(e)}setFreezeKey(e){return this._requireNotFrozen(),this._freezeKey=e,this}get pauseKey(){return this._pauseKey}setPauseKey(e){return this._requireNotFrozen(),this._pauseKey=e,this}get wipeKey(){return this._wipeKey}setWipeKey(e){return this._requireNotFrozen(),this._wipeKey=e,this}get supplyKey(){return this._supplyKey}setSupplyKey(e){return this._requireNotFrozen(),this._supplyKey=e,this}get feeScheduleKey(){return this._feeScheduleKey}setFeeScheduleKey(e){return this._requireNotFrozen(),this._feeScheduleKey=e,this}get freezeDefault(){return this._freezeDefault}setFreezeDefault(e){return this._requireNotFrozen(),this._freezeDefault=e,this}get expirationTime(){return this._expirationTime}setExpirationTime(e){return this._requireNotFrozen(),this._expirationTime=e instanceof s?e:s.fromDate(e),this._autoRenewPeriod=null,this}get autoRenewAccountId(){return this._autoRenewAccountId}setAutoRenewAccountId(e){return this._requireNotFrozen(),this._autoRenewAccountId=e instanceof n?e:n.fromString(e),this}get autoRenewPeriod(){return this._autoRenewPeriod}setAutoRenewPeriod(e){return this._requireNotFrozen(),this._autoRenewPeriod=e instanceof r?e:new r(e),this}get tokenMemo(){return this._tokenMemo}setTokenMemo(e){return this._requireNotFrozen(),this._tokenMemo=e,this}get customFees(){return this._customFees}setCustomFees(e){return this._customFees=e,this}get tokenType(){return this._tokenType}setTokenType(e){return this._tokenType=e,this}get supplyType(){return this._supplyType}setSupplyType(e){return this._supplyType=e,this}get maxSupply(){return this._maxSupply}setMaxSupply(e){return this._maxSupply=\"number\"==typeof e?i.fromNumber(e):e,this}get metadataKey(){return this._metadataKey}setMetadataKey(e){return this._requireNotFrozen(),this._metadataKey=e,this}get metadata(){return this._metadata}setMetadata(e){return this._requireNotFrozen(),this._metadata=e,this}_validateChecksums(e){null!=this._treasuryAccountId&&this._treasuryAccountId.validateChecksum(e),null!=this._autoRenewAccountId&&this._autoRenewAccountId.validateChecksum(e)}_execute(e,t){return e.token.createToken(t)}_getTransactionDataCase(){return\"tokenCreation\"}_makeTransactionData(){return{name:this._tokenName,symbol:this._tokenSymbol,decimals:null!=this._decimals?this._decimals.toInt():null,initialSupply:this._initialSupply,treasury:null!=this._treasuryAccountId?this._treasuryAccountId._toProtobuf():null,adminKey:null!=this._adminKey?this._adminKey._toProtobufKey():null,kycKey:null!=this._kycKey?this._kycKey._toProtobufKey():null,freezeKey:null!=this._freezeKey?this._freezeKey._toProtobufKey():null,pauseKey:null!=this._pauseKey?this._pauseKey._toProtobufKey():null,wipeKey:null!=this._wipeKey?this._wipeKey._toProtobufKey():null,supplyKey:null!=this._supplyKey?this._supplyKey._toProtobufKey():null,feeScheduleKey:null!=this._feeScheduleKey?this._feeScheduleKey._toProtobufKey():null,freezeDefault:this._freezeDefault,autoRenewAccount:null!=this._autoRenewAccountId?this._autoRenewAccountId._toProtobuf():null,expiry:null!=this._expirationTime?this._expirationTime._toProtobuf():null,autoRenewPeriod:null!=this._autoRenewPeriod?this._autoRenewPeriod._toProtobuf():null,memo:this._tokenMemo,customFees:this.customFees.map((e=>e._toProtobuf())),tokenType:null!=this._tokenType?this._tokenType._code:null,supplyType:null!=this._supplyType?this._supplyType._code:null,maxSupply:this.maxSupply,metadataKey:null!=this._metadataKey?this._metadataKey._toProtobufKey():null,metadata:null!=this._metadata?this._metadata:void 0}}_getLogId(){return`TokenCreateTransaction:${this._transactionIds.current.validStart.toString()}`}}o.set(\"tokenCreation\",_._fromProtobuf);export{_ as default};\n//# sourceMappingURL=TokenCreateTransaction.js.map\n","import t from\"./TokenId.js\";import e,{TRANSACTION_REGISTRY as o}from\"../transaction/Transaction.js\";class n extends e{constructor(t={}){super(),this._tokenId=null,null!=t.tokenId&&this.setTokenId(t.tokenId)}static _fromProtobuf(o,r,s,i,a){const k=a[0].tokenDeletion;return e._fromProtobufTransactions(new n({tokenId:null!=k.token?t._fromProtobuf(k.token):void 0}),o,r,s,i,a)}get tokenId(){return this._tokenId}setTokenId(e){return this._requireNotFrozen(),this._tokenId=\"string\"==typeof e?t.fromString(e):e.clone(),this}_validateChecksums(t){null!=this._tokenId&&this._tokenId.validateChecksum(t)}_execute(t,e){return t.token.deleteToken(e)}_getTransactionDataCase(){return\"tokenDeletion\"}_makeTransactionData(){return{token:null!=this._tokenId?this._tokenId._toProtobuf():null}}_getLogId(){return`TokenDeleteTransaction:${this._transactionIds.current.validStart.toString()}`}}o.set(\"tokenDeletion\",n._fromProtobuf);export{n as default};\n//# sourceMappingURL=TokenDeleteTransaction.js.map\n","import t from\"./TokenId.js\";import e,{TRANSACTION_REGISTRY as o}from\"../transaction/Transaction.js\";import s from\"./CustomFixedFee.js\";import r from\"./CustomFractionalFee.js\";import n from\"./CustomRoyaltyFee.js\";class u extends e{constructor(t={}){super(),this._tokenId=null,this._customFees=[],null!=t.tokenId&&this.setTokenId(t.tokenId),null!=t.customFees&&this.setCustomFees(t.customFees)}static _fromProtobuf(o,i,a,m,d){const c=d[0].tokenFeeScheduleUpdate;return e._fromProtobufTransactions(new u({tokenId:null!=c.tokenId?t._fromProtobuf(c.tokenId):void 0,customFees:null!=c.customFees?c.customFees.map((t=>null!=t.fixedFee?s._fromProtobuf(t):null!=t.fractionalFee?r._fromProtobuf(t):n._fromProtobuf(t))):void 0}),o,i,a,m,d)}get tokenId(){return this._tokenId}setTokenId(e){return this._requireNotFrozen(),this._tokenId=\"string\"==typeof e?t.fromString(e):t._fromProtobuf(e._toProtobuf()),this}get customFees(){return this._customFees}setCustomFees(t){return this._requireNotFrozen(),this._customFees=t,this}_execute(t,e){return t.token.updateTokenFeeSchedule(e)}_getTransactionDataCase(){return\"tokenFeeScheduleUpdate\"}_makeTransactionData(){return{tokenId:null!=this._tokenId?this._tokenId._toProtobuf():null,customFees:this._customFees.map((t=>t._toProtobuf()))}}_getLogId(){return`TokenFeeScheduleUpdateTransaction:${this._transactionIds.current.validStart.toString()}`}}o.set(\"tokenFeeScheduleUpdate\",u._fromProtobuf);export{u as default};\n//# sourceMappingURL=TokenFeeScheduleUpdateTransaction.js.map\n","import t from\"./TokenId.js\";import o from\"../account/AccountId.js\";import n,{TRANSACTION_REGISTRY as e}from\"../transaction/Transaction.js\";class r extends n{constructor(t={}){super(),this._tokenId=null,this._accountId=null,null!=t.tokenId&&this.setTokenId(t.tokenId),null!=t.accountId&&this.setAccountId(t.accountId)}static _fromProtobuf(e,c,u,s,a){const i=a[0].tokenFreeze;return n._fromProtobufTransactions(new r({tokenId:null!=i.token?t._fromProtobuf(i.token):void 0,accountId:null!=i.account?o._fromProtobuf(i.account):void 0}),e,c,u,s,a)}get tokenId(){return this._tokenId}setTokenId(o){return this._requireNotFrozen(),this._tokenId=\"string\"==typeof o?t.fromString(o):o.clone(),this}get accountId(){return this._accountId}setAccountId(t){return this._requireNotFrozen(),this._accountId=\"string\"==typeof t?o.fromString(t):t.clone(),this}_validateChecksums(t){null!=this._tokenId&&this._tokenId.validateChecksum(t),null!=this._accountId&&this._accountId.validateChecksum(t)}_execute(t,o){return t.token.freezeTokenAccount(o)}_getTransactionDataCase(){return\"tokenFreeze\"}_makeTransactionData(){return{token:null!=this._tokenId?this._tokenId._toProtobuf():null,account:null!=this._accountId?this._accountId._toProtobuf():null}}_getLogId(){return`TokenFreezeTransaction:${this._transactionIds.current.validStart.toString()}`}}e.set(\"tokenFreeze\",r._fromProtobuf);export{r as default};\n//# sourceMappingURL=TokenFreezeTransaction.js.map\n","import t from\"./TokenId.js\";import n from\"../account/AccountId.js\";import o,{TRANSACTION_REGISTRY as e}from\"../transaction/Transaction.js\";class r extends o{constructor(t={}){super(),this._tokenId=null,this._accountId=null,null!=t.tokenId&&this.setTokenId(t.tokenId),null!=t.accountId&&this.setAccountId(t.accountId)}static _fromProtobuf(e,c,u,s,a){const i=a[0].tokenGrantKyc;return o._fromProtobufTransactions(new r({tokenId:null!=i.token?t._fromProtobuf(i.token):void 0,accountId:null!=i.account?n._fromProtobuf(i.account):void 0}),e,c,u,s,a)}get tokenId(){return this._tokenId}setTokenId(n){return this._requireNotFrozen(),this._tokenId=\"string\"==typeof n?t.fromString(n):n.clone(),this}get accountId(){return this._accountId}setAccountId(t){return this._requireNotFrozen(),this._accountId=\"string\"==typeof t?n.fromString(t):t.clone(),this}_validateChecksums(t){null!=this._tokenId&&this._tokenId.validateChecksum(t),null!=this._accountId&&this._accountId.validateChecksum(t)}_execute(t,n){return t.token.grantKycToTokenAccount(n)}_getTransactionDataCase(){return\"tokenGrantKyc\"}_makeTransactionData(){return{token:null!=this._tokenId?this._tokenId._toProtobuf():null,account:null!=this._accountId?this._accountId._toProtobuf():null}}_getLogId(){return`TokenGrantKycTransaction:${this._transactionIds.current.validStart.toString()}`}}e.set(\"tokenGrantKyc\",r._fromProtobuf);export{r as default};\n//# sourceMappingURL=TokenGrantKycTransaction.js.map\n","import e from\"./TokenId.js\";import t from\"../account/AccountId.js\";import o from\"../Duration.js\";import u from\"../Timestamp.js\";import l from\"long\";import*as s from\"@hashgraph/proto\";import a from\"./TokenType.js\";import n from\"./TokenSupplyType.js\";import y from\"./CustomFixedFee.js\";import r from\"./CustomFractionalFee.js\";import i from\"./CustomRoyaltyFee.js\";import p from\"../Key.js\";import m from\"../LedgerId.js\";class d{constructor(e){this.tokenId=e.tokenId,this.name=e.name,this.symbol=e.symbol,this.decimals=e.decimals,this.totalSupply=e.totalSupply,this.treasuryAccountId=e.treasuryAccountId,this.adminKey=e.adminKey,this.kycKey=e.kycKey,this.freezeKey=e.freezeKey,this.pauseKey=e.pauseKey,this.wipeKey=e.wipeKey,this.supplyKey=e.supplyKey,this.feeScheduleKey=e.feeScheduleKey,this.defaultFreezeStatus=e.defaultFreezeStatus,this.defaultKycStatus=e.defaultKycStatus,this.pauseStatus=e.pauseStatus,this.isDeleted=e.isDeleted,this.autoRenewAccountId=e.autoRenewAccountId,this.autoRenewPeriod=e.autoRenewPeriod,this.expirationTime=e.expirationTime,this.tokenMemo=e.tokenMemo,this.customFees=e.customFees,this.tokenType=e.tokenType,this.supplyType=e.supplyType,this.maxSupply=e.maxSupply,this.ledgerId=e.ledgerId,this.metadataKey=e.metadataKey,this.metadata=e.metadata}static _fromProtobuf(s){const f=s.defaultFreezeStatus,h=s.defaultKycStatus,K=s.pauseStatus,c=null!=s.autoRenewAccount?t._fromProtobuf(s.autoRenewAccount):new t(0);return new d({tokenId:e._fromProtobuf(s.tokenId),name:s.name,symbol:s.symbol,decimals:s.decimals,totalSupply:l.fromValue(s.totalSupply),treasuryAccountId:null!=s.treasury?t._fromProtobuf(s.treasury):null,adminKey:null!=s.adminKey?p._fromProtobufKey(s.adminKey):null,kycKey:null!=s.kycKey?p._fromProtobufKey(s.kycKey):null,freezeKey:null!=s.freezeKey?p._fromProtobufKey(s.freezeKey):null,pauseKey:null!=s.pauseKey?p._fromProtobufKey(s.pauseKey):null,wipeKey:null!=s.wipeKey?p._fromProtobufKey(s.wipeKey):null,supplyKey:null!=s.supplyKey?p._fromProtobufKey(s.supplyKey):null,feeScheduleKey:null!=s.feeScheduleKey?p._fromProtobufKey(s.feeScheduleKey):null,defaultFreezeStatus:0===f?null:1==f,defaultKycStatus:0===h?null:1==h,pauseStatus:0===K?null:1==K,isDeleted:s.deleted,autoRenewAccountId:0!=c.shard.toInt()||0!=c.realm.toInt()||0!=c.num.toInt()?c:null,autoRenewPeriod:null!=s.autoRenewPeriod?o._fromProtobuf(s.autoRenewPeriod):null,expirationTime:null!=s.expiry?u._fromProtobuf(s.expiry):null,tokenMemo:null!=s.memo?s.memo:\"\",customFees:null!=s.customFees?s.customFees.map((e=>null!=e.fixedFee?y._fromProtobuf(e):null!=e.fractionalFee?r._fromProtobuf(e):i._fromProtobuf(e))):[],tokenType:null!=s.tokenType?a._fromCode(s.tokenType):null,supplyType:null!=s.supplyType?n._fromCode(s.supplyType):null,maxSupply:null!=s.maxSupply?s.maxSupply:null,ledgerId:null!=s.ledgerId?m.fromBytes(s.ledgerId):null,metadataKey:null!=s.metadataKey?p._fromProtobufKey(s.metadataKey):null,metadata:null!=s.metadata?s.metadata:new Uint8Array})}_toProtobuf(){return{tokenId:this.tokenId._toProtobuf(),name:this.name,symbol:this.symbol,decimals:this.decimals,totalSupply:this.totalSupply,treasury:null!=this.treasuryAccountId?this.treasuryAccountId._toProtobuf():null,adminKey:null!=this.adminKey?this.adminKey._toProtobufKey():null,kycKey:null!=this.kycKey?this.kycKey._toProtobufKey():null,freezeKey:null!=this.freezeKey?this.freezeKey._toProtobufKey():null,pauseKey:null!=this.pauseKey?this.pauseKey._toProtobufKey():null,wipeKey:null!=this.wipeKey?this.wipeKey._toProtobufKey():null,supplyKey:null!=this.supplyKey?this.supplyKey._toProtobufKey():null,feeScheduleKey:null!=this.feeScheduleKey?this.feeScheduleKey._toProtobufKey():null,defaultFreezeStatus:null==this.defaultFreezeStatus?0:this.defaultFreezeStatus?1:2,defaultKycStatus:null==this.defaultKycStatus?0:this.defaultKycStatus?1:2,pauseStatus:null==this.pauseStatus?0:this.pauseStatus?1:2,deleted:this.isDeleted,autoRenewAccount:null!=this.autoRenewAccountId?this.autoRenewAccountId._toProtobuf():void 0,autoRenewPeriod:null!=this.autoRenewPeriod?this.autoRenewPeriod._toProtobuf():null,expiry:null!=this.expirationTime?this.expirationTime._toProtobuf():null,memo:this.tokenMemo,customFees:this.customFees.map((e=>e._toProtobuf())),tokenType:null!=this.tokenType?this.tokenType._code:null,supplyType:null!=this.supplyType?this.supplyType._code:null,maxSupply:this.maxSupply,ledgerId:null!=this.ledgerId?this.ledgerId.toBytes():null,metadataKey:null!=this.metadataKey?this.metadataKey._toProtobufKey():null,metadata:null!=this.metadata?this.metadata:null}}static fromBytes(e){return d._fromProtobuf(s.proto.TokenInfo.decode(e))}toBytes(){return s.proto.TokenInfo.encode(this._toProtobuf()).finish()}}export{d as default};\n//# sourceMappingURL=TokenInfo.js.map\n","import t,{QUERY_REGISTRY as e}from\"../query/Query.js\";import o from\"./TokenId.js\";import n from\"./TokenInfo.js\";import\"bignumber.js\";import\"../HbarUnit.js\";import\"long\";class r extends t{constructor(t={}){super(),this._tokenId=null,null!=t.tokenId&&this.setTokenId(t.tokenId)}static _fromProtobuf(t){const e=t.tokenGetInfo;return new r({tokenId:null!=e.token?o._fromProtobuf(e.token):void 0})}get tokenId(){return this._tokenId}setTokenId(t){return this._tokenId=\"string\"==typeof t?o.fromString(t):t.clone(),this}async getCost(t){return super.getCost(t)}_validateChecksums(t){null!=this._tokenId&&this._tokenId.validateChecksum(t)}_execute(t,e){return t.token.getTokenInfo(e)}_mapResponseHeader(t){return t.tokenGetInfo.header}_mapResponse(t,e,o){const r=t.tokenGetInfo;return Promise.resolve(n._fromProtobuf(r.tokenInfo))}_onMakeRequest(t){return{tokenGetInfo:{header:t,token:null!=this._tokenId?this._tokenId._toProtobuf():null}}}_getLogId(){return`TokenInfoQuery:${(null!=this._paymentTransactionId&&null!=this._paymentTransactionId.validStart?this._paymentTransactionId.validStart:this._timestamp).toString()}`}}e.set(\"tokenGetInfo\",r._fromProtobuf);export{r as default};\n//# sourceMappingURL=TokenInfoQuery.js.map\n","import t from\"./TokenId.js\";import e,{TRANSACTION_REGISTRY as n}from\"../transaction/Transaction.js\";import a from\"long\";import{decode as o}from\"../encoding/hex.js\";class r extends e{constructor(t={}){super(),this._tokenId=null,this._amount=null,this._metadata=[],null!=t.tokenId&&this.setTokenId(t.tokenId),null!=t.amount&&this.setAmount(t.amount),null!=t.metadata&&this.setMetadata(t.metadata)}static _fromProtobuf(n,a,o,s,i){const d=i[0].tokenMint;return e._fromProtobufTransactions(new r({tokenId:null!=d.token?t._fromProtobuf(d.token):void 0,amount:null!=d.amount?d.amount:void 0,metadata:null!=d.metadata?d.metadata:void 0}),n,a,o,s,i)}get tokenId(){return this._tokenId}setTokenId(e){return this._requireNotFrozen(),this._tokenId=\"string\"==typeof e?t.fromString(e):e.clone(),this}get amount(){return this._amount}setAmount(t){return this._requireNotFrozen(),this._amount=t instanceof a?t:a.fromValue(t),this}_validateChecksums(t){null!=this._tokenId&&this._tokenId.validateChecksum(t)}get metadata(){return this._metadata}addMetadata(t){return this._requireNotFrozen(),\"string\"==typeof t&&console.warn(\"Passing a `string` for token metadata is considered a bug, and has been removed. Please provide a `Uint8Array` instead.\"),this._metadata.push(\"string\"==typeof t?o(t):t),this}setMetadata(t){this._requireNotFrozen();for(const e of t)if(\"string\"==typeof e){console.warn(\"Passing a `string` for token metadata is considered a bug, and has been removed. Please provide a `Uint8Array` instead.\");break}return this._metadata=t.map((t=>\"string\"==typeof t?o(t):t)),this}_execute(t,e){return t.token.mintToken(e)}_getTransactionDataCase(){return\"tokenMint\"}_makeTransactionData(){return{amount:this._amount,token:null!=this._tokenId?this._tokenId._toProtobuf():null,metadata:this._metadata}}_getLogId(){return`TokenMintTransaction:${this._transactionIds.current.validStart.toString()}`}}n.set(\"tokenMint\",r._fromProtobuf);export{r as default};\n//# sourceMappingURL=TokenMintTransaction.js.map\n","import t from\"./NftId.js\";import e from\"../account/AccountId.js\";import r from\"../Timestamp.js\";import{encode as o}from\"../encoding/hex.js\";import d from\"../LedgerId.js\";class n{constructor(t){this.nftId=t.nftId,this.accountId=t.accountId,this.creationTime=t.creationTime,this.metadata=t.metadata,this.ledgerId=t.ledgerId,this.spenderId=t.spenderId,Object.freeze(this)}static _fromProtobuf(o){return new n({nftId:t._fromProtobuf(o.nftID),accountId:e._fromProtobuf(o.accountID),creationTime:r._fromProtobuf(o.creationTime),metadata:void 0!==o.metadata?o.metadata:null,ledgerId:null!=o.ledgerId?d.fromBytes(o.ledgerId):null,spenderId:null!=o.spenderId?e._fromProtobuf(o.spenderId):null})}_toProtobuf(){return{nftID:this.nftId._toProtobuf(),accountID:this.accountId._toProtobuf(),creationTime:this.creationTime._toProtobuf(),metadata:this.metadata,ledgerId:null!=this.ledgerId?this.ledgerId.toBytes():null,spenderId:null!=this.spenderId?this.spenderId._toProtobuf():null}}toJson(){return{nftId:this.nftId.toString(),accountId:this.accountId.toString(),creationTime:this.creationTime.toString(),metadata:null!=this.metadata?o(this.metadata):null,ledgerId:null!=this.ledgerId?this.ledgerId.toString():null,spenderId:null!=this.spenderId?this.spenderId.toString():null}}toString(){return JSON.stringify(this.toJson())}}export{n as default};\n//# sourceMappingURL=TokenNftInfo.js.map\n","import t,{QUERY_REGISTRY as e}from\"../query/Query.js\";import n from\"./NftId.js\";import o from\"../account/AccountId.js\";import r from\"./TokenId.js\";import s from\"./TokenNftInfo.js\";import\"bignumber.js\";import\"../HbarUnit.js\";import f from\"long\";class u extends t{constructor(t={}){super(),this._nftId=null,null!=t.nftId&&this.setNftId(t.nftId),this._accountId=null,null!=t.accountId&&this.setAccountId(t.accountId),this._tokenId=null,null!=t.tokenId&&this.setTokenId(t.tokenId),this._start=null,null!=t.start&&this.setStart(t.start),this._end=null,null!=t.end&&this.setEnd(t.end)}static _fromProtobuf(t){if(null!=t.tokenGetNftInfo){const e=t.tokenGetNftInfo;return new u({nftId:null!=e.nftID?n._fromProtobuf(e.nftID):void 0})}if(null!=t.tokenGetAccountNftInfos){const e=t.tokenGetAccountNftInfos;return new u({accountId:null!=e.accountID?o._fromProtobuf(e.accountID):void 0,start:null!=e.start?e.start:void 0,end:null!=e.end?e.end:void 0})}{const e=t.tokenGetNftInfos;return new u({tokenId:null!=e.tokenID?r._fromProtobuf(e.tokenID):void 0,start:null!=e.start?e.start:void 0,end:null!=e.end?e.end:void 0})}}get nftId(){return this._nftId}setNftId(t){return this._nftId=\"string\"==typeof t?n.fromString(t):n._fromProtobuf(t._toProtobuf()),this}get accountId(){return console.warn(\"`TokenNftInfoQuery.accountId` is deprecated with no replacement\"),this._accountId}setAccountId(t){return console.warn(\"`TokenNftInfoQuery.setAccountId()` is deprecated with no replacement\"),this._accountId=\"string\"==typeof t?o.fromString(t):o._fromProtobuf(t._toProtobuf()),this}get tokenId(){return console.warn(\"`TokenNftInfoQuery.tokenId` is deprecated with no replacement\"),this._tokenId}setTokenId(t){return console.warn(\"`TokenNftInfoQuery.setTokenId()` is deprecated with no replacement\"),this._tokenId=\"string\"==typeof t?r.fromString(t):r._fromProtobuf(t._toProtobuf()),this}get start(){return console.warn(\"`TokenNftInfoQuery.start` is deprecated with no replacement\"),this._start}setStart(t){return console.warn(\"`TokenNftInfoQuery.setStart()` is deprecated with no replacement\"),this._start=\"number\"==typeof t?f.fromNumber(t):t,this}get end(){return console.warn(\"`TokenNftInfoQuery.end` is deprecated with no replacement\"),this._end}setEnd(t){return console.warn(\"`TokenNftInfoQuery.setEnd()` is deprecated with no replacement\"),this._end=\"number\"==typeof t?f.fromNumber(t):t,this}async getCost(t){return super.getCost(t)}_execute(t,e){return t.token.getTokenNftInfo(e)}_mapResponseHeader(t){return t.tokenGetNftInfo.header}_mapResponse(t,e,n){const o=[t.tokenGetNftInfo.nft];return Promise.resolve(o.map((t=>s._fromProtobuf(t))))}_onMakeRequest(t){return{tokenGetNftInfo:{header:t,nftID:null!=this._nftId?this._nftId._toProtobuf():null}}}_getLogId(){return`TokenNftInfoQuery:${(null!=this._paymentTransactionId&&null!=this._paymentTransactionId.validStart?this._paymentTransactionId.validStart:this._timestamp).toString()}`}}e.set(\"tokenGetNftInfo\",u._fromProtobuf);export{u as default};\n//# sourceMappingURL=TokenNftInfoQuery.js.map\n","import t from\"./TokenId.js\";import e,{TRANSACTION_REGISTRY as o}from\"../transaction/Transaction.js\";class n extends e{constructor(t={}){super(),this._tokenId=null,null!=t.tokenId&&this.setTokenId(t.tokenId)}static _fromProtobuf(o,r,s,a,u){const i=u[0].tokenPause;return e._fromProtobufTransactions(new n({tokenId:null!=i.token?t._fromProtobuf(i.token):void 0}),o,r,s,a,u)}get tokenId(){return this._tokenId}setTokenId(e){return this._requireNotFrozen(),this._tokenId=\"string\"==typeof e?t.fromString(e):e.clone(),this}_validateChecksums(t){null!=this._tokenId&&this._tokenId.validateChecksum(t)}_execute(t,e){return t.token.pauseToken(e)}_getTransactionDataCase(){return\"tokenPause\"}_makeTransactionData(){return{token:null!=this._tokenId?this._tokenId._toProtobuf():null}}_getLogId(){return`TokenPauseTransaction:${this._transactionIds.current.validStart.toString()}`}}o.set(\"tokenPause\",n._fromProtobuf);export{n as default};\n//# sourceMappingURL=TokenPauseTransaction.js.map\n","import t from\"./TokenId.js\";import o from\"../account/AccountId.js\";import n,{TRANSACTION_REGISTRY as e}from\"../transaction/Transaction.js\";class r extends n{constructor(t={}){super(),this._tokenId=null,this._accountId=null,null!=t.tokenId&&this.setTokenId(t.tokenId),null!=t.accountId&&this.setAccountId(t.accountId)}static _fromProtobuf(e,c,u,s,a){const i=a[0].tokenRevokeKyc;return n._fromProtobufTransactions(new r({tokenId:null!=i.token?t._fromProtobuf(i.token):void 0,accountId:null!=i.account?o._fromProtobuf(i.account):void 0}),e,c,u,s,a)}get tokenId(){return this._tokenId}setTokenId(o){return this._requireNotFrozen(),this._tokenId=\"string\"==typeof o?t.fromString(o):o.clone(),this}get accountId(){return this._accountId}setAccountId(t){return this._requireNotFrozen(),this._accountId=\"string\"==typeof t?o.fromString(t):t.clone(),this}_validateChecksums(t){null!=this._tokenId&&this._tokenId.validateChecksum(t),null!=this._accountId&&this._accountId.validateChecksum(t)}_execute(t,o){return t.token.revokeKycFromTokenAccount(o)}_getTransactionDataCase(){return\"tokenRevokeKyc\"}_makeTransactionData(){return{token:null!=this._tokenId?this._tokenId._toProtobuf():null,account:null!=this._accountId?this._accountId._toProtobuf():null}}_getLogId(){return`TokenRevokeKycTransaction:${this._transactionIds.current.validStart.toString()}`}}e.set(\"tokenRevokeKyc\",r._fromProtobuf);export{r as default};\n//# sourceMappingURL=TokenRevokeKycTransaction.js.map\n","import t from\"./TokenId.js\";import n from\"../account/AccountId.js\";import o,{TRANSACTION_REGISTRY as e}from\"../transaction/Transaction.js\";class r extends o{constructor(t={}){super(),this._tokenId=null,this._accountId=null,null!=t.tokenId&&this.setTokenId(t.tokenId),null!=t.accountId&&this.setAccountId(t.accountId)}static _fromProtobuf(e,u,c,s,a){const i=a[0].tokenUnfreeze;return o._fromProtobufTransactions(new r({tokenId:null!=i.token?t._fromProtobuf(i.token):void 0,accountId:null!=i.account?n._fromProtobuf(i.account):void 0}),e,u,c,s,a)}get tokenId(){return this._tokenId}setTokenId(n){return this._requireNotFrozen(),this._tokenId=\"string\"==typeof n?t.fromString(n):n.clone(),this}get accountId(){return this._accountId}setAccountId(t){return this._requireNotFrozen(),this._accountId=\"string\"==typeof t?n.fromString(t):t.clone(),this}_validateChecksums(t){null!=this._tokenId&&this._tokenId.validateChecksum(t),null!=this._accountId&&this._accountId.validateChecksum(t)}_execute(t,n){return t.token.unfreezeTokenAccount(n)}_getTransactionDataCase(){return\"tokenUnfreeze\"}_makeTransactionData(){return{token:null!=this._tokenId?this._tokenId._toProtobuf():null,account:null!=this._accountId?this._accountId._toProtobuf():null}}_getLogId(){return`TokenUnfreezeTransaction:${this._transactionIds.current.validStart.toString()}`}}e.set(\"tokenUnfreeze\",r._fromProtobuf);export{r as default};\n//# sourceMappingURL=TokenUnfreezeTransaction.js.map\n","import t from\"./TokenId.js\";import n,{TRANSACTION_REGISTRY as e}from\"../transaction/Transaction.js\";class o extends n{constructor(t={}){super(),this._tokenId=null,null!=t.tokenId&&this.setTokenId(t.tokenId)}static _fromProtobuf(e,r,s,a,u){const i=u[0].tokenUnpause;return n._fromProtobufTransactions(new o({tokenId:null!=i.token?t._fromProtobuf(i.token):void 0}),e,r,s,a,u)}get tokenId(){return this._tokenId}setTokenId(n){return this._requireNotFrozen(),this._tokenId=\"string\"==typeof n?t.fromString(n):n.clone(),this}_validateChecksums(t){null!=this._tokenId&&this._tokenId.validateChecksum(t)}_execute(t,n){return t.token.unpauseToken(n)}_getTransactionDataCase(){return\"tokenUnpause\"}_makeTransactionData(){return{token:null!=this._tokenId?this._tokenId._toProtobuf():null}}_getLogId(){return`TokenUnpauseTransaction:${this._transactionIds.current.validStart.toString()}`}}e.set(\"tokenUnpause\",o._fromProtobuf);export{o as default};\n//# sourceMappingURL=TokenUnpauseTransaction.js.map\n","class t{constructor(t){this._code=t,Object.freeze(this)}toString(){switch(this){case t.FullValidation:return\"FULL_VALIDATION\";case t.NoValidation:return\"NO_VALIDATION\";default:return`UNKNOWN (${this._code})`}}static _fromCode(e){switch(e){case 0:return t.FullValidation;case 1:return t.NoValidation}throw new Error(`(BUG) TokenKeyValidation.fromCode() does not handle code: ${e}`)}valueOf(){return this._code}}t.FullValidation=new t(0),t.NoValidation=new t(1);export{t as default};\n//# sourceMappingURL=TokenKeyValidation.js.map\n","import e from\"./TokenId.js\";import t,{TRANSACTION_REGISTRY as o}from\"../transaction/Transaction.js\";import n from\"../account/AccountId.js\";import i from\"../Timestamp.js\";import r from\"../Duration.js\";import u from\"../Key.js\";import s from\"./TokenKeyValidation.js\";class a extends t{constructor(e={}){super(),this._tokenId=null,this._tokenName=null,this._tokenSymbol=null,this._treasuryAccountId=null,this._adminKey=null,this._kycKey=null,this._freezeKey=null,this._wipeKey=null,this._supplyKey=null,this._autoRenewAccountId=null,this._expirationTime=null,this._autoRenewPeriod=null,this._tokenMemo=null,this._feeScheduleKey=null,this._pauseKey=null,this._metadataKey=null,this._metadata=null,this._keyVerificationMode=s.FullValidation,null!=e.tokenId&&this.setTokenId(e.tokenId),null!=e.tokenName&&this.setTokenName(e.tokenName),null!=e.tokenSymbol&&this.setTokenSymbol(e.tokenSymbol),null!=e.treasuryAccountId&&this.setTreasuryAccountId(e.treasuryAccountId),null!=e.adminKey&&this.setAdminKey(e.adminKey),null!=e.kycKey&&this.setKycKey(e.kycKey),null!=e.freezeKey&&this.setFreezeKey(e.freezeKey),null!=e.wipeKey&&this.setWipeKey(e.wipeKey),null!=e.supplyKey&&this.setSupplyKey(e.supplyKey),null!=e.autoRenewAccountId&&this.setAutoRenewAccountId(e.autoRenewAccountId),null!=e.expirationTime&&this.setExpirationTime(e.expirationTime),null!=e.autoRenewPeriod&&this.setAutoRenewPeriod(e.autoRenewPeriod),null!=e.tokenMemo&&this.setTokenMemo(e.tokenMemo),null!=e.feeScheduleKey&&this.setFeeScheduleKey(e.feeScheduleKey),null!=e.pauseKey&&this.setPauseKey(e.pauseKey),null!=e.metadataKey&&this.setMetadataKey(e.metadataKey),null!=e.metadata&&this.setMetadata(e.metadata),null!=e.keyVerificationMode&&this.setKeyVerificationMode(e.keyVerificationMode)}static _fromProtobuf(o,l,y,h,d){const _=d[0].tokenUpdate;return t._fromProtobufTransactions(new a({tokenId:null!=_.token?e._fromProtobuf(_.token):void 0,tokenName:Object.hasOwn(_,\"name\")?_.name:void 0,tokenSymbol:Object.hasOwn(_,\"symbol\")?_.symbol:void 0,treasuryAccountId:null!=_.treasury?n._fromProtobuf(_.treasury):void 0,adminKey:null!=_.adminKey?u._fromProtobufKey(_.adminKey):void 0,kycKey:null!=_.kycKey?u._fromProtobufKey(_.kycKey):void 0,freezeKey:null!=_.freezeKey?u._fromProtobufKey(_.freezeKey):void 0,wipeKey:null!=_.wipeKey?u._fromProtobufKey(_.wipeKey):void 0,supplyKey:null!=_.supplyKey?u._fromProtobufKey(_.supplyKey):void 0,autoRenewAccountId:null!=_.autoRenewAccount?n._fromProtobuf(_.autoRenewAccount):void 0,expirationTime:null!=_.expiry?i._fromProtobuf(_.expiry):void 0,autoRenewPeriod:null!=_.autoRenewPeriod?r._fromProtobuf(_.autoRenewPeriod):void 0,tokenMemo:null!=_.memo&&Object.hasOwn(_.memo,\"value\")?_.memo.value:void 0,feeScheduleKey:null!=_.feeScheduleKey?u._fromProtobufKey(_.feeScheduleKey):void 0,pauseKey:null!=_.pauseKey?u._fromProtobufKey(_.pauseKey):void 0,metadataKey:null!=_.metadataKey?u._fromProtobufKey(_.metadataKey):void 0,metadata:null!=_.metadata&&Object.hasOwn(_.metadata,\"value\")?_.metadata.value:void 0,keyVerificationMode:null!=_.keyVerificationMode?s._fromCode(_.keyVerificationMode):void 0}),o,l,y,h,d)}get tokenId(){return this._tokenId}setTokenId(t){return this._requireNotFrozen(),this._tokenId=\"string\"==typeof t?e.fromString(t):t.clone(),this}get tokenName(){return this._tokenName}setTokenName(e){return this._requireNotFrozen(),this._tokenName=e,this}get tokenSymbol(){return this._tokenSymbol}setTokenSymbol(e){return this._requireNotFrozen(),this._tokenSymbol=e,this}get treasuryAccountId(){return this._treasuryAccountId}setTreasuryAccountId(e){return this._requireNotFrozen(),this._treasuryAccountId=\"string\"==typeof e?n.fromString(e):e.clone(),this}get adminKey(){return this._adminKey}setAdminKey(e){return this._requireNotFrozen(),this._adminKey=e,this}get kycKey(){return this._kycKey}setKycKey(e){return this._requireNotFrozen(),this._kycKey=e,this}get freezeKey(){return this._freezeKey}setFreezeKey(e){return this._requireNotFrozen(),this._freezeKey=e,this}get wipeKey(){return this._wipeKey}setWipeKey(e){return this._requireNotFrozen(),this._wipeKey=e,this}get supplyKey(){return this._supplyKey}setSupplyKey(e){return this._requireNotFrozen(),this._supplyKey=e,this}setsupplyKey(e){return this._requireNotFrozen(),this._supplyKey=e,this}get expirationTime(){return this._expirationTime}setExpirationTime(e){return this._requireNotFrozen(),this._expirationTime=e instanceof i?e:i.fromDate(e),this}get autoRenewAccountId(){return this._autoRenewAccountId}setAutoRenewAccountId(e){return this._requireNotFrozen(),this._autoRenewAccountId=e instanceof n?e:n.fromString(e),this}get autoRenewPeriod(){return this._autoRenewPeriod}setAutoRenewPeriod(e){return this._requireNotFrozen(),this._autoRenewPeriod=e instanceof r?e:new r(e),this}get tokenMemo(){return this._tokenMemo}setTokenMemo(e){return this._requireNotFrozen(),this._tokenMemo=e,this}get feeScheduleKey(){return this._feeScheduleKey}setFeeScheduleKey(e){return this._requireNotFrozen(),this._feeScheduleKey=e,this}get pauseKey(){return this._pauseKey}setPauseKey(e){return this._requireNotFrozen(),this._pauseKey=e,this}get metadataKey(){return this._metadataKey}setMetadataKey(e){return this._requireNotFrozen(),this._metadataKey=e,this}get metadata(){return this._metadata}setMetadata(e){return this._requireNotFrozen(),this._metadata=e,this}get keyVerificationMode(){return this._keyVerificationMode}setKeyVerificationMode(e){return this._requireNotFrozen(),this._keyVerificationMode=e,this}clearTokenMemo(){return this._requireNotFrozen(),this._tokenMemo=null,this}_validateChecksums(e){null!=this._tokenId&&this._tokenId.validateChecksum(e),null!=this._treasuryAccountId&&this._treasuryAccountId.validateChecksum(e),null!=this._autoRenewAccountId&&this._autoRenewAccountId.validateChecksum(e)}_execute(e,t){return e.token.updateToken(t)}_getTransactionDataCase(){return\"tokenUpdate\"}_makeTransactionData(){return{token:null!=this._tokenId?this._tokenId._toProtobuf():null,name:null!=this.tokenName?this.tokenName:null,symbol:this.tokenSymbol,treasury:null!=this._treasuryAccountId?this._treasuryAccountId._toProtobuf():null,adminKey:null!=this._adminKey?this._adminKey._toProtobufKey():null,kycKey:null!=this._kycKey?this._kycKey._toProtobufKey():null,freezeKey:null!=this._freezeKey?this._freezeKey._toProtobufKey():null,pauseKey:null!=this._pauseKey?this._pauseKey._toProtobufKey():null,wipeKey:null!=this._wipeKey?this._wipeKey._toProtobufKey():null,supplyKey:null!=this._supplyKey?this._supplyKey._toProtobufKey():null,autoRenewAccount:null!=this._autoRenewAccountId?this._autoRenewAccountId._toProtobuf():null,expiry:null!=this._expirationTime?this._expirationTime._toProtobuf():null,autoRenewPeriod:null!=this._autoRenewPeriod?this._autoRenewPeriod._toProtobuf():null,memo:null!=this._tokenMemo?{value:this._tokenMemo}:null,feeScheduleKey:null!=this._feeScheduleKey?this._feeScheduleKey._toProtobufKey():null,metadataKey:null!=this._metadataKey?this._metadataKey._toProtobufKey():null,metadata:null!=this._metadata?{value:this._metadata}:null,keyVerificationMode:null!=this._keyVerificationMode?this._keyVerificationMode._code:void 0}}_getLogId(){return`TokenUpdateTransaction:${this._transactionIds.current.validStart.toString()}`}}o.set(\"tokenUpdate\",a._fromProtobuf);export{a as default};\n//# sourceMappingURL=TokenUpdateTransaction.js.map\n","import t from\"./TokenId.js\";import o from\"../account/AccountId.js\";import n,{TRANSACTION_REGISTRY as e}from\"../transaction/Transaction.js\";import r from\"long\";class s extends n{constructor(t={}){super(),this._tokenId=null,this._accountId=null,this._serials=[],this._amount=null,null!=t.tokenId&&this.setTokenId(t.tokenId),null!=t.accountId&&this.setAccountId(t.accountId),null!=t.amount&&this.setAmount(t.amount),null!=t.serials&&this.setSerials(t.serials)}static _fromProtobuf(e,r,u,i,a){const c=a[0].tokenWipe;return n._fromProtobufTransactions(new s({tokenId:null!=c.token?t._fromProtobuf(c.token):void 0,accountId:null!=c.account?o._fromProtobuf(c.account):void 0,amount:null!=c.amount?c.amount:void 0,serials:null!=c.serialNumbers?c.serialNumbers:void 0}),e,r,u,i,a)}get tokenId(){return this._tokenId}setTokenId(o){return this._requireNotFrozen(),this._tokenId=\"string\"==typeof o?t.fromString(o):o.clone(),this}get accountId(){return this._accountId}setAccountId(t){return this._requireNotFrozen(),this._accountId=\"string\"==typeof t?o.fromString(t):t.clone(),this}get amount(){return this._amount}setAmount(t){return this._requireNotFrozen(),this._amount=t instanceof r?t:r.fromValue(t),this}_validateChecksums(t){null!=this._tokenId&&this._tokenId.validateChecksum(t),null!=this._accountId&&this._accountId.validateChecksum(t)}get serials(){return this._serials}setSerials(t){return this._requireNotFrozen(),this._serials=t.map((t=>\"number\"==typeof t?r.fromNumber(t):t)),this}_execute(t,o){return t.token.wipeTokenAccount(o)}_getTransactionDataCase(){return\"tokenWipe\"}_makeTransactionData(){return{amount:this._amount,token:null!=this._tokenId?this._tokenId._toProtobuf():null,account:null!=this._accountId?this._accountId._toProtobuf():null,serialNumbers:this.serials}}_getLogId(){return`TokenWipeTransaction:${this._transactionIds.current.validStart.toString()}`}}e.set(\"tokenWipe\",s._fromProtobuf);export{s as default};\n//# sourceMappingURL=TokenWipeTransaction.js.map\n","import e from\"../account/AccountId.js\";import t from\"../token/CustomFixedFee.js\";import o,{TRANSACTION_REGISTRY as s,DEFAULT_AUTO_RENEW_PERIOD as u}from\"../transaction/Transaction.js\";import i from\"../Duration.js\";import n from\"../Key.js\";import r from\"../Hbar.js\";class c extends o{constructor(e={}){super(),this._defaultMaxTransactionFee=new r(25),this._adminKey=null,this._submitKey=null,this._feeScheduleKey=null,this._feeExemptKeys=[],this._autoRenewAccountId=null,this._autoRenewPeriod=new i(u),this._customFees=[],this._topicMemo=null,null!=e.adminKey&&this.setAdminKey(e.adminKey),null!=e.submitKey&&this.setSubmitKey(e.submitKey),null!=e.feeScheduleKey&&this.setFeeScheduleKey(e.feeScheduleKey),null!=e.feeExemptKeys&&this.setFeeExemptKeys(e.feeExemptKeys),null!=e.autoRenewAccountId&&this.setAutoRenewAccountId(e.autoRenewAccountId),null!=e.autoRenewPeriod&&this.setAutoRenewPeriod(e.autoRenewPeriod),null!=e.customFees&&this.setCustomFees(e.customFees),null!=e.topicMemo&&this.setTopicMemo(e.topicMemo)}static _fromProtobuf(s,u,i,r,m){const h=m[0].consensusCreateTopic;return o._fromProtobufTransactions(new c({adminKey:null!=h.adminKey?n._fromProtobufKey(h.adminKey):void 0,submitKey:null!=h.submitKey?n._fromProtobufKey(h.submitKey):void 0,feeScheduleKey:null!=h.feeScheduleKey?n._fromProtobufKey(h.feeScheduleKey):void 0,feeExemptKeys:null!=h.feeExemptKeyList?h.feeExemptKeyList.map((e=>n._fromProtobufKey(e))):void 0,autoRenewAccountId:null!=h.autoRenewAccount?e._fromProtobuf(h.autoRenewAccount):void 0,autoRenewPeriod:null!=h.autoRenewPeriod&&null!=h.autoRenewPeriod.seconds?h.autoRenewPeriod.seconds:void 0,customFees:null!=h.customFees?h.customFees.map((e=>t._fromProtobuf(e))):void 0,topicMemo:null!=h.memo?h.memo:void 0}),s,u,i,r,m)}get topicMemo(){return this._topicMemo}getTopicMemo(){return this._topicMemo}setTopicMemo(e){return this._requireNotFrozen(),this._topicMemo=e,this}get adminKey(){return this._adminKey}getAdminKey(){return this._adminKey}setAdminKey(e){return this._requireNotFrozen(),this._adminKey=e,this}get submitKey(){return this._submitKey}getSubmitKey(){return this._submitKey}setSubmitKey(e){return this._requireNotFrozen(),this._submitKey=e,this}getFeeScheduleKey(){return this._feeScheduleKey}setFeeScheduleKey(e){return this._requireNotFrozen(),this._feeScheduleKey=e,this}getFeeExemptKeys(){return this._feeExemptKeys}setFeeExemptKeys(e){return this._requireNotFrozen(),this._feeExemptKeys=e,this}addFeeExemptKey(e){return this._requireNotFrozen(),this._feeExemptKeys.push(e),this}clearFeeExemptKeys(){return this._requireNotFrozen(),this._feeExemptKeys=[],this}get autoRenewAccountId(){return this._autoRenewAccountId}getAutoRenewAccountId(){return this._autoRenewAccountId}setAutoRenewAccountId(t){return this._requireNotFrozen(),this._autoRenewAccountId=t instanceof e?t:e.fromString(t),this}get autoRenewPeriod(){return this._autoRenewPeriod}getAutoRenewPeriod(){return this._autoRenewPeriod}setAutoRenewPeriod(e){return this._requireNotFrozen(),this._autoRenewPeriod=e instanceof i?e:new i(e),this}getCustomFees(){return this._customFees}setCustomFees(e){return this._requireNotFrozen(),this._customFees=e,this}addCustomFee(e){return this._requireNotFrozen(),this._customFees.push(e),this}clearCustomFees(){return this._requireNotFrozen(),this._customFees=[],this}_validateChecksums(e){null!=this._autoRenewAccountId&&this._autoRenewAccountId.validateChecksum(e)}freezeWith(e){return!this._autoRenewAccountId&&this.transactionId?.accountId?this.setAutoRenewAccountId(this.transactionId?.accountId):!this._autoRenewAccountId&&e?.operatorAccountId&&this.setAutoRenewAccountId(e.operatorAccountId),super.freezeWith(e)}_execute(e,t){return e.consensus.createTopic(t)}_getTransactionDataCase(){return\"consensusCreateTopic\"}_makeTransactionData(){return{adminKey:null!=this._adminKey?this._adminKey._toProtobufKey():null,submitKey:null!=this._submitKey?this._submitKey._toProtobufKey():null,feeScheduleKey:null!=this._feeScheduleKey?this._feeScheduleKey._toProtobufKey():null,feeExemptKeyList:this._feeExemptKeys.map((e=>e._toProtobufKey())),autoRenewAccount:null!=this._autoRenewAccountId?this._autoRenewAccountId._toProtobuf():null,autoRenewPeriod:this._autoRenewPeriod._toProtobuf(),customFees:this._customFees.map((e=>e._toTopicFeeProtobuf())),memo:this._topicMemo}}_getLogId(){return`TopicCreateTransaction:${this._transactionIds.current.validStart.toString()}`}}s.set(\"consensusCreateTopic\",c._fromProtobuf);export{c as default};\n//# sourceMappingURL=TopicCreateTransaction.js.map\n","import t,{TRANSACTION_REGISTRY as o}from\"../transaction/Transaction.js\";import e from\"./TopicId.js\";class i extends t{constructor(t={}){super(),this._topicId=null,null!=t.topicId&&this.setTopicId(t.topicId)}static _fromProtobuf(o,s,r,n,c){const a=c[0].consensusDeleteTopic;return t._fromProtobufTransactions(new i({topicId:null!=a.topicID?e._fromProtobuf(a.topicID):void 0}),o,s,r,n,c)}get topicId(){return this._topicId}setTopicId(t){return this._requireNotFrozen(),this._topicId=\"string\"==typeof t?e.fromString(t):t.clone(),this}_validateChecksums(t){null!=this._topicId&&this._topicId.validateChecksum(t)}_execute(t,o){return t.consensus.deleteTopic(o)}_getTransactionDataCase(){return\"consensusDeleteTopic\"}_makeTransactionData(){return{topicID:null!=this._topicId?this._topicId._toProtobuf():null}}_getLogId(){return`TopicDeleteTransaction:${this._transactionIds.current.validStart.toString()}`}}o.set(\"consensusDeleteTopic\",i._fromProtobuf);export{i as default};\n//# sourceMappingURL=TopicDeleteTransaction.js.map\n","import e from\"./TopicId.js\";import o from\"../account/AccountId.js\";import t from\"../Timestamp.js\";import u from\"long\";import n from\"../Duration.js\";import*as i from\"@hashgraph/proto\";import s from\"../Key.js\";import r from\"../LedgerId.js\";import m from\"../token/CustomFixedFee.js\";class l{constructor(e){this.topicId=e.topicId,this.topicMemo=e.topicMemo,this.runningHash=e.runningHash,this.sequenceNumber=e.sequenceNumber,this.expirationTime=e.expirationTime,this.adminKey=e.adminKey,this.submitKey=e.submitKey,this.feeScheduleKey=e.feeScheduleKey,this.feeExemptKeys=e.feeExemptKeys,this.autoRenewPeriod=e.autoRenewPeriod,this.autoRenewAccountId=e.autoRenewAccountId,this.customFees=e.customFees,this.ledgerId=e.ledgerId,Object.freeze(this)}static _fromProtobuf(i){const c=i.topicInfo;return new l({topicId:e._fromProtobuf(i.topicID),topicMemo:null!=c.memo?c.memo:\"\",runningHash:null!=c.runningHash?c.runningHash:new Uint8Array,sequenceNumber:null!=c.sequenceNumber?c.sequenceNumber instanceof u?c.sequenceNumber:u.fromValue(c.sequenceNumber):u.ZERO,expirationTime:null!=c.expirationTime?t._fromProtobuf(c.expirationTime):null,adminKey:null!=c.adminKey?s._fromProtobufKey(c.adminKey):null,submitKey:null!=c.submitKey?s._fromProtobufKey(c.submitKey):null,feeScheduleKey:null!=c.feeScheduleKey?s._fromProtobufKey(c.feeScheduleKey):null,feeExemptKeys:null!=c.feeExemptKeyList?c.feeExemptKeyList.map((e=>s._fromProtobufKey(e))):null,autoRenewPeriod:null!=c.autoRenewPeriod?new n(c.autoRenewPeriod.seconds):null,autoRenewAccountId:null!=c.autoRenewAccount?o._fromProtobuf(c.autoRenewAccount):null,customFees:null!=c.customFees?c.customFees.map((e=>m._fromProtobuf(e))):null,ledgerId:null!=c.ledgerId?r.fromBytes(c.ledgerId):null})}_toProtobuf(){return{topicID:this.topicId._toProtobuf(),topicInfo:{memo:this.topicMemo,runningHash:this.runningHash,sequenceNumber:this.sequenceNumber,expirationTime:null!=this.expirationTime?this.expirationTime._toProtobuf():null,adminKey:null!=this.adminKey?this.adminKey._toProtobufKey():null,submitKey:null!=this.submitKey?this.submitKey._toProtobufKey():null,feeScheduleKey:null!=this.feeScheduleKey?this.feeScheduleKey._toProtobufKey():null,feeExemptKeyList:null!=this.feeExemptKeys?this.feeExemptKeys.map((e=>e._toProtobufKey())):null,autoRenewPeriod:null!=this.autoRenewPeriod?this.autoRenewPeriod._toProtobuf():null,autoRenewAccount:null!=this.autoRenewAccountId?this.autoRenewAccountId._toProtobuf():null,customFees:null!=this.customFees?this.customFees.map((e=>e._toProtobuf())):null}}}static fromBytes(e){return l._fromProtobuf(i.proto.ConsensusGetTopicInfoResponse.decode(e))}toBytes(){return i.proto.ConsensusGetTopicInfoResponse.encode(this._toProtobuf()).finish()}}export{l as default};\n//# sourceMappingURL=TopicInfo.js.map\n","import t,{QUERY_REGISTRY as o}from\"../query/Query.js\";import e from\"./TopicId.js\";import s from\"./TopicInfo.js\";import\"bignumber.js\";import\"../HbarUnit.js\";import\"long\";class n extends t{constructor(t={}){super(),this._topicId=null,null!=t.topicId&&this.setTopicId(t.topicId)}static _fromProtobuf(t){const o=t.consensusGetTopicInfo;return new n({topicId:null!=o.topicID?e._fromProtobuf(o.topicID):void 0})}get topicId(){return this._topicId}setTopicId(t){return this._topicId=\"string\"==typeof t?e.fromString(t):t.clone(),this}async getCost(t){return super.getCost(t)}_validateChecksums(t){null!=this._topicId&&this._topicId.validateChecksum(t)}_execute(t,o){return t.consensus.getTopicInfo(o)}_mapResponseHeader(t){return t.consensusGetTopicInfo.header}_mapResponse(t,o,e){return Promise.resolve(s._fromProtobuf(t.consensusGetTopicInfo))}_onMakeRequest(t){return{consensusGetTopicInfo:{header:t,topicID:null!=this._topicId?this._topicId._toProtobuf():null}}}_getLogId(){return`TopicInfoQuery:${(null!=this._paymentTransactionId&&null!=this._paymentTransactionId.validStart?this._paymentTransactionId.validStart:this._timestamp).toString()}`}}o.set(\"consensusGetTopicInfo\",n._fromProtobuf);export{n as default};\n//# sourceMappingURL=TopicInfoQuery.js.map\n","import t,{TRANSACTION_REGISTRY as s,CHUNK_SIZE as e}from\"../transaction/Transaction.js\";import i from\"./TopicId.js\";import{encode as n}from\"../encoding/utf8.js\";import r from\"../transaction/TransactionId.js\";import o from\"../Timestamp.js\";import{requireStringOrUint8Array as a}from\"../util.js\";class u extends t{constructor(t={}){super(),this._topicId=null,null!=t.topicId&&this.setTopicId(t.topicId),this._message=null,null!=t.message&&this.setMessage(t.message),this._maxChunks=20,this._chunkSize=e,null!=t.maxChunks&&this.setMaxChunks(t.maxChunks),null!=t.chunkSize&&this.setChunkSize(t.chunkSize),this._chunkInfo=null}static _fromProtobuf(s,e,n,r,o){const a=o[0].consensusSubmitMessage;return t._fromProtobufTransactions(new u({topicId:null!=a.topicID?i._fromProtobuf(a.topicID):void 0,message:null!=a.message?a.message:void 0}),s,e,n,r,o)}get topicId(){return this._topicId}setTopicId(t){return this._requireNotFrozen(),this._topicId=\"string\"==typeof t?i.fromString(t):t.clone(),this}get message(){return this._message}getMessage(){return this._message}setMessage(t){return this._requireNotFrozen(),t=a(t),this._message=t instanceof Uint8Array?t:n(t),this}getCustomFeeLimits(){return this._customFeeLimits}setCustomFeeLimits(t){return this._requireNotFrozen(),this._customFeeLimits=t,this}addCustomFeeLimit(t){return this._requireNotFrozen(),this._customFeeLimits.push(t),this}get maxChunks(){return this._maxChunks}getMaxChunks(){return this._maxChunks}setMaxChunks(t){return this._requireNotFrozen(),this._maxChunks=t,this}get chunkSize(){return this._chunkSize}getChunkSize(){return this._chunkSize}setChunkSize(t){return this._chunkSize=t,this}freezeWith(t){if(super.freezeWith(t),null==this._message)return this;const s=Math.floor((this._message.length+(this._chunkSize-1))/this._chunkSize);if(s>this._maxChunks)throw new Error(`Message with size ${this._message.length} too long for ${this._maxChunks} chunks`);const e=this._getTransactionId()._toProtobuf();let i=this._getTransactionId();this._transactionIds.locked=!1,this._transactions.clear(),this._transactionIds.clear(),this._signedTransactions.clear();for(let t=0;tthis._chunkSize)throw new Error(`cannot schedule \\`TopicMessageSubmitTransaction\\` with message over ${this._chunkSize} bytes`);return super.schedule()}async execute(t,s){return(await this.executeAll(t,s))[0]}async executeAll(t,s){super._isFrozen()||this.freezeWith(t);const e=this._getTransactionId(),i=t.operatorAccountId;null!=i&&i.equals(e.accountId)&&await super.signWithOperator(t);const n=[];let r=s;for(let s=0;sthis._message.length&&(s=this._message.length),{topicID:null!=this._topicId?this._topicId._toProtobuf():null,message:this._message.slice(t,s),chunkInfo:this._chunkInfo}}return{topicID:null!=this._topicId?this._topicId._toProtobuf():null,message:this._message}}_getLogId(){return`TopicMessageSubmitTransaction:${this._transactionIds.current.validStart.toString()}`}}s.set(\"consensusSubmitMessage\",u._fromProtobuf);export{u as default};\n//# sourceMappingURL=TopicMessageSubmitTransaction.js.map\n","import e,{TRANSACTION_REGISTRY as t}from\"../transaction/Transaction.js\";import o from\"../account/AccountId.js\";import i from\"./TopicId.js\";import s from\"../Duration.js\";import u from\"../Key.js\";import n from\"../Timestamp.js\";import r from\"../token/CustomFixedFee.js\";class l extends e{constructor(e={}){super(),this._topicId=null,null!=e.topicId&&this.setTopicId(e.topicId),this._topicMemo=null,null!=e.topicMemo&&this.setTopicMemo(e.topicMemo),this._submitKey=null,null!=e.submitKey&&this.setSubmitKey(e.submitKey),this._adminKey=null,null!=e.adminKey&&this.setAdminKey(e.adminKey),this._feeScheduleKey=null,null!=e.feeScheduleKey&&this.setFeeScheduleKey(e.feeScheduleKey),this._feeExemptKeys=null,null!=e.feeExemptKeys&&this.setFeeExemptKeys(e.feeExemptKeys),this._autoRenewAccountId=null,null!=e.autoRenewAccountId&&this.setAutoRenewAccountId(e.autoRenewAccountId),this._autoRenewPeriod=null,null!=e.autoRenewPeriod&&this.setAutoRenewPeriod(e.autoRenewPeriod),this._customFees=null,null!=e.customFees&&this.setCustomFees(e.customFees),this._expirationTime=null,null!=e.expirationTime&&this.setExpirationTime(e.expirationTime)}static _fromProtobuf(t,s,m,c,h){const a=h[0].consensusUpdateTopic;return e._fromProtobufTransactions(new l({topicId:null!=a.topicID?i._fromProtobuf(a.topicID):void 0,adminKey:null!=a.adminKey?u._fromProtobufKey(a.adminKey):void 0,submitKey:null!=a.submitKey?u._fromProtobufKey(a.submitKey):void 0,feeScheduleKey:null!=a.feeScheduleKey?u._fromProtobufKey(a.feeScheduleKey):void 0,feeExemptKeys:null!=a.feeExemptKeyList&&null!=a.feeExemptKeyList.keys?a?.feeExemptKeyList.keys.map((e=>u._fromProtobufKey(e))):void 0,autoRenewAccountId:null!=a.autoRenewAccount?o._fromProtobuf(a.autoRenewAccount):void 0,autoRenewPeriod:null!=a.autoRenewPeriod&&null!=a.autoRenewPeriod.seconds?a.autoRenewPeriod.seconds:void 0,customFees:null!=a.customFees&&null!=a.customFees.fees?a.customFees.fees.map((e=>r._fromProtobuf(e))):void 0,topicMemo:null!=a.memo&&Object.hasOwn(a.memo,\"value\")?a.memo.value:void 0,expirationTime:null!=a.expirationTime?n._fromProtobuf(a.expirationTime):void 0}),t,s,m,c,h)}get expirationTime(){return this._expirationTime}setExpirationTime(e){return this._requireNotFrozen(),this._expirationTime=e instanceof Date?n.fromDate(e):e,this}get topicId(){return this._topicId}setTopicId(e){return this._requireNotFrozen(),this._topicId=\"string\"==typeof e?i.fromString(e):e.clone(),this}clearTopicId(){return this._requireNotFrozen(),this._topicId=null,this}get topicMemo(){return this._topicMemo}setTopicMemo(e){return this._requireNotFrozen(),this._topicMemo=e,this}clearTopicMemo(){return this._requireNotFrozen(),this._topicMemo=null,this}get adminKey(){return this._adminKey}setAdminKey(e){return this._requireNotFrozen(),this._adminKey=e,this}clearAdminKey(){return this._requireNotFrozen(),this._adminKey=null,this}get submitKey(){return this._submitKey}setSubmitKey(e){return this._requireNotFrozen(),this._submitKey=e,this}clearSubmitKey(){return this._requireNotFrozen(),this._submitKey=null,this}getFeeScheduleKey(){return this._feeScheduleKey}setFeeScheduleKey(e){return this._requireNotFrozen(),this._feeScheduleKey=e,this}clearFeeScheduleKey(){return this._requireNotFrozen(),this._feeScheduleKey=null,this}getFeeExemptKeys(){return this._feeExemptKeys}setFeeExemptKeys(e){return this._requireNotFrozen(),this._feeExemptKeys=e,this}addFeeExemptKey(e){return this._requireNotFrozen(),null==this._feeExemptKeys&&(this._feeExemptKeys=[]),this._feeExemptKeys.push(e),this}clearFeeExemptKeys(){return this._requireNotFrozen(),this._feeExemptKeys=null,this}get autoRenewAccountId(){return this._autoRenewAccountId}setAutoRenewAccountId(e){return this._requireNotFrozen(),this._autoRenewAccountId=e instanceof o?e:o.fromString(e),this}clearAutoRenewAccountId(){return this._requireNotFrozen(),this._autoRenewAccountId=null,this}get autoRenewPeriod(){return this._autoRenewPeriod}setAutoRenewPeriod(e){return this._requireNotFrozen(),this._autoRenewPeriod=e instanceof s?e:new s(e),this}getCustomFees(){return this._customFees}setCustomFees(e){return this._requireNotFrozen(),this._customFees=e,this}addCustomFee(e){return this._requireNotFrozen(),null==this._customFees&&(this._customFees=[]),this._customFees.push(e),this}clearCustomFees(){return this._requireNotFrozen(),this._customFees=null,this}_validateChecksums(e){null!=this._topicId&&this._topicId.validateChecksum(e),null!=this._autoRenewAccountId&&this._autoRenewAccountId.validateChecksum(e)}_execute(e,t){return e.consensus.updateTopic(t)}_getTransactionDataCase(){return\"consensusUpdateTopic\"}_makeTransactionData(){return{topicID:null!=this._topicId?this._topicId._toProtobuf():null,adminKey:null!=this._adminKey?this._adminKey._toProtobufKey():null,submitKey:null!=this._submitKey?this._submitKey._toProtobufKey():null,feeScheduleKey:null!=this._feeScheduleKey?this._feeScheduleKey._toProtobufKey():null,feeExemptKeyList:null!=this._feeExemptKeys?{keys:this._feeExemptKeys.map((e=>e._toProtobufKey()))}:null,memo:null!=this._topicMemo?{value:this._topicMemo}:null,autoRenewAccount:null!=this._autoRenewAccountId?this._autoRenewAccountId._toProtobuf():null,autoRenewPeriod:null!=this._autoRenewPeriod?this._autoRenewPeriod._toProtobuf():null,customFees:null!=this._customFees?{fees:this._customFees.map((e=>e._toTopicFeeProtobuf()))}:null,expirationTime:null!=this._expirationTime?this._expirationTime._toProtobuf():null}}_getLogId(){return`TopicUpdateTransaction:${this._transactionIds.current.validStart.toString()}`}}t.set(\"consensusUpdateTopic\",l._fromProtobuf);export{l as default};\n//# sourceMappingURL=TopicUpdateTransaction.js.map\n","import o from\"./AccountId.js\";import t from\"../Hbar.js\";import r from\"../ObjectMap.js\";class n extends r{constructor(){super((t=>o.fromString(t)))}static _fromProtobuf(r){const s=new n;for(const n of null!=r.accountAmounts?r.accountAmounts:[]){const r=o._fromProtobuf(n.accountID);s._set(r,t.fromTinybars(n.amount))}return s}}export{n as default};\n//# sourceMappingURL=HbarTransferMap.js.map\n","import r from\"../Hbar.js\";import t from\"../token/TokenId.js\";import s from\"./AccountId.js\";import n,{TRANSACTION_REGISTRY as o}from\"../transaction/Transaction.js\";import a from\"../Transfer.js\";import e from\"../token/TokenTransfer.js\";import f from\"./HbarTransferMap.js\";import c from\"../token/TokenNftTransfer.js\";import i from\"../token/NftId.js\";import u from\"../token/AbstractTokenTransferTransaction.js\";class T extends u{constructor(t={}){super(),this._hbarTransfers=[],this._defaultMaxTransactionFee=new r(1);for(const r of null!=t.hbarTransfers?t.hbarTransfers:[])this.addHbarTransfer(r.accountId,r.amount)}static _fromProtobuf(r,t,s,o,f){const i=f[0].cryptoTransfer,u=new T;return u._tokenTransfers=e._fromProtobuf(null!=i.tokenTransfers?i.tokenTransfers:[]),u._hbarTransfers=a._fromProtobuf(null!=i.transfers&&null!=i.transfers.accountAmounts?i.transfers.accountAmounts:[]),u._nftTransfers=c._fromProtobuf(null!=i.tokenTransfers?i.tokenTransfers:[]),n._fromProtobufTransactions(u,r,t,s,o,f)}get hbarTransfers(){const r=new f;for(const t of this._hbarTransfers)r._set(t.accountId,t.amount);return r}get hbarTransfersList(){return this._hbarTransfers}_addHbarTransfer(t,n,o){this._requireNotFrozen();const e=t instanceof s?t.clone():s.fromString(t),f=n instanceof r?n:new r(n);for(const t of this._hbarTransfers)if(0===t.accountId.compare(e))return t.amount=r.fromTinybars(t.amount.toTinybars().add(f.toTinybars())),this;return this._hbarTransfers.push(new a({accountId:e,amount:f,isApproved:o})),this}addHbarTransfer(r,t){return this._addHbarTransfer(r,t,!1)}addApprovedHbarTransfer(r,t){return this._addHbarTransfer(r,t,!0)}_validateChecksums(r){for(const t of this._hbarTransfers)t.accountId.validateChecksum(r);for(const t of this._tokenTransfers)t.tokenId.validateChecksum(r),t.accountId.validateChecksum(r);for(const t of this._nftTransfers)t.tokenId.validateChecksum(r),t.senderAccountId.validateChecksum(r),t.receiverAccountId.validateChecksum(r)}setHbarTransferApproval(r,t){const n=\"string\"==typeof r?s.fromString(r):r;for(const r of this._hbarTransfers)0===r.accountId.compare(n)&&(r.isApproved=t);return this}setTokenTransferApproval(r,n,o){const a=\"string\"==typeof r?t.fromString(r):r,e=\"string\"==typeof n?s.fromString(n):n;for(const r of this._tokenTransfers)0===r.tokenId.compare(a)&&0===r.accountId.compare(e)&&(r.isApproved=o);return this}setNftTransferApproval(r,t){const s=\"string\"==typeof r?i.fromString(r):r;for(const r of this._nftTransfers)0===r.tokenId.compare(s.tokenId)&&0===r.serialNumber.compare(s.serial)&&(r.isApproved=t);return this}_execute(r,t){return r.crypto.cryptoTransfer(t)}_getTransactionDataCase(){return\"cryptoTransfer\"}_makeTransactionData(){const{tokenTransfers:r}=super._makeTransactionData();return this._hbarTransfers.sort(((r,t)=>r.accountId.compare(t.accountId))),{transfers:{accountAmounts:this._hbarTransfers.map((r=>({accountID:r.accountId._toProtobuf(),amount:r.amount.toTinybars(),isApproval:r.isApproved})))},tokenTransfers:r}}_getLogId(){return`TransferTransaction:${this._transactionIds.current.validStart.toString()}`}}o.set(\"cryptoTransfer\",T._fromProtobuf);export{T as default};\n//# sourceMappingURL=TransferTransaction.js.map\n","'use strict'\nfunction tryStringify (o) {\n try { return JSON.stringify(o) } catch(e) { return '\"[Circular]\"' }\n}\n\nmodule.exports = format\n\nfunction format(f, args, opts) {\n var ss = (opts && opts.stringify) || tryStringify\n var offset = 1\n if (typeof f === 'object' && f !== null) {\n var len = args.length + offset\n if (len === 1) return f\n var objects = new Array(len)\n objects[0] = ss(f)\n for (var index = 1; index < len; index++) {\n objects[index] = ss(args[index])\n }\n return objects.join(' ')\n }\n if (typeof f !== 'string') {\n return f\n }\n var argLen = args.length\n if (argLen === 0) return f\n var str = ''\n var a = 1 - offset\n var lastPos = -1\n var flen = (f && f.length) || 0\n for (var i = 0; i < flen;) {\n if (f.charCodeAt(i) === 37 && i + 1 < flen) {\n lastPos = lastPos > -1 ? lastPos : 0\n switch (f.charCodeAt(i + 1)) {\n case 100: // 'd'\n case 102: // 'f'\n if (a >= argLen)\n break\n if (args[a] == null) break\n if (lastPos < i)\n str += f.slice(lastPos, i)\n str += Number(args[a])\n lastPos = i + 2\n i++\n break\n case 105: // 'i'\n if (a >= argLen)\n break\n if (args[a] == null) break\n if (lastPos < i)\n str += f.slice(lastPos, i)\n str += Math.floor(Number(args[a]))\n lastPos = i + 2\n i++\n break\n case 79: // 'O'\n case 111: // 'o'\n case 106: // 'j'\n if (a >= argLen)\n break\n if (args[a] === undefined) break\n if (lastPos < i)\n str += f.slice(lastPos, i)\n var type = typeof args[a]\n if (type === 'string') {\n str += '\\'' + args[a] + '\\''\n lastPos = i + 2\n i++\n break\n }\n if (type === 'function') {\n str += args[a].name || ''\n lastPos = i + 2\n i++\n break\n }\n str += ss(args[a])\n lastPos = i + 2\n i++\n break\n case 115: // 's'\n if (a >= argLen)\n break\n if (lastPos < i)\n str += f.slice(lastPos, i)\n str += String(args[a])\n lastPos = i + 2\n i++\n break\n case 37: // '%'\n if (lastPos < i)\n str += f.slice(lastPos, i)\n str += '%'\n lastPos = i + 2\n i++\n a--\n break\n }\n ++a\n }\n ++i\n }\n if (lastPos === -1)\n return f\n else if (lastPos < flen) {\n str += f.slice(lastPos)\n }\n\n return str\n}\n","'use strict'\n\nconst format = require('quick-format-unescaped')\n\nmodule.exports = pino\n\nconst _console = pfGlobalThisOrFallback().console || {}\nconst stdSerializers = {\n mapHttpRequest: mock,\n mapHttpResponse: mock,\n wrapRequestSerializer: passthrough,\n wrapResponseSerializer: passthrough,\n wrapErrorSerializer: passthrough,\n req: mock,\n res: mock,\n err: asErrValue,\n errWithCause: asErrValue\n}\nfunction levelToValue (level, logger) {\n return level === 'silent'\n ? Infinity\n : logger.levels.values[level]\n}\nconst baseLogFunctionSymbol = Symbol('pino.logFuncs')\nconst hierarchySymbol = Symbol('pino.hierarchy')\n\nconst logFallbackMap = {\n error: 'log',\n fatal: 'error',\n warn: 'error',\n info: 'log',\n debug: 'log',\n trace: 'log'\n}\n\nfunction appendChildLogger (parentLogger, childLogger) {\n const newEntry = {\n logger: childLogger,\n parent: parentLogger[hierarchySymbol]\n }\n childLogger[hierarchySymbol] = newEntry\n}\n\nfunction setupBaseLogFunctions (logger, levels, proto) {\n const logFunctions = {}\n levels.forEach(level => {\n logFunctions[level] = proto[level] ? proto[level] : (_console[level] || _console[logFallbackMap[level] || 'log'] || noop)\n })\n logger[baseLogFunctionSymbol] = logFunctions\n}\n\nfunction shouldSerialize (serialize, serializers) {\n if (Array.isArray(serialize)) {\n const hasToFilter = serialize.filter(function (k) {\n return k !== '!stdSerializers.err'\n })\n return hasToFilter\n } else if (serialize === true) {\n return Object.keys(serializers)\n }\n\n return false\n}\n\nfunction pino (opts) {\n opts = opts || {}\n opts.browser = opts.browser || {}\n\n const transmit = opts.browser.transmit\n if (transmit && typeof transmit.send !== 'function') { throw Error('pino: transmit option must have a send function') }\n\n const proto = opts.browser.write || _console\n if (opts.browser.write) opts.browser.asObject = true\n const serializers = opts.serializers || {}\n const serialize = shouldSerialize(opts.browser.serialize, serializers)\n let stdErrSerialize = opts.browser.serialize\n\n if (\n Array.isArray(opts.browser.serialize) &&\n opts.browser.serialize.indexOf('!stdSerializers.err') > -1\n ) stdErrSerialize = false\n\n const customLevels = Object.keys(opts.customLevels || {})\n const levels = ['error', 'fatal', 'warn', 'info', 'debug', 'trace'].concat(customLevels)\n\n if (typeof proto === 'function') {\n levels.forEach(function (level) {\n proto[level] = proto\n })\n }\n if (opts.enabled === false || opts.browser.disabled) opts.level = 'silent'\n const level = opts.level || 'info'\n const logger = Object.create(proto)\n if (!logger.log) logger.log = noop\n\n setupBaseLogFunctions(logger, levels, proto)\n // setup root hierarchy entry\n appendChildLogger({}, logger)\n\n Object.defineProperty(logger, 'levelVal', {\n get: getLevelVal\n })\n Object.defineProperty(logger, 'level', {\n get: getLevel,\n set: setLevel\n })\n\n const setOpts = {\n transmit,\n serialize,\n asObject: opts.browser.asObject,\n formatters: opts.browser.formatters,\n levels,\n timestamp: getTimeFunction(opts),\n messageKey: opts.messageKey || 'msg',\n onChild: opts.onChild || noop\n }\n logger.levels = getLevels(opts)\n logger.level = level\n\n logger.setMaxListeners = logger.getMaxListeners =\n logger.emit = logger.addListener = logger.on =\n logger.prependListener = logger.once =\n logger.prependOnceListener = logger.removeListener =\n logger.removeAllListeners = logger.listeners =\n logger.listenerCount = logger.eventNames =\n logger.write = logger.flush = noop\n logger.serializers = serializers\n logger._serialize = serialize\n logger._stdErrSerialize = stdErrSerialize\n logger.child = function (...args) { return child.call(this, setOpts, ...args) }\n\n if (transmit) logger._logEvent = createLogEventShape()\n\n function getLevelVal () {\n return levelToValue(this.level, this)\n }\n\n function getLevel () {\n return this._level\n }\n function setLevel (level) {\n if (level !== 'silent' && !this.levels.values[level]) {\n throw Error('unknown level ' + level)\n }\n this._level = level\n\n set(this, setOpts, logger, 'error') // <-- must stay first\n set(this, setOpts, logger, 'fatal')\n set(this, setOpts, logger, 'warn')\n set(this, setOpts, logger, 'info')\n set(this, setOpts, logger, 'debug')\n set(this, setOpts, logger, 'trace')\n\n customLevels.forEach((level) => {\n set(this, setOpts, logger, level)\n })\n }\n\n function child (setOpts, bindings, childOptions) {\n if (!bindings) {\n throw new Error('missing bindings for child Pino')\n }\n childOptions = childOptions || {}\n if (serialize && bindings.serializers) {\n childOptions.serializers = bindings.serializers\n }\n const childOptionsSerializers = childOptions.serializers\n if (serialize && childOptionsSerializers) {\n var childSerializers = Object.assign({}, serializers, childOptionsSerializers)\n var childSerialize = opts.browser.serialize === true\n ? Object.keys(childSerializers)\n : serialize\n delete bindings.serializers\n applySerializers([bindings], childSerialize, childSerializers, this._stdErrSerialize)\n }\n function Child (parent) {\n this._childLevel = (parent._childLevel | 0) + 1\n\n // make sure bindings are available in the `set` function\n this.bindings = bindings\n\n if (childSerializers) {\n this.serializers = childSerializers\n this._serialize = childSerialize\n }\n if (transmit) {\n this._logEvent = createLogEventShape(\n [].concat(parent._logEvent.bindings, bindings)\n )\n }\n }\n Child.prototype = this\n const newLogger = new Child(this)\n\n // must happen before the level is assigned\n appendChildLogger(this, newLogger)\n newLogger.child = function (...args) { return child.call(this, setOpts, ...args) }\n // required to actually initialize the logger functions for any given child\n newLogger.level = childOptions.level || this.level // allow level to be set by childOptions\n setOpts.onChild(newLogger)\n\n return newLogger\n }\n return logger\n}\n\nfunction getLevels (opts) {\n const customLevels = opts.customLevels || {}\n\n const values = Object.assign({}, pino.levels.values, customLevels)\n const labels = Object.assign({}, pino.levels.labels, invertObject(customLevels))\n\n return {\n values,\n labels\n }\n}\n\nfunction invertObject (obj) {\n const inverted = {}\n Object.keys(obj).forEach(function (key) {\n inverted[obj[key]] = key\n })\n return inverted\n}\n\npino.levels = {\n values: {\n fatal: 60,\n error: 50,\n warn: 40,\n info: 30,\n debug: 20,\n trace: 10\n },\n labels: {\n 10: 'trace',\n 20: 'debug',\n 30: 'info',\n 40: 'warn',\n 50: 'error',\n 60: 'fatal'\n }\n}\n\npino.stdSerializers = stdSerializers\npino.stdTimeFunctions = Object.assign({}, { nullTime, epochTime, unixTime, isoTime })\n\nfunction getBindingChain (logger) {\n const bindings = []\n if (logger.bindings) {\n bindings.push(logger.bindings)\n }\n\n // traverse up the tree to get all bindings\n let hierarchy = logger[hierarchySymbol]\n while (hierarchy.parent) {\n hierarchy = hierarchy.parent\n if (hierarchy.logger.bindings) {\n bindings.push(hierarchy.logger.bindings)\n }\n }\n\n return bindings.reverse()\n}\n\nfunction set (self, opts, rootLogger, level) {\n // override the current log functions with either `noop` or the base log function\n Object.defineProperty(self, level, {\n value: (levelToValue(self.level, rootLogger) > levelToValue(level, rootLogger)\n ? noop\n : rootLogger[baseLogFunctionSymbol][level]),\n writable: true,\n enumerable: true,\n configurable: true\n })\n\n if (self[level] === noop) {\n if (!opts.transmit) return\n\n const transmitLevel = opts.transmit.level || self.level\n const transmitValue = levelToValue(transmitLevel, rootLogger)\n const methodValue = levelToValue(level, rootLogger)\n if (methodValue < transmitValue) return\n }\n\n // make sure the log format is correct\n self[level] = createWrap(self, opts, rootLogger, level)\n\n // prepend bindings if it is not the root logger\n const bindings = getBindingChain(self)\n if (bindings.length === 0) {\n // early exit in case for rootLogger\n return\n }\n self[level] = prependBindingsInArguments(bindings, self[level])\n}\n\nfunction prependBindingsInArguments (bindings, logFunc) {\n return function () {\n return logFunc.apply(this, [...bindings, ...arguments])\n }\n}\n\nfunction createWrap (self, opts, rootLogger, level) {\n return (function (write) {\n return function LOG () {\n const ts = opts.timestamp()\n const args = new Array(arguments.length)\n const proto = (Object.getPrototypeOf && Object.getPrototypeOf(this) === _console) ? _console : this\n for (var i = 0; i < args.length; i++) args[i] = arguments[i]\n\n var argsIsSerialized = false\n if (opts.serialize) {\n applySerializers(args, this._serialize, this.serializers, this._stdErrSerialize)\n argsIsSerialized = true\n }\n if (opts.asObject || opts.formatters) {\n write.call(proto, asObject(this, level, args, ts, opts))\n } else write.apply(proto, args)\n\n if (opts.transmit) {\n const transmitLevel = opts.transmit.level || self._level\n const transmitValue = levelToValue(transmitLevel, rootLogger)\n const methodValue = levelToValue(level, rootLogger)\n if (methodValue < transmitValue) return\n transmit(this, {\n ts,\n methodLevel: level,\n methodValue,\n transmitLevel,\n transmitValue: rootLogger.levels.values[opts.transmit.level || self._level],\n send: opts.transmit.send,\n val: levelToValue(self._level, rootLogger)\n }, args, argsIsSerialized)\n }\n }\n })(self[baseLogFunctionSymbol][level])\n}\n\nfunction asObject (logger, level, args, ts, opts) {\n const {\n level: levelFormatter,\n log: logObjectFormatter = (obj) => obj\n } = opts.formatters || {}\n const argsCloned = args.slice()\n let msg = argsCloned[0]\n const logObject = {}\n if (ts) {\n logObject.time = ts\n }\n\n if (levelFormatter) {\n const formattedLevel = levelFormatter(level, logger.levels.values[level])\n Object.assign(logObject, formattedLevel)\n } else {\n logObject.level = logger.levels.values[level]\n }\n\n let lvl = (logger._childLevel | 0) + 1\n if (lvl < 1) lvl = 1\n // deliberate, catching objects, arrays\n if (msg !== null && typeof msg === 'object') {\n while (lvl-- && typeof argsCloned[0] === 'object') {\n Object.assign(logObject, argsCloned.shift())\n }\n msg = argsCloned.length ? format(argsCloned.shift(), argsCloned) : undefined\n } else if (typeof msg === 'string') msg = format(argsCloned.shift(), argsCloned)\n if (msg !== undefined) logObject[opts.messageKey] = msg\n\n const formattedLogObject = logObjectFormatter(logObject)\n return formattedLogObject\n}\n\nfunction applySerializers (args, serialize, serializers, stdErrSerialize) {\n for (const i in args) {\n if (stdErrSerialize && args[i] instanceof Error) {\n args[i] = pino.stdSerializers.err(args[i])\n } else if (typeof args[i] === 'object' && !Array.isArray(args[i]) && serialize) {\n for (const k in args[i]) {\n if (serialize.indexOf(k) > -1 && k in serializers) {\n args[i][k] = serializers[k](args[i][k])\n }\n }\n }\n }\n}\n\nfunction transmit (logger, opts, args, argsIsSerialized = false) {\n const send = opts.send\n const ts = opts.ts\n const methodLevel = opts.methodLevel\n const methodValue = opts.methodValue\n const val = opts.val\n const bindings = logger._logEvent.bindings\n\n if (!argsIsSerialized) {\n applySerializers(\n args,\n logger._serialize || Object.keys(logger.serializers),\n logger.serializers,\n logger._stdErrSerialize === undefined ? true : logger._stdErrSerialize\n )\n }\n\n logger._logEvent.ts = ts\n logger._logEvent.messages = args.filter(function (arg) {\n // bindings can only be objects, so reference equality check via indexOf is fine\n return bindings.indexOf(arg) === -1\n })\n\n logger._logEvent.level.label = methodLevel\n logger._logEvent.level.value = methodValue\n\n send(methodLevel, logger._logEvent, val)\n\n logger._logEvent = createLogEventShape(bindings)\n}\n\nfunction createLogEventShape (bindings) {\n return {\n ts: 0,\n messages: [],\n bindings: bindings || [],\n level: { label: '', value: 0 }\n }\n}\n\nfunction asErrValue (err) {\n const obj = {\n type: err.constructor.name,\n msg: err.message,\n stack: err.stack\n }\n for (const key in err) {\n if (obj[key] === undefined) {\n obj[key] = err[key]\n }\n }\n return obj\n}\n\nfunction getTimeFunction (opts) {\n if (typeof opts.timestamp === 'function') {\n return opts.timestamp\n }\n if (opts.timestamp === false) {\n return nullTime\n }\n return epochTime\n}\n\nfunction mock () { return {} }\nfunction passthrough (a) { return a }\nfunction noop () {}\n\nfunction nullTime () { return false }\nfunction epochTime () { return Date.now() }\nfunction unixTime () { return Math.round(Date.now() / 1000.0) }\nfunction isoTime () { return new Date(Date.now()).toISOString() } // using Date.now() for testability\n\n/* eslint-disable */\n/* istanbul ignore next */\nfunction pfGlobalThisOrFallback () {\n function defd (o) { return typeof o !== 'undefined' && o }\n try {\n if (typeof globalThis !== 'undefined') return globalThis\n Object.defineProperty(Object.prototype, 'globalThis', {\n get: function () {\n delete Object.prototype.globalThis\n return (this.globalThis = this)\n },\n configurable: true\n })\n return globalThis\n } catch (e) {\n return defd(self) || defd(window) || defd(this) || {}\n }\n}\n/* eslint-enable */\n\nmodule.exports.default = pino\nmodule.exports.pino = pino\n","class e{constructor(e){this._name=e,Object.freeze(this)}toString(){switch(this){case e.Silent:return\"silent\";case e.Trace:return\"trace\";case e.Debug:return\"debug\";case e.Info:return\"info\";case e.Warn:return\"warn\";case e.Error:return\"error\";case e.Fatal:return\"fatal\";default:return`Unknown log level (${this._name})`}}static _fromString(r){switch(r){case\"silent\":return e.Silent;case\"trace\":return e.Trace;case\"debug\":return e.Debug;case\"info\":return e.Info;case\"warn\":return e.Warn;case\"error\":return e.Error;case\"fatal\":return e.Fatal;default:throw new Error(`Unknown log level: ${r}`)}}}e.Silent=new e(\"silent\"),e.Trace=new e(\"trace\"),e.Debug=new e(\"debug\"),e.Info=new e(\"info\"),e.Warn=new e(\"warn\"),e.Error=new e(\"error\"),e.Fatal=new e(\"fatal\");export{e as default};\n//# sourceMappingURL=LogLevel.js.map\n","import t from\"./TokenId.js\";import e,{TRANSACTION_REGISTRY as a}from\"../transaction/Transaction.js\";class s extends e{constructor(t={}){super(),this._tokenId=null,this._serialNumbers=[],this._metadata=null,null!=t.tokenId&&this.setTokenId(t.tokenId),null!=t.serialNumbers&&this.setSerialNumbers(t.serialNumbers),null!=t.metadata&&this.setMetadata(t.metadata)}static _fromProtobuf(a,r,n,o,i){const u=i[0].tokenUpdateNfts;return e._fromProtobufTransactions(new s({tokenId:null!=u.token?t._fromProtobuf(u.token):void 0,serialNumbers:null!=u.serialNumbers?u.serialNumbers:[],metadata:null!=u.metadata&&Object.hasOwn(u.metadata,\"value\")?u.metadata.value:void 0}),a,r,n,o,i)}setTokenId(e){return this._requireNotFrozen(),this._tokenId=\"string\"==typeof e?t.fromString(e):e.clone(),this}setSerialNumbers(t){return this._requireNotFrozen(),this._serialNumbers=t,this}setMetadata(t){return this._requireNotFrozen(),this._metadata=t,this}_validateChecksums(t){null!=this._tokenId&&this._tokenId.validateChecksum(t)}_execute(t,e){return t.token.pauseToken(e)}_getTransactionDataCase(){return\"tokenUpdateNfts\"}_makeTransactionData(){return{token:null!=this._tokenId?this._tokenId._toProtobuf():null,serialNumbers:null!=this._serialNumbers?this._serialNumbers:[],...null!=this._metadata?{metadata:{value:this._metadata}}:null}}_getLogId(){return`TokenUpdateNftsTransaction:${this._transactionIds.current.validStart.toString()}`}}a.set(\"tokenUpdateNfts\",s._fromProtobuf);export{s as default};\n//# sourceMappingURL=TokenUpdateNftsTransaction.js.map\n","class t{constructor(t){this._ipAddressV4=null!=t?.ipAddressV4?t.ipAddressV4:null,this._port=null!=t?.port?t.port:null,this._domainName=null!=t?.domainName?t.domainName:null}setIpAddressV4(t){if(null!=this._domainName)throw new Error(\"Cannot set IP address when domain name is already set.\");return this._ipAddressV4=t,this}get getIpAddressV4(){return this._ipAddressV4}setPort(t){return this._port=t,this}get getPort(){return this._port}setDomainName(t){if(null!=this._ipAddressV4)throw new Error(\"Cannot set domain name when IP address is already set.\");return this._domainName=t,this}get getDomainName(){return this._domainName}static _fromProtobuf(s){return new t({ipAddressV4:null!=s.ipAddressV4?s.ipAddressV4:void 0,port:null!=s.port?s.port:void 0,domainName:null!=s.domainName?s.domainName:void 0})}_toProtobuf(){return{ipAddressV4:this._ipAddressV4,port:this._port,domainName:this._domainName}}}export{t as default};\n//# sourceMappingURL=ServiceEndpoint.js.map\n","import t from\"../account/AccountId.js\";import i from\"../Key.js\";import e,{TRANSACTION_REGISTRY as n}from\"../transaction/Transaction.js\";import s from\"./ServiceEndpoint.js\";class r extends e{constructor(t){super(),this._accountId=null!=t?.accountId?t.accountId:null,this._description=null!=t?.description?t.description:null,this._gossipEndpoints=null!=t?.gossipEndpoints?t.gossipEndpoints:null,this._serviceEndpoints=null!=t?.serviceEndpoints?t.serviceEndpoints:null,this._gossipCaCertificate=null!=t?.gossipCaCertificate?t.gossipCaCertificate:null,this._grpcCertificateHash=null!=t?.grpcCertificateHash?t.grpcCertificateHash:null,this._adminKey=null!=t?.adminKey?t.adminKey:null,this._declineReward=null!=t?.declineReward?t.declineReward:null}static _fromProtobuf(n,o,a,c,d){const u=d[0].nodeCreate;return e._fromProtobufTransactions(new r({accountId:null!=u.accountId?t._fromProtobuf(u.accountId):void 0,description:null!=u.description?u.description:void 0,gossipEndpoints:null!=u.gossipEndpoint?u.gossipEndpoint.map((t=>s._fromProtobuf(t))):void 0,serviceEndpoints:null!=u.serviceEndpoint?u.serviceEndpoint.map((t=>s._fromProtobuf(t))):void 0,gossipCaCertificate:null!=u.gossipCaCertificate?u.gossipCaCertificate:void 0,grpcCertificateHash:null!=u.grpcCertificateHash?u.grpcCertificateHash:void 0,adminKey:null!=u.adminKey?i._fromProtobufKey(u.adminKey):void 0,declineReward:null!=u.declineReward?u.declineReward:void 0}),n,o,a,c,d)}setAccountId(i){return this._requireNotFrozen(),this._accountId=i instanceof t?i:t.fromString(i),this}get accountId(){return this._accountId}setDescription(t){if(this._requireNotFrozen(),t.length>100)throw new Error(\"Description must be at most 100 characters.\");return this._description=t,this}get description(){return this._description}setGossipEndpoints(t){if(this._requireNotFrozen(),0==t.length)throw new Error(\"GossipEndpoints list must not be empty.\");if(t.length>10)throw new Error(\"GossipEndpoints list must not contain more than 10 entries.\");return this._gossipEndpoints=[...t],this}get gossipEndpoints(){return this._gossipEndpoints}addGossipEndpoint(t){return null!=this._gossipEndpoints&&this._gossipEndpoints.push(t),this}setServiceEndpoints(t){if(this._requireNotFrozen(),0==t.length)throw new Error(\"ServiceEndpoints list must not be empty.\");if(t.length>8)throw new Error(\"ServiceEndpoints list must not contain more than 8 entries.\");return this._serviceEndpoints=[...t],this}get serviceEndpoints(){return this._serviceEndpoints}addServiceEndpoint(t){return null!=this._serviceEndpoints&&this._serviceEndpoints.push(t),this}setGossipCaCertificate(t){if(this._requireNotFrozen(),0==t.length)throw new Error(\"GossipCaCertificate must not be empty.\");return this._gossipCaCertificate=t,this}get gossipCaCertificate(){return this._gossipCaCertificate}setCertificateHash(t){return this._requireNotFrozen(),this._grpcCertificateHash=t,this}get certificateHash(){return this._grpcCertificateHash}setAdminKey(t){return this._requireNotFrozen(),this._adminKey=t,this}get adminKey(){return this._adminKey}setDeclineReward(t){return this._requireNotFrozen(),this._declineReward=t,this}get declineReward(){return this._declineReward}_execute(t,i){return t.addressBook.createNode(i)}_getTransactionDataCase(){return\"nodeCreate\"}_makeTransactionData(){return{accountId:null!=this._accountId?this._accountId._toProtobuf():null,description:null!=this._description?this._description:null,gossipEndpoint:null!=this._gossipEndpoints?this._gossipEndpoints.map((t=>t._toProtobuf())):null,serviceEndpoint:null!=this._serviceEndpoints?this._serviceEndpoints.map((t=>t._toProtobuf())):null,gossipCaCertificate:null!=this._gossipCaCertificate?this._gossipCaCertificate:null,grpcCertificateHash:null!=this._grpcCertificateHash?this._grpcCertificateHash:null,adminKey:null!=this._adminKey?this._adminKey._toProtobufKey():null,declineReward:null!=this._declineReward?this._declineReward:null}}_getLogId(){return`NodeCreateTransaction:${this._transactionIds.current.validStart.toString()}`}}n.set(\"nodeCreate\",r._fromProtobuf);export{r as default};\n//# sourceMappingURL=NodeCreateTransaction.js.map\n","import e,{TRANSACTION_REGISTRY as t}from\"../transaction/Transaction.js\";class n extends e{constructor(e){super(),this._nodeId=null!=e?.nodeId?e.nodeId:null}static _fromProtobuf(t,o,d,r,s){const a=s[0].nodeDelete;return e._fromProtobufTransactions(new n({nodeId:null!=a.nodeId?a.nodeId:void 0}),t,o,d,r,s)}setNodeId(e){return this._nodeId=e,this}get nodeId(){return this._nodeId}_execute(e,t){return e.addressBook.deleteNode(t)}_getTransactionDataCase(){return\"nodeDelete\"}_makeTransactionData(){return{nodeId:null!=this._nodeId?this._nodeId:null}}_getLogId(){return`NodeDeleteTransaction:${this._transactionIds.current.validStart.toString()}`}}t.set(\"nodeDelete\",n._fromProtobuf);export{n as default};\n//# sourceMappingURL=NodeDeleteTransaction.js.map\n","import t from\"../account/AccountId.js\";import i from\"../Key.js\";import e,{TRANSACTION_REGISTRY as n}from\"../transaction/Transaction.js\";import s from\"./ServiceEndpoint.js\";class r extends e{constructor(t){super(),this._nodeId=null!=t?.nodeId?t.nodeId:null,this._accountId=null!=t?.accountId?t.accountId:null,this._description=null!=t?.description?t.description:null,this._gossipEndpoints=null!=t?.gossipEndpoints?t.gossipEndpoints:null,this._serviceEndpoints=null!=t?.serviceEndpoints?t.serviceEndpoints:null,this._gossipCaCertificate=null!=t?.gossipCaCertificate?t.gossipCaCertificate:null,this._grpcCertificateHash=null!=t?.grpcCertificateHash?t.grpcCertificateHash:null,this._adminKey=null!=t?.adminKey?t.adminKey:null,this._declineReward=null!=t?.declineReward?t.declineReward:null}static _fromProtobuf(n,o,d,a,c){const u=c[0].nodeUpdate;return e._fromProtobufTransactions(new r({nodeId:null!=u.nodeId?u.nodeId:void 0,accountId:null!=u.accountId?t._fromProtobuf(u.accountId):void 0,description:null!=u.description&&Object.hasOwn(u.description,\"value\")?u.description.value:void 0,gossipEndpoints:null!=u.gossipEndpoint?u.gossipEndpoint.map((t=>s._fromProtobuf(t))):void 0,serviceEndpoints:null!=u.serviceEndpoint?u.serviceEndpoint.map((t=>s._fromProtobuf(t))):void 0,gossipCaCertificate:null!=u.gossipCaCertificate&&Object.hasOwn(u.gossipCaCertificate,\"value\")?u.gossipCaCertificate.value:void 0,grpcCertificateHash:null!=u.grpcCertificateHash&&Object.hasOwn(u.grpcCertificateHash,\"value\")?u.grpcCertificateHash.value:void 0,adminKey:null!=u.adminKey?i._fromProtobufKey(u.adminKey):void 0,declineReward:null!=u.declineReward?.value?u.declineReward.value:void 0}),n,o,d,a,c)}setNodeId(t){return this._requireNotFrozen(),this._nodeId=t,this}get nodeId(){return this._nodeId}setAccountId(i){return this._requireNotFrozen(),this._accountId=i instanceof t?i:t.fromString(i),this}get accountId(){return this._accountId}setDescription(t){if(this._requireNotFrozen(),t.length>100)throw new Error(\"Description must be at most 100 characters.\");return this._description=t,this}clearDescription(){this._description=\"\"}get description(){return this._description}setGossipEndpoints(t){if(this._requireNotFrozen(),0==t.length)throw new Error(\"GossipEndpoints list must not be empty.\");if(t.length>10)throw new Error(\"GossipEndpoints list must not contain more than 10 entries.\");return this._gossipEndpoints=[...t],this}get gossipEndpoints(){return this._gossipEndpoints}addGossipEndpoint(t){return this._requireNotFrozen(),null!=this._gossipEndpoints&&this._gossipEndpoints.push(t),this}setServiceEndpoints(t){if(this._requireNotFrozen(),0==t.length)throw new Error(\"ServiceEndpoints list must not be empty.\");if(t.length>8)throw new Error(\"ServiceEndpoints list must not contain more than 8 entries.\");return this._serviceEndpoints=[...t],this}get serviceEndpoints(){return this._serviceEndpoints}addServiceEndpoint(t){return this._requireNotFrozen(),null!=this._serviceEndpoints&&this._serviceEndpoints.push(t),this}setGossipCaCertificate(t){if(this._requireNotFrozen(),0==t.length)throw new Error(\"GossipCaCertificate must not be empty.\");return this._gossipCaCertificate=t,this}get gossipCaCertificate(){return this._gossipCaCertificate}setCertificateHash(t){return this._requireNotFrozen(),this._grpcCertificateHash=t,this}get certificateHash(){return this._grpcCertificateHash}setAdminKey(t){return this._requireNotFrozen(),this._adminKey=t,this}get adminKey(){return this._adminKey}setDeclineReward(t){return this._requireNotFrozen(),this._declineReward=t,this}get declineReward(){return this._declineReward}_execute(t,i){return t.addressBook.updateNode(i)}_getTransactionDataCase(){return\"nodeUpdate\"}_makeTransactionData(){return{accountId:null!=this._accountId?this._accountId._toProtobuf():null,description:{value:null!=this._description?this._description:null},gossipEndpoint:null!=this._gossipEndpoints?this._gossipEndpoints.map((t=>t._toProtobuf())):null,serviceEndpoint:null!=this._serviceEndpoints?this._serviceEndpoints.map((t=>t._toProtobuf())):null,gossipCaCertificate:null!=this._gossipCaCertificate?{value:this._gossipCaCertificate}:null,grpcCertificateHash:null!=this._grpcCertificateHash?{value:this._grpcCertificateHash}:null,adminKey:null!=this._adminKey?this._adminKey._toProtobufKey():null,nodeId:null!=this._nodeId?this._nodeId:null,declineReward:null!=this._declineReward?{value:this._declineReward}:null}}_getLogId(){return`NodeUpdateTransaction:${this._transactionIds.current.validStart.toString()}`}}n.set(\"nodeUpdate\",r._fromProtobuf);export{r as default};\n//# sourceMappingURL=NodeUpdateTransaction.js.map\n","import a from\"./NodeAddressBook.js\";import{decode as e}from\"../encoding/hex.js\";import*as c from\"@hashgraph/proto\";const d=a._fromProtobuf(c.proto.NodeAddressBook.decode(e(\"0ad0070a0e33352e3233312e3230382e31343810a388031a05302e302e3322cc0633303832303161323330306430363039326138363438383666373064303130313031303530303033383230313866303033303832303138613032383230313831303039663166386131323163326664366337366664353038643365343239663063363462636234346338326137303537333535326161646361643037313536396537323139353866356135643039663935383766666166636662653533343161326630313134616361653334366566336339303231336433343336656262323766343335306339393063356338633366386531653336373037626330386434323536303832336533663234653039613033616430393535613530393830313936323964643034623237623235316463653035356633646463623061343164363666303934316230623837636466653334393864343630333861623564663036663632613561646530383539383537336138386338663538363064633134393261366531383634383561396231333235306536643137623830636433396335633831393130396537336361373332646232336566386261613737366563383563653030393162656362326564656662616135656433653564626662643166383835613466613838316166336631343461386135363538353335333364383933393335393230383662326431643336326534356266653166623435363833616261366336343039373961643662343638373731383437323663366562643538623265616538356337636665336662616265663566366363656438353030333462333834373230366332643637386333363138373630323662386433353165303032616635653066666536663562316632393566646332663436396361613264323338316561306234386361393837636332633865363335653862313963653565313732613933373631613864343930613961343531386437323535383830613134643737623762613737343839326239326134306262383133363265333466633664353137386439623330313132393334323035636237376662396132383234323733393435363461383535346561343732383661343766383632333965373563393437383963653938633939383434373832343632393434663631333136376437623530323033303130303031320218033a606666643661646137346133613334613930346265613437363033303836663862656633623662653138616265643434633464343065313266623133306239376264366238353561656335643062393062306238633733353464356633623065340acf070a0d332e3231312e3234382e31373210a388031a05302e302e3322cc0633303832303161323330306430363039326138363438383666373064303130313031303530303033383230313866303033303832303138613032383230313831303039663166386131323163326664366337366664353038643365343239663063363462636234346338326137303537333535326161646361643037313536396537323139353866356135643039663935383766666166636662653533343161326630313134616361653334366566336339303231336433343336656262323766343335306339393063356338633366386531653336373037626330386434323536303832336533663234653039613033616430393535613530393830313936323964643034623237623235316463653035356633646463623061343164363666303934316230623837636466653334393864343630333861623564663036663632613561646530383539383537336138386338663538363064633134393261366531383634383561396231333235306536643137623830636433396335633831393130396537336361373332646232336566386261613737366563383563653030393162656362326564656662616135656433653564626662643166383835613466613838316166336631343461386135363538353335333364383933393335393230383662326431643336326534356266653166623435363833616261366336343039373961643662343638373731383437323663366562643538623265616538356337636665336662616265663566366363656438353030333462333834373230366332643637386333363138373630323662386433353165303032616635653066666536663562316632393566646332663436396361613264323338316561306234386361393837636332633865363335653862313963653565313732613933373631613864343930613961343531386437323535383830613134643737623762613737343839326239326134306262383133363265333466633664353137386439623330313132393334323035636237376662396132383234323733393435363461383535346561343732383661343766383632333965373563393437383963653938633939383434373832343632393434663631333136376437623530323033303130303031320218033a606666643661646137346133613334613930346265613437363033303836663862656633623662653138616265643434633464343065313266623133306239376264366238353561656335643062393062306238633733353464356633623065340ace070a0c34302e3132312e36342e343810a388031a05302e302e3322cc0633303832303161323330306430363039326138363438383666373064303130313031303530303033383230313866303033303832303138613032383230313831303039663166386131323163326664366337366664353038643365343239663063363462636234346338326137303537333535326161646361643037313536396537323139353866356135643039663935383766666166636662653533343161326630313134616361653334366566336339303231336433343336656262323766343335306339393063356338633366386531653336373037626330386434323536303832336533663234653039613033616430393535613530393830313936323964643034623237623235316463653035356633646463623061343164363666303934316230623837636466653334393864343630333861623564663036663632613561646530383539383537336138386338663538363064633134393261366531383634383561396231333235306536643137623830636433396335633831393130396537336361373332646232336566386261613737366563383563653030393162656362326564656662616135656433653564626662643166383835613466613838316166336631343461386135363538353335333364383933393335393230383662326431643336326534356266653166623435363833616261366336343039373961643662343638373731383437323663366562643538623265616538356337636665336662616265663566366363656438353030333462333834373230366332643637386333363138373630323662386433353165303032616635653066666536663562316632393566646332663436396361613264323338316561306234386361393837636332633865363335653862313963653565313732613933373631613864343930613961343531386437323535383830613134643737623762613737343839326239326134306262383133363265333466633664353137386439623330313132393334323035636237376662396132383234323733393435363461383535346561343732383661343766383632333965373563393437383963653938633939383434373832343632393434663631333136376437623530323033303130303031320218033a606666643661646137346133613334613930346265613437363033303836663862656633623662653138616265643434633464343065313266623133306239376264366238353561656335643062393062306238633733353464356633623065340ad1070a0d33352e3139392e31352e31373710a388031a05302e302e3422cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030633535376166353739666138333530316265383939623238393037373635626664666364353261623433326230313935613166316563643836666330306162366335353039623066646439376564643363623563656135366132393566333132616262353530383331646266393633663435303131386234666363366532326366343637363230306365396363386564666262663535386463363966303234323634616437643364616232336265643231333363323734653639333434383931353564623130383766393033373039303563363431383561363231316463373432666239613639303964383231383639343762323737343633646662336666306163643437656666313265616431663639373265663263313230333739336334356537373537356265346661313130633765343066613864623963363138376431313366343730343031343137393037316162663539626537643262306465383264653432313564633235353036623163396332366534393137343031633939373530366533373765366266303362363838373237653739343066616436396335653064613363643563626432626537373733353061656132643064343765393761343438633834626536636531333464363462656530393835633239313632663463316535363763636139336430366133633162653861626365333562353537666237376634666536373161363664656337393037353664306538383138313635663262616361613839316161653761633734333766633731373562366562366465623734373233373837353162623662663962306531343833663936363865396664626435363034633339623134643965326265646565633834366139383064373034643137316537626134623766636431613330643934356361313266343761333235643933393861613138663937303636303534643464313566633839393465326465626537336539323731643534383638336636316561343466623235303731653335313861373865643365623337653731613036393166323637303230333031303030312801320218043a606630643934616363663664666633373238373463396462643864373939326562333137616635303031636134313936616261323635383039636233643230306261393631613534333863336135656430356338336264663963643131356432320ad1070a0d332e3133332e3231332e31343610a388031a05302e302e3422cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030633535376166353739666138333530316265383939623238393037373635626664666364353261623433326230313935613166316563643836666330306162366335353039623066646439376564643363623563656135366132393566333132616262353530383331646266393633663435303131386234666363366532326366343637363230306365396363386564666262663535386463363966303234323634616437643364616232336265643231333363323734653639333434383931353564623130383766393033373039303563363431383561363231316463373432666239613639303964383231383639343762323737343633646662336666306163643437656666313265616431663639373265663263313230333739336334356537373537356265346661313130633765343066613864623963363138376431313366343730343031343137393037316162663539626537643262306465383264653432313564633235353036623163396332366534393137343031633939373530366533373765366266303362363838373237653739343066616436396335653064613363643563626432626537373733353061656132643064343765393761343438633834626536636531333464363462656530393835633239313632663463316535363763636139336430366133633162653861626365333562353537666237376634666536373161363664656337393037353664306538383138313635663262616361613839316161653761633734333766633731373562366562366465623734373233373837353162623662663962306531343833663936363865396664626435363034633339623134643965326265646565633834366139383064373034643137316537626134623766636431613330643934356361313266343761333235643933393861613138663937303636303534643464313566633839393465326465626537336539323731643534383638336636316561343466623235303731653335313861373865643365623337653731613036393166323637303230333031303030312801320218043a606630643934616363663664666633373238373463396462643864373939326562333137616635303031636134313936616261323635383039636233643230306261393631613534333863336135656430356338336264663963643131356432320ad0070a0c34302e37302e31312e32303210a388031a05302e302e3422cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030633535376166353739666138333530316265383939623238393037373635626664666364353261623433326230313935613166316563643836666330306162366335353039623066646439376564643363623563656135366132393566333132616262353530383331646266393633663435303131386234666363366532326366343637363230306365396363386564666262663535386463363966303234323634616437643364616232336265643231333363323734653639333434383931353564623130383766393033373039303563363431383561363231316463373432666239613639303964383231383639343762323737343633646662336666306163643437656666313265616431663639373265663263313230333739336334356537373537356265346661313130633765343066613864623963363138376431313366343730343031343137393037316162663539626537643262306465383264653432313564633235353036623163396332366534393137343031633939373530366533373765366266303362363838373237653739343066616436396335653064613363643563626432626537373733353061656132643064343765393761343438633834626536636531333464363462656530393835633239313632663463316535363763636139336430366133633162653861626365333562353537666237376634666536373161363664656337393037353664306538383138313635663262616361613839316161653761633734333766633731373562366562366465623734373233373837353162623662663962306531343833663936363865396664626435363034633339623134643965326265646565633834366139383064373034643137316537626134623766636431613330643934356361313266343761333235643933393861613138663937303636303534643464313566633839393465326465626537336539323731643534383638336636316561343466623235303731653335313861373865643365623337653731613036393166323637303230333031303030312801320218043a606630643934616363663664666633373238373463396462643864373939326562333137616635303031636134313936616261323635383039636233643230306261393631613534333863336135656430356338336264663963643131356432320ad2070a0e33352e3232352e3230312e31393510a388031a05302e302e3522cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030396261343537623733333035663034613931636334366231623936356334653834313735316162633862313431356130626164666431663332633234383233383661323237323565623765633734646561323165353036313764363438656135616333393337343161623031623865666233323132333962386434666462316466626562396533663339616134363538306464303435643138636134346430303263333764646235323763636534646463333262666337333431393637316634636134343634613366326138346663383563373161636630653561383936323664663639613831343734656431363532396638303161386166613937653433356334653034613936346133353735323732383838343365353866306130356366353135336565343530376232633638623364376662353461653661393561393539633837613132663633306539356337623162336333363935653835383636323431373932366437366331363938336661663631323235303338373435393037653963663133643637633261636435303363613435316338353933336163343131386163633237393830316362393638333439393033313435636564323736323964643038393136333137303933353837613737633232303563666135323534336235336333623665613135623834653364326333306331656437353261343633336333366232356239383933656130326164353632656239623738363862336234663437663461323565333536303634393632616337623235653538323934346630306433303739386132363266393231346438633565373464306138333736636332643662613634653138663565346134306166616336323530363264326361323363643238303037303833323164333833343331346630653538343438353932333236373361333265373061653064373131653331303538316263646231346538373133343639346336653039333066343662333762393664343961363435373339343733333165376535303764396535366465356536313436663266303230333031303030312802320218053a606361363738656263626433646338363438663765643033666235396630653231616636373531336561656535313331386536623534396265356163653930366564633166666132366439336135376163656339626537376634306561656564370ad1070a0d35322e31352e3130352e31333010a388031a05302e302e3522cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030396261343537623733333035663034613931636334366231623936356334653834313735316162633862313431356130626164666431663332633234383233383661323237323565623765633734646561323165353036313764363438656135616333393337343161623031623865666233323132333962386434666462316466626562396533663339616134363538306464303435643138636134346430303263333764646235323763636534646463333262666337333431393637316634636134343634613366326138346663383563373161636630653561383936323664663639613831343734656431363532396638303161386166613937653433356334653034613936346133353735323732383838343365353866306130356366353135336565343530376232633638623364376662353461653661393561393539633837613132663633306539356337623162336333363935653835383636323431373932366437366331363938336661663631323235303338373435393037653963663133643637633261636435303363613435316338353933336163343131386163633237393830316362393638333439393033313435636564323736323964643038393136333137303933353837613737633232303563666135323534336235336333623665613135623834653364326333306331656437353261343633336333366232356239383933656130326164353632656239623738363862336234663437663461323565333536303634393632616337623235653538323934346630306433303739386132363266393231346438633565373464306138333736636332643662613634653138663565346134306166616336323530363264326361323363643238303037303833323164333833343331346630653538343438353932333236373361333265373061653064373131653331303538316263646231346538373133343639346336653039333066343662333762393664343961363435373339343733333165376535303764396535366465356536313436663266303230333031303030312802320218053a606361363738656263626433646338363438663765643033666235396630653231616636373531336561656535313331386536623534396265356163653930366564633166666132366439336135376163656339626537376634306561656564370ad1070a0d3130342e34332e3234382e363310a388031a05302e302e3522cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030396261343537623733333035663034613931636334366231623936356334653834313735316162633862313431356130626164666431663332633234383233383661323237323565623765633734646561323165353036313764363438656135616333393337343161623031623865666233323132333962386434666462316466626562396533663339616134363538306464303435643138636134346430303263333764646235323763636534646463333262666337333431393637316634636134343634613366326138346663383563373161636630653561383936323664663639613831343734656431363532396638303161386166613937653433356334653034613936346133353735323732383838343365353866306130356366353135336565343530376232633638623364376662353461653661393561393539633837613132663633306539356337623162336333363935653835383636323431373932366437366331363938336661663631323235303338373435393037653963663133643637633261636435303363613435316338353933336163343131386163633237393830316362393638333439393033313435636564323736323964643038393136333137303933353837613737633232303563666135323534336235336333623665613135623834653364326333306331656437353261343633336333366232356239383933656130326164353632656239623738363862336234663437663461323565333536303634393632616337623235653538323934346630306433303739386132363266393231346438633565373464306138333736636332643662613634653138663565346134306166616336323530363264326361323363643238303037303833323164333833343331346630653538343438353932333236373361333265373061653064373131653331303538316263646231346538373133343639346336653039333066343662333762393664343961363435373339343733333165376535303764396535366465356536313436663266303230333031303030312802320218053a606361363738656263626433646338363438663765643033666235396630653231616636373531336561656535313331386536623534396265356163653930366564633166666132366439336135376163656339626537376634306561656564370ad2070a0e33352e3234372e3130392e31333510a388031a05302e302e3622cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030633432636361633566626336393166626265626461383766666431653735626463643839323234393463663434666462636365653439373838353231633337386266373764623039333465633064323138336437633531646236366638363463313161623764653161633363346366646331663039336132643666333765326233346362653463383133316639363833616434323837386338336433353534633634356161313637626366623036346138336463343563356231313538343939663964393235383766666637616263643566323231636438313530353438343133303030666136653536353930383962316466643635373636656137386561656466636136623435343535666438616235393834646265333565353739356432633633356561373937346434336538656165346665626666653439326537303762343862316230666336343831616539653039643339313333303039623764323634303265366535326535653931623262333830643838663062653766623462333033653730323139373835303537616139346365393234633439323665393136353639323836653836623362613635316361326130613633646634663639303766656665333438336439336234636531643464303363373134323131313337356232633263353164346562383339653337616635333062326362643666353064346362333665323739333731373064396364646163306163653263633234623830346230613237333531636638333062373635323565323664666239646266343961303536363234613736383632343934653732363364306437306365626165393532393433653535383432663563616431336663663630613265366463663761316435333366336135626235346563323139313863373665353235626132393134363637353833316531376533366336316665383534393838323864303962373632303135343132623265353237383439626165633163666663373764653463323934633535303831316535393866663234646131356133343536396464303230333031303030312803320218063a603234373166336665383134303638316665393139313364326363303633663036356534343930616536326666356435343861356162653133316432616639366362653361633235626265323433363663613466386630653736636639343566330acf070a0b35342e3234312e33382e3110a388031a05302e302e3622cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030633432636361633566626336393166626265626461383766666431653735626463643839323234393463663434666462636365653439373838353231633337386266373764623039333465633064323138336437633531646236366638363463313161623764653161633363346366646331663039336132643666333765326233346362653463383133316639363833616434323837386338336433353534633634356161313637626366623036346138336463343563356231313538343939663964393235383766666637616263643566323231636438313530353438343133303030666136653536353930383962316466643635373636656137386561656466636136623435343535666438616235393834646265333565353739356432633633356561373937346434336538656165346665626666653439326537303762343862316230666336343831616539653039643339313333303039623764323634303265366535326535653931623262333830643838663062653766623462333033653730323139373835303537616139346365393234633439323665393136353639323836653836623362613635316361326130613633646634663639303766656665333438336439336234636531643464303363373134323131313337356232633263353164346562383339653337616635333062326362643666353064346362333665323739333731373064396364646163306163653263633234623830346230613237333531636638333062373635323565323664666239646266343961303536363234613736383632343934653732363364306437306365626165393532393433653535383432663563616431336663663630613265366463663761316435333366336135626235346563323139313863373665353235626132393134363637353833316531376533366336316665383534393838323864303962373632303135343132623265353237383439626165633163666663373764653463323934633535303831316535393866663234646131356133343536396464303230333031303030312803320218063a603234373166336665383134303638316665393139313364326363303633663036356534343930616536326666356435343861356162653133316432616639366362653361633235626265323433363663613466386630653736636639343566330acf070a0b31332e38382e32322e343710a388031a05302e302e3622cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030633432636361633566626336393166626265626461383766666431653735626463643839323234393463663434666462636365653439373838353231633337386266373764623039333465633064323138336437633531646236366638363463313161623764653161633363346366646331663039336132643666333765326233346362653463383133316639363833616434323837386338336433353534633634356161313637626366623036346138336463343563356231313538343939663964393235383766666637616263643566323231636438313530353438343133303030666136653536353930383962316466643635373636656137386561656466636136623435343535666438616235393834646265333565353739356432633633356561373937346434336538656165346665626666653439326537303762343862316230666336343831616539653039643339313333303039623764323634303265366535326535653931623262333830643838663062653766623462333033653730323139373835303537616139346365393234633439323665393136353639323836653836623362613635316361326130613633646634663639303766656665333438336439336234636531643464303363373134323131313337356232633263353164346562383339653337616635333062326362643666353064346362333665323739333731373064396364646163306163653263633234623830346230613237333531636638333062373635323565323664666239646266343961303536363234613736383632343934653732363364306437306365626165393532393433653535383432663563616431336663663630613265366463663761316435333366336135626235346563323139313863373665353235626132393134363637353833316531376533366336316665383534393838323864303962373632303135343132623265353237383439626165633163666663373764653463323934633535303831316535393866663234646131356133343536396464303230333031303030312803320218063a603234373166336665383134303638316665393139313364326363303633663036356534343930616536326666356435343861356162653133316432616639366362653361633235626265323433363663613466386630653736636639343566330ad0070a0c33352e3233352e36352e353110a388031a05302e302e3722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030393032663034393061396237663564326364316330643936633661363939306635373362356630656235626462626133393636316566303233303932343139333434363639393639613638613463373037316433323939393066623137393265393030316362353539386561373163326436363736383234333230656534636162663164643335376165376632616462656463316231623061396439353632333737396234633463376234376334373837613136656537313838633732313731373736323461393236346162333963343166376666306234356138396264613430633461643037633464353936643566303964373035366263623561333566343466393561353963323636653039383932646362653436616435316632643262336539393161386636363538653166326362393463373733656234346334346538393264316535356331303736663136303833313965653635376534306631393239363735343361623432616232323233383664313735383665323533373438646162643032356535306235306165363035303732306532333964363465653666623435303763303631346464346265376166646231333330383930666633613665313736353237633331313661663132396139616335653333366439663630316537313237613664376438323061643266393032646163396232343836363861316261623038643130333432656136396137303937313332666637313230636336346663646537383430633635366261313733326261393565396333363735313137356534656333643834613765306432383834326234316262626264366632386534366333613636333365313832373936356335353832306435306461653262303436356363306434326531393562396431353332653632323565623939386436613439303739613861316364346430313735646533633837663937363134383437623363626231376161333462653832306237623361643938616333666165663939336136373738393734373832633063346165336661626263633433303230333031303030312804320218073a606633353738373364343131346131616566303361646336626136396566616632363930653232376162633136613666633665353034396136336662643936383830303462313465343633633230653338343336613361323464333138326464380ad1070a0d35342e3137372e35312e31323710a388031a05302e302e3722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030393032663034393061396237663564326364316330643936633661363939306635373362356630656235626462626133393636316566303233303932343139333434363639393639613638613463373037316433323939393066623137393265393030316362353539386561373163326436363736383234333230656534636162663164643335376165376632616462656463316231623061396439353632333737396234633463376234376334373837613136656537313838633732313731373736323461393236346162333963343166376666306234356138396264613430633461643037633464353936643566303964373035366263623561333566343466393561353963323636653039383932646362653436616435316632643262336539393161386636363538653166326362393463373733656234346334346538393264316535356331303736663136303833313965653635376534306631393239363735343361623432616232323233383664313735383665323533373438646162643032356535306235306165363035303732306532333964363465653666623435303763303631346464346265376166646231333330383930666633613665313736353237633331313661663132396139616335653333366439663630316537313237613664376438323061643266393032646163396232343836363861316261623038643130333432656136396137303937313332666637313230636336346663646537383430633635366261313733326261393565396333363735313137356534656333643834613765306432383834326234316262626264366632386534366333613636333365313832373936356335353832306435306461653262303436356363306434326531393562396431353332653632323565623939386436613439303739613861316364346430313735646533633837663937363134383437623363626231376161333462653832306237623361643938616333666165663939336136373738393734373832633063346165336661626263633433303230333031303030312804320218073a606633353738373364343131346131616566303361646336626136396566616632363930653232376162633136613666633665353034396136336662643936383830303462313465343633633230653338343336613361323464333138326464380ad0070a0c31332e36342e3137302e343010a388031a05302e302e3722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030393032663034393061396237663564326364316330643936633661363939306635373362356630656235626462626133393636316566303233303932343139333434363639393639613638613463373037316433323939393066623137393265393030316362353539386561373163326436363736383234333230656534636162663164643335376165376632616462656463316231623061396439353632333737396234633463376234376334373837613136656537313838633732313731373736323461393236346162333963343166376666306234356138396264613430633461643037633464353936643566303964373035366263623561333566343466393561353963323636653039383932646362653436616435316632643262336539393161386636363538653166326362393463373733656234346334346538393264316535356331303736663136303833313965653635376534306631393239363735343361623432616232323233383664313735383665323533373438646162643032356535306235306165363035303732306532333964363465653666623435303763303631346464346265376166646231333330383930666633613665313736353237633331313661663132396139616335653333366439663630316537313237613664376438323061643266393032646163396232343836363861316261623038643130333432656136396137303937313332666637313230636336346663646537383430633635366261313733326261393565396333363735313137356534656333643834613765306432383834326234316262626264366632386534366333613636333365313832373936356335353832306435306461653262303436356363306434326531393562396431353332653632323565623939386436613439303739613861316364346430313735646533633837663937363134383437623363626231376161333462653832306237623361643938616333666165663939336136373738393734373832633063346165336661626263633433303230333031303030312804320218073a606633353738373364343131346131616566303361646336626136396566616632363930653232376162633136613666633665353034396136336662643936383830303462313465343633633230653338343336613361323464333138326464380ad1070a0d33342e3130362e3234372e363510a388031a05302e302e3822cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030393164376466666637386634656662653538393034353063356263396533353334626666616461643933666237616662313562633762636636376433643362343133626439393934306464383235363461646130346162326534656466306131633062386662376531613830393265393133386539363062653263633638623562393766353764323831633538373265393761343739666338343833363331363065333836336235376233336534383639623138356163653565333662643433616535666136373863396562363666316634303134373836383236623266386661376530303630663434303563306138663964613732303566663436383361323433666130663331356631616662623461346431343064303232333465343437336662393266636233386633656232386336306366376362666236346530363963313830383665346464363139333839323061653066643763313933653665313034653635623831376564393339386532333232333766646630383332326339636563303964343039393237326137633031356432326234646363393639663665613166353138393032313035646636303039326235356134316234663332623935376235376438346535623232333930356538363938393531373333656139663265323436316563306436353232656538313664353835306661636665623431326366663962393939343361383764633064303436343437636539336239376531366437336239366234323633393632663831666366393435386535373537376337383061366631363135616137613132333236373338653236396262373331663839653839313632326535373765613534343230626630636134366265366663346637316366323638316163303235326161383835653133626536373263643238343539303432376463643133376366333131363235653862656533623038666463616166343635623338376365376362333338313666326331346136623939616337643733343331386366633539623765643933396261666566383739303230333031303030312805320218083a603439333161373832303264353566313062333135373537383563336634333964623638313962643131303033646637626332636539326532396135313762376332313838306465623463303137393537343462353736636434336238343938640ad0070a0c33352e38332e38392e31373110a388031a05302e302e3822cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030393164376466666637386634656662653538393034353063356263396533353334626666616461643933666237616662313562633762636636376433643362343133626439393934306464383235363461646130346162326534656466306131633062386662376531613830393265393133386539363062653263633638623562393766353764323831633538373265393761343739666338343833363331363065333836336235376233336534383639623138356163653565333662643433616535666136373863396562363666316634303134373836383236623266386661376530303630663434303563306138663964613732303566663436383361323433666130663331356631616662623461346431343064303232333465343437336662393266636233386633656232386336306366376362666236346530363963313830383665346464363139333839323061653066643763313933653665313034653635623831376564393339386532333232333766646630383332326339636563303964343039393237326137633031356432326234646363393639663665613166353138393032313035646636303039326235356134316234663332623935376235376438346535623232333930356538363938393531373333656139663265323436316563306436353232656538313664353835306661636665623431326366663962393939343361383764633064303436343437636539336239376531366437336239366234323633393632663831666366393435386535373537376337383061366631363135616137613132333236373338653236396262373331663839653839313632326535373765613534343230626630636134366265366663346637316366323638316163303235326161383835653133626536373263643238343539303432376463643133376366333131363235653862656533623038666463616166343635623338376365376362333338313666326331346136623939616337643733343331386366633539623765643933396261666566383739303230333031303030312805320218083a603439333161373832303264353566313062333135373537383563336634333964623638313962643131303033646637626332636539326532396135313762376332313838306465623463303137393537343462353736636434336238343938640ad1070a0d31332e37382e3233322e31393210a388031a05302e302e3822cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030393164376466666637386634656662653538393034353063356263396533353334626666616461643933666237616662313562633762636636376433643362343133626439393934306464383235363461646130346162326534656466306131633062386662376531613830393265393133386539363062653263633638623562393766353764323831633538373265393761343739666338343833363331363065333836336235376233336534383639623138356163653565333662643433616535666136373863396562363666316634303134373836383236623266386661376530303630663434303563306138663964613732303566663436383361323433666130663331356631616662623461346431343064303232333465343437336662393266636233386633656232386336306366376362666236346530363963313830383665346464363139333839323061653066643763313933653665313034653635623831376564393339386532333232333766646630383332326339636563303964343039393237326137633031356432326234646363393639663665613166353138393032313035646636303039326235356134316234663332623935376235376438346535623232333930356538363938393531373333656139663265323436316563306436353232656538313664353835306661636665623431326366663962393939343361383764633064303436343437636539336239376531366437336239366234323633393632663831666366393435386535373537376337383061366631363135616137613132333236373338653236396262373331663839653839313632326535373765613534343230626630636134366265366663346637316366323638316163303235326161383835653133626536373263643238343539303432376463643133376366333131363235653862656533623038666463616166343635623338376365376362333338313666326331346136623939616337643733343331386366633539623765643933396261666566383739303230333031303030312805320218083a603439333161373832303264353566313062333135373537383563336634333964623638313962643131303033646637626332636539326532396135313762376332313838306465623463303137393537343462353736636434336238343938640ad0070a0c33342e3132352e32332e343910a388031a05302e302e3922cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030633665313863386662663463643465623130343534326362323061616161323532643935663035326631303836643538316334346164373337626636363736633063336637383961663532363562386166623739623530393132646138346530616663663735343763623166666630386430353237303137656236646335636466383362353139363964343433333661363338376364373062393462663463396261663230323938343065356634663836336437303831663066613831653038363361646564623862383961356461633262623535326436653762396662613232326163323863353730373535333866633935373939323934326433343166613238373665366235303765396365376564353732653863666461356465666133363466646638643865323338323961346363626234373866313165656533623332616238356530373239353163356439343230313135666261333237303733343934663433623566366265626638343135326533353665376231366261373634623761336235326362323733343634303136336265313436356536643166613463366536663636363834613633356339613535366161373130306462653634356466386634633432336165343561303863623335623462633138373838366532323939623563303231306135666261336239343439663438336566393465643932326531653938633131336265313636623839633733353832323433313335643434323330366162653561373162373730313866663333356436646437393534323639376231363832333862393637323766643133333962356638326133623661353937643937363033376165323530363435366338623334653966626633626333323431303434316334626663386562613538353937323534656665626661613738383039613563383835343732396135626137386563653139666338343037646438383934613662633738343430333764383738636163653663313532633265383965386136346230363861366332333765303939393362653830363839303230333031303030312806320218093a603634653039383631356266343035663765643561343031333434366238396334383863666364366262323561346136373664633737656561313164333364373032363832663061363961383033306538633537373764306534323230333739390acf070a0b35302e31382e31372e393310a388031a05302e302e3922cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030633665313863386662663463643465623130343534326362323061616161323532643935663035326631303836643538316334346164373337626636363736633063336637383961663532363562386166623739623530393132646138346530616663663735343763623166666630386430353237303137656236646335636466383362353139363964343433333661363338376364373062393462663463396261663230323938343065356634663836336437303831663066613831653038363361646564623862383961356461633262623535326436653762396662613232326163323863353730373535333866633935373939323934326433343166613238373665366235303765396365376564353732653863666461356465666133363466646638643865323338323961346363626234373866313165656533623332616238356530373239353163356439343230313135666261333237303733343934663433623566366265626638343135326533353665376231366261373634623761336235326362323733343634303136336265313436356536643166613463366536663636363834613633356339613535366161373130306462653634356466386634633432336165343561303863623335623462633138373838366532323939623563303231306135666261336239343439663438336566393465643932326531653938633131336265313636623839633733353832323433313335643434323330366162653561373162373730313866663333356436646437393534323639376231363832333862393637323766643133333962356638326133623661353937643937363033376165323530363435366338623334653966626633626333323431303434316334626663386562613538353937323534656665626661613738383039613563383835343732396135626137386563653139666338343037646438383934613662633738343430333764383738636163653663313532633265383965386136346230363861366332333765303939393362653830363839303230333031303030312806320218093a603634653039383631356266343035663765643561343031333434366238396334383863666364366262323561346136373664633737656561313164333364373032363832663061363961383033306538633537373764306534323230333739390ad1070a0d32302e3135302e3133362e383910a388031a05302e302e3922cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030633665313863386662663463643465623130343534326362323061616161323532643935663035326631303836643538316334346164373337626636363736633063336637383961663532363562386166623739623530393132646138346530616663663735343763623166666630386430353237303137656236646335636466383362353139363964343433333661363338376364373062393462663463396261663230323938343065356634663836336437303831663066613831653038363361646564623862383961356461633262623535326436653762396662613232326163323863353730373535333866633935373939323934326433343166613238373665366235303765396365376564353732653863666461356465666133363466646638643865323338323961346363626234373866313165656533623332616238356530373239353163356439343230313135666261333237303733343934663433623566366265626638343135326533353665376231366261373634623761336235326362323733343634303136336265313436356536643166613463366536663636363834613633356339613535366161373130306462653634356466386634633432336165343561303863623335623462633138373838366532323939623563303231306135666261336239343439663438336566393465643932326531653938633131336265313636623839633733353832323433313335643434323330366162653561373162373730313866663333356436646437393534323639376231363832333862393637323766643133333962356638326133623661353937643937363033376165323530363435366338623334653966626633626333323431303434316334626663386562613538353937323534656665626661613738383039613563383835343732396135626137386563653139666338343037646438383934613662633738343430333764383738636163653663313532633265383965386136346230363861366332333765303939393362653830363839303230333031303030312806320218093a60363465303938363135626634303566376564356134303133343436623839633438386366636436626232356134613637366463373765656131316433336437303236383266306136396138303330653863353737376430653432323033373939\"))),o=a._fromProtobuf(c.proto.NodeAddressBook.decode(e(\"0a7f0a0c33342e39342e3130362e363110a388031a05302e302e33320218033a606131373165336261383334373637343761656232653261633464306531313563616161623931383230336230646665316364656162343433343338666332383961626338626138613661666638336462356631623333343034366461383863380a80010a0d35302e31382e3133322e32313110a388031a05302e302e33320218033a606131373165336261383334373637343761656232653261633464306531313563616161623931383230336230646665316364656162343433343338666332383961626338626138613661666638336462356631623333343034366461383863380a81010a0e3133382e39312e3134322e32313910a388031a05302e302e33320218033a606131373165336261383334373637343761656232653261633464306531313563616161623931383230336230646665316364656162343433343338666332383961626338626138613661666638336462356631623333343034366461383863380a82010a0d33352e3233372e3131392e353510a388031a05302e302e342801320218043a603734303964656332653439346236323765653439633639623239346265316365616562636133666463616633363738396538386663376435623065656635353631663532623832643335313931613339633266626564363032373236373136360a7f0a0a332e3231322e362e313310a388031a05302e302e342801320218043a603734303964656332653439346236323765653439633639623239346265316365616562636133666463616633363738396538386663376435623065656635353631663532623832643335313931613339633266626564363032373236373136360a82010a0d35322e3136382e37362e32343110a388031a05302e302e342801320218043a603734303964656332653439346236323765653439633639623239346265316365616562636133666463616633363738396538386663376435623065656635353631663532623832643335313931613339633266626564363032373236373136360a82010a0d33352e3234352e32372e31393310a388031a05302e302e352802320218053a603962313431363538346134613338306262383661366337643732303764386165646462633362363365613330353939383235356263653833353162613462356463613532633932383261353461366265643630646536336365303361616132340a80010a0b35322e32302e31382e383610a388031a05302e302e352802320218053a603962313431363538346134613338306262383661366337643732303764386165646462633362363365613330353939383235356263653833353162613462356463613532633932383261353461366265643630646536336365303361616132340a81010a0c34302e37392e38332e31323410a388031a05302e302e352802320218053a603962313431363538346134613338306262383661366337643732303764386165646462633362363365613330353939383235356263653833353162613462356463613532633932383261353461366265643630646536336365303361616132340a82010a0d33342e38332e3131322e31313610a388031a05302e302e362803320218063a603634383636383562346536653063623936333437326330316665393939333166643965346334343838376261383334323361653766656564323264363438343834636638613362633563636361366133373338376266393664333836373238300a81010a0c35342e37302e3139322e333310a388031a05302e302e362803320218063a603634383636383562346536653063623936333437326330316665393939333166643965346334343838376261383334323361653766656564323264363438343834636638613362633563636361366133373338376266393664333836373238300a81010a0c35322e3138332e34352e363510a388031a05302e302e362803320218063a603634383636383562346536653063623936333437326330316665393939333166643965346334343838376261383334323361653766656564323264363438343834636638613362633563636361366133373338376266393664333836373238300a80010a0b33342e39342e3136302e3410a388031a05302e302e372804320218073a603339653930393931356138353238303330313534613663373730393530633762343737376261343031333537633065363138373635343231356363323061616363646438653566663239653963346439356366343130316661363862653435630a83010a0e35342e3137362e3139392e31303910a388031a05302e302e372804320218073a603339653930393931356138353238303330313534613663373730393530633762343737376261343031333537633065363138373635343231356363323061616363646438653566663239653963346439356366343130316661363862653435630a82010a0d31332e36342e3138312e31333610a388031a05302e302e372804320218073a603339653930393931356138353238303330313534613663373730393530633762343737376261343031333537633065363138373635343231356363323061616363646438653566663239653963346439356366343130316661363862653435630a83010a0e33342e3130362e3130322e32313810a388031a05302e302e382805320218083a606134343837346137616131623337373431613037316164616165373866623135326236393664316335386438646566626531643832333034353332613063303139656539366363313964373536383635373864333961316536633331613165650a82010a0d33352e3135352e34392e31343710a388031a05302e302e382805320218083a606134343837346137616131623337373431613037316164616165373866623135326236393664316335386438646566626531643832333034353332613063303139656539366363313964373536383635373864333961316536633331613165650a81010a0c31332e37382e3233382e333210a388031a05302e302e382805320218083a606134343837346137616131623337373431613037316164616165373866623135326236393664316335386438646566626531643832333034353332613063303139656539366363313964373536383635373864333961316536633331613165650a83010a0e33342e3133332e3139372e32333010a388031a05302e302e392806320218093a603639383332613733613336303265386431666265356164353864316332363337613162363732643731656538376166313064623634386562393161666232323832353362316634376535376433643461343466663534376233333934616132320a82010a0d35322e31342e3235322e32303710a388031a05302e302e392806320218093a603639383332613733613336303265386431666265356164353864316332363337613162363732643731656538376166313064623634386562393161666232323832353362316634376535376433643461343466663534376233333934616132320a82010a0d35322e3136352e31372e32333110a388031a05302e302e392806320218093a60363938333261373361333630326538643166626535616435386431633236333761316236373264373165653837616631306462363438656239316166623232383235336231663437653537643364346134346666353437623333393461613232\"))),b=a._fromProtobuf(c.proto.NodeAddressBook.decode(e(\"0ab70722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030633435363165336332373863643635306538306334313363613434343233633163336331336366313437356636663639373664353937616534333262343961623432303836623739623834313332363035346238623364636635376438666364373962666330353831383363613234636434633163626335373465643131313765326635623762336336336365376230366439623465666366373337353633376234316665366635336338313162396465363134336633613532393537636466393536373735313230623333373033666635373632313430376162393537356263326433356330643434663039383366633165663633613466663532303966303730633932616631303632393536303163393662636564303634656331393031393730313963363831316334633864643830636234663461633731663961643736653761633839343536666266346630313166393061626432643930353336653832333436353166366265663932376533643564386237626634353930353039383362656361336162656632613964393761663334353737326137373430653936393932373562303138656130646632383661646436636539323365663930386662653736326137356632313131363836326462343464336463613164343462346432653864633130363663353030366262356137643935346164323535643462363033323733343735653531316165623438356430363961303637633061623563323435333863393333633036623561366165666139343030356332393135323133653463636461653663393432663632373266396464353238326436623839306631663230656664323339396364363734393234666135373034366163366461333265373339353161373331313365393166633262376666323965343835316238336666333966383362613965633666303863656664626236636262626666616266646661613931643933306637323030646134383133376333393463626431336537303165636463323631366664323162616436383161613466303031303230333031303030312804320218073a603665396138616263646364653665313134396133656265313766643538643839303538333961383664623732623036613365613230616131373666383638623235343838353261653432336437613963366237636666396537313436323961320ab70722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030613163343037373135343330336363373263346662373639326333663934323531626465633132333961316637613839373261626539316133353332336662656361363235613766666165363430366338353564633261663231313039303062306466306536653664623736333634646661316666653835656461353637393336653239383562383536333461333261613532613635393964643663333062653166376136633562386635656563616632363231643861343539363832666364326462616164313536316431316633336663636237663535303061633536386431363564626561616365333238366432383934663634313239643738316436633732666437643539396339653164336166346161343333633233623931306661653463343834313634316636313532366164373837656265613533393837343136376539643361373363633066623135363432396431356563373633613664306630363131356137396239616637383364373762393864383330393661613437343366393734303864396531346263663464646666653435393137363838343762343063623864613763613337353235366432623933356430393566653235326661653831666636653337663834643761393064376535373061346638656633633764373636656564613437326630393230313939303135613839303832353961383733633534353466636262646361643265353238646538353435356234303833633764633461646335613938386530636464666463313539643564373132616264353434616137336563303239303839383134633938613434663236666330363434363539633138336533313834616132373266386431646330626661336530613536303438346362303535626134646262356363333339656338306264313164363432646333613730326538633730336162323139333038346439626436336630646665313261343333633235373665616637383163666164383637656637306264613631373638623262656631346635306336633362386230393666303230333031303030312805320218083a606464336233653763643361323537643832373665343635333533363162303138623730303931663438363635653832303031306538316563303539326236396264346265316662643765636435303964303730313364643034313238343266640ab70722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030623263636163363561643066633736343561383137626661626334383761643765343133313165376133313938623337666238343264383463333935623366363764366264383438663130633666303363323930653866376461613864303031613834343164633335326131393136306133313933653638623832656466313961653637363933613961333364346362383765373839613130373037313535313565613737326361613862383661353639623931633534353038333564396333353466306461636563393766653737303931623435623134373639386237663836303134323264636432323631653932386465346461633963343264636261666466393663303732333362613330323730373666333763393639653865643330623662356438663530333462653764393263353936663862653836316535316663633361323432626639643862653965326139653865306631353565626366663233656666613763643537633130353432383131643830373736633935383535323666646230656161333465653139353564353131313933393066653837336534633034646564643239313635383834623938623436333038373838616537666334643461613461386663396263323637346261333231343933623632343435356164343130633164653731626339356431643931666130663230313431386137393565333039656166323937623639396266323763396661323736336364353963656230323165313662383230306331303630663238313766643833636663373637313833343839343631653335393932393162333830643665393339626161346231393233326136613237326464653635316638303436666463333464623237366137373764366662326265633332353562326363323434623461663536366231303566333063363530366464616530656233646564646366393437626362396336306530303039383466336234613863366334656434626639306263313933326237663934646333616536623336303030386562393032303430663962303230333031303030312802320218053a603561383634313561303861306138323566336232656237353031303135353230326533313234336665343161303333333834653738633138633131653565386632303964343933623062326664343565303662333734663262363964663564370ab70722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030613365333762373663366364356636363232643639323434343464313263363737633339356632623539303266336262393862386138623530353561373037373036636130323863643735303630613264383730326432643862303439343762646366653061386331343161613238343462316530366536363139303031326538623633323661623066613331373937336263376362346432393439663231303861613034633462306339316261613537323866356235363232656337356162663537386131663762343165646532613637656264363963313865353831666466396336303230616330646539636132633331663063363436393030333331316662623563653764623439633738376531613764323761613432356565376238346461376536363933396639633830643065383266636535356530326466633862356337383431386132366161343336353036393837313962616663656366306264343930303061646463666134303537303862646265666262313937343964323264616230303765343464343565613233623130366638383334633135326532353036326434636632346666323533353663376562333732393130353339336662343962616239303461303266306630626234313763643931396433353238393031323865366262666634666163396639306465313138613937346632613664643031653033326137396231373866363066613166636262643032623537303466623436323935633135313930383136333733656464363633356338353639373866316239353033663166373362346230626538616261326564316665656164353939353362663832656664653933613334373161626435356364613362613861363733666262333739393734396662303036643030336630653633663636356333343631643261376232396463386232303462613539613635363638613436616532383738663030643166393439306466396532383066656266343331356561303465616135363861336139666434386336326336336236656364613639303230333031303030312803320218063a606434363430333938303337393230373965636364356134343331316361306463323262353065633839356235366535336431326232396637326463366462613363616665326535623831303466626461303338616635623434376430666231320ab70722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030393361323135636334613761373232636165396331336162643633366466393963636565633661663964623436623639666135313637313665663530636532343930613938316530396162303139636132636234363831316235623631396431626431643565653666343661343263373737636264656536343261313438346563646635646464333732393634326333386336643433613838353838373434373566353832343434333636346330346466656439623839303435666230383565323563336566636234383431373333656666376335323963313339653639333530633263643739623263386431393637396137313265346538636166643332363735343162383332623365313061303132353564656636396466316539643362386438656166303331316465363764356531326232366464303164626264396433653432643335643964653237313330326530663166363964383763626337616361396538383637653964343238643363616230363636656234393064356662616233306266663366373835643033663230373261343362623962356535343635366135393263623631656166643561356566323834633763616563363666376634373332356363306434633164323766363631643861373438636135303731633036656631333464666639366634303836363838333636643436386132343738303031376530623536616261376661623433623362376330623737393036666165353438326633323831316332393265366231343435346531346238393438303161383661303363633437373934646430643734353237613732653432346564336166613034383939656362396136336632613961653732626537666139383961646630643635613332633835316439383031666334313034386466333335363466633762333137303765633866623830313430666537623761316661313230626131636236363033323463656666623462636332643962623764653063663534633831396632646433626365616465633963323566356531396463396231303230333031303030312806320218093a603365303261363732306334343636353965383633303564353562666565383230623335653635306665636163633535333039373435356532633465303332636339646564313662316262343464336235393262626163623663326266663165360ab70722cc063330383230316132333030643036303932613836343838366637306430313031303130353030303338323031386630303330383230313861303238323031383130303930323539663465336439663066333934323536353438653963373330386231306237333430336363393039346439376164313531623737303631373062393737326365623634643636326563656639303161386437643135643331396135396338623731303731616363643839356237633933363130646336393736663637633465313732396261383337336162376535326133663363386632363534393164646536396436653039393934373065373434353938313133316264393663333665363836353230336662326562643564353065616461666237323633393664656331643931373438393862346539626530346337346433303466656164643963626433323334633362376633333036633939636230633333396663323539363962343164353861326237636663313833326532323664383163313936333939336532323535613038376431363938633033643432313062643634353830363434643039356361373661613137393465646434306331633837623566383261386533396636303365393731313662613034353738653765383033343634393564373835643465663763663737313462396562366635663965306239613934663462373338383436313962393237346434613935656631353735346138396439376566356331613838623664363933653061383065626435333766633963663063613931643163363264393135646537656438313862393532653634633230303239336565386532383461343136613732613365313266633764343233623135386639623439363630636263323436366662656430666564326532346531303266646539343265623463666439346265633436643364393066633038633339666563626130336530636132343634616536363462393739353135626132396531663730326333666537303262653739333739366438656462313761613438633039323930623032343534396630363131663561653233656437653136343432646637643164616432323836633262623039643535323264643365643639386332663032303330313030303128093202180c3a606339373462623938326338313931336237333236643561336639646363343836313261313566376161643032663230376230663130636432303137613666626666353830336537636139626662343730396162323862366230396435623133660ab70722cc063330383230316132333030643036303932613836343838366637306430313031303130353030303338323031386630303330383230313861303238323031383130303962646438653834666164616133353332666334636530316138613137643463336232333266353061393739306532363236383465646334383233653831356131626435623230656365613762663536653239663662623762383331666233626636656663643134373566306238656435666662306231333835623936643136366236323966303339366138666566356630366534626361323565653461313334306565323633613464396262303230643866343732333036663364383836313338646537613031396530353962643061666339303263636261316132313361653264616136306338613031333735356665306134386530333466356234303233613264616465616138386335343836383335336163376137613364663132623266623634313837373465396231346265366561623863633237623838303132616436313632646137346530656562313631333539303566343337333734646162383538366437353061323662626433616332346165643837386334643533653635313037326338373165393464376163633537356339363733383137333461353366656166346437626136626364643234316363363435386336303837643836333032616132353163303466366435366239633332643764393636323437353065643035353738356430373733663433646330393962323863393232383131343865366338316632393766663964313636653030306163303462333132343138363737356663656637356635656261306331303332626631333064663663643761343632313164306466336530353834643932656136373334396438343930353038656234656638386635346338633364343836646538373139663130666139366665623835636337393630373663613738313331386565326439656439303363613133333630343063353961643931613464326636393865393130386165306564623962316362393561643333623139376666623138626431626138623536636265653261616539353835656365323038613165313462343835363436333032303330313030303128083202180b3a603937303834333033333130373866353638326337663332343464383263336233653238316139313837393537386465656163646363326132656265353431616631383831313561643265383338363565356635643234376234613138633165650ab50722cc0633303832303161323330306430363039326138363438383666373064303130313031303530303033383230313866303033303832303138613032383230313831303039303938383635646566326632616233373663376630663733386331643837613237616330316166643030383632306333356362366562666362623063333330303331393361333838633334366433303233313732373031323139336262373666643330303462383634333132633638396566353231336362623930313130313530396465616239346632366137333265363337393239646134633463623332353137653361646262333831316435306163346337376331666365386236353136303632313566333437303766336537323635353435653538633839343630396532383337366264623737373566653330343339653065313539326664636230633365653163333035373733643037326136623839353765616663653161313162653936356564616666333834333336366362366134346563323561383930313036653632343735363766373662353530666461343832626165633633303764363938656338383834316664363666323366323130653437623861396463626136626134653166613731366462333363383065333038313934393664636235653536303966623665376336313533373962646465643432376539323331623932353463326261663934333630386138366436393861653961336338363339646638383764366636623561373133383564323433333864393131613231326266373166316532616363386231383662393665633865363963383662366430353832313737373661303963396336383935336564623539313635373862356132363362326634363965336230633037656164613731613434376565613766386663316262383037343235353536376237663062643165366166623033353837313863393862343239653234623232393835393666633736636636616633393663613934333464373932366563376433376434623932616635366434356665666638313936303935323234613931366331666665366236363765323535666333616338636363656639323064633034346232353030333133326238373830363734326630323033303130303031320218033a603333373339306438666561313434616663313265383132353461323864616336656138323839333833366163303732656666643835653061373734383538306566323830393636343863356137663864626234636538313437363831353133370ab70722cc063330383230316132333030643036303932613836343838366637306430313031303130353030303338323031386630303330383230313861303238323031383130306335376564623966663237366530323362323830323163623164383763646631393636623639386366343865346561616137633639323037376365656538636362323339613463393231353937653865383966376363303564336633313331353738393736633465333134343035643461346530336137323431306335633039636135323761643561383562393938363337653732613332653166626330643535343662323436356539653830366332646435303965623035306162356662323730363366643932383135623164643236383965323131316361656236663534396539346139663030663038323164346361366336613631313766356135333363393236336266303734613330643563626566353064316338633233383762636139373265646564613039383362356430613662353764636230303230303036383238623430653430373662343837306232346261643834303536656535326235663432326538383430303238633235303036333832643865396336363132323566346637366561373265333430363037653966633666336332303433333037366131636138636231356564303361633839363664303530376263646536383165346530323331656539663837643131316537623438616338663934643264383432623532646637336635373363633534313439363437393763363236393638666661653734313866336236313039623561306630396533323233663461346435653335303964643235303133386636626331376266366365636531373539343433306466313830613338653930616466326166666266616430633662386331623837663137386130363164636662666638623932633931363664383734633166663561663466626364626665386539643039393337306464663630626537343736333364333665653465623563643531663665336333333965313531653431626462356135636532633863393761306134336233636434636330383138383463383739663964326633373438343238633835373366313763393066336362643032303330313030303128073202180a3a603734306166366266373339653838336338386633333434633961306638623330316533396463393831633531363365306465326133666634326239396534323665643765353662363766343231383530333834356466363266343963396662300ab70722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030393133316161333638663933343532323966393762363235396363636166666561323365303063643565616430326533663639366331653731346565333933396461643836306533386266393561323937346639656234386539333433663861616334303565613935356430353332336531313762336231633934383133613361663432666538303832633364343362616631626434643833363765393364623030616436393665363237613130333661653533346630313165616435653536663337613666666534346236623965303939343031313932616435363061303334366234316138313030393566356632643766643332643665656236353562613735386336623532366331323933383661663731393763376135336165363033643632323833323235343936316631366430656661383037396137363835363138383862653733333439323231373935366262636166616562623631333563356662623234383464356234613566646630333336616330326532366331363532633162643865616633306461653164366433656230306637623466616238643634373866653864393565623931316466393636613064656134653532326462373662383936363537306563633561663039353136343234663061663566386565363665333836643536353037313339393731363961633337353733626635326664303538646539356162326666363865363831313161623233343035656139363462326262383864303263306631636165643731656364643465346534303835393438373666646238353030626335356337626130323036366530356162393864396637653034363664393730326562353765653337323266386663633835613735353035666633323632313730323838623738383732336164623937653464653536323063633930656164313338326663643735373138383966656662313165363737316263336636663366656231396337616335343238373864303361393032373035323663336565643234393465666635346531353363613966363839303230333031303030312801320218043a603765616236393661623935343336363538626331346666366234626534643932356364353162323230646632613164356336656531363061646166323961353165363934646533656531383463653232656164386437646239333231383266330ab70722cc0633303832303161323330306430363039326138363438383666373064303130313031303530303033383230313866303033303832303138613032383230313831303038326465373330363566333466666332393334306435393439643232323062316534333636656435636637633665626436313663663934313661353365613030313766366262313136626664336633646566636331356237613464646630653434643032666536393536383830353365373961373730653230316263663731393333393030333965653866303836643466613734366337653035363931383330316639623565383465333932363238323830383561373962333232626361306235643835666539373232316132366262646532353863363230663064636561303261623165646431366363343961336632616239323838653364643166333764633462366136663731333366663932653534316337316237306432613266363664353537323561623138626638366430303965633364323466356431326530623565363830326431313531333732643462373634656265636234616638326636343934383565633537623561303164633637393538663561303363636161623763626139333534613137333732633133313662613437633935336161663934393031623366386332346536613361666436373538653766336231343363653264643363623037316232613734633932316365653934396134623561366265383739663163373930613662386436336231393264376565323961393439316664643638396139386330613763336436303332306631623461633264363232396466643934653432663361363034386137366265316562393538633861313837336265386433333861656339666335396162376633373632363738393430326331666435393566313930383735373565306265383237666334633061346662336433393361643734613934396363393836626662363463616264646165353339333566366463353630373464623933643737656133623831366264643662653533343439373237323238393835396666333463653531383630616666623632316431303438376463333834336631663836643534303334613633653438613161306430323033303130303031280a3202180d3a606132656363316232616539386264323862633161303864386633373161306434663734356337363864306337373339363235363265333433623235643833343235656565613765663865613134323935333432623865623738643332656333660ab70722cc0633303832303161323330306430363039326138363438383666373064303130313031303530303033383230313866303033303832303138613032383230313831303039383735356134303862353332316532363330353230303064366437643461326333613535346435653133383461396362356562663437346165383832633633623438366264303864313434646466316139346365396137643632353139363330303661666461616334353838343666313736343031393566653235333961363536393330656661383534663231343865363865633161303863316334396432303063336633303435666537313437663036643533346334626432363231303063623164643339373339643736306438316130626432306638336632353564323530376434636362313130366235333631386336613934343039633838376361653236326434636565396338363233323134376365633134303465306335376262613733313731333065653339363433383838616633643539386564643832623863363165363561653831613465316135366263303664333937313433613938643431636138376433656634333365663061656162363830313139316233653338343830393638663636623665383836363261663435613965323132393934663638623238386562393637626562393834373863323433653231333663316131353931663036316635626330346232316666326261343862323966313834333130383838373362646665393966386135326539343038393731383536653830346465613630326133313137383663393835363532393633633361333737303332396234303966373466646663373436623232613566383431383931323037316334636538343663396234623332306665646636653962363465326362653338346639613832623661616164346232303930373433316466316133336636393230376135363536303062653831303730643038333239303039393538353961343439386435623539333135626365626566656538303765623061336139343266316364663333363764643434343466646232393838366566636464306265346162653961313838383033393533383735656461333364623732393839663736336230323033303130303031280b3202180e3a603139366237623132303739376364623361396430303362393833643537646131303331303662313733306531376636376532633762616161646234333738396166313639366461313031316232353362636263383630333333383566303332380ab70722cc0633303832303161323330306430363039326138363438383666373064303130313031303530303033383230313866303033303832303138613032383230313831303061396462376638626161313236383938666162373839313135613362356438393734346631393765323830343161653039386633653838366336393837313732316531316262306164313166336365393132346161393631643661306463383435663439373635633366616231393935383430323637366635363434363262663238316462613535383837383066303365393035373938653138343236396161613630663761313437323333316532666231646561646438373763383463626362363431636139653563386164366534356263313539636230373966636230643434396364636438643932333963316130343765376234343864613063646361323636313061323566323936643936653734363962363736643461343434353136653761353965383532393361383038366638343063303532383534653032613863623230303264616433353832356265346438336235326661393165386337336666303439373436313438383632373837633131313866393234643331636261633162343466656666323264343336623339373965616466396234336134626661373265313562343735356663616232363065303661323739633362623733626337663136613036306434643532326664343930353830333838616135393564383034343733366535323266363432343931356637383033623735383365303935636466373863333235313936393764653831623839666235303035343735336231613137663961616662303634643834633939326639616231316363626338636231303831346463616635323634616134356632316264656661633832636361636161663335386533313337336565316261346537343032666438613730656130633238636135636337346463343235313063393639636432633435396231656333363838613031656133396139393237313063643232393763393861383462363334386135373738303466646332333464336665313930336532633231653137326461323862353961653665346337653865646438623731633439643730323033303130303031280c3202180f3a603538343661353366343437353239666439636462373830346364333136383865643665656265336236336461326635663231316666626337333731393763663366316366626664613631626537643135313066306539323339383131376637340ab70722cc0633303832303161323330306430363039326138363438383666373064303130313031303530303033383230313866303033303832303138613032383230313831303061386365616333363765623166316465356630643965663365616630646639623938343438666532303830383437363536326130363063353163323839373730623463616366653932636236353536393832336539363263326132633966656435336264333663613361313232646531633532356135383266323561346437643632386331613364356264623839333661656365373531306537353534656537303333303235633039326338323865656235373338626530326564393633646138316135393230353633346365393435343537376162383266343066313366316565353565306165373237653233633330323834623166343462393961636534646463356639616337616438386439666132323535393335623234646362613834303036343265313663663235333263306230643638393239303436303837313563343037366634366438346130653066656433366537366363646339363335356537613236313630393435633262353461653236636330306664303832333236333436656565656137646437356639313931316539396462636239396561346163366261303536633333323238643838316438353833316439636338373935393364613137343664643065653935646332623936666539336261666366663263643764393239353864373864663333663230356437313135656439666163346462366634636336306535366135343431646135623562353566613539393939303265393538613662366334346438313064646335363138313234316238376632326630353961363838306538303231373336643031383937646236353434396365383137613233373564303335353163623064653530376336303961306338303330656366346266646562323133633033646161373634613138323162373234333334663731663736386437616563623237373035326137303333373635663037323138303536633738663261383761663138333836643866363161356366636233663262613464643539393135663133643338363334643136393537353730323033303130303031280d320218103a603030306162636435396133306135333838633530306265363832663663613239343034363239356339323735383831633230643334626230643639306564613762333862366262643037613364643166646662366137303434626230396366660ab70722cc0633303832303161323330306430363039326138363438383666373064303130313031303530303033383230313866303033303832303138613032383230313831303061663062393134323537626637613436353563346135306430636164356530613165343538316564363632336630653837333066373936623866323963353831373862636363363933326331666333316633396566343462383264336334336233393837333733373366656362313239353232386130346664353061313466333634366438346665316634363763616562393864343633653239373565393935623864326531653339663362663661646463323561653335643635643032363038653033343535333739363665326162636534396238313462656164336331623735373137346165333063303062306334336539396238303439366237326433633133316631633665346663646130356632383131376566396532386334333033626534643863376530343264353862383363633132313934356132633635653739363263616139313835393338663337353764663763636139356366303262356533313934346133613631396130616333663165333462396230313364346332323463346631653730666439666433363938336566383661646535313833363263633833323263306637623631613961633735666238326537623836643638626330663039396130396131346361633561316438643338663961386137306363333766663563633362626432373432666664313436323535633137316536613137383038333237316463653066646536383165643439326362353962303739366432373031373538333864633539303831303765336136656133663961343036623364313133306363656333623437393165343962626332333136303362343661623264306639336434336265373561623961346437313065613934306532383561376231353362306361376364646565366439646365306164383335306334316439306332313562393538383531356166613061633333363561653037653831663362626233366264626561633462333162636231616134653832353635623937376639646164383564363236656566396161613965663864376533666230323033303130303031280e320218113a603933653238313031303462326231376230303935326235613431303264333365646230343363623136646533616433643364363832363066353562623065353837333765613539343463333338663763386362383863373833336663383630630ab70722cc0633303832303161323330306430363039326138363438383666373064303130313031303530303033383230313866303033303832303138613032383230313831303038633037626533303561643630623930626132646162333962306565373736306531613232663835373532323534306437306230336233663965343837356133613239616230383038386631343466353765623235326534366261353933383564306536643432373031313764613061626331623362383036393463396135303538623836643631646661303665373136373039633838653866656163376333613065316432356663306165626636613866373666636239396638343566653138313436316361623638353862393763336134303237666233373132623134653663303738396465313764343137363435373765353131343137656231363236393265623037616531653733353532333565396262343339303437623663303136313337383265376464366636303464616134363734363631643533393631663436633366616136623765373637363264333733623562353432623739656139363365666266333361633638313938626232623636316366663637363931366566333732616434633236633231366334626334373837633834656333326431383464373763373531383663303963663364396639313433336361393835333131396261623331666136616432366634353365353936643962646563613638613537363962633866656537613533356438306338633666336566623164666232383861623661393739383534623763653833313234656330643130326166663934633362373466396333373839353863323565623933336464353363316538303561313836353464366439313836393930663635373034323966393630663334653862346637666439393732646362666539323430653037346461326433353561356637656639633161663632656635393832613831373435373862396331356334396563353636626461636233306363666365663039636466653730386164343837343234653963316265363533663965653736363065376439343263316566613564613238366531616464616230366139613333663964653934363739356230323033303130303031280f320218123a603934383235313739643163333934303137306233356432363665346366613830643737386335653966356261653764653833666638636334373431663362653336616336336431653761653439373261656466366263316533636632303638390ab70722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030626531376339393634376365633635613434343037623533353835366233633362616566356235346635363561663538623834353662613863376365353335643561633732633631633434633736623363353763386538363438343136333762653130613833636665333963303932343736643064626534643663646364636437323061333062356266656235316130316131386635383263343566366338363939336663663764663138323933356465316438363930363034346463663335313836393335643962643765656137393532333532626562623465663961653066373636316537306134323337616661393839393636383763613438666366633562303064333830376630353462653066613863336266613432353033386265366566323935313634663232663733623765383863393465613962653861613466336132343563383962396431666435313932663761353062393538623265663831303462333666316266386664326366623238633134323138303063316334376534656639386166313530303730636336643639643137653865623932663138613661613161363532363661343935323338643130336638663639356235376563663337333635306130353230303837343537323162656138313536323739363763383037363336356466386334633761376434646438663263333835306331386662613731656236306536653864666264313936653035333766643730623334346563626363353330646663383364613666656466343964353161393034313935303262613964373063643335663163663363303639346532333534663930363466646266353335656232336332376330613433643062373863316638363763363164393836393564386465663762633261313062623636373463323266363661616230613931383133646466323763646238353263353965663739653162396531613037356661366565323761376533373734646266346232363436353432376536643561623931666537663066336137313738346563613138326235303230333031303030312810320218133a603038393039376465663031623037633764393734613537353532353161366161613061666236623332613534353334336432393138653732626164303433323163313131633234643432373538306633626131653236616139643735653632360ab70722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030613561643262373634336130346330353564326638636432353131623135313339666334353537353632313338386534396331313962326633393861636131313066363133393662306338363664653530363335323262623835343032373365313366366439346365316536303433386636616662303061616136343631326637313435653962636538626331613533623934313931336161373663396633613238333366616437636632383563376163326433376639396633633263646234396465346431353165363136373835363466323831663534313432346234316661376335316232613936303232383363376433326565303065623833386461313563333861666339366530363164393763656465323231363566663161613935396631633432373562326430393863343035383661353537396662623363623930303732373034313230613861363661353237306634666366643130383663393233363930613335653766643434356533336163303366313339633638363835353635373063646334616166323231303761366331613434323435366137633663373965653034303930653765356434663636626361363063613166343762366466623534336461633363626631396137373139613866353562366638336234613362386136366436303235366430613436353531666137303234626430353633316238613535383038373732353463326632663236386364633333643264626263666237333365396662653233336262396362353961623331613031343862323365386334323638306666313061663463373961346430383334366662373961393364393632393534386561663162623132343639386661656661346364643732343432633033613034623733333433326637343839303361333235633238336434353661623961653932316165376564333339316535643137383765666463323335343061376238356336393161653837306130376639306231316331336233326365343365616564313562333639363835636534393137376363393835303230333031303030312811320218143a603939666162633461646534653636326336653238323366346139366562323134343034383465356136643064333132623730633036386432326236323936333830376332333361343964626239383361376562623330653737303637373261340ab70722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030386434356332316330633935656636356130323964353263393537666430663835663230313233646130333465363136373164646565353437356630373338326136366336366362346463353035303464646664333735383130383364663864313735373733306564386436663336346466346333366132363531353931393535646132303161323430376661386162396232333133383131323235613064613233306662653338306530393061613536656661346632303265633962343832336636353031643936616336393865626632366161636633656532643166333261373231633934376531303736636633356233373364613164383761333661313532653030653731303131373932323832653832356666313731633538333362383835373062666336646138343439653666393566386231323635616235353531393430333135353364316435373666393363343263306361363061616261633463386464313632643831313466326232313531313538336337323533396665353663343939613932396465336134306130643435633137633538396332643739383863653236656166633932613364333762376561303034326434336530336166613632373162323632353561366363636661653533373138323164383165306230356332353062353966306139303734316130653065383861303965643536633562393738306430393566303930366630623831643531323633393832616165303131333663303732643834346131316436646134623261363163363434653161623137663136666634386565323366656465383435326631653432653264333061303739306332356434323036306531643434613637316132656232336431313466363863373165333366313736646235386136386234333030353462633164323938336132336133326561366666393566613763346438653338306562323936653938623739363865636638343534643831376337333765656135646439323165623836633136633762323933303461346137656362653561336131303230333031303030312812320218153a606537396165396337313933643164326263393433383436346338616135663632323461653835323936366134336239383235383833663766373432633533393562643330393935383761393638363662393233396431656666336165353037610ab70722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030623035616265326162303066646430366339353565383637313062306530366631613932363234613438616431636263386466633666323231323936326230633330666462643238346133376335613337363538623633633336656138313632353631613865346639343663626535373232633032383830316630663238316337306638643838633763303061326632653239663539376237393938363965643833353664663537633437626539393434613261616666363530663962346262613064626335336463383830666462623639656134353139303564323830323230326638653239633034613736643237616632656237633534383438356266336634363934633930633431383130383838383433373932383438383335663738313637303764336538643736663465363766353738306263663038383133633535656336333961396264363234313738663565623134376435303061663335316539656631623165333432343834636132363064623763636261653438366631336366323635623562316162363838303636303038303533623230633364656463653737316339613038613033323061613963653435316562396439383361376234396361613130393666386164633039383331386463333865306537636566306438653564353537613036373536383561316339653235366132626339646261333232623362623331373263663731343037376263333830663861306134333361386266613766626663353966366230393365633862663665393339376330396231386531383034306331623536363836343733376338666137653239373935663361343538386464613763326261623439353636356363346139623833366532656239306336326133666361663539316662356638313830346337363138306536323666613236343461376465333435313164366334363637643938393337653237373333663464316539313338383333353465353466643733353137323165373666376235366333343833333838663461366238376232386165626562303230333031303030312813320218163a603962343038383566313362366163316337353336393262613366313739303061333838333165363934613061663937343934623834333838323039636235656662646339386136646162623265316337313833393166633133356264616163330ab70722cc06333038323031613233303064303630393261383634383836663730643031303130313035303030333832303138663030333038323031386130323832303138313030396463643863306135336539306333353539353734663636323034313137643362353033653530613336643330393766616338343239653663656364333762623534303731383038663265653938323033356638353161306339626532313736333833613232653338633161626131363866333266393035373063623332333363666536323539383736363661663637623531346361656632316662386466366430666364333363663236303662393264646561353533366236303638643836373832653339626435633338343435393931643431396237643165633038353939343132633039343964316332343062333563313464633535323734646261373166666165393336313235613566383139663534313332653234333964346163353539373939366563653835653133646666333336316639313331663536636561633562396635353262343963663666396139616336653564636532646233363934363266393361663830653562353662366538626566613136326130363162346137363839326264633834363437333036633630303835386664643237303332373663326337303434303139386566643766653335343563663261623538306337346366643634343561616637626437663734356363323532656162643236356561626565383632343137313034653639343861353537353666646332323264663061313031353234646531633363303863636630343330313165633766653936346564643834353161313330313437633037333633613335663131666465656638663261326237363137353762343335386666383962373561343864363762646336303930363933653062623836373965636262393366666462336633656439366265633933656634363536653337313661623837636534366361386531323539633866656464653866326631656130663365623263343865393635353164653132333330333435373235663435656436396338353735623531363833616661343732363231383236646232326262326431633466316533363436346139303230333031303030312814320218173a60346630613033333466393737363738313632663830643936376637323139313431333630633062376637663033316233376336396536323137333933336564616434366263626139373636376565373262666435613933346261313532326330\")));export{b as MAINNET_ADDRESS_BOOK,d as PREVIEWNET_ADDRESS_BOOK,o as TESTNET_ADDRESS_BOOK};\n//# sourceMappingURL=AddressBooks.js.map\n","import e from\"../account/AccountId.js\";const s={\"https://node00.swirldslabs.com:443\":new e(3),\"https://node01-00-grpc.swirlds.com:443\":new e(4),\"https://node02.swirldslabs.com:443\":new e(5),\"https://node03.swirldslabs.com:443\":new e(6),\"https://node04.swirldslabs.com:443\":new e(7),\"https://node05.swirldslabs.com:443\":new e(8),\"https://node06.swirldslabs.com:443\":new e(9),\"https://node07.swirldslabs.com:443\":new e(10),\"https://node09.swirldslabs.com:443\":new e(12),\"https://node10.swirldslabs.com:443\":new e(13),\"https://node11.swirldslabs.com:443\":new e(14),\"https://node12.swirldslabs.com:443\":new e(15),\"https://node14.swirldslabs.com:443\":new e(17),\"https://node15.swirldslabs.com:443\":new e(18),\"https://node16.swirldslabs.com:443\":new e(19),\"https://node17.swirldslabs.com:443\":new e(20),\"https://node18.swirldslabs.com:443\":new e(21),\"https://node19.swirldslabs.com:443\":new e(22),\"https://node20.swirldslabs.com:443\":new e(23),\"https://node21.swirldslabs.com:443\":new e(24),\"https://node22.swirldslabs.com:443\":new e(25),\"https://node24.swirldslabs.com:443\":new e(27),\"https://node25.swirldslabs.com:443\":new e(28),\"https://node26.swirldslabs.com:443\":new e(29),\"https://node27.swirldslabs.com:443\":new e(30),\"https://node28.swirldslabs.com:443\":new e(31),\"https://node29.swirldslabs.com:443\":new e(32),\"https://node30.swirldslabs.com:443\":new e(33),\"https://node31.swirldslabs.com:443\":new e(34)},t={\"https://testnet-node00-00-grpc.hedera.com:443\":new e(3),\"https://testnet-node01-00-grpc.hedera.com:443\":new e(4),\"https://testnet-node02-00-grpc.hedera.com:443\":new e(5),\"https://testnet-node03-00-grpc.hedera.com:443\":new e(6),\"https://testnet-node04-00-grpc.hedera.com:443\":new e(7),\"https://testnet-node05-00-grpc.hedera.com:443\":new e(8),\"https://testnet-node06-00-grpc.hedera.com:443\":new e(9)},n={\"https://previewnet-node00-00-grpc.hedera.com:443\":new e(3),\"https://previewnet-node01-00-grpc.hedera.com:443\":new e(4),\"https://previewnet-node02-00-grpc.hedera.com:443\":new e(5),\"https://previewnet-node03-00-grpc.hedera.com:443\":new e(6),\"https://previewnet-node04-00-grpc.hedera.com:443\":new e(7),\"https://previewnet-node05-00-grpc.hedera.com:443\":new e(8),\"https://previewnet-node06-00-grpc.hedera.com:443\":new e(9)};new e(3),new e(3);const o={...s,...t,...n},d={\"34.239.82.6:\":\"0.0.3\",\"35.237.200.180:\":\"0.0.3\",\"3.130.52.236:\":\"0.0.4\",\"35.186.191.247:\":\"0.0.4\",\"3.18.18.254:\":\"0.0.5\",\"35.192.2.25:\":\"0.0.5\",\"74.50.117.35:\":\"0.0.5\",\"23.111.186.250:\":\"0.0.5\",\"107.155.64.98:\":\"0.0.5\",\"13.52.108.243:\":\"0.0.6\",\"35.199.161.108:\":\"0.0.6\",\"3.114.54.4:\":\"0.0.7\",\"35.203.82.240:\":\"0.0.7\",\"35.236.5.219:\":\"0.0.8\",\"35.183.66.150:\":\"0.0.8\",\"35.181.158.250:\":\"0.0.9\",\"35.197.192.225:\":\"0.0.9\",\"177.154.62.234:\":\"0.0.10\",\"3.248.27.48:\":\"0.0.10\",\"35.242.233.154:\":\"0.0.10\",\"35.204.86.32:\":\"0.0.12\",\"35.177.162.180:\":\"0.0.12\",\"34.215.192.104:\":\"0.0.13\",\"35.234.132.107:\":\"0.0.13\",\"52.8.21.141:\":\"0.0.14\",\"35.236.2.27:\":\"0.0.14\",\"35.228.11.53:\":\"0.0.15\",\"3.121.238.26:\":\"0.0.15\",\"34.86.212.247:\":\"0.0.17\",\"18.232.251.19:\":\"0.0.17\",\"141.94.175.187:\":\"0.0.18\",\"34.89.87.138:\":\"0.0.19\",\"18.168.4.59:\":\"0.0.19\",\"34.82.78.255:\":\"0.0.20\",\"52.39.162.216:\":\"0.0.20\",\"34.76.140.109:\":\"0.0.21\",\"13.36.123.209:\":\"0.0.21\",\"52.78.202.34:\":\"0.0.22\",\"34.64.141.166:\":\"0.0.22\",\"3.18.91.176:\":\"0.0.23\",\"35.232.244.145:\":\"0.0.23\",\"69.167.169.208:\":\"0.0.23\",\"34.89.103.38:\":\"0.0.24\",\"18.135.7.211:\":\"0.0.24\",\"34.93.112.7:\":\"0.0.25\",\"13.232.240.207:\":\"0.0.25\",\"13.56.4.96:\":\"0.0.27\",\"34.125.200.96:\":\"0.0.27\",\"35.198.220.75:\":\"0.0.28\",\"18.139.47.5:\":\"0.0.28\",\"54.74.60.120:\":\"0.0.29\",\"34.142.71.129:\":\"0.0.29\",\"80.85.70.197:\":\"0.0.29\",\"35.234.249.150:\":\"0.0.30\",\"34.201.177.212:\":\"0.0.30\",\"217.76.57.165:\":\"0.0.31\",\"3.77.94.254:\":\"0.0.31\",\"34.107.78.179:\":\"0.0.31\",\"34.86.186.151:\":\"0.0.32\",\"3.20.81.230:\":\"0.0.32\",\"18.136.65.22:\":\"0.0.33\",\"34.142.172.228:\":\"0.0.33\",\"34.16.139.248:\":\"0.0.34\",\"35.155.212.90:\":\"0.0.34\",\"34.94.106.61:\":\"0.0.3\",\"50.18.132.211:\":\"0.0.3\",\"3.212.6.13:\":\"0.0.4\",\"35.237.119.55:\":\"0.0.4\",\"35.245.27.193:\":\"0.0.5\",\"52.20.18.86:\":\"0.0.5\",\"34.83.112.116:\":\"0.0.6\",\"54.70.192.33:\":\"0.0.6\",\"34.94.160.4:\":\"0.0.7\",\"54.176.199.109:\":\"0.0.7\",\"35.155.49.147:\":\"0.0.8\",\"34.106.102.218:\":\"0.0.8\",\"34.133.197.230:\":\"0.0.9\",\"52.14.252.207:\":\"0.0.9\",\"127.0.0.1:\":\"0.0.3\",\"3.211.248.172:\":\"0.0.3\",\"35.231.208.148:\":\"0.0.3\",\"35.199.15.177:\":\"0.0.4\",\"3.133.213.146:\":\"0.0.4\",\"35.225.201.195:\":\"0.0.5\",\"52.15.105.130:\":\"0.0.5\",\"54.241.38.1:\":\"0.0.6\",\"35.247.109.135:\":\"0.0.6\",\"54.177.51.127:\":\"0.0.7\",\"35.235.65.51:\":\"0.0.7\",\"34.106.247.65:\":\"0.0.8\",\"35.83.89.171:\":\"0.0.8\",\"50.18.17.93:\":\"0.0.9\",\"34.125.23.49:\":\"0.0.9\"};export{d as ALL_NETWORK_IPS,o as ALL_WEB_NETWORK_NODES,s as MAINNET,n as WEB_PREVIEWNET,t as WEB_TESTNET};\n//# sourceMappingURL=ClientConstants.js.map\n","export{default as Long}from\"long\";import\"bignumber.js\";import\"rfc4648\";import\"@hashgraph/proto\";export{default as PublicKey}from\"./PublicKey.js\";import\"@ethersproject/bytes\";export{BadKeyError,BadMnemonicError,BadMnemonicReason,HEDERA_PATH,SLIP44_ECDSA_ETH_PATH,SLIP44_ECDSA_HEDERA_PATH}from\"@hashgraph/cryptography\";export{default as PrivateKey}from\"./PrivateKey.js\";export{default as KeyList}from\"./KeyList.js\";export{default as TokenAirdropTransaction}from\"./token/TokenAirdropTransaction.js\";export{default as TokenClaimAirdropTransaction}from\"./token/TokenClaimAirdropTransaction.js\";export{default as TokenCancelAirdropTransaction}from\"./token/TokenCancelAirdropTransaction.js\";export{default as Transaction}from\"./transaction/Transaction.js\";export{default as AccountId}from\"./account/AccountId.js\";export{default as ContractId}from\"./contract/ContractId.js\";export{default as HbarUnit}from\"./HbarUnit.js\";export{default as AccountAllowanceApproveTransaction}from\"./account/AccountAllowanceApproveTransaction.js\";export{default as AccountAllowanceDeleteTransaction}from\"./account/AccountAllowanceDeleteTransaction.js\";export{default as AccountBalanceQuery}from\"./account/AccountBalanceQuery.js\";export{default as AccountCreateTransaction}from\"./account/AccountCreateTransaction.js\";export{default as AccountDeleteTransaction}from\"./account/AccountDeleteTransaction.js\";export{default as Timestamp}from\"./Timestamp.js\";export{default as LedgerId}from\"./LedgerId.js\";export{default as AccountInfoQuery}from\"./account/AccountInfoQuery.js\";export{default as AccountRecordsQuery}from\"./account/AccountRecordsQuery.js\";export{default as AccountUpdateTransaction}from\"./account/AccountUpdateTransaction.js\";export{default as AddressBookQuery}from\"./network/AddressBookQuery.js\";export{default as BatchTransaction}from\"./transaction/BatchTransaction.js\";export{default as ContractByteCodeQuery}from\"./contract/ContractByteCodeQuery.js\";export{default as ContractCallQuery}from\"./contract/ContractCallQuery.js\";export{default as FileCreateTransaction}from\"./file/FileCreateTransaction.js\";export{default as FileAppendTransaction}from\"./file/FileAppendTransaction.js\";export{default as FileDeleteTransaction}from\"./file/FileDeleteTransaction.js\";export{default as ContractCreateTransaction}from\"./contract/ContractCreateTransaction.js\";export{default as ContractDeleteTransaction}from\"./contract/ContractDeleteTransaction.js\";export{default as ContractExecuteTransaction}from\"./contract/ContractExecuteTransaction.js\";import\"@ethersproject/abi\";export{default as ContractInfoQuery}from\"./contract/ContractInfoQuery.js\";export{default as ContractUpdateTransaction}from\"./contract/ContractUpdateTransaction.js\";export{default as FeeAssessmentMethod}from\"./token/FeeAssessmentMethod.js\";export{default as DelegateContractId}from\"./contract/DelegateContractId.js\";export{default as EthereumTransaction}from\"./EthereumTransaction.js\";export{default as EthereumTransactionDataLegacy}from\"./EthereumTransactionDataLegacy.js\";export{default as EthereumTransactionDataEip1559}from\"./EthereumTransactionDataEip1559.js\";export{default as EthereumTransactionDataEip2930}from\"./EthereumTransactionDataEip2930.js\";import\"./grpc/GrpcStatus.js\";export{default as Status}from\"./Status.js\";export{default as FeeDataType}from\"./FeeDataType.js\";export{default as RequestType}from\"./RequestType.js\";export{default as FileContentsQuery}from\"./file/FileContentsQuery.js\";export{default as FileId}from\"./file/FileId.js\";export{default as FileInfoQuery}from\"./file/FileInfoQuery.js\";export{default as FileUpdateTransaction}from\"./file/FileUpdateTransaction.js\";export{default as FreezeTransaction}from\"./system/FreezeTransaction.js\";export{default as LiveHashAddTransaction}from\"./account/LiveHashAddTransaction.js\";export{default as LiveHashDeleteTransaction}from\"./account/LiveHashDeleteTransaction.js\";export{default as LiveHashQuery}from\"./account/LiveHashQuery.js\";export{default as NetworkVersionInfoQuery}from\"./network/NetworkVersionInfoQuery.js\";export{default as PrngTransaction}from\"./PrngTransaction.js\";export{default as ScheduleCreateTransaction}from\"./schedule/ScheduleCreateTransaction.js\";export{default as ScheduleDeleteTransaction}from\"./schedule/ScheduleDeleteTransaction.js\";export{default as ScheduleInfoQuery}from\"./schedule/ScheduleInfoQuery.js\";export{default as ScheduleSignTransaction}from\"./schedule/ScheduleSignTransaction.js\";export{default as SystemDeleteTransaction}from\"./system/SystemDeleteTransaction.js\";export{default as SystemUndeleteTransaction}from\"./system/SystemUndeleteTransaction.js\";export{default as TokenAssociateTransaction}from\"./token/TokenAssociateTransaction.js\";export{default as TokenBurnTransaction}from\"./token/TokenBurnTransaction.js\";export{default as TokenRejectTransaction}from\"./token/TokenRejectTransaction.js\";export{default as TokenDissociateTransaction}from\"./token/TokenDissociateTransaction.js\";export{default as TokenCreateTransaction}from\"./token/TokenCreateTransaction.js\";export{default as TokenDeleteTransaction}from\"./token/TokenDeleteTransaction.js\";export{default as TokenFeeScheduleUpdateTransaction}from\"./token/TokenFeeScheduleUpdateTransaction.js\";export{default as TokenFreezeTransaction}from\"./token/TokenFreezeTransaction.js\";export{default as TokenGrantKycTransaction}from\"./token/TokenGrantKycTransaction.js\";export{default as TokenType}from\"./token/TokenType.js\";export{default as TokenSupplyType}from\"./token/TokenSupplyType.js\";export{default as TokenInfoQuery}from\"./token/TokenInfoQuery.js\";export{default as TokenMintTransaction}from\"./token/TokenMintTransaction.js\";export{default as TokenNftInfoQuery}from\"./token/TokenNftInfoQuery.js\";export{default as TokenPauseTransaction}from\"./token/TokenPauseTransaction.js\";export{default as TokenRevokeKycTransaction}from\"./token/TokenRevokeKycTransaction.js\";export{default as TokenUnfreezeTransaction}from\"./token/TokenUnfreezeTransaction.js\";export{default as TokenUnpauseTransaction}from\"./token/TokenUnpauseTransaction.js\";export{default as TokenUpdateTransaction}from\"./token/TokenUpdateTransaction.js\";export{default as TokenWipeTransaction}from\"./token/TokenWipeTransaction.js\";export{default as TopicCreateTransaction}from\"./topic/TopicCreateTransaction.js\";export{default as TopicDeleteTransaction}from\"./topic/TopicDeleteTransaction.js\";export{default as TopicInfoQuery}from\"./topic/TopicInfoQuery.js\";export{default as TopicMessageSubmitTransaction}from\"./topic/TopicMessageSubmitTransaction.js\";export{default as TopicUpdateTransaction}from\"./topic/TopicUpdateTransaction.js\";export{default as TransactionReceiptQuery}from\"./transaction/TransactionReceiptQuery.js\";export{default as TransactionRecordQuery}from\"./transaction/TransactionRecordQuery.js\";export{default as TransferTransaction}from\"./account/TransferTransaction.js\";import\"pino\";export{default as LogLevel}from\"./logger/LogLevel.js\";export{default as FreezeType}from\"./FreezeType.js\";export{default as TokenKeyValidation}from\"./token/TokenKeyValidation.js\";export{default as TokenUpdateNftsTransaction}from\"./token/TokenUpdateNftsTransaction.js\";export{default as NodeCreateTransaction}from\"./node/NodeCreateTransaction.js\";export{default as NodeDeleteTransaction}from\"./node/NodeDeleteTransaction.js\";export{default as NodeUpdateTransaction}from\"./node/NodeUpdateTransaction.js\";import\"./address_book/AddressBooks.js\";import\"./constants/ClientConstants.js\";const e={Mainnet:\"mainnet\",Testnet:\"testnet\",Previewnet:\"previewnet\"};export{e as NetworkName};\n//# sourceMappingURL=exports.js.map\n","const t=/^(\\S+):(\\d+)$/;class r{constructor(r={}){if(null!=r.address){const s=t.exec(r.address);if(null==s)throw new Error(`failed to parse address: ${r.address}`);this._address=s[1],this._port=null!=s[2]?parseInt(s[2]):null}else{if(null==r.host||null==r.port)throw new Error(`failed to create a managed node address: ${JSON.stringify(r)}`);this._address=r.host,this._port=r.port}Object.freeze(this)}static fromString(t){return new r({address:t})}toInsecure(){let t=50212===this.port?50211:this.port;return new r({host:this.address,port:t})}toSecure(){let t=50211===this.port?50212:this.port;return new r({host:this.address,port:t})}get address(){return this._address}get port(){return this._port}isTransportSecurity(){return 50212==this._port||443==this._port}toString(){return null==this.port?this.address:`${this.address}:${this.port}`}}export{t as HOST_AND_PORT,r as default};\n//# sourceMappingURL=ManagedNodeAddress.js.map\n","import e from\"./ManagedNodeAddress.js\";class t{constructor(t={}){if(null!=t.newNode)this._address=\"string\"==typeof t.newNode.address?e.fromString(t.newNode.address):t.newNode.address,this._cert=void 0,this._channel=null,this._channelInitFunction=t.newNode.channelInitFunction,this._lastUsed=Date.now(),this._readmitTime=Date.now(),this._useCount=0,this._badGrpcStatusCount=0,this._minBackoff=8e3,this._maxBackoff=36e5,this._currentBackoff=this._minBackoff;else{if(null==t.cloneNode)throw new Error(`failed to create ManagedNode: ${JSON.stringify(t)}`);this._address=t.cloneNode.address,this._cert=t.cloneNode.node._cert,this._channel=t.cloneNode.node._channel,this._channelInitFunction=t.cloneNode.node._channelInitFunction,this._currentBackoff=t.cloneNode.node._currentBackoff,this._lastUsed=t.cloneNode.node._lastUsed,this._readmitTime=t.cloneNode.node._readmitTime,this._useCount=t.cloneNode.node._useCount,this._badGrpcStatusCount=t.cloneNode.node._badGrpcStatusCount,this._minBackoff=t.cloneNode.node._minBackoff,this._maxBackoff=t.cloneNode.node._minBackoff}}getKey(){throw new Error(\"not implemented\")}setCert(e){return this}get address(){return this._address}get attempts(){return this._badGrpcStatusCount}get minBackoff(){return this._minBackoff}setMinBackoff(e){return this._currentBackoff<=e&&(this._currentBackoff=e),this._minBackoff=e,this}get maxBackoff(){return this._maxBackoff}setMaxBackoff(e){return this._currentBackoff<=e&&(this._currentBackoff=e),this._maxBackoff=e,this}getChannel(){return this._useCount++,this.__lastUsed=Date.now(),null!=this._channel||(this._channel=this._channelInitFunction(this.address.toString(),this._cert)),this._channel}isHealthy(){return this._readmitTime<=Date.now()}increaseBackoff(){this._currentBackoff=Math.min(2*this._currentBackoff,this._maxBackoff),this._readmitTime=Date.now()+this._currentBackoff}decreaseBackoff(){this._currentBackoff=Math.max(this._currentBackoff/2,this._minBackoff)}getRemainingTime(){return this._readmitTime-this._lastUsed}backoff(){return new Promise((e=>setTimeout(e,this.getRemainingTime())))}compare(e){let t=this.getRemainingTime()-e.getRemainingTime();return 0!=t?t:(t=this._currentBackoff-e._currentBackoff,0!=t?t:(t=this._badGrpcStatusCount-e._badGrpcStatusCount,0!=t?t:(t=this._useCount-e._useCount,0!=t?t:this._lastUsed-e._lastUsed)))}close(){null!=this._channel&&this._channel.close(),this._channel=null}}export{t as default};\n//# sourceMappingURL=ManagedNode.js.map\n","import e from\"./ManagedNode.js\";class d extends e{constructor(e={}){if(super(e),null!=e.newNode)this._accountId=e.newNode.accountId,this._nodeAddress=null;else{if(null==e.cloneNode)throw new Error(`failed to create node: ${JSON.stringify(e)}`);this._accountId=e.cloneNode.node._accountId,this._nodeAddress=e.cloneNode.node._nodeAddress}}getKey(){return this._accountId.toString()}toInsecure(){return new d({cloneNode:{node:this,address:this._address.toInsecure()}})}toSecure(){return new d({cloneNode:{node:this,address:this._address.toSecure()}})}get accountId(){return this._accountId}get nodeAddress(){return this._nodeAddress}setNodeAddress(e){return this._nodeAddress=e,this}}export{d as default};\n//# sourceMappingURL=Node.js.map\n","import e from\"../LedgerId.js\";import{shuffle as t}from\"../util.js\";class o{constructor(e){this._network=new Map,this._nodes=[],this._healthyNodes=[],this._createNetworkChannel=e,this._ledgerId=null,this._minBackoff=8e3,this._maxBackoff=36e5,this._maxNodeAttempts=-1,this._nodeMinReadmitPeriod=this._minBackoff,this._nodeMaxReadmitPeriod=this._maxBackoff,this._earliestReadmitTime=Date.now()+this._nodeMinReadmitPeriod}setNetworkName(e){return console.warn(\"Deprecated: Use `setLedgerId` instead\"),this.setLedgerId(e)}get networkName(){return console.warn(\"Deprecated: Use `ledgerId` instead\"),null!=this.ledgerId?this.ledgerId.toString():null}setLedgerId(t){return this._ledgerId=\"string\"==typeof t?e.fromString(t):t,this}get ledgerId(){return null!=this._ledgerId?this._ledgerId:null}_createNodeFromNetworkEntry(e){throw new Error(\"not implemented\")}_getNodesToRemove(e){throw new Error(\"not implemented\")}_removeDeadNodes(){if(this._maxNodeAttempts>0)for(let e=this._nodes.length-1;e>=0;e--){this._nodes[e]._badGrpcStatusCounte&&(t=Math.min(this._nodes[s]._readmitTime,t)),this._nodes[s]==this._healthyNodes[i])continue e;o=!1,this._nodes[s]._readmitTime<=e&&this._healthyNodes.push(this._nodes[s])}this._earliestReadmitTime=Math.min(Math.max(t,this._nodeMinReadmitPeriod),this._nodeMaxReadmitPeriod)}}_getNumberOfMostHealthyNodes(e){this._removeDeadNodes(),this._readmitNodes();const t=[];let o=this._healthyNodes.slice();e=Math.min(e,o.length);for(let s=0;st.getKey()!==e.getKey()))}return t}_closeNode(e){const t=this._nodes[e];t.close(),this._removeNodeFromNetwork(t),this._nodes.splice(e,1)}_removeNodeFromNetwork(e){const t=this._network.get(e.getKey());for(let o=0;o[e,\"string\"==typeof s?t.fromString(s):s]))))}setNetworkFromAddressBook(t){const e={},s=this.isTransportSecurity()?50212:50211;for(const r of t.nodeAddresses)for(const t of r.addresses)t.port===s&&null!=r.accountId&&(e[t.toString()]=r.accountId);return this.setNetwork(e),this}get network(){var t={};for(const e of this._nodes)t[e.address.toString()]=e.accountId;return t}setNetworkName(t){switch(super.setLedgerId(t),t){case\"mainnet\":this._addressBook=o;break;case\"testnet\":this._addressBook=r;break;case\"previewnet\":this._addressBook=s}if(null!=this._addressBook)for(const t of this._nodes)for(const e of this._addressBook.nodeAddresses)null!=e.accountId&&e.accountId.toString()===t.accountId.toString()&&t.setNodeAddress(e);return this}get networkName(){return null!=this._ledgerId?this._ledgerId.toString():null}_createNodeFromNetworkEntry(s){const r=\"string\"==typeof s[1]?t.fromString(s[1]):s[1];return new e({newNode:{address:s[0],accountId:r,channelInitFunction:this._createNetworkChannel}}).setMinBackoff(this._minBackoff)}_getNodesToRemove(t){const e=[];for(let s=this._nodes.length-1;s>=0;s--){const r=this._nodes[s],o=t.get(r.address.toString());null!=o&&o.toString()===r.accountId.toString()||e.push(s)}return e}_checkNetworkContainsEntry(t){for(const e of this._nodes)if(e.address.toString()===t[0])return!0;return!1}get maxNodesPerTransaction(){return this._maxNodesPerTransaction}setMaxNodesPerTransaction(t){return this._maxNodesPerTransaction=t,this}get maxNodeAttempts(){return this._maxNodeAttempts}setMaxNodeAttempts(t){return this._maxNodeAttempts=t,this}isTransportSecurity(){return this._transportSecurity}setTransportSecurity(t){if(this._transportSecurity==t)return this;this._network.clear();for(let e=0;e0?this._maxNodesPerTransaction:this._nodes.length<=9?this._nodes.length:Math.floor((this._nodes.length+3-1)/3)}getNodeAccountIdsForExecute(){return this._getNumberOfMostHealthyNodes(this.getNumberOfNodesForTransaction()).map((t=>t.accountId))}}export{i as default};\n//# sourceMappingURL=Network.js.map\n","import e from\"./ManagedNode.js\";class t extends e{constructor(e={}){super(e)}getKey(){return this._address.toString()}}export{t as default};\n//# sourceMappingURL=MirrorNode.js.map\n","import e from\"../MirrorNode.js\";import t from\"./ManagedNetwork.js\";class r extends t{constructor(e){super(e)}setNetwork(e){this._setNetwork(new Map(e.map((e=>[e,e]))))}get network(){var e=[];for(const t of this._nodes)e.push(t.address.toString());return e}_createNodeFromNetworkEntry(t){return new e({newNode:{address:t[1],channelInitFunction:this._createNetworkChannel}}).setMinBackoff(this._minBackoff)}_getNodesToRemove(e){const t=[],r=Object.values(e);for(let e=this._nodes.length-1;e>=0;e--){const o=this._nodes[e];r.includes(o.address.toString())||t.push(e)}return t}getNextMirrorNode(){if(null==this._createNetworkChannel)throw new Error(\"mirror network not supported on browser\");return this._getNumberOfMostHealthyNodes(1)[0]}}export{r as default};\n//# sourceMappingURL=MirrorNetwork.js.map\n","import t from\"../account/AccountId.js\";import e from\"../account/AccountBalanceQuery.js\";import r from\"../Hbar.js\";import o from\"./Network.js\";import n from\"./MirrorNetwork.js\";import i from\"../PublicKey.js\";import s from\"../PrivateKey.js\";import a from\"../LedgerId.js\";import u from\"../file/FileId.js\";import h from\"../Cache.js\";import\"pino\";import\"../logger/LogLevel.js\";import{convertToNumber as d}from\"../util.js\";class m{constructor(t){this._mirrorNetwork=new n(this._createMirrorNetworkChannel()),this._network=new o(this._createNetworkChannel()),this._operator=null,this._defaultMaxTransactionFee=null,this._defaultMaxQueryPayment=new r(1),null!=t&&null!=t.operator&&this.setOperator(t.operator.accountId,t.operator.privateKey),this._maxAttempts=null,this._signOnDemand=!1,this._autoValidateChecksums=!1,this._minBackoff=250,this._maxBackoff=8e3,this._defaultRegenerateTransactionId=!0,this._requestTimeout=null,this._isUpdatingNetwork=!1,this._networkUpdatePeriod=864e5,this._isShutdown=!1,null!=t&&!1!==t.scheduleNetworkUpdate&&this._scheduleNetworkUpdate(),this._timer,this._logger=null}setNetworkName(t){return console.warn(\"Deprecated: Use `setLedgerId` instead\"),this.setLedgerId(t)}get networkName(){return console.warn(\"Deprecated: Use `ledgerId` instead\"),null!=this.ledgerId?this.ledgerId.toString():null}setLedgerId(t){return this._network.setLedgerId(\"string\"==typeof t?a.fromString(t):t),this}get ledgerId(){return null!=this._network._ledgerId?this._network.ledgerId:null}setNetwork(t){throw new Error(\"not implemented\")}setNetworkFromAddressBook(t){return this._network.setNetworkFromAddressBook(t),this}get network(){return this._network.network}setMirrorNetwork(t){throw new Error(\"not implemented\")}get mirrorNetwork(){return this._mirrorNetwork.network}get signOnDemand(){return this._signOnDemand}setSignOnDemand(t){this._signOnDemand=t}isTransportSecurity(){return this._network.isTransportSecurity()}setTransportSecurity(t){return this._network.setTransportSecurity(t),this}setOperator(t,e){const r=\"string\"==typeof e?s.fromStringDer(e):e;return this.setOperatorWith(t,r.publicKey,(t=>Promise.resolve(r.sign(t))))}getOperator(){return this._operator}setOperatorWith(e,r,o){const n=e instanceof t?e:t.fromString(e);return null!=this._network._ledgerId&&n.validateChecksum(this),this._operator={transactionSigner:o,accountId:n,publicKey:r instanceof i?r:i.fromString(r)},this}setAutoValidateChecksums(t){return this._autoValidateChecksums=t,this}isAutoValidateChecksumsEnabled(){return this._autoValidateChecksums}get operatorAccountId(){return null!=this._operator?this._operator.accountId:null}get operatorPublicKey(){return null!=this._operator?this._operator.publicKey:null}get defaultMaxTransactionFee(){return this._defaultMaxTransactionFee}get maxTransactionFee(){return this.defaultMaxTransactionFee}setDefaultMaxTransactionFee(t){if(t.toTinybars().toInt()<0)throw new Error(\"defaultMaxTransactionFee must be non-negative\");return this._defaultMaxTransactionFee=t,this}setMaxTransactionFee(t){return this.setDefaultMaxTransactionFee(t)}get defaultRegenerateTransactionId(){return this._defaultRegenerateTransactionId}setDefaultRegenerateTransactionId(t){return this._defaultRegenerateTransactionId=t,this}get defaultMaxQueryPayment(){return this._defaultMaxQueryPayment}get maxQueryPayment(){return this.defaultMaxQueryPayment}setDefaultMaxQueryPayment(t){if(d(t.toTinybars())<0)throw new Error(\"defaultMaxQueryPayment must be non-negative\");return this._defaultMaxQueryPayment=t,this}setMaxQueryPayment(t){return this.setDefaultMaxQueryPayment(t)}get maxAttempts(){return null!=this._maxAttempts?this._maxAttempts:10}setMaxAttempts(t){return this._maxAttempts=t,this}get maxNodeAttempts(){return this._network.maxNodeAttempts}setMaxNodeAttempts(t){return this._network.setMaxNodeAttempts(t),this}get nodeWaitTime(){return this._network.minBackoff}setNodeWaitTime(t){return this._network.setMinBackoff(t),this}get maxNodesPerTransaction(){return this._network.maxNodesPerTransaction}setMaxNodesPerTransaction(t){return this._network.setMaxNodesPerTransaction(t),this}setMinBackoff(t){if(null==t)throw new Error(\"minBackoff cannot be null.\");if(t>this._maxBackoff)throw new Error(\"minBackoff cannot be larger than maxBackoff.\");return this._minBackoff=t,this}get minBackoff(){return this._minBackoff}setMaxBackoff(t){if(null==t)throw new Error(\"maxBackoff cannot be null.\");if(t{await this.updateNetwork(),this._isShutdown||this._scheduleNetworkUpdate()}),this._networkUpdatePeriod)}get isClientShutDown(){return this._isShutdown}}export{m as default};\n//# sourceMappingURL=Client.js.map\n","class t{constructor(t){this._code=t,Object.freeze(this)}static _fromValue(e){return new t(e)}toString(){return this._code.toString()}valueOf(){return this._code}}export{t as default};\n//# sourceMappingURL=HttpStatus.js.map\n","const o=\"2.64.5\";export{o as SDK_VERSION};\n//# sourceMappingURL=version.js.map\n","import*as e from\"@hashgraph/proto\";import{decode as t}from\"../encoding/utf8.js\";const{proto:r}=e;class n{constructor(){this._crypto=null,this._smartContract=null,this._file=null,this._consensus=null,this._freeze=null,this._network=null,this._token=null,this._schedule=null,this._util=null,this._addressBook=null}close(){throw new Error(\"not implemented\")}get crypto(){return null!=this._crypto||(this._crypto=r.CryptoService.create(this._createUnaryClient(\"CryptoService\"))),this._crypto}get smartContract(){return null!=this._smartContract||(this._smartContract=r.SmartContractService.create(this._createUnaryClient(\"SmartContractService\"))),this._smartContract}get file(){return null!=this._file||(this._file=r.FileService.create(this._createUnaryClient(\"FileService\"))),this._file}get consensus(){return null!=this._consensus||(this._consensus=r.ConsensusService.create(this._createUnaryClient(\"ConsensusService\"))),this._consensus}get freeze(){return null!=this._freeze||(this._freeze=r.FreezeService.create(this._createUnaryClient(\"FreezeService\"))),this._freeze}get network(){return null!=this._network||(this._network=r.NetworkService.create(this._createUnaryClient(\"NetworkService\"))),this._network}get token(){return null!=this._token||(this._token=r.TokenService.create(this._createUnaryClient(\"TokenService\"))),this._token}get schedule(){return null!=this._schedule||(this._schedule=r.ScheduleService.create(this._createUnaryClient(\"ScheduleService\"))),this._schedule}get util(){return null!=this._util||(this._util=r.UtilService.create(this._createUnaryClient(\"UtilService\"))),this._util}get addressBook(){return null!=this._addressBook||(this._addressBook=r.AddressBookService.create(this._createUnaryClient(\"AddressBookService\"))),this._addressBook}_createUnaryClient(e){throw new Error(\"not implemented\")}}function s(e){const t=new ArrayBuffer(e.byteLength+5);return new DataView(t,1,4).setUint32(0,e.length),new Uint8Array(t,5).set(e),t}function i(e,r=0,n=e.byteLength){const s=new DataView(e,r,n);let i=0,o=null,l=0;for(;i>7,n=s.getUint32(i+1),c=i+5;if(c+n>s.byteLength)throw new Error(\"(BUG) unexpected frame length past the boundary\");const a=new Uint8Array(e,s.byteOffset+c,n);if(0===r){if(null!=o)throw new Error(\"(BUG) unexpectedly received more than one data frame\");o=a}else{if(1!==r)throw new Error(`(BUG) unexpected frame type: ${r}`);{const e=t(a),[r,n]=e.split(\":\");if(\"grpc-status\"!==r)throw new Error(`(BUG) unhandled trailer, ${e}`);l=parseInt(n)}}i+=n+5}if(0!==l)throw new Error(`(BUG) unhandled grpc-status: ${l}`);if(null==o)throw new Error(\"(BUG) unexpectedly received no response\");return o}export{i as decodeUnaryResponse,n as default,s as encodeRequest};\n//# sourceMappingURL=Channel.js.map\n","import{ALL_WEB_NETWORK_NODES as t}from\"../constants/ClientConstants.js\";import r from\"../grpc/GrpcServiceError.js\";import s from\"../grpc/GrpcStatus.js\";import e from\"../http/HttpError.js\";import o from\"../http/HttpStatus.js\";import{SDK_VERSION as a}from\"../version.js\";import n,{encodeRequest as p,decodeUnaryResponse as c}from\"./Channel.js\";class i extends n{constructor(t){super(),this._address=t}close(){}_createUnaryClient(n){return async(i,l,m)=>{try{const u=await fetch(`${this._address}/proto.${n}/${i.name}`,{method:\"POST\",headers:{\"content-type\":\"application/grpc-web+proto\",\"x-user-agent\":a,\"x-grpc-web\":\"1\"},body:p(l)});if(!u.ok){m(new e(o._fromValue(u.status)),null)}const f=u.headers.get(\"grpc-status\"),d=u.headers.get(\"grpc-message\");if(null!=f&&null!=d){const e=new r(s._fromValue(parseInt(f)),t[this._address].toString());e.message=d,m(e,null)}const g=await u.arrayBuffer();m(null,c(g))}catch(e){m(new r(s._fromValue(18),t[this._address].toString()),null)}}}}export{i as default};\n//# sourceMappingURL=WebChannel.js.map\n","import e from\"./Client.js\";import t from\"../channel/WebChannel.js\";import\"../account/AccountId.js\";import r from\"../LedgerId.js\";import{WEB_PREVIEWNET as o,WEB_TESTNET as n,MAINNET as s}from\"../constants/ClientConstants.js\";const w={MAINNET:s,TESTNET:n,PREVIEWNET:o};class i extends e{constructor(e){if(super(e),null!=e)if(\"string\"==typeof e.network)switch(e.network){case\"mainnet\":this.setNetwork(w.MAINNET),this.setLedgerId(r.MAINNET);break;case\"testnet\":this.setNetwork(w.TESTNET),this.setLedgerId(r.TESTNET);break;case\"previewnet\":this.setNetwork(w.PREVIEWNET),this.setLedgerId(r.PREVIEWNET);break;default:throw new Error(`unknown network: ${e.network}`)}else null!=e.network&&this.setNetwork(e.network)}static fromConfig(e){return new i(\"string\"==typeof e?JSON.parse(e):e)}static forNetwork(e){return new i({network:e,scheduleNetworkUpdate:!1})}static forName(e){return new i({network:e,scheduleNetworkUpdate:!1})}static forMainnet(){return new i({network:\"mainnet\",scheduleNetworkUpdate:!1})}static forTestnet(){return new i({network:\"testnet\",scheduleNetworkUpdate:!1})}static forPreviewnet(){return new i({network:\"previewnet\",scheduleNetworkUpdate:!1})}setNetwork(e){if(\"string\"==typeof e)switch(e){case\"previewnet\":this._network.setNetwork(w.PREVIEWNET);break;case\"testnet\":this._network.setNetwork(w.TESTNET);break;case\"mainnet\":this._network.setNetwork(w.MAINNET)}else this._network.setNetwork(e)}setMirrorNetwork(e){return\"string\"==typeof e?this._mirrorNetwork.setNetwork([]):this._mirrorNetwork.setNetwork(e),this}_createNetworkChannel(){return e=>new t(e)}_createMirrorNetworkChannel(){return()=>{throw new Error(\"mirror support is not supported in browsers\")}}updateNetwork(){return Promise.reject(new Error(\"Update network is not supported in browsers\"))}}export{w as Network,i as default};\n//# sourceMappingURL=WebClient.js.map\n","import e from\"../transaction/Transaction.js\";import t from\"./AccountId.js\";import n from\"../contract/ContractId.js\";import r from\"../token/TokenId.js\";import o from\"../token/NftId.js\";import s from\"long\";import l from\"../Hbar.js\";import a from\"./HbarAllowance.js\";import i from\"./TokenAllowance.js\";import c from\"./TokenNftAllowance.js\";import{requireNotNegative as d}from\"../util.js\";class u extends e{constructor(e={}){super(),this._hbarAllowances=null!=e.hbarAllowances?e.hbarAllowances:[],this._tokenAllowances=null!=e.tokenAllowances?e.tokenAllowances:[],this._nftAllowances=null!=e.nftAllowances?e.nftAllowances:[]}get hbarAllowances(){return this._hbarAllowances}addHbarAllowance(e,t){const n=t instanceof l?t:new l(t);return this._adjustHbarAllowance(null,e,d(n))}_adjustHbarAllowance(e,r,o){return this._requireNotFrozen(),this._hbarAllowances.push(new a({spenderAccountId:\"string\"==typeof r?t.fromString(r):r instanceof n?t.fromEvmAddress(r.shard,r.realm,r.toSolidityAddress()):r,ownerAccountId:\"string\"==typeof e?t.fromString(e):e instanceof n?t.fromEvmAddress(e.shard,e.realm,e.toSolidityAddress()):e,amount:o})),this}grantHbarAllowance(e,t,n){const r=n instanceof l?n:new l(n);return this._adjustHbarAllowance(e,t,d(r))}revokeHbarAllowance(e,t,n){const r=n instanceof l?n:new l(n);return this._adjustHbarAllowance(e,t,d(r).negated())}get tokenAllowances(){return this._tokenAllowances}addTokenAllowance(e,t,n){return this._adjustTokenAllowance(e,null,t,d(s.fromValue(n)))}_adjustTokenAllowance(e,o,l,a){return this._requireNotFrozen(),this._tokenAllowances.push(new i({tokenId:\"string\"==typeof e?r.fromString(e):e,spenderAccountId:\"string\"==typeof l?t.fromString(l):l instanceof n?t.fromEvmAddress(l.shard,l.realm,l.toSolidityAddress()):l,ownerAccountId:\"string\"==typeof o?t.fromString(o):o instanceof n?t.fromEvmAddress(o.shard,o.realm,o.toSolidityAddress()):o,amount:\"number\"==typeof a?s.fromNumber(a):a})),this}grantTokenAllowance(e,t,n,r){return this._adjustTokenAllowance(e,t,n,d(s.fromValue(r)))}revokeTokenAllowance(e,t,n,r){return this._adjustTokenAllowance(e,t,n,d(s.fromValue(r)))}addTokenNftAllowance(e,t){const n=\"string\"==typeof e?o.fromString(e):e;return this._adjustTokenNftAllowance(n,null,t)}_adjustTokenNftAllowance(e,r,o){this._requireNotFrozen();const s=\"string\"==typeof o?t.fromString(o):o instanceof n?t.fromEvmAddress(o.shard,o.realm,o.toSolidityAddress()):o,l=\"string\"==typeof r?t.fromString(r):r instanceof n?t.fromEvmAddress(r.shard,r.realm,r.toSolidityAddress()):r;let a=!1;for(const t of this._nftAllowances)if(0===t.tokenId.compare(e.tokenId)&&null!=t.spenderAccountId&&0===t.spenderAccountId.compare(s)){null!=t.serialNumbers&&t.serialNumbers.push(e.serial),a=!0;break}return a||this._nftAllowances.push(new c({tokenId:e.tokenId,spenderAccountId:s,serialNumbers:[e.serial],ownerAccountId:l,allSerials:!1,delegatingSpender:null})),this}grantTokenNftAllowance(e,t,n){const r=\"string\"==typeof e?o.fromString(e):e;return d(r.serial),this._adjustTokenNftAllowance(r,t,n)}revokeTokenNftAllowance(e,t,n){const r=\"string\"==typeof e?o.fromString(e):e;return d(r.serial),this._adjustTokenNftAllowance(new o(r.tokenId,r.serial.negate()),t,n)}addAllTokenNftAllowance(e,t){return this._adjustTokenNftAllowanceAllSerials(e,null,t,!0)}grantTokenNftAllowanceAllSerials(e,t,n){return this._adjustTokenNftAllowanceAllSerials(e,t,n,!0)}revokeTokenNftAllowanceAllSerials(e,t,n){return this._adjustTokenNftAllowanceAllSerials(e,t,n,!1)}_adjustTokenNftAllowanceAllSerials(e,o,s,l){return this._requireNotFrozen(),this._nftAllowances.push(new c({tokenId:\"string\"==typeof e?r.fromString(e):e,ownerAccountId:null!=o?\"string\"==typeof o?t.fromString(o):o instanceof n?t.fromEvmAddress(o.shard,o.realm,o.toSolidityAddress()):o:null,spenderAccountId:\"string\"==typeof s?t.fromString(s):s instanceof n?t.fromEvmAddress(s.shard,s.realm,s.toSolidityAddress()):s,serialNumbers:null,allSerials:l,delegatingSpender:null})),this}_validateChecksums(e){this._hbarAllowances.map((t=>t._validateChecksums(e))),this._tokenAllowances.map((t=>t._validateChecksums(e))),this._nftAllowances.map((t=>t._validateChecksums(e)))}_execute(e,t){return Promise.reject(new Error(\"This feature has been deprecated for this class.\"))}_getTransactionDataCase(){throw new Error(\"This feature has been deprecated for this class.\")}_makeTransactionData(){throw new Error(\"This feature has been deprecated.\")}_getLogId(){return`AccountAllowanceAdjustTransaction:${this._transactionIds.current.validStart.toString()}`}}export{u as default};\n//# sourceMappingURL=AccountAllowanceAdjustTransaction.js.map\n","import e from\"./AccountInfoQuery.js\";import t from\"../KeyList.js\";class n{static async verifySignature(n,i,c,a){const r=await(new e).setAccountId(i).execute(n);return!(r.key instanceof t)&&r.key.verify(c,a)}static async verifyTransaction(n,i,c){const a=await(new e).setAccountId(i).execute(n);return!(a.key instanceof t)&&a.key.verifyTransaction(c)}static async verifySignatureWithSigner(n,i,c,a){const r=await(new e).setAccountId(i).executeWithSigner(n);return!(r.key instanceof t)&&r.key.verify(c,a)}static async verifyTransactionWithSigner(n,i,c){const a=await(new e).setAccountId(i).executeWithSigner(n);return!(a.key instanceof t)&&a.key.verifyTransaction(c)}}export{n as default};\n//# sourceMappingURL=AccountInfoFlow.js.map\n","import t from\"../file/FileCreateTransaction.js\";import e from\"../file/FileAppendTransaction.js\";import i from\"../file/FileDeleteTransaction.js\";import n from\"./ContractCreateTransaction.js\";import{encode as r}from\"../encoding/utf8.js\";import{encode as a}from\"../encoding/hex.js\";import s from\"../PublicKey.js\";class c{constructor(){this._bytecode=null,this._contractCreate=new n,this._signerPublicKeys=new Set,this._publicKeys=[],this._transactionSigners=[],this._maxChunks=null}get maxChunks(){return this._maxChunks}setMaxChunks(t){return this._maxChunks=t,this}get bytecode(){return this._bytecode}setBytecode(t){return this._bytecode=t instanceof Uint8Array?t:r(t),this}get adminKey(){return this._contractCreate.adminKey}setAdminKey(t){return this._contractCreate.setAdminKey(t),this}get gas(){return this._contractCreate.gas}setGas(t){return this._contractCreate.setGas(t),this}get initialBalance(){return this._contractCreate.initialBalance}setInitialBalance(t){return this._contractCreate.setInitialBalance(t),this}get proxyAccountId(){return this._contractCreate.proxyAccountId}setProxyAccountId(t){return this._contractCreate.setProxyAccountId(t),this}get autoRenewPeriod(){return this._contractCreate.autoRenewPeriod}setAutoRenewPeriod(t){return this._contractCreate.setAutoRenewPeriod(t),this}get constructorParameters(){return this._contractCreate.constructorParameters}setConstructorParameters(t){return this._contractCreate.setConstructorParameters(t),this}get contractMemo(){return this._contractCreate.contractMemo}setContractMemo(t){return this._contractCreate.setContractMemo(t),this}get maxAutomaticTokenAssociation(){return this._contractCreate.maxAutomaticTokenAssociations}setMaxAutomaticTokenAssociations(t){return this._contractCreate.setMaxAutomaticTokenAssociations(t),this}get stakedAccountId(){return this._contractCreate.stakedAccountId}setStakedAccountId(t){return this._contractCreate.setStakedAccountId(t),this}get stakedNodeId(){return this._contractCreate.stakedNodeId}setStakedNodeId(t){return this._contractCreate.setStakedNodeId(t),this}get declineStakingRewards(){return this._contractCreate.declineStakingRewards}setDeclineStakingReward(t){return this._contractCreate.setDeclineStakingReward(t),this}get autoRenewAccountId(){return this._contractCreate.autoRenewAccountId}setAutoRenewAccountId(t){return this._contractCreate.setAutoRenewAccountId(t),this}sign(t){return this.signWith(t.publicKey,(e=>Promise.resolve(t.sign(e))))}signWith(t,e){const i=t.toBytesRaw(),n=a(i);return this._signerPublicKeys.has(n)||(this._publicKeys.push(t),this._transactionSigners.push(e)),this}async execute(n,r){if(null==this._bytecode)throw new Error(\"cannot create contract with no bytecode\");const a=n.operatorPublicKey,s=(new t).setKeys(null!=a?[a]:[]).setContents(this._bytecode.subarray(0,Math.min(this._bytecode.length,2048))).freezeWith(n);await o(s,this._publicKeys,this._transactionSigners);let c=await s.execute(n,r);const h=(await c.getReceipt(n)).fileId;if(this._bytecode.length>2048){const t=(new e).setFileId(h).setContents(this._bytecode.subarray(2048)).freezeWith(n);await o(t,this._publicKeys,this._transactionSigners),await t.execute(n,r)}if(this._contractCreate.setBytecodeFileId(h).freezeWith(n),await o(this._contractCreate,this._publicKeys,this._transactionSigners),c=await this._contractCreate.execute(n,r),await c.getReceipt(n),null!=a){const t=(new i).setFileId(h).freezeWith(n);await o(t,this._publicKeys,this._transactionSigners),await(await t.execute(n,r)).getReceipt(n)}return c}async executeWithSigner(n){if(null==this._bytecode)throw new Error(\"cannot create contract with no bytecode\");if(null==n.getAccountKey)throw new Error(\"`Signer.getAccountKey()` is not implemented, but is required for `ContractCreateFlow`\");const r=await n.getAccountKey();let a;if(r instanceof s)a=r;else{const t=Object.values(r._key._key._keyData),e=new Uint8Array(t);a=s.fromBytes(e)}const c=await(new t).setKeys(null!=a?[a]:[]).setContents(this._bytecode.subarray(0,Math.min(this._bytecode.length,2048))).freezeWithSigner(n);await c.signWithSigner(n),await o(c,this._publicKeys,this._transactionSigners);let h=await c.executeWithSigner(n);const u=(await h.getReceiptWithSigner(n)).fileId;if(this._bytecode.length>2048){let t=(new e).setFileId(u).setContents(this._bytecode.subarray(2048));null!=this._maxChunks&&t.setMaxChunks(this._maxChunks),t=await t.freezeWithSigner(n),await t.signWithSigner(n),await o(t,this._publicKeys,this._transactionSigners),await t.executeWithSigner(n)}if(this._contractCreate=await this._contractCreate.setBytecodeFileId(u).freezeWithSigner(n),this._contractCreate=await this._contractCreate.signWithSigner(n),await o(this._contractCreate,this._publicKeys,this._transactionSigners),h=await this._contractCreate.executeWithSigner(n),await h.getReceiptWithSigner(n),null!=r){const t=await(new i).setFileId(u).freezeWithSigner(n);await t.signWithSigner(n),await o(t,this._publicKeys,this._transactionSigners),await(await t.executeWithSigner(n)).getReceiptWithSigner(n)}return h}}async function o(t,e,i){for(let n=0;n4096){let t=(new l).setFileId(i).setContents(r.substring(4096,r.length));null!=a&&t.setMaxChunks(a),await(await t.execute(e)).getReceipt(e)}return i}(this._ethereumData.callData,t,this._maxChunks);this._ethereumData.callData=new Uint8Array,a.setEthereumData(this._ethereumData.toBytes()).setCallDataFileId(e)}return a.execute(t)}}export{r as default};\n//# sourceMappingURL=EthereumFlow.js.map\n","import t from\"./ExchangeRate.js\";import*as e from\"@hashgraph/proto\";const{proto:r}=e;class o{constructor(t){this.currentRate=t.currentRate,this.nextRate=t.nextRate,Object.freeze(this)}static _fromProtobuf(e){return new o({currentRate:t._fromProtobuf(e.currentRate),nextRate:t._fromProtobuf(e.nextRate)})}_toProtobuf(){return{currentRate:this.currentRate._toProtobuf(),nextRate:this.nextRate._toProtobuf()}}static fromBytes(t){return o._fromProtobuf(r.ExchangeRateSet.decode(t))}}export{o as default};\n//# sourceMappingURL=ExchangeRates.js.map\n","import*as t from\"@hashgraph/proto\";import\"long\";class n{constructor(t={}){this.min=t.min,this.max=t.max,this.constant=t.constant,this.transactionBandwidthByte=t.transactionBandwidthByte,this.transactionVerification=t.transactionVerification,this.transactionRamByteHour=t.transactionRamByteHour,this.transactionStorageByteHour=t.transactionStorageByteHour,this.contractTransactionGas=t.contractTransactionGas,this.transferVolumeHbar=t.transferVolumeHbar,this.responseMemoryByte=t.responseMemoryByte,this.responseDiskByte=t.responseDiskByte}static fromBytes(o){return n._fromProtobuf(t.proto.FeeComponents.decode(o))}static _fromProtobuf(t){return new n({min:null!=t.min?t.min:void 0,max:null!=t.max?t.max:void 0,constant:null!=t.constant?t.constant:void 0,transactionBandwidthByte:null!=t.bpt?t.bpt:void 0,transactionVerification:null!=t.vpt?t.vpt:void 0,transactionRamByteHour:null!=t.rbh?t.rbh:void 0,transactionStorageByteHour:null!=t.sbh?t.sbh:void 0,contractTransactionGas:null!=t.gas?t.gas:void 0,transferVolumeHbar:null!=t.tv?t.tv:void 0,responseMemoryByte:null!=t.bpr?t.bpr:void 0,responseDiskByte:null!=t.sbpr?t.sbpr:void 0})}_toProtobuf(){return{min:null!=this.min?this.min:void 0,max:null!=this.max?this.max:void 0,constant:null!=this.constant?this.constant:void 0,bpt:null!=this.transactionBandwidthByte?this.transactionBandwidthByte:void 0,vpt:null!=this.transactionVerification?this.transactionVerification:void 0,rbh:null!=this.transactionRamByteHour?this.transactionRamByteHour:void 0,sbh:null!=this.transactionStorageByteHour?this.transactionStorageByteHour:void 0,gas:null!=this.contractTransactionGas?this.contractTransactionGas:void 0,tv:null!=this.transferVolumeHbar?this.transferVolumeHbar:void 0,bpr:null!=this.responseMemoryByte?this.responseMemoryByte:void 0,sbpr:null!=this.responseDiskByte?this.responseDiskByte:void 0}}toBytes(){return t.proto.FeeComponents.encode(this._toProtobuf()).finish()}}export{n as default};\n//# sourceMappingURL=FeeComponents.js.map\n","import*as t from\"@hashgraph/proto\";import o from\"./FeeComponents.js\";import e from\"./FeeDataType.js\";class a{constructor(t={}){this.nodedata=t.nodedata,this.networkdata=t.networkdata,this.servicedata=t.servicedata,this.feeDataType=t.feeDataType}static fromBytes(o){return a._fromProtobuf(t.proto.FeeData.decode(o))}static _fromProtobuf(t){return new a({nodedata:null!=t.nodedata?o._fromProtobuf(t.nodedata):void 0,networkdata:null!=t.networkdata?o._fromProtobuf(t.networkdata):void 0,servicedata:null!=t.servicedata?o._fromProtobuf(t.servicedata):void 0,feeDataType:null!=t.subType?e._fromCode(t.subType):void 0})}_toProtobuf(){return{nodedata:null!=this.nodedata?this.nodedata._toProtobuf():void 0,networkdata:null!=this.networkdata?this.networkdata._toProtobuf():void 0,servicedata:null!=this.servicedata?this.servicedata._toProtobuf():void 0,subType:null!=this.feeDataType?this.feeDataType.valueOf():void 0}}toBytes(){return t.proto.FeeData.encode(this._toProtobuf()).finish()}}export{a as default};\n//# sourceMappingURL=FeeData.js.map\n","import*as e from\"@hashgraph/proto\";import t from\"./RequestType.js\";import o from\"./FeeData.js\";class a{constructor(e={}){this.hederaFunctionality=e.hederaFunctionality,this.feeData=e.feeData,this.fees=e.fees}static fromBytes(t){return a._fromProtobuf(e.proto.TransactionFeeSchedule.decode(t))}static _fromProtobuf(e){return new a({hederaFunctionality:null!=e.hederaFunctionality?t._fromCode(e.hederaFunctionality):void 0,feeData:null!=e.feeData?o._fromProtobuf(e.feeData):void 0,fees:null!=e.fees?e.fees.map((e=>o._fromProtobuf(e))):void 0})}_toProtobuf(){return{hederaFunctionality:null!=this.hederaFunctionality?this.hederaFunctionality.valueOf():void 0,feeData:null!=this.feeData?this.feeData._toProtobuf():void 0,fees:null!=this.fees?this.fees.map((e=>e._toProtobuf())):void 0}}toBytes(){return e.proto.TransactionFeeSchedule.encode(this._toProtobuf()).finish()}}export{a as default};\n//# sourceMappingURL=TransactionFeeSchedule.js.map\n","import*as e from\"@hashgraph/proto\";import t from\"./TransactionFeeSchedule.js\";import o from\"./Timestamp.js\";class r{constructor(e={}){this.transactionFeeSchedule=e.transactionFeeSchedule,this.expirationTime=e.expirationTime}static fromBytes(t){return r._fromProtobuf(e.proto.FeeSchedule.decode(t))}static _fromProtobuf(e){return new r({transactionFeeSchedule:null!=e.transactionFeeSchedule?e.transactionFeeSchedule.map((e=>t._fromProtobuf(e))):void 0,expirationTime:null!=e.expiryTime?o._fromProtobuf(e.expiryTime):void 0})}_toProtobuf(){return{transactionFeeSchedule:null!=this.transactionFeeSchedule?this.transactionFeeSchedule.map((e=>e._toProtobuf())):void 0,expiryTime:null!=this.expirationTime?this.expirationTime._toProtobuf():void 0}}toBytes(){return e.proto.FeeSchedule.encode(this._toProtobuf()).finish()}}export{r as default};\n//# sourceMappingURL=FeeSchedule.js.map\n","import*as e from\"@hashgraph/proto\";import t from\"./FeeSchedule.js\";class r{constructor(e={}){this.current=e.currentFeeSchedule,this.next=e.nextFeeSchedule}static fromBytes(t){return r._fromProtobuf(e.proto.CurrentAndNextFeeSchedule.decode(t))}static _fromProtobuf(e){return new r({currentFeeSchedule:null!=e.currentFeeSchedule?t._fromProtobuf(e.currentFeeSchedule):void 0,nextFeeSchedule:null!=e.nextFeeSchedule?t._fromProtobuf(e.nextFeeSchedule):void 0})}_toProtobuf(){return{currentFeeSchedule:null!=this.current?this.current._toProtobuf():void 0,nextFeeSchedule:null!=this.next?this.next._toProtobuf():void 0}}toBytes(){return e.proto.CurrentAndNextFeeSchedule.encode(this._toProtobuf()).finish()}}export{r as default};\n//# sourceMappingURL=FeeSchedules.js.map\n","import t from\"../contract/ContractFunctionParameters.js\";class e{constructor(){this._contractId=null,this._contractEvmAddress=null,this._sender=null,this._senderEvmAddress=null,this._functionName=null,this._functionParameters=null,this._value=null,this._gasLimit=null,this._gasPrice=null,this._blockNumber=null}setContractId(t){return this._contractId=t,this}setSender(t){return this._sender=t,this}setSenderEvmAddress(t){return this._senderEvmAddress=t,this}setFunction(e,r){return this._functionParameters=null!=r?r._build(e):(new t)._build(e),this}setValue(t){return this._value=t,this}setGasLimit(t){return this._gasLimit=t,this}setGasPrice(t){return this._gasPrice=t,this}setBlockNumber(t){return this._blockNumber=t,this}get contractId(){return this._contractId}get contractEvmAddress(){const t=this._contractId?.toSolidityAddress();if(null==t)throw new Error(\"Contract ID is not set\");return t}get sender(){return this._sender}get senderEvmAddress(){return this._senderEvmAddress}get callData(){return this._functionParameters}get value(){return this._value}get gasLimit(){return this._gasLimit}get gasPrice(){return this._gasPrice}get blockNumber(){return this._blockNumber}async performMirrorNodeRequest(t,e){if(null==this.contractId)throw new Error(\"Contract ID is not set\");this._fillEvmAddress();let r=t.mirrorNetwork[0];const s=\"/api/v1/contracts/call\";if(!t.ledgerId||t.ledgerId?.isLocalNode())r=\"http://\".concat(t.mirrorNetwork[0].replace(\"5600\",\"8545\")).concat(s);else{let e=t.mirrorNetwork[0].split(\":\");r=\"https://\".concat(e[0]).concat(s)}const n=await fetch(r,{method:\"POST\",headers:{\"Content-Type\":\"application/json\"},body:JSON.stringify(e)});if(!n.ok)throw new Error(`HTTP error! status: ${n.status}`);return await n.json()}_fillEvmAddress(){null==this.senderEvmAddress&&null!=this.sender&&(this._senderEvmAddress=this.sender.toSolidityAddress())}get JSONPayload(){throw new Error(\"JSONPayload getter is not implemented. Please implement this method in the subclass.\")}}export{e as default};\n//# sourceMappingURL=MirrorNodeContractQuery.js.map\n","import t from\"./MirrorNodeContractQuery.js\";class r extends t{get JSONPayload(){if(null==this.callData)throw new Error(\"Call data is required.\");return{data:Buffer.from(this.callData).toString(\"hex\"),from:this.senderEvmAddress,to:this.contractEvmAddress,estimate:!1,gasPrice:this.gasPrice?.toString(),gas:this.gasLimit?.toString(),blockNumber:this.blockNumber?.toString(),value:this.value?.toString()}}async execute(t){return(await this.performMirrorNodeRequest(t,this.JSONPayload)).result}}export{r as default};\n//# sourceMappingURL=MirrorNodeContractCallQuery.js.map\n","import t from\"./MirrorNodeContractQuery.js\";class r extends t{get JSONPayload(){if(null==this.callData)throw new Error(\"Call data is required.\");return{data:Buffer.from(this.callData).toString(\"hex\"),from:this.senderEvmAddress,to:this.contractEvmAddress,estimate:!0,gasPrice:this.gasPrice?.toString(),gas:this.gasLimit?.toString(),blockNumber:this.blockNumber?.toString(),value:this.value?.toString()}}async execute(t){const r=await this.performMirrorNodeRequest(t,this.JSONPayload);return Number(r.result)}}export{r as default};\n//# sourceMappingURL=MirrorNodeContractEstimateQuery.js.map\n","import t from\"./AccountId.js\";import o from\"../Hbar.js\";class n{constructor(t){this.accountId=t.accountId,this.amount=t.amount instanceof o?t.amount:new o(t.amount),Object.freeze(this)}static _fromProtobuf(u){return new n({accountId:t._fromProtobuf(u.accountID),amount:o.fromTinybars(null!=u.amount?u.amount:0)})}_toProtobuf(){return{accountID:this.accountId._toProtobuf(),amount:this.amount.toTinybars()}}}export{n as default};\n//# sourceMappingURL=ProxyStaker.js.map\n","class t{constructor(t){this.publicKey=t.publicKey,this.signature=t.signature,this.accountId=t.accountId}}export{t as default};\n//# sourceMappingURL=SignerSignature.js.map\n","class s{constructor(){this._call=null,this._unsubscribed=!1}_setCall(s){this._call=s}unsubscribe(){null!=this._call&&(this._unsubscribed=!0,this._call())}}export{s as default};\n//# sourceMappingURL=SubscriptionHandle.js.map\n","import t from\"./TokenRejectTransaction.js\";import e from\"./TokenDissociateTransaction.js\";class i{constructor(){this._ownerId=null,this._tokenIds=[],this._nftIds=[],this._freezeWithClient=null,this._signPrivateKey=null,this._signPublicKey=null,this._transactionSigner=null}setOwnerId(t){return this.requireNotFrozen(),this._ownerId=t,this}get ownerId(){return this._ownerId}setTokenIds(t){return this.requireNotFrozen(),this._tokenIds=t,this}addTokenId(t){return this.requireNotFrozen(),this._tokenIds.push(t),this}get tokenIds(){return this._tokenIds}setNftIds(t){return this.requireNotFrozen(),this._nftIds=t,this}addNftId(t){return this.requireNotFrozen(),this._nftIds.push(t),this}get nftIds(){return this._nftIds}sign(t){return this._signPrivateKey=t,this._signPublicKey=null,this._transactionSigner=null,this}signWith(t,e){return this._signPublicKey=t,this._transactionSigner=e,this._signPrivateKey=null,this}signWithOperator(t){const e=t.getOperator();if(null==e)throw new Error(\"Client operator must be set\");return this._signPublicKey=e.publicKey,this._transactionSigner=e.transactionSigner,this._signPrivateKey=null,this}fillOutTransaction(t){this._freezeWithClient&&t.freezeWith(this._freezeWithClient),this._signPrivateKey?t.sign(this._signPrivateKey):this._signPublicKey&&this._transactionSigner&&t.signWith(this._signPublicKey,this._transactionSigner)}freezeWith(t){return this._freezeWithClient=t,this}async execute(i){const n=(new t).setTokenIds(this.tokenIds).setNftIds(this.nftIds);this.ownerId&&n.setOwnerId(this.ownerId),this.fillOutTransaction(n);const s=this.nftIds.map((t=>t.tokenId)).filter((function(t,e,i){return i.indexOf(t)===e})),r=(new e).setTokenIds([...this.tokenIds,...s]);null!=this.ownerId&&r.setAccountId(this.ownerId),this.fillOutTransaction(r);const o=await n.execute(i);await o.getReceipt(i);const h=await r.execute(i);return await h.getReceipt(i),o}requireNotFrozen(){if(null!=this._freezeWithClient)throw new Error(\"Transaction is already frozen and cannot be modified\")}}export{i as default};\n//# sourceMappingURL=TokenRejectFlow.js.map\n","import e from\"../Timestamp.js\";import s from\"long\";class n{constructor(e){this.consensusTimestamp=e.consensusTimestamp,this.contents=e.contents,this.runningHash=e.runningHash,this.sequenceNumber=e.sequenceNumber,Object.freeze(this)}static _fromProtobuf(t){return new n({consensusTimestamp:e._fromProtobuf(t.consensusTimestamp),contents:null!=t.message?t.message:new Uint8Array,runningHash:null!=t.runningHash?t.runningHash:new Uint8Array,sequenceNumber:null!=t.sequenceNumber?t.sequenceNumber instanceof s?t.sequenceNumber:s.fromValue(t.sequenceNumber):s.ZERO})}_toProtobuf(){return{consensusTimestamp:this.consensusTimestamp._toProtobuf(),message:this.contents,runningHash:this.runningHash,sequenceNumber:this.sequenceNumber}}}export{n as default};\n//# sourceMappingURL=TopicMessageChunk.js.map\n","import n from\"../Timestamp.js\";import e from\"./TopicMessageChunk.js\";import s from\"long\";import u from\"../transaction/TransactionId.js\";class t{constructor(n){this.consensusTimestamp=n.consensusTimestamp,this.contents=n.contents,this.runningHash=n.runningHash,this.sequenceNumber=n.sequenceNumber,this.chunks=n.chunks,this.initialTransactionId=n.initialTransactionId,Object.freeze(this)}static _ofSingle(o){return new t({consensusTimestamp:n._fromProtobuf(o.consensusTimestamp),contents:null!=o.message?o.message:new Uint8Array,runningHash:null!=o.runningHash?o.runningHash:new Uint8Array,sequenceNumber:null!=o.sequenceNumber?o.sequenceNumber instanceof s?o.sequenceNumber:s.fromNumber(o.sequenceNumber):s.ZERO,initialTransactionId:null!=o.chunkInfo&&null!=o.chunkInfo.initialTransactionID?u._fromProtobuf(o.chunkInfo.initialTransactionID):null,chunks:[e._fromProtobuf(o)]})}static _ofMany(o){const r=o[o.length-1],i=n._fromProtobuf(r.consensusTimestamp),a=r.runningHash,c=null!=r.sequenceNumber?r.sequenceNumber instanceof s?r.sequenceNumber:s.fromValue(r.sequenceNumber):s.ZERO;o.sort(((n,e)=>(null!=n&&null!=n.chunkInfo&&null!=n.chunkInfo.number?n.chunkInfo.number:0)<(null!=e&&null!=e.chunkInfo&&null!=e.chunkInfo.number?e.chunkInfo.number:0)?-1:1));const m=o.map((n=>e._fromProtobuf(n))),l=m.map((n=>n.contents.length)).reduce(((n,e)=>n+e),0),f=new Uint8Array(l);let h=0;o.forEach((n=>{f.set(n.message,h),h+=n.message.length}));let b=null;return o.length>0&&null!=o[0].chunkInfo&&null!=o[0].chunkInfo.initialTransactionID&&(b=u._fromProtobuf(o[0].chunkInfo.initialTransactionID)),new t({consensusTimestamp:i,contents:f,runningHash:a,sequenceNumber:c,chunks:m,initialTransactionId:b})}}export{t as default};\n//# sourceMappingURL=TopicMessage.js.map\n","import t from\"../transaction/TransactionId.js\";import e from\"./SubscriptionHandle.js\";import r from\"./TopicMessage.js\";import*as i from\"@hashgraph/proto\";import s from\"./TopicId.js\";import n from\"long\";import o from\"../Timestamp.js\";import{RST_STREAM as l}from\"../Executable.js\";class a{constructor(t={}){this._topicId=null,null!=t.topicId&&this.setTopicId(t.topicId),this._startTime=null,null!=t.startTime&&this.setStartTime(t.startTime),this._endTime=null,null!=t.endTime&&this.setEndTime(t.endTime),this._limit=null,null!=t.limit&&this.setLimit(t.limit),this._errorHandler=(t,e)=>{console.error(`Error attempting to subscribe to topic: ${null!=this._topicId?this._topicId.toString():\"\"}`)},null!=t.errorHandler&&(this._errorHandler=t.errorHandler),this._listener=null,this._completionHandler=()=>{console.log(`Subscription to topic ${null!=this._topicId?this._topicId.toString():\"\"} complete`)},null!=t.completionHandler&&(this._completionHandler=t.completionHandler),this._maxAttempts=20,this._maxBackoff=8e3,this._retryHandler=t=>{if(null!=t){if(t instanceof Error)return!0;switch(t.code){case 13:return l.test(t.details.toString());case 5:case 8:case 14:case 17:return!0;default:return!1}}return!1},null!=t.retryHandler&&(this._retryHandler=t.retryHandler),this._attempt=0,this._handle=null,this.setMaxBackoff(8e3)}get topicId(){return this._topicId}setTopicId(t){return this.requireNotSubscribed(),this._topicId=\"string\"==typeof t?s.fromString(t):t.clone(),this}get startTime(){return this._startTime}setStartTime(t){return this.requireNotSubscribed(),this._startTime=t instanceof o?t:t instanceof Date?o.fromDate(t):new o(t,0),this}get endTime(){return this._endTime}setEndTime(t){return this.requireNotSubscribed(),this._endTime=t instanceof o?t:t instanceof Date?o.fromDate(t):new o(t,0),this}get limit(){return this._limit}setLimit(t){return this.requireNotSubscribed(),this._limit=t instanceof n?t:n.fromValue(t),this}setErrorHandler(t){return this._errorHandler=t,this}setCompletionHandler(t){return this.requireNotSubscribed(),this._completionHandler=t,this}setMaxAttempts(t){return this.requireNotSubscribed(),this._maxAttempts=t,this}setMaxBackoff(t){return this.requireNotSubscribed(),this._maxBackoff=t,this}subscribe(t,r,i){return this._handle=new e,this._listener=i,null!=r&&(this._errorHandler=r),this._makeServerStreamRequest(t),this._handle}_makeServerStreamRequest(t){const e=this._buildConsensusRequest(),r=new Map,i=t._mirrorNetwork.getNextMirrorNode().getChannel().makeServerStreamRequest(\"ConsensusService\",\"subscribeTopic\",e,(t=>this._handleMessage(t,r)),(e=>this._handleError(e,t)),this._completionHandler);null!=this._handle&&this._handle._setCall((()=>i()))}requireNotSubscribed(){if(null!=this._handle)throw new Error(\"Cannot change fields on an already subscribed query\")}_passTopicMessage(t){try{if(null==this._listener)throw new Error(\"(BUG) listener is unexpectedly not set\");this._listener(t)}catch(e){this._errorHandler(t,e)}}_buildConsensusRequest(){return i.com.hedera.mirror.api.proto.ConsensusTopicQuery.encode({topicID:this._topicId?._toProtobuf()??null,consensusStartTime:this._startTime?._toProtobuf()??null,consensusEndTime:this._endTime?._toProtobuf()??null,limit:this._limit}).finish()}_handleMessage(t,e){const s=i.com.hedera.mirror.api.proto.ConsensusTopicResponse.decode(t);this._limit?.gt(0)&&(this._limit=this._limit.sub(1)),this._startTime=o._fromProtobuf(s.consensusTimestamp).plusNanos(1),null==s.chunkInfo||null!=s.chunkInfo&&1===s.chunkInfo.total?this._passTopicMessage(r._ofSingle(s)):this._handleChunkedMessage(s,e)}_handleChunkedMessage(e,i){const s=e.chunkInfo,n=s.initialTransactionID,o=s.total,l=t._fromProtobuf(n).toString();let a=[];const h=i.get(l);if(null==h?i.set(l,a):a=h,a.push(e),a.length===o){const t=r._ofMany(a);i.delete(l),this._passTopicMessage(t)}}_handleError(t,e){const r=t instanceof Error?t.message:t.details;this._handle?._unsubscribed||(this.shouldRetry(t)?this._scheduleRetry(e,r):this._errorHandler(null,new Error(r)))}shouldRetry(t){return this._attemptthis._makeServerStreamRequest(t)),r)}}export{a as default};\n//# sourceMappingURL=TopicMessageQuery.js.map\n","import t from\"./PrivateKey.js\";import e from\"./account/AccountId.js\";import r from\"./SignerSignature.js\";import n from\"./account/AccountBalanceQuery.js\";import o from\"./account/AccountInfoQuery.js\";import c from\"./account/AccountRecordsQuery.js\";import i from\"./transaction/TransactionId.js\";import{shuffle as s}from\"./util.js\";class u{constructor(r,n,o){const c=\"string\"==typeof n?t.fromStringDer(n):n;this.publicKey=c.publicKey,this.signer=t=>Promise.resolve(c.sign(t)),this.provider=o,this.accountId=\"string\"==typeof r?e.fromString(r):r}static createRandomED25519(){const e=t.generateED25519(),r=e.publicKey.toAccountId(0,0);return Promise.resolve(new u(r,e))}static createRandomECDSA(){const e=t.generateECDSA(),r=e.publicKey.toAccountId(0,0);return Promise.resolve(new u(r,e))}getProvider(){return this.provider}getAccountId(){return this.accountId}getAccountKey(){return this.publicKey}getLedgerId(){return null==this.provider?null:this.provider.getLedgerId()}getNetwork(){return null==this.provider?{}:this.provider.getNetwork()}getMirrorNetwork(){return null==this.provider?[]:this.provider.getMirrorNetwork()}async sign(t){const e=[];for(const n of t)e.push(new r({publicKey:this.publicKey,signature:await this.signer(n),accountId:this.accountId}));return e}getAccountBalance(){return this.call((new n).setAccountId(this.accountId))}getAccountInfo(){return this.call((new o).setAccountId(this.accountId))}getAccountRecords(){return this.call((new c).setAccountId(this.accountId))}signTransaction(t){return t.signWith(this.publicKey,this.signer)}checkTransaction(t){const e=t.transactionId;if(null!=e&&null!=e.accountId&&0!=e.accountId.compare(this.accountId))throw new Error(\"transaction's ID constructed with a different account ID\");if(null==this.provider)return Promise.resolve(t);const r=(null!=t.nodeAccountIds?t.nodeAccountIds:[]).map((t=>t.toString())),n=Object.values(this.provider.getNetwork()).map((t=>t.toString()));if(!r.reduce(((t,e)=>t&&n.includes(e)),!0))throw new Error(\"Transaction already set node account IDs to values not within the current network\");return Promise.resolve(t)}populateTransaction(t){if(t._freezeWithAccountId(this.accountId),null==t.transactionId&&t.setTransactionId(i.generate(this.accountId)),null!=t.nodeAccountIds&&0!=t.nodeAccountIds.length)return Promise.resolve(t.freeze());if(null==this.provider)return Promise.resolve(t);const r=Object.values(this.provider.getNetwork()).map((t=>\"string\"==typeof t?e.fromString(t):t));return s(r),t.setNodeAccountIds(r.slice(0,(r.length+3-1)/3)),Promise.resolve(t.freeze())}call(t){if(null==this.provider)throw new Error(\"cannot send request with an wallet that doesn't contain a provider\");return this.provider.call(t._setOperatorWith(this.accountId,this.publicKey,this.signer))}}export{u as default};\n//# sourceMappingURL=Wallet.js.map\n","import e from\"pino\";import t from\"./LogLevel.js\";class r{constructor(t,r=\"\",i=!0,l=!0,s=!0,o=0){const g=r?e.destination({dest:r,sync:i,fsync:l,mkdir:s,minLength:o}):null,n=g?{level:t.toString(),timestamp:e.stdTimeFunctions.isoTime,formatters:{bindings:()=>({}),level:e=>({level:e.toUpperCase()})}}:{level:t.toString(),transport:{target:\"pino-pretty\",options:{translateTime:\"SYS:dd-mm-yyyy HH:MM:ss\",ignore:\"pid,hostname\"}}};this._logger=g?e(n,g):e(n),this._previousLevel=t}setLogger(e){return this._logger=e,this}setLevel(e){return this._previousLevel=t._fromString(this._logger.level),this._logger.level=e.toString(),this}get level(){return t._fromString(this._logger.level)}get levels(){return this._logger.levels.labels}setSilent(e){return this._logger.level=e?t.Silent.toString():this._previousLevel.toString(),this}get silent(){return this._logger.level==t.Silent.toString()}trace(e){this._logger.trace(e)}debug(e){this._logger.debug(e)}info(e){this._logger.info(e)}warn(e){this._logger.warn(e)}error(e){this._logger.error(e)}fatal(e){this._logger.fatal(e)}}export{r as default};\n//# sourceMappingURL=Logger.js.map\n","var a={};export{a as default};\n//# sourceMappingURL=Provider.js.map\n","var a={};export{a as default};\n//# sourceMappingURL=Signer.js.map\n","/*\n *\n * Hedera Wallet Connect\n *\n * Copyright (C) 2023 Hedera Hashgraph, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n/**\n * Enum representing different Hedera network chain IDs.\n *\n * @see {@link https://github.com/hashgraph/hedera-improvement-proposal/blob/main/HIP/hip-820.md#specification | HIP-820 Specification}\n */\nexport var HederaChainId;\n(function (HederaChainId) {\n HederaChainId[\"Mainnet\"] = \"hedera:mainnet\";\n HederaChainId[\"Testnet\"] = \"hedera:testnet\";\n HederaChainId[\"Previewnet\"] = \"hedera:previewnet\";\n HederaChainId[\"Devnet\"] = \"hedera:devnet\";\n})(HederaChainId || (HederaChainId = {}));\n","/*\n *\n * Hedera Wallet Connect\n *\n * Copyright (C) 2023 Hedera Hashgraph, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n/**\n * Represents different events related to a Hedera session.\n */\nexport var HederaSessionEvent;\n(function (HederaSessionEvent) {\n HederaSessionEvent[\"AccountsChanged\"] = \"accountsChanged\";\n HederaSessionEvent[\"ChainChanged\"] = \"chainChanged\";\n})(HederaSessionEvent || (HederaSessionEvent = {}));\n","/*\n *\n * Hedera Wallet Connect\n *\n * Copyright (C) 2023 Hedera Hashgraph, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n/**\n * Enum representing different JSON-RPC methods related to Hedera.\n * The methods are ordered alphabetically for ease of use and readability.\n */\nexport var HederaJsonRpcMethod;\n(function (HederaJsonRpcMethod) {\n HederaJsonRpcMethod[\"GetNodeAddresses\"] = \"hedera_getNodeAddresses\";\n HederaJsonRpcMethod[\"ExecuteTransaction\"] = \"hedera_executeTransaction\";\n HederaJsonRpcMethod[\"SignMessage\"] = \"hedera_signMessage\";\n HederaJsonRpcMethod[\"SignAndExecuteQuery\"] = \"hedera_signAndExecuteQuery\";\n HederaJsonRpcMethod[\"SignAndExecuteTransaction\"] = \"hedera_signAndExecuteTransaction\";\n HederaJsonRpcMethod[\"SignTransaction\"] = \"hedera_signTransaction\";\n})(HederaJsonRpcMethod || (HederaJsonRpcMethod = {}));\n","/*\n *\n * Hedera Wallet Connect\n *\n * Copyright (C) 2023 Hedera Hashgraph, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nimport { Buffer } from 'buffer';\nimport { AccountId, Transaction, LedgerId, Query, } from '@hashgraph/sdk';\nimport { proto } from '@hashgraph/proto';\n/**\n * Freezes a transaction if it is not already frozen. Transactions must\n * be frozen before they can be converted to bytes.\n *\n * @param transaction - Any instance of a class that extends `Transaction`\n */\nexport function freezeTransaction(transaction) {\n if (!transaction.isFrozen())\n transaction.freeze();\n}\n/**\n * Sets default consensus nodes that a transaction will be submitted to. Node Account ID(s)\n * must be set before a transaction can be frozen. If they have already been set, this\n * function will not modify the transaction.\n * @param transaction - any instance of a class that extends `Transaction`\n *\n * @see {@link https://docs.hedera.com/hedera/networks/testnet/testnet-nodes | Full list of Testnet-nodes}\n * @see {@link https://docs.hedera.com/hedera/networks/mainnet/mainnet-nodes | Full list of Mainnet-nodes}\n */\nexport function setDefaultNodeAccountIds(transaction) {\n const isNodeAccountIdNotSet = !transaction.nodeAccountIds || transaction.nodeAccountIds.length === 0;\n if (!transaction.isFrozen() && isNodeAccountIdNotSet)\n transaction.setNodeAccountIds([new AccountId(3), new AccountId(4), new AccountId(5)]);\n}\n/**\n * Converts `Transaction` to a Base64-string.\n *\n * First converts a transaction to bytes and then encodes it as a Base64-string. Will attempt\n * to set default Node Account ID and freeze the transaction before converting.\n * @param transaction - Any instance of a class that extends `Transaction`\n * @returns Base64 encoded representation of the input `Transaction` object\n */\nexport function transactionToBase64String(transaction) {\n setDefaultNodeAccountIds(transaction);\n freezeTransaction(transaction);\n const transactionBytes = transaction.toBytes();\n return Buffer.from(transactionBytes).toString('base64');\n}\n/**\n * Recreates a `Transaction` from a base64 encoded string.\n *\n * Decodes the string to a buffer,\n * then passes to `Transaction.fromBytes`. For greater flexibility, this function uses the base\n * `Transaction` class, but takes an optional type parameter if the type of transaction is known,\n * allowing stronger typeing.\n * @param transactionBytes - a base64 encoded string\n * @returns `Transaction`\n * @example\n * ```ts\n * const txn1 = base64StringToTransaction(bytesString)\n * const txn2 = base64StringToTransaction(bytesString)\n * // txn1 type: Transaction\n * // txn2 type: TransferTransaction\n * ```\n */\nexport function base64StringToTransaction(transactionBytes) {\n const decoded = Buffer.from(transactionBytes, 'base64');\n return Transaction.fromBytes(decoded);\n}\n/**\n * @param transaction - a base64 encoded string of proto.TransactionBody.encode().finish()\n * @returns `string`\n * */\nexport function transactionToTransactionBody(transaction, nodeAccountId) {\n // This is a private function, though provides the capabilities to construct a proto.TransactionBody\n //@ts-ignore\n return transaction._makeTransactionBody(nodeAccountId);\n}\nexport function transactionBodyToBase64String(transactionBody) {\n return Uint8ArrayToBase64String(proto.TransactionBody.encode(transactionBody).finish());\n}\n/**\n * @param transactionList - a proto.TransactionList object\n * @returns `string`\n * */\nexport function transactionListToBase64String(transactionList) {\n const encoded = proto.TransactionList.encode(transactionList).finish();\n return Uint8ArrayToBase64String(encoded);\n}\n/**\n * Extracts the first signature from a proto.SignatureMap object.\n * @param signatureMap - a proto.SignatureMap object\n * @returns `Uint8Array`\n * */\nexport const extractFirstSignature = (signatureMap) => {\n var _a;\n const firstPair = (_a = signatureMap === null || signatureMap === void 0 ? void 0 : signatureMap.sigPair) === null || _a === void 0 ? void 0 : _a[0];\n const firstSignature = (firstPair === null || firstPair === void 0 ? void 0 : firstPair.ed25519) || (firstPair === null || firstPair === void 0 ? void 0 : firstPair.ECDSASecp256k1) || (firstPair === null || firstPair === void 0 ? void 0 : firstPair.ECDSA_384);\n if (!firstSignature) {\n throw new Error('No signatures found in response');\n }\n return firstSignature;\n};\n/**\n * Decodes base64 encoded proto.TransactionBody bytes to a `proto.TransactionBody` object.\n *\n * @param transactionBody - a base64 encoded string of proto.TransactionBody.encode().finish()\n * @returns `Transaction`\n *\n * */\nexport function base64StringToTransactionBody(transactionBody) {\n const bytes = Buffer.from(transactionBody, 'base64');\n return proto.TransactionBody.decode(bytes);\n}\n/**\n * Converts a `proto.SignatureMap` to a base64 encoded string.\n *\n * First converts the `proto.SignatureMap` object to a JSON.\n * Then encodes the JSON to a base64 encoded string.\n * @param signatureMap - The `proto.SignatureMap` object to be converted\n * @returns Base64-encoded string representation of the input `proto.SignatureMap`\n */\nexport function signatureMapToBase64String(signatureMap) {\n const encoded = proto.SignatureMap.encode(signatureMap).finish();\n return Uint8ArrayToBase64String(encoded);\n}\n/**\n * Converts a Base64-encoded string to a `proto.SignatureMap`.\n * @param base64string - Base64-encoded string\n * @returns `proto.SignatureMap`\n */\nexport function base64StringToSignatureMap(base64string) {\n const encoded = Buffer.from(base64string, 'base64');\n return proto.SignatureMap.decode(encoded);\n}\n/**\n * Encodes the binary data represented by the `Uint8Array` to a Base64 string.\n * @param binary - The `Uint8Array` containing binary data to be converted\n * @returns Base64-encoded string representation of the input `Uint8Array`\n */\nexport function Uint8ArrayToBase64String(binary) {\n return Buffer.from(binary).toString('base64');\n}\n/**\n * Encodes the binary data represented by the `Uint8Array` to a UTF-8 string.\n * @param binary - The `Uint8Array` containing binary data to be converted\n * @returns UTF-8 string representation of the input `Uint8Array`\n */\nexport function Uint8ArrayToString(binary) {\n return Buffer.from(binary).toString('utf-8');\n}\n/**\n * Converts a Base64-encoded string to a `Uint8Array`.\n * @param base64string - Base64-encoded string to be converted\n * @returns A `Uint8Array` representing the decoded binary data\n */\nexport function base64StringToUint8Array(base64string) {\n const encoded = Buffer.from(base64string, 'base64');\n return new Uint8Array(encoded);\n}\n/**\n * Converts a `Query` object to a Base64-encoded string.\n * First utilizes the `toBytes` method of the `Query` instance to obtain its binary `Uint8Array` representation.\n * Then encodes the binary `Uint8Array` to a Base64 string representation.\n * @param query - A `Query` object to be converted\n * @returns Base64 encoded representation of the input `Query` object\n */\nexport function queryToBase64String(query) {\n const queryBytes = query.toBytes();\n return Buffer.from(queryBytes).toString('base64');\n}\n/**\n * Recreates a `Query` from a Base64-encoded string. First decodes the string to a buffer,\n * then passes to `Query.fromBytes`. For greater flexibility, this function uses the base\n * `Query` class, but takes an optional type parameter if the type of query is known,\n * allowing stronger typeing.\n * @param bytesString - Base64-encoded string\n * @returns `Query`\n * @example\n * ```ts\n * const query1 = base64StringToQuery(bytesString)\n * const query2 = base64StringToQuery(bytesString)\n * // query1 type: Query\n * // query2 type: AccountInfoQuery\n * ```\n */\nexport function base64StringToQuery(bytesString) {\n const decoded = Buffer.from(bytesString, 'base64');\n return Query.fromBytes(decoded);\n}\nexport function prefixMessageToSign(message) {\n return '\\x19Hedera Signed Message:\\n' + message.length + message;\n}\n/**\n * Incorporates additional data (salt) into the message to alter the output signature.\n * This alteration ensures that passing a transaction here for signing will yield an invalid signature,\n * as the additional data modifies the signature text.\n *\n * @param message - A plain text string\n * @returns An array of Uint8Array containing the prepared message for signing\n */\nexport function stringToSignerMessage(message) {\n return [Buffer.from(prefixMessageToSign(message))];\n}\n/**\n * This implementation expects a plain text string, which is prefixed and then signed by a wallet.\n * Because the spec calls for 1 message to be signed and 1 signer, this function expects a single\n * signature and used the first item in the sigPair array.\n *\n * @param message - A plain text string\n * @param base64SignatureMap - A base64 encoded proto.SignatureMap object\n * @param publicKey - A PublicKey object use to verify the signature\n * @returns boolean - whether or not the first signature in the sigPair is valid for the message and public key\n */\nexport function verifyMessageSignature(message, base64SignatureMap, publicKey) {\n const signatureMap = base64StringToSignatureMap(base64SignatureMap);\n const signature = signatureMap.sigPair[0].ed25519 || signatureMap.sigPair[0].ECDSASecp256k1;\n if (!signature)\n throw new Error('Signature not found in signature map');\n return publicKey.verify(Buffer.from(prefixMessageToSign(message)), signature);\n}\n/**\n * This implementation expects a plain text string, which is prefixed and then signed by a wallet.\n * Because the spec calls for 1 message to be signed and 1 signer, this function expects a single\n * signature and used the first item in the sigPair array.\n *\n * @param message - A plain text string\n * @param signerSignature - A SignerSignature object\n * @param publicKey - A PublicKey object use to verify the signature\n * @returns boolean - whether or not the first signature in the sigPair is valid for the message and public key\n */\nexport function verifySignerSignature(message, signerSignature, publicKey) {\n const signature = signerSignature.signature;\n if (!signature)\n throw new Error('Signature not found in signature map');\n return publicKey.verify(Buffer.from(prefixMessageToSign(message)), signature);\n}\n/**\n *\n * https://github.com/hashgraph/hedera-sdk-js/blob/c78512b1d43eedf1d8bf2926a5b7ed3368fc39d1/src/PublicKey.js#L258\n * a signature pair is a protobuf object with a signature and a public key, it is the responsibility of a dApp to ensure the public key matches the account id\n * @param signerSignatures - An array of `SignerSignature` objects\n * @returns `proto.SignatureMap` object\n */\nexport function signerSignaturesToSignatureMap(signerSignatures) {\n const signatureMap = proto.SignatureMap.create({\n sigPair: signerSignatures.map((s) => s.publicKey._toProtobufSignature(s.signature)),\n });\n return signatureMap;\n}\n/**\n * A mapping of `LedgerId` to EIP chain id and CAIP-2 network name.\n *\n * Structure: [`LedgerId`, `number` (EIP155 chain id), `string` (CAIP-2 chain id)][]\n *\n * @see {@link https://namespaces.chainagnostic.org/hedera/README | Hedera Namespaces}\n * @see {@link https://hips.hedera.com/hip/hip-30 | CAIP Identifiers for the Hedera Network (HIP-30)}\n */\nexport const LEDGER_ID_MAPPINGS = [\n [LedgerId.MAINNET, 295, 'hedera:mainnet'],\n [LedgerId.TESTNET, 296, 'hedera:testnet'],\n [LedgerId.PREVIEWNET, 297, 'hedera:previewnet'],\n [LedgerId.LOCAL_NODE, 298, 'hedera:devnet'],\n];\nconst DEFAULT_LEDGER_ID = LedgerId.LOCAL_NODE;\nconst DEFAULT_EIP = LEDGER_ID_MAPPINGS[3][1];\nconst DEFAULT_CAIP = LEDGER_ID_MAPPINGS[3][2];\n/**\n * Converts an EIP chain id to a LedgerId object.\n *\n * If no mapping is found, returns `LedgerId.LOCAL_NODE`.\n *\n * @param chainId - The EIP chain ID (number) to be converted\n * @returns A `LedgerId` corresponding to the provided chain ID\n * @example\n * ```ts\n * const localnodeLedgerId = EIPChainIdToLedgerId(298)\n * console.log(localnodeLedgerId) // LedgerId.LOCAL_NODE\n * const mainnetLedgerId = EIPChainIdToLedgerId(295)\n * console.log(mainnetLedgerId) // LedgerId.MAINNET\n * ```\n */\nexport function EIPChainIdToLedgerId(chainId) {\n for (let i = 0; i < LEDGER_ID_MAPPINGS.length; i++) {\n const [ledgerId, chainId_] = LEDGER_ID_MAPPINGS[i];\n if (chainId === chainId_) {\n return ledgerId;\n }\n }\n return DEFAULT_LEDGER_ID;\n}\n/**\n * Converts a LedgerId object to an EIP chain id.\n *\n * If no mapping is found, returns the EIP chain id for `LedgerId.LOCAL_NODE`.\n *\n * @param ledgerId - The `LedgerId` object to be converted\n * @returns A `number` representing the EIP chain id for the provided `LedgerId`\n * @example\n * ```ts\n * const previewnetChainId = ledgerIdToEIPChainId(LedgerId.PREVIEWNET)\n * console.log(previewnetChainId) // 297\n * const testnetChainId = ledgerIdToEIPChainId(LedgerId.TESTNET)\n * console.log(testnetChainId) // 296\n * ```\n */\nexport function ledgerIdToEIPChainId(ledgerId) {\n for (let i = 0; i < LEDGER_ID_MAPPINGS.length; i++) {\n const [ledgerId_, chainId] = LEDGER_ID_MAPPINGS[i];\n if (ledgerId === ledgerId_) {\n return chainId;\n }\n }\n return DEFAULT_EIP;\n}\n/**\n * Converts a network name to an EIP chain id.\n * If no mapping is found, returns the EIP chain id for `LedgerId.LOCAL_NODE`.\n *\n * @param networkName - The network name (string) to be converted\n * @returns A `number` representing the EIP chain id for the provided network name\n * @example\n * ```ts\n * const mainnetChainId = networkNameToEIPChainId('mainnet')\n * console.log(mainnetChainId) // 295\n * const testnetChainId = networkNameToEIPChainId('testnet')\n * console.log(mainnetChainId) // 296\n * ```\n */\nexport function networkNameToEIPChainId(networkName) {\n const ledgerId = LedgerId.fromString(networkName.toLowerCase());\n return ledgerIdToEIPChainId(ledgerId);\n}\n/**\n * Converts a CAIP chain id to a LedgerId object.\n *\n * If no mapping is found, returns `LedgerId.LOCAL_NODE`.\n *\n * @param chainId - The CAIP chain ID (string) to be converted\n * @returns A `LedgerId` corresponding to the provided CAIP chain ID\n * @example\n * ```ts\n * const previewnetLedgerId = CAIPChainIdToLedgerId(HederaChainId.Previewnet)\n * console.log(previewnetLedgerId) // LedgerId.PREVIEWNET\n * const testnetLedgerId = CAIPChainIdToLedgerId(HederaChainId.Testnet)\n * console.log(testnetLedgerId) // LedgerId.TESTNET\n * ```\n */\nexport function CAIPChainIdToLedgerId(chainId) {\n for (let i = 0; i < LEDGER_ID_MAPPINGS.length; i++) {\n const [ledgerId, _, chainId_] = LEDGER_ID_MAPPINGS[i];\n if (chainId === chainId_) {\n return ledgerId;\n }\n }\n return DEFAULT_LEDGER_ID;\n}\n/**\n * Converts a LedgerId object to a CAIP chain id.\n *\n * If no mapping is found, returns the CAIP chain id for `LedgerId.LOCAL_NODE`.\n *\n * @param ledgerId - The `LedgerId` object to be converted\n * @returns A `string` representing the CAIP chain id for the provided `LedgerId`\n * @example\n * ```ts\n * const mainnetChainId = ledgerIdToCAIPChainId(HederaChainId.Mainnet)\n * console.log(mainnetChainId) // LedgerId.PREVIEWNET\n * const testnetChainId = ledgerIdToCAIPChainId(HederaChainId.Testnet)\n * console.log(testnetChainId) // LedgerId.TESTNET\n * ```\n */\nexport function ledgerIdToCAIPChainId(ledgerId) {\n for (let i = 0; i < LEDGER_ID_MAPPINGS.length; i++) {\n const [ledgerId_, _, chainId] = LEDGER_ID_MAPPINGS[i];\n if (ledgerId.toString() === ledgerId_.toString()) {\n return chainId;\n }\n }\n return DEFAULT_CAIP;\n}\n/**\n * Converts a network name to a CAIP chain id.\n *\n * If no mapping is found, returns the CAIP chain id for `LedgerId.LOCAL_NODE`.\n *\n * @param networkName - The network name (string) to be converted\n * @returns A `string` representing the CAIP chain id for the provided network name\n * @example\n * ```ts\n * const previewnetChainId = networkNameToCAIPChainId('previewnet')\n * console.log(previewnetChainId) // HederaChainId.Previewnet\n * const devnetChainId = networkNameToCAIPChainId('devnet')\n * console.log(devnetChainId) // HederaChainId.Devnet\n * ```\n */\nexport function networkNameToCAIPChainId(networkName) {\n const ledgerId = LedgerId.fromString(networkName.toLowerCase());\n const chainId = ledgerIdToCAIPChainId(ledgerId);\n return chainId;\n}\n/**\n * Create a `ProposalTypes.RequiredNamespaces` object for a given ledgerId.\n *\n * @param ledgerId - The `LedgerId` for which the namespaces are created\n * @param methods - An array of strings representing methods\n * @param events - An array of strings representing events\n * @returns A `ProposalTypes.RequiredNamespaces` object\n */\nexport const networkNamespaces = (ledgerId, methods, events) => ({\n hedera: {\n chains: [ledgerIdToCAIPChainId(ledgerId)],\n methods,\n events,\n },\n});\n/**\n * Get the account and ledger from a `SessionTypes.Struct` object.\n *\n * @param session - The `SessionTypes.Struct` object containing namespaces\n * @returns `ProposalTypes.RequiredNamespaces` - an array of objects containing network (LedgerId) and account (AccountId)\n */\nexport const accountAndLedgerFromSession = (session) => {\n const hederaNamespace = session.namespaces.hedera;\n if (!hederaNamespace)\n throw new Error('No hedera namespace found');\n return hederaNamespace.accounts.map((account) => {\n const [chain, network, acc] = account.split(':');\n return {\n network: CAIPChainIdToLedgerId(chain + ':' + network),\n account: AccountId.fromString(acc),\n };\n });\n};\n","export var EVENTS;\n(function (EVENTS) {\n EVENTS[\"extensionQuery\"] = \"hedera-extension-query\";\n EVENTS[\"extensionConnect\"] = \"hedera-extension-connect-\";\n EVENTS[\"extensionOpen\"] = \"hedera-extension-open-\";\n EVENTS[\"extensionResponse\"] = \"hedera-extension-response\";\n EVENTS[\"iframeQuery\"] = \"hedera-iframe-query\";\n EVENTS[\"iframeQueryResponse\"] = \"hedera-iframe-response\";\n EVENTS[\"iframeConnect\"] = \"hedera-iframe-connect\";\n})(EVENTS || (EVENTS = {}));\nexport const findExtensions = (onFound) => {\n if (typeof window === 'undefined')\n return;\n window.addEventListener('message', (event) => {\n var _a, _b;\n if (((_a = event === null || event === void 0 ? void 0 : event.data) === null || _a === void 0 ? void 0 : _a.type) == EVENTS.extensionResponse && event.data.metadata) {\n onFound(event.data.metadata, false);\n }\n if (((_b = event === null || event === void 0 ? void 0 : event.data) === null || _b === void 0 ? void 0 : _b.type) == EVENTS.iframeQueryResponse && event.data.metadata) {\n onFound(event.data.metadata, true);\n }\n });\n setTimeout(() => {\n extensionQuery();\n }, 200);\n};\nexport const extensionQuery = () => {\n window.postMessage({ type: EVENTS.extensionQuery }, '*');\n if (window.parent) {\n window.parent.postMessage({ type: EVENTS.iframeQuery }, '*');\n }\n};\nexport const extensionConnect = (id, isIframe, pairingString) => {\n if (isIframe) {\n window.parent.postMessage({ type: EVENTS.iframeConnect, pairingString }, '*');\n return;\n }\n window.postMessage({ type: EVENTS.extensionConnect + id, pairingString }, '*');\n};\nexport const extensionOpen = (id) => {\n window.postMessage({ type: EVENTS.extensionOpen + id }, '*');\n};\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.delay = void 0;\nfunction delay(timeout) {\n return new Promise(resolve => {\n setTimeout(() => {\n resolve(true);\n }, timeout);\n });\n}\nexports.delay = delay;\n//# sourceMappingURL=delay.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ONE_THOUSAND = exports.ONE_HUNDRED = void 0;\nexports.ONE_HUNDRED = 100;\nexports.ONE_THOUSAND = 1000;\n//# sourceMappingURL=misc.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ONE_YEAR = exports.FOUR_WEEKS = exports.THREE_WEEKS = exports.TWO_WEEKS = exports.ONE_WEEK = exports.THIRTY_DAYS = exports.SEVEN_DAYS = exports.FIVE_DAYS = exports.THREE_DAYS = exports.ONE_DAY = exports.TWENTY_FOUR_HOURS = exports.TWELVE_HOURS = exports.SIX_HOURS = exports.THREE_HOURS = exports.ONE_HOUR = exports.SIXTY_MINUTES = exports.THIRTY_MINUTES = exports.TEN_MINUTES = exports.FIVE_MINUTES = exports.ONE_MINUTE = exports.SIXTY_SECONDS = exports.THIRTY_SECONDS = exports.TEN_SECONDS = exports.FIVE_SECONDS = exports.ONE_SECOND = void 0;\nexports.ONE_SECOND = 1;\nexports.FIVE_SECONDS = 5;\nexports.TEN_SECONDS = 10;\nexports.THIRTY_SECONDS = 30;\nexports.SIXTY_SECONDS = 60;\nexports.ONE_MINUTE = exports.SIXTY_SECONDS;\nexports.FIVE_MINUTES = exports.ONE_MINUTE * 5;\nexports.TEN_MINUTES = exports.ONE_MINUTE * 10;\nexports.THIRTY_MINUTES = exports.ONE_MINUTE * 30;\nexports.SIXTY_MINUTES = exports.ONE_MINUTE * 60;\nexports.ONE_HOUR = exports.SIXTY_MINUTES;\nexports.THREE_HOURS = exports.ONE_HOUR * 3;\nexports.SIX_HOURS = exports.ONE_HOUR * 6;\nexports.TWELVE_HOURS = exports.ONE_HOUR * 12;\nexports.TWENTY_FOUR_HOURS = exports.ONE_HOUR * 24;\nexports.ONE_DAY = exports.TWENTY_FOUR_HOURS;\nexports.THREE_DAYS = exports.ONE_DAY * 3;\nexports.FIVE_DAYS = exports.ONE_DAY * 5;\nexports.SEVEN_DAYS = exports.ONE_DAY * 7;\nexports.THIRTY_DAYS = exports.ONE_DAY * 30;\nexports.ONE_WEEK = exports.SEVEN_DAYS;\nexports.TWO_WEEKS = exports.ONE_WEEK * 2;\nexports.THREE_WEEKS = exports.ONE_WEEK * 3;\nexports.FOUR_WEEKS = exports.ONE_WEEK * 4;\nexports.ONE_YEAR = exports.ONE_DAY * 365;\n//# sourceMappingURL=time.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./misc\"), exports);\ntslib_1.__exportStar(require(\"./time\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromMiliseconds = exports.toMiliseconds = void 0;\nconst constants_1 = require(\"../constants\");\nfunction toMiliseconds(seconds) {\n return seconds * constants_1.ONE_THOUSAND;\n}\nexports.toMiliseconds = toMiliseconds;\nfunction fromMiliseconds(miliseconds) {\n return Math.floor(miliseconds / constants_1.ONE_THOUSAND);\n}\nexports.fromMiliseconds = fromMiliseconds;\n//# sourceMappingURL=convert.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./delay\"), exports);\ntslib_1.__exportStar(require(\"./convert\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Watch = void 0;\nclass Watch {\n constructor() {\n this.timestamps = new Map();\n }\n start(label) {\n if (this.timestamps.has(label)) {\n throw new Error(`Watch already started for label: ${label}`);\n }\n this.timestamps.set(label, { started: Date.now() });\n }\n stop(label) {\n const timestamp = this.get(label);\n if (typeof timestamp.elapsed !== \"undefined\") {\n throw new Error(`Watch already stopped for label: ${label}`);\n }\n const elapsed = Date.now() - timestamp.started;\n this.timestamps.set(label, { started: timestamp.started, elapsed });\n }\n get(label) {\n const timestamp = this.timestamps.get(label);\n if (typeof timestamp === \"undefined\") {\n throw new Error(`No timestamp found for label: ${label}`);\n }\n return timestamp;\n }\n elapsed(label) {\n const timestamp = this.get(label);\n const elapsed = timestamp.elapsed || Date.now() - timestamp.started;\n return elapsed;\n }\n}\nexports.Watch = Watch;\nexports.default = Watch;\n//# sourceMappingURL=watch.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IWatch = void 0;\nclass IWatch {\n}\nexports.IWatch = IWatch;\n//# sourceMappingURL=watch.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./watch\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./utils\"), exports);\ntslib_1.__exportStar(require(\"./watch\"), exports);\ntslib_1.__exportStar(require(\"./types\"), exports);\ntslib_1.__exportStar(require(\"./constants\"), exports);\n//# sourceMappingURL=index.js.map","export class IEvents {\n}\n//# sourceMappingURL=events.js.map","import{EventEmitter as a}from\"events\";import{FIVE_SECONDS as o,toMiliseconds as l}from\"@walletconnect/time\";import{IEvents as v}from\"@walletconnect/events\";class n extends v{constructor(e){super()}}const s=o,r={pulse:\"heartbeat_pulse\"};class i extends n{constructor(e){super(e),this.events=new a,this.interval=s,this.interval=e?.interval||s}static async init(e){const t=new i(e);return await t.init(),t}async init(){await this.initialize()}stop(){clearInterval(this.intervalRef)}on(e,t){this.events.on(e,t)}once(e,t){this.events.once(e,t)}off(e,t){this.events.off(e,t)}removeListener(e,t){this.events.removeListener(e,t)}async initialize(){this.intervalRef=setInterval(()=>this.pulse(),l(this.interval))}pulse(){this.events.emit(r.pulse)}}export{r as HEARTBEAT_EVENTS,s as HEARTBEAT_INTERVAL,i as HeartBeat,n as IHeartBeat};\n//# sourceMappingURL=index.es.js.map\n","const global = globalThis || void 0 || self;\n\nexport { global as default, global };\n//# sourceMappingURL=index.js.map\n","const suspectProtoRx = /\"(?:_|\\\\u0{2}5[Ff]){2}(?:p|\\\\u0{2}70)(?:r|\\\\u0{2}72)(?:o|\\\\u0{2}6[Ff])(?:t|\\\\u0{2}74)(?:o|\\\\u0{2}6[Ff])(?:_|\\\\u0{2}5[Ff]){2}\"\\s*:/;\nconst suspectConstructorRx = /\"(?:c|\\\\u0063)(?:o|\\\\u006[Ff])(?:n|\\\\u006[Ee])(?:s|\\\\u0073)(?:t|\\\\u0074)(?:r|\\\\u0072)(?:u|\\\\u0075)(?:c|\\\\u0063)(?:t|\\\\u0074)(?:o|\\\\u006[Ff])(?:r|\\\\u0072)\"\\s*:/;\nconst JsonSigRx = /^\\s*[\"[{]|^\\s*-?\\d{1,16}(\\.\\d{1,17})?([Ee][+-]?\\d+)?\\s*$/;\nfunction jsonParseTransform(key, value) {\n if (key === \"__proto__\" || key === \"constructor\" && value && typeof value === \"object\" && \"prototype\" in value) {\n warnKeyDropped(key);\n return;\n }\n return value;\n}\nfunction warnKeyDropped(key) {\n console.warn(`[destr] Dropping \"${key}\" key to prevent prototype pollution.`);\n}\nfunction destr(value, options = {}) {\n if (typeof value !== \"string\") {\n return value;\n }\n const _value = value.trim();\n if (\n // eslint-disable-next-line unicorn/prefer-at\n value[0] === '\"' && value.endsWith('\"') && !value.includes(\"\\\\\")\n ) {\n return _value.slice(1, -1);\n }\n if (_value.length <= 9) {\n const _lval = _value.toLowerCase();\n if (_lval === \"true\") {\n return true;\n }\n if (_lval === \"false\") {\n return false;\n }\n if (_lval === \"undefined\") {\n return void 0;\n }\n if (_lval === \"null\") {\n return null;\n }\n if (_lval === \"nan\") {\n return Number.NaN;\n }\n if (_lval === \"infinity\") {\n return Number.POSITIVE_INFINITY;\n }\n if (_lval === \"-infinity\") {\n return Number.NEGATIVE_INFINITY;\n }\n }\n if (!JsonSigRx.test(value)) {\n if (options.strict) {\n throw new SyntaxError(\"[destr] Invalid JSON\");\n }\n return value;\n }\n try {\n if (suspectProtoRx.test(value) || suspectConstructorRx.test(value)) {\n if (options.strict) {\n throw new Error(\"[destr] Possible prototype pollution\");\n }\n return JSON.parse(value, jsonParseTransform);\n }\n return JSON.parse(value);\n } catch (error) {\n if (options.strict) {\n throw error;\n }\n return value;\n }\n}\nfunction safeDestr(value, options = {}) {\n return destr(value, { ...options, strict: true });\n}\n\nexport { destr as default, destr, safeDestr };\n","function wrapToPromise(value) {\n if (!value || typeof value.then !== \"function\") {\n return Promise.resolve(value);\n }\n return value;\n}\nfunction asyncCall(function_, ...arguments_) {\n try {\n return wrapToPromise(function_(...arguments_));\n } catch (error) {\n return Promise.reject(error);\n }\n}\nfunction isPrimitive(value) {\n const type = typeof value;\n return value === null || type !== \"object\" && type !== \"function\";\n}\nfunction isPureObject(value) {\n const proto = Object.getPrototypeOf(value);\n return !proto || proto.isPrototypeOf(Object);\n}\nfunction stringify(value) {\n if (isPrimitive(value)) {\n return String(value);\n }\n if (isPureObject(value) || Array.isArray(value)) {\n return JSON.stringify(value);\n }\n if (typeof value.toJSON === \"function\") {\n return stringify(value.toJSON());\n }\n throw new Error(\"[unstorage] Cannot stringify value!\");\n}\nconst BASE64_PREFIX = \"base64:\";\nfunction serializeRaw(value) {\n if (typeof value === \"string\") {\n return value;\n }\n return BASE64_PREFIX + base64Encode(value);\n}\nfunction deserializeRaw(value) {\n if (typeof value !== \"string\") {\n return value;\n }\n if (!value.startsWith(BASE64_PREFIX)) {\n return value;\n }\n return base64Decode(value.slice(BASE64_PREFIX.length));\n}\nfunction base64Decode(input) {\n if (globalThis.Buffer) {\n return Buffer.from(input, \"base64\");\n }\n return Uint8Array.from(\n globalThis.atob(input),\n (c) => c.codePointAt(0)\n );\n}\nfunction base64Encode(input) {\n if (globalThis.Buffer) {\n return Buffer.from(input).toString(\"base64\");\n }\n return globalThis.btoa(String.fromCodePoint(...input));\n}\n\nconst storageKeyProperties = [\n \"hasItem\",\n \"getItem\",\n \"getItemRaw\",\n \"setItem\",\n \"setItemRaw\",\n \"removeItem\",\n \"getMeta\",\n \"setMeta\",\n \"removeMeta\",\n \"getKeys\",\n \"clear\",\n \"mount\",\n \"unmount\"\n];\nfunction prefixStorage(storage, base) {\n base = normalizeBaseKey(base);\n if (!base) {\n return storage;\n }\n const nsStorage = { ...storage };\n for (const property of storageKeyProperties) {\n nsStorage[property] = (key = \"\", ...args) => (\n // @ts-ignore\n storage[property](base + key, ...args)\n );\n }\n nsStorage.getKeys = (key = \"\", ...arguments_) => storage.getKeys(base + key, ...arguments_).then((keys) => keys.map((key2) => key2.slice(base.length)));\n return nsStorage;\n}\nfunction normalizeKey(key) {\n if (!key) {\n return \"\";\n }\n return key.split(\"?\")[0]?.replace(/[/\\\\]/g, \":\").replace(/:+/g, \":\").replace(/^:|:$/g, \"\") || \"\";\n}\nfunction joinKeys(...keys) {\n return normalizeKey(keys.join(\":\"));\n}\nfunction normalizeBaseKey(base) {\n base = normalizeKey(base);\n return base ? base + \":\" : \"\";\n}\n\nexport { normalizeKey as a, asyncCall as b, serializeRaw as c, deserializeRaw as d, joinKeys as j, normalizeBaseKey as n, prefixStorage as p, stringify as s };\n","import destr from 'destr';\nimport { n as normalizeBaseKey, a as normalizeKey, b as asyncCall, d as deserializeRaw, s as stringify, c as serializeRaw, j as joinKeys } from './shared/unstorage.BqzpVTXx.mjs';\nexport { p as prefixStorage } from './shared/unstorage.BqzpVTXx.mjs';\n\nfunction defineDriver(factory) {\n return factory;\n}\n\nconst DRIVER_NAME = \"memory\";\nconst memory = defineDriver(() => {\n const data = /* @__PURE__ */ new Map();\n return {\n name: DRIVER_NAME,\n getInstance: () => data,\n hasItem(key) {\n return data.has(key);\n },\n getItem(key) {\n return data.get(key) ?? null;\n },\n getItemRaw(key) {\n return data.get(key) ?? null;\n },\n setItem(key, value) {\n data.set(key, value);\n },\n setItemRaw(key, value) {\n data.set(key, value);\n },\n removeItem(key) {\n data.delete(key);\n },\n getKeys() {\n return [...data.keys()];\n },\n clear() {\n data.clear();\n },\n dispose() {\n data.clear();\n }\n };\n});\n\nfunction createStorage(options = {}) {\n const context = {\n mounts: { \"\": options.driver || memory() },\n mountpoints: [\"\"],\n watching: false,\n watchListeners: [],\n unwatch: {}\n };\n const getMount = (key) => {\n for (const base of context.mountpoints) {\n if (key.startsWith(base)) {\n return {\n base,\n relativeKey: key.slice(base.length),\n driver: context.mounts[base]\n };\n }\n }\n return {\n base: \"\",\n relativeKey: key,\n driver: context.mounts[\"\"]\n };\n };\n const getMounts = (base, includeParent) => {\n return context.mountpoints.filter(\n (mountpoint) => mountpoint.startsWith(base) || includeParent && base.startsWith(mountpoint)\n ).map((mountpoint) => ({\n relativeBase: base.length > mountpoint.length ? base.slice(mountpoint.length) : void 0,\n mountpoint,\n driver: context.mounts[mountpoint]\n }));\n };\n const onChange = (event, key) => {\n if (!context.watching) {\n return;\n }\n key = normalizeKey(key);\n for (const listener of context.watchListeners) {\n listener(event, key);\n }\n };\n const startWatch = async () => {\n if (context.watching) {\n return;\n }\n context.watching = true;\n for (const mountpoint in context.mounts) {\n context.unwatch[mountpoint] = await watch(\n context.mounts[mountpoint],\n onChange,\n mountpoint\n );\n }\n };\n const stopWatch = async () => {\n if (!context.watching) {\n return;\n }\n for (const mountpoint in context.unwatch) {\n await context.unwatch[mountpoint]();\n }\n context.unwatch = {};\n context.watching = false;\n };\n const runBatch = (items, commonOptions, cb) => {\n const batches = /* @__PURE__ */ new Map();\n const getBatch = (mount) => {\n let batch = batches.get(mount.base);\n if (!batch) {\n batch = {\n driver: mount.driver,\n base: mount.base,\n items: []\n };\n batches.set(mount.base, batch);\n }\n return batch;\n };\n for (const item of items) {\n const isStringItem = typeof item === \"string\";\n const key = normalizeKey(isStringItem ? item : item.key);\n const value = isStringItem ? void 0 : item.value;\n const options2 = isStringItem || !item.options ? commonOptions : { ...commonOptions, ...item.options };\n const mount = getMount(key);\n getBatch(mount).items.push({\n key,\n value,\n relativeKey: mount.relativeKey,\n options: options2\n });\n }\n return Promise.all([...batches.values()].map((batch) => cb(batch))).then(\n (r) => r.flat()\n );\n };\n const storage = {\n // Item\n hasItem(key, opts = {}) {\n key = normalizeKey(key);\n const { relativeKey, driver } = getMount(key);\n return asyncCall(driver.hasItem, relativeKey, opts);\n },\n getItem(key, opts = {}) {\n key = normalizeKey(key);\n const { relativeKey, driver } = getMount(key);\n return asyncCall(driver.getItem, relativeKey, opts).then(\n (value) => destr(value)\n );\n },\n getItems(items, commonOptions = {}) {\n return runBatch(items, commonOptions, (batch) => {\n if (batch.driver.getItems) {\n return asyncCall(\n batch.driver.getItems,\n batch.items.map((item) => ({\n key: item.relativeKey,\n options: item.options\n })),\n commonOptions\n ).then(\n (r) => r.map((item) => ({\n key: joinKeys(batch.base, item.key),\n value: destr(item.value)\n }))\n );\n }\n return Promise.all(\n batch.items.map((item) => {\n return asyncCall(\n batch.driver.getItem,\n item.relativeKey,\n item.options\n ).then((value) => ({\n key: item.key,\n value: destr(value)\n }));\n })\n );\n });\n },\n getItemRaw(key, opts = {}) {\n key = normalizeKey(key);\n const { relativeKey, driver } = getMount(key);\n if (driver.getItemRaw) {\n return asyncCall(driver.getItemRaw, relativeKey, opts);\n }\n return asyncCall(driver.getItem, relativeKey, opts).then(\n (value) => deserializeRaw(value)\n );\n },\n async setItem(key, value, opts = {}) {\n if (value === void 0) {\n return storage.removeItem(key);\n }\n key = normalizeKey(key);\n const { relativeKey, driver } = getMount(key);\n if (!driver.setItem) {\n return;\n }\n await asyncCall(driver.setItem, relativeKey, stringify(value), opts);\n if (!driver.watch) {\n onChange(\"update\", key);\n }\n },\n async setItems(items, commonOptions) {\n await runBatch(items, commonOptions, async (batch) => {\n if (batch.driver.setItems) {\n return asyncCall(\n batch.driver.setItems,\n batch.items.map((item) => ({\n key: item.relativeKey,\n value: stringify(item.value),\n options: item.options\n })),\n commonOptions\n );\n }\n if (!batch.driver.setItem) {\n return;\n }\n await Promise.all(\n batch.items.map((item) => {\n return asyncCall(\n batch.driver.setItem,\n item.relativeKey,\n stringify(item.value),\n item.options\n );\n })\n );\n });\n },\n async setItemRaw(key, value, opts = {}) {\n if (value === void 0) {\n return storage.removeItem(key, opts);\n }\n key = normalizeKey(key);\n const { relativeKey, driver } = getMount(key);\n if (driver.setItemRaw) {\n await asyncCall(driver.setItemRaw, relativeKey, value, opts);\n } else if (driver.setItem) {\n await asyncCall(driver.setItem, relativeKey, serializeRaw(value), opts);\n } else {\n return;\n }\n if (!driver.watch) {\n onChange(\"update\", key);\n }\n },\n async removeItem(key, opts = {}) {\n if (typeof opts === \"boolean\") {\n opts = { removeMeta: opts };\n }\n key = normalizeKey(key);\n const { relativeKey, driver } = getMount(key);\n if (!driver.removeItem) {\n return;\n }\n await asyncCall(driver.removeItem, relativeKey, opts);\n if (opts.removeMeta || opts.removeMata) {\n await asyncCall(driver.removeItem, relativeKey + \"$\", opts);\n }\n if (!driver.watch) {\n onChange(\"remove\", key);\n }\n },\n // Meta\n async getMeta(key, opts = {}) {\n if (typeof opts === \"boolean\") {\n opts = { nativeOnly: opts };\n }\n key = normalizeKey(key);\n const { relativeKey, driver } = getMount(key);\n const meta = /* @__PURE__ */ Object.create(null);\n if (driver.getMeta) {\n Object.assign(meta, await asyncCall(driver.getMeta, relativeKey, opts));\n }\n if (!opts.nativeOnly) {\n const value = await asyncCall(\n driver.getItem,\n relativeKey + \"$\",\n opts\n ).then((value_) => destr(value_));\n if (value && typeof value === \"object\") {\n if (typeof value.atime === \"string\") {\n value.atime = new Date(value.atime);\n }\n if (typeof value.mtime === \"string\") {\n value.mtime = new Date(value.mtime);\n }\n Object.assign(meta, value);\n }\n }\n return meta;\n },\n setMeta(key, value, opts = {}) {\n return this.setItem(key + \"$\", value, opts);\n },\n removeMeta(key, opts = {}) {\n return this.removeItem(key + \"$\", opts);\n },\n // Keys\n async getKeys(base, opts = {}) {\n base = normalizeBaseKey(base);\n const mounts = getMounts(base, true);\n let maskedMounts = [];\n const allKeys = [];\n for (const mount of mounts) {\n const rawKeys = await asyncCall(\n mount.driver.getKeys,\n mount.relativeBase,\n opts\n );\n for (const key of rawKeys) {\n const fullKey = mount.mountpoint + normalizeKey(key);\n if (!maskedMounts.some((p) => fullKey.startsWith(p))) {\n allKeys.push(fullKey);\n }\n }\n maskedMounts = [\n mount.mountpoint,\n ...maskedMounts.filter((p) => !p.startsWith(mount.mountpoint))\n ];\n }\n return base ? allKeys.filter(\n (key) => key.startsWith(base) && key[key.length - 1] !== \"$\"\n ) : allKeys.filter((key) => key[key.length - 1] !== \"$\");\n },\n // Utils\n async clear(base, opts = {}) {\n base = normalizeBaseKey(base);\n await Promise.all(\n getMounts(base, false).map(async (m) => {\n if (m.driver.clear) {\n return asyncCall(m.driver.clear, m.relativeBase, opts);\n }\n if (m.driver.removeItem) {\n const keys = await m.driver.getKeys(m.relativeBase || \"\", opts);\n return Promise.all(\n keys.map((key) => m.driver.removeItem(key, opts))\n );\n }\n })\n );\n },\n async dispose() {\n await Promise.all(\n Object.values(context.mounts).map((driver) => dispose(driver))\n );\n },\n async watch(callback) {\n await startWatch();\n context.watchListeners.push(callback);\n return async () => {\n context.watchListeners = context.watchListeners.filter(\n (listener) => listener !== callback\n );\n if (context.watchListeners.length === 0) {\n await stopWatch();\n }\n };\n },\n async unwatch() {\n context.watchListeners = [];\n await stopWatch();\n },\n // Mount\n mount(base, driver) {\n base = normalizeBaseKey(base);\n if (base && context.mounts[base]) {\n throw new Error(`already mounted at ${base}`);\n }\n if (base) {\n context.mountpoints.push(base);\n context.mountpoints.sort((a, b) => b.length - a.length);\n }\n context.mounts[base] = driver;\n if (context.watching) {\n Promise.resolve(watch(driver, onChange, base)).then((unwatcher) => {\n context.unwatch[base] = unwatcher;\n }).catch(console.error);\n }\n return storage;\n },\n async unmount(base, _dispose = true) {\n base = normalizeBaseKey(base);\n if (!base || !context.mounts[base]) {\n return;\n }\n if (context.watching && base in context.unwatch) {\n context.unwatch[base]?.();\n delete context.unwatch[base];\n }\n if (_dispose) {\n await dispose(context.mounts[base]);\n }\n context.mountpoints = context.mountpoints.filter((key) => key !== base);\n delete context.mounts[base];\n },\n getMount(key = \"\") {\n key = normalizeKey(key) + \":\";\n const m = getMount(key);\n return {\n driver: m.driver,\n base: m.base\n };\n },\n getMounts(base = \"\", opts = {}) {\n base = normalizeKey(base);\n const mounts = getMounts(base, opts.parents);\n return mounts.map((m) => ({\n driver: m.driver,\n base: m.mountpoint\n }));\n },\n // Aliases\n keys: (base, opts = {}) => storage.getKeys(base, opts),\n get: (key, opts = {}) => storage.getItem(key, opts),\n set: (key, value, opts = {}) => storage.setItem(key, value, opts),\n has: (key, opts = {}) => storage.hasItem(key, opts),\n del: (key, opts = {}) => storage.removeItem(key, opts),\n remove: (key, opts = {}) => storage.removeItem(key, opts)\n };\n return storage;\n}\nasync function snapshot(storage, base) {\n base = normalizeBaseKey(base);\n const keys = await storage.getKeys(base);\n const snapshot2 = {};\n await Promise.all(\n keys.map(async (key) => {\n snapshot2[key.slice(base.length)] = await storage.getItem(key);\n })\n );\n return snapshot2;\n}\nasync function restoreSnapshot(driver, snapshot2, base = \"\") {\n base = normalizeBaseKey(base);\n await Promise.all(\n Object.entries(snapshot2).map((e) => driver.setItem(base + e[0], e[1]))\n );\n}\nfunction watch(driver, onChange, base) {\n return driver.watch ? driver.watch((event, key) => onChange(event, base + key)) : () => {\n };\n}\nasync function dispose(driver) {\n if (typeof driver.dispose === \"function\") {\n await asyncCall(driver.dispose);\n }\n}\n\nconst builtinDrivers = {\n \"azure-app-configuration\": \"unstorage/drivers/azure-app-configuration\",\n \"azureAppConfiguration\": \"unstorage/drivers/azure-app-configuration\",\n \"azure-cosmos\": \"unstorage/drivers/azure-cosmos\",\n \"azureCosmos\": \"unstorage/drivers/azure-cosmos\",\n \"azure-key-vault\": \"unstorage/drivers/azure-key-vault\",\n \"azureKeyVault\": \"unstorage/drivers/azure-key-vault\",\n \"azure-storage-blob\": \"unstorage/drivers/azure-storage-blob\",\n \"azureStorageBlob\": \"unstorage/drivers/azure-storage-blob\",\n \"azure-storage-table\": \"unstorage/drivers/azure-storage-table\",\n \"azureStorageTable\": \"unstorage/drivers/azure-storage-table\",\n \"capacitor-preferences\": \"unstorage/drivers/capacitor-preferences\",\n \"capacitorPreferences\": \"unstorage/drivers/capacitor-preferences\",\n \"cloudflare-kv-binding\": \"unstorage/drivers/cloudflare-kv-binding\",\n \"cloudflareKVBinding\": \"unstorage/drivers/cloudflare-kv-binding\",\n \"cloudflare-kv-http\": \"unstorage/drivers/cloudflare-kv-http\",\n \"cloudflareKVHttp\": \"unstorage/drivers/cloudflare-kv-http\",\n \"cloudflare-r2-binding\": \"unstorage/drivers/cloudflare-r2-binding\",\n \"cloudflareR2Binding\": \"unstorage/drivers/cloudflare-r2-binding\",\n \"db0\": \"unstorage/drivers/db0\",\n \"deno-kv-node\": \"unstorage/drivers/deno-kv-node\",\n \"denoKVNode\": \"unstorage/drivers/deno-kv-node\",\n \"deno-kv\": \"unstorage/drivers/deno-kv\",\n \"denoKV\": \"unstorage/drivers/deno-kv\",\n \"fs-lite\": \"unstorage/drivers/fs-lite\",\n \"fsLite\": \"unstorage/drivers/fs-lite\",\n \"fs\": \"unstorage/drivers/fs\",\n \"github\": \"unstorage/drivers/github\",\n \"http\": \"unstorage/drivers/http\",\n \"indexedb\": \"unstorage/drivers/indexedb\",\n \"localstorage\": \"unstorage/drivers/localstorage\",\n \"lru-cache\": \"unstorage/drivers/lru-cache\",\n \"lruCache\": \"unstorage/drivers/lru-cache\",\n \"memory\": \"unstorage/drivers/memory\",\n \"mongodb\": \"unstorage/drivers/mongodb\",\n \"netlify-blobs\": \"unstorage/drivers/netlify-blobs\",\n \"netlifyBlobs\": \"unstorage/drivers/netlify-blobs\",\n \"null\": \"unstorage/drivers/null\",\n \"overlay\": \"unstorage/drivers/overlay\",\n \"planetscale\": \"unstorage/drivers/planetscale\",\n \"redis\": \"unstorage/drivers/redis\",\n \"s3\": \"unstorage/drivers/s3\",\n \"session-storage\": \"unstorage/drivers/session-storage\",\n \"sessionStorage\": \"unstorage/drivers/session-storage\",\n \"uploadthing\": \"unstorage/drivers/uploadthing\",\n \"upstash\": \"unstorage/drivers/upstash\",\n \"vercel-blob\": \"unstorage/drivers/vercel-blob\",\n \"vercelBlob\": \"unstorage/drivers/vercel-blob\",\n \"vercel-kv\": \"unstorage/drivers/vercel-kv\",\n \"vercelKV\": \"unstorage/drivers/vercel-kv\"\n};\n\nexport { builtinDrivers, createStorage, defineDriver, joinKeys, normalizeBaseKey, normalizeKey, restoreSnapshot, snapshot };\n","function promisifyRequest(request) {\n return new Promise((resolve, reject) => {\n // @ts-ignore - file size hacks\n request.oncomplete = request.onsuccess = () => resolve(request.result);\n // @ts-ignore - file size hacks\n request.onabort = request.onerror = () => reject(request.error);\n });\n}\nfunction createStore(dbName, storeName) {\n const request = indexedDB.open(dbName);\n request.onupgradeneeded = () => request.result.createObjectStore(storeName);\n const dbp = promisifyRequest(request);\n return (txMode, callback) => dbp.then((db) => callback(db.transaction(storeName, txMode).objectStore(storeName)));\n}\nlet defaultGetStoreFunc;\nfunction defaultGetStore() {\n if (!defaultGetStoreFunc) {\n defaultGetStoreFunc = createStore('keyval-store', 'keyval');\n }\n return defaultGetStoreFunc;\n}\n/**\n * Get a value by its key.\n *\n * @param key\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction get(key, customStore = defaultGetStore()) {\n return customStore('readonly', (store) => promisifyRequest(store.get(key)));\n}\n/**\n * Set a value with a key.\n *\n * @param key\n * @param value\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction set(key, value, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n store.put(value, key);\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Set multiple values at once. This is faster than calling set() multiple times.\n * It's also atomic – if one of the pairs can't be added, none will be added.\n *\n * @param entries Array of entries, where each entry is an array of `[key, value]`.\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction setMany(entries, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n entries.forEach((entry) => store.put(entry[1], entry[0]));\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Get multiple values by their keys\n *\n * @param keys\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction getMany(keys, customStore = defaultGetStore()) {\n return customStore('readonly', (store) => Promise.all(keys.map((key) => promisifyRequest(store.get(key)))));\n}\n/**\n * Update a value. This lets you see the old value and update it as an atomic operation.\n *\n * @param key\n * @param updater A callback that takes the old value and returns a new value.\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction update(key, updater, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => \n // Need to create the promise manually.\n // If I try to chain promises, the transaction closes in browsers\n // that use a promise polyfill (IE10/11).\n new Promise((resolve, reject) => {\n store.get(key).onsuccess = function () {\n try {\n store.put(updater(this.result), key);\n resolve(promisifyRequest(store.transaction));\n }\n catch (err) {\n reject(err);\n }\n };\n }));\n}\n/**\n * Delete a particular key from the store.\n *\n * @param key\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction del(key, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n store.delete(key);\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Delete multiple keys at once.\n *\n * @param keys List of keys to delete.\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction delMany(keys, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n keys.forEach((key) => store.delete(key));\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Clear all values in the store.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction clear(customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n store.clear();\n return promisifyRequest(store.transaction);\n });\n}\nfunction eachCursor(store, callback) {\n store.openCursor().onsuccess = function () {\n if (!this.result)\n return;\n callback(this.result);\n this.result.continue();\n };\n return promisifyRequest(store.transaction);\n}\n/**\n * Get all keys in the store.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction keys(customStore = defaultGetStore()) {\n return customStore('readonly', (store) => {\n // Fast path for modern browsers\n if (store.getAllKeys) {\n return promisifyRequest(store.getAllKeys());\n }\n const items = [];\n return eachCursor(store, (cursor) => items.push(cursor.key)).then(() => items);\n });\n}\n/**\n * Get all values in the store.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction values(customStore = defaultGetStore()) {\n return customStore('readonly', (store) => {\n // Fast path for modern browsers\n if (store.getAll) {\n return promisifyRequest(store.getAll());\n }\n const items = [];\n return eachCursor(store, (cursor) => items.push(cursor.value)).then(() => items);\n });\n}\n/**\n * Get all entries in the store. Each entry is an array of `[key, value]`.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction entries(customStore = defaultGetStore()) {\n return customStore('readonly', (store) => {\n // Fast path for modern browsers\n // (although, hopefully we'll get a simpler path some day)\n if (store.getAll && store.getAllKeys) {\n return Promise.all([\n promisifyRequest(store.getAllKeys()),\n promisifyRequest(store.getAll()),\n ]).then(([keys, values]) => keys.map((key, i) => [key, values[i]]));\n }\n const items = [];\n return customStore('readonly', (store) => eachCursor(store, (cursor) => items.push([cursor.key, cursor.value])).then(() => items));\n });\n}\n\nexport { clear, createStore, del, delMany, entries, get, getMany, keys, promisifyRequest, set, setMany, update, values };\n","const JSONStringify = data => JSON.stringify(data, (_, value) => typeof value === \"bigint\" ? value.toString() + \"n\" : value);\nconst JSONParse = json => {\n const numbersBiggerThanMaxInt = /([\\[:])?(\\d{17,}|(?:[9](?:[1-9]07199254740991|0[1-9]7199254740991|00[8-9]199254740991|007[2-9]99254740991|007199[3-9]54740991|0071992[6-9]4740991|00719925[5-9]740991|007199254[8-9]40991|0071992547[5-9]0991|00719925474[1-9]991|00719925474099[2-9])))([,\\}\\]])/g;\n const serializedData = json.replace(numbersBiggerThanMaxInt, \"$1\\\"$2n\\\"$3\");\n return JSON.parse(serializedData, (_, value) => {\n const isCustomFormatBigInt = typeof value === \"string\" && value.match(/^\\d+n$/);\n if (isCustomFormatBigInt)\n return BigInt(value.substring(0, value.length - 1));\n return value;\n });\n};\nexport function safeJsonParse(value) {\n if (typeof value !== \"string\") {\n throw new Error(`Cannot safe json parse value of type ${typeof value}`);\n }\n try {\n return JSONParse(value);\n }\n catch (_a) {\n return value;\n }\n}\nexport function safeJsonStringify(value) {\n return typeof value === \"string\" ? value : JSONStringify(value) || \"\";\n}\n//# sourceMappingURL=index.js.map","import{createStorage as w}from\"unstorage\";import{createStore as I,get as u,set as p,del as b,keys as v,clear as S}from\"idb-keyval\";import{safeJsonStringify as g,safeJsonParse as d}from\"@walletconnect/safe-json\";function C(i){return i}const x=\"idb-keyval\";var z=(i={})=>{const t=i.base&&i.base.length>0?`${i.base}:`:\"\",e=s=>t+s;let n;return i.dbName&&i.storeName&&(n=I(i.dbName,i.storeName)),{name:x,options:i,async hasItem(s){return!(typeof await u(e(s),n)>\"u\")},async getItem(s){return await u(e(s),n)??null},setItem(s,a){return p(e(s),a,n)},removeItem(s){return b(e(s),n)},getKeys(){return v(n)},clear(){return S(n)}}};const D=\"WALLET_CONNECT_V2_INDEXED_DB\",E=\"keyvaluestorage\";class _{constructor(){this.indexedDb=w({driver:z({dbName:D,storeName:E})})}async getKeys(){return this.indexedDb.getKeys()}async getEntries(){return(await this.indexedDb.getItems(await this.indexedDb.getKeys())).map(t=>[t.key,t.value])}async getItem(t){const e=await this.indexedDb.getItem(t);if(e!==null)return e}async setItem(t,e){await this.indexedDb.setItem(t,g(e))}async removeItem(t){await this.indexedDb.removeItem(t)}}var l=typeof globalThis<\"u\"?globalThis:typeof window<\"u\"?window:typeof global<\"u\"?global:typeof self<\"u\"?self:{},c={exports:{}};(function(){let i;function t(){}i=t,i.prototype.getItem=function(e){return this.hasOwnProperty(e)?String(this[e]):null},i.prototype.setItem=function(e,n){this[e]=String(n)},i.prototype.removeItem=function(e){delete this[e]},i.prototype.clear=function(){const e=this;Object.keys(e).forEach(function(n){e[n]=void 0,delete e[n]})},i.prototype.key=function(e){return e=e||0,Object.keys(this)[e]},i.prototype.__defineGetter__(\"length\",function(){return Object.keys(this).length}),typeof l<\"u\"&&l.localStorage?c.exports=l.localStorage:typeof window<\"u\"&&window.localStorage?c.exports=window.localStorage:c.exports=new t})();function k(i){var t;return[i[0],d((t=i[1])!=null?t:\"\")]}class K{constructor(){this.localStorage=c.exports}async getKeys(){return Object.keys(this.localStorage)}async getEntries(){return Object.entries(this.localStorage).map(k)}async getItem(t){const e=this.localStorage.getItem(t);if(e!==null)return d(e)}async setItem(t,e){this.localStorage.setItem(t,g(e))}async removeItem(t){this.localStorage.removeItem(t)}}const N=\"wc_storage_version\",y=1,O=async(i,t,e)=>{const n=N,s=await t.getItem(n);if(s&&s>=y){e(t);return}const a=await i.getKeys();if(!a.length){e(t);return}const m=[];for(;a.length;){const r=a.shift();if(!r)continue;const o=r.toLowerCase();if(o.includes(\"wc@\")||o.includes(\"walletconnect\")||o.includes(\"wc_\")||o.includes(\"wallet_connect\")){const f=await i.getItem(r);await t.setItem(r,f),m.push(r)}}await t.setItem(n,y),e(t),j(i,m)},j=async(i,t)=>{t.length&&t.forEach(async e=>{await i.removeItem(e)})};class h{constructor(){this.initialized=!1,this.setInitialized=e=>{this.storage=e,this.initialized=!0};const t=new K;this.storage=t;try{const e=new _;O(t,e,this.setInitialized)}catch{this.initialized=!0}}async getKeys(){return await this.initialize(),this.storage.getKeys()}async getEntries(){return await this.initialize(),this.storage.getEntries()}async getItem(t){return await this.initialize(),this.storage.getItem(t)}async setItem(t,e){return await this.initialize(),this.storage.setItem(t,e)}async removeItem(t){return await this.initialize(),this.storage.removeItem(t)}async initialize(){this.initialized||await new Promise(t=>{const e=setInterval(()=>{this.initialized&&(clearInterval(e),t())},20)})}}export{h as KeyValueStorage,h as default};\n//# sourceMappingURL=index.es.js.map\n","'use strict'\n\nconst format = require('quick-format-unescaped')\n\nmodule.exports = pino\n\nconst _console = pfGlobalThisOrFallback().console || {}\nconst stdSerializers = {\n mapHttpRequest: mock,\n mapHttpResponse: mock,\n wrapRequestSerializer: passthrough,\n wrapResponseSerializer: passthrough,\n wrapErrorSerializer: passthrough,\n req: mock,\n res: mock,\n err: asErrValue\n}\n\nfunction shouldSerialize (serialize, serializers) {\n if (Array.isArray(serialize)) {\n const hasToFilter = serialize.filter(function (k) {\n return k !== '!stdSerializers.err'\n })\n return hasToFilter\n } else if (serialize === true) {\n return Object.keys(serializers)\n }\n\n return false\n}\n\nfunction pino (opts) {\n opts = opts || {}\n opts.browser = opts.browser || {}\n\n const transmit = opts.browser.transmit\n if (transmit && typeof transmit.send !== 'function') { throw Error('pino: transmit option must have a send function') }\n\n const proto = opts.browser.write || _console\n if (opts.browser.write) opts.browser.asObject = true\n const serializers = opts.serializers || {}\n const serialize = shouldSerialize(opts.browser.serialize, serializers)\n let stdErrSerialize = opts.browser.serialize\n\n if (\n Array.isArray(opts.browser.serialize) &&\n opts.browser.serialize.indexOf('!stdSerializers.err') > -1\n ) stdErrSerialize = false\n\n const levels = ['error', 'fatal', 'warn', 'info', 'debug', 'trace']\n\n if (typeof proto === 'function') {\n proto.error = proto.fatal = proto.warn =\n proto.info = proto.debug = proto.trace = proto\n }\n if (opts.enabled === false) opts.level = 'silent'\n const level = opts.level || 'info'\n const logger = Object.create(proto)\n if (!logger.log) logger.log = noop\n\n Object.defineProperty(logger, 'levelVal', {\n get: getLevelVal\n })\n Object.defineProperty(logger, 'level', {\n get: getLevel,\n set: setLevel\n })\n\n const setOpts = {\n transmit,\n serialize,\n asObject: opts.browser.asObject,\n levels,\n timestamp: getTimeFunction(opts)\n }\n logger.levels = pino.levels\n logger.level = level\n\n logger.setMaxListeners = logger.getMaxListeners =\n logger.emit = logger.addListener = logger.on =\n logger.prependListener = logger.once =\n logger.prependOnceListener = logger.removeListener =\n logger.removeAllListeners = logger.listeners =\n logger.listenerCount = logger.eventNames =\n logger.write = logger.flush = noop\n logger.serializers = serializers\n logger._serialize = serialize\n logger._stdErrSerialize = stdErrSerialize\n logger.child = child\n\n if (transmit) logger._logEvent = createLogEventShape()\n\n function getLevelVal () {\n return this.level === 'silent'\n ? Infinity\n : this.levels.values[this.level]\n }\n\n function getLevel () {\n return this._level\n }\n function setLevel (level) {\n if (level !== 'silent' && !this.levels.values[level]) {\n throw Error('unknown level ' + level)\n }\n this._level = level\n\n set(setOpts, logger, 'error', 'log') // <-- must stay first\n set(setOpts, logger, 'fatal', 'error')\n set(setOpts, logger, 'warn', 'error')\n set(setOpts, logger, 'info', 'log')\n set(setOpts, logger, 'debug', 'log')\n set(setOpts, logger, 'trace', 'log')\n }\n\n function child (bindings, childOptions) {\n if (!bindings) {\n throw new Error('missing bindings for child Pino')\n }\n childOptions = childOptions || {}\n if (serialize && bindings.serializers) {\n childOptions.serializers = bindings.serializers\n }\n const childOptionsSerializers = childOptions.serializers\n if (serialize && childOptionsSerializers) {\n var childSerializers = Object.assign({}, serializers, childOptionsSerializers)\n var childSerialize = opts.browser.serialize === true\n ? Object.keys(childSerializers)\n : serialize\n delete bindings.serializers\n applySerializers([bindings], childSerialize, childSerializers, this._stdErrSerialize)\n }\n function Child (parent) {\n this._childLevel = (parent._childLevel | 0) + 1\n this.error = bind(parent, bindings, 'error')\n this.fatal = bind(parent, bindings, 'fatal')\n this.warn = bind(parent, bindings, 'warn')\n this.info = bind(parent, bindings, 'info')\n this.debug = bind(parent, bindings, 'debug')\n this.trace = bind(parent, bindings, 'trace')\n if (childSerializers) {\n this.serializers = childSerializers\n this._serialize = childSerialize\n }\n if (transmit) {\n this._logEvent = createLogEventShape(\n [].concat(parent._logEvent.bindings, bindings)\n )\n }\n }\n Child.prototype = this\n return new Child(this)\n }\n return logger\n}\n\npino.levels = {\n values: {\n fatal: 60,\n error: 50,\n warn: 40,\n info: 30,\n debug: 20,\n trace: 10\n },\n labels: {\n 10: 'trace',\n 20: 'debug',\n 30: 'info',\n 40: 'warn',\n 50: 'error',\n 60: 'fatal'\n }\n}\n\npino.stdSerializers = stdSerializers\npino.stdTimeFunctions = Object.assign({}, { nullTime, epochTime, unixTime, isoTime })\n\nfunction set (opts, logger, level, fallback) {\n const proto = Object.getPrototypeOf(logger)\n logger[level] = logger.levelVal > logger.levels.values[level]\n ? noop\n : (proto[level] ? proto[level] : (_console[level] || _console[fallback] || noop))\n\n wrap(opts, logger, level)\n}\n\nfunction wrap (opts, logger, level) {\n if (!opts.transmit && logger[level] === noop) return\n\n logger[level] = (function (write) {\n return function LOG () {\n const ts = opts.timestamp()\n const args = new Array(arguments.length)\n const proto = (Object.getPrototypeOf && Object.getPrototypeOf(this) === _console) ? _console : this\n for (var i = 0; i < args.length; i++) args[i] = arguments[i]\n\n if (opts.serialize && !opts.asObject) {\n applySerializers(args, this._serialize, this.serializers, this._stdErrSerialize)\n }\n if (opts.asObject) write.call(proto, asObject(this, level, args, ts))\n else write.apply(proto, args)\n\n if (opts.transmit) {\n const transmitLevel = opts.transmit.level || logger.level\n const transmitValue = pino.levels.values[transmitLevel]\n const methodValue = pino.levels.values[level]\n if (methodValue < transmitValue) return\n transmit(this, {\n ts,\n methodLevel: level,\n methodValue,\n transmitLevel,\n transmitValue: pino.levels.values[opts.transmit.level || logger.level],\n send: opts.transmit.send,\n val: logger.levelVal\n }, args)\n }\n }\n })(logger[level])\n}\n\nfunction asObject (logger, level, args, ts) {\n if (logger._serialize) applySerializers(args, logger._serialize, logger.serializers, logger._stdErrSerialize)\n const argsCloned = args.slice()\n let msg = argsCloned[0]\n const o = {}\n if (ts) {\n o.time = ts\n }\n o.level = pino.levels.values[level]\n let lvl = (logger._childLevel | 0) + 1\n if (lvl < 1) lvl = 1\n // deliberate, catching objects, arrays\n if (msg !== null && typeof msg === 'object') {\n while (lvl-- && typeof argsCloned[0] === 'object') {\n Object.assign(o, argsCloned.shift())\n }\n msg = argsCloned.length ? format(argsCloned.shift(), argsCloned) : undefined\n } else if (typeof msg === 'string') msg = format(argsCloned.shift(), argsCloned)\n if (msg !== undefined) o.msg = msg\n return o\n}\n\nfunction applySerializers (args, serialize, serializers, stdErrSerialize) {\n for (const i in args) {\n if (stdErrSerialize && args[i] instanceof Error) {\n args[i] = pino.stdSerializers.err(args[i])\n } else if (typeof args[i] === 'object' && !Array.isArray(args[i])) {\n for (const k in args[i]) {\n if (serialize && serialize.indexOf(k) > -1 && k in serializers) {\n args[i][k] = serializers[k](args[i][k])\n }\n }\n }\n }\n}\n\nfunction bind (parent, bindings, level) {\n return function () {\n const args = new Array(1 + arguments.length)\n args[0] = bindings\n for (var i = 1; i < args.length; i++) {\n args[i] = arguments[i - 1]\n }\n return parent[level].apply(this, args)\n }\n}\n\nfunction transmit (logger, opts, args) {\n const send = opts.send\n const ts = opts.ts\n const methodLevel = opts.methodLevel\n const methodValue = opts.methodValue\n const val = opts.val\n const bindings = logger._logEvent.bindings\n\n applySerializers(\n args,\n logger._serialize || Object.keys(logger.serializers),\n logger.serializers,\n logger._stdErrSerialize === undefined ? true : logger._stdErrSerialize\n )\n logger._logEvent.ts = ts\n logger._logEvent.messages = args.filter(function (arg) {\n // bindings can only be objects, so reference equality check via indexOf is fine\n return bindings.indexOf(arg) === -1\n })\n\n logger._logEvent.level.label = methodLevel\n logger._logEvent.level.value = methodValue\n\n send(methodLevel, logger._logEvent, val)\n\n logger._logEvent = createLogEventShape(bindings)\n}\n\nfunction createLogEventShape (bindings) {\n return {\n ts: 0,\n messages: [],\n bindings: bindings || [],\n level: { label: '', value: 0 }\n }\n}\n\nfunction asErrValue (err) {\n const obj = {\n type: err.constructor.name,\n msg: err.message,\n stack: err.stack\n }\n for (const key in err) {\n if (obj[key] === undefined) {\n obj[key] = err[key]\n }\n }\n return obj\n}\n\nfunction getTimeFunction (opts) {\n if (typeof opts.timestamp === 'function') {\n return opts.timestamp\n }\n if (opts.timestamp === false) {\n return nullTime\n }\n return epochTime\n}\n\nfunction mock () { return {} }\nfunction passthrough (a) { return a }\nfunction noop () {}\n\nfunction nullTime () { return false }\nfunction epochTime () { return Date.now() }\nfunction unixTime () { return Math.round(Date.now() / 1000.0) }\nfunction isoTime () { return new Date(Date.now()).toISOString() } // using Date.now() for testability\n\n/* eslint-disable */\n/* istanbul ignore next */\nfunction pfGlobalThisOrFallback () {\n function defd (o) { return typeof o !== 'undefined' && o }\n try {\n if (typeof globalThis !== 'undefined') return globalThis\n Object.defineProperty(Object.prototype, 'globalThis', {\n get: function () {\n delete Object.prototype.globalThis\n return (this.globalThis = this)\n },\n configurable: true\n })\n return globalThis\n } catch (e) {\n return defd(self) || defd(window) || defd(this) || {}\n }\n}\n/* eslint-enable */\n","import h,{levels as s}from\"pino\";import{default as U}from\"pino\";import{safeJsonStringify as u}from\"@walletconnect/safe-json\";const c={level:\"info\"},n=\"custom_context\",l=1e3*1024;class O{constructor(e){this.nodeValue=e,this.sizeInBytes=new TextEncoder().encode(this.nodeValue).length,this.next=null}get value(){return this.nodeValue}get size(){return this.sizeInBytes}}class d{constructor(e){this.head=null,this.tail=null,this.lengthInNodes=0,this.maxSizeInBytes=e,this.sizeInBytes=0}append(e){const t=new O(e);if(t.size>this.maxSizeInBytes)throw new Error(`[LinkedList] Value too big to insert into list: ${e} with size ${t.size}`);for(;this.size+t.size>this.maxSizeInBytes;)this.shift();this.head?(this.tail&&(this.tail.next=t),this.tail=t):(this.head=t,this.tail=t),this.lengthInNodes++,this.sizeInBytes+=t.size}shift(){if(!this.head)return;const e=this.head;this.head=this.head.next,this.head||(this.tail=null),this.lengthInNodes--,this.sizeInBytes-=e.size}toArray(){const e=[];let t=this.head;for(;t!==null;)e.push(t.value),t=t.next;return e}get length(){return this.lengthInNodes}get size(){return this.sizeInBytes}toOrderedArray(){return Array.from(this)}[Symbol.iterator](){let e=this.head;return{next:()=>{if(!e)return{done:!0,value:null};const t=e.value;return e=e.next,{done:!1,value:t}}}}}class L{constructor(e,t=l){this.level=e??\"error\",this.levelValue=s.values[this.level],this.MAX_LOG_SIZE_IN_BYTES=t,this.logs=new d(this.MAX_LOG_SIZE_IN_BYTES)}forwardToConsole(e,t){t===s.values.error?console.error(e):t===s.values.warn?console.warn(e):t===s.values.debug?console.debug(e):t===s.values.trace?console.trace(e):console.log(e)}appendToLogs(e){this.logs.append(u({timestamp:new Date().toISOString(),log:e}));const t=typeof e==\"string\"?JSON.parse(e).level:e.level;t>=this.levelValue&&this.forwardToConsole(e,t)}getLogs(){return this.logs}clearLogs(){this.logs=new d(this.MAX_LOG_SIZE_IN_BYTES)}getLogArray(){return Array.from(this.logs)}logsToBlob(e){const t=this.getLogArray();return t.push(u({extraMetadata:e})),new Blob(t,{type:\"application/json\"})}}class m{constructor(e,t=l){this.baseChunkLogger=new L(e,t)}write(e){this.baseChunkLogger.appendToLogs(e)}getLogs(){return this.baseChunkLogger.getLogs()}clearLogs(){this.baseChunkLogger.clearLogs()}getLogArray(){return this.baseChunkLogger.getLogArray()}logsToBlob(e){return this.baseChunkLogger.logsToBlob(e)}downloadLogsBlobInBrowser(e){const t=URL.createObjectURL(this.logsToBlob(e)),o=document.createElement(\"a\");o.href=t,o.download=`walletconnect-logs-${new Date().toISOString()}.txt`,document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(t)}}class B{constructor(e,t=l){this.baseChunkLogger=new L(e,t)}write(e){this.baseChunkLogger.appendToLogs(e)}getLogs(){return this.baseChunkLogger.getLogs()}clearLogs(){this.baseChunkLogger.clearLogs()}getLogArray(){return this.baseChunkLogger.getLogArray()}logsToBlob(e){return this.baseChunkLogger.logsToBlob(e)}}var x=Object.defineProperty,S=Object.defineProperties,_=Object.getOwnPropertyDescriptors,p=Object.getOwnPropertySymbols,T=Object.prototype.hasOwnProperty,z=Object.prototype.propertyIsEnumerable,f=(r,e,t)=>e in r?x(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,i=(r,e)=>{for(var t in e||(e={}))T.call(e,t)&&f(r,t,e[t]);if(p)for(var t of p(e))z.call(e,t)&&f(r,t,e[t]);return r},g=(r,e)=>S(r,_(e));function k(r){return g(i({},r),{level:r?.level||c.level})}function v(r,e=n){return r[e]||\"\"}function b(r,e,t=n){return r[t]=e,r}function y(r,e=n){let t=\"\";return typeof r.bindings>\"u\"?t=v(r,e):t=r.bindings().context||\"\",t}function w(r,e,t=n){const o=y(r,t);return o.trim()?`${o}/${e}`:e}function E(r,e,t=n){const o=w(r,e,t),a=r.child({context:o});return b(a,o,t)}function C(r){var e,t;const o=new m((e=r.opts)==null?void 0:e.level,r.maxSizeInBytes);return{logger:h(g(i({},r.opts),{level:\"trace\",browser:g(i({},(t=r.opts)==null?void 0:t.browser),{write:a=>o.write(a)})})),chunkLoggerController:o}}function I(r){var e;const t=new B((e=r.opts)==null?void 0:e.level,r.maxSizeInBytes);return{logger:h(g(i({},r.opts),{level:\"trace\"}),t),chunkLoggerController:t}}function A(r){return typeof r.loggerOverride<\"u\"&&typeof r.loggerOverride!=\"string\"?{logger:r.loggerOverride,chunkLoggerController:null}:typeof window<\"u\"?C(r):I(r)}export{l as MAX_LOG_SIZE_IN_BYTES_DEFAULT,n as PINO_CUSTOM_CONTEXT_KEY,c as PINO_LOGGER_DEFAULTS,w as formatChildLoggerContext,E as generateChildLogger,C as generateClientLogger,A as generatePlatformLogger,I as generateServerLogger,v as getBrowserLoggerContext,k as getDefaultLoggerOptions,y as getLoggerContext,U as pino,b as setBrowserLoggerContext};\n//# sourceMappingURL=index.es.js.map\n","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BrowserRandomSource = void 0;\nconst QUOTA = 65536;\nclass BrowserRandomSource {\n constructor() {\n this.isAvailable = false;\n this.isInstantiated = false;\n const browserCrypto = typeof self !== 'undefined'\n ? (self.crypto || self.msCrypto) // IE11 has msCrypto\n : null;\n if (browserCrypto && browserCrypto.getRandomValues !== undefined) {\n this._crypto = browserCrypto;\n this.isAvailable = true;\n this.isInstantiated = true;\n }\n }\n randomBytes(length) {\n if (!this.isAvailable || !this._crypto) {\n throw new Error(\"Browser random byte generator is not available.\");\n }\n const out = new Uint8Array(length);\n for (let i = 0; i < out.length; i += QUOTA) {\n this._crypto.getRandomValues(out.subarray(i, i + Math.min(out.length - i, QUOTA)));\n }\n return out;\n }\n}\nexports.BrowserRandomSource = BrowserRandomSource;\n//# sourceMappingURL=browser.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Sets all values in the given array to zero and returns it.\n *\n * The fact that it sets bytes to zero can be relied on.\n *\n * There is no guarantee that this function makes data disappear from memory,\n * as runtime implementation can, for example, have copying garbage collector\n * that will make copies of sensitive data before we wipe it. Or that an\n * operating system will write our data to swap or sleep image. Another thing\n * is that an optimizing compiler can remove calls to this function or make it\n * no-op. There's nothing we can do with it, so we just do our best and hope\n * that everything will be okay and good will triumph over evil.\n */\nfunction wipe(array) {\n // Right now it's similar to array.fill(0). If it turns\n // out that runtimes optimize this call away, maybe\n // we can try something else.\n for (var i = 0; i < array.length; i++) {\n array[i] = 0;\n }\n return array;\n}\nexports.wipe = wipe;\n//# sourceMappingURL=wipe.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeRandomSource = void 0;\nconst wipe_1 = require(\"@stablelib/wipe\");\nclass NodeRandomSource {\n constructor() {\n this.isAvailable = false;\n this.isInstantiated = false;\n if (typeof require !== \"undefined\") {\n const nodeCrypto = require(\"crypto\");\n if (nodeCrypto && nodeCrypto.randomBytes) {\n this._crypto = nodeCrypto;\n this.isAvailable = true;\n this.isInstantiated = true;\n }\n }\n }\n randomBytes(length) {\n if (!this.isAvailable || !this._crypto) {\n throw new Error(\"Node.js random byte generator is not available.\");\n }\n // Get random bytes (result is Buffer).\n let buffer = this._crypto.randomBytes(length);\n // Make sure we got the length that we requested.\n if (buffer.length !== length) {\n throw new Error(\"NodeRandomSource: got fewer bytes than requested\");\n }\n // Allocate output array.\n const out = new Uint8Array(length);\n // Copy bytes from buffer to output.\n for (let i = 0; i < out.length; i++) {\n out[i] = buffer[i];\n }\n // Cleanup.\n (0, wipe_1.wipe)(buffer);\n return out;\n }\n}\nexports.NodeRandomSource = NodeRandomSource;\n//# sourceMappingURL=node.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SystemRandomSource = void 0;\nconst browser_1 = require(\"./browser\");\nconst node_1 = require(\"./node\");\nclass SystemRandomSource {\n constructor() {\n this.isAvailable = false;\n this.name = \"\";\n // Try browser.\n this._source = new browser_1.BrowserRandomSource();\n if (this._source.isAvailable) {\n this.isAvailable = true;\n this.name = \"Browser\";\n return;\n }\n // If no browser source, try Node.\n this._source = new node_1.NodeRandomSource();\n if (this._source.isAvailable) {\n this.isAvailable = true;\n this.name = \"Node\";\n return;\n }\n // No sources, we're out of options.\n }\n randomBytes(length) {\n if (!this.isAvailable) {\n throw new Error(\"System random byte generator is not available.\");\n }\n return this._source.randomBytes(length);\n }\n}\nexports.SystemRandomSource = SystemRandomSource;\n//# sourceMappingURL=system.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Package int provides helper functions for integerss.\n */\n// Shim using 16-bit pieces.\nfunction imulShim(a, b) {\n var ah = (a >>> 16) & 0xffff, al = a & 0xffff;\n var bh = (b >>> 16) & 0xffff, bl = b & 0xffff;\n return ((al * bl) + (((ah * bl + al * bh) << 16) >>> 0) | 0);\n}\n/** 32-bit integer multiplication. */\n// Use system Math.imul if available, otherwise use our shim.\nexports.mul = Math.imul || imulShim;\n/** 32-bit integer addition. */\nfunction add(a, b) {\n return (a + b) | 0;\n}\nexports.add = add;\n/** 32-bit integer subtraction. */\nfunction sub(a, b) {\n return (a - b) | 0;\n}\nexports.sub = sub;\n/** 32-bit integer left rotation */\nfunction rotl(x, n) {\n return x << n | x >>> (32 - n);\n}\nexports.rotl = rotl;\n/** 32-bit integer left rotation */\nfunction rotr(x, n) {\n return x << (32 - n) | x >>> n;\n}\nexports.rotr = rotr;\nfunction isIntegerShim(n) {\n return typeof n === \"number\" && isFinite(n) && Math.floor(n) === n;\n}\n/**\n * Returns true if the argument is an integer number.\n *\n * In ES2015, Number.isInteger.\n */\nexports.isInteger = Number.isInteger || isIntegerShim;\n/**\n * Math.pow(2, 53) - 1\n *\n * In ES2015 Number.MAX_SAFE_INTEGER.\n */\nexports.MAX_SAFE_INTEGER = 9007199254740991;\n/**\n * Returns true if the argument is a safe integer number\n * (-MIN_SAFE_INTEGER < number <= MAX_SAFE_INTEGER)\n *\n * In ES2015, Number.isSafeInteger.\n */\nexports.isSafeInteger = function (n) {\n return exports.isInteger(n) && (n >= -exports.MAX_SAFE_INTEGER && n <= exports.MAX_SAFE_INTEGER);\n};\n//# sourceMappingURL=int.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Package binary provides functions for encoding and decoding numbers in byte arrays.\n */\nvar int_1 = require(\"@stablelib/int\");\n// TODO(dchest): add asserts for correct value ranges and array offsets.\n/**\n * Reads 2 bytes from array starting at offset as big-endian\n * signed 16-bit integer and returns it.\n */\nfunction readInt16BE(array, offset) {\n if (offset === void 0) { offset = 0; }\n return (((array[offset + 0] << 8) | array[offset + 1]) << 16) >> 16;\n}\nexports.readInt16BE = readInt16BE;\n/**\n * Reads 2 bytes from array starting at offset as big-endian\n * unsigned 16-bit integer and returns it.\n */\nfunction readUint16BE(array, offset) {\n if (offset === void 0) { offset = 0; }\n return ((array[offset + 0] << 8) | array[offset + 1]) >>> 0;\n}\nexports.readUint16BE = readUint16BE;\n/**\n * Reads 2 bytes from array starting at offset as little-endian\n * signed 16-bit integer and returns it.\n */\nfunction readInt16LE(array, offset) {\n if (offset === void 0) { offset = 0; }\n return (((array[offset + 1] << 8) | array[offset]) << 16) >> 16;\n}\nexports.readInt16LE = readInt16LE;\n/**\n * Reads 2 bytes from array starting at offset as little-endian\n * unsigned 16-bit integer and returns it.\n */\nfunction readUint16LE(array, offset) {\n if (offset === void 0) { offset = 0; }\n return ((array[offset + 1] << 8) | array[offset]) >>> 0;\n}\nexports.readUint16LE = readUint16LE;\n/**\n * Writes 2-byte big-endian representation of 16-bit unsigned\n * value to byte array starting at offset.\n *\n * If byte array is not given, creates a new 2-byte one.\n *\n * Returns the output byte array.\n */\nfunction writeUint16BE(value, out, offset) {\n if (out === void 0) { out = new Uint8Array(2); }\n if (offset === void 0) { offset = 0; }\n out[offset + 0] = value >>> 8;\n out[offset + 1] = value >>> 0;\n return out;\n}\nexports.writeUint16BE = writeUint16BE;\nexports.writeInt16BE = writeUint16BE;\n/**\n * Writes 2-byte little-endian representation of 16-bit unsigned\n * value to array starting at offset.\n *\n * If byte array is not given, creates a new 2-byte one.\n *\n * Returns the output byte array.\n */\nfunction writeUint16LE(value, out, offset) {\n if (out === void 0) { out = new Uint8Array(2); }\n if (offset === void 0) { offset = 0; }\n out[offset + 0] = value >>> 0;\n out[offset + 1] = value >>> 8;\n return out;\n}\nexports.writeUint16LE = writeUint16LE;\nexports.writeInt16LE = writeUint16LE;\n/**\n * Reads 4 bytes from array starting at offset as big-endian\n * signed 32-bit integer and returns it.\n */\nfunction readInt32BE(array, offset) {\n if (offset === void 0) { offset = 0; }\n return (array[offset] << 24) |\n (array[offset + 1] << 16) |\n (array[offset + 2] << 8) |\n array[offset + 3];\n}\nexports.readInt32BE = readInt32BE;\n/**\n * Reads 4 bytes from array starting at offset as big-endian\n * unsigned 32-bit integer and returns it.\n */\nfunction readUint32BE(array, offset) {\n if (offset === void 0) { offset = 0; }\n return ((array[offset] << 24) |\n (array[offset + 1] << 16) |\n (array[offset + 2] << 8) |\n array[offset + 3]) >>> 0;\n}\nexports.readUint32BE = readUint32BE;\n/**\n * Reads 4 bytes from array starting at offset as little-endian\n * signed 32-bit integer and returns it.\n */\nfunction readInt32LE(array, offset) {\n if (offset === void 0) { offset = 0; }\n return (array[offset + 3] << 24) |\n (array[offset + 2] << 16) |\n (array[offset + 1] << 8) |\n array[offset];\n}\nexports.readInt32LE = readInt32LE;\n/**\n * Reads 4 bytes from array starting at offset as little-endian\n * unsigned 32-bit integer and returns it.\n */\nfunction readUint32LE(array, offset) {\n if (offset === void 0) { offset = 0; }\n return ((array[offset + 3] << 24) |\n (array[offset + 2] << 16) |\n (array[offset + 1] << 8) |\n array[offset]) >>> 0;\n}\nexports.readUint32LE = readUint32LE;\n/**\n * Writes 4-byte big-endian representation of 32-bit unsigned\n * value to byte array starting at offset.\n *\n * If byte array is not given, creates a new 4-byte one.\n *\n * Returns the output byte array.\n */\nfunction writeUint32BE(value, out, offset) {\n if (out === void 0) { out = new Uint8Array(4); }\n if (offset === void 0) { offset = 0; }\n out[offset + 0] = value >>> 24;\n out[offset + 1] = value >>> 16;\n out[offset + 2] = value >>> 8;\n out[offset + 3] = value >>> 0;\n return out;\n}\nexports.writeUint32BE = writeUint32BE;\nexports.writeInt32BE = writeUint32BE;\n/**\n * Writes 4-byte little-endian representation of 32-bit unsigned\n * value to array starting at offset.\n *\n * If byte array is not given, creates a new 4-byte one.\n *\n * Returns the output byte array.\n */\nfunction writeUint32LE(value, out, offset) {\n if (out === void 0) { out = new Uint8Array(4); }\n if (offset === void 0) { offset = 0; }\n out[offset + 0] = value >>> 0;\n out[offset + 1] = value >>> 8;\n out[offset + 2] = value >>> 16;\n out[offset + 3] = value >>> 24;\n return out;\n}\nexports.writeUint32LE = writeUint32LE;\nexports.writeInt32LE = writeUint32LE;\n/**\n * Reads 8 bytes from array starting at offset as big-endian\n * signed 64-bit integer and returns it.\n *\n * IMPORTANT: due to JavaScript limitation, supports exact\n * numbers in range -9007199254740991 to 9007199254740991.\n * If the number stored in the byte array is outside this range,\n * the result is not exact.\n */\nfunction readInt64BE(array, offset) {\n if (offset === void 0) { offset = 0; }\n var hi = readInt32BE(array, offset);\n var lo = readInt32BE(array, offset + 4);\n return hi * 0x100000000 + lo - ((lo >> 31) * 0x100000000);\n}\nexports.readInt64BE = readInt64BE;\n/**\n * Reads 8 bytes from array starting at offset as big-endian\n * unsigned 64-bit integer and returns it.\n *\n * IMPORTANT: due to JavaScript limitation, supports values up to 2^53-1.\n */\nfunction readUint64BE(array, offset) {\n if (offset === void 0) { offset = 0; }\n var hi = readUint32BE(array, offset);\n var lo = readUint32BE(array, offset + 4);\n return hi * 0x100000000 + lo;\n}\nexports.readUint64BE = readUint64BE;\n/**\n * Reads 8 bytes from array starting at offset as little-endian\n * signed 64-bit integer and returns it.\n *\n * IMPORTANT: due to JavaScript limitation, supports exact\n * numbers in range -9007199254740991 to 9007199254740991.\n * If the number stored in the byte array is outside this range,\n * the result is not exact.\n */\nfunction readInt64LE(array, offset) {\n if (offset === void 0) { offset = 0; }\n var lo = readInt32LE(array, offset);\n var hi = readInt32LE(array, offset + 4);\n return hi * 0x100000000 + lo - ((lo >> 31) * 0x100000000);\n}\nexports.readInt64LE = readInt64LE;\n/**\n * Reads 8 bytes from array starting at offset as little-endian\n * unsigned 64-bit integer and returns it.\n *\n * IMPORTANT: due to JavaScript limitation, supports values up to 2^53-1.\n */\nfunction readUint64LE(array, offset) {\n if (offset === void 0) { offset = 0; }\n var lo = readUint32LE(array, offset);\n var hi = readUint32LE(array, offset + 4);\n return hi * 0x100000000 + lo;\n}\nexports.readUint64LE = readUint64LE;\n/**\n * Writes 8-byte big-endian representation of 64-bit unsigned\n * value to byte array starting at offset.\n *\n * Due to JavaScript limitation, supports values up to 2^53-1.\n *\n * If byte array is not given, creates a new 8-byte one.\n *\n * Returns the output byte array.\n */\nfunction writeUint64BE(value, out, offset) {\n if (out === void 0) { out = new Uint8Array(8); }\n if (offset === void 0) { offset = 0; }\n writeUint32BE(value / 0x100000000 >>> 0, out, offset);\n writeUint32BE(value >>> 0, out, offset + 4);\n return out;\n}\nexports.writeUint64BE = writeUint64BE;\nexports.writeInt64BE = writeUint64BE;\n/**\n * Writes 8-byte little-endian representation of 64-bit unsigned\n * value to byte array starting at offset.\n *\n * Due to JavaScript limitation, supports values up to 2^53-1.\n *\n * If byte array is not given, creates a new 8-byte one.\n *\n * Returns the output byte array.\n */\nfunction writeUint64LE(value, out, offset) {\n if (out === void 0) { out = new Uint8Array(8); }\n if (offset === void 0) { offset = 0; }\n writeUint32LE(value >>> 0, out, offset);\n writeUint32LE(value / 0x100000000 >>> 0, out, offset + 4);\n return out;\n}\nexports.writeUint64LE = writeUint64LE;\nexports.writeInt64LE = writeUint64LE;\n/**\n * Reads bytes from array starting at offset as big-endian\n * unsigned bitLen-bit integer and returns it.\n *\n * Supports bit lengths divisible by 8, up to 48.\n */\nfunction readUintBE(bitLength, array, offset) {\n if (offset === void 0) { offset = 0; }\n // TODO(dchest): implement support for bitLengths non-divisible by 8\n if (bitLength % 8 !== 0) {\n throw new Error(\"readUintBE supports only bitLengths divisible by 8\");\n }\n if (bitLength / 8 > array.length - offset) {\n throw new Error(\"readUintBE: array is too short for the given bitLength\");\n }\n var result = 0;\n var mul = 1;\n for (var i = bitLength / 8 + offset - 1; i >= offset; i--) {\n result += array[i] * mul;\n mul *= 256;\n }\n return result;\n}\nexports.readUintBE = readUintBE;\n/**\n * Reads bytes from array starting at offset as little-endian\n * unsigned bitLen-bit integer and returns it.\n *\n * Supports bit lengths divisible by 8, up to 48.\n */\nfunction readUintLE(bitLength, array, offset) {\n if (offset === void 0) { offset = 0; }\n // TODO(dchest): implement support for bitLengths non-divisible by 8\n if (bitLength % 8 !== 0) {\n throw new Error(\"readUintLE supports only bitLengths divisible by 8\");\n }\n if (bitLength / 8 > array.length - offset) {\n throw new Error(\"readUintLE: array is too short for the given bitLength\");\n }\n var result = 0;\n var mul = 1;\n for (var i = offset; i < offset + bitLength / 8; i++) {\n result += array[i] * mul;\n mul *= 256;\n }\n return result;\n}\nexports.readUintLE = readUintLE;\n/**\n * Writes a big-endian representation of bitLen-bit unsigned\n * value to array starting at offset.\n *\n * Supports bit lengths divisible by 8, up to 48.\n *\n * If byte array is not given, creates a new one.\n *\n * Returns the output byte array.\n */\nfunction writeUintBE(bitLength, value, out, offset) {\n if (out === void 0) { out = new Uint8Array(bitLength / 8); }\n if (offset === void 0) { offset = 0; }\n // TODO(dchest): implement support for bitLengths non-divisible by 8\n if (bitLength % 8 !== 0) {\n throw new Error(\"writeUintBE supports only bitLengths divisible by 8\");\n }\n if (!int_1.isSafeInteger(value)) {\n throw new Error(\"writeUintBE value must be an integer\");\n }\n var div = 1;\n for (var i = bitLength / 8 + offset - 1; i >= offset; i--) {\n out[i] = (value / div) & 0xff;\n div *= 256;\n }\n return out;\n}\nexports.writeUintBE = writeUintBE;\n/**\n * Writes a little-endian representation of bitLen-bit unsigned\n * value to array starting at offset.\n *\n * Supports bit lengths divisible by 8, up to 48.\n *\n * If byte array is not given, creates a new one.\n *\n * Returns the output byte array.\n */\nfunction writeUintLE(bitLength, value, out, offset) {\n if (out === void 0) { out = new Uint8Array(bitLength / 8); }\n if (offset === void 0) { offset = 0; }\n // TODO(dchest): implement support for bitLengths non-divisible by 8\n if (bitLength % 8 !== 0) {\n throw new Error(\"writeUintLE supports only bitLengths divisible by 8\");\n }\n if (!int_1.isSafeInteger(value)) {\n throw new Error(\"writeUintLE value must be an integer\");\n }\n var div = 1;\n for (var i = offset; i < offset + bitLength / 8; i++) {\n out[i] = (value / div) & 0xff;\n div *= 256;\n }\n return out;\n}\nexports.writeUintLE = writeUintLE;\n/**\n * Reads 4 bytes from array starting at offset as big-endian\n * 32-bit floating-point number and returns it.\n */\nfunction readFloat32BE(array, offset) {\n if (offset === void 0) { offset = 0; }\n var view = new DataView(array.buffer, array.byteOffset, array.byteLength);\n return view.getFloat32(offset);\n}\nexports.readFloat32BE = readFloat32BE;\n/**\n * Reads 4 bytes from array starting at offset as little-endian\n * 32-bit floating-point number and returns it.\n */\nfunction readFloat32LE(array, offset) {\n if (offset === void 0) { offset = 0; }\n var view = new DataView(array.buffer, array.byteOffset, array.byteLength);\n return view.getFloat32(offset, true);\n}\nexports.readFloat32LE = readFloat32LE;\n/**\n * Reads 8 bytes from array starting at offset as big-endian\n * 64-bit floating-point number (\"double\") and returns it.\n */\nfunction readFloat64BE(array, offset) {\n if (offset === void 0) { offset = 0; }\n var view = new DataView(array.buffer, array.byteOffset, array.byteLength);\n return view.getFloat64(offset);\n}\nexports.readFloat64BE = readFloat64BE;\n/**\n * Reads 8 bytes from array starting at offset as little-endian\n * 64-bit floating-point number (\"double\") and returns it.\n */\nfunction readFloat64LE(array, offset) {\n if (offset === void 0) { offset = 0; }\n var view = new DataView(array.buffer, array.byteOffset, array.byteLength);\n return view.getFloat64(offset, true);\n}\nexports.readFloat64LE = readFloat64LE;\n/**\n * Writes 4-byte big-endian floating-point representation of value\n * to byte array starting at offset.\n *\n * If byte array is not given, creates a new 4-byte one.\n *\n * Returns the output byte array.\n */\nfunction writeFloat32BE(value, out, offset) {\n if (out === void 0) { out = new Uint8Array(4); }\n if (offset === void 0) { offset = 0; }\n var view = new DataView(out.buffer, out.byteOffset, out.byteLength);\n view.setFloat32(offset, value);\n return out;\n}\nexports.writeFloat32BE = writeFloat32BE;\n/**\n * Writes 4-byte little-endian floating-point representation of value\n * to byte array starting at offset.\n *\n * If byte array is not given, creates a new 4-byte one.\n *\n * Returns the output byte array.\n */\nfunction writeFloat32LE(value, out, offset) {\n if (out === void 0) { out = new Uint8Array(4); }\n if (offset === void 0) { offset = 0; }\n var view = new DataView(out.buffer, out.byteOffset, out.byteLength);\n view.setFloat32(offset, value, true);\n return out;\n}\nexports.writeFloat32LE = writeFloat32LE;\n/**\n * Writes 8-byte big-endian floating-point representation of value\n * to byte array starting at offset.\n *\n * If byte array is not given, creates a new 8-byte one.\n *\n * Returns the output byte array.\n */\nfunction writeFloat64BE(value, out, offset) {\n if (out === void 0) { out = new Uint8Array(8); }\n if (offset === void 0) { offset = 0; }\n var view = new DataView(out.buffer, out.byteOffset, out.byteLength);\n view.setFloat64(offset, value);\n return out;\n}\nexports.writeFloat64BE = writeFloat64BE;\n/**\n * Writes 8-byte little-endian floating-point representation of value\n * to byte array starting at offset.\n *\n * If byte array is not given, creates a new 8-byte one.\n *\n * Returns the output byte array.\n */\nfunction writeFloat64LE(value, out, offset) {\n if (out === void 0) { out = new Uint8Array(8); }\n if (offset === void 0) { offset = 0; }\n var view = new DataView(out.buffer, out.byteOffset, out.byteLength);\n view.setFloat64(offset, value, true);\n return out;\n}\nexports.writeFloat64LE = writeFloat64LE;\n//# sourceMappingURL=binary.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.randomStringForEntropy = exports.randomString = exports.randomUint32 = exports.randomBytes = exports.defaultRandomSource = void 0;\nconst system_1 = require(\"./source/system\");\nconst binary_1 = require(\"@stablelib/binary\");\nconst wipe_1 = require(\"@stablelib/wipe\");\nexports.defaultRandomSource = new system_1.SystemRandomSource();\nfunction randomBytes(length, prng = exports.defaultRandomSource) {\n return prng.randomBytes(length);\n}\nexports.randomBytes = randomBytes;\n/**\n * Returns a uniformly random unsigned 32-bit integer.\n */\nfunction randomUint32(prng = exports.defaultRandomSource) {\n // Generate 4-byte random buffer.\n const buf = randomBytes(4, prng);\n // Convert bytes from buffer into a 32-bit integer.\n // It's not important which byte order to use, since\n // the result is random.\n const result = (0, binary_1.readUint32LE)(buf);\n // Clean the buffer.\n (0, wipe_1.wipe)(buf);\n return result;\n}\nexports.randomUint32 = randomUint32;\n/** 62 alphanumeric characters for default charset of randomString() */\nconst ALPHANUMERIC = \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\";\n/**\n * Returns a uniform random string of the given length\n * with characters from the given charset.\n *\n * Charset must not have more than 256 characters.\n *\n * Default charset generates case-sensitive alphanumeric\n * strings (0-9, A-Z, a-z).\n */\nfunction randomString(length, charset = ALPHANUMERIC, prng = exports.defaultRandomSource) {\n if (charset.length < 2) {\n throw new Error(\"randomString charset is too short\");\n }\n if (charset.length > 256) {\n throw new Error(\"randomString charset is too long\");\n }\n let out = '';\n const charsLen = charset.length;\n const maxByte = 256 - (256 % charsLen);\n while (length > 0) {\n const buf = randomBytes(Math.ceil(length * 256 / maxByte), prng);\n for (let i = 0; i < buf.length && length > 0; i++) {\n const randomByte = buf[i];\n if (randomByte < maxByte) {\n out += charset.charAt(randomByte % charsLen);\n length--;\n }\n }\n (0, wipe_1.wipe)(buf);\n }\n return out;\n}\nexports.randomString = randomString;\n/**\n * Returns uniform random string containing at least the given\n * number of bits of entropy.\n *\n * For example, randomStringForEntropy(128) will return a 22-character\n * alphanumeric string, while randomStringForEntropy(128, \"0123456789\")\n * will return a 39-character numeric string, both will contain at\n * least 128 bits of entropy.\n *\n * Default charset generates case-sensitive alphanumeric\n * strings (0-9, A-Z, a-z).\n */\nfunction randomStringForEntropy(bits, charset = ALPHANUMERIC, prng = exports.defaultRandomSource) {\n const length = Math.ceil(bits / (Math.log(charset.length) / Math.LN2));\n return randomString(length, charset, prng);\n}\nexports.randomStringForEntropy = randomStringForEntropy;\n//# sourceMappingURL=random.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar binary_1 = require(\"@stablelib/binary\");\nvar wipe_1 = require(\"@stablelib/wipe\");\nexports.DIGEST_LENGTH = 64;\nexports.BLOCK_SIZE = 128;\n/**\n * SHA-2-512 cryptographic hash algorithm.\n */\nvar SHA512 = /** @class */ (function () {\n function SHA512() {\n /** Length of hash output */\n this.digestLength = exports.DIGEST_LENGTH;\n /** Block size */\n this.blockSize = exports.BLOCK_SIZE;\n // Note: Int32Array is used instead of Uint32Array for performance reasons.\n this._stateHi = new Int32Array(8); // hash state, high bytes\n this._stateLo = new Int32Array(8); // hash state, low bytes\n this._tempHi = new Int32Array(16); // temporary state, high bytes\n this._tempLo = new Int32Array(16); // temporary state, low bytes\n this._buffer = new Uint8Array(256); // buffer for data to hash\n this._bufferLength = 0; // number of bytes in buffer\n this._bytesHashed = 0; // number of total bytes hashed\n this._finished = false; // indicates whether the hash was finalized\n this.reset();\n }\n SHA512.prototype._initState = function () {\n this._stateHi[0] = 0x6a09e667;\n this._stateHi[1] = 0xbb67ae85;\n this._stateHi[2] = 0x3c6ef372;\n this._stateHi[3] = 0xa54ff53a;\n this._stateHi[4] = 0x510e527f;\n this._stateHi[5] = 0x9b05688c;\n this._stateHi[6] = 0x1f83d9ab;\n this._stateHi[7] = 0x5be0cd19;\n this._stateLo[0] = 0xf3bcc908;\n this._stateLo[1] = 0x84caa73b;\n this._stateLo[2] = 0xfe94f82b;\n this._stateLo[3] = 0x5f1d36f1;\n this._stateLo[4] = 0xade682d1;\n this._stateLo[5] = 0x2b3e6c1f;\n this._stateLo[6] = 0xfb41bd6b;\n this._stateLo[7] = 0x137e2179;\n };\n /**\n * Resets hash state making it possible\n * to re-use this instance to hash other data.\n */\n SHA512.prototype.reset = function () {\n this._initState();\n this._bufferLength = 0;\n this._bytesHashed = 0;\n this._finished = false;\n return this;\n };\n /**\n * Cleans internal buffers and resets hash state.\n */\n SHA512.prototype.clean = function () {\n wipe_1.wipe(this._buffer);\n wipe_1.wipe(this._tempHi);\n wipe_1.wipe(this._tempLo);\n this.reset();\n };\n /**\n * Updates hash state with the given data.\n *\n * Throws error when trying to update already finalized hash:\n * instance must be reset to update it again.\n */\n SHA512.prototype.update = function (data, dataLength) {\n if (dataLength === void 0) { dataLength = data.length; }\n if (this._finished) {\n throw new Error(\"SHA512: can't update because hash was finished.\");\n }\n var dataPos = 0;\n this._bytesHashed += dataLength;\n if (this._bufferLength > 0) {\n while (this._bufferLength < exports.BLOCK_SIZE && dataLength > 0) {\n this._buffer[this._bufferLength++] = data[dataPos++];\n dataLength--;\n }\n if (this._bufferLength === this.blockSize) {\n hashBlocks(this._tempHi, this._tempLo, this._stateHi, this._stateLo, this._buffer, 0, this.blockSize);\n this._bufferLength = 0;\n }\n }\n if (dataLength >= this.blockSize) {\n dataPos = hashBlocks(this._tempHi, this._tempLo, this._stateHi, this._stateLo, data, dataPos, dataLength);\n dataLength %= this.blockSize;\n }\n while (dataLength > 0) {\n this._buffer[this._bufferLength++] = data[dataPos++];\n dataLength--;\n }\n return this;\n };\n /**\n * Finalizes hash state and puts hash into out.\n * If hash was already finalized, puts the same value.\n */\n SHA512.prototype.finish = function (out) {\n if (!this._finished) {\n var bytesHashed = this._bytesHashed;\n var left = this._bufferLength;\n var bitLenHi = (bytesHashed / 0x20000000) | 0;\n var bitLenLo = bytesHashed << 3;\n var padLength = (bytesHashed % 128 < 112) ? 128 : 256;\n this._buffer[left] = 0x80;\n for (var i = left + 1; i < padLength - 8; i++) {\n this._buffer[i] = 0;\n }\n binary_1.writeUint32BE(bitLenHi, this._buffer, padLength - 8);\n binary_1.writeUint32BE(bitLenLo, this._buffer, padLength - 4);\n hashBlocks(this._tempHi, this._tempLo, this._stateHi, this._stateLo, this._buffer, 0, padLength);\n this._finished = true;\n }\n for (var i = 0; i < this.digestLength / 8; i++) {\n binary_1.writeUint32BE(this._stateHi[i], out, i * 8);\n binary_1.writeUint32BE(this._stateLo[i], out, i * 8 + 4);\n }\n return this;\n };\n /**\n * Returns the final hash digest.\n */\n SHA512.prototype.digest = function () {\n var out = new Uint8Array(this.digestLength);\n this.finish(out);\n return out;\n };\n /**\n * Function useful for HMAC/PBKDF2 optimization. Returns hash state to be\n * used with restoreState(). Only chain value is saved, not buffers or\n * other state variables.\n */\n SHA512.prototype.saveState = function () {\n if (this._finished) {\n throw new Error(\"SHA256: cannot save finished state\");\n }\n return {\n stateHi: new Int32Array(this._stateHi),\n stateLo: new Int32Array(this._stateLo),\n buffer: this._bufferLength > 0 ? new Uint8Array(this._buffer) : undefined,\n bufferLength: this._bufferLength,\n bytesHashed: this._bytesHashed\n };\n };\n /**\n * Function useful for HMAC/PBKDF2 optimization. Restores state saved by\n * saveState() and sets bytesHashed to the given value.\n */\n SHA512.prototype.restoreState = function (savedState) {\n this._stateHi.set(savedState.stateHi);\n this._stateLo.set(savedState.stateLo);\n this._bufferLength = savedState.bufferLength;\n if (savedState.buffer) {\n this._buffer.set(savedState.buffer);\n }\n this._bytesHashed = savedState.bytesHashed;\n this._finished = false;\n return this;\n };\n /**\n * Cleans state returned by saveState().\n */\n SHA512.prototype.cleanSavedState = function (savedState) {\n wipe_1.wipe(savedState.stateHi);\n wipe_1.wipe(savedState.stateLo);\n if (savedState.buffer) {\n wipe_1.wipe(savedState.buffer);\n }\n savedState.bufferLength = 0;\n savedState.bytesHashed = 0;\n };\n return SHA512;\n}());\nexports.SHA512 = SHA512;\n// Constants\nvar K = new Int32Array([\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]);\nfunction hashBlocks(wh, wl, hh, hl, m, pos, len) {\n var ah0 = hh[0], ah1 = hh[1], ah2 = hh[2], ah3 = hh[3], ah4 = hh[4], ah5 = hh[5], ah6 = hh[6], ah7 = hh[7], al0 = hl[0], al1 = hl[1], al2 = hl[2], al3 = hl[3], al4 = hl[4], al5 = hl[5], al6 = hl[6], al7 = hl[7];\n var h, l;\n var th, tl;\n var a, b, c, d;\n while (len >= 128) {\n for (var i = 0; i < 16; i++) {\n var j = 8 * i + pos;\n wh[i] = binary_1.readUint32BE(m, j);\n wl[i] = binary_1.readUint32BE(m, j + 4);\n }\n for (var i = 0; i < 80; i++) {\n var bh0 = ah0;\n var bh1 = ah1;\n var bh2 = ah2;\n var bh3 = ah3;\n var bh4 = ah4;\n var bh5 = ah5;\n var bh6 = ah6;\n var bh7 = ah7;\n var bl0 = al0;\n var bl1 = al1;\n var bl2 = al2;\n var bl3 = al3;\n var bl4 = al4;\n var bl5 = al5;\n var bl6 = al6;\n var bl7 = al7;\n // add\n h = ah7;\n l = al7;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n // Sigma1\n h = ((ah4 >>> 14) | (al4 << (32 - 14))) ^ ((ah4 >>> 18) |\n (al4 << (32 - 18))) ^ ((al4 >>> (41 - 32)) | (ah4 << (32 - (41 - 32))));\n l = ((al4 >>> 14) | (ah4 << (32 - 14))) ^ ((al4 >>> 18) |\n (ah4 << (32 - 18))) ^ ((ah4 >>> (41 - 32)) | (al4 << (32 - (41 - 32))));\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n // Ch\n h = (ah4 & ah5) ^ (~ah4 & ah6);\n l = (al4 & al5) ^ (~al4 & al6);\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n // K\n h = K[i * 2];\n l = K[i * 2 + 1];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n // w\n h = wh[i % 16];\n l = wl[i % 16];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n th = c & 0xffff | d << 16;\n tl = a & 0xffff | b << 16;\n // add\n h = th;\n l = tl;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n // Sigma0\n h = ((ah0 >>> 28) | (al0 << (32 - 28))) ^ ((al0 >>> (34 - 32)) |\n (ah0 << (32 - (34 - 32)))) ^ ((al0 >>> (39 - 32)) | (ah0 << (32 - (39 - 32))));\n l = ((al0 >>> 28) | (ah0 << (32 - 28))) ^ ((ah0 >>> (34 - 32)) |\n (al0 << (32 - (34 - 32)))) ^ ((ah0 >>> (39 - 32)) | (al0 << (32 - (39 - 32))));\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n // Maj\n h = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);\n l = (al0 & al1) ^ (al0 & al2) ^ (al1 & al2);\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n bh7 = (c & 0xffff) | (d << 16);\n bl7 = (a & 0xffff) | (b << 16);\n // add\n h = bh3;\n l = bl3;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = th;\n l = tl;\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n bh3 = (c & 0xffff) | (d << 16);\n bl3 = (a & 0xffff) | (b << 16);\n ah1 = bh0;\n ah2 = bh1;\n ah3 = bh2;\n ah4 = bh3;\n ah5 = bh4;\n ah6 = bh5;\n ah7 = bh6;\n ah0 = bh7;\n al1 = bl0;\n al2 = bl1;\n al3 = bl2;\n al4 = bl3;\n al5 = bl4;\n al6 = bl5;\n al7 = bl6;\n al0 = bl7;\n if (i % 16 === 15) {\n for (var j = 0; j < 16; j++) {\n // add\n h = wh[j];\n l = wl[j];\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = wh[(j + 9) % 16];\n l = wl[(j + 9) % 16];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n // sigma0\n th = wh[(j + 1) % 16];\n tl = wl[(j + 1) % 16];\n h = ((th >>> 1) | (tl << (32 - 1))) ^ ((th >>> 8) |\n (tl << (32 - 8))) ^ (th >>> 7);\n l = ((tl >>> 1) | (th << (32 - 1))) ^ ((tl >>> 8) |\n (th << (32 - 8))) ^ ((tl >>> 7) | (th << (32 - 7)));\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n // sigma1\n th = wh[(j + 14) % 16];\n tl = wl[(j + 14) % 16];\n h = ((th >>> 19) | (tl << (32 - 19))) ^ ((tl >>> (61 - 32)) |\n (th << (32 - (61 - 32)))) ^ (th >>> 6);\n l = ((tl >>> 19) | (th << (32 - 19))) ^ ((th >>> (61 - 32)) |\n (tl << (32 - (61 - 32)))) ^ ((tl >>> 6) | (th << (32 - 6)));\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n wh[j] = (c & 0xffff) | (d << 16);\n wl[j] = (a & 0xffff) | (b << 16);\n }\n }\n }\n // add\n h = ah0;\n l = al0;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = hh[0];\n l = hl[0];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n hh[0] = ah0 = (c & 0xffff) | (d << 16);\n hl[0] = al0 = (a & 0xffff) | (b << 16);\n h = ah1;\n l = al1;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = hh[1];\n l = hl[1];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n hh[1] = ah1 = (c & 0xffff) | (d << 16);\n hl[1] = al1 = (a & 0xffff) | (b << 16);\n h = ah2;\n l = al2;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = hh[2];\n l = hl[2];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n hh[2] = ah2 = (c & 0xffff) | (d << 16);\n hl[2] = al2 = (a & 0xffff) | (b << 16);\n h = ah3;\n l = al3;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = hh[3];\n l = hl[3];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n hh[3] = ah3 = (c & 0xffff) | (d << 16);\n hl[3] = al3 = (a & 0xffff) | (b << 16);\n h = ah4;\n l = al4;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = hh[4];\n l = hl[4];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n hh[4] = ah4 = (c & 0xffff) | (d << 16);\n hl[4] = al4 = (a & 0xffff) | (b << 16);\n h = ah5;\n l = al5;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = hh[5];\n l = hl[5];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n hh[5] = ah5 = (c & 0xffff) | (d << 16);\n hl[5] = al5 = (a & 0xffff) | (b << 16);\n h = ah6;\n l = al6;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = hh[6];\n l = hl[6];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n hh[6] = ah6 = (c & 0xffff) | (d << 16);\n hl[6] = al6 = (a & 0xffff) | (b << 16);\n h = ah7;\n l = al7;\n a = l & 0xffff;\n b = l >>> 16;\n c = h & 0xffff;\n d = h >>> 16;\n h = hh[7];\n l = hl[7];\n a += l & 0xffff;\n b += l >>> 16;\n c += h & 0xffff;\n d += h >>> 16;\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n hh[7] = ah7 = (c & 0xffff) | (d << 16);\n hl[7] = al7 = (a & 0xffff) | (b << 16);\n pos += 128;\n len -= 128;\n }\n return pos;\n}\nfunction hash(data) {\n var h = new SHA512();\n h.update(data);\n var digest = h.digest();\n h.clean();\n return digest;\n}\nexports.hash = hash;\n//# sourceMappingURL=sha512.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertSecretKeyToX25519 = exports.convertPublicKeyToX25519 = exports.verify = exports.sign = exports.extractPublicKeyFromSecretKey = exports.generateKeyPair = exports.generateKeyPairFromSeed = exports.SEED_LENGTH = exports.SECRET_KEY_LENGTH = exports.PUBLIC_KEY_LENGTH = exports.SIGNATURE_LENGTH = void 0;\n/**\n * Package ed25519 implements Ed25519 public-key signature algorithm.\n */\nconst random_1 = require(\"@stablelib/random\");\nconst sha512_1 = require(\"@stablelib/sha512\");\nconst wipe_1 = require(\"@stablelib/wipe\");\nexports.SIGNATURE_LENGTH = 64;\nexports.PUBLIC_KEY_LENGTH = 32;\nexports.SECRET_KEY_LENGTH = 64;\nexports.SEED_LENGTH = 32;\n// Returns new zero-filled 16-element GF (Float64Array).\n// If passed an array of numbers, prefills the returned\n// array with them.\n//\n// We use Float64Array, because we need 48-bit numbers\n// for this implementation.\nfunction gf(init) {\n const r = new Float64Array(16);\n if (init) {\n for (let i = 0; i < init.length; i++) {\n r[i] = init[i];\n }\n }\n return r;\n}\n// Base point.\nconst _9 = new Uint8Array(32);\n_9[0] = 9;\nconst gf0 = gf();\nconst gf1 = gf([1]);\nconst D = gf([\n 0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070,\n 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203\n]);\nconst D2 = gf([\n 0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0,\n 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406\n]);\nconst X = gf([\n 0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c,\n 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169\n]);\nconst Y = gf([\n 0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666,\n 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666\n]);\nconst I = gf([\n 0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43,\n 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83\n]);\nfunction set25519(r, a) {\n for (let i = 0; i < 16; i++) {\n r[i] = a[i] | 0;\n }\n}\nfunction car25519(o) {\n let c = 1;\n for (let i = 0; i < 16; i++) {\n let v = o[i] + c + 65535;\n c = Math.floor(v / 65536);\n o[i] = v - c * 65536;\n }\n o[0] += c - 1 + 37 * (c - 1);\n}\nfunction sel25519(p, q, b) {\n const c = ~(b - 1);\n for (let i = 0; i < 16; i++) {\n const t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n}\nfunction pack25519(o, n) {\n const m = gf();\n const t = gf();\n for (let i = 0; i < 16; i++) {\n t[i] = n[i];\n }\n car25519(t);\n car25519(t);\n car25519(t);\n for (let j = 0; j < 2; j++) {\n m[0] = t[0] - 0xffed;\n for (let i = 1; i < 15; i++) {\n m[i] = t[i] - 0xffff - ((m[i - 1] >> 16) & 1);\n m[i - 1] &= 0xffff;\n }\n m[15] = t[15] - 0x7fff - ((m[14] >> 16) & 1);\n const b = (m[15] >> 16) & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1 - b);\n }\n for (let i = 0; i < 16; i++) {\n o[2 * i] = t[i] & 0xff;\n o[2 * i + 1] = t[i] >> 8;\n }\n}\nfunction verify32(x, y) {\n let d = 0;\n for (let i = 0; i < 32; i++) {\n d |= x[i] ^ y[i];\n }\n return (1 & ((d - 1) >>> 8)) - 1;\n}\nfunction neq25519(a, b) {\n const c = new Uint8Array(32);\n const d = new Uint8Array(32);\n pack25519(c, a);\n pack25519(d, b);\n return verify32(c, d);\n}\nfunction par25519(a) {\n const d = new Uint8Array(32);\n pack25519(d, a);\n return d[0] & 1;\n}\nfunction unpack25519(o, n) {\n for (let i = 0; i < 16; i++) {\n o[i] = n[2 * i] + (n[2 * i + 1] << 8);\n }\n o[15] &= 0x7fff;\n}\nfunction add(o, a, b) {\n for (let i = 0; i < 16; i++) {\n o[i] = a[i] + b[i];\n }\n}\nfunction sub(o, a, b) {\n for (let i = 0; i < 16; i++) {\n o[i] = a[i] - b[i];\n }\n}\nfunction mul(o, a, b) {\n let v, c, t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0, t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0, t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0, b0 = b[0], b1 = b[1], b2 = b[2], b3 = b[3], b4 = b[4], b5 = b[5], b6 = b[6], b7 = b[7], b8 = b[8], b9 = b[9], b10 = b[10], b11 = b[11], b12 = b[12], b13 = b[13], b14 = b[14], b15 = b[15];\n v = a[0];\n t0 += v * b0;\n t1 += v * b1;\n t2 += v * b2;\n t3 += v * b3;\n t4 += v * b4;\n t5 += v * b5;\n t6 += v * b6;\n t7 += v * b7;\n t8 += v * b8;\n t9 += v * b9;\n t10 += v * b10;\n t11 += v * b11;\n t12 += v * b12;\n t13 += v * b13;\n t14 += v * b14;\n t15 += v * b15;\n v = a[1];\n t1 += v * b0;\n t2 += v * b1;\n t3 += v * b2;\n t4 += v * b3;\n t5 += v * b4;\n t6 += v * b5;\n t7 += v * b6;\n t8 += v * b7;\n t9 += v * b8;\n t10 += v * b9;\n t11 += v * b10;\n t12 += v * b11;\n t13 += v * b12;\n t14 += v * b13;\n t15 += v * b14;\n t16 += v * b15;\n v = a[2];\n t2 += v * b0;\n t3 += v * b1;\n t4 += v * b2;\n t5 += v * b3;\n t6 += v * b4;\n t7 += v * b5;\n t8 += v * b6;\n t9 += v * b7;\n t10 += v * b8;\n t11 += v * b9;\n t12 += v * b10;\n t13 += v * b11;\n t14 += v * b12;\n t15 += v * b13;\n t16 += v * b14;\n t17 += v * b15;\n v = a[3];\n t3 += v * b0;\n t4 += v * b1;\n t5 += v * b2;\n t6 += v * b3;\n t7 += v * b4;\n t8 += v * b5;\n t9 += v * b6;\n t10 += v * b7;\n t11 += v * b8;\n t12 += v * b9;\n t13 += v * b10;\n t14 += v * b11;\n t15 += v * b12;\n t16 += v * b13;\n t17 += v * b14;\n t18 += v * b15;\n v = a[4];\n t4 += v * b0;\n t5 += v * b1;\n t6 += v * b2;\n t7 += v * b3;\n t8 += v * b4;\n t9 += v * b5;\n t10 += v * b6;\n t11 += v * b7;\n t12 += v * b8;\n t13 += v * b9;\n t14 += v * b10;\n t15 += v * b11;\n t16 += v * b12;\n t17 += v * b13;\n t18 += v * b14;\n t19 += v * b15;\n v = a[5];\n t5 += v * b0;\n t6 += v * b1;\n t7 += v * b2;\n t8 += v * b3;\n t9 += v * b4;\n t10 += v * b5;\n t11 += v * b6;\n t12 += v * b7;\n t13 += v * b8;\n t14 += v * b9;\n t15 += v * b10;\n t16 += v * b11;\n t17 += v * b12;\n t18 += v * b13;\n t19 += v * b14;\n t20 += v * b15;\n v = a[6];\n t6 += v * b0;\n t7 += v * b1;\n t8 += v * b2;\n t9 += v * b3;\n t10 += v * b4;\n t11 += v * b5;\n t12 += v * b6;\n t13 += v * b7;\n t14 += v * b8;\n t15 += v * b9;\n t16 += v * b10;\n t17 += v * b11;\n t18 += v * b12;\n t19 += v * b13;\n t20 += v * b14;\n t21 += v * b15;\n v = a[7];\n t7 += v * b0;\n t8 += v * b1;\n t9 += v * b2;\n t10 += v * b3;\n t11 += v * b4;\n t12 += v * b5;\n t13 += v * b6;\n t14 += v * b7;\n t15 += v * b8;\n t16 += v * b9;\n t17 += v * b10;\n t18 += v * b11;\n t19 += v * b12;\n t20 += v * b13;\n t21 += v * b14;\n t22 += v * b15;\n v = a[8];\n t8 += v * b0;\n t9 += v * b1;\n t10 += v * b2;\n t11 += v * b3;\n t12 += v * b4;\n t13 += v * b5;\n t14 += v * b6;\n t15 += v * b7;\n t16 += v * b8;\n t17 += v * b9;\n t18 += v * b10;\n t19 += v * b11;\n t20 += v * b12;\n t21 += v * b13;\n t22 += v * b14;\n t23 += v * b15;\n v = a[9];\n t9 += v * b0;\n t10 += v * b1;\n t11 += v * b2;\n t12 += v * b3;\n t13 += v * b4;\n t14 += v * b5;\n t15 += v * b6;\n t16 += v * b7;\n t17 += v * b8;\n t18 += v * b9;\n t19 += v * b10;\n t20 += v * b11;\n t21 += v * b12;\n t22 += v * b13;\n t23 += v * b14;\n t24 += v * b15;\n v = a[10];\n t10 += v * b0;\n t11 += v * b1;\n t12 += v * b2;\n t13 += v * b3;\n t14 += v * b4;\n t15 += v * b5;\n t16 += v * b6;\n t17 += v * b7;\n t18 += v * b8;\n t19 += v * b9;\n t20 += v * b10;\n t21 += v * b11;\n t22 += v * b12;\n t23 += v * b13;\n t24 += v * b14;\n t25 += v * b15;\n v = a[11];\n t11 += v * b0;\n t12 += v * b1;\n t13 += v * b2;\n t14 += v * b3;\n t15 += v * b4;\n t16 += v * b5;\n t17 += v * b6;\n t18 += v * b7;\n t19 += v * b8;\n t20 += v * b9;\n t21 += v * b10;\n t22 += v * b11;\n t23 += v * b12;\n t24 += v * b13;\n t25 += v * b14;\n t26 += v * b15;\n v = a[12];\n t12 += v * b0;\n t13 += v * b1;\n t14 += v * b2;\n t15 += v * b3;\n t16 += v * b4;\n t17 += v * b5;\n t18 += v * b6;\n t19 += v * b7;\n t20 += v * b8;\n t21 += v * b9;\n t22 += v * b10;\n t23 += v * b11;\n t24 += v * b12;\n t25 += v * b13;\n t26 += v * b14;\n t27 += v * b15;\n v = a[13];\n t13 += v * b0;\n t14 += v * b1;\n t15 += v * b2;\n t16 += v * b3;\n t17 += v * b4;\n t18 += v * b5;\n t19 += v * b6;\n t20 += v * b7;\n t21 += v * b8;\n t22 += v * b9;\n t23 += v * b10;\n t24 += v * b11;\n t25 += v * b12;\n t26 += v * b13;\n t27 += v * b14;\n t28 += v * b15;\n v = a[14];\n t14 += v * b0;\n t15 += v * b1;\n t16 += v * b2;\n t17 += v * b3;\n t18 += v * b4;\n t19 += v * b5;\n t20 += v * b6;\n t21 += v * b7;\n t22 += v * b8;\n t23 += v * b9;\n t24 += v * b10;\n t25 += v * b11;\n t26 += v * b12;\n t27 += v * b13;\n t28 += v * b14;\n t29 += v * b15;\n v = a[15];\n t15 += v * b0;\n t16 += v * b1;\n t17 += v * b2;\n t18 += v * b3;\n t19 += v * b4;\n t20 += v * b5;\n t21 += v * b6;\n t22 += v * b7;\n t23 += v * b8;\n t24 += v * b9;\n t25 += v * b10;\n t26 += v * b11;\n t27 += v * b12;\n t28 += v * b13;\n t29 += v * b14;\n t30 += v * b15;\n t0 += 38 * t16;\n t1 += 38 * t17;\n t2 += 38 * t18;\n t3 += 38 * t19;\n t4 += 38 * t20;\n t5 += 38 * t21;\n t6 += 38 * t22;\n t7 += 38 * t23;\n t8 += 38 * t24;\n t9 += 38 * t25;\n t10 += 38 * t26;\n t11 += 38 * t27;\n t12 += 38 * t28;\n t13 += 38 * t29;\n t14 += 38 * t30;\n // t15 left as is\n // first car\n c = 1;\n v = t0 + c + 65535;\n c = Math.floor(v / 65536);\n t0 = v - c * 65536;\n v = t1 + c + 65535;\n c = Math.floor(v / 65536);\n t1 = v - c * 65536;\n v = t2 + c + 65535;\n c = Math.floor(v / 65536);\n t2 = v - c * 65536;\n v = t3 + c + 65535;\n c = Math.floor(v / 65536);\n t3 = v - c * 65536;\n v = t4 + c + 65535;\n c = Math.floor(v / 65536);\n t4 = v - c * 65536;\n v = t5 + c + 65535;\n c = Math.floor(v / 65536);\n t5 = v - c * 65536;\n v = t6 + c + 65535;\n c = Math.floor(v / 65536);\n t6 = v - c * 65536;\n v = t7 + c + 65535;\n c = Math.floor(v / 65536);\n t7 = v - c * 65536;\n v = t8 + c + 65535;\n c = Math.floor(v / 65536);\n t8 = v - c * 65536;\n v = t9 + c + 65535;\n c = Math.floor(v / 65536);\n t9 = v - c * 65536;\n v = t10 + c + 65535;\n c = Math.floor(v / 65536);\n t10 = v - c * 65536;\n v = t11 + c + 65535;\n c = Math.floor(v / 65536);\n t11 = v - c * 65536;\n v = t12 + c + 65535;\n c = Math.floor(v / 65536);\n t12 = v - c * 65536;\n v = t13 + c + 65535;\n c = Math.floor(v / 65536);\n t13 = v - c * 65536;\n v = t14 + c + 65535;\n c = Math.floor(v / 65536);\n t14 = v - c * 65536;\n v = t15 + c + 65535;\n c = Math.floor(v / 65536);\n t15 = v - c * 65536;\n t0 += c - 1 + 37 * (c - 1);\n // second car\n c = 1;\n v = t0 + c + 65535;\n c = Math.floor(v / 65536);\n t0 = v - c * 65536;\n v = t1 + c + 65535;\n c = Math.floor(v / 65536);\n t1 = v - c * 65536;\n v = t2 + c + 65535;\n c = Math.floor(v / 65536);\n t2 = v - c * 65536;\n v = t3 + c + 65535;\n c = Math.floor(v / 65536);\n t3 = v - c * 65536;\n v = t4 + c + 65535;\n c = Math.floor(v / 65536);\n t4 = v - c * 65536;\n v = t5 + c + 65535;\n c = Math.floor(v / 65536);\n t5 = v - c * 65536;\n v = t6 + c + 65535;\n c = Math.floor(v / 65536);\n t6 = v - c * 65536;\n v = t7 + c + 65535;\n c = Math.floor(v / 65536);\n t7 = v - c * 65536;\n v = t8 + c + 65535;\n c = Math.floor(v / 65536);\n t8 = v - c * 65536;\n v = t9 + c + 65535;\n c = Math.floor(v / 65536);\n t9 = v - c * 65536;\n v = t10 + c + 65535;\n c = Math.floor(v / 65536);\n t10 = v - c * 65536;\n v = t11 + c + 65535;\n c = Math.floor(v / 65536);\n t11 = v - c * 65536;\n v = t12 + c + 65535;\n c = Math.floor(v / 65536);\n t12 = v - c * 65536;\n v = t13 + c + 65535;\n c = Math.floor(v / 65536);\n t13 = v - c * 65536;\n v = t14 + c + 65535;\n c = Math.floor(v / 65536);\n t14 = v - c * 65536;\n v = t15 + c + 65535;\n c = Math.floor(v / 65536);\n t15 = v - c * 65536;\n t0 += c - 1 + 37 * (c - 1);\n o[0] = t0;\n o[1] = t1;\n o[2] = t2;\n o[3] = t3;\n o[4] = t4;\n o[5] = t5;\n o[6] = t6;\n o[7] = t7;\n o[8] = t8;\n o[9] = t9;\n o[10] = t10;\n o[11] = t11;\n o[12] = t12;\n o[13] = t13;\n o[14] = t14;\n o[15] = t15;\n}\nfunction square(o, a) {\n mul(o, a, a);\n}\nfunction inv25519(o, i) {\n const c = gf();\n let a;\n for (a = 0; a < 16; a++) {\n c[a] = i[a];\n }\n for (a = 253; a >= 0; a--) {\n square(c, c);\n if (a !== 2 && a !== 4) {\n mul(c, c, i);\n }\n }\n for (a = 0; a < 16; a++) {\n o[a] = c[a];\n }\n}\nfunction pow2523(o, i) {\n const c = gf();\n let a;\n for (a = 0; a < 16; a++) {\n c[a] = i[a];\n }\n for (a = 250; a >= 0; a--) {\n square(c, c);\n if (a !== 1) {\n mul(c, c, i);\n }\n }\n for (a = 0; a < 16; a++) {\n o[a] = c[a];\n }\n}\nfunction edadd(p, q) {\n const a = gf(), b = gf(), c = gf(), d = gf(), e = gf(), f = gf(), g = gf(), h = gf(), t = gf();\n sub(a, p[1], p[0]);\n sub(t, q[1], q[0]);\n mul(a, a, t);\n add(b, p[0], p[1]);\n add(t, q[0], q[1]);\n mul(b, b, t);\n mul(c, p[3], q[3]);\n mul(c, c, D2);\n mul(d, p[2], q[2]);\n add(d, d, d);\n sub(e, b, a);\n sub(f, d, c);\n add(g, d, c);\n add(h, b, a);\n mul(p[0], e, f);\n mul(p[1], h, g);\n mul(p[2], g, f);\n mul(p[3], e, h);\n}\nfunction cswap(p, q, b) {\n for (let i = 0; i < 4; i++) {\n sel25519(p[i], q[i], b);\n }\n}\nfunction pack(r, p) {\n const tx = gf(), ty = gf(), zi = gf();\n inv25519(zi, p[2]);\n mul(tx, p[0], zi);\n mul(ty, p[1], zi);\n pack25519(r, ty);\n r[31] ^= par25519(tx) << 7;\n}\nfunction scalarmult(p, q, s) {\n set25519(p[0], gf0);\n set25519(p[1], gf1);\n set25519(p[2], gf1);\n set25519(p[3], gf0);\n for (let i = 255; i >= 0; --i) {\n const b = (s[(i / 8) | 0] >> (i & 7)) & 1;\n cswap(p, q, b);\n edadd(q, p);\n edadd(p, p);\n cswap(p, q, b);\n }\n}\nfunction scalarbase(p, s) {\n const q = [gf(), gf(), gf(), gf()];\n set25519(q[0], X);\n set25519(q[1], Y);\n set25519(q[2], gf1);\n mul(q[3], X, Y);\n scalarmult(p, q, s);\n}\n// Generates key pair from secret 32-byte seed.\nfunction generateKeyPairFromSeed(seed) {\n if (seed.length !== exports.SEED_LENGTH) {\n throw new Error(`ed25519: seed must be ${exports.SEED_LENGTH} bytes`);\n }\n const d = (0, sha512_1.hash)(seed);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n const publicKey = new Uint8Array(32);\n const p = [gf(), gf(), gf(), gf()];\n scalarbase(p, d);\n pack(publicKey, p);\n const secretKey = new Uint8Array(64);\n secretKey.set(seed);\n secretKey.set(publicKey, 32);\n return {\n publicKey,\n secretKey\n };\n}\nexports.generateKeyPairFromSeed = generateKeyPairFromSeed;\nfunction generateKeyPair(prng) {\n const seed = (0, random_1.randomBytes)(32, prng);\n const result = generateKeyPairFromSeed(seed);\n (0, wipe_1.wipe)(seed);\n return result;\n}\nexports.generateKeyPair = generateKeyPair;\nfunction extractPublicKeyFromSecretKey(secretKey) {\n if (secretKey.length !== exports.SECRET_KEY_LENGTH) {\n throw new Error(`ed25519: secret key must be ${exports.SECRET_KEY_LENGTH} bytes`);\n }\n return new Uint8Array(secretKey.subarray(32));\n}\nexports.extractPublicKeyFromSecretKey = extractPublicKeyFromSecretKey;\nconst L = new Float64Array([\n 0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2,\n 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10\n]);\nfunction modL(r, x) {\n let carry;\n let i;\n let j;\n let k;\n for (i = 63; i >= 32; --i) {\n carry = 0;\n for (j = i - 32, k = i - 12; j < k; ++j) {\n x[j] += carry - 16 * x[i] * L[j - (i - 32)];\n carry = Math.floor((x[j] + 128) / 256);\n x[j] -= carry * 256;\n }\n x[j] += carry;\n x[i] = 0;\n }\n carry = 0;\n for (j = 0; j < 32; j++) {\n x[j] += carry - (x[31] >> 4) * L[j];\n carry = x[j] >> 8;\n x[j] &= 255;\n }\n for (j = 0; j < 32; j++) {\n x[j] -= carry * L[j];\n }\n for (i = 0; i < 32; i++) {\n x[i + 1] += x[i] >> 8;\n r[i] = x[i] & 255;\n }\n}\nfunction reduce(r) {\n const x = new Float64Array(64);\n for (let i = 0; i < 64; i++) {\n x[i] = r[i];\n }\n for (let i = 0; i < 64; i++) {\n r[i] = 0;\n }\n modL(r, x);\n}\n// Returns 64-byte signature of the message under the 64-byte secret key.\nfunction sign(secretKey, message) {\n const x = new Float64Array(64);\n const p = [gf(), gf(), gf(), gf()];\n const d = (0, sha512_1.hash)(secretKey.subarray(0, 32));\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n const signature = new Uint8Array(64);\n signature.set(d.subarray(32), 32);\n const hs = new sha512_1.SHA512();\n hs.update(signature.subarray(32));\n hs.update(message);\n const r = hs.digest();\n hs.clean();\n reduce(r);\n scalarbase(p, r);\n pack(signature, p);\n hs.reset();\n hs.update(signature.subarray(0, 32));\n hs.update(secretKey.subarray(32));\n hs.update(message);\n const h = hs.digest();\n reduce(h);\n for (let i = 0; i < 32; i++) {\n x[i] = r[i];\n }\n for (let i = 0; i < 32; i++) {\n for (let j = 0; j < 32; j++) {\n x[i + j] += h[i] * d[j];\n }\n }\n modL(signature.subarray(32), x);\n return signature;\n}\nexports.sign = sign;\nfunction unpackneg(r, p) {\n const t = gf(), chk = gf(), num = gf(), den = gf(), den2 = gf(), den4 = gf(), den6 = gf();\n set25519(r[2], gf1);\n unpack25519(r[1], p);\n square(num, r[1]);\n mul(den, num, D);\n sub(num, num, r[2]);\n add(den, r[2], den);\n square(den2, den);\n square(den4, den2);\n mul(den6, den4, den2);\n mul(t, den6, num);\n mul(t, t, den);\n pow2523(t, t);\n mul(t, t, num);\n mul(t, t, den);\n mul(t, t, den);\n mul(r[0], t, den);\n square(chk, r[0]);\n mul(chk, chk, den);\n if (neq25519(chk, num)) {\n mul(r[0], r[0], I);\n }\n square(chk, r[0]);\n mul(chk, chk, den);\n if (neq25519(chk, num)) {\n return -1;\n }\n if (par25519(r[0]) === (p[31] >> 7)) {\n sub(r[0], gf0, r[0]);\n }\n mul(r[3], r[0], r[1]);\n return 0;\n}\nfunction verify(publicKey, message, signature) {\n const t = new Uint8Array(32);\n const p = [gf(), gf(), gf(), gf()];\n const q = [gf(), gf(), gf(), gf()];\n if (signature.length !== exports.SIGNATURE_LENGTH) {\n throw new Error(`ed25519: signature must be ${exports.SIGNATURE_LENGTH} bytes`);\n }\n if (unpackneg(q, publicKey)) {\n return false;\n }\n const hs = new sha512_1.SHA512();\n hs.update(signature.subarray(0, 32));\n hs.update(publicKey);\n hs.update(message);\n const h = hs.digest();\n reduce(h);\n scalarmult(p, q, h);\n scalarbase(q, signature.subarray(32));\n edadd(p, q);\n pack(t, p);\n if (verify32(signature, t)) {\n return false;\n }\n return true;\n}\nexports.verify = verify;\n/**\n * Convert Ed25519 public key to X25519 public key.\n *\n * Throws if given an invalid public key.\n */\nfunction convertPublicKeyToX25519(publicKey) {\n let q = [gf(), gf(), gf(), gf()];\n if (unpackneg(q, publicKey)) {\n throw new Error(\"Ed25519: invalid public key\");\n }\n // Formula: montgomeryX = (edwardsY + 1)*inverse(1 - edwardsY) mod p\n let a = gf();\n let b = gf();\n let y = q[1];\n add(a, gf1, y);\n sub(b, gf1, y);\n inv25519(b, b);\n mul(a, a, b);\n let z = new Uint8Array(32);\n pack25519(z, a);\n return z;\n}\nexports.convertPublicKeyToX25519 = convertPublicKeyToX25519;\n/**\n * Convert Ed25519 secret (private) key to X25519 secret key.\n */\nfunction convertSecretKeyToX25519(secretKey) {\n const d = (0, sha512_1.hash)(secretKey.subarray(0, 32));\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n const o = new Uint8Array(d.subarray(0, 32));\n (0, wipe_1.wipe)(d);\n return o;\n}\nexports.convertSecretKeyToX25519 = convertSecretKeyToX25519;\n//# sourceMappingURL=ed25519.js.map","export const JWT_IRIDIUM_ALG = \"EdDSA\";\nexport const JWT_IRIDIUM_TYP = \"JWT\";\nexport const JWT_DELIMITER = \".\";\nexport const JWT_ENCODING = \"base64url\";\nexport const JSON_ENCODING = \"utf8\";\nexport const DATA_ENCODING = \"utf8\";\nexport const DID_DELIMITER = \":\";\nexport const DID_PREFIX = \"did\";\nexport const DID_METHOD = \"key\";\nexport const MULTICODEC_ED25519_ENCODING = \"base58btc\";\nexport const MULTICODEC_ED25519_BASE = \"z\";\nexport const MULTICODEC_ED25519_HEADER = \"K36\";\nexport const MULTICODEC_ED25519_LENGTH = 32;\nexport const KEY_PAIR_SEED_LENGTH = 32;\n//# sourceMappingURL=constants.js.map","export function alloc(size = 0) {\n if (globalThis.Buffer != null && globalThis.Buffer.alloc != null) {\n return globalThis.Buffer.alloc(size);\n }\n return new Uint8Array(size);\n}\nexport function allocUnsafe(size = 0) {\n if (globalThis.Buffer != null && globalThis.Buffer.allocUnsafe != null) {\n return globalThis.Buffer.allocUnsafe(size);\n }\n return new Uint8Array(size);\n}","import { allocUnsafe } from './alloc.js';\nexport function concat(arrays, length) {\n if (!length) {\n length = arrays.reduce((acc, curr) => acc + curr.length, 0);\n }\n const output = allocUnsafe(length);\n let offset = 0;\n for (const arr of arrays) {\n output.set(arr, offset);\n offset += arr.length;\n }\n return output;\n}","function base(ALPHABET, name) {\n if (ALPHABET.length >= 255) {\n throw new TypeError('Alphabet too long');\n }\n var BASE_MAP = new Uint8Array(256);\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255;\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i);\n var xc = x.charCodeAt(0);\n if (BASE_MAP[xc] !== 255) {\n throw new TypeError(x + ' is ambiguous');\n }\n BASE_MAP[xc] = i;\n }\n var BASE = ALPHABET.length;\n var LEADER = ALPHABET.charAt(0);\n var FACTOR = Math.log(BASE) / Math.log(256);\n var iFACTOR = Math.log(256) / Math.log(BASE);\n function encode(source) {\n if (source instanceof Uint8Array);\n else if (ArrayBuffer.isView(source)) {\n source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength);\n } else if (Array.isArray(source)) {\n source = Uint8Array.from(source);\n }\n if (!(source instanceof Uint8Array)) {\n throw new TypeError('Expected Uint8Array');\n }\n if (source.length === 0) {\n return '';\n }\n var zeroes = 0;\n var length = 0;\n var pbegin = 0;\n var pend = source.length;\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++;\n zeroes++;\n }\n var size = (pend - pbegin) * iFACTOR + 1 >>> 0;\n var b58 = new Uint8Array(size);\n while (pbegin !== pend) {\n var carry = source[pbegin];\n var i = 0;\n for (var it1 = size - 1; (carry !== 0 || i < length) && it1 !== -1; it1--, i++) {\n carry += 256 * b58[it1] >>> 0;\n b58[it1] = carry % BASE >>> 0;\n carry = carry / BASE >>> 0;\n }\n if (carry !== 0) {\n throw new Error('Non-zero carry');\n }\n length = i;\n pbegin++;\n }\n var it2 = size - length;\n while (it2 !== size && b58[it2] === 0) {\n it2++;\n }\n var str = LEADER.repeat(zeroes);\n for (; it2 < size; ++it2) {\n str += ALPHABET.charAt(b58[it2]);\n }\n return str;\n }\n function decodeUnsafe(source) {\n if (typeof source !== 'string') {\n throw new TypeError('Expected String');\n }\n if (source.length === 0) {\n return new Uint8Array();\n }\n var psz = 0;\n if (source[psz] === ' ') {\n return;\n }\n var zeroes = 0;\n var length = 0;\n while (source[psz] === LEADER) {\n zeroes++;\n psz++;\n }\n var size = (source.length - psz) * FACTOR + 1 >>> 0;\n var b256 = new Uint8Array(size);\n while (source[psz]) {\n var carry = BASE_MAP[source.charCodeAt(psz)];\n if (carry === 255) {\n return;\n }\n var i = 0;\n for (var it3 = size - 1; (carry !== 0 || i < length) && it3 !== -1; it3--, i++) {\n carry += BASE * b256[it3] >>> 0;\n b256[it3] = carry % 256 >>> 0;\n carry = carry / 256 >>> 0;\n }\n if (carry !== 0) {\n throw new Error('Non-zero carry');\n }\n length = i;\n psz++;\n }\n if (source[psz] === ' ') {\n return;\n }\n var it4 = size - length;\n while (it4 !== size && b256[it4] === 0) {\n it4++;\n }\n var vch = new Uint8Array(zeroes + (size - it4));\n var j = zeroes;\n while (it4 !== size) {\n vch[j++] = b256[it4++];\n }\n return vch;\n }\n function decode(string) {\n var buffer = decodeUnsafe(string);\n if (buffer) {\n return buffer;\n }\n throw new Error(`Non-${ name } character`);\n }\n return {\n encode: encode,\n decodeUnsafe: decodeUnsafe,\n decode: decode\n };\n}\nvar src = base;\nvar _brrp__multiformats_scope_baseX = src;\nexport default _brrp__multiformats_scope_baseX;","const empty = new Uint8Array(0);\nconst toHex = d => d.reduce((hex, byte) => hex + byte.toString(16).padStart(2, '0'), '');\nconst fromHex = hex => {\n const hexes = hex.match(/../g);\n return hexes ? new Uint8Array(hexes.map(b => parseInt(b, 16))) : empty;\n};\nconst equals = (aa, bb) => {\n if (aa === bb)\n return true;\n if (aa.byteLength !== bb.byteLength) {\n return false;\n }\n for (let ii = 0; ii < aa.byteLength; ii++) {\n if (aa[ii] !== bb[ii]) {\n return false;\n }\n }\n return true;\n};\nconst coerce = o => {\n if (o instanceof Uint8Array && o.constructor.name === 'Uint8Array')\n return o;\n if (o instanceof ArrayBuffer)\n return new Uint8Array(o);\n if (ArrayBuffer.isView(o)) {\n return new Uint8Array(o.buffer, o.byteOffset, o.byteLength);\n }\n throw new Error('Unknown type, must be binary type');\n};\nconst isBinary = o => o instanceof ArrayBuffer || ArrayBuffer.isView(o);\nconst fromString = str => new TextEncoder().encode(str);\nconst toString = b => new TextDecoder().decode(b);\nexport {\n equals,\n coerce,\n isBinary,\n fromHex,\n toHex,\n fromString,\n toString,\n empty\n};","import basex from '../../vendor/base-x.js';\nimport { coerce } from '../bytes.js';\nclass Encoder {\n constructor(name, prefix, baseEncode) {\n this.name = name;\n this.prefix = prefix;\n this.baseEncode = baseEncode;\n }\n encode(bytes) {\n if (bytes instanceof Uint8Array) {\n return `${ this.prefix }${ this.baseEncode(bytes) }`;\n } else {\n throw Error('Unknown type, must be binary type');\n }\n }\n}\nclass Decoder {\n constructor(name, prefix, baseDecode) {\n this.name = name;\n this.prefix = prefix;\n if (prefix.codePointAt(0) === undefined) {\n throw new Error('Invalid prefix character');\n }\n this.prefixCodePoint = prefix.codePointAt(0);\n this.baseDecode = baseDecode;\n }\n decode(text) {\n if (typeof text === 'string') {\n if (text.codePointAt(0) !== this.prefixCodePoint) {\n throw Error(`Unable to decode multibase string ${ JSON.stringify(text) }, ${ this.name } decoder only supports inputs prefixed with ${ this.prefix }`);\n }\n return this.baseDecode(text.slice(this.prefix.length));\n } else {\n throw Error('Can only multibase decode strings');\n }\n }\n or(decoder) {\n return or(this, decoder);\n }\n}\nclass ComposedDecoder {\n constructor(decoders) {\n this.decoders = decoders;\n }\n or(decoder) {\n return or(this, decoder);\n }\n decode(input) {\n const prefix = input[0];\n const decoder = this.decoders[prefix];\n if (decoder) {\n return decoder.decode(input);\n } else {\n throw RangeError(`Unable to decode multibase string ${ JSON.stringify(input) }, only inputs prefixed with ${ Object.keys(this.decoders) } are supported`);\n }\n }\n}\nexport const or = (left, right) => new ComposedDecoder({\n ...left.decoders || { [left.prefix]: left },\n ...right.decoders || { [right.prefix]: right }\n});\nexport class Codec {\n constructor(name, prefix, baseEncode, baseDecode) {\n this.name = name;\n this.prefix = prefix;\n this.baseEncode = baseEncode;\n this.baseDecode = baseDecode;\n this.encoder = new Encoder(name, prefix, baseEncode);\n this.decoder = new Decoder(name, prefix, baseDecode);\n }\n encode(input) {\n return this.encoder.encode(input);\n }\n decode(input) {\n return this.decoder.decode(input);\n }\n}\nexport const from = ({name, prefix, encode, decode}) => new Codec(name, prefix, encode, decode);\nexport const baseX = ({prefix, name, alphabet}) => {\n const {encode, decode} = basex(alphabet, name);\n return from({\n prefix,\n name,\n encode,\n decode: text => coerce(decode(text))\n });\n};\nconst decode = (string, alphabet, bitsPerChar, name) => {\n const codes = {};\n for (let i = 0; i < alphabet.length; ++i) {\n codes[alphabet[i]] = i;\n }\n let end = string.length;\n while (string[end - 1] === '=') {\n --end;\n }\n const out = new Uint8Array(end * bitsPerChar / 8 | 0);\n let bits = 0;\n let buffer = 0;\n let written = 0;\n for (let i = 0; i < end; ++i) {\n const value = codes[string[i]];\n if (value === undefined) {\n throw new SyntaxError(`Non-${ name } character`);\n }\n buffer = buffer << bitsPerChar | value;\n bits += bitsPerChar;\n if (bits >= 8) {\n bits -= 8;\n out[written++] = 255 & buffer >> bits;\n }\n }\n if (bits >= bitsPerChar || 255 & buffer << 8 - bits) {\n throw new SyntaxError('Unexpected end of data');\n }\n return out;\n};\nconst encode = (data, alphabet, bitsPerChar) => {\n const pad = alphabet[alphabet.length - 1] === '=';\n const mask = (1 << bitsPerChar) - 1;\n let out = '';\n let bits = 0;\n let buffer = 0;\n for (let i = 0; i < data.length; ++i) {\n buffer = buffer << 8 | data[i];\n bits += 8;\n while (bits > bitsPerChar) {\n bits -= bitsPerChar;\n out += alphabet[mask & buffer >> bits];\n }\n }\n if (bits) {\n out += alphabet[mask & buffer << bitsPerChar - bits];\n }\n if (pad) {\n while (out.length * bitsPerChar & 7) {\n out += '=';\n }\n }\n return out;\n};\nexport const rfc4648 = ({name, prefix, bitsPerChar, alphabet}) => {\n return from({\n prefix,\n name,\n encode(input) {\n return encode(input, alphabet, bitsPerChar);\n },\n decode(input) {\n return decode(input, alphabet, bitsPerChar, name);\n }\n });\n};","import { from } from './base.js';\nimport {\n fromString,\n toString\n} from '../bytes.js';\nexport const identity = from({\n prefix: '\\0',\n name: 'identity',\n encode: buf => toString(buf),\n decode: str => fromString(str)\n});","import { rfc4648 } from './base.js';\nexport const base2 = rfc4648({\n prefix: '0',\n name: 'base2',\n alphabet: '01',\n bitsPerChar: 1\n});","import { rfc4648 } from './base.js';\nexport const base8 = rfc4648({\n prefix: '7',\n name: 'base8',\n alphabet: '01234567',\n bitsPerChar: 3\n});","import { baseX } from './base.js';\nexport const base10 = baseX({\n prefix: '9',\n name: 'base10',\n alphabet: '0123456789'\n});","import { rfc4648 } from './base.js';\nexport const base16 = rfc4648({\n prefix: 'f',\n name: 'base16',\n alphabet: '0123456789abcdef',\n bitsPerChar: 4\n});\nexport const base16upper = rfc4648({\n prefix: 'F',\n name: 'base16upper',\n alphabet: '0123456789ABCDEF',\n bitsPerChar: 4\n});","import { rfc4648 } from './base.js';\nexport const base32 = rfc4648({\n prefix: 'b',\n name: 'base32',\n alphabet: 'abcdefghijklmnopqrstuvwxyz234567',\n bitsPerChar: 5\n});\nexport const base32upper = rfc4648({\n prefix: 'B',\n name: 'base32upper',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567',\n bitsPerChar: 5\n});\nexport const base32pad = rfc4648({\n prefix: 'c',\n name: 'base32pad',\n alphabet: 'abcdefghijklmnopqrstuvwxyz234567=',\n bitsPerChar: 5\n});\nexport const base32padupper = rfc4648({\n prefix: 'C',\n name: 'base32padupper',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=',\n bitsPerChar: 5\n});\nexport const base32hex = rfc4648({\n prefix: 'v',\n name: 'base32hex',\n alphabet: '0123456789abcdefghijklmnopqrstuv',\n bitsPerChar: 5\n});\nexport const base32hexupper = rfc4648({\n prefix: 'V',\n name: 'base32hexupper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUV',\n bitsPerChar: 5\n});\nexport const base32hexpad = rfc4648({\n prefix: 't',\n name: 'base32hexpad',\n alphabet: '0123456789abcdefghijklmnopqrstuv=',\n bitsPerChar: 5\n});\nexport const base32hexpadupper = rfc4648({\n prefix: 'T',\n name: 'base32hexpadupper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUV=',\n bitsPerChar: 5\n});\nexport const base32z = rfc4648({\n prefix: 'h',\n name: 'base32z',\n alphabet: 'ybndrfg8ejkmcpqxot1uwisza345h769',\n bitsPerChar: 5\n});","import { baseX } from './base.js';\nexport const base36 = baseX({\n prefix: 'k',\n name: 'base36',\n alphabet: '0123456789abcdefghijklmnopqrstuvwxyz'\n});\nexport const base36upper = baseX({\n prefix: 'K',\n name: 'base36upper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'\n});","import { baseX } from './base.js';\nexport const base58btc = baseX({\n name: 'base58btc',\n prefix: 'z',\n alphabet: '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\n});\nexport const base58flickr = baseX({\n name: 'base58flickr',\n prefix: 'Z',\n alphabet: '123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ'\n});","import { rfc4648 } from './base.js';\nexport const base64 = rfc4648({\n prefix: 'm',\n name: 'base64',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n bitsPerChar: 6\n});\nexport const base64pad = rfc4648({\n prefix: 'M',\n name: 'base64pad',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',\n bitsPerChar: 6\n});\nexport const base64url = rfc4648({\n prefix: 'u',\n name: 'base64url',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_',\n bitsPerChar: 6\n});\nexport const base64urlpad = rfc4648({\n prefix: 'U',\n name: 'base64urlpad',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=',\n bitsPerChar: 6\n});","import { from } from './base.js';\nconst alphabet = Array.from('\\uD83D\\uDE80\\uD83E\\uDE90\\u2604\\uD83D\\uDEF0\\uD83C\\uDF0C\\uD83C\\uDF11\\uD83C\\uDF12\\uD83C\\uDF13\\uD83C\\uDF14\\uD83C\\uDF15\\uD83C\\uDF16\\uD83C\\uDF17\\uD83C\\uDF18\\uD83C\\uDF0D\\uD83C\\uDF0F\\uD83C\\uDF0E\\uD83D\\uDC09\\u2600\\uD83D\\uDCBB\\uD83D\\uDDA5\\uD83D\\uDCBE\\uD83D\\uDCBF\\uD83D\\uDE02\\u2764\\uD83D\\uDE0D\\uD83E\\uDD23\\uD83D\\uDE0A\\uD83D\\uDE4F\\uD83D\\uDC95\\uD83D\\uDE2D\\uD83D\\uDE18\\uD83D\\uDC4D\\uD83D\\uDE05\\uD83D\\uDC4F\\uD83D\\uDE01\\uD83D\\uDD25\\uD83E\\uDD70\\uD83D\\uDC94\\uD83D\\uDC96\\uD83D\\uDC99\\uD83D\\uDE22\\uD83E\\uDD14\\uD83D\\uDE06\\uD83D\\uDE44\\uD83D\\uDCAA\\uD83D\\uDE09\\u263A\\uD83D\\uDC4C\\uD83E\\uDD17\\uD83D\\uDC9C\\uD83D\\uDE14\\uD83D\\uDE0E\\uD83D\\uDE07\\uD83C\\uDF39\\uD83E\\uDD26\\uD83C\\uDF89\\uD83D\\uDC9E\\u270C\\u2728\\uD83E\\uDD37\\uD83D\\uDE31\\uD83D\\uDE0C\\uD83C\\uDF38\\uD83D\\uDE4C\\uD83D\\uDE0B\\uD83D\\uDC97\\uD83D\\uDC9A\\uD83D\\uDE0F\\uD83D\\uDC9B\\uD83D\\uDE42\\uD83D\\uDC93\\uD83E\\uDD29\\uD83D\\uDE04\\uD83D\\uDE00\\uD83D\\uDDA4\\uD83D\\uDE03\\uD83D\\uDCAF\\uD83D\\uDE48\\uD83D\\uDC47\\uD83C\\uDFB6\\uD83D\\uDE12\\uD83E\\uDD2D\\u2763\\uD83D\\uDE1C\\uD83D\\uDC8B\\uD83D\\uDC40\\uD83D\\uDE2A\\uD83D\\uDE11\\uD83D\\uDCA5\\uD83D\\uDE4B\\uD83D\\uDE1E\\uD83D\\uDE29\\uD83D\\uDE21\\uD83E\\uDD2A\\uD83D\\uDC4A\\uD83E\\uDD73\\uD83D\\uDE25\\uD83E\\uDD24\\uD83D\\uDC49\\uD83D\\uDC83\\uD83D\\uDE33\\u270B\\uD83D\\uDE1A\\uD83D\\uDE1D\\uD83D\\uDE34\\uD83C\\uDF1F\\uD83D\\uDE2C\\uD83D\\uDE43\\uD83C\\uDF40\\uD83C\\uDF37\\uD83D\\uDE3B\\uD83D\\uDE13\\u2B50\\u2705\\uD83E\\uDD7A\\uD83C\\uDF08\\uD83D\\uDE08\\uD83E\\uDD18\\uD83D\\uDCA6\\u2714\\uD83D\\uDE23\\uD83C\\uDFC3\\uD83D\\uDC90\\u2639\\uD83C\\uDF8A\\uD83D\\uDC98\\uD83D\\uDE20\\u261D\\uD83D\\uDE15\\uD83C\\uDF3A\\uD83C\\uDF82\\uD83C\\uDF3B\\uD83D\\uDE10\\uD83D\\uDD95\\uD83D\\uDC9D\\uD83D\\uDE4A\\uD83D\\uDE39\\uD83D\\uDDE3\\uD83D\\uDCAB\\uD83D\\uDC80\\uD83D\\uDC51\\uD83C\\uDFB5\\uD83E\\uDD1E\\uD83D\\uDE1B\\uD83D\\uDD34\\uD83D\\uDE24\\uD83C\\uDF3C\\uD83D\\uDE2B\\u26BD\\uD83E\\uDD19\\u2615\\uD83C\\uDFC6\\uD83E\\uDD2B\\uD83D\\uDC48\\uD83D\\uDE2E\\uD83D\\uDE46\\uD83C\\uDF7B\\uD83C\\uDF43\\uD83D\\uDC36\\uD83D\\uDC81\\uD83D\\uDE32\\uD83C\\uDF3F\\uD83E\\uDDE1\\uD83C\\uDF81\\u26A1\\uD83C\\uDF1E\\uD83C\\uDF88\\u274C\\u270A\\uD83D\\uDC4B\\uD83D\\uDE30\\uD83E\\uDD28\\uD83D\\uDE36\\uD83E\\uDD1D\\uD83D\\uDEB6\\uD83D\\uDCB0\\uD83C\\uDF53\\uD83D\\uDCA2\\uD83E\\uDD1F\\uD83D\\uDE41\\uD83D\\uDEA8\\uD83D\\uDCA8\\uD83E\\uDD2C\\u2708\\uD83C\\uDF80\\uD83C\\uDF7A\\uD83E\\uDD13\\uD83D\\uDE19\\uD83D\\uDC9F\\uD83C\\uDF31\\uD83D\\uDE16\\uD83D\\uDC76\\uD83E\\uDD74\\u25B6\\u27A1\\u2753\\uD83D\\uDC8E\\uD83D\\uDCB8\\u2B07\\uD83D\\uDE28\\uD83C\\uDF1A\\uD83E\\uDD8B\\uD83D\\uDE37\\uD83D\\uDD7A\\u26A0\\uD83D\\uDE45\\uD83D\\uDE1F\\uD83D\\uDE35\\uD83D\\uDC4E\\uD83E\\uDD32\\uD83E\\uDD20\\uD83E\\uDD27\\uD83D\\uDCCC\\uD83D\\uDD35\\uD83D\\uDC85\\uD83E\\uDDD0\\uD83D\\uDC3E\\uD83C\\uDF52\\uD83D\\uDE17\\uD83E\\uDD11\\uD83C\\uDF0A\\uD83E\\uDD2F\\uD83D\\uDC37\\u260E\\uD83D\\uDCA7\\uD83D\\uDE2F\\uD83D\\uDC86\\uD83D\\uDC46\\uD83C\\uDFA4\\uD83D\\uDE47\\uD83C\\uDF51\\u2744\\uD83C\\uDF34\\uD83D\\uDCA3\\uD83D\\uDC38\\uD83D\\uDC8C\\uD83D\\uDCCD\\uD83E\\uDD40\\uD83E\\uDD22\\uD83D\\uDC45\\uD83D\\uDCA1\\uD83D\\uDCA9\\uD83D\\uDC50\\uD83D\\uDCF8\\uD83D\\uDC7B\\uD83E\\uDD10\\uD83E\\uDD2E\\uD83C\\uDFBC\\uD83E\\uDD75\\uD83D\\uDEA9\\uD83C\\uDF4E\\uD83C\\uDF4A\\uD83D\\uDC7C\\uD83D\\uDC8D\\uD83D\\uDCE3\\uD83E\\uDD42');\nconst alphabetBytesToChars = alphabet.reduce((p, c, i) => {\n p[i] = c;\n return p;\n}, []);\nconst alphabetCharsToBytes = alphabet.reduce((p, c, i) => {\n p[c.codePointAt(0)] = i;\n return p;\n}, []);\nfunction encode(data) {\n return data.reduce((p, c) => {\n p += alphabetBytesToChars[c];\n return p;\n }, '');\n}\nfunction decode(str) {\n const byts = [];\n for (const char of str) {\n const byt = alphabetCharsToBytes[char.codePointAt(0)];\n if (byt === undefined) {\n throw new Error(`Non-base256emoji character: ${ char }`);\n }\n byts.push(byt);\n }\n return new Uint8Array(byts);\n}\nexport const base256emoji = from({\n prefix: '\\uD83D\\uDE80',\n name: 'base256emoji',\n encode,\n decode\n});","const textEncoder = new TextEncoder();\nconst textDecoder = new TextDecoder();\nexport const name = 'json';\nexport const code = 512;\nexport const encode = node => textEncoder.encode(JSON.stringify(node));\nexport const decode = data => JSON.parse(textDecoder.decode(data));","import * as identityBase from './bases/identity.js';\nimport * as base2 from './bases/base2.js';\nimport * as base8 from './bases/base8.js';\nimport * as base10 from './bases/base10.js';\nimport * as base16 from './bases/base16.js';\nimport * as base32 from './bases/base32.js';\nimport * as base36 from './bases/base36.js';\nimport * as base58 from './bases/base58.js';\nimport * as base64 from './bases/base64.js';\nimport * as base256emoji from './bases/base256emoji.js';\nimport * as sha2 from './hashes/sha2.js';\nimport * as identity from './hashes/identity.js';\nimport * as raw from './codecs/raw.js';\nimport * as json from './codecs/json.js';\nimport {\n CID,\n hasher,\n digest,\n varint,\n bytes\n} from './index.js';\nconst bases = {\n ...identityBase,\n ...base2,\n ...base8,\n ...base10,\n ...base16,\n ...base32,\n ...base36,\n ...base58,\n ...base64,\n ...base256emoji\n};\nconst hashes = {\n ...sha2,\n ...identity\n};\nconst codecs = {\n raw,\n json\n};\nexport {\n CID,\n hasher,\n digest,\n varint,\n bytes,\n hashes,\n bases,\n codecs\n};","import { bases } from 'multiformats/basics';\nimport { allocUnsafe } from '../alloc.js';\nfunction createCodec(name, prefix, encode, decode) {\n return {\n name,\n prefix,\n encoder: {\n name,\n prefix,\n encode\n },\n decoder: { decode }\n };\n}\nconst string = createCodec('utf8', 'u', buf => {\n const decoder = new TextDecoder('utf8');\n return 'u' + decoder.decode(buf);\n}, str => {\n const encoder = new TextEncoder();\n return encoder.encode(str.substring(1));\n});\nconst ascii = createCodec('ascii', 'a', buf => {\n let string = 'a';\n for (let i = 0; i < buf.length; i++) {\n string += String.fromCharCode(buf[i]);\n }\n return string;\n}, str => {\n str = str.substring(1);\n const buf = allocUnsafe(str.length);\n for (let i = 0; i < str.length; i++) {\n buf[i] = str.charCodeAt(i);\n }\n return buf;\n});\nconst BASES = {\n utf8: string,\n 'utf-8': string,\n hex: bases.base16,\n latin1: ascii,\n ascii: ascii,\n binary: ascii,\n ...bases\n};\nexport default BASES;","import bases from './util/bases.js';\nexport function toString(array, encoding = 'utf8') {\n const base = bases[encoding];\n if (!base) {\n throw new Error(`Unsupported encoding \"${ encoding }\"`);\n }\n if ((encoding === 'utf8' || encoding === 'utf-8') && globalThis.Buffer != null && globalThis.Buffer.from != null) {\n return globalThis.Buffer.from(array.buffer, array.byteOffset, array.byteLength).toString('utf8');\n }\n return base.encoder.encode(array).substring(1);\n}","import bases from './util/bases.js';\nexport function fromString(string, encoding = 'utf8') {\n const base = bases[encoding];\n if (!base) {\n throw new Error(`Unsupported encoding \"${ encoding }\"`);\n }\n if ((encoding === 'utf8' || encoding === 'utf-8') && globalThis.Buffer != null && globalThis.Buffer.from != null) {\n return globalThis.Buffer.from(string, 'utf8');\n }\n return base.decoder.decode(`${ base.prefix }${ string }`);\n}","import { concat } from \"uint8arrays/concat\";\nimport { toString } from \"uint8arrays/to-string\";\nimport { fromString } from \"uint8arrays/from-string\";\nimport { safeJsonParse, safeJsonStringify } from \"@walletconnect/safe-json\";\nimport { DATA_ENCODING, DID_DELIMITER, DID_METHOD, DID_PREFIX, JSON_ENCODING, JWT_DELIMITER, JWT_ENCODING, MULTICODEC_ED25519_BASE, MULTICODEC_ED25519_ENCODING, MULTICODEC_ED25519_HEADER, MULTICODEC_ED25519_LENGTH, } from \"./constants\";\nexport function decodeJSON(str) {\n return safeJsonParse(toString(fromString(str, JWT_ENCODING), JSON_ENCODING));\n}\nexport function encodeJSON(val) {\n return toString(fromString(safeJsonStringify(val), JSON_ENCODING), JWT_ENCODING);\n}\nexport function encodeIss(publicKey) {\n const header = fromString(MULTICODEC_ED25519_HEADER, MULTICODEC_ED25519_ENCODING);\n const multicodec = MULTICODEC_ED25519_BASE +\n toString(concat([header, publicKey]), MULTICODEC_ED25519_ENCODING);\n return [DID_PREFIX, DID_METHOD, multicodec].join(DID_DELIMITER);\n}\nexport function decodeIss(issuer) {\n const [prefix, method, multicodec] = issuer.split(DID_DELIMITER);\n if (prefix !== DID_PREFIX || method !== DID_METHOD) {\n throw new Error(`Issuer must be a DID with method \"key\"`);\n }\n const base = multicodec.slice(0, 1);\n if (base !== MULTICODEC_ED25519_BASE) {\n throw new Error(`Issuer must be a key in mulicodec format`);\n }\n const bytes = fromString(multicodec.slice(1), MULTICODEC_ED25519_ENCODING);\n const type = toString(bytes.slice(0, 2), MULTICODEC_ED25519_ENCODING);\n if (type !== MULTICODEC_ED25519_HEADER) {\n throw new Error(`Issuer must be a public key with type \"Ed25519\"`);\n }\n const publicKey = bytes.slice(2);\n if (publicKey.length !== MULTICODEC_ED25519_LENGTH) {\n throw new Error(`Issuer must be a public key with length 32 bytes`);\n }\n return publicKey;\n}\nexport function encodeSig(bytes) {\n return toString(bytes, JWT_ENCODING);\n}\nexport function decodeSig(encoded) {\n return fromString(encoded, JWT_ENCODING);\n}\nexport function encodeData(params) {\n return fromString([encodeJSON(params.header), encodeJSON(params.payload)].join(JWT_DELIMITER), DATA_ENCODING);\n}\nexport function decodeData(data) {\n const params = toString(data, DATA_ENCODING).split(JWT_DELIMITER);\n const header = decodeJSON(params[0]);\n const payload = decodeJSON(params[1]);\n return { header, payload };\n}\nexport function encodeJWT(params) {\n return [\n encodeJSON(params.header),\n encodeJSON(params.payload),\n encodeSig(params.signature),\n ].join(JWT_DELIMITER);\n}\nexport function decodeJWT(jwt) {\n const params = jwt.split(JWT_DELIMITER);\n const header = decodeJSON(params[0]);\n const payload = decodeJSON(params[1]);\n const signature = decodeSig(params[2]);\n const data = fromString(params.slice(0, 2).join(JWT_DELIMITER), DATA_ENCODING);\n return { header, payload, signature, data };\n}\n//# sourceMappingURL=utils.js.map","import * as ed25519 from \"@stablelib/ed25519\";\nimport { randomBytes } from \"@stablelib/random\";\nimport { fromMiliseconds } from \"@walletconnect/time\";\nimport { JWT_IRIDIUM_ALG, JWT_IRIDIUM_TYP, KEY_PAIR_SEED_LENGTH, } from \"./constants\";\nimport { decodeIss, decodeJWT, encodeData, encodeIss, encodeJWT, } from \"./utils\";\nexport function generateKeyPair(seed = randomBytes(KEY_PAIR_SEED_LENGTH)) {\n return ed25519.generateKeyPairFromSeed(seed);\n}\nexport async function signJWT(sub, aud, ttl, keyPair, iat = fromMiliseconds(Date.now())) {\n const header = { alg: JWT_IRIDIUM_ALG, typ: JWT_IRIDIUM_TYP };\n const iss = encodeIss(keyPair.publicKey);\n const exp = iat + ttl;\n const payload = { iss, sub, aud, iat, exp };\n const data = encodeData({ header, payload });\n const signature = ed25519.sign(keyPair.secretKey, data);\n return encodeJWT({ header, payload, signature });\n}\nexport async function verifyJWT(jwt) {\n const { header, payload, data, signature } = decodeJWT(jwt);\n if (header.alg !== JWT_IRIDIUM_ALG || header.typ !== JWT_IRIDIUM_TYP) {\n throw new Error(\"JWT must use EdDSA algorithm\");\n }\n const publicKey = decodeIss(payload.iss);\n return ed25519.verify(publicKey, data, signature);\n}\n//# sourceMappingURL=api.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getLocalStorage = exports.getLocalStorageOrThrow = exports.getCrypto = exports.getCryptoOrThrow = exports.getLocation = exports.getLocationOrThrow = exports.getNavigator = exports.getNavigatorOrThrow = exports.getDocument = exports.getDocumentOrThrow = exports.getFromWindowOrThrow = exports.getFromWindow = void 0;\nfunction getFromWindow(name) {\n let res = undefined;\n if (typeof window !== \"undefined\" && typeof window[name] !== \"undefined\") {\n res = window[name];\n }\n return res;\n}\nexports.getFromWindow = getFromWindow;\nfunction getFromWindowOrThrow(name) {\n const res = getFromWindow(name);\n if (!res) {\n throw new Error(`${name} is not defined in Window`);\n }\n return res;\n}\nexports.getFromWindowOrThrow = getFromWindowOrThrow;\nfunction getDocumentOrThrow() {\n return getFromWindowOrThrow(\"document\");\n}\nexports.getDocumentOrThrow = getDocumentOrThrow;\nfunction getDocument() {\n return getFromWindow(\"document\");\n}\nexports.getDocument = getDocument;\nfunction getNavigatorOrThrow() {\n return getFromWindowOrThrow(\"navigator\");\n}\nexports.getNavigatorOrThrow = getNavigatorOrThrow;\nfunction getNavigator() {\n return getFromWindow(\"navigator\");\n}\nexports.getNavigator = getNavigator;\nfunction getLocationOrThrow() {\n return getFromWindowOrThrow(\"location\");\n}\nexports.getLocationOrThrow = getLocationOrThrow;\nfunction getLocation() {\n return getFromWindow(\"location\");\n}\nexports.getLocation = getLocation;\nfunction getCryptoOrThrow() {\n return getFromWindowOrThrow(\"crypto\");\n}\nexports.getCryptoOrThrow = getCryptoOrThrow;\nfunction getCrypto() {\n return getFromWindow(\"crypto\");\n}\nexports.getCrypto = getCrypto;\nfunction getLocalStorageOrThrow() {\n return getFromWindowOrThrow(\"localStorage\");\n}\nexports.getLocalStorageOrThrow = getLocalStorageOrThrow;\nfunction getLocalStorage() {\n return getFromWindow(\"localStorage\");\n}\nexports.getLocalStorage = getLocalStorage;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getWindowMetadata = void 0;\nconst window_getters_1 = require(\"@walletconnect/window-getters\");\nfunction getWindowMetadata() {\n let doc;\n let loc;\n try {\n doc = window_getters_1.getDocumentOrThrow();\n loc = window_getters_1.getLocationOrThrow();\n }\n catch (e) {\n return null;\n }\n function getIcons() {\n const links = doc.getElementsByTagName(\"link\");\n const icons = [];\n for (let i = 0; i < links.length; i++) {\n const link = links[i];\n const rel = link.getAttribute(\"rel\");\n if (rel) {\n if (rel.toLowerCase().indexOf(\"icon\") > -1) {\n const href = link.getAttribute(\"href\");\n if (href) {\n if (href.toLowerCase().indexOf(\"https:\") === -1 &&\n href.toLowerCase().indexOf(\"http:\") === -1 &&\n href.indexOf(\"//\") !== 0) {\n let absoluteHref = loc.protocol + \"//\" + loc.host;\n if (href.indexOf(\"/\") === 0) {\n absoluteHref += href;\n }\n else {\n const path = loc.pathname.split(\"/\");\n path.pop();\n const finalPath = path.join(\"/\");\n absoluteHref += finalPath + \"/\" + href;\n }\n icons.push(absoluteHref);\n }\n else if (href.indexOf(\"//\") === 0) {\n const absoluteUrl = loc.protocol + href;\n icons.push(absoluteUrl);\n }\n else {\n icons.push(href);\n }\n }\n }\n }\n }\n return icons;\n }\n function getWindowMetadataOfAny(...args) {\n const metaTags = doc.getElementsByTagName(\"meta\");\n for (let i = 0; i < metaTags.length; i++) {\n const tag = metaTags[i];\n const attributes = [\"itemprop\", \"property\", \"name\"]\n .map((target) => tag.getAttribute(target))\n .filter((attr) => {\n if (attr) {\n return args.includes(attr);\n }\n return false;\n });\n if (attributes.length && attributes) {\n const content = tag.getAttribute(\"content\");\n if (content) {\n return content;\n }\n }\n }\n return \"\";\n }\n function getName() {\n let name = getWindowMetadataOfAny(\"name\", \"og:site_name\", \"og:title\", \"twitter:title\");\n if (!name) {\n name = doc.title;\n }\n return name;\n }\n function getDescription() {\n const description = getWindowMetadataOfAny(\"description\", \"og:description\", \"twitter:description\", \"keywords\");\n return description;\n }\n const name = getName();\n const description = getDescription();\n const url = loc.origin;\n const icons = getIcons();\n const meta = {\n description,\n url,\n icons,\n name,\n };\n return meta;\n}\nexports.getWindowMetadata = getWindowMetadata;\n//# sourceMappingURL=index.js.map","'use strict';\nmodule.exports = str => encodeURIComponent(str).replace(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\n","'use strict';\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp('(' + token + ')|([^%]+?)', 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn [decodeURIComponent(components.join(''))];\n\t} catch (err) {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tvar left = components.slice(0, split);\n\tvar right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch (err) {\n\t\tvar tokens = input.match(singleMatcher) || [];\n\n\t\tfor (var i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher) || [];\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tvar replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD'\n\t};\n\n\tvar match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch (err) {\n\t\t\tvar result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tvar entries = Object.keys(replaceMap);\n\n\tfor (var i = 0; i < entries.length; i++) {\n\t\t// Replace all decoded components\n\t\tvar key = entries[i];\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nmodule.exports = function (encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\tencodedURI = encodedURI.replace(/\\+/g, ' ');\n\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch (err) {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n};\n","'use strict';\n\nmodule.exports = (string, separator) => {\n\tif (!(typeof string === 'string' && typeof separator === 'string')) {\n\t\tthrow new TypeError('Expected the arguments to be of type `string`');\n\t}\n\n\tif (separator === '') {\n\t\treturn [string];\n\t}\n\n\tconst separatorIndex = string.indexOf(separator);\n\n\tif (separatorIndex === -1) {\n\t\treturn [string];\n\t}\n\n\treturn [\n\t\tstring.slice(0, separatorIndex),\n\t\tstring.slice(separatorIndex + separator.length)\n\t];\n};\n","'use strict';\nmodule.exports = function (obj, predicate) {\n\tvar ret = {};\n\tvar keys = Object.keys(obj);\n\tvar isArr = Array.isArray(predicate);\n\n\tfor (var i = 0; i < keys.length; i++) {\n\t\tvar key = keys[i];\n\t\tvar val = obj[key];\n\n\t\tif (isArr ? predicate.indexOf(key) !== -1 : predicate(key, val, obj)) {\n\t\t\tret[key] = val;\n\t\t}\n\t}\n\n\treturn ret;\n};\n","'use strict';\nconst strictUriEncode = require('strict-uri-encode');\nconst decodeComponent = require('decode-uri-component');\nconst splitOnFirst = require('split-on-first');\nconst filterObject = require('filter-obj');\n\nconst isNullOrUndefined = value => value === null || value === undefined;\n\nconst encodeFragmentIdentifier = Symbol('encodeFragmentIdentifier');\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[', index, ']'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('')\n\t\t\t\t];\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[]'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '[]=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'colon-list-separator':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), ':list='].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), ':list=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\tcase 'bracket-separator': {\n\t\t\tconst keyValueSep = options.arrayFormat === 'bracket-separator' ?\n\t\t\t\t'[]=' :\n\t\t\t\t'=';\n\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\t// Translate null to an empty string so that it doesn't serialize as 'null'\n\t\t\t\tvalue = value === null ? '' : value;\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\treturn [[encode(key, options), keyValueSep, encode(value, options)].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n\t\t\t};\n\t\t}\n\n\t\tdefault:\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, encode(key, options)];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'colon-list-separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(:list)$/.exec(key);\n\t\t\t\tkey = key.replace(/:list$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);\n\t\t\t\tconst isEncodedArray = (typeof value === 'string' && !isArray && decode(value, options).includes(options.arrayFormatSeparator));\n\t\t\t\tvalue = isEncodedArray ? decode(value, options) : value;\n\t\t\t\tconst newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(item => decode(item, options)) : value === null ? value : decode(value, options);\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\n\t\tcase 'bracket-separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = /(\\[\\])$/.test(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!isArray) {\n\t\t\t\t\taccumulator[key] = value ? decode(value, options) : value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst arrayValue = value === null ?\n\t\t\t\t\t[] :\n\t\t\t\t\tvalue.split(options.arrayFormatSeparator).map(item => decode(item, options));\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = arrayValue;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], arrayValue);\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction validateArrayFormatSeparator(value) {\n\tif (typeof value !== 'string' || value.length !== 1) {\n\t\tthrow new TypeError('arrayFormatSeparator must be single character string');\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction getHash(url) {\n\tlet hash = '';\n\tconst hashStart = url.indexOf('#');\n\tif (hashStart !== -1) {\n\t\thash = url.slice(hashStart);\n\t}\n\n\treturn hash;\n}\n\nfunction extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nfunction parseValue(value, options) {\n\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\tvalue = Number(value);\n\t} else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\tvalue = value.toLowerCase() === 'true';\n\t}\n\n\treturn value;\n}\n\nfunction parse(query, options) {\n\toptions = Object.assign({\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst ret = Object.create(null);\n\n\tif (typeof query !== 'string') {\n\t\treturn ret;\n\t}\n\n\tquery = query.trim().replace(/^[?#&]/, '');\n\n\tif (!query) {\n\t\treturn ret;\n\t}\n\n\tfor (const param of query.split('&')) {\n\t\tif (param === '') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet [key, value] = splitOnFirst(options.decode ? param.replace(/\\+/g, ' ') : param, '=');\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : ['comma', 'separator', 'bracket-separator'].includes(options.arrayFormat) ? value : decode(value, options);\n\t\tformatter(decode(key, options), value, ret);\n\t}\n\n\tfor (const key of Object.keys(ret)) {\n\t\tconst value = ret[key];\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tfor (const k of Object.keys(value)) {\n\t\t\t\tvalue[k] = parseValue(value[k], options);\n\t\t\t}\n\t\t} else {\n\t\t\tret[key] = parseValue(value, options);\n\t\t}\n\t}\n\n\tif (options.sort === false) {\n\t\treturn ret;\n\t}\n\n\treturn (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = ret[key];\n\t\tif (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(value);\n\t\t} else {\n\t\t\tresult[key] = value;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = (object, options) => {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ','\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst shouldFilter = key => (\n\t\t(options.skipNull && isNullOrUndefined(object[key])) ||\n\t\t(options.skipEmptyString && object[key] === '')\n\t);\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\tconst objectCopy = {};\n\n\tfor (const key of Object.keys(object)) {\n\t\tif (!shouldFilter(key)) {\n\t\t\tobjectCopy[key] = object[key];\n\t\t}\n\t}\n\n\tconst keys = Object.keys(objectCopy);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tconst value = object[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\tif (value.length === 0 && options.arrayFormat === 'bracket-separator') {\n\t\t\t\treturn encode(key, options) + '[]';\n\t\t\t}\n\n\t\t\treturn value\n\t\t\t\t.reduce(formatter(key), [])\n\t\t\t\t.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n};\n\nexports.parseUrl = (url, options) => {\n\toptions = Object.assign({\n\t\tdecode: true\n\t}, options);\n\n\tconst [url_, hash] = splitOnFirst(url, '#');\n\n\treturn Object.assign(\n\t\t{\n\t\t\turl: url_.split('?')[0] || '',\n\t\t\tquery: parse(extract(url), options)\n\t\t},\n\t\toptions && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: decode(hash, options)} : {}\n\t);\n};\n\nexports.stringifyUrl = (object, options) => {\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\t[encodeFragmentIdentifier]: true\n\t}, options);\n\n\tconst url = removeHash(object.url).split('?')[0] || '';\n\tconst queryFromUrl = exports.extract(object.url);\n\tconst parsedQueryFromUrl = exports.parse(queryFromUrl, {sort: false});\n\n\tconst query = Object.assign(parsedQueryFromUrl, object.query);\n\tlet queryString = exports.stringify(query, options);\n\tif (queryString) {\n\t\tqueryString = `?${queryString}`;\n\t}\n\n\tlet hash = getHash(object.url);\n\tif (object.fragmentIdentifier) {\n\t\thash = `#${options[encodeFragmentIdentifier] ? encode(object.fragmentIdentifier, options) : object.fragmentIdentifier}`;\n\t}\n\n\treturn `${url}${queryString}${hash}`;\n};\n\nexports.pick = (input, filter, options) => {\n\toptions = Object.assign({\n\t\tparseFragmentIdentifier: true,\n\t\t[encodeFragmentIdentifier]: false\n\t}, options);\n\n\tconst {url, query, fragmentIdentifier} = exports.parseUrl(input, options);\n\treturn exports.stringifyUrl({\n\t\turl,\n\t\tquery: filterObject(query, filter),\n\t\tfragmentIdentifier\n\t}, options);\n};\n\nexports.exclude = (input, filter, options) => {\n\tconst exclusionFilter = Array.isArray(filter) ? key => !filter.includes(key) : (key, value) => !filter(key, value);\n\n\treturn exports.pick(input, exclusionFilter, options);\n};\n","import { concat } from \"@ethersproject/bytes\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\nexport const messagePrefix = \"\\x19Ethereum Signed Message:\\n\";\nexport function hashMessage(message) {\n if (typeof (message) === \"string\") {\n message = toUtf8Bytes(message);\n }\n return keccak256(concat([\n toUtf8Bytes(messagePrefix),\n toUtf8Bytes(String(message.length)),\n message\n ]));\n}\n//# sourceMappingURL=message.js.map","import BN from 'bn.js';\nimport hash from 'hash.js';\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nfunction createCommonjsModule(fn, basedir, module) {\n\treturn module = {\n\t\tpath: basedir,\n\t\texports: {},\n\t\trequire: function (path, base) {\n\t\t\treturn commonjsRequire(path, (base === undefined || base === null) ? module.path : base);\n\t\t}\n\t}, fn(module, module.exports), module.exports;\n}\n\nfunction getDefaultExportFromNamespaceIfPresent (n) {\n\treturn n && Object.prototype.hasOwnProperty.call(n, 'default') ? n['default'] : n;\n}\n\nfunction getDefaultExportFromNamespaceIfNotNamed (n) {\n\treturn n && Object.prototype.hasOwnProperty.call(n, 'default') && Object.keys(n).length === 1 ? n['default'] : n;\n}\n\nfunction getAugmentedNamespace(n) {\n\tif (n.__esModule) return n;\n\tvar a = Object.defineProperty({}, '__esModule', {value: true});\n\tObject.keys(n).forEach(function (k) {\n\t\tvar d = Object.getOwnPropertyDescriptor(n, k);\n\t\tObject.defineProperty(a, k, d.get ? d : {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\treturn n[k];\n\t\t\t}\n\t\t});\n\t});\n\treturn a;\n}\n\nfunction commonjsRequire () {\n\tthrow new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs');\n}\n\nvar minimalisticAssert = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n\nvar utils_1 = createCommonjsModule(function (module, exports) {\n'use strict';\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg !== 'string') {\n for (var i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n return res;\n }\n if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (var i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n } else {\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n var hi = c >> 8;\n var lo = c & 0xff;\n if (hi)\n res.push(hi, lo);\n else\n res.push(lo);\n }\n }\n return res;\n}\nutils.toArray = toArray;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n if (enc === 'hex')\n return toHex(arr);\n else\n return arr;\n};\n});\n\nvar utils_1$1 = createCommonjsModule(function (module, exports) {\n'use strict';\n\nvar utils = exports;\n\n\n\n\nutils.assert = minimalisticAssert;\nutils.toArray = utils_1.toArray;\nutils.zero2 = utils_1.zero2;\nutils.toHex = utils_1.toHex;\nutils.encode = utils_1.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n var i;\n for (i = 0; i < naf.length; i += 1) {\n naf[i] = 0;\n }\n\n var ws = 1 << (w + 1);\n var k = num.clone();\n\n for (i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n [],\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n var m8;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n});\n\n'use strict';\n\n\n\nvar getNAF = utils_1$1.getNAF;\nvar getJSF = utils_1$1.getJSF;\nvar assert$1 = utils_1$1.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nvar base = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert$1(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n var j;\n var nafW;\n for (j = 0; j < naf.length; j += doubles.step) {\n nafW = 0;\n for (var l = j + doubles.step - 1; l >= j; l--)\n nafW = (nafW << 1) + naf[l];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (j = 0; j < repr.length; j++) {\n nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var l = 0; i >= 0 && naf[i] === 0; i--)\n l++;\n if (i >= 0)\n l++;\n acc = acc.dblp(l);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert$1(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n var i;\n var j;\n var p;\n for (i = 0; i < len; i++) {\n p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b], /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3, /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (j = 0; j < len; j++) {\n var z = tmp[j];\n p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils_1$1.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert$1(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert$1(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len));\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils_1$1.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null,\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles,\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res,\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n\nvar inherits_browser = createCommonjsModule(function (module) {\nif (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n };\n}\n});\n\n'use strict';\n\n\n\n\n\n\nvar assert$2 = utils_1$1.assert;\n\nfunction ShortCurve(conf) {\n base.call(this, 'short', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n\n // If the curve is endomorphic, precalculate beta and lambda\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits_browser(ShortCurve, base);\nvar short_1 = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n\n // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n // Choose the smallest beta\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert$2(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n\n // Get basis vectors, used for balanced length-two representation\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16),\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis,\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [ l1, l2 ];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n\n // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1);\n\n // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n var a0;\n var b0;\n // First vector\n var a1;\n var b1;\n // Second vector\n var a2;\n var b2;\n\n var prevR;\n var i = 0;\n var r;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r;\n\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r.neg();\n b2 = x;\n\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n\n // Normalize signs\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 },\n ];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n\n // Calculate answer\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1: k1, k2: k2 };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf)\n return true;\n\n var x = point.x;\n var y = point.y;\n\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd =\n function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n\n // Clean-up references to points and coefficients\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n };\n\nfunction Point(curve, x, y, isRed) {\n base.BasePoint.call(this, curve, 'affine');\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n // Force redgomery representation when loading from JSON\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits_browser(Point, base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo)\n return;\n\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul),\n },\n };\n }\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [ this.x, this.y ];\n\n return [ this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1),\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1),\n },\n } ];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string')\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [ res ].concat(pre.doubles.points.map(obj2point)),\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [ res ].concat(pre.naf.points.map(obj2point)),\n },\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf)\n return p;\n\n // P + O = P\n if (p.inf)\n return this;\n\n // P + P = 2P\n if (this.eq(p))\n return this.dbl();\n\n // P + (-P) = O\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n\n // P + Q = O\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n\n // 2P = O\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n\n var a = this.curve.a;\n\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([ this ], [ k ]);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p ||\n this.inf === p.inf &&\n (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate),\n },\n };\n }\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n base.BasePoint.call(this, curve, 'jacobian');\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n\n this.zOne = this.z === this.curve.one;\n}\ninherits_browser(JPoint, base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity())\n return p;\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 12M + 4S + 7A\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity())\n return p.toJ();\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 8M + 3S + 7A\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n\n var i;\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n for (i = 0; i < pow; i++)\n r = r.dbl();\n return r;\n }\n\n // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n // Reuse results\n var jyd = jy.redAdd(jy);\n for (i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // T = M ^ 2 - 2*S\n var t = m.redSqr().redISub(s).redISub(s);\n\n // 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2*Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = B^2\n var c = b.redSqr();\n // D = 2 * ((X1 + B)^2 - A - C)\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n // E = 3 * A\n var e = a.redAdd(a).redIAdd(a);\n // F = E^2\n var f = e.redSqr();\n\n // 8 * C\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n\n // X3 = F - 2 * D\n nx = f.redISub(d).redISub(d);\n // Y3 = E * (D - X3) - 8 * C\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n // Z3 = 2 * Y1 * Z1\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n // T = M^2 - 2 * S\n var t = m.redSqr().redISub(s).redISub(s);\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2 * Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n\n // delta = Z1^2\n var delta = this.z.redSqr();\n // gamma = Y1^2\n var gamma = this.y.redSqr();\n // beta = X1 * gamma\n var beta = this.x.redMul(gamma);\n // alpha = 3 * (X1 - delta) * (X1 + delta)\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n // X3 = alpha^2 - 8 * beta\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n // Z3 = (Y1 + Z1)^2 - gamma - delta\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n\n // 4M + 6S + 10A\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // ZZ = Z1^2\n var zz = this.z.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // M = 3 * XX + a * ZZ2; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // MM = M^2\n var mm = m.redSqr();\n // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n // EE = E^2\n var ee = e.redSqr();\n // T = 16*YYYY\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n // U = (M + E)^2 - MM - EE - T\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n // X3 = 4 * (X1 * EE - 4 * YY * U)\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n // Z3 = (Z1 + E)^2 - ZZ - EE\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine')\n return this.eq(p.toJ());\n\n if (this === p)\n return true;\n\n // x1 * z2^2 == x2 * z1^2\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n\n // y1 * z2^3 == y2 * z1^3\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n\nvar curve_1 = createCommonjsModule(function (module, exports) {\n'use strict';\n\nvar curve = exports;\n\ncurve.base = base;\ncurve.short = short_1;\ncurve.mont = /*RicMoo:ethers:require(./mont)*/(null);\ncurve.edwards = /*RicMoo:ethers:require(./edwards)*/(null);\n});\n\nvar curves_1 = createCommonjsModule(function (module, exports) {\n'use strict';\n\nvar curves = exports;\n\n\n\n\n\nvar assert = utils_1$1.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve_1.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve_1.edwards(options);\n else\n this.curve = new curve_1.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve,\n });\n return curve;\n },\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811',\n ],\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34',\n ],\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5',\n ],\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f',\n ],\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650',\n ],\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9',\n ],\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658',\n ],\n});\n\nvar pre;\ntry {\n pre = /*RicMoo:ethers:require(./precomputed/secp256k1)*/(null).crash();\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3',\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15',\n },\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre,\n ],\n});\n});\n\n'use strict';\n\n\n\n\n\nfunction HmacDRBG(options) {\n if (!(this instanceof HmacDRBG))\n return new HmacDRBG(options);\n this.hash = options.hash;\n this.predResist = !!options.predResist;\n\n this.outLen = this.hash.outSize;\n this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n\n this._reseed = null;\n this.reseedInterval = null;\n this.K = null;\n this.V = null;\n\n var entropy = utils_1.toArray(options.entropy, options.entropyEnc || 'hex');\n var nonce = utils_1.toArray(options.nonce, options.nonceEnc || 'hex');\n var pers = utils_1.toArray(options.pers, options.persEnc || 'hex');\n minimalisticAssert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n this._init(entropy, nonce, pers);\n}\nvar hmacDrbg = HmacDRBG;\n\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n var seed = entropy.concat(nonce).concat(pers);\n\n this.K = new Array(this.outLen / 8);\n this.V = new Array(this.outLen / 8);\n for (var i = 0; i < this.V.length; i++) {\n this.K[i] = 0x00;\n this.V[i] = 0x01;\n }\n\n this._update(seed);\n this._reseed = 1;\n this.reseedInterval = 0x1000000000000; // 2^48\n};\n\nHmacDRBG.prototype._hmac = function hmac() {\n return new hash.hmac(this.hash, this.K);\n};\n\nHmacDRBG.prototype._update = function update(seed) {\n var kmac = this._hmac()\n .update(this.V)\n .update([ 0x00 ]);\n if (seed)\n kmac = kmac.update(seed);\n this.K = kmac.digest();\n this.V = this._hmac().update(this.V).digest();\n if (!seed)\n return;\n\n this.K = this._hmac()\n .update(this.V)\n .update([ 0x01 ])\n .update(seed)\n .digest();\n this.V = this._hmac().update(this.V).digest();\n};\n\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {\n // Optional entropy enc\n if (typeof entropyEnc !== 'string') {\n addEnc = add;\n add = entropyEnc;\n entropyEnc = null;\n }\n\n entropy = utils_1.toArray(entropy, entropyEnc);\n add = utils_1.toArray(add, addEnc);\n\n minimalisticAssert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n this._update(entropy.concat(add || []));\n this._reseed = 1;\n};\n\nHmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {\n if (this._reseed > this.reseedInterval)\n throw new Error('Reseed is required');\n\n // Optional encoding\n if (typeof enc !== 'string') {\n addEnc = add;\n add = enc;\n enc = null;\n }\n\n // Optional additional data\n if (add) {\n add = utils_1.toArray(add, addEnc || 'hex');\n this._update(add);\n }\n\n var temp = [];\n while (temp.length < len) {\n this.V = this._hmac().update(this.V).digest();\n temp = temp.concat(this.V);\n }\n\n var res = temp.slice(0, len);\n this._update(add);\n this._reseed++;\n return utils_1.encode(res, enc);\n};\n\n'use strict';\n\n\n\nvar assert$3 = utils_1$1.assert;\n\nfunction KeyPair(ec, options) {\n this.ec = ec;\n this.priv = null;\n this.pub = null;\n\n // KeyPair(ec, { priv: ..., pub: ... })\n if (options.priv)\n this._importPrivate(options.priv, options.privEnc);\n if (options.pub)\n this._importPublic(options.pub, options.pubEnc);\n}\nvar key = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n if (pub instanceof KeyPair)\n return pub;\n\n return new KeyPair(ec, {\n pub: pub,\n pubEnc: enc,\n });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n if (priv instanceof KeyPair)\n return priv;\n\n return new KeyPair(ec, {\n priv: priv,\n privEnc: enc,\n });\n};\n\nKeyPair.prototype.validate = function validate() {\n var pub = this.getPublic();\n\n if (pub.isInfinity())\n return { result: false, reason: 'Invalid public key' };\n if (!pub.validate())\n return { result: false, reason: 'Public key is not a point' };\n if (!pub.mul(this.ec.curve.n).isInfinity())\n return { result: false, reason: 'Public key * N != O' };\n\n return { result: true, reason: null };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n // compact is optional argument\n if (typeof compact === 'string') {\n enc = compact;\n compact = null;\n }\n\n if (!this.pub)\n this.pub = this.ec.g.mul(this.priv);\n\n if (!enc)\n return this.pub;\n\n return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n if (enc === 'hex')\n return this.priv.toString(16, 2);\n else\n return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n this.priv = new BN(key, enc || 16);\n\n // Ensure that the priv won't be bigger than n, otherwise we may fail\n // in fixed multiplication method\n this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n if (key.x || key.y) {\n // Montgomery points only have an `x` coordinate.\n // Weierstrass/Edwards points on the other hand have both `x` and\n // `y` coordinates.\n if (this.ec.curve.type === 'mont') {\n assert$3(key.x, 'Need x coordinate');\n } else if (this.ec.curve.type === 'short' ||\n this.ec.curve.type === 'edwards') {\n assert$3(key.x && key.y, 'Need both x and y coordinate');\n }\n this.pub = this.ec.curve.point(key.x, key.y);\n return;\n }\n this.pub = this.ec.curve.decodePoint(key, enc);\n};\n\n// ECDH\nKeyPair.prototype.derive = function derive(pub) {\n if(!pub.validate()) {\n assert$3(pub.validate(), 'public point not validated');\n }\n return pub.mul(this.priv).getX();\n};\n\n// ECDSA\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature, options) {\n return this.ec.verify(msg, signature, this, undefined, options);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n return '';\n};\n\n'use strict';\n\n\n\n\nvar assert$4 = utils_1$1.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature)\n return options;\n\n if (this._importDER(options, enc))\n return;\n\n assert$4(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined)\n this.recoveryParam = null;\n else\n this.recoveryParam = options.recoveryParam;\n}\nvar signature = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n if (!(initial & 0x80)) {\n return initial;\n }\n var octetLen = initial & 0xf;\n\n // Indefinite length or overflow\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n\n if(buf[p.place] === 0x00) {\n return false;\n }\n\n var val = 0;\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n }\n\n // Leading zeroes\n if (val <= 0x7f) {\n return false;\n }\n\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n if (i === 0) {\n return buf;\n }\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils_1$1.toArray(data, enc);\n var p = new Position();\n if (data[p.place++] !== 0x30) {\n return false;\n }\n var len = getLength(data, p);\n if (len === false) {\n return false;\n }\n if ((len + p.place) !== data.length) {\n return false;\n }\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var rlen = getLength(data, p);\n if (rlen === false) {\n return false;\n }\n if ((data[p.place] & 128) !== 0) {\n return false;\n }\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var slen = getLength(data, p);\n if (slen === false) {\n return false;\n }\n if (data.length !== slen + p.place) {\n return false;\n }\n if ((data[p.place] & 128) !== 0) {\n return false;\n }\n var s = data.slice(p.place, slen + p.place);\n if (r[0] === 0) {\n if (r[1] & 0x80) {\n r = r.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n if (s[0] === 0) {\n if (s[1] & 0x80) {\n s = s.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n while (--octets) {\n arr.push((len >>> (octets << 3)) & 0xff);\n }\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray();\n\n // Pad values\n if (r[0] & 0x80)\n r = [ 0 ].concat(r);\n // Pad values\n if (s[0] & 0x80)\n s = [ 0 ].concat(s);\n\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n var arr = [ 0x02 ];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [ 0x30 ];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils_1$1.encode(res, enc);\n};\n\n'use strict';\n\n\n\n\n\nvar rand = /*RicMoo:ethers:require(brorand)*/(function() { throw new Error('unsupported'); });\nvar assert$5 = utils_1$1.assert;\n\n\n\n\nfunction EC(options) {\n if (!(this instanceof EC))\n return new EC(options);\n\n // Shortcut `elliptic.ec(curve-name)`\n if (typeof options === 'string') {\n assert$5(Object.prototype.hasOwnProperty.call(curves_1, options),\n 'Unknown curve ' + options);\n\n options = curves_1[options];\n }\n\n // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n if (options instanceof curves_1.PresetCurve)\n options = { curve: options };\n\n this.curve = options.curve.curve;\n this.n = this.curve.n;\n this.nh = this.n.ushrn(1);\n this.g = this.curve.g;\n\n // Point on curve\n this.g = options.curve.g;\n this.g.precompute(options.curve.n.bitLength() + 1);\n\n // Hash for function for DRBG\n this.hash = options.hash || options.curve.hash;\n}\nvar ec = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n return new key(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n return key.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n return key.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n if (!options)\n options = {};\n\n // Instantiate Hmac_DRBG\n var drbg = new hmacDrbg({\n hash: this.hash,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n entropy: options.entropy || rand(this.hash.hmacStrength),\n entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n nonce: this.n.toArray(),\n });\n\n var bytes = this.n.byteLength();\n var ns2 = this.n.sub(new BN(2));\n for (;;) {\n var priv = new BN(drbg.generate(bytes));\n if (priv.cmp(ns2) > 0)\n continue;\n\n priv.iaddn(1);\n return this.keyFromPrivate(priv);\n }\n};\n\nEC.prototype._truncateToN = function _truncateToN(msg, truncOnly, bitLength) {\n var byteLength;\n if (BN.isBN(msg) || typeof msg === 'number') {\n msg = new BN(msg, 16);\n byteLength = msg.byteLength();\n } else if (typeof msg === 'object') {\n // BN assumes an array-like input and asserts length\n byteLength = msg.length;\n msg = new BN(msg, 16);\n } else {\n // BN converts the value to string\n var str = msg.toString();\n // HEX encoding\n byteLength = (str.length + 1) >>> 1;\n msg = new BN(str, 16);\n }\n // Allow overriding\n if (typeof bitLength !== 'number') {\n bitLength = byteLength * 8;\n }\n var delta = bitLength - this.n.bitLength();\n if (delta > 0)\n msg = msg.ushrn(delta);\n if (!truncOnly && msg.cmp(this.n) >= 0)\n return msg.sub(this.n);\n else\n return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n if (typeof enc === 'object') {\n options = enc;\n enc = null;\n }\n if (!options)\n options = {};\n\n if (typeof msg !== 'string' && typeof msg !== 'number' && !BN.isBN(msg)) {\n assert$5(typeof msg === 'object' && msg && typeof msg.length === 'number',\n 'Expected message to be an array-like, a hex string, or a BN instance');\n assert$5((msg.length >>> 0) === msg.length); // non-negative 32-bit integer\n for (var i = 0; i < msg.length; i++) assert$5((msg[i] & 255) === msg[i]);\n }\n\n key = this.keyFromPrivate(key, enc);\n msg = this._truncateToN(msg, false, options.msgBitLength);\n\n // Would fail further checks, but let's make the error message clear\n assert$5(!msg.isNeg(), 'Can not sign a negative message');\n\n // Zero-extend key to provide enough entropy\n var bytes = this.n.byteLength();\n var bkey = key.getPrivate().toArray('be', bytes);\n\n // Zero-extend nonce to have the same byte size as N\n var nonce = msg.toArray('be', bytes);\n\n // Recheck nonce to be bijective to msg\n assert$5((new BN(nonce)).eq(msg), 'Can not sign message');\n\n // Instantiate Hmac_DRBG\n var drbg = new hmacDrbg({\n hash: this.hash,\n entropy: bkey,\n nonce: nonce,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n });\n\n // Number of bytes to generate\n var ns1 = this.n.sub(new BN(1));\n\n for (var iter = 0; ; iter++) {\n var k = options.k ?\n options.k(iter) :\n new BN(drbg.generate(this.n.byteLength()));\n k = this._truncateToN(k, true);\n if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)\n continue;\n\n var kp = this.g.mul(k);\n if (kp.isInfinity())\n continue;\n\n var kpX = kp.getX();\n var r = kpX.umod(this.n);\n if (r.cmpn(0) === 0)\n continue;\n\n var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n s = s.umod(this.n);\n if (s.cmpn(0) === 0)\n continue;\n\n var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |\n (kpX.cmp(r) !== 0 ? 2 : 0);\n\n // Use complement of `s`, if it is > `n / 2`\n if (options.canonical && s.cmp(this.nh) > 0) {\n s = this.n.sub(s);\n recoveryParam ^= 1;\n }\n\n return new signature({ r: r, s: s, recoveryParam: recoveryParam });\n }\n};\n\nEC.prototype.verify = function verify(msg, signature$1, key, enc, options) {\n if (!options)\n options = {};\n\n msg = this._truncateToN(msg, false, options.msgBitLength);\n key = this.keyFromPublic(key, enc);\n signature$1 = new signature(signature$1, 'hex');\n\n // Perform primitive values validation\n var r = signature$1.r;\n var s = signature$1.s;\n if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)\n return false;\n if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)\n return false;\n\n // Validate signature\n var sinv = s.invm(this.n);\n var u1 = sinv.mul(msg).umod(this.n);\n var u2 = sinv.mul(r).umod(this.n);\n var p;\n\n if (!this.curve._maxwellTrick) {\n p = this.g.mulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n return p.getX().umod(this.n).cmp(r) === 0;\n }\n\n // NOTE: Greg Maxwell's trick, inspired by:\n // https://git.io/vad3K\n\n p = this.g.jmulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n // Compare `p.x` of Jacobian point with `r`,\n // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n // inverse of `p.z^2`\n return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function(msg, signature$1, j, enc) {\n assert$5((3 & j) === j, 'The recovery param is more than two bits');\n signature$1 = new signature(signature$1, enc);\n\n var n = this.n;\n var e = new BN(msg);\n var r = signature$1.r;\n var s = signature$1.s;\n\n // A set LSB signifies that the y-coordinate is odd\n var isYOdd = j & 1;\n var isSecondKey = j >> 1;\n if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)\n throw new Error('Unable to find sencond key candinate');\n\n // 1.1. Let x = r + jn.\n if (isSecondKey)\n r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);\n else\n r = this.curve.pointFromX(r, isYOdd);\n\n var rInv = signature$1.r.invm(n);\n var s1 = n.sub(e).mul(rInv).umod(n);\n var s2 = s.mul(rInv).umod(n);\n\n // 1.6.1 Compute Q = r^-1 (sR - eG)\n // Q = r^-1 (sR + -eG)\n return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function(e, signature$1, Q, enc) {\n signature$1 = new signature(signature$1, enc);\n if (signature$1.recoveryParam !== null)\n return signature$1.recoveryParam;\n\n for (var i = 0; i < 4; i++) {\n var Qprime;\n try {\n Qprime = this.recoverPubKey(e, signature$1, i);\n } catch (e) {\n continue;\n }\n\n if (Qprime.eq(Q))\n return i;\n }\n throw new Error('Unable to find valid recovery factor');\n};\n\nvar elliptic_1 = createCommonjsModule(function (module, exports) {\n'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = /*RicMoo:ethers*/{ version: \"6.6.1\" }.version;\nelliptic.utils = utils_1$1;\nelliptic.rand = /*RicMoo:ethers:require(brorand)*/(function() { throw new Error('unsupported'); });\nelliptic.curve = curve_1;\nelliptic.curves = curves_1;\n\n// Protocols\nelliptic.ec = ec;\nelliptic.eddsa = /*RicMoo:ethers:require(./elliptic/eddsa)*/(null);\n});\n\nvar EC$1 = elliptic_1.ec;\n\nexport { EC$1 as EC };\n//# sourceMappingURL=elliptic.js.map\n","export const version = \"signing-key/5.8.0\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nimport { EC } from \"./elliptic\";\nimport { arrayify, hexDataLength, hexlify, hexZeroPad, splitSignature } from \"@ethersproject/bytes\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nlet _curve = null;\nfunction getCurve() {\n if (!_curve) {\n _curve = new EC(\"secp256k1\");\n }\n return _curve;\n}\nexport class SigningKey {\n constructor(privateKey) {\n defineReadOnly(this, \"curve\", \"secp256k1\");\n defineReadOnly(this, \"privateKey\", hexlify(privateKey));\n if (hexDataLength(this.privateKey) !== 32) {\n logger.throwArgumentError(\"invalid private key\", \"privateKey\", \"[[ REDACTED ]]\");\n }\n const keyPair = getCurve().keyFromPrivate(arrayify(this.privateKey));\n defineReadOnly(this, \"publicKey\", \"0x\" + keyPair.getPublic(false, \"hex\"));\n defineReadOnly(this, \"compressedPublicKey\", \"0x\" + keyPair.getPublic(true, \"hex\"));\n defineReadOnly(this, \"_isSigningKey\", true);\n }\n _addPoint(other) {\n const p0 = getCurve().keyFromPublic(arrayify(this.publicKey));\n const p1 = getCurve().keyFromPublic(arrayify(other));\n return \"0x\" + p0.pub.add(p1.pub).encodeCompressed(\"hex\");\n }\n signDigest(digest) {\n const keyPair = getCurve().keyFromPrivate(arrayify(this.privateKey));\n const digestBytes = arrayify(digest);\n if (digestBytes.length !== 32) {\n logger.throwArgumentError(\"bad digest length\", \"digest\", digest);\n }\n const signature = keyPair.sign(digestBytes, { canonical: true });\n return splitSignature({\n recoveryParam: signature.recoveryParam,\n r: hexZeroPad(\"0x\" + signature.r.toString(16), 32),\n s: hexZeroPad(\"0x\" + signature.s.toString(16), 32),\n });\n }\n computeSharedSecret(otherKey) {\n const keyPair = getCurve().keyFromPrivate(arrayify(this.privateKey));\n const otherKeyPair = getCurve().keyFromPublic(arrayify(computePublicKey(otherKey)));\n return hexZeroPad(\"0x\" + keyPair.derive(otherKeyPair.getPublic()).toString(16), 32);\n }\n static isSigningKey(value) {\n return !!(value && value._isSigningKey);\n }\n}\nexport function recoverPublicKey(digest, signature) {\n const sig = splitSignature(signature);\n const rs = { r: arrayify(sig.r), s: arrayify(sig.s) };\n return \"0x\" + getCurve().recoverPubKey(arrayify(digest), rs, sig.recoveryParam).encode(\"hex\", false);\n}\nexport function computePublicKey(key, compressed) {\n const bytes = arrayify(key);\n if (bytes.length === 32) {\n const signingKey = new SigningKey(bytes);\n if (compressed) {\n return \"0x\" + getCurve().keyFromPrivate(bytes).getPublic(true, \"hex\");\n }\n return signingKey.publicKey;\n }\n else if (bytes.length === 33) {\n if (compressed) {\n return hexlify(bytes);\n }\n return \"0x\" + getCurve().keyFromPublic(bytes).getPublic(false, \"hex\");\n }\n else if (bytes.length === 65) {\n if (!compressed) {\n return hexlify(bytes);\n }\n return \"0x\" + getCurve().keyFromPublic(bytes).getPublic(true, \"hex\");\n }\n return logger.throwArgumentError(\"invalid public or private key\", \"key\", \"[REDACTED]\");\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nimport { getAddress } from \"@ethersproject/address\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { arrayify, hexConcat, hexDataLength, hexDataSlice, hexlify, hexZeroPad, isBytesLike, splitSignature, stripZeros, } from \"@ethersproject/bytes\";\nimport { Zero } from \"@ethersproject/constants\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { checkProperties } from \"@ethersproject/properties\";\nimport * as RLP from \"@ethersproject/rlp\";\nimport { computePublicKey, recoverPublicKey } from \"@ethersproject/signing-key\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nexport var TransactionTypes;\n(function (TransactionTypes) {\n TransactionTypes[TransactionTypes[\"legacy\"] = 0] = \"legacy\";\n TransactionTypes[TransactionTypes[\"eip2930\"] = 1] = \"eip2930\";\n TransactionTypes[TransactionTypes[\"eip1559\"] = 2] = \"eip1559\";\n})(TransactionTypes || (TransactionTypes = {}));\n;\n///////////////////////////////\nfunction handleAddress(value) {\n if (value === \"0x\") {\n return null;\n }\n return getAddress(value);\n}\nfunction handleNumber(value) {\n if (value === \"0x\") {\n return Zero;\n }\n return BigNumber.from(value);\n}\n// Legacy Transaction Fields\nconst transactionFields = [\n { name: \"nonce\", maxLength: 32, numeric: true },\n { name: \"gasPrice\", maxLength: 32, numeric: true },\n { name: \"gasLimit\", maxLength: 32, numeric: true },\n { name: \"to\", length: 20 },\n { name: \"value\", maxLength: 32, numeric: true },\n { name: \"data\" },\n];\nconst allowedTransactionKeys = {\n chainId: true, data: true, gasLimit: true, gasPrice: true, nonce: true, to: true, type: true, value: true\n};\nexport function computeAddress(key) {\n const publicKey = computePublicKey(key);\n return getAddress(hexDataSlice(keccak256(hexDataSlice(publicKey, 1)), 12));\n}\nexport function recoverAddress(digest, signature) {\n return computeAddress(recoverPublicKey(arrayify(digest), signature));\n}\nfunction formatNumber(value, name) {\n const result = stripZeros(BigNumber.from(value).toHexString());\n if (result.length > 32) {\n logger.throwArgumentError(\"invalid length for \" + name, (\"transaction:\" + name), value);\n }\n return result;\n}\nfunction accessSetify(addr, storageKeys) {\n return {\n address: getAddress(addr),\n storageKeys: (storageKeys || []).map((storageKey, index) => {\n if (hexDataLength(storageKey) !== 32) {\n logger.throwArgumentError(\"invalid access list storageKey\", `accessList[${addr}:${index}]`, storageKey);\n }\n return storageKey.toLowerCase();\n })\n };\n}\nexport function accessListify(value) {\n if (Array.isArray(value)) {\n return value.map((set, index) => {\n if (Array.isArray(set)) {\n if (set.length > 2) {\n logger.throwArgumentError(\"access list expected to be [ address, storageKeys[] ]\", `value[${index}]`, set);\n }\n return accessSetify(set[0], set[1]);\n }\n return accessSetify(set.address, set.storageKeys);\n });\n }\n const result = Object.keys(value).map((addr) => {\n const storageKeys = value[addr].reduce((accum, storageKey) => {\n accum[storageKey] = true;\n return accum;\n }, {});\n return accessSetify(addr, Object.keys(storageKeys).sort());\n });\n result.sort((a, b) => (a.address.localeCompare(b.address)));\n return result;\n}\nfunction formatAccessList(value) {\n return accessListify(value).map((set) => [set.address, set.storageKeys]);\n}\nfunction _serializeEip1559(transaction, signature) {\n // If there is an explicit gasPrice, make sure it matches the\n // EIP-1559 fees; otherwise they may not understand what they\n // think they are setting in terms of fee.\n if (transaction.gasPrice != null) {\n const gasPrice = BigNumber.from(transaction.gasPrice);\n const maxFeePerGas = BigNumber.from(transaction.maxFeePerGas || 0);\n if (!gasPrice.eq(maxFeePerGas)) {\n logger.throwArgumentError(\"mismatch EIP-1559 gasPrice != maxFeePerGas\", \"tx\", {\n gasPrice, maxFeePerGas\n });\n }\n }\n const fields = [\n formatNumber(transaction.chainId || 0, \"chainId\"),\n formatNumber(transaction.nonce || 0, \"nonce\"),\n formatNumber(transaction.maxPriorityFeePerGas || 0, \"maxPriorityFeePerGas\"),\n formatNumber(transaction.maxFeePerGas || 0, \"maxFeePerGas\"),\n formatNumber(transaction.gasLimit || 0, \"gasLimit\"),\n ((transaction.to != null) ? getAddress(transaction.to) : \"0x\"),\n formatNumber(transaction.value || 0, \"value\"),\n (transaction.data || \"0x\"),\n (formatAccessList(transaction.accessList || []))\n ];\n if (signature) {\n const sig = splitSignature(signature);\n fields.push(formatNumber(sig.recoveryParam, \"recoveryParam\"));\n fields.push(stripZeros(sig.r));\n fields.push(stripZeros(sig.s));\n }\n return hexConcat([\"0x02\", RLP.encode(fields)]);\n}\nfunction _serializeEip2930(transaction, signature) {\n const fields = [\n formatNumber(transaction.chainId || 0, \"chainId\"),\n formatNumber(transaction.nonce || 0, \"nonce\"),\n formatNumber(transaction.gasPrice || 0, \"gasPrice\"),\n formatNumber(transaction.gasLimit || 0, \"gasLimit\"),\n ((transaction.to != null) ? getAddress(transaction.to) : \"0x\"),\n formatNumber(transaction.value || 0, \"value\"),\n (transaction.data || \"0x\"),\n (formatAccessList(transaction.accessList || []))\n ];\n if (signature) {\n const sig = splitSignature(signature);\n fields.push(formatNumber(sig.recoveryParam, \"recoveryParam\"));\n fields.push(stripZeros(sig.r));\n fields.push(stripZeros(sig.s));\n }\n return hexConcat([\"0x01\", RLP.encode(fields)]);\n}\n// Legacy Transactions and EIP-155\nfunction _serialize(transaction, signature) {\n checkProperties(transaction, allowedTransactionKeys);\n const raw = [];\n transactionFields.forEach(function (fieldInfo) {\n let value = transaction[fieldInfo.name] || ([]);\n const options = {};\n if (fieldInfo.numeric) {\n options.hexPad = \"left\";\n }\n value = arrayify(hexlify(value, options));\n // Fixed-width field\n if (fieldInfo.length && value.length !== fieldInfo.length && value.length > 0) {\n logger.throwArgumentError(\"invalid length for \" + fieldInfo.name, (\"transaction:\" + fieldInfo.name), value);\n }\n // Variable-width (with a maximum)\n if (fieldInfo.maxLength) {\n value = stripZeros(value);\n if (value.length > fieldInfo.maxLength) {\n logger.throwArgumentError(\"invalid length for \" + fieldInfo.name, (\"transaction:\" + fieldInfo.name), value);\n }\n }\n raw.push(hexlify(value));\n });\n let chainId = 0;\n if (transaction.chainId != null) {\n // A chainId was provided; if non-zero we'll use EIP-155\n chainId = transaction.chainId;\n if (typeof (chainId) !== \"number\") {\n logger.throwArgumentError(\"invalid transaction.chainId\", \"transaction\", transaction);\n }\n }\n else if (signature && !isBytesLike(signature) && signature.v > 28) {\n // No chainId provided, but the signature is signing with EIP-155; derive chainId\n chainId = Math.floor((signature.v - 35) / 2);\n }\n // We have an EIP-155 transaction (chainId was specified and non-zero)\n if (chainId !== 0) {\n raw.push(hexlify(chainId)); // @TODO: hexValue?\n raw.push(\"0x\");\n raw.push(\"0x\");\n }\n // Requesting an unsigned transaction\n if (!signature) {\n return RLP.encode(raw);\n }\n // The splitSignature will ensure the transaction has a recoveryParam in the\n // case that the signTransaction function only adds a v.\n const sig = splitSignature(signature);\n // We pushed a chainId and null r, s on for hashing only; remove those\n let v = 27 + sig.recoveryParam;\n if (chainId !== 0) {\n raw.pop();\n raw.pop();\n raw.pop();\n v += chainId * 2 + 8;\n // If an EIP-155 v (directly or indirectly; maybe _vs) was provided, check it!\n if (sig.v > 28 && sig.v !== v) {\n logger.throwArgumentError(\"transaction.chainId/signature.v mismatch\", \"signature\", signature);\n }\n }\n else if (sig.v !== v) {\n logger.throwArgumentError(\"transaction.chainId/signature.v mismatch\", \"signature\", signature);\n }\n raw.push(hexlify(v));\n raw.push(stripZeros(arrayify(sig.r)));\n raw.push(stripZeros(arrayify(sig.s)));\n return RLP.encode(raw);\n}\nexport function serialize(transaction, signature) {\n // Legacy and EIP-155 Transactions\n if (transaction.type == null || transaction.type === 0) {\n if (transaction.accessList != null) {\n logger.throwArgumentError(\"untyped transactions do not support accessList; include type: 1\", \"transaction\", transaction);\n }\n return _serialize(transaction, signature);\n }\n // Typed Transactions (EIP-2718)\n switch (transaction.type) {\n case 1:\n return _serializeEip2930(transaction, signature);\n case 2:\n return _serializeEip1559(transaction, signature);\n default:\n break;\n }\n return logger.throwError(`unsupported transaction type: ${transaction.type}`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"serializeTransaction\",\n transactionType: transaction.type\n });\n}\nfunction _parseEipSignature(tx, fields, serialize) {\n try {\n const recid = handleNumber(fields[0]).toNumber();\n if (recid !== 0 && recid !== 1) {\n throw new Error(\"bad recid\");\n }\n tx.v = recid;\n }\n catch (error) {\n logger.throwArgumentError(\"invalid v for transaction type: 1\", \"v\", fields[0]);\n }\n tx.r = hexZeroPad(fields[1], 32);\n tx.s = hexZeroPad(fields[2], 32);\n try {\n const digest = keccak256(serialize(tx));\n tx.from = recoverAddress(digest, { r: tx.r, s: tx.s, recoveryParam: tx.v });\n }\n catch (error) { }\n}\nfunction _parseEip1559(payload) {\n const transaction = RLP.decode(payload.slice(1));\n if (transaction.length !== 9 && transaction.length !== 12) {\n logger.throwArgumentError(\"invalid component count for transaction type: 2\", \"payload\", hexlify(payload));\n }\n const maxPriorityFeePerGas = handleNumber(transaction[2]);\n const maxFeePerGas = handleNumber(transaction[3]);\n const tx = {\n type: 2,\n chainId: handleNumber(transaction[0]).toNumber(),\n nonce: handleNumber(transaction[1]).toNumber(),\n maxPriorityFeePerGas: maxPriorityFeePerGas,\n maxFeePerGas: maxFeePerGas,\n gasPrice: null,\n gasLimit: handleNumber(transaction[4]),\n to: handleAddress(transaction[5]),\n value: handleNumber(transaction[6]),\n data: transaction[7],\n accessList: accessListify(transaction[8]),\n };\n // Unsigned EIP-1559 Transaction\n if (transaction.length === 9) {\n return tx;\n }\n tx.hash = keccak256(payload);\n _parseEipSignature(tx, transaction.slice(9), _serializeEip1559);\n return tx;\n}\nfunction _parseEip2930(payload) {\n const transaction = RLP.decode(payload.slice(1));\n if (transaction.length !== 8 && transaction.length !== 11) {\n logger.throwArgumentError(\"invalid component count for transaction type: 1\", \"payload\", hexlify(payload));\n }\n const tx = {\n type: 1,\n chainId: handleNumber(transaction[0]).toNumber(),\n nonce: handleNumber(transaction[1]).toNumber(),\n gasPrice: handleNumber(transaction[2]),\n gasLimit: handleNumber(transaction[3]),\n to: handleAddress(transaction[4]),\n value: handleNumber(transaction[5]),\n data: transaction[6],\n accessList: accessListify(transaction[7])\n };\n // Unsigned EIP-2930 Transaction\n if (transaction.length === 8) {\n return tx;\n }\n tx.hash = keccak256(payload);\n _parseEipSignature(tx, transaction.slice(8), _serializeEip2930);\n return tx;\n}\n// Legacy Transactions and EIP-155\nfunction _parse(rawTransaction) {\n const transaction = RLP.decode(rawTransaction);\n if (transaction.length !== 9 && transaction.length !== 6) {\n logger.throwArgumentError(\"invalid raw transaction\", \"rawTransaction\", rawTransaction);\n }\n const tx = {\n nonce: handleNumber(transaction[0]).toNumber(),\n gasPrice: handleNumber(transaction[1]),\n gasLimit: handleNumber(transaction[2]),\n to: handleAddress(transaction[3]),\n value: handleNumber(transaction[4]),\n data: transaction[5],\n chainId: 0\n };\n // Legacy unsigned transaction\n if (transaction.length === 6) {\n return tx;\n }\n try {\n tx.v = BigNumber.from(transaction[6]).toNumber();\n }\n catch (error) {\n // @TODO: What makes snese to do? The v is too big\n return tx;\n }\n tx.r = hexZeroPad(transaction[7], 32);\n tx.s = hexZeroPad(transaction[8], 32);\n if (BigNumber.from(tx.r).isZero() && BigNumber.from(tx.s).isZero()) {\n // EIP-155 unsigned transaction\n tx.chainId = tx.v;\n tx.v = 0;\n }\n else {\n // Signed Transaction\n tx.chainId = Math.floor((tx.v - 35) / 2);\n if (tx.chainId < 0) {\n tx.chainId = 0;\n }\n let recoveryParam = tx.v - 27;\n const raw = transaction.slice(0, 6);\n if (tx.chainId !== 0) {\n raw.push(hexlify(tx.chainId));\n raw.push(\"0x\");\n raw.push(\"0x\");\n recoveryParam -= tx.chainId * 2 + 8;\n }\n const digest = keccak256(RLP.encode(raw));\n try {\n tx.from = recoverAddress(digest, { r: hexlify(tx.r), s: hexlify(tx.s), recoveryParam: recoveryParam });\n }\n catch (error) { }\n tx.hash = keccak256(rawTransaction);\n }\n tx.type = null;\n return tx;\n}\nexport function parse(rawTransaction) {\n const payload = arrayify(rawTransaction);\n // Legacy and EIP-155 Transactions\n if (payload[0] > 0x7f) {\n return _parse(payload);\n }\n // Typed Transaction (EIP-2718)\n switch (payload[0]) {\n case 1:\n return _parseEip2930(payload);\n case 2:\n return _parseEip1559(payload);\n default:\n break;\n }\n return logger.throwError(`unsupported transaction type: ${payload[0]}`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"parseTransaction\",\n transactionType: payload[0]\n });\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Package chacha implements ChaCha stream cipher.\n */\nvar binary_1 = require(\"@stablelib/binary\");\nvar wipe_1 = require(\"@stablelib/wipe\");\n// Number of ChaCha rounds (ChaCha20).\nvar ROUNDS = 20;\n// Applies the ChaCha core function to 16-byte input,\n// 32-byte key key, and puts the result into 64-byte array out.\nfunction core(out, input, key) {\n var j0 = 0x61707865; // \"expa\" -- ChaCha's \"sigma\" constant\n var j1 = 0x3320646E; // \"nd 3\" for 32-byte keys\n var j2 = 0x79622D32; // \"2-by\"\n var j3 = 0x6B206574; // \"te k\"\n var j4 = (key[3] << 24) | (key[2] << 16) | (key[1] << 8) | key[0];\n var j5 = (key[7] << 24) | (key[6] << 16) | (key[5] << 8) | key[4];\n var j6 = (key[11] << 24) | (key[10] << 16) | (key[9] << 8) | key[8];\n var j7 = (key[15] << 24) | (key[14] << 16) | (key[13] << 8) | key[12];\n var j8 = (key[19] << 24) | (key[18] << 16) | (key[17] << 8) | key[16];\n var j9 = (key[23] << 24) | (key[22] << 16) | (key[21] << 8) | key[20];\n var j10 = (key[27] << 24) | (key[26] << 16) | (key[25] << 8) | key[24];\n var j11 = (key[31] << 24) | (key[30] << 16) | (key[29] << 8) | key[28];\n var j12 = (input[3] << 24) | (input[2] << 16) | (input[1] << 8) | input[0];\n var j13 = (input[7] << 24) | (input[6] << 16) | (input[5] << 8) | input[4];\n var j14 = (input[11] << 24) | (input[10] << 16) | (input[9] << 8) | input[8];\n var j15 = (input[15] << 24) | (input[14] << 16) | (input[13] << 8) | input[12];\n var x0 = j0;\n var x1 = j1;\n var x2 = j2;\n var x3 = j3;\n var x4 = j4;\n var x5 = j5;\n var x6 = j6;\n var x7 = j7;\n var x8 = j8;\n var x9 = j9;\n var x10 = j10;\n var x11 = j11;\n var x12 = j12;\n var x13 = j13;\n var x14 = j14;\n var x15 = j15;\n for (var i = 0; i < ROUNDS; i += 2) {\n x0 = x0 + x4 | 0;\n x12 ^= x0;\n x12 = x12 >>> (32 - 16) | x12 << 16;\n x8 = x8 + x12 | 0;\n x4 ^= x8;\n x4 = x4 >>> (32 - 12) | x4 << 12;\n x1 = x1 + x5 | 0;\n x13 ^= x1;\n x13 = x13 >>> (32 - 16) | x13 << 16;\n x9 = x9 + x13 | 0;\n x5 ^= x9;\n x5 = x5 >>> (32 - 12) | x5 << 12;\n x2 = x2 + x6 | 0;\n x14 ^= x2;\n x14 = x14 >>> (32 - 16) | x14 << 16;\n x10 = x10 + x14 | 0;\n x6 ^= x10;\n x6 = x6 >>> (32 - 12) | x6 << 12;\n x3 = x3 + x7 | 0;\n x15 ^= x3;\n x15 = x15 >>> (32 - 16) | x15 << 16;\n x11 = x11 + x15 | 0;\n x7 ^= x11;\n x7 = x7 >>> (32 - 12) | x7 << 12;\n x2 = x2 + x6 | 0;\n x14 ^= x2;\n x14 = x14 >>> (32 - 8) | x14 << 8;\n x10 = x10 + x14 | 0;\n x6 ^= x10;\n x6 = x6 >>> (32 - 7) | x6 << 7;\n x3 = x3 + x7 | 0;\n x15 ^= x3;\n x15 = x15 >>> (32 - 8) | x15 << 8;\n x11 = x11 + x15 | 0;\n x7 ^= x11;\n x7 = x7 >>> (32 - 7) | x7 << 7;\n x1 = x1 + x5 | 0;\n x13 ^= x1;\n x13 = x13 >>> (32 - 8) | x13 << 8;\n x9 = x9 + x13 | 0;\n x5 ^= x9;\n x5 = x5 >>> (32 - 7) | x5 << 7;\n x0 = x0 + x4 | 0;\n x12 ^= x0;\n x12 = x12 >>> (32 - 8) | x12 << 8;\n x8 = x8 + x12 | 0;\n x4 ^= x8;\n x4 = x4 >>> (32 - 7) | x4 << 7;\n x0 = x0 + x5 | 0;\n x15 ^= x0;\n x15 = x15 >>> (32 - 16) | x15 << 16;\n x10 = x10 + x15 | 0;\n x5 ^= x10;\n x5 = x5 >>> (32 - 12) | x5 << 12;\n x1 = x1 + x6 | 0;\n x12 ^= x1;\n x12 = x12 >>> (32 - 16) | x12 << 16;\n x11 = x11 + x12 | 0;\n x6 ^= x11;\n x6 = x6 >>> (32 - 12) | x6 << 12;\n x2 = x2 + x7 | 0;\n x13 ^= x2;\n x13 = x13 >>> (32 - 16) | x13 << 16;\n x8 = x8 + x13 | 0;\n x7 ^= x8;\n x7 = x7 >>> (32 - 12) | x7 << 12;\n x3 = x3 + x4 | 0;\n x14 ^= x3;\n x14 = x14 >>> (32 - 16) | x14 << 16;\n x9 = x9 + x14 | 0;\n x4 ^= x9;\n x4 = x4 >>> (32 - 12) | x4 << 12;\n x2 = x2 + x7 | 0;\n x13 ^= x2;\n x13 = x13 >>> (32 - 8) | x13 << 8;\n x8 = x8 + x13 | 0;\n x7 ^= x8;\n x7 = x7 >>> (32 - 7) | x7 << 7;\n x3 = x3 + x4 | 0;\n x14 ^= x3;\n x14 = x14 >>> (32 - 8) | x14 << 8;\n x9 = x9 + x14 | 0;\n x4 ^= x9;\n x4 = x4 >>> (32 - 7) | x4 << 7;\n x1 = x1 + x6 | 0;\n x12 ^= x1;\n x12 = x12 >>> (32 - 8) | x12 << 8;\n x11 = x11 + x12 | 0;\n x6 ^= x11;\n x6 = x6 >>> (32 - 7) | x6 << 7;\n x0 = x0 + x5 | 0;\n x15 ^= x0;\n x15 = x15 >>> (32 - 8) | x15 << 8;\n x10 = x10 + x15 | 0;\n x5 ^= x10;\n x5 = x5 >>> (32 - 7) | x5 << 7;\n }\n binary_1.writeUint32LE(x0 + j0 | 0, out, 0);\n binary_1.writeUint32LE(x1 + j1 | 0, out, 4);\n binary_1.writeUint32LE(x2 + j2 | 0, out, 8);\n binary_1.writeUint32LE(x3 + j3 | 0, out, 12);\n binary_1.writeUint32LE(x4 + j4 | 0, out, 16);\n binary_1.writeUint32LE(x5 + j5 | 0, out, 20);\n binary_1.writeUint32LE(x6 + j6 | 0, out, 24);\n binary_1.writeUint32LE(x7 + j7 | 0, out, 28);\n binary_1.writeUint32LE(x8 + j8 | 0, out, 32);\n binary_1.writeUint32LE(x9 + j9 | 0, out, 36);\n binary_1.writeUint32LE(x10 + j10 | 0, out, 40);\n binary_1.writeUint32LE(x11 + j11 | 0, out, 44);\n binary_1.writeUint32LE(x12 + j12 | 0, out, 48);\n binary_1.writeUint32LE(x13 + j13 | 0, out, 52);\n binary_1.writeUint32LE(x14 + j14 | 0, out, 56);\n binary_1.writeUint32LE(x15 + j15 | 0, out, 60);\n}\n/**\n * Encrypt src with ChaCha20 stream generated for the given 32-byte key and\n * 8-byte (as in original implementation) or 12-byte (as in RFC7539) nonce and\n * write the result into dst and return it.\n *\n * dst and src may be the same, but otherwise must not overlap.\n *\n * If nonce is 12 bytes, users should not encrypt more than 256 GiB with the\n * same key and nonce, otherwise the stream will repeat. The function will\n * throw error if counter overflows to prevent this.\n *\n * If nonce is 8 bytes, the output is practically unlimited (2^70 bytes, which\n * is more than a million petabytes). However, it is not recommended to\n * generate 8-byte nonces randomly, as the chance of collision is high.\n *\n * Never use the same key and nonce to encrypt more than one message.\n *\n * If nonceInplaceCounterLength is not 0, the nonce is assumed to be a 16-byte\n * array with stream counter in first nonceInplaceCounterLength bytes and nonce\n * in the last remaining bytes. The counter will be incremented inplace for\n * each ChaCha block. This is useful if you need to encrypt one stream of data\n * in chunks.\n */\nfunction streamXOR(key, nonce, src, dst, nonceInplaceCounterLength) {\n if (nonceInplaceCounterLength === void 0) { nonceInplaceCounterLength = 0; }\n // We only support 256-bit keys.\n if (key.length !== 32) {\n throw new Error(\"ChaCha: key size must be 32 bytes\");\n }\n if (dst.length < src.length) {\n throw new Error(\"ChaCha: destination is shorter than source\");\n }\n var nc;\n var counterLength;\n if (nonceInplaceCounterLength === 0) {\n if (nonce.length !== 8 && nonce.length !== 12) {\n throw new Error(\"ChaCha nonce must be 8 or 12 bytes\");\n }\n nc = new Uint8Array(16);\n // First counterLength bytes of nc are counter, starting with zero.\n counterLength = nc.length - nonce.length;\n // Last bytes of nc after counterLength are nonce, set them.\n nc.set(nonce, counterLength);\n }\n else {\n if (nonce.length !== 16) {\n throw new Error(\"ChaCha nonce with counter must be 16 bytes\");\n }\n // This will update passed nonce with counter inplace.\n nc = nonce;\n counterLength = nonceInplaceCounterLength;\n }\n // Allocate temporary space for ChaCha block.\n var block = new Uint8Array(64);\n for (var i = 0; i < src.length; i += 64) {\n // Generate a block.\n core(block, nc, key);\n // XOR block bytes with src into dst.\n for (var j = i; j < i + 64 && j < src.length; j++) {\n dst[j] = src[j] ^ block[j - i];\n }\n // Increment counter.\n incrementCounter(nc, 0, counterLength);\n }\n // Cleanup temporary space.\n wipe_1.wipe(block);\n if (nonceInplaceCounterLength === 0) {\n // Cleanup counter.\n wipe_1.wipe(nc);\n }\n return dst;\n}\nexports.streamXOR = streamXOR;\n/**\n * Generate ChaCha20 stream for the given 32-byte key and 8-byte or 12-byte\n * nonce and write it into dst and return it.\n *\n * Never use the same key and nonce to generate more than one stream.\n *\n * If nonceInplaceCounterLength is not 0, it behaves the same with respect to\n * the nonce as described in the streamXOR documentation.\n *\n * stream is like streamXOR with all-zero src.\n */\nfunction stream(key, nonce, dst, nonceInplaceCounterLength) {\n if (nonceInplaceCounterLength === void 0) { nonceInplaceCounterLength = 0; }\n wipe_1.wipe(dst);\n return streamXOR(key, nonce, dst, dst, nonceInplaceCounterLength);\n}\nexports.stream = stream;\nfunction incrementCounter(counter, pos, len) {\n var carry = 1;\n while (len--) {\n carry = carry + (counter[pos] & 0xff) | 0;\n counter[pos] = carry & 0xff;\n carry >>>= 8;\n pos++;\n }\n if (carry > 0) {\n throw new Error(\"ChaCha: counter overflow\");\n }\n}\n//# sourceMappingURL=chacha.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Package constant-time provides functions for performing algorithmically constant-time operations.\n */\n/**\n * NOTE! Due to the inability to guarantee real constant time evaluation of\n * anything in JavaScript VM, this is module is the best effort.\n */\n/**\n * Returns resultIfOne if subject is 1, or resultIfZero if subject is 0.\n *\n * Supports only 32-bit integers, so resultIfOne or resultIfZero are not\n * integers, they'll be converted to them with bitwise operations.\n */\nfunction select(subject, resultIfOne, resultIfZero) {\n return (~(subject - 1) & resultIfOne) | ((subject - 1) & resultIfZero);\n}\nexports.select = select;\n/**\n * Returns 1 if a <= b, or 0 if not.\n * Arguments must be positive 32-bit integers less than or equal to 2^31 - 1.\n */\nfunction lessOrEqual(a, b) {\n return (((a | 0) - (b | 0) - 1) >>> 31) & 1;\n}\nexports.lessOrEqual = lessOrEqual;\n/**\n * Returns 1 if a and b are of equal length and their contents\n * are equal, or 0 otherwise.\n *\n * Note that unlike in equal(), zero-length inputs are considered\n * the same, so this function will return 1.\n */\nfunction compare(a, b) {\n if (a.length !== b.length) {\n return 0;\n }\n var result = 0;\n for (var i = 0; i < a.length; i++) {\n result |= a[i] ^ b[i];\n }\n return (1 & ((result - 1) >>> 8));\n}\nexports.compare = compare;\n/**\n * Returns true if a and b are of equal non-zero length,\n * and their contents are equal, or false otherwise.\n *\n * Note that unlike in compare() zero-length inputs are considered\n * _not_ equal, so this function will return false.\n */\nfunction equal(a, b) {\n if (a.length === 0 || b.length === 0) {\n return false;\n }\n return compare(a, b) !== 0;\n}\nexports.equal = equal;\n//# sourceMappingURL=constant-time.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Package poly1305 implements Poly1305 one-time message authentication algorithm.\n */\nvar constant_time_1 = require(\"@stablelib/constant-time\");\nvar wipe_1 = require(\"@stablelib/wipe\");\nexports.DIGEST_LENGTH = 16;\n// Port of Andrew Moon's Poly1305-donna-16. Public domain.\n// https://github.com/floodyberry/poly1305-donna\n/**\n * Poly1305 computes 16-byte authenticator of message using\n * a one-time 32-byte key.\n *\n * Important: key should be used for only one message,\n * it should never repeat.\n */\nvar Poly1305 = /** @class */ (function () {\n function Poly1305(key) {\n this.digestLength = exports.DIGEST_LENGTH;\n this._buffer = new Uint8Array(16);\n this._r = new Uint16Array(10);\n this._h = new Uint16Array(10);\n this._pad = new Uint16Array(8);\n this._leftover = 0;\n this._fin = 0;\n this._finished = false;\n var t0 = key[0] | key[1] << 8;\n this._r[0] = (t0) & 0x1fff;\n var t1 = key[2] | key[3] << 8;\n this._r[1] = ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n var t2 = key[4] | key[5] << 8;\n this._r[2] = ((t1 >>> 10) | (t2 << 6)) & 0x1f03;\n var t3 = key[6] | key[7] << 8;\n this._r[3] = ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n var t4 = key[8] | key[9] << 8;\n this._r[4] = ((t3 >>> 4) | (t4 << 12)) & 0x00ff;\n this._r[5] = ((t4 >>> 1)) & 0x1ffe;\n var t5 = key[10] | key[11] << 8;\n this._r[6] = ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n var t6 = key[12] | key[13] << 8;\n this._r[7] = ((t5 >>> 11) | (t6 << 5)) & 0x1f81;\n var t7 = key[14] | key[15] << 8;\n this._r[8] = ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n this._r[9] = ((t7 >>> 5)) & 0x007f;\n this._pad[0] = key[16] | key[17] << 8;\n this._pad[1] = key[18] | key[19] << 8;\n this._pad[2] = key[20] | key[21] << 8;\n this._pad[3] = key[22] | key[23] << 8;\n this._pad[4] = key[24] | key[25] << 8;\n this._pad[5] = key[26] | key[27] << 8;\n this._pad[6] = key[28] | key[29] << 8;\n this._pad[7] = key[30] | key[31] << 8;\n }\n Poly1305.prototype._blocks = function (m, mpos, bytes) {\n var hibit = this._fin ? 0 : 1 << 11;\n var h0 = this._h[0], h1 = this._h[1], h2 = this._h[2], h3 = this._h[3], h4 = this._h[4], h5 = this._h[5], h6 = this._h[6], h7 = this._h[7], h8 = this._h[8], h9 = this._h[9];\n var r0 = this._r[0], r1 = this._r[1], r2 = this._r[2], r3 = this._r[3], r4 = this._r[4], r5 = this._r[5], r6 = this._r[6], r7 = this._r[7], r8 = this._r[8], r9 = this._r[9];\n while (bytes >= 16) {\n var t0 = m[mpos + 0] | m[mpos + 1] << 8;\n h0 += (t0) & 0x1fff;\n var t1 = m[mpos + 2] | m[mpos + 3] << 8;\n h1 += ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n var t2 = m[mpos + 4] | m[mpos + 5] << 8;\n h2 += ((t1 >>> 10) | (t2 << 6)) & 0x1fff;\n var t3 = m[mpos + 6] | m[mpos + 7] << 8;\n h3 += ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n var t4 = m[mpos + 8] | m[mpos + 9] << 8;\n h4 += ((t3 >>> 4) | (t4 << 12)) & 0x1fff;\n h5 += ((t4 >>> 1)) & 0x1fff;\n var t5 = m[mpos + 10] | m[mpos + 11] << 8;\n h6 += ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n var t6 = m[mpos + 12] | m[mpos + 13] << 8;\n h7 += ((t5 >>> 11) | (t6 << 5)) & 0x1fff;\n var t7 = m[mpos + 14] | m[mpos + 15] << 8;\n h8 += ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n h9 += ((t7 >>> 5)) | hibit;\n var c = 0;\n var d0 = c;\n d0 += h0 * r0;\n d0 += h1 * (5 * r9);\n d0 += h2 * (5 * r8);\n d0 += h3 * (5 * r7);\n d0 += h4 * (5 * r6);\n c = (d0 >>> 13);\n d0 &= 0x1fff;\n d0 += h5 * (5 * r5);\n d0 += h6 * (5 * r4);\n d0 += h7 * (5 * r3);\n d0 += h8 * (5 * r2);\n d0 += h9 * (5 * r1);\n c += (d0 >>> 13);\n d0 &= 0x1fff;\n var d1 = c;\n d1 += h0 * r1;\n d1 += h1 * r0;\n d1 += h2 * (5 * r9);\n d1 += h3 * (5 * r8);\n d1 += h4 * (5 * r7);\n c = (d1 >>> 13);\n d1 &= 0x1fff;\n d1 += h5 * (5 * r6);\n d1 += h6 * (5 * r5);\n d1 += h7 * (5 * r4);\n d1 += h8 * (5 * r3);\n d1 += h9 * (5 * r2);\n c += (d1 >>> 13);\n d1 &= 0x1fff;\n var d2 = c;\n d2 += h0 * r2;\n d2 += h1 * r1;\n d2 += h2 * r0;\n d2 += h3 * (5 * r9);\n d2 += h4 * (5 * r8);\n c = (d2 >>> 13);\n d2 &= 0x1fff;\n d2 += h5 * (5 * r7);\n d2 += h6 * (5 * r6);\n d2 += h7 * (5 * r5);\n d2 += h8 * (5 * r4);\n d2 += h9 * (5 * r3);\n c += (d2 >>> 13);\n d2 &= 0x1fff;\n var d3 = c;\n d3 += h0 * r3;\n d3 += h1 * r2;\n d3 += h2 * r1;\n d3 += h3 * r0;\n d3 += h4 * (5 * r9);\n c = (d3 >>> 13);\n d3 &= 0x1fff;\n d3 += h5 * (5 * r8);\n d3 += h6 * (5 * r7);\n d3 += h7 * (5 * r6);\n d3 += h8 * (5 * r5);\n d3 += h9 * (5 * r4);\n c += (d3 >>> 13);\n d3 &= 0x1fff;\n var d4 = c;\n d4 += h0 * r4;\n d4 += h1 * r3;\n d4 += h2 * r2;\n d4 += h3 * r1;\n d4 += h4 * r0;\n c = (d4 >>> 13);\n d4 &= 0x1fff;\n d4 += h5 * (5 * r9);\n d4 += h6 * (5 * r8);\n d4 += h7 * (5 * r7);\n d4 += h8 * (5 * r6);\n d4 += h9 * (5 * r5);\n c += (d4 >>> 13);\n d4 &= 0x1fff;\n var d5 = c;\n d5 += h0 * r5;\n d5 += h1 * r4;\n d5 += h2 * r3;\n d5 += h3 * r2;\n d5 += h4 * r1;\n c = (d5 >>> 13);\n d5 &= 0x1fff;\n d5 += h5 * r0;\n d5 += h6 * (5 * r9);\n d5 += h7 * (5 * r8);\n d5 += h8 * (5 * r7);\n d5 += h9 * (5 * r6);\n c += (d5 >>> 13);\n d5 &= 0x1fff;\n var d6 = c;\n d6 += h0 * r6;\n d6 += h1 * r5;\n d6 += h2 * r4;\n d6 += h3 * r3;\n d6 += h4 * r2;\n c = (d6 >>> 13);\n d6 &= 0x1fff;\n d6 += h5 * r1;\n d6 += h6 * r0;\n d6 += h7 * (5 * r9);\n d6 += h8 * (5 * r8);\n d6 += h9 * (5 * r7);\n c += (d6 >>> 13);\n d6 &= 0x1fff;\n var d7 = c;\n d7 += h0 * r7;\n d7 += h1 * r6;\n d7 += h2 * r5;\n d7 += h3 * r4;\n d7 += h4 * r3;\n c = (d7 >>> 13);\n d7 &= 0x1fff;\n d7 += h5 * r2;\n d7 += h6 * r1;\n d7 += h7 * r0;\n d7 += h8 * (5 * r9);\n d7 += h9 * (5 * r8);\n c += (d7 >>> 13);\n d7 &= 0x1fff;\n var d8 = c;\n d8 += h0 * r8;\n d8 += h1 * r7;\n d8 += h2 * r6;\n d8 += h3 * r5;\n d8 += h4 * r4;\n c = (d8 >>> 13);\n d8 &= 0x1fff;\n d8 += h5 * r3;\n d8 += h6 * r2;\n d8 += h7 * r1;\n d8 += h8 * r0;\n d8 += h9 * (5 * r9);\n c += (d8 >>> 13);\n d8 &= 0x1fff;\n var d9 = c;\n d9 += h0 * r9;\n d9 += h1 * r8;\n d9 += h2 * r7;\n d9 += h3 * r6;\n d9 += h4 * r5;\n c = (d9 >>> 13);\n d9 &= 0x1fff;\n d9 += h5 * r4;\n d9 += h6 * r3;\n d9 += h7 * r2;\n d9 += h8 * r1;\n d9 += h9 * r0;\n c += (d9 >>> 13);\n d9 &= 0x1fff;\n c = (((c << 2) + c)) | 0;\n c = (c + d0) | 0;\n d0 = c & 0x1fff;\n c = (c >>> 13);\n d1 += c;\n h0 = d0;\n h1 = d1;\n h2 = d2;\n h3 = d3;\n h4 = d4;\n h5 = d5;\n h6 = d6;\n h7 = d7;\n h8 = d8;\n h9 = d9;\n mpos += 16;\n bytes -= 16;\n }\n this._h[0] = h0;\n this._h[1] = h1;\n this._h[2] = h2;\n this._h[3] = h3;\n this._h[4] = h4;\n this._h[5] = h5;\n this._h[6] = h6;\n this._h[7] = h7;\n this._h[8] = h8;\n this._h[9] = h9;\n };\n Poly1305.prototype.finish = function (mac, macpos) {\n if (macpos === void 0) { macpos = 0; }\n var g = new Uint16Array(10);\n var c;\n var mask;\n var f;\n var i;\n if (this._leftover) {\n i = this._leftover;\n this._buffer[i++] = 1;\n for (; i < 16; i++) {\n this._buffer[i] = 0;\n }\n this._fin = 1;\n this._blocks(this._buffer, 0, 16);\n }\n c = this._h[1] >>> 13;\n this._h[1] &= 0x1fff;\n for (i = 2; i < 10; i++) {\n this._h[i] += c;\n c = this._h[i] >>> 13;\n this._h[i] &= 0x1fff;\n }\n this._h[0] += (c * 5);\n c = this._h[0] >>> 13;\n this._h[0] &= 0x1fff;\n this._h[1] += c;\n c = this._h[1] >>> 13;\n this._h[1] &= 0x1fff;\n this._h[2] += c;\n g[0] = this._h[0] + 5;\n c = g[0] >>> 13;\n g[0] &= 0x1fff;\n for (i = 1; i < 10; i++) {\n g[i] = this._h[i] + c;\n c = g[i] >>> 13;\n g[i] &= 0x1fff;\n }\n g[9] -= (1 << 13);\n mask = (c ^ 1) - 1;\n for (i = 0; i < 10; i++) {\n g[i] &= mask;\n }\n mask = ~mask;\n for (i = 0; i < 10; i++) {\n this._h[i] = (this._h[i] & mask) | g[i];\n }\n this._h[0] = ((this._h[0]) | (this._h[1] << 13)) & 0xffff;\n this._h[1] = ((this._h[1] >>> 3) | (this._h[2] << 10)) & 0xffff;\n this._h[2] = ((this._h[2] >>> 6) | (this._h[3] << 7)) & 0xffff;\n this._h[3] = ((this._h[3] >>> 9) | (this._h[4] << 4)) & 0xffff;\n this._h[4] = ((this._h[4] >>> 12) | (this._h[5] << 1) | (this._h[6] << 14)) & 0xffff;\n this._h[5] = ((this._h[6] >>> 2) | (this._h[7] << 11)) & 0xffff;\n this._h[6] = ((this._h[7] >>> 5) | (this._h[8] << 8)) & 0xffff;\n this._h[7] = ((this._h[8] >>> 8) | (this._h[9] << 5)) & 0xffff;\n f = this._h[0] + this._pad[0];\n this._h[0] = f & 0xffff;\n for (i = 1; i < 8; i++) {\n f = (((this._h[i] + this._pad[i]) | 0) + (f >>> 16)) | 0;\n this._h[i] = f & 0xffff;\n }\n mac[macpos + 0] = this._h[0] >>> 0;\n mac[macpos + 1] = this._h[0] >>> 8;\n mac[macpos + 2] = this._h[1] >>> 0;\n mac[macpos + 3] = this._h[1] >>> 8;\n mac[macpos + 4] = this._h[2] >>> 0;\n mac[macpos + 5] = this._h[2] >>> 8;\n mac[macpos + 6] = this._h[3] >>> 0;\n mac[macpos + 7] = this._h[3] >>> 8;\n mac[macpos + 8] = this._h[4] >>> 0;\n mac[macpos + 9] = this._h[4] >>> 8;\n mac[macpos + 10] = this._h[5] >>> 0;\n mac[macpos + 11] = this._h[5] >>> 8;\n mac[macpos + 12] = this._h[6] >>> 0;\n mac[macpos + 13] = this._h[6] >>> 8;\n mac[macpos + 14] = this._h[7] >>> 0;\n mac[macpos + 15] = this._h[7] >>> 8;\n this._finished = true;\n return this;\n };\n Poly1305.prototype.update = function (m) {\n var mpos = 0;\n var bytes = m.length;\n var want;\n if (this._leftover) {\n want = (16 - this._leftover);\n if (want > bytes) {\n want = bytes;\n }\n for (var i = 0; i < want; i++) {\n this._buffer[this._leftover + i] = m[mpos + i];\n }\n bytes -= want;\n mpos += want;\n this._leftover += want;\n if (this._leftover < 16) {\n return this;\n }\n this._blocks(this._buffer, 0, 16);\n this._leftover = 0;\n }\n if (bytes >= 16) {\n want = bytes - (bytes % 16);\n this._blocks(m, mpos, want);\n mpos += want;\n bytes -= want;\n }\n if (bytes) {\n for (var i = 0; i < bytes; i++) {\n this._buffer[this._leftover + i] = m[mpos + i];\n }\n this._leftover += bytes;\n }\n return this;\n };\n Poly1305.prototype.digest = function () {\n // TODO(dchest): it behaves differently than other hashes/HMAC,\n // because it throws when finished — others just return saved result.\n if (this._finished) {\n throw new Error(\"Poly1305 was finished\");\n }\n var mac = new Uint8Array(16);\n this.finish(mac);\n return mac;\n };\n Poly1305.prototype.clean = function () {\n wipe_1.wipe(this._buffer);\n wipe_1.wipe(this._r);\n wipe_1.wipe(this._h);\n wipe_1.wipe(this._pad);\n this._leftover = 0;\n this._fin = 0;\n this._finished = true; // mark as finished even if not\n return this;\n };\n return Poly1305;\n}());\nexports.Poly1305 = Poly1305;\n/**\n * Returns 16-byte authenticator of data using a one-time 32-byte key.\n *\n * Important: key should be used for only one message, it should never repeat.\n */\nfunction oneTimeAuth(key, data) {\n var h = new Poly1305(key);\n h.update(data);\n var digest = h.digest();\n h.clean();\n return digest;\n}\nexports.oneTimeAuth = oneTimeAuth;\n/**\n * Returns true if two authenticators are 16-byte long and equal.\n * Uses contant-time comparison to avoid leaking timing information.\n */\nfunction equal(a, b) {\n if (a.length !== exports.DIGEST_LENGTH || b.length !== exports.DIGEST_LENGTH) {\n return false;\n }\n return constant_time_1.equal(a, b);\n}\nexports.equal = equal;\n//# sourceMappingURL=poly1305.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar chacha_1 = require(\"@stablelib/chacha\");\nvar poly1305_1 = require(\"@stablelib/poly1305\");\nvar wipe_1 = require(\"@stablelib/wipe\");\nvar binary_1 = require(\"@stablelib/binary\");\nvar constant_time_1 = require(\"@stablelib/constant-time\");\nexports.KEY_LENGTH = 32;\nexports.NONCE_LENGTH = 12;\nexports.TAG_LENGTH = 16;\nvar ZEROS = new Uint8Array(16);\n/**\n * ChaCha20-Poly1305 Authenticated Encryption with Associated Data.\n *\n * Defined in RFC7539.\n */\nvar ChaCha20Poly1305 = /** @class */ (function () {\n /**\n * Creates a new instance with the given 32-byte key.\n */\n function ChaCha20Poly1305(key) {\n this.nonceLength = exports.NONCE_LENGTH;\n this.tagLength = exports.TAG_LENGTH;\n if (key.length !== exports.KEY_LENGTH) {\n throw new Error(\"ChaCha20Poly1305 needs 32-byte key\");\n }\n // Copy key.\n this._key = new Uint8Array(key);\n }\n /**\n * Encrypts and authenticates plaintext, authenticates associated data,\n * and returns sealed ciphertext, which includes authentication tag.\n *\n * RFC7539 specifies 12 bytes for nonce. It may be this 12-byte nonce\n * (\"IV\"), or full 16-byte counter (called \"32-bit fixed-common part\")\n * and nonce.\n *\n * If dst is given (it must be the size of plaintext + the size of tag\n * length) the result will be put into it. Dst and plaintext must not\n * overlap.\n */\n ChaCha20Poly1305.prototype.seal = function (nonce, plaintext, associatedData, dst) {\n if (nonce.length > 16) {\n throw new Error(\"ChaCha20Poly1305: incorrect nonce length\");\n }\n // Allocate space for counter, and set nonce as last bytes of it.\n var counter = new Uint8Array(16);\n counter.set(nonce, counter.length - nonce.length);\n // Generate authentication key by taking first 32-bytes of stream.\n // We pass full counter, which has 12-byte nonce and 4-byte block counter,\n // and it will get incremented after generating the block, which is\n // exactly what we need: we only use the first 32 bytes of 64-byte\n // ChaCha block and discard the next 32 bytes.\n var authKey = new Uint8Array(32);\n chacha_1.stream(this._key, counter, authKey, 4);\n // Allocate space for sealed ciphertext.\n var resultLength = plaintext.length + this.tagLength;\n var result;\n if (dst) {\n if (dst.length !== resultLength) {\n throw new Error(\"ChaCha20Poly1305: incorrect destination length\");\n }\n result = dst;\n }\n else {\n result = new Uint8Array(resultLength);\n }\n // Encrypt plaintext.\n chacha_1.streamXOR(this._key, counter, plaintext, result, 4);\n // Authenticate.\n // XXX: can \"simplify\" here: pass full result (which is already padded\n // due to zeroes prepared for tag), and ciphertext length instead of\n // subarray of result.\n this._authenticate(result.subarray(result.length - this.tagLength, result.length), authKey, result.subarray(0, result.length - this.tagLength), associatedData);\n // Cleanup.\n wipe_1.wipe(counter);\n return result;\n };\n /**\n * Authenticates sealed ciphertext (which includes authentication tag) and\n * associated data, decrypts ciphertext and returns decrypted plaintext.\n *\n * RFC7539 specifies 12 bytes for nonce. It may be this 12-byte nonce\n * (\"IV\"), or full 16-byte counter (called \"32-bit fixed-common part\")\n * and nonce.\n *\n * If authentication fails, it returns null.\n *\n * If dst is given (it must be of ciphertext length minus tag length),\n * the result will be put into it. Dst and plaintext must not overlap.\n */\n ChaCha20Poly1305.prototype.open = function (nonce, sealed, associatedData, dst) {\n if (nonce.length > 16) {\n throw new Error(\"ChaCha20Poly1305: incorrect nonce length\");\n }\n // Sealed ciphertext should at least contain tag.\n if (sealed.length < this.tagLength) {\n // TODO(dchest): should we throw here instead?\n return null;\n }\n // Allocate space for counter, and set nonce as last bytes of it.\n var counter = new Uint8Array(16);\n counter.set(nonce, counter.length - nonce.length);\n // Generate authentication key by taking first 32-bytes of stream.\n var authKey = new Uint8Array(32);\n chacha_1.stream(this._key, counter, authKey, 4);\n // Authenticate.\n // XXX: can simplify and avoid allocation: since authenticate()\n // already allocates tag (from Poly1305.digest(), it can return)\n // it instead of copying to calculatedTag. But then in seal()\n // we'll need to copy it.\n var calculatedTag = new Uint8Array(this.tagLength);\n this._authenticate(calculatedTag, authKey, sealed.subarray(0, sealed.length - this.tagLength), associatedData);\n // Constant-time compare tags and return null if they differ.\n if (!constant_time_1.equal(calculatedTag, sealed.subarray(sealed.length - this.tagLength, sealed.length))) {\n return null;\n }\n // Allocate space for decrypted plaintext.\n var resultLength = sealed.length - this.tagLength;\n var result;\n if (dst) {\n if (dst.length !== resultLength) {\n throw new Error(\"ChaCha20Poly1305: incorrect destination length\");\n }\n result = dst;\n }\n else {\n result = new Uint8Array(resultLength);\n }\n // Decrypt.\n chacha_1.streamXOR(this._key, counter, sealed.subarray(0, sealed.length - this.tagLength), result, 4);\n // Cleanup.\n wipe_1.wipe(counter);\n return result;\n };\n ChaCha20Poly1305.prototype.clean = function () {\n wipe_1.wipe(this._key);\n return this;\n };\n ChaCha20Poly1305.prototype._authenticate = function (tagOut, authKey, ciphertext, associatedData) {\n // Initialize Poly1305 with authKey.\n var h = new poly1305_1.Poly1305(authKey);\n // Authenticate padded associated data.\n if (associatedData) {\n h.update(associatedData);\n if (associatedData.length % 16 > 0) {\n h.update(ZEROS.subarray(associatedData.length % 16));\n }\n }\n // Authenticate padded ciphertext.\n h.update(ciphertext);\n if (ciphertext.length % 16 > 0) {\n h.update(ZEROS.subarray(ciphertext.length % 16));\n }\n // Authenticate length of associated data.\n // XXX: can avoid allocation here?\n var length = new Uint8Array(8);\n if (associatedData) {\n binary_1.writeUint64LE(associatedData.length, length);\n }\n h.update(length);\n // Authenticate length of ciphertext.\n binary_1.writeUint64LE(ciphertext.length, length);\n h.update(length);\n // Get tag and copy it into tagOut.\n var tag = h.digest();\n for (var i = 0; i < tag.length; i++) {\n tagOut[i] = tag[i];\n }\n // Cleanup.\n h.clean();\n wipe_1.wipe(tag);\n wipe_1.wipe(length);\n };\n return ChaCha20Poly1305;\n}());\nexports.ChaCha20Poly1305 = ChaCha20Poly1305;\n//# sourceMappingURL=chacha20poly1305.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction isSerializableHash(h) {\n return (typeof h.saveState !== \"undefined\" &&\n typeof h.restoreState !== \"undefined\" &&\n typeof h.cleanSavedState !== \"undefined\");\n}\nexports.isSerializableHash = isSerializableHash;\n// TODO(dchest): figure out the standardized interface for XOF such as\n// SHAKE and BLAKE2X.\n//# sourceMappingURL=hash.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Package hmac implements HMAC algorithm.\n */\nvar hash_1 = require(\"@stablelib/hash\");\nvar constant_time_1 = require(\"@stablelib/constant-time\");\nvar wipe_1 = require(\"@stablelib/wipe\");\n/**\n * HMAC implements hash-based message authentication algorithm.\n */\nvar HMAC = /** @class */ (function () {\n /**\n * Constructs a new HMAC with the given Hash and secret key.\n */\n function HMAC(hash, key) {\n this._finished = false; // true if HMAC was finalized\n // Initialize inner and outer hashes.\n this._inner = new hash();\n this._outer = new hash();\n // Set block and digest sizes for this HMAC\n // instance to values from the hash.\n this.blockSize = this._outer.blockSize;\n this.digestLength = this._outer.digestLength;\n // Pad temporary stores a key (or its hash) padded with zeroes.\n var pad = new Uint8Array(this.blockSize);\n if (key.length > this.blockSize) {\n // If key is bigger than hash block size, it must be\n // hashed and this hash is used as a key instead.\n this._inner.update(key).finish(pad).clean();\n }\n else {\n // Otherwise, copy the key into pad.\n pad.set(key);\n }\n // Now two different keys are derived from padded key\n // by xoring a different byte value to each.\n // To make inner hash key, xor byte 0x36 into pad.\n for (var i = 0; i < pad.length; i++) {\n pad[i] ^= 0x36;\n }\n // Update inner hash with the result.\n this._inner.update(pad);\n // To make outer hash key, xor byte 0x5c into pad.\n // But since we already xored 0x36 there, we must\n // first undo this by xoring it again.\n for (var i = 0; i < pad.length; i++) {\n pad[i] ^= 0x36 ^ 0x5c;\n }\n // Update outer hash with the result.\n this._outer.update(pad);\n // Save states of both hashes, so that we can quickly restore\n // them later in reset() without the need to remember the actual\n // key and perform this initialization again.\n if (hash_1.isSerializableHash(this._inner) && hash_1.isSerializableHash(this._outer)) {\n this._innerKeyedState = this._inner.saveState();\n this._outerKeyedState = this._outer.saveState();\n }\n // Clean pad.\n wipe_1.wipe(pad);\n }\n /**\n * Returns HMAC state to the state initialized with key\n * to make it possible to run HMAC over the other data with the same\n * key without creating a new instance.\n */\n HMAC.prototype.reset = function () {\n if (!hash_1.isSerializableHash(this._inner) || !hash_1.isSerializableHash(this._outer)) {\n throw new Error(\"hmac: can't reset() because hash doesn't implement restoreState()\");\n }\n // Restore keyed states of inner and outer hashes.\n this._inner.restoreState(this._innerKeyedState);\n this._outer.restoreState(this._outerKeyedState);\n this._finished = false;\n return this;\n };\n /**\n * Cleans HMAC state.\n */\n HMAC.prototype.clean = function () {\n if (hash_1.isSerializableHash(this._inner)) {\n this._inner.cleanSavedState(this._innerKeyedState);\n }\n if (hash_1.isSerializableHash(this._outer)) {\n this._outer.cleanSavedState(this._outerKeyedState);\n }\n this._inner.clean();\n this._outer.clean();\n };\n /**\n * Updates state with provided data.\n */\n HMAC.prototype.update = function (data) {\n this._inner.update(data);\n return this;\n };\n /**\n * Finalizes HMAC and puts the result in out.\n */\n HMAC.prototype.finish = function (out) {\n if (this._finished) {\n // If HMAC was finalized, outer hash is also finalized,\n // so it produces the same digest it produced when it\n // was finalized.\n this._outer.finish(out);\n return this;\n }\n // Finalize inner hash and store the result temporarily.\n this._inner.finish(out);\n // Update outer hash with digest of inner hash and and finalize it.\n this._outer.update(out.subarray(0, this.digestLength)).finish(out);\n this._finished = true;\n return this;\n };\n /**\n * Returns the computed message authentication code.\n */\n HMAC.prototype.digest = function () {\n var out = new Uint8Array(this.digestLength);\n this.finish(out);\n return out;\n };\n /**\n * Saves HMAC state.\n * This function is needed for PBKDF2 optimization.\n */\n HMAC.prototype.saveState = function () {\n if (!hash_1.isSerializableHash(this._inner)) {\n throw new Error(\"hmac: can't saveState() because hash doesn't implement it\");\n }\n return this._inner.saveState();\n };\n HMAC.prototype.restoreState = function (savedState) {\n if (!hash_1.isSerializableHash(this._inner) || !hash_1.isSerializableHash(this._outer)) {\n throw new Error(\"hmac: can't restoreState() because hash doesn't implement it\");\n }\n this._inner.restoreState(savedState);\n this._outer.restoreState(this._outerKeyedState);\n this._finished = false;\n return this;\n };\n HMAC.prototype.cleanSavedState = function (savedState) {\n if (!hash_1.isSerializableHash(this._inner)) {\n throw new Error(\"hmac: can't cleanSavedState() because hash doesn't implement it\");\n }\n this._inner.cleanSavedState(savedState);\n };\n return HMAC;\n}());\nexports.HMAC = HMAC;\n/**\n * Returns HMAC using the given hash constructor for the key over data.\n */\nfunction hmac(hash, key, data) {\n var h = new HMAC(hash, key);\n h.update(data);\n var digest = h.digest();\n h.clean();\n return digest;\n}\nexports.hmac = hmac;\n/**\n * Returns true if two HMAC digests are equal.\n * Uses constant-time comparison to avoid leaking timing information.\n *\n * Example:\n *\n * const receivedDigest = ...\n * const realDigest = hmac(SHA256, key, data);\n * if (!equal(receivedDigest, realDigest)) {\n * throw new Error(\"Authentication error\");\n * }\n */\nexports.equal = constant_time_1.equal;\n//# sourceMappingURL=hmac.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar hmac_1 = require(\"@stablelib/hmac\");\nvar wipe_1 = require(\"@stablelib/wipe\");\n/**\n * HMAC-based Extract-and-Expand Key Derivation Function.\n *\n * Implements HKDF from RFC5869.\n *\n * Expands the given master key with salt and info into\n * a limited stream of key material.\n */\nvar HKDF = /** @class */ (function () {\n /**\n * Create a new HKDF instance for the given hash function\n * with the master key, optional salt, and info.\n *\n * - Master key is a high-entropy secret key (not a password).\n * - Salt is a non-secret random value.\n * - Info is application- and/or context-specific information.\n */\n function HKDF(hash, key, salt, info) {\n if (salt === void 0) { salt = new Uint8Array(0); }\n this._counter = new Uint8Array(1); // starts with zero\n this._hash = hash;\n this._info = info;\n // HKDF-Extract uses salt as HMAC key, and key as data.\n var okm = hmac_1.hmac(this._hash, salt, key);\n // Initialize HMAC for expanding with extracted key.\n this._hmac = new hmac_1.HMAC(hash, okm);\n // Allocate buffer.\n this._buffer = new Uint8Array(this._hmac.digestLength);\n this._bufpos = this._buffer.length;\n }\n // Fill buffer with new block of HKDF-Extract output.\n HKDF.prototype._fillBuffer = function () {\n // Increment counter.\n this._counter[0]++;\n var ctr = this._counter[0];\n // Check if counter overflowed.\n if (ctr === 0) {\n throw new Error(\"hkdf: cannot expand more\");\n }\n // Prepare HMAC instance for new data with old key.\n this._hmac.reset();\n // Hash in previous output if it was generated\n // (i.e. counter is greater than 1).\n if (ctr > 1) {\n this._hmac.update(this._buffer);\n }\n // Hash in info if it exists.\n if (this._info) {\n this._hmac.update(this._info);\n }\n // Hash in the counter.\n this._hmac.update(this._counter);\n // Output result to buffer and clean HMAC instance.\n this._hmac.finish(this._buffer);\n // Reset buffer position.\n this._bufpos = 0;\n };\n /**\n * Expand returns next key material of the given length.\n *\n * It throws if expansion limit is reached (which is\n * 254 digests of the underlying HMAC function).\n */\n HKDF.prototype.expand = function (length) {\n var out = new Uint8Array(length);\n for (var i = 0; i < out.length; i++) {\n if (this._bufpos === this._buffer.length) {\n this._fillBuffer();\n }\n out[i] = this._buffer[this._bufpos++];\n }\n return out;\n };\n HKDF.prototype.clean = function () {\n this._hmac.clean();\n wipe_1.wipe(this._buffer);\n wipe_1.wipe(this._counter);\n this._bufpos = 0;\n };\n return HKDF;\n}());\nexports.HKDF = HKDF;\n// TODO(dchest): maybe implement deriveKey?\n//# sourceMappingURL=hkdf.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar binary_1 = require(\"@stablelib/binary\");\nvar wipe_1 = require(\"@stablelib/wipe\");\nexports.DIGEST_LENGTH = 32;\nexports.BLOCK_SIZE = 64;\n/**\n * SHA2-256 cryptographic hash algorithm.\n */\nvar SHA256 = /** @class */ (function () {\n function SHA256() {\n /** Length of hash output */\n this.digestLength = exports.DIGEST_LENGTH;\n /** Block size */\n this.blockSize = exports.BLOCK_SIZE;\n // Note: Int32Array is used instead of Uint32Array for performance reasons.\n this._state = new Int32Array(8); // hash state\n this._temp = new Int32Array(64); // temporary state\n this._buffer = new Uint8Array(128); // buffer for data to hash\n this._bufferLength = 0; // number of bytes in buffer\n this._bytesHashed = 0; // number of total bytes hashed\n this._finished = false; // indicates whether the hash was finalized\n this.reset();\n }\n SHA256.prototype._initState = function () {\n this._state[0] = 0x6a09e667;\n this._state[1] = 0xbb67ae85;\n this._state[2] = 0x3c6ef372;\n this._state[3] = 0xa54ff53a;\n this._state[4] = 0x510e527f;\n this._state[5] = 0x9b05688c;\n this._state[6] = 0x1f83d9ab;\n this._state[7] = 0x5be0cd19;\n };\n /**\n * Resets hash state making it possible\n * to re-use this instance to hash other data.\n */\n SHA256.prototype.reset = function () {\n this._initState();\n this._bufferLength = 0;\n this._bytesHashed = 0;\n this._finished = false;\n return this;\n };\n /**\n * Cleans internal buffers and resets hash state.\n */\n SHA256.prototype.clean = function () {\n wipe_1.wipe(this._buffer);\n wipe_1.wipe(this._temp);\n this.reset();\n };\n /**\n * Updates hash state with the given data.\n *\n * Throws error when trying to update already finalized hash:\n * instance must be reset to update it again.\n */\n SHA256.prototype.update = function (data, dataLength) {\n if (dataLength === void 0) { dataLength = data.length; }\n if (this._finished) {\n throw new Error(\"SHA256: can't update because hash was finished.\");\n }\n var dataPos = 0;\n this._bytesHashed += dataLength;\n if (this._bufferLength > 0) {\n while (this._bufferLength < this.blockSize && dataLength > 0) {\n this._buffer[this._bufferLength++] = data[dataPos++];\n dataLength--;\n }\n if (this._bufferLength === this.blockSize) {\n hashBlocks(this._temp, this._state, this._buffer, 0, this.blockSize);\n this._bufferLength = 0;\n }\n }\n if (dataLength >= this.blockSize) {\n dataPos = hashBlocks(this._temp, this._state, data, dataPos, dataLength);\n dataLength %= this.blockSize;\n }\n while (dataLength > 0) {\n this._buffer[this._bufferLength++] = data[dataPos++];\n dataLength--;\n }\n return this;\n };\n /**\n * Finalizes hash state and puts hash into out.\n * If hash was already finalized, puts the same value.\n */\n SHA256.prototype.finish = function (out) {\n if (!this._finished) {\n var bytesHashed = this._bytesHashed;\n var left = this._bufferLength;\n var bitLenHi = (bytesHashed / 0x20000000) | 0;\n var bitLenLo = bytesHashed << 3;\n var padLength = (bytesHashed % 64 < 56) ? 64 : 128;\n this._buffer[left] = 0x80;\n for (var i = left + 1; i < padLength - 8; i++) {\n this._buffer[i] = 0;\n }\n binary_1.writeUint32BE(bitLenHi, this._buffer, padLength - 8);\n binary_1.writeUint32BE(bitLenLo, this._buffer, padLength - 4);\n hashBlocks(this._temp, this._state, this._buffer, 0, padLength);\n this._finished = true;\n }\n for (var i = 0; i < this.digestLength / 4; i++) {\n binary_1.writeUint32BE(this._state[i], out, i * 4);\n }\n return this;\n };\n /**\n * Returns the final hash digest.\n */\n SHA256.prototype.digest = function () {\n var out = new Uint8Array(this.digestLength);\n this.finish(out);\n return out;\n };\n /**\n * Function useful for HMAC/PBKDF2 optimization.\n * Returns hash state to be used with restoreState().\n * Only chain value is saved, not buffers or other\n * state variables.\n */\n SHA256.prototype.saveState = function () {\n if (this._finished) {\n throw new Error(\"SHA256: cannot save finished state\");\n }\n return {\n state: new Int32Array(this._state),\n buffer: this._bufferLength > 0 ? new Uint8Array(this._buffer) : undefined,\n bufferLength: this._bufferLength,\n bytesHashed: this._bytesHashed\n };\n };\n /**\n * Function useful for HMAC/PBKDF2 optimization.\n * Restores state saved by saveState() and sets bytesHashed\n * to the given value.\n */\n SHA256.prototype.restoreState = function (savedState) {\n this._state.set(savedState.state);\n this._bufferLength = savedState.bufferLength;\n if (savedState.buffer) {\n this._buffer.set(savedState.buffer);\n }\n this._bytesHashed = savedState.bytesHashed;\n this._finished = false;\n return this;\n };\n /**\n * Cleans state returned by saveState().\n */\n SHA256.prototype.cleanSavedState = function (savedState) {\n wipe_1.wipe(savedState.state);\n if (savedState.buffer) {\n wipe_1.wipe(savedState.buffer);\n }\n savedState.bufferLength = 0;\n savedState.bytesHashed = 0;\n };\n return SHA256;\n}());\nexports.SHA256 = SHA256;\n// Constants\nvar K = new Int32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b,\n 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01,\n 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7,\n 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152,\n 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147,\n 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc,\n 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819,\n 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08,\n 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f,\n 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\nfunction hashBlocks(w, v, p, pos, len) {\n while (len >= 64) {\n var a = v[0];\n var b = v[1];\n var c = v[2];\n var d = v[3];\n var e = v[4];\n var f = v[5];\n var g = v[6];\n var h = v[7];\n for (var i = 0; i < 16; i++) {\n var j = pos + i * 4;\n w[i] = binary_1.readUint32BE(p, j);\n }\n for (var i = 16; i < 64; i++) {\n var u = w[i - 2];\n var t1 = (u >>> 17 | u << (32 - 17)) ^ (u >>> 19 | u << (32 - 19)) ^ (u >>> 10);\n u = w[i - 15];\n var t2 = (u >>> 7 | u << (32 - 7)) ^ (u >>> 18 | u << (32 - 18)) ^ (u >>> 3);\n w[i] = (t1 + w[i - 7] | 0) + (t2 + w[i - 16] | 0);\n }\n for (var i = 0; i < 64; i++) {\n var t1 = (((((e >>> 6 | e << (32 - 6)) ^ (e >>> 11 | e << (32 - 11)) ^\n (e >>> 25 | e << (32 - 25))) + ((e & f) ^ (~e & g))) | 0) +\n ((h + ((K[i] + w[i]) | 0)) | 0)) | 0;\n var t2 = (((a >>> 2 | a << (32 - 2)) ^ (a >>> 13 | a << (32 - 13)) ^\n (a >>> 22 | a << (32 - 22))) + ((a & b) ^ (a & c) ^ (b & c))) | 0;\n h = g;\n g = f;\n f = e;\n e = (d + t1) | 0;\n d = c;\n c = b;\n b = a;\n a = (t1 + t2) | 0;\n }\n v[0] += a;\n v[1] += b;\n v[2] += c;\n v[3] += d;\n v[4] += e;\n v[5] += f;\n v[6] += g;\n v[7] += h;\n pos += 64;\n len -= 64;\n }\n return pos;\n}\nfunction hash(data) {\n var h = new SHA256();\n h.update(data);\n var digest = h.digest();\n h.clean();\n return digest;\n}\nexports.hash = hash;\n//# sourceMappingURL=sha256.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sharedKey = exports.generateKeyPair = exports.generateKeyPairFromSeed = exports.scalarMultBase = exports.scalarMult = exports.SHARED_KEY_LENGTH = exports.SECRET_KEY_LENGTH = exports.PUBLIC_KEY_LENGTH = void 0;\n/**\n * Package x25519 implements X25519 key agreement.\n */\nconst random_1 = require(\"@stablelib/random\");\nconst wipe_1 = require(\"@stablelib/wipe\");\nexports.PUBLIC_KEY_LENGTH = 32;\nexports.SECRET_KEY_LENGTH = 32;\nexports.SHARED_KEY_LENGTH = 32;\n// Returns new zero-filled 16-element GF (Float64Array).\n// If passed an array of numbers, prefills the returned\n// array with them.\n//\n// We use Float64Array, because we need 48-bit numbers\n// for this implementation.\nfunction gf(init) {\n const r = new Float64Array(16);\n if (init) {\n for (let i = 0; i < init.length; i++) {\n r[i] = init[i];\n }\n }\n return r;\n}\n// Base point.\nconst _9 = new Uint8Array(32);\n_9[0] = 9;\nconst _121665 = gf([0xdb41, 1]);\nfunction car25519(o) {\n let c = 1;\n for (let i = 0; i < 16; i++) {\n let v = o[i] + c + 65535;\n c = Math.floor(v / 65536);\n o[i] = v - c * 65536;\n }\n o[0] += c - 1 + 37 * (c - 1);\n}\nfunction sel25519(p, q, b) {\n const c = ~(b - 1);\n for (let i = 0; i < 16; i++) {\n const t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n}\nfunction pack25519(o, n) {\n const m = gf();\n const t = gf();\n for (let i = 0; i < 16; i++) {\n t[i] = n[i];\n }\n car25519(t);\n car25519(t);\n car25519(t);\n for (let j = 0; j < 2; j++) {\n m[0] = t[0] - 0xffed;\n for (let i = 1; i < 15; i++) {\n m[i] = t[i] - 0xffff - ((m[i - 1] >> 16) & 1);\n m[i - 1] &= 0xffff;\n }\n m[15] = t[15] - 0x7fff - ((m[14] >> 16) & 1);\n const b = (m[15] >> 16) & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1 - b);\n }\n for (let i = 0; i < 16; i++) {\n o[2 * i] = t[i] & 0xff;\n o[2 * i + 1] = t[i] >> 8;\n }\n}\nfunction unpack25519(o, n) {\n for (let i = 0; i < 16; i++) {\n o[i] = n[2 * i] + (n[2 * i + 1] << 8);\n }\n o[15] &= 0x7fff;\n}\nfunction add(o, a, b) {\n for (let i = 0; i < 16; i++) {\n o[i] = a[i] + b[i];\n }\n}\nfunction sub(o, a, b) {\n for (let i = 0; i < 16; i++) {\n o[i] = a[i] - b[i];\n }\n}\nfunction mul(o, a, b) {\n let v, c, t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0, t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0, t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0, b0 = b[0], b1 = b[1], b2 = b[2], b3 = b[3], b4 = b[4], b5 = b[5], b6 = b[6], b7 = b[7], b8 = b[8], b9 = b[9], b10 = b[10], b11 = b[11], b12 = b[12], b13 = b[13], b14 = b[14], b15 = b[15];\n v = a[0];\n t0 += v * b0;\n t1 += v * b1;\n t2 += v * b2;\n t3 += v * b3;\n t4 += v * b4;\n t5 += v * b5;\n t6 += v * b6;\n t7 += v * b7;\n t8 += v * b8;\n t9 += v * b9;\n t10 += v * b10;\n t11 += v * b11;\n t12 += v * b12;\n t13 += v * b13;\n t14 += v * b14;\n t15 += v * b15;\n v = a[1];\n t1 += v * b0;\n t2 += v * b1;\n t3 += v * b2;\n t4 += v * b3;\n t5 += v * b4;\n t6 += v * b5;\n t7 += v * b6;\n t8 += v * b7;\n t9 += v * b8;\n t10 += v * b9;\n t11 += v * b10;\n t12 += v * b11;\n t13 += v * b12;\n t14 += v * b13;\n t15 += v * b14;\n t16 += v * b15;\n v = a[2];\n t2 += v * b0;\n t3 += v * b1;\n t4 += v * b2;\n t5 += v * b3;\n t6 += v * b4;\n t7 += v * b5;\n t8 += v * b6;\n t9 += v * b7;\n t10 += v * b8;\n t11 += v * b9;\n t12 += v * b10;\n t13 += v * b11;\n t14 += v * b12;\n t15 += v * b13;\n t16 += v * b14;\n t17 += v * b15;\n v = a[3];\n t3 += v * b0;\n t4 += v * b1;\n t5 += v * b2;\n t6 += v * b3;\n t7 += v * b4;\n t8 += v * b5;\n t9 += v * b6;\n t10 += v * b7;\n t11 += v * b8;\n t12 += v * b9;\n t13 += v * b10;\n t14 += v * b11;\n t15 += v * b12;\n t16 += v * b13;\n t17 += v * b14;\n t18 += v * b15;\n v = a[4];\n t4 += v * b0;\n t5 += v * b1;\n t6 += v * b2;\n t7 += v * b3;\n t8 += v * b4;\n t9 += v * b5;\n t10 += v * b6;\n t11 += v * b7;\n t12 += v * b8;\n t13 += v * b9;\n t14 += v * b10;\n t15 += v * b11;\n t16 += v * b12;\n t17 += v * b13;\n t18 += v * b14;\n t19 += v * b15;\n v = a[5];\n t5 += v * b0;\n t6 += v * b1;\n t7 += v * b2;\n t8 += v * b3;\n t9 += v * b4;\n t10 += v * b5;\n t11 += v * b6;\n t12 += v * b7;\n t13 += v * b8;\n t14 += v * b9;\n t15 += v * b10;\n t16 += v * b11;\n t17 += v * b12;\n t18 += v * b13;\n t19 += v * b14;\n t20 += v * b15;\n v = a[6];\n t6 += v * b0;\n t7 += v * b1;\n t8 += v * b2;\n t9 += v * b3;\n t10 += v * b4;\n t11 += v * b5;\n t12 += v * b6;\n t13 += v * b7;\n t14 += v * b8;\n t15 += v * b9;\n t16 += v * b10;\n t17 += v * b11;\n t18 += v * b12;\n t19 += v * b13;\n t20 += v * b14;\n t21 += v * b15;\n v = a[7];\n t7 += v * b0;\n t8 += v * b1;\n t9 += v * b2;\n t10 += v * b3;\n t11 += v * b4;\n t12 += v * b5;\n t13 += v * b6;\n t14 += v * b7;\n t15 += v * b8;\n t16 += v * b9;\n t17 += v * b10;\n t18 += v * b11;\n t19 += v * b12;\n t20 += v * b13;\n t21 += v * b14;\n t22 += v * b15;\n v = a[8];\n t8 += v * b0;\n t9 += v * b1;\n t10 += v * b2;\n t11 += v * b3;\n t12 += v * b4;\n t13 += v * b5;\n t14 += v * b6;\n t15 += v * b7;\n t16 += v * b8;\n t17 += v * b9;\n t18 += v * b10;\n t19 += v * b11;\n t20 += v * b12;\n t21 += v * b13;\n t22 += v * b14;\n t23 += v * b15;\n v = a[9];\n t9 += v * b0;\n t10 += v * b1;\n t11 += v * b2;\n t12 += v * b3;\n t13 += v * b4;\n t14 += v * b5;\n t15 += v * b6;\n t16 += v * b7;\n t17 += v * b8;\n t18 += v * b9;\n t19 += v * b10;\n t20 += v * b11;\n t21 += v * b12;\n t22 += v * b13;\n t23 += v * b14;\n t24 += v * b15;\n v = a[10];\n t10 += v * b0;\n t11 += v * b1;\n t12 += v * b2;\n t13 += v * b3;\n t14 += v * b4;\n t15 += v * b5;\n t16 += v * b6;\n t17 += v * b7;\n t18 += v * b8;\n t19 += v * b9;\n t20 += v * b10;\n t21 += v * b11;\n t22 += v * b12;\n t23 += v * b13;\n t24 += v * b14;\n t25 += v * b15;\n v = a[11];\n t11 += v * b0;\n t12 += v * b1;\n t13 += v * b2;\n t14 += v * b3;\n t15 += v * b4;\n t16 += v * b5;\n t17 += v * b6;\n t18 += v * b7;\n t19 += v * b8;\n t20 += v * b9;\n t21 += v * b10;\n t22 += v * b11;\n t23 += v * b12;\n t24 += v * b13;\n t25 += v * b14;\n t26 += v * b15;\n v = a[12];\n t12 += v * b0;\n t13 += v * b1;\n t14 += v * b2;\n t15 += v * b3;\n t16 += v * b4;\n t17 += v * b5;\n t18 += v * b6;\n t19 += v * b7;\n t20 += v * b8;\n t21 += v * b9;\n t22 += v * b10;\n t23 += v * b11;\n t24 += v * b12;\n t25 += v * b13;\n t26 += v * b14;\n t27 += v * b15;\n v = a[13];\n t13 += v * b0;\n t14 += v * b1;\n t15 += v * b2;\n t16 += v * b3;\n t17 += v * b4;\n t18 += v * b5;\n t19 += v * b6;\n t20 += v * b7;\n t21 += v * b8;\n t22 += v * b9;\n t23 += v * b10;\n t24 += v * b11;\n t25 += v * b12;\n t26 += v * b13;\n t27 += v * b14;\n t28 += v * b15;\n v = a[14];\n t14 += v * b0;\n t15 += v * b1;\n t16 += v * b2;\n t17 += v * b3;\n t18 += v * b4;\n t19 += v * b5;\n t20 += v * b6;\n t21 += v * b7;\n t22 += v * b8;\n t23 += v * b9;\n t24 += v * b10;\n t25 += v * b11;\n t26 += v * b12;\n t27 += v * b13;\n t28 += v * b14;\n t29 += v * b15;\n v = a[15];\n t15 += v * b0;\n t16 += v * b1;\n t17 += v * b2;\n t18 += v * b3;\n t19 += v * b4;\n t20 += v * b5;\n t21 += v * b6;\n t22 += v * b7;\n t23 += v * b8;\n t24 += v * b9;\n t25 += v * b10;\n t26 += v * b11;\n t27 += v * b12;\n t28 += v * b13;\n t29 += v * b14;\n t30 += v * b15;\n t0 += 38 * t16;\n t1 += 38 * t17;\n t2 += 38 * t18;\n t3 += 38 * t19;\n t4 += 38 * t20;\n t5 += 38 * t21;\n t6 += 38 * t22;\n t7 += 38 * t23;\n t8 += 38 * t24;\n t9 += 38 * t25;\n t10 += 38 * t26;\n t11 += 38 * t27;\n t12 += 38 * t28;\n t13 += 38 * t29;\n t14 += 38 * t30;\n // t15 left as is\n // first car\n c = 1;\n v = t0 + c + 65535;\n c = Math.floor(v / 65536);\n t0 = v - c * 65536;\n v = t1 + c + 65535;\n c = Math.floor(v / 65536);\n t1 = v - c * 65536;\n v = t2 + c + 65535;\n c = Math.floor(v / 65536);\n t2 = v - c * 65536;\n v = t3 + c + 65535;\n c = Math.floor(v / 65536);\n t3 = v - c * 65536;\n v = t4 + c + 65535;\n c = Math.floor(v / 65536);\n t4 = v - c * 65536;\n v = t5 + c + 65535;\n c = Math.floor(v / 65536);\n t5 = v - c * 65536;\n v = t6 + c + 65535;\n c = Math.floor(v / 65536);\n t6 = v - c * 65536;\n v = t7 + c + 65535;\n c = Math.floor(v / 65536);\n t7 = v - c * 65536;\n v = t8 + c + 65535;\n c = Math.floor(v / 65536);\n t8 = v - c * 65536;\n v = t9 + c + 65535;\n c = Math.floor(v / 65536);\n t9 = v - c * 65536;\n v = t10 + c + 65535;\n c = Math.floor(v / 65536);\n t10 = v - c * 65536;\n v = t11 + c + 65535;\n c = Math.floor(v / 65536);\n t11 = v - c * 65536;\n v = t12 + c + 65535;\n c = Math.floor(v / 65536);\n t12 = v - c * 65536;\n v = t13 + c + 65535;\n c = Math.floor(v / 65536);\n t13 = v - c * 65536;\n v = t14 + c + 65535;\n c = Math.floor(v / 65536);\n t14 = v - c * 65536;\n v = t15 + c + 65535;\n c = Math.floor(v / 65536);\n t15 = v - c * 65536;\n t0 += c - 1 + 37 * (c - 1);\n // second car\n c = 1;\n v = t0 + c + 65535;\n c = Math.floor(v / 65536);\n t0 = v - c * 65536;\n v = t1 + c + 65535;\n c = Math.floor(v / 65536);\n t1 = v - c * 65536;\n v = t2 + c + 65535;\n c = Math.floor(v / 65536);\n t2 = v - c * 65536;\n v = t3 + c + 65535;\n c = Math.floor(v / 65536);\n t3 = v - c * 65536;\n v = t4 + c + 65535;\n c = Math.floor(v / 65536);\n t4 = v - c * 65536;\n v = t5 + c + 65535;\n c = Math.floor(v / 65536);\n t5 = v - c * 65536;\n v = t6 + c + 65535;\n c = Math.floor(v / 65536);\n t6 = v - c * 65536;\n v = t7 + c + 65535;\n c = Math.floor(v / 65536);\n t7 = v - c * 65536;\n v = t8 + c + 65535;\n c = Math.floor(v / 65536);\n t8 = v - c * 65536;\n v = t9 + c + 65535;\n c = Math.floor(v / 65536);\n t9 = v - c * 65536;\n v = t10 + c + 65535;\n c = Math.floor(v / 65536);\n t10 = v - c * 65536;\n v = t11 + c + 65535;\n c = Math.floor(v / 65536);\n t11 = v - c * 65536;\n v = t12 + c + 65535;\n c = Math.floor(v / 65536);\n t12 = v - c * 65536;\n v = t13 + c + 65535;\n c = Math.floor(v / 65536);\n t13 = v - c * 65536;\n v = t14 + c + 65535;\n c = Math.floor(v / 65536);\n t14 = v - c * 65536;\n v = t15 + c + 65535;\n c = Math.floor(v / 65536);\n t15 = v - c * 65536;\n t0 += c - 1 + 37 * (c - 1);\n o[0] = t0;\n o[1] = t1;\n o[2] = t2;\n o[3] = t3;\n o[4] = t4;\n o[5] = t5;\n o[6] = t6;\n o[7] = t7;\n o[8] = t8;\n o[9] = t9;\n o[10] = t10;\n o[11] = t11;\n o[12] = t12;\n o[13] = t13;\n o[14] = t14;\n o[15] = t15;\n}\nfunction square(o, a) {\n mul(o, a, a);\n}\nfunction inv25519(o, inp) {\n const c = gf();\n for (let i = 0; i < 16; i++) {\n c[i] = inp[i];\n }\n for (let i = 253; i >= 0; i--) {\n square(c, c);\n if (i !== 2 && i !== 4) {\n mul(c, c, inp);\n }\n }\n for (let i = 0; i < 16; i++) {\n o[i] = c[i];\n }\n}\nfunction scalarMult(n, p) {\n const z = new Uint8Array(32);\n const x = new Float64Array(80);\n const a = gf(), b = gf(), c = gf(), d = gf(), e = gf(), f = gf();\n for (let i = 0; i < 31; i++) {\n z[i] = n[i];\n }\n z[31] = (n[31] & 127) | 64;\n z[0] &= 248;\n unpack25519(x, p);\n for (let i = 0; i < 16; i++) {\n b[i] = x[i];\n }\n a[0] = d[0] = 1;\n for (let i = 254; i >= 0; --i) {\n const r = (z[i >>> 3] >>> (i & 7)) & 1;\n sel25519(a, b, r);\n sel25519(c, d, r);\n add(e, a, c);\n sub(a, a, c);\n add(c, b, d);\n sub(b, b, d);\n square(d, e);\n square(f, a);\n mul(a, c, a);\n mul(c, b, e);\n add(e, a, c);\n sub(a, a, c);\n square(b, a);\n sub(c, d, f);\n mul(a, c, _121665);\n add(a, a, d);\n mul(c, c, a);\n mul(a, d, f);\n mul(d, b, x);\n square(b, e);\n sel25519(a, b, r);\n sel25519(c, d, r);\n }\n for (let i = 0; i < 16; i++) {\n x[i + 16] = a[i];\n x[i + 32] = c[i];\n x[i + 48] = b[i];\n x[i + 64] = d[i];\n }\n const x32 = x.subarray(32);\n const x16 = x.subarray(16);\n inv25519(x32, x32);\n mul(x16, x16, x32);\n const q = new Uint8Array(32);\n pack25519(q, x16);\n return q;\n}\nexports.scalarMult = scalarMult;\nfunction scalarMultBase(n) {\n return scalarMult(n, _9);\n}\nexports.scalarMultBase = scalarMultBase;\nfunction generateKeyPairFromSeed(seed) {\n if (seed.length !== exports.SECRET_KEY_LENGTH) {\n throw new Error(`x25519: seed must be ${exports.SECRET_KEY_LENGTH} bytes`);\n }\n const secretKey = new Uint8Array(seed);\n const publicKey = scalarMultBase(secretKey);\n return {\n publicKey,\n secretKey\n };\n}\nexports.generateKeyPairFromSeed = generateKeyPairFromSeed;\nfunction generateKeyPair(prng) {\n const seed = (0, random_1.randomBytes)(32, prng);\n const result = generateKeyPairFromSeed(seed);\n (0, wipe_1.wipe)(seed);\n return result;\n}\nexports.generateKeyPair = generateKeyPair;\n/**\n * Returns a shared key between our secret key and a peer's public key.\n *\n * Throws an error if the given keys are of wrong length.\n *\n * If rejectZero is true throws if the calculated shared key is all-zero.\n * From RFC 7748:\n *\n * > Protocol designers using Diffie-Hellman over the curves defined in\n * > this document must not assume \"contributory behavior\". Specially,\n * > contributory behavior means that both parties' private keys\n * > contribute to the resulting shared key. Since curve25519 and\n * > curve448 have cofactors of 8 and 4 (respectively), an input point of\n * > small order will eliminate any contribution from the other party's\n * > private key. This situation can be detected by checking for the all-\n * > zero output, which implementations MAY do, as specified in Section 6.\n * > However, a large number of existing implementations do not do this.\n *\n * IMPORTANT: the returned key is a raw result of scalar multiplication.\n * To use it as a key material, hash it with a cryptographic hash function.\n */\nfunction sharedKey(mySecretKey, theirPublicKey, rejectZero = false) {\n if (mySecretKey.length !== exports.PUBLIC_KEY_LENGTH) {\n throw new Error(\"X25519: incorrect secret key length\");\n }\n if (theirPublicKey.length !== exports.PUBLIC_KEY_LENGTH) {\n throw new Error(\"X25519: incorrect public key length\");\n }\n const result = scalarMult(mySecretKey, theirPublicKey);\n if (rejectZero) {\n let zeros = 0;\n for (let i = 0; i < result.length; i++) {\n zeros |= result[i];\n }\n if (zeros === 0) {\n throw new Error(\"X25519: invalid shared key\");\n }\n }\n return result;\n}\nexports.sharedKey = sharedKey;\n//# sourceMappingURL=x25519.js.map","function e(s,r,i=\"string\"){if(!s[r]||typeof s[r]!==i)throw new Error(`Missing or invalid \"${r}\" param`)}function l(s,r){let i=!0;return r.forEach(t=>{t in s||(i=!1)}),i}function f(s,r){return Array.isArray(s)?s.length===r:Object.keys(s).length===r}function w(s,r){return Array.isArray(s)?s.length>=r:Object.keys(s).length>=r}function u(s,r,i){return(i.length?w(s,r.length):f(s,r.length))?l(s,r):!1}function n(s,r,i=\"_\"){const t=s.split(i);return t[t.length-1].trim().toLowerCase()===r.trim().toLowerCase()}function R(s){return b(s.method)&&a(s.params)}function b(s){return n(s,\"subscribe\")}function a(s){return u(s,[\"topic\"],[])}function P(s){return c(s.method)&&h(s.params)}function c(s){return n(s,\"publish\")}function h(s){return u(s,[\"message\",\"topic\",\"ttl\"],[\"prompt\",\"tag\"])}function _(s){return o(s.method)&&p(s.params)}function o(s){return n(s,\"unsubscribe\")}function p(s){return u(s,[\"id\",\"topic\"],[])}function S(s){return m(s.method)&&d(s.params)}function m(s){return n(s,\"subscription\")}function d(s){return u(s,[\"id\",\"data\"],[])}function g(s){if(!b(s.method))throw new Error(\"JSON-RPC Request has invalid subscribe method\");if(!a(s.params))throw new Error(\"JSON-RPC Request has invalid subscribe params\");const r=s.params;return e(r,\"topic\"),r}function q(s){if(!c(s.method))throw new Error(\"JSON-RPC Request has invalid publish method\");if(!h(s.params))throw new Error(\"JSON-RPC Request has invalid publish params\");const r=s.params;return e(r,\"topic\"),e(r,\"message\"),e(r,\"ttl\",\"number\"),r}function E(s){if(!o(s.method))throw new Error(\"JSON-RPC Request has invalid unsubscribe method\");if(!p(s.params))throw new Error(\"JSON-RPC Request has invalid unsubscribe params\");const r=s.params;return e(r,\"id\"),r}function k(s){if(!m(s.method))throw new Error(\"JSON-RPC Request has invalid subscription method\");if(!d(s.params))throw new Error(\"JSON-RPC Request has invalid subscription params\");const r=s.params;return e(r,\"id\"),e(r,\"data\"),r}const C={waku:{publish:\"waku_publish\",batchPublish:\"waku_batchPublish\",subscribe:\"waku_subscribe\",batchSubscribe:\"waku_batchSubscribe\",subscription:\"waku_subscription\",unsubscribe:\"waku_unsubscribe\",batchUnsubscribe:\"waku_batchUnsubscribe\",batchFetchMessages:\"waku_batchFetchMessages\"},irn:{publish:\"irn_publish\",batchPublish:\"irn_batchPublish\",subscribe:\"irn_subscribe\",batchSubscribe:\"irn_batchSubscribe\",subscription:\"irn_subscription\",unsubscribe:\"irn_unsubscribe\",batchUnsubscribe:\"irn_batchUnsubscribe\",batchFetchMessages:\"irn_batchFetchMessages\"},iridium:{publish:\"iridium_publish\",batchPublish:\"iridium_batchPublish\",subscribe:\"iridium_subscribe\",batchSubscribe:\"iridium_batchSubscribe\",subscription:\"iridium_subscription\",unsubscribe:\"iridium_unsubscribe\",batchUnsubscribe:\"iridium_batchUnsubscribe\",batchFetchMessages:\"iridium_batchFetchMessages\"}};export{C as RELAY_JSONRPC,c as isPublishMethod,h as isPublishParams,P as isPublishRequest,b as isSubscribeMethod,a as isSubscribeParams,R as isSubscribeRequest,m as isSubscriptionMethod,d as isSubscriptionParams,S as isSubscriptionRequest,o as isUnsubscribeMethod,p as isUnsubscribeParams,_ as isUnsubscribeRequest,q as parsePublishRequest,g as parseSubscribeRequest,k as parseSubscriptionRequest,E as parseUnsubscribeRequest};\n//# sourceMappingURL=index.es.js.map\n","import{detect as ot}from\"detect-browser\";import{toMiliseconds as ee,FIVE_MINUTES as Ie,fromMiliseconds as st}from\"@walletconnect/time\";import{getDocument as ne,getNavigator as Pe,getLocation as je}from\"@walletconnect/window-getters\";import{getWindowMetadata as it}from\"@walletconnect/window-metadata\";import*as q from\"query-string\";import{hashMessage as Te}from\"@ethersproject/hash\";import{recoverAddress as ct}from\"@ethersproject/transactions\";import{ChaCha20Poly1305 as Ae}from\"@stablelib/chacha20poly1305\";import{HKDF as at}from\"@stablelib/hkdf\";import{randomBytes as B}from\"@stablelib/random\";import{SHA256 as Ce,hash as Ue}from\"@stablelib/sha256\";import*as _e from\"@stablelib/x25519\";import{toString as v,fromString as w,concat as te}from\"uint8arrays\";import{ec as ut}from\"elliptic\";import{decodeJWT as lt}from\"@walletconnect/relay-auth\";import{RELAY_JSONRPC as dt}from\"@walletconnect/relay-api\";const H=\":\";function re(e){const[n,t]=e.split(H);return{namespace:n,reference:t}}function ke(e){const{namespace:n,reference:t}=e;return[n,t].join(H)}function oe(e){const[n,t,r]=e.split(H);return{namespace:n,reference:t,address:r}}function De(e){const{namespace:n,reference:t,address:r}=e;return[n,t,r].join(H)}function se(e,n){const t=[];return e.forEach(r=>{const o=n(r);t.includes(o)||t.push(o)}),t}function xe(e){const{address:n}=oe(e);return n}function Ve(e){const{namespace:n,reference:t}=oe(e);return ke({namespace:n,reference:t})}function ft(e,n){const{namespace:t,reference:r}=re(n);return De({namespace:t,reference:r,address:e})}function pt(e){return se(e,xe)}function Me(e){return se(e,Ve)}function mt(e,n=[]){const t=[];return Object.keys(e).forEach(r=>{if(n.length&&!n.includes(r))return;const o=e[r];t.push(...o.accounts)}),t}function ht(e,n=[]){const t=[];return Object.keys(e).forEach(r=>{if(n.length&&!n.includes(r))return;const o=e[r];t.push(...Me(o.accounts))}),t}function yt(e,n=[]){const t=[];return Object.keys(e).forEach(r=>{if(n.length&&!n.includes(r))return;const o=e[r];t.push(...W(r,o))}),t}function W(e,n){return e.includes(\":\")?[e]:n.chains||[]}var gt=Object.defineProperty,Ke=Object.getOwnPropertySymbols,vt=Object.prototype.hasOwnProperty,bt=Object.prototype.propertyIsEnumerable,Le=(e,n,t)=>n in e?gt(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,Fe=(e,n)=>{for(var t in n||(n={}))vt.call(n,t)&&Le(e,t,n[t]);if(Ke)for(var t of Ke(n))bt.call(n,t)&&Le(e,t,n[t]);return e};const qe=\"ReactNative\",y={reactNative:\"react-native\",node:\"node\",browser:\"browser\",unknown:\"unknown\"},J=\" \",Et=\":\",Be=\"/\",ie=2,wt=1e3,He=\"js\";function ce(){return typeof process<\"u\"&&typeof process.versions<\"u\"&&typeof process.versions.node<\"u\"}function $(){return!ne()&&!!Pe()&&navigator.product===qe}function Ot(){return $()&&typeof global<\"u\"&&typeof(global==null?void 0:global.Platform)<\"u\"&&(global==null?void 0:global.Platform.OS)===\"android\"}function Nt(){return $()&&typeof global<\"u\"&&typeof(global==null?void 0:global.Platform)<\"u\"&&(global==null?void 0:global.Platform.OS)===\"ios\"}function V(){return!ce()&&!!Pe()&&!!ne()}function A(){return $()?y.reactNative:ce()?y.node:V()?y.browser:y.unknown}function St(){var e;try{return $()&&typeof global<\"u\"&&typeof(global==null?void 0:global.Application)<\"u\"?(e=global.Application)==null?void 0:e.applicationId:void 0}catch{return}}function We(e,n){let t=q.parse(e);return t=Fe(Fe({},t),n),e=q.stringify(t),e}function $t(){return it()||{name:\"\",description:\"\",url:\"\",icons:[\"\"]}}function Rt(e,n){var t;const r=A(),o={protocol:e,version:n,env:r};return r===\"browser\"&&(o.host=((t=je())==null?void 0:t.host)||\"unknown\"),o}function Je(){if(A()===y.reactNative&&typeof global<\"u\"&&typeof(global==null?void 0:global.Platform)<\"u\"){const{OS:t,Version:r}=global.Platform;return[t,r].join(\"-\")}const e=ot();if(e===null)return\"unknown\";const n=e.os?e.os.replace(\" \",\"\").toLowerCase():\"unknown\";return e.type===\"browser\"?[n,e.name,e.version].join(\"-\"):[n,e.version].join(\"-\")}function ze(){var e;const n=A();return n===y.browser?[n,((e=je())==null?void 0:e.host)||\"unknown\"].join(\":\"):n}function Ge(e,n,t){const r=Je(),o=ze();return[[e,n].join(\"-\"),[He,t].join(\"-\"),r,o].join(\"/\")}function It({protocol:e,version:n,relayUrl:t,sdkVersion:r,auth:o,projectId:s,useOnCloseEvent:i,bundleId:u,packageName:l}){const c=t.split(\"?\"),d=Ge(e,n,r),a={auth:o,ua:d,projectId:s,useOnCloseEvent:i||void 0,packageName:l||void 0,bundleId:u||void 0},f=We(c[1]||\"\",a);return c[0]+\"?\"+f}function Pt(e){let n=(e.match(/^[^:]+(?=:\\/\\/)/gi)||[])[0];const t=typeof n<\"u\"?e.split(\"://\")[1]:e;return n=n===\"wss\"?\"https\":\"http\",[n,t].join(\"://\")}function jt(e,n,t){if(!e[n]||typeof e[n]!==t)throw new Error(`Missing or invalid \"${n}\" param`)}function Ye(e,n=ie){return Qe(e.split(Be),n)}function Tt(e){return Ye(e).join(J)}function R(e,n){return e.filter(t=>n.includes(t)).length===e.length}function Qe(e,n=ie){return e.slice(Math.max(e.length-n,0))}function At(e){return Object.fromEntries(e.entries())}function Ct(e){return new Map(Object.entries(e))}function Ut(e,n){const t={};return Object.keys(e).forEach(r=>{t[r]=n(e[r])}),t}const _t=e=>e;function Ze(e){return e.trim().replace(/^\\w/,n=>n.toUpperCase())}function kt(e){return e.split(J).map(n=>Ze(n)).join(J)}function Dt(e=Ie,n){const t=ee(e||Ie);let r,o,s,i;return{resolve:u=>{s&&r&&(clearTimeout(s),r(u),i=Promise.resolve(u))},reject:u=>{s&&o&&(clearTimeout(s),o(u))},done:()=>new Promise((u,l)=>{if(i)return u(i);s=setTimeout(()=>{const c=new Error(n);i=Promise.reject(c),l(c)},t),r=u,o=l})}}function xt(e,n,t){return new Promise(async(r,o)=>{const s=setTimeout(()=>o(new Error(t)),n);try{const i=await e;r(i)}catch(i){o(i)}clearTimeout(s)})}function ae(e,n){if(typeof n==\"string\"&&n.startsWith(`${e}:`))return n;if(e.toLowerCase()===\"topic\"){if(typeof n!=\"string\")throw new Error('Value must be \"string\" for expirer target type: topic');return`topic:${n}`}else if(e.toLowerCase()===\"id\"){if(typeof n!=\"number\")throw new Error('Value must be \"number\" for expirer target type: id');return`id:${n}`}throw new Error(`Unknown expirer target type: ${e}`)}function Vt(e){return ae(\"topic\",e)}function Mt(e){return ae(\"id\",e)}function Kt(e){const[n,t]=e.split(\":\"),r={id:void 0,topic:void 0};if(n===\"topic\"&&typeof t==\"string\")r.topic=t;else if(n===\"id\"&&Number.isInteger(Number(t)))r.id=Number(t);else throw new Error(`Invalid target, expected id:number or topic:string, got ${n}:${t}`);return r}function Lt(e,n){return st((n||Date.now())+ee(e))}function Ft(e){return Date.now()>=ee(e)}function qt(e,n){return`${e}${n?`:${n}`:\"\"}`}function N(e=[],n=[]){return[...new Set([...e,...n])]}async function Bt({id:e,topic:n,wcDeepLink:t}){var r;try{if(!t)return;const o=typeof t==\"string\"?JSON.parse(t):t,s=o?.href;if(typeof s!=\"string\")return;const i=Xe(s,e,n),u=A();if(u===y.browser){if(!((r=ne())!=null&&r.hasFocus())){console.warn(\"Document does not have focus, skipping deeplink.\");return}i.startsWith(\"https://\")||i.startsWith(\"http://\")?window.open(i,\"_blank\",\"noreferrer noopener\"):window.open(i,en()?\"_blank\":\"_self\",\"noreferrer noopener\")}else u===y.reactNative&&typeof(global==null?void 0:global.Linking)<\"u\"&&await global.Linking.openURL(i)}catch(o){console.error(o)}}function Xe(e,n,t){const r=`requestId=${n}&sessionTopic=${t}`;e.endsWith(\"/\")&&(e=e.slice(0,-1));let o=`${e}`;if(e.startsWith(\"https://t.me\")){const s=e.includes(\"?\")?\"&startapp=\":\"?startapp=\";o=`${o}${s}${nn(r,!0)}`}else o=`${o}/wc?${r}`;return o}async function Ht(e,n){let t=\"\";try{if(V()&&(t=localStorage.getItem(n),t))return t;t=await e.getItem(n)}catch(r){console.error(r)}return t}function ue(e,n){return e.filter(t=>n.includes(t))}function Wt(e,n){if(!e.includes(n))return null;const t=e.split(/([&,?,=])/),r=t.indexOf(n);return t[r+2]}function Jt(){return typeof crypto<\"u\"&&crypto!=null&&crypto.randomUUID?crypto.randomUUID():\"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/gu,e=>{const n=Math.random()*16|0;return(e===\"x\"?n:n&3|8).toString(16)})}function zt(){return typeof process<\"u\"&&process.env.IS_VITEST===\"true\"}function en(){return typeof window<\"u\"&&(!!window.TelegramWebviewProxy||!!window.Telegram||!!window.TelegramWebviewProxyProto)}function nn(e,n=!1){const t=Buffer.from(e).toString(\"base64\");return n?t.replace(/[=]/g,\"\"):t}function le(e){return Buffer.from(e,\"base64\").toString(\"utf-8\")}function Gt(e){return new Promise(n=>setTimeout(n,e))}const Yt=\"https://rpc.walletconnect.org/v1\";async function tn(e,n,t,r,o,s){switch(t.t){case\"eip191\":return rn(e,n,t.s);case\"eip1271\":return await on(e,n,t.s,r,o,s);default:throw new Error(`verifySignature failed: Attempted to verify CacaoSignature with unknown type: ${t.t}`)}}function rn(e,n,t){return ct(Te(n),t).toLowerCase()===e.toLowerCase()}async function on(e,n,t,r,o,s){const i=re(r);if(!i.namespace||!i.reference)throw new Error(`isValidEip1271Signature failed: chainId must be in CAIP-2 format, received: ${r}`);try{const u=\"0x1626ba7e\",l=\"0000000000000000000000000000000000000000000000000000000000000040\",c=\"0000000000000000000000000000000000000000000000000000000000000041\",d=t.substring(2),a=Te(n).substring(2),f=u+a+l+c+d,h=await fetch(`${s||Yt}/?chainId=${r}&projectId=${o}`,{method:\"POST\",body:JSON.stringify({id:Qt(),jsonrpc:\"2.0\",method:\"eth_call\",params:[{to:e,data:f},\"latest\"]})}),{result:p}=await h.json();return p?p.slice(0,u.length).toLowerCase()===u.toLowerCase():!1}catch(u){return console.error(\"isValidEip1271Signature: \",u),!1}}function Qt(){return Date.now()+Math.floor(Math.random()*1e3)}var Zt=Object.defineProperty,Xt=Object.defineProperties,er=Object.getOwnPropertyDescriptors,sn=Object.getOwnPropertySymbols,nr=Object.prototype.hasOwnProperty,tr=Object.prototype.propertyIsEnumerable,cn=(e,n,t)=>n in e?Zt(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,de=(e,n)=>{for(var t in n||(n={}))nr.call(n,t)&&cn(e,t,n[t]);if(sn)for(var t of sn(n))tr.call(n,t)&&cn(e,t,n[t]);return e},an=(e,n)=>Xt(e,er(n));const rr=\"did:pkh:\",z=e=>e?.split(\":\"),un=e=>{const n=e&&z(e);if(n)return e.includes(rr)?n[3]:n[1]},ln=e=>{const n=e&&z(e);if(n)return n[2]+\":\"+n[3]},fe=e=>{const n=e&&z(e);if(n)return n.pop()};async function or(e){const{cacao:n,projectId:t}=e,{s:r,p:o}=n,s=dn(o,o.iss),i=fe(o.iss);return await tn(i,s,r,ln(o.iss),t)}const dn=(e,n)=>{const t=`${e.domain} wants you to sign in with your Ethereum account:`,r=fe(n);if(!e.aud&&!e.uri)throw new Error(\"Either `aud` or `uri` is required to construct the message\");let o=e.statement||void 0;const s=`URI: ${e.aud||e.uri}`,i=`Version: ${e.version}`,u=`Chain ID: ${un(n)}`,l=`Nonce: ${e.nonce}`,c=`Issued At: ${e.iat}`,d=e.exp?`Expiration Time: ${e.exp}`:void 0,a=e.nbf?`Not Before: ${e.nbf}`:void 0,f=e.requestId?`Request ID: ${e.requestId}`:void 0,h=e.resources?`Resources:${e.resources.map(m=>`\n- ${m}`).join(\"\")}`:void 0,p=Y(e.resources);if(p){const m=I(p);o=he(o,m)}return[t,r,\"\",o,\"\",s,i,u,l,c,d,a,f,h].filter(m=>m!=null).join(`\n`)};function sr(e,n,t){return t.includes(\"did:pkh:\")||(t=`did:pkh:${t}`),{h:{t:\"caip122\"},p:{iss:t,domain:e.domain,aud:e.aud,version:e.version,nonce:e.nonce,iat:e.iat,statement:e.statement,requestId:e.requestId,resources:e.resources,nbf:e.nbf,exp:e.exp},s:n}}function ir(e){var n;const{authPayload:t,chains:r,methods:o}=e,s=t.statement||\"\";if(!(r!=null&&r.length))return t;const i=t.chains,u=ue(i,r);if(!(u!=null&&u.length))throw new Error(\"No supported chains\");const l=fn(t.resources);if(!l)return t;O(l);const c=pn(l,\"eip155\");let d=t?.resources||[];if(c!=null&&c.length){const a=mn(c),f=ue(a,o);if(!(f!=null&&f.length))throw new Error(`Supported methods don't satisfy the requested: ${JSON.stringify(a)}, supported: ${JSON.stringify(o)}`);const h=pe(\"request\",f,{chains:u}),p=vn(l,\"eip155\",h);d=((n=t?.resources)==null?void 0:n.slice(0,-1))||[],d.push(G(p))}return an(de({},t),{statement:En(s,Y(d)),chains:u,resources:t!=null&&t.resources||d.length>0?d:void 0})}function fn(e){const n=Y(e);if(n&&me(n))return I(n)}function cr(e,n){var t;return(t=e?.att)==null?void 0:t.hasOwnProperty(n)}function pn(e,n){var t,r;return(t=e?.att)!=null&&t[n]?Object.keys((r=e?.att)==null?void 0:r[n]):[]}function ar(e){return e?.map(n=>Object.keys(n))||[]}function mn(e){return e?.map(n=>{var t;return(t=n.split(\"/\"))==null?void 0:t[1]})||[]}function hn(e){return Buffer.from(JSON.stringify(e)).toString(\"base64\")}function yn(e){return JSON.parse(Buffer.from(e,\"base64\").toString(\"utf-8\"))}function O(e){if(!e)throw new Error(\"No recap provided, value is undefined\");if(!e.att)throw new Error(\"No `att` property found\");const n=Object.keys(e.att);if(!(n!=null&&n.length))throw new Error(\"No resources found in `att` property\");n.forEach(t=>{const r=e.att[t];if(Array.isArray(r))throw new Error(`Resource must be an object: ${t}`);if(typeof r!=\"object\")throw new Error(`Resource must be an object: ${t}`);if(!Object.keys(r).length)throw new Error(`Resource object is empty: ${t}`);Object.keys(r).forEach(o=>{const s=r[o];if(!Array.isArray(s))throw new Error(`Ability limits ${o} must be an array of objects, found: ${s}`);if(!s.length)throw new Error(`Value of ${o} is empty array, must be an array with objects`);s.forEach(i=>{if(typeof i!=\"object\")throw new Error(`Ability limits (${o}) must be an array of objects, found: ${i}`)})})})}function gn(e,n,t,r={}){return t?.sort((o,s)=>o.localeCompare(s)),{att:{[e]:pe(n,t,r)}}}function vn(e,n,t){var r;return e.att[n]=de({},t),((r=Object.keys(e.att))==null?void 0:r.sort((o,s)=>o.localeCompare(s))).reduce((o,s)=>(o.att[s]=e.att[s],o),{att:{}})}function pe(e,n,t={}){n=n?.sort((o,s)=>o.localeCompare(s));const r=n.map(o=>({[`${e}/${o}`]:[t]}));return Object.assign({},...r)}function G(e){return O(e),`urn:recap:${hn(e).replace(/=/g,\"\")}`}function I(e){const n=yn(e.replace(\"urn:recap:\",\"\"));return O(n),n}function ur(e,n,t){const r=gn(e,n,t);return G(r)}function me(e){return e&&e.includes(\"urn:recap:\")}function lr(e,n){const t=I(e),r=I(n),o=bn(t,r);return G(o)}function bn(e,n){O(e),O(n);const t=Object.keys(e.att).concat(Object.keys(n.att)).sort((o,s)=>o.localeCompare(s)),r={att:{}};return t.forEach(o=>{var s,i;Object.keys(((s=e.att)==null?void 0:s[o])||{}).concat(Object.keys(((i=n.att)==null?void 0:i[o])||{})).sort((u,l)=>u.localeCompare(l)).forEach(u=>{var l,c;r.att[o]=an(de({},r.att[o]),{[u]:((l=e.att[o])==null?void 0:l[u])||((c=n.att[o])==null?void 0:c[u])})})}),r}function he(e=\"\",n){O(n);const t=\"I further authorize the stated URI to perform the following actions on my behalf: \";if(e.includes(t))return e;const r=[];let o=0;Object.keys(n.att).forEach(u=>{const l=Object.keys(n.att[u]).map(a=>({ability:a.split(\"/\")[0],action:a.split(\"/\")[1]}));l.sort((a,f)=>a.action.localeCompare(f.action));const c={};l.forEach(a=>{c[a.ability]||(c[a.ability]=[]),c[a.ability].push(a.action)});const d=Object.keys(c).map(a=>(o++,`(${o}) '${a}': '${c[a].join(\"', '\")}' for '${u}'.`));r.push(d.join(\", \").replace(\".,\",\".\"))});const s=r.join(\" \"),i=`${t}${s}`;return`${e?e+\" \":\"\"}${i}`}function dr(e){var n;const t=I(e);O(t);const r=(n=t.att)==null?void 0:n.eip155;return r?Object.keys(r).map(o=>o.split(\"/\")[1]):[]}function fr(e){const n=I(e);O(n);const t=[];return Object.values(n.att).forEach(r=>{Object.values(r).forEach(o=>{var s;(s=o?.[0])!=null&&s.chains&&t.push(o[0].chains)})}),[...new Set(t.flat())]}function En(e,n){if(!n)return e;const t=I(n);return O(t),he(e,t)}function Y(e){if(!e)return;const n=e?.[e.length-1];return me(n)?n:void 0}const ye=\"base10\",g=\"base16\",ge=\"base64pad\",pr=\"base64url\",k=\"utf8\",ve=0,D=1,M=2,mr=0,wn=1,K=12,be=32;function hr(){const e=_e.generateKeyPair();return{privateKey:v(e.secretKey,g),publicKey:v(e.publicKey,g)}}function yr(){const e=B(be);return v(e,g)}function gr(e,n){const t=_e.sharedKey(w(e,g),w(n,g),!0),r=new at(Ce,t).expand(be);return v(r,g)}function vr(e){const n=Ue(w(e,g));return v(n,g)}function br(e){const n=Ue(w(e,k));return v(n,g)}function Ee(e){return w(`${e}`,ye)}function C(e){return Number(v(e,ye))}function Er(e){const n=Ee(typeof e.type<\"u\"?e.type:ve);if(C(n)===D&&typeof e.senderPublicKey>\"u\")throw new Error(\"Missing sender public key for type 1 envelope\");const t=typeof e.senderPublicKey<\"u\"?w(e.senderPublicKey,g):void 0,r=typeof e.iv<\"u\"?w(e.iv,g):B(K),o=new Ae(w(e.symKey,g)).seal(r,w(e.message,k));return we({type:n,sealed:o,iv:r,senderPublicKey:t,encoding:e.encoding})}function wr(e,n){const t=Ee(M),r=B(K),o=w(e,k);return we({type:t,sealed:o,iv:r,encoding:n})}function Or(e){const n=new Ae(w(e.symKey,g)),{sealed:t,iv:r}=Q({encoded:e.encoded,encoding:e?.encoding}),o=n.open(r,t);if(o===null)throw new Error(\"Failed to decrypt\");return v(o,k)}function Nr(e,n){const{sealed:t}=Q({encoded:e,encoding:n});return v(t,k)}function we(e){const{encoding:n=ge}=e;if(C(e.type)===M)return v(te([e.type,e.sealed]),n);if(C(e.type)===D){if(typeof e.senderPublicKey>\"u\")throw new Error(\"Missing sender public key for type 1 envelope\");return v(te([e.type,e.senderPublicKey,e.iv,e.sealed]),n)}return v(te([e.type,e.iv,e.sealed]),n)}function Q(e){const{encoded:n,encoding:t=ge}=e,r=w(n,t),o=r.slice(mr,wn),s=wn;if(C(o)===D){const c=s+be,d=c+K,a=r.slice(s,c),f=r.slice(c,d),h=r.slice(d);return{type:o,sealed:h,iv:f,senderPublicKey:a}}if(C(o)===M){const c=r.slice(s),d=B(K);return{type:o,sealed:c,iv:d}}const i=s+K,u=r.slice(s,i),l=r.slice(i);return{type:o,sealed:l,iv:u}}function Sr(e,n){const t=Q({encoded:e,encoding:n?.encoding});return On({type:C(t.type),senderPublicKey:typeof t.senderPublicKey<\"u\"?v(t.senderPublicKey,g):void 0,receiverPublicKey:n?.receiverPublicKey})}function On(e){const n=e?.type||ve;if(n===D){if(typeof e?.senderPublicKey>\"u\")throw new Error(\"missing sender public key\");if(typeof e?.receiverPublicKey>\"u\")throw new Error(\"missing receiver public key\")}return{type:n,senderPublicKey:e?.senderPublicKey,receiverPublicKey:e?.receiverPublicKey}}function $r(e){return e.type===D&&typeof e.senderPublicKey==\"string\"&&typeof e.receiverPublicKey==\"string\"}function Rr(e){return e.type===M}function Nn(e){return new ut(\"p256\").keyFromPublic({x:Buffer.from(e.x,\"base64\").toString(\"hex\"),y:Buffer.from(e.y,\"base64\").toString(\"hex\")},\"hex\")}function Ir(e){let n=e.replace(/-/g,\"+\").replace(/_/g,\"/\");const t=n.length%4;return t>0&&(n+=\"=\".repeat(4-t)),n}function Pr(e){return Buffer.from(Ir(e),\"base64\")}function jr(e,n){const[t,r,o]=e.split(\".\"),s=Pr(o);if(s.length!==64)throw new Error(\"Invalid signature length\");const i=s.slice(0,32).toString(\"hex\"),u=s.slice(32,64).toString(\"hex\"),l=`${t}.${r}`,c=new Ce().update(Buffer.from(l)).digest(),d=Nn(n),a=Buffer.from(c).toString(\"hex\");if(!d.verify(a,{r:i,s:u}))throw new Error(\"Invalid signature\");return lt(e).payload}const Sn=\"irn\";function Tr(e){return e?.relay||{protocol:Sn}}function Ar(e){const n=dt[e];if(typeof n>\"u\")throw new Error(`Relay Protocol not supported: ${e}`);return n}var Cr=Object.defineProperty,Ur=Object.defineProperties,_r=Object.getOwnPropertyDescriptors,$n=Object.getOwnPropertySymbols,kr=Object.prototype.hasOwnProperty,Dr=Object.prototype.propertyIsEnumerable,Rn=(e,n,t)=>n in e?Cr(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,In=(e,n)=>{for(var t in n||(n={}))kr.call(n,t)&&Rn(e,t,n[t]);if($n)for(var t of $n(n))Dr.call(n,t)&&Rn(e,t,n[t]);return e},xr=(e,n)=>Ur(e,_r(n));function Pn(e,n=\"-\"){const t={},r=\"relay\"+n;return Object.keys(e).forEach(o=>{if(o.startsWith(r)){const s=o.replace(r,\"\"),i=e[o];t[s]=i}}),t}function Vr(e){if(!e.includes(\"wc:\")){const l=le(e);l!=null&&l.includes(\"wc:\")&&(e=l)}e=e.includes(\"wc://\")?e.replace(\"wc://\",\"\"):e,e=e.includes(\"wc:\")?e.replace(\"wc:\",\"\"):e;const n=e.indexOf(\":\"),t=e.indexOf(\"?\")!==-1?e.indexOf(\"?\"):void 0,r=e.substring(0,n),o=e.substring(n+1,t).split(\"@\"),s=typeof t<\"u\"?e.substring(t):\"\",i=q.parse(s),u=typeof i.methods==\"string\"?i.methods.split(\",\"):void 0;return{protocol:r,topic:jn(o[0]),version:parseInt(o[1],10),symKey:i.symKey,relay:Pn(i),methods:u,expiryTimestamp:i.expiryTimestamp?parseInt(i.expiryTimestamp,10):void 0}}function jn(e){return e.startsWith(\"//\")?e.substring(2):e}function Tn(e,n=\"-\"){const t=\"relay\",r={};return Object.keys(e).forEach(o=>{const s=t+n+o;e[o]&&(r[s]=e[o])}),r}function Mr(e){return`${e.protocol}:${e.topic}@${e.version}?`+q.stringify(In(xr(In({symKey:e.symKey},Tn(e.relay)),{expiryTimestamp:e.expiryTimestamp}),e.methods?{methods:e.methods.join(\",\")}:{}))}function Kr(e,n,t){return`${e}?wc_ev=${t}&topic=${n}`}var Lr=Object.defineProperty,Fr=Object.defineProperties,qr=Object.getOwnPropertyDescriptors,An=Object.getOwnPropertySymbols,Br=Object.prototype.hasOwnProperty,Hr=Object.prototype.propertyIsEnumerable,Cn=(e,n,t)=>n in e?Lr(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,Wr=(e,n)=>{for(var t in n||(n={}))Br.call(n,t)&&Cn(e,t,n[t]);if(An)for(var t of An(n))Hr.call(n,t)&&Cn(e,t,n[t]);return e},Jr=(e,n)=>Fr(e,qr(n));function U(e){const n=[];return e.forEach(t=>{const[r,o]=t.split(\":\");n.push(`${r}:${o}`)}),n}function Un(e){const n=[];return Object.values(e).forEach(t=>{n.push(...U(t.accounts))}),n}function _n(e,n){const t=[];return Object.values(e).forEach(r=>{U(r.accounts).includes(n)&&t.push(...r.methods)}),t}function kn(e,n){const t=[];return Object.values(e).forEach(r=>{U(r.accounts).includes(n)&&t.push(...r.events)}),t}function zr(e,n){const t=Wn(e,n);if(t)throw new Error(t.message);const r={};for(const[o,s]of Object.entries(e))r[o]={methods:s.methods,events:s.events,chains:s.accounts.map(i=>`${i.split(\":\")[0]}:${i.split(\":\")[1]}`)};return r}function Gr(e){const{proposal:{requiredNamespaces:n,optionalNamespaces:t={}},supportedNamespaces:r}=e,o=Ne(n),s=Ne(t),i={};Object.keys(r).forEach(c=>{const d=r[c].chains,a=r[c].methods,f=r[c].events,h=r[c].accounts;d.forEach(p=>{if(!h.some(m=>m.includes(p)))throw new Error(`No accounts provided for chain ${p} in namespace ${c}`)}),i[c]={chains:d,methods:a,events:f,accounts:h}});const u=zn(n,i,\"approve()\");if(u)throw new Error(u.message);const l={};return!Object.keys(n).length&&!Object.keys(t).length?i:(Object.keys(o).forEach(c=>{const d=r[c].chains.filter(p=>{var m,E;return(E=(m=o[c])==null?void 0:m.chains)==null?void 0:E.includes(p)}),a=r[c].methods.filter(p=>{var m,E;return(E=(m=o[c])==null?void 0:m.methods)==null?void 0:E.includes(p)}),f=r[c].events.filter(p=>{var m,E;return(E=(m=o[c])==null?void 0:m.events)==null?void 0:E.includes(p)}),h=d.map(p=>r[c].accounts.filter(m=>m.includes(`${p}:`))).flat();l[c]={chains:d,methods:a,events:f,accounts:h}}),Object.keys(s).forEach(c=>{var d,a,f,h,p,m;if(!r[c])return;const E=(a=(d=s[c])==null?void 0:d.chains)==null?void 0:a.filter(j=>r[c].chains.includes(j)),nt=r[c].methods.filter(j=>{var T,x;return(x=(T=s[c])==null?void 0:T.methods)==null?void 0:x.includes(j)}),tt=r[c].events.filter(j=>{var T,x;return(x=(T=s[c])==null?void 0:T.events)==null?void 0:x.includes(j)}),rt=E?.map(j=>r[c].accounts.filter(T=>T.includes(`${j}:`))).flat();l[c]={chains:N((f=l[c])==null?void 0:f.chains,E),methods:N((h=l[c])==null?void 0:h.methods,nt),events:N((p=l[c])==null?void 0:p.events,tt),accounts:N((m=l[c])==null?void 0:m.accounts,rt)}}),l)}function Oe(e){return e.includes(\":\")}function Dn(e){return Oe(e)?e.split(\":\")[0]:e}function Ne(e){var n,t,r;const o={};if(!Z(e))return o;for(const[s,i]of Object.entries(e)){const u=Oe(s)?[s]:i.chains,l=i.methods||[],c=i.events||[],d=Dn(s);o[d]=Jr(Wr({},o[d]),{chains:N(u,(n=o[d])==null?void 0:n.chains),methods:N(l,(t=o[d])==null?void 0:t.methods),events:N(c,(r=o[d])==null?void 0:r.events)})}return o}function xn(e){const n={};return e?.forEach(t=>{const[r,o]=t.split(\":\");n[r]||(n[r]={accounts:[],chains:[],events:[]}),n[r].accounts.push(t),n[r].chains.push(`${r}:${o}`)}),n}function Yr(e,n){n=n.map(r=>r.replace(\"did:pkh:\",\"\"));const t=xn(n);for(const[r,o]of Object.entries(t))o.methods?o.methods=N(o.methods,e):o.methods=e,o.events=[\"chainChanged\",\"accountsChanged\"];return t}const Vn={INVALID_METHOD:{message:\"Invalid method.\",code:1001},INVALID_EVENT:{message:\"Invalid event.\",code:1002},INVALID_UPDATE_REQUEST:{message:\"Invalid update request.\",code:1003},INVALID_EXTEND_REQUEST:{message:\"Invalid extend request.\",code:1004},INVALID_SESSION_SETTLE_REQUEST:{message:\"Invalid session settle request.\",code:1005},UNAUTHORIZED_METHOD:{message:\"Unauthorized method.\",code:3001},UNAUTHORIZED_EVENT:{message:\"Unauthorized event.\",code:3002},UNAUTHORIZED_UPDATE_REQUEST:{message:\"Unauthorized update request.\",code:3003},UNAUTHORIZED_EXTEND_REQUEST:{message:\"Unauthorized extend request.\",code:3004},USER_REJECTED:{message:\"User rejected.\",code:5e3},USER_REJECTED_CHAINS:{message:\"User rejected chains.\",code:5001},USER_REJECTED_METHODS:{message:\"User rejected methods.\",code:5002},USER_REJECTED_EVENTS:{message:\"User rejected events.\",code:5003},UNSUPPORTED_CHAINS:{message:\"Unsupported chains.\",code:5100},UNSUPPORTED_METHODS:{message:\"Unsupported methods.\",code:5101},UNSUPPORTED_EVENTS:{message:\"Unsupported events.\",code:5102},UNSUPPORTED_ACCOUNTS:{message:\"Unsupported accounts.\",code:5103},UNSUPPORTED_NAMESPACE_KEY:{message:\"Unsupported namespace key.\",code:5104},USER_DISCONNECTED:{message:\"User disconnected.\",code:6e3},SESSION_SETTLEMENT_FAILED:{message:\"Session settlement failed.\",code:7e3},WC_METHOD_UNSUPPORTED:{message:\"Unsupported wc_ method.\",code:10001}},Mn={NOT_INITIALIZED:{message:\"Not initialized.\",code:1},NO_MATCHING_KEY:{message:\"No matching key.\",code:2},RESTORE_WILL_OVERRIDE:{message:\"Restore will override.\",code:3},RESUBSCRIBED:{message:\"Resubscribed.\",code:4},MISSING_OR_INVALID:{message:\"Missing or invalid.\",code:5},EXPIRED:{message:\"Expired.\",code:6},UNKNOWN_TYPE:{message:\"Unknown type.\",code:7},MISMATCHED_TOPIC:{message:\"Mismatched topic.\",code:8},NON_CONFORMING_NAMESPACES:{message:\"Non conforming namespaces.\",code:9}};function S(e,n){const{message:t,code:r}=Mn[e];return{message:n?`${t} ${n}`:t,code:r}}function _(e,n){const{message:t,code:r}=Vn[e];return{message:n?`${t} ${n}`:t,code:r}}function L(e,n){return Array.isArray(e)?typeof n<\"u\"&&e.length?e.every(n):!0:!1}function Z(e){return Object.getPrototypeOf(e)===Object.prototype&&Object.keys(e).length}function P(e){return typeof e>\"u\"}function b(e,n){return n&&P(e)?!0:typeof e==\"string\"&&!!e.trim().length}function X(e,n){return n&&P(e)?!0:typeof e==\"number\"&&!isNaN(e)}function Qr(e,n){const{requiredNamespaces:t}=n,r=Object.keys(e.namespaces),o=Object.keys(t);let s=!0;return R(o,r)?(r.forEach(i=>{const{accounts:u,methods:l,events:c}=e.namespaces[i],d=U(u),a=t[i];(!R(W(i,a),d)||!R(a.methods,l)||!R(a.events,c))&&(s=!1)}),s):!1}function F(e){return b(e,!1)&&e.includes(\":\")?e.split(\":\").length===2:!1}function Kn(e){if(b(e,!1)&&e.includes(\":\")){const n=e.split(\":\");if(n.length===3){const t=n[0]+\":\"+n[1];return!!n[2]&&F(t)}}return!1}function Zr(e){function n(t){try{return typeof new URL(t)<\"u\"}catch{return!1}}try{if(b(e,!1)){if(n(e))return!0;const t=le(e);return n(t)}}catch{}return!1}function Xr(e){var n;return(n=e?.proposer)==null?void 0:n.publicKey}function eo(e){return e?.topic}function no(e,n){let t=null;return b(e?.publicKey,!1)||(t=S(\"MISSING_OR_INVALID\",`${n} controller public key should be a string`)),t}function Se(e){let n=!0;return L(e)?e.length&&(n=e.every(t=>b(t,!1))):n=!1,n}function Ln(e,n,t){let r=null;return L(n)&&n.length?n.forEach(o=>{r||F(o)||(r=_(\"UNSUPPORTED_CHAINS\",`${t}, chain ${o} should be a string and conform to \"namespace:chainId\" format`))}):F(e)||(r=_(\"UNSUPPORTED_CHAINS\",`${t}, chains must be defined as \"namespace:chainId\" e.g. \"eip155:1\": {...} in the namespace key OR as an array of CAIP-2 chainIds e.g. eip155: { chains: [\"eip155:1\", \"eip155:5\"] }`)),r}function Fn(e,n,t){let r=null;return Object.entries(e).forEach(([o,s])=>{if(r)return;const i=Ln(o,W(o,s),`${n} ${t}`);i&&(r=i)}),r}function qn(e,n){let t=null;return L(e)?e.forEach(r=>{t||Kn(r)||(t=_(\"UNSUPPORTED_ACCOUNTS\",`${n}, account ${r} should be a string and conform to \"namespace:chainId:address\" format`))}):t=_(\"UNSUPPORTED_ACCOUNTS\",`${n}, accounts should be an array of strings conforming to \"namespace:chainId:address\" format`),t}function Bn(e,n){let t=null;return Object.values(e).forEach(r=>{if(t)return;const o=qn(r?.accounts,`${n} namespace`);o&&(t=o)}),t}function Hn(e,n){let t=null;return Se(e?.methods)?Se(e?.events)||(t=_(\"UNSUPPORTED_EVENTS\",`${n}, events should be an array of strings or empty array for no events`)):t=_(\"UNSUPPORTED_METHODS\",`${n}, methods should be an array of strings or empty array for no methods`),t}function $e(e,n){let t=null;return Object.values(e).forEach(r=>{if(t)return;const o=Hn(r,`${n}, namespace`);o&&(t=o)}),t}function to(e,n,t){let r=null;if(e&&Z(e)){const o=$e(e,n);o&&(r=o);const s=Fn(e,n,t);s&&(r=s)}else r=S(\"MISSING_OR_INVALID\",`${n}, ${t} should be an object with data`);return r}function Wn(e,n){let t=null;if(e&&Z(e)){const r=$e(e,n);r&&(t=r);const o=Bn(e,n);o&&(t=o)}else t=S(\"MISSING_OR_INVALID\",`${n}, namespaces should be an object with data`);return t}function Jn(e){return b(e.protocol,!0)}function ro(e,n){let t=!1;return n&&!e?t=!0:e&&L(e)&&e.length&&e.forEach(r=>{t=Jn(r)}),t}function oo(e){return typeof e==\"number\"}function so(e){return typeof e<\"u\"&&typeof e!==null}function io(e){return!(!e||typeof e!=\"object\"||!e.code||!X(e.code,!1)||!e.message||!b(e.message,!1))}function co(e){return!(P(e)||!b(e.method,!1))}function ao(e){return!(P(e)||P(e.result)&&P(e.error)||!X(e.id,!1)||!b(e.jsonrpc,!1))}function uo(e){return!(P(e)||!b(e.name,!1))}function lo(e,n){return!(!F(n)||!Un(e).includes(n))}function fo(e,n,t){return b(t,!1)?_n(e,n).includes(t):!1}function po(e,n,t){return b(t,!1)?kn(e,n).includes(t):!1}function zn(e,n,t){let r=null;const o=mo(e),s=ho(n),i=Object.keys(o),u=Object.keys(s),l=Gn(Object.keys(e)),c=Gn(Object.keys(n)),d=l.filter(a=>!c.includes(a));return d.length&&(r=S(\"NON_CONFORMING_NAMESPACES\",`${t} namespaces keys don't satisfy requiredNamespaces.\n Required: ${d.toString()}\n Received: ${Object.keys(n).toString()}`)),R(i,u)||(r=S(\"NON_CONFORMING_NAMESPACES\",`${t} namespaces chains don't satisfy required namespaces.\n Required: ${i.toString()}\n Approved: ${u.toString()}`)),Object.keys(n).forEach(a=>{if(!a.includes(\":\")||r)return;const f=U(n[a].accounts);f.includes(a)||(r=S(\"NON_CONFORMING_NAMESPACES\",`${t} namespaces accounts don't satisfy namespace accounts for ${a}\n Required: ${a}\n Approved: ${f.toString()}`))}),i.forEach(a=>{r||(R(o[a].methods,s[a].methods)?R(o[a].events,s[a].events)||(r=S(\"NON_CONFORMING_NAMESPACES\",`${t} namespaces events don't satisfy namespace events for ${a}`)):r=S(\"NON_CONFORMING_NAMESPACES\",`${t} namespaces methods don't satisfy namespace methods for ${a}`))}),r}function mo(e){const n={};return Object.keys(e).forEach(t=>{var r;t.includes(\":\")?n[t]=e[t]:(r=e[t].chains)==null||r.forEach(o=>{n[o]={methods:e[t].methods,events:e[t].events}})}),n}function Gn(e){return[...new Set(e.map(n=>n.includes(\":\")?n.split(\":\")[0]:n))]}function ho(e){const n={};return Object.keys(e).forEach(t=>{if(t.includes(\":\"))n[t]=e[t];else{const r=U(e[t].accounts);r?.forEach(o=>{n[o]={accounts:e[t].accounts.filter(s=>s.includes(`${o}:`)),methods:e[t].methods,events:e[t].events}})}}),n}function yo(e,n){return X(e,!1)&&e<=n.max&&e>=n.min}function go(){const e=A();return new Promise(n=>{switch(e){case y.browser:n(Yn());break;case y.reactNative:n(Qn());break;case y.node:n(Zn());break;default:n(!0)}})}function Yn(){return V()&&navigator?.onLine}async function Qn(){if($()&&typeof global<\"u\"&&global!=null&&global.NetInfo){const e=await(global==null?void 0:global.NetInfo.fetch());return e?.isConnected}return!0}function Zn(){return!0}function vo(e){switch(A()){case y.browser:Xn(e);break;case y.reactNative:et(e);break;case y.node:break}}function Xn(e){!$()&&V()&&(window.addEventListener(\"online\",()=>e(!0)),window.addEventListener(\"offline\",()=>e(!1)))}function et(e){$()&&typeof global<\"u\"&&global!=null&&global.NetInfo&&global?.NetInfo.addEventListener(n=>e(n?.isConnected))}const Re={};class bo{static get(n){return Re[n]}static set(n,t){Re[n]=t}static delete(n){delete Re[n]}}export{ye as BASE10,g as BASE16,ge as BASE64,pr as BASE64URL,Et as COLON,ie as DEFAULT_DEPTH,J as EMPTY_SPACE,y as ENV_MAP,Mn as INTERNAL_ERRORS,bo as MemoryStore,wt as ONE_THOUSAND,qe as REACT_NATIVE_PRODUCT,Sn as RELAYER_DEFAULT_PROTOCOL,Vn as SDK_ERRORS,He as SDK_TYPE,Be as SLASH,ve as TYPE_0,D as TYPE_1,M as TYPE_2,k as UTF8,vn as addResourceToRecap,We as appendToQueryString,jt as assertType,pe as assignAbilityToActions,yn as base64Decode,hn as base64Encode,Gr as buildApprovedNamespaces,sr as buildAuthObject,Yr as buildNamespacesFromAuth,En as buildRecapStatement,Lt as calcExpiry,kt as capitalize,Ze as capitalizeWord,Dt as createDelayedPromise,ur as createEncodedRecap,xt as createExpiringPromise,gn as createRecap,I as decodeRecap,C as decodeTypeByte,Nr as decodeTypeTwoEnvelope,Or as decrypt,gr as deriveSymKey,Q as deserialize,G as encodeRecap,Ee as encodeTypeByte,wr as encodeTypeTwoEnvelope,Er as encrypt,qt as engineEvent,_t as enumify,De as formatAccountId,ft as formatAccountWithChain,ke as formatChainId,Xe as formatDeeplinkUrl,ae as formatExpirerTarget,Mt as formatIdTarget,dn as formatMessage,Tt as formatMessageContext,Tn as formatRelayParams,It as formatRelayRpcUrl,he as formatStatementFromRecap,Vt as formatTopicTarget,Ge as formatUA,Mr as formatUri,le as fromBase64,hr as generateKeyPair,yr as generateRandomBytes32,U as getAccountsChains,mt as getAccountsFromNamespaces,xe as getAddressFromAccount,pt as getAddressesFromAccounts,St as getAppId,$t as getAppMetadata,Yn as getBrowserOnlineStatus,Ve as getChainFromAccount,Me as getChainsFromAccounts,W as getChainsFromNamespace,ht as getChainsFromNamespaces,fr as getChainsFromRecap,yt as getChainsFromRequiredNamespaces,ue as getCommonValuesInArrays,Nn as getCryptoKeyFromKeyData,fn as getDecodedRecapFromResources,Ht as getDeepLink,fe as getDidAddress,z as getDidAddressSegments,un as getDidChainId,A as getEnvironment,Pt as getHttpUrl,S as getInternalError,ze as getJavascriptID,Je as getJavascriptOS,Qe as getLastItems,Kr as getLinkModeURL,dr as getMethodsFromRecap,ln as getNamespacedDidChainId,Un as getNamespacesChains,kn as getNamespacesEventsForChainId,xn as getNamespacesFromAccounts,_n as getNamespacesMethodsForChainId,Zn as getNodeOnlineStatus,mn as getReCapActions,Qn as getReactNativeOnlineStatus,ar as getRecapAbilitiesFromResource,Y as getRecapFromResources,pn as getRecapResource,Rt as getRelayClientMetadata,Ar as getRelayProtocolApi,Tr as getRelayProtocolName,zr as getRequiredNamespacesFromNamespaces,_ as getSdkError,Wt as getSearchParamFromURL,se as getUniqueValues,Bt as handleDeeplinkRedirect,R as hasOverlap,vr as hashKey,br as hashMessage,Ot as isAndroid,V as isBrowser,Oe as isCaipNamespace,zn as isConformingNamespaces,Ft as isExpired,Nt as isIos,ce as isNode,go as isOnline,Xr as isProposalStruct,$ as isReactNative,me as isRecap,Qr as isSessionCompatible,eo as isSessionStruct,en as isTelegram,zt as isTestRun,$r as isTypeOneEnvelope,Rr as isTypeTwoEnvelope,P as isUndefined,Kn as isValidAccountId,qn as isValidAccounts,Hn as isValidActions,L as isValidArray,F as isValidChainId,Ln as isValidChains,no as isValidController,on as isValidEip1271Signature,rn as isValidEip191Signature,io as isValidErrorReason,uo as isValidEvent,oo as isValidId,Bn as isValidNamespaceAccounts,$e as isValidNamespaceActions,Fn as isValidNamespaceChains,Se as isValidNamespaceMethodsOrEvents,Wn as isValidNamespaces,lo as isValidNamespacesChainId,po as isValidNamespacesEvent,fo as isValidNamespacesRequest,X as isValidNumber,Z as isValidObject,so as isValidParams,O as isValidRecap,Jn as isValidRelay,ro as isValidRelays,co as isValidRequest,yo as isValidRequestExpiry,to as isValidRequiredNamespaces,ao as isValidResponse,b as isValidString,Zr as isValidUrl,Ut as mapEntries,At as mapToObj,N as mergeArrays,lr as mergeEncodedRecaps,bn as mergeRecaps,Ne as normalizeNamespaces,Ct as objToMap,oe as parseAccountId,re as parseChainId,Ye as parseContextNames,Kt as parseExpirerTarget,Dn as parseNamespaceKey,Pn as parseRelayParams,jn as parseTopic,Vr as parseUri,ir as populateAuthPayload,cr as recapHasResource,we as serialize,Gt as sleep,Xn as subscribeToBrowserNetworkChange,vo as subscribeToNetworkChange,et as subscribeToReactNativeNetworkChange,nn as toBase64,Jt as uuidv4,Sr as validateDecoding,On as validateEncoding,or as validateSignedCacao,jr as verifyP256Jwt,tn as verifySignature};\n//# sourceMappingURL=index.es.js.map\n","export const PARSE_ERROR = \"PARSE_ERROR\";\nexport const INVALID_REQUEST = \"INVALID_REQUEST\";\nexport const METHOD_NOT_FOUND = \"METHOD_NOT_FOUND\";\nexport const INVALID_PARAMS = \"INVALID_PARAMS\";\nexport const INTERNAL_ERROR = \"INTERNAL_ERROR\";\nexport const SERVER_ERROR = \"SERVER_ERROR\";\nexport const RESERVED_ERROR_CODES = [-32700, -32600, -32601, -32602, -32603];\nexport const SERVER_ERROR_CODE_RANGE = [-32000, -32099];\nexport const STANDARD_ERROR_MAP = {\n [PARSE_ERROR]: { code: -32700, message: \"Parse error\" },\n [INVALID_REQUEST]: { code: -32600, message: \"Invalid Request\" },\n [METHOD_NOT_FOUND]: { code: -32601, message: \"Method not found\" },\n [INVALID_PARAMS]: { code: -32602, message: \"Invalid params\" },\n [INTERNAL_ERROR]: { code: -32603, message: \"Internal error\" },\n [SERVER_ERROR]: { code: -32000, message: \"Server error\" },\n};\nexport const DEFAULT_ERROR = SERVER_ERROR;\n//# sourceMappingURL=constants.js.map","import { SERVER_ERROR_CODE_RANGE, RESERVED_ERROR_CODES, STANDARD_ERROR_MAP, DEFAULT_ERROR, } from \"./constants\";\nexport function isServerErrorCode(code) {\n return code <= SERVER_ERROR_CODE_RANGE[0] && code >= SERVER_ERROR_CODE_RANGE[1];\n}\nexport function isReservedErrorCode(code) {\n return RESERVED_ERROR_CODES.includes(code);\n}\nexport function isValidErrorCode(code) {\n return typeof code === \"number\";\n}\nexport function getError(type) {\n if (!Object.keys(STANDARD_ERROR_MAP).includes(type)) {\n return STANDARD_ERROR_MAP[DEFAULT_ERROR];\n }\n return STANDARD_ERROR_MAP[type];\n}\nexport function getErrorByCode(code) {\n const match = Object.values(STANDARD_ERROR_MAP).find(e => e.code === code);\n if (!match) {\n return STANDARD_ERROR_MAP[DEFAULT_ERROR];\n }\n return match;\n}\nexport function validateJsonRpcError(response) {\n if (typeof response.error.code === \"undefined\") {\n return { valid: false, error: \"Missing code for JSON-RPC error\" };\n }\n if (typeof response.error.message === \"undefined\") {\n return { valid: false, error: \"Missing message for JSON-RPC error\" };\n }\n if (!isValidErrorCode(response.error.code)) {\n return {\n valid: false,\n error: `Invalid error code type for JSON-RPC: ${response.error.code}`,\n };\n }\n if (isReservedErrorCode(response.error.code)) {\n const error = getErrorByCode(response.error.code);\n if (error.message !== STANDARD_ERROR_MAP[DEFAULT_ERROR].message &&\n response.error.message === error.message) {\n return {\n valid: false,\n error: `Invalid error code message for JSON-RPC: ${response.error.code}`,\n };\n }\n }\n return { valid: true };\n}\nexport function parseConnectionError(e, url, type) {\n return e.message.includes(\"getaddrinfo ENOTFOUND\") || e.message.includes(\"connect ECONNREFUSED\")\n ? new Error(`Unavailable ${type} RPC url at ${url}`)\n : e;\n}\n//# sourceMappingURL=error.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isBrowserCryptoAvailable = exports.getSubtleCrypto = exports.getBrowerCrypto = void 0;\nfunction getBrowerCrypto() {\n return (global === null || global === void 0 ? void 0 : global.crypto) || (global === null || global === void 0 ? void 0 : global.msCrypto) || {};\n}\nexports.getBrowerCrypto = getBrowerCrypto;\nfunction getSubtleCrypto() {\n const browserCrypto = getBrowerCrypto();\n return browserCrypto.subtle || browserCrypto.webkitSubtle;\n}\nexports.getSubtleCrypto = getSubtleCrypto;\nfunction isBrowserCryptoAvailable() {\n return !!getBrowerCrypto() && !!getSubtleCrypto();\n}\nexports.isBrowserCryptoAvailable = isBrowserCryptoAvailable;\n//# sourceMappingURL=crypto.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isBrowser = exports.isNode = exports.isReactNative = void 0;\nfunction isReactNative() {\n return (typeof document === \"undefined\" &&\n typeof navigator !== \"undefined\" &&\n navigator.product === \"ReactNative\");\n}\nexports.isReactNative = isReactNative;\nfunction isNode() {\n return (typeof process !== \"undefined\" &&\n typeof process.versions !== \"undefined\" &&\n typeof process.versions.node !== \"undefined\");\n}\nexports.isNode = isNode;\nfunction isBrowser() {\n return !isReactNative() && !isNode();\n}\nexports.isBrowser = isBrowser;\n//# sourceMappingURL=env.js.map","import { getError, getErrorByCode, isReservedErrorCode } from \"./error\";\nimport { INTERNAL_ERROR, SERVER_ERROR } from \"./constants\";\nexport function payloadId(entropy = 3) {\n const date = Date.now() * Math.pow(10, entropy);\n const extra = Math.floor(Math.random() * Math.pow(10, entropy));\n return date + extra;\n}\nexport function getBigIntRpcId(entropy = 6) {\n return BigInt(payloadId(entropy));\n}\nexport function formatJsonRpcRequest(method, params, id) {\n return {\n id: id || payloadId(),\n jsonrpc: \"2.0\",\n method,\n params,\n };\n}\nexport function formatJsonRpcResult(id, result) {\n return {\n id,\n jsonrpc: \"2.0\",\n result,\n };\n}\nexport function formatJsonRpcError(id, error, data) {\n return {\n id,\n jsonrpc: \"2.0\",\n error: formatErrorMessage(error, data),\n };\n}\nexport function formatErrorMessage(error, data) {\n if (typeof error === \"undefined\") {\n return getError(INTERNAL_ERROR);\n }\n if (typeof error === \"string\") {\n error = Object.assign(Object.assign({}, getError(SERVER_ERROR)), { message: error });\n }\n if (typeof data !== \"undefined\") {\n error.data = data;\n }\n if (isReservedErrorCode(error.code)) {\n error = getErrorByCode(error.code);\n }\n return error;\n}\n//# sourceMappingURL=format.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./crypto\"), exports);\ntslib_1.__exportStar(require(\"./env\"), exports);\n//# sourceMappingURL=index.js.map","class e{}class o extends e{constructor(c){super()}}class n extends e{constructor(){super()}}class r extends n{constructor(c){super()}}export{n as IBaseJsonRpcProvider,e as IEvents,o as IJsonRpcConnection,r as IJsonRpcProvider};\n//# sourceMappingURL=index.es.js.map\n","const HTTP_REGEX = \"^https?:\";\nconst WS_REGEX = \"^wss?:\";\nfunction getUrlProtocol(url) {\n const matches = url.match(new RegExp(/^\\w+:/, \"gi\"));\n if (!matches || !matches.length)\n return;\n return matches[0];\n}\nfunction matchRegexProtocol(url, regex) {\n const protocol = getUrlProtocol(url);\n if (typeof protocol === \"undefined\")\n return false;\n return new RegExp(regex).test(protocol);\n}\nexport function isHttpUrl(url) {\n return matchRegexProtocol(url, HTTP_REGEX);\n}\nexport function isWsUrl(url) {\n return matchRegexProtocol(url, WS_REGEX);\n}\nexport function isLocalhostUrl(url) {\n return new RegExp(\"wss?://localhost(:d{2,5})?\").test(url);\n}\n//# sourceMappingURL=url.js.map","export function isJsonRpcPayload(payload) {\n return (typeof payload === \"object\" &&\n \"id\" in payload &&\n \"jsonrpc\" in payload &&\n payload.jsonrpc === \"2.0\");\n}\nexport function isJsonRpcRequest(payload) {\n return isJsonRpcPayload(payload) && \"method\" in payload;\n}\nexport function isJsonRpcResponse(payload) {\n return isJsonRpcPayload(payload) && (isJsonRpcResult(payload) || isJsonRpcError(payload));\n}\nexport function isJsonRpcResult(payload) {\n return \"result\" in payload;\n}\nexport function isJsonRpcError(payload) {\n return \"error\" in payload;\n}\nexport function isJsonRpcValidationInvalid(validation) {\n return \"error\" in validation && validation.valid === false;\n}\n//# sourceMappingURL=validators.js.map","import{EventEmitter as c}from\"events\";import{IJsonRpcProvider as r,formatJsonRpcRequest as h,getBigIntRpcId as a,isJsonRpcError as d,isJsonRpcResponse as v}from\"@walletconnect/jsonrpc-utils\";class o extends r{constructor(t){super(t),this.events=new c,this.hasRegisteredEventListeners=!1,this.connection=this.setConnection(t),this.connection.connected&&this.registerEventListeners()}async connect(t=this.connection){await this.open(t)}async disconnect(){await this.close()}on(t,e){this.events.on(t,e)}once(t,e){this.events.once(t,e)}off(t,e){this.events.off(t,e)}removeListener(t,e){this.events.removeListener(t,e)}async request(t,e){return this.requestStrict(h(t.method,t.params||[],t.id||a().toString()),e)}async requestStrict(t,e){return new Promise(async(i,s)=>{if(!this.connection.connected)try{await this.open()}catch(n){s(n)}this.events.on(`${t.id}`,n=>{d(n)?s(n.error):i(n.result)});try{await this.connection.send(t,e)}catch(n){s(n)}})}setConnection(t=this.connection){return t}onPayload(t){this.events.emit(\"payload\",t),v(t)?this.events.emit(`${t.id}`,t):this.events.emit(\"message\",{type:t.method,data:t.params})}onClose(t){t&&t.code===3e3&&this.events.emit(\"error\",new Error(`WebSocket connection closed abnormally with code: ${t.code} ${t.reason?`(${t.reason})`:\"\"}`)),this.events.emit(\"disconnect\")}async open(t=this.connection){this.connection===t&&this.connection.connected||(this.connection.connected&&this.close(),typeof t==\"string\"&&(await this.connection.open(t),t=this.connection),this.connection=this.setConnection(t),await this.connection.open(),this.registerEventListeners(),this.events.emit(\"connect\"))}async close(){await this.connection.close()}registerEventListeners(){this.hasRegisteredEventListeners||(this.connection.on(\"payload\",t=>this.onPayload(t)),this.connection.on(\"close\",t=>this.onClose(t)),this.connection.on(\"error\",t=>this.events.emit(\"error\",t)),this.connection.on(\"register_error\",t=>this.onClose()),this.hasRegisteredEventListeners=!0)}}export{o as JsonRpcProvider,o as default};\n//# sourceMappingURL=index.es.js.map\n","/**\n * Lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright JS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = isEqual;\n","export default function(e,n){return n=n||{},new Promise(function(t,r){var s=new XMLHttpRequest,o=[],u=[],i={},a=function(){return{ok:2==(s.status/100|0),statusText:s.statusText,status:s.status,url:s.responseURL,text:function(){return Promise.resolve(s.responseText)},json:function(){return Promise.resolve(s.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([s.response]))},clone:a,headers:{keys:function(){return o},entries:function(){return u},get:function(e){return i[e.toLowerCase()]},has:function(e){return e.toLowerCase()in i}}}};for(var l in s.open(n.method||\"get\",e,!0),s.onload=function(){s.getAllResponseHeaders().replace(/^(.*?):[^\\S\\n]*([\\s\\S]*?)$/gm,function(e,n,t){o.push(n=n.toLowerCase()),u.push([n,t]),i[n]=i[n]?i[n]+\",\"+t:t}),t(a())},s.onerror=r,s.withCredentials=\"include\"==n.credentials,n.headers)s.setRequestHeader(l,n.headers[l]);s.send(n.body||null)})}\n//# sourceMappingURL=unfetch.module.js.map\n","import{RELAYER_EVENTS as ve,PAIRING_EVENTS as Ae,Core as _e,Store as P}from\"@walletconnect/core\";import{pino as xe,getDefaultLoggerOptions as Re,generateChildLogger as Fe,getLoggerContext as Te}from\"@walletconnect/logger\";import{EventEmitter as Ie}from\"events\";import{formatJsonRpcRequest as qe,formatJsonRpcResult as Ue,formatJsonRpcError as Oe,isJsonRpcResult as Se,isJsonRpcError as Pe,isJsonRpcRequest as Ne,isJsonRpcResponse as $e}from\"@walletconnect/jsonrpc-utils\";import{isValidUrl as Be,isValidRequestExpiry as ze,getInternalError as k,hashKey as J,isBrowser as je,TYPE_1 as Me}from\"@walletconnect/utils\";import{ONE_DAY as N,FIVE_MINUTES as Le,SEVEN_DAYS as Ke}from\"@walletconnect/time\";import{hashMessage as X}from\"@ethersproject/hash\";import{recoverAddress as Ve}from\"@ethersproject/transactions\";import ke from\"isomorphic-unfetch\";import{randomStringForEntropy as Je}from\"@stablelib/random\";import{hash as Xe}from\"@stablelib/sha256\";class G{constructor(t){this.client=t}}class H{constructor(t){this.opts=t}}const Y=\"https://rpc.walletconnect.com/v1\",R={wc_authRequest:{req:{ttl:N,prompt:!0,tag:3e3},res:{ttl:N,prompt:!1,tag:3001}}},U={min:Le,max:Ke},$=\"wc\",Q=1,Z=\"auth\",B=\"authClient\",F=`${$}@${1}:${Z}:`,x=`${F}:PUB_KEY`,Ge=\"expirer\",He={created:\"expirer_created\",deleted:\"expirer_deleted\",expired:\"expirer_expired\",sync:\"expirer_sync\"},Ye=\"0.3\",Qe=N;function z(r){return r?.split(\":\")}function Ze(r){const t=r&&z(r);if(t)return t[3]}function We(r){const t=r&&z(r);if(t)return t[2]+\":\"+t[3]}function W(r){const t=r&&z(r);if(t)return t.pop()}async function et(r,t,e,i,n){switch(e.t){case\"eip191\":return tt(r,t,e.s);case\"eip1271\":return await rt(r,t,e.s,i,n);default:throw new Error(`verifySignature failed: Attempted to verify CacaoSignature with unknown type: ${e.t}`)}}function tt(r,t,e){return Ve(X(t),e).toLowerCase()===r.toLowerCase()}async function rt(r,t,e,i,n){try{const s=\"0x1626ba7e\",o=\"0000000000000000000000000000000000000000000000000000000000000040\",u=\"0000000000000000000000000000000000000000000000000000000000000041\",a=e.substring(2),c=X(t).substring(2),h=s+c+o+u+a,f=await ke(`${Y}/?chainId=${i}&projectId=${n}`,{method:\"POST\",body:JSON.stringify({id:it(),jsonrpc:\"2.0\",method:\"eth_call\",params:[{to:r,data:h},\"latest\"]})}),{result:p}=await f.json();return p?p.slice(0,s.length).toLowerCase()===s.toLowerCase():!1}catch(s){return console.error(\"isValidEip1271Signature: \",s),!1}}function it(){return Date.now()+Math.floor(Math.random()*1e3)}function ee(r){return r.getAll().filter(t=>\"requester\"in t)}function te(r,t){return ee(r).find(e=>e.id===t)}function nt(r){const t=Be(r.aud),e=new RegExp(`${r.domain}`).test(r.aud),i=!!r.nonce,n=r.type?r.type===\"eip4361\":!0,s=r.expiry;if(s&&!ze(s,U)){const{message:o}=k(\"MISSING_OR_INVALID\",`request() expiry: ${s}. Expiry must be a number (in seconds) between ${U.min} and ${U.max}`);throw new Error(o)}return!!(t&&e&&i&&n)}function st(r,t){return!!te(t,r.id)}function ot(r=0){return globalThis.Buffer!=null&&globalThis.Buffer.allocUnsafe!=null?globalThis.Buffer.allocUnsafe(r):new Uint8Array(r)}function ut(r,t){if(r.length>=255)throw new TypeError(\"Alphabet too long\");for(var e=new Uint8Array(256),i=0;i>>0,g=new Uint8Array(w);E!==y;){for(var C=D[E],_=0,b=w-1;(C!==0||_>>0,g[b]=C%u>>>0,C=C/u>>>0;if(C!==0)throw new Error(\"Non-zero carry\");m=_,E++}for(var v=w-m;v!==w&&g[v]===0;)v++;for(var q=a.repeat(l);v>>0,w=new Uint8Array(y);D[l];){var g=e[D.charCodeAt(l)];if(g===255)return;for(var C=0,_=y-1;(g!==0||C>>0,w[_]=g%256>>>0,g=g/256>>>0;if(g!==0)throw new Error(\"Non-zero carry\");E=C,l++}if(D[l]!==\" \"){for(var b=y-E;b!==y&&w[b]===0;)b++;for(var v=new Uint8Array(m+(y-b)),q=m;b!==y;)v[q++]=w[b++];return v}}}function A(D){var l=p(D);if(l)return l;throw new Error(`Non-${t} character`)}return{encode:f,decodeUnsafe:p,decode:A}}var at=ut,Dt=at;const re=r=>{if(r instanceof Uint8Array&&r.constructor.name===\"Uint8Array\")return r;if(r instanceof ArrayBuffer)return new Uint8Array(r);if(ArrayBuffer.isView(r))return new Uint8Array(r.buffer,r.byteOffset,r.byteLength);throw new Error(\"Unknown type, must be binary type\")},ct=r=>new TextEncoder().encode(r),ht=r=>new TextDecoder().decode(r);class lt{constructor(t,e,i){this.name=t,this.prefix=e,this.baseEncode=i}encode(t){if(t instanceof Uint8Array)return`${this.prefix}${this.baseEncode(t)}`;throw Error(\"Unknown type, must be binary type\")}}class dt{constructor(t,e,i){if(this.name=t,this.prefix=e,e.codePointAt(0)===void 0)throw new Error(\"Invalid prefix character\");this.prefixCodePoint=e.codePointAt(0),this.baseDecode=i}decode(t){if(typeof t==\"string\"){if(t.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(t)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(t.slice(this.prefix.length))}else throw Error(\"Can only multibase decode strings\")}or(t){return ie(this,t)}}class pt{constructor(t){this.decoders=t}or(t){return ie(this,t)}decode(t){const e=t[0],i=this.decoders[e];if(i)return i.decode(t);throw RangeError(`Unable to decode multibase string ${JSON.stringify(t)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}}const ie=(r,t)=>new pt({...r.decoders||{[r.prefix]:r},...t.decoders||{[t.prefix]:t}});class ft{constructor(t,e,i,n){this.name=t,this.prefix=e,this.baseEncode=i,this.baseDecode=n,this.encoder=new lt(t,e,i),this.decoder=new dt(t,e,n)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}}const O=({name:r,prefix:t,encode:e,decode:i})=>new ft(r,t,e,i),T=({prefix:r,name:t,alphabet:e})=>{const{encode:i,decode:n}=Dt(e,t);return O({prefix:r,name:t,encode:i,decode:s=>re(n(s))})},gt=(r,t,e,i)=>{const n={};for(let h=0;h=8&&(u-=8,o[c++]=255&a>>u)}if(u>=e||255&a<<8-u)throw new SyntaxError(\"Unexpected end of data\");return o},Et=(r,t,e)=>{const i=t[t.length-1]===\"=\",n=(1<e;)o-=e,s+=t[n&u>>o];if(o&&(s+=t[n&u<O({prefix:t,name:r,encode(n){return Et(n,i,e)},decode(n){return gt(n,i,e,r)}}),bt=O({prefix:\"\\0\",name:\"identity\",encode:r=>ht(r),decode:r=>ct(r)});var yt=Object.freeze({__proto__:null,identity:bt});const wt=d({prefix:\"0\",name:\"base2\",alphabet:\"01\",bitsPerChar:1});var Ct=Object.freeze({__proto__:null,base2:wt});const mt=d({prefix:\"7\",name:\"base8\",alphabet:\"01234567\",bitsPerChar:3});var vt=Object.freeze({__proto__:null,base8:mt});const At=T({prefix:\"9\",name:\"base10\",alphabet:\"0123456789\"});var _t=Object.freeze({__proto__:null,base10:At});const xt=d({prefix:\"f\",name:\"base16\",alphabet:\"0123456789abcdef\",bitsPerChar:4}),Rt=d({prefix:\"F\",name:\"base16upper\",alphabet:\"0123456789ABCDEF\",bitsPerChar:4});var Ft=Object.freeze({__proto__:null,base16:xt,base16upper:Rt});const Tt=d({prefix:\"b\",name:\"base32\",alphabet:\"abcdefghijklmnopqrstuvwxyz234567\",bitsPerChar:5}),It=d({prefix:\"B\",name:\"base32upper\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567\",bitsPerChar:5}),qt=d({prefix:\"c\",name:\"base32pad\",alphabet:\"abcdefghijklmnopqrstuvwxyz234567=\",bitsPerChar:5}),Ut=d({prefix:\"C\",name:\"base32padupper\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=\",bitsPerChar:5}),Ot=d({prefix:\"v\",name:\"base32hex\",alphabet:\"0123456789abcdefghijklmnopqrstuv\",bitsPerChar:5}),St=d({prefix:\"V\",name:\"base32hexupper\",alphabet:\"0123456789ABCDEFGHIJKLMNOPQRSTUV\",bitsPerChar:5}),Pt=d({prefix:\"t\",name:\"base32hexpad\",alphabet:\"0123456789abcdefghijklmnopqrstuv=\",bitsPerChar:5}),Nt=d({prefix:\"T\",name:\"base32hexpadupper\",alphabet:\"0123456789ABCDEFGHIJKLMNOPQRSTUV=\",bitsPerChar:5}),$t=d({prefix:\"h\",name:\"base32z\",alphabet:\"ybndrfg8ejkmcpqxot1uwisza345h769\",bitsPerChar:5});var Bt=Object.freeze({__proto__:null,base32:Tt,base32upper:It,base32pad:qt,base32padupper:Ut,base32hex:Ot,base32hexupper:St,base32hexpad:Pt,base32hexpadupper:Nt,base32z:$t});const zt=T({prefix:\"k\",name:\"base36\",alphabet:\"0123456789abcdefghijklmnopqrstuvwxyz\"}),jt=T({prefix:\"K\",name:\"base36upper\",alphabet:\"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\"});var Mt=Object.freeze({__proto__:null,base36:zt,base36upper:jt});const Lt=T({name:\"base58btc\",prefix:\"z\",alphabet:\"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz\"}),Kt=T({name:\"base58flickr\",prefix:\"Z\",alphabet:\"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ\"});var Vt=Object.freeze({__proto__:null,base58btc:Lt,base58flickr:Kt});const kt=d({prefix:\"m\",name:\"base64\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",bitsPerChar:6}),Jt=d({prefix:\"M\",name:\"base64pad\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\",bitsPerChar:6}),Xt=d({prefix:\"u\",name:\"base64url\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_\",bitsPerChar:6}),Gt=d({prefix:\"U\",name:\"base64urlpad\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=\",bitsPerChar:6});var Ht=Object.freeze({__proto__:null,base64:kt,base64pad:Jt,base64url:Xt,base64urlpad:Gt});const ne=Array.from(\"\\u{1F680}\\u{1FA90}\\u2604\\u{1F6F0}\\u{1F30C}\\u{1F311}\\u{1F312}\\u{1F313}\\u{1F314}\\u{1F315}\\u{1F316}\\u{1F317}\\u{1F318}\\u{1F30D}\\u{1F30F}\\u{1F30E}\\u{1F409}\\u2600\\u{1F4BB}\\u{1F5A5}\\u{1F4BE}\\u{1F4BF}\\u{1F602}\\u2764\\u{1F60D}\\u{1F923}\\u{1F60A}\\u{1F64F}\\u{1F495}\\u{1F62D}\\u{1F618}\\u{1F44D}\\u{1F605}\\u{1F44F}\\u{1F601}\\u{1F525}\\u{1F970}\\u{1F494}\\u{1F496}\\u{1F499}\\u{1F622}\\u{1F914}\\u{1F606}\\u{1F644}\\u{1F4AA}\\u{1F609}\\u263A\\u{1F44C}\\u{1F917}\\u{1F49C}\\u{1F614}\\u{1F60E}\\u{1F607}\\u{1F339}\\u{1F926}\\u{1F389}\\u{1F49E}\\u270C\\u2728\\u{1F937}\\u{1F631}\\u{1F60C}\\u{1F338}\\u{1F64C}\\u{1F60B}\\u{1F497}\\u{1F49A}\\u{1F60F}\\u{1F49B}\\u{1F642}\\u{1F493}\\u{1F929}\\u{1F604}\\u{1F600}\\u{1F5A4}\\u{1F603}\\u{1F4AF}\\u{1F648}\\u{1F447}\\u{1F3B6}\\u{1F612}\\u{1F92D}\\u2763\\u{1F61C}\\u{1F48B}\\u{1F440}\\u{1F62A}\\u{1F611}\\u{1F4A5}\\u{1F64B}\\u{1F61E}\\u{1F629}\\u{1F621}\\u{1F92A}\\u{1F44A}\\u{1F973}\\u{1F625}\\u{1F924}\\u{1F449}\\u{1F483}\\u{1F633}\\u270B\\u{1F61A}\\u{1F61D}\\u{1F634}\\u{1F31F}\\u{1F62C}\\u{1F643}\\u{1F340}\\u{1F337}\\u{1F63B}\\u{1F613}\\u2B50\\u2705\\u{1F97A}\\u{1F308}\\u{1F608}\\u{1F918}\\u{1F4A6}\\u2714\\u{1F623}\\u{1F3C3}\\u{1F490}\\u2639\\u{1F38A}\\u{1F498}\\u{1F620}\\u261D\\u{1F615}\\u{1F33A}\\u{1F382}\\u{1F33B}\\u{1F610}\\u{1F595}\\u{1F49D}\\u{1F64A}\\u{1F639}\\u{1F5E3}\\u{1F4AB}\\u{1F480}\\u{1F451}\\u{1F3B5}\\u{1F91E}\\u{1F61B}\\u{1F534}\\u{1F624}\\u{1F33C}\\u{1F62B}\\u26BD\\u{1F919}\\u2615\\u{1F3C6}\\u{1F92B}\\u{1F448}\\u{1F62E}\\u{1F646}\\u{1F37B}\\u{1F343}\\u{1F436}\\u{1F481}\\u{1F632}\\u{1F33F}\\u{1F9E1}\\u{1F381}\\u26A1\\u{1F31E}\\u{1F388}\\u274C\\u270A\\u{1F44B}\\u{1F630}\\u{1F928}\\u{1F636}\\u{1F91D}\\u{1F6B6}\\u{1F4B0}\\u{1F353}\\u{1F4A2}\\u{1F91F}\\u{1F641}\\u{1F6A8}\\u{1F4A8}\\u{1F92C}\\u2708\\u{1F380}\\u{1F37A}\\u{1F913}\\u{1F619}\\u{1F49F}\\u{1F331}\\u{1F616}\\u{1F476}\\u{1F974}\\u25B6\\u27A1\\u2753\\u{1F48E}\\u{1F4B8}\\u2B07\\u{1F628}\\u{1F31A}\\u{1F98B}\\u{1F637}\\u{1F57A}\\u26A0\\u{1F645}\\u{1F61F}\\u{1F635}\\u{1F44E}\\u{1F932}\\u{1F920}\\u{1F927}\\u{1F4CC}\\u{1F535}\\u{1F485}\\u{1F9D0}\\u{1F43E}\\u{1F352}\\u{1F617}\\u{1F911}\\u{1F30A}\\u{1F92F}\\u{1F437}\\u260E\\u{1F4A7}\\u{1F62F}\\u{1F486}\\u{1F446}\\u{1F3A4}\\u{1F647}\\u{1F351}\\u2744\\u{1F334}\\u{1F4A3}\\u{1F438}\\u{1F48C}\\u{1F4CD}\\u{1F940}\\u{1F922}\\u{1F445}\\u{1F4A1}\\u{1F4A9}\\u{1F450}\\u{1F4F8}\\u{1F47B}\\u{1F910}\\u{1F92E}\\u{1F3BC}\\u{1F975}\\u{1F6A9}\\u{1F34E}\\u{1F34A}\\u{1F47C}\\u{1F48D}\\u{1F4E3}\\u{1F942}\"),Yt=ne.reduce((r,t,e)=>(r[e]=t,r),[]),Qt=ne.reduce((r,t,e)=>(r[t.codePointAt(0)]=e,r),[]);function Zt(r){return r.reduce((t,e)=>(t+=Yt[e],t),\"\")}function Wt(r){const t=[];for(const e of r){const i=Qt[e.codePointAt(0)];if(i===void 0)throw new Error(`Non-base256emoji character: ${e}`);t.push(i)}return new Uint8Array(t)}const er=O({prefix:\"\\u{1F680}\",name:\"base256emoji\",encode:Zt,decode:Wt});var tr=Object.freeze({__proto__:null,base256emoji:er}),rr=oe,se=128,ir=127,nr=~ir,sr=Math.pow(2,31);function oe(r,t,e){t=t||[],e=e||0;for(var i=e;r>=sr;)t[e++]=r&255|se,r/=128;for(;r&nr;)t[e++]=r&255|se,r>>>=7;return t[e]=r|0,oe.bytes=e-i+1,t}var or=j,ur=128,ue=127;function j(r,i){var e=0,i=i||0,n=0,s=i,o,u=r.length;do{if(s>=u)throw j.bytes=0,new RangeError(\"Could not decode varint\");o=r[s++],e+=n<28?(o&ue)<=ur);return j.bytes=s-i,e}var ar=Math.pow(2,7),Dr=Math.pow(2,14),cr=Math.pow(2,21),hr=Math.pow(2,28),lr=Math.pow(2,35),dr=Math.pow(2,42),pr=Math.pow(2,49),fr=Math.pow(2,56),gr=Math.pow(2,63),Er=function(r){return r(ae.encode(r,t,e),t),ce=r=>ae.encodingLength(r),M=(r,t)=>{const e=t.byteLength,i=ce(r),n=i+ce(e),s=new Uint8Array(n+e);return De(r,s,0),De(e,s,i),s.set(t,n),new yr(r,e,t,s)};class yr{constructor(t,e,i,n){this.code=t,this.size=e,this.digest=i,this.bytes=n}}const he=({name:r,code:t,encode:e})=>new wr(r,t,e);class wr{constructor(t,e,i){this.name=t,this.code=e,this.encode=i}digest(t){if(t instanceof Uint8Array){const e=this.encode(t);return e instanceof Uint8Array?M(this.code,e):e.then(i=>M(this.code,i))}else throw Error(\"Unknown type, must be binary type\")}}const le=r=>async t=>new Uint8Array(await crypto.subtle.digest(r,t)),Cr=he({name:\"sha2-256\",code:18,encode:le(\"SHA-256\")}),mr=he({name:\"sha2-512\",code:19,encode:le(\"SHA-512\")});var vr=Object.freeze({__proto__:null,sha256:Cr,sha512:mr});const de=0,Ar=\"identity\",pe=re,_r=r=>M(de,pe(r)),xr={code:de,name:Ar,encode:pe,digest:_r};var Rr=Object.freeze({__proto__:null,identity:xr});new TextEncoder,new TextDecoder;const fe={...yt,...Ct,...vt,..._t,...Ft,...Bt,...Mt,...Vt,...Ht,...tr};({...vr,...Rr});function ge(r,t,e,i){return{name:r,prefix:t,encoder:{name:r,prefix:t,encode:e},decoder:{decode:i}}}const Ee=ge(\"utf8\",\"u\",r=>\"u\"+new TextDecoder(\"utf8\").decode(r),r=>new TextEncoder().encode(r.substring(1))),L=ge(\"ascii\",\"a\",r=>{let t=\"a\";for(let e=0;e{r=r.substring(1);const t=ot(r.length);for(let e=0;et in r?Or(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e,I=(r,t)=>{for(var e in t||(t={}))Nr.call(t,e)&&me(r,e,t[e]);if(Ce)for(var e of Ce(t))$r.call(t,e)&&me(r,e,t[e]);return r},V=(r,t)=>Sr(r,Pr(t));class Br extends G{constructor(t){super(t),this.initialized=!1,this.name=\"authEngine\",this.init=()=>{this.initialized||(this.registerRelayerEvents(),this.registerPairingEvents(),this.client.core.pairing.register({methods:Object.keys(R)}),this.initialized=!0)},this.request=async(e,i)=>{if(this.isInitialized(),!nt(e))throw new Error(\"Invalid request\");if(i!=null&&i.topic)return await this.requestOnKnownPairing(i.topic,e);const{chainId:n,statement:s,aud:o,domain:u,nonce:a,type:c,exp:h,nbf:f}=e,{topic:p,uri:A}=await this.client.core.pairing.create();this.client.logger.info({message:\"Generated new pairing\",pairing:{topic:p,uri:A}});const D=await this.client.core.crypto.generateKeyPair(),l=J(D);await this.client.authKeys.set(x,{responseTopic:l,publicKey:D}),await this.client.pairingTopics.set(l,{topic:l,pairingTopic:p}),await this.client.core.relayer.subscribe(l),this.client.logger.info(`sending request to new pairing topic: ${p}`);const m=await this.sendRequest(p,\"wc_authRequest\",{payloadParams:{type:c??\"eip4361\",chainId:n,statement:s,aud:o,domain:u,version:\"1\",nonce:a,iat:new Date().toISOString(),exp:h,nbf:f},requester:{publicKey:D,metadata:this.client.metadata}},{},e.expiry);return this.client.logger.info(`sent request to new pairing topic: ${p}`),{uri:A,id:m}},this.respond=async(e,i)=>{if(this.isInitialized(),!st(e,this.client.requests))throw new Error(\"Invalid response\");const n=te(this.client.requests,e.id);if(!n)throw new Error(`Could not find pending auth request with id ${e.id}`);const s=n.requester.publicKey,o=await this.client.core.crypto.generateKeyPair(),u=J(s),a={type:Me,receiverPublicKey:s,senderPublicKey:o};if(\"error\"in e){await this.sendError(n.id,u,e,a);return}const c={h:{t:\"eip4361\"},p:V(I({},n.cacaoPayload),{iss:i}),s:e.signature};await this.sendResult(n.id,u,c,a),await this.client.core.pairing.activate({topic:n.pairingTopic}),await this.client.requests.update(n.id,I({},c))},this.getPendingRequests=()=>ee(this.client.requests),this.formatMessage=(e,i)=>{this.client.logger.debug(`formatMessage, cacao is: ${JSON.stringify(e)}`);const n=`${e.domain} wants you to sign in with your Ethereum account:`,s=W(i),o=e.statement,u=`URI: ${e.aud}`,a=`Version: ${e.version}`,c=`Chain ID: ${Ze(i)}`,h=`Nonce: ${e.nonce}`,f=`Issued At: ${e.iat}`,p=e.exp?`Expiry: ${e.exp}`:void 0,A=e.resources&&e.resources.length>0?`Resources:\n${e.resources.map(D=>`- ${D}`).join(`\n`)}`:void 0;return[n,s,\"\",o,\"\",u,a,c,h,f,p,A].filter(D=>D!=null).join(`\n`)},this.setExpiry=async(e,i)=>{this.client.core.pairing.pairings.keys.includes(e)&&await this.client.core.pairing.updateExpiry({topic:e,expiry:i}),this.client.core.expirer.set(e,i)},this.sendRequest=async(e,i,n,s,o)=>{const u=qe(i,n),a=await this.client.core.crypto.encode(e,u,s),c=R[i].req;if(o&&(c.ttl=o),this.client.core.history.set(e,u),je()){const h=K(JSON.stringify(u));this.client.core.verify.register({attestationId:h})}return await this.client.core.relayer.publish(e,a,V(I({},c),{internal:{throwOnFailedPublish:!0}})),u.id},this.sendResult=async(e,i,n,s)=>{const o=Ue(e,n),u=await this.client.core.crypto.encode(i,o,s),a=await this.client.core.history.get(i,e),c=R[a.request.method].res;return await this.client.core.relayer.publish(i,u,V(I({},c),{internal:{throwOnFailedPublish:!0}})),await this.client.core.history.resolve(o),o.id},this.sendError=async(e,i,n,s)=>{const o=Oe(e,n.error),u=await this.client.core.crypto.encode(i,o,s),a=await this.client.core.history.get(i,e),c=R[a.request.method].res;return await this.client.core.relayer.publish(i,u,c),await this.client.core.history.resolve(o),o.id},this.requestOnKnownPairing=async(e,i)=>{const n=this.client.core.pairing.pairings.getAll({active:!0}).find(A=>A.topic===e);if(!n)throw new Error(`Could not find pairing for provided topic ${e}`);const{publicKey:s}=this.client.authKeys.get(x),{chainId:o,statement:u,aud:a,domain:c,nonce:h,type:f}=i,p=await this.sendRequest(n.topic,\"wc_authRequest\",{payloadParams:{type:f??\"eip4361\",chainId:o,statement:u,aud:a,domain:c,version:\"1\",nonce:h,iat:new Date().toISOString()},requester:{publicKey:s,metadata:this.client.metadata}},{},i.expiry);return this.client.logger.info(`sent request to known pairing topic: ${n.topic}`),{id:p}},this.onPairingCreated=e=>{const i=this.getPendingRequests();if(i){const n=Object.values(i).find(s=>s.pairingTopic===e.topic);n&&this.handleAuthRequest(n)}},this.onRelayEventRequest=e=>{const{topic:i,payload:n}=e,s=n.method;switch(s){case\"wc_authRequest\":return this.onAuthRequest(i,n);default:return this.client.logger.info(`Unsupported request method ${s}`)}},this.onRelayEventResponse=async e=>{const{topic:i,payload:n}=e,s=(await this.client.core.history.get(i,n.id)).request.method;switch(s){case\"wc_authRequest\":return this.onAuthResponse(i,n);default:return this.client.logger.info(`Unsupported response method ${s}`)}},this.onAuthRequest=async(e,i)=>{const{requester:n,payloadParams:s}=i.params;this.client.logger.info({type:\"onAuthRequest\",topic:e,payload:i});const o=K(JSON.stringify(i)),u=await this.getVerifyContext(o,this.client.metadata),a={requester:n,pairingTopic:e,id:i.id,cacaoPayload:s,verifyContext:u};await this.client.requests.set(i.id,a),this.handleAuthRequest(a)},this.handleAuthRequest=async e=>{const{id:i,pairingTopic:n,requester:s,cacaoPayload:o,verifyContext:u}=e;try{this.client.emit(\"auth_request\",{id:i,topic:n,params:{requester:s,cacaoPayload:o},verifyContext:u})}catch(a){await this.sendError(e.id,e.pairingTopic,a),this.client.logger.error(a)}},this.onAuthResponse=async(e,i)=>{const{id:n}=i;if(this.client.logger.info({type:\"onAuthResponse\",topic:e,response:i}),Se(i)){const{pairingTopic:s}=this.client.pairingTopics.get(e);await this.client.core.pairing.activate({topic:s});const{s:o,p:u}=i.result;await this.client.requests.set(n,I({id:n,pairingTopic:s},i.result));const a=this.formatMessage(u,u.iss);this.client.logger.debug(`reconstructed message:\n`,JSON.stringify(a)),this.client.logger.debug(\"payload.iss:\",u.iss),this.client.logger.debug(\"signature:\",o);const c=W(u.iss),h=We(u.iss);if(!c)throw new Error(\"Could not derive address from `payload.iss`\");if(!h)throw new Error(\"Could not derive chainId from `payload.iss`\");this.client.logger.debug(\"walletAddress extracted from `payload.iss`:\",c),await et(c,a,o,h,this.client.projectId)?this.client.emit(\"auth_response\",{id:n,topic:e,params:i}):this.client.emit(\"auth_response\",{id:n,topic:e,params:{message:\"Invalid signature\",code:-1}})}else Pe(i)&&this.client.emit(\"auth_response\",{id:n,topic:e,params:i})},this.getVerifyContext=async(e,i)=>{const n={verified:{verifyUrl:i.verifyUrl||\"\",validation:\"UNKNOWN\",origin:i.url||\"\"}};try{const s=await this.client.core.verify.resolve({attestationId:e,verifyUrl:i.verifyUrl});s&&(n.verified.origin=s.origin,n.verified.isScam=s.isScam,n.verified.validation=origin===new URL(i.url).origin?\"VALID\":\"INVALID\")}catch(s){this.client.logger.error(s)}return this.client.logger.info(`Verify context: ${JSON.stringify(n)}`),n}}isInitialized(){if(!this.initialized){const{message:t}=k(\"NOT_INITIALIZED\",this.name);throw new Error(t)}}registerRelayerEvents(){this.client.core.relayer.on(ve.message,async t=>{const{topic:e,message:i}=t,{responseTopic:n,publicKey:s}=this.client.authKeys.keys.includes(x)?this.client.authKeys.get(x):{responseTopic:void 0,publicKey:void 0};if(n&&e!==n){this.client.logger.debug(\"[Auth] Ignoring message from unknown topic\",e);return}const o=await this.client.core.crypto.decode(e,i,{receiverPublicKey:s});Ne(o)?(this.client.core.history.set(e,o),this.onRelayEventRequest({topic:e,payload:o})):$e(o)&&(await this.client.core.history.resolve(o),this.onRelayEventResponse({topic:e,payload:o}))})}registerPairingEvents(){this.client.core.pairing.events.on(Ae.create,t=>this.onPairingCreated(t))}}class S extends H{constructor(t){super(t),this.protocol=$,this.version=Q,this.name=B,this.events=new Ie,this.emit=(i,n)=>this.events.emit(i,n),this.on=(i,n)=>this.events.on(i,n),this.once=(i,n)=>this.events.once(i,n),this.off=(i,n)=>this.events.off(i,n),this.removeListener=(i,n)=>this.events.removeListener(i,n),this.request=async(i,n)=>{try{return await this.engine.request(i,n)}catch(s){throw this.logger.error(s.message),s}},this.respond=async(i,n)=>{try{return await this.engine.respond(i,n)}catch(s){throw this.logger.error(s.message),s}},this.getPendingRequests=()=>{try{return this.engine.getPendingRequests()}catch(i){throw this.logger.error(i.message),i}},this.formatMessage=(i,n)=>{try{return this.engine.formatMessage(i,n)}catch(s){throw this.logger.error(s.message),s}};const e=typeof t.logger<\"u\"&&typeof t.logger!=\"string\"?t.logger:xe(Re({level:t.logger||\"error\"}));this.name=t?.name||B,this.metadata=t.metadata,this.projectId=t.projectId,this.core=t.core||new _e(t),this.logger=Fe(e,this.name),this.authKeys=new P(this.core,this.logger,\"authKeys\",F,()=>x),this.pairingTopics=new P(this.core,this.logger,\"pairingTopics\",F),this.requests=new P(this.core,this.logger,\"requests\",F,i=>i.id),this.engine=new Br(this)}static async init(t){const e=new S(t);return await e.initialize(),e}get context(){return Te(this.logger)}async initialize(){this.logger.trace(\"Initialized\");try{await this.core.start(),await this.authKeys.init(),await this.requests.init(),await this.pairingTopics.init(),await this.engine.init(),this.logger.info(\"AuthClient Initialization Success\"),this.logger.info({authClient:this})}catch(t){throw this.logger.info(\"AuthClient Initialization Failure\"),this.logger.error(t.message),t}}}const zr=S;export{Z as AUTH_CLIENT_CONTEXT,B as AUTH_CLIENT_DEFAULT_NAME,$ as AUTH_CLIENT_PROTOCOL,x as AUTH_CLIENT_PUBLIC_KEY_NAME,F as AUTH_CLIENT_STORAGE_PREFIX,Q as AUTH_CLIENT_VERSION,U as AUTH_REQUEST_EXPIRY_BOUNDARIES,zr as AuthClient,Ir as BASE10,ye as BASE16,qr as BASE64,Y as DEFAULT_RPC_URL,R as ENGINE_RPC_OPTS,Ge as EXPIRER_CONTEXT,Qe as EXPIRER_DEFAULT_TTL,He as EXPIRER_EVENTS,Ye as EXPIRER_STORAGE_VERSION,H as IAuthClient,G as IAuthEngine,we as UTF8,S as default,Ur as generateNonce,K as hashMessage};\n//# sourceMappingURL=index.es.js.map\n","module.exports = self.fetch || (self.fetch = require('unfetch').default || require('unfetch'));\n","import{IEvents as o}from\"@walletconnect/events\";import c,{EventEmitter as i}from\"events\";class n extends o{constructor(s){super(),this.opts=s,this.protocol=\"wc\",this.version=2}}class l{constructor(s,t,e){this.core=s,this.logger=t}}class h extends o{constructor(s,t){super(),this.core=s,this.logger=t,this.records=new Map}}class a{constructor(s,t){this.logger=s,this.core=t}}class g extends o{constructor(s,t){super(),this.relayer=s,this.logger=t}}class u extends o{constructor(s){super()}}class p{constructor(s,t,e,f){this.core=s,this.logger=t,this.name=e}}class I{constructor(){this.map=new Map}}class d extends o{constructor(s,t){super(),this.relayer=s,this.logger=t}}class E{constructor(s,t){this.core=s,this.logger=t}}class x extends o{constructor(s,t){super(),this.core=s,this.logger=t}}class m{constructor(s,t){this.logger=s,this.core=t}}class y{constructor(s,t,e){this.core=s,this.logger=t,this.store=e}}class v{constructor(s,t){this.projectId=s,this.logger=t}}class C{constructor(s,t,e){this.core=s,this.logger=t,this.telemetryEnabled=e}}class b extends c{constructor(){super()}}class S{constructor(s){this.opts=s,this.protocol=\"wc\",this.version=2}}class w extends i{constructor(){super()}}class M{constructor(s){this.client=s}}export{n as ICore,l as ICrypto,v as IEchoClient,M as IEngine,w as IEngineEvents,C as IEventClient,x as IExpirer,h as IJsonRpcHistory,E as IKeyChain,a as IMessageTracker,m as IPairing,g as IPublisher,u as IRelayer,S as ISignClient,b as ISignClientEvents,p as IStore,d as ISubscriber,I as ISubscriberTopicMap,y as IVerify};\n//# sourceMappingURL=index.es.js.map\n","var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar BrowserInfo = /** @class */ (function () {\n function BrowserInfo(name, version, os) {\n this.name = name;\n this.version = version;\n this.os = os;\n this.type = 'browser';\n }\n return BrowserInfo;\n}());\nexport { BrowserInfo };\nvar NodeInfo = /** @class */ (function () {\n function NodeInfo(version) {\n this.version = version;\n this.type = 'node';\n this.name = 'node';\n this.os = process.platform;\n }\n return NodeInfo;\n}());\nexport { NodeInfo };\nvar SearchBotDeviceInfo = /** @class */ (function () {\n function SearchBotDeviceInfo(name, version, os, bot) {\n this.name = name;\n this.version = version;\n this.os = os;\n this.bot = bot;\n this.type = 'bot-device';\n }\n return SearchBotDeviceInfo;\n}());\nexport { SearchBotDeviceInfo };\nvar BotInfo = /** @class */ (function () {\n function BotInfo() {\n this.type = 'bot';\n this.bot = true; // NOTE: deprecated test name instead\n this.name = 'bot';\n this.version = null;\n this.os = null;\n }\n return BotInfo;\n}());\nexport { BotInfo };\nvar ReactNativeInfo = /** @class */ (function () {\n function ReactNativeInfo() {\n this.type = 'react-native';\n this.name = 'react-native';\n this.version = null;\n this.os = null;\n }\n return ReactNativeInfo;\n}());\nexport { ReactNativeInfo };\n// tslint:disable-next-line:max-line-length\nvar SEARCHBOX_UA_REGEX = /alexa|bot|crawl(er|ing)|facebookexternalhit|feedburner|google web preview|nagios|postrank|pingdom|slurp|spider|yahoo!|yandex/;\nvar SEARCHBOT_OS_REGEX = /(nuhk|curl|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask\\ Jeeves\\/Teoma|ia_archiver)/;\nvar REQUIRED_VERSION_PARTS = 3;\nvar userAgentRules = [\n ['aol', /AOLShield\\/([0-9\\._]+)/],\n ['edge', /Edge\\/([0-9\\._]+)/],\n ['edge-ios', /EdgiOS\\/([0-9\\._]+)/],\n ['yandexbrowser', /YaBrowser\\/([0-9\\._]+)/],\n ['kakaotalk', /KAKAOTALK\\s([0-9\\.]+)/],\n ['samsung', /SamsungBrowser\\/([0-9\\.]+)/],\n ['silk', /\\bSilk\\/([0-9._-]+)\\b/],\n ['miui', /MiuiBrowser\\/([0-9\\.]+)$/],\n ['beaker', /BeakerBrowser\\/([0-9\\.]+)/],\n ['edge-chromium', /EdgA?\\/([0-9\\.]+)/],\n [\n 'chromium-webview',\n /(?!Chrom.*OPR)wv\\).*Chrom(?:e|ium)\\/([0-9\\.]+)(:?\\s|$)/,\n ],\n ['chrome', /(?!Chrom.*OPR)Chrom(?:e|ium)\\/([0-9\\.]+)(:?\\s|$)/],\n ['phantomjs', /PhantomJS\\/([0-9\\.]+)(:?\\s|$)/],\n ['crios', /CriOS\\/([0-9\\.]+)(:?\\s|$)/],\n ['firefox', /Firefox\\/([0-9\\.]+)(?:\\s|$)/],\n ['fxios', /FxiOS\\/([0-9\\.]+)/],\n ['opera-mini', /Opera Mini.*Version\\/([0-9\\.]+)/],\n ['opera', /Opera\\/([0-9\\.]+)(?:\\s|$)/],\n ['opera', /OPR\\/([0-9\\.]+)(:?\\s|$)/],\n ['pie', /^Microsoft Pocket Internet Explorer\\/(\\d+\\.\\d+)$/],\n ['pie', /^Mozilla\\/\\d\\.\\d+\\s\\(compatible;\\s(?:MSP?IE|MSInternet Explorer) (\\d+\\.\\d+);.*Windows CE.*\\)$/],\n ['netfront', /^Mozilla\\/\\d\\.\\d+.*NetFront\\/(\\d.\\d)/],\n ['ie', /Trident\\/7\\.0.*rv\\:([0-9\\.]+).*\\).*Gecko$/],\n ['ie', /MSIE\\s([0-9\\.]+);.*Trident\\/[4-7].0/],\n ['ie', /MSIE\\s(7\\.0)/],\n ['bb10', /BB10;\\sTouch.*Version\\/([0-9\\.]+)/],\n ['android', /Android\\s([0-9\\.]+)/],\n ['ios', /Version\\/([0-9\\._]+).*Mobile.*Safari.*/],\n ['safari', /Version\\/([0-9\\._]+).*Safari/],\n ['facebook', /FB[AS]V\\/([0-9\\.]+)/],\n ['instagram', /Instagram\\s([0-9\\.]+)/],\n ['ios-webview', /AppleWebKit\\/([0-9\\.]+).*Mobile/],\n ['ios-webview', /AppleWebKit\\/([0-9\\.]+).*Gecko\\)$/],\n ['curl', /^curl\\/([0-9\\.]+)$/],\n ['searchbot', SEARCHBOX_UA_REGEX],\n];\nvar operatingSystemRules = [\n ['iOS', /iP(hone|od|ad)/],\n ['Android OS', /Android/],\n ['BlackBerry OS', /BlackBerry|BB10/],\n ['Windows Mobile', /IEMobile/],\n ['Amazon OS', /Kindle/],\n ['Windows 3.11', /Win16/],\n ['Windows 95', /(Windows 95)|(Win95)|(Windows_95)/],\n ['Windows 98', /(Windows 98)|(Win98)/],\n ['Windows 2000', /(Windows NT 5.0)|(Windows 2000)/],\n ['Windows XP', /(Windows NT 5.1)|(Windows XP)/],\n ['Windows Server 2003', /(Windows NT 5.2)/],\n ['Windows Vista', /(Windows NT 6.0)/],\n ['Windows 7', /(Windows NT 6.1)/],\n ['Windows 8', /(Windows NT 6.2)/],\n ['Windows 8.1', /(Windows NT 6.3)/],\n ['Windows 10', /(Windows NT 10.0)/],\n ['Windows ME', /Windows ME/],\n ['Windows CE', /Windows CE|WinCE|Microsoft Pocket Internet Explorer/],\n ['Open BSD', /OpenBSD/],\n ['Sun OS', /SunOS/],\n ['Chrome OS', /CrOS/],\n ['Linux', /(Linux)|(X11)/],\n ['Mac OS', /(Mac_PowerPC)|(Macintosh)/],\n ['QNX', /QNX/],\n ['BeOS', /BeOS/],\n ['OS/2', /OS\\/2/],\n];\nexport function detect(userAgent) {\n if (!!userAgent) {\n return parseUserAgent(userAgent);\n }\n if (typeof document === 'undefined' &&\n typeof navigator !== 'undefined' &&\n navigator.product === 'ReactNative') {\n return new ReactNativeInfo();\n }\n if (typeof navigator !== 'undefined') {\n return parseUserAgent(navigator.userAgent);\n }\n return getNodeVersion();\n}\nfunction matchUserAgent(ua) {\n // opted for using reduce here rather than Array#first with a regex.test call\n // this is primarily because using the reduce we only perform the regex\n // execution once rather than once for the test and for the exec again below\n // probably something that needs to be benchmarked though\n return (ua !== '' &&\n userAgentRules.reduce(function (matched, _a) {\n var browser = _a[0], regex = _a[1];\n if (matched) {\n return matched;\n }\n var uaMatch = regex.exec(ua);\n return !!uaMatch && [browser, uaMatch];\n }, false));\n}\nexport function browserName(ua) {\n var data = matchUserAgent(ua);\n return data ? data[0] : null;\n}\nexport function parseUserAgent(ua) {\n var matchedRule = matchUserAgent(ua);\n if (!matchedRule) {\n return null;\n }\n var name = matchedRule[0], match = matchedRule[1];\n if (name === 'searchbot') {\n return new BotInfo();\n }\n // Do not use RegExp for split operation as some browser do not support it (See: http://blog.stevenlevithan.com/archives/cross-browser-split)\n var versionParts = match[1] && match[1].split('.').join('_').split('_').slice(0, 3);\n if (versionParts) {\n if (versionParts.length < REQUIRED_VERSION_PARTS) {\n versionParts = __spreadArray(__spreadArray([], versionParts, true), createVersionParts(REQUIRED_VERSION_PARTS - versionParts.length), true);\n }\n }\n else {\n versionParts = [];\n }\n var version = versionParts.join('.');\n var os = detectOS(ua);\n var searchBotMatch = SEARCHBOT_OS_REGEX.exec(ua);\n if (searchBotMatch && searchBotMatch[1]) {\n return new SearchBotDeviceInfo(name, version, os, searchBotMatch[1]);\n }\n return new BrowserInfo(name, version, os);\n}\nexport function detectOS(ua) {\n for (var ii = 0, count = operatingSystemRules.length; ii < count; ii++) {\n var _a = operatingSystemRules[ii], os = _a[0], regex = _a[1];\n var match = regex.exec(ua);\n if (match) {\n return os;\n }\n }\n return null;\n}\nexport function getNodeVersion() {\n var isNode = typeof process !== 'undefined' && process.version;\n return isNode ? new NodeInfo(process.version.slice(1)) : null;\n}\nfunction createVersionParts(count) {\n var output = [];\n for (var ii = 0; ii < count; ii++) {\n output.push('0');\n }\n return output;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getWindowMetadata = void 0;\nconst window_getters_1 = require(\"@walletconnect/window-getters\");\nfunction getWindowMetadata() {\n let doc;\n let loc;\n try {\n doc = window_getters_1.getDocumentOrThrow();\n loc = window_getters_1.getLocationOrThrow();\n }\n catch (e) {\n return null;\n }\n function getIcons() {\n const links = doc.getElementsByTagName(\"link\");\n const icons = [];\n for (let i = 0; i < links.length; i++) {\n const link = links[i];\n const rel = link.getAttribute(\"rel\");\n if (rel) {\n if (rel.toLowerCase().indexOf(\"icon\") > -1) {\n const href = link.getAttribute(\"href\");\n if (href) {\n if (href.toLowerCase().indexOf(\"https:\") === -1 &&\n href.toLowerCase().indexOf(\"http:\") === -1 &&\n href.indexOf(\"//\") !== 0) {\n let absoluteHref = loc.protocol + \"//\" + loc.host;\n if (href.indexOf(\"/\") === 0) {\n absoluteHref += href;\n }\n else {\n const path = loc.pathname.split(\"/\");\n path.pop();\n const finalPath = path.join(\"/\");\n absoluteHref += finalPath + \"/\" + href;\n }\n icons.push(absoluteHref);\n }\n else if (href.indexOf(\"//\") === 0) {\n const absoluteUrl = loc.protocol + href;\n icons.push(absoluteUrl);\n }\n else {\n icons.push(href);\n }\n }\n }\n }\n }\n return icons;\n }\n function getWindowMetadataOfAny(...args) {\n const metaTags = doc.getElementsByTagName(\"meta\");\n for (let i = 0; i < metaTags.length; i++) {\n const tag = metaTags[i];\n const attributes = [\"itemprop\", \"property\", \"name\"]\n .map((target) => tag.getAttribute(target))\n .filter((attr) => {\n if (attr) {\n return args.includes(attr);\n }\n return false;\n });\n if (attributes.length && attributes) {\n const content = tag.getAttribute(\"content\");\n if (content) {\n return content;\n }\n }\n }\n return \"\";\n }\n function getName() {\n let name = getWindowMetadataOfAny(\"name\", \"og:site_name\", \"og:title\", \"twitter:title\");\n if (!name) {\n name = doc.title;\n }\n return name;\n }\n function getDescription() {\n const description = getWindowMetadataOfAny(\"description\", \"og:description\", \"twitter:description\", \"keywords\");\n return description;\n }\n const name = getName();\n const description = getDescription();\n const url = loc.origin;\n const icons = getIcons();\n const meta = {\n description,\n url,\n icons,\n name,\n };\n return meta;\n}\nexports.getWindowMetadata = getWindowMetadata;\n//# sourceMappingURL=index.js.map","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\n\nvar utils = exports;\nvar BN = require('bn.js');\nvar minAssert = require('minimalistic-assert');\nvar minUtils = require('minimalistic-crypto-utils');\n\nutils.assert = minAssert;\nutils.toArray = minUtils.toArray;\nutils.zero2 = minUtils.zero2;\nutils.toHex = minUtils.toHex;\nutils.encode = minUtils.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n var i;\n for (i = 0; i < naf.length; i += 1) {\n naf[i] = 0;\n }\n\n var ws = 1 << (w + 1);\n var k = num.clone();\n\n for (i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n [],\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n var m8;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n var j;\n var nafW;\n for (j = 0; j < naf.length; j += doubles.step) {\n nafW = 0;\n for (var l = j + doubles.step - 1; l >= j; l--)\n nafW = (nafW << 1) + naf[l];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (j = 0; j < repr.length; j++) {\n nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var l = 0; i >= 0 && naf[i] === 0; i--)\n l++;\n if (i >= 0)\n l++;\n acc = acc.dblp(l);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n var i;\n var j;\n var p;\n for (i = 0; i < len; i++) {\n p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b], /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3, /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (j = 0; j < len; j++) {\n var z = tmp[j];\n p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len));\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null,\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles,\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res,\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction ShortCurve(conf) {\n Base.call(this, 'short', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n\n // If the curve is endomorphic, precalculate beta and lambda\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits(ShortCurve, Base);\nmodule.exports = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n\n // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n // Choose the smallest beta\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n\n // Get basis vectors, used for balanced length-two representation\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16),\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis,\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [ l1, l2 ];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n\n // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1);\n\n // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n var a0;\n var b0;\n // First vector\n var a1;\n var b1;\n // Second vector\n var a2;\n var b2;\n\n var prevR;\n var i = 0;\n var r;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r;\n\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r.neg();\n b2 = x;\n\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n\n // Normalize signs\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 },\n ];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n\n // Calculate answer\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1: k1, k2: k2 };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf)\n return true;\n\n var x = point.x;\n var y = point.y;\n\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd =\n function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n\n // Clean-up references to points and coefficients\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n };\n\nfunction Point(curve, x, y, isRed) {\n Base.BasePoint.call(this, curve, 'affine');\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n // Force redgomery representation when loading from JSON\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits(Point, Base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo)\n return;\n\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul),\n },\n };\n }\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [ this.x, this.y ];\n\n return [ this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1),\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1),\n },\n } ];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string')\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [ res ].concat(pre.doubles.points.map(obj2point)),\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [ res ].concat(pre.naf.points.map(obj2point)),\n },\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf)\n return p;\n\n // P + O = P\n if (p.inf)\n return this;\n\n // P + P = 2P\n if (this.eq(p))\n return this.dbl();\n\n // P + (-P) = O\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n\n // P + Q = O\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n\n // 2P = O\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n\n var a = this.curve.a;\n\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([ this ], [ k ]);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p ||\n this.inf === p.inf &&\n (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate),\n },\n };\n }\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n Base.BasePoint.call(this, curve, 'jacobian');\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n\n this.zOne = this.z === this.curve.one;\n}\ninherits(JPoint, Base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity())\n return p;\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 12M + 4S + 7A\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity())\n return p.toJ();\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 8M + 3S + 7A\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n\n var i;\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n for (i = 0; i < pow; i++)\n r = r.dbl();\n return r;\n }\n\n // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n // Reuse results\n var jyd = jy.redAdd(jy);\n for (i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // T = M ^ 2 - 2*S\n var t = m.redSqr().redISub(s).redISub(s);\n\n // 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2*Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = B^2\n var c = b.redSqr();\n // D = 2 * ((X1 + B)^2 - A - C)\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n // E = 3 * A\n var e = a.redAdd(a).redIAdd(a);\n // F = E^2\n var f = e.redSqr();\n\n // 8 * C\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n\n // X3 = F - 2 * D\n nx = f.redISub(d).redISub(d);\n // Y3 = E * (D - X3) - 8 * C\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n // Z3 = 2 * Y1 * Z1\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n // T = M^2 - 2 * S\n var t = m.redSqr().redISub(s).redISub(s);\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2 * Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n\n // delta = Z1^2\n var delta = this.z.redSqr();\n // gamma = Y1^2\n var gamma = this.y.redSqr();\n // beta = X1 * gamma\n var beta = this.x.redMul(gamma);\n // alpha = 3 * (X1 - delta) * (X1 + delta)\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n // X3 = alpha^2 - 8 * beta\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n // Z3 = (Y1 + Z1)^2 - gamma - delta\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n\n // 4M + 6S + 10A\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // ZZ = Z1^2\n var zz = this.z.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // M = 3 * XX + a * ZZ2; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // MM = M^2\n var mm = m.redSqr();\n // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n // EE = E^2\n var ee = e.redSqr();\n // T = 16*YYYY\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n // U = (M + E)^2 - MM - EE - T\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n // X3 = 4 * (X1 * EE - 4 * YY * U)\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n // Z3 = (Z1 + E)^2 - ZZ - EE\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine')\n return this.eq(p.toJ());\n\n if (this === p)\n return true;\n\n // x1 * z2^2 == x2 * z1^2\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n\n // y1 * z2^3 == y2 * z1^3\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar utils = require('../utils');\n\nfunction MontCurve(conf) {\n Base.call(this, 'mont', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.i4 = new BN(4).toRed(this.red).redInvm();\n this.two = new BN(2).toRed(this.red);\n this.a24 = this.i4.redMul(this.a.redAdd(this.two));\n}\ninherits(MontCurve, Base);\nmodule.exports = MontCurve;\n\nMontCurve.prototype.validate = function validate(point) {\n var x = point.normalize().x;\n var x2 = x.redSqr();\n var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);\n var y = rhs.redSqrt();\n\n return y.redSqr().cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, z) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && z === null) {\n this.x = this.curve.one;\n this.z = this.curve.zero;\n } else {\n this.x = new BN(x, 16);\n this.z = new BN(z, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n }\n}\ninherits(Point, Base.BasePoint);\n\nMontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n return this.point(utils.toArray(bytes, enc), 1);\n};\n\nMontCurve.prototype.point = function point(x, z) {\n return new Point(this, x, z);\n};\n\nMontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nPoint.prototype.precompute = function precompute() {\n // No-op\n};\n\nPoint.prototype._encode = function _encode() {\n return this.getX().toArray('be', this.curve.p.byteLength());\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1] || curve.one);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n\nPoint.prototype.dbl = function dbl() {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-1987-m-3\n // 2M + 2S + 4A\n\n // A = X1 + Z1\n var a = this.x.redAdd(this.z);\n // AA = A^2\n var aa = a.redSqr();\n // B = X1 - Z1\n var b = this.x.redSub(this.z);\n // BB = B^2\n var bb = b.redSqr();\n // C = AA - BB\n var c = aa.redSub(bb);\n // X3 = AA * BB\n var nx = aa.redMul(bb);\n // Z3 = C * (BB + A24 * C)\n var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.add = function add() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.diffAdd = function diffAdd(p, diff) {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-1987-m-3\n // 4M + 2S + 6A\n\n // A = X2 + Z2\n var a = this.x.redAdd(this.z);\n // B = X2 - Z2\n var b = this.x.redSub(this.z);\n // C = X3 + Z3\n var c = p.x.redAdd(p.z);\n // D = X3 - Z3\n var d = p.x.redSub(p.z);\n // DA = D * A\n var da = d.redMul(a);\n // CB = C * B\n var cb = c.redMul(b);\n // X5 = Z1 * (DA + CB)^2\n var nx = diff.z.redMul(da.redAdd(cb).redSqr());\n // Z5 = X1 * (DA - CB)^2\n var nz = diff.x.redMul(da.redISub(cb).redSqr());\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.mul = function mul(k) {\n var t = k.clone();\n var a = this; // (N / 2) * Q + Q\n var b = this.curve.point(null, null); // (N / 2) * Q\n var c = this; // Q\n\n for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1))\n bits.push(t.andln(1));\n\n for (var i = bits.length - 1; i >= 0; i--) {\n if (bits[i] === 0) {\n // N * Q + Q = ((N / 2) * Q + Q)) + (N / 2) * Q\n a = a.diffAdd(b, c);\n // N * Q = 2 * ((N / 2) * Q + Q))\n b = b.dbl();\n } else {\n // N * Q = ((N / 2) * Q + Q) + ((N / 2) * Q)\n b = a.diffAdd(b, c);\n // N * Q + Q = 2 * ((N / 2) * Q + Q)\n a = a.dbl();\n }\n }\n return b;\n};\n\nPoint.prototype.mulAdd = function mulAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.jumlAdd = function jumlAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.eq = function eq(other) {\n return this.getX().cmp(other.getX()) === 0;\n};\n\nPoint.prototype.normalize = function normalize() {\n this.x = this.x.redMul(this.z.redInvm());\n this.z = this.curve.one;\n return this;\n};\n\nPoint.prototype.getX = function getX() {\n // Normalize coordinates\n this.normalize();\n\n return this.x.fromRed();\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction EdwardsCurve(conf) {\n // NOTE: Important as we are creating point in Base.call()\n this.twisted = (conf.a | 0) !== 1;\n this.mOneA = this.twisted && (conf.a | 0) === -1;\n this.extended = this.mOneA;\n\n Base.call(this, 'edwards', conf);\n\n this.a = new BN(conf.a, 16).umod(this.red.m);\n this.a = this.a.toRed(this.red);\n this.c = new BN(conf.c, 16).toRed(this.red);\n this.c2 = this.c.redSqr();\n this.d = new BN(conf.d, 16).toRed(this.red);\n this.dd = this.d.redAdd(this.d);\n\n assert(!this.twisted || this.c.fromRed().cmpn(1) === 0);\n this.oneC = (conf.c | 0) === 1;\n}\ninherits(EdwardsCurve, Base);\nmodule.exports = EdwardsCurve;\n\nEdwardsCurve.prototype._mulA = function _mulA(num) {\n if (this.mOneA)\n return num.redNeg();\n else\n return this.a.redMul(num);\n};\n\nEdwardsCurve.prototype._mulC = function _mulC(num) {\n if (this.oneC)\n return num;\n else\n return this.c.redMul(num);\n};\n\n// Just for compatibility with Short curve\nEdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {\n return this.point(x, y, z, t);\n};\n\nEdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var x2 = x.redSqr();\n var rhs = this.c2.redSub(this.a.redMul(x2));\n var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));\n\n var y2 = rhs.redMul(lhs.redInvm());\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {\n y = new BN(y, 16);\n if (!y.red)\n y = y.toRed(this.red);\n\n // x^2 = (y^2 - c^2) / (c^2 d y^2 - a)\n var y2 = y.redSqr();\n var lhs = y2.redSub(this.c2);\n var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a);\n var x2 = lhs.redMul(rhs.redInvm());\n\n if (x2.cmp(this.zero) === 0) {\n if (odd)\n throw new Error('invalid point');\n else\n return this.point(this.zero, y);\n }\n\n var x = x2.redSqrt();\n if (x.redSqr().redSub(x2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n if (x.fromRed().isOdd() !== odd)\n x = x.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.validate = function validate(point) {\n if (point.isInfinity())\n return true;\n\n // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2)\n point.normalize();\n\n var x2 = point.x.redSqr();\n var y2 = point.y.redSqr();\n var lhs = x2.redMul(this.a).redAdd(y2);\n var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));\n\n return lhs.cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, y, z, t) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && y === null && z === null) {\n this.x = this.curve.zero;\n this.y = this.curve.one;\n this.z = this.curve.one;\n this.t = this.curve.zero;\n this.zOne = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = z ? new BN(z, 16) : this.curve.one;\n this.t = t && new BN(t, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n if (this.t && !this.t.red)\n this.t = this.t.toRed(this.curve.red);\n this.zOne = this.z === this.curve.one;\n\n // Use extended coordinates\n if (this.curve.extended && !this.t) {\n this.t = this.x.redMul(this.y);\n if (!this.zOne)\n this.t = this.t.redMul(this.z.redInvm());\n }\n }\n}\ninherits(Point, Base.BasePoint);\n\nEdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nEdwardsCurve.prototype.point = function point(x, y, z, t) {\n return new Point(this, x, y, z, t);\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1], obj[2]);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.x.cmpn(0) === 0 &&\n (this.y.cmp(this.z) === 0 ||\n (this.zOne && this.y.cmp(this.curve.c) === 0));\n};\n\nPoint.prototype._extDbl = function _extDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #doubling-dbl-2008-hwcd\n // 4M + 4S\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = 2 * Z1^2\n var c = this.z.redSqr();\n c = c.redIAdd(c);\n // D = a * A\n var d = this.curve._mulA(a);\n // E = (X1 + Y1)^2 - A - B\n var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);\n // G = D + B\n var g = d.redAdd(b);\n // F = G - C\n var f = g.redSub(c);\n // H = D - B\n var h = d.redSub(b);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projDbl = function _projDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #doubling-dbl-2008-bbjlp\n // #doubling-dbl-2007-bl\n // and others\n // Generally 3M + 4S or 2M + 4S\n\n // B = (X1 + Y1)^2\n var b = this.x.redAdd(this.y).redSqr();\n // C = X1^2\n var c = this.x.redSqr();\n // D = Y1^2\n var d = this.y.redSqr();\n\n var nx;\n var ny;\n var nz;\n var e;\n var h;\n var j;\n if (this.curve.twisted) {\n // E = a * C\n e = this.curve._mulA(c);\n // F = E + D\n var f = e.redAdd(d);\n if (this.zOne) {\n // X3 = (B - C - D) * (F - 2)\n nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F^2 - 2 * F\n nz = f.redSqr().redSub(f).redSub(f);\n } else {\n // H = Z1^2\n h = this.z.redSqr();\n // J = F - 2 * H\n j = f.redSub(h).redISub(h);\n // X3 = (B-C-D)*J\n nx = b.redSub(c).redISub(d).redMul(j);\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F * J\n nz = f.redMul(j);\n }\n } else {\n // E = C + D\n e = c.redAdd(d);\n // H = (c * Z1)^2\n h = this.curve._mulC(this.z).redSqr();\n // J = E - 2 * H\n j = e.redSub(h).redSub(h);\n // X3 = c * (B - E) * J\n nx = this.curve._mulC(b.redISub(e)).redMul(j);\n // Y3 = c * E * (C - D)\n ny = this.curve._mulC(e).redMul(c.redISub(d));\n // Z3 = E * J\n nz = e.redMul(j);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n // Double in extended coordinates\n if (this.curve.extended)\n return this._extDbl();\n else\n return this._projDbl();\n};\n\nPoint.prototype._extAdd = function _extAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #addition-add-2008-hwcd-3\n // 8M\n\n // A = (Y1 - X1) * (Y2 - X2)\n var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));\n // B = (Y1 + X1) * (Y2 + X2)\n var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));\n // C = T1 * k * T2\n var c = this.t.redMul(this.curve.dd).redMul(p.t);\n // D = Z1 * 2 * Z2\n var d = this.z.redMul(p.z.redAdd(p.z));\n // E = B - A\n var e = b.redSub(a);\n // F = D - C\n var f = d.redSub(c);\n // G = D + C\n var g = d.redAdd(c);\n // H = B + A\n var h = b.redAdd(a);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projAdd = function _projAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #addition-add-2008-bbjlp\n // #addition-add-2007-bl\n // 10M + 1S\n\n // A = Z1 * Z2\n var a = this.z.redMul(p.z);\n // B = A^2\n var b = a.redSqr();\n // C = X1 * X2\n var c = this.x.redMul(p.x);\n // D = Y1 * Y2\n var d = this.y.redMul(p.y);\n // E = d * C * D\n var e = this.curve.d.redMul(c).redMul(d);\n // F = B - E\n var f = b.redSub(e);\n // G = B + E\n var g = b.redAdd(e);\n // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)\n var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);\n var nx = a.redMul(f).redMul(tmp);\n var ny;\n var nz;\n if (this.curve.twisted) {\n // Y3 = A * G * (D - a * C)\n ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));\n // Z3 = F * G\n nz = f.redMul(g);\n } else {\n // Y3 = A * G * (D - C)\n ny = a.redMul(g).redMul(d.redSub(c));\n // Z3 = c * F * G\n nz = this.curve._mulC(f).redMul(g);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.add = function add(p) {\n if (this.isInfinity())\n return p;\n if (p.isInfinity())\n return this;\n\n if (this.curve.extended)\n return this._extAdd(p);\n else\n return this._projAdd(p);\n};\n\nPoint.prototype.mul = function mul(k) {\n if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, false);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, true);\n};\n\nPoint.prototype.normalize = function normalize() {\n if (this.zOne)\n return this;\n\n // Normalize coordinates\n var zi = this.z.redInvm();\n this.x = this.x.redMul(zi);\n this.y = this.y.redMul(zi);\n if (this.t)\n this.t = this.t.redMul(zi);\n this.z = this.curve.one;\n this.zOne = true;\n return this;\n};\n\nPoint.prototype.neg = function neg() {\n return this.curve.point(this.x.redNeg(),\n this.y,\n this.z,\n this.t && this.t.redNeg());\n};\n\nPoint.prototype.getX = function getX() {\n this.normalize();\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n this.normalize();\n return this.y.fromRed();\n};\n\nPoint.prototype.eq = function eq(other) {\n return this === other ||\n this.getX().cmp(other.getX()) === 0 &&\n this.getY().cmp(other.getY()) === 0;\n};\n\nPoint.prototype.eqXToP = function eqXToP(x) {\n var rx = x.toRed(this.curve.red).redMul(this.z);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(this.z);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\n// Compatibility with BaseCurve\nPoint.prototype.toP = Point.prototype.normalize;\nPoint.prototype.mixedAdd = Point.prototype.add;\n","'use strict';\n\nvar curve = exports;\n\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');\n","module.exports = {\n doubles: {\n step: 4,\n points: [\n [\n 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',\n 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821',\n ],\n [\n '8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',\n '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf',\n ],\n [\n '175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',\n 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695',\n ],\n [\n '363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',\n '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9',\n ],\n [\n '8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',\n '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36',\n ],\n [\n '723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',\n '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f',\n ],\n [\n 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',\n '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999',\n ],\n [\n '100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',\n 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09',\n ],\n [\n 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',\n '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d',\n ],\n [\n 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',\n 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088',\n ],\n [\n 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',\n '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d',\n ],\n [\n '53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',\n '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8',\n ],\n [\n '8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',\n '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a',\n ],\n [\n '385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',\n '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453',\n ],\n [\n '6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',\n '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160',\n ],\n [\n '3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',\n '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0',\n ],\n [\n '85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',\n '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6',\n ],\n [\n '948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',\n '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589',\n ],\n [\n '6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',\n 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17',\n ],\n [\n 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',\n '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda',\n ],\n [\n 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',\n '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd',\n ],\n [\n '213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',\n '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2',\n ],\n [\n '4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',\n '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6',\n ],\n [\n 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',\n '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f',\n ],\n [\n '76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',\n 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01',\n ],\n [\n 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',\n '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3',\n ],\n [\n 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',\n 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f',\n ],\n [\n 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',\n '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7',\n ],\n [\n 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',\n 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78',\n ],\n [\n 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',\n '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1',\n ],\n [\n '90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',\n 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150',\n ],\n [\n '8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',\n '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82',\n ],\n [\n 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',\n '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc',\n ],\n [\n '8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',\n 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b',\n ],\n [\n 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',\n '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51',\n ],\n [\n 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',\n '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45',\n ],\n [\n 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',\n 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120',\n ],\n [\n '324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',\n '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84',\n ],\n [\n '4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',\n '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d',\n ],\n [\n '9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',\n 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d',\n ],\n [\n '6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',\n '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8',\n ],\n [\n 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',\n '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8',\n ],\n [\n '7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',\n '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac',\n ],\n [\n '928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',\n 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f',\n ],\n [\n '85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',\n '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962',\n ],\n [\n 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',\n '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907',\n ],\n [\n '827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',\n 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec',\n ],\n [\n 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',\n 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d',\n ],\n [\n 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',\n '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414',\n ],\n [\n '1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',\n 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd',\n ],\n [\n '146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',\n 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0',\n ],\n [\n 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',\n '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811',\n ],\n [\n 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',\n '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1',\n ],\n [\n 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',\n '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c',\n ],\n [\n '174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',\n 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73',\n ],\n [\n '959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',\n '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd',\n ],\n [\n 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',\n 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405',\n ],\n [\n '64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',\n 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589',\n ],\n [\n '8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',\n '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e',\n ],\n [\n '13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',\n '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27',\n ],\n [\n 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',\n 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1',\n ],\n [\n '8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',\n '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482',\n ],\n [\n '8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',\n '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945',\n ],\n [\n 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',\n '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573',\n ],\n [\n 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',\n 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82',\n ],\n ],\n },\n naf: {\n wnd: 7,\n points: [\n [\n 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',\n '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672',\n ],\n [\n '2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',\n 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6',\n ],\n [\n '5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',\n '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da',\n ],\n [\n 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',\n 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37',\n ],\n [\n '774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',\n 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b',\n ],\n [\n 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',\n 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81',\n ],\n [\n 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',\n '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58',\n ],\n [\n 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',\n '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77',\n ],\n [\n '2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',\n '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a',\n ],\n [\n '352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',\n '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c',\n ],\n [\n '2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',\n '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67',\n ],\n [\n '9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',\n '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402',\n ],\n [\n 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',\n 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55',\n ],\n [\n 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',\n '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482',\n ],\n [\n '6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',\n 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82',\n ],\n [\n '1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',\n 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396',\n ],\n [\n '605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',\n '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49',\n ],\n [\n '62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',\n '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf',\n ],\n [\n '80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',\n '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a',\n ],\n [\n '7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',\n 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7',\n ],\n [\n 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',\n 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933',\n ],\n [\n '49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',\n '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a',\n ],\n [\n '77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',\n '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6',\n ],\n [\n 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',\n 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37',\n ],\n [\n '463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',\n '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e',\n ],\n [\n 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',\n 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6',\n ],\n [\n 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',\n 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476',\n ],\n [\n '2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',\n '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40',\n ],\n [\n '7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',\n '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61',\n ],\n [\n '754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',\n '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683',\n ],\n [\n 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',\n '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5',\n ],\n [\n '186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',\n '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b',\n ],\n [\n 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',\n '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417',\n ],\n [\n '5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',\n 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868',\n ],\n [\n '290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',\n 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a',\n ],\n [\n 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',\n 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6',\n ],\n [\n '766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',\n '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996',\n ],\n [\n '59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',\n 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e',\n ],\n [\n 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',\n 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d',\n ],\n [\n '7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',\n '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2',\n ],\n [\n '948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',\n 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e',\n ],\n [\n '7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',\n '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437',\n ],\n [\n '3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',\n 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311',\n ],\n [\n 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',\n '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4',\n ],\n [\n '1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',\n '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575',\n ],\n [\n '733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',\n 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d',\n ],\n [\n '15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',\n 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d',\n ],\n [\n 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',\n 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629',\n ],\n [\n 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',\n 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06',\n ],\n [\n '311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',\n '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374',\n ],\n [\n '34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',\n '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee',\n ],\n [\n 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',\n '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1',\n ],\n [\n 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',\n 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b',\n ],\n [\n '32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',\n '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661',\n ],\n [\n '7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',\n '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6',\n ],\n [\n 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',\n '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e',\n ],\n [\n '16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',\n '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d',\n ],\n [\n 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',\n 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc',\n ],\n [\n '78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',\n 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4',\n ],\n [\n '494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',\n '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c',\n ],\n [\n 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',\n '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b',\n ],\n [\n 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',\n '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913',\n ],\n [\n '841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',\n '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154',\n ],\n [\n '5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',\n '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865',\n ],\n [\n '36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',\n 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc',\n ],\n [\n '336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',\n 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224',\n ],\n [\n '8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',\n '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e',\n ],\n [\n '1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',\n '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6',\n ],\n [\n '85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',\n '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511',\n ],\n [\n '29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',\n 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b',\n ],\n [\n 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',\n 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2',\n ],\n [\n '4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',\n 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c',\n ],\n [\n 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',\n '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3',\n ],\n [\n 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',\n '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d',\n ],\n [\n 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',\n '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700',\n ],\n [\n 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',\n '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4',\n ],\n [\n '591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',\n 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196',\n ],\n [\n '11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',\n '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4',\n ],\n [\n '3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',\n 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257',\n ],\n [\n 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',\n 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13',\n ],\n [\n 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',\n '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096',\n ],\n [\n 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',\n 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38',\n ],\n [\n 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',\n '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f',\n ],\n [\n '347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',\n '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448',\n ],\n [\n 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',\n '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a',\n ],\n [\n 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',\n '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4',\n ],\n [\n '4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',\n '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437',\n ],\n [\n '3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',\n 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7',\n ],\n [\n 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',\n '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d',\n ],\n [\n 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',\n '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a',\n ],\n [\n 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',\n '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54',\n ],\n [\n '48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',\n '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77',\n ],\n [\n 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',\n 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517',\n ],\n [\n '6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',\n 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10',\n ],\n [\n 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',\n 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125',\n ],\n [\n 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',\n '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e',\n ],\n [\n '13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',\n 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1',\n ],\n [\n 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',\n '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2',\n ],\n [\n 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',\n '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423',\n ],\n [\n 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',\n '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8',\n ],\n [\n '8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',\n 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758',\n ],\n [\n '52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',\n 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375',\n ],\n [\n 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',\n '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d',\n ],\n [\n '7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',\n 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec',\n ],\n [\n '5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',\n '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0',\n ],\n [\n '32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',\n 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c',\n ],\n [\n 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',\n 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4',\n ],\n [\n '8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',\n 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f',\n ],\n [\n '4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',\n '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649',\n ],\n [\n '3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',\n 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826',\n ],\n [\n '674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',\n '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5',\n ],\n [\n 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',\n 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87',\n ],\n [\n '30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',\n '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b',\n ],\n [\n 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',\n '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc',\n ],\n [\n '93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',\n '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c',\n ],\n [\n 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',\n 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f',\n ],\n [\n 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',\n '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a',\n ],\n [\n 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',\n 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46',\n ],\n [\n '463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',\n 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f',\n ],\n [\n '7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',\n '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03',\n ],\n [\n '74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',\n 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08',\n ],\n [\n '30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',\n '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8',\n ],\n [\n '9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',\n '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373',\n ],\n [\n '176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',\n 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3',\n ],\n [\n '75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',\n '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8',\n ],\n [\n '809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',\n '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1',\n ],\n [\n '1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',\n '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9',\n ],\n ],\n },\n};\n","'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\nvar curve = require('./curve');\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve.edwards(options);\n else\n this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve,\n });\n return curve;\n },\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811',\n ],\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34',\n ],\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5',\n ],\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f',\n ],\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650',\n ],\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9',\n ],\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658',\n ],\n});\n\nvar pre;\ntry {\n pre = require('./precomputed/secp256k1');\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3',\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15',\n },\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre,\n ],\n});\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction KeyPair(ec, options) {\n this.ec = ec;\n this.priv = null;\n this.pub = null;\n\n // KeyPair(ec, { priv: ..., pub: ... })\n if (options.priv)\n this._importPrivate(options.priv, options.privEnc);\n if (options.pub)\n this._importPublic(options.pub, options.pubEnc);\n}\nmodule.exports = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n if (pub instanceof KeyPair)\n return pub;\n\n return new KeyPair(ec, {\n pub: pub,\n pubEnc: enc,\n });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n if (priv instanceof KeyPair)\n return priv;\n\n return new KeyPair(ec, {\n priv: priv,\n privEnc: enc,\n });\n};\n\nKeyPair.prototype.validate = function validate() {\n var pub = this.getPublic();\n\n if (pub.isInfinity())\n return { result: false, reason: 'Invalid public key' };\n if (!pub.validate())\n return { result: false, reason: 'Public key is not a point' };\n if (!pub.mul(this.ec.curve.n).isInfinity())\n return { result: false, reason: 'Public key * N != O' };\n\n return { result: true, reason: null };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n // compact is optional argument\n if (typeof compact === 'string') {\n enc = compact;\n compact = null;\n }\n\n if (!this.pub)\n this.pub = this.ec.g.mul(this.priv);\n\n if (!enc)\n return this.pub;\n\n return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n if (enc === 'hex')\n return this.priv.toString(16, 2);\n else\n return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n this.priv = new BN(key, enc || 16);\n\n // Ensure that the priv won't be bigger than n, otherwise we may fail\n // in fixed multiplication method\n this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n if (key.x || key.y) {\n // Montgomery points only have an `x` coordinate.\n // Weierstrass/Edwards points on the other hand have both `x` and\n // `y` coordinates.\n if (this.ec.curve.type === 'mont') {\n assert(key.x, 'Need x coordinate');\n } else if (this.ec.curve.type === 'short' ||\n this.ec.curve.type === 'edwards') {\n assert(key.x && key.y, 'Need both x and y coordinate');\n }\n this.pub = this.ec.curve.point(key.x, key.y);\n return;\n }\n this.pub = this.ec.curve.decodePoint(key, enc);\n};\n\n// ECDH\nKeyPair.prototype.derive = function derive(pub) {\n if(!pub.validate()) {\n assert(pub.validate(), 'public point not validated');\n }\n return pub.mul(this.priv).getX();\n};\n\n// ECDSA\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature) {\n return this.ec.verify(msg, signature, this);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n return '';\n};\n","'use strict';\n\nvar BN = require('bn.js');\n\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature)\n return options;\n\n if (this._importDER(options, enc))\n return;\n\n assert(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined)\n this.recoveryParam = null;\n else\n this.recoveryParam = options.recoveryParam;\n}\nmodule.exports = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n if (!(initial & 0x80)) {\n return initial;\n }\n var octetLen = initial & 0xf;\n\n // Indefinite length or overflow\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n\n if(buf[p.place] === 0x00) {\n return false;\n }\n\n var val = 0;\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n }\n\n // Leading zeroes\n if (val <= 0x7f) {\n return false;\n }\n\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n if (i === 0) {\n return buf;\n }\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils.toArray(data, enc);\n var p = new Position();\n if (data[p.place++] !== 0x30) {\n return false;\n }\n var len = getLength(data, p);\n if (len === false) {\n return false;\n }\n if ((len + p.place) !== data.length) {\n return false;\n }\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var rlen = getLength(data, p);\n if (rlen === false) {\n return false;\n }\n if ((data[p.place] & 128) !== 0) {\n return false;\n }\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var slen = getLength(data, p);\n if (slen === false) {\n return false;\n }\n if (data.length !== slen + p.place) {\n return false;\n }\n if ((data[p.place] & 128) !== 0) {\n return false;\n }\n var s = data.slice(p.place, slen + p.place);\n if (r[0] === 0) {\n if (r[1] & 0x80) {\n r = r.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n if (s[0] === 0) {\n if (s[1] & 0x80) {\n s = s.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n while (--octets) {\n arr.push((len >>> (octets << 3)) & 0xff);\n }\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray();\n\n // Pad values\n if (r[0] & 0x80)\n r = [ 0 ].concat(r);\n // Pad values\n if (s[0] & 0x80)\n s = [ 0 ].concat(s);\n\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n var arr = [ 0x02 ];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [ 0x30 ];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils.encode(res, enc);\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar HmacDRBG = require('hmac-drbg');\nvar utils = require('../utils');\nvar curves = require('../curves');\nvar rand = require('brorand');\nvar assert = utils.assert;\n\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EC(options) {\n if (!(this instanceof EC))\n return new EC(options);\n\n // Shortcut `elliptic.ec(curve-name)`\n if (typeof options === 'string') {\n assert(Object.prototype.hasOwnProperty.call(curves, options),\n 'Unknown curve ' + options);\n\n options = curves[options];\n }\n\n // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n if (options instanceof curves.PresetCurve)\n options = { curve: options };\n\n this.curve = options.curve.curve;\n this.n = this.curve.n;\n this.nh = this.n.ushrn(1);\n this.g = this.curve.g;\n\n // Point on curve\n this.g = options.curve.g;\n this.g.precompute(options.curve.n.bitLength() + 1);\n\n // Hash for function for DRBG\n this.hash = options.hash || options.curve.hash;\n}\nmodule.exports = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n return new KeyPair(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n return KeyPair.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n return KeyPair.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n if (!options)\n options = {};\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n entropy: options.entropy || rand(this.hash.hmacStrength),\n entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n nonce: this.n.toArray(),\n });\n\n var bytes = this.n.byteLength();\n var ns2 = this.n.sub(new BN(2));\n for (;;) {\n var priv = new BN(drbg.generate(bytes));\n if (priv.cmp(ns2) > 0)\n continue;\n\n priv.iaddn(1);\n return this.keyFromPrivate(priv);\n }\n};\n\nEC.prototype._truncateToN = function _truncateToN(msg, truncOnly) {\n var delta = msg.byteLength() * 8 - this.n.bitLength();\n if (delta > 0)\n msg = msg.ushrn(delta);\n if (!truncOnly && msg.cmp(this.n) >= 0)\n return msg.sub(this.n);\n else\n return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n if (typeof enc === 'object') {\n options = enc;\n enc = null;\n }\n if (!options)\n options = {};\n\n key = this.keyFromPrivate(key, enc);\n msg = this._truncateToN(new BN(msg, 16));\n\n // Zero-extend key to provide enough entropy\n var bytes = this.n.byteLength();\n var bkey = key.getPrivate().toArray('be', bytes);\n\n // Zero-extend nonce to have the same byte size as N\n var nonce = msg.toArray('be', bytes);\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n entropy: bkey,\n nonce: nonce,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n });\n\n // Number of bytes to generate\n var ns1 = this.n.sub(new BN(1));\n\n for (var iter = 0; ; iter++) {\n var k = options.k ?\n options.k(iter) :\n new BN(drbg.generate(this.n.byteLength()));\n k = this._truncateToN(k, true);\n if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)\n continue;\n\n var kp = this.g.mul(k);\n if (kp.isInfinity())\n continue;\n\n var kpX = kp.getX();\n var r = kpX.umod(this.n);\n if (r.cmpn(0) === 0)\n continue;\n\n var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n s = s.umod(this.n);\n if (s.cmpn(0) === 0)\n continue;\n\n var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |\n (kpX.cmp(r) !== 0 ? 2 : 0);\n\n // Use complement of `s`, if it is > `n / 2`\n if (options.canonical && s.cmp(this.nh) > 0) {\n s = this.n.sub(s);\n recoveryParam ^= 1;\n }\n\n return new Signature({ r: r, s: s, recoveryParam: recoveryParam });\n }\n};\n\nEC.prototype.verify = function verify(msg, signature, key, enc) {\n msg = this._truncateToN(new BN(msg, 16));\n key = this.keyFromPublic(key, enc);\n signature = new Signature(signature, 'hex');\n\n // Perform primitive values validation\n var r = signature.r;\n var s = signature.s;\n if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)\n return false;\n if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)\n return false;\n\n // Validate signature\n var sinv = s.invm(this.n);\n var u1 = sinv.mul(msg).umod(this.n);\n var u2 = sinv.mul(r).umod(this.n);\n var p;\n\n if (!this.curve._maxwellTrick) {\n p = this.g.mulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n return p.getX().umod(this.n).cmp(r) === 0;\n }\n\n // NOTE: Greg Maxwell's trick, inspired by:\n // https://git.io/vad3K\n\n p = this.g.jmulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n // Compare `p.x` of Jacobian point with `r`,\n // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n // inverse of `p.z^2`\n return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function(msg, signature, j, enc) {\n assert((3 & j) === j, 'The recovery param is more than two bits');\n signature = new Signature(signature, enc);\n\n var n = this.n;\n var e = new BN(msg);\n var r = signature.r;\n var s = signature.s;\n\n // A set LSB signifies that the y-coordinate is odd\n var isYOdd = j & 1;\n var isSecondKey = j >> 1;\n if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)\n throw new Error('Unable to find sencond key candinate');\n\n // 1.1. Let x = r + jn.\n if (isSecondKey)\n r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);\n else\n r = this.curve.pointFromX(r, isYOdd);\n\n var rInv = signature.r.invm(n);\n var s1 = n.sub(e).mul(rInv).umod(n);\n var s2 = s.mul(rInv).umod(n);\n\n // 1.6.1 Compute Q = r^-1 (sR - eG)\n // Q = r^-1 (sR + -eG)\n return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {\n signature = new Signature(signature, enc);\n if (signature.recoveryParam !== null)\n return signature.recoveryParam;\n\n for (var i = 0; i < 4; i++) {\n var Qprime;\n try {\n Qprime = this.recoverPubKey(e, signature, i);\n } catch (e) {\n continue;\n }\n\n if (Qprime.eq(Q))\n return i;\n }\n throw new Error('Unable to find valid recovery factor');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar cachedProperty = utils.cachedProperty;\n\n/**\n* @param {EDDSA} eddsa - instance\n* @param {Object} params - public/private key parameters\n*\n* @param {Array} [params.secret] - secret seed bytes\n* @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)\n* @param {Array} [params.pub] - public key point encoded as bytes\n*\n*/\nfunction KeyPair(eddsa, params) {\n this.eddsa = eddsa;\n this._secret = parseBytes(params.secret);\n if (eddsa.isPoint(params.pub))\n this._pub = params.pub;\n else\n this._pubBytes = parseBytes(params.pub);\n}\n\nKeyPair.fromPublic = function fromPublic(eddsa, pub) {\n if (pub instanceof KeyPair)\n return pub;\n return new KeyPair(eddsa, { pub: pub });\n};\n\nKeyPair.fromSecret = function fromSecret(eddsa, secret) {\n if (secret instanceof KeyPair)\n return secret;\n return new KeyPair(eddsa, { secret: secret });\n};\n\nKeyPair.prototype.secret = function secret() {\n return this._secret;\n};\n\ncachedProperty(KeyPair, 'pubBytes', function pubBytes() {\n return this.eddsa.encodePoint(this.pub());\n});\n\ncachedProperty(KeyPair, 'pub', function pub() {\n if (this._pubBytes)\n return this.eddsa.decodePoint(this._pubBytes);\n return this.eddsa.g.mul(this.priv());\n});\n\ncachedProperty(KeyPair, 'privBytes', function privBytes() {\n var eddsa = this.eddsa;\n var hash = this.hash();\n var lastIx = eddsa.encodingLength - 1;\n\n var a = hash.slice(0, eddsa.encodingLength);\n a[0] &= 248;\n a[lastIx] &= 127;\n a[lastIx] |= 64;\n\n return a;\n});\n\ncachedProperty(KeyPair, 'priv', function priv() {\n return this.eddsa.decodeInt(this.privBytes());\n});\n\ncachedProperty(KeyPair, 'hash', function hash() {\n return this.eddsa.hash().update(this.secret()).digest();\n});\n\ncachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {\n return this.hash().slice(this.eddsa.encodingLength);\n});\n\nKeyPair.prototype.sign = function sign(message) {\n assert(this._secret, 'KeyPair can only verify');\n return this.eddsa.sign(message, this);\n};\n\nKeyPair.prototype.verify = function verify(message, sig) {\n return this.eddsa.verify(message, sig, this);\n};\n\nKeyPair.prototype.getSecret = function getSecret(enc) {\n assert(this._secret, 'KeyPair is public only');\n return utils.encode(this.secret(), enc);\n};\n\nKeyPair.prototype.getPublic = function getPublic(enc) {\n return utils.encode(this.pubBytes(), enc);\n};\n\nmodule.exports = KeyPair;\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar cachedProperty = utils.cachedProperty;\nvar parseBytes = utils.parseBytes;\n\n/**\n* @param {EDDSA} eddsa - eddsa instance\n* @param {Array|Object} sig -\n* @param {Array|Point} [sig.R] - R point as Point or bytes\n* @param {Array|bn} [sig.S] - S scalar as bn or bytes\n* @param {Array} [sig.Rencoded] - R point encoded\n* @param {Array} [sig.Sencoded] - S scalar encoded\n*/\nfunction Signature(eddsa, sig) {\n this.eddsa = eddsa;\n\n if (typeof sig !== 'object')\n sig = parseBytes(sig);\n\n if (Array.isArray(sig)) {\n assert(sig.length === eddsa.encodingLength * 2, 'Signature has invalid size');\n sig = {\n R: sig.slice(0, eddsa.encodingLength),\n S: sig.slice(eddsa.encodingLength),\n };\n }\n\n assert(sig.R && sig.S, 'Signature without R or S');\n\n if (eddsa.isPoint(sig.R))\n this._R = sig.R;\n if (sig.S instanceof BN)\n this._S = sig.S;\n\n this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;\n this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;\n}\n\ncachedProperty(Signature, 'S', function S() {\n return this.eddsa.decodeInt(this.Sencoded());\n});\n\ncachedProperty(Signature, 'R', function R() {\n return this.eddsa.decodePoint(this.Rencoded());\n});\n\ncachedProperty(Signature, 'Rencoded', function Rencoded() {\n return this.eddsa.encodePoint(this.R());\n});\n\ncachedProperty(Signature, 'Sencoded', function Sencoded() {\n return this.eddsa.encodeInt(this.S());\n});\n\nSignature.prototype.toBytes = function toBytes() {\n return this.Rencoded().concat(this.Sencoded());\n};\n\nSignature.prototype.toHex = function toHex() {\n return utils.encode(this.toBytes(), 'hex').toUpperCase();\n};\n\nmodule.exports = Signature;\n","'use strict';\n\nvar hash = require('hash.js');\nvar curves = require('../curves');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EDDSA(curve) {\n assert(curve === 'ed25519', 'only tested with ed25519 so far');\n\n if (!(this instanceof EDDSA))\n return new EDDSA(curve);\n\n curve = curves[curve].curve;\n this.curve = curve;\n this.g = curve.g;\n this.g.precompute(curve.n.bitLength() + 1);\n\n this.pointClass = curve.point().constructor;\n this.encodingLength = Math.ceil(curve.n.bitLength() / 8);\n this.hash = hash.sha512;\n}\n\nmodule.exports = EDDSA;\n\n/**\n* @param {Array|String} message - message bytes\n* @param {Array|String|KeyPair} secret - secret bytes or a keypair\n* @returns {Signature} - signature\n*/\nEDDSA.prototype.sign = function sign(message, secret) {\n message = parseBytes(message);\n var key = this.keyFromSecret(secret);\n var r = this.hashInt(key.messagePrefix(), message);\n var R = this.g.mul(r);\n var Rencoded = this.encodePoint(R);\n var s_ = this.hashInt(Rencoded, key.pubBytes(), message)\n .mul(key.priv());\n var S = r.add(s_).umod(this.curve.n);\n return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });\n};\n\n/**\n* @param {Array} message - message bytes\n* @param {Array|String|Signature} sig - sig bytes\n* @param {Array|String|Point|KeyPair} pub - public key\n* @returns {Boolean} - true if public key matches sig of message\n*/\nEDDSA.prototype.verify = function verify(message, sig, pub) {\n message = parseBytes(message);\n sig = this.makeSignature(sig);\n if (sig.S().gte(sig.eddsa.curve.n) || sig.S().isNeg()) {\n return false;\n }\n var key = this.keyFromPublic(pub);\n var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);\n var SG = this.g.mul(sig.S());\n var RplusAh = sig.R().add(key.pub().mul(h));\n return RplusAh.eq(SG);\n};\n\nEDDSA.prototype.hashInt = function hashInt() {\n var hash = this.hash();\n for (var i = 0; i < arguments.length; i++)\n hash.update(arguments[i]);\n return utils.intFromLE(hash.digest()).umod(this.curve.n);\n};\n\nEDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {\n return KeyPair.fromPublic(this, pub);\n};\n\nEDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {\n return KeyPair.fromSecret(this, secret);\n};\n\nEDDSA.prototype.makeSignature = function makeSignature(sig) {\n if (sig instanceof Signature)\n return sig;\n return new Signature(this, sig);\n};\n\n/**\n* * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2\n*\n* EDDSA defines methods for encoding and decoding points and integers. These are\n* helper convenience methods, that pass along to utility functions implied\n* parameters.\n*\n*/\nEDDSA.prototype.encodePoint = function encodePoint(point) {\n var enc = point.getY().toArray('le', this.encodingLength);\n enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0;\n return enc;\n};\n\nEDDSA.prototype.decodePoint = function decodePoint(bytes) {\n bytes = utils.parseBytes(bytes);\n\n var lastIx = bytes.length - 1;\n var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80);\n var xIsOdd = (bytes[lastIx] & 0x80) !== 0;\n\n var y = utils.intFromLE(normed);\n return this.curve.pointFromY(y, xIsOdd);\n};\n\nEDDSA.prototype.encodeInt = function encodeInt(num) {\n return num.toArray('le', this.encodingLength);\n};\n\nEDDSA.prototype.decodeInt = function decodeInt(bytes) {\n return utils.intFromLE(bytes);\n};\n\nEDDSA.prototype.isPoint = function isPoint(val) {\n return val instanceof this.pointClass;\n};\n","'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = require('../package.json').version;\nelliptic.utils = require('./elliptic/utils');\nelliptic.rand = require('brorand');\nelliptic.curve = require('./elliptic/curve');\nelliptic.curves = require('./elliptic/curves');\n\n// Protocols\nelliptic.ec = require('./elliptic/ec');\nelliptic.eddsa = require('./elliptic/eddsa');\n","import{detect as ot}from\"detect-browser\";import{toMiliseconds as ee,FIVE_MINUTES as Ie,fromMiliseconds as st}from\"@walletconnect/time\";import{getDocument as ne,getNavigator as je,getLocation as Te}from\"@walletconnect/window-getters\";import{getWindowMetadata as it}from\"@walletconnect/window-metadata\";import*as q from\"query-string\";import{hashMessage as Pe}from\"@ethersproject/hash\";import{recoverAddress as ct}from\"@ethersproject/transactions\";import{ChaCha20Poly1305 as Ae}from\"@stablelib/chacha20poly1305\";import{HKDF as at}from\"@stablelib/hkdf\";import{randomBytes as B}from\"@stablelib/random\";import{SHA256 as Ce,hash as Ue}from\"@stablelib/sha256\";import*as _e from\"@stablelib/x25519\";import{toString as v,fromString as w,concat as te}from\"uint8arrays\";import{ec as ut}from\"elliptic\";import{decodeJWT as lt}from\"@walletconnect/relay-auth\";import{RELAY_JSONRPC as dt}from\"@walletconnect/relay-api\";const H=\":\";function re(e){const[n,t]=e.split(H);return{namespace:n,reference:t}}function ke(e){const{namespace:n,reference:t}=e;return[n,t].join(H)}function oe(e){const[n,t,r]=e.split(H);return{namespace:n,reference:t,address:r}}function De(e){const{namespace:n,reference:t,address:r}=e;return[n,t,r].join(H)}function se(e,n){const t=[];return e.forEach(r=>{const o=n(r);t.includes(o)||t.push(o)}),t}function xe(e){const{address:n}=oe(e);return n}function Ve(e){const{namespace:n,reference:t}=oe(e);return ke({namespace:n,reference:t})}function ft(e,n){const{namespace:t,reference:r}=re(n);return De({namespace:t,reference:r,address:e})}function pt(e){return se(e,xe)}function Me(e){return se(e,Ve)}function mt(e,n=[]){const t=[];return Object.keys(e).forEach(r=>{if(n.length&&!n.includes(r))return;const o=e[r];t.push(...o.accounts)}),t}function ht(e,n=[]){const t=[];return Object.keys(e).forEach(r=>{if(n.length&&!n.includes(r))return;const o=e[r];t.push(...Me(o.accounts))}),t}function yt(e,n=[]){const t=[];return Object.keys(e).forEach(r=>{if(n.length&&!n.includes(r))return;const o=e[r];t.push(...W(r,o))}),t}function W(e,n){return e.includes(\":\")?[e]:n.chains||[]}var gt=Object.defineProperty,Ke=Object.getOwnPropertySymbols,vt=Object.prototype.hasOwnProperty,bt=Object.prototype.propertyIsEnumerable,Le=(e,n,t)=>n in e?gt(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,Fe=(e,n)=>{for(var t in n||(n={}))vt.call(n,t)&&Le(e,t,n[t]);if(Ke)for(var t of Ke(n))bt.call(n,t)&&Le(e,t,n[t]);return e};const qe=\"ReactNative\",y={reactNative:\"react-native\",node:\"node\",browser:\"browser\",unknown:\"unknown\"},J=\" \",Et=\":\",Be=\"/\",ie=2,wt=1e3,He=\"js\";function ce(){return typeof process<\"u\"&&typeof process.versions<\"u\"&&typeof process.versions.node<\"u\"}function _(){return!ne()&&!!je()&&navigator.product===qe}function V(){return!ce()&&!!je()&&!!ne()}function P(){return _()?y.reactNative:ce()?y.node:V()?y.browser:y.unknown}function Ot(){var e;try{return _()&&typeof global<\"u\"&&typeof(global==null?void 0:global.Application)<\"u\"?(e=global.Application)==null?void 0:e.applicationId:void 0}catch{return}}function We(e,n){let t=q.parse(e);return t=Fe(Fe({},t),n),e=q.stringify(t),e}function Nt(){return it()||{name:\"\",description:\"\",url:\"\",icons:[\"\"]}}function St(e,n){var t;const r=P(),o={protocol:e,version:n,env:r};return r===\"browser\"&&(o.host=((t=Te())==null?void 0:t.host)||\"unknown\"),o}function Je(){if(P()===y.reactNative&&typeof global<\"u\"&&typeof(global==null?void 0:global.Platform)<\"u\"){const{OS:t,Version:r}=global.Platform;return[t,r].join(\"-\")}const e=ot();if(e===null)return\"unknown\";const n=e.os?e.os.replace(\" \",\"\").toLowerCase():\"unknown\";return e.type===\"browser\"?[n,e.name,e.version].join(\"-\"):[n,e.version].join(\"-\")}function ze(){var e;const n=P();return n===y.browser?[n,((e=Te())==null?void 0:e.host)||\"unknown\"].join(\":\"):n}function Ge(e,n,t){const r=Je(),o=ze();return[[e,n].join(\"-\"),[He,t].join(\"-\"),r,o].join(\"/\")}function $t({protocol:e,version:n,relayUrl:t,sdkVersion:r,auth:o,projectId:s,useOnCloseEvent:i,bundleId:u}){const l=t.split(\"?\"),c=Ge(e,n,r),d={auth:o,ua:c,projectId:s,useOnCloseEvent:i||void 0,origin:u||void 0},a=We(l[1]||\"\",d);return l[0]+\"?\"+a}function Rt(e){let n=(e.match(/^[^:]+(?=:\\/\\/)/gi)||[])[0];const t=typeof n<\"u\"?e.split(\"://\")[1]:e;return n=n===\"wss\"?\"https\":\"http\",[n,t].join(\"://\")}function It(e,n,t){if(!e[n]||typeof e[n]!==t)throw new Error(`Missing or invalid \"${n}\" param`)}function Ye(e,n=ie){return Qe(e.split(Be),n)}function jt(e){return Ye(e).join(J)}function $(e,n){return e.filter(t=>n.includes(t)).length===e.length}function Qe(e,n=ie){return e.slice(Math.max(e.length-n,0))}function Tt(e){return Object.fromEntries(e.entries())}function Pt(e){return new Map(Object.entries(e))}function At(e,n){const t={};return Object.keys(e).forEach(r=>{t[r]=n(e[r])}),t}const Ct=e=>e;function Ze(e){return e.trim().replace(/^\\w/,n=>n.toUpperCase())}function Ut(e){return e.split(J).map(n=>Ze(n)).join(J)}function _t(e=Ie,n){const t=ee(e||Ie);let r,o,s;return{resolve:i=>{s&&r&&(clearTimeout(s),r(i))},reject:i=>{s&&o&&(clearTimeout(s),o(i))},done:()=>new Promise((i,u)=>{s=setTimeout(()=>{u(new Error(n))},t),r=i,o=u})}}function kt(e,n,t){return new Promise(async(r,o)=>{const s=setTimeout(()=>o(new Error(t)),n);try{const i=await e;r(i)}catch(i){o(i)}clearTimeout(s)})}function ae(e,n){if(typeof n==\"string\"&&n.startsWith(`${e}:`))return n;if(e.toLowerCase()===\"topic\"){if(typeof n!=\"string\")throw new Error('Value must be \"string\" for expirer target type: topic');return`topic:${n}`}else if(e.toLowerCase()===\"id\"){if(typeof n!=\"number\")throw new Error('Value must be \"number\" for expirer target type: id');return`id:${n}`}throw new Error(`Unknown expirer target type: ${e}`)}function Dt(e){return ae(\"topic\",e)}function xt(e){return ae(\"id\",e)}function Vt(e){const[n,t]=e.split(\":\"),r={id:void 0,topic:void 0};if(n===\"topic\"&&typeof t==\"string\")r.topic=t;else if(n===\"id\"&&Number.isInteger(Number(t)))r.id=Number(t);else throw new Error(`Invalid target, expected id:number or topic:string, got ${n}:${t}`);return r}function Mt(e,n){return st((n||Date.now())+ee(e))}function Kt(e){return Date.now()>=ee(e)}function Lt(e,n){return`${e}${n?`:${n}`:\"\"}`}function N(e=[],n=[]){return[...new Set([...e,...n])]}async function Ft({id:e,topic:n,wcDeepLink:t}){var r;try{if(!t)return;const o=typeof t==\"string\"?JSON.parse(t):t,s=o?.href;if(typeof s!=\"string\")return;const i=Xe(s,e,n),u=P();if(u===y.browser){if(!((r=ne())!=null&&r.hasFocus())){console.warn(\"Document does not have focus, skipping deeplink.\");return}i.startsWith(\"https://\")||i.startsWith(\"http://\")?window.open(i,\"_blank\",\"noreferrer noopener\"):window.open(i,en()?\"_blank\":\"_self\",\"noreferrer noopener\")}else u===y.reactNative&&typeof(global==null?void 0:global.Linking)<\"u\"&&await global.Linking.openURL(i)}catch(o){console.error(o)}}function Xe(e,n,t){const r=`requestId=${n}&sessionTopic=${t}`;e.endsWith(\"/\")&&(e=e.slice(0,-1));let o=`${e}`;if(e.startsWith(\"https://t.me\")){const s=e.includes(\"?\")?\"&startapp=\":\"?startapp=\";o=`${o}${s}${nn(r,!0)}`}else o=`${o}/wc?${r}`;return o}async function qt(e,n){let t=\"\";try{if(V()&&(t=localStorage.getItem(n),t))return t;t=await e.getItem(n)}catch(r){console.error(r)}return t}function ue(e,n){return e.filter(t=>n.includes(t))}function Bt(e,n){if(!e.includes(n))return null;const t=e.split(/([&,?,=])/),r=t.indexOf(n);return t[r+2]}function Ht(){return typeof crypto<\"u\"&&crypto!=null&&crypto.randomUUID?crypto.randomUUID():\"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/gu,e=>{const n=Math.random()*16|0;return(e===\"x\"?n:n&3|8).toString(16)})}function Wt(){return typeof process<\"u\"&&process.env.IS_VITEST===\"true\"}function en(){return typeof window<\"u\"&&(!!window.TelegramWebviewProxy||!!window.Telegram||!!window.TelegramWebviewProxyProto)}function nn(e,n=!1){const t=Buffer.from(e).toString(\"base64\");return n?t.replace(/[=]/g,\"\"):t}function le(e){return Buffer.from(e,\"base64\").toString(\"utf-8\")}const Jt=\"https://rpc.walletconnect.org/v1\";async function tn(e,n,t,r,o,s){switch(t.t){case\"eip191\":return rn(e,n,t.s);case\"eip1271\":return await on(e,n,t.s,r,o,s);default:throw new Error(`verifySignature failed: Attempted to verify CacaoSignature with unknown type: ${t.t}`)}}function rn(e,n,t){return ct(Pe(n),t).toLowerCase()===e.toLowerCase()}async function on(e,n,t,r,o,s){const i=re(r);if(!i.namespace||!i.reference)throw new Error(`isValidEip1271Signature failed: chainId must be in CAIP-2 format, received: ${r}`);try{const u=\"0x1626ba7e\",l=\"0000000000000000000000000000000000000000000000000000000000000040\",c=\"0000000000000000000000000000000000000000000000000000000000000041\",d=t.substring(2),a=Pe(n).substring(2),f=u+a+l+c+d,h=await fetch(`${s||Jt}/?chainId=${r}&projectId=${o}`,{method:\"POST\",body:JSON.stringify({id:zt(),jsonrpc:\"2.0\",method:\"eth_call\",params:[{to:e,data:f},\"latest\"]})}),{result:p}=await h.json();return p?p.slice(0,u.length).toLowerCase()===u.toLowerCase():!1}catch(u){return console.error(\"isValidEip1271Signature: \",u),!1}}function zt(){return Date.now()+Math.floor(Math.random()*1e3)}var Gt=Object.defineProperty,Yt=Object.defineProperties,Qt=Object.getOwnPropertyDescriptors,sn=Object.getOwnPropertySymbols,Zt=Object.prototype.hasOwnProperty,Xt=Object.prototype.propertyIsEnumerable,cn=(e,n,t)=>n in e?Gt(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,de=(e,n)=>{for(var t in n||(n={}))Zt.call(n,t)&&cn(e,t,n[t]);if(sn)for(var t of sn(n))Xt.call(n,t)&&cn(e,t,n[t]);return e},an=(e,n)=>Yt(e,Qt(n));const er=\"did:pkh:\",z=e=>e?.split(\":\"),un=e=>{const n=e&&z(e);if(n)return e.includes(er)?n[3]:n[1]},ln=e=>{const n=e&&z(e);if(n)return n[2]+\":\"+n[3]},fe=e=>{const n=e&&z(e);if(n)return n.pop()};async function nr(e){const{cacao:n,projectId:t}=e,{s:r,p:o}=n,s=dn(o,o.iss),i=fe(o.iss);return await tn(i,s,r,ln(o.iss),t)}const dn=(e,n)=>{const t=`${e.domain} wants you to sign in with your Ethereum account:`,r=fe(n);if(!e.aud&&!e.uri)throw new Error(\"Either `aud` or `uri` is required to construct the message\");let o=e.statement||void 0;const s=`URI: ${e.aud||e.uri}`,i=`Version: ${e.version}`,u=`Chain ID: ${un(n)}`,l=`Nonce: ${e.nonce}`,c=`Issued At: ${e.iat}`,d=e.exp?`Expiration Time: ${e.exp}`:void 0,a=e.nbf?`Not Before: ${e.nbf}`:void 0,f=e.requestId?`Request ID: ${e.requestId}`:void 0,h=e.resources?`Resources:${e.resources.map(m=>`\n- ${m}`).join(\"\")}`:void 0,p=Y(e.resources);if(p){const m=R(p);o=he(o,m)}return[t,r,\"\",o,\"\",s,i,u,l,c,d,a,f,h].filter(m=>m!=null).join(`\n`)};function tr(e,n,t){return t.includes(\"did:pkh:\")||(t=`did:pkh:${t}`),{h:{t:\"caip122\"},p:{iss:t,domain:e.domain,aud:e.aud,version:e.version,nonce:e.nonce,iat:e.iat,statement:e.statement,requestId:e.requestId,resources:e.resources,nbf:e.nbf,exp:e.exp},s:n}}function rr(e){var n;const{authPayload:t,chains:r,methods:o}=e,s=t.statement||\"\";if(!(r!=null&&r.length))return t;const i=t.chains,u=ue(i,r);if(!(u!=null&&u.length))throw new Error(\"No supported chains\");const l=fn(t.resources);if(!l)return t;O(l);const c=pn(l,\"eip155\");let d=t?.resources||[];if(c!=null&&c.length){const a=mn(c),f=ue(a,o);if(!(f!=null&&f.length))throw new Error(`Supported methods don't satisfy the requested: ${JSON.stringify(a)}, supported: ${JSON.stringify(o)}`);const h=pe(\"request\",f,{chains:u}),p=vn(l,\"eip155\",h);d=((n=t?.resources)==null?void 0:n.slice(0,-1))||[],d.push(G(p))}return an(de({},t),{statement:En(s,Y(d)),chains:u,resources:t!=null&&t.resources||d.length>0?d:void 0})}function fn(e){const n=Y(e);if(n&&me(n))return R(n)}function or(e,n){var t;return(t=e?.att)==null?void 0:t.hasOwnProperty(n)}function pn(e,n){var t,r;return(t=e?.att)!=null&&t[n]?Object.keys((r=e?.att)==null?void 0:r[n]):[]}function sr(e){return e?.map(n=>Object.keys(n))||[]}function mn(e){return e?.map(n=>{var t;return(t=n.split(\"/\"))==null?void 0:t[1]})||[]}function hn(e){return Buffer.from(JSON.stringify(e)).toString(\"base64\")}function yn(e){return JSON.parse(Buffer.from(e,\"base64\").toString(\"utf-8\"))}function O(e){if(!e)throw new Error(\"No recap provided, value is undefined\");if(!e.att)throw new Error(\"No `att` property found\");const n=Object.keys(e.att);if(!(n!=null&&n.length))throw new Error(\"No resources found in `att` property\");n.forEach(t=>{const r=e.att[t];if(Array.isArray(r))throw new Error(`Resource must be an object: ${t}`);if(typeof r!=\"object\")throw new Error(`Resource must be an object: ${t}`);if(!Object.keys(r).length)throw new Error(`Resource object is empty: ${t}`);Object.keys(r).forEach(o=>{const s=r[o];if(!Array.isArray(s))throw new Error(`Ability limits ${o} must be an array of objects, found: ${s}`);if(!s.length)throw new Error(`Value of ${o} is empty array, must be an array with objects`);s.forEach(i=>{if(typeof i!=\"object\")throw new Error(`Ability limits (${o}) must be an array of objects, found: ${i}`)})})})}function gn(e,n,t,r={}){return t?.sort((o,s)=>o.localeCompare(s)),{att:{[e]:pe(n,t,r)}}}function vn(e,n,t){var r;return e.att[n]=de({},t),((r=Object.keys(e.att))==null?void 0:r.sort((o,s)=>o.localeCompare(s))).reduce((o,s)=>(o.att[s]=e.att[s],o),{att:{}})}function pe(e,n,t={}){n=n?.sort((o,s)=>o.localeCompare(s));const r=n.map(o=>({[`${e}/${o}`]:[t]}));return Object.assign({},...r)}function G(e){return O(e),`urn:recap:${hn(e).replace(/=/g,\"\")}`}function R(e){const n=yn(e.replace(\"urn:recap:\",\"\"));return O(n),n}function ir(e,n,t){const r=gn(e,n,t);return G(r)}function me(e){return e&&e.includes(\"urn:recap:\")}function cr(e,n){const t=R(e),r=R(n),o=bn(t,r);return G(o)}function bn(e,n){O(e),O(n);const t=Object.keys(e.att).concat(Object.keys(n.att)).sort((o,s)=>o.localeCompare(s)),r={att:{}};return t.forEach(o=>{var s,i;Object.keys(((s=e.att)==null?void 0:s[o])||{}).concat(Object.keys(((i=n.att)==null?void 0:i[o])||{})).sort((u,l)=>u.localeCompare(l)).forEach(u=>{var l,c;r.att[o]=an(de({},r.att[o]),{[u]:((l=e.att[o])==null?void 0:l[u])||((c=n.att[o])==null?void 0:c[u])})})}),r}function he(e=\"\",n){O(n);const t=\"I further authorize the stated URI to perform the following actions on my behalf: \";if(e.includes(t))return e;const r=[];let o=0;Object.keys(n.att).forEach(u=>{const l=Object.keys(n.att[u]).map(a=>({ability:a.split(\"/\")[0],action:a.split(\"/\")[1]}));l.sort((a,f)=>a.action.localeCompare(f.action));const c={};l.forEach(a=>{c[a.ability]||(c[a.ability]=[]),c[a.ability].push(a.action)});const d=Object.keys(c).map(a=>(o++,`(${o}) '${a}': '${c[a].join(\"', '\")}' for '${u}'.`));r.push(d.join(\", \").replace(\".,\",\".\"))});const s=r.join(\" \"),i=`${t}${s}`;return`${e?e+\" \":\"\"}${i}`}function ar(e){var n;const t=R(e);O(t);const r=(n=t.att)==null?void 0:n.eip155;return r?Object.keys(r).map(o=>o.split(\"/\")[1]):[]}function ur(e){const n=R(e);O(n);const t=[];return Object.values(n.att).forEach(r=>{Object.values(r).forEach(o=>{var s;(s=o?.[0])!=null&&s.chains&&t.push(o[0].chains)})}),[...new Set(t.flat())]}function En(e,n){if(!n)return e;const t=R(n);return O(t),he(e,t)}function Y(e){if(!e)return;const n=e?.[e.length-1];return me(n)?n:void 0}const ye=\"base10\",g=\"base16\",ge=\"base64pad\",lr=\"base64url\",k=\"utf8\",ve=0,D=1,M=2,dr=0,wn=1,K=12,be=32;function fr(){const e=_e.generateKeyPair();return{privateKey:v(e.secretKey,g),publicKey:v(e.publicKey,g)}}function pr(){const e=B(be);return v(e,g)}function mr(e,n){const t=_e.sharedKey(w(e,g),w(n,g),!0),r=new at(Ce,t).expand(be);return v(r,g)}function hr(e){const n=Ue(w(e,g));return v(n,g)}function yr(e){const n=Ue(w(e,k));return v(n,g)}function Ee(e){return w(`${e}`,ye)}function A(e){return Number(v(e,ye))}function gr(e){const n=Ee(typeof e.type<\"u\"?e.type:ve);if(A(n)===D&&typeof e.senderPublicKey>\"u\")throw new Error(\"Missing sender public key for type 1 envelope\");const t=typeof e.senderPublicKey<\"u\"?w(e.senderPublicKey,g):void 0,r=typeof e.iv<\"u\"?w(e.iv,g):B(K),o=new Ae(w(e.symKey,g)).seal(r,w(e.message,k));return we({type:n,sealed:o,iv:r,senderPublicKey:t,encoding:e.encoding})}function vr(e,n){const t=Ee(M),r=B(K),o=w(e,k);return we({type:t,sealed:o,iv:r,encoding:n})}function br(e){const n=new Ae(w(e.symKey,g)),{sealed:t,iv:r}=Q({encoded:e.encoded,encoding:e?.encoding}),o=n.open(r,t);if(o===null)throw new Error(\"Failed to decrypt\");return v(o,k)}function Er(e,n){const{sealed:t}=Q({encoded:e,encoding:n});return v(t,k)}function we(e){const{encoding:n=ge}=e;if(A(e.type)===M)return v(te([e.type,e.sealed]),n);if(A(e.type)===D){if(typeof e.senderPublicKey>\"u\")throw new Error(\"Missing sender public key for type 1 envelope\");return v(te([e.type,e.senderPublicKey,e.iv,e.sealed]),n)}return v(te([e.type,e.iv,e.sealed]),n)}function Q(e){const{encoded:n,encoding:t=ge}=e,r=w(n,t),o=r.slice(dr,wn),s=wn;if(A(o)===D){const c=s+be,d=c+K,a=r.slice(s,c),f=r.slice(c,d),h=r.slice(d);return{type:o,sealed:h,iv:f,senderPublicKey:a}}if(A(o)===M){const c=r.slice(s),d=B(K);return{type:o,sealed:c,iv:d}}const i=s+K,u=r.slice(s,i),l=r.slice(i);return{type:o,sealed:l,iv:u}}function wr(e,n){const t=Q({encoded:e,encoding:n?.encoding});return On({type:A(t.type),senderPublicKey:typeof t.senderPublicKey<\"u\"?v(t.senderPublicKey,g):void 0,receiverPublicKey:n?.receiverPublicKey})}function On(e){const n=e?.type||ve;if(n===D){if(typeof e?.senderPublicKey>\"u\")throw new Error(\"missing sender public key\");if(typeof e?.receiverPublicKey>\"u\")throw new Error(\"missing receiver public key\")}return{type:n,senderPublicKey:e?.senderPublicKey,receiverPublicKey:e?.receiverPublicKey}}function Or(e){return e.type===D&&typeof e.senderPublicKey==\"string\"&&typeof e.receiverPublicKey==\"string\"}function Nr(e){return e.type===M}function Nn(e){return new ut(\"p256\").keyFromPublic({x:Buffer.from(e.x,\"base64\").toString(\"hex\"),y:Buffer.from(e.y,\"base64\").toString(\"hex\")},\"hex\")}function Sr(e){let n=e.replace(/-/g,\"+\").replace(/_/g,\"/\");const t=n.length%4;return t>0&&(n+=\"=\".repeat(4-t)),n}function $r(e){return Buffer.from(Sr(e),\"base64\")}function Rr(e,n){const[t,r,o]=e.split(\".\"),s=$r(o);if(s.length!==64)throw new Error(\"Invalid signature length\");const i=s.slice(0,32).toString(\"hex\"),u=s.slice(32,64).toString(\"hex\"),l=`${t}.${r}`,c=new Ce().update(Buffer.from(l)).digest(),d=Nn(n),a=Buffer.from(c).toString(\"hex\");if(!d.verify(a,{r:i,s:u}))throw new Error(\"Invalid signature\");return lt(e).payload}const Sn=\"irn\";function Ir(e){return e?.relay||{protocol:Sn}}function jr(e){const n=dt[e];if(typeof n>\"u\")throw new Error(`Relay Protocol not supported: ${e}`);return n}var Tr=Object.defineProperty,Pr=Object.defineProperties,Ar=Object.getOwnPropertyDescriptors,$n=Object.getOwnPropertySymbols,Cr=Object.prototype.hasOwnProperty,Ur=Object.prototype.propertyIsEnumerable,Rn=(e,n,t)=>n in e?Tr(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,In=(e,n)=>{for(var t in n||(n={}))Cr.call(n,t)&&Rn(e,t,n[t]);if($n)for(var t of $n(n))Ur.call(n,t)&&Rn(e,t,n[t]);return e},_r=(e,n)=>Pr(e,Ar(n));function jn(e,n=\"-\"){const t={},r=\"relay\"+n;return Object.keys(e).forEach(o=>{if(o.startsWith(r)){const s=o.replace(r,\"\"),i=e[o];t[s]=i}}),t}function kr(e){if(!e.includes(\"wc:\")){const l=le(e);l!=null&&l.includes(\"wc:\")&&(e=l)}e=e.includes(\"wc://\")?e.replace(\"wc://\",\"\"):e,e=e.includes(\"wc:\")?e.replace(\"wc:\",\"\"):e;const n=e.indexOf(\":\"),t=e.indexOf(\"?\")!==-1?e.indexOf(\"?\"):void 0,r=e.substring(0,n),o=e.substring(n+1,t).split(\"@\"),s=typeof t<\"u\"?e.substring(t):\"\",i=q.parse(s),u=typeof i.methods==\"string\"?i.methods.split(\",\"):void 0;return{protocol:r,topic:Tn(o[0]),version:parseInt(o[1],10),symKey:i.symKey,relay:jn(i),methods:u,expiryTimestamp:i.expiryTimestamp?parseInt(i.expiryTimestamp,10):void 0}}function Tn(e){return e.startsWith(\"//\")?e.substring(2):e}function Pn(e,n=\"-\"){const t=\"relay\",r={};return Object.keys(e).forEach(o=>{const s=t+n+o;e[o]&&(r[s]=e[o])}),r}function Dr(e){return`${e.protocol}:${e.topic}@${e.version}?`+q.stringify(In(_r(In({symKey:e.symKey},Pn(e.relay)),{expiryTimestamp:e.expiryTimestamp}),e.methods?{methods:e.methods.join(\",\")}:{}))}function xr(e,n,t){return`${e}?wc_ev=${t}&topic=${n}`}var Vr=Object.defineProperty,Mr=Object.defineProperties,Kr=Object.getOwnPropertyDescriptors,An=Object.getOwnPropertySymbols,Lr=Object.prototype.hasOwnProperty,Fr=Object.prototype.propertyIsEnumerable,Cn=(e,n,t)=>n in e?Vr(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,qr=(e,n)=>{for(var t in n||(n={}))Lr.call(n,t)&&Cn(e,t,n[t]);if(An)for(var t of An(n))Fr.call(n,t)&&Cn(e,t,n[t]);return e},Br=(e,n)=>Mr(e,Kr(n));function C(e){const n=[];return e.forEach(t=>{const[r,o]=t.split(\":\");n.push(`${r}:${o}`)}),n}function Un(e){const n=[];return Object.values(e).forEach(t=>{n.push(...C(t.accounts))}),n}function _n(e,n){const t=[];return Object.values(e).forEach(r=>{C(r.accounts).includes(n)&&t.push(...r.methods)}),t}function kn(e,n){const t=[];return Object.values(e).forEach(r=>{C(r.accounts).includes(n)&&t.push(...r.events)}),t}function Hr(e,n){const t=Wn(e,n);if(t)throw new Error(t.message);const r={};for(const[o,s]of Object.entries(e))r[o]={methods:s.methods,events:s.events,chains:s.accounts.map(i=>`${i.split(\":\")[0]}:${i.split(\":\")[1]}`)};return r}function Wr(e){const{proposal:{requiredNamespaces:n,optionalNamespaces:t={}},supportedNamespaces:r}=e,o=Ne(n),s=Ne(t),i={};Object.keys(r).forEach(c=>{const d=r[c].chains,a=r[c].methods,f=r[c].events,h=r[c].accounts;d.forEach(p=>{if(!h.some(m=>m.includes(p)))throw new Error(`No accounts provided for chain ${p} in namespace ${c}`)}),i[c]={chains:d,methods:a,events:f,accounts:h}});const u=zn(n,i,\"approve()\");if(u)throw new Error(u.message);const l={};return!Object.keys(n).length&&!Object.keys(t).length?i:(Object.keys(o).forEach(c=>{const d=r[c].chains.filter(p=>{var m,E;return(E=(m=o[c])==null?void 0:m.chains)==null?void 0:E.includes(p)}),a=r[c].methods.filter(p=>{var m,E;return(E=(m=o[c])==null?void 0:m.methods)==null?void 0:E.includes(p)}),f=r[c].events.filter(p=>{var m,E;return(E=(m=o[c])==null?void 0:m.events)==null?void 0:E.includes(p)}),h=d.map(p=>r[c].accounts.filter(m=>m.includes(`${p}:`))).flat();l[c]={chains:d,methods:a,events:f,accounts:h}}),Object.keys(s).forEach(c=>{var d,a,f,h,p,m;if(!r[c])return;const E=(a=(d=s[c])==null?void 0:d.chains)==null?void 0:a.filter(j=>r[c].chains.includes(j)),nt=r[c].methods.filter(j=>{var T,x;return(x=(T=s[c])==null?void 0:T.methods)==null?void 0:x.includes(j)}),tt=r[c].events.filter(j=>{var T,x;return(x=(T=s[c])==null?void 0:T.events)==null?void 0:x.includes(j)}),rt=E?.map(j=>r[c].accounts.filter(T=>T.includes(`${j}:`))).flat();l[c]={chains:N((f=l[c])==null?void 0:f.chains,E),methods:N((h=l[c])==null?void 0:h.methods,nt),events:N((p=l[c])==null?void 0:p.events,tt),accounts:N((m=l[c])==null?void 0:m.accounts,rt)}}),l)}function Oe(e){return e.includes(\":\")}function Dn(e){return Oe(e)?e.split(\":\")[0]:e}function Ne(e){var n,t,r;const o={};if(!Z(e))return o;for(const[s,i]of Object.entries(e)){const u=Oe(s)?[s]:i.chains,l=i.methods||[],c=i.events||[],d=Dn(s);o[d]=Br(qr({},o[d]),{chains:N(u,(n=o[d])==null?void 0:n.chains),methods:N(l,(t=o[d])==null?void 0:t.methods),events:N(c,(r=o[d])==null?void 0:r.events)})}return o}function xn(e){const n={};return e?.forEach(t=>{const[r,o]=t.split(\":\");n[r]||(n[r]={accounts:[],chains:[],events:[]}),n[r].accounts.push(t),n[r].chains.push(`${r}:${o}`)}),n}function Jr(e,n){n=n.map(r=>r.replace(\"did:pkh:\",\"\"));const t=xn(n);for(const[r,o]of Object.entries(t))o.methods?o.methods=N(o.methods,e):o.methods=e,o.events=[\"chainChanged\",\"accountsChanged\"];return t}const Vn={INVALID_METHOD:{message:\"Invalid method.\",code:1001},INVALID_EVENT:{message:\"Invalid event.\",code:1002},INVALID_UPDATE_REQUEST:{message:\"Invalid update request.\",code:1003},INVALID_EXTEND_REQUEST:{message:\"Invalid extend request.\",code:1004},INVALID_SESSION_SETTLE_REQUEST:{message:\"Invalid session settle request.\",code:1005},UNAUTHORIZED_METHOD:{message:\"Unauthorized method.\",code:3001},UNAUTHORIZED_EVENT:{message:\"Unauthorized event.\",code:3002},UNAUTHORIZED_UPDATE_REQUEST:{message:\"Unauthorized update request.\",code:3003},UNAUTHORIZED_EXTEND_REQUEST:{message:\"Unauthorized extend request.\",code:3004},USER_REJECTED:{message:\"User rejected.\",code:5e3},USER_REJECTED_CHAINS:{message:\"User rejected chains.\",code:5001},USER_REJECTED_METHODS:{message:\"User rejected methods.\",code:5002},USER_REJECTED_EVENTS:{message:\"User rejected events.\",code:5003},UNSUPPORTED_CHAINS:{message:\"Unsupported chains.\",code:5100},UNSUPPORTED_METHODS:{message:\"Unsupported methods.\",code:5101},UNSUPPORTED_EVENTS:{message:\"Unsupported events.\",code:5102},UNSUPPORTED_ACCOUNTS:{message:\"Unsupported accounts.\",code:5103},UNSUPPORTED_NAMESPACE_KEY:{message:\"Unsupported namespace key.\",code:5104},USER_DISCONNECTED:{message:\"User disconnected.\",code:6e3},SESSION_SETTLEMENT_FAILED:{message:\"Session settlement failed.\",code:7e3},WC_METHOD_UNSUPPORTED:{message:\"Unsupported wc_ method.\",code:10001}},Mn={NOT_INITIALIZED:{message:\"Not initialized.\",code:1},NO_MATCHING_KEY:{message:\"No matching key.\",code:2},RESTORE_WILL_OVERRIDE:{message:\"Restore will override.\",code:3},RESUBSCRIBED:{message:\"Resubscribed.\",code:4},MISSING_OR_INVALID:{message:\"Missing or invalid.\",code:5},EXPIRED:{message:\"Expired.\",code:6},UNKNOWN_TYPE:{message:\"Unknown type.\",code:7},MISMATCHED_TOPIC:{message:\"Mismatched topic.\",code:8},NON_CONFORMING_NAMESPACES:{message:\"Non conforming namespaces.\",code:9}};function S(e,n){const{message:t,code:r}=Mn[e];return{message:n?`${t} ${n}`:t,code:r}}function U(e,n){const{message:t,code:r}=Vn[e];return{message:n?`${t} ${n}`:t,code:r}}function L(e,n){return Array.isArray(e)?typeof n<\"u\"&&e.length?e.every(n):!0:!1}function Z(e){return Object.getPrototypeOf(e)===Object.prototype&&Object.keys(e).length}function I(e){return typeof e>\"u\"}function b(e,n){return n&&I(e)?!0:typeof e==\"string\"&&!!e.trim().length}function X(e,n){return n&&I(e)?!0:typeof e==\"number\"&&!isNaN(e)}function zr(e,n){const{requiredNamespaces:t}=n,r=Object.keys(e.namespaces),o=Object.keys(t);let s=!0;return $(o,r)?(r.forEach(i=>{const{accounts:u,methods:l,events:c}=e.namespaces[i],d=C(u),a=t[i];(!$(W(i,a),d)||!$(a.methods,l)||!$(a.events,c))&&(s=!1)}),s):!1}function F(e){return b(e,!1)&&e.includes(\":\")?e.split(\":\").length===2:!1}function Kn(e){if(b(e,!1)&&e.includes(\":\")){const n=e.split(\":\");if(n.length===3){const t=n[0]+\":\"+n[1];return!!n[2]&&F(t)}}return!1}function Gr(e){function n(t){try{return typeof new URL(t)<\"u\"}catch{return!1}}try{if(b(e,!1)){if(n(e))return!0;const t=le(e);return n(t)}}catch{}return!1}function Yr(e){var n;return(n=e?.proposer)==null?void 0:n.publicKey}function Qr(e){return e?.topic}function Zr(e,n){let t=null;return b(e?.publicKey,!1)||(t=S(\"MISSING_OR_INVALID\",`${n} controller public key should be a string`)),t}function Se(e){let n=!0;return L(e)?e.length&&(n=e.every(t=>b(t,!1))):n=!1,n}function Ln(e,n,t){let r=null;return L(n)&&n.length?n.forEach(o=>{r||F(o)||(r=U(\"UNSUPPORTED_CHAINS\",`${t}, chain ${o} should be a string and conform to \"namespace:chainId\" format`))}):F(e)||(r=U(\"UNSUPPORTED_CHAINS\",`${t}, chains must be defined as \"namespace:chainId\" e.g. \"eip155:1\": {...} in the namespace key OR as an array of CAIP-2 chainIds e.g. eip155: { chains: [\"eip155:1\", \"eip155:5\"] }`)),r}function Fn(e,n,t){let r=null;return Object.entries(e).forEach(([o,s])=>{if(r)return;const i=Ln(o,W(o,s),`${n} ${t}`);i&&(r=i)}),r}function qn(e,n){let t=null;return L(e)?e.forEach(r=>{t||Kn(r)||(t=U(\"UNSUPPORTED_ACCOUNTS\",`${n}, account ${r} should be a string and conform to \"namespace:chainId:address\" format`))}):t=U(\"UNSUPPORTED_ACCOUNTS\",`${n}, accounts should be an array of strings conforming to \"namespace:chainId:address\" format`),t}function Bn(e,n){let t=null;return Object.values(e).forEach(r=>{if(t)return;const o=qn(r?.accounts,`${n} namespace`);o&&(t=o)}),t}function Hn(e,n){let t=null;return Se(e?.methods)?Se(e?.events)||(t=U(\"UNSUPPORTED_EVENTS\",`${n}, events should be an array of strings or empty array for no events`)):t=U(\"UNSUPPORTED_METHODS\",`${n}, methods should be an array of strings or empty array for no methods`),t}function $e(e,n){let t=null;return Object.values(e).forEach(r=>{if(t)return;const o=Hn(r,`${n}, namespace`);o&&(t=o)}),t}function Xr(e,n,t){let r=null;if(e&&Z(e)){const o=$e(e,n);o&&(r=o);const s=Fn(e,n,t);s&&(r=s)}else r=S(\"MISSING_OR_INVALID\",`${n}, ${t} should be an object with data`);return r}function Wn(e,n){let t=null;if(e&&Z(e)){const r=$e(e,n);r&&(t=r);const o=Bn(e,n);o&&(t=o)}else t=S(\"MISSING_OR_INVALID\",`${n}, namespaces should be an object with data`);return t}function Jn(e){return b(e.protocol,!0)}function eo(e,n){let t=!1;return n&&!e?t=!0:e&&L(e)&&e.length&&e.forEach(r=>{t=Jn(r)}),t}function no(e){return typeof e==\"number\"}function to(e){return typeof e<\"u\"&&typeof e!==null}function ro(e){return!(!e||typeof e!=\"object\"||!e.code||!X(e.code,!1)||!e.message||!b(e.message,!1))}function oo(e){return!(I(e)||!b(e.method,!1))}function so(e){return!(I(e)||I(e.result)&&I(e.error)||!X(e.id,!1)||!b(e.jsonrpc,!1))}function io(e){return!(I(e)||!b(e.name,!1))}function co(e,n){return!(!F(n)||!Un(e).includes(n))}function ao(e,n,t){return b(t,!1)?_n(e,n).includes(t):!1}function uo(e,n,t){return b(t,!1)?kn(e,n).includes(t):!1}function zn(e,n,t){let r=null;const o=lo(e),s=fo(n),i=Object.keys(o),u=Object.keys(s),l=Gn(Object.keys(e)),c=Gn(Object.keys(n)),d=l.filter(a=>!c.includes(a));return d.length&&(r=S(\"NON_CONFORMING_NAMESPACES\",`${t} namespaces keys don't satisfy requiredNamespaces.\n Required: ${d.toString()}\n Received: ${Object.keys(n).toString()}`)),$(i,u)||(r=S(\"NON_CONFORMING_NAMESPACES\",`${t} namespaces chains don't satisfy required namespaces.\n Required: ${i.toString()}\n Approved: ${u.toString()}`)),Object.keys(n).forEach(a=>{if(!a.includes(\":\")||r)return;const f=C(n[a].accounts);f.includes(a)||(r=S(\"NON_CONFORMING_NAMESPACES\",`${t} namespaces accounts don't satisfy namespace accounts for ${a}\n Required: ${a}\n Approved: ${f.toString()}`))}),i.forEach(a=>{r||($(o[a].methods,s[a].methods)?$(o[a].events,s[a].events)||(r=S(\"NON_CONFORMING_NAMESPACES\",`${t} namespaces events don't satisfy namespace events for ${a}`)):r=S(\"NON_CONFORMING_NAMESPACES\",`${t} namespaces methods don't satisfy namespace methods for ${a}`))}),r}function lo(e){const n={};return Object.keys(e).forEach(t=>{var r;t.includes(\":\")?n[t]=e[t]:(r=e[t].chains)==null||r.forEach(o=>{n[o]={methods:e[t].methods,events:e[t].events}})}),n}function Gn(e){return[...new Set(e.map(n=>n.includes(\":\")?n.split(\":\")[0]:n))]}function fo(e){const n={};return Object.keys(e).forEach(t=>{if(t.includes(\":\"))n[t]=e[t];else{const r=C(e[t].accounts);r?.forEach(o=>{n[o]={accounts:e[t].accounts.filter(s=>s.includes(`${o}:`)),methods:e[t].methods,events:e[t].events}})}}),n}function po(e,n){return X(e,!1)&&e<=n.max&&e>=n.min}function mo(){const e=P();return new Promise(n=>{switch(e){case y.browser:n(Yn());break;case y.reactNative:n(Qn());break;case y.node:n(Zn());break;default:n(!0)}})}function Yn(){return V()&&navigator?.onLine}async function Qn(){if(_()&&typeof global<\"u\"&&global!=null&&global.NetInfo){const e=await(global==null?void 0:global.NetInfo.fetch());return e?.isConnected}return!0}function Zn(){return!0}function ho(e){switch(P()){case y.browser:Xn(e);break;case y.reactNative:et(e);break;case y.node:break}}function Xn(e){!_()&&V()&&(window.addEventListener(\"online\",()=>e(!0)),window.addEventListener(\"offline\",()=>e(!1)))}function et(e){_()&&typeof global<\"u\"&&global!=null&&global.NetInfo&&global?.NetInfo.addEventListener(n=>e(n?.isConnected))}const Re={};class yo{static get(n){return Re[n]}static set(n,t){Re[n]=t}static delete(n){delete Re[n]}}export{ye as BASE10,g as BASE16,ge as BASE64,lr as BASE64URL,Et as COLON,ie as DEFAULT_DEPTH,J as EMPTY_SPACE,y as ENV_MAP,Mn as INTERNAL_ERRORS,yo as MemoryStore,wt as ONE_THOUSAND,qe as REACT_NATIVE_PRODUCT,Sn as RELAYER_DEFAULT_PROTOCOL,Vn as SDK_ERRORS,He as SDK_TYPE,Be as SLASH,ve as TYPE_0,D as TYPE_1,M as TYPE_2,k as UTF8,vn as addResourceToRecap,We as appendToQueryString,It as assertType,pe as assignAbilityToActions,yn as base64Decode,hn as base64Encode,Wr as buildApprovedNamespaces,tr as buildAuthObject,Jr as buildNamespacesFromAuth,En as buildRecapStatement,Mt as calcExpiry,Ut as capitalize,Ze as capitalizeWord,_t as createDelayedPromise,ir as createEncodedRecap,kt as createExpiringPromise,gn as createRecap,R as decodeRecap,A as decodeTypeByte,Er as decodeTypeTwoEnvelope,br as decrypt,mr as deriveSymKey,Q as deserialize,G as encodeRecap,Ee as encodeTypeByte,vr as encodeTypeTwoEnvelope,gr as encrypt,Lt as engineEvent,Ct as enumify,De as formatAccountId,ft as formatAccountWithChain,ke as formatChainId,Xe as formatDeeplinkUrl,ae as formatExpirerTarget,xt as formatIdTarget,dn as formatMessage,jt as formatMessageContext,Pn as formatRelayParams,$t as formatRelayRpcUrl,he as formatStatementFromRecap,Dt as formatTopicTarget,Ge as formatUA,Dr as formatUri,le as fromBase64,fr as generateKeyPair,pr as generateRandomBytes32,C as getAccountsChains,mt as getAccountsFromNamespaces,xe as getAddressFromAccount,pt as getAddressesFromAccounts,Nt as getAppMetadata,Yn as getBrowserOnlineStatus,Ot as getBundleId,Ve as getChainFromAccount,Me as getChainsFromAccounts,W as getChainsFromNamespace,ht as getChainsFromNamespaces,ur as getChainsFromRecap,yt as getChainsFromRequiredNamespaces,ue as getCommonValuesInArrays,Nn as getCryptoKeyFromKeyData,fn as getDecodedRecapFromResources,qt as getDeepLink,fe as getDidAddress,z as getDidAddressSegments,un as getDidChainId,P as getEnvironment,Rt as getHttpUrl,S as getInternalError,ze as getJavascriptID,Je as getJavascriptOS,Qe as getLastItems,xr as getLinkModeURL,ar as getMethodsFromRecap,ln as getNamespacedDidChainId,Un as getNamespacesChains,kn as getNamespacesEventsForChainId,xn as getNamespacesFromAccounts,_n as getNamespacesMethodsForChainId,Zn as getNodeOnlineStatus,mn as getReCapActions,Qn as getReactNativeOnlineStatus,sr as getRecapAbilitiesFromResource,Y as getRecapFromResources,pn as getRecapResource,St as getRelayClientMetadata,jr as getRelayProtocolApi,Ir as getRelayProtocolName,Hr as getRequiredNamespacesFromNamespaces,U as getSdkError,Bt as getSearchParamFromURL,se as getUniqueValues,Ft as handleDeeplinkRedirect,$ as hasOverlap,hr as hashKey,yr as hashMessage,V as isBrowser,Oe as isCaipNamespace,zn as isConformingNamespaces,Kt as isExpired,ce as isNode,mo as isOnline,Yr as isProposalStruct,_ as isReactNative,me as isRecap,zr as isSessionCompatible,Qr as isSessionStruct,en as isTelegram,Wt as isTestRun,Or as isTypeOneEnvelope,Nr as isTypeTwoEnvelope,I as isUndefined,Kn as isValidAccountId,qn as isValidAccounts,Hn as isValidActions,L as isValidArray,F as isValidChainId,Ln as isValidChains,Zr as isValidController,on as isValidEip1271Signature,rn as isValidEip191Signature,ro as isValidErrorReason,io as isValidEvent,no as isValidId,Bn as isValidNamespaceAccounts,$e as isValidNamespaceActions,Fn as isValidNamespaceChains,Se as isValidNamespaceMethodsOrEvents,Wn as isValidNamespaces,co as isValidNamespacesChainId,uo as isValidNamespacesEvent,ao as isValidNamespacesRequest,X as isValidNumber,Z as isValidObject,to as isValidParams,O as isValidRecap,Jn as isValidRelay,eo as isValidRelays,oo as isValidRequest,po as isValidRequestExpiry,Xr as isValidRequiredNamespaces,so as isValidResponse,b as isValidString,Gr as isValidUrl,At as mapEntries,Tt as mapToObj,N as mergeArrays,cr as mergeEncodedRecaps,bn as mergeRecaps,Ne as normalizeNamespaces,Pt as objToMap,oe as parseAccountId,re as parseChainId,Ye as parseContextNames,Vt as parseExpirerTarget,Dn as parseNamespaceKey,jn as parseRelayParams,Tn as parseTopic,kr as parseUri,rr as populateAuthPayload,or as recapHasResource,we as serialize,Xn as subscribeToBrowserNetworkChange,ho as subscribeToNetworkChange,et as subscribeToReactNativeNetworkChange,nn as toBase64,Ht as uuidv4,wr as validateDecoding,On as validateEncoding,nr as validateSignedCacao,Rr as verifyP256Jwt,tn as verifySignature};\n//# sourceMappingURL=index.es.js.map\n","import{EventEmitter as u}from\"events\";import{safeJsonStringify as p,safeJsonParse as g}from\"@walletconnect/safe-json\";import{isWsUrl as d,isReactNative as y,isLocalhostUrl as m,formatJsonRpcError as k,parseConnectionError as v}from\"@walletconnect/jsonrpc-utils\";const w=()=>typeof WebSocket<\"u\"?WebSocket:typeof global<\"u\"&&typeof global.WebSocket<\"u\"?global.WebSocket:typeof window<\"u\"&&typeof window.WebSocket<\"u\"?window.WebSocket:typeof self<\"u\"&&typeof self.WebSocket<\"u\"?self.WebSocket:require(\"ws\"),b=()=>typeof WebSocket<\"u\"||typeof global<\"u\"&&typeof global.WebSocket<\"u\"||typeof window<\"u\"&&typeof window.WebSocket<\"u\"||typeof self<\"u\"&&typeof self.WebSocket<\"u\",a=c=>c.split(\"?\")[0],h=10,S=w();class f{constructor(e){if(this.url=e,this.events=new u,this.registering=!1,!d(e))throw new Error(`Provided URL is not compatible with WebSocket connection: ${e}`);this.url=e}get connected(){return typeof this.socket<\"u\"}get connecting(){return this.registering}on(e,t){this.events.on(e,t)}once(e,t){this.events.once(e,t)}off(e,t){this.events.off(e,t)}removeListener(e,t){this.events.removeListener(e,t)}async open(e=this.url){await this.register(e)}async close(){return new Promise((e,t)=>{if(typeof this.socket>\"u\"){t(new Error(\"Connection already closed\"));return}this.socket.onclose=n=>{this.onClose(n),e()},this.socket.close()})}async send(e){typeof this.socket>\"u\"&&(this.socket=await this.register());try{this.socket.send(p(e))}catch(t){this.onError(e.id,t)}}register(e=this.url){if(!d(e))throw new Error(`Provided URL is not compatible with WebSocket connection: ${e}`);if(this.registering){const t=this.events.getMaxListeners();return(this.events.listenerCount(\"register_error\")>=t||this.events.listenerCount(\"open\")>=t)&&this.events.setMaxListeners(t+1),new Promise((n,o)=>{this.events.once(\"register_error\",s=>{this.resetMaxListeners(),o(s)}),this.events.once(\"open\",()=>{if(this.resetMaxListeners(),typeof this.socket>\"u\")return o(new Error(\"WebSocket connection is missing or invalid\"));n(this.socket)})})}return this.url=e,this.registering=!0,new Promise((t,n)=>{const o=new URLSearchParams(e).get(\"origin\"),s=y()?{headers:{origin:o}}:{rejectUnauthorized:!m(e)},i=new S(e,[],s);b()?i.onerror=r=>{const l=r;n(this.emitError(l.error))}:i.on(\"error\",r=>{n(this.emitError(r))}),i.onopen=()=>{this.onOpen(i),t(i)}})}onOpen(e){e.onmessage=t=>this.onPayload(t),e.onclose=t=>this.onClose(t),this.socket=e,this.registering=!1,this.events.emit(\"open\")}onClose(e){this.socket=void 0,this.registering=!1,this.events.emit(\"close\",e)}onPayload(e){if(typeof e.data>\"u\")return;const t=typeof e.data==\"string\"?g(e.data):e.data;this.events.emit(\"payload\",t)}onError(e,t){const n=this.parseError(t),o=n.message||n.toString(),s=k(e,o);this.events.emit(\"payload\",s)}parseError(e,t=this.url){return v(e,a(t),\"WS\")}resetMaxListeners(){this.events.getMaxListeners()>h&&this.events.setMaxListeners(h)}emitError(e){const t=this.parseError(new Error(e?.message||`WebSocket connection failed for host: ${a(this.url)}`));return this.events.emit(\"register_error\",t),t}}export{f as WsConnection,f as default};\n//# sourceMappingURL=index.es.js.map\n","import mi,{EventEmitter as U}from\"events\";import{HEARTBEAT_EVENTS as j,HeartBeat as bi}from\"@walletconnect/heartbeat\";import fi from\"@walletconnect/keyvaluestorage\";import{generateChildLogger as E,getLoggerContext as C,pino as _i,getDefaultLoggerOptions as Ie,generatePlatformLogger as Ei}from\"@walletconnect/logger\";import{IMessageTracker as vi,IPublisher as wi,ISubscriber as Ii,IRelayer as Ti,IStore as Ci,IJsonRpcHistory as Pi,IExpirer as Si,IVerify as Ri,IEchoClient as xi,IEventClient as Oi,ICore as Ai}from\"@walletconnect/types\";import{ONE_DAY as F,SIX_HOURS as Ni,THIRTY_DAYS as ee,FIVE_SECONDS as Te,THIRTY_SECONDS as oe,toMiliseconds as w,ONE_MINUTE as ae,ONE_SECOND as q,Watch as zi,FIVE_MINUTES as he,fromMiliseconds as Ce}from\"@walletconnect/time\";import{safeJsonStringify as Li,safeJsonParse as Pe}from\"@walletconnect/safe-json\";import*as te from\"@walletconnect/relay-auth\";import{decodeJWT as Se}from\"@walletconnect/relay-auth\";import{getInternalError as d,mapToObj as Re,objToMap as xe,generateRandomBytes32 as ce,generateKeyPair as $i,deriveSymKey as ki,hashKey as Mi,validateEncoding as Ui,isTypeTwoEnvelope as Oe,encodeTypeTwoEnvelope as Fi,isTypeOneEnvelope as Ae,encrypt as Ki,validateDecoding as Bi,decodeTypeTwoEnvelope as Vi,decrypt as ji,deserialize as Ne,decodeTypeByte as qi,BASE64 as ze,BASE16 as Gi,hashMessage as le,getRelayProtocolName as ue,createExpiringPromise as K,getRelayProtocolApi as G,isUndefined as de,getSdkError as H,isValidArray as Hi,isNode as Le,getBundleId as Yi,isOnline as $e,calcExpiry as Y,formatRelayRpcUrl as Ji,subscribeToNetworkChange as Xi,isProposalStruct as Wi,isSessionStruct as Zi,TYPE_1 as Qi,formatUri as ke,parseUri as Me,createDelayedPromise as es,engineEvent as pe,isExpired as Ue,isValidParams as ge,isValidUrl as ts,isValidString as is,parseExpirerTarget as ss,formatTopicTarget as rs,formatIdTarget as ns,isBrowser as os,verifyP256Jwt as as,isTestRun as Fe,uuidv4 as Ke,formatUA as hs,getAppMetadata as cs}from\"@walletconnect/utils\";import{toString as ls}from\"uint8arrays\";import{JsonRpcProvider as us}from\"@walletconnect/jsonrpc-provider\";import{getBigIntRpcId as Be,isJsonRpcRequest as Ve,isJsonRpcResponse as je,formatJsonRpcResult as qe,formatJsonRpcRequest as Ge,formatJsonRpcError as ds,isJsonRpcResult as ps,isJsonRpcError as He}from\"@walletconnect/jsonrpc-utils\";import gs from\"@walletconnect/jsonrpc-ws-connection\";import ys from\"lodash.isequal\";import{getDocument as Ds}from\"@walletconnect/window-getters\";const ye=\"wc\",De=2,ie=\"core\",x=`${ye}@2:${ie}:`,Ye={name:ie,logger:\"error\"},Je={database:\":memory:\"},Xe=\"crypto\",me=\"client_ed25519_seed\",We=F,Ze=\"keychain\",Qe=\"0.3\",et=\"messages\",tt=\"0.3\",it=Ni,st=\"publisher\",rt=\"irn\",nt=\"error\",be=\"wss://relay.walletconnect.org\",ot=\"relayer\",v={message:\"relayer_message\",message_ack:\"relayer_message_ack\",connect:\"relayer_connect\",disconnect:\"relayer_disconnect\",error:\"relayer_error\",connection_stalled:\"relayer_connection_stalled\",transport_closed:\"relayer_transport_closed\",publish:\"relayer_publish\"},at=\"_subscription\",I={payload:\"payload\",connect:\"connect\",disconnect:\"disconnect\",error:\"error\"},ht=.1,ms={database:\":memory:\"},se=\"2.17.1\",bs=1e4,M={link_mode:\"link_mode\",relay:\"relay\"},ct=\"0.3\",lt=\"WALLETCONNECT_CLIENT_ID\",fe=\"WALLETCONNECT_LINK_MODE_APPS\",O={created:\"subscription_created\",deleted:\"subscription_deleted\",expired:\"subscription_expired\",disabled:\"subscription_disabled\",sync:\"subscription_sync\",resubscribed:\"subscription_resubscribed\"},fs=ee,ut=\"subscription\",dt=\"0.3\",pt=Te*1e3,gt=\"pairing\",yt=\"0.3\",_s=ee,B={wc_pairingDelete:{req:{ttl:F,prompt:!1,tag:1e3},res:{ttl:F,prompt:!1,tag:1001}},wc_pairingPing:{req:{ttl:oe,prompt:!1,tag:1002},res:{ttl:oe,prompt:!1,tag:1003}},unregistered_method:{req:{ttl:F,prompt:!1,tag:0},res:{ttl:F,prompt:!1,tag:0}}},V={create:\"pairing_create\",expire:\"pairing_expire\",delete:\"pairing_delete\",ping:\"pairing_ping\"},P={created:\"history_created\",updated:\"history_updated\",deleted:\"history_deleted\",sync:\"history_sync\"},Dt=\"history\",mt=\"0.3\",bt=\"expirer\",S={created:\"expirer_created\",deleted:\"expirer_deleted\",expired:\"expirer_expired\",sync:\"expirer_sync\"},ft=\"0.3\",Es=F,_t=\"verify-api\",vs=\"https://verify.walletconnect.com\",Et=\"https://verify.walletconnect.org\",J=Et,vt=`${J}/v3`,wt=[vs,Et],It=\"echo\",Tt=\"https://echo.walletconnect.com\",ws=\"event-client\",z={pairing_started:\"pairing_started\",pairing_uri_validation_success:\"pairing_uri_validation_success\",pairing_uri_not_expired:\"pairing_uri_not_expired\",store_new_pairing:\"store_new_pairing\",subscribing_pairing_topic:\"subscribing_pairing_topic\",subscribe_pairing_topic_success:\"subscribe_pairing_topic_success\",existing_pairing:\"existing_pairing\",pairing_not_expired:\"pairing_not_expired\",emit_inactive_pairing:\"emit_inactive_pairing\",emit_session_proposal:\"emit_session_proposal\",subscribing_to_pairing_topic:\"subscribing_to_pairing_topic\"},$={no_wss_connection:\"no_wss_connection\",no_internet_connection:\"no_internet_connection\",malformed_pairing_uri:\"malformed_pairing_uri\",active_pairing_already_exists:\"active_pairing_already_exists\",subscribe_pairing_topic_failure:\"subscribe_pairing_topic_failure\",pairing_expired:\"pairing_expired\",proposal_expired:\"proposal_expired\",proposal_listener_not_found:\"proposal_listener_not_found\"},Is={session_approve_started:\"session_approve_started\",proposal_not_expired:\"proposal_not_expired\",session_namespaces_validation_success:\"session_namespaces_validation_success\",create_session_topic:\"create_session_topic\",subscribing_session_topic:\"subscribing_session_topic\",subscribe_session_topic_success:\"subscribe_session_topic_success\",publishing_session_approve:\"publishing_session_approve\",session_approve_publish_success:\"session_approve_publish_success\",store_session:\"store_session\",publishing_session_settle:\"publishing_session_settle\",session_settle_publish_success:\"session_settle_publish_success\"},Ts={no_internet_connection:\"no_internet_connection\",no_wss_connection:\"no_wss_connection\",proposal_expired:\"proposal_expired\",subscribe_session_topic_failure:\"subscribe_session_topic_failure\",session_approve_publish_failure:\"session_approve_publish_failure\",session_settle_publish_failure:\"session_settle_publish_failure\",session_approve_namespace_validation_failure:\"session_approve_namespace_validation_failure\",proposal_not_found:\"proposal_not_found\"},Cs={authenticated_session_approve_started:\"authenticated_session_approve_started\",authenticated_session_not_expired:\"authenticated_session_not_expired\",chains_caip2_compliant:\"chains_caip2_compliant\",chains_evm_compliant:\"chains_evm_compliant\",create_authenticated_session_topic:\"create_authenticated_session_topic\",cacaos_verified:\"cacaos_verified\",store_authenticated_session:\"store_authenticated_session\",subscribing_authenticated_session_topic:\"subscribing_authenticated_session_topic\",subscribe_authenticated_session_topic_success:\"subscribe_authenticated_session_topic_success\",publishing_authenticated_session_approve:\"publishing_authenticated_session_approve\",authenticated_session_approve_publish_success:\"authenticated_session_approve_publish_success\"},Ps={no_internet_connection:\"no_internet_connection\",no_wss_connection:\"no_wss_connection\",missing_session_authenticate_request:\"missing_session_authenticate_request\",session_authenticate_request_expired:\"session_authenticate_request_expired\",chains_caip2_compliant_failure:\"chains_caip2_compliant_failure\",chains_evm_compliant_failure:\"chains_evm_compliant_failure\",invalid_cacao:\"invalid_cacao\",subscribe_authenticated_session_topic_failure:\"subscribe_authenticated_session_topic_failure\",authenticated_session_approve_publish_failure:\"authenticated_session_approve_publish_failure\",authenticated_session_pending_request_not_found:\"authenticated_session_pending_request_not_found\"},Ct=.1,Pt=\"event-client\",St=86400,Rt=\"https://pulse.walletconnect.org/batch\";function Ss(o,e){if(o.length>=255)throw new TypeError(\"Alphabet too long\");for(var t=new Uint8Array(256),s=0;s>>0,T=new Uint8Array(A);y!==b;){for(var N=u[y],k=0,R=A-1;(N!==0||k<_)&&R!==-1;R--,k++)N+=256*T[R]>>>0,T[R]=N%a>>>0,N=N/a>>>0;if(N!==0)throw new Error(\"Non-zero carry\");_=k,y++}for(var L=A-_;L!==A&&T[L]===0;)L++;for(var Q=h.repeat(g);L>>0,A=new Uint8Array(b);u[g];){var T=t[u.charCodeAt(g)];if(T===255)return;for(var N=0,k=b-1;(T!==0||N>>0,A[k]=T%256>>>0,T=T/256>>>0;if(T!==0)throw new Error(\"Non-zero carry\");y=N,g++}if(u[g]!==\" \"){for(var R=b-y;R!==b&&A[R]===0;)R++;for(var L=new Uint8Array(_+(b-R)),Q=_;R!==b;)L[Q++]=A[R++];return L}}}function m(u){var g=D(u);if(g)return g;throw new Error(`Non-${e} character`)}return{encode:p,decodeUnsafe:D,decode:m}}var Rs=Ss,xs=Rs;const xt=o=>{if(o instanceof Uint8Array&&o.constructor.name===\"Uint8Array\")return o;if(o instanceof ArrayBuffer)return new Uint8Array(o);if(ArrayBuffer.isView(o))return new Uint8Array(o.buffer,o.byteOffset,o.byteLength);throw new Error(\"Unknown type, must be binary type\")},Os=o=>new TextEncoder().encode(o),As=o=>new TextDecoder().decode(o);class Ns{constructor(e,t,s){this.name=e,this.prefix=t,this.baseEncode=s}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error(\"Unknown type, must be binary type\")}}class zs{constructor(e,t,s){if(this.name=e,this.prefix=t,t.codePointAt(0)===void 0)throw new Error(\"Invalid prefix character\");this.prefixCodePoint=t.codePointAt(0),this.baseDecode=s}decode(e){if(typeof e==\"string\"){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}else throw Error(\"Can only multibase decode strings\")}or(e){return Ot(this,e)}}class Ls{constructor(e){this.decoders=e}or(e){return Ot(this,e)}decode(e){const t=e[0],s=this.decoders[t];if(s)return s.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}}const Ot=(o,e)=>new Ls({...o.decoders||{[o.prefix]:o},...e.decoders||{[e.prefix]:e}});class $s{constructor(e,t,s,i){this.name=e,this.prefix=t,this.baseEncode=s,this.baseDecode=i,this.encoder=new Ns(e,t,s),this.decoder=new zs(e,t,i)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}}const re=({name:o,prefix:e,encode:t,decode:s})=>new $s(o,e,t,s),X=({prefix:o,name:e,alphabet:t})=>{const{encode:s,decode:i}=xs(t,e);return re({prefix:o,name:e,encode:s,decode:r=>xt(i(r))})},ks=(o,e,t,s)=>{const i={};for(let l=0;l=8&&(a-=8,n[c++]=255&h>>a)}if(a>=t||255&h<<8-a)throw new SyntaxError(\"Unexpected end of data\");return n},Ms=(o,e,t)=>{const s=e[e.length-1]===\"=\",i=(1<t;)n-=t,r+=e[i&a>>n];if(n&&(r+=e[i&a<re({prefix:e,name:o,encode(i){return Ms(i,s,t)},decode(i){return ks(i,s,t,o)}}),Us=re({prefix:\"\\0\",name:\"identity\",encode:o=>As(o),decode:o=>Os(o)});var Fs=Object.freeze({__proto__:null,identity:Us});const Ks=f({prefix:\"0\",name:\"base2\",alphabet:\"01\",bitsPerChar:1});var Bs=Object.freeze({__proto__:null,base2:Ks});const Vs=f({prefix:\"7\",name:\"base8\",alphabet:\"01234567\",bitsPerChar:3});var js=Object.freeze({__proto__:null,base8:Vs});const qs=X({prefix:\"9\",name:\"base10\",alphabet:\"0123456789\"});var Gs=Object.freeze({__proto__:null,base10:qs});const Hs=f({prefix:\"f\",name:\"base16\",alphabet:\"0123456789abcdef\",bitsPerChar:4}),Ys=f({prefix:\"F\",name:\"base16upper\",alphabet:\"0123456789ABCDEF\",bitsPerChar:4});var Js=Object.freeze({__proto__:null,base16:Hs,base16upper:Ys});const Xs=f({prefix:\"b\",name:\"base32\",alphabet:\"abcdefghijklmnopqrstuvwxyz234567\",bitsPerChar:5}),Ws=f({prefix:\"B\",name:\"base32upper\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567\",bitsPerChar:5}),Zs=f({prefix:\"c\",name:\"base32pad\",alphabet:\"abcdefghijklmnopqrstuvwxyz234567=\",bitsPerChar:5}),Qs=f({prefix:\"C\",name:\"base32padupper\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=\",bitsPerChar:5}),er=f({prefix:\"v\",name:\"base32hex\",alphabet:\"0123456789abcdefghijklmnopqrstuv\",bitsPerChar:5}),tr=f({prefix:\"V\",name:\"base32hexupper\",alphabet:\"0123456789ABCDEFGHIJKLMNOPQRSTUV\",bitsPerChar:5}),ir=f({prefix:\"t\",name:\"base32hexpad\",alphabet:\"0123456789abcdefghijklmnopqrstuv=\",bitsPerChar:5}),sr=f({prefix:\"T\",name:\"base32hexpadupper\",alphabet:\"0123456789ABCDEFGHIJKLMNOPQRSTUV=\",bitsPerChar:5}),rr=f({prefix:\"h\",name:\"base32z\",alphabet:\"ybndrfg8ejkmcpqxot1uwisza345h769\",bitsPerChar:5});var nr=Object.freeze({__proto__:null,base32:Xs,base32upper:Ws,base32pad:Zs,base32padupper:Qs,base32hex:er,base32hexupper:tr,base32hexpad:ir,base32hexpadupper:sr,base32z:rr});const or=X({prefix:\"k\",name:\"base36\",alphabet:\"0123456789abcdefghijklmnopqrstuvwxyz\"}),ar=X({prefix:\"K\",name:\"base36upper\",alphabet:\"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\"});var hr=Object.freeze({__proto__:null,base36:or,base36upper:ar});const cr=X({name:\"base58btc\",prefix:\"z\",alphabet:\"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz\"}),lr=X({name:\"base58flickr\",prefix:\"Z\",alphabet:\"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ\"});var ur=Object.freeze({__proto__:null,base58btc:cr,base58flickr:lr});const dr=f({prefix:\"m\",name:\"base64\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",bitsPerChar:6}),pr=f({prefix:\"M\",name:\"base64pad\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\",bitsPerChar:6}),gr=f({prefix:\"u\",name:\"base64url\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_\",bitsPerChar:6}),yr=f({prefix:\"U\",name:\"base64urlpad\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=\",bitsPerChar:6});var Dr=Object.freeze({__proto__:null,base64:dr,base64pad:pr,base64url:gr,base64urlpad:yr});const At=Array.from(\"\\u{1F680}\\u{1FA90}\\u2604\\u{1F6F0}\\u{1F30C}\\u{1F311}\\u{1F312}\\u{1F313}\\u{1F314}\\u{1F315}\\u{1F316}\\u{1F317}\\u{1F318}\\u{1F30D}\\u{1F30F}\\u{1F30E}\\u{1F409}\\u2600\\u{1F4BB}\\u{1F5A5}\\u{1F4BE}\\u{1F4BF}\\u{1F602}\\u2764\\u{1F60D}\\u{1F923}\\u{1F60A}\\u{1F64F}\\u{1F495}\\u{1F62D}\\u{1F618}\\u{1F44D}\\u{1F605}\\u{1F44F}\\u{1F601}\\u{1F525}\\u{1F970}\\u{1F494}\\u{1F496}\\u{1F499}\\u{1F622}\\u{1F914}\\u{1F606}\\u{1F644}\\u{1F4AA}\\u{1F609}\\u263A\\u{1F44C}\\u{1F917}\\u{1F49C}\\u{1F614}\\u{1F60E}\\u{1F607}\\u{1F339}\\u{1F926}\\u{1F389}\\u{1F49E}\\u270C\\u2728\\u{1F937}\\u{1F631}\\u{1F60C}\\u{1F338}\\u{1F64C}\\u{1F60B}\\u{1F497}\\u{1F49A}\\u{1F60F}\\u{1F49B}\\u{1F642}\\u{1F493}\\u{1F929}\\u{1F604}\\u{1F600}\\u{1F5A4}\\u{1F603}\\u{1F4AF}\\u{1F648}\\u{1F447}\\u{1F3B6}\\u{1F612}\\u{1F92D}\\u2763\\u{1F61C}\\u{1F48B}\\u{1F440}\\u{1F62A}\\u{1F611}\\u{1F4A5}\\u{1F64B}\\u{1F61E}\\u{1F629}\\u{1F621}\\u{1F92A}\\u{1F44A}\\u{1F973}\\u{1F625}\\u{1F924}\\u{1F449}\\u{1F483}\\u{1F633}\\u270B\\u{1F61A}\\u{1F61D}\\u{1F634}\\u{1F31F}\\u{1F62C}\\u{1F643}\\u{1F340}\\u{1F337}\\u{1F63B}\\u{1F613}\\u2B50\\u2705\\u{1F97A}\\u{1F308}\\u{1F608}\\u{1F918}\\u{1F4A6}\\u2714\\u{1F623}\\u{1F3C3}\\u{1F490}\\u2639\\u{1F38A}\\u{1F498}\\u{1F620}\\u261D\\u{1F615}\\u{1F33A}\\u{1F382}\\u{1F33B}\\u{1F610}\\u{1F595}\\u{1F49D}\\u{1F64A}\\u{1F639}\\u{1F5E3}\\u{1F4AB}\\u{1F480}\\u{1F451}\\u{1F3B5}\\u{1F91E}\\u{1F61B}\\u{1F534}\\u{1F624}\\u{1F33C}\\u{1F62B}\\u26BD\\u{1F919}\\u2615\\u{1F3C6}\\u{1F92B}\\u{1F448}\\u{1F62E}\\u{1F646}\\u{1F37B}\\u{1F343}\\u{1F436}\\u{1F481}\\u{1F632}\\u{1F33F}\\u{1F9E1}\\u{1F381}\\u26A1\\u{1F31E}\\u{1F388}\\u274C\\u270A\\u{1F44B}\\u{1F630}\\u{1F928}\\u{1F636}\\u{1F91D}\\u{1F6B6}\\u{1F4B0}\\u{1F353}\\u{1F4A2}\\u{1F91F}\\u{1F641}\\u{1F6A8}\\u{1F4A8}\\u{1F92C}\\u2708\\u{1F380}\\u{1F37A}\\u{1F913}\\u{1F619}\\u{1F49F}\\u{1F331}\\u{1F616}\\u{1F476}\\u{1F974}\\u25B6\\u27A1\\u2753\\u{1F48E}\\u{1F4B8}\\u2B07\\u{1F628}\\u{1F31A}\\u{1F98B}\\u{1F637}\\u{1F57A}\\u26A0\\u{1F645}\\u{1F61F}\\u{1F635}\\u{1F44E}\\u{1F932}\\u{1F920}\\u{1F927}\\u{1F4CC}\\u{1F535}\\u{1F485}\\u{1F9D0}\\u{1F43E}\\u{1F352}\\u{1F617}\\u{1F911}\\u{1F30A}\\u{1F92F}\\u{1F437}\\u260E\\u{1F4A7}\\u{1F62F}\\u{1F486}\\u{1F446}\\u{1F3A4}\\u{1F647}\\u{1F351}\\u2744\\u{1F334}\\u{1F4A3}\\u{1F438}\\u{1F48C}\\u{1F4CD}\\u{1F940}\\u{1F922}\\u{1F445}\\u{1F4A1}\\u{1F4A9}\\u{1F450}\\u{1F4F8}\\u{1F47B}\\u{1F910}\\u{1F92E}\\u{1F3BC}\\u{1F975}\\u{1F6A9}\\u{1F34E}\\u{1F34A}\\u{1F47C}\\u{1F48D}\\u{1F4E3}\\u{1F942}\"),mr=At.reduce((o,e,t)=>(o[t]=e,o),[]),br=At.reduce((o,e,t)=>(o[e.codePointAt(0)]=t,o),[]);function fr(o){return o.reduce((e,t)=>(e+=mr[t],e),\"\")}function _r(o){const e=[];for(const t of o){const s=br[t.codePointAt(0)];if(s===void 0)throw new Error(`Non-base256emoji character: ${t}`);e.push(s)}return new Uint8Array(e)}const Er=re({prefix:\"\\u{1F680}\",name:\"base256emoji\",encode:fr,decode:_r});var vr=Object.freeze({__proto__:null,base256emoji:Er}),wr=zt,Nt=128,Ir=127,Tr=~Ir,Cr=Math.pow(2,31);function zt(o,e,t){e=e||[],t=t||0;for(var s=t;o>=Cr;)e[t++]=o&255|Nt,o/=128;for(;o&Tr;)e[t++]=o&255|Nt,o>>>=7;return e[t]=o|0,zt.bytes=t-s+1,e}var Pr=_e,Sr=128,Lt=127;function _e(o,s){var t=0,s=s||0,i=0,r=s,n,a=o.length;do{if(r>=a)throw _e.bytes=0,new RangeError(\"Could not decode varint\");n=o[r++],t+=i<28?(n&Lt)<=Sr);return _e.bytes=r-s,t}var Rr=Math.pow(2,7),xr=Math.pow(2,14),Or=Math.pow(2,21),Ar=Math.pow(2,28),Nr=Math.pow(2,35),zr=Math.pow(2,42),Lr=Math.pow(2,49),$r=Math.pow(2,56),kr=Math.pow(2,63),Mr=function(o){return o($t.encode(o,e,t),e),Mt=o=>$t.encodingLength(o),Ee=(o,e)=>{const t=e.byteLength,s=Mt(o),i=s+Mt(t),r=new Uint8Array(i+t);return kt(o,r,0),kt(t,r,s),r.set(e,i),new Fr(o,t,e,r)};class Fr{constructor(e,t,s,i){this.code=e,this.size=t,this.digest=s,this.bytes=i}}const Ut=({name:o,code:e,encode:t})=>new Kr(o,e,t);class Kr{constructor(e,t,s){this.name=e,this.code=t,this.encode=s}digest(e){if(e instanceof Uint8Array){const t=this.encode(e);return t instanceof Uint8Array?Ee(this.code,t):t.then(s=>Ee(this.code,s))}else throw Error(\"Unknown type, must be binary type\")}}const Ft=o=>async e=>new Uint8Array(await crypto.subtle.digest(o,e)),Br=Ut({name:\"sha2-256\",code:18,encode:Ft(\"SHA-256\")}),Vr=Ut({name:\"sha2-512\",code:19,encode:Ft(\"SHA-512\")});var jr=Object.freeze({__proto__:null,sha256:Br,sha512:Vr});const Kt=0,qr=\"identity\",Bt=xt,Gr=o=>Ee(Kt,Bt(o)),Hr={code:Kt,name:qr,encode:Bt,digest:Gr};var Yr=Object.freeze({__proto__:null,identity:Hr});new TextEncoder,new TextDecoder;const Vt={...Fs,...Bs,...js,...Gs,...Js,...nr,...hr,...ur,...Dr,...vr};({...jr,...Yr});function Jr(o=0){return globalThis.Buffer!=null&&globalThis.Buffer.allocUnsafe!=null?globalThis.Buffer.allocUnsafe(o):new Uint8Array(o)}function jt(o,e,t,s){return{name:o,prefix:e,encoder:{name:o,prefix:e,encode:t},decoder:{decode:s}}}const qt=jt(\"utf8\",\"u\",o=>\"u\"+new TextDecoder(\"utf8\").decode(o),o=>new TextEncoder().encode(o.substring(1))),ve=jt(\"ascii\",\"a\",o=>{let e=\"a\";for(let t=0;t{o=o.substring(1);const e=Jr(o.length);for(let t=0;t{if(!this.initialized){const s=await this.getKeyChain();typeof s<\"u\"&&(this.keychain=s),this.initialized=!0}},this.has=s=>(this.isInitialized(),this.keychain.has(s)),this.set=async(s,i)=>{this.isInitialized(),this.keychain.set(s,i),await this.persist()},this.get=s=>{this.isInitialized();const i=this.keychain.get(s);if(typeof i>\"u\"){const{message:r}=d(\"NO_MATCHING_KEY\",`${this.name}: ${s}`);throw new Error(r)}return i},this.del=async s=>{this.isInitialized(),this.keychain.delete(s),await this.persist()},this.core=e,this.logger=E(t,this.name)}get context(){return C(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+\"//\"+this.name}async setKeyChain(e){await this.core.storage.setItem(this.storageKey,Re(e))}async getKeyChain(){const e=await this.core.storage.getItem(this.storageKey);return typeof e<\"u\"?xe(e):void 0}async persist(){await this.setKeyChain(this.keychain)}isInitialized(){if(!this.initialized){const{message:e}=d(\"NOT_INITIALIZED\",this.name);throw new Error(e)}}}class Ht{constructor(e,t,s){this.core=e,this.logger=t,this.name=Xe,this.randomSessionIdentifier=ce(),this.initialized=!1,this.init=async()=>{this.initialized||(await this.keychain.init(),this.initialized=!0)},this.hasKeys=i=>(this.isInitialized(),this.keychain.has(i)),this.getClientId=async()=>{this.isInitialized();const i=await this.getClientSeed(),r=te.generateKeyPair(i);return te.encodeIss(r.publicKey)},this.generateKeyPair=()=>{this.isInitialized();const i=$i();return this.setPrivateKey(i.publicKey,i.privateKey)},this.signJWT=async i=>{this.isInitialized();const r=await this.getClientSeed(),n=te.generateKeyPair(r),a=this.randomSessionIdentifier,h=We;return await te.signJWT(a,i,h,n)},this.generateSharedKey=(i,r,n)=>{this.isInitialized();const a=this.getPrivateKey(i),h=ki(a,r);return this.setSymKey(h,n)},this.setSymKey=async(i,r)=>{this.isInitialized();const n=r||Mi(i);return await this.keychain.set(n,i),n},this.deleteKeyPair=async i=>{this.isInitialized(),await this.keychain.del(i)},this.deleteSymKey=async i=>{this.isInitialized(),await this.keychain.del(i)},this.encode=async(i,r,n)=>{this.isInitialized();const a=Ui(n),h=Li(r);if(Oe(a))return Fi(h,n?.encoding);if(Ae(a)){const D=a.senderPublicKey,m=a.receiverPublicKey;i=await this.generateSharedKey(D,m)}const c=this.getSymKey(i),{type:l,senderPublicKey:p}=a;return Ki({type:l,symKey:c,message:h,senderPublicKey:p,encoding:n?.encoding})},this.decode=async(i,r,n)=>{this.isInitialized();const a=Bi(r,n);if(Oe(a)){const h=Vi(r,n?.encoding);return Pe(h)}if(Ae(a)){const h=a.receiverPublicKey,c=a.senderPublicKey;i=await this.generateSharedKey(h,c)}try{const h=this.getSymKey(i),c=ji({symKey:h,encoded:r,encoding:n?.encoding});return Pe(c)}catch(h){this.logger.error(`Failed to decode message from topic: '${i}', clientId: '${await this.getClientId()}'`),this.logger.error(h)}},this.getPayloadType=(i,r=ze)=>{const n=Ne({encoded:i,encoding:r});return qi(n.type)},this.getPayloadSenderPublicKey=(i,r=ze)=>{const n=Ne({encoded:i,encoding:r});return n.senderPublicKey?ls(n.senderPublicKey,Gi):void 0},this.core=e,this.logger=E(t,this.name),this.keychain=s||new Gt(this.core,this.logger)}get context(){return C(this.logger)}async setPrivateKey(e,t){return await this.keychain.set(e,t),e}getPrivateKey(e){return this.keychain.get(e)}async getClientSeed(){let e=\"\";try{e=this.keychain.get(me)}catch{e=ce(),await this.keychain.set(me,e)}return Wr(e,\"base16\")}getSymKey(e){return this.keychain.get(e)}isInitialized(){if(!this.initialized){const{message:e}=d(\"NOT_INITIALIZED\",this.name);throw new Error(e)}}}class Yt extends vi{constructor(e,t){super(e,t),this.logger=e,this.core=t,this.messages=new Map,this.name=et,this.version=tt,this.initialized=!1,this.storagePrefix=x,this.init=async()=>{if(!this.initialized){this.logger.trace(\"Initialized\");try{const s=await this.getRelayerMessages();typeof s<\"u\"&&(this.messages=s),this.logger.debug(`Successfully Restored records for ${this.name}`),this.logger.trace({type:\"method\",method:\"restore\",size:this.messages.size})}catch(s){this.logger.debug(`Failed to Restore records for ${this.name}`),this.logger.error(s)}finally{this.initialized=!0}}},this.set=async(s,i)=>{this.isInitialized();const r=le(i);let n=this.messages.get(s);return typeof n>\"u\"&&(n={}),typeof n[r]<\"u\"||(n[r]=i,this.messages.set(s,n),await this.persist()),r},this.get=s=>{this.isInitialized();let i=this.messages.get(s);return typeof i>\"u\"&&(i={}),i},this.has=(s,i)=>{this.isInitialized();const r=this.get(s),n=le(i);return typeof r[n]<\"u\"},this.del=async s=>{this.isInitialized(),this.messages.delete(s),await this.persist()},this.logger=E(e,this.name),this.core=t}get context(){return C(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+\"//\"+this.name}async setRelayerMessages(e){await this.core.storage.setItem(this.storageKey,Re(e))}async getRelayerMessages(){const e=await this.core.storage.getItem(this.storageKey);return typeof e<\"u\"?xe(e):void 0}async persist(){await this.setRelayerMessages(this.messages)}isInitialized(){if(!this.initialized){const{message:e}=d(\"NOT_INITIALIZED\",this.name);throw new Error(e)}}}class Zr extends wi{constructor(e,t){super(e,t),this.relayer=e,this.logger=t,this.events=new U,this.name=st,this.queue=new Map,this.publishTimeout=w(ae),this.failedPublishTimeout=w(q),this.needsTransportRestart=!1,this.publish=async(s,i,r)=>{var n;this.logger.debug(\"Publishing Payload\"),this.logger.trace({type:\"method\",method:\"publish\",params:{topic:s,message:i,opts:r}});const a=r?.ttl||it,h=ue(r),c=r?.prompt||!1,l=r?.tag||0,p=r?.id||Be().toString(),D={topic:s,message:i,opts:{ttl:a,relay:h,prompt:c,tag:l,id:p,attestation:r?.attestation}},m=`Failed to publish payload, please try again. id:${p} tag:${l}`,u=Date.now();let g,_=1;try{for(;g===void 0;){if(Date.now()-u>this.publishTimeout)throw new Error(m);this.logger.trace({id:p,attempts:_},`publisher.publish - attempt ${_}`),g=await await K(this.rpcPublish(s,i,a,h,c,l,p,r?.attestation).catch(y=>this.logger.warn(y)),this.publishTimeout,m),_++,g||await new Promise(y=>setTimeout(y,this.failedPublishTimeout))}this.relayer.events.emit(v.publish,D),this.logger.debug(\"Successfully Published Payload\"),this.logger.trace({type:\"method\",method:\"publish\",params:{id:p,topic:s,message:i,opts:r}})}catch(y){if(this.logger.debug(\"Failed to Publish Payload\"),this.logger.error(y),(n=r?.internal)!=null&&n.throwOnFailedPublish)throw y;this.queue.set(p,D)}},this.on=(s,i)=>{this.events.on(s,i)},this.once=(s,i)=>{this.events.once(s,i)},this.off=(s,i)=>{this.events.off(s,i)},this.removeListener=(s,i)=>{this.events.removeListener(s,i)},this.relayer=e,this.logger=E(t,this.name),this.registerEventListeners()}get context(){return C(this.logger)}rpcPublish(e,t,s,i,r,n,a,h){var c,l,p,D;const m={method:G(i.protocol).publish,params:{topic:e,message:t,ttl:s,prompt:r,tag:n,attestation:h},id:a};return de((c=m.params)==null?void 0:c.prompt)&&((l=m.params)==null||delete l.prompt),de((p=m.params)==null?void 0:p.tag)&&((D=m.params)==null||delete D.tag),this.logger.debug(\"Outgoing Relay Payload\"),this.logger.trace({type:\"message\",direction:\"outgoing\",request:m}),this.relayer.request(m)}removeRequestFromQueue(e){this.queue.delete(e)}checkQueue(){this.queue.forEach(async e=>{const{topic:t,message:s,opts:i}=e;await this.publish(t,s,i)})}registerEventListeners(){this.relayer.core.heartbeat.on(j.pulse,()=>{if(this.needsTransportRestart){this.needsTransportRestart=!1,this.relayer.events.emit(v.connection_stalled);return}this.checkQueue()}),this.relayer.on(v.message_ack,e=>{this.removeRequestFromQueue(e.id.toString())})}}class Qr{constructor(){this.map=new Map,this.set=(e,t)=>{const s=this.get(e);this.exists(e,t)||this.map.set(e,[...s,t])},this.get=e=>this.map.get(e)||[],this.exists=(e,t)=>this.get(e).includes(t),this.delete=(e,t)=>{if(typeof t>\"u\"){this.map.delete(e);return}if(!this.map.has(e))return;const s=this.get(e);if(!this.exists(e,t))return;const i=s.filter(r=>r!==t);if(!i.length){this.map.delete(e);return}this.map.set(e,i)},this.clear=()=>{this.map.clear()}}get topics(){return Array.from(this.map.keys())}}var en=Object.defineProperty,tn=Object.defineProperties,sn=Object.getOwnPropertyDescriptors,Jt=Object.getOwnPropertySymbols,rn=Object.prototype.hasOwnProperty,nn=Object.prototype.propertyIsEnumerable,Xt=(o,e,t)=>e in o?en(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t,W=(o,e)=>{for(var t in e||(e={}))rn.call(e,t)&&Xt(o,t,e[t]);if(Jt)for(var t of Jt(e))nn.call(e,t)&&Xt(o,t,e[t]);return o},we=(o,e)=>tn(o,sn(e));class Wt extends Ii{constructor(e,t){super(e,t),this.relayer=e,this.logger=t,this.subscriptions=new Map,this.topicMap=new Qr,this.events=new U,this.name=ut,this.version=dt,this.pending=new Map,this.cached=[],this.initialized=!1,this.pendingSubscriptionWatchLabel=\"pending_sub_watch_label\",this.pollingInterval=20,this.storagePrefix=x,this.subscribeTimeout=w(ae),this.restartInProgress=!1,this.batchSubscribeTopicsLimit=500,this.pendingBatchMessages=[],this.init=async()=>{this.initialized||(this.logger.trace(\"Initialized\"),this.registerEventListeners(),this.clientId=await this.relayer.core.crypto.getClientId(),await this.restore()),this.initialized=!0},this.subscribe=async(s,i)=>{this.isInitialized(),this.logger.debug(\"Subscribing Topic\"),this.logger.trace({type:\"method\",method:\"subscribe\",params:{topic:s,opts:i}});try{const r=ue(i),n={topic:s,relay:r,transportType:i?.transportType};this.pending.set(s,n);const a=await this.rpcSubscribe(s,r,i);return typeof a==\"string\"&&(this.onSubscribe(a,n),this.logger.debug(\"Successfully Subscribed Topic\"),this.logger.trace({type:\"method\",method:\"subscribe\",params:{topic:s,opts:i}})),a}catch(r){throw this.logger.debug(\"Failed to Subscribe Topic\"),this.logger.error(r),r}},this.unsubscribe=async(s,i)=>{await this.restartToComplete(),this.isInitialized(),typeof i?.id<\"u\"?await this.unsubscribeById(s,i.id,i):await this.unsubscribeByTopic(s,i)},this.isSubscribed=async s=>{if(this.topics.includes(s))return!0;const i=`${this.pendingSubscriptionWatchLabel}_${s}`;return await new Promise((r,n)=>{const a=new zi;a.start(i);const h=setInterval(()=>{!this.pending.has(s)&&this.topics.includes(s)&&(clearInterval(h),a.stop(i),r(!0)),a.elapsed(i)>=pt&&(clearInterval(h),a.stop(i),n(new Error(\"Subscription resolution timeout\")))},this.pollingInterval)}).catch(()=>!1)},this.on=(s,i)=>{this.events.on(s,i)},this.once=(s,i)=>{this.events.once(s,i)},this.off=(s,i)=>{this.events.off(s,i)},this.removeListener=(s,i)=>{this.events.removeListener(s,i)},this.start=async()=>{await this.onConnect()},this.stop=async()=>{await this.onDisconnect()},this.restart=async()=>{this.restartInProgress=!0,await this.restore(),await this.reset(),this.restartInProgress=!1},this.relayer=e,this.logger=E(t,this.name),this.clientId=\"\"}get context(){return C(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.relayer.core.customStoragePrefix+\"//\"+this.name}get length(){return this.subscriptions.size}get ids(){return Array.from(this.subscriptions.keys())}get values(){return Array.from(this.subscriptions.values())}get topics(){return this.topicMap.topics}hasSubscription(e,t){let s=!1;try{s=this.getSubscription(e).topic===t}catch{}return s}onEnable(){this.cached=[],this.initialized=!0}onDisable(){this.cached=this.values,this.subscriptions.clear(),this.topicMap.clear()}async unsubscribeByTopic(e,t){const s=this.topicMap.get(e);await Promise.all(s.map(async i=>await this.unsubscribeById(e,i,t)))}async unsubscribeById(e,t,s){this.logger.debug(\"Unsubscribing Topic\"),this.logger.trace({type:\"method\",method:\"unsubscribe\",params:{topic:e,id:t,opts:s}});try{const i=ue(s);await this.rpcUnsubscribe(e,t,i);const r=H(\"USER_DISCONNECTED\",`${this.name}, ${e}`);await this.onUnsubscribe(e,t,r),this.logger.debug(\"Successfully Unsubscribed Topic\"),this.logger.trace({type:\"method\",method:\"unsubscribe\",params:{topic:e,id:t,opts:s}})}catch(i){throw this.logger.debug(\"Failed to Unsubscribe Topic\"),this.logger.error(i),i}}async rpcSubscribe(e,t,s){var i;s?.transportType===M.relay&&await this.restartToComplete();const r={method:G(t.protocol).subscribe,params:{topic:e}};this.logger.debug(\"Outgoing Relay Payload\"),this.logger.trace({type:\"payload\",direction:\"outgoing\",request:r});const n=(i=s?.internal)==null?void 0:i.throwOnFailedPublish;try{const a=le(e+this.clientId);if(s?.transportType===M.link_mode)return setTimeout(()=>{(this.relayer.connected||this.relayer.connecting)&&this.relayer.request(r).catch(c=>this.logger.warn(c))},w(q)),a;const h=await K(this.relayer.request(r).catch(c=>this.logger.warn(c)),this.subscribeTimeout,`Subscribing to ${e} failed, please try again`);if(!h&&n)throw new Error(`Subscribing to ${e} failed, please try again`);return h?a:null}catch(a){if(this.logger.debug(\"Outgoing Relay Subscribe Payload stalled\"),this.relayer.events.emit(v.connection_stalled),n)throw a}return null}async rpcBatchSubscribe(e){if(!e.length)return;const t=e[0].relay,s={method:G(t.protocol).batchSubscribe,params:{topics:e.map(i=>i.topic)}};this.logger.debug(\"Outgoing Relay Payload\"),this.logger.trace({type:\"payload\",direction:\"outgoing\",request:s});try{return await await K(this.relayer.request(s).catch(i=>this.logger.warn(i)),this.subscribeTimeout)}catch{this.relayer.events.emit(v.connection_stalled)}}async rpcBatchFetchMessages(e){if(!e.length)return;const t=e[0].relay,s={method:G(t.protocol).batchFetchMessages,params:{topics:e.map(r=>r.topic)}};this.logger.debug(\"Outgoing Relay Payload\"),this.logger.trace({type:\"payload\",direction:\"outgoing\",request:s});let i;try{i=await await K(this.relayer.request(s).catch(r=>this.logger.warn(r)),this.subscribeTimeout)}catch{this.relayer.events.emit(v.connection_stalled)}return i}rpcUnsubscribe(e,t,s){const i={method:G(s.protocol).unsubscribe,params:{topic:e,id:t}};return this.logger.debug(\"Outgoing Relay Payload\"),this.logger.trace({type:\"payload\",direction:\"outgoing\",request:i}),this.relayer.request(i)}onSubscribe(e,t){this.setSubscription(e,we(W({},t),{id:e})),this.pending.delete(t.topic)}onBatchSubscribe(e){e.length&&e.forEach(t=>{this.setSubscription(t.id,W({},t)),this.pending.delete(t.topic)})}async onUnsubscribe(e,t,s){this.events.removeAllListeners(t),this.hasSubscription(t,e)&&this.deleteSubscription(t,s),await this.relayer.messages.del(e)}async setRelayerSubscriptions(e){await this.relayer.core.storage.setItem(this.storageKey,e)}async getRelayerSubscriptions(){return await this.relayer.core.storage.getItem(this.storageKey)}setSubscription(e,t){this.logger.debug(\"Setting subscription\"),this.logger.trace({type:\"method\",method:\"setSubscription\",id:e,subscription:t}),this.addSubscription(e,t)}addSubscription(e,t){this.subscriptions.set(e,W({},t)),this.topicMap.set(t.topic,e),this.events.emit(O.created,t)}getSubscription(e){this.logger.debug(\"Getting subscription\"),this.logger.trace({type:\"method\",method:\"getSubscription\",id:e});const t=this.subscriptions.get(e);if(!t){const{message:s}=d(\"NO_MATCHING_KEY\",`${this.name}: ${e}`);throw new Error(s)}return t}deleteSubscription(e,t){this.logger.debug(\"Deleting subscription\"),this.logger.trace({type:\"method\",method:\"deleteSubscription\",id:e,reason:t});const s=this.getSubscription(e);this.subscriptions.delete(e),this.topicMap.delete(s.topic,e),this.events.emit(O.deleted,we(W({},s),{reason:t}))}async persist(){await this.setRelayerSubscriptions(this.values),this.events.emit(O.sync)}async reset(){if(this.cached.length){const e=Math.ceil(this.cached.length/this.batchSubscribeTopicsLimit);for(let t=0;t\"u\"||!e.length)return;if(this.subscriptions.size){const{message:t}=d(\"RESTORE_WILL_OVERRIDE\",this.name);throw this.logger.error(t),this.logger.error(`${this.name}: ${JSON.stringify(this.values)}`),new Error(t)}this.cached=e,this.logger.debug(`Successfully Restored subscriptions for ${this.name}`),this.logger.trace({type:\"method\",method:\"restore\",subscriptions:this.values})}catch(e){this.logger.debug(`Failed to Restore subscriptions for ${this.name}`),this.logger.error(e)}}async batchSubscribe(e){if(!e.length)return;const t=await this.rpcBatchSubscribe(e);Hi(t)&&this.onBatchSubscribe(t.map((s,i)=>we(W({},e[i]),{id:s})))}async batchFetchMessages(e){if(!e.length)return;this.logger.trace(`Fetching batch messages for ${e.length} subscriptions`);const t=await this.rpcBatchFetchMessages(e);t&&t.messages&&(this.pendingBatchMessages=this.pendingBatchMessages.concat(t.messages))}async onConnect(){await this.restart(),this.onEnable()}onDisconnect(){this.onDisable()}async checkPending(){if(!this.initialized||!this.relayer.connected)return;const e=[];this.pending.forEach(t=>{e.push(t)}),await this.batchSubscribe(e),this.pendingBatchMessages.length&&(await this.relayer.handleBatchMessageEvents(this.pendingBatchMessages),this.pendingBatchMessages=[])}registerEventListeners(){this.relayer.core.heartbeat.on(j.pulse,async()=>{await this.checkPending()}),this.events.on(O.created,async e=>{const t=O.created;this.logger.info(`Emitting ${t}`),this.logger.debug({type:\"event\",event:t,data:e}),await this.persist()}),this.events.on(O.deleted,async e=>{const t=O.deleted;this.logger.info(`Emitting ${t}`),this.logger.debug({type:\"event\",event:t,data:e}),await this.persist()})}isInitialized(){if(!this.initialized){const{message:e}=d(\"NOT_INITIALIZED\",this.name);throw new Error(e)}}async restartToComplete(){!this.relayer.connected&&!this.relayer.connecting&&await this.relayer.transportOpen(),this.restartInProgress&&await new Promise(e=>{const t=setInterval(()=>{this.restartInProgress||(clearInterval(t),e())},this.pollingInterval)})}}var on=Object.defineProperty,Zt=Object.getOwnPropertySymbols,an=Object.prototype.hasOwnProperty,hn=Object.prototype.propertyIsEnumerable,Qt=(o,e,t)=>e in o?on(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t,ei=(o,e)=>{for(var t in e||(e={}))an.call(e,t)&&Qt(o,t,e[t]);if(Zt)for(var t of Zt(e))hn.call(e,t)&&Qt(o,t,e[t]);return o};class ti extends Ti{constructor(e){super(e),this.protocol=\"wc\",this.version=2,this.events=new U,this.name=ot,this.transportExplicitlyClosed=!1,this.initialized=!1,this.connectionAttemptInProgress=!1,this.connectionStatusPollingInterval=20,this.staleConnectionErrors=[\"socket hang up\",\"stalled\",\"interrupted\"],this.hasExperiencedNetworkDisruption=!1,this.requestsInFlight=new Map,this.heartBeatTimeout=w(oe+q),this.request=async t=>{var s,i;this.logger.debug(\"Publishing Request Payload\");const r=t.id||Be().toString();await this.toEstablishConnection();try{const n=this.provider.request(t);this.requestsInFlight.set(r,{promise:n,request:t}),this.logger.trace({id:r,method:t.method,topic:(s=t.params)==null?void 0:s.topic},\"relayer.request - attempt to publish...\");const a=await new Promise(async(h,c)=>{const l=()=>{c(new Error(`relayer.request - publish interrupted, id: ${r}`))};this.provider.on(I.disconnect,l);const p=await n;this.provider.off(I.disconnect,l),h(p)});return this.logger.trace({id:r,method:t.method,topic:(i=t.params)==null?void 0:i.topic},\"relayer.request - published\"),a}catch(n){throw this.logger.debug(`Failed to Publish Request: ${r}`),n}finally{this.requestsInFlight.delete(r)}},this.resetPingTimeout=()=>{if(Le())try{clearTimeout(this.pingTimeout),this.pingTimeout=setTimeout(()=>{var t,s,i;(i=(s=(t=this.provider)==null?void 0:t.connection)==null?void 0:s.socket)==null||i.terminate()},this.heartBeatTimeout)}catch(t){this.logger.warn(t)}},this.onPayloadHandler=t=>{this.onProviderPayload(t),this.resetPingTimeout()},this.onConnectHandler=()=>{this.logger.trace(\"relayer connected\"),this.startPingTimeout(),this.events.emit(v.connect)},this.onDisconnectHandler=()=>{this.logger.trace(\"relayer disconnected\"),this.onProviderDisconnect()},this.onProviderErrorHandler=t=>{this.logger.error(t),this.events.emit(v.error,t),this.logger.info(\"Fatal socket error received, closing transport\"),this.transportClose()},this.registerProviderListeners=()=>{this.provider.on(I.payload,this.onPayloadHandler),this.provider.on(I.connect,this.onConnectHandler),this.provider.on(I.disconnect,this.onDisconnectHandler),this.provider.on(I.error,this.onProviderErrorHandler)},this.core=e.core,this.logger=typeof e.logger<\"u\"&&typeof e.logger!=\"string\"?E(e.logger,this.name):_i(Ie({level:e.logger||nt})),this.messages=new Yt(this.logger,e.core),this.subscriber=new Wt(this,this.logger),this.publisher=new Zr(this,this.logger),this.relayUrl=e?.relayUrl||be,this.projectId=e.projectId,this.bundleId=Yi(),this.provider={}}async init(){if(this.logger.trace(\"Initialized\"),this.registerEventListeners(),await Promise.all([this.messages.init(),this.subscriber.init()]),this.initialized=!0,this.subscriber.cached.length>0)try{await this.transportOpen()}catch(e){this.logger.warn(e)}}get context(){return C(this.logger)}get connected(){var e,t,s;return((s=(t=(e=this.provider)==null?void 0:e.connection)==null?void 0:t.socket)==null?void 0:s.readyState)===1}get connecting(){var e,t,s;return((s=(t=(e=this.provider)==null?void 0:e.connection)==null?void 0:t.socket)==null?void 0:s.readyState)===0}async publish(e,t,s){this.isInitialized(),await this.publisher.publish(e,t,s),await this.recordMessageEvent({topic:e,message:t,publishedAt:Date.now(),transportType:M.relay})}async subscribe(e,t){var s,i,r;this.isInitialized(),t?.transportType===\"relay\"&&await this.toEstablishConnection();const n=typeof((s=t?.internal)==null?void 0:s.throwOnFailedPublish)>\"u\"?!0:(i=t?.internal)==null?void 0:i.throwOnFailedPublish;let a=((r=this.subscriber.topicMap.get(e))==null?void 0:r[0])||\"\",h;const c=l=>{l.topic===e&&(this.subscriber.off(O.created,c),h())};return await Promise.all([new Promise(l=>{h=l,this.subscriber.on(O.created,c)}),new Promise(async(l,p)=>{a=await this.subscriber.subscribe(e,ei({internal:{throwOnFailedPublish:n}},t)).catch(D=>{n&&p(D)})||a,l()})]),a}async unsubscribe(e,t){this.isInitialized(),await this.subscriber.unsubscribe(e,t)}on(e,t){this.events.on(e,t)}once(e,t){this.events.once(e,t)}off(e,t){this.events.off(e,t)}removeListener(e,t){this.events.removeListener(e,t)}async transportDisconnect(){if(!this.hasExperiencedNetworkDisruption&&this.connected&&this.requestsInFlight.size>0)try{await Promise.all(Array.from(this.requestsInFlight.values()).map(e=>e.promise))}catch(e){this.logger.warn(e)}this.hasExperiencedNetworkDisruption||this.connected?await K(this.provider.disconnect(),2e3,\"provider.disconnect()\").catch(()=>this.onProviderDisconnect()):this.onProviderDisconnect()}async transportClose(){this.transportExplicitlyClosed=!0,await this.transportDisconnect()}async transportOpen(e){await this.confirmOnlineStateOrThrow(),e&&e!==this.relayUrl&&(this.relayUrl=e,await this.transportDisconnect()),await this.createProvider(),this.connectionAttemptInProgress=!0,this.transportExplicitlyClosed=!1;try{await new Promise(async(t,s)=>{const i=()=>{this.provider.off(I.disconnect,i),s(new Error(\"Connection interrupted while trying to subscribe\"))};this.provider.on(I.disconnect,i),await K(this.provider.connect(),w(ae),`Socket stalled when trying to connect to ${this.relayUrl}`).catch(r=>{s(r)}).finally(()=>{clearTimeout(this.reconnectTimeout),this.reconnectTimeout=void 0}),this.subscriber.start().catch(r=>{this.logger.error(r),this.onDisconnectHandler()}),this.hasExperiencedNetworkDisruption=!1,t()})}catch(t){this.logger.error(t);const s=t;if(this.hasExperiencedNetworkDisruption=!0,!this.isConnectionStalled(s.message))throw t}finally{this.connectionAttemptInProgress=!1}}async restartTransport(e){this.connectionAttemptInProgress||(this.relayUrl=e||this.relayUrl,await this.confirmOnlineStateOrThrow(),await this.transportClose(),await this.transportOpen())}async confirmOnlineStateOrThrow(){if(!await $e())throw new Error(\"No internet connection detected. Please restart your network and try again.\")}async handleBatchMessageEvents(e){if(e?.length===0){this.logger.trace(\"Batch message events is empty. Ignoring...\");return}const t=e.sort((s,i)=>s.publishedAt-i.publishedAt);this.logger.trace(`Batch of ${t.length} message events sorted`);for(const s of t)try{await this.onMessageEvent(s)}catch(i){this.logger.warn(i)}this.logger.trace(`Batch of ${t.length} message events processed`)}async onLinkMessageEvent(e,t){const{topic:s}=e;if(!t.sessionExists){const i=Y(he),r={topic:s,expiry:i,relay:{protocol:\"irn\"},active:!1};await this.core.pairing.pairings.set(s,r)}this.events.emit(v.message,e),await this.recordMessageEvent(e)}startPingTimeout(){var e,t,s,i,r;if(Le())try{(t=(e=this.provider)==null?void 0:e.connection)!=null&&t.socket&&((r=(i=(s=this.provider)==null?void 0:s.connection)==null?void 0:i.socket)==null||r.once(\"ping\",()=>{this.resetPingTimeout()})),this.resetPingTimeout()}catch(n){this.logger.warn(n)}}isConnectionStalled(e){return this.staleConnectionErrors.some(t=>e.includes(t))}async createProvider(){this.provider.connection&&this.unregisterProviderListeners();const e=await this.core.crypto.signJWT(this.relayUrl);this.provider=new us(new gs(Ji({sdkVersion:se,protocol:this.protocol,version:this.version,relayUrl:this.relayUrl,projectId:this.projectId,auth:e,useOnCloseEvent:!0,bundleId:this.bundleId}))),this.registerProviderListeners()}async recordMessageEvent(e){const{topic:t,message:s}=e;await this.messages.set(t,s)}async shouldIgnoreMessageEvent(e){const{topic:t,message:s}=e;if(!s||s.length===0)return this.logger.debug(`Ignoring invalid/empty message: ${s}`),!0;if(!await this.subscriber.isSubscribed(t))return this.logger.debug(`Ignoring message for non-subscribed topic ${t}`),!0;const i=this.messages.has(t,s);return i&&this.logger.debug(`Ignoring duplicate message: ${s}`),i}async onProviderPayload(e){if(this.logger.debug(\"Incoming Relay Payload\"),this.logger.trace({type:\"payload\",direction:\"incoming\",payload:e}),Ve(e)){if(!e.method.endsWith(at))return;const t=e.params,{topic:s,message:i,publishedAt:r,attestation:n}=t.data,a={topic:s,message:i,publishedAt:r,transportType:M.relay,attestation:n};this.logger.debug(\"Emitting Relayer Payload\"),this.logger.trace(ei({type:\"event\",event:t.id},a)),this.events.emit(t.id,a),await this.acknowledgePayload(e),await this.onMessageEvent(a)}else je(e)&&this.events.emit(v.message_ack,e)}async onMessageEvent(e){await this.shouldIgnoreMessageEvent(e)||(this.events.emit(v.message,e),await this.recordMessageEvent(e))}async acknowledgePayload(e){const t=qe(e.id,!0);await this.provider.connection.send(t)}unregisterProviderListeners(){this.provider.off(I.payload,this.onPayloadHandler),this.provider.off(I.connect,this.onConnectHandler),this.provider.off(I.disconnect,this.onDisconnectHandler),this.provider.off(I.error,this.onProviderErrorHandler),clearTimeout(this.pingTimeout)}async registerEventListeners(){let e=await $e();Xi(async t=>{e!==t&&(e=t,t?await this.restartTransport().catch(s=>this.logger.error(s)):(this.hasExperiencedNetworkDisruption=!0,await this.transportDisconnect(),this.transportExplicitlyClosed=!1))})}async onProviderDisconnect(){await this.subscriber.stop(),this.requestsInFlight.clear(),clearTimeout(this.pingTimeout),this.events.emit(v.disconnect),this.connectionAttemptInProgress=!1,!this.transportExplicitlyClosed&&(this.reconnectTimeout||(this.reconnectTimeout=setTimeout(async()=>{await this.transportOpen().catch(e=>this.logger.error(e))},w(ht))))}isInitialized(){if(!this.initialized){const{message:e}=d(\"NOT_INITIALIZED\",this.name);throw new Error(e)}}async toEstablishConnection(){await this.confirmOnlineStateOrThrow(),!this.connected&&(this.connectionAttemptInProgress&&await new Promise(e=>{const t=setInterval(()=>{this.connected&&(clearInterval(t),e())},this.connectionStatusPollingInterval)}),await this.transportOpen())}}var cn=Object.defineProperty,ii=Object.getOwnPropertySymbols,ln=Object.prototype.hasOwnProperty,un=Object.prototype.propertyIsEnumerable,si=(o,e,t)=>e in o?cn(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t,ri=(o,e)=>{for(var t in e||(e={}))ln.call(e,t)&&si(o,t,e[t]);if(ii)for(var t of ii(e))un.call(e,t)&&si(o,t,e[t]);return o};class ni extends Ci{constructor(e,t,s,i=x,r=void 0){super(e,t,s,i),this.core=e,this.logger=t,this.name=s,this.map=new Map,this.version=ct,this.cached=[],this.initialized=!1,this.storagePrefix=x,this.recentlyDeleted=[],this.recentlyDeletedLimit=200,this.init=async()=>{this.initialized||(this.logger.trace(\"Initialized\"),await this.restore(),this.cached.forEach(n=>{this.getKey&&n!==null&&!de(n)?this.map.set(this.getKey(n),n):Wi(n)?this.map.set(n.id,n):Zi(n)&&this.map.set(n.topic,n)}),this.cached=[],this.initialized=!0)},this.set=async(n,a)=>{this.isInitialized(),this.map.has(n)?await this.update(n,a):(this.logger.debug(\"Setting value\"),this.logger.trace({type:\"method\",method:\"set\",key:n,value:a}),this.map.set(n,a),await this.persist())},this.get=n=>(this.isInitialized(),this.logger.debug(\"Getting value\"),this.logger.trace({type:\"method\",method:\"get\",key:n}),this.getData(n)),this.getAll=n=>(this.isInitialized(),n?this.values.filter(a=>Object.keys(n).every(h=>ys(a[h],n[h]))):this.values),this.update=async(n,a)=>{this.isInitialized(),this.logger.debug(\"Updating value\"),this.logger.trace({type:\"method\",method:\"update\",key:n,update:a});const h=ri(ri({},this.getData(n)),a);this.map.set(n,h),await this.persist()},this.delete=async(n,a)=>{this.isInitialized(),this.map.has(n)&&(this.logger.debug(\"Deleting value\"),this.logger.trace({type:\"method\",method:\"delete\",key:n,reason:a}),this.map.delete(n),this.addToRecentlyDeleted(n),await this.persist())},this.logger=E(t,this.name),this.storagePrefix=i,this.getKey=r}get context(){return C(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+\"//\"+this.name}get length(){return this.map.size}get keys(){return Array.from(this.map.keys())}get values(){return Array.from(this.map.values())}addToRecentlyDeleted(e){this.recentlyDeleted.push(e),this.recentlyDeleted.length>=this.recentlyDeletedLimit&&this.recentlyDeleted.splice(0,this.recentlyDeletedLimit/2)}async setDataStore(e){await this.core.storage.setItem(this.storageKey,e)}async getDataStore(){return await this.core.storage.getItem(this.storageKey)}getData(e){const t=this.map.get(e);if(!t){if(this.recentlyDeleted.includes(e)){const{message:i}=d(\"MISSING_OR_INVALID\",`Record was recently deleted - ${this.name}: ${e}`);throw this.logger.error(i),new Error(i)}const{message:s}=d(\"NO_MATCHING_KEY\",`${this.name}: ${e}`);throw this.logger.error(s),new Error(s)}return t}async persist(){await this.setDataStore(this.values)}async restore(){try{const e=await this.getDataStore();if(typeof e>\"u\"||!e.length)return;if(this.map.size){const{message:t}=d(\"RESTORE_WILL_OVERRIDE\",this.name);throw this.logger.error(t),new Error(t)}this.cached=e,this.logger.debug(`Successfully Restored value for ${this.name}`),this.logger.trace({type:\"method\",method:\"restore\",value:this.values})}catch(e){this.logger.debug(`Failed to Restore value for ${this.name}`),this.logger.error(e)}}isInitialized(){if(!this.initialized){const{message:e}=d(\"NOT_INITIALIZED\",this.name);throw new Error(e)}}}class oi{constructor(e,t){this.core=e,this.logger=t,this.name=gt,this.version=yt,this.events=new mi,this.initialized=!1,this.storagePrefix=x,this.ignoredPayloadTypes=[Qi],this.registeredMethods=[],this.init=async()=>{this.initialized||(await this.pairings.init(),await this.cleanup(),this.registerRelayerEvents(),this.registerExpirerEvents(),this.initialized=!0,this.logger.trace(\"Initialized\"))},this.register=({methods:s})=>{this.isInitialized(),this.registeredMethods=[...new Set([...this.registeredMethods,...s])]},this.create=async s=>{this.isInitialized();const i=ce(),r=await this.core.crypto.setSymKey(i),n=Y(he),a={protocol:rt},h={topic:r,expiry:n,relay:a,active:!1,methods:s?.methods},c=ke({protocol:this.core.protocol,version:this.core.version,topic:r,symKey:i,relay:a,expiryTimestamp:n,methods:s?.methods});return this.events.emit(V.create,h),this.core.expirer.set(r,n),await this.pairings.set(r,h),await this.core.relayer.subscribe(r,{transportType:s?.transportType}),{topic:r,uri:c}},this.pair=async s=>{this.isInitialized();const i=this.core.eventClient.createEvent({properties:{topic:s?.uri,trace:[z.pairing_started]}});this.isValidPair(s,i);const{topic:r,symKey:n,relay:a,expiryTimestamp:h,methods:c}=Me(s.uri);i.props.properties.topic=r,i.addTrace(z.pairing_uri_validation_success),i.addTrace(z.pairing_uri_not_expired);let l;if(this.pairings.keys.includes(r)){if(l=this.pairings.get(r),i.addTrace(z.existing_pairing),l.active)throw i.setError($.active_pairing_already_exists),new Error(`Pairing already exists: ${r}. Please try again with a new connection URI.`);i.addTrace(z.pairing_not_expired)}const p=h||Y(he),D={topic:r,relay:a,expiry:p,active:!1,methods:c};this.core.expirer.set(r,p),await this.pairings.set(r,D),i.addTrace(z.store_new_pairing),s.activatePairing&&await this.activate({topic:r}),this.events.emit(V.create,D),i.addTrace(z.emit_inactive_pairing),this.core.crypto.keychain.has(r)||await this.core.crypto.setSymKey(n,r),i.addTrace(z.subscribing_pairing_topic);try{await this.core.relayer.confirmOnlineStateOrThrow()}catch{i.setError($.no_internet_connection)}try{await this.core.relayer.subscribe(r,{relay:a})}catch(m){throw i.setError($.subscribe_pairing_topic_failure),m}return i.addTrace(z.subscribe_pairing_topic_success),D},this.activate=async({topic:s})=>{this.isInitialized();const i=Y(ee);this.core.expirer.set(s,i),await this.pairings.update(s,{active:!0,expiry:i})},this.ping=async s=>{this.isInitialized(),await this.isValidPing(s);const{topic:i}=s;if(this.pairings.keys.includes(i)){const r=await this.sendRequest(i,\"wc_pairingPing\",{}),{done:n,resolve:a,reject:h}=es();this.events.once(pe(\"pairing_ping\",r),({error:c})=>{c?h(c):a()}),await n()}},this.updateExpiry=async({topic:s,expiry:i})=>{this.isInitialized(),await this.pairings.update(s,{expiry:i})},this.updateMetadata=async({topic:s,metadata:i})=>{this.isInitialized(),await this.pairings.update(s,{peerMetadata:i})},this.getPairings=()=>(this.isInitialized(),this.pairings.values),this.disconnect=async s=>{this.isInitialized(),await this.isValidDisconnect(s);const{topic:i}=s;this.pairings.keys.includes(i)&&(await this.sendRequest(i,\"wc_pairingDelete\",H(\"USER_DISCONNECTED\")),await this.deletePairing(i))},this.formatUriFromPairing=s=>{this.isInitialized();const{topic:i,relay:r,expiry:n,methods:a}=s,h=this.core.crypto.keychain.get(i);return ke({protocol:this.core.protocol,version:this.core.version,topic:i,symKey:h,relay:r,expiryTimestamp:n,methods:a})},this.sendRequest=async(s,i,r)=>{const n=Ge(i,r),a=await this.core.crypto.encode(s,n),h=B[i].req;return this.core.history.set(s,n),this.core.relayer.publish(s,a,h),n.id},this.sendResult=async(s,i,r)=>{const n=qe(s,r),a=await this.core.crypto.encode(i,n),h=await this.core.history.get(i,s),c=B[h.request.method].res;await this.core.relayer.publish(i,a,c),await this.core.history.resolve(n)},this.sendError=async(s,i,r)=>{const n=ds(s,r),a=await this.core.crypto.encode(i,n),h=await this.core.history.get(i,s),c=B[h.request.method]?B[h.request.method].res:B.unregistered_method.res;await this.core.relayer.publish(i,a,c),await this.core.history.resolve(n)},this.deletePairing=async(s,i)=>{await this.core.relayer.unsubscribe(s),await Promise.all([this.pairings.delete(s,H(\"USER_DISCONNECTED\")),this.core.crypto.deleteSymKey(s),i?Promise.resolve():this.core.expirer.del(s)])},this.cleanup=async()=>{const s=this.pairings.getAll().filter(i=>Ue(i.expiry));await Promise.all(s.map(i=>this.deletePairing(i.topic)))},this.onRelayEventRequest=s=>{const{topic:i,payload:r}=s;switch(r.method){case\"wc_pairingPing\":return this.onPairingPingRequest(i,r);case\"wc_pairingDelete\":return this.onPairingDeleteRequest(i,r);default:return this.onUnknownRpcMethodRequest(i,r)}},this.onRelayEventResponse=async s=>{const{topic:i,payload:r}=s,n=(await this.core.history.get(i,r.id)).request.method;switch(n){case\"wc_pairingPing\":return this.onPairingPingResponse(i,r);default:return this.onUnknownRpcMethodResponse(n)}},this.onPairingPingRequest=async(s,i)=>{const{id:r}=i;try{this.isValidPing({topic:s}),await this.sendResult(r,s,!0),this.events.emit(V.ping,{id:r,topic:s})}catch(n){await this.sendError(r,s,n),this.logger.error(n)}},this.onPairingPingResponse=(s,i)=>{const{id:r}=i;setTimeout(()=>{ps(i)?this.events.emit(pe(\"pairing_ping\",r),{}):He(i)&&this.events.emit(pe(\"pairing_ping\",r),{error:i.error})},500)},this.onPairingDeleteRequest=async(s,i)=>{const{id:r}=i;try{this.isValidDisconnect({topic:s}),await this.deletePairing(s),this.events.emit(V.delete,{id:r,topic:s})}catch(n){await this.sendError(r,s,n),this.logger.error(n)}},this.onUnknownRpcMethodRequest=async(s,i)=>{const{id:r,method:n}=i;try{if(this.registeredMethods.includes(n))return;const a=H(\"WC_METHOD_UNSUPPORTED\",n);await this.sendError(r,s,a),this.logger.error(a)}catch(a){await this.sendError(r,s,a),this.logger.error(a)}},this.onUnknownRpcMethodResponse=s=>{this.registeredMethods.includes(s)||this.logger.error(H(\"WC_METHOD_UNSUPPORTED\",s))},this.isValidPair=(s,i)=>{var r;if(!ge(s)){const{message:a}=d(\"MISSING_OR_INVALID\",`pair() params: ${s}`);throw i.setError($.malformed_pairing_uri),new Error(a)}if(!ts(s.uri)){const{message:a}=d(\"MISSING_OR_INVALID\",`pair() uri: ${s.uri}`);throw i.setError($.malformed_pairing_uri),new Error(a)}const n=Me(s?.uri);if(!((r=n?.relay)!=null&&r.protocol)){const{message:a}=d(\"MISSING_OR_INVALID\",\"pair() uri#relay-protocol\");throw i.setError($.malformed_pairing_uri),new Error(a)}if(!(n!=null&&n.symKey)){const{message:a}=d(\"MISSING_OR_INVALID\",\"pair() uri#symKey\");throw i.setError($.malformed_pairing_uri),new Error(a)}if(n!=null&&n.expiryTimestamp&&w(n?.expiryTimestamp){if(!ge(s)){const{message:r}=d(\"MISSING_OR_INVALID\",`ping() params: ${s}`);throw new Error(r)}const{topic:i}=s;await this.isValidPairingTopic(i)},this.isValidDisconnect=async s=>{if(!ge(s)){const{message:r}=d(\"MISSING_OR_INVALID\",`disconnect() params: ${s}`);throw new Error(r)}const{topic:i}=s;await this.isValidPairingTopic(i)},this.isValidPairingTopic=async s=>{if(!is(s,!1)){const{message:i}=d(\"MISSING_OR_INVALID\",`pairing topic should be a string: ${s}`);throw new Error(i)}if(!this.pairings.keys.includes(s)){const{message:i}=d(\"NO_MATCHING_KEY\",`pairing topic doesn't exist: ${s}`);throw new Error(i)}if(Ue(this.pairings.get(s).expiry)){await this.deletePairing(s);const{message:i}=d(\"EXPIRED\",`pairing topic: ${s}`);throw new Error(i)}},this.core=e,this.logger=E(t,this.name),this.pairings=new ni(this.core,this.logger,this.name,this.storagePrefix)}get context(){return C(this.logger)}isInitialized(){if(!this.initialized){const{message:e}=d(\"NOT_INITIALIZED\",this.name);throw new Error(e)}}registerRelayerEvents(){this.core.relayer.on(v.message,async e=>{const{topic:t,message:s,transportType:i}=e;if(!this.pairings.keys.includes(t)||i===M.link_mode||this.ignoredPayloadTypes.includes(this.core.crypto.getPayloadType(s)))return;const r=await this.core.crypto.decode(t,s);try{Ve(r)?(this.core.history.set(t,r),this.onRelayEventRequest({topic:t,payload:r})):je(r)&&(await this.core.history.resolve(r),await this.onRelayEventResponse({topic:t,payload:r}),this.core.history.delete(t,r.id))}catch(n){this.logger.error(n)}})}registerExpirerEvents(){this.core.expirer.on(S.expired,async e=>{const{topic:t}=ss(e.target);t&&this.pairings.keys.includes(t)&&(await this.deletePairing(t,!0),this.events.emit(V.expire,{topic:t}))})}}class ai extends Pi{constructor(e,t){super(e,t),this.core=e,this.logger=t,this.records=new Map,this.events=new U,this.name=Dt,this.version=mt,this.cached=[],this.initialized=!1,this.storagePrefix=x,this.init=async()=>{this.initialized||(this.logger.trace(\"Initialized\"),await this.restore(),this.cached.forEach(s=>this.records.set(s.id,s)),this.cached=[],this.registerEventListeners(),this.initialized=!0)},this.set=(s,i,r)=>{if(this.isInitialized(),this.logger.debug(\"Setting JSON-RPC request history record\"),this.logger.trace({type:\"method\",method:\"set\",topic:s,request:i,chainId:r}),this.records.has(i.id))return;const n={id:i.id,topic:s,request:{method:i.method,params:i.params||null},chainId:r,expiry:Y(ee)};this.records.set(n.id,n),this.persist(),this.events.emit(P.created,n)},this.resolve=async s=>{if(this.isInitialized(),this.logger.debug(\"Updating JSON-RPC response history record\"),this.logger.trace({type:\"method\",method:\"update\",response:s}),!this.records.has(s.id))return;const i=await this.getRecord(s.id);typeof i.response>\"u\"&&(i.response=He(s)?{error:s.error}:{result:s.result},this.records.set(i.id,i),this.persist(),this.events.emit(P.updated,i))},this.get=async(s,i)=>(this.isInitialized(),this.logger.debug(\"Getting record\"),this.logger.trace({type:\"method\",method:\"get\",topic:s,id:i}),await this.getRecord(i)),this.delete=(s,i)=>{this.isInitialized(),this.logger.debug(\"Deleting record\"),this.logger.trace({type:\"method\",method:\"delete\",id:i}),this.values.forEach(r=>{if(r.topic===s){if(typeof i<\"u\"&&r.id!==i)return;this.records.delete(r.id),this.events.emit(P.deleted,r)}}),this.persist()},this.exists=async(s,i)=>(this.isInitialized(),this.records.has(i)?(await this.getRecord(i)).topic===s:!1),this.on=(s,i)=>{this.events.on(s,i)},this.once=(s,i)=>{this.events.once(s,i)},this.off=(s,i)=>{this.events.off(s,i)},this.removeListener=(s,i)=>{this.events.removeListener(s,i)},this.logger=E(t,this.name)}get context(){return C(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+\"//\"+this.name}get size(){return this.records.size}get keys(){return Array.from(this.records.keys())}get values(){return Array.from(this.records.values())}get pending(){const e=[];return this.values.forEach(t=>{if(typeof t.response<\"u\")return;const s={topic:t.topic,request:Ge(t.request.method,t.request.params,t.id),chainId:t.chainId};return e.push(s)}),e}async setJsonRpcRecords(e){await this.core.storage.setItem(this.storageKey,e)}async getJsonRpcRecords(){return await this.core.storage.getItem(this.storageKey)}getRecord(e){this.isInitialized();const t=this.records.get(e);if(!t){const{message:s}=d(\"NO_MATCHING_KEY\",`${this.name}: ${e}`);throw new Error(s)}return t}async persist(){await this.setJsonRpcRecords(this.values),this.events.emit(P.sync)}async restore(){try{const e=await this.getJsonRpcRecords();if(typeof e>\"u\"||!e.length)return;if(this.records.size){const{message:t}=d(\"RESTORE_WILL_OVERRIDE\",this.name);throw this.logger.error(t),new Error(t)}this.cached=e,this.logger.debug(`Successfully Restored records for ${this.name}`),this.logger.trace({type:\"method\",method:\"restore\",records:this.values})}catch(e){this.logger.debug(`Failed to Restore records for ${this.name}`),this.logger.error(e)}}registerEventListeners(){this.events.on(P.created,e=>{const t=P.created;this.logger.info(`Emitting ${t}`),this.logger.debug({type:\"event\",event:t,record:e})}),this.events.on(P.updated,e=>{const t=P.updated;this.logger.info(`Emitting ${t}`),this.logger.debug({type:\"event\",event:t,record:e})}),this.events.on(P.deleted,e=>{const t=P.deleted;this.logger.info(`Emitting ${t}`),this.logger.debug({type:\"event\",event:t,record:e})}),this.core.heartbeat.on(j.pulse,()=>{this.cleanup()})}cleanup(){try{this.isInitialized();let e=!1;this.records.forEach(t=>{w(t.expiry||0)-Date.now()<=0&&(this.logger.info(`Deleting expired history log: ${t.id}`),this.records.delete(t.id),this.events.emit(P.deleted,t,!1),e=!0)}),e&&this.persist()}catch(e){this.logger.warn(e)}}isInitialized(){if(!this.initialized){const{message:e}=d(\"NOT_INITIALIZED\",this.name);throw new Error(e)}}}class hi extends Si{constructor(e,t){super(e,t),this.core=e,this.logger=t,this.expirations=new Map,this.events=new U,this.name=bt,this.version=ft,this.cached=[],this.initialized=!1,this.storagePrefix=x,this.init=async()=>{this.initialized||(this.logger.trace(\"Initialized\"),await this.restore(),this.cached.forEach(s=>this.expirations.set(s.target,s)),this.cached=[],this.registerEventListeners(),this.initialized=!0)},this.has=s=>{try{const i=this.formatTarget(s);return typeof this.getExpiration(i)<\"u\"}catch{return!1}},this.set=(s,i)=>{this.isInitialized();const r=this.formatTarget(s),n={target:r,expiry:i};this.expirations.set(r,n),this.checkExpiry(r,n),this.events.emit(S.created,{target:r,expiration:n})},this.get=s=>{this.isInitialized();const i=this.formatTarget(s);return this.getExpiration(i)},this.del=s=>{if(this.isInitialized(),this.has(s)){const i=this.formatTarget(s),r=this.getExpiration(i);this.expirations.delete(i),this.events.emit(S.deleted,{target:i,expiration:r})}},this.on=(s,i)=>{this.events.on(s,i)},this.once=(s,i)=>{this.events.once(s,i)},this.off=(s,i)=>{this.events.off(s,i)},this.removeListener=(s,i)=>{this.events.removeListener(s,i)},this.logger=E(t,this.name)}get context(){return C(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+\"//\"+this.name}get length(){return this.expirations.size}get keys(){return Array.from(this.expirations.keys())}get values(){return Array.from(this.expirations.values())}formatTarget(e){if(typeof e==\"string\")return rs(e);if(typeof e==\"number\")return ns(e);const{message:t}=d(\"UNKNOWN_TYPE\",`Target type: ${typeof e}`);throw new Error(t)}async setExpirations(e){await this.core.storage.setItem(this.storageKey,e)}async getExpirations(){return await this.core.storage.getItem(this.storageKey)}async persist(){await this.setExpirations(this.values),this.events.emit(S.sync)}async restore(){try{const e=await this.getExpirations();if(typeof e>\"u\"||!e.length)return;if(this.expirations.size){const{message:t}=d(\"RESTORE_WILL_OVERRIDE\",this.name);throw this.logger.error(t),new Error(t)}this.cached=e,this.logger.debug(`Successfully Restored expirations for ${this.name}`),this.logger.trace({type:\"method\",method:\"restore\",expirations:this.values})}catch(e){this.logger.debug(`Failed to Restore expirations for ${this.name}`),this.logger.error(e)}}getExpiration(e){const t=this.expirations.get(e);if(!t){const{message:s}=d(\"NO_MATCHING_KEY\",`${this.name}: ${e}`);throw this.logger.warn(s),new Error(s)}return t}checkExpiry(e,t){const{expiry:s}=t;w(s)-Date.now()<=0&&this.expire(e,t)}expire(e,t){this.expirations.delete(e),this.events.emit(S.expired,{target:e,expiration:t})}checkExpirations(){this.core.relayer.connected&&this.expirations.forEach((e,t)=>this.checkExpiry(t,e))}registerEventListeners(){this.core.heartbeat.on(j.pulse,()=>this.checkExpirations()),this.events.on(S.created,e=>{const t=S.created;this.logger.info(`Emitting ${t}`),this.logger.debug({type:\"event\",event:t,data:e}),this.persist()}),this.events.on(S.expired,e=>{const t=S.expired;this.logger.info(`Emitting ${t}`),this.logger.debug({type:\"event\",event:t,data:e}),this.persist()}),this.events.on(S.deleted,e=>{const t=S.deleted;this.logger.info(`Emitting ${t}`),this.logger.debug({type:\"event\",event:t,data:e}),this.persist()})}isInitialized(){if(!this.initialized){const{message:e}=d(\"NOT_INITIALIZED\",this.name);throw new Error(e)}}}class ci extends Ri{constructor(e,t,s){super(e,t,s),this.core=e,this.logger=t,this.store=s,this.name=_t,this.verifyUrlV3=vt,this.storagePrefix=x,this.version=De,this.init=async()=>{var i;this.isDevEnv||(this.publicKey=await this.store.getItem(this.storeKey),this.publicKey&&w((i=this.publicKey)==null?void 0:i.expiresAt){if(!os()||this.isDevEnv)return;const r=window.location.origin,{id:n,decryptedId:a}=i,h=`${this.verifyUrlV3}/attestation?projectId=${this.core.projectId}&origin=${r}&id=${n}&decryptedId=${a}`;try{const c=Ds(),l=this.startAbortTimer(q*5),p=await new Promise((D,m)=>{const u=()=>{window.removeEventListener(\"message\",_),c.body.removeChild(g),m(\"attestation aborted\")};this.abortController.signal.addEventListener(\"abort\",u);const g=c.createElement(\"iframe\");g.src=h,g.style.display=\"none\",g.addEventListener(\"error\",u,{signal:this.abortController.signal});const _=y=>{if(y.data&&typeof y.data==\"string\")try{const b=JSON.parse(y.data);if(b.type===\"verify_attestation\"){if(Se(b.attestation).payload.id!==n)return;clearInterval(l),c.body.removeChild(g),this.abortController.signal.removeEventListener(\"abort\",u),window.removeEventListener(\"message\",_),D(b.attestation===null?\"\":b.attestation)}}catch(b){this.logger.warn(b)}};c.body.appendChild(g),window.addEventListener(\"message\",_,{signal:this.abortController.signal})});return this.logger.debug(\"jwt attestation\",p),p}catch(c){this.logger.warn(c)}return\"\"},this.resolve=async i=>{if(this.isDevEnv)return\"\";const{attestationId:r,hash:n,encryptedId:a}=i;if(r===\"\"){this.logger.debug(\"resolve: attestationId is empty, skipping\");return}if(r){if(Se(r).payload.id!==a)return;const c=await this.isValidJwtAttestation(r);if(c){if(!c.isVerified){this.logger.warn(\"resolve: jwt attestation: origin url not verified\");return}return c}}if(!n)return;const h=this.getVerifyUrl(i?.verifyUrl);return this.fetchAttestation(n,h)},this.fetchAttestation=async(i,r)=>{this.logger.debug(`resolving attestation: ${i} from url: ${r}`);const n=this.startAbortTimer(q*5),a=await fetch(`${r}/attestation/${i}?v2Supported=true`,{signal:this.abortController.signal});return clearTimeout(n),a.status===200?await a.json():void 0},this.getVerifyUrl=i=>{let r=i||J;return wt.includes(r)||(this.logger.info(`verify url: ${r}, not included in trusted list, assigning default: ${J}`),r=J),r},this.fetchPublicKey=async()=>{try{this.logger.debug(`fetching public key from: ${this.verifyUrlV3}`);const i=this.startAbortTimer(Te),r=await fetch(`${this.verifyUrlV3}/public-key`,{signal:this.abortController.signal});return clearTimeout(i),await r.json()}catch(i){this.logger.warn(i)}},this.persistPublicKey=async i=>{this.logger.debug(\"persisting public key to local storage\",i),await this.store.setItem(this.storeKey,i),this.publicKey=i},this.removePublicKey=async()=>{this.logger.debug(\"removing verify v2 public key from storage\"),await this.store.removeItem(this.storeKey),this.publicKey=void 0},this.isValidJwtAttestation=async i=>{const r=await this.getPublicKey();try{if(r)return this.validateAttestation(i,r)}catch(a){this.logger.error(a),this.logger.warn(\"error validating attestation\")}const n=await this.fetchAndPersistPublicKey();try{if(n)return this.validateAttestation(i,n)}catch(a){this.logger.error(a),this.logger.warn(\"error validating attestation\")}},this.getPublicKey=async()=>this.publicKey?this.publicKey:await this.fetchAndPersistPublicKey(),this.fetchAndPersistPublicKey=async()=>{if(this.fetchPromise)return await this.fetchPromise,this.publicKey;this.fetchPromise=new Promise(async r=>{const n=await this.fetchPublicKey();n&&(await this.persistPublicKey(n),r(n))});const i=await this.fetchPromise;return this.fetchPromise=void 0,i},this.validateAttestation=(i,r)=>{const n=as(i,r.publicKey),a={hasExpired:w(n.exp)this.abortController.abort(),w(e))}}class li extends xi{constructor(e,t){super(e,t),this.projectId=e,this.logger=t,this.context=It,this.registerDeviceToken=async s=>{const{clientId:i,token:r,notificationType:n,enableEncrypted:a=!1}=s,h=`${Tt}/${this.projectId}/clients`;await fetch(h,{method:\"POST\",headers:{\"Content-Type\":\"application/json\"},body:JSON.stringify({client_id:i,type:n,token:r,always_raw:a})})},this.logger=E(t,this.context)}}var dn=Object.defineProperty,ui=Object.getOwnPropertySymbols,pn=Object.prototype.hasOwnProperty,gn=Object.prototype.propertyIsEnumerable,di=(o,e,t)=>e in o?dn(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t,Z=(o,e)=>{for(var t in e||(e={}))pn.call(e,t)&&di(o,t,e[t]);if(ui)for(var t of ui(e))gn.call(e,t)&&di(o,t,e[t]);return o};class pi extends Oi{constructor(e,t,s=!0){super(e,t,s),this.core=e,this.logger=t,this.context=Pt,this.storagePrefix=x,this.storageVersion=Ct,this.events=new Map,this.shouldPersist=!1,this.init=async()=>{if(!Fe())try{const i={eventId:Ke(),timestamp:Date.now(),domain:this.getAppDomain(),props:{event:\"INIT\",type:\"\",properties:{client_id:await this.core.crypto.getClientId(),user_agent:hs(this.core.relayer.protocol,this.core.relayer.version,se)}}};await this.sendEvent([i])}catch(i){this.logger.warn(i)}},this.createEvent=i=>{const{event:r=\"ERROR\",type:n=\"\",properties:{topic:a,trace:h}}=i,c=Ke(),l=this.core.projectId||\"\",p=Date.now(),D=Z({eventId:c,timestamp:p,props:{event:r,type:n,properties:{topic:a,trace:h}},bundleId:l,domain:this.getAppDomain()},this.setMethods(c));return this.telemetryEnabled&&(this.events.set(c,D),this.shouldPersist=!0),D},this.getEvent=i=>{const{eventId:r,topic:n}=i;if(r)return this.events.get(r);const a=Array.from(this.events.values()).find(h=>h.props.properties.topic===n);if(a)return Z(Z({},a),this.setMethods(a.eventId))},this.deleteEvent=i=>{const{eventId:r}=i;this.events.delete(r),this.shouldPersist=!0},this.setEventListeners=()=>{this.core.heartbeat.on(j.pulse,async()=>{this.shouldPersist&&await this.persist(),this.events.forEach(i=>{Ce(Date.now())-Ce(i.timestamp)>St&&(this.events.delete(i.eventId),this.shouldPersist=!0)})})},this.setMethods=i=>({addTrace:r=>this.addTrace(i,r),setError:r=>this.setError(i,r)}),this.addTrace=(i,r)=>{const n=this.events.get(i);n&&(n.props.properties.trace.push(r),this.events.set(i,n),this.shouldPersist=!0)},this.setError=(i,r)=>{const n=this.events.get(i);n&&(n.props.type=r,n.timestamp=Date.now(),this.events.set(i,n),this.shouldPersist=!0)},this.persist=async()=>{await this.core.storage.setItem(this.storageKey,Array.from(this.events.values())),this.shouldPersist=!1},this.restore=async()=>{try{const i=await this.core.storage.getItem(this.storageKey)||[];if(!i.length)return;i.forEach(r=>{this.events.set(r.eventId,Z(Z({},r),this.setMethods(r.eventId)))})}catch(i){this.logger.warn(i)}},this.submit=async()=>{if(!this.telemetryEnabled||this.events.size===0)return;const i=[];for(const[r,n]of this.events)n.props.type&&i.push(n);if(i.length!==0)try{if((await this.sendEvent(i)).ok)for(const r of i)this.events.delete(r.eventId),this.shouldPersist=!0}catch(r){this.logger.warn(r)}},this.sendEvent=async i=>{const r=this.getAppDomain()?\"\":\"&sp=desktop\";return await fetch(`${Rt}?projectId=${this.core.projectId}&st=events_sdk&sv=js-${se}${r}`,{method:\"POST\",body:JSON.stringify(i)})},this.getAppDomain=()=>cs().url,this.logger=E(t,this.context),this.telemetryEnabled=s,s?this.restore().then(async()=>{await this.submit(),this.setEventListeners()}):this.persist()}get storageKey(){return this.storagePrefix+this.storageVersion+this.core.customStoragePrefix+\"//\"+this.context}}var yn=Object.defineProperty,gi=Object.getOwnPropertySymbols,Dn=Object.prototype.hasOwnProperty,mn=Object.prototype.propertyIsEnumerable,yi=(o,e,t)=>e in o?yn(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t,Di=(o,e)=>{for(var t in e||(e={}))Dn.call(e,t)&&yi(o,t,e[t]);if(gi)for(var t of gi(e))mn.call(e,t)&&yi(o,t,e[t]);return o};class ne extends Ai{constructor(e){var t;super(e),this.protocol=ye,this.version=De,this.name=ie,this.events=new U,this.initialized=!1,this.on=(n,a)=>this.events.on(n,a),this.once=(n,a)=>this.events.once(n,a),this.off=(n,a)=>this.events.off(n,a),this.removeListener=(n,a)=>this.events.removeListener(n,a),this.dispatchEnvelope=({topic:n,message:a,sessionExists:h})=>{if(!n||!a)return;const c={topic:n,message:a,publishedAt:Date.now(),transportType:M.link_mode};this.relayer.onLinkMessageEvent(c,{sessionExists:h})},this.projectId=e?.projectId,this.relayUrl=e?.relayUrl||be,this.customStoragePrefix=e!=null&&e.customStoragePrefix?`:${e.customStoragePrefix}`:\"\";const s=Ie({level:typeof e?.logger==\"string\"&&e.logger?e.logger:Ye.logger}),{logger:i,chunkLoggerController:r}=Ei({opts:s,maxSizeInBytes:e?.maxLogBlobSizeInBytes,loggerOverride:e?.logger});this.logChunkController=r,(t=this.logChunkController)!=null&&t.downloadLogsBlobInBrowser&&(window.downloadLogsBlobInBrowser=async()=>{var n,a;(n=this.logChunkController)!=null&&n.downloadLogsBlobInBrowser&&((a=this.logChunkController)==null||a.downloadLogsBlobInBrowser({clientId:await this.crypto.getClientId()}))}),this.logger=E(i,this.name),this.heartbeat=new bi,this.crypto=new Ht(this,this.logger,e?.keychain),this.history=new ai(this,this.logger),this.expirer=new hi(this,this.logger),this.storage=e!=null&&e.storage?e.storage:new fi(Di(Di({},Je),e?.storageOptions)),this.relayer=new ti({core:this,logger:this.logger,relayUrl:this.relayUrl,projectId:this.projectId}),this.pairing=new oi(this,this.logger),this.verify=new ci(this,this.logger,this.storage),this.echoClient=new li(this.projectId||\"\",this.logger),this.linkModeSupportedApps=[],this.eventClient=new pi(this,this.logger,e?.telemetryEnabled)}static async init(e){const t=new ne(e);await t.initialize();const s=await t.crypto.getClientId();return await t.storage.setItem(lt,s),t}get context(){return C(this.logger)}async start(){this.initialized||await this.initialize()}async getLogsBlob(){var e;return(e=this.logChunkController)==null?void 0:e.logsToBlob({clientId:await this.crypto.getClientId()})}async addLinkModeSupportedApp(e){this.linkModeSupportedApps.includes(e)||(this.linkModeSupportedApps.push(e),await this.storage.setItem(fe,this.linkModeSupportedApps))}async initialize(){this.logger.trace(\"Initialized\");try{await this.crypto.init(),await this.history.init(),await this.expirer.init(),await this.relayer.init(),await this.heartbeat.init(),await this.pairing.init(),this.eventClient.init(),this.linkModeSupportedApps=await this.storage.getItem(fe)||[],this.initialized=!0,this.logger.info(\"Core Initialization Success\")}catch(e){throw this.logger.warn(`Core Initialization Failure at epoch ${Date.now()}`,e),this.logger.error(e.message),e}}}const bn=ne;export{ie as CORE_CONTEXT,Ye as CORE_DEFAULT,ye as CORE_PROTOCOL,Je as CORE_STORAGE_OPTIONS,x as CORE_STORAGE_PREFIX,De as CORE_VERSION,me as CRYPTO_CLIENT_SEED,Xe as CRYPTO_CONTEXT,We as CRYPTO_JWT_TTL,bn as Core,Ht as Crypto,It as ECHO_CONTEXT,Tt as ECHO_URL,Rt as EVENTS_CLIENT_API_URL,St as EVENTS_STORAGE_CLEANUP_INTERVAL,Pt as EVENTS_STORAGE_CONTEXT,Ct as EVENTS_STORAGE_VERSION,Ps as EVENT_CLIENT_AUTHENTICATE_ERRORS,Cs as EVENT_CLIENT_AUTHENTICATE_TRACES,ws as EVENT_CLIENT_CONTEXT,$ as EVENT_CLIENT_PAIRING_ERRORS,z as EVENT_CLIENT_PAIRING_TRACES,Ts as EVENT_CLIENT_SESSION_ERRORS,Is as EVENT_CLIENT_SESSION_TRACES,bt as EXPIRER_CONTEXT,Es as EXPIRER_DEFAULT_TTL,S as EXPIRER_EVENTS,ft as EXPIRER_STORAGE_VERSION,li as EchoClient,pi as EventClient,hi as Expirer,Dt as HISTORY_CONTEXT,P as HISTORY_EVENTS,mt as HISTORY_STORAGE_VERSION,ai as JsonRpcHistory,Ze as KEYCHAIN_CONTEXT,Qe as KEYCHAIN_STORAGE_VERSION,Gt as KeyChain,et as MESSAGES_CONTEXT,tt as MESSAGES_STORAGE_VERSION,Yt as MessageTracker,gt as PAIRING_CONTEXT,_s as PAIRING_DEFAULT_TTL,V as PAIRING_EVENTS,B as PAIRING_RPC_OPTS,yt as PAIRING_STORAGE_VERSION,pt as PENDING_SUB_RESOLUTION_TIMEOUT,st as PUBLISHER_CONTEXT,it as PUBLISHER_DEFAULT_TTL,oi as Pairing,ot as RELAYER_CONTEXT,nt as RELAYER_DEFAULT_LOGGER,rt as RELAYER_DEFAULT_PROTOCOL,be as RELAYER_DEFAULT_RELAY_URL,v as RELAYER_EVENTS,I as RELAYER_PROVIDER_EVENTS,ht as RELAYER_RECONNECT_TIMEOUT,se as RELAYER_SDK_VERSION,ms as RELAYER_STORAGE_OPTIONS,at as RELAYER_SUBSCRIBER_SUFFIX,bs as RELAYER_TRANSPORT_CUTOFF,ti as Relayer,ct as STORE_STORAGE_VERSION,ut as SUBSCRIBER_CONTEXT,fs as SUBSCRIBER_DEFAULT_TTL,O as SUBSCRIBER_EVENTS,dt as SUBSCRIBER_STORAGE_VERSION,ni as Store,Wt as Subscriber,M as TRANSPORT_TYPES,wt as TRUSTED_VERIFY_URLS,_t as VERIFY_CONTEXT,J as VERIFY_SERVER,vt as VERIFY_SERVER_V3,ci as Verify,lt as WALLETCONNECT_CLIENT_ID,fe as WALLETCONNECT_LINK_MODE_APPS,ne as default};\n//# sourceMappingURL=index.es.js.map\n","import{RELAYER_DEFAULT_PROTOCOL as Et,TRANSPORT_TYPES as f,EVENT_CLIENT_SESSION_TRACES as C,EVENT_CLIENT_SESSION_ERRORS as F,EVENT_CLIENT_AUTHENTICATE_TRACES as Q,EVENT_CLIENT_AUTHENTICATE_ERRORS as se,EVENT_CLIENT_PAIRING_ERRORS as Rt,EVENT_CLIENT_PAIRING_TRACES as St,RELAYER_EVENTS as Ue,VERIFY_SERVER as It,EXPIRER_EVENTS as ft,PAIRING_EVENTS as Ge,Store as H,Core as vt}from\"@walletconnect/core\";import{pino as qt,getDefaultLoggerOptions as Tt,generateChildLogger as Nt,getLoggerContext as Pt}from\"@walletconnect/logger\";import{IEngine as Ot,ISignClient as At}from\"@walletconnect/types\";import{getInternalError as u,calcExpiry as A,createDelayedPromise as Y,engineEvent as g,getSdkError as P,getDeepLink as bt,handleDeeplinkRedirect as Ct,isSessionCompatible as Lt,hashKey as Te,parseChainId as Ne,createEncodedRecap as xt,getRecapFromResources as Pe,mergeEncodedRecaps as Dt,TYPE_2 as Vt,BASE64URL as ie,getLinkModeURL as he,validateSignedCacao as je,getNamespacedDidChainId as Fe,getDidAddress as Qe,getMethodsFromRecap as ze,getChainsFromRecap as He,buildNamespacesFromAuth as Ye,formatMessage as Mt,BASE64 as de,hashMessage as X,isExpired as J,MemoryStore as re,isValidParams as L,isUndefined as ne,isValidRelays as kt,isValidObject as Xe,isValidRequiredNamespaces as $t,isValidNamespaces as Oe,isConformingNamespaces as Je,isValidString as k,isValidErrorReason as Kt,isValidRelay as Ut,isValidController as Gt,isValidNamespacesChainId as Be,isValidRequest as jt,isValidNamespacesRequest as Ft,isValidRequestExpiry as Qt,isValidResponse as zt,isValidEvent as Ht,isValidNamespacesEvent as Yt,getSearchParamFromURL as We,isTestRun as Xt,isReactNative as Jt,parseExpirerTarget as Bt,isValidId as Wt,TYPE_1 as Ae,getAppMetadata as Zt}from\"@walletconnect/utils\";import es,{EventEmitter as ts}from\"events\";import{THIRTY_DAYS as ss,SEVEN_DAYS as Ze,FIVE_MINUTES as b,ONE_DAY as $,ONE_HOUR as et,ONE_SECOND as is,toMiliseconds as tt}from\"@walletconnect/time\";import{payloadId as B,getBigIntRpcId as ue,isJsonRpcResult as K,isJsonRpcError as U,formatJsonRpcRequest as ge,formatJsonRpcResult as rs,formatJsonRpcError as ns,isJsonRpcRequest as os,isJsonRpcResponse as as}from\"@walletconnect/jsonrpc-utils\";const be=\"wc\",Ce=2,Le=\"client\",ye=`${be}@${Ce}:${Le}:`,we={name:Le,logger:\"error\",controller:!1,relayUrl:\"wss://relay.walletconnect.org\"},cs={session_proposal:\"session_proposal\",session_update:\"session_update\",session_extend:\"session_extend\",session_ping:\"session_ping\",session_delete:\"session_delete\",session_expire:\"session_expire\",session_request:\"session_request\",session_request_sent:\"session_request_sent\",session_event:\"session_event\",proposal_expire:\"proposal_expire\",session_authenticate:\"session_authenticate\",session_request_expire:\"session_request_expire\"},ls={database:\":memory:\"},xe=\"WALLETCONNECT_DEEPLINK_CHOICE\",ps={created:\"history_created\",updated:\"history_updated\",deleted:\"history_deleted\",sync:\"history_sync\"},hs=\"history\",ds=\"0.3\",st=\"proposal\",us=ss,it=\"Proposal expired\",rt=\"session\",z=Ze,nt=\"engine\",v={wc_sessionPropose:{req:{ttl:b,prompt:!0,tag:1100},res:{ttl:b,prompt:!1,tag:1101},reject:{ttl:b,prompt:!1,tag:1120},autoReject:{ttl:b,prompt:!1,tag:1121}},wc_sessionSettle:{req:{ttl:b,prompt:!1,tag:1102},res:{ttl:b,prompt:!1,tag:1103}},wc_sessionUpdate:{req:{ttl:$,prompt:!1,tag:1104},res:{ttl:$,prompt:!1,tag:1105}},wc_sessionExtend:{req:{ttl:$,prompt:!1,tag:1106},res:{ttl:$,prompt:!1,tag:1107}},wc_sessionRequest:{req:{ttl:b,prompt:!0,tag:1108},res:{ttl:b,prompt:!1,tag:1109}},wc_sessionEvent:{req:{ttl:b,prompt:!0,tag:1110},res:{ttl:b,prompt:!1,tag:1111}},wc_sessionDelete:{req:{ttl:$,prompt:!1,tag:1112},res:{ttl:$,prompt:!1,tag:1113}},wc_sessionPing:{req:{ttl:$,prompt:!1,tag:1114},res:{ttl:$,prompt:!1,tag:1115}},wc_sessionAuthenticate:{req:{ttl:et,prompt:!0,tag:1116},res:{ttl:et,prompt:!1,tag:1117},reject:{ttl:b,prompt:!1,tag:1118},autoReject:{ttl:b,prompt:!1,tag:1119}}},me={min:b,max:Ze},x={idle:\"IDLE\",active:\"ACTIVE\"},ot=\"request\",at=[\"wc_sessionPropose\",\"wc_sessionRequest\",\"wc_authRequest\",\"wc_sessionAuthenticate\"],ct=\"wc\",gs=1.5,lt=\"auth\",pt=\"authKeys\",ht=\"pairingTopics\",dt=\"requests\",oe=`${ct}@${1.5}:${lt}:`,ae=`${oe}:PUB_KEY`;var ys=Object.defineProperty,ws=Object.defineProperties,ms=Object.getOwnPropertyDescriptors,ut=Object.getOwnPropertySymbols,_s=Object.prototype.hasOwnProperty,Es=Object.prototype.propertyIsEnumerable,gt=(q,o,e)=>o in q?ys(q,o,{enumerable:!0,configurable:!0,writable:!0,value:e}):q[o]=e,I=(q,o)=>{for(var e in o||(o={}))_s.call(o,e)&>(q,e,o[e]);if(ut)for(var e of ut(o))Es.call(o,e)&>(q,e,o[e]);return q},D=(q,o)=>ws(q,ms(o));class Rs extends Ot{constructor(o){super(o),this.name=nt,this.events=new es,this.initialized=!1,this.requestQueue={state:x.idle,queue:[]},this.sessionRequestQueue={state:x.idle,queue:[]},this.requestQueueDelay=is,this.expectedPairingMethodMap=new Map,this.recentlyDeletedMap=new Map,this.recentlyDeletedLimit=200,this.relayMessageCache=[],this.init=async()=>{this.initialized||(await this.cleanup(),this.registerRelayerEvents(),this.registerExpirerEvents(),this.registerPairingEvents(),await this.registerLinkModeListeners(),this.client.core.pairing.register({methods:Object.keys(v)}),this.initialized=!0,setTimeout(()=>{this.sessionRequestQueue.queue=this.getPendingSessionRequests(),this.processSessionRequestQueue()},tt(this.requestQueueDelay)))},this.connect=async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();const t=D(I({},e),{requiredNamespaces:e.requiredNamespaces||{},optionalNamespaces:e.optionalNamespaces||{}});await this.isValidConnect(t);const{pairingTopic:s,requiredNamespaces:i,optionalNamespaces:r,sessionProperties:n,relays:a}=t;let c=s,h,p=!1;try{c&&(p=this.client.core.pairing.pairings.get(c).active)}catch(E){throw this.client.logger.error(`connect() -> pairing.get(${c}) failed`),E}if(!c||!p){const{topic:E,uri:S}=await this.client.core.pairing.create();c=E,h=S}if(!c){const{message:E}=u(\"NO_MATCHING_KEY\",`connect() pairing topic: ${c}`);throw new Error(E)}const d=await this.client.core.crypto.generateKeyPair(),l=v.wc_sessionPropose.req.ttl||b,w=A(l),m=I({requiredNamespaces:i,optionalNamespaces:r,relays:a??[{protocol:Et}],proposer:{publicKey:d,metadata:this.client.metadata},expiryTimestamp:w,pairingTopic:c},n&&{sessionProperties:n}),{reject:y,resolve:_,done:R}=Y(l,it);this.events.once(g(\"session_connect\"),async({error:E,session:S})=>{if(E)y(E);else if(S){S.self.publicKey=d;const M=D(I({},S),{pairingTopic:m.pairingTopic,requiredNamespaces:m.requiredNamespaces,optionalNamespaces:m.optionalNamespaces,transportType:f.relay});await this.client.session.set(S.topic,M),await this.setExpiry(S.topic,S.expiry),c&&await this.client.core.pairing.updateMetadata({topic:c,metadata:S.peer.metadata}),this.cleanupDuplicatePairings(M),_(M)}});const V=await this.sendRequest({topic:c,method:\"wc_sessionPropose\",params:m,throwOnFailedPublish:!0});return await this.setProposal(V,I({id:V},m)),{uri:h,approval:R}},this.pair=async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{return await this.client.core.pairing.pair(e)}catch(t){throw this.client.logger.error(\"pair() failed\"),t}},this.approve=async e=>{var t,s,i;const r=this.client.core.eventClient.createEvent({properties:{topic:(t=e?.id)==null?void 0:t.toString(),trace:[C.session_approve_started]}});try{this.isInitialized(),await this.confirmOnlineStateOrThrow()}catch(N){throw r.setError(F.no_internet_connection),N}try{await this.isValidProposalId(e?.id)}catch(N){throw this.client.logger.error(`approve() -> proposal.get(${e?.id}) failed`),r.setError(F.proposal_not_found),N}try{await this.isValidApprove(e)}catch(N){throw this.client.logger.error(\"approve() -> isValidApprove() failed\"),r.setError(F.session_approve_namespace_validation_failure),N}const{id:n,relayProtocol:a,namespaces:c,sessionProperties:h,sessionConfig:p}=e,d=this.client.proposal.get(n);this.client.core.eventClient.deleteEvent({eventId:r.eventId});const{pairingTopic:l,proposer:w,requiredNamespaces:m,optionalNamespaces:y}=d;let _=(s=this.client.core.eventClient)==null?void 0:s.getEvent({topic:l});_||(_=(i=this.client.core.eventClient)==null?void 0:i.createEvent({type:C.session_approve_started,properties:{topic:l,trace:[C.session_approve_started,C.session_namespaces_validation_success]}}));const R=await this.client.core.crypto.generateKeyPair(),V=w.publicKey,E=await this.client.core.crypto.generateSharedKey(R,V),S=I(I({relay:{protocol:a??\"irn\"},namespaces:c,controller:{publicKey:R,metadata:this.client.metadata},expiry:A(z)},h&&{sessionProperties:h}),p&&{sessionConfig:p}),M=f.relay;_.addTrace(C.subscribing_session_topic);try{await this.client.core.relayer.subscribe(E,{transportType:M})}catch(N){throw _.setError(F.subscribe_session_topic_failure),N}_.addTrace(C.subscribe_session_topic_success);const W=D(I({},S),{topic:E,requiredNamespaces:m,optionalNamespaces:y,pairingTopic:l,acknowledged:!1,self:S.controller,peer:{publicKey:w.publicKey,metadata:w.metadata},controller:R,transportType:f.relay});await this.client.session.set(E,W),_.addTrace(C.store_session);try{_.addTrace(C.publishing_session_settle),await this.sendRequest({topic:E,method:\"wc_sessionSettle\",params:S,throwOnFailedPublish:!0}).catch(N=>{throw _?.setError(F.session_settle_publish_failure),N}),_.addTrace(C.session_settle_publish_success),_.addTrace(C.publishing_session_approve),await this.sendResult({id:n,topic:l,result:{relay:{protocol:a??\"irn\"},responderPublicKey:R},throwOnFailedPublish:!0}).catch(N=>{throw _?.setError(F.session_approve_publish_failure),N}),_.addTrace(C.session_approve_publish_success)}catch(N){throw this.client.logger.error(N),this.client.session.delete(E,P(\"USER_DISCONNECTED\")),await this.client.core.relayer.unsubscribe(E),N}return this.client.core.eventClient.deleteEvent({eventId:_.eventId}),await this.client.core.pairing.updateMetadata({topic:l,metadata:w.metadata}),await this.client.proposal.delete(n,P(\"USER_DISCONNECTED\")),await this.client.core.pairing.activate({topic:l}),await this.setExpiry(E,A(z)),{topic:E,acknowledged:()=>Promise.resolve(this.client.session.get(E))}},this.reject=async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidReject(e)}catch(r){throw this.client.logger.error(\"reject() -> isValidReject() failed\"),r}const{id:t,reason:s}=e;let i;try{i=this.client.proposal.get(t).pairingTopic}catch(r){throw this.client.logger.error(`reject() -> proposal.get(${t}) failed`),r}i&&(await this.sendError({id:t,topic:i,error:s,rpcOpts:v.wc_sessionPropose.reject}),await this.client.proposal.delete(t,P(\"USER_DISCONNECTED\")))},this.update=async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidUpdate(e)}catch(p){throw this.client.logger.error(\"update() -> isValidUpdate() failed\"),p}const{topic:t,namespaces:s}=e,{done:i,resolve:r,reject:n}=Y(),a=B(),c=ue().toString(),h=this.client.session.get(t).namespaces;return this.events.once(g(\"session_update\",a),({error:p})=>{p?n(p):r()}),await this.client.session.update(t,{namespaces:s}),await this.sendRequest({topic:t,method:\"wc_sessionUpdate\",params:{namespaces:s},throwOnFailedPublish:!0,clientRpcId:a,relayRpcId:c}).catch(p=>{this.client.logger.error(p),this.client.session.update(t,{namespaces:h}),n(p)}),{acknowledged:i}},this.extend=async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidExtend(e)}catch(a){throw this.client.logger.error(\"extend() -> isValidExtend() failed\"),a}const{topic:t}=e,s=B(),{done:i,resolve:r,reject:n}=Y();return this.events.once(g(\"session_extend\",s),({error:a})=>{a?n(a):r()}),await this.setExpiry(t,A(z)),this.sendRequest({topic:t,method:\"wc_sessionExtend\",params:{},clientRpcId:s,throwOnFailedPublish:!0}).catch(a=>{n(a)}),{acknowledged:i}},this.request=async e=>{this.isInitialized();try{await this.isValidRequest(e)}catch(w){throw this.client.logger.error(\"request() -> isValidRequest() failed\"),w}const{chainId:t,request:s,topic:i,expiry:r=v.wc_sessionRequest.req.ttl}=e,n=this.client.session.get(i);n?.transportType===f.relay&&await this.confirmOnlineStateOrThrow();const a=B(),c=ue().toString(),{done:h,resolve:p,reject:d}=Y(r,\"Request expired. Please try again.\");this.events.once(g(\"session_request\",a),({error:w,result:m})=>{w?d(w):p(m)});const l=this.getAppLinkIfEnabled(n.peer.metadata,n.transportType);return l?(await this.sendRequest({clientRpcId:a,relayRpcId:c,topic:i,method:\"wc_sessionRequest\",params:{request:D(I({},s),{expiryTimestamp:A(r)}),chainId:t},expiry:r,throwOnFailedPublish:!0,appLink:l}).catch(w=>d(w)),this.client.events.emit(\"session_request_sent\",{topic:i,request:s,chainId:t,id:a}),await h()):await Promise.all([new Promise(async w=>{await this.sendRequest({clientRpcId:a,relayRpcId:c,topic:i,method:\"wc_sessionRequest\",params:{request:D(I({},s),{expiryTimestamp:A(r)}),chainId:t},expiry:r,throwOnFailedPublish:!0}).catch(m=>d(m)),this.client.events.emit(\"session_request_sent\",{topic:i,request:s,chainId:t,id:a}),w()}),new Promise(async w=>{var m;if(!((m=n.sessionConfig)!=null&&m.disableDeepLink)){const y=await bt(this.client.core.storage,xe);await Ct({id:a,topic:i,wcDeepLink:y})}w()}),h()]).then(w=>w[2])},this.respond=async e=>{this.isInitialized(),await this.isValidRespond(e);const{topic:t,response:s}=e,{id:i}=s,r=this.client.session.get(t);r.transportType===f.relay&&await this.confirmOnlineStateOrThrow();const n=this.getAppLinkIfEnabled(r.peer.metadata,r.transportType);K(s)?await this.sendResult({id:i,topic:t,result:s.result,throwOnFailedPublish:!0,appLink:n}):U(s)&&await this.sendError({id:i,topic:t,error:s.error,appLink:n}),this.cleanupAfterResponse(e)},this.ping=async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidPing(e)}catch(s){throw this.client.logger.error(\"ping() -> isValidPing() failed\"),s}const{topic:t}=e;if(this.client.session.keys.includes(t)){const s=B(),i=ue().toString(),{done:r,resolve:n,reject:a}=Y();this.events.once(g(\"session_ping\",s),({error:c})=>{c?a(c):n()}),await Promise.all([this.sendRequest({topic:t,method:\"wc_sessionPing\",params:{},throwOnFailedPublish:!0,clientRpcId:s,relayRpcId:i}),r()])}else this.client.core.pairing.pairings.keys.includes(t)&&await this.client.core.pairing.ping({topic:t})},this.emit=async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow(),await this.isValidEmit(e);const{topic:t,event:s,chainId:i}=e,r=ue().toString();await this.sendRequest({topic:t,method:\"wc_sessionEvent\",params:{event:s,chainId:i},throwOnFailedPublish:!0,relayRpcId:r})},this.disconnect=async e=>{this.isInitialized(),await this.confirmOnlineStateOrThrow(),await this.isValidDisconnect(e);const{topic:t}=e;if(this.client.session.keys.includes(t))await this.sendRequest({topic:t,method:\"wc_sessionDelete\",params:P(\"USER_DISCONNECTED\"),throwOnFailedPublish:!0}),await this.deleteSession({topic:t,emitEvent:!1});else if(this.client.core.pairing.pairings.keys.includes(t))await this.client.core.pairing.disconnect({topic:t});else{const{message:s}=u(\"MISMATCHED_TOPIC\",`Session or pairing topic not found: ${t}`);throw new Error(s)}},this.find=e=>(this.isInitialized(),this.client.session.getAll().filter(t=>Lt(t,e))),this.getPendingSessionRequests=()=>this.client.pendingRequest.getAll(),this.authenticate=async(e,t)=>{var s;this.isInitialized(),this.isValidAuthenticate(e);const i=t&&this.client.core.linkModeSupportedApps.includes(t)&&((s=this.client.metadata.redirect)==null?void 0:s.linkMode),r=i?f.link_mode:f.relay;r===f.relay&&await this.confirmOnlineStateOrThrow();const{chains:n,statement:a=\"\",uri:c,domain:h,nonce:p,type:d,exp:l,nbf:w,methods:m=[],expiry:y}=e,_=[...e.resources||[]],{topic:R,uri:V}=await this.client.core.pairing.create({methods:[\"wc_sessionAuthenticate\"],transportType:r});this.client.logger.info({message:\"Generated new pairing\",pairing:{topic:R,uri:V}});const E=await this.client.core.crypto.generateKeyPair(),S=Te(E);if(await Promise.all([this.client.auth.authKeys.set(ae,{responseTopic:S,publicKey:E}),this.client.auth.pairingTopics.set(S,{topic:S,pairingTopic:R})]),await this.client.core.relayer.subscribe(S,{transportType:r}),this.client.logger.info(`sending request to new pairing topic: ${R}`),m.length>0){const{namespace:O}=Ne(n[0]);let T=xt(O,\"request\",m);Pe(_)&&(T=Dt(T,_.pop())),_.push(T)}const M=y&&y>v.wc_sessionAuthenticate.req.ttl?y:v.wc_sessionAuthenticate.req.ttl,W={authPayload:{type:d??\"caip122\",chains:n,statement:a,aud:c,domain:h,version:\"1\",nonce:p,iat:new Date().toISOString(),exp:l,nbf:w,resources:_},requester:{publicKey:E,metadata:this.client.metadata},expiryTimestamp:A(M)},N={eip155:{chains:n,methods:[...new Set([\"personal_sign\",...m])],events:[\"chainChanged\",\"accountsChanged\"]}},De={requiredNamespaces:{},optionalNamespaces:N,relays:[{protocol:\"irn\"}],pairingTopic:R,proposer:{publicKey:E,metadata:this.client.metadata},expiryTimestamp:A(v.wc_sessionPropose.req.ttl)},{done:wt,resolve:Ve,reject:Ee}=Y(M,\"Request expired\"),ce=async({error:O,session:T})=>{if(this.events.off(g(\"session_request\",G),Re),O)Ee(O);else if(T){T.self.publicKey=E,await this.client.session.set(T.topic,T),await this.setExpiry(T.topic,T.expiry),R&&await this.client.core.pairing.updateMetadata({topic:R,metadata:T.peer.metadata});const le=this.client.session.get(T.topic);await this.deleteProposal(Z),Ve({session:le})}},Re=async O=>{var T,le,Me;if(await this.deletePendingAuthRequest(G,{message:\"fulfilled\",code:0}),O.error){const te=P(\"WC_METHOD_UNSUPPORTED\",\"wc_sessionAuthenticate\");return O.error.code===te.code?void 0:(this.events.off(g(\"session_connect\"),ce),Ee(O.error.message))}await this.deleteProposal(Z),this.events.off(g(\"session_connect\"),ce);const{cacaos:ke,responder:j}=O.result,Ie=[],$e=[];for(const te of ke){await je({cacao:te,projectId:this.client.core.projectId})||(this.client.logger.error(te,\"Signature verification failed\"),Ee(P(\"SESSION_SETTLEMENT_FAILED\",\"Signature verification failed\")));const{p:fe}=te,ve=Pe(fe.resources),Ke=[Fe(fe.iss)],mt=Qe(fe.iss);if(ve){const qe=ze(ve),_t=He(ve);Ie.push(...qe),Ke.push(..._t)}for(const qe of Ke)$e.push(`${qe}:${mt}`)}const ee=await this.client.core.crypto.generateSharedKey(E,j.publicKey);let pe;Ie.length>0&&(pe={topic:ee,acknowledged:!0,self:{publicKey:E,metadata:this.client.metadata},peer:j,controller:j.publicKey,expiry:A(z),requiredNamespaces:{},optionalNamespaces:{},relay:{protocol:\"irn\"},pairingTopic:R,namespaces:Ye([...new Set(Ie)],[...new Set($e)]),transportType:r},await this.client.core.relayer.subscribe(ee,{transportType:r}),await this.client.session.set(ee,pe),R&&await this.client.core.pairing.updateMetadata({topic:R,metadata:j.metadata}),pe=this.client.session.get(ee)),(T=this.client.metadata.redirect)!=null&&T.linkMode&&(le=j.metadata.redirect)!=null&&le.linkMode&&(Me=j.metadata.redirect)!=null&&Me.universal&&t&&(this.client.core.addLinkModeSupportedApp(j.metadata.redirect.universal),this.client.session.update(ee,{transportType:f.link_mode})),Ve({auths:ke,session:pe})},G=B(),Z=B();this.events.once(g(\"session_connect\"),ce),this.events.once(g(\"session_request\",G),Re);let Se;try{if(i){const O=ge(\"wc_sessionAuthenticate\",W,G);this.client.core.history.set(R,O);const T=await this.client.core.crypto.encode(\"\",O,{type:Vt,encoding:ie});Se=he(t,R,T)}else await Promise.all([this.sendRequest({topic:R,method:\"wc_sessionAuthenticate\",params:W,expiry:e.expiry,throwOnFailedPublish:!0,clientRpcId:G}),this.sendRequest({topic:R,method:\"wc_sessionPropose\",params:De,expiry:v.wc_sessionPropose.req.ttl,throwOnFailedPublish:!0,clientRpcId:Z})])}catch(O){throw this.events.off(g(\"session_connect\"),ce),this.events.off(g(\"session_request\",G),Re),O}return await this.setProposal(Z,I({id:Z},De)),await this.setAuthRequest(G,{request:D(I({},W),{verifyContext:{}}),pairingTopic:R,transportType:r}),{uri:Se??V,response:wt}},this.approveSessionAuthenticate=async e=>{const{id:t,auths:s}=e,i=this.client.core.eventClient.createEvent({properties:{topic:t.toString(),trace:[Q.authenticated_session_approve_started]}});try{this.isInitialized()}catch(y){throw i.setError(se.no_internet_connection),y}const r=this.getPendingAuthRequest(t);if(!r)throw i.setError(se.authenticated_session_pending_request_not_found),new Error(`Could not find pending auth request with id ${t}`);const n=r.transportType||f.relay;n===f.relay&&await this.confirmOnlineStateOrThrow();const a=r.requester.publicKey,c=await this.client.core.crypto.generateKeyPair(),h=Te(a),p={type:Ae,receiverPublicKey:a,senderPublicKey:c},d=[],l=[];for(const y of s){if(!await je({cacao:y,projectId:this.client.core.projectId})){i.setError(se.invalid_cacao);const S=P(\"SESSION_SETTLEMENT_FAILED\",\"Signature verification failed\");throw await this.sendError({id:t,topic:h,error:S,encodeOpts:p}),new Error(S.message)}i.addTrace(Q.cacaos_verified);const{p:_}=y,R=Pe(_.resources),V=[Fe(_.iss)],E=Qe(_.iss);if(R){const S=ze(R),M=He(R);d.push(...S),V.push(...M)}for(const S of V)l.push(`${S}:${E}`)}const w=await this.client.core.crypto.generateSharedKey(c,a);i.addTrace(Q.create_authenticated_session_topic);let m;if(d?.length>0){m={topic:w,acknowledged:!0,self:{publicKey:c,metadata:this.client.metadata},peer:{publicKey:a,metadata:r.requester.metadata},controller:a,expiry:A(z),authentication:s,requiredNamespaces:{},optionalNamespaces:{},relay:{protocol:\"irn\"},pairingTopic:r.pairingTopic,namespaces:Ye([...new Set(d)],[...new Set(l)]),transportType:n},i.addTrace(Q.subscribing_authenticated_session_topic);try{await this.client.core.relayer.subscribe(w,{transportType:n})}catch(y){throw i.setError(se.subscribe_authenticated_session_topic_failure),y}i.addTrace(Q.subscribe_authenticated_session_topic_success),await this.client.session.set(w,m),i.addTrace(Q.store_authenticated_session),await this.client.core.pairing.updateMetadata({topic:r.pairingTopic,metadata:r.requester.metadata})}i.addTrace(Q.publishing_authenticated_session_approve);try{await this.sendResult({topic:h,id:t,result:{cacaos:s,responder:{publicKey:c,metadata:this.client.metadata}},encodeOpts:p,throwOnFailedPublish:!0,appLink:this.getAppLinkIfEnabled(r.requester.metadata,n)})}catch(y){throw i.setError(se.authenticated_session_approve_publish_failure),y}return await this.client.auth.requests.delete(t,{message:\"fulfilled\",code:0}),await this.client.core.pairing.activate({topic:r.pairingTopic}),this.client.core.eventClient.deleteEvent({eventId:i.eventId}),{session:m}},this.rejectSessionAuthenticate=async e=>{this.isInitialized();const{id:t,reason:s}=e,i=this.getPendingAuthRequest(t);if(!i)throw new Error(`Could not find pending auth request with id ${t}`);i.transportType===f.relay&&await this.confirmOnlineStateOrThrow();const r=i.requester.publicKey,n=await this.client.core.crypto.generateKeyPair(),a=Te(r),c={type:Ae,receiverPublicKey:r,senderPublicKey:n};await this.sendError({id:t,topic:a,error:s,encodeOpts:c,rpcOpts:v.wc_sessionAuthenticate.reject,appLink:this.getAppLinkIfEnabled(i.requester.metadata,i.transportType)}),await this.client.auth.requests.delete(t,{message:\"rejected\",code:0}),await this.client.proposal.delete(t,P(\"USER_DISCONNECTED\"))},this.formatAuthMessage=e=>{this.isInitialized();const{request:t,iss:s}=e;return Mt(t,s)},this.processRelayMessageCache=()=>{setTimeout(async()=>{if(this.relayMessageCache.length!==0)for(;this.relayMessageCache.length>0;)try{const e=this.relayMessageCache.shift();e&&await this.onRelayMessage(e)}catch(e){this.client.logger.error(e)}},50)},this.cleanupDuplicatePairings=async e=>{if(e.pairingTopic)try{const t=this.client.core.pairing.pairings.get(e.pairingTopic),s=this.client.core.pairing.pairings.getAll().filter(i=>{var r,n;return((r=i.peerMetadata)==null?void 0:r.url)&&((n=i.peerMetadata)==null?void 0:n.url)===e.peer.metadata.url&&i.topic&&i.topic!==t.topic});if(s.length===0)return;this.client.logger.info(`Cleaning up ${s.length} duplicate pairing(s)`),await Promise.all(s.map(i=>this.client.core.pairing.disconnect({topic:i.topic}))),this.client.logger.info(\"Duplicate pairings clean up finished\")}catch(t){this.client.logger.error(t)}},this.deleteSession=async e=>{var t;const{topic:s,expirerHasDeleted:i=!1,emitEvent:r=!0,id:n=0}=e,{self:a}=this.client.session.get(s);await this.client.core.relayer.unsubscribe(s),await this.client.session.delete(s,P(\"USER_DISCONNECTED\")),this.addToRecentlyDeleted(s,\"session\"),this.client.core.crypto.keychain.has(a.publicKey)&&await this.client.core.crypto.deleteKeyPair(a.publicKey),this.client.core.crypto.keychain.has(s)&&await this.client.core.crypto.deleteSymKey(s),i||this.client.core.expirer.del(s),this.client.core.storage.removeItem(xe).catch(c=>this.client.logger.warn(c)),this.getPendingSessionRequests().forEach(c=>{c.topic===s&&this.deletePendingSessionRequest(c.id,P(\"USER_DISCONNECTED\"))}),s===((t=this.sessionRequestQueue.queue[0])==null?void 0:t.topic)&&(this.sessionRequestQueue.state=x.idle),r&&this.client.events.emit(\"session_delete\",{id:n,topic:s})},this.deleteProposal=async(e,t)=>{if(t)try{const s=this.client.proposal.get(e),i=this.client.core.eventClient.getEvent({topic:s.pairingTopic});i?.setError(F.proposal_expired)}catch{}await Promise.all([this.client.proposal.delete(e,P(\"USER_DISCONNECTED\")),t?Promise.resolve():this.client.core.expirer.del(e)]),this.addToRecentlyDeleted(e,\"proposal\")},this.deletePendingSessionRequest=async(e,t,s=!1)=>{await Promise.all([this.client.pendingRequest.delete(e,t),s?Promise.resolve():this.client.core.expirer.del(e)]),this.addToRecentlyDeleted(e,\"request\"),this.sessionRequestQueue.queue=this.sessionRequestQueue.queue.filter(i=>i.id!==e),s&&(this.sessionRequestQueue.state=x.idle,this.client.events.emit(\"session_request_expire\",{id:e}))},this.deletePendingAuthRequest=async(e,t,s=!1)=>{await Promise.all([this.client.auth.requests.delete(e,t),s?Promise.resolve():this.client.core.expirer.del(e)])},this.setExpiry=async(e,t)=>{this.client.session.keys.includes(e)&&(this.client.core.expirer.set(e,t),await this.client.session.update(e,{expiry:t}))},this.setProposal=async(e,t)=>{this.client.core.expirer.set(e,A(v.wc_sessionPropose.req.ttl)),await this.client.proposal.set(e,t)},this.setAuthRequest=async(e,t)=>{const{request:s,pairingTopic:i,transportType:r=f.relay}=t;this.client.core.expirer.set(e,s.expiryTimestamp),await this.client.auth.requests.set(e,{authPayload:s.authPayload,requester:s.requester,expiryTimestamp:s.expiryTimestamp,id:e,pairingTopic:i,verifyContext:s.verifyContext,transportType:r})},this.setPendingSessionRequest=async e=>{const{id:t,topic:s,params:i,verifyContext:r}=e,n=i.request.expiryTimestamp||A(v.wc_sessionRequest.req.ttl);this.client.core.expirer.set(t,n),await this.client.pendingRequest.set(t,{id:t,topic:s,params:i,verifyContext:r})},this.sendRequest=async e=>{const{topic:t,method:s,params:i,expiry:r,relayRpcId:n,clientRpcId:a,throwOnFailedPublish:c,appLink:h}=e,p=ge(s,i,a);let d;const l=!!h;try{const y=l?ie:de;d=await this.client.core.crypto.encode(t,p,{encoding:y})}catch(y){throw await this.cleanup(),this.client.logger.error(`sendRequest() -> core.crypto.encode() for topic ${t} failed`),y}let w;if(at.includes(s)){const y=X(JSON.stringify(p)),_=X(d);w=await this.client.core.verify.register({id:_,decryptedId:y})}const m=v[s].req;if(m.attestation=w,r&&(m.ttl=r),n&&(m.id=n),this.client.core.history.set(t,p),l){const y=he(h,t,d);await global.Linking.openURL(y,this.client.name)}else{const y=v[s].req;r&&(y.ttl=r),n&&(y.id=n),c?(y.internal=D(I({},y.internal),{throwOnFailedPublish:!0}),await this.client.core.relayer.publish(t,d,y)):this.client.core.relayer.publish(t,d,y).catch(_=>this.client.logger.error(_))}return p.id},this.sendResult=async e=>{const{id:t,topic:s,result:i,throwOnFailedPublish:r,encodeOpts:n,appLink:a}=e,c=rs(t,i);let h;const p=a&&typeof(global==null?void 0:global.Linking)<\"u\";try{const l=p?ie:de;h=await this.client.core.crypto.encode(s,c,D(I({},n||{}),{encoding:l}))}catch(l){throw await this.cleanup(),this.client.logger.error(`sendResult() -> core.crypto.encode() for topic ${s} failed`),l}let d;try{d=await this.client.core.history.get(s,t)}catch(l){throw this.client.logger.error(`sendResult() -> history.get(${s}, ${t}) failed`),l}if(p){const l=he(a,s,h);await global.Linking.openURL(l,this.client.name)}else{const l=v[d.request.method].res;r?(l.internal=D(I({},l.internal),{throwOnFailedPublish:!0}),await this.client.core.relayer.publish(s,h,l)):this.client.core.relayer.publish(s,h,l).catch(w=>this.client.logger.error(w))}await this.client.core.history.resolve(c)},this.sendError=async e=>{const{id:t,topic:s,error:i,encodeOpts:r,rpcOpts:n,appLink:a}=e,c=ns(t,i);let h;const p=a&&typeof(global==null?void 0:global.Linking)<\"u\";try{const l=p?ie:de;h=await this.client.core.crypto.encode(s,c,D(I({},r||{}),{encoding:l}))}catch(l){throw await this.cleanup(),this.client.logger.error(`sendError() -> core.crypto.encode() for topic ${s} failed`),l}let d;try{d=await this.client.core.history.get(s,t)}catch(l){throw this.client.logger.error(`sendError() -> history.get(${s}, ${t}) failed`),l}if(p){const l=he(a,s,h);await global.Linking.openURL(l,this.client.name)}else{const l=n||v[d.request.method].res;this.client.core.relayer.publish(s,h,l)}await this.client.core.history.resolve(c)},this.cleanup=async()=>{const e=[],t=[];this.client.session.getAll().forEach(s=>{let i=!1;J(s.expiry)&&(i=!0),this.client.core.crypto.keychain.has(s.topic)||(i=!0),i&&e.push(s.topic)}),this.client.proposal.getAll().forEach(s=>{J(s.expiryTimestamp)&&t.push(s.id)}),await Promise.all([...e.map(s=>this.deleteSession({topic:s})),...t.map(s=>this.deleteProposal(s))])},this.onRelayEventRequest=async e=>{this.requestQueue.queue.push(e),await this.processRequestsQueue()},this.processRequestsQueue=async()=>{if(this.requestQueue.state===x.active){this.client.logger.info(\"Request queue already active, skipping...\");return}for(this.client.logger.info(`Request queue starting with ${this.requestQueue.queue.length} requests`);this.requestQueue.queue.length>0;){this.requestQueue.state=x.active;const e=this.requestQueue.queue.shift();if(e)try{await this.processRequest(e)}catch(t){this.client.logger.warn(t)}}this.requestQueue.state=x.idle},this.processRequest=async e=>{const{topic:t,payload:s,attestation:i,transportType:r,encryptedId:n}=e,a=s.method;if(!this.shouldIgnorePairingRequest({topic:t,requestMethod:a}))switch(a){case\"wc_sessionPropose\":return await this.onSessionProposeRequest({topic:t,payload:s,attestation:i,encryptedId:n});case\"wc_sessionSettle\":return await this.onSessionSettleRequest(t,s);case\"wc_sessionUpdate\":return await this.onSessionUpdateRequest(t,s);case\"wc_sessionExtend\":return await this.onSessionExtendRequest(t,s);case\"wc_sessionPing\":return await this.onSessionPingRequest(t,s);case\"wc_sessionDelete\":return await this.onSessionDeleteRequest(t,s);case\"wc_sessionRequest\":return await this.onSessionRequest({topic:t,payload:s,attestation:i,encryptedId:n,transportType:r});case\"wc_sessionEvent\":return await this.onSessionEventRequest(t,s);case\"wc_sessionAuthenticate\":return await this.onSessionAuthenticateRequest({topic:t,payload:s,attestation:i,encryptedId:n,transportType:r});default:return this.client.logger.info(`Unsupported request method ${a}`)}},this.onRelayEventResponse=async e=>{const{topic:t,payload:s,transportType:i}=e,r=(await this.client.core.history.get(t,s.id)).request.method;switch(r){case\"wc_sessionPropose\":return this.onSessionProposeResponse(t,s,i);case\"wc_sessionSettle\":return this.onSessionSettleResponse(t,s);case\"wc_sessionUpdate\":return this.onSessionUpdateResponse(t,s);case\"wc_sessionExtend\":return this.onSessionExtendResponse(t,s);case\"wc_sessionPing\":return this.onSessionPingResponse(t,s);case\"wc_sessionRequest\":return this.onSessionRequestResponse(t,s);case\"wc_sessionAuthenticate\":return this.onSessionAuthenticateResponse(t,s);default:return this.client.logger.info(`Unsupported response method ${r}`)}},this.onRelayEventUnknownPayload=e=>{const{topic:t}=e,{message:s}=u(\"MISSING_OR_INVALID\",`Decoded payload on topic ${t} is not identifiable as a JSON-RPC request or a response.`);throw new Error(s)},this.shouldIgnorePairingRequest=e=>{const{topic:t,requestMethod:s}=e,i=this.expectedPairingMethodMap.get(t);return!i||i.includes(s)?!1:!!(i.includes(\"wc_sessionAuthenticate\")&&this.client.events.listenerCount(\"session_authenticate\")>0)},this.onSessionProposeRequest=async e=>{const{topic:t,payload:s,attestation:i,encryptedId:r}=e,{params:n,id:a}=s;try{const c=this.client.core.eventClient.getEvent({topic:t});this.isValidConnect(I({},s.params));const h=n.expiryTimestamp||A(v.wc_sessionPropose.req.ttl),p=I({id:a,pairingTopic:t,expiryTimestamp:h},n);await this.setProposal(a,p);const d=await this.getVerifyContext({attestationId:i,hash:X(JSON.stringify(s)),encryptedId:r,metadata:p.proposer.metadata});this.client.events.listenerCount(\"session_proposal\")===0&&(console.warn(\"No listener for session_proposal event\"),c?.setError(Rt.proposal_listener_not_found)),c?.addTrace(St.emit_session_proposal),this.client.events.emit(\"session_proposal\",{id:a,params:p,verifyContext:d})}catch(c){await this.sendError({id:a,topic:t,error:c,rpcOpts:v.wc_sessionPropose.autoReject}),this.client.logger.error(c)}},this.onSessionProposeResponse=async(e,t,s)=>{const{id:i}=t;if(K(t)){const{result:r}=t;this.client.logger.trace({type:\"method\",method:\"onSessionProposeResponse\",result:r});const n=this.client.proposal.get(i);this.client.logger.trace({type:\"method\",method:\"onSessionProposeResponse\",proposal:n});const a=n.proposer.publicKey;this.client.logger.trace({type:\"method\",method:\"onSessionProposeResponse\",selfPublicKey:a});const c=r.responderPublicKey;this.client.logger.trace({type:\"method\",method:\"onSessionProposeResponse\",peerPublicKey:c});const h=await this.client.core.crypto.generateSharedKey(a,c);this.client.logger.trace({type:\"method\",method:\"onSessionProposeResponse\",sessionTopic:h});const p=await this.client.core.relayer.subscribe(h,{transportType:s});this.client.logger.trace({type:\"method\",method:\"onSessionProposeResponse\",subscriptionId:p}),await this.client.core.pairing.activate({topic:e})}else if(U(t)){await this.client.proposal.delete(i,P(\"USER_DISCONNECTED\"));const r=g(\"session_connect\");if(this.events.listenerCount(r)===0)throw new Error(`emitting ${r} without any listeners, 954`);this.events.emit(g(\"session_connect\"),{error:t.error})}},this.onSessionSettleRequest=async(e,t)=>{const{id:s,params:i}=t;try{this.isValidSessionSettleRequest(i);const{relay:r,controller:n,expiry:a,namespaces:c,sessionProperties:h,sessionConfig:p}=t.params,d=D(I(I({topic:e,relay:r,expiry:a,namespaces:c,acknowledged:!0,pairingTopic:\"\",requiredNamespaces:{},optionalNamespaces:{},controller:n.publicKey,self:{publicKey:\"\",metadata:this.client.metadata},peer:{publicKey:n.publicKey,metadata:n.metadata}},h&&{sessionProperties:h}),p&&{sessionConfig:p}),{transportType:f.relay}),l=g(\"session_connect\");if(this.events.listenerCount(l)===0)throw new Error(`emitting ${l} without any listeners 997`);this.events.emit(g(\"session_connect\"),{session:d}),await this.sendResult({id:t.id,topic:e,result:!0,throwOnFailedPublish:!0})}catch(r){await this.sendError({id:s,topic:e,error:r}),this.client.logger.error(r)}},this.onSessionSettleResponse=async(e,t)=>{const{id:s}=t;K(t)?(await this.client.session.update(e,{acknowledged:!0}),this.events.emit(g(\"session_approve\",s),{})):U(t)&&(await this.client.session.delete(e,P(\"USER_DISCONNECTED\")),this.events.emit(g(\"session_approve\",s),{error:t.error}))},this.onSessionUpdateRequest=async(e,t)=>{const{params:s,id:i}=t;try{const r=`${e}_session_update`,n=re.get(r);if(n&&this.isRequestOutOfSync(n,i)){this.client.logger.info(`Discarding out of sync request - ${i}`),this.sendError({id:i,topic:e,error:P(\"INVALID_UPDATE_REQUEST\")});return}this.isValidUpdate(I({topic:e},s));try{re.set(r,i),await this.client.session.update(e,{namespaces:s.namespaces}),await this.sendResult({id:i,topic:e,result:!0,throwOnFailedPublish:!0})}catch(a){throw re.delete(r),a}this.client.events.emit(\"session_update\",{id:i,topic:e,params:s})}catch(r){await this.sendError({id:i,topic:e,error:r}),this.client.logger.error(r)}},this.isRequestOutOfSync=(e,t)=>parseInt(t.toString().slice(0,-3))<=parseInt(e.toString().slice(0,-3)),this.onSessionUpdateResponse=(e,t)=>{const{id:s}=t,i=g(\"session_update\",s);if(this.events.listenerCount(i)===0)throw new Error(`emitting ${i} without any listeners`);K(t)?this.events.emit(g(\"session_update\",s),{}):U(t)&&this.events.emit(g(\"session_update\",s),{error:t.error})},this.onSessionExtendRequest=async(e,t)=>{const{id:s}=t;try{this.isValidExtend({topic:e}),await this.setExpiry(e,A(z)),await this.sendResult({id:s,topic:e,result:!0,throwOnFailedPublish:!0}),this.client.events.emit(\"session_extend\",{id:s,topic:e})}catch(i){await this.sendError({id:s,topic:e,error:i}),this.client.logger.error(i)}},this.onSessionExtendResponse=(e,t)=>{const{id:s}=t,i=g(\"session_extend\",s);if(this.events.listenerCount(i)===0)throw new Error(`emitting ${i} without any listeners`);K(t)?this.events.emit(g(\"session_extend\",s),{}):U(t)&&this.events.emit(g(\"session_extend\",s),{error:t.error})},this.onSessionPingRequest=async(e,t)=>{const{id:s}=t;try{this.isValidPing({topic:e}),await this.sendResult({id:s,topic:e,result:!0,throwOnFailedPublish:!0}),this.client.events.emit(\"session_ping\",{id:s,topic:e})}catch(i){await this.sendError({id:s,topic:e,error:i}),this.client.logger.error(i)}},this.onSessionPingResponse=(e,t)=>{const{id:s}=t,i=g(\"session_ping\",s);if(this.events.listenerCount(i)===0)throw new Error(`emitting ${i} without any listeners`);setTimeout(()=>{K(t)?this.events.emit(g(\"session_ping\",s),{}):U(t)&&this.events.emit(g(\"session_ping\",s),{error:t.error})},500)},this.onSessionDeleteRequest=async(e,t)=>{const{id:s}=t;try{this.isValidDisconnect({topic:e,reason:t.params}),Promise.all([new Promise(i=>{this.client.core.relayer.once(Ue.publish,async()=>{i(await this.deleteSession({topic:e,id:s}))})}),this.sendResult({id:s,topic:e,result:!0,throwOnFailedPublish:!0}),this.cleanupPendingSentRequestsForTopic({topic:e,error:P(\"USER_DISCONNECTED\")})]).catch(i=>this.client.logger.error(i))}catch(i){this.client.logger.error(i)}},this.onSessionRequest=async e=>{var t,s,i;const{topic:r,payload:n,attestation:a,encryptedId:c,transportType:h}=e,{id:p,params:d}=n;try{await this.isValidRequest(I({topic:r},d));const l=this.client.session.get(r),w=await this.getVerifyContext({attestationId:a,hash:X(JSON.stringify(ge(\"wc_sessionRequest\",d,p))),encryptedId:c,metadata:l.peer.metadata,transportType:h}),m={id:p,topic:r,params:d,verifyContext:w};await this.setPendingSessionRequest(m),h===f.link_mode&&(t=l.peer.metadata.redirect)!=null&&t.universal&&this.client.core.addLinkModeSupportedApp((s=l.peer.metadata.redirect)==null?void 0:s.universal),(i=this.client.signConfig)!=null&&i.disableRequestQueue?this.emitSessionRequest(m):(this.addSessionRequestToSessionRequestQueue(m),this.processSessionRequestQueue())}catch(l){await this.sendError({id:p,topic:r,error:l}),this.client.logger.error(l)}},this.onSessionRequestResponse=(e,t)=>{const{id:s}=t,i=g(\"session_request\",s);if(this.events.listenerCount(i)===0)throw new Error(`emitting ${i} without any listeners`);K(t)?this.events.emit(g(\"session_request\",s),{result:t.result}):U(t)&&this.events.emit(g(\"session_request\",s),{error:t.error})},this.onSessionEventRequest=async(e,t)=>{const{id:s,params:i}=t;try{const r=`${e}_session_event_${i.event.name}`,n=re.get(r);if(n&&this.isRequestOutOfSync(n,s)){this.client.logger.info(`Discarding out of sync request - ${s}`);return}this.isValidEmit(I({topic:e},i)),this.client.events.emit(\"session_event\",{id:s,topic:e,params:i}),re.set(r,s)}catch(r){await this.sendError({id:s,topic:e,error:r}),this.client.logger.error(r)}},this.onSessionAuthenticateResponse=(e,t)=>{const{id:s}=t;this.client.logger.trace({type:\"method\",method:\"onSessionAuthenticateResponse\",topic:e,payload:t}),K(t)?this.events.emit(g(\"session_request\",s),{result:t.result}):U(t)&&this.events.emit(g(\"session_request\",s),{error:t.error})},this.onSessionAuthenticateRequest=async e=>{var t;const{topic:s,payload:i,attestation:r,encryptedId:n,transportType:a}=e;try{const{requester:c,authPayload:h,expiryTimestamp:p}=i.params,d=await this.getVerifyContext({attestationId:r,hash:X(JSON.stringify(i)),encryptedId:n,metadata:c.metadata,transportType:a}),l={requester:c,pairingTopic:s,id:i.id,authPayload:h,verifyContext:d,expiryTimestamp:p};await this.setAuthRequest(i.id,{request:l,pairingTopic:s,transportType:a}),a===f.link_mode&&(t=c.metadata.redirect)!=null&&t.universal&&this.client.core.addLinkModeSupportedApp(c.metadata.redirect.universal),this.client.events.emit(\"session_authenticate\",{topic:s,params:i.params,id:i.id,verifyContext:d})}catch(c){this.client.logger.error(c);const h=i.params.requester.publicKey,p=await this.client.core.crypto.generateKeyPair(),d=this.getAppLinkIfEnabled(i.params.requester.metadata,a),l={type:Ae,receiverPublicKey:h,senderPublicKey:p};await this.sendError({id:i.id,topic:s,error:c,encodeOpts:l,rpcOpts:v.wc_sessionAuthenticate.autoReject,appLink:d})}},this.addSessionRequestToSessionRequestQueue=e=>{this.sessionRequestQueue.queue.push(e)},this.cleanupAfterResponse=e=>{this.deletePendingSessionRequest(e.response.id,{message:\"fulfilled\",code:0}),setTimeout(()=>{this.sessionRequestQueue.state=x.idle,this.processSessionRequestQueue()},tt(this.requestQueueDelay))},this.cleanupPendingSentRequestsForTopic=({topic:e,error:t})=>{const s=this.client.core.history.pending;s.length>0&&s.filter(i=>i.topic===e&&i.request.method===\"wc_sessionRequest\").forEach(i=>{const r=i.request.id,n=g(\"session_request\",r);if(this.events.listenerCount(n)===0)throw new Error(`emitting ${n} without any listeners`);this.events.emit(g(\"session_request\",i.request.id),{error:t})})},this.processSessionRequestQueue=()=>{if(this.sessionRequestQueue.state===x.active){this.client.logger.info(\"session request queue is already active.\");return}const e=this.sessionRequestQueue.queue[0];if(!e){this.client.logger.info(\"session request queue is empty.\");return}try{this.sessionRequestQueue.state=x.active,this.emitSessionRequest(e)}catch(t){this.client.logger.error(t)}},this.emitSessionRequest=e=>{this.client.events.emit(\"session_request\",e)},this.onPairingCreated=e=>{if(e.methods&&this.expectedPairingMethodMap.set(e.topic,e.methods),e.active)return;const t=this.client.proposal.getAll().find(s=>s.pairingTopic===e.topic);t&&this.onSessionProposeRequest({topic:e.topic,payload:ge(\"wc_sessionPropose\",{requiredNamespaces:t.requiredNamespaces,optionalNamespaces:t.optionalNamespaces,relays:t.relays,proposer:t.proposer,sessionProperties:t.sessionProperties},t.id)})},this.isValidConnect=async e=>{if(!L(e)){const{message:a}=u(\"MISSING_OR_INVALID\",`connect() params: ${JSON.stringify(e)}`);throw new Error(a)}const{pairingTopic:t,requiredNamespaces:s,optionalNamespaces:i,sessionProperties:r,relays:n}=e;if(ne(t)||await this.isValidPairingTopic(t),!kt(n,!0)){const{message:a}=u(\"MISSING_OR_INVALID\",`connect() relays: ${n}`);throw new Error(a)}!ne(s)&&Xe(s)!==0&&this.validateNamespaces(s,\"requiredNamespaces\"),!ne(i)&&Xe(i)!==0&&this.validateNamespaces(i,\"optionalNamespaces\"),ne(r)||this.validateSessionProps(r,\"sessionProperties\")},this.validateNamespaces=(e,t)=>{const s=$t(e,\"connect()\",t);if(s)throw new Error(s.message)},this.isValidApprove=async e=>{if(!L(e))throw new Error(u(\"MISSING_OR_INVALID\",`approve() params: ${e}`).message);const{id:t,namespaces:s,relayProtocol:i,sessionProperties:r}=e;this.checkRecentlyDeleted(t),await this.isValidProposalId(t);const n=this.client.proposal.get(t),a=Oe(s,\"approve()\");if(a)throw new Error(a.message);const c=Je(n.requiredNamespaces,s,\"approve()\");if(c)throw new Error(c.message);if(!k(i,!0)){const{message:h}=u(\"MISSING_OR_INVALID\",`approve() relayProtocol: ${i}`);throw new Error(h)}ne(r)||this.validateSessionProps(r,\"sessionProperties\")},this.isValidReject=async e=>{if(!L(e)){const{message:i}=u(\"MISSING_OR_INVALID\",`reject() params: ${e}`);throw new Error(i)}const{id:t,reason:s}=e;if(this.checkRecentlyDeleted(t),await this.isValidProposalId(t),!Kt(s)){const{message:i}=u(\"MISSING_OR_INVALID\",`reject() reason: ${JSON.stringify(s)}`);throw new Error(i)}},this.isValidSessionSettleRequest=e=>{if(!L(e)){const{message:c}=u(\"MISSING_OR_INVALID\",`onSessionSettleRequest() params: ${e}`);throw new Error(c)}const{relay:t,controller:s,namespaces:i,expiry:r}=e;if(!Ut(t)){const{message:c}=u(\"MISSING_OR_INVALID\",\"onSessionSettleRequest() relay protocol should be a string\");throw new Error(c)}const n=Gt(s,\"onSessionSettleRequest()\");if(n)throw new Error(n.message);const a=Oe(i,\"onSessionSettleRequest()\");if(a)throw new Error(a.message);if(J(r)){const{message:c}=u(\"EXPIRED\",\"onSessionSettleRequest()\");throw new Error(c)}},this.isValidUpdate=async e=>{if(!L(e)){const{message:a}=u(\"MISSING_OR_INVALID\",`update() params: ${e}`);throw new Error(a)}const{topic:t,namespaces:s}=e;this.checkRecentlyDeleted(t),await this.isValidSessionTopic(t);const i=this.client.session.get(t),r=Oe(s,\"update()\");if(r)throw new Error(r.message);const n=Je(i.requiredNamespaces,s,\"update()\");if(n)throw new Error(n.message)},this.isValidExtend=async e=>{if(!L(e)){const{message:s}=u(\"MISSING_OR_INVALID\",`extend() params: ${e}`);throw new Error(s)}const{topic:t}=e;this.checkRecentlyDeleted(t),await this.isValidSessionTopic(t)},this.isValidRequest=async e=>{if(!L(e)){const{message:a}=u(\"MISSING_OR_INVALID\",`request() params: ${e}`);throw new Error(a)}const{topic:t,request:s,chainId:i,expiry:r}=e;this.checkRecentlyDeleted(t),await this.isValidSessionTopic(t);const{namespaces:n}=this.client.session.get(t);if(!Be(n,i)){const{message:a}=u(\"MISSING_OR_INVALID\",`request() chainId: ${i}`);throw new Error(a)}if(!jt(s)){const{message:a}=u(\"MISSING_OR_INVALID\",`request() ${JSON.stringify(s)}`);throw new Error(a)}if(!Ft(n,i,s.method)){const{message:a}=u(\"MISSING_OR_INVALID\",`request() method: ${s.method}`);throw new Error(a)}if(r&&!Qt(r,me)){const{message:a}=u(\"MISSING_OR_INVALID\",`request() expiry: ${r}. Expiry must be a number (in seconds) between ${me.min} and ${me.max}`);throw new Error(a)}},this.isValidRespond=async e=>{var t;if(!L(e)){const{message:r}=u(\"MISSING_OR_INVALID\",`respond() params: ${e}`);throw new Error(r)}const{topic:s,response:i}=e;try{await this.isValidSessionTopic(s)}catch(r){throw(t=e?.response)!=null&&t.id&&this.cleanupAfterResponse(e),r}if(!zt(i)){const{message:r}=u(\"MISSING_OR_INVALID\",`respond() response: ${JSON.stringify(i)}`);throw new Error(r)}},this.isValidPing=async e=>{if(!L(e)){const{message:s}=u(\"MISSING_OR_INVALID\",`ping() params: ${e}`);throw new Error(s)}const{topic:t}=e;await this.isValidSessionOrPairingTopic(t)},this.isValidEmit=async e=>{if(!L(e)){const{message:n}=u(\"MISSING_OR_INVALID\",`emit() params: ${e}`);throw new Error(n)}const{topic:t,event:s,chainId:i}=e;await this.isValidSessionTopic(t);const{namespaces:r}=this.client.session.get(t);if(!Be(r,i)){const{message:n}=u(\"MISSING_OR_INVALID\",`emit() chainId: ${i}`);throw new Error(n)}if(!Ht(s)){const{message:n}=u(\"MISSING_OR_INVALID\",`emit() event: ${JSON.stringify(s)}`);throw new Error(n)}if(!Yt(r,i,s.name)){const{message:n}=u(\"MISSING_OR_INVALID\",`emit() event: ${JSON.stringify(s)}`);throw new Error(n)}},this.isValidDisconnect=async e=>{if(!L(e)){const{message:s}=u(\"MISSING_OR_INVALID\",`disconnect() params: ${e}`);throw new Error(s)}const{topic:t}=e;await this.isValidSessionOrPairingTopic(t)},this.isValidAuthenticate=e=>{const{chains:t,uri:s,domain:i,nonce:r}=e;if(!Array.isArray(t)||t.length===0)throw new Error(\"chains is required and must be a non-empty array\");if(!k(s,!1))throw new Error(\"uri is required parameter\");if(!k(i,!1))throw new Error(\"domain is required parameter\");if(!k(r,!1))throw new Error(\"nonce is required parameter\");if([...new Set(t.map(a=>Ne(a).namespace))].length>1)throw new Error(\"Multi-namespace requests are not supported. Please request single namespace only.\");const{namespace:n}=Ne(t[0]);if(n!==\"eip155\")throw new Error(\"Only eip155 namespace is supported for authenticated sessions. Please use .connect() for non-eip155 chains.\")},this.getVerifyContext=async e=>{const{attestationId:t,hash:s,encryptedId:i,metadata:r,transportType:n}=e,a={verified:{verifyUrl:r.verifyUrl||It,validation:\"UNKNOWN\",origin:r.url||\"\"}};try{if(n===f.link_mode){const h=this.getAppLinkIfEnabled(r,n);return a.verified.validation=h&&new URL(h).origin===new URL(r.url).origin?\"VALID\":\"INVALID\",a}const c=await this.client.core.verify.resolve({attestationId:t,hash:s,encryptedId:i,verifyUrl:r.verifyUrl});c&&(a.verified.origin=c.origin,a.verified.isScam=c.isScam,a.verified.validation=c.origin===new URL(r.url).origin?\"VALID\":\"INVALID\")}catch(c){this.client.logger.warn(c)}return this.client.logger.debug(`Verify context: ${JSON.stringify(a)}`),a},this.validateSessionProps=(e,t)=>{Object.values(e).forEach(s=>{if(!k(s,!1)){const{message:i}=u(\"MISSING_OR_INVALID\",`${t} must be in Record format. Received: ${JSON.stringify(s)}`);throw new Error(i)}})},this.getPendingAuthRequest=e=>{const t=this.client.auth.requests.get(e);return typeof t==\"object\"?t:void 0},this.addToRecentlyDeleted=(e,t)=>{if(this.recentlyDeletedMap.set(e,t),this.recentlyDeletedMap.size>=this.recentlyDeletedLimit){let s=0;const i=this.recentlyDeletedLimit/2;for(const r of this.recentlyDeletedMap.keys()){if(s++>=i)break;this.recentlyDeletedMap.delete(r)}}},this.checkRecentlyDeleted=e=>{const t=this.recentlyDeletedMap.get(e);if(t){const{message:s}=u(\"MISSING_OR_INVALID\",`Record was recently deleted - ${t}: ${e}`);throw new Error(s)}},this.isLinkModeEnabled=(e,t)=>{var s,i,r,n,a,c,h,p,d;return!e||t!==f.link_mode?!1:((i=(s=this.client.metadata)==null?void 0:s.redirect)==null?void 0:i.linkMode)===!0&&((n=(r=this.client.metadata)==null?void 0:r.redirect)==null?void 0:n.universal)!==void 0&&((c=(a=this.client.metadata)==null?void 0:a.redirect)==null?void 0:c.universal)!==\"\"&&((h=e?.redirect)==null?void 0:h.universal)!==void 0&&((p=e?.redirect)==null?void 0:p.universal)!==\"\"&&((d=e?.redirect)==null?void 0:d.linkMode)===!0&&this.client.core.linkModeSupportedApps.includes(e.redirect.universal)&&typeof(global==null?void 0:global.Linking)<\"u\"},this.getAppLinkIfEnabled=(e,t)=>{var s;return this.isLinkModeEnabled(e,t)?(s=e?.redirect)==null?void 0:s.universal:void 0},this.handleLinkModeMessage=({url:e})=>{if(!e||!e.includes(\"wc_ev\")||!e.includes(\"topic\"))return;const t=We(e,\"topic\")||\"\",s=decodeURIComponent(We(e,\"wc_ev\")||\"\"),i=this.client.session.keys.includes(t);i&&this.client.session.update(t,{transportType:f.link_mode}),this.client.core.dispatchEnvelope({topic:t,message:s,sessionExists:i})},this.registerLinkModeListeners=async()=>{var e;if(Xt()||Jt()&&(e=this.client.metadata.redirect)!=null&&e.linkMode){const t=global==null?void 0:global.Linking;if(typeof t<\"u\"){t.addEventListener(\"url\",this.handleLinkModeMessage,this.client.name);const s=await t.getInitialURL();s&&setTimeout(()=>{this.handleLinkModeMessage({url:s})},50)}}}}isInitialized(){if(!this.initialized){const{message:o}=u(\"NOT_INITIALIZED\",this.name);throw new Error(o)}}async confirmOnlineStateOrThrow(){await this.client.core.relayer.confirmOnlineStateOrThrow()}registerRelayerEvents(){this.client.core.relayer.on(Ue.message,o=>{!this.initialized||this.relayMessageCache.length>0?this.relayMessageCache.push(o):this.onRelayMessage(o)})}async onRelayMessage(o){const{topic:e,message:t,attestation:s,transportType:i}=o,{publicKey:r}=this.client.auth.authKeys.keys.includes(ae)?this.client.auth.authKeys.get(ae):{responseTopic:void 0,publicKey:void 0},n=await this.client.core.crypto.decode(e,t,{receiverPublicKey:r,encoding:i===f.link_mode?ie:de});try{os(n)?(this.client.core.history.set(e,n),this.onRelayEventRequest({topic:e,payload:n,attestation:s,transportType:i,encryptedId:X(t)})):as(n)?(await this.client.core.history.resolve(n),await this.onRelayEventResponse({topic:e,payload:n,transportType:i}),this.client.core.history.delete(e,n.id)):this.onRelayEventUnknownPayload({topic:e,payload:n,transportType:i})}catch(a){this.client.logger.error(a)}}registerExpirerEvents(){this.client.core.expirer.on(ft.expired,async o=>{const{topic:e,id:t}=Bt(o.target);if(t&&this.client.pendingRequest.keys.includes(t))return await this.deletePendingSessionRequest(t,u(\"EXPIRED\"),!0);if(t&&this.client.auth.requests.keys.includes(t))return await this.deletePendingAuthRequest(t,u(\"EXPIRED\"),!0);e?this.client.session.keys.includes(e)&&(await this.deleteSession({topic:e,expirerHasDeleted:!0}),this.client.events.emit(\"session_expire\",{topic:e})):t&&(await this.deleteProposal(t,!0),this.client.events.emit(\"proposal_expire\",{id:t}))})}registerPairingEvents(){this.client.core.pairing.events.on(Ge.create,o=>this.onPairingCreated(o)),this.client.core.pairing.events.on(Ge.delete,o=>{this.addToRecentlyDeleted(o.topic,\"pairing\")})}isValidPairingTopic(o){if(!k(o,!1)){const{message:e}=u(\"MISSING_OR_INVALID\",`pairing topic should be a string: ${o}`);throw new Error(e)}if(!this.client.core.pairing.pairings.keys.includes(o)){const{message:e}=u(\"NO_MATCHING_KEY\",`pairing topic doesn't exist: ${o}`);throw new Error(e)}if(J(this.client.core.pairing.pairings.get(o).expiry)){const{message:e}=u(\"EXPIRED\",`pairing topic: ${o}`);throw new Error(e)}}async isValidSessionTopic(o){if(!k(o,!1)){const{message:e}=u(\"MISSING_OR_INVALID\",`session topic should be a string: ${o}`);throw new Error(e)}if(this.checkRecentlyDeleted(o),!this.client.session.keys.includes(o)){const{message:e}=u(\"NO_MATCHING_KEY\",`session topic doesn't exist: ${o}`);throw new Error(e)}if(J(this.client.session.get(o).expiry)){await this.deleteSession({topic:o});const{message:e}=u(\"EXPIRED\",`session topic: ${o}`);throw new Error(e)}if(!this.client.core.crypto.keychain.has(o)){const{message:e}=u(\"MISSING_OR_INVALID\",`session topic does not exist in keychain: ${o}`);throw await this.deleteSession({topic:o}),new Error(e)}}async isValidSessionOrPairingTopic(o){if(this.checkRecentlyDeleted(o),this.client.session.keys.includes(o))await this.isValidSessionTopic(o);else if(this.client.core.pairing.pairings.keys.includes(o))this.isValidPairingTopic(o);else if(k(o,!1)){const{message:e}=u(\"NO_MATCHING_KEY\",`session or pairing topic doesn't exist: ${o}`);throw new Error(e)}else{const{message:e}=u(\"MISSING_OR_INVALID\",`session or pairing topic should be a string: ${o}`);throw new Error(e)}}async isValidProposalId(o){if(!Wt(o)){const{message:e}=u(\"MISSING_OR_INVALID\",`proposal id should be a number: ${o}`);throw new Error(e)}if(!this.client.proposal.keys.includes(o)){const{message:e}=u(\"NO_MATCHING_KEY\",`proposal id doesn't exist: ${o}`);throw new Error(e)}if(J(this.client.proposal.get(o).expiryTimestamp)){await this.deleteProposal(o);const{message:e}=u(\"EXPIRED\",`proposal id: ${o}`);throw new Error(e)}}}class Ss extends H{constructor(o,e){super(o,e,st,ye),this.core=o,this.logger=e}}class yt extends H{constructor(o,e){super(o,e,rt,ye),this.core=o,this.logger=e}}class Is extends H{constructor(o,e){super(o,e,ot,ye,t=>t.id),this.core=o,this.logger=e}}class fs extends H{constructor(o,e){super(o,e,pt,oe,()=>ae),this.core=o,this.logger=e}}class vs extends H{constructor(o,e){super(o,e,ht,oe),this.core=o,this.logger=e}}class qs extends H{constructor(o,e){super(o,e,dt,oe,t=>t.id),this.core=o,this.logger=e}}class Ts{constructor(o,e){this.core=o,this.logger=e,this.authKeys=new fs(this.core,this.logger),this.pairingTopics=new vs(this.core,this.logger),this.requests=new qs(this.core,this.logger)}async init(){await this.authKeys.init(),await this.pairingTopics.init(),await this.requests.init()}}class _e extends At{constructor(o){super(o),this.protocol=be,this.version=Ce,this.name=we.name,this.events=new ts,this.on=(t,s)=>this.events.on(t,s),this.once=(t,s)=>this.events.once(t,s),this.off=(t,s)=>this.events.off(t,s),this.removeListener=(t,s)=>this.events.removeListener(t,s),this.removeAllListeners=t=>this.events.removeAllListeners(t),this.connect=async t=>{try{return await this.engine.connect(t)}catch(s){throw this.logger.error(s.message),s}},this.pair=async t=>{try{return await this.engine.pair(t)}catch(s){throw this.logger.error(s.message),s}},this.approve=async t=>{try{return await this.engine.approve(t)}catch(s){throw this.logger.error(s.message),s}},this.reject=async t=>{try{return await this.engine.reject(t)}catch(s){throw this.logger.error(s.message),s}},this.update=async t=>{try{return await this.engine.update(t)}catch(s){throw this.logger.error(s.message),s}},this.extend=async t=>{try{return await this.engine.extend(t)}catch(s){throw this.logger.error(s.message),s}},this.request=async t=>{try{return await this.engine.request(t)}catch(s){throw this.logger.error(s.message),s}},this.respond=async t=>{try{return await this.engine.respond(t)}catch(s){throw this.logger.error(s.message),s}},this.ping=async t=>{try{return await this.engine.ping(t)}catch(s){throw this.logger.error(s.message),s}},this.emit=async t=>{try{return await this.engine.emit(t)}catch(s){throw this.logger.error(s.message),s}},this.disconnect=async t=>{try{return await this.engine.disconnect(t)}catch(s){throw this.logger.error(s.message),s}},this.find=t=>{try{return this.engine.find(t)}catch(s){throw this.logger.error(s.message),s}},this.getPendingSessionRequests=()=>{try{return this.engine.getPendingSessionRequests()}catch(t){throw this.logger.error(t.message),t}},this.authenticate=async(t,s)=>{try{return await this.engine.authenticate(t,s)}catch(i){throw this.logger.error(i.message),i}},this.formatAuthMessage=t=>{try{return this.engine.formatAuthMessage(t)}catch(s){throw this.logger.error(s.message),s}},this.approveSessionAuthenticate=async t=>{try{return await this.engine.approveSessionAuthenticate(t)}catch(s){throw this.logger.error(s.message),s}},this.rejectSessionAuthenticate=async t=>{try{return await this.engine.rejectSessionAuthenticate(t)}catch(s){throw this.logger.error(s.message),s}},this.name=o?.name||we.name,this.metadata=o?.metadata||Zt(),this.signConfig=o?.signConfig;const e=typeof o?.logger<\"u\"&&typeof o?.logger!=\"string\"?o.logger:qt(Tt({level:o?.logger||we.logger}));this.core=o?.core||new vt(o),this.logger=Nt(e,this.name),this.session=new yt(this.core,this.logger),this.proposal=new Ss(this.core,this.logger),this.pendingRequest=new Is(this.core,this.logger),this.engine=new Rs(this),this.auth=new Ts(this.core,this.logger)}static async init(o){const e=new _e(o);return await e.initialize(),e}get context(){return Pt(this.logger)}get pairing(){return this.core.pairing.pairings}async initialize(){this.logger.trace(\"Initialized\");try{await this.core.start(),await this.session.init(),await this.proposal.init(),await this.pendingRequest.init(),await this.auth.init(),await this.engine.init(),this.logger.info(\"SignClient Initialization Success\"),this.engine.processRelayMessageCache()}catch(o){throw this.logger.info(\"SignClient Initialization Failure\"),this.logger.error(o.message),o}}}const Ns=yt,Ps=_e;export{lt as AUTH_CONTEXT,pt as AUTH_KEYS_CONTEXT,ht as AUTH_PAIRING_TOPIC_CONTEXT,ct as AUTH_PROTOCOL,ae as AUTH_PUBLIC_KEY_NAME,dt as AUTH_REQUEST_CONTEXT,oe as AUTH_STORAGE_PREFIX,gs as AUTH_VERSION,nt as ENGINE_CONTEXT,x as ENGINE_QUEUE_STATES,v as ENGINE_RPC_OPTS,hs as HISTORY_CONTEXT,ps as HISTORY_EVENTS,ds as HISTORY_STORAGE_VERSION,at as METHODS_TO_VERIFY,st as PROPOSAL_CONTEXT,us as PROPOSAL_EXPIRY,it as PROPOSAL_EXPIRY_MESSAGE,ot as REQUEST_CONTEXT,rt as SESSION_CONTEXT,z as SESSION_EXPIRY,me as SESSION_REQUEST_EXPIRY_BOUNDARIES,Le as SIGN_CLIENT_CONTEXT,we as SIGN_CLIENT_DEFAULT,cs as SIGN_CLIENT_EVENTS,be as SIGN_CLIENT_PROTOCOL,ls as SIGN_CLIENT_STORAGE_OPTIONS,ye as SIGN_CLIENT_STORAGE_PREFIX,Ce as SIGN_CLIENT_VERSION,Ns as SessionStore,Ps as SignClient,xe as WALLETCONNECT_DEEPLINK_CHOICE,_e as default};\n//# sourceMappingURL=index.es.js.map\n","import{AuthClient as N}from\"@walletconnect/auth-client\";import{SignClient as W,SessionStore as I}from\"@walletconnect/sign-client\";import{Core as m}from\"@walletconnect/core\";var l={exports:{}},c=typeof Reflect==\"object\"?Reflect:null,y=c&&typeof c.apply==\"function\"?c.apply:function(t,e,n){return Function.prototype.apply.call(t,e,n)},f;c&&typeof c.ownKeys==\"function\"?f=c.ownKeys:Object.getOwnPropertySymbols?f=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:f=function(t){return Object.getOwnPropertyNames(t)};function k(s){console&&console.warn&&console.warn(s)}var w=Number.isNaN||function(t){return t!==t};function o(){o.init.call(this)}l.exports=o,l.exports.once=K,o.EventEmitter=o,o.prototype._events=void 0,o.prototype._eventsCount=0,o.prototype._maxListeners=void 0;var L=10;function g(s){if(typeof s!=\"function\")throw new TypeError('The \"listener\" argument must be of type Function. Received type '+typeof s)}Object.defineProperty(o,\"defaultMaxListeners\",{enumerable:!0,get:function(){return L},set:function(s){if(typeof s!=\"number\"||s<0||w(s))throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received '+s+\".\");L=s}}),o.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},o.prototype.setMaxListeners=function(t){if(typeof t!=\"number\"||t<0||w(t))throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received '+t+\".\");return this._maxListeners=t,this};function _(s){return s._maxListeners===void 0?o.defaultMaxListeners:s._maxListeners}o.prototype.getMaxListeners=function(){return _(this)},o.prototype.emit=function(t){for(var e=[],n=1;n0&&(r=e[0]),r instanceof Error)throw r;var h=new Error(\"Unhandled error.\"+(r?\" (\"+r.message+\")\":\"\"));throw h.context=r,h}var u=a[t];if(u===void 0)return!1;if(typeof u==\"function\")y(u,this,e);else for(var d=u.length,M=O(u,d),n=0;n0&&r.length>i&&!r.warned){r.warned=!0;var h=new Error(\"Possible EventEmitter memory leak detected. \"+r.length+\" \"+String(t)+\" listeners added. Use emitter.setMaxListeners() to increase limit\");h.name=\"MaxListenersExceededWarning\",h.emitter=s,h.type=t,h.count=r.length,k(h)}return s}o.prototype.addListener=function(t,e){return S(this,t,e,!1)},o.prototype.on=o.prototype.addListener,o.prototype.prependListener=function(t,e){return S(this,t,e,!0)};function D(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function C(s,t,e){var n={fired:!1,wrapFn:void 0,target:s,type:t,listener:e},i=D.bind(n);return i.listener=e,n.wrapFn=i,i}o.prototype.once=function(t,e){return g(e),this.on(t,C(this,t,e)),this},o.prototype.prependOnceListener=function(t,e){return g(e),this.prependListener(t,C(this,t,e)),this},o.prototype.removeListener=function(t,e){var n,i,a,r,h;if(g(e),i=this._events,i===void 0)return this;if(n=i[t],n===void 0)return this;if(n===e||n.listener===e)--this._eventsCount===0?this._events=Object.create(null):(delete i[t],i.removeListener&&this.emit(\"removeListener\",t,n.listener||e));else if(typeof n!=\"function\"){for(a=-1,r=n.length-1;r>=0;r--)if(n[r]===e||n[r].listener===e){h=n[r].listener,a=r;break}if(a<0)return this;a===0?n.shift():F(n,a),n.length===1&&(i[t]=n[0]),i.removeListener!==void 0&&this.emit(\"removeListener\",t,h||e)}return this},o.prototype.off=o.prototype.removeListener,o.prototype.removeAllListeners=function(t){var e,n,i;if(n=this._events,n===void 0)return this;if(n.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):n[t]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete n[t]),this;if(arguments.length===0){var a=Object.keys(n),r;for(i=0;i=0;i--)this.removeListener(t,e[i]);return this};function b(s,t,e){var n=s._events;if(n===void 0)return[];var i=n[t];return i===void 0?[]:typeof i==\"function\"?e?[i.listener||i]:[i]:e?z(i):O(i,i.length)}o.prototype.listeners=function(t){return b(this,t,!0)},o.prototype.rawListeners=function(t){return b(this,t,!1)},o.listenerCount=function(s,t){return typeof s.listenerCount==\"function\"?s.listenerCount(t):E.call(s,t)},o.prototype.listenerCount=E;function E(s){var t=this._events;if(t!==void 0){var e=t[s];if(typeof e==\"function\")return 1;if(e!==void 0)return e.length}return 0}o.prototype.eventNames=function(){return this._eventsCount>0?f(this._events):[]};function O(s,t){for(var e=new Array(t),n=0;nt in s?V(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e,ee=(s,t)=>{for(var e in t||(t={}))Y.call(t,e)&&j(s,e,t[e]);if(q)for(var e of q(t))Z.call(t,e)&&j(s,e,t[e]);return s},te=(s,t)=>B(s,J(t));class se extends P{constructor(t){super(t),this.init=async()=>{this.signClient=await W.init({core:this.client.core,metadata:this.client.metadata,signConfig:this.client.signConfig}),this.authClient=await N.init({core:this.client.core,projectId:\"\",metadata:this.client.metadata})},this.pair=async e=>{await this.client.core.pairing.pair(e)},this.approveSession=async e=>{const{topic:n,acknowledged:i}=await this.signClient.approve(te(ee({},e),{id:e.id,namespaces:e.namespaces,sessionProperties:e.sessionProperties,sessionConfig:e.sessionConfig}));return await i(),this.signClient.session.get(n)},this.rejectSession=async e=>await this.signClient.reject(e),this.updateSession=async e=>await this.signClient.update(e),this.extendSession=async e=>await this.signClient.extend(e),this.respondSessionRequest=async e=>await this.signClient.respond(e),this.disconnectSession=async e=>await this.signClient.disconnect(e),this.emitSessionEvent=async e=>await this.signClient.emit(e),this.getActiveSessions=()=>this.signClient.session.getAll().reduce((e,n)=>(e[n.topic]=n,e),{}),this.getPendingSessionProposals=()=>this.signClient.proposal.getAll(),this.getPendingSessionRequests=()=>this.signClient.getPendingSessionRequests(),this.respondAuthRequest=async(e,n)=>await this.authClient.respond(e,n),this.getPendingAuthRequests=()=>this.authClient.requests.getAll().filter(e=>\"requester\"in e),this.formatMessage=(e,n)=>this.authClient.formatMessage(e,n),this.approveSessionAuthenticate=async e=>await this.signClient.approveSessionAuthenticate(e),this.rejectSessionAuthenticate=async e=>await this.signClient.rejectSessionAuthenticate(e),this.formatAuthMessage=e=>this.signClient.formatAuthMessage(e),this.registerDeviceToken=e=>this.client.core.echoClient.registerDeviceToken(e),this.on=(e,n)=>(this.setEvent(e,\"off\"),this.setEvent(e,\"on\"),this.client.events.on(e,n)),this.once=(e,n)=>(this.setEvent(e,\"off\"),this.setEvent(e,\"once\"),this.client.events.once(e,n)),this.off=(e,n)=>(this.setEvent(e,\"off\"),this.client.events.off(e,n)),this.removeListener=(e,n)=>(this.setEvent(e,\"removeListener\"),this.client.events.removeListener(e,n)),this.onSessionRequest=e=>{this.client.events.emit(\"session_request\",e)},this.onSessionProposal=e=>{this.client.events.emit(\"session_proposal\",e)},this.onSessionDelete=e=>{this.client.events.emit(\"session_delete\",e)},this.onAuthRequest=e=>{this.client.events.emit(\"auth_request\",e)},this.onProposalExpire=e=>{this.client.events.emit(\"proposal_expire\",e)},this.onSessionRequestExpire=e=>{this.client.events.emit(\"session_request_expire\",e)},this.onSessionRequestAuthenticate=e=>{this.client.events.emit(\"session_authenticate\",e)},this.setEvent=(e,n)=>{switch(e){case\"session_request\":this.signClient.events[n](\"session_request\",this.onSessionRequest);break;case\"session_proposal\":this.signClient.events[n](\"session_proposal\",this.onSessionProposal);break;case\"session_delete\":this.signClient.events[n](\"session_delete\",this.onSessionDelete);break;case\"auth_request\":this.authClient[n](\"auth_request\",this.onAuthRequest);break;case\"proposal_expire\":this.signClient.events[n](\"proposal_expire\",this.onProposalExpire);break;case\"session_request_expire\":this.signClient.events[n](\"session_request_expire\",this.onSessionRequestExpire);break;case\"session_authenticate\":this.signClient.events[n](\"session_authenticate\",this.onSessionRequestAuthenticate);break}},this.signClient={},this.authClient={}}}const ne={decryptMessage:async s=>{const t={core:new m({storageOptions:s.storageOptions,storage:s.storage})};await t.core.crypto.init();const e=t.core.crypto.decode(s.topic,s.encryptedMessage);return t.core=null,e},getMetadata:async s=>{const t={core:new m({storageOptions:s.storageOptions,storage:s.storage}),sessionStore:null};t.sessionStore=new I(t.core,t.core.logger),await t.sessionStore.init();const e=t.sessionStore.get(s.topic),n=e?.peer.metadata;return t.core=null,t.sessionStore=null,n}},T=class extends x{constructor(s){super(s),this.events=new l.exports,this.on=(t,e)=>this.engine.on(t,e),this.once=(t,e)=>this.engine.once(t,e),this.off=(t,e)=>this.engine.off(t,e),this.removeListener=(t,e)=>this.engine.removeListener(t,e),this.pair=async t=>{try{return await this.engine.pair(t)}catch(e){throw this.logger.error(e.message),e}},this.approveSession=async t=>{try{return await this.engine.approveSession(t)}catch(e){throw this.logger.error(e.message),e}},this.rejectSession=async t=>{try{return await this.engine.rejectSession(t)}catch(e){throw this.logger.error(e.message),e}},this.updateSession=async t=>{try{return await this.engine.updateSession(t)}catch(e){throw this.logger.error(e.message),e}},this.extendSession=async t=>{try{return await this.engine.extendSession(t)}catch(e){throw this.logger.error(e.message),e}},this.respondSessionRequest=async t=>{try{return await this.engine.respondSessionRequest(t)}catch(e){throw this.logger.error(e.message),e}},this.disconnectSession=async t=>{try{return await this.engine.disconnectSession(t)}catch(e){throw this.logger.error(e.message),e}},this.emitSessionEvent=async t=>{try{return await this.engine.emitSessionEvent(t)}catch(e){throw this.logger.error(e.message),e}},this.getActiveSessions=()=>{try{return this.engine.getActiveSessions()}catch(t){throw this.logger.error(t.message),t}},this.getPendingSessionProposals=()=>{try{return this.engine.getPendingSessionProposals()}catch(t){throw this.logger.error(t.message),t}},this.getPendingSessionRequests=()=>{try{return this.engine.getPendingSessionRequests()}catch(t){throw this.logger.error(t.message),t}},this.respondAuthRequest=async(t,e)=>{try{return await this.engine.respondAuthRequest(t,e)}catch(n){throw this.logger.error(n.message),n}},this.getPendingAuthRequests=()=>{try{return this.engine.getPendingAuthRequests()}catch(t){throw this.logger.error(t.message),t}},this.formatMessage=(t,e)=>{try{return this.engine.formatMessage(t,e)}catch(n){throw this.logger.error(n.message),n}},this.registerDeviceToken=t=>{try{return this.engine.registerDeviceToken(t)}catch(e){throw this.logger.error(e.message),e}},this.approveSessionAuthenticate=t=>{try{return this.engine.approveSessionAuthenticate(t)}catch(e){throw this.logger.error(e.message),e}},this.rejectSessionAuthenticate=t=>{try{return this.engine.rejectSessionAuthenticate(t)}catch(e){throw this.logger.error(e.message),e}},this.formatAuthMessage=t=>{try{return this.engine.formatAuthMessage(t)}catch(e){throw this.logger.error(e.message),e}},this.metadata=s.metadata,this.name=s.name||p,this.signConfig=s.signConfig,this.core=s.core,this.logger=this.core.logger,this.engine=new se(this)}static async init(s){const t=new T(s);return await t.initialize(),t}async initialize(){this.logger.trace(\"Initialized\");try{await this.engine.init(),this.logger.info(\"Web3Wallet Initialization Success\")}catch(s){throw this.logger.info(\"Web3Wallet Initialization Failure\"),this.logger.error(s.message),s}}};let v=T;v.notifications=ne;const ie=v;export{p as CLIENT_CONTEXT,G as CLIENT_STORAGE_OPTIONS,$ as CLIENT_STORAGE_PREFIX,x as IWeb3Wallet,P as IWeb3WalletEngine,Q as IWeb3WalletEvents,A as PROTOCOL,X as PROTOCOL_VERSION,H as REQUEST_CONTEXT,ie as Web3Wallet,v as default};\n//# sourceMappingURL=index.es.js.map\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getWindowMetadata = void 0;\nconst window_getters_1 = require(\"@walletconnect/window-getters\");\nfunction getWindowMetadata() {\n let doc;\n let loc;\n try {\n doc = window_getters_1.getDocumentOrThrow();\n loc = window_getters_1.getLocationOrThrow();\n }\n catch (e) {\n return null;\n }\n function getIcons() {\n const links = doc.getElementsByTagName(\"link\");\n const icons = [];\n for (let i = 0; i < links.length; i++) {\n const link = links[i];\n const rel = link.getAttribute(\"rel\");\n if (rel) {\n if (rel.toLowerCase().indexOf(\"icon\") > -1) {\n const href = link.getAttribute(\"href\");\n if (href) {\n if (href.toLowerCase().indexOf(\"https:\") === -1 &&\n href.toLowerCase().indexOf(\"http:\") === -1 &&\n href.indexOf(\"//\") !== 0) {\n let absoluteHref = loc.protocol + \"//\" + loc.host;\n if (href.indexOf(\"/\") === 0) {\n absoluteHref += href;\n }\n else {\n const path = loc.pathname.split(\"/\");\n path.pop();\n const finalPath = path.join(\"/\");\n absoluteHref += finalPath + \"/\" + href;\n }\n icons.push(absoluteHref);\n }\n else if (href.indexOf(\"//\") === 0) {\n const absoluteUrl = loc.protocol + href;\n icons.push(absoluteUrl);\n }\n else {\n icons.push(href);\n }\n }\n }\n }\n }\n return icons;\n }\n function getWindowMetadataOfAny(...args) {\n const metaTags = doc.getElementsByTagName(\"meta\");\n for (let i = 0; i < metaTags.length; i++) {\n const tag = metaTags[i];\n const attributes = [\"itemprop\", \"property\", \"name\"]\n .map((target) => tag.getAttribute(target))\n .filter((attr) => {\n if (attr) {\n return args.includes(attr);\n }\n return false;\n });\n if (attributes.length && attributes) {\n const content = tag.getAttribute(\"content\");\n if (content) {\n return content;\n }\n }\n }\n return \"\";\n }\n function getName() {\n let name = getWindowMetadataOfAny(\"name\", \"og:site_name\", \"og:title\", \"twitter:title\");\n if (!name) {\n name = doc.title;\n }\n return name;\n }\n function getDescription() {\n const description = getWindowMetadataOfAny(\"description\", \"og:description\", \"twitter:description\", \"keywords\");\n return description;\n }\n const name = getName();\n const description = getDescription();\n const url = loc.origin;\n const icons = getIcons();\n const meta = {\n description,\n url,\n icons,\n name,\n };\n return meta;\n}\nexports.getWindowMetadata = getWindowMetadata;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getLocalStorage = exports.getLocalStorageOrThrow = exports.getCrypto = exports.getCryptoOrThrow = exports.getLocation = exports.getLocationOrThrow = exports.getNavigator = exports.getNavigatorOrThrow = exports.getDocument = exports.getDocumentOrThrow = exports.getFromWindowOrThrow = exports.getFromWindow = void 0;\nfunction getFromWindow(name) {\n let res = undefined;\n if (typeof window !== \"undefined\" && typeof window[name] !== \"undefined\") {\n res = window[name];\n }\n return res;\n}\nexports.getFromWindow = getFromWindow;\nfunction getFromWindowOrThrow(name) {\n const res = getFromWindow(name);\n if (!res) {\n throw new Error(`${name} is not defined in Window`);\n }\n return res;\n}\nexports.getFromWindowOrThrow = getFromWindowOrThrow;\nfunction getDocumentOrThrow() {\n return getFromWindowOrThrow(\"document\");\n}\nexports.getDocumentOrThrow = getDocumentOrThrow;\nfunction getDocument() {\n return getFromWindow(\"document\");\n}\nexports.getDocument = getDocument;\nfunction getNavigatorOrThrow() {\n return getFromWindowOrThrow(\"navigator\");\n}\nexports.getNavigatorOrThrow = getNavigatorOrThrow;\nfunction getNavigator() {\n return getFromWindow(\"navigator\");\n}\nexports.getNavigator = getNavigator;\nfunction getLocationOrThrow() {\n return getFromWindowOrThrow(\"location\");\n}\nexports.getLocationOrThrow = getLocationOrThrow;\nfunction getLocation() {\n return getFromWindow(\"location\");\n}\nexports.getLocation = getLocation;\nfunction getCryptoOrThrow() {\n return getFromWindowOrThrow(\"crypto\");\n}\nexports.getCryptoOrThrow = getCryptoOrThrow;\nfunction getCrypto() {\n return getFromWindow(\"crypto\");\n}\nexports.getCrypto = getCrypto;\nfunction getLocalStorageOrThrow() {\n return getFromWindowOrThrow(\"localStorage\");\n}\nexports.getLocalStorageOrThrow = getLocalStorageOrThrow;\nfunction getLocalStorage() {\n return getFromWindow(\"localStorage\");\n}\nexports.getLocalStorage = getLocalStorage;\n//# sourceMappingURL=index.js.map","var __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nvar BrowserInfo = /** @class */ (function () {\n function BrowserInfo(name, version, os) {\n this.name = name;\n this.version = version;\n this.os = os;\n this.type = 'browser';\n }\n return BrowserInfo;\n}());\nexport { BrowserInfo };\nvar NodeInfo = /** @class */ (function () {\n function NodeInfo(version) {\n this.version = version;\n this.type = 'node';\n this.name = 'node';\n this.os = process.platform;\n }\n return NodeInfo;\n}());\nexport { NodeInfo };\nvar SearchBotDeviceInfo = /** @class */ (function () {\n function SearchBotDeviceInfo(name, version, os, bot) {\n this.name = name;\n this.version = version;\n this.os = os;\n this.bot = bot;\n this.type = 'bot-device';\n }\n return SearchBotDeviceInfo;\n}());\nexport { SearchBotDeviceInfo };\nvar BotInfo = /** @class */ (function () {\n function BotInfo() {\n this.type = 'bot';\n this.bot = true; // NOTE: deprecated test name instead\n this.name = 'bot';\n this.version = null;\n this.os = null;\n }\n return BotInfo;\n}());\nexport { BotInfo };\nvar ReactNativeInfo = /** @class */ (function () {\n function ReactNativeInfo() {\n this.type = 'react-native';\n this.name = 'react-native';\n this.version = null;\n this.os = null;\n }\n return ReactNativeInfo;\n}());\nexport { ReactNativeInfo };\n// tslint:disable-next-line:max-line-length\nvar SEARCHBOX_UA_REGEX = /alexa|bot|crawl(er|ing)|facebookexternalhit|feedburner|google web preview|nagios|postrank|pingdom|slurp|spider|yahoo!|yandex/;\nvar SEARCHBOT_OS_REGEX = /(nuhk|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask\\ Jeeves\\/Teoma|ia_archiver)/;\nvar REQUIRED_VERSION_PARTS = 3;\nvar userAgentRules = [\n ['aol', /AOLShield\\/([0-9\\._]+)/],\n ['edge', /Edge\\/([0-9\\._]+)/],\n ['edge-ios', /EdgiOS\\/([0-9\\._]+)/],\n ['yandexbrowser', /YaBrowser\\/([0-9\\._]+)/],\n ['kakaotalk', /KAKAOTALK\\s([0-9\\.]+)/],\n ['samsung', /SamsungBrowser\\/([0-9\\.]+)/],\n ['silk', /\\bSilk\\/([0-9._-]+)\\b/],\n ['miui', /MiuiBrowser\\/([0-9\\.]+)$/],\n ['beaker', /BeakerBrowser\\/([0-9\\.]+)/],\n ['edge-chromium', /EdgA?\\/([0-9\\.]+)/],\n [\n 'chromium-webview',\n /(?!Chrom.*OPR)wv\\).*Chrom(?:e|ium)\\/([0-9\\.]+)(:?\\s|$)/,\n ],\n ['chrome', /(?!Chrom.*OPR)Chrom(?:e|ium)\\/([0-9\\.]+)(:?\\s|$)/],\n ['phantomjs', /PhantomJS\\/([0-9\\.]+)(:?\\s|$)/],\n ['crios', /CriOS\\/([0-9\\.]+)(:?\\s|$)/],\n ['firefox', /Firefox\\/([0-9\\.]+)(?:\\s|$)/],\n ['fxios', /FxiOS\\/([0-9\\.]+)/],\n ['opera-mini', /Opera Mini.*Version\\/([0-9\\.]+)/],\n ['opera', /Opera\\/([0-9\\.]+)(?:\\s|$)/],\n ['opera', /OPR\\/([0-9\\.]+)(:?\\s|$)/],\n ['ie', /Trident\\/7\\.0.*rv\\:([0-9\\.]+).*\\).*Gecko$/],\n ['ie', /MSIE\\s([0-9\\.]+);.*Trident\\/[4-7].0/],\n ['ie', /MSIE\\s(7\\.0)/],\n ['bb10', /BB10;\\sTouch.*Version\\/([0-9\\.]+)/],\n ['android', /Android\\s([0-9\\.]+)/],\n ['ios', /Version\\/([0-9\\._]+).*Mobile.*Safari.*/],\n ['safari', /Version\\/([0-9\\._]+).*Safari/],\n ['facebook', /FBAV\\/([0-9\\.]+)/],\n ['instagram', /Instagram\\s([0-9\\.]+)/],\n ['ios-webview', /AppleWebKit\\/([0-9\\.]+).*Mobile/],\n ['ios-webview', /AppleWebKit\\/([0-9\\.]+).*Gecko\\)$/],\n ['searchbot', SEARCHBOX_UA_REGEX],\n];\nvar operatingSystemRules = [\n ['iOS', /iP(hone|od|ad)/],\n ['Android OS', /Android/],\n ['BlackBerry OS', /BlackBerry|BB10/],\n ['Windows Mobile', /IEMobile/],\n ['Amazon OS', /Kindle/],\n ['Windows 3.11', /Win16/],\n ['Windows 95', /(Windows 95)|(Win95)|(Windows_95)/],\n ['Windows 98', /(Windows 98)|(Win98)/],\n ['Windows 2000', /(Windows NT 5.0)|(Windows 2000)/],\n ['Windows XP', /(Windows NT 5.1)|(Windows XP)/],\n ['Windows Server 2003', /(Windows NT 5.2)/],\n ['Windows Vista', /(Windows NT 6.0)/],\n ['Windows 7', /(Windows NT 6.1)/],\n ['Windows 8', /(Windows NT 6.2)/],\n ['Windows 8.1', /(Windows NT 6.3)/],\n ['Windows 10', /(Windows NT 10.0)/],\n ['Windows ME', /Windows ME/],\n ['Open BSD', /OpenBSD/],\n ['Sun OS', /SunOS/],\n ['Chrome OS', /CrOS/],\n ['Linux', /(Linux)|(X11)/],\n ['Mac OS', /(Mac_PowerPC)|(Macintosh)/],\n ['QNX', /QNX/],\n ['BeOS', /BeOS/],\n ['OS/2', /OS\\/2/],\n];\nexport function detect(userAgent) {\n if (!!userAgent) {\n return parseUserAgent(userAgent);\n }\n if (typeof document === 'undefined' &&\n typeof navigator !== 'undefined' &&\n navigator.product === 'ReactNative') {\n return new ReactNativeInfo();\n }\n if (typeof navigator !== 'undefined') {\n return parseUserAgent(navigator.userAgent);\n }\n return getNodeVersion();\n}\nfunction matchUserAgent(ua) {\n // opted for using reduce here rather than Array#first with a regex.test call\n // this is primarily because using the reduce we only perform the regex\n // execution once rather than once for the test and for the exec again below\n // probably something that needs to be benchmarked though\n return (ua !== '' &&\n userAgentRules.reduce(function (matched, _a) {\n var browser = _a[0], regex = _a[1];\n if (matched) {\n return matched;\n }\n var uaMatch = regex.exec(ua);\n return !!uaMatch && [browser, uaMatch];\n }, false));\n}\nexport function browserName(ua) {\n var data = matchUserAgent(ua);\n return data ? data[0] : null;\n}\nexport function parseUserAgent(ua) {\n var matchedRule = matchUserAgent(ua);\n if (!matchedRule) {\n return null;\n }\n var name = matchedRule[0], match = matchedRule[1];\n if (name === 'searchbot') {\n return new BotInfo();\n }\n var versionParts = match[1] && match[1].split(/[._]/).slice(0, 3);\n if (versionParts) {\n if (versionParts.length < REQUIRED_VERSION_PARTS) {\n versionParts = __spreadArrays(versionParts, createVersionParts(REQUIRED_VERSION_PARTS - versionParts.length));\n }\n }\n else {\n versionParts = [];\n }\n var version = versionParts.join('.');\n var os = detectOS(ua);\n var searchBotMatch = SEARCHBOT_OS_REGEX.exec(ua);\n if (searchBotMatch && searchBotMatch[1]) {\n return new SearchBotDeviceInfo(name, version, os, searchBotMatch[1]);\n }\n return new BrowserInfo(name, version, os);\n}\nexport function detectOS(ua) {\n for (var ii = 0, count = operatingSystemRules.length; ii < count; ii++) {\n var _a = operatingSystemRules[ii], os = _a[0], regex = _a[1];\n var match = regex.exec(ua);\n if (match) {\n return os;\n }\n }\n return null;\n}\nexport function getNodeVersion() {\n var isNode = typeof process !== 'undefined' && process.version;\n return isNode ? new NodeInfo(process.version.slice(1)) : null;\n}\nfunction createVersionParts(count) {\n var output = [];\n for (var ii = 0; ii < count; ii++) {\n output.push('0');\n }\n return output;\n}\n","import * as windowMetadata from \"@walletconnect/window-metadata\";\nimport * as windowGetters from \"@walletconnect/window-getters\";\nimport { detect, } from \"detect-browser\";\nexport function detectEnv(userAgent) {\n return detect(userAgent);\n}\nexport function detectOS() {\n const env = detectEnv();\n return env && env.os ? env.os : undefined;\n}\nexport function isAndroid() {\n const os = detectOS();\n return os ? os.toLowerCase().includes(\"android\") : false;\n}\nexport function isIOS() {\n const os = detectOS();\n return os\n ? os.toLowerCase().includes(\"ios\") ||\n (os.toLowerCase().includes(\"mac\") && navigator.maxTouchPoints > 1)\n : false;\n}\nexport function isMobile() {\n const os = detectOS();\n return os ? isAndroid() || isIOS() : false;\n}\nexport function isNode() {\n const env = detectEnv();\n const result = env && env.name ? env.name.toLowerCase() === \"node\" : false;\n return result;\n}\nexport function isBrowser() {\n const result = !isNode() && !!getNavigator();\n return result;\n}\nexport const getFromWindow = windowGetters.getFromWindow;\nexport const getFromWindowOrThrow = windowGetters.getFromWindowOrThrow;\nexport const getDocumentOrThrow = windowGetters.getDocumentOrThrow;\nexport const getDocument = windowGetters.getDocument;\nexport const getNavigatorOrThrow = windowGetters.getNavigatorOrThrow;\nexport const getNavigator = windowGetters.getNavigator;\nexport const getLocationOrThrow = windowGetters.getLocationOrThrow;\nexport const getLocation = windowGetters.getLocation;\nexport const getCryptoOrThrow = windowGetters.getCryptoOrThrow;\nexport const getCrypto = windowGetters.getCrypto;\nexport const getLocalStorageOrThrow = windowGetters.getLocalStorageOrThrow;\nexport const getLocalStorage = windowGetters.getLocalStorage;\nexport function getClientMeta() {\n return windowMetadata.getWindowMetadata();\n}\n//# sourceMappingURL=browser.js.map","export function safeJsonParse(value) {\n if (typeof value !== \"string\") {\n throw new Error(`Cannot safe json parse value of type ${typeof value}`);\n }\n try {\n return JSON.parse(value);\n }\n catch (_a) {\n return value;\n }\n}\nexport function safeJsonStringify(value) {\n return typeof value === \"string\" ? value : JSON.stringify(value);\n}\n//# sourceMappingURL=index.js.map","import * as safeJson from \"@walletconnect/safe-json\";\nexport const safeJsonParse = safeJson.safeJsonParse;\nexport const safeJsonStringify = safeJson.safeJsonStringify;\n//# sourceMappingURL=json.js.map","import { safeJsonParse, safeJsonStringify } from \"./json\";\nimport { getLocalStorage } from \"./browser\";\nexport function setLocal(key, data) {\n const raw = safeJsonStringify(data);\n const local = getLocalStorage();\n if (local) {\n local.setItem(key, raw);\n }\n}\nexport function getLocal(key) {\n let data = null;\n let raw = null;\n const local = getLocalStorage();\n if (local) {\n raw = local.getItem(key);\n }\n data = raw ? safeJsonParse(raw) : raw;\n return data;\n}\nexport function removeLocal(key) {\n const local = getLocalStorage();\n if (local) {\n local.removeItem(key);\n }\n}\n//# sourceMappingURL=local.js.map","import { setLocal } from \"./local\";\nexport const mobileLinkChoiceKey = \"WALLETCONNECT_DEEPLINK_CHOICE\";\nexport function formatIOSMobile(uri, entry) {\n const encodedUri = encodeURIComponent(uri);\n return entry.universalLink\n ? `${entry.universalLink}/wc?uri=${encodedUri}`\n : entry.deepLink\n ? `${entry.deepLink}${entry.deepLink.endsWith(\":\") ? \"//\" : \"/\"}wc?uri=${encodedUri}`\n : \"\";\n}\nexport function saveMobileLinkInfo(data) {\n const focusUri = data.href.split(\"?\")[0];\n setLocal(mobileLinkChoiceKey, Object.assign(Object.assign({}, data), { href: focusUri }));\n}\nexport function getMobileRegistryEntry(registry, name) {\n return registry.filter((entry) => entry.name.toLowerCase().includes(name.toLowerCase()))[0];\n}\nexport function getMobileLinkRegistry(registry, whitelist) {\n let links = registry;\n if (whitelist) {\n links = whitelist.map((name) => getMobileRegistryEntry(registry, name)).filter(Boolean);\n }\n return links;\n}\n//# sourceMappingURL=mobile.js.map","const API_URL = \"https://registry.walletconnect.com\";\nexport function getWalletRegistryUrl() {\n return API_URL + \"/api/v2/wallets\";\n}\nexport function getDappRegistryUrl() {\n return API_URL + \"/api/v2/dapps\";\n}\nexport function formatMobileRegistryEntry(entry, platform = \"mobile\") {\n var _a;\n return {\n name: entry.name || \"\",\n shortName: entry.metadata.shortName || \"\",\n color: entry.metadata.colors.primary || \"\",\n logo: (_a = entry.image_url.sm) !== null && _a !== void 0 ? _a : \"\",\n universalLink: entry[platform].universal || \"\",\n deepLink: entry[platform].native || \"\",\n };\n}\nexport function formatMobileRegistry(registry, platform = \"mobile\") {\n return Object.values(registry)\n .filter(entry => !!entry[platform].universal || !!entry[platform].native)\n .map((entry) => formatMobileRegistryEntry(entry, platform));\n}\n//# sourceMappingURL=registry.js.map","// can-promise has a crash in some versions of react native that dont have\n// standard global objects\n// https://github.com/soldair/node-qrcode/issues/157\n\nmodule.exports = function () {\n return typeof Promise === 'function' && Promise.prototype && Promise.prototype.then\n}\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","/**\n * Implementation of a subset of node.js Buffer methods for the browser.\n * Based on https://github.com/feross/buffer\n */\n\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar isArray = require('isarray')\n\nfunction typedArraySupport () {\n // Can typed array instances be augmented?\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nvar K_MAX_LENGTH = Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n\nfunction Buffer (arg, offset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, offset, length)\n }\n\n if (typeof arg === 'number') {\n return allocUnsafe(this, arg)\n }\n\n return from(this, arg, offset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true,\n enumerable: false,\n writable: false\n })\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n\nfunction createBuffer (that, length) {\n var buf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n buf = new Uint8Array(length)\n buf.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n buf = that\n if (buf === null) {\n buf = new Buffer(length)\n }\n buf.length = length\n }\n\n return buf\n}\n\nfunction allocUnsafe (that, size) {\n var buf = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n buf[i] = 0\n }\n }\n\n return buf\n}\n\nfunction fromString (that, string) {\n var length = byteLength(string) | 0\n var buf = createBuffer(that, length)\n\n var actual = buf.write(string)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n var buf = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n var buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n buf.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n buf = fromArrayLike(that, buf)\n }\n\n return buf\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n var buf = createBuffer(that, len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction byteLength (string) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n return utf8ToBytes(string).length\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction from (that, value, offset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, offset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, offset)\n }\n\n return fromObject(that, value)\n}\n\nBuffer.prototype.write = function write (string, offset, length) {\n // Buffer#write(string)\n if (offset === undefined) {\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n } else {\n length = undefined\n }\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n return utf8Write(this, string, offset, length)\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\nBuffer.prototype.fill = function fill (val, start, end) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : new Buffer(val)\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return createBuffer(null, 0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = allocUnsafe(null, length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nBuffer.byteLength = byteLength\n\nBuffer.prototype._isBuffer = true\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nmodule.exports.alloc = function (size) {\n var buffer = new Buffer(size)\n buffer.fill(0)\n return buffer\n}\n\nmodule.exports.from = function (data) {\n return new Buffer(data)\n}\n","var toSJISFunction\nvar CODEWORDS_COUNT = [\n 0, // Not used\n 26, 44, 70, 100, 134, 172, 196, 242, 292, 346,\n 404, 466, 532, 581, 655, 733, 815, 901, 991, 1085,\n 1156, 1258, 1364, 1474, 1588, 1706, 1828, 1921, 2051, 2185,\n 2323, 2465, 2611, 2761, 2876, 3034, 3196, 3362, 3532, 3706\n]\n\n/**\n * Returns the QR Code size for the specified version\n *\n * @param {Number} version QR Code version\n * @return {Number} size of QR code\n */\nexports.getSymbolSize = function getSymbolSize (version) {\n if (!version) throw new Error('\"version\" cannot be null or undefined')\n if (version < 1 || version > 40) throw new Error('\"version\" should be in range from 1 to 40')\n return version * 4 + 17\n}\n\n/**\n * Returns the total number of codewords used to store data and EC information.\n *\n * @param {Number} version QR Code version\n * @return {Number} Data length in bits\n */\nexports.getSymbolTotalCodewords = function getSymbolTotalCodewords (version) {\n return CODEWORDS_COUNT[version]\n}\n\n/**\n * Encode data with Bose-Chaudhuri-Hocquenghem\n *\n * @param {Number} data Value to encode\n * @return {Number} Encoded value\n */\nexports.getBCHDigit = function (data) {\n var digit = 0\n\n while (data !== 0) {\n digit++\n data >>>= 1\n }\n\n return digit\n}\n\nexports.setToSJISFunction = function setToSJISFunction (f) {\n if (typeof f !== 'function') {\n throw new Error('\"toSJISFunc\" is not a valid function.')\n }\n\n toSJISFunction = f\n}\n\nexports.isKanjiModeEnabled = function () {\n return typeof toSJISFunction !== 'undefined'\n}\n\nexports.toSJIS = function toSJIS (kanji) {\n return toSJISFunction(kanji)\n}\n","function BitBuffer () {\n this.buffer = []\n this.length = 0\n}\n\nBitBuffer.prototype = {\n\n get: function (index) {\n var bufIndex = Math.floor(index / 8)\n return ((this.buffer[bufIndex] >>> (7 - index % 8)) & 1) === 1\n },\n\n put: function (num, length) {\n for (var i = 0; i < length; i++) {\n this.putBit(((num >>> (length - i - 1)) & 1) === 1)\n }\n },\n\n getLengthInBits: function () {\n return this.length\n },\n\n putBit: function (bit) {\n var bufIndex = Math.floor(this.length / 8)\n if (this.buffer.length <= bufIndex) {\n this.buffer.push(0)\n }\n\n if (bit) {\n this.buffer[bufIndex] |= (0x80 >>> (this.length % 8))\n }\n\n this.length++\n }\n}\n\nmodule.exports = BitBuffer\n","exports.L = { bit: 1 }\nexports.M = { bit: 0 }\nexports.Q = { bit: 3 }\nexports.H = { bit: 2 }\n\nfunction fromString (string) {\n if (typeof string !== 'string') {\n throw new Error('Param is not a string')\n }\n\n var lcStr = string.toLowerCase()\n\n switch (lcStr) {\n case 'l':\n case 'low':\n return exports.L\n\n case 'm':\n case 'medium':\n return exports.M\n\n case 'q':\n case 'quartile':\n return exports.Q\n\n case 'h':\n case 'high':\n return exports.H\n\n default:\n throw new Error('Unknown EC Level: ' + string)\n }\n}\n\nexports.isValid = function isValid (level) {\n return level && typeof level.bit !== 'undefined' &&\n level.bit >= 0 && level.bit < 4\n}\n\nexports.from = function from (value, defaultValue) {\n if (exports.isValid(value)) {\n return value\n }\n\n try {\n return fromString(value)\n } catch (e) {\n return defaultValue\n }\n}\n","var BufferUtil = require('../utils/buffer')\n\n/**\n * Helper class to handle QR Code symbol modules\n *\n * @param {Number} size Symbol size\n */\nfunction BitMatrix (size) {\n if (!size || size < 1) {\n throw new Error('BitMatrix size must be defined and greater than 0')\n }\n\n this.size = size\n this.data = BufferUtil.alloc(size * size)\n this.reservedBit = BufferUtil.alloc(size * size)\n}\n\n/**\n * Set bit value at specified location\n * If reserved flag is set, this bit will be ignored during masking process\n *\n * @param {Number} row\n * @param {Number} col\n * @param {Boolean} value\n * @param {Boolean} reserved\n */\nBitMatrix.prototype.set = function (row, col, value, reserved) {\n var index = row * this.size + col\n this.data[index] = value\n if (reserved) this.reservedBit[index] = true\n}\n\n/**\n * Returns bit value at specified location\n *\n * @param {Number} row\n * @param {Number} col\n * @return {Boolean}\n */\nBitMatrix.prototype.get = function (row, col) {\n return this.data[row * this.size + col]\n}\n\n/**\n * Applies xor operator at specified location\n * (used during masking process)\n *\n * @param {Number} row\n * @param {Number} col\n * @param {Boolean} value\n */\nBitMatrix.prototype.xor = function (row, col, value) {\n this.data[row * this.size + col] ^= value\n}\n\n/**\n * Check if bit at specified location is reserved\n *\n * @param {Number} row\n * @param {Number} col\n * @return {Boolean}\n */\nBitMatrix.prototype.isReserved = function (row, col) {\n return this.reservedBit[row * this.size + col]\n}\n\nmodule.exports = BitMatrix\n","/**\n * Alignment pattern are fixed reference pattern in defined positions\n * in a matrix symbology, which enables the decode software to re-synchronise\n * the coordinate mapping of the image modules in the event of moderate amounts\n * of distortion of the image.\n *\n * Alignment patterns are present only in QR Code symbols of version 2 or larger\n * and their number depends on the symbol version.\n */\n\nvar getSymbolSize = require('./utils').getSymbolSize\n\n/**\n * Calculate the row/column coordinates of the center module of each alignment pattern\n * for the specified QR Code version.\n *\n * The alignment patterns are positioned symmetrically on either side of the diagonal\n * running from the top left corner of the symbol to the bottom right corner.\n *\n * Since positions are simmetrical only half of the coordinates are returned.\n * Each item of the array will represent in turn the x and y coordinate.\n * @see {@link getPositions}\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinate\n */\nexports.getRowColCoords = function getRowColCoords (version) {\n if (version === 1) return []\n\n var posCount = Math.floor(version / 7) + 2\n var size = getSymbolSize(version)\n var intervals = size === 145 ? 26 : Math.ceil((size - 13) / (2 * posCount - 2)) * 2\n var positions = [size - 7] // Last coord is always (size - 7)\n\n for (var i = 1; i < posCount - 1; i++) {\n positions[i] = positions[i - 1] - intervals\n }\n\n positions.push(6) // First coord is always 6\n\n return positions.reverse()\n}\n\n/**\n * Returns an array containing the positions of each alignment pattern.\n * Each array's element represent the center point of the pattern as (x, y) coordinates\n *\n * Coordinates are calculated expanding the row/column coordinates returned by {@link getRowColCoords}\n * and filtering out the items that overlaps with finder pattern\n *\n * @example\n * For a Version 7 symbol {@link getRowColCoords} returns values 6, 22 and 38.\n * The alignment patterns, therefore, are to be centered on (row, column)\n * positions (6,22), (22,6), (22,22), (22,38), (38,22), (38,38).\n * Note that the coordinates (6,6), (6,38), (38,6) are occupied by finder patterns\n * and are not therefore used for alignment patterns.\n *\n * var pos = getPositions(7)\n * // [[6,22], [22,6], [22,22], [22,38], [38,22], [38,38]]\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinates\n */\nexports.getPositions = function getPositions (version) {\n var coords = []\n var pos = exports.getRowColCoords(version)\n var posLength = pos.length\n\n for (var i = 0; i < posLength; i++) {\n for (var j = 0; j < posLength; j++) {\n // Skip if position is occupied by finder patterns\n if ((i === 0 && j === 0) || // top-left\n (i === 0 && j === posLength - 1) || // bottom-left\n (i === posLength - 1 && j === 0)) { // top-right\n continue\n }\n\n coords.push([pos[i], pos[j]])\n }\n }\n\n return coords\n}\n","var getSymbolSize = require('./utils').getSymbolSize\nvar FINDER_PATTERN_SIZE = 7\n\n/**\n * Returns an array containing the positions of each finder pattern.\n * Each array's element represent the top-left point of the pattern as (x, y) coordinates\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinates\n */\nexports.getPositions = function getPositions (version) {\n var size = getSymbolSize(version)\n\n return [\n // top-left\n [0, 0],\n // top-right\n [size - FINDER_PATTERN_SIZE, 0],\n // bottom-left\n [0, size - FINDER_PATTERN_SIZE]\n ]\n}\n","/**\n * Data mask pattern reference\n * @type {Object}\n */\nexports.Patterns = {\n PATTERN000: 0,\n PATTERN001: 1,\n PATTERN010: 2,\n PATTERN011: 3,\n PATTERN100: 4,\n PATTERN101: 5,\n PATTERN110: 6,\n PATTERN111: 7\n}\n\n/**\n * Weighted penalty scores for the undesirable features\n * @type {Object}\n */\nvar PenaltyScores = {\n N1: 3,\n N2: 3,\n N3: 40,\n N4: 10\n}\n\n/**\n * Check if mask pattern value is valid\n *\n * @param {Number} mask Mask pattern\n * @return {Boolean} true if valid, false otherwise\n */\nexports.isValid = function isValid (mask) {\n return mask != null && mask !== '' && !isNaN(mask) && mask >= 0 && mask <= 7\n}\n\n/**\n * Returns mask pattern from a value.\n * If value is not valid, returns undefined\n *\n * @param {Number|String} value Mask pattern value\n * @return {Number} Valid mask pattern or undefined\n */\nexports.from = function from (value) {\n return exports.isValid(value) ? parseInt(value, 10) : undefined\n}\n\n/**\n* Find adjacent modules in row/column with the same color\n* and assign a penalty value.\n*\n* Points: N1 + i\n* i is the amount by which the number of adjacent modules of the same color exceeds 5\n*/\nexports.getPenaltyN1 = function getPenaltyN1 (data) {\n var size = data.size\n var points = 0\n var sameCountCol = 0\n var sameCountRow = 0\n var lastCol = null\n var lastRow = null\n\n for (var row = 0; row < size; row++) {\n sameCountCol = sameCountRow = 0\n lastCol = lastRow = null\n\n for (var col = 0; col < size; col++) {\n var module = data.get(row, col)\n if (module === lastCol) {\n sameCountCol++\n } else {\n if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5)\n lastCol = module\n sameCountCol = 1\n }\n\n module = data.get(col, row)\n if (module === lastRow) {\n sameCountRow++\n } else {\n if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5)\n lastRow = module\n sameCountRow = 1\n }\n }\n\n if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5)\n if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5)\n }\n\n return points\n}\n\n/**\n * Find 2x2 blocks with the same color and assign a penalty value\n *\n * Points: N2 * (m - 1) * (n - 1)\n */\nexports.getPenaltyN2 = function getPenaltyN2 (data) {\n var size = data.size\n var points = 0\n\n for (var row = 0; row < size - 1; row++) {\n for (var col = 0; col < size - 1; col++) {\n var last = data.get(row, col) +\n data.get(row, col + 1) +\n data.get(row + 1, col) +\n data.get(row + 1, col + 1)\n\n if (last === 4 || last === 0) points++\n }\n }\n\n return points * PenaltyScores.N2\n}\n\n/**\n * Find 1:1:3:1:1 ratio (dark:light:dark:light:dark) pattern in row/column,\n * preceded or followed by light area 4 modules wide\n *\n * Points: N3 * number of pattern found\n */\nexports.getPenaltyN3 = function getPenaltyN3 (data) {\n var size = data.size\n var points = 0\n var bitsCol = 0\n var bitsRow = 0\n\n for (var row = 0; row < size; row++) {\n bitsCol = bitsRow = 0\n for (var col = 0; col < size; col++) {\n bitsCol = ((bitsCol << 1) & 0x7FF) | data.get(row, col)\n if (col >= 10 && (bitsCol === 0x5D0 || bitsCol === 0x05D)) points++\n\n bitsRow = ((bitsRow << 1) & 0x7FF) | data.get(col, row)\n if (col >= 10 && (bitsRow === 0x5D0 || bitsRow === 0x05D)) points++\n }\n }\n\n return points * PenaltyScores.N3\n}\n\n/**\n * Calculate proportion of dark modules in entire symbol\n *\n * Points: N4 * k\n *\n * k is the rating of the deviation of the proportion of dark modules\n * in the symbol from 50% in steps of 5%\n */\nexports.getPenaltyN4 = function getPenaltyN4 (data) {\n var darkCount = 0\n var modulesCount = data.data.length\n\n for (var i = 0; i < modulesCount; i++) darkCount += data.data[i]\n\n var k = Math.abs(Math.ceil((darkCount * 100 / modulesCount) / 5) - 10)\n\n return k * PenaltyScores.N4\n}\n\n/**\n * Return mask value at given position\n *\n * @param {Number} maskPattern Pattern reference value\n * @param {Number} i Row\n * @param {Number} j Column\n * @return {Boolean} Mask value\n */\nfunction getMaskAt (maskPattern, i, j) {\n switch (maskPattern) {\n case exports.Patterns.PATTERN000: return (i + j) % 2 === 0\n case exports.Patterns.PATTERN001: return i % 2 === 0\n case exports.Patterns.PATTERN010: return j % 3 === 0\n case exports.Patterns.PATTERN011: return (i + j) % 3 === 0\n case exports.Patterns.PATTERN100: return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 === 0\n case exports.Patterns.PATTERN101: return (i * j) % 2 + (i * j) % 3 === 0\n case exports.Patterns.PATTERN110: return ((i * j) % 2 + (i * j) % 3) % 2 === 0\n case exports.Patterns.PATTERN111: return ((i * j) % 3 + (i + j) % 2) % 2 === 0\n\n default: throw new Error('bad maskPattern:' + maskPattern)\n }\n}\n\n/**\n * Apply a mask pattern to a BitMatrix\n *\n * @param {Number} pattern Pattern reference number\n * @param {BitMatrix} data BitMatrix data\n */\nexports.applyMask = function applyMask (pattern, data) {\n var size = data.size\n\n for (var col = 0; col < size; col++) {\n for (var row = 0; row < size; row++) {\n if (data.isReserved(row, col)) continue\n data.xor(row, col, getMaskAt(pattern, row, col))\n }\n }\n}\n\n/**\n * Returns the best mask pattern for data\n *\n * @param {BitMatrix} data\n * @return {Number} Mask pattern reference number\n */\nexports.getBestMask = function getBestMask (data, setupFormatFunc) {\n var numPatterns = Object.keys(exports.Patterns).length\n var bestPattern = 0\n var lowerPenalty = Infinity\n\n for (var p = 0; p < numPatterns; p++) {\n setupFormatFunc(p)\n exports.applyMask(p, data)\n\n // Calculate penalty\n var penalty =\n exports.getPenaltyN1(data) +\n exports.getPenaltyN2(data) +\n exports.getPenaltyN3(data) +\n exports.getPenaltyN4(data)\n\n // Undo previously applied mask\n exports.applyMask(p, data)\n\n if (penalty < lowerPenalty) {\n lowerPenalty = penalty\n bestPattern = p\n }\n }\n\n return bestPattern\n}\n","var ECLevel = require('./error-correction-level')\r\n\r\nvar EC_BLOCKS_TABLE = [\r\n// L M Q H\r\n 1, 1, 1, 1,\r\n 1, 1, 1, 1,\r\n 1, 1, 2, 2,\r\n 1, 2, 2, 4,\r\n 1, 2, 4, 4,\r\n 2, 4, 4, 4,\r\n 2, 4, 6, 5,\r\n 2, 4, 6, 6,\r\n 2, 5, 8, 8,\r\n 4, 5, 8, 8,\r\n 4, 5, 8, 11,\r\n 4, 8, 10, 11,\r\n 4, 9, 12, 16,\r\n 4, 9, 16, 16,\r\n 6, 10, 12, 18,\r\n 6, 10, 17, 16,\r\n 6, 11, 16, 19,\r\n 6, 13, 18, 21,\r\n 7, 14, 21, 25,\r\n 8, 16, 20, 25,\r\n 8, 17, 23, 25,\r\n 9, 17, 23, 34,\r\n 9, 18, 25, 30,\r\n 10, 20, 27, 32,\r\n 12, 21, 29, 35,\r\n 12, 23, 34, 37,\r\n 12, 25, 34, 40,\r\n 13, 26, 35, 42,\r\n 14, 28, 38, 45,\r\n 15, 29, 40, 48,\r\n 16, 31, 43, 51,\r\n 17, 33, 45, 54,\r\n 18, 35, 48, 57,\r\n 19, 37, 51, 60,\r\n 19, 38, 53, 63,\r\n 20, 40, 56, 66,\r\n 21, 43, 59, 70,\r\n 22, 45, 62, 74,\r\n 24, 47, 65, 77,\r\n 25, 49, 68, 81\r\n]\r\n\r\nvar EC_CODEWORDS_TABLE = [\r\n// L M Q H\r\n 7, 10, 13, 17,\r\n 10, 16, 22, 28,\r\n 15, 26, 36, 44,\r\n 20, 36, 52, 64,\r\n 26, 48, 72, 88,\r\n 36, 64, 96, 112,\r\n 40, 72, 108, 130,\r\n 48, 88, 132, 156,\r\n 60, 110, 160, 192,\r\n 72, 130, 192, 224,\r\n 80, 150, 224, 264,\r\n 96, 176, 260, 308,\r\n 104, 198, 288, 352,\r\n 120, 216, 320, 384,\r\n 132, 240, 360, 432,\r\n 144, 280, 408, 480,\r\n 168, 308, 448, 532,\r\n 180, 338, 504, 588,\r\n 196, 364, 546, 650,\r\n 224, 416, 600, 700,\r\n 224, 442, 644, 750,\r\n 252, 476, 690, 816,\r\n 270, 504, 750, 900,\r\n 300, 560, 810, 960,\r\n 312, 588, 870, 1050,\r\n 336, 644, 952, 1110,\r\n 360, 700, 1020, 1200,\r\n 390, 728, 1050, 1260,\r\n 420, 784, 1140, 1350,\r\n 450, 812, 1200, 1440,\r\n 480, 868, 1290, 1530,\r\n 510, 924, 1350, 1620,\r\n 540, 980, 1440, 1710,\r\n 570, 1036, 1530, 1800,\r\n 570, 1064, 1590, 1890,\r\n 600, 1120, 1680, 1980,\r\n 630, 1204, 1770, 2100,\r\n 660, 1260, 1860, 2220,\r\n 720, 1316, 1950, 2310,\r\n 750, 1372, 2040, 2430\r\n]\r\n\r\n/**\r\n * Returns the number of error correction block that the QR Code should contain\r\n * for the specified version and error correction level.\r\n *\r\n * @param {Number} version QR Code version\r\n * @param {Number} errorCorrectionLevel Error correction level\r\n * @return {Number} Number of error correction blocks\r\n */\r\nexports.getBlocksCount = function getBlocksCount (version, errorCorrectionLevel) {\r\n switch (errorCorrectionLevel) {\r\n case ECLevel.L:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 0]\r\n case ECLevel.M:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 1]\r\n case ECLevel.Q:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 2]\r\n case ECLevel.H:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 3]\r\n default:\r\n return undefined\r\n }\r\n}\r\n\r\n/**\r\n * Returns the number of error correction codewords to use for the specified\r\n * version and error correction level.\r\n *\r\n * @param {Number} version QR Code version\r\n * @param {Number} errorCorrectionLevel Error correction level\r\n * @return {Number} Number of error correction codewords\r\n */\r\nexports.getTotalCodewordsCount = function getTotalCodewordsCount (version, errorCorrectionLevel) {\r\n switch (errorCorrectionLevel) {\r\n case ECLevel.L:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 0]\r\n case ECLevel.M:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 1]\r\n case ECLevel.Q:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 2]\r\n case ECLevel.H:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 3]\r\n default:\r\n return undefined\r\n }\r\n}\r\n","var BufferUtil = require('../utils/buffer')\n\nvar EXP_TABLE = BufferUtil.alloc(512)\nvar LOG_TABLE = BufferUtil.alloc(256)\n/**\n * Precompute the log and anti-log tables for faster computation later\n *\n * For each possible value in the galois field 2^8, we will pre-compute\n * the logarithm and anti-logarithm (exponential) of this value\n *\n * ref {@link https://en.wikiversity.org/wiki/Reed%E2%80%93Solomon_codes_for_coders#Introduction_to_mathematical_fields}\n */\n;(function initTables () {\n var x = 1\n for (var i = 0; i < 255; i++) {\n EXP_TABLE[i] = x\n LOG_TABLE[x] = i\n\n x <<= 1 // multiply by 2\n\n // The QR code specification says to use byte-wise modulo 100011101 arithmetic.\n // This means that when a number is 256 or larger, it should be XORed with 0x11D.\n if (x & 0x100) { // similar to x >= 256, but a lot faster (because 0x100 == 256)\n x ^= 0x11D\n }\n }\n\n // Optimization: double the size of the anti-log table so that we don't need to mod 255 to\n // stay inside the bounds (because we will mainly use this table for the multiplication of\n // two GF numbers, no more).\n // @see {@link mul}\n for (i = 255; i < 512; i++) {\n EXP_TABLE[i] = EXP_TABLE[i - 255]\n }\n}())\n\n/**\n * Returns log value of n inside Galois Field\n *\n * @param {Number} n\n * @return {Number}\n */\nexports.log = function log (n) {\n if (n < 1) throw new Error('log(' + n + ')')\n return LOG_TABLE[n]\n}\n\n/**\n * Returns anti-log value of n inside Galois Field\n *\n * @param {Number} n\n * @return {Number}\n */\nexports.exp = function exp (n) {\n return EXP_TABLE[n]\n}\n\n/**\n * Multiplies two number inside Galois Field\n *\n * @param {Number} x\n * @param {Number} y\n * @return {Number}\n */\nexports.mul = function mul (x, y) {\n if (x === 0 || y === 0) return 0\n\n // should be EXP_TABLE[(LOG_TABLE[x] + LOG_TABLE[y]) % 255] if EXP_TABLE wasn't oversized\n // @see {@link initTables}\n return EXP_TABLE[LOG_TABLE[x] + LOG_TABLE[y]]\n}\n","var BufferUtil = require('../utils/buffer')\nvar GF = require('./galois-field')\n\n/**\n * Multiplies two polynomials inside Galois Field\n *\n * @param {Buffer} p1 Polynomial\n * @param {Buffer} p2 Polynomial\n * @return {Buffer} Product of p1 and p2\n */\nexports.mul = function mul (p1, p2) {\n var coeff = BufferUtil.alloc(p1.length + p2.length - 1)\n\n for (var i = 0; i < p1.length; i++) {\n for (var j = 0; j < p2.length; j++) {\n coeff[i + j] ^= GF.mul(p1[i], p2[j])\n }\n }\n\n return coeff\n}\n\n/**\n * Calculate the remainder of polynomials division\n *\n * @param {Buffer} divident Polynomial\n * @param {Buffer} divisor Polynomial\n * @return {Buffer} Remainder\n */\nexports.mod = function mod (divident, divisor) {\n var result = BufferUtil.from(divident)\n\n while ((result.length - divisor.length) >= 0) {\n var coeff = result[0]\n\n for (var i = 0; i < divisor.length; i++) {\n result[i] ^= GF.mul(divisor[i], coeff)\n }\n\n // remove all zeros from buffer head\n var offset = 0\n while (offset < result.length && result[offset] === 0) offset++\n result = result.slice(offset)\n }\n\n return result\n}\n\n/**\n * Generate an irreducible generator polynomial of specified degree\n * (used by Reed-Solomon encoder)\n *\n * @param {Number} degree Degree of the generator polynomial\n * @return {Buffer} Buffer containing polynomial coefficients\n */\nexports.generateECPolynomial = function generateECPolynomial (degree) {\n var poly = BufferUtil.from([1])\n for (var i = 0; i < degree; i++) {\n poly = exports.mul(poly, [1, GF.exp(i)])\n }\n\n return poly\n}\n","var BufferUtil = require('../utils/buffer')\nvar Polynomial = require('./polynomial')\nvar Buffer = require('buffer').Buffer\n\nfunction ReedSolomonEncoder (degree) {\n this.genPoly = undefined\n this.degree = degree\n\n if (this.degree) this.initialize(this.degree)\n}\n\n/**\n * Initialize the encoder.\n * The input param should correspond to the number of error correction codewords.\n *\n * @param {Number} degree\n */\nReedSolomonEncoder.prototype.initialize = function initialize (degree) {\n // create an irreducible generator polynomial\n this.degree = degree\n this.genPoly = Polynomial.generateECPolynomial(this.degree)\n}\n\n/**\n * Encodes a chunk of data\n *\n * @param {Buffer} data Buffer containing input data\n * @return {Buffer} Buffer containing encoded data\n */\nReedSolomonEncoder.prototype.encode = function encode (data) {\n if (!this.genPoly) {\n throw new Error('Encoder not initialized')\n }\n\n // Calculate EC for this data block\n // extends data size to data+genPoly size\n var pad = BufferUtil.alloc(this.degree)\n var paddedData = Buffer.concat([data, pad], data.length + this.degree)\n\n // The error correction codewords are the remainder after dividing the data codewords\n // by a generator polynomial\n var remainder = Polynomial.mod(paddedData, this.genPoly)\n\n // return EC data blocks (last n byte, where n is the degree of genPoly)\n // If coefficients number in remainder are less than genPoly degree,\n // pad with 0s to the left to reach the needed number of coefficients\n var start = this.degree - remainder.length\n if (start > 0) {\n var buff = BufferUtil.alloc(this.degree)\n remainder.copy(buff, start)\n\n return buff\n }\n\n return remainder\n}\n\nmodule.exports = ReedSolomonEncoder\n","/**\n * Check if QR Code version is valid\n *\n * @param {Number} version QR Code version\n * @return {Boolean} true if valid version, false otherwise\n */\nexports.isValid = function isValid (version) {\n return !isNaN(version) && version >= 1 && version <= 40\n}\n","var numeric = '[0-9]+'\nvar alphanumeric = '[A-Z $%*+\\\\-./:]+'\nvar kanji = '(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|' +\n '[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|' +\n '[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|' +\n '[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+'\nkanji = kanji.replace(/u/g, '\\\\u')\n\nvar byte = '(?:(?![A-Z0-9 $%*+\\\\-./:]|' + kanji + ')(?:.|[\\r\\n]))+'\n\nexports.KANJI = new RegExp(kanji, 'g')\nexports.BYTE_KANJI = new RegExp('[^A-Z0-9 $%*+\\\\-./:]+', 'g')\nexports.BYTE = new RegExp(byte, 'g')\nexports.NUMERIC = new RegExp(numeric, 'g')\nexports.ALPHANUMERIC = new RegExp(alphanumeric, 'g')\n\nvar TEST_KANJI = new RegExp('^' + kanji + '$')\nvar TEST_NUMERIC = new RegExp('^' + numeric + '$')\nvar TEST_ALPHANUMERIC = new RegExp('^[A-Z0-9 $%*+\\\\-./:]+$')\n\nexports.testKanji = function testKanji (str) {\n return TEST_KANJI.test(str)\n}\n\nexports.testNumeric = function testNumeric (str) {\n return TEST_NUMERIC.test(str)\n}\n\nexports.testAlphanumeric = function testAlphanumeric (str) {\n return TEST_ALPHANUMERIC.test(str)\n}\n","var VersionCheck = require('./version-check')\nvar Regex = require('./regex')\n\n/**\n * Numeric mode encodes data from the decimal digit set (0 - 9)\n * (byte values 30HEX to 39HEX).\n * Normally, 3 data characters are represented by 10 bits.\n *\n * @type {Object}\n */\nexports.NUMERIC = {\n id: 'Numeric',\n bit: 1 << 0,\n ccBits: [10, 12, 14]\n}\n\n/**\n * Alphanumeric mode encodes data from a set of 45 characters,\n * i.e. 10 numeric digits (0 - 9),\n * 26 alphabetic characters (A - Z),\n * and 9 symbols (SP, $, %, *, +, -, ., /, :).\n * Normally, two input characters are represented by 11 bits.\n *\n * @type {Object}\n */\nexports.ALPHANUMERIC = {\n id: 'Alphanumeric',\n bit: 1 << 1,\n ccBits: [9, 11, 13]\n}\n\n/**\n * In byte mode, data is encoded at 8 bits per character.\n *\n * @type {Object}\n */\nexports.BYTE = {\n id: 'Byte',\n bit: 1 << 2,\n ccBits: [8, 16, 16]\n}\n\n/**\n * The Kanji mode efficiently encodes Kanji characters in accordance with\n * the Shift JIS system based on JIS X 0208.\n * The Shift JIS values are shifted from the JIS X 0208 values.\n * JIS X 0208 gives details of the shift coded representation.\n * Each two-byte character value is compacted to a 13-bit binary codeword.\n *\n * @type {Object}\n */\nexports.KANJI = {\n id: 'Kanji',\n bit: 1 << 3,\n ccBits: [8, 10, 12]\n}\n\n/**\n * Mixed mode will contain a sequences of data in a combination of any of\n * the modes described above\n *\n * @type {Object}\n */\nexports.MIXED = {\n bit: -1\n}\n\n/**\n * Returns the number of bits needed to store the data length\n * according to QR Code specifications.\n *\n * @param {Mode} mode Data mode\n * @param {Number} version QR Code version\n * @return {Number} Number of bits\n */\nexports.getCharCountIndicator = function getCharCountIndicator (mode, version) {\n if (!mode.ccBits) throw new Error('Invalid mode: ' + mode)\n\n if (!VersionCheck.isValid(version)) {\n throw new Error('Invalid version: ' + version)\n }\n\n if (version >= 1 && version < 10) return mode.ccBits[0]\n else if (version < 27) return mode.ccBits[1]\n return mode.ccBits[2]\n}\n\n/**\n * Returns the most efficient mode to store the specified data\n *\n * @param {String} dataStr Input data string\n * @return {Mode} Best mode\n */\nexports.getBestModeForData = function getBestModeForData (dataStr) {\n if (Regex.testNumeric(dataStr)) return exports.NUMERIC\n else if (Regex.testAlphanumeric(dataStr)) return exports.ALPHANUMERIC\n else if (Regex.testKanji(dataStr)) return exports.KANJI\n else return exports.BYTE\n}\n\n/**\n * Return mode name as string\n *\n * @param {Mode} mode Mode object\n * @returns {String} Mode name\n */\nexports.toString = function toString (mode) {\n if (mode && mode.id) return mode.id\n throw new Error('Invalid mode')\n}\n\n/**\n * Check if input param is a valid mode object\n *\n * @param {Mode} mode Mode object\n * @returns {Boolean} True if valid mode, false otherwise\n */\nexports.isValid = function isValid (mode) {\n return mode && mode.bit && mode.ccBits\n}\n\n/**\n * Get mode object from its name\n *\n * @param {String} string Mode name\n * @returns {Mode} Mode object\n */\nfunction fromString (string) {\n if (typeof string !== 'string') {\n throw new Error('Param is not a string')\n }\n\n var lcStr = string.toLowerCase()\n\n switch (lcStr) {\n case 'numeric':\n return exports.NUMERIC\n case 'alphanumeric':\n return exports.ALPHANUMERIC\n case 'kanji':\n return exports.KANJI\n case 'byte':\n return exports.BYTE\n default:\n throw new Error('Unknown mode: ' + string)\n }\n}\n\n/**\n * Returns mode from a value.\n * If value is not a valid mode, returns defaultValue\n *\n * @param {Mode|String} value Encoding mode\n * @param {Mode} defaultValue Fallback value\n * @return {Mode} Encoding mode\n */\nexports.from = function from (value, defaultValue) {\n if (exports.isValid(value)) {\n return value\n }\n\n try {\n return fromString(value)\n } catch (e) {\n return defaultValue\n }\n}\n","var Utils = require('./utils')\nvar ECCode = require('./error-correction-code')\nvar ECLevel = require('./error-correction-level')\nvar Mode = require('./mode')\nvar VersionCheck = require('./version-check')\nvar isArray = require('isarray')\n\n// Generator polynomial used to encode version information\nvar G18 = (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0)\nvar G18_BCH = Utils.getBCHDigit(G18)\n\nfunction getBestVersionForDataLength (mode, length, errorCorrectionLevel) {\n for (var currentVersion = 1; currentVersion <= 40; currentVersion++) {\n if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, mode)) {\n return currentVersion\n }\n }\n\n return undefined\n}\n\nfunction getReservedBitsCount (mode, version) {\n // Character count indicator + mode indicator bits\n return Mode.getCharCountIndicator(mode, version) + 4\n}\n\nfunction getTotalBitsFromDataArray (segments, version) {\n var totalBits = 0\n\n segments.forEach(function (data) {\n var reservedBits = getReservedBitsCount(data.mode, version)\n totalBits += reservedBits + data.getBitsLength()\n })\n\n return totalBits\n}\n\nfunction getBestVersionForMixedData (segments, errorCorrectionLevel) {\n for (var currentVersion = 1; currentVersion <= 40; currentVersion++) {\n var length = getTotalBitsFromDataArray(segments, currentVersion)\n if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, Mode.MIXED)) {\n return currentVersion\n }\n }\n\n return undefined\n}\n\n/**\n * Returns version number from a value.\n * If value is not a valid version, returns defaultValue\n *\n * @param {Number|String} value QR Code version\n * @param {Number} defaultValue Fallback value\n * @return {Number} QR Code version number\n */\nexports.from = function from (value, defaultValue) {\n if (VersionCheck.isValid(value)) {\n return parseInt(value, 10)\n }\n\n return defaultValue\n}\n\n/**\n * Returns how much data can be stored with the specified QR code version\n * and error correction level\n *\n * @param {Number} version QR Code version (1-40)\n * @param {Number} errorCorrectionLevel Error correction level\n * @param {Mode} mode Data mode\n * @return {Number} Quantity of storable data\n */\nexports.getCapacity = function getCapacity (version, errorCorrectionLevel, mode) {\n if (!VersionCheck.isValid(version)) {\n throw new Error('Invalid QR Code version')\n }\n\n // Use Byte mode as default\n if (typeof mode === 'undefined') mode = Mode.BYTE\n\n // Total codewords for this QR code version (Data + Error correction)\n var totalCodewords = Utils.getSymbolTotalCodewords(version)\n\n // Total number of error correction codewords\n var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n\n // Total number of data codewords\n var dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8\n\n if (mode === Mode.MIXED) return dataTotalCodewordsBits\n\n var usableBits = dataTotalCodewordsBits - getReservedBitsCount(mode, version)\n\n // Return max number of storable codewords\n switch (mode) {\n case Mode.NUMERIC:\n return Math.floor((usableBits / 10) * 3)\n\n case Mode.ALPHANUMERIC:\n return Math.floor((usableBits / 11) * 2)\n\n case Mode.KANJI:\n return Math.floor(usableBits / 13)\n\n case Mode.BYTE:\n default:\n return Math.floor(usableBits / 8)\n }\n}\n\n/**\n * Returns the minimum version needed to contain the amount of data\n *\n * @param {Segment} data Segment of data\n * @param {Number} [errorCorrectionLevel=H] Error correction level\n * @param {Mode} mode Data mode\n * @return {Number} QR Code version\n */\nexports.getBestVersionForData = function getBestVersionForData (data, errorCorrectionLevel) {\n var seg\n\n var ecl = ECLevel.from(errorCorrectionLevel, ECLevel.M)\n\n if (isArray(data)) {\n if (data.length > 1) {\n return getBestVersionForMixedData(data, ecl)\n }\n\n if (data.length === 0) {\n return 1\n }\n\n seg = data[0]\n } else {\n seg = data\n }\n\n return getBestVersionForDataLength(seg.mode, seg.getLength(), ecl)\n}\n\n/**\n * Returns version information with relative error correction bits\n *\n * The version information is included in QR Code symbols of version 7 or larger.\n * It consists of an 18-bit sequence containing 6 data bits,\n * with 12 error correction bits calculated using the (18, 6) Golay code.\n *\n * @param {Number} version QR Code version\n * @return {Number} Encoded version info bits\n */\nexports.getEncodedBits = function getEncodedBits (version) {\n if (!VersionCheck.isValid(version) || version < 7) {\n throw new Error('Invalid QR Code version')\n }\n\n var d = version << 12\n\n while (Utils.getBCHDigit(d) - G18_BCH >= 0) {\n d ^= (G18 << (Utils.getBCHDigit(d) - G18_BCH))\n }\n\n return (version << 12) | d\n}\n","var Utils = require('./utils')\n\nvar G15 = (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0)\nvar G15_MASK = (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1)\nvar G15_BCH = Utils.getBCHDigit(G15)\n\n/**\n * Returns format information with relative error correction bits\n *\n * The format information is a 15-bit sequence containing 5 data bits,\n * with 10 error correction bits calculated using the (15, 5) BCH code.\n *\n * @param {Number} errorCorrectionLevel Error correction level\n * @param {Number} mask Mask pattern\n * @return {Number} Encoded format information bits\n */\nexports.getEncodedBits = function getEncodedBits (errorCorrectionLevel, mask) {\n var data = ((errorCorrectionLevel.bit << 3) | mask)\n var d = data << 10\n\n while (Utils.getBCHDigit(d) - G15_BCH >= 0) {\n d ^= (G15 << (Utils.getBCHDigit(d) - G15_BCH))\n }\n\n // xor final data with mask pattern in order to ensure that\n // no combination of Error Correction Level and data mask pattern\n // will result in an all-zero data string\n return ((data << 10) | d) ^ G15_MASK\n}\n","var Mode = require('./mode')\n\nfunction NumericData (data) {\n this.mode = Mode.NUMERIC\n this.data = data.toString()\n}\n\nNumericData.getBitsLength = function getBitsLength (length) {\n return 10 * Math.floor(length / 3) + ((length % 3) ? ((length % 3) * 3 + 1) : 0)\n}\n\nNumericData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nNumericData.prototype.getBitsLength = function getBitsLength () {\n return NumericData.getBitsLength(this.data.length)\n}\n\nNumericData.prototype.write = function write (bitBuffer) {\n var i, group, value\n\n // The input data string is divided into groups of three digits,\n // and each group is converted to its 10-bit binary equivalent.\n for (i = 0; i + 3 <= this.data.length; i += 3) {\n group = this.data.substr(i, 3)\n value = parseInt(group, 10)\n\n bitBuffer.put(value, 10)\n }\n\n // If the number of input digits is not an exact multiple of three,\n // the final one or two digits are converted to 4 or 7 bits respectively.\n var remainingNum = this.data.length - i\n if (remainingNum > 0) {\n group = this.data.substr(i)\n value = parseInt(group, 10)\n\n bitBuffer.put(value, remainingNum * 3 + 1)\n }\n}\n\nmodule.exports = NumericData\n","var Mode = require('./mode')\n\n/**\n * Array of characters available in alphanumeric mode\n *\n * As per QR Code specification, to each character\n * is assigned a value from 0 to 44 which in this case coincides\n * with the array index\n *\n * @type {Array}\n */\nvar ALPHA_NUM_CHARS = [\n '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',\n 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',\n 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',\n ' ', '$', '%', '*', '+', '-', '.', '/', ':'\n]\n\nfunction AlphanumericData (data) {\n this.mode = Mode.ALPHANUMERIC\n this.data = data\n}\n\nAlphanumericData.getBitsLength = function getBitsLength (length) {\n return 11 * Math.floor(length / 2) + 6 * (length % 2)\n}\n\nAlphanumericData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nAlphanumericData.prototype.getBitsLength = function getBitsLength () {\n return AlphanumericData.getBitsLength(this.data.length)\n}\n\nAlphanumericData.prototype.write = function write (bitBuffer) {\n var i\n\n // Input data characters are divided into groups of two characters\n // and encoded as 11-bit binary codes.\n for (i = 0; i + 2 <= this.data.length; i += 2) {\n // The character value of the first character is multiplied by 45\n var value = ALPHA_NUM_CHARS.indexOf(this.data[i]) * 45\n\n // The character value of the second digit is added to the product\n value += ALPHA_NUM_CHARS.indexOf(this.data[i + 1])\n\n // The sum is then stored as 11-bit binary number\n bitBuffer.put(value, 11)\n }\n\n // If the number of input data characters is not a multiple of two,\n // the character value of the final character is encoded as a 6-bit binary number.\n if (this.data.length % 2) {\n bitBuffer.put(ALPHA_NUM_CHARS.indexOf(this.data[i]), 6)\n }\n}\n\nmodule.exports = AlphanumericData\n","var BufferUtil = require('../utils/buffer')\nvar Mode = require('./mode')\n\nfunction ByteData (data) {\n this.mode = Mode.BYTE\n this.data = BufferUtil.from(data)\n}\n\nByteData.getBitsLength = function getBitsLength (length) {\n return length * 8\n}\n\nByteData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nByteData.prototype.getBitsLength = function getBitsLength () {\n return ByteData.getBitsLength(this.data.length)\n}\n\nByteData.prototype.write = function (bitBuffer) {\n for (var i = 0, l = this.data.length; i < l; i++) {\n bitBuffer.put(this.data[i], 8)\n }\n}\n\nmodule.exports = ByteData\n","var Mode = require('./mode')\nvar Utils = require('./utils')\n\nfunction KanjiData (data) {\n this.mode = Mode.KANJI\n this.data = data\n}\n\nKanjiData.getBitsLength = function getBitsLength (length) {\n return length * 13\n}\n\nKanjiData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nKanjiData.prototype.getBitsLength = function getBitsLength () {\n return KanjiData.getBitsLength(this.data.length)\n}\n\nKanjiData.prototype.write = function (bitBuffer) {\n var i\n\n // In the Shift JIS system, Kanji characters are represented by a two byte combination.\n // These byte values are shifted from the JIS X 0208 values.\n // JIS X 0208 gives details of the shift coded representation.\n for (i = 0; i < this.data.length; i++) {\n var value = Utils.toSJIS(this.data[i])\n\n // For characters with Shift JIS values from 0x8140 to 0x9FFC:\n if (value >= 0x8140 && value <= 0x9FFC) {\n // Subtract 0x8140 from Shift JIS value\n value -= 0x8140\n\n // For characters with Shift JIS values from 0xE040 to 0xEBBF\n } else if (value >= 0xE040 && value <= 0xEBBF) {\n // Subtract 0xC140 from Shift JIS value\n value -= 0xC140\n } else {\n throw new Error(\n 'Invalid SJIS character: ' + this.data[i] + '\\n' +\n 'Make sure your charset is UTF-8')\n }\n\n // Multiply most significant byte of result by 0xC0\n // and add least significant byte to product\n value = (((value >>> 8) & 0xff) * 0xC0) + (value & 0xff)\n\n // Convert result to a 13-bit binary string\n bitBuffer.put(value, 13)\n }\n}\n\nmodule.exports = KanjiData\n","'use strict';\n\n/******************************************************************************\n * Created 2008-08-19.\n *\n * Dijkstra path-finding functions. Adapted from the Dijkstar Python project.\n *\n * Copyright (C) 2008\n * Wyatt Baldwin \n * All rights reserved\n *\n * Licensed under the MIT license.\n *\n * http://www.opensource.org/licenses/mit-license.php\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *****************************************************************************/\nvar dijkstra = {\n single_source_shortest_paths: function(graph, s, d) {\n // Predecessor map for each node that has been encountered.\n // node ID => predecessor node ID\n var predecessors = {};\n\n // Costs of shortest paths from s to all nodes encountered.\n // node ID => cost\n var costs = {};\n costs[s] = 0;\n\n // Costs of shortest paths from s to all nodes encountered; differs from\n // `costs` in that it provides easy access to the node that currently has\n // the known shortest path from s.\n // XXX: Do we actually need both `costs` and `open`?\n var open = dijkstra.PriorityQueue.make();\n open.push(s, 0);\n\n var closest,\n u, v,\n cost_of_s_to_u,\n adjacent_nodes,\n cost_of_e,\n cost_of_s_to_u_plus_cost_of_e,\n cost_of_s_to_v,\n first_visit;\n while (!open.empty()) {\n // In the nodes remaining in graph that have a known cost from s,\n // find the node, u, that currently has the shortest path from s.\n closest = open.pop();\n u = closest.value;\n cost_of_s_to_u = closest.cost;\n\n // Get nodes adjacent to u...\n adjacent_nodes = graph[u] || {};\n\n // ...and explore the edges that connect u to those nodes, updating\n // the cost of the shortest paths to any or all of those nodes as\n // necessary. v is the node across the current edge from u.\n for (v in adjacent_nodes) {\n if (adjacent_nodes.hasOwnProperty(v)) {\n // Get the cost of the edge running from u to v.\n cost_of_e = adjacent_nodes[v];\n\n // Cost of s to u plus the cost of u to v across e--this is *a*\n // cost from s to v that may or may not be less than the current\n // known cost to v.\n cost_of_s_to_u_plus_cost_of_e = cost_of_s_to_u + cost_of_e;\n\n // If we haven't visited v yet OR if the current known cost from s to\n // v is greater than the new cost we just found (cost of s to u plus\n // cost of u to v across e), update v's cost in the cost list and\n // update v's predecessor in the predecessor list (it's now u).\n cost_of_s_to_v = costs[v];\n first_visit = (typeof costs[v] === 'undefined');\n if (first_visit || cost_of_s_to_v > cost_of_s_to_u_plus_cost_of_e) {\n costs[v] = cost_of_s_to_u_plus_cost_of_e;\n open.push(v, cost_of_s_to_u_plus_cost_of_e);\n predecessors[v] = u;\n }\n }\n }\n }\n\n if (typeof d !== 'undefined' && typeof costs[d] === 'undefined') {\n var msg = ['Could not find a path from ', s, ' to ', d, '.'].join('');\n throw new Error(msg);\n }\n\n return predecessors;\n },\n\n extract_shortest_path_from_predecessor_list: function(predecessors, d) {\n var nodes = [];\n var u = d;\n var predecessor;\n while (u) {\n nodes.push(u);\n predecessor = predecessors[u];\n u = predecessors[u];\n }\n nodes.reverse();\n return nodes;\n },\n\n find_path: function(graph, s, d) {\n var predecessors = dijkstra.single_source_shortest_paths(graph, s, d);\n return dijkstra.extract_shortest_path_from_predecessor_list(\n predecessors, d);\n },\n\n /**\n * A very naive priority queue implementation.\n */\n PriorityQueue: {\n make: function (opts) {\n var T = dijkstra.PriorityQueue,\n t = {},\n key;\n opts = opts || {};\n for (key in T) {\n if (T.hasOwnProperty(key)) {\n t[key] = T[key];\n }\n }\n t.queue = [];\n t.sorter = opts.sorter || T.default_sorter;\n return t;\n },\n\n default_sorter: function (a, b) {\n return a.cost - b.cost;\n },\n\n /**\n * Add a new item to the queue and ensure the highest priority element\n * is at the front of the queue.\n */\n push: function (value, cost) {\n var item = {value: value, cost: cost};\n this.queue.push(item);\n this.queue.sort(this.sorter);\n },\n\n /**\n * Return the highest priority element in the queue.\n */\n pop: function () {\n return this.queue.shift();\n },\n\n empty: function () {\n return this.queue.length === 0;\n }\n }\n};\n\n\n// node.js module exports\nif (typeof module !== 'undefined') {\n module.exports = dijkstra;\n}\n","var Mode = require('./mode')\nvar NumericData = require('./numeric-data')\nvar AlphanumericData = require('./alphanumeric-data')\nvar ByteData = require('./byte-data')\nvar KanjiData = require('./kanji-data')\nvar Regex = require('./regex')\nvar Utils = require('./utils')\nvar dijkstra = require('dijkstrajs')\n\n/**\n * Returns UTF8 byte length\n *\n * @param {String} str Input string\n * @return {Number} Number of byte\n */\nfunction getStringByteLength (str) {\n return unescape(encodeURIComponent(str)).length\n}\n\n/**\n * Get a list of segments of the specified mode\n * from a string\n *\n * @param {Mode} mode Segment mode\n * @param {String} str String to process\n * @return {Array} Array of object with segments data\n */\nfunction getSegments (regex, mode, str) {\n var segments = []\n var result\n\n while ((result = regex.exec(str)) !== null) {\n segments.push({\n data: result[0],\n index: result.index,\n mode: mode,\n length: result[0].length\n })\n }\n\n return segments\n}\n\n/**\n * Extracts a series of segments with the appropriate\n * modes from a string\n *\n * @param {String} dataStr Input string\n * @return {Array} Array of object with segments data\n */\nfunction getSegmentsFromString (dataStr) {\n var numSegs = getSegments(Regex.NUMERIC, Mode.NUMERIC, dataStr)\n var alphaNumSegs = getSegments(Regex.ALPHANUMERIC, Mode.ALPHANUMERIC, dataStr)\n var byteSegs\n var kanjiSegs\n\n if (Utils.isKanjiModeEnabled()) {\n byteSegs = getSegments(Regex.BYTE, Mode.BYTE, dataStr)\n kanjiSegs = getSegments(Regex.KANJI, Mode.KANJI, dataStr)\n } else {\n byteSegs = getSegments(Regex.BYTE_KANJI, Mode.BYTE, dataStr)\n kanjiSegs = []\n }\n\n var segs = numSegs.concat(alphaNumSegs, byteSegs, kanjiSegs)\n\n return segs\n .sort(function (s1, s2) {\n return s1.index - s2.index\n })\n .map(function (obj) {\n return {\n data: obj.data,\n mode: obj.mode,\n length: obj.length\n }\n })\n}\n\n/**\n * Returns how many bits are needed to encode a string of\n * specified length with the specified mode\n *\n * @param {Number} length String length\n * @param {Mode} mode Segment mode\n * @return {Number} Bit length\n */\nfunction getSegmentBitsLength (length, mode) {\n switch (mode) {\n case Mode.NUMERIC:\n return NumericData.getBitsLength(length)\n case Mode.ALPHANUMERIC:\n return AlphanumericData.getBitsLength(length)\n case Mode.KANJI:\n return KanjiData.getBitsLength(length)\n case Mode.BYTE:\n return ByteData.getBitsLength(length)\n }\n}\n\n/**\n * Merges adjacent segments which have the same mode\n *\n * @param {Array} segs Array of object with segments data\n * @return {Array} Array of object with segments data\n */\nfunction mergeSegments (segs) {\n return segs.reduce(function (acc, curr) {\n var prevSeg = acc.length - 1 >= 0 ? acc[acc.length - 1] : null\n if (prevSeg && prevSeg.mode === curr.mode) {\n acc[acc.length - 1].data += curr.data\n return acc\n }\n\n acc.push(curr)\n return acc\n }, [])\n}\n\n/**\n * Generates a list of all possible nodes combination which\n * will be used to build a segments graph.\n *\n * Nodes are divided by groups. Each group will contain a list of all the modes\n * in which is possible to encode the given text.\n *\n * For example the text '12345' can be encoded as Numeric, Alphanumeric or Byte.\n * The group for '12345' will contain then 3 objects, one for each\n * possible encoding mode.\n *\n * Each node represents a possible segment.\n *\n * @param {Array} segs Array of object with segments data\n * @return {Array} Array of object with segments data\n */\nfunction buildNodes (segs) {\n var nodes = []\n for (var i = 0; i < segs.length; i++) {\n var seg = segs[i]\n\n switch (seg.mode) {\n case Mode.NUMERIC:\n nodes.push([seg,\n { data: seg.data, mode: Mode.ALPHANUMERIC, length: seg.length },\n { data: seg.data, mode: Mode.BYTE, length: seg.length }\n ])\n break\n case Mode.ALPHANUMERIC:\n nodes.push([seg,\n { data: seg.data, mode: Mode.BYTE, length: seg.length }\n ])\n break\n case Mode.KANJI:\n nodes.push([seg,\n { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n ])\n break\n case Mode.BYTE:\n nodes.push([\n { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n ])\n }\n }\n\n return nodes\n}\n\n/**\n * Builds a graph from a list of nodes.\n * All segments in each node group will be connected with all the segments of\n * the next group and so on.\n *\n * At each connection will be assigned a weight depending on the\n * segment's byte length.\n *\n * @param {Array} nodes Array of object with segments data\n * @param {Number} version QR Code version\n * @return {Object} Graph of all possible segments\n */\nfunction buildGraph (nodes, version) {\n var table = {}\n var graph = {'start': {}}\n var prevNodeIds = ['start']\n\n for (var i = 0; i < nodes.length; i++) {\n var nodeGroup = nodes[i]\n var currentNodeIds = []\n\n for (var j = 0; j < nodeGroup.length; j++) {\n var node = nodeGroup[j]\n var key = '' + i + j\n\n currentNodeIds.push(key)\n table[key] = { node: node, lastCount: 0 }\n graph[key] = {}\n\n for (var n = 0; n < prevNodeIds.length; n++) {\n var prevNodeId = prevNodeIds[n]\n\n if (table[prevNodeId] && table[prevNodeId].node.mode === node.mode) {\n graph[prevNodeId][key] =\n getSegmentBitsLength(table[prevNodeId].lastCount + node.length, node.mode) -\n getSegmentBitsLength(table[prevNodeId].lastCount, node.mode)\n\n table[prevNodeId].lastCount += node.length\n } else {\n if (table[prevNodeId]) table[prevNodeId].lastCount = node.length\n\n graph[prevNodeId][key] = getSegmentBitsLength(node.length, node.mode) +\n 4 + Mode.getCharCountIndicator(node.mode, version) // switch cost\n }\n }\n }\n\n prevNodeIds = currentNodeIds\n }\n\n for (n = 0; n < prevNodeIds.length; n++) {\n graph[prevNodeIds[n]]['end'] = 0\n }\n\n return { map: graph, table: table }\n}\n\n/**\n * Builds a segment from a specified data and mode.\n * If a mode is not specified, the more suitable will be used.\n *\n * @param {String} data Input data\n * @param {Mode | String} modesHint Data mode\n * @return {Segment} Segment\n */\nfunction buildSingleSegment (data, modesHint) {\n var mode\n var bestMode = Mode.getBestModeForData(data)\n\n mode = Mode.from(modesHint, bestMode)\n\n // Make sure data can be encoded\n if (mode !== Mode.BYTE && mode.bit < bestMode.bit) {\n throw new Error('\"' + data + '\"' +\n ' cannot be encoded with mode ' + Mode.toString(mode) +\n '.\\n Suggested mode is: ' + Mode.toString(bestMode))\n }\n\n // Use Mode.BYTE if Kanji support is disabled\n if (mode === Mode.KANJI && !Utils.isKanjiModeEnabled()) {\n mode = Mode.BYTE\n }\n\n switch (mode) {\n case Mode.NUMERIC:\n return new NumericData(data)\n\n case Mode.ALPHANUMERIC:\n return new AlphanumericData(data)\n\n case Mode.KANJI:\n return new KanjiData(data)\n\n case Mode.BYTE:\n return new ByteData(data)\n }\n}\n\n/**\n * Builds a list of segments from an array.\n * Array can contain Strings or Objects with segment's info.\n *\n * For each item which is a string, will be generated a segment with the given\n * string and the more appropriate encoding mode.\n *\n * For each item which is an object, will be generated a segment with the given\n * data and mode.\n * Objects must contain at least the property \"data\".\n * If property \"mode\" is not present, the more suitable mode will be used.\n *\n * @param {Array} array Array of objects with segments data\n * @return {Array} Array of Segments\n */\nexports.fromArray = function fromArray (array) {\n return array.reduce(function (acc, seg) {\n if (typeof seg === 'string') {\n acc.push(buildSingleSegment(seg, null))\n } else if (seg.data) {\n acc.push(buildSingleSegment(seg.data, seg.mode))\n }\n\n return acc\n }, [])\n}\n\n/**\n * Builds an optimized sequence of segments from a string,\n * which will produce the shortest possible bitstream.\n *\n * @param {String} data Input string\n * @param {Number} version QR Code version\n * @return {Array} Array of segments\n */\nexports.fromString = function fromString (data, version) {\n var segs = getSegmentsFromString(data, Utils.isKanjiModeEnabled())\n\n var nodes = buildNodes(segs)\n var graph = buildGraph(nodes, version)\n var path = dijkstra.find_path(graph.map, 'start', 'end')\n\n var optimizedSegs = []\n for (var i = 1; i < path.length - 1; i++) {\n optimizedSegs.push(graph.table[path[i]].node)\n }\n\n return exports.fromArray(mergeSegments(optimizedSegs))\n}\n\n/**\n * Splits a string in various segments with the modes which\n * best represent their content.\n * The produced segments are far from being optimized.\n * The output of this function is only used to estimate a QR Code version\n * which may contain the data.\n *\n * @param {string} data Input string\n * @return {Array} Array of segments\n */\nexports.rawSplit = function rawSplit (data) {\n return exports.fromArray(\n getSegmentsFromString(data, Utils.isKanjiModeEnabled())\n )\n}\n","var BufferUtil = require('../utils/buffer')\nvar Utils = require('./utils')\nvar ECLevel = require('./error-correction-level')\nvar BitBuffer = require('./bit-buffer')\nvar BitMatrix = require('./bit-matrix')\nvar AlignmentPattern = require('./alignment-pattern')\nvar FinderPattern = require('./finder-pattern')\nvar MaskPattern = require('./mask-pattern')\nvar ECCode = require('./error-correction-code')\nvar ReedSolomonEncoder = require('./reed-solomon-encoder')\nvar Version = require('./version')\nvar FormatInfo = require('./format-info')\nvar Mode = require('./mode')\nvar Segments = require('./segments')\nvar isArray = require('isarray')\n\n/**\n * QRCode for JavaScript\n *\n * modified by Ryan Day for nodejs support\n * Copyright (c) 2011 Ryan Day\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/mit-license.php\n *\n//---------------------------------------------------------------------\n// QRCode for JavaScript\n//\n// Copyright (c) 2009 Kazuhiko Arase\n//\n// URL: http://www.d-project.com/\n//\n// Licensed under the MIT license:\n// http://www.opensource.org/licenses/mit-license.php\n//\n// The word \"QR Code\" is registered trademark of\n// DENSO WAVE INCORPORATED\n// http://www.denso-wave.com/qrcode/faqpatent-e.html\n//\n//---------------------------------------------------------------------\n*/\n\n/**\n * Add finder patterns bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupFinderPattern (matrix, version) {\n var size = matrix.size\n var pos = FinderPattern.getPositions(version)\n\n for (var i = 0; i < pos.length; i++) {\n var row = pos[i][0]\n var col = pos[i][1]\n\n for (var r = -1; r <= 7; r++) {\n if (row + r <= -1 || size <= row + r) continue\n\n for (var c = -1; c <= 7; c++) {\n if (col + c <= -1 || size <= col + c) continue\n\n if ((r >= 0 && r <= 6 && (c === 0 || c === 6)) ||\n (c >= 0 && c <= 6 && (r === 0 || r === 6)) ||\n (r >= 2 && r <= 4 && c >= 2 && c <= 4)) {\n matrix.set(row + r, col + c, true, true)\n } else {\n matrix.set(row + r, col + c, false, true)\n }\n }\n }\n }\n}\n\n/**\n * Add timing pattern bits to matrix\n *\n * Note: this function must be called before {@link setupAlignmentPattern}\n *\n * @param {BitMatrix} matrix Modules matrix\n */\nfunction setupTimingPattern (matrix) {\n var size = matrix.size\n\n for (var r = 8; r < size - 8; r++) {\n var value = r % 2 === 0\n matrix.set(r, 6, value, true)\n matrix.set(6, r, value, true)\n }\n}\n\n/**\n * Add alignment patterns bits to matrix\n *\n * Note: this function must be called after {@link setupTimingPattern}\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupAlignmentPattern (matrix, version) {\n var pos = AlignmentPattern.getPositions(version)\n\n for (var i = 0; i < pos.length; i++) {\n var row = pos[i][0]\n var col = pos[i][1]\n\n for (var r = -2; r <= 2; r++) {\n for (var c = -2; c <= 2; c++) {\n if (r === -2 || r === 2 || c === -2 || c === 2 ||\n (r === 0 && c === 0)) {\n matrix.set(row + r, col + c, true, true)\n } else {\n matrix.set(row + r, col + c, false, true)\n }\n }\n }\n }\n}\n\n/**\n * Add version info bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupVersionInfo (matrix, version) {\n var size = matrix.size\n var bits = Version.getEncodedBits(version)\n var row, col, mod\n\n for (var i = 0; i < 18; i++) {\n row = Math.floor(i / 3)\n col = i % 3 + size - 8 - 3\n mod = ((bits >> i) & 1) === 1\n\n matrix.set(row, col, mod, true)\n matrix.set(col, row, mod, true)\n }\n}\n\n/**\n * Add format info bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @param {Number} maskPattern Mask pattern reference value\n */\nfunction setupFormatInfo (matrix, errorCorrectionLevel, maskPattern) {\n var size = matrix.size\n var bits = FormatInfo.getEncodedBits(errorCorrectionLevel, maskPattern)\n var i, mod\n\n for (i = 0; i < 15; i++) {\n mod = ((bits >> i) & 1) === 1\n\n // vertical\n if (i < 6) {\n matrix.set(i, 8, mod, true)\n } else if (i < 8) {\n matrix.set(i + 1, 8, mod, true)\n } else {\n matrix.set(size - 15 + i, 8, mod, true)\n }\n\n // horizontal\n if (i < 8) {\n matrix.set(8, size - i - 1, mod, true)\n } else if (i < 9) {\n matrix.set(8, 15 - i - 1 + 1, mod, true)\n } else {\n matrix.set(8, 15 - i - 1, mod, true)\n }\n }\n\n // fixed module\n matrix.set(size - 8, 8, 1, true)\n}\n\n/**\n * Add encoded data bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Buffer} data Data codewords\n */\nfunction setupData (matrix, data) {\n var size = matrix.size\n var inc = -1\n var row = size - 1\n var bitIndex = 7\n var byteIndex = 0\n\n for (var col = size - 1; col > 0; col -= 2) {\n if (col === 6) col--\n\n while (true) {\n for (var c = 0; c < 2; c++) {\n if (!matrix.isReserved(row, col - c)) {\n var dark = false\n\n if (byteIndex < data.length) {\n dark = (((data[byteIndex] >>> bitIndex) & 1) === 1)\n }\n\n matrix.set(row, col - c, dark)\n bitIndex--\n\n if (bitIndex === -1) {\n byteIndex++\n bitIndex = 7\n }\n }\n }\n\n row += inc\n\n if (row < 0 || size <= row) {\n row -= inc\n inc = -inc\n break\n }\n }\n }\n}\n\n/**\n * Create encoded codewords from data input\n *\n * @param {Number} version QR Code version\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @param {ByteData} data Data input\n * @return {Buffer} Buffer containing encoded codewords\n */\nfunction createData (version, errorCorrectionLevel, segments) {\n // Prepare data buffer\n var buffer = new BitBuffer()\n\n segments.forEach(function (data) {\n // prefix data with mode indicator (4 bits)\n buffer.put(data.mode.bit, 4)\n\n // Prefix data with character count indicator.\n // The character count indicator is a string of bits that represents the\n // number of characters that are being encoded.\n // The character count indicator must be placed after the mode indicator\n // and must be a certain number of bits long, depending on the QR version\n // and data mode\n // @see {@link Mode.getCharCountIndicator}.\n buffer.put(data.getLength(), Mode.getCharCountIndicator(data.mode, version))\n\n // add binary data sequence to buffer\n data.write(buffer)\n })\n\n // Calculate required number of bits\n var totalCodewords = Utils.getSymbolTotalCodewords(version)\n var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n var dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8\n\n // Add a terminator.\n // If the bit string is shorter than the total number of required bits,\n // a terminator of up to four 0s must be added to the right side of the string.\n // If the bit string is more than four bits shorter than the required number of bits,\n // add four 0s to the end.\n if (buffer.getLengthInBits() + 4 <= dataTotalCodewordsBits) {\n buffer.put(0, 4)\n }\n\n // If the bit string is fewer than four bits shorter, add only the number of 0s that\n // are needed to reach the required number of bits.\n\n // After adding the terminator, if the number of bits in the string is not a multiple of 8,\n // pad the string on the right with 0s to make the string's length a multiple of 8.\n while (buffer.getLengthInBits() % 8 !== 0) {\n buffer.putBit(0)\n }\n\n // Add pad bytes if the string is still shorter than the total number of required bits.\n // Extend the buffer to fill the data capacity of the symbol corresponding to\n // the Version and Error Correction Level by adding the Pad Codewords 11101100 (0xEC)\n // and 00010001 (0x11) alternately.\n var remainingByte = (dataTotalCodewordsBits - buffer.getLengthInBits()) / 8\n for (var i = 0; i < remainingByte; i++) {\n buffer.put(i % 2 ? 0x11 : 0xEC, 8)\n }\n\n return createCodewords(buffer, version, errorCorrectionLevel)\n}\n\n/**\n * Encode input data with Reed-Solomon and return codewords with\n * relative error correction bits\n *\n * @param {BitBuffer} bitBuffer Data to encode\n * @param {Number} version QR Code version\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @return {Buffer} Buffer containing encoded codewords\n */\nfunction createCodewords (bitBuffer, version, errorCorrectionLevel) {\n // Total codewords for this QR code version (Data + Error correction)\n var totalCodewords = Utils.getSymbolTotalCodewords(version)\n\n // Total number of error correction codewords\n var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n\n // Total number of data codewords\n var dataTotalCodewords = totalCodewords - ecTotalCodewords\n\n // Total number of blocks\n var ecTotalBlocks = ECCode.getBlocksCount(version, errorCorrectionLevel)\n\n // Calculate how many blocks each group should contain\n var blocksInGroup2 = totalCodewords % ecTotalBlocks\n var blocksInGroup1 = ecTotalBlocks - blocksInGroup2\n\n var totalCodewordsInGroup1 = Math.floor(totalCodewords / ecTotalBlocks)\n\n var dataCodewordsInGroup1 = Math.floor(dataTotalCodewords / ecTotalBlocks)\n var dataCodewordsInGroup2 = dataCodewordsInGroup1 + 1\n\n // Number of EC codewords is the same for both groups\n var ecCount = totalCodewordsInGroup1 - dataCodewordsInGroup1\n\n // Initialize a Reed-Solomon encoder with a generator polynomial of degree ecCount\n var rs = new ReedSolomonEncoder(ecCount)\n\n var offset = 0\n var dcData = new Array(ecTotalBlocks)\n var ecData = new Array(ecTotalBlocks)\n var maxDataSize = 0\n var buffer = BufferUtil.from(bitBuffer.buffer)\n\n // Divide the buffer into the required number of blocks\n for (var b = 0; b < ecTotalBlocks; b++) {\n var dataSize = b < blocksInGroup1 ? dataCodewordsInGroup1 : dataCodewordsInGroup2\n\n // extract a block of data from buffer\n dcData[b] = buffer.slice(offset, offset + dataSize)\n\n // Calculate EC codewords for this data block\n ecData[b] = rs.encode(dcData[b])\n\n offset += dataSize\n maxDataSize = Math.max(maxDataSize, dataSize)\n }\n\n // Create final data\n // Interleave the data and error correction codewords from each block\n var data = BufferUtil.alloc(totalCodewords)\n var index = 0\n var i, r\n\n // Add data codewords\n for (i = 0; i < maxDataSize; i++) {\n for (r = 0; r < ecTotalBlocks; r++) {\n if (i < dcData[r].length) {\n data[index++] = dcData[r][i]\n }\n }\n }\n\n // Apped EC codewords\n for (i = 0; i < ecCount; i++) {\n for (r = 0; r < ecTotalBlocks; r++) {\n data[index++] = ecData[r][i]\n }\n }\n\n return data\n}\n\n/**\n * Build QR Code symbol\n *\n * @param {String} data Input string\n * @param {Number} version QR Code version\n * @param {ErrorCorretionLevel} errorCorrectionLevel Error level\n * @param {MaskPattern} maskPattern Mask pattern\n * @return {Object} Object containing symbol data\n */\nfunction createSymbol (data, version, errorCorrectionLevel, maskPattern) {\n var segments\n\n if (isArray(data)) {\n segments = Segments.fromArray(data)\n } else if (typeof data === 'string') {\n var estimatedVersion = version\n\n if (!estimatedVersion) {\n var rawSegments = Segments.rawSplit(data)\n\n // Estimate best version that can contain raw splitted segments\n estimatedVersion = Version.getBestVersionForData(rawSegments,\n errorCorrectionLevel)\n }\n\n // Build optimized segments\n // If estimated version is undefined, try with the highest version\n segments = Segments.fromString(data, estimatedVersion || 40)\n } else {\n throw new Error('Invalid data')\n }\n\n // Get the min version that can contain data\n var bestVersion = Version.getBestVersionForData(segments,\n errorCorrectionLevel)\n\n // If no version is found, data cannot be stored\n if (!bestVersion) {\n throw new Error('The amount of data is too big to be stored in a QR Code')\n }\n\n // If not specified, use min version as default\n if (!version) {\n version = bestVersion\n\n // Check if the specified version can contain the data\n } else if (version < bestVersion) {\n throw new Error('\\n' +\n 'The chosen QR Code version cannot contain this amount of data.\\n' +\n 'Minimum version required to store current data is: ' + bestVersion + '.\\n'\n )\n }\n\n var dataBits = createData(version, errorCorrectionLevel, segments)\n\n // Allocate matrix buffer\n var moduleCount = Utils.getSymbolSize(version)\n var modules = new BitMatrix(moduleCount)\n\n // Add function modules\n setupFinderPattern(modules, version)\n setupTimingPattern(modules)\n setupAlignmentPattern(modules, version)\n\n // Add temporary dummy bits for format info just to set them as reserved.\n // This is needed to prevent these bits from being masked by {@link MaskPattern.applyMask}\n // since the masking operation must be performed only on the encoding region.\n // These blocks will be replaced with correct values later in code.\n setupFormatInfo(modules, errorCorrectionLevel, 0)\n\n if (version >= 7) {\n setupVersionInfo(modules, version)\n }\n\n // Add data codewords\n setupData(modules, dataBits)\n\n if (isNaN(maskPattern)) {\n // Find best mask pattern\n maskPattern = MaskPattern.getBestMask(modules,\n setupFormatInfo.bind(null, modules, errorCorrectionLevel))\n }\n\n // Apply mask pattern\n MaskPattern.applyMask(maskPattern, modules)\n\n // Replace format info bits with correct values\n setupFormatInfo(modules, errorCorrectionLevel, maskPattern)\n\n return {\n modules: modules,\n version: version,\n errorCorrectionLevel: errorCorrectionLevel,\n maskPattern: maskPattern,\n segments: segments\n }\n}\n\n/**\n * QR Code\n *\n * @param {String | Array} data Input data\n * @param {Object} options Optional configurations\n * @param {Number} options.version QR Code version\n * @param {String} options.errorCorrectionLevel Error correction level\n * @param {Function} options.toSJISFunc Helper func to convert utf8 to sjis\n */\nexports.create = function create (data, options) {\n if (typeof data === 'undefined' || data === '') {\n throw new Error('No input text')\n }\n\n var errorCorrectionLevel = ECLevel.M\n var version\n var mask\n\n if (typeof options !== 'undefined') {\n // Use higher error correction level as default\n errorCorrectionLevel = ECLevel.from(options.errorCorrectionLevel, ECLevel.M)\n version = Version.from(options.version)\n mask = MaskPattern.from(options.maskPattern)\n\n if (options.toSJISFunc) {\n Utils.setToSJISFunction(options.toSJISFunc)\n }\n }\n\n return createSymbol(data, version, errorCorrectionLevel, mask)\n}\n","function hex2rgba (hex) {\n if (typeof hex === 'number') {\n hex = hex.toString()\n }\n\n if (typeof hex !== 'string') {\n throw new Error('Color should be defined as hex string')\n }\n\n var hexCode = hex.slice().replace('#', '').split('')\n if (hexCode.length < 3 || hexCode.length === 5 || hexCode.length > 8) {\n throw new Error('Invalid hex color: ' + hex)\n }\n\n // Convert from short to long form (fff -> ffffff)\n if (hexCode.length === 3 || hexCode.length === 4) {\n hexCode = Array.prototype.concat.apply([], hexCode.map(function (c) {\n return [c, c]\n }))\n }\n\n // Add default alpha value\n if (hexCode.length === 6) hexCode.push('F', 'F')\n\n var hexValue = parseInt(hexCode.join(''), 16)\n\n return {\n r: (hexValue >> 24) & 255,\n g: (hexValue >> 16) & 255,\n b: (hexValue >> 8) & 255,\n a: hexValue & 255,\n hex: '#' + hexCode.slice(0, 6).join('')\n }\n}\n\nexports.getOptions = function getOptions (options) {\n if (!options) options = {}\n if (!options.color) options.color = {}\n\n var margin = typeof options.margin === 'undefined' ||\n options.margin === null ||\n options.margin < 0 ? 4 : options.margin\n\n var width = options.width && options.width >= 21 ? options.width : undefined\n var scale = options.scale || 4\n\n return {\n width: width,\n scale: width ? 4 : scale,\n margin: margin,\n color: {\n dark: hex2rgba(options.color.dark || '#000000ff'),\n light: hex2rgba(options.color.light || '#ffffffff')\n },\n type: options.type,\n rendererOpts: options.rendererOpts || {}\n }\n}\n\nexports.getScale = function getScale (qrSize, opts) {\n return opts.width && opts.width >= qrSize + opts.margin * 2\n ? opts.width / (qrSize + opts.margin * 2)\n : opts.scale\n}\n\nexports.getImageWidth = function getImageWidth (qrSize, opts) {\n var scale = exports.getScale(qrSize, opts)\n return Math.floor((qrSize + opts.margin * 2) * scale)\n}\n\nexports.qrToImageData = function qrToImageData (imgData, qr, opts) {\n var size = qr.modules.size\n var data = qr.modules.data\n var scale = exports.getScale(size, opts)\n var symbolSize = Math.floor((size + opts.margin * 2) * scale)\n var scaledMargin = opts.margin * scale\n var palette = [opts.color.light, opts.color.dark]\n\n for (var i = 0; i < symbolSize; i++) {\n for (var j = 0; j < symbolSize; j++) {\n var posDst = (i * symbolSize + j) * 4\n var pxColor = opts.color.light\n\n if (i >= scaledMargin && j >= scaledMargin &&\n i < symbolSize - scaledMargin && j < symbolSize - scaledMargin) {\n var iSrc = Math.floor((i - scaledMargin) / scale)\n var jSrc = Math.floor((j - scaledMargin) / scale)\n pxColor = palette[data[iSrc * size + jSrc] ? 1 : 0]\n }\n\n imgData[posDst++] = pxColor.r\n imgData[posDst++] = pxColor.g\n imgData[posDst++] = pxColor.b\n imgData[posDst] = pxColor.a\n }\n }\n}\n","var Utils = require('./utils')\n\nfunction clearCanvas (ctx, canvas, size) {\n ctx.clearRect(0, 0, canvas.width, canvas.height)\n\n if (!canvas.style) canvas.style = {}\n canvas.height = size\n canvas.width = size\n canvas.style.height = size + 'px'\n canvas.style.width = size + 'px'\n}\n\nfunction getCanvasElement () {\n try {\n return document.createElement('canvas')\n } catch (e) {\n throw new Error('You need to specify a canvas element')\n }\n}\n\nexports.render = function render (qrData, canvas, options) {\n var opts = options\n var canvasEl = canvas\n\n if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n opts = canvas\n canvas = undefined\n }\n\n if (!canvas) {\n canvasEl = getCanvasElement()\n }\n\n opts = Utils.getOptions(opts)\n var size = Utils.getImageWidth(qrData.modules.size, opts)\n\n var ctx = canvasEl.getContext('2d')\n var image = ctx.createImageData(size, size)\n Utils.qrToImageData(image.data, qrData, opts)\n\n clearCanvas(ctx, canvasEl, size)\n ctx.putImageData(image, 0, 0)\n\n return canvasEl\n}\n\nexports.renderToDataURL = function renderToDataURL (qrData, canvas, options) {\n var opts = options\n\n if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n opts = canvas\n canvas = undefined\n }\n\n if (!opts) opts = {}\n\n var canvasEl = exports.render(qrData, canvas, opts)\n\n var type = opts.type || 'image/png'\n var rendererOpts = opts.rendererOpts || {}\n\n return canvasEl.toDataURL(type, rendererOpts.quality)\n}\n","var Utils = require('./utils')\n\nfunction getColorAttrib (color, attrib) {\n var alpha = color.a / 255\n var str = attrib + '=\"' + color.hex + '\"'\n\n return alpha < 1\n ? str + ' ' + attrib + '-opacity=\"' + alpha.toFixed(2).slice(1) + '\"'\n : str\n}\n\nfunction svgCmd (cmd, x, y) {\n var str = cmd + x\n if (typeof y !== 'undefined') str += ' ' + y\n\n return str\n}\n\nfunction qrToPath (data, size, margin) {\n var path = ''\n var moveBy = 0\n var newRow = false\n var lineLength = 0\n\n for (var i = 0; i < data.length; i++) {\n var col = Math.floor(i % size)\n var row = Math.floor(i / size)\n\n if (!col && !newRow) newRow = true\n\n if (data[i]) {\n lineLength++\n\n if (!(i > 0 && col > 0 && data[i - 1])) {\n path += newRow\n ? svgCmd('M', col + margin, 0.5 + row + margin)\n : svgCmd('m', moveBy, 0)\n\n moveBy = 0\n newRow = false\n }\n\n if (!(col + 1 < size && data[i + 1])) {\n path += svgCmd('h', lineLength)\n lineLength = 0\n }\n } else {\n moveBy++\n }\n }\n\n return path\n}\n\nexports.render = function render (qrData, options, cb) {\n var opts = Utils.getOptions(options)\n var size = qrData.modules.size\n var data = qrData.modules.data\n var qrcodesize = size + opts.margin * 2\n\n var bg = !opts.color.light.a\n ? ''\n : ''\n\n var path =\n ''\n\n var viewBox = 'viewBox=\"' + '0 0 ' + qrcodesize + ' ' + qrcodesize + '\"'\n\n var width = !opts.width ? '' : 'width=\"' + opts.width + '\" height=\"' + opts.width + '\" '\n\n var svgTag = '' + bg + path + '\\n'\n\n if (typeof cb === 'function') {\n cb(null, svgTag)\n }\n\n return svgTag\n}\n","\nvar canPromise = require('./can-promise')\n\nvar QRCode = require('./core/qrcode')\nvar CanvasRenderer = require('./renderer/canvas')\nvar SvgRenderer = require('./renderer/svg-tag.js')\n\nfunction renderCanvas (renderFunc, canvas, text, opts, cb) {\n var args = [].slice.call(arguments, 1)\n var argsNum = args.length\n var isLastArgCb = typeof args[argsNum - 1] === 'function'\n\n if (!isLastArgCb && !canPromise()) {\n throw new Error('Callback required as last argument')\n }\n\n if (isLastArgCb) {\n if (argsNum < 2) {\n throw new Error('Too few arguments provided')\n }\n\n if (argsNum === 2) {\n cb = text\n text = canvas\n canvas = opts = undefined\n } else if (argsNum === 3) {\n if (canvas.getContext && typeof cb === 'undefined') {\n cb = opts\n opts = undefined\n } else {\n cb = opts\n opts = text\n text = canvas\n canvas = undefined\n }\n }\n } else {\n if (argsNum < 1) {\n throw new Error('Too few arguments provided')\n }\n\n if (argsNum === 1) {\n text = canvas\n canvas = opts = undefined\n } else if (argsNum === 2 && !canvas.getContext) {\n opts = text\n text = canvas\n canvas = undefined\n }\n\n return new Promise(function (resolve, reject) {\n try {\n var data = QRCode.create(text, opts)\n resolve(renderFunc(data, canvas, opts))\n } catch (e) {\n reject(e)\n }\n })\n }\n\n try {\n var data = QRCode.create(text, opts)\n cb(null, renderFunc(data, canvas, opts))\n } catch (e) {\n cb(e)\n }\n}\n\nexports.create = QRCode.create\nexports.toCanvas = renderCanvas.bind(null, CanvasRenderer.render)\nexports.toDataURL = renderCanvas.bind(null, CanvasRenderer.renderToDataURL)\n\n// only svg for now.\nexports.toString = renderCanvas.bind(null, function (data, _, opts) {\n return SvgRenderer.render(data, opts)\n})\n","\nmodule.exports = function () {\n var selection = document.getSelection();\n if (!selection.rangeCount) {\n return function () {};\n }\n var active = document.activeElement;\n\n var ranges = [];\n for (var i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n\n switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML\n case 'INPUT':\n case 'TEXTAREA':\n active.blur();\n break;\n\n default:\n active = null;\n break;\n }\n\n selection.removeAllRanges();\n return function () {\n selection.type === 'Caret' &&\n selection.removeAllRanges();\n\n if (!selection.rangeCount) {\n ranges.forEach(function(range) {\n selection.addRange(range);\n });\n }\n\n active &&\n active.focus();\n };\n};\n","\"use strict\";\n\nvar deselectCurrent = require(\"toggle-selection\");\n\nvar clipboardToIE11Formatting = {\n \"text/plain\": \"Text\",\n \"text/html\": \"Url\",\n \"default\": \"Text\"\n}\n\nvar defaultMessage = \"Copy to clipboard: #{key}, Enter\";\n\nfunction format(message) {\n var copyKey = (/mac os x/i.test(navigator.userAgent) ? \"⌘\" : \"Ctrl\") + \"+C\";\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n}\n\nfunction copy(text, options) {\n var debug,\n message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n if (!options) {\n options = {};\n }\n debug = options.debug || false;\n try {\n reselectPrevious = deselectCurrent();\n\n range = document.createRange();\n selection = document.getSelection();\n\n mark = document.createElement(\"span\");\n mark.textContent = text;\n // avoid screen readers from reading out loud the text\n mark.ariaHidden = \"true\"\n // reset user styles for span element\n mark.style.all = \"unset\";\n // prevents scrolling to the end of the page\n mark.style.position = \"fixed\";\n mark.style.top = 0;\n mark.style.clip = \"rect(0, 0, 0, 0)\";\n // used to preserve spaces and line breaks\n mark.style.whiteSpace = \"pre\";\n // do not inherit user-select (it may be `none`)\n mark.style.webkitUserSelect = \"text\";\n mark.style.MozUserSelect = \"text\";\n mark.style.msUserSelect = \"text\";\n mark.style.userSelect = \"text\";\n mark.addEventListener(\"copy\", function(e) {\n e.stopPropagation();\n if (options.format) {\n e.preventDefault();\n if (typeof e.clipboardData === \"undefined\") { // IE 11\n debug && console.warn(\"unable to use e.clipboardData\");\n debug && console.warn(\"trying IE specific stuff\");\n window.clipboardData.clearData();\n var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting[\"default\"]\n window.clipboardData.setData(format, text);\n } else { // all other browsers\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n }\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n\n document.body.appendChild(mark);\n\n range.selectNodeContents(mark);\n selection.addRange(range);\n\n var successful = document.execCommand(\"copy\");\n if (!successful) {\n throw new Error(\"copy command was unsuccessful\");\n }\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using execCommand: \", err);\n debug && console.warn(\"trying IE specific stuff\");\n try {\n window.clipboardData.setData(options.format || \"text\", text);\n options.onCopy && options.onCopy(window.clipboardData);\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using clipboardData: \", err);\n debug && console.error(\"falling back to prompt\");\n message = format(\"message\" in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == \"function\") {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n reselectPrevious();\n }\n\n return success;\n}\n\nmodule.exports = copy;\n","var n,l,u,i,t,r,o,f,e={},c=[],s=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord/i;function a(n,l){for(var u in l)n[u]=l[u];return n}function v(n){var l=n.parentNode;l&&l.removeChild(n)}function h(n,l,u){var i,t=arguments,r={};for(i in l)\"key\"!==i&&\"ref\"!==i&&(r[i]=l[i]);if(arguments.length>3)for(u=[u],i=3;i2&&(l.children=c.slice.call(arguments,2)),u={},l)\"key\"!==i&&\"ref\"!==i&&(u[i]=l[i]);return p(n.type,u,l.key||n.key,l.ref||n.ref,null)}function M(n){var l={},u={__c:\"__cC\"+f++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var i,t=this;return this.getChildContext||(i=[],this.getChildContext=function(){return l[u.__c]=t,l},this.shouldComponentUpdate=function(n){t.props.value!==n.value&&i.some(function(l){l.context=n.value,g(l)})},this.sub=function(n){i.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){i.splice(i.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Consumer.contextType=u,u.Provider.__=u,u}n={__e:function(n,l){for(var u,i;l=l.__;)if((u=l.__c)&&!u.__)try{if(u.constructor&&null!=u.constructor.getDerivedStateFromError&&(i=!0,u.setState(u.constructor.getDerivedStateFromError(n))),null!=u.componentDidCatch&&(i=!0,u.componentDidCatch(n)),i)return g(u.__E=u)}catch(l){n=l}throw n}},l=function(n){return null!=n&&void 0===n.constructor},m.prototype.setState=function(n,l){var u;u=this.__s!==this.state?this.__s:this.__s=a({},this.state),\"function\"==typeof n&&(n=n(u,this.props)),n&&a(u,n),null!=n&&this.__v&&(l&&this.__h.push(l),g(this))},m.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),g(this))},m.prototype.render=d,u=[],i=0,t=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,o=e,f=0;export{H as render,I as hydrate,h as createElement,h,d as Fragment,y as createRef,l as isValidElement,m as Component,L as cloneElement,M as createContext,x as toChildArray,D as _unmount,n as options};\n//# sourceMappingURL=preact.module.js.map\n","import{options as n}from\"preact\";var t,u,r,i=0,o=[],c=n.__r,f=n.diffed,e=n.__c,a=n.unmount;function v(t,r){n.__h&&n.__h(u,t,i||r),i=0;var o=u.__H||(u.__H={__:[],__h:[]});return t>=o.__.length&&o.__.push({}),o.__[t]}function m(n){return i=1,p(E,n)}function p(n,r,i){var o=v(t++,2);return o.__c||(o.__c=u,o.__=[i?i(r):E(void 0,r),function(t){var u=n(o.__[0],t);o.__[0]!==u&&(o.__[0]=u,o.__c.setState({}))}]),o.__}function l(r,i){var o=v(t++,3);!n.__s&&x(o.__H,i)&&(o.__=r,o.__H=i,u.__H.__h.push(o))}function y(r,i){var o=v(t++,4);!n.__s&&x(o.__H,i)&&(o.__=r,o.__H=i,u.__h.push(o))}function d(n){return i=5,h(function(){return{current:n}},[])}function s(n,t,u){i=6,y(function(){\"function\"==typeof n?n(t()):n&&(n.current=t())},null==u?u:u.concat(n))}function h(n,u){var r=v(t++,7);return x(r.__H,u)?(r.__H=u,r.__h=n,r.__=n()):r.__}function T(n,t){return i=8,h(function(){return n},t)}function w(n){var r=u.context[n.__c],i=v(t++,9);return i.__c=n,r?(null==i.__&&(i.__=!0,r.sub(u)),r.props.value):n.__}function A(t,u){n.useDebugValue&&n.useDebugValue(u?u(t):t)}function F(n){var r=v(t++,10),i=m();return r.__=n,u.componentDidCatch||(u.componentDidCatch=function(n){r.__&&r.__(n),i[1](n)}),[i[0],function(){i[1](void 0)}]}function _(){o.some(function(t){if(t.__P)try{t.__H.__h.forEach(g),t.__H.__h.forEach(q),t.__H.__h=[]}catch(u){return t.__H.__h=[],n.__e(u,t.__v),!0}}),o=[]}function g(n){n.t&&n.t()}function q(n){var t=n.__();\"function\"==typeof t&&(n.t=t)}function x(n,t){return!n||t.some(function(t,u){return t!==n[u]})}function E(n,t){return\"function\"==typeof t?t(n):t}n.__r=function(n){c&&c(n),t=0,(u=n.__c).__H&&(u.__H.__h.forEach(g),u.__H.__h.forEach(q),u.__H.__h=[])},n.diffed=function(t){f&&f(t);var u=t.__c;if(u){var i=u.__H;i&&i.__h.length&&(1!==o.push(u)&&r===n.requestAnimationFrame||((r=n.requestAnimationFrame)||function(n){var t,u=function(){clearTimeout(r),cancelAnimationFrame(t),setTimeout(n)},r=setTimeout(u,100);\"undefined\"!=typeof window&&(t=requestAnimationFrame(u))})(_))}},n.__c=function(t,u){u.some(function(t){try{t.__h.forEach(g),t.__h=t.__h.filter(function(n){return!n.__||q(n)})}catch(r){u.some(function(n){n.__h&&(n.__h=[])}),u=[],n.__e(r,t.__v)}}),e&&e(t,u)},n.unmount=function(t){a&&a(t);var u=t.__c;if(u){var r=u.__H;if(r)try{r.__.forEach(function(n){return n.t&&n.t()})}catch(t){n.__e(t,u.__v)}}};export{m as useState,p as useReducer,l as useEffect,y as useLayoutEffect,d as useRef,s as useImperativeHandle,h as useMemo,T as useCallback,w as useContext,A as useDebugValue,F as useErrorBoundary};\n//# sourceMappingURL=hooks.module.js.map\n","import{useState as n,useReducer as t,useEffect as e,useLayoutEffect as r,useRef as o,useImperativeHandle as u,useMemo as i,useCallback as f,useContext as c,useDebugValue as a}from\"preact/hooks\";export*from\"preact/hooks\";import{Component as l,createElement as s,options as v,toChildArray as h,hydrate as p,render as d,_unmount as m,cloneElement as y,createRef as b,createContext as g,Fragment as x}from\"preact\";export{createElement,createContext,createRef,Fragment,Component}from\"preact\";function E(n,t){for(var e in t)n[e]=t[e];return n}function w(n,t){for(var e in n)if(\"__source\"!==e&&!(e in t))return!0;for(var r in t)if(\"__source\"!==r&&n[r]!==t[r])return!0;return!1}var C=function(n){var t,e;function r(t){var e;return(e=n.call(this,t)||this).isPureReactComponent=!0,e}return e=n,(t=r).prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e,r.prototype.shouldComponentUpdate=function(n,t){return w(this.props,n)||w(this.state,t)},r}(l);function _(n,t){function e(n){var e=this.props.ref,r=e==n.ref;return!r&&e&&(e.call?e(null):e.current=null),t?!t(this.props,n)||!r:w(this.props,n)}function r(t){return this.shouldComponentUpdate=e,s(n,E({},t))}return r.prototype.isReactComponent=!0,r.displayName=\"Memo(\"+(n.displayName||n.name)+\")\",r.t=!0,r}var A=v.__b;function S(n){function t(t){var e=E({},t);return delete e.ref,n(e,t.ref)}return t.prototype.isReactComponent=t.t=!0,t.displayName=\"ForwardRef(\"+(n.displayName||n.name)+\")\",t}v.__b=function(n){n.type&&n.type.t&&n.ref&&(n.props.ref=n.ref,n.ref=null),A&&A(n)};var k=function(n,t){return n?h(n).reduce(function(n,e,r){return n.concat(t(e,r))},[]):null},R={map:k,forEach:k,count:function(n){return n?h(n).length:0},only:function(n){if(1!==(n=h(n)).length)throw new Error(\"Children.only() expects only one child.\");return n[0]},toArray:h},F=v.__e;function N(n){return n&&((n=E({},n)).__c=null,n.__k=n.__k&&n.__k.map(N)),n}function U(){this.__u=0,this.o=null,this.__b=null}function M(n){var t=n.__.__c;return t&&t.u&&t.u(n)}function L(n){var t,e,r;function o(o){if(t||(t=n()).then(function(n){e=n.default||n},function(n){r=n}),r)throw r;if(!e)throw t;return s(e,o)}return o.displayName=\"Lazy\",o.t=!0,o}function O(){this.i=null,this.l=null}v.__e=function(n,t,e){if(n.then)for(var r,o=t;o=o.__;)if((r=o.__c)&&r.__c)return r.__c(n,t.__c);F(n,t,e)},(U.prototype=new l).__c=function(n,t){var e=this;null==e.o&&(e.o=[]),e.o.push(t);var r=M(e.__v),o=!1,u=function(){o||(o=!0,r?r(i):i())};t.__c=t.componentWillUnmount,t.componentWillUnmount=function(){u(),t.__c&&t.__c()};var i=function(){var n;if(!--e.__u)for(e.__v.__k[0]=e.state.u,e.setState({u:e.__b=null});n=e.o.pop();)n.forceUpdate()};e.__u++||e.setState({u:e.__b=e.__v.__k[0]}),n.then(u,u)},U.prototype.render=function(n,t){return this.__b&&(this.__v.__k[0]=N(this.__b),this.__b=null),[s(l,null,t.u?null:n.children),t.u&&n.fallback]};var P=function(n,t,e){if(++e[1]===e[0]&&n.l.delete(t),n.props.revealOrder&&(\"t\"!==n.props.revealOrder[0]||!n.l.size))for(e=n.i;e;){for(;e.length>3;)e.pop()();if(e[1] 8 ? 2.5 : 2.7) + \"vw\") : \"inherit\";\n return React.createElement(\"a\", {\n className: \"walletconnect-connect__button__icon_anchor\",\n href: href,\n onClick: onClick,\n rel: \"noopener noreferrer\",\n target: \"_blank\"\n }, React.createElement(\"div\", {\n className: \"walletconnect-connect__button__icon\",\n style: {\n background: (\"url('\" + logo + \"') \" + color),\n backgroundSize: \"100%\"\n }\n }), React.createElement(\"div\", {\n style: {\n fontSize: fontSize\n },\n className: \"walletconnect-connect__button__text\"\n }, name));\n}\n\nvar GRID_MIN_COUNT = 5;\nvar LINKS_PER_PAGE = 12;\n\nfunction LinkDisplay(props) {\n var android = browserUtils.isAndroid();\n var ref = React.useState(\"\");\n var input = ref[0];\n var setInput = ref[1];\n var ref$1 = React.useState(\"\");\n var filter = ref$1[0];\n var setFilter = ref$1[1];\n var ref$2 = React.useState(1);\n var page = ref$2[0];\n var setPage = ref$2[1];\n var links = filter ? props.links.filter(function (link) { return link.name.toLowerCase().includes(filter.toLowerCase()); }) : props.links;\n var errorMessage = props.errorMessage;\n var grid = filter || links.length > GRID_MIN_COUNT;\n var pages = Math.ceil(links.length / LINKS_PER_PAGE);\n var range = [(page - 1) * LINKS_PER_PAGE + 1, page * LINKS_PER_PAGE];\n var pageLinks = links.length ? links.filter(function (_, index) { return index + 1 >= range[0] && index + 1 <= range[1]; }) : [];\n var hasPaging = !!(!android && pages > 1);\n var filterTimeout = undefined;\n\n function handleInput(e) {\n setInput(e.target.value);\n clearTimeout(filterTimeout);\n\n if (e.target.value) {\n filterTimeout = setTimeout(function () {\n setFilter(e.target.value);\n setPage(1);\n }, 1000);\n } else {\n setInput(\"\");\n setFilter(\"\");\n setPage(1);\n }\n }\n\n return React.createElement(\"div\", null, React.createElement(\"p\", {\n id: WALLETCONNECT_CTA_TEXT_ID,\n className: \"walletconnect-qrcode__text\"\n }, android ? props.text.connect_mobile_wallet : props.text.choose_preferred_wallet), !android && React.createElement(\"input\", {\n className: \"walletconnect-search__input\",\n placeholder: \"Search\",\n value: input,\n onChange: handleInput\n }), React.createElement(\"div\", {\n className: (\"walletconnect-connect__buttons__wrapper\" + (android ? \"__android\" : grid && links.length ? \"__wrap\" : \"\"))\n }, !android ? pageLinks.length ? pageLinks.map(function (entry) {\n var color = entry.color;\n var name = entry.name;\n var shortName = entry.shortName;\n var logo = entry.logo;\n var href = browserUtils.formatIOSMobile(props.uri, entry);\n var handleClickIOS = React.useCallback(function () {\n browserUtils.saveMobileLinkInfo({\n name: name,\n href: href\n });\n }, [pageLinks]);\n return !grid ? React.createElement(WalletButton, {\n color: color,\n href: href,\n name: name,\n logo: logo,\n onClick: handleClickIOS\n }) : React.createElement(WalletIcon, {\n color: color,\n href: href,\n name: shortName || name,\n logo: logo,\n onClick: handleClickIOS\n });\n }) : React.createElement(React.Fragment, null, React.createElement(\"p\", null, errorMessage.length ? props.errorMessage : !!props.links.length && !links.length ? props.text.no_wallets_found : props.text.loading)) : React.createElement(ConnectButton, {\n name: props.text.connect,\n color: DEFAULT_BUTTON_COLOR,\n href: props.uri,\n onClick: React.useCallback(function () {\n browserUtils.saveMobileLinkInfo({\n name: \"Unknown\",\n href: props.uri\n });\n }, [])\n })), hasPaging && React.createElement(\"div\", {\n className: \"walletconnect-modal__footer\"\n }, Array(pages).fill(0).map(function (_, index) {\n var pageNumber = index + 1;\n var selected = page === pageNumber;\n return React.createElement(\"a\", {\n style: {\n margin: \"auto 10px\",\n fontWeight: selected ? \"bold\" : \"normal\"\n },\n onClick: function () { return setPage(pageNumber); }\n }, pageNumber);\n })));\n}\n\nfunction Notification(props) {\n var show = !!props.message.trim();\n return React.createElement(\"div\", {\n className: (\"walletconnect-qrcode__notification\" + (show ? \" notification__show\" : \"\"))\n }, props.message);\n}\n\nvar formatQRCodeImage = function (data) {\n try {\n var result = \"\";\n return Promise.resolve(QRCode.toString(data, {\n margin: 0,\n type: \"svg\"\n })).then(function (dataString) {\n if (typeof dataString === \"string\") {\n result = dataString.replace(\" 0) {\n return;\n }\n\n React.useEffect(function () {\n var initLinks = function () {\n try {\n if (android) { return Promise.resolve(); }\n setLoading(true);\n\n var _temp = _catch(function () {\n var url = props.qrcodeModalOptions && props.qrcodeModalOptions.registryUrl ? props.qrcodeModalOptions.registryUrl : browserUtils.getWalletRegistryUrl();\n return Promise.resolve(fetch(url)).then(function (registryResponse) {\n return Promise.resolve(registryResponse.json()).then(function (_registryResponse$jso) {\n var registry = _registryResponse$jso.listings;\n var platform = mobile ? \"mobile\" : \"desktop\";\n\n var _links = browserUtils.getMobileLinkRegistry(browserUtils.formatMobileRegistry(registry, platform), whitelist);\n\n setLoading(false);\n setFetched(true);\n setErrorMessage(!_links.length ? props.text.no_supported_wallets : \"\");\n setLinks(_links);\n var hasSingleLink = _links.length === 1;\n\n if (hasSingleLink) {\n setSingleLinkHref(browserUtils.formatIOSMobile(props.uri, _links[0]));\n setDisplayQRCode(true);\n }\n\n setHasSingleLink(hasSingleLink);\n });\n });\n }, function (e) {\n setLoading(false);\n setFetched(true);\n setErrorMessage(props.text.something_went_wrong);\n console.error(e);\n });\n\n return Promise.resolve(_temp && _temp.then ? _temp.then(function () {}) : void 0);\n } catch (e) {\n return Promise.reject(e);\n }\n };\n\n initLinks();\n });\n };\n\n getLinksIfNeeded();\n var rightSelected = mobile ? displayQRCode : !displayQRCode;\n return React.createElement(\"div\", {\n id: WALLETCONNECT_MODAL_ID,\n className: \"walletconnect-qrcode__base animated fadeIn\"\n }, React.createElement(\"div\", {\n className: \"walletconnect-modal__base\"\n }, React.createElement(Header, {\n onClose: props.onClose\n }), hasSingleLink && displayQRCode ? React.createElement(\"div\", {\n className: \"walletconnect-modal__single_wallet\"\n }, React.createElement(\"a\", {\n onClick: function () { return browserUtils.saveMobileLinkInfo({\n name: links[0].name,\n href: singleLinkHref\n }); },\n href: singleLinkHref,\n rel: \"noopener noreferrer\",\n target: \"_blank\"\n }, props.text.connect_with + \" \" + (hasSingleLink ? links[0].name : \"\") + \" ›\")) : android || loading || !loading && links.length ? React.createElement(\"div\", {\n className: (\"walletconnect-modal__mobile__toggle\" + (rightSelected ? \" right__selected\" : \"\"))\n }, React.createElement(\"div\", {\n className: \"walletconnect-modal__mobile__toggle_selector\"\n }), mobile ? React.createElement(React.Fragment, null, React.createElement(\"a\", {\n onClick: function () { return (setDisplayQRCode(false), getLinksIfNeeded()); }\n }, props.text.mobile), React.createElement(\"a\", {\n onClick: function () { return setDisplayQRCode(true); }\n }, props.text.qrcode)) : React.createElement(React.Fragment, null, React.createElement(\"a\", {\n onClick: function () { return setDisplayQRCode(true); }\n }, props.text.qrcode), React.createElement(\"a\", {\n onClick: function () { return (setDisplayQRCode(false), getLinksIfNeeded()); }\n }, props.text.desktop))) : null, React.createElement(\"div\", null, displayQRCode || !android && !loading && !links.length ? React.createElement(QRCodeDisplay, Object.assign({}, displayProps)) : React.createElement(LinkDisplay, Object.assign({}, displayProps,\n {links: links,\n errorMessage: errorMessage})))));\n}\n\nvar de = {\n choose_preferred_wallet: \"Wähle bevorzugte Wallet\",\n connect_mobile_wallet: \"Verbinde mit Mobile Wallet\",\n scan_qrcode_with_wallet: \"Scanne den QR-code mit einer WalletConnect kompatiblen Wallet\",\n connect: \"Verbinden\",\n qrcode: \"QR-Code\",\n mobile: \"Mobile\",\n desktop: \"Desktop\",\n copy_to_clipboard: \"In die Zwischenablage kopieren\",\n copied_to_clipboard: \"In die Zwischenablage kopiert!\",\n connect_with: \"Verbinden mit Hilfe von\",\n loading: \"Laden...\",\n something_went_wrong: \"Etwas ist schief gelaufen\",\n no_supported_wallets: \"Es gibt noch keine unterstützten Wallet\",\n no_wallets_found: \"keine Wallet gefunden\"\n};\n\nvar en = {\n choose_preferred_wallet: \"Choose your preferred wallet\",\n connect_mobile_wallet: \"Connect to Mobile Wallet\",\n scan_qrcode_with_wallet: \"Scan QR code with a WalletConnect-compatible wallet\",\n connect: \"Connect\",\n qrcode: \"QR Code\",\n mobile: \"Mobile\",\n desktop: \"Desktop\",\n copy_to_clipboard: \"Copy to clipboard\",\n copied_to_clipboard: \"Copied to clipboard!\",\n connect_with: \"Connect with\",\n loading: \"Loading...\",\n something_went_wrong: \"Something went wrong\",\n no_supported_wallets: \"There are no supported wallets yet\",\n no_wallets_found: \"No wallets found\"\n};\n\nvar es = {\n choose_preferred_wallet: \"Elige tu billetera preferida\",\n connect_mobile_wallet: \"Conectar a billetera móvil\",\n scan_qrcode_with_wallet: \"Escanea el código QR con una billetera compatible con WalletConnect\",\n connect: \"Conectar\",\n qrcode: \"Código QR\",\n mobile: \"Móvil\",\n desktop: \"Desktop\",\n copy_to_clipboard: \"Copiar\",\n copied_to_clipboard: \"Copiado!\",\n connect_with: \"Conectar mediante\",\n loading: \"Cargando...\",\n something_went_wrong: \"Algo salió mal\",\n no_supported_wallets: \"Todavía no hay billeteras compatibles\",\n no_wallets_found: \"No se encontraron billeteras\"\n};\n\nvar fr = {\n choose_preferred_wallet: \"Choisissez votre portefeuille préféré\",\n connect_mobile_wallet: \"Se connecter au portefeuille mobile\",\n scan_qrcode_with_wallet: \"Scannez le QR code avec un portefeuille compatible WalletConnect\",\n connect: \"Se connecter\",\n qrcode: \"QR Code\",\n mobile: \"Mobile\",\n desktop: \"Desktop\",\n copy_to_clipboard: \"Copier\",\n copied_to_clipboard: \"Copié!\",\n connect_with: \"Connectez-vous à l'aide de\",\n loading: \"Chargement...\",\n something_went_wrong: \"Quelque chose a mal tourné\",\n no_supported_wallets: \"Il n'y a pas encore de portefeuilles pris en charge\",\n no_wallets_found: \"Aucun portefeuille trouvé\"\n};\n\nvar ko = {\n choose_preferred_wallet: \"원하는 지갑을 선택하세요\",\n connect_mobile_wallet: \"모바일 지갑과 연결\",\n scan_qrcode_with_wallet: \"WalletConnect 지원 지갑에서 QR코드를 스캔하세요\",\n connect: \"연결\",\n qrcode: \"QR 코드\",\n mobile: \"모바일\",\n desktop: \"데스크탑\",\n copy_to_clipboard: \"클립보드에 복사\",\n copied_to_clipboard: \"클립보드에 복사되었습니다!\",\n connect_with: \"와 연결하다\",\n loading: \"로드 중...\",\n something_went_wrong: \"문제가 발생했습니다.\",\n no_supported_wallets: \"아직 지원되는 지갑이 없습니다\",\n no_wallets_found: \"지갑을 찾을 수 없습니다\"\n};\n\nvar pt = {\n choose_preferred_wallet: \"Escolha sua carteira preferida\",\n connect_mobile_wallet: \"Conectar-se à carteira móvel\",\n scan_qrcode_with_wallet: \"Ler o código QR com uma carteira compatível com WalletConnect\",\n connect: \"Conectar\",\n qrcode: \"Código QR\",\n mobile: \"Móvel\",\n desktop: \"Desktop\",\n copy_to_clipboard: \"Copiar\",\n copied_to_clipboard: \"Copiado!\",\n connect_with: \"Ligar por meio de\",\n loading: \"Carregamento...\",\n something_went_wrong: \"Algo correu mal\",\n no_supported_wallets: \"Ainda não há carteiras suportadas\",\n no_wallets_found: \"Nenhuma carteira encontrada\"\n};\n\nvar zh = {\n choose_preferred_wallet: \"选择你的钱包\",\n connect_mobile_wallet: \"连接至移动端钱包\",\n scan_qrcode_with_wallet: \"使用兼容 WalletConnect 的钱包扫描二维码\",\n connect: \"连接\",\n qrcode: \"二维码\",\n mobile: \"移动\",\n desktop: \"桌面\",\n copy_to_clipboard: \"复制到剪贴板\",\n copied_to_clipboard: \"复制到剪贴板成功!\",\n connect_with: \"通过以下方式连接\",\n loading: \"正在加载...\",\n something_went_wrong: \"出了问题\",\n no_supported_wallets: \"目前还没有支持的钱包\",\n no_wallets_found: \"没有找到钱包\"\n};\n\nvar fa = {\n choose_preferred_wallet: \"کیف پول مورد نظر خود را انتخاب کنید\",\n connect_mobile_wallet: \"به کیف پول موبایل وصل شوید\",\n scan_qrcode_with_wallet: \"کد QR را با یک کیف پول سازگار با WalletConnect اسکن کنید\",\n connect: \"اتصال\",\n qrcode: \"کد QR\",\n mobile: \"سیار\",\n desktop: \"دسکتاپ\",\n copy_to_clipboard: \"کپی به کلیپ بورد\",\n copied_to_clipboard: \"در کلیپ بورد کپی شد!\",\n connect_with: \"ارتباط با\",\n loading: \"...بارگذاری\",\n something_went_wrong: \"مشکلی پیش آمد\",\n no_supported_wallets: \"هنوز هیچ کیف پول پشتیبانی شده ای وجود ندارد\",\n no_wallets_found: \"هیچ کیف پولی پیدا نشد\"\n};\n\nvar languages = {\n de: de,\n en: en,\n es: es,\n fr: fr,\n ko: ko,\n pt: pt,\n zh: zh,\n fa: fa\n};\n\nfunction injectStyleSheet() {\n var doc = browserUtils.getDocumentOrThrow();\n var prev = doc.getElementById(WALLETCONNECT_STYLE_ID);\n\n if (prev) {\n doc.head.removeChild(prev);\n }\n\n var style = doc.createElement(\"style\");\n style.setAttribute(\"id\", WALLETCONNECT_STYLE_ID);\n style.innerText = WALLETCONNECT_STYLE_SHEET;\n doc.head.appendChild(style);\n}\n\nfunction renderWrapper() {\n var doc = browserUtils.getDocumentOrThrow();\n var wrapper = doc.createElement(\"div\");\n wrapper.setAttribute(\"id\", WALLETCONNECT_WRAPPER_ID);\n doc.body.appendChild(wrapper);\n return wrapper;\n}\n\nfunction triggerCloseAnimation() {\n var doc = browserUtils.getDocumentOrThrow();\n var modal = doc.getElementById(WALLETCONNECT_MODAL_ID);\n\n if (modal) {\n modal.className = modal.className.replace(\"fadeIn\", \"fadeOut\");\n setTimeout(function () {\n var wrapper = doc.getElementById(WALLETCONNECT_WRAPPER_ID);\n\n if (wrapper) {\n doc.body.removeChild(wrapper);\n }\n }, ANIMATION_DURATION);\n }\n}\n\nfunction getWrappedCallback(cb) {\n return function () {\n triggerCloseAnimation();\n\n if (cb) {\n cb();\n }\n };\n}\n\nfunction getText() {\n var lang = browserUtils.getNavigatorOrThrow().language.split(\"-\")[0] || \"en\";\n return languages[lang] || languages[\"en\"];\n}\n\nfunction open$1(uri, cb, qrcodeModalOptions) {\n injectStyleSheet();\n var wrapper = renderWrapper();\n React.render(React.createElement(Modal, {\n text: getText(),\n uri: uri,\n onClose: getWrappedCallback(cb),\n qrcodeModalOptions: qrcodeModalOptions\n }), wrapper);\n}\nfunction close$1() {\n triggerCloseAnimation();\n}\n\nvar isNode = function () { return typeof process !== \"undefined\" && typeof process.versions !== \"undefined\" && typeof process.versions.node !== \"undefined\"; };\n\nfunction open$2(uri, cb, qrcodeModalOptions) {\n console.log(uri);\n\n if (isNode()) {\n open(uri);\n } else {\n open$1(uri, cb, qrcodeModalOptions);\n }\n}\n\nfunction close$2() {\n if (isNode()) ; else {\n close$1();\n }\n}\n\nvar index = {\n open: open$2,\n close: close$2\n};\n\nmodule.exports = index;\n//# sourceMappingURL=index.js.map\n","const e=Symbol(),t=Symbol(),r=\"a\",n=\"w\";let o=(e,t)=>new Proxy(e,t);const s=Object.getPrototypeOf,c=new WeakMap,l=e=>e&&(c.has(e)?c.get(e):s(e)===Object.prototype||s(e)===Array.prototype),f=e=>\"object\"==typeof e&&null!==e,i=e=>{if(Array.isArray(e))return Array.from(e);const t=Object.getOwnPropertyDescriptors(e);return Object.values(t).forEach(e=>{e.configurable=!0}),Object.create(s(e),t)},u=e=>e[t]||e,a=(s,c,f,p)=>{if(!l(s))return s;let g=p&&p.get(s);if(!g){const e=u(s);g=(e=>Object.values(Object.getOwnPropertyDescriptors(e)).some(e=>!e.configurable&&!e.writable))(e)?[e,i(e)]:[e],null==p||p.set(s,g)}const[y,h]=g;let w=f&&f.get(y);return w&&w[1].f===!!h||(w=((o,s)=>{const c={f:s};let l=!1;const f=(e,t)=>{if(!l){let s=c[r].get(o);if(s||(s={},c[r].set(o,s)),e===n)s[n]=!0;else{let r=s[e];r||(r=new Set,s[e]=r),r.add(t)}}},i={get:(e,n)=>n===t?o:(f(\"k\",n),a(Reflect.get(e,n),c[r],c.c,c.t)),has:(t,n)=>n===e?(l=!0,c[r].delete(o),!0):(f(\"h\",n),Reflect.has(t,n)),getOwnPropertyDescriptor:(e,t)=>(f(\"o\",t),Reflect.getOwnPropertyDescriptor(e,t)),ownKeys:e=>(f(n),Reflect.ownKeys(e))};return s&&(i.set=i.deleteProperty=()=>!1),[i,c]})(y,!!h),w[1].p=o(h||y,w[0]),f&&f.set(y,w)),w[1][r]=c,w[1].c=f,w[1].t=p,w[1].p},p=(e,t,r,o)=>{if(Object.is(e,t))return!1;if(!f(e)||!f(t))return!0;const s=r.get(u(e));if(!s)return!0;if(o){const r=o.get(e);if(r&&r.n===t)return r.g;o.set(e,{n:t,g:!1})}let c=null;try{for(const r of s.h||[])if(c=Reflect.has(e,r)!==Reflect.has(t,r),c)return c;if(!0===s[n]){if(c=((e,t)=>{const r=Reflect.ownKeys(e),n=Reflect.ownKeys(t);return r.length!==n.length||r.some((e,t)=>e!==n[t])})(e,t),c)return c}else for(const r of s.o||[])if(c=!!Reflect.getOwnPropertyDescriptor(e,r)!=!!Reflect.getOwnPropertyDescriptor(t,r),c)return c;for(const n of s.k||[])if(c=p(e[n],t[n],r,o),c)return c;return null===c&&(c=!0),c}finally{o&&o.set(e,{n:t,g:c})}},g=t=>!!l(t)&&e in t,y=e=>l(e)&&e[t]||null,h=(e,t=!0)=>{c.set(e,t)},w=(e,t,r)=>{const o=[],s=new WeakSet,c=(e,l)=>{if(s.has(e))return;f(e)&&s.add(e);const i=f(e)&&t.get(u(e));if(i){var a,p;if(null==(a=i.h)||a.forEach(e=>{const t=`:has(${String(e)})`;o.push(l?[...l,t]:[t])}),!0===i[n]){const e=\":ownKeys\";o.push(l?[...l,e]:[e])}else{var g;null==(g=i.o)||g.forEach(e=>{const t=`:hasOwn(${String(e)})`;o.push(l?[...l,t]:[t])})}null==(p=i.k)||p.forEach(t=>{r&&!(\"value\"in(Object.getOwnPropertyDescriptor(e,t)||{}))||c(e[t],l?[...l,t]:[t])})}else l&&o.push(l)};return c(e),o},O=e=>{o=e};export{w as affectedToPathList,a as createProxy,y as getUntracked,p as isChanged,h as markToTrack,O as replaceNewProxy,g as trackMemo};\n//# sourceMappingURL=index.modern.mjs.map\n","import { markToTrack, getUntracked } from 'proxy-compare';\n\nconst isObject = (x) => typeof x === \"object\" && x !== null;\nconst proxyStateMap = /* @__PURE__ */ new WeakMap();\nconst refSet = /* @__PURE__ */ new WeakSet();\nconst buildProxyFunction = (objectIs = Object.is, newProxy = (target, handler) => new Proxy(target, handler), canProxy = (x) => isObject(x) && !refSet.has(x) && (Array.isArray(x) || !(Symbol.iterator in x)) && !(x instanceof WeakMap) && !(x instanceof WeakSet) && !(x instanceof Error) && !(x instanceof Number) && !(x instanceof Date) && !(x instanceof String) && !(x instanceof RegExp) && !(x instanceof ArrayBuffer), defaultHandlePromise = (promise) => {\n switch (promise.status) {\n case \"fulfilled\":\n return promise.value;\n case \"rejected\":\n throw promise.reason;\n default:\n throw promise;\n }\n}, snapCache = /* @__PURE__ */ new WeakMap(), createSnapshot = (target, version, handlePromise = defaultHandlePromise) => {\n const cache = snapCache.get(target);\n if ((cache == null ? void 0 : cache[0]) === version) {\n return cache[1];\n }\n const snap = Array.isArray(target) ? [] : Object.create(Object.getPrototypeOf(target));\n markToTrack(snap, true);\n snapCache.set(target, [version, snap]);\n Reflect.ownKeys(target).forEach((key) => {\n if (Object.getOwnPropertyDescriptor(snap, key)) {\n return;\n }\n const value = Reflect.get(target, key);\n const desc = {\n value,\n enumerable: true,\n // This is intentional to avoid copying with proxy-compare.\n // It's still non-writable, so it avoids assigning a value.\n configurable: true\n };\n if (refSet.has(value)) {\n markToTrack(value, false);\n } else if (value instanceof Promise) {\n delete desc.value;\n desc.get = () => handlePromise(value);\n } else if (proxyStateMap.has(value)) {\n const [target2, ensureVersion] = proxyStateMap.get(\n value\n );\n desc.value = createSnapshot(\n target2,\n ensureVersion(),\n handlePromise\n );\n }\n Object.defineProperty(snap, key, desc);\n });\n return Object.preventExtensions(snap);\n}, proxyCache = /* @__PURE__ */ new WeakMap(), versionHolder = [1, 1], proxyFunction = (initialObject) => {\n if (!isObject(initialObject)) {\n throw new Error(\"object required\");\n }\n const found = proxyCache.get(initialObject);\n if (found) {\n return found;\n }\n let version = versionHolder[0];\n const listeners = /* @__PURE__ */ new Set();\n const notifyUpdate = (op, nextVersion = ++versionHolder[0]) => {\n if (version !== nextVersion) {\n version = nextVersion;\n listeners.forEach((listener) => listener(op, nextVersion));\n }\n };\n let checkVersion = versionHolder[1];\n const ensureVersion = (nextCheckVersion = ++versionHolder[1]) => {\n if (checkVersion !== nextCheckVersion && !listeners.size) {\n checkVersion = nextCheckVersion;\n propProxyStates.forEach(([propProxyState]) => {\n const propVersion = propProxyState[1](nextCheckVersion);\n if (propVersion > version) {\n version = propVersion;\n }\n });\n }\n return version;\n };\n const createPropListener = (prop) => (op, nextVersion) => {\n const newOp = [...op];\n newOp[1] = [prop, ...newOp[1]];\n notifyUpdate(newOp, nextVersion);\n };\n const propProxyStates = /* @__PURE__ */ new Map();\n const addPropListener = (prop, propProxyState) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && propProxyStates.has(prop)) {\n throw new Error(\"prop listener already exists\");\n }\n if (listeners.size) {\n const remove = propProxyState[3](createPropListener(prop));\n propProxyStates.set(prop, [propProxyState, remove]);\n } else {\n propProxyStates.set(prop, [propProxyState]);\n }\n };\n const removePropListener = (prop) => {\n var _a;\n const entry = propProxyStates.get(prop);\n if (entry) {\n propProxyStates.delete(prop);\n (_a = entry[1]) == null ? void 0 : _a.call(entry);\n }\n };\n const addListener = (listener) => {\n listeners.add(listener);\n if (listeners.size === 1) {\n propProxyStates.forEach(([propProxyState, prevRemove], prop) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && prevRemove) {\n throw new Error(\"remove already exists\");\n }\n const remove = propProxyState[3](createPropListener(prop));\n propProxyStates.set(prop, [propProxyState, remove]);\n });\n }\n const removeListener = () => {\n listeners.delete(listener);\n if (listeners.size === 0) {\n propProxyStates.forEach(([propProxyState, remove], prop) => {\n if (remove) {\n remove();\n propProxyStates.set(prop, [propProxyState]);\n }\n });\n }\n };\n return removeListener;\n };\n const baseObject = Array.isArray(initialObject) ? [] : Object.create(Object.getPrototypeOf(initialObject));\n const handler = {\n deleteProperty(target, prop) {\n const prevValue = Reflect.get(target, prop);\n removePropListener(prop);\n const deleted = Reflect.deleteProperty(target, prop);\n if (deleted) {\n notifyUpdate([\"delete\", [prop], prevValue]);\n }\n return deleted;\n },\n set(target, prop, value, receiver) {\n const hasPrevValue = Reflect.has(target, prop);\n const prevValue = Reflect.get(target, prop, receiver);\n if (hasPrevValue && (objectIs(prevValue, value) || proxyCache.has(value) && objectIs(prevValue, proxyCache.get(value)))) {\n return true;\n }\n removePropListener(prop);\n if (isObject(value)) {\n value = getUntracked(value) || value;\n }\n let nextValue = value;\n if (value instanceof Promise) {\n value.then((v) => {\n value.status = \"fulfilled\";\n value.value = v;\n notifyUpdate([\"resolve\", [prop], v]);\n }).catch((e) => {\n value.status = \"rejected\";\n value.reason = e;\n notifyUpdate([\"reject\", [prop], e]);\n });\n } else {\n if (!proxyStateMap.has(value) && canProxy(value)) {\n nextValue = proxyFunction(value);\n }\n const childProxyState = !refSet.has(nextValue) && proxyStateMap.get(nextValue);\n if (childProxyState) {\n addPropListener(prop, childProxyState);\n }\n }\n Reflect.set(target, prop, nextValue, receiver);\n notifyUpdate([\"set\", [prop], value, prevValue]);\n return true;\n }\n };\n const proxyObject = newProxy(baseObject, handler);\n proxyCache.set(initialObject, proxyObject);\n const proxyState = [\n baseObject,\n ensureVersion,\n createSnapshot,\n addListener\n ];\n proxyStateMap.set(proxyObject, proxyState);\n Reflect.ownKeys(initialObject).forEach((key) => {\n const desc = Object.getOwnPropertyDescriptor(\n initialObject,\n key\n );\n if (\"value\" in desc) {\n proxyObject[key] = initialObject[key];\n delete desc.value;\n delete desc.writable;\n }\n Object.defineProperty(baseObject, key, desc);\n });\n return proxyObject;\n}) => [\n // public functions\n proxyFunction,\n // shared state\n proxyStateMap,\n refSet,\n // internal things\n objectIs,\n newProxy,\n canProxy,\n defaultHandlePromise,\n snapCache,\n createSnapshot,\n proxyCache,\n versionHolder\n];\nconst [defaultProxyFunction] = buildProxyFunction();\nfunction proxy(initialObject = {}) {\n return defaultProxyFunction(initialObject);\n}\nfunction getVersion(proxyObject) {\n const proxyState = proxyStateMap.get(proxyObject);\n return proxyState == null ? void 0 : proxyState[1]();\n}\nfunction subscribe(proxyObject, callback, notifyInSync) {\n const proxyState = proxyStateMap.get(proxyObject);\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && !proxyState) {\n console.warn(\"Please use proxy object\");\n }\n let promise;\n const ops = [];\n const addListener = proxyState[3];\n let isListenerActive = false;\n const listener = (op) => {\n ops.push(op);\n if (notifyInSync) {\n callback(ops.splice(0));\n return;\n }\n if (!promise) {\n promise = Promise.resolve().then(() => {\n promise = void 0;\n if (isListenerActive) {\n callback(ops.splice(0));\n }\n });\n }\n };\n const removeListener = addListener(listener);\n isListenerActive = true;\n return () => {\n isListenerActive = false;\n removeListener();\n };\n}\nfunction snapshot(proxyObject, handlePromise) {\n const proxyState = proxyStateMap.get(proxyObject);\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && !proxyState) {\n console.warn(\"Please use proxy object\");\n }\n const [target, ensureVersion, createSnapshot] = proxyState;\n return createSnapshot(target, ensureVersion(), handlePromise);\n}\nfunction ref(obj) {\n refSet.add(obj);\n return obj;\n}\nconst unstable_buildProxyFunction = buildProxyFunction;\n\nexport { getVersion, proxy, ref, snapshot, subscribe, unstable_buildProxyFunction };\n","import { proxy, subscribe, snapshot } from 'valtio/vanilla';\n\nconst state$7 = proxy({\n history: [\"ConnectWallet\"],\n view: \"ConnectWallet\",\n data: void 0\n});\nconst RouterCtrl = {\n state: state$7,\n subscribe(callback) {\n return subscribe(state$7, () => callback(state$7));\n },\n push(view, data) {\n if (view !== state$7.view) {\n state$7.view = view;\n if (data) {\n state$7.data = data;\n }\n state$7.history.push(view);\n }\n },\n reset(view) {\n state$7.view = view;\n state$7.history = [view];\n },\n replace(view) {\n if (state$7.history.length > 1) {\n state$7.history[state$7.history.length - 1] = view;\n state$7.view = view;\n }\n },\n goBack() {\n if (state$7.history.length > 1) {\n state$7.history.pop();\n const [last] = state$7.history.slice(-1);\n state$7.view = last;\n }\n },\n setData(data) {\n state$7.data = data;\n }\n};\n\nconst CoreUtil = {\n WALLETCONNECT_DEEPLINK_CHOICE: \"WALLETCONNECT_DEEPLINK_CHOICE\",\n WCM_VERSION: \"WCM_VERSION\",\n RECOMMENDED_WALLET_AMOUNT: 9,\n isMobile() {\n if (typeof window !== \"undefined\") {\n return Boolean(\n window.matchMedia(\"(pointer:coarse)\").matches || /Android|webOS|iPhone|iPad|iPod|BlackBerry|Opera Mini/u.test(navigator.userAgent)\n );\n }\n return false;\n },\n isAndroid() {\n return CoreUtil.isMobile() && navigator.userAgent.toLowerCase().includes(\"android\");\n },\n isIos() {\n const ua = navigator.userAgent.toLowerCase();\n return CoreUtil.isMobile() && (ua.includes(\"iphone\") || ua.includes(\"ipad\"));\n },\n isHttpUrl(url) {\n return url.startsWith(\"http://\") || url.startsWith(\"https://\");\n },\n isArray(data) {\n return Array.isArray(data) && data.length > 0;\n },\n isTelegram() {\n return typeof window !== \"undefined\" && // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (Boolean(window.TelegramWebviewProxy) || // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Boolean(window.Telegram) || // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Boolean(window.TelegramWebviewProxyProto));\n },\n formatNativeUrl(appUrl, wcUri, name) {\n if (CoreUtil.isHttpUrl(appUrl)) {\n return this.formatUniversalUrl(appUrl, wcUri, name);\n }\n let safeAppUrl = appUrl;\n if (!safeAppUrl.includes(\"://\")) {\n safeAppUrl = appUrl.replaceAll(\"/\", \"\").replaceAll(\":\", \"\");\n safeAppUrl = `${safeAppUrl}://`;\n }\n if (!safeAppUrl.endsWith(\"/\")) {\n safeAppUrl = `${safeAppUrl}/`;\n }\n this.setWalletConnectDeepLink(safeAppUrl, name);\n const encodedWcUrl = encodeURIComponent(wcUri);\n return `${safeAppUrl}wc?uri=${encodedWcUrl}`;\n },\n formatUniversalUrl(appUrl, wcUri, name) {\n if (!CoreUtil.isHttpUrl(appUrl)) {\n return this.formatNativeUrl(appUrl, wcUri, name);\n }\n let safeAppUrl = appUrl;\n if (safeAppUrl.startsWith(\"https://t.me\")) {\n const formattedUri = Buffer.from(wcUri).toString(\"base64\").replace(/[=]/g, \"\");\n if (safeAppUrl.endsWith(\"/\")) {\n safeAppUrl = safeAppUrl.slice(0, -1);\n }\n this.setWalletConnectDeepLink(safeAppUrl, name);\n const url = new URL(safeAppUrl);\n url.searchParams.set(\"startapp\", formattedUri);\n const link = url.toString();\n return link;\n }\n if (!safeAppUrl.endsWith(\"/\")) {\n safeAppUrl = `${safeAppUrl}/`;\n }\n this.setWalletConnectDeepLink(safeAppUrl, name);\n const encodedWcUrl = encodeURIComponent(wcUri);\n return `${safeAppUrl}wc?uri=${encodedWcUrl}`;\n },\n async wait(miliseconds) {\n return new Promise((resolve) => {\n setTimeout(resolve, miliseconds);\n });\n },\n openHref(href, target) {\n const adjustedTarget = this.isTelegram() ? \"_blank\" : target;\n window.open(href, adjustedTarget, \"noreferrer noopener\");\n },\n setWalletConnectDeepLink(href, name) {\n try {\n localStorage.setItem(CoreUtil.WALLETCONNECT_DEEPLINK_CHOICE, JSON.stringify({ href, name }));\n } catch (e) {\n console.info(\"Unable to set WalletConnect deep link\");\n }\n },\n setWalletConnectAndroidDeepLink(wcUri) {\n try {\n const [href] = wcUri.split(\"?\");\n localStorage.setItem(\n CoreUtil.WALLETCONNECT_DEEPLINK_CHOICE,\n JSON.stringify({ href, name: \"Android\" })\n );\n } catch (e) {\n console.info(\"Unable to set WalletConnect android deep link\");\n }\n },\n removeWalletConnectDeepLink() {\n try {\n localStorage.removeItem(CoreUtil.WALLETCONNECT_DEEPLINK_CHOICE);\n } catch (e) {\n console.info(\"Unable to remove WalletConnect deep link\");\n }\n },\n setModalVersionInStorage() {\n try {\n if (typeof localStorage !== \"undefined\") {\n localStorage.setItem(CoreUtil.WCM_VERSION, \"2.7.0\");\n }\n } catch (e) {\n console.info(\"Unable to set Web3Modal version in storage\");\n }\n },\n getWalletRouterData() {\n var _a;\n const routerData = (_a = RouterCtrl.state.data) == null ? void 0 : _a.Wallet;\n if (!routerData) {\n throw new Error('Missing \"Wallet\" view data');\n }\n return routerData;\n }\n};\n\nconst isEnabled = typeof location !== \"undefined\" && (location.hostname.includes(\"localhost\") || location.protocol.includes(\"https\"));\nconst state$6 = proxy({\n enabled: isEnabled,\n userSessionId: \"\",\n events: [],\n connectedWalletId: void 0\n});\nconst EventsCtrl = {\n state: state$6,\n subscribe(callback) {\n return subscribe(state$6.events, () => callback(snapshot(state$6.events[state$6.events.length - 1])));\n },\n initialize() {\n if (state$6.enabled && typeof (crypto == null ? void 0 : crypto.randomUUID) !== \"undefined\") {\n state$6.userSessionId = crypto.randomUUID();\n }\n },\n setConnectedWalletId(connectedWalletId) {\n state$6.connectedWalletId = connectedWalletId;\n },\n click(data) {\n if (state$6.enabled) {\n const event = {\n type: \"CLICK\",\n name: data.name,\n userSessionId: state$6.userSessionId,\n timestamp: Date.now(),\n data\n };\n state$6.events.push(event);\n }\n },\n track(data) {\n if (state$6.enabled) {\n const event = {\n type: \"TRACK\",\n name: data.name,\n userSessionId: state$6.userSessionId,\n timestamp: Date.now(),\n data\n };\n state$6.events.push(event);\n }\n },\n view(data) {\n if (state$6.enabled) {\n const event = {\n type: \"VIEW\",\n name: data.name,\n userSessionId: state$6.userSessionId,\n timestamp: Date.now(),\n data\n };\n state$6.events.push(event);\n }\n }\n};\n\nconst state$5 = proxy({\n chains: void 0,\n walletConnectUri: void 0,\n isAuth: false,\n isCustomDesktop: false,\n isCustomMobile: false,\n isDataLoaded: false,\n isUiLoaded: false\n});\nconst OptionsCtrl = {\n state: state$5,\n subscribe(callback) {\n return subscribe(state$5, () => callback(state$5));\n },\n setChains(chains) {\n state$5.chains = chains;\n },\n setWalletConnectUri(walletConnectUri) {\n state$5.walletConnectUri = walletConnectUri;\n },\n setIsCustomDesktop(isCustomDesktop) {\n state$5.isCustomDesktop = isCustomDesktop;\n },\n setIsCustomMobile(isCustomMobile) {\n state$5.isCustomMobile = isCustomMobile;\n },\n setIsDataLoaded(isDataLoaded) {\n state$5.isDataLoaded = isDataLoaded;\n },\n setIsUiLoaded(isUiLoaded) {\n state$5.isUiLoaded = isUiLoaded;\n },\n setIsAuth(isAuth) {\n state$5.isAuth = isAuth;\n }\n};\n\nconst state$4 = proxy({\n projectId: \"\",\n mobileWallets: void 0,\n desktopWallets: void 0,\n walletImages: void 0,\n chains: void 0,\n enableAuthMode: false,\n enableExplorer: true,\n explorerExcludedWalletIds: void 0,\n explorerRecommendedWalletIds: void 0,\n termsOfServiceUrl: void 0,\n privacyPolicyUrl: void 0\n});\nconst ConfigCtrl = {\n state: state$4,\n subscribe(callback) {\n return subscribe(state$4, () => callback(state$4));\n },\n setConfig(config) {\n var _a, _b;\n EventsCtrl.initialize();\n OptionsCtrl.setChains(config.chains);\n OptionsCtrl.setIsAuth(Boolean(config.enableAuthMode));\n OptionsCtrl.setIsCustomMobile(Boolean((_a = config.mobileWallets) == null ? void 0 : _a.length));\n OptionsCtrl.setIsCustomDesktop(Boolean((_b = config.desktopWallets) == null ? void 0 : _b.length));\n CoreUtil.setModalVersionInStorage();\n Object.assign(state$4, config);\n }\n};\n\nvar __defProp$2 = Object.defineProperty;\nvar __getOwnPropSymbols$2 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$2 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$2 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$2 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$2.call(b, prop))\n __defNormalProp$2(a, prop, b[prop]);\n if (__getOwnPropSymbols$2)\n for (var prop of __getOwnPropSymbols$2(b)) {\n if (__propIsEnum$2.call(b, prop))\n __defNormalProp$2(a, prop, b[prop]);\n }\n return a;\n};\nconst W3M_API = \"https://explorer-api.walletconnect.com\";\nconst SDK_TYPE = \"wcm\";\nconst SDK_VERSION = `js-${\"2.7.0\"}`;\nasync function fetchListings(endpoint, params) {\n const allParams = __spreadValues$2({ sdkType: SDK_TYPE, sdkVersion: SDK_VERSION }, params);\n const url = new URL(endpoint, W3M_API);\n url.searchParams.append(\"projectId\", ConfigCtrl.state.projectId);\n Object.entries(allParams).forEach(([key, value]) => {\n if (value) {\n url.searchParams.append(key, String(value));\n }\n });\n const request = await fetch(url);\n return request.json();\n}\nconst ExplorerUtil = {\n async getDesktopListings(params) {\n return fetchListings(\"/w3m/v1/getDesktopListings\", params);\n },\n async getMobileListings(params) {\n return fetchListings(\"/w3m/v1/getMobileListings\", params);\n },\n async getInjectedListings(params) {\n return fetchListings(\"/w3m/v1/getInjectedListings\", params);\n },\n async getAllListings(params) {\n return fetchListings(\"/w3m/v1/getAllListings\", params);\n },\n getWalletImageUrl(imageId) {\n return `${W3M_API}/w3m/v1/getWalletImage/${imageId}?projectId=${ConfigCtrl.state.projectId}&sdkType=${SDK_TYPE}&sdkVersion=${SDK_VERSION}`;\n },\n getAssetImageUrl(imageId) {\n return `${W3M_API}/w3m/v1/getAssetImage/${imageId}?projectId=${ConfigCtrl.state.projectId}&sdkType=${SDK_TYPE}&sdkVersion=${SDK_VERSION}`;\n }\n};\n\nvar __defProp$1 = Object.defineProperty;\nvar __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$1 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$1 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$1 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$1.call(b, prop))\n __defNormalProp$1(a, prop, b[prop]);\n if (__getOwnPropSymbols$1)\n for (var prop of __getOwnPropSymbols$1(b)) {\n if (__propIsEnum$1.call(b, prop))\n __defNormalProp$1(a, prop, b[prop]);\n }\n return a;\n};\nconst isMobile = CoreUtil.isMobile();\nconst state$3 = proxy({\n wallets: { listings: [], total: 0, page: 1 },\n search: { listings: [], total: 0, page: 1 },\n recomendedWallets: []\n});\nconst ExplorerCtrl = {\n state: state$3,\n async getRecomendedWallets() {\n const { explorerRecommendedWalletIds, explorerExcludedWalletIds } = ConfigCtrl.state;\n if (explorerRecommendedWalletIds === \"NONE\" || explorerExcludedWalletIds === \"ALL\" && !explorerRecommendedWalletIds) {\n return state$3.recomendedWallets;\n }\n if (CoreUtil.isArray(explorerRecommendedWalletIds)) {\n const recommendedIds = explorerRecommendedWalletIds.join(\",\");\n const params = { recommendedIds };\n const { listings } = await ExplorerUtil.getAllListings(params);\n const listingsArr = Object.values(listings);\n listingsArr.sort((a, b) => {\n const aIndex = explorerRecommendedWalletIds.indexOf(a.id);\n const bIndex = explorerRecommendedWalletIds.indexOf(b.id);\n return aIndex - bIndex;\n });\n state$3.recomendedWallets = listingsArr;\n } else {\n const { chains, isAuth } = OptionsCtrl.state;\n const chainsFilter = chains == null ? void 0 : chains.join(\",\");\n const isExcluded = CoreUtil.isArray(explorerExcludedWalletIds);\n const params = {\n page: 1,\n sdks: isAuth ? \"auth_v1\" : void 0,\n entries: CoreUtil.RECOMMENDED_WALLET_AMOUNT,\n chains: chainsFilter,\n version: 2,\n excludedIds: isExcluded ? explorerExcludedWalletIds.join(\",\") : void 0\n };\n const { listings } = isMobile ? await ExplorerUtil.getMobileListings(params) : await ExplorerUtil.getDesktopListings(params);\n state$3.recomendedWallets = Object.values(listings);\n }\n return state$3.recomendedWallets;\n },\n async getWallets(params) {\n const extendedParams = __spreadValues$1({}, params);\n const { explorerRecommendedWalletIds, explorerExcludedWalletIds } = ConfigCtrl.state;\n const { recomendedWallets } = state$3;\n if (explorerExcludedWalletIds === \"ALL\") {\n return state$3.wallets;\n }\n if (recomendedWallets.length) {\n extendedParams.excludedIds = recomendedWallets.map((wallet) => wallet.id).join(\",\");\n } else if (CoreUtil.isArray(explorerRecommendedWalletIds)) {\n extendedParams.excludedIds = explorerRecommendedWalletIds.join(\",\");\n }\n if (CoreUtil.isArray(explorerExcludedWalletIds)) {\n extendedParams.excludedIds = [extendedParams.excludedIds, explorerExcludedWalletIds].filter(Boolean).join(\",\");\n }\n if (OptionsCtrl.state.isAuth) {\n extendedParams.sdks = \"auth_v1\";\n }\n const { page, search } = params;\n const { listings: listingsObj, total } = isMobile ? await ExplorerUtil.getMobileListings(extendedParams) : await ExplorerUtil.getDesktopListings(extendedParams);\n const listings = Object.values(listingsObj);\n const type = search ? \"search\" : \"wallets\";\n state$3[type] = {\n listings: [...state$3[type].listings, ...listings],\n total,\n page: page != null ? page : 1\n };\n return { listings, total };\n },\n getWalletImageUrl(imageId) {\n return ExplorerUtil.getWalletImageUrl(imageId);\n },\n getAssetImageUrl(imageId) {\n return ExplorerUtil.getAssetImageUrl(imageId);\n },\n resetSearch() {\n state$3.search = { listings: [], total: 0, page: 1 };\n }\n};\n\nconst state$2 = proxy({\n open: false\n});\nconst ModalCtrl = {\n state: state$2,\n subscribe(callback) {\n return subscribe(state$2, () => callback(state$2));\n },\n async open(options) {\n return new Promise((resolve) => {\n const { isUiLoaded, isDataLoaded } = OptionsCtrl.state;\n CoreUtil.removeWalletConnectDeepLink();\n OptionsCtrl.setWalletConnectUri(options == null ? void 0 : options.uri);\n OptionsCtrl.setChains(options == null ? void 0 : options.chains);\n RouterCtrl.reset(\"ConnectWallet\");\n if (isUiLoaded && isDataLoaded) {\n state$2.open = true;\n resolve();\n } else {\n const interval = setInterval(() => {\n const opts = OptionsCtrl.state;\n if (opts.isUiLoaded && opts.isDataLoaded) {\n clearInterval(interval);\n state$2.open = true;\n resolve();\n }\n }, 200);\n }\n });\n },\n close() {\n state$2.open = false;\n }\n};\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nfunction isDarkMode() {\n return typeof matchMedia !== \"undefined\" && matchMedia(\"(prefers-color-scheme: dark)\").matches;\n}\nconst state$1 = proxy({\n themeMode: isDarkMode() ? \"dark\" : \"light\"\n});\nconst ThemeCtrl = {\n state: state$1,\n subscribe(callback) {\n return subscribe(state$1, () => callback(state$1));\n },\n setThemeConfig(theme) {\n const { themeMode, themeVariables } = theme;\n if (themeMode) {\n state$1.themeMode = themeMode;\n }\n if (themeVariables) {\n state$1.themeVariables = __spreadValues({}, themeVariables);\n }\n }\n};\n\nconst state = proxy({\n open: false,\n message: \"\",\n variant: \"success\"\n});\nconst ToastCtrl = {\n state,\n subscribe(callback) {\n return subscribe(state, () => callback(state));\n },\n openToast(message, variant) {\n state.open = true;\n state.message = message;\n state.variant = variant;\n },\n closeToast() {\n state.open = false;\n }\n};\n\nexport { ConfigCtrl, CoreUtil, EventsCtrl, ExplorerCtrl, ModalCtrl, OptionsCtrl, RouterCtrl, ThemeCtrl, ToastCtrl };\n//# sourceMappingURL=index.js.map\n","import { ModalCtrl, ThemeCtrl, ConfigCtrl, OptionsCtrl } from '@walletconnect/modal-core';\n\nclass WalletConnectModal {\n constructor(config) {\n this.openModal = ModalCtrl.open;\n this.closeModal = ModalCtrl.close;\n this.subscribeModal = ModalCtrl.subscribe;\n this.setTheme = ThemeCtrl.setThemeConfig;\n ThemeCtrl.setThemeConfig(config);\n ConfigCtrl.setConfig(config);\n this.initUi();\n }\n async initUi() {\n if (typeof window !== \"undefined\") {\n await import('@walletconnect/modal-ui');\n const modal = document.createElement(\"wcm-modal\");\n document.body.insertAdjacentElement(\"beforeend\", modal);\n OptionsCtrl.setIsUiLoaded(true);\n }\n }\n}\n\nexport { WalletConnectModal };\n//# sourceMappingURL=index.js.map\n","export class DefaultLogger {\n constructor(logLevel = 'info') {\n this.logLevel = 'info';\n this.logLevel = logLevel;\n }\n setLogLevel(level) {\n this.logLevel = level;\n }\n getLogLevel() {\n return this.logLevel;\n }\n error(message, ...args) {\n if (['error', 'warn', 'info', 'debug'].includes(this.logLevel)) {\n console.error(`[ERROR] ${message}`, ...args);\n }\n }\n warn(message, ...args) {\n if (['warn', 'info', 'debug'].includes(this.logLevel)) {\n console.warn(`[WARN] ${message}`, ...args);\n }\n }\n info(message, ...args) {\n if (['info', 'debug'].includes(this.logLevel)) {\n console.info(`[INFO] ${message}`, ...args);\n }\n }\n debug(message, ...args) {\n if (this.logLevel === 'debug') {\n console.debug(`[DEBUG] ${message}`, ...args);\n }\n }\n}\n","export class SessionNotFoundError extends Error {\n constructor(message) {\n super(message);\n this.name = 'SessionNotFoundError';\n }\n}\n","/*\n *\n * Hedera Wallet Connect\n *\n * Copyright (C) 2023 Hedera Hashgraph, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nimport { AccountBalance, AccountId, AccountInfo, LedgerId, SignerSignature, Transaction, TransactionRecord, Client, PublicKey, TransactionId, TransactionResponse, Query, AccountRecordsQuery, AccountInfoQuery, AccountBalanceQuery, TransactionReceiptQuery, TransactionReceipt, TransactionRecordQuery, } from '@hashgraph/sdk';\nimport { proto } from '@hashgraph/proto';\nimport { HederaJsonRpcMethod, base64StringToSignatureMap, base64StringToUint8Array, ledgerIdToCAIPChainId, queryToBase64String, transactionBodyToBase64String, transactionToBase64String, transactionToTransactionBody, extensionOpen, Uint8ArrayToBase64String, Uint8ArrayToString, } from '../shared';\nimport { DefaultLogger } from '../shared/logger';\nimport { SessionNotFoundError } from './SessionNotFoundError';\nconst clients = {};\nexport class DAppSigner {\n constructor(accountId, signClient, topic, ledgerId = LedgerId.MAINNET, extensionId, logLevel = 'debug') {\n this.accountId = accountId;\n this.signClient = signClient;\n this.topic = topic;\n this.ledgerId = ledgerId;\n this.extensionId = extensionId;\n this.logger = new DefaultLogger(logLevel);\n }\n /**\n * Sets the logging level for the DAppSigner\n * @param level - The logging level to set\n */\n setLogLevel(level) {\n if (this.logger instanceof DefaultLogger) {\n this.logger.setLogLevel(level);\n }\n }\n _getHederaClient() {\n const ledgerIdString = this.ledgerId.toString();\n if (!clients[ledgerIdString]) {\n clients[ledgerIdString] = Client.forName(ledgerIdString);\n }\n return clients[ledgerIdString];\n }\n get _signerAccountId() {\n return `${ledgerIdToCAIPChainId(this.ledgerId)}:${this.accountId.toString()}`;\n }\n _getRandomNodes(numberOfNodes) {\n const allNodes = Object.values(this._getHederaClient().network).map((o) => typeof o === 'string' ? AccountId.fromString(o) : o);\n // shuffle nodes\n for (let i = allNodes.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [allNodes[i], allNodes[j]] = [allNodes[j], allNodes[i]];\n }\n return allNodes.slice(0, numberOfNodes);\n }\n request(request) {\n var _a, _b;\n // Avoid a wallet call if the session is no longer valid\n if (!((_b = (_a = this === null || this === void 0 ? void 0 : this.signClient) === null || _a === void 0 ? void 0 : _a.session) === null || _b === void 0 ? void 0 : _b.get(this.topic))) {\n this.logger.error('Session no longer exists, signer will be removed. Please reconnect to the wallet.');\n // Notify DAppConnector to remove this signer\n this.signClient.emit({\n topic: this.topic,\n event: {\n name: 'session_delete',\n data: { topic: this.topic },\n },\n chainId: ledgerIdToCAIPChainId(this.ledgerId),\n });\n throw new SessionNotFoundError('Session no longer exists. Please reconnect to the wallet.');\n }\n if (this.extensionId)\n extensionOpen(this.extensionId);\n return this.signClient.request({\n topic: this.topic,\n request,\n chainId: ledgerIdToCAIPChainId(this.ledgerId),\n });\n }\n getAccountId() {\n return this.accountId;\n }\n getAccountKey() {\n throw new Error('Method not implemented.');\n }\n getLedgerId() {\n return this.ledgerId;\n }\n getNetwork() {\n return this._getHederaClient().network;\n }\n getMirrorNetwork() {\n return this._getHederaClient().mirrorNetwork;\n }\n getAccountBalance() {\n return this.call(new AccountBalanceQuery().setAccountId(this.accountId));\n }\n getAccountInfo() {\n return this.call(new AccountInfoQuery().setAccountId(this.accountId));\n }\n getAccountRecords() {\n return this.call(new AccountRecordsQuery().setAccountId(this.accountId));\n }\n getMetadata() {\n return this.signClient.metadata;\n }\n async sign(data, signOptions = {\n encoding: 'utf-8',\n }) {\n try {\n const messageToSign = signOptions.encoding === 'base64'\n ? Uint8ArrayToBase64String(data[0])\n : Uint8ArrayToString(data[0]);\n const { signatureMap } = await this.request({\n method: HederaJsonRpcMethod.SignMessage,\n params: {\n signerAccountId: this._signerAccountId,\n message: messageToSign,\n },\n });\n const sigmap = base64StringToSignatureMap(signatureMap);\n const signerSignature = new SignerSignature({\n accountId: this.getAccountId(),\n publicKey: PublicKey.fromBytes(sigmap.sigPair[0].pubKeyPrefix),\n signature: sigmap.sigPair[0].ed25519 ||\n sigmap.sigPair[0].ECDSASecp256k1,\n });\n this.logger.debug('Data signed successfully');\n return [signerSignature];\n }\n catch (error) {\n this.logger.error('Error signing data:', error);\n throw error;\n }\n }\n async checkTransaction(transaction) {\n throw new Error('Method not implemented.');\n }\n async populateTransaction(transaction) {\n return transaction\n .setNodeAccountIds(this._getRandomNodes(10)) // allow retrying on up to 10 nodes\n .setTransactionId(TransactionId.generate(this.getAccountId()));\n }\n /**\n * Prepares a transaction object for signing using a single node account id.\n * If the transaction object does not already have a node account id,\n * generate a random node account id using the Hedera SDK client\n *\n * @param transaction - Any instance of a class that extends `Transaction`\n * @returns transaction - `Transaction` object with signature\n */\n async signTransaction(transaction) {\n let nodeAccountId;\n if (!transaction.nodeAccountIds || transaction.nodeAccountIds.length === 0)\n nodeAccountId = this._getRandomNodes(1)[0];\n else\n nodeAccountId = transaction.nodeAccountIds[0];\n const transactionBody = transactionToTransactionBody(transaction, nodeAccountId);\n if (!transactionBody)\n throw new Error('Failed to serialize transaction body');\n const transactionBodyBase64 = transactionBodyToBase64String(transactionBody);\n const { signatureMap } = await this.request({\n method: HederaJsonRpcMethod.SignTransaction,\n params: {\n signerAccountId: this._signerAccountId,\n transactionBody: transactionBodyBase64,\n },\n });\n const sigMap = base64StringToSignatureMap(signatureMap);\n const bodyBytes = base64StringToUint8Array(transactionBodyBase64);\n const bytes = proto.Transaction.encode({ bodyBytes, sigMap }).finish();\n return Transaction.fromBytes(bytes);\n }\n async _tryExecuteTransactionRequest(request) {\n try {\n const requestToBytes = request.toBytes();\n this.logger.debug('Creating transaction from bytes', requestToBytes, request);\n const transaction = Transaction.fromBytes(requestToBytes);\n this.logger.debug('Executing transaction request', transaction);\n const result = await this.request({\n method: HederaJsonRpcMethod.SignAndExecuteTransaction,\n params: {\n signerAccountId: this._signerAccountId,\n transactionList: transactionToBase64String(transaction),\n },\n });\n this.logger.debug('Transaction request completed successfully');\n return { result: TransactionResponse.fromJSON(result) };\n }\n catch (error) {\n this.logger.error('Error executing transaction request:', error);\n return { error };\n }\n }\n async _parseQueryResponse(query, base64EncodedQueryResponse) {\n if (query instanceof AccountRecordsQuery) {\n const base64EncodedQueryResponseSplit = base64EncodedQueryResponse.split(',');\n const data = base64EncodedQueryResponseSplit.map((o) => base64StringToUint8Array(o));\n return data.map((o) => TransactionRecord.fromBytes(o));\n }\n const data = base64StringToUint8Array(base64EncodedQueryResponse);\n if (query instanceof AccountBalanceQuery) {\n return AccountBalance.fromBytes(data);\n }\n else if (query instanceof AccountInfoQuery) {\n return AccountInfo.fromBytes(data);\n }\n else if (query instanceof TransactionReceiptQuery) {\n return TransactionReceipt.fromBytes(data);\n }\n else if (query instanceof TransactionRecordQuery) {\n return TransactionRecord.fromBytes(data);\n }\n else {\n throw new Error('Unsupported query type');\n }\n }\n /**\n * Executes a free receipt query without signing a transaction.\n * Enables the DApp to fetch the receipt of a transaction without making a new request\n * to the wallet.\n * @param request - The query to execute\n * @returns The result of the query\n */\n async executeReceiptQueryFromRequest(request) {\n try {\n const isMainnet = this.ledgerId === LedgerId.MAINNET;\n const client = isMainnet ? Client.forMainnet() : Client.forTestnet();\n const receipt = TransactionReceiptQuery.fromBytes(request.toBytes());\n const result = await receipt.execute(client);\n return { result };\n }\n catch (error) {\n return { error };\n }\n }\n async _tryExecuteQueryRequest(request) {\n try {\n const isReceiptQuery = request instanceof TransactionReceiptQuery;\n if (isReceiptQuery) {\n this.logger.debug('Attempting to execute free receipt query', request);\n const result = await this.executeReceiptQueryFromRequest(request);\n if (!(result === null || result === void 0 ? void 0 : result.error)) {\n return { result: result.result };\n }\n this.logger.error('Error executing free receipt query. Sending to wallet.', result.error);\n }\n /**\n * Note, should we be converting these to specific query types?\n * Left alone to avoid changing the API for other requests.\n */\n const query = isReceiptQuery\n ? TransactionReceiptQuery.fromBytes(request.toBytes())\n : Query.fromBytes(request.toBytes());\n this.logger.debug('Executing query request', query, queryToBase64String(query), isReceiptQuery);\n const result = await this.request({\n method: HederaJsonRpcMethod.SignAndExecuteQuery,\n params: {\n signerAccountId: this._signerAccountId,\n query: queryToBase64String(query),\n },\n });\n this.logger.debug('Query request completed successfully', result);\n return { result: this._parseQueryResponse(query, result.response) };\n }\n catch (error) {\n this.logger.error('Error executing query request:', error);\n return { error };\n }\n }\n async call(request) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n const isReceiptQuery = request instanceof TransactionReceiptQuery;\n let txResult = undefined;\n // a receipt query is a free query and we should not execute a transaction.\n if (!isReceiptQuery) {\n txResult = await this._tryExecuteTransactionRequest(request);\n if (txResult.result) {\n return txResult.result;\n }\n }\n const queryResult = await this._tryExecuteQueryRequest(request);\n if (queryResult.result) {\n return queryResult.result;\n }\n // TODO: make this error more usable\n if (isReceiptQuery) {\n throw new Error('Error executing receipt query: \\n' +\n JSON.stringify({\n queryError: {\n name: (_a = queryResult.error) === null || _a === void 0 ? void 0 : _a.name,\n message: (_b = queryResult.error) === null || _b === void 0 ? void 0 : _b.message,\n stack: (_c = queryResult.error) === null || _c === void 0 ? void 0 : _c.stack,\n },\n }));\n }\n throw new Error('Error executing transaction or query: \\n' +\n JSON.stringify({\n txError: {\n name: (_d = txResult === null || txResult === void 0 ? void 0 : txResult.error) === null || _d === void 0 ? void 0 : _d.name,\n message: (_e = txResult === null || txResult === void 0 ? void 0 : txResult.error) === null || _e === void 0 ? void 0 : _e.message,\n stack: (_f = txResult === null || txResult === void 0 ? void 0 : txResult.error) === null || _f === void 0 ? void 0 : _f.stack,\n },\n queryError: {\n name: (_g = queryResult.error) === null || _g === void 0 ? void 0 : _g.name,\n message: (_h = queryResult.error) === null || _h === void 0 ? void 0 : _h.message,\n stack: (_j = queryResult.error) === null || _j === void 0 ? void 0 : _j.stack,\n },\n }, null, 2));\n }\n}\n","/*\n *\n * Hedera Wallet Connect\n *\n * Copyright (C) 2023 Hedera Hashgraph, LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nimport { LedgerId, Transaction } from '@hashgraph/sdk';\nimport QRCodeModal from '@walletconnect/qrcode-modal';\nimport { WalletConnectModal } from '@walletconnect/modal';\nimport SignClient from '@walletconnect/sign-client';\nimport { getSdkError } from '@walletconnect/utils';\nimport { DefaultLogger } from '../shared/logger';\nimport { HederaJsonRpcMethod, accountAndLedgerFromSession, networkNamespaces, extensionConnect, findExtensions, } from '../shared';\nimport { DAppSigner } from './DAppSigner';\nexport * from './DAppSigner';\nexport { SessionNotFoundError } from './SessionNotFoundError';\nexport class DAppConnector {\n /**\n * Initializes the DAppConnector instance.\n * @param metadata - SignClientTypes.Metadata object for the DApp metadata.\n * @param network - LedgerId representing the network (default: LedgerId.TESTNET).\n * @param projectId - Project ID for the WalletConnect client.\n * @param methods - Array of supported methods for the DApp (optional).\n * @param events - Array of supported events for the DApp (optional).\n * @param chains - Array of supported chains for the DApp (optional).\n * @param logLevel - Logging level for the DAppConnector (optional).\n */\n constructor(metadata, network, projectId, methods, events, chains, logLevel = 'debug') {\n this.network = LedgerId.TESTNET;\n this.supportedMethods = [];\n this.supportedEvents = [];\n this.supportedChains = [];\n this.extensions = [];\n this.onSessionIframeCreated = null;\n this.signers = [];\n this.isInitializing = false;\n this.abortableConnect = async (callback) => {\n return new Promise(async (resolve, reject) => {\n const pairTimeoutMs = 480000;\n const timeout = setTimeout(() => {\n QRCodeModal.close();\n reject(new Error(`Connect timed out after ${pairTimeoutMs}(ms)`));\n }, pairTimeoutMs);\n try {\n return resolve(await callback());\n }\n catch (error) {\n reject(error);\n }\n finally {\n clearTimeout(timeout);\n }\n });\n };\n this.logger = new DefaultLogger(logLevel);\n this.dAppMetadata = metadata;\n this.network = network;\n this.projectId = projectId;\n this.supportedMethods = methods !== null && methods !== void 0 ? methods : Object.values(HederaJsonRpcMethod);\n this.supportedEvents = events !== null && events !== void 0 ? events : [];\n this.supportedChains = chains !== null && chains !== void 0 ? chains : [];\n this.extensions = [];\n this.walletConnectModal = new WalletConnectModal({\n projectId: projectId,\n chains: chains,\n });\n findExtensions((metadata, isIframe) => {\n this.extensions.push(Object.assign(Object.assign({}, metadata), { available: true, availableInIframe: isIframe }));\n });\n }\n /**\n * Sets the logging level for the DAppConnector\n * @param level - The logging level to set\n */\n setLogLevel(level) {\n if (this.logger instanceof DefaultLogger) {\n this.logger.setLogLevel(level);\n }\n }\n /**\n * Initializes the DAppConnector instance.\n * @param logger - `BaseLogger` for logging purposes (optional).\n */\n async init({ logger } = {}) {\n try {\n this.isInitializing = true;\n if (!this.projectId) {\n throw new Error('Project ID is not defined');\n }\n this.walletConnectClient = await SignClient.init({\n logger,\n relayUrl: 'wss://relay.walletconnect.com',\n projectId: this.projectId,\n metadata: this.dAppMetadata,\n });\n const existingSessions = this.walletConnectClient.session.getAll();\n if (existingSessions.length > 0)\n this.signers = existingSessions.flatMap((session) => this.createSigners(session));\n else\n this.checkIframeConnect();\n this.walletConnectClient.on('session_event', this.handleSessionEvent.bind(this));\n this.walletConnectClient.on('session_update', this.handleSessionUpdate.bind(this));\n this.walletConnectClient.on('session_delete', this.handleSessionDelete.bind(this));\n // Listen for custom session_delete events from DAppSigner\n this.walletConnectClient.core.events.on('session_delete', this.handleSessionDelete.bind(this));\n this.walletConnectClient.core.pairing.events.on('pairing_delete', this.handlePairingDelete.bind(this));\n }\n catch (e) {\n this.logger.error('Error initializing DAppConnector:', e);\n }\n finally {\n this.isInitializing = false;\n }\n }\n /**\n * Retrieves a DAppSigner for the specified Hedera Account ID.\n *\n * @param {AccountId} accountId - The Hedera Account ID to find the associated signer.\n * @returns {DAppSigner} - The signer object of type {@link DAppSigner} corresponding to the provided account ID.\n * @throws {Error} - If no signer is found for the provided account ID.\n */\n getSigner(accountId) {\n if (this.isInitializing) {\n throw new Error('DAppConnector is not initialized yet. Try again later.');\n }\n const signer = this.signers.find((signer) => signer.getAccountId().equals(accountId));\n if (!signer)\n throw new Error('Signer is not found for this accountId');\n return signer;\n }\n /**\n * Initiates the WalletConnect connection flow using a QR code.\n * @deprecated Use `openModal` instead.\n * @param pairingTopic - The pairing topic for the connection (optional).\n * @returns A Promise that resolves when the connection process is complete.\n */\n async connectQR(pairingTopic) {\n return this.abortableConnect(async () => {\n try {\n const { uri, approval } = await this.connectURI(pairingTopic);\n if (!uri)\n throw new Error('URI is not defined');\n QRCodeModal.open(uri, () => {\n throw new Error('User rejected pairing');\n });\n await this.onSessionConnected(await approval());\n }\n finally {\n QRCodeModal.close();\n }\n });\n }\n /**\n * Initiates the WalletConnect connection flow using a QR code.\n * @param pairingTopic - The pairing topic for the connection (optional).\n * @returns {Promise} - A Promise that resolves when the connection process is complete.\n */\n async openModal(pairingTopic) {\n try {\n const { uri, approval } = await this.connectURI(pairingTopic);\n this.walletConnectModal.openModal({ uri });\n const session = await approval();\n await this.onSessionConnected(session);\n return session;\n }\n finally {\n this.walletConnectModal.closeModal();\n }\n }\n /**\n * Initiates the WallecConnect connection flow using URI.\n * @param pairingTopic - The pairing topic for the connection (optional).\n * @param extensionId - The id for the extension used to connect (optional).\n * @returns A Promise that resolves when the connection process is complete.\n */\n async connect(launchCallback, pairingTopic, extensionId) {\n return this.abortableConnect(async () => {\n var _a;\n const { uri, approval } = await this.connectURI(pairingTopic);\n if (!uri)\n throw new Error('URI is not defined');\n launchCallback(uri);\n const session = await approval();\n if (extensionId) {\n const sessionProperties = Object.assign(Object.assign({}, session.sessionProperties), { extensionId });\n session.sessionProperties = sessionProperties;\n await ((_a = this.walletConnectClient) === null || _a === void 0 ? void 0 : _a.session.update(session.topic, {\n sessionProperties,\n }));\n }\n await this.onSessionConnected(session);\n return session;\n });\n }\n /**\n * Initiates the WallecConnect connection flow sending a message to the extension.\n * @param extensionId - The id for the extension used to connect.\n * @param pairingTopic - The pairing topic for the connection (optional).\n * @returns A Promise that resolves when the connection process is complete.\n */\n async connectExtension(extensionId, pairingTopic) {\n const extension = this.extensions.find((ext) => ext.id === extensionId);\n if (!extension || !extension.available)\n throw new Error('Extension is not available');\n return this.connect((uri) => {\n extensionConnect(extension.id, extension.availableInIframe, uri);\n }, pairingTopic, extension.availableInIframe ? undefined : extensionId);\n }\n /**\n * Validates the session by checking if the session exists and is valid.\n * Also ensures the signer exists for the session.\n * @param topic - The topic of the session to validate.\n * @returns {boolean} - True if the session exists and has a valid signer, false otherwise.\n */\n validateSession(topic) {\n try {\n if (!this.walletConnectClient) {\n return false;\n }\n const session = this.walletConnectClient.session.get(topic);\n const hasSigner = this.signers.some((signer) => signer.topic === topic);\n if (!session) {\n // If session doesn't exist but we have a signer for it, clean up\n if (hasSigner) {\n this.logger.warn(`Signer exists but no session found for topic: ${topic}`);\n this.handleSessionDelete({ topic });\n }\n return false;\n }\n if (!hasSigner) {\n this.logger.warn(`Session exists but no signer found for topic: ${topic}`);\n return false;\n }\n return true;\n }\n catch (e) {\n this.logger.error('Error validating session:', e);\n return false;\n }\n }\n /**\n * Validates the session and refreshes the signers by removing the invalid ones.\n */\n validateAndRefreshSigners() {\n this.signers = this.signers.filter((signer) => this.validateSession(signer.topic));\n }\n /**\n * Initiates the WallecConnect connection if the wallet in iframe mode is detected.\n */\n async checkIframeConnect() {\n const extension = this.extensions.find((ext) => ext.availableInIframe);\n if (extension) {\n const session = await this.connectExtension(extension.id);\n if (this.onSessionIframeCreated)\n this.onSessionIframeCreated(session);\n }\n }\n /**\n * Disconnects the current session associated with the specified topic.\n * @param topic - The topic of the session to disconnect.\n * @returns A Promise that resolves when the session is disconnected.\n */\n async disconnect(topic) {\n try {\n if (!this.walletConnectClient) {\n throw new Error('WalletConnect is not initialized');\n }\n await this.walletConnectClient.disconnect({\n topic: topic,\n reason: getSdkError('USER_DISCONNECTED'),\n });\n return true;\n }\n catch (e) {\n this.logger.error('Either the session was already disconnected or the topic is invalid', e);\n return false;\n }\n }\n /**\n * Disconnects all active sessions and pairings.\n *\n * Throws error when WalletConnect is not initialized or there are no active sessions/pairings.\n * @returns A Promise that resolves when all active sessions and pairings are disconnected.\n */\n async disconnectAll() {\n if (!this.walletConnectClient) {\n throw new Error('WalletConnect is not initialized');\n }\n const sessions = this.walletConnectClient.session.getAll();\n const pairings = this.walletConnectClient.core.pairing.getPairings();\n if (!(sessions === null || sessions === void 0 ? void 0 : sessions.length) && !(pairings === null || pairings === void 0 ? void 0 : pairings.length)) {\n throw new Error('There is no active session/pairing. Connect to the wallet at first.');\n }\n const disconnectionPromises = [];\n // disconnect sessions\n for (const session of this.walletConnectClient.session.getAll()) {\n this.logger.info(`Disconnecting from session: ${session}`);\n const promise = this.disconnect(session.topic);\n disconnectionPromises.push(promise);\n }\n // disconnect pairings\n //https://docs.walletconnect.com/api/core/pairing\n for (const pairing of pairings) {\n const promise = this.disconnect(pairing.topic);\n disconnectionPromises.push(promise);\n }\n await Promise.all(disconnectionPromises);\n this.signers = [];\n }\n createSigners(session) {\n const allNamespaceAccounts = accountAndLedgerFromSession(session);\n return allNamespaceAccounts.map(({ account, network }) => {\n var _a;\n return new DAppSigner(account, this.walletConnectClient, session.topic, network, (_a = session.sessionProperties) === null || _a === void 0 ? void 0 : _a.extensionId, this.logger instanceof DefaultLogger ? this.logger.getLogLevel() : 'debug');\n });\n }\n async onSessionConnected(session) {\n const newSigners = this.createSigners(session);\n // Filter out any existing signers with duplicate AccountIds\n for (const newSigner of newSigners) {\n // We check if any signers have the same account, extension + metadata name.\n const existingSigners = this.signers.filter((currentSigner) => {\n var _a, _b;\n const matchingAccountId = ((_a = currentSigner === null || currentSigner === void 0 ? void 0 : currentSigner.getAccountId()) === null || _a === void 0 ? void 0 : _a.toString()) === ((_b = newSigner === null || newSigner === void 0 ? void 0 : newSigner.getAccountId()) === null || _b === void 0 ? void 0 : _b.toString());\n const matchingExtensionId = newSigner.extensionId === currentSigner.extensionId;\n const newSignerMetadata = newSigner.getMetadata();\n const existingSignerMetadata = currentSigner.getMetadata();\n const metadataNameMatch = (newSignerMetadata === null || newSignerMetadata === void 0 ? void 0 : newSignerMetadata.name) === (existingSignerMetadata === null || existingSignerMetadata === void 0 ? void 0 : existingSignerMetadata.name);\n if (currentSigner.topic === newSigner.topic) {\n this.logger.error('The topic was already connected. This is a weird error. Please report it.', newSigner.getAccountId().toString());\n }\n return matchingAccountId && matchingExtensionId && metadataNameMatch;\n });\n // Any dupes get disconnected + removed from the signers array.\n for (const existingSigner of existingSigners) {\n this.logger.debug(`Disconnecting duplicate signer for account ${existingSigner.getAccountId().toString()}`);\n await this.disconnect(existingSigner.topic);\n this.signers = this.signers.filter((s) => s.topic !== existingSigner.topic);\n }\n }\n // Add new signers after all duplicates have been cleaned up\n this.signers.push(...newSigners);\n this.logger.debug(`Current signers after connection: ${this.signers\n .map((s) => `${s.getAccountId().toString()}:${s.topic}`)\n .join(', ')}`);\n }\n async connectURI(pairingTopic) {\n if (!this.walletConnectClient) {\n throw new Error('WalletConnect is not initialized');\n }\n return this.walletConnectClient.connect({\n pairingTopic,\n requiredNamespaces: networkNamespaces(this.network, this.supportedMethods, this.supportedEvents),\n });\n }\n async request({ method, params, }) {\n var _a, _b, _c;\n let signer;\n this.logger.debug(`Requesting method: ${method} with params: ${JSON.stringify(params)}`);\n if (params === null || params === void 0 ? void 0 : params.signerAccountId) {\n // Extract the actual account ID from the hedera::
format\n const actualAccountId = (_b = (_a = params === null || params === void 0 ? void 0 : params.signerAccountId) === null || _a === void 0 ? void 0 : _a.split(':')) === null || _b === void 0 ? void 0 : _b.pop();\n signer = this.signers.find((s) => { var _a; return ((_a = s === null || s === void 0 ? void 0 : s.getAccountId()) === null || _a === void 0 ? void 0 : _a.toString()) === actualAccountId; });\n this.logger.debug(`Found signer: ${(_c = signer === null || signer === void 0 ? void 0 : signer.getAccountId()) === null || _c === void 0 ? void 0 : _c.toString()}`);\n if (!signer) {\n throw new Error(`Signer not found for account ID: ${params === null || params === void 0 ? void 0 : params.signerAccountId}. Did you use the correct format? e.g hedera::
`);\n }\n }\n else {\n signer = this.signers[this.signers.length - 1];\n }\n if (!signer) {\n throw new Error('There is no active session. Connect to the wallet at first.');\n }\n this.logger.debug(`Using signer: ${signer.getAccountId().toString()}: ${signer.topic} - about to request.`);\n return await signer.request({\n method: method,\n params: params,\n });\n }\n /**\n * Retrieves the node addresses associated with the current Hedera network.\n *\n * When there is no active session or an error occurs during the request.\n * @returns Promise\\<{@link GetNodeAddressesResult}\\>\n */\n async getNodeAddresses() {\n return await this.request({\n method: HederaJsonRpcMethod.GetNodeAddresses,\n params: undefined,\n });\n }\n /**\n * Executes a transaction on the Hedera network.\n *\n * @param {ExecuteTransactionParams} params - The parameters of type {@link ExecuteTransactionParams | `ExecuteTransactionParams`} required for the transaction execution.\n * @param {string[]} params.signedTransaction - Array of Base64-encoded `Transaction`'s\n * @returns Promise\\<{@link ExecuteTransactionResult}\\>\n * @example\n * Use helper `transactionToBase64String` to encode `Transaction` to Base64 string\n * ```ts\n * const params = {\n * signedTransaction: [transactionToBase64String(transaction)]\n * }\n *\n * const result = await dAppConnector.executeTransaction(params)\n * ```\n */\n async executeTransaction(params) {\n return await this.request({\n method: HederaJsonRpcMethod.ExecuteTransaction,\n params,\n });\n }\n /**\n * Signs a provided `message` with provided `signerAccountId`.\n *\n * @param {SignMessageParams} params - The parameters of type {@link SignMessageParams | `SignMessageParams`} required for signing message.\n * @param {string} params.signerAccountId - a signer Hedera Account identifier in {@link https://hips.hedera.com/hip/hip-30 | HIP-30} (`:..`) form.\n * @param {string} params.message - a plain UTF-8 string\n * @returns Promise\\<{@link SignMessageResult}\\>\n * @example\n * ```ts\n * const params = {\n * signerAccountId: 'hedera:testnet:0.0.12345',\n * message: 'Hello World!'\n * }\n *\n * const result = await dAppConnector.signMessage(params)\n * ```\n */\n async signMessage(params) {\n return await this.request({\n method: HederaJsonRpcMethod.SignMessage,\n params,\n });\n }\n /**\n * Signs and send `Query` on the Hedera network.\n *\n * @param {SignAndExecuteQueryParams} params - The parameters of type {@link SignAndExecuteQueryParams | `SignAndExecuteQueryParams`} required for the Query execution.\n * @param {string} params.signerAccountId - a signer Hedera Account identifier in {@link https://hips.hedera.com/hip/hip-30 | HIP-30} (`:..`) form.\n * @param {string} params.query - `Query` object represented as Base64 string\n * @returns Promise\\<{@link SignAndExecuteQueryResult}\\>\n * @example\n * Use helper `queryToBase64String` to encode `Query` to Base64 string\n * ```ts\n * const params = {\n * signerAccountId: '0.0.12345',\n * query: queryToBase64String(query),\n * }\n *\n * const result = await dAppConnector.signAndExecuteQuery(params)\n * ```\n */\n async signAndExecuteQuery(params) {\n return await this.request({\n method: HederaJsonRpcMethod.SignAndExecuteQuery,\n params,\n });\n }\n /**\n * Signs and executes Transactions on the Hedera network.\n *\n * @param {SignAndExecuteTransactionParams} params - The parameters of type {@link SignAndExecuteTransactionParams | `SignAndExecuteTransactionParams`} required for `Transaction` signing and execution.\n * @param {string} params.signerAccountId - a signer Hedera Account identifier in {@link https://hips.hedera.com/hip/hip-30 | HIP-30} (`:..`) form.\n * @param {string[]} params.transaction - Array of Base64-encoded `Transaction`'s\n * @returns Promise\\<{@link SignAndExecuteTransactionResult}\\>\n * @example\n * Use helper `transactionToBase64String` to encode `Transaction` to Base64 string\n * ```ts\n * const params = {\n * signerAccountId: '0.0.12345'\n * transaction: [transactionToBase64String(transaction)]\n * }\n *\n * const result = await dAppConnector.signAndExecuteTransaction(params)\n * ```\n */\n async signAndExecuteTransaction(params) {\n return await this.request({\n method: HederaJsonRpcMethod.SignAndExecuteTransaction,\n params,\n });\n }\n /**\n * Signs and executes Transactions on the Hedera network.\n *\n * @param {SignTransactionParams} params - The parameters of type {@link SignTransactionParams | `SignTransactionParams`} required for `Transaction` signing.\n * @param {string} params.signerAccountId - a signer Hedera Account identifier in {@link https://hips.hedera.com/hip/hip-30 | HIP-30} (`:..`) form.\n * @param {Transaction | string} params.transactionBody - a built Transaction object, or a base64 string of a transaction body (deprecated).\n * @deprecated Using string for params.transactionBody is deprecated and will be removed in a future version. Please migrate to using Transaction objects directly.\n * @returns Promise\\<{@link SignTransactionResult}\\>\n * @example\n * ```ts\n *\n * const params = {\n * signerAccountId: '0.0.12345',\n * transactionBody\n * }\n *\n * const result = await dAppConnector.signTransaction(params)\n * ```\n */\n async signTransaction(params) {\n var _a, _b;\n if (typeof (params === null || params === void 0 ? void 0 : params.transactionBody) === 'string') {\n this.logger.warn('Transaction body is a string. This is not recommended, please migrate to passing a transaction object directly.');\n return await this.request({\n method: HederaJsonRpcMethod.SignTransaction,\n params,\n });\n }\n if ((params === null || params === void 0 ? void 0 : params.transactionBody) instanceof Transaction) {\n const signerAccountId = (_b = (_a = params === null || params === void 0 ? void 0 : params.signerAccountId) === null || _a === void 0 ? void 0 : _a.split(':')) === null || _b === void 0 ? void 0 : _b.pop();\n const accountSigner = this.signers.find((signer) => { var _a; return ((_a = signer === null || signer === void 0 ? void 0 : signer.getAccountId()) === null || _a === void 0 ? void 0 : _a.toString()) === signerAccountId; });\n if (!accountSigner) {\n throw new Error(`No signer found for account ${signerAccountId}`);\n }\n if (!(params === null || params === void 0 ? void 0 : params.transactionBody)) {\n throw new Error('No transaction provided');\n }\n return await accountSigner.signTransaction(params.transactionBody);\n }\n throw new Error('Transaction sent in incorrect format. Ensure transaction body is either a base64 transaction body or Transaction object.');\n }\n handleSessionEvent(args) {\n this.logger.debug('Session event received:', args);\n this.validateAndRefreshSigners();\n }\n handleSessionUpdate({ topic, params, }) {\n const { namespaces } = params;\n const _session = this.walletConnectClient.session.get(topic);\n const updatedSession = Object.assign(Object.assign({}, _session), { namespaces });\n this.logger.info('Session updated:', updatedSession);\n this.signers = this.signers.filter((signer) => signer.topic !== topic);\n this.signers.push(...this.createSigners(updatedSession));\n }\n handleSessionDelete(event) {\n this.logger.info('Session deleted:', event);\n let deletedSigner = false;\n this.signers = this.signers.filter((signer) => {\n if (signer.topic !== event.topic) {\n return true;\n }\n deletedSigner = true;\n return false;\n });\n // prevent emitting disconnected event if signers is untouched.\n if (deletedSigner) {\n try {\n this.disconnect(event.topic);\n }\n catch (e) {\n this.logger.error('Error disconnecting session:', e);\n }\n this.logger.info('Session deleted and signer removed');\n }\n }\n handlePairingDelete(event) {\n this.logger.info('Pairing deleted:', event);\n this.signers = this.signers.filter((signer) => signer.topic !== event.topic);\n try {\n this.disconnect(event.topic);\n }\n catch (e) {\n this.logger.error('Error disconnecting pairing:', e);\n }\n this.logger.info('Pairing deleted by wallet');\n }\n}\nexport default DAppConnector;\n","export interface ILogger {\n error(message: string, ...args: any[]): void;\n warn(message: string, ...args: any[]): void;\n info(message: string, ...args: any[]): void;\n debug(message: string, ...args: any[]): void;\n}\n\nexport class DefaultLogger implements ILogger {\n private logLevel: 'error' | 'warn' | 'info' | 'debug' = 'info';\n\n setLogLevel(level: 'error' | 'warn' | 'info' | 'debug'): void {\n this.logLevel = level;\n }\n\n error(message: string, ...args: any[]): void {\n if (['error', 'warn', 'info', 'debug'].includes(this.logLevel)) {\n console.error(`[ERROR] ${message}`, ...args);\n }\n }\n\n warn(message: string, ...args: any[]): void {\n if (['warn', 'info', 'debug'].includes(this.logLevel)) {\n console.warn(`[WARN] ${message}`, ...args);\n }\n }\n\n info(message: string, ...args: any[]): void {\n if (['info', 'debug'].includes(this.logLevel)) {\n console.info(`[INFO] ${message}`, ...args);\n }\n }\n\n debug(message: string, ...args: any[]): void {\n if (this.logLevel === 'debug') {\n console.debug(`[DEBUG] ${message}`, ...args);\n }\n }\n}\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.fetchRetry = factory());\n})(this, (function () { 'use strict';\n\n var fetchRetry = function (fetch, defaults) {\n defaults = defaults || {};\n if (typeof fetch !== 'function') {\n throw new ArgumentError('fetch must be a function');\n }\n\n if (typeof defaults !== 'object') {\n throw new ArgumentError('defaults must be an object');\n }\n\n if (defaults.retries !== undefined && !isPositiveInteger(defaults.retries)) {\n throw new ArgumentError('retries must be a positive integer');\n }\n\n if (defaults.retryDelay !== undefined && !isPositiveInteger(defaults.retryDelay) && typeof defaults.retryDelay !== 'function') {\n throw new ArgumentError('retryDelay must be a positive integer or a function returning a positive integer');\n }\n\n if (defaults.retryOn !== undefined && !Array.isArray(defaults.retryOn) && typeof defaults.retryOn !== 'function') {\n throw new ArgumentError('retryOn property expects an array or function');\n }\n\n var baseDefaults = {\n retries: 3,\n retryDelay: 1000,\n retryOn: [],\n };\n\n defaults = Object.assign(baseDefaults, defaults);\n\n return function fetchRetry(input, init) {\n var retries = defaults.retries;\n var retryDelay = defaults.retryDelay;\n var retryOn = defaults.retryOn;\n\n if (init && init.retries !== undefined) {\n if (isPositiveInteger(init.retries)) {\n retries = init.retries;\n } else {\n throw new ArgumentError('retries must be a positive integer');\n }\n }\n\n if (init && init.retryDelay !== undefined) {\n if (isPositiveInteger(init.retryDelay) || (typeof init.retryDelay === 'function')) {\n retryDelay = init.retryDelay;\n } else {\n throw new ArgumentError('retryDelay must be a positive integer or a function returning a positive integer');\n }\n }\n\n if (init && init.retryOn) {\n if (Array.isArray(init.retryOn) || (typeof init.retryOn === 'function')) {\n retryOn = init.retryOn;\n } else {\n throw new ArgumentError('retryOn property expects an array or function');\n }\n }\n\n // eslint-disable-next-line no-undef\n return new Promise(function (resolve, reject) {\n var wrappedFetch = function (attempt) {\n // As of node 18, this is no longer needed since node comes with native support for fetch:\n /* istanbul ignore next */\n var _input =\n typeof Request !== 'undefined' && input instanceof Request\n ? input.clone()\n : input;\n fetch(_input, init)\n .then(function (response) {\n if (Array.isArray(retryOn) && retryOn.indexOf(response.status) === -1) {\n resolve(response);\n } else if (typeof retryOn === 'function') {\n try {\n // eslint-disable-next-line no-undef\n return Promise.resolve(retryOn(attempt, null, response))\n .then(function (retryOnResponse) {\n if(retryOnResponse) {\n retry(attempt, null, response);\n } else {\n resolve(response);\n }\n }).catch(reject);\n } catch (error) {\n reject(error);\n }\n } else {\n if (attempt < retries) {\n retry(attempt, null, response);\n } else {\n resolve(response);\n }\n }\n })\n .catch(function (error) {\n if (typeof retryOn === 'function') {\n try {\n // eslint-disable-next-line no-undef\n Promise.resolve(retryOn(attempt, error, null))\n .then(function (retryOnResponse) {\n if(retryOnResponse) {\n retry(attempt, error, null);\n } else {\n reject(error);\n }\n })\n .catch(function(error) {\n reject(error);\n });\n } catch(error) {\n reject(error);\n }\n } else if (attempt < retries) {\n retry(attempt, error, null);\n } else {\n reject(error);\n }\n });\n };\n\n function retry(attempt, error, response) {\n var delay = (typeof retryDelay === 'function') ?\n retryDelay(attempt, error, response) : retryDelay;\n setTimeout(function () {\n wrappedFetch(++attempt);\n }, delay);\n }\n\n wrappedFetch(0);\n });\n };\n };\n\n function isPositiveInteger(value) {\n return Number.isInteger(value) && value >= 0;\n }\n\n function ArgumentError(message) {\n this.name = 'ArgumentError';\n this.message = message;\n }\n\n return fetchRetry;\n\n}));\n","import retryFetch from 'fetch-retry';\n\nexport const fetchWithRetry = () =>\n retryFetch(fetch, {\n retries: 3,\n });\n","import { DAppConnector } from '@hashgraph/hedera-wallet-connect';\nimport * as hashgraph from '@hashgraph/sdk';\nimport {\n ContractFunctionParameters,\n TransactionReceipt,\n PrivateKey,\n Transaction,\n AccountId,\n ContractId,\n} from '@hashgraph/sdk';\nimport { SessionTypes, SignClientTypes } from '@walletconnect/types';\n\nexport interface HederaAccountResponse {\n account: string;\n alias: null;\n auto_renew_period: number;\n balance: Balance;\n created_timestamp: string;\n decline_reward: boolean;\n deleted: boolean;\n ethereum_nonce: number;\n evm_address: string;\n expiry_timestamp: string;\n key: Key;\n max_automatic_token_associations: number;\n memo: string;\n pending_reward: number;\n receiver_sig_required: boolean;\n staked_account_id: null;\n staked_node_id: number;\n stake_period_start: string;\n transactions: HBARTransaction[];\n links: Links;\n}\n\nexport interface Balance {\n balance: number;\n timestamp: string;\n tokens: Token[];\n}\n\nexport interface Token {\n token_id: string;\n balance: number;\n}\n\nexport interface Key {\n _type: string;\n key: string;\n}\n\nexport interface Links {\n next: string;\n}\n\nexport interface HBARTransaction {\n bytes: null;\n charged_tx_fee: number;\n consensus_timestamp: string;\n entity_id: null | string;\n max_fee: string;\n memo_base64: string;\n name: Name;\n nft_transfers: NftTransfer[];\n node: string;\n nonce: number;\n parent_consensus_timestamp: null;\n result: Result;\n scheduled: boolean;\n staking_reward_transfers: StakingRewardTransfer[];\n token_transfers: Transfer[];\n transaction_hash: string;\n transaction_id: string;\n transfers: Transfer[];\n valid_duration_seconds: string;\n valid_start_timestamp: string;\n}\n\nexport enum Name {\n Contractcall = 'CONTRACTCALL',\n Cryptotransfer = 'CRYPTOTRANSFER',\n}\n\nexport interface NftTransfer {\n is_approval: boolean;\n receiver_account_id: string;\n sender_account_id: string;\n serial_number: number;\n token_id: string;\n}\n\nexport enum Result {\n Success = 'SUCCESS',\n}\n\nexport interface StakingRewardTransfer {\n account: string;\n amount: number;\n}\n\nexport interface Transfer {\n token_id?: string;\n account: string;\n amount: number;\n is_approval: boolean;\n}\n\nexport interface Message {\n payer: string;\n created: Date;\n consensus_timestamp: string;\n sequence_number: number;\n [key: string]: any;\n}\n\nexport interface FetchMessagesResult {\n messages: Message[];\n error?: string;\n}\n\nexport interface Account {\n account: string;\n alias: null;\n auto_renew_period: number;\n balance: Balance;\n decline_reward: boolean;\n deleted: boolean;\n ethereum_nonce: null;\n evm_address: null;\n expiry_timestamp: string;\n key: Key;\n max_automatic_token_associations: number;\n memo: string;\n receiver_sig_required: null;\n staked_account_id: null;\n staked_node_id: null;\n stake_period_start: null;\n}\n\nexport interface Balance {\n balance: number;\n timestamp: string;\n tokens: Token[];\n}\n\nexport interface Token {\n token_id: string;\n balance: number;\n}\n\nexport interface Key {\n _type: string;\n key: string;\n}\n\nexport interface TokenBalance {\n tokenId: string;\n balance: string;\n decimals: number;\n created_timestamp: Date;\n formatted_balance: string;\n}\n\nexport interface HederaTXResponse {\n transactions: MirrorNodeTransaction[];\n}\n\nexport interface MirrorNodeTransaction {\n bytes: null;\n charged_tx_fee: number;\n consensus_timestamp: string;\n entity_id: string;\n max_fee: string;\n memo_base64: string;\n name: string;\n node: null | string;\n nonce: number;\n parent_consensus_timestamp: null | string;\n result: string;\n scheduled: boolean;\n transaction_hash: string;\n transaction_id: string;\n transfers: Transfer[];\n token_transfers: TokenTransfer[];\n valid_duration_seconds: null | string;\n valid_start_timestamp: string;\n nft_transfers?: NftTransfer[];\n}\n\nexport interface NftTransfer {\n is_approval: boolean;\n receiver_account_id: string;\n sender_account_id: string;\n serial_number: number;\n token_id: string;\n}\n\nexport interface TokenTransfer {\n token_id: string;\n account: string;\n amount: number;\n}\n\nexport interface HBarNFT {\n nfts: Nft[];\n links: Links;\n}\n\nexport interface Links {\n next: string;\n}\n\nexport interface Nft {\n account_id: string;\n created_timestamp: string;\n delegating_spender: null;\n deleted: boolean;\n metadata: string;\n modified_timestamp: string;\n serial_number: number;\n spender: null;\n token_id: string;\n token_uri?: string;\n owner_of?: string;\n}\n\nexport interface FormattedOwner {\n token_uri?: string;\n chain?: string;\n owner_of?: string;\n token_address?: string;\n token_id?: string;\n account_id?: string;\n serial_number?: number;\n [key: string]: any;\n}\n\nexport type HashinalsWalletConnectSDK = {\n run: () => void;\n init: (\n projectId: string,\n metadata: SignClientTypes.Metadata\n ) => Promise;\n connect: () => Promise;\n connectWallet(\n PROJECT_ID: string,\n APP_METADATA: SignClientTypes.Metadata\n ): Promise<{\n accountId: string;\n balance: string;\n session: SessionTypes.Struct;\n }>;\n disconnect: () => Promise;\n disconnectAll: () => Promise;\n disconnectWallet: () => Promise;\n loadConnectionInfo: () => string | null;\n saveConnectionInfo: (accountId: string) => void;\n executeTransaction: (\n tx: Transaction,\n disableSigner: boolean\n ) => Promise;\n executeTransationWithErrorHandling: (\n tx: Transaction,\n disableSigner: boolean\n ) => Promise<{ result?: TransactionReceipt; error?: string }>;\n result?: TransactionReceipt;\n error?: string;\n submitMessageToTopic: (\n topicId: string,\n message: string\n ) => Promise;\n transferHbar: (\n fromAccountId: string,\n toAccountId: string,\n amount: number\n ) => Promise;\n executeSmartContract: (\n contractId: string,\n functionName: string,\n parameters: ContractFunctionParameters,\n gas?: number\n ) => Promise;\n getAccountBalance: () => Promise;\n getAccountInfo: () => string;\n createTopic: (\n memo?: string,\n adminKey?: string,\n customFees?: { denominatingTokenId: string, amount: string, collectorAccountId: string }[] // Updated type\n ) => Promise;\n generatePrivateAndPublicKey: () => Promise<{\n privateKey: string;\n publicKey: string;\n }>;\n getTopicInfo: (topicId: string) => Promise;\n updateTopic: (topicId: string, memo: string, adminKey: string) => Promise;\n createToken: (\n name: string,\n symbol: string,\n initialSupply: number,\n decimals: number,\n treasuryAccountId: string,\n adminKey: string,\n supplyKey: string\n ) => Promise;\n mintNFT: (\n tokenId: string,\n metadata: string,\n supplyKey: PrivateKey\n ) => Promise;\n dAppConnector?: DAppConnector;\n getMessages: (\n topicId: string,\n lastTimestamp?: number,\n disableTimestampFilter?: boolean\n ) => Promise;\n initAccount: (\n PROJECT_ID: string,\n APP_METADATA: SignClientTypes.Metadata\n ) => Promise<{ accountId: string; balance: string } | null>;\n transferToken: (\n tokenId: string,\n fromAccountId: string,\n toAccountId: string,\n amount: number\n ) => Promise;\n createAccount: (initialBalance: number) => Promise;\n associateTokenToAccount: (\n accountId: string,\n tokenId: string\n ) => Promise;\n dissociateTokenFromAccount: (\n accountId: string,\n tokenId: string\n ) => Promise;\n updateAccount: (\n accountId: string,\n maxAutomaticTokenAssociations: number\n ) => Promise;\n approveAllowance: (\n spenderAccountId: string,\n tokenId: string,\n amount: number,\n ownerAccountId: string\n ) => Promise;\n getAccountTokens: (accountId: string) => Promise<{ tokens: TokenBalance[] }>;\n getTransaction: (transactionId: string) => Promise;\n getTransactionByTimestamp: (timestamp: string) => Promise;\n getAccountNFTs: (accountId: string, tokenId?: string) => Promise;\n validateNFTOwnership: (serialNumber: string, accountId: string, tokenId: string) => Promise;\n readSmartContract: (\n data: string,\n fromAccount: AccountId,\n contractId: ContractId,\n estimate?: boolean,\n value?: number\n ) => Promise;\n HashgraphSDK: typeof hashgraph;\n};\n","import { Buffer } from 'buffer';\nimport { SessionTypes, SignClientTypes } from '@walletconnect/types';\nimport {\n Transaction,\n TransferTransaction,\n TopicMessageSubmitTransaction,\n ContractExecuteTransaction,\n Hbar,\n TransactionId,\n AccountId,\n TopicId,\n ContractId,\n LedgerId,\n TokenCreateTransaction,\n TokenType,\n TokenSupplyType,\n TokenMintTransaction,\n TopicCreateTransaction,\n TransactionReceipt,\n ContractFunctionParameters,\n PrivateKey,\n AccountCreateTransaction,\n TokenAssociateTransaction,\n TokenDissociateTransaction,\n AccountUpdateTransaction,\n AccountAllowanceApproveTransaction,\n TokenId,\n TopicUpdateTransaction,\n PublicKey,\n TopicMessageQuery,\n CustomFixedFee,\n TopicMessage\n} from '@hashgraph/sdk';\nimport * as HashgraphSDK from '@hashgraph/sdk';\nimport {\n HederaSessionEvent,\n HederaJsonRpcMethod,\n DAppConnector,\n HederaChainId,\n SignMessageResult,\n} from '@hashgraph/hedera-wallet-connect';\nimport {\n Message,\n FetchMessagesResult,\n TokenBalance,\n HederaAccountResponse,\n HederaTXResponse,\n HBarNFT,\n Nft,\n} from './types';\nimport { DefaultLogger, ILogger } from './logger/logger';\nimport { fetchWithRetry } from './utils/retry';\n\nclass HashinalsWalletConnectSDK {\n private static instance: HashinalsWalletConnectSDK;\n private static dAppConnectorInstance: DAppConnector;\n private logger: ILogger;\n private network: LedgerId;\n private extensionCheckInterval: NodeJS.Timeout | null = null;\n private hasCalledExtensionCallback: boolean = false;\n\n public get dAppConnector(): DAppConnector {\n return HashinalsWalletConnectSDK.dAppConnectorInstance;\n }\n\n constructor(logger?: ILogger, network?: LedgerId) {\n this.logger = logger || new DefaultLogger();\n this.network = network || LedgerId.MAINNET;\n }\n\n public static getInstance(\n logger?: ILogger,\n network?: LedgerId\n ): HashinalsWalletConnectSDK {\n let instance = HashinalsWalletConnectSDK?.instance;\n if (!instance) {\n HashinalsWalletConnectSDK.instance = new HashinalsWalletConnectSDK(\n logger,\n network\n );\n instance = HashinalsWalletConnectSDK.instance;\n }\n if (network) {\n instance.setNetwork(network);\n }\n return instance;\n }\n\n public setLogger(logger: ILogger): void {\n this.logger = logger;\n }\n\n public setNetwork(network: LedgerId): void {\n this.network = network;\n }\n\n public getNetwork(): LedgerId {\n return this.network;\n }\n\n public setLogLevel(level: 'error' | 'warn' | 'info' | 'debug'): void {\n if (this.logger instanceof DefaultLogger) {\n this.logger.setLogLevel(level);\n } else {\n this.logger.warn('setLogLevel is only available for the default logger');\n }\n }\n\n public async init(\n projectId: string,\n metadata: SignClientTypes.Metadata,\n network?: LedgerId,\n onSessionIframeCreated?: (session: SessionTypes.Struct) => void\n ): Promise {\n const chosenNetwork = network || this.network;\n const isMainnet = chosenNetwork.toString() === 'mainnet';\n\n if (HashinalsWalletConnectSDK.dAppConnectorInstance) {\n return HashinalsWalletConnectSDK.dAppConnectorInstance;\n }\n\n HashinalsWalletConnectSDK.dAppConnectorInstance = new DAppConnector(\n metadata,\n chosenNetwork,\n projectId,\n Object.values(HederaJsonRpcMethod),\n [HederaSessionEvent.ChainChanged, HederaSessionEvent.AccountsChanged],\n [isMainnet ? HederaChainId.Mainnet : HederaChainId.Testnet],\n 'debug'\n );\n\n await HashinalsWalletConnectSDK.dAppConnectorInstance.init({\n logger: 'error',\n });\n\n HashinalsWalletConnectSDK.dAppConnectorInstance.onSessionIframeCreated = (\n session\n ) => {\n this.logger.info('new session from from iframe', session);\n this.handleNewSession(session);\n if (onSessionIframeCreated) {\n onSessionIframeCreated(session);\n }\n };\n\n this.logger.info(\n `Hedera Wallet Connect SDK initialized on ${chosenNetwork}`\n );\n return HashinalsWalletConnectSDK.dAppConnectorInstance;\n }\n\n public async connect(): Promise {\n this.ensureInitialized();\n const session = await this.dAppConnector.openModal();\n this.handleNewSession(session);\n return session;\n }\n\n public async disconnect(): Promise {\n try {\n this.ensureInitialized();\n const accountInfo = this.getAccountInfo();\n const accountId = accountInfo?.accountId;\n const network = accountInfo?.network;\n const signer = this?.dAppConnector?.signers.find(\n (signer_) => signer_.getAccountId().toString() === accountId\n );\n await this.dAppConnector?.disconnect(signer?.topic);\n this.logger.info(`Disconnected from ${accountId} on ${network}`);\n return true;\n } catch (e) {\n this.logger.error('Failed to disconnect', e);\n return false;\n }\n }\n\n public async disconnectAll(): Promise {\n try {\n this.ensureInitialized();\n await this.dAppConnector?.disconnectAll();\n this.logger.info(`Disconnected from all wallets`);\n return true;\n } catch (e) {\n this.logger.error('Failed to disconnect', e);\n return false;\n }\n }\n\n public async executeTransaction(\n tx: Transaction,\n disableSigner: boolean = false\n ): Promise {\n this.ensureInitialized();\n const accountInfo = this.getAccountInfo();\n const accountId = accountInfo?.accountId;\n const signer = this.dAppConnector.signers.find(\n (signer_) => signer_.getAccountId().toString() === accountId\n );\n if (!disableSigner) {\n const signedTx = await tx.freezeWithSigner(signer);\n const executedTx = await signedTx.executeWithSigner(signer);\n return await executedTx.getReceiptWithSigner(signer);\n } else {\n const executedTx = await tx.executeWithSigner(signer);\n return await executedTx.getReceiptWithSigner(signer);\n }\n }\n\n public async executeTransactionWithErrorHandling(\n tx: Transaction,\n disableSigner: boolean\n ): Promise<{ result?: TransactionReceipt; error?: string }> {\n try {\n const result = await this.executeTransaction(tx, disableSigner);\n return {\n result,\n error: undefined,\n };\n } catch (e) {\n const error = e as Error;\n const message = error.message?.toLowerCase();\n this.logger.error('Failed to execute transaction', e);\n this.logger.error('Failure reason for transaction is', message);\n if (message.includes('insufficient payer balance')) {\n return {\n result: undefined,\n error: 'Insufficient balance to complete the transaction.',\n };\n } else if (message.includes('reject')) {\n return {\n result: undefined,\n error: 'You rejected the transaction',\n };\n } else if (message.includes('invalid signature')) {\n return {\n result: undefined,\n error: 'Invalid signature. Please check your account and try again.',\n };\n } else if (message.includes('transaction expired')) {\n return {\n result: undefined,\n error: 'Transaction expired. Please try again.',\n };\n } else if (message.includes('account not found')) {\n return {\n result: undefined,\n error:\n 'Account not found. Please check the account ID and try again.',\n };\n } else if (message.includes('unauthorized')) {\n return {\n result: undefined,\n error:\n 'Unauthorized. You may not have the necessary permissions for this action.',\n };\n } else if (message.includes('busy')) {\n return {\n result: undefined,\n error: 'The network is busy. Please try again later.',\n };\n } else if (message.includes('invalid transaction')) {\n return {\n result: undefined,\n error: 'Invalid transaction. Please check your inputs and try again.',\n };\n }\n }\n }\n\n public async submitMessageToTopic(\n topicId: string,\n message: string,\n submitKey?: PrivateKey\n ): Promise {\n this.ensureInitialized();\n\n let transaction = new TopicMessageSubmitTransaction()\n .setTopicId(TopicId.fromString(topicId))\n .setMessage(message);\n\n if (submitKey) {\n transaction = await transaction.sign(submitKey);\n }\n\n return this.executeTransaction(transaction);\n }\n\n public async transferHbar(\n fromAccountId: string,\n toAccountId: string,\n amount: number\n ): Promise {\n this.ensureInitialized();\n\n const transaction = new TransferTransaction()\n .setTransactionId(TransactionId.generate(fromAccountId))\n .addHbarTransfer(AccountId.fromString(fromAccountId), new Hbar(-amount))\n .addHbarTransfer(AccountId.fromString(toAccountId), new Hbar(amount));\n\n return this.executeTransaction(transaction);\n }\n\n async executeSmartContract(\n contractId: string,\n functionName: string,\n parameters: ContractFunctionParameters,\n gas: number = 100000\n ): Promise {\n this.ensureInitialized();\n\n const transaction = new ContractExecuteTransaction()\n .setContractId(ContractId.fromString(contractId))\n .setGas(gas)\n .setFunction(functionName, parameters);\n\n return this.executeTransaction(transaction);\n }\n\n private handleNewSession(session: SessionTypes.Struct) {\n const sessionAccount = session.namespaces?.hedera?.accounts?.[0];\n const sessionParts = sessionAccount?.split(':');\n const accountId = sessionParts.pop();\n const network = sessionParts.pop();\n this.logger.info('sessionAccount is', accountId, network);\n if (!accountId) {\n this.logger.error('No account id found in the session');\n return;\n } else {\n this.saveConnectionInfo(accountId, network);\n }\n }\n\n private getNetworkPrefix(): string {\n const accountInfo = this.getAccountInfo();\n const network = accountInfo?.network;\n\n if (!network) {\n this.logger.warn('Network is not set on SDK, defaulting.');\n\n const cachedNetwork = localStorage.getItem('connectedNetwork');\n\n if (cachedNetwork) {\n return cachedNetwork;\n }\n\n return 'mainnet-public';\n }\n\n if (network !== this.network) {\n this.logger.warn(\n 'Detected network mismatch, reverting to signer network',\n network\n );\n this.network = network;\n }\n\n return network.isMainnet() ? 'mainnet-public' : 'testnet';\n }\n\n public async requestAccount(account: string): Promise {\n try {\n const networkPrefix = this.getNetworkPrefix();\n\n const url = `https://${networkPrefix}.mirrornode.hedera.com/api/v1/accounts/${account}`;\n const response = await fetchWithRetry()(url);\n if (!response.ok) {\n throw new Error(\n `Failed to make request to mirror node for account: ${response.status}`\n );\n }\n return await response.json();\n } catch (e) {\n this.logger.error('Failed to fetch account', e);\n throw e;\n }\n }\n\n public async getAccountBalance(): Promise {\n this.ensureInitialized();\n const accountInfo = this.getAccountInfo();\n const account = accountInfo?.accountId;\n\n if (!account) {\n return null;\n }\n\n const accountResponse = await this.requestAccount(account);\n if (!accountResponse) {\n throw new Error(\n 'Failed to fetch account. Try again or check if the Account ID is valid.'\n );\n }\n const balance = accountResponse.balance.balance / 10 ** 8;\n return Number(balance).toLocaleString('en-US');\n }\n\n public getAccountInfo(): {\n accountId: string;\n network: LedgerId;\n } {\n const { accountId: cachedAccountId } = this.loadConnectionInfo();\n if (!cachedAccountId) {\n return null;\n }\n const signers = this?.dAppConnector?.signers;\n\n if (!signers?.length) {\n return null;\n }\n\n const cachedSigner = this.dAppConnector.signers.find(\n (signer_) => signer_.getAccountId().toString() === cachedAccountId\n );\n if (!cachedSigner) {\n return null;\n }\n const accountId = cachedSigner?.getAccountId()?.toString();\n if (!accountId) {\n return null;\n }\n const network = cachedSigner.getLedgerId();\n return {\n accountId,\n network,\n };\n }\n\n \n public async getAllMessages(topicId: string): Promise {\n this.ensureInitialized();\n \n if (!topicId) {\n throw new Error('Topic ID is required');\n }\n \n const accountInfo = this.getAccountInfo();\n if (!accountInfo?.accountId) {\n throw new Error('No connected account found');\n }\n \n const signer = this.dAppConnector.signers.find(\n (signer_) => signer_.getAccountId().toString() === accountInfo.accountId\n );\n if (!signer) {\n throw new Error('No signer found');\n }\n \n if (signer.getLedgerId().toString() !== this.network.toString()) {\n throw new Error('Network mismatch');\n }\n \n const messages: string[] = [];\n \n await new Promise((resolve, reject) => {\n const subscription = new TopicMessageQuery()\n .setTopicId(TopicId.fromString(topicId))\n .setStartTime(0)\n .subscribe(\n signer,\n (message: TopicMessage) => {\n const messageContent = new TextDecoder('utf-8').decode(message.contents);\n messages.push(messageContent);\n resolve(); // Resolve after receiving messages\n },\n (error: Error) => reject(new Error(`Failed to retrieve messages: ${error.message}`))\n );\n \n // Optionally, you can set a timeout to resolve if no messages are received\n setTimeout(() => resolve(), 5000); // Resolve after 5 seconds if no messages\n });\n \n return messages;\n }\n \n public async generatePrivateAndPublicKey(): Promise<{\n privateKey: string;\n publicKey: string;\n }> {\n this.ensureInitialized();\n const privateKey = await PrivateKey.generateED25519Async();\n const publicKey = privateKey.publicKey;\n return {\n privateKey: privateKey.toString(),\n publicKey: publicKey.toString()\n };\n }\n\n public async updateTopic(topicId: string, memo: string, adminKey: string,\n customFees?: { denominatingTokenId: string, amount: string, collectorAccountId: string }[],\n feeScheduleKey?:string\n ): Promise {\n this.ensureInitialized();\n \n // Validate inputs\n if (!topicId) {\n throw new Error('Topic ID is required');\n }\n if (!adminKey) {\n throw new Error('Admin key is required for topic update');\n }\n \n // Get account info and signer\n const accountInfo = this.getAccountInfo();\n if (!accountInfo?.accountId) {\n throw new Error('No connected account found');\n }\n \n const signer = this.dAppConnector.signers.find(\n (signer_) => signer_.getAccountId().toString() === accountInfo.accountId\n );\n if (!signer) {\n throw new Error('No signer found for the connected account');\n }\n \n // Validate network\n if (signer.getLedgerId().toString() !== this.network.toString()) {\n throw new Error('Network mismatch between signer and SDK configuration');\n }\n \n // Create and configure the transaction\n let transaction = new TopicUpdateTransaction()\n .setTopicId(TopicId.fromString(topicId))\n .setTopicMemo(memo || '');\n \n // Helper function to parse a key as either private or public key (for future-proofing)\n const parseKey = (key: string, keyType: 'admin'): PublicKey => {\n try {\n const privateKey = PrivateKey.fromString(key);\n this.logger.debug(`Parsed ${keyType} key as private key:`, privateKey.toString());\n return privateKey.publicKey;\n } catch (privateError) {\n this.logger.debug(`Failed to parse ${keyType} key as private key:`, privateError);\n try {\n const publicKey = PublicKey.fromString(key);\n this.logger.debug(`Parsed ${keyType} key as public key:`, publicKey.toString());\n return publicKey;\n } catch (publicError) {\n this.logger.error(`Invalid ${keyType} key format:`, publicError);\n throw new Error(`Invalid ${keyType} key format: ${publicError.message}`);\n }\n }\n };\n \n // Handle admin key (set the key but don’t sign yet)\n let adminPrivateKey: PrivateKey | null = null;\n try {\n adminPrivateKey = PrivateKey.fromString(adminKey);\n transaction.setAdminKey(adminPrivateKey.publicKey);\n this.logger.debug('Admin key set with private key:', adminPrivateKey.publicKey.toString());\n } catch (e) {\n this.logger.error('Invalid admin key provided:', e);\n throw new Error('Invalid admin key format: Admin key must be a valid private key for topic update');\n }\n\n // Handle custom fees if provided\n if (customFees && customFees.length > 0) {\n const hederaCustomFees = customFees.map(fee => {\n // Validate fee structure\n if (!fee.denominatingTokenId || !fee.amount || !fee.collectorAccountId) {\n throw new Error('Invalid custom fee: denominatingTokenId, amount, and collectorAccountId are required');\n }\n // Parse amount as a number\n const feeAmount = parseFloat(fee.amount);\n if (isNaN(feeAmount) || feeAmount <= 0) {\n throw new Error('Invalid amount: must be a positive number');\n }\n // Create a CustomFixedFee\n const customFee = new CustomFixedFee()\n .setAmount(feeAmount)\n .setFeeCollectorAccountId(fee.collectorAccountId)\n .setDenominatingTokenId(fee.denominatingTokenId);\n return customFee;\n });\n transaction.setCustomFees(hederaCustomFees);\n this.logger.debug('Custom fixed fees set:', hederaCustomFees);\n }\n \n // Freeze the transaction before signing\n transaction = await transaction.freezeWithSigner(signer);\n this.logger.debug('Transaction frozen with signer:', signer.getAccountId().toString());\n \n // Sign with admin private key (after freezing)\n if (adminPrivateKey) {\n transaction = await transaction.sign(adminPrivateKey);\n this.logger.debug('Transaction signed with admin private key');\n }\n\n // Sign with fee schedule key if custom fees are provided\n if (customFees && customFees.length > 0 && feeScheduleKey) {\n let feeSchedulePrivateKey: PrivateKey;\n try {\n feeSchedulePrivateKey = PrivateKey.fromString(feeScheduleKey);\n transaction = await transaction.sign(feeSchedulePrivateKey);\n this.logger.debug('Transaction signed with fee schedule private key');\n } catch (e) {\n this.logger.error('Invalid fee schedule key provided:', e);\n throw new Error('Invalid fee schedule key format: Fee schedule key must be a valid private key');\n }\n }\n \n // Execute the transaction, disabling internal signer freeze to avoid double-freezing\n const { result, error } = await this.executeTransactionWithErrorHandling(transaction, true);\n if (error) {\n throw new Error(`Failed to update topic: ${error}`);\n }\n \n this.logger.debug('Topic updated successfully with ID:', result.topicId!.toString());\n return result.topicId!.toString();\n }\n\n public async createTopic(\n memo?: string,\n adminKey?: string,\n customFees?: { denominatingTokenId: string, amount: string, collectorAccountId: string }[] // Updated type\n): Promise {\n this.ensureInitialized();\n\n // Get account info and signer\n const accountInfo = this.getAccountInfo();\n if (!accountInfo?.accountId) {\n throw new Error('No connected account found');\n }\n\n const signer = this.dAppConnector.signers.find(\n (signer_) => signer_.getAccountId().toString() === accountInfo.accountId\n );\n if (!signer) {\n throw new Error('No signer found for the connected account');\n }\n\n // Validate network\n if (signer.getLedgerId().toString() !== this.network.toString()) {\n throw new Error('Network mismatch between signer and SDK configuration');\n }\n\n // Create and configure the transaction\n let transaction = new TopicCreateTransaction().setTopicMemo(memo || '');\n\n // Helper function to parse a key as either private or public key\n const parseKey = (key: string, keyType: 'admin' | 'submit'): PublicKey => {\n try {\n const privateKey = PrivateKey.fromString(key);\n this.logger.debug(`Parsed ${keyType} key as private key:`, privateKey.toString());\n return privateKey.publicKey;\n } catch (privateError) {\n this.logger.debug(`Failed to parse ${keyType} key as private key:`, privateError);\n try {\n const publicKey = PublicKey.fromString(key);\n this.logger.debug(`Parsed ${keyType} key as public key:`, publicKey.toString());\n return publicKey;\n } catch (publicError) {\n this.logger.error(`Invalid ${keyType} key format:`, publicError);\n throw new Error(`Invalid ${keyType} key format: ${publicError.message}`);\n }\n }\n };\n\n // Handle admin key (set the key but don’t sign yet)\n let adminPrivateKey: PrivateKey | null = null;\n// After setting the admin key\nif (adminKey) {\n try {\n adminPrivateKey = PrivateKey.fromString(adminKey);\n transaction.setAdminKey(adminPrivateKey.publicKey);\n transaction.setFeeScheduleKey(adminPrivateKey.publicKey); // Set feeScheduleKey to same as adminKey\n this.logger.debug('Admin key and feeScheduleKey set with private key:', adminPrivateKey.publicKey.toString());\n } catch {\n const adminPublicKey = parseKey(adminKey, 'admin');\n transaction.setAdminKey(adminPublicKey);\n transaction.setFeeScheduleKey(adminPublicKey); // Set feeScheduleKey to same as adminKey\n this.logger.debug('Admin key and feeScheduleKey set with public key:', adminPublicKey.toString());\n }\n}\n\n // Handle custom fees if provided\n if (customFees && customFees.length > 0) {\n const hederaCustomFees = customFees.map(fee => {\n // Validate fee structure\n if (!fee.denominatingTokenId || !fee.amount || !fee.collectorAccountId) {\n throw new Error('Invalid custom fee: denominatingTokenId, amount, and collectorAccountId are required');\n }\n // Parse amount as a number\n const feeAmount = parseFloat(fee.amount);\n if (isNaN(feeAmount) || feeAmount <= 0) {\n throw new Error('Invalid amount: must be a positive number');\n }\n // Create a CustomFixedFee\n const customFee = new CustomFixedFee()\n .setAmount(feeAmount)\n .setFeeCollectorAccountId(fee.collectorAccountId)\n .setDenominatingTokenId(fee.denominatingTokenId);\n return customFee;\n });\n transaction.setCustomFees(hederaCustomFees);\n this.logger.debug('Custom fixed fees set:', hederaCustomFees);\n }\n\n // Freeze the transaction before signing\n transaction = await transaction.freezeWithSigner(signer);\n this.logger.debug('Transaction frozen with signer:', signer.getAccountId().toString());\n\n // Sign with admin private key if provided (after freezing)\n if (adminPrivateKey) {\n transaction = await transaction.sign(adminPrivateKey);\n this.logger.debug('Transaction signed with admin private key');\n }\n\n // Execute the transaction, disabling internal signer freeze to avoid double-freezing\n const receipt = await this.executeTransaction(transaction, true);\n if (!receipt.topicId) {\n throw new Error('Failed to create topic: No topic ID in receipt');\n }\n\n this.logger.debug('Topic created successfully with ID:', receipt.topicId.toString());\n return receipt.topicId.toString();\n}\n\n public async createToken(\n name: string,\n symbol: string,\n initialSupply: number,\n decimals: number,\n treasuryAccountId: string,\n adminKey: string,\n supplyKey: string\n ): Promise {\n this.ensureInitialized();\n\n let transaction = new TokenCreateTransaction()\n .setTokenName(name)\n .setTokenSymbol(symbol)\n .setDecimals(decimals)\n .setInitialSupply(initialSupply)\n .setTreasuryAccountId(AccountId.fromString(treasuryAccountId))\n .setTokenType(TokenType.NonFungibleUnique)\n .setSupplyType(TokenSupplyType.Finite);\n\n if (supplyKey) {\n transaction = transaction.setSupplyKey(PrivateKey.fromString(supplyKey));\n }\n\n if (adminKey) {\n transaction = transaction.setAdminKey(PrivateKey.fromString(adminKey));\n transaction = await transaction.sign(PrivateKey.fromString(adminKey));\n }\n\n const receipt = await this.executeTransaction(transaction);\n return receipt.tokenId!.toString();\n }\n\n public async mintNFT(\n tokenId: string,\n metadata: string,\n supplyKey: PrivateKey\n ): Promise {\n this.ensureInitialized();\n\n let transaction = await new TokenMintTransaction()\n .setTokenId(tokenId)\n .setMetadata([Buffer.from(metadata, 'utf-8')])\n .sign(supplyKey);\n\n return this.executeTransaction(transaction);\n }\n\n public async getTopicInfo(topicId: string, network?: string): Promise {\n this.ensureInitialized();\n \n try {\n // Validate input\n if (!topicId) {\n throw new Error('Topic ID is required');\n }\n \n // Determine the network prefix\n const networkPrefix = network || this.getNetworkPrefix();\n const baseUrl = `https://${networkPrefix}.mirrornode.hedera.com`;\n \n // Construct the URL for the topic info endpoint\n const url = `${baseUrl}/api/v1/topics/${topicId}`;\n \n // Fetch the topic info\n const response = await fetchWithRetry()(url);\n if (!response.ok) {\n throw new Error(\n `Failed to make request to mirror node for topic info: ${response.status}`\n );\n }\n \n const data = await response.json();\n \n // Log the retrieved topic info\n this.logger.info('Topic info retrieved:', data);\n \n return data;\n } catch (error) {\n this.logger.error('Error fetching topic info:', error);\n throw new Error(`Failed to retrieve topic info: ${error.message}`);\n }\n }\n\n public async getMessages(\n topicId: string,\n lastTimestamp?: number,\n disableTimestampFilter: boolean = false,\n network?: string\n ): Promise {\n const networkPrefix = network || this.getNetworkPrefix();\n const baseUrl = `https://${networkPrefix}.mirrornode.hedera.com`;\n const timestampQuery =\n Number(lastTimestamp) > 0 && !disableTimestampFilter\n ? `×tamp=gt:${lastTimestamp}`\n : '';\n\n const url = `${baseUrl}/api/v1/topics/${topicId}/messages?limit=200${timestampQuery}`;\n\n try {\n const response = await fetchWithRetry()(url);\n if (!response.ok) {\n throw new Error(\n `Failed to make request to mirror node: ${response.status}`\n );\n }\n const data = await response.json();\n const messages = data?.messages || [];\n const nextLink = data?.links?.next;\n\n const collectedMessages: Message[] = messages.map((msg: any) => {\n const parsedMessage = JSON.parse(atob(msg.message));\n return {\n ...parsedMessage,\n payer: msg.payer_account_id,\n created: new Date(Number(msg.consensus_timestamp) * 1000),\n consensus_timestamp: msg.consensus_timestamp,\n sequence_number: msg.sequence_number,\n };\n });\n\n if (nextLink) {\n const nextResult = await this.getMessages(\n topicId,\n Number(\n collectedMessages[collectedMessages.length - 1]?.consensus_timestamp\n ),\n disableTimestampFilter\n );\n collectedMessages.push(...nextResult.messages);\n }\n\n return {\n messages: collectedMessages.sort(\n (a, b) => a.sequence_number - b.sequence_number\n ),\n error: '',\n };\n } catch (error) {\n this.logger.error('Error fetching topic data:', error);\n return {\n messages: [],\n error: (error as Error).toString(),\n };\n }\n }\n\n public async signMessage(message: string) {\n const dAppConnector = this.dAppConnector;\n if (!dAppConnector) {\n throw new Error('No active connection or signer');\n }\n\n const accountInfo = this.getAccountInfo();\n const accountId = accountInfo?.accountId;\n\n const params = {\n signerAccountId: `hedera:${this.network}:${accountId}`,\n message,\n };\n\n const result = (await dAppConnector.signMessage(\n params\n )) as SignMessageResult;\n\n // @ts-ignore\n return { userSignature: result.signatureMap };\n }\n\n private saveConnectionInfo(\n accountId: string | undefined,\n connectedNetwork?: string | undefined\n ): void {\n if (!accountId) {\n localStorage.removeItem('connectedAccountId');\n localStorage.removeItem('connectedNetwork');\n } else {\n const cleanNetwork = connectedNetwork?.replace(/['\"]+/g, '');\n localStorage.setItem('connectedNetwork', cleanNetwork);\n localStorage.setItem('connectedAccountId', accountId);\n }\n }\n\n public loadConnectionInfo(): {\n accountId: string | null;\n network: string | null;\n } {\n return {\n accountId: localStorage.getItem('connectedAccountId'),\n network: localStorage.getItem('connectedNetwork'),\n };\n }\n\n public async connectWallet(\n PROJECT_ID: string,\n APP_METADATA: SignClientTypes.Metadata,\n network?: LedgerId\n ): Promise<{\n accountId: string;\n balance: string;\n session: SessionTypes.Struct;\n }> {\n try {\n await this.init(PROJECT_ID, APP_METADATA, network);\n const session = await this.connect();\n\n const accountInfo = this.getAccountInfo();\n const accountId = accountInfo?.accountId;\n const balance = await this.getAccountBalance();\n const networkPrefix = this.getNetworkPrefix();\n\n this.saveConnectionInfo(accountId, networkPrefix);\n return {\n accountId,\n balance,\n session,\n };\n } catch (error) {\n this.logger.error('Failed to connect wallet:', error);\n throw error;\n }\n }\n\n public async disconnectWallet(\n clearStorage: boolean = true\n ): Promise {\n try {\n const success = await this.disconnect();\n\n if (success && clearStorage) {\n localStorage.clear();\n }\n\n this.saveConnectionInfo(undefined);\n return success;\n } catch (error) {\n this.logger.error('Failed to disconnect wallet:', error);\n return false;\n }\n }\n\n public async initAccount(\n PROJECT_ID: string,\n APP_METADATA: SignClientTypes.Metadata,\n networkOverride?: LedgerId,\n onSessionIframeCreated: (session: SessionTypes.Struct) => void = () => {}\n ): Promise<{ accountId: string; balance: string } | null> {\n const { accountId: savedAccountId, network: savedNetwork } =\n this.loadConnectionInfo();\n\n if (savedAccountId && savedNetwork) {\n try {\n const defaultNetwork =\n savedNetwork === 'mainnet' ? LedgerId.MAINNET : LedgerId.TESTNET;\n const network = networkOverride || defaultNetwork;\n await this.init(\n PROJECT_ID,\n APP_METADATA,\n network,\n onSessionIframeCreated\n );\n const balance = await this.getAccountBalance();\n return {\n accountId: savedAccountId,\n balance,\n };\n } catch (error) {\n this.logger.error('Failed to reconnect:', error);\n this.saveConnectionInfo(undefined, undefined);\n return null;\n }\n } else if (networkOverride) {\n try {\n this.logger.info(\n 'initializing normally through override.',\n networkOverride\n );\n await this.init(\n PROJECT_ID,\n APP_METADATA,\n networkOverride,\n onSessionIframeCreated\n );\n this.logger.info('initialized', networkOverride);\n await this.connectViaDappBrowser();\n this.logger.info('connected via dapp browser');\n } catch (error) {\n this.logger.error('Failed to fallback connect:', error);\n this.saveConnectionInfo(undefined, undefined);\n return null;\n }\n }\n\n return null;\n }\n\n public subscribeToExtensions(callback: (extension: any) => void) {\n // Clear any existing interval and reset flag\n if (this.extensionCheckInterval) {\n clearInterval(this.extensionCheckInterval);\n }\n this.hasCalledExtensionCallback = false;\n\n // Set up polling to check for extensions\n this.extensionCheckInterval = setInterval(() => {\n const extensions = this.dAppConnector?.extensions || [];\n const availableExtension = extensions.find(\n (ext) => ext.availableInIframe\n );\n\n if (availableExtension && !this.hasCalledExtensionCallback) {\n this.hasCalledExtensionCallback = true;\n callback(availableExtension);\n // Clear the interval once we find an available extension\n if (this.extensionCheckInterval) {\n clearInterval(this.extensionCheckInterval);\n this.extensionCheckInterval = null;\n }\n }\n }, 1000); // Check every second\n\n // Return cleanup function\n return () => {\n if (this.extensionCheckInterval) {\n clearInterval(this.extensionCheckInterval);\n this.extensionCheckInterval = null;\n }\n this.hasCalledExtensionCallback = false;\n };\n }\n\n public async connectViaDappBrowser() {\n const extensions = this.dAppConnector.extensions || [];\n const extension = extensions.find((ext) => {\n this.logger.info('Checking extension', ext);\n return ext.availableInIframe;\n });\n this.logger.info('extensions are', extensions, extension);\n\n if (extension) {\n await this.connectToExtension(extension);\n } else {\n // If no extension is immediately available, subscribe to changes\n this.subscribeToExtensions(async (newExtension) => {\n await this.connectToExtension(newExtension);\n });\n }\n }\n\n private async connectToExtension(extension: any) {\n this.logger.info('found extension, connecting to iframe.', extension);\n const session = await this.dAppConnector.connectExtension(extension.id);\n const onSessionIframeCreated = this.dAppConnector.onSessionIframeCreated;\n if (onSessionIframeCreated) {\n onSessionIframeCreated(session);\n }\n }\n\n private ensureInitialized(): void {\n if (!this.dAppConnector) {\n throw new Error('SDK not initialized. Call init() first.');\n }\n }\n\n static run(): void {\n try {\n if (typeof window !== 'undefined') {\n (window as any).HashinalsWalletConnectSDK =\n HashinalsWalletConnectSDK.getInstance();\n (window as any).HashgraphSDK = HashgraphSDK;\n }\n } catch (e) {\n console.error('[ERROR]: failed setting sdk on window');\n }\n }\n\n public async transferToken(\n tokenId: string,\n fromAccountId: string,\n toAccountId: string,\n amount: number\n ): Promise {\n this.ensureInitialized();\n\n const transaction = new TransferTransaction()\n .setTransactionId(TransactionId.generate(fromAccountId))\n .addTokenTransfer(\n TokenId.fromString(tokenId),\n AccountId.fromString(fromAccountId),\n -amount\n )\n .addTokenTransfer(\n TokenId.fromString(tokenId),\n AccountId.fromString(toAccountId),\n amount\n );\n\n return this.executeTransaction(transaction);\n }\n\n async createAccount(initialBalance: number): Promise {\n this.ensureInitialized();\n\n const transaction = new AccountCreateTransaction().setInitialBalance(\n new Hbar(initialBalance)\n );\n\n return this.executeTransaction(transaction);\n }\n\n public async associateTokenToAccount(\n accountId: string,\n tokenId: string\n ): Promise {\n this.ensureInitialized();\n\n const transaction = new TokenAssociateTransaction()\n .setAccountId(AccountId.fromString(accountId))\n .setTokenIds([TokenId.fromString(tokenId)]);\n\n return this.executeTransaction(transaction);\n }\n\n public async dissociateTokenFromAccount(\n accountId: string,\n tokenId: string\n ): Promise {\n this.ensureInitialized();\n\n const transaction = new TokenDissociateTransaction()\n .setAccountId(AccountId.fromString(accountId))\n .setTokenIds([TokenId.fromString(tokenId)]);\n\n return this.executeTransaction(transaction);\n }\n\n public async updateAccount(\n accountId: string,\n maxAutomaticTokenAssociations: number\n ): Promise {\n this.ensureInitialized();\n\n const transaction = new AccountUpdateTransaction()\n .setAccountId(AccountId.fromString(accountId))\n .setMaxAutomaticTokenAssociations(maxAutomaticTokenAssociations);\n\n return this.executeTransaction(transaction);\n }\n\n public async approveAllowance(\n spenderAccountId: string,\n tokenId: string,\n amount: number,\n ownerAccountId: string\n ): Promise {\n this.ensureInitialized();\n\n const transaction =\n new AccountAllowanceApproveTransaction().approveTokenAllowance(\n TokenId.fromString(tokenId),\n AccountId.fromString(ownerAccountId),\n AccountId.fromString(spenderAccountId),\n amount\n );\n\n return this.executeTransaction(transaction);\n }\n\n public async getAccountTokens(\n accountId: string\n ): Promise<{ tokens: TokenBalance[] }> {\n this.ensureInitialized();\n\n const networkPrefix = this.getNetworkPrefix();\n const baseUrl = `https://${networkPrefix}.mirrornode.hedera.com`;\n const url = `${baseUrl}/api/v1/accounts/${accountId}/tokens?limit=200`;\n\n try {\n const response = await fetchWithRetry()(url);\n if (!response.ok) {\n throw new Error(\n `Failed to make request to mirror node for account tokens: ${response.status}`\n );\n }\n const data = await response.json();\n\n const tokens: TokenBalance[] = [];\n\n for (const token of data.tokens) {\n if (token.token_id) {\n tokens.push({\n tokenId: token.token_id,\n balance: token.balance,\n decimals: token.decimals,\n formatted_balance: (\n token.balance /\n 10 ** token.decimals\n ).toLocaleString('en-US'),\n created_timestamp: new Date(Number(token.created_timestamp) * 1000),\n });\n }\n }\n let nextLink = data.links?.next;\n while (nextLink) {\n const nextUrl = `${baseUrl}${nextLink}`;\n const nextResponse = await fetchWithRetry()(nextUrl);\n if (!nextResponse.ok) {\n throw new Error(\n `Failed to make request to mirror node for account tokens: ${nextResponse.status}, page: ${nextUrl}`\n );\n }\n const nextData = await nextResponse.json();\n\n for (const token of nextData.tokens) {\n if (token.token_id) {\n tokens.push({\n tokenId: token.token_id,\n balance: token.balance,\n decimals: token.decimals,\n formatted_balance: (\n token.balance /\n 10 ** token.decimals\n ).toLocaleString('en-US'),\n created_timestamp: new Date(\n Number(token.created_timestamp) * 1000\n ),\n });\n }\n }\n\n nextLink = nextData.links?.next;\n }\n\n return { tokens };\n } catch (error) {\n this.logger.error('Error fetching account tokens:', error);\n throw error;\n }\n }\n\n public async getTransaction(\n transactionId: string\n ): Promise {\n try {\n const networkPrefix = this.getNetworkPrefix();\n const url = `https://${networkPrefix}.mirrornode.hedera.com/api/v1/transactions/${transactionId}`;\n\n this.logger.debug('Fetching transaction', url);\n const request = await fetchWithRetry()(url);\n\n if (!request.ok) {\n throw new Error(`Failed to fetch transaction: ${request.status}`);\n }\n\n return await request.json();\n } catch (e) {\n this.logger.error('Failed to get transaction', e);\n return null;\n }\n }\n\n public async getTransactionByTimestamp(\n timestamp: string\n ): Promise {\n try {\n const networkPrefix = this.getNetworkPrefix();\n const url = `https://${networkPrefix}.mirrornode.hedera.com/api/v1/transactions?timestamp=${timestamp}`;\n\n this.logger.debug('Fetching transaction by timestamp', url);\n const request = await fetchWithRetry()(url);\n\n if (!request.ok) {\n throw new Error(\n `Failed to fetch transaction by timestamp: ${request.status}`\n );\n }\n\n const response = (await request.json()) as HederaTXResponse;\n const transaction = response?.transactions?.[0];\n\n if (transaction) {\n return await this.getTransaction(transaction.transaction_id);\n }\n\n return null;\n } catch (e) {\n this.logger.error('Failed to get transaction by timestamp', e);\n return null;\n }\n }\n\n public async getAccountNFTs(\n accountId: string,\n tokenId?: string\n ): Promise {\n try {\n const networkPrefix = this.getNetworkPrefix();\n const tokenQuery = tokenId ? `&token.id=${tokenId}` : '';\n const url = `https://${networkPrefix}.mirrornode.hedera.com/api/v1/accounts/${accountId}/nfts?limit=200${tokenQuery}`;\n\n const request = await fetchWithRetry()(url);\n if (!request.ok) {\n throw new Error(`Failed to fetch NFTs for account: ${request.status}`);\n }\n\n const response = (await request.json()) as HBarNFT;\n let nextLink: string | null = response?.links?.next || null;\n let nfts = response.nfts;\n\n while (nextLink) {\n try {\n const nextRequest = await fetchWithRetry()(\n `https://${networkPrefix}.mirrornode.hedera.com${nextLink}`\n );\n\n if (!nextRequest.ok) {\n throw new Error(\n `Failed to fetch next page of NFTs: ${nextRequest.status}`\n );\n }\n\n const nextResponse = (await nextRequest.json()) as HBarNFT;\n nfts = [...nfts, ...(nextResponse?.nfts || [])];\n\n nextLink =\n nextResponse?.links?.next && nextLink !== nextResponse?.links?.next\n ? nextResponse.links.next\n : null;\n } catch (e) {\n this.logger.error('Failed to fetch next page of NFTs', e);\n break;\n }\n }\n\n return nfts.map((nft) => {\n try {\n nft.token_uri = Buffer.from(nft.metadata, 'base64').toString('ascii');\n } catch (e) {\n this.logger.error('Failed to decode NFT metadata', e);\n }\n return nft;\n });\n } catch (e) {\n this.logger.error('Failed to get account NFTs', e);\n return [];\n }\n }\n\n public async validateNFTOwnership(\n serialNumber: string,\n accountId: string,\n tokenId: string\n ): Promise {\n const userNFTs = await this.getAccountNFTs(accountId, tokenId);\n\n return (\n userNFTs.find(\n (nft) =>\n nft.token_id === tokenId &&\n nft.serial_number.toString() === serialNumber\n ) || null\n );\n }\n\n public async readSmartContract(\n data: string,\n fromAccount: AccountId,\n contractId: ContractId,\n estimate: boolean = true,\n value: number = 0\n ): Promise {\n try {\n const networkPrefix = this.getNetworkPrefix();\n const body: any = {\n block: 'latest',\n data: data,\n estimate: estimate,\n from: fromAccount.toSolidityAddress(),\n to: contractId.toSolidityAddress(),\n value,\n };\n\n if (!estimate) {\n body.gas = 300000;\n body.gasPrice = 100000000;\n }\n\n const url = `https://${networkPrefix}.mirrornode.hedera.com/api/v1/contracts/call`;\n\n const response = await fetchWithRetry()(url, {\n method: 'POST',\n body: JSON.stringify(body),\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n\n if (!response.ok) {\n throw new Error(`Failed to make contract call: ${response.status}`);\n }\n\n return await response.json();\n } catch (e) {\n this.logger.error('Failed to make contract call', e);\n return null;\n }\n }\n}\n\n// This variable is replaced at build time.\n// @ts-ignore\nif ('VITE_BUILD_FORMAT' === 'umd') {\n HashinalsWalletConnectSDK.run();\n}\n\nexport * from './types';\nexport * from './sign';\nexport { HashinalsWalletConnectSDK, HashgraphSDK };\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=window,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),n=new WeakMap;class o{constructor(t,e,n){if(this._$cssResult$=!0,n!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=n.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&n.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new o(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const n=1===t.length?t[0]:e.reduce(((e,s,n)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[n+1]),t[0]);return new o(n,t,s)},S=(s,n)=>{e?s.adoptedStyleSheets=n.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet)):n.forEach((e=>{const n=document.createElement(\"style\"),o=t.litNonce;void 0!==o&&n.setAttribute(\"nonce\",o),n.textContent=e.cssText,s.appendChild(n)}))},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{o as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as i}from\"./css-tag.js\";export{CSSResult,adoptStyles,css,getCompatibleStyle,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */var s;const e=window,r=e.trustedTypes,h=r?r.emptyScript:\"\",o=e.reactiveElementPolyfillSupport,n={toAttribute(t,i){switch(i){case Boolean:t=t?h:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,i){let s=t;switch(i){case Boolean:s=null!==t;break;case Number:s=null===t?null:Number(t);break;case Object:case Array:try{s=JSON.parse(t)}catch(t){s=null}}return s}},a=(t,i)=>i!==t&&(i==i||t==t),l={attribute:!0,type:String,converter:n,reflect:!1,hasChanged:a},d=\"finalized\";class u extends HTMLElement{constructor(){super(),this._$Ei=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$El=null,this._$Eu()}static addInitializer(t){var i;this.finalize(),(null!==(i=this.h)&&void 0!==i?i:this.h=[]).push(t)}static get observedAttributes(){this.finalize();const t=[];return this.elementProperties.forEach(((i,s)=>{const e=this._$Ep(s,i);void 0!==e&&(this._$Ev.set(e,s),t.push(e))})),t}static createProperty(t,i=l){if(i.state&&(i.attribute=!1),this.finalize(),this.elementProperties.set(t,i),!i.noAccessor&&!this.prototype.hasOwnProperty(t)){const s=\"symbol\"==typeof t?Symbol():\"__\"+t,e=this.getPropertyDescriptor(t,s,i);void 0!==e&&Object.defineProperty(this.prototype,t,e)}}static getPropertyDescriptor(t,i,s){return{get(){return this[i]},set(e){const r=this[t];this[i]=e,this.requestUpdate(t,r,s)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)||l}static finalize(){if(this.hasOwnProperty(d))return!1;this[d]=!0;const t=Object.getPrototypeOf(this);if(t.finalize(),void 0!==t.h&&(this.h=[...t.h]),this.elementProperties=new Map(t.elementProperties),this._$Ev=new Map,this.hasOwnProperty(\"properties\")){const t=this.properties,i=[...Object.getOwnPropertyNames(t),...Object.getOwnPropertySymbols(t)];for(const s of i)this.createProperty(s,t[s])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(i){const s=[];if(Array.isArray(i)){const e=new Set(i.flat(1/0).reverse());for(const i of e)s.unshift(t(i))}else void 0!==i&&s.push(t(i));return s}static _$Ep(t,i){const s=i.attribute;return!1===s?void 0:\"string\"==typeof s?s:\"string\"==typeof t?t.toLowerCase():void 0}_$Eu(){var t;this._$E_=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$Eg(),this.requestUpdate(),null===(t=this.constructor.h)||void 0===t||t.forEach((t=>t(this)))}addController(t){var i,s;(null!==(i=this._$ES)&&void 0!==i?i:this._$ES=[]).push(t),void 0!==this.renderRoot&&this.isConnected&&(null===(s=t.hostConnected)||void 0===s||s.call(t))}removeController(t){var i;null===(i=this._$ES)||void 0===i||i.splice(this._$ES.indexOf(t)>>>0,1)}_$Eg(){this.constructor.elementProperties.forEach(((t,i)=>{this.hasOwnProperty(i)&&(this._$Ei.set(i,this[i]),delete this[i])}))}createRenderRoot(){var t;const s=null!==(t=this.shadowRoot)&&void 0!==t?t:this.attachShadow(this.constructor.shadowRootOptions);return i(s,this.constructor.elementStyles),s}connectedCallback(){var t;void 0===this.renderRoot&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),null===(t=this._$ES)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostConnected)||void 0===i?void 0:i.call(t)}))}enableUpdating(t){}disconnectedCallback(){var t;null===(t=this._$ES)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostDisconnected)||void 0===i?void 0:i.call(t)}))}attributeChangedCallback(t,i,s){this._$AK(t,s)}_$EO(t,i,s=l){var e;const r=this.constructor._$Ep(t,s);if(void 0!==r&&!0===s.reflect){const h=(void 0!==(null===(e=s.converter)||void 0===e?void 0:e.toAttribute)?s.converter:n).toAttribute(i,s.type);this._$El=t,null==h?this.removeAttribute(r):this.setAttribute(r,h),this._$El=null}}_$AK(t,i){var s;const e=this.constructor,r=e._$Ev.get(t);if(void 0!==r&&this._$El!==r){const t=e.getPropertyOptions(r),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==(null===(s=t.converter)||void 0===s?void 0:s.fromAttribute)?t.converter:n;this._$El=r,this[r]=h.fromAttribute(i,t.type),this._$El=null}}requestUpdate(t,i,s){let e=!0;void 0!==t&&(((s=s||this.constructor.getPropertyOptions(t)).hasChanged||a)(this[t],i)?(this._$AL.has(t)||this._$AL.set(t,i),!0===s.reflect&&this._$El!==t&&(void 0===this._$EC&&(this._$EC=new Map),this._$EC.set(t,s))):e=!1),!this.isUpdatePending&&e&&(this._$E_=this._$Ej())}async _$Ej(){this.isUpdatePending=!0;try{await this._$E_}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var t;if(!this.isUpdatePending)return;this.hasUpdated,this._$Ei&&(this._$Ei.forEach(((t,i)=>this[i]=t)),this._$Ei=void 0);let i=!1;const s=this._$AL;try{i=this.shouldUpdate(s),i?(this.willUpdate(s),null===(t=this._$ES)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostUpdate)||void 0===i?void 0:i.call(t)})),this.update(s)):this._$Ek()}catch(t){throw i=!1,this._$Ek(),t}i&&this._$AE(s)}willUpdate(t){}_$AE(t){var i;null===(i=this._$ES)||void 0===i||i.forEach((t=>{var i;return null===(i=t.hostUpdated)||void 0===i?void 0:i.call(t)})),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$Ek(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$E_}shouldUpdate(t){return!0}update(t){void 0!==this._$EC&&(this._$EC.forEach(((t,i)=>this._$EO(i,this[i],t))),this._$EC=void 0),this._$Ek()}updated(t){}firstUpdated(t){}}u[d]=!0,u.elementProperties=new Map,u.elementStyles=[],u.shadowRootOptions={mode:\"open\"},null==o||o({ReactiveElement:u}),(null!==(s=e.reactiveElementVersions)&&void 0!==s?s:e.reactiveElementVersions=[]).push(\"1.6.3\");export{u as ReactiveElement,n as defaultConverter,a as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nvar t;const i=window,s=i.trustedTypes,e=s?s.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,o=\"$lit$\",n=`lit$${(Math.random()+\"\").slice(9)}$`,l=\"?\"+n,h=`<${l}>`,r=document,u=()=>r.createComment(\"\"),d=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,c=Array.isArray,v=t=>c(t)||\"function\"==typeof(null==t?void 0:t[Symbol.iterator]),a=\"[ \\t\\n\\f\\r]\",f=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,_=/-->/g,m=/>/g,p=RegExp(`>|${a}(?:([^\\\\s\"'>=/]+)(${a}*=${a}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),g=/'/g,$=/\"/g,y=/^(?:script|style|textarea|title)$/i,w=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x=w(1),b=w(2),T=Symbol.for(\"lit-noChange\"),A=Symbol.for(\"lit-nothing\"),E=new WeakMap,C=r.createTreeWalker(r,129,null,!1);function P(t,i){if(!Array.isArray(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==e?e.createHTML(i):i}const V=(t,i)=>{const s=t.length-1,e=[];let l,r=2===i?\"\":\"\",u=f;for(let i=0;i\"===c[0]?(u=null!=l?l:f,v=-1):void 0===c[1]?v=-2:(v=u.lastIndex-c[2].length,d=c[1],u=void 0===c[3]?p:'\"'===c[3]?$:g):u===$||u===g?u=p:u===_||u===m?u=f:(u=p,l=void 0);const w=u===p&&t[i+1].startsWith(\"/>\")?\" \":\"\";r+=u===f?s+h:v>=0?(e.push(d),s.slice(0,v)+o+s.slice(v)+n+w):s+n+(-2===v?(e.push(void 0),i):w)}return[P(t,r+(t[s]||\"\")+(2===i?\"\":\"\")),e]};class N{constructor({strings:t,_$litType$:i},e){let h;this.parts=[];let r=0,d=0;const c=t.length-1,v=this.parts,[a,f]=V(t,i);if(this.el=N.createElement(a,e),C.currentNode=this.el.content,2===i){const t=this.el.content,i=t.firstChild;i.remove(),t.append(...i.childNodes)}for(;null!==(h=C.nextNode())&&v.length0){h.textContent=s?s.emptyScript:\"\";for(let s=0;s2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=A}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,i=this,s,e){const o=this.strings;let n=!1;if(void 0===o)t=S(this,t,i,0),n=!d(t)||t!==this._$AH&&t!==T,n&&(this._$AH=t);else{const e=t;let l,h;for(t=o[0],l=0;l{var e,o;const n=null!==(e=null==s?void 0:s.renderBefore)&&void 0!==e?e:i;let l=n._$litPart$;if(void 0===l){const t=null!==(o=null==s?void 0:s.renderBefore)&&void 0!==o?o:null;n._$litPart$=l=new R(i.insertBefore(u(),t),t,void 0,null!=s?s:{})}return l._$AI(t),l};export{j as _$LH,x as html,T as noChange,A as nothing,D as render,b as svg};\n//# sourceMappingURL=lit-html.js.map\n","import{ReactiveElement as t}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as e,noChange as i}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */var l,o;const r=t;class s extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){var t,e;const i=super.createRenderRoot();return null!==(t=(e=this.renderOptions).renderBefore)&&void 0!==t||(e.renderBefore=i.firstChild),i}update(t){const i=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(i,this.renderRoot,this.renderOptions)}connectedCallback(){var t;super.connectedCallback(),null===(t=this._$Do)||void 0===t||t.setConnected(!0)}disconnectedCallback(){var t;super.disconnectedCallback(),null===(t=this._$Do)||void 0===t||t.setConnected(!1)}render(){return i}}s.finalized=!0,s._$litElement$=!0,null===(l=globalThis.litElementHydrateSupport)||void 0===l||l.call(globalThis,{LitElement:s});const n=globalThis.litElementPolyfillSupport;null==n||n({LitElement:s});const h={_$AK:(t,e,i)=>{t._$AK(e,i)},_$AL:t=>t._$AL};(null!==(o=globalThis.litElementVersions)&&void 0!==o?o:globalThis.litElementVersions=[]).push(\"3.3.3\");export{s as LitElement,r as UpdatingElement,h as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst e=e=>n=>\"function\"==typeof n?((e,n)=>(customElements.define(e,n),n))(e,n):((e,n)=>{const{kind:t,elements:s}=n;return{kind:t,elements:s,finisher(n){customElements.define(e,n)}}})(e,n);export{e as customElement};\n//# sourceMappingURL=custom-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst i=(i,e)=>\"method\"===e.kind&&e.descriptor&&!(\"value\"in e.descriptor)?{...e,finisher(n){n.createProperty(e.key,i)}}:{kind:\"field\",key:Symbol(),placement:\"own\",descriptor:{},originalKey:e.key,initializer(){\"function\"==typeof e.initializer&&(this[e.key]=e.initializer.call(this))},finisher(n){n.createProperty(e.key,i)}},e=(i,e,n)=>{e.constructor.createProperty(n,i)};function n(n){return(t,o)=>void 0!==o?e(n,t,o):i(n,t)}export{n as property};\n//# sourceMappingURL=property.js.map\n","import{property as r}from\"./property.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function t(t){return r({...t,state:!0})}export{t as state};\n//# sourceMappingURL=state.js.map\n","import{decorateProperty as o}from\"./base.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */var n;const e=null!=(null===(n=window.HTMLSlotElement)||void 0===n?void 0:n.prototype.assignedElements)?(o,n)=>o.assignedElements(n):(o,n)=>o.assignedNodes(n).filter((o=>o.nodeType===Node.ELEMENT_NODE));function l(n){const{slot:l,selector:t}=null!=n?n:{};return o({descriptor:o=>({get(){var o;const r=\"slot\"+(l?`[name=${l}]`:\":not([name])\"),i=null===(o=this.renderRoot)||void 0===o?void 0:o.querySelector(r),s=null!=i?e(i,n):[];return t?s.filter((o=>o.matches(t))):s},enumerable:!0,configurable:!0})})}export{l as queryAssignedElements};\n//# sourceMappingURL=query-assigned-elements.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}export{i as Directive,t as PartType,e as directive};\n//# sourceMappingURL=directive.js.map\n","import{noChange as t}from\"../lit-html.js\";import{directive as i,Directive as s,PartType as r}from\"../directive.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o=i(class extends s{constructor(t){var i;if(super(t),t.type!==r.ATTRIBUTE||\"class\"!==t.name||(null===(i=t.strings)||void 0===i?void 0:i.length)>2)throw Error(\"`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.\")}render(t){return\" \"+Object.keys(t).filter((i=>t[i])).join(\" \")+\" \"}update(i,[s]){var r,o;if(void 0===this.it){this.it=new Set,void 0!==i.strings&&(this.nt=new Set(i.strings.join(\" \").split(/\\s/).filter((t=>\"\"!==t))));for(const t in s)s[t]&&!(null===(r=this.nt)||void 0===r?void 0:r.has(t))&&this.it.add(t);return this.render(s)}const e=i.element.classList;this.it.forEach((t=>{t in s||(e.remove(t),this.it.delete(t))}));for(const t in s){const i=!!s[t];i===this.it.has(t)||(null===(o=this.nt)||void 0===o?void 0:o.has(t))||(i?(e.add(t),this.it.add(t)):(e.remove(t),this.it.delete(t)))}return t}});export{o as classMap};\n//# sourceMappingURL=class-map.js.map\n","function addUniqueItem(array, item) {\n array.indexOf(item) === -1 && array.push(item);\n}\nfunction removeItem(arr, item) {\n const index = arr.indexOf(item);\n index > -1 && arr.splice(index, 1);\n}\n\nexport { addUniqueItem, removeItem };\n","const clamp = (min, max, v) => Math.min(Math.max(v, min), max);\n\nexport { clamp };\n","const defaults = {\n duration: 0.3,\n delay: 0,\n endDelay: 0,\n repeat: 0,\n easing: \"ease\",\n};\n\nexport { defaults };\n","const isNumber = (value) => typeof value === \"number\";\n\nexport { isNumber };\n","import { isNumber } from './is-number.es.js';\n\nconst isEasingList = (easing) => Array.isArray(easing) && !isNumber(easing[0]);\n\nexport { isEasingList };\n","const wrap = (min, max, v) => {\n const rangeSize = max - min;\n return ((((v - min) % rangeSize) + rangeSize) % rangeSize) + min;\n};\n\nexport { wrap };\n","import { isEasingList } from './is-easing-list.es.js';\nimport { wrap } from './wrap.es.js';\n\nfunction getEasingForSegment(easing, i) {\n return isEasingList(easing) ? easing[wrap(0, easing.length, i)] : easing;\n}\n\nexport { getEasingForSegment };\n","const mix = (min, max, progress) => -progress * min + progress * max + min;\n\nexport { mix };\n","const noop = () => { };\nconst noopReturn = (v) => v;\n\nexport { noop, noopReturn };\n","const progress = (min, max, value) => max - min === 0 ? 1 : (value - min) / (max - min);\n\nexport { progress };\n","import { mix } from './mix.es.js';\nimport { progress } from './progress.es.js';\n\nfunction fillOffset(offset, remaining) {\n const min = offset[offset.length - 1];\n for (let i = 1; i <= remaining; i++) {\n const offsetProgress = progress(0, remaining, i);\n offset.push(mix(min, 1, offsetProgress));\n }\n}\nfunction defaultOffset(length) {\n const offset = [0];\n fillOffset(offset, length - 1);\n return offset;\n}\n\nexport { defaultOffset, fillOffset };\n","import { mix } from './mix.es.js';\nimport { noopReturn } from './noop.es.js';\nimport { fillOffset, defaultOffset } from './offset.es.js';\nimport { progress } from './progress.es.js';\nimport { getEasingForSegment } from './easing.es.js';\nimport { clamp } from './clamp.es.js';\n\nfunction interpolate(output, input = defaultOffset(output.length), easing = noopReturn) {\n const length = output.length;\n /**\n * If the input length is lower than the output we\n * fill the input to match. This currently assumes the input\n * is an animation progress value so is a good candidate for\n * moving outside the function.\n */\n const remainder = length - input.length;\n remainder > 0 && fillOffset(input, remainder);\n return (t) => {\n let i = 0;\n for (; i < length - 2; i++) {\n if (t < input[i + 1])\n break;\n }\n let progressInRange = clamp(0, 1, progress(input[i], input[i + 1], t));\n const segmentEasing = getEasingForSegment(easing, i);\n progressInRange = segmentEasing(progressInRange);\n return mix(output[i], output[i + 1], progressInRange);\n };\n}\n\nexport { interpolate };\n","import { isNumber } from './is-number.es.js';\n\nconst isCubicBezier = (easing) => Array.isArray(easing) && isNumber(easing[0]);\n\nexport { isCubicBezier };\n","const isEasingGenerator = (easing) => typeof easing === \"object\" &&\n Boolean(easing.createAnimation);\n\nexport { isEasingGenerator };\n","const isFunction = (value) => typeof value === \"function\";\n\nexport { isFunction };\n","const isString = (value) => typeof value === \"string\";\n\nexport { isString };\n","const time = {\n ms: (seconds) => seconds * 1000,\n s: (milliseconds) => milliseconds / 1000,\n};\n\nexport { time };\n","import { noopReturn } from '@motionone/utils';\n\n/*\n Bezier function generator\n\n This has been modified from Gaëtan Renaudeau's BezierEasing\n https://github.com/gre/bezier-easing/blob/master/src/index.js\n https://github.com/gre/bezier-easing/blob/master/LICENSE\n \n I've removed the newtonRaphsonIterate algo because in benchmarking it\n wasn't noticiably faster than binarySubdivision, indeed removing it\n usually improved times, depending on the curve.\n\n I also removed the lookup table, as for the added bundle size and loop we're\n only cutting ~4 or so subdivision iterations. I bumped the max iterations up\n to 12 to compensate and this still tended to be faster for no perceivable\n loss in accuracy.\n\n Usage\n const easeOut = cubicBezier(.17,.67,.83,.67);\n const x = easeOut(0.5); // returns 0.627...\n*/\n// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\nconst calcBezier = (t, a1, a2) => (((1.0 - 3.0 * a2 + 3.0 * a1) * t + (3.0 * a2 - 6.0 * a1)) * t + 3.0 * a1) * t;\nconst subdivisionPrecision = 0.0000001;\nconst subdivisionMaxIterations = 12;\nfunction binarySubdivide(x, lowerBound, upperBound, mX1, mX2) {\n let currentX;\n let currentT;\n let i = 0;\n do {\n currentT = lowerBound + (upperBound - lowerBound) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - x;\n if (currentX > 0.0) {\n upperBound = currentT;\n }\n else {\n lowerBound = currentT;\n }\n } while (Math.abs(currentX) > subdivisionPrecision &&\n ++i < subdivisionMaxIterations);\n return currentT;\n}\nfunction cubicBezier(mX1, mY1, mX2, mY2) {\n // If this is a linear gradient, return linear easing\n if (mX1 === mY1 && mX2 === mY2)\n return noopReturn;\n const getTForX = (aX) => binarySubdivide(aX, 0, 1, mX1, mX2);\n // If animation is at start/end, return t without easing\n return (t) => t === 0 || t === 1 ? t : calcBezier(getTForX(t), mY1, mY2);\n}\n\nexport { cubicBezier };\n","import { clamp } from '@motionone/utils';\n\nconst steps = (steps, direction = \"end\") => (progress) => {\n progress =\n direction === \"end\"\n ? Math.min(progress, 0.999)\n : Math.max(progress, 0.001);\n const expanded = progress * steps;\n const rounded = direction === \"end\" ? Math.floor(expanded) : Math.ceil(expanded);\n return clamp(0, 1, rounded / steps);\n};\n\nexport { steps };\n","import { cubicBezier, steps } from '@motionone/easing';\nimport { isFunction, isCubicBezier, noopReturn } from '@motionone/utils';\n\nconst namedEasings = {\n ease: cubicBezier(0.25, 0.1, 0.25, 1.0),\n \"ease-in\": cubicBezier(0.42, 0.0, 1.0, 1.0),\n \"ease-in-out\": cubicBezier(0.42, 0.0, 0.58, 1.0),\n \"ease-out\": cubicBezier(0.0, 0.0, 0.58, 1.0),\n};\nconst functionArgsRegex = /\\((.*?)\\)/;\nfunction getEasingFunction(definition) {\n // If already an easing function, return\n if (isFunction(definition))\n return definition;\n // If an easing curve definition, return bezier function\n if (isCubicBezier(definition))\n return cubicBezier(...definition);\n // If we have a predefined easing function, return\n const namedEasing = namedEasings[definition];\n if (namedEasing)\n return namedEasing;\n // If this is a steps function, attempt to create easing curve\n if (definition.startsWith(\"steps\")) {\n const args = functionArgsRegex.exec(definition);\n if (args) {\n const argsArray = args[1].split(\",\");\n return steps(parseFloat(argsArray[0]), argsArray[1].trim());\n }\n }\n return noopReturn;\n}\n\nexport { getEasingFunction };\n","import { noopReturn, defaults, isEasingGenerator, isEasingList, interpolate } from '@motionone/utils';\nimport { getEasingFunction } from './utils/easing.es.js';\n\nclass Animation {\n constructor(output, keyframes = [0, 1], { easing, duration: initialDuration = defaults.duration, delay = defaults.delay, endDelay = defaults.endDelay, repeat = defaults.repeat, offset, direction = \"normal\", autoplay = true, } = {}) {\n this.startTime = null;\n this.rate = 1;\n this.t = 0;\n this.cancelTimestamp = null;\n this.easing = noopReturn;\n this.duration = 0;\n this.totalDuration = 0;\n this.repeat = 0;\n this.playState = \"idle\";\n this.finished = new Promise((resolve, reject) => {\n this.resolve = resolve;\n this.reject = reject;\n });\n easing = easing || defaults.easing;\n if (isEasingGenerator(easing)) {\n const custom = easing.createAnimation(keyframes);\n easing = custom.easing;\n keyframes = custom.keyframes || keyframes;\n initialDuration = custom.duration || initialDuration;\n }\n this.repeat = repeat;\n this.easing = isEasingList(easing) ? noopReturn : getEasingFunction(easing);\n this.updateDuration(initialDuration);\n const interpolate$1 = interpolate(keyframes, offset, isEasingList(easing) ? easing.map(getEasingFunction) : noopReturn);\n this.tick = (timestamp) => {\n var _a;\n // TODO: Temporary fix for OptionsResolver typing\n delay = delay;\n let t = 0;\n if (this.pauseTime !== undefined) {\n t = this.pauseTime;\n }\n else {\n t = (timestamp - this.startTime) * this.rate;\n }\n this.t = t;\n // Convert to seconds\n t /= 1000;\n // Rebase on delay\n t = Math.max(t - delay, 0);\n /**\n * If this animation has finished, set the current time\n * to the total duration.\n */\n if (this.playState === \"finished\" && this.pauseTime === undefined) {\n t = this.totalDuration;\n }\n /**\n * Get the current progress (0-1) of the animation. If t is >\n * than duration we'll get values like 2.5 (midway through the\n * third iteration)\n */\n const progress = t / this.duration;\n // TODO progress += iterationStart\n /**\n * Get the current iteration (0 indexed). For instance the floor of\n * 2.5 is 2.\n */\n let currentIteration = Math.floor(progress);\n /**\n * Get the current progress of the iteration by taking the remainder\n * so 2.5 is 0.5 through iteration 2\n */\n let iterationProgress = progress % 1.0;\n if (!iterationProgress && progress >= 1) {\n iterationProgress = 1;\n }\n /**\n * If iteration progress is 1 we count that as the end\n * of the previous iteration.\n */\n iterationProgress === 1 && currentIteration--;\n /**\n * Reverse progress if we're not running in \"normal\" direction\n */\n const iterationIsOdd = currentIteration % 2;\n if (direction === \"reverse\" ||\n (direction === \"alternate\" && iterationIsOdd) ||\n (direction === \"alternate-reverse\" && !iterationIsOdd)) {\n iterationProgress = 1 - iterationProgress;\n }\n const p = t >= this.totalDuration ? 1 : Math.min(iterationProgress, 1);\n const latest = interpolate$1(this.easing(p));\n output(latest);\n const isAnimationFinished = this.pauseTime === undefined &&\n (this.playState === \"finished\" || t >= this.totalDuration + endDelay);\n if (isAnimationFinished) {\n this.playState = \"finished\";\n (_a = this.resolve) === null || _a === void 0 ? void 0 : _a.call(this, latest);\n }\n else if (this.playState !== \"idle\") {\n this.frameRequestId = requestAnimationFrame(this.tick);\n }\n };\n if (autoplay)\n this.play();\n }\n play() {\n const now = performance.now();\n this.playState = \"running\";\n if (this.pauseTime !== undefined) {\n this.startTime = now - this.pauseTime;\n }\n else if (!this.startTime) {\n this.startTime = now;\n }\n this.cancelTimestamp = this.startTime;\n this.pauseTime = undefined;\n this.frameRequestId = requestAnimationFrame(this.tick);\n }\n pause() {\n this.playState = \"paused\";\n this.pauseTime = this.t;\n }\n finish() {\n this.playState = \"finished\";\n this.tick(0);\n }\n stop() {\n var _a;\n this.playState = \"idle\";\n if (this.frameRequestId !== undefined) {\n cancelAnimationFrame(this.frameRequestId);\n }\n (_a = this.reject) === null || _a === void 0 ? void 0 : _a.call(this, false);\n }\n cancel() {\n this.stop();\n this.tick(this.cancelTimestamp);\n }\n reverse() {\n this.rate *= -1;\n }\n commitStyles() { }\n updateDuration(duration) {\n this.duration = duration;\n this.totalDuration = duration * (this.repeat + 1);\n }\n get currentTime() {\n return this.t;\n }\n set currentTime(t) {\n if (this.pauseTime !== undefined || this.rate === 0) {\n this.pauseTime = t;\n }\n else {\n this.startTime = performance.now() - t / this.rate;\n }\n }\n get playbackRate() {\n return this.rate;\n }\n set playbackRate(rate) {\n this.rate = rate;\n }\n}\n\nexport { Animation };\n","var warning = function () { };\r\nvar invariant = function () { };\r\nif (process.env.NODE_ENV !== 'production') {\r\n warning = function (check, message) {\r\n if (!check && typeof console !== 'undefined') {\r\n console.warn(message);\r\n }\r\n };\r\n invariant = function (check, message) {\r\n if (!check) {\r\n throw new Error(message);\r\n }\r\n };\r\n}\n\nexport { invariant, warning };\n","/**\n * The MotionValue tracks the state of a single animatable\n * value. Currently, updatedAt and current are unused. The\n * long term idea is to use this to minimise the number\n * of DOM reads, and to abstract the DOM interactions here.\n */\nclass MotionValue {\n setAnimation(animation) {\n this.animation = animation;\n animation === null || animation === void 0 ? void 0 : animation.finished.then(() => this.clearAnimation()).catch(() => { });\n }\n clearAnimation() {\n this.animation = this.generator = undefined;\n }\n}\n\nexport { MotionValue };\n","import { MotionValue } from '@motionone/types';\n\nconst data = new WeakMap();\nfunction getAnimationData(element) {\n if (!data.has(element)) {\n data.set(element, {\n transforms: [],\n values: new Map(),\n });\n }\n return data.get(element);\n}\nfunction getMotionValue(motionValues, name) {\n if (!motionValues.has(name)) {\n motionValues.set(name, new MotionValue());\n }\n return motionValues.get(name);\n}\n\nexport { getAnimationData, getMotionValue };\n","import { noopReturn, addUniqueItem } from '@motionone/utils';\nimport { getAnimationData } from '../data.es.js';\n\n/**\n * A list of all transformable axes. We'll use this list to generated a version\n * of each axes for each transform.\n */\nconst axes = [\"\", \"X\", \"Y\", \"Z\"];\n/**\n * An ordered array of each transformable value. By default, transform values\n * will be sorted to this order.\n */\nconst order = [\"translate\", \"scale\", \"rotate\", \"skew\"];\nconst transformAlias = {\n x: \"translateX\",\n y: \"translateY\",\n z: \"translateZ\",\n};\nconst rotation = {\n syntax: \"\",\n initialValue: \"0deg\",\n toDefaultUnit: (v) => v + \"deg\",\n};\nconst baseTransformProperties = {\n translate: {\n syntax: \"\",\n initialValue: \"0px\",\n toDefaultUnit: (v) => v + \"px\",\n },\n rotate: rotation,\n scale: {\n syntax: \"\",\n initialValue: 1,\n toDefaultUnit: noopReturn,\n },\n skew: rotation,\n};\nconst transformDefinitions = new Map();\nconst asTransformCssVar = (name) => `--motion-${name}`;\n/**\n * Generate a list of every possible transform key\n */\nconst transforms = [\"x\", \"y\", \"z\"];\norder.forEach((name) => {\n axes.forEach((axis) => {\n transforms.push(name + axis);\n transformDefinitions.set(asTransformCssVar(name + axis), baseTransformProperties[name]);\n });\n});\n/**\n * A function to use with Array.sort to sort transform keys by their default order.\n */\nconst compareTransformOrder = (a, b) => transforms.indexOf(a) - transforms.indexOf(b);\n/**\n * Provide a quick way to check if a string is the name of a transform\n */\nconst transformLookup = new Set(transforms);\nconst isTransform = (name) => transformLookup.has(name);\nconst addTransformToElement = (element, name) => {\n // Map x to translateX etc\n if (transformAlias[name])\n name = transformAlias[name];\n const { transforms } = getAnimationData(element);\n addUniqueItem(transforms, name);\n /**\n * TODO: An optimisation here could be to cache the transform in element data\n * and only update if this has changed.\n */\n element.style.transform = buildTransformTemplate(transforms);\n};\nconst buildTransformTemplate = (transforms) => transforms\n .sort(compareTransformOrder)\n .reduce(transformListToString, \"\")\n .trim();\nconst transformListToString = (template, name) => `${template} ${name}(var(${asTransformCssVar(name)}))`;\n\nexport { addTransformToElement, asTransformCssVar, axes, buildTransformTemplate, compareTransformOrder, isTransform, transformAlias, transformDefinitions };\n","import { transformDefinitions } from './transforms.es.js';\n\nconst isCssVar = (name) => name.startsWith(\"--\");\nconst registeredProperties = new Set();\nfunction registerCssVariable(name) {\n if (registeredProperties.has(name))\n return;\n registeredProperties.add(name);\n try {\n const { syntax, initialValue } = transformDefinitions.has(name)\n ? transformDefinitions.get(name)\n : {};\n CSS.registerProperty({\n name,\n inherits: false,\n syntax,\n initialValue,\n });\n }\n catch (e) { }\n}\n\nexport { isCssVar, registerCssVariable, registeredProperties };\n","const testAnimation = (keyframes, options) => document.createElement(\"div\").animate(keyframes, options);\nconst featureTests = {\n cssRegisterProperty: () => typeof CSS !== \"undefined\" &&\n Object.hasOwnProperty.call(CSS, \"registerProperty\"),\n waapi: () => Object.hasOwnProperty.call(Element.prototype, \"animate\"),\n partialKeyframes: () => {\n try {\n testAnimation({ opacity: [1] });\n }\n catch (e) {\n return false;\n }\n return true;\n },\n finished: () => Boolean(testAnimation({ opacity: [0, 1] }, { duration: 0.001 }).finished),\n linearEasing: () => {\n try {\n testAnimation({ opacity: 0 }, { easing: \"linear(0, 1)\" });\n }\n catch (e) {\n return false;\n }\n return true;\n },\n};\nconst results = {};\nconst supports = {};\nfor (const key in featureTests) {\n supports[key] = () => {\n if (results[key] === undefined)\n results[key] =\n featureTests[key]();\n return results[key];\n };\n}\n\nexport { supports };\n","import { isFunction, defaults, isCubicBezier, progress } from '@motionone/utils';\nimport { supports } from './feature-detection.es.js';\n\n// Create a linear easing point for every x second\nconst resolution = 0.015;\nconst generateLinearEasingPoints = (easing, duration) => {\n let points = \"\";\n const numPoints = Math.round(duration / resolution);\n for (let i = 0; i < numPoints; i++) {\n points += easing(progress(0, numPoints - 1, i)) + \", \";\n }\n return points.substring(0, points.length - 2);\n};\nconst convertEasing = (easing, duration) => {\n if (isFunction(easing)) {\n return supports.linearEasing()\n ? `linear(${generateLinearEasingPoints(easing, duration)})`\n : defaults.easing;\n }\n else {\n return isCubicBezier(easing) ? cubicBezierAsString(easing) : easing;\n }\n};\nconst cubicBezierAsString = ([a, b, c, d]) => `cubic-bezier(${a}, ${b}, ${c}, ${d})`;\n\nexport { convertEasing, cubicBezierAsString, generateLinearEasingPoints };\n","function hydrateKeyframes(keyframes, readInitialValue) {\n for (let i = 0; i < keyframes.length; i++) {\n if (keyframes[i] === null) {\n keyframes[i] = i ? keyframes[i - 1] : readInitialValue();\n }\n }\n return keyframes;\n}\nconst keyframesList = (keyframes) => Array.isArray(keyframes) ? keyframes : [keyframes];\n\nexport { hydrateKeyframes, keyframesList };\n","import { isTransform, asTransformCssVar, transformAlias } from './transforms.es.js';\n\nfunction getStyleName(key) {\n if (transformAlias[key])\n key = transformAlias[key];\n return isTransform(key) ? asTransformCssVar(key) : key;\n}\n\nexport { getStyleName };\n","import { isCssVar } from './utils/css-var.es.js';\nimport { getStyleName } from './utils/get-style-name.es.js';\nimport { transformDefinitions } from './utils/transforms.es.js';\n\nconst style = {\n get: (element, name) => {\n name = getStyleName(name);\n let value = isCssVar(name)\n ? element.style.getPropertyValue(name)\n : getComputedStyle(element)[name];\n // TODO Decide if value can be 0\n if (!value && value !== 0) {\n const definition = transformDefinitions.get(name);\n if (definition)\n value = definition.initialValue;\n }\n return value;\n },\n set: (element, name, value) => {\n name = getStyleName(name);\n if (isCssVar(name)) {\n element.style.setProperty(name, value);\n }\n else {\n element.style[name] = value;\n }\n },\n};\n\nexport { style };\n","function stopAnimation(animation, needsCommit = true) {\n if (!animation || animation.playState === \"finished\")\n return;\n // Suppress error thrown by WAAPI\n try {\n if (animation.stop) {\n animation.stop();\n }\n else {\n needsCommit && animation.commitStyles();\n animation.cancel();\n }\n }\n catch (e) { }\n}\n\nexport { stopAnimation };\n","import { noopReturn, isString } from '@motionone/utils';\n\nfunction getUnitConverter(keyframes, definition) {\n var _a;\n let toUnit = (definition === null || definition === void 0 ? void 0 : definition.toDefaultUnit) || noopReturn;\n const finalKeyframe = keyframes[keyframes.length - 1];\n if (isString(finalKeyframe)) {\n const unit = ((_a = finalKeyframe.match(/(-?[\\d.]+)([a-z%]*)/)) === null || _a === void 0 ? void 0 : _a[2]) || \"\";\n if (unit)\n toUnit = (value) => value + unit;\n }\n return toUnit;\n}\n\nexport { getUnitConverter };\n","import { getAnimationData, getMotionValue } from './data.es.js';\nimport { isCssVar, registerCssVariable } from './utils/css-var.es.js';\nimport { defaults, isEasingGenerator, isFunction, isEasingList, isNumber, time, noop } from '@motionone/utils';\nimport { isTransform, addTransformToElement, transformDefinitions } from './utils/transforms.es.js';\nimport { convertEasing } from './utils/easing.es.js';\nimport { supports } from './utils/feature-detection.es.js';\nimport { hydrateKeyframes, keyframesList } from './utils/keyframes.es.js';\nimport { style } from './style.es.js';\nimport { getStyleName } from './utils/get-style-name.es.js';\nimport { stopAnimation } from './utils/stop-animation.es.js';\nimport { getUnitConverter } from './utils/get-unit.es.js';\n\nfunction getDevToolsRecord() {\n return window.__MOTION_DEV_TOOLS_RECORD;\n}\nfunction animateStyle(element, key, keyframesDefinition, options = {}, AnimationPolyfill) {\n const record = getDevToolsRecord();\n const isRecording = options.record !== false && record;\n let animation;\n let { duration = defaults.duration, delay = defaults.delay, endDelay = defaults.endDelay, repeat = defaults.repeat, easing = defaults.easing, persist = false, direction, offset, allowWebkitAcceleration = false, autoplay = true, } = options;\n const data = getAnimationData(element);\n const valueIsTransform = isTransform(key);\n let canAnimateNatively = supports.waapi();\n /**\n * If this is an individual transform, we need to map its\n * key to a CSS variable and update the element's transform style\n */\n valueIsTransform && addTransformToElement(element, key);\n const name = getStyleName(key);\n const motionValue = getMotionValue(data.values, name);\n /**\n * Get definition of value, this will be used to convert numerical\n * keyframes into the default value type.\n */\n const definition = transformDefinitions.get(name);\n /**\n * Stop the current animation, if any. Because this will trigger\n * commitStyles (DOM writes) and we might later trigger DOM reads,\n * this is fired now and we return a factory function to create\n * the actual animation that can get called in batch,\n */\n stopAnimation(motionValue.animation, !(isEasingGenerator(easing) && motionValue.generator) &&\n options.record !== false);\n /**\n * Batchable factory function containing all DOM reads.\n */\n return () => {\n const readInitialValue = () => { var _a, _b; return (_b = (_a = style.get(element, name)) !== null && _a !== void 0 ? _a : definition === null || definition === void 0 ? void 0 : definition.initialValue) !== null && _b !== void 0 ? _b : 0; };\n /**\n * Replace null values with the previous keyframe value, or read\n * it from the DOM if it's the first keyframe.\n */\n let keyframes = hydrateKeyframes(keyframesList(keyframesDefinition), readInitialValue);\n /**\n * Detect unit type of keyframes.\n */\n const toUnit = getUnitConverter(keyframes, definition);\n if (isEasingGenerator(easing)) {\n const custom = easing.createAnimation(keyframes, key !== \"opacity\", readInitialValue, name, motionValue);\n easing = custom.easing;\n keyframes = custom.keyframes || keyframes;\n duration = custom.duration || duration;\n }\n /**\n * If this is a CSS variable we need to register it with the browser\n * before it can be animated natively. We also set it with setProperty\n * rather than directly onto the element.style object.\n */\n if (isCssVar(name)) {\n if (supports.cssRegisterProperty()) {\n registerCssVariable(name);\n }\n else {\n canAnimateNatively = false;\n }\n }\n /**\n * If we've been passed a custom easing function, and this browser\n * does **not** support linear() easing, and the value is a transform\n * (and thus a pure number) we can still support the custom easing\n * by falling back to the animation polyfill.\n */\n if (valueIsTransform &&\n !supports.linearEasing() &&\n (isFunction(easing) || (isEasingList(easing) && easing.some(isFunction)))) {\n canAnimateNatively = false;\n }\n /**\n * If we can animate this value with WAAPI, do so.\n */\n if (canAnimateNatively) {\n /**\n * Convert numbers to default value types. Currently this only supports\n * transforms but it could also support other value types.\n */\n if (definition) {\n keyframes = keyframes.map((value) => isNumber(value) ? definition.toDefaultUnit(value) : value);\n }\n /**\n * If this browser doesn't support partial/implicit keyframes we need to\n * explicitly provide one.\n */\n if (keyframes.length === 1 &&\n (!supports.partialKeyframes() || isRecording)) {\n keyframes.unshift(readInitialValue());\n }\n const animationOptions = {\n delay: time.ms(delay),\n duration: time.ms(duration),\n endDelay: time.ms(endDelay),\n easing: !isEasingList(easing)\n ? convertEasing(easing, duration)\n : undefined,\n direction,\n iterations: repeat + 1,\n fill: \"both\",\n };\n animation = element.animate({\n [name]: keyframes,\n offset,\n easing: isEasingList(easing)\n ? easing.map((thisEasing) => convertEasing(thisEasing, duration))\n : undefined,\n }, animationOptions);\n /**\n * Polyfill finished Promise in browsers that don't support it\n */\n if (!animation.finished) {\n animation.finished = new Promise((resolve, reject) => {\n animation.onfinish = resolve;\n animation.oncancel = reject;\n });\n }\n const target = keyframes[keyframes.length - 1];\n animation.finished\n .then(() => {\n if (persist)\n return;\n // Apply styles to target\n style.set(element, name, target);\n // Ensure fill modes don't persist\n animation.cancel();\n })\n .catch(noop);\n /**\n * This forces Webkit to run animations on the main thread by exploiting\n * this condition:\n * https://trac.webkit.org/browser/webkit/trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp?rev=281238#L1099\n *\n * This fixes Webkit's timing bugs, like accelerated animations falling\n * out of sync with main thread animations and massive delays in starting\n * accelerated animations in WKWebView.\n */\n if (!allowWebkitAcceleration)\n animation.playbackRate = 1.000001;\n /**\n * If we can't animate the value natively then we can fallback to the numbers-only\n * polyfill for transforms.\n */\n }\n else if (AnimationPolyfill && valueIsTransform) {\n /**\n * If any keyframe is a string (because we measured it from the DOM), we need to convert\n * it into a number before passing to the Animation polyfill.\n */\n keyframes = keyframes.map((value) => typeof value === \"string\" ? parseFloat(value) : value);\n /**\n * If we only have a single keyframe, we need to create an initial keyframe by reading\n * the current value from the DOM.\n */\n if (keyframes.length === 1) {\n keyframes.unshift(parseFloat(readInitialValue()));\n }\n animation = new AnimationPolyfill((latest) => {\n style.set(element, name, toUnit ? toUnit(latest) : latest);\n }, keyframes, Object.assign(Object.assign({}, options), { duration,\n easing }));\n }\n else {\n const target = keyframes[keyframes.length - 1];\n style.set(element, name, definition && isNumber(target)\n ? definition.toDefaultUnit(target)\n : target);\n }\n if (isRecording) {\n record(element, key, keyframes, {\n duration,\n delay: delay,\n easing,\n repeat,\n offset,\n }, \"motion-one\");\n }\n motionValue.setAnimation(animation);\n if (animation && !autoplay)\n animation.pause();\n return animation;\n };\n}\n\nexport { animateStyle };\n","const getOptions = (options, key) => \n/**\n * TODO: Make test for this\n * Always return a new object otherwise delay is overwritten by results of stagger\n * and this results in no stagger\n */\noptions[key] ? Object.assign(Object.assign({}, options), options[key]) : Object.assign({}, options);\n\nexport { getOptions };\n","function resolveElements(elements, selectorCache) {\n var _a;\n if (typeof elements === \"string\") {\n if (selectorCache) {\n (_a = selectorCache[elements]) !== null && _a !== void 0 ? _a : (selectorCache[elements] = document.querySelectorAll(elements));\n elements = selectorCache[elements];\n }\n else {\n elements = document.querySelectorAll(elements);\n }\n }\n else if (elements instanceof Element) {\n elements = [elements];\n }\n /**\n * Return an empty array\n */\n return Array.from(elements || []);\n}\n\nexport { resolveElements };\n","import { defaults, noop, time } from '@motionone/utils';\nimport { stopAnimation } from './stop-animation.es.js';\n\nconst createAnimation = (factory) => factory();\nconst withControls = (animationFactory, options, duration = defaults.duration) => {\n return new Proxy({\n animations: animationFactory.map(createAnimation).filter(Boolean),\n duration,\n options,\n }, controls);\n};\n/**\n * TODO:\n * Currently this returns the first animation, ideally it would return\n * the first active animation.\n */\nconst getActiveAnimation = (state) => state.animations[0];\nconst controls = {\n get: (target, key) => {\n const activeAnimation = getActiveAnimation(target);\n switch (key) {\n case \"duration\":\n return target.duration;\n case \"currentTime\":\n return time.s((activeAnimation === null || activeAnimation === void 0 ? void 0 : activeAnimation[key]) || 0);\n case \"playbackRate\":\n case \"playState\":\n return activeAnimation === null || activeAnimation === void 0 ? void 0 : activeAnimation[key];\n case \"finished\":\n if (!target.finished) {\n target.finished = Promise.all(target.animations.map(selectFinished)).catch(noop);\n }\n return target.finished;\n case \"stop\":\n return () => {\n target.animations.forEach((animation) => stopAnimation(animation));\n };\n case \"forEachNative\":\n /**\n * This is for internal use only, fire a callback for each\n * underlying animation.\n */\n return (callback) => {\n target.animations.forEach((animation) => callback(animation, target));\n };\n default:\n return typeof (activeAnimation === null || activeAnimation === void 0 ? void 0 : activeAnimation[key]) ===\n \"undefined\"\n ? undefined\n : () => target.animations.forEach((animation) => animation[key]());\n }\n },\n set: (target, key, value) => {\n switch (key) {\n case \"currentTime\":\n value = time.ms(value);\n // Fall-through\n case \"playbackRate\":\n for (let i = 0; i < target.animations.length; i++) {\n target.animations[i][key] = value;\n }\n return true;\n }\n return false;\n },\n};\nconst selectFinished = (animation) => animation.finished;\n\nexport { controls, withControls };\n","import { isNumber, isFunction } from '@motionone/utils';\nimport { getEasingFunction } from '@motionone/animation';\n\nfunction stagger(duration = 0.1, { start = 0, from = 0, easing } = {}) {\n return (i, total) => {\n const fromIndex = isNumber(from) ? from : getFromIndex(from, total);\n const distance = Math.abs(fromIndex - i);\n let delay = duration * distance;\n if (easing) {\n const maxDelay = total * duration;\n const easingFunction = getEasingFunction(easing);\n delay = easingFunction(delay / maxDelay) * maxDelay;\n }\n return start + delay;\n };\n}\nfunction getFromIndex(from, total) {\n if (from === \"first\") {\n return 0;\n }\n else {\n const lastIndex = total - 1;\n return from === \"last\" ? lastIndex : lastIndex / 2;\n }\n}\nfunction resolveOption(option, i, total) {\n return isFunction(option) ? option(i, total) : option;\n}\n\nexport { getFromIndex, resolveOption, stagger };\n","import { invariant } from 'hey-listen';\nimport { animateStyle } from './animate-style.es.js';\nimport { getOptions } from './utils/options.es.js';\nimport { resolveElements } from '../utils/resolve-elements.es.js';\nimport { withControls } from './utils/controls.es.js';\nimport { resolveOption } from '../utils/stagger.es.js';\n\nfunction createAnimate(AnimatePolyfill) {\n return function animate(elements, keyframes, options = {}) {\n elements = resolveElements(elements);\n const numElements = elements.length;\n invariant(Boolean(numElements), \"No valid element provided.\");\n invariant(Boolean(keyframes), \"No keyframes defined.\");\n /**\n * Create and start new animations\n */\n const animationFactories = [];\n for (let i = 0; i < numElements; i++) {\n const element = elements[i];\n for (const key in keyframes) {\n const valueOptions = getOptions(options, key);\n valueOptions.delay = resolveOption(valueOptions.delay, i, numElements);\n const animation = animateStyle(element, key, keyframes[key], valueOptions, AnimatePolyfill);\n animationFactories.push(animation);\n }\n }\n return withControls(animationFactories, options, \n /**\n * TODO:\n * If easing is set to spring or glide, duration will be dynamically\n * generated. Ideally we would dynamically generate this from\n * animation.effect.getComputedTiming().duration but this isn't\n * supported in iOS13 or our number polyfill. Perhaps it's possible\n * to Proxy animations returned from animateStyle that has duration\n * as a getter.\n */\n options.duration);\n };\n}\n\nexport { createAnimate };\n","import { Animation } from '@motionone/animation';\nimport { createAnimate } from './create-animate.es.js';\n\nconst animate = createAnimate(Animation);\n\nexport { animate };\n","import { animate as animate$1, withControls } from '@motionone/dom';\nimport { isFunction } from '@motionone/utils';\nimport { Animation } from '@motionone/animation';\n\nfunction animateProgress(target, options = {}) {\n return withControls([\n () => {\n const animation = new Animation(target, [0, 1], options);\n animation.finished.catch(() => { });\n return animation;\n },\n ], options, options.duration);\n}\nfunction animate(target, keyframesOrOptions, options) {\n const factory = isFunction(target) ? animateProgress : animate$1;\n return factory(target, keyframesOrOptions, options);\n}\n\nexport { animate, animateProgress };\n","import{nothing as t}from\"../lit-html.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const l=l=>null!=l?l:t;export{l as ifDefined};\n//# sourceMappingURL=if-defined.js.map\n","// can-promise has a crash in some versions of react native that dont have\n// standard global objects\n// https://github.com/soldair/node-qrcode/issues/157\n\nmodule.exports = function () {\n return typeof Promise === 'function' && Promise.prototype && Promise.prototype.then\n}\n","let toSJISFunction\nconst CODEWORDS_COUNT = [\n 0, // Not used\n 26, 44, 70, 100, 134, 172, 196, 242, 292, 346,\n 404, 466, 532, 581, 655, 733, 815, 901, 991, 1085,\n 1156, 1258, 1364, 1474, 1588, 1706, 1828, 1921, 2051, 2185,\n 2323, 2465, 2611, 2761, 2876, 3034, 3196, 3362, 3532, 3706\n]\n\n/**\n * Returns the QR Code size for the specified version\n *\n * @param {Number} version QR Code version\n * @return {Number} size of QR code\n */\nexports.getSymbolSize = function getSymbolSize (version) {\n if (!version) throw new Error('\"version\" cannot be null or undefined')\n if (version < 1 || version > 40) throw new Error('\"version\" should be in range from 1 to 40')\n return version * 4 + 17\n}\n\n/**\n * Returns the total number of codewords used to store data and EC information.\n *\n * @param {Number} version QR Code version\n * @return {Number} Data length in bits\n */\nexports.getSymbolTotalCodewords = function getSymbolTotalCodewords (version) {\n return CODEWORDS_COUNT[version]\n}\n\n/**\n * Encode data with Bose-Chaudhuri-Hocquenghem\n *\n * @param {Number} data Value to encode\n * @return {Number} Encoded value\n */\nexports.getBCHDigit = function (data) {\n let digit = 0\n\n while (data !== 0) {\n digit++\n data >>>= 1\n }\n\n return digit\n}\n\nexports.setToSJISFunction = function setToSJISFunction (f) {\n if (typeof f !== 'function') {\n throw new Error('\"toSJISFunc\" is not a valid function.')\n }\n\n toSJISFunction = f\n}\n\nexports.isKanjiModeEnabled = function () {\n return typeof toSJISFunction !== 'undefined'\n}\n\nexports.toSJIS = function toSJIS (kanji) {\n return toSJISFunction(kanji)\n}\n","function BitBuffer () {\n this.buffer = []\n this.length = 0\n}\n\nBitBuffer.prototype = {\n\n get: function (index) {\n const bufIndex = Math.floor(index / 8)\n return ((this.buffer[bufIndex] >>> (7 - index % 8)) & 1) === 1\n },\n\n put: function (num, length) {\n for (let i = 0; i < length; i++) {\n this.putBit(((num >>> (length - i - 1)) & 1) === 1)\n }\n },\n\n getLengthInBits: function () {\n return this.length\n },\n\n putBit: function (bit) {\n const bufIndex = Math.floor(this.length / 8)\n if (this.buffer.length <= bufIndex) {\n this.buffer.push(0)\n }\n\n if (bit) {\n this.buffer[bufIndex] |= (0x80 >>> (this.length % 8))\n }\n\n this.length++\n }\n}\n\nmodule.exports = BitBuffer\n","exports.L = { bit: 1 }\nexports.M = { bit: 0 }\nexports.Q = { bit: 3 }\nexports.H = { bit: 2 }\n\nfunction fromString (string) {\n if (typeof string !== 'string') {\n throw new Error('Param is not a string')\n }\n\n const lcStr = string.toLowerCase()\n\n switch (lcStr) {\n case 'l':\n case 'low':\n return exports.L\n\n case 'm':\n case 'medium':\n return exports.M\n\n case 'q':\n case 'quartile':\n return exports.Q\n\n case 'h':\n case 'high':\n return exports.H\n\n default:\n throw new Error('Unknown EC Level: ' + string)\n }\n}\n\nexports.isValid = function isValid (level) {\n return level && typeof level.bit !== 'undefined' &&\n level.bit >= 0 && level.bit < 4\n}\n\nexports.from = function from (value, defaultValue) {\n if (exports.isValid(value)) {\n return value\n }\n\n try {\n return fromString(value)\n } catch (e) {\n return defaultValue\n }\n}\n","/**\n * Helper class to handle QR Code symbol modules\n *\n * @param {Number} size Symbol size\n */\nfunction BitMatrix (size) {\n if (!size || size < 1) {\n throw new Error('BitMatrix size must be defined and greater than 0')\n }\n\n this.size = size\n this.data = new Uint8Array(size * size)\n this.reservedBit = new Uint8Array(size * size)\n}\n\n/**\n * Set bit value at specified location\n * If reserved flag is set, this bit will be ignored during masking process\n *\n * @param {Number} row\n * @param {Number} col\n * @param {Boolean} value\n * @param {Boolean} reserved\n */\nBitMatrix.prototype.set = function (row, col, value, reserved) {\n const index = row * this.size + col\n this.data[index] = value\n if (reserved) this.reservedBit[index] = true\n}\n\n/**\n * Returns bit value at specified location\n *\n * @param {Number} row\n * @param {Number} col\n * @return {Boolean}\n */\nBitMatrix.prototype.get = function (row, col) {\n return this.data[row * this.size + col]\n}\n\n/**\n * Applies xor operator at specified location\n * (used during masking process)\n *\n * @param {Number} row\n * @param {Number} col\n * @param {Boolean} value\n */\nBitMatrix.prototype.xor = function (row, col, value) {\n this.data[row * this.size + col] ^= value\n}\n\n/**\n * Check if bit at specified location is reserved\n *\n * @param {Number} row\n * @param {Number} col\n * @return {Boolean}\n */\nBitMatrix.prototype.isReserved = function (row, col) {\n return this.reservedBit[row * this.size + col]\n}\n\nmodule.exports = BitMatrix\n","/**\n * Alignment pattern are fixed reference pattern in defined positions\n * in a matrix symbology, which enables the decode software to re-synchronise\n * the coordinate mapping of the image modules in the event of moderate amounts\n * of distortion of the image.\n *\n * Alignment patterns are present only in QR Code symbols of version 2 or larger\n * and their number depends on the symbol version.\n */\n\nconst getSymbolSize = require('./utils').getSymbolSize\n\n/**\n * Calculate the row/column coordinates of the center module of each alignment pattern\n * for the specified QR Code version.\n *\n * The alignment patterns are positioned symmetrically on either side of the diagonal\n * running from the top left corner of the symbol to the bottom right corner.\n *\n * Since positions are simmetrical only half of the coordinates are returned.\n * Each item of the array will represent in turn the x and y coordinate.\n * @see {@link getPositions}\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinate\n */\nexports.getRowColCoords = function getRowColCoords (version) {\n if (version === 1) return []\n\n const posCount = Math.floor(version / 7) + 2\n const size = getSymbolSize(version)\n const intervals = size === 145 ? 26 : Math.ceil((size - 13) / (2 * posCount - 2)) * 2\n const positions = [size - 7] // Last coord is always (size - 7)\n\n for (let i = 1; i < posCount - 1; i++) {\n positions[i] = positions[i - 1] - intervals\n }\n\n positions.push(6) // First coord is always 6\n\n return positions.reverse()\n}\n\n/**\n * Returns an array containing the positions of each alignment pattern.\n * Each array's element represent the center point of the pattern as (x, y) coordinates\n *\n * Coordinates are calculated expanding the row/column coordinates returned by {@link getRowColCoords}\n * and filtering out the items that overlaps with finder pattern\n *\n * @example\n * For a Version 7 symbol {@link getRowColCoords} returns values 6, 22 and 38.\n * The alignment patterns, therefore, are to be centered on (row, column)\n * positions (6,22), (22,6), (22,22), (22,38), (38,22), (38,38).\n * Note that the coordinates (6,6), (6,38), (38,6) are occupied by finder patterns\n * and are not therefore used for alignment patterns.\n *\n * let pos = getPositions(7)\n * // [[6,22], [22,6], [22,22], [22,38], [38,22], [38,38]]\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinates\n */\nexports.getPositions = function getPositions (version) {\n const coords = []\n const pos = exports.getRowColCoords(version)\n const posLength = pos.length\n\n for (let i = 0; i < posLength; i++) {\n for (let j = 0; j < posLength; j++) {\n // Skip if position is occupied by finder patterns\n if ((i === 0 && j === 0) || // top-left\n (i === 0 && j === posLength - 1) || // bottom-left\n (i === posLength - 1 && j === 0)) { // top-right\n continue\n }\n\n coords.push([pos[i], pos[j]])\n }\n }\n\n return coords\n}\n","const getSymbolSize = require('./utils').getSymbolSize\nconst FINDER_PATTERN_SIZE = 7\n\n/**\n * Returns an array containing the positions of each finder pattern.\n * Each array's element represent the top-left point of the pattern as (x, y) coordinates\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinates\n */\nexports.getPositions = function getPositions (version) {\n const size = getSymbolSize(version)\n\n return [\n // top-left\n [0, 0],\n // top-right\n [size - FINDER_PATTERN_SIZE, 0],\n // bottom-left\n [0, size - FINDER_PATTERN_SIZE]\n ]\n}\n","/**\n * Data mask pattern reference\n * @type {Object}\n */\nexports.Patterns = {\n PATTERN000: 0,\n PATTERN001: 1,\n PATTERN010: 2,\n PATTERN011: 3,\n PATTERN100: 4,\n PATTERN101: 5,\n PATTERN110: 6,\n PATTERN111: 7\n}\n\n/**\n * Weighted penalty scores for the undesirable features\n * @type {Object}\n */\nconst PenaltyScores = {\n N1: 3,\n N2: 3,\n N3: 40,\n N4: 10\n}\n\n/**\n * Check if mask pattern value is valid\n *\n * @param {Number} mask Mask pattern\n * @return {Boolean} true if valid, false otherwise\n */\nexports.isValid = function isValid (mask) {\n return mask != null && mask !== '' && !isNaN(mask) && mask >= 0 && mask <= 7\n}\n\n/**\n * Returns mask pattern from a value.\n * If value is not valid, returns undefined\n *\n * @param {Number|String} value Mask pattern value\n * @return {Number} Valid mask pattern or undefined\n */\nexports.from = function from (value) {\n return exports.isValid(value) ? parseInt(value, 10) : undefined\n}\n\n/**\n* Find adjacent modules in row/column with the same color\n* and assign a penalty value.\n*\n* Points: N1 + i\n* i is the amount by which the number of adjacent modules of the same color exceeds 5\n*/\nexports.getPenaltyN1 = function getPenaltyN1 (data) {\n const size = data.size\n let points = 0\n let sameCountCol = 0\n let sameCountRow = 0\n let lastCol = null\n let lastRow = null\n\n for (let row = 0; row < size; row++) {\n sameCountCol = sameCountRow = 0\n lastCol = lastRow = null\n\n for (let col = 0; col < size; col++) {\n let module = data.get(row, col)\n if (module === lastCol) {\n sameCountCol++\n } else {\n if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5)\n lastCol = module\n sameCountCol = 1\n }\n\n module = data.get(col, row)\n if (module === lastRow) {\n sameCountRow++\n } else {\n if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5)\n lastRow = module\n sameCountRow = 1\n }\n }\n\n if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5)\n if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5)\n }\n\n return points\n}\n\n/**\n * Find 2x2 blocks with the same color and assign a penalty value\n *\n * Points: N2 * (m - 1) * (n - 1)\n */\nexports.getPenaltyN2 = function getPenaltyN2 (data) {\n const size = data.size\n let points = 0\n\n for (let row = 0; row < size - 1; row++) {\n for (let col = 0; col < size - 1; col++) {\n const last = data.get(row, col) +\n data.get(row, col + 1) +\n data.get(row + 1, col) +\n data.get(row + 1, col + 1)\n\n if (last === 4 || last === 0) points++\n }\n }\n\n return points * PenaltyScores.N2\n}\n\n/**\n * Find 1:1:3:1:1 ratio (dark:light:dark:light:dark) pattern in row/column,\n * preceded or followed by light area 4 modules wide\n *\n * Points: N3 * number of pattern found\n */\nexports.getPenaltyN3 = function getPenaltyN3 (data) {\n const size = data.size\n let points = 0\n let bitsCol = 0\n let bitsRow = 0\n\n for (let row = 0; row < size; row++) {\n bitsCol = bitsRow = 0\n for (let col = 0; col < size; col++) {\n bitsCol = ((bitsCol << 1) & 0x7FF) | data.get(row, col)\n if (col >= 10 && (bitsCol === 0x5D0 || bitsCol === 0x05D)) points++\n\n bitsRow = ((bitsRow << 1) & 0x7FF) | data.get(col, row)\n if (col >= 10 && (bitsRow === 0x5D0 || bitsRow === 0x05D)) points++\n }\n }\n\n return points * PenaltyScores.N3\n}\n\n/**\n * Calculate proportion of dark modules in entire symbol\n *\n * Points: N4 * k\n *\n * k is the rating of the deviation of the proportion of dark modules\n * in the symbol from 50% in steps of 5%\n */\nexports.getPenaltyN4 = function getPenaltyN4 (data) {\n let darkCount = 0\n const modulesCount = data.data.length\n\n for (let i = 0; i < modulesCount; i++) darkCount += data.data[i]\n\n const k = Math.abs(Math.ceil((darkCount * 100 / modulesCount) / 5) - 10)\n\n return k * PenaltyScores.N4\n}\n\n/**\n * Return mask value at given position\n *\n * @param {Number} maskPattern Pattern reference value\n * @param {Number} i Row\n * @param {Number} j Column\n * @return {Boolean} Mask value\n */\nfunction getMaskAt (maskPattern, i, j) {\n switch (maskPattern) {\n case exports.Patterns.PATTERN000: return (i + j) % 2 === 0\n case exports.Patterns.PATTERN001: return i % 2 === 0\n case exports.Patterns.PATTERN010: return j % 3 === 0\n case exports.Patterns.PATTERN011: return (i + j) % 3 === 0\n case exports.Patterns.PATTERN100: return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 === 0\n case exports.Patterns.PATTERN101: return (i * j) % 2 + (i * j) % 3 === 0\n case exports.Patterns.PATTERN110: return ((i * j) % 2 + (i * j) % 3) % 2 === 0\n case exports.Patterns.PATTERN111: return ((i * j) % 3 + (i + j) % 2) % 2 === 0\n\n default: throw new Error('bad maskPattern:' + maskPattern)\n }\n}\n\n/**\n * Apply a mask pattern to a BitMatrix\n *\n * @param {Number} pattern Pattern reference number\n * @param {BitMatrix} data BitMatrix data\n */\nexports.applyMask = function applyMask (pattern, data) {\n const size = data.size\n\n for (let col = 0; col < size; col++) {\n for (let row = 0; row < size; row++) {\n if (data.isReserved(row, col)) continue\n data.xor(row, col, getMaskAt(pattern, row, col))\n }\n }\n}\n\n/**\n * Returns the best mask pattern for data\n *\n * @param {BitMatrix} data\n * @return {Number} Mask pattern reference number\n */\nexports.getBestMask = function getBestMask (data, setupFormatFunc) {\n const numPatterns = Object.keys(exports.Patterns).length\n let bestPattern = 0\n let lowerPenalty = Infinity\n\n for (let p = 0; p < numPatterns; p++) {\n setupFormatFunc(p)\n exports.applyMask(p, data)\n\n // Calculate penalty\n const penalty =\n exports.getPenaltyN1(data) +\n exports.getPenaltyN2(data) +\n exports.getPenaltyN3(data) +\n exports.getPenaltyN4(data)\n\n // Undo previously applied mask\n exports.applyMask(p, data)\n\n if (penalty < lowerPenalty) {\n lowerPenalty = penalty\n bestPattern = p\n }\n }\n\n return bestPattern\n}\n","const ECLevel = require('./error-correction-level')\r\n\r\nconst EC_BLOCKS_TABLE = [\r\n// L M Q H\r\n 1, 1, 1, 1,\r\n 1, 1, 1, 1,\r\n 1, 1, 2, 2,\r\n 1, 2, 2, 4,\r\n 1, 2, 4, 4,\r\n 2, 4, 4, 4,\r\n 2, 4, 6, 5,\r\n 2, 4, 6, 6,\r\n 2, 5, 8, 8,\r\n 4, 5, 8, 8,\r\n 4, 5, 8, 11,\r\n 4, 8, 10, 11,\r\n 4, 9, 12, 16,\r\n 4, 9, 16, 16,\r\n 6, 10, 12, 18,\r\n 6, 10, 17, 16,\r\n 6, 11, 16, 19,\r\n 6, 13, 18, 21,\r\n 7, 14, 21, 25,\r\n 8, 16, 20, 25,\r\n 8, 17, 23, 25,\r\n 9, 17, 23, 34,\r\n 9, 18, 25, 30,\r\n 10, 20, 27, 32,\r\n 12, 21, 29, 35,\r\n 12, 23, 34, 37,\r\n 12, 25, 34, 40,\r\n 13, 26, 35, 42,\r\n 14, 28, 38, 45,\r\n 15, 29, 40, 48,\r\n 16, 31, 43, 51,\r\n 17, 33, 45, 54,\r\n 18, 35, 48, 57,\r\n 19, 37, 51, 60,\r\n 19, 38, 53, 63,\r\n 20, 40, 56, 66,\r\n 21, 43, 59, 70,\r\n 22, 45, 62, 74,\r\n 24, 47, 65, 77,\r\n 25, 49, 68, 81\r\n]\r\n\r\nconst EC_CODEWORDS_TABLE = [\r\n// L M Q H\r\n 7, 10, 13, 17,\r\n 10, 16, 22, 28,\r\n 15, 26, 36, 44,\r\n 20, 36, 52, 64,\r\n 26, 48, 72, 88,\r\n 36, 64, 96, 112,\r\n 40, 72, 108, 130,\r\n 48, 88, 132, 156,\r\n 60, 110, 160, 192,\r\n 72, 130, 192, 224,\r\n 80, 150, 224, 264,\r\n 96, 176, 260, 308,\r\n 104, 198, 288, 352,\r\n 120, 216, 320, 384,\r\n 132, 240, 360, 432,\r\n 144, 280, 408, 480,\r\n 168, 308, 448, 532,\r\n 180, 338, 504, 588,\r\n 196, 364, 546, 650,\r\n 224, 416, 600, 700,\r\n 224, 442, 644, 750,\r\n 252, 476, 690, 816,\r\n 270, 504, 750, 900,\r\n 300, 560, 810, 960,\r\n 312, 588, 870, 1050,\r\n 336, 644, 952, 1110,\r\n 360, 700, 1020, 1200,\r\n 390, 728, 1050, 1260,\r\n 420, 784, 1140, 1350,\r\n 450, 812, 1200, 1440,\r\n 480, 868, 1290, 1530,\r\n 510, 924, 1350, 1620,\r\n 540, 980, 1440, 1710,\r\n 570, 1036, 1530, 1800,\r\n 570, 1064, 1590, 1890,\r\n 600, 1120, 1680, 1980,\r\n 630, 1204, 1770, 2100,\r\n 660, 1260, 1860, 2220,\r\n 720, 1316, 1950, 2310,\r\n 750, 1372, 2040, 2430\r\n]\r\n\r\n/**\r\n * Returns the number of error correction block that the QR Code should contain\r\n * for the specified version and error correction level.\r\n *\r\n * @param {Number} version QR Code version\r\n * @param {Number} errorCorrectionLevel Error correction level\r\n * @return {Number} Number of error correction blocks\r\n */\r\nexports.getBlocksCount = function getBlocksCount (version, errorCorrectionLevel) {\r\n switch (errorCorrectionLevel) {\r\n case ECLevel.L:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 0]\r\n case ECLevel.M:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 1]\r\n case ECLevel.Q:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 2]\r\n case ECLevel.H:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 3]\r\n default:\r\n return undefined\r\n }\r\n}\r\n\r\n/**\r\n * Returns the number of error correction codewords to use for the specified\r\n * version and error correction level.\r\n *\r\n * @param {Number} version QR Code version\r\n * @param {Number} errorCorrectionLevel Error correction level\r\n * @return {Number} Number of error correction codewords\r\n */\r\nexports.getTotalCodewordsCount = function getTotalCodewordsCount (version, errorCorrectionLevel) {\r\n switch (errorCorrectionLevel) {\r\n case ECLevel.L:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 0]\r\n case ECLevel.M:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 1]\r\n case ECLevel.Q:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 2]\r\n case ECLevel.H:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 3]\r\n default:\r\n return undefined\r\n }\r\n}\r\n","const EXP_TABLE = new Uint8Array(512)\nconst LOG_TABLE = new Uint8Array(256)\n/**\n * Precompute the log and anti-log tables for faster computation later\n *\n * For each possible value in the galois field 2^8, we will pre-compute\n * the logarithm and anti-logarithm (exponential) of this value\n *\n * ref {@link https://en.wikiversity.org/wiki/Reed%E2%80%93Solomon_codes_for_coders#Introduction_to_mathematical_fields}\n */\n;(function initTables () {\n let x = 1\n for (let i = 0; i < 255; i++) {\n EXP_TABLE[i] = x\n LOG_TABLE[x] = i\n\n x <<= 1 // multiply by 2\n\n // The QR code specification says to use byte-wise modulo 100011101 arithmetic.\n // This means that when a number is 256 or larger, it should be XORed with 0x11D.\n if (x & 0x100) { // similar to x >= 256, but a lot faster (because 0x100 == 256)\n x ^= 0x11D\n }\n }\n\n // Optimization: double the size of the anti-log table so that we don't need to mod 255 to\n // stay inside the bounds (because we will mainly use this table for the multiplication of\n // two GF numbers, no more).\n // @see {@link mul}\n for (let i = 255; i < 512; i++) {\n EXP_TABLE[i] = EXP_TABLE[i - 255]\n }\n}())\n\n/**\n * Returns log value of n inside Galois Field\n *\n * @param {Number} n\n * @return {Number}\n */\nexports.log = function log (n) {\n if (n < 1) throw new Error('log(' + n + ')')\n return LOG_TABLE[n]\n}\n\n/**\n * Returns anti-log value of n inside Galois Field\n *\n * @param {Number} n\n * @return {Number}\n */\nexports.exp = function exp (n) {\n return EXP_TABLE[n]\n}\n\n/**\n * Multiplies two number inside Galois Field\n *\n * @param {Number} x\n * @param {Number} y\n * @return {Number}\n */\nexports.mul = function mul (x, y) {\n if (x === 0 || y === 0) return 0\n\n // should be EXP_TABLE[(LOG_TABLE[x] + LOG_TABLE[y]) % 255] if EXP_TABLE wasn't oversized\n // @see {@link initTables}\n return EXP_TABLE[LOG_TABLE[x] + LOG_TABLE[y]]\n}\n","const GF = require('./galois-field')\n\n/**\n * Multiplies two polynomials inside Galois Field\n *\n * @param {Uint8Array} p1 Polynomial\n * @param {Uint8Array} p2 Polynomial\n * @return {Uint8Array} Product of p1 and p2\n */\nexports.mul = function mul (p1, p2) {\n const coeff = new Uint8Array(p1.length + p2.length - 1)\n\n for (let i = 0; i < p1.length; i++) {\n for (let j = 0; j < p2.length; j++) {\n coeff[i + j] ^= GF.mul(p1[i], p2[j])\n }\n }\n\n return coeff\n}\n\n/**\n * Calculate the remainder of polynomials division\n *\n * @param {Uint8Array} divident Polynomial\n * @param {Uint8Array} divisor Polynomial\n * @return {Uint8Array} Remainder\n */\nexports.mod = function mod (divident, divisor) {\n let result = new Uint8Array(divident)\n\n while ((result.length - divisor.length) >= 0) {\n const coeff = result[0]\n\n for (let i = 0; i < divisor.length; i++) {\n result[i] ^= GF.mul(divisor[i], coeff)\n }\n\n // remove all zeros from buffer head\n let offset = 0\n while (offset < result.length && result[offset] === 0) offset++\n result = result.slice(offset)\n }\n\n return result\n}\n\n/**\n * Generate an irreducible generator polynomial of specified degree\n * (used by Reed-Solomon encoder)\n *\n * @param {Number} degree Degree of the generator polynomial\n * @return {Uint8Array} Buffer containing polynomial coefficients\n */\nexports.generateECPolynomial = function generateECPolynomial (degree) {\n let poly = new Uint8Array([1])\n for (let i = 0; i < degree; i++) {\n poly = exports.mul(poly, new Uint8Array([1, GF.exp(i)]))\n }\n\n return poly\n}\n","const Polynomial = require('./polynomial')\n\nfunction ReedSolomonEncoder (degree) {\n this.genPoly = undefined\n this.degree = degree\n\n if (this.degree) this.initialize(this.degree)\n}\n\n/**\n * Initialize the encoder.\n * The input param should correspond to the number of error correction codewords.\n *\n * @param {Number} degree\n */\nReedSolomonEncoder.prototype.initialize = function initialize (degree) {\n // create an irreducible generator polynomial\n this.degree = degree\n this.genPoly = Polynomial.generateECPolynomial(this.degree)\n}\n\n/**\n * Encodes a chunk of data\n *\n * @param {Uint8Array} data Buffer containing input data\n * @return {Uint8Array} Buffer containing encoded data\n */\nReedSolomonEncoder.prototype.encode = function encode (data) {\n if (!this.genPoly) {\n throw new Error('Encoder not initialized')\n }\n\n // Calculate EC for this data block\n // extends data size to data+genPoly size\n const paddedData = new Uint8Array(data.length + this.degree)\n paddedData.set(data)\n\n // The error correction codewords are the remainder after dividing the data codewords\n // by a generator polynomial\n const remainder = Polynomial.mod(paddedData, this.genPoly)\n\n // return EC data blocks (last n byte, where n is the degree of genPoly)\n // If coefficients number in remainder are less than genPoly degree,\n // pad with 0s to the left to reach the needed number of coefficients\n const start = this.degree - remainder.length\n if (start > 0) {\n const buff = new Uint8Array(this.degree)\n buff.set(remainder, start)\n\n return buff\n }\n\n return remainder\n}\n\nmodule.exports = ReedSolomonEncoder\n","/**\n * Check if QR Code version is valid\n *\n * @param {Number} version QR Code version\n * @return {Boolean} true if valid version, false otherwise\n */\nexports.isValid = function isValid (version) {\n return !isNaN(version) && version >= 1 && version <= 40\n}\n","const numeric = '[0-9]+'\nconst alphanumeric = '[A-Z $%*+\\\\-./:]+'\nlet kanji = '(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|' +\n '[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|' +\n '[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|' +\n '[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+'\nkanji = kanji.replace(/u/g, '\\\\u')\n\nconst byte = '(?:(?![A-Z0-9 $%*+\\\\-./:]|' + kanji + ')(?:.|[\\r\\n]))+'\n\nexports.KANJI = new RegExp(kanji, 'g')\nexports.BYTE_KANJI = new RegExp('[^A-Z0-9 $%*+\\\\-./:]+', 'g')\nexports.BYTE = new RegExp(byte, 'g')\nexports.NUMERIC = new RegExp(numeric, 'g')\nexports.ALPHANUMERIC = new RegExp(alphanumeric, 'g')\n\nconst TEST_KANJI = new RegExp('^' + kanji + '$')\nconst TEST_NUMERIC = new RegExp('^' + numeric + '$')\nconst TEST_ALPHANUMERIC = new RegExp('^[A-Z0-9 $%*+\\\\-./:]+$')\n\nexports.testKanji = function testKanji (str) {\n return TEST_KANJI.test(str)\n}\n\nexports.testNumeric = function testNumeric (str) {\n return TEST_NUMERIC.test(str)\n}\n\nexports.testAlphanumeric = function testAlphanumeric (str) {\n return TEST_ALPHANUMERIC.test(str)\n}\n","const VersionCheck = require('./version-check')\nconst Regex = require('./regex')\n\n/**\n * Numeric mode encodes data from the decimal digit set (0 - 9)\n * (byte values 30HEX to 39HEX).\n * Normally, 3 data characters are represented by 10 bits.\n *\n * @type {Object}\n */\nexports.NUMERIC = {\n id: 'Numeric',\n bit: 1 << 0,\n ccBits: [10, 12, 14]\n}\n\n/**\n * Alphanumeric mode encodes data from a set of 45 characters,\n * i.e. 10 numeric digits (0 - 9),\n * 26 alphabetic characters (A - Z),\n * and 9 symbols (SP, $, %, *, +, -, ., /, :).\n * Normally, two input characters are represented by 11 bits.\n *\n * @type {Object}\n */\nexports.ALPHANUMERIC = {\n id: 'Alphanumeric',\n bit: 1 << 1,\n ccBits: [9, 11, 13]\n}\n\n/**\n * In byte mode, data is encoded at 8 bits per character.\n *\n * @type {Object}\n */\nexports.BYTE = {\n id: 'Byte',\n bit: 1 << 2,\n ccBits: [8, 16, 16]\n}\n\n/**\n * The Kanji mode efficiently encodes Kanji characters in accordance with\n * the Shift JIS system based on JIS X 0208.\n * The Shift JIS values are shifted from the JIS X 0208 values.\n * JIS X 0208 gives details of the shift coded representation.\n * Each two-byte character value is compacted to a 13-bit binary codeword.\n *\n * @type {Object}\n */\nexports.KANJI = {\n id: 'Kanji',\n bit: 1 << 3,\n ccBits: [8, 10, 12]\n}\n\n/**\n * Mixed mode will contain a sequences of data in a combination of any of\n * the modes described above\n *\n * @type {Object}\n */\nexports.MIXED = {\n bit: -1\n}\n\n/**\n * Returns the number of bits needed to store the data length\n * according to QR Code specifications.\n *\n * @param {Mode} mode Data mode\n * @param {Number} version QR Code version\n * @return {Number} Number of bits\n */\nexports.getCharCountIndicator = function getCharCountIndicator (mode, version) {\n if (!mode.ccBits) throw new Error('Invalid mode: ' + mode)\n\n if (!VersionCheck.isValid(version)) {\n throw new Error('Invalid version: ' + version)\n }\n\n if (version >= 1 && version < 10) return mode.ccBits[0]\n else if (version < 27) return mode.ccBits[1]\n return mode.ccBits[2]\n}\n\n/**\n * Returns the most efficient mode to store the specified data\n *\n * @param {String} dataStr Input data string\n * @return {Mode} Best mode\n */\nexports.getBestModeForData = function getBestModeForData (dataStr) {\n if (Regex.testNumeric(dataStr)) return exports.NUMERIC\n else if (Regex.testAlphanumeric(dataStr)) return exports.ALPHANUMERIC\n else if (Regex.testKanji(dataStr)) return exports.KANJI\n else return exports.BYTE\n}\n\n/**\n * Return mode name as string\n *\n * @param {Mode} mode Mode object\n * @returns {String} Mode name\n */\nexports.toString = function toString (mode) {\n if (mode && mode.id) return mode.id\n throw new Error('Invalid mode')\n}\n\n/**\n * Check if input param is a valid mode object\n *\n * @param {Mode} mode Mode object\n * @returns {Boolean} True if valid mode, false otherwise\n */\nexports.isValid = function isValid (mode) {\n return mode && mode.bit && mode.ccBits\n}\n\n/**\n * Get mode object from its name\n *\n * @param {String} string Mode name\n * @returns {Mode} Mode object\n */\nfunction fromString (string) {\n if (typeof string !== 'string') {\n throw new Error('Param is not a string')\n }\n\n const lcStr = string.toLowerCase()\n\n switch (lcStr) {\n case 'numeric':\n return exports.NUMERIC\n case 'alphanumeric':\n return exports.ALPHANUMERIC\n case 'kanji':\n return exports.KANJI\n case 'byte':\n return exports.BYTE\n default:\n throw new Error('Unknown mode: ' + string)\n }\n}\n\n/**\n * Returns mode from a value.\n * If value is not a valid mode, returns defaultValue\n *\n * @param {Mode|String} value Encoding mode\n * @param {Mode} defaultValue Fallback value\n * @return {Mode} Encoding mode\n */\nexports.from = function from (value, defaultValue) {\n if (exports.isValid(value)) {\n return value\n }\n\n try {\n return fromString(value)\n } catch (e) {\n return defaultValue\n }\n}\n","const Utils = require('./utils')\nconst ECCode = require('./error-correction-code')\nconst ECLevel = require('./error-correction-level')\nconst Mode = require('./mode')\nconst VersionCheck = require('./version-check')\n\n// Generator polynomial used to encode version information\nconst G18 = (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0)\nconst G18_BCH = Utils.getBCHDigit(G18)\n\nfunction getBestVersionForDataLength (mode, length, errorCorrectionLevel) {\n for (let currentVersion = 1; currentVersion <= 40; currentVersion++) {\n if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, mode)) {\n return currentVersion\n }\n }\n\n return undefined\n}\n\nfunction getReservedBitsCount (mode, version) {\n // Character count indicator + mode indicator bits\n return Mode.getCharCountIndicator(mode, version) + 4\n}\n\nfunction getTotalBitsFromDataArray (segments, version) {\n let totalBits = 0\n\n segments.forEach(function (data) {\n const reservedBits = getReservedBitsCount(data.mode, version)\n totalBits += reservedBits + data.getBitsLength()\n })\n\n return totalBits\n}\n\nfunction getBestVersionForMixedData (segments, errorCorrectionLevel) {\n for (let currentVersion = 1; currentVersion <= 40; currentVersion++) {\n const length = getTotalBitsFromDataArray(segments, currentVersion)\n if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, Mode.MIXED)) {\n return currentVersion\n }\n }\n\n return undefined\n}\n\n/**\n * Returns version number from a value.\n * If value is not a valid version, returns defaultValue\n *\n * @param {Number|String} value QR Code version\n * @param {Number} defaultValue Fallback value\n * @return {Number} QR Code version number\n */\nexports.from = function from (value, defaultValue) {\n if (VersionCheck.isValid(value)) {\n return parseInt(value, 10)\n }\n\n return defaultValue\n}\n\n/**\n * Returns how much data can be stored with the specified QR code version\n * and error correction level\n *\n * @param {Number} version QR Code version (1-40)\n * @param {Number} errorCorrectionLevel Error correction level\n * @param {Mode} mode Data mode\n * @return {Number} Quantity of storable data\n */\nexports.getCapacity = function getCapacity (version, errorCorrectionLevel, mode) {\n if (!VersionCheck.isValid(version)) {\n throw new Error('Invalid QR Code version')\n }\n\n // Use Byte mode as default\n if (typeof mode === 'undefined') mode = Mode.BYTE\n\n // Total codewords for this QR code version (Data + Error correction)\n const totalCodewords = Utils.getSymbolTotalCodewords(version)\n\n // Total number of error correction codewords\n const ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n\n // Total number of data codewords\n const dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8\n\n if (mode === Mode.MIXED) return dataTotalCodewordsBits\n\n const usableBits = dataTotalCodewordsBits - getReservedBitsCount(mode, version)\n\n // Return max number of storable codewords\n switch (mode) {\n case Mode.NUMERIC:\n return Math.floor((usableBits / 10) * 3)\n\n case Mode.ALPHANUMERIC:\n return Math.floor((usableBits / 11) * 2)\n\n case Mode.KANJI:\n return Math.floor(usableBits / 13)\n\n case Mode.BYTE:\n default:\n return Math.floor(usableBits / 8)\n }\n}\n\n/**\n * Returns the minimum version needed to contain the amount of data\n *\n * @param {Segment} data Segment of data\n * @param {Number} [errorCorrectionLevel=H] Error correction level\n * @param {Mode} mode Data mode\n * @return {Number} QR Code version\n */\nexports.getBestVersionForData = function getBestVersionForData (data, errorCorrectionLevel) {\n let seg\n\n const ecl = ECLevel.from(errorCorrectionLevel, ECLevel.M)\n\n if (Array.isArray(data)) {\n if (data.length > 1) {\n return getBestVersionForMixedData(data, ecl)\n }\n\n if (data.length === 0) {\n return 1\n }\n\n seg = data[0]\n } else {\n seg = data\n }\n\n return getBestVersionForDataLength(seg.mode, seg.getLength(), ecl)\n}\n\n/**\n * Returns version information with relative error correction bits\n *\n * The version information is included in QR Code symbols of version 7 or larger.\n * It consists of an 18-bit sequence containing 6 data bits,\n * with 12 error correction bits calculated using the (18, 6) Golay code.\n *\n * @param {Number} version QR Code version\n * @return {Number} Encoded version info bits\n */\nexports.getEncodedBits = function getEncodedBits (version) {\n if (!VersionCheck.isValid(version) || version < 7) {\n throw new Error('Invalid QR Code version')\n }\n\n let d = version << 12\n\n while (Utils.getBCHDigit(d) - G18_BCH >= 0) {\n d ^= (G18 << (Utils.getBCHDigit(d) - G18_BCH))\n }\n\n return (version << 12) | d\n}\n","const Utils = require('./utils')\n\nconst G15 = (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0)\nconst G15_MASK = (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1)\nconst G15_BCH = Utils.getBCHDigit(G15)\n\n/**\n * Returns format information with relative error correction bits\n *\n * The format information is a 15-bit sequence containing 5 data bits,\n * with 10 error correction bits calculated using the (15, 5) BCH code.\n *\n * @param {Number} errorCorrectionLevel Error correction level\n * @param {Number} mask Mask pattern\n * @return {Number} Encoded format information bits\n */\nexports.getEncodedBits = function getEncodedBits (errorCorrectionLevel, mask) {\n const data = ((errorCorrectionLevel.bit << 3) | mask)\n let d = data << 10\n\n while (Utils.getBCHDigit(d) - G15_BCH >= 0) {\n d ^= (G15 << (Utils.getBCHDigit(d) - G15_BCH))\n }\n\n // xor final data with mask pattern in order to ensure that\n // no combination of Error Correction Level and data mask pattern\n // will result in an all-zero data string\n return ((data << 10) | d) ^ G15_MASK\n}\n","const Mode = require('./mode')\n\nfunction NumericData (data) {\n this.mode = Mode.NUMERIC\n this.data = data.toString()\n}\n\nNumericData.getBitsLength = function getBitsLength (length) {\n return 10 * Math.floor(length / 3) + ((length % 3) ? ((length % 3) * 3 + 1) : 0)\n}\n\nNumericData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nNumericData.prototype.getBitsLength = function getBitsLength () {\n return NumericData.getBitsLength(this.data.length)\n}\n\nNumericData.prototype.write = function write (bitBuffer) {\n let i, group, value\n\n // The input data string is divided into groups of three digits,\n // and each group is converted to its 10-bit binary equivalent.\n for (i = 0; i + 3 <= this.data.length; i += 3) {\n group = this.data.substr(i, 3)\n value = parseInt(group, 10)\n\n bitBuffer.put(value, 10)\n }\n\n // If the number of input digits is not an exact multiple of three,\n // the final one or two digits are converted to 4 or 7 bits respectively.\n const remainingNum = this.data.length - i\n if (remainingNum > 0) {\n group = this.data.substr(i)\n value = parseInt(group, 10)\n\n bitBuffer.put(value, remainingNum * 3 + 1)\n }\n}\n\nmodule.exports = NumericData\n","const Mode = require('./mode')\n\n/**\n * Array of characters available in alphanumeric mode\n *\n * As per QR Code specification, to each character\n * is assigned a value from 0 to 44 which in this case coincides\n * with the array index\n *\n * @type {Array}\n */\nconst ALPHA_NUM_CHARS = [\n '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',\n 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',\n 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',\n ' ', '$', '%', '*', '+', '-', '.', '/', ':'\n]\n\nfunction AlphanumericData (data) {\n this.mode = Mode.ALPHANUMERIC\n this.data = data\n}\n\nAlphanumericData.getBitsLength = function getBitsLength (length) {\n return 11 * Math.floor(length / 2) + 6 * (length % 2)\n}\n\nAlphanumericData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nAlphanumericData.prototype.getBitsLength = function getBitsLength () {\n return AlphanumericData.getBitsLength(this.data.length)\n}\n\nAlphanumericData.prototype.write = function write (bitBuffer) {\n let i\n\n // Input data characters are divided into groups of two characters\n // and encoded as 11-bit binary codes.\n for (i = 0; i + 2 <= this.data.length; i += 2) {\n // The character value of the first character is multiplied by 45\n let value = ALPHA_NUM_CHARS.indexOf(this.data[i]) * 45\n\n // The character value of the second digit is added to the product\n value += ALPHA_NUM_CHARS.indexOf(this.data[i + 1])\n\n // The sum is then stored as 11-bit binary number\n bitBuffer.put(value, 11)\n }\n\n // If the number of input data characters is not a multiple of two,\n // the character value of the final character is encoded as a 6-bit binary number.\n if (this.data.length % 2) {\n bitBuffer.put(ALPHA_NUM_CHARS.indexOf(this.data[i]), 6)\n }\n}\n\nmodule.exports = AlphanumericData\n","'use strict'\n\nmodule.exports = function encodeUtf8 (input) {\n var result = []\n var size = input.length\n\n for (var index = 0; index < size; index++) {\n var point = input.charCodeAt(index)\n\n if (point >= 0xD800 && point <= 0xDBFF && size > index + 1) {\n var second = input.charCodeAt(index + 1)\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n point = (point - 0xD800) * 0x400 + second - 0xDC00 + 0x10000\n index += 1\n }\n }\n\n // US-ASCII\n if (point < 0x80) {\n result.push(point)\n continue\n }\n\n // 2-byte UTF-8\n if (point < 0x800) {\n result.push((point >> 6) | 192)\n result.push((point & 63) | 128)\n continue\n }\n\n // 3-byte UTF-8\n if (point < 0xD800 || (point >= 0xE000 && point < 0x10000)) {\n result.push((point >> 12) | 224)\n result.push(((point >> 6) & 63) | 128)\n result.push((point & 63) | 128)\n continue\n }\n\n // 4-byte UTF-8\n if (point >= 0x10000 && point <= 0x10FFFF) {\n result.push((point >> 18) | 240)\n result.push(((point >> 12) & 63) | 128)\n result.push(((point >> 6) & 63) | 128)\n result.push((point & 63) | 128)\n continue\n }\n\n // Invalid character\n result.push(0xEF, 0xBF, 0xBD)\n }\n\n return new Uint8Array(result).buffer\n}\n","const encodeUtf8 = require('encode-utf8')\nconst Mode = require('./mode')\n\nfunction ByteData (data) {\n this.mode = Mode.BYTE\n if (typeof (data) === 'string') {\n data = encodeUtf8(data)\n }\n this.data = new Uint8Array(data)\n}\n\nByteData.getBitsLength = function getBitsLength (length) {\n return length * 8\n}\n\nByteData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nByteData.prototype.getBitsLength = function getBitsLength () {\n return ByteData.getBitsLength(this.data.length)\n}\n\nByteData.prototype.write = function (bitBuffer) {\n for (let i = 0, l = this.data.length; i < l; i++) {\n bitBuffer.put(this.data[i], 8)\n }\n}\n\nmodule.exports = ByteData\n","const Mode = require('./mode')\nconst Utils = require('./utils')\n\nfunction KanjiData (data) {\n this.mode = Mode.KANJI\n this.data = data\n}\n\nKanjiData.getBitsLength = function getBitsLength (length) {\n return length * 13\n}\n\nKanjiData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nKanjiData.prototype.getBitsLength = function getBitsLength () {\n return KanjiData.getBitsLength(this.data.length)\n}\n\nKanjiData.prototype.write = function (bitBuffer) {\n let i\n\n // In the Shift JIS system, Kanji characters are represented by a two byte combination.\n // These byte values are shifted from the JIS X 0208 values.\n // JIS X 0208 gives details of the shift coded representation.\n for (i = 0; i < this.data.length; i++) {\n let value = Utils.toSJIS(this.data[i])\n\n // For characters with Shift JIS values from 0x8140 to 0x9FFC:\n if (value >= 0x8140 && value <= 0x9FFC) {\n // Subtract 0x8140 from Shift JIS value\n value -= 0x8140\n\n // For characters with Shift JIS values from 0xE040 to 0xEBBF\n } else if (value >= 0xE040 && value <= 0xEBBF) {\n // Subtract 0xC140 from Shift JIS value\n value -= 0xC140\n } else {\n throw new Error(\n 'Invalid SJIS character: ' + this.data[i] + '\\n' +\n 'Make sure your charset is UTF-8')\n }\n\n // Multiply most significant byte of result by 0xC0\n // and add least significant byte to product\n value = (((value >>> 8) & 0xff) * 0xC0) + (value & 0xff)\n\n // Convert result to a 13-bit binary string\n bitBuffer.put(value, 13)\n }\n}\n\nmodule.exports = KanjiData\n","const Mode = require('./mode')\nconst NumericData = require('./numeric-data')\nconst AlphanumericData = require('./alphanumeric-data')\nconst ByteData = require('./byte-data')\nconst KanjiData = require('./kanji-data')\nconst Regex = require('./regex')\nconst Utils = require('./utils')\nconst dijkstra = require('dijkstrajs')\n\n/**\n * Returns UTF8 byte length\n *\n * @param {String} str Input string\n * @return {Number} Number of byte\n */\nfunction getStringByteLength (str) {\n return unescape(encodeURIComponent(str)).length\n}\n\n/**\n * Get a list of segments of the specified mode\n * from a string\n *\n * @param {Mode} mode Segment mode\n * @param {String} str String to process\n * @return {Array} Array of object with segments data\n */\nfunction getSegments (regex, mode, str) {\n const segments = []\n let result\n\n while ((result = regex.exec(str)) !== null) {\n segments.push({\n data: result[0],\n index: result.index,\n mode: mode,\n length: result[0].length\n })\n }\n\n return segments\n}\n\n/**\n * Extracts a series of segments with the appropriate\n * modes from a string\n *\n * @param {String} dataStr Input string\n * @return {Array} Array of object with segments data\n */\nfunction getSegmentsFromString (dataStr) {\n const numSegs = getSegments(Regex.NUMERIC, Mode.NUMERIC, dataStr)\n const alphaNumSegs = getSegments(Regex.ALPHANUMERIC, Mode.ALPHANUMERIC, dataStr)\n let byteSegs\n let kanjiSegs\n\n if (Utils.isKanjiModeEnabled()) {\n byteSegs = getSegments(Regex.BYTE, Mode.BYTE, dataStr)\n kanjiSegs = getSegments(Regex.KANJI, Mode.KANJI, dataStr)\n } else {\n byteSegs = getSegments(Regex.BYTE_KANJI, Mode.BYTE, dataStr)\n kanjiSegs = []\n }\n\n const segs = numSegs.concat(alphaNumSegs, byteSegs, kanjiSegs)\n\n return segs\n .sort(function (s1, s2) {\n return s1.index - s2.index\n })\n .map(function (obj) {\n return {\n data: obj.data,\n mode: obj.mode,\n length: obj.length\n }\n })\n}\n\n/**\n * Returns how many bits are needed to encode a string of\n * specified length with the specified mode\n *\n * @param {Number} length String length\n * @param {Mode} mode Segment mode\n * @return {Number} Bit length\n */\nfunction getSegmentBitsLength (length, mode) {\n switch (mode) {\n case Mode.NUMERIC:\n return NumericData.getBitsLength(length)\n case Mode.ALPHANUMERIC:\n return AlphanumericData.getBitsLength(length)\n case Mode.KANJI:\n return KanjiData.getBitsLength(length)\n case Mode.BYTE:\n return ByteData.getBitsLength(length)\n }\n}\n\n/**\n * Merges adjacent segments which have the same mode\n *\n * @param {Array} segs Array of object with segments data\n * @return {Array} Array of object with segments data\n */\nfunction mergeSegments (segs) {\n return segs.reduce(function (acc, curr) {\n const prevSeg = acc.length - 1 >= 0 ? acc[acc.length - 1] : null\n if (prevSeg && prevSeg.mode === curr.mode) {\n acc[acc.length - 1].data += curr.data\n return acc\n }\n\n acc.push(curr)\n return acc\n }, [])\n}\n\n/**\n * Generates a list of all possible nodes combination which\n * will be used to build a segments graph.\n *\n * Nodes are divided by groups. Each group will contain a list of all the modes\n * in which is possible to encode the given text.\n *\n * For example the text '12345' can be encoded as Numeric, Alphanumeric or Byte.\n * The group for '12345' will contain then 3 objects, one for each\n * possible encoding mode.\n *\n * Each node represents a possible segment.\n *\n * @param {Array} segs Array of object with segments data\n * @return {Array} Array of object with segments data\n */\nfunction buildNodes (segs) {\n const nodes = []\n for (let i = 0; i < segs.length; i++) {\n const seg = segs[i]\n\n switch (seg.mode) {\n case Mode.NUMERIC:\n nodes.push([seg,\n { data: seg.data, mode: Mode.ALPHANUMERIC, length: seg.length },\n { data: seg.data, mode: Mode.BYTE, length: seg.length }\n ])\n break\n case Mode.ALPHANUMERIC:\n nodes.push([seg,\n { data: seg.data, mode: Mode.BYTE, length: seg.length }\n ])\n break\n case Mode.KANJI:\n nodes.push([seg,\n { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n ])\n break\n case Mode.BYTE:\n nodes.push([\n { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n ])\n }\n }\n\n return nodes\n}\n\n/**\n * Builds a graph from a list of nodes.\n * All segments in each node group will be connected with all the segments of\n * the next group and so on.\n *\n * At each connection will be assigned a weight depending on the\n * segment's byte length.\n *\n * @param {Array} nodes Array of object with segments data\n * @param {Number} version QR Code version\n * @return {Object} Graph of all possible segments\n */\nfunction buildGraph (nodes, version) {\n const table = {}\n const graph = { start: {} }\n let prevNodeIds = ['start']\n\n for (let i = 0; i < nodes.length; i++) {\n const nodeGroup = nodes[i]\n const currentNodeIds = []\n\n for (let j = 0; j < nodeGroup.length; j++) {\n const node = nodeGroup[j]\n const key = '' + i + j\n\n currentNodeIds.push(key)\n table[key] = { node: node, lastCount: 0 }\n graph[key] = {}\n\n for (let n = 0; n < prevNodeIds.length; n++) {\n const prevNodeId = prevNodeIds[n]\n\n if (table[prevNodeId] && table[prevNodeId].node.mode === node.mode) {\n graph[prevNodeId][key] =\n getSegmentBitsLength(table[prevNodeId].lastCount + node.length, node.mode) -\n getSegmentBitsLength(table[prevNodeId].lastCount, node.mode)\n\n table[prevNodeId].lastCount += node.length\n } else {\n if (table[prevNodeId]) table[prevNodeId].lastCount = node.length\n\n graph[prevNodeId][key] = getSegmentBitsLength(node.length, node.mode) +\n 4 + Mode.getCharCountIndicator(node.mode, version) // switch cost\n }\n }\n }\n\n prevNodeIds = currentNodeIds\n }\n\n for (let n = 0; n < prevNodeIds.length; n++) {\n graph[prevNodeIds[n]].end = 0\n }\n\n return { map: graph, table: table }\n}\n\n/**\n * Builds a segment from a specified data and mode.\n * If a mode is not specified, the more suitable will be used.\n *\n * @param {String} data Input data\n * @param {Mode | String} modesHint Data mode\n * @return {Segment} Segment\n */\nfunction buildSingleSegment (data, modesHint) {\n let mode\n const bestMode = Mode.getBestModeForData(data)\n\n mode = Mode.from(modesHint, bestMode)\n\n // Make sure data can be encoded\n if (mode !== Mode.BYTE && mode.bit < bestMode.bit) {\n throw new Error('\"' + data + '\"' +\n ' cannot be encoded with mode ' + Mode.toString(mode) +\n '.\\n Suggested mode is: ' + Mode.toString(bestMode))\n }\n\n // Use Mode.BYTE if Kanji support is disabled\n if (mode === Mode.KANJI && !Utils.isKanjiModeEnabled()) {\n mode = Mode.BYTE\n }\n\n switch (mode) {\n case Mode.NUMERIC:\n return new NumericData(data)\n\n case Mode.ALPHANUMERIC:\n return new AlphanumericData(data)\n\n case Mode.KANJI:\n return new KanjiData(data)\n\n case Mode.BYTE:\n return new ByteData(data)\n }\n}\n\n/**\n * Builds a list of segments from an array.\n * Array can contain Strings or Objects with segment's info.\n *\n * For each item which is a string, will be generated a segment with the given\n * string and the more appropriate encoding mode.\n *\n * For each item which is an object, will be generated a segment with the given\n * data and mode.\n * Objects must contain at least the property \"data\".\n * If property \"mode\" is not present, the more suitable mode will be used.\n *\n * @param {Array} array Array of objects with segments data\n * @return {Array} Array of Segments\n */\nexports.fromArray = function fromArray (array) {\n return array.reduce(function (acc, seg) {\n if (typeof seg === 'string') {\n acc.push(buildSingleSegment(seg, null))\n } else if (seg.data) {\n acc.push(buildSingleSegment(seg.data, seg.mode))\n }\n\n return acc\n }, [])\n}\n\n/**\n * Builds an optimized sequence of segments from a string,\n * which will produce the shortest possible bitstream.\n *\n * @param {String} data Input string\n * @param {Number} version QR Code version\n * @return {Array} Array of segments\n */\nexports.fromString = function fromString (data, version) {\n const segs = getSegmentsFromString(data, Utils.isKanjiModeEnabled())\n\n const nodes = buildNodes(segs)\n const graph = buildGraph(nodes, version)\n const path = dijkstra.find_path(graph.map, 'start', 'end')\n\n const optimizedSegs = []\n for (let i = 1; i < path.length - 1; i++) {\n optimizedSegs.push(graph.table[path[i]].node)\n }\n\n return exports.fromArray(mergeSegments(optimizedSegs))\n}\n\n/**\n * Splits a string in various segments with the modes which\n * best represent their content.\n * The produced segments are far from being optimized.\n * The output of this function is only used to estimate a QR Code version\n * which may contain the data.\n *\n * @param {string} data Input string\n * @return {Array} Array of segments\n */\nexports.rawSplit = function rawSplit (data) {\n return exports.fromArray(\n getSegmentsFromString(data, Utils.isKanjiModeEnabled())\n )\n}\n","const Utils = require('./utils')\nconst ECLevel = require('./error-correction-level')\nconst BitBuffer = require('./bit-buffer')\nconst BitMatrix = require('./bit-matrix')\nconst AlignmentPattern = require('./alignment-pattern')\nconst FinderPattern = require('./finder-pattern')\nconst MaskPattern = require('./mask-pattern')\nconst ECCode = require('./error-correction-code')\nconst ReedSolomonEncoder = require('./reed-solomon-encoder')\nconst Version = require('./version')\nconst FormatInfo = require('./format-info')\nconst Mode = require('./mode')\nconst Segments = require('./segments')\n\n/**\n * QRCode for JavaScript\n *\n * modified by Ryan Day for nodejs support\n * Copyright (c) 2011 Ryan Day\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/mit-license.php\n *\n//---------------------------------------------------------------------\n// QRCode for JavaScript\n//\n// Copyright (c) 2009 Kazuhiko Arase\n//\n// URL: http://www.d-project.com/\n//\n// Licensed under the MIT license:\n// http://www.opensource.org/licenses/mit-license.php\n//\n// The word \"QR Code\" is registered trademark of\n// DENSO WAVE INCORPORATED\n// http://www.denso-wave.com/qrcode/faqpatent-e.html\n//\n//---------------------------------------------------------------------\n*/\n\n/**\n * Add finder patterns bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupFinderPattern (matrix, version) {\n const size = matrix.size\n const pos = FinderPattern.getPositions(version)\n\n for (let i = 0; i < pos.length; i++) {\n const row = pos[i][0]\n const col = pos[i][1]\n\n for (let r = -1; r <= 7; r++) {\n if (row + r <= -1 || size <= row + r) continue\n\n for (let c = -1; c <= 7; c++) {\n if (col + c <= -1 || size <= col + c) continue\n\n if ((r >= 0 && r <= 6 && (c === 0 || c === 6)) ||\n (c >= 0 && c <= 6 && (r === 0 || r === 6)) ||\n (r >= 2 && r <= 4 && c >= 2 && c <= 4)) {\n matrix.set(row + r, col + c, true, true)\n } else {\n matrix.set(row + r, col + c, false, true)\n }\n }\n }\n }\n}\n\n/**\n * Add timing pattern bits to matrix\n *\n * Note: this function must be called before {@link setupAlignmentPattern}\n *\n * @param {BitMatrix} matrix Modules matrix\n */\nfunction setupTimingPattern (matrix) {\n const size = matrix.size\n\n for (let r = 8; r < size - 8; r++) {\n const value = r % 2 === 0\n matrix.set(r, 6, value, true)\n matrix.set(6, r, value, true)\n }\n}\n\n/**\n * Add alignment patterns bits to matrix\n *\n * Note: this function must be called after {@link setupTimingPattern}\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupAlignmentPattern (matrix, version) {\n const pos = AlignmentPattern.getPositions(version)\n\n for (let i = 0; i < pos.length; i++) {\n const row = pos[i][0]\n const col = pos[i][1]\n\n for (let r = -2; r <= 2; r++) {\n for (let c = -2; c <= 2; c++) {\n if (r === -2 || r === 2 || c === -2 || c === 2 ||\n (r === 0 && c === 0)) {\n matrix.set(row + r, col + c, true, true)\n } else {\n matrix.set(row + r, col + c, false, true)\n }\n }\n }\n }\n}\n\n/**\n * Add version info bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupVersionInfo (matrix, version) {\n const size = matrix.size\n const bits = Version.getEncodedBits(version)\n let row, col, mod\n\n for (let i = 0; i < 18; i++) {\n row = Math.floor(i / 3)\n col = i % 3 + size - 8 - 3\n mod = ((bits >> i) & 1) === 1\n\n matrix.set(row, col, mod, true)\n matrix.set(col, row, mod, true)\n }\n}\n\n/**\n * Add format info bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @param {Number} maskPattern Mask pattern reference value\n */\nfunction setupFormatInfo (matrix, errorCorrectionLevel, maskPattern) {\n const size = matrix.size\n const bits = FormatInfo.getEncodedBits(errorCorrectionLevel, maskPattern)\n let i, mod\n\n for (i = 0; i < 15; i++) {\n mod = ((bits >> i) & 1) === 1\n\n // vertical\n if (i < 6) {\n matrix.set(i, 8, mod, true)\n } else if (i < 8) {\n matrix.set(i + 1, 8, mod, true)\n } else {\n matrix.set(size - 15 + i, 8, mod, true)\n }\n\n // horizontal\n if (i < 8) {\n matrix.set(8, size - i - 1, mod, true)\n } else if (i < 9) {\n matrix.set(8, 15 - i - 1 + 1, mod, true)\n } else {\n matrix.set(8, 15 - i - 1, mod, true)\n }\n }\n\n // fixed module\n matrix.set(size - 8, 8, 1, true)\n}\n\n/**\n * Add encoded data bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Uint8Array} data Data codewords\n */\nfunction setupData (matrix, data) {\n const size = matrix.size\n let inc = -1\n let row = size - 1\n let bitIndex = 7\n let byteIndex = 0\n\n for (let col = size - 1; col > 0; col -= 2) {\n if (col === 6) col--\n\n while (true) {\n for (let c = 0; c < 2; c++) {\n if (!matrix.isReserved(row, col - c)) {\n let dark = false\n\n if (byteIndex < data.length) {\n dark = (((data[byteIndex] >>> bitIndex) & 1) === 1)\n }\n\n matrix.set(row, col - c, dark)\n bitIndex--\n\n if (bitIndex === -1) {\n byteIndex++\n bitIndex = 7\n }\n }\n }\n\n row += inc\n\n if (row < 0 || size <= row) {\n row -= inc\n inc = -inc\n break\n }\n }\n }\n}\n\n/**\n * Create encoded codewords from data input\n *\n * @param {Number} version QR Code version\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @param {ByteData} data Data input\n * @return {Uint8Array} Buffer containing encoded codewords\n */\nfunction createData (version, errorCorrectionLevel, segments) {\n // Prepare data buffer\n const buffer = new BitBuffer()\n\n segments.forEach(function (data) {\n // prefix data with mode indicator (4 bits)\n buffer.put(data.mode.bit, 4)\n\n // Prefix data with character count indicator.\n // The character count indicator is a string of bits that represents the\n // number of characters that are being encoded.\n // The character count indicator must be placed after the mode indicator\n // and must be a certain number of bits long, depending on the QR version\n // and data mode\n // @see {@link Mode.getCharCountIndicator}.\n buffer.put(data.getLength(), Mode.getCharCountIndicator(data.mode, version))\n\n // add binary data sequence to buffer\n data.write(buffer)\n })\n\n // Calculate required number of bits\n const totalCodewords = Utils.getSymbolTotalCodewords(version)\n const ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n const dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8\n\n // Add a terminator.\n // If the bit string is shorter than the total number of required bits,\n // a terminator of up to four 0s must be added to the right side of the string.\n // If the bit string is more than four bits shorter than the required number of bits,\n // add four 0s to the end.\n if (buffer.getLengthInBits() + 4 <= dataTotalCodewordsBits) {\n buffer.put(0, 4)\n }\n\n // If the bit string is fewer than four bits shorter, add only the number of 0s that\n // are needed to reach the required number of bits.\n\n // After adding the terminator, if the number of bits in the string is not a multiple of 8,\n // pad the string on the right with 0s to make the string's length a multiple of 8.\n while (buffer.getLengthInBits() % 8 !== 0) {\n buffer.putBit(0)\n }\n\n // Add pad bytes if the string is still shorter than the total number of required bits.\n // Extend the buffer to fill the data capacity of the symbol corresponding to\n // the Version and Error Correction Level by adding the Pad Codewords 11101100 (0xEC)\n // and 00010001 (0x11) alternately.\n const remainingByte = (dataTotalCodewordsBits - buffer.getLengthInBits()) / 8\n for (let i = 0; i < remainingByte; i++) {\n buffer.put(i % 2 ? 0x11 : 0xEC, 8)\n }\n\n return createCodewords(buffer, version, errorCorrectionLevel)\n}\n\n/**\n * Encode input data with Reed-Solomon and return codewords with\n * relative error correction bits\n *\n * @param {BitBuffer} bitBuffer Data to encode\n * @param {Number} version QR Code version\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @return {Uint8Array} Buffer containing encoded codewords\n */\nfunction createCodewords (bitBuffer, version, errorCorrectionLevel) {\n // Total codewords for this QR code version (Data + Error correction)\n const totalCodewords = Utils.getSymbolTotalCodewords(version)\n\n // Total number of error correction codewords\n const ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n\n // Total number of data codewords\n const dataTotalCodewords = totalCodewords - ecTotalCodewords\n\n // Total number of blocks\n const ecTotalBlocks = ECCode.getBlocksCount(version, errorCorrectionLevel)\n\n // Calculate how many blocks each group should contain\n const blocksInGroup2 = totalCodewords % ecTotalBlocks\n const blocksInGroup1 = ecTotalBlocks - blocksInGroup2\n\n const totalCodewordsInGroup1 = Math.floor(totalCodewords / ecTotalBlocks)\n\n const dataCodewordsInGroup1 = Math.floor(dataTotalCodewords / ecTotalBlocks)\n const dataCodewordsInGroup2 = dataCodewordsInGroup1 + 1\n\n // Number of EC codewords is the same for both groups\n const ecCount = totalCodewordsInGroup1 - dataCodewordsInGroup1\n\n // Initialize a Reed-Solomon encoder with a generator polynomial of degree ecCount\n const rs = new ReedSolomonEncoder(ecCount)\n\n let offset = 0\n const dcData = new Array(ecTotalBlocks)\n const ecData = new Array(ecTotalBlocks)\n let maxDataSize = 0\n const buffer = new Uint8Array(bitBuffer.buffer)\n\n // Divide the buffer into the required number of blocks\n for (let b = 0; b < ecTotalBlocks; b++) {\n const dataSize = b < blocksInGroup1 ? dataCodewordsInGroup1 : dataCodewordsInGroup2\n\n // extract a block of data from buffer\n dcData[b] = buffer.slice(offset, offset + dataSize)\n\n // Calculate EC codewords for this data block\n ecData[b] = rs.encode(dcData[b])\n\n offset += dataSize\n maxDataSize = Math.max(maxDataSize, dataSize)\n }\n\n // Create final data\n // Interleave the data and error correction codewords from each block\n const data = new Uint8Array(totalCodewords)\n let index = 0\n let i, r\n\n // Add data codewords\n for (i = 0; i < maxDataSize; i++) {\n for (r = 0; r < ecTotalBlocks; r++) {\n if (i < dcData[r].length) {\n data[index++] = dcData[r][i]\n }\n }\n }\n\n // Apped EC codewords\n for (i = 0; i < ecCount; i++) {\n for (r = 0; r < ecTotalBlocks; r++) {\n data[index++] = ecData[r][i]\n }\n }\n\n return data\n}\n\n/**\n * Build QR Code symbol\n *\n * @param {String} data Input string\n * @param {Number} version QR Code version\n * @param {ErrorCorretionLevel} errorCorrectionLevel Error level\n * @param {MaskPattern} maskPattern Mask pattern\n * @return {Object} Object containing symbol data\n */\nfunction createSymbol (data, version, errorCorrectionLevel, maskPattern) {\n let segments\n\n if (Array.isArray(data)) {\n segments = Segments.fromArray(data)\n } else if (typeof data === 'string') {\n let estimatedVersion = version\n\n if (!estimatedVersion) {\n const rawSegments = Segments.rawSplit(data)\n\n // Estimate best version that can contain raw splitted segments\n estimatedVersion = Version.getBestVersionForData(rawSegments, errorCorrectionLevel)\n }\n\n // Build optimized segments\n // If estimated version is undefined, try with the highest version\n segments = Segments.fromString(data, estimatedVersion || 40)\n } else {\n throw new Error('Invalid data')\n }\n\n // Get the min version that can contain data\n const bestVersion = Version.getBestVersionForData(segments, errorCorrectionLevel)\n\n // If no version is found, data cannot be stored\n if (!bestVersion) {\n throw new Error('The amount of data is too big to be stored in a QR Code')\n }\n\n // If not specified, use min version as default\n if (!version) {\n version = bestVersion\n\n // Check if the specified version can contain the data\n } else if (version < bestVersion) {\n throw new Error('\\n' +\n 'The chosen QR Code version cannot contain this amount of data.\\n' +\n 'Minimum version required to store current data is: ' + bestVersion + '.\\n'\n )\n }\n\n const dataBits = createData(version, errorCorrectionLevel, segments)\n\n // Allocate matrix buffer\n const moduleCount = Utils.getSymbolSize(version)\n const modules = new BitMatrix(moduleCount)\n\n // Add function modules\n setupFinderPattern(modules, version)\n setupTimingPattern(modules)\n setupAlignmentPattern(modules, version)\n\n // Add temporary dummy bits for format info just to set them as reserved.\n // This is needed to prevent these bits from being masked by {@link MaskPattern.applyMask}\n // since the masking operation must be performed only on the encoding region.\n // These blocks will be replaced with correct values later in code.\n setupFormatInfo(modules, errorCorrectionLevel, 0)\n\n if (version >= 7) {\n setupVersionInfo(modules, version)\n }\n\n // Add data codewords\n setupData(modules, dataBits)\n\n if (isNaN(maskPattern)) {\n // Find best mask pattern\n maskPattern = MaskPattern.getBestMask(modules,\n setupFormatInfo.bind(null, modules, errorCorrectionLevel))\n }\n\n // Apply mask pattern\n MaskPattern.applyMask(maskPattern, modules)\n\n // Replace format info bits with correct values\n setupFormatInfo(modules, errorCorrectionLevel, maskPattern)\n\n return {\n modules: modules,\n version: version,\n errorCorrectionLevel: errorCorrectionLevel,\n maskPattern: maskPattern,\n segments: segments\n }\n}\n\n/**\n * QR Code\n *\n * @param {String | Array} data Input data\n * @param {Object} options Optional configurations\n * @param {Number} options.version QR Code version\n * @param {String} options.errorCorrectionLevel Error correction level\n * @param {Function} options.toSJISFunc Helper func to convert utf8 to sjis\n */\nexports.create = function create (data, options) {\n if (typeof data === 'undefined' || data === '') {\n throw new Error('No input text')\n }\n\n let errorCorrectionLevel = ECLevel.M\n let version\n let mask\n\n if (typeof options !== 'undefined') {\n // Use higher error correction level as default\n errorCorrectionLevel = ECLevel.from(options.errorCorrectionLevel, ECLevel.M)\n version = Version.from(options.version)\n mask = MaskPattern.from(options.maskPattern)\n\n if (options.toSJISFunc) {\n Utils.setToSJISFunction(options.toSJISFunc)\n }\n }\n\n return createSymbol(data, version, errorCorrectionLevel, mask)\n}\n","function hex2rgba (hex) {\n if (typeof hex === 'number') {\n hex = hex.toString()\n }\n\n if (typeof hex !== 'string') {\n throw new Error('Color should be defined as hex string')\n }\n\n let hexCode = hex.slice().replace('#', '').split('')\n if (hexCode.length < 3 || hexCode.length === 5 || hexCode.length > 8) {\n throw new Error('Invalid hex color: ' + hex)\n }\n\n // Convert from short to long form (fff -> ffffff)\n if (hexCode.length === 3 || hexCode.length === 4) {\n hexCode = Array.prototype.concat.apply([], hexCode.map(function (c) {\n return [c, c]\n }))\n }\n\n // Add default alpha value\n if (hexCode.length === 6) hexCode.push('F', 'F')\n\n const hexValue = parseInt(hexCode.join(''), 16)\n\n return {\n r: (hexValue >> 24) & 255,\n g: (hexValue >> 16) & 255,\n b: (hexValue >> 8) & 255,\n a: hexValue & 255,\n hex: '#' + hexCode.slice(0, 6).join('')\n }\n}\n\nexports.getOptions = function getOptions (options) {\n if (!options) options = {}\n if (!options.color) options.color = {}\n\n const margin = typeof options.margin === 'undefined' ||\n options.margin === null ||\n options.margin < 0\n ? 4\n : options.margin\n\n const width = options.width && options.width >= 21 ? options.width : undefined\n const scale = options.scale || 4\n\n return {\n width: width,\n scale: width ? 4 : scale,\n margin: margin,\n color: {\n dark: hex2rgba(options.color.dark || '#000000ff'),\n light: hex2rgba(options.color.light || '#ffffffff')\n },\n type: options.type,\n rendererOpts: options.rendererOpts || {}\n }\n}\n\nexports.getScale = function getScale (qrSize, opts) {\n return opts.width && opts.width >= qrSize + opts.margin * 2\n ? opts.width / (qrSize + opts.margin * 2)\n : opts.scale\n}\n\nexports.getImageWidth = function getImageWidth (qrSize, opts) {\n const scale = exports.getScale(qrSize, opts)\n return Math.floor((qrSize + opts.margin * 2) * scale)\n}\n\nexports.qrToImageData = function qrToImageData (imgData, qr, opts) {\n const size = qr.modules.size\n const data = qr.modules.data\n const scale = exports.getScale(size, opts)\n const symbolSize = Math.floor((size + opts.margin * 2) * scale)\n const scaledMargin = opts.margin * scale\n const palette = [opts.color.light, opts.color.dark]\n\n for (let i = 0; i < symbolSize; i++) {\n for (let j = 0; j < symbolSize; j++) {\n let posDst = (i * symbolSize + j) * 4\n let pxColor = opts.color.light\n\n if (i >= scaledMargin && j >= scaledMargin &&\n i < symbolSize - scaledMargin && j < symbolSize - scaledMargin) {\n const iSrc = Math.floor((i - scaledMargin) / scale)\n const jSrc = Math.floor((j - scaledMargin) / scale)\n pxColor = palette[data[iSrc * size + jSrc] ? 1 : 0]\n }\n\n imgData[posDst++] = pxColor.r\n imgData[posDst++] = pxColor.g\n imgData[posDst++] = pxColor.b\n imgData[posDst] = pxColor.a\n }\n }\n}\n","const Utils = require('./utils')\n\nfunction clearCanvas (ctx, canvas, size) {\n ctx.clearRect(0, 0, canvas.width, canvas.height)\n\n if (!canvas.style) canvas.style = {}\n canvas.height = size\n canvas.width = size\n canvas.style.height = size + 'px'\n canvas.style.width = size + 'px'\n}\n\nfunction getCanvasElement () {\n try {\n return document.createElement('canvas')\n } catch (e) {\n throw new Error('You need to specify a canvas element')\n }\n}\n\nexports.render = function render (qrData, canvas, options) {\n let opts = options\n let canvasEl = canvas\n\n if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n opts = canvas\n canvas = undefined\n }\n\n if (!canvas) {\n canvasEl = getCanvasElement()\n }\n\n opts = Utils.getOptions(opts)\n const size = Utils.getImageWidth(qrData.modules.size, opts)\n\n const ctx = canvasEl.getContext('2d')\n const image = ctx.createImageData(size, size)\n Utils.qrToImageData(image.data, qrData, opts)\n\n clearCanvas(ctx, canvasEl, size)\n ctx.putImageData(image, 0, 0)\n\n return canvasEl\n}\n\nexports.renderToDataURL = function renderToDataURL (qrData, canvas, options) {\n let opts = options\n\n if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n opts = canvas\n canvas = undefined\n }\n\n if (!opts) opts = {}\n\n const canvasEl = exports.render(qrData, canvas, opts)\n\n const type = opts.type || 'image/png'\n const rendererOpts = opts.rendererOpts || {}\n\n return canvasEl.toDataURL(type, rendererOpts.quality)\n}\n","const Utils = require('./utils')\n\nfunction getColorAttrib (color, attrib) {\n const alpha = color.a / 255\n const str = attrib + '=\"' + color.hex + '\"'\n\n return alpha < 1\n ? str + ' ' + attrib + '-opacity=\"' + alpha.toFixed(2).slice(1) + '\"'\n : str\n}\n\nfunction svgCmd (cmd, x, y) {\n let str = cmd + x\n if (typeof y !== 'undefined') str += ' ' + y\n\n return str\n}\n\nfunction qrToPath (data, size, margin) {\n let path = ''\n let moveBy = 0\n let newRow = false\n let lineLength = 0\n\n for (let i = 0; i < data.length; i++) {\n const col = Math.floor(i % size)\n const row = Math.floor(i / size)\n\n if (!col && !newRow) newRow = true\n\n if (data[i]) {\n lineLength++\n\n if (!(i > 0 && col > 0 && data[i - 1])) {\n path += newRow\n ? svgCmd('M', col + margin, 0.5 + row + margin)\n : svgCmd('m', moveBy, 0)\n\n moveBy = 0\n newRow = false\n }\n\n if (!(col + 1 < size && data[i + 1])) {\n path += svgCmd('h', lineLength)\n lineLength = 0\n }\n } else {\n moveBy++\n }\n }\n\n return path\n}\n\nexports.render = function render (qrData, options, cb) {\n const opts = Utils.getOptions(options)\n const size = qrData.modules.size\n const data = qrData.modules.data\n const qrcodesize = size + opts.margin * 2\n\n const bg = !opts.color.light.a\n ? ''\n : ''\n\n const path =\n ''\n\n const viewBox = 'viewBox=\"' + '0 0 ' + qrcodesize + ' ' + qrcodesize + '\"'\n\n const width = !opts.width ? '' : 'width=\"' + opts.width + '\" height=\"' + opts.width + '\" '\n\n const svgTag = '' + bg + path + '\\n'\n\n if (typeof cb === 'function') {\n cb(null, svgTag)\n }\n\n return svgTag\n}\n","\nconst canPromise = require('./can-promise')\n\nconst QRCode = require('./core/qrcode')\nconst CanvasRenderer = require('./renderer/canvas')\nconst SvgRenderer = require('./renderer/svg-tag.js')\n\nfunction renderCanvas (renderFunc, canvas, text, opts, cb) {\n const args = [].slice.call(arguments, 1)\n const argsNum = args.length\n const isLastArgCb = typeof args[argsNum - 1] === 'function'\n\n if (!isLastArgCb && !canPromise()) {\n throw new Error('Callback required as last argument')\n }\n\n if (isLastArgCb) {\n if (argsNum < 2) {\n throw new Error('Too few arguments provided')\n }\n\n if (argsNum === 2) {\n cb = text\n text = canvas\n canvas = opts = undefined\n } else if (argsNum === 3) {\n if (canvas.getContext && typeof cb === 'undefined') {\n cb = opts\n opts = undefined\n } else {\n cb = opts\n opts = text\n text = canvas\n canvas = undefined\n }\n }\n } else {\n if (argsNum < 1) {\n throw new Error('Too few arguments provided')\n }\n\n if (argsNum === 1) {\n text = canvas\n canvas = opts = undefined\n } else if (argsNum === 2 && !canvas.getContext) {\n opts = text\n text = canvas\n canvas = undefined\n }\n\n return new Promise(function (resolve, reject) {\n try {\n const data = QRCode.create(text, opts)\n resolve(renderFunc(data, canvas, opts))\n } catch (e) {\n reject(e)\n }\n })\n }\n\n try {\n const data = QRCode.create(text, opts)\n cb(null, renderFunc(data, canvas, opts))\n } catch (e) {\n cb(e)\n }\n}\n\nexports.create = QRCode.create\nexports.toCanvas = renderCanvas.bind(null, CanvasRenderer.render)\nexports.toDataURL = renderCanvas.bind(null, CanvasRenderer.renderToDataURL)\n\n// only svg for now.\nexports.toString = renderCanvas.bind(null, function (data, _, opts) {\n return SvgRenderer.render(data, opts)\n})\n","import { css, LitElement, html, svg as svg$1 } from 'lit';\nimport { property, customElement, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ThemeCtrl, ModalCtrl, RouterCtrl, ConfigCtrl, ExplorerCtrl, CoreUtil, OptionsCtrl, ToastCtrl, EventsCtrl } from '@walletconnect/modal-core';\nimport { svg } from 'lit-html';\nimport { animate } from 'motion';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport QRCodeUtil from 'qrcode';\n\nvar __defProp$y = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp$y(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nfunction themeModeVariables() {\n var _a;\n const themeMode = (_a = ThemeCtrl.state.themeMode) != null ? _a : \"dark\";\n const themeModePresets = {\n light: {\n foreground: { 1: `rgb(20,20,20)`, 2: `rgb(121,134,134)`, 3: `rgb(158,169,169)` },\n background: { 1: `rgb(255,255,255)`, 2: `rgb(241,243,243)`, 3: `rgb(228,231,231)` },\n overlay: \"rgba(0,0,0,0.1)\"\n },\n dark: {\n foreground: { 1: `rgb(228,231,231)`, 2: `rgb(148,158,158)`, 3: `rgb(110,119,119)` },\n background: { 1: `rgb(20,20,20)`, 2: `rgb(39,42,42)`, 3: `rgb(59,64,64)` },\n overlay: \"rgba(255,255,255,0.1)\"\n }\n };\n const themeModeColors = themeModePresets[themeMode];\n return {\n \"--wcm-color-fg-1\": themeModeColors.foreground[1],\n \"--wcm-color-fg-2\": themeModeColors.foreground[2],\n \"--wcm-color-fg-3\": themeModeColors.foreground[3],\n \"--wcm-color-bg-1\": themeModeColors.background[1],\n \"--wcm-color-bg-2\": themeModeColors.background[2],\n \"--wcm-color-bg-3\": themeModeColors.background[3],\n \"--wcm-color-overlay\": themeModeColors.overlay\n };\n}\nfunction themeVariablesPresets() {\n return {\n \"--wcm-accent-color\": \"#3396FF\",\n \"--wcm-accent-fill-color\": \"#FFFFFF\",\n \"--wcm-z-index\": \"89\",\n \"--wcm-background-color\": \"#3396FF\",\n \"--wcm-background-border-radius\": \"8px\",\n \"--wcm-container-border-radius\": \"30px\",\n \"--wcm-wallet-icon-border-radius\": \"15px\",\n \"--wcm-wallet-icon-large-border-radius\": \"30px\",\n \"--wcm-wallet-icon-small-border-radius\": \"7px\",\n \"--wcm-input-border-radius\": \"28px\",\n \"--wcm-button-border-radius\": \"10px\",\n \"--wcm-notification-border-radius\": \"36px\",\n \"--wcm-secondary-button-border-radius\": \"28px\",\n \"--wcm-icon-button-border-radius\": \"50%\",\n \"--wcm-button-hover-highlight-border-radius\": \"10px\",\n \"--wcm-text-big-bold-size\": \"20px\",\n \"--wcm-text-big-bold-weight\": \"600\",\n \"--wcm-text-big-bold-line-height\": \"24px\",\n \"--wcm-text-big-bold-letter-spacing\": \"-0.03em\",\n \"--wcm-text-big-bold-text-transform\": \"none\",\n \"--wcm-text-xsmall-bold-size\": \"10px\",\n \"--wcm-text-xsmall-bold-weight\": \"700\",\n \"--wcm-text-xsmall-bold-line-height\": \"12px\",\n \"--wcm-text-xsmall-bold-letter-spacing\": \"0.02em\",\n \"--wcm-text-xsmall-bold-text-transform\": \"uppercase\",\n \"--wcm-text-xsmall-regular-size\": \"12px\",\n \"--wcm-text-xsmall-regular-weight\": \"600\",\n \"--wcm-text-xsmall-regular-line-height\": \"14px\",\n \"--wcm-text-xsmall-regular-letter-spacing\": \"-0.03em\",\n \"--wcm-text-xsmall-regular-text-transform\": \"none\",\n \"--wcm-text-small-thin-size\": \"14px\",\n \"--wcm-text-small-thin-weight\": \"500\",\n \"--wcm-text-small-thin-line-height\": \"16px\",\n \"--wcm-text-small-thin-letter-spacing\": \"-0.03em\",\n \"--wcm-text-small-thin-text-transform\": \"none\",\n \"--wcm-text-small-regular-size\": \"14px\",\n \"--wcm-text-small-regular-weight\": \"600\",\n \"--wcm-text-small-regular-line-height\": \"16px\",\n \"--wcm-text-small-regular-letter-spacing\": \"-0.03em\",\n \"--wcm-text-small-regular-text-transform\": \"none\",\n \"--wcm-text-medium-regular-size\": \"16px\",\n \"--wcm-text-medium-regular-weight\": \"600\",\n \"--wcm-text-medium-regular-line-height\": \"20px\",\n \"--wcm-text-medium-regular-letter-spacing\": \"-0.03em\",\n \"--wcm-text-medium-regular-text-transform\": \"none\",\n \"--wcm-font-family\": \"-apple-system, system-ui, BlinkMacSystemFont, 'Segoe UI', Roboto, Ubuntu, 'Helvetica Neue', sans-serif\",\n \"--wcm-font-feature-settings\": `'tnum' on, 'lnum' on, 'case' on`,\n \"--wcm-success-color\": \"rgb(38,181,98)\",\n \"--wcm-error-color\": \"rgb(242, 90, 103)\",\n \"--wcm-overlay-background-color\": \"rgba(0, 0, 0, 0.3)\",\n \"--wcm-overlay-backdrop-filter\": \"none\"\n };\n}\nconst ThemeUtil = {\n getPreset(key) {\n return themeVariablesPresets()[key];\n },\n setTheme() {\n const root = document.querySelector(\":root\");\n const { themeVariables } = ThemeCtrl.state;\n if (root) {\n const variables = __spreadValues(__spreadValues(__spreadValues({}, themeModeVariables()), themeVariablesPresets()), themeVariables);\n Object.entries(variables).forEach(([key, val]) => root.style.setProperty(key, val));\n }\n },\n globalCss: css`*,::after,::before{margin:0;padding:0;box-sizing:border-box;font-style:normal;text-rendering:optimizeSpeed;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;backface-visibility:hidden}button{cursor:pointer;display:flex;justify-content:center;align-items:center;position:relative;border:none;background-color:transparent;transition:all .2s ease}@media (hover:hover) and (pointer:fine){button:active{transition:all .1s ease;transform:scale(.93)}}button::after{content:'';position:absolute;top:0;bottom:0;left:0;right:0;transition:background-color,.2s ease}button:disabled{cursor:not-allowed}button svg,button wcm-text{position:relative;z-index:1}input{border:none;outline:0;appearance:none}img{display:block}::selection{color:var(--wcm-accent-fill-color);background:var(--wcm-accent-color)}`\n};\n\nconst styles$t = css`button{border-radius:var(--wcm-secondary-button-border-radius);height:28px;padding:0 10px;background-color:var(--wcm-accent-color)}button path{fill:var(--wcm-accent-fill-color)}button::after{border-radius:inherit;border:1px solid var(--wcm-color-overlay)}button:disabled::after{background-color:transparent}.wcm-icon-left svg{margin-right:5px}.wcm-icon-right svg{margin-left:5px}button:active::after{background-color:var(--wcm-color-overlay)}.wcm-ghost,.wcm-ghost:active::after,.wcm-outline{background-color:transparent}.wcm-ghost:active{opacity:.5}@media(hover:hover){button:hover::after{background-color:var(--wcm-color-overlay)}.wcm-ghost:hover::after{background-color:transparent}.wcm-ghost:hover{opacity:.5}}button:disabled{background-color:var(--wcm-color-bg-3);pointer-events:none}.wcm-ghost::after{border-color:transparent}.wcm-ghost path{fill:var(--wcm-color-fg-2)}.wcm-outline path{fill:var(--wcm-accent-color)}.wcm-outline:disabled{background-color:transparent;opacity:.5}`;\n\nvar __defProp$x = Object.defineProperty;\nvar __getOwnPropDesc$x = Object.getOwnPropertyDescriptor;\nvar __decorateClass$x = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$x(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$x(target, key, result);\n return result;\n};\nlet WcmButton = class extends LitElement {\n constructor() {\n super(...arguments);\n this.disabled = false;\n this.iconLeft = void 0;\n this.iconRight = void 0;\n this.onClick = () => null;\n this.variant = \"default\";\n }\n // -- render ------------------------------------------------------- //\n render() {\n const classes = {\n \"wcm-icon-left\": this.iconLeft !== void 0,\n \"wcm-icon-right\": this.iconRight !== void 0,\n \"wcm-ghost\": this.variant === \"ghost\",\n \"wcm-outline\": this.variant === \"outline\"\n };\n let textColor = \"inverse\";\n if (this.variant === \"ghost\") {\n textColor = \"secondary\";\n }\n if (this.variant === \"outline\") {\n textColor = \"accent\";\n }\n return html``;\n }\n};\nWcmButton.styles = [ThemeUtil.globalCss, styles$t];\n__decorateClass$x([\n property({ type: Boolean })\n], WcmButton.prototype, \"disabled\", 2);\n__decorateClass$x([\n property()\n], WcmButton.prototype, \"iconLeft\", 2);\n__decorateClass$x([\n property()\n], WcmButton.prototype, \"iconRight\", 2);\n__decorateClass$x([\n property()\n], WcmButton.prototype, \"onClick\", 2);\n__decorateClass$x([\n property()\n], WcmButton.prototype, \"variant\", 2);\nWcmButton = __decorateClass$x([\n customElement(\"wcm-button\")\n], WcmButton);\n\nconst styles$s = css`:host{display:inline-block}button{padding:0 15px 1px;height:40px;border-radius:var(--wcm-button-border-radius);color:var(--wcm-accent-fill-color);background-color:var(--wcm-accent-color)}button::after{content:'';top:0;bottom:0;left:0;right:0;position:absolute;background-color:transparent;border-radius:inherit;transition:background-color .2s ease;border:1px solid var(--wcm-color-overlay)}button:active::after{background-color:var(--wcm-color-overlay)}button:disabled{padding-bottom:0;background-color:var(--wcm-color-bg-3);color:var(--wcm-color-fg-3)}.wcm-secondary{color:var(--wcm-accent-color);background-color:transparent}.wcm-secondary::after{display:none}@media(hover:hover){button:hover::after{background-color:var(--wcm-color-overlay)}}`;\n\nvar __defProp$w = Object.defineProperty;\nvar __getOwnPropDesc$w = Object.getOwnPropertyDescriptor;\nvar __decorateClass$w = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$w(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$w(target, key, result);\n return result;\n};\nlet WcmButtonBig = class extends LitElement {\n constructor() {\n super(...arguments);\n this.disabled = false;\n this.variant = \"primary\";\n }\n // -- render ------------------------------------------------------- //\n render() {\n const classes = {\n \"wcm-secondary\": this.variant === \"secondary\"\n };\n return html``;\n }\n};\nWcmButtonBig.styles = [ThemeUtil.globalCss, styles$s];\n__decorateClass$w([\n property({ type: Boolean })\n], WcmButtonBig.prototype, \"disabled\", 2);\n__decorateClass$w([\n property()\n], WcmButtonBig.prototype, \"variant\", 2);\nWcmButtonBig = __decorateClass$w([\n customElement(\"wcm-button-big\")\n], WcmButtonBig);\n\nconst styles$r = css`:host{background-color:var(--wcm-color-bg-2);border-top:1px solid var(--wcm-color-bg-3)}div{padding:10px 20px;display:inherit;flex-direction:inherit;align-items:inherit;width:inherit;justify-content:inherit}`;\n\nvar __defProp$v = Object.defineProperty;\nvar __getOwnPropDesc$v = Object.getOwnPropertyDescriptor;\nvar __decorateClass$v = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$v(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$v(target, key, result);\n return result;\n};\nlet WcmInfoFooter = class extends LitElement {\n // -- render ------------------------------------------------------- //\n render() {\n return html`
`;\n }\n};\nWcmInfoFooter.styles = [ThemeUtil.globalCss, styles$r];\nWcmInfoFooter = __decorateClass$v([\n customElement(\"wcm-info-footer\")\n], WcmInfoFooter);\n\nconst SvgUtil = {\n CROSS_ICON: svg``,\n WALLET_CONNECT_LOGO: svg``,\n WALLET_CONNECT_ICON: svg``,\n WALLET_CONNECT_ICON_COLORED: svg``,\n BACK_ICON: svg``,\n COPY_ICON: svg``,\n RETRY_ICON: svg``,\n DESKTOP_ICON: svg``,\n MOBILE_ICON: svg``,\n ARROW_DOWN_ICON: svg``,\n ARROW_UP_RIGHT_ICON: svg``,\n ARROW_RIGHT_ICON: svg``,\n QRCODE_ICON: svg``,\n SCAN_ICON: svg``,\n CHECKMARK_ICON: svg``,\n SEARCH_ICON: svg``,\n WALLET_PLACEHOLDER: svg``,\n GLOBE_ICON: svg``\n};\n\nconst styles$q = css`.wcm-toolbar-placeholder{top:0;bottom:0;left:0;right:0;width:100%;position:absolute;display:block;pointer-events:none;height:100px;border-radius:calc(var(--wcm-background-border-radius) * .9);background-color:var(--wcm-background-color);background-position:center;background-size:cover}.wcm-toolbar{height:38px;display:flex;position:relative;margin:5px 15px 5px 5px;justify-content:space-between;align-items:center}.wcm-toolbar img,.wcm-toolbar svg{height:28px;object-position:left center;object-fit:contain}#wcm-wc-logo path{fill:var(--wcm-accent-fill-color)}button{width:28px;height:28px;border-radius:var(--wcm-icon-button-border-radius);border:0;display:flex;justify-content:center;align-items:center;cursor:pointer;background-color:var(--wcm-color-bg-1);box-shadow:0 0 0 1px var(--wcm-color-overlay)}button:active{background-color:var(--wcm-color-bg-2)}button svg{display:block;object-position:center}button path{fill:var(--wcm-color-fg-1)}.wcm-toolbar div{display:flex}@media(hover:hover){button:hover{background-color:var(--wcm-color-bg-2)}}`;\n\nvar __defProp$u = Object.defineProperty;\nvar __getOwnPropDesc$u = Object.getOwnPropertyDescriptor;\nvar __decorateClass$u = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$u(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$u(target, key, result);\n return result;\n};\nlet WcmModalBackcard = class extends LitElement {\n // -- render ------------------------------------------------------- //\n render() {\n return html`
${SvgUtil.WALLET_CONNECT_LOGO}
`;\n }\n};\nWcmModalBackcard.styles = [ThemeUtil.globalCss, styles$q];\nWcmModalBackcard = __decorateClass$u([\n customElement(\"wcm-modal-backcard\")\n], WcmModalBackcard);\n\nconst styles$p = css`main{padding:20px;padding-top:0;width:100%}`;\n\nvar __defProp$t = Object.defineProperty;\nvar __getOwnPropDesc$t = Object.getOwnPropertyDescriptor;\nvar __decorateClass$t = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$t(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$t(target, key, result);\n return result;\n};\nlet WcmModalContent = class extends LitElement {\n // -- render ------------------------------------------------------- //\n render() {\n return html`
`;\n }\n};\nWcmModalContent.styles = [ThemeUtil.globalCss, styles$p];\nWcmModalContent = __decorateClass$t([\n customElement(\"wcm-modal-content\")\n], WcmModalContent);\n\nconst styles$o = css`footer{padding:10px;display:flex;flex-direction:column;align-items:inherit;justify-content:inherit;border-top:1px solid var(--wcm-color-bg-2)}`;\n\nvar __defProp$s = Object.defineProperty;\nvar __getOwnPropDesc$s = Object.getOwnPropertyDescriptor;\nvar __decorateClass$s = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$s(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$s(target, key, result);\n return result;\n};\nlet WcmModalFooter = class extends LitElement {\n // -- render ------------------------------------------------------- //\n render() {\n return html`
`;\n }\n};\nWcmModalFooter.styles = [ThemeUtil.globalCss, styles$o];\nWcmModalFooter = __decorateClass$s([\n customElement(\"wcm-modal-footer\")\n], WcmModalFooter);\n\nconst styles$n = css`header{display:flex;justify-content:center;align-items:center;padding:20px;position:relative}.wcm-border{border-bottom:1px solid var(--wcm-color-bg-2);margin-bottom:20px}header button{padding:15px 20px}header button:active{opacity:.5}@media(hover:hover){header button:hover{opacity:.5}}.wcm-back-btn{position:absolute;left:0}.wcm-action-btn{position:absolute;right:0}path{fill:var(--wcm-accent-color)}`;\n\nvar __defProp$r = Object.defineProperty;\nvar __getOwnPropDesc$r = Object.getOwnPropertyDescriptor;\nvar __decorateClass$r = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$r(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$r(target, key, result);\n return result;\n};\nlet WcmModalHeader = class extends LitElement {\n constructor() {\n super(...arguments);\n this.title = \"\";\n this.onAction = void 0;\n this.actionIcon = void 0;\n this.border = false;\n }\n // -- private ------------------------------------------------------ //\n backBtnTemplate() {\n return html``;\n }\n actionBtnTemplate() {\n return html``;\n }\n // -- render ------------------------------------------------------- //\n render() {\n const classes = {\n \"wcm-border\": this.border\n };\n const backBtn = RouterCtrl.state.history.length > 1;\n const content = this.title ? html`${this.title}` : html``;\n return html`
${backBtn ? this.backBtnTemplate() : null} ${content} ${this.onAction ? this.actionBtnTemplate() : null}
`;\n }\n};\nWcmModalHeader.styles = [ThemeUtil.globalCss, styles$n];\n__decorateClass$r([\n property()\n], WcmModalHeader.prototype, \"title\", 2);\n__decorateClass$r([\n property()\n], WcmModalHeader.prototype, \"onAction\", 2);\n__decorateClass$r([\n property()\n], WcmModalHeader.prototype, \"actionIcon\", 2);\n__decorateClass$r([\n property({ type: Boolean })\n], WcmModalHeader.prototype, \"border\", 2);\nWcmModalHeader = __decorateClass$r([\n customElement(\"wcm-modal-header\")\n], WcmModalHeader);\n\nconst UiUtil = {\n MOBILE_BREAKPOINT: 600,\n WCM_RECENT_WALLET_DATA: \"WCM_RECENT_WALLET_DATA\",\n EXPLORER_WALLET_URL: \"https://explorer.walletconnect.com/?type=wallet\",\n getShadowRootElement(root, selector) {\n const el = root.renderRoot.querySelector(selector);\n if (!el) {\n throw new Error(`${selector} not found`);\n }\n return el;\n },\n getWalletIcon({ id, image_id }) {\n const { walletImages } = ConfigCtrl.state;\n if (walletImages == null ? void 0 : walletImages[id]) {\n return walletImages[id];\n } else if (image_id) {\n return ExplorerCtrl.getWalletImageUrl(image_id);\n }\n return \"\";\n },\n getWalletName(name, short = false) {\n return short && name.length > 8 ? `${name.substring(0, 8)}..` : name;\n },\n isMobileAnimation() {\n return window.innerWidth <= UiUtil.MOBILE_BREAKPOINT;\n },\n async preloadImage(src) {\n const imagePromise = new Promise((resolve, reject) => {\n const image = new Image();\n image.onload = resolve;\n image.onerror = reject;\n image.crossOrigin = \"anonymous\";\n image.src = src;\n });\n return Promise.race([imagePromise, CoreUtil.wait(3e3)]);\n },\n getErrorMessage(err) {\n return err instanceof Error ? err.message : \"Unknown Error\";\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n debounce(func, timeout = 500) {\n let timer = void 0;\n return (...args) => {\n function next() {\n func(...args);\n }\n if (timer) {\n clearTimeout(timer);\n }\n timer = setTimeout(next, timeout);\n };\n },\n handleMobileLinking(wallet, target = \"_self\") {\n const { walletConnectUri } = OptionsCtrl.state;\n const { mobile, name } = wallet;\n const nativeUrl = mobile == null ? void 0 : mobile.native;\n const universalUrl = mobile == null ? void 0 : mobile.universal;\n UiUtil.setRecentWallet(wallet);\n function onRedirect(uri) {\n if (nativeUrl) {\n const href = CoreUtil.formatNativeUrl(nativeUrl, uri, name);\n CoreUtil.openHref(href, target);\n } else if (universalUrl) {\n const href = CoreUtil.formatUniversalUrl(universalUrl, uri, name);\n CoreUtil.openHref(href, target);\n }\n }\n if (walletConnectUri) {\n onRedirect(walletConnectUri);\n }\n },\n handleAndroidLinking() {\n const { walletConnectUri } = OptionsCtrl.state;\n if (walletConnectUri) {\n CoreUtil.setWalletConnectAndroidDeepLink(walletConnectUri);\n CoreUtil.openHref(walletConnectUri, CoreUtil.isTelegram() ? \"_blank\" : \"_self\");\n }\n },\n async handleUriCopy() {\n const { walletConnectUri } = OptionsCtrl.state;\n if (walletConnectUri) {\n try {\n await navigator.clipboard.writeText(walletConnectUri);\n ToastCtrl.openToast(\"Link copied\", \"success\");\n } catch (e) {\n ToastCtrl.openToast(\"Failed to copy\", \"error\");\n }\n }\n },\n getCustomImageUrls() {\n const { walletImages } = ConfigCtrl.state;\n const walletUrls = Object.values(walletImages != null ? walletImages : {});\n return Object.values(walletUrls);\n },\n truncate(value, strLen = 8) {\n if (value.length <= strLen) {\n return value;\n }\n return `${value.substring(0, 4)}...${value.substring(value.length - 4)}`;\n },\n setRecentWallet(wallet) {\n try {\n localStorage.setItem(UiUtil.WCM_RECENT_WALLET_DATA, JSON.stringify(wallet));\n } catch (e) {\n console.info(\"Unable to set recent wallet\");\n }\n },\n getRecentWallet() {\n try {\n const wallet = localStorage.getItem(UiUtil.WCM_RECENT_WALLET_DATA);\n if (wallet) {\n const json = JSON.parse(wallet);\n return json;\n }\n return void 0;\n } catch (e) {\n console.info(\"Unable to get recent wallet\");\n }\n return void 0;\n },\n caseSafeIncludes(str1, str2) {\n return str1.toUpperCase().includes(str2.toUpperCase());\n },\n openWalletExplorerUrl() {\n CoreUtil.openHref(UiUtil.EXPLORER_WALLET_URL, \"_blank\");\n },\n getCachedRouterWalletPlatforms() {\n const { desktop, mobile } = CoreUtil.getWalletRouterData();\n const isDesktop = Boolean(desktop == null ? void 0 : desktop.native);\n const isWeb = Boolean(desktop == null ? void 0 : desktop.universal);\n const isMobile = Boolean(mobile == null ? void 0 : mobile.native) || Boolean(mobile == null ? void 0 : mobile.universal);\n return { isDesktop, isMobile, isWeb };\n },\n goToConnectingView(wallet) {\n RouterCtrl.setData({ Wallet: wallet });\n const isMobileDevice = CoreUtil.isMobile();\n const { isDesktop, isWeb, isMobile } = UiUtil.getCachedRouterWalletPlatforms();\n if (isMobileDevice) {\n if (isMobile) {\n RouterCtrl.push(\"MobileConnecting\");\n if (!CoreUtil.isAndroid() && CoreUtil.isTelegram()) {\n this.handleMobileLinking(wallet, \"_blank\");\n }\n } else if (isWeb) {\n RouterCtrl.push(\"WebConnecting\");\n } else {\n RouterCtrl.push(\"InstallWallet\");\n }\n } else if (isDesktop) {\n RouterCtrl.push(\"DesktopConnecting\");\n } else if (isWeb) {\n RouterCtrl.push(\"WebConnecting\");\n } else if (isMobile) {\n RouterCtrl.push(\"MobileQrcodeConnecting\");\n } else {\n RouterCtrl.push(\"InstallWallet\");\n }\n }\n};\n\nconst styles$m = css`.wcm-router{overflow:hidden;will-change:transform}.wcm-content{display:flex;flex-direction:column}`;\n\nvar __defProp$q = Object.defineProperty;\nvar __getOwnPropDesc$q = Object.getOwnPropertyDescriptor;\nvar __decorateClass$q = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$q(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$q(target, key, result);\n return result;\n};\nlet WcmModalRouter = class extends LitElement {\n // -- lifecycle ---------------------------------------------------- //\n constructor() {\n super();\n this.view = RouterCtrl.state.view;\n this.prevView = RouterCtrl.state.view;\n // -- private ------------------------------------------------------ //\n this.unsubscribe = void 0;\n this.oldHeight = \"0px\";\n this.resizeObserver = void 0;\n this.unsubscribe = RouterCtrl.subscribe((routerState) => {\n if (this.view !== routerState.view) {\n this.onChangeRoute();\n }\n });\n }\n firstUpdated() {\n this.resizeObserver = new ResizeObserver(([conetnt]) => {\n const newHeight = `${conetnt.contentRect.height}px`;\n if (this.oldHeight !== \"0px\") {\n animate(this.routerEl, { height: [this.oldHeight, newHeight] }, { duration: 0.2 });\n }\n this.oldHeight = newHeight;\n });\n this.resizeObserver.observe(this.contentEl);\n }\n disconnectedCallback() {\n var _a, _b;\n (_a = this.unsubscribe) == null ? void 0 : _a.call(this);\n (_b = this.resizeObserver) == null ? void 0 : _b.disconnect();\n }\n get routerEl() {\n return UiUtil.getShadowRootElement(this, \".wcm-router\");\n }\n get contentEl() {\n return UiUtil.getShadowRootElement(this, \".wcm-content\");\n }\n viewTemplate() {\n switch (this.view) {\n case \"ConnectWallet\":\n return html``;\n case \"DesktopConnecting\":\n return html``;\n case \"MobileConnecting\":\n return html``;\n case \"WebConnecting\":\n return html``;\n case \"MobileQrcodeConnecting\":\n return html``;\n case \"WalletExplorer\":\n return html``;\n case \"Qrcode\":\n return html``;\n case \"InstallWallet\":\n return html``;\n default:\n return html`
Not Found
`;\n }\n }\n async onChangeRoute() {\n await animate(\n this.routerEl,\n { opacity: [1, 0], scale: [1, 1.02] },\n { duration: 0.15, delay: 0.1 }\n ).finished;\n this.view = RouterCtrl.state.view;\n animate(this.routerEl, { opacity: [0, 1], scale: [0.99, 1] }, { duration: 0.37, delay: 0.05 });\n }\n // -- render ------------------------------------------------------- //\n render() {\n return html`
${this.viewTemplate()}
`;\n }\n};\nWcmModalRouter.styles = [ThemeUtil.globalCss, styles$m];\n__decorateClass$q([\n state()\n], WcmModalRouter.prototype, \"view\", 2);\n__decorateClass$q([\n state()\n], WcmModalRouter.prototype, \"prevView\", 2);\nWcmModalRouter = __decorateClass$q([\n customElement(\"wcm-modal-router\")\n], WcmModalRouter);\n\nconst styles$l = css`div{height:36px;width:max-content;display:flex;justify-content:center;align-items:center;padding:9px 15px 11px;position:absolute;top:12px;box-shadow:0 6px 14px -6px rgba(10,16,31,.3),0 10px 32px -4px rgba(10,16,31,.15);z-index:2;left:50%;transform:translateX(-50%);pointer-events:none;backdrop-filter:blur(20px) saturate(1.8);-webkit-backdrop-filter:blur(20px) saturate(1.8);border-radius:var(--wcm-notification-border-radius);border:1px solid var(--wcm-color-overlay);background-color:var(--wcm-color-overlay)}svg{margin-right:5px}@-moz-document url-prefix(){div{background-color:var(--wcm-color-bg-3)}}.wcm-success path{fill:var(--wcm-accent-color)}.wcm-error path{fill:var(--wcm-error-color)}`;\n\nvar __defProp$p = Object.defineProperty;\nvar __getOwnPropDesc$p = Object.getOwnPropertyDescriptor;\nvar __decorateClass$p = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$p(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$p(target, key, result);\n return result;\n};\nlet WcmModalToast = class extends LitElement {\n constructor() {\n super();\n this.open = false;\n // -- private ------------------------------------------------------ //\n this.unsubscribe = void 0;\n this.timeout = void 0;\n this.unsubscribe = ToastCtrl.subscribe((newState) => {\n if (newState.open) {\n this.open = true;\n this.timeout = setTimeout(() => ToastCtrl.closeToast(), 2200);\n } else {\n this.open = false;\n clearTimeout(this.timeout);\n }\n });\n }\n disconnectedCallback() {\n var _a;\n (_a = this.unsubscribe) == null ? void 0 : _a.call(this);\n clearTimeout(this.timeout);\n ToastCtrl.closeToast();\n }\n // -- render ------------------------------------------------------- //\n render() {\n const { message, variant } = ToastCtrl.state;\n const classes = {\n \"wcm-success\": variant === \"success\",\n \"wcm-error\": variant === \"error\"\n };\n return this.open ? html`
${variant === \"success\" ? SvgUtil.CHECKMARK_ICON : null} ${variant === \"error\" ? SvgUtil.CROSS_ICON : null}${message}
` : null;\n }\n};\nWcmModalToast.styles = [ThemeUtil.globalCss, styles$l];\n__decorateClass$p([\n state()\n], WcmModalToast.prototype, \"open\", 2);\nWcmModalToast = __decorateClass$p([\n customElement(\"wcm-modal-toast\")\n], WcmModalToast);\n\nconst CONNECTING_ERROR_MARGIN = 0.1;\nconst CIRCLE_SIZE_MODIFIER = 2.5;\nconst QRCODE_MATRIX_MARGIN = 7;\nfunction isAdjecentDots(cy, otherCy, cellSize) {\n if (cy === otherCy) {\n return false;\n }\n const diff = cy - otherCy < 0 ? otherCy - cy : cy - otherCy;\n return diff <= cellSize + CONNECTING_ERROR_MARGIN;\n}\nfunction getMatrix(value, errorCorrectionLevel) {\n const arr = Array.prototype.slice.call(\n QRCodeUtil.create(value, { errorCorrectionLevel }).modules.data,\n 0\n );\n const sqrt = Math.sqrt(arr.length);\n return arr.reduce(\n (rows, key, index) => (index % sqrt === 0 ? rows.push([key]) : rows[rows.length - 1].push(key)) && rows,\n []\n );\n}\nconst QrCodeUtil = {\n generate(uri, size, logoSize) {\n const dotColor = \"#141414\";\n const edgeColor = \"#ffffff\";\n const dots = [];\n const matrix = getMatrix(uri, \"Q\");\n const cellSize = size / matrix.length;\n const qrList = [\n { x: 0, y: 0 },\n { x: 1, y: 0 },\n { x: 0, y: 1 }\n ];\n qrList.forEach(({ x, y }) => {\n const x1 = (matrix.length - QRCODE_MATRIX_MARGIN) * cellSize * x;\n const y1 = (matrix.length - QRCODE_MATRIX_MARGIN) * cellSize * y;\n const borderRadius = 0.45;\n for (let i = 0; i < qrList.length; i += 1) {\n const dotSize = cellSize * (QRCODE_MATRIX_MARGIN - i * 2);\n dots.push(\n svg$1``\n );\n }\n });\n const clearArenaSize = Math.floor((logoSize + 25) / cellSize);\n const matrixMiddleStart = matrix.length / 2 - clearArenaSize / 2;\n const matrixMiddleEnd = matrix.length / 2 + clearArenaSize / 2 - 1;\n const circles = [];\n matrix.forEach((row, i) => {\n row.forEach((_, j) => {\n if (matrix[i][j]) {\n if (!(i < QRCODE_MATRIX_MARGIN && j < QRCODE_MATRIX_MARGIN || i > matrix.length - (QRCODE_MATRIX_MARGIN + 1) && j < QRCODE_MATRIX_MARGIN || i < QRCODE_MATRIX_MARGIN && j > matrix.length - (QRCODE_MATRIX_MARGIN + 1))) {\n if (!(i > matrixMiddleStart && i < matrixMiddleEnd && j > matrixMiddleStart && j < matrixMiddleEnd)) {\n const cx = i * cellSize + cellSize / 2;\n const cy = j * cellSize + cellSize / 2;\n circles.push([cx, cy]);\n }\n }\n }\n });\n });\n const circlesToConnect = {};\n circles.forEach(([cx, cy]) => {\n if (circlesToConnect[cx]) {\n circlesToConnect[cx].push(cy);\n } else {\n circlesToConnect[cx] = [cy];\n }\n });\n Object.entries(circlesToConnect).map(([cx, cys]) => {\n const newCys = cys.filter(\n (cy) => cys.every((otherCy) => !isAdjecentDots(cy, otherCy, cellSize))\n );\n return [Number(cx), newCys];\n }).forEach(([cx, cys]) => {\n cys.forEach((cy) => {\n dots.push(\n svg$1``\n );\n });\n });\n Object.entries(circlesToConnect).filter(([_, cys]) => cys.length > 1).map(([cx, cys]) => {\n const newCys = cys.filter((cy) => cys.some((otherCy) => isAdjecentDots(cy, otherCy, cellSize)));\n return [Number(cx), newCys];\n }).map(([cx, cys]) => {\n cys.sort((a, b) => a < b ? -1 : 1);\n const groups = [];\n for (const cy of cys) {\n const group = groups.find(\n (item) => item.some((otherCy) => isAdjecentDots(cy, otherCy, cellSize))\n );\n if (group) {\n group.push(cy);\n } else {\n groups.push([cy]);\n }\n }\n return [cx, groups.map((item) => [item[0], item[item.length - 1]])];\n }).forEach(([cx, groups]) => {\n groups.forEach(([y1, y2]) => {\n dots.push(\n svg$1``\n );\n });\n });\n return dots;\n }\n};\n\nconst styles$k = css`@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}div{position:relative;user-select:none;display:block;overflow:hidden;aspect-ratio:1/1;animation:fadeIn ease .2s}.wcm-dark{background-color:#fff;border-radius:var(--wcm-container-border-radius);padding:18px;box-shadow:0 2px 5px #000}svg:first-child,wcm-wallet-image{position:absolute;top:50%;left:50%;transform:translateY(-50%) translateX(-50%)}wcm-wallet-image{transform:translateY(-50%) translateX(-50%)}wcm-wallet-image{width:25%;height:25%;border-radius:var(--wcm-wallet-icon-border-radius)}svg:first-child{transform:translateY(-50%) translateX(-50%) scale(.9)}svg:first-child path:first-child{fill:var(--wcm-accent-color)}svg:first-child path:last-child{stroke:var(--wcm-color-overlay)}`;\n\nvar __defProp$o = Object.defineProperty;\nvar __getOwnPropDesc$o = Object.getOwnPropertyDescriptor;\nvar __decorateClass$o = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$o(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$o(target, key, result);\n return result;\n};\nlet WcmQrCode = class extends LitElement {\n constructor() {\n super(...arguments);\n this.uri = \"\";\n this.size = 0;\n this.imageId = void 0;\n this.walletId = void 0;\n this.imageUrl = void 0;\n }\n // -- private ------------------------------------------------------ //\n svgTemplate() {\n const isLightMode = ThemeCtrl.state.themeMode === \"light\";\n const size = isLightMode ? this.size : this.size - 18 * 2;\n return svg$1`${QrCodeUtil.generate(this.uri, size, size / 4)}`;\n }\n // -- render ------------------------------------------------------- //\n render() {\n const classes = {\n \"wcm-dark\": ThemeCtrl.state.themeMode === \"dark\"\n };\n return html`
${this.walletId || this.imageUrl ? html`` : SvgUtil.WALLET_CONNECT_ICON_COLORED} ${this.svgTemplate()}
`;\n }\n};\nWcmQrCode.styles = [ThemeUtil.globalCss, styles$k];\n__decorateClass$o([\n property()\n], WcmQrCode.prototype, \"uri\", 2);\n__decorateClass$o([\n property({ type: Number })\n], WcmQrCode.prototype, \"size\", 2);\n__decorateClass$o([\n property()\n], WcmQrCode.prototype, \"imageId\", 2);\n__decorateClass$o([\n property()\n], WcmQrCode.prototype, \"walletId\", 2);\n__decorateClass$o([\n property()\n], WcmQrCode.prototype, \"imageUrl\", 2);\nWcmQrCode = __decorateClass$o([\n customElement(\"wcm-qrcode\")\n], WcmQrCode);\n\nconst styles$j = css`:host{position:relative;height:28px;width:80%}input{width:100%;height:100%;line-height:28px!important;border-radius:var(--wcm-input-border-radius);font-style:normal;font-family:-apple-system,system-ui,BlinkMacSystemFont,'Segoe UI',Roboto,Ubuntu,'Helvetica Neue',sans-serif;font-feature-settings:'case' on;font-weight:500;font-size:16px;letter-spacing:-.03em;padding:0 10px 0 34px;transition:.2s all ease;color:var(--wcm-color-fg-1);background-color:var(--wcm-color-bg-3);box-shadow:inset 0 0 0 1px var(--wcm-color-overlay);caret-color:var(--wcm-accent-color)}input::placeholder{color:var(--wcm-color-fg-2)}svg{left:10px;top:4px;pointer-events:none;position:absolute;width:20px;height:20px}input:focus-within{box-shadow:inset 0 0 0 1px var(--wcm-accent-color)}path{fill:var(--wcm-color-fg-2)}`;\n\nvar __defProp$n = Object.defineProperty;\nvar __getOwnPropDesc$n = Object.getOwnPropertyDescriptor;\nvar __decorateClass$n = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$n(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$n(target, key, result);\n return result;\n};\nlet WcmSearchInput = class extends LitElement {\n constructor() {\n super(...arguments);\n this.onChange = () => null;\n }\n // -- render ------------------------------------------------------- //\n render() {\n return html` ${SvgUtil.SEARCH_ICON}`;\n }\n};\nWcmSearchInput.styles = [ThemeUtil.globalCss, styles$j];\n__decorateClass$n([\n property()\n], WcmSearchInput.prototype, \"onChange\", 2);\nWcmSearchInput = __decorateClass$n([\n customElement(\"wcm-search-input\")\n], WcmSearchInput);\n\nconst styles$i = css`@keyframes rotate{100%{transform:rotate(360deg)}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}100%{stroke-dasharray:90,150;stroke-dashoffset:-124}}svg{animation:rotate 2s linear infinite;display:flex;justify-content:center;align-items:center}svg circle{stroke-linecap:round;animation:dash 1.5s ease infinite;stroke:var(--wcm-accent-color)}`;\n\nvar __defProp$m = Object.defineProperty;\nvar __getOwnPropDesc$m = Object.getOwnPropertyDescriptor;\nvar __decorateClass$m = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$m(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$m(target, key, result);\n return result;\n};\nlet WcmSpinner = class extends LitElement {\n // -- render ------------------------------------------------------- //\n render() {\n return html``;\n }\n};\nWcmSpinner.styles = [ThemeUtil.globalCss, styles$i];\nWcmSpinner = __decorateClass$m([\n customElement(\"wcm-spinner\")\n], WcmSpinner);\n\nconst styles$h = css`span{font-style:normal;font-family:var(--wcm-font-family);font-feature-settings:var(--wcm-font-feature-settings)}.wcm-xsmall-bold{font-family:var(--wcm-text-xsmall-bold-font-family);font-weight:var(--wcm-text-xsmall-bold-weight);font-size:var(--wcm-text-xsmall-bold-size);line-height:var(--wcm-text-xsmall-bold-line-height);letter-spacing:var(--wcm-text-xsmall-bold-letter-spacing);text-transform:var(--wcm-text-xsmall-bold-text-transform)}.wcm-xsmall-regular{font-family:var(--wcm-text-xsmall-regular-font-family);font-weight:var(--wcm-text-xsmall-regular-weight);font-size:var(--wcm-text-xsmall-regular-size);line-height:var(--wcm-text-xsmall-regular-line-height);letter-spacing:var(--wcm-text-xsmall-regular-letter-spacing);text-transform:var(--wcm-text-xsmall-regular-text-transform)}.wcm-small-thin{font-family:var(--wcm-text-small-thin-font-family);font-weight:var(--wcm-text-small-thin-weight);font-size:var(--wcm-text-small-thin-size);line-height:var(--wcm-text-small-thin-line-height);letter-spacing:var(--wcm-text-small-thin-letter-spacing);text-transform:var(--wcm-text-small-thin-text-transform)}.wcm-small-regular{font-family:var(--wcm-text-small-regular-font-family);font-weight:var(--wcm-text-small-regular-weight);font-size:var(--wcm-text-small-regular-size);line-height:var(--wcm-text-small-regular-line-height);letter-spacing:var(--wcm-text-small-regular-letter-spacing);text-transform:var(--wcm-text-small-regular-text-transform)}.wcm-medium-regular{font-family:var(--wcm-text-medium-regular-font-family);font-weight:var(--wcm-text-medium-regular-weight);font-size:var(--wcm-text-medium-regular-size);line-height:var(--wcm-text-medium-regular-line-height);letter-spacing:var(--wcm-text-medium-regular-letter-spacing);text-transform:var(--wcm-text-medium-regular-text-transform)}.wcm-big-bold{font-family:var(--wcm-text-big-bold-font-family);font-weight:var(--wcm-text-big-bold-weight);font-size:var(--wcm-text-big-bold-size);line-height:var(--wcm-text-big-bold-line-height);letter-spacing:var(--wcm-text-big-bold-letter-spacing);text-transform:var(--wcm-text-big-bold-text-transform)}:host(*){color:var(--wcm-color-fg-1)}.wcm-color-primary{color:var(--wcm-color-fg-1)}.wcm-color-secondary{color:var(--wcm-color-fg-2)}.wcm-color-tertiary{color:var(--wcm-color-fg-3)}.wcm-color-inverse{color:var(--wcm-accent-fill-color)}.wcm-color-accnt{color:var(--wcm-accent-color)}.wcm-color-error{color:var(--wcm-error-color)}`;\n\nvar __defProp$l = Object.defineProperty;\nvar __getOwnPropDesc$l = Object.getOwnPropertyDescriptor;\nvar __decorateClass$l = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$l(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$l(target, key, result);\n return result;\n};\nlet WcmText = class extends LitElement {\n constructor() {\n super(...arguments);\n this.variant = \"medium-regular\";\n this.color = \"primary\";\n }\n // -- render ------------------------------------------------------- //\n render() {\n const classes = {\n \"wcm-big-bold\": this.variant === \"big-bold\",\n \"wcm-medium-regular\": this.variant === \"medium-regular\",\n \"wcm-small-regular\": this.variant === \"small-regular\",\n \"wcm-small-thin\": this.variant === \"small-thin\",\n \"wcm-xsmall-regular\": this.variant === \"xsmall-regular\",\n \"wcm-xsmall-bold\": this.variant === \"xsmall-bold\",\n \"wcm-color-primary\": this.color === \"primary\",\n \"wcm-color-secondary\": this.color === \"secondary\",\n \"wcm-color-tertiary\": this.color === \"tertiary\",\n \"wcm-color-inverse\": this.color === \"inverse\",\n \"wcm-color-accnt\": this.color === \"accent\",\n \"wcm-color-error\": this.color === \"error\"\n };\n return html``;\n }\n};\nWcmText.styles = [ThemeUtil.globalCss, styles$h];\n__decorateClass$l([\n property()\n], WcmText.prototype, \"variant\", 2);\n__decorateClass$l([\n property()\n], WcmText.prototype, \"color\", 2);\nWcmText = __decorateClass$l([\n customElement(\"wcm-text\")\n], WcmText);\n\nconst styles$g = css`button{width:100%;height:100%;border-radius:var(--wcm-button-hover-highlight-border-radius);display:flex;align-items:flex-start}button:active{background-color:var(--wcm-color-overlay)}@media(hover:hover){button:hover{background-color:var(--wcm-color-overlay)}}button>div{width:80px;padding:5px 0;display:flex;flex-direction:column;align-items:center}wcm-text{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center}wcm-wallet-image{height:60px;width:60px;transition:all .2s ease;border-radius:var(--wcm-wallet-icon-border-radius);margin-bottom:5px}.wcm-sublabel{margin-top:2px}`;\n\nvar __defProp$k = Object.defineProperty;\nvar __getOwnPropDesc$k = Object.getOwnPropertyDescriptor;\nvar __decorateClass$k = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$k(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$k(target, key, result);\n return result;\n};\nlet WcmWalletButton = class extends LitElement {\n constructor() {\n super(...arguments);\n this.onClick = () => null;\n this.name = \"\";\n this.walletId = \"\";\n this.label = void 0;\n this.imageId = void 0;\n this.installed = false;\n this.recent = false;\n }\n // -- private ------------------------------------------------------ //\n sublabelTemplate() {\n if (this.recent) {\n return html`RECENT`;\n } else if (this.installed) {\n return html`INSTALLED`;\n }\n return null;\n }\n handleClick() {\n EventsCtrl.click({ name: \"WALLET_BUTTON\", walletId: this.walletId });\n this.onClick();\n }\n // -- render ------------------------------------------------------- //\n render() {\n var _a;\n return html``;\n }\n};\nWcmWalletButton.styles = [ThemeUtil.globalCss, styles$g];\n__decorateClass$k([\n property()\n], WcmWalletButton.prototype, \"onClick\", 2);\n__decorateClass$k([\n property()\n], WcmWalletButton.prototype, \"name\", 2);\n__decorateClass$k([\n property()\n], WcmWalletButton.prototype, \"walletId\", 2);\n__decorateClass$k([\n property()\n], WcmWalletButton.prototype, \"label\", 2);\n__decorateClass$k([\n property()\n], WcmWalletButton.prototype, \"imageId\", 2);\n__decorateClass$k([\n property({ type: Boolean })\n], WcmWalletButton.prototype, \"installed\", 2);\n__decorateClass$k([\n property({ type: Boolean })\n], WcmWalletButton.prototype, \"recent\", 2);\nWcmWalletButton = __decorateClass$k([\n customElement(\"wcm-wallet-button\")\n], WcmWalletButton);\n\nconst styles$f = css`:host{display:block}div{overflow:hidden;position:relative;border-radius:inherit;width:100%;height:100%;background-color:var(--wcm-color-overlay)}svg{position:relative;width:100%;height:100%}div::after{content:'';position:absolute;top:0;bottom:0;left:0;right:0;border-radius:inherit;border:1px solid var(--wcm-color-overlay)}div img{width:100%;height:100%;object-fit:cover;object-position:center}#wallet-placeholder-fill{fill:var(--wcm-color-bg-3)}#wallet-placeholder-dash{stroke:var(--wcm-color-overlay)}`;\n\nvar __defProp$j = Object.defineProperty;\nvar __getOwnPropDesc$j = Object.getOwnPropertyDescriptor;\nvar __decorateClass$j = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$j(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$j(target, key, result);\n return result;\n};\nlet WcmWalletImage = class extends LitElement {\n constructor() {\n super(...arguments);\n this.walletId = \"\";\n this.imageId = void 0;\n this.imageUrl = void 0;\n }\n // -- render ------------------------------------------------------- //\n render() {\n var _a;\n const src = ((_a = this.imageUrl) == null ? void 0 : _a.length) ? this.imageUrl : UiUtil.getWalletIcon({ id: this.walletId, image_id: this.imageId });\n return html`${src.length ? html`
\"${this.id}\"
` : SvgUtil.WALLET_PLACEHOLDER}`;\n }\n};\nWcmWalletImage.styles = [ThemeUtil.globalCss, styles$f];\n__decorateClass$j([\n property()\n], WcmWalletImage.prototype, \"walletId\", 2);\n__decorateClass$j([\n property()\n], WcmWalletImage.prototype, \"imageId\", 2);\n__decorateClass$j([\n property()\n], WcmWalletImage.prototype, \"imageUrl\", 2);\nWcmWalletImage = __decorateClass$j([\n customElement(\"wcm-wallet-image\")\n], WcmWalletImage);\n\nvar __defProp$i = Object.defineProperty;\nvar __getOwnPropDesc$i = Object.getOwnPropertyDescriptor;\nvar __decorateClass$i = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$i(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$i(target, key, result);\n return result;\n};\nlet WcmExplorerContext = class extends LitElement {\n // -- lifecycle ---------------------------------------------------- //\n constructor() {\n super();\n this.preload = true;\n this.preloadData();\n }\n // -- private ------------------------------------------------------ //\n async loadImages(images) {\n try {\n if (images == null ? void 0 : images.length) {\n await Promise.all(images.map(async (url) => UiUtil.preloadImage(url)));\n }\n } catch (e) {\n console.info(\"Unsuccessful attempt at preloading some images\", images);\n }\n }\n async preloadListings() {\n if (ConfigCtrl.state.enableExplorer) {\n await ExplorerCtrl.getRecomendedWallets();\n OptionsCtrl.setIsDataLoaded(true);\n const { recomendedWallets } = ExplorerCtrl.state;\n const walletImgs = recomendedWallets.map((wallet) => UiUtil.getWalletIcon(wallet));\n await this.loadImages(walletImgs);\n } else {\n OptionsCtrl.setIsDataLoaded(true);\n }\n }\n async preloadCustomImages() {\n const images = UiUtil.getCustomImageUrls();\n await this.loadImages(images);\n }\n async preloadData() {\n try {\n if (this.preload) {\n this.preload = false;\n await Promise.all([this.preloadListings(), this.preloadCustomImages()]);\n }\n } catch (err) {\n console.error(err);\n ToastCtrl.openToast(\"Failed preloading\", \"error\");\n }\n }\n};\n__decorateClass$i([\n state()\n], WcmExplorerContext.prototype, \"preload\", 2);\nWcmExplorerContext = __decorateClass$i([\n customElement(\"wcm-explorer-context\")\n], WcmExplorerContext);\n\nvar __defProp$h = Object.defineProperty;\nvar __getOwnPropDesc$h = Object.getOwnPropertyDescriptor;\nvar __decorateClass$h = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$h(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$h(target, key, result);\n return result;\n};\nlet WcmThemeContext = class extends LitElement {\n // -- lifecycle ---------------------------------------------------- //\n constructor() {\n super();\n // -- private ------------------------------------------------------ //\n this.unsubscribeTheme = void 0;\n ThemeUtil.setTheme();\n this.unsubscribeTheme = ThemeCtrl.subscribe(ThemeUtil.setTheme);\n }\n disconnectedCallback() {\n var _a;\n (_a = this.unsubscribeTheme) == null ? void 0 : _a.call(this);\n }\n};\nWcmThemeContext = __decorateClass$h([\n customElement(\"wcm-theme-context\")\n], WcmThemeContext);\n\nconst styles$e = css`@keyframes scroll{0%{transform:translate3d(0,0,0)}100%{transform:translate3d(calc(-70px * 9),0,0)}}.wcm-slider{position:relative;overflow-x:hidden;padding:10px 0;margin:0 -20px;width:calc(100% + 40px)}.wcm-track{display:flex;width:calc(70px * 18);animation:scroll 20s linear infinite;opacity:.7}.wcm-track svg{margin:0 5px}wcm-wallet-image{width:60px;height:60px;margin:0 5px;border-radius:var(--wcm-wallet-icon-border-radius)}.wcm-grid{display:grid;grid-template-columns:repeat(4,80px);justify-content:space-between}.wcm-title{display:flex;align-items:center;margin-bottom:10px}.wcm-title svg{margin-right:6px}.wcm-title path{fill:var(--wcm-accent-color)}wcm-modal-footer .wcm-title{padding:0 10px}wcm-button-big{position:absolute;top:50%;left:50%;transform:translateY(-50%) translateX(-50%);filter:drop-shadow(0 0 17px var(--wcm-color-bg-1))}wcm-info-footer{flex-direction:column;align-items:center;display:flex;width:100%;padding:5px 0}wcm-info-footer wcm-text{text-align:center;margin-bottom:15px}#wallet-placeholder-fill{fill:var(--wcm-color-bg-3)}#wallet-placeholder-dash{stroke:var(--wcm-color-overlay)}`;\n\nvar __defProp$g = Object.defineProperty;\nvar __getOwnPropDesc$g = Object.getOwnPropertyDescriptor;\nvar __decorateClass$g = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$g(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$g(target, key, result);\n return result;\n};\nlet WcmAndroidWalletSelection = class extends LitElement {\n // -- private ------------------------------------------------------ //\n onGoToQrcode() {\n RouterCtrl.push(\"Qrcode\");\n }\n // -- render ------------------------------------------------------- //\n render() {\n const { recomendedWallets } = ExplorerCtrl.state;\n const wallets = [...recomendedWallets, ...recomendedWallets];\n const recomendedCount = CoreUtil.RECOMMENDED_WALLET_AMOUNT * 2;\n return html`
${SvgUtil.MOBILE_ICON}WalletConnect
${[...Array(recomendedCount)].map((_, index) => {\n const wallet = wallets[index % wallets.length];\n return wallet ? html`` : SvgUtil.WALLET_PLACEHOLDER;\n })}
Select Wallet
Choose WalletConnect to see supported apps on your device`;\n }\n};\nWcmAndroidWalletSelection.styles = [ThemeUtil.globalCss, styles$e];\nWcmAndroidWalletSelection = __decorateClass$g([\n customElement(\"wcm-android-wallet-selection\")\n], WcmAndroidWalletSelection);\n\nconst styles$d = css`@keyframes loading{to{stroke-dashoffset:0}}@keyframes shake{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(1px,0,0)}30%,50%,70%{transform:translate3d(-2px,0,0)}40%,60%{transform:translate3d(2px,0,0)}}:host{display:flex;flex-direction:column;align-items:center}div{position:relative;width:110px;height:110px;display:flex;justify-content:center;align-items:center;margin:40px 0 20px 0;transform:translate3d(0,0,0)}svg{position:absolute;width:110px;height:110px;fill:none;stroke:transparent;stroke-linecap:round;stroke-width:2px;top:0;left:0}use{stroke:var(--wcm-accent-color);animation:loading 1s linear infinite}wcm-wallet-image{border-radius:var(--wcm-wallet-icon-large-border-radius);width:90px;height:90px}wcm-text{margin-bottom:40px}.wcm-error svg{stroke:var(--wcm-error-color)}.wcm-error use{display:none}.wcm-error{animation:shake .4s cubic-bezier(.36,.07,.19,.97) both}.wcm-stale svg,.wcm-stale use{display:none}`;\n\nvar __defProp$f = Object.defineProperty;\nvar __getOwnPropDesc$f = Object.getOwnPropertyDescriptor;\nvar __decorateClass$f = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$f(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$f(target, key, result);\n return result;\n};\nlet WcmConnectorWaiting = class extends LitElement {\n constructor() {\n super(...arguments);\n this.walletId = void 0;\n this.imageId = void 0;\n this.isError = false;\n this.isStale = false;\n this.label = \"\";\n }\n // -- private ------------------------------------------------------ //\n svgLoaderTemplate() {\n var _a, _b;\n const ICON_SIZE = 88;\n const DH_ARRAY = 317;\n const DH_OFFSET = 425;\n const radius = (_b = (_a = ThemeCtrl.state.themeVariables) == null ? void 0 : _a[\"--wcm-wallet-icon-large-border-radius\"]) != null ? _b : ThemeUtil.getPreset(\"--wcm-wallet-icon-large-border-radius\");\n let numRadius = 0;\n if (radius.includes(\"%\")) {\n numRadius = ICON_SIZE / 100 * parseInt(radius, 10);\n } else {\n numRadius = parseInt(radius, 10);\n }\n numRadius *= 1.17;\n const dashArray = DH_ARRAY - numRadius * 1.57;\n const dashOffset = DH_OFFSET - numRadius * 1.8;\n return html``;\n }\n // -- render ------------------------------------------------------- //\n render() {\n const classes = {\n \"wcm-error\": this.isError,\n \"wcm-stale\": this.isStale\n };\n return html`
${this.svgLoaderTemplate()}
${this.isError ? \"Connection declined\" : this.label}`;\n }\n};\nWcmConnectorWaiting.styles = [ThemeUtil.globalCss, styles$d];\n__decorateClass$f([\n property()\n], WcmConnectorWaiting.prototype, \"walletId\", 2);\n__decorateClass$f([\n property()\n], WcmConnectorWaiting.prototype, \"imageId\", 2);\n__decorateClass$f([\n property({ type: Boolean })\n], WcmConnectorWaiting.prototype, \"isError\", 2);\n__decorateClass$f([\n property({ type: Boolean })\n], WcmConnectorWaiting.prototype, \"isStale\", 2);\n__decorateClass$f([\n property()\n], WcmConnectorWaiting.prototype, \"label\", 2);\nWcmConnectorWaiting = __decorateClass$f([\n customElement(\"wcm-connector-waiting\")\n], WcmConnectorWaiting);\n\nconst DataUtil = {\n manualWallets() {\n var _a, _b;\n const { mobileWallets, desktopWallets } = ConfigCtrl.state;\n const recentWalletId = (_a = DataUtil.recentWallet()) == null ? void 0 : _a.id;\n const platformWallets = CoreUtil.isMobile() ? mobileWallets : desktopWallets;\n const wallets = platformWallets == null ? void 0 : platformWallets.filter((wallet) => recentWalletId !== wallet.id);\n return (_b = CoreUtil.isMobile() ? wallets == null ? void 0 : wallets.map(({ id, name, links }) => ({ id, name, mobile: links, links })) : wallets == null ? void 0 : wallets.map(({ id, name, links }) => ({ id, name, desktop: links, links }))) != null ? _b : [];\n },\n recentWallet() {\n return UiUtil.getRecentWallet();\n },\n recomendedWallets(skipRecent = false) {\n var _a;\n const recentWalletId = skipRecent ? void 0 : (_a = DataUtil.recentWallet()) == null ? void 0 : _a.id;\n const { recomendedWallets } = ExplorerCtrl.state;\n const wallets = recomendedWallets.filter((wallet) => recentWalletId !== wallet.id);\n return wallets;\n }\n};\n\nconst TemplateUtil = {\n onConnecting(data) {\n UiUtil.goToConnectingView(data);\n },\n manualWalletsTemplate() {\n const wallets = DataUtil.manualWallets();\n return wallets.map(\n (wallet) => html` this.onConnecting(wallet)}\">`\n );\n },\n recomendedWalletsTemplate(skipRecent = false) {\n const wallets = DataUtil.recomendedWallets(skipRecent);\n return wallets.map(\n (wallet) => html` this.onConnecting(wallet)}\">`\n );\n },\n recentWalletTemplate() {\n const wallet = DataUtil.recentWallet();\n if (!wallet) {\n return void 0;\n }\n return html` this.onConnecting(wallet)}\">`;\n }\n};\n\nconst styles$c = css`.wcm-grid{display:grid;grid-template-columns:repeat(4,80px);justify-content:space-between}.wcm-desktop-title,.wcm-mobile-title{display:flex;align-items:center}.wcm-mobile-title{justify-content:space-between;margin-bottom:20px;margin-top:-10px}.wcm-desktop-title{margin-bottom:10px;padding:0 10px}.wcm-subtitle{display:flex;align-items:center}.wcm-subtitle:last-child path{fill:var(--wcm-color-fg-3)}.wcm-desktop-title svg,.wcm-mobile-title svg{margin-right:6px}.wcm-desktop-title path,.wcm-mobile-title path{fill:var(--wcm-accent-color)}`;\n\nvar __defProp$e = Object.defineProperty;\nvar __getOwnPropDesc$e = Object.getOwnPropertyDescriptor;\nvar __decorateClass$e = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$e(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$e(target, key, result);\n return result;\n};\nlet WcmDesktopWalletSelection = class extends LitElement {\n // -- render ------------------------------------------------------- //\n render() {\n const { explorerExcludedWalletIds, enableExplorer } = ConfigCtrl.state;\n const isExplorerWallets = explorerExcludedWalletIds !== \"ALL\" && enableExplorer;\n const manualTemplate = TemplateUtil.manualWalletsTemplate();\n const recomendedTemplate = TemplateUtil.recomendedWalletsTemplate();\n const recentTemplate = TemplateUtil.recentWalletTemplate();\n let templates = [recentTemplate, ...manualTemplate, ...recomendedTemplate];\n templates = templates.filter(Boolean);\n const isViewAll = templates.length > 4 || isExplorerWallets;\n let wallets = [];\n if (isViewAll) {\n wallets = templates.slice(0, 3);\n } else {\n wallets = templates;\n }\n const isWallets = Boolean(wallets.length);\n return html`
${SvgUtil.MOBILE_ICON}Mobile
${SvgUtil.SCAN_ICON}Scan with your wallet
${isWallets ? html`
${SvgUtil.DESKTOP_ICON}Desktop
${wallets} ${isViewAll ? html`` : null}
` : null}`;\n }\n};\nWcmDesktopWalletSelection.styles = [ThemeUtil.globalCss, styles$c];\nWcmDesktopWalletSelection = __decorateClass$e([\n customElement(\"wcm-desktop-wallet-selection\")\n], WcmDesktopWalletSelection);\n\nconst styles$b = css`div{background-color:var(--wcm-color-bg-2);padding:10px 20px 15px 20px;border-top:1px solid var(--wcm-color-bg-3);text-align:center}a{color:var(--wcm-accent-color);text-decoration:none;transition:opacity .2s ease-in-out;display:inline}a:active{opacity:.8}@media(hover:hover){a:hover{opacity:.8}}`;\n\nvar __defProp$d = Object.defineProperty;\nvar __getOwnPropDesc$d = Object.getOwnPropertyDescriptor;\nvar __decorateClass$d = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$d(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$d(target, key, result);\n return result;\n};\nlet WcmLegalNotice = class extends LitElement {\n // -- render ------------------------------------------------------- //\n render() {\n const { termsOfServiceUrl, privacyPolicyUrl } = ConfigCtrl.state;\n const isLegal = termsOfServiceUrl != null ? termsOfServiceUrl : privacyPolicyUrl;\n if (!isLegal) {\n return null;\n }\n return html`
By connecting your wallet to this app, you agree to the app's ${termsOfServiceUrl ? html`Terms of Service` : null} ${termsOfServiceUrl && privacyPolicyUrl ? \"and\" : null} ${privacyPolicyUrl ? html`Privacy Policy` : null}
`;\n }\n};\nWcmLegalNotice.styles = [ThemeUtil.globalCss, styles$b];\nWcmLegalNotice = __decorateClass$d([\n customElement(\"wcm-legal-notice\")\n], WcmLegalNotice);\n\nconst styles$a = css`div{display:grid;grid-template-columns:repeat(4,80px);margin:0 -10px;justify-content:space-between;row-gap:10px}`;\n\nvar __defProp$c = Object.defineProperty;\nvar __getOwnPropDesc$c = Object.getOwnPropertyDescriptor;\nvar __decorateClass$c = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$c(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$c(target, key, result);\n return result;\n};\nlet WcmMobileWalletSelection = class extends LitElement {\n // -- private ------------------------------------------------------ //\n onQrcode() {\n RouterCtrl.push(\"Qrcode\");\n }\n // -- render ------------------------------------------------------- //\n render() {\n const { explorerExcludedWalletIds, enableExplorer } = ConfigCtrl.state;\n const isExplorerWallets = explorerExcludedWalletIds !== \"ALL\" && enableExplorer;\n const manualTemplate = TemplateUtil.manualWalletsTemplate();\n const recomendedTemplate = TemplateUtil.recomendedWalletsTemplate();\n const recentTemplate = TemplateUtil.recentWalletTemplate();\n let templates = [recentTemplate, ...manualTemplate, ...recomendedTemplate];\n templates = templates.filter(Boolean);\n const isViewAll = templates.length > 8 || isExplorerWallets;\n let wallets = [];\n if (isViewAll) {\n wallets = templates.slice(0, 7);\n } else {\n wallets = templates;\n }\n const isWallets = Boolean(wallets.length);\n return html`${isWallets ? html`
${wallets} ${isViewAll ? html`` : null}
` : null}`;\n }\n};\nWcmMobileWalletSelection.styles = [ThemeUtil.globalCss, styles$a];\nWcmMobileWalletSelection = __decorateClass$c([\n customElement(\"wcm-mobile-wallet-selection\")\n], WcmMobileWalletSelection);\n\nconst styles$9 = css`:host{all:initial}.wcm-overlay{top:0;bottom:0;left:0;right:0;position:fixed;z-index:var(--wcm-z-index);overflow:hidden;display:flex;justify-content:center;align-items:center;opacity:0;pointer-events:none;background-color:var(--wcm-overlay-background-color);backdrop-filter:var(--wcm-overlay-backdrop-filter)}@media(max-height:720px) and (orientation:landscape){.wcm-overlay{overflow:scroll;align-items:flex-start;padding:20px 0}}.wcm-active{pointer-events:auto}.wcm-container{position:relative;max-width:360px;width:100%;outline:0;border-radius:var(--wcm-background-border-radius) var(--wcm-background-border-radius) var(--wcm-container-border-radius) var(--wcm-container-border-radius);border:1px solid var(--wcm-color-overlay);overflow:hidden}.wcm-card{width:100%;position:relative;border-radius:var(--wcm-container-border-radius);overflow:hidden;box-shadow:0 6px 14px -6px rgba(10,16,31,.12),0 10px 32px -4px rgba(10,16,31,.1),0 0 0 1px var(--wcm-color-overlay);background-color:var(--wcm-color-bg-1);color:var(--wcm-color-fg-1)}@media(max-width:600px){.wcm-container{max-width:440px;border-radius:var(--wcm-background-border-radius) var(--wcm-background-border-radius) 0 0}.wcm-card{border-radius:var(--wcm-container-border-radius) var(--wcm-container-border-radius) 0 0}.wcm-overlay{align-items:flex-end}}@media(max-width:440px){.wcm-container{border:0}}`;\n\nvar __defProp$b = Object.defineProperty;\nvar __getOwnPropDesc$b = Object.getOwnPropertyDescriptor;\nvar __decorateClass$b = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$b(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$b(target, key, result);\n return result;\n};\nlet WcmModal = class extends LitElement {\n // -- lifecycle ---------------------------------------------------- //\n constructor() {\n super();\n this.open = false;\n this.active = false;\n // -- private ------------------------------------------------------ //\n this.unsubscribeModal = void 0;\n this.abortController = void 0;\n this.unsubscribeModal = ModalCtrl.subscribe((modalState) => {\n if (modalState.open) {\n this.onOpenModalEvent();\n } else {\n this.onCloseModalEvent();\n }\n });\n }\n disconnectedCallback() {\n var _a;\n (_a = this.unsubscribeModal) == null ? void 0 : _a.call(this);\n }\n get overlayEl() {\n return UiUtil.getShadowRootElement(this, \".wcm-overlay\");\n }\n get containerEl() {\n return UiUtil.getShadowRootElement(this, \".wcm-container\");\n }\n toggleBodyScroll(enabled) {\n const body = document.querySelector(\"body\");\n if (body) {\n if (enabled) {\n const wcmStyles = document.getElementById(\"wcm-styles\");\n wcmStyles == null ? void 0 : wcmStyles.remove();\n } else {\n document.head.insertAdjacentHTML(\n \"beforeend\",\n ``\n );\n }\n }\n }\n onCloseModal(event) {\n if (event.target === event.currentTarget) {\n ModalCtrl.close();\n }\n }\n onOpenModalEvent() {\n this.toggleBodyScroll(false);\n this.addKeyboardEvents();\n this.open = true;\n setTimeout(async () => {\n const animation = UiUtil.isMobileAnimation() ? { y: [\"50vh\", \"0vh\"] } : { scale: [0.98, 1] };\n const delay = 0.1;\n const duration = 0.2;\n await Promise.all([\n animate(this.overlayEl, { opacity: [0, 1] }, { delay, duration }).finished,\n animate(this.containerEl, animation, { delay, duration }).finished\n ]);\n this.active = true;\n }, 0);\n }\n async onCloseModalEvent() {\n this.toggleBodyScroll(true);\n this.removeKeyboardEvents();\n const animation = UiUtil.isMobileAnimation() ? { y: [\"0vh\", \"50vh\"] } : { scale: [1, 0.98] };\n const duration = 0.2;\n await Promise.all([\n animate(this.overlayEl, { opacity: [1, 0] }, { duration }).finished,\n animate(this.containerEl, animation, { duration }).finished\n ]);\n this.containerEl.removeAttribute(\"style\");\n this.active = false;\n this.open = false;\n }\n addKeyboardEvents() {\n this.abortController = new AbortController();\n window.addEventListener(\n \"keydown\",\n (event) => {\n var _a;\n if (event.key === \"Escape\") {\n ModalCtrl.close();\n } else if (event.key === \"Tab\") {\n if (!((_a = event.target) == null ? void 0 : _a.tagName.includes(\"wcm-\"))) {\n this.containerEl.focus();\n }\n }\n },\n this.abortController\n );\n this.containerEl.focus();\n }\n removeKeyboardEvents() {\n var _a;\n (_a = this.abortController) == null ? void 0 : _a.abort();\n this.abortController = void 0;\n }\n // -- render ------------------------------------------------------- //\n render() {\n const classes = {\n \"wcm-overlay\": true,\n \"wcm-active\": this.active\n };\n return html`
${this.open ? html`
` : null}
`;\n }\n};\nWcmModal.styles = [ThemeUtil.globalCss, styles$9];\n__decorateClass$b([\n state()\n], WcmModal.prototype, \"open\", 2);\n__decorateClass$b([\n state()\n], WcmModal.prototype, \"active\", 2);\nWcmModal = __decorateClass$b([\n customElement(\"wcm-modal\")\n], WcmModal);\n\nconst styles$8 = css`div{display:flex;margin-top:15px}slot{display:inline-block;margin:0 5px}wcm-button{margin:0 5px}`;\n\nvar __defProp$a = Object.defineProperty;\nvar __getOwnPropDesc$a = Object.getOwnPropertyDescriptor;\nvar __decorateClass$a = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$a(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$a(target, key, result);\n return result;\n};\nlet WcmPlatformSelection = class extends LitElement {\n constructor() {\n super(...arguments);\n this.isMobile = false;\n this.isDesktop = false;\n this.isWeb = false;\n this.isRetry = false;\n }\n // -- private ------------------------------------------------------ //\n onMobile() {\n const isMobile = CoreUtil.isMobile();\n if (isMobile) {\n RouterCtrl.replace(\"MobileConnecting\");\n } else {\n RouterCtrl.replace(\"MobileQrcodeConnecting\");\n }\n }\n onDesktop() {\n RouterCtrl.replace(\"DesktopConnecting\");\n }\n onWeb() {\n RouterCtrl.replace(\"WebConnecting\");\n }\n // -- render ------------------------------------------------------- //\n render() {\n return html`
${this.isRetry ? html`` : null} ${this.isMobile ? html`Mobile` : null} ${this.isDesktop ? html`Desktop` : null} ${this.isWeb ? html`Web` : null}
`;\n }\n};\nWcmPlatformSelection.styles = [ThemeUtil.globalCss, styles$8];\n__decorateClass$a([\n property({ type: Boolean })\n], WcmPlatformSelection.prototype, \"isMobile\", 2);\n__decorateClass$a([\n property({ type: Boolean })\n], WcmPlatformSelection.prototype, \"isDesktop\", 2);\n__decorateClass$a([\n property({ type: Boolean })\n], WcmPlatformSelection.prototype, \"isWeb\", 2);\n__decorateClass$a([\n property({ type: Boolean })\n], WcmPlatformSelection.prototype, \"isRetry\", 2);\nWcmPlatformSelection = __decorateClass$a([\n customElement(\"wcm-platform-selection\")\n], WcmPlatformSelection);\n\nconst styles$7 = css`button{display:flex;flex-direction:column;padding:5px 10px;border-radius:var(--wcm-button-hover-highlight-border-radius);height:100%;justify-content:flex-start}.wcm-icons{width:60px;height:60px;display:flex;flex-wrap:wrap;padding:7px;border-radius:var(--wcm-wallet-icon-border-radius);justify-content:space-between;align-items:center;margin-bottom:5px;background-color:var(--wcm-color-bg-2);box-shadow:inset 0 0 0 1px var(--wcm-color-overlay)}button:active{background-color:var(--wcm-color-overlay)}@media(hover:hover){button:hover{background-color:var(--wcm-color-overlay)}}.wcm-icons img{width:21px;height:21px;object-fit:cover;object-position:center;border-radius:calc(var(--wcm-wallet-icon-border-radius)/ 2);border:1px solid var(--wcm-color-overlay)}.wcm-icons svg{width:21px;height:21px}.wcm-icons img:nth-child(1),.wcm-icons img:nth-child(2),.wcm-icons svg:nth-child(1),.wcm-icons svg:nth-child(2){margin-bottom:4px}wcm-text{width:100%;text-align:center}#wallet-placeholder-fill{fill:var(--wcm-color-bg-3)}#wallet-placeholder-dash{stroke:var(--wcm-color-overlay)}`;\n\nvar __defProp$9 = Object.defineProperty;\nvar __getOwnPropDesc$9 = Object.getOwnPropertyDescriptor;\nvar __decorateClass$9 = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$9(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$9(target, key, result);\n return result;\n};\nlet WcmViewAllWalletsButton = class extends LitElement {\n // -- render ------------------------------------------------------- //\n onClick() {\n RouterCtrl.push(\"WalletExplorer\");\n }\n // -- render ------------------------------------------------------- //\n render() {\n const { recomendedWallets } = ExplorerCtrl.state;\n const manualWallets = DataUtil.manualWallets();\n const reversedWallets = [...recomendedWallets, ...manualWallets].reverse().slice(0, 4);\n return html``;\n }\n};\nWcmViewAllWalletsButton.styles = [ThemeUtil.globalCss, styles$7];\nWcmViewAllWalletsButton = __decorateClass$9([\n customElement(\"wcm-view-all-wallets-button\")\n], WcmViewAllWalletsButton);\n\nconst styles$6 = css`.wcm-qr-container{width:100%;display:flex;justify-content:center;align-items:center;aspect-ratio:1/1}`;\n\nvar __defProp$8 = Object.defineProperty;\nvar __getOwnPropDesc$8 = Object.getOwnPropertyDescriptor;\nvar __decorateClass$8 = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$8(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$8(target, key, result);\n return result;\n};\nlet WcmWalletConnectQr = class extends LitElement {\n // -- lifecycle ---------------------------------------------------- //\n constructor() {\n super();\n this.walletId = \"\";\n this.imageId = \"\";\n this.uri = \"\";\n setTimeout(() => {\n const { walletConnectUri } = OptionsCtrl.state;\n this.uri = walletConnectUri;\n }, 0);\n }\n // -- private ------------------------------------------------------ //\n get overlayEl() {\n return UiUtil.getShadowRootElement(this, \".wcm-qr-container\");\n }\n // -- render ------------------------------------------------------- //\n render() {\n return html`
${this.uri ? html`` : html``}
`;\n }\n};\nWcmWalletConnectQr.styles = [ThemeUtil.globalCss, styles$6];\n__decorateClass$8([\n property()\n], WcmWalletConnectQr.prototype, \"walletId\", 2);\n__decorateClass$8([\n property()\n], WcmWalletConnectQr.prototype, \"imageId\", 2);\n__decorateClass$8([\n state()\n], WcmWalletConnectQr.prototype, \"uri\", 2);\nWcmWalletConnectQr = __decorateClass$8([\n customElement(\"wcm-walletconnect-qr\")\n], WcmWalletConnectQr);\n\nvar __defProp$7 = Object.defineProperty;\nvar __getOwnPropDesc$7 = Object.getOwnPropertyDescriptor;\nvar __decorateClass$7 = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$7(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$7(target, key, result);\n return result;\n};\nlet WcmConnectWalletView = class extends LitElement {\n // -- private ------------------------------------------------------ //\n viewTemplate() {\n if (CoreUtil.isAndroid() && !CoreUtil.isTelegram()) {\n return html``;\n }\n if (CoreUtil.isMobile()) {\n return html``;\n }\n return html``;\n }\n // -- render ------------------------------------------------------- //\n render() {\n return html`${this.viewTemplate()}`;\n }\n};\nWcmConnectWalletView.styles = [ThemeUtil.globalCss];\nWcmConnectWalletView = __decorateClass$7([\n customElement(\"wcm-connect-wallet-view\")\n], WcmConnectWalletView);\n\nconst styles$5 = css`wcm-info-footer{flex-direction:column;align-items:center;display:flex;width:100%;padding:5px 0}wcm-text{text-align:center}`;\n\nvar __defProp$6 = Object.defineProperty;\nvar __getOwnPropDesc$6 = Object.getOwnPropertyDescriptor;\nvar __decorateClass$6 = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$6(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$6(target, key, result);\n return result;\n};\nlet WcmDesktopConnectingView = class extends LitElement {\n // -- lifecycle ---------------------------------------------------- //\n constructor() {\n super();\n this.isError = false;\n this.openDesktopApp();\n }\n // -- private ------------------------------------------------------ //\n onFormatAndRedirect(uri) {\n const { desktop, name } = CoreUtil.getWalletRouterData();\n const nativeUrl = desktop == null ? void 0 : desktop.native;\n const universalUrl = desktop == null ? void 0 : desktop.universal;\n if (nativeUrl) {\n const href = CoreUtil.formatNativeUrl(nativeUrl, uri, name);\n CoreUtil.openHref(href, \"_self\");\n } else if (universalUrl) {\n const href = CoreUtil.formatUniversalUrl(universalUrl, uri, name);\n CoreUtil.openHref(href, \"_blank\");\n }\n }\n openDesktopApp() {\n const { walletConnectUri } = OptionsCtrl.state;\n const routerData = CoreUtil.getWalletRouterData();\n UiUtil.setRecentWallet(routerData);\n if (walletConnectUri) {\n this.onFormatAndRedirect(walletConnectUri);\n }\n }\n // -- render ------------------------------------------------------- //\n render() {\n const { name, id, image_id } = CoreUtil.getWalletRouterData();\n const { isMobile, isWeb } = UiUtil.getCachedRouterWalletPlatforms();\n return html`${`Connection can continue loading if ${name} is not installed on your device`}Retry`;\n }\n};\nWcmDesktopConnectingView.styles = [ThemeUtil.globalCss, styles$5];\n__decorateClass$6([\n state()\n], WcmDesktopConnectingView.prototype, \"isError\", 2);\nWcmDesktopConnectingView = __decorateClass$6([\n customElement(\"wcm-desktop-connecting-view\")\n], WcmDesktopConnectingView);\n\nconst styles$4 = css`wcm-info-footer{flex-direction:column;align-items:center;display:flex;width:100%;padding:5px 0}wcm-text{text-align:center}wcm-button{margin-top:15px}`;\n\nvar __defProp$5 = Object.defineProperty;\nvar __getOwnPropDesc$5 = Object.getOwnPropertyDescriptor;\nvar __decorateClass$5 = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$5(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$5(target, key, result);\n return result;\n};\nlet WcmInstallWalletView = class extends LitElement {\n // -- private ------------------------------------------------------ //\n onInstall(uri) {\n if (uri) {\n CoreUtil.openHref(uri, \"_blank\");\n }\n }\n // -- render ------------------------------------------------------- //\n render() {\n const { name, id, image_id, homepage } = CoreUtil.getWalletRouterData();\n return html`${`Download ${name} to continue. If multiple browser extensions are installed, disable non ${name} ones and try again`} this.onInstall(homepage)}\" .iconLeft=\"${SvgUtil.ARROW_DOWN_ICON}\">Download`;\n }\n};\nWcmInstallWalletView.styles = [ThemeUtil.globalCss, styles$4];\nWcmInstallWalletView = __decorateClass$5([\n customElement(\"wcm-install-wallet-view\")\n], WcmInstallWalletView);\n\nconst styles$3 = css`wcm-wallet-image{border-radius:var(--wcm-wallet-icon-large-border-radius);width:96px;height:96px;margin-bottom:20px}wcm-info-footer{display:flex;width:100%}.wcm-app-store{justify-content:space-between}.wcm-app-store wcm-wallet-image{margin-right:10px;margin-bottom:0;width:28px;height:28px;border-radius:var(--wcm-wallet-icon-small-border-radius)}.wcm-app-store div{display:flex;align-items:center}.wcm-app-store wcm-button{margin-right:-10px}.wcm-note{flex-direction:column;align-items:center;padding:5px 0}.wcm-note wcm-text{text-align:center}wcm-platform-selection{margin-top:-15px}.wcm-note wcm-text{margin-top:15px}.wcm-note wcm-text span{color:var(--wcm-accent-color)}`;\n\nvar __defProp$4 = Object.defineProperty;\nvar __getOwnPropDesc$4 = Object.getOwnPropertyDescriptor;\nvar __decorateClass$4 = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$4(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$4(target, key, result);\n return result;\n};\nlet WcmMobileConnectingView = class extends LitElement {\n // -- lifecycle ---------------------------------------------------- //\n constructor() {\n super();\n this.isError = false;\n this.openMobileApp();\n }\n // -- private ------------------------------------------------------ //\n onFormatAndRedirect(uri, forceUniversalUrl = false) {\n const { mobile, name } = CoreUtil.getWalletRouterData();\n const nativeUrl = mobile == null ? void 0 : mobile.native;\n const universalUrl = mobile == null ? void 0 : mobile.universal;\n const target = CoreUtil.isTelegram() ? \"_blank\" : \"_self\";\n uri = CoreUtil.isTelegram() && CoreUtil.isAndroid() ? encodeURIComponent(uri) : uri;\n if (nativeUrl && !forceUniversalUrl) {\n const href = CoreUtil.formatNativeUrl(nativeUrl, uri, name);\n CoreUtil.openHref(href, target);\n } else if (universalUrl) {\n const href = CoreUtil.formatUniversalUrl(universalUrl, uri, name);\n CoreUtil.openHref(href, target);\n }\n }\n openMobileApp(forceUniversalUrl = false) {\n const { walletConnectUri } = OptionsCtrl.state;\n const routerData = CoreUtil.getWalletRouterData();\n if (walletConnectUri) {\n this.onFormatAndRedirect(walletConnectUri, forceUniversalUrl);\n }\n UiUtil.setRecentWallet(routerData);\n }\n onGoToAppStore(downloadUrl) {\n if (downloadUrl) {\n CoreUtil.openHref(downloadUrl, \"_blank\");\n }\n }\n // -- render ------------------------------------------------------- //\n render() {\n const { name, id, image_id, app, mobile } = CoreUtil.getWalletRouterData();\n const { isWeb } = UiUtil.getCachedRouterWalletPlatforms();\n const downloadUrl = app == null ? void 0 : app.ios;\n const universalUrl = mobile == null ? void 0 : mobile.universal;\n return html` this.openMobileApp(false)}\" .iconRight=\"${SvgUtil.RETRY_ICON}\">Retry${universalUrl ? html`Still doesn't work? this.openMobileApp(true)}\">Try this alternate link` : null}
${`Get ${name}`}
this.onGoToAppStore(downloadUrl)}\" variant=\"ghost\">App Store
`;\n }\n};\nWcmMobileConnectingView.styles = [ThemeUtil.globalCss, styles$3];\n__decorateClass$4([\n state()\n], WcmMobileConnectingView.prototype, \"isError\", 2);\nWcmMobileConnectingView = __decorateClass$4([\n customElement(\"wcm-mobile-connecting-view\")\n], WcmMobileConnectingView);\n\nconst styles$2 = css`wcm-info-footer{flex-direction:column;align-items:center;display:flex;width:100%;padding:5px 0}wcm-text{text-align:center}`;\n\nvar __defProp$3 = Object.defineProperty;\nvar __getOwnPropDesc$3 = Object.getOwnPropertyDescriptor;\nvar __decorateClass$3 = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$3(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$3(target, key, result);\n return result;\n};\nlet WcmMobileQrConnectingView = class extends LitElement {\n // -- render ------------------------------------------------------- //\n render() {\n const { name, id, image_id } = CoreUtil.getWalletRouterData();\n const { isDesktop, isWeb } = UiUtil.getCachedRouterWalletPlatforms();\n return html`${`Scan this QR Code with your phone's camera or inside ${name} app`}`;\n }\n};\nWcmMobileQrConnectingView.styles = [ThemeUtil.globalCss, styles$2];\nWcmMobileQrConnectingView = __decorateClass$3([\n customElement(\"wcm-mobile-qr-connecting-view\")\n], WcmMobileQrConnectingView);\n\nvar __defProp$2 = Object.defineProperty;\nvar __getOwnPropDesc$2 = Object.getOwnPropertyDescriptor;\nvar __decorateClass$2 = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$2(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$2(target, key, result);\n return result;\n};\nlet WcmQrcodeView = class extends LitElement {\n // -- render ------------------------------------------------------- //\n render() {\n return html``;\n }\n};\nWcmQrcodeView.styles = [ThemeUtil.globalCss];\nWcmQrcodeView = __decorateClass$2([\n customElement(\"wcm-qrcode-view\")\n], WcmQrcodeView);\n\nconst styles$1 = css`wcm-modal-content{height:clamp(200px,60vh,600px);display:block;overflow:scroll;scrollbar-width:none;position:relative;margin-top:1px}.wcm-grid{display:grid;grid-template-columns:repeat(4,80px);justify-content:space-between;margin:-15px -10px;padding-top:20px}wcm-modal-content::after,wcm-modal-content::before{content:'';position:fixed;pointer-events:none;z-index:1;width:100%;height:20px;opacity:1}wcm-modal-content::before{box-shadow:0 -1px 0 0 var(--wcm-color-bg-1);background:linear-gradient(var(--wcm-color-bg-1),rgba(255,255,255,0))}wcm-modal-content::after{box-shadow:0 1px 0 0 var(--wcm-color-bg-1);background:linear-gradient(rgba(255,255,255,0),var(--wcm-color-bg-1));top:calc(100% - 20px)}wcm-modal-content::-webkit-scrollbar{display:none}.wcm-placeholder-block{display:flex;justify-content:center;align-items:center;height:100px;overflow:hidden}.wcm-empty,.wcm-loading{display:flex}.wcm-loading .wcm-placeholder-block{height:100%}.wcm-end-reached .wcm-placeholder-block{height:0;opacity:0}.wcm-empty .wcm-placeholder-block{opacity:1;height:100%}wcm-wallet-button{margin:calc((100% - 60px)/ 3) 0}`;\n\nvar __defProp$1 = Object.defineProperty;\nvar __getOwnPropDesc$1 = Object.getOwnPropertyDescriptor;\nvar __decorateClass$1 = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$1(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp$1(target, key, result);\n return result;\n};\nconst PAGE_ENTRIES = 40;\nlet WcmWalletExplorerView = class extends LitElement {\n constructor() {\n super(...arguments);\n this.loading = !ExplorerCtrl.state.wallets.listings.length;\n this.firstFetch = !ExplorerCtrl.state.wallets.listings.length;\n this.search = \"\";\n this.endReached = false;\n this.intersectionObserver = void 0;\n this.searchDebounce = UiUtil.debounce((value) => {\n if (value.length >= 1) {\n this.firstFetch = true;\n this.endReached = false;\n this.search = value;\n ExplorerCtrl.resetSearch();\n this.fetchWallets();\n } else if (this.search) {\n this.search = \"\";\n this.endReached = this.isLastPage();\n ExplorerCtrl.resetSearch();\n }\n });\n }\n // -- lifecycle ---------------------------------------------------- //\n firstUpdated() {\n this.createPaginationObserver();\n }\n disconnectedCallback() {\n var _a;\n (_a = this.intersectionObserver) == null ? void 0 : _a.disconnect();\n }\n // -- private ------------------------------------------------------ //\n get placeholderEl() {\n return UiUtil.getShadowRootElement(this, \".wcm-placeholder-block\");\n }\n createPaginationObserver() {\n this.intersectionObserver = new IntersectionObserver(([element]) => {\n if (element.isIntersecting && !(this.search && this.firstFetch)) {\n this.fetchWallets();\n }\n });\n this.intersectionObserver.observe(this.placeholderEl);\n }\n isLastPage() {\n const { wallets, search } = ExplorerCtrl.state;\n const { listings, total } = this.search ? search : wallets;\n return total <= PAGE_ENTRIES || listings.length >= total;\n }\n async fetchWallets() {\n var _a;\n const { wallets, search } = ExplorerCtrl.state;\n const { listings, total, page } = this.search ? search : wallets;\n if (!this.endReached && (this.firstFetch || total > PAGE_ENTRIES && listings.length < total)) {\n try {\n this.loading = true;\n const chains = (_a = OptionsCtrl.state.chains) == null ? void 0 : _a.join(\",\");\n const { listings: newListings } = await ExplorerCtrl.getWallets({\n page: this.firstFetch ? 1 : page + 1,\n entries: PAGE_ENTRIES,\n search: this.search,\n version: 2,\n chains\n });\n const explorerImages = newListings.map((wallet) => UiUtil.getWalletIcon(wallet));\n await Promise.all([\n ...explorerImages.map(async (url) => UiUtil.preloadImage(url)),\n CoreUtil.wait(300)\n ]);\n this.endReached = this.isLastPage();\n } catch (err) {\n console.error(err);\n ToastCtrl.openToast(UiUtil.getErrorMessage(err), \"error\");\n } finally {\n this.loading = false;\n this.firstFetch = false;\n }\n }\n }\n onConnect(listing) {\n if (CoreUtil.isAndroid()) {\n UiUtil.handleMobileLinking(listing);\n } else {\n UiUtil.goToConnectingView(listing);\n }\n }\n onSearchChange(event) {\n const { value } = event.target;\n this.searchDebounce(value);\n }\n // -- render ------------------------------------------------------- //\n render() {\n const { wallets, search } = ExplorerCtrl.state;\n const { listings } = this.search ? search : wallets;\n const isLoading = this.loading && !listings.length;\n const isSearch = this.search.length >= 3;\n let manualWallets = TemplateUtil.manualWalletsTemplate();\n let recomendedWallets = TemplateUtil.recomendedWalletsTemplate(true);\n if (isSearch) {\n manualWallets = manualWallets.filter(\n ({ values }) => UiUtil.caseSafeIncludes(values[0], this.search)\n );\n recomendedWallets = recomendedWallets.filter(\n ({ values }) => UiUtil.caseSafeIncludes(values[0], this.search)\n );\n }\n const isEmpty = !this.loading && !listings.length && !recomendedWallets.length;\n const classes = {\n \"wcm-loading\": isLoading,\n \"wcm-end-reached\": this.endReached || !this.loading,\n \"wcm-empty\": isEmpty\n };\n return html`
${isLoading ? null : manualWallets} ${isLoading ? null : recomendedWallets} ${isLoading ? null : listings.map(\n (listing) => html`${listing ? html` this.onConnect(listing)}\">` : null}`\n )}
${isEmpty ? html`No results found` : null} ${!isEmpty && this.loading ? html`` : null}
`;\n }\n};\nWcmWalletExplorerView.styles = [ThemeUtil.globalCss, styles$1];\n__decorateClass$1([\n state()\n], WcmWalletExplorerView.prototype, \"loading\", 2);\n__decorateClass$1([\n state()\n], WcmWalletExplorerView.prototype, \"firstFetch\", 2);\n__decorateClass$1([\n state()\n], WcmWalletExplorerView.prototype, \"search\", 2);\n__decorateClass$1([\n state()\n], WcmWalletExplorerView.prototype, \"endReached\", 2);\nWcmWalletExplorerView = __decorateClass$1([\n customElement(\"wcm-wallet-explorer-view\")\n], WcmWalletExplorerView);\n\nconst styles = css`wcm-info-footer{flex-direction:column;align-items:center;display:flex;width:100%;padding:5px 0}wcm-text{text-align:center}`;\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nlet WcmWebConnectingView = class extends LitElement {\n // -- lifecycle ---------------------------------------------------- //\n constructor() {\n super();\n this.isError = false;\n this.openWebWallet();\n }\n // -- private ------------------------------------------------------ //\n onFormatAndRedirect(uri) {\n const { desktop, name } = CoreUtil.getWalletRouterData();\n const universalUrl = desktop == null ? void 0 : desktop.universal;\n if (universalUrl) {\n const href = CoreUtil.formatUniversalUrl(universalUrl, uri, name);\n CoreUtil.openHref(href, \"_blank\");\n }\n }\n openWebWallet() {\n const { walletConnectUri } = OptionsCtrl.state;\n const routerData = CoreUtil.getWalletRouterData();\n UiUtil.setRecentWallet(routerData);\n if (walletConnectUri) {\n this.onFormatAndRedirect(walletConnectUri);\n }\n }\n // -- render ------------------------------------------------------- //\n render() {\n const { name, id, image_id } = CoreUtil.getWalletRouterData();\n const { isMobile, isDesktop } = UiUtil.getCachedRouterWalletPlatforms();\n const isMobilePlatform = CoreUtil.isMobile();\n return html`${`${name} web app has opened in a new tab. Go there, accept the connection, and come back`}Retry`;\n }\n};\nWcmWebConnectingView.styles = [ThemeUtil.globalCss, styles];\n__decorateClass([\n state()\n], WcmWebConnectingView.prototype, \"isError\", 2);\nWcmWebConnectingView = __decorateClass([\n customElement(\"wcm-web-connecting-view\")\n], WcmWebConnectingView);\n\nexport { WcmModal, WcmQrCode };\n//# sourceMappingURL=index.js.map\n"],"names":["buffer","base64Js","byteLength","toByteArray","fromByteArray","i","lookup","revLookup","Arr","Uint8Array","Array","code","len","length","charCodeAt","getLens","b64","Error","validLen","indexOf","lens","placeHoldersLen","_byteLength","tmp","arr","curByte","tripletToBase64","num","encodeChunk","uint8","start","end","output","push","join","extraBytes","parts","maxChunkLength","len2","ieee754","offset","isLE","mLen","nBytes","e","m","eLen","eMax","eBias","nBits","d","s","NaN","Infinity","Math","pow","value","c","rt","abs","isNaN","floor","log","LN2","exports","base64","ieee754$1","customInspectSymbol","Symbol","Buffer","SlowBuffer","alloc","INSPECT_MAX_BYTES","K_MAX_LENGTH","kMaxLength","GlobalUint8Array","ArrayBuffer","GlobalArrayBuffer","SharedArrayBuffer","GlobalSharedArrayBuffer","globalThis","createBuffer","RangeError","buf","Object","setPrototypeOf","prototype","arg","encodingOrOffset","TypeError","allocUnsafe","from","fromString","string","encoding","isEncoding","actual","write","slice","isView","arrayView","isInstance","copy","fromArrayBuffer","byteOffset","fromArrayLike","fromArrayView","valueOf","b","obj","isBuffer","checked","numberIsNaN","type","isArray","data","fromObject","toPrimitive","assertSize","size","array","toString","mustMatch","arguments","loweredCase","utf8ToBytes","base64ToBytes","toLowerCase","slowToString","this","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","n","bidirectionalIndexOf","val","dir","arrayIndexOf","call","lastIndexOf","indexSize","arrLength","valLength","String","read","readUInt16BE","foundIndex","found","j","hexWrite","Number","remaining","strLen","parsed","parseInt","substr","utf8Write","blitBuffer","asciiWrite","str","byteArray","asciiToBytes","base64Write","ucs2Write","units","hi","lo","utf16leToBytes","min","res","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","codePoints","MAX_ARGUMENTS_LENGTH","fromCharCode","apply","decodeCodePointsArray","TYPED_ARRAY_SUPPORT","proto","foo","typedArraySupport","console","error","defineProperty","enumerable","get","poolSize","fill","allocUnsafeSlow","_isBuffer","compare","a","x","y","concat","list","pos","set","swap16","swap32","swap64","toLocaleString","equals","inspect","max","replace","trim","target","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","toJSON","_arr","ret","out","hexSliceLookupTable","bytes","checkOffset","ext","checkInt","wrtBigUInt64LE","checkIntBI","BigInt","wrtBigUInt64BE","checkIEEE754","writeFloat","littleEndian","noAssert","writeDouble","newBuf","subarray","readUintLE","readUIntLE","mul","readUintBE","readUIntBE","readUint8","readUInt8","readUint16LE","readUInt16LE","readUint16BE","readUint32LE","readUInt32LE","readUint32BE","readUInt32BE","readBigUInt64LE","defineBigIntMethod","validateNumber","first","last","boundsError","readBigUInt64BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readBigInt64LE","readBigInt64BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUintLE","writeUIntLE","writeUintBE","writeUIntBE","writeUint8","writeUInt8","writeUint16LE","writeUInt16LE","writeUint16BE","writeUInt16BE","writeUint32LE","writeUInt32LE","writeUint32BE","writeUInt32BE","writeBigUInt64LE","writeBigUInt64BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeBigInt64LE","writeBigInt64BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","copyWithin","errors","E","sym","getMessage","Base","constructor","super","writable","configurable","name","stack","message","addNumericalSeparator","range","ERR_OUT_OF_RANGE","checkBounds","ERR_INVALID_ARG_TYPE","ERR_BUFFER_OUT_OF_BOUNDS","input","msg","received","isInteger","INVALID_BASE64_RE","leadSurrogate","split","base64clean","src","dst","alphabet","table","i16","fn","BufferBigIntNotDefined","Blob","BlobOptions","Buffer$1","File","FileOptions","TranscodeEncoding","atob","btoa","constants","isAscii","isUtf8","kStringMaxLength","resolveObjectURL","transcode","wasm","WebAssembly","Instance","Module","Long","low","high","unsigned","isLong","ctz32","clz32","__isLong__","INT_CACHE","UINT_CACHE","fromInt","cachedObj","cache","fromBits","fromNumber","UZERO","ZERO","TWO_PWR_64_DBL","MAX_UNSIGNED_VALUE","TWO_PWR_63_DBL","MIN_VALUE","MAX_VALUE","neg","TWO_PWR_32_DBL","lowBits","highBits","pow_dbl","radix","p","substring","radixToPower","result","power","add","fromValue","TWO_PWR_16_DBL","TWO_PWR_24_DBL","TWO_PWR_24","ONE","UONE","NEG_ONE","LongPrototype","toInt","toNumber","isZero","isNegative","eq","radixLong","div","rem1","rem","remDiv","digits","getHighBits","getHighBitsUnsigned","getLowBits","getLowBitsUnsigned","getNumBitsAbs","bit","isSafeInteger","top11Bits","eqz","isPositive","isOdd","isEven","other","notEquals","neq","ne","lessThan","comp","lt","lessThanOrEqual","lte","le","greaterThan","gt","greaterThanOrEqual","gte","ge","thisNeg","otherNeg","negate","not","addend","a48","a32","a16","a00","b48","b32","b16","c48","c32","c16","c00","subtract","subtrahend","multiply","multiplier","b00","divide","divisor","approx","toUnsigned","shru","shr","shl","log2","ceil","delta","approxRes","approxRem","modulo","mod","countLeadingZeros","clz","countTrailingZeros","ctz","and","or","xor","shiftLeft","numBits","shiftRight","shiftRightUnsigned","shr_u","rotateLeft","rotl","rotateRight","rotr","toSigned","toBytes","toBytesLE","toBytesBE","fromBytes","fromBytesLE","fromBytesBE","fromBigInt","asIntN","toBigInt","lowBigInt","isNumeric","mathceil","mathfloor","bignumberError","tooManyDigits","BASE","LOG_BASE","MAX_SAFE_INTEGER","POWS_TEN","SQRT_BASE","MAX","clone","configObject","convertBase","parseNumeric","pow2_53","random53bitInt","P","BigNumber","DECIMAL_PLACES","ROUNDING_MODE","TO_EXP_NEG","TO_EXP_POS","MIN_EXP","MAX_EXP","CRYPTO","MODULO_MODE","POW_PRECISION","FORMAT","prefix","groupSize","secondaryGroupSize","groupSeparator","decimalSeparator","fractionGroupSize","fractionGroupSeparator","suffix","ALPHABET","alphabetHasNormalDecimalDigits","v","caseChanged","isNum","_isBigNumber","test","search","intCheck","round","DEBUG","charAt","toUpperCase","format","rm","id","c0","coeffToString","toExponential","toFixedPoint","maxOrMin","args","k","normalise","pop","sd","r","ni","rd","xc","pows10","ROUND_UP","ROUND_DOWN","ROUND_CEIL","ROUND_FLOOR","ROUND_HALF_UP","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_CEIL","ROUND_HALF_FLOOR","EUCLID","config","hasOwnProperty","crypto","getRandomValues","randomBytes","EXPONENTIAL_AT","RANGE","isBigNumber","maximum","minimum","random","dp","rand","Uint32Array","splice","sum","plus","decimal","toBaseOut","baseIn","baseOut","arrL","reverse","sign","callerIsToString","base","temp","xlo","xhi","carry","klo","khi","aL","bL","cmp","more","prod","prodL","q","qc","remL","rem0","xi","xL","yc0","yL","yz","yc","bitFloor","basePrefix","dotAfter","dotBefore","isInfinityOrNaN","whitespaceOrPlus","p1","p2","absoluteValue","comparedTo","decimalPlaces","dividedBy","dividedToIntegerBy","idiv","exponentiatedBy","half","isModExp","nIsBig","nIsNeg","nIsOdd","times","integerValue","isEqualTo","isGreaterThan","isGreaterThanOrEqualTo","isLessThan","isLessThanOrEqualTo","minus","t","xLTy","xe","ye","multipliedBy","xcL","ycL","ylo","yhi","zc","sqrtBase","negated","precision","shiftedBy","squareRoot","sqrt","rep","toFixed","toFormat","g1","g2","intPart","fractionPart","isNeg","intDigits","RegExp","toFraction","md","d0","d1","d2","exp","n0","n1","toPrecision","toStringTag","for","z","l","zs","base32Encoding","chars","bits","base32","parse","opts","_parse","loose","stringify","_stringify","_opts$out","codes","SyntaxError","written","_i","_opts$pad","pad","mask","aspromise","asPromise","ctx","params","index","pending","Promise","resolve","reject","err","s64","encode","chunk","invalidEncoding","decode","eventemitter","EventEmitter","_listeners","on","evt","EventEmitter$1","off","listeners","emit","float","factory","Float32Array","f32","f8b","writeFloat_f32_cpy","writeFloat_f32_rev","readFloat_f32_cpy","readFloat_f32_rev","writeFloat_ieee754","writeUint","exponent","readFloat_ieee754","readUint","uint","mantissa","bind","Float64Array","f64","writeDouble_f64_cpy","writeDouble_f64_rev","readDouble_f64_cpy","readDouble_f64_rev","writeDouble_ieee754","off0","off1","readDouble_ieee754","inquire_1","inquire","moduleName","eval","keys","utf8","c1","c2","pool_1","pool","SIZE","slab","LongBits","util","require$$0","zero","zzEncode","zzDecode","zeroHash","isString","toLong","Boolean","fromHash","hash","toHash","part0","part1","part2","merge","ifNotSet","newError","CustomError","properties","captureStackTrace","create","require$$1","require$$2","require$$3","require$$4","require$$5","require$$6","require$$7","isNode","global","process","versions","node","window","self","emptyArray","freeze","emptyObject","isObject","isset","isSet","prop","_Buffer_from","_Buffer_allocUnsafe","newBuffer","sizeOrArray","dcodeIO","key2Re","key32Re","key64Re","longToHash","longFromHash","lcFirst","ProtocolError","oneOfGetter","fieldNames","fieldMap","oneOfSetter","toJSONOptions","longs","enums","json","_configure","writer","Writer","BufferWriter","Op","next","noop","State","head","tail","states","writeByte","writeVarint32","VarintOp","writeVarint64","writeFixed32","Writer$3","_push","uint32","int32","sint32","uint64","int64","sint64","bool","fixed32","sfixed32","fixed64","sfixed64","double","writeBytes","base64$2","fork","reset","ldelim","finish","BufferWriter_","BufferWriter$1","writer_buffer","writeStringBuffer","writeBytesBuffer","reader","Reader","BufferReader","indexOutOfRange","writeLength","create_array","readLongVarint","readFixed32_end","readFixed64","_slice","Reader$3","nativeBuffer","skip","skipType","wireType","BufferReader_","BufferReader$1","util$5","reader_buffer","Reader$2","service","Service","rpcImpl","requestDelimited","responseDelimited","util$3","rpcCall","method","requestCtor","responseCtor","request","callback","response","setTimeout","endedByRPC","roots","protobuf","configure","build","rpc","minimal","proto_1","google","com","$protobuf","_interopRequireWildcard","_getRequireWildcardCache","WeakMap","__esModule","default","has","__proto__","getOwnPropertyDescriptor","u","$Reader","$Writer","$util","$root","hashgraph","hedera","mirror","api","ConsensusTopicQuery","ks","topicID","consensusStartTime","consensusEndTime","w","TopicID","Timestamp","getTypeUrl","typeUrlPrefix","ConsensusTopicResponse","consensusTimestamp","runningHash","sequenceNumber","runningHashVersion","chunkInfo","ConsensusMessageChunkInfo","ConsensusService","subscribeTopic","AddressBookQuery","fileId","FileID","NetworkService","getNodes","NodeAddress","hapi","addressbook","NodeCreateTransactionBody","gossipEndpoint","serviceEndpoint","accountId","description","gossipCaCertificate","grpcCertificateHash","adminKey","declineReward","AccountID","ServiceEndpoint","Key","NodeUpdateTransactionBody","nodeId","StringValue","BytesValue","BoolValue","NodeDeleteTransactionBody","state","hints","HintsPartyId","partyId","numParties","HintsKeySet","adoptionTime","key","nextKey","PreprocessedKeys","aggregationKey","verificationKey","PreprocessingVoteId","constructionId","PreprocessingVote","$oneOfFields","preprocessedKeys","congruentNodeId","NodePartyId","HintsScheme","nodePartyIds","HintsConstruction","sourceRosterHash","targetRosterHash","gracePeriodEndTime","preprocessingStartTime","hintsScheme","CRSStage","valuesById","values","CRSState","crs","stage","nextContributingNodeId","contributionEndTime","UInt64Value","history","ProofKeySet","ProofKey","History","addressBookHash","metadata","HistoryProof","targetProofKeys","sourceAddressBookHash","targetHistory","proof","HistoryProofConstruction","sourceProof","assemblyStartTime","targetProof","failureReason","ConstructionNodeId","HistoryProofVote","HistorySignature","signature","RecordedHistorySignature","signingTime","historySignature","services","auxiliary","HintsKeyPublicationTransactionBody","hintsKey","HintsPreprocessingVoteTransactionBody","vote","HintsPartialSignatureTransactionBody","partialSignature","CrsPublicationTransactionBody","newCrs","HistoryProofSignatureTransactionBody","HistoryProofKeyPublicationTransactionBody","proofKey","HistoryProofVoteTransactionBody","platform","event","EventConsensusData","consensusOrder","EventCore","parents","creatorNodeId","birthRound","timeCreated","version","EventDescriptor","SemanticVersion","generation","TransactionGroupRole","EventTransaction","applicationTransaction","stateSignatureTransaction","transactionGroupRole","StateSignatureTransaction","GossipEvent","transactions","eventCore","TransactionList","transactionList","Transaction","AddressBookService","createNode","TransactionResponse","deleteNode","updateNode","nodeTransactionPrecheckCode","cost","ResponseCodeEnum","body","sigs","sigMap","bodyBytes","signedTransactionBytes","TransactionBody","SignatureList","SignatureMap","maxCustomFees","transactionID","nodeAccountID","transactionFee","transactionValidDuration","generateRecord","memo","batchKey","contractCall","contractCreateInstance","contractUpdateInstance","cryptoAddLiveHash","cryptoCreateAccount","cryptoDelete","cryptoDeleteLiveHash","cryptoTransfer","cryptoUpdateAccount","fileAppend","fileCreate","fileDelete","fileUpdate","systemDelete","systemUndelete","contractDeleteInstance","consensusCreateTopic","consensusUpdateTopic","consensusDeleteTopic","consensusSubmitMessage","uncheckedSubmit","tokenCreation","tokenFreeze","tokenUnfreeze","tokenGrantKyc","tokenRevokeKyc","tokenDeletion","tokenUpdate","tokenMint","tokenBurn","tokenWipe","tokenAssociate","tokenDissociate","scheduleCreate","scheduleDelete","scheduleSign","tokenFeeScheduleUpdate","tokenPause","tokenUnpause","cryptoApproveAllowance","cryptoDeleteAllowance","ethereumTransaction","nodeStakeUpdate","utilPrng","tokenUpdateNfts","nodeCreate","nodeUpdate","nodeDelete","tokenReject","tokenAirdrop","tokenCancelAirdrop","tokenClaimAirdrop","hintsPreprocessingVote","hintsKeyPublication","hintsPartialSignature","historyProofSignature","historyProofKeyPublication","historyProofVote","crsPublication","atomicBatch","TransactionID","Duration","ContractCallTransactionBody","ContractCreateTransactionBody","ContractUpdateTransactionBody","CryptoAddLiveHashTransactionBody","CryptoCreateTransactionBody","CryptoDeleteTransactionBody","CryptoDeleteLiveHashTransactionBody","CryptoTransferTransactionBody","CryptoUpdateTransactionBody","FileAppendTransactionBody","FileCreateTransactionBody","FileDeleteTransactionBody","FileUpdateTransactionBody","SystemDeleteTransactionBody","SystemUndeleteTransactionBody","ContractDeleteTransactionBody","FreezeTransactionBody","ConsensusCreateTopicTransactionBody","ConsensusUpdateTopicTransactionBody","ConsensusDeleteTopicTransactionBody","ConsensusSubmitMessageTransactionBody","UncheckedSubmitBody","TokenCreateTransactionBody","TokenFreezeAccountTransactionBody","TokenUnfreezeAccountTransactionBody","TokenGrantKycTransactionBody","TokenRevokeKycTransactionBody","TokenDeleteTransactionBody","TokenUpdateTransactionBody","TokenMintTransactionBody","TokenBurnTransactionBody","TokenWipeAccountTransactionBody","TokenAssociateTransactionBody","TokenDissociateTransactionBody","ScheduleCreateTransactionBody","ScheduleDeleteTransactionBody","ScheduleSignTransactionBody","TokenFeeScheduleUpdateTransactionBody","TokenPauseTransactionBody","TokenUnpauseTransactionBody","CryptoApproveAllowanceTransactionBody","CryptoDeleteAllowanceTransactionBody","EthereumTransactionBody","NodeStakeUpdateTransactionBody","UtilPrngTransactionBody","TokenUpdateNftsTransactionBody","TokenRejectTransactionBody","TokenAirdropTransactionBody","TokenCancelAirdropTransactionBody","TokenClaimAirdropTransactionBody","AtomicBatchTransactionBody","CustomFeeLimit","ShardID","shardNum","RealmID","realmNum","TokenID","tokenNum","BlockHashAlgorithm","accountNum","alias","NftID","token_ID","serialNumber","fileNum","ContractID","contractNum","evmAddress","topicNum","ScheduleID","scheduleNum","transactionValidStart","accountID","scheduled","nonce","AccountAmount","amount","isApproval","TransferList","accountAmounts","NftTransfer","senderAccountID","receiverAccountID","TokenTransferList","transfers","nftTransfers","token","expectedDecimals","UInt32Value","Fraction","numerator","denominator","TokenType","SubType","TokenSupplyType","TokenKeyValidation","TokenFreezeStatus","TokenKycStatus","TokenPauseStatus","contractID","ed25519","RSA_3072","ECDSA_384","thresholdKey","keyList","ECDSASecp256k1","delegatableContractId","ThresholdKey","KeyList","threshold","Signature","contract","thresholdSignature","signatureList","ThresholdSignature","SignaturePair","pubKeyPrefix","sigPair","HederaFunctionality","FeeComponents","constant","bpt","vpt","rbh","sbh","gas","tv","bpr","sbpr","TransactionFeeSchedule","fees","hederaFunctionality","feeData","FeeData","nodedata","networkdata","servicedata","subType","FeeSchedule","transactionFeeSchedule","expiryTime","TimestampSeconds","CurrentAndNextFeeSchedule","currentFeeSchedule","nextFeeSchedule","ipAddressV4","port","domainName","ipAddress","portno","RSA_PubKey","nodeAccountId","nodeCertHash","stake","NodeAddressBook","nodeAddress","major","minor","patch","pre","Setting","ServicesConfigurationList","nameValue","TokenRelationship","tokenId","symbol","balance","kycStatus","freezeStatus","decimals","automaticAssociation","TokenBalance","TokenBalances","tokenBalances","TokenAssociation","StakingInfo","stakePeriodStart","pendingReward","stakedToMe","stakedAccountId","stakedNodeId","PendingAirdropId","senderId","receiverId","fungibleTokenType","nonFungibleToken","PendingAirdropValue","seconds","nanos","fileID","expirationTime","startHour","startMin","endHour","endMin","updateFile","fileHash","startTime","freezeType","FreezeType","functionParameters","initcode","initialBalance","proxyAccountID","autoRenewPeriod","constructorParameters","shardID","realmID","newRealmAdminKey","maxAutomaticTokenAssociations","autoRenewAccountId","memoWrapper","Int32Value","LiveHash","duration","liveHash","sendRecordThreshold","receiveRecordThreshold","receiverSigRequired","transferAccountID","deleteAccountID","accountOfLiveHash","liveHashToDelete","tokenTransfers","accountIDToUpdate","proxyFraction","sendRecordThresholdWrapper","receiveRecordThresholdWrapper","receiverSigRequiredWrapper","cryptoAllowances","nftAllowances","tokenAllowances","CryptoAllowance","NftAllowance","TokenAllowance","owner","spender","serialNumbers","approvedForAll","delegatingSpender","NftRemoveAllowance","ethereumData","callData","maxGasAllowance","contents","transferContractID","permanentRemoval","feeExemptKeyList","customFees","submitKey","autoRenewAccount","feeScheduleKey","FixedCustomFee","FractionalFee","fractionalAmount","minimumAmount","maximumAmount","netOfTransfers","FixedFee","denominatingTokenId","RoyaltyFee","exchangeValueFraction","fallbackFee","CustomFee","fixedFee","fractionalFee","royaltyFee","feeCollectorAccountId","allCollectorsAreExempt","AssessedCustomFee","effectivePayerAccountId","FixedCustomFeeList","FeeExemptKeyList","initialTransactionID","total","number","transactionBytes","initialSupply","treasury","kycKey","freezeKey","wipeKey","supplyKey","freezeDefault","expiry","tokenType","supplyType","maxSupply","pauseKey","metadataKey","account","keyVerificationMode","tokens","rejections","TokenReference","fungibleToken","nft","pendingAirdrops","scheduledTransactionBody","payerAccountID","waitForExpiry","SchedulableTransactionBody","scheduleID","nodeStake","endOfStakingPeriod","maxStakingRewardRatePerHbar","nodeRewardFeeFraction","stakingPeriodsStored","stakingPeriod","stakingRewardFeeFraction","stakingStartThreshold","stakingRewardRate","reservedStakingRewards","unreservedStakingRewardBalance","rewardBalanceThreshold","maxStakeRewarded","maxTotalReward","NodeStake","maxStake","minStake","rewardRate","stakeNotRewarded","stakeRewarded","ConsensusGetTopicInfoQuery","header","QueryHeader","ConsensusGetTopicInfoResponse","topicInfo","ResponseHeader","ConsensusTopicInfo","ResponseType","payment","responseType","stateProof","ledgerId","createTopic","updateTopic","deleteTopic","submitMessage","getTopicInfo","Query","Response","getByKey","getBySolidityID","contractCallLocal","contractGetInfo","contractGetBytecode","ContractGetRecords","cryptogetAccountBalance","cryptoGetAccountRecords","cryptoGetInfo","cryptoGetLiveHash","cryptoGetProxyStakers","fileGetContents","fileGetInfo","transactionGetReceipt","transactionGetRecord","transactionGetFastRecord","consensusGetTopicInfo","networkGetVersionInfo","tokenGetInfo","scheduleGetInfo","tokenGetAccountNftInfos","tokenGetNftInfo","tokenGetNftInfos","networkGetExecutionTime","accountDetails","GetByKeyQuery","GetBySolidityIDQuery","ContractCallLocalQuery","ContractGetInfoQuery","ContractGetBytecodeQuery","ContractGetRecordsQuery","CryptoGetAccountBalanceQuery","CryptoGetAccountRecordsQuery","CryptoGetInfoQuery","CryptoGetLiveHashQuery","CryptoGetStakersQuery","FileGetContentsQuery","FileGetInfoQuery","TransactionGetReceiptQuery","TransactionGetRecordQuery","TransactionGetFastRecordQuery","NetworkGetVersionInfoQuery","TokenGetInfoQuery","ScheduleGetInfoQuery","TokenGetAccountNftInfosQuery","TokenGetNftInfoQuery","TokenGetNftInfosQuery","NetworkGetExecutionTimeQuery","GetAccountDetailsQuery","EntityID","GetByKeyResponse","entities","solidityID","GetBySolidityIDResponse","maxResultSize","ContractCallLocalResponse","functionResult","ContractFunctionResult","ContractNonceInfo","contractId","ContractLoginfo","topic","bloom","logInfo","createdContractIDs","contractNonces","contractCallResult","errorMessage","gasUsed","signerNonce","Int64Value","ContractGetInfoResponse","contractInfo","ContractInfo","tokenRelationships","contractAccountID","storage","deleted","stakingInfo","ContractGetBytecodeResponse","bytecode","ContractGetRecordsResponse","records","TransactionRecord","tokenTransferLists","assessedCustomFees","automaticTokenAssociations","paidStakingRewards","newPendingAirdrops","receipt","transactionHash","contractCreateResult","transferList","scheduleRef","parentConsensusTimestamp","ethereumHash","prngBytes","prngNumber","TransactionReceipt","PendingAirdropRecord","pendingAirdropId","pendingAirdropValue","status","exchangeRate","topicSequenceNumber","topicRunningHash","topicRunningHashVersion","tokenID","newTotalSupply","scheduledTransactionID","ExchangeRateSet","ExchangeRate","hbarEquiv","centEquiv","currentRate","nextRate","CryptoGetAccountBalanceResponse","CryptoGetAccountRecordsResponse","CryptoGetInfoResponse","accountInfo","AccountInfo","liveHashes","proxyReceived","generateSendRecordThreshold","generateReceiveRecordThreshold","ownedNfts","ethereumNonce","CryptoGetLiveHashResponse","ProxyStaker","AllProxyStakers","proxyStaker","CryptoGetStakersResponse","stakers","FileGetContentsResponse","fileContents","FileContents","FileGetInfoResponse","fileInfo","FileInfo","includeDuplicates","includeChildReceipts","TransactionGetReceiptResponse","duplicateTransactionReceipts","childTransactionReceipts","includeChildRecords","TransactionGetRecordResponse","duplicateTransactionRecords","childTransactionRecords","transactionRecord","TransactionGetFastRecordResponse","NetworkGetVersionInfoResponse","hapiProtoVersion","hederaServicesVersion","transactionIds","NetworkGetExecutionTimeResponse","executionTimes","TokenInfo","totalSupply","defaultFreezeStatus","defaultKycStatus","pauseStatus","TokenGetInfoResponse","tokenInfo","ScheduleInfo","deletionTime","executionTime","signers","creatorAccountID","ScheduleGetInfoResponse","scheduleInfo","TokenGetAccountNftInfosResponse","nfts","TokenNftInfo","nftID","creationTime","spenderId","TokenGetNftInfoResponse","TokenGetNftInfosResponse","GetAccountDetailsResponse","AccountDetails","grantedCryptoAllowances","grantedNftAllowances","grantedTokenAllowances","contractAccountId","proxyAccountId","GrantedCryptoAllowance","GrantedNftAllowance","GrantedTokenAllowance","contractGetBytecodeResponse","contractGetRecordsResponse","CryptoService","createAccount","updateAccount","approveAllowances","deleteAllowances","addLiveHash","deleteLiveHash","getLiveHash","getAccountRecords","cryptoGetBalance","getAccountInfo","getTransactionReceipts","getTxRecordByTxID","FileService","createFile","deleteFile","appendContent","getFileContent","getFileInfo","FreezeService","getVersionInfo","getAccountDetails","getExecutionTime","ScheduleService","createSchedule","signSchedule","deleteSchedule","getScheduleInfo","SmartContractService","createContract","updateContract","contractCallMethod","contractCallLocalMethod","getContractInfo","getTxRecordByContractID","deleteContract","callEthereum","ThrottleGroup","operations","milliOpsPerSec","ThrottleBucket","throttleGroups","burstPeriodMs","ThrottleDefinitions","throttleBuckets","TokenService","createToken","updateToken","mintToken","burnToken","deleteToken","wipeTokenAccount","freezeTokenAccount","unfreezeTokenAccount","grantKycToTokenAccount","revokeKycFromTokenAccount","associateTokens","dissociateTokens","updateTokenFeeSchedule","getTokenInfo","getTokenNftInfo","pauseToken","unpauseToken","updateNfts","rejectToken","airdropTokens","cancelAirdrop","claimAirdrop","SignedTransaction","UtilService","prng","TokenUnitBalance","SingleAccountBalances","tokenUnitBalances","hbarBalance","AllAccountBalances","allAccounts","ContractActions","contractActions","ContractAction","ContractActionType","CallOperationType","callType","callingAccount","callingContract","recipientAccount","recipientContract","targetedAddress","revertReason","callDepth","callOperationType","ContractBytecode","runtimeBytecode","ContractStateChanges","contractStateChanges","ContractStateChange","storageChanges","StorageChange","slot","valueRead","valueWritten","HashAlgorithm","HashObject","algorithm","RecordStreamFile","recordStreamItems","sidecars","startObjectRunningHash","endObjectRunningHash","blockNumber","RecordStreamItem","SidecarMetadata","transaction","record","types","SidecarType","SidecarFile","sidecarRecords","TransactionSidecarRecord","migration","stateChanges","actions","SignatureFile","fileSignature","metadataSignature","SignatureObject","checksum","hashObject","SignatureType","DoubleValue","FloatValue","lib","google_1","com_1","Writer_1","Reader_1","_long","_interopRequireDefault","$proto","BadKeyError","messageOrCause","cause","getDefaultExportFromCjs","browser","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","runClearTimeout","marker","clearTimeout","queue","draining","currentQueue","queueIndex","cleanUpNextTick","drainQueue","timeout","run","Item","nextTick","title","env","argv","addListener","once","removeListener","removeAllListeners","prependListener","prependOnceListener","binding","cwd","chdir","umask","browserExports","process$1","copyProps","SafeBuffer","module","MAX_BYTES","MAX_UINT32","msCrypto","browserModule","cb","generated","inherits_browserModule","ctor","superCtor","super_","TempCtor","R","Reflect","ReflectApply","receiver","Function","ReflectOwnKeys","ProcessEmitWarning","warning","warn","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","NumberIsNaN","init","events","eventsModule","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","_getMaxListeners","that","_addListener","prepend","existing","newListener","unshift","warned","emitter","count","onceWrapper","fired","wrapFn","_onceWrap","wrapped","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","spliceOne","errorListener","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","handler","flags","addEventListener","wrapListener","removeEventListener","getPrototypeOf","setMaxListeners","getMaxListeners","doError","er","context","position","originalListener","shift","rawListeners","eventNames","streamBrowser","shams","iterator","symObj","_","syms","propertyIsEnumerable","descriptor","hasSymbols","esObjectAtoms","esErrors","_eval","EvalError","ref","ReferenceError","syntax","uri","URIError","gOPD","$gOPD","gopd","$defineProperty","esDefineProperty","origSymbol","hasSymbolSham","toStr","concatty","implementation","bound","arrLike","slicy","boundLength","boundArgs","joiner","joiny","Empty","functionBind","functionCall","functionApply","reflectApply","$apply","$call","$reflectApply","actualApply","$TypeError","$actualApply","callBindApplyHelpers","hasProtoAccessor","callBind","desc","$Object","$getPrototypeOf","$hasOwn","undefined","$Error","$EvalError","$RangeError","$ReferenceError","$SyntaxError","$URIError","require$$8","require$$9","require$$10","require$$11","require$$12","$Function","getEvalledConstructor","expressionSyntax","require$$13","require$$14","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","require$$15","getDunderProto","require$$16","getProto","require$$17","require$$18","needsEval","TypedArray","INTRINSICS","AggregateError","Atomics","BigInt64Array","BigUint64Array","DataView","Date","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","FinalizationRegistry","Int8Array","Int16Array","Int32Array","JSON","Map","parseFloat","Proxy","Set","Uint8ClampedArray","Uint16Array","WeakRef","WeakSet","errorProto","doEval","gen","LEGACY_ALIASES","require$$19","hasOwn","require$$20","$concat","$spliceApply","$replace","$strSlice","$exec","exec","rePropName","reEscapeChar","getBaseIntrinsic","allowMissing","intrinsicName","getIntrinsic","match","quote","subString","stringToPath","intrinsicBaseName","intrinsic","intrinsicRealName","skipFurtherCaching","isOwn","part","GetIntrinsic","callBindBasic","$indexOf","callBound","hasToStringTag","$toString","isStandardArguments","isLegacyArguments","callee","supportsStandardArguments","isArguments","GeneratorFunction","fnToStr","isFnRegex","isGeneratorFunction","generatorFunc","getGeneratorFunc","badArrayLike","isCallableMarker","constructorRegex","isES6ClassFn","fnStr","tryFunctionObject","isIE68","isDDA","document","all","strClass","isCallable","forEach","thisArg","forEachArray","forEachString","object","forEachObject","possibleTypedArrayNames","possibleNames","g","availableTypedArrays","defineDataProperty","property","nonEnumerable","nonWritable","nonConfigurable","hasPropertyDescriptors","hasArrayLengthDefineBug","hasPropertyDescriptors_1","define","hasDescriptors","$floor","setFunctionLength","functionLengthIsConfigurable","functionLengthIsWritable","applyBind","originalFunction","func","adjustedLength","typedArrays","$slice","typedArray","superProto","whichTypedArray","tag","getter","trySlices","tryTypedArrays","isTypedArray","isArgumentsObject","uncurryThis","f","BigIntSupported","SymbolSupported","ObjectToString","numberValue","stringValue","booleanValue","bigIntValue","symbolValue","checkBoxedPrimitive","prototypeValueOf","isMapToString","isSetToString","isWeakMapToString","isWeakSetToString","isArrayBufferToString","isArrayBuffer","working","isDataViewToString","isDataView","isPromise","then","catch","isArrayBufferView","isUint8Array","isUint8ClampedArray","isUint16Array","isUint32Array","isInt8Array","isInt16Array","isInt32Array","isFloat32Array","isFloat64Array","isBigInt64Array","isBigUint64Array","isMap","isWeakMap","isWeakSet","SharedArrayBufferCopy","isSharedArrayBufferToString","isSharedArrayBuffer","isNumberObject","isStringObject","isBooleanObject","isBigIntObject","isSymbolObject","isAsyncFunction","isMapIterator","isSetIterator","isGeneratorObject","isWebAssemblyCompiledModule","isBoxedPrimitive","isAnyArrayBuffer","isBufferBrowser","getOwnPropertyDescriptors","descriptors","formatRegExp","objects","isNull","deprecate","noDeprecation","throwDeprecation","traceDeprecation","trace","debugs","debugEnvRegex","NODE_DEBUG","debugEnv","seen","stylize","stylizeNoColor","depth","colors","isBoolean","showHidden","_extend","isUndefined","customInspect","stylizeWithColor","formatValue","styleType","style","styles","recurseTimes","isFunction","primitive","simple","isNumber","formatPrimitive","visibleKeys","idx","arrayToHash","isError","formatError","isRegExp","isDate","braces","toUTCString","formatProperty","formatArray","map","reduce","prev","cur","reduceToSingleString","line","ar","re","objectToString","o","debuglog","pid","bold","italic","underline","inverse","white","grey","black","blue","cyan","green","magenta","red","yellow","special","boolean","null","date","regexp","isNullOrUndefined","isSymbol","isNativeError","isPrimitive","months","time","getHours","getMinutes","getSeconds","getDate","getMonth","inherits","origin","kCustomPromisifiedSymbol","callbackifyOnRejected","reason","newReason","promisify","original","promiseResolve","promiseReject","promise","defineProperties","custom","callbackify","callbackified","maybeCb","rej","enumerableOnly","symbols","filter","_objectSpread","source","_defineProperty","_toPropertyKey","_createClass","Constructor","protoProps","staticProps","props","_defineProperties","hint","prim","_toPrimitive","buffer_list","BufferList","instance","_classCallCheck","entry","hasStrings","_getString","_getBuffer","nb","options","emitErrorAndCloseNT","emitErrorNT","emitCloseNT","_writableState","emitClose","_readableState","destroy_1$1","destroy","_this","readableDestroyed","destroyed","writableDestroyed","errorEmitted","_destroy","undestroy","reading","ended","endEmitted","ending","finalCalled","prefinished","finished","errorOrDestroy","stream","rState","wState","autoDestroy","createErrorType","NodeError","_Base","subClass","superClass","arg1","arg2","arg3","oneOf","expected","thing","determiner","this_len","endsWith","errorsBrowser","ERR_INVALID_OPT_VALUE","state$8","getHighWaterMark","duplexKey","isDuplex","hwm","highWaterMark","highWaterMarkFrom","objectMode","localStorage","browser$f","CorkedRequest","corkReq","pendingcb","corkedRequestsFree","onCorkedFinish","Duplex","_stream_writable$1","Writable","WritableState","internalUtil","Stream","OurUint8Array","realHasInstance","destroyImpl","_require$codes","ERR_METHOD_NOT_IMPLEMENTED","ERR_MULTIPLE_CALLBACK","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_DESTROYED","ERR_STREAM_NULL_VALUES","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","nop","writableObjectMode","needDrain","noDecode","decodeStrings","defaultEncoding","writing","corked","sync","bufferProcessing","onwrite","writecb","writelen","onwriteStateUpdate","finishMaybe","needFinish","bufferedRequest","clearBuffer","afterWrite","lastBufferedRequest","bufferedRequestCount","_write","writev","_writev","final","_final","doWrite","holder","allBuffers","isBuf","callFinal","need","prefinish","requireInherits_browser","getBuffer","current","hasInstance","pipe","_uint8ArrayToBuffer","writeAfterEnd","validChunk","newChunk","decodeChunk","writeOrBuffer","cork","uncork","setDefaultEncoding","endWritable","_undestroy","objectKeys","_stream_duplex$1","Readable","allowHalfOpen","readable","onend","onEndNT","StringDecoder","enc","nenc","retried","_normalizeEncoding","normalizeEncoding","text","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","utf8CheckByte","byte","utf8CheckExtraBytes","string_decoder","utf8CheckIncomplete","ERR_STREAM_PREMATURE_CLOSE","endOfStream","eos","called","_len","_key","onlegacyfinish","onfinish","writableEnded","readableEnded","onerror","onclose","onrequest","req","setHeader","abort","isRequest","_Object$setPrototypeO","kLastResolve","kLastReject","kError","kEnded","kLastPromise","kHandlePromise","kStream","createIterResult","done","readAndResolve","iter","onReadable","AsyncIteratorPrototype","ReadableStreamAsyncIteratorPrototype","lastPromise","wrapForNext","asyncIterator","_this2","async_iterator","_Object$create","fromBrowser","_stream_readable$1","ReadableState","eventsExports","EElistenerCount","debug","debugUtil","createReadableStreamAsyncIterator","ERR_STREAM_PUSH_AFTER_EOF","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","kProxyEvents","readableObjectMode","pipes","pipesCount","flowing","needReadable","emittedReadable","readableListening","resumeScheduled","paused","awaitDrain","readingMore","decoder","_read","readableAddChunk","addToFront","skipChunkCheck","emitReadable","emitReadable_","onEofChunk","chunkInvalid","maybeReadMore","addChunk","isPaused","setEncoding","content","clear","MAX_HWM","howMuchToRead","computeNewHighWaterMark","flow","maybeReadMore_","updateReadableListening","resume","nReadingNextTick","resume_","fromList","consume","endReadable","endReadableNT","xs","nOrig","doRead","dest","pipeOpts","endFn","stdout","stderr","unpipe","onunpipe","unpipeInfo","hasUnpiped","ondrain","ondata","cleanedUp","pipeOnDrain","pause","dests","ev","wrap","_fromList","iterable","_stream_transform$1","Transform","ERR_TRANSFORM_ALREADY_TRANSFORMING","ERR_TRANSFORM_WITH_LENGTH_0","afterTransform","ts","_transformState","transforming","writechunk","rs","needTransform","writeencoding","transform","_transform","flush","_flush","err2","_stream_passthrough$1","PassThrough","ERR_MISSING_ARGS","to","pipeline_1","streams","popCallback","destroys","closed","destroyer","streamBrowserify","EE","pipeline","_isStdio","didOnEnd","cleanup","HashBase","blockSize","_block","_blockSize","_blockOffset","_length","_finalized","update","digest","useUint8Array","useArrayBuffer","toBuffer","block","_update","_digest","hashBase","ARRAY16","MD5","_a","_b","_c","_d","fnF","fnG","fnH","fnI","M","md5_js","zl","zr","sl","sr","hl","hr","RIPEMD160","_e","fn1","fn2","fn3","fn4","fn5","words","al","bl","cl","dl","el","br","cr","dr","tl","tr","Hash","finalSize","_finalSize","accum","assigned","remainder","_hash","K","W","Sha","_w","rotl30","ft","H","sha$1","Sha1","rotl5","sha1","Sha256","ch","maj","sigma0","sigma1","gamma0","_f","_g","_h","h","T1","T2","sha256$3","Sha224","sha224$1","Sha512","Ch","xl","Gamma0","Gamma0l","Gamma1","Gamma1l","getCarry","_ah","_bh","_ch","_dh","_eh","_fh","_gh","_hh","_al","_bl","_cl","_dl","_el","_fl","_gl","_hl","ah","bh","dh","eh","fh","gh","hh","fl","gl","xh","gamma0l","gamma1","gamma1l","Wi7h","Wi7l","Wi16h","Wi16l","Wil","Wih","majh","majl","sigma0h","sigma0l","sigma1h","sigma1l","Kih","Kil","chh","chl","t1l","t1h","t2l","t2h","writeInt64BE","sha512$2","SHA512","Sha384","sha384$1","sha_jsModule","Algorithm","sha","sha224","sha256","sha384","sha512","CipherBase","hashMode","_finalOrDigest","__final","_decoder","_encoding","inputEnc","outputEnc","bufferData","outData","_toString","setAutoPadding","getAuthTag","setAuthTag","setAAD","fin","cipherBase","browser$e","alg","ZEROS","blocksize","Hmac","_alg","ipad","_ipad","opad","_opad","md5","Legacy","browser$d","MAX_ALLOC","precondition","iterations","keylen","defaultEncoding_1","checkParameters","sizes","rmd160","ripemd160","saltLen","shaFunc","rmd160Func","getDigest","ipad1","ipad2","syncBrowser","password","salt","hmac","DK","block1","destPos","hLen","T","U","ZERO_BUF","subtle","toBrowser","checks","getNextTick","queueMicrotask","setImmediate","browserPbkdf2","algo","importKey","deriveBits","async","resolvePromise","prom","checkNative","resp","pbkdf2","pbkdf2Sync","utils","ip","inL","inR","outL","outR","rip","pc1","r28shl","pc2table","pc2","expand","sTable","substitute","permuteTable","utils$C","permute","padSplit","group","minimalisticAssert","assert","Cipher","_init","bufferOff","padding","cipher","_updateDecrypt","_updateEncrypt","_buffer","_flushBuffer","inputOff","outputOff","_finalEncrypt","_finalDecrypt","_pad","_unpad","equal","DESState","DES","_desState","deriveKeys","des","shiftTable","kL","kR","inp","inOff","outOff","_encrypt","_decrypt","lStart","rStart","keyL","keyR","assert$o","CBCState","iv","cbc","instantiate","CBC","_cbcInit","_cbcState","EDEState","k1","k2","k3","ciphers","EDE","_edeState","ede","modes","modeName","mode","decrypt","_des","des3","browserifyDes","ecb","encrypt","_cipher","encryptBlock","decryptBlock","bufferXor","_prev","encryptStart","_cache","cfb","encryptByte","byteParam","cfb8","shiftIn","cfb1","getBlock","ofb","incr32_1","item","incr32","encryptBlockRaw","ctr","chunkNum","modeModules","ECB","CFB","CFB8","CFB1","OFB","CTR","GCM","asUInt32Array","scrubVec","cryptBlock","keySchedule","SUB_MIX","SBOX","nRounds","t0","t1","t2","t3","SUB_MIX0","SUB_MIX1","SUB_MIX2","SUB_MIX3","s0","s1","s2","s3","ksRow","RCON","G","INV_SBOX","INV_SUB_MIX","sx","x2","x4","x8","AES","_reset","keySize","keyWords","ksRows","invKeySchedule","ik","ksR","tt","_nRounds","_keySchedule","_invKeySchedule","m1","scrub","aes","ZEROES","fromArray","GHASH","ghash","_multiply","lsbVi","Vi","Zi","abl","StreamCipher","ck","_ghash","_finID","toPad","ivBits","calcIv","_secCache","_alen","_mode","_authTag","_called","rump","xorTest","authCipher","streamCipher","evp_bytestokey","keyBits","ivLen","keyLen","used","keyStart","ivStart","MODES","AuthCipher","ebtk","Splitter","_autopadding","PADDING","createCipheriv","suite","setTo","padBuff","encrypter","createCipher","Decipher","_last","createDecipheriv","padded","unpad","autoPadding","decrypter","createDecipher","deciphers","browser$a","Cipheriv","Decipheriv","listCiphers","aesModes","desModes","browser$b","getCiphers","BN","endian","isBN","negative","wordSize","parseHex4Bits","parseHexByte","lowerBound","parseBase","left","right","_initNumber","_initArray","_parseHex","_parseBase","toArray","strip","limbLen","limbPow","word","imuln","_iaddn","_expand","_normSign","zeros","groupSizes","groupBases","smallMulTo","ncarry","rword","maxJ","groupBase","modn","idivn","toArrayLike","ArrayType","reqLength","andln","iushrn","_countBits","_zeroBits","bitLength","zeroBits","toTwos","width","inotn","iaddn","fromTwos","testn","notn","ineg","iuor","ior","uor","iuand","iand","uand","iuxor","ixor","uxor","bytesNeeded","bitsLeft","setn","wbit","iadd","isub","comb10MulTo","mid","a0","al0","ah0","a1","al1","ah1","a2","al2","ah2","a3","al3","ah3","a4","al4","ah4","a5","al5","ah5","a6","al6","ah6","a7","al7","ah7","a8","al8","ah8","a9","al9","ah9","b0","bl0","bh0","b1","bl1","bh1","b2","bl2","bh2","b3","bl3","bh3","b4","bl4","bh4","b5","bl5","bh5","b6","bl6","bh6","b7","bl7","bh7","b8","bl8","bh8","b9","bl9","bh9","w0","imul","w1","w2","w3","w4","w5","w6","w7","w8","w9","w10","w11","w12","w13","w14","w15","w16","w17","w18","jumboMulTo","FFTM","mulp","mulTo","hncarry","bigMulTo","makeRBT","N","revBin","rb","rbt","rws","iws","rtws","itws","rtwdf","cos","PI","itwdf","sin","rtwdf_","itwdf_","ie","ro","io","rx","guessLen13b","odd","conjugate","normalize13b","ws","convert13b","stub","ph","rwst","iwst","nrws","nrwst","niwst","rmws","mulf","muln","sqr","isqr","toBitArray","iushln","carryMask","newCarry","ishln","extended","maskedWords","ishrn","shln","ushln","shrn","ushrn","imaskn","maskn","isubn","addn","subn","iabs","_ishlnsubmul","_wordDiv","bhi","diff","qj","divmod","positive","divn","umod","divRound","dm","r2","acc","egcd","A","B","C","D","yp","xp","im","jm","gcd","_invmp","x1","cmpn","invm","bincn","ucmp","gtn","gten","ltn","lten","eqn","Red","toRed","convertTo","_forceRed","fromRed","convertFrom","forceRed","redAdd","redIAdd","redSub","redISub","redShl","redMul","_verify2","redIMul","redSqr","_verify1","redISqr","redSqrt","redInvm","redNeg","redPow","primes","k256","p224","p192","p25519","MPrime","_tmp","K256","P224","P192","P25519","prime","_prime","Mont","imod","rinv","minv","ireduce","rlen","imulK","_strip","outLen","mod3","one","nOne","lpow","inv","wnd","currentLen","mont","Rand","brorand","generate","brorandModule","_rand","getBytes","getByte","bn","MillerRabin","mr$3","_randbelow","min_bytes","_randrange","stop","rone","rn1","getDivisor","generatePrime","findPrime","simpleSieve","fermatTest","TWENTYFOUR","millerRabin","TWO","FIVE","TEN","THREE","ELEVEN","FOUR","_getPrimes","n2","SEVEN","setPublicKey","pub","_pub","setPrivateKey","priv","_priv","DH","primeCache","generator","malleable","setGenerator","__prime","_primeLen","_primeCode","formatReturnValue","hex","checkPrime","__gen","generateKeys","_gen","getPublicKey","computeSecret","secret","getPrime","front","getPrivateKey","getGenerator","ENCODINGS","binary","DiffieHellmanGroup","createDiffieHellmanGroup","getDiffieHellman","browser$9","createDiffieHellman","genc","processNextickArgsModule","isarray$1","util$1","pna","destroy_1","_stream_writable","asyncWrite","writableHwm","writableHighWaterMark","defaultHwm","valid","_stream_duplex","_stream_readable","readableHwm","readableHighWaterMark","needMoreData","copyFromBufferString","copyFromBuffer","fromListPartial","increasedAwaitDrain","_stream_transform","_stream_passthrough","move","_move","modrn","allocate","_toArrayLikeLE","_toArrayLikeBE","isNegNum","getr","modulus","prime1","prime2","crt","blinds","blinder","publicExponent","unblinder","blind","blinded","qinv","coefficient","exponent1","m2","exponent2","browserifyRsa","zero2","toHex","minAssert","minUtils","getNAF","naf","getJSF","jsf","m8","u1","u2","m14","m24","cachedProperty","computer","parseBytes","intFromLE","BaseCurve","conf","two","pointFromJSON","gRed","_wnafT1","_wnafT2","_wnafT3","_wnafT4","_bitLength","adjustCount","redN","_maxwellTrick","BasePoint","curve","precomputed","BaseCurve$2","point","validate","_fixedNafMul","doubles","_getDoubles","I","step","nafW","repr","jpoint","mixedAdd","points","toP","_wnafMul","nafPoints","_getNAFPoints","dblp","_wnafMulAdd","defW","coeffs","jacobianResult","wndWidth","comb","toJ","ja","jb","BasePoint$2","decodePoint","pointFromX","encodeCompressed","_encode","compact","getX","getY","precompute","beta","_getBeta","_hasDoubles","dbl","ShortCurve","Base$5","tinv","zeroA","threeA","endo","_getEndomorphism","_endoWnafT1","_endoWnafT2","short","Point","isRed","inf","JPoint","zOne","ShortCurve$2","lambda","betas","_getEndoRoots","lambdas","basis","vec","_getEndoBasis","ntinv","prevR","aprxSqrt","y1","y2","len1","_endoSplit","v1","v2","q1","q2","ax","rhs","_endoWnafMulAdd","npoints","ncoeffs","fromJSON","Point$6","endoMul","obj2point","isInfinity","nx","ny","ys1","dyinv","mulAdd","jmulAdd","_precompute","JPoint$2","zinv","zinv2","ay","pz2","z2","h2","h3","nz","jx","jy","jz","jz4","jyd","jx2","jyd2","jyd4","dny","_zeroDbl","_threeDbl","_dbl","xx","yy","yyyy","yyyy8","c8","gamma","alpha","beta4","beta8","ggamma8","jy2","jxd4","jyd8","trpl","zz","mm","ee","yyu4","kbase","z3","pz3","eqXToP","MontCurve","Base$4","i4","a24","MontCurve$1","normalize","Point$5","aa","bb","diffAdd","da","jumlAdd","EdwardsCurve","twisted","mOneA","Base$3","dd","assert$l","oneC","edwards","EdwardsCurve$1","_mulA","_mulC","lhs","pointFromY","Point$4","_extDbl","nt","_projDbl","_extAdd","_projAdd","zi","isSurrogatePair","htonl","toHex32","zero8","join32","split32","rotr32","rotl32","sum32","sum32_3","sum32_4","sum32_5","sum64","sum64_hi","sum64_lo","sum64_4_hi","sum64_4_lo","sum64_5_hi","sum64_5_lo","rotr64_hi","rotr64_lo","shr64_hi","shr64_lo","utils$v","BlockHash","pendingTotal","outSize","hmacStrength","padLength","_delta8","_delta32","common$5","BlockHash$4","assert$j","ft_1","ch32","p32","maj32","s0_256","s1_256","g0_256","g1_256","common$4","common","shaCommon","sha1_K","SHA1","utils$s","_1","sha256_K","SHA256","utils$r","_256","SHA256$2","SHA224","utils$q","_224","sha512_K","utils$p","_512","ch64_hi","yh","yl","zh","ch64_lo","maj64_hi","maj64_lo","s0_512_hi","s0_512_lo","s1_512_hi","s1_512_lo","g0_512_hi","g0_512_lo","g1_512_hi","g1_512_lo","SHA512$1","_prepareBlock","c0_hi","c0_lo","c1_hi","c1_lo","c2_hi","c2_lo","c3_hi","c3_lo","c4_hi","c4_lo","T1_hi","T1_lo","T2_hi","T2_lo","SHA384","utils$o","_384","Kh","utils$n","ripemd","Ah","Bh","Dh","Eh","rh","sh","inner","outer","secp256k1$2","curves","PresetCurve","defineCurve","HmacDRBG","predResist","minEntropy","_reseed","reseedInterval","V","entropy","entropyEnc","nonceEnc","pers","persEnc","hmacDrbg","seed","HmacDRBG$2","_hmac","kmac","reseed","addEnc","KeyPair","ec","_importPrivate","privEnc","_importPublic","pubEnc","KeyPair$7","fromPublic","fromPrivate","getPublic","getPrivate","derive","assert$e","verify","_importDER","recoveryParam","Position","place","getLength","initial","octetLen","rmPadding","constructLength","octets","EC","nh","keyPair","keyFromPrivate","keyFromPublic","genKeyPair","drbg","ns2","_truncateToN","truncOnly","msgBitLength","bkey","ns1","kp","kpX","canonical","sinv","recoverPubKey","isYOdd","isSecondKey","rInv","getKeyRecoveryParam","Q","Qprime","Signature$7","slen","toDER","constructLength$2","backHalf","eddsa","_secret","isPoint","_pubBytes","KeyPair$6","fromSecret","encodePoint","lastIx","encodingLength","decodeInt","privBytes","assert$c","sig","getSecret","pubBytes","S","_R","_S","_Rencoded","Rencoded","_Sencoded","Sencoded","encodeInt","Signature$6","EDDSA","pointClass","elliptic","EDDSA$1","keyFromSecret","hashInt","messagePrefix","s_","makeSignature","SG","normed","xIsOdd","Object_keys","defineProp","globals","Context","Script","runInContext","iframe","createElement","display","appendChild","win","contentWindow","wEval","wExecScript","execScript","winKeys","removeChild","runInThisContext","runInNewContext","createContext","isContext","createScript","asn1","Entity","decoders","encoders","_createNamed","named","entity","_initNamed","_getDecoder","_getEncoder","reporter","Reporter","_reporterState","path","ReporterError","rethrow","save","pathLen","restore","enterKey","exitKey","leaveKey","enterObject","leaveObject","now","inherited","elem","partial","wrapResult","DecoderBuffer","EncoderBuffer","isEmpty","fail","raw","tags","methods","Node","parent","_baseState","children","reverseArgs","choice","optional","any","use","useDecoder","explicit","implicit","contains","_wrap","stateProps","cstate","child","_useArgs","def","newKey","_decode","prevObj","present","prevKey","_peekTag","_decodeGeneric","_decodeChoice","_decodeTag","track","_getUse","_decodeList","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeBool","_decodeInt","_use","some","_createEncoderBuffer","_encodeValue","_skipDefault","_encodeChoice","_encodePrimitive","cls","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool","_isNumstr","_isPrintstr","tagClass","tagClassByName","_reverse","tagByName","der","bignum","DERDecoder","tree","DERNode","derDecodeTag","oct","tagStr","derDecodeLen","der_1$1","decodedTag","_skipUntilEnd","possibleEnd","unused","numstr","printstr","relative","identifiers","ident","subident","second","year","mon","day","hour","sec","UTC","PEMDecoder","pem$3","lines","label","pem","DEREncoder","der_1","encodedTag","encodeTag","lenOctets","objid","getFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","numArray","dataBuffer","defaultBuffer","PEMEncoder","pem$2","asn","Time","utcTime","utctime","generalTime","gentime","AttributeTypeValue","seq","AlgorithmIdentifier","SubjectPublicKeyInfo","bitstr","RelativeDistinguishedName","setof","RDNSequence","seqof","Name","rdnSequence","Validity","Extension","octstr","TBSCertificate","X509Certificate","certificate","asn1_1","RSAPrivateKey","RSAPublicKey","null_","PublicKey","PrivateKeyInfo","PrivateKey","EncryptedPrivateKeyInfo","EncryptedPrivateKey","DSAPrivateKey","DSAparam","ECParameters","namedCurve","ECPrivateKey","findProc","startRegex","fullRegex","evp","fixProc","okey","decrypted","cipherText","cipherKey","match2","aesid","compat","parseKeys","passphrase","subtype","ndata","stripped","tbsCertificate","subjectPublicKeyInfo","subjectPublicKey","subjectPrivateKey","pub_key","kde","kdeparams","iters","privateKey","priv_key","parameters","parseAsn1","createHmac","getKey","hlen","hbits","bits2int","bits2octets","obits","makeKey","kv","makeR","signModule","hashType","signType","curveId","ecSign","dsaSign","checkValue","pubkey","ecVerify","unpacked","montp","dsaVerify","padNum","createHash","algorithms","Sign","_hashType","_tag","_signType","Verify","createSign","createVerify","sigBuffer","browser$8","browser$7","ECDH","aliases","secp256k1","secp224r1","prime256v1","prime192v1","secp384r1","secp521r1","curveType","p256","secp256r1","secp192r1","p384","p521","inenc","i2ops","mgf","withPublic_1","paddedMsg","withPublic","publicEncrypt","publicKey","iHash","hLen2","ps","dblen","maskedDb","maskedSeed","oaep","nonZero","pkcs1","privateDecrypt","zBuffer","db","dif","privateEncrypt","publicDecrypt","oldBrowser","safeBuffer","randombytes","kBufferMaxLength","kMaxUint32","assertOffset","actualFill","ourBuf","randomFill","randomFillSync","cryptoBrowserify","pseudoRandomBytes","algos","algoKeys","hashes","getHashes","DiffieHellman","createECDH","rf","createCredentials","DH_CHECK_P_NOT_SAFE_PRIME","DH_CHECK_P_NOT_PRIME","DH_UNABLE_TO_CHECK_GENERATOR","DH_NOT_SUITABLE_GENERATOR","NPN_ENABLED","ALPN_ENABLED","RSA_PKCS1_PADDING","RSA_SSLV23_PADDING","RSA_NO_PADDING","RSA_PKCS1_OAEP_PADDING","RSA_X931_PADDING","RSA_PKCS1_PSS_PADDING","POINT_CONVERSION_COMPRESSED","POINT_CONVERSION_UNCOMPRESSED","POINT_CONVERSION_HYBRID","nacl","gf","_0","_9","gf0","gf1","_121665","D2","X","Y","ts64","vn","yi","crypto_verify_16","crypto_verify_32","crypto_core_salsa20","j0","j1","j2","j3","j4","j5","j6","j7","j8","j9","j10","j11","j12","j13","j14","j15","x0","x3","x5","x6","x7","x9","x10","x11","x12","x13","x14","x15","core_salsa20","crypto_core_hsalsa20","core_hsalsa20","sigma","crypto_stream_salsa20_xor","cpos","mpos","crypto_stream_salsa20","crypto_stream","sn","crypto_stream_xor","poly1305","t4","t5","t6","t7","leftover","crypto_onetimeauth","outpos","crypto_onetimeauth_verify","hpos","crypto_secretbox","crypto_secretbox_open","set25519","car25519","sel25519","pack25519","neq25519","par25519","unpack25519","Z","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","t20","t21","t22","t23","t24","t25","t26","t27","t28","t29","t30","b10","b11","b12","b13","b14","b15","inv25519","pow2523","crypto_scalarmult","x32","x16","crypto_scalarmult_base","crypto_box_keypair","crypto_box_beforenm","blocks","d3","d4","d5","d6","d7","d8","d9","hibit","h0","h1","h4","h5","h6","h7","h8","h9","r0","r1","r3","r4","r5","r6","r7","r8","r9","mac","macpos","want","crypto_box_afternm","crypto_box_open_afternm","crypto_hashblocks_hl","th","wh","wl","crypto_hash","cswap","pack","tx","ty","scalarmult","scalarbase","crypto_sign_keypair","pk","sk","seeded","L","modL","crypto_sign","sm","smlen","crypto_sign_open","chk","den","den2","den4","den6","unpackneg","crypto_secretbox_BOXZEROBYTES","crypto_sign_BYTES","crypto_sign_PUBLICKEYBYTES","crypto_sign_SECRETKEYBYTES","checkLengths","checkArrayTypes","lowlevel","crypto_box","crypto_box_open","crypto_secretbox_KEYBYTES","crypto_secretbox_NONCEBYTES","crypto_secretbox_ZEROBYTES","crypto_scalarmult_BYTES","crypto_scalarmult_SCALARBYTES","crypto_box_PUBLICKEYBYTES","crypto_box_SECRETKEYBYTES","crypto_box_BEFORENMBYTES","crypto_box_NONCEBYTES","crypto_box_ZEROBYTES","crypto_box_BOXZEROBYTES","crypto_sign_SEEDBYTES","crypto_hash_BYTES","secretbox","open","box","keyLength","nonceLength","overheadLength","scalarMult","scalarLength","groupElementLength","secretKey","before","checkBoxLengths","after","fromSecretKey","publicKeyLength","secretKeyLength","sharedKeyLength","signedMsg","mlen","detached","fromSeed","seedLength","signatureLength","hashLength","setPRNG","require","arrayEqual","array1","array2","view1","view2","getUint8","arrayStartsWith","arrayPrefix","byteToHex","padStart","startsWith","derPrefix","derPrefixBytes","hex.decode","Ed25519PublicKey","keyData","_keyData","_type","fromBytesRaw","fromBytesDer","every","toBytesDer","toBytesRaw","bytesAsync","TextDecoder","TextEncoder","utf8.encode","key_","isBytes","anumber","abytes","lengths","ahash","outputLen","blockLen","aexists","checkFinished","aoutput","clean","arrays","createView","concatBytes","createHasher","hashCons","hashC","bytesLength","setBigUint64","view","_32n","_u32_max","setUint32","Chi","Maj","HashMD","padOffset","take","dataView","roundClean","digestInto","oview","_cloneInto","SHA256_IV","SHA256_K","SHA256_W","F","getUint32","W15","W2","oHash","abytes$1","HMAC","_0n","_1n","abool","numberToHexUnpadded","hexToNumber","hasHexBuiltin","fromHex","hexes","bytesToHex","asciis","asciiToBase16","hexToBytes","ai","char","bytesToNumberBE","bytesToNumberLE","numberToBytesBE","numberToBytesLE","ensureBytes","expectedLength","isPosBig","inRange","aInRange","bitLen","bitMask","u8n","u8fr","createHmacDrbg","hashLen","qByteLen","hmacFn","pred","validatorFns","bigint","function","stringOrUint8Array","field","Fp","isValid","validateObject","validators","optValidators","checkField","fieldName","isOptional","checkVal","entries","memoized","computed","_2n","_3n","_4n","_5n","_8n","pow2","invert","sqrt3mod4","p1div4","ORDER","root","eql","sqrt5mod8","p5div8","nv","tonelliShanks","_Fp","Field","FpLegendre","cc","Q1div2","is0","t_tmp","FpSqrt","FIELD_FIELDS","validateField","MASK","BYTES","BITS","FpPow","FpInvertBatch","nums","passZero","inverted","multipliedAcc","invertedAcc","reduceRight","p1mod2","powered","yes","no","nLength","nBitLength","_nBitLength","nByteLength","redef","sqrtP","sqrN","addN","subN","mulN","invertBatch","lst","cmov","getFieldBytesLength","fieldOrder","getMinHashLength","mapHashToField","fieldLen","minLen","reduced","constTimeNegate","condition","validateW","calcWOpts","scalarBits","maxNumber","windows","windowSize","shiftBy","calcOffsets","wOpts","wbits","nextN","offsetStart","isNegF","offsetF","validateMSMPoints","validateMSMScalars","scalars","pointPrecomputes","pointWindowSizes","getW","wNAF","hasPrecomputes","elm","unsafeLadder","precomputeWindow","precomputes","wo","wNAFUnsafe","getPrecomputes","wNAFCached","wNAFCachedUnsafe","setWindowSize","delete","pippenger","fieldN","plength","slength","buckets","scalar","resI","sumI","validateBasic","Gx","Gy","validateSigVerOpts","lowS","prehash","validatePointOpts","allowInfinityPoint","allowedPrivateKeyLengths","clearCofactor","isTorsionFree","wrapPrivateKey","splitScalar","DERErr","DER","Err","_tlv","dataLen","lenLen","lengthBytes","_int","toSig","int","tlv","seqBytes","seqLeftBytes","rBytes","rLeftBytes","sBytes","sLeftBytes","hexFromSig","numToSizedHex","weierstrassPoints","CURVE","Fn","_isCompressed","toAffine","weierstrassEquation","isValidXY","_4a3","_27b2","normPrivateKeyToScalar","aprjpoint","toAffineMemo","iz","px","py","pz","assertValidMemo","fromAffine","normalizeZ","toInv","assertValidity","fromPrivateKey","msm","_setWindowSize","wnaf","hasEvenY","X1","Y1","Z1","X2","Y2","Z2","U1","U2","X3","Y3","Z3","multiplyUnsafe","sc","k1neg","k2neg","k1p","k2p","fake","f1p","f2p","multiplyAndAddUnsafe","cofactor","toRawBytes","isCompressed","ProjectivePoint","isWithinCurveOrder","validateOpts","bits2int_modN","weierstrass","curveDef","CURVE_ORDER","compressedLen","uncompressedLen","modN","invN","cat","sqrtError","isBiggerThanHalfOrder","slcNum","recovery","fromCompact","fromDER","addRecoveryBit","recoverPublicKey","msgHash","rec","radj","ir","hasHighS","normalizeS","toDERRawBytes","toDERHex","toCompactRawBytes","toCompactHex","isValidPrivateKey","randomPrivateKey","isProbPub","fpl","compLen","uncompLen","ORDER_MASK","int2octets","prepSig","defaultSigOpts","extraEntropy","ent","h1int","seedArgs","k2sig","kBytes","normS","defaultVerOpts","getSharedSecret","privateA","publicB","privKey","sg","isHex","isObj","_sig","derError","is","getHash","msgs","createCurve","defHash","secp256k1P","secp256k1N","divNearest","sqrtMod","_6n","_11n","_22n","_23n","_44n","_88n","b22","b44","b88","b176","b220","b223","Fpk1","POW_2_128","HARDENED_BIT","parentKey","chainCode","isHardened","isHardenedIndex","hmac.hash","hmac.HashAlgorithm","IL","IR","parentKeyBigInt","ki","toHardenedIndex","bip32.isHardenedIndex","Ed25519PrivateKey","_keyPair","_chainCode","random.bytes","generateAsync","random.bytesAsync","fromStringDer","fromStringRaw","slip10.fromSeed","leadingZeroes","privateKeyOffset","HEX_CHARS","KECCAK_PADDING","SHIFT","RC","Keccak","blockCount","outputBlocks","byteCount","lastByteIndex","c3","c4","c5","c6","c7","c9","b17","b18","b19","b20","b21","b23","b24","b25","b26","b27","b28","b29","b30","b31","b33","b34","b35","b36","b37","b38","b39","b40","b41","b42","b43","b45","b46","b47","b49","keccak","keccak256","equalBytes","keydata","hex.encode","getRecoveryId","expectedPubKey","legacyDerPrefix","legacyDerPrefixBytes","EcdsaPublicKey","ecdsaPublicKeyBytes","ecdsa.verify","toEthereumAddress","derPrefix2","derPrefixBytes2","EcdsaPrivateKey","ecdsa.generate","ecdsa.generateAsync","ecdsaPrivateKeyBytes","ecdsa.fromBytes","bip32.fromSeed","ecdsa.sign","ecdsa.getRecoveryId","fromBytesED25519","fromBytesECDSA","fromStringED25519","fromStringECDSA","verifyTransaction","_requireFrozen","isFrozen","signedTransaction","_signedTransactions","toStringDer","toStringRaw","hex_chr","md5cycle","md5blk","md5blks","md5blk_array","md51","md51_array","rhex","toUtf8","unescape","utf8Str2ArrayBuffer","returnUInt8Array","buff","arrayBuffer2Utf8Str","concatenateArrayBuffers","hexToBinaryString","SparkMD5","clamp","targetArray","sourceArray","begin","append","appendBinary","_buff","_finish","getState","setState","hashBinary","CipherAlgorithm","Aes128Ctr","Aes128Cbc","algorithm_","counter","messageDigest","pass","sliced","deriveKey","HMAC_SHA256","createKeystore","pbkdf2.deriveKey","crypto.createCipheriv","crypto.CipherAlgorithm","keystore","ciphertext","cipherparams","kdf","kdfparams","dkLen","prf","loadKeystore","keystoreBytes","utf8.decode","saltBytes","ivBytes","cipherBytes","macHex","verifyHmac","crypto.createDecipheriv","decodeIncremental","decodeLength","decodeObjectIdent","decodeSeq","decoded","idBytes","lenBytes","numBytes","intBytes","getUint16","of","algIdent","PBES2Params","encScheme","PBKDF2Params","iterCount","algId","encoded","der.decode","pbes2Params","pbkdf2Params","ARRAY_BUFFER_NAME","BufferSourceConverter","toArrayBuffer","toUint8Array","toView","isBufferSource","isEqual","aView","bView","buffers","STRING_TYPE","HEX_REGEX","BASE64_REGEX","BASE64URL_REGEX","Utf8Converter","uintArray","encodedString","escape","Utf16Converter","arrayBuffer","setUint16","Convert","isBase64","isBase64Url","ToString","ToUtf8String","ToBinary","ToHex","ToBase64","ToBase64Url","FromString","FromUtf8String","FromBinary","FromHex","FromBase64","FromBase64Url","formatted","formatString","base64url","Base64Padding","DEFAULT_UTF8_ENCODING","stringLength","resultView","hexString","ToUtf16String","FromUtf16String","padCount","utilFromBase","inputBuffer","inputBase","utilToBase","reserved","internalReserved","internalValue","biggest","retBuf","retView","utilConcatView","views","outputLength","prevLength","utilDecodeTC","valueHex","condition1","condition2","warnings","bigIntBuffer","bigIntView","bigInt","smallIntBuffer","smallIntView","utilEncodeTC","modValue","tempBuf","tempView","isEqualBuffer","inputBuffer1","inputBuffer2","padNumber","inputNumber","fullLength","assertBigInt","checkBufferParams","baseBlock","inputOffset","inputLength","ViewWriter","items","powers2","digitsString","EMPTY_STRING","EMPTY_BUFFER","EMPTY_VIEW","END_OF_CONTENT_NAME","OCTET_STRING_NAME","BIT_STRING_NAME","HexBlock","BaseClass","valueHexView","isHexOnly","pvtsutils.BufferSourceConverter","fromBER","endLength","blockLength","toBER","sizeOnly","pvtsutils.Convert","NAME","LocalBaseBlock","blockName","valueBeforeDecode","valueBeforeDecodeView","ValueBlock","_inputBuffer","_inputOffset","_inputLength","_sizeOnly","_writer","LocalIdentificationBlock","idBlock","tagNumber","isConstructed","firstOctet","encodedBuf","pvutils.utilToBase","encodedView","curView","inputView","intBuffer","tagNumberMask","intTagNumberBuffer","tagNumberBufferMaxLength","tempBufferView","pvutils.utilFromBase","LocalLengthBlock","lenBlock","isIndefiniteForm","longFormUsed","lenOffset","lengthBufferView","typeStore","BaseBlock","primitiveSchema","valueBlockType","valueBlock","resultOffset","prepareIndefiniteForm","idBlockBuf","valueBlockBuf","lenBlockBuf","onAsciiEncoding","pvutils.isEqualBuffer","Constructed","BaseStringBlock","getValue","setValue","stringValueBlockType","fromBuffer","LocalPrimitiveValueBlock","_a$w","_a$v","_a$u","_a$t","_a$s","Primitive","localChangeType","inputObject","newType","newObject","localFromBER","incomingOffset","returnObject","newASN1Type","EndOfContent","Integer","BitString","OctetString","Null","ObjectIdentifier","Enumerated","Utf8String","RelativeObjectIdentifier","TIME","Sequence","NumericString","PrintableString","TeletexString","VideotexString","IA5String","UTCTime","GeneralizedTime","GraphicString","VisibleString","GeneralString","UniversalString","CharacterString","BmpString","DATE","TimeOfDay","DateTime","checkLen","indefiniteLength","LocalConstructedValueBlock","currentOffset","LocalEndOfContentValueBlock","override","LocalBooleanValueBlock","octet","pvutils.utilDecodeTC","Boolean$1","LocalOctetStringValueBlock","currentBlockName","_a$r","_a$q","_a$p","_a$o","_a$n","_a$m","_a$l","_a$k","_a$j","LocalBitStringValueBlock","unusedBits","bitsStr","viewAdd","firstView","secondView","firstViewCopy","firstViewCopyLength","secondViewCopy","secondViewCopyLength","pvutils.utilConcatView","power2","newValue","viewSub","LocalIntegerValueBlock","setValueHex","_valueDec","valueDec","pvutils.utilEncodeTC","updatedView","firstBit","currentByte","bitNumber","asn1View","flag","byteNumber","secondInt","convertToDER","integer","convertFromDER","LocalSidValueBlock","isFirstSid","valueBigInt","sidValue","LocalObjectIdentifierValueBlock","sidBlock","retBuffers","valueBuf","pos1","pos2","sid","parsedSID","sidStr","sidArray","LocalRelativeSidValueBlock","LocalRelativeObjectIdentifierValueBlock","Set$1","LocalStringValueBlock","LocalSimpleStringValueBlock","LocalSimpleStringBlock","inputString","LocalUtf8StringValueBlock","ex","_a$i","_a$h","_a$g","_a$f","_a$e","_a$d","_a$c","_a$b","_a$a","_a$9","_a$8","_a$7","_a$6","_a$5","_a$4","_a$3","_a$2","_a$1","LocalBmpStringValueBlock","LocalUniversalStringValueBlock","copyBuffer","valueView","strLength","codeBuf","codeView","valueDate","month","minute","fromDate","inputDate","getUTCFullYear","toDate","parserArray","outputArray","pvutils.padNumber","toISOString","millisecond","getUTCMilliseconds","utcDate","parser","isUTC","timeString","dateTimeString","hourDifference","minuteDifference","differencePosition","differenceString","fractionPointPosition","fractionPartCheck","fractionResult","tempDate","getUTCDay","forge","usePureJavaScript","baseN","_reverseAlphabets","_encodeWithByteBuffer","at","maxline","regex","_checkBitsParam","ByteStringBuffer","putByte","_constructedStringLength","postMessage","stopPropagation","callbacks","MutationObserver","attr","observe","attributes","oldSetImmediate","setAttribute","isNodejs","globalScope","ByteBuffer","_MAX_CONSTRUCTED_STRING_LENGTH","DataBuffer","readOffset","growSize","writeOffset","putBytes","_optimizeConstructedString","fillWithByte","putString","encodeUtf8","putInt16","putInt24","putInt32","putInt16Le","putInt24Le","putInt32Le","putInt","putSignedInt","putBuffer","getInt16","rval","getInt24","getInt32","getInt16Le","getInt24Le","getInt32Le","getInt","getSignedInt","setAt","truncate","decodeUtf8","accommodate","setUint8","utf16","setInt16","setInt8","setInt32","getInt8","fillString","xorBytes","int32ToBytes","_base64","_base64Idx","_base58","encode64","chr1","chr2","chr3","decode64","enc1","enc2","enc3","enc4","base58","deflate","inflate","_setStorageObject","removeItem","setItem","_getStorageObject","getItem","_setItem","_getItem","_removeItem","empty","_clearItems","_callStorageFunction","location","exception","clearItems","argi","lastIndex","formatNumber","dec_point","thousands_sep","formatSize","bytesFromIP","bytesFromIPv4","bytesFromIPv6","blanks","bytesToIP","bytesToIPv4","bytesToIPv6","zeroGroups","zeroMaxGroup","estimateCores","cores","navigator","hardwareConcurrency","Worker","blobUrl","URL","createObjectURL","st","et","sample","samples","numWorkers","avg","revokeObjectURL","workers","results","worker","terminate","overlaps","overlap","pemModule","foldHeader","insertSpace","$1","candidate","insert","ltrim","procType","contentDomain","dekInfo","headers","rMessage","rHeader","rCRLF","li","nl","vi","ID_ED25519","readPemED25519","base64.decode","encrypted","readPemECDSA","ivString","pemForge","pemLines","aes.messageDigest","dataToDecrypt","keyDerBytes","aes.createDecipheriv","aes.CipherAlgorithm","asn1.fromBER","legacy","CACHE","privateKeyConstructor","privateKeyFromBytes","mnemonicFromString","generateED25519","generateECDSA","generateED25519Async","generateECDSAAsync","fromSeedED25519","ed25519Key","fromSeedECDSAsecp256k1","ecdsaKey","fromMnemonic","mnemonic","toEd25519PrivateKey","fromKeystore","fromPem","isEcdsa","slip10.derive","bip32.derive","legacyDerive","keyBytes","derive.legacy","signTransaction","publicKeyHex","siganture","protoSignature","_signerPublicKeys","isDerivable","toKeystore","BadMnemonicReason","BadLength","UnknownWords","ChecksumMismatch","BadMnemonicError","unknownWordIndices","reasonMessage","legacyWords","bip39Words","toSeed","legacy1","wordlist","convertRadix","legacy2","concatBitsLen","concatBits","wordIndex","checksumBitsLen","entropyBitsLen","hashBits","bytesToBits","sha256.digest","crc8","crc","fromRadix","toRadix","toLength","element","tem","ED25519_SEED_TEXT","ECDSA_SEED_TEXT","HARDENED","HEDERA_PATH","SLIP44_ECDSA_HEDERA_PATH","SLIP44_ECDSA_ETH_PATH","Mnemonic","_generate","generate12","neededEntropy","chunks","bytesToBinary","deriveChecksumBits","binaryToByte","fromWords","_validate","toPrivateKey","_toKeyData","toStandardEd25519PrivateKey","derivedKey","currentIndex","toEcdsaPrivateKey","toStandardECDSAsecp256k1PrivateKey","bip32.toHardenedIndex","bip39.toSeed","seedText","unknowns","entropy.legacy1","entropy.crc8","dividerIndex","entropyBits","checksumBits","entropyBytes","toLegacyPrivateKey","entropy.legacy2","bin","entropyBuffer","CS","_timeDrift","_contractId","_keyList","_thresholdKey","_publicKeyED25519","_publicKeyECDSA","_privateKeyConstructor","_mnemonicFromString","_accountIdConstructor","_delegateContractId","_evmAddress","_ethereumTransactionDataLegacyFromBytes","_ethereumTransactionDataEip1559FromBytes","_ethereumTransactionDataEip2930FromBytes","_transactionReceiptQueryConstructor","_transactionRecordQueryConstructor","setTimeDrift","timeDrift","setContractId","setKeyList","setThresholdKey","setPublicKeyED25519","publicKeyED25519","setPublicKeyECDSA","publicKeyECDSA","setPrivateKeyConstructor","setMnemonicFromString","setAccountIdConstructor","accountIdConstructor","setDelegateContractId","delegateContractId","setEvmAddress","setEthereumTransactionDataLegacyFromBytes","ethereumTransactionDataLegacyFromBytes","setEthereumTransactionDataEip1559FromBytes","ethereumTransactionDataEip1559FromBytes","setEthereumTransactionDataEip2930FromBytes","ethereumTransactionDataEip2930FromBytes","setTransactionReceiptQueryConstructor","transactionReceiptQueryConstructor","setTransactionRecordQueryConstructor","transactionRecordQueryConstructor","setAddressBookQueryConstructor","_addressBookQueryConstructor","addressBookQueryConstructor","t$y","_toProtobufKey","_fromProtobufKey","i$m","toEvmAddress","_toProtobufSignature","toAccountId","unusableKey","_permanentCensorErrors","_censorErrors","LogLevels","info","_logLevel","_globalLogger","_checkNormalize","missing","form","_normalizeError","LogLevel","ErrorCode","HEX","Logger","_log","logLevel","level","throwArgumentError","levels","INFO","WARNING","makeError","UNKNOWN_ERROR","messageDetails","url","NUMERIC_FAULT","fault","CALL_EXCEPTION","INSUFFICIENT_FUNDS","MISSING_NEW","NONCE_EXPIRED","REPLACEMENT_UNDERPRICED","TRANSACTION_REPLACED","UNPREDICTABLE_GAS_LIMIT","throwError","INVALID_ARGUMENT","argument","assertArgument","checkNormalize","UNSUPPORTED_OPERATION","operation","checkSafeUint53","checkArgumentCount","expectedCount","MISSING_ARGUMENT","UNEXPECTED_ARGUMENT","checkNew","kind","checkAbstract","globalLogger","setCensorship","censorship","permanent","setLogLevel","logger","isHexable","toHexString","addSlice","isBytesLike","isHexString","arrayify","logger$9","allowMissingPrefix","hexPad","zeroPad","HexCharacters","hexlify","hexDataLength","hexDataSlice","endOffset","hexConcat","hexZeroPad","splitSignature","_vs","yParityAndS","vs","recId","_mnemonic","calculateDerivationPathValues","toStandardECDSAsecp256k1PrivateKeyImpl","toStandardECDSAsecp256k1PrivateKeyCustomDerivationPath","_map","__map","_fromString","_set","t$v","shard","realm","presentChecksum","expectedChecksum","numOrHex","num1","num2","num3","givenChecksum","correctChecksum","noChecksumFormat","withChecksumFormat","_network","_ledgerId","s.proto","$","_bytes","f$8","aliasKey","_checksum","fromEvmAddress","fromEvmPublicAddress","_fromProtobuf","a.proto","getEvmAddress","populateAccountNum","mirrorNetwork","fetch","populateAccountEvmAddress","evm_address","validateChecksum","S$a","fromSolidityAddress","toSolidityAddress","_toProtobuf","toStringWithChecksum","s$r","getTime","plusNanos","i$j","validStart","setNonce","seal","withValidStart","setScheduled","r.proto","getReceipt","setTransactionId","execute","getRecord","t$u","_fromTransactionSigMap","addSignature","n$z","_fromSignedTransactions","t$t","locked","setList","setLocked","setIfAbsent","advance","_fromTransaction","_nodeAccountIds","getFlatSignatureList","_signTransactionLegacy","_keys","_threshold","setThreshold","__fromProtobufKeyList","__fromProtobufThresoldKey","e$B","_name","_symbol","_tinybar","Hbar","Tinybar","Microbar","Millibar","Kilobar","Megabar","Gigabar","_valueInTinybar","fromTinybars","toBigNumber","toTinybars","transactionId","r$D","transactionReceipt","e$z","_code","Ok","InvalidTransaction","PayerAccountNotFound","InvalidNodeAccount","TransactionExpired","InvalidTransactionStart","InvalidTransactionDuration","InvalidSignature","MemoTooLong","InsufficientTxFee","InsufficientPayerBalance","DuplicateTransaction","Busy","NotSupported","InvalidFileId","InvalidAccountId","InvalidContractId","InvalidTransactionId","ReceiptNotFound","RecordNotFound","InvalidSolidityId","Unknown","Success","FailInvalid","FailFee","FailBalance","KeyRequired","BadEncoding","InsufficientAccountBalance","InvalidSolidityAddress","InsufficientGas","ContractSizeLimitExceeded","LocalCallModificationException","ContractRevertExecuted","ContractExecutionException","InvalidReceivingNodeAccount","MissingQueryHeader","AccountUpdateFailed","InvalidKeyEncoding","NullSolidityAddress","ContractUpdateFailed","InvalidQueryHeader","InvalidFeeSubmitted","InvalidPayerSignature","KeyNotProvided","InvalidExpirationTime","NoWaclKey","FileContentEmpty","InvalidAccountAmounts","EmptyTransactionBody","InvalidTransactionBody","InvalidSignatureTypeMismatchingKey","InvalidSignatureCountMismatchingKey","EmptyLiveHashBody","EmptyLiveHash","EmptyLiveHashKeys","InvalidLiveHashSize","EmptyQueryBody","EmptyLiveHashQuery","LiveHashNotFound","AccountIdDoesNotExist","LiveHashAlreadyExists","InvalidFileWacl","SerializationFailed","TransactionOversize","TransactionTooManyLayers","ContractDeleted","PlatformNotActive","KeyPrefixMismatch","PlatformTransactionNotCreated","InvalidRenewalPeriod","InvalidPayerAccountId","AccountDeleted","FileDeleted","AccountRepeatedInAccountAmounts","SettingNegativeAccountBalance","ObtainerRequired","ObtainerSameContractId","ObtainerDoesNotExist","ModifyingImmutableContract","FileSystemException","AutorenewDurationNotInRange","ErrorDecodingBytestring","ContractFileEmpty","ContractBytecodeEmpty","InvalidInitialBalance","InvalidReceiveRecordThreshold","InvalidSendRecordThreshold","AccountIsNotGenesisAccount","PayerAccountUnauthorized","InvalidFreezeTransactionBody","FreezeTransactionBodyNotFound","TransferListSizeLimitExceeded","ResultSizeLimitExceeded","NotSpecialAccount","ContractNegativeGas","ContractNegativeValue","InvalidFeeFile","InvalidExchangeRateFile","InsufficientLocalCallGas","EntityNotAllowedToDelete","AuthorizationFailed","FileUploadedProtoInvalid","FileUploadedProtoNotSavedToDisk","FeeScheduleFilePartUploaded","ExchangeRateChangeLimitExceeded","MaxContractStorageExceeded","TransferAccountSameAsDeleteAccount","TotalLedgerBalanceInvalid","ExpirationReductionNotAllowed","MaxGasLimitExceeded","MaxFileSizeExceeded","ReceiverSigRequired","InvalidTopicId","InvalidAdminKey","InvalidSubmitKey","Unauthorized","InvalidTopicMessage","InvalidAutorenewAccount","AutorenewAccountNotAllowed","TopicExpired","InvalidChunkNumber","InvalidChunkTransactionId","AccountFrozenForToken","TokensPerAccountLimitExceeded","InvalidTokenId","InvalidTokenDecimals","InvalidTokenInitialSupply","InvalidTreasuryAccountForToken","InvalidTokenSymbol","TokenHasNoFreezeKey","TransfersNotZeroSumForToken","MissingTokenSymbol","TokenSymbolTooLong","AccountKycNotGrantedForToken","TokenHasNoKycKey","InsufficientTokenBalance","TokenWasDeleted","TokenHasNoSupplyKey","TokenHasNoWipeKey","InvalidTokenMintAmount","InvalidTokenBurnAmount","TokenNotAssociatedToAccount","CannotWipeTokenTreasuryAccount","InvalidKycKey","InvalidWipeKey","InvalidFreezeKey","InvalidSupplyKey","MissingTokenName","TokenNameTooLong","InvalidWipingAmount","TokenIsImmutable","TokenAlreadyAssociatedToAccount","TransactionRequiresZeroTokenBalances","AccountIsTreasury","TokenIdRepeatedInTokenList","TokenTransferListSizeLimitExceeded","EmptyTokenTransferBody","EmptyTokenTransferAccountAmounts","InvalidScheduleId","ScheduleIsImmutable","InvalidSchedulePayerId","InvalidScheduleAccountId","NoNewValidSignatures","UnresolvableRequiredSigners","ScheduledTransactionNotInWhitelist","SomeSignaturesWereInvalid","TransactionIdFieldNotAllowed","IdenticalScheduleAlreadyCreated","InvalidZeroByteInString","ScheduleAlreadyDeleted","ScheduleAlreadyExecuted","MessageSizeTooLarge","OperationRepeatedInBucketGroups","BucketCapacityOverflow","NodeCapacityNotSufficientForOperation","BucketHasNoThrottleGroups","ThrottleGroupHasZeroOpsPerSec","SuccessButMissingExpectedOperation","UnparseableThrottleDefinitions","InvalidThrottleDefinitions","AccountExpiredAndPendingRemoval","InvalidTokenMaxSupply","InvalidTokenNftSerialNumber","InvalidNftId","MetadataTooLong","BatchSizeLimitExceeded","InvalidQueryRange","FractionDividesByZero","InsufficientPayerBalanceForCustomFee","CustomFeesListTooLong","InvalidCustomFeeCollector","InvalidTokenIdInCustomFees","TokenNotAssociatedToFeeCollector","TokenMaxSupplyReached","SenderDoesNotOwnNftSerialNo","CustomFeeNotFullySpecified","CustomFeeMustBePositive","TokenHasNoFeeScheduleKey","CustomFeeOutsideNumericRange","RoyaltyFractionCannotExceedOne","FractionalFeeMaxAmountLessThanMinAmount","CustomScheduleAlreadyHasNoFees","CustomFeeDenominationMustBeFungibleCommon","CustomFractionalFeeOnlyAllowedForFungibleCommon","InvalidCustomFeeScheduleKey","InvalidTokenMintMetadata","InvalidTokenBurnMetadata","CurrentTreasuryStillOwnsNfts","AccountStillOwnsNfts","TreasuryMustOwnBurnedNft","AccountDoesNotOwnWipedNft","AccountAmountTransfersOnlyAllowedForFungibleCommon","MaxNftsInPriceRegimeHaveBeenMinted","PayerAccountDeleted","CustomFeeChargingExceededMaxRecursionDepth","CustomFeeChargingExceededMaxAccountAmounts","InsufficientSenderAccountBalanceForCustomFee","SerialNumberLimitReached","CustomRoyaltyFeeOnlyAllowedForNonFungibleUnique","NoRemainingAutomaticAssociations","ExistingAutomaticAssociationsExceedGivenLimit","RequestedNumAutomaticAssociationsExceedsAssociationLimit","TokenIsPaused","TokenHasNoPauseKey","InvalidPauseKey","FreezeUpdateFileDoesNotExist","FreezeUpdateFileHashDoesNotMatch","NoUpgradeHasBeenPrepared","NoFreezeIsScheduled","UpdateFileHashChangedSincePrepareUpgrade","FreezeStartTimeMustBeFuture","PreparedUpdateFileIsImmutable","FreezeAlreadyScheduled","FreezeUpgradeInProgress","UpdateFileIdDoesNotMatchPrepared","UpdateFileHashDoesNotMatchPrepared","ConsensusGasExhausted","RevertedSuccess","MaxStorageInPriceRegimeHasBeenUsed","InvalidAliasKey","UnexpectedTokenDecimals","InvalidProxyAccountId","InvalidTransferAccountId","InvalidFeeCollectorAccountId","AliasIsImmutable","SpenderAccountSameAsOwner","AmountExceedsTokenMaxSupply","NegativeAllowanceAmount","CannotApproveForAllFungibleCommon","SpenderDoesNotHaveAllowance","AmountExceedsAllowance","MaxAllowancesExceeded","EmptyAllowances","SpenderAccountRepeatedInAllowances","RepeatedSerialNumsInNftAllowances","FungibleTokenInNftAllowances","NftInFungibleTokenAllowances","InvalidAllowanceOwnerId","InvalidAllowanceSpenderId","RepeatedAllowancesToDelete","InvalidDelegatingSpender","DelegatingSpenderCannotGrantApproveForAll","DelegatingSpenderDoesNotHaveApproveForAll","ScheduleExpirationTimeTooFarInFuture","ScheduleExpirationTimeMustBeHigherThanConsensusTime","ScheduleFutureThrottleExceeded","ScheduleFutureGasLimitExceeded","InvalidEthereumTransaction","WrongChainId","WrongNonce","AccessListUnsupported","SchedulePendingExpiration","ContractIsTokenTreasury","ContractHasNonZeroTokenBalances","ContractExpiredAndPendingRemoval","ContractHasNoAutoRenewAccount","PermanentRemovalRequiresSystemInitiation","ProxyAccountIdFieldIsDeprecated","SelfStakingIsNotAllowed","InvalidStakingId","StakingNotEnabled","InvalidPrngRange","MaxEntitiesInPriceRegimeHaveBeenCreated","InvalidFullPrefixSignatureForPrecompile","InsufficientBalancesForStorageRent","MaxChildRecordsExceeded","InsufficientBalancesForRenewalFees","TransactionHasUnknownFields","AccountIsImmutable","AliasAlreadyAssigned","InvalidMetadataKey","TokenHasNoMetadataKey","MissingTokenMetadata","MissingSerialNumbers","TokenHasNoAdminKey","NodeDeleted","InvalidNodeId","InvalidGossipEndpoint","InvalidNodeAccountId","InvalidNodeDescription","InvalidServiceEndpoint","InvalidGossipCaCertificate","InvalidGrpcCertificate","InvalidMaxAutoAssociations","MaxNodesCreated","IpFqdnCannotBeSetForSameEndpoint","GossipEndpointCannotHaveFqdn","FqdnSizeTooLarge","InvalidEndpoint","GossipEndpointsExceededLimit","ServiceEndpointsExceededLimit","InvalidIpv4Address","TokenReferenceRepeated","InvalidOwnerId","TokenReferenceListSizeLimitExceeded","EmptyTokenReferenceList","UpdateNodeAccountNotAllowed","TokenHasNoMetadataOrSupplyKey","EmptyPendingAirdropIdList","PendingAirdropIdRepeated","MaxPendingAirdropIdExceeded","PendingNftAirdropAlreadyExists","AccountHasPendingAirdrops","ThrottledAtConsensus","InvalidPendingAirdropId","TokenAirdropWithFallbackRoyalty","InvalidTokenInPendingAirdrop","ScheduleExpiryIsBusy","InvalidGrpcCertificateHash","MissingExpiryTime","NoSchedulingAllowedAfterScheduledRecursion","RecursiveSchedulingLimitReached","WaitingForLedgerId","MaxEntriesForFeeExemptKeyListExceeded","FeeExemptKeyListContainsDuplicatedKeys","InvalidKeyInFeeExemptKeyList","InvalidFeeScheduleKey","FeeScheduleKeyCannotBeUpdated","FeeScheduleKeyNotSet","MaxCustomFeeLimitExceeded","NoValidMaxCustomFee","InvalidMaxCustomFees","DuplicateDenominationInMaxCustomFeeList","DuplicateAccountIdInMaxCustomFeeList","MaxCustomFeesIsNotSupported","BatchListEmpty","BatchListContainsDuplicates","BatchTransactionInBlacklist","InnerTransactionFailed","MissingBatchKey","BatchKeySetOnNonInnerTransaction","InvalidBatchKey","ScheduleExpiryNotConfigurable","CreatingSystemEntities","ThrottleGroupLcmOverflow","AirdropContainsMultipleSendersForAToken","GrpcWebProxyNotSupported","_fromCode","e$y","_fromValue","Cancelled","InvalidArgument","DeadlineExceeded","NotFound","AlreadyExists","PermissionDenied","ResourceExhausted","FailedPrecondition","Aborted","OutOfRange","Unimplemented","Internal","Unavailable","DataLoss","Unauthenticated","Timeout","GrpcWeb","r$C","_fromResponse","details","t$r","Finished","Retry","u$k","_maxAttempts","transactionNodeIds","_signOnDemand","_minBackoff","_maxBackoff","_operator","_requestTimeout","_grpcDeadline","_logger","nodeAccountIds","setNodeAccountIds","maxRetries","maxAttempts","setMaxRetries","setMaxAttempts","grpcDeadline","setGrpcDeadline","setMinBackoff","minBackoff","setMaxBackoff","maxBackoff","_beforeExecute","_makeRequestAsync","_mapStatusError","_mapResponse","_execute","_getTransactionId","_getLogId","_requestToBytes","_responseToBytes","_shouldRetry","_shouldRetryExceptionally","_setOperatorWith","transactionSigner","executeWithSigner","isBatchedAndNotBatchTransaction","network","requestTimeout","getNode","address","getChannel","isHealthy","race","increaseBackoff","decreaseBackoff","setLogger","contractFunctionResult","queryCost","maxQueryPayment","s$p","_makePaymentTransaction","_query","_header","getNodeAccountIdsForExecute","paymentTransactionId","setPaymentTransactionId","o.proto","COST_ANSWER","_onMakeRequest","_mapResponseHeader","_paymentTransactionId","_paymentTransactions","_queryPayment","_maxQueryPayment","_timestamp","query","_makeRequest","setQueryPayment","setMaxQueryPayment","getCost","_isPaymentRequired","_validateChecksums","isAutoValidateChecksumsEnabled","defaultMaxQueryPayment","_makeRequestHeader","ANSWER_ONLY","OK","contract_id","h.proto","__fromProtobufKey","m.proto","ADDRESS_BOOK","FEE_SCHEDULE","EXCHANGE_RATES","u.proto","n.proto","hbars","cents","exchangeRateInCents","trunc","d$h","topicId","scheduleId","nextExchangeRate","scheduledTransactionId","serials","duplicates","filedId","_j","_k","_l","l$l","_transactionId","_includeChildren","_includeDuplicates","_validateStatus","includeChildren","setIncludeChildren","setIncludeDuplicates","validateStatus","setValidateStatus","m$7","isApproved","o$u","topics","_BN","_constructorGuard","MAX_SAFE","_warnedToStringRadix","constructorGuard","_hex","toBN","throwFault","anyValue","logger$8","_base36To16","defineReadOnly","ModifiersBytes","calldata","memory","ModifiersNest","checkModifier","logger$7","parseParamType","param","allowIndexed","originalParam","newNode","allowType","indexed","allowParams","verifyType","components","allowName","allowArray","sibling","readArray","populate","FormatTypes","sighash","full","paramTypeArray","ParamType","arrayLength","arrayChildren","baseType","_isParamType","isParamType","Coder","localName","dynamic","_throwError","_data","_dataLength","_padding","_writeData","appendWriter","paddingOffset","_getValue","BUFFER_OVERRUN","writeValue","writeUpdatableValue","coerceFunc","allowLoose","_offset","consumed","coerce","_coerceFunc","_peekBytes","alignedLength","subReader","readBytes","readValue","INPUT_ERROR","WINDOW","JS_SHA3_NO_WINDOW","WEB_WORKER","JS_SHA3_NO_NODE_JS","COMMON_JS","JS_SHA3_NO_COMMON_JS","ARRAY_BUFFER","JS_SHA3_NO_ARRAY_BUFFER","CSHAKE_PADDING","SHAKE_BITS","OUTPUT_TYPES","CSHAKE_BYTEPAD","JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW","createOutputMethod","outputType","createShakeOutputMethod","outputBits","createCshakeOutputMethod","createKmacOutputMethod","createOutputMethods","createMethod","bytepad","Kmac","methodNames","methodName","newMethodName","finalized","notString","encodeString","strs","paddingBytes","finalize","sha3","keccak_256","arrayifyInteger","unarrayifyInteger","payload","logger$5","_decodeChildren","childOffset","lengthLength","getChecksumAddress","logger$4","expanded","hashed","log10","LN10","ibanLookup","safeDigits","ibanChecksum","getAddress","AddressCoder","defaultValue","AnonymousCoder","coder","coders","arrayValues","unique","logger$3","staticWriter","dynamicWriter","updateFuncs","dynamicOffset","updateFunc","baseOffset","unpack","baseReader","offsetReader","uniqueNames","ArrayCoder","defaultChild","BooleanCoder","DynamicBytesCoder","BytesCoder","FixedBytesCoder","NullCoder","NegativeOne","Zero","One","MaxUint256","NumberCoder","signed","maxUintValue","bounds","UnicodeNormalizationForm","Utf8ErrorReason","errorFunc","badCodepoint","ignoreFunc","BAD_PREFIX","UNEXPECTED_CONTINUE","OVERRUN","replaceFunc","OVERLONG","Utf8ErrorFuncs","ignore","getUtf8CodePoints","onError","extraLength","overlongMask","nextChar","MISSING_CONTINUE","OUT_OF_RANGE","UTF16_SURROGATE","toUtf8Bytes","pair","_toUtf8String","toUtf8String","StringCoder","TupleCoder","paramTypeBytes","paramTypeNumber","AbiCoder","_getCoder","component","logger$1","_getWordSize","_getReader","_getWriter","getDefaultValue","defaultAbiCoder","c$g","l$k","_createResult","logs","createdContractIds","senderAccountId","asBytes","getString","getBytes32","getBool","getUint24","getInt40","_getBytes32","getUint40","getInt48","getUint48","getInt56","getUint56","getInt64","getUint64","getInt72","getUint72","getInt80","getUint80","getInt88","getUint88","getInt96","getUint96","getInt104","getUint104","getInt112","getUint112","getInt120","getUint120","getInt128","getUint128","getInt136","getUint136","getInt144","getUint144","getInt152","getUint152","getInt160","getUint160","getInt168","getUint168","getInt176","getUint176","getInt184","getUint184","getInt192","getUint192","getInt200","getUint200","getInt208","getUint208","getInt216","getUint216","getInt224","getUint224","getInt232","getUint232","getInt240","getUint240","getInt248","getUint248","getInt256","getUint256","getResult","__set","s$o","sender","recipient","serial","_feeCollectorAccountId","setFeeCollectorAccountId","_tokenId","setTokenId","_amount","setAmount","_payerAccountIds","payerAccountIds","setPayerAccountIds","u$g","_accountId","setAccountId","_defaultMaxTransactionFee","n$s","e$v","t.proto","t$p","_senderId","_receiverId","_nftId","nftId","setSenderid","setReceiverId","setNftId","airdropId","transactionMemo","tokenTransfersList","hbarAllowanceAdjustments","tokenAllowanceAdjustments","nftAllowanceAdjustments","r$z","h$a","_validateReceiptStatus","validateReceiptStatus","setValidateReceiptStatus","_duplicates","h$9","getReceiptQuery","_retryTransaction","getRecordQuery","getVerboseRecord","getReceiptWithSigner","getRecordWithSigner","operatorAccountId","_resetTransaction","_transactions","s$n","e$u","_allCollectorsAreExempt","setAllCollectorsAreExempt","_denominatingTokenId","setDenominatingTokenId","setHbarAmount","hbarAmount","setDenominatingTokenToSameToken","_toTopicFeeProtobuf","_fees","setFees","getAccountId","getFees","P$5","__publicField","_transactionValidDuration","_customFeeLimits","_maxTransactionFee","_transactionMemo","_transactionIds","_publicKeys","_transactionSigners","_regenerateTransactionId","_batchKey","_isThrottled","l.proto","schedule","_requireNotFrozen","_setScheduledTransaction","batchify","setBatchKey","signWithOperator","_fromProtobufTransactions","setTransactionValidDuration","maxTransactionFee","setMaxTransactionFee","regenerateTransactionId","setRegenerateTransactionId","setTransactionMemo","getRequiredChunks","signWith","_isFrozen","freezeWith","_addSignatureLegacy","getSignaturesLegacy","_requireNotSignOnDemand","_buildAllTransactions","removeSignature","_removeSignaturesFromTransaction","removeAllSignatures","_collectSignaturesByPublicKey","getSignatures","getSignaturesAsync","_buildAllTransactionsAsync","_setTransactionId","_operatorAccountId","_setNodeAccountIds","_buildSignedTransactions","_makeSignedTransaction","_buildIncompleteTransactions","_freezeWithAccountId","signOnDemand","defaultMaxTransactionFee","defaultRegenerateTransactionId","_buildNewTransactionIdList","signWithSigner","freezeWithSigner","populateTransaction","toBytesAsync","getTransactionHash","getTransactionHashPerNode","networkName","_buildTransactionAsync","_buildTransaction","_signTransaction","_makeTransactionBody","_getTransactionDataCase","_makeTransactionData","_getScheduledTransactionBody","_requireOneNodeAccountId","_shouldRemoveSignature","receiverAccountId","t$l","_tokenTransfers","_nftTransfers","addTokenTransfer","addNftTransfer","_addNftTransfer","_addTokenTransfer","addApprovedNftTransfer","addApprovedTokenTransfer","addTokenTransferWithDecimals","tokenIdDecimals","sort","s$m","addApprovedTokenTransferWithDecimals","k$7","d$f","_pendingAirdropIds","pendingAirdropIds","addPendingAirdropId","setPendingAirdropIds","i$h","e$t","o$r","spenderAccountId","ownerAccountId","_fromGrantedProtobuf","e$s","allSerials","_fromRemoveProtobuf","c$f","_hbarApprovals","hbarApprovals","_tokenApprovals","tokenApprovals","_nftApprovals","nftApprovals","approveHbarAllowance","addHbarAllowance","approveTokenAllowance","addTokenAllowance","addTokenNftAllowance","_approveTokenNftAllowance","tokenNftApprovals","approveTokenNftAllowance","approveTokenNftAllowanceWithDelegatingSpender","_approveAllTokenNftAllowance","addAllTokenNftAllowance","approveTokenNftAllowanceAllSerials","deleteTokenNftAllowanceAllSerials","r$y","_nftAllowances","tokenNftAllowanceDeletions","deleteAllTokenNftAllowances","t$k","t$j","a$h","tokenDecimals","e$r","h$8","_initialBalance","_sendRecordThreshold","_receiveRecordThreshold","_receiverSignatureRequired","_proxyAccountId","_autoRenewPeriod","_accountMemo","_maxAutomaticTokenAssociations","_stakedAccountId","_stakedNodeId","_declineStakingReward","_alias","setKeyWithoutAlias","receiverSignatureRequired","setReceiverSignatureRequired","setInitialBalance","setProxyAccountId","setAutoRenewPeriod","accountMemo","setAccountMemo","setMaxAutomaticTokenAssociations","setStakedAccountId","setStakedNodeId","declineStakingReward","setDeclineStakingReward","setAlias","setKey","setECDSAKeyWithAlias","_deriveECDSAKeyAlias","setKeyWithAlias","declineStakingRewards","c$e","_transferAccountId","transferAccountId","setTransferAccountId","r$x","MAINNET","TESTNET","PREVIEWNET","LOCAL_NODE","isMainnet","isTestnet","isPreviewnet","isLocalNode","s$k","s$j","isKycGranted","d$e","isDeleted","isReceiverSignatureRequired","hbarAllowances","c.proto","c$d","e$q","s$h","_expirationTime","_aliasKey","setExpirationTime","clearAccountMemo","setAliasKey","clearStakedAccountId","clearStakedNodeId","t$i","_left","setLeft","_right","setRight","s$g","setNetwork","_host","host","setHost","newtork","s$f","_address","setAddress","_port","setPort","i$g","_publicKey","_nodeId","setNodeId","_certHash","certHash","setCertHash","_addresses","addresses","setAddresses","_description","setDescription","_stake","setStake","_nodeAddresses","nodeAddresses","setNodeAddresses","e.proto","d$d","_fileId","setFileId","_limit","setLimit","_retryHandler","_attempt","_timer","_makeServerStreamRequest","i.com","_mirrorNetwork","getNextMirrorNode","makeServerStreamRequest","i.proto","isClientShutDown","t$z","UnknownFreezeType","FreezeOnly","PrepareUpgrade","FreezeUpgrade","FreezeAbort","TelemetryUpgrade","_startTime","_startTimestamp","_endTime","_fileHash","_freezeType","setStartTime","endTime","setEndTime","startTimestamp","setStartTimestamp","updateFileId","setUpdateFileId","setFileHash","setFreezeType","_batchTransactions","setInnerTransactions","_validateTransaction","addInnerTransaction","innerTransactions","innerTransactionIds","o$n","smartContract","J","O","ot","ct","ut","int8","uint16","int16","uint24","int24","uint40","int40","uint48","int48","uint56","int56","uint72","int72","uint80","int80","uint88","int88","uint96","int96","uint104","int104","uint112","int112","uint120","int120","uint128","int128","uint136","int136","uint144","int144","uint152","int152","uint160","int160","uint168","int168","uint176","int176","uint184","int184","uint192","int192","uint200","int200","uint208","int208","uint216","int216","uint224","int224","uint232","int232","uint240","int240","uint248","int248","uint256","int256","bytes32","i$f","_params","_paramTypes","addString","_addParam","addStringArray","addBytes","addBytes32","addBytesArray","addBytes32Array","addInt8","addUint8","addInt16","addUint16","addInt24","addUint24","addInt32","addUint32","addInt40","addUint40","addInt48","addUint48","addInt56","addUint56","addInt64","addUint64","addInt72","addUint72","addInt80","addUint80","addInt88","addUint88","addInt96","addUint96","addInt104","addUint104","addInt112","addUint112","addInt120","addUint120","addInt128","addUint128","addInt136","addUint136","addInt144","addUint144","addInt152","addUint152","addInt160","addUint160","addInt168","addUint168","addInt176","addUint176","addInt184","addUint184","addInt192","addUint192","addInt200","addUint200","addInt208","addUint208","addInt216","addUint216","addInt224","addUint224","addInt232","addUint232","addInt240","addUint240","addInt248","addUint248","addInt256","addUint256","addInt8Array","addUint8Array","addInt16Array","addUint16Array","addInt24Array","addUint24Array","addInt32Array","addUint32Array","addInt40Array","addUint40Array","addInt48Array","addUint48Array","addInt56Array","addUint56Array","addInt64Array","addUint64Array","addInt72Array","addUint72Array","addInt80Array","addUint80Array","addInt88Array","addUint88Array","addInt96Array","addUint96Array","addInt104Array","addUint104Array","addInt112Array","addUint112Array","addInt120Array","addUint120Array","addInt128Array","addUint128Array","addInt136Array","addUint136Array","addInt144Array","addUint144Array","addInt152Array","addUint152Array","addInt160Array","addUint160Array","addInt168Array","addUint168Array","addInt176Array","addUint176Array","addInt184Array","addUint184Array","addInt192Array","addUint192Array","addInt200Array","addUint200Array","addInt208Array","addUint208Array","addInt216Array","addUint216Array","addInt224Array","addUint224Array","addInt232Array","addUint232Array","addInt240Array","addUint240Array","addInt248Array","addUint248Array","addInt256Array","addUint256Array","addBool","addAddress","addAddressArray","addFunction","_build","_$a","_selector","_arguments","l$f","_gas","setGas","_functionParameters","setFunctionParameters","setFunction","_maxResultSize","setMaxResultSize","_senderAccountId","setSenderAccountId","_mapResponseSync","l$e","_contents","_fileMemo","setKeys","setContents","fileMemo","setFileMemo","file","c$c","_maxChunks","_chunkSize","_chunkInterval","maxChunks","setMaxChunks","chunkSize","setChunkSize","chunkInterval","setChunkInterval","executeAll","d$b","_bytecodeFileId","_bytecode","_adminKey","_constructorParameters","_contractMemo","_autoRenewAccountId","bytecodeFileId","setBytecodeFileId","setBytecode","setAdminKey","setConstructorParameters","contractMemo","setContractMemo","setAutoRenewAccountId","_transferContractId","transferContractId","setTransferContractId","s$d","setPayableAmount","payableAmount","m$5","e$n","u$d","clearContractMemo","clearAutoRenewAccountId","_value","Inclusive","Exclusive","e$m","e$l","_ethereumData","_callDataFileId","_maxGasAllowance","setEthereumData","setCallDataFileId","callDataFileId","setMaxGasAllowanceHbar","setCallData","setMaxGasAllowance","gasPrice","gasLimit","t.decode","t.encode","e$j","chainId","maxPriorityGas","maxGas","accessList","Default","TokenFungibleCommon","TokenNonFungibleUnique","TokenFungibleCommonWithCustomFees","TokenNonFungibleUniqueWithCustomFees","ScheduleCreateContractCall","TopicCreateWithCustomFees","e$h","None","CryptoTransfer","CryptoUpdate","CryptoDelete","CryptoAddLiveHash","CryptoDeleteLiveHash","ContractCall","ContractCreate","ContractUpdate","FileCreate","FileAppend","FileUpdate","FileDelete","CryptoGetAccountBalance","CryptoGetAccountRecords","CryptoGetInfo","ContractCallLocal","ContractGetInfo","ContractGetBytecode","GetBySolidityID","GetByKey","CryptoGetLiveHash","CryptoGetStakers","FileGetContents","FileGetInfo","TransactionGetRecord","CryptoCreate","SystemDelete","SystemUndelete","ContractDelete","Freeze","CreateTransactionRecord","CryptoAccountAutoRenew","ContractAutoRenew","GetVersionInfo","TransactionGetReceipt","ConsensusCreateTopic","ConsensusUpdateTopic","ConsensusDeleteTopic","ConsensusGetTopicInfo","ConsensusSubmitMessage","UncheckedSubmit","TokenCreate","TokenGetInfo","TokenFreezeAccount","TokenUnfreezeAccount","TokenGrantKycToAccount","TokenRevokeKycFromAccount","TokenDelete","TokenUpdate","TokenMint","TokenBurn","TokenAccountWipe","TokenAssociateToAccount","TokenDissociateFromAccount","ScheduleCreate","ScheduleDelete","ScheduleSign","ScheduleGetInfo","TokenGetAccountNftInfos","TokenGetNftInfo","TokenGetNftInfos","TokenFeeScheduleUpdate","NetworkGetExecutionTime","TokenPause","TokenUnpause","CryptoApproveAllowance","CryptoDeleteAllowance","GetAccountDetails","EthereumTransaction","NodeStakeUpdate","Prng","TransactionGetFastRecord","TokenUpdateNfts","NodeCreate","NodeUpdate","NodeDelete","TokenReject","TokenAirdrop","TokenCancelAirdrop","TokenClaimAirdrop","TssMessage","TssVote","TssShareSignature","TssEncryptionKey","HistoryAssemblySignature","HistoryProofKeyPublication","HintsKeyPublication","HintsPreprocessingVote","HintsPartialSignature","CrsPublication","AtomicBatch","n$o","f$7","o$l","l$c","clearFileMemo","i$e","_duration","setHash","setDuration","a$d","o$k","o$j","e$g","protobufVersion","servicesVersion","o$i","_range","setRange","u$c","_scheduledTransaction","_payerAccountId","_scheduleMemo","_scheduledSignerPublicKeys","_waitForExpiry","setPayerAccountId","scheduleMemo","setScheduleMemo","payerAccountId","getScheduleMemo","setScheduledTransaction","setWaitForExpiry","_scheduleId","setScheduleId","c$a","creatorAccountId","schedulableTransactionBody","executed","scheduledTransaction","o2","r$t","o$h","_tokenIds","tokenIds","setTokenIds","_serials","setSerials","t$g","_owner","setOwnerId","_nftIds","nftIds","setNftIds","addTokenId","addNftId","ownerId","_numerator","setNumerator","_denominator","setDenominator","_min","setMin","_max","setMax","_assessmentMethod","assessmentMethod","setAssessmentMethod","l$b","_fallbackFee","setFallbackFee","FungibleCommon","NonFungibleUnique","e$e","Infinite","Finite","e$d","_$9","_tokenName","_tokenSymbol","_decimals","_initialSupply","_treasuryAccountId","_kycKey","_freezeKey","_pauseKey","_wipeKey","_supplyKey","_feeScheduleKey","_freezeDefault","_tokenMemo","_customFees","_tokenType","_supplyType","_maxSupply","_metadataKey","_metadata","tokenName","setTokenName","tokenSymbol","setTokenSymbol","setDecimals","setInitialSupply","treasuryAccountId","setTreasuryAccountId","setKycKey","setFreezeKey","setPauseKey","setWipeKey","setSupplyKey","setFeeScheduleKey","setFreezeDefault","tokenMemo","setTokenMemo","setCustomFees","setTokenType","setSupplyType","setMaxSupply","setMetadataKey","setMetadata","u$9","r$o","r$n","d$9","r$m","addMetadata","n$l","toJson","u$8","_start","setStart","_end","setEnd","r$k","r$j","FullValidation","NoValidation","t$f","_keyVerificationMode","setKeyVerificationMode","setsupplyKey","clearTokenMemo","s$c","c$9","_submitKey","_feeExemptKeys","_topicMemo","setSubmitKey","feeExemptKeys","setFeeExemptKeys","topicMemo","setTopicMemo","getTopicMemo","getAdminKey","getSubmitKey","getFeeScheduleKey","getFeeExemptKeys","addFeeExemptKey","clearFeeExemptKeys","getAutoRenewAccountId","getAutoRenewPeriod","getCustomFees","addCustomFee","clearCustomFees","consensus","_topicId","setTopicId","l$a","n$j","_message","setMessage","_chunkInfo","getCustomFeeLimits","setCustomFeeLimits","addCustomFeeLimit","getMaxChunks","getChunkSize","l$9","clearTopicId","clearTopicMemo","clearAdminKey","clearSubmitKey","clearFeeScheduleKey","n$i","_hbarTransfers","hbarTransfers","addHbarTransfer","hbarTransfersList","_addHbarTransfer","addApprovedHbarTransfer","setHbarTransferApproval","setTokenTransferApproval","setNftTransferApproval","tryStringify","quickFormatUnescaped","ss","argLen","lastPos","flen","browser$4","pino","_console","pfGlobalThisOrFallback","stdSerializers","mapHttpRequest","mock","mapHttpResponse","wrapRequestSerializer","passthrough","wrapResponseSerializer","wrapErrorSerializer","asErrValue","errWithCause","levelToValue","baseLogFunctionSymbol","hierarchySymbol","logFallbackMap","fatal","appendChildLogger","parentLogger","childLogger","newEntry","setupBaseLogFunctions","logFunctions","shouldSerialize","serialize","serializers","transmit","send","asObject","stdErrSerialize","customLevels","enabled","disabled","_level","set$2","setOpts","formatters","timestamp","getTimeFunction","messageKey","onChild","bindings","childOptions","childOptionsSerializers","childSerializers","assign","childSerialize","applySerializers","_stdErrSerialize","Child","_childLevel","_serialize","_logEvent","createLogEventShape","newLogger","getLevels","labels","invertObject","getBindingChain","hierarchy","rootLogger","transmitValue","createWrap","prependBindingsInArguments","logFunc","argsIsSerialized","transmitLevel","methodValue","methodLevel","levelFormatter","logObjectFormatter","argsCloned","logObject","formattedLevel","lvl","messages","nullTime","epochTime","unixTime","isoTime","defd","pino$1","stdTimeFunctions","Silent","Trace","Debug","Info","Warn","Fatal","_serialNumbers","setSerialNumbers","_ipAddressV4","_domainName","setIpAddressV4","getIpAddressV4","getPort","setDomainName","getDomainName","_gossipEndpoints","gossipEndpoints","_serviceEndpoints","serviceEndpoints","_gossipCaCertificate","_grpcCertificateHash","_declineReward","setGossipEndpoints","addGossipEndpoint","setServiceEndpoints","addServiceEndpoint","setGossipCaCertificate","setCertificateHash","certificateHash","setDeclineReward","addressBook","n$h","r$h","clearDescription","Mainnet","Testnet","Previewnet","r$g","toInsecure","toSecure","isTransportSecurity","t$b","_cert","_channel","_channelInitFunction","channelInitFunction","_lastUsed","_readmitTime","_useCount","_badGrpcStatusCount","_currentBackoff","cloneNode","setCert","attempts","__lastUsed","getRemainingTime","backoff","close","d$7","_nodeAddress","setNodeAddress","o$c","_nodes","_healthyNodes","_createNetworkChannel","_maxNodeAttempts","_nodeMinReadmitPeriod","_nodeMaxReadmitPeriod","_earliestReadmitTime","setNetworkName","setLedgerId","_createNodeFromNetworkEntry","_getNodesToRemove","_removeDeadNodes","_closeNode","_readmitNodes","_getNumberOfMostHealthyNodes","_removeNodeFromNetwork","_setNetwork","maxNodeAttempts","setMaxNodeAttempts","nodeMinReadmitPeriod","setNodeMinReadmitPeriod","nodeMaxReadmitPeriod","setNodeMaxReadmitPeriod","_maxNodesPerTransaction","_addressBook","_transportSecurity","setNetworkFromAddressBook","_checkNetworkContainsEntry","maxNodesPerTransaction","setMaxNodesPerTransaction","setTransportSecurity","getNumberOfNodesForTransaction","m$4","_createMirrorNetworkChannel","_defaultMaxQueryPayment","operator","setOperator","_autoValidateChecksums","_defaultRegenerateTransactionId","_isUpdatingNetwork","_networkUpdatePeriod","_isShutdown","scheduleNetworkUpdate","_scheduleNetworkUpdate","setMirrorNetwork","setSignOnDemand","setOperatorWith","getOperator","setAutoValidateChecksums","operatorPublicKey","setDefaultMaxTransactionFee","setDefaultRegenerateTransactionId","setDefaultMaxQueryPayment","nodeWaitTime","setNodeWaitTime","setNodeMinBackoff","nodeMinBackoff","setNodeMaxBackoff","nodeMaxBackoff","setRequestTimeout","networkUpdatePeriod","setNetworkUpdatePeriod","ping","pingAll","updateNetwork","n$f","_crypto","_smartContract","_file","_consensus","_freeze","_token","_schedule","_util","_createUnaryClient","ok","i$9","fromConfig","forNetwork","forName","forMainnet","forTestnet","forPreviewnet","u$6","_hbarAllowances","_tokenAllowances","_adjustHbarAllowance","grantHbarAllowance","revokeHbarAllowance","_adjustTokenAllowance","grantTokenAllowance","revokeTokenAllowance","_adjustTokenNftAllowance","grantTokenNftAllowance","revokeTokenNftAllowance","_adjustTokenNftAllowanceAllSerials","grantTokenNftAllowanceAllSerials","revokeTokenNftAllowanceAllSerials","verifySignature","verifySignatureWithSigner","verifyTransactionWithSigner","c$8","_contractCreate","maxAutomaticTokenAssociation","getAccountKey","o$9","transactionBandwidthByte","transactionVerification","transactionRamByteHour","transactionStorageByteHour","contractTransactionGas","transferVolumeHbar","responseMemoryByte","responseDiskByte","feeDataType","r$b","r$a","e$9","_contractEvmAddress","_sender","_senderEvmAddress","_functionName","_gasLimit","_gasPrice","_blockNumber","setSender","setSenderEvmAddress","setGasLimit","setGasPrice","setBlockNumber","contractEvmAddress","senderEvmAddress","performMirrorNodeRequest","_fillEvmAddress","JSONPayload","estimate","t$8","_call","_unsubscribed","_setCall","unsubscribe","i$8","_ownerId","_freezeWithClient","_signPrivateKey","_signPublicKey","_transactionSigner","requireNotFrozen","fillOutTransaction","n$b","initialTransactionId","_ofSingle","_ofMany","a$8","_errorHandler","errorHandler","_listener","_completionHandler","completionHandler","retryHandler","_handle","requireNotSubscribed","setErrorHandler","setCompletionHandler","subscribe","_buildConsensusRequest","_handleMessage","_handleError","_passTopicMessage","_handleChunkedMessage","shouldRetry","_scheduleRetry","u$5","signer","provider","createRandomED25519","createRandomECDSA","getProvider","getLedgerId","getNetwork","getMirrorNetwork","getAccountBalance","checkTransaction","r$7","destination","fsync","mkdir","minLength","transport","translateTime","_previousLevel","setLevel","setSilent","silent","HederaChainId","HederaSessionEvent","HederaJsonRpcMethod","freezeTransaction","setDefaultNodeAccountIds","isNodeAccountIdNotSet","AccountId","transactionToBase64String","transactionToTransactionBody","transactionBodyToBase64String","transactionBody","Uint8ArrayToBase64String","base64StringToSignatureMap","base64string","Uint8ArrayToString","base64StringToUint8Array","queryToBase64String","queryBytes","prefixMessageToSign","verifyMessageSignature","base64SignatureMap","signatureMap","LEDGER_ID_MAPPINGS","LedgerId","DEFAULT_LEDGER_ID","DEFAULT_CAIP","CAIPChainIdToLedgerId","chainId_","ledgerIdToCAIPChainId","ledgerId_","networkNamespaces","chains","accountAndLedgerFromSession","session","hederaNamespace","namespaces","accounts","chain","EVENTS","findExtensions","onFound","extensionResponse","iframeQueryResponse","extensionQuery","iframeQuery","extensionConnect","isIframe","pairingString","iframeConnect","extensionOpen","extendStatics","__extends","__","__assign","__rest","__decorate","decorators","decorate","__param","paramIndex","decorator","__metadata","metadataValue","__awaiter","fulfilled","rejected","__generator","sent","trys","ops","verb","throw","return","op","__createBinding","__exportStar","__values","__read","__spread","__spreadArrays","il","jl","__await","__asyncGenerator","fulfill","settle","__asyncDelegator","__asyncValues","__makeTemplateObject","cooked","__importStar","__importDefault","__classPrivateFieldGet","privateMap","__classPrivateFieldSet","delay_1","delay","misc","ONE_THOUSAND","ONE_HUNDRED","ONE_YEAR","FOUR_WEEKS","THREE_WEEKS","TWO_WEEKS","ONE_WEEK","THIRTY_DAYS","SEVEN_DAYS","FIVE_DAYS","THREE_DAYS","ONE_DAY","TWENTY_FOUR_HOURS","TWELVE_HOURS","SIX_HOURS","THREE_HOURS","SIXTY_MINUTES","THIRTY_MINUTES","TEN_MINUTES","FIVE_MINUTES","ONE_MINUTE","SIXTY_SECONDS","THIRTY_SECONDS","TEN_SECONDS","FIVE_SECONDS","ONE_SECOND","ONE_HOUR","tslib_1","convert","fromMiliseconds","toMiliseconds","constants_1","miliseconds","watch","Watch","timestamps","started","elapsed","IWatch","IEvents","pulse","interval","initialize","clearInterval","intervalRef","setInterval","suspectProtoRx","suspectConstructorRx","JsonSigRx","jsonParseTransform","warnKeyDropped","destr","_lval","POSITIVE_INFINITY","NEGATIVE_INFINITY","strict","wrapToPromise","asyncCall","function_","arguments_","isPureObject","isPrototypeOf","BASE64_PREFIX","serializeRaw","base64Encode","deserializeRaw","base64Decode","codePointAt","fromCodePoint","normalizeKey","joinKeys","normalizeBaseKey","defineDriver","DRIVER_NAME","getInstance","hasItem","getItemRaw","setItemRaw","getKeys","dispose","createStorage","mounts","driver","mountpoints","watching","watchListeners","unwatch","getMount","relativeKey","getMounts","includeParent","mountpoint","relativeBase","onChange","stopWatch","runBatch","commonOptions","batches","getBatch","mount","batch","isStringItem","options2","flat","getItems","setItems","removeMeta","removeMata","getMeta","nativeOnly","meta","value_","atime","mtime","setMeta","maskedMounts","allKeys","rawKeys","fullKey","startWatch","unwatcher","unmount","_dispose","del","remove","promisifyRequest","oncomplete","onsuccess","onabort","createStore","dbName","storeName","indexedDB","onupgradeneeded","createObjectStore","dbp","txMode","objectStore","defaultGetStoreFunc","defaultGetStore","customStore","store","put","eachCursor","openCursor","continue","getAllKeys","cursor","JSONStringify","JSONParse","serializedData","safeJsonParse","safeJsonStringify","_$8","indexedDb","getEntries","__defineGetter__","K$3","h$7","initialized","setInitialized","fallback","levelVal","wrap$1","O$5","nodeValue","sizeInBytes","d$6","lengthInNodes","maxSizeInBytes","toOrderedArray","levelValue","MAX_LOG_SIZE_IN_BYTES","forwardToConsole","appendToLogs","getLogs","clearLogs","getLogArray","logsToBlob","extraMetadata","m$3","baseChunkLogger","downloadLogsBlobInBrowser","href","download","click","B$3","T$5","z$7","chunkLoggerController","loggerOverride","browser$2","BrowserRandomSource","QUOTA","isAvailable","isInstantiated","browserCrypto","wipe","wipe_1","wipe$1","NodeRandomSource","nodeCrypto","system","SystemRandomSource","browser_1","node_1","_source","int_1","readInt64BE","readUint64BE","readInt64LE","readUint64LE","writeUint64BE","writeUint64LE","readFloat32BE","getFloat32","readFloat32LE","readFloat64BE","getFloat64","readFloat64LE","writeFloat32BE","setFloat32","writeFloat32LE","writeFloat64BE","setFloat64","writeFloat64LE","writeInt64LE","randomStringForEntropy","randomUint32","defaultRandomSource","system_1","binary_1","ALPHANUMERIC","randomString","charset","charsLen","maxByte","randomByte","DIGEST_LENGTH","BLOCK_SIZE","digestLength","_stateHi","_stateLo","_tempHi","_tempLo","_bufferLength","_bytesHashed","_finished","_initState","dataLength","dataPos","hashBlocks","bytesHashed","bitLenHi","bitLenLo","saveState","stateHi","stateLo","bufferLength","restoreState","savedState","cleanSavedState","convertSecretKeyToX25519","convertPublicKeyToX25519","extractPublicKeyFromSecretKey","generateKeyPair","generateKeyPairFromSeed","SEED_LENGTH","SECRET_KEY_LENGTH","PUBLIC_KEY_LENGTH","SIGNATURE_LENGTH","random_1","sha512_1","verify32","square","edadd","hs","JWT_IRIDIUM_ALG","JWT_IRIDIUM_TYP","JWT_DELIMITER","JWT_ENCODING","JSON_ENCODING","DATA_ENCODING","DID_DELIMITER","DID_PREFIX","DID_METHOD","MULTICODEC_ED25519_ENCODING","MULTICODEC_ED25519_BASE","MULTICODEC_ED25519_HEADER","KEY_PAIR_SEED_LENGTH","curr","BASE_MAP","LEADER","FACTOR","iFACTOR","decodeUnsafe","psz","zeroes","b256","it3","it4","vch","pbegin","pend","b58","it1","it2","repeat","_brrp__multiformats_scope_baseX","Encoder","baseEncode","Decoder","baseDecode","prefixCodePoint","ComposedDecoder","Codec","encoder","baseX","basex","bitsPerChar","rfc4648","identity","base2","base8","base10","base16","base16upper","base32upper","base32pad","base32padupper","base32hex","base32hexupper","base32hexpad","base32hexpadupper","base32z","base36","base36upper","base58btc","base58flickr","base64pad","base64urlpad","alphabetBytesToChars","alphabetCharsToBytes","byts","byt","base256emoji","bases","identityBase","createCodec","ascii","BASES","latin1","decodeJSON","encodeJSON","encodeIss","multicodec","encodeSig","decodeSig","encodeData","encodeJWT","decodeJWT","jwt","ed25519.generateKeyPairFromSeed","signJWT","aud","ttl","iat","typ","iss","ed25519.sign","getFromWindow","getFromWindowOrThrow","getDocumentOrThrow","getDocument","cjs","cjs$6","getLocalStorage","getLocalStorageOrThrow","getCrypto","getLocation_1","getLocation","getLocationOrThrow","getNavigator_1","getNavigator","getNavigatorOrThrow","getDocument_1","getCryptoOrThrow","cjs$5","getWindowMetadata","window_getters_1","doc","loc","getWindowMetadataOfAny","metaTags","getElementsByTagName","getAttribute","getName","icons","links","link","rel","absoluteHref","protocol","pathname","absoluteUrl","getIcons","strictUriEncode","singleMatcher","multiMatcher","decodeComponents","customDecodeURIComponent","replaceMap","decodeUriComponent","encodedURI","splitOnFirst","separator","separatorIndex","filterObj","predicate","isArr","decodeComponent","filterObject","encodeFragmentIdentifier","validateArrayFormatSeparator","keysSorter","removeHash","hashStart","extract","queryStart","parseValue","parseNumbers","parseBooleans","arrayFormat","arrayFormatSeparator","formatter","accumulator","isEncodedArray","arrayValue","parserForArrayFormat","shouldFilter","skipNull","skipEmptyString","keyValueSep","encoderForArrayFormat","objectCopy","parseUrl","url_","parseFragmentIdentifier","fragmentIdentifier","stringifyUrl","queryFromUrl","parsedQueryFromUrl","queryString","pick","exclude","exclusionFilter","hashMessage","createCommonjsModule","basedir","commonjsRequire","assert$9","utils_1","utils_1$1","assert$1","BaseCurve$1","BasePoint$1","inherits_browser","assert$2","base$1","short_1","ShortCurve$1","Point$3","JPoint$1","curve_1","curves_1","crash","HmacDRBG$1","assert$3","KeyPair$4","assert$3$1","assert$4","Signature$4","constructLength$1","assert$5","EC$1","assert$5$1","signature$1","elliptic_1","_curve","getCurve","SigningKey","_addPoint","p0","signDigest","digestBytes","computeSharedSecret","otherKey","otherKeyPair","computePublicKey","isSigningKey","_isSigningKey","compressed","TransactionTypes","computeAddress","recoverAddress","chacha","ROUNDS","core","streamXOR","nonceInplaceCounterLength","nc","counterLength","incrementCounter","select","subject","resultIfOne","resultIfZero","lessOrEqual","constantTime","constant_time_1","Poly1305","_r","_leftover","_fin","_blocks","oneTimeAuth","chacha_1","poly1305_1","KEY_LENGTH","NONCE_LENGTH","TAG_LENGTH","ChaCha20Poly1305","tagLength","plaintext","associatedData","authKey","resultLength","_authenticate","sealed","calculatedTag","tagOut","isSerializableHash","hash$1","hmac_1","hash_1","_inner","_outer","_innerKeyedState","_outerKeyedState","hmac$1","hkdf","HKDF","_counter","_info","okm","_bufpos","_fillBuffer","HKDF_1","_state","_temp","sharedKey","scalarMultBase","SHARED_KEY_LENGTH","mySecretKey","theirPublicKey","rejectZero","waku","publish","batchPublish","batchSubscribe","subscription","batchUnsubscribe","batchFetchMessages","irn","iridium","Vn","INVALID_METHOD","INVALID_EVENT","INVALID_UPDATE_REQUEST","INVALID_EXTEND_REQUEST","INVALID_SESSION_SETTLE_REQUEST","UNAUTHORIZED_METHOD","UNAUTHORIZED_EVENT","UNAUTHORIZED_UPDATE_REQUEST","UNAUTHORIZED_EXTEND_REQUEST","USER_REJECTED","USER_REJECTED_CHAINS","USER_REJECTED_METHODS","USER_REJECTED_EVENTS","UNSUPPORTED_CHAINS","UNSUPPORTED_METHODS","UNSUPPORTED_EVENTS","UNSUPPORTED_ACCOUNTS","UNSUPPORTED_NAMESPACE_KEY","USER_DISCONNECTED","SESSION_SETTLEMENT_FAILED","WC_METHOD_UNSUPPORTED","PARSE_ERROR","INVALID_REQUEST","METHOD_NOT_FOUND","INVALID_PARAMS","INTERNAL_ERROR","SERVER_ERROR","RESERVED_ERROR_CODES","STANDARD_ERROR_MAP","DEFAULT_ERROR","isReservedErrorCode","getError","getErrorByCode","find","parseConnectionError","getBrowerCrypto","getSubtleCrypto","webkitSubtle","isBrowserCryptoAvailable","isReactNative","product","isBrowser","payloadId","getBigIntRpcId","formatJsonRpcRequest","jsonrpc","formatJsonRpcResult","formatJsonRpcError","formatErrorMessage","n$8","WS_REGEX","getUrlProtocol","matches","matchRegexProtocol","isWsUrl","isLocalhostUrl","isJsonRpcPayload","isJsonRpcRequest","isJsonRpcResponse","isJsonRpcResult","isJsonRpcError","o$8","hasRegisteredEventListeners","connection","setConnection","connected","registerEventListeners","connect","disconnect","requestStrict","onPayload","onClose","HASH_UNDEFINED","argsTag","arrayTag","boolTag","dateTag","errorTag","funcTag","mapTag","numberTag","objectTag","promiseTag","regexpTag","setTag","stringTag","symbolTag","weakMapTag","arrayBufferTag","dataViewTag","reIsHostCtor","reIsUint","typedArrayTags","freeGlobal","freeSelf","freeExports","nodeType","freeModule","moduleExports","freeProcess","nodeUtil","nodeIsTypedArray","arraySome","mapToArray","setToArray","uid","arrayProto","funcProto","objectProto","coreJsData","funcToString","maskSrcKey","IE_PROTO","nativeObjectToString","reIsNative","symToStringTag","nativeGetSymbols","nativeIsBuffer","nativeKeys","getNative","nativeCreate","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","ListCache","MapCache","SetCache","__data__","Stack","arrayLikeKeys","isArg","isBuff","isType","skipIndexes","iteratee","baseTimes","isIndex","assocIndexOf","baseGetTag","unmasked","getRawTag","baseIsArguments","isObjectLike","baseIsEqual","bitmask","customizer","equalFunc","objIsArr","othIsArr","objTag","getTag","othTag","objIsObj","othIsObj","isSameTag","equalArrays","isPartial","stacked","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","objProps","objLength","othProps","othLength","skipCtor","objValue","othValue","compared","objCtor","othCtor","equalObjects","baseIsEqualDeep","baseIsNative","isMasked","baseKeys","Ctor","arrValue","othIndex","keysFunc","symbolsFunc","arrayPush","baseGetAllKeys","getSymbols","getMapData","pairs","LARGE_ARRAY_SIZE","resIndex","arrayFilter","ctorString","isLength","baseUnary","unfetch_module","XMLHttpRequest","statusText","responseURL","responseText","blob","onload","getAllResponseHeaders","withCredentials","credentials","setRequestHeader","Dt","ht","lt$2","dt$2","pt$3","pt","ft$1","dt","Et","bt","yt","wt","Ct","mt","vt","At","_t","xt","Rt","Ft","Tt","It","qt","Ut","Ot","St","Pt","Nt","$t","Bt","zt","jt","Mt","Lt","Kt","Vt","kt","Jt","Xt","Gt","Ht","Yt","Qt","Zt","Wt","rr","oe","se","nr","ur","ue","Dr","lr","pr","fr","gr","Er","ae","De","ce","yr","yr$2","he","wr","wr$2","Cr","mr","vr","de","Ar","pe","xr","Rr","n$7","h$6","g$5","relayer","u$4","x$5","y$6","projectId","C$5","telemetryEnabled","S$7","M$5","client","__spreadArray","BrowserInfo","os","NodeInfo","SearchBotDeviceInfo","bot","BotInfo","ReactNativeInfo","SEARCHBOX_UA_REGEX","SEARCHBOT_OS_REGEX","REQUIRED_VERSION_PARTS","userAgentRules","operatingSystemRules","detect","userAgent","parseUserAgent","getNodeVersion","matchUserAgent","ua","matched","uaMatch","matchedRule","versionParts","createVersionParts","detectOS","searchBotMatch","ii","getWindowMetadata_1","Base$2","Point$2","inherits$2","Base$1","Point$1","assert$6","KeyPair$3","Signature$3","KeyPair$1","Signature$1","namespace","reference","Ke","Le","Fe","vt$1","bt$1","qe","reactNative","unknown","He","je","Application","applicationId","We","q.parse","q.stringify","it","Je","Platform","OS","Version","ze","Te","Ge","relayUrl","sdkVersion","auth","useOnCloseEvent","bundleId","fromEntries","Ie","wcDeepLink","Xe","hasFocus","en","Linking","openURL","nn","randomUUID","IS_VITEST","TelegramWebviewProxy","Telegram","TelegramWebviewProxyProto","tn","rn","Pe","cn","Zt$1","Xt$1","an","un","ln","fe","cacao","dn","domain","statement","nbf","requestId","resources","hn","yn","att","gn","localeCompare","e2","me","ability","action","eip155","ve","wn","be","_e.generateKeyPair","_e.sharedKey","Ce","Ue","Ee","senderPublicKey","we","Ae","symKey","te","On","receiverPublicKey","Or","Nr","Nn","Sr","$r","Sn","Ir","relay","jr","Tr","Pr","$n","Ur","Rn","In","Cr$1","Ur$1","jn","kr","Tn","expiryTimestamp","Pn","Un","_n","kn","xn","Jr","Mn","NOT_INITIALIZED","NO_MATCHING_KEY","RESTORE_WILL_OVERRIDE","RESUBSCRIBED","MISSING_OR_INVALID","EXPIRED","UNKNOWN_TYPE","MISMATCHED_TOPIC","NON_CONFORMING_NAMESPACES","requiredNamespaces","Kn","Gr","Yr","proposer","Qr","Zr","Se","Ln","qn","Bn","Hn","$e","Xr","Wn","Jn","eo","oo","so","co","ao","uo","zn","fo","Gn","po","mo","Yn","Qn","Zn","onLine","NetInfo","isConnected","ho","Xn","global$1","Re","yo","WebSocket","f$5","registering","socket","connecting","register","resetMaxListeners","URLSearchParams","rejectUnauthorized","emitError","onopen","onOpen","onmessage","parseError","Ye","database","Ze","Qe","Ni","message_ack","connection_stalled","transport_closed","link_mode","created","expired","resubscribed","wc_pairingDelete","prompt","wc_pairingPing","unregistered_method","expire","updated","pairing_started","pairing_uri_validation_success","pairing_uri_not_expired","store_new_pairing","subscribing_pairing_topic","subscribe_pairing_topic_success","existing_pairing","pairing_not_expired","emit_inactive_pairing","emit_session_proposal","subscribing_to_pairing_topic","no_wss_connection","no_internet_connection","malformed_pairing_uri","active_pairing_already_exists","subscribe_pairing_topic_failure","pairing_expired","proposal_expired","proposal_listener_not_found","Is","session_approve_started","proposal_not_expired","session_namespaces_validation_success","create_session_topic","subscribing_session_topic","subscribe_session_topic_success","publishing_session_approve","session_approve_publish_success","store_session","publishing_session_settle","session_settle_publish_success","Ts","subscribe_session_topic_failure","session_approve_publish_failure","session_settle_publish_failure","session_approve_namespace_validation_failure","proposal_not_found","Cs","authenticated_session_approve_started","authenticated_session_not_expired","chains_caip2_compliant","chains_evm_compliant","create_authenticated_session_topic","cacaos_verified","store_authenticated_session","subscribing_authenticated_session_topic","subscribe_authenticated_session_topic_success","publishing_authenticated_session_approve","authenticated_session_approve_publish_success","Ps","missing_session_authenticate_request","session_authenticate_request_expired","chains_caip2_compliant_failure","chains_evm_compliant_failure","invalid_cacao","subscribe_authenticated_session_topic_failure","authenticated_session_approve_publish_failure","authenticated_session_pending_request_not_found","Ss","Rs","Os","As","Ns","Ls","$s","Ms","Us","Fs","Ks","Bs","Vs","js","qs","Gs","Hs","Ys","Js","Xs","Ws","Zs","Qs","Lr","Mr","Fr","Kr","Br","Vr","qr","Hr","Wr","keychain","storagePrefix","getKeyChain","isInitialized","persist","storageKey","customStoragePrefix","setKeyChain","randomSessionIdentifier","hasKeys","getClientId","te.encodeIss","te.generateKeyPair","getClientSeed","$i","te.signJWT","generateSharedKey","setSymKey","Mi","deleteKeyPair","deleteSymKey","Ui","Li","Oe","Fi","getSymKey","Ki","Bi","ji","getPayloadType","qi","Ne","getPayloadSenderPublicKey","ls","Gi","getRelayerMessages","setRelayerMessages","wi","publishTimeout","failedPublishTimeout","needsTransportRestart","Be","attestation","rpcPublish","internal","throwOnFailedPublish","direction","removeRequestFromQueue","checkQueue","heartbeat","exists","Ii","subscriptions","topicMap","cached","pendingSubscriptionWatchLabel","pollingInterval","subscribeTimeout","restartInProgress","batchSubscribeTopicsLimit","pendingBatchMessages","clientId","transportType","rpcSubscribe","onSubscribe","restartToComplete","unsubscribeById","unsubscribeByTopic","isSubscribed","onConnect","onDisconnect","restart","ids","hasSubscription","getSubscription","onEnable","onDisable","rpcUnsubscribe","onUnsubscribe","rpcBatchSubscribe","rpcBatchFetchMessages","setSubscription","onBatchSubscribe","deleteSubscription","setRelayerSubscriptions","getRelayerSubscriptions","addSubscription","checkPending","handleBatchMessageEvents","transportOpen","ei","ti","Ti","transportExplicitlyClosed","connectionAttemptInProgress","connectionStatusPollingInterval","staleConnectionErrors","hasExperiencedNetworkDisruption","requestsInFlight","heartBeatTimeout","toEstablishConnection","resetPingTimeout","pingTimeout","onPayloadHandler","onProviderPayload","onConnectHandler","startPingTimeout","onDisconnectHandler","onProviderDisconnect","onProviderErrorHandler","transportClose","registerProviderListeners","subscriber","publisher","Yi","readyState","recordMessageEvent","publishedAt","transportDisconnect","confirmOnlineStateOrThrow","createProvider","finally","reconnectTimeout","isConnectionStalled","restartTransport","onMessageEvent","onLinkMessageEvent","sessionExists","active","pairing","pairings","unregisterProviderListeners","us","gs","Ji","shouldIgnoreMessageEvent","Ve","acknowledgePayload","Xi","si","ri","Ci","recentlyDeleted","recentlyDeletedLimit","Wi","getData","getAll","ys","addToRecentlyDeleted","setDataStore","getDataStore","oi","mi","ignoredPayloadTypes","Qi","registeredMethods","registerRelayerEvents","registerExpirerEvents","ke","expirer","eventClient","createEvent","isValidPair","Me","addTrace","setError","activatePairing","activate","isValidPing","sendRequest","es","updateExpiry","updateMetadata","peerMetadata","getPairings","isValidDisconnect","deletePairing","formatUriFromPairing","sendResult","sendError","ds","onRelayEventRequest","onPairingPingRequest","onPairingDeleteRequest","onUnknownRpcMethodRequest","onRelayEventResponse","onPairingPingResponse","onUnknownRpcMethodResponse","isValidPairingTopic","Pi","setJsonRpcRecords","getJsonRpcRecords","Si","expirations","formatTarget","getExpiration","checkExpiry","expiration","ns","setExpirations","getExpirations","cjs$7","checkExpirations","ci","Ri","verifyUrlV3","isDevEnv","storeKey","expiresAt","removePublicKey","decryptedId","Ds","startAbortTimer","abortController","signal","attestationId","encryptedId","isValidJwtAttestation","isVerified","getVerifyUrl","verifyUrl","fetchAttestation","fetchPublicKey","persistPublicKey","validateAttestation","fetchAndPersistPublicKey","fetchPromise","as","hasExpired","isScam","AbortController","registerDeviceToken","notificationType","enableEncrypted","client_id","always_raw","ui","pn","di","pi","Oi","storageVersion","shouldPersist","eventId","getAppDomain","user_agent","sendEvent","setMethods","getEvent","deleteEvent","setEventListeners","submit","cs","gi","Dn","mn","Di","Ai","dispatchEnvelope","Ei","maxLogBlobSizeInBytes","logChunkController","bi","fi","storageOptions","echoClient","linkModeSupportedApps","getLogsBlob","addLinkModeSupportedApp","controller","wc_sessionPropose","autoReject","wc_sessionSettle","wc_sessionUpdate","wc_sessionExtend","wc_sessionRequest","wc_sessionEvent","wc_sessionDelete","wc_sessionPing","wc_sessionAuthenticate","idle","ms","_s","Es","requestQueue","sessionRequestQueue","requestQueueDelay","expectedPairingMethodMap","recentlyDeletedMap","relayMessageCache","registerPairingEvents","registerLinkModeListeners","getPendingSessionRequests","processSessionRequestQueue","optionalNamespaces","isValidConnect","pairingTopic","sessionProperties","relays","setExpiry","peer","cleanupDuplicatePairings","setProposal","approval","approve","isValidProposalId","isValidApprove","relayProtocol","sessionConfig","proposal","acknowledged","responderPublicKey","isValidReject","rpcOpts","isValidUpdate","clientRpcId","relayRpcId","extend","isValidExtend","isValidRequest","getAppLinkIfEnabled","appLink","disableDeepLink","respond","isValidRespond","cleanupAfterResponse","isValidEmit","deleteSession","emitEvent","pendingRequest","authenticate","isValidAuthenticate","redirect","linkMode","authKeys","responseTopic","pairingTopics","authPayload","requester","deleteProposal","deletePendingAuthRequest","cacaos","responder","universal","auths","setAuthRequest","verifyContext","approveSessionAuthenticate","getPendingAuthRequest","encodeOpts","authentication","requests","rejectSessionAuthenticate","formatAuthMessage","processRelayMessageCache","onRelayMessage","expirerHasDeleted","deletePendingSessionRequest","setPendingSessionRequest","processRequestsQueue","processRequest","shouldIgnorePairingRequest","requestMethod","onSessionProposeRequest","onSessionSettleRequest","onSessionUpdateRequest","onSessionExtendRequest","onSessionPingRequest","onSessionDeleteRequest","onSessionRequest","onSessionEventRequest","onSessionAuthenticateRequest","onSessionProposeResponse","onSessionSettleResponse","onSessionUpdateResponse","onSessionExtendResponse","onSessionPingResponse","onSessionRequestResponse","onSessionAuthenticateResponse","onRelayEventUnknownPayload","getVerifyContext","selfPublicKey","peerPublicKey","sessionTopic","subscriptionId","isValidSessionSettleRequest","isRequestOutOfSync","cleanupPendingSentRequestsForTopic","signConfig","disableRequestQueue","emitSessionRequest","addSessionRequestToSessionRequestQueue","onPairingCreated","validateNamespaces","validateSessionProps","checkRecentlyDeleted","isValidSessionTopic","isValidSessionOrPairingTopic","verified","validation","isLinkModeEnabled","handleLinkModeMessage","getInitialURL","fs","engine","c$5","o$7","getLocalStorage_1","getLocalStorageOrThrow_1","getCrypto_1","getCryptoOrThrow_1","getLocationOrThrow_1","getNavigatorOrThrow_1","getDocumentOrThrow_1","getFromWindowOrThrow_1","getFromWindow_1","detectEnv","isAndroid","isIOS","maxTouchPoints","isMobile","windowGetters.getFromWindow","windowGetters.getFromWindowOrThrow","windowGetters.getDocumentOrThrow","windowGetters.getDocument","windowGetters.getNavigatorOrThrow","windowGetters.getNavigator","windowGetters.getLocationOrThrow","windowGetters.getLocation","windowGetters.getCryptoOrThrow","windowGetters.getCrypto","windowGetters.getLocalStorageOrThrow","windowGetters.getLocalStorage","getClientMeta","windowMetadata.getWindowMetadata","safeJson.safeJsonParse","safeJson.safeJsonStringify","setLocal","local","getLocal","removeLocal","mobileLinkChoiceKey","formatIOSMobile","encodedUri","universalLink","deepLink","saveMobileLinkInfo","focusUri","getMobileRegistryEntry","registry","getMobileLinkRegistry","whitelist","API_URL","getWalletRegistryUrl","getDappRegistryUrl","formatMobileRegistryEntry","shortName","color","primary","logo","image_url","native","formatMobileRegistry","canPromise","isarray","isnan","species","sliceLen","typedarrayBuffer","toSJISFunction","CODEWORDS_COUNT","utils$3","getSymbolSize","getSymbolTotalCodewords","getBCHDigit","digit","setToSJISFunction","isKanjiModeEnabled","toSJIS","kanji","BitBuffer","BitBuffer$3","bufIndex","putBit","getLengthInBits","bitBuffer","BufferUtil","BitMatrix","reservedBit","row","col","BitMatrix$3","isReserved","bitMatrix","getRowColCoords","posCount","intervals","positions","getPositions","coords","posLength","FINDER_PATTERN_SIZE","finderPattern$1","Patterns","PATTERN000","PATTERN001","PATTERN010","PATTERN011","PATTERN100","PATTERN101","PATTERN110","PATTERN111","PenaltyScores","getMaskAt","maskPattern","getPenaltyN1","sameCountCol","sameCountRow","lastCol","lastRow","getPenaltyN2","getPenaltyN3","bitsCol","bitsRow","getPenaltyN4","darkCount","modulesCount","applyMask","pattern","getBestMask","setupFormatFunc","numPatterns","bestPattern","lowerPenalty","penalty","ECLevel","EC_BLOCKS_TABLE","EC_CODEWORDS_TABLE","errorCorrectionCode$1","getBlocksCount","errorCorrectionLevel","getTotalCodewordsCount","EXP_TABLE","LOG_TABLE","galoisField$1","GF","coeff","divident","generateECPolynomial","degree","poly","Polynomial","ReedSolomonEncoder","genPoly","ReedSolomonEncoder$3","paddedData","reedSolomonEncoder","versionCheck$1","numeric","alphanumeric","regex$1","KANJI","BYTE_KANJI","BYTE","NUMERIC","TEST_KANJI","TEST_NUMERIC","TEST_ALPHANUMERIC","testKanji","testNumeric","testAlphanumeric","VersionCheck","Regex","ccBits","MIXED","getCharCountIndicator","getBestModeForData","dataStr","Utils","ECCode","Mode","G18_BCH","getReservedBitsCount","getTotalBitsFromDataArray","segments","totalBits","reservedBits","getBitsLength","getCapacity","dataTotalCodewordsBits","usableBits","getBestVersionForData","seg","ecl","currentVersion","getBestVersionForMixedData","getBestVersionForDataLength","getEncodedBits","G15","G15_MASK","G15_BCH","formatInfo$1","NumericData","NumericData$1","remainingNum","numericData","ALPHA_NUM_CHARS","AlphanumericData","AlphanumericData$1","alphanumericData","ByteData","ByteData$1","byteData","KanjiData","KanjiData$1","kanjiData","dijkstra","single_source_shortest_paths","graph","predecessors","costs","closest","cost_of_s_to_u","adjacent_nodes","cost_of_s_to_u_plus_cost_of_e","cost_of_s_to_v","PriorityQueue","make","extract_shortest_path_from_predecessor_list","nodes","find_path","sorter","default_sorter","getStringByteLength","getSegments","getSegmentsFromString","byteSegs","kanjiSegs","numSegs","alphaNumSegs","getSegmentBitsLength","buildSingleSegment","modesHint","bestMode","segs","buildNodes","prevNodeIds","nodeGroup","currentNodeIds","lastCount","prevNodeId","buildGraph","optimizedSegs","prevSeg","mergeSegments","rawSplit","AlignmentPattern","FinderPattern","MaskPattern","FormatInfo","Segments","setupFinderPattern","matrix","setupTimingPattern","setupAlignmentPattern","setupVersionInfo","setupFormatInfo","setupData","inc","bitIndex","byteIndex","dark","createData","remainingByte","createCodewords","totalCodewords","dataTotalCodewords","ecTotalBlocks","blocksInGroup1","totalCodewordsInGroup1","dataCodewordsInGroup1","dataCodewordsInGroup2","ecCount","dcData","ecData","maxDataSize","dataSize","createSymbol","estimatedVersion","rawSegments","bestVersion","dataBits","moduleCount","modules","setupFormatInfo$1","MaskPattern$1","qrcode$1","toSJISFunc","Utils$5","hex2rgba","hexCode","hexValue","getOptions","margin","scale","light","rendererOpts","getScale","qrSize","getImageWidth","qrToImageData","imgData","symbolSize","scaledMargin","palette","posDst","pxColor","render","qrData","canvas","canvasEl","getContext","getCanvasElement","image","createImageData","clearRect","height","clearCanvas","putImageData","renderToDataURL","toDataURL","quality","getColorAttrib","attrib","svgCmd","cmd","qrToPath","moveBy","newRow","lineLength","svgTag$1","qrcodesize","bg","viewBox","svgTag","QRCode","CanvasRenderer","SvgRenderer","renderCanvas","renderFunc","argsNum","isLastArgCb","browser$1","toCanvas","toggleSelection","selection","getSelection","rangeCount","activeElement","ranges","getRangeAt","tagName","blur","removeAllRanges","addRange","focus","deselectCurrent","clipboardToIE11Formatting","defaultMessage","copyKey","reselectPrevious","mark","success","createRange","textContent","ariaHidden","top","clip","whiteSpace","webkitUserSelect","MozUserSelect","msUserSelect","userSelect","preventDefault","clipboardData","clearData","setData","onCopy","selectNodeContents","execCommand","removeRange","copyToClipboard","parentNode","defaultProps","__k","__b","__e","__d","__c","__v","vnode","debounceRendering","__P","__n","ownerSVGElement","nextSibling","insertBefore","setProperty","cssText","removeAttributeNS","setAttributeNS","removeAttribute","contextType","__E","__h","__s","getDerivedStateFromProps","componentWillMount","componentDidMount","componentWillReceiveProps","shouldComponentUpdate","componentWillUpdate","componentDidUpdate","__r","getChildContext","getSnapshotBeforeUpdate","diffed","n$6","createTextNode","createElementNS","childNodes","dangerouslySetInnerHTML","__html","innerHTML","componentWillUnmount","Consumer","Provider","getDerivedStateFromError","componentDidCatch","forceUpdate","__H","i$4","useDebugValue","o$5","requestAnimationFrame","cancelAnimationFrame","isPureReactComponent","isReactComponent","displayName","only","__u","revealOrder","container","m$2","firstChild","isPropagationStopped","isDefaultPrevented","nativeEvent","class","$$typeof","className","multiple","selected","ondoubleclick","ondblclick","onbeforeinput","onchange","oninput","compat_module","useState","useReducer","useEffect","useLayoutEffect","useRef","useImperativeHandle","useMemo","useCallback","useContext","Children","hydrate","unmountComponentAtNode","createPortal","createFactory","cloneElement","createRef","Fragment","isValidElement","findDOMNode","Component","PureComponent","forwardRef","unstable_batchedUpdates","Suspense","SuspenseList","lazy","_interopDefault","browserUtils","React","WALLETCONNECT_STYLE_SHEET","_catch","recover","WALLETCONNECT_LOGO_SVG_URL","WALLETCONNECT_HEADER_TEXT","ANIMATION_DURATION","DEFAULT_BUTTON_COLOR","WALLETCONNECT_WRAPPER_ID","WALLETCONNECT_STYLE_ID","WALLETCONNECT_MODAL_ID","WALLETCONNECT_CLOSE_BUTTON_ID","WALLETCONNECT_CTA_TEXT_ID","WALLETCONNECT_CONNECT_BUTTON_ID","Header","onClick","ConnectButton","backgroundColor","CARET_SVG_URL","WalletButton","background","backgroundSize","WalletIcon","fontSize","innerWidth","GRID_MIN_COUNT","LINKS_PER_PAGE","LinkDisplay","android","setInput","ref$1","setFilter","ref$2","page","setPage","grid","pages","pageLinks","hasPaging","filterTimeout","connect_mobile_wallet","choose_preferred_wallet","placeholder","handleClickIOS","no_wallets_found","loading","pageNumber","fontWeight","Notification","show","formatQRCodeImage","dataString","QRCodeDisplay","notification","setNotification","svg","setSvg","_formatQRCodeImage","scan_qrcode_with_wallet","copied_to_clipboard","copy_to_clipboard","Modal","mobile","qrcodeModalOptions","mobileLinks","desktopLinks","setLoading","fetched","setFetched","displayQRCode","setDisplayQRCode","displayProps","ref$3","singleLinkHref","setSingleLinkHref","ref$4","hasSingleLink","setHasSingleLink","ref$5","setLinks","ref$6","setErrorMessage","getLinksIfNeeded","registryUrl","registryResponse","_registryResponse$jso","listings","_links","no_supported_wallets","something_went_wrong","initLinks","rightSelected","connect_with","qrcode","desktop","ko","fa","languages","injectStyleSheet","getElementById","innerText","renderWrapper","wrapper","triggerCloseAnimation","modal","getWrappedCallback","getText","lang","language","open$1","close$1","open$2","close$2","c$2","proxyStateMap","refSet","buildProxyFunction","objectIs","newProxy","canProxy","defaultHandlePromise","snapCache","createSnapshot","handlePromise","snap","markToTrack","target2","ensureVersion","preventExtensions","proxyCache","versionHolder","proxyFunction","initialObject","notifyUpdate","nextVersion","checkVersion","createPropListener","newOp","propProxyStates","removePropListener","baseObject","proxyObject","deleteProperty","prevValue","hasPrevValue","getUntracked","nextValue","childProxyState","propProxyState","addPropListener","proxyState","nextCheckVersion","propVersion","prevRemove","defaultProxyFunction","proxy","notifyInSync","isListenerActive","snapshot","state$7","RouterCtrl","goBack","CoreUtil","WALLETCONNECT_DEEPLINK_CHOICE","WCM_VERSION","RECOMMENDED_WALLET_AMOUNT","matchMedia","isIos","isHttpUrl","isTelegram","formatNativeUrl","appUrl","wcUri","formatUniversalUrl","safeAppUrl","replaceAll","setWalletConnectDeepLink","formattedUri","searchParams","openHref","adjustedTarget","setWalletConnectAndroidDeepLink","removeWalletConnectDeepLink","setModalVersionInStorage","getWalletRouterData","routerData","Wallet","isEnabled","hostname","state$6","userSessionId","connectedWalletId","EventsCtrl","setConnectedWalletId","state$5","walletConnectUri","isAuth","isCustomDesktop","isCustomMobile","isDataLoaded","isUiLoaded","OptionsCtrl","setChains","setWalletConnectUri","setIsCustomDesktop","setIsCustomMobile","setIsDataLoaded","setIsUiLoaded","setIsAuth","state$4","mobileWallets","desktopWallets","walletImages","enableAuthMode","enableExplorer","explorerExcludedWalletIds","explorerRecommendedWalletIds","termsOfServiceUrl","privacyPolicyUrl","ConfigCtrl","setConfig","__defProp$2","__getOwnPropSymbols$2","__hasOwnProp$2","__propIsEnum$2","__defNormalProp$2","__spreadValues$2","W3M_API","SDK_TYPE","SDK_VERSION","fetchListings","endpoint","allParams","sdkType","ExplorerUtil","getWalletImageUrl","imageId","getAssetImageUrl","__defProp$1","__getOwnPropSymbols$1","__hasOwnProp$1","__propIsEnum$1","__defNormalProp$1","__spreadValues$1","state$3","wallets","recomendedWallets","ExplorerCtrl","getRecomendedWallets","recommendedIds","getAllListings","listingsArr","chainsFilter","isExcluded","sdks","excludedIds","getMobileListings","getDesktopListings","getWallets","extendedParams","wallet","listingsObj","resetSearch","state$2","ModalCtrl","__defProp","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","__spreadValues","isDarkMode","state$1","themeMode","ThemeCtrl","setThemeConfig","theme","themeVariables","variant","ToastCtrl","openToast","closeToast","WalletConnectModal","openModal","closeModal","subscribeModal","setTheme","initUi","insertAdjacentElement","DefaultLogger$1","getLogLevel","SessionNotFoundError","clients","DAppSigner","signClient","extensionId","DefaultLogger","_getHederaClient","ledgerIdString","Client","_signerAccountId","_getRandomNodes","numberOfNodes","allNodes","AccountBalanceQuery","AccountInfoQuery","AccountRecordsQuery","getMetadata","signOptions","messageToSign","SignMessage","signerAccountId","sigmap","signerSignature","SignerSignature","TransactionId","transactionBodyBase64","SignTransaction","_tryExecuteTransactionRequest","requestToBytes","SignAndExecuteTransaction","_parseQueryResponse","base64EncodedQueryResponse","AccountBalance","TransactionReceiptQuery","TransactionRecordQuery","executeReceiptQueryFromRequest","_tryExecuteQueryRequest","isReceiptQuery","SignAndExecuteQuery","txResult","queryResult","queryError","txError","DAppConnector","supportedMethods","supportedEvents","supportedChains","extensions","onSessionIframeCreated","isInitializing","abortableConnect","pairTimeoutMs","QRCodeModal","dAppMetadata","walletConnectModal","available","availableInIframe","walletConnectClient","SignClient","existingSessions","flatMap","createSigners","checkIframeConnect","handleSessionEvent","handleSessionUpdate","handleSessionDelete","handlePairingDelete","getSigner","connectQR","connectURI","onSessionConnected","launchCallback","connectExtension","extension","validateSession","hasSigner","validateAndRefreshSigners","getSdkError","disconnectAll","sessions","disconnectionPromises","newSigners","newSigner","existingSigners","currentSigner","matchingAccountId","matchingExtensionId","newSignerMetadata","existingSignerMetadata","metadataNameMatch","existingSigner","actualAccountId","getNodeAddresses","GetNodeAddresses","executeTransaction","ExecuteTransaction","signMessage","signAndExecuteQuery","signAndExecuteTransaction","accountSigner","_session","updatedSession","deletedSigner","isPositiveInteger","ArgumentError","defaults","retries","retryDelay","retryOn","baseDefaults","wrappedFetch","attempt","_input","Request","retryOnResponse","retry","fetchWithRetry","retryFetch","Result","HashinalsWalletConnectSDK","extensionCheckInterval","hasCalledExtensionCallback","dAppConnector","dAppConnectorInstance","chosenNetwork","ChainChanged","AccountsChanged","handleNewSession","ensureInitialized","signer_","disableSigner","executedTx","signedTx","executeTransactionWithErrorHandling","submitMessageToTopic","TopicMessageSubmitTransaction","TopicId","transferHbar","fromAccountId","TransferTransaction","executeSmartContract","functionName","ContractExecuteTransaction","ContractId","sessionAccount","sessionParts","saveConnectionInfo","getNetworkPrefix","cachedNetwork","requestAccount","accountResponse","cachedAccountId","loadConnectionInfo","cachedSigner","getAllMessages","TopicMessageQuery","messageContent","generatePrivateAndPublicKey","TopicUpdateTransaction","adminPrivateKey","hederaCustomFees","fee","collectorAccountId","feeAmount","CustomFixedFee","feeSchedulePrivateKey","TopicCreateTransaction","parseKey","keyType","privateError","publicError","adminPublicKey","TokenCreateTransaction","mintNFT","TokenMintTransaction","networkPrefix","getMessages","lastTimestamp","disableTimestampFilter","nextLink","collectedMessages","payer","payer_account_id","consensus_timestamp","sequence_number","nextResult","userSignature","connectedNetwork","cleanNetwork","connectWallet","PROJECT_ID","APP_METADATA","disconnectWallet","clearStorage","initAccount","networkOverride","savedAccountId","savedNetwork","defaultNetwork","connectViaDappBrowser","subscribeToExtensions","availableExtension","connectToExtension","newExtension","HashgraphSDK","transferToken","TokenId","AccountCreateTransaction","associateTokenToAccount","TokenAssociateTransaction","dissociateTokenFromAccount","TokenDissociateTransaction","AccountUpdateTransaction","approveAllowance","AccountAllowanceApproveTransaction","getAccountTokens","baseUrl","token_id","formatted_balance","created_timestamp","nextUrl","nextResponse","nextData","getTransaction","getTransactionByTimestamp","transaction_id","getAccountNFTs","nextRequest","token_uri","validateNFTOwnership","serial_number","readSmartContract","fromAccount","ShadowRoot","ShadyCSS","nativeShadow","Document","CSSStyleSheet","o$4","_$cssResult$","styleSheet","replaceSync","adoptedStyleSheets","litNonce","cssRules","trustedTypes","emptyScript","reactiveElementPolyfillSupport","toAttribute","fromAttribute","attribute","converter","reflect","hasChanged","u$1","HTMLElement","_$Ei","isUpdatePending","hasUpdated","_$El","_$Eu","addInitializer","observedAttributes","elementProperties","_$Ep","_$Ev","createProperty","noAccessor","getPropertyDescriptor","requestUpdate","getPropertyOptions","elementStyles","finalizeStyles","_$E_","enableUpdating","_$AL","_$Eg","addController","_$ES","renderRoot","hostConnected","removeController","createRenderRoot","shadowRoot","attachShadow","shadowRootOptions","connectedCallback","disconnectedCallback","hostDisconnected","attributeChangedCallback","_$AK","_$EO","_$EC","_$Ej","scheduleUpdate","performUpdate","shouldUpdate","willUpdate","hostUpdate","_$Ek","_$AE","hostUpdated","firstUpdated","updateComplete","getUpdateComplete","ReactiveElement","reactiveElementVersions","createPolicy","createHTML","createComment","_$litType$","strings","createTreeWalker","currentNode","nextNode","hasAttributes","getAttributeNames","_$Co","_$Cl","_$litDirective$","_$AO","_$AT","_$AS","_$AV","_$AN","_$AD","_$AM","_$AU","creationScope","importNode","_$AI","_$AH","_$AA","_$AB","_$Cp","startNode","endNode","_$AR","_$AC","_$AP","setConnected","capture","passive","handleEvent","litHtmlPolyfillSupport","litHtmlVersions","renderBefore","_$litPart$","renderOptions","_$Do","_$litElement$","litElementHydrateSupport","LitElement","litElementPolyfillSupport","litElementVersions","customElements","elements","finisher","placement","originalKey","initializer","HTMLSlotElement","assignedElements","ATTRIBUTE","CHILD","PROPERTY","BOOLEAN_ATTRIBUTE","EVENT","ELEMENT","_$Ct","_$Ci","classList","addUniqueItem","endDelay","easing","isEasingList","rangeSize","getEasingForSegment","mix","progress","noopReturn","fillOffset","offsetProgress","defaultOffset","interpolate","progressInRange","segmentEasing","isCubicBezier","isEasingGenerator","createAnimation","milliseconds","calcBezier","subdivisionPrecision","subdivisionMaxIterations","binarySubdivide","upperBound","mX1","mX2","currentX","currentT","cubicBezier","mY1","mY2","steps","rounded","namedEasings","ease","functionArgsRegex","getEasingFunction","definition","namedEasing","argsArray","Animation","keyframes","initialDuration","autoplay","rate","cancelTimestamp","totalDuration","playState","updateDuration","interpolate$1","tick","pauseTime","currentIteration","iterationProgress","iterationIsOdd","latest","frameRequestId","play","performance","cancel","commitStyles","currentTime","playbackRate","invariant","NODE_ENV","check","MotionValue","setAnimation","animation","clearAnimation","getAnimationData","transforms","getMotionValue","motionValues","axes","order","transformAlias","rotation","initialValue","toDefaultUnit","baseTransformProperties","translate","rotate","skew","transformDefinitions","asTransformCssVar","axis","compareTransformOrder","transformLookup","isTransform","addTransformToElement","buildTransformTemplate","transformListToString","template","isCssVar","registeredProperties","registerCssVariable","CSS","registerProperty","testAnimation","animate","featureTests","cssRegisterProperty","waapi","Element","partialKeyframes","opacity","linearEasing","supports","resolution","generateLinearEasingPoints","numPoints","convertEasing","cubicBezierAsString","hydrateKeyframes","readInitialValue","keyframesList","getStyleName","getPropertyValue","getComputedStyle","stopAnimation","needsCommit","getUnitConverter","toUnit","finalKeyframe","unit","getDevToolsRecord","__MOTION_DEV_TOOLS_RECORD","animateStyle","keyframesDefinition","AnimationPolyfill","isRecording","allowWebkitAcceleration","valueIsTransform","canAnimateNatively","motionValue","animationOptions","name2","thisEasing","oncancel","resolveElements","selectorCache","querySelectorAll","withControls","animationFactory","animations","controls","getActiveAnimation","activeAnimation","selectFinished","resolveOption","option","createAnimate","AnimatePolyfill","numElements","animationFactories","valueOptions","animateProgress","keyframesOrOptions","animate$1","utils$1","BitBuffer$1","BitMatrix$1","finderPattern","errorCorrectionCode","galoisField","ReedSolomonEncoder$1","versionCheck","formatInfo","Utils$1","__defProp$y","themeModeVariables","themeModeColors","foreground","overlay","themeVariablesPresets","ThemeUtil","getPreset","querySelector","variables","globalCss","css","styles$t","__defProp$x","__getOwnPropDesc$x","__decorateClass$x","WcmButton","iconLeft","iconRight","classes","textColor","html","classMap","customElement","styles$s","__defProp$w","__getOwnPropDesc$w","__decorateClass$w","WcmButtonBig","styles$r","__defProp$v","__getOwnPropDesc$v","__decorateClass$v","WcmInfoFooter","SvgUtil","CROSS_ICON","WALLET_CONNECT_LOGO","WALLET_CONNECT_ICON","WALLET_CONNECT_ICON_COLORED","BACK_ICON","COPY_ICON","RETRY_ICON","DESKTOP_ICON","MOBILE_ICON","ARROW_DOWN_ICON","ARROW_UP_RIGHT_ICON","ARROW_RIGHT_ICON","QRCODE_ICON","SCAN_ICON","CHECKMARK_ICON","SEARCH_ICON","WALLET_PLACEHOLDER","GLOBE_ICON","styles$q","__defProp$u","__getOwnPropDesc$u","__decorateClass$u","WcmModalBackcard","styles$p","__defProp$t","__getOwnPropDesc$t","__decorateClass$t","WcmModalContent","styles$o","__defProp$s","__getOwnPropDesc$s","__decorateClass$s","WcmModalFooter","styles$n","__defProp$r","__getOwnPropDesc$r","__decorateClass$r","WcmModalHeader","onAction","actionIcon","border","backBtnTemplate","actionBtnTemplate","backBtn","UiUtil","MOBILE_BREAKPOINT","WCM_RECENT_WALLET_DATA","EXPLORER_WALLET_URL","getShadowRootElement","selector","getWalletIcon","image_id","getWalletName","isMobileAnimation","preloadImage","imagePromise","Image","crossOrigin","wait","getErrorMessage","debounce","timer","handleMobileLinking","nativeUrl","universalUrl","setRecentWallet","onRedirect","handleAndroidLinking","handleUriCopy","clipboard","writeText","getCustomImageUrls","walletUrls","getRecentWallet","caseSafeIncludes","str1","str2","openWalletExplorerUrl","getCachedRouterWalletPlatforms","isDesktop","isWeb","goToConnectingView","isMobileDevice","styles$m","__defProp$q","__getOwnPropDesc$q","__decorateClass$q","WcmModalRouter","prevView","oldHeight","resizeObserver","routerState","onChangeRoute","ResizeObserver","conetnt","newHeight","contentRect","routerEl","contentEl","viewTemplate","styles$l","__defProp$p","__getOwnPropDesc$p","__decorateClass$p","WcmModalToast","newState","CONNECTING_ERROR_MARGIN","CIRCLE_SIZE_MODIFIER","QRCODE_MATRIX_MARGIN","isAdjecentDots","cy","otherCy","cellSize","getMatrix","QRCodeUtil","rows","QrCodeUtil","logoSize","dotColor","dots","qrList","dotSize","svg$1","clearArenaSize","matrixMiddleStart","matrixMiddleEnd","circles","cx","circlesToConnect","cys","newCys","groups","styles$k","__defProp$o","__getOwnPropDesc$o","__decorateClass$o","WcmQrCode","walletId","imageUrl","svgTemplate","ifDefined","styles$j","__defProp$n","__getOwnPropDesc$n","__decorateClass$n","WcmSearchInput","styles$i","__defProp$m","__getOwnPropDesc$m","__decorateClass$m","WcmSpinner","styles$h","__defProp$l","__getOwnPropDesc$l","__decorateClass$l","WcmText","styles$g","__defProp$k","__getOwnPropDesc$k","__decorateClass$k","WcmWalletButton","installed","recent","sublabelTemplate","handleClick","styles$f","__defProp$j","__getOwnPropDesc$j","__decorateClass$j","WcmWalletImage","__defProp$i","__getOwnPropDesc$i","__decorateClass$i","WcmExplorerContext","preload","preloadData","loadImages","images","preloadListings","walletImgs","preloadCustomImages","__defProp$h","__getOwnPropDesc$h","__decorateClass$h","WcmThemeContext","unsubscribeTheme","styles$e","__defProp$g","__getOwnPropDesc$g","__decorateClass$g","WcmAndroidWalletSelection","onGoToQrcode","recomendedCount","styles$d","__defProp$f","__getOwnPropDesc$f","__decorateClass$f","WcmConnectorWaiting","isStale","svgLoaderTemplate","radius","numRadius","ICON_SIZE","DataUtil","manualWallets","recentWalletId","recentWallet","platformWallets","skipRecent","TemplateUtil","onConnecting","manualWalletsTemplate","recomendedWalletsTemplate","recentWalletTemplate","styles$c","__defProp$e","__getOwnPropDesc$e","__decorateClass$e","WcmDesktopWalletSelection","isExplorerWallets","manualTemplate","recomendedTemplate","templates","isViewAll","isWallets","styles$b","__defProp$d","__getOwnPropDesc$d","__decorateClass$d","WcmLegalNotice","styles$a","__defProp$c","__getOwnPropDesc$c","__decorateClass$c","WcmMobileWalletSelection","onQrcode","styles$9","__defProp$b","__getOwnPropDesc$b","__decorateClass$b","WcmModal","unsubscribeModal","modalState","onOpenModalEvent","onCloseModalEvent","overlayEl","containerEl","toggleBodyScroll","wcmStyles","insertAdjacentHTML","onCloseModal","currentTarget","addKeyboardEvents","removeKeyboardEvents","styles$8","__defProp$a","__getOwnPropDesc$a","__decorateClass$a","WcmPlatformSelection","isRetry","onMobile","onDesktop","onWeb","styles$7","__defProp$9","__getOwnPropDesc$9","__decorateClass$9","WcmViewAllWalletsButton","reversedWallets","explorerImg","styles$6","__defProp$8","__getOwnPropDesc$8","__decorateClass$8","WcmWalletConnectQr","offsetWidth","__defProp$7","__getOwnPropDesc$7","__decorateClass$7","WcmConnectWalletView","styles$5","__defProp$6","__getOwnPropDesc$6","__decorateClass$6","WcmDesktopConnectingView","openDesktopApp","onFormatAndRedirect","styles$4","__defProp$5","__getOwnPropDesc$5","__decorateClass$5","WcmInstallWalletView","onInstall","homepage","styles$3","__defProp$4","__getOwnPropDesc$4","__decorateClass$4","WcmMobileConnectingView","openMobileApp","forceUniversalUrl","onGoToAppStore","downloadUrl","app","ios","styles$2","__defProp$3","__getOwnPropDesc$3","__decorateClass$3","WcmMobileQrConnectingView","__getOwnPropDesc$2","__decorateClass$2","WcmQrcodeView","styles$1","__getOwnPropDesc$1","__decorateClass$1","PAGE_ENTRIES","WcmWalletExplorerView","firstFetch","endReached","intersectionObserver","searchDebounce","fetchWallets","isLastPage","createPaginationObserver","placeholderEl","IntersectionObserver","isIntersecting","newListings","explorerImages","listing","onSearchChange","isLoading","isSearch","__getOwnPropDesc","__decorateClass","WcmWebConnectingView","openWebWallet","isMobilePlatform"],"mappings":"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AS,CACPG,KAAM,EACNK,OAAQ,CACN,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,kEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,sEAINxC,IAAK,CACHzH,IAAK,EACLiK,OAAQ,CACN,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,iEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,qFCrwBR,IAsKI9pE,EAtKAk6E,EAASvpH,EAETqtB,EAAOT,OACPyrF,EAAQpqF,QAGR4iE,EAFQ3iE,QAEO2iE,OAEnB,SAAS24B,EAAY56C,GACE,UAAjBA,EAAQ3rE,KACVgB,KAAKo0G,MAAQ,IAAIA,EAAMmD,MAAM5sC,GACL,YAAjBA,EAAQ3rE,KACfgB,KAAKo0G,MAAQ,IAAIA,EAAM2J,QAAQpzC,GAE/B3qE,KAAKo0G,MAAQ,IAAIA,EAAMjJ,KAAKxgC,G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,IAAIkiG,WAAWliG,GACtD26I,MAAME,oBAAuB9qK,GAAUmyH,WAAWvhH,UAAU5Q,GC7hBtD,MAAA0sK,kBAAoB11K,OAAO4tB,OAAO,CAIpC+nJ,UAAW,YAKXC,aAAc,eAadC,iBAAkB,qBCxBP,MAAMC,yBAAyBj6K,MAO1C,WAAA0S,CAAYkmK,EAAUvpG,EAAQ6qG,GACtB,IAAAC,EAEJ,OAAQ9qG,GACJ,KAAKwqG,kBAAkBC,UACHK,EAAA,+CAChB,MAEJ,KAAKN,kBAAkBG,iBAEfG,EAAA,mEACJ,MAEJ,KAAKN,kBAAkBE,aAEfI,EAAA,kEACJ,MAEJ,QACI,MAAM,IAAIn6K,MACN,oBAAoBqvE,EAAO7oE,2BAIjCmM,MAAA,qBAAqBwnK,UAEY,IAA5Bn6K,MAAM8wB,mBACP9wB,MAAA8wB,kBAAkB9pB,KAAMizK,kBAGlCjzK,KAAK8L,KAAO,mBAGZ9L,KAAKqoE,OAASA,EAGdroE,KAAK4xK,SAAWA,EAMhB5xK,KAAKkzK,mBAAqBA,CAClC,ECrDe,MAAAE,YAAA,CACX,QACA,QACA,QACA,QACA,SACA,OACA,SACA,QACA,QACA,SACA,QACA,QACA,SACA,SACA,SACA,SACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,MACA,OACA,SACA,OACA,SACA,QACA,OACA,SACA,MACA,SACA,SACA,QACA,SACA,QACA,OACA,QACA,MACA,QACA,SACA,QACA,SACA,SACA,SACA,QACA,QACA,QACA,SACA,QACA,SACA,SACA,SACA,OACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,QACA,QACA,MACA,SACA,SACA,QACA,SACA,QACA,MACA,QACA,QACA,SACA,QACA,MACA,OACA,MACA,MACA,SACA,OACA,OACA,QACA,SACA,SACA,QACA,MACA,QACA,QACA,QACA,QACA,SACA,QACA,QACA,QACA,SACA,MACA,QACA,SACA,QACA,QACA,OACA,SACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,SACA,OACA,QACA,QACA,SACA,QACA,SACA,QACA,SACA,OACA,QACA,OACA,SACA,QACA,QACA,SACA,QACA,QACA,SACA,MACA,SACA,OACA,QACA,QACA,QACA,QACA,SACA,QACA,QACA,SACA,SACA,SACA,MACA,SACA,SACA,QACA,SACA,OACA,SACA,SACA,SACA,QACA,QACA,QACA,QACA,OACA,SACA,SACA,OACA,SACA,SACA,MACA,OACA,QACA,OACA,QACA,MACA,MACA,SACA,OACA,QACA,SACA,SACA,QACA,SACA,SACA,QACA,QACA,MACA,SACA,SACA,SACA,SACA,MACA,QACA,SACA,QACA,MACA,SACA,SACA,QACA,SACA,SACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,MACA,SACA,QACA,OACA,SACA,SACA,SACA,SACA,SACA,QACA,SACA,QACA,QACA,SACA,OACA,SACA,OACA,SACA,SACA,OACA,SACA,QACA,SACA,SACA,QACA,OACA,QACA,QACA,QACA,SACA,QACA,QACA,QACA,OACA,QACA,SACA,MACA,OACA,QACA,OACA,OACA,MACA,OACA,OACA,OACA,OACA,SACA,QACA,MACA,QACA,QACA,MACA,QACA,OACA,OACA,OACA,QACA,SACA,OACA,OACA,SACA,SACA,SACA,SACA,SACA,MACA,QACA,SACA,OACA,OACA,OACA,MACA,SACA,OACA,SACA,QACA,OACA,SACA,OACA,QACA,SACA,SACA,SACA,OACA,QACA,QACA,QACA,QACA,SACA,OACA,MACA,QACA,OACA,QACA,SACA,MACA,QACA,SACA,OACA,OACA,OACA,OACA,QACA,QACA,OACA,SACA,SACA,MACA,QACA,OACA,QACA,OACA,OACA,OACA,SACA,SACA,MACA,SACA,QACA,SACA,SACA,SACA,QACA,QACA,SACA,OACA,QACA,SACA,QACA,OACA,QACA,OACA,SACA,OACA,SACA,QACA,QACA,QACA,SACA,OACA,SACA,MACA,OACA,SACA,SACA,SACA,SACA,OACA,SACA,SACA,MACA,MACA,SACA,OACA,OACA,OACA,MACA,SACA,OACA,SACA,QACA,OACA,SACA,QACA,SACA,MACA,QACA,OACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,OACA,QACA,QACA,OACA,QACA,QACA,QACA,QACA,QACA,SACA,QACA,OACA,SACA,OACA,OACA,QACA,QACA,OACA,QACA,OACA,QACA,QACA,OACA,MACA,SACA,OACA,QACA,OACA,OACA,OACA,OACA,SACA,OACA,OACA,OACA,SACA,QACA,OACA,OACA,OACA,QACA,OACA,QACA,QACA,SACA,OACA,SACA,QACA,OACA,SACA,OACA,SACA,SACA,SACA,SACA,SACA,QACA,SACA,OACA,SACA,MACA,QACA,OACA,MACA,MACA,SACA,QACA,QACA,SACA,QACA,OACA,SACA,QACA,SACA,QACA,QACA,QACA,SACA,SACA,QACA,QACA,SACA,SACA,OACA,QACA,SACA,OACA,QACA,QACA,QACA,SACA,QACA,SACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,SACA,SACA,QACA,QACA,QACA,SACA,QACA,SACA,QACA,SACA,OACA,SACA,SACA,SACA,SACA,QACA,QACA,OACA,QACA,OACA,QACA,OACA,SACA,QACA,OACA,QACA,QACA,SACA,OACA,QACA,SACA,SACA,SACA,SACA,QACA,OACA,QACA,SACA,QACA,OACA,MACA,OACA,OACA,SACA,OACA,MACA,SACA,OACA,SACA,SACA,MACA,QACA,OACA,MACA,OACA,MACA,QACA,QACA,QACA,SACA,SACA,OACA,QACA,QACA,SACA,OACA,OACA,OACA,SACA,OACA,SACA,OACA,QACA,SACA,OACA,SACA,MACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,QACA,OACA,SACA,QACA,SACA,SACA,SACA,MACA,OACA,MACA,SACA,OACA,OACA,SACA,SACA,QACA,OACA,SACA,QACA,OACA,SACA,SACA,QACA,OACA,SACA,OACA,OACA,OACA,OACA,SACA,SACA,MACA,QACA,QACA,SACA,SACA,SACA,QACA,OACA,QACA,SACA,OACA,SACA,SACA,SACA,SACA,SACA,OACA,SACA,QACA,QACA,QACA,SACA,QACA,SACA,SACA,QACA,QACA,OACA,SACA,SACA,QACA,QACA,QACA,OACA,QACA,QACA,QACA,QACA,SACA,QACA,SACA,SACA,OACA,SACA,SACA,QACA,QACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,SACA,OACA,QACA,OACA,SACA,QACA,SACA,OACA,SACA,QACA,SACA,QACA,SACA,QACA,SACA,QACA,SACA,SACA,QACA,QACA,SACA,QACA,SACA,SACA,OACA,OACA,QACA,QACA,OACA,QACA,SACA,OACA,OACA,QACA,QACA,QACA,SACA,OACA,OACA,QACA,QACA,SACA,QACA,SACA,QACA,SACA,QACA,SACA,QACA,SACA,QACA,SACA,OACA,QACA,QACA,QACA,QACA,SACA,SACA,QACA,QACA,SACA,QACA,QACA,OACA,OACA,SACA,QACA,SACA,QACA,OACA,SACA,QACA,OACA,OACA,SACA,QACA,OACA,OACA,QACA,OACA,SACA,SACA,SACA,OACA,OACA,OACA,OACA,SACA,QACA,SACA,OACA,SACA,OACA,SACA,OACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,OACA,SACA,QACA,SACA,SACA,SACA,SACA,OACA,OACA,OACA,SACA,OACA,QACA,OACA,OACA,OACA,OACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,OACA,SACA,SACA,QACA,QACA,QACA,QACA,SACA,OACA,SACA,SACA,SACA,QACA,SACA,OACA,QACA,SACA,MACA,SACA,SACA,OACA,OACA,QACA,SACA,QACA,SACA,OACA,QACA,QACA,QACA,SACA,QACA,QACA,QACA,QACA,SACA,SACA,SACA,QACA,QACA,QACA,SACA,QACA,QACA,OACA,QACA,QACA,SACA,QACA,SACA,QACA,OACA,QACA,OACA,QACA,QACA,QACA,QACA,SACA,SACA,QACA,QACA,OACA,MACA,QACA,OACA,OACA,QACA,SACA,OACA,OACA,MACA,OACA,OACA,SACA,OACA,QACA,QACA,SACA,QACA,OACA,SACA,MACA,OACA,QACA,SACA,QACA,QACA,MACA,QACA,SACA,QACA,QACA,QACA,OACA,MACA,SACA,OACA,SACA,QACA,SACA,SACA,OACA,OACA,SACA,OACA,OACA,OACA,OACA,OACA,QACA,OACA,MACA,OACA,SACA,OACA,OACA,SACA,OACA,OACA,QACA,SACA,QACA,SACA,OACA,SACA,SACA,QACA,SACA,SACA,OACA,QACA,SACA,SACA,OACA,OACA,SACA,OACA,SACA,SACA,SACA,QACA,SACA,OACA,SACA,QACA,QACA,SACA,QACA,QACA,SACA,SACA,OACA,SACA,SACA,SACA,QACA,SACA,OACA,SACA,SACA,SACA,SACA,QACA,QACA,SACA,SACA,SACA,SACA,SACA,SACA,OACA,SACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,OACA,QACA,QACA,OACA,SACA,MACA,MACA,SACA,OACA,SACA,MACA,SACA,QACA,OACA,SACA,SACA,QACA,MACA,OACA,SACA,OACA,QACA,OACA,QACA,OACA,OACA,SACA,SACA,QACA,OACA,SACA,SACA,SACA,QACA,SACA,OACA,SACA,MACA,QACA,OACA,OACA,SACA,QACA,SACA,OACA,SACA,SACA,OACA,SACA,QACA,OACA,OACA,SACA,OACA,MACA,SACA,QACA,QACA,OACA,OACA,OACA,QACA,QACA,OACA,SACA,QACA,QACA,QACA,OACA,SACA,QACA,QACA,SACA,QACA,OACA,QACA,QACA,QACA,QACA,OACA,QACA,SACA,OACA,QACA,QACA,OACA,OACA,QACA,MACA,OACA,OACA,OACA,MACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,OACA,OACA,OACA,SACA,SACA,OACA,OACA,QACA,QACA,OACA,QACA,QACA,OACA,QACA,SACA,OACA,QACA,QACA,MACA,OACA,QACA,OACA,QACA,OACA,QACA,SACA,OACA,SACA,OACA,MACA,QACA,QACA,OACA,OACA,OACA,OACA,SACA,QACA,OACA,SACA,MACA,QACA,SACA,SACA,SACA,MACA,MACA,QACA,SACA,SACA,SACA,QACA,QACA,SACA,QACA,SACA,SACA,QACA,OACA,QACA,QACA,SACA,SACA,SACA,SACA,OACA,SACA,SACA,QACA,SACA,SACA,MACA,SACA,QACA,SACA,SACA,SACA,QACA,SACA,SACA,SACA,SACA,QACA,SACA,QACA,QACA,OACA,SACA,OACA,QACA,QACA,SACA,QACA,SACA,MACA,QACA,OACA,QACA,SACA,SACA,QACA,SACA,SACA,QACA,QACA,SACA,SACA,QACA,SACA,SACA,QACA,MACA,OACA,QACA,OACA,QACA,QACA,OACA,QACA,SACA,QACA,OACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,SACA,QACA,QACA,QACA,OACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,QACA,MACA,OACA,SACA,OACA,SACA,OACA,SACA,OACA,OACA,QACA,OACA,SACA,QACA,QACA,OACA,SACA,OACA,QACA,SACA,OACA,SACA,SACA,SACA,MACA,QACA,MACA,QACA,OACA,OACA,SACA,OACA,SACA,SACA,MACA,QACA,OACA,SACA,QACA,QACA,SACA,QACA,OACA,QACA,OACA,MACA,MACA,SACA,OACA,OACA,OACA,OACA,SACA,OACA,SACA,QACA,OACA,QACA,QACA,QACA,SACA,QACA,MACA,QACA,SACA,SACA,QACA,QACA,SACA,QACA,QACA,QACA,MACA,QACA,SACA,OACA,OACA,SACA,SACA,OACA,SACA,QACA,SACA,QACA,SACA,OACA,OACA,SACA,SACA,SACA,SACA,OACA,OACA,SACA,QACA,SACA,OACA,SACA,OACA,MACA,SACA,OACA,MACA,OACA,QACA,OACA,QACA,QACA,OACA,QACA,QACA,QACA,OACA,SACA,OACA,OACA,OACA,SACA,QACA,QACA,SACA,OACA,QACA,SACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,SACA,QACA,SACA,QACA,OACA,SACA,SACA,SACA,QACA,QACA,SACA,QACA,QACA,OACA,MACA,QACA,OACA,OACA,QACA,QACA,MACA,OACA,OACA,OACA,SACA,QACA,OACA,SACA,OACA,OACA,OACA,OACA,MACA,SACA,QACA,OACA,SACA,QACA,SACA,OACA,OACA,SACA,SACA,SACA,OACA,QACA,QACA,QACA,SACA,SACA,OACA,QACA,OACA,SACA,MACA,QACA,QACA,QACA,QACA,SACA,QACA,QACA,OACA,OACA,QACA,SACA,SACA,SACA,SACA,QACA,QACA,SACA,SACA,QACA,SACA,SACA,SACA,QACA,OACA,OACA,QACA,QACA,SACA,QACA,SACA,SACA,QACA,MACA,QACA,OACA,OACA,QACA,QACA,MACA,OACA,QACA,MACA,QACA,OACA,OACA,SACA,OACA,QACA,SACA,SACA,QACA,SACA,OACA,OACA,SACA,OACA,OACA,SACA,SACA,SACA,SACA,OACA,QACA,SACA,OACA,MACA,SACA,SACA,SACA,MACA,OACA,OACA,SACA,QACA,QACA,OACA,OACA,OACA,QACA,MACA,SACA,SACA,OACA,SACA,SACA,SACA,QACA,SACA,SACA,SACA,QACA,SACA,OACA,MACA,SACA,QACA,QACA,OACA,SACA,OACA,OACA,SACA,OACA,OACA,QACA,OACA,QACA,SACA,QACA,QACA,QACA,SACA,QACA,OACA,QACA,SACA,QACA,QACA,SACA,SACA,QACA,QACA,SACA,QACA,OACA,OACA,OACA,MACA,OACA,OACA,OACA,SACA,OACA,OACA,OACA,MACA,OACA,QACA,OACA,QACA,OACA,OACA,SACA,SACA,MACA,SACA,SACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SACA,QACA,QACA,SACA,QACA,SACA,SACA,QACA,SACA,QACA,SACA,QACA,QACA,QACA,OACA,OACA,OACA,QACA,QACA,OACA,OACA,QACA,OACA,OACA,SACA,QACA,QACA,QACA,SACA,QACA,SACA,QACA,QACA,OACA,QACA,SACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SACA,QACA,SACA,OACA,QACA,MACA,SACA,OACA,MACA,MACA,QACA,QACA,OACA,MACA,OACA,OACA,QACA,QACA,OACA,OACA,OACA,OACA,SACA,SACA,OACA,SACA,QACA,OACA,SACA,QACA,SACA,QACA,SACA,SACA,OACA,SACA,SACA,OACA,QACA,OACA,OACA,QACA,QACA,MACA,OACA,SACA,QACA,SACA,QACA,MACA,QACA,OACA,OACA,QACA,SACA,OACA,QACA,QACA,SACA,OACA,MACA,SACA,OACA,QACA,OACA,OACA,OACA,SACA,OACA,OACA,QACA,QACA,SACA,SACA,OACA,SACA,SACA,QACA,SACA,OACA,SACA,QACA,OACA,QACA,SACA,OACA,OACA,SACA,QACA,OACA,QACA,OACA,SACA,OACA,OACA,QACA,QACA,MACA,SACA,OACA,OACA,OACA,SACA,SACA,SACA,OACA,SACA,SACA,MACA,SACA,OACA,SACA,OACA,OACA,SACA,SACA,OACA,MACA,OACA,SACA,OACA,SACA,OACA,MACA,OACA,MACA,OACA,QACA,SACA,QACA,SACA,OACA,SACA,OACA,SACA,QACA,OACA,OACA,SACA,QACA,OACA,OACA,OACA,OACA,SACA,SACA,QACA,OACA,OACA,MACA,QACA,QACA,OACA,QACA,QACA,MACA,OACA,OACA,QACA,SACA,SACA,QACA,OACA,SACA,SACA,OACA,SACA,OACA,QACA,OACA,OACA,MACA,SACA,OACA,SACA,MACA,QACA,OACA,QACA,OACA,QACA,QACA,QACA,OACA,OACA,OACA,SACA,SACA,MACA,QACA,SACA,SACA,QACA,SACA,SACA,OACA,SACA,OACA,SACA,QACA,SACA,QACA,QACA,SACA,SACA,SACA,QACA,QACA,SACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,MACA,SACA,SACA,QACA,SACA,MACA,SACA,QACA,QACA,SACA,SACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,QACA,OACA,SACA,SACA,SACA,SACA,SACA,SACA,OACA,OACA,OACA,QACA,OACA,SACA,QACA,QACA,SACA,SACA,OACA,SACA,QACA,QACA,OACA,OACA,SACA,OACA,QACA,OACA,SACA,QACA,OACA,SACA,OACA,QACA,OACA,QACA,SACA,OACA,MACA,OACA,OACA,QACA,QACA,OACA,MACA,QACA,SACA,MACA,MACA,OACA,SACA,MACA,OACA,OACA,QACA,OACA,QACA,OACA,SACA,SACA,MACA,SACA,SACA,QACA,OACA,QACA,QACA,OACA,SACA,QACA,OACA,OACA,SACA,SACA,OACA,QACA,OACA,OACA,SACA,SACA,OACA,OACA,OACA,OACA,SACA,QACA,OACA,SACA,SACA,MACA,QACA,OACA,MACA,SACA,SACA,OACA,SACA,MACA,OACA,SACA,OACA,OACA,OACA,SACA,QACA,OACA,QACA,OACA,QACA,SACA,OACA,OACA,QACA,OACA,OACA,QACA,QACA,QACA,SACA,QACA,OACA,OACA,MACA,SACA,QACA,OACA,SACA,QACA,OACA,OACA,OACA,OACA,QACA,OACA,OACA,MACA,QACA,QACA,SACA,QACA,OACA,QACA,OACA,SACA,SACA,QACA,SACA,QACA,SACA,QACA,SACA,OACA,SACA,MACA,SACA,OACA,SACA,MACA,QACA,SACA,OACA,OACA,SACA,OACA,QACA,SACA,OACA,QACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,MACA,QACA,OACA,MACA,SACA,QACA,SACA,SACA,QACA,OACA,SACA,OACA,OACA,MACA,QACA,SACA,OACA,SACA,SACA,SACA,OACA,MACA,SACA,SACA,QACA,QACA,OACA,QACA,SACA,OACA,QACA,QACA,OACA,OACA,MACA,MACA,OACA,OACA,OACA,OACA,QACA,OACA,SACA,OACA,OACA,QACA,OACA,OACA,SACA,QACA,SACA,OACA,OACA,OACA,MACA,SACA,SACA,OACA,SACA,MACA,OACA,SACA,QACA,MACA,SACA,OACA,OACA,OACA,QACA,OACA,QACA,SACA,OACA,QACA,QACA,OACA,QACA,MACA,QACA,OACA,SACA,OACA,SACA,OACA,SACA,OACA,OACA,QACA,SACA,OACA,OACA,QACA,OACA,OACA,OACA,MACA,SACA,QACA,OACA,SACA,SACA,QACA,OACA,SACA,QACA,MACA,QACA,SACA,QACA,QACA,OACA,QACA,OACA,OACA,OACA,QACA,SACA,QACA,QACA,OACA,OACA,QACA,OACA,OACA,OACA,SACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,MACA,QACA,OACA,QACA,QACA,QACA,SACA,SACA,SACA,OACA,SACA,OACA,OACA,SACA,QACA,OACA,QACA,OACA,SACA,OACA,OACA,SACA,SACA,OACA,QACA,QACA,SACA,QACA,SACA,SACA,SACA,OACA,MACA,QACA,SACA,QACA,OACA,SACA,QACA,SACA,OACA,SACA,QACA,OACA,QACA,SACA,SACA,OACA,OACA,QACA,OACA,OACA,SACA,MACA,QACA,OACA,SACA,SACA,SACA,QACA,MACA,QACA,QACA,OACA,OACA,SACA,OACA,OACA,QACA,OACA,QACA,QACA,SACA,QACA,SACA,OACA,SACA,SACA,QACA,OACA,SACA,OACA,SACA,SACA,OACA,SACA,SACA,OACA,QACA,OACA,SACA,QACA,SACA,QACA,QACA,OACA,OACA,QACA,MACA,QACA,QACA,SACA,SACA,SACA,QACA,SACA,QACA,SACA,MACA,SACA,SACA,QACA,SACA,QACA,SACA,OACA,SACA,OACA,OACA,QACA,OACA,QACA,QACA,OACA,OACA,OACA,OACA,QACA,OACA,QACA,SACA,OACA,SACA,QACA,SACA,OACA,OACA,QACA,OACA,MACA,OACA,OACA,MACA,SACA,OACA,OACA,QACA,QACA,SACA,SACA,SACA,SACA,QACA,QACA,OACA,OACA,SACA,SACA,SACA,QACA,OACA,SACA,QACA,OACA,QACA,OACA,OACA,QACA,SACA,SACA,OACA,SACA,SACA,SACA,SACA,SACA,QACA,SACA,OACA,OACA,SACA,OACA,SACA,SACA,SACA,QACA,QACA,QACA,QACA,QACA,OACA,QACA,MACA,OACA,OACA,QACA,MACA,SACA,QACA,OACA,QACA,SACA,SACA,QACA,SACA,SACA,SACA,QACA,SACA,OACA,SACA,OACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,OACA,QACA,OACA,QACA,OACA,SACA,OACA,SACA,SACA,SACA,QACA,QACA,SACA,SACA,SACA,SACA,SACA,QACA,OACA,OACA,OACA,SACA,SACA,OACA,SACA,OACA,OACA,SACA,QACA,SACA,OACA,QACA,SACA,QACA,OACA,MACA,SACA,QACA,QACA,OACA,OACA,SACA,QACA,SACA,QACA,QACA,OACA,SACA,OACA,SACA,QACA,QACA,QACA,SACA,OACA,QACA,QACA,OACA,OACA,MACA,OACA,SACA,QACA,SACA,OACA,OACA,MACA,OACA,SACA,SACA,SACA,OACA,QACA,SACA,MACA,SACA,OACA,OACA,SACA,QACA,MACA,QACA,QACA,MACA,MACA,QACA,OACA,QACA,OACA,SACA,SACA,OACA,SACA,SACA,SACA,SACA,QACA,QACA,SACA,MACA,MACA,SACA,QACA,SACA,SACA,QACA,OACA,MACA,OACA,OACA,MACA,QACA,SACA,QACA,QACA,OACA,OACA,OACA,MACA,QACA,OACA,QACA,OACA,OACA,SACA,SACA,OACA,SACA,QACA,QACA,SACA,QACA,SACA,SACA,OACA,SACA,QACA,SACA,SACA,QACA,QACA,SACA,SACA,SACA,SACA,SACA,QACA,QACA,QACA,QACA,QACA,MACA,MACA,QACA,SACA,SACA,OACA,OACA,OACA,QACA,MACA,QACA,MACA,MACA,QACA,SACA,QACA,SACA,SACA,QACA,OACA,OACA,SACA,OACA,MACA,SACA,QACA,QACA,OACA,OACA,OACA,QACA,OACA,SACA,OACA,OACA,MACA,SACA,QACA,QACA,OACA,QACA,QACA,SACA,SACA,SACA,SACA,QACA,SACA,OACA,SACA,SACA,OACA,SACA,QACA,SACA,OACA,OACA,QACA,SACA,SACA,SACA,MACA,QACA,SACA,OACA,QACA,SACA,SACA,OACA,QACA,OACA,MACA,OACA,MACA,QACA,QACA,OACA,OACA,QACA,QACA,OACA,OACA,SACA,SACA,SACA,MACA,QACA,QACA,SACA,QACA,SACA,SACA,MACA,QACA,QACA,SACA,SACA,SACA,SACA,OACA,OACA,MACA,QACA,SACA,SACA,QACA,QACA,SACA,QACA,QACA,SACA,QACA,OACA,SACA,SACA,MACA,QACA,OACA,SACA,QACA,MACA,SACA,QACA,OACA,OACA,OACA,SACA,SACA,QACA,MACA,QACA,OACA,OACA,OACA,QACA,OACA,SACA,OACA,SACA,SACA,MACA,QACA,OACA,QACA,QACA,QACA,QACA,SACA,SACA,QACA,OACA,QACA,SACA,QACA,QACA,SACA,QACA,OACA,SACA,OACA,QACA,SACA,SACA,SACA,SACA,OACA,SACA,OACA,OACA,OACA,QACA,SACA,SACA,OACA,QACA,SACA,OACA,OACA,SACA,SACA,QACA,SACA,SACA,QACA,OACA,SACA,SACA,SACA,SACA,OACA,SACA,OACA,OACA,SACA,OACA,OACA,OACA,SACA,MACA,QACA,OACA,OACA,OACA,SACA,OACA,OACA,OACA,SACA,MACA,SACA,SACA,QACA,QACA,OACA,SACA,QACA,SACA,OACA,SACA,SACA,SACA,SACA,QACA,SACA,QACA,QACA,SACA,SACA,QACA,SACA,QACA,QACA,QACA,SACA,QACA,QACA,QACA,SACA,SACA,QACA,QACA,SACA,SACA,QACA,SACA,QACA,QACA,SACA,QACA,QACA,MACA,QACA,SACA,SACA,MACA,SACA,OACA,OACA,OACA,SACA,SACA,QACA,OACA,QACA,SACA,OACA,QACA,SACA,QACA,OACA,SACA,QACA,SACA,SACA,QACA,SACA,OACA,QACA,MACA,OACA,SACA,SACA,QACA,SACA,QACA,SACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,OACA,QACA,QACA,QACA,OACA,QACA,SACA,OACA,QACA,QACA,SACA,OACA,SACA,SACA,OACA,SACA,QACA,QACA,SACA,SACA,SACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,OACA,QACA,OACA,SACA,QACA,OACA,SACA,OACA,QACA,OACA,SACA,SACA,OACA,MACA,OACA,SACA,SACA,QACA,SACA,OACA,QACA,MACA,MACA,QACA,QACA,QACA,OACA,SACA,QACA,OACA,SACA,QACA,OACA,OACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,MACA,SACA,OACA,SACA,OACA,OACA,OACA,QACA,SACA,SACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,QACA,SACA,SACA,QACA,QACA,QACA,SACA,SACA,OACA,SACA,SACA,SACA,SACA,QACA,SACA,SACA,QACA,SACA,OACA,SACA,SACA,SACA,SACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,QACA,SACA,SACA,OACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,MACA,QACA,QACA,QACA,SACA,SACA,OACA,OACA,OACA,MACA,OACA,QACA,QACA,OACA,QACA,OACA,QACA,QACA,OACA,MACA,OACA,QACA,OACA,OACA,QACA,SACA,OACA,OACA,QACA,OACA,SACA,OACA,QACA,QACA,OACA,OACA,QACA,MACA,OACA,SACA,QACA,QACA,SACA,OACA,SACA,QACA,MACA,OACA,SACA,QACA,OACA,OACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,MACA,SACA,QACA,SACA,QACA,QACA,QACA,QACA,QACA,MACA,QACA,MACA,SACA,SACA,OACA,SACA,OACA,MACA,QACA,OACA,OACA,QACA,SACA,OACA,MACA,OACA,OACA,SACA,QACA,OACA,SACA,OACA,SACA,QACA,OACA,SACA,MACA,SACA,SACA,QACA,SACA,OACA,SACA,QACA,SACA,OACA,OACA,SACA,OACA,OACA,SACA,QACA,OACA,QACA,SACA,OACA,SACA,SACA,SACA,SACA,OACA,QACA,SACA,MACA,OACA,SACA,OACA,QACA,OACA,OACA,QACA,SACA,SACA,QACA,SACA,QACA,QACA,SACA,OACA,MACA,MACA,QACA,QACA,OACA,QACA,OACA,SACA,QACA,QACA,QACA,QACA,SACA,QACA,SACA,QACA,QACA,QACA,QACA,SACA,QACA,QACA,QACA,SACA,SACA,SACA,QACA,SACA,SACA,QACA,OACA,MACA,OACA,OACA,SACA,SACA,SACA,OACA,SACA,SACA,OACA,SACA,SACA,MACA,OACA,SACA,OACA,OACA,QACA,SACA,SACA,OACA,OACA,SACA,OACA,SACA,OACA,SACA,SACA,QACA,SACA,OACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,QACA,QACA,SACA,MACA,SACA,QACA,SACA,MACA,SACA,SACA,QACA,SACA,QACA,QACA,SACA,OACA,QACA,QACA,QACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,MACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SACA,SACA,QACA,QACA,QACA,OACA,QACA,QACA,QACA,SACA,QACA,OACA,QACA,QACA,OACA,QACA,QACA,OACA,SACA,QACA,OACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,QACA,QACA,OACA,MACA,QACA,OACA,OACA,QACA,OACA,QACA,QACA,OACA,SACA,SACA,OACA,SACA,QACA,OACA,QACA,OACA,SACA,SACA,SACA,QACA,SACA,OACA,SACA,SACA,OACA,MACA,OACA,QACA,SACA,MACA,OACA,SACA,MACA,QACA,QACA,OACA,SACA,QACA,OACA,SACA,OACA,QACA,QACA,MACA,OACA,QACA,QACA,OACA,QACA,OACA,OACA,QACA,QACA,QACA,QACA,SACA,SACA,QACA,QACA,OACA,QACA,SACA,OACA,QACA,QACA,OACA,OACA,SACA,QACA,SACA,OACA,OACA,SACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SACA,QACA,QACA,QACA,QACA,QACA,SACA,OACA,QACA,QACA,QACA,OACA,SACA,QACA,OACA,QACA,OACA,OACA,OACA,QACA,SACA,SACA,OACA,SACA,QACA,OACA,SACA,SACA,OACA,OACA,SACA,SACA,QACA,OACA,QACA,OACA,OACA,SACA,SACA,QACA,OACA,QACA,OACA,MACA,QACA,SACA,OACA,QACA,OACA,OACA,SACA,OACA,SACA,SACA,OACA,SACA,QACA,OACA,OACA,QACA,OACA,OACA,SACA,SACA,MACA,QACA,QACA,QACA,OACA,QACA,QACA,SACA,QACA,OACA,QACA,QACA,QACA,SACA,QACA,SACA,QACA,QACA,SACA,QACA,QACA,SACA,QACA,QACA,OACA,SACA,QACA,SACA,SACA,OACA,QACA,SACA,QACA,QACA,QACA,SACA,QACA,QACA,OACA,SACA,QACA,SACA,QACA,SACA,SACA,OACA,QACA,SACA,SACA,QACA,QACA,OACA,SACA,QACA,QACA,QACA,QACA,QACA,SACA,QACA,QACA,QACA,QACA,SACA,QACA,SACA,OACA,SACA,QACA,QACA,QACA,SACA,QACA,SACA,SACA,SACA,OACA,QACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,OACA,SACA,OACA,SACA,QACA,OACA,QACA,SACA,QACA,SACA,SACA,QACA,QACA,QACA,OACA,SACA,QACA,SACA,QACA,QACA,QACA,OACA,QACA,QACA,SACA,QACA,QACA,QACA,OACA,SACA,SACA,SACA,QACA,SACA,QACA,QACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,OACA,SACA,QACA,QACA,SACA,QACA,SACA,SACA,QACA,SACA,SACA,SACA,SACA,OACA,SACA,MACA,OACA,SACA,QACA,OACA,QACA,SACA,SACA,SACA,MACA,SACA,SACA,SACA,MACA,SACA,QACA,SACA,QACA,SACA,SACA,SACA,SACA,OACA,SACA,OACA,QACA,SACA,SACA,QACA,OACA,OACA,QACA,OACA,QACA,QACA,SACA,SACA,QACA,QACA,QACA,QACA,OACA,QACA,QACA,QACA,QACA,SACA,QACA,QACA,SACA,SACA,QACA,SACA,QACA,QACA,SACA,QACA,SACA,QACA,QACA,SACA,OACA,SACA,OACA,SACA,SACA,OACA,OACA,SACA,OACA,OACA,QACA,OACA,QACA,MACA,SACA,SACA,OACA,MACA,OACA,SACA,SACA,OACA,OACA,SACA,OACA,QACA,QACA,SACA,SACA,OACA,SACA,MACA,OACA,MACA,QACA,OACA,OACA,OACA,QACA,OACA,QACA,OACA,SACA,SACA,QACA,QACA,MACA,SACA,OACA,SACA,SACA,SACA,QACA,QACA,OACA,QACA,SACA,SACA,OACA,SACA,QACA,OACA,QACA,OACA,QACA,OACA,OACA,QACA,SACA,SACA,QACA,QACA,SACA,OACA,QACA,QACA,QACA,OACA,QACA,QACA,QACA,SACA,SACA,OACA,SACA,QACA,QACA,SACA,SACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,QACA,SACA,OACA,OACA,QACA,OACA,QACA,QACA,OACA,SACA,QACA,OACA,OACA,MACA,OACA,QACA,QACA,OACA,OACA,OACA,SACA,OACA,QACA,MACA,OACA,MACA,OACA,SACA,QACA,OACA,QACA,QACA,MACA,SACA,QACA,QACA,OACA,OACA,MACA,SACA,OACA,QACA,OACA,SACA,QACA,MACA,OACA,OACA,QACA,MACA,QACA,QACA,QACA,SACA,QACA,OACA,OACA,QACA,QACA,QACA,OACA,SACA,QACA,QACA,OACA,QACA,QACA,MACA,QACA,QACA,QACA,QACA,SACA,QACA,QACA,QACA,OACA,SACA,OACA,SACA,SACA,OACA,QACA,QACA,SACA,SACA,OACA,OACA,SACA,SACA,QACA,SACA,QACA,SACA,QACA,QACA,SACA,QACA,SACA,OACA,OACA,OACA,SACA,QACA,SACA,OACA,SACA,QACA,QACA,QACA,OACA,QACA,QACA,QACA,QACA,MACA,OACA,SACA,OACA,SACA,OACA,QACA,SACA,SACA,OACA,OACA,SACA,OACA,SACA,QACA,QACA,SACA,SACA,QACA,OACA,QACA,MACA,SACA,QACA,OACA,SACA,OACA,QACA,QACA,SACA,SACA,QACA,QACA,SACA,SACA,QACA,QACA,SACA,OACA,QACA,QACA,SACA,SACA,SACA,QACA,SACA,SACA,SACA,SACA,OACA,QACA,SACA,QACA,SACA,SACA,SACA,SACA,QACA,OACA,SACA,SACA,QACA,SACA,QACA,MACA,SACA,OACA,QACA,SACA,QACA,SACA,SACA,QACA,OACA,QACA,QACA,SACA,QACA,QACA,MACA,SACA,SACA,OACA,OACA,OACA,MACA,QACA,SACA,OACA,OACA,SACA,SACA,SACA,SACA,QACA,OACA,QACA,QACA,OACA,SACA,QACA,SACA,SACA,QACA,SACA,OACA,SACA,OACA,MACA,OACA,MACA,SACA,QACA,OACA,SACA,SACA,QACA,SACA,OACA,QACA,SACA,OACA,QACA,OACA,QACA,QACA,SACA,SACA,QACA,QACA,SACA,QACA,OACA,SACA,QACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,OACA,SACA,SACA,OACA,QACA,SACA,SACA,OACA,OACA,QACA,OACA,SACA,OACA,OACA,SACA,OACA,SACA,SACA,SACA,OACA,MACA,SACA,OACA,SACA,OACA,OACA,SACA,OACA,MACA,OACA,OACA,QACA,QACA,QACA,SACA,OACA,MACA,MACA,OACA,SACA,SACA,SACA,OACA,QACA,QACA,QACA,MACA,OACA,OACA,SACA,OACA,QACA,SACA,QACA,OACA,OACA,OACA,MACA,QACA,QACA,OACA,QACA,QACA,OACA,SACA,QACA,QACA,QACA,QACA,OACA,OACA,SACA,QACA,MACA,QACA,SACA,OACA,QACA,MACA,SACA,OACA,SACA,QACA,QACA,QACA,QACA,OACA,MACA,OACA,SACA,OACA,SACA,OACA,MACA,OACA,SACA,QACA,OACA,OACA,OACA,SACA,SACA,OACA,OACA,SACA,OACA,OACA,MACA,QACA,OACA,SACA,QACA,SACA,OACA,OACA,SACA,QACA,OACA,MACA,SACA,OACA,SACA,QACA,QACA,OACA,OACA,OACA,SACA,QACA,OACA,QACA,QACA,QACA,QACA,SACA,QACA,QACA,OACA,QACA,SACA,QACA,QACA,QACA,OACA,QACA,SACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,SACA,MACA,QACA,SACA,OACA,MACA,QACA,OACA,QACA,QACA,OACA,QACA,SACA,OACA,OACA,SACA,OACA,SACA,QChgIWC,WAAA,CACX,UACA,UACA,OACA,QACA,QACA,SACA,SACA,WACA,SACA,QACA,SACA,WACA,UACA,SACA,UACA,OACA,WACA,UACA,SACA,MACA,SACA,QACA,UACA,SACA,QACA,MACA,SACA,UACA,SACA,QACA,QACA,UACA,SACA,UACA,SACA,SACA,SACA,QACA,MACA,QACA,QACA,QACA,MACA,MACA,UACA,QACA,QACA,QACA,UACA,QACA,QACA,MACA,QACA,QACA,SACA,QACA,QACA,UACA,OACA,QACA,SACA,UACA,UACA,QACA,SACA,SACA,UACA,SACA,UACA,QACA,QACA,QACA,SACA,QACA,WACA,SACA,UACA,SACA,UACA,UACA,UACA,MACA,QACA,UACA,SACA,QACA,UACA,QACA,OACA,SACA,OACA,QACA,QACA,MACA,QACA,QACA,OACA,SACA,UACA,SACA,SACA,QACA,MACA,WACA,SACA,UACA,MACA,SACA,UACA,QACA,SACA,SACA,SACA,UACA,OACA,SACA,SACA,WACA,UACA,UACA,QACA,SACA,OACA,SACA,OACA,SACA,UACA,UACA,QACA,QACA,QACA,OACA,UACA,QACA,UACA,OACA,OACA,WACA,QACA,QACA,MACA,UACA,UACA,OACA,SACA,SACA,SACA,MACA,SACA,UACA,SACA,OACA,QACA,SACA,SACA,QACA,OACA,SACA,UACA,SACA,OACA,SACA,QACA,SACA,SACA,UACA,QACA,OACA,QACA,UACA,OACA,SACA,SACA,UACA,SACA,UACA,MACA,OACA,OACA,UACA,OACA,QACA,SACA,QACA,QACA,QACA,UACA,QACA,QACA,QACA,QACA,QACA,UACA,SACA,OACA,OACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,QACA,OACA,QACA,SACA,SACA,SACA,OACA,SACA,SACA,MACA,MACA,UACA,QACA,QACA,QACA,QACA,QACA,SACA,QACA,SACA,QACA,SACA,QACA,QACA,WACA,SACA,SACA,QACA,UACA,QACA,QACA,SACA,QACA,SACA,UACA,QACA,OACA,OACA,SACA,SACA,SACA,SACA,SACA,QACA,MACA,WACA,OACA,SACA,QACA,OACA,UACA,QACA,QACA,SACA,OACA,OACA,OACA,OACA,SACA,OACA,MACA,QACA,SACA,QACA,SACA,QACA,SACA,SACA,UACA,UACA,UACA,MACA,SACA,OACA,QACA,SACA,QACA,OACA,OACA,OACA,SACA,SACA,SACA,MACA,UACA,QACA,WACA,SACA,SACA,QACA,UACA,OACA,UACA,SACA,SACA,SACA,UACA,SACA,UACA,QACA,QACA,WACA,SACA,QACA,UACA,SACA,QACA,OACA,QACA,QACA,SACA,OACA,SACA,QACA,UACA,QACA,QACA,UACA,SACA,SACA,UACA,UACA,QACA,QACA,QACA,WACA,SACA,UACA,OACA,QACA,QACA,OACA,UACA,OACA,OACA,QACA,QACA,SACA,QACA,SACA,QACA,QACA,SACA,OACA,QACA,OACA,QACA,QACA,QACA,QACA,OACA,QACA,UACA,SACA,QACA,QACA,UACA,OACA,SACA,OACA,OACA,UACA,QACA,SACA,UACA,OACA,UACA,QACA,SACA,UACA,UACA,UACA,UACA,WACA,UACA,WACA,UACA,WACA,OACA,OACA,SACA,OACA,QACA,OACA,OACA,UACA,OACA,SACA,QACA,UACA,SACA,SACA,SACA,QACA,SACA,QACA,SACA,QACA,OACA,QACA,QACA,SACA,QACA,QACA,QACA,SACA,QACA,OACA,UACA,QACA,QACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,SACA,UACA,SACA,QACA,MACA,UACA,OACA,UACA,MACA,WACA,UACA,UACA,UACA,QACA,UACA,SACA,OACA,QACA,MACA,SACA,OACA,QACA,SACA,SACA,OACA,WACA,OACA,MACA,OACA,SACA,SACA,SACA,WACA,SACA,UACA,WACA,WACA,OACA,UACA,SACA,OACA,SACA,QACA,UACA,SACA,SACA,SACA,UACA,OACA,SACA,SACA,UACA,QACA,SACA,SACA,WACA,SACA,SACA,OACA,UACA,UACA,SACA,SACA,UACA,SACA,SACA,UACA,OACA,UACA,QACA,OACA,SACA,OACA,SACA,UACA,UACA,UACA,SACA,WACA,SACA,OACA,WACA,WACA,UACA,OACA,UACA,WACA,UACA,WACA,SACA,SACA,UACA,QACA,SACA,WACA,MACA,OACA,UACA,SACA,SACA,SACA,QACA,OACA,OACA,SACA,OACA,QACA,SACA,QACA,UACA,OACA,QACA,QACA,QACA,QACA,QACA,OACA,QACA,OACA,OACA,MACA,OACA,OACA,OACA,SACA,OACA,QACA,OACA,QACA,UACA,QACA,QACA,QACA,OACA,QACA,SACA,OACA,OACA,OACA,UACA,UACA,OACA,OACA,UACA,SACA,MACA,QACA,SACA,QACA,QACA,WACA,UACA,UACA,WACA,WACA,QACA,OACA,SACA,SACA,UACA,SACA,UACA,SACA,UACA,QACA,SACA,QACA,MACA,UACA,UACA,QACA,SACA,UACA,SACA,SACA,UACA,QACA,SACA,SACA,SACA,SACA,SACA,QACA,SACA,QACA,WACA,UACA,QACA,QACA,MACA,QACA,QACA,UACA,QACA,QACA,SACA,QACA,UACA,SACA,UACA,SACA,WACA,OACA,QACA,SACA,QACA,UACA,SACA,WACA,SACA,UACA,SACA,UACA,WACA,UACA,UACA,QACA,QACA,OACA,SACA,SACA,SACA,SACA,UACA,SACA,UACA,SACA,QACA,MACA,UACA,SACA,OACA,UACA,OACA,QACA,QACA,OACA,QACA,OACA,SACA,SACA,MACA,QACA,UACA,OACA,UACA,MACA,QACA,SACA,UACA,QACA,WACA,UACA,WACA,UACA,MACA,OACA,OACA,SACA,QACA,WACA,QACA,QACA,MACA,QACA,UACA,QACA,SACA,OACA,OACA,SACA,QACA,OACA,OACA,SACA,SACA,OACA,OACA,QACA,SACA,OACA,MACA,UACA,MACA,OACA,QACA,QACA,OACA,SACA,OACA,SACA,OACA,QACA,QACA,QACA,SACA,QACA,QACA,MACA,OACA,QACA,MACA,OACA,OACA,SACA,OACA,OACA,QACA,SACA,SACA,OACA,UACA,QACA,UACA,SACA,SACA,QACA,MACA,UACA,QACA,WACA,QACA,SACA,SACA,OACA,QACA,QACA,QACA,SACA,QACA,OACA,MACA,QACA,UACA,OACA,SACA,SACA,OACA,SACA,UACA,OACA,MACA,SACA,UACA,SACA,SACA,UACA,MACA,OACA,OACA,SACA,QACA,OACA,UACA,SACA,QACA,SACA,UACA,UACA,QACA,QACA,OACA,SACA,SACA,UACA,OACA,OACA,OACA,SACA,QACA,QACA,QACA,UACA,QACA,QACA,QACA,QACA,OACA,OACA,OACA,UACA,OACA,OACA,QACA,UACA,SACA,SACA,SACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,UACA,QACA,QACA,OACA,QACA,OACA,UACA,QACA,OACA,QACA,QACA,QACA,QACA,QACA,SACA,MACA,MACA,QACA,OACA,OACA,SACA,UACA,OACA,QACA,SACA,OACA,QACA,UACA,MACA,OACA,OACA,SACA,OACA,SACA,QACA,QACA,WACA,SACA,QACA,SACA,OACA,MACA,OACA,SACA,OACA,OACA,OACA,MACA,OACA,UACA,QACA,SACA,OACA,OACA,UACA,SACA,OACA,QACA,OACA,OACA,OACA,SACA,QACA,WACA,OACA,QACA,OACA,QACA,MACA,OACA,QACA,SACA,QACA,UACA,SACA,OACA,SACA,QACA,OACA,UACA,SACA,MACA,OACA,OACA,WACA,OACA,SACA,MACA,UACA,UACA,QACA,UACA,UACA,SACA,SACA,SACA,UACA,UACA,OACA,UACA,SACA,WACA,QACA,WACA,SACA,WACA,SACA,UACA,SACA,SACA,UACA,UACA,SACA,SACA,SACA,QACA,WACA,QACA,UACA,SACA,SACA,SACA,UACA,UACA,SACA,WACA,OACA,SACA,SACA,UACA,OACA,SACA,UACA,QACA,OACA,QACA,SACA,SACA,MACA,OACA,UACA,QACA,QACA,QACA,MACA,OACA,OACA,UACA,MACA,QACA,QACA,OACA,SACA,SACA,OACA,OACA,WACA,OACA,OACA,UACA,MACA,OACA,MACA,SACA,OACA,UACA,OACA,MACA,UACA,OACA,SACA,OACA,OACA,QACA,QACA,OACA,MACA,QACA,QACA,SACA,OACA,OACA,OACA,WACA,SACA,QACA,QACA,QACA,QACA,UACA,OACA,MACA,OACA,UACA,QACA,OACA,SACA,OACA,QACA,QACA,UACA,OACA,MACA,QACA,SACA,UACA,QACA,OACA,SACA,OACA,UACA,SACA,SACA,QACA,OACA,UACA,UACA,UACA,OACA,OACA,QACA,OACA,OACA,QACA,OACA,OACA,SACA,OACA,SACA,OACA,SACA,OACA,OACA,UACA,QACA,OACA,QACA,SACA,OACA,OACA,UACA,OACA,SACA,OACA,QACA,QACA,UACA,SACA,QACA,QACA,SACA,SACA,UACA,MACA,QACA,SACA,OACA,OACA,OACA,QACA,OACA,SACA,MACA,SACA,UACA,QACA,UACA,SACA,QACA,SACA,QACA,SACA,SACA,SACA,WACA,OACA,OACA,SACA,QACA,WACA,OACA,SACA,SACA,UACA,OACA,SACA,OACA,UACA,OACA,WACA,QACA,QACA,SACA,OACA,SACA,SACA,UACA,OACA,QACA,QACA,QACA,QACA,OACA,UACA,QACA,SACA,SACA,WACA,OACA,UACA,QACA,OACA,UACA,QACA,SACA,UACA,SACA,SACA,OACA,UACA,MACA,QACA,UACA,SACA,QACA,SACA,MACA,SACA,UACA,SACA,UACA,QACA,OACA,QACA,OACA,UACA,WACA,SACA,SACA,QACA,WACA,QACA,OACA,QACA,OACA,SACA,OACA,WACA,SACA,SACA,WACA,QACA,OACA,SACA,SACA,UACA,OACA,QACA,OACA,SACA,SACA,QACA,SACA,SACA,OACA,OACA,OACA,WACA,UACA,UACA,SACA,QACA,OACA,MACA,UACA,UACA,QACA,OACA,OACA,OACA,QACA,QACA,QACA,UACA,SACA,SACA,QACA,OACA,UACA,OACA,UACA,SACA,QACA,MACA,UACA,SACA,QACA,MACA,MACA,OACA,SACA,SACA,UACA,UACA,SACA,UACA,QACA,QACA,UACA,OACA,MACA,QACA,SACA,QACA,MACA,OACA,MACA,QACA,UACA,OACA,OACA,MACA,QACA,SACA,OACA,OACA,QACA,UACA,SACA,SACA,SACA,QACA,UACA,QACA,WACA,QACA,SACA,WACA,SACA,UACA,QACA,UACA,QACA,SACA,UACA,OACA,OACA,OACA,MACA,QACA,SACA,SACA,QACA,OACA,SACA,OACA,OACA,SACA,OACA,QACA,QACA,QACA,UACA,QACA,SACA,SACA,OACA,SACA,QACA,OACA,QACA,OACA,UACA,SACA,UACA,QACA,OACA,UACA,QACA,SACA,OACA,UACA,UACA,MACA,UACA,SACA,SACA,SACA,UACA,SACA,SACA,MACA,QACA,QACA,SACA,WACA,QACA,SACA,UACA,QACA,MACA,SACA,OACA,QACA,OACA,UACA,OACA,SACA,QACA,QACA,QACA,SACA,UACA,QACA,OACA,SACA,SACA,QACA,OACA,SACA,OACA,OACA,QACA,QACA,OACA,SACA,OACA,OACA,OACA,UACA,UACA,WACA,WACA,OACA,SACA,UACA,UACA,SACA,QACA,WACA,SACA,UACA,SACA,UACA,UACA,SACA,UACA,QACA,QACA,UACA,QACA,WACA,SACA,UACA,QACA,UACA,UACA,UACA,SACA,UACA,UACA,UACA,QACA,WACA,UACA,UACA,QACA,UACA,SACA,UACA,OACA,OACA,QACA,UACA,QACA,QACA,QACA,WACA,SACA,UACA,QACA,OACA,MACA,SACA,UACA,UACA,UACA,UACA,WACA,QACA,OACA,OACA,QACA,SACA,UACA,OACA,OACA,QACA,QACA,OACA,OACA,QACA,QACA,OACA,QACA,SACA,QACA,QACA,OACA,OACA,SACA,QACA,MACA,QACA,QACA,OACA,SACA,QACA,UACA,SACA,UACA,SACA,SACA,UACA,SACA,UACA,SACA,SACA,SACA,SACA,UACA,SACA,QACA,UACA,SACA,OACA,SACA,WACA,SACA,SACA,SACA,QACA,OACA,SACA,SACA,SACA,UACA,SACA,UACA,SACA,WACA,SACA,WACA,WACA,SACA,SACA,UACA,SACA,UACA,SACA,SACA,SACA,SACA,MACA,SACA,OACA,OACA,OACA,QACA,QACA,QACA,QACA,OACA,OACA,SACA,OACA,SACA,QACA,QACA,OACA,QACA,QACA,SACA,SACA,UACA,OACA,SACA,OACA,OACA,SACA,QACA,QACA,QACA,QACA,SACA,OACA,MACA,OACA,MACA,SACA,QACA,MACA,SACA,UACA,OACA,OACA,QACA,SACA,QACA,OACA,SACA,OACA,SACA,OACA,UACA,UACA,QACA,UACA,OACA,MACA,QACA,OACA,QACA,UACA,QACA,SACA,SACA,UACA,WACA,WACA,QACA,QACA,SACA,SACA,QACA,MACA,SACA,SACA,OACA,SACA,SACA,UACA,WACA,OACA,OACA,UACA,SACA,OACA,UACA,SACA,QACA,WACA,SACA,UACA,UACA,SACA,QACA,QACA,SACA,QACA,UACA,QACA,OACA,QACA,UACA,SACA,QACA,QACA,OACA,SACA,QACA,OACA,QACA,OACA,QACA,WACA,QACA,SACA,QACA,UACA,MACA,UACA,OACA,OACA,QACA,QACA,OACA,SACA,OACA,QACA,SACA,UACA,SACA,QACA,OACA,QACA,SACA,UACA,MACA,OACA,QACA,SACA,MACA,QACA,OACA,QACA,QACA,OACA,OACA,QACA,UACA,QACA,QACA,SACA,OACA,SACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,SACA,QACA,QACA,OACA,QACA,OACA,OACA,SACA,SACA,OACA,OACA,OACA,QACA,UACA,QACA,WACA,QACA,UACA,OACA,OACA,QACA,OACA,OACA,QACA,OACA,SACA,QACA,QACA,QACA,UACA,QACA,QACA,UACA,QACA,QACA,QACA,SACA,QACA,SACA,QACA,OACA,SACA,QACA,QACA,UACA,QACA,QACA,OACA,QACA,SACA,SACA,MACA,SACA,UACA,WACA,SACA,UACA,QACA,QACA,SACA,QACA,QACA,QACA,QACA,OACA,QACA,QACA,OACA,OACA,SACA,QACA,QACA,QACA,QACA,UACA,QACA,QACA,QACA,QACA,WACA,SACA,SACA,SACA,WACA,UACA,QACA,UACA,QACA,UACA,SACA,SACA,UACA,OACA,SACA,SACA,QACA,UACA,OACA,SACA,MACA,QACA,SACA,QACA,SACA,UACA,OACA,UACA,QACA,WACA,WACA,SACA,UACA,UACA,UACA,QACA,OACA,QACA,QACA,QACA,QACA,OACA,QACA,SACA,QACA,SACA,UACA,QACA,SACA,QACA,SACA,MACA,OACA,SACA,OACA,OACA,OACA,SACA,OACA,QACA,SACA,OACA,QACA,OACA,OACA,MACA,SACA,SACA,OACA,OACA,OACA,OACA,QACA,OACA,QACA,OACA,SACA,QACA,OACA,QACA,OACA,UACA,QACA,SACA,QACA,QACA,UACA,SACA,OACA,QACA,OACA,SACA,OACA,OACA,MACA,QACA,SACA,QACA,QACA,UACA,QACA,UACA,MACA,WACA,SACA,QACA,SACA,WACA,OACA,SACA,UACA,OACA,QACA,MACA,QACA,SACA,QACA,UACA,WACA,OACA,QACA,UACA,SACA,QACA,OACA,MACA,QACA,QACA,UACA,SACA,QACA,WACA,OACA,QACA,SACA,OACA,QACA,OACA,QACA,QACA,QACA,QACA,UACA,OACA,OACA,SACA,UACA,QACA,OACA,QACA,UACA,QACA,QACA,MACA,OACA,UACA,SACA,OACA,SACA,SACA,OACA,SACA,SACA,SACA,QACA,OACA,QACA,MACA,OACA,UACA,OACA,WACA,SACA,UACA,QACA,UACA,QACA,OACA,SACA,SACA,UACA,UACA,SACA,OACA,WACA,UACA,SACA,QACA,UACA,SACA,SACA,UACA,SACA,OACA,QACA,QACA,QACA,OACA,QACA,MACA,OACA,SACA,UACA,QACA,UACA,SACA,SACA,QACA,QACA,SACA,QACA,MACA,SACA,QACA,UACA,OACA,QACA,UACA,SACA,SACA,UACA,QACA,OACA,SACA,UACA,OACA,SACA,UACA,SACA,UACA,UACA,UACA,QACA,OACA,UACA,UACA,SACA,UACA,QACA,OACA,QACA,SACA,QACA,QACA,QACA,QACA,OACA,UACA,SACA,OACA,SACA,OACA,QACA,OACA,OACA,OACA,SACA,OACA,UACA,OACA,UACA,OACA,OACA,QACA,QACA,OACA,MACA,SACA,SACA,OACA,SACA,UACA,MACA,UACA,UACA,QACA,UACA,OACA,MACA,QACA,OACA,QACA,QACA,OACA,QACA,OACA,UACA,OACA,QACA,OACA,OACA,OACA,MACA,SACA,OACA,OACA,OACA,SACA,SACA,OACA,SACA,OACA,OACA,UACA,OACA,QACA,SA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oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,kEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,sEAINxC,IAAK,CACHzH,IAAK,EACLiK,OAAQ,CACN,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,iEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,o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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,719,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803]} \ No newline at end of file diff --git a/dist/umd/index.d.ts b/dist/umd/index.d.ts index 3d3ff70..3006092 100644 --- a/dist/umd/index.d.ts +++ b/dist/umd/index.d.ts @@ -38,9 +38,24 @@ declare class HashinalsWalletConnectSDK { accountId: string; network: LedgerId; }; - createTopic(memo?: string, adminKey?: string, submitKey?: string): Promise; + getAllMessages(topicId: string): Promise; + generatePrivateAndPublicKey(): Promise<{ + privateKey: string; + publicKey: string; + }>; + updateTopic(topicId: string, memo: string, adminKey: string, customFees?: { + denominatingTokenId: string; + amount: string; + collectorAccountId: string; + }[], feeScheduleKey?: string): Promise; + createTopic(memo?: string, adminKey?: string, customFees?: { + denominatingTokenId: string; + amount: string; + collectorAccountId: string; + }[]): Promise; createToken(name: string, symbol: string, initialSupply: number, decimals: number, treasuryAccountId: string, adminKey: string, supplyKey: string): Promise; mintNFT(tokenId: string, metadata: string, supplyKey: PrivateKey): Promise; + getTopicInfo(topicId: string, network?: string): Promise; getMessages(topicId: string, lastTimestamp?: number, disableTimestampFilter?: boolean, network?: string): Promise; signMessage(message: string): Promise<{ userSignature: any; diff --git a/dist/umd/types.d.ts b/dist/umd/types.d.ts index 9aa3c91..4df02d9 100644 --- a/dist/umd/types.d.ts +++ b/dist/umd/types.d.ts @@ -227,7 +227,17 @@ export type HashinalsWalletConnectSDK = { executeSmartContract: (contractId: string, functionName: string, parameters: ContractFunctionParameters, gas?: number) => Promise; getAccountBalance: () => Promise; getAccountInfo: () => string; - createTopic: (memo?: string, adminKey?: string, submitKey?: string) => Promise; + createTopic: (memo?: string, adminKey?: string, customFees?: { + denominatingTokenId: string; + amount: string; + collectorAccountId: string; + }[]) => Promise; + generatePrivateAndPublicKey: () => Promise<{ + privateKey: string; + publicKey: string; + }>; + getTopicInfo: (topicId: string) => Promise; + updateTopic: (topicId: string, memo: string, adminKey: string) => Promise; createToken: (name: string, symbol: string, initialSupply: number, decimals: number, treasuryAccountId: string, adminKey: string, supplyKey: string) => Promise; mintNFT: (tokenId: string, metadata: string, supplyKey: PrivateKey) => Promise; dAppConnector?: DAppConnector; diff --git a/dist/utils/retry.d.ts b/dist/utils/retry.d.ts deleted file mode 100644 index 0004cd3..0000000 --- a/dist/utils/retry.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare const fetchWithRetry: () => (input: string | Request | URL, init?: import("fetch-retry").RequestInitWithRetry) => Promise; diff --git a/package-lock.json b/package-lock.json index 7b0cf7a..907b69e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,16 +1,16 @@ { "name": "@hashgraphonline/hashinal-wc", - "version": "1.0.95", + "version": "1.0.96", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@hashgraphonline/hashinal-wc", - "version": "1.0.95", + "version": "1.0.96", "dependencies": { "@hashgraph/hedera-wallet-connect": "1.4.2", "@hashgraph/proto": "^2.15.0", - "@hashgraph/sdk": "^2.55.1", + "@hashgraph/sdk": "latest", "@walletconnect/core": "^2.17.3", "@walletconnect/modal": "^2.7.0", "@walletconnect/modal-core": "^2.7.0", @@ -53,7 +53,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "dev": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" @@ -63,14 +62,14 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", - "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", - "dev": true, + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.25.9", + "@babel/helper-validator-identifier": "^7.27.1", "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" + "picocolors": "^1.1.1" }, "engines": { "node": ">=6.9.0" @@ -80,7 +79,6 @@ "version": "7.26.3", "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.3.tgz", "integrity": "sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g==", - "dev": true, "engines": { "node": ">=6.9.0" } @@ -89,7 +87,6 @@ "version": "7.26.0", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", - "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.26.0", @@ -116,13 +113,13 @@ } }, "node_modules/@babel/generator": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.3.tgz", - "integrity": "sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==", - "dev": true, + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.1.tgz", + "integrity": "sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w==", + "license": "MIT", "dependencies": { - "@babel/parser": "^7.26.3", - "@babel/types": "^7.26.3", + "@babel/parser": "^7.27.1", + "@babel/types": "^7.27.1", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^3.0.2" @@ -135,7 +132,6 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", - "dev": true, "dependencies": { "@babel/compat-data": "^7.25.9", "@babel/helper-validator-option": "^7.25.9", @@ -151,7 +147,6 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", - "dev": true, "dependencies": { "@babel/traverse": "^7.25.9", "@babel/types": "^7.25.9" @@ -164,7 +159,6 @@ "version": "7.26.0", "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", - "dev": true, "dependencies": { "@babel/helper-module-imports": "^7.25.9", "@babel/helper-validator-identifier": "^7.25.9", @@ -178,28 +172,28 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", - "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", - "dev": true, + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", - "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", - "dev": true, + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", - "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", - "dev": true, + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -208,7 +202,6 @@ "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", - "dev": true, "engines": { "node": ">=6.9.0" } @@ -217,7 +210,6 @@ "version": "7.26.0", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", - "dev": true, "dependencies": { "@babel/template": "^7.25.9", "@babel/types": "^7.26.0" @@ -227,12 +219,12 @@ } }, "node_modules/@babel/parser": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.3.tgz", - "integrity": "sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==", - "dev": true, + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.2.tgz", + "integrity": "sha512-QYLs8299NA7WM/bZAdp+CviYYkVoYXlDW2rzliy3chxd1PQjej7JORuMJDJXJUb9g0TT+B99EwaVLKmX+sPXWw==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.26.3" + "@babel/types": "^7.27.1" }, "bin": { "parser": "bin/babel-parser.js" @@ -241,6 +233,213 @@ "node": ">=6.0.0" } }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", + "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-transform-react-jsx-self": { "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz", @@ -271,15 +470,25 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/runtime": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.1.tgz", + "integrity": "sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/template": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", - "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", - "dev": true, + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.25.9", - "@babel/parser": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -289,7 +498,6 @@ "version": "7.26.4", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.4.tgz", "integrity": "sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==", - "dev": true, "dependencies": { "@babel/code-frame": "^7.26.2", "@babel/generator": "^7.26.3", @@ -303,14 +511,34 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/traverse--for-generate-function-map": { + "name": "@babel/traverse", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.1.tgz", + "integrity": "sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.27.1", + "@babel/parser": "^7.27.1", + "@babel/template": "^7.27.1", + "@babel/types": "^7.27.1", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/types": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.3.tgz", - "integrity": "sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==", - "dev": true, + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.1.tgz", + "integrity": "sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==", + "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9" + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -694,9 +922,9 @@ } }, "node_modules/@ethersproject/abi": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", - "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.8.0.tgz", + "integrity": "sha512-b9YS/43ObplgyV6SlyQsG53/vkSal0MNA1fskSC4mbnCMi8R+NkcH8K9FPYNESf6jUefBUniE4SOKms0E/KK1Q==", "funding": [ { "type": "individual", @@ -707,22 +935,50 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", + "dependencies": { + "@ethersproject/address": "^5.8.0", + "@ethersproject/bignumber": "^5.8.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/constants": "^5.8.0", + "@ethersproject/hash": "^5.8.0", + "@ethersproject/keccak256": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/properties": "^5.8.0", + "@ethersproject/strings": "^5.8.0" + } + }, + "node_modules/@ethersproject/abi/node_modules/@ethersproject/hash": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.8.0.tgz", + "integrity": "sha512-ac/lBcTbEWW/VGJij0CNSw/wPcw9bSRgCB0AIBz8CvED/jfvDoV9hsIIiWfvWmFEi8RcXtlNwp2jv6ozWOsooA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", "dependencies": { - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" + "@ethersproject/abstract-signer": "^5.8.0", + "@ethersproject/address": "^5.8.0", + "@ethersproject/base64": "^5.8.0", + "@ethersproject/bignumber": "^5.8.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/keccak256": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/properties": "^5.8.0", + "@ethersproject/strings": "^5.8.0" } }, "node_modules/@ethersproject/abstract-provider": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", - "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.8.0.tgz", + "integrity": "sha512-wC9SFcmh4UK0oKuLJQItoQdzS/qZ51EJegK6EmAWlh+OptpQ/npECOR3QqECd8iGHC0RJb4WKbVdSfif4ammrg==", "funding": [ { "type": "individual", @@ -733,20 +989,48 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/networks": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/web": "^5.7.0" + "@ethersproject/bignumber": "^5.8.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/networks": "^5.8.0", + "@ethersproject/properties": "^5.8.0", + "@ethersproject/transactions": "^5.8.0", + "@ethersproject/web": "^5.8.0" + } + }, + "node_modules/@ethersproject/abstract-provider/node_modules/@ethersproject/transactions": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.8.0.tgz", + "integrity": "sha512-UglxSDjByHG0TuU17bDfCemZ3AnKO2vYrL5/2n2oXvKzvb7Cz+W9gOWXKARjp2URVwcWlQlPOEQyAviKwT4AHg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/address": "^5.8.0", + "@ethersproject/bignumber": "^5.8.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/constants": "^5.8.0", + "@ethersproject/keccak256": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/properties": "^5.8.0", + "@ethersproject/rlp": "^5.8.0", + "@ethersproject/signing-key": "^5.8.0" } }, "node_modules/@ethersproject/abstract-signer": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", - "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.8.0.tgz", + "integrity": "sha512-N0XhZTswXcmIZQdYtUnd79VJzvEwXQw6PK0dTl9VoYrEBxxCPXqS0Eod7q5TNKRxe1/5WUMuR0u0nqTF/avdCA==", "funding": [ { "type": "individual", @@ -757,18 +1041,19 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0" + "@ethersproject/abstract-provider": "^5.8.0", + "@ethersproject/bignumber": "^5.8.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/properties": "^5.8.0" } }, "node_modules/@ethersproject/address": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", - "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.8.0.tgz", + "integrity": "sha512-GhH/abcC46LJwshoN+uBNoKVFPxUuZm6dA257z0vZkKmU1+t8xTn8oK7B9qrj8W2rFRMch4gbJl6PmVxjxBEBA==", "funding": [ { "type": "individual", @@ -779,18 +1064,19 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/rlp": "^5.7.0" + "@ethersproject/bignumber": "^5.8.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/keccak256": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/rlp": "^5.8.0" } }, "node_modules/@ethersproject/base64": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", - "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.8.0.tgz", + "integrity": "sha512-lN0oIwfkYj9LbPx4xEkie6rAMJtySbpOAFXSDVQaBnAzYfB4X2Qr+FXJGxMoc3Bxp2Sm8OwvzMrywxyw0gLjIQ==", "funding": [ { "type": "individual", @@ -801,14 +1087,15 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.7.0" + "@ethersproject/bytes": "^5.8.0" } }, "node_modules/@ethersproject/bignumber": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", - "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.8.0.tgz", + "integrity": "sha512-ZyaT24bHaSeJon2tGPKIiHszWjD/54Sz8t57Toch475lCLljC6MgPmxk7Gtzz+ddNN5LuHea9qhAe0x3D+uYPA==", "funding": [ { "type": "individual", @@ -819,16 +1106,17 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/logger": "^5.8.0", "bn.js": "^5.2.1" } }, "node_modules/@ethersproject/bytes": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", - "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.8.0.tgz", + "integrity": "sha512-vTkeohgJVCPVHu5c25XWaWQOZ4v+DkGoC42/TS2ond+PARCxTJvgTFUNDZovyQ/uAQ4EcpqqowKydcdmRKjg7A==", "funding": [ { "type": "individual", @@ -839,14 +1127,15 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { - "@ethersproject/logger": "^5.7.0" + "@ethersproject/logger": "^5.8.0" } }, "node_modules/@ethersproject/constants": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", - "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.8.0.tgz", + "integrity": "sha512-wigX4lrf5Vu+axVTIvNsuL6YrV4O5AXl5ubcURKMEME5TnWBouUh0CDTWxZ2GpnRn1kcCgE7l8O5+VbV9QTTcg==", "funding": [ { "type": "individual", @@ -857,8 +1146,9 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { - "@ethersproject/bignumber": "^5.7.0" + "@ethersproject/bignumber": "^5.8.0" } }, "node_modules/@ethersproject/hash": { @@ -888,9 +1178,9 @@ } }, "node_modules/@ethersproject/keccak256": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", - "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.8.0.tgz", + "integrity": "sha512-A1pkKLZSz8pDaQ1ftutZoaN46I6+jvuqugx5KYNeQOPqq+JZ0Txm7dlWesCHB5cndJSu5vP2VKptKf7cksERng==", "funding": [ { "type": "individual", @@ -901,15 +1191,16 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.7.0", + "@ethersproject/bytes": "^5.8.0", "js-sha3": "0.8.0" } }, "node_modules/@ethersproject/logger": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", - "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.8.0.tgz", + "integrity": "sha512-Qe6knGmY+zPPWTC+wQrpitodgBfH7XoceCGL5bJVejmH+yCS3R8jJm8iiWuvWbG76RUmyEG53oqv6GMVWqunjA==", "funding": [ { "type": "individual", @@ -919,12 +1210,13 @@ "type": "individual", "url": "https://www.buymeacoffee.com/ricmoo" } - ] + ], + "license": "MIT" }, "node_modules/@ethersproject/networks": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", - "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.8.0.tgz", + "integrity": "sha512-egPJh3aPVAzbHwq8DD7Po53J4OUSsA1MjQp8Vf/OZPav5rlmWUaFLiq8cvQiGK0Z5K6LYzm29+VA/p4RL1FzNg==", "funding": [ { "type": "individual", @@ -935,14 +1227,15 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { - "@ethersproject/logger": "^5.7.0" + "@ethersproject/logger": "^5.8.0" } }, "node_modules/@ethersproject/properties": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", - "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.8.0.tgz", + "integrity": "sha512-PYuiEoQ+FMaZZNGrStmN7+lWjlsoufGIHdww7454FIaGdbe/p5rnaCXTr5MtBYl3NkeoVhHZuyzChPeGeKIpQw==", "funding": [ { "type": "individual", @@ -953,14 +1246,15 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { - "@ethersproject/logger": "^5.7.0" + "@ethersproject/logger": "^5.8.0" } }, "node_modules/@ethersproject/rlp": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", - "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.8.0.tgz", + "integrity": "sha512-LqZgAznqDbiEunaUvykH2JAoXTT9NV0Atqk8rQN9nx9SEgThA/WMx5DnW8a9FOufo//6FZOCHZ+XiClzgbqV9Q==", "funding": [ { "type": "individual", @@ -971,15 +1265,16 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0" + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/logger": "^5.8.0" } }, "node_modules/@ethersproject/signing-key": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", - "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.8.0.tgz", + "integrity": "sha512-LrPW2ZxoigFi6U6aVkFN/fa9Yx/+4AtIUe4/HACTvKJdhm0eeb107EVCIQcrLZkxaSIgc/eCrX8Q1GtbH+9n3w==", "funding": [ { "type": "individual", @@ -990,19 +1285,20 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/properties": "^5.8.0", "bn.js": "^5.2.1", - "elliptic": "6.5.4", + "elliptic": "6.6.1", "hash.js": "1.1.7" } }, "node_modules/@ethersproject/strings": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", - "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.8.0.tgz", + "integrity": "sha512-qWEAk0MAvl0LszjdfnZ2uC8xbR2wdv4cDabyHiBh3Cldq/T8dPH3V4BbBsAYJUeonwD+8afVXld274Ls+Y1xXg==", "funding": [ { "type": "individual", @@ -1013,10 +1309,11 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0" + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/constants": "^5.8.0", + "@ethersproject/logger": "^5.8.0" } }, "node_modules/@ethersproject/transactions": { @@ -1046,9 +1343,9 @@ } }, "node_modules/@ethersproject/web": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", - "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.8.0.tgz", + "integrity": "sha512-j7+Ksi/9KfGviws6Qtf9Q7KCqRhpwrYKQPs+JBA/rKVFF/yaWLHJEH3zfVP2plVu+eys0d2DlFmhoQJayFewcw==", "funding": [ { "type": "individual", @@ -1059,30 +1356,33 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { - "@ethersproject/base64": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" + "@ethersproject/base64": "^5.8.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/properties": "^5.8.0", + "@ethersproject/strings": "^5.8.0" } }, "node_modules/@grpc/grpc-js": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.8.2.tgz", - "integrity": "sha512-5cqCjUvDKJWHGeu1prlrFOUmjuML0NequZKJ38PsCkfwIqPnZq4Q9burPP3It7/+46wpl0KsqVN3s6Te3B9Qtw==", + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.13.3.tgz", + "integrity": "sha512-FTXHdOoPbZrBjlVLHuKbDZnsTxXv2BlHF57xw6LuThXacXvtkahEPED0CKMk6obZDf65Hv4k3z62eyPNpvinIg==", + "license": "Apache-2.0", "dependencies": { - "@grpc/proto-loader": "^0.7.0", - "@types/node": ">=12.12.47" + "@grpc/proto-loader": "^0.7.13", + "@js-sdsl/ordered-map": "^4.4.2" }, "engines": { - "node": "^8.13.0 || >=10.10.0" + "node": ">=12.10.0" } }, "node_modules/@grpc/proto-loader": { - "version": "0.7.13", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.13.tgz", - "integrity": "sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==", + "version": "0.7.15", + "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.15.tgz", + "integrity": "sha512-tMXdRCfYVixjuFK+Hk0Q1s38gV9zDiDJfWL3h1rv4Qc39oILCu1TRTDt7+fGUI8K4G1Fj125Hx/ru3azECWTyQ==", + "license": "Apache-2.0", "dependencies": { "lodash.camelcase": "^4.3.0", "long": "^5.0.0", @@ -1097,18 +1397,20 @@ } }, "node_modules/@hashgraph/cryptography": { - "version": "1.4.8-beta.10", - "resolved": "https://registry.npmjs.org/@hashgraph/cryptography/-/cryptography-1.4.8-beta.10.tgz", - "integrity": "sha512-ctDbjue5Zq3Z0Sbvs5AgmdsbBRmxBhgKOkIGd1wSun1uiGYIvuV4aIVSKV0Rw+TGh1c8kWsMXZCNynPctcSQMg==", + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@hashgraph/cryptography/-/cryptography-1.7.2.tgz", + "integrity": "sha512-XeLpuoUNrW/F9gCiivmg5RnHjoNc8i5S4kK5BII6Dk3KfgeYt6hwJw1jGqwXenmrprbxPq7QIh10HuCTrGCzcw==", + "license": "Apache-2.0", "dependencies": { - "asn1js": "^3.0.5", + "@noble/curves": "^1.8.1", + "asn1js": "^3.0.6", "bignumber.js": "^9.1.1", "bn.js": "^5.2.1", "buffer": "^6.0.3", "crypto-js": "^4.2.0", - "elliptic": "^6.5.4", - "js-base64": "^3.7.4", - "node-forge": "^1.3.1", + "forge-light": "1.1.4", + "js-base64": "^3.7.7", + "react-native-get-random-values": "^1.11.0", "spark-md5": "^3.0.2", "tweetnacl": "^1.0.3", "utf8": "^3.0.0" @@ -1116,93 +1418,215 @@ "engines": { "node": ">=12.0.0" }, - "peerDependencies": { - "expo": "^49.0.16", - "expo-crypto": "^10.1.2", - "expo-random": "^12.1.2" - }, "peerDependenciesMeta": { - "expo": { - "optional": true - }, "expo-crypto": { "optional": true - }, - "expo-random": { - "optional": true } } }, - "node_modules/@hashgraph/hedera-wallet-connect": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@hashgraph/hedera-wallet-connect/-/hedera-wallet-connect-1.4.2.tgz", - "integrity": "sha512-ksvhKLtOkIJBDwZlTQOVyOhvUjE54JZm7gYnzKMO2I/LLx/uDykmytuVe10HMQnBid3nzvJ01NUU4hmyu7rfHQ==", - "license": "Apache-2.0", - "peerDependencies": { - "@hashgraph/sdk": "^2.40.0", - "@walletconnect/qrcode-modal": "^1.8.0", - "@walletconnect/types": "^2.17.0", - "@walletconnect/utils": "^2.17.0", - "@walletconnect/web3wallet": "^1.16.0" + "node_modules/@hashgraph/cryptography/node_modules/@react-native/virtualized-lists": { + "version": "0.79.2", + "resolved": "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.79.2.tgz", + "integrity": "sha512-9G6ROJeP+rdw9Bvr5ruOlag11ET7j1z/En1riFFNo6W3xZvJY+alCuH1ttm12y9+zBm4n8jwCk4lGhjYaV4dKw==", + "license": "MIT", + "peer": true, + "dependencies": { + "invariant": "^2.2.4", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/react": "^19.0.0", + "react": "*", + "react-native": "*" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@hashgraph/proto": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/@hashgraph/proto/-/proto-2.15.0.tgz", - "integrity": "sha512-ULSNIwQZIroTssrEfNoUcIcWEJ9BIwKZiAsaRvJ2+Rr3XIr+np7UXv6sEkJU+jSyzk97LrTdiRAoc/hJO9Vx8Q==", + "node_modules/@hashgraph/cryptography/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", + "peer": true, "dependencies": { - "long": "^4.0.0", - "protobufjs": "^7.2.5" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@hashgraph/cryptography/node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@hashgraph/cryptography/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">=10.0.0" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@hashgraph/proto/node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + "node_modules/@hashgraph/cryptography/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } }, - "node_modules/@hashgraph/sdk": { - "version": "2.56.0", - "resolved": "https://registry.npmjs.org/@hashgraph/sdk/-/sdk-2.56.0.tgz", - "integrity": "sha512-lIYRb6oahKdWFcbm8nPWLj6KcYTTbMgeTlrDw6PpBaRcFS2SfpmIzW+l+7Kc3Uw3iJnZ+pgY7svqYPO6B3ZK+w==", + "node_modules/@hashgraph/cryptography/node_modules/react": { + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz", + "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@hashgraph/cryptography/node_modules/react-native": { + "version": "0.79.2", + "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.79.2.tgz", + "integrity": "sha512-AnGzb56JvU5YCL7cAwg10+ewDquzvmgrMddiBM0GAWLwQM/6DJfGd2ZKrMuKKehHerpDDZgG+EY64gk3x3dEkw==", + "license": "MIT", + "peer": true, "dependencies": { - "@ethersproject/abi": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/rlp": "^5.7.0", - "@grpc/grpc-js": "1.8.2", - "@hashgraph/cryptography": "1.4.8-beta.10", - "@hashgraph/proto": "2.16.0-beta.4", - "axios": "^1.6.4", - "bignumber.js": "^9.1.1", - "bn.js": "^5.1.1", - "crypto-js": "^4.2.0", - "js-base64": "^3.7.4", - "long": "^5.2.3", - "pino": "^8.14.1", - "pino-pretty": "^10.0.0", - "protobufjs": "7.2.5", - "rfc4648": "^1.5.3", - "utf8": "^3.0.0" + "@jest/create-cache-key-function": "^29.7.0", + "@react-native/assets-registry": "0.79.2", + "@react-native/codegen": "0.79.2", + "@react-native/community-cli-plugin": "0.79.2", + "@react-native/gradle-plugin": "0.79.2", + "@react-native/js-polyfills": "0.79.2", + "@react-native/normalize-colors": "0.79.2", + "@react-native/virtualized-lists": "0.79.2", + "abort-controller": "^3.0.0", + "anser": "^1.4.9", + "ansi-regex": "^5.0.0", + "babel-jest": "^29.7.0", + "babel-plugin-syntax-hermes-parser": "0.25.1", + "base64-js": "^1.5.1", + "chalk": "^4.0.0", + "commander": "^12.0.0", + "event-target-shim": "^5.0.1", + "flow-enums-runtime": "^0.0.6", + "glob": "^7.1.1", + "invariant": "^2.2.4", + "jest-environment-node": "^29.7.0", + "memoize-one": "^5.0.0", + "metro-runtime": "^0.82.0", + "metro-source-map": "^0.82.0", + "nullthrows": "^1.1.1", + "pretty-format": "^29.7.0", + "promise": "^8.3.0", + "react-devtools-core": "^6.1.1", + "react-refresh": "^0.14.0", + "regenerator-runtime": "^0.13.2", + "scheduler": "0.25.0", + "semver": "^7.1.3", + "stacktrace-parser": "^0.1.10", + "whatwg-fetch": "^3.0.0", + "ws": "^6.2.3", + "yargs": "^17.6.2" + }, + "bin": { + "react-native": "cli.js" }, "engines": { - "node": ">=14.0.0" + "node": ">=18" }, "peerDependencies": { - "expo": "^49.0.16" + "@types/react": "^19.0.0", + "react": "^19.0.0" }, "peerDependenciesMeta": { - "expo": { + "@types/react": { "optional": true } } }, - "node_modules/@hashgraph/sdk/node_modules/@hashgraph/proto": { - "version": "2.16.0-beta.4", - "resolved": "https://registry.npmjs.org/@hashgraph/proto/-/proto-2.16.0-beta.4.tgz", - "integrity": "sha512-83yRXVqnPUq85T+KHhWcehRbuM04VY+lSjB43yI/n6Ync6gd+aoETEjNhG0DxB6w4vkR6XLQ814racUzOD+91w==", + "node_modules/@hashgraph/cryptography/node_modules/react-native-get-random-values": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/react-native-get-random-values/-/react-native-get-random-values-1.11.0.tgz", + "integrity": "sha512-4BTbDbRmS7iPdhYLRcz3PGFIpFJBwNZg9g42iwa2P6FOv9vZj/xJc678RZXnLNZzd0qd7Q3CCF6Yd+CU2eoXKQ==", + "license": "MIT", + "dependencies": { + "fast-base64-decode": "^1.0.0" + }, + "peerDependencies": { + "react-native": ">=0.56" + } + }, + "node_modules/@hashgraph/cryptography/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "license": "ISC", + "peer": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@hashgraph/cryptography/node_modules/ws": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz", + "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==", + "license": "MIT", + "peer": true, + "dependencies": { + "async-limiter": "~1.0.0" + } + }, + "node_modules/@hashgraph/hedera-wallet-connect": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@hashgraph/hedera-wallet-connect/-/hedera-wallet-connect-1.4.2.tgz", + "integrity": "sha512-ksvhKLtOkIJBDwZlTQOVyOhvUjE54JZm7gYnzKMO2I/LLx/uDykmytuVe10HMQnBid3nzvJ01NUU4hmyu7rfHQ==", + "license": "Apache-2.0", + "peerDependencies": { + "@hashgraph/sdk": "^2.40.0", + "@walletconnect/qrcode-modal": "^1.8.0", + "@walletconnect/types": "^2.17.0", + "@walletconnect/utils": "^2.17.0", + "@walletconnect/web3wallet": "^1.16.0" + } + }, + "node_modules/@hashgraph/proto": { + "version": "2.18.5", + "resolved": "https://registry.npmjs.org/@hashgraph/proto/-/proto-2.18.5.tgz", + "integrity": "sha512-LifEGGhvkqF49PYVP0xkcnCh8fP43q/+JkGPdZkwKglw1wFAJkPHZtQmGZSjmDpl2gbJiRyzvzJ1Q9MJ1VBA4Q==", + "license": "Apache-2.0", "dependencies": { "long": "^5.2.3", "protobufjs": "7.2.5" @@ -1211,27 +1635,35 @@ "node": ">=10.0.0" } }, - "node_modules/@hashgraph/sdk/node_modules/protobufjs": { - "version": "7.2.5", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.5.tgz", - "integrity": "sha512-gGXRSXvxQ7UiPgfw8gevrfRWcTlSbOFg+p/N+JVJEK5VhueL2miT6qTymqAmjr1Q5WbOCyJbyrk6JfWKwlFn6A==", - "hasInstallScript": true, + "node_modules/@hashgraph/sdk": { + "version": "2.64.5", + "resolved": "https://registry.npmjs.org/@hashgraph/sdk/-/sdk-2.64.5.tgz", + "integrity": "sha512-AIa8jlkhDx2GZHSURWb3YuobTDwozmVyiyvt7MZRDDYKQbibrpyvrTI6E2IRx1xn7fI0Vd5aHELtmHYmkEVjag==", + "license": "Apache-2.0", "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" + "@ethersproject/abi": "^5.8.0", + "@ethersproject/bignumber": "^5.8.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/rlp": "^5.8.0", + "@grpc/grpc-js": "^1.12.6", + "@hashgraph/cryptography": "1.7.2", + "@hashgraph/proto": "2.18.5", + "bignumber.js": "^9.1.1", + "bn.js": "^5.1.1", + "crypto-js": "^4.2.0", + "js-base64": "^3.7.4", + "long": "^5.3.1", + "pino": "^9.6.0", + "pino-pretty": "^13.0.0", + "protobufjs": "7.2.5", + "rfc4648": "^1.5.3", + "utf8": "^3.0.0" }, "engines": { - "node": ">=12.0.0" + "node": ">=18.0.0" + }, + "peerDependencies": { + "bn.js": "^5.2.1" } }, "node_modules/@isaacs/cliui": { @@ -1330,11 +1762,218 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/@isaacs/ttlcache": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@isaacs/ttlcache/-/ttlcache-1.4.1.tgz", + "integrity": "sha512-RQgQ4uQ+pLbqXfOmieB91ejmLwvSgv9nLx6sT6sD83s7umBypgg+OIBOBbEUiJXrfpnp9j0mRhYYdzp9uqq3lA==", + "license": "ISC", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "license": "ISC", + "peer": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "license": "MIT", + "peer": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "license": "MIT", + "peer": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "license": "MIT", + "peer": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "license": "MIT", + "peer": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/create-cache-key-function": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-29.7.0.tgz", + "integrity": "sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/types": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.8", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", - "dev": true, "dependencies": { "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -1348,7 +1987,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, "engines": { "node": ">=6.0.0" } @@ -1357,7 +1995,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, "engines": { "node": ">=6.0.0" } @@ -1366,7 +2003,6 @@ "version": "0.3.6", "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", - "dev": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25" @@ -1375,19 +2011,27 @@ "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "dev": true + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.25", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@js-sdsl/ordered-map": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz", + "integrity": "sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/js-sdsl" + } + }, "node_modules/@leichtgewicht/ip-codec": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", @@ -1649,6 +2293,33 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" }, + "node_modules/@noble/curves": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.1.tgz", + "integrity": "sha512-k11yZxZg+t+gWvBbIswW0yoJlu8cHOC7dhunwOzoWH/mXGBiYyR4YY6hAEK/3EUs4UpB8la1RfdRpeGsFHkWsA==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.8.0" + }, + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/hashes": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", + "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -1952,107 +2623,384 @@ "url": "https://opencollective.com/parcel" } }, - "node_modules/@parcel/watcher-win32-ia32": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.0.tgz", - "integrity": "sha512-+rgpsNRKwo8A53elqbbHXdOMtY/tAtTzManTWShB5Kk54N8Q9mzNWV7tV+IbGueCbcj826MfWGU3mprWtuf1TA==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], + "node_modules/@parcel/watcher-win32-ia32": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.0.tgz", + "integrity": "sha512-+rgpsNRKwo8A53elqbbHXdOMtY/tAtTzManTWShB5Kk54N8Q9mzNWV7tV+IbGueCbcj826MfWGU3mprWtuf1TA==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-x64": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.0.tgz", + "integrity": "sha512-lPrxve92zEHdgeff3aiu4gDOIt4u7sJYha6wbdEZDCDUhtjTsOMiaJzG5lMY4GkWH8p0fMmO2Ppq5G5XXG+DQw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", + "license": "BSD-3-Clause" + }, + "node_modules/@react-native/assets-registry": { + "version": "0.79.2", + "resolved": "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.79.2.tgz", + "integrity": "sha512-5h2Z7/+/HL/0h88s0JHOdRCW4CXMCJoROxqzHqxdrjGL6EBD1DdaB4ZqkCOEVSW4Vjhir5Qb97C8i/MPWEYPtg==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-native/codegen": { + "version": "0.79.2", + "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.79.2.tgz", + "integrity": "sha512-8JTlGLuLi1p8Jx2N/enwwEd7/2CfrqJpv90Cp77QLRX3VHF2hdyavRIxAmXMwN95k+Me7CUuPtqn2X3IBXOWYg==", + "license": "MIT", + "peer": true, + "dependencies": { + "glob": "^7.1.1", + "hermes-parser": "0.25.1", + "invariant": "^2.2.4", + "nullthrows": "^1.1.1", + "yargs": "^17.6.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@babel/core": "*" + } + }, + "node_modules/@react-native/codegen/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", + "peer": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@react-native/codegen/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@react-native/codegen/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@react-native/community-cli-plugin": { + "version": "0.79.2", + "resolved": "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.79.2.tgz", + "integrity": "sha512-E+YEY2dL+68HyR2iahsZdyBKBUi9QyPyaN9vsnda1jNgCjNpSPk2yAF5cXsho+zKK5ZQna3JSeE1Kbi2IfGJbw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@react-native/dev-middleware": "0.79.2", + "chalk": "^4.0.0", + "debug": "^2.2.0", + "invariant": "^2.2.4", + "metro": "^0.82.0", + "metro-config": "^0.82.0", + "metro-core": "^0.82.0", + "semver": "^7.1.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@react-native-community/cli": "*" + }, + "peerDependenciesMeta": { + "@react-native-community/cli": { + "optional": true + } + } + }, + "node_modules/@react-native/community-cli-plugin/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "peer": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/@react-native/community-cli-plugin/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT", + "peer": true + }, + "node_modules/@react-native/community-cli-plugin/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "license": "ISC", + "peer": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@react-native/debugger-frontend": { + "version": "0.79.2", + "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.79.2.tgz", + "integrity": "sha512-cGmC7X6kju76DopSBNc+PRAEetbd7TWF9J9o84hOp/xL3ahxR2kuxJy0oJX8Eg8oehhGGEXTuMKHzNa3rDBeSg==", + "license": "BSD-3-Clause", + "peer": true, "engines": { - "node": ">= 10.0.0" + "node": ">=18" + } + }, + "node_modules/@react-native/dev-middleware": { + "version": "0.79.2", + "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.79.2.tgz", + "integrity": "sha512-9q4CpkklsAs1L0Bw8XYCoqqyBSrfRALGEw4/r0EkR38Y/6fVfNfdsjSns0pTLO6h0VpxswK34L/hm4uK3MoLHw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@isaacs/ttlcache": "^1.4.1", + "@react-native/debugger-frontend": "0.79.2", + "chrome-launcher": "^0.15.2", + "chromium-edge-launcher": "^0.2.0", + "connect": "^3.6.5", + "debug": "^2.2.0", + "invariant": "^2.2.4", + "nullthrows": "^1.1.1", + "open": "^7.0.3", + "serve-static": "^1.16.2", + "ws": "^6.2.3" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "engines": { + "node": ">=18" } }, - "node_modules/@parcel/watcher-win32-x64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.0.tgz", - "integrity": "sha512-lPrxve92zEHdgeff3aiu4gDOIt4u7sJYha6wbdEZDCDUhtjTsOMiaJzG5lMY4GkWH8p0fMmO2Ppq5G5XXG+DQw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], + "node_modules/@react-native/dev-middleware/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "peer": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/@react-native/dev-middleware/node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "license": "MIT", + "peer": true, + "bin": { + "is-docker": "cli.js" + }, "engines": { - "node": ">= 10.0.0" + "node": ">=8" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "optional": true, + "node_modules/@react-native/dev-middleware/node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "license": "MIT", + "peer": true, + "dependencies": { + "is-docker": "^2.0.0" + }, "engines": { - "node": ">=14" + "node": ">=8" } }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" + "node_modules/@react-native/dev-middleware/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT", + "peer": true }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "node_modules/@react-native/dev-middleware/node_modules/open": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "license": "MIT", + "peer": true, "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" + "node_modules/@react-native/dev-middleware/node_modules/ws": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz", + "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==", + "license": "MIT", + "peer": true, + "dependencies": { + "async-limiter": "~1.0.0" + } }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" + "node_modules/@react-native/gradle-plugin": { + "version": "0.79.2", + "resolved": "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.79.2.tgz", + "integrity": "sha512-6MJFemrwR0bOT0QM+2BxX9k3/pvZQNmJ3Js5pF/6owsA0cUDiCO57otiEU8Fz+UywWEzn1FoQfOfQ8vt2GYmoA==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=18" + } }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" + "node_modules/@react-native/js-polyfills": { + "version": "0.79.2", + "resolved": "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.79.2.tgz", + "integrity": "sha512-IaY87Ckd4GTPMkO1/Fe8fC1IgIx3vc3q9Tyt/6qS3Mtk9nC0x9q4kSR5t+HHq0/MuvGtu8HpdxXGy5wLaM+zUw==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=18" + } }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" + "node_modules/@react-native/normalize-colors": { + "version": "0.79.2", + "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.79.2.tgz", + "integrity": "sha512-+b+GNrupWrWw1okHnEENz63j7NSMqhKeFMOyzYLBwKcprG8fqJQhDIGXfizKdxeIa5NnGSAevKL1Ev1zJ56X8w==", + "license": "MIT", + "peer": true }, "node_modules/@rollup/plugin-commonjs": { "version": "25.0.8", @@ -2498,6 +3446,13 @@ "string-argv": "~0.3.1" } }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "license": "MIT", + "peer": true + }, "node_modules/@sindresorhus/merge-streams": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", @@ -2510,6 +3465,26 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, "node_modules/@stablelib/aead": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@stablelib/aead/-/aead-1.0.1.tgz", @@ -2666,7 +3641,6 @@ "version": "7.20.5", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", - "dev": true, "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", @@ -2679,7 +3653,6 @@ "version": "7.6.8", "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", - "dev": true, "dependencies": { "@babel/types": "^7.0.0" } @@ -2688,7 +3661,6 @@ "version": "7.4.4", "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", - "dev": true, "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" @@ -2698,7 +3670,6 @@ "version": "7.20.6", "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", - "dev": true, "dependencies": { "@babel/types": "^7.20.7" } @@ -2803,6 +3774,16 @@ "@types/send": "*" } }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/http-errors": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", @@ -2824,6 +3805,33 @@ "integrity": "sha512-I0gou/ZdA1vMG7t7gMzL7VYu2xAKU78rW9U1l10MI0nn77pEHq3tQqHQ8hMmXdMpBlkxZOorjI4sO594Z3kKJw==", "dev": true }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", @@ -2920,6 +3928,13 @@ "@types/node": "*" } }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "license": "MIT", + "peer": true + }, "node_modules/@types/trusted-types": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", @@ -2934,6 +3949,23 @@ "@types/node": "*" } }, + "node_modules/@types/yargs": { + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", + "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "license": "MIT", + "peer": true + }, "node_modules/@vitejs/plugin-react": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.4.tgz", @@ -3810,30 +4842,11 @@ "tslib": "1.14.1" } }, - "node_modules/@walletconnect/utils/node_modules/bn.js": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", - "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==" - }, "node_modules/@walletconnect/utils/node_modules/detect-browser": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.3.0.tgz", "integrity": "sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==" }, - "node_modules/@walletconnect/utils/node_modules/elliptic": { - "version": "6.6.1", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz", - "integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==", - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, "node_modules/@walletconnect/web3wallet": { "version": "1.16.1", "resolved": "https://registry.npmjs.org/@walletconnect/web3wallet/-/web3wallet-1.16.1.tgz", @@ -4191,6 +5204,8 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "license": "MIT", + "peer": true, "dependencies": { "event-target-shim": "^5.0.0" }, @@ -4202,7 +5217,6 @@ "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dev": true, "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" @@ -4215,7 +5229,6 @@ "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "dev": true, "engines": { "node": ">= 0.6" } @@ -4231,6 +5244,16 @@ "node": ">=0.4.0" } }, + "node_modules/agent-base": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", + "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 14" + } + }, "node_modules/ajv": { "version": "8.12.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", @@ -4296,6 +5319,13 @@ "integrity": "sha512-cZIRkbERILsBOXTQmMrxc9hgpxglstn69zm+F1ARf4aPAzdAFYd6sBq87ErO0Fj3DV94tglcyHG5kQz9nDC/8A==", "dev": true }, + "node_modules/anser": { + "version": "1.4.10", + "resolved": "https://registry.npmjs.org/anser/-/anser-1.4.10.tgz", + "integrity": "sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww==", + "license": "MIT", + "peer": true + }, "node_modules/ansi-html-community": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", @@ -4357,7 +5387,6 @@ "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, "dependencies": { "sprintf-js": "~1.0.2" } @@ -4368,6 +5397,13 @@ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", "dev": true }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "license": "MIT", + "peer": true + }, "node_modules/asn1.js": { "version": "4.10.1", "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", @@ -4386,13 +5422,14 @@ "dev": true }, "node_modules/asn1js": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.5.tgz", - "integrity": "sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.6.tgz", + "integrity": "sha512-UOCGPYbl0tv8+006qks/dTgV9ajs97X2p0FAbyS2iyCRrmLSRolDaHdp+v/CLgnzHc3fVB+CwYiUmei7ndFcgA==", + "license": "BSD-3-Clause", "dependencies": { - "pvtsutils": "^1.3.2", + "pvtsutils": "^1.3.6", "pvutils": "^1.1.3", - "tslib": "^2.4.0" + "tslib": "^2.8.1" }, "engines": { "node": ">=12.0.0" @@ -4401,7 +5438,8 @@ "node_modules/asn1js/node_modules/tslib": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" }, "node_modules/assert": { "version": "2.1.0", @@ -4416,10 +5454,12 @@ "util": "^0.12.5" } }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + "node_modules/async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "license": "MIT", + "peer": true }, "node_modules/atomic-sleep": { "version": "1.0.0", @@ -4429,36 +5469,144 @@ "node": ">=8.0.0" } }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "dev": true, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-jest/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-plugin-syntax-hermes-parser": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-hermes-parser/-/babel-plugin-syntax-hermes-parser-0.25.1.tgz", + "integrity": "sha512-IVNpGzboFLfXZUAwkLFcI/bnqVbwky0jP3eBno4HKtqvQJAHBLdgxiG6lQ4to0+Q/YCN3PO0od5NZwIKyY4REQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "hermes-parser": "0.25.1" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz", + "integrity": "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "license": "MIT", + "peer": true, "dependencies": { - "possible-typed-array-names": "^1.0.0" + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" }, "engines": { - "node": ">= 0.4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/axios": { - "version": "1.7.9", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz", - "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==", - "dependencies": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "node_modules/base64-js": { "version": "1.5.1", @@ -4486,9 +5634,10 @@ "dev": true }, "node_modules/bignumber.js": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", - "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.3.0.tgz", + "integrity": "sha512-EM7aMFTXbptt/wZdMlBv2t8IViwQL+h6SLHosp8Yf0dqJMTnY6iL32opnAB6kAdL0SZPuvcAzFr31o0c/R3/RA==", + "license": "MIT", "engines": { "node": "*" } @@ -4679,27 +5828,6 @@ "node": ">= 0.12" } }, - "node_modules/browserify-sign/node_modules/elliptic": { - "version": "6.6.1", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz", - "integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/browserify-sign/node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", - "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", - "dev": true - }, "node_modules/browserify-zlib": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", @@ -4713,7 +5841,6 @@ "version": "4.24.3", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.3.tgz", "integrity": "sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA==", - "dev": true, "funding": [ { "type": "opencollective", @@ -4741,6 +5868,16 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, "node_modules/buffer": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", @@ -4871,6 +6008,42 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "callsites": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==", + "license": "MIT", + "peer": true, + "dependencies": { + "caller-callsite": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=4" + } + }, "node_modules/camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", @@ -4883,7 +6056,6 @@ "version": "1.0.30001690", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001690.tgz", "integrity": "sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w==", - "dev": true, "funding": [ { "type": "opencollective", @@ -4903,7 +6075,6 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -4938,6 +6109,54 @@ "fsevents": "~2.3.2" } }, + "node_modules/chrome-launcher": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.2.tgz", + "integrity": "sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@types/node": "*", + "escape-string-regexp": "^4.0.0", + "is-wsl": "^2.2.0", + "lighthouse-logger": "^1.0.0" + }, + "bin": { + "print-chrome-path": "bin/print-chrome-path.js" + }, + "engines": { + "node": ">=12.13.0" + } + }, + "node_modules/chrome-launcher/node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "license": "MIT", + "peer": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/chrome-launcher/node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "license": "MIT", + "peer": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/chrome-trace-event": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", @@ -4947,6 +6166,129 @@ "node": ">=6.0" } }, + "node_modules/chromium-edge-launcher": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/chromium-edge-launcher/-/chromium-edge-launcher-0.2.0.tgz", + "integrity": "sha512-JfJjUnq25y9yg4FABRRVPmBGWPZZi+AQXT4mxupb67766/0UlhG8PAZCz6xzEMXTbW3CsSoE8PcCWA49n35mKg==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@types/node": "*", + "escape-string-regexp": "^4.0.0", + "is-wsl": "^2.2.0", + "lighthouse-logger": "^1.0.0", + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + } + }, + "node_modules/chromium-edge-launcher/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", + "peer": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/chromium-edge-launcher/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/chromium-edge-launcher/node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "license": "MIT", + "peer": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/chromium-edge-launcher/node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "license": "MIT", + "peer": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chromium-edge-launcher/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/chromium-edge-launcher/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "license": "ISC", + "peer": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, "node_modules/cipher-base": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.6.tgz", @@ -4988,6 +6330,7 @@ "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -5032,22 +6375,10 @@ "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==" }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" }, "node_modules/commondir": { "version": "1.0.1", @@ -5109,14 +6440,29 @@ "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, "node_modules/confbox": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==" }, + "node_modules/connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, "node_modules/connect-history-api-fallback": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", @@ -5126,6 +6472,75 @@ "node": ">=0.8" } }, + "node_modules/connect/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "peer": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/connect/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/connect/node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "license": "MIT", + "peer": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/connect/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT", + "peer": true + }, + "node_modules/connect/node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "license": "MIT", + "peer": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/connect/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/consola": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/consola/-/consola-3.3.0.tgz", @@ -5170,8 +6585,7 @@ "node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" }, "node_modules/cookie": { "version": "0.7.1", @@ -5207,6 +6621,22 @@ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", "dev": true }, + "node_modules/cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "license": "MIT", + "peer": true, + "dependencies": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/create-ecdh": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", @@ -5306,12 +6736,14 @@ "node_modules/crypto-js": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz", - "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==" + "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==", + "license": "MIT" }, "node_modules/dateformat": { "version": "4.6.3", "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==", + "license": "MIT", "engines": { "node": "*" } @@ -5326,7 +6758,6 @@ "version": "4.4.0", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", - "dev": true, "dependencies": { "ms": "^2.1.3" }, @@ -5434,19 +6865,10 @@ "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz", "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==" }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true, "engines": { "node": ">= 0.8" } @@ -5470,7 +6892,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "dev": true, "engines": { "node": ">= 0.8", "npm": "1.2.8000 || >= 1.4.16" @@ -5591,19 +7012,18 @@ "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "dev": true + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "node_modules/electron-to-chromium": { "version": "1.5.75", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.75.tgz", - "integrity": "sha512-Lf3++DumRE/QmweGjU+ZcKqQ+3bKkU/qjaKYhIJKEOhgIO9Xs6IiAQFkfFoj+RhgDk4LUeNsLo6plExHqSyu6Q==", - "dev": true + "integrity": "sha512-Lf3++DumRE/QmweGjU+ZcKqQ+3bKkU/qjaKYhIJKEOhgIO9Xs6IiAQFkfFoj+RhgDk4LUeNsLo6plExHqSyu6Q==" }, "node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz", + "integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==", + "license": "MIT", "dependencies": { "bn.js": "^4.11.9", "brorand": "^1.1.0", @@ -5633,7 +7053,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "dev": true, "engines": { "node": ">= 0.8" } @@ -5683,6 +7102,26 @@ "node": ">=4" } }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "license": "MIT", + "peer": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/error-stack-parser": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", + "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "stackframe": "^1.3.4" + } + }, "node_modules/es-define-property": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", @@ -5768,8 +7207,20 @@ "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "dev": true + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/eslint-scope": { "version": "5.1.1", @@ -5784,6 +7235,20 @@ "node": ">=8.0.0" } }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", + "peer": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", @@ -5824,7 +7289,6 @@ "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "dev": true, "engines": { "node": ">= 0.6" } @@ -5833,6 +7297,8 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "license": "MIT", + "peer": true, "engines": { "node": ">=6" } @@ -5883,6 +7349,13 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, + "node_modules/exponential-backoff": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.2.tgz", + "integrity": "sha512-8QxYTVXUkuy7fIIoitQkPwGonB8F3Zj8eEO8Sqg9Zv/bkI7RJAzowee4gr81Hak/dUTpA2Z7VfQgoijjPNlUZA==", + "license": "Apache-2.0", + "peer": true + }, "node_modules/express": { "version": "4.21.2", "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", @@ -5959,10 +7432,17 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/fast-base64-decode": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-base64-decode/-/fast-base64-decode-1.0.0.tgz", + "integrity": "sha512-qwaScUgUGBYeDNRnbc/KyllVU88Jk1pRHPStuF/lO7B0/RTRLj7U0lkdTAutlBblY08rwZDff6tNU9cjv6j//Q==", + "license": "MIT" + }, "node_modules/fast-copy": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/fast-copy/-/fast-copy-3.0.2.tgz", - "integrity": "sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ==" + "integrity": "sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ==", + "license": "MIT" }, "node_modules/fast-deep-equal": { "version": "3.1.3", @@ -5989,8 +7469,7 @@ "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, "node_modules/fast-redact": { "version": "3.5.0", @@ -6003,7 +7482,8 @@ "node_modules/fast-safe-stringify": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", + "license": "MIT" }, "node_modules/fastest-levenshtein": { "version": "1.0.16", @@ -6035,6 +7515,16 @@ "node": ">=0.8.0" } }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "bser": "2.1.1" + } + }, "node_modules/fetch-retry": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/fetch-retry/-/fetch-retry-6.0.0.tgz", @@ -6117,10 +7607,18 @@ "flat": "cli.js" } }, + "node_modules/flow-enums-runtime": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/flow-enums-runtime/-/flow-enums-runtime-0.0.6.tgz", + "integrity": "sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw==", + "license": "MIT", + "peer": true + }, "node_modules/follow-redirects": { "version": "1.15.9", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "dev": true, "funding": [ { "type": "individual", @@ -6161,17 +7659,13 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/form-data": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", - "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, + "node_modules/forge-light": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/forge-light/-/forge-light-1.1.4.tgz", + "integrity": "sha512-Nr0xdu93LJawgBZVU/tC+A+4pbKqigdY5PRBz8CXNm4e5saAZIqU2Qe9+nVFtVO5TWCHSgvI0LaZZuatgE5J1g==", + "license": "(BSD-3-Clause OR GPL-2.0)", "engines": { - "node": ">= 6" + "node": ">= 6.13.0" } }, "node_modules/forwarded": { @@ -6187,7 +7681,6 @@ "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "dev": true, "engines": { "node": ">= 0.6" } @@ -6209,8 +7702,7 @@ "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "node_modules/fsevents": { "version": "2.3.3", @@ -6238,7 +7730,6 @@ "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, "engines": { "node": ">=6.9.0" } @@ -6275,6 +7766,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8.0.0" + } + }, "node_modules/get-port-please": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/get-port-please/-/get-port-please-3.1.2.tgz", @@ -6332,7 +7833,6 @@ "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, "engines": { "node": ">=4" } @@ -6372,8 +7872,7 @@ "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" }, "node_modules/h3": { "version": "1.13.0", @@ -6402,7 +7901,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, "engines": { "node": ">=8" } @@ -6492,7 +7990,25 @@ "node_modules/help-me": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/help-me/-/help-me-5.0.0.tgz", - "integrity": "sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==" + "integrity": "sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==", + "license": "MIT" + }, + "node_modules/hermes-estree": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.25.1.tgz", + "integrity": "sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==", + "license": "MIT", + "peer": true + }, + "node_modules/hermes-parser": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.25.1.tgz", + "integrity": "sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==", + "license": "MIT", + "peer": true, + "dependencies": { + "hermes-estree": "0.25.1" + } }, "node_modules/hey-listen": { "version": "1.0.8", @@ -6531,7 +8047,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dev": true, "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", @@ -6602,6 +8117,20 @@ "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", "dev": true }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "license": "MIT", + "peer": true, + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/human-signals": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", @@ -6664,6 +8193,46 @@ "node": ">= 4" } }, + "node_modules/image-size": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.2.1.tgz", + "integrity": "sha512-rH+46sQJ2dlwfjfhCyNx5thzrv+dtmBIhPHk0zgRUukHzZ/kRueTJXoYYsclBaKcSMBWuGbOFXtioLpzTb5euw==", + "license": "MIT", + "peer": true, + "dependencies": { + "queue": "6.0.2" + }, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=16.x" + } + }, + "node_modules/import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==", + "license": "MIT", + "peer": true, + "dependencies": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=4" + } + }, "node_modules/import-lazy": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", @@ -6756,12 +8325,21 @@ "node": ">=8" } }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.8.19" + } + }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", - "dev": true, "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -6781,6 +8359,16 @@ "node": ">=10.13.0" } }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "license": "MIT", + "peer": true, + "dependencies": { + "loose-envify": "^1.0.0" + } + }, "node_modules/ipaddr.js": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", @@ -6814,6 +8402,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "license": "MIT", + "peer": true + }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -6852,6 +8447,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-docker": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", @@ -7074,32 +8679,263 @@ "integrity": "sha512-u4sej9B1LPSxTGKB/HiuzvEQnXH0ECYkSVQU39koSwmFAxhlEAFl9RdTvLv4TOTQUgBS5O3O5fwUxk6byBZ+IQ==", "dev": true, "engines": { - "node": ">=10" + "node": ">=10" + } + }, + "node_modules/isomorphic-unfetch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/isomorphic-unfetch/-/isomorphic-unfetch-3.1.0.tgz", + "integrity": "sha512-geDJjpoZ8N0kWexiwkX8F9NkTsXhetLPVbZFQ+JTW239QNOwvB0gniuR1Wc6f0AMTn7/mFGyXvHTifrCp/GH8Q==", + "peer": true, + "dependencies": { + "node-fetch": "^2.6.1", + "unfetch": "^4.2.0" + } + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "license": "BSD-3-Clause", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "license": "MIT", + "peer": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-haste-map/node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "license": "MIT", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "license": "MIT", + "peer": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-util/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/isomorphic-unfetch": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/isomorphic-unfetch/-/isomorphic-unfetch-3.1.0.tgz", - "integrity": "sha512-geDJjpoZ8N0kWexiwkX8F9NkTsXhetLPVbZFQ+JTW239QNOwvB0gniuR1Wc6f0AMTn7/mFGyXvHTifrCp/GH8Q==", + "node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "license": "MIT", "peer": true, "dependencies": { - "node-fetch": "^2.6.1", - "unfetch": "^4.2.0" + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, - "dependencies": { - "@isaacs/cliui": "^8.0.2" + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/jest-worker": { @@ -7149,6 +8985,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==", + "license": "MIT", "engines": { "node": ">=10" } @@ -7156,7 +8993,8 @@ "node_modules/js-base64": { "version": "3.7.7", "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.7.tgz", - "integrity": "sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==" + "integrity": "sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==", + "license": "BSD-3-Clause" }, "node_modules/js-sha3": { "version": "0.8.0", @@ -7168,11 +9006,31 @@ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "license": "MIT", + "peer": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsc-safe-url": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/jsc-safe-url/-/jsc-safe-url-0.2.4.tgz", + "integrity": "sha512-0wM3YBWtYePOjfyXQH5MWQ8H7sdk5EXSwZvmSLKk2RboVQ2Bu239jycHDz5J/8Blf3K0Qnoy2b6xD+z10MFB+Q==", + "license": "0BSD", + "peer": true + }, "node_modules/jsesc": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", - "dev": true, "bin": { "jsesc": "bin/jsesc" }, @@ -7180,6 +9038,13 @@ "node": ">=6" } }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "license": "MIT", + "peer": true + }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -7196,7 +9061,6 @@ "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, "bin": { "json5": "lib/cli.js" }, @@ -7243,6 +9107,44 @@ "shell-quote": "^1.8.1" } }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/lighthouse-logger": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.4.2.tgz", + "integrity": "sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "debug": "^2.6.9", + "marky": "^1.2.2" + } + }, + "node_modules/lighthouse-logger/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "peer": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/lighthouse-logger/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT", + "peer": true + }, "node_modules/listhen": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/listhen/-/listhen-1.9.0.tgz", @@ -7349,17 +9251,26 @@ "node_modules/lodash.camelcase": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "license": "MIT" }, "node_modules/lodash.isequal": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" }, + "node_modules/lodash.throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", + "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==", + "license": "MIT", + "peer": true + }, "node_modules/long": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", - "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz", + "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==", + "license": "Apache-2.0" }, "node_modules/loose-envify": { "version": "1.4.0", @@ -7377,7 +9288,6 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, "dependencies": { "yallist": "^3.0.2" } @@ -7391,6 +9301,23 @@ "@jridgewell/sourcemap-codec": "^1.5.0" } }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/marky": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/marky/-/marky-1.3.0.tgz", + "integrity": "sha512-ocnPZQLNpvbedwTy9kNrQEsknEfgvcLMvOtz3sFeWApDq1MXH1TqkCIx58xlpESsfwQOnuBO9beyQuNGzVvuhQ==", + "license": "Apache-2.0", + "peer": true + }, "node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", @@ -7527,6 +9454,13 @@ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "dev": true }, + "node_modules/memoize-one": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", + "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==", + "license": "MIT", + "peer": true + }, "node_modules/merge-descriptors": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", @@ -7559,6 +9493,424 @@ "node": ">= 0.6" } }, + "node_modules/metro": { + "version": "0.82.3", + "resolved": "https://registry.npmjs.org/metro/-/metro-0.82.3.tgz", + "integrity": "sha512-EfSLtuUmfsGk3znJ+zoN8cRLniQo3W1wyA+nJMfpTLdENfbbPnGRTwmKhzRcJIUh9jgkrrF4oRQ5shLtQ2DsUw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/core": "^7.25.2", + "@babel/generator": "^7.25.0", + "@babel/parser": "^7.25.3", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.3", + "@babel/types": "^7.25.2", + "accepts": "^1.3.7", + "chalk": "^4.0.0", + "ci-info": "^2.0.0", + "connect": "^3.6.5", + "debug": "^4.4.0", + "error-stack-parser": "^2.0.6", + "flow-enums-runtime": "^0.0.6", + "graceful-fs": "^4.2.4", + "hermes-parser": "0.28.1", + "image-size": "^1.0.2", + "invariant": "^2.2.4", + "jest-worker": "^29.7.0", + "jsc-safe-url": "^0.2.2", + "lodash.throttle": "^4.1.1", + "metro-babel-transformer": "0.82.3", + "metro-cache": "0.82.3", + "metro-cache-key": "0.82.3", + "metro-config": "0.82.3", + "metro-core": "0.82.3", + "metro-file-map": "0.82.3", + "metro-resolver": "0.82.3", + "metro-runtime": "0.82.3", + "metro-source-map": "0.82.3", + "metro-symbolicate": "0.82.3", + "metro-transform-plugins": "0.82.3", + "metro-transform-worker": "0.82.3", + "mime-types": "^2.1.27", + "nullthrows": "^1.1.1", + "serialize-error": "^2.1.0", + "source-map": "^0.5.6", + "throat": "^5.0.0", + "ws": "^7.5.10", + "yargs": "^17.6.2" + }, + "bin": { + "metro": "src/cli.js" + }, + "engines": { + "node": ">=18.18" + } + }, + "node_modules/metro-babel-transformer": { + "version": "0.82.3", + "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.82.3.tgz", + "integrity": "sha512-eC0f1MSA8rg7VoNDCYMIAIe5AEgYBskh5W8rIa4RGRdmEOsGlXbAV0AWMYoA7NlIALW/S9b10AcdIwD3n1e50w==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/core": "^7.25.2", + "flow-enums-runtime": "^0.0.6", + "hermes-parser": "0.28.1", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">=18.18" + } + }, + "node_modules/metro-babel-transformer/node_modules/hermes-estree": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.28.1.tgz", + "integrity": "sha512-w3nxl/RGM7LBae0v8LH2o36+8VqwOZGv9rX1wyoWT6YaKZLqpJZ0YQ5P0LVr3tuRpf7vCx0iIG4i/VmBJejxTQ==", + "license": "MIT", + "peer": true + }, + "node_modules/metro-babel-transformer/node_modules/hermes-parser": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.28.1.tgz", + "integrity": "sha512-nf8o+hE8g7UJWParnccljHumE9Vlq8F7MqIdeahl+4x0tvCUJYRrT0L7h0MMg/X9YJmkNwsfbaNNrzPtFXOscg==", + "license": "MIT", + "peer": true, + "dependencies": { + "hermes-estree": "0.28.1" + } + }, + "node_modules/metro-cache": { + "version": "0.82.3", + "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.82.3.tgz", + "integrity": "sha512-9zKhicA5GENROeP+iXku1NrI8FegtwEg3iPXHGixkm1Yppkbwsy/3lSHSiJZoT6GkZmxUDjN6sQ5QQ+/p72Msw==", + "license": "MIT", + "peer": true, + "dependencies": { + "exponential-backoff": "^3.1.1", + "flow-enums-runtime": "^0.0.6", + "https-proxy-agent": "^7.0.5", + "metro-core": "0.82.3" + }, + "engines": { + "node": ">=18.18" + } + }, + "node_modules/metro-cache-key": { + "version": "0.82.3", + "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.82.3.tgz", + "integrity": "sha512-dDLTUOJ7YYqGog9kR55InchwnkkHuxBXD765J3hQVWWPCy6xO9uZXZYGX1Y/tIMV8U7Ho1Sve0V13n5rFajrRQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "flow-enums-runtime": "^0.0.6" + }, + "engines": { + "node": ">=18.18" + } + }, + "node_modules/metro-config": { + "version": "0.82.3", + "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.82.3.tgz", + "integrity": "sha512-GRG9sBkPvrGXD/Wu3RdEDuWg5NDixF9t0c6Zz9kZ9Aa/aQY+m85JgaCI5HYEV+UzVC/IUFFSpJiMfzQRicppLw==", + "license": "MIT", + "peer": true, + "dependencies": { + "connect": "^3.6.5", + "cosmiconfig": "^5.0.5", + "flow-enums-runtime": "^0.0.6", + "jest-validate": "^29.7.0", + "metro": "0.82.3", + "metro-cache": "0.82.3", + "metro-core": "0.82.3", + "metro-runtime": "0.82.3" + }, + "engines": { + "node": ">=18.18" + } + }, + "node_modules/metro-core": { + "version": "0.82.3", + "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.82.3.tgz", + "integrity": "sha512-JQZDdXo3hyLl1pqVT4IKEwcBK+3f11qFXeCjQ1hjVpjMwQLOqSM02J7NC/4DNSBt+qWBxWj6R5Jphcc7+9AEWw==", + "license": "MIT", + "peer": true, + "dependencies": { + "flow-enums-runtime": "^0.0.6", + "lodash.throttle": "^4.1.1", + "metro-resolver": "0.82.3" + }, + "engines": { + "node": ">=18.18" + } + }, + "node_modules/metro-file-map": { + "version": "0.82.3", + "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.82.3.tgz", + "integrity": "sha512-o4wtloAge85MZl85F87FT59R/4tn5GvCvLfYcnzzDB20o2YX9AMxZqswrGMaei/GbD/Win5FrLF/Iq8oetcByA==", + "license": "MIT", + "peer": true, + "dependencies": { + "debug": "^4.4.0", + "fb-watchman": "^2.0.0", + "flow-enums-runtime": "^0.0.6", + "graceful-fs": "^4.2.4", + "invariant": "^2.2.4", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "nullthrows": "^1.1.1", + "walker": "^1.0.7" + }, + "engines": { + "node": ">=18.18" + } + }, + "node_modules/metro-file-map/node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/metro-file-map/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "license": "MIT", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/metro-minify-terser": { + "version": "0.82.3", + "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.82.3.tgz", + "integrity": "sha512-/3FasOULfHq1P0KPNFy5y28Th5oknPSwEbt9JELVBMAPhUnLqQkCLr4M+RQzKG3aEQN1/mEqenWApFCkk6Nm/Q==", + "license": "MIT", + "peer": true, + "dependencies": { + "flow-enums-runtime": "^0.0.6", + "terser": "^5.15.0" + }, + "engines": { + "node": ">=18.18" + } + }, + "node_modules/metro-resolver": { + "version": "0.82.3", + "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.82.3.tgz", + "integrity": "sha512-pdib7UrOM04j/RjWmaqmjjWRiuCbpA8BdUSuXzvBaK0QlNzHkRRDv6kiOGxgQ+UgG+KdbPcJktsW9olqiDhf9w==", + "license": "MIT", + "peer": true, + "dependencies": { + "flow-enums-runtime": "^0.0.6" + }, + "engines": { + "node": ">=18.18" + } + }, + "node_modules/metro-runtime": { + "version": "0.82.3", + "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.82.3.tgz", + "integrity": "sha512-J4SrUUsBy9ire8I2sFuXN5MzPmuBHlx1bjvAjdoo1ecpH2mtS3ubRqVnMotBxuK5+GhrbW0mtg5/46PVXy26cw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.25.0", + "flow-enums-runtime": "^0.0.6" + }, + "engines": { + "node": ">=18.18" + } + }, + "node_modules/metro-source-map": { + "version": "0.82.3", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.82.3.tgz", + "integrity": "sha512-gz7wfjz23rit6ePQ7NKE9x+VOWGKm54vli4wbphR9W+3y0bh6Ad7T0BGH9DUzRAnOnOorewrVEqFmT24mia5sg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/traverse": "^7.25.3", + "@babel/traverse--for-generate-function-map": "npm:@babel/traverse@^7.25.3", + "@babel/types": "^7.25.2", + "flow-enums-runtime": "^0.0.6", + "invariant": "^2.2.4", + "metro-symbolicate": "0.82.3", + "nullthrows": "^1.1.1", + "ob1": "0.82.3", + "source-map": "^0.5.6", + "vlq": "^1.0.0" + }, + "engines": { + "node": ">=18.18" + } + }, + "node_modules/metro-source-map/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "license": "BSD-3-Clause", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/metro-symbolicate": { + "version": "0.82.3", + "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.82.3.tgz", + "integrity": "sha512-WZKhR+QGbwkOLWP1z58Y7BFWUqLVDEEPsSQ5UI5+OWQDAwdtsPU9+sSNoJtD5qRU9qrB2XewQE3lJ2EQRRFJew==", + "license": "MIT", + "peer": true, + "dependencies": { + "flow-enums-runtime": "^0.0.6", + "invariant": "^2.2.4", + "metro-source-map": "0.82.3", + "nullthrows": "^1.1.1", + "source-map": "^0.5.6", + "vlq": "^1.0.0" + }, + "bin": { + "metro-symbolicate": "src/index.js" + }, + "engines": { + "node": ">=18.18" + } + }, + "node_modules/metro-symbolicate/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "license": "BSD-3-Clause", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/metro-transform-plugins": { + "version": "0.82.3", + "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.82.3.tgz", + "integrity": "sha512-s1gVrkhczwMbxZLRSLCJ16K/4Sqx5IhO4sWlL6j0jlIEs1/Drn3JrkUUdQTtgmJS8SBpxmmB66cw7wnz751dVg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/core": "^7.25.2", + "@babel/generator": "^7.25.0", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.3", + "flow-enums-runtime": "^0.0.6", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">=18.18" + } + }, + "node_modules/metro-transform-worker": { + "version": "0.82.3", + "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.82.3.tgz", + "integrity": "sha512-z5Y7nYlSlLAEhjFi73uEJh69G5IC6HFZmXFcrxnY+JNlsjT2r0GgsDF4WaQGtarAIt5NP88V8983/PedwNfEcw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/core": "^7.25.2", + "@babel/generator": "^7.25.0", + "@babel/parser": "^7.25.3", + "@babel/types": "^7.25.2", + "flow-enums-runtime": "^0.0.6", + "metro": "0.82.3", + "metro-babel-transformer": "0.82.3", + "metro-cache": "0.82.3", + "metro-cache-key": "0.82.3", + "metro-minify-terser": "0.82.3", + "metro-source-map": "0.82.3", + "metro-transform-plugins": "0.82.3", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">=18.18" + } + }, + "node_modules/metro/node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "license": "MIT", + "peer": true + }, + "node_modules/metro/node_modules/hermes-estree": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.28.1.tgz", + "integrity": "sha512-w3nxl/RGM7LBae0v8LH2o36+8VqwOZGv9rX1wyoWT6YaKZLqpJZ0YQ5P0LVr3tuRpf7vCx0iIG4i/VmBJejxTQ==", + "license": "MIT", + "peer": true + }, + "node_modules/metro/node_modules/hermes-parser": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.28.1.tgz", + "integrity": "sha512-nf8o+hE8g7UJWParnccljHumE9Vlq8F7MqIdeahl+4x0tvCUJYRrT0L7h0MMg/X9YJmkNwsfbaNNrzPtFXOscg==", + "license": "MIT", + "peer": true, + "dependencies": { + "hermes-estree": "0.28.1" + } + }, + "node_modules/metro/node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/metro/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "license": "BSD-3-Clause", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/metro/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "license": "MIT", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, "node_modules/micromatch": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", @@ -7668,6 +10020,7 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -7681,6 +10034,19 @@ "node": ">=16 || 14 >=14.17" } }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "license": "MIT", + "peer": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/mlly": { "version": "1.7.3", "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.3.tgz", @@ -7708,8 +10074,7 @@ "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, "node_modules/muggle-string": { "version": "0.4.1", @@ -7806,11 +10171,17 @@ "node": ">= 6.13.0" } }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "license": "MIT", + "peer": true + }, "node_modules/node-releases": { "version": "2.0.19", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", - "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", - "dev": true + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==" }, "node_modules/node-stdlib-browser": { "version": "1.3.0", @@ -7921,6 +10292,26 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/nullthrows": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", + "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==", + "license": "MIT", + "peer": true + }, + "node_modules/ob1": { + "version": "0.82.3", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.82.3.tgz", + "integrity": "sha512-8/SeymYlPMVODpCATHqm+X8eiuvD1GsKVa11n688V4GGgjrM3CRvrbtrYBs4t89LJDkv5CwGYPdqayuY0DmTTA==", + "license": "MIT", + "peer": true, + "dependencies": { + "flow-enums-runtime": "^0.0.6" + }, + "engines": { + "node": ">=18.18" + } + }, "node_modules/object-inspect": { "version": "1.13.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", @@ -8003,6 +10394,7 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz", "integrity": "sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==", + "license": "MIT", "engines": { "node": ">=14.0.0" } @@ -8011,7 +10403,6 @@ "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dev": true, "dependencies": { "ee-first": "1.1.1" }, @@ -8158,11 +10549,24 @@ "node": ">= 0.10" } }, + "node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "license": "MIT", + "peer": true, + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true, "engines": { "node": ">= 0.8" } @@ -8181,6 +10585,16 @@ "node": ">=8" } }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -8259,8 +10673,7 @@ "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "dev": true + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" }, "node_modules/picomatch": { "version": "4.0.2", @@ -8275,94 +10688,76 @@ } }, "node_modules/pino": { - "version": "8.21.0", - "resolved": "https://registry.npmjs.org/pino/-/pino-8.21.0.tgz", - "integrity": "sha512-ip4qdzjkAyDDZklUaZkcRFb2iA118H9SgRh8yzTkSQK8HilsOJF7rSY8HoW5+I0M46AZgX/pxbprf2vvzQCE0Q==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-9.6.0.tgz", + "integrity": "sha512-i85pKRCt4qMjZ1+L7sy2Ag4t1atFcdbEt76+7iRJn1g2BvsnRMGu9p8pivl9fs63M2kF/A0OacFZhTub+m/qMg==", + "license": "MIT", "dependencies": { "atomic-sleep": "^1.0.0", "fast-redact": "^3.1.1", "on-exit-leak-free": "^2.1.0", - "pino-abstract-transport": "^1.2.0", - "pino-std-serializers": "^6.0.0", - "process-warning": "^3.0.0", + "pino-abstract-transport": "^2.0.0", + "pino-std-serializers": "^7.0.0", + "process-warning": "^4.0.0", "quick-format-unescaped": "^4.0.3", "real-require": "^0.2.0", "safe-stable-stringify": "^2.3.1", - "sonic-boom": "^3.7.0", - "thread-stream": "^2.6.0" + "sonic-boom": "^4.0.1", + "thread-stream": "^3.0.0" }, "bin": { "pino": "bin.js" } }, "node_modules/pino-abstract-transport": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.2.0.tgz", - "integrity": "sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-2.0.0.tgz", + "integrity": "sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==", + "license": "MIT", "dependencies": { - "readable-stream": "^4.0.0", "split2": "^4.0.0" } }, - "node_modules/pino-abstract-transport/node_modules/readable-stream": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.6.0.tgz", - "integrity": "sha512-cbAdYt0VcnpN2Bekq7PU+k363ZRsPwJoEEJOEtSJQlJXzwaxt3FIo/uL+KeDSGIjJqtkwyge4KQgD2S2kd+CQw==", - "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, "node_modules/pino-pretty": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-10.3.1.tgz", - "integrity": "sha512-az8JbIYeN/1iLj2t0jR9DV48/LQ3RC6hZPpapKPkb84Q+yTidMCpgWxIT3N0flnBDilyBQ1luWNpOeJptjdp/g==", + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-13.0.0.tgz", + "integrity": "sha512-cQBBIVG3YajgoUjo1FdKVRX6t9XPxwB9lcNJVD5GCnNM4Y6T12YYx8c6zEejxQsU0wrg9TwmDulcE9LR7qcJqA==", + "license": "MIT", "dependencies": { "colorette": "^2.0.7", "dateformat": "^4.6.3", - "fast-copy": "^3.0.0", + "fast-copy": "^3.0.2", "fast-safe-stringify": "^2.1.1", "help-me": "^5.0.0", "joycon": "^3.1.1", "minimist": "^1.2.6", "on-exit-leak-free": "^2.1.0", - "pino-abstract-transport": "^1.0.0", + "pino-abstract-transport": "^2.0.0", "pump": "^3.0.0", - "readable-stream": "^4.0.0", "secure-json-parse": "^2.4.0", - "sonic-boom": "^3.0.0", + "sonic-boom": "^4.0.1", "strip-json-comments": "^3.1.1" }, "bin": { "pino-pretty": "bin.js" } }, - "node_modules/pino-pretty/node_modules/readable-stream": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.6.0.tgz", - "integrity": "sha512-cbAdYt0VcnpN2Bekq7PU+k363ZRsPwJoEEJOEtSJQlJXzwaxt3FIo/uL+KeDSGIjJqtkwyge4KQgD2S2kd+CQw==", - "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" - }, + "node_modules/pino-std-serializers": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-7.0.0.tgz", + "integrity": "sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==", + "license": "MIT" + }, + "node_modules/pirates": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "license": "MIT", + "peer": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">= 6" } }, - "node_modules/pino-std-serializers": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.2.2.tgz", - "integrity": "sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==" - }, "node_modules/pkg-dir": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", @@ -8439,10 +10834,39 @@ "url": "https://opencollective.com/preact" } }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true, "engines": { "node": ">= 0.6.0" } @@ -8454,15 +10878,37 @@ "dev": true }, "node_modules/process-warning": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-3.0.0.tgz", - "integrity": "sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==" + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-4.0.1.tgz", + "integrity": "sha512-3c2LzQ3rY9d0hc1emcsHhfT9Jwz0cChib/QN89oME2R451w5fy3f0afAhERFZAwrbDU43wk12d0ORBpDVME50Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "MIT" + }, + "node_modules/promise": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", + "license": "MIT", + "peer": true, + "dependencies": { + "asap": "~2.0.6" + } }, "node_modules/protobufjs": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.4.0.tgz", - "integrity": "sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==", + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.5.tgz", + "integrity": "sha512-gGXRSXvxQ7UiPgfw8gevrfRWcTlSbOFg+p/N+JVJEK5VhueL2miT6qTymqAmjr1Q5WbOCyJbyrk6JfWKwlFn6A==", "hasInstallScript": true, + "license": "BSD-3-Clause", "dependencies": { "@protobufjs/aspromise": "^1.1.2", "@protobufjs/base64": "^1.1.2", @@ -8508,11 +10954,6 @@ "resolved": "https://registry.npmjs.org/proxy-compare/-/proxy-compare-2.5.1.tgz", "integrity": "sha512-oyfc0Tx87Cpwva5ZXezSp5V9vht1c7dZBhvuV/y3ctkgMVUmiAGDVeeB0dKhGSyT0v1ZTEQYpe/RXlBVBNuCLA==" }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, "node_modules/public-encrypt": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", @@ -8537,6 +10978,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "license": "MIT", "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -8552,6 +10994,7 @@ "version": "1.3.6", "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.6.tgz", "integrity": "sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==", + "license": "MIT", "dependencies": { "tslib": "^2.8.1" } @@ -8559,12 +11002,14 @@ "node_modules/pvtsutils/node_modules/tslib": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" }, "node_modules/pvutils": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.3.tgz", "integrity": "sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==", + "license": "MIT", "engines": { "node": ">=6.0.0" } @@ -8736,6 +11181,16 @@ "node": ">=0.4.x" } }, + "node_modules/queue": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", + "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", + "license": "MIT", + "peer": true, + "dependencies": { + "inherits": "~2.0.3" + } + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -8789,7 +11244,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true, "engines": { "node": ">= 0.6" } @@ -8821,11 +11275,28 @@ "node": ">=0.10.0" } }, + "node_modules/react-devtools-core": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-6.1.2.tgz", + "integrity": "sha512-ldFwzufLletzCikNJVYaxlxMLu7swJ3T2VrGfzXlMsVhZhPDKXA38DEROidaYZVgMAmQnIjymrmqto5pyfrwPA==", + "license": "MIT", + "peer": true, + "dependencies": { + "shell-quote": "^1.6.1", + "ws": "^7" + } + }, + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "license": "MIT", + "peer": true + }, "node_modules/react-refresh": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -8886,6 +11357,7 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz", "integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==", + "license": "MIT", "engines": { "node": ">= 12.13.0" } @@ -8902,6 +11374,13 @@ "node": ">= 10.13.0" } }, + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "license": "MIT", + "peer": true + }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -8966,7 +11445,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, "engines": { "node": ">=8" } @@ -9161,6 +11639,13 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, + "node_modules/scheduler": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0.tgz", + "integrity": "sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==", + "license": "MIT", + "peer": true + }, "node_modules/schema-utils": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", @@ -9213,7 +11698,8 @@ "node_modules/secure-json-parse": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.7.0.tgz", - "integrity": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==" + "integrity": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==", + "license": "BSD-3-Clause" }, "node_modules/select-hose": { "version": "2.0.0", @@ -9238,7 +11724,6 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, "bin": { "semver": "bin/semver.js" } @@ -9247,7 +11732,6 @@ "version": "0.19.0", "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", - "dev": true, "dependencies": { "debug": "2.6.9", "depd": "2.0.0", @@ -9271,7 +11755,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, "dependencies": { "ms": "2.0.0" } @@ -9279,14 +11762,12 @@ "node_modules/send/node_modules/debug/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/send/node_modules/encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "dev": true, "engines": { "node": ">= 0.8" } @@ -9295,7 +11776,6 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, "bin": { "mime": "cli.js" }, @@ -9303,6 +11783,16 @@ "node": ">=4" } }, + "node_modules/serialize-error": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz", + "integrity": "sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/serialize-javascript": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", @@ -9394,7 +11884,6 @@ "version": "1.16.2", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", - "dev": true, "dependencies": { "encodeurl": "~2.0.0", "escape-html": "~1.0.3", @@ -9436,8 +11925,7 @@ "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, "node_modules/sha.js": { "version": "2.4.11", @@ -9487,7 +11975,6 @@ "version": "1.8.2", "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz", "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -9602,9 +12089,10 @@ } }, "node_modules/sonic-boom": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.8.1.tgz", - "integrity": "sha512-y4Z8LCDBuum+PBP3lSV7RHrXscqksve/bi0as7mhwVnBW+/wUqKT/2Kb7um8yqcFy0duYbbPxzt89Zy2nOCaxg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.2.0.tgz", + "integrity": "sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==", + "license": "MIT", "dependencies": { "atomic-sleep": "^1.0.0" } @@ -9631,7 +12119,6 @@ "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -9641,7 +12128,6 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -9649,7 +12135,8 @@ "node_modules/spark-md5": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/spark-md5/-/spark-md5-3.0.2.tgz", - "integrity": "sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw==" + "integrity": "sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw==", + "license": "(WTFPL OR MIT)" }, "node_modules/spdy": { "version": "4.0.2", @@ -9714,14 +12201,55 @@ "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/stackframe": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", + "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", + "license": "MIT", + "peer": true + }, + "node_modules/stacktrace-parser": { + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.11.tgz", + "integrity": "sha512-WjlahMgHmCJpqzU8bIBy4qtsZdU9lRlcZE3Lvyej6t4tuOuv1vk57OW3MBrj6hXBFx/nNoC9MPMTcr5YA7NQbg==", + "license": "MIT", + "peer": true, + "dependencies": { + "type-fest": "^0.7.1" + }, + "engines": { + "node": ">=6" + } }, "node_modules/statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true, "engines": { "node": ">= 0.8" } @@ -9889,7 +12417,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -9933,7 +12460,6 @@ "version": "5.37.0", "resolved": "https://registry.npmjs.org/terser/-/terser-5.37.0.tgz", "integrity": "sha512-B8wRRkmre4ERucLM/uXx4MOV5cbnOlVAqUst+1+iLKPI0dOgFO28f84ptoQt9HEI537PMzfYa/d+GEPKTRXmYA==", - "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", @@ -10017,14 +12543,83 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "license": "ISC", + "peer": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/test-exclude/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", + "peer": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/test-exclude/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/test-exclude/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/thread-stream": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.7.0.tgz", - "integrity": "sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-3.1.0.tgz", + "integrity": "sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==", + "license": "MIT", "dependencies": { "real-require": "^0.2.0" } }, + "node_modules/throat": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", + "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", + "license": "MIT", + "peer": true + }, "node_modules/thunky": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", @@ -10043,6 +12638,13 @@ "node": ">=0.6.0" } }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "license": "BSD-3-Clause", + "peer": true + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -10063,7 +12665,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true, "engines": { "node": ">=0.6" } @@ -10120,7 +12721,28 @@ "node_modules/tweetnacl": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", + "license": "Unlicense" + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", + "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", + "license": "(MIT OR CC0-1.0)", + "peer": true, + "engines": { + "node": ">=8" + } }, "node_modules/type-is": { "version": "1.6.18", @@ -10214,7 +12836,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "dev": true, "engines": { "node": ">= 0.8" } @@ -10334,7 +12955,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", - "dev": true, "funding": [ { "type": "opencollective", @@ -10407,7 +13027,8 @@ "node_modules/utf8": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", - "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==" + "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==", + "license": "MIT" }, "node_modules/util": { "version": "0.12.5", @@ -10431,7 +13052,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "dev": true, "engines": { "node": ">= 0.4.0" } @@ -10591,6 +13211,13 @@ "globby": "^14.0.1" } }, + "node_modules/vlq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vlq/-/vlq-1.0.1.tgz", + "integrity": "sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==", + "license": "MIT", + "peer": true + }, "node_modules/vm-browserify": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", @@ -10603,6 +13230,16 @@ "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==", "dev": true }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, "node_modules/watchpack": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", @@ -10955,6 +13592,13 @@ "node": ">=0.8.0" } }, + "node_modules/whatwg-fetch": { + "version": "3.6.20", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", + "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==", + "license": "MIT", + "peer": true + }, "node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", @@ -11014,6 +13658,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -11049,6 +13694,27 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "license": "ISC", + "peer": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/write-file-atomic/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC", + "peer": true + }, "node_modules/ws": { "version": "7.5.10", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", @@ -11082,6 +13748,7 @@ "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "license": "ISC", "engines": { "node": ">=10" } @@ -11089,13 +13756,13 @@ "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" }, "node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "license": "MIT", "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -11113,6 +13780,7 @@ "version": "21.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "license": "ISC", "engines": { "node": ">=12" } diff --git a/package.json b/package.json index fd3401c..3e8993b 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ }, "dependencies": { "@hashgraph/proto": "^2.15.0", - "@hashgraph/sdk": "^2.55.1", + "@hashgraph/sdk": "latest", "@hashgraph/hedera-wallet-connect": "1.4.2", "@walletconnect/core": "^2.17.3", "@walletconnect/modal": "^2.7.0", diff --git a/src/index.d.ts b/src/index.d.ts index 8f99280..54596be 100644 --- a/src/index.d.ts +++ b/src/index.d.ts @@ -56,7 +56,7 @@ declare class HashinalsWalletConnectSDK { createTopic( memo?: string, adminKey?: string, - submitKey?: string + customFees?: { denominatingTokenId: string, amount: string, collectorAccountId: string }[] // Updated type ): Promise; createToken( name: string, @@ -126,6 +126,12 @@ declare class HashinalsWalletConnectSDK { getAccountTokens(accountId: string): Promise<{ tokens: TokenBalance[]; }>; + generatePrivateAndPublicKey(): Promise<{ + privateKey: string; + publicKey: string; + }>; + updateTopic(topicId: string, memo: string, adminKey: string): Promise; + getTopicInfo(topicId: string): Promise; } declare global { diff --git a/src/index.ts b/src/index.ts index c948b34..6e51128 100644 --- a/src/index.ts +++ b/src/index.ts @@ -25,6 +25,10 @@ import { AccountUpdateTransaction, AccountAllowanceApproveTransaction, TokenId, + TopicUpdateTransaction, + PublicKey, + TopicInfoQuery, + CustomFixedFee } from '@hashgraph/sdk'; import * as HashgraphSDK from '@hashgraph/sdk'; import { @@ -420,28 +424,249 @@ class HashinalsWalletConnectSDK { }; } + + public async generatePrivateAndPublicKey(): Promise<{ + privateKey: string; + publicKey: string; + }> { + this.ensureInitialized(); + const privateKey = await PrivateKey.generateED25519Async(); + const publicKey = privateKey.publicKey; + return { + privateKey: privateKey.toString(), + publicKey: publicKey.toString() + }; + } + + public async updateTopic(topicId: string, memo: string, adminKey: string, + customFees?: { denominatingTokenId: string, amount: string, collectorAccountId: string }[], + feeScheduleKey?:string + ): Promise { + this.ensureInitialized(); + + // Validate inputs + if (!topicId) { + throw new Error('Topic ID is required'); + } + if (!adminKey) { + throw new Error('Admin key is required for topic update'); + } + + // Get account info and signer + const accountInfo = this.getAccountInfo(); + if (!accountInfo?.accountId) { + throw new Error('No connected account found'); + } + + const signer = this.dAppConnector.signers.find( + (signer_) => signer_.getAccountId().toString() === accountInfo.accountId + ); + if (!signer) { + throw new Error('No signer found for the connected account'); + } + + // Validate network + if (signer.getLedgerId().toString() !== this.network.toString()) { + throw new Error('Network mismatch between signer and SDK configuration'); + } + + // Create and configure the transaction + let transaction = new TopicUpdateTransaction() + .setTopicId(TopicId.fromString(topicId)) + .setTopicMemo(memo || ''); + + // Helper function to parse a key as either private or public key (for future-proofing) + const parseKey = (key: string, keyType: 'admin'): PublicKey => { + try { + const privateKey = PrivateKey.fromString(key); + this.logger.debug(`Parsed ${keyType} key as private key:`, privateKey.toString()); + return privateKey.publicKey; + } catch (privateError) { + this.logger.debug(`Failed to parse ${keyType} key as private key:`, privateError); + try { + const publicKey = PublicKey.fromString(key); + this.logger.debug(`Parsed ${keyType} key as public key:`, publicKey.toString()); + return publicKey; + } catch (publicError) { + this.logger.error(`Invalid ${keyType} key format:`, publicError); + throw new Error(`Invalid ${keyType} key format: ${publicError.message}`); + } + } + }; + + // Handle admin key (set the key but don’t sign yet) + let adminPrivateKey: PrivateKey | null = null; + try { + adminPrivateKey = PrivateKey.fromString(adminKey); + transaction.setAdminKey(adminPrivateKey.publicKey); + this.logger.debug('Admin key set with private key:', adminPrivateKey.publicKey.toString()); + } catch (e) { + this.logger.error('Invalid admin key provided:', e); + throw new Error('Invalid admin key format: Admin key must be a valid private key for topic update'); + } + + // Handle custom fees if provided + if (customFees && customFees.length > 0) { + const hederaCustomFees = customFees.map(fee => { + // Validate fee structure + if (!fee.denominatingTokenId || !fee.amount || !fee.collectorAccountId) { + throw new Error('Invalid custom fee: denominatingTokenId, amount, and collectorAccountId are required'); + } + // Parse amount as a number + const feeAmount = parseFloat(fee.amount); + if (isNaN(feeAmount) || feeAmount <= 0) { + throw new Error('Invalid amount: must be a positive number'); + } + // Create a CustomFixedFee + const customFee = new CustomFixedFee() + .setAmount(feeAmount) + .setFeeCollectorAccountId(fee.collectorAccountId) + .setDenominatingTokenId(fee.denominatingTokenId); + return customFee; + }); + transaction.setCustomFees(hederaCustomFees); + this.logger.debug('Custom fixed fees set:', hederaCustomFees); + } + + // Freeze the transaction before signing + transaction = await transaction.freezeWithSigner(signer); + this.logger.debug('Transaction frozen with signer:', signer.getAccountId().toString()); + + // Sign with admin private key (after freezing) + if (adminPrivateKey) { + transaction = await transaction.sign(adminPrivateKey); + this.logger.debug('Transaction signed with admin private key'); + } + + // Sign with fee schedule key if custom fees are provided + if (customFees && customFees.length > 0 && feeScheduleKey) { + let feeSchedulePrivateKey: PrivateKey; + try { + feeSchedulePrivateKey = PrivateKey.fromString(feeScheduleKey); + transaction = await transaction.sign(feeSchedulePrivateKey); + this.logger.debug('Transaction signed with fee schedule private key'); + } catch (e) { + this.logger.error('Invalid fee schedule key provided:', e); + throw new Error('Invalid fee schedule key format: Fee schedule key must be a valid private key'); + } + } + + // Execute the transaction, disabling internal signer freeze to avoid double-freezing + const { result, error } = await this.executeTransactionWithErrorHandling(transaction, true); + if (error) { + throw new Error(`Failed to update topic: ${error}`); + } + + this.logger.debug('Topic updated successfully with ID:', result.topicId!.toString()); + return result.topicId!.toString(); + } + public async createTopic( memo?: string, adminKey?: string, - submitKey?: string - ): Promise { + customFees?: { denominatingTokenId: string, amount: string, collectorAccountId: string }[] // Updated type +): Promise { this.ensureInitialized(); - let transaction = new TopicCreateTransaction().setTopicMemo(memo || ''); + // Get account info and signer + const accountInfo = this.getAccountInfo(); + if (!accountInfo?.accountId) { + throw new Error('No connected account found'); + } - if (adminKey) { - const adminWithPrivateKey = PrivateKey.fromString(adminKey); - transaction.setAdminKey(adminWithPrivateKey.publicKey); - transaction = await transaction.sign(adminWithPrivateKey); + const signer = this.dAppConnector.signers.find( + (signer_) => signer_.getAccountId().toString() === accountInfo.accountId + ); + if (!signer) { + throw new Error('No signer found for the connected account'); } - if (submitKey) { - transaction.setSubmitKey(PrivateKey.fromString(submitKey).publicKey); + // Validate network + if (signer.getLedgerId().toString() !== this.network.toString()) { + throw new Error('Network mismatch between signer and SDK configuration'); } - const receipt = await this.executeTransaction(transaction); - return receipt.topicId!.toString(); + // Create and configure the transaction + let transaction = new TopicCreateTransaction().setTopicMemo(memo || ''); + + // Helper function to parse a key as either private or public key + const parseKey = (key: string, keyType: 'admin' | 'submit'): PublicKey => { + try { + const privateKey = PrivateKey.fromString(key); + this.logger.debug(`Parsed ${keyType} key as private key:`, privateKey.toString()); + return privateKey.publicKey; + } catch (privateError) { + this.logger.debug(`Failed to parse ${keyType} key as private key:`, privateError); + try { + const publicKey = PublicKey.fromString(key); + this.logger.debug(`Parsed ${keyType} key as public key:`, publicKey.toString()); + return publicKey; + } catch (publicError) { + this.logger.error(`Invalid ${keyType} key format:`, publicError); + throw new Error(`Invalid ${keyType} key format: ${publicError.message}`); + } + } + }; + + // Handle admin key (set the key but don’t sign yet) + let adminPrivateKey: PrivateKey | null = null; +// After setting the admin key +if (adminKey) { + try { + adminPrivateKey = PrivateKey.fromString(adminKey); + transaction.setAdminKey(adminPrivateKey.publicKey); + transaction.setFeeScheduleKey(adminPrivateKey.publicKey); // Set feeScheduleKey to same as adminKey + this.logger.debug('Admin key and feeScheduleKey set with private key:', adminPrivateKey.publicKey.toString()); + } catch { + const adminPublicKey = parseKey(adminKey, 'admin'); + transaction.setAdminKey(adminPublicKey); + transaction.setFeeScheduleKey(adminPublicKey); // Set feeScheduleKey to same as adminKey + this.logger.debug('Admin key and feeScheduleKey set with public key:', adminPublicKey.toString()); } +} + + // Handle custom fees if provided + if (customFees && customFees.length > 0) { + const hederaCustomFees = customFees.map(fee => { + // Validate fee structure + if (!fee.denominatingTokenId || !fee.amount || !fee.collectorAccountId) { + throw new Error('Invalid custom fee: denominatingTokenId, amount, and collectorAccountId are required'); + } + // Parse amount as a number + const feeAmount = parseFloat(fee.amount); + if (isNaN(feeAmount) || feeAmount <= 0) { + throw new Error('Invalid amount: must be a positive number'); + } + // Create a CustomFixedFee + const customFee = new CustomFixedFee() + .setAmount(feeAmount) + .setFeeCollectorAccountId(fee.collectorAccountId) + .setDenominatingTokenId(fee.denominatingTokenId); + return customFee; + }); + transaction.setCustomFees(hederaCustomFees); + this.logger.debug('Custom fixed fees set:', hederaCustomFees); + } + + // Freeze the transaction before signing + transaction = await transaction.freezeWithSigner(signer); + this.logger.debug('Transaction frozen with signer:', signer.getAccountId().toString()); + + // Sign with admin private key if provided (after freezing) + if (adminPrivateKey) { + transaction = await transaction.sign(adminPrivateKey); + this.logger.debug('Transaction signed with admin private key'); + } + + // Execute the transaction, disabling internal signer freeze to avoid double-freezing + const receipt = await this.executeTransaction(transaction, true); + if (!receipt.topicId) { + throw new Error('Failed to create topic: No topic ID in receipt'); + } + + this.logger.debug('Topic created successfully with ID:', receipt.topicId.toString()); + return receipt.topicId.toString(); +} public async createToken( name: string, @@ -491,6 +716,42 @@ class HashinalsWalletConnectSDK { return this.executeTransaction(transaction); } + public async getTopicInfo(topicId: string, network?: string): Promise { + this.ensureInitialized(); + + try { + // Validate input + if (!topicId) { + throw new Error('Topic ID is required'); + } + + // Determine the network prefix + const networkPrefix = network || this.getNetworkPrefix(); + const baseUrl = `https://${networkPrefix}.mirrornode.hedera.com`; + + // Construct the URL for the topic info endpoint + const url = `${baseUrl}/api/v1/topics/${topicId}`; + + // Fetch the topic info + const response = await fetchWithRetry()(url); + if (!response.ok) { + throw new Error( + `Failed to make request to mirror node for topic info: ${response.status}` + ); + } + + const data = await response.json(); + + // Log the retrieved topic info + this.logger.info('Topic info retrieved:', data); + + return data; + } catch (error) { + this.logger.error('Error fetching topic info:', error); + throw new Error(`Failed to retrieve topic info: ${error.message}`); + } + } + public async getMessages( topicId: string, lastTimestamp?: number, diff --git a/src/types.ts b/src/types.ts index 919e33b..529d7f2 100644 --- a/src/types.ts +++ b/src/types.ts @@ -285,8 +285,14 @@ export type HashinalsWalletConnectSDK = { createTopic: ( memo?: string, adminKey?: string, - submitKey?: string + customFees?: { denominatingTokenId: string, amount: string, collectorAccountId: string }[] // Updated type ) => Promise; + generatePrivateAndPublicKey: () => Promise<{ + privateKey: string; + publicKey: string; + }>; + getTopicInfo: (topicId: string) => Promise; + updateTopic: (topicId: string, memo: string, adminKey: string) => Promise; createToken: ( name: string, symbol: string,